jpmobile 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. data/README +41 -4
  2. data/Rakefile +11 -9
  3. data/lib/jpmobile.rb +0 -6
  4. data/lib/jpmobile/emoticon.rb +105 -0
  5. data/lib/jpmobile/emoticon/au.rb +644 -0
  6. data/lib/jpmobile/emoticon/conversion_table.rb +3908 -0
  7. data/lib/jpmobile/emoticon/docomo.rb +255 -0
  8. data/lib/jpmobile/emoticon/softbank.rb +477 -0
  9. data/lib/jpmobile/emoticon/z_combine.rb +20 -0
  10. data/lib/jpmobile/filter.rb +73 -51
  11. data/lib/jpmobile/helpers.rb +4 -4
  12. data/lib/jpmobile/hook_abstract_request.rb +6 -2
  13. data/lib/jpmobile/hook_action_controller.rb +10 -0
  14. data/lib/jpmobile/hook_action_view.rb +7 -0
  15. data/lib/jpmobile/mobile/abstract_mobile.rb +5 -1
  16. data/lib/jpmobile/mobile/au.rb +1 -1
  17. data/lib/jpmobile/mobile/docomo.rb +2 -5
  18. data/lib/jpmobile/mobile/softbank.rb +9 -1
  19. data/lib/jpmobile/mobile/z_display_info_docomo.rb +32 -10
  20. data/lib/jpmobile/mobile/z_ip_addresses.rb +6 -6
  21. data/lib/jpmobile/mobile/z_ip_addresses_au.rb +2 -1
  22. data/lib/jpmobile/mobile/z_ip_addresses_willcom.rb +6 -1
  23. data/lib/jpmobile/trans_sid.rb +5 -2
  24. data/lib/jpmobile/version.rb +1 -1
  25. data/test/au_test.rb +1 -0
  26. data/test/docomo_test.rb +8 -0
  27. data/test/emoticon_functional_test.rb +166 -0
  28. data/test/emoticon_test.rb +58 -0
  29. data/test/filter_functional_test.rb +146 -0
  30. data/test/filter_test.rb +8 -8
  31. data/test/softbank_test.rb +18 -0
  32. data/tools/generate_au_emoticon_table.rb +25 -0
  33. data/tools/{update_emoji_docomo.rb → generate_docomo_emoticon_table.rb} +4 -8
  34. data/tools/generate_emoticon_conversion_table.rb +107 -0
  35. data/tools/generate_softbank_emoticon_table.rb +32 -0
  36. data/tools/update_display_info_docomo.rb +3 -5
  37. metadata +18 -75
  38. data/NOTES +0 -21
  39. data/TODO +0 -16
  40. data/doc/classes/ActionController.html +0 -107
  41. data/doc/classes/ActionController/AbstractRequest.html +0 -216
  42. data/doc/classes/ActionView.html +0 -101
  43. data/doc/classes/DatumConv.html +0 -324
  44. data/doc/classes/Jpmobile/Display.html +0 -333
  45. data/doc/classes/Jpmobile/Filter.html +0 -119
  46. data/doc/classes/Jpmobile/Filter/Base.html +0 -269
  47. data/doc/classes/Jpmobile/Filter/Emoji.html +0 -130
  48. data/doc/classes/Jpmobile/Filter/Emoji/Inner.html +0 -183
  49. data/doc/classes/Jpmobile/Filter/Emoji/Outer.html +0 -187
  50. data/doc/classes/Jpmobile/Filter/FilterTable.html +0 -178
  51. data/doc/classes/Jpmobile/Filter/HankakuKana.html +0 -170
  52. data/doc/classes/Jpmobile/Filter/Sjis.html +0 -244
  53. data/doc/classes/Jpmobile/Helpers.html +0 -558
  54. data/doc/classes/Jpmobile/Mobile.html +0 -141
  55. data/doc/classes/Jpmobile/Mobile/AbstractMobile.html +0 -324
  56. data/doc/classes/Jpmobile/Mobile/Au.html +0 -415
  57. data/doc/classes/Jpmobile/Mobile/Ddipocket.html +0 -138
  58. data/doc/classes/Jpmobile/Mobile/Docomo.html +0 -366
  59. data/doc/classes/Jpmobile/Mobile/Jphone.html +0 -212
  60. data/doc/classes/Jpmobile/Mobile/Softbank.html +0 -300
  61. data/doc/classes/Jpmobile/Mobile/Vodafone.html +0 -176
  62. data/doc/classes/Jpmobile/Mobile/Willcom.html +0 -210
  63. data/doc/classes/Jpmobile/Position.html +0 -384
  64. data/doc/created.rid +0 -1
  65. data/doc/files/CHANGELOG.html +0 -110
  66. data/doc/files/NOTES.html +0 -163
  67. data/doc/files/README.html +0 -345
  68. data/doc/files/TODO.html +0 -138
  69. data/doc/files/lib/jpmobile/datum_conv_rb.html +0 -110
  70. data/doc/files/lib/jpmobile/filter_rb.html +0 -115
  71. data/doc/files/lib/jpmobile/helpers_rb.html +0 -105
  72. data/doc/files/lib/jpmobile/hook_abstract_request_rb.html +0 -109
  73. data/doc/files/lib/jpmobile/hook_action_view_rb.html +0 -119
  74. data/doc/files/lib/jpmobile/mobile/abstract_mobile_rb.html +0 -108
  75. data/doc/files/lib/jpmobile/mobile/au_rb.html +0 -112
  76. data/doc/files/lib/jpmobile/mobile/display_rb.html +0 -111
  77. data/doc/files/lib/jpmobile/mobile/docomo_rb.html +0 -105
  78. data/doc/files/lib/jpmobile/mobile/softbank_rb.html +0 -115
  79. data/doc/files/lib/jpmobile/mobile/willcom_rb.html +0 -108
  80. data/doc/files/lib/jpmobile/mobile/z_display_info_docomo_rb.html +0 -114
  81. data/doc/files/lib/jpmobile/mobile/z_emoji_docomo_rb.html +0 -119
  82. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_au_rb.html +0 -114
  83. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_rb.html +0 -117
  84. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_willcom_rb.html +0 -114
  85. data/doc/files/lib/jpmobile/position_rb.html +0 -105
  86. data/doc/files/lib/jpmobile/trans_sid_rb.html +0 -114
  87. data/doc/files/lib/jpmobile/version_rb.html +0 -101
  88. data/doc/files/lib/jpmobile_rb.html +0 -101
  89. data/doc/fr_class_index.html +0 -50
  90. data/doc/fr_file_index.html +0 -50
  91. data/doc/fr_method_index.html +0 -113
  92. data/doc/index.html +0 -24
  93. data/doc/rdoc-style.css +0 -208
  94. data/lib/jpmobile/mobile/z_emoji_docomo.rb +0 -508
  95. data/test/firefox_test.rb +0 -8
  96. data/test/transitsid_test.rb +0 -86
data/README CHANGED
@@ -12,11 +12,17 @@
12
12
  * 携帯電話ビューへの自動振分け
13
13
  * ディスプレイ情報(画面サイズ、ブラウザ画面サイズ、カラー・白黒、色数)の取得
14
14
  * GeoKit(http://geokit.rubyforge.org)との連携
15
+ * 文字コード変換機能/絵文字のキャリア間相互変換
15
16
 
16
17
  == インストール
17
18
 
18
19
  svnレポジトリからインストールする場合
19
20
 
21
+ リリース版:
22
+ % ./script/plugin install svn://rubyforge.org/var/svn/jpmobile/tags/rel-x.x.x/jpmobile
23
+ (x.x.xはバージョン)
24
+
25
+ 開発版:
20
26
  % ./script/plugin install svn://rubyforge.org/var/svn/jpmobile/trunk/jpmobile
21
27
 
22
28
  == 使用例
@@ -69,6 +75,8 @@ DoCoMo携帯電話からアクセスすると、
69
75
  の順でテンプレートを検索し、最初に見付かったテンプレートが利用される。
70
76
  Auの場合は、index_mobile_au.rhtml、Softbankの場合はindex_mobile_softbank.rhtmlが最初に検索される。
71
77
 
78
+ BUG: 現状、上記の例では index.rhtml が存在しない場合に振り分けが行われない(ダミーファイルを置くことで回避可能)。
79
+
72
80
  ==== キャリアの識別
73
81
 
74
82
  case request.mobile
@@ -130,7 +138,7 @@ Auの場合は、index_mobile_au.rhtml、Softbankの場合はindex_mobile_softba
130
138
  class MyController
131
139
  transit_sid
132
140
  end
133
-
141
+
134
142
  ==== PCにも付与する
135
143
  class MyController
136
144
  transit_sid :always
@@ -139,7 +147,7 @@ Auの場合は、index_mobile_au.rhtml、Softbankの場合はindex_mobile_softba
139
147
  === 端末の画面サイズ
140
148
  request.mobile.display で Jpmobile::Display クラスのインスタンスが返る。
141
149
  画面幅 <%= request.mobile.display.width %>
142
- 画面高さ <%= request.mobile.display.height %>
150
+ 画面高さ <%= request.mobile.display.height %>
143
151
 
144
152
  === GeoKit(http://geokit.rubyforge.org)との連携
145
153
 
@@ -149,10 +157,39 @@ vandor/plugins/geokit以下にGeoKitがインストールされていると、Jp
149
157
 
150
158
  とすることで、端末と「札幌駅」との距離を求めることができる。詳細は http://geokit.rubyforge.org/api/index.html 参照。
151
159
 
160
+ === 文字コード変換機能/絵文字のキャリア間相互変換
161
+
162
+ JpmobileではControllerにmobile_filterを指定することで
163
+ DoCoMo、Au、SoftBankの絵文字を透過的に扱うことができる。
164
+
165
+ class MyController
166
+ mobile_filter
167
+ end
168
+
169
+ また、半角・全角の自動変換を用いる場合は
170
+ class MyController
171
+ mobile_filter :hankaku=>true
172
+ end
173
+ と指定する。
174
+
175
+ Jpmobile内では、各キャリアの絵文字はUnicode私的領域上にマッピングされ、管理される。
176
+ このとき、DoCoMo、Auは公式サイト記載のマッピングが使用される。
177
+ ただしSoftBankはAuとの重複を避けるため、公式のマッピングに0x1000加算しU+F001以降に割り当てる。
178
+ テンプレート内ではUTF-8でエンコードするか、数値文字参照の&#xHHHH;形式で指定する。
179
+
180
+ 絵文字は送出時に内蔵の変換表に基づいて変換され、携帯電話のエンコーディングにあわせて送出される。
181
+ 携帯電話から受信した絵文字は上記マッピングに基づいてUTF-8でparamsに渡される。
182
+
183
+ mobile_filterを有効にすると以下の処理が自動で行われる。
184
+ * DoCoMo、Auとの通信時にはShift_JIS、SoftBankとの通信時にはUTF-8が使用される。
185
+ * :hankaku=>true指定時は、カタカナは半角カナに変換されて送出される。携帯電話から送られた半角カナは全角カナに変換される。
186
+ * 絵文字はキャリアにあわせて変換されて送出される。
187
+ * 携帯電話からの絵文字はUnicode私的領域にマップされ、UTF-8でparamsに格納される。
188
+
152
189
  == リンク
153
- * Project Website: http://jpmobile.rubyforge.org
190
+ * Project Website: http://jpmobile-rails.org
191
+ * RDoc Documentation: http://jpmobile.rubyforge.org/rdoc
154
192
  * RubyForge Project Page: http://rubyforge.org/projects/jpmobile
155
- * SVN Repository Browser: http://rubyforge.org/cgi-bin/viewvc.cgi/?root=jpmobile
156
193
 
157
194
  == 作者
158
195
 
data/Rakefile CHANGED
@@ -10,6 +10,7 @@ require 'fileutils'
10
10
  include FileUtils
11
11
  require File.join(File.dirname(__FILE__), 'lib', 'jpmobile', 'version')
12
12
 
13
+ #
13
14
  AUTHOR = "dara"
14
15
  EMAIL = "dara@shidara.net"
15
16
  DESCRIPTION = "A Rails plugin for Japanese mobile-phones"
@@ -17,14 +18,13 @@ RUBYFORGE_PROJECT = "jpmobile"
17
18
  HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
18
19
  BIN_FILES = %w( )
19
20
 
20
-
21
21
  NAME = "jpmobile"
22
22
  REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
23
23
  VERS = ENV['VERSION'] || (Jpmobile::VERSION::STRING + (REV ? ".#{REV}" : ""))
24
24
  CLEAN.include ['**/.*.sw?', '*.gem', '.config']
25
25
  RDOC_OPTS = ['--quiet', '--title', "jpmobile documentation",
26
26
  "--opname", "index.html",
27
- "--line-numbers",
27
+ "--line-numbers",
28
28
  "--main", "README",
29
29
  "--inline-source"]
30
30
 
@@ -48,9 +48,7 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
48
48
  rdoc.title = 'Jpmobile'
49
49
  rdoc.options << '--line-numbers' << '--inline-source' << '-c UTF-8'
50
50
  rdoc.rdoc_files.include('README')
51
- rdoc.rdoc_files.include('TODO')
52
51
  rdoc.rdoc_files.include('CHANGELOG')
53
- rdoc.rdoc_files.include('NOTES')
54
52
  rdoc.rdoc_files.include('lib/**/*.rb')
55
53
  end
56
54
 
@@ -60,7 +58,7 @@ spec =
60
58
  s.version = VERS
61
59
  s.platform = Gem::Platform::RUBY
62
60
  s.has_rdoc = true
63
- s.extra_rdoc_files = ["README", "CHANGELOG", "TODO", "NOTES"]
61
+ s.extra_rdoc_files = ["README", "CHANGELOG"]
64
62
  s.rdoc_options += RDOC_OPTS + ['--exclude', '^(examples|extras)/']
65
63
  s.summary = DESCRIPTION
66
64
  s.description = DESCRIPTION
@@ -80,11 +78,11 @@ spec =
80
78
  #s.required_ruby_version = '>= 1.8.2'
81
79
 
82
80
  s.files = %w(README CHANGELOG Rakefile) +
83
- Dir.glob("{bin,doc,test,lib,templates,generator,extras,website,script}/**/*") +
81
+ Dir.glob("{bin,doc,test,lib,templates,generator,extras,website,script}/**/*") +
84
82
  Dir.glob("ext/**/*.{h,c,rb}") +
85
83
  Dir.glob("examples/**/*.rb") +
86
84
  Dir.glob("tools/*.rb")
87
-
85
+
88
86
  # s.extensions = FileList["ext/**/extconf.rb"].to_a
89
87
  end
90
88
 
@@ -104,8 +102,8 @@ task :uninstall => [:clean] do
104
102
  end
105
103
 
106
104
  desc "Publish the API documentation"
107
- task :pdoc => [:rdoc] do
108
- Rake::SshDirPublisher.new("dara@rubyforge.org", "/var/www/gforge-projects/jpmobile/", "doc").upload
105
+ task :pdoc => [:rdoc] do
106
+ Rake::SshDirPublisher.new("dara@rubyforge.org", "/var/www/gforge-projects/jpmobile/rdoc", "doc").upload
109
107
  end
110
108
 
111
109
  desc "Update misc tables"
@@ -120,3 +118,7 @@ task :rel do
120
118
  puts "svn copy svn+ssh://dara@rubyforge.org/var/svn/jpmobile/trunk " +
121
119
  "svn+ssh://dara@rubyforge.org/var/svn/jpmobile/tags/rel-#{VERS} -m 'Tagged #{VERS}' "
122
120
  end
121
+
122
+ # setup RSpec tasks
123
+ RAILS_ROOT = '.'
124
+ load 'vendor/plugins/rspec_on_rails/tasks/rspec.rake'
data/lib/jpmobile.rb CHANGED
@@ -1,7 +1 @@
1
-
2
1
  Dir[File.join(File.dirname(__FILE__), 'jpmobile/**/*.rb')].sort.each { |lib| require lib }
3
-
4
- #:stopdoc:
5
- # helperを追加
6
- ActionView::Base.class_eval { include Jpmobile::Helpers }
7
- #:startdoc:
@@ -0,0 +1,105 @@
1
+ module Jpmobile
2
+ # 絵文字関連処理
3
+ module Emoticon
4
+ # +str+ のなかでDoCoMo絵文字をUnicode数値文字参照に置換した文字列を返す。
5
+ def self.external_to_unicodecr_docomo(str)
6
+ str.gsub(DOCOMO_SJIS_REGEXP) do |match|
7
+ sjis = match.unpack('n').first
8
+ unicode = DOCOMO_SJIS_TO_UNICODE[sjis]
9
+ unicode ? ("&#x%04x;"%unicode) : match
10
+ end
11
+ end
12
+
13
+ # +str+ のなかでDoCoMo絵文字をUnicode数値文字参照に置換した文字列を返す。
14
+ def self.external_to_unicodecr_au(str)
15
+ str.gsub(AU_SJIS_REGEXP) do |match|
16
+ sjis = match.unpack('n').first
17
+ unicode = AU_SJIS_TO_UNICODE[sjis]
18
+ unicode ? ("&#x%04x;"%unicode) : match
19
+ end
20
+ end
21
+
22
+ # +str+のなかでUTF8のSoftBank絵文字を(+0x1000だけシフトして)Unicode数値文字参照に変換した文字列を返す。
23
+ def self.external_to_unicodecr_softbank(str)
24
+ # SoftBank Unicode
25
+ str.gsub(SOFTBANK_UNICODE_REGEXP) do |match|
26
+ unicode = match.unpack('U').first
27
+ "&#x%04x;" % (unicode+0x1000)
28
+ end
29
+ end
30
+ def self.external_to_unicodecr_vodafone(str)
31
+ external_to_unicodecr_softbank(str)
32
+ end
33
+ # +str+のなかでWebcodeのSoftBank絵文字を(+0x1000だけシフトして)Unicode数値文字参照に変換した文字列を返す。
34
+ def self.external_to_unicodecr_jphone(str)
35
+ # SoftBank Webcode
36
+ s = str.clone
37
+ # 連続したエスケープコードが省略されている場合は切りはなす。
38
+ s.gsub!(/\x1b\x24(.)(.+?)\x0f/) do |match|
39
+ a = $1
40
+ $2.split(//).map{|x| "\x1b\x24#{a}#{x}\x0f"}.join('')
41
+ end
42
+ # Webcodeを変換
43
+ s.gsub(SOFTBANK_WEBCODE_REGEXP) do |match|
44
+ unicode = SOFTBANK_WEBCODE_TO_UNICODE[match[2,2]] + 0x1000
45
+ unicode ? ("&#x%04x;"%unicode) : match
46
+ end
47
+ end
48
+
49
+ # +str+ のなかでUnicode数値文字参照で表記された絵文字を携帯側エンコーディングに置換する。
50
+ #
51
+ # キャリア間の変換に +conversion_table+ を使う。+conversion_table+ に+nil+を与えると、
52
+ # キャリア間の変換は行わない。
53
+ #
54
+ # 携帯側エンコーディングがShift_JIS場合は +to_sjis+ に +true+ を指定する。
55
+ # +true+ を指定すると変換テーブルに文字列が指定されている場合にShift_JISで出力される。
56
+ def self.unicodecr_to_external(str, conversion_table=nil, to_sjis=true)
57
+ str.gsub(/&#x([0-9a-f]{4});/i) do |match|
58
+ unicode = $1.scanf("%x").first
59
+ if conversion_table
60
+ converted = conversion_table[unicode] # キャリア間変換
61
+ else
62
+ converted = unicode # 変換しない
63
+ end
64
+
65
+ # 携帯側エンコーディングに変換する
66
+ case converted
67
+ when Integer
68
+ # 変換先がUnicodeで指定されている。つまり対応する絵文字がある。
69
+ if sjis = UNICODE_TO_SJIS[converted]
70
+ [sjis].pack('n')
71
+ elsif webcode = SOFTBANK_UNICODE_TO_WEBCODE[converted-0x1000]
72
+ "\x1b\x24#{webcode}\x0f"
73
+ else
74
+ # キャリア変換テーブルに指定されていたUnicodeに対応する
75
+ # 携帯側エンコーディングが見つからない(変換テーブルの不備の可能性あり)。
76
+ match
77
+ end
78
+ when String
79
+ # 変換先がUnicodeで指定されている。
80
+ to_sjis ? Kconv::kconv(converted, Kconv::SJIS, Kconv::UTF8) : converted
81
+ when nil
82
+ # 変換先が定義されていない。
83
+ match
84
+ end
85
+ end
86
+ end
87
+ # +str+ のなかでUnicode数値文字参照で表記された絵文字をUTF-8に置換する。
88
+ def self.unicodecr_to_utf8(str)
89
+ str.gsub(/&#x([0-9a-f]{4});/i) do |match|
90
+ unicode = $1.scanf("%x").first
91
+ if UNICODE_TO_SJIS[unicode] || SOFTBANK_UNICODE_TO_WEBCODE[unicode-0x1000]
92
+ [unicode].pack('U')
93
+ else
94
+ match
95
+ end
96
+ end
97
+ end
98
+ # +str+ のなかでUTF-8で表記された絵文字をUnicode数値文字参照に置換する。
99
+ def self.utf8_to_unicodecr(str)
100
+ str.gsub(UTF8_REGEXP) do |match|
101
+ "&#x%04x;" % match.unpack('U').first
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,644 @@
1
+ Jpmobile::Emoticon::AU_SJIS_TO_UNICODE = {
2
+ 0xF659=>0xE481,
3
+ 0xF75E=>0xE542,
4
+ 0xF65A=>0xE482,
5
+ 0xF75F=>0xE543,
6
+ 0xF65B=>0xE483,
7
+ 0xF760=>0xE544,
8
+ 0xF748=>0xE52C,
9
+ 0xF761=>0xE545,
10
+ 0xF749=>0xE52D,
11
+ 0xF762=>0xE546,
12
+ 0xF74A=>0xE52E,
13
+ 0xF763=>0xE547,
14
+ 0xF74B=>0xE52F,
15
+ 0xF764=>0xE548,
16
+ 0xF74C=>0xE530,
17
+ 0xF765=>0xE549,
18
+ 0xF74D=>0xE531,
19
+ 0xF766=>0xE54A,
20
+ 0xF74E=>0xE532,
21
+ 0xF767=>0xE54B,
22
+ 0xF74F=>0xE533,
23
+ 0xF768=>0xE54C,
24
+ 0xF69A=>0xE4C1,
25
+ 0xF769=>0xE54D,
26
+ 0xF6EA=>0xE511,
27
+ 0xF660=>0xE488,
28
+ 0xF796=>0xE579,
29
+ 0xF693=>0xE4BA,
30
+ 0xF65E=>0xE486,
31
+ 0xF7B1=>0xE594,
32
+ 0xF65F=>0xE487,
33
+ 0xF661=>0xE489,
34
+ 0xF750=>0xE534,
35
+ 0xF6EB=>0xE512,
36
+ 0xF751=>0xE535,
37
+ 0xF77C=>0xE560,
38
+ 0xF752=>0xE536,
39
+ 0xF6D3=>0xE4FA,
40
+ 0xF753=>0xE537,
41
+ 0xF7B2=>0xE595,
42
+ 0xF754=>0xE538,
43
+ 0xF69B=>0xE4C2,
44
+ 0xF755=>0xE539,
45
+ 0xF6EC=>0xE513,
46
+ 0xF756=>0xE53A,
47
+ 0xF76A=>0xE54E,
48
+ 0xF757=>0xE53B,
49
+ 0xF76B=>0xE54F,
50
+ 0xF797=>0xE57A,
51
+ 0xF77D=>0xE561,
52
+ 0xF758=>0xE53C,
53
+ 0xF798=>0xE57B,
54
+ 0xF759=>0xE53D,
55
+ 0xF654=>0xE47C,
56
+ 0xF75A=>0xE53E,
57
+ 0xF77E=>0xE562,
58
+ 0xF75B=>0xE53F,
59
+ 0xF662=>0xE48A,
60
+ 0xF75C=>0xE540,
61
+ 0xF76C=>0xE550,
62
+ 0xF75D=>0xE541,
63
+ 0xF76D=>0xE551,
64
+ 0xF76E=>0xE552,
65
+ 0xF6EE=>0xE515,
66
+ 0xF76F=>0xE553,
67
+ 0xF664=>0xE48C,
68
+ 0xF69C=>0xE4C3,
69
+ 0xF694=>0xE4BB,
70
+ 0xF770=>0xE554,
71
+ 0xF782=>0xE565,
72
+ 0xF780=>0xE563,
73
+ 0xF65C=>0xE484,
74
+ 0xF6D4=>0xE4FB,
75
+ 0xF642=>0xE46A,
76
+ 0xF663=>0xE48B,
77
+ 0xF783=>0xE566,
78
+ 0xF771=>0xE555,
79
+ 0xF784=>0xE567,
80
+ 0xF772=>0xE556,
81
+ 0xF785=>0xE568,
82
+ 0xF6ED=>0xE514,
83
+ 0xF786=>0xE569,
84
+ 0xF773=>0xE557,
85
+ 0xF6EF=>0xE516,
86
+ 0xF6B8=>0xE4DF,
87
+ 0xF787=>0xE56A,
88
+ 0xF640=>0xE468,
89
+ 0xF676=>0xE49E,
90
+ 0xF644=>0xE46C,
91
+ 0xF665=>0xE48D,
92
+ 0xF64E=>0xE476,
93
+ 0xF6FA=>0xE521,
94
+ 0xF6B9=>0xE4E0,
95
+ 0xF79A=>0xE57D,
96
+ 0xF7AC=>0xE58F,
97
+ 0xF6F0=>0xE517,
98
+ 0xF6D5=>0xE4FC,
99
+ 0xF79B=>0xE57E,
100
+ 0xF774=>0xE558,
101
+ 0xF684=>0xE4AB,
102
+ 0xF775=>0xE559,
103
+ 0xF6BD=>0xE4E4,
104
+ 0xF674=>0xE49C,
105
+ 0xF79C=>0xE57F,
106
+ 0xF7AD=>0xE590,
107
+ 0xF79D=>0xE580,
108
+ 0xF7B3=>0xE596,
109
+ 0xF6D7=>0xE4FE,
110
+ 0xF6D6=>0xE4FD,
111
+ 0xF778=>0xE55C,
112
+ 0xF799=>0xE57C,
113
+ 0xF779=>0xE55D,
114
+ 0xF776=>0xE55A,
115
+ 0xF6F1=>0xE518,
116
+ 0xF777=>0xE55B,
117
+ 0xF6F2=>0xE519,
118
+ 0xF790=>0xE573,
119
+ 0xF788=>0xE56B,
120
+ 0xF675=>0xE49D,
121
+ 0xF677=>0xE49F,
122
+ 0xF781=>0xE564,
123
+ 0xF79E=>0xE581,
124
+ 0xF7B4=>0xE597,
125
+ 0xF6F3=>0xE51A,
126
+ 0xF68A=>0xE4B1,
127
+ 0xF686=>0xE4AD,
128
+ 0xF79F=>0xE582,
129
+ 0xF78D=>0xE570,
130
+ 0xF791=>0xE574,
131
+ 0xF67A=>0xE4A2,
132
+ 0xF792=>0xE575,
133
+ 0xF793=>0xE576,
134
+ 0xF6F4=>0xE51B,
135
+ 0xF69D=>0xE4C4,
136
+ 0xF7A0=>0xE583,
137
+ 0xF7A5=>0xE588,
138
+ 0xF789=>0xE56C,
139
+ 0xF7A6=>0xE589,
140
+ 0xF77A=>0xE55E,
141
+ 0xF6DA=>0xE501,
142
+ 0xF6A7=>0xE4CE,
143
+ 0xF7A7=>0xE58A,
144
+ 0xF6BA=>0xE4E1,
145
+ 0xF6F8=>0xE51F,
146
+ 0xF7A1=>0xE584,
147
+ 0xF6F9=>0xE520,
148
+ 0xF77B=>0xE55F,
149
+ 0xF666=>0xE48E,
150
+ 0xF78A=>0xE56D,
151
+ 0xF68C=>0xE4B3,
152
+ 0xF6F5=>0xE51C,
153
+ 0xF68D=>0xE4B4,
154
+ 0xF7A2=>0xE585,
155
+ 0xF6A1=>0xE4C8,
156
+ 0xF6D8=>0xE4FF,
157
+ 0xF7A8=>0xE58B,
158
+ 0xF6D9=>0xE500,
159
+ 0xF68E=>0xE4B5,
160
+ 0xF78B=>0xE56E,
161
+ 0xF7A9=>0xE58C,
162
+ 0xF678=>0xE4A0,
163
+ 0xF7AA=>0xE58D,
164
+ 0xF6A8=>0xE4CF,
165
+ 0xF7AB=>0xE58E,
166
+ 0xF6F6=>0xE51D,
167
+ 0xF655=>0xE47D,
168
+ 0xF685=>0xE4AC,
169
+ 0xF656=>0xE47E,
170
+ 0xF78C=>0xE56F,
171
+ 0xF657=>0xE47F,
172
+ 0xF68B=>0xE4B2,
173
+ 0xF658=>0xE480,
174
+ 0xF679=>0xE4A1,
175
+ 0xF6FB=>0xE522,
176
+ 0xF7A3=>0xE586,
177
+ 0xF6FC=>0xE523,
178
+ 0xF7AE=>0xE591,
179
+ 0xF740=>0xE524,
180
+ 0xF7A4=>0xE587,
181
+ 0xF741=>0xE525,
182
+ 0xF7AF=>0xE592,
183
+ 0xF742=>0xE526,
184
+ 0xF7B0=>0xE593,
185
+ 0xF743=>0xE527,
186
+ 0xF6F7=>0xE51E,
187
+ 0xF744=>0xE528,
188
+ 0xF745=>0xE529,
189
+ 0xF643=>0xE46B,
190
+ 0xF746=>0xE52A,
191
+ 0xF68F=>0xE4B6,
192
+ 0xF747=>0xE52B,
193
+ 0xF690=>0xE4B7,
194
+ 0xF641=>0xE469,
195
+ 0xF691=>0xE4B8,
196
+ 0xF65D=>0xE485,
197
+ 0xF692=>0xE4B9,
198
+ 0xF667=>0xE48F,
199
+ 0xF645=>0xE46D,
200
+ 0xF668=>0xE490,
201
+ 0xF695=>0xE4BC,
202
+ 0xF669=>0xE491,
203
+ 0xF696=>0xE4BD,
204
+ 0xF66A=>0xE492,
205
+ 0xF697=>0xE4BE,
206
+ 0xF66B=>0xE493,
207
+ 0xF698=>0xE4BF,
208
+ 0xF66C=>0xE494,
209
+ 0xF699=>0xE4C0,
210
+ 0xF66D=>0xE495,
211
+ 0xF646=>0xE46E,
212
+ 0xF66E=>0xE496,
213
+ 0xF647=>0xE46F,
214
+ 0xF66F=>0xE497,
215
+ 0xF69E=>0xE4C5,
216
+ 0xF670=>0xE498,
217
+ 0xF69F=>0xE4C6,
218
+ 0xF671=>0xE499,
219
+ 0xF6A0=>0xE4C7,
220
+ 0xF672=>0xE49A,
221
+ 0xF6A2=>0xE4C9,
222
+ 0xF673=>0xE49B,
223
+ 0xF6A3=>0xE4CA,
224
+ 0xF67B=>0xE4A3,
225
+ 0xF6A4=>0xE4CB,
226
+ 0xF67C=>0xE4A4,
227
+ 0xF6A5=>0xE4CC,
228
+ 0xF67D=>0xE4A5,
229
+ 0xF6A6=>0xE4CD,
230
+ 0xF67E=>0xE4A6,
231
+ 0xF6A9=>0xE4D0,
232
+ 0xF680=>0xE4A7,
233
+ 0xF6AA=>0xE4D1,
234
+ 0xF681=>0xE4A8,
235
+ 0xF6AB=>0xE4D2,
236
+ 0xF682=>0xE4A9,
237
+ 0xF6AC=>0xE4D3,
238
+ 0xF683=>0xE4AA,
239
+ 0xF6AD=>0xE4D4,
240
+ 0xF78E=>0xE571,
241
+ 0xF6AE=>0xE4D5,
242
+ 0xF78F=>0xE572,
243
+ 0xF6AF=>0xE4D6,
244
+ 0xF687=>0xE4AE,
245
+ 0xF648=>0xE470,
246
+ 0xF688=>0xE4AF,
247
+ 0xF6B0=>0xE4D7,
248
+ 0xF689=>0xE4B0,
249
+ 0xF6B1=>0xE4D8,
250
+ 0xF6B2=>0xE4D9,
251
+ 0xF6CB=>0xE4F2,
252
+ 0xF6B3=>0xE4DA,
253
+ 0xF6CC=>0xE4F3,
254
+ 0xF6B4=>0xE4DB,
255
+ 0xF6CD=>0xE4F4,
256
+ 0xF6B5=>0xE4DC,
257
+ 0xF6CE=>0xE4F5,
258
+ 0xF6B6=>0xE4DD,
259
+ 0xF6CF=>0xE4F6,
260
+ 0xF6B7=>0xE4DE,
261
+ 0xF6D0=>0xE4F7,
262
+ 0xF6BB=>0xE4E2,
263
+ 0xF6D1=>0xE4F8,
264
+ 0xF6BC=>0xE4E3,
265
+ 0xF6D2=>0xE4F9,
266
+ 0xF649=>0xE471,
267
+ 0xF6DB=>0xE502,
268
+ 0xF64A=>0xE472,
269
+ 0xF6DC=>0xE503,
270
+ 0xF64B=>0xE473,
271
+ 0xF6DD=>0xE504,
272
+ 0xF64C=>0xE474,
273
+ 0xF6DE=>0xE505,
274
+ 0xF64D=>0xE475,
275
+ 0xF6DF=>0xE506,
276
+ 0xF6BE=>0xE4E5,
277
+ 0xF6E0=>0xE507,
278
+ 0xF6BF=>0xE4E6,
279
+ 0xF6E1=>0xE508,
280
+ 0xF6C0=>0xE4E7,
281
+ 0xF6E2=>0xE509,
282
+ 0xF64F=>0xE477,
283
+ 0xF6E3=>0xE50A,
284
+ 0xF650=>0xE478,
285
+ 0xF6E4=>0xE50B,
286
+ 0xF651=>0xE479,
287
+ 0xF794=>0xE577,
288
+ 0xF652=>0xE47A,
289
+ 0xF795=>0xE578,
290
+ 0xF653=>0xE47B,
291
+ 0xF6E5=>0xE50C,
292
+ 0xF6C1=>0xE4E8,
293
+ 0xF6E6=>0xE50D,
294
+ 0xF6C2=>0xE4E9,
295
+ 0xF6E7=>0xE50E,
296
+ 0xF6C3=>0xE4EA,
297
+ 0xF6E8=>0xE50F,
298
+ 0xF6C4=>0xE4EB,
299
+ 0xF6E9=>0xE510,
300
+ 0xF6C5=>0xE4EC,
301
+ 0xF7B5=>0xE598,
302
+ 0xF6C6=>0xE4ED,
303
+ 0xF7B6=>0xE599,
304
+ 0xF6C7=>0xE4EE,
305
+ 0xF7B7=>0xE59A,
306
+ 0xF6C8=>0xE4EF,
307
+ 0xF7B8=>0xE59B,
308
+ 0xF6C9=>0xE4F0,
309
+ 0xF7B9=>0xE59C,
310
+ 0xF6CA=>0xE4F1,
311
+ 0xF7BA=>0xE59D,
312
+ 0xF7BB=>0xE59E,
313
+ 0xF7ED=>0xE5BD,
314
+ 0xF7BC=>0xE59F,
315
+ 0xF7EE=>0xE5BE,
316
+ 0xF7BD=>0xE5A0,
317
+ 0xF7EF=>0xE5BF,
318
+ 0xF7BE=>0xE5A1,
319
+ 0xF7F0=>0xE5C0,
320
+ 0xF7BF=>0xE5A2,
321
+ 0xF7F1=>0xE5C1,
322
+ 0xF7C0=>0xE5A3,
323
+ 0xF7F2=>0xE5C2,
324
+ 0xF7C1=>0xE5A4,
325
+ 0xF7F3=>0xE5C3,
326
+ 0xF7C2=>0xE5A5,
327
+ 0xF7F4=>0xE5C4,
328
+ 0xF7C3=>0xE5A6,
329
+ 0xF7F5=>0xE5C5,
330
+ 0xF7C4=>0xE5A7,
331
+ 0xF7F6=>0xE5C6,
332
+ 0xF7C5=>0xE5A8,
333
+ 0xF7F7=>0xE5C7,
334
+ 0xF7C6=>0xE5A9,
335
+ 0xF7F8=>0xE5C8,
336
+ 0xF7C7=>0xE5AA,
337
+ 0xF7F9=>0xE5C9,
338
+ 0xF7C8=>0xE5AB,
339
+ 0xF7FA=>0xE5CA,
340
+ 0xF7C9=>0xE5AC,
341
+ 0xF7FB=>0xE5CB,
342
+ 0xF7CA=>0xE5AD,
343
+ 0xF7FC=>0xE5CC,
344
+ 0xF7CB=>0xE5AE,
345
+ 0xF340=>0xE5CD,
346
+ 0xF7CC=>0xE5AF,
347
+ 0xF341=>0xE5CE,
348
+ 0xF7CD=>0xE5B0,
349
+ 0xF342=>0xE5CF,
350
+ 0xF7CE=>0xE5B1,
351
+ 0xF343=>0xE5D0,
352
+ 0xF7CF=>0xE5B2,
353
+ 0xF344=>0xE5D1,
354
+ 0xF7D0=>0xE5B3,
355
+ 0xF345=>0xE5D2,
356
+ 0xF7D1=>0xE5B4,
357
+ 0xF346=>0xE5D3,
358
+ 0xF7E5=>0xE5B5,
359
+ 0xF347=>0xE5D4,
360
+ 0xF7E6=>0xE5B6,
361
+ 0xF348=>0xE5D5,
362
+ 0xF7E7=>0xE5B7,
363
+ 0xF349=>0xE5D6,
364
+ 0xF7E8=>0xE5B8,
365
+ 0xF34A=>0xE5D7,
366
+ 0xF7E9=>0xE5B9,
367
+ 0xF34B=>0xE5D8,
368
+ 0xF7EA=>0xE5BA,
369
+ 0xF34C=>0xE5D9,
370
+ 0xF7EB=>0xE5BB,
371
+ 0xF34D=>0xE5DA,
372
+ 0xF7EC=>0xE5BC,
373
+ 0xF34E=>0xE5DB,
374
+ 0xF34F=>0xE5DC,
375
+ 0xF36E=>0xEA9B,
376
+ 0xF350=>0xE5DD,
377
+ 0xF36F=>0xEA9C,
378
+ 0xF351=>0xE5DE,
379
+ 0xF370=>0xEA9D,
380
+ 0xF352=>0xE5DF,
381
+ 0xF371=>0xEA9E,
382
+ 0xF353=>0xEA80,
383
+ 0xF372=>0xEA9F,
384
+ 0xF354=>0xEA81,
385
+ 0xF373=>0xEAA0,
386
+ 0xF355=>0xEA82,
387
+ 0xF374=>0xEAA1,
388
+ 0xF356=>0xEA83,
389
+ 0xF375=>0xEAA2,
390
+ 0xF357=>0xEA84,
391
+ 0xF376=>0xEAA3,
392
+ 0xF358=>0xEA85,
393
+ 0xF377=>0xEAA4,
394
+ 0xF359=>0xEA86,
395
+ 0xF378=>0xEAA5,
396
+ 0xF35A=>0xEA87,
397
+ 0xF379=>0xEAA6,
398
+ 0xF35B=>0xEA88,
399
+ 0xF37A=>0xEAA7,
400
+ 0xF35C=>0xEA89,
401
+ 0xF37B=>0xEAA8,
402
+ 0xF35D=>0xEA8A,
403
+ 0xF37C=>0xEAA9,
404
+ 0xF35E=>0xEA8B,
405
+ 0xF37D=>0xEAAA,
406
+ 0xF35F=>0xEA8C,
407
+ 0xF37E=>0xEAAB,
408
+ 0xF360=>0xEA8D,
409
+ 0xF380=>0xEAAC,
410
+ 0xF361=>0xEA8E,
411
+ 0xF381=>0xEAAD,
412
+ 0xF362=>0xEA8F,
413
+ 0xF382=>0xEAAE,
414
+ 0xF363=>0xEA90,
415
+ 0xF383=>0xEAAF,
416
+ 0xF364=>0xEA91,
417
+ 0xF384=>0xEAB0,
418
+ 0xF365=>0xEA92,
419
+ 0xF385=>0xEAB1,
420
+ 0xF366=>0xEA93,
421
+ 0xF386=>0xEAB2,
422
+ 0xF367=>0xEA94,
423
+ 0xF387=>0xEAB3,
424
+ 0xF368=>0xEA95,
425
+ 0xF388=>0xEAB4,
426
+ 0xF369=>0xEA96,
427
+ 0xF389=>0xEAB5,
428
+ 0xF36A=>0xEA97,
429
+ 0xF38A=>0xEAB6,
430
+ 0xF36B=>0xEA98,
431
+ 0xF38B=>0xEAB7,
432
+ 0xF36C=>0xEA99,
433
+ 0xF38C=>0xEAB8,
434
+ 0xF36D=>0xEA9A,
435
+ 0xF38D=>0xEAB9,
436
+ 0xF38E=>0xEABA,
437
+ 0xF3AD=>0xEAD9,
438
+ 0xF38F=>0xEABB,
439
+ 0xF3AE=>0xEADA,
440
+ 0xF390=>0xEABC,
441
+ 0xF3AF=>0xEADB,
442
+ 0xF391=>0xEABD,
443
+ 0xF3B0=>0xEADC,
444
+ 0xF392=>0xEABE,
445
+ 0xF3B1=>0xEADD,
446
+ 0xF393=>0xEABF,
447
+ 0xF3B2=>0xEADE,
448
+ 0xF394=>0xEAC0,
449
+ 0xF3B3=>0xEADF,
450
+ 0xF395=>0xEAC1,
451
+ 0xF3B4=>0xEAE0,
452
+ 0xF396=>0xEAC2,
453
+ 0xF3B5=>0xEAE1,
454
+ 0xF397=>0xEAC3,
455
+ 0xF3B6=>0xEAE2,
456
+ 0xF398=>0xEAC4,
457
+ 0xF3B7=>0xEAE3,
458
+ 0xF399=>0xEAC5,
459
+ 0xF3B8=>0xEAE4,
460
+ 0xF39A=>0xEAC6,
461
+ 0xF3B9=>0xEAE5,
462
+ 0xF39B=>0xEAC7,
463
+ 0xF3BA=>0xEAE6,
464
+ 0xF39C=>0xEAC8,
465
+ 0xF3BB=>0xEAE7,
466
+ 0xF39D=>0xEAC9,
467
+ 0xF3BC=>0xEAE8,
468
+ 0xF39E=>0xEACA,
469
+ 0xF3BD=>0xEAE9,
470
+ 0xF39F=>0xEACB,
471
+ 0xF3BE=>0xEAEA,
472
+ 0xF3A0=>0xEACC,
473
+ 0xF3BF=>0xEAEB,
474
+ 0xF3A1=>0xEACD,
475
+ 0xF3C0=>0xEAEC,
476
+ 0xF3A2=>0xEACE,
477
+ 0xF3C1=>0xEAED,
478
+ 0xF3A3=>0xEACF,
479
+ 0xF3C2=>0xEAEE,
480
+ 0xF3A4=>0xEAD0,
481
+ 0xF3C3=>0xEAEF,
482
+ 0xF3A5=>0xEAD1,
483
+ 0xF3C4=>0xEAF0,
484
+ 0xF3A6=>0xEAD2,
485
+ 0xF3C5=>0xEAF1,
486
+ 0xF3A7=>0xEAD3,
487
+ 0xF3C6=>0xEAF2,
488
+ 0xF3A8=>0xEAD4,
489
+ 0xF3C7=>0xEAF3,
490
+ 0xF3A9=>0xEAD5,
491
+ 0xF3C8=>0xEAF4,
492
+ 0xF3AA=>0xEAD6,
493
+ 0xF3C9=>0xEAF5,
494
+ 0xF3AB=>0xEAD7,
495
+ 0xF3CA=>0xEAF6,
496
+ 0xF3AC=>0xEAD8,
497
+ 0xF3CB=>0xEAF7,
498
+ 0xF3CC=>0xEAF8,
499
+ 0xF3D8=>0xEB17,
500
+ 0xF3CD=>0xEAF9,
501
+ 0xF3D9=>0xEB18,
502
+ 0xF3CE=>0xEAFA,
503
+ 0xF3DA=>0xEB19,
504
+ 0xF7D2=>0xEAFB,
505
+ 0xF3DB=>0xEB1A,
506
+ 0xF7D3=>0xEAFC,
507
+ 0xF3DC=>0xEB1B,
508
+ 0xF7D4=>0xEAFD,
509
+ 0xF3DD=>0xEB1C,
510
+ 0xF7D5=>0xEAFE,
511
+ 0xF3DE=>0xEB1D,
512
+ 0xF7D6=>0xEAFF,
513
+ 0xF3DF=>0xEB1E,
514
+ 0xF7D7=>0xEB00,
515
+ 0xF3E0=>0xEB1F,
516
+ 0xF7D8=>0xEB01,
517
+ 0xF3E1=>0xEB20,
518
+ 0xF7D9=>0xEB02,
519
+ 0xF3E2=>0xEB21,
520
+ 0xF7DA=>0xEB03,
521
+ 0xF3E3=>0xEB22,
522
+ 0xF7DB=>0xEB04,
523
+ 0xF3E4=>0xEB23,
524
+ 0xF7DC=>0xEB05,
525
+ 0xF3E5=>0xEB24,
526
+ 0xF7DD=>0xEB06,
527
+ 0xF3E6=>0xEB25,
528
+ 0xF7DE=>0xEB07,
529
+ 0xF3E7=>0xEB26,
530
+ 0xF7DF=>0xEB08,
531
+ 0xF3E8=>0xEB27,
532
+ 0xF7E0=>0xEB09,
533
+ 0xF3E9=>0xEB28,
534
+ 0xF7E1=>0xEB0A,
535
+ 0xF3EA=>0xEB29,
536
+ 0xF7E2=>0xEB0B,
537
+ 0xF3EB=>0xEB2A,
538
+ 0xF7E3=>0xEB0C,
539
+ 0xF3EC=>0xEB2B,
540
+ 0xF7E4=>0xEB0D,
541
+ 0xF3ED=>0xEB2C,
542
+ 0xF3CF=>0xEB0E,
543
+ 0xF3EE=>0xEB2D,
544
+ 0xF3D0=>0xEB0F,
545
+ 0xF3EF=>0xEB2E,
546
+ 0xF3D1=>0xEB10,
547
+ 0xF3F0=>0xEB2F,
548
+ 0xF3D2=>0xEB11,
549
+ 0xF3F1=>0xEB30,
550
+ 0xF3D3=>0xEB12,
551
+ 0xF3F2=>0xEB31,
552
+ 0xF3D4=>0xEB13,
553
+ 0xF3F3=>0xEB32,
554
+ 0xF3D5=>0xEB14,
555
+ 0xF3F4=>0xEB33,
556
+ 0xF3D6=>0xEB15,
557
+ 0xF3F5=>0xEB34,
558
+ 0xF3D7=>0xEB16,
559
+ 0xF3F6=>0xEB35,
560
+ 0xF3F7=>0xEB36,
561
+ 0xF459=>0xEB55,
562
+ 0xF3F8=>0xEB37,
563
+ 0xF45A=>0xEB56,
564
+ 0xF3F9=>0xEB38,
565
+ 0xF45B=>0xEB57,
566
+ 0xF3FA=>0xEB39,
567
+ 0xF45C=>0xEB58,
568
+ 0xF3FB=>0xEB3A,
569
+ 0xF45D=>0xEB59,
570
+ 0xF3FC=>0xEB3B,
571
+ 0xF45E=>0xEB5A,
572
+ 0xF440=>0xEB3C,
573
+ 0xF45F=>0xEB5B,
574
+ 0xF441=>0xEB3D,
575
+ 0xF460=>0xEB5C,
576
+ 0xF442=>0xEB3E,
577
+ 0xF461=>0xEB5D,
578
+ 0xF443=>0xEB3F,
579
+ 0xF462=>0xEB5E,
580
+ 0xF444=>0xEB40,
581
+ 0xF463=>0xEB5F,
582
+ 0xF445=>0xEB41,
583
+ 0xF464=>0xEB60,
584
+ 0xF446=>0xEB42,
585
+ 0xF465=>0xEB61,
586
+ 0xF447=>0xEB43,
587
+ 0xF466=>0xEB62,
588
+ 0xF448=>0xEB44,
589
+ 0xF467=>0xEB63,
590
+ 0xF449=>0xEB45,
591
+ 0xF468=>0xEB64,
592
+ 0xF44A=>0xEB46,
593
+ 0xF469=>0xEB65,
594
+ 0xF44B=>0xEB47,
595
+ 0xF46A=>0xEB66,
596
+ 0xF44C=>0xEB48,
597
+ 0xF46B=>0xEB67,
598
+ 0xF44D=>0xEB49,
599
+ 0xF46C=>0xEB68,
600
+ 0xF44E=>0xEB4A,
601
+ 0xF46D=>0xEB69,
602
+ 0xF44F=>0xEB4B,
603
+ 0xF46E=>0xEB6A,
604
+ 0xF450=>0xEB4C,
605
+ 0xF46F=>0xEB6B,
606
+ 0xF451=>0xEB4D,
607
+ 0xF470=>0xEB6C,
608
+ 0xF452=>0xEB4E,
609
+ 0xF471=>0xEB6D,
610
+ 0xF453=>0xEB4F,
611
+ 0xF472=>0xEB6E,
612
+ 0xF454=>0xEB50,
613
+ 0xF473=>0xEB6F,
614
+ 0xF455=>0xEB51,
615
+ 0xF474=>0xEB70,
616
+ 0xF456=>0xEB52,
617
+ 0xF475=>0xEB71,
618
+ 0xF457=>0xEB53,
619
+ 0xF476=>0xEB72,
620
+ 0xF458=>0xEB54,
621
+ 0xF477=>0xEB73,
622
+ 0xF478=>0xEB74,
623
+ 0xF479=>0xEB75,
624
+ 0xF47A=>0xEB76,
625
+ 0xF47B=>0xEB77,
626
+ 0xF47C=>0xEB78,
627
+ 0xF47D=>0xEB79,
628
+ 0xF47E=>0xEB7A,
629
+ 0xF480=>0xEB7B,
630
+ 0xF481=>0xEB7C,
631
+ 0xF482=>0xEB7D,
632
+ 0xF483=>0xEB7E,
633
+ 0xF484=>0xEB7F,
634
+ 0xF485=>0xEB80,
635
+ 0xF486=>0xEB81,
636
+ 0xF487=>0xEB82,
637
+ 0xF488=>0xEB83,
638
+ 0xF489=>0xEB84,
639
+ 0xF48A=>0xEB85,
640
+ 0xF48B=>0xEB86,
641
+ 0xF48C=>0xEB87,
642
+ 0xF48D=>0xEB88,
643
+ }.freeze
644
+ Jpmobile::Emoticon::AU_UNICODE_TO_SJIS = Jpmobile::Emoticon::AU_SJIS_TO_UNICODE.invert.freeze