Jean Chalard
af30cbf0ee
Rename Node to PtNodeArray
...
Bug: 10247660
Change-Id: I1a0ac19f58f96adb5efac5fd35c6404831618c99
2013-08-16 16:24:54 +09:00
Satoshi Kataoka
283cf9cfc9
Add hex string utils
...
Bug: 9429906
Change-Id: I3267d1d86122ab471c3e63008c73e9f9b758fc8e
2013-08-16 16:17:48 +09:00
Tadashi G. Takaoka
5080983ea6
Fix SubtypeLocaleUtilsTests
...
Change-Id: Ib1005ee7e99e526aad5099b160051b12e7614e81
2013-08-16 11:21:32 +09:00
Ken Wakasa
33fce975c9
Merge "[Refactor] Divide BinaryDictInputOutput into BinaryDictEncoder and BinaryDictDecoder."
2013-08-15 11:26:06 +00:00
Yuichiro Hanada
94460eba11
[Refactor] Divide BinaryDictInputOutput into BinaryDictEncoder and BinaryDictDecoder.
...
Change-Id: I7c3269d77e3e3b567e459dcaa1bc029903941744
2013-08-15 20:23:07 +09:00
Tadashi G. Takaoka
7dc60f9db7
Add getters and copy constructor to Key class
...
Change-Id: I78eb96dcc26378926dc63acbfeb4828cbd44435d
2013-08-15 20:12:46 +09:00
Ken Wakasa
117f18e844
Revert "[Refactor] Divide BinaryDictInputOutput into BinaryDictInputUtils and BinaryDictOutputUtils."
...
This reverts commit 4c63d0614e
.
Change-Id: I1fa277d720bab4d895259df7d6d82eebfa5eb6c5
2013-08-15 08:54:29 +00:00
Yuichiro Hanada
4c63d0614e
[Refactor] Divide BinaryDictInputOutput into BinaryDictInputUtils and BinaryDictOutputUtils.
...
Change-Id: I0d476abe763c11ba9005152f928e8dccf15ac9de
2013-08-15 15:46:58 +09:00
Yuichiro Hanada
3edb62c69b
Move some methods in BinaryDictIOUtils to DynamicBinaryDictIOUtils.
...
Change-Id: I9ba55582c533fef0eb3e60c46bf23c8b16ee1ff4
2013-08-14 19:33:36 +09:00
Ken Wakasa
f795f2b789
Merge "Add FusionDictionaryBufferFromWritableByteBufferFactory."
2013-08-14 10:26:21 +00:00
Jean Chalard
af5fbe70ac
Add looksValidForDictionaryInsertion
...
...and test it.
Also at the same time, add a facility to create a SettingsValues for
test, and some minor performance improvement to surrounding
methods.
Change-Id: I13b629ae14755c244af2a9406a7e9b4a4a16090f
2013-08-14 18:39:28 +09:00
Yuichiro Hanada
bbc8a930f7
Add FusionDictionaryBufferFromWritableByteBufferFactory.
...
Change-Id: I23de0a178e7f11f2cf301fd433cde60c6152055b
2013-08-14 17:07:44 +09:00
Yuichiro Hanada
3feacba1eb
Add BinaryDictReader.
...
Bug: 9618601
Change-Id: Ief07fa0c3c4f7f5999a3fafcef4e47b6b6fd8143
2013-08-13 19:55:05 +09:00
Tadashi G. Takaoka
e8264cab71
Utilize Keyboard.getKey(codePoint)
...
Change-Id: Ia4df4dfbf3b6d22f7b93b979bba36e4920af2239
2013-08-13 12:15:03 +09:00
Satoshi Kataoka
1181c5acbc
Merge "Fix to follow the field naming conventions."
2013-08-08 08:06:45 +00:00
Jean Chalard
7b8b6e4b42
Adjust a test for a spec change.
...
Bug: 8911898
Change-Id: Iede69ec2d9870df0add5ab818613fbb8e1f943c2
2013-08-08 12:51:37 +09:00
Yuichiro Hanada
71ffcc6332
Fix to follow the field naming conventions.
...
Change-Id: I9b41b5f34e93a3f291a352cd85c5ac257beaa9ab
2013-08-08 12:03:36 +09:00
Jean Chalard
c5beb522ed
Reword "No language"
...
Bug: 10064334
Change-Id: Ie4e6c333566eee9000fa5c8e59e9df8b9b56a5b3
2013-08-05 18:16:35 +09:00
Satoshi Kataoka
87d06afc66
Refactor on the user history dictionary
...
Bug: 9429906
Bug: 4192129
Change-Id: I1a2bfe96e18119d30a72290aa48746f77a021018
2013-07-31 16:48:55 +09:00
Jean Chalard
d9f0c1e020
Merge "Fix an NPE"
2013-07-29 09:46:32 +00:00
Jean Chalard
5408fec63a
Fix an NPE
...
Also make mSuggest private for more security.
Bug: 10045657
Change-Id: I712505e4d2a2606efff5d09ba9b4c656f9e7c7a9
2013-07-29 18:09:48 +09:00
Satoshi Kataoka
732475dd24
Fix build
...
Change-Id: Iea21c449c4a2f36f7f6cde28cb295432838862aa
2013-07-29 14:33:16 +09:00
Satoshi Kataoka
ffcbbaf127
Refactor on UserHistoryDictionary
...
Bug: 9429906
Change-Id: I576a91643bdaf5017cc826ac2e07a74a9a275d60
2013-07-26 13:00:19 +09:00
Tadashi G. Takaoka
0c3a9b549c
Make RunInLocale as top-level class
...
Change-Id: I07ed606b7aba098a5be85533e5baff300b21fb44
2013-07-24 16:00:25 +09:00
Tadashi G. Takaoka
a410cb48ea
Move subtype related utility class to utils package
...
Change-Id: I3564796531ea85f2ebafde40cd822b806b8741df
2013-07-24 15:52:43 +09:00
Tadashi G. Takaoka
b80cc628ff
Fix KeySpecParserSplitTests
...
Change-Id: Icf4525c735cda0330a3bd0f9628165ec722b64a8
2013-07-23 19:29:33 +09:00
Tadashi G. Takaoka
e6c5184742
Fix NPE in SubtypeLocale.getSubtypeDisplayName
...
This change moves the methods that create the subtype display name for
spacebar from MainKeyboardView to SubtypeLocale class, and
consolidates SpacebarTextTests with SubtypeLocaleTests.
Bug: 9962955
Change-Id: Ifa0a08ff80bc30753a213c2feb471599ca63fa66
2013-07-23 13:00:04 +09:00
Tadashi G. Takaoka
dc7111013f
Merge "Fix IllegalArgumentException in MoreKeysKeyboard"
2013-07-19 06:44:54 +00:00
Tadashi G. Takaoka
b0e76724ed
Fix IllegalArgumentException in MoreKeysKeyboard
...
It seems that MainKeyboardView.getMeasuredWidth() returns weird
value. Using KeyboardId.mWidth as main keyboard width may resolve the
issue.
Bug: 9684622
Change-Id: I975bfb934b8d2448e72555a3ccae0123341186b9
2013-07-19 11:43:50 +09:00
Ken Wakasa
b03447e1af
Move a couple classes to the utils package
...
Change-Id: Ia14a2011d79bad7cd02697b9254705f6e2099442
2013-07-19 10:46:46 +09:00
Jean Chalard
06aa3d0286
Merge "Small debug helper"
2013-07-16 08:55:53 +00:00
Jean Chalard
1588252968
Small debug helper
...
So that I don't have to find out everything again each time the
test facility finds a case that does not work, and I want to dump
the output to a combined file.
Change-Id: I9f77f86055d1609c2e37747ac47421db1ba2498e
2013-07-16 15:57:09 +09:00
Keisuke Kuroynagi
28a70b63c5
Add a test for user history for switching languages.
...
testStressTestForSwitchingLanguageAndAddingWords took 101996 ms
Bug: 6669677
Change-Id: I62849674147e4845955060124221da8211e9b3ca
2013-07-16 12:17:56 +09:00
Jean Chalard
4a1c26aba7
Change how the length of the random words are chosen.
...
This is much more robust and much better for testing.
Change-Id: I43f900f9debc1d1ae4c3f3dd07dbe0ac85d31f52
2013-07-04 22:22:34 +09:00
Jean Chalard
cea80fd955
Have random words stick to a restricted (random) charset
...
Change-Id: Ib4045ebc9659f1b60183f2356e60e449d62c5be9
2013-07-04 22:21:27 +09:00
Jean Chalard
fe156213d7
Add a two-args constructor to BinaryDictIOTests
...
Change-Id: Ie26e22754bfa5d58135349164c57007c86bd97e8
2013-07-04 17:14:02 +09:00
Tadashi G. Takaoka
f87e8f7ec1
Handling key repeat by emulating key press and code input
...
This change also eliminates a reference of
AudioAndHapticFeedbackManager from KeyboardSwitcher and MainKeyboard.
Bug: 6522943
Change-Id: Iac42ec8ff00c66deb76a660ffc07477923a58959
2013-07-02 19:50:34 +09:00
Jean Chalard
edf5842568
Merge "Add args to dicttool test."
2013-07-01 07:37:54 +00:00
Jean Chalard
e5a3b77664
Merge "Move Range out of RichInputConnection and rename it."
2013-07-01 07:20:51 +00:00
Jean Chalard
675bcf191c
Move Range out of RichInputConnection and rename it.
...
Range has grown a bit too big to stay an internal class.
Change-Id: Ic3fbc48a5d10776eedd7559c4d696e5926b88288
2013-07-01 15:41:13 +09:00
Jean Chalard
4b7acd1df6
Add args to dicttool test.
...
Change-Id: I0667e0a5a6f6db3964cfcca5c8f083b9ceb41a2e
2013-07-01 15:28:32 +09:00
Jean Chalard
f0af452ce2
Do not re-resume suggestion if it's not needed.
...
This is much better interface-wise. It eliminates all blinking
of the line in the practice.
Bug: 8874148
Bug: 8864306
Change-Id: I87754e44784327c2e9c8b162d598d145e20668e8
2013-07-01 14:40:12 +09:00
Jean Chalard
2f7f6257b6
Ignore spans that are not the right size.
...
Bug: 8839763
Bug: 8862327
Change-Id: I5d49c86edcbc0fc1b2b147856437cfbadd678377
2013-06-26 23:02:50 +09:00
Ken Wakasa
bc1813186d
Merge "Move util classes to the latin/utils directory"
2013-06-24 08:49:06 +00:00
Ken Wakasa
e28eba5074
Move util classes to the latin/utils directory
...
Change-Id: I1c5b27c8edf231680edb8d96f63b9d04cfc6a6fa
2013-06-24 17:04:40 +09:00
Jean Chalard
a099638667
Fix tests for Ia78d3540
...
Bug: 9550023
Change-Id: I13f4411573ff7b2564e88fc9b9a8d801dde23019
2013-06-24 15:40:53 +09:00
Jean Chalard
23d4eb55ba
Add tests to dicttool test.
...
Bug: 8526576
Change-Id: Idd6f9cd076d5915361c68f5c29afbba67dd54eba
2013-06-20 17:29:37 +09:00
Tadashi G. Takaoka
cbd219a761
Move Base64Reader to utils package
...
Change-Id: Id46898c5cae268f05850d79938929b7707f27320
2013-06-05 19:39:36 +09:00
Tadashi G. Takaoka
9d4e251826
Merge "Add CsvUtils that conform to RFC 4180"
2013-06-05 06:28:06 +00:00
Tadashi G. Takaoka
3ceeb6bcc6
Add CsvUtils that conform to RFC 4180
...
Bug: 9070153
Change-Id: I66e55dd2f30fddfeb849edb97bc1cbda6b126d92
2013-06-05 12:26:22 +09:00
Tadashi G. Takaoka
9552badf3c
Add CODE_CAPSLOCK for long press shift key
...
This change utilizes the no panel auto more key feature to implement
long press shift key for shift lock.
Change-Id: I3995d25dc35aea3c67b5aa29299815462eff9cad
2013-06-04 18:20:06 +09:00
Tadashi G. Takaoka
2a9882a433
Rename methods for readability
...
Change-Id: I8fc2c90cf8d3dce11740f8e61edf6dfde9b1c116
2013-06-03 17:52:21 +09:00
Tadashi G. Takaoka
94af6d9e7f
Merge "Make unit test independent from test device locale"
2013-05-28 11:48:09 +00:00
Tadashi G. Takaoka
58067bd952
Merge "Fix unit test assert helper method"
2013-05-28 11:44:16 +00:00
Tadashi G. Takaoka
39bd6ea0dc
Merge "Rename StringUtils.parseCsvString to KeySpecParser.splitKeySpecs"
2013-05-28 11:40:10 +00:00
Tadashi G. Takaoka
35091716e7
Fix unit test assert helper method
...
Change-Id: Id03bf0910708d07b45286dccf8f2bfc97a362ba0
2013-05-28 20:39:39 +09:00
Tadashi G. Takaoka
8586a43424
Make unit test independent from test device locale
...
Bug: 9112465
Change-Id: I4fe39bebf130799397485dbe6d23199a29a8641e
2013-05-28 20:24:15 +09:00
Tadashi G. Takaoka
dbed20ad8d
Rename StringUtils.parseCsvString to KeySpecParser.splitKeySpecs
...
Change-Id: I16e3f3ebc43772cfd96c824afeddfd225404b857
2013-05-28 20:23:37 +09:00
Tadashi G. Takaoka
4c2ac9ee5f
Merge "Rename commaConcatinatedText to commaSplittableText"
2013-05-28 10:58:16 +00:00
Tadashi G. Takaoka
c47bc30db8
Rename commaConcatinatedText to commaSplittableText
...
This is a follow up of I5a32882a08.
Change-Id: I9f0cda2167811f6bba2af042fbde0a821b4cfecd
2013-05-28 19:17:15 +09:00
Tadashi G. Takaoka
68cf2cd931
Merge "Check all regexp patterns in ResourceUtils.getDeviceOverrideValue"
2013-05-28 10:13:43 +00:00
Tadashi G. Takaoka
4c75ea858a
Check all regexp patterns in ResourceUtils.getDeviceOverrideValue
...
This change also fixes a regexp error of Galaxy S III.
Change-Id: I42a4780bbfd2b083f4e27e61ec513aa875907344
2013-05-28 19:05:40 +09:00
Tadashi G. Takaoka
1b46738796
Rename "csv" in StringUtils to "commaConcatenatedText"
...
Change-Id: I5a32882a088e4ff5bfe973a86465d6ff839113d9
2013-05-28 16:13:36 +09:00
Satoshi Kataoka
c92e87faf3
Add smoothing utils / matrix libs
...
Bug: 8556775
Change-Id: I7e0516b344937b84b7d57cc4e5009b7f88e7dc98
2013-05-27 18:08:49 -07:00
Tadashi G. Takaoka
94027c7201
Use Locale.ROOT for locale neutral operations
...
Bug: 9112465
Change-Id: I6cd63007287b5a1a57cfbabff35d53f66fc5620e
2013-05-24 12:07:30 -07:00
Tadashi G. Takaoka
6f9105383a
Remove unnecessary methods of KeyboardSwitcher
...
Change-Id: Idd3647bb1a1d40df8bb89eda715d45427a58d0cd
2013-05-22 10:49:53 -07:00
Jean Chalard
c9aaba1253
Don't process recorrection or resets when not shown
...
Bug: 8954116
Change-Id: Ica27dbfc570643bb81e6cdf34cc7c796ea080d71
2013-05-15 20:20:20 +09:00
Tadashi G. Takaoka
41016acacf
Back to previous keyboard layout by canceling sliding input
...
Bug: 8915171
Change-Id: Iabdeb7920f67f89246087c3ee06240406ecfbc3d
2013-05-14 20:28:03 +09:00
Tadashi G. Takaoka
979fb7415b
Fix PointerTrackerQueue.releaseAllPointerOlderThan
...
Change-Id: If353869720895ee5355079c15c724132762dd70c
2013-05-14 15:32:21 +09:00
Tadashi G. Takaoka
18184eacb1
Support regular expression for condition pattern
...
Bug: 8556975
Change-Id: Iffc53d6a40dd77860434c5f7f4f59af5cd1ba92b
2013-05-13 16:25:03 +09:00
Tadashi G. Takaoka
d69fa0a09a
Support multiple condition for getDeviceOverrideValue
...
Bug: 8556975
Change-Id: I29d3a305b6ac3d8e3620c6d8592d85047d62bf48
2013-05-13 14:38:21 +09:00
Tadashi G. Takaoka
6d3d2ae064
Refactor StringUtils.findPrefixedString to findValueOfKey
...
Bug: 8556975
Change-Id: I275c99db8a0d10594a5a8c0c27ebc1a87495c307
2013-05-10 18:44:04 +09:00
Tadashi G. Takaoka
7f8dd50b8f
Save automatic shift state while orientation changing
...
Bug: 8734294
Change-Id: Ib2bc262aacedf786a318c2fe1bd4420a21e7d847
2013-05-02 15:48:56 +09:00
Tadashi G. Takaoka
307f49b8c1
Mark some unit tests as @MediumTest
...
Change-Id: Iaa0a691903526f57510a0305c02cc42cf8d90f9e
2013-05-02 11:25:35 +09:00
Satoshi Kataoka
c43417fb5d
Fix build
...
Change-Id: Ib9373b26b04b0f4789b3cd6a7af64e4bcd2c4b9c
2013-05-01 19:01:36 +09:00
Satoshi Kataoka
d5781eef62
Fix Google spell checker tests
...
Bug: 8613307
Change-Id: Ief04a4abb6dc1f79660a2e419c9c5e271802b5a1
2013-05-01 18:21:56 +09:00
Tadashi G. Takaoka
13d5da8b88
Don't triger onPress and startLongPressTimer when gesture is canceled
...
Bug: 8650846
Change-Id: Ice5ef07d6833422906b0b756206e097f75d1f2db
2013-04-22 19:36:08 +09:00
Jean Chalard
73ec85b8ad
Don't insert automatic spaces when text looks like a URL
...
This is about as ad-hoc as it gets, but then again, what we want
is probably as ad-hoc as it gets.
All URL boxes I know of double as search bars, and not adding
automatic spaces there sucks (e.g. in Chrome URL bar).
And in other boxes actually you don't want to add a space if
it looks like a URL. QSB isn't even a search box, and it behaves
like this.
So I think this is actually the right answer to the problem.
Bug: 7062925
Change-Id: Ib09472b34644fd5bf2dc84bb97cedeeba28bcd02
2013-04-16 18:03:49 +09:00
Jean Chalard
8094bf45d7
Match the keyboard state to the recapitalize state.
...
Bug: 7657025
Change-Id: I2f8fe7fc4596a498322ba5ccabbd0c18a2bc36cf
2013-04-16 14:25:03 +09:00
Jean Chalard
b794e904a3
Clean up RecapitalizeStatus
...
Change-Id: Ib4d002f90cd3a0e9ad4c04b883b0c1f05ada3ccf
2013-04-16 13:11:18 +09:00
Jean Chalard
bc501647fd
Remove a useless function
...
Bug: 8583091
Change-Id: I9195d68e44e9a282e25ccd2978d7b4088f600170
2013-04-15 22:01:37 +09:00
Jean Chalard
033958330d
Merge "Have Latin IME re-capitalize a selected string"
2013-04-15 11:29:28 +00:00
Jean Chalard
2995abe7aa
Have Latin IME re-capitalize a selected string
...
Upon pressing Shift, if there is currently a selected string, have
Latin IME change its capitalization.
This does not yet have the keyboard mode follow the mode - the change
is complicated enough as is.
Bug: 7657025
Change-Id: I54fe8485f44e04efd72c71ac9feee5ce21ba06f2
2013-04-15 20:23:01 +09:00
Jean Chalard
0e9ee4d3bf
If there are no suggestion span, recompute suggestions.
...
Bug: 8084810
Change-Id: I1743c09c43ca6835bb2f607684b037bf17d36335
2013-04-15 19:33:23 +09:00
Jean Chalard
001884a1ee
Clean up tests and increase speed
...
Conservatively reduce the number of unigrams to test from 1000
to 100.
Bug: 8583091
Change-Id: I48621ec44ff5f0590640d7c6b174ab5a6d267aaf
2013-04-15 14:25:32 +09:00
Jean Chalard
c2653d0b5c
Fix a typo
...
Change-Id: I27b925be030e9e6ee8ae49dc13f39accec996d7e
2013-04-15 12:57:27 +09:00
Jean Chalard
03d1dff38d
Merge "Fix Binary dict tests"
2013-04-15 03:53:54 +00:00
Jean Chalard
c2e9c511cb
Fix Binary dict tests
...
There are two problems here. The first one is the tests would send
an invalid unicode character. Although we could want dicttool to
handle this more gracefully, it's fine for now.
The second problem is much more serious. If a node has more than
128 children, then the java code will crash trying to read the
dictionary back because of a bug that this change fixes. In
theory, it's possible that happens when we try to load the user
history dictionary back from the disk - native code is not affected
so there is no other point that may cause a problem.
In the practice, that means you'd need to have 129 words with a
common prefix (including empty string) but all different after
this. It's almost impossible with Google Keyboard since there are
only so many keys on the keyboard that you can make a word out
of, and then again you'd have to do it repeatedly until it
actually enters the user history dictionary, wait for it to get
saved on the disk.
The bad news is, if you manage to get this far, the keyboard will
crash every time and won't be able to get up until you clear
data for the package.
The good news is, the dictionary itself is not corrupted and only
the reading code is wrong. So updating to a newer version would
actually even recover from this situation.
All in all, considering how almost-impossible this is to trigger,
I don't think even a single user actually did hit this bug.
Bug: 8583091
Change-Id: Iabb2a7f47cbd9ed3193d2a3487318d280753e071
2013-04-15 12:48:16 +09:00
Tadashi G. Takaoka
b12c2af32e
Tighten unit test condition of MoreKeysKeyboardBuilder
...
Bug: 8601979
Change-Id: Icf584f3b35adce69cc3dfc46f3aacfef05e5dd2a
2013-04-15 09:58:18 +09:00
Jean Chalard
128961ade0
Fix failing tests
...
RichInputConnection#getWordRangeAtCursor may now returning
either a SpannableString or a String. We can't test that with
String#equals(), but TextUtils#equals() does the job for us.
Change-Id: I59ebe54207e92f4d90b49476b64f1e12fd4929cb
2013-04-12 23:38:36 +09:00
Jean Chalard
d89ed47616
Remove voodoo magic.
...
There was a much, much simpler way of achieving the same thing.
Bug: 8583091
Change-Id: I8882f389312caad3b17335672892a31d30cd00bc
2013-04-12 17:05:43 +09:00
Jean Chalard
1cbb0b8f2a
Add some utility functions.
...
Bug: 7657025
Change-Id: I4889721b5348c77ed56c5157557e9988dea48a02
2013-04-11 16:16:19 +09:00
Jean Chalard
4f43076370
Fix a faulty test
...
Change-Id: I5c03cea41e9b6e936e8f93b7d756f0fc9520002d
2013-04-10 18:08:27 +09:00
Jean Chalard
99b93d17d5
Fix a bug where autocorrection status would be wrong.
...
Change-Id: Ic220129dc59f585164dbf63591cd1c96de17fe6f
2013-04-10 17:49:19 +09:00
Tadashi G. Takaoka
d20c5a78e2
Separate StringUtils.capitalizeFirstCharacter
...
Bug: 8582061
Change-Id: Iac8f65defdd92d7df533bdf0e2937ad897d96363
2013-04-10 14:55:23 +09:00
Jean Chalard
19dcd15493
Merge "Offer to add any OOV typed word to the dictionary."
2013-04-09 10:28:47 +00:00
Jean Chalard
9310f42a36
Offer to add any OOV typed word to the dictionary.
...
That includes gestures, which used not to work.
Bug: 8532637
Change-Id: I04606565d7000faadf954c4a806c39d4d162a2c1
2013-04-09 12:05:54 +09:00
Jean Chalard
c87449497c
Fix bugs and add tests
...
Change-Id: I6b56b91ace57f4a49584b5dceb71b145859f839e
2013-04-05 12:11:19 +09:00
Jean Chalard
5d399ec719
Change which backdoor the tests goes through
...
Yes that's even harder to understand. The old technique doesn't work
any more, so I have to drill a new hole in this class.
Bug: 8303100
Change-Id: I70a41b5094dab2bb56a17eaf55b2a2df853e4bb6
2013-04-02 18:20:19 +09:00
Jean Chalard
84bfde0421
Fix a test.
...
The test was not passing the correct input type when it was
creating the text view, resulting in mismatched types seen from
TextView and LatinIME with some bad results. The test would
even go as far as restoring it after it's been fixed by TextView.
Additionally, since we want to enter litteral carriage returns,
the input type should be MULTI_LINE. If not, TextView does
not allow carriage returns.
Bug: 8302690
Change-Id: I1c20bcf6ca554ad981048ec181e19c649f6c742e
2013-04-02 18:20:14 +09:00