diff --git a/icu4c/source/common/dictbe.cpp b/icu4c/source/common/dictbe.cpp
index 08e4c0a9b7a..4fdbdf2760f 100644
--- a/icu4c/source/common/dictbe.cpp
+++ b/icu4c/source/common/dictbe.cpp
@@ -1434,7 +1434,7 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText,
// In phrase breaking, there has to be a breakpoint between Cj character and
// the number/open punctuation.
// E.g. る文字「そうだ、京都」->る▁文字▁「そうだ、▁京都」-> breakpoint between 字 and「
- // E.g. 乗車率90%程度だろうか -> 乗車▁率▁90%▁程度だ▁ろうか -> breakpoint between 率 and 9
+ // E.g. 乗車率90%程度だろうか -> 乗車▁率▁90%▁程度だろうか -> breakpoint between 率 and 9
// E.g. しかもロゴがUnicode! -> しかも▁ロゴが▁Unicode!-> breakpoint between が and U
if (isPhraseBreaking) {
if (!fDigitOrOpenPunctuationOrAlphabetSet.contains(nextChar)) {
@@ -1453,19 +1453,17 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText,
}
void CjkBreakEngine::initJapanesePhraseParameter(UErrorCode& error) {
- loadJapaneseParticleAndAuxVerbs(error);
+ loadJapaneseExtensions(error);
loadHiragana(error);
}
-void CjkBreakEngine::loadJapaneseParticleAndAuxVerbs(UErrorCode& error) {
- const char* tags[2] = { "particles", "auxVerbs" };
+void CjkBreakEngine::loadJapaneseExtensions(UErrorCode& error) {
+ const char* tag = "extensions";
ResourceBundle ja(U_ICUDATA_BRKITR, "ja", error);
if (U_SUCCESS(error)) {
- for (int32_t i = 0; i < 2; i++) {
- ResourceBundle bundle = ja.get(tags[i], error);
- while (U_SUCCESS(error) && bundle.hasNext()) {
- fSkipSet.puti(bundle.getNextString(error), 1, error);
- }
+ ResourceBundle bundle = ja.get(tag, error);
+ while (U_SUCCESS(error) && bundle.hasNext()) {
+ fSkipSet.puti(bundle.getNextString(error), 1, error);
}
}
}
diff --git a/icu4c/source/common/dictbe.h b/icu4c/source/common/dictbe.h
index a73274e3e9d..ca1a3c28b7b 100644
--- a/icu4c/source/common/dictbe.h
+++ b/icu4c/source/common/dictbe.h
@@ -376,11 +376,11 @@ class CjkBreakEngine : public DictionaryBreakEngine {
const Normalizer2 *nfkcNorm2;
private:
- // Load Japanese particles and auxiliary verbs.
- void loadJapaneseParticleAndAuxVerbs(UErrorCode& error);
+ // Load Japanese extensions.
+ void loadJapaneseExtensions(UErrorCode& error);
// Load Japanese Hiragana.
void loadHiragana(UErrorCode& error);
- // Initialize fSkipSet by loading Japanese Hiragana, particles and auxiliary verbs.
+ // Initialize fSkipSet by loading Japanese Hiragana and extensions.
void initJapanesePhraseParameter(UErrorCode& error);
Hashtable fSkipSet;
diff --git a/icu4c/source/data/brkitr/ja.txt b/icu4c/source/data/brkitr/ja.txt
index f36268c1712..1aa5914283c 100644
--- a/icu4c/source/data/brkitr/ja.txt
+++ b/icu4c/source/data/brkitr/ja.txt
@@ -12,14 +12,64 @@ ja{
line_strict:process(dependency){"line_cj.brk"}
line_strict_phrase:process(dependency){"line_phrase_cj.brk"}
}
- particles{
- か, かしら, から, が, くらい, けれども, こそ,
- さ, さえ, しか, だけ, だに, だの, て, で, でも,
- と, ところが, とも, な, など, なり, に, ね, の,
- ので, のに, は, ば, ばかり, へ, ほど, まで, も,
- や, やら, よ, より, わ, を
- }
- auxVerbs {
- です, でしょ, でし, ます, ませ, まし
+ extensions{
+ // Extensions.
+ // Entries in cjdict.txt categorized as particles (助詞), auxiliary verbs (助動詞),
+ // conjugations (活用) and prefix of them.
+ // These entries are connected to the previous words for phrase based line breaking.
+ // https://ja.wikipedia.org/wiki/助詞
+ // https://ja.wikipedia.org/wiki/助動詞_(国文法)
+ // https://ja.wikipedia.org/wiki/活用
+ かい, かしら, から, きり, くらい,
+ ぐらい, けれど, けれども, こそ, さえ,
+ しか, した, ずつ, せる, せん,
+ たい, たがる, たく, たら, たり,
+ だけ, だに, だの, だり, つつ,
+ てる, です, でも, ところが, ところで,
+ とも, ない, なか, ながら, なく,
+ なし, なぞ, など, なら, なり,
+ なんぞ, ねる, ので, のに, のみ,
+ ばかり, へる, ほど, まい, まう,
+ まし, ます, まっ, まで, まま,
+ もん, やら, よう, より, らしい,
+ られる, れる, ろう, わっ, わな,
+ わら, わり, わる, われ, わん,
+
+ // Entries added for technical reasons (particle + others).
+ // Entries in cjdict.txt, which are compound words starting from the above categories
+ // (i.e. particles, auxiliary verbs and conjunctions).
+ // These entries are connected to the previous words for phrase based line breaking.
+ えたい, えて, える, けた, けたい,
+ ける, させる, そうだ, っきゃ, っきり,
+ っけ, っす, ったらしい, っちゅう, って,
+ っていう, ってか, ってな, っと, っぱなし,
+ っぷり, っぽい, にあう, にあがる, にあたって,
+ にあたり, にあたりまして, にあたります, にあたる, において,
+ におきまして, における, にかけ, にかけて, にかけまして,
+ にたいして, にたいしまして, にたいします, にたいする, について,
+ につき, につきまして, につけ, につれ, につれて,
+ にて, にとって, にとり, にとりまして, にまつわります,
+ にまつわる, にもかかわらず, にゃ, によって, により,
+ によりまして, によります, による, にわたって, にわたり,
+ にわたりまして, にわたります, にわたる, に対し, に対して,
+ に対しまして, に対します, に対する, に当たって, に当たり,
+ に当たりまして, に当たります, に当たる, に従い, に従いまして,
+ に従います, に従う, に従って, に関し, に関して,
+ に関しまして, に関します, に関する, に際し, に際して,
+ ものの, ろうし, ろうと, われと, をの,
+ をめぐって, をめぐりまして, をめぐります, をめぐる, をもちまして,
+ をもって, を以て, を通して, を通しまして, を通じ,
+ を通じて, を通じまして, んじゃ, んで,
+
+ // Entries added for technical reasons (noun suffix).
+ // Entries in cjdict.txt, which are suffixes of nouns.
+ // These entries should be connected to the previous (noun) words.
+ 々宮, 々家, え目, が丘, が台,
+ が床, が浜, ヵ国, ヵ年, ヵ所,
+ ヵ月, ヵ村, ヵ条, ヶ丘, ヶ国,
+ ヶ島, ヶ年, ヶ所, ヶ月, ヶ村,
+ ヶ条, ージ, ーズ, ータ, ード,
+ ーニャ, ープランス, ーユ, ーランド, ーリンズ,
+ ーン,
}
}
diff --git a/icu4c/source/test/testdata/rbbitst.txt b/icu4c/source/test/testdata/rbbitst.txt
index e74ee60edb6..cde514a2347 100644
--- a/icu4c/source/test/testdata/rbbitst.txt
+++ b/icu4c/source/test/testdata/rbbitst.txt
@@ -1892,8 +1892,8 @@ Bangkok)•
•\uff19\u6708\u306b•\u6771\u4eac\u304b\u3089•\u53cb\u9054\u304c•\u904a\u3073\u306b•\u6765\u305f•
#る文字「そうだ、京都」-> る•文字•「そうだ、•京都」•
•\u308b•\u6587\u5b57•\u300c\u305d\u3046\u3060\u3001•\u4eac\u90fd\u300d•
-#乗車率90%程度だろうか。 -> 乗車•率•90%•程度だ•ろうか。•
-•\u4e57\u8eca•\u7387•\uff19\uff10\uff05•\u7a0b\u5ea6\u3060•\u308d\u3046\u304b\u3002•
+#乗車率90%程度だろうか。 -> 乗車•率•90%•程度だろうか。•
+•\u4e57\u8eca•\u7387•\uff19\uff10\uff05•\u7a0b\u5ea6\u3060\u308d\u3046\u304b\u3002•
#[携帯電話]正しい選択 -> [携帯•電話]•正しい•選択•
•\uff3b\u643a\u5e2f•\u96fb\u8a71\uff3d•\u6b63\u3057\u3044•\u9078\u629e•
#純金製百人一首にサッカーボール -> 純金•製•百人一首に•サッカーボール
@@ -1903,8 +1903,8 @@ Bangkok)•
•\uD82C\uDC48\u308B\uD82C\uDC38•\uFF08\u3057\u308B\u3053\uFF09\u3001•\u3042\uD82C\uDC19\u3088\u308D\u3057•\uFF08\u3042•\u304B\u3088\u308D\u3057\uFF09•
#最初に目に入るのは、「許諾なき写真禁止」のサインである。 -> 最初に▁目に▁入るのは、▁「許諾なき▁写真▁禁止」▁の▁サインで▁ある。
•\u6700\u521D\u306B•\u76EE\u306B•\u5165\u308B\u306E\u306F\u3001•\u300C\u8A31\u8AFE\u306A\u304D•\u5199\u771F•\u7981\u6B62\u300D•\u306E•\u30B5\u30A4\u30F3\u3067•\u3042\u308B\u3002•
-# docomoのサイト情報によると、78000パケット以上▁使うならパケ放題がいいとか -> docomoの▁サイト▁情報によると、▁78000パケット▁以上▁使う▁なら▁パケ▁放題が▁いい▁とか
-•\uFF44\uFF4F\uFF43\uFF4F\uFF4D\uFF4F\u306E•\u30B5\u30A4\u30C8•\u60C5\u5831•\u306B\u3088\u308B\u3068\u3001•\uFF17\uFF18\uFF10\uFF10\uFF10\u30D1\u30B1\u30C3\u30C8•\u4EE5\u4E0A•\u4F7F\u3046•\u306A\u3089•\u30D1\u30B1•\u653E\u984C\u304C•\u3044\u3044•\u3068\u304B•
+#docomoのサイト情報によると、78000パケット以上▁使うならパケ放題がいいとか -> docomoの▁サイト▁情報によると、▁78000パケット▁以上▁使うなら▁パケ▁放題が▁いい▁とか
+•\uFF44\uFF4F\uFF43\uFF4F\uFF4D\uFF4F\u306E•\u30B5\u30A4\u30C8•\u60C5\u5831\u306B\u3088\u308B\u3068\u3001•\uFF17\uFF18\uFF10\uFF10\uFF10\u30D1\u30B1\u30C3\u30C8•\u4EE5\u4E0A•\u4F7F\u3046\u306A\u3089•\u30D1\u30B1•\u653E\u984C\u304C•\u3044\u3044•\u3068\u304B•
#日本の携帯はCDMAの形だといわれています -> 日本の▁携帯は▁CDMAの▁形だと▁いわれ▁ています
•\u65E5\u672C\u306E•\u643A\u5E2F\u306F•\uFF23\uFF24\uFF2D\uFF21\u306E•\u5F62\u3060\u3068•\u3044\u308F\u308C•\u3066\u3044\u307E\u3059•
#中国の携帯は約500元から5000元です -> 中国の▁携帯は▁約▁500元から▁5000元です
@@ -1913,6 +1913,11 @@ Bangkok)•
•\u30D7\u30EA\u30DA\u30A4\u30C9\u30AB\u30FC\u30C9•\u643A\u5E2F•\u5E03\u6559•
#しかもロゴがUnicode!! -> しかも▁ロゴが▁Unicode!!
•\u3057\u304B\u3082•\u30ED\u30B4\u304C•\uFF35\uFF4E\uFF49\uFF43\uFF4F\uFF44\uFF45\uFF01\uFF01•
+#しかし、これらのサービスは6年間使ってこなかった自分にとっては特に必要でないものであり、これからこの機能が加わったからといって特別ハッピーなわけでもない。
+#-> しかし、▁これらの▁サービスは▁6年間▁使ってこなかった▁自分にとっては▁特に▁必要でない▁もので▁あり、▁これから▁この▁機能が▁加わったから▁といって▁特別▁ハッピーな▁わけでもない。
+•\u3057\u304B\u3057\u3001•\u3053\u308C\u3089\u306E•\u30B5\u30FC\u30D3\u30B9\u306F•\uFF16\u5E74\u9593•\u4F7F\u3063\u3066\u3053\u306A\u304B\u3063\u305F•\u81EA\u5206\u306B\u3068\u3063\u3066\u306F•\u7279\u306B•\u5FC5\u8981\u3067\u306A\u3044•\u3082\u306E\u3067•\u3042\u308A\u3001•\u3053\u308C\u304B\u3089•\u3053\u306E•\u6A5F\u80FD\u304C•\u52A0\u308F\u3063\u305F\u304B\u3089•\u3068\u3044\u3063\u3066•\u7279\u5225•\u30CF\u30C3\u30D4\u30FC\u306A•\u308F\u3051\u3067\u3082\u306A\u3044\u3002•
+#自由が丘での三ヶ月の生活を通して得られる経験 -> 自由が丘での▁三ヶ月の▁生活を通して▁得られる▁経験
+•\u81EA\u7531\u304C\u4E18\u3067\u306E•\u4E09\u30F6\u6708\u306E•\u751F\u6D3B\u3092\u901A\u3057\u3066•\u5F97\u3089\u308C\u308B•\u7D4C\u9A13•
####################################################################################
#
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/impl/breakiter/CjkBreakEngine.java b/icu4j/main/classes/core/src/com/ibm/icu/impl/breakiter/CjkBreakEngine.java
index a6da7d502cc..ee66c46da0c 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/impl/breakiter/CjkBreakEngine.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/impl/breakiter/CjkBreakEngine.java
@@ -54,19 +54,17 @@ public class CjkBreakEngine extends DictionaryBreakEngine {
}
private void initializeJapanesePhraseParamater() {
- loadJapaneseParticleAndAuxVerbs();
+ loadJapaneseExtensions();
loadHiragana();
}
- private void loadJapaneseParticleAndAuxVerbs() {
+ private void loadJapaneseExtensions() {
UResourceBundle rb = UResourceBundle.getBundleInstance(ICUData.ICU_BRKITR_BASE_NAME, "ja");
- final String[] tags = {"particles", "auxVerbs"};
- for (String tag : tags) {
- UResourceBundle bundle = rb.get(tag);
- UResourceBundleIterator iterator = bundle.getIterator();
- while (iterator.hasNext()) {
- fSkipSet.add(iterator.nextString());
- }
+ final String tag = "extensions";
+ UResourceBundle bundle = rb.get(tag);
+ UResourceBundleIterator iterator = bundle.getIterator();
+ while (iterator.hasNext()) {
+ fSkipSet.add(iterator.nextString());
}
}
@@ -293,7 +291,7 @@ public class CjkBreakEngine extends DictionaryBreakEngine {
// In phrase breaking, there has to be a breakpoint between Cj character and
// the number/open punctuation.
// E.g. る文字「そうだ、京都」->る▁文字▁「そうだ、▁京都」-> breakpoint between 字 and「
- // E.g. 乗車率90%程度だろうか -> 乗車▁率▁90%▁程度だ▁ろうか -> breakpoint between 率 and 9
+ // E.g. 乗車率90%程度だろうか -> 乗車▁率▁90%▁程度だろうか -> breakpoint between 率 and 9
// E.g. しかもロゴがUnicode! -> しかも▁ロゴが▁Unicode!-> breakpoint between が and U
if (isPhraseBreaking) {
if (!fDigitOrOpenPunctuationOrAlphabetSet.contains(inText.setIndex(endPos))) {
diff --git a/icu4j/main/shared/data/icudata.jar b/icu4j/main/shared/data/icudata.jar
index 0dc31673b4c..ca62e9d0332 100644
--- a/icu4j/main/shared/data/icudata.jar
+++ b/icu4j/main/shared/data/icudata.jar
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:658d41e63f73089111e306f0d90b2b3aa4757146d4eda963f8e181c0acf2b9ab
-size 13866832
+oid sha256:a2023c8c2492957393643b34d6b9396060acb3dd8d66d28bf023d118ea03eab7
+size 13867661
diff --git a/icu4j/main/shared/data/icutzdata.jar b/icu4j/main/shared/data/icutzdata.jar
index 7ce295810ed..669f41ed5b7 100644
--- a/icu4j/main/shared/data/icutzdata.jar
+++ b/icu4j/main/shared/data/icutzdata.jar
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:79e4e94b0fc31ed37701b94512b985c6bf80429bb3420adb645abc4f26c913d7
+oid sha256:1bbf45782f7b1026b5ead53ffa5c1d77bb2dc8e45bdf8774be2dae31855a6e63
size 96440
diff --git a/icu4j/main/shared/data/testdata.jar b/icu4j/main/shared/data/testdata.jar
index a504f688321..9b3f04cac48 100644
--- a/icu4j/main/shared/data/testdata.jar
+++ b/icu4j/main/shared/data/testdata.jar
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c20f10955116ac255c504e8743a9c4b2eab9c0bac7dc2250f1fbe775100f3b8a
+oid sha256:26b283b1ea008e2750b1dfcfc1150fce21dc5fcbdcb4f79b1a9148e18ce926f1
size 826064
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/rbbi/rbbitst.txt b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/rbbi/rbbitst.txt
index 0645d0b6bbd..17418e382de 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/rbbi/rbbitst.txt
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/rbbi/rbbitst.txt
@@ -1892,8 +1892,8 @@ Bangkok)•
•\uff19\u6708\u306b•\u6771\u4eac\u304b\u3089•\u53cb\u9054\u304c•\u904a\u3073\u306b•\u6765\u305f•
#る文字「そうだ、京都」-> る•文字•「そうだ、•京都」•
•\u308b•\u6587\u5b57•\u300c\u305d\u3046\u3060\u3001•\u4eac\u90fd\u300d•
-#乗車率90%程度だろうか。 -> 乗車•率•90%•程度だ•ろうか。•
-•\u4e57\u8eca•\u7387•\uff19\uff10\uff05•\u7a0b\u5ea6\u3060•\u308d\u3046\u304b\u3002•
+#乗車率90%程度だろうか。 -> 乗車•率•90%•程度だろうか。•
+•\u4e57\u8eca•\u7387•\uff19\uff10\uff05•\u7a0b\u5ea6\u3060\u308d\u3046\u304b\u3002•
#[携帯電話]正しい選択 -> [携帯•電話]•正しい•選択•
•\uff3b\u643a\u5e2f•\u96fb\u8a71\uff3d•\u6b63\u3057\u3044•\u9078\u629e•
#純金製百人一首にサッカーボール -> 純金•製•百人一首に•サッカーボール
@@ -1903,8 +1903,8 @@ Bangkok)•
•\uD82C\uDC48\u308B\uD82C\uDC38•\uFF08\u3057\u308B\u3053\uFF09\u3001•\u3042\uD82C\uDC19\u3088\u308D\u3057•\uFF08\u3042•\u304B\u3088\u308D\u3057\uFF09•
#最初に目に入るのは、「許諾なき写真禁止」のサインである。 -> 最初に▁目に▁入るのは、▁「許諾なき▁写真▁禁止」▁の▁サインで▁ある。
•\u6700\u521D\u306B•\u76EE\u306B•\u5165\u308B\u306E\u306F\u3001•\u300C\u8A31\u8AFE\u306A\u304D•\u5199\u771F•\u7981\u6B62\u300D•\u306E•\u30B5\u30A4\u30F3\u3067•\u3042\u308B\u3002•
-# docomoのサイト情報によると、78000パケット以上▁使うならパケ放題がいいとか -> docomoの▁サイト▁情報によると、▁78000パケット▁以上▁使う▁なら▁パケ▁放題が▁いい▁とか
-•\uFF44\uFF4F\uFF43\uFF4F\uFF4D\uFF4F\u306E•\u30B5\u30A4\u30C8•\u60C5\u5831•\u306B\u3088\u308B\u3068\u3001•\uFF17\uFF18\uFF10\uFF10\uFF10\u30D1\u30B1\u30C3\u30C8•\u4EE5\u4E0A•\u4F7F\u3046•\u306A\u3089•\u30D1\u30B1•\u653E\u984C\u304C•\u3044\u3044•\u3068\u304B•
+#docomoのサイト情報によると、78000パケット以上▁使うならパケ放題がいいとか -> docomoの▁サイト▁情報によると、▁78000パケット▁以上▁使うなら▁パケ▁放題が▁いい▁とか
+•\uFF44\uFF4F\uFF43\uFF4F\uFF4D\uFF4F\u306E•\u30B5\u30A4\u30C8•\u60C5\u5831\u306B\u3088\u308B\u3068\u3001•\uFF17\uFF18\uFF10\uFF10\uFF10\u30D1\u30B1\u30C3\u30C8•\u4EE5\u4E0A•\u4F7F\u3046\u306A\u3089•\u30D1\u30B1•\u653E\u984C\u304C•\u3044\u3044•\u3068\u304B•
#日本の携帯はCDMAの形だといわれています -> 日本の▁携帯は▁CDMAの▁形だと▁いわれ▁ています
•\u65E5\u672C\u306E•\u643A\u5E2F\u306F•\uFF23\uFF24\uFF2D\uFF21\u306E•\u5F62\u3060\u3068•\u3044\u308F\u308C•\u3066\u3044\u307E\u3059•
#中国の携帯は約500元から5000元です -> 中国の▁携帯は▁約▁500元から▁5000元です
@@ -1913,6 +1913,11 @@ Bangkok)•
•\u30D7\u30EA\u30DA\u30A4\u30C9\u30AB\u30FC\u30C9•\u643A\u5E2F•\u5E03\u6559•
#しかもロゴがUnicode!! -> しかも▁ロゴが▁Unicode!!
•\u3057\u304B\u3082•\u30ED\u30B4\u304C•\uFF35\uFF4E\uFF49\uFF43\uFF4F\uFF44\uFF45\uFF01\uFF01•
+#しかし、これらのサービスは6年間使ってこなかった自分にとっては特に必要でないものであり、これからこの機能が加わったからといって特別ハッピーなわけでもない。
+#-> しかし、▁これらの▁サービスは▁6年間▁使ってこなかった▁自分にとっては▁特に▁必要でない▁もので▁あり、▁これから▁この▁機能が▁加わったから▁といって▁特別▁ハッピーな▁わけでもない。
+•\u3057\u304B\u3057\u3001•\u3053\u308C\u3089\u306E•\u30B5\u30FC\u30D3\u30B9\u306F•\uFF16\u5E74\u9593•\u4F7F\u3063\u3066\u3053\u306A\u304B\u3063\u305F•\u81EA\u5206\u306B\u3068\u3063\u3066\u306F•\u7279\u306B•\u5FC5\u8981\u3067\u306A\u3044•\u3082\u306E\u3067•\u3042\u308A\u3001•\u3053\u308C\u304B\u3089•\u3053\u306E•\u6A5F\u80FD\u304C•\u52A0\u308F\u3063\u305F\u304B\u3089•\u3068\u3044\u3063\u3066•\u7279\u5225•\u30CF\u30C3\u30D4\u30FC\u306A•\u308F\u3051\u3067\u3082\u306A\u3044\u3002•
+#自由が丘での三ヶ月の生活を通して得られる経験 -> 自由が丘での▁三ヶ月の▁生活を通して▁得られる▁経験
+•\u81EA\u7531\u304C\u4E18\u3067\u306E•\u4E09\u30F6\u6708\u306E•\u751F\u6D3B\u3092\u901A\u3057\u3066•\u5F97\u3089\u308C\u308B•\u7D4C\u9A13•
####################################################################################
#