1# vim:set et sts=4 sw=4: 2# -*- coding: utf-8 -*- 3# 4# ibus-anthy - The Anthy engine for IBus 5# 6# Copyright (c) 2007-2008 Peng Huang <shawn.p.huang@gmail.com> 7# Copyright (c) 2010-2014 Takao Fujiwara <takao.fujiwara1@gmail.com> 8# Copyright (c) 2007-2014 Red Hat, Inc. 9# 10# This program is free software; you can redistribute it and/or modify 11# it under the terms of the GNU General Public License as published by 12# the Free Software Foundation; either version 2 of the License, or 13# (at your option) any later version. 14# 15# This program is distributed in the hope that it will be useful, 16# but WITHOUT ANY WARRANTY; without even the implied warranty of 17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18# GNU General Public License for more details. 19# 20# You should have received a copy of the GNU General Public License along 21# with this program; if not, write to the Free Software Foundation, Inc., 22# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 23 24# string, result, cont 25romaji_typing_rule_static = { 26 '-' : 'ー', 27 'a' : 'あ', 28 'i' : 'い', 29 'u' : 'う', 30 'e' : 'え', 31 'o' : 'お', 32 'xa' : 'ぁ', 33 'xi' : 'ぃ', 34 'xu' : 'ぅ', 35 'xe' : 'ぇ', 36 'xo' : 'ぉ', 37 'la' : 'ぁ', 38 'li' : 'ぃ', 39 'lu' : 'ぅ', 40 'le' : 'ぇ', 41 'lo' : 'ぉ', 42 'wha' : 'うぁ', 43 'whi' : 'うぃ', 44 'whe' : 'うぇ', 45 'who' : 'うぉ', 46 'va' : 'ヴぁ', 47 'vi' : 'ヴぃ', 48 'vu' : 'ヴ', 49 've' : 'ヴぇ', 50 'vo' : 'ヴぉ', 51 'ka' : 'か', 52 'ki' : 'き', 53 'ku' : 'く', 54 'ke' : 'け', 55 'ko' : 'こ', 56 'lka' : 'ヵ', 57 'lke' : 'ヶ', 58# u'xka' : u'ゕ', 59 'xka' : 'ヵ', 60# u'xke' : u'ゖ', 61 'xke' : 'ヶ', 62 'ga' : 'が', 63 'gi' : 'ぎ', 64 'gu' : 'ぐ', 65 'ge' : 'げ', 66 'go' : 'ご', 67 'kya' : 'きゃ', 68 'kyi' : 'きぃ', 69 'kyu' : 'きゅ', 70 'kye' : 'きぇ', 71 'kyo' : 'きょ', 72 'kwa' : 'くぁ', 73 'gya' : 'ぎゃ', 74 'gyi' : 'ぎぃ', 75 'gyu' : 'ぎゅ', 76 'gye' : 'ぎぇ', 77 'gyo' : 'ぎょ', 78 'gwa' : 'ぐぁ', 79 'sa' : 'さ', 80 'si' : 'し', 81 'su' : 'す', 82 'se' : 'せ', 83 'so' : 'そ', 84 'za' : 'ざ', 85 'zi' : 'じ', 86 'zu' : 'ず', 87 'ze' : 'ぜ', 88 'zo' : 'ぞ', 89 'sya' : 'しゃ', 90 'syi' : 'しぃ', 91 'syu' : 'しゅ', 92 'sye' : 'しぇ', 93 'syo' : 'しょ', 94 'sha' : 'しゃ', 95 'shi' : 'し', 96 'shu' : 'しゅ', 97 'she' : 'しぇ', 98 'sho' : 'しょ', 99 'zya' : 'じゃ', 100 'zyi' : 'じぃ', 101 'zyu' : 'じゅ', 102 'zye' : 'じぇ', 103 'zyo' : 'じょ', 104 'ja' : 'じゃ', 105 'jya' : 'じゃ', 106 'ji' : 'じ', 107 'jyi' : 'じぃ', 108 'ju' : 'じゅ', 109 'jyu' : 'じゅ', 110 'je' : 'じぇ', 111 'jye' : 'じぇ', 112 'jo' : 'じょ', 113 'jyo' : 'じょ', 114 'ta' : 'た', 115 'ti' : 'ち', 116 'tu' : 'つ', 117 'tsu' : 'つ', 118 'te' : 'て', 119 'to' : 'と', 120 'da' : 'だ', 121 'di' : 'ぢ', 122 'du' : 'づ', 123 'de' : 'で', 124 'do' : 'ど', 125 'xtu' : 'っ', 126 'xtsu' : 'っ', 127 'ltu' : 'っ', 128 'ltsu' : 'っ', 129 'tya' : 'ちゃ', 130 'tyi' : 'ちぃ', 131 'tyu' : 'ちゅ', 132 'tye' : 'ちぇ', 133 'tyo' : 'ちょ', 134 'cya' : 'ちゃ', 135 'cyi' : 'ちぃ', 136 'cyu' : 'ちゅ', 137 'cye' : 'ちぇ', 138 'cyo' : 'ちょ', 139 'cha' : 'ちゃ', 140 'chi' : 'ち', 141 'chu' : 'ちゅ', 142 'che' : 'ちぇ', 143 'cho' : 'ちょ', 144 'dya' : 'ぢゃ', 145 'dyi' : 'ぢぃ', 146 'dyu' : 'ぢゅ', 147 'dye' : 'ぢぇ', 148 'dyo' : 'ぢょ', 149 'tsa' : 'つぁ', 150 'tsi' : 'つぃ', 151 'tse' : 'つぇ', 152 'tso' : 'つぉ', 153 'tha' : 'てゃ', 154 'thi' : 'てぃ', 155 'thu' : 'てゅ', 156 'the' : 'てぇ', 157 'tho' : 'てょ', 158 'twu' : 'とぅ', 159 'dha' : 'でゃ', 160 'dhi' : 'でぃ', 161 'dhu' : 'でゅ', 162 'dhe' : 'でぇ', 163 'dho' : 'でょ', 164 'dwu' : 'どぅ', 165 'na' : 'な', 166 'ni' : 'に', 167 'nu' : 'ぬ', 168 'ne' : 'ね', 169 'no' : 'の', 170 'nya' : 'にゃ', 171 'nyi' : 'にぃ', 172 'nyu' : 'にゅ', 173 'nye' : 'にぇ', 174 'nyo' : 'にょ', 175 'ha' : 'は', 176 'hi' : 'ひ', 177 'hu' : 'ふ', 178 'he' : 'へ', 179 'ho' : 'ほ', 180 'ba' : 'ば', 181 'bi' : 'び', 182 'bu' : 'ぶ', 183 'be' : 'べ', 184 'bo' : 'ぼ', 185 'pa' : 'ぱ', 186 'pi' : 'ぴ', 187 'pu' : 'ぷ', 188 'pe' : 'ぺ', 189 'po' : 'ぽ', 190 'hya' : 'ひゃ', 191 'hyi' : 'ひぃ', 192 'hyu' : 'ひゅ', 193 'hye' : 'ひぇ', 194 'hyo' : 'ひょ', 195 'bya' : 'びゃ', 196 'byi' : 'びぃ', 197 'byu' : 'びゅ', 198 'bye' : 'びぇ', 199 'byo' : 'びょ', 200 'pya' : 'ぴゃ', 201 'pyi' : 'ぴぃ', 202 'pyu' : 'ぴゅ', 203 'pye' : 'ぴぇ', 204 'pyo' : 'ぴょ', 205 'fa' : 'ふぁ', 206 'fi' : 'ふぃ', 207 'fu' : 'ふ', 208 'fe' : 'ふぇ', 209 'fo' : 'ふぉ', 210 'fya' : 'ふゃ', 211 'fyi' : 'ふぃ', 212 'fyu' : 'ふゅ', 213 'fye' : 'ふぇ', 214 'fyo' : 'ふょ', 215 'ma' : 'ま', 216 'mi' : 'み', 217 'mu' : 'む', 218 'me' : 'め', 219 'mo' : 'も', 220 'mya' : 'みゃ', 221 'myi' : 'みぃ', 222 'myu' : 'みゅ', 223 'mye' : 'みぇ', 224 'myo' : 'みょ', 225 'ya' : 'や', 226 'yi' : 'い', 227 'yu' : 'ゆ', 228 'ye' : 'いぇ', 229 'yo' : 'よ', 230 'lya' : 'ゃ', 231 'lyi' : 'ぃ', 232 'lyu' : 'ゅ', 233 'lye' : 'ぇ', 234 'lyo' : 'ょ', 235 'xya' : 'ゃ', 236 'xyi' : 'ぃ', 237 'xyu' : 'ゅ', 238 'xye' : 'ぇ', 239 'xyo' : 'ょ', 240 'ra' : 'ら', 241 'ri' : 'り', 242 'ru' : 'る', 243 're' : 'れ', 244 'ro' : 'ろ', 245 'rya' : 'りゃ', 246 'ryi' : 'りぃ', 247 'ryu' : 'りゅ', 248 'rye' : 'りぇ', 249 'ryo' : 'りょ', 250 'wa' : 'わ', 251 'wi' : 'うぃ', 252 'wu' : 'う', 253 'we' : 'うぇ', 254 'wo' : 'を', 255 'lwa' : 'ゎ', 256 'xwa' : 'ゎ', 257 'n\'' : 'ん', 258 'nn' : 'ん', 259 'wyi' : 'ゐ', 260 'wye' : 'ゑ', 261} 262 263symbol_rule = { 264 # symbols 265 ' ' : ' ', 266 ',' : '、', 267 '.' : '。', 268 '!' : '!', 269 '"' : '\u201d', 270 '#' : '#', 271 '$' : '$', 272 '%' : '%', 273 '&' : '&', 274 '\'' : '\u2019', 275 '(' : '(', 276 ')' : ')', 277 '~' : '\uff5e', 278 '-' : 'ー', 279 '=' : '=', 280 '^' : '^', 281 '\\' : '\', 282 '|' : '|', 283 '`' : '\u2018', 284 '@' : '@', 285 '{' : '{', 286 '[' : '「', 287 '+' : '+', 288 ';' : ';', 289 '*' : '*', 290 ':' : ':', 291 '}' : '}', 292 ']' : '」', 293 '<' : '<', 294 '>' : '>', 295 '?' : '?', 296 '/' : '/', 297 '_' : '_', 298 '¥' : '¥', 299 300 # numbers 301 '0': '0', 302 '1': '1', 303 '2': '2', 304 '3': '3', 305 '4': '4', 306 '5': '5', 307 '6': '6', 308 '7': '7', 309 '8': '8', 310 '9': '9', 311} 312 313# this is only used with romaji_typing_rule 314romaji_double_consonat_typing_rule = { 315 # double consonant rule 316 'bb' : ('っ', 'b'), 317 'cc' : ('っ', 'c'), 318 'dd' : ('っ', 'd'), 319 'ff' : ('っ', 'f'), 320 'gg' : ('っ', 'g'), 321 'hh' : ('っ', 'h'), 322 'jj' : ('っ', 'j'), 323 'kk' : ('っ', 'k'), 324 'mm' : ('っ', 'm'), 325 'pp' : ('っ', 'p'), 326 'rr' : ('っ', 'r'), 327 'ss' : ('っ', 's'), 328 'tt' : ('っ', 't'), 329 'vv' : ('っ', 'v'), 330 'ww' : ('っ', 'w'), 331 'xx' : ('っ', 'x'), 332 'yy' : ('っ', 'y'), 333 'zz' : ('っ', 'z'), 334} 335 336# this is only used with romaji_typing_rule 337romaji_correction_rule = { 338 'nb' : ('ん', 'b'), 339 'nc' : ('ん', 'c'), 340 'nd' : ('ん', 'd'), 341 'nf' : ('ん', 'f'), 342 'ng' : ('ん', 'g'), 343 'nh' : ('ん', 'h'), 344 'nj' : ('ん', 'j'), 345 'nk' : ('ん', 'k'), 346 'nl' : ('ん', 'l'), 347 'nm' : ('ん', 'm'), 348 'np' : ('ん', 'p'), 349 'nr' : ('ん', 'r'), 350 'ns' : ('ん', 's'), 351 'nt' : ('ん', 't'), 352 'nv' : ('ん', 'v'), 353 'nw' : ('ん', 'w'), 354 'nx' : ('ん', 'x'), 355 'nz' : ('ん', 'z'), 356 'n\0' : ('ん', ''), 357 'n,' : ('ん', ','), 358 'n.' : ('ん', '.'), 359} 360 361# EUC-JP and SJIS do not have the chars 362romaji_utf8_rule = { 363 'う゛' : ['ゔ'], 364} 365 366# Hiragana normalization is needed for the personal dict. 367romaji_normalize_rule = { 368 'ヴ' : ['う゛'], 369} 370 371# a port of 101kana.sty from scim-anthy 372kana_typing_rule_static = { 373 # no modifiers keys 374 '1' : 'ぬ', 375 '2' : 'ふ', 376 '3' : 'あ', 377 '4' : 'う', 378 '5' : 'え', 379 '6' : 'お', 380 '7' : 'や', 381 '8' : 'ゆ', 382 '9' : 'よ', 383 '0' : 'わ', 384 '-' : 'ほ', 385 '^' : 'へ', 386 387 'q' : 'た', 388 'w' : 'て', 389 'e' : 'い', 390 'r' : 'す', 391 't' : 'か', 392 'y' : 'ん', 393 'u' : 'な', 394 'i' : 'に', 395 'o' : 'ら', 396 'p' : 'せ', 397 '@' : '゛', 398 '[' : '゜', 399 400 'a' : 'ち', 401 's' : 'と', 402 'd' : 'し', 403 'f' : 'は', 404 'g' : 'き', 405 'h' : 'く', 406 'j' : 'ま', 407 'k' : 'の', 408 'l' : 'り', 409 ';' : 'れ', 410 ':' : 'け', 411 ']' : 'む', 412 413 'z' : 'つ', 414 'x' : 'さ', 415 'c' : 'そ', 416 'v' : 'ひ', 417 'b' : 'こ', 418 'n' : 'み', 419 'm' : 'も', 420 ',' : 'ね', 421 '.' : 'る', 422 '/' : 'め', 423 # u'\\' : u'ー', 424 '\\' : 'ろ', 425 426 # shift modifiered keys 427 '!' : 'ぬ', 428 '"' : 'ふ', 429 '#' : 'ぁ', 430 '$' : 'ぅ', 431 '%' : 'ぇ', 432 '&' : 'ぉ', 433 '\'' : 'ゃ', 434 '(' : 'ゅ', 435 ')' : 'ょ', 436 '~' : 'を', 437 '=' : 'ほ', 438 '|' : 'ー', 439 440 'Q' : 'た', 441 'W' : 'て', 442 'E' : 'ぃ', 443 'R' : 'す', 444 'T' : 'ヵ', 445 'Y' : 'ん', 446 'U' : 'な', 447 'I' : 'に', 448 'O' : 'ら', 449 'P' : 'せ', 450 '`' : '゛', 451 452 '{' : '「', 453 454 'A' : 'ち', 455 'S' : 'と', 456 'D' : 'し', 457 'F' : 'ゎ', 458 'G' : 'き', 459 'H' : 'く', 460 'J' : 'ま', 461 'K' : 'の', 462 'L' : 'り', 463 '+' : 'れ', 464 '*' : 'ヶ', 465 466 '}' : '」', 467 468 'Z' : 'っ', 469 'X' : 'さ', 470 'C' : 'そ', 471 'V' : 'ゐ', 472 'B' : 'こ', 473 'M' : 'も', 474 'N' : 'み', 475 '<' : '、', 476 '>' : '。', 477 478 '?' : '・', 479 '_' : 'ろ', 480 481 '¥' : 'ー', 482} 483 484kana_voiced_consonant_no_rule = { 485 'か' : 'が', 486 'き' : 'ぎ', 487 'く' : 'ぐ', 488 'け' : 'げ', 489 'こ' : 'ご', 490 'さ' : 'ざ', 491 'し' : 'じ', 492 'す' : 'ず', 493 'せ' : 'ぜ', 494 'そ' : 'ぞ', 495 'た' : 'だ', 496 'ち' : 'ぢ', 497 'つ' : 'づ', 498 'て' : 'で', 499 'と' : 'ど', 500 'は' : 'ば', 501 'ひ' : 'び', 502 'ふ' : 'ぶ', 503 'へ' : 'べ', 504 'ほ' : 'ぼ', 505} 506 507kana_semi_voiced_consonant_no_rule = { 508 'は' : 'ぱ', 509 'ひ' : 'ぴ', 510 'ふ' : 'ぷ', 511 'へ' : 'ぺ', 512 'ほ' : 'ぽ', 513} 514 515# Create the table dynamically with kana_voiced_consonant_no_rule 516# 517#kana_voiced_consonant_rule = { 518# u'か@' : u'が', 519# u'き@' : u'ぎ', 520# u'く@' : u'ぐ', 521# u'け@' : u'げ', 522# u'こ@' : u'ご', 523# u'さ@' : u'ざ', 524# u'し@' : u'じ', 525# u'す@' : u'ず', 526# u'せ@' : u'ぜ', 527# u'そ@' : u'ぞ', 528# u'た@' : u'だ', 529# u'ち@' : u'ぢ', 530# u'つ@' : u'づ', 531# u'て@' : u'で', 532# u'と@' : u'ど', 533# u'は@' : u'ば', 534# u'ひ@' : u'び', 535# u'ふ@' : u'ぶ', 536# u'へ@' : u'べ', 537# u'ほ@' : u'ぼ', 538# u'か`' : u'が', 539# u'き`' : u'ぎ', 540# u'く`' : u'ぐ', 541# u'け`' : u'げ', 542# u'こ`' : u'ご', 543# u'さ`' : u'ざ', 544# u'し`' : u'じ', 545# u'す`' : u'ず', 546# u'せ`' : u'ぜ', 547# u'そ`' : u'ぞ', 548# u'た`' : u'だ', 549# u'ち`' : u'ぢ', 550# u'つ`' : u'づ', 551# u'て`' : u'で', 552# u'と`' : u'ど', 553# u'は`' : u'ば', 554# u'ひ`' : u'び', 555# u'ふ`' : u'ぶ', 556# u'へ`' : u'べ', 557# u'ほ`' : u'ぼ', 558# u'は[' : u'ぱ', 559# u'ひ[' : u'ぴ', 560# u'ふ[' : u'ぷ', 561# u'へ[' : u'ぺ', 562# u'ほ[' : u'ぽ', 563#} 564# 565#kana_voiced_consonant_us_rule = { 566# u'か[' : u'が', 567# u'き[' : u'ぎ', 568# u'く[' : u'ぐ', 569# u'け[' : u'げ', 570# u'こ[' : u'ご', 571# u'さ[' : u'ざ', 572# u'し[' : u'じ', 573# u'す[' : u'ず', 574# u'せ[' : u'ぜ', 575# u'そ[' : u'ぞ', 576# u'た[' : u'だ', 577# u'ち[' : u'ぢ', 578# u'つ[' : u'づ', 579# u'て[' : u'で', 580# u'と[' : u'ど', 581# u'は[' : u'ば', 582# u'ひ[' : u'び', 583# u'ふ[' : u'ぶ', 584# u'へ[' : u'べ', 585# u'ほ[' : u'ぼ', 586# u'は]' : u'ぱ', 587# u'ひ]' : u'ぴ', 588# u'ふ]' : u'ぷ', 589# u'へ]' : u'ぺ', 590# u'ほ]' : u'ぽ', 591#} 592 593#hiragana, katakana, half_katakana 594hiragana_katakana_table = { 595 'あ' : ('ア', 'ア'), 596 'い' : ('イ', 'イ'), 597 'う' : ('ウ', 'ウ'), 598 'え' : ('エ', 'エ'), 599 'お' : ('オ', 'オ'), 600 'か' : ('カ', 'カ'), 601 'き' : ('キ', 'キ'), 602 'く' : ('ク', 'ク'), 603 'け' : ('ケ', 'ケ'), 604 'こ' : ('コ', 'コ'), 605 'が' : ('ガ', 'ガ'), 606 'ぎ' : ('ギ', 'ギ'), 607 'ぐ' : ('グ', 'グ'), 608 'げ' : ('ゲ', 'ゲ'), 609 'ご' : ('ゴ', 'ゴ'), 610 'さ' : ('サ', 'サ'), 611 'し' : ('シ', 'シ'), 612 'す' : ('ス', 'ス'), 613 'せ' : ('セ', 'セ'), 614 'そ' : ('ソ', 'ソ'), 615 'ざ' : ('ザ', 'ザ'), 616 'じ' : ('ジ', 'ジ'), 617 'ず' : ('ズ', 'ズ'), 618 'ぜ' : ('ゼ', 'ゼ'), 619 'ぞ' : ('ゾ', 'ゾ'), 620 'た' : ('タ', 'タ'), 621 'ち' : ('チ', 'チ'), 622 'つ' : ('ツ', 'ツ'), 623 'て' : ('テ', 'テ'), 624 'と' : ('ト', 'ト'), 625 'だ' : ('ダ', 'ダ'), 626 'ぢ' : ('ヂ', 'ヂ'), 627 'づ' : ('ヅ', 'ヅ'), 628 'で' : ('デ', 'デ'), 629 'ど' : ('ド', 'ド'), 630 'な' : ('ナ', 'ナ'), 631 'に' : ('ニ', 'ニ'), 632 'ぬ' : ('ヌ', 'ヌ'), 633 'ね' : ('ネ', 'ネ'), 634 'の' : ('ノ', 'ノ'), 635 'は' : ('ハ', 'ハ'), 636 'ひ' : ('ヒ', 'ヒ'), 637 'ふ' : ('フ', 'フ'), 638 'へ' : ('ヘ', 'ヘ'), 639 'ほ' : ('ホ', 'ホ'), 640 'ば' : ('バ', 'バ'), 641 'び' : ('ビ', 'ビ'), 642 'ぶ' : ('ブ', 'ブ'), 643 'べ' : ('ベ', 'ベ'), 644 'ぼ' : ('ボ', 'ボ'), 645 'ぱ' : ('パ', 'パ'), 646 'ぴ' : ('ピ', 'ピ'), 647 'ぷ' : ('プ', 'プ'), 648 'ぺ' : ('ペ', 'ペ'), 649 'ぽ' : ('ポ', 'ポ'), 650 'ま' : ('マ', 'マ'), 651 'み' : ('ミ', 'ミ'), 652 'む' : ('ム', 'ム'), 653 'め' : ('メ', 'メ'), 654 'も' : ('モ', 'モ'), 655 'や' : ('ヤ', 'ヤ'), 656 'ゆ' : ('ユ', 'ユ'), 657 'よ' : ('ヨ', 'ヨ'), 658 'ら' : ('ラ', 'ラ'), 659 'り' : ('リ', 'リ'), 660 'る' : ('ル', 'ル'), 661 'れ' : ('レ', 'レ'), 662 'ろ' : ('ロ', 'ロ'), 663 'わ' : ('ワ', 'ワ'), 664 'を' : ('ヲ', 'ヲ'), 665 'ん' : ('ン', 'ン'), 666 'ぁ' : ('ァ', 'ァ'), 667 'ぃ' : ('ィ', 'ィ'), 668 'ぅ' : ('ゥ', 'ゥ'), 669 'ぇ' : ('ェ', 'ェ'), 670 'ぉ' : ('ォ', 'ォ'), 671 'っ' : ('ッ', 'ッ'), 672 'ゃ' : ('ャ', 'ャ'), 673 'ゅ' : ('ュ', 'ュ'), 674 'ょ' : ('ョ', 'ョ'), 675 'ヵ' : ('ヵ', 'カ'), 676 'ヶ' : ('ヶ', 'ケ'), 677 'ゎ' : ('ヮ', 'ワ'), 678 'ゐ' : ('ヰ', 'ィ'), 679 'ゑ' : ('ヱ', 'ェ'), 680 'ヴ' : ('ヴ', 'ヴ'), 681 682 # symbols 683 'ー' : ('ー', 'ー'), 684 '、' : ('、', '、'), 685 '。' : ('。', '。'), 686 '!' : ('!', '!'), 687 '\u201d' : ('\u201d', '"'), 688 '#' : ('#', '#'), 689 '$' : ('$', '$'), 690 '%' : ('%', '%'), 691 '&' : ('&', '&'), 692 '\u2019' : ('\u2019', '\''), 693 '(' : ('(', '('), 694 ')' : (')', ')'), 695 '\uff5e' : ('\uff5e', '~'), 696 '=' : ('=', '='), 697 '^' : ('^', '^'), 698 '\' : ('\', '\\'), 699 '|' : ('|', '|'), 700 '\u2018' : ('\u2018', '`'), 701 '@' : ('@', '@'), 702 '゛' : ('゛', '゙'), 703 '{' : ('{', '{'), 704 '゜' : ('゜', '゚'), 705 '「' : ('「', '「'), 706 '+' : ('+', '+'), 707 ';' : (';', ';'), 708 '*' : ('*', '*'), 709 ':' : (':', ':'), 710 '}' : ('}', '}'), 711 '」' : ('」', '」'), 712 '<' : ('<', '<'), 713 '>' : ('>', '>'), 714 '?' : ('?', '?'), 715 '・' : ('・', '・'), 716 '/' : ('/', '/'), 717 '_' : ('_', '_'), 718 '¥' : ('¥', '¥'), 719 720 # numbers 721 '0': ('0', '0'), 722 '1': ('1', '1'), 723 '2': ('2', '2'), 724 '3': ('3', '3'), 725 '4': ('4', '4'), 726 '5': ('5', '5'), 727 '6': ('6', '6'), 728 '7': ('7', '7'), 729 '8': ('8', '8'), 730 '9': ('9', '9'), 731} 732