jpmobile 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. data/Gemfile +10 -8
  2. data/README.rdoc +1 -1
  3. data/Rakefile +13 -5
  4. data/VERSION.yml +1 -1
  5. data/lib/jpmobile/helpers.rb +1 -1
  6. data/lib/jpmobile/rack/filter.rb +2 -7
  7. data/lib/tasks/jpmobile_tasks.rake +1 -1
  8. data/spec/rack/jpmobile/emoticon_spec.rb +17 -9
  9. data/spec/rack/jpmobile/filter_spec.rb +92 -18
  10. data/spec/rack_helper.rb +2 -0
  11. data/spec/spec_helper.rb +0 -26
  12. data/test/rails/overrides/spec/helpers/helpers_spec.rb +1 -1
  13. data/test/rails/rails_root/app/controllers/application_controller.rb +5 -0
  14. data/test/rails/rails_root/app/controllers/docomo_guid_always_controller.rb +3 -0
  15. data/test/rails/rails_root/app/controllers/docomo_guid_base_controller.rb +5 -0
  16. data/test/rails/rails_root/app/controllers/docomo_guid_docomo_controller.rb +3 -0
  17. data/test/rails/rails_root/app/controllers/filter_controller.rb +3 -0
  18. data/test/rails/rails_root/app/controllers/filter_controller_base.rb +25 -0
  19. data/test/rails/rails_root/app/controllers/hankaku_filter_controller.rb +3 -0
  20. data/test/rails/rails_root/app/controllers/hankaku_input_filter_controller.rb +7 -0
  21. data/test/rails/rails_root/app/controllers/links_controller.rb +28 -0
  22. data/test/rails/rails_root/app/controllers/mobile_spec_controller.rb +5 -0
  23. data/test/rails/rails_root/app/controllers/template_path_controller.rb +9 -0
  24. data/test/rails/rails_root/app/controllers/trans_sid_always_and_session_off_controller.rb +4 -0
  25. data/test/rails/rails_root/app/controllers/trans_sid_always_controller.rb +3 -0
  26. data/test/rails/rails_root/app/controllers/trans_sid_base_controller.rb +40 -0
  27. data/test/rails/rails_root/app/controllers/trans_sid_metal_controller.rb +15 -0
  28. data/test/rails/rails_root/app/controllers/trans_sid_mobile_controller.rb +3 -0
  29. data/test/rails/rails_root/app/controllers/trans_sid_none_controller.rb +3 -0
  30. data/test/rails/rails_root/app/helpers/application_helper.rb +2 -0
  31. data/test/rails/rails_root/app/models/user.rb +2 -0
  32. data/test/rails/rails_root/autotest/discover.rb +2 -0
  33. data/test/rails/rails_root/config/application.rb +42 -0
  34. data/test/rails/rails_root/config/boot.rb +13 -0
  35. data/test/rails/rails_root/config/environment.rb +5 -0
  36. data/test/rails/rails_root/config/environments/development.rb +26 -0
  37. data/test/rails/rails_root/config/environments/production.rb +49 -0
  38. data/test/rails/rails_root/config/environments/test.rb +35 -0
  39. data/test/rails/rails_root/config/initializers/backtrace_silencers.rb +7 -0
  40. data/test/rails/rails_root/config/initializers/inflections.rb +10 -0
  41. data/test/rails/rails_root/config/initializers/jpmobile_generator.rb +2 -0
  42. data/test/rails/rails_root/config/initializers/mime_types.rb +5 -0
  43. data/test/rails/rails_root/config/initializers/secret_token.rb +7 -0
  44. data/test/rails/rails_root/config/initializers/session_store.rb +2 -0
  45. data/test/rails/rails_root/config/routes.rb +7 -0
  46. data/test/rails/rails_root/db/migrate/001_add_sessions_table.rb +16 -0
  47. data/test/rails/rails_root/db/migrate/20100824062306_create_users.rb +13 -0
  48. data/test/rails/rails_root/db/schema.rb +31 -0
  49. data/test/rails/rails_root/db/seeds.rb +7 -0
  50. data/test/rails/rails_root/spec/helpers/helpers_spec.rb +15 -0
  51. data/test/rails/rails_root/spec/requests/docomo_guid_spec.rb +102 -0
  52. data/test/rails/rails_root/spec/requests/docomo_spec.rb +33 -0
  53. data/test/rails/rails_root/spec/requests/emobile_spec.rb +53 -0
  54. data/test/rails/rails_root/spec/requests/filter_spec.rb +221 -0
  55. data/test/rails/rails_root/spec/requests/helpers_spec.rb +187 -0
  56. data/test/rails/rails_root/spec/requests/pc_spec.rb +22 -0
  57. data/test/rails/rails_root/spec/requests/softbank_emulator_spec.rb +21 -0
  58. data/test/rails/rails_root/spec/requests/template_path_spec.rb +234 -0
  59. data/test/rails/rails_root/spec/requests/trans_sid_spec.rb +207 -0
  60. data/test/rails/rails_root/spec/spec_helper.rb +32 -0
  61. data/test/rails/rails_root/test/performance/browsing_test.rb +9 -0
  62. data/test/rails/rails_root/test/test_helper.rb +13 -0
  63. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile-ipaddresses.rb +18 -0
  64. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/abstract_ip_addresses.rb +23 -0
  65. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/au.rb +40 -0
  66. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/docomo.rb +22 -0
  67. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/emobile.rb +15 -0
  68. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/softbank.rb +20 -0
  69. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/willcom.rb +158 -0
  70. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/lib/jpmobile-terminfo.rb +9 -0
  71. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/lib/jpmobile/mobile/terminfo.rb +62 -0
  72. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/lib/jpmobile/mobile/terminfo/docomo.rb +739 -0
  73. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/spec/spec_helper.rb +2 -0
  74. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/spec/terminfo_spec.rb +54 -0
  75. data/test/rails/rails_root/vendor/plugins/jpmobile/init.rb +3 -0
  76. data/test/rails/rails_root/vendor/plugins/jpmobile/install.rb +1 -0
  77. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile.rb +56 -0
  78. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/datum_conv.rb +72 -0
  79. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/docomo_guid.rb +43 -0
  80. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/email.rb +18 -0
  81. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon.rb +141 -0
  82. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/au.rb +1287 -0
  83. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/conversion_table.rb +3909 -0
  84. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/docomo.rb +255 -0
  85. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/softbank.rb +477 -0
  86. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/z_combine.rb +33 -0
  87. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/encoding.rb +29 -0
  88. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/filter.rb +113 -0
  89. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/helpers.rb +174 -0
  90. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_controller.rb +31 -0
  91. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_view.rb +87 -0
  92. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/abstract_mobile.rb +99 -0
  93. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/android.rb +10 -0
  94. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/au.rb +108 -0
  95. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/ddipocket.rb +12 -0
  96. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/docomo.rb +128 -0
  97. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/emobile.rb +16 -0
  98. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/iphone.rb +26 -0
  99. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/smart_phone.rb +21 -0
  100. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/softbank.rb +62 -0
  101. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/vodafone.rb +17 -0
  102. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/willcom.rb +28 -0
  103. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/windows_phone.rb +10 -0
  104. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/position.rb +68 -0
  105. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack.rb +49 -0
  106. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/filter.rb +50 -0
  107. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/mobile_carrier.rb +33 -0
  108. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/params_filter.rb +47 -0
  109. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rails.rb +23 -0
  110. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/request_with_mobile.rb +45 -0
  111. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/trans_sid.rb +133 -0
  112. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/util.rb +97 -0
  113. data/test/rails/rails_root/vendor/plugins/jpmobile/tmp/conversion-table.rb +2588 -0
  114. data/test/rails/rails_root/vendor/plugins/jpmobile/tmp/utf8_to_image.rb +1407 -0
  115. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/emoji/genregexp.rb +47 -0
  116. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/generate_au_emoticon_table.rb +34 -0
  117. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/generate_docomo_emoticon_table.rb +33 -0
  118. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/generate_emoticon_conversion_table.rb +107 -0
  119. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/generate_softbank_emoticon_table.rb +31 -0
  120. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/list_gps_unsupported_au.rb +23 -0
  121. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile-ipaddresses.rb +18 -0
  122. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/abstract_ip_addresses.rb +23 -0
  123. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/au.rb +40 -0
  124. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/docomo.rb +22 -0
  125. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/emobile.rb +15 -0
  126. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/softbank.rb +20 -0
  127. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/willcom.rb +158 -0
  128. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/lib/jpmobile-terminfo.rb +9 -0
  129. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/lib/jpmobile/mobile/terminfo.rb +62 -0
  130. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/lib/jpmobile/mobile/terminfo/docomo.rb +739 -0
  131. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/spec/spec_helper.rb +2 -0
  132. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/spec/terminfo_spec.rb +54 -0
  133. metadata +368 -75
  134. data/.rspec +0 -5
  135. data/jpmobile.gemspec +0 -237
  136. data/test/rails/.gitignore +0 -1
  137. data/test/rails/overrides/.rspec +0 -5
  138. data/test/rails/overrides/Gemfile +0 -33
  139. data/test/rails/overrides/app/views/filter/index.html.erb +0 -0
  140. data/test/rails/overrides/app/views/hankaku_filter/index.html.erb +0 -0
  141. data/test/rails/overrides/app/views/hankaku_input_filter/index.html.erb +0 -0
  142. data/test/rails/overrides/app/views/hankaku_input_filter/index_xhtml.html.erb +0 -1
  143. data/test/rails/overrides/app/views/layouts/xhtml.html.erb +0 -12
  144. data/test/rails/overrides/app/views/links/au_gps.html.erb +0 -1
  145. data/test/rails/overrides/app/views/links/au_location.html.erb +0 -1
  146. data/test/rails/overrides/app/views/links/docomo_foma_gps.html.erb +0 -1
  147. data/test/rails/overrides/app/views/links/docomo_openiarea.html.erb +0 -1
  148. data/test/rails/overrides/app/views/links/docomo_utn.html.erb +0 -1
  149. data/test/rails/overrides/app/views/links/link.html.erb +0 -1
  150. data/test/rails/overrides/app/views/links/show_all.html.erb +0 -1
  151. data/test/rails/overrides/app/views/links/softbank_location.html.erb +0 -1
  152. data/test/rails/overrides/app/views/links/willcom_location.html.erb +0 -1
  153. data/test/rails/overrides/app/views/template_path/_partial.html.erb +0 -1
  154. data/test/rails/overrides/app/views/template_path/_partial_mobile.html.erb +0 -1
  155. data/test/rails/overrides/app/views/template_path/_partial_mobile_docomo.html.erb +0 -1
  156. data/test/rails/overrides/app/views/template_path/_partial_smart_phone.html.erb +0 -1
  157. data/test/rails/overrides/app/views/template_path/_partial_smart_phone_iphone.html.erb +0 -1
  158. data/test/rails/overrides/app/views/template_path/index.html.erb +0 -1
  159. data/test/rails/overrides/app/views/template_path/index_mobile.html.erb +0 -1
  160. data/test/rails/overrides/app/views/template_path/index_mobile_docomo.html.erb +0 -1
  161. data/test/rails/overrides/app/views/template_path/index_smart_phone.html.erb +0 -1
  162. data/test/rails/overrides/app/views/template_path/index_smart_phone_iphone.html.erb +0 -1
  163. data/test/rails/overrides/app/views/template_path/partial.html.erb +0 -2
  164. data/test/rails/overrides/app/views/template_path/show_mobile.html.erb +0 -1
  165. data/test/rails/overrides/app/views/template_path/show_mobile_docomo.html.erb +0 -1
  166. data/test/rails/overrides/spec/rcov.opts +0 -2
@@ -0,0 +1,2 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.expand_path(File.dirname(__FILE__)), '../lib/jpmobile-terminfo')
@@ -0,0 +1,54 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.expand_path(File.dirname(__FILE__)), 'spec_helper')
3
+
4
+ # dummy classes
5
+ module Jpmobile::Mobile
6
+ class Docomo; end
7
+ class Au; end
8
+ class Softbank; end
9
+ end
10
+
11
+ describe Jpmobile::Mobile::Terminfo do
12
+ def mock_carrier(carrier, stubs={ })
13
+ @mock_carrier = eval("Jpmobile::Mobile::#{carrier}").new
14
+ @mock_carrier.stub(stubs)
15
+ @mock_carrier
16
+ end
17
+
18
+ context "docomoの場合" do
19
+ it "端末情報を取得できること" do
20
+ terminfo = Jpmobile::Mobile::Terminfo.new(mock_carrier("Docomo", {:model_name => 'SH906i'}), {})
21
+ terminfo.color?.should be_true
22
+ terminfo.colors.should == 16777216
23
+ terminfo.width.should == 240
24
+ terminfo.height.should == 320
25
+ end
26
+ end
27
+
28
+ context "auの場合" do
29
+ it "端末情報を取得できること" do
30
+ terminfo = Jpmobile::Mobile::Terminfo.new(mock_carrier("Au"), {
31
+ 'HTTP_X_UP_DEVCAP_SCREENPIXELS' => "240,348",
32
+ 'HTTP_X_UP_DEVCAP_ISCOLOR' => "1",
33
+ 'HTTP_X_UP_DEVCAP_SCREENDEPTH' => "16,RGB565"
34
+ })
35
+ terminfo.color?.should be_true
36
+ terminfo.colors.should == 65536
37
+ terminfo.width.should == 240
38
+ terminfo.height.should == 348
39
+ end
40
+ end
41
+
42
+ context "softbankの場合" do
43
+ it "端末情報を取得できること" do
44
+ terminfo = Jpmobile::Mobile::Terminfo.new(mock_carrier("Softbank"), {
45
+ 'HTTP_X_JPHONE_DISPLAY' => "240*320",
46
+ 'HTTP_X_JPHONE_COLOR' => "C262144"
47
+ })
48
+ terminfo.color?.should be_true
49
+ terminfo.colors.should == 262144
50
+ terminfo.width.should == 240
51
+ terminfo.height.should == 320
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,3 @@
1
+ # Include hook code here
2
+
3
+ require File.join(File.dirname(__FILE__), 'lib/jpmobile')
@@ -0,0 +1 @@
1
+ # Install hook code here
@@ -0,0 +1,56 @@
1
+ # -*- coding: utf-8 -*-
2
+ $:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) ||
3
+ $:.include?(File.expand_path(File.dirname(__FILE__)))
4
+
5
+ module Jpmobile
6
+ autoload :Email, 'jpmobile/email'
7
+ autoload :Emoticon, 'jpmobile/emoticon'
8
+ autoload :Position, 'jpmobile/position'
9
+ autoload :RequestWithMobile, 'jpmobile/request_with_mobile'
10
+ autoload :Util, 'jpmobile/util'
11
+ autoload :Encoding, 'jpmobile/encoding'
12
+ autoload :Version, 'jpmobile/version'
13
+ autoload :DatumConv, 'jpmobile/datum_conv'
14
+
15
+ # autoload mobile classes
16
+ module Mobile
17
+ autoload :Docomo, 'jpmobile/mobile/docomo'
18
+ autoload :Au, 'jpmobile/mobile/au'
19
+ autoload :Softbank, 'jpmobile/mobile/softbank'
20
+ autoload :Vodafone, 'jpmobile/mobile/vodafone'
21
+ autoload :Emobile, 'jpmobile/mobile/emobile'
22
+ autoload :Willcom, 'jpmobile/mobile/willcom'
23
+ autoload :Ddipocket, 'jpmobile/mobile/ddipocket'
24
+ autoload :SmartPhone, 'jpmobile/mobile/smart_phone'
25
+ autoload :Iphone, 'jpmobile/mobile/iphone'
26
+ autoload :Android, 'jpmobile/mobile/android'
27
+ autoload :WindowsPhone, 'jpmobile/mobile/windows_phone'
28
+
29
+ autoload :Display, 'jpmobile/mobile/display'
30
+
31
+ DEFAULT_CARRIERS = %w(Docomo Au Softbank Vodafone Emobile Willcom Ddipocket Iphone Android WindowsPhone)
32
+
33
+ def self.carriers
34
+ @carriers ||= DEFAULT_CARRIERS.dup
35
+ end
36
+
37
+ def self.carriers=(ary)
38
+ @carriers = ary
39
+ end
40
+
41
+ require 'jpmobile/mobile/abstract_mobile'
42
+ end
43
+
44
+ # autoload Rack middlewares
45
+ module Rack
46
+ autoload :MobileCarrier, 'jpmobile/rack/mobile_carrier'
47
+ autoload :ParamsFilter, 'jpmobile/rack/params_filter'
48
+ autoload :Filter, 'jpmobile/rack/filter'
49
+ autoload :Config, 'jpmobile/rack/config'
50
+ end
51
+ autoload :Configuration, 'jpmobile/rack'
52
+ end
53
+
54
+ if defined?(Rails)
55
+ require 'jpmobile/rails'
56
+ end
@@ -0,0 +1,72 @@
1
+ # =測地系変換モジュール
2
+ #
3
+ # 参考文献:
4
+ # 飛田幹男, 世界測地系と座標変換--21世紀の測量士・位置情報ユーザ・プログラマーのために,
5
+ # 日本測量協会, 2002.
6
+
7
+ module DatumConv
8
+ GRS80 = [ 6378137, 298.257222101]
9
+ Bessel = [6377397.155, 299.152813]
10
+ Tokyo97toITRF94 = [-146.414, 507.337, 680.507]
11
+ ITRF94toTokyo97 = [ 146.414,-507.337,-680.507]
12
+ Deg2Rad = Math::PI/180
13
+
14
+ # 緯度(度),経度(度),高度(m)を三次元直交座標(m)に変換する。
15
+ def self.blh2xyz(b_deg,l_deg,he,datum)
16
+ a = datum[0].to_f
17
+ f = 1.0/datum[1]
18
+ b = b_deg * Deg2Rad
19
+ l = l_deg * Deg2Rad
20
+
21
+ e2 = f * (2 - f)
22
+ n = a / Math.sqrt(1 - e2 * Math.sin(b)**2 )
23
+
24
+ x = (n+he)*Math.cos(b)*Math.cos(l)
25
+ y = (n+he)*Math.cos(b)*Math.sin(l)
26
+ z = (n*(1-e2)+he)*Math.sin(b)
27
+ return x,y,z
28
+ end
29
+
30
+ # 三次元直交座標(m)を緯度(度),経度(度),高度(m)に変換する。
31
+ def self.xyz2blh(x,y,z,datum)
32
+ a = datum[0].to_f
33
+ f = 1.0/datum[1]
34
+ e2 = f * (2 - f)
35
+ l = Math.atan2(y,x)
36
+
37
+ p = Math.sqrt(x**2+y**2)
38
+ r = Math.sqrt(p**2+z**2)
39
+ u = Math.atan2(z*((1-f)+e2*a/r),p)
40
+ b = Math.atan2(z*(1-f)+e2*a*Math.sin(u)**3,(1-f)*(p-e2*a*Math.cos(u)**3))
41
+
42
+ he = p*Math.cos(b) + z*Math.sin(b) - a*Math.sqrt(1-e2*Math.sin(b)**2)
43
+
44
+ b_deg = b / Deg2Rad
45
+ l_deg = l / Deg2Rad
46
+ return b_deg,l_deg,he
47
+ end
48
+
49
+ # 三次元直交座標でシフトする。
50
+ def self.xyz2xyz(x,y,z,d)
51
+ return x+d[0],y+d[1],z+d[2]
52
+ end
53
+
54
+ # 日本測地系から世界測地系に変換する。
55
+ def self.tky2jgd(b,l,he=0)
56
+ x,y,z = blh2xyz(b,l,he,Bessel)
57
+ x,y,z = xyz2xyz(x,y,z,Tokyo97toITRF94)
58
+ b,l,he = xyz2blh(x,y,z,GRS80)
59
+ return b,l,he
60
+ end
61
+
62
+ # 世界測地系から日本測地系に変換する。
63
+ def self.jgd2tky(b,l,he=0)
64
+ x,y,z = blh2xyz(b,l,he,GRS80)
65
+ x,y,z = xyz2xyz(x,y,z,ITRF94toTokyo97)
66
+ b,l,he = xyz2blh(x,y,z,Bessel)
67
+ return b,l,he
68
+ end
69
+ end
70
+
71
+ #DatumConv.tky2jgd(b,l)
72
+ #DatumConv.jgd2tky(b,l)
@@ -0,0 +1,43 @@
1
+ # -*- coding: utf-8 -*-
2
+ #DoCoMoの時guid=onの付与
3
+ class ActionController::Base #:nodoc:
4
+ class_inheritable_accessor :docomo_guid_mode
5
+
6
+ class << self
7
+ def docomo_guid(mode=:docomo)
8
+ include Jpmobile::DocomoGuid
9
+ self.docomo_guid_mode = mode
10
+ end
11
+ end
12
+ end
13
+
14
+
15
+ module Jpmobile::DocomoGuid #:nodoc:
16
+ protected
17
+ def default_url_options
18
+ result = super || {}
19
+ return result unless request # for test process
20
+ return result unless apply_add_guid?
21
+ return result.merge({:guid => "ON"})
22
+ end
23
+
24
+ #guid=ONを付与すべきか否かを返す
25
+ def apply_add_guid?
26
+ return true if docomo_guid_mode == :always
27
+ return false if docomo_guid_mode == :none
28
+
29
+ return false unless request.mobile?
30
+ return false unless request.mobile.is_a?(Jpmobile::Mobile::Docomo)
31
+ return false if not_apply_guid_user_agent?
32
+
33
+ if docomo_guid_mode == :valid_ip
34
+ return false unless request.mobile.valid_ip?
35
+ end
36
+
37
+ return true
38
+ end
39
+
40
+ def not_apply_guid_user_agent?
41
+ request.user_agent.match(/(?:Googlebot|Y!J-SRD\/1\.0|Y!J-MBS\/1\.0)/)
42
+ end
43
+ end
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+ # =メールアドレスモジュール
3
+ #
4
+ module Jpmobile
5
+ # email関連の処理
6
+ module Email
7
+ # メールアドレスよりキャリア情報を取得する
8
+ # _param1_:: email メールアドレス
9
+ # return :: Jpmobile::Mobileで定義されている携帯キャリアクラス
10
+ def self.detect(email)
11
+ Mobile.carriers.each do |const|
12
+ c = Mobile.const_get(const)
13
+ return c if c::MAIL_ADDRESS_REGEXP && email =~ c::MAIL_ADDRESS_REGEXP
14
+ end
15
+ nil
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,141 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require 'scanf'
4
+ require 'nkf'
5
+
6
+ module Jpmobile
7
+ # 絵文字関連処理
8
+ module Emoticon
9
+ %w( DOCOMO_SJIS_TO_UNICODE DOCOMO_UNICODE_TO_SJIS ).each do |const|
10
+ autoload const, 'jpmobile/emoticon/docomo'
11
+ end
12
+ autoload :AU_SJIS_TO_UNICODE, 'jpmobile/emoticon/au'
13
+ %w( SOFTBANK_UNICODE_TO_WEBCODE SOFTBANK_WEBCODE_TO_UNICODE ).each do |const|
14
+ autoload const, 'jpmobile/emoticon/softbank'
15
+ end
16
+ %w( CONVERSION_TABLE_TO_DOCOMO CONVERSION_TABLE_TO_AU CONVERSION_TABLE_TO_SOFTBANK ).each do |const|
17
+ autoload const, 'jpmobile/emoticon/conversion_table'
18
+ end
19
+ %w(
20
+ SJIS_TO_UNICODE UNICODE_TO_SJIS
21
+ SJIS_REGEXP SOFTBANK_WEBCODE_REGEXP DOCOMO_SJIS_REGEXP AU_SJIS_REGEXP SOFTBANK_UNICODE_REGEXP
22
+ EMOTICON_UNICODES UTF8_REGEXP
23
+ ).each do |const|
24
+ autoload const, 'jpmobile/emoticon/z_combine'
25
+ end
26
+
27
+ # +str+ のなかでDoCoMo絵文字をUnicode数値文字参照に置換した文字列を返す。
28
+ def self.external_to_unicodecr_docomo(str)
29
+ str.gsub(DOCOMO_SJIS_REGEXP) do |match|
30
+ sjis = match.unpack('n').first
31
+ unicode = DOCOMO_SJIS_TO_UNICODE[sjis]
32
+ unicode ? ("&#x%04x;"%unicode) : match
33
+ end
34
+ end
35
+
36
+ # +str+ のなかでDoCoMo絵文字をUnicode数値文字参照に置換した文字列を返す。
37
+ def self.external_to_unicodecr_au(str)
38
+ str.gsub(AU_SJIS_REGEXP) do |match|
39
+ sjis = match.unpack('n').first
40
+ unicode = AU_SJIS_TO_UNICODE[sjis]
41
+ unicode ? ("&#x%04x;"%unicode) : match
42
+ end
43
+ end
44
+
45
+ # +str+のなかでUTF8のSoftBank絵文字を(+0x1000だけシフトして)Unicode数値文字参照に変換した文字列を返す。
46
+ def self.external_to_unicodecr_softbank(str)
47
+ # SoftBank Unicode
48
+ str.gsub(SOFTBANK_UNICODE_REGEXP) do |match|
49
+ unicode = match.unpack('U').first
50
+ "&#x%04x;" % (unicode+0x1000)
51
+ end
52
+ end
53
+ def self.external_to_unicodecr_vodafone(str)
54
+ external_to_unicodecr_softbank(str)
55
+ end
56
+ # +str+のなかでWebcodeのSoftBank絵文字を(+0x1000だけシフトして)Unicode数値文字参照に変換した文字列を返す。
57
+ def self.external_to_unicodecr_jphone(str)
58
+ # SoftBank Webcode
59
+ s = str.clone
60
+ # 連続したエスケープコードが省略されている場合は切りはなす。
61
+ s.gsub!(/\x1b\x24(.)(.+?)\x0f/) do |match|
62
+ a = $1
63
+ $2.split(//).map{|x| "\x1b\x24#{a}#{x}\x0f"}.join('')
64
+ end
65
+ # Webcodeを変換
66
+ s.gsub(SOFTBANK_WEBCODE_REGEXP) do |match|
67
+ unicode = SOFTBANK_WEBCODE_TO_UNICODE[match[2,2]] + 0x1000
68
+ unicode ? ("&#x%04x;"%unicode) : match
69
+ end
70
+ end
71
+
72
+ # +str+ のなかでUnicode数値文字参照で表記された絵文字を携帯側エンコーディングに置換する。
73
+ #
74
+ # キャリア間の変換に +conversion_table+ を使う。+conversion_table+ に+nil+を与えると、
75
+ # キャリア間の変換は行わない。
76
+ #
77
+ # 携帯側エンコーディングがShift_JIS場合は +to_sjis+ に +true+ を指定する。
78
+ # +true+ を指定すると変換テーブルに文字列が指定されている場合にShift_JISで出力される。
79
+ def self.unicodecr_to_external(str, conversion_table=nil, to_sjis=true)
80
+ str.gsub(/&#x([0-9a-f]{4});/i) do |match|
81
+ unicode = $1.scanf("%x").first
82
+ if conversion_table
83
+ converted = conversion_table[unicode] # キャリア間変換
84
+ else
85
+ converted = unicode # 変換しない
86
+ end
87
+
88
+ # 携帯側エンコーディングに変換する
89
+ case converted
90
+ when Integer
91
+ # 変換先がUnicodeで指定されている。つまり対応する絵文字がある。
92
+ if sjis = UNICODE_TO_SJIS[converted]
93
+ if to_sjis
94
+ sjis_emotion = [sjis].pack('n')
95
+ if sjis_emotion.respond_to?(:force_encoding)
96
+ sjis_emotion.force_encoding("Shift_JIS")
97
+ end
98
+ sjis_emotion
99
+ else
100
+ [converted].pack("U")
101
+ end
102
+ elsif webcode = SOFTBANK_UNICODE_TO_WEBCODE[converted-0x1000]
103
+ [converted-0x1000].pack('U')
104
+ else
105
+ # キャリア変換テーブルに指定されていたUnicodeに対応する
106
+ # 携帯側エンコーディングが見つからない(変換テーブルの不備の可能性あり)。
107
+ match
108
+ end
109
+ when String
110
+ # 変換先が数値参照だと、再変換する
111
+ if converted.match(/&#x([0-9a-f]{4});/i)
112
+ self.unicodecr_to_external(converted, conversion_table, to_sjis)
113
+ else
114
+ # 変換先が文字列で指定されている。
115
+ to_sjis ? Jpmobile::Util.utf8_to_sjis(converted) : converted
116
+ end
117
+ when nil
118
+ # 変換先が定義されていない。
119
+ match
120
+ end
121
+ end
122
+ end
123
+ # +str+ のなかでUnicode数値文字参照で表記された絵文字をUTF-8に置換する。
124
+ def self.unicodecr_to_utf8(str)
125
+ str.gsub(/&#x([0-9a-f]{4});/i) do |match|
126
+ unicode = $1.scanf("%x").first
127
+ if UNICODE_TO_SJIS[unicode] || SOFTBANK_UNICODE_TO_WEBCODE[unicode-0x1000]
128
+ [unicode].pack('U')
129
+ else
130
+ match
131
+ end
132
+ end
133
+ end
134
+ # +str+ のなかでUTF-8で表記された絵文字をUnicode数値文字参照に置換する。
135
+ def self.utf8_to_unicodecr(str)
136
+ str.gsub(UTF8_REGEXP) do |match|
137
+ "&#x%04x;" % match.unpack('U').first
138
+ end
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,1287 @@
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
645
+ Jpmobile::Emoticon::AU_EMAILJIS_TO_UNICODE = {
646
+ 0x753A=>0xE481,
647
+ 0x773F=>0xE542,
648
+ 0x753B=>0xE482,
649
+ 0x7740=>0xE543,
650
+ 0x753C=>0xE483,
651
+ 0x7741=>0xE544,
652
+ 0x7729=>0xE52C,
653
+ 0x7742=>0xE545,
654
+ 0x772A=>0xE52D,
655
+ 0x7743=>0xE546,
656
+ 0x772B=>0xE52E,
657
+ 0x7744=>0xE547,
658
+ 0x772C=>0xE52F,
659
+ 0x7745=>0xE548,
660
+ 0x772D=>0xE530,
661
+ 0x7746=>0xE549,
662
+ 0x772E=>0xE531,
663
+ 0x7747=>0xE54A,
664
+ 0x772F=>0xE532,
665
+ 0x7748=>0xE54B,
666
+ 0x7730=>0xE533,
667
+ 0x7749=>0xE54C,
668
+ 0x757A=>0xE4C1,
669
+ 0x774A=>0xE54D,
670
+ 0x766C=>0xE511,
671
+ 0x7541=>0xE488,
672
+ 0x7776=>0xE579,
673
+ 0x7573=>0xE4BA,
674
+ 0x753F=>0xE486,
675
+ 0x7833=>0xE594,
676
+ 0x7540=>0xE487,
677
+ 0x7542=>0xE489,
678
+ 0x7731=>0xE534,
679
+ 0x766D=>0xE512,
680
+ 0x7732=>0xE535,
681
+ 0x775D=>0xE560,
682
+ 0x7733=>0xE536,
683
+ 0x7655=>0xE4FA,
684
+ 0x7734=>0xE537,
685
+ 0x7834=>0xE595,
686
+ 0x7735=>0xE538,
687
+ 0x757B=>0xE4C2,
688
+ 0x7736=>0xE539,
689
+ 0x766E=>0xE513,
690
+ 0x7737=>0xE53A,
691
+ 0x774B=>0xE54E,
692
+ 0x7738=>0xE53B,
693
+ 0x774C=>0xE54F,
694
+ 0x7777=>0xE57A,
695
+ 0x775E=>0xE561,
696
+ 0x7739=>0xE53C,
697
+ 0x7778=>0xE57B,
698
+ 0x773A=>0xE53D,
699
+ 0x7535=>0xE47C,
700
+ 0x773B=>0xE53E,
701
+ 0x775F=>0xE562,
702
+ 0x773C=>0xE53F,
703
+ 0x7543=>0xE48A,
704
+ 0x773D=>0xE540,
705
+ 0x774D=>0xE550,
706
+ 0x773E=>0xE541,
707
+ 0x774E=>0xE551,
708
+ 0x774F=>0xE552,
709
+ 0x7670=>0xE515,
710
+ 0x7750=>0xE553,
711
+ 0x7545=>0xE48C,
712
+ 0x757C=>0xE4C3,
713
+ 0x7574=>0xE4BB,
714
+ 0x7751=>0xE554,
715
+ 0x7762=>0xE565,
716
+ 0x7760=>0xE563,
717
+ 0x753D=>0xE484,
718
+ 0x7656=>0xE4FB,
719
+ 0x7523=>0xE46A,
720
+ 0x7544=>0xE48B,
721
+ 0x7763=>0xE566,
722
+ 0x7752=>0xE555,
723
+ 0x7764=>0xE567,
724
+ 0x7753=>0xE556,
725
+ 0x7765=>0xE568,
726
+ 0x766F=>0xE514,
727
+ 0x7766=>0xE569,
728
+ 0x7754=>0xE557,
729
+ 0x7671=>0xE516,
730
+ 0x763A=>0xE4DF,
731
+ 0x7767=>0xE56A,
732
+ 0x7521=>0xE468,
733
+ 0x7557=>0xE49E,
734
+ 0x7525=>0xE46C,
735
+ 0x7546=>0xE48D,
736
+ 0x752F=>0xE476,
737
+ 0x767C=>0xE521,
738
+ 0x763B=>0xE4E0,
739
+ 0x777A=>0xE57D,
740
+ 0x782E=>0xE58F,
741
+ 0x7672=>0xE517,
742
+ 0x7657=>0xE4FC,
743
+ 0x777B=>0xE57E,
744
+ 0x7755=>0xE558,
745
+ 0x7564=>0xE4AB,
746
+ 0x7756=>0xE559,
747
+ 0x763F=>0xE4E4,
748
+ 0x7555=>0xE49C,
749
+ 0x777C=>0xE57F,
750
+ 0x782F=>0xE590,
751
+ 0x777D=>0xE580,
752
+ 0x7835=>0xE596,
753
+ 0x7659=>0xE4FE,
754
+ 0x7658=>0xE4FD,
755
+ 0x7759=>0xE55C,
756
+ 0x7779=>0xE57C,
757
+ 0x775A=>0xE55D,
758
+ 0x7757=>0xE55A,
759
+ 0x7673=>0xE518,
760
+ 0x7758=>0xE55B,
761
+ 0x7674=>0xE519,
762
+ 0x7770=>0xE573,
763
+ 0x7768=>0xE56B,
764
+ 0x7556=>0xE49D,
765
+ 0x7558=>0xE49F,
766
+ 0x7761=>0xE564,
767
+ 0x777E=>0xE581,
768
+ 0x7836=>0xE597,
769
+ 0x7675=>0xE51A,
770
+ 0x756A=>0xE4B1,
771
+ 0x7566=>0xE4AD,
772
+ 0x7821=>0xE582,
773
+ 0x776D=>0xE570,
774
+ 0x7771=>0xE574,
775
+ 0x755B=>0xE4A2,
776
+ 0x7772=>0xE575,
777
+ 0x7773=>0xE576,
778
+ 0x7676=>0xE51B,
779
+ 0x757D=>0xE4C4,
780
+ 0x7822=>0xE583,
781
+ 0x7827=>0xE588,
782
+ 0x7769=>0xE56C,
783
+ 0x7828=>0xE589,
784
+ 0x775B=>0xE55E,
785
+ 0x765C=>0xE501,
786
+ 0x7629=>0xE4CE,
787
+ 0x7829=>0xE58A,
788
+ 0x763C=>0xE4E1,
789
+ 0x767A=>0xE51F,
790
+ 0x7823=>0xE584,
791
+ 0x767B=>0xE520,
792
+ 0x775C=>0xE55F,
793
+ 0x7547=>0xE48E,
794
+ 0x776A=>0xE56D,
795
+ 0x756C=>0xE4B3,
796
+ 0x7677=>0xE51C,
797
+ 0x756D=>0xE4B4,
798
+ 0x7824=>0xE585,
799
+ 0x7623=>0xE4C8,
800
+ 0x765A=>0xE4FF,
801
+ 0x782A=>0xE58B,
802
+ 0x765B=>0xE500,
803
+ 0x756E=>0xE4B5,
804
+ 0x776B=>0xE56E,
805
+ 0x782B=>0xE58C,
806
+ 0x7559=>0xE4A0,
807
+ 0x782C=>0xE58D,
808
+ 0x762A=>0xE4CF,
809
+ 0x782D=>0xE58E,
810
+ 0x7678=>0xE51D,
811
+ 0x7536=>0xE47D,
812
+ 0x7565=>0xE4AC,
813
+ 0x7537=>0xE47E,
814
+ 0x776C=>0xE56F,
815
+ 0x7538=>0xE47F,
816
+ 0x756B=>0xE4B2,
817
+ 0x7539=>0xE480,
818
+ 0x755A=>0xE4A1,
819
+ 0x767D=>0xE522,
820
+ 0x7825=>0xE586,
821
+ 0x767E=>0xE523,
822
+ 0x7830=>0xE591,
823
+ 0x7721=>0xE524,
824
+ 0x7826=>0xE587,
825
+ 0x7722=>0xE525,
826
+ 0x7831=>0xE592,
827
+ 0x7723=>0xE526,
828
+ 0x7832=>0xE593,
829
+ 0x7724=>0xE527,
830
+ 0x7679=>0xE51E,
831
+ 0x7725=>0xE528,
832
+ 0x7726=>0xE529,
833
+ 0x7524=>0xE46B,
834
+ 0x7727=>0xE52A,
835
+ 0x756F=>0xE4B6,
836
+ 0x7728=>0xE52B,
837
+ 0x7570=>0xE4B7,
838
+ 0x7522=>0xE469,
839
+ 0x7571=>0xE4B8,
840
+ 0x753E=>0xE485,
841
+ 0x7572=>0xE4B9,
842
+ 0x7548=>0xE48F,
843
+ 0x7526=>0xE46D,
844
+ 0x7549=>0xE490,
845
+ 0x7575=>0xE4BC,
846
+ 0x754A=>0xE491,
847
+ 0x7576=>0xE4BD,
848
+ 0x754B=>0xE492,
849
+ 0x7577=>0xE4BE,
850
+ 0x754C=>0xE493,
851
+ 0x7578=>0xE4BF,
852
+ 0x754D=>0xE494,
853
+ 0x7579=>0xE4C0,
854
+ 0x754E=>0xE495,
855
+ 0x7527=>0xE46E,
856
+ 0x754F=>0xE496,
857
+ 0x7528=>0xE46F,
858
+ 0x7550=>0xE497,
859
+ 0x757E=>0xE4C5,
860
+ 0x7551=>0xE498,
861
+ 0x7621=>0xE4C6,
862
+ 0x7552=>0xE499,
863
+ 0x7622=>0xE4C7,
864
+ 0x7553=>0xE49A,
865
+ 0x7624=>0xE4C9,
866
+ 0x7554=>0xE49B,
867
+ 0x7625=>0xE4CA,
868
+ 0x755C=>0xE4A3,
869
+ 0x7626=>0xE4CB,
870
+ 0x755D=>0xE4A4,
871
+ 0x7627=>0xE4CC,
872
+ 0x755E=>0xE4A5,
873
+ 0x7628=>0xE4CD,
874
+ 0x755F=>0xE4A6,
875
+ 0x762B=>0xE4D0,
876
+ 0x7560=>0xE4A7,
877
+ 0x762C=>0xE4D1,
878
+ 0x7561=>0xE4A8,
879
+ 0x762D=>0xE4D2,
880
+ 0x7562=>0xE4A9,
881
+ 0x762E=>0xE4D3,
882
+ 0x7563=>0xE4AA,
883
+ 0x762F=>0xE4D4,
884
+ 0x776E=>0xE571,
885
+ 0x7630=>0xE4D5,
886
+ 0x776F=>0xE572,
887
+ 0x7631=>0xE4D6,
888
+ 0x7567=>0xE4AE,
889
+ 0x7529=>0xE470,
890
+ 0x7568=>0xE4AF,
891
+ 0x7632=>0xE4D7,
892
+ 0x7569=>0xE4B0,
893
+ 0x7633=>0xE4D8,
894
+ 0x7634=>0xE4D9,
895
+ 0x764D=>0xE4F2,
896
+ 0x7635=>0xE4DA,
897
+ 0x764E=>0xE4F3,
898
+ 0x7636=>0xE4DB,
899
+ 0x764F=>0xE4F4,
900
+ 0x7637=>0xE4DC,
901
+ 0x7650=>0xE4F5,
902
+ 0x7638=>0xE4DD,
903
+ 0x7651=>0xE4F6,
904
+ 0x7639=>0xE4DE,
905
+ 0x7652=>0xE4F7,
906
+ 0x763D=>0xE4E2,
907
+ 0x7653=>0xE4F8,
908
+ 0x763E=>0xE4E3,
909
+ 0x7654=>0xE4F9,
910
+ 0x752A=>0xE471,
911
+ 0x765D=>0xE502,
912
+ 0x752B=>0xE472,
913
+ 0x765E=>0xE503,
914
+ 0x752C=>0xE473,
915
+ 0x765F=>0xE504,
916
+ 0x752D=>0xE474,
917
+ 0x7660=>0xE505,
918
+ 0x752E=>0xE475,
919
+ 0x7661=>0xE506,
920
+ 0x7640=>0xE4E5,
921
+ 0x7662=>0xE507,
922
+ 0x7641=>0xE4E6,
923
+ 0x7663=>0xE508,
924
+ 0x7642=>0xE4E7,
925
+ 0x7664=>0xE509,
926
+ 0x7530=>0xE477,
927
+ 0x7665=>0xE50A,
928
+ 0x7531=>0xE478,
929
+ 0x7666=>0xE50B,
930
+ 0x7532=>0xE479,
931
+ 0x7774=>0xE577,
932
+ 0x7533=>0xE47A,
933
+ 0x7775=>0xE578,
934
+ 0x7534=>0xE47B,
935
+ 0x7667=>0xE50C,
936
+ 0x7643=>0xE4E8,
937
+ 0x7668=>0xE50D,
938
+ 0x7644=>0xE4E9,
939
+ 0x7669=>0xE50E,
940
+ 0x7645=>0xE4EA,
941
+ 0x766A=>0xE50F,
942
+ 0x7646=>0xE4EB,
943
+ 0x766B=>0xE510,
944
+ 0x7647=>0xE4EC,
945
+ 0x7837=>0xE598,
946
+ 0x7648=>0xE4ED,
947
+ 0x7838=>0xE599,
948
+ 0x7649=>0xE4EE,
949
+ 0x7839=>0xE59A,
950
+ 0x764A=>0xE4EF,
951
+ 0x783A=>0xE59B,
952
+ 0x764B=>0xE4F0,
953
+ 0x783B=>0xE59C,
954
+ 0x764C=>0xE4F1,
955
+ 0x783C=>0xE59D,
956
+ 0x783D=>0xE59E,
957
+ 0x786F=>0xE5BD,
958
+ 0x783E=>0xE59F,
959
+ 0x7870=>0xE5BE,
960
+ 0x783F=>0xE5A0,
961
+ 0x7871=>0xE5BF,
962
+ 0x7840=>0xE5A1,
963
+ 0x7872=>0xE5C0,
964
+ 0x7841=>0xE5A2,
965
+ 0x7873=>0xE5C1,
966
+ 0x7842=>0xE5A3,
967
+ 0x7874=>0xE5C2,
968
+ 0x7843=>0xE5A4,
969
+ 0x7875=>0xE5C3,
970
+ 0x7844=>0xE5A5,
971
+ 0x7876=>0xE5C4,
972
+ 0x7845=>0xE5A6,
973
+ 0x7877=>0xE5C5,
974
+ 0x7846=>0xE5A7,
975
+ 0x7878=>0xE5C6,
976
+ 0x7847=>0xE5A8,
977
+ 0x7879=>0xE5C7,
978
+ 0x7848=>0xE5A9,
979
+ 0x787A=>0xE5C8,
980
+ 0x7849=>0xE5AA,
981
+ 0x787B=>0xE5C9,
982
+ 0x784A=>0xE5AB,
983
+ 0x787C=>0xE5CA,
984
+ 0x784B=>0xE5AC,
985
+ 0x787D=>0xE5CB,
986
+ 0x784C=>0xE5AD,
987
+ 0x787E=>0xE5CC,
988
+ 0x784D=>0xE5AE,
989
+ 0x7921=>0xE5CD,
990
+ 0x784E=>0xE5AF,
991
+ 0x7922=>0xE5CE,
992
+ 0x784F=>0xE5B0,
993
+ 0x7923=>0xE5CF,
994
+ 0x7850=>0xE5B1,
995
+ 0x7924=>0xE5D0,
996
+ 0x7851=>0xE5B2,
997
+ 0x7925=>0xE5D1,
998
+ 0x7852=>0xE5B3,
999
+ 0x7926=>0xE5D2,
1000
+ 0x7853=>0xE5B4,
1001
+ 0x7927=>0xE5D3,
1002
+ 0x7867=>0xE5B5,
1003
+ 0x7928=>0xE5D4,
1004
+ 0x7868=>0xE5B6,
1005
+ 0x7929=>0xE5D5,
1006
+ 0x7869=>0xE5B7,
1007
+ 0x792A=>0xE5D6,
1008
+ 0x786A=>0xE5B8,
1009
+ 0x792B=>0xE5D7,
1010
+ 0x786B=>0xE5B9,
1011
+ 0x792C=>0xE5D8,
1012
+ 0x786C=>0xE5BA,
1013
+ 0x792D=>0xE5D9,
1014
+ 0x786D=>0xE5BB,
1015
+ 0x792E=>0xE5DA,
1016
+ 0x786E=>0xE5BC,
1017
+ 0x792F=>0xE5DB,
1018
+ 0x7930=>0xE5DC,
1019
+ 0x794F=>0xEA9B,
1020
+ 0x7931=>0xE5DD,
1021
+ 0x7950=>0xEA9C,
1022
+ 0x7932=>0xE5DE,
1023
+ 0x7951=>0xEA9D,
1024
+ 0x7933=>0xE5DF,
1025
+ 0x7952=>0xEA9E,
1026
+ 0x7934=>0xEA80,
1027
+ 0x7953=>0xEA9F,
1028
+ 0x7935=>0xEA81,
1029
+ 0x7954=>0xEAA0,
1030
+ 0x7936=>0xEA82,
1031
+ 0x7955=>0xEAA1,
1032
+ 0x7937=>0xEA83,
1033
+ 0x7956=>0xEAA2,
1034
+ 0x7938=>0xEA84,
1035
+ 0x7957=>0xEAA3,
1036
+ 0x7939=>0xEA85,
1037
+ 0x7958=>0xEAA4,
1038
+ 0x793A=>0xEA86,
1039
+ 0x7959=>0xEAA5,
1040
+ 0x793B=>0xEA87,
1041
+ 0x795A=>0xEAA6,
1042
+ 0x793C=>0xEA88,
1043
+ 0x795B=>0xEAA7,
1044
+ 0x793D=>0xEA89,
1045
+ 0x795C=>0xEAA8,
1046
+ 0x793E=>0xEA8A,
1047
+ 0x795D=>0xEAA9,
1048
+ 0x793F=>0xEA8B,
1049
+ 0x795E=>0xEAAA,
1050
+ 0x7940=>0xEA8C,
1051
+ 0x795F=>0xEAAB,
1052
+ 0x7941=>0xEA8D,
1053
+ 0x7960=>0xEAAC,
1054
+ 0x7942=>0xEA8E,
1055
+ 0x7961=>0xEAAD,
1056
+ 0x7943=>0xEA8F,
1057
+ 0x7962=>0xEAAE,
1058
+ 0x7944=>0xEA90,
1059
+ 0x7963=>0xEAAF,
1060
+ 0x7945=>0xEA91,
1061
+ 0x7964=>0xEAB0,
1062
+ 0x7946=>0xEA92,
1063
+ 0x7965=>0xEAB1,
1064
+ 0x7947=>0xEA93,
1065
+ 0x7966=>0xEAB2,
1066
+ 0x7948=>0xEA94,
1067
+ 0x7967=>0xEAB3,
1068
+ 0x7949=>0xEA95,
1069
+ 0x7968=>0xEAB4,
1070
+ 0x794A=>0xEA96,
1071
+ 0x7969=>0xEAB5,
1072
+ 0x794B=>0xEA97,
1073
+ 0x796A=>0xEAB6,
1074
+ 0x794C=>0xEA98,
1075
+ 0x796B=>0xEAB7,
1076
+ 0x794D=>0xEA99,
1077
+ 0x796C=>0xEAB8,
1078
+ 0x794E=>0xEA9A,
1079
+ 0x796D=>0xEAB9,
1080
+ 0x796E=>0xEABA,
1081
+ 0x7A2F=>0xEAD9,
1082
+ 0x796F=>0xEABB,
1083
+ 0x7A30=>0xEADA,
1084
+ 0x7970=>0xEABC,
1085
+ 0x7A31=>0xEADB,
1086
+ 0x7971=>0xEABD,
1087
+ 0x7A32=>0xEADC,
1088
+ 0x7972=>0xEABE,
1089
+ 0x7A33=>0xEADD,
1090
+ 0x7973=>0xEABF,
1091
+ 0x7A34=>0xEADE,
1092
+ 0x7974=>0xEAC0,
1093
+ 0x7A35=>0xEADF,
1094
+ 0x7975=>0xEAC1,
1095
+ 0x7A36=>0xEAE0,
1096
+ 0x7976=>0xEAC2,
1097
+ 0x7A37=>0xEAE1,
1098
+ 0x7977=>0xEAC3,
1099
+ 0x7A38=>0xEAE2,
1100
+ 0x7978=>0xEAC4,
1101
+ 0x7A39=>0xEAE3,
1102
+ 0x7979=>0xEAC5,
1103
+ 0x7A3A=>0xEAE4,
1104
+ 0x797A=>0xEAC6,
1105
+ 0x7A3B=>0xEAE5,
1106
+ 0x797B=>0xEAC7,
1107
+ 0x7A3C=>0xEAE6,
1108
+ 0x797C=>0xEAC8,
1109
+ 0x7A3D=>0xEAE7,
1110
+ 0x797D=>0xEAC9,
1111
+ 0x7A3E=>0xEAE8,
1112
+ 0x797E=>0xEACA,
1113
+ 0x7A3F=>0xEAE9,
1114
+ 0x7A21=>0xEACB,
1115
+ 0x7A40=>0xEAEA,
1116
+ 0x7A22=>0xEACC,
1117
+ 0x7A41=>0xEAEB,
1118
+ 0x7A23=>0xEACD,
1119
+ 0x7A42=>0xEAEC,
1120
+ 0x7A24=>0xEACE,
1121
+ 0x7A43=>0xEAED,
1122
+ 0x7A25=>0xEACF,
1123
+ 0x7A44=>0xEAEE,
1124
+ 0x7A26=>0xEAD0,
1125
+ 0x7A45=>0xEAEF,
1126
+ 0x7A27=>0xEAD1,
1127
+ 0x7A46=>0xEAF0,
1128
+ 0x7A28=>0xEAD2,
1129
+ 0x7A47=>0xEAF1,
1130
+ 0x7A29=>0xEAD3,
1131
+ 0x7A48=>0xEAF2,
1132
+ 0x7A2A=>0xEAD4,
1133
+ 0x7A49=>0xEAF3,
1134
+ 0x7A2B=>0xEAD5,
1135
+ 0x7A4A=>0xEAF4,
1136
+ 0x7A2C=>0xEAD6,
1137
+ 0x7A4B=>0xEAF5,
1138
+ 0x7A2D=>0xEAD7,
1139
+ 0x7A4C=>0xEAF6,
1140
+ 0x7A2E=>0xEAD8,
1141
+ 0x7A4D=>0xEAF7,
1142
+ 0x7A4E=>0xEAF8,
1143
+ 0x7A5A=>0xEB17,
1144
+ 0x7A4F=>0xEAF9,
1145
+ 0x7A5B=>0xEB18,
1146
+ 0x7A50=>0xEAFA,
1147
+ 0x7A5C=>0xEB19,
1148
+ 0x7854=>0xEAFB,
1149
+ 0x7A5D=>0xEB1A,
1150
+ 0x7855=>0xEAFC,
1151
+ 0x7A5E=>0xEB1B,
1152
+ 0x7856=>0xEAFD,
1153
+ 0x7A5F=>0xEB1C,
1154
+ 0x7857=>0xEAFE,
1155
+ 0x7A60=>0xEB1D,
1156
+ 0x7858=>0xEAFF,
1157
+ 0x7A61=>0xEB1E,
1158
+ 0x7859=>0xEB00,
1159
+ 0x7A62=>0xEB1F,
1160
+ 0x785A=>0xEB01,
1161
+ 0x7A63=>0xEB20,
1162
+ 0x785B=>0xEB02,
1163
+ 0x7A64=>0xEB21,
1164
+ 0x785C=>0xEB03,
1165
+ 0x7A65=>0xEB22,
1166
+ 0x785D=>0xEB04,
1167
+ 0x7A66=>0xEB23,
1168
+ 0x785E=>0xEB05,
1169
+ 0x7A67=>0xEB24,
1170
+ 0x785F=>0xEB06,
1171
+ 0x7A68=>0xEB25,
1172
+ 0x7860=>0xEB07,
1173
+ 0x7A69=>0xEB26,
1174
+ 0x7861=>0xEB08,
1175
+ 0x7A6A=>0xEB27,
1176
+ 0x7862=>0xEB09,
1177
+ 0x7A6B=>0xEB28,
1178
+ 0x7863=>0xEB0A,
1179
+ 0x7A6C=>0xEB29,
1180
+ 0x7864=>0xEB0B,
1181
+ 0x7A6D=>0xEB2A,
1182
+ 0x7865=>0xEB0C,
1183
+ 0x7A6E=>0xEB2B,
1184
+ 0x7866=>0xEB0D,
1185
+ 0x7A6F=>0xEB2C,
1186
+ 0x7A51=>0xEB0E,
1187
+ 0x7A70=>0xEB2D,
1188
+ 0x7A52=>0xEB0F,
1189
+ 0x7A71=>0xEB2E,
1190
+ 0x7A53=>0xEB10,
1191
+ 0x7A72=>0xEB2F,
1192
+ 0x7A54=>0xEB11,
1193
+ 0x7A73=>0xEB30,
1194
+ 0x7A55=>0xEB12,
1195
+ 0x7A74=>0xEB31,
1196
+ 0x7A56=>0xEB13,
1197
+ 0x7A75=>0xEB32,
1198
+ 0x7A57=>0xEB14,
1199
+ 0x7A76=>0xEB33,
1200
+ 0x7A58=>0xEB15,
1201
+ 0x7A77=>0xEB34,
1202
+ 0x7A59=>0xEB16,
1203
+ 0x7A78=>0xEB35,
1204
+ 0x7A79=>0xEB36,
1205
+ 0x7B3A=>0xEB55,
1206
+ 0x7A7A=>0xEB37,
1207
+ 0x7B3B=>0xEB56,
1208
+ 0x7A7B=>0xEB38,
1209
+ 0x7B3C=>0xEB57,
1210
+ 0x7A7C=>0xEB39,
1211
+ 0x7B3D=>0xEB58,
1212
+ 0x7A7D=>0xEB3A,
1213
+ 0x7B3E=>0xEB59,
1214
+ 0x7A7E=>0xEB3B,
1215
+ 0x7B3F=>0xEB5A,
1216
+ 0x7B21=>0xEB3C,
1217
+ 0x7B40=>0xEB5B,
1218
+ 0x7B22=>0xEB3D,
1219
+ 0x7B41=>0xEB5C,
1220
+ 0x7B23=>0xEB3E,
1221
+ 0x7B42=>0xEB5D,
1222
+ 0x7B24=>0xEB3F,
1223
+ 0x7B43=>0xEB5E,
1224
+ 0x7B25=>0xEB40,
1225
+ 0x7B44=>0xEB5F,
1226
+ 0x7B26=>0xEB41,
1227
+ 0x7B45=>0xEB60,
1228
+ 0x7B27=>0xEB42,
1229
+ 0x7B46=>0xEB61,
1230
+ 0x7B28=>0xEB43,
1231
+ 0x7B47=>0xEB62,
1232
+ 0x7B29=>0xEB44,
1233
+ 0x7B48=>0xEB63,
1234
+ 0x7B2A=>0xEB45,
1235
+ 0x7B49=>0xEB64,
1236
+ 0x7B2B=>0xEB46,
1237
+ 0x7B4A=>0xEB65,
1238
+ 0x7B2C=>0xEB47,
1239
+ 0x7B4B=>0xEB66,
1240
+ 0x7B2D=>0xEB48,
1241
+ 0x7B4C=>0xEB67,
1242
+ 0x7B2E=>0xEB49,
1243
+ 0x7B4D=>0xEB68,
1244
+ 0x7B2F=>0xEB4A,
1245
+ 0x7B4E=>0xEB69,
1246
+ 0x7B30=>0xEB4B,
1247
+ 0x7B4F=>0xEB6A,
1248
+ 0x7B31=>0xEB4C,
1249
+ 0x7B50=>0xEB6B,
1250
+ 0x7B32=>0xEB4D,
1251
+ 0x7B51=>0xEB6C,
1252
+ 0x7B33=>0xEB4E,
1253
+ 0x7B52=>0xEB6D,
1254
+ 0x7B34=>0xEB4F,
1255
+ 0x7B53=>0xEB6E,
1256
+ 0x7B35=>0xEB50,
1257
+ 0x7B54=>0xEB6F,
1258
+ 0x7B36=>0xEB51,
1259
+ 0x7B55=>0xEB70,
1260
+ 0x7B37=>0xEB52,
1261
+ 0x7B56=>0xEB71,
1262
+ 0x7B38=>0xEB53,
1263
+ 0x7B57=>0xEB72,
1264
+ 0x7B39=>0xEB54,
1265
+ 0x7B58=>0xEB73,
1266
+ 0x7B59=>0xEB74,
1267
+ 0x7B5A=>0xEB75,
1268
+ 0x7B5B=>0xEB76,
1269
+ 0x7B5C=>0xEB77,
1270
+ 0x7B5D=>0xEB78,
1271
+ 0x7B5E=>0xEB79,
1272
+ 0x7B5F=>0xEB7A,
1273
+ 0x7B60=>0xEB7B,
1274
+ 0x7B61=>0xEB7C,
1275
+ 0x7B62=>0xEB7D,
1276
+ 0x7B63=>0xEB7E,
1277
+ 0x7B64=>0xEB7F,
1278
+ 0x7B65=>0xEB80,
1279
+ 0x7B66=>0xEB81,
1280
+ 0x7B67=>0xEB82,
1281
+ 0x7B68=>0xEB83,
1282
+ 0x7B69=>0xEB84,
1283
+ 0x7B6A=>0xEB85,
1284
+ 0x7B6B=>0xEB86,
1285
+ 0x7B6C=>0xEB87,
1286
+ 0x7B6D=>0xEB88,
1287
+ }.freeze