jpmobile 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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