From 58bfa350726c6a9b6b41e44e0313a2a366dab3d2 Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Tue, 19 Oct 2010 17:08:54 +0900
Subject: [PATCH] Update xlarge drawable of Keyboard

Bug: 3109804
Change-Id: I316f9cfcec377a7d0ea1417e1e3cea55cbdb9e2b
---
 .../btn_keyboard_key_dark_normal_holo.9.png   | Bin 0 -> 1327 bytes
 ...tn_keyboard_key_dark_normal_off_holo.9.png | Bin 0 -> 1389 bytes
 ...btn_keyboard_key_dark_normal_on_holo.9.png | Bin 0 -> 1408 bytes
 .../btn_keyboard_key_dark_pressed_holo.9.png  | Bin 0 -> 1321 bytes
 ...n_keyboard_key_dark_pressed_off_holo.9.png | Bin 0 -> 1388 bytes
 ...tn_keyboard_key_dark_pressed_on_holo.9.png | Bin 0 -> 1399 bytes
 .../btn_keyboard_key_gingerbread.xml          |  43 +++++++
 .../btn_keyboard_key_light_normal_holo.9.png  | Bin 0 -> 1321 bytes
 .../btn_keyboard_key_light_pressed_holo.9.png | Bin 0 -> 1324 bytes
 .../res/drawable-xlarge/key_hint_0_holo.9.png | Bin 0 -> 1426 bytes
 .../res/drawable-xlarge/key_hint_1_holo.9.png | Bin 0 -> 1298 bytes
 .../res/drawable-xlarge/key_hint_2_holo.9.png | Bin 0 -> 1443 bytes
 .../res/drawable-xlarge/key_hint_3_holo.9.png | Bin 0 -> 1457 bytes
 .../res/drawable-xlarge/key_hint_4_holo.9.png | Bin 0 -> 1412 bytes
 .../res/drawable-xlarge/key_hint_5_holo.9.png | Bin 0 -> 1427 bytes
 .../res/drawable-xlarge/key_hint_6_holo.9.png | Bin 0 -> 1442 bytes
 .../res/drawable-xlarge/key_hint_7_holo.9.png | Bin 0 -> 1409 bytes
 .../res/drawable-xlarge/key_hint_8_holo.9.png | Bin 0 -> 1478 bytes
 .../res/drawable-xlarge/key_hint_9_holo.9.png | Bin 0 -> 1443 bytes
 .../drawable-xlarge/key_hint_at_holo.9.png    | Bin 0 -> 1594 bytes
 .../drawable-xlarge/key_hint_colon_holo.9.png | Bin 0 -> 1219 bytes
 .../drawable-xlarge/key_hint_comma_holo.9.png | Bin 0 -> 1192 bytes
 .../drawable-xlarge/key_hint_dash_holo.9.png  | Bin 0 -> 1191 bytes
 .../drawable-xlarge/key_hint_equal_holo.9.png | Bin 0 -> 1292 bytes
 .../key_hint_exclamation_holo.9.png           | Bin 0 -> 1278 bytes
 .../key_hint_larger_holo.9.png                | Bin 0 -> 1317 bytes
 .../key_hint_parenclose_holo.9.png            | Bin 0 -> 1316 bytes
 .../key_hint_parenopen_holo.9.png             | Bin 0 -> 1323 bytes
 .../key_hint_period_holo.9.png                | Bin 0 -> 1164 bytes
 .../drawable-xlarge/key_hint_plus_holo.9.png  | Bin 0 -> 1340 bytes
 .../key_hint_question_holo.9.png              | Bin 0 -> 1392 bytes
 .../drawable-xlarge/key_hint_quote_holo.9.png | Bin 0 -> 1257 bytes
 .../key_hint_semicolon_holo.9.png             | Bin 0 -> 1248 bytes
 .../key_hint_simplequote_holo.9.png           | Bin 0 -> 1204 bytes
 .../drawable-xlarge/key_hint_slash_holo.9.png | Bin 0 -> 1317 bytes
 .../key_hint_smaller_holo.9.png               | Bin 0 -> 1326 bytes
 .../drawable-xlarge/key_hint_star_holo.9.png  | Bin 0 -> 1344 bytes
 .../key_hint_underline_holo.9.png             | Bin 0 -> 1158 bytes
 java/res/values-xlarge/dimens.xml             |   3 +-
 java/res/values/dimens.xml                    |   1 +
 java/res/xml-da/kbd_qwerty.xml                |   2 +-
 java/res/xml-da/kbd_qwerty_black.xml          |   2 +-
 java/res/xml-de/kbd_qwerty.xml                |   5 +-
 java/res/xml-de/kbd_qwerty_black.xml          |   5 +-
 java/res/xml-fr/kbd_qwerty.xml                |   2 +-
 java/res/xml-fr/kbd_qwerty_black.xml          |   2 +-
 java/res/xml-iw/kbd_qwerty.xml                |  11 +-
 java/res/xml-iw/kbd_qwerty_black.xml          |  11 +-
 java/res/xml-nb/kbd_qwerty.xml                |   2 +-
 java/res/xml-nb/kbd_qwerty_black.xml          |   2 +-
 java/res/xml-ru/kbd_qwerty.xml                |   4 +-
 java/res/xml-ru/kbd_qwerty_black.xml          |   2 +-
 java/res/xml-sr/kbd_qwerty.xml                |   2 +-
 java/res/xml-sr/kbd_qwerty_black.xml          |   2 +-
 java/res/xml-sv/kbd_qwerty.xml                |   2 +-
 java/res/xml-sv/kbd_qwerty_black.xml          |   2 +-
 java/res/xml-xlarge/kbd_phone.xml             |  80 ++++++++-----
 java/res/xml-xlarge/kbd_phone_symbols.xml     |  78 +++++++-----
 java/res/xml-xlarge/kbd_popup_template.xml    |   2 +-
 java/res/xml-xlarge/kbd_qwerty.xml            | 112 +++++++++---------
 java/res/xml-xlarge/kbd_symbols.xml           |  10 +-
 java/res/xml-xlarge/kbd_symbols_shift.xml     |  10 +-
 java/res/xml/kbd_phone.xml                    |   2 +-
 java/res/xml/kbd_phone_black.xml              |   2 +-
 java/res/xml/kbd_phone_symbols.xml            |   2 +-
 java/res/xml/kbd_phone_symbols_black.xml      |   2 +-
 java/res/xml/kbd_popup_template.xml           |   2 +-
 java/res/xml/kbd_qwerty.xml                   |   5 +-
 java/res/xml/kbd_qwerty_black.xml             |   5 +-
 java/res/xml/kbd_symbols.xml                  |   2 +-
 java/res/xml/kbd_symbols_black.xml            |   2 +-
 java/res/xml/kbd_symbols_shift.xml            |   2 +-
 java/res/xml/kbd_symbols_shift_black.xml      |   2 +-
 .../inputmethod/latin/BaseKeyboard.java       |  47 +++++---
 74 files changed, 297 insertions(+), 175 deletions(-)
 create mode 100644 java/res/drawable-xlarge/btn_keyboard_key_dark_normal_holo.9.png
 create mode 100644 java/res/drawable-xlarge/btn_keyboard_key_dark_normal_off_holo.9.png
 create mode 100644 java/res/drawable-xlarge/btn_keyboard_key_dark_normal_on_holo.9.png
 create mode 100644 java/res/drawable-xlarge/btn_keyboard_key_dark_pressed_holo.9.png
 create mode 100644 java/res/drawable-xlarge/btn_keyboard_key_dark_pressed_off_holo.9.png
 create mode 100644 java/res/drawable-xlarge/btn_keyboard_key_dark_pressed_on_holo.9.png
 create mode 100644 java/res/drawable-xlarge/btn_keyboard_key_gingerbread.xml
 create mode 100644 java/res/drawable-xlarge/btn_keyboard_key_light_normal_holo.9.png
 create mode 100644 java/res/drawable-xlarge/btn_keyboard_key_light_pressed_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_0_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_1_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_2_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_3_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_4_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_5_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_6_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_7_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_8_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_9_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_at_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_colon_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_comma_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_dash_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_equal_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_exclamation_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_larger_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_parenclose_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_parenopen_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_period_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_plus_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_question_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_quote_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_semicolon_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_simplequote_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_slash_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_smaller_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_star_holo.9.png
 create mode 100644 java/res/drawable-xlarge/key_hint_underline_holo.9.png

diff --git a/java/res/drawable-xlarge/btn_keyboard_key_dark_normal_holo.9.png b/java/res/drawable-xlarge/btn_keyboard_key_dark_normal_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..c23ff187830976462d56a01b509514cc9ea29dab
GIT binary patch
literal 1327
zcmbVMZA=?w9KQ}$9AlXkoZy_f9FjPt_tI;*_CkTu>q*sP1V}_jR<75laDjXAdf0;x
zPzjMZ<A<4Lac;(}iHgfyG`dBnlSJYoW@Ijzi)<fI*l?H_G%mUk96kpW_W}LjC3nx;
z@Avz^KKF7{;}hEoA1p)=WLva>Ylh=a_&#ut6Mh$WcyTzCnUOZLMN67#(Evy&p~V3j
zRm4uv48%m=^An&NLGqGvYn$07Jk3g)f{Qi=w-g<+5v01-(nYBom}ney%4!f>_-qVA
z<wOvB#wU=19tK@<L%#u9`WsuN{%$Fdz-nvIYKw&e3NS^~QhL-BYXz|tT^7#mZ307A
zAZB+ETXm{UXhOr90Z<=Kx+SuTM5`#AqP+~mRH7b|A_>w%P#!nMu(XFINp$VOpfw|r
zWScpD%@$k*u`bipS%OHX(|DT3HKUWD0)c?7;qka3!ky|<P0@0zsq&lx2U3zD>!z%!
zsI4f*wO%ubK~GmhP;^097gkeiiGnF3EKw&YoFo**j%x*-GMm9aZfuB7wf5<NXa*^*
z*N|X6lI1xv%-w$*vVqVWc8?*$qKG}5CiN;nHKSY*gC}@GPOv<~@D#;(NybA~`6<dD
zro0^O<Nbbbn5+ub=QK9rax~-hK?X<D97S<_J)A^*9)=9_v^T);Ic`)<nW8FzoLw2(
zUE|u6f9JAc1Bj+(v}#&Ut^=C7G*e4;X*wEi@u7k!$*R4!%d;9S2MqZIkl+nXL09t2
z${X0{p?`PB9pZV;9|(oKA-^XOA$`~yH}QXRMnGo>yE*P^mfRNXKzq90`f#y+d4LLU
zi~+Ak^-s)Y1aZWoT&UH$5?@+guFZQdbKrn$^q1Q5iN$X#iyd)?^XC`0*DX1ZfX9kH
z&P&(jZ#`IEh-G$sbZ6-{UC>aF_vuVY>7DyZFLh5%O}&fEPdEJ@8?T%#a7~X5UWk1d
zk1W1c@l@%)u>s+<kj-XiD2jU4<#L^GZ*LFU&>`1D!*A6N*34hOUUBos@q+#1LS0=(
zyn0$$u=@HY#n8mii65Yr{z?YNu4c9AFR09U$KjEqLl@oQJu{E&9X@*I;-vItXW82w
zzqbAH=R)lGb1$h67e6|4V~)P&QLW9h9|*5nv@g)RYxkkEv$M0si#O+sKl%DtJ~HVz
zGICAl4|XJy$$h&@O7d}Tw|h7=hfMArdH)^fcg)h*z+dsRgUbV3$op?^`YJMUs_6A}
zEYE%A#OUbv<LAyfk6);9{Py^n%a?8__ijPwj%6!inOmDrI=4T$b$|O#{nY2krXr+d
X<eOV>zEO7A{)I&&joiulj-kH+h?&oV

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/btn_keyboard_key_dark_normal_off_holo.9.png b/java/res/drawable-xlarge/btn_keyboard_key_dark_normal_off_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..e29de9a7f48892c2b74d58920274d79c2c815fd1
GIT binary patch
literal 1389
zcmeAS@N?(olHy`uVBq!ia0vp^(m*WE!3HFMiJ9mDDajJoh?3y^w370~qErUQl>DSr
z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8
zNvY|XdA3ULckfqH$V{<S3ODsN@GWpo&B*kqDoPEm@(W3>%1*XSQL?vFu&J;D8jzb>
zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq
zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6N<iC+Qqrt~T-=~`0eQAc86_nJR{Hwo
z<>h+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz
zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y)
zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl+|140
z3=Pdq49txT%q$EIEu0NaT#QZKEG$f%4a^*!U}j*`>tbwfZf0oU;$m#<Vrb~%<^*K8
zni`oKIJ+5}Sem=R^m^tMmn7yTr^4*b1lkML>x@^gm2**QVo82cNPd0}ECmE)<d@_Z
zXXF<sI0u_5_$DT2=7IR2=z;jwCABECEH%ZgC_h&L9KKeWSnPKLx)0gkj&5!)7M6~V
zCXN<HmaYb-N>IHi<b;_%&@uX;#DSDpU_!tY2x7vMK9B>?JgIrW98(0$8qE)CGZ+{c
z=X$z0hE&|T6LvPM*+C$#ep15~d8east^1tsJ8F1TeVkCekfrKn@{=3x9~3;QHJ`}-
z;%kk`);*Zv>9J~~vA0s1r%q?4hUAP`w!80d|CLFfcKY+2H(4^r4{n-syHeJ<jBnk<
z!;viic6Pp*^k?qghYEVkvg`_ZXVNyyoiP`XGCjaN;n&KmS+<A%>^;ICo}$Hf`Q?{;
zpZ7#xFZGmYt2TbQE3ahtUF+k8ES{5odH*R;Ri0|#IVt?~rdxp`SFibAHZhXmaoeO5
zzjlepX?-2B?k0}1E#?<fj1)VXE1vSCoxCA(f98rgcXj0AUBj;b<Byz{%C4IHvEomG
zyLIHwV{@nVsL$@5YHxb`b;UgOMH-hR@B3cfQq;VEVy}p6=J7%wZ@%n+qn)|8UEln+
zYt-8~k)uE(F7xr7Sv^e(Kj!+ii(TC1DpAPrzA||EvAV_Qo_{`8U{TYcv#ZT%)nnr+
zT>erljFSDwP4rS2JwroP+Y&EKPU!h6a>7ZW%FuW7{T#E6^N&7|cYk~3jqDSqKW`dT
r;vc-ft!I;MzM@ug+uc2NED{W+KVQGh`YzH3DgZrQ{an^LB{Ts5hhgy1

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/btn_keyboard_key_dark_normal_on_holo.9.png b/java/res/drawable-xlarge/btn_keyboard_key_dark_normal_on_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..d46c03aa42e1cd1b15bb27f2e4324f241396fbe8
GIT binary patch
literal 1408
zcmeAS@N?(olHy`uVBq!ia0vp^(m*WE!3HFMiJ9mDDajJoh?3y^w370~qErUQl>DSr
z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8
zNvY|XdA3ULckfqH$V{<S3ODsN@GWpo&B*kqDoPEm@(W3>%1*XSQL?vFu&J;D8jzb>
zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq
zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6N<iC+Qqrt~T-=~`0eQAc86_nJR{Hwo
z<>h+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz
zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y)
zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl+|140
z3=Pdq49txT%q$EIEu0NaT#QZKEG$f%4a^*!U}j*`>tbwfVrpn<;9_j-Vrb~%<^*K8
zni`oKIJ+5}Sem=R^m^tMmn7yTr^4*b1lkMHYvG1hua$FAYGO%#QAmD%4lD%(WaO9R
z7iZ)bC^!e3D)=TQXXb(Upy+}4)+Mzlvn(~mttdZN0UW+onON+11G*2{-;Qo>E*6%K
zjwX&4MwYGyrb<w~DddEiKF~4xpu~ZcSYSfH6bNF%lRl6G&pfGlz#LNq%o@DsEvGRs
zFmCX4aSW-rb!XZ}|3eNU$L@b^kXjJX$-7QPE$h*{S3ZxLxS6{rcPbWs+&|&s*{O|3
zUL+lQ^D1wVn%bHyUNc=0?k!(qnIrTZoVt&EIC1x>>X+ZL^6S6%?O4bCnN5*JzWC&w
z^MxCDWsG$6Ol0OyPKf?c{_)hZ6AFPhS{|%OjZBT{H#plSQ18Av-z9L*k*($z!rM2P
z%(j|)E^=*{^~$i-3sz+%Oj@LIGiYT=l#W=Yjof;kFIN}#&TDN;w0ZLRXV0?Cg|(AY
zC0~853ZAs&@4~5q|HWmFOEwm`H##oMWV)PK^^faWVom3H-cRA?>($RRwf6pJ-ke*#
z&>+q~q5jULx|#obqIIRiw@Ib%yHc}WSV_;tRa#?R*?fodiynOOOo%X^>Xlj&`@K)b
z?%E_XnRuJtPpd!a)yytY;wZJTy?^ZFjNU1iUOO#(AiF4$KXF-e)%M9&rmxLk=53eG
zHIaHA;o9Ezcg2FpADPa#D;xEn%SD|tezx}hSx2EshxpcTvriD%X6VmwFmh3~R@1wp
zoiVCn-5cwcJ^m4qwfxz8h1nL9xLXXQ?=6e1IF=XS$ay(0&Yp>f;k?v~x0n9kb_SJ+
Mp00i_>zopr0OZd6sQ>@~

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/btn_keyboard_key_dark_pressed_holo.9.png b/java/res/drawable-xlarge/btn_keyboard_key_dark_pressed_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..45ca3a7fc4f72093e86b61a571a4d50ab9d7914b
GIT binary patch
literal 1321
zcmbVMZA=?w9KVhY2!f6|8B?O?H8H->-d$g~_H2c=*Bdn}G_*!$nvCP_0d8&Y>h-W!
zvSH_kMR6vOkoaMISmq0|B{RW=L^LA-HCbRv;wv*ig1VrKSqvY5LWa*li~E3n@RGad
z?f3irU!Qv`)O4((?9nm=K`H``ObZ+zgYS{jV))Hf+01Y_s`^{iu-u`hIRzjdL2d_V
zAi;Hl7QhLaS8o6pf)sU#kyf=ec%0_tgqhPZW-XC~Yy@%DYe|le0TpcroucH%?tV6b
zp`zf%UbY8`VA2P=#Ks;4gnODId{2yb3RwLMs7s@vKmw>7swLu5iq_oNwk{3l`ZkWC
z+YmM8#&(=)4TeyktN_$*CQLk0N1%12nY7v{imF8|1WDk81t%>glA^5^njp~pgF$PG
z&_TB_Y~B`Jxv?%)P0~1?PN&Ujt65e$ank8@>KYb{2_j6XjHGg!NlF<D3Jgf`ikMVI
zSweM1u3hd{-5B(ACxk>Y7~B<>Qu#!|l;Ike#7Q%OClY#G+vt?q0{(GhPjo7hNdmkD
zq~vaehxO<%7RWGn|7}PILT~71MTAA+;*899CxD~|7&it_%z`M;EJd*-N!bX>Lex1(
z(%~a*jMdIM95x?O=kXRa_Tn;D%3Eji_!z5|AxVby!inE*p$H#qwK*xazzs+#m6Lc-
zuq#5ld9F_RcP{Ny0H?}IM3&=)4hVJ0s+{VQlc+CjM}r(MO8Qza&rY-qP{h}Oz$$VA
z-Oev9?qQ#W{@ow9hh-Uu)8nyu92Tdauw!|y@PBfKLuYWkIqqwg!WQg6eY)HFaIt%N
zfCO)h0<Xq-?XMvOF`Ni6o``m<eRFH8zGx&nFi`o?pY_HYx!Kx>4ef^FKh8eXuvvTo
zJX?OPDBZCCfk9&#maY2a-sZZsq_L#v)1|}J_YPHm7n_@#8%BO#46U4;s{N&;a&hAI
zZx*kKv0Sd=LiNJ+Gsnh)lat=1vxeRiy}b)F(P-2Sq1Gp#%WbU6%a^~u^Ym!x{)U|A
zc6P>B)#<stxv|>3{Oxda+gLVxaD8NH>iOb+C%V!fCdR>XU`TkoKTM5hj<40ecewoV
z>1^eTFHO(h<oEe&=1-rCepT^tTg})=rTpPj!&i-8j;38Mm-poL(}p9?LFA&dZKc2F
z>o*UbpP8AtGCx0bbZt$0X0-JECxi!QKkxqO)Tz*!sjWLd;y-Mx-hCGd58$EbV01d0
zS+&nzy4ly)=Z?qY7jxy2@rg^Z;5!S&1IPjD5!3p<FYu&Y3%wHh^;Y)EZwC&xA%mBv
VCy{eMf1v-o0{$lEs<-WpzX6==(kK7`

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/btn_keyboard_key_dark_pressed_off_holo.9.png b/java/res/drawable-xlarge/btn_keyboard_key_dark_pressed_off_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..da039f3dfc8fca8c510f4f9986e7305b29446dac
GIT binary patch
literal 1388
zcmbVMZA=?w96#uQ4MsMEFxU{!Lz6{m@2+px-stGj>x~);2sPG(WE|}STuOW0^{_2b
zRy0}SFo7k;g^e$2;=~V-C?Rp`KoFIe#Ti`;i{nkQfs1a*GI50!p8~~wAp77YchB4J
z_xry-_fB=?iOlrF=?H>k+RE7)I39uTp}nc_8_m_K;E*p{opP<%C<l27AdFjV0I1E&
zH-Q?!yThj@Kna2<8U=?_cG@dwm*`dTaf~YD^+Ps-l$3`2yvqY*v;i~;J`;BL%V7)^
z+$QW*ot?1zEudK_Z<9c6TcyL*=5ZO_Sm|-JBt%02FOYdO<ZbZ<=#UB9)TQA(zKvt(
zCPem_uq~&Y_G;83N&wZV2&IeA6R4h4ks2*UQN^g5APJmM<D^<iQnW@*69l^bV9=W6
zZlr5iZrc`InXqPA_R}~X3<gy}jY^c7aMEZr#x>MxB}6C#VV}&0l)gYwLV*PVmn8UQ
zLG+<<MZQ67l}#A*bSng}-)`R#_64>R1yhEHct1|62;A$9$F+$L$Ti?UH+Dq_9AQ7e
zYd}D3m0YkMjYSDE%-xd>#evWpx=IpYQTP^CbhUbcPqwip44$amf}7?jiX%x%OHgV;
zZy-s7h19Yd9cM6TErgyaOK9xIWi?cpURwt78kQtkt_)7BIyFUDIE~gwaS5)?7m#_M
z3nc6c(C#)@^F%IfkpM4?l0y_*5*<+8EXrb_S@ffpS{-WVU4k#Zj+bXES{6vc>%h%P
zq8HuFFD>k1pM(BA9yh~rtii}ITE?I@S_vJt&2|5uoZ-+JJl-6SHA`X(c3^zE)B13+
zb9sOd-WUm9jlaN81qhPVYhxKl=tjf(#zv{4FLLf&)+c|K7EMI26=x?kB&Gh*alpKu
zdJ(*^e^3!L@5y+tC>@LBejZzYs7WhNQ+%<QlNWm`?-$R^%*-WZWv=@E$+6<!)3WA<
zPyaYKD0rgL%!_%mSKd4^WFH+ZTkJ?`f33ZJcDk;v&IF;FXJ3r2t%}Q^UcYnnv%P!F
zQRY@;+LGJE+*)5-ty=#1QdRv>By#X!-{RP@)NUhszq^*W43=%Z?#}L7>T<Z^pW=^l
z_7_e?vR-;+>e^LTvbEsm8)xdi%N(dL80yOsKjsGRn0tDAdiGVky%dW*`aUvn{5ki`
zvBJW_5Ac&$BAo^D$mHbYe7(5u_A`c1@51WcIj1uDf<k{_V&UDR-~2E={nd?|S9?0T
zy3T(%uUJXzQE0`dhb|m;%-!3FKInW9d$jiah+}DOVJz)s=h-Ms%GlI-Jb!lhbk|~b
zcU4MCO8&Rw<N2X*m^ov~IMwm1`R_)nb-Ylo*LSB@uf)#w>vU~L*yNnw9D_?42Zu+l
l&ocsZ&ZFpm|ByM7gk;}a8NI#uwI}}nvso+I{<8YF{spii_iF$E

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/btn_keyboard_key_dark_pressed_on_holo.9.png b/java/res/drawable-xlarge/btn_keyboard_key_dark_pressed_on_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..315ab17c07f381787750cf106c0e287e837def40
GIT binary patch
literal 1399
zcmeAS@N?(olHy`uVBq!ia0vp^(m*WE!3HFMiJ9mDDajJoh?3y^w370~qErUQl>DSr
z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8
zNvY|XdA3ULckfqH$V{<S3ODsN@GWpo&B*kqDoPEm@(W3>%1*XSQL?vFu&J;D8jzb>
zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq
zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6N<iC+Qqrt~T-=~`0eQAc86_nJR{Hwo
z<>h+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz
zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y)
zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl+|140
z3=Pdq49txT%q$EIEu0NaT#QZKEG$f%4a^*!U}j*`>tbx~WM<-I;9_j-Vrb~%<^*K8
zni`oKIJ+5}Sem=R^m^tMmn7yTr^4*b1lkMH>*$78ua$FAYGO%#QAmD%4lD%(WaO9R
z7iZ)bC^!e3D)=TQXXb(Upy+}4)+Mzlvn(~mttdZN0UW+onON+11G*2{-;Qo>E*6%K
zjwX&4MwYGyrb<w~DddEiKF~4xpu~ZcSYSfH6bNF%lRl6G&pfGlz#LNq%o<w1lyw*w
z7?*pxIEGZ*x)XNR>#&2sytCUhTmDVd`Wp37?FZkY7mhrlA0=4?_q^b)cz1F6h6wMY
zvmaP<+&dC?^;W>`3zx2>%;gNdyj0g@rK{Bj>zS&bYiHj)dCowQ#Yd~hutYc~$-Xm(
z(OqhpI<L(8!zaQXynoWU%;SE<63))Wck{kWe6^c(Q{cgRiC3#5bjlicT|d6QcJk7U
zS0z^JQ%}8pSh|zx>n_O|nv*YXuC9E1!k}!&vdmVyI^U1`pIDqbn7UD<tE1%)XZwdg
zuLbu%+_mmrj@jPlB~kqIM0tfdfTEH*lTT{e8BVm{oobUR6B+T-KBZzou<GQGB33(Q
z*3SIjH+#Loxm>fpzbl_cEiVw?aqIJz*BTFQ1p2e98bAKHBQJ7V`O_1Nvdo^Ge^>YB
z(@(V<xuqI{k18tm^=@v=Ej-tKJ6d{zkD60!{~u2Fk6wqhOs~$Kl6(7N*4C=7$St>v
z<n~HEcapyKNYdxIT+|~*yQ9bRBO<tja(GMj@kvD=W4W;BD@*)Z#f!dr)3sNu^7`77
z_kH`!u&kZzk&6oaCmuQU(P-5}$rlTnjCx+}*~cQmuw3rN&d%A*KS4#Ir>mdKI;Vst
E0H^u_hX4Qo

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/btn_keyboard_key_gingerbread.xml b/java/res/drawable-xlarge/btn_keyboard_key_gingerbread.xml
new file mode 100644
index 0000000000..3dab8430f1
--- /dev/null
+++ b/java/res/drawable-xlarge/btn_keyboard_key_gingerbread.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- TODO: Remove "gingerbread" from file name and rename this to "btn_keyboard_key.xml". -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- Functional keys. -->
+
+    <item android:state_single="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_holo" />
+    <item android:state_single="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_normal_holo" />
+
+    <!-- Toggle keys. Use checkable/checked state. -->
+
+    <item android:state_checkable="true" android:state_checked="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_on_holo" />
+    <item android:state_checkable="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed_off_holo" />
+    <item android:state_checkable="true" android:state_checked="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_normal_on_holo" />
+    <item android:state_checkable="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_normal_off_holo" />
+
+    <!-- Normal keys -->
+
+    <item android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_light_pressed_holo" />
+    <item android:drawable="@drawable/btn_keyboard_key_light_normal_holo" />
+</selector>
diff --git a/java/res/drawable-xlarge/btn_keyboard_key_light_normal_holo.9.png b/java/res/drawable-xlarge/btn_keyboard_key_light_normal_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1c80a2ed6aa3a9977b420e4d3851cd4ffa6d28e
GIT binary patch
literal 1321
zcmeAS@N?(olHy`uVBq!ia0vp^(m*WE!3HFMiJ9mDDajJoh?3y^w370~qErUQl>DSr
z1<%~X^wgl##FWaylc_cg49sbnArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8
zNvY|XdA3ULckfqH$V{<S3ODsN@GWpo&B*kqDoPEm@(W3>%1*XSQL?vFu&J;D8jzb>
zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq
zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6N<iC+Qqrt~T-=~`0eQAc86_nJR{Hwo
z<>h+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz
zEwNPsx)kDt+yY-;xWReF(0~F4nSMoLfxe-hfqrf-$X{U9#U(+h2xnkbT^v$bkg6Y)
zTAW{6lnjiIG-a4(VA$ce2&53`8Y};zOkkuW=D6f1m*%GCm3X??DgkBmQZiGl+|140
z3=Pdq49txT%q$EIEu0NaT#QZKEG$f%4a^*!U}j*`>tbwfVrpn%;bLs;Vrb~%<^*K8
zni`oKIJ+5}Sem=R^m^tMmn7yTr^4*b1lsFj3^d%;(HXB^E9aur#FG4?ko^1{SPBTp
z$S=t+&d4uNa1J(A@J&q4%meX3(F5_VOKMSOS!#+~QGTuhIDD-#vDohhbRV+69o^hq
zEG!)zO&l$ZEL{yum7sc4$O$ujpkwqwi32IIz=VJ)5X6KheIN&(c~bL$Ii?7hHFV2*
zFEcPOMtZt9hE&|TGwq^Ri-Sm8dP%tB6yMC7d986rt(g_8+7z1ds(SXm(cL8QsgNmO
z+u51rVt}<fPg?t3R`=*6{xdzs7XOzUr$3XqwM|ztYf8|JYnKjwwz#1=Mc8O=t>e!-
zY}V@a>FXoT{yHb5&2aworai6Sgm$eKeDr?975`PM>>PgIeSLiY2G%gwz&ovp6|yXh
zo|9Z=q(ojj^?8r<_0m+|%h&eS>1@=$T3Y+`_dg8*sdMhKSCWsX=Pb{Z(muWE-AxnU
z#E4nTSV{x>zb42X+x;U!;Pu@-^S1DtUHiw+V^$I*v0nY*G1)igZ&<(EG3{f<-op0_
z#X3u!6FS$u4x9J<?o{Jr4$Chm+s(<-S*&xqzwfcYVFS0u0=riY_daj)=>3=$7<$#F
zYf<%wMcfkcU56gLImS@6F}HfH2G=p;J$LQ-q*nfvdBQWj+R20OX>RzT%@Z9vh00Rn
c?3s8Nw(L87Fv(We2vm4^y85}Sb4q9e0L%i?N&o-=

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/btn_keyboard_key_light_pressed_holo.9.png b/java/res/drawable-xlarge/btn_keyboard_key_light_pressed_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..90babfc876fa206f899bb940a1c8607fbe4e50dc
GIT binary patch
literal 1324
zcmbVMZ)h839KM***3M3=Yu9dmxLwf=ZE|<HB$pgX(`zng14|c^U@HW=OYUuZrn$Ra
zu1i`w%^VCBQ7RIw+lPucb;uMg)1lJA1UI*#LbtUFR<=^AL&q3W&Eo2NZBqB4?1L}d
zy?^fcJ<spodoP8%o~WzcT8kh^U9gjjz<C>dw$xO?cd^lKg;TR0=+UD}pPm&ofUu&H
z0BA5R^n(Zx#NoYXfd@g%eNwDP?+NW<l1kbt7#M3VtwL)A@%VD8kW2v`O@Mw$_F~t+
zn8Hv=^kUtP5D`-SU_j~|(Li*hE0!EdCEX(CYePLb1`?!!E}*&epqycHUTlSzfotO!
z$Iumsp7LU=PW6Pss9(_l>aY@)B;h1bCut=qJ5AHAsEr^AoUq}f%|g-)Wn%~eEe{N;
zX<{D};rOx^+<CD9T~`?#&t|jMEM--+ew=i>-3EuvW`PJxW?0sRoJG#GR2VprNota+
zONxvdj6y;g(!Ch;bTx#u8Vaou%b9YbV9M~EpyH&Jz|(0Xt`&4fkAVN&SQnj%4XXf;
zfQ&MvC1E}KS}MjccXt;ufY2Lew<f`&2!ouG97+RO4{}}%ezA&@$nZ4HlO$~?XdB^l
zk)+E{+BwR>yIgiZ;bc219P8O~6iqux(!o&_N0J=h0T%&>jVAm&Wp~qj#WpBsbU{vn
zimn88%eGMKF1Czc1A?w-F+~}ybU=7O(Ur`AqN4t&0}TmDNjCOIc~+z4fF|t&BCjcF
zbS1xxw2nRx{kt=6mghN_n`P~+%jOOc4y<e|{-2!T&>7rljysyAas)fjSgy4`+^k(5
zAj2D@!K-nkWkg00Q#{DAvD}Y|((<y;{6T(ftp5GqeJy8;-?u(wN|>sCJ8*w{sp>Fz
z?7m5Jwtd6KH(F}3eB-CLOMg?<oz>=(S2j1@ez0jeH9I@|9`fs4_-60v)~nU^b5qZM
z=i67(i$A=xqq%K=ao35^=;)VME?ru9`l-Uv^YM7x3!&8Z$BVa?l*P9XezWtFnhotm
zb|HV>-`LMClx{8UUcC01vggF)Wb16fyTACRN!)bCGr##2x%uTs;dtHB;WVH2j251(
zt$Gcds(JSqSX>|vV6Vz;e(Tjk-NdG!reCC^(P!M-&;7htRcrqF>xMZ#AHFBQkiT&7
z277P)BTeJu<K5eu1}Ih2!eV`=@65v!!`D8(I6YB3w0!xa-Vc|q&*7${SntH=J5Lr&
zH~&aY1P(VeG(0;qGt>U(><;v~z~#5LepQE=zV^f>=Qlnub?V|Tti+C`%*P8`+Vdvl
Xi1*wv?Ar^x@&5`2y13&VdtUe#q$16`

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_0_holo.9.png b/java/res/drawable-xlarge/key_hint_0_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..33b6b40f381c4aae06bae333ccf3cddee01cf112
GIT binary patch
literal 1426
zcmbVMeM}o=7(d7OC_-Qubxzdt7$z{dkA861N`cbrNeyKP%|?U;uI&{Hv{&v9TZnN3
z_aWQN9K-OLtkbA7OIWk0!>B=5bi)Y(8q_7?24S0K5r>#XVbr%kaet8g;U#zP^S<xz
z`90s)R$TO4eC)PZ2!i5`1#}5m9|iB$m?-ew^0K`VERRWsGO3ieOCDC>Af1i3aIn$I
zR&ymBYinv4=CUCu!tOAaNoA%&jg@zzYzTvToo=8FLD{)pH*2lqB-p}LJ6u|1?vp_T
zcG$GYZj}i)x%FI)qo7&fN}G$!*5*2^+J@xjz}a36AaHUL3wxdQE>YvvA}hQaAcu}I
z1YUtiby{TAsWMYBtmg#|R-t&N70<%qECMAIN|GcqU^!0U7%s;Mc_u+>6mkuY!)p%$
ztO+)|ri5nJY=NB?sgWeN2E#la59(2%yiko1YPCAVA(v+YM5fr}l2~u1OH2tf(41%$
z9B#?MyWkKbYvCIuEdo4U4Z-O)nbwJ2;##6W$}lhM#t0P0oX${OD`-(F;r?@DL$qja
za&uS-C-RMg71YC?5>^JeyT73j5O|~6DL6n;*m|0`Haa<%WTdqSxIt|Wn}#7th9F2K
zPRj8tiXbRGp`;ZmhN6^uJWH1!=GaJ=R!{^ZS5ve?K@$Yc<O9K=l9RZeQ7F|U6V^4l
zM2U4-xv*UauuCgQgHBE8@2jiP3mhx)f|=**!yQmu!%Mta!@FU9sR}l+R);IJ50z&%
zTAC9aFL5?T;GOVFel?B_>@&c>d*jwI3{9zZI;D=1s|~mcS<|)spPXU987$Ns_cTlR
z2y|dbTyK4_SsxzG1tvxSqcJm*J_bP#Trko)v-gT+DHzO+NJ*L58x<ABB=+{~lRdAH
zk3l#wmgwIXQyU$<ry@rgAN@|=Bgsie3*L`Wr`|n8Z)rF_)EcN_PM_^MrF<=za5%W>
z&83vDHr1om`?tlmTMta&fxY_MPgydmE=<=xbGqeLFUc1@D_;Mm9DYSyxH<m1OeRYz
zez3c3*jq>qmAz}~wWp`0{d9Nn&fLYhsn5!XM@L<~9Ub2%bXfKC@y3IJJ^eo4RVZn|
zGdGn?lINq|NUf--$Qc<K`Px5_ci7urF*+0oyd6FLY4cyd5tk<Bei^KcygfTR`|xq3
z+t#VbJF*#H1neh$#>6;^qBi@tzwlOE@K~QL?}Lm)`0<6Ai^mfD3q?iyTfdv{#46Di
z>T~z?i1EI@zANxQ*8+#`oT^<uF(de|B|Mo;K}p4CbKK7#*6r5r*m368*~&rmhsnvQ
z$l-@hls0_4v~$<4$zN}Ld$RMK-+w7qCOZ&Z`uop6S|Xy`ecd-P^ApSSkuQ#Xaan?U
z+q#ltr)Na<z}5V$t!XvONaQ%ba4u3?;O}ZV|NBsRy5&fr6krYLM?JyZ=85fR3g0{U
h^p8EMKHsJo9O}RP<)X>*>W$D}(r756`}3<>{{_N!1-1YH

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_1_holo.9.png b/java/res/drawable-xlarge/key_hint_1_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..df47e7b7c9643d106393b1a9dcaf2ab9c6f52b59
GIT binary patch
literal 1298
zcmbVMZEO=|9KSJ{1A}aY#7-cbH;GJb@1-x-UfPki*JFjX%(iMj81;62x?Z+>+1+*R
z7SbWpOvNY(I+jQXFy{w@OAG;$;bg>&SY9;2DG`={At8}PXJilv#`)aVPCiUOc*))K
zf1c<6`~BbVotEg<RV$xdi6F?Ta1$GY>l5&`R9C@o?ap)-E_FsIX~dPZk>fRh_)|(N
zK*JK>24a9ub$1ql7eOl1Vj^iIBh8GUNH*TovE?Ndq7lTqC9m>AJ222z&?d@0Z06Ky
z3>8y8>}6+!h^Rr35u1865bud5gr0W6lft$%qTW0M2_#_fXkO}&btdn_=6M+?o5whY
z&Z`*hK5W6MWTXWRDjGnYHo__pE&_FtHq!2(Y5IATB1i%!D4e9MB+b|<h9J<=gF$Or
zD$T@Lu4D`Dd|1XXR0hX$xtuL$w<%g1PI^2ZlY^qHP{XQs%Lbpf%6fg7fd#stiK-zg
zGHNpNtxDGLVbIfs5F|AcStOSAQlenW@I0^Lq>aEO$&71WTQ_3hA2*iN))U<-z+*sH
zvYG(vk*+U;VebChkf{j0VRmRDEDGPjDneEQvJqx|7`(Bi#1zBPG)I!OgP<wG<t9mY
zkaVziC+BuMf`rQ-D03`@W$kW~qdY;@Zf8l7<pNL$IVqY5a(0J@=E~TxtQ)*6fU;c?
z+AU#C$iHKmpaytD(GrT%QSN}2jAAHyMp4mV+=)hbL6ptCS)PSxS)hqsAjN5lgwE%e
z5tp#fLH{0(+s|>V+vE2;{BFt<BAi$WoBBUF!=W>{*&GiwOZf<PpeZi4KHMx050K%+
zXmB)omuKEUkcvQ<^(XRICSN=wy-C!}UTJKK*Uo(ytSmmW;gh$&j4i8vy097iKD_JL
z7(aBUhz8eR$0jcAK9liY_;#eCb~$pWW?80ibMMYaJNuuS*wFv!`Jc2uSKOXk5q*4e
z-JY7xHQM`x=kRmmRCP~RW5xq2$10lJ_cyHVyV@`kw;Y_gwBE9J*T!3;h3N-{qo3XS
z=vr~|$oI8B9=tz1J^F$7yN%*S%h0_C)BH(C<aYD;4fj|2nxE;Tm&Y4kNUojOe)YtT
zuL<L^BAV^1%U?&dx2)&?h;RF4;3e<5sW0l^i=DfF#Qn<Q3xA#P4*(akTF3>Ib@`k7
zyx;WpwapIH>7O45>i((M?hSr?XZFyxv6GwZcYhFjpPidId;F2RqsPv^T2(##E)rUO
zz<PS5Yhv)X?dmn{a<njY<5$b6q5jS6;2yl93K`ov&`VvMOq+kHa45=-1YY0$H^+>}
AYybcN

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_2_holo.9.png b/java/res/drawable-xlarge/key_hint_2_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..bea76f3f28d7a48e66f3b14b369cbde6b0e5b948
GIT binary patch
literal 1443
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqRubTe`^a4|M^F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}z9wRFR)*UGslHL)bWC?r2W2bKZ?GV)9E
zi!<^I6r6)i6?_wuGxI=vQ1n22>ylcOS(cjOR+OKs01jWPOf2@h0o{k}Z$~#b7Yj>A
zM-xX2BTH8UQzfY06mr5$ALtl;P~t#JEHEKp3Is9XNgv38XP(qNV2&vQW{rD~SH5Im
zV7%<<;uunK>q@Ah_hAQ-ecqG11a)3qSfG?K_pN`y2mO+13LZ<H#p|2>@{~9ZhIUn3
zPbt&n+get1`bF5TknK*htnaVZFKScq-6(4F<5$(r-S6+!e!nX_J;><X&Xk_QKl@KC
z3Vf2o>6+}VWA#rbs?Yx9pZZCQnZM3pTW8@>I_b}?MJ2PBs0*ZX%yN3e%u*tFK>wK<
zzhL@QI}ba?3W>s-o5L0y_iW3Z>-YSa$ywn)4=V3zPw6h&`Nv0?v+Jc<$i$ZIx8DY<
z$n_uhUwm;zn#8fhjS+j=&6<y$wY$2*NYq4t^P0?Y%eEcNH{O4(djGdB{?@kIhFp#4
zikuGjV-pw0tZv{vP_{M7*6C5+_TOw@eH&)B*_?cS|Fqszujvx(%?EWeZG+#dL|#yR
z&9M4vmTkhdUbn}5uc8}d5?FtqRqakXyi(<B)nBg8*=N&uUsYR3`p)Y5bDY^R&vEZ&
zhnjikpRaEfkU#wJL*VsNc^Tuv*y}4pwDc<Dj#S!y`;p8j{m#$y(v~@?k?9A&J1zXc
zbkMhS{{`dY8bwESBR8eA{o=BkE0_9KJ(h8XCBMDchrq?0kKT#d7x*Z6PKZ&dY+<cD
wBCYM5uuAsviRqs{t)BUR+D!M9b9Sr}40W9L2lyT)o&^<~p00i_>zopr0DMvlIRF3v

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_3_holo.9.png b/java/res/drawable-xlarge/key_hint_3_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f8f89d50507bf52deaa0f79cd3bc110453f788c
GIT binary patch
literal 1457
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqRuH8ycEbTKw|F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBHNdOa%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3Wjq_1UxEUB2
zA9}hthE&|T5^C#zC_v<Gw)aP6j|7E2smI42IVA+Jo0tD@;QXj=F>{6e0ny27J^xsQ
zZ!9r%yfo2Z;*1xE7!EGX+9-d%{Nps6`64SAh2x7Va^vs6to%N&T5(EHr+|~Hr&59K
zdBw**OIUd#qaFl2OuzT=hw#(?lVxO9wCM<xOn9O6YwDt#la{mzoaSh?mKCUC2sqj%
z-#I5(=W!H|y~Bh%jyqWP3wTyK#H|eJ6Y4y&aarc?4+RDi5^KX=FN)ByV|nQ4;-`_A
zqQ7cY-j}MqlTstMf2^o6pM5rN;ewex9~RHwaG6c<qC}X)G)0?Ux5F)8WAwHkT~=<v
zbNjV#k@pOye>b+o=*gejH0RCt-{yh80%jC>EDBp2=70I+7fG9PnddtLG~R4H9o}Zn
zW<9B><g~`hw`I3ql<mGg*Uvp%L^X2#_4h4D{N)zdFyt{@_2$XudCfDM=l0g9xA#nZ
zSH1qlxI4ae&xdMPhOgT<EGSawmuw5%lzaP=jsM5m`6)&-g|C;+|Mc?@pW2t?sE8{Y
zT;0CR@LGDVx%xxp=9_ztD1BO9Su-U-pvU;(DZ935As=EDN-QfTYn809Q4q^{QOwnO
zBl^fQ(>7(3$9s}H9OR<DCF|Js?EG=wzxC&L+gd-D$6bNHL=qST_y4Nr`|jBYDnvb9
L{an^LB{Ts5@WB(3

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_4_holo.9.png b/java/res/drawable-xlarge/key_hint_4_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..feaa88ae1e2ea921ea77e1153eb5c228f243a681
GIT binary patch
literal 1412
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqRuH8ycEbul(}F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zB1=@v2ua$FAYGO%#QAmD%4lD%(WaO9R
z7iZ)bC^!e3D)=TQXXb(Upy+}4)+Mzlvn(~mttdZN0UW+onON+11G*2{-;Qo>E*6%K
zjwX&4MwYGyrb<w~DddEiKF~4xpu~ZcSYSfH6bNF%lRl6G&pfGlz#LNq%o^o#!afWP
zj9WZi978H@T?yUq&txd_F590;F_68zSf%hQe?fXep`ziM9zGsFzGDV2ALtaO8vbGQ
zaggyTcv8PZK%C8|=d$Ye#rr0O2cN%Js4(NklilCey)9q=zV^N7k|{h4D#<)oDkk>^
z^XG8)Zq_w(w>5j)XTR}J{UmKxD{rv|SKmpGREk+mnrBE~IAWM+Tci{w&>{QkYIO^T
z=#`DrBj-OW_Kk56IsW+L;}oMx`Chl_UySFef2?S``YNO~Zhd)})>OZ%F%oS}b*HX}
zc5kb4j9VG9u1TT7cf#RQPuv8=kNmCs@5HgueD>LS9*PM&Qc}0qOx%9^t@8EK^S0+-
z3$0XZ->PH2?_<{1Dp}Wy?u#$Jc-3jqw?8uPNn@<&vRMUdZ$)Hmjmq16^GlBOv(G<s
z*M{vrym0-Y32Mi;@JyZS_k3;K`uoWWvRmS&oPL^or1Sl6{mU=ESmq1qo?6=`ct$Bn
zys*JShOeD}MX{v>Pu_>x`OjMIcJg*fy_l7JrCBgU*In1%O;Rdgn%fTbb6PPI_UH&5
z?UMf6e{0d-wY{4srL)?s)l#d?Q!dX4ymdBT^;GQT`puTUmu`j5XX0U)>Tz1ZJ;Y@u
Ps9f}P^>bP0l+XkK$zb-F

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_5_holo.9.png b/java/res/drawable-xlarge/key_hint_5_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..b3635e01e5dbbc4a8ffb4e0647a794fea9c429ca
GIT binary patch
literal 1427
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqRuH8ydvbTKw|F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBwZN;_%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3Wjg&=ajxaDV
z9`<x`45_$vCG@P<VF!VGo=UtXE-LJAS9VnBKU!)lvZwRH_6hg){$ltlX4AR6X}yA-
zBmc{#3M)Fq_3a!Ms&2Wc5}Tf)<n8k-U3<re(oJ*Um~Y;EKgYpKlfi*Yv0+}grO7sh
zYX&A8k0o9>zv}cy^_l<ui-HzRe9RCguw;r!qV`i6_S7c=**wlSWd)DtaCT2FUS^fl
zywF%su)U+>*_0z|-t^8{)0?(=XKzL5-^CYSY>HbyU;AmK-e<3+n~t~4d;i;i*Sh15
z0yaejKX@%8rfqedd@$j|oeYzhnm-F7xGc}Cs-7m2+2~R<TWx93%PrSm@2!|u{(9Ft
z#`%rga-NwydRXw|*8A`47inDby{vP4TW!qhtLrXKXPFTzW%Yq&PXp7e4&NhuN#Yyt
zzb(68z`p5fmh7WDi@smknkn#g%UjQ5F|*F)xP`9LalN(a;>!}f3(prg{c&0taLm|(
z^YDj-QETNE+B@u7Y#+DdZ)VT&$JNIR^SX{EE&8~-Y<KOkRh`dn@_tD7+rYZ?UE8IF
zp1<9_ru!``eG&eQv#?0IupwflwZ@bC-@Com6fKcfdvAXtLu}=P_E(#-=KcG0dP?j+
izj#5xloUNXRtW~Fj=M*`8wxA~6_cK>elF{r5}E)lUJ<nb

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_6_holo.9.png b/java/res/drawable-xlarge/key_hint_6_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..1345980e45539fc524d3414533ace548f5d382fd
GIT binary patch
literal 1442
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqTEG%#{<bTKw|F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBwZyB}%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3W4YfT+QyCZ-
zFL}B+hE&|TGHt*2VF!`p#nUf~WOYth8uXvlaSoTO%pc|`E2}H6+k5o#{xS3QDOr?E
zfAH+mMvDlm-6@=J6Bc&pigurz`~8%+rSmMarJ^<!KMTui-rYU@eJ{75Q$~xx!c3{g
z=b>g@<%`xX49xBAJ(zm+;Sb^S|J7wgP6)AeE?V?Ku1-c#>_>nOqtC^X7Va$$Qtg_b
z#S%CZ8uDBoG;TT(G*6f%&&yb<_t@0TS!O&v#~&XLT3OPRFpq0p1@B+C%{NPU4qLqW
zTD5)Gy5jraV`bD&<povRHC})HHJPD$UU}@=u=gqVw{P)hofp-0xgvVnR({!?F?s8+
zX6^MVmOXCi+Wy5=Y=Lo-pG5NQ50g%&l<mIz&h~jtfQE=(_SRXVTAYVxaQ)NnTld;-
z%IT-G9~S)Z(KOYbdg|h)M9zmc98KjFC(|}ZuQGC5eDV09$W_l6^NJUV?EEWxdt3Yy
zrRKW*|EHXPetv1xo}`Tx3di?5%v|t0vXkYd{Bz5Sm)=|Vlv>T@o*~k7`|UT$Rma*Z
zKO0SXU}(Pf<)@iiQTIchXbDIiYF7ENq+n%&=`#)ij^NAl-S_q-s?3|4WvVi<HTkud
vh}^V0J0`~;IcZet8_%lpZaa(9SLFi?3NdG1@jvb_0+pJcu6{1-oD!M<y_yXr

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_7_holo.9.png b/java/res/drawable-xlarge/key_hint_7_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..437301012837c3d722817c55090e0bb2d6df7654
GIT binary patch
literal 1409
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqTEG%#{<bul(}F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBb-}CG%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3WjRyxNykTHq
z-011z7*cWTO4we%!v+H1{JSTtP!Mu#YTRn<Jg=d%wWGJQb>{LD%^_=Y6c+Adn0U)A
zQsA!D#*&v#MkNhLj)~7z*4~lZ6r`e4`}L@w-TeL5^Szf&X$jKeR1|q*CVhC`BwZ7?
zZ8xkwT;3*A|LEs`m3E#t5p0@i{hdlCq7G}G9BYW`NOYH3c)Y<w<4H%+#Hc53=ZfdN
zPFlbByoep|Y!k)nahp%32o;?>ze@hh^Uu-uzso0xFL-U0x$4Q%Wv8Eh3gi$>i#+z(
z=J~qUamL5^mR)`s{Z^QlJ6mGX8;vg_F|C&sIMzL~n3gE9Z^d)vR@;j6f3|Tg*tT?$
zq{WNY=au3H8zXe)^%mYdQGB>Mq9puaphf4R7s)nq`?Y^ZB+8e&NmutVY6TZr$lPnZ
zmN~2Gdi)I4pX>cHRIkr`Y%$%yZuZ%EXJn?AuDZ(=sj$Dg`QQT?CQGT_xT~KP**5L=
zoK(tq)%VNqztRSiRCc<1b|sveWjgDTY5290DXkABA7pr|=zUq|94DeTIf7l}eaPIR
zD;6<HtP{T;iY&dfA~i1Tm;A=fQ)6zQ-9K$bnQwmck#E~smi!V+U{H0FzH!pp(+*T9
Ndb;|#taD0e0sslu{0{&C

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_8_holo.9.png b/java/res/drawable-xlarge/key_hint_8_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..1bde6d10acc13036cbf9511b80493680c65a80cd
GIT binary patch
literal 1478
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqTEG%#{Daxpe`F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBHN>me%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3WjeV2%*E29M
ze)Dv345_$vCG@;ElcUJJnWln*pWVBb2$b+zd6jUAxLA2@?~9y%AbRdD(RnJnO5X5u
z9Q2F(^2n2uMPGCt_nuC%6;ogPy+65zXWMG+tP2O8-=2H(=d<E_ztcF9eUw@ZJSTD3
z>2C^@>)g`fwp7)O`=3sg^*@)N|5c82ZIR#+SlD#LD@kUCdYaZkwj)ODq8*_J7?kVG
zav5!(N`2&NZ~d;gk?F^?LW9Xgj;7zDyN^Dadi$;2QA5|jIO*PFsY(-fJm+3{OYH2V
zfH#vr|NJ8;RBknwYr?%iuh@kF8i&P~eGcKyHJhDpQ>Zfgtlfjnt5&_Q;WI5wN$@lI
zz!}ycykXwyr$$$^rYd?Z4N{%z_15vf)PcVLesiq(mMmlARNb&$Z~uLH_O0?4<Yf7d
z`<Y1Hy?*Sh#&WA8hiCYx@#mV|4%-{IztcrYeQ(@*RSBMX%P+s=-MoB7Vv@s4GdG3$
zLz}X<-%hRh{<CKF<y9$5LcTDDC_TNJpe@3cF4zBj(e1a>5~JtsjmwXjmYQxMbFby2
z{{itcvOb&s?<hLk>ZK#LJ8x^$_Ojiz<^mit&he|mR?9lPDP}edKDBe|ao?1Od{bH5
zzwNYc=bM{SAL4gRzgsi?v_mkjujsQsy9(T%xIMLa7?M&|chS1&YhGR2HYK%pI~~l#
g`}>Msx;HQ~+zfb88NX?!8K`9SboFyt=akR{0MbJeVgLXD

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_9_holo.9.png b/java/res/drawable-xlarge/key_hint_9_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..61d6f5518b2ffb38a84ff5ae67daa367bfb097d0
GIT binary patch
literal 1443
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqSZHnB7`cQH10F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBHN&gd%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3W4bukE00sue
z%bqTdAr-f-gc|xEauC@!EqK<pmMguH=8vB^$o44nw4Ic9c(tN)@~#bE*=I<EKhBHc
znB8(T;P8P(`wt#)*_F8DK;`;<-h7uI2_8J+ZMW`v-2U%B?tNb;mE4mt>llZkRE&P{
z3ybU&R%dl>8Iihay2t0I{IfrKu+ijcqnf2hnb2>oiBS_@$UNe4TC-e6c*f6ZE4><)
zoMHVarKCL3y<=k#Lxo<0iok^@1+&gR^WA<swLyVn-m0sw#P;VGuW{b{q<lZ~imy}F
zWG=pFQ6}>|#X`o8pRM_Kj@j<_mG?x2f~T&#b~)wb^Uv%XUX)msFAX{=-|LpYEK}~+
zzWtq?FCym0M+dSO?Rem59&&z>N|8X$sizf<t{Wr1y!!fUX6|jhYaWwjwg^}XPt%@$
z`nrunLgcl$g#i{^hd&6K75sI+^Lepo`niHD0XHr@*if+SZQ1X}pjpMS<<r;Sx3v4Q
zJNYRe>-|UV%KzBchP^iGQaZ)GGg;zT+4}3d9p?KR{BE7Cp|<X7mSx<Y;2j5<_k8>P
z_p{g1BJGK*Pcmh3RH|fZC@Hh{?hc-C{`G|jv6&H4k7N{sruj@tZnJ1rzUt>$mOM#B
y=cR<FR>r02^H*m4TKp_?rp~F!6D)s<Brv4zd~?V`{N^!GvFYjR=d#Wzp$Pyd5D;1b

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_at_holo.9.png b/java/res/drawable-xlarge/key_hint_at_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..f422a84d66023730d862096d9f5390ae76c62450
GIT binary patch
literal 1594
zcmbVMdr;GM9IwJ~15w1cW49O`L#1uf2Wc}}u1#90qtGjzw6`jhHnaiLWNCoHG29f~
zfT@R0Z*w{k&kg5%>p5RIPd#4~hp!$RUQv*#D2|DT&dn`F>iom=kL51;y}qB%=llAl
z#*{fbHhN05Kp==Uq~m6OoXEeEUX9|vV=4-Y`C&4rvvS#V0axl^34z8%=M#W|a<~aI
z;c%6GaGFRJ2qFqdi<Pq)Gf*c@i5wvtk)L9Cv_O!W=4TwvB7y_*2{-9gf%gs`0Rhsb
z0(0a>$jD%XhfFVLiR|)Bi?h7QsdRy9Y9Q5*@&pvYIRHPk!0SW(DsYe&<>#SoF$fHr
za78NcsZ&;?3BYKU0OTS_=!8-rAO#k|QW=6E$$$icAu%Ko!xABkpi&76LBP-h@@lNB
z05#+KAuWET0zDkZpki@pX{o4GDxz7p7*;BkAr6T|$Xf_~WnRwV7kYiu!VEa!bFw7E
zk+c^GF*@?;Von9}o<0qMVvNRT#9rS}qWF}F{SHP9iy$#Yh2k2t_Hkz7KQ~@z?X#3I
zgxE~@=wjB%*P~!s7|iGH<w7At-WxQFCHbN_7T~nAm?FHK0at<iiO5B|P(6a^VHlA?
zhy+Sez_0>?Ww=zXS14o{l%mmwIbMXtrAj3NV^Uly#bFrNYx#*zE<qqnFO?|~eHd%-
z`Z$NzNrZJtUUvv9c_|jfSi-^4tc9i*gge0Gp*h;;p&0<nmIFqIlk|qxq4GS97AIJ;
zgmCFungRy%i;^$U*Yo~8AGb!Y#}!JAMy63nlsZTb4q;vYCud^b8F8pNo@<uy7T<xP
z>9f}77tbya;pJ}(%U=z1rM6Wd7+z?=H5UIbhvuH&V%Cgn_APvHsv>J@ZPNV2YuJuB
z_VV@mnD-wdk<nCpdjD$bJ9k}!ZfpA`?S^X8tci`<IAIkYhnoVTJ*#pq>24n0=PT@n
zjRSw$JrV1rrM=hQako5bd83B<HGb;x)zfP_%D=+Ck=B<$F7gxX#Cq!6&Lep9<2{O4
zQ{0B?M0>04$(^(|?)=*`P4lqin7pnD5ntGP5}HOG|14v}z4s0jbS37U*wOOw?G@4O
zfs42LS6OC0XzzKT&QIChcE`EXT475XSNXFrXGFf{wWa2>H`v)<W^~szChbGlwXC!z
zmsCmBooYq%oW;!e6SlJ#o9eA2?#QPs-M-~=;gx#>X|uulvGW3S!@Pr6D{If+e{^VV
z`t+}lUdj3~-k-d)Vb?Lk=N0OOqfhmYj9Q%4>glg`ObYV4@RWxY%~-neSZ7~?Z?7Wf
zH}{2@$l;@t&#uvO*|yaK2d{eN38QlHji+6bs<B3;!P|}>+O}!_cI3En(#Rz%Pj_MV
z+(pA$gSp8Qf=$zr6^-Ze)^taL>W{A5Hn!f3Sli{=Zy$BCv+uDfiHq*Z+-xa-m$=m{
zh?!GYJEll5I_X-;?l#$(8-EmyTzfsSBaVq>CU?AI&nt7MCIr)7_xvzI(G=*}KX(fe
zDBPR+*5UbE=jI-LGUNM!&FgOCKb`vLz=xjFT`iYptvcg85?p^lc2}g@G)z}Harwz$
z!(WiFF|uq%eEB&8muR0h!@lzO;P@*~x(_T5&}`qXj)YI&6dIVk-Ay)TSy$#V-QBv{
x_~KrCn>nJddmlosxF6LPRdX>IpK)0{EJ~oRLjUgQuMUL%<_29RzD=9A=wA{vTO9xZ

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_colon_holo.9.png b/java/res/drawable-xlarge/key_hint_colon_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c769bd9794e7675c214947c5da7bd692760d32a
GIT binary patch
literal 1219
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqSZGct2>bTKw|F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBwZyB}%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3W4YrH5;lOP5
z+0(@_q~g|<sR#KEDe$yKA7MB8*lJsGGqHbT>^Hr6dl;wcxpL0VDPAyfN%Mv`i+}&*
z_Hb$FU|~4%c#^MYf51Y`6*o-my-t6edgj0IIleXf7tXwDxKXo{F+)7&fEN?%nTJ2F
z&SEW^$^OH!sx7iI{d?XEj{Mu-Y<LduegAv4PD{3SRH}+(`!NZTxrN*k_hiE+-gBSW
zclf7);-B(&%fn(?%zcYL&APv9-ENUacQfU+rmgpT-u&44jEURKXYGlo+p6=6jV$L+
zZg8mbdUh>zMaUf&Df{<Al4euwr|r;rHmUm5r&TjQEl-*{+kW5I?~@AM#40!p7~Ef%
UnzsZlXaW^0p00i_>zopr0L>(zDgXcg

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_comma_holo.9.png b/java/res/drawable-xlarge/key_hint_comma_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9689adf5f024d6691d2558d6aecdbe7b17539f7
GIT binary patch
literal 1192
zcmbVMe`wTJ98c{K*R_mcv2`k@=|nnq`FXkAg`VBr<uVVw>+O1Dg$=eedDjbV^0MTe
zmv;SQt!^j?+teX45y1`oOHdGo4!ch0CL3M%$GV{iIv5+J&ObKnMBIF7d$oU*{$U__
z-}m14^ZEYHfqd?jriSMm2!d$J>{JSPZNYEry0!TG+(@Z{myIahi+W%QRW%n72?O>4
zGGl4|pa3*u=$&hzlOXC#X0aFbW_Qavv}i5Rp?%B2XoBeM@*Pbd0Ep}Z{iYqK?p_?H
zNYjW@uZvkW>!d*0+&S!mp5a_kA0E(S2GzBL?DS<!U;(6&zBOojvLC1Bd1WjI#|%Zz
ztDu26wcu25HczIY3rLY>LpmE_$p}YtLRgZdmq?!FScc^pjt_B?EbubRl8X<8t+_@?
zE-31vExe0UWrQ4=VXD<CT@`5P_A^{877I9dK7=(w-jIznKV*CDH3kKEx@$Vfgf<y4
zYJISR;uQ9DAq30GW|xR<Z!u9gWsI*m3`et!Wd(7~YkQ~w9=oxkwpSc-08;=SthhR^
zN2$FA#<^SFP@sstk-J?J7eyOXpkA?njWSA{!Z);G8nP-$D#uA-R^r)6l;ff)F02Tm
z8jXfiY$TDaajb+@gjiA$)2t#03dbpG5({aOm)MjlgkzFg!)9y`X|@h(c1>(|0jsF1
zV&#+zGz8rugoCvX$d@64UKu)Msz)TVnr_;`J}A#Zv<h&|J-|?1Xp!^zmCY6GtJuHg
zaVJz&iN+F%a3adb(yT}=VvQ%s8H1f+g63G(EVU!tfq}Tx`gpT6Jix{i<KoeHuQ+ud
zkJYakB~kRR&wet|beU{Sb9d^%L3*lVSQ|g{Q~mmXzWTULuAezO@&0$G_b11WIQyG-
zZOHxB`Nrh41jQ3CUv1sz@2Vf`Zh5eG?%cz#f4q6&Uc>D4{kpDOn<m=q=#JfX`<=uW
z8z!IL{L4pwmcRLY&1=!hmXq7v+|-A2T(dd)_pv|Lzu8d{u6}ubdhWCQ;m|g>?aH>N
zrmy!${*U~7_r}9xn?ATbbNt;*$JT2<+-UBRM_&}So_a8H^!KB!>x6XMtIvG@^P%zl
r-j?qF#wI@%PgF16lS1ORm)0~Aea8>K09*fhEBJS0(mCZ!^6jxl0^5%-

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_dash_holo.9.png b/java/res/drawable-xlarge/key_hint_dash_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..2402994f0f02426d187a5a78d42e82b5127099ee
GIT binary patch
literal 1191
zcmbVMTWAzl7#=sEK@+SG8Y7L46O{_i&SfvNGi0@sJ(;-Z#&ombY6P9koXt*?xj1v;
zPJ*^HeNw36C2vs?ABq<gtv-m9q+ap*Ac{poTfER0twkuU7fR10yU~Z>LkDKgf6n>8
z@4wH^_O{mAnG0qT1W}t_4YGKx!|(j+>G(Tmd!Y|6^{6F}I_v@}sV*dB-R^>9+Elw?
z7OHyx)*G;iAgT&RE|2n=wUTC=VKvYR`=*1@1ktq0cT}whBC-p18&;Bfd2xgy4LwP%
zk7d}5lY&KK^?(aI2HJAkK#wNs)T)(alP_Tc6C#!L&0fos{3JEbD`7b}W+-x81@$DU
z38(Uzb~0tVkc@>{T4UoZ8Rx=WBq|8P3X*3zmSK5@<7rNiBD}=1Wci`6HCHc4S)i0{
z;a!p{BIHO6Q!16hrAXLzyBSUt#ejq7X{<qe{T5Pv+VUDJ3;=qXYdFZTEizzKyX-!c
zq_C$GA(&1kGf8ZD<wW6>F}~_BT$p7{Gl*+k+e2CS-i;}>y<EQonJo0|K3Bu_C^S~U
zICmd66ewbEq;;-=i=y@dTkA8Sh0-8N;hV5-=#nA`3dadiR^Zuqg5we?E(#(sC6S1x
z*tpzW;g|{wBBBxpvIrs(z;Qrn#zISs7ub{%iHd?!!KN(_sg?#Sb`5N|j7@wLE2Uhh
zBHPW`c5kHv+KV=_y`t@qsg4+#Q8mK~_Ca|jq6N@3wn1HSZIc|&uVhSNU%~!;7`Ln_
zAR)?fR8H_>3mc=#SpEOxjKR(@L34c2ER`eNfq^*L`gk)rJkY`u<KodE_KyzYv3i&W
za?XGBeCXHO(BhhFoy|Y*Y8bx0boi3E{mFy5W1)qA9{+CXvA-FAaObsUpFVZp{qx7S
z*(KEHAVfUfdW*f+h^ng^F26c@zG2Z9{~mN!e)DzbS2b4MwgnG{+TZLmz|e;7^`lB`
zw;X$Pa??*Qst?uQ4t;t5^rcjF>+fT`H(!}Q`<J&rt_Z#SY{s-h?%leD-ygW!)%q7L
zEdS*3g$-w(ZT#Wb^D!W<+jld!<;}So=J33ECq_p0%y?Z@d*rNto~CzQ&5!M;XYbv?
mpIh_n@R}EQhU+_jTQ*AQ?~3_ZuaXCXUq`y74V-G;GWZ{wMvepk

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_equal_holo.9.png b/java/res/drawable-xlarge/key_hint_equal_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..89e5084185c30fa498fa8028f545fa7e392d3fc8
GIT binary patch
literal 1292
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqTIG&giMcQH10F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBHN&gd%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3WjaOD*r!g=v
z+IYG+hE&{o6S~{4)j{BHqPz8><u@+>RK61S@919^;luhr1WioL%!I6@wXL<dO61Qy
zIj6?mc>1iUkI$Va8(NOfG)_-1KTy4%;ehtihWFcLI?pU9ljyuvs1Uzx+vD&l|9y+r
z9jK3<=3V$m)Md8Ty%f7P`^9yIdAcoA7A|J+dB!m<{nCSLOb?o})b=XHoVMlIs8}Pk
zZ;{TqFu9QA(9m`h-}lSyx8znwiyYm|vir=mb+6;v6Dv%PWt@`Ra;-1n^{%?<`4)i|
zsl0l7Pi%VAR$yK`@A=Q*$Z7J^L%cs+{8sz_(VS`pl{Ir*l@{gBdgiMWxpqci^8{Aj
z&?Z5r1m*6N#^K%8TmQPB`Wv{Y`^1_Fy_>jBg`XGCEY4DEUi$7y^MtL<+}kq5f(w<S
t`<%X8Mwh+(Q+WNqrtz5@i}tZfF!0n*7jDsFdj%?=JYD@<);T3K0RY7N!Il63

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_exclamation_holo.9.png b/java/res/drawable-xlarge/key_hint_exclamation_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..f349538182a67daf562749767b2705a3a6538b91
GIT binary patch
literal 1278
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqRyvUD*vbTKw|F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBHNdOa%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3WjTx*>z--B=
z=jq}YQgLffsAFD>0ne73OYYyi|E1ja6H8ry3g4c_!|RSLY|lL^IBQ9v>6%4ms*!?O
zCtCyz=UF7T&n-T3rmrL7o_AF1#Fq@KUpNGR(wN&<pIBEDmGn&XNWILqV#!Jo)>Ugu
zD_F%HwDk&$nO5*#>-j1ibHHw|bkFW0z3f$)v!3sJzkJ>6xW6%vt>3eXH(a(ke`waU
z)SU_HM-NoW9M|@nD9`BE=-ns#i%&Ay?n7@^qyOcS$(>uvSj%@h2Dv_IORR`5<<?Bw
z+`lc-BarVC=Q>84!{Yzv`-%oms*Js!u77m<w%quxCo)&Rzm3ZNt*l!X9>oyGdUfZt
z{fs+2r~co&eL?t<E1NcLY4rLuGe1_$v7eLqUsjZ1(V;yz?n*L;CmeQ<DV519=l5%|
ctmQOdSSCK}OH|3?<De4B)78&qol`;+0DSSbHUIzs

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_larger_holo.9.png b/java/res/drawable-xlarge/key_hint_larger_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d734369a2539c540ff22111f46c14e6e86b58a9
GIT binary patch
literal 1317
zcmbVMZEO=|96tkewPrfDWD{J%<*H`Uw)fJPYmara>+PV%&ZVodA#B;T_jJ2$cUSJN
zv|SduvA~c-K_L6Uz(Cj{d@&}X#+QV!eLzVJvw|5+)I^+#(HI>HCN=fBt(|;W_~0dX
z&;NOz|L^yIzt=iDc2rxoS`Y-O4(((kaBYC^lV%hAZXQXd;j%?<kLg`XQqS-zKmvji
z2WUv*`#=QnLT=CJpcz3nB*kb<kA+`i5{l&D4IM{TN<lP&G`D6`d}0vjXdLv3vLE~H
zlS>#X3V!TWcbEvLf}mgAIjn-N;f`oxcrf7;u+|o|Im<u-3FthUm4;-E$@;MsUIxm>
zF^-`tD*B)wTXiZH?nHx%3Q)I$uqOx)fqF;>>2%RFZ9^%7ByfVlNy<*rjFVyr0xdrn
zw5AG4Cc<)MTX5&c`gJ|U;CLpJab%nhMeV~$pU-D-P?Q~N*tMLj^I5yBSt|@I&=RVc
z(nUo^4Msk$q;)?AJzWh!N`=E~#IjaS6igYO<x@E6AaF@C;#$$x^a%LRjdiuPXf6ft
z2+)+Ynt=64S}S0fyN4Sx6rnfF%c=;A!Vj@ZA}s+~53zm>-Z%tNU^trQNRoCDG(~v4
zB<T&3F4pPhyk1w3@C4c_9P43Or_V!BoQHKfS(0SAHYl{aDVhj!PM447D%g;$>Aai(
z6}uv|TgJK{ie-W-;B`ffD#}o$13LQ^UD5iL6dLSuqhUTF%EsO(&uX+RP{qAK;8aCI
zSMtk<>)7X@e-FkT;5gRn3j|yNFXd||+*lba{GXiR&>7rljt82has)fj5Z78CZq|ke
z$Z%p*I2zYmdioILkyk=&Aey}uFP2KJ8?4qJ@+OmstC>1E`sj;JY91lT`I>h}%>z|c
z-Md>{)m1Yu+}hD}^7Yv9AM;fF^ropJ^MtuLp1fF^j?M0$yK(0GICr@2=ve;jWYPL{
z?X!)JK4#>8YVmAvV%JxN!qcN8k2fU`?7DjB`TK{+Q@=0&bgkj$!b0QN!S8Ng%9o~>
zmXhf+-tE^vWS`l1V%GBW*5vue0;WB-?vGuaJv}Xl$H(WEt{mAmwfC2WH*XgTe^{FC
zRh_@L?Zz>zuI@N8b752C*y0D$azkzHa{|wQS^DeO#mTO>J3aycoHkwkXJfm~bu8p*
zJas3V%l%m@{;lo%_S0P8z2q0ePlWCH-U|o6AtnxNAC43!1mg0v*`n3o-EDp!S&}%{
zT<98$E+4&Hyi)(x9U;#RMC<$C2v*l))KfQSu<*b>(?#>S&l+u)XOWs-L@7*m+qO*E
PjUQL2y@P$Ht#|*w!79gF

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_parenclose_holo.9.png b/java/res/drawable-xlarge/key_hint_parenclose_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..48f9f80655ec4cbe1a18d1fdcd3eda819f09e6ca
GIT binary patch
literal 1316
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buo4{ax^zJa4|M^F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}z9HF3kM*UGslHL)bWC?r2W2bKZ?GV)9E
zi!<^I6r6)i6?_wuGxI=vQ1n22>ylcOS(cjOR+OKs01jWPOf2@h0o{k}Z$~#b7Yj>A
zM-xX2BTH8UQzfY06mr5$ALtl;P~t#JEHEKp3Is9XNgv38XP(qNV2&vQW{vgdKlm^(
zFot-#IEGZ*x)Qe0uhl^0t*+^lqfd8k_{M+bh<wH5Kdp;5??3$R%sGcg9vp|e;}tlC
znF|XPxwc-vlkUaZ$e?Dn^MaVg_ix|kL_266WpFS&#_&7a%&$B_+T@&B4wHWN^2h#4
z|K~qA;b8cIp(<iYM*WpFynj<e6D%@L9!x4wC}`(lls1WZcjd)T2d@irEc)JW)~V(`
z{2{FW{E3St2NMOh37+t~ZRdM=x{7DtuKI;<=Y(<B-j9^X>d_4dy}DT7krqdjbkV8l
zK_9miuF^T3K4(IZ+>2T}Q`5x{0!3u^e|ln3-EG_La%JJ%*Sm^*Kkx;_UjG?0@3UaS
zhuZ&A>a&(r#>(FLyvKXaiO+vJLvHz%6$srHvk}+u2tMm}F(_(b`JCcNk)zFW`?G%^
zIFbAFwnWa8Hzu#WmT#M|av{$R)$hko`qwkBW&9N@`g}@^LH5^4n-{7VebYR^;CkT7
UE5<#y--605Pgg&ebxsLQ00N!UhX4Qo

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_parenopen_holo.9.png b/java/res/drawable-xlarge/key_hint_parenopen_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..f05ae207577c582a1095bc3c5b316083feb37607
GIT binary patch
literal 1323
zcmbVMTTC2P7#^Ti+JG((UTTz%L+gvMbJ@%64lH!o*<q);K$fkbeXz5$XJKS#W;-*>
z?h;dN@sd_jO(j^dqBil;#MDdFmIC&YHXCCkCiJBwY6xvH*xJ~pTH2tVfnDqa`rsrp
z=RfEC-}m2VcWZM~`Pv88A_!701i3I=?}P9CrFXz@#k27gT-KR^4zo>*n`u!82piL)
z02LIm6NG^n%WnS$)FDVoT#j^@9ihh=NmJ~irDM-1Nr*;}x`s?rl)8b5MnR{n`migb
z$1zln`LK3ZhzKS9pi2(+>Y%N+IU@CTOWqjPP><GS7)YQ1Q$#aLLN%C-4_oAAplluE
z7`mupcKfg;r#eEds9)0o>ar6x65%FLH)$swPMW5xQHmf5oS<-$sv&8{K`{h@<{u1N
z(_?Wa%<*|!aOcCiOf$*gcsiZ7ryX`p@5D*3*K2W5R1MUqF|w*DW@=QUs=&YjL(=7>
zDQhZfF^W+wW%@Aa=~4(vG89@SR*ih3V9M}}n8Zmtfh&p?*P^yzhQU8>tf*~7vPpo4
zfuW^z3DzTCRRF`>{kI`Y5qiV4=rSydnBX)ir2y3wI3EUY>@hjU@HEYnB<&<<ig0^K
z(&HzcoWsR?JWfC1W*Z9}D`7bYOR==m&p8|%NpgH66ap@aCj7j^>81GsR!|L7R3%Wb
zD?__^tOfaZEaTUKXli;y(-MUaXzkKW&FIpSsK3pHhD1qLt-V#ArD!>z%RL~*>zaZt
z=9iIIu+KyPZjYPgdCucyStskEyaB?6<*~8<lQSGTgImpUTeB37U<X>_a_hs*^6&r^
zPK*vmV|ez@G6X5wDsXHhGj(>$_%knTvi<n>=!r9Pn@3++mDrG)8{1U55lnqi|FUMg
zim=$d(eA2UZ=9+}KU;I|yS@El1wA~Rer;z<x@n<j;bP~=z`pGh8>Rl4j8JmS=qWDg
zY1}#kWbef1*Zvart~*+p-T4P4g!|8*EOOaOD*E`3rOJ`7X6`A<HBP^k9Ju(<Zvoq?
zBl6IWm&6;v`ghOd$}dc^r*AY3o^tOwIJ-gk-SfoJ)2na(R919o`qhS~=D&V!{9NMK
zUyki~a}qm&uDN;g+E}d_*>c_O+Aj_DfhTJZ41kfR_l>z8<{k|U&#rF^-i_V){NVSg
zA1;T7(yOb6KFH>F&v@Foi4UubABl2<;FF&}Rc^)an%8jpLiWMj^rgC7bn=$X_5R_r
z$M+n}gr}}VUaU9S%k3W>+BP4Y?|bh^>FdP{gSF<>$F8@Qo&R#bUagO}tT)_cmkunH
Z5=i&lx9@BgimbmMA_SVb!;RZ^{S62l)7=07

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_period_holo.9.png b/java/res/drawable-xlarge/key_hint_period_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec330fb6e5fa750eeaa2448ef725ce7bea81d1e4
GIT binary patch
literal 1164
zcmbVMTWHfz7!Fmuj49s0DGG-S5n*j^ZPUipnKjL<+Bv(bdz#CV(>83mn4H;cj-eZP
zdGPikf)65yqC=VD4J-^nA4C}Fqc1)T2f}0`f{5Te+1lyD@WDWGZr}I)m-GKQ*Vfvy
zs%CQyK@h9bd!#HLH{!Q$#WMU|JDBgo!zPsKK<!o@l@tdOqGokNkT#S8%tA%$KlU0n
z62y|cp6fsznf-!l86m~TggnE>Y=UTP@@z%zfe3WNf^H_rndjpq(6t14B$A;sb`lo#
zJp&GGA85^~13hY7Bb#=CMo+*321E+*j9$|fyaYL?E8w}mO_5*@f_f6<yi*;SHjuO&
z2qGamsM1jyM41r7g?XND04&YW6wOi$8)SHaV+EQ9m50RE94#+oCAne?uM%VtAzPrR
zQmGUwaUshoP)s}?_cd5Hh!H`z-$aTRG~N2Df&^XF(QTw#Ch!%NZmSO^NbKo+2!@@>
zEC`!!B~dtKl&9Df6QU`@@Z*|8yC@6)xUneO&Gp-m%0k!bb5wjE`T8mu=kDKzd?5Bl
zIN<2`Qj}iFQu_>OqO_DC@kvP2H9_WinPK=a&9ihg#xSuY6PCD$9E*jMbX07vYAnW;
zxOlS^Nnt!EF^nWP<4G#Q@^n(>!f{@%a?_@Z6jOy&yE?X8;d1}v3P}el$Z~R))myEA
zwxWeBw`kcQ*&YEIMb%Az?O)G)v=Vgm<4}_w%K&rv74${y%h<oa;}&IEip51SEXLS)
zijI&KuJ%7Uqp&lSUmSlGOLYrZpg&zGeY{v`9%$l@ad2zgR-T-|ZB<T7V$OR%edz7#
z5l}nLH0k5zBSRw_hYA<p-J9Bf>FisO-`6|*s_Vj=$DKFs26m^GK562%a5s~&Pjw@S
zi7S)qre;@~TfH~V$n3kBqo3M0oWAv_#t3X5n+%*Xw(Wd>LOlPY_E%SQ>~cXJom&6w
z`>##v;F&d@<rOXE@gDI7^YqKNnV${m9s3@ZTU_q`jinPp{juv`hYz1TynN!y(CEFZ
vAGci#40cakJg9sK&yKyCDt_L3XIG$>xY>|-`5;Vg@c$3#RI7Bqxoh}0HX(y(

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_plus_holo.9.png b/java/res/drawable-xlarge/key_hint_plus_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..770bf5dbea3c7f407bab806a7e3944a3eb792308
GIT binary patch
literal 1340
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqSZGct2Bb1^n{F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0__FrbvCgybj7RJ%DE^tu_V7JBtJg~mI4AY
z@=NlIGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY
z3rj~w6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3Wjc)a8
zTNxM_b39!fLn>}v2{rU<br854`=MSTDKY6WtB!3$>-B~{;Tu&<!u|`~AFzoWX}Q+K
z!taoz%gI}!&|{tEA;u)Xuc>n~&zlWrX5Td5yjzAr;<=1Ovdr=9t_9}l(j5uXU48vq
zU;dbU=D)f{*@JJab34wk=W>PA{4lj>ENZo4$u)d-iQ$*au@zEhvs29Ho{FEP%6P=(
z7{`vuSuKeb^2ZAwR^D5><-16L#ui=X@J(VYo7S&-RbA>D_(o%a+vm*>_8#s!aPg-~
z*CO}Z+upbFWzM>1)%RJeeg38GwpY56S&wD}OnVv~d)>b+F(!Ii>E!1>H?Mo`J4xkz
z?DI2RY4=t-aq9i|dF3j=!au3FAojc0t>-~&`^vADui#kA&%}6@b9(f{<vOS1d@kF3
zt^MzO%k+}t=K_)E%6GVzR_JCrS01?YZT_CxDd%3ky`XwvZ_}l9$-*LyzuvAmoZWjm
vNoQx=v*@{9v+w-LSrTD?OmbmsEvEs)+w|=x4Kn%kLFJjJtDnm{r-UW|h=tn)

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_question_holo.9.png b/java/res/drawable-xlarge/key_hint_question_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..f24bb1c090fb01cdf803c1526ae0cdcf8637520a
GIT binary patch
literal 1392
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqRyGca;>bul(}F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBb-}CG%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3W4L8lcj|>cq
z3p`yMLn?0V3Ek^=*g#-guQbcl38y9rhC02vl)ivJptF}fAtk+SVe}D+gA*+KFRXM9
zH7t2KDZHU~1#_}zR&n@TRpC2oTR7EY_52>4FTek{C3~&p^BCh}7Wb}eHtD4Eb|mn2
z9r3<f@~8Xx*~>v9E9CN2Z~1LgbJZ#@>J-)3zIXA8fc}i$1g?@^vGe-Y4tXDMHEe$&
z?JUn!KQVT;#y^*C#`%8BzrQW}9mY|(aLO;A%Oxf<e9Bf1vXcV%7R=Q-eQ(<7r{43P
zzu))Xp4G9y^Y@Q9PSZ|l9=84jf5(3H$)3kQ@2O*7QskcOm$UW9H;3~Me=Yjni*>io
zJO7+>&3Q+EgNsM^vdZYnv}c~K7Ih8WfBm)X`moj44S4b&MEcdduC=_b_9bt7b*q`@
zBte%6LO*tK?I=DIWVx+Fsy|DX(RkGqo^LBRsR>zo6$&5BF{@_SXMgPRN7IXeos*2B
zOiCZId3dc{bt$k_?DDT=f2ZD^IW?X8Ea&v^r@YohPCqwA{?5A(^DLJ=(l3}^{Gu}V
tzn}OHlSK26s~?x`Xn$Z~lYXCxhe5~t+T;WC%Jo2Hpr@;!%Q~loCIAjH?!N#4

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_quote_holo.9.png b/java/res/drawable-xlarge/key_hint_quote_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..ceee67ddcbd250c1abc82552318022cb481101f2
GIT binary patch
literal 1257
zcmbVMZEVzJ9IsA1+_G~(%wz`AbY|0pyFP92*1P78dAnZS0k<u;GcIAlb-m}dy7k5O
zIj&pKMKqdyA?OER!WYRBHOqi(E{c-iFd%FLAwp0WjVuQynkXca;RoNIZg-Op3m<IS
zKL6+G|M&a9ceJDJ>FUb5N`fG&ldWPJueJDjbp3<)y<uN2kC)9T(S<sV94g2bBw|^k
z7m`U$?t^J4XNO*xg%N_N$f=nw)Ro#LD2C>jT^+xpnHWtFk!Ht~l>vyzUf8GVQR?Q2
z&nZ&PMyY3mDUdSbuwQK*wqWOQTSgfkP{LWNc{>?#1WceoB$JLdsM~@QrIvXGEW5`v
zMJ}tLfhe`&R9C8lj2jjtgMQ#sKocOF7(c@Wc%I)zvVZ|JU}=W+F}%RB0sv&`qOdh9
zn-kKaRI-J4QK}yyQ=sWWq2MoYe#7dcnQ%Dla<HrqYxwLT9m$SQx9iIcBD57tHIZuQ
zq{}Gx8hI3@u%{~_Xl5$4O03(ZMB$Xtj%?D5AJCfS#<i?%qcr@_jWxCH%#aD`G_;Mp
zrQmwx>dRo9yL%gQ6|px$yQSiy$b+Jx<Ta?Hq!^{}7k^gG3KGvt48sQi&w{29!-V2Y
zK;(i_C=`f;rdUgvV=b)6h1sx(Z;lfgMwD8xkO;Coh)Y}`%u8i#Qn!(;E3j-=#db^B
z&^@t2+=4PPtc+m{mOG%M-#~`lZ<u7fGf1XnMb+KCTb`9@MQEveVOFvXja<&JpsrzG
z!v5VIcTAGRP&gI~#6oO10fJNsoBcmIqp>rz+Z=Z_OZf<QpewGnKHjVj57hC*Sa>uZ
z`s=Gh1aaTyq!`OM3)i2S^zH{Wzb<ZQ*ywrb)XS$H?zz-%-rDqsr?L4JgPoZB<)<&k
zxx;+}2b_)Iy(?#S?ntUXM)y2->?yI5Xnk_s(u;Gqj(cv9ksILB_V?c^HlF`s{%db>
ztMk#USb?U!r?>XBPdALNn@C;WJ9qGbZ!022<J`5GnMdvf8z1w{S48Hg5^p|!c4}MU
z<jsp?Pb}0XCU;%FJ^0<o)Zyx#^nv1$E$4p!v*xwMg%8c(%-f9T=)7;KFiYsuS9$SD
ztY%_-Tws(sYV`SUHeKD<5V&*Z``QZ^gy@2=<>HrHtnR9%;yYDK>3?cJts5J;ZciTk
z`;(84dq#d+JbkVE)sy%CT>rZN-TK|$?(RHz<AW34vCpaifp+M(?Zxr)?$0NgXcLdN
H^z8o^TdlG_

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_semicolon_holo.9.png b/java/res/drawable-xlarge/key_hint_semicolon_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..e8d6b022390bc4cb9b0e65e1e4eec094d72ef4ca
GIT binary patch
literal 1248
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqSZGct2>bul(}F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBb-}CG%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3WjRR}%>oG7e
z3V6CWhE&|T61tK1u!6vojndw7O3F)4Fhw5NoZ7i1t;J;8or(@0hv`}phobvaRFAMR
zPHg(}O!r9PE_*qHV+ITcJ%$Hto<A^Q);6%vw#fSPWZGl(GyjEUWFz)1kY0XxwlA;b
z0hLB!gXIiN$1dy;DLNol%pP~KC&75_*_EuZ2Y&Cf_r3f@;`m1|cE=aJ&!i{mtPJAv
zNbkrMzL)0uK=kA@r`rK$^EA5eE)QPIvAU^lhgxW{fYY3{&x$14yw~XLK687UZGzHL
zk%c|Z2TL!TxUc=X_w_F6mw81ZS1Rw^^q;)Hy!$0rRPdwMFW+67akXCNbAJEPTd%8Y
ykGk{COs}@CePC+XB;+r9B&JIuc|nLiBO61*g7PCvQsfOlWsaw-pUXO@geCxq$fvCU

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_simplequote_holo.9.png b/java/res/drawable-xlarge/key_hint_simplequote_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..7cafbb0d49a008965c42beb571589bfe9df8d343
GIT binary patch
literal 1204
zcmbVMZD`zN9M5POvRZ1(q@E~-lsQ|xyxmJKp|_GtF7~kL%JsV59KzD%xn5|KCrzI7
zuH8P=D${~~D55YJ!&OjZx(`zkx6y5#4pzrxAc`x>whmUm=m!ypBKoB5)qN=YU?6$^
z&-46$zyEt?2l}6D-tqVjf*_i6y=oq>?f8A{q3!tFdbm`<O9W+$Xb_fA)$jo!TW|!B
zImZ|Ud0<$R6IVbtK{S-?LJ<}9KFNd*ZG<{>&G9grAi8^Mo?(swM2>(_+f7ryo;^>I
zww0!a6FRGV3MkvXQ$84+>Mxj6W2R_PJ$uORnuG})fDE$cjJttUOH*sS5|+bbh9cKg
z&{&#UcdDolkP7qxnV{LI$tGDc$<bUaE(pT2B+qgz!}1KrM>#=?@e<3D8xMu8`Bq8F
ztJ;Pwyh~GMggl91s?{o8jnU8_WjIk3Lk^ygVvT4p=^~>Rb%TyNg9-xEw>@M-mkb$=
z5m-TK3VXU9g5&A>Cb1iABnqdDsTm%_(JbRQVO(q40m_5_+}Kh(C`@{Q$%6n^d=uBB
z)KLfH+&$P(sEECh_WCw1iZQN2v*G|3<<vBVZ)nT5Bux-BjuYanz_ZB|$E6f5uEr8t
zDiv4Qq@1a9Y=u>0Vn$7<iW-Zl9H(j-EMybBz$#iSE(%&5n{xwXxF)FEwXt1{6$MU_
zABdF{9~cPw1qjFM9WYRa2nJ>7k;-6#)D6>i!+ltu^=MV#+b;o2^Pxko<yW$|u&-hN
z?vGp6G&Lp4a$HXFVwO!%8(8cA<cz`2Fky4t*DUoT+<~FE+4^|1IXu9{6XWC2Ad;`#
z!((+Pr^<!ejXOgZn=g?Me>(g2-gj2tJA{s$n*R2))4ls{UVrqA{M6rV?bHYJbD6hh
z{`zoNQ{!Us?r)K!kw@mX5i1MtNA|bwygEHU^xEywqbIlTPMm9K=nQ6?p4Pv*^<;Lw
z@8%DB+u=8c5A?j-@_YHqmEC(L=+4z+T=OMw;#&I8g`TCzcL%?2eE$2&-RZ?2UpTb9
zd}V*vk?|I1`S`g%hF_lfJahWSi4*0{pWb}pJlg^<w{`VjEq?U#Lf?TlX;J9@COOx5
z>z|!;$Gz3Y_K%+#x=?YhFCBZewQJ=U{p8rS+pk|9oZd!U{N%;sOHE(w3jZUyY`=Oc
Hb8zNgW7d^<

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_slash_holo.9.png b/java/res/drawable-xlarge/key_hint_slash_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..676d5669820c9532e1718f931a06ad88e8d6a0d7
GIT binary patch
literal 1317
zcmbVMZA{!`94|UxTSOta7Y)X)#AQbB`f@M5tDMKtUfmIkx8oLwAIy5a2d+ZfqwR5b
z%q6mHAB=G^8ek9*HQO@h1dZ7u14XxNQKu{#<pWNGK}0c(h0G|68lS=)?gQBeo3zjW
zd7l68_kZsT;kqYEHs8M)L6DNrZY~1XZSdW`u?T+4o@+|M<vugmXx3{@W?Iw%5{PRt
zfQA&Y8AN~>&$fLAsu1MPCOO(@HVRKNlBU>2OUIs3k`Rp`RsKv;lv;p^#z3>I`mn{(
zaSWB?KCHnd5JHj#33+#i4(dDVqEbhT<c(wg$I+?`0|^vhifBe@RShQN!&Z11C|k!k
zhOVfXEk113sYW4;vYHN1mz}UlgquL!q@8p)X_|f%r3jM12?{4E8%Z+`iXjLz_h8VP
z9&chI9G|lVcRnm(nn?!7)9JK5?XYWlGfsNFUW<dGY*52yWK~nl*i@r3&%gmg(&eNn
zYbt6niZLx^`Y`C}Y6wbF5Y~uQBbO+cGCU(DanerUiekmJqHUNF@Shv&Y8%mP65tVF
zXenKS^=PWhgJJG&Z^%-F-Y`$;GAxSN%4t$c0je3|d>Fj3$K^P~(=<<#w3DDI!tEhR
z4@){Zhl}@koGjrE)Z{tV!*UKU@8$v|=WuW&$?-K%2)ZbmV0nkrOY?bbNHt7Rl|bIE
z4DIHy#BH$*s{_&0^r)t_<~tyq&`ixpXi1c<ccFqP$*Q%t%Cj0R2Xwg|#Ccs)(3Si$
z@;df;=-;hz2Y8<Icmn}vz(aY1gbT}I<NqgTICKWLn&Xyc$sfTEw8XX6hnuzG0V<pr
z9gfD^Ehhy8DcBq00@2LWH(le;9;z<Aly3L69(wuw<k<Nw1*4;r^V79uU;i2Vxv<J!
zEY}y_AX`tD#I{_0>5-ZDD(0`vj#U>;{{G<L;CSyq;f@UjNMK_@_M>>Xzw_#jT_aNC
z(!0(h{<eSo7eV3EMffMd;HEELC2CLd+pphK+-5&BTlsylIdL4l5cn$fBKudL_uPrZ
zzOK3D=5DZ<5j5eK>8aXRe(EL94xO4`===6`dC!&Jx$ORl<%ZG?!*tJ^2anAycqWGA
zzH)u*&at`v!Sdb{zrGf^8SS3k6WU2X96V(#oVzx}Mz}pUI>Dzs$-CPs{8MK?eCxNH
z<~uC|o=q37A7_`s_g)lB-6`Qx`{0q!pFcLNWUu`3w?ZG7NeKOyf4Jj=F9-HBR71l<
zug`2fJkmB3Iovh9?fs)H^#(aI#Xt6A#bVjmfy)nkw|pkXC%Q{}cipvA`7z?0?s}$r
S?{KH};|c}qxS^VT2mb}bK-32S

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_smaller_holo.9.png b/java/res/drawable-xlarge/key_hint_smaller_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..97cf26edc241670651a0737166d81c368fd406fc
GIT binary patch
literal 1326
zcmbVMZD<>19KWtx(seDiDBCiGT`yAyF1fd)mmJB`G}r60np)F<5$x#o?rCyubC=y+
zl4}@E_Ey$@m?FZ4x-G-aZ<ZRw4^uXsFsGd`1ZA5;l(C{rRInhZ7@upKx({U^Jh*$_
z{=eVv|MuL>K!0y*^NwZ&L0Y5xxHufQ!FPL;4Sw4XjppFsFnW^4pgL+41PvfzNgV-b
zG$W)y90=0n!OuYeK^jNpMAAsco?}Hd;}$F%x0%U8G=c;|W>yf#fq{;Il&l1?Uq8Hp
zp|TXjUi8L@ST+LE^1h-528;a(u{bXJB`mZT4VWw>$N)n?&CG<Nvt|%m=4IjB+Qu<-
z*~AzRVk=H1V*_YJ)d1>s6E2bHB+yRMP0}8QVfLUDK@vDY;UwiE8J4D4f<RXv4613;
zC>!VaRV}y*Vrj$3vN&ES6x;>ct!gQp^!xo52SvG{g-f4Q48e3My0gx}0bSJOtRbrk
zYB35UYR(8^(9@L=GTB&cjaboF69rR-n?e>R-2|S=SaB^|>qZ>>=f=9$dSWsQ@Ho)b
zoF>A0j5_OJn7c;{S%%OX_IXW)MG+=ARm^38Vnn$h22b3QEU`Sp@FdB22!<j$eI)6N
zkRFcq@;;v@LUe|^>m2K0IojVzP&~!aG)Iyg-wh`{UWy?iJniu_d>tEAbVE=?P}h~A
z?kbjiB$kb6KrmD-p{f)04j4$QhN`F4EE*Z~qA@{~6>DvkXC+z=XmTD%yryQ*<@~bp
zI{G~H@8P(^JkR<3;jky{qx?OD7hA<j|0icSbOyJY<Dq7$Z@~_<rfaPa7i*UXDDcK;
z@M=sHe?k$Y;XsrNC(Jt|f7fcEMyK;$$!4?hZEwC&-n^ftZXyJEvu(cIG-kICy}Z}c
zYQNZZr+0Vz+%UJlT01}UedzYI({X*H_lawE$Dfbwie2BZHDIH|Bptt7Zk?{yJ~<RN
zj&1nzxTC3hy7k2E!>7du-@Ge4)Bo134}?!`kB{h{EoUpkn;e%Xe_!0y(a{mg=kwp5
z3zd|BzIY>2ZRwr$JYDIFl&7~+G`(=8RGWH9Rn=>kat{tP-oHHf)S06#)9)QV*sJ|8
z9lz0i^mx1fqr%U(Uf7MIZ3|bgVt?HG?3Gy8RKBlo;n~XFot5uOTnf8zVbfPj_7kO|
zX)Yy`$?Z`4ou+idxtW=n!1=_HukWYlQe5Bce9O|d*;>2i=Z|#{)pm|;-ZSL<>$eao
zKlzK6R-CU7M!)z6Jw?agu714eGv_Pp$x9cp*w~cq{nt)n`uxT%ja}siq<P1yh47Ek
QqV)%h_Vjae-NQ%z1+W~yqyPW_

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_star_holo.9.png b/java/res/drawable-xlarge/key_hint_star_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..b10aa89bda3df58893a4ad2c876a4d6362cee646
GIT binary patch
literal 1344
zcmeAS@N?(olHy`uVBq!ia0vp^;y^6H!3HD+Ytl-Alw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#2IjQPkcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc<hj*9RNP;kyKN>wn`Gtf;oFf&jvGt@IQ
zHZeCh*HJJsFf`CNFw!?P(ls=<GB&a@Fi?O3C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX)
z@^Za$W4-*MbbUihOG}U$Mn<|o6}rWhc_oPzx_QOQFcVx-i<65o3raHc^AtcPCMM;V
zme?u*T?+9+Zh@~a+~B-oXg~pjOur(rK;KZ$KtDGZ<S(%5;*y|Lgfp<JE)J<INYxKY
zEzU13N(RP9nlel?FzoPK1X2iejg@~<CNNSGb6oP1OLJ56N<3X`m4GsODVZr&Zsz80
zhKA-Q2IfWvW)_Bq7S4tyF2<&A78WMX24;><Ff*{}buqRyvUD+WaWOV_F*I~>a{@A4
zO^wVAoZXB~EY00udOh=sOA_;vQ(^XI0_}zBb;hgL%DE^tu_V7JBtJg~mI4AY@=NlI
zGx7@*oP$jjd=ry1^FVx1^gw*;l3J8mmYU*Ll%J~r4qvNGEcUwr-G}UNM>jVY3rj~w
z6GsapOIHI^C8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3W4f`e|69xvx
z0#6smkcwMZrf&3WaS&)L4?hw4kwML_rB!Snr>uU0hHpjV>$OXq4=G1Ta9Q!Nvd*2m
zQB`rLhogba8tW8~ZxgI{GW*;~xp|kT#`?@3Yj4ZvEkUO^6-AyEo3$yca+|n`<#5?N
z<2ydT;-CG)1qYrA?@CX<HCglclh2+7Eah`OKd|{En+NbU94u>-y;getsP@+x`xB}U
zFod|;f3N*-*Z262K@a!FxQEN$glyeXaJ_UrW8Ac*w@l71e{2!IE%(01hj{N}ejA<6
zAAB7uz>@8I`5lWz{@w(iW<#FC+Lul4AK4;w-%Q=puuIAO^rqu{F(OB^XD!QS{5PYh
zBPujv+Sj=2U)c^+&fC9YRn^PNd%`!YBIQ_*zbOuJRc(lV__27B3V+hxi=}_VdZKIE
z<wc7%-|+}9_b7VGv96%F&ZA4<^TFHh5;IB~o;V*l-eA3>X>y(KbK3~}s>Mlu&v)ps
u&AI)xX633KC(iy~Jjd@LPfKeJw*kWxp$&%TmznMam1&-?elF{r5}E*$eAZL|

literal 0
HcmV?d00001

diff --git a/java/res/drawable-xlarge/key_hint_underline_holo.9.png b/java/res/drawable-xlarge/key_hint_underline_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..38abfcb0152d863a8e0de3938e2e771aae992457
GIT binary patch
literal 1158
zcmbVMOK8+k6b-hD77L12t1gTweo$xflKEsNc9iM7MyGY!VLD<(s!fwOZD{i`d3DlJ
z1Qiq&intL)s30mTD1LC`U%@Xb(v4JbqoND33c3&!eQ9T^i{iqN<b86_IrrXoZ}z2|
zR##Tct)M8XGPwq3$T*uk)srWY_w?<#UNX$V^{u$Y%;CIjBPy<%9f(fqawp0lS?$~M
z2-Q+lSx(Eg;?~q!Q89JD?AiET-6Cj;s$Jz;veJz(-GMqaBgPD0yT#C&8e`UnQXpj|
zP?xr*V562oQ&uT-D^ZnMwUVxNMM9t>EYq&uV>qH4V@7yIGWWJwh8{7&-7#j=sn%4Q
zPM9{LLw?{>Kp4<r&d&vcf*>rXdB6b{@GQssI6(~XA^>#pVu+fp=EMw?idtk9W4bW5
zM3&9x^ZtCmZ`z$K7mY?e4xaZB3!l?xVA=H<PECmcB1f?`3u~r9dyI02*^6Tg@pLo<
z-Abj#hz+NhD3UVPl`WR@16J3)xJIlUoI!uw7}wg#_F0I{Ajj;r6>=WAni81g?%zV5
zA@N3Rwl#7nat}0>UL6@Y31bZT;#W0QlmtQII3WlG9)u$t7fEnI7zjy`NH77y@wyVn
zcvu*SN?{le!9W0V9F*$Fq&~z8ARz^UQ9&wUlZJz3LqR27jp!D!MC%_|F<~Pan|9VT
zdrB3M?lQ6IbeR^NXbI6NS<wt{?H$i(v=G_aR-{U{sna9*6}55nCF0-TamOVIMxya}
zFdpHf^&rF)vFiWij3v&nUUB?YETt_{f!=hi^vPnZd5}Rm#wM*XgPrg7>(wNTXWgNX
z>+V$Eqo;nIzUae+%V4H=e;usazwGp>x>?B+OV4DcG_Fp={x>t9wdW?>hUG_wH#7|#
zFMIrA=R5TBRsX<}U(NRSvc10D+Yb(`tXi>t_R%k3!}F@^3mSe_T<lJt%Rao+JkMQt
z<;bQ-izjBk+&k9Z_I(1EX*fLX?$aFyotyWohoA0=Z8>mb@a)yc%NowTKGgWO(DwP$
v5BACX{K<>A3(qzV)rjSrzwPO_3l)HB``N(nebBzm`!gi#o8bAn_FcaL!9RaU

literal 0
HcmV?d00001

diff --git a/java/res/values-xlarge/dimens.xml b/java/res/values-xlarge/dimens.xml
index d2cd6c7d15..4614f720a4 100644
--- a/java/res/values-xlarge/dimens.xml
+++ b/java/res/values-xlarge/dimens.xml
@@ -21,7 +21,8 @@
 <resources>
     <!-- key_height + key_bottom_gap = popup_key_height -->
     <dimen name="key_height">0.450in</dimen>
-    <dimen name="key_bottom_gap">0.0in</dimen>
+    <dimen name="key_bottom_gap">0.03in</dimen>
+    <dimen name="key_horizontal_gap">0.03in</dimen>
     <dimen name="popup_key_height">0.450in</dimen>
     <dimen name="keyboard_bottom_padding">0.10in</dimen>
     <!-- key_height x 1.6 -->
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index 2fa47ae529..765262d56f 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -22,6 +22,7 @@
     <!-- key_height + key_bottom_gap = popup_key_height -->
     <dimen name="key_height">0.290in</dimen>
     <dimen name="key_bottom_gap">0.035in</dimen>
+    <dimen name="key_horizontal_gap">0.000in</dimen>
     <dimen name="popup_key_height">0.325in</dimen>
     <dimen name="keyboard_bottom_padding">0.06in</dimen>
     <!-- key_height x 1.6 -->
diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml
index 66771c2875..f1f9904e39 100644
--- a/java/res/xml-da/kbd_qwerty.xml
+++ b/java/res/xml-da/kbd_qwerty.xml
@@ -27,7 +27,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-da/kbd_qwerty_black.xml b/java/res/xml-da/kbd_qwerty_black.xml
index d89204ae64..b7ebc66def 100644
--- a/java/res/xml-da/kbd_qwerty_black.xml
+++ b/java/res/xml-da/kbd_qwerty_black.xml
@@ -27,7 +27,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml
index 30d8de0cff..0832cbc922 100644
--- a/java/res/xml-de/kbd_qwerty.xml
+++ b/java/res/xml-de/kbd_qwerty.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
@@ -82,11 +82,12 @@
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
+        <Spacer
+            latin:horizontalGap="5%p" />
         <Key
             latin:keyLabel="a"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_a"
-            latin:horizontalGap="5%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="s"
diff --git a/java/res/xml-de/kbd_qwerty_black.xml b/java/res/xml-de/kbd_qwerty_black.xml
index f394c8d02f..13a7dcb79f 100644
--- a/java/res/xml-de/kbd_qwerty_black.xml
+++ b/java/res/xml-de/kbd_qwerty_black.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
@@ -82,11 +82,12 @@
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
+        <Spacer
+            latin:horizontalGap="5%p" />
         <Key
             latin:keyLabel="a"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_a"
-            latin:horizontalGap="5%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="s"
diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml
index 9a4a8796ba..95c1073824 100644
--- a/java/res/xml-fr/kbd_qwerty.xml
+++ b/java/res/xml-fr/kbd_qwerty.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-fr/kbd_qwerty_black.xml b/java/res/xml-fr/kbd_qwerty_black.xml
index be2befbe8f..b46ce9cb96 100644
--- a/java/res/xml-fr/kbd_qwerty_black.xml
+++ b/java/res/xml-fr/kbd_qwerty_black.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml
index 7f66eef569..fd94a12026 100644
--- a/java/res/xml-iw/kbd_qwerty.xml
+++ b/java/res/xml-iw/kbd_qwerty.xml
@@ -21,16 +21,17 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <Row
         latin:rowEdgeFlags="top"
     >
+        <Spacer
+            latin:horizontalGap="5%p" />
         <Key
             latin:keyLabel="ק"
-            latin:horizontalGap="5%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="ר" />
@@ -46,13 +47,14 @@
             latin:keyLabel="ם" />
         <Key
             latin:keyLabel="פ" />
+        <Spacer
+            latin:horizontalGap="1.25%p" />
         <Key
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_keyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
             latin:keyWidth="13.75%p"
             latin:isModifier="true"
-            latin:horizontalGap="1.25%p"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -81,9 +83,10 @@
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
+        <Spacer
+            latin:horizontalGap="5%p" />
         <Key
             latin:keyLabel="×–"
-            latin:horizontalGap="5%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="ס" />
diff --git a/java/res/xml-iw/kbd_qwerty_black.xml b/java/res/xml-iw/kbd_qwerty_black.xml
index 80ade2020a..1c1c1e37fc 100644
--- a/java/res/xml-iw/kbd_qwerty_black.xml
+++ b/java/res/xml-iw/kbd_qwerty_black.xml
@@ -21,16 +21,17 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <Row
         latin:rowEdgeFlags="top"
     >
+        <Spacer
+            latin:horizontalGap="5%p" />
         <Key
             latin:keyLabel="ק"
-            latin:horizontalGap="5%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="ר" />
@@ -46,12 +47,13 @@
             latin:keyLabel="ם" />
         <Key
             latin:keyLabel="פ" />
+        <Spacer
+            latin:horizontalGap="1.25%p" />
         <Key
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_bkeyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
             latin:keyWidth="13.75%p"
-            latin:horizontalGap="1.25%p"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -80,9 +82,10 @@
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
+        <Spacer
+            latin:horizontalGap="5%p" />
         <Key
             latin:keyLabel="×–"
-            latin:horizontalGap="5%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="ס" />
diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml
index 96a86b0130..32512daaaf 100644
--- a/java/res/xml-nb/kbd_qwerty.xml
+++ b/java/res/xml-nb/kbd_qwerty.xml
@@ -27,7 +27,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-nb/kbd_qwerty_black.xml b/java/res/xml-nb/kbd_qwerty_black.xml
index 4adeb48016..982a3de651 100644
--- a/java/res/xml-nb/kbd_qwerty_black.xml
+++ b/java/res/xml-nb/kbd_qwerty_black.xml
@@ -27,7 +27,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml
index 57114a8ea6..80a9ddd4f1 100644
--- a/java/res/xml-ru/kbd_qwerty.xml
+++ b/java/res/xml-ru/kbd_qwerty.xml
@@ -20,8 +20,8 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:keyWidth="9.091%p"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-ru/kbd_qwerty_black.xml b/java/res/xml-ru/kbd_qwerty_black.xml
index 8f2f599c3e..2635541e8b 100644
--- a/java/res/xml-ru/kbd_qwerty_black.xml
+++ b/java/res/xml-ru/kbd_qwerty_black.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index 1a657055a6..c9a4e449cf 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -22,7 +22,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-sr/kbd_qwerty_black.xml b/java/res/xml-sr/kbd_qwerty_black.xml
index e4b09c7170..f760c5eb13 100644
--- a/java/res/xml-sr/kbd_qwerty_black.xml
+++ b/java/res/xml-sr/kbd_qwerty_black.xml
@@ -22,7 +22,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml
index 8819159e85..ae7002463b 100644
--- a/java/res/xml-sv/kbd_qwerty.xml
+++ b/java/res/xml-sv/kbd_qwerty.xml
@@ -29,7 +29,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-sv/kbd_qwerty_black.xml b/java/res/xml-sv/kbd_qwerty_black.xml
index 2532fca8cf..463b60bd9a 100644
--- a/java/res/xml-sv/kbd_qwerty_black.xml
+++ b/java/res/xml-sv/kbd_qwerty_black.xml
@@ -29,7 +29,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="9.09%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml
index 977bbf2df2..107731f3b0 100644
--- a/java/res/xml-xlarge/kbd_phone.xml
+++ b/java/res/xml-xlarge/kbd_phone.xml
@@ -21,8 +21,8 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="7.5%p"
-    latin:horizontalGap="0px"
-    latin:verticalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
+    latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <!-- This row is intentionally not marked as a top row -->
@@ -35,29 +35,35 @@
             latin:keyEdgeFlags="left" />
         <!-- To match one character label size with "Tab", I placed spaces around the char '-'
              and '+'. -->
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="45"
-            latin:keyLabel=" - "
-            latin:horizontalGap="6.0%p" />
+            latin:keyLabel=" - " />
         <Key
             latin:codes="43"
             latin:keyLabel=" + " />
+        <Spacer
+            latin:horizontalGap="11.5%p" />
         <Key
             latin:codes="49"
             latin:keyIcon="@drawable/sym_keyboard_num1"
-            latin:horizontalGap="11.5%p" />
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="50"
-            latin:keyIcon="@drawable/sym_keyboard_num2" />
+            latin:keyIcon="@drawable/sym_keyboard_num2"
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="51"
-            latin:keyIcon="@drawable/sym_keyboard_num3" />
+            latin:keyIcon="@drawable/sym_keyboard_num3"
+            latin:keyWidth="10.5%p " />
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_keyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
             latin:keyWidth="15.0%p"
-            latin:horizontalGap="6.0%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
@@ -72,29 +78,35 @@
             latin:keyEdgeFlags="left" />
         <!-- To match one character label size with "More", I placed spaces around the char ','
              and '.'. -->
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="44"
-            latin:keyLabel=" , "
-            latin:horizontalGap="6.0%p" />
+            latin:keyLabel=" , " />
         <Key
             latin:codes="46"
             latin:keyLabel=" . " />
+        <Spacer
+            latin:horizontalGap="11.5%p" />
         <Key
             latin:codes="52"
             latin:keyIcon="@drawable/sym_keyboard_num4"
-            latin:horizontalGap="11.5%p" />
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="53"
-            latin:keyIcon="@drawable/sym_keyboard_num5" />
+            latin:keyIcon="@drawable/sym_keyboard_num5"
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="54"
-            latin:keyIcon="@drawable/sym_keyboard_num6" />
+            latin:keyIcon="@drawable/sym_keyboard_num6"
+            latin:keyWidth="10.5%p " />
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="@integer/key_return"
             latin:keyIcon="@drawable/sym_keyboard_return"
             latin:iconPreview="@drawable/sym_keyboard_feedback_return"
             latin:keyWidth="15.0%p"
-            latin:horizontalGap="6.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -103,47 +115,57 @@
              and ')'. -->
         <!-- There is an empty area bellow the "More" key and left of the "(" key.  To ignore
              the touch event on the area, "(" is intentionally not marked as a left edge key. -->
+        <Spacer
+            latin:horizontalGap="21.0%p" />
         <Key
             latin:codes="40"
-            latin:keyLabel=" ( "
-            latin:horizontalGap="21.0%p" />
+            latin:keyLabel=" ( " />
         <Key
             latin:codes="41"
             latin:keyLabel=" ) " />
+        <Spacer
+            latin:horizontalGap="11.5%p" />
         <Key
             latin:codes="55"
             latin:keyIcon="@drawable/sym_keyboard_num7"
-            latin:horizontalGap="11.5%p" />
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="56"
-            latin:keyIcon="@drawable/sym_keyboard_num8" />
-        <!-- There is an empty area bellow the "Enter" key and right of the "9" key.  To ignore
-             the touch event on the area, "9" is intentionally not marked as a right edge key. -->
+            latin:keyIcon="@drawable/sym_keyboard_num8"
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="57"
-            latin:keyIcon="@drawable/sym_keyboard_num9" />
-    </Row>
+            latin:keyIcon="@drawable/sym_keyboard_num9"
+            latin:keyWidth="10.5%p " />
+        <!-- There is an empty area bellow the "Enter" key and right of the "9" key.  To ignore
+             the touch event on the area, "9" is intentionally not marked as a right edge key. -->
+        </Row>
     <!-- This row is intentionally not marked as a bottom row -->
     <Row>
         <!-- There is an empty area bellow the "More" key and left of the "space" key.  To ignore
              the touch event on the area, "space" is intentionally not marked as a left edge key. -->
+        <Spacer
+            latin:horizontalGap="21.0%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="15.0%p"
-            latin:horizontalGap="21.0%p " />
+            latin:keyWidth="15.0%p" />
+        <Spacer
+            latin:horizontalGap="11.5%p" />
         <Key
             latin:codes="42"
             latin:keyIcon="@drawable/sym_keyboard_numstar"
-            latin:horizontalGap="11.5%p" />
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="48"
-            latin:keyIcon="@drawable/sym_keyboard_num0" />
-        <!-- There is an empty area bellow the "Enter" key and right of the "#" key.  To ignore
-             the touch event on the area, "#" is intentionally not marked as a right edge key. -->
+            latin:keyIcon="@drawable/sym_keyboard_num0"
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="35"
-            latin:keyIcon="@drawable/sym_keyboard_numpound" />
+            latin:keyIcon="@drawable/sym_keyboard_numpound"
+            latin:keyWidth="10.5%p " />
+        <!-- There is an empty area bellow the "Enter" key and right of the "#" key.  To ignore
+             the touch event on the area, "#" is intentionally not marked as a right edge key. -->
     </Row>
 </Keyboard>
diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml
index 6fbf3a902c..a7dcd325a6 100644
--- a/java/res/xml-xlarge/kbd_phone_symbols.xml
+++ b/java/res/xml-xlarge/kbd_phone_symbols.xml
@@ -21,8 +21,8 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="7.5%p"
-    latin:horizontalGap="0px"
-    latin:verticalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
+    latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <!-- This row is intentionally not marked as a top row -->
@@ -33,10 +33,11 @@
             latin:keyWidth="15.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
+        <Spacer
+            latin:horizontalGap="4.0%p" />
         <Key
             latin:codes="44"
-            latin:keyLabel="@string/label_pause_key"
-            latin:horizontalGap="4.0%p" />
+            latin:keyLabel="@string/label_pause_key" />
         <!-- To match one character label size with "Tab" and "Pause, I placed spaces around the
              char '-' and '+'. -->
         <Key
@@ -45,22 +46,27 @@
         <Key
             latin:codes="43"
             latin:keyLabel=" + " />
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="49"
             latin:keyIcon="@drawable/sym_keyboard_num1"
-            latin:horizontalGap="6.0%p" />
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="50"
-            latin:keyIcon="@drawable/sym_keyboard_num2" />
+            latin:keyIcon="@drawable/sym_keyboard_num2"
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="51"
-            latin:keyIcon="@drawable/sym_keyboard_num3" />
+            latin:keyIcon="@drawable/sym_keyboard_num3"
+            latin:keyWidth="10.5%p " />
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_keyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
             latin:keyWidth="15.0%p"
-            latin:horizontalGap="6.0%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
@@ -73,10 +79,11 @@
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
+        <Spacer
+            latin:horizontalGap="4.0%p" />
         <Key
             latin:codes="59"
-            latin:keyLabel="@string/label_wait_key"
-            latin:horizontalGap="4.0%p" />
+            latin:keyLabel="@string/label_wait_key" />
         <!-- To match one character label size with "More" and "Wait", I placed spaces around the
              char ',' and '.'. -->
         <Key
@@ -85,22 +92,27 @@
         <Key
             latin:codes="46"
             latin:keyLabel=" . " />
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="52"
             latin:keyIcon="@drawable/sym_keyboard_num4"
-            latin:horizontalGap="6.0%p" />
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="53"
-            latin:keyIcon="@drawable/sym_keyboard_num5" />
+            latin:keyIcon="@drawable/sym_keyboard_num5"
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="54"
-            latin:keyIcon="@drawable/sym_keyboard_num6" />
+            latin:keyIcon="@drawable/sym_keyboard_num6"
+            latin:keyWidth="10.5%p " />
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="@integer/key_return"
             latin:keyIcon="@drawable/sym_keyboard_return"
             latin:iconPreview="@drawable/sym_keyboard_feedback_return"
             latin:keyWidth="15.0%p"
-            latin:horizontalGap="6.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -109,50 +121,60 @@
              char 'N', '(' and ')'. -->
         <!-- There is an empty area bellow the "More" key and left of the "(" key.  To ignore
              the touch event on the area, "(" is intentionally not marked as a left edge key. -->
+        <Spacer
+            latin:horizontalGap="19.0%p" />
         <Key
             latin:codes="78"
-            latin:keyLabel=" N "
-            latin:horizontalGap="19.0%p" />
+            latin:keyLabel=" N " />
         <Key
             latin:codes="40"
             latin:keyLabel=" ( " />
         <Key
             latin:codes="41"
             latin:keyLabel=" ) " />
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="55"
             latin:keyIcon="@drawable/sym_keyboard_num7"
-            latin:horizontalGap="6.0%p" />
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="56"
-            latin:keyIcon="@drawable/sym_keyboard_num8" />
-        <!-- There is an empty area bellow the "Enter" key and right of the "9" key.  To ignore
-             the touch event on the area, "9" is intentionally not marked as a right edge key. -->
+            latin:keyIcon="@drawable/sym_keyboard_num8"
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="57"
-            latin:keyIcon="@drawable/sym_keyboard_num9" />
+            latin:keyIcon="@drawable/sym_keyboard_num9"
+            latin:keyWidth="10.5%p " />
+        <!-- There is an empty area bellow the "Enter" key and right of the "9" key.  To ignore
+             the touch event on the area, "9" is intentionally not marked as a right edge key. -->
     </Row>
     <!-- This row is intentionally not marked as a bottom row -->
     <Row>
         <!-- There is an empty area bellow the "More" key and left of the "space" key.  To ignore
              the touch event on the area, "space" is intentionally not marked as a left edge key. -->
+        <Spacer
+            latin:horizontalGap="19.0%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="22.5%p"
-            latin:horizontalGap="19.0%p " />
+            latin:keyWidth="22.5%p" />
+        <Spacer
+            latin:horizontalGap="6.0%p" />
         <Key
             latin:codes="42"
             latin:keyIcon="@drawable/sym_keyboard_numstar"
-            latin:horizontalGap="6.0%p" />
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="48"
-            latin:keyIcon="@drawable/sym_keyboard_num0" />
-        <!-- There is an empty area bellow the "Enter" key and right of the "#" key.  To ignore
-             the touch event on the area, "#" is intentionally not marked as a right edge key. -->
+            latin:keyIcon="@drawable/sym_keyboard_num0"
+            latin:keyWidth="10.5%p " />
         <Key
             latin:codes="35"
-            latin:keyIcon="@drawable/sym_keyboard_numpound" />
+            latin:keyIcon="@drawable/sym_keyboard_numpound"
+            latin:keyWidth="10.5%p " />
+        <!-- There is an empty area bellow the "Enter" key and right of the "#" key.  To ignore
+             the touch event on the area, "#" is intentionally not marked as a right edge key. -->
     </Row>
 </Keyboard>
diff --git a/java/res/xml-xlarge/kbd_popup_template.xml b/java/res/xml-xlarge/kbd_popup_template.xml
index 382d90afc2..55ebda5e46 100644
--- a/java/res/xml-xlarge/kbd_popup_template.xml
+++ b/java/res/xml-xlarge/kbd_popup_template.xml
@@ -20,7 +20,7 @@
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="7.5%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="0px"
     latin:keyHeight="@dimen/key_height"
     >
diff --git a/java/res/xml-xlarge/kbd_qwerty.xml b/java/res/xml-xlarge/kbd_qwerty.xml
index b725034145..9485ca7b38 100644
--- a/java/res/xml-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-xlarge/kbd_qwerty.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="7.5%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
@@ -30,62 +30,63 @@
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="Tab"
+            latin:keyWidth="7.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="q"
-            latin:keyHintIcon="@drawable/keyboard_hint_1"
+            latin:keyHintIcon="@drawable/key_hint_1_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:keyHintIcon="@drawable/keyboard_hint_2"
+            latin:keyHintIcon="@drawable/key_hint_2_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:keyHintIcon="@drawable/keyboard_hint_3"
+            latin:keyHintIcon="@drawable/key_hint_3_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:keyHintIcon="@drawable/keyboard_hint_4"
+            latin:keyHintIcon="@drawable/key_hint_4_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:keyHintIcon="@drawable/keyboard_hint_5"
+            latin:keyHintIcon="@drawable/key_hint_5_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:keyHintIcon="@drawable/keyboard_hint_6"
+            latin:keyHintIcon="@drawable/key_hint_6_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:keyHintIcon="@drawable/keyboard_hint_7"
+            latin:keyHintIcon="@drawable/key_hint_7_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:keyHintIcon="@drawable/keyboard_hint_8"
+            latin:keyHintIcon="@drawable/key_hint_8_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:keyHintIcon="@drawable/keyboard_hint_9"
+            latin:keyHintIcon="@drawable/key_hint_9_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:keyHintIcon="@drawable/keyboard_hint_0"
+            latin:keyHintIcon="@drawable/key_hint_0_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_p" />
         <Key
             latin:keyLabel="="
             latin:temporaryShiftKeyLabel="+"
-            latin:keyHintIcon="@drawable/keyboard_hint_plus"
+            latin:keyHintIcon="@drawable/key_hint_plus_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="+" />
         <Key
@@ -138,13 +139,13 @@
         <Key
             latin:keyLabel=";"
             latin:temporaryShiftKeyLabel=":"
-            latin:keyHintIcon="@drawable/keyboard_hint_colon"
+            latin:keyHintIcon="@drawable/key_hint_colon_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters=":" />
         <Key
             latin:keyLabel="\'"
             latin:temporaryShiftKeyLabel="&quot;"
-            latin:keyHintIcon="@drawable/keyboard_hint_quote"
+            latin:keyHintIcon="@drawable/key_hint_quote_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&quot;" />
         <Key
@@ -195,13 +196,13 @@
         <Key
             latin:keyLabel=";"
             latin:temporaryShiftKeyLabel=":"
-            latin:keyHintIcon="@drawable/keyboard_hint_colon"
+            latin:keyHintIcon="@drawable/key_hint_colon_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters=":" />
         <Key
             latin:keyLabel="\'"
             latin:temporaryShiftKeyLabel="&quot;"
-            latin:keyHintIcon="@drawable/keyboard_hint_quote"
+            latin:keyHintIcon="@drawable/key_hint_quote_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&quot;" />
         <Key
@@ -254,7 +255,7 @@
         <Key
             latin:keyLabel="\'"
             latin:temporaryShiftKeyLabel="&quot;"
-            latin:keyHintIcon="@drawable/keyboard_hint_quote"
+            latin:keyHintIcon="@drawable/key_hint_quote_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&quot;" />
         <Key
@@ -305,13 +306,13 @@
         <Key
             latin:keyLabel=";"
             latin:temporaryShiftKeyLabel=":"
-            latin:keyHintIcon="@drawable/keyboard_hint_colon"
+            latin:keyHintIcon="@drawable/key_hint_colon_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters=":" />
         <Key
             latin:keyLabel="\'"
             latin:temporaryShiftKeyLabel="&quot;"
-            latin:keyHintIcon="@drawable/keyboard_hint_quote"
+            latin:keyHintIcon="@drawable/key_hint_quote_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&quot;" />
         <Key
@@ -362,13 +363,13 @@
         <Key
             latin:keyLabel=";"
             latin:temporaryShiftKeyLabel=":"
-            latin:keyHintIcon="@drawable/keyboard_hint_colon"
+            latin:keyHintIcon="@drawable/key_hint_colon_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters=":" />
         <Key
             latin:keyLabel="\'"
             latin:temporaryShiftKeyLabel="&quot;"
-            latin:keyHintIcon="@drawable/keyboard_hint_quote"
+            latin:keyHintIcon="@drawable/key_hint_quote_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&quot;" />
         <Key
@@ -415,19 +416,19 @@
         <Key
             latin:keyLabel=","
             latin:temporaryShiftKeyLabel="*"
-            latin:keyHintIcon="@drawable/keyboard_hint_star"
+            latin:keyHintIcon="@drawable/key_hint_star_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="*" />
         <Key
             latin:keyLabel="."
             latin:temporaryShiftKeyLabel="!"
-            latin:keyHintIcon="@drawable/keyboard_hint_exclamation"
+            latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="!" />
         <Key
             latin:keyLabel="/"
             latin:temporaryShiftKeyLabel="\?"
-            latin:keyHintIcon="@drawable/keyboard_hint_question"
+            latin:keyHintIcon="@drawable/key_hint_question_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\?" />
         <Key
@@ -475,19 +476,19 @@
         <Key
             latin:keyLabel=","
             latin:temporaryShiftKeyLabel="*"
-            latin:keyHintIcon="@drawable/keyboard_hint_star"
+            latin:keyHintIcon="@drawable/key_hint_star_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="*" />
         <Key
             latin:keyLabel="."
             latin:temporaryShiftKeyLabel="!"
-            latin:keyHintIcon="@drawable/keyboard_hint_exclamation"
+            latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="!" />
         <Key
             latin:keyLabel="/"
             latin:temporaryShiftKeyLabel="\?"
-            latin:keyHintIcon="@drawable/keyboard_hint_question"
+            latin:keyHintIcon="@drawable/key_hint_question_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\?" />
         <Key
@@ -583,19 +584,19 @@
         <Key
             latin:keyLabel=","
             latin:temporaryShiftKeyLabel="*"
-            latin:keyHintIcon="@drawable/keyboard_hint_star"
+            latin:keyHintIcon="@drawable/key_hint_star_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="*" />
         <Key
             latin:keyLabel="."
             latin:temporaryShiftKeyLabel="!"
-            latin:keyHintIcon="@drawable/keyboard_hint_exclamation"
+            latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="!" />
         <Key
             latin:keyLabel="/"
             latin:temporaryShiftKeyLabel="\?"
-            latin:keyHintIcon="@drawable/keyboard_hint_question"
+            latin:keyHintIcon="@drawable/key_hint_question_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\?" />
         <Key
@@ -643,19 +644,19 @@
         <Key
             latin:keyLabel=","
             latin:temporaryShiftKeyLabel="*"
-            latin:keyHintIcon="@drawable/keyboard_hint_star"
+            latin:keyHintIcon="@drawable/key_hint_star_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="*" />
         <Key
             latin:keyLabel="."
             latin:temporaryShiftKeyLabel="!"
-            latin:keyHintIcon="@drawable/keyboard_hint_exclamation"
+            latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="!" />
         <Key
             latin:keyLabel="/"
             latin:temporaryShiftKeyLabel="\?"
-            latin:keyHintIcon="@drawable/keyboard_hint_question"
+            latin:keyHintIcon="@drawable/key_hint_question_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\?" />
         <Key
@@ -671,17 +672,18 @@
     <Row
         latin:keyboardMode="@+id/mode_normal"
     >
+        <Spacer
+            latin:horizontalGap="16.25%p" />
         <Key
             latin:keyLabel="("
             latin:temporaryShiftKeyLabel="&lt;"
-            latin:keyHintIcon="@drawable/keyboard_hint_smaller"
+            latin:keyHintIcon="@drawable/key_hint_smaller_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="&lt;"
-            latin:horizontalGap="16.25%p" />
+            latin:popupCharacters="&lt;" />
         <Key
             latin:keyLabel=")"
             latin:temporaryShiftKeyLabel="&gt;"
-            latin:keyHintIcon="@drawable/keyboard_hint_greater"
+            latin:keyHintIcon="@drawable/key_hint_larger_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&gt;" />
         <Key
@@ -693,7 +695,7 @@
         <Key
             latin:keyLabel="_"
             latin:temporaryShiftKeyLabel="\@"
-            latin:keyHintIcon="@drawable/keyboard_hint_at"
+            latin:keyHintIcon="@drawable/key_hint_at_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\@" />
         <Key
@@ -706,11 +708,12 @@
     <Row
         latin:keyboardMode="@+id/mode_url"
     >
+        <Spacer
+            latin:horizontalGap="16.25%p" />
         <Key
             latin:keyLabel=".com"
-	    latin:keyOutputText=".com"
-	    latin:keyWidth="15.0%p"
-            latin:horizontalGap="16.25%p" />
+    	    latin:keyOutputText=".com"
+            latin:keyWidth="15.0%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
@@ -720,7 +723,7 @@
         <Key
             latin:keyLabel="_"
             latin:temporaryShiftKeyLabel="\@"
-            latin:keyHintIcon="@drawable/keyboard_hint_at"
+            latin:keyHintIcon="@drawable/key_hint_at_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\@" />
         <Key
@@ -733,11 +736,12 @@
     <Row
         latin:keyboardMode="@+id/mode_email"
     >
+        <Spacer
+            latin:horizontalGap="16.25%p" />
         <Key
             latin:keyLabel=".com"
-	    latin:keyOutputText=".com"
-	    latin:keyWidth="15.0%p"
-            latin:horizontalGap="16.25%p" />
+            latin:keyOutputText=".com"
+            latin:keyWidth="15.0%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
@@ -752,12 +756,13 @@
     <Row
         latin:keyboardMode="@+id/mode_im"
     >
+        <Spacer
+            latin:horizontalGap="16.25%p" />
         <Key
             latin:keyLabel=":-)"
             latin:keyOutputText=":-)"
             latin:popupKeyboard="@xml/popup_smileys"
-            latin:keyWidth="15.0%p"
-            latin:horizontalGap="16.25%p" />
+            latin:keyWidth="15.0%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
@@ -767,7 +772,7 @@
         <Key
             latin:keyLabel="_"
             latin:temporaryShiftKeyLabel="\@"
-            latin:keyHintIcon="@drawable/keyboard_hint_at"
+            latin:keyHintIcon="@drawable/key_hint_at_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\@" />
         <Key
@@ -780,17 +785,18 @@
     <Row
         latin:keyboardMode="@+id/mode_webentry"
     >
+        <Spacer
+            latin:horizontalGap="16.25%p" />
         <Key
             latin:keyLabel="("
             latin:temporaryShiftKeyLabel="&lt;"
-            latin:keyHintIcon="@drawable/keyboard_hint_smaller"
+            latin:keyHintIcon="@drawable/key_hint_smaller_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="&lt;"
-            latin:horizontalGap="16.25%p" />
+            latin:popupCharacters="&lt;" />
         <Key
             latin:keyLabel=")"
             latin:temporaryShiftKeyLabel="&gt;"
-            latin:keyHintIcon="@drawable/keyboard_hint_greater"
+            latin:keyHintIcon="@drawable/key_hint_larger_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="&gt;" />
         <Key
@@ -802,7 +808,7 @@
         <Key
             latin:keyLabel="_"
             latin:temporaryShiftKeyLabel="\@"
-            latin:keyHintIcon="@drawable/keyboard_hint_at"
+            latin:keyHintIcon="@drawable/key_hint_at_holo"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="\@" />
         <Key
diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml
index e570ff4799..34fc114196 100644
--- a/java/res/xml-xlarge/kbd_symbols.xml
+++ b/java/res/xml-xlarge/kbd_symbols.xml
@@ -21,8 +21,8 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="7.5%p"
-    latin:horizontalGap="0px"
-    latin:verticalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
+    latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <!-- This row is intentionally not marked as a top row -->
@@ -30,6 +30,7 @@
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="Tab"
+            latin:keyWidth="7.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -140,9 +141,10 @@
     </Row>
     <!-- This row is intentionally not marked as a bottom row -->
     <Row>
-        <Key
-            latin:keyLabel="&lt;"
+        <Spacer
             latin:horizontalGap="16.25%p" />
+        <Key
+            latin:keyLabel="&lt;" />
         <Key
             latin:keyLabel="&gt;" />
         <Key
diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml
index 5ca2cc1e6d..8ed1c11079 100644
--- a/java/res/xml-xlarge/kbd_symbols_shift.xml
+++ b/java/res/xml-xlarge/kbd_symbols_shift.xml
@@ -21,8 +21,8 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="7.5%p"
-    latin:horizontalGap="0px"
-    latin:verticalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
+    latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <!-- This row is intentionally not marked as a top row -->
@@ -30,6 +30,7 @@
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="Tab"
+            latin:keyWidth="7.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -140,9 +141,10 @@
     </Row>
     <!-- This row is intentionally not marked as a bottom row -->
     <Row>
-        <Key
-            latin:keyLabel="≤"
+        <Spacer
             latin:horizontalGap="16.25%p" />
+        <Key
+            latin:keyLabel="≤" />
         <Key
             latin:keyLabel="≥" />
         <Key
diff --git a/java/res/xml/kbd_phone.xml b/java/res/xml/kbd_phone.xml
index 17e7ba20b2..e6f6a09f5f 100644
--- a/java/res/xml/kbd_phone.xml
+++ b/java/res/xml/kbd_phone.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="26.67%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml/kbd_phone_black.xml b/java/res/xml/kbd_phone_black.xml
index 6ade277d93..86759d676a 100644
--- a/java/res/xml/kbd_phone_black.xml
+++ b/java/res/xml/kbd_phone_black.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="26.67%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml
index 5062d4707f..1c691d2a54 100644
--- a/java/res/xml/kbd_phone_symbols.xml
+++ b/java/res/xml/kbd_phone_symbols.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="26.67%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml/kbd_phone_symbols_black.xml b/java/res/xml/kbd_phone_symbols_black.xml
index 2a6932a9ee..3e46c53077 100644
--- a/java/res/xml/kbd_phone_symbols_black.xml
+++ b/java/res/xml/kbd_phone_symbols_black.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="26.67%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml/kbd_popup_template.xml b/java/res/xml/kbd_popup_template.xml
index f1aa86f392..004d490d60 100644
--- a/java/res/xml/kbd_popup_template.xml
+++ b/java/res/xml/kbd_popup_template.xml
@@ -20,7 +20,7 @@
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="0px"
     latin:keyHeight="@dimen/popup_key_height"
     >
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index 21a7ccb781..517b4fe5c6 100644
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
@@ -82,11 +82,12 @@
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
+        <Spacer
+            latin:horizontalGap="5%p" />
         <Key
             latin:keyLabel="a"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_a"
-            latin:horizontalGap="5%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="s"
diff --git a/java/res/xml/kbd_qwerty_black.xml b/java/res/xml/kbd_qwerty_black.xml
index adb10dcfb5..76412f6649 100644
--- a/java/res/xml/kbd_qwerty_black.xml
+++ b/java/res/xml/kbd_qwerty_black.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
@@ -82,11 +82,12 @@
             latin:keyEdgeFlags="right" />
     </Row>
     <Row>
+        <Spacer
+            latin:horizontalGap="5%p" />
         <Key
             latin:keyLabel="a"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_a"
-            latin:horizontalGap="5%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="s"
diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml
index 4ce9a867b5..83fb5a71de 100644
--- a/java/res/xml/kbd_symbols.xml
+++ b/java/res/xml/kbd_symbols.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml/kbd_symbols_black.xml b/java/res/xml/kbd_symbols_black.xml
index dedd2da08e..b6a069c25f 100644
--- a/java/res/xml/kbd_symbols_black.xml
+++ b/java/res/xml/kbd_symbols_black.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml
index 52afa38e33..d83706b5cd 100644
--- a/java/res/xml/kbd_symbols_shift.xml
+++ b/java/res/xml/kbd_symbols_shift.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/res/xml/kbd_symbols_shift_black.xml b/java/res/xml/kbd_symbols_shift_black.xml
index c1bd4e395a..e5f8abf6e0 100644
--- a/java/res/xml/kbd_symbols_shift_black.xml
+++ b/java/res/xml/kbd_symbols_shift_black.xml
@@ -21,7 +21,7 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="0px"
+    latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
diff --git a/java/src/com/android/inputmethod/latin/BaseKeyboard.java b/java/src/com/android/inputmethod/latin/BaseKeyboard.java
index bad1544e5e..fc35ccc5de 100644
--- a/java/src/com/android/inputmethod/latin/BaseKeyboard.java
+++ b/java/src/com/android/inputmethod/latin/BaseKeyboard.java
@@ -61,6 +61,7 @@ public class BaseKeyboard {
     private static final String TAG_KEYBOARD = "Keyboard";
     private static final String TAG_ROW = "Row";
     private static final String TAG_KEY = "Key";
+    private static final String TAG_SPACER = "Spacer";
     private static final String TAG_INCLUDE = "include";
     private static final String TAG_MERGE = "merge";
 
@@ -273,8 +274,8 @@ public class BaseKeyboard {
         public Key(Row parent) {
             keyboard = parent.parent;
             height = parent.defaultHeight;
-            width = parent.defaultWidth;
             gap = parent.defaultHorizontalGap;
+            width = parent.defaultWidth - gap;
             edgeFlags = parent.rowEdgeFlags;
         }
 
@@ -290,21 +291,21 @@ public class BaseKeyboard {
         public Key(Resources res, Row parent, int x, int y, XmlResourceParser parser) {
             this(parent);
 
-            this.x = x;
-            this.y = y;
-
             TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parser),
                     R.styleable.BaseKeyboard);
-
-            width = getDimensionOrFraction(a, R.styleable.BaseKeyboard_keyWidth,
-                    keyboard.mDisplayWidth, parent.defaultWidth);
             height = getDimensionOrFraction(a, R.styleable.BaseKeyboard_keyHeight,
                     keyboard.mDisplayHeight, parent.defaultHeight);
             gap = getDimensionOrFraction(a, R.styleable.BaseKeyboard_horizontalGap,
                     keyboard.mDisplayWidth, parent.defaultHorizontalGap);
+            width = getDimensionOrFraction(a, R.styleable.BaseKeyboard_keyWidth,
+                    keyboard.mDisplayWidth, parent.defaultWidth) - gap;
             a.recycle();
             a = res.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.BaseKeyboard_Key);
-            this.x += gap;
+
+            // Horizontal gap is divided equally to both sides of the key.
+            this.x = x + gap / 2;
+            this.y = y;
+
             TypedValue codesValue = new TypedValue();
             a.getValue(R.styleable.BaseKeyboard_Key_codes, codesValue);
             if (codesValue.type == TypedValue.TYPE_INT_DEC
@@ -731,6 +732,10 @@ public class BaseKeyboard {
             mTotalHeight = mCurrentY - defaultVerticalGap;
         }
 
+        public void setSpacer(int gap) {
+            mCurrentX += gap;
+        }
+
         public int getMaxRowWidth() {
             return mMaxRowWidth;
         }
@@ -774,6 +779,8 @@ public class BaseKeyboard {
                     mKeys.add(key);
                     if (key.codes[0] == KEYCODE_SHIFT)
                         mShiftKeys.add(key);
+                } else if (TAG_SPACER.equals(tag)) {
+                    parseSpacerAttribute(res, parser, state);
                 } else if (TAG_KEYBOARD.equals(tag)) {
                     parseKeyboardAttributes(res, parser);
                 } else if (TAG_INCLUDE.equals(tag)) {
@@ -791,6 +798,8 @@ public class BaseKeyboard {
                     state.endKey(key);
                 } else if (TAG_ROW.equals(tag)) {
                     state.endRow();
+                } else if (TAG_SPACER.equals(tag)) {
+                    ;
                 } else if (TAG_KEYBOARD.equals(tag)) {
                     state.endKeyboard(mDefaultVerticalGap);
                 } else if (TAG_INCLUDE.equals(tag)) {
@@ -804,6 +813,15 @@ public class BaseKeyboard {
         }
     }
 
+    private void parseSpacerAttribute(Resources res, XmlResourceParser parser,
+            KeyboardParseState state) {
+        TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.BaseKeyboard);
+        int gap = getDimensionOrFraction(a,
+                R.styleable.BaseKeyboard_horizontalGap, mDisplayWidth, 0);
+        a.recycle();
+        state.setSpacer(gap);
+    }
+
     private void parseInclude(Resources res, XmlResourceParser parent, KeyboardParseState state)
             throws XmlPullParserException, IOException {
         final TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parent),
@@ -848,19 +866,14 @@ public class BaseKeyboard {
     private void parseKeyboardAttributes(Resources res, XmlResourceParser parser) {
         TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parser),
                 R.styleable.BaseKeyboard);
-
         mDefaultWidth = getDimensionOrFraction(a,
-                R.styleable.BaseKeyboard_keyWidth,
-                mDisplayWidth, mDisplayWidth / 10);
+                R.styleable.BaseKeyboard_keyWidth, mDisplayWidth, mDisplayWidth / 10);
         mDefaultHeight = getDimensionOrFraction(a,
-                R.styleable.BaseKeyboard_keyHeight,
-                mDisplayHeight, 50);
+                R.styleable.BaseKeyboard_keyHeight, mDisplayHeight, 50);
         mDefaultHorizontalGap = getDimensionOrFraction(a,
-                R.styleable.BaseKeyboard_horizontalGap,
-                mDisplayWidth, 0);
+                R.styleable.BaseKeyboard_horizontalGap, mDisplayWidth, 0);
         mDefaultVerticalGap = getDimensionOrFraction(a,
-                R.styleable.BaseKeyboard_verticalGap,
-                mDisplayHeight, 0);
+                R.styleable.BaseKeyboard_verticalGap, mDisplayHeight, 0);
         mProximityThreshold = (int) (mDefaultWidth * SEARCH_DISTANCE);
         mProximityThreshold = mProximityThreshold * mProximityThreshold;
         a.recycle();
-- 
GitLab