yuki-imajuku commited on
Commit
dd69c3c
·
0 Parent(s):

initial commit

Browse files
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ ---
4
+ # Metom (めとん)
5
+
6
+ The **Metom** is a Vision Transformer (ViT) based **Kuzushiji** classifier.
7
+ The model takes an image with one character and returns what the character is.
8
+ **This model is not an official SakanaAI product and is for research / educational purposes only.**
9
+
10
+ **めとん**は Vision Transformer (ViT) ベースの**くずし字**分類器です。
11
+ モデルは1文字が写った画像を受け取り、その文字がどの文字であるかを返します。
12
+ **本モデルはSakanaAIの公式製品ではありません。研究・教育目的のみに利用してください。**
13
+
14
+ *Japanese section follows English section (日本語セクションは英語セクションの後に続きます。)*
15
+
16
+ --------------------------------------------------------------------------------
17
+
18
+ This model was trained by using [日本古典籍くずし字データセット](http://codh.rois.ac.jp/char-shape/book/).
19
+ This dataset contains 1,086,326 characters in 4,328 types of Kuzushiji.
20
+ However, we used only 2,703 types of characters that appeared at least 5 times in the dataset.
21
+
22
+ The dataset was split into train, validation, and test subsets in a ratio of 3:1:1.
23
+ As a result, the train subset contained 649,932 characters, the validation subset contained 216,644 characters, and the test subset contained 216,645 characters.
24
+
25
+ The model was trained on the train subset, and hyperparameters were tuned based on the performance on the validation subset.
26
+ The final evaluation on the test subset yielded a micro accuracy of 0.9722 and a macro accuracy of 0.8354.
27
+
28
+ ## Usage
29
+ Please see also [Google Colab Notebook](https://colab.research.google.com/drive/1jFMZENoTjjum3qlBxV0Q5dTxmpCvqlpf?usp=sharing).
30
+ 1. Install dependencies (Not required on Google Colab)
31
+ ```sh
32
+ python -m pip install einops torch torchvision transformers
33
+
34
+ # Optional (This is also required on Google Colab if you want to use FlashAttention-2)
35
+ pip install flash-attn --no-build-isolation
36
+ ```
37
+
38
+ 2. Run the following code
39
+ ```python
40
+ from io import BytesIO
41
+
42
+ from PIL import Image
43
+ import requests
44
+ import torch
45
+ from transformers import AutoModel, AutoProcessor
46
+
47
+ repo_name = "SakanaAI/Metom"
48
+ device = "cuda"
49
+ torch_dtype = torch.float32 # This can also set `torch.float16` or `torch.bfloat16`
50
+
51
+ def get_image(image_url: str) -> Image.Image:
52
+ return Image.open(BytesIO(requests.get(image_url).content)).convert("RGB")
53
+
54
+ processor = AutoProcessor.from_pretrained(repo_name, trust_remote_code=True)
55
+ model = AutoModel.from_pretrained(
56
+ repo_name,
57
+ torch_dtype=torch_dtype,
58
+ _attn_implementation="eager", # This can also set `"sdpa"` or `"flash_attention_2"`
59
+ trust_remote_code=True
60
+ ).to(device=device)
61
+
62
+ image1 = get_image("https://huggingface.co/SakanaAI/Metom/resolve/main/examples/example1_4E00.jpg") # An example image
63
+ image_array1 = processor(images=image1, return_tensors="pt")["pixel_values"].to(device=device, dtype=torch_dtype)
64
+ with torch.inference_mode():
65
+ print(model.get_predictions(image_array1)) # Returns the prediction label
66
+ # ['一']
67
+
68
+ image2 = get_image("https://huggingface.co/SakanaAI/Metom/resolve/main/examples/example2_5B9A.jpg") # An example image
69
+ image3 = get_image("https://huggingface.co/SakanaAI/Metom/resolve/main/examples/example3_5009.jpg") # An example image
70
+ image_array2 = processor(images=[image2, image3], return_tensors="pt")["pixel_values"].to(device=device, dtype=torch_dtype)
71
+ with torch.inference_mode():
72
+ print(model.get_topk_labels(image_array2)) # Returns top-k prediction labels (label only)
73
+ # [['定', '芝', '乏', '淀', '実'], ['倉', '衾', '斜', '会', '急']]
74
+ print(model.get_topk_labels(image_array2, k=3, return_probs=True)) # Returns prediction top-k labels (label with probability)
75
+ # [[('定', 0.9979104399681091), ('芝', 0.0002953427319880575), ('乏', 0.00012814522779081017)], [('倉', 0.9862521290779114), ('衾', 0.0005956474924460053), ('斜', 0.00039981433656066656)]]
76
+ ```
77
+
78
+ ## Citation
79
+ ```bibtex
80
+ @misc{Metom,
81
+ url = {[https://huggingface.co/SakanaAI/Metom](https://huggingface.co/SakanaAI/Metom)},
82
+ title = {Metom},
83
+ author = {Imajuku, Yuki and Clanuwat, Tarin}
84
+ }
85
+ ```
86
+
87
+ --------------------------------------------------------------------------------
88
+
89
+ 本モデルは[日本古典籍くずし字データセット](http://codh.rois.ac.jp/char-shape/book/)を用いて訓練されました。
90
+ このデータセットは4,328種1,086,326枚のくずし字画像が含まれています。
91
+ ですが、データセット中に最低5回以上出現する2,703種類の文字のみを利用しました。
92
+
93
+ データセットは訓練、検証、テストの3つのセットに、比率が3:1:1となるように分割されました。
94
+ その結果、訓練セットは649,932枚、検証セットは216,644枚、テストセットは216,645枚、画像が含まれました。
95
+
96
+ 本モデルは訓練セッ��のみを用いて学習され、検証セットにおける性能を見ながらハイパーパラメータを調整しました。
97
+ 最終的にテストセットにおける評価の結果、216,645枚全体の正解率は0.9722となり、2,703種類のクラス別正解率の平均は0.8354となりました。
98
+
99
+ ## 使用方法
100
+ [Google Colab Notebook](https://colab.research.google.com/drive/1jFMZENoTjjum3qlBxV0Q5dTxmpCvqlpf?usp=sharing)もご確認ください。
101
+ 1. 依存ライブラリをインストールする (Google Colabを使う場合は不要)
102
+ ```sh
103
+ python -m pip install einops torch torchvision transformers
104
+
105
+ # 任意 (FlashAttention-2を使いたい場合はGoogle Colabを使う時でも必要)
106
+ pip install flash-attn --no-build-isolation
107
+ ```
108
+
109
+ 2. 以下のコードを実行する
110
+ ```python
111
+ from io import BytesIO
112
+
113
+ from PIL import Image
114
+ import requests
115
+ import torch
116
+ from transformers import AutoModel, AutoProcessor
117
+
118
+ repo_name = "SakanaAI/Metom"
119
+ device = "cuda"
120
+ torch_dtype = torch.float32 # `torch.float16` や `torch.bfloat16` も指定可能
121
+
122
+ def get_image(image_url: str) -> Image.Image:
123
+ return Image.open(BytesIO(requests.get(image_url).content)).convert("RGB")
124
+
125
+ processor = AutoProcessor.from_pretrained(repo_name, trust_remote_code=True)
126
+ model = AutoModel.from_pretrained(
127
+ repo_name,
128
+ torch_dtype=torch_dtype,
129
+ _attn_implementation="eager", # `"sdpa"` や `"flash_attention_2"` も指定可能
130
+ trust_remote_code=True
131
+ ).to(device=device)
132
+
133
+ image1 = get_image("https://huggingface.co/SakanaAI/Metom/resolve/main/examples/example1_4E00.jpg") # 画像例
134
+ image_array1 = processor(images=image1, return_tensors="pt")["pixel_values"].to(device=device, dtype=torch_dtype)
135
+ with torch.inference_mode():
136
+ print(model.get_predictions(image_array1)) # 予測ラベルを返す
137
+ # ['一']
138
+
139
+ image2 = get_image("https://huggingface.co/SakanaAI/Metom/resolve/main/examples/example2_5B9A.jpg") # 画像例
140
+ image3 = get_image("https://huggingface.co/SakanaAI/Metom/resolve/main/examples/example3_5009.jpg") # 画像例
141
+ image_array2 = processor(images=[image2, image3], return_tensors="pt")["pixel_values"].to(device=device, dtype=torch_dtype)
142
+ with torch.inference_mode():
143
+ print(model.get_topk_labels(image_array2)) # 上位k件の予測ラベルを返す (ラベルのみ)
144
+ # [['定', '芝', '乏', '淀', '実'], ['倉', '衾', '斜', '会', '急']]
145
+ print(model.get_topk_labels(image_array2, k=3, return_probs=True)) # 上位k件の予測ラベルを返す (ラベルと確率)
146
+ # [[('定', 0.9979104399681091), ('芝', 0.0002953427319880575), ('乏', 0.00012814522779081017)], [('倉', 0.9862521290779114), ('衾', 0.0005956474924460053), ('斜', 0.00039981433656066656)]]
147
+ ```
148
+
149
+ ## 引用
150
+ ```bibtex
151
+ @misc{Metom,
152
+ url = {[https://huggingface.co/SakanaAI/Metom](https://huggingface.co/SakanaAI/Metom)},
153
+ title = {Metom},
154
+ author = {Imajuku, Yuki and Clanuwat, Tarin}
155
+ }
156
+ ```
config.json ADDED
@@ -0,0 +1,2724 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoConfig": "configuration_metom.MetomConfig",
4
+ "AutoModel": "modeling_metom.MetomModel"
5
+ },
6
+ "channels": 3,
7
+ "depth": 6,
8
+ "dim": 256,
9
+ "dim_head": 32,
10
+ "dropout": 0.1,
11
+ "emb_dropout": 0.1,
12
+ "heads": 8,
13
+ "image_size": 128,
14
+ "labels": [
15
+ "\ud840\udc0b",
16
+ "\ud843\udd45",
17
+ "\u25a0",
18
+ "\u25b2",
19
+ "\u25b3",
20
+ "\u25cb",
21
+ "\u25cf",
22
+ "\ud85d\udf52",
23
+ "\u3002",
24
+ "\u3005",
25
+ "\u3006",
26
+ "\u3007",
27
+ "\u300c",
28
+ "\u300d",
29
+ "\u3031",
30
+ "\u3032",
31
+ "\u303b",
32
+ "\u303d",
33
+ "\u3042",
34
+ "\u3044",
35
+ "\u3046",
36
+ "\u3048",
37
+ "\u304a",
38
+ "\u304b",
39
+ "\u304c",
40
+ "\u304d",
41
+ "\u304e",
42
+ "\u304f",
43
+ "\u3050",
44
+ "\u3051",
45
+ "\u3052",
46
+ "\u3053",
47
+ "\u3054",
48
+ "\u3055",
49
+ "\u3056",
50
+ "\u3057",
51
+ "\u3058",
52
+ "\u3059",
53
+ "\u305a",
54
+ "\u305b",
55
+ "\u305c",
56
+ "\u305d",
57
+ "\u305e",
58
+ "\u305f",
59
+ "\u3060",
60
+ "\u3061",
61
+ "\u3062",
62
+ "\u3063",
63
+ "\u3064",
64
+ "\u3065",
65
+ "\u3066",
66
+ "\u3067",
67
+ "\u3068",
68
+ "\u3069",
69
+ "\u306a",
70
+ "\u306b",
71
+ "\u306c",
72
+ "\u306d",
73
+ "\u306e",
74
+ "\u306f",
75
+ "\u3070",
76
+ "\u3071",
77
+ "\u3072",
78
+ "\u3073",
79
+ "\u3074",
80
+ "\u3075",
81
+ "\u3076",
82
+ "\u3077",
83
+ "\u3078",
84
+ "\u3079",
85
+ "\u307a",
86
+ "\u307b",
87
+ "\u307c",
88
+ "\u307d",
89
+ "\u307e",
90
+ "\u307f",
91
+ "\u3080",
92
+ "\u3081",
93
+ "\u3082",
94
+ "\u3083",
95
+ "\u3084",
96
+ "\u3085",
97
+ "\u3086",
98
+ "\u3088",
99
+ "\u3089",
100
+ "\u308a",
101
+ "\u308b",
102
+ "\u308c",
103
+ "\u308d",
104
+ "\u308f",
105
+ "\u3090",
106
+ "\u3091",
107
+ "\u3092",
108
+ "\u3093",
109
+ "\u309d",
110
+ "\u309e",
111
+ "\u309f",
112
+ "\u30a1",
113
+ "\u30a2",
114
+ "\u30a4",
115
+ "\u30a6",
116
+ "\u30a8",
117
+ "\u30ab",
118
+ "\u30ac",
119
+ "\u30ad",
120
+ "\u30ae",
121
+ "\u30af",
122
+ "\u30b1",
123
+ "\u30b2",
124
+ "\u30b3",
125
+ "\u30b5",
126
+ "\u30b7",
127
+ "\u30b9",
128
+ "\u30ba",
129
+ "\u30bb",
130
+ "\u30bc",
131
+ "\u30bd",
132
+ "\u30bf",
133
+ "\u30c0",
134
+ "\u30c1",
135
+ "\u30c3",
136
+ "\u30c4",
137
+ "\u30c5",
138
+ "\u30c6",
139
+ "\u30c7",
140
+ "\u30c8",
141
+ "\u30c9",
142
+ "\u30ca",
143
+ "\u30cb",
144
+ "\u30cd",
145
+ "\u30ce",
146
+ "\u30cf",
147
+ "\u30d0",
148
+ "\u30d2",
149
+ "\u30d5",
150
+ "\u30d8",
151
+ "\u30d9",
152
+ "\u30db",
153
+ "\u30de",
154
+ "\u30df",
155
+ "\u30e0",
156
+ "\u30e1",
157
+ "\u30e2",
158
+ "\u30e4",
159
+ "\u30e8",
160
+ "\u30e9",
161
+ "\u30ea",
162
+ "\u30eb",
163
+ "\u30ec",
164
+ "\u30ed",
165
+ "\u30ef",
166
+ "\u30f1",
167
+ "\u30f2",
168
+ "\u30f3",
169
+ "\u30f6",
170
+ "\u30fb",
171
+ "\u30fd",
172
+ "\u30fe",
173
+ "\u3280",
174
+ "\u3281",
175
+ "\u3282",
176
+ "\u3283",
177
+ "\u3402",
178
+ "\u34b5",
179
+ "\u34db",
180
+ "\u351f",
181
+ "\u352b",
182
+ "\u355d",
183
+ "\u3761",
184
+ "\u4453",
185
+ "\u4e00",
186
+ "\u4e01",
187
+ "\u4e03",
188
+ "\u4e07",
189
+ "\u4e08",
190
+ "\u4e09",
191
+ "\u4e0a",
192
+ "\u4e0b",
193
+ "\u4e0d",
194
+ "\u4e0e",
195
+ "\u4e11",
196
+ "\u4e14",
197
+ "\u4e16",
198
+ "\u4e18",
199
+ "\u4e1e",
200
+ "\u4e21",
201
+ "\u4e26",
202
+ "\u4e2d",
203
+ "\u4e32",
204
+ "\u4e38",
205
+ "\u4e39",
206
+ "\u4e3b",
207
+ "\u4e3c",
208
+ "\u4e43",
209
+ "\u4e45",
210
+ "\u4e4b",
211
+ "\u4e4e",
212
+ "\u4e4f",
213
+ "\u4e57",
214
+ "\u4e59",
215
+ "\u4e5d",
216
+ "\u4e5e",
217
+ "\u4e5f",
218
+ "\u4e71",
219
+ "\u4e73",
220
+ "\u4e7e",
221
+ "\u4e80",
222
+ "\u4e86",
223
+ "\u4e88",
224
+ "\u4e89",
225
+ "\u4e8b",
226
+ "\u4e8c",
227
+ "\u4e8e",
228
+ "\u4e91",
229
+ "\u4e92",
230
+ "\u4e94",
231
+ "\u4e95",
232
+ "\u4e9b",
233
+ "\u4ea1",
234
+ "\u4ea4",
235
+ "\u4ea5",
236
+ "\u4ea6",
237
+ "\u4eab",
238
+ "\u4eac",
239
+ "\u4ead",
240
+ "\u4eba",
241
+ "\u4ec1",
242
+ "\u4ec7",
243
+ "\u4eca",
244
+ "\u4ecb",
245
+ "\u4ecd",
246
+ "\u4ecf",
247
+ "\u4ed4",
248
+ "\u4ed5",
249
+ "\u4ed6",
250
+ "\u4ed8",
251
+ "\u4ed9",
252
+ "\u4ee3",
253
+ "\u4ee4",
254
+ "\u4ee5",
255
+ "\u4eee",
256
+ "\u4ef0",
257
+ "\u4ef2",
258
+ "\u4ef6",
259
+ "\u4efb",
260
+ "\u4f0a",
261
+ "\u4f0f",
262
+ "\u4f10",
263
+ "\u4f11",
264
+ "\u4f1a",
265
+ "\u4f1d",
266
+ "\u4f2f",
267
+ "\u4f34",
268
+ "\u4f38",
269
+ "\u4f3a",
270
+ "\u4f3c",
271
+ "\u4f3d",
272
+ "\u4f46",
273
+ "\u4f4d",
274
+ "\u4f4e",
275
+ "\u4f4f",
276
+ "\u4f50",
277
+ "\u4f53",
278
+ "\u4f55",
279
+ "\u4f59",
280
+ "\u4f5c",
281
+ "\u4f73",
282
+ "\u4f75",
283
+ "\u4f76",
284
+ "\u4f7f",
285
+ "\u4f8b",
286
+ "\u4f8d",
287
+ "\u4f98",
288
+ "\u4f9b",
289
+ "\u4f9d",
290
+ "\u4fa0",
291
+ "\u4fad",
292
+ "\u4faf",
293
+ "\u4fbf",
294
+ "\u4fc2",
295
+ "\u4fc3",
296
+ "\u4fc4",
297
+ "\u4fca",
298
+ "\u4fce",
299
+ "\u4fd7",
300
+ "\u4fdd",
301
+ "\u4fdf",
302
+ "\u4fe1",
303
+ "\u4fe4",
304
+ "\u4fee",
305
+ "\u4fef",
306
+ "\u4ff3",
307
+ "\u4ff5",
308
+ "\u5009",
309
+ "\u500b",
310
+ "\u500d",
311
+ "\u5012",
312
+ "\u5016",
313
+ "\u5019",
314
+ "\u501a",
315
+ "\u501f",
316
+ "\u5026",
317
+ "\u502b",
318
+ "\u502d",
319
+ "\u5036",
320
+ "\u504f",
321
+ "\u5056",
322
+ "\u5065",
323
+ "\u5074",
324
+ "\u5076",
325
+ "\u5078",
326
+ "\u507d",
327
+ "\u5085",
328
+ "\u508d",
329
+ "\u5098",
330
+ "\u5099",
331
+ "\u50ac",
332
+ "\u50b7",
333
+ "\u50be",
334
+ "\u50c5",
335
+ "\u50c9",
336
+ "\u50cd",
337
+ "\u50cf",
338
+ "\u50d5",
339
+ "\u50e5",
340
+ "\u50e7",
341
+ "\u50f9",
342
+ "\u5100",
343
+ "\u5112",
344
+ "\u512a",
345
+ "\u5143",
346
+ "\u5144",
347
+ "\u5148",
348
+ "\u5149",
349
+ "\u514d",
350
+ "\u514e",
351
+ "\u5150",
352
+ "\u515c",
353
+ "\u5165",
354
+ "\u5168",
355
+ "\u516b",
356
+ "\u516c",
357
+ "\u516d",
358
+ "\u516e",
359
+ "\u5171",
360
+ "\u5175",
361
+ "\u5176",
362
+ "\u5177",
363
+ "\u5178",
364
+ "\u517c",
365
+ "\u5185",
366
+ "\u5186",
367
+ "\u518a",
368
+ "\u518d",
369
+ "\u5199",
370
+ "\u51a0",
371
+ "\u51a4",
372
+ "\u51a5",
373
+ "\u51ac",
374
+ "\u51b6",
375
+ "\u51b7",
376
+ "\u51c4",
377
+ "\u51c6",
378
+ "\u51cc",
379
+ "\u51dd",
380
+ "\u51e0",
381
+ "\u51e1",
382
+ "\u51e6",
383
+ "\u51f6",
384
+ "\u51fa",
385
+ "\u5200",
386
+ "\u5203",
387
+ "\u5206",
388
+ "\u5207",
389
+ "\u5208",
390
+ "\u5211",
391
+ "\u5215",
392
+ "\u5217",
393
+ "\u521d",
394
+ "\u5224",
395
+ "\u5225",
396
+ "\u5229",
397
+ "\u5230",
398
+ "\u5236",
399
+ "\u523a",
400
+ "\u523b",
401
+ "\u5243",
402
+ "\u5247",
403
+ "\u524a",
404
+ "\u524d",
405
+ "\u525b",
406
+ "\u5263",
407
+ "\u5265",
408
+ "\u5270",
409
+ "\u5272",
410
+ "\u5287",
411
+ "\u529b",
412
+ "\u529f",
413
+ "\u52a0",
414
+ "\u52a3",
415
+ "\u52a9",
416
+ "\u52aa",
417
+ "\u52ab",
418
+ "\u52b1",
419
+ "\u52b4",
420
+ "\u52c5",
421
+ "\u52c7",
422
+ "\u52d5",
423
+ "\u52d8",
424
+ "\u52d9",
425
+ "\u52dd",
426
+ "\u52e2",
427
+ "\u52e4",
428
+ "\u52e7",
429
+ "\u52fa",
430
+ "\u52ff",
431
+ "\u5301",
432
+ "\u5302",
433
+ "\u5305",
434
+ "\u5315",
435
+ "\u5316",
436
+ "\u5317",
437
+ "\u5320",
438
+ "\u5323",
439
+ "\u5339",
440
+ "\u533b",
441
+ "\u5341",
442
+ "\u5343",
443
+ "\u5345",
444
+ "\u5347",
445
+ "\u5348",
446
+ "\u534a",
447
+ "\u5351",
448
+ "\u5352",
449
+ "\u5353",
450
+ "\u5357",
451
+ "\u5358",
452
+ "\u535a",
453
+ "\u535c",
454
+ "\u5360",
455
+ "\u5366",
456
+ "\u536f",
457
+ "\u5370",
458
+ "\u5371",
459
+ "\u5373",
460
+ "\u5374",
461
+ "\u5375",
462
+ "\u5378",
463
+ "\u537f",
464
+ "\u5384",
465
+ "\u539a",
466
+ "\u539f",
467
+ "\u53ad",
468
+ "\u53b3",
469
+ "\u53bb",
470
+ "\u53c2",
471
+ "\u53c8",
472
+ "\u53ca",
473
+ "\u53cb",
474
+ "\u53cc",
475
+ "\u53cd",
476
+ "\u53ce",
477
+ "\u53d4",
478
+ "\u53d6",
479
+ "\u53d7",
480
+ "\u53e1",
481
+ "\u53e2",
482
+ "\u53e3",
483
+ "\u53e4",
484
+ "\u53e5",
485
+ "\u53ea",
486
+ "\u53eb",
487
+ "\u53ec",
488
+ "\u53ee",
489
+ "\u53ef",
490
+ "\u53f0",
491
+ "\u53f1",
492
+ "\u53f2",
493
+ "\u53f3",
494
+ "\u53f6",
495
+ "\u53f7",
496
+ "\u53f8",
497
+ "\u5404",
498
+ "\u5408",
499
+ "\u5409",
500
+ "\u540a",
501
+ "\u540c",
502
+ "\u540d",
503
+ "\u540e",
504
+ "\u540f",
505
+ "\u5410",
506
+ "\u5411",
507
+ "\u541b",
508
+ "\u541d",
509
+ "\u541f",
510
+ "\u5426",
511
+ "\u542b",
512
+ "\u542d",
513
+ "\u5438",
514
+ "\u5439",
515
+ "\u543b",
516
+ "\u543c",
517
+ "\u543e",
518
+ "\u5442",
519
+ "\u5446",
520
+ "\u5449",
521
+ "\u544a",
522
+ "\u5451",
523
+ "\u5468",
524
+ "\u546a",
525
+ "\u5473",
526
+ "\u5475",
527
+ "\u547c",
528
+ "\u547d",
529
+ "\u5480",
530
+ "\u5484",
531
+ "\u548c",
532
+ "\u548e",
533
+ "\u54b2",
534
+ "\u54b3",
535
+ "\u54bd",
536
+ "\u54c0",
537
+ "\u54c1",
538
+ "\u54c9",
539
+ "\u54e1",
540
+ "\u54ed",
541
+ "\u5504",
542
+ "\u5507",
543
+ "\u5510",
544
+ "\u552f",
545
+ "\u5531",
546
+ "\u5546",
547
+ "\u554f",
548
+ "\u5553",
549
+ "\u5556",
550
+ "\u555c",
551
+ "\u557c",
552
+ "\u5584",
553
+ "\u5589",
554
+ "\u559a",
555
+ "\u559c",
556
+ "\u55a7",
557
+ "\u55aa",
558
+ "\u55ab",
559
+ "\u55b0",
560
+ "\u55b6",
561
+ "\u55c5",
562
+ "\u55da",
563
+ "\u55dc",
564
+ "\u55df",
565
+ "\u55e3",
566
+ "\u5606",
567
+ "\u5609",
568
+ "\u5617",
569
+ "\u5618",
570
+ "\u5629",
571
+ "\u5632",
572
+ "\u5638",
573
+ "\u5642",
574
+ "\u564c",
575
+ "\u5668",
576
+ "\u566a",
577
+ "\u567a",
578
+ "\u56a2",
579
+ "\u56ae",
580
+ "\u56db",
581
+ "\u56de",
582
+ "\u56e0",
583
+ "\u56e3",
584
+ "\u56f0",
585
+ "\u56f2",
586
+ "\u56f3",
587
+ "\u56fa",
588
+ "\u56fd",
589
+ "\u5711",
590
+ "\u5712",
591
+ "\u571f",
592
+ "\u5728",
593
+ "\u5730",
594
+ "\u5742",
595
+ "\u574a",
596
+ "\u5750",
597
+ "\u5761",
598
+ "\u576a",
599
+ "\u5782",
600
+ "\u57a2",
601
+ "\u57a3",
602
+ "\u57cb",
603
+ "\u57ce",
604
+ "\u57d2",
605
+ "\u57f7",
606
+ "\u57fa",
607
+ "\u5800",
608
+ "\u5802",
609
+ "\u5805",
610
+ "\u5815",
611
+ "\u5824",
612
+ "\u582a",
613
+ "\u5831",
614
+ "\u5834",
615
+ "\u5835",
616
+ "\u583a",
617
+ "\u584a",
618
+ "\u5854",
619
+ "\u5857",
620
+ "\u585a",
621
+ "\u585e",
622
+ "\u5869",
623
+ "\u5875",
624
+ "\u5883",
625
+ "\u5893",
626
+ "\u5897",
627
+ "\u58a8",
628
+ "\u58c1",
629
+ "\u58df",
630
+ "\u58eb",
631
+ "\u58ee",
632
+ "\u58f0",
633
+ "\u58f1",
634
+ "\u58f2",
635
+ "\u58f7",
636
+ "\u58fc",
637
+ "\u5909",
638
+ "\u590f",
639
+ "\u5915",
640
+ "\u5916",
641
+ "\u591a",
642
+ "\u591c",
643
+ "\u5922",
644
+ "\u5925",
645
+ "\u5927",
646
+ "\u5929",
647
+ "\u592a",
648
+ "\u592b",
649
+ "\u592e",
650
+ "\u5931",
651
+ "\u5937",
652
+ "\u5947",
653
+ "\u5948",
654
+ "\u5949",
655
+ "\u594f",
656
+ "\u5951",
657
+ "\u5955",
658
+ "\u595a",
659
+ "\u5962",
660
+ "\u5965",
661
+ "\u596a",
662
+ "\u5973",
663
+ "\u5974",
664
+ "\u5978",
665
+ "\u597d",
666
+ "\u5982",
667
+ "\u5983",
668
+ "\u5984",
669
+ "\u5993",
670
+ "\u5996",
671
+ "\u5999",
672
+ "\u59ac",
673
+ "\u59b9",
674
+ "\u59bb",
675
+ "\u59be",
676
+ "\u59c9",
677
+ "\u59cb",
678
+ "\u59d1",
679
+ "\u59d3",
680
+ "\u59d4",
681
+ "\u59dc",
682
+ "\u59e8",
683
+ "\u59eb",
684
+ "\u59ff",
685
+ "\u5a01",
686
+ "\u5a0c",
687
+ "\u5a11",
688
+ "\u5a18",
689
+ "\u5a23",
690
+ "\u5a35",
691
+ "\u5a3c",
692
+ "\u5a46",
693
+ "\u5a5a",
694
+ "\u5a66",
695
+ "\u5a7f",
696
+ "\u5a92",
697
+ "\u5a9a",
698
+ "\u5ac1",
699
+ "\u5ac9",
700
+ "\u5acc",
701
+ "\u5ae1",
702
+ "\u5ae9",
703
+ "\u5b09",
704
+ "\u5b22",
705
+ "\u5b50",
706
+ "\u5b54",
707
+ "\u5b57",
708
+ "\u5b58",
709
+ "\u5b5d",
710
+ "\u5b5f",
711
+ "\u5b63",
712
+ "\u5b64",
713
+ "\u5b66",
714
+ "\u5b6b",
715
+ "\u5b85",
716
+ "\u5b87",
717
+ "\u5b88",
718
+ "\u5b89",
719
+ "\u5b8c",
720
+ "\u5b97",
721
+ "\u5b98",
722
+ "\u5b9a",
723
+ "\u5b9b",
724
+ "\u5b9c",
725
+ "\u5b9d",
726
+ "\u5b9f",
727
+ "\u5ba2",
728
+ "\u5ba3",
729
+ "\u5ba4",
730
+ "\u5ba5",
731
+ "\u5bae",
732
+ "\u5bb0",
733
+ "\u5bb3",
734
+ "\u5bb4",
735
+ "\u5bb5",
736
+ "\u5bb6",
737
+ "\u5bb9",
738
+ "\u5bbf",
739
+ "\u5bc2",
740
+ "\u5bc4",
741
+ "\u5bc5",
742
+ "\u5bc6",
743
+ "\u5bcc",
744
+ "\u5bd0",
745
+ "\u5bd2",
746
+ "\u5bd3",
747
+ "\u5bd4",
748
+ "\u5bdb",
749
+ "\u5bdd",
750
+ "\u5bdf",
751
+ "\u5be1",
752
+ "\u5be7",
753
+ "\u5be9",
754
+ "\u5bee",
755
+ "\u5bf5",
756
+ "\u5bf8",
757
+ "\u5bfa",
758
+ "\u5bfe",
759
+ "\u5bff",
760
+ "\u5c01",
761
+ "\u5c02",
762
+ "\u5c04",
763
+ "\u5c06",
764
+ "\u5c0a",
765
+ "\u5c0b",
766
+ "\u5c0e",
767
+ "\u5c0f",
768
+ "\u5c11",
769
+ "\u5c16",
770
+ "\u5c1a",
771
+ "\u5c24",
772
+ "\u5c2d",
773
+ "\u5c31",
774
+ "\u5c3a",
775
+ "\u5c3b",
776
+ "\u5c3c",
777
+ "\u5c3d",
778
+ "\u5c3e",
779
+ "\u5c3f",
780
+ "\u5c40",
781
+ "\u5c45",
782
+ "\u5c48",
783
+ "\u5c4a",
784
+ "\u5c4b",
785
+ "\u5c4d",
786
+ "\u5c4e",
787
+ "\u5c4f",
788
+ "\u5c51",
789
+ "\u5c53",
790
+ "\u5c5e",
791
+ "\u5c60",
792
+ "\u5c61",
793
+ "\u5c65",
794
+ "\u5c71",
795
+ "\u5c90",
796
+ "\u5ca1",
797
+ "\u5ca9",
798
+ "\u5cb3",
799
+ "\u5cb8",
800
+ "\u5ce8",
801
+ "\u5cf0",
802
+ "\u5cf6",
803
+ "\u5d07",
804
+ "\u5d0e",
805
+ "\u5d29",
806
+ "\u5d50",
807
+ "\u5d6f",
808
+ "\u5dba",
809
+ "\u5dbc",
810
+ "\u5dcc",
811
+ "\u5ddd",
812
+ "\u5dde",
813
+ "\u5de3",
814
+ "\u5de5",
815
+ "\u5de6",
816
+ "\u5de7",
817
+ "\u5de8",
818
+ "\u5deb",
819
+ "\u5dee",
820
+ "\u5df1",
821
+ "\u5df2",
822
+ "\u5df3",
823
+ "\u5df4",
824
+ "\u5dfb",
825
+ "\u5dfe",
826
+ "\u5e02",
827
+ "\u5e03",
828
+ "\u5e06",
829
+ "\u5e0c",
830
+ "\u5e1d",
831
+ "\u5e2b",
832
+ "\u5e2d",
833
+ "\u5e2f",
834
+ "\u5e30",
835
+ "\u5e33",
836
+ "\u5e37",
837
+ "\u5e38",
838
+ "\u5e3d",
839
+ "\u5e45",
840
+ "\u5e55",
841
+ "\u5e61",
842
+ "\u5e63",
843
+ "\u5e72",
844
+ "\u5e73",
845
+ "\u5e74",
846
+ "\u5e76",
847
+ "\u5e78",
848
+ "\u5e7b",
849
+ "\u5e7c",
850
+ "\u5e7d",
851
+ "\u5e7e",
852
+ "\u5e7f",
853
+ "\u5e83",
854
+ "\u5e8a",
855
+ "\u5e8f",
856
+ "\u5e95",
857
+ "\u5e96",
858
+ "\u5e97",
859
+ "\u5e9a",
860
+ "\u5e9c",
861
+ "\u5ea6",
862
+ "\u5ea7",
863
+ "\u5eab",
864
+ "\u5ead",
865
+ "\u5eb5",
866
+ "\u5eb6",
867
+ "\u5eb7",
868
+ "\u5ec3",
869
+ "\u5ec9",
870
+ "\u5eca",
871
+ "\u5ed3",
872
+ "\u5edf",
873
+ "\u5ef6",
874
+ "\u5ef7",
875
+ "\u5efa",
876
+ "\u5efb",
877
+ "\u5efc",
878
+ "\u5eff",
879
+ "\u5f01",
880
+ "\u5f0f",
881
+ "\u5f10",
882
+ "\u5f13",
883
+ "\u5f14",
884
+ "\u5f15",
885
+ "\u5f18",
886
+ "\u5f1f",
887
+ "\u5f25",
888
+ "\u5f27",
889
+ "\u5f31",
890
+ "\u5f35",
891
+ "\u5f37",
892
+ "\u5f3e",
893
+ "\u5f42",
894
+ "\u5f53",
895
+ "\u5f62",
896
+ "\u5f66",
897
+ "\u5f6b",
898
+ "\u5f71",
899
+ "\u5f73",
900
+ "\u5f79",
901
+ "\u5f7c",
902
+ "\u5f80",
903
+ "\u5f81",
904
+ "\u5f82",
905
+ "\u5f84",
906
+ "\u5f85",
907
+ "\u5f8b",
908
+ "\u5f8c",
909
+ "\u5f92",
910
+ "\u5f93",
911
+ "\u5f97",
912
+ "\u5fa1",
913
+ "\u5fa9",
914
+ "\u5fae",
915
+ "\u5fb3",
916
+ "\u5fb9",
917
+ "\u5fbd",
918
+ "\u5fc3",
919
+ "\u5fc5",
920
+ "\u5fcc",
921
+ "\u5fcd",
922
+ "\u5fd7",
923
+ "\u5fd8",
924
+ "\u5fd9",
925
+ "\u5fdc",
926
+ "\u5fdd",
927
+ "\u5fe0",
928
+ "\u5feb",
929
+ "\u5ff0",
930
+ "\u5ff5",
931
+ "\u5ffd",
932
+ "\u6012",
933
+ "\u6015",
934
+ "\u6016",
935
+ "\u601d",
936
+ "\u6020",
937
+ "\u6025",
938
+ "\u6027",
939
+ "\u6028",
940
+ "\u602a",
941
+ "\u6043",
942
+ "\u604b",
943
+ "\u6050",
944
+ "\u6052",
945
+ "\u6059",
946
+ "\u605a",
947
+ "\u605f",
948
+ "\u6063",
949
+ "\u6065",
950
+ "\u6068",
951
+ "\u6069",
952
+ "\u606d",
953
+ "\u606f",
954
+ "\u6070",
955
+ "\u6075",
956
+ "\u6089",
957
+ "\u608b",
958
+ "\u6094",
959
+ "\u609f",
960
+ "\u60a3",
961
+ "\u60a6",
962
+ "\u60a9",
963
+ "\u60aa",
964
+ "\u60b2",
965
+ "\u60b6",
966
+ "\u60c5",
967
+ "\u60d1",
968
+ "\u60da",
969
+ "\u60dc",
970
+ "\u60e3",
971
+ "\u60f3",
972
+ "\u6101",
973
+ "\u610f",
974
+ "\u611a",
975
+ "\u611b",
976
+ "\u611f",
977
+ "\u6127",
978
+ "\u613d",
979
+ "\u6148",
980
+ "\u614b",
981
+ "\u614c",
982
+ "\u614e",
983
+ "\u6155",
984
+ "\u6162",
985
+ "\u6165",
986
+ "\u616e",
987
+ "\u6170",
988
+ "\u6173",
989
+ "\u6176",
990
+ "\u617e",
991
+ "\u6182",
992
+ "\u618e",
993
+ "\u6190",
994
+ "\u6191",
995
+ "\u619a",
996
+ "\u61a4",
997
+ "\u61b2",
998
+ "\u61c7",
999
+ "\u61d0",
1000
+ "\u61f2",
1001
+ "\u61f8",
1002
+ "\u61fa",
1003
+ "\u620a",
1004
+ "\u620c",
1005
+ "\u620e",
1006
+ "\u6210",
1007
+ "\u6211",
1008
+ "\u6212",
1009
+ "\u6216",
1010
+ "\u6226",
1011
+ "\u622e",
1012
+ "\u622f",
1013
+ "\u6234",
1014
+ "\u6238",
1015
+ "\u623b",
1016
+ "\u623e",
1017
+ "\u623f",
1018
+ "\u6240",
1019
+ "\u6241",
1020
+ "\u6247",
1021
+ "\u6249",
1022
+ "\u624b",
1023
+ "\u624d",
1024
+ "\u6253",
1025
+ "\u6255",
1026
+ "\u6258",
1027
+ "\u625b",
1028
+ "\u6268",
1029
+ "\u626e",
1030
+ "\u6271",
1031
+ "\u6276",
1032
+ "\u627f",
1033
+ "\u6280",
1034
+ "\u6284",
1035
+ "\u628a",
1036
+ "\u6291",
1037
+ "\u6293",
1038
+ "\u6294",
1039
+ "\u6295",
1040
+ "\u6298",
1041
+ "\u629c",
1042
+ "\u629e",
1043
+ "\u62ab",
1044
+ "\u62b1",
1045
+ "\u62b5",
1046
+ "\u62bc",
1047
+ "\u62c5",
1048
+ "\u62cd",
1049
+ "\u62d2",
1050
+ "\u62d9",
1051
+ "\u62db",
1052
+ "\u62dd",
1053
+ "\u62e0",
1054
+ "\u62ec",
1055
+ "\u62ed",
1056
+ "\u62f3",
1057
+ "\u62f5",
1058
+ "\u62f6",
1059
+ "\u62fe",
1060
+ "\u6301",
1061
+ "\u6307",
1062
+ "\u6309",
1063
+ "\u6311",
1064
+ "\u6319",
1065
+ "\u631f",
1066
+ "\u6328",
1067
+ "\u632f",
1068
+ "\u633d",
1069
+ "\u633f",
1070
+ "\u6349",
1071
+ "\u6355",
1072
+ "\u635c",
1073
+ "\u6367",
1074
+ "\u6368",
1075
+ "\u636e",
1076
+ "\u637b",
1077
+ "\u6383",
1078
+ "\u6388",
1079
+ "\u6389",
1080
+ "\u638c",
1081
+ "\u6398",
1082
+ "\u639b",
1083
+ "\u639f",
1084
+ "\u63a1",
1085
+ "\u63a2",
1086
+ "\u63a5",
1087
+ "\u63a8",
1088
+ "\u63b4",
1089
+ "\u63bb",
1090
+ "\u63c3",
1091
+ "\u63c9",
1092
+ "\u63d0",
1093
+ "\u63da",
1094
+ "\u63db",
1095
+ "\u63e1",
1096
+ "\u63fa",
1097
+ "\u640d",
1098
+ "\u6417",
1099
+ "\u643a",
1100
+ "\u6442",
1101
+ "\u6458",
1102
+ "\u6469",
1103
+ "\u647a",
1104
+ "\u6483",
1105
+ "\u64a5",
1106
+ "\u64ab",
1107
+ "\u64ad",
1108
+ "\u64b0",
1109
+ "\u64b2",
1110
+ "\u64b9",
1111
+ "\u64cd",
1112
+ "\u64ec",
1113
+ "\u64f2",
1114
+ "\u652f",
1115
+ "\u6539",
1116
+ "\u653b",
1117
+ "\u653e",
1118
+ "\u653f",
1119
+ "\u6545",
1120
+ "\u6551",
1121
+ "\u6557",
1122
+ "\u6559",
1123
+ "\u6562",
1124
+ "\u6563",
1125
+ "\u6566",
1126
+ "\u656c",
1127
+ "\u6570",
1128
+ "\u6572",
1129
+ "\u6575",
1130
+ "\u6577",
1131
+ "\u6587",
1132
+ "\u6589",
1133
+ "\u658e",
1134
+ "\u6590",
1135
+ "\u6591",
1136
+ "\u6597",
1137
+ "\u6599",
1138
+ "\u659c",
1139
+ "\u65a4",
1140
+ "\u65ac",
1141
+ "\u65ad",
1142
+ "\u65af",
1143
+ "\u65b0",
1144
+ "\u65b9",
1145
+ "\u65bc",
1146
+ "\u65bd",
1147
+ "\u65c5",
1148
+ "\u65cf",
1149
+ "\u65d7",
1150
+ "\u65e2",
1151
+ "\u65e5",
1152
+ "\u65e6",
1153
+ "\u65e7",
1154
+ "\u65e8",
1155
+ "\u65e9",
1156
+ "\u65ec",
1157
+ "\u6606",
1158
+ "\u6607",
1159
+ "\u660c",
1160
+ "\u660e",
1161
+ "\u660f",
1162
+ "\u6613",
1163
+ "\u6614",
1164
+ "\u661f",
1165
+ "\u6625",
1166
+ "\u6628",
1167
+ "\u662f",
1168
+ "\u663c",
1169
+ "\u6642",
1170
+ "\u664b",
1171
+ "\u6652",
1172
+ "\u6666",
1173
+ "\u6669",
1174
+ "\u666e",
1175
+ "\u666f",
1176
+ "\u6674",
1177
+ "\u667a",
1178
+ "\u6681",
1179
+ "\u6687",
1180
+ "\u6691",
1181
+ "\u6696",
1182
+ "\u6697",
1183
+ "\u66a6",
1184
+ "\u66ab",
1185
+ "\u66ae",
1186
+ "\u66b4",
1187
+ "\u66c7",
1188
+ "\u66d9",
1189
+ "\u66da",
1190
+ "\u66dc",
1191
+ "\u66dd",
1192
+ "\u66f0",
1193
+ "\u66f2",
1194
+ "\u66f3",
1195
+ "\u66f4",
1196
+ "\u66f8",
1197
+ "\u66f9",
1198
+ "\u66fd",
1199
+ "\u66ff",
1200
+ "\u6700",
1201
+ "\u6708",
1202
+ "\u6709",
1203
+ "\u670b",
1204
+ "\u670d",
1205
+ "\u6714",
1206
+ "\u6715",
1207
+ "\u671b",
1208
+ "\u671d",
1209
+ "\u671f",
1210
+ "\u6727",
1211
+ "\u6728",
1212
+ "\u672a",
1213
+ "\u672b",
1214
+ "\u672c",
1215
+ "\u672d",
1216
+ "\u6731",
1217
+ "\u6734",
1218
+ "\u673d",
1219
+ "\u6749",
1220
+ "\u674e",
1221
+ "\u674f",
1222
+ "\u6750",
1223
+ "\u6751",
1224
+ "\u6753",
1225
+ "\u6756",
1226
+ "\u675c",
1227
+ "\u675f",
1228
+ "\u6761",
1229
+ "\u6763",
1230
+ "\u6765",
1231
+ "\u676f",
1232
+ "\u6771",
1233
+ "\u6775",
1234
+ "\u6777",
1235
+ "\u677e",
1236
+ "\u677f",
1237
+ "\u6795",
1238
+ "\u6797",
1239
+ "\u679a",
1240
+ "\u679c",
1241
+ "\u679d",
1242
+ "\u67af",
1243
+ "\u67b6",
1244
+ "\u67b8",
1245
+ "\u67c4",
1246
+ "\u67ca",
1247
+ "\u67cf",
1248
+ "\u67d0",
1249
+ "\u67d1",
1250
+ "\u67d3",
1251
+ "\u67d4",
1252
+ "\u67d8",
1253
+ "\u67da",
1254
+ "\u67f1",
1255
+ "\u67f3",
1256
+ "\u67f4",
1257
+ "\u67f5",
1258
+ "\u67ff",
1259
+ "\u6804",
1260
+ "\u6817",
1261
+ "\u682a",
1262
+ "\u6839",
1263
+ "\u683c",
1264
+ "\u683d",
1265
+ "\u6841",
1266
+ "\u6842",
1267
+ "\u6843",
1268
+ "\u6848",
1269
+ "\u6850",
1270
+ "\u6851",
1271
+ "\u6854",
1272
+ "\u685c",
1273
+ "\u685d",
1274
+ "\u685f",
1275
+ "\u6867",
1276
+ "\u6876",
1277
+ "\u6881",
1278
+ "\u6885",
1279
+ "\u6893",
1280
+ "\u6894",
1281
+ "\u6897",
1282
+ "\u689f",
1283
+ "\u68a2",
1284
+ "\u68a8",
1285
+ "\u68b6",
1286
+ "\u68c4",
1287
+ "\u68ca",
1288
+ "\u68d2",
1289
+ "\u68d7",
1290
+ "\u68d8",
1291
+ "\u68da",
1292
+ "\u68df",
1293
+ "\u68ee",
1294
+ "\u68f2",
1295
+ "\u68f9",
1296
+ "\u68fa",
1297
+ "\u6900",
1298
+ "\u690d",
1299
+ "\u690e",
1300
+ "\u6912",
1301
+ "\u691c",
1302
+ "\u6939",
1303
+ "\u693d",
1304
+ "\u693f",
1305
+ "\u694a",
1306
+ "\u695a",
1307
+ "\u6960",
1308
+ "\u696d",
1309
+ "\u6975",
1310
+ "\u697c",
1311
+ "\u697d",
1312
+ "\u6982",
1313
+ "\u698e",
1314
+ "\u699b",
1315
+ "\u69b4",
1316
+ "\u69c3",
1317
+ "\u69cb",
1318
+ "\u69cc",
1319
+ "\u69d8",
1320
+ "\u69d9",
1321
+ "\u6a0b",
1322
+ "\u6a19",
1323
+ "\u6a21",
1324
+ "\u6a29",
1325
+ "\u6a2a",
1326
+ "\u6a39",
1327
+ "\u6a3d",
1328
+ "\u6a4b",
1329
+ "\u6a58",
1330
+ "\u6a59",
1331
+ "\u6a5f",
1332
+ "\u6a80",
1333
+ "\u6ac3",
1334
+ "\u6adb",
1335
+ "\u6b1d",
1336
+ "\u6b20",
1337
+ "\u6b21",
1338
+ "\u6b32",
1339
+ "\u6b3a",
1340
+ "\u6b4c",
1341
+ "\u6b4e",
1342
+ "\u6b53",
1343
+ "\u6b5f",
1344
+ "\u6b62",
1345
+ "\u6b63",
1346
+ "\u6b64",
1347
+ "\u6b66",
1348
+ "\u6b69",
1349
+ "\u6b6f",
1350
+ "\u6b73",
1351
+ "\u6b74",
1352
+ "\u6b7b",
1353
+ "\u6b86",
1354
+ "\u6b8a",
1355
+ "\u6b8b",
1356
+ "\u6b96",
1357
+ "\u6bb5",
1358
+ "\u6bba",
1359
+ "\u6bbb",
1360
+ "\u6bbf",
1361
+ "\u6bcb",
1362
+ "\u6bcd",
1363
+ "\u6bce",
1364
+ "\u6bd2",
1365
+ "\u6bd4",
1366
+ "\u6bd8",
1367
+ "\u6bdb",
1368
+ "\u6beb",
1369
+ "\u6bec",
1370
+ "\u6c0f",
1371
+ "\u6c11",
1372
+ "\u6c17",
1373
+ "\u6c34",
1374
+ "\u6c37",
1375
+ "\u6c38",
1376
+ "\u6c40",
1377
+ "\u6c41",
1378
+ "\u6c42",
1379
+ "\u6c50",
1380
+ "\u6c57",
1381
+ "\u6c5a",
1382
+ "\u6c5d",
1383
+ "\u6c5f",
1384
+ "\u6c60",
1385
+ "\u6c70",
1386
+ "\u6c72",
1387
+ "\u6c7a",
1388
+ "\u6c88",
1389
+ "\u6c93",
1390
+ "\u6c96",
1391
+ "\u6c99",
1392
+ "\u6ca1",
1393
+ "\u6ca2",
1394
+ "\u6cab",
1395
+ "\u6cb3",
1396
+ "\u6cb8",
1397
+ "\u6cb9",
1398
+ "\u6cbb",
1399
+ "\u6cbc",
1400
+ "\u6cbd",
1401
+ "\u6cc1",
1402
+ "\u6cc9",
1403
+ "\u6cca",
1404
+ "\u6cd5",
1405
+ "\u6ce1",
1406
+ "\u6ce2",
1407
+ "\u6ce3",
1408
+ "\u6ce5",
1409
+ "\u6ce8",
1410
+ "\u6cf0",
1411
+ "\u6d0b",
1412
+ "\u6d12",
1413
+ "\u6d17",
1414
+ "\u6d1b",
1415
+ "\u6d1e",
1416
+ "\u6d25",
1417
+ "\u6d29",
1418
+ "\u6d2a",
1419
+ "\u6d32",
1420
+ "\u6d3b",
1421
+ "\u6d3e",
1422
+ "\u6d41",
1423
+ "\u6d44",
1424
+ "\u6d45",
1425
+ "\u6d5c",
1426
+ "\u6d66",
1427
+ "\u6d69",
1428
+ "\u6d6a",
1429
+ "\u6d6e",
1430
+ "\u6d74",
1431
+ "\u6d77",
1432
+ "\u6d78",
1433
+ "\u6d88",
1434
+ "\u6d95",
1435
+ "\u6d99",
1436
+ "\u6daf",
1437
+ "\u6db2",
1438
+ "\u6dbc",
1439
+ "\u6dc0",
1440
+ "\u6dcb",
1441
+ "\u6de1",
1442
+ "\u6deb",
1443
+ "\u6df1",
1444
+ "\u6df5",
1445
+ "\u6df7",
1446
+ "\u6dfb",
1447
+ "\u6e05",
1448
+ "\u6e07",
1449
+ "\u6e08",
1450
+ "\u6e0b",
1451
+ "\u6e13",
1452
+ "\u6e1b",
1453
+ "\u6e20",
1454
+ "\u6e21",
1455
+ "\u6e29",
1456
+ "\u6e2c",
1457
+ "\u6e38",
1458
+ "\u6e3e",
1459
+ "\u6e4a",
1460
+ "\u6e56",
1461
+ "\u6e5b",
1462
+ "\u6e67",
1463
+ "\u6e6f",
1464
+ "\u6e7f",
1465
+ "\u6e80",
1466
+ "\u6e8f",
1467
+ "\u6e90",
1468
+ "\u6e9c",
1469
+ "\u6e9d",
1470
+ "\u6ec5",
1471
+ "\u6ed1",
1472
+ "\u6edd",
1473
+ "\u6f01",
1474
+ "\u6f02",
1475
+ "\u6f06",
1476
+ "\u6f09",
1477
+ "\u6f0f",
1478
+ "\u6f14",
1479
+ "\u6f15",
1480
+ "\u6f22",
1481
+ "\u6f2b",
1482
+ "\u6f2c",
1483
+ "\u6f38",
1484
+ "\u6f45",
1485
+ "\u6f54",
1486
+ "\u6f5c",
1487
+ "\u6f64",
1488
+ "\u6f6e",
1489
+ "\u6f70",
1490
+ "\u6fc0",
1491
+ "\u6fc1",
1492
+ "\u6fc3",
1493
+ "\u6fe1",
1494
+ "\u6fe4",
1495
+ "\u6fef",
1496
+ "\u702c",
1497
+ "\u706b",
1498
+ "\u706f",
1499
+ "\u7070",
1500
+ "\u7078",
1501
+ "\u707d",
1502
+ "\u7089",
1503
+ "\u708a",
1504
+ "\u708e",
1505
+ "\u7092",
1506
+ "\u7099",
1507
+ "\u70ad",
1508
+ "\u70ae",
1509
+ "\u70b9",
1510
+ "\u70ba",
1511
+ "\u70c8",
1512
+ "\u70cf",
1513
+ "\u7109",
1514
+ "\u711a",
1515
+ "\u7121",
1516
+ "\u7126",
1517
+ "\u7136",
1518
+ "\u713c",
1519
+ "\u7149",
1520
+ "\u714e",
1521
+ "\u7159",
1522
+ "\u7164",
1523
+ "\u7167",
1524
+ "\u7169",
1525
+ "\u716e",
1526
+ "\u718a",
1527
+ "\u719f",
1528
+ "\u71a8",
1529
+ "\u71ac",
1530
+ "\u71b1",
1531
+ "\u71c3",
1532
+ "\u71d5",
1533
+ "\u71d7",
1534
+ "\u71e0",
1535
+ "\u71e5",
1536
+ "\u71ed",
1537
+ "\u71f5",
1538
+ "\u722a",
1539
+ "\u7230",
1540
+ "\u7236",
1541
+ "\u723a",
1542
+ "\u723e",
1543
+ "\u7247",
1544
+ "\u7248",
1545
+ "\u724c",
1546
+ "\u7259",
1547
+ "\u725b",
1548
+ "\u7261",
1549
+ "\u7262",
1550
+ "\u7267",
1551
+ "\u7269",
1552
+ "\u727d",
1553
+ "\u72a2",
1554
+ "\u72ac",
1555
+ "\u72af",
1556
+ "\u72b6",
1557
+ "\u72c2",
1558
+ "\u72ce",
1559
+ "\u72d0",
1560
+ "\u72d7",
1561
+ "\u72e9",
1562
+ "\u72ec",
1563
+ "\u72ed",
1564
+ "\u72f8",
1565
+ "\u72fc",
1566
+ "\u731b",
1567
+ "\u731c",
1568
+ "\u731f",
1569
+ "\u7325",
1570
+ "\u7329",
1571
+ "\u732a",
1572
+ "\u732b",
1573
+ "\u732e",
1574
+ "\u7334",
1575
+ "\u7336",
1576
+ "\u733f",
1577
+ "\u7344",
1578
+ "\u7345",
1579
+ "\u7363",
1580
+ "\u7372",
1581
+ "\u7384",
1582
+ "\u7387",
1583
+ "\u7389",
1584
+ "\u738b",
1585
+ "\u73cd",
1586
+ "\u73e0",
1587
+ "\u73fe",
1588
+ "\u7403",
1589
+ "\u7406",
1590
+ "\u7409",
1591
+ "\u7434",
1592
+ "\u745e",
1593
+ "\u7460",
1594
+ "\u7483",
1595
+ "\u74bd",
1596
+ "\u74dc",
1597
+ "\u74e2",
1598
+ "\u74e6",
1599
+ "\u74f6",
1600
+ "\u7518",
1601
+ "\u751a",
1602
+ "\u751f",
1603
+ "\u7523",
1604
+ "\u7528",
1605
+ "\u752b",
1606
+ "\u7530",
1607
+ "\u7531",
1608
+ "\u7532",
1609
+ "\u7533",
1610
+ "\u7537",
1611
+ "\u753a",
1612
+ "\u753b",
1613
+ "\u754c",
1614
+ "\u754f",
1615
+ "\u7551",
1616
+ "\u7559",
1617
+ "\u755c",
1618
+ "\u755d",
1619
+ "\u7560",
1620
+ "\u7562",
1621
+ "\u7565",
1622
+ "\u756a",
1623
+ "\u7570",
1624
+ "\u7573",
1625
+ "\u7577",
1626
+ "\u757f",
1627
+ "\u758b",
1628
+ "\u758e",
1629
+ "\u7591",
1630
+ "\u75ab",
1631
+ "\u75b1",
1632
+ "\u75b2",
1633
+ "\u75b3",
1634
+ "\u75b5",
1635
+ "\u75be",
1636
+ "\u75c5",
1637
+ "\u75c7",
1638
+ "\u75cd",
1639
+ "\u75db",
1640
+ "\u75e9",
1641
+ "\u75f4",
1642
+ "\u7621",
1643
+ "\u7624",
1644
+ "\u7642",
1645
+ "\u7656",
1646
+ "\u766a",
1647
+ "\u7678",
1648
+ "\u767a",
1649
+ "\u767b",
1650
+ "\u767d",
1651
+ "\u767e",
1652
+ "\u7684",
1653
+ "\u7686",
1654
+ "\u7687",
1655
+ "\u76ae",
1656
+ "\u76bf",
1657
+ "\u76c6",
1658
+ "\u76ca",
1659
+ "\u76d7",
1660
+ "\u76db",
1661
+ "\u76de",
1662
+ "\u76df",
1663
+ "\u76e4",
1664
+ "\u76e5",
1665
+ "\u76e7",
1666
+ "\u76ee",
1667
+ "\u76f2",
1668
+ "\u76f4",
1669
+ "\u76f8",
1670
+ "\u76fe",
1671
+ "\u7701",
1672
+ "\u7709",
1673
+ "\u770b",
1674
+ "\u770c",
1675
+ "\u771f",
1676
+ "\u7720",
1677
+ "\u773c",
1678
+ "\u7740",
1679
+ "\u7761",
1680
+ "\u7763",
1681
+ "\u7766",
1682
+ "\u7768",
1683
+ "\u77bb",
1684
+ "\u77e2",
1685
+ "\u77e3",
1686
+ "\u77e5",
1687
+ "\u77ed",
1688
+ "\u77f3",
1689
+ "\u7802",
1690
+ "\u780d",
1691
+ "\u7814",
1692
+ "\u7815",
1693
+ "\u7825",
1694
+ "\u7834",
1695
+ "\u786b",
1696
+ "\u786f",
1697
+ "\u7881",
1698
+ "\u7893",
1699
+ "\u7897",
1700
+ "\u78a7",
1701
+ "\u78c1",
1702
+ "\u78e8",
1703
+ "\u78ef",
1704
+ "\u7912",
1705
+ "\u792b",
1706
+ "\u793a",
1707
+ "\u793c",
1708
+ "\u793e",
1709
+ "\u7947",
1710
+ "\u7948",
1711
+ "\u7956",
1712
+ "\u795d",
1713
+ "\u795e",
1714
+ "\u795f",
1715
+ "\u7960",
1716
+ "\u7962",
1717
+ "\u7965",
1718
+ "\u796d",
1719
+ "\u7977",
1720
+ "\u7980",
1721
+ "\u7981",
1722
+ "\u7984",
1723
+ "\u7985",
1724
+ "\u798a",
1725
+ "\u798d",
1726
+ "\u798f",
1727
+ "\u79a6",
1728
+ "\u79bd",
1729
+ "\u79bf",
1730
+ "\u79c0",
1731
+ "\u79c1",
1732
+ "\u79cb",
1733
+ "\u79d1",
1734
+ "\u79d8",
1735
+ "\u79e1",
1736
+ "\u79e4",
1737
+ "\u79e6",
1738
+ "\u79f0",
1739
+ "\u79fb",
1740
+ "\u7a00",
1741
+ "\u7a0b",
1742
+ "\u7a17",
1743
+ "\u7a1a",
1744
+ "\u7a2e",
1745
+ "\u7a32",
1746
+ "\u7a3d",
1747
+ "\u7a3f",
1748
+ "\u7a40",
1749
+ "\u7a42",
1750
+ "\u7a4d",
1751
+ "\u7a62",
1752
+ "\u7a74",
1753
+ "\u7a76",
1754
+ "\u7a7a",
1755
+ "\u7a7f",
1756
+ "\u7a81",
1757
+ "\u7a93",
1758
+ "\u7a9f",
1759
+ "\u7aae",
1760
+ "\u7ab6",
1761
+ "\u7aba",
1762
+ "\u7ac3",
1763
+ "\u7ac4",
1764
+ "\u7aca",
1765
+ "\u7acb",
1766
+ "\u7adc",
1767
+ "\u7adf",
1768
+ "\u7ae0",
1769
+ "\u7ae5",
1770
+ "\u7aed",
1771
+ "\u7aef",
1772
+ "\u7af6",
1773
+ "\u7af9",
1774
+ "\u7afa",
1775
+ "\u7aff",
1776
+ "\u7b04",
1777
+ "\u7b0a",
1778
+ "\u7b11",
1779
+ "\u7b18",
1780
+ "\u7b1b",
1781
+ "\u7b20",
1782
+ "\u7b26",
1783
+ "\u7b2c",
1784
+ "\u7b39",
1785
+ "\u7b46",
1786
+ "\u7b48",
1787
+ "\u7b49",
1788
+ "\u7b4b",
1789
+ "\u7b4d",
1790
+ "\u7b4e",
1791
+ "\u7b51",
1792
+ "\u7b52",
1793
+ "\u7b54",
1794
+ "\u7b56",
1795
+ "\u7b65",
1796
+ "\u7b87",
1797
+ "\u7b92",
1798
+ "\u7b94",
1799
+ "\u7b95",
1800
+ "\u7b97",
1801
+ "\u7ba1",
1802
+ "\u7baa",
1803
+ "\u7bad",
1804
+ "\u7bb1",
1805
+ "\u7bb8",
1806
+ "\u7bc0",
1807
+ "\u7bc4",
1808
+ "\u7bc7",
1809
+ "\u7bc9",
1810
+ "\u7be0",
1811
+ "\u7be4",
1812
+ "\u7be9",
1813
+ "\u7bed",
1814
+ "\u7c00",
1815
+ "\u7c11",
1816
+ "\u7c21",
1817
+ "\u7c3e",
1818
+ "\u7c4d",
1819
+ "\u7c73",
1820
+ "\u7c7e",
1821
+ "\u7c83",
1822
+ "\u7c89",
1823
+ "\u7c8b",
1824
+ "\u7c92",
1825
+ "\u7c95",
1826
+ "\u7c97",
1827
+ "\u7c9f",
1828
+ "\u7ca5",
1829
+ "\u7ca7",
1830
+ "\u7cb3",
1831
+ "\u7cbd",
1832
+ "\u7cbe",
1833
+ "\u7cc0",
1834
+ "\u7cca",
1835
+ "\u7cd5",
1836
+ "\u7cd6",
1837
+ "\u7cde",
1838
+ "\u7cdf",
1839
+ "\u7ce0",
1840
+ "\u7ce7",
1841
+ "\u7cef",
1842
+ "\u7cf8",
1843
+ "\u7cfa",
1844
+ "\u7cfb",
1845
+ "\u7d00",
1846
+ "\u7d04",
1847
+ "\u7d05",
1848
+ "\u7d0b",
1849
+ "\u7d0d",
1850
+ "\u7d10",
1851
+ "\u7d17",
1852
+ "\u7d19",
1853
+ "\u7d1b",
1854
+ "\u7d20",
1855
+ "\u7d22",
1856
+ "\u7d2b",
1857
+ "\u7d2c",
1858
+ "\u7d2f",
1859
+ "\u7d30",
1860
+ "\u7d39",
1861
+ "\u7d3a",
1862
+ "\u7d42",
1863
+ "\u7d43",
1864
+ "\u7d44",
1865
+ "\u7d4c",
1866
+ "\u7d50",
1867
+ "\u7d5e",
1868
+ "\u7d66",
1869
+ "\u7d71",
1870
+ "\u7d75",
1871
+ "\u7d76",
1872
+ "\u7d79",
1873
+ "\u7d99",
1874
+ "\u7d9a",
1875
+ "\u7db1",
1876
+ "\u7db2",
1877
+ "\u7db4",
1878
+ "\u7db8",
1879
+ "\u7dba",
1880
+ "\u7dbe",
1881
+ "\u7dbf",
1882
+ "\u7dcb",
1883
+ "\u7dcf",
1884
+ "\u7dd1",
1885
+ "\u7dd2",
1886
+ "\u7dda",
1887
+ "\u7de8",
1888
+ "\u7de9",
1889
+ "\u7dec",
1890
+ "\u7df4",
1891
+ "\u7e01",
1892
+ "\u7e04",
1893
+ "\u7e1b",
1894
+ "\u7e21",
1895
+ "\u7e23",
1896
+ "\u7e26",
1897
+ "\u7e2b",
1898
+ "\u7e2e",
1899
+ "\u7e41",
1900
+ "\u7e45",
1901
+ "\u7e4b",
1902
+ "\u7e54",
1903
+ "\u7e6d",
1904
+ "\u7e70",
1905
+ "\u7e7b",
1906
+ "\u7e8f",
1907
+ "\u7e94",
1908
+ "\u7e9c",
1909
+ "\u7f6a",
1910
+ "\u7f6e",
1911
+ "\u7f70",
1912
+ "\u7f75",
1913
+ "\u7f77",
1914
+ "\u7f85",
1915
+ "\u7f8a",
1916
+ "\u7f8e",
1917
+ "\u7fa4",
1918
+ "\u7fa8",
1919
+ "\u7fa9",
1920
+ "\u7fb9",
1921
+ "\u7fbd",
1922
+ "\u7fc1",
1923
+ "\u7fc5",
1924
+ "\u7fcc",
1925
+ "\u7fd2",
1926
+ "\u7fd4",
1927
+ "\u7fe0",
1928
+ "\u7feb",
1929
+ "\u7ffa",
1930
+ "\u7ffb",
1931
+ "\u7ffc",
1932
+ "\u8001",
1933
+ "\u8003",
1934
+ "\u8005",
1935
+ "\u800c",
1936
+ "\u8012",
1937
+ "\u8015",
1938
+ "\u8017",
1939
+ "\u8033",
1940
+ "\u804a",
1941
+ "\u8056",
1942
+ "\u805a",
1943
+ "\u805e",
1944
+ "\u8073",
1945
+ "\u8074",
1946
+ "\u8077",
1947
+ "\u8086",
1948
+ "\u8089",
1949
+ "\u808c",
1950
+ "\u8096",
1951
+ "\u809a",
1952
+ "\u809d",
1953
+ "\u80a1",
1954
+ "\u80a5",
1955
+ "\u80a9",
1956
+ "\u80af",
1957
+ "\u80b2",
1958
+ "\u80b4",
1959
+ "\u80c3",
1960
+ "\u80c6",
1961
+ "\u80cc",
1962
+ "\u80ce",
1963
+ "\u80de",
1964
+ "\u80e1",
1965
+ "\u80f4",
1966
+ "\u80f8",
1967
+ "\u80fd",
1968
+ "\u8102",
1969
+ "\u8107",
1970
+ "\u8108",
1971
+ "\u810a",
1972
+ "\u811a",
1973
+ "\u8129",
1974
+ "\u8131",
1975
+ "\u8133",
1976
+ "\u813e",
1977
+ "\u814e",
1978
+ "\u8150",
1979
+ "\u8155",
1980
+ "\u8165",
1981
+ "\u816b",
1982
+ "\u816e",
1983
+ "\u8170",
1984
+ "\u8178",
1985
+ "\u8179",
1986
+ "\u817f",
1987
+ "\u8188",
1988
+ "\u818f",
1989
+ "\u819a",
1990
+ "\u819d",
1991
+ "\u81b3",
1992
+ "\u81be",
1993
+ "\u81cd",
1994
+ "\u81d8",
1995
+ "\u81e3",
1996
+ "\u81e5",
1997
+ "\u81e8",
1998
+ "\u81ea",
1999
+ "\u81ed",
2000
+ "\u81f3",
2001
+ "\u81f4",
2002
+ "\u81fc",
2003
+ "\u8201",
2004
+ "\u8202",
2005
+ "\u8208",
2006
+ "\u820c",
2007
+ "\u820e",
2008
+ "\u8217",
2009
+ "\u821b",
2010
+ "\u821c",
2011
+ "\u821e",
2012
+ "\u821f",
2013
+ "\u822c",
2014
+ "\u8239",
2015
+ "\u8258",
2016
+ "\u826f",
2017
+ "\u8271",
2018
+ "\u8272",
2019
+ "\u8276",
2020
+ "\u8278",
2021
+ "\u828b",
2022
+ "\u8292",
2023
+ "\u829d",
2024
+ "\u82a5",
2025
+ "\u82a6",
2026
+ "\u82ad",
2027
+ "\u82b1",
2028
+ "\u82b3",
2029
+ "\u82b8",
2030
+ "\u82b9",
2031
+ "\u82bd",
2032
+ "\u82d4",
2033
+ "\u82d7",
2034
+ "\u82de",
2035
+ "\u82df",
2036
+ "\u82e5",
2037
+ "\u82e6",
2038
+ "\u82f1",
2039
+ "\u8302",
2040
+ "\u8304",
2041
+ "\u8305",
2042
+ "\u830e",
2043
+ "\u8317",
2044
+ "\u8328",
2045
+ "\u8332",
2046
+ "\u8336",
2047
+ "\u8338",
2048
+ "\u8339",
2049
+ "\u8349",
2050
+ "\u834a",
2051
+ "\u8352",
2052
+ "\u8358",
2053
+ "\u8377",
2054
+ "\u837b",
2055
+ "\u839a",
2056
+ "\u839e",
2057
+ "\u83a8",
2058
+ "\u83ab",
2059
+ "\u83b1",
2060
+ "\u83c5",
2061
+ "\u83ca",
2062
+ "\u83d3",
2063
+ "\u83d6",
2064
+ "\u83dc",
2065
+ "\u83df",
2066
+ "\u83e9",
2067
+ "\u83ef",
2068
+ "\u83f0",
2069
+ "\u83f1",
2070
+ "\u8429",
2071
+ "\u8431",
2072
+ "\u843d",
2073
+ "\u8449",
2074
+ "\u8457",
2075
+ "\u845b",
2076
+ "\u8463",
2077
+ "\u8466",
2078
+ "\u846c",
2079
+ "\u846d",
2080
+ "\u8471",
2081
+ "\u8475",
2082
+ "\u847a",
2083
+ "\u8490",
2084
+ "\u8494",
2085
+ "\u8499",
2086
+ "\u849c",
2087
+ "\u84b2",
2088
+ "\u84b8",
2089
+ "\u84bf",
2090
+ "\u84cb",
2091
+ "\u84ec",
2092
+ "\u84ee",
2093
+ "\u84fc",
2094
+ "\u8513",
2095
+ "\u8521",
2096
+ "\u8526",
2097
+ "\u852d",
2098
+ "\u8535",
2099
+ "\u8549",
2100
+ "\u854e",
2101
+ "\u8557",
2102
+ "\u8568",
2103
+ "\u8569",
2104
+ "\u856a",
2105
+ "\u8577",
2106
+ "\u8584",
2107
+ "\u85a6",
2108
+ "\u85a9",
2109
+ "\u85aa",
2110
+ "\u85ab",
2111
+ "\u85ac",
2112
+ "\u85ae",
2113
+ "\u85af",
2114
+ "\u85ba",
2115
+ "\u85c1",
2116
+ "\u85e4",
2117
+ "\u85fb",
2118
+ "\u8607",
2119
+ "\u862d",
2120
+ "\u863f",
2121
+ "\u864e",
2122
+ "\u865a",
2123
+ "\u865e",
2124
+ "\u866b",
2125
+ "\u866c",
2126
+ "\u8671",
2127
+ "\u868a",
2128
+ "\u8695",
2129
+ "\u86a4",
2130
+ "\u86ab",
2131
+ "\u86c7",
2132
+ "\u86c9",
2133
+ "\u86cd",
2134
+ "\u86ce",
2135
+ "\u86d9",
2136
+ "\u86db",
2137
+ "\u86e4",
2138
+ "\u86ee",
2139
+ "\u86f8",
2140
+ "\u86fe",
2141
+ "\u8700",
2142
+ "\u8702",
2143
+ "\u8706",
2144
+ "\u8711",
2145
+ "\u8718",
2146
+ "\u871c",
2147
+ "\u8737",
2148
+ "\u873b",
2149
+ "\u8749",
2150
+ "\u874b",
2151
+ "\u8766",
2152
+ "\u8776",
2153
+ "\u877f",
2154
+ "\u87ba",
2155
+ "\u87c4",
2156
+ "\u87c7",
2157
+ "\u87e0",
2158
+ "\u87f9",
2159
+ "\u87fb",
2160
+ "\u880e",
2161
+ "\u8840",
2162
+ "\u8846",
2163
+ "\u884c",
2164
+ "\u8852",
2165
+ "\u8853",
2166
+ "\u8857",
2167
+ "\u885b",
2168
+ "\u885d",
2169
+ "\u8863",
2170
+ "\u8868",
2171
+ "\u8870",
2172
+ "\u887e",
2173
+ "\u887f",
2174
+ "\u8882",
2175
+ "\u8888",
2176
+ "\u888b",
2177
+ "\u888d",
2178
+ "\u8896",
2179
+ "\u88ab",
2180
+ "\u88b4",
2181
+ "\u88b7",
2182
+ "\u88c1",
2183
+ "\u88c2",
2184
+ "\u88c5",
2185
+ "\u88cf",
2186
+ "\u88dc",
2187
+ "\u88df",
2188
+ "\u88f3",
2189
+ "\u88f8",
2190
+ "\u88fd",
2191
+ "\u88fe",
2192
+ "\u890c",
2193
+ "\u8912",
2194
+ "\u895f",
2195
+ "\u897f",
2196
+ "\u8981",
2197
+ "\u8986",
2198
+ "\u898b",
2199
+ "\u898f",
2200
+ "\u8996",
2201
+ "\u8997",
2202
+ "\u899a",
2203
+ "\u89a7",
2204
+ "\u89aa",
2205
+ "\u89b3",
2206
+ "\u89d2",
2207
+ "\u89dc",
2208
+ "\u89e3",
2209
+ "\u89e6",
2210
+ "\u8a00",
2211
+ "\u8a08",
2212
+ "\u8a0e",
2213
+ "\u8a13",
2214
+ "\u8a17",
2215
+ "\u8a18",
2216
+ "\u8a1b",
2217
+ "\u8a1f",
2218
+ "\u8a2a",
2219
+ "\u8a2d",
2220
+ "\u8a31",
2221
+ "\u8a33",
2222
+ "\u8a34",
2223
+ "\u8a3b",
2224
+ "\u8a3c",
2225
+ "\u8a54",
2226
+ "\u8a55",
2227
+ "\u8a5e",
2228
+ "\u8a60",
2229
+ "\u8a63",
2230
+ "\u8a66",
2231
+ "\u8a69",
2232
+ "\u8a6b",
2233
+ "\u8a6e",
2234
+ "\u8a70",
2235
+ "\u8a71",
2236
+ "\u8a73",
2237
+ "\u8a75",
2238
+ "\u8a82",
2239
+ "\u8a87",
2240
+ "\u8a89",
2241
+ "\u8a8c",
2242
+ "\u8a8d",
2243
+ "\u8a93",
2244
+ "\u8a98",
2245
+ "\u8a9e",
2246
+ "\u8aa0",
2247
+ "\u8aa4",
2248
+ "\u8aac",
2249
+ "\u8aad",
2250
+ "\u8ab0",
2251
+ "\u8ab2",
2252
+ "\u8ab9",
2253
+ "\u8abf",
2254
+ "\u8ac7",
2255
+ "\u8acb",
2256
+ "\u8acc",
2257
+ "\u8ad6",
2258
+ "\u8ada",
2259
+ "\u8ae7",
2260
+ "\u8aed",
2261
+ "\u8af1",
2262
+ "\u8af7",
2263
+ "\u8af8",
2264
+ "\u8afa",
2265
+ "\u8b00",
2266
+ "\u8b02",
2267
+ "\u8b0e",
2268
+ "\u8b17",
2269
+ "\u8b19",
2270
+ "\u8b1b",
2271
+ "\u8b1d",
2272
+ "\u8b21",
2273
+ "\u8b58",
2274
+ "\u8b5a",
2275
+ "\u8b6c",
2276
+ "\u8b70",
2277
+ "\u8b72",
2278
+ "\u8b77",
2279
+ "\u8b83",
2280
+ "\u8b90",
2281
+ "\u8b92",
2282
+ "\u8c37",
2283
+ "\u8c46",
2284
+ "\u8c48",
2285
+ "\u8c4a",
2286
+ "\u8c61",
2287
+ "\u8c8c",
2288
+ "\u8c9d",
2289
+ "\u8c9e",
2290
+ "\u8ca0",
2291
+ "\u8ca1",
2292
+ "\u8ca2",
2293
+ "\u8ca7",
2294
+ "\u8ca8",
2295
+ "\u8caa",
2296
+ "\u8cab",
2297
+ "\u8cac",
2298
+ "\u8caf",
2299
+ "\u8cb0",
2300
+ "\u8cb4",
2301
+ "\u8cb7",
2302
+ "\u8cb8",
2303
+ "\u8cbb",
2304
+ "\u8cbc",
2305
+ "\u8cc0",
2306
+ "\u8cc3",
2307
+ "\u8cc4",
2308
+ "\u8cc7",
2309
+ "\u8cca",
2310
+ "\u8cce",
2311
+ "\u8cd1",
2312
+ "\u8cd3",
2313
+ "\u8cdc",
2314
+ "\u8cde",
2315
+ "\u8ce2",
2316
+ "\u8cea",
2317
+ "\u8d08",
2318
+ "\u8d14",
2319
+ "\u8d16",
2320
+ "\u8d64",
2321
+ "\u8d66",
2322
+ "\u8d70",
2323
+ "\u8d74",
2324
+ "\u8d77",
2325
+ "\u8d8a",
2326
+ "\u8d99",
2327
+ "\u8da3",
2328
+ "\u8db3",
2329
+ "\u8de1",
2330
+ "\u8de8",
2331
+ "\u8dea",
2332
+ "\u8def",
2333
+ "\u8df3",
2334
+ "\u8e0a",
2335
+ "\u8e0f",
2336
+ "\u8e30",
2337
+ "\u8e44",
2338
+ "\u8e8d",
2339
+ "\u8eab",
2340
+ "\u8eaf",
2341
+ "\u8eca",
2342
+ "\u8ecd",
2343
+ "\u8ed2",
2344
+ "\u8ee2",
2345
+ "\u8ef8",
2346
+ "\u8efd",
2347
+ "\u8f09",
2348
+ "\u8f14",
2349
+ "\u8f19",
2350
+ "\u8f1d",
2351
+ "\u8f29",
2352
+ "\u8f2a",
2353
+ "\u8f2f",
2354
+ "\u8f3f",
2355
+ "\u8f9b",
2356
+ "\u8f9e",
2357
+ "\u8fb0",
2358
+ "\u8fb1",
2359
+ "\u8fb2",
2360
+ "\u8fba",
2361
+ "\u8fbb",
2362
+ "\u8fbc",
2363
+ "\u8fc4",
2364
+ "\u8fce",
2365
+ "\u8fd1",
2366
+ "\u8fd4",
2367
+ "\u8fda",
2368
+ "\u8fe6",
2369
+ "\u8feb",
2370
+ "\u8ff0",
2371
+ "\u8ff7",
2372
+ "\u8ffd",
2373
+ "\u9000",
2374
+ "\u9001",
2375
+ "\u9003",
2376
+ "\u9006",
2377
+ "\u900f",
2378
+ "\u9010",
2379
+ "\u9014",
2380
+ "\u9017",
2381
+ "\u9019",
2382
+ "\u901a",
2383
+ "\u901e",
2384
+ "\u901f",
2385
+ "\u9020",
2386
+ "\u9022",
2387
+ "\u9023",
2388
+ "\u9032",
2389
+ "\u9038",
2390
+ "\u9041",
2391
+ "\u9042",
2392
+ "\u9045",
2393
+ "\u9047",
2394
+ "\u904a",
2395
+ "\u904b",
2396
+ "\u904d",
2397
+ "\u904e",
2398
+ "\u9053",
2399
+ "\u9054",
2400
+ "\u9055",
2401
+ "\u9060",
2402
+ "\u9063",
2403
+ "\u9065",
2404
+ "\u9069",
2405
+ "\u9078",
2406
+ "\u907a",
2407
+ "\u907d",
2408
+ "\u907f",
2409
+ "\u9084",
2410
+ "\u9091",
2411
+ "\u90a3",
2412
+ "\u90aa",
2413
+ "\u90ce",
2414
+ "\u90e1",
2415
+ "\u90e8",
2416
+ "\u90ed",
2417
+ "\u90f7",
2418
+ "\u90fd",
2419
+ "\u9119",
2420
+ "\u914c",
2421
+ "\u914d",
2422
+ "\u9152",
2423
+ "\u9154",
2424
+ "\u9162",
2425
+ "\u9177",
2426
+ "\u9192",
2427
+ "\u919c",
2428
+ "\u91a4",
2429
+ "\u91c7",
2430
+ "\u91c8",
2431
+ "\u91cc",
2432
+ "\u91cd",
2433
+ "\u91ce",
2434
+ "\u91cf",
2435
+ "\u91d1",
2436
+ "\u91d8",
2437
+ "\u91dc",
2438
+ "\u91dd",
2439
+ "\u91e3",
2440
+ "\u920e",
2441
+ "\u9234",
2442
+ "\u9244",
2443
+ "\u9262",
2444
+ "\u9266",
2445
+ "\u927e",
2446
+ "\u9280",
2447
+ "\u9285",
2448
+ "\u9298",
2449
+ "\u929a",
2450
+ "\u92ad",
2451
+ "\u92e4",
2452
+ "\u92f8",
2453
+ "\u9320",
2454
+ "\u9326",
2455
+ "\u932b",
2456
+ "\u932c",
2457
+ "\u9332",
2458
+ "\u934b",
2459
+ "\u935b",
2460
+ "\u936c",
2461
+ "\u938c",
2462
+ "\u93a7",
2463
+ "\u93ae",
2464
+ "\u93e1",
2465
+ "\u9418",
2466
+ "\u9419",
2467
+ "\u9451",
2468
+ "\u9453",
2469
+ "\u9475",
2470
+ "\u947f",
2471
+ "\u9577",
2472
+ "\u9580",
2473
+ "\u9583",
2474
+ "\u9589",
2475
+ "\u958b",
2476
+ "\u958f",
2477
+ "\u9591",
2478
+ "\u9593",
2479
+ "\u9594",
2480
+ "\u9599",
2481
+ "\u95a2",
2482
+ "\u95a8",
2483
+ "\u95c7",
2484
+ "\u95d5",
2485
+ "\u95e2",
2486
+ "\u9632",
2487
+ "\u963f",
2488
+ "\u9640",
2489
+ "\u9644",
2490
+ "\u964d",
2491
+ "\u9650",
2492
+ "\u9662",
2493
+ "\u9663",
2494
+ "\u9664",
2495
+ "\u9665",
2496
+ "\u966a",
2497
+ "\u9670",
2498
+ "\u9673",
2499
+ "\u9675",
2500
+ "\u9676",
2501
+ "\u9678",
2502
+ "\u967d",
2503
+ "\u9685",
2504
+ "\u9688",
2505
+ "\u968e",
2506
+ "\u968f",
2507
+ "\u9694",
2508
+ "\u9699",
2509
+ "\u969b",
2510
+ "\u969c",
2511
+ "\u96a0",
2512
+ "\u96a3",
2513
+ "\u96b7",
2514
+ "\u96ba",
2515
+ "\u96bb",
2516
+ "\u96bc",
2517
+ "\u96c0",
2518
+ "\u96c1",
2519
+ "\u96c4",
2520
+ "\u96c5",
2521
+ "\u96c6",
2522
+ "\u96c9",
2523
+ "\u96cc",
2524
+ "\u96d1",
2525
+ "\u96d6",
2526
+ "\u96db",
2527
+ "\u96e2",
2528
+ "\u96e3",
2529
+ "\u96e8",
2530
+ "\u96ea",
2531
+ "\u96eb",
2532
+ "\u96f2",
2533
+ "\u96f6",
2534
+ "\u96f7",
2535
+ "\u96f9",
2536
+ "\u96fb",
2537
+ "\u9700",
2538
+ "\u9707",
2539
+ "\u970a",
2540
+ "\u970e",
2541
+ "\u9716",
2542
+ "\u971c",
2543
+ "\u971e",
2544
+ "\u9727",
2545
+ "\u9730",
2546
+ "\u9732",
2547
+ "\u9752",
2548
+ "\u9759",
2549
+ "\u975e",
2550
+ "\u9761",
2551
+ "\u9762",
2552
+ "\u9769",
2553
+ "\u976d",
2554
+ "\u9781",
2555
+ "\u9786",
2556
+ "\u978b",
2557
+ "\u978d",
2558
+ "\u9798",
2559
+ "\u97a0",
2560
+ "\u97ad",
2561
+ "\u97d3",
2562
+ "\u97f3",
2563
+ "\u97ff",
2564
+ "\u9802",
2565
+ "\u9803",
2566
+ "\u9806",
2567
+ "\u9808",
2568
+ "\u9810",
2569
+ "\u9813",
2570
+ "\u9818",
2571
+ "\u982c",
2572
+ "\u982d",
2573
+ "\u9838",
2574
+ "\u983b",
2575
+ "\u983c",
2576
+ "\u9846",
2577
+ "\u984c",
2578
+ "\u984d",
2579
+ "\u9854",
2580
+ "\u9855",
2581
+ "\u9858",
2582
+ "\u985b",
2583
+ "\u985e",
2584
+ "\u9867",
2585
+ "\u98a8",
2586
+ "\u98db",
2587
+ "\u98df",
2588
+ "\u98e2",
2589
+ "\u98e9",
2590
+ "\u98ef",
2591
+ "\u98f2",
2592
+ "\u98f4",
2593
+ "\u98fc",
2594
+ "\u98fd",
2595
+ "\u98fe",
2596
+ "\u9905",
2597
+ "\u990a",
2598
+ "\u990c",
2599
+ "\u9913",
2600
+ "\u9921",
2601
+ "\u9928",
2602
+ "\u9940",
2603
+ "\u9945",
2604
+ "\u9957",
2605
+ "\u9996",
2606
+ "\u9999",
2607
+ "\u99ac",
2608
+ "\u99b3",
2609
+ "\u99b4",
2610
+ "\u99c4",
2611
+ "\u99c5",
2612
+ "\u99c6",
2613
+ "\u99d2",
2614
+ "\u99d5",
2615
+ "\u99ed",
2616
+ "\u99ff",
2617
+ "\u9a0e",
2618
+ "\u9a12",
2619
+ "\u9a13",
2620
+ "\u9a19",
2621
+ "\u9a28",
2622
+ "\u9a55",
2623
+ "\u9a5a",
2624
+ "\u9a6a",
2625
+ "\u9aa8",
2626
+ "\u9ab8",
2627
+ "\u9ad8",
2628
+ "\u9aea",
2629
+ "\u9aed",
2630
+ "\u9af7",
2631
+ "\u9b1f",
2632
+ "\u9b22",
2633
+ "\u9b3c",
2634
+ "\u9b41",
2635
+ "\u9b42",
2636
+ "\u9b45",
2637
+ "\u9b4f",
2638
+ "\u9b54",
2639
+ "\u9b5a",
2640
+ "\u9b6f",
2641
+ "\u9b8e",
2642
+ "\u9b91",
2643
+ "\u9b92",
2644
+ "\u9b93",
2645
+ "\u9ba0",
2646
+ "\u9ba8",
2647
+ "\u9bab",
2648
+ "\u9bad",
2649
+ "\u9bae",
2650
+ "\u9bb9",
2651
+ "\u9bc9",
2652
+ "\u9bd6",
2653
+ "\u9bdb",
2654
+ "\u9be8",
2655
+ "\u9bf2",
2656
+ "\u9bf7",
2657
+ "\u9c06",
2658
+ "\u9c0c",
2659
+ "\u9c24",
2660
+ "\u9c2d",
2661
+ "\u9c2f",
2662
+ "\u9c39",
2663
+ "\u9c3b",
2664
+ "\u9c48",
2665
+ "\u9c52",
2666
+ "\u9c57",
2667
+ "\u9c60",
2668
+ "\u9c63",
2669
+ "\u9c67",
2670
+ "\u9c78",
2671
+ "\u9ce5",
2672
+ "\u9ce9",
2673
+ "\u9cf0",
2674
+ "\u9cf3",
2675
+ "\u9cf4",
2676
+ "\u9cf6",
2677
+ "\u9d28",
2678
+ "\u9d2b",
2679
+ "\u9d2c",
2680
+ "\u9d3b",
2681
+ "\u9d46",
2682
+ "\u9d59",
2683
+ "\u9d5c",
2684
+ "\u9d5d",
2685
+ "\u9d89",
2686
+ "\u9d8f",
2687
+ "\u9db4",
2688
+ "\u9df2",
2689
+ "\u9df9",
2690
+ "\u9dfa",
2691
+ "\u9e7f",
2692
+ "\u9e81",
2693
+ "\u9e93",
2694
+ "\u9e97",
2695
+ "\u9ea6",
2696
+ "\u9ea9",
2697
+ "\u9eb9",
2698
+ "\u9eba",
2699
+ "\u9ebb",
2700
+ "\u9ec4",
2701
+ "\u9ecd",
2702
+ "\u9ed2",
2703
+ "\u9ed9",
2704
+ "\u9ee8",
2705
+ "\u9f08",
2706
+ "\u9f0e",
2707
+ "\u9f13",
2708
+ "\u9f20",
2709
+ "\u9f3b",
2710
+ "\u9f3e",
2711
+ "\u9f62",
2712
+ "\u9f63",
2713
+ "\ufa1f",
2714
+ "\ufa3f",
2715
+ "\ufa55",
2716
+ "\ufa5c",
2717
+ "\ufa68"
2718
+ ],
2719
+ "mlp_dim": 1024,
2720
+ "model_type": "metom",
2721
+ "patch_size": 16,
2722
+ "pool": "cls",
2723
+ "transformers_version": "4.46.2"
2724
+ }
configuration_metom.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import List
2
+
3
+ from transformers import PretrainedConfig
4
+
5
+
6
+ class MetomConfig(PretrainedConfig):
7
+ model_type = "metom"
8
+
9
+ def __init__(
10
+ self,
11
+ image_size: int = 128,
12
+ patch_size: int = 16,
13
+ labels: List[str] = [],
14
+ dim: int = 256,
15
+ depth: int = 6,
16
+ heads: int = 8,
17
+ mlp_dim: int = 1024,
18
+ pool: str = "cls",
19
+ channels: int = 3,
20
+ dim_head: int = 32,
21
+ dropout: float = 0.1,
22
+ emb_dropout: float = 0.1,
23
+ **kwargs
24
+ ):
25
+ super().__init__(
26
+ image_size=image_size,
27
+ patch_size=patch_size,
28
+ labels=labels,
29
+ dim=dim,
30
+ depth=depth,
31
+ heads=heads,
32
+ mlp_dim=mlp_dim,
33
+ pool=pool,
34
+ channels=channels,
35
+ dim_head=dim_head,
36
+ dropout=dropout,
37
+ emb_dropout=emb_dropout,
38
+ **kwargs
39
+ )
examples/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Kuzushini Example Images
2
+ Example Kuzushiji images stored in this directory are from [日本古典籍くずし字データセット](http://codh.rois.ac.jp/char-shape/).
3
+ Note that the dataset is provided under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/), so all images in the [examples/](./) directory are licensed under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).
4
+
5
+ Images in this directory are sampled from the test subset.
6
+
7
+ ![](./example1_4E00.jpg)
8
+ *Class: U+4E00 (一)*
9
+
10
+ ![](./example2_5B9A.jpg)
11
+ *Class: U+5B9A (定)*
12
+
13
+ ![](./example3_5009.jpg)
14
+ *Class: U+5009 (倉)*
15
+
16
+ ## Reference
17
+ [『日本古典籍くずし字データセット』](http://codh.rois.ac.jp/char-shape/)(国文研ほか所蔵/CODH加工) doi:10.20676/00000340
18
+
19
+ 提供:[ROIS-DS人文学オープンデータ共同利用センター](http://codh.rois.ac.jp/)
examples/example1_4E00.jpg ADDED
examples/example2_5B9A.jpg ADDED
examples/example3_5009.jpg ADDED
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0485d6113b55737a62d1b518df32e81f6def519de31023a92d2fdfcd9f7187e6
3
+ size 22587692
modeling_metom.py ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is a modified version of the Vision Transformer - Pytorch implementation
2
+ # https://github.com/lucidrains/vit-pytorch/blob/main/vit_pytorch/vit.py
3
+ from typing import List, Union, Tuple
4
+
5
+ from einops import rearrange, repeat
6
+ from einops.layers.torch import Rearrange
7
+ import torch
8
+ from torch import nn
9
+ from transformers import PreTrainedModel
10
+
11
+ from .configuration_metom import MetomConfig
12
+
13
+
14
+ try:
15
+ from flash_attn import flash_attn_func
16
+ FLASH_ATTENTION_2_AVAILABLE = True
17
+ except ImportError:
18
+ FLASH_ATTENTION_2_AVAILABLE = False
19
+
20
+
21
+ def size_pair(t):
22
+ return t if isinstance(t, tuple) else (t, t)
23
+
24
+
25
+ class MetomFeedForward(nn.Module):
26
+ def __init__(self, dim, hidden_dim, dropout):
27
+ super().__init__()
28
+ self.net = nn.Sequential(
29
+ nn.LayerNorm(dim),
30
+ nn.Linear(dim, hidden_dim),
31
+ nn.GELU(),
32
+ nn.Dropout(dropout),
33
+ nn.Linear(hidden_dim, dim),
34
+ nn.Dropout(dropout)
35
+ )
36
+
37
+ def forward(self, x):
38
+ return self.net(x)
39
+
40
+
41
+ class MetomAttention(nn.Module):
42
+ def __init__(self, dim, heads, dim_head, dropout):
43
+ super().__init__()
44
+ inner_dim = dim_head * heads
45
+ project_out = not (heads == 1 and dim_head == dim)
46
+ self.heads = heads
47
+ self.scale = dim_head ** -0.5
48
+ self.norm = nn.LayerNorm(dim)
49
+ self.attend = nn.Softmax(dim = -1)
50
+ self.dropout = nn.Dropout(dropout)
51
+ self.to_qkv = nn.Linear(dim, inner_dim * 3, bias = False)
52
+ self.to_out = nn.Sequential(
53
+ nn.Linear(inner_dim, dim),
54
+ nn.Dropout(dropout)
55
+ ) if project_out else nn.Identity()
56
+
57
+ def forward(self, x):
58
+ x = self.norm(x)
59
+ qkv = self.to_qkv(x).chunk(3, dim = -1)
60
+ q, k, v = map(lambda t: rearrange(t, "b n (h d) -> b h n d", h = self.heads), qkv)
61
+ dots = torch.matmul(q, k.transpose(-1, -2)) * self.scale
62
+ attn = self.attend(dots)
63
+ attn = self.dropout(attn)
64
+ out = torch.matmul(attn, v)
65
+ out = rearrange(out, "b h n d -> b n (h d)")
66
+ return self.to_out(out)
67
+
68
+
69
+ class MetomSdpaAttention(MetomAttention):
70
+ def forward(self, x):
71
+ x = self.norm(x)
72
+ qkv = self.to_qkv(x).chunk(3, dim = -1)
73
+ q, k, v = map(lambda t: rearrange(t, "b n (h d) -> b h n d", h = self.heads), qkv)
74
+ out = nn.functional.scaled_dot_product_attention(q, k, v, dropout_p=self.dropout.p if self.training else 0.0)
75
+ out = rearrange(out, "b h n d -> b n (h d)")
76
+ return self.to_out(out)
77
+
78
+
79
+ class MetomFlashAttention2(MetomAttention):
80
+ def forward(self, x):
81
+ x = self.norm(x)
82
+ qkv = self.to_qkv(x).chunk(3, dim = -1)
83
+ q, k, v = map(lambda t: rearrange(t, "b n (h d) -> b h n d", h = self.heads), qkv)
84
+ out = flash_attn_func(q, k, v, dropout_p=self.dropout.p if self.training else 0.0)
85
+ out = rearrange(out, "b h n d -> b n (h d)")
86
+ return self.to_out(out)
87
+
88
+
89
+ class MetomTransformer(nn.Module):
90
+ def __init__(self, dim, depth, heads, dim_head, mlp_dim, dropout, _attn_implementation = "eager"):
91
+ super().__init__()
92
+ if _attn_implementation == "flash_attention_2":
93
+ assert FLASH_ATTENTION_2_AVAILABLE, "FlashAttention-2 is not available. Please install `flash-attn`."
94
+ attn_cls = (
95
+ MetomAttention if _attn_implementation == "eager" else
96
+ MetomSdpaAttention if _attn_implementation == "sdpa" else
97
+ MetomFlashAttention2 if _attn_implementation == "flash_attention_2" else
98
+ MetomAttention
99
+ )
100
+ self.norm = nn.LayerNorm(dim)
101
+ self.layers = nn.ModuleList([])
102
+ for _ in range(depth):
103
+ self.layers.append(nn.ModuleList([
104
+ attn_cls(dim, heads = heads, dim_head = dim_head, dropout = dropout),
105
+ MetomFeedForward(dim, mlp_dim, dropout = dropout)
106
+ ]))
107
+
108
+ def forward(self, x):
109
+ for attn, ff in self.layers:
110
+ x = attn(x) + x
111
+ x = ff(x) + x
112
+ return self.norm(x)
113
+
114
+
115
+ class MetomModel(PreTrainedModel):
116
+ config_class = MetomConfig
117
+ _supports_flash_attn_2 = True
118
+ _supports_sdpa = True
119
+
120
+ def __init__(self, config: MetomConfig):
121
+ super().__init__(config)
122
+ image_height, image_width = size_pair(config.image_size)
123
+ patch_height, patch_width = size_pair(config.patch_size)
124
+ assert image_height % patch_height == 0 and image_width % patch_width == 0, "Image dimensions must be divisible by the patch size."
125
+
126
+ num_patches = (image_height // patch_height) * (image_width // patch_width)
127
+ patch_dim = config.channels * patch_height * patch_width
128
+ assert config.pool in {"cls", "mean"}, "pool type must be either cls (cls token) or mean (mean pooling)"
129
+ assert len(config.labels) > 0, "labels must be composed of at least one label"
130
+ assert config._attn_implementation in {"eager", "sdpa", "flash_attention_2"}, "Attention implementation must be either eager, sdpa or flash_attention_2"
131
+
132
+ self.to_patch_embedding = nn.Sequential(
133
+ Rearrange("b c (h p1) (w p2) -> b (h w) (p1 p2 c)", p1 = patch_height, p2 = patch_width),
134
+ nn.LayerNorm(patch_dim),
135
+ nn.Linear(patch_dim, config.dim),
136
+ nn.LayerNorm(config.dim),
137
+ )
138
+ self.pos_embedding = nn.Parameter(torch.randn(1, num_patches + 1, config.dim))
139
+ self.cls_token = nn.Parameter(torch.randn(1, 1, config.dim))
140
+ self.dropout = nn.Dropout(config.emb_dropout)
141
+ self.transformer = MetomTransformer(
142
+ config.dim, config.depth, config.heads, config.dim_head, config.mlp_dim, config.dropout, config._attn_implementation
143
+ )
144
+ self.pool = config.pool
145
+ self.to_latent = nn.Identity()
146
+ self.mlp_head = nn.Linear(config.dim, len(config.labels))
147
+ self.labels = config.labels
148
+
149
+ def forward(self, processed_image):
150
+ x = self.to_patch_embedding(processed_image)
151
+ b, n, _ = x.shape
152
+ cls_tokens = repeat(self.cls_token, "1 1 d -> b 1 d", b = b)
153
+ x = torch.cat((cls_tokens, x), dim=1)
154
+ x += self.pos_embedding[:, :(n + 1)]
155
+ x = self.dropout(x)
156
+ x = self.transformer(x)
157
+ x = x.mean(dim = 1) if self.pool == "mean" else x[:, 0]
158
+ x = self.to_latent(x)
159
+ return self.mlp_head(x)
160
+
161
+ def get_predictions(self, processed_image: torch.Tensor) -> List[str]:
162
+ logits = self(processed_image)
163
+ indices = torch.argmax(logits, dim=-1)
164
+ return [self.labels[i] for i in indices]
165
+
166
+ def get_topk_labels(
167
+ self, processed_image: torch.Tensor, k: int = 5, return_probs: bool = False
168
+ ) -> Union[List[List[str]], List[List[Tuple[str, float]]]]:
169
+ assert 0 < k <= len(self.labels), "k must be a positive integer less than or equal to the number of labels"
170
+ logits = self(processed_image)
171
+ probs = torch.softmax(logits, dim=-1)
172
+ topk_probs, topk_indices = torch.topk(probs, k, dim=-1)
173
+ topk_labels = [[self.labels[i] for i in ti] for ti in topk_indices]
174
+ if return_probs:
175
+ return [
176
+ [(label, prob.item()) for label, prob in zip(labels, probs)]
177
+ for labels, probs in zip(topk_labels, topk_probs)
178
+ ]
179
+ return topk_labels
preprocessor_config.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "do_normalize": true,
3
+ "do_rescale": true,
4
+ "do_resize": true,
5
+ "image_mean": [
6
+ 0.48145466,
7
+ 0.4578275,
8
+ 0.40821073
9
+ ],
10
+ "image_processor_type": "ViTImageProcessor",
11
+ "image_std": [
12
+ 0.26862954,
13
+ 0.26130258,
14
+ 0.27577711
15
+ ],
16
+ "resample": 3,
17
+ "rescale_factor": 0.00392156862745098,
18
+ "size": {
19
+ "height": 128,
20
+ "width": 128
21
+ }
22
+ }