asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T PKe[Sh::fi-kotoistus.map.gznu[+efi-kotoistus.map]r8}WkDy}:=Ig朗%eMIAAKNb*^%$[] gbdş/^=KO~c ^^u\(E+E`=[e}\];\yxzSz̅򎁶}u!4Ea@j\[ohaЭ6/uqgTq i3q-3T~4$C KL񪭁K E (i'u%VBYZKh r>N02 7ѮBvP| Qh.;r >^t2ÝviJ=8(vqRv=죏S ; DT"߄~]=AE{';! B6 AvWZz#,~IPCyOt8.,uQ*K/4nitqGݏ># Q n} ! v#>r]ikn>'QJ)@I;M#8 AkM#gU,~VwX#KFqC hD6E# 98i]#COƒAcHIN`m@pƕ%aaTQ%?#FUi{ JN!8M~{T߆Ę8n Үȏ Gp4 GLD"?|? 2(rP`av^E{^۶W7ŐDxlTUUU_ucAǁg{tw%h Z%߰%DžfɊbqj7eIflZ Ql7pŞ~;N^Tm"o/oS Oc~=Bq ѝp&q)ewWɂRwTN1JNY}2dAE;~^ ~wB~z6[Z&{Zնg/ebb>(W uۦ{ fA_Ma9X C[sBcLr-hiZC&;ݏM)t3!]>TZ  -B'6/%NӚ/Bi_iFVEr S4lp6ޠGp6a6=ayCzg_A14jOtΝND֖>˕8UGTb[˨JGa:MH:I]GX EU!(ÉMoUGKAP1"h %$B~Owr&ᔤ^2QGRU 5 6r($/ ȫPT61һut|.(pDQM7DNz$ }q3C}*~o!!^OclnRn)+2c䝫dAE;~^ ~wB~F GLHz>c )^5<NOaֈ$})+\C&*YPj΀*üñ$9!cwWɂRwT7RG"͆x=ӢXrM; SQw7jCѤ Q";jDZi6T_8Fru,U"?K{rX\tdH I`vN_ &,-_afu`||p- 8ŐBV+n?\}jkAiadn-qUO-؆TvT{8.8.8.8.8.8.8.qу>1ʍ;Qw\+#[b'"EF L|H|9]+E$W LJZ3'y) ~wB~Z L'+eM6c]$Wǐ{WɂRw/Ob4ȹ#5G]-]U\C&\% J-S ~wB~Z L$=锕u$WǐɕdAE;~^ ~wB~Z 0h)+H!JZ3~'Ű6IN9i`9#gW wT63&O)Ym5cPE?RI*^e9l2̭u;i4l\vm1eÙs6@HF5LiAWS*Aھ(%\6'í>NkwMmջr鮻Vp3!]fh}h>u/h>U-R=E(kȪ#I΅y1rv\6fޠGp"JAŠDv..AԻPY`(2XNK%E"KJ\GTb[d) ơ~ܤADЕ4PT"zXX=P(dI ƠPK|1$%Mu:=JJRQĮ*ѫw1ΐ$e#p&DXncȥwZMF]Q#jQU7LNz$K}3a>qS5?u7sc]- *¾ZjWKj#Z bi*sߵZr!Pw/ }Z-lr]:_+50kwa^jJ/v*Vg[8Q=" h)B'( q+F^$: Uv* ]ݘ  =CBAXҎE@_GHPp)]dxlG=y )>KD֚>˕:DKJlkUB3CWISIWC0 jkDT]%z8-jIU?0t55@d];@ҝ xҝ$Iuu8%jLU5T:'vD饍lHr0΍]GZocȥwMG]Q5ҐWIb:(Gٔk=3~P=RI鵜 ~f15nd 2鴘~fۭLULۯ=h,qN{{X<^[vkeD8G]smIggSw?!t[t?|} ]ak!7[_ 2~!z) \) ^1^9w\(q ∷aRHaA?2zmĵ)bF8)C2# u;3-{t RGt^#D>ü/>uQ0{KRۇ{/_C,3 T$\ٶ(#aVowUʻ=+WZU4/eWE_uK!d I^'xSxVRUDruU"=ivYi/aJr[Dru t,(~gKNOa󎸩|fv<锕ۧH!JZ3~'POΥb睲rGru p,(~gKNOa3zXi6˴hl":L*YPj΀߈xfr ,17S'ja6Wd/ޱܸ;*wiEP))*rJJITNsR$s+DvVz9DJ Â'|vowRk"e>V < *Zd&:_ D %+wm\`1HSD6b-Fbkqa.4՝~}kM6pgp3Qkbg<_9ߏ>L&֭ ~_,183؈}غJo[dEYd1Ř?Uv>||q?é5u}!" ڦSNWykA:O*c<&ky}yȄIwJF|ZcU١i C&D@MS'`mdYʎL;o2! "mҝ?1zUul~YE>cUٱiC&D@MS'Ůc3=Vv^$dB@D@ۤ;%bꪙ1ǪS뛆LhtO&]!FvWѫh䱪̴f!" &)bW|Bg4XUҴ.C&D@MSPtv8KCUe k4vฺ3'z 5s~J!`&`3ieʟhz(@7v-;vbڻ}@MȣhFG$421*6whjbì *EǨT8igb]gFڈQAv(NKᮗFڈQAv$N,VWkM6pgp3Qkb-6dd9¬ *EǨTqҎņ0kJQ1*'TlmD(ڠRTzJI;'R%/ :|ebëɌ; 6椝 I w͍0kJQ1*'=:4FD¬ *EǨT@l([! 6R};/32/C<9hO)vr~ ( ("zp"_jiUu_xPs +3Uw)KmV(ↈB@I&H8jEjKgZ?|\5'";7*YLeKpp1 hI2!$Na-bWe*Yk#0#0~jX"&%yWiYTXy-Vgm:M *ԅq"Nĉ8'z}D`"bM=OVI:uj6(.ȷ/E"˥>=u 詫x/,.^Le+YxU+D>YUgxKON#Ӄa~M bu"pA޻$P%qΙ |wD|z0+څ7eK9B[8$u$ 9v[{ŷ 3 w (/ُ)w.Zsoj*-J6]uE\\լ̪}N7@K%h Z-5_r&p";;wz+D6((Q5jEXlW"XzL-..*:T3'qIX>;">=Qx[,6Ώ꭪k]r咬CE;ux VFPЅ2?r5ZvIVѡ">K✏N#Ӄ^)%nWCA]pA.]Ut|gO8=o|`WM>Cg"{õ>%YEw.8OjX, zhO.?(|gO89.`Y3o{ډh/x؂.?"wI%I@uX*:*=xof0N0I ]z"U;EPpwnl\}p ɓRVyK \V|GCx 9oHNb,N׵^WiVKʣgY.wiNahڡ;{@;OD8QYJVe5O"vG͝n X0KX@J"$NSԷ|m`4 3" 4{pC04 BTc#1= ?{֙ %9P c+,7 '||ZM⚕6TҳGMb 'TzE/;Df Xõy咬CE;itaP=:=U4n0#/%?%YEw |wD|j0X&/Jvw.IÐ1I,[0K 4çyGQ+';uʹX.ŧ*"/V  }92D3yBS'EŶPfYsM92fD*T-ώ~ ʛj*-ʎM7t+bVQt ;Lw;A  kƑw;_wONa3030?M/kE^8C c&uqЃY͹^VUr3 }TߺЯ2{H #z03//:"gG&Zk[{TpphT~BǍ9iVwVNg^jtopsdSTppht31/mC+s{.!*)L˦zfY9BC+s{.!*)L˦zfQsYmJvl깽.!*)˦zfaСs{]*8C8USIYwo {saVSSMwVNg][dݽ 6O#:znoKpJwi;y髾 EAظ珆Zz#@krk~~ug3~]/ib!C 3G tES;,ʯ`7YU.vU5wX: @EãJuhbVJ(¨>i}:iSC[J`FaT3Jxՙ![ y-f%0 0OڐNګuRqZoNa3030?M/k7[H w堷(¨>itF![ y-f%0 0O cJxձ![ y-f%0 0O)/sIx7V.oyx;ߌ:G 7P-f%0 0NNZ^7d+!ŬFaFI+h![ y-f%0 0OZF{D :2d+!ŬFaFI+hϽ,վ  =( o㪾p @Gh,ӧ1'$R3IUy\bۊ9'1oJ׬$!mF2(bBL 1=Ū..}; |c'ZzYhd `3ӶA fa GrZF[ :7* g#5)r~ݬ⼳>Py_fE)7xtTH NؓѻlQI^V]=]l;>d7+۾nNÍы79=?{]|^!Allwf_jy|Y]rwa1- ~^UA@@1z#_-Oli'YnhxzLfg )taRHH9='Xh!((Q>?3z+H_,s('T^_ygW_I[ Vt-K[*_6Z-AE"hGn}s"~}QsKf(p \\=1W?Hgj6iRgGtmqq6q6a G` Ȭ1{e8p1CUꦺuuhu#PKe[igh-gillbt.map.gznu[+e[wHS}Ϟ#.>$q43;l6 ԶYKA(/}ڭFG UTwկ ] q?l/F{dKv]6[V= W/sOTw&e}NVԝ` XΊ55‘mv'Q|ʤ5;nkjnzn2Gh2]Θ^|n7`7`rXPR*-mM˥V8`/xThsGhsQe'lStL`Utjx|]6EmI's߁"6,#,κ1`6ac83|?#y09B#`%^Wx>|=UpsTGh%Ko . `vyd7Gh&շ=9۬Mѥl`N0Pt7a#4Og2kg|뉏^"˿7 -(mI3.af:oLj1b#ƈ1g7bpkR{B["y8EU`vZңy* P2.ي]8ikէluoR2~7ѷq d?ZEIxW?]մ \siNG>JJ(Rў}jD U˥YM۪K_| :NƲe-M.jV\|둏ᬺ2T>=]w$CU]մ 9>GOU0Tឮ \մ 9>GЫLAtA1Tf5mo|.|=Q2dڟƭ ]մ ).ɹ4'#%àEep;IeKkz爣u{h2dQAot=IxW?\մ 9>Gp\6RS=]w{hD UsiVӶ*:#%jX!?OѢuƋ(V+&j-kQ'kUZεlD U]4i[|S\siNG>JBj$؛IPܥYM۪ҜKs|=Q2jaI`' ]մ ).ɹ4'#%jd{Q/O. _9>GpR%COI7솱!AҞl댸()4#4siT 3 >W%pU0&ٶ̰w{`ŪG+x ^ /%cO%|6\$HVfG6I$͓ݺvsUDa+Ւ5K!=(0 yW\ݥ7J,i2JjXI8߮rOqsnx1^}jQQ5?$KUuiVӶ*4'Ҝ_| #_Л5Z0V8$CUviVӶ*ΟOsiNΥ9(Ҋ#PLM!iD UriVӶ*4gU_| KbOtc$bf5mo|.|=Q2K-$CU/]մ 9>GpV%C4nIPկ.jV\Zz䫒yBKUwVui:/w`:tJJ>Ar&|&zv{N,gBɆp^el[_ ,O3Tۜ MAМ1 %ƿ07vV`JD4%c"`Qg0{7 @v%kkQ`ݪHVOWcn`ҩ7Jp7:"7]͘w4U'؈ؽƦ}U7o"D!~E1wĻOي]?-j^.2! "m&I:]!5"џr 5J4ܟȄ&%crΧ1IqLhhR; Thz?-[8j14_xȄ&%n^NUϸ<&џ-jZvo|Ȅ&%Sl^NUϸ<&15V-NL;79dB@D@D߱6/g\xer #ELhhR;!~°ƪũiLhhR;![r 5V-L;7;dB@D@Dr*n(oBbWC@x4v{r\N_wkyP%_8N ;'KhJl-Oo:ݦۂfWE\1  0CÓ#YϡЭ|s3S8)e$HcmEmw%a<[PKe[Wslv-ergonomic.map.gznu[+e]r6}W=U>MI638^^\\K<|wE*lx>l@C4i2.Aẙ9/~{@:xxWrY߿g"b6a"wژb%"]>u' kBk&"FA(dpZ/&Sy\I[Aܗlq⪱ɱ<Ō4ioKB匔U~: 8\\qNT^qNNy]K͋"-||G墑E1lNiq="ݓ2#0 *W%2W @8śbU*<2[/D+ŭ\0tFmtcyOu% nas<wYesP92Ȃ\Nh:"("(>'E#'2G9-8 ؠ涖y&e^izw仱cF۶$A$AEHw=4K'Ų.E56NzӒbTr^+;;~}'{_=={$v}?IYܭ~WU@s=Gs>)x|Mo:x~Ez^IYeEI\DQXu=Lm=Fc=FOLYhefO %Ĕ y KE_#Y&&,HMug}wV6uy_ {&|u2Kg;7 уi$G3!S~M\yW7~OK?;"? uo,&[X6X !~p!j_~%1d8VP\1D~5!] ?.B5{!:#^>x=Nf̒@\~UDȑʭeBɅ}! %yR^'/DxNfDur W,d~qN.8uՕxYDdT/3}14か?;a'bC?kxI~G䧓a܈B&AZO$Z9GCc1D ?W; o$/3(~G䧓ɐqe?;4CU/st2{|( g:2xs!3ASX'Bg|uYg2/dw=\1S0=A:c.%=θMʿzuŏرq;EcKC;}3Dv$[/;PdOgЈݐÓ*Z5$>όu234b.x rՇU/st2T34P lVuh,.dU o$?;"? &h+\BK"9Hx'OH LͶËy YUB?/O'X%Hl6X !޺U/st2d(d-,!+7~^NjFG"2uma٬X !~s!j_~%1d!FHbit.dU o$?;"? 7$FQkna,X !޸U/sT2 Wj .j2-\(/&-۳%x'xɔΠ` koDZ?O,ϳX؛2} sfhi **z,sy_(QԃAC}p5_*SV9fivW-6 Swyuz}E_S>٪oD&~fy$/Ƌbmdk.[Ii'jC?KNJ'dM̄LO3c T*-,s]?U/st2T3o{[X6X !>U/st23oEҏ.dU o/K[Q~G䧒a5=xTx?3@ 2&B䐣yLV,b1,X+lwmp'pF*ɊO9S.8i.lIafIs@)IZr3 pFpw-_:}K&(,5\1^l5;t;cr3Er @tҋ0K=?^qC|zjW?7pgpӌrPo:Yzr؆!7 HD17~|fdKW1L[&}#M]._/;PBNܩcKRWł\j_LƗqX^2! "mRrD ͮHWj0j[J5_˄IJUcxkcjJpbjhکp mMi3T}= 57ћ-ZRL;2! "m҃7mo\k54ћ-[RM;2! "m҃Q6mo\k5jEAU#Nv6AIl6C7.MfTN%Lho0M%ކMfTǦ2! "m҃I6zxjH 5[X:1d mc@3VVè Oo ZR=hr[qq`o^WBg r<- |LTrIMYY,mY#?IYmWӚlnwx:N:N>i| zJ l»Y!6V#tV 8C8m /hӉGfp pڈY]YSGo[ |QM'k[ $2UAg5S8=S}ЎA6 lόu2`˫40ֱ7 6[Xf"."̗e1i5E{-V&0+0.qqW fߣ_~,*>Wg8+r~߬Ek5=6a̋RNfw_b1JDB3d.:'=oIVz=/ׯq4ɟzm0EFp7hw_V(PPal`򵖗ӢdWla xnN(iUxaF:SY`/YoDBFDknUR+t~Ա`&`3ɅzSbrxҸ>8%I%קF:(r֌Cjfw"nL!@jAv/_~"E'b ַC@ћ=xxuhƻ*iEC0Kc4Чmw3P@GCsn008[PB Ȫ' 4h߰]UꦺHuN|PKe[Myno-nodeadkeys.map.gznu[+eYwHS}Μ#6-=dŧ PCr!p,)?'Խ+B]a~^b pG?gUN/]j2rO/Ж\P]Dzee2.B!bgWa)+ꩅ` XNEǚHŚP"zS i?VByZRny{?{b"Q"DL5*uSܬ_F0_QDX f;e]-ʒxm ESX4D8&;넗⃌tO1&0u:VT !C $Y 6'Ug! \@esfc,b9S ebC?PfSViM2Zen7<4Kt[7(B$[s&-nn{R6mwv}{&0LLDQ|G(,Zo;1z?ћ@ˋb䮘#wşR1SgQ㲌|=Ƌb/Ƌ~c* "q5K,/iI[9qVPnЦ-r.p \ fjV"?JanEBq-Px&1r_5]۞CX[Q`Faǁ-ϻWݩ_M;f ^DxM0f#΍݃?s~db¯YB&x³1[ O!ܗ&N֫m$A2siL ġ8qR˗s͂ $d\|; s 1_[7!1t@x9MfAwtq)A#Йg| Р ;_i:6 KBM :μq|_,\Xh܇rNӱYR9՜L0 t0\H hI4{?tlt'M,4%@w:B_x"\. h܃rNӱYН4]hJЁt&Eӱfas)ٗx.^h;V w߮;3 c= ҙAIi.U.?|9,΀Or)@^eL0LcySV![_i:6 3\q)N|&T%%9%u^ZӦhĒ ZSZenVhV&/&c:d*iȊ:۬TƃȂ(sOȑ99a+vSBu^ h[;vfMg+d1$$I "h*_!O2%&Nax9Mfw|k >C(wIŋL4w!ŕ/4ީ), x;0 zETٌay37!K_i:6 3S\3hN|&BS -dXm9qR\rNӱYRA0gY%_n[R؛G_i:6 3\q)N|&Zӹ2%t8}Jם~C*;>ɥ8g^5Uw{M\bMnBݗn9*@e&TEŻ4A_ {Z7d{NױYw7N a-L!?pS9qR圦c;>ɥ8}ng6R.RԊm6ZC VNQyX{kE#Yu *ogSFeʃ|01jRԑ2_!O/q7́;gR,-Zd`ӗ0`V΄H^I͖0OwqYZO55tUdUY\>|30TP<'yRj){ZUiYF| &,9R\_uN&j+}<5⤰Xo󁏨곶r#ƈ1b#Fl~cFzީ le/olʶ/?o?O/xgdVw-0Ka[lf1pyޔ[0ka5N~Lv.__;PBzDcDeW嚪ז&lf=ԮvU!¡['=|vEidpUv[4ժ]셻Э2={ɦ5κ-zj^ *3)ٓT pyxSخg]UppVIɞdj`5\t޻-zj^ *3)LT cFgⰧVSٛC8CLJ$e7UبQy8U̮gfЭ2=tN(w[*un3{]UppVIɞdfz[jĮ u[*ua3{]UppVI9ts5n5;дVn-ZEZ_}_3ٓ@nVQ!y(O ;'eƞh,EBGo atOa:A`Gpu3ߡwgMV͜FatFAv.unDxl$0 0jH +$`3'Q݇Qs⠽ڤmMvKg^wNao#Yi}0` "e05I`FaSq&"a]+$`3'Q݇QsA; :N"< 6s}5\\ SG妑]Lh#-5x!&q f,N"`3'Q݇Q}' EºVIfN0栕wl#wa(è9hۉHX׉wa(è9h;RWU0 &X;I^ 2 s1oDk⻂`Jw %m%)+ڑ [e/xS pV~~LfVw%EFl=Mh7"-/>ٯݶZQ$HRb~iEY~}mvAm]TZdw)< {f[.1KN kz}Dp7ƚEBu|7h`W^VH|:sV&_V5?KeI`i[u 5 wtU}c'x: Ozv-{u^٣AZar.=c H@򝓘®`mw y~:g׌ޒMC=;OhBO# TE~yvRĹNIvה=`ɗ,qK1ȑ99}Y|(E|1rm E_91[t)L:Տf6mvu4Lq4f KPB ҺrhРA;/퇦MsAM!ka_PKe[Öcz-qwerty.map.gznu[+e]YsH~_/Nlo{fxqdF_u ڒ0ud~Awۊˋ_7~^8xWFdM'hEpp *u,/hpɹ)$ 7z\,zdˏ T@T@SU.]:6ğp)"ۤhtU_Cm[U02Ӷ/("ڬ)Y-(ajA2ޭ㞌=T V<|st>Gst~|S8OSbGC !d@6XWŶm8NBn'Q8ED" Tjև]]!MP@T7PGÇ7wnзK:SO\8 A\r pl\7 5spDJט䝍i›jf]D)Ƃ lRXN]*@tNﴡf̩3 ˚T\cClRX%q2\'`f~sMpr9DC lRXN]0W(~ ~'{p'5fk,MjU+I !"N"N؇%lƍܡse0DzaӝWp) qTLF IcE;|N#0P?&!JХ\VEXp A>ڤVձ">K〈 |wD|:5K>weDNx8s vA;Z YբaS=:<CVmXca/Lm.nݠq֐U'''''''湟Pf }զD^ p[Qv`v`NQ{6JdUS3b/Emܘ= 'Ċ$]FzűH18\cp =1}S3Kdq4>;*> ̲=CgܥYF-9:h+C+] aS0AT M~_cp#Np8 ؆^qh 8_~rp ?N Yeַ.o% p`E1w\cA_՚%bj:V\݆/`;b,3K7T6KƆ mRXmdq_R#PL(.(/l~M**4ϸh{DIPv%P D,DW(בo / >Jjz Hm`Hѐ*bb"?1_֜Օo-T֞K>uG#p)76s6YVHg;S_ -R>5~)I;zdlU_֭f?g~P3B1. 惿Oß\cIrҲlscE`<3QXz>1a#6\2;kpAIY-hQ&7%m`%`@,>s:hb4CvdE\cA7r'-h}OZ}huU3BP1ݝ8zc/5C '|6ՍlTix8a[S3\ppA808e N^ ڂ%jE6s}? <bfC @up(aaD-p5qA~5Q 5ײʀާ 4ѫ=d ³r9|dwwp=v߂SpcSpAN雖sR`$/ֿ**(R=W+5U"gn M~  7$\q";0dyIw(nt^ؤUNm?7 <TlΫqB.db'r֘RoK6nue`augg#TE}݁ ,Gdu0f3 .c/;<ŽRk7`a]:唍t,_WҬ; Ûu*,gܾ"AlNF^jtoͺa]>yGd=`a];%yYwUGwoug'r+AvldeUX^Q*,g"AlNF]]15Mj}nGdf97+AvleUXS[(lh3}a_ td#.#빵RroW0")KzP}AGdf97+Avf@W]f=6^ M;J%L F#^ ;3 fŇ )e<- p$*lDUTik\_?U^|'znTt;t N 8'뛆ۥ% @$@‘`# AAAϏG)%}]PrgIQO5GWV8Z0&{s#p"<~|IjQskkX 8c *~,"= kz H ս 0pq5 Y#;\58p^0CYIvS^bSnHMmtkPKe[7;;ca-fr-dvorak.map.gznu[+e[wHS}Ϟ#nBz؇43;l6 ԶY#JKVd9AF6/.fu;gr\MGtՈ:.puu-sZ_f3ab} |,^ɗ8 XXZZ\3)v`a1W>lbuTʺ]AZEǧ/<]8mNDy(Ҩ`-xԵ(\]Xlsmi<dxZ4(|]x(r$ɮf5&0UZZ5BR&))+Y"•{RI;Z١ TUCkB֮O6G!HmXD|KY 'bbBV~ P$O!`vCs9na8E%('\C:6 *v,v3c]X?IisUY|H|[7$\I)Ұ)[uwT+N=AIWI4&HN)^e2RĜRߖ״g̃uG|чo9/AQܥT'܂tcx_/x *iߢх@AyydJ7y*= R.Fy6OV*y3ۧk]X8n#FYQzKw`W`TR>]D)^eji,=ɓlKYbC ;mqs)O{etkYt{:Y]yٰ將?6,\FSБp>ҟ7l9Cc9X,k_|pI|OC. vӡBh}MM%moD>U zkrXܡBYF׾&&g67"*~}˻ [;4C6,\FS0 evh,omѵ Y >ȧ\C"݉(ޗDW /^RŬ ~˟-Y]X$8w%XgŢ }).ֶC;83{B`;jbO8!!!'bO`qaibUԡ# etko|.i|#bwJRAY2etkY5%@t'.4l9th,|257> T1\4l9lߡBn}MM%moD>U '.ٰNfu/Fg#mɨERa9Xt!^,k_|pI|OB@.I(sO6둿v Y >ȧaX_:er257> T1\g-:4C_mѵ Y >ȧ >krXѡB\,k_|pI|.L677R!݆EĶ3˻Mv\mX-cbl7ّ!YРr:4*nuE܈Q.~ll66f>du4[5<G^<~rnQ^M$RmyJ6ASRD%Hnp0vvvvvvvxC$U֋N!RQ'I~{:Tmgi&8TֵL ۭ!q`O`O`O`O`O`O`O<ҡN.'CJi2e6,\FSP=,{5Ɏ\96g/ \ψ#mp .U'7-k]R257> T1(ŻEÖþth,YF׾&&g67"*sWTlaa257> bP jy#Y\M;%s`Ι$`q-LU8 Cqz6l9sr/etko|.i|#bXY8-}X!YF׾&&g67"*7WA԰?;4C,k_|pI|OC0@;VMz/2OȗWSa`ehX'^%.`4gjۧ ;.Lu ȍܣVޡӷWo*TP>1CzTOYJ4 .VtoVx\HHhI9wj:)՝Wj-Z4{̅HKMJzGNUmz+ -[Rt?s!!"R*{T}O\HHhԤw譪hJuUjTO\HHhԤwhJfjnWsO͏ tIIX[USN9UjTCO\HHhԤw&)ޚUjT[s!!"R!jzkG Ux4  M v@5W]+z~^x,E^E޳Lu e}圱  Hs8Ҕ>_#,r%ɋf2*6H1tl6F >4<9jѼhAZ С 6 (T?hCm47w5k!q}j2כ8#Z+U;*yyΫ&3- }{2$z%o;*yy[OfgF)4hR{~!,7.J[a=VߦI_FjX;FL3i>\}$qǍz y 6J6DvA&dzٵy+I|ʲrX$9*. ֫lWV'됐ӓyҾItgiQH'Y|خ٢b\Hv5y)fAVc``````<Q''OIe*^xiΏ.p \v 6EZE;V hNU g.00E;KPB udUΙoц X(dwS\DžGtakPKe[:x it-mac.map.gznu[+eKs8)|*!Q:!If(ZJKa|(&[W@7! ;r诞pGtI.]͓xONޓ"QYe~9ȟ,X/XXژx'Y\Mwհ_e|០1giA ׊/i7&0ܭƪPUqpEoŸXfto#ʱ+"dYį/Nj濣qFv*JYm) ~՘8)ĿP0"1WH&3g\&$˸lu@IEM  !QcK1z EF/_Ղ*K wE2" T5-EM+Pkl}s[tgاy?]U 9>ȧC)d|j6H,ҬmU %uG>=N`8@16JAbD֥YE۪;kp(A'ӃL] b/kdAbDѥYE۪;k(A'oV+R"1{Z "ͥYE۪K_|z0T+NR;$CdqiVѶ*'$y|O _.$Cd4h[|spI|Oz@"FPD._yKkx=ēqdD.GgOwPuƕX .4h[|spI|Ocgx/xtjfmo|.|=P$䉭Jq:KGc$]tލGGGG%yxTo7苗HΏOИeęlEAu~ױ|zӃ!]lHm O`;+U=Xb7rȇ P+&!ȉ7Hg\U I.ə'# @ȧC"i" 'GjX ]U 9>ȧC"L|6tYAb1DKU7>`VMRI"?r˳\7~|\>>ʧC"l"<zGV xwd+ \g%y$\8W3͚|yPw  !_\U I.I+ 7keg(劭Z'&6iQ^+8ua!ǡl!(AS-ǻ4&Htٔq& CkP{/deP W޻4ĕ0`zLE3OV`IBe5t=4=+*du`;SIBT7ٱo)G=¯/v.(QvdfW֯ ȧC=^#wwdAbDƥYE۪;k0PO͜ăH>7H,piVѶ*:# y_.-$Cd]U 9>ȧC=C\j'K/f@w $_]U ARDтπR d!c-TvI6 2{LVӁ:5 2@2D79C=XpZbio>ͫs4'un$ǞdtYgj "hDzp$Ԫ^Un:g+u+ê4VwEkZEkKkmw5r(x^ ϲ跆CE:Twb?"_TZOf03J`MW؆!S F|Zo4-#6b#voug34"DO(΀{忀>} 6D|1[UX^ՙ6N93~+ԅOJc M;י6NIgiW5,\n*SA mt&쪞ކO*R M;֙6NIgˮZger Ǧי6NIgˮZ Fj~UNMLht3eWc-^ *ȴSQ mtfҜ^"m_F/0Jqjکi mt؜^"m+Tn*řifu&D@MSN䁲#-aTX̣mE\EG՝S@gro#<.H@NhJt%n/6ܬdq".Ur>d4@#4CpOPdV*ObVpڅS}VŬN I; :3t+Y iNI(8)eT[o`3:A ´Џ8ЗJO+*o`]n+".>:ވ>)$HSb{_"fo*ko*uH.tRV{H 8ѻ蚽wdUI.I-+/80EFp7lw./;$HSb k!/iƮپnxn.xy@ wȌHW}$3i 'k[,"5]z3@ 䅓zg"G|xqO}9q39RG3*ig#]/8-KN[*qn'>"D"ry]Z7^;-m{ɘB?fH35z}^u7)7cۀmq6Lp6 }3Ά=D!BY4Fco ,zw_!?ěYPKe[Ûse-nodeadkeys.map.gznu[+e[w8S}Ϟcn|'rw\mK]~ޭ#<#i1 Tc@@I$` ƔeŠ2]F0OH!I$Nyo WEܠ, g0=~]o%[֣h=Z֣gz1C1j?u=şM0mf1`e9zE{^}cʧuxrs-XŔоjWtVXlJ>nXYe1s2%h Z%h5t>=53Fϱ޸]wh"rNѾY Oq)Ά`W0dJ_饞󰦑.YYMgV_v&ELhӉX2Ͳ4+QĨsG-909$"MjCۊt,v5k{HԃAWČ*QLbUKKX/rNѾY OqЬ B)*((;4BSox玧,Lxf+crbЪ)c(MĐuS)7 ).9iN|f04+eXUC1l9Ef7>ɥ8=o> fŒ|c^Hi`o;4CrNѾY Or)NΥ8#PXO%4IϗxvԔo|Kqr. > zX=}`4K.f+v|"ߛr%{@uTa@PKe^" hx=MDr͊2^NվYw7L ,lC*E&bH)$lw>3oȧBs)o佀!S3 +4'Jdt zԃf0ۄ&91 lf:#)uTH35!L>?sNP\eN bEV޷X}k``grOS0D w;D)+t5B,Ś`|BF3XoSȻ|˳6oҡRmzn8fA:xhA gHjW3s\#oĘ)* ūSotgMt;| KIL5̧MD⏦SotgM5%@w:3c>1Iq:D)^6圢};k:9St'3=VكD )~m9Ef7.ȧ|@2_L_^~N5T=?IH` Ld+5O =^I i\Ol"_>|G3CLdB@:/)Y>WtۜYN| fP+IhU$>jΊ2 ִKiEa{ڼ`?Zh1Z?k;5 ͢֋[OVa`rPof+M^,*l0QF "]6no`tR؈Gm:;i*o=TPB=jc>ҫe`זG| &-V׶ Ltؗ~+4kcVm;2! "k24]F'uz f-V v5Ng^]3RiQUm]&D@tMSuWc:z^Um]&D@tMSbuWcgBŪԱmƻLL3.YF :zAUMv5Ng&]Kdӽ-5-VNm;7eB@D@d:%!v/MԀ0j*uf۹." &)b@W}Qo [JFvlE\EG5uBZ_4<.H@D.>*-łJ\埯߱e^|%wˇŮbۻhF7?P&VI^ius8C85'O'^uj坄"ts8C85'm@'^uf坄"ts8C85'mH'&8tuu_ f0yF973Xw w9,$p pjN1%jd坄"ts8C85'N1%; E,$p pjN)/s%x7ξ]bhf:ߌ:G wYy'YINT>%o坄"ts8C85'|P«VI(Bg1'S8=Ss'#JxՑwYINԜ+̽y^=0 |&۸dAd9QpUyrX*>};U5+'+o WLJKZ-eZ(& mBЦMJ..}֫ -XyvlE\EG5^ÿz`˨ŪvlE\EG՝v?K%ȟn q1nW>6Be纺{#Y{n>ksJ kyLJ#yeE۷2 yzf56:$OXgx4R˼WbaxSz6g*YQA@@uFQguFnZOgyrgXUeFR kWzSfu8~5FQc5~r5g3U&KeyQ$(5[Lމ&) !:G>ͥ/?woۿ4oR>/x #Θ=Yı{Pq05&>-JFBz/^$Єw%e9Eǚ;hsiN|ƺ3tlp>h"겜cM_ɹ4'w@> 3fǎĪ^S4B7]):ޱESìQ'Н`Z"s4A]St t{:g:?hJ̀&b({k'Ҝ3MgP|/0nZh"鲜cM5ta(AG/0~{#W ]R;̀&"(r5Awtө:мQtitr)~ ܾE  w# G02RSr.e67}B9 Jr5w|Ksfs >:ésS7QJ^7ED %uYNѱ&NOsiΌN| j3/?'Ī8{|j %b R*x>B~E1ӧY%Ӯ̎ʆK{[ ͳ<7tgť99GtmOŸk{/'o5d,ۥo]vQ*J @*byE^ԟ;\ ̀&"(Uu:Mб&p- gK0}sG%U"ZD %vYNѱ&N/J8}5ns|pa*)%d W*Oˢ\KRSc Mc_.gFYFzPK mYzqS6,[3w3 ]s_.ĘŪZݷGl$7tiynVE*"&/2MܯPz,* |Џ t~_6HfJ!Tw\SYN2d uYO2Io"qhwj7ݍzި7zϸcnf`j447{j*&")_) V׮01N F0~GF, -_Cc5bJ62Jr5w |'Ҝ3ZjH<%% h",XtGMt{: X2}AZAMDP.):QMgt{:hfU@2fRP?D%^vYNѱ&莚N┠#Q0^MݱaMP]St 6w@>N[?zM%S%_8~Hߺ,*3g,-\`ӷ0Qg{rOͻsߴ\ԔTz;y(rO_.xN: %Q)32mY3m-[VZ0bIê ׃+y<õx%uFYbZM~.4Ynq&7kmeG;b肛pN/œ^Rc#}wۦh3r7~`ӌWoY/nt1j5Eb_4}{gP5u+؈}WMUx[7PB UH3!wuY K 3qOk 2rG v =F`W" Y(3TMj-\j5pW" Y(ijԼ-5-zr_+ ,j|$YT}`Fo͢FGMշnI gݢ'W3;B@D@7%v6Uߺ=&5=Z|/ޕn5J>2"S0h[juns]YfQ#-25oK Sv=Z]bW" Y(b@V aԆ珆f=Z=hE\EǥG}CG?Fyȱ  H9\b><ʢ%ίUY}{v Λaۻ*J{ _ebvŜNtN E; ?tnN"# s8}86B&Ѕe;0XIN.H^eS%isG{s f0?({FZ- YȟbNptE; ?tjN"# s8}86L&Йe;0XIN.ڹh_d7ξ] N:5l|L߲D6bNp條{ d ,IdbNptѪ7ڡLe;0XIN.ZFۓ ?Գl'9 >Eh_,^  uJ|ۤn.<0` 1ox@f;G=[}n0 L`jwSg%Y`o-n(ժGkWw.".>8.5fl _]Z,Ԑ/0]@xvu"."{!Aj}>v}]IW-c6J/ 2Io>H 8պfiEG{X̟wϯ{h=a8X?}ΰf] I XWX}imYYdo? *TV*РAW$'z?r PKe[((no-smi_nodeadkeys.map.gznu[+e[8S{Ξgf'ͦ'>noۦ8Iϧ_J*NbUI%~"HA[q /t+,_/^I|'oE_P݌e^5}x8[ OxVX|I걅` XΊŌ5k<[QzʭvS~Δq"Qq\nKS)iÛ1 c"*+'{m&B]D^,*EW@+P[{myɕfeܢ_".E~huP TzP݌]#=v*kS!NX)،UFA8lV;,_*ENV.p \f,LE浈fJ$ql]j'2.nvTDIV,sagb~*hZhZ`~&aZD8Ӎ"7DwbmV췢.s |BcQMMPb5# kBO_[iY֭iw{=Xq =<1G39-?ENMlo{ca9E{^E{m{X/iԭ _$ӣ+ЂlS ME};tp \y0kB5~tY-즽T ֓<Ӱ⻬ّxcG -@ q)ŋj˻һC;W͂`,WnGPq0w&\6 Ɉd˲Z?r}̥9``\AFZĿr})4'wB> p*'Gthu r}Ҝp|'pȣ[1ϫ= LޡHo5͂BPtO@owr@ɑ);:r}qiNɥ9`.SCTɔgvwhu i5͂o|KsNǃgC=$9O:18AC[Qo|\3M 'wB> }F@ȜӍy|:& 8:n27qﻎǝ10JOoeZ?r}qiNnJN|<4#ؔuhu r}Ҝ0 x0zDb!My3``f3Z&cXHb,d]VEOh8Ħm 1111"(7]WV'̂`;wfy+~rx Ylmt;W}Uy[Qo|\3q 'wB> yjД'뷼꽊AX{ε8, `kP AyP6+qF2 9S1$$^Uf7>ͥ9Sp|'Wdwwhu Ӷ\j,Fߓ`+%Ehow$~n5͂o|ĥ9%NǃY 5 Ca?EҖo|ĥ9%NǃY 5OԄX}/.,b.DOOkʁ,Ё TG+2~Z׻bl.,o;:r}_0\|;!z/ZrO_Zě\j,Κ.H %@t𝐏CuR`5!gҡ1H-ר7 !%[Ks|'W;VfI!$^Uf7>ͥ9p|'ЬdQv(_x(PO3{::?r};kpd(A'W.׹O!+viu/r};k3gV.[Duܱ|$ޖkTYPtO@g5*Ɖ^=or: K D "OM,g*VB>l)8X-ll`PqģUI.+IYw9 AxP"W"0n֩ȋ$E[bQsi#h1ZhwbqS ronny"\i=T?70`>reem 䴋f͔NԮ 6b#Icsg3_՛, *TO`,gO_}ȖRb*7?a5τM#9zUEWbUj;FҟτMwJ9x*սYrV]iN)gNrTo\Eaj`ۥ` &rꪮuy̪7W[j5_τMwJ9SlZuU׺i}Z_7C# :w|J7ս;58c85'Q'gY))DWշDEHNOZzDXF"tVk$p p'-=~{w"^ Jr›(h2 2~%[ $HQbʇYz/wVþa._d^"Nn?WS)RDB3d.&ꍘ}W"^ϝ~O:׵Нa#Ջp7lw^eH|:7/Lfy}\'gx~J|vrAѯB%7Vo+ދUI,"5ڼ^"gEQ/H@ye.uHHI:^3zo ђE|ے>Q}il^ޯfUoT8W8-qqs’YBVCWG)y#' WO*˚)W{p \Ь*ies0S7ȧf E:{lݬaau6D;oC *h>-РAk?eX_qq)6]KPKe[*1OO de-T3.map.gznu[+e_w#Ǒ)g!A!AݞYۻ^k<DK\"[/A"#E{f:GBU?}~xs_W_p}Cϗq-ZƵ<7=VOD/.qy ~xV}Dؼ{3 S\|鱻w&2f.; a3q0P"qجIQuީte@/1ĵ,;f%lԢlz:Tv 3 mvTmtlz<*h1UѮ,0Y^д*9~]rZ9BLn|Nm?(NʮS(3 mvxT]^gjj+Uravtɱ'50J ՍIN!T S 5UqPI`0 [rjYbA|Dnτsms6Sϕ+fۗ eAV.zpLUhVr8^0 ,jHj\jTV?wR2C?n߅uZY% E@AYՈxc2n-jK7!TS' A͎fKՎqS%Zdзq-1(˜SBD6DH6\9s.wKDv5P7tթ]c6;YQ*ƬNbP퉵RmPmJ9/2Ԏ.=P5Jv.>7c0AwzŠqTBNg EJӦ|KNԣȢ:Pw]M9@-f[ eAseV=H.LUhf;U4OE)n6˥#3hZjFKʼf"xҌtIyjI7PZLh6@C4;^!-U;.] \C*+V޴^jQIlljw^^t:kBZH4[m_w⾆BdA]ԕ+ % }_ڋr6MwCͶ8o΃˽SEeE (Zo?~%doO6xz7e ) u9y:y7U ^CÝ Oć/s=m7~sw/3`]Ţ UTGMP[OTVRzmTft͎>-U;xoQYx5,dH\ɒ#N =^0zg!<OnBd7x'Gw/P5VAQhX0j4V!Y!W"/^JqbOXar V8 <4*tׇOa٪TƂT1$Gh|X|0F1 l옢+[ 3Rq|늪T ftDjqRcn%Ge  'ǜ*d9"|b5 ?݄U-GZ% E؀#'S`W%H~8<+%eB<"];MQGVnjj~e|c>~u*p:Q5xlZsZ0qs.Ҹ.tn6D~ @)CY!3'SΈI-<&ڭdo;kM鶗N ;ԮBΨ.Fى+ZnNd'N# mrLα3Y$ة8ɱ)do;%dSA8 kS [ѯB%9*L}.(T2@]/(Vr6x`ZlUz1Ng2K9!%.9UWYL3-rDnh -(vv۾ye\ DY :#Ɩ}V=/O4yu>+kh2gҲ<¢] 88JkHA"(f]zVpƹSI7 PdJee@IAΟˡMB |oSj xPbB ᚍ"6ח 쭄xrsuƩ,ѝ7u: J8d't@: 3@TN"u馞SׁN@]ȱD)@"g":Du[g\*2[A=5^8#H!)j29n̿p#7I;PW(d(BcSsOF1ow"g*zXogB~XZX{*2/ƋC͓#%_1$4@Mw~\TTGUR<4c|W**7s p 7%4헭Ii'/?kn\غgae9x}گۗv ~u;HR}IRwԞ']Mj$; $R#I  D""7,nLMJ*Cj1ЦHTsEHbIs"Hݚ" n"D6uQ \sq:Y}ZOy?Ӡ%@L զ^DOFF1ɋGhW*kr4^t^!V_<)ow/IZM/Cw 5^ ۅw񌧏D/#w_M'WCw{_?8u9C!XF"wW}*șW(Q2[]oUc0oR+QYdJC(EBczIJp(c4v(sHIՑ]bjt 7cQͤ'M$; EFma(Rr( MHtt 7AU̯p3P&JՑ]n D?|>ک* S.K*:}A>UL㒢oÿ́u69Z( $[T ΐL&ӛ 2(or¸Vf{ ;*ֹ-?|y͞f W\ƻw20<_ϱdg@sд9ܖM˶eZc;uW-%^5"آLXףӗ;)!2ܶx|Vmh벅ƹZӻJQxK2{4)WIcMѠ7=Rnc `5PBEϕP/kUC⒕F*&VD yT!S0IגjiZV/T! q ⵡLO<׆T%JP'ƎSlt;pvC&HvlZR(F-g#պ*F1b<hȤHc#V*bDMQr)6fC zP(٘ 9"^32z4§0K~R6mB$Vv ^VBh҄/}pjtlDyU^q}CELq7@vgCfge[u,Ӛcqlz~+? i*KT}4"ELXiKYa~5eesD 54vvhdy84J [AܜezӂΦPՌ{Qzn7Ocn$IO"TkT*Uy*F Tv OcQ,I S&DQJ< xAkKѝ^kȱ_k98VBGQh911j{zN0]ySmcrƵ NT #k gCZǐ(%|`0Gf3d2TO6B$o+]@IAzWb( a>y`Ql*HRf(Y2rOqӖIfL :BUKUkGy)6FT,!0dEj(ƺgEL> 4rx-T\41*>LȋNj1DD٪P Ic{FKBd89WsceؐC[2H7:;O]d1IL;պH9:whH¤HV(%h+rG(Br"P4wBC?QM QwqE YOɌ)6j7B!n$V% m:"Utt5ţꕸ~QS[?VnZUɭiͱ86[ޟݮc[_jxF K3a):s<+ oݯ񸻭φW ,X SVՀ0Rn"c(;Hkɢ |W"_m[MF`7'dPFDy#IcFK5CdȎ>mX'--l UWWq娧XO?r4mLG$9JFRH0Zb@hp4IeJѠ܈SɆ:A)fCàLrT@+Qm2B\$KDzދBFs D!ͳI_U"u7j¨),r*H7+Ŭ~Dqhz]y ls&26k5ݳ 篟FNXx~E6sp]!Ic;\,[>~T7ِgα6O\kQjCBQord.z|]g vDrODLQbH)[3u:"2B#ֶHs{i9[93%B݌oVS+on:'6N5H2=lݗ*p0^:$(DOc6̧Yq2㓕pAG]4I'MM}grXU|G| U"DŽ®)=cF;'<s]"4d"bC4SeXD"_(9Dlɑ$5$ CUR3a/(7Ez$; ZX2zq"òYj֓wf5a}' EbDͱ^9'#fַ;c=,D5z-`sFzCTXA=յ]X1'1&5 n̾sK"G/VU酠,߫~zY泜BM\,KeU2'_O?}Gleؗ/c_8j{˿˿˿?5.7l6ƦyƤ{$5?7闫vgc~4w 0ʄ'3(NDQ sM֋[ pQj[fX#aJ^vlXU7Zn{j=vG"P3(&Dr˜5,dVrFʤFGeoDkHҰZGKI_AIfK 2B2\C\;QOsh$"IsjJa*GWNh,*%B1i!8ʤ(1JdATI{ .lth\*iVI˴UҲݮ{t_!(RtxV0!y?P+[ UB0=քsG”.(G<0FP$e =blL@$DV`1zVbw( a>y`Ql*HޡRf(Y2nOqIfK 2BU UkG9)z8u!Q$; tRQ#Vj3P9)EED(&-DG%F)q4(x}9aNP0h,m)&w6Z͹%OeNb6BgZ7T[D0ny`Ql*HޡRf(Y2nOqIfK 2BU UkG9)QƺIG$9JFRH0Zb@hp4IeJѠSɆ:A)fCàLrT@L{ըVsq%cYSEX֍/*F5OaԔm9WGA⛕gCY"θ{j<TI/ omthZomlreZst.^X}ve]U:>DUR#Wʄ9G?Lyѯqw[ o*iqkB#aJPvo#SԀ?Rn#c(AH2kA1i& o"+0QYmi;0B~r<0ވ(6{b$ilb)rh,p'I$M*ε=GnƺI(:G֨T FrTpƢY""LZ8<׃y0P'(lh4cI UUJ[WD\'KDzbދBFs D!ͳI_U"u7j¨),r*H7+5Ά~Dqhzuy < lthZllreZst=?>vU t|UI_!(RtxV0!_ ߍmu7&qn&$;t {rC GZY'T I69|Y"m[MݡF`?(dPFD٫#Ic{FKCdȸ>MZ'--l U-XWq娧9vp4mLG$9JFRH0Zb@hp4IeJѠSɆ:A)fCàLrT@hT*ڼ"j5<^>;^5\ iNjRmaTFMfSquD-Yq6%⌋@֫cyLt3VIMnLkΩpo/8;PI_g"LXuKYa~5|IVC?uBP=ք sG”.v{U5 H=ʐD?<?P̚MPL5zWb( a>y`Ql*H⡑Rf(Y2oOqIK 4BUUǤ)I=EORn;dHF:ϐTkT*UI*F Tv IcQ,1I DR&DQJ$ ʞxA<Řl"i64 1$IEk QͫVtq&eYSEX/*#FOaԔm69WGQ❕ZgCY&θ j<TK/{[--jicaps{wW|w6VvT~TT*sA%:4'O(EBp=քsG”.vsxE1 (i OX,awDq+IGYQ<7 Pܟڃ06"^I;4Xʬ% @-nlieKj}j(C=zMn[~?P.>d2TdJӣ) EED'&-DC%F)14(w/8 aNL0}9vS`5*vbfk\WV(fjSq(uf2uKJQS5y5NY7e5I @뙭#iLUt7M*Z6UIZ(߼QAӈS2aP>,E'g'Zz 뚅!{ ㎄)] j)7z1~x5BBEOkp%2hvӴ؎ ya`Bv.eKD[ 46Uhd(4JRQAezЂP{Qyn7bvȤjJa*WʿN_,*%0i!Ǥ(1JAmW=ȑȐ uRˆA3fhP5Ty3L8EV{Qxhs(yv:SukIJD7Q-O5o Mi$8S|o]3pZ]xSymCV& X5G:wE9, rU_+(gRt&yV0ae*ƃ:$ZW C;X S$r@CYGZgXc(T469FrDiEzXb(# a>y`Ql+HRf(Y2sOqIL U3G#moMꈤ׏ʖfː uXz"w~ .zEONtlY6|gLxXwlܚϿs|z9A3E:-gdxGNX ^GU8ʸ gc$úko rxºp\\"|z*$Ha랢nuuq2*Ðr_n]q,[dX2 :sa^Q9\NI2L p#&e€i`hǀM? G :v[XԡG@a_ê#b۹U ;ilHض-D6T{s o/?jcq~"YnOre8h+(&I5Ajn\7aX^p\Cp'i??< VG(GYjr޻QK}| #O 6b69j} ٫Je5愄}Gsr췣9sgEc_/\L쭥 1e&\6viVXS˝F pe! c$; D.bs89\R\ԅ.BgrLnIv?p1[f"f;osؘaZʡ(a1*CX XJA= U}&+!ӵ|&2 R|ogֶuhMNV)Dgfl{ۚQ*齊+[f6WX629@g./Fvq۾y廟beR|XN &]񸻭4/ AX" SVBRn0#c(BHkkA1i6& o+0QYdmil0g y> B$ Y,e ndwjd )T`^ŹvۍX2IE@(J!1hU6?XT4KbB$qI+QbG%z#O&8 f2QіjR|g՜k\xIXV{Q(hns(yv:uKJQYT5ezENiзfo3.Z/o61UK[%6JZ6U29:7d! Tو2aQ>,EgBn tohq8s{5!ܑ0K5H=JD?<Һ>gPL LT9FojZ0A!;P܇27"^I;4Xʬ% @- n2=liAfSjs(G=EQn7d8d'Q5*BbѪ#\m~*G;hŤH(V(%O G"L6 Jq4͘e-BCUդRQ9׸ ةPQHtRƗjkF 0j6#ҠoJ,g\=^lcOևu7e[%-Ӛ=z߿迺2aQ>,EgBnp=wM\%-4cMH0w$LjkF92E #11R<$.OXG7,r޶մ yaBvx?eoD 14whdY94J[Aܤez҂̦PՂ{QzuWGcv$qNTkT*U9*F Tv GcQ,I Q&DQJ xAMZ'--l U-XWq娧9vp4mLG$9JFRH0Zb@hp4IeJѠSɆ:A)fCàLrT@hT*ڼ"j5<^>;^5\ iNjRmaTFMfSquD-Yq6%⌋@֫cyLjr Qu`e[%-Ӛsubyݮj1BP&,9ʇ0`Bȫ~-_F_:Z{\%-4cMH0w$L eGccx %Hi]f P[ZC$o"+0QYmi;0B~r<0ވ(6{b$ilb)rh,p'I$M*εwRƺm֜HvZR)$FQ1grS8fPLZ$2i%JRhP^r)dCGaЌY&9*R \oN{ըVsq%cYSEX֍/*F5OaԔm9WGA⛕gCY"θ{j<gZ%ݜ @1Uұi}c&J:I;=:c[&WU/]T$(:LǙ//V,|YC֚tczhik"V#aJEc{ ʑ)4ZnD0VdO: =mbM.:º#wXoYA= ˡߣyctdD&4lpd38JXAxz)ǦPV5*cԔ'ۍCX2i u1zf@ ,4=%b*rWDN!f,*%1i!ɤ(1J~p=ȑX uR̆A3f$h5S5TyUn4,YhQ))S)Z k" f$2Y7T[D&QSzT\Fzj-f7>YB17/)?k1Y;QvsdO@^_D?5U*Q]g 0?;?ʣQ8dw{֡Q8* GF Gʔpz 5?pK3P# ^χޮ~\hVH[4K.V-lal 13>wtt%RfrӣH>?m|A$v=ԝ"HY Uu*배VR=+a{':-6$:XSg$kK0p`./*A dHY?E>pT !$f:Ujml}$v ?:w.~H3P@8˟}_GćuG3e7֍ udsdzf<\W*>|H]gEZ1Y u*jmTB sZ\Rr4 ¸\2by\dy r^4Բ .2=99HH0z7@$; idZ ZW)g`2 LE^e*J-ѾVPEAi625;uSE#F/Gcb?ڕ̘LiS q, \(z\Eq5MQ HZw/rMo+ o/~S߽ty<;>a|޷O]|pwxW<]m޼= ZߖPҡm6%4oWOZje:<-ۏVipp6o[IU?(ۏ.Pҡm73p>mq{OWO?> ZomӸ)ix|zy?ݔ|ԴttthMyO[ӋU?ݖ|[ԴttthMyӶO[Ӌޟ__]~̷CMKKKiܔ?az{.^zZe1%jZ:\:\:M<"ۻxzq =ӫ 5-..ڦqS^>yiPƧm?=?+_KKK7@Ǘ O{ɜe$H'M^www/o˻>w?<ۇCP˾}?L$I,X&L>^4^ס]yÒtIIEzY/g%5e^<CKTfKH:.ˢn8y~L5u-c^Ƽy^^5Ӈ_ÒtIIE}Yc<@eaI$}ݽ,1t[l^z2$]Fq^,گnn6CdKoKo?w_i΋2$]Fa^,1tUl^z2$]Fqў^Ѿxy8^?<,It\W^g*3K%k$o?~|}8'"a2FXI,?,?,?,?,?,?~/FW]\sxgO@߸nmwgu{> 'Q&2eN˜9-sOwAko}q14X<{ lM.x]$ޒ2P//ru. \_&pʪ`1N8&M=$ <).u e XM ;lq!.[NԦv[znFrn<=|"noH^w:Wd8b>oCΥu΂h9+Loj>2;63ǭ7yޟ5 {]6F3 uG i<#93?oro {u:^Nb!SȜU3bu\$iyr؞t(O\iuvWX{`Do;"ޭϬ??_ W2.9b.Izw_|^<-Ω7p7p;AVNd[ܥr>nCns* NPd7Ɏ/ V='3{24~~SPnZg_v$O1tw(C {G{~W."MĜ?a=yIppyR\Tۢ"R{"Nq⒘k[6B_'W%cʯMڞA@yqdk/BoS^Ϧ , !1 FKbdB\4l! FKbdp>u4k`ٌ8$CTm07~^ O%U}g4l;$CTm07~^ O+jR'HX6+!_m07~^ O%i W䪁el07~^ O%àNo٬eCb1D FKbd?L|Oʫl GbՓVm`93ļ6dB? /䧒3m"n& ,!w6dB? /䧒|̌(]u{bϛ Ml8ijiW'h"aU1>+ +qJ __}"|U2d8$CTېa o,$?JjR 2vٍCb1D† S_~#g%1߀T2\P&BX69$CTؐa o,$?_ g7ruwOV! ;d"18S\'}¤b>lB7(N= ..OJ6L6|5KH 2f.$O3]N GylT+n[N@Ȇ^ڳHQm C3030L%kkQT>뷇M7ɧ뗭ھy3838QM%kMc 7^эfHw8ź]@lFAcN}Y7o"D!~AQ%c֛ن\kb0Ghgu=ץB@D@SUO9}2NEHRVGl֢." *5)tj[2pբb멿KJMJde5UjzkbWG4iJ1_ԥB@D@S&%}SX^ѴE+řf]*D@4UjR'.:nNꈂ纞wTIIXT=Vb8WGhߢKJMJd%EV[à^QԢRS." *5)bYMoM BZR\zoեB@D@S&=rG8- |L䲠O4]%yp[\~OҢ$y4*n;< !:Ng$>4|=shaxN_=63 8s8U6v tafFpzjІ|ЮxA4l<(NT ڈګMIy$SGZ}zgpgp6՛Jbo4HaN3S8=S5h|xA4l<(NT s^Цs 43 8s8UvZVk\Wm[7u3հQ43 8s8rm 4аQN3S8=S5h/!/hPF#8͌NNՠhOxAN4l<(NT Z;ҋ,+OoH/ B TDXxX0wWW.8R267qYYT4ϰ~7&6GZlZXO>Osԇg: ,h[DӍ#Zh8̣vʮE\Eܓ̷ oW6 SbH_@7^h0ndqJv m6A]f@EǪ8;DH#i{CnKIrg#aj>/{?h}# <0,_ľޭqF&UqW*v&Jy|.;O%== ~$/QB*m6ҕ|6@|*@xO;6HO"R=Vbߥ;P-_>)mL;g %5j㫵xѻPK"'񃥄=쟐h,]_}TE\'p3YoDӸ"""""""_ECZA%/^X5  5!Gr6mfD9R͆`?pFa6_C"āE-OOe$HcYQCq7L PKe[yyde-deadacute.map.gznu[+e[sHS}k]z؇ĉgf'3(/}oAXRl_CwkB0tyXdWǍ~#I3mdw4up \XcN= ŜٚpL&yzN,'ŢO5.ł [KɕO!"n0 L`jwʗcGƈ3ۚ]V;88Xȱ1r]q--<<(cQsH'*ٚ=gXwO~v L`S[UBEptksXg_Zu\o?.p WcLeNwD걟xXϤj׷\]TqBrl:͍RǣA h@457(\u70g]$lwٲcU;&0 0ҩD qp&eTe.UPBYa9>_1h=Z֣h=Z?rA$ŴP%w<J}"qLc@Fp-h/ڋh/}۫ҨƤ~Džx0XNސ4D >â~Zʢ˲ZH x799hn?Bt\J:N UNY(oʂMuζtsSrW7ETnT)z6MKmڧ[ǚ/x{"z0[7Vw ѝ)#G_O'Ca'.ElJ]ܸ d$RHqz2ėy_]Ut 3\rIN|z00 dW,ݣBV" g[wYVѱ&N%@w:=Օ+Fl<|YT .*:I@H>U/tBq X !~벬cMKr|ӃX@jՙq`X!eYEǚ;i VV`D/ vz@c˲5AwtA(A#S@3=%.k` ;?Wapt7=p.E0!3.әy]Ut 3\3)N|z0 ԟcSq%R=9xjɥ)?˲5w|_ȧCR'k*}!YXL:B鲬cM䒜Tq|Ӄ^#.[}P]h,]Ut 3\q1`WPN !5̀bcek \|;  P,t\톻}DD|@.?p3\rIN|z0T+BԇM\OLeYj\ݗ5QTY>֕MKNJ D "=8o#oE.UVEiZUǚ&.p_7`JV??`R>B벬cM]LCMx꓆bY^D}^A\(rG,C_D!bPJ|2'_We(L&(o |쳉S]'\[(0kvycƣh<Ɵv>]uu-H3՝G b37U .WW RM!z}Y}?o?jES$GQ{zÀB.*:IsE :N~PbAu`h,cMН4]0SW,) >^].4j2^ek|OQtGӃZyZAJ'\ ]Ut BE :N~z%.W .*:IӉQt;ʣP.t*Jŀ"kek|(A#Щ/߼o ro+&ܽd?$Y7Ooa҃\ d"b"1IZOd%e^{Е![ &̭ 9#}L@^"TJ``_"%U%t¬Xommb-FbٵX8XSJ_>\_Mv?l?f03^,y7w'C$1ME76~\kiPUFl>hl]+;PBzDUtcw?2'׆KyQOk3۲R23/v i vf=J5?w[" YSҙƗ[nn7\zf>mB@D@;KwJ:ކO{rԟ- ,)˶:Vy|'WO۲ҝlc\k՛?=R |/ܖvteUXFo7ɕjdSѶ,D@t3.%ކmv\|o- ,) KzzPAOTf>7ߖv36yE߆ž\:ShE\E'՝uSBg?FyJ]$/D .tTeWdUV\Hn!UU7dsw!t4@#4bG#ߡȰUdp1+S8݇S}ҺVŬNtNIvZunV# 8}8'OګЩ7f03^Z bVp IV JxbVpIV JxbVpUJAmG4D;hysxB8m%{8}8U'lOZ'kV# 8}8'xV JxbVpOf7υm0EF"vq6;yo/$)1Ffi򵑗ɗeŮپ$ n.DI@@@|aF#YXnlDBz\mAg )˺?FyJ]$/D.i y~Ҹ>t+u('T^4GWE[ Ut[Tb8"8"8"8"8"8"8"G>"DM9kMћ;sjO.p \1W>7?VHgj4nRgnl88B 1l| UVРAv^uSeM=ɺ^< PKe[(N>dd pl.map.gznu[+e[8S=/[N2M^^`,wƦq.I%i9AUDOim/[)-¿ŋm܉+Q%'.pG,sW""&oWlȱ;55bujRUnVcmڮ ("!A혍̘ ubEӁߖB(U`#mM4 %to*v֖E'< Eb_KR%BooLw'TlzUS&JB'ɥdųbSE~l,K2ݭ[QmU*6j:FmtFn }&:lox/[d]!l5w"> &j щ]-:Rd7o++QfcV l`*Yh$LB{MfKJŪ:f6=o|'dh/xu!3C-"5n@NRcZjTumz@U#Gc=FolZHשXfyh)6vh3R%4K.7 !A(夶"hO.I4嚎7jr2~K{7uA3ÃINZZe2̾єwlMq0!|;)'éMSҏCУ$f557>2p|'d83pkis3#z4ċ6t \|;!'ù3 (YPU0e"xf55Awtt )AG="B&TTh*ڬFӡ&`Yx;5'A&91VB-̧ME 6t t{:N~M~zkT羅h*۬Fӡ&Κ.-%@tBCtENmVc:vhFE"!\5dZh;YCMpeh9q2a<\OKGS1HnM2Ka9q24/6SQm.&/$%w^ ^gؼ'K _ez _/wV8k8vEQ>_3pIo͋FTr.̱^G4v&'{9vCBBOdڙMZ$h.&=J8$YCM 2 8 'zŮ 8M qf557>2p|'dhgkw0Ty1End Y桻oFo;7hSz,0_𝐏!H%"Zbˣ9/h*gmVP|##.) 'wB>NvF۔V'j/Y=@6t 't{:N~<#-hƥ=@ih:Y8I :='M~f--}Zlկo_aM kh:"q7GwJ> c~ǑY"VOw7^҃,{F2(S >~'THY:3-kzQ.ۇ XrV,llhfce/b+>T<މ2+h1R$(+ '3'Xi2% 4E.*+TLw;23Gsur' H@h8IE3r%d/_*?u f0Qꍓ|I^a"B. nƚӫڃFl>ilIgU~YPB UNKv [8{zo_" 6제'@/zWčX &ueZ_ U<(r:Û`Z7pQkЭ}UجA) QY"֨[/EYŃR>9wYU߹=f5-;j_ U<(bPcVCX(5ĭ&YŃR>vYU߹=f5Ft_" 6xP'.-2oG :zEQGQgn7W* KyQCPEqGQn7W*3@=V'Vè/tʣqq|Z?*dC ;'e*hJ"uŇWb]FdJϛ]UI%x:N:N?4|= 94uFDRYS8=Sh}t!9vz5 8c86\йc7 YS8=Sh#}^U=]:zY{~\o`3mF97Nִ6[ $rF?z5 8c8v/Xر۬Q))_S}Nt!8vz5 8c8v/'˥}ġ F\>_ҍ؍BfNNE;EB8vz5 8c8勖~u! Q1EKh{z(tfNN_W <-!G~<Ggd!$xlk 0`<FzNq=oDM"^$~$5=m{o]$M{GuD' }B>Z/.rzF}jE\Eo=pb5/W=:jmm<:kqq`=OZ@ j~iQ$*$yg3moT^YQ:|( 83\bU )/{Z,xݼ(8=a<8H~b6͹7yϋ(R\jei2ɗEվ Ϗ陯n_NDye3 7b]CzvCA$D:Hvti=ĐU伬˖C ;'"z4twFVOKܶhgԞ?`ȖW֋z8* K6U8#8#8#8#8#8#8#|F愖}j5֚= \W<"W?(QtF5 (GPhbـms5Lp5}siWPB Ī=EKhРAö*"^춻$߅PKe[77 fi-smi.map.gznu[+ew8{ϞiwtK91)඙~ҕlpcSttŽQ$F&w?i3g4J. \WnƲ><߈@dWX|Ic kFz Tl%BOgR*M9Wu^lFI)MjXGxG oƀP#QDQӦ !ۙ(J嗢,]uP TzP݌]BE!Fb6ׅҲ|LZB$(*P TkǮH"PW7vT'bE*Va&0.6cUǪbP"15$2Ye+r3MX"F3%Re|y9Kқr *$UtV$X93}1h?pw-@ -0 S0QQ"FukK `kQmXcAB> !ϱਦJD?x(W j4,6۽̂cccccccM _b#YR=ɟIy:Y| h/ڋ߶cH$ӣ+ЂlS5MeW};tp \y0k"5~@AmO]b.t}ZdUY]^]ܵZ,OŸ! h%ZVh%ZV\l+)^.?M:}*ٽo/xOczdsk=8sq3䅛LI$#\}$ٖs͂o|K0ǃaL?Iztlp>whM j9Uf7>oSriN|<N8R2$)4O К$^圪}Ҝp|Gp8[2? Lѡ5Ho9UfAwtQ`(A'7{f 9טTZm9j,G\SriN|<f0Ԉͥ9p|GpdЈs9oϳP׶\DŽ;B<GM&.}33RPI?lyx'񏶜So|#.^ >F"szԻA][Ω7 i.͙ >C^yO 6 `ݔG~3?Ljv5#ƪGmeP|xOV1 1m; _,1E.VB|ۡmDz,v}k{⇊!!!'`02+`P͂nt*CSװJͥ9Sp|GW6M~ޫК$.}wv0ۀ5` <(8cZC uhM rNվY Osi3x08c&$FZy[Ω7 i1|<J(zdHouZ]:&rNվY 4Ҝx04+dD2'}_r_a 4Ҝx04+铚eٛJ̅v))f^9PU:PT);~v3fpR4KǰnCg?O΃\ buJՕ ?%ML^%ss92KŮpYhfY,+;. )a~IzzqV#k*+Q,ʛ#Z ̞kcf33fʃfDJSFŒg١5!H-TKsJ. >C2`5gҡ51H-T Nɥ9#`++!IZ|vhM /rNվY Osi46x04+bzA0 Ƨ@⏶Sot'M %@t<:W(H=de.@E[Ω7 C :=~fX5@HTϟ(@m9j,N.t{:3EM L1Nv~GJ_yۖ~X03d WWjbh%N[3ooi N)niW|ߑx0 `F$UI]^̍;Q,LG3osf;@#2҃JֈhKtDQy!ڊh(\͜=Lۼ-Fb-Fs5Hrg+7~{wvw Va`x+K/+ld=&]ˍMotfv;I*o. TPB}Bc9ܯ5w?|).-56XMmo2! "k2r,g\uQȕX ƵF-Vv/eB@D@ĝR4>]ެq]F-Vl7eB@D@ĝRx=RIBoUm]&D@tM)1^oŪȶK." &ryU}ՑW[ljulۥ." &ryU}Ց_GpŪضK." &rfҹDm^oaŪՉm&L蚸Sb]z -VNm7eB@D@ĝrLj`=Bau孡V}ϮxڭܙLoT![($ NbXhH|T5.ϗom^+Z]TI%6;<CG#4@#?ZDVIb]INO@]'VITjNpz|ҎI;UujDE$p p'mNڋ*ХW[f0gzD jNpz|ҎIDYy'Q:9 !Iv;YINOډ:igrN.o}DCAG7UWt[y'Qݻ)©9i':i]+$*Bg5'S8=S>iH%rבw))DSճN"tVs8C8哖hS߽_{wJ/N%9cMRVdAd(?Fc H@"`WU} 9$xfxqQdk-IO@C0)Jҿ*DwE_}yk~_|".])^.މ*>.p \z,/^(j1)}*^K6O XX&ԹKxOū>Z+1L`vXqȊ6tBuz8K3ztmg j[^E{^ҨLﭑtc|\I d*2CjU,9xѡe: v`o5y+^h7$$I;DvH@ {dB /,&΀p,x0 eRɔ$ +;4UU\|; vEH$f,dҡ$^7Y^mM2ǃ!A@)_N;4eU w > y=067d؛M cU\|; vNZ!A^VA/i pJ. >CBoiQ 1aUKa?-Ž(fnc[~D=[8d 7d7O?g":P]2EtQrhznkx }<Fhh_3To,&΀ gӋy`h=2>p21ޓN'嵝9+)cY= ??7~S`m1==3\ t=2i=|M@x4Gn<3Wiy"|G;o FoMj1E9YR˺ҽ"Pr9 xȮXЋL5+ʈTliۚ;idd)A# =PGK2wUI%CK :?^@wob}}Z0j֡ &˫ #K :?a@W\h:4MWu[t'M-%@w:xˊC͘iowh*MWu[t'MG+$%@w:ʂYKܖ1-;4įMWu[t'M K :~ 7^p%%KSm^poFn>hnrf~gwPB *rePS~\\;j\\-x^ׯmr!!"ﲝ/g`_+kgEU]nr!!"N)g_ʮtoVA][F\mr!!"N)g^]5^oqkx&"!.reUpTg8h5q2^ɅH;)vYw5n"/j(ʇծ hF{/@B~ +^WwW E}6'PСc{Y+AOH#]CG:Cg5@PGP>ic}^Uf՚.n7 f0?,{ƃ5=-օL;W诃j^|IB8W ռAtA蓶 yh߱Bg'P/&#o}Į :w|.dBwj^IB:W ռAtA;ڑ.䡑c{Y+AOZӅ<^3tV E}哖hRIycx0 GgB$x5 0dQޅ[-u4+iyk=t<ܣ1%i% mS_i9~:-hڄ6MhsnYeyt|`sŃQ":ȋܙ|[xɗ+ȇ=[6MVP]^E^}t^ۙmS(P|9"\n鼵}:b/?>ׇCȄL']r-[1)^<qqY0v(^:v=i48Hf9vs6_^矗(P|9Փŗ\&_慺JVS 2"32݁\E b5|zLtl,!uY Qs,H@gNƒ땞i y~ҹOWh(_"k(QO>5G>\}]q6מoYRv'O>|"D =Ӭ6Y? ll=>.puh\y7ż@Άsߜa=TPB=hРA;/퇲*f˛"-/V*srPKe[~cz-qwerty_bksl.map.gznu[+e]YsH~_/Nlo{fxq (٬u/E%ĥC"Lef_b*AP 䯖pǾY.]+`'X\..U,X_&{Q"ɺX]qR*MA\,v&jW j]NR,;!agEId!gQ*f &(nUX~|,eշ]ٷW‹#PyY-v?aj"I[7p={p3íb'c$"t.s "g_pZ2M.ʒ$hGC!d@6XWŶmޜ@xb_HvbSqk,-[ѵ4PPuPuV˗˧7yδ&d)xe%A1=ImEmy"o0;Uv2uh+pd,/Yuϝ{d)?%o@@@7|Qg ={Ҿ @ GGb\V&o+cLV`;r qqGRe9΢N= `LǂOT^3A)pt;:Ye*(e8PQi)>{NlH١Ֆdyj빎My6@ #PPWj~uSo^(Y"$(ne݂ݜ: j Cٖ:(p:o|Nk̘rS{9,$Pm҈E[-ZJ[jD ErDDDDDDD웯*dڷ,ai%琫uq!f4h>V^^=:ٰޣn{v`$_N|gD\tzf LDƽ+E;pq,Nw~g﫛/|>fB+IgU#C\ p+[.p. &&~N=.mOP5jSk#cE;ux`xǃ" h0W[SԨ:VF %#;m+ zYrm[Ԩ:V3'pI |wD|:\lkNm-6Qut'Λ+@tN?[?CD pA~oUNJ@w;"> ՌX[wIigq5k'Rc<9;;V yӢaS=:<}VȭJT~ⱰM %>0byۺۮm75n+y'F?HXv"[-S(;;{=i%AAAϏ`ਙGSKrsc?6nWBeD]FzűH18\s-cp =1}S3ueV p1AڤFձ":<K´ ޱ fMŜ_UXcDچ oۤFձ">KqzfT!Fgܥ4Z$:h+C+kBt .`3(]u}9|8qC-qcnző% | rtpꛢ!:W]b8_=m_,$Q[~o&Tqp^w`mp: ffNQL#c-.)[21;`U[߲vy( 8( jϮ\i!\ip[j ",/4jMNJ plK\}pu{b}FwfW}Ԩ:V3[8yܗt0{cYSZŦgGqZMVhI[ad)w+КsyC4>5璩c{k8Gy GM\%R',/NMD\I'->[b궼͆W _W}U3|1^ kGW[DVM`g V`'ĨOLhBM/sW[Dj"QXPm~?`Vf 43%V s MGs-j !2nHo@kuhW Ţ=av#=_ nk"|6ՍݩKz³Eбi@dwf=vSpr#SpAN雖 g`9g)GmpoE%D f"͊23.n M~  7$l@wd7/[PQ\\WY$ŒQRg`fG=XQ ǩM#k =F8xث@ݮc-ʻ[/܀pno".@zީ |/?l2^'߶}jf`f`~VMk>SUR8C_ |2i'r֘Bo5nue`aug#ߔy}ށ ,Gdu03 ./;,ak{pRk`aY:唏𾴫,WWҬ= Ùu*,"AlNG^jto~U:yGds`aY;%yYuUKwogp'ur+Af|deU-X^Q*Y,"AlNG]V]25LjuvGdf97+Af|eU-XUY(os}~_ 6t#.#ؕpݎRroW0")K:Pu^Gdf97+Afz@Wmf2_ M;J%kM F#vavlWwf>͊ )Ւ?yH[  yHTp0ϒj\f_?U#LbUl;t N 8'뛆E}J}7F:9\@)Bhmhg3Cn$daZ#R(=R}:t)MH`FPzu颽,<-+zY/Xm A`-fs)F\Cn$t;HJT_Sh=JxSϐ YHJT_>]SJxө!70X@)BhgtѾ"Ixw>o}X;ߜ:E Wcr#=X@)BhghmJxSې YHJT_⋶C or#!  B!V|ўP›N jJJE+hv^gYfߩNJ|(< @}3=w<~'bӮA=մކrwEߙSo#]`y |f'ʾ1gm` N’]sԻdf|˖1C G F5;`-w-) ׷FjQS |ϔcNy3NĒo/q%jxZ2{.¿JsH35z6)3Huo=78ø0=X`=2kDc끫 ~( `#+#WC';}""6ϗ˸AY<`xt_4V}QDI$sw(KItHٺ:j0 L`Wj119E>̾e>zp \X&ıbDž dk\-IlU٨"Ѐ4} f 0d sڄɲ[>.zU;Vqێ&0 L`>L3&u:QᓐWIr*_WET A(k6WlmYuiFkٺ3{={ޟޛOӐDQky(d>ngk __b__cTt bx͖bJH`)Iaem;tp \MgliLD F牞/ĺG>׈}^oe›"Vx5P+[3XWЀpM'mzl&W%qﯙН/x{&3~ 1OCHFr8fG{-mI2Quu yI$Dw*IG })= CѥWTko|Kqr. >tS#6AeȠF+7YNվ&Κ.4%@w:/{lzA̔P Ň&˩YEN@g>ҝ_(\{n`M&˩3 >t gO/# С Rr5AwtLSt'3;?{Dz$M&2H{TkHSt'3_~:|Xx\2?7Y\™Nk㫑30ԍp!@J Dt)d9UR9#0EԨ}&rHr57>ť8n܂|G3_)}b"t&#xÛFg5Y}E"1c#_4ҬH7'JUf5a8"8"8"8"8"8"8"'>"τMnjU&v4=#WCBBO 3a5r(I&KKX/,j_|S\c|343aP9:hC)j}M;²0#NPψ9;J;4CMS ).9iN|343dX٢C9l}M Or)N|3$_;&R؛M&˩$\|;" LTB| XOMW~H|\s)N|33iOk^r6[c]?ok@uTa@PKe^" hx뿻Mde7Φ}Mw7L t[,܇TEMmTko|Kq6}|; Y|*i/uS쪖X)Vo~k:xVنzBh9S36ӞT6Q+ZcƁ###hԑ{O= grŁ'ږ< a{c1|w\i|fmPfiC //?55m\Vʻ#z ^LxMggL((kD ١RĒ9580(֬`7d4ƏɷK`/ ſI,{٬ FSM R>CRӹ8 C|L Qڡ Rj}MН5]hJЁt3y&rQğ,#/%aO~D)h}MН5]4֔ LgfШ8'aCxd9U;k:9St'313Vo`lٺC9r57.e|Gӝad޽!e"R;d%ѱ,sR;gR,-`0JSzBW) IvD4_']J|#W!M~h$O"'IWyIaYsM'~- w b:=SKGsg(TuQYYQyѲj; ] fhU}l 7Zv;Na'̏F(]g,fYeˇ-'Uw_ f0yf9h4Y/.d{f,1kuөꍚFn>jnWU|{6OB  Uٗ^/:|ɮ-Տ..LZzv uF9#/zUh*z -^~BB$DBe%{ɛռOZJ l?r!!"2ļg:{RCㅻ\HHL#/YFguz R#E\HHL#.YF Fj~Wcw uFG]Mճ.xuz R'Ǜr!!"2LȦy[j% [J~o˅H4J>B_"m+T/aUx].$DB$t]QN#ax "ًȋOk3 fECGhXGyʶ  HsݹLȗKqu~Vy@v]UqŶW;"CN`' ͏G'Tߡe;ŋ2ͲjNz餝R7ZSPjNz 褝Q7YSPjNz 餽$UՖn6 f0?,f:kn $ljNzIQ7,)(Cg5@P=DPsNS7[SPjNz椝Ib>WoYK[ِmLQaQ}y6zX%ukTpv8ԚBߴVj٧6o l՞\:4k bYXD9j iz (PGۀeu6q6 }ΆI-zPBzdw<޳"РA6,퇲*Myr/?Q9 hPKe[lаes-sundeadkeys.map.gznu[+e]Ys6~ϯV}I63q=^\$\Sȯ_K(RccK_F_HxǾ.bWϟpǾŜ]xxS=۟cu|}D Wcߌee4 D&iKbU"NVVl̾y$>KmV(ↈB@I&H8jEjKgZ?|\5'";7*YLeKpp1 hI2!$Na-bWe*Yk#0#0~jX"&%yWiYTXy-Vgm:M *ԅq"Nĉ8'z}D`"bM=OVI:uj6(.ȷ/E"˥>=u 詫x/,.^Le+YxU+D>YUgxKON#Ӄa~M bu"pA޻$P%qΙ |wD|z0+څ7eK9B[8$u$ 9v[{ŷ 3 w (/ُ)w.Zsoj*-J6]uE\\լ̪}N7@K%h Z-5_r&p";;wz+D6((Q5jEXlW"XzL-..*:T3'qIX>;">=Qx[,6Ώ꭪k]r咬CE;ux VFPЅ2?r5ZvIVѡ">K✏N#Ӄ^)%nWCA]pA.]Ut|gO8=o|`WM>Cg"{õ>%YEw.8OjX, zhO.?(|gO89.`Y3o{ډh/x؂.?"wI%I@uX*:*=xof0N0I ]z"U;EPpwnl\}p ɓRVyK \V|GCx 9oHNb,N׵^WiVKʣgY.wiNahڡ;{@;OD8QYJVe5O"vG͝n X0KX@J"$NSԷ|m`4 3" 4{pC04 BTc#1= ?{֙ %9P c+,7 '||ZM⚕6TҳGMb 'TzE/;Df Xõy咬CE;itaP=:=U4n0#/%?%YEw |wD|j0X&/Jvw.IÐ1I,[0K 4çyGQ+';uʹX.ŧ*"/V  }92D3yBS'EŶPfYsM92fD*T-ώ~ ʛj*-ʎM7t+bVQt ;Lw;A  kƑw;_wONa3030?M/kE^8C c&uqЃY͹^VUr3 }TߺЯ2{H #z03//:"gG&Zk[{TpphT~BǍ9iVwVNg^jtopsdSTppht31/mC+s{.!*)L˦zfY9BC+s{.!*)L˦zfQsYmJvl깽.!*)˦zfaСs{]*8C8USIYwo {saVSSMwVNg][dݽ 6O#:znoKpJwi;y髾 EAظ珆Zz#@krk~~ug3~]/ib!C 3G tES;,ʯ`7YU.vU5wX: @EãJuhbVJ(¨>i}:iSC[J`FaT3Jxՙ![ y-f%0 0OڐNګuRqZoNa3030?M/k7[H w堷(¨>itF![ y-f%0 0O cJxձ![ y-f%0 0O)/sIx7V.oyx;ߌ:G 7P-f%0 0NNZ^7d+!ŬFaFI+h![ y-f%0 0OZF{D :2d+!ŬFaFI+hϽ,վ  =( o㪾p @Gh,ӧ1'$R3IUy\bۊ9'1oJ׬$!mF2(bBL 1=Ū..}; |c'ZzYhd `3ӶA fa GrZF[ :7* g#5)r~ݬ⼳>Py_fE)7xtTH NؓѻlQI^V]=]l;>d7+۾nNÍы79=?{]|^!Allwf_jy|Y]rwa1- ~^UA@@1z#_-Oli'YnhxzLfg )taRHH9='Xh!((Q>?3z+H_,s('T^_ygW_I[ Vt-K[*_6Z-AE"hGn}s"~}QsKf(p \\=1W?Hgj6iRgGtmqq6q6a G` Ȭ1{e8p1CUꦺuuhu#PKe[ JArs-latinyz.map.gznu[+e]Ks8ϯ}k$xfqqA$dsM I9%GC4)R8WFѤH_l]^8u;%~^M5ߟ~B k7̫sqm^$%UՍ&U+̳T }}+ M\dsSr_\ef9Eެto|BG#t~Bk|30/}L'|SH.ɳ..5lsY(1H2wl&-*ɮyUuj`&`H窉02WN&BcL?K-k/%[%B B < B:7B)t&n_m2sHU]ff-] 䌙g9x/yu5mVݸYW_hil[=Im j&1ddRvӕ ЬXw_ 0SvuVwy L/IFj5䅚u?nXJ>'GP/=I[OR ^eS˦ykHtTmge1 0SkUdln@ߍ I`C&w#SB@!L([!x!Mt$4K3=Ś|k<)KjA t@wtfSI]~o.d2S pE>tI-ձ"Н43(莀v4pL dIIƇ"uI-ձ">K4N'G5p@Q;sYh|Kjх3(y&_a(xP.:VF%Q xw% C fƭNTuG00p)JLMNƺ"ZcE;|ƙL N'G04?uBXM-zk|(Kj i\g N'GPq'BN;h=VBI`+\W <.LU‹2 >JhU?Jwz$l ylFaE\M&rrtD؁؁{EJb=?joV'yN(3VI8ZcE;|O N'GɐVFǕ_0 rk<(r%TNJ@wBߠ:;:J~fD  5[j25y%TNJ@w:;:J~bDݖ?>taqoʘ&$ 񊶽}PAƺD۲\a0$J+~w ]^܀0tp Wz#ɏ[5jo"! 2n8G>qtQ4+&jYZ Ovy6RK )\q=!>Jf~+P;/8Ov1I.i[sT'*`PPQ2{LGUU~أ w\A_$a5/JJ:Vױ"6`[Rmbmңcݲ.:V3piho|(n\G=:u⋄śK67 ByƦtd8&,d *PiLTTq@CX$w"Ś6t#8M㴈7`MVYɭvwj D(x(!Vz]ݦ %,i0?n~EځCQb4 KYY,!+pU\vI-ձ"Н4@tG@GɏQ3é:k/<5wR+I %Q C?/1lf\AW]RKut'. J#gVFD-w(?V8ѹtoqay`}/0S. |P‰( כWDE:>6~Ŝ~yYw]߶;Jy@TT@o$I[P"⪃i$Z>;>)&Ć؞Yl71"6Ć؞,6s i5yC͝v5Ĺw][=C  +!Q+5<9cؗ?|)=fq\-kJL<쌗e LLTs<$BU.DRkj= va/p&be=T]Xߩ/x=dW!hPkPucb}^Ӫn]MppnA)f&][d{VNvao M4( KqLb}T>U3]؛jC8v i3y X?݋GCVͺX[~~i0@nrac I.tyI;̋/oҲEPb߮wXz A  EÕ#YPdɭEZQ=Q:i=yNe!N-UHjFaFI;:V!= C6'f^,xauoa3030?O/FZ}-pXrAV0ztNIBt -UHjFaF餍I;:V!= Cv*OIUovhse!̸*Tk0 0jNک#OZOgɭBzTk0 0J'zBt-UHjFaFUoY% aPU((foͽy^=(YoYY]1 @‘M^8jOyt$%,mXy6fVͺX[~~i0]xǞ=ƍg+4V_}_3]G)_r(Qa}/UzbY>xHBeS]>E Otž%ҽjL=p vaiZgx!(^Y 7psnQ$ľY%8$ui7*4\˼h ǴLg+*yQ|bF_| i7 ,XOZXiyq?Un V^l ~?Xp+PKe[ELFFepo-legacy.map.gznu[+e}rG仾 hxxfv4gǤ/&ؤN\w\2 {ddeW4ۇLJWg|߮^߯~~q~kkk΋Uh'E]vz?ܼ{=#{ݐ/L8 )l{;+q;@yx"OXtVsR{NnV4|aٜ(8aD)::8'C&HP|gN,kk4'D7Gޓԟ;~Q @Ahyi:I:PŸ jgb+T2ę耀vp:5 эId l HeP>0 ;5,q0rcWyq8ඵxN~Rną+I%KeikUb}Q/L2wlw5WMa\W/N`4\W0Oon>A :ZEyix4 ,:ʈ J)%ogU)=/B QQ^ܹmemdޛqKnBΩ'Z!H:hf^/]?:kqB'@T;[9^FK֡E.%qAɔP>0' 5,u8 5>Ř4ԺUfZ1at:eeXE~a 8b?(rͶWs!VJr،Pͮ{yʋ; MQ9ɭ[=ye&-CuocBꎗ>'@5݀8tu Dj_UJVϨp 'bN7$lXGR7P'B]7t-)-qAc ٔ%Q>07)k`= hMkQN4cďTkis2h1D⌻^Q ce;lA5YMapS49 oooe >:R^Fa\\q>.2)vx q P?}>ʋm=dL3N;e85!/ס;^Ia\3-/M:MȻ x9%3N(p> B܇F=ȓ~#q AŔP>0#{!k\h<hh+NzIsܪ$5bR1eJ54w}qL2wx5WMa"Vx]]w{ (*%ø@"!0+z%Wz*GyGyQs[u:>A<܊yΙ [ȣ7Yq^4B+p/莗.@5]8tt @g+X6Kw3:ĽhՅ㳲$!h@5 rV$c7tm i`Ly6.I&zLlٻbдw6}MP]Bw )TM)n4FuۏO~|غ|(*\*5yꜸHڢBrWT/J QQ^؝eof޺qKR3(ai :ނh{&n>&zøgZ^NtNT1SRI!脀vp kHj.hkdN?2%"h4@5 rV%aG8%Hޣ.~&~ ZRSMMc۰L3R\EW30,FBw')aCv?jwmبpuAXT0;m% 3)qьEU%e/_J$w_x((/vr\xk3,[&n%9_۳ Ij}iv/K:kzqE'̮O]aN/$̯"Fݗvh⏟X4$ZMYS9:' HڳfO22-99:M&1i3Jv4%̸qbbv1asjn +㪿?ߛj)ۇ]wcĨu@XT(7 m#Tq|E_J#w_x((/vr\x_63A,W&l!^{HZ=ifv/G:k:qD'ĞjM]y`N'$L!Eݓfh Xw4 xMYS9# H֣O1. Q86M&~lÌL2RUe80 ?n@=DYq`{.s:"dJ:#;P\Y #sy3 fKAm5J%L4>m 5lZC(܉ Ӵ@K+'3ވ ۏ]rؗ/[P2n)AU'ܢߴ7w&A86 D#Ua^Q3mJӀfKL̜a V%P)_,2O$l23iTC ۄsDƮ-'vk,g gL_f"GK=Yy$blB1=dz`@$O+[jHz@ HNdNTWszJn`;6i9F>ŕhSͦBY]"I-NuMii8usF:%ږz$hvQ䕕6L7;gh*U1ZcUQ縑F]gO[Oi "9qdDy `Wr%Is[ YSU/FLR b឵pWP'3O@rϠ^ %;"- mÍԤ(MA;D}@sS gSW\LFpu}]u^C;~Dԕ!ebHx[֕5R?$)OSlT7.Q&<9]J&_/q>nٻ/||||!x$ܾ?sOfg8|eTRpq>`9]OX!#2qz̲w5`ݧ\þ~$!"sܺ7[wI@;0 (|B}vNjqైChC"4}b#mb#σ5x|BBaQg\ 51H(9EA0R] wkI4*nuZ@NpѢ $Idfks,\ !@qu}oֲDG\ttqZ*~Hc>2 >jY;@Q)tuO'Ⱥ'>6RbhE 1NJ'ؕ3mU +v畡H}H@SݴT)XşIbGtekϪ0/`|^l8]ra͵uUhܞXۇ뛛ӇsQWQPT%$RGD q@WV^_䤠Cѓb+Wdeyк|6л6U31%4F,g Py|Z+En K]k~AWMB*a^1jhӆC;vZ yL YYAzֶޠ|ӄbN$}M:z7pˠ#7@n`~nvS Haݠ xTwG}e-_nz̙AxV=Co 'w&V(dA@qmg gWJL~h -7O~kkYٮj47boPO-KgC?)v>ɭ7zoye"O.%u>=+A9~zP58ߔ۳yYHZ ?S('P<*$T?/z/FFQTwj C:wik K9@8jIbδ^zAEp%L]l5,vB\U'Pց區bYI$,2dd‚O$kKd6QU3U\kGuC,ONTGc:X:`kP UuTd TAŰP Z$e RѠ^'9d)YjHʤWUm$s۵@^>5hYk49"4NWjRlQwè*dM5"x5#--Y6̛U 7vO9sqLvIvI!KZ5WŷFT]E]ROxGB^g;^wwѿa۸KZ`sg10PW64)6f y8ӺZ|BDAҬL H"蕭P  !C~:Pl*CPfP[XI7idmi&jkz^Giq!v:J0XUGEͯ@NT K ŠHQ@,% uO)LR: LhKШjR)|cR9׸ %cYSEQFs#"Jt֍/(Qu7zBT,rW3B⛕güYEphzw9g%] m=?b4uIGaWyY/.hܜ~)OUa H9`P*Y~,m9Zqac"3aHOX؜k60Ùe:"Vp*k"ka1ea;TBJt>,oZb$hh`f1X9%#|DMZj&Y[Z$*ZYŵvTG=*ƸIQ;tXRUHd"Whh *%b$(VD OR:Ɂ&KuH)RC҄U&uT}ǔr=C՜kDٙEQFs#"Jt֍/(Qu7 zJT,rW3B⛅g˼YEphrw=tI|~n+W1d+h풎ڳQ Q΁ߎu9燠~^pbuZ1"K!Q.GV"ZO^8auE͍1$0?:^3d{~NUï[_/2rG@rO߬Sj=CQR{:kWRQYڙnV䭡qn\bx,?w8?wi4QXE)/ EP߿x8 }yF<ǘḯ!RVѠl؜8> &L{%$D ԕ敛w3!.d =ͯ@ywJ(V A , ZY2ra&Idf5Eꚨ!i*SQE6ϧUN)Tu#X|R,ϡCп?S H?@,% q$R,!/K IV? ""   ,4QWkn-)FMɮ5U6Ռ$8Si0oV&uk?m΁1]^:W 8 -lrl}ao}vwȏFH.zŨJo^qǝ=Ƅfn Njq@ H<N"4Y)6XUx+=祉>Sa(`]`#b T+Ac32̸,d8!ZtsR$f"3]SGCNS[}(3Ϋb źL\:EbP1,U> I%)hpE5X:ɁBxjd}mRMm\M$TJdiRa֌bk(1_C=(!km&.ū 9;ϔKל&9mq}z'a^t]ahv! 5 kw|?ط^;"aO(ϣBH^QGw <1&7tcXEbsiΡ 3%$DJ*4,vSB\^JPցebTI,2cddBM $kB5QU듟U\kGCN_[tXRCd"W__ *%ea$VDm4\:Ɂ!KuH)RC҄U&OhP5q3pϢM}yu֒bk(aD=:!km&4ūiInqJaެvMvתsqLpKvՙCnp֞U!."as(]Q!as~G@Ѩb.`qʝ=Ƅ:fά /3S@E؜Bs$Lj z21D~+7 2C9u`Y"jU Acs2H,٦P$n23ɚ"uMTgQ86C$](֠Tp)aIYIǠ(AC׫Nr)eRRJԐ4aIm 5TM!ol܌D&"k(zhsDDi^%J7QOOȚo MjFZ[k7]ݵݻx\\'1Q{q{.c_?\o?_w7pN]o/Flڛn{vk.QngqX$CjVe4F[$A& f^%+{:_d,oUQ @XߥER%cJA/-{Čl_7Wf/SRr>e}DP<v"7@I Lf-ibD^SJR pRuRoXIJ&!j`uH)^h]YF5qcDF([\TZlfm+uł&X5>)Yy_%yYm̜L%ΘҶV otzOmvt7NW1!|w7mo_f+"R#* @GCG'dYJP q2ŕ/;c/;oNmTks+b`%Ba+M%ccS%+eeIɍ.ljml"1|doѸ2?5o'咿.~Pvv4if j'Z.mjKj/99: VoYMN^4M|٪t8V%抴kf!n3A$ Ndž}+t?izjBV3P=̝gG[:v4DiOfVu)R!g FSsssss<&4qq1|>Cs![>Fayh?rq}6?>;,m-"tv"ad(@(ܟo uwGGm8z{xKGd #^l?j9'~fH3MKQ:KyR5,l*q!7!4-9u`#X  ;ph7bC ş$n_j&YgZ䳉*fQM8C$IS5b JU$a _14A ©*s tRSuOMR LjhW(j^)|m㊲9$-?1h7GD骭bQ.| 7Go7inJc>.o]/rOc8o.lWuZ]خj9vU˰] hܞBF@ A0sC0R,mHoaZ`Fw㮋24]:5S^/ tI9@{8*KbδNkS@+(o4+UzaBBtP<,{J%hJSg`4dB!H$kN6QU˖U\kGCNk $}E@W5(UD*2\l~vƠbXW-@ }4ZAHNr)RRJ_Ԑ4aI}m,UM-ol\Q5Q$|/k(hsDDi^Q%ʺQKpK&jr>Q vBj=4V|RӅ]B^.0\.l9va˰,5|qv|ok9nOբ2BP$ P<*$sџ:8~wa z1&17tjakLAbsiΡ 3'D+J(,r^jX}2O(ϡ& >Y eeȸ$qI֖l,?֎ꨇuԝ"I:`kP UuTd TAŰP Z$e RѠ^'9d)YjHʤ&6(s[@^>5AYk49"4NWjRlQwè *dM5"x5#--Yq6̛U 7vOw7sqLbC˵풖Cn kEE%ꢐwQԀ"a(Q!aYxwKZ`sg10P64)6f y8ӺZ|BDA,M H"蕭P  !C~:Pl*CPfP[XI7idmi&jkz^Giq!v:J0XUGEͯ@NT K ŠHQ@,% uO)LR: LhKШjR)|mR9׸ %cYSEQFs#"Jt֍/(Qu7zBT,rW3B⛕güYEphzw9tI oltZnlrl, x: g CC0 #[;FF3uGcLCn& Ҟ23 TD9@)8@bδ^+IKJ׼rӰ؛ q!1!:d(KCY%V% 46W(ʌʒm 5I)3 -RDU P~Vq?;1n=Db JUa _1A  ZYJ q$R,!/K IV?QCRHd)f>71GD險[KQ~􄬩f%ř*=y5A]޽k΁1] 8 -/mrl^uDg CC0 #[;,FFw T1&!7tufXEbsP iΡ:3%$DJ54,fB\nLPցebUI,2#ddBME$kB5QUU\kGCN_[tXRCd"W__ *%ea$VD =\:Ɂ!KuH)RC҄U&OhP5q3pϢM}yu֒bk(aD==!km&4ūiInqJaެvMvתwsqLp=Hg v! 8 k~𛛻ݻ.c DA$4&mŨ^Q(wꏛ C2+v()RhPuqd;5:3$(vb<*"`c#5`"RUR Ac20,٣a~R_.)/xX)1DN”F*P&r/垾TwvU%ykh]Z ,<8k :9Pj<!h x=rQ5']`tH<đKEF-cFPrS/YY" rU|u\]~ sSΟp~u̟? \`2U֑CQR;GsO_gJ* ,[; Ҫ54xލ <gg3k| Xۥ>Exۚۇ뛛C 2@+fJaz?!B8}@(`@JsNHI pt9+LLM:EpR% *)JNe)8/dI!rV'' M1!Ik1謂%$崯0]F9J,*25:Cӈ<١5Skܤѭ!B BFkvƈpSB"OfghDQ'>y.sj,ߎ>BIDC$468|# y n)ݿx+|=gkC+kGCnc k8;5_Yk49"4NWjRlQwè*dM5"x5#--Y6̛U 7vOw9sqLtu+%=].i9vI˰z'Te!;ZFU(J _zA.Q_G&UrEBcEӊ̷=բ(,8b/SI\uIJ.(I]챶N}i/\BNQOv-\قஊgC6;=Ȫ[SװK[OCeE]Rn챶N}zm~}R~_zȕk 1N?}*OG>#m4sܤHlrTLۚ = -/St9>Eڋ.hD 2H_'CQ/GQ)HtQL/GT;{ yn& q\` T9.8vpu"^IbX@W"?!.d۾2\l~s0P%*iy@ Ȓ 5I$3 -RD IVҿꟇϝѿ"G0XUDͯ@տNѿT K H?@,% z<^uO)CR LhШj )|mf$2YHEћF#"JtMխ%(QtzVBT}LhW3ҒLYüY UxҹY.0Z.`9vGaS4 Q$ wP <*$tnh(uTl X`rg103{4P)6fy8ӺZBBD$^L +_Mbo&ą Ƅ萡8/yeX(Z4H\b(3R(KF@),$[L&H]U5@YŵvT!E7w?qaV:Pefʐba:T%͚_gXk TuHUED 9QnYw`|6E M_>y.uYHm]YN7ruE Ȅ@j^*`:ҩ:$*UW2#6$#]Hޟ :`AKaEߜe>2?9;#kd=u*ai*65FmRIqLd刉ڏ\?n~ 18 ;.-q{q4gq<1bp`an ՄSs AlT" U o7F^KSLИZ[=[z2<64Wg子mbSG5yz:8>t,LqPAv$Aj.዇\ ȕ 8B&'hƄ{)lH+ -+QG:7Fdd^ :|&7NB]uµ[4fϲ~Ͷ+KIɳSƉ-\vsxWmޏ}=͜o] 1Hh.c ?=<ޠN u" B-@h$((q@9؄@VЬѩ |S?E*< ]wH?qKTV$* #v ,_ gfC]!VaH 0O:  HEFIW|} :ADի8s>x!ue}lčѢ*nE:-Si_in,PGڡVI'ٶzM̉d)-)eiF7f'Awu~UaT txo/Fssssלюb~ϟ|agwnGqo}'''CǢR-vy?qo/} 44O8O8OhEJXO/ς[yyyB;t,w~*.fyoW> ڡcQSSro> ڡcQcSihvSm<<<:;^-򱼋ٟ_.e9w б(!zo]w_U9w б(/yVG(Ƿ˧u0ڿ=?+Gyyy'{,wק/*4+opLLL3e﮻w?>w{y{a=nw㿎ރH?y"E̋qď7Ͽyy߇63/s9)^쩗e 3/s9)ˡzyS f^sS=ˡӛn{8zU8}hssss4Q?mdY|m^^nf^sS=ˡ]쩫k29Avrh//{ڼ@ae:=E㡽|9}mϳͳg;K񝿼Ü_02"ph/^eO]_(̼A砧znxtZc999_JBGQ7ۇgbbbbbf ?6/_mR~f{o3a@7Ͽv}>/l훀?b yM5kFz(~B#?&ߞ_=ˏ v⇅^J_4+twwwC1?2^ӸO~ۛmw6sn?PCws?@⋧G<s33g*koٽ{T^]wdžHq޸i+f˒ii~Uo~}vqr7/4>_{{vw9xwqccGQO;oOT<SwgWۇW>mo?$XPKe[-po<< de-ro.map.gznu[+e[wHS}Ϟ#n'y|F,'bƚ@5-Ŝ ߋ[DS!f [ &0 Lf3VMX5 RĉdH։UY*]ūmf,L/%ZV#[)5;8a9[ԭS˭A h@437(RD70m,S⒭6Yeٹ&0 斎 *dRعwqYuR*ֺ֍"*[|Vc[Ѻ=;֣h=Z֣'zH LW1*?Y>863;`ezE{^c4/1HnXj ĒKoY?YUgŪr\Sezw$zAsۜ(@s4gЏ_38uEeQ Kh"jס&΀OqiNΥ9`8Ճ82K}ԑ D=;r\;i02h3A_ꙁj7=Ƞ6qj"PtG'*d)q$=ȡom:).ɹ4'w@> =3 :gL`#g&2(6qjPtGϬXأHRu&2({5AwtQd(A# 3uRI.c&}K&mVD;@>GMɋ|u>ꌡ b*e:5cCѣJr\;>ͥ9өGad,)%j$NnC&r(r\;>ͥ9Sf8`hV,ŐiUY./x=+M7G/|Z?b0j\%Yde^jǶmrוfeVkqCZ!3VRz:DuѣJ\YP|g4c`H+Cpǹ{ۣJf9CMҜKs|ЬPSn/P/ \|;  fX(_]go[0rY,)bOKʬH&ƦFѳ% cC"} N'ctL0|csxߣJ"ElتxήCMw7o`az׊Z)&o/&{4C7m:).b"|4w,]tyk4w0tl#04+Qw%$ɑsW۵ޮP4bĐO*X~^K Np7p5JYRgsM.Ly>zqd^YYe+u!x;|=~D3y.5'Q4K&R(6qj颙@GD܍X MdPm:IESC :?Z |5 ԤGlס&N. %@w:J_L :Iأ Jf9CMН4]46hj>O(zvy&2(r\;i:ҀStG륰jNmӪGr\;iJЁtf]ɞJ#%oq{k޶Y:/3g,-%`0`y||"D:Z'b&r^%Qeys >C_rnasK,}JZd%~+ sAŬI@e^dm>-50[iPmb-Fbk18XK |/nޮ:{ȿl?7f0gF,y4ju&٩]AnFg_eMC *#4W^O\X]\O05[zo["!US +l>֨v=oBB$DB:%i|ŻսI'soij`x*$DB$tSWMW{[?m7pQЮmUHHVQ3FYǤ&{ ZFv=mBB$DB:%)vtU:=&55?';j:y*$DB$tSkWMWcR| VǛlBB$DB:%tO{[j7ٛOvjujxmUHHVQ3Į)2uoK UFZ:)<wŧlY_fUulss%!t4@#4bYߡe;ŋ*ɲ~7@PGP:h}yNewZS nNtɂ:lzݜAtA A{e:vW} f0̲h4XgIBv sJX,e;JDcY]ǖ2CS (#(SyоHS-mĮȆlg:Lv>OAhdwYS nNtЪ;ڗ};)/~0 4Xo⪾Qc`#c4V [-'u8n+ooY^Yy[f4汫t쿱WO%ڄ6MhD?VPFu4'Kϵ>M*Jq,@dD>fd:=U7vٲȆ1|G 2D&ӻfyHW|ƐQC 䙓¯`]ʙ'x~]XKd}K ?4G_X8[ k,qmn7o|#GFD=U1kLE5CG͚K(ϳzu5%3(7m|?0pht^ *TVXg+" ~2[Vquq PKe[ii no-mac.map.gznu[+e[s8S}j>;=ۙ ۤ;e NW5: qO4 H>,]u1i 杖Zգo _dqJ:_Y>u'Xb}M_"5b^ B.j%r77.YLVu>  +O0ݔ*˄U~F0>+#WBCtqb]ZV,EX<(V}Q$" d2ݚ'eJW~v L`S[UcWłA lkwX_B\zls1lӟ)VuY,V R|Aڛ[BtFmQ[EmQg흪މQ"N@?~7;RՂΥM4ZoaTABЌQ 53%{N"^K+qY^Og='fS7+#!uG5%w<%Rd^r-/>o}͏rG\=I敟_ ZS%?:[+}^Ӫ )2#}G j&39%uIPIųu,Ŋ/ȣjlvE=P@=Zc&+on]S7KwjΘ͆$[7~Ac# A#ndli_,?p? cj37>M yINXw*cI'RzKƽK6):I.ɸ'w@>NTgGBS7,ĠG]jHStG3T Mg){4AOmSt |M :ά0ҝ_(byx )~kCMRKq|3;éf|o*FH%6g ;\8apl7½pe0)!{mSt 3S\3hN|3c#y%\X[ǐcj ̨g:C=ʿ$H̑rBKZx:B)zJ4ҥQ Xtfj/"?-&_%Ui^֫UZr؛]fˎ:_dC['fX!p>p>p>p>p>p>p>~>r.Աm#M`{i:{6I?|+*e&>5N,G!lCM:²0NP\Pʹbz4CmSt 3S\3iN|343j('{6ycH1kCMR7g:C33K~2TL4=!,P|g''RLggfrX(Kh?mqPOm7.3\q)N|33bhʅ\WtNiM'۬͒,PUH4@*y5`bN m#HdyGˊV9t \n6pNج=:o 5-z4CmSt 3\m&|3kXD|K?|d!ugֈ}m1w_Mb(BZ#QE_pQzLT"UBݬ%$GoR(ve7jZu2?blM>"=4@хb-S&%mz7kx! $UM˼ݶE Pr(3#rKD/~E`+Ѹo)+-Ъr5瀡&ό1"`|FFY5m[H OI$Yqk#Ho!KJpjI&)H_ \L P~abGPO,Pt'Mt;L| ?R!Ž= mSt bM :t~fZNz4AmSt 39%@w:j}dV=!ůmSt 3kR6w@>FfM):mBd>Y* ;gR,-`ӷ0J͸܀^qi\%=*bQ>|3:C,q F$r Y}$e6w{G˼T4.gS #T ?"]~PMx0V0_@wr[\wo=*J*a~4B!Ezީi l/>u~x_t f0({f:k6բvǨ]ʬuҫ؈m;.-TPB=j:c6"{5*Rbƶ`ܑ߶,D@tt M!ql#Wv>oB@D@74J6vƚռꏛL;r_- ,(HYT=Ӽ-՟4ћ-u*5p[" YQzQiB#WE۲25Mճnf \v>oB@D@74J6bm4UϺ=6j5ћ- :r:,D@tLd#f4oK &zaGR'v>7ٖnil،"m{*laԑԩMe! "ehڪoB1j6٣#W.=ZsqqMcf#~]/P!ZQr,H@Dw.c62-B)\}ˢ|'z5.kR]OQ T@%P= O-I^Uis8}85/.ډHءv)éhqNEZŜNtNEr%I 9zۙ_o`32՛B e;9-$p pj.X\Hءe;[IN\cq"aƖ$"Bo1'S8݇SsNE*˔`smG4D;hMEDx$ys8}8d$.Z_$P߲DD-$p pj.ZF; ;4l'z9 >V:l'z9 >V(]{]F/NtJl{RWr 0`q$r͝@. |ʄՂT7{ Z%1KJjZ #!qQe:(Q' uBPNNJ.f΂haf J<hjE\E'5Y|6`},̨[ā}Tzґv՞O7b* gJ/!)H]+,c_6{̋R}@u×p)"! GZ![~׺OMCʊ0jEAU|7j`O_VH#D~"m~7C׭9C{Zw6yH 57f] 1s߬a*TPXzc_Y X|u]]b]PKe[#TTno-mac_nodeadkeys.map.gznu[+e[s8S}j>;=ۙ ۤww/ ܱW5:H✟h$/]u1i 杖ZգoƲ _dqJ:Y>6,`I&Pc/b {QrZ/TS_ |^5MMoV=#<7B5"dCt RwвʯW/#'`cePPo2s^KWˊł<9=j,DD!_B[DhUl0 L`jX5VcU,H`ȶqUM(djՓDzƂcX xXeJHz[-Hu9~/S+7QN'FkZEk'i흪މhQ"@?7;RՂΥM4ZofPc0 !Bh@(BȿƙE=2r5*yXӲIXH}dMQ{ eɟ&5Y}| h/ڋO^cF0WwyoTJh״BGv9@8Z%h ZD-1?.ji,~Y%,7]^DM'$wEոho,{49a3ŭx݌WwͥvuLҝ݇/x{"f0fg#֍qĖQzBFAማ??[D> O!ܗ̍ /3zz0Jhb4}#H6˩:IESM : ~_Q$P!u#H{TjHStG3_q:|Xx\r!~nz ܾÅS Dz30ԝp.I9MPhܻhCMRDs|3aɋ()jf"h<,P|ggF5'w@>3T%F%UZ*jcjZZf0S_"%c!\J3@|J*e&^UM̪G!lCM:²0APPʹ*b>h<o,P|gg6Ҝ`hVP.`e,1ǐbf9U;>ɥ8=o> f|e^nHi`{4CYNա&΀Or)Nƥ8PԊ2PHϗ~J~jC*;>ɥ8gCR+VO{\x|EfBڬ9IPDӁ T{2&L^" dq3oXH|J(?re`֌}wߤMbLZ3QUqU3z-MT"UB]%$#w{ )[fYhff̏[sykH35!WtOuuIP&%mz7+[<$UM˼ݖߢ(@9 3c9%"?"0hܷhUPg F0>!,7nSHLOI$ŷGB\4#x6ٓFM R>CR3 3|Ì/T=XYNա&N. 4%@w:3c7FB=~x)hCMН4]kJЁtf3+(G} aGxf9U;i:QtG3^1&mգRf9U;.e|Ӄad޽ e"V_2~>Y*$ gR,-`0J܀=^񣑘qi\OzTtŢX|gC_ āɓ9H);ZEND3~E?wBUeUF*-ʎ0R0_@`[oqݕzh4@#Ј4hXCS؊_>^}X/nqD],U߯70`~Q līE|7s2սQݕI:`:b#6b,l\z_PB ٌ حΪX+KۂqGε˹mEN3 M%qSlTv9o+B@D@tJ6vƺսꏛL;J_")LYU=ӽ-՟4ћ-u*5˙p[" ESzQiBT]Eۊ-25]ճ.f Rv9o+B@D@tJ6cmtUϺ<6j5ћ- :J:˙"D@tLd3ftoK &zaGR'v97Vnl،]"m+laQԩ]M! "[d:Oho=B1j6٭TȮ=ZY踦3@bVW-C 䅓ef4]eX7׫tYBDsMa˚t3K:FhGpcߡe;ɫ*jNpI; ubN""Vs8}85'm NکHخSv)é9iCq^$i3Go;Kw `3gz3|7[($l'?՜NtNI6 5l'z9 >v,NX$lزDD$p pjNډ8i_elwN6k}DCf:Tt>O$̍gN"wo5'S8݇S}NFEv-IDjNp椕O]v)é9iHخ#v)é9i{;k~n@ЩAXxOJÁ 0dX~s'_U 3 IonTsW?ļ.)i)J{uD& mB^ȑ]|; +ً-w* ܣ^k:xm0#ғRƷ+pVV{)".>:ވ=XR$H(F ev_Ȣ}Z2/J͟_e!RDBd.f=C4- ;/֯u6zmםaN#Ջ؍w n- y:Z]&ϊ_%$ ln-xyUѲxaF]_'Xo>H'I|һ1k֒?Dy̾  H^8\7b!$$I:3HmI_ܶ'T4Ggˤ-*;u%n--GGGGGGGG\WͿi4vSukP.pG檰5ݬ=Mk)3HMo#YgC7lwޢ *TV{[֡Ak?Tu R]5YZcPKe[Vph-colemak.map.gznu[+eYs8S}kxx؇\d6/.m%ѡ$O0Kҿ*Dw)ga}?ܳ4 ooivX\PeA5 }!)fS!'+}Irߝ` XN5k!"OV]6 \aϹTaZ )".I͘ |!L$lwc:rƊuvF0߀̕+#$,D%iOļ7bxs6@|4GGy|#!y2f5@NRmj<"2[mRm1z1zͳVL[*'D==` XN&k`%/!I4Z;/x{"4~Kfh;vh"}M_ d86XAls&r(:˩pi|; M=FRFJ&M&r(qYg9U;>5GԜzj7).tMdP}TkbPtG7h{LPF-[7D%~}M_ dPFɖ6[m?)^g= qh\ڃ&LfKl=.:4BuS 36w@> Cs/V[nD%~}M_ dp Zc&2(:˩ISC :&?΍|,LvD5[fi-u0>&CN,3\yV$=+ d|{jwX'83NLJ@|xXdT喯*sg۩Fsg+7Ū^I#`;F&{ y~L!=1)3H7N:41(r5w|Ks# >&C8P72Ƞć:˩IŁ@Gyl*ddnD%,j_t'Mt;M~DY ]hȠouS #C :&?HFі;4CuS 36w@> c3Ndiѝ;)~rA _ dhih%oԯ8szC9r5w|Ks} >&CH&W7gȡ<}MҜms|ɐRC_I~IL묎51T7/GѬy3 (yOܐwh"}MҜg&S/]&V/|)f>3yUЇ;uql>[ ^'K&'߹$'ExЋueiVe~H>Wf9tO3@/ @/ O\e7%JY`(S9ꞣ1z zL_δzE,HtMdRuS C :&?XO\^c_:4AYNվ&N.JЁt42zDžZ2nN;4AWuS BC :&?DX1UR]a:4A?,j_t'M %@w: j(s)KȠ:˩IE@G=qg[nvߡJRg9U;.m|3aLk)9Srϒ֕D\ug:Kq(0=s&͢i &0} MV@ީ `1|TK,zN,'BM'Iu6ˇ|Ͷrrۂ%%+M)0`ӃIG?)H2)nԽ#7قL Shqe:vd v"-3(ϻ<͢OؗW]a`eh4Y;_,Jl0{ 4UҩF r#7r47 v~쫲X~PB *MK'Y vmA|qɷp5{mBB$DBeAzT"Dj0NF<^BB$DBE)yɇ5I Uj ^ \HHhP; /`Rekj5<^BB$DBEqwY U:=&5V٫-Zm? uѠw]VCշNI kڢՑFm.$DB$t]4(kPcRC^mQx6"!.ΤK~LRà^mQx6"!.K~LRC~Uڢթm.$DB$t]4('jO(Q_5x{vUE^E޽`wY[QO[$ϜL.c~GUZ䋅qu~ǖy(6[XoW*=ݤD:N:N N_|, =4lxC6DIJBfC6TԲBfC6fVIZ>y׍]a`eh4YwEI"v uY)AJH,xزBfCv,ڑ,xӑe;Y)AJD/s-x7ξ6k}dCFo*/ ƷlûS (O,xBfCVʂ7 -)djN:DP:h/ڞ,xSϲBfCV^2}e@Dcm.s80`Ƒ 25w”ViYY5+Umd5Y* ퟴj@>O>=>їx_\: +-7xvUE^E޽` +X/ #58JO&M`W]^E^;̾)_2(QawgyR̯Uhw[B@e窹{3Y?ݔ},-sFk]CʶkcAHc"~!j|7hW^W(P|:ٗR&_8K)n?j͊k4'>emLt蚪.Y;ŸG٧-H@gNB Ji y~:׌'5)_,)QO>}5GͯjX8 kqQv'O>|"DɉzESV/k=}# \Wfݫ(,P< (QAI!wݬa7h7^ *TV-РAenb$Q͒PKe[_se-svdvorak.map.gznu[+e[w8S}Ϟcn~؇efvzf{;3儍m܀QY;4~rw˒ˋ_=?I.vLٚ/~>.p \=e~hxI0tgYc/_Is` XrR,:*D8"jPB[caW|ݬږv5[{uc@b@@I0In Εe‹2Y`#!I$β<6 ֢ lxt,Xc!#(,#/GּH:n0 L`wXX5&Aβ`}&-k%[n?.pױlbYLFI#z\(Z!#m Vޒ, >Z[MG@Ѐ4*MDD,œaVz_xcmik34sRG*MW*W4fkY*[|Vtuu zޣ=zޟ|S'o˟bS5)BN 6la̝߀e!//mkNjIO #d~/xŕжjStVXlJ>lxYe1Ts= z'795t3f,V`nt"󥨃::ǨcX̷G:~]KmgҝC/x{"&Ղdִ=?s~`".wxD2,qd6U}Ti,c3{GUrvex04 n!EΗKZD^" 5͗KFjɗY/3z2p^Ӹc&8iq74T-%#hzDWrܒ{=_"gwnwNxNS:NBIkn#M3ӺEO﬿[LZCзgٷhof0'찔sy;nfGkI񟶜Suh|gkN|&z*$CF,ߛRgh).rNաYН4]8֔ЙKPRؖs͂XStO@g__ %OWÚh )^圪C;u0И(xG3A0%\$HHkGk|H-TI.YL0 iEm[Ω:4 3S\9w> Շ|}Fg/ٛi|u^Nַr++^dK~*5'Xɠ54+r)_e|Jʊ|FhFhFhtFd%V զX βG `;ά b y~R@l{FLjtݧѝ/rNաY|OgY٤#ЧW_Ya ?H8puNӡYЂ֢ hM5+ 0CzŽ4ekVmppipx`?`XG$=\ƫf!m9,΀Or)N|Og^5;$¬sr=ߣ#~_Gg F($=?rcìGkK-TI.)'wD> 7 FFx~߫-o‰螀Xߣ::օBգ5.[yQլ54.pq%.p\' T7 ZׇzƇ圪C;oqzrޙg6||uh<-{ƇWm9,΀Oqp|G0"G"91Wv՗i^]UKQz6b.k؏Nt]nit~N'Oڌ^Ip e-3QR癚3S1Snf$,+UӜgޛ˷'U:oA>O>}}2'+b'iH|R/_-pٓF&)H! fz_>UmsgH-]sPT'A2M*P/fd`돼DGջq /m9,N.L4%@t&'\MqF|:sxm9,N.hJЁ L+Mcr9LK5KZ{bv^h_v,Ii._s)N|:F[&/v)rScW~7׶燘3)LS0!L&Xoı،9,[,w|͟ӟzƙj9UfzޠQ gjH,jEr5--mKec#?Iy1d]: h@Pe!4G̓\į[Z WͶHP}TtL Fyf0u˖|t_ f0yz95 n` G-.V\nԮ7|Q}.fyz*TPP5XdY ~m~tq) ({ޮ"8C8t~+4z &Z˅=W!EfPbZۨ~\W`Q.]EppA)f^C3RIQGRC\ w!¡[dQwYUϺ<6?[u*5˅hW!EfPbPcZoQԱ].w!¡[dvYUϺ<6j- :J^"3(̤Kql~°T\؛*C8C J1CR\"m+ToaQԩ].Mw!¡[d夙JDӉw[I`FaSJDөw[I`Fa!W*XZm}Z3 Lf )NB+$t:$0 0j1%id坄%o坄ȑB7;ݍkϯk⠮ҵ9sIy]\wW>=[w* EkW{)/>گ _F GK'ڍoWh,ZK~~`FqO#AhXIrV̮[tVCbY^BtT7{<'kt5xoianTl{\,nn=ҟW} ܜkoV3lYG:B%ؼee^4W;$ OiݞXE 5ʼ|CD3|zC<'==JoV/"s]<-H@q4 HIB})z4.i:\|; IJqHa{^jGHe9M;i(ԔL `@>01UBmh"W]t M :$H_(_S8=A}4j 1 >$C>C mbUZ *R`Ij6f a3l73?vz$,W+A0ֿUuVVkmQ#~drE3BPcc1{8aXBm;vo4M#h5$$I ~F4)SZReixGqܸFgtFOwƈFoJi!^M&r5Awta)A#ЙgFHyLg2s.D /,P|gg6֜L2#sҋfDC٣$e9M;>RKq|3P"6"9YOff֓U&br5w|Kq&|; Iz$$FZn{L)w]F0}L؂i%iX'+aY#;g=Au4j ✍4'w@> cg, ӧ{=cSD W]t 3S\L2dE”PU=@C4jF7@gfz;GJ/LIM k4j Bɹ'w@> ÑɚgJ>15WI+s̭վcvVuڛ\a=X]*"UkToPPq$uêzp|f&XWA #/}G)F[bԟE}NWP&=jV )) O㋷mSD[uB\ay.Ȝ1:WGX 3Kڣ$^JRWUٰY|=-h-Ԡw@k 4V &fVMD K4jTStG3O<=&Bo٣$e9M;i(єL 1y37ynU4}uM}~vW} f0yF٫7E|s2j--bm}ި[AlF6o*TPQ5ɘA}`זG| z]/mB@D@Jw1oWQq[.dCVzVn KUmT?nK0PmUVN|lg6z J z/Vn˶zQi]BoCR#U! "[e:%Suyl`KoUخ۪Э2vvUϺ<6j% 6*5빿x[" US7.%ޖmv Jd[" US7.%ޖBFj:빿*D@tLھ[Pmx~khVn ֗'D|Ӊe;)NԜv,OH|ȲBFmp pjNXcYMǖ2Bo3S8݇SsNIb6SoYM7ϓwYS)NThgU^,= S2I6k 0`0?FcN TuCaLgӛxťo#oM'm0PTϳ֪ZE\}r\ә(|xk2$|z>idC GkUw-".>9ވ?\0(Qa~a_2fW2)66ö{[0~_eȿL%"! Gz͛!kU~:mCҊ0EF ..?/QFu6zٗF]&_JS3<ӳ9=>eͪ7JآĆnHttҼ2o Ƿ\v .p \i¦-/A8Qh:QL=+tKX-/'PD#NUbqV|l}I}ip/r׻M%(3,eR(*ww,iIMFi3M.jO d x^N;f׿@ }ҤmMt:dLXQi@}Q5-gźҴL3`ZyX*6@x^  h@ڷ6n۸DIDLs0Ӓf6ĈՔcv@hM61@(y+0mUٶj]IQܺ 7B或t?  0( c9c T!φ@] EI[m7eot; A3'0mD=&3S2% zʊZonfΖ5еW£(< £[x20?٣%/ɦA{W~]YVsELz8F﵃ϺOt Mv #XFl+fyǏ8vL h-_ 3- ?_yw }=qzG$OF(ST=/t79W7\ (.⢸(.K7a>(5[AW O$\cz}U=^j(M{~Pe@ƱP}yi$OsUw|KsfC >Ñn G :I/T֍2g$<2Zr%瀾*ό1I +4Lj $7g7>WIʼnyR U-'R);$AE| KBC :=cFb,`8R1;$CE4'k_|g4'Ҝ14#FDaMCTd钉4~{HHF4w! *ݧ9Y;i$1#QgVv:VD\F?;pwhwĸptQ%M%)g*eMPtHºӜ}UҜp|G01?!J3a5>Wi.͙3 >Cs._,ͯyJV+unηOݳε|_=4j%TiiºvG?+h@ƇuGZvH#`;V{>HFŦ1hD# a,߯G)ђ6<(fLdA @b-[ȔHѩ8rSESuH¸| SX&wdTڧ9Y;>ͥ9G!XQ/j@u[Snq! *iN־*΀Oqi |G!)h5I\jimL!StV1c萄iN־*΀Oqi@9#QchJgOtaW xӴ=Gf3iM20[Lc|L |oQFw0& gVG&\>B(4 BHY{rɴ(QBN狜mPo'(9J(ɔn||V#Dx!UHOװ-X.f*&ec~Y9|M~b[06)87 jDȧ _?wHºӜ}UҜ15ȄDv/NEъ&_:$AE֍3Kvۣ8UAzOWIf Q5wb! *zӜ}UН4]JЁ3#Fj6d0 -CTOsUAwtPt@Gҋ1IxPKdԻNN :=5~4Iz¶t}تC>TOsUw|.|G3a2]VH-8lj#4a3+T׬rUuۈ-$  I;! 54ecXjUجr zyJrn;t^@(QJ%lFF;T3j|W=^oG\~[dw!BEjyˠxWXkK KETNv%!¡d*T ]1e"16[Rhs{$8C8tR򞐗Z՛pdnhҒN]Ipp&Q=/PpxoxВN]Ipp&Q=.X${AK;Kv%!¡Dlj`= jaKv:7ܕpnUJcxLb4ޛ-ZR8ӹѮ$8C8tRI%Fa%Uc;JC8C7*%!vz[b 5[jqbs{]Ipp&QM] O($Fq㞿j1Ek?~~*3 z) Gxȱ  H9i\FGUVqu[|~ǖEU͜,WmgӚmnwX:B( Bn?, ^%9!Eʋv,~ҝ@z0 0Jm$/ډ Kw3((]hӺLzC^+ f0?M/F-w[Ag6'Q=QhMdM, lN0ztюE;?thN =tfsCv,/y#~g߮hog*DV@L`N wg6'Q=Qsю e - lN0ztѪ/ڑ ;Й `Fa.ZE{ ~ҝ@z0 0J^,(V 5J۴8(P@ "ڙ#bi]iYK2OǂUnJ֬4u7jB2L(ʄ2=2JL΂5E4QK ,Z `TA|uk0#Tzܒj܄vaO_59σ?Kw  :-2߬Ek6r^zOj1Bxd.>f-},+sσ`vk׺zm߃nNÍU7n.> Nu5ٗZ?&_xJ2,?e>U"D!j#-OO$:1O'Ԯw͊2uGxȱ  H9 5. +1b[t]1Od'D~?tkb_}]Nb'p=2my3B'jOF%xM+=.puHV_5ŢDk ;}l)Fæ8_9UbNtU E`v`v`)1IY)M3|Eם.N$E^ICE;|Ʃ43dH+EԦ#Ǵ E.ڤFӡ":<Kt1ޱQ4+FBoc'E޶ICE;|i|( $_n1ݟ.,]ķLa|!Ly'7/Z> cmmYy0L|&0)Ϣ^ N!ߥl^$a XCv4"@xhVr>2M@3pi |wD| 7BPQkc5[0'?ڤ햃$:!\gm\\\̊P2W7r`fE~$^ݲi:T\݆Ϸ`.>s[8>pp‡"ۤFӡ">Ky_S#dh~S}9 ieqaZu]|_[`zᘒނS`L;ӋdoV$1R@TwؔAz]S2+rxg ؤK'˟[}3A@ɁT^.*(ϳW*8zR1@ 95ohadbfG1@ xL<[HrUbRD `";}E-z\^[bh*,jĀX}`)Lr4ٗ]L6lI'<(FaSDZ @ /-%_3=REE⻳&z' _MShp81 4x8,LhVLDs Z6:Q#~"N6'&'Vs <jf/G @ Rr43C [>R#jku s\_,֦lC]X=?L64ћ7;M[0!*f>HB/CvZ0;00Jjz/$ F}s4Q:% IZO{|ްZ {V$:Dۄͷ7B B |]؞Y%{@ZؼoJT7޾k˞mXXN %O'yy y\obqY\7k1UEa q0"cm..i0 ?ɪmvȾ^030rPk WY|:",dNح%}뢗ݚog< ,XOR23gN;IְswᰩAgP7nT7oڡլg=o *| ou'ZwᰩAg6Xĺ{}NV]*8C8lhPbz:1޸ևvh5zn/ܥC8æ%6c9f#[ETppTѠ3fzn>|Cى&TppTѠ3fzP}AVS[MwᰩA9ZP=4vh5¢Uծ_GgYɩB_aHH^8\">"),-./*/%]-Ja*vu1x @N GdC%7We\7k0 0J'+Oډ,x׉%7 顷YQ=Q:i=yNeN-QH!I˓b38xnmv_րZdfe(堷YQ=Q:iCy]KnCoF0ztF e(fFaF餝ȓUj»k"7x;ko4r9fKnrx6k0 0jNX,xWג۬Q((ꍶ' ճF!=6k0 0J'z=:F!=6k0 0J'zF|?r/uW``xr ,LqY]1 @ t1/`^/֊nd,[>Rj:!\IjpTS2۶8hZ[[ }Ï:uhUk~~i0^&Oz|}CkܸvaѪj/kC~gv?"X^㬳>6X^:NnU1Jxd.=[TC,)N ǵkyuGogpc" :qu6'yo/k(Qabaҷɳwɢ0,SZ ~Z@@@F#_;6{$<5U[Avf-C  &_W:((Q>?3oJR.X|R=ڟP{4GL/WzX88)>b_Y%V <4ujE_E_"tsv}["qVP z8k *~(P< mz (Ϡڀ|lq6a Q#z`{d; YSp;/*rMx!;PKe[3fr-sundeadkeys.map.gznu[+e]rF+tbrCo=lrQ`)J{jb !Tf֒B%@;uWz;5-2v]Mly.2ee4ǂ LY&{VV*bb..7,hb_M&M U"tHe^mEmyhpQ^kUuh+zKx / $qL(.j%s[2x^&{qj!)FjbkcD" $~ZED[%ϋu)Sy-ŬX Ak!@4@ofbXǸ %9݀K"0'F(XME[`Mx4&&NtL$ z|Jy+4g}5T^^=ld!9A;ԙؓ4TpB"/$Pƥqc(Nt0(Q,~o0p‚"$gUrN"0(6X#F f"8RT1y&9U@wȠ:{tfIWQ[.JubSp‚"$PN]@tv13',7(JNP6ɩ:T3pi |wD| ̰Lc]}o&ǺƑOT*If%#~GHB=mSut'. JG@GF8Vq:TqZ}Bۤ;0whs̘l{Ε1ESI E'+6ɩ:T3qi>;"> 96RQՇՌ"p†"$Pƥqf>;"> |f*r싔EJV-*W$#4B#4B#4B#7INv:8omnت6ծK~O ?)rNteaE`v`v`)X* LRDx w ]h>Z%$ԨM@,3l )ML@3|NL~i6R \INա":< ˂ xwdxL*:C@hǎ6y&9Uw4.3|GGfE,C51Sϭ1-[9 E.$P¥qz1Q0XZ&؛NP6ɩ:T3pi |wD| J ?os[I~jq;| qi|GG{@%̓ 8𒋷3bI6i NUt@T@E3֋;T5Pz8aA_$U*:M pd63KAIͯ i=6y&9Uw.Sq|GG93ϊ&j$9CU)޵I33cX`0} &B3c>OQ i\=j {3fV69< <3ՎDQyn*],ּՅaQ/mɪikN})sxOsbWyygl^G2$VI뚕nF 0׍+30wLi_?pš"jCE;| 5(^RjA$% -$7%@"8͆@zHA @RpQjŧP$_Zk!=ȫ6ɩ:TF%#gfVM&Ѹ菼TPS',(GT*I%#G3|}1t lCE;it]'G t@( & ےuU'l(kT*ke#30Ar`0ߤt]YNr&3^ja%-X׬zgݺV`V`}FX)G.s7h4RX3TjQr5mjQd\FQPuP%:T2d>YB]qu{\9<Lb,,~@Su7}Ix1U]ppNsGwJu^/O}jf`f`~V5"qAD:8qK5؆m>m|D﫺^-;`,c>k>*rvm~tqɏ`QjrroW ESHK )l`QjXw  [D]rsRv9*AA:%xtUzsR͆v9*AA:%wtUz<&֟5֛#:J5\_a"|eU=`V#;J5;˹"AtSkMWcbaQى]Mv  [DLԽ-6\tW E)KLbV9¨T3*AA:T ho}B!6иTȮ 4ZY `ԙH_K9T0|!C 3Gb˄hJ"e;,ʯn|jUl3ߡ<pN'OdCKv|kjNPztʄ7ZH ՜JJ E; o:d'z9 B!EʋjeO&\gN"wo5'R(=RsNGe›$Bo5'R(=Rh@&i`N"-Vs(C(V}Ʉ7YH ՜JJU_=u^EfߨN%>bm\j @H݌z3TDJjZE~靵/k)~䬪$wSfe:oӁ>'snVbϻ}%N:J5yvj/]؅ۥ, +XMӎRcƷ+VV{).>خވX2$HSb]IfirQzOMs{`-Y{5KKz<BqZW3aqs[f`4X}pa] M XWX}ceQdw15 o?*V ߁X'6{`$,5S.YC.[0i $@$ i z~z늵/Kߵ'Tn3Q,ˤ-:y)nM/ggggggg=%_/>-8RekP z8k ","= kz H Gހ|jj8ú& Y+{\e8p1CUMuWj?B#PKe[bF ru-cv_latin.map.gznu[+e[wHS}Ϟ#.=C3fˋBm5$Oj"H?'tUKX=llWϟplμ./޲2Pe~~dxBmc9Nͩ` XKkk|!‰emwM(?eRʆ[ADDD |3nV,/mM`# \9չ2yr4jE32"$I4IGYmO5&0Uu\5;[h}'y\쳨2-^e2ҫD:NgKW謟      >k%oMuESDu-7_ :.$At%\dyR6 l'4=2<'B^*Q Dtl0`,=,MgRI`'3{N|^˿׆t]W`YξJ@lf7@EBM%v[gUʢxWxD@a9/(Ń,eU8xwQܦ jLg/x gKɘN-ZAg&_^~i5Jʹ~hфw%鲬]MOqiNΥ9(d8WJ^RS&b(/eujo|Ks|B'TPJ2qX&b(eY]ҜKs|Q2\W-{eujo|.m|'u2 dgae&b(˲v57>(zu2\*垭=h"qYV׮&F67 %CNo/w-.4t|> G0@Q:J{)~vY-7 TqIǣ֓ZA(y=SdV熬Eޕ˲v57>ͥ9׳|3m.&{vߢJsYV׮&F67 %C\i:_YVKWy߱D+cP/'8 'ITi*ז-Yvb3V ;GZplplplplplplplcC;|{V[ћQh`;MJ|APROљ&@IZh"(eY]ҜKs|Q2PWM鵒ThD %.]յ ).ɹ4'7 %zLU =[[h".\dH+Mlî[4C eujo|.m|Q2hꡟϨMPGeujo|Ksr. > Gɰ^6[(Ş}Khne} r7>(_}O09{l5cC?)dqGNdVCgڳ]&B(˲v57>(;txMP˲v57>(.ճ :[h}d[v'uIѽVMgir 7Z1!w%sqs)D>+O[]V*~`?_u?&7yQIDMHvGDE$qǻMc'}J&5qBi{{`oЇ_uy\(QrFǖg*4*nFL=3?\j/b҇qlF{g&b)_eujo|.m|Q2wŞ}nD %]Mmo@>JL="+TƉ[4CW.45'7 %z\=f:۳-.\dH+|=[[h"/]յ 9 > GpY'CtgaMPWeujo|.m|pJ0OYه&;+ߺ,;grhL`:¤dP}yO[cNT\m%f^k8|dd(WL[@gNzsQ ,O28E%T$%/ȿB,e%qh+aNJ2P`nA2(2Jn!wIߡ˻LӇGOիc~`ӌҫ7J|6ލN}A:&/Gj=ȭ 6b#i;_yMA *ԯR2w(_xտ Xd)2Tzv`Zךߡ&D@I9w^UUHHgUcZ5۹?P" M4)|ӛT^u`ЪlCMh7Ѥw&^TSգm^mᤡUnI︻g\/z ZP" M4)bTcRIZmЪՙ5! "D߱vQMUϸ<&5 ZP" M4)I~°U [jB@D@&%C_"6Ԁ+TmᴡUK[jB@D@&BI˓v! >taV!#v 8>Iȓv) >tiV!#v 8>Iʓr*(.ycz f0iF%klPtjV!#v 8>I;'L|̰BFhfp }8v!O|k8?!ڨ[ɂ *nfp }8OD,P߰BFhfp }8VȂ *dnVpڇS:i/Yö U)NZ;㵗YV> @z.@ oRp`dЇLsg*->-PYz;//3 nNb_/ /}yمoGx6uVzAx4ܭ{r\HH K*C u <UVE\=9n= lPFq65w=(__&7(m솱O{0z'YS5\Q""=Hk߰Kq✾P8~wXyܖG?ohFyaYĿ}]cf oTgxB7\,Wɢkz ~,/! 0f#_m7ٯDBg]K\ےm.)cA|$\7X䝆u<]+|Q??'Y|جbj✼K͗,rW>"tq||L*4KgKWtբ__9J,Mo6%4l68f8ƾgü+zPB:jdcħC wPy)΢lWZcfPKe[6Fu vn.map.gznu[+e[sHS}jIMfˋ $<~ov E1}t9?}%.q?_`={L/z:Ou6.pU. \o?z:>**xLyI=D}.ЧU.\>1p@ZW`sm$E=D}.ЧU.\z`t`.?3]|m>8 NpgK':YU)tur,d>h8ƊFi>>>>>>>:WsP-S\-^.7`]fq: nprLr_Œ1NkՇQe~^τ%T2t%\>۬mq: ^τ/-Y{Ѓ}bM gf^ F_n7$ׯ ilsizl=[Ӈ(>/f%Xi-p%~3%[qr'mpt]%x ^>^Jn_ˤkc` <84"5UvKkG>J*N䤦/-յ\Z|=Q2d8:մZ,C?ҥ]%|둏:3TO5e-.eu*7>_|qJb1TKY]J 5#%CJ39i=1TovKkG>JA QMaKPo.eu*7>_| Uf5g).rGk;x4oUۚs8mwUݥ]%|둏a>NZ,CU\Uo|.(; z\8O);X=W*υĚ#+]铉u`;()+jԨQAX]>VwG~MAq%^յ\Z|=Q2+CYšKPՕKY]J 5#% )jZ[X".]Uo|.(c9i=1T5w)kW 9zdHwEZ,CU?յ\Z|=Q20O䴦z'Yq||둏a'w el+ӞGkp.Jf;n'-]Uo|.(;ԴjD Us)kW 9zd8o\P9Pg$]) h-_ #O%`"`%i^f؇O{?i7[ ^R2U2{0Kmtr,dn\/egQՂ6qh[V`+z w\}Z(Q3Q"gtb)=n>_\#eMf79t5ۋb{ga\q4QׇbXKY]J 5#%Cz`4i=KPտ\Uo|.(GJQXzXbzRV׮|spi >Gɰci2״1TKY]J 5#%Cc)P;i=1Tҥ]%|둏Ji"M%bvKkG*7)$/W]Yޥt=_5d >a>tVX,`˳bdd#f ^4o-ST˚<4y4|7%[+Ѹ-ˋest 2 d{Qrpo-a4?~]ˇ Ucq`yF97J p:&ot]͘;Uꕽbqi8שּׁk7׈~Л&OF5i6aM&lMa%xςh`r& }hr"."qi2+ #3/q6Vahr"."q{7隡@ h3{Ilqīn{cmʇlf/?>JDBgɘ]wR\$/;_ׯq4;>.>{o7F}# <0,_ľ, w1Mee7*Q&mt<`x\4ӹh*#N[(92݁%!gݬ|u:WD5ez$^iEaYD}FJg4```````X]6 l` tmH' h}/?: oMe6@n[P, eZ>'>JVO~3XJ\xo/a/_% vJESczl=[?0޺هck9l|J,ϊ mY :a%\1mkxS ^τ1`}rc;0qaLvSXqIaj,]Ut)kS 9zd8pKZX".]To|.(.3COel1TޥM%|둏Hs9/i=S%b_.eum*7>_|Q5Yej+i=l]czRVצ|spi >Gp\$@A%&ڳ6 K=Hq9xdlf%sM%BjRVצ|spi >GpR7Uŧ%k,CUյ\Z|=Q2d8R5w.eum*7>_| ЂJL. mh|_O| aTKI޳WT{Zdx45o,OFUl3WcazT{7t0{ϲcwWzz+J`{dSQF=HL=tX"KY]J 5#%D]2)i=,D U]յ\Z|=Q2;*c/JӉdK}ᓓ7>_| 4|_:f5\To|.(w#yIa5]To|.(N3å˒j,CUq)kS 9zdXh۳5_]To|.(;SdiIa1j.eum*7>_| wsoJZk,CUp)kS 9zdXh˒vo8.Ua!#ֈ}xsYy-4;ugl ^τX%H>Yj,a0( "m|TE[m7Fߓ= l[VЇc.PfIa_ZJϤuާ 5bZdrz}sWc{^l/>MiӠ?k,KUu)kS 9zdHw̨>X"RVצ|spi >Gɐ/ߔ Wҷ.c|x,s&`S IɊhQ+'%5W.eum*7>_| ;Z3uz9+i=c%b6KkG>JtG]z}%b6KkG"N*t6,i=l[czRVצ|spi >GP+}&a %|n^ٲeizJ,ϊe,*ⴺ.,⍴od,nЀPwx7Rl2DDZGfQi0G @֊{kQ`6ۇGOֶv f0iF%k~me  s}fEHӫAkb@lF^cdWﴯ08_鵿7cgk9 )HAI)+~W%#0Ŋ/yEklN5! "TLt|D7eh-LN5! "D_S՘dzsLڜT" M4)|izȣ?hզos&D@hR+VTdzU1Q/WѪ͙N5! "D_ʧ8=&s2Σ?hl槚nIɯ4ZSdކ9\T" M4)_+~L0'W|\T" M4)|zƟPȜyxЬUAx4V[q4@wo ~5 &9cA|$Er+$ne[igQ$-wʂ=^]eԇF`#؈Cc,ϟ˂ m/YiNA0UݬN tNA4UݬN t:$G6wtY f0?(zd˂ m㠶U)vڙZ?hm# <0,?ľo w1Kei7*Q<}i*NYXM5==7OYBTlwg#kR [k:YD*fR=w_1Tc}㜱  HsJ.WJCԨQ6oFc˄F>nT}][*n5W#tr|}rIQॳup \઱kU__l(Y5 (Plphhb ʟa„ fϦg>e,Xc4Kmzl?PKe[Zbr-nodeadkeys.map.gznu[+eYHS}b#ĥa|ػ^ҁͶ$ڀl|,A $aUfRE0UܳuP1S6F*.ް*9.p \e~~q<0X3IoRi.8a+Mۇcí2 @<'ɑs#e"c!";q.nA\V{»g.Ά}ێ)  H@~Hz&s|Q*7UtB𩖍uEMpx +VϷu7l ;_`_y(_:=b~;Bz9z_B]OIeǣvbizݤ(`6-*.uٖRv}m A{moqCytGyt;O_fn<Bx:JYw7Qmf2=t|#@*P}$XŚ:]?Guhµڧ/x dga/~ľGPq.0 &>G+'e֍Yj{ߡ JS /Æ?frghA o$ϩBz{%|_ }*7Mi2.7hj83Q2d8 #\Є{= r5Awtad(A3Q+A_elc̴;Ļ&iEE@G+̏M dToMӴ ).ɹ4'wB>JIs͟h#ءJr5AwtPtgb"HA3MӴ "C :Н_`n<<-qL_y¹ k G04p)IJ)y&+&i4Lg|;!%96VQJ.ՍՔ"C7;~Ӧ?C^֎ԣE_r>A P|<"9|ղKgl~/!¨%Z0wuw2`=1t Cб!twf]wh;h`;[MJ| 9Q=NC GgMӴ i.͙L 'wB>J4c#PwL2 1.);4B&iޥi, x;1%A3sc؅J.-}Zm!D %^6YNӾ&4g:6 (LuƞgnݖU4ko|Ksz|;%CQ! ժBID %~j}M OqiNΥ9Q243j&jO(+hr3J?7Y_b OqiNΥ9Q24=`,kxlÖRmEP@E˼cP39݈Pwh"JXQƛtvkbp) ;CՇDͯy i}U&b(r57>ť9=NGмCB5OӎZinnVv_c?$p̱t~$˒H'm |CRf5hu} 38v*՛[5^K-K/x/1w}-+(Y`:bS,b#Zn盛n#y ;E\ѡ3rN$*Abg&)_)V,]١ Ɓ1Fa#"#%KzQ ~ԡJ[ۂ+ g&HO 1HA RrjEP(7Bth"/,i_tMt;%?3ssVO&5?):4A?,i_tMM %@w:J~4cWڗ&iEөt;%?3CrWIbzM&b(&i >$ÈZҷ##PU4Y:/ wΤY[0O0)YM]]_[F㱰:3k /G\ %_'o⊯TI/Z?%LjY֧عuTv `(QzrD.x닻~:['"l%*fԣՀ|߉(3r% $oolWUzfn^ f0Qꍒ5٪g:qlW;yeLTN b#6b46 vd틪Xy'PB *%cW #ueb7G+ -f]/B@D@ ʯ7ԈTRW֟`RkTU! "[E?YyŇ5Iu[j_ * īzz4-՟O8njhs*D@thP'YǤ:z ZFv=B@D@%RuyLj0VOjubs}UVѠO]Cճ.I :z ZNzo *ɤ+~LR^°V3B@D@%B_"Ԁ*T¨VsB@D@L<S H@򝓘2O4]'EZwǛ7lRnbEy*6}S:NKÓCSvgee͜NNI;ufN!#t6s 8c86'\|׹e;)NNPEUIsG/[kՏ `3(GFZʂ -)Ag3S8=S:i'dw,)dfNpz tNI;ubN!#t6s 8c8v&Ogim8=!ڠɂ,)lp pjNX,e;)NNZuG;5l:91Ihew[S͜NNUw_W<){?3POF͏ 0dЗD 'o&ūwQfQW78/Wqy[9>3[?a{)$ I(_^' !!!'xx[yW# Yz^ԣRy>[d)g^ʼnZe!MkjO.p \ lUTD9 nzۯ(QG~aalD*TPOZXo-+< ai\-/XX^NYuUo:*;t d ;쇲*m9ѶƫDjhPKe[dBch-fr_nodeadkeys.map.gznu[+eKs8)t*)鰇<3;l6}\\ ZSCRI<~gC)Ҷҿ*Dw` "ްer[7.-26F_|`urq@\zt3X_Ÿ 1IHћbUE~1Oқ*Ok]m`;G,V*m6OJGؗvЎƠ1h <ƘkN9$"7huW&<_ |^5*;7Ydk1 );$uT5+ՍZ\RϚԌ[_da坣.^/ujYI>.^:QhD 2b=6E2Lނ;dG++S &0 LM&z%I*ea&d.p'ߌeS=>R`].?L&r?O# B 4 zI 2פ&M%/Nu lquorvY|G`8@R>e3TֲL}0pdvN_[wƠh=Z֣hѷ.`ŸP45y(dz}^'99ǀ j!h/ڋh/}Kc=%җ5e9LY}r[Tke^^R׶= )H') z_$byQƒ좸*V\-*],Eb2R[~[$q3D%Eu؝N\mh0h0|Le>w~aSnL:mvtCM=^ߒMqPgMD׉'e$S z6V?,?p=̍WA" )@b-]M̠2QtRz$GޕWTj\|;  S=Ƒ!){MP]p5wxad0mx; 3sG諑[.Sh",PtGMt{: ~jQHJ/VqlpMP6˩: ).ɹ4'w@> =3& {3FIB7h"mCM5]JЁ hd"HA?{4A,PtGMEt{: d~IF0_wYHs ;\83ap<o8ꄡ鄗*^(INMxWmSu S\S?rN|4FϱRR=Y)m&b(r5w|Ksfp|`S'?0*ǣwU2SL%[^XUW*hϰff$=pxf9U;>ͥ9p|fꩪ\=YNU&B(qf9U;v ifZ3ԋbΕ$ثMP6˩: ).ɹ4'w@> ̮XBJ ڏk)~jҜKs|@8τd,ۥmfA*L @*̷dbhs'P/MDP)-+dήCMw7o`/aISޣJoCM_np} |; [6L-w2dITb=ϙ@]}uSU7C]}Qu`2L=gNiRb 0Z-d^g 'Ø*ƴ1˜dӫTMBZJ7PCQg39ίMF$S 2 ȉWL^H%ұZ֚).YIkUϵ=GGGGGGGaG 3FHd痪_}myN3iR0!L4X!|?=Wh,_Z&;˄ϴX.'[*\E^\>|׃ uGΒfy[TlKb"L.gS /3|ŞF7e- #oz+м l-[-FhqFE#pRg3~xa׋nC}xYz_} f0yF٫7 Wyt7:&qXM0K߲UN b#6b46uv_/PB* 3']XL:JM].*B@D@tʘ|7Y!U"Տf F˹?W" E)gZݛTTn`Q.]EQob5]գmlḣT]-NdI;',ӂ%[QɄ,Id$p pjNXLe;[INNZD; 5l'z9 >Ihew[՜NtNUO?_{]w{@Dc}Rj 0`D]b͝@}U]~3V"PΓʓZW._Y>yUf4ZkCGbC>̦X^Fgk jtRz]AxKqq3eH G"ӎRƷ+VV{)".>:ޘ?~X2$HSb~aw")*;a罯|,Ex]"E$D:HVs߳zH%=p'f<꺾Gʊvߝa#ՋVݬB;%(Vfj}|V.Y'gx~Jtv{|Bϫ5wVo3?e {"!QD2kuzo /;kf1YW%}]%E}?tib-MoTqvWCoqDpDpDpDpDpDpD͉Zˢ1I? n-=.phֻ*iD4S7]f Ez)?lYgC7ltD*TPZUAk?TuX]Uu. 6KPKe[-6pa  fr-oss_nodeadkeys.map.gznu[+e[8S}Ϟc>3fӓK rm|Eגia@T'*0Hp>M5m {x:.p&M,{؏_g OlQ6u.Ś=Y>@2=*ĶmM%/Ddn6(uY,o*[,EmW^EKE2gtS%\txmXh6~ȥ J:mLW<ޓ~XaNwOf8.>uȉ \>4MG6U? /j ]tEw]t[uN|Kd5sMMӣ W`U}h/xτ1_u[:ۻOL~p˷C%YG+̕ji.͙ņ|; DDAGJ2_A?{4CRC>ͥ93p|`hƑ 8]PY&<(ʕjYӅ@GojUdt.LMP+*:4 \3K 'w@>ŒYI Zɹ9G>͕ji.͙3 >YL^218{4CRC>ͥ89G7PTMP+*:4 \3N| cC%~] sYH+3O~3fwch\A(P6=h]RC>ť9=u×s|`i)s}-48MP+*:4 \3 'w@> ejP*k>  3Oc!!!yCpHpHpHpH"|IP~6 uzibߝr_RLgŔO~YL'Dzmv V=NX=ZTh…׮T$OcYށ(AСj2pF3MP+*:4 \3N| iEzeˀ=1ф%\VѡIН5]JЁthV(MxPGWUthtgM&t;?*VpB=G?#+wRJ}`w|Ksc >!}cF ByŚ)IwWjΈKh<3|WpQ03߈MG<_=p/T$.Osiln8Q0oĨJ2 v٣ JvZE&w|Ksr. >fL/cg5yw hW-xJi\g,-  VY1OH d%XEVfl];馨;NQMo$O{7`쩷|))$llF`[k챿= @L=g<"ۥpoy|M^%ʦRͬXReU(=v2 d"gj3I+Qr2_|y)*fhbEV,5Ɔ"gj7r 蒀((:(Nι6"jVwO bx(IM>etթ?(h@3bgvY/6;O͋UyPjO!0q:D gnǐvcHf=κҊ ߫Y ߇M|Q7*TPQ`g^yͿO媊%T?]-H:&׶m223&+Bqcl`a5mLpp6Ѡ3P7~n`aj`y{>!M4( fz4-՟4ޛM~ajhy{>!M4(Lfz1lajdy{>!M4( fz196[wXv^pm J>uyLj5ޛ- :ZMl;o/gC8ö%t/ix[j7ޛ- ;Zvd &|Dm+laaԶLpp6ѠXG(a;ZvѢ/Wg]ɩBF9(_S$ ɉMYY,] [gc ea:nvC:NIÓ!c+[4Ϫl)L:p/DxYƳ|.L:pI TxSY&EDKvauՁ 854HB9HLzG 5 ׯzPj `t0(wrǛ e["u ZvauՁ 854Hb9H"MDLheΗdpqj.h$rrǛP7?|+[ug&[WSsAd"ɳ<ׂ7\RU(Mڀfn AoLZ"Lu vauՁ 85fLrrǛPgu/مU.\ Q3&M2+[ԝ|.L:p11;ބCY٢n?0ٺ\ $j[{ EQv>Oi֭JuN ȩPP3L^U}֡!H đt23)}?io*udiʧ&x獮|;+-L:ZFo֗WE)E2Z>f`?+V@X4{V6D,7"tq^ra3K7Y@ةh{[91[s:Sg{/soԹW?_Fsݬ Y IlPBz`Պ^۴Aܵ\oQZ6]:0ڏCPKe[>m9ba-unicodeus.map.gznu[+e]K6W}k$;$9e "PBRc;~ $эD"]uy8O{we|i.2eq|<*,Ҭk|Uyv8M㴈7m|0/qTc%uSٽ"VĊXb5Z__k='YQ7yq4и>sW`d);mg5n,4tXxxLR2R~cG$Een4zCza:m ؘq+7.`l1bCl]bLBYbiXW3OzŵTDz@wР:;:J~3"O֡ܿq.2S PU}ZcY;ktgPН}1/PeNƇ~ZcY| )pi|GG|#jvsgr !=ib =+) f٨_a(U}YN6T.T{RY C(恾p3Q u}{Z*kpwhw̸܉f{hf.3U/Nhr[>@5U.: qi>;">J9樛(U/ԋ„Ƈ>vq-ձ,]>KL |wD| ʞjj!w; =+) fRU+OD #ՙ`JxQyG6iM>GՎ|]a; Aa8lx)Vݕv`v`^XQF}yIY94C PMQի.: qi>;">JyK:l6:Q}NۈTAU7]\Ku, tg. JgVLZ P/&TAUoX]@t'@GɏV@nVCٚ1յxE}@ƺX۲Ra0$J+~"]BW|A)$;;Yߒ?m!W~["@xhV~MԲ@֮&}HgSRS4NK>;">J [拙|XwW_p"տmQPt@T@E+2Ko2W7r[f2< PU"+\dmu.n [\}p) ӷZbClƝAwƇwq-ձ,]>KtF(oztW g-7do ЅԍMB;58pL2V5s#Y^1+TVlPJ %RIվk\Nb]6t#8M㴈7`M#,"arݝQ D(]Zq9yYw]߷; 2 Y* 7HIrf-ϫ8m"Fn%կV,Dxv ^{!6b !6v.od5Wxv~&}=3H3 1 &$JRze'g/9M>Yc3ΗK/8r;e٦Fk00%+O'+y3YIn!v,yɟJX\7~ywg/>{]``9,l|l [j&רooɫ>y36*!vvD1"FĈELkbQ^vIAMVrW/}Xk /AQ+q^e=d3&Ӗ/͖ArkSX!*$H Ad,V"\Qig"Z~#5Kpm1cګR"қ=RCra%C8ö!|-5Z>YT-]"8C8lhPPuix[7GH5ra/%C8ö1z]U׺=&қ#p{ m!a[DRk;e>Gɉ-&DppѠ3֮ZDn>GȖ {.!E4(̤kqL"}^A#Ԗ {]"8C8lhPbEP}aT3[.v-A9m&cճ^{hh#դ E[ KYuS !fhCE{7ϕ0Z|{PU(¨9i/ fꁵy#5n<[h5uK~~`v|QFu6q¿sV$7݊ejZ" 纻j=F Otƞ%ҽjL=p vavYW{?,ov97(b߭{Xgx6B,ͿT6:/0,)-튅h?J^TP5 O|?1U3|O} “]3һ1d.뺣} @$@#"`3 QF}yu/}dw :JC(y|]bj\'pm5/"/"'͉ںm,QNX (kx*~,P mz (/ڀrll:G A Ȥw6>"P@,ꇲ*]yʫMaOTdPKe[ks in-eng.map.gznu[+e[sHS}jEBz؇$ff'ēˋ  Pϧ_FF@U>>{ 7)7¢aEn """bQM_Mg2B݆dy| `#c+2WVlRUsy2nm$ ւ< O2yy=D{ YD0&0\]@P/}uGqYt؝A'nhit6L\a)~D|3ħo %.<Q_ vsGSczl=[?Wսa|MŜP-` XΊE%z%IHA0z6c:/xτW%cz7` a5`?Sܩigy6et*7> ߈|*U2 dPrտlUo|.T2\dڟ״FZ,CT/mUo|.T2\UgnMaYbM]JM%57"zJkZ+Z,CTؔѵ,\R|#dTp% W5-=X,cSF׮|pI >ȧ[%C7|^rءb1DΦ]%&g|O%CEdjU{b^bS- ,qFo:~5oDЛs8mwQӦ]%&g|O%ygL>jZ{hX Q)kW YFSPg( 6j}& {R'x<'8qd*3[C+bG}Rc գ`-7777777Q';8d{{%GZ';v7J`b5jԨWWZNMAaٔѵ,\R|#dį^Maybʦ]%&g|O%WkZ۶X,.mUo|.T2Tw@-䢦尛ڦ]%&g|O%CuxاԴvbɦ]%&g|O%R@.kKhxM} r7> ߈|*VY_}š~ !c?^æuF\T2ޡO{ԴȧzN$ Ò+2vKjoD> WPgNvq&K|F⫒? xP_e}+?n[ ^LxU2vD2^XCD9̣8,:׳0YADdmElIkuɌFG{`+ lbP􎟫@r |ggtd(96at'a~kش7b{^l/^a\qaMX,kSF׮|pI >ȧz畸`i9Sb6et*7> ߈|*;#|尨b1D¦]%&g|O%ꎥ@<5di9CbO2vKjoD> KnMas2vKjoD> WU2O!5-[,CTٔѵ,\R|#Upy#Bcob~ŕmJ.0}LR%+yG˯NE9RMzo_"~H?O/[z3 o3ʠTW?K ,]ȿg>hF_zgLY ؈=jl5/,yu*a„ 4U2W,OrbM/hh߱&D@4IWr:)]-Z+SocMh6II\өMoeAٹ\UC4=5! "٤&%p]NUGMoterg v?քfu9UX^.*͹N͏5! "٤&%Rl]NUG;=V7+?VwZ۩ű&D@4ԤW˩h2z^C4 5! "٤&%2iMOL-7JsScMh6II[Sd55ӣ ?ohJoVǚlRr.(窫L/ӯ tfzQ[eoE\EܓL Ue}㔱  Hs*􊦫(KK?^&4{[rz",MOcl6\}h8~s(дQ^P7OnFp:]Au5mTzZq̣ފ'ǭ&3? _ЎF߻_& U|nm*o8$:|,cHgI]WR\(S_8w;_hwo/{-Z0FEؗ-.@ɻL?QJv4'XOEFu)rvJٟ'ut{D Wmr<xH1R8&_'qb.s>/%"ϣT^^=:աE΍=8sq`{1>$Es[s1sNfD&ՍD2qc8II([tt1&YCE|- |wD|:ND2tE/:Le2FGSrO֫ %ATOU03K:&b7\ tsꄢwA&YCE|ę 'dd(M|Q lp, o$ttgJODp9 ""lTp, $ttg.pJSg~b Odlñ&YCE|- |wD|:*dDdbOmWFOJ/P#q1F$2cz8Ame:TFJO͔JIަYDJReײEme:TʋD8 -P @Zx><-\.YϜ<%KK }{} BG }Cߎ7}+?>z].ۉl6"Pv`v`NQ'{GT^US+@ :kX6]p,{dI\g+|Għ^1n:xGĄlJ1E6CV"Qn-%*VP+(AoTZe,2OW㸣(Dt1߂m,ӡ"Н5:?P(NN'?EFDP"$p, $t|O8W>;"> Jy"1{_^'V;\^!-$X62*Y |tHw&TP} ñ&YCE|~8O'C.A@]_1}$c9? sLME ud%mdK]d2d8UĤ`_!_%Z?n}XAI*F'xs0U؁c*Yr% Ű;De`/׋UvTv}<0sDօyEu30wdMW:081'#A_#I%UUl[]âu%4UMʬ7h-3Kpè3z!zjtE}6QRd.f~?+Gr\JKyaReT٬jK: ns@!$1"S(]$sB] ?N&mZ,PBT@uT:y"Hc~aKYhӱz0o^Ӏ#'D^?p,[Gdct+J$;U`EML@w|O:;: ">֐LTظcy&YCE;ktPНN~\y|>;> }By٥ tf/n߯:[OOuv_ހ_fzɚ|.w;C(GD.XZ"A^gq*b#6b5tu]nX`=!1(\ZUkꙿ]*D@UjP ڙTHQ67*S." *=(֬6M;L=R! "҃85C`IQV]*D@UzPzf:fi|C+S." *=(LY3TXި96vh%;6x mtڬqzYi7uh%z/ܥB@D@[%4zx6ћ;zoKJJ:ClFO6Xj6?Jvjꩿ." *=('l@3V]f= Oo ;uFhTkqq`3~]/T!Z0i $@$9\B:&)<7dQOH2j즎jYt @' t8 p}pz8U,7 8C8;w /hӉ![kfp pwZS^ЦSC *NT>ioq]FISGo: 2ԛNl>/hߐzͬNNN;;m 40dzͬNNNv tlV#Y!vwWi* m֪EG4DhzMsxA8l|xY!v2; 5dzͬNNN+h{M=C *NTȐG5 8C8;x};(ؿ=00Nt&o @D>ŷpO=Ikyj?0^L_l~ء̣QծE\EgՃ·~xf=qIVqMѨj"."cAHjvC "E$5}HotƐb躬YK9mH;G ug^5=Ѻ"-D-%aFHE<-f8; kTbj"E/_ȉ}r"^&{QsVP z8c }*,Q iz (/ԣ n0p雱7 Y#l| eVwYU]f˻*:?MPKe[Ers-latinalternatequotes.map.gznu[+e][wH~_={W!=Cnd6^^|ZвY#rKS}bYqU]]C;eW׋~_<.ޔ1[;^' x˼:݆xEYr]Y(j"_嫪ȳkViEYk\+3&+-r)Nfj@"VĊXZQ"_]hXqS}ʉ+̳T }}>%&C.2Rztn .jLoVVuwu>#t:B?5>T oB`{do И.İed`@@GAsTFz-M^ҙ8}AfMXyK,um@ssL I"{.^u^rըDE{<7nkVUJE'[VO6 LLTSQjFf=Y$h2`4=VEWf`f`>&Y*Y;ڄ&fq KZ?y!g]=d-')/ӲeӋ<5$IZ:3J՘V |MVk_gR-+^F,bLM^j!n+L÷xxOIbUolh9A?f0ebٸDCG7fzn^Oq?[1Kd9n8òÉA8}ᘋP/BFF}cD_*đ ! CF:<&s$$bETg>5$y%TNJ@wP:;:fٓI7%̀)ƃ$XN]i@tG@gv4pt $d$tT\CߺXĥp \ '3ɐIb:h? 5?ƃ$ZcE;it!(莀$?O'?= O< pI~ZcE;itaQI~~2-g~=],%s40_ .i;Q wם LŔh29!Kj )\ g28I9ț(Ijb"Ƈ$ﻤX¥p&\>{B|&4ĕ-hA뉴-TjESS!!p[U&ج^q^U@OQrC#l}&a;_Wcv6FG\Ŋn.-GG؁؁W4^ՠGu2$ $4ۉ͊65 G]RKu|gOR8 |L24+F|Oϻ犨NxKjхF t@wt&#/hU\)ZcE;itAQI~fň- ?}ޔ1[sE "Dxe}Paue &.`3iY#WtpHh_ [k]bH"@^5'?MDH~.+783'q) |L2{(M[fJߙ5ĝ_MW|yi߻mQPit@T@e{g>27=`dB-׼(*[]NJ pl3k&1MzT [65>$y%TNJw$.ӕ͢IjבN",f&fq.tn@ߑNƁ|șɂzŬWPJ[e*C**&وJY~w-46Vd174Nxo0o v/4mU%|IܺA}`w@Q '\#7~)|m!w(W%I3$nz_!_kE棊nUVD~bi}Xw|eSM =cDl =YlbkԷ# 9wzvnxuIn )H44@dZьa~8$=fq\-kJL<%쌗e LLTs&Yy*Yψ;ln,Y{3oFϥBq-UTk0 0OکC'GYr jFaFI+hT% 0*`FaԜCXr jFaFI+hj܋ycz$ 1-+k> @8`.FS^Ě%vsߕ+oÆ5nf[գӃ1!&ĄX5q݋Kt`s}QOb]Vh,ZUݭ hf0|ĮG Ǟ=ڍg+4V_}_=]G)_r(Qa}/UzbY>xHB}eS]>E Otž%ҽjLDžy<ڵfCzs[Qn4XH<}Jpa I oTXgceiRɗy%7u)`iٜݮXE 5 |1>O'Iқ1.벣~ @$@#1EOH\`#O/y=Z,VU5K[*_5"/"/r俈9}ާh8PegX 8kx"~,P< mz (Ϡ4 ڀ|ll8:G` Y+}6"p;/*MyʋMa2sF+PKe[Xlt-lekp.map.gznu[+e[wHS}Ξ#>$q43;l& ԶFBK-8B,D]UTwB{opOlN._-xM.ޓ2>.p \-j,Ƚc"JxO;̩;r'X,$ :.pj,(2l9~iX|!UgYU_ p"B'ta>G ! Aڧȶ Ϙ} &X9Y4{PMAp ~w4ɧC7w5%(A gԃKŜ.tjc,Dx&y={>@|z0s.IJJR/^:N4_[ͻ/x{&z0g;?m ѝI=.9\ɮ8B>~Ecβv5Awt(A#/Rs3^>_0SB6mX!~ jKt5A9HJ?R PS?^h7B6[4A\}P&]MP2p-(Ayz+D7B6J[4Aw\+bkV&'`|FFH }@ hޢ B\r&yBVea5jt𤾯A $Ճ#B&i #z0pՕV̥oB6YkvuF\5<҃nP\JL--/647\"٦XTgATJ^̉ 9\^gXm~U0tPecj L@ V!W/YNT0t^,UVSJ7bxc!EEKz$-ns&f;(A JP>;<<~q-Ke{gȧM>ڑ昽ypDpDpDpDpDpDpD|D |U/de(M`{{:JlTg5G|_M 7B3[t580FQ`32QL/ltߢ BMmjb#QjFx(/@)dEc֬]M01+z3@ Q٢ B!_-Ū`_@G_-Ί ˰n{.Y.s?F Δ͟+Flz ԕHѣ-[6[h,,jW|6w@>=wblٲ٪Ec9βv57.i|Ӄ~X{k$RFEc<5.lTIWE JP<;w‰@'̤}a䂋_Xr79ӟsΪr#@"'g--?βv5 V( fUfDbh?Z4AYVծ&Κ.(JЁtzsĪL!re#)V֮Hd'ev6sW.ҹYQ5Z54#֭;k`W+ vwEЙ0Ww%a3xKtƲdOڬ$/,'߿W?8888888 53(+H![Ko\tomivL {vb{jg3Y{L])ϑB6ڢ\BlE,Ū`"!PzfX+RFI2Kf)V&C{ |B=8bQ(t'lEcKPlV&(I<J=xʙbND}*l@Ds+p{p>@+FRˉYƮ=x]gYU;k:U+H⦤(zRXb F;Bʉ,mN484F_16yƞ =XwDŽ eue:˪j >O>Zv;}7iX7ާF3 k4=X'_%>!]xB_Qȍͭ;;}$I\6A/xτWߩScS,%׆SjY].$DB$]S۩[mu%a>޸TO㹻\HHhtONiW5Vݨ\}IW].$DB$]S''UWut6Tw\e>+Ux."!.)zӪ:VINW].$DB$]S'ŦUWuczknW].$DB$]S'֦UWuczN^W].$DB$]S'YwoC*{TǦr!!"ҝ>!6Ⱥ{G>~x].$DB$]SU_u[(Z*=i(lJXDcSyyΫ;3}]k>f{e  H^8\"DUgik\e_ߓe?p#]%ɋjWe\Ǜc' vGp/PdVSU (T.?iǼMdžmi=~NxAN *xjVGP},FӃXMUjVGP}҆ xAmi#~҆MCö U (Tc~ҾϥZvG6dt6&9aö ޽[Y"hAI;mU լAw=^Цa[Z*AOZqG{ tdV3V E>V@E6u7(HJwqQ^y80`Ƒ ewx5DqW"lO$Yz('X V V=زkb 08 W?jJq ,ދȋ{՝/{C`,vU."\̔VfYmESDࠃƣ$Eۓ,&`TrU(sՔU1WmI'Y|؞Ag.t:ǀsssssssP+BP4~#DN$v-7_ 28AAc.Irw_|^,4 l`lD&9?1D>~2ېuѧl`0ddr4OLe,7Jr*2ֆ&.%9Sp&4O(f_EnC$ATmѴ t t*ͫ?]#]v$CTmѴ Y> ȧ=/ #]v+$CT4i[|#pI|O%CJs9?elѴ Y> ȧ[%C}ۡAb1DM3U7> T2LDGyW?۴zox8RGgO Fkt}16H̻aӌmU%uo@> ϴ}۾Ab1DΦM۪K߀|*5_,3Je2,HEw){%A R")H!JrCBQ ȧ!W<93y'!jnAb1DumӌmU]>䒜Kr|dfHMH !M3U7> T2T3dtAb1DM3U7> T2fMgrvwZW?ٴ/\0|#pI|O%jM':$;&duJ`ǫ۴-[i . 3T2ԙʷ,tyC ŦM۪K߀|*5u?~|nf4mo|.|d(q<# f0?3f ocBbhю8I$,]}H6+h.Pd GQ |ÃOJ,`ĝTcC#i&pGjvzswxq8^/ W}KXޙBuy3gb6hVI.I$'7 JjM-1 տmѴ Y> ȧ$^{G7H,^4i[|#pI|O%jS(:Ltcbf4mo|.|df<}Hݖ !6hV,\RSp^%C6rnկ6hV,\R䫒aPkXZ&+1ʷ6Ms&"U&0uPU3z\wИ8nŴ sw,`(l1"|vGo4'UfN$KR^D w JFr'XZ>`֕lHA/p yTH3d]0Tp*rܥ I_ݾ=ldy|"D>߾vf03JTOƻ!ZL}!i6MXu ؈=hl5银lM?@"į(dL]8?6/-O7VjA7/V{u;wʄS-wii,7oVcDNLhԠOV.PՆݰl\n޼*EOS)" &5(r:jxk;+?JԟʄI J$ޢv{Dw^F/7ߩJ1_pʄI Jآv{DoR~X8 ME9TXSF/7߫J1_xʄI Jd҂"ᭉ[F/7߯Jq۩)" &5(b z&z[r纝2! "iRr(ǪD/ӯ5V):[qj0'~=lB@aF8/H@J.!}&͆O?ݾ%4{{rf7ETq8#p|s(txAonfp }8U//hי(Np.Z_s^ЮsM7 Q)T]>ho"L]Zz3 Wo*YwA|M7 q(Np.)h^Ю(Np.ڐ_S^ЮSM7 Q)T]3~ѾXdE6G4Du45|9nM7 >iNv6 tiNE+~xAznH]sޥ;P%_ 69}A|$*o^' QF=Z9/3=XJG j>`#MV7e9Z4Q %SܺMggggggg+us"^||LJUIKVK[| iϪ__l3(Yj^mJ#(hpـmv5Lq5}Ӯ+z!B8ec̷C w,Y˯[PKe[q~~ge-mess.map.gznu[+e]KHϯc#C WgǞdzKBnd/"Kȍd"LefeUWLhTEݱut_\LOw!Ζ¹"+\\|*}|6x "It^Qٗ8֒̳[_>!Yֹӹğ2M6T/M38I$uO9SKEy2Il=2)0 0 'Uu@ޞ<$ۜٮ,/~^c+:W'$U%4sQsT֢O*ݳ;!>Ja caC>wpǿi_F/ 2 Q2??ʩ ^kfնxc %yD8QODw ?hfմhOZhv2h¤Nr !ne'|~XM7"|ߐNS'P\=Yj=\S'Z'^YT+|3tmrMH75zjW  (rԯ^C݊N:@}Ek|'Gɰ^YT3}!nNxuXM7"|ߐNap 2NxDZm_/<;;!>J23w0!@b>2"D?HL3i,H0$MQ|WQqf$NxLR}M}RE2ItVjaGo1B#1ܸ͑MV%J,)} }w%c>}3F*Jw2BU a6ac6#nD3?"SxVޫ[znovHpBO[zno~Hpr&&T?{j(hj֙ Ej~~헂mSj@$@#Kg4]ym[g?(Y^4]QvNcA`#А9𳻙U(a.ZW^3Y3C 顳U(a.ZO^sYsC 顳U(a.Z_^WEGqsCZZf`f`> j6/ 7dfV0:QhyNeN *fV0:QhCy]C 顳U(a.ڙh/CoF7Ȃq *dxw6 !l"/ZWkV!=t6 !E~dzlCg3Q(],x׉![*`F0JEVxEVg,ZÁ$(P{Dr˅$1<KM°0, zâ,\\ Ƨ[uhT/R0 ]Ǧg-ڍk6Z_}: Mf(P|¸=,(_^%7(mmw_>O\XE窻=E O=eO9 vav!-(ގ 7p4Q_ľ,q0&Uy7*Q|ٚ})cedQ7L˰|Ntu;|!/%7 F4~:1Qv}<= Out^oJׅ]Hlҥ٧Mgsݓo`BɆo>g9Y;ypN>NVmN"/dw̷A#Cok BŞw`L>3}D E&9CE<':y#IHarݰNK$to //%㩙>K,a%&9CEZ m@ /-}1ddoKz"zMm_#bծIjV[kx') M' }>37TX(YxȓGt}QFPPQ2;Z%C5 VJcc +Xъ¢z)6m٤S'uɒ5A9T005ՔNޔv'oL";;wNU zz$,wj^3qjrp"(MrL@wBϠ:;:J~S!PcnTp""mc:TF%Q3;jZ(t0i-z8A61*Q C(J<GMVTD7DEfmc:TF JG;$j0MtNDP61*Q c(㉂< oX>mr#Om7~v]81(a1ֿ$ꍳl#V슱6FD$o[dA @Rr4jzByÉ&9CE;|- |(ҷWR2麸.V=Ȼ61* S8djTOŷ?ڣЦscQi`Gjc/Hɺ Q>m-jxx/%cO%|Ui^RY&?Y/oHK\'_\ڧ.Mj^z^Reyڳ;`dd>,)bR kVfBG3Vw9# 2PR;t+J=MYjJh LTح{x 2 Qr i4 _>\u?o: <%kbU^8݃.X>j'4!'͖^4jgIc`+ve]ނ ,  "gGg3~qzo ]cu7U!esam=oS! "AWrP7~7٢l`빿` ] Jbp U&zsfC[ThPwfzXDoj6_M%_)6kgM Fm9BCٱThPkfzk7Gth5z/ަB@D@WEL)2 o &zsaV[MUѠ+f|LbT9¨C٩ThPNfO(a?wh5lѪj"."`+~,R!Z0i $@$/I.1_tEK{,;dYUzhvQ'5_o<:N:Gt~X>[S⟪7s 8}8֗DĒBF5s 8}86TԒBF5s 8}86f^IZ㹣N~3030?({FZ-ZSAS))]cyFM#Kv )N.X^cYcKv )N.ډh_-omdW{DCFo*' Ƴdû)N\h}Y%;kp pJE;oXSfNptѪ_GMG2BS))]as~|o@@_.K @8@7N-wK)[M/Iz+Y*ֈ~䬪$w]ftתæ%>OD7+;wWDC7Gwh5yhUkqqi0+X/ #6q/thM6v-".>:ވYQHnt4WOQ""q$kt={U=8giI6_}Z];?h6F90(b߮8N$B;(`;z<+J1Ku)陮noxyU|'G,>!D,nhDBdFTw튯2 5k<- p$\7r!((Qkϟ}H6k)_,m)a#[# n9oFŪujen[%v9ɉzEy9kDC׭=pppZkD4Kk4_ӻfDy%?{XWWéw> ,XOZ{[s?Tu:T$,PKe[NqZYYbr-dvorak.map.gznu[+e[w6)g>ۤŇ"!kItH*闸"UK# 1!F4 waz~{ʜ]xxSg=]cMz}@\t6$τHe^Vٗl,`IXX NoRlj/Ws)av+p pSgCg/+IǷcjΪY`#d"UL2asQn*rV{ lxL,u,)R~O2i"=2nL`&V%:V9KHYꢖ,2QuҡXLXxs?}^f, fuMd+]g<X4ӱHA?a)Npz !+nn}VZ7-I}P4sO%QbLd60.b%[4,'8 gIT> %Yd󪽝m^MU.7뼽ʊ%YUZEx׃h1ZϪ㬧hDOd~.SyHUݱn8|9&(@+Ti.͙O 'w@> f&E:5/t/G\HcWn`=b;?QgrBD_g4a]]9,΀Osi|b8Q0M0TMTNGUǻ}D-/CWO~Kt'MN %@w: ~yF"tJT_e5/]9,N. %@w: ~Ss㵔^8WF4CrNձY_qr. >!}Aʤ3Mr1c3zyZh‡W]9,΀Osup|30>bYQebɾ9?^YQZO';U59=tOC|_*R|FkV9}ܔ ="mA[my6m>SX4HgJ!w^rh!6yⳀA@7UuVVk:DUkPgmb-Fbٵ~C\]5Heʫ:'}exVEV.K.RV>|`hf&jIHJ_}ܛ[?rNձYҜKs|`H3 zR34Σ'pQ033cP\PܽЄ%~9UfAwtPtGgf&jw4|H ̗MxP]9,N.JЁtLX}<(8MfˮSult'M?)A#Йѷ,yn¬\+]6 }Han,` H7DTJkߋiĿrNձYҜKs|`h1E\MxPⷮSult'Mņt;?ƐzQ ʦЄ%ەs͂PtGb0N3?~Y6rtW} f0yz٫5 |e|7&nkˠjVůjmA *#HKǖudזG| R.!¡[d:eG^*maӞRܞ"|%V&O&pvj5˹`[!E)˶zԽ-՟-j5˹p[!E)˶z1nS.mEppQ#.ۮYǤgBT]ۊ-NG]]ճnI {AOVK!¡[DLԽ-5[=Zt[!E)K~LRT¨T3ۛm+C8C:T hoB!5[PSUobW]ݥ dԙH7+9T(|c '1%#\.e;*`7Eݰc&m}K4@#Ј=ӏ''2CwuV՜FatFE; ?tjDz$0 0Jm /ڙL3+$`5'Q݇QhCy^mMf#z[_k`3<k6[($N"9 >Eˋ6 ?4N"= Vs}6m,~hlDz$0 0JT^/\ ~g6k}xFo&;'nƳN"`5'Q݇QsN'eH՜FatFUoC+$`5'Q݇QhL+$`5'Q݇QhWj,)G~<3P# ަus 2 ̑2c2,2!gi9Z\Y,Cykj@uIOV=Ϯ ,ZK~~3WEH $ӞRƷ+֮R_}_ә MCbH|ĺ_eZW:]VñX@z_ex=\=D OtžefLe=`yaZW3󡸹mvH\[v=n4X?}αf] I XWXI}imeYdo? ,1-w?kV5_AX(V'6F;{ ?3znj֑Xzב>P}iᷲȯVX8O\0fϟwi8#8#8#8#8#8#8#G>#ts*~]|*,iΒ- \׀fUo_,+H3z4)3H7mvu5ĸ}=TPB=jEc]*4hKeKRrR{{CD{^E{*7EZ_lM;<PKe[ume-latinunicode.map.gznu[+e]KsFWUx {KI6ve%9EP $<{L~ULtO23{umO g_"ewɻ*6\\e^~K4Nd83P%_ ߍ'5[2#]ܮ(Ut@TG@E+4Ko"r`f6Pƒ~Uڰi':\݅;\}p) ӷoCbƝAw(CUﻸX.¥qj# |wB| p\G=:uIʢ&J5dZlBe&td8&.e$*5TVPJ %r>l!3j]t#UI%YlWԻ! =#) f=sU[׸T&)& 3`jz9/OM'7]\Ku, tg. Jg@Gl[ʩl y3* vvD1"FĈELk#IɘDrQiU"~#5\'C8ö 1}5M)as!m9!a[DCDzaGIߖs{>!E4(Lثf4-қ7ޛ#pz l9!a[Djk-=RMNm97'C8ö%)v U׺=&wjs^T3[-Ag]5Cյn{s~T-}"8C8lhPIWE^9Gɹ-DppѠ3Į-2 oS=RM.l9'C8ö\LhƪgB!ЬGIױE[ OKuS ghCUQ~'vU5+juT>zSA  .\ʂ_Bo'ЇZ1Iɓv. unBzTk0 0J'/Oڅ,xׅŷ aPU((dwn!X'ŢbM cϲpfilTs.$UCjAPs3s3 qǷ!nM2_F0_QHʐS=4f:?\mR P g2<*e,Ǩ-gD'EJ0`TXX5gYD,E|{iYvg12ą5Ɔ9999999xT^!w(@ķ9ɮ)f|O¥ NИIV2Wʻ!+6 z&ݒ_И}&'ou5d6Q'_/{h柤 녎Հ|H|:ʭ(><4ua@N|~eCUM(1z1I^a|ƌDkʑ|~!X'Ţ lIE$O6}:V*x ^>^nߒɃ@y~dBoHTSouӥYM䒜8t0e0cٿ\մ 9>ȧBy0:e7"1"{Ҭ]UM%uoD> ?eEb>DΥYMK߈| 3 .U-!\մ 9>ȧR@.tEb>Df5o|.|#``(#]v;Ḣ~wiVӮ*&:7"EDpy;d<٥,9Hiz2j2^ GyĬ.jU\RF0RH[$Cdo]մ 9>ȧ F|inH;RgxX=U iA oTWzxA߷oTÿ,4c^-V3Yޝ޻鑫/`;U1Q9*j\<$t*iX3f5o|.|#`wHWH٥KvU7>t0T;b/kۦEb>DҥYMK߈|:Rⷤp~n-!KvU7>t0;@J?SnZ$Cd?4iW|spI|OCCm#KjnyKo|.|#`3$GlO ٜ.qNG\:as4.oZ$Bd4iW|spI|OCT@GmviVӮ*&:7"te # ld6sT0 g"qDCc#^!f/xrpaA*'eeiV]c9stS$OVWe i&hd o58T aBw]fRLd;@Z|G)uޕۤ61tys1bc1FݍX8IX?%Gg|.jU\RFPHK'6"Ŏhp>ḢҬ]UMOrIh8t0T;;=K~R"1"{Ҭ]UMOrI0P߈|:w\W)#~ȇ.jU$|OC?eu|KvU7>t0\`(6Btm"1"եYMK߈|*F8)%#ԛ]K>{ L9E`SU+On+}ln'nIY[I``W ^lΙ{RdxMAmAsg3o;eZE-7|d+h_T<"D_P]y?̷߬bE nUf=w *5)t%ʯBH`PDOU!¡]'%]1S՘Zq}ˆZ)f=C8CJOJpUOUOOoCg R zj/BVsڛC8CJOJbmUOUϸ=b# j^| *=)ʤE^aP+ŅYO-NU!¡]'%]!zzb@0jҬЮғrs7~BbWCZ)z3hk~lz2ӕ@v|g.9}A|$*tEeZ-oqyzCvyw&++R."Ɛ1  0U6y. 2,I膷%)*dȐ}̘t';?.[޳]>OO“]KܥW{bH tQE8/H@D 9rˍxPG ɝ#E{BG# ag!srP%ŭV~8#8#8#8#8#8#8#_هVDx*o\Z$c 5ٶ@t1Mf E:T? 8{WWj"D#F4|<$H }eUd")/!8L#PKe[53fr-latin9_nodeadkeys.map.gznu[+e[s8S}kc?C23;ݳK x6i}OzE9r~"H`GmTg䇏[V,8ٛ*Ko#աlee4Oi%B̓qt}*,6OzSTuY\'8 'iҰKLHܛ^&22[vS|K("I\ow՚jϳ D5QVMs Y08QmQ|R0%Sz\ٗW} )HAIMUR #y51p@IDMPcMZ -~d5Eq k; x4@'&O%|dvbG*uwf[IZ~Ui(-Mx?*ʠ2 **c9ST]!OH=m+UI3QT_,՗ BE`@#f4^H*VhM*+JkWgOh6[^]{)[z9z~TGQyT?ܚa^&ȡ/yiY걝IkS{PW5֕+J\lG:RDψ~nmIyϏ9zf|2q7K8 Q GJw~ ppppMHnBB9a,G%꫔{i ;GqSEuQ]TEuWu"'Uf+V3xdix:4J;/x{"Yؿ{~Pc@HI6V2(]>I4_>:Dwd Ο} i.͙ņ|;"ufDE| (UciD֡ JYNҾ&N. %@t̝MϥC>೜}M Osi,3|;}(L"B9u&|(r57>ͥ9sf8#Qghf|%3B usC>r57>ͥ9p|Gpl:C>Vr1W238MPw$ko|Ks/GzDؑL/YJGh^v?ji B?۠%~M?| i.͙gQ34J,gXjuciVu)ϼ h M<2TM|bT̚BOa0Zkчy#B7'}i,y!X!/V+'~`:)Lgϴ`zLY9X-7~{uv[|D`;jRgg ݐÓ3iZ=#n_ES&:%鳜}M Os%|Gΐf౒zA Wąr57>ͥ9G3Q΢΃I-Є%^,'i_|\z>:C3Qr\ͦC.8YNҾ&N/LOj)H/)3pա J賜}M Osilb8#Qghf>MoHW$~;'uo|Ks# >:C֋&jo`,ߥ'}픽,p|jA33jUFV7;4B_| i.iN>:CVKFЄ%,'i_|\ӳw> ͷ[&6V}^-?7OwŪy|vD =g(7h@=L'VK<5:uĊroXM}P t q^ϋYG,Ց:3=##P#x|?dR=رIؓg\\/5B 1z}0l.i;R\-ӪfӺo4[8F l{gΌOԈ8ig!}kK&(/)V\İߑ:K˥u >YCW%KNc8 IIE:?3=Q*c9Cg9I;ixb(AGΏF1 +#V،nYK$ko|KswL> i$eSth… SNj&L'f<\jAyzXʹPfzJӖUtDع;t h@urBA'Z*7EŌtv2+^fJcܰrY仢B}N :RI';Eb8E*<`x3231!R5<0;&sE*]>U]=7pơN(H1𿼿|]˛շ[O}Öf0OAKΚ w!ѿGHlW6{-ЩL~;Q.Wo/GPB*u|Dy|]UإsIKkNjvE!¡e儏0=7"JDxD6[8m5C8C7%yΛռI'Mf g-Z x^^+ (j|DyTjޖ:6ޛ-j5yyѮ(8C8tQqMS cRdz{EAKVc;C8C7%)v4=&55f-Zɮ(8C8tQkMS cRàlQĎ%ЍFG&[djޖE-Z(8C8tQbPEqKVgv[Y!oxdZLfG :<$/H@gNB J43beҏӥ7?e~m=oZsg~S%ۍ#######GnNI(W{x աYcU!aVko۞f D8Z8lݬaau6$B U7<4hР=c퇪.,ζ6]Bk+cPKe[okk tr-crh.map.gznu[+e]Ys8~_/3fDx~7"K#~U&@M诞?`$sx]TuY1llOP\\ǣG/WUbqWiyn:ʥK"VeB*[V>kFk:wGN$p)Iy?֋MŹX,ri <;#> ZKH;!> #sn$.F;lX A޻$˴|%eP𼹠*#qv1)IW5ShZ0OXN2w]_tl0cI"zW-S`o`o`oY FG}AW} \lQv`v`VQ'{JTdAc9gGP"5ltwp.2+I\g+|'ħ^)fsEec1qIi_Oq6t2T+b\ȲYvIi_ρK|'ħaXNμc1vIi_O8L>;!> ,p#fw!ȏ.2+9pIt2T+ⓎtG>#&P? NO'C |égWozvm^p]0GH|\OZ5@IvdyA,Ӿ" NO'Cx&LwdluIi_ρK|'ħGD| ?tS.&(KKN"küϢm?|v -v*Yz sqY>mmT3e̡o@zIqHW0`DʗAɋ$NE\;jD] qS$KE\?-ڡc:cC>@7Fr c=ad<we\6 ,KR:2OlV5U 00F'b"D1C'ß-"&MZЭ5FB'uAlFփδ|Uo,X`ɘN5X?[0iѪZSS! "RrLg ^MU4ebM=S! "҃δCޚ'qdSOTh3殛mlE+S>" *=(̷fzfYBE+S>" *=(LfzfQsZmoJvlꩿ>" *=(錵fzflaТS}*D@UzPҙIYo &zaVSSOMVAIg]Kd= 6w-ZzoOJ)<ЌUx l[Cdi<Un-".>9t&Я%*:@$@#QeBg4ݤeXp;,G wyU5lW{Tf5*ݕ$IɅ$[ZlZPO>OsɊ}ƫ -h%yhTz0Я/l@?@_9ވ>X(Qayk/1)2V mw[M//vxt4( .81Zd^)^7{6_=_h;>w+#ڡa.#17 p7hw^W(P|8ٛɗZ^&_%Jfu)Y]"e  1 dY|"}~]6HIxқ1.Q߇yJ[  ΑB`3 AAAGxz}|YQdOt0Q2iFwjfaK%9'սOy#jx 3Ч/%J,@@r ~ ؆GG7hޢ ,X'fl,yܰWwU\]mM覃sPKe[Kme-latinunicodeyz.map.gznu[+e]Ks8ϯ}k(8$xf{qA$dsMrKhRƒbK_Ut_;D"[u1rz[|5z_Dl>..M.\?wsG1gmP\˯Ug-+$<,ծF)StʛNf VĊX+bE'\k}}dܞ;byj_vS~$&+y*69ϋne{[wW^:BG#3 \?C ?֡{W^;Yd\Rq,?@+ppWOe]uɤQ%5#* LLT5\\5&2_fwي?Ȅ9WMWIe``@@'AhrTF[H0w9&54[o_Eʊ{IʮM5x LΘ!zR=gl um'wmrJBTkei\g N#dhVL\UW ŊHI ҳ`6+\u*Txa:lV1ϋ(&m'V ޡ6¾-la;a#Mq3/7}=ԖR+>T3jԨ/67+ ԓ<'P53fȳN8z5Tw4.3|GG5o}Ye&8EUPMPS4NK>;">JfD] 1wqW`A{ڃ޵q ա,Н5 0(N QxQp(,,}5Um|!kYs=}@X۲Ra0$J+B]RW|B)$r띬~܂oɟ]lw- D! 4n8G9@(`L-ORy69R߷ke)\q%ÉI-am|!Y.?YY AT@uTBGV[@~֣ =TAUȊ-2j~jd%_X- YdbCl/,bClG\ƴ̠ jj"6N{s_*@z͐@$@(I A]f-jK/(K3;EѤk00U%+O'+y3YIn!v,YJ\[\W7~Yw9g%Ϸ.{]``9,l|l x1'=S|sOD%Ju{#bD1"~q9Y]`+=~tq:EĿ^uJk ez95Jb%Λq ~Wzt%M?%iWe~E A $%cڭՏJ,Gi嵽]"8C8l̠^ޤV?Җ {.!6E4( k1TMV:m!aSDR̄K"i:C {.!6E4(Ōj1ެ^!ؖ {]"8C8lhPbPuc"}VGuH59d"bu5T]H߭WGwH5ra/%C8æt-nix[Uޫ#:raoKpM J1CZ"H_<`!̖ {]"8C8lhPNXW(DA^<tH5:Bmjj/`3~,T!CoZڇ $@$I.tYJGoyTd%nwX: @,u(FFl)߯(`FaNZOSYSoCZQ=Q:i}yd!,QHjFaF I{9-Zz)ݗ>5`f`(YoNorЫ(`FaNډ(YXQު1`̉M^8jOyt(9V/HYq՞ Իqж[;CYիC%bBL 1!]ڳ?>,>\A!դ E] KY~Gz`}ċH_l ><7P[ڥ lf0xmS(P|:~nN5}}mBSd×j=F Otƞ%}rHG9=p vavYݗ{?,ov97(b߯b{Xgx.B;XY-muwua XSZ ~^zC<'3f{HWbƐ!ĺ!s +GBE<3 QF}yu/}bosZJC(Y|[Ϋbj\'pm5/"/"'͉t1XC-ppP\6MZDy5(Q^@Ik=al;у $#V6Vl|yŠ@uYE'bĊѦذ PKe[zS  cm-dvorak.map.gznu[+e]ْ8}W}FyV}۞./*J&n{ jt"L <<@) X|{ʞ?xo uʳ"eG5й|:Wr=h#HDU^9 x:[厂Ҋ60w*Au]n,MjR[FsZ\ZoZID0*+5K4v>udX/Zك=: +QACzZOy.:z?A  h` h,QVb"/V(ei=E\G/vA;$p,+iA` vĎ YH(QBx6mW:0-f/{ƣ4U:()dQg=;yhVP8 Ykֺw4`d#1F/t.KsEȀ \".LDsE˗e}__oE4#qzROj$Xip~f t:@9T &b"(v]ˢ= F,ъ%3٦%4^>Y_+11zg]Х%Iϻ%:ȸfխ%*"X:jjIEY{.\VL񶻡}VXN=Vxc\.MAnKyF7hXdz{9QOazV~b×9N灊kpWyB}t倶wėwXXA%_ܠ5e|yE/=(CgWCKI/n&ė~ #!մ AZnIP||1 7hWt>bm(ڀ 8_M[_:t2X^瀞 `"5Vg6};`T]^j3qh/+wԴՈpçyvVUq_{:*rTTD PTZ(Y:|(_joQ t@t. B'HdbќgyE;Q/'x'x~gBG#HM~ W]س7M熟GdlT||/ [fރ=?s~`ԇ"򣒸Wǭeϛ9=. W|0O?MKټWM曧L= ..Eil2I!g4nUR->r#?~(.JeP7 2 2FF_P#OEv =`#O Zin.$iGTIGG>d? I^-Oƫ ~wF~*Fm0Eʼy>{$Cf7 ƊWT0`8Esg鼣`+PjTrsS0a"I=r6udr=쭭d@Ehviұ;{v*=X_r8+:2GdV2"]4Qܱ;{v*_hEn_< ٥yة7nϻ/^G}lIUʪ/Bu[Tr(>5P5P;P~,]t&[7u;< h%Bt^ZAIUTH5?\ůleD/FϫmȀŦ\qe`n~>{i'G|)i:Wz>ބJ`](`=K0"رx}}u ;OdY~YΕ"=g?ܳ3}T@:>ZA[=з >k?Xˆqh@%Ƶk%55z$5yLQ{0h,0f(aq-6&96\v>#E!u3x/^҆uFسER߅4?lH>xZuRP I6^"-$3dd@E~W˓jy ݒcl`*x*o?KOgc";?~>$dMtJB[x$n]fl%J-ZWT0wPN%I!NjKw?Jn ~WO<9'`8Y>Gqk}쟶 I^-H+x nfFpG|*UZ{$Cf (~W/-vx2^-O3SPm(73V<![[ɀRw,2u0_/x6+%ô*(|SSn0\o% Σh1Zhwbd߆e8lR [vVe,d_ ɍK$OΫ ~wF~*vNƒ4ϳ4z"G>d/[ɀRwFc'?;#? MQƿÉ"vd푸d@Ehvc v`TcK1E#Ez S?}ܮێcS*838TfK^8Pd w13b~p]% g;m]>}!BE٧7QXmVŝ&ƣ ;C۝^ MU7(E9*qldvg>!*5(7lj[7G2sh[1^ҧC8CS%{ޚO͑VLu=TAȻijM͑Fm+t=7S!¡R)v H+16?͑m+u=7S!¡Rv H+1͑&m+Nt=7S!¡Rtæjxkb7ޛ#MVzfoڧC8CS%{CMĄjtжL3{>!*5(f#%&i; uk~hj07} u{bKt@#48!q'"aCl$|ÌFaFEv*VuDxŒFaFEv&VuDxŒFaFEv;,wdfS*838Tk"aNRl$ 3SUX\##l$ƒf$0 0.ډh"aUZH/H`FOaT]SqѾ^,ڌUoBoWM |HH+^(hwN⢍EªZH/H`FOaT]v"V5F"oCʭMAZ<)sL)8t{dL`e\5cՔE$0( ۓ1,ʍ-i>>>>>>>xP+,œ:(3L$ v[>o 2.e.\pb.It{|4lԵ ȧ[&C7tZrءb1DѦm%Fg|O%CEdjY{"^ |ox8R#ޓ&_NN,]T)k[ YSpZ6O !6etm+7> ߀|*L_N ^ty,wx!38 Np>1NL{P2Q_'7XC:[ OoC^Q(vR%{zX5e2;f)&Sbu`#g6etm+7> ߀|*;<+WrX`)k[ YSɰj&U6 !K2Kjo@> P39h9b1D)k[ YSP݁&+ZmX Qͦm%Fg|O%B@.*Khxʦ9Kjo@> w>AEv䆐1nS{R:#.  \*Йɧ+Z7X,ؔѵ,\R|dޡ Ȱ尸b1D֦m%Fg|O%åx6am&qR3{kdOD2tr;(/'Yaw{O$'u<`+x ^ JƎHƳ P:Q0( ,m|Y[D]2 l[x+ԇ.Qg&'JΤugq}6-+2=ͩ^l/ۋ}۫>;iPr %ڔѵ,\R|dy%.*Z`M]J%57 J#%߫h9,lX Q)k[ YSɰci.2Ub1DM]J%57 J%WdlubM]J%57 J2ʧv !lVo|.d8U1O!T7}1w6%cv|a~r& `SWxa|v+n I,`Yddf^$}垤Q"v 'i}CGЀ4gLƽ07$1ɉbk?HG, 6@2u"Sǽ(]@`!Σ}~E^mj `3f^dMXƻa.F+}'1f9n 6b#dWо$ <ɘ^r~,ɵfӋ]yMkVog5! "TNt|Ih,oQZz;kB@D@IMJzNUmz+ӝ[ִJ۩?X" MjR+ WTuLwQD/R*M_ocMh6II[SN.;5ҜX" MjR+VTucezcX|U3kB@D@IMJzڪvzL)մJsScMh6IILZSd55s5\X" MjR+VYMoBOkZ۩&D@4Ԥ\j?(YM4ށyV[qj2+~;lBAfY8e,H@L.szEU&q{\%_ߑm>pYU:!ll6F>4~?shixF_=(NpZ ^С M(NpZK^СKM(NpZWuaȦ.k[z3 Wo*YgA|M8hfp }8US^СSM(Np9?hgCg6 Q)T ~>ldE4G4Du45|9nMލ݌NAj(xnFpڇSuЊ_=^СGhfp }8UE{ :tiiNA+~~z$þ sRI^6kqwh&޹#^.^;*`i_𞿳|P] m4j?Uӧۄm6aM?6+ǹX{GDC?iGmqqO&3l}0ez%ҋ2w`UVE\=9n9 yU%(PB;~o: Ut njiϋ?!JDB3.z[r).I/[_֯v4;>DwyNu0 yf"nev4o./;(~P k.OWIΒٺ~ xY.#i PilϤM.دDBTήxb4_+6)cA$*oHv0a„ ;Q;!#yJ{KFթɲE4Z-vUjGɉxDe9*2ϭ-m= \W]+40a„L-ӫiMCr .Yc 3 c_W uN|,X`/YF".!?Z0PKe[_ mt.map.gznu[+eYs8S=U6zoXׄw͚mޭ[[)  H@~H[ASN $x|sUO<(Bs=Q&NUwu ꎺ;ꎺa_ljoGC؝z@+* 9j1Ԝ@V<^J-M6UuZVlסE.cכZ%#=n0*ʣ<*wK߬q-,lEH*zl1}$jMABQip䋪_5[hӋMV֝ǚ/x{$4U'qA#C/~&~Z'0_?YzSpIJ4ےN2}dȆfP*:)(P|Єw%e9Eǚ;>ť99GLXHI62l@1.): i.͙ 'w@> 0P##UMD%wYNѱ&莚. %@t ~Bҟ4]St S\siN|4f0+h>>r},XtGM %@t4fSJ.zFm6ć.): i.͙ 'w@> CDEJTvσɥxij":cd:RA(T?ehЄw%e9Eǚ;>ͥ9p|06yvJɥzӅMP]k4̘G^)j] WS=.]h;U=߱GnRz IipUMPHP[N33/6]vZs֙VBu:hRYBжB= v`5i+aHHӓf0͊ھD-zzd@ϻ,X|'4gN|4ҊP=V2'zD%.,Xxǎ,Lx4Q5RrЈ h",X|'4gN|4ʨVϒ|u r@18ﲜcMҜ|G!LS~Fzυ{5Je9Eǚ;>ť99GY6Q|FRڳ_o| NOqiN{w@> ;l&iO =_lXK'ߺ풣,PU:PjT4xwL/ϝp&yJ{^h"InXU'tNk۸b }4;z[QBb@1xe9Eǚ;>ť9^h>CB3r˄09X]&aR͢`"^VyZZ`{o#O juzk 4jY/Nց~m[ļ8)棪ypU0l jz%著 <7QoI{yЯ䖙,됫4 @'cl"=͔:Co劯Cv+.*vK 'u+uvWꍫJ! 4yq@s9h4pA7!fTƊ_i45Us@kWsNkİߑKziT L_4AKqUaU6ɓ3C R4Ҋ!RvB #.):QE?hvqOMDP.):QC := ~Go: $c&ӋMDPEkԊ#N := ~s3=[D %e9Eǚ;.m|3aL{(LvqKUvY:=_'ΤY[8OoawS=9>>rRK* XrT,4za!%ђ,fuST Rγ+ϡ0̱РcV(Bju1u'bERe?mXz֕3[l,  H'DT5HO;gh r7~`eh3ޟ >aޘgk2A :;7o*TP>J1{B>խ. viA|v?']YfN93AσPDH &mf g=F`W" Y)sUMj0m pޓ]YfQ3ۮS`Fo?ד]YfQ3ۮ[Ǥ6z\v>B@D@7:%)vvUߺ=&5گ=ZdW" Y)1Fo?QؓթMwe! "EL:Խ-5 'zr:ٮ,D@tSbW=Z|W" Y)gb@W aԆ? Mzr{v:ԝKf% q|sA#umE0E XW%UywJQ;46]81=~kV5AX\|V-#{{"!QD2kznXE _vq|sAZZml-us-mac.map.gznu[+eKs8)t*-$xfqqQds-I9|% 3|)lGW@7A& vopl&oE߲/( \Wl2~t9"se̝~M˶1cw,`9*xqEOyPuE8lwk\nϙe), (">AMud!޼&_iˋj; `#+%+Xv^i>W.2[|xNEg0msz['l[L`ݦt_,Dq7ٶ̳e\$iy4(.)aiu6FQmTFjv'&ko+".G|߁L_8}LD>[L;m%KKݟ,O1 `N>sgXy{um 9ۮ٪:Ёtst';dw.iGvn'3N}h |BWrVDr|ss]V?,gM1 xnw0ya?jƨ1jӗ%.xUP^<,Np>b5_vk; u6|[5g6N$Z3X>T/x #ΘR-^tnA#COY#G̝Sk~~ꑄwI\|; u #_\]ȡ;h{$AejjE;j 2Q7ӝ_&K//dWG 4H",͊z{͚CU0 ;3Sg=7W~cDכGTI7N :==5}XD'y5@e$&Vt “! |C B>!u@N4XH"ӤՊUAwtPtO@Gk:?>PirVr|a<3PIDRMZP'I|yz+&aTf?7i= sq*.5f4敂~:-Y$MZP|'4'Ҝ3 ©(בӕD}hjE;v<1x;8u:BdB@Ld"Vb|{vx38 Np0NLA3Mb%ӮLm۫D,lg >򳡋>3#+w9GozP;vej7rO/7gfZjQOwg>]=pTI\|; u4S}j:RH".Zѡ*NOqiNΥ9QghfZjV/je$BI|`xKpx ҌP1UM!ҪG!TvޤՊUwx Kc:sx;4u4L-qj2-L.D,ؤՊUyœ~dx I31Ҟ5M ʅk$[k;u: *f@2 Sj)[gKlX Ofo눸|#33 j.jHM$B&Vt 8h8'w@> @Noi.'G!TI`x+px ՜O.TbNZMdl+UK&\v.A-sstCWa ) {g-ivYɖ`Ih躭` cQu8Y"u4I-䫜9IdpIPٛ&Vt \3 'w@> ͌H eBy;bY|IDPMZPtGMt{:hU'[C3tCmA k~#ykE`Ac"~#vt7lwβ[$H)FB/R,Wb8 |"DYzV*IFP.pGƪ9RZ?Mo @~7`;:B YgCz"D!Xzc瑫hC w,Py*&q1x ACPKe[uP P kz-latin.map.gznu[+e[w<+rY p19i7n ( )6m3~"4]kI{?ܳeћ{8Mf;t?ݫ,[.p.r/z/+o%}$MREs >W ὐԃ>C"E.>3.c>.rA_/ U@wR u :UBwR u "TTd%>&e,͔-d>|-ps!ΓCZ}`y2ъu@p"g7g1tp@Zڻ^ tp@ZS2dNtp@ZS2W3cNc>drzHNc>ds^˘:W]1mkxS ^1_MG<ٺ{0q^aLz9j/R>OV:Y\wUݥM%:|kaT$HAF%}D UӥM%:|kP'ÁKZc5RVצ|spi >GɰXA*c%k,CU]T|. (TaIaY%b6KkE>J h G%=X"RVצ|spi >G//i=lScRVצ|spi >Gɰx@epT=sYw>BJϴ|ꕴPcRVצ|spi >Gɐs̲ze%vRRnԨQw_k,ֱ ԽhWju\cS6KkE>JM=X"\T|.(jűA?SaKPՅKY]Ju5"%CZ6Pnj,CUc6KkE>JP=%JZD UťM%:|kap0TÒQwzR?cu5"%IO\җal+Ӟ^Gkp\̊'!={5.eum*>_| IS9-i=lQct)kS 9Z+a r&(J|l`7!ۻf0`3%knwA%M@]rXJ_L}ӻ#f%Tzn3njc1㘏ͺXgoqID,UǥM%:|k!=Q{KZQcKY]Ju5"%CZgnæ5s6KkE>J:H39+i=bMV]F<˚V:'wV (ѺK#ȡ_zؤ1TuRVצ|spi >GpT$C}O$+i=lUcݥM%:|kH}zrrV~@Uס]Jg™,Z L;HJVrݩyz'[+놥G0)(]d>|Ydq}^ٺ_o`3|Qꍒ5_wvȰuw!O蹫fd)=?, Fln56Mv<[/./=L0aW}+20?TjGcqq&3_ f) _xX$/H._t5]'qu|ȖQڟ<:-w=]eoԆA p8=ӛ'd߇"C[i:Y>I˓v( >thhjY>Iȓv$ >tdhjY>Iʓj34{bsGf0e(YgABC[|;fp pJ'@}Y}C[P*NNHYC[P*NNڡpn8~]̿}[vUbxE+W^"tq|16%YC3gKS.p2֪oOnMk%4>rc7llf QG0a„ e3 ,X/zf6=ӓMoq:wPKe[cKde-mac_nodeadkeys.map.gznu[+e]Ks8ϯ}kė(8$xfqqQ$dk-I%% HْK_F_Hxܱer_;x ޖirv'Y\..M_}O_DpuLRt,%T26_}_Ӗݖ}A)'MꄱK.Obtl`&`:UQ:i`ݱpp8/t_Li*˅[u,_") </kM[T͓ 4@4':>|$~$mS {"x3K[Qw 4bOtT ɑBөMg+I<M+Ȓz( Ir )\'ǥquc"IC(?LRMt% zw+I #'A_rmۄi+&)WF%NC H=h>Ir )\'ǥqu :ODGI"NxPMSt'.J J#/H. u'\({+ީË"ӆ:|חj.LY˰$?KbFl=pbngpR#M#VNC\8)y'+&)W3qi>; > #n}E>4INѾ">K̘ |w@|TLOQNChOC'Ƭw?$Vc,f_qE 6dXKʊNKKrM3Z#^ċx/E6^$Y.VDW^vp(;;{H=1AAAϏ 03HFj5yp9&|U+Ӹ4428:CAbz" } +;8C&)W3p8|GQ2RsBEgmup‡"o$h_ƥqfC3%#ZMlBNPIr )\ :CG 4䅄.Irᅱo xw0x 9#5m(ZGmơI$=q;|uffH'_fˈȗy '%g<ƦZ(L 2 ' 2ҋ[HrVOkhup£"H,kleEj_pwn8݀ R'L{O{ZFlaqz`aVw `IRM0|@X3$Ɏ0ϟ۵m2K]rz FՀUgt)84"6X]I,8{.ݤkʓ BEs{6!*j|eT=`XV#[znoMp%vY7Uz<&6j-ZƶۋUQ#.#25o {}aVc[퍷UQ#.#25o [f'ۛlS!¡F9[P =54jjE+Y KuC Gj<. p$s Y6r-AͼXQ>.vU%nX: @bL}(d'yŗ2.$0 0J//ڱLxձ%;YI`Fa.@^Kv顳((]hӪHj޴jwk WkYBp'%;ts}v$/H&jdN"=ts}6H&ȒDz,$0 0JX^L^ZQɄ,Id,$0 0j.P^LxUߒDz,$0 0JȄW ,IbN0tѪ/CCKv顳((]/s'uWϩ{}``8:,HwIY]1 @‘^8U^o\ IzW.V{x#vXRmYySb˴ߨR%bBL 1!ݬIJ<7-Zz]@X lԘr>|k/b_yܢ5n|he5k~~McO!Aj~o=LȮ7dZ uPPB/𥮮r<'utجꓼaiA/{V]=]j;>onҟW]+ ܜoW={Y!Aj+K~L ,2,2]dE  lf}cu N“i]1d>/!@$@‘P`]ȑGxC.YC`]C(B#p}3M)G\L`]USWE2LI3Tc&Wjo|ĥ89g:ù $k֣j}jo|ĥ89g:Å~2'P=A]jo|ĥ89g0ѝaH|B Sh"?,Pt'MGStO@g:?Ow~ B}o!Ǧܣ$f9E;ih)A'3;?=$j |ӣ$޷YNѡ&N甠Й//D?}K&/mVϸ;tpZnvÙFFxEH^RMx'6):L >tslBQ$jj^h"mSt ).ř2 >tdbYHff1+Yyˉl L}-+v/x{"3V_\%Fgtf&=Rz=G1HYNѡ&FG\&SHE=C'M Sjo|ĥ89g:C=#m:'h)=~if}d7>RKq|G3FT`"x˳ٚ]1RI6k T'AƚT:pjs'ayS}ۣ$~"^ݱi:.pq6pN|':$7V=Aujo|ĥ8>X>t ZS "'f3cxIb,)b-MK=Xv3Gw:{&/L6}";.ƃ H]Q5ևMQt15AMP5517n.SƉJL֣ss]QU;,ZjZg]dW5RLMc:E'P%7- ,wpݨ7zި7LJT 1I3M"6):Kqr. >tj4$&zq>h"YNѡ&FG\s)N|343hдωDh"mSt \|;" ̸N)HzM gjo|ĥ89g:C3Cͧ?{?R)QMD r5Awt4SStO@g:Ԫ4CZ7ݕni|yT=بDo0Uf2L:Ȧy[j7ћ- ;r:,D@tL##iޖ_-:rŮ,D@tLM[W(F &/~oN"#s8C85-d ,IdbNpz梥7C'$2Bo1'S8=SsⓂ{)ϋ~0LgG Odє$qgҊк,eoKRq/no}-wJ[GuDP' uB:X}|f gJ5$/YR{\wˮo=_V}F90V+?ľZƻYW%eqWJQ,>1(Sw)=~YW! Z#a{6D{z "!IDҭkA!ZCZ[Qs,H@t.r!$$3zo*֒>/Y|ے<ʟPysk"K/>MkTj8; jϗLqo~qFpFpFpFpFpFpFZev5[sj.p \=5V?H3ZkR#HMk#yo6ͺƾYWì'zPBzd;oY)4hРKl}]٦bKPKe[rs\be-wang.map.gznu[+eY6)}kK=샯I^O=^\ peO8D":3_ewjh46h.e҆lsM ,fHH1I% ڔJ:,ښh@m{Hme9h.{^M\4ΚkzjT5V3H~7;Xo(lV!IFd4MFdCZDY(%{[/SVVIQ2W|ȖJ2ݼ$I/YjϛUi]3Xo]>/x 35b-<ĵP~ЏLc5P`I1[HA<5-mcXgd՛\2Wȓ = d$7QAeKI>Iܟ=]VP|G\ӣ^9#`'# |ZhƒZE;k0Ҕ L7A"\o&gф\VPtgMt;C,,74e=A7*:\|;" zFdJ|M80_z4\VPtgMM5%@w:|_Q$Q)Mx jjHSt'3O58RIwvN[OtPw99ҋAѣIe5w|ĥ8=s|G30K9}XMWU&|xZE>ť8S9#`gbAy>K;bV*ЙZlq,th*Npإ h& kyHs>}UʬzhPl5 ¼lSX.n]hNh`;;M 1JHtYCM]RHs|G3̤Ր&{E>=Ae5w|ĥ8=o>C3mBдN8#i`z4ď.Ut #.ɹ'wD> 5AK m gw|ĥ89gӆ`$8l挥Q,9YP@e;grBУ $~"^XYi.jlpM6{$ԆͿUޣ $^Vѡ&.k+|&=|9+ɺVKYd®i)My㲔G.Nȧaģ-6bMX+$4o [֛UР+@ Z6BW= B5-hrT qd\kpU!:S6vw -Gr-?;u{kq̳ z, owe޿g%PS(&(B(d3D^)WNGo $%EΪ.jf#! f)IP36~фdqJѺl ҋ'51HAIMp53hE~L?S h.Ut M :Н?=shBwDyc& ڪX~4\YӲ%Y͔(BiAR,T?YUgj{g}uL`OQ5&{|?!bZR2E[dI["ݕծt 2AWAI˝fr|3B]quT<cQQ*fMNSw8Q-iU;#7p1A(ĜI/l:Yoy/O[ f0?M/k>RY^1L'ۑ[,!=nUEntv>RE]߿.PBzBc>rk {K~\jve!a;Kw1z7I)dTd6GpݑU;ʂC8v|D V6?i 7G0Uj`]Ypp2ig׍GJ |^_+ YSq7MWc{s^GR#;ʂC8v|MU=بy6Gw*ulƻᰝe:%vtUz=6j5ޛ# :r:y}]Ypp2LȦ{[j7ޛ# ;rzmwe!a;tJ>B솿"mU9¨#WS;7ݕp,)'a44U7 $w./tf>B ̑>DZ$9.>6)<%nO߰EQ~;vU5+bu\.}GM4@#Ј'O?hɟJ⺰{op LJrl:/;IV&^i=ʉ h:tCv=87t3ak3 堵`Mkĝ5zU%񊹅| 3aTv$ 鲑L wIT2MRfg]MMMMMMMp嘗|i%uC+HVGZy\x&h\ˠ,M^vǖ7xhoMeWn?) b*^4,`Az$/Oܭ/X<$*$+7eϾ!pGt*q0<) SY]mp6Af;=&V2% bunp z4C-+" yQ_@: qU/|.0`Dy]"gGҊfVL6C]>|c'J؋nÍՋ)=K'k;hϵzM)J,sBͨ5nO8yY|;(>!B 8d<'ݻ%o%>CƑ>DZ$9 .r!$$I=f6^Wq~^qFy?;E~Y̚bqv8TL{ܴ%Ze1K;sj.p \=5V?8|g7]fMo#lq0_å_ä'zPBzdՊޞC wPej]sPKe[reeiq-ku_alt.map.gznu[+eKs8)|*aIN2gfHA6ג萔ϧ_iRlɱUf?(DxV8'?\$o'G^ա̯Ʋ2>x&dloɒ,`Q&c/E8(>YorS{*Ô_3RXٲTmVItφ4^I`_븫Ez޿ `#+#=VD"N\'c.MN<[.Y޻6&0Uz(+x~"/,>ʘު _ &0 Ln3VMX5"a~.[y`EI'U>uTK-oi fh6ffu$ %[}~կ0lU]!l=߳|g™ È'OdH^^zͥ9f8pf }5:s1MTd&d%>7Y}M5]JЁ#3 7V);4CߚZվ&4Ҝ`pތ&gd%dժ5AwtPt@g? ~oHELrM&s({U4dž|;  sDۡ\`R?7Y <:oM^{lg Mg\(%c50MFWMVj_|\s>6`?FrJɅM&s(ɪUko|KsιgC(byx΋pƣ 9KyiW;}sX&)9r"z Wi;/=6YKƱG-0R+TSO >؋1#3/7YcWڽDh`;[M;؋_j7$$ 3j+QG\MJ}֡G7MVj_|\3 'w@>;P LҋJ?MPɪUko|Ks . >fFX] \GbK̡iU4朏 'w@>;QPM,MPɪUko|Ksz|{>;ijP?LjcW ģnEG'gb &-^x\HHXwN9OծV?L[Fu"ͅHu3UmURU`jE`  .)œgUWlvTZepjEp  .)œsgUWc*{^Wm.$DB$lOU]s.j VǮ_os!!"ae;xbꪞsylW[x:q"d  .)œIgvoG *{aWS/M RUߑ_Ea6}KChFh헆G'Tc׊7Uj">ړ֧vJ8tص2tVjOڀNЙc YV (#=iC:i7q@]F3 旙e`f IBǮuYV (#=itFTC#ǮZ@PGP{NS!;v j">ړvJ'\ qھmbȆlf;ߌ:G9vYV (#9i#:i}*ġc YV (#=i qhص2tVjOZuG{D8tص2tVjOZuGWgwmO?Q   XQ^y80`3h޹$w'd19մ̳E̒kzp|}Ƭ猪:-hڄ6MhknxəgY"Z, ]mūUs+Ȉήf/"/>9̴lxXUknE^E'5ۃ?e+w*Q/.X>?O/lZ ǾcmqCSf^@mp%2!grz/>)Orsσq9UCɶH4ǑE9n ~;;QNs6R_&eJS 2"?gd{v{b%wNo3>Uv@LtLuޯCFQr,H@WNb ;zrxҹ}b7osήJG#oEg#Kw-:y)nMm7>|"D'O?{q>MoʴQmա9Ϫo9J, J wsΆ1Άo0i*TPXuFcC +~(<]_'8i`CPKe[Ä[1 fr.map.gznu[+e]rF+tbrCo=lrQ`)J{jb !Tf֒B%@;uWz;5-2v]Mly.2ee4ǂ LY&{VV*bb..7,hb_M&M U"tHe^mEmyhpQ^kUuh+zKx / $qL(.j%s[2x^&{qj!)FjbkcD" $~ZED[%ϋu)Sy-ŬX Ak!@4@ofbXǸ %9݀K"0'F(XME[`Mx4&&NtL$ z|Jy+4g}5T^^=ld!9A;ԙؓ4TpB"/$Pƥqc(Nt0(Q,~o0p‚"$gUrN"0(6X#F f"8RT1y&9U@wȠ:{tfIWQ[.JubSp‚"$PN]@tv13',7(JNP6ɩ:T3pi |wD| ̰Lc]}o&ǺƑOT*If%#~GHB=mSut'. JG@GF8Vq:TqZ}Bۤ;0whs̘l{Ε1ESI E'+6ɩ:T3qi>;"> 96RQՇՌ"p†"$Pƥqf>;"> |f*r싔EJV-*W$#4B#4B#4B#7INv:8omnت6ծK~O ?)rNteaE`v`v`)X* LRDx w ]h>Z%$ԨM@,3l )ML@3|NL~i6R \INա":< ˂ xwdxL*:C@hǎ6y&9Uw4.3|GGfE,C51Sϭ1-[9 E.$P¥qz1Q0XZ&؛NP6ɩ:T3pi |wD| J ?os[I~jq;| qi|GG{@%̓ 8𒋷3bI6i NUt@T@E3֋;T5Pz8aA_$U*:M pd63KAIͯ i=6y&9Uw.Sq|GG93ϊ&j$9CU)޵I33cX`0} &B3c>OQ i\=j {3fV69< <3ՎDQyn*],ּՅaQ/mɪikN})sxOsbWyygl^G2$VI뚕nF 0׍+30wLi_?pš"jCE;| 5(^RjA$% -$7%@"8͆@zHA @RpQjŧP$_Zk!=ȫ6ɩ:TF%#gfVM&Ѹ菼TPS',(GT*I%#G3|}1t lCE;it]'G t@( & ےuU'l(kT*ke#30Ar`0ߤt]YNr&3^ja%-X׬zgݺV`V`}FX)G.s7h4RX3TjQr5mjQd\FQPuP%:T2d>YB]qu{\9<Lb,,~@Su7}Ix1U]ppNsGwJu^/O}jf`f`~V5"qAD:8qK5؆m>m|D﫺^-;`,c>k>*rvm~tqɏ`QjrroW ESHK )l`QjXw  [D]rsRv9*AA:%xtUzsR͆v9*AA:%wtUz<&֟5֛#:J5\_a"|eU=`V#;J5;˹"AtSkMWcbaQى]Mv  [DLԽ-6\tW E)KLbV9¨T3*AA:T ho}B!6иTȮ 4ZY `ԙH_K9T0|!C 3Gb˄hJ"e;,ʯn|jUl3ߡ<pN'OdCKv|kjNPztʄ7ZH ՜JJ E; o:d'z9 B!EʋjeO&\gN"wo5'R(=RsNGe›$Bo5'R(=Rh@&i`N"-Vs(C(V}Ʉ7YH ՜JJU_=u^EfߨN%>bm\j @H݌z3TDJjZE~靵/k)~䬪$wSfe:oӁ>'snVbϻ}%N:J5yvj/]؅ۥ, +XMӎRcƷ+VV{).>خވX2$HSb]IfirQzOMs{`-Y{5KKz<BqZW3aqs[f`4X}pa] M XWX}ceQdw15 o?*V ߁X'6{`$,5S.YC.[0i $@$ i z~z늵/Kߵ'Tn3Q,ˤ-:y)nM/ggggggg=%_/>-8RekP z8k ","= kz H Gހ|jj8ú& Y+{\e8p1CUMuWj?B#PKe[hJ ro.map.gznu[+eKs8)|*aN2'`kJTH*/!P"IU&EK@W'?<$_ $ސR7=բ\׹Q1{K/o4+ K?_ |NxuN l`;buu>N"_z\VrUԭ*'2'؇p!2jA2[ 80xqϒH~2T|$ڥ qo -,T.\q.#S4qϩܐ"!4&0ޭrD1H]&O|]yvIM羶> Le5NSB];LÄ_X.mķMR)5/x{&*d.r "eednIzw_ϔi:Z/m#^ 0IgY<ɶ"ڥ XM\uFnSV`wĪ'-}qe]d@3wڞAQO`Ɓq`:a"V01)H^kzI2 eu` t-z@Uj(?)!4 C |b&ղS'3d+)^&N4Z[ݻ/x{&:Uċ{q DH/&2Z4]]մ I.ə|O'ÉJ-JwuZ4C,iW|\3P_|:Ne2G\ #NH"eYM;k0R37SW25wl٭hX !޹,iW|spI|O`a( ©Z4C?\մ  .I$'#NJ3=۱e?.j\zWPEE;mX !޻,iW|spI|O'@`"2u($_{&}?O/.!#&DEo:vǖs8oјw!鲬]M %mG> #gH\>J)dM"eYM;kh(AgOH)Z01YD֗/8y ~Ax<8 Np~c:7=E|-diW;r9k9E|F_PH-n!{Z';v7:_b7$$JZ4O+ FzyVܢ# e5jo|KrR. >ȧ^$R"V{3! lX !]մ ɧL%9t2T+bjȥ βEc1rYVӮ&'$'咜_|:Oc=ޱeb]M %mG> 3Ppcnw-!O.j\zP8Ot>%3\첾8K_|:w>:][B\e=mq9x .pzGX>ec ‡We5jo|.i|=dߑH.P_k˲v57>%9=y?c|}d8 ,*M,_sPOV>|=dD2|7yYgͽ^6rX ^g«'?pB,kqivո+""lIZK4(0 yÃOo+(Y&|F'%g"N,.p;fcwc/Ƌb70^aVMaQch,uYVӮ&6#NWb@4ݱe-!Ŀ]մ 9 >ȧ^q$8I!;%- ĥ˲v5Awta(AgOPD[vآB鲬]M %mG> %_oǖ-!Ke5jo|.i|=d8SP>=زۺEc1eYMK_|*F7#{ߛ_q'%c.0}Li L:Y<>'"^LJ,HY,`YddW\,R\M^) )\\6 f0QNM'kz'6M 7-e̍_Hwô[AlF^cNi}~NyAN *xfVpz I;:3lZY)6'vQqR=ѩCz3 o3Id- *Ak3S8=S}ҎIv *xfVpz v ulV#6 8S8'픟/K)hW־}h'ߌO>ԍgVwk3S8=SuNGyAmy"bԴ*f'_d,H1R#H1F?\$xfxqQ$dsMIODT,98`}]诞?}M]xxS%=_cu|}D\zt3\_F—b>"v J9f_<^>4,`I&s/cK12\H㺨Y: &0 LMB=WAqL-W圕Uv:|F0~F3WFz %D2;˄E.yxs6$tH_^cDu,ci7ŊݙnW)+(Y[FrVJ{uy;@>̧5Y>N4H;͇/x{"4Ϳ ơ4&|U8fӒZ#~RFmq&C`!GrfŬdUV/j=VJQ X&3/_"P/`z6G=UeIV&%0l)U5P/,OUۺk/dF!B/ :~ї9r.teM`{I=)!!!O 0;Gjc& u/,P|g4g26h2#d*iKգJ\YNա&NOcYޑh4;Hj_#IGxf9U;i04#G;Hi68{5 E&b(qf9U;>ť9=o>=MG=0?+I7=ďmSu 3S\siN|4$o=6˩:).b|4wXrb=Y;v6memyrBoqUО0888}Z@`=  s^ȮeeB4@4@h@_zټ9h)1dw]f)Li0s)Xy>:ׅ\}_5+Jݟ)OlK56+l$ %[%f@;5фo%r5Pgņ`4Yһ}ԊH.+`GY-l ҳ' }4#P=)ɗbfMDPUTjPt@G١4QKX"E<)IzMDP6˩:IEcC :=M~3Hܗ4O{4AmSu S;8%@t4@c4efMP6˩:pi|;" #z7~Hx_5]cb-0=s&͢؂Y&0} MVzż/ׯFJ';˄ϤX.իi*̒"ׯ=X >&C_O5ف\3 }Q-{VfE]l@#M*, j*"~auiK]EҢEQ?7zt*@4) o㪾Vp`G2h޹oNuY8ն s[?rVUR)Y\RU:oA>O>=>їx]\{GDC7pQUϳ+VV{)".>8. f vaa%ӎRƷ+VV{)".>8ވX2$HSb~a_E\W*;nko*ˬ($^6:|ncH']|[$YR/ׯu6zm0E7Xg%uywJQ<}eeQdw1= o?*VAX'6D{$"5S]z+]Q$ 3'ɅJ4MM pt.map.gznu[+e[w8S}Ϟ՗}gf{33{y 'lI̧_.%+`HbNDO4 qVm9rzn]'l6zW-{:.pz,86b1kD,kk}hL,'Ţ_5-DshTWָB+,dvTmK]V1DW`.S~W VzE`#X2LBD*k|.M!$ϲG\L`j]Uc5V"d\b;D oYul0 L`X5QcX0ł!Y8,oBV2Z/\zX6Uc[6bq,kyX/L5ZfQy-E,c˪ڟvjy4 hAcLqS"D(0=o sچҫk6*zU;2L?]G&0&AT !bMo̬cpzE{^c5w]}qU>_,GoY*UK4Aۼo +4gʖ)c;BF{A{^D{Hɋ9Q¢2fIe0|nP P ^\5z[NjOmܥ[5 ^Dxi0G][ACOKs2 Nc=lh[=|B؋uS'"T֣5[mUu BM :-\iShM)>YVա&N.4%@w:Z!у_ tru<8UĐ6˪:I.ɹ'w@> ]=$4V3&wj ,Pt'M4%@w:<=ɿPBMD6˪:IӅ@Gq:|XBfptX#F:a;Rr921!RͲ5w|Kq&S >P9ȋ()jBOn{&,P|gg4'w@> x<1ғS 4b+R<]ux٦ZTVH˛3|hxS1^ViåYO ˛uŠ2΋Y(dW>C>]DCX)BѶ;vw4R2 |=ch,&wbQh,P|gg<֜h0C|*e"ҎhvS٣5!hCM:20 g@ʥz>zhM )޶YVա&΀Oq)ќh0Dr5]yGkbH1oCMR|ftE0BJњRfYU;>ɥ89G5!]OB{}D~6\I.ɹ'w@> 7]iOkάb>]%c.?!fmd$HӁ T{K;fKS1NjPhM)~"ZݲIi:.pq6ppioIJ !6˪:I.'|4o0y#4ܛEDO>/=Cf!`Dr͗8-joҎ|J+ Ň%'ZEߔYT^?2g;<5E{^E{A{ǘNRRg:b֋YcEW;`p;Џ)5?H\1U}pGkѤ|֬`<30Ҭ`wd%g:uUhM)-U-PgON51HA IipYrũ@8 1`qDMeUj_StGOUq9n,} KD6˪:IӅcM :?Q4N/z&,Pt'M'gvqJЁt4Tc g=ZC_,P|g¥l|z0 ?j-)~Iח{b,( gR,͟`chR3<x4V2YJ~d4γ||;  }&BP.GVyIYܸeE'*|?˙ KAWJ҈ U]m +8/:ÈKtoUzCFhF`.0N3 |ɪ6b.t>T߯70`~Qk>UVa;ߍNᴋ&čYQwjW7TE}@ *#47n:(puWO^  JQY]y80`Ƒ 1oӘaEߔYT^?2HJu̫E+aղ_OFh4FhnAr37a,Ȯ`QT5+4RE\}r\b$ c4R}1 T G#qqWwfIW g#m_""ZGYg55Ej!_e!RDBd.>w=[VC,.~8sOu;# œF ݌{]#AllVf*u<ϋ*O|Ltv|wFo3?U ͋7tDB{L?n> 7o4G&wE[ Uv'0~y#######r#B'r间6I7^ ՞\z4]4UVX EzHAJ o݌a7ltޢ *TV}jРAʪHW(*Gre?:'PKe[*Mes-deadtilde.map.gznu[+e[w8S}Ϟcn"J7+N'FU% A}[Ʒ诞?}K9;vJ[:.pj,F $mE읽)VuYITy\]j ̾y$=KKܩ B 4 z) Rפ@^|&{QrZ粀|k=_ R>כR߬{Gxj "P``k1]SWe*Z#H!gs/,o EN_y{QmݼG\l`ƺ"J"-j"fwbdeeV~&0VcDUcb 0Z:w.p \=j,ʱLh$!Z9eW쎉?aI,ginwr<Ѐ1n&Ǹ)70.L]]qVl7ޒavM`|DgEB& (l EMg3 V&QrnAzGo{?"A}0]1]'+Kg:ulP 'G{^E{^}1S|5_]sdqfR U{-D>YUgy֪l"=}9/hڃ=hϳo9}'c?:a\z4ҬLy5SA zGz$Z/|2˦x/\6h[Itk&x ^ ldq蓉OGK{3瑌n/fG mc$I^4E27n<d7QDБB_H'.Ŀ\Uu \sIN|z0p T~FFe=ZAZpYVա&莚.%@tz;A_ش$g"0eF˲5Awt(A'_/$]Nݣ1eYU;>%99ȧCO 3ͧތf6đ֣˲5AwtLQtO@?_ ~/("Ԁ|ݣeYU;j(R/P@8qZ<, =QxZ,Ώ쭪GkCqᲬCM;20AP͌9 ʌռGkceYU;>%9# >Oz] D~Ouѣ18wYVա&NOpIN|OC=cM,E>!5UGeUj\|;  ՌN|whO. .ɹ$'w@>=o֌Ӟ`4kVl|z͚,PU+:PjTzR`ğ;^Ooz6iZ5 M0.p_7yRцTVy˲5w|Kr>`>O= rNߐ :Yk=1,>2W )]:Йo7=NJt٥#أ;#BP?6"c#_Ɵ=ZLYUٚP'Ŋ`z\3"zM8Gk#oW%kV: k&HO4*bUψ+b?L=ZA7.˪:QӅ螀N~jFDjF$z6,PtGM%@tz3Y}1^8'Gk#eYU;j:1StO@?5su,Wbl۪Gkc˲5w|.i|Sa&2~Q+}pY2 g,-`C`gq?Zk>ZLR|Zb,-b|; }927y\W'EIQܺeeVe4~v3)@@*VDgG?lJ#k3 fx+Шz]FhFb8Ng,:ۆztW} f0yF٫7=Xn`>FnZ09׫ b#6b4>o2HoB z0od{ͿY94T?:;[0(Ufyo[" E7&+ԕꏛf J5˹?[" EoS8O:J_"}R71ϛSӧ&zRf9n+B@D@HMTc&z^GT#! "]OJyszVQsYm(,ۊ.'%c9U=XDo0(,&ۊ.'%3"PlaQ*թYM! "]OJ9E֧Wf Rro"}RNۗs7h5qGTYhdKqquWSJSö[JNT3J3ö[JNT!.йf03^ZRƒm%t9f%p p1%|Ȱ"V8}81%|ױa[ Ef%p p)s)לּmbh'M|3:hk`VBzY >V<QwPjVpO?vv^E@бA>K1 0`x"C_;:}sBVN5m?CMյv~NՏUⓘW%kVĶұ^u:(& mBЦ&}js΂D4_IGT=Ϭz4ܥde´8E*oVh=YRE\}t\u2{#xbɐ Nq4~ߺ¾%E\/UwVþ{_?PXfE)x]"E$D:HgzH򖥥yN kyǧ!yeDugAcEw9݌B;%خ`;6(ۻ6o? ur*c'Rd[k.-!&6:6Z*WMS5MTb)(Xݢ?bbT?vL70gU.$!GKCfq^=C#lta9Y>5M!^ 4_9f^Dub,Uǎ)&hէv3=b)W>T Mr볎bu|G,:1[ԑiʳh9#hd[Z[\n=~Ym:qAN`&SȔubp|WVŪ*1NDH#55555558k\+_|"w|ӬDvvyf ߅p!s##8撬>2פZ)6`6`;Avd[ܮF"5)6`6`;A]"."8ߤ*5ʬg]JhA2p]6 eE?@lV"31z1A^}UDӻ9'sQi-GrI``yVXTeQސ5{7OyᣘkaL,/31`g qa5ދ?%,$ϰ=.8C5<d8kLuxiC3TCY> .]QQ.˔85k)QfV;=܍K9CSb @~UdAׯz2@ID^UӥRJYNGwؑ4mܼma6=a61qFKqjdvTԛuRɫ樌baPBZA kaՍAJ7xuU)&HYB[S'Ϡ,{GykDE -Ǥ̣Lk5p742G=WuM5yOM(Q- <haՍAhB[Ie(G}Ay^3Í,Q&bGcMF'22.K{_:J9SmYگ/Dc="d#q}&G. .]Ji 'Kb1D3TCY> .]JEnYgxg#yɘ^ry8C5<d8iLӨK'b3TCY> .]J^jj&]?{ǼUyHjUܛ l\塁H.1wT%Wj /7[ 뺥NDUO<8C4&FWg9i%jC7| ;iP! NV%ڨ=m2;itxat{(pD, .O%CCj,~}"@'Q gX 8C5$NK> > RS5:4[z(CtolYpIT2T;K{b, .O%CCM%$uxiX , .O%vt.@;|k?'wuo,$|wA|*/_}n%,_; z(Bt8C5<d#fEfkb3TCY> .]J Q+`KŢ^VzlVE.ȳIqMdDLg ")"H5Y}YR`E֢30gUNDx bp۽Zhb*VU8ϳ0UIDdz^doFQ`FqQc膽-Aj2e=тLˋ:}< ?psix1^ƫ>K3Ɍ^&bD6P eo.3Ei)N SPSK ;4X 3TCY> .]Jjǒ(ɔي8Oe' "3TCY{qSɯ4χM^}P,a PςK|ħ$/<!W6P eo,$|wA|*.d(/Ͷ_mYpId8QȑUK`̯xW'cF ~pL,&``U;xRdϸϢl+rd;$ <+,*٤2+cbpSsVP&[4@4J>rMz&5w,{WmA @@d@dQTr˰[5뿼uWOOk4>7`f`3YdMq P7L>w~znjlb#6b_4 u~w,A 7$U2O^'Ϳ1}TnWɭFkzgi{V3}"D@4E'ITNasiKr/! ")R>1yM6/RIu97! ")R>YxLDMoLMF$3]Ne}"D@4EjR'hcE&zsdC*ɉ.&}"D@4EjR'ŮhcEGjsdC*ɩ.}"D@4EjR'֮hcE&zsdcT3]NDhԤO&]%9N͑e$纜IIKd55rLjlJr˩EMs@3WS'E&7mjj^5S8=Suӊ_Ǽc7f4p pnZ7tF#xՌNNM+~~O*t#s}b]o>0`1h*޹#^.^;\ζUˋG]{CmwI8:Ƅ1aLӏ<&a$ugA+M C7G6sH%$󨝲Kqj2A Z0EKhQCچIuQ;e"."qɜσ?hw#'_׻27mv*UY?>7%ZDBgI]t;r_4oHQ/~/WV-ayf"vcv7oޔhAv7 K-eVyxoY vG:t@FٔHH A$DzٵunC-A][· D% k!zkx|#UEGK }?#}H'?殙-)&N>s9f[VӸ"""""""ʼn(fiհ_ JB=ppy(Yku -al@v 6 S C?a$H A^ԲqrbyP@ZmvWjyvPKe[&e latam.map.gznu[+eYs8S}kxx؇\d6/.5%:$c>l\H%ŖU@& }]FՅWכpǾ&E.܋]=\cut}@\t5y\_w[ᑘ&܋WŪ.:*[Yl;c{KXKGK㨴f"݈hAhsi:&5ij _\q],ޔf1YGxGWs@ "4;dL]ƬF0;02se@L$LZL+,K2Y/weumkC/8KnD;NS;ձt"!5Dҟ@1qĸQr;͍Rǣ@Ѐ-hj9nF($B Y&nnEdM;V`*&0 L`>L#'9qg+[BQ3sczL>#g~AzGo>>p)Fq6]oG{^E{^}0KG=UWq_<^\f9W4(/f8fUU2E-'fA{YGјZ)넥YGd7Ŋݡ=bzc7gM?spnUkɘ-wں{PqN0L|_k.ɐl8GGCxG$aDW27^  IUBTM*SAG %9S8ɐh=FɺfYJVemrAyGyG( G^L"j]Pǥ̭W)+(bt4iQU29:^WT@}QA,MX.WB]hh`;{M=\b3$$I5jeDvD,w=M+d*0WaUZB.*:ީI,x;0 XZC]Ut 3\3u'w@>=Ot5 ]qŀ˲5w|Kr>OOzxYg _ ao6?vYVѱ&΀OpIN%9Pw\= rNݸyM%nHH;ZI\OUl%E^>|ӓ''Czҧ'yb\-mIݺgeV2 ϙ sѓ\{/QIzJgf:VkTQt ;\mZ4@#4kۑw_wO܇f0O3^ɚxO Syu nԭ 6b#AcΟ~UEr*TPɘ?}6|~*rvm^xq'Wm5[RrŸ M.Uod6?֓T3ve! "%Ucxk՛6?ɕos,D@Ob^6CPYNOT3 ve! "%qzUoDo~ۓ+]YhgAɟlkkwj \N|o+ ,=(kPucn~OTf>7ݕvɤK~^AOTgf>7ەv K~P ž\|o+ ,=(gX[(Z&<44ɕZƦ\E\}t\=@R/:QS$ 3'Q˔?tES;,ʯ`7YU.vUG5ܧt@#4#>hJ ?M J^TI 8}8;G;^ufVBY >֧vN :7l+ŬNtNNN{2J ;zݛP} f0iF٫7=Yw a[ Y >vB;mH PbVpzN;WPbVpzN"MXvG4D;hzip7a[ bVpj9za[ E,f%p pwZqGۧW J(`1+S8݇Sӊ;%cVBY >V~Oy(WF/NHOJQU_u80`Ƒ }0oi)YQԴ e%wUUv9'1oJլ$#lF2=hڄ6Mhsn>Xq݋K΂hbL{rf֣;qqWfzm0#ҳ\3 Mݹj0=SdH|}¾ETW*{Ӯko*ˬ( $^6:|nH N81lQI^GV_=_co;>d7ҟWFVF90(b߬Rg J {ckɗEٞ%3<ӳ޻]U;c4|زƈ[$"5]zO )>FyL]$ϜDO. +zqϯH_,HQO>4GW_q3Z U [=l6G#z=9r٧1/ =.p hƳ*nDϻѿOk]ͿgN y!/K-K-/Q:nd&sZJ1y^vw!KR+R Id4X,a'4rBNȩ-*Z2%KR=qXkEI=4'n8"SdLwTjk.5 MɄՄq[m6su˂SMdd \=EТEcI>IrI\뒺"=+z$5YvDxCH "8X0,"yZĪWdҼ2S]Yt!{ܵ̂ <&xL1DUbҹTT/ZyYLZl-[~ޙ흲d2goɍv1Zj+\dӽAEu9^9%rD/Q}1b9cX2Y/84mk5)4kr MǦcӗtl:6r~G~z6I׼old\l>6Kdsl~z^͍ Af2ղjYzt}rؙrvmo =^YY8"2 {w]>owGF(-WۍVWJAcf+XSZϨAu+րu6g>4=ȭ5FdSq@X@ 0[CN?"&PI`O  $9~|9= nT;@qH_|0jh@@@`j#Y4TZŨCi*اoEњ `gkjchb46\⺈ a%(AāE:!7X}{5.D0zqcfƩt%F(1?#[ DU R.U]kaٲ:٫&9rWVl?xY;5p<>w|`(.uY==U(yZD" ĘNrk}O8DkқYtGXȵ1x_ϴC~gp*İY;QY2lH ׆߇JZDzN/%MAzH|0)ydSrm| (.T4uz!SK*[)IrmV2"һtzy&iCz磧Dp,EK~h;_\'k+Ph]?KL+Ώ ?wV~J )>g TAjvC ׆ޥsISDzH| WMW'Ί%Jw0ܩe3V Gwc7ꄙK)R7Ҷ\[;OV2"~๘J\^R>א<-Gs {[ɀB q^'%x"?wF~J D(5_Jˢe>yԉ +d#kYQlx2\h.&<M%1 bUV;6 ܸMfsX ҿ>ZO`T%13,ZtXze Μ)Xt&|VYcV>k@n[1zJK$x+b  +$_ftV5'Ǵ֙GOi;v6"-?%spYoc1w'}(v>aFx`}qR8} |O|8~1'Z 5߉ 8x@>N @^ᏗEoP/N!s|? PBc/tg9/` v=>] -nr:C;HB(Ii]ڙ"dl.Ʉߏ lZIx5kl% -"K$M] !sS"V')$biN_6OV2"hvTDvؙOԇ0HM|jQafcg6єHq&?,]PKCe!fߨgo6ޤq?G0Yeל1v&!nq '"l S5ȭ4QG8"$LAd 5P90 b[S1 4sHb@P >`rРpYt2AN#ZuPGm,uQ7Ha8ABuaƷ5DG RTt4"XtÝ,(u8EhVF(pXfLQ:uJ-l~C#/:(8s n\  #|4e:ÆQ~}h2n_5 n"#0|L Ov8p=&֘# }2s%EQN)k#䟶E !`g>"R3k$#"in>"ҫ5~@5In7RڸI@G_M~W u P;Ve'ݏ4eg8oV&!ux65:33 @>SDy'Bh[i2"ٯ{.m_z/{= v-r_$u_Xː#W12D2B?ZuԆ:j cQ75t B@ Qu43HBP ` Q;YQ jqXWQ4T:H ^F=ydž@Tl62up|> (ѰuPӇ B?d y3 n"#0|L 3Ciob r ~Z7FNsnn6 Of+Ph^ ÌH~Rs9i!ؓ'n+OqE#ST8tV!%KI*at9{M%֩-ɸ#OjnNlA~!3Sb1$PZ(a/'y#jI.D4U^)A"HG$DEuh|TnђgYzWmkb},6(\m;0j;~l1[-cg:] ʭ tN~XW믝/56ڐ3rFrڔX/_wd{L#67a-.v#㨟'14>OhwmYb}cһk$a{u{[τ1 4MSٕۤ)&Eclҩ*֗Lb@Ӥ:%}vU{l2i_:sXE6g€&)雮MWeiFf֗Lb@Ӥ:%}ScmxɬecUdsN}& 1iR!vtձ6 X*"IRd,ɽv5(jRI} 9!'VbN2&Խt/8";뀶Fm݊q1.=:l::6ʦtr}:aa֨[1.ŸGǕym>7u-aS0}mzC}eq{ϱH#i~K,[R# z[v6V_7ZXg a.#֋؟7 ?lwn?opovfae/ɷۺ%N旬Yc!ү`7HH@$iA}0FHw|8?oA2C˹dE&L;Xo}3XSL/#뚔-AxH;?קy[,8zܭ3S@#G<"xDQ>uէUST9zS_B^ yrڻ*i5nq{[7Ч鮻lUoHrۀ  -zb왳uޓz]`su~awSnCL@PKe[ylrr cz-rus.map.gznu[+e[8S=\l}ȭgf'ͦgf//}vpOT N$mU?9L$n]/F[qHq]UQ="\旹F\U ́ع5&0U3Uqw!5&Qs$VoSK,g e:UuSڬ u4 H@I8x\DUF{UM%.˥?ER` XΊyTxiHD\'Xd"_/Myq~Tq"[ᕗQY7F7MtD7vD%% Ӎ&YH3[XjvU6Ko 7ydM-[Eo[|夒b- Q_=/M1e*x ^ /'c9kx~t=8sqx0M|O?U}"ǞF"Ug៪rwUA8P1_y6@# ҧAտ4iW|Ҝ_| fRM+T=P hTӜ]U 4Ҝ_| gpD|Dۧ EbPNsvU7>ҜKs|=J# Z2$-R4iW|=Nɥ98z& zN3'a[*UӜ]U 4Ҝ_| } RAc~"U1NsvU7>?\|둏ykE@M{M(s}VNkyzGqt*"wyMD:Эɒ &7-R坪iNӮ*=Nɥ98PK&HumTŠm4o|ĥ9%zd/HoKfXp7jcWYZ, Pe )6S(CPє<#J lI+(f`Y~ןjwgbݱiqΚ6w>| 'r;QM}kB}E`;ިr3h7jԨWdBMg qT%iNӮ*G\SriNG>N B4sBus;A:iUKsJ. >"אeTŠNsvU7>ҜKs|=q2Z4ӣ - -R4iW|#.)4'#'C3C }(3;}K[腓?i_B 4Ҝ_| `F\/t|zK!cB{߲3"'y4.Nf3h]pn.4o[*UiNӮ*{#|땏!cF/ !08A:iUҜ_| 3 |ޚHh*$73";np05\VpeIf %E|Ւ,+[-uQ%4/F_t$hAF;A oF8m#⛌*_bZq?%*mjVtY ~@?Џ1L0-DعY- (Y`ڱk:Z?&m/S  [cw5z^5y 5="1uAlXTNsvU7>ҜKs|=q2Fz~Gğ[*UӜ]U _qJ. >ɐ5!h=A^%-RuӴ [O^8 %.g}=UC>HU Ӝ]U 4Ҝ_| y g"U1z^9MqiNɥ98Jh~ٽ08AկuӴ yҜ_|&7j蛽*$:M| ęEİ LP9Yy=4 ti Mb- +V\ww;+=瀲dh-$ a3Җru޻m̕ϭV)-&>/ֱCc[JC1`sᤣgTR=ܤџV[mvY$r ^?949ON>!֢vɃA>7uڮևʧf0gzd-. w!C+Ќh~Kh</lu"D_Qd,Ƚ<]kKr k+L̠'C/rWȍX'܂iՈ]5O@^ʡj ol\nK1" &rz<-џ-5Xv/wYUϺ!v)/yx[b *p`̶Kc&D@tM<(X[(,a^44ij *֮z+".>:.f$Я;jws,H@'NbK$hZdzZ\ݤ߈4W;~%'Cͮ# t@'Љ󗆧GC;3fNpz |ꤝB:tPZ9)Iv yҝBEhmp p'mNګݼE'KG/O `3('ɚf U!렵S))uҎU![S͜NNI;QOҍgNwk3S8=SsNGU!-)TfNpz |@ҝBEhmp p'-B:tPZ9)IKwߪW<\zB/|bu4 (P@J M;z}w<_nWSM,]_ŭzee=tp֏y9KK|"D'O+"|qBK \}\*KG絖= \Wd="?[?f(QFkJ(y4c݀mu6Lp6 }Ά'z!BسhecC ~ȋly_.v0PKe[!tU..us-altgr-intl.map.gznu[+e[wHS}Ϟ#.>IfAf- Pϧ_Z6 1sBWT%,u ķ䯞pRiP@)RLWU|}ۦ(`=wI1{벫ݦ{m~~=EOS=u?[Ck)b%u*RK:.N<hxL.\4'q"HX{QO*ݲ"a4>o > # g)Hv՚}wӌ$du>6̾H倚Vg8S=E$nĹ <:oM}RS׀|@|&.t.KXf*߲ ź,tfX7%(A oNIk&:y)>'\-:v LO ]Uu 0`,=, J!$rN彠||^:oԴX}gשcڦmU'>ض=Fc=F\٬~]oݮuO~'XgBɆ/|֬be\I&\cz}M}&*M{qơėBES%Y(e??vh»l}MOsi$4߀| # #$*hs&b(&i4L|\'Ù 5BA/ D %4YNӾ&F4g0߀| W\ITKSth",i_|#\3YNo@>z$C7Tɕ)C1r57>ͥ9Sf8(z&֩DAs;:4C4YNӾ&F4gNo@>JIoXAgסJd9MҜil8(CfOdRduLA8:n` `\)%W b*Єw%d9MҜi`8(N͟iu;jgC1xd9MҜp|Q2/R>}&~VvW NpqR2oUKbGqԢjpnpnpnpnpnpnpnsC7;|VmGo:{;v 0r|$:&>2DQE4ko|kF\|!RS]zʕz$ydhMPr54 < GIЬ|^3L NڡJn}MOsitb8('5/=aMPr57.m|Q2gaaև]uh"?6YNӾ&Fmo@>Jfl ^>s-OMW|#k67 %CGInolVRɺ߲gĥy4_2|\̻sf)/Rzo͛MP&i=NO=Qs|Q2w稇ta64u&b(r57>ͥ9ӹdP X'I1['|l%:JROV>|dNT2#)e*&4YʬNĉoμƏbr=`-~O}\Rl]7?.,K"mZpҋ$uUWw)V{[7 zޠ7O7W<]\g %q4Ds)b%h62Nnu\^1,-nݍ/OalV\EjTT:vh"m}MOsidf8(һԐuMPMӴ ).4o|!RO ՓRPI:4AWMӴ gMt{:J~fVnSr\̴}D%h}M=kPt@GɏVd*_l}زC1xd9M_(.L2OKQr/įMӴ i.͙z|$)G?eE}o0~wMy3i,#LJVzŏ/gGDoo6u>kVwϓD&Z/` [6/YnoYrW+Vcu{Lj- Zj_ *|f9Em_G0lܮЭAg[dޖo-juas}UVѠXPH :E>1ǂ$ ILrk:|mNUVV(6ݦ4N:N>4*2Nn;+nxؿͱ_E_ ><ܷ#a=?¨Vg7]͵{t\HH K*C-&o7]͵{t\3 |PFu55m [q^dWx >cm" !JDBg]|M[YR=_֯u5s>dW[+ڡ# <0(_ľ٦ƻYW&uy7*Q<}my^d4ȳnGs>{f ߐ.pFpFpFpFpFpFpF͉zSV/^6Վ.p \5Wb]XD9 o3PAIlݬaau5D_C *ԁU+{G>E4hоc퇲*Uygr?{t#PKe[*OO se-mac.map.gznu[+eYs8S}kS>$xfxqQ$ds- IOLT,ɱ C@4 "YU_==x TibwNn \Wn2~pxBR$)e_Tٗt, XXƗh:X纀|nυT>eSԛ߬f{Gx?mx3z dD)%edL]LYY`02ce(),>gźtϓg]<cƢXErfq ,QOj[2e0`djǪX2H1e!Y&V$w,.p \f,l$9fB یe]iW>1;՗N-N֢h-Z֢OZ;ѿcr)<;,S-liDcf#sY= !AxB=ԃ:Kje4إ{dYzzhUheoz'=&t鋕Ȉ{?Y&Mdr-'ڋh/ڋ>m{X/9孍`$ٜL޷Wu%kVy#;SEyuk-AK-yЏ^c˧p$IY4bR fZ*&NܖohcCd "/7f<^51w/x 3-ľPq0u&/'e$_L$GKx[G))کܸ yIϥTFNJ/ MxW_mS S\siN|4`GR[:4C o}M]_ #`81WەrB0e&"(r5Awto(Af ^._omS S\siN|4zf0(hx&rfvB_;4AYNվ&Κ.JЁt4fSGD MDP6˩YEN@G_`q:Tzxx^r)~n: ܡÅ dz G04p)9K͘Pth»h}M]Ҝp|G02 E3h5MP}Tk4̘GY_i$\fyJV~Y j#jZuZ4/R%M#)W*4/b2cefّQLzh+я]@X.B6;vo5i+T6$$I3fO^ӡYhʐCWRh}M]Ҝil8#`H+TTL ;UJU&B(qf9U;wC2+VB)=_A~+Q\|;" feV$f0Mo%1RI6kf/ TgA&T: ^0~s'S}zB}ߡJ"EXJY.p7q6p pioѤ ᇛ6˩).&|4oSLIi(r;`L͓IfM~3/o  +(CʎUFϔg5RRg//{/ Wi>r=ׅ\囼*o՝yoNʼRw zSnLbfSH%S!ܝCwǪ՜`0(1`2`IߌPw#w_:4AKq[[ g&H/4b;$f:78 vh",j_tgMt; ~fH=zOmS bC :Н??KL 6˩YөҜt; ~fFrW%m١Jf9U.m|G3aDk?N_ ~9޵Y:3g,-`ӷ0`grjPNjF;˄ϴX,++b^,\>|G׃g gL%匿**@bvʼt4a6gS !" @2۾Ya`\Ym`[oq-ТhFGhhX;S |/oޭub_n^m-W?70`> |ċyr7:Fǰ] +@2؈GMπ~U7o*TPPȾYsvc~4[0RjrroW" ES|fdTT?n -o)5]-Ng^juoRQSقɖRv9*B@D@:%ytU&z-Z r/UnuJ>骞uyL?i7[m)jdsѮ"D@tSbWMWcRalT]Ż-Ng]5]ճ.I &zRro"|fDmDo0Rձ]w! "[DԽ-5w-jubs]EQM_G(ajG+qq:3 z! ђGy̾  H9\F|FuZq}W|yEUmοW=v]'5ަt @#48 8hxr=H&whdNJ󼻚))wK+ھ;# œGoݬ{]|^"ADu67K/L*Jq,3<3_be |(>>B߳^} "]>7K>c(|]UK~1$ y$4;XLCHH˓uYW%}Y%E}?;E]]Lb\'poYRqDpDpDpDpDpDpDN|DDu)oLM%}{͚Ÿ濘?H^fj4} H/ Gnl:F[oC *#hyA ei?Tu/oAR :Q'sPKe[|0e es-ast.map.gznu[+e]Ys8~_/3fER5%:$c~l\@%ǖݍF}]诞?}M9.vJ{?ygۺNS uFq"Nĉ8z4P$s(ݩ`O=+S LLdj"Ǫ1a aS/b]6xu|.|5MX&~PYd,Bk%*HLI,g)nוK' оfr" SL qVX#ôcUjML'SAtFYlb,p"ePtꜙU29vmk%;A#zDO>zD`"bM=OVE:uj6(.ȷ#^ċx/E7^0[G}5_]{dqf([qƣ[1fUY% _[|lăxA<"0{FcO3g֏e&JTW0A[ Td*=G#^?f&y?{s.ު>T^^=z0W[ ѝoGK;F4 GG8#ѕ\@DdI@T&Q/2~Z%YEw.8OS9#!(PYz\Utt'.JG@ bĦ#_q SpA>$PN]+@tNdP@&tuKON#ӃaI bu"pA޻$P%qΙ |wD|z0;ڍ7eK9BG8$u$ 9NGgŷ 3 w ~(/ُ):w.Zlj*-J6=uE\\լ̪sN7@K%h Z-5urYwm8zD؁؁;E=`" #j,+Gv,Rc&hKK I\g:V8OzGT  :c{Z\$PNe<;2<=Qc5t!\{և ]Ut|gO8#`wJj(6{b ꢇk}r钬CE;|y#CcMC>A5؛!ȏ.*:T3'pI |wD|z0T;b;]R~m%}e SgK>;">=o֌۞vae0K.f+`li]fAP0V J^8cys'"qk= xy*^͝Uu 7L6`.>zIE )Ms|õ>y뒬CE;|ajlqI|GħCx 9oHNb,N׵މWiQKʣgY.OiNahڡ;{@;Od"(nj,f%'d󸣎ÏF}m^^}x`v%uH,NI%cywUWߘC v|h6G#zD?Yyu5H2՝Acbw:YI>u(;L=}ߴ`;nӠ!h٧!؃!hzRvN/cu&䬪lΪ0T3 +0wĨKE,e‰_zփ &rSfC FSH "Ճ+N I>pA^$PN](@tN~jGDjKZᒬCE;itX:{tz;Y}1^qNDIzKхB t@vUlKV=\C_]Ut|gρK|GħH[M%h dkWl{璤=? L"[0L8|Z+~4|SLR|Zb,-bu` ߑЗ!#@'! try_Tl ukY1ޔ.cQy@AeޒhWsVViQvdm`ZUF-&0ݕlZ @GB?4BGzީ |/߭:Ͽn?/ׯ: 4Ԛy|/}3Lo#7Y~ߜeU%7 G;;_.o,X`>"c"kΪٵ%G5]*8C8USK u!F\CXSTppht+`/yW5fISYV]*8C8US򕘗MWt6Xxopԡlh깽p m|%eU=czYxoJ62^KpJwJR骞1=l0jZɎM=7ޥC8C[;%_vtUϘk6ZNL=7٥C8C[;%_tɧȺ{l7ޛ+ ;znoKpJwJBOu6؀*\aԡs{]*8C8USNM_W( =ihܡ72 ,~~Wwf )<. _cˢJvU5+bWu\.~cA  \?4Wc"7x;koͨyp3![ ubV0zꦝ)U}C[J`FaTߴv@ bV0zoG#C[J`FaTߴ{ˢ^Щ҃_6k @x$A?;:}sBRn5m?C]խ,iJ|dqJf:o(Ӂ1!&ĄsI?<7`npҡZF[ ;3Ŀ`ـā*=*7Yhd `3{#zbɐ Nq7~߻¾&E\ίUwCݧ]/TޗYQ$^6:|ncO']|[$YZV]=]n;>d7+۾nNÍыoVs\{w%uywJ=}4(Yrwa1-~^UA@@1z#-OliYnhxzLfW )taRHH9=_^JCPP^W̑,Y|HQO~4Gͯ.8; *[UblZ-AE""zr"~}QsGNP z8c ","= mzׯHA{ѳ^0pq7L: ,XGf{)V7E\]uv#PKe[yg es-cat.map.gznu[+e]Ys6~ϯV}I63q=^\$\Sȯ_K(RccK_F_HxǾ.bWϟpǾŜ]xxS=۟cu|}D Wcߌee4 D&iKbU"NVVl̾y$>KmV(ↈB@I&H8jEjKgZ?|\5'";7*YLeKpp1 hI2!$Na-bWe*Yk#0#0~jX"&%yWiYTXy-Vgm:M *ԅq"Nĉ8'z}D`"bM=OVI:uj6(.ȷ/E"˥>=u 詫x/,.^Le+YxU+D>YUgxKON#Ӄa~M bu"pA޻$P%qΙ |wD|z0+څ7eK9B[8$u$ 9v[{ŷ 3 w (/ُ)w.Zsoj*-J6]uE\\լ̪}N7@K%h Z-5_r&p";;wz+D6((Q5jEXlW"XzL-..*:T3'qIX>;">=Qx[,6Ώ꭪k]r咬CE;ux VFPЅ2?r5ZvIVѡ">K✏N#Ӄ^)%nWCA]pA.]Ut|gO8=o|`WM>Cg"{õ>%YEw.8OjX, zhO.?(|gO89.`Y3o{ډh/x؂.?"wI%I@uX*:*=xof0N0I ]z"U;EPpwnl\}p ɓR$bЏ:![d*$NK>;">=o,[9}Cr"6($gqJĸJ"Pu\:W [d:YŝJg}ߴ`;nӠ!h٧!؃!hBP؈`lõ/UYxfXaF``(VE4M8KzDnJ׬tV"=h)>Azp+bN'2S +d*I O]qy)O=\A?\Utt'.+@tN~z%/k0Ήq:ZtIVѡ"Н4W(ձܽmɲڪk}K 9pI`o=M"A_l%~\!cX`0} &=XiOzŏFVOvZi\OUlE^>>;>=r0df$rN.mQn޳2+қre4  T9[ @B7e՜UZYnV0[Ŭ@`ww6-@A #/!֌#=Twby_7ؗW}Zf`f`~^jM|ċq>&MV|sfug3_emށ ,Gd`gd_z_uVEή ֏..L:*ԷvVN93/&+ԅ4esbM=R!¡ҝπ]ޚ'MfZ vVNgb^6]`i9dCS텻Tppht3/ǚgd#SETppht3.ǚ Fe9BC+ٱƻTppht3.ǚ {sAVSMvVNg&][dݽ 6ZNM=7ݥC8C[;%!vou6؀?j0Jvf깽.!*)䁦+a?wh%E#˭_՝uB_80 $@$\&|FUZyN%nز(dUjUl3a<@A  O(ס![ɋ*ͲbV0z餝R«N JCo1+Q=Q}t(Ugl%䡷(¨>iC:iI]isC; 4Ԛl!%IhVBbV0zIQ«Fl%䡷(¨>i'tҎ)Udžl%䡷(¨>itҾ%XyȾ ڛ|3|%܌gVBݻ(¨:i#:i}JxUߐ<C'xP«l%䡷(¨>i%Ȑ<C'x?(WF+@t*g,ZÁIN NƜKMP&qzWqu+m+sگ~ļ)Y\$:tDL 1!&cvϻ,[D󍡛#th%yf֢/L+i6qJO;ʍoh-Yn-/>دވX2$HSb_פUvbmB}@esS]#'x:aOFk޲E=$yR?pX vav{? oV9 7F/b߬80$uywJ}meQwmaXǴn/xyU|%,>!gu N“]3қ1ґ?yH]  yHŸ`Gx}#}YΑ<ʟPy}i"_}]&Mo1Xqv8Tη,qo~hZ-AEE͉"u)kD/-ppp\6E^X"EzHA{ѵ0pq6L:у ,#h=pyp{U]f".:?mE#PKe[k((fi-winkeys.map.gznu[+e]r8}WkD0yOg2̜$ѱ,))!A\6hIUe q˾-,V"2gol8a +v hJ~i0eϖrqva<|)=\y@v_NZ?8LH!+skw [ Jk3wFaG6S9QZ܂0@GÛH1$TN~P vRWa%**q4p)-': c(N9p*4l7v)ǞEl;)#=iJރXiWg!h-iWC>8Eʰ? OA%M')E@;p]d/g{+k-˓fT6*vZtL {9Ӟ4kNq^ O >_[l&~JTטJC).Jlu=lgf?Şrwo kvq70V0Ed%c޻+wM߀ccAF$CYZmušsby"||ΆOESE'Al(ORYdqv88U) S< w/"Uuh "'EJf֓} ^'E sց2gD]fʼy>t p)pÜ?L݌Hm^yKp'uz4`z `QKa{Ӧ֨v]k}~Hnqa|tCGXv n ZO-xE'/ٖ3e{cv;1D{J /!L%vR\$isCo[aboJ|_]mh8 ?QD4&*dQ+4+!H2*󭣽h/ڋhm1n "/\!x|q}m؞\# ׅg{tw%h Z%߰%DžfՇ|yj7eIfllrQ(n-pkjN_H.["/Ř"}Ayqtg/&tu?"vU"?/U?;!?-F gSVn#:L*YPj΀*l$q:!MVK_|P.Xm) ivJ0J`Ip0'4fͤ-ׂ;QQ[_{_1dbSߔB75_PLE"}b3R="flP$0EaynKnS zgmSjzfjcP;++1$wu[dsLwDHdm#\S{D% tơ~ܴ!u4PT"zXX=PudI  ƠPK_-t'bѮ05Ɛ-/g?>u5ۡu` =yxxx;.O{q0{)$0 \ NtJp^o*QnKߋ+`^ILH}8nFm3QJnnnnEvRH-pZ/Jq:$~=t6 ڈ1#!Ƒ:Nj gսO:#]"da^Yшw@%hҿb{[Fh&\lVd%HŮUygzw{B+??3 H:2?WɂRw$/œR<NOaR|lj2{%T*_":L*YPj4ɼa v`闰U%ǣNY-#:L^JZ3~'ŰyGL>3;vS$Wǐ?]% J-sReb'vb;e嶈2y*YPj΀*f*T-&liFru U"1kX' 5b8iOl2]L.~iXxrNjD򛫤BޥAGHj%(R*%-R:-K̃eqwݭŦ~~w"~Z J 󉣜'H|Y;Z{uRnU**OfɪN&BF*Qvݲ(k,|&|a?Zh1Zw-?c̅3a_o?/^z }F9jmZ =>'L]cI$æ%#f'wO[wzY}yMEYdEZWYW_'W3y^^2! "mj:?}5v5HgX}Fsɚv^0dB@D@ۤ;%wU{pVcUّiB&D@MS'`md*zig⤝ wek#"DacTOڹ8iV*}$hvt/^MfQA6'| NڡpסQ6"BfmP)*=FwGb]GFڈQAV wek#"DacTOZyGe~fREQAMcP@P@ h*U3Q)r|y仏 5tԫqlN.YyS|JQXv`<,& mBЦMǪ~-O]\ W76WcU,3u.qqWwf:/˞kfh]n+".>8nәmsqǰmߏ+(r~}7^|o_7TޖT/vxQr{OE$Dz‘ҽa{[3 k~ǻ}-ai1zz|?*>om~4W䫢GlP3j~ٝ̚hlw#A$Fo3ޱ$8"!ғK>[P) D R:}lxxDR2\'{qAC)q\L.d8mlmJ'n$.fxORvП\',J'S=95qbK DyRBtlNZhv4h4ZhVrwάsH>քORvП%i|Y Iģ4zSjَ$E@tO%?_u痻%9S$DMe: h -4@;4Jr~z.q:}coh)O4A J6:m".%]*D=)mH"|K7*M^`݅`ex{g]diQU=bmH""|DMe; xS9,x oo`MDW u7Q2=Znw!=#MHY"w$L/t>^SiP-6aU^l5AK0L+++++++WN̒OTDB=a؁؁{ %풁w =|k>268mCn^iԲ[ -x h( $چ% #'P:{7'S Rp!H'o5zSjَTA. ^6/<[$az!5Q)'n;1=- NېDD8DMe; xS=S{ cqu}nfvA[Nb=S~!8j:HW!,Z#O LS'p'%SW3Ej2E$No"(T7h/ڋh3h/4Ar%u{'#᪊0&`{e0A(Yь/\/OGjBz'w?+x18(t3VC d\ڽi"WVX(@PJ4A-v;->c-ufi0S?z2ظqiH&$/MޔZc@7 tݓG#@\'$L pZ6*2h(-$>'zF3 mH""֛Rvl/-K3C QD-j$JZU?hTG(@uRB_{Pqm/**gxr즿4ϴ\5[iYk!6I"ey*Vut-kvZf"-2; w}N500yƷjYvu*o괬.:gF`Zk=T} Gb-Fgbq0K |F/?l&-oooz yF97J|ƫ1݃nHcrvJ5I2x؈GMlTez,X`dG?1. vi~ԣ^ۧB@D@[uʐ?ZQ@Fzal#mǚzۧB@D@[Et>]zQkGYs>" *|yU]8=Z VQ#Fۮz6z{nV3SVQ#ۮNףlh깿p muJ>bxL#{L=S! "NG&Gd{mf禞S! "NGGdBz]zoO:\ hg|B!Pأլ£!ڭE\EGǥGYɡBG!<\  yHMiU.^~`.O*Vw.a>~chFhӏ+GCQWufVpztz˂:7V!# Y!M˛v! ~¨[0hfp pJ7m oڋMTql^}zf`f`~QꍒZ-u?fVpztӆɂ:3V!# Y!Mɛ6?54V!# Y!M;7,ӄΒ#G4Dt4| \Yp7Q ٽͬNNvț֓?3V!# Y!MhF*dA3S8=SimGTǨ[0hfp pJ7Q{wuY6?^TQR#us᠂ *U(T{$r8ћPӉM= V/*7: S˿ٹgo,n juM"."RgŢ"|Qy £!ڭE\EG:C+*v"ZE}*/+8ڞ( N8ѻlٌ)޲#O_=_n?W=F0sa^_ľ[g8{wF(V0f|^V)YS3uͪ7\ت1 vcA$D:H]ZuwޭРw09HH^8J. ֛rݴ렠ӣs<g1lGb͎?!{i2.8IE\_Q)Nb]W<DKV/^Ԍ k3ƪ %iFo_fD9z7 8{wCaq7D Y#\e8p^0ST>MD^cPKe[A$c c ie-ogam_is434.map.gznu[+eKsFx=ؖgd+>.*X ~/٣ @"¿ʘtcZ 9ܲϛnw6'ݲYbg^/~fUz:.pu&u.,#,*SN7 XXL te4K>Ry/*ZL`&W:WBtdlX<dxL.t. eŸ:ؗR[uZ<dxL.u.dKz?$wʌmav L`SDX9֋b[2eyeߜO@OR908888888*̽\+$%”D{<m1l;]] \>|grB¹IK߼t>Xn*h.L' ??.tlfՐ`vB%;O' 8>deay/)V>|GP/}'ڱׅ%{.ɷTj6~=G'q߬E_a >UHH,`˓bd5Xxfwi֥ תOo/x 'Kɘ-:(8O0 &{~ xRFBz<5R {ߡ Jd9M_ٜX|  HEdC1W4ko|Qbs|cQ2dGR20Rwc&id0wྺ}6Rw+;4CMӴ E >GOd*PA΍ݪMP&iddP u:7RwܡJr57has|cQ2M2T#7Rwwh"7YNӾ&&E6'7%2w3whd\ >…x4C3bmpѡ Jr57di3u;5S]&b(r57hfs|cQ2޲j_n;v<>rzfojmZ?όT.M$%5YNӾ&&z6'7%Cj<4Rwuh"MӴ E >Gc PC&FnMPr5709(GɐG:cgFn7MӴ >G# Z/Ѝpk(.JfIȱ^wb# m&B(S4ko| >Gɐ)hY7Rw[wh",i_| 3|$S]{Lk#.L?nPqB .J,i07Rd #z2^+o_<<~WlscX}0}LfDJ3!w:3+6`5N IPua2ZrŋbsW_X7%K+VW9$ǀ ` %Z];ٚUL;E:ݩM߳]ێ w2 dGQr K |Oo.ޯn}|Z{>70`: ꍒ5Yl]aFC?ϚЛ=ѹSFl~42P^.[PB:Jɘ]z?]fGgKIKk Э223H~+Fq]Yo֨v=B@D@%)CޤIݸނEKV U! "[E(\Cգm^oᬥV]ЭAg-YǤ:z^KV#U! "[E[CճnI fz Zv=B@D@%gxuz Z&v=B@D@%4-5-ZP" U4( %EmV¨V [B@D@\LǪoBjWCqKV@xv5"."qi0@7rQg ( H@򍓘:e*TPR2:D<' 39NE;:l:9N Eﺰl:9N E{4yk f027Jg,xвB9lp C86m$ 5l:9NME˂w-)dfNp:Sh}ZitǶG4Dt4| 9/YzP=??|uysUKU}jecķ(@ 7}|{;Kwg>]*~aVPKe[reeir-ku_alt.map.gznu[+eKs8)|*aIN2gfHA6ג萔ϧ_iRlɱUf?(DxV8'?\$o'G^ա̯Ʋ2>x&dloɒ,`Q&c/E8(>YorS{*Ô_3RXٲTmVItφ4^I`_븫Ez޿ `#+#=VD"N\'c.MN<[.Y޻6&0Uz(+x~"/,>ʘު _ &0 Ln3VMX5"a~.[y`EI'U>uTK-oi fh6ffu$ %[}~կ0lU]!l=߳|g™ È'OdH^^zͥ9f8pf }5:s1MTd&d%>7Y}M5]JЁ#3 7V);4CߚZվ&4Ҝ`pތ&gd%dժ5AwtPt@g? ~oHELrM&s({U4dž|;  sDۡ\`R?7Y <:oM^{lg Mg\(%c50MFWMVj_|\s>6`?FrJɅM&s(ɪUko|KsιgC(byx΋pƣ 9KyiW;}sX&)9r"z Wi;/=6YKƱG-0R+TSO >؋1#3/7YcWڽDh`;[M;؋_j7$$ 3j+QG\MJ}֡G7MVj_|\3 'w@>;P LҋJ?MPɪUko|Ks . >fFX] \GbK̡iU4朏 'w@>;QPM,MPɪUko|Ksz|{>;ijP?LjcW ģnEG'gb &-^x\HHXwN9OծV?L[Fu"ͅHu3UmURU`jE`  .)œgUWlvTZepjEp  .)œsgUWc*{^Wm.$DB$lOU]s.j VǮ_os!!"ae;xbꪞsylW[x:q"d  .)œIgvoG *{aWS/M RUߑ_Ea6}KChFh헆G'Tc׊7Uj">ړ֧vJ8tص2tVjOڀNЙc YV (#=iC:i7q@]F3 旙e`f IBǮuYV (#=itFTC#ǮZ@PGP{NS!;v j">ړvJ'\ qھmbȆlf;ߌ:G9vYV (#9i#:i}*ġc YV (#=i qhص2tVjOZuG{D8tص2tVjOZuGWgwmO?Q   XQ^y80`3h޹$w'd19մ̳E̒kzp|}Ƭ猪:-hڄ6MhknxəgY"Z, ]mūUs+Ȉήf/"/>9̴lxXUknE^E'5ۃ?e+w*Q/.X>?O/lZ ǾcmqCSf^@mp%2!grz/>)Orsσq9UCɶH4ǑE9n ~;;QNs6R_&eJS 2"?gd{v{b%wNo3>Uv@LtLuޯCFQr,H@WNb ;zrxҹ}b7osήJG#oEg#Kw-:y)nMm7>|"D'O?{q>MoʴQmա9Ϫo9J, J wsΆ1Άo0i*TPXuFcC +~(<]_'8i`CPKe[/:<<fr-bepo.map.gznu[+e[8S}Ϟcn~؇zfvlzfpOZ2CNJR %dhSu%󄍜Fo8ڰXQ2ee %cezK `x &V*V̕OO &}&m]؞z[bEK+ʃ \WOym*|!N_eT`-*\[i^DUd˰z-_.@&&NtLI@&6UgSUd5e' ˶.]7~7}6P]D~L6n$*4"ޮZHy./*cD3U:[o3 . s{Y\(9BDAe[;A>C353ko*n<>hͭҵn=r\ 5`9BMƶ,*鷺N$o XrV,ll"\~wLsv&ʊi?Y?Z>.pS0K[<5D3 &cQ֡~e9p'AD=qڣyr +bVnHTڕ|G(HE'Y*.^Fz}hY7MR0f~Q3C/rPм6~\Th(nzH=]=!62%7Q愚ydʢ,LE*Kxq82?r@ƦGa_RD +h&U&A Z6jЂh)c <%]h‡hK5M\|;",=6Vv*[/lJDj <'xj@[b  @"oJO#/qvsOQ|;ClM*_m)ZNY +|G`H+.<=QָGTmK5M|`ZxckK5(J 8 MmB7U&|([[Qth|4g 'wD> R3ZŠe%l٣ J\E&w||;"Czz_T  []ǥMNjMxPC[QthtgM甠Qwjv*͒UW^h“E&Ay>334ӧzV2:m +8/X[pimu+Wuղti'[ ]=ɗ“ /qAh<ɳLz]k(6p|fLtQei0$L]b8M$J~qhj$J>L;C~|zkͣxYfQy9!Ɏ&ޣxl>GϾt7+B2BjmtޔqaZRGbE՚ڒvJWpR;RpYS=H-Ս}i8ƒUEz{Wg _nYirs(Ղoϲo}Cз.v"?W:GmTf b?1Q BAŬ`47MȴAi٢EeqZUk ZJ,'cɡ䞓6~=~s? B_t1;P^b)7^UL eS) Y_7w*q*՗V`# Yw?z.mG@R-(:4 C :=?󮨉{i]G>-(:4 ki| ]Q4*MpF/xyb֣ jNOmFѡIН5?5Qw]W 'l)"zG~jK5Ma###K{|g |e/om*d;O++ ; )sKFn `AA`yU8.?3[vԢׅҼ8ـ-Kk}[ r'JW-z#.|޼%TPB}B1i~Ĝ2؍^a5]wpM>ʭ|*D;M;F= &|& :Zl;o;dC8æ%yUU{}V}iAg"^CձnIugV iAg]CձnIe>|êՉmMiAg]CձnI{}^Um텇Lpp4Ѡ3ٮ-2 oK{}~USۛ2!aD(4-O:Zv &S1y _珆&V:chj/`3~ݮT! /Z( ILp ȳL?߼cv+bUT.@K t@'ЉG#%_Zd'Xb;#]{#-FV:]@he[~~i0m"HK)&qDVV~~ fg)_1pN'믑/~GErޮ>6@HBo2*gx3d.6-[TCNY\ā.=n_3~!nÍ57_: tŎKoB%9e-_t.YQA@@|aFr[!~eu “]3ӛu R!C$ 9q . ֫|]7됐'x}-YeeQӥ?4_bj̣x)g/[,5M=J6>|"D'O?9Q[N? 4PX[ (^F 8s8 ֜<[g/L _ ~X alPBzdՊNРAveUrm1PKe['k44 nl-std.map.gznu[+e][8~_S[en~؇<3;l&=tafp_BNbs>O:жw~틋7ن\8xUў.ސ2Q//\V0r^e;|hJpp9+.udqyl.D+?e\pJYT88Uue8.D͉HvM" oGpGp \\sN\c]٘smiP >>S碹Ez6|nOa :W2W9.Dm6H>s%Vh e B&k&"Oٮ̳T=,'<>H_'ڼ Pc1Fc܈kR^p-E:$܊fQNv)pG1i'M??Z=ɐ/yr7R'O>|"DQ7'9'<1\hYQEߒ-~~#SPnMsuA,/HQ'*iTZjX(Mp Ed9EY`( |ܓ]lH*fjL6IFڢ-ڢ-V%cx^}wiGmѽ/__=*]D;8sqdDe4+CƼ MB? /F䧒aX'P XvԡBˆ}!M~#Sp!<ҧ[YK!;EmhY%؁SoY "C<ΥE MB;kv[;{v:[١BaCFӾ&Kbdp)H.XvX !cCFӾ&KbdP ,:4C6d4 o,$?J^w.~<7B7yE-jǮUwvUV" U,GeCf-tGmr]D9RMO\<>+HC 3s'ymd:p͙D@DG"*ȝ ڜ _[ɇCP >>ᣒ=(]@W!-}z@|zj=U838ePo*Yӕtu2o]OQgw=؈أV}QY|*TPPUɘ]9?.+\i\-ֺV3LhI9+NWnUFJu畱:EVu;3! "iR\ѩMoaո:eUnc&D@4MjR~j:jzkW?kJԟ̄IMJBnUMUG=VWXv/8fB@D@Ӥ&%])+՛UT纝3! "iRX[USn9UTCNLhԤ+VYMoM*zu~U N-4IIW-ޚoZR]voȳIM[ЩSa3838Qx6 װQAg3S8©:i xA6 Q)T!?i缠]6 Q)T ~>l_uĩ &MM%|/GFwg3S8i}.fuyA6 Q)Tma:NI+~ўvi(xfFp:SuҊ_|=ϲݾ  !芅QQ^}8Oh.޹Um![wĶy^(#eܖ8eLE\ˊ(7kdfzYAb$Ab_6Hud!rA{T5}@uuaU7`*qqWMf"eJ$í-:7`*qqΌLs%(P|B;ufovIY~g6:R>Itg)Ϩ4gl.jh8Gw U%[N;qZ5>|"D'O?us"U2TPiKVK_ :4m 5YZD9R o3P@fk00C;֯B ȪG>4hоc퇢̓Mq?*PKe[L$L`oolv-modern.map.gznu[+e[s6)^Ea$jMix( D|/q`PbɱLsC@4 aT'? [˧ XrT, e_0y<6? Ten껂+iݲCu+KPf#fC_p1" W%!rF*\? `#+cWFK3lc>/uɵyX< F/y|.fvm[ݐ2#z?&0٭DU#&bg-VuY,*,/ҹObq+;:Ojڨ6jj O}?ɌZ[9uW䖈,鲹C՜2Ȃ\NaxD ωȉ#)76pS./jפ̫kwMMލǶS@&z';M>D),fY+(sdWtd*F{Z VuGQwuGݏޗ?|cG"NDLv=0حz-vYU@Qs5GQcqS ^ >dvj^IYeEI5!EZ]90eZW\5u,iѻQyTGQyT+՜_~&C.y7Nżě XrT,ߑ[6MwO\cz}M=^п;v эN;).؃_ gug]pqGs!3XW#Ŀ]U  .I$'w@>坑 R8`?;3Jx!72erchⱇ:!>qeM:/V;#,|7S&_>O?ߐ^ė |e !)ߧ L01 8#Qw,S! !m s.%{Y:(Ux&Xz,݉|$_ISv}EKXE;v(R&x;CB R8`?;HW|J\th˲57>%9)ȧ;XuND)eb˲57>%9)ȧ;C,X4R1_18Xu>Np/Sw ^bJ֏WӬL:WK{[ ͫ<7f8Lur yC&vԝ=Q&vCBBO 3b#~dI:8eYEKtgfL%./T;4C]U  ._|; +9d˲57>0TҏFBUb˲57lp( >Owz\E C {ݡB첬}M /mpR. >OwtڛEC ߗuQlқj\='8 Ʃ;ӑz#Va4Olyo:4B3eko|KrR. >Ow8q;o҈cJ,q١B|vYVѾ&'$'咜TgrA#{ۼ1Wd39X &0`G0S&'^3<2[/[8ez+鳼:_̥m=mw%PTUAUPo_#Cg]5RLucWpDE&ZSuH+ u3VY*r5ʪuݨ*Jġ*4 d, qrоuDuu~67>5V\|; 7~1a8%$b\WrCc1˲57>%9)ȧ;C5Cb$,F0{_gX !޺,h_| N%9P͐HFɿ)uhPBMۭfXm&p`|`)2ⓙq"JSuPB)78Ĺj-S|;6_/ OP@)Ж7EE=,S.nH]V@;F4"E4F@T';@syX !벬}M OpIN%9P}d$DL$9>9mnҌth,eYE_469ȧ;@cHܚ'[ϬX.*̳b!.HUZ`hR30[ẉg$iMM͟,`Ѱ&^Nuc3~tqÆ#?ۚ_o`32՛GC=؆!3{".tcnqP{V@ P yorC]C *gTugLG*OKS rnA|2b#W5mYhgF9#kA+҅f -J5`[" YQSTO)IKTC3 e! "%i8m&zE^KT#3e! "%Q7mok54ћ-[r_- ,(ȳiT}X6[JudSmYhgFIGMZ &zEaKT3Ke! "%4Ⱥyj4ћ-Zr:6,D@t#ΦY7oC Sf\N|o- ,(l@VVè O Zr{fE\E'ՍeCBgqΐ-/'XX.9n|YzVCh%W ̣˝OO?K7JWg0+r~_Ek15Oe^r4k{""q$u9aE'yGR?yaW3}9wHZv=a8>}cf\ I޻n7JLky<-Jv'gx~N鄪V)ko Hg}&lHtT뚈u}ޯjRj/:Qr,H@WN;-a 9KjVW5S6 hW{ٍ3333333gDߜ%hycj>8u՞\:4c }fQP"E:h mz Hp7jjf\ I#zPBz`'b 4hX|uYɺZ@5PKe[.ch-legacy.map.gznu[+e[w8S}Ϟco%xMp_/,;sU~ ;uWz;5-2v]M&lup \X7cO&8".^,YUyRb{Db"JjtT@;Ơ1h c9Xpߋfu37\H㺨Y6SzSn7B=2b"`gd-f墺Q3VVU-A RI5ckx.X3y臻3y.]-+/x >-D(8':.'&=)#L8f#яzG))hUj37<d76XI酾MxW_mSt 3S\siN|4N`GR|ϧiSb=ě6j`x1w<<W#%3Sӕ D%>YNѡ&N. %@t ~jQHJ/VqlpMP6):).ɹ4'wD> =3& k{SFxB7h"mCMН4]JЁhd"HA?{4A,Pt'MEt{: d~JF0_wYHs :\85ap|7=p C *^(INMxWmSt 3S\S?rN|4FϱRrfG1xf9E;>ͥ93f8#`hf#L.],+:{j4.Ѿcό,)3ELQ)iFEJV-*jf iF] ՄyO&t:D %.,P|g4fE5CLID %~lCMҜKs|G ' ZJW~GRn \|;" ffXFh*7xX9c.Exo6K@uTab@PeEEWԟ;TMDP)=+dNա&p6 gK0}G%Uo0*D %޶YNѡ&΀/L78>>C-~Ir*g/&,grʢ,QeUY3f S)1jx&+IY6Au7ìUF6spx>bL!)4X43FHd痪_}wm̙4b )-L4X!|?=Wh$_Z;ϴX.'[*\E^>|G׃!@|,)#0b[Re \forf;@AhP13WhT}S]abVomuCFhFt17y__[>ľ\W?70`~Qk>E^c;ߍNc.V|c?ҷlzUS]AlFƦ߀~UEz*TPQ}5Ă?UkKK\ve! "e:e ]!"Տf &F?W" Y)ZݛTn`ڑ]YfQob^6]գml#W͢NdlgOzZ|/ڕnuJeU=`\V-;r_+ ,˦z1Do0ƻ͢NLԽ-5ZdW" Y)bWf \N|o+ ,@W} A؄? ZFv՞K z)_2 E!C$ y$fp7ҲsY|-?EU.vU'5ݥt @#48 8]4<9,~[Ţ))C>os7] Bwq[q O7[8ժGkW{.".>8.uf,zH_zґkv՞k:7* Xg#}_YfPi׵(/?>7cH']|N[6$YZ+/ׯu6)7++ھaN#ՋoVݬB;%(Vf_j}|Y.Y;LW+k g ~`" {Z$"5U:Y7]<.H@gNB |u3z+֒,Yrג<ʟPy4GȮ.gMoTqv8ԞoBߴv<ŧEcxٚ3T{p \ѬwUycyVoOӻ~@ R ~$ wΆgùo0*TPYFcC 3~r.b]j~KPKe[~eetr-ku_alt.map.gznu[+eKs8)|*aIN2gfHA6ג萔ϧ_iRlɱUf?(DxV8'?\$o'G^ա̯Ʋ2>x&dloɒ,`Q&c/E8(>YorS{*Ô_3RXٲTmVItφ4^I`_븫Ez޿ `#+#=VD"N\'c.MN<[.Y޻6&0Uz(+x~"/,>ʘު _ &0 Ln3VMX5"a~.[y`EI'U>uTK-oi fh6ffu$ %[}~կ0lU]!l=߳|g™ È'OdH^^zͥ9f8pf }5:s1MTd&d%>7Y}M5]JЁ#3 7V);4CߚZվ&4Ҝ`pތ&gd%dժ5AwtPt@g? ~oHELrM&s({U4dž|;  sDۡ\`R?7Y <:oM^{lg Mg\(%c50MFWMVj_|\s>6`?FrJɅM&s(ɪUko|KsιgC(byx΋pƣ 9KyiW;}sX&)9r"z Wi;/=6YKƱG-0R+TSO >؋1#3/7YcWڽDh`;[M;؋_j7$$ 3j+QG\MJ}֡G7MVj_|\3 'w@>;P LҋJ?MPɪUko|Ks . >fFX] \GbK̡iU4朏 'w@>;QPM,MPɪUko|Ksz|{>;ijP?LjcW ģnEG'gb &-^x\HHXwN9OծV?L[Fu"ͅHu3UmURU`jE`  .)œgUWlvTZepjEp  .)œsgUWc*{^Wm.$DB$lOU]s.j VǮ_os!!"ae;xbꪞsylW[x:q"d  .)œIgvoG *{aWS/M RUߑ_Ea6}KChFh헆G'Tc׊7Uj">ړ֧vJ8tص2tVjOڀNЙc YV (#=iC:i7q@]F3 旙e`f IBǮuYV (#=itFTC#ǮZ@PGP{NS!;v j">ړvJ'\ qھmbȆlf;ߌ:G9vYV (#9i#:i}*ġc YV (#=i qhص2tVjOZuG{D8tص2tVjOZuGWgwmO?Q   XQ^y80`3h޹$w'd19մ̳E̒kzp|}Ƭ猪:-hڄ6MhknxəgY"Z, ]mūUs+Ȉήf/"/>9̴lxXUknE^E'5ۃ?e+w*Q/.X>?O/lZ ǾcmqCSf^@mp%2!grz/>)Orsσq9UCɶH4ǑE9n ~;;QNs6R_&eJS 2"?gd{v{b%wNo3>Uv@LtLuޯCFQr,H@WNb ;zrxҹ}b7osήJG#oEg#Kw-:y)nMm7>|"D'O?{q>MoʴQmա9Ϫo9J, J wsΆ1Άo0i*TPXuFcC +~(<]_'8i`CPKe[2?EEus-dvorak.map.gznu[+e[w:^9b.zvOsXI`N"5ix*"Q$ F/rClCΜ*'et1 .p \v=\sX:G(/ kFSw,`yR,\ɹe?3n>ؘKƍlQWbcӗc3wsBEr`#c=Wr9b>/}έMQ>^<碹18BqɝnI]9n0 L`vsU(9r!"NxL׆~WυK9.8Atb.Iru]$yR Y6 l'{gr[ ~9{GwD7a!v6.%`+X֑-]?Iis5V>|#P. , ׆\Σj;CyC'88d*kpïq$ݔ >YSU`%8F8F8F8F8F8F8F:Fb.|Y]pĞ=V| %}%x ^>^5դGk;8$C9_E$"9)w=%͊Z $u:b)~]>LzU7?b $i ٮg-&ζ[qcJԝ7 9WVHt^djB%9syK$KPr$o!`&WΌO2KjoD>Y=.䲡elʨWo|.dp>?ohb1D)j_ YFS[O Z6X ͦ}%&g|OM^=zkh,X )j_ YFS_g芿݆G2KjoD>5㆖;2KjoD>5+e.M?:,Ҩ=)DށZp: d ;LMn!9$;o}qN,OEM6teGR=_`;*dOWȑ#^^O^"c/.M8"{fSFվ|pI >ȧ&C"C9}вYa"MUJM%57" Պ@@ -+2KjoD>5+2B -;,CdlʨWo|.dXȘ*ˆ>&;xN6Gj{`T+|oh97.6eT+7> ߈|j2דB@.7y_7|pI >ȧ&ðJԁr-;,Cd۔Q,\R|#pQ_4lX fSFվ|pI >ȧ&CN kh٬X ۔Q,\R|#Փ?OKmKC&݆Ew1m r(j6~G{DՇ#>3 Wyt'2IzYTI'y߶gf2|{zޠ7 zH{>| Dt  ;Pr$?haِ-nNݍ/ؗO!vv 7~(ދ)"dY*={ɿ^QGtNCώ/ڔQ,\R|#P(1]#lxwzXH .p&zE\>brX)j_ YFSa"0kECf_;,Cd)j_ YFSa"p.^z -;,CdmʨWo|.0PDoЛ_q'{1|~r& `RMV;P\^ -}X ˦}%&g|OM;¹7lva"æ}%&g|OME' jhmʨWo|.dc5ij0;~xO6`&_/^k `3gAɚ@xئ!3!}cÅzMLY7؈=jl5/<}w.o`„ w4dL^9?"KɅfيn^RZ˙CEhՃrN]._UR; [֦^N,RޑCUtêry˖Rizz9*B@D@H Jzgޚ.ZJԟ"5(zj:2e|T^N,R)]+ӛU-ҜP" EjP;VPucezN|T^N,RޙjxkVѫ[J˩š"D@4Ԡw%ޚoZJ˩"D@4Ԡ\j?(yK4^yvKqj0;~oBAf8-H@\BzGygik_g_.ޓms#JEy61lt@' tb@p!OPi#yVI]HNpNZ Ц M YHNpNZKЦKM YHNpNZuGq^k `3gAZ< kHAg5#S8©:i xB6)T!?ildF2ʎh6hj-sxB86>; Nv1'մՌNth{\}sXRG'T_}4Gljh8 [T8"8"8"8"8"8"8"]RIe/[KZ{KW,-Mwkr_HN U 07N}Ά9Άo~E &L0G69)`[e쮊8(vZPKe[1 cm.map.gznu[+e[sHS}jEBz؇$vIfŅPf(/}M# \Ŀ*t?}Ba=y܅/tOtK.^̣ޒ"en~y6VN{|pwJ,gROUPCda>O)7¢aEn """bQM_Mg2B݆dy| `#c+2Wϛqk&I <dx\h#{(9(2"/Y &0 L*W2W-X5'z,M<(΢u "?sGKa4T Ky3Eŷ|$ۜpW~;p >W•̅KNP%o `vBz&݊_P>='l`NhPΑɎ_z(OLeZ>o$> (.|~c(ua-@Ҍ|*= [cIl nz(|8⾖Dnɗ XrV,*Л.IB bCY̵6w/x{&*ӻ~ 7G6vq DoBNM?>X̻iSF׮|pI >ȧaP%@@5-}jX Q˦]%&g|O%åL9yMab1DҦ]%&g|O%Uuf芌ִX,۔ѵ,\R|#'Ϫd H尢b1DM]JM%57"JN WrUrcb?6et*7> ߈|*U25-Z,CT۔ѵ,\R|#dU?Ljz}O̫W6rGjWFi9y?lUo|.T2WӬ將;2vKjoD> q`c֗.o0'z]Ac=^ NpJ=s~_~5̿"6׉+1֐^=ւ}}}}}}}CuCzOCWrz+J`{Tɞ&VFzzu xԴtX,M]JM%57"J(OմX,lUo|.T2Z{U}mbҦ]%&g|O%CuB@.jZiX QmUo|.T2Tw}AMa-!ٔѵ,\R|#dX݁X eMz ~/|A&g|O%< OXo=!d{`ǫӞΈ#5uJf;ti/'- !6et*7> ߈|*wD2i9,iX Q)kW YFSp% Gxa|dGiZ>o$*3 ݀Wni^f؇;CZ&/xτW%cG$ŌU1N<(΢îq= sEDVɖ6Qh{[V`+F Ao (YF|FG3iFyw_M˚̎opsjl/ۋb{UG>lִgb6et*7> ߈|*w^;˚>X,mSF׮|pI >ȧHX,)kW YFSPݱ䊌ִiX Q=)kW YFSpU%C4Rrؾb1DM]JM%57"_ 7)$ۚ>/W\Y֦d̞/daL`!UwJ/ꡘ(m SW,`9+l\l,1ԋt5s@8OUHX#h@3QGqpC]^ڵ$/M d zZ.dW~wC|~ f0Q5YR`@>WA3O;cZj@lFQcN}Qdɛ7it&L01wfyktkxACkVog5! "TMt햫|Il,oZz;kB@D@IMJzNUmz+ Zԟw &5)镅r:jzk,?khS&D@4ԤWܭ˩htWerVivo~ &5)br:2YZ.*ͅN-5! "٤&%bm]NUG;=VZ_p &5)Ikzfzn\|UK[kB@D@IMJzؚ"魙V\yC4Wz;:քfKv@9W]'ez~~5hh3;0*{+".WMfz%ЯT2, H@T%W4]EY$]-٥#ߓ8/H׻]aAnxF`#lĀCC}|{7S8©:h]~.yA.5m4yf,gx^sP6|.HTA$D:HZ.+*b2$ N 5jӫxѻK<#ὥD?꣑N?x{۔E39zPk~J[=======:9?ƥTR๵up \jkUϒth&75J59rhXh AW0a„ sdSΉOY )/x_!?O+PKe[qз sk.map.gznu[+e]YsH~_/Nlo{fxq (Y#pvϯ_K-n0ud~A*.&u[5.v\MGwly.^2ee2q-EufMV]+r,ZmPPmUUkb_GH<% QY:GRtޤUUg`-'|ږUeߞR\< /@zZdcW VVMnn=dZ 偌qG O%̆+ڗźrIeYNYV^^=:ͿEG ѝINEs DDƽS|w8-ӝ3>T7PHB IgUG6B*W6\p\8MBMD}A۝Dek6HkT+ީӄ7<;<Ռ ^rSpA>ؤNձ"Н4U(9E }3 \kClRX%qr\'`f͗fp9MC\kAڤNձ"Н4 R(~ ~'{T~ͿZ n:UNJ@w@:{t:yC\Fx}XJg40n mΟ+9 sלKaLh2S1Z&u I\g2S8O@(Arbnkm&u I\gN#PͨY4Nvm_悢MeAQc<9\Tt#GGߢw'^|@KR%{^fͤ0,h;vTڔW g 83^֫n#+`g.lPP*xj&T,fb&܏oƍك:"BHNemd8vm8Ǟc4cp :ojzF'Vu6w5&ȕMT+ީ$LǙjfT̡}Zm!kԩ:V3'pI#:SBPs[C[qU4>u粩swր#p8 9w1]Hg;9刡r%AL} _֒ !rcE`<3\aF`|B:X=ď@<KqOxu?7|ZJo լsOX` ꠫g|2\aւ '-h}OZfbq0ݝ8z 13?zF6q{5pS^@^@&,m?Q]zv-SO生(SrJߴ;FyK9j$x.$LHXn֬S96vlh[5 ! %Gr'KIꮨŭλH$\c1A }L,r2Xtdz HSYe_7}jf`f`~VMk>SEV8C_ |21Ik1ۛ c؆m>mWu~[ķ` YLKΪص%?T孾]E00-RrGx_M+i֝6zJks}"ANG^jtoͺaS9yOd=v `HwJ>b骎OzJ%\aES򑍗MWucͺzsNOd v `HwJ>R骎xYoVw{J%;5˹"ANG]6]159RɆf9*An|d%D`=S*ٙYv `HwJ>B?"m+~S*ٹYw `HwY;x髮 Eߘ篆=u&fVe/]؅՝uB_X0i $@$9\B>*.,W/ت(ݤ|t]jt N 8'뛆CCJ}(4N:9\@)Bh]hg3C$daZ'R(=R}zt)MI`NPz颽Z/2 +z[/Xm A`-f)F|C$t;IJT_ShJx; YIJT_!]SJxө!w0X@)BhgtѾHIx7]dkgmMw9u>1NB{Z'R(=Ru&tѺ!w0X@)Bhm3NBu(C(=7r'! : B!V|~OϽ,;Q  QU_y8 @# f4{zHĥ]1vi "o,>~cNȖ(vM6 GC-'V|50 ]7Jq F#^ ;3-w0?Ӭ7dzJ׬j4쥰 `3;bŐ yĸw"*&jhm}\eK\#%X:aKFs߲e=&yR@zz|H k69 3F//b ={]|ɑ yĸ}-/}Jn@34?f}u;|y lU|fcH;}zc,%ջb7yJl1C wD4=?jM_M$PɽMbqV|l)}Q}kp/r添jM@5Q͗Y[MjwFjJKxk(Y>]()z9m~HF }֤ou*2LNGy'EܷʞRj2؂jBy<x3}Hc!b>۴d+Ϳ0"a5EmkK<'H>JO2 ;2O jV:fp9_+Vo;-%CePTAeSe5glޕ+d"_^i#`_VivlYg6l`uu$dU'>3=zʊm٣[yW-[@^W0TGQyT?^!60ہ@j1\(OV'x~rϙ3LL1TRĹя &?TRowp,^o7sli/}o1888=A2hP݄r PKW)w<4:UA =6CvU/*ꢺ.~EOf~tqth•[w5 ^Hx3K[7w 4/0GldD/c;4Q| \3S|wP> & :V 668vh‡YNҾ&NOsi,634eG .kI SO =MxPr5AwtQl(A'obmj.%SMPr5w|KsfƐz|303՟7o>I i.͙3 >:C3+(h%gj{MP?>I i.͙|; uC_Ywh‡,'i_|'4gr|0T)23x?=wڏeg8SJ ZDJg9I;>ͥ9sl|;(uVP \}Dn-*R|ZqR)\4/&*Ѐ u>|X\6[o)+Y5)?i3m[}G QC5D Q . x˥ily ӎXQp^,{I!itTLgώib3B>z]BXvh~;< v`o53`nHHӓ3iZ!n_s&:%鳜}MJWG!Qc%g꛿9-X^uh‡>I i.͙ 'w@> E&uC>x볜}MҜ֋| ïn6 gpĹr5wx`xOG ͼQKDzIŞMPG$k4F|; ufHvox5N?k)~YNOsi|`8QgHPZ|fQϺ#ͥ9qQgH 0{$k4>:C퐑UHW˟Mӭ3DDj^]8H/) @$IEfFl"O'[VflU7TuD\l .puLԈ 9b$vhR!b1YiB>z6UP4)iUr^llGNvHm ٙ'2\,o|Є%%łU9`<181`wdΒF|cs+`dMxPR\,m:idkI!)H!)u4R]-:S֡ JYNҾ&莚. %@t퉚P)i/>IQ#C :=u~4]aXG&t:Є%^,'i_|'4^ 0|ΐFY ZifLkա JNҾ&/bx3`2"Spxo(j؎卷E!¡E;Լ-5O-[b:yymQppFQM[ZPH =44jj0]X_}_j|$Я*d>g1yApӹ$|DEVLqq]|Ey'Oj?Wm&Ӛݦo):*J*Gphr>"~J, ^U|ޝ P( GtI;:l':9 E(NPv3PB餍I{et^]f0^KZɀ;, 3PBɓ6[Hɜ}J'm"Oڑ x֑e;Й P( GtҎI*ϵ9]7j|bvټ;9 E(ԜK5 0`x".F#1L !DZjZrf7֧x'bsǂUԮJ֬4uriDP' uB^rb% kh0tEIKVN Jvc~~1eH GXfh'%Z h1zb Nu6~~aw"-*]&Co*yQ$^7?6COGj]|{6oYV瞙P.=lw|_];?,of97V+b߭rlYgB;(Vfj}|^.YOQSLgw'XYC@@|aF>[_X!oxdZDnG :<&/H@NB F4<=igFu<뒥7ӥ7?y~q6RU:O`_{2my#B7'j/$?x=p \Ь*mEciVko۞f Dx!a, NwΆΆS߬!i}D*TPZqUAk?Tu9_]Ugiu঄kPKe[-*]c%%sy-ku_f.map.gznu[+e]Ks8ϯ}kė(8$xfqqds- I%%T,)Un4L4) "YUWz~ẙ)vʒٟ'ur{D Wor tH1{R&_yxj% kk|t阽KO&t~j`&`ZP檀p(\JbY6<2[/uKܗDd-rHIYwKjUFԈQ#jDVH^C'if63>+%|rP梈$6l[?,"eFa jb')1II*YNV\\QrH沘$N%ą"L22')F잎 ʙc3G'Q* xL{ad ;*L;V00s2)U>'cN=o_\.N S|JܲvK5*bCl2(V1"6Ć؎,I.n";/: O'؁؁UɞՠGU2ԊX4t 9>Az Ԋ" &|%פ YeMg$թt&SM`.NS=hJa$<( $[1ۂuIVӾ"Н50R(NN'?C.)Jz|,n"qK";U ȍKEB t@wt:wśCs*IyKхB t@wt:r9_tXV^UQSfwEʼ'b.Ղ2((E'@&B$3$m:co"7`L||w$|:XK=_>ܾ_|5"_o[ <ԚNtyr}2;Mҍե*v+[o>o=뺜}Wd` Ntk*`jB nѪZSR!¡RrHgN*ԍ4esbM=R!¡҃Сj oqӸ9qV]*8C8UzPfzzx?j7G8hJ64^KpJJ:Co Uϸ=֬?n7Gh%zj/ڥC8C[%)6igk64dR!¡҃X4C3n5xdcSOŻTpph3&Yo {saV#SOvVAIgM-_#ZzjoKpJ<ЌUx lӟ-ZzhT dz0ә@|bW>S GKLg4de17ŗdQHr#gNjYt A  닆ǼסؐUyw3Q=Q}vUpͬFaFIv ulV=t6 C'mOڛuZIVoЛVa3030?O/x7[ $4dfV0z6UpͬFaFIv uhV=t6 C'툟SIhV.o{xߘ>ԌgVwg3Q=QuҎyAlCg3Q=Q}Ҋ'/h{lf0 0OZD{ u`V=t6 C'x}vًy]SzNA' :]Rշb}  @p"A_b/@1ɷߍ%|${Iu/m+knsRU+IR ib3-7ziAbBL%Ǥ/Vٯހ>X(Say+/1-rz-yk3}}6}̋RuK]'x:cOkޑYݧxCRܳqg3}1(^ 7psnQD}8/yo/K(Sak-o'EYa XSZgGHY|bF#YIٮoxFXR ]5qaHH^8\/X|!((Q>f!YWQ.I(Ϩ4GOoi3Z V U-K[*_5>|"D'Oğ9}QsGNM_ :8c }j^XDy1_3PR?{ggåD,X`Xy1~2_UWIu:KPKe[؍ ch-fr.map.gznu[+e[w8S}Ϟco%xMp_/,;sU~ ;uWz;5-2v]M&lup \X7cO&8".^,YUyRb{Db"JjtT@;Ơ1h c9Xpߋfu37\H㺨Y6SzSn7B=2b"`gd-f墺Q3VVU-A RI5ckx.X3y臻3y.]-+e3Tּ֝"jaVv=~]o%;֣h=Z֣'z{?B:CєPJ2Nrj3s.ɷףh/ڋhm/]H_/2dI<,g0}Q5qoqͪzQ~zt`}F4%]z9iߔ'EY/LMbw.&|RUnSln?%z}Bw5 ^Dxi0PKf;7Q ơħM cOH. $HmQJ.A̍%DA" )@b-͠2VtRz$GޕWj \|;" =Ƒ!rԵX&B(M8E;u026^ <#-gԴu){4AmSt |C :=} ad?8Z$868u&b([j \|;"  ׷|# #HD)9WOV3zpߣJoCMҜ3h043DD38ڻlZD,Mmes"tsg }`\ ]w٣mzD`;i`gZݐ'`GZDMXF3SM 8JhCMҜil8#`H3TVL~6YRU&B(qf9E;u“h",P|g4g62h0Iv5T=u G1lCMҜ7C 3% G1r5w|Ksr. >C33,V Rz>r+Om7~|g4'Ҝh043b/4 FS!Ŋv){Yr C*P/-X/ &%qzB}ףJ"EgeVө:.p7q6p piooF=6):g#`hX^Lu'2YE'Y6Ue3EgU ơ!#yLVJXm7Xoj3M!gw:M`<T1}`FF, !노n!yʣgr\.Yue4ƙJcU'U5u0fE'.V9x9t`fՏTV7}_{4LgG\ͩ01FS F0~GF,IH~4StңJ[%5+[ PgOM 1HAIip6jP K15`i&"(r5Awta`(AG2aG^*|D%hCMН4]JЁh2#d̤qz֣JlCMН4)AG̈lV=įmSt 3k6wD>3FHd痪_}wm̙4b )-L4X!|?=Wh$_Z;ϴX.'[*\E^>|G׃!@|,)#0b[Re \forf;@AhP13WhT}S]abVomuCFhFt17y__[>ľ\W?70`~Qk>E^c;ߍNc.V|c?ҷlzUS]AlFƦ߀~UEz*TPQ}5Ă?UkKK\ve! "e:e ]!"Տf &F?W" Y)ZݛTn`ڑ]YfQob^6]գml#W͢NdlgOzZ|/ڕnuJeU=`\V-;r_+ ,˦z1Do0ƻ͢NLԽ-5ZdW" Y)bWf \N|o+ ,@W} A؄? ZFv՞K z)_2 E!C$ y$fp7ҲsY|-?EU.vU'5ݥt @#48 8]4<9,~[Ţ))C>os7] Bwq[q O7[8ժGkW{.".>8.uf,zH_zґkv՞k:7* Xg#}_YfPi׵(/?>7cH']|N[6$YZ+/ׯu6)7++ھaN#ՋoVݬB;%(Vf_j}|Y.Y;LW+k g ~`" {Z$"5U:Y7]<.H@gNB |u3z+֒,Yrג<ʟPy4GȮ.gMoTqv8ԞoBߴv<ŧEcxٚ3T{p \ѬwUycyVoOӻ~@ R ~$ wΆgùo0*TPYFcC 3~r.b]~2SPKe[-(( fo.map.gznu[+e]Ys8~_/K3fDx~l\I)őݍntP&M{X䯎;=y.])Oޱ*: \\ë\ֹL&HH$Z5p̾Yzj% kn%mTt r/sGD"o0Iez_ 0\\".(ީk|^<~- 2HwDgE8LLuU3HȡN5 1] zU.\6# E ׅBdkبcUjR4@4@h*-d" -6,ÂݱjGjk&`&`>zND&QwQt*_WExEPXZ+tm34mtu[vvG{GOȋ?M7bSԖ{BL c7a̬߀ k_E_W_*x5K,/^ULdVVi]o zxUoj)OhFéNuF>caaSuLGV&n"=n_ͷ˺}'JE[͇ 'W'c0y4mG`qN0L|Y_7h@/I#z~඾2?ЍĭO\8 $1>TR tDQ`>pwA&YCE;|qI|ħ\&i@o NBLCe=\Ao,ӡ"Н4:?P(莀N'tEƦKL٨|h,ӡ"Н4U(莀N}/ z-wV=\C$t|gO8pNJ /r0桇k"62*I  %'b;d ~\&YCE;itAPN~z"/xY9\R"?I=\npB5j{ :'~kpwA&YCE;|Ǹ'd?&&jkbMLw$.-dV0dЊ$ Yʴ$1Nx@59O\'{2Z^&d\Y"aaX%e +Xh_YUbNۺ3>읢N|%=?VVLgIB誏k /$t|gONzeM)>HkBr&YCE;uxtT+,b /bղY51y&YCE;|i<>; > Mqmlv51YIP%q:t2+_}HP kbcd \'%qNjt.@u\ڝ;6+73'pI |w@|:/S'5ɢ!Nt6]kƒ]LD&m[$PBT@5*JsǛӦzƻ /D=+pVӡ"6\?ڂ IX>od=\Cme:T3'pImNj& SZgl(cT[>KxߑJƾZ!s-&sZD~[&s0}Ʀ:8 yYZ+Z}@atX31%^+j pMA+59P c*Nz(*k"o"7 "X͆@zHB @ Wf/3 Idk"ML@w|O:;:ʎ7ĉO=\A?$tt'.*@tG@^Q!7Ev cBD騇k"ML@wtS+(+ ,{& IP_ .)JC~AHl{;w6j޵I2wIbؼE L5t+ܘޫDbK,S~|5|lyG5P5Pj]i*G3|6~Y "Ղs((E'֯b.MNXQyڪD Ԧ던߸1z1zz/>֌|C+٩Th3֖PuczN>|C+ٙfTh3Yo:z}~VsSwVAg--BZ.L=إB@D@[弙i]:iTsC kfp c8'G' taVAzͬNt 餽DUˏ yF՛Nl>itT![E5 81vF' tjVAzͬNt I"I$XuȾhgM > 1dkfp c8U'|B'KoUP^3S8é>im 3dfVp:S}Ҋ7*xӉ![E5 81V~OϽ;  aY]u8 @‘}1=w<=|hdweqMGJ5MŠ$XVkCMbC?ۮBst}OPOׇ?JqLƣQծE\E'Ճ>Kwo0>FYo?Z=Ъ0ix4ڵj0;|PFq6߷=DyX$::y5 E/?>E!JDBd.&-Y\/֯q6)қjm0EAu|lO^(P|8/d/M^EsԍS3<ӳ>uɊ c4*ĆfvC "D$5No|ƐbeK)mH;G f53d-˂w-%aBy\>z8; U5K[6_5~"E/_ȿ9 ~~JkQsVP z8c "~,P< mz (Ϡԣ ڀ|ll88f Y#;O=8p}eU",/6&~?M:6PKe[>͑tw-saisiyat.map.gznu[+e]Ys8~ϯVDaryfvL<3{( Dr̯_" $A[J Fhޑ/xW^Lѳ;%W»2wd8yK#dŤ1V8&,<XX&2{:gҿ3vZ27է3qRјEPY\txۂw$ElOF`F`\928:s έ,h4h&sSO;usQd)NS LLTW7*jȔ\HN"o,ȷ/mUu\&iMu CS93@4 ``00T6-eoW^Sjt ֊L @؀({ uHƎd~lx Aǒk Kzb)lzIa^kνN-uO~;q i:,W#ȇTno 疖6?Z߿gC,` ˪zUc)lr[aKV m-9N;b tlٺ%#ȇab9r[q6U{6`@o&C#A!y8ѐ:M|;aS}}A%2jD&4|K8,7#dʭ; یS*hh[*z2N8*C]N.^]^_ȵJ}s JyVIKӵN^ ~pOܿڤ}YS'p̷ $U'n5(:&Ert$fz8C$U2d8p64,8M ñI|#'qIɢ |wF|*.;C_dlF=2] =!{d7|S_pI|għ޽5ia(@L,Z,UbM2L]Eid$N3Skm.8(o|X Ac SWFoq2\'d7P-?ԟs~6p=!60uo.8ΈO%àEdP,ٜQoٟI9&<Ѓxg'ȸ4x:Zak>y&yy60uo$.s5opJϴɲٮc1yg SWFςK|għ| LsY \]zW pd*߉;!+b˃Twƨ!,ڽL`l06 uCwH'վډlB}E؁؁[E0Q :>$5gޑ,]=K8;#> 4qgȩ.Up, ?$U$NK>;#> hb$Ƀ^:sO6/2dؼsg&7閬 Yu18M:t 2ppdּCg&O{Yc!&"ΈO%CDd#RPPñI|#&:NK>;#> ;tՄm%12XxuJcR2-݌X$[M.l@ @$79;Ze >'@}E\X"ef]^֟[b@/ 8s/ԇ'NOp7EQUՆ۽#.4M"oZY@Ǧ:OE]2ozޠ7 zH{>|莫t]D9R-@o#NbA8+g [Gb]//>_x>oɲ_=%ma*YpIT2T;0#Y6ñ&"ΈO%CKa J$j$=!Kd7|ęD N3Sɰ1S[#Y6ñi SWFςK|għ1 ɲٲc1ya SWFςK|għI4A:ñj SWFO8W^d8U6Mk̯xM10 sL,0 U;|O YM|&f#^9|h% <),*2nvyIP3;R8 qEvEC1 <50*ȝ6#dH0Y\"$B'$Q{ÞUڜѦ[@d@dbO-qj1'ywvU.rD>_lO qF97ϳ x/5"7N3oջzz٦AlFV>9*7o,X`~EV%cW #rek mS뙿." fQ~]*#ZY_E۰ThԢOJ^ҥ-oQm\_E+@SA MZzzjyk?W8iJ6_إB@D@S%}^v{XQGkJv멿i MZIzzbIZ_ߢLS." *(kRc^ E+HSQ MZɤKz~°E+ٹ]*D@4UjQ'.-Zo+h%ߢKJ-9{x^bOh%MtQkqqbOG>R<- |H'"2nqu~K6yMZV(ͮ"m|s:N  xA?"M6fFpz j|yA5(x^3S8=S5i>iMl_$_u]d=!ڨŷuiQkfp pLOZF#)I+~xAlOsԇ;..}= ` d=O7`*qqW-f~l}vXbzEۄuQkqqMσ?7*Hcg bul mw[HB S\ԞD$Dz‘E!ʥxEB}~~LxVʟZaFm/b_oW{i~*Eld'XϕM vNS3<Mjv{tے7 j;ޓM@@;6HO"Rܥ[P_z!mH;G %t|T%/ YJ ٫F՗Ͳ^-+N>Sg۰ê1"F#|Q7'WǴGxaոr\\iϪ_gՏJ,@Mo6%j5Sـk6f c~E,X`j{)sʪH7E\^}=?PKe[2 %% dk.map.gznu[+e]Ys8~_/3fDx~gC0)ұ8Wэ ѤIe>g?ؙܲw7u߱Ǔw/pp &m./I KK,ꄿr/i/Z ,,G@_Ɩ$j]hg!4K|\ U7ojP@F$$ $1wίWW#0#0~&WF:W$$IU'|^岲(~- :E2$I&[u2JIe;Vl 6jsTb$P|/ʶ:"x M.\68%\BxXOLYq}#٤SVShO:^)} 4:%I" 3N6`λ`FE+v˚-q߯ `ҜԉNr~/MW媩BǫBe٩Wgi>z zޣ=z}鋿`~IOZ>UjR 3s~6_G_Eo_%U|^ȧZbqua(]A%q&/W1/TR;#'b([䘎i\g N=ddPr/[qdp""ӱ"5haP%?$?{$C$NDP.1+Q"(ӡeauOs%Kp.LX+Fah &[rG䘎)\r|{G02MMԤ'b(KrLNJw4.-Q24+K2,Y꼖. VOJ#c +XЊLLU^^싔4ўŊ u&f}9mPv`v`^=_ AAAOd!Spyǒ&nt9ĉȋ.1+ Ӹ|GɐVꭙv<3hNPKrLNJw4, &ޞQ4+Dj _גJ6ӱ">K&'Q2#SZRϣXj19ӱ">K !Q2;ca(D E~ӱ">K4N=dhVL @m^Kʍ5)\'ǥq%Crgf0Y%gob,]Ҧ( Ut@T;@E2PsrƧ$o8A_$wU):MNJ pd6w0M>o.1+ S4ή|٫BT.۳6:uR0Y[>KtjߑIơY!sfr!6LacSJ|7O2=/^HrGd tWGɯ(O+/?gV!]Y7UywVuêݣ}@}ع.fLzbymŸջV.4+abbdI{gE(CNDPߒ\W,ns4+#13DJɕVf/΄3 Mtty%9cE;jta`P%?c|D͇?RI̧NDP.1+Q%QzSg_b$< p""/$ttGN(YA1_Q`dl5%9cE;| |G|&FLJ4l$uI:#7(Ƣk0Q+TWI:Eݎ5rTleQvjj>9Ԕ}T@oB2"֟=ZzߦB@D@WE=Cָ=EVm*D@tU4(vz4-֟#h5z/ܦB@D@WEd?3zkQX|QGdOF>(~bٺf`W5_q&W_~"E9/B7'Oy+ Ԍ k/ %,ߦ=@J ~$ 8NΆ)ΆS?a,X`=2~*_]gq}qna) PKe[f Ʌ it-scn.map.gznu[+eYs8S}kS>$xfxql)!`L-9Ѝ?"D}]G쯎;}M9g;{S%-x:.p *M,/%/[9{Z{Ff_P&5.lUwfwut 4 hAS1n)c܂PH;.L]] Q6l7S`ڱM`|zLQwseKeK(Zvu73j[o׶߲dp8{=g?_򟑠>4*6즿??Y)&`('ά`N04N'I㤟I/m̥= ?kI5UcZܕ|ܲ O*ѕQ< F| _8@͹de]rEبJUF'8Km{M}Ao }9zHtnkWl\mgc/x{":UEO{S(mdڬ韾?æ$I"w>+ $p  *sAG]!dZk]u嬦cKr|Gp!aw/ gaZB7]9,NxAp]dN9>Е͂o|Kr&ȧ0S$PƆ©ևu嬦cKr|GQp)r%n[S}ۺZBޕ͂o|KrȧZQ s΄uχHܕG'H S~YӃWq% \)S_ņb@k 񏮜tl|\3'wD> gLN 8?h!w嬦c䒜)St0T+BHoj]loӻ#P=^ɓ&4)H%MT.aAd<l|!}GۊYU7;'-VAG#z{DߜLX-7Bv\=a`;ޛŐӓ*xjR( gL. nsIYMf7>%9Wq|GPXį$3S h!.rVӱYMOpIN%9#`V0bޞJR!h!^w嬦c-ȧ^ hwsX h!λrVӱYMOpIN%9#`WM:}Ig,j@k}cWj:6 .ɹ$'wD> PLGI:vtO]|\sIN|:dէh%6lXOi߻r-G@uT~@PmYğ;ނ&]oփַMڙ.pwqxpu7PZC]9,&'$g #`ޭ%)˄YGg]M Zy]TNN;Vb0<&S4X 븹ˮ6]<yH'O%)HTWG$Hp%7UU,id=f[|q8_38_eW]\g)iz0%+ړ,sWKzC Hw[hB2c.f0+:p!K"gUekc`c)V02`#Z^BA֋˴ h!ݕ͂o|ė<ȧ^!IօrVӱY:Ē wt< ؅!Fw$$ Ӏz⏮tlt'Mt{: 1w1%t<xٕ͂ N :=~jE(w[ˉS,i3>+g5$L >O@D d}RkW]WN 3I-0!L:Xɕ.͝b%ۚ%|x5HYR5'88u0ue0%fsbKkHַEHY斕YJ nqQ)0lj j`eݤd/l#_nW L].@ tkN;Ճm^g'Uo}Z3 t+w^5>a.uͺܹtgJgPI[v>cU]o/ TPB}BUciyhUPyO*5[{ЮR23ݦ׍Me=J5=w_!UzP|[i|eOT=U!¡]%{ UGoCuzjܞ *=(f:VeNOT U!¡]%)v UǸ=֪7kVJ54빽p_!UzPkPuczN^OTf=7Wpv|f9EP=||V [쫂C8CJJ>C"m*|VK[C8CJE;yV=q =Ruff֢Q] 3 vMSg(")<wl]_IfeuElOc:N'I$4Z?͍,nf%0 0/Z.%Ѕ0J`FaT_]KJK#o%a(¨h}h/q]FIsC{k f0?O/؛ͧ;񍼕`3+Q=Q}цtC#o%a(¨htцCC#o%a(¨htѾHS)o} &M% >n1VB{(¨h3h]J0J`FaT_m~g䭄< 6CE{F ?tf䭄< 6CE=ˢ@: QU_u8 2 Dewx zf˰uK=rV7c^,Yyb0 L`jujqsg"o |yOTlZ4k~~`mcfQZ&|SEOr ZFQw-/>گΌv}L/M6ñX?P_fE)7x%7E1Rxd.f-[c,)Ǒ.׮q5}9 7(blR|1$uy7J}myQwmaX姴n/xyS|%.>1|vc'x: Ojt-ž;o6|jR1c H@Ÿ`*6us 9=igFm:җ%n:RGj`ҋ-*e%7UUG,yv]S)FG#z==oNOY(fx 5sU/)ih࿦=@t n@ Lc\ !a*TPY5]ơA;~2\UgQuQb[PKe[eSL ml.map.gznu[+eYsS=*ZkgȚHqOayT0S*mͺ )HAIM5drg@}Y=妒ZZ%[E#ͼ\.e@:  h@>nDRyÜmaF]I(>3c E=رkG<c'H>3 i^&N0pU7T}Qz2=x *ʠ2s;Pu?Y3v,uW&]l@}ԮLfW@l29~4ZH)Oo6UuVVl׮#lV{=[Q=>*ʣ<*ʟni P/䈖H>$K, =DFq f*>E3ى~OƪՒf[v$xO8vLLk/o /+qϯRvu~[~      #Gn>y0|97/rMfwO=>&Q7AK=pA v U9*;NuFQgu~u5<-Yú6}3 W*h>/x Θ϶GD(?'T؜zRJzCCS"Mī.I:i.͙M 'wD> c :ҋ4qMP]t 3S\siN|HRQ*a h‡,'X|g4'Ҝ3;C_rT+L5 J|천cMН4]JЁ 2fa*d)i$o4CtYNұ&΀OqiNΥ9#QghfsǶUۑ6 Jr5AwtPtO@Go:?=$j  hƒvYNұ&N. %@tNU?~Z{N!O]x;pnZn{.3%3)Mߺ,'X|g4g>33ϱRr^~@>e9Iǚ;>ͥ9sf8#Qgg2rŒ}v^$buQ&A:A&dB&dB&d:r&X/ɯ}/'Rkq27nsw-q{ە='zIS>S#k6պ[輫m`;^:{>K톄Y'%>Iw)܏IP.-lA" @b}&>SKySZDJ\uYNұ&΀OqiNΥ9#QghfLPɅ B%Є%vYNұ&΀Osi|b8#QgH3╡ׄ\ h‡]t 3S\&SQgH3b-WѪ17ğ,'X|g4'Ҝ343jX(+hGUn \|;"uM퇄 &+^/lXKOtY)GY: 01t2߀ENrL_=wR${V:4cMw7L K0}{&Su `!"_h‡,'X|g4b9#Qgh=37kaf5C&Tei{ g -6O(l`B3#c1wQJYR=R =fͶfO9>jJ/tqԪGY,תH2-$uۑ\8;bڙD9jԜ.|mh"<ϐCTRu;~S%Tӊ}fvݰvZf0`0s"0wgdL(}e@ޔW$k z >:Cibi*D@Є%-MŒ#0lcM=i43 3$ΕfFB@|th hƒo,'Xt'Mt{:̪XnM[FeRЇU?hƒ천cMН4]45QG3|_1t@xe9Iǚ;i:StO@G`ҫH\h‡cM_ȶ89g:hBNM^&]2-[2VJGx* Bs`+XX3^DXyfFXm2k*riM*|W[C' :%_wJNc!8E2o<PgdfO/&sqMɾfdPL[WivpN:sGwH/eS/m?ozc[ f0?O/-:k>ղv -=rk[:ԭ7|Q}Sc#z42 *TORgG_z_][]\-{b^;^+ ((| )l`kT;C8C7%yɛռI6qXv"m5oKgv '=Z x^^+ (j|deT=Tzojd]QppFQ#.ۦYǤnթ˛C8C7%v6UϺ=&5Z=Zx^^+ (j|d%Emzo0̎vE!¡EԼ-5O-zb:yy]QppFQm[W(a?j՛ D֮X_}_j|$_7+9T(|c H@ILMWYU.2m*oRn a&i>}GIQ T@%PEÓcPlNZ}8PzBI;:l'9 E(N@ssva0PzB I{I*ɚ-7v_`rҨVk2NBvy9L(P:idF`2'@(I˓v*ujN = &sBQ(3yҾs-xwξ]bog\6>Oϲ@6dNBQ! 5'l"OZ_w TS#'us Odh?I!?dK+SM\^Ivg}uD<#du-% &ғ+WOJ uBP'%׉.Vbϻ,XKD-{byvQ;~~\6]Z,Ԁā/*=5n|;( k7,W )FٷLY'dZmBCU^@uK]=FOtžgfLe=p k}#imy73iZnc;:5S`bkѷɗe%ž(%?etv{|OU  g}d3#Ā=ӍOtL뚫uޭ!_( 䅓PŸ`# !!!OZчdSuŒӥ7E~mRU9OP{g~S%ۍ#######GnNoEk =p \Ь*me ! ߦ=@ Bj ~$ wΆ)Άs߬!}D*TPZUAk?MUoꋤԛdHcPKe[jx||gh-fula.map.gznu[+e[8S=܌I:d6Xf6$=~ ea c~Tm6W:nyrv:=^%Et; .p \ r2sX:4/ s XrQ,UdqYO mw<٘SʅQ5 X#Tcӗc!vI"\̔VfYmESDࠃƣ$Eۓ,&`TrU(sՔU1WmI'Y|؞Ag.t:ǀsssssssP+BP4~#DN$v-7_ 28AAc.Irw_|^,4 l`lD&9?1D>~2ېuѧl`0ddr4OLe,7Jr*2ֆ&.%9Sp&4O(f_EnC$ATmѴ t t*ͫ?]#]v$CTmѴ Y> ȧ=/ #]v+$CT4i[|#pI|O%CJs9?elѴ Y> ȧ[%C}ۡAb1DM3U7> T2LDGyW?۴zox8RGgO Fkt}16H̻aӌmU%uo@> ϴ}۾Ab1DΦM۪K߀|*5_,3Je2,HEw){%A R")H!JrCBQ ȧ!W<93y'!jnAb1DumӌmU]>䒜Kr|dfHMH !M3U7> T2T3dtAb1DM3U7> T2fMgrvwZW?ٴ/\0|#pI|O%jM':$;&duJ`ǫ۴-[i . 3T2ԙʷ,tyC ŦM۪K߀|*5u?~|nf4mo|.|d(q<# f0?3f ocBbhю8I$,]}H6+h.Pd GQ |ÃOJ,`ĝTcC#i&pGjvzswxq8^/ W}KXޙBuy3gb6hVI.I$'7 JjM-1 տmѴ Y> ȧ$^{G7H,^4i[|#pI|O%jS(:Ltcbf4mo|.|df<}Hݖ !6hV,\RSp^%C6rnկ6hV,\R䫒aPkXZ&+1ʷ6Ms&"U&0uPU3z\wИ8nŴ sw,`(l1"|vGo4'UfN$KR^D w JFr'XZ>`֕lHA/p yTH3d]0Tp*rܥ I_ݾ=ldy|"D>߾vf03JTOƻ!ZL}!i6MXu ؈=hl5银lM?@"į(dL]8?6/-O7VjA7/V{u;wʄS-wii,7oVcDNLhԠOV.PՆݰl\n޼*EOS)" &5(r:jxk;+?JԟʄI J$ޢv{Dw^F/7ߩJ1_pʄI Jآv{DoR~X8 ME9TXSF/7߫J1_xʄI Jd҂"ᭉ[F/7߯Jq۩)" &5(b z&z[r纝2! "iRr(ǪD/ӯ5V):[qj0'~=lB@aF8/H@J.!}&͆O?ݾ%4{{rf7ETq8#p|s(txAonfp }8U//hי(Np.Z_s^ЮsM7 Q)T]>ho"L]Zz3 Wo*YwA|M7 q(Np.)h^Ю(Np.ڐ_S^ЮSM7 Q)T]3~ѾXdE6G4Du45|9nM7 >iNv6 tiNE+~xAznH]sޥ;P%_ 69}A|$*o^' QF=Z9/3=XJG j>`#MV7e9Z4Q %SܺMggggggg+us"^||LJUIKVK[| iϪ__l3(Yj^mJ#(hpـmv5Lq5}Ӯ+z!B8ec̷C w,Y˯[PKe[4p jp.map.gznu[+e[sH)>U>$q&3Bm5 $On7 }t9?}%.n쳳_w܅Ɇ9g={t><en~e2VN%;|`{J,ϊ55.vP_-ƗC:g5&0\\^]ߤDa&i]o#`,sTJSyRnm8ւ< Of2Myi=G_Eۓ4$`T.s\:렘,΍`[΂ݦհe o >u-D&%GXvP.0琢[ > ħ#Usbɮ8/,0Ju O`XSR묟{ dA޺_6v!{X g4<*{{DJ +T'|^a``````<_JfsثWAx{&EcZ/x Jn߂х@yqdN^OF_,]T)k[ YSp^&ùWb1D/2Kjo@> 2Φ-2Kjo@> 噡+2[rX`lSF׶|#pI > ȧ>)/ o6etm+7> ߀|*:e2\ eEaw !ؔѵ,\R|dP ?VvhX QnSF׶|#pI > ȧW"2h=T>7@ | PC|oa~uȗsXV"*@T5ypk~P֊y[AxKraܗu_ 68 Np>2NLI~HwJ ȧZx-e ! 2Kjo@> +g+߯h9l`:)k[ YSP]?î,CT+2Kjo@> ulVo|.T2,礼-䢢;TWom_YSɰ|LThG36ug+ge\:K%3uE{2Kjo@> ;!BV7X,>ؔѵ,\R|d{>wA1Fa';.!l`Nh(?.<YN(l`NhPɎGm.$ &L?Tɘށrq](QTϻ۰j1J<*oSW$ҩGZoooooooQ';Fsq=4hmVo|.T2TlWO-}oX Qۦm%Fg|O%CuxdU6X,^۔ѵ,\R|dXޡ4O *Z`æm%Fg|O%Cu+2[rغb1Dʦm%Fg|O%e CHEaկ6etm+7> ߀|e2wȧl*؛_>6%cv|A8Ej0T!*젘0n]S1ɲSW,`yV,*ٸ2wV{P>krO(OQNI#h@gLɽ0W:'1ɉb8kHG}t 2 dTrq2qj2+xhݳߒk[z3 Wo*Y+_9.`˿'jw-DZ#, Fl4 y0a„ '*+xWNo%1Lwz7i-߱&D@4I9Wb:)ӝ-jZKSocMh6II\ѩMoesx˚Vizz;kB@D@IMJze᪘ޚ.OjZԟ &5)wb:2eX|USkB@D@IMJzتvzLoR|ִJsScMh6IIX[SN9EbVivo~ &5)I+zfznX|U [kB@D@IMJz؊"魙VXiM4z;<քf v@1W]'ez~~54i3;0*{+".WMfz%Я-T4/- H@I2W4]iǼM#&?(IU]ANxF`#lDCyA?6YE݌NuAдQ݌NAԴQ݌NA{qXil輶ݯ70`~Qzx6 ״QnFpڇSuA;:մQ݌Nꠝv :tiiNAFVtcݱkDCQGSo' ѴQ(NpZ ?h]^СGhfp }8UEi(xnFpڇSuЊ_'C'6 Q)TOaݭWI>@z.@*)+Hv0a„ '*;gī+k\Vec_sW`d);mg5n,4tXxxLR2R~cG$Een4zCza:m ؘq+7.`l1bCl]bLBYbiXW3OzŵTDz@wР:;:J~3"O֡ܿq.2S PU}ZcY;ktgPН}1/PeNƇ~ZcY| )pi|GG5ɐ)b: 0 PUkeх̠:;:J~I~{J0߻X]@t'@G7/@fLb?].n`]03n-w^; LՋ PuUkei\g258ah~9&J b5񡪏]\Ku, |O8np%CjZ>?[>g"%-HJJ٬pթS!Hu&ج^q^M@OQ|C#l}!a;_Wsv6F'.b'^mUw.-G'd؁؁d/VȨfԨQ_^moV'yNj.gt;1(`TpTkei\g<18!e6sW@?mW񠪛.:F% Q3+F&jm_HrFP񠪷]\Ku, tg. JG+Fmi 7wyF zWlu_ZV?i c]mYрy0 B`R?®^ˀJ!ll-i ے @=D&Э"#HEkv=e7#PjߟX.¥q \'Q2d 6_C$;zdXmk,P̠*:*J^I^zSa{4aj<Y%[%lXpwn0߂.KKImb3t [6@5>Tke)\7 |GGPuԣS'J8KnY$|3ϸl.t_nl@ߑIƁcz神BYdKUL T:T(وJB]rjQViEY7ww{TnYf  [7O@Q Dq(!Vzܧ %,i0?n~EځCQb4 KIЙL<ǝސ> =#) f=sU[ոq(Ug >O1m';LW|lf~T[UoX]@t'@Gl[Pn6gѢFQV'z&=̤~]#@ P %?>,a4o*/2hձk,{ [eu}B:d{7ˀf "%əI|ެ^KD)ު5JVZ6[v{ -&FĆb3=jRAM|i{~7 gHAb MHL{O_r}f/#%_q v˲M&`&`)JVNVgBGɩ-DppѠ3Į-2 oS&g\؛!a[DrLǪgB!jФGIױVS~~ f) B>xN_  ΑM7qgԸ?~˼*O.-+^On*V>zcA  .\B\"o'ЇZ!Iɓv* ujBzTk0 0J'/Oڙ,Dיŷ aPU((zc<'3fj?w+1cb]uG9}H;GBE^<36%(_=tЇӥQ ?4ף"ٹNP-g~K%k_E_ENu1YCם-pp P\6UVXDy5(Q^@I 0pu6DA I+l|E'@uYeUWrò[LPKe[=by-latin.map.gznu[+e[w8S}Ξc.=C23;ݳ=K%aMp_/J;ݱ4*$~ F2+FK';٫2⍨գ7}_eO _\ۚ+r,>Y|N,G5k|%‘--/VLmWM)JTuh+KЦ͆bElӁo !BezF0~Ʀ2LZ,bS>u$ϲG\L`j&Z,3`oӏމ"j?&0USWM 4Cr"_UE]FeqZe>:-K-Z!~2PmTFQmT)V=|#.)h^{S^˻R|+LhhsQDUj>[^@c"6}3黅 ܨ W7+Q-݊jwcƱ]$ $NSa58^L G%[ZwЫ l W=ng;;ꎺGXw{fA|LD'/QSo9 Jv_9j9j~ 5盻늏OWM֫DebۮE̢eYuUp]͒t7GQyTG叻|o3/%H,_+q;(>#xN |B"h;GSsP/x;c9huSAA98ܘկܞcU8Rf/,,w~w-̺6[Vsc| cAbZʛ6ʔ&I~GSIr5w|e8%ǝtm=a߷YNѡ&N37O>z=Յ1Lѣ$޵YNѡ&莚n7#FMrHuT=A6): \|; w^ Z{CME 6):QӍ %@tMGC'$gݣ$޷YNѡ&N 23 $oo?kjK3.7apr7}M#`$fZ&Iޣ)$f9E;>e8Y >;qوH^ѫք*h*mSt 3\3 'w@> ڳjn52I#Q2-8kжHKtݗ߲Bn^G˝-9:M4|f0+>%2s&veKѹ$ɰu6r,{~x3މj]څ9v٣mzD`;irg/gznHHӓMg43hQHR gD=pH2p|ΰ 59!+3$Kz46): .ÙN|L(zl iG?9\h*6): |4Z3UtB3*dM SjpJ. >;fFڄ˅Zz>A>BʀpJ. >;5'#,^{-^+q%DMQ?ڬ͒,PU5tj31П;LTh*_w(Uj:5 Mp \>\<1Ձ i? h*mSt #.5 >;9)H\u%hm|Ȅ1WeYҦ-`;ޙt:{ⴈ˫L|&;*ƃ H]^ևu^d05AMP55ᛋG7T xHTiѹ_.QUwZ@-P 8p-!g]ܤWRrc:EOcRȋ-̢+y,pݨ7zި77f&۔F%FΛգX$f9E;>Y\|; wm5i2&SA\ܣ$f9E;>2p|ΐgR]!-5i#Dh*mSt #.) 'w@> qSZfl 1M gjpJ. >;CSyҢGSH $ Řdq/|f;~ LOɰ[0ax@ <ңԓ<3ΗKtR&; w6lhƽ Mt%l,Rܓ<މ"iUBD(3ڎ w:ffɔS1Q֢R3wurf' H@"q'b.-N1翾|Ϊ.,>_U߯70`>wrDv_ S]ȅeM?Xzv*ח*TP>ʝ{@2ĥsӎfmB@D@7i9ܯw\URg[0mT;_e! "ōRx"s[vufKmYfq##27oK B;r:,D@tQ+V/tGkW{.".>8.7f9Rj9Y!C H@Ie*G4]EeMXiY_좊*K:*J*Gpixz>T'>4l'y&?5_IN/Z__3Cg$:Bo1'S8݇Sh}u"[ŜNtN E{^TEWt3wW} f0WoYlNdвDz9 >E;X'бe;[IN/کh':N,ItbNp|E,IrmG4D;hy:n6l/Z_'P߲DG-$p p-t" ,ItbNp|N#v))_F<~Wzt,@) y80`#|37wT[jZyv[ K*v?WytqTGJ uBP')׉oVj;;,XKD˅-vʣ=qq^6H~]Z,@~A.*=mv՞4fo$_/$(F]_ŗEEzb8>ߖ/Ti^$:|H 8պ䜽q?8<~~Yx^T;h0saV$}Jf] 򗼗$(F\POj~xW''*EQA@@|aF9XXn1HGi]sZwJj9e!ǂ$ y$ܹ_^葆'xh]y!ۖQQ6?4\ԭRl'=_3my3'DcZ \z4k|,~*"=j mzׯH@ʭ{ݬa7jvD*TPZUA k?U˳<[(sPKe[W__no-winkeys.map.gznu[+eYs8S}kK>$xfxq$dsMIO8DS"K-"t7@-$[u?MFowfW.pG7orO _ D<\4ѹ(R,"SQOxU`l6jsD1($;dUE)l] \Wvf:MBi,b/R]5ĊfFqEin:.) h@ڷ79nP&70g]CPcݦ~{ٌc0cOgGY,<:/&w͟<=CVj>/x X;?Ac'XfyS2RC±4f/~tV|TJVau<$ojʔBg`>hwZCMqiN9d8p):KcfQy&#ѻPt'MFt;M~ss$SVBd₁dPt'Mt;}$I.(6=A.:i.͙r >&C$9Aež;Yd`h2tY-ס&N.JЁt6&_z&C_Iu%J= a /x=+7G/ʃ4LEο(򔖯',VhFhFhFndʐ^n֗=ƑM`V&{6CBB4 0+C&Z&CbdBJz==Aj5w|ĥ9=o >&Crv$-u&cj5w|ĥ9gY3Oa/we}5w|ĥ9gY3W{8Rxm ]Jd$Bf@=Pe2Š?w8$\}wۣ$~Q-xYUi5 M0.pM$ !'d oP|gG\E>l24*YL-S/8Wkus}̴/|IơY!}2^^bO5&pvVD/D=^ɞYr[嬺형q^6cXaaX9,#&VP]d%,dW3g,OzOwE̾%U5/ƀ1` k폅Ya4"c)٣$KxUV&ό1b`6YwH}MF o%KΚa 5AzO&WғZFI\;i00l3+t>g(130z4]Vu &t;M~v%~S%l{4.:Iъ(A :&?h>ٺ٪G1He\;.m|300![c`_z׻.K|̙4 L`&_XĴY-?uCdX.9_fI=׀ԠQn <1Ӫr]Q{eẘTG3o֙)@bYyJ-@%^]MG:VkUzv#ƈ1b#~r#?!ֈ1v3jo|ԉY^4Vdwl" *TGTm2w_x?yV*r~~4`lue]e&D|7BdUT6`֨nU*;)b:۪qn>|KV^B@DvN̋fzvz;?k7pV[/ wU! "`NJq'E3U=ت|BoKV#^B@DvfzUq|BKV'no UvR;.9V &z -Z*D@lWI)Lvz;j7ћOṋvU! "`NJq؅8DQqVіZz|W" 줜ɛ;PMxqjhVu=:kqqdw^["ѱ}  H9I.SqGeRy<.oW(*n5mcA`{?Zg>U:vxQ%Y*):GvN;Sh:sV" tNѩiU!Un}tjwP.YRo袣Չ;60M",Pб[JSn}tjwډi#Uc ׭UStNN;U;Dı[*):GvEj!imGw&ֶڀnaItKV=u=:kqqdV+OuwRd@<<^8̊R/\ɒMsz#9Kz5OJ{q`#~ۯ7+'C# œFgoV)>qq&uyw*Q>9aEQʣdm?zFݞXe 3 |Y|C~C "D$3\7+qkQĺCǴ H@Ilrg^9Xei5qR\v:P=Fu Gp?FpqE^XDy3UmDy ~~9ߏ7L7eC *N6eVРAv^U]fjĪѺZK#+PKe[ cz.map.gznu[ +ecz.map][s۸~ϯP>V7QzǎNfN63u 9\SCR̯_ t,;Un45M-7|q˾y&'8c'*~D kW}[e2ˆxI¢J̐{mKžY**).R;u m?76kGcLTunQx~z<gնmDy{$Uƾ,%\~(a7ez=tR ˃/&/ݲ`p*&YYeC2 ,Y۷ " YN+TT+b,@uP( zK+lPf @|n'*:*4Omiʖx//Sd'cXo "أ 6A{\s+x(n3M_5{  |mx:@zH! )>:Rշ.ھɯ<ⷕ+cL)]^e͇jʊiy+s'vZ 0?x`F4|:RQԠNܤnYD1تږQwb'G:=YD ;7H|̘>oYU4cY3"7&)_ƪA8GG8۩`xߢX4b+Ӓ"YT~h*vs6c;bcc2E"Pz@(j޵)TM+Ò4"vSâd5LU3y|C}2V+yU?\E8uFF"/Θn=Z=`~5v:4t 5h>ZWCOAƽW|pӆ8*,= 3>T7P(f7"6wn0ςWLa0dr8kC! Ʉ@7 5w4f\im#Fѱ";l,g40n _(; w5B_5•t&j.h2W}B>5%M2Z\>{D|T>DIj-w\C6(:Vjq&L>{D|5+VJxB}AZgYPTkud[_|]Qg%]Σ+VĊT }NYѝuLыGۘN4R#֩/)z83zޱj[l줭:Pv`v`^:{>sIfUfb&X$lqc9WWi0LNcF`;*@=0{h`tSYZ-h#zSp3IlQtxOja:Q'ffZWXWkڶ/\$XN|3Z3 z֎iĈqWgR:d&(\g:Qi'1vD/q#_;G +g3ly~D>rtST3.gr:/įpǝYlhR\ٹzKӋh󼘑/pC>/qVuY:s>@kzo  ')A  ' n,|ՇtU!Ez)5>{JN#V2- M=њQ|+%QFedlWm?G`0fr`?{tp'I!H cE`<1BaF`䤑@Lq uv25$oA6ez^bmDl0W`9Xti6\]FP ɹ =h5P-hUBQ 0ݝ:'̒$%KMܝ G0Sx8l4 ̕.(gY$m)+)Q̺K1&jVwA <rvG @RPc [| %6κΖ9.obmAߺP7{6@A3~@Uоmm{2eԳ=-|$U~v/c0_P~CP A=((i\1b[68IEb-:)5|;}ܲJ!zE)HH :)ɊoKCyW?I Wrh>{]``9,xmg#LQ}nVq^du݈t]VT> v70|Ea aMZHO;gmVwr}ޫ/Xk AQgge=bw!S;iw5 7|GWEM߂ ,'d33 ./;!*(g|[gTXwV+Ûh=w M5J>7Uyu=ږt=S!¡FGl^Mա歱^G۲}*8C84U(˺:1^ӣm@s{>!*j|eTXoZVw{-;l M5J>bnxLz-zn/ܧC8CSELԼ5sk=ږznoOp%!vyk Շh[v빽>!*jf@V] _篆f=ږuzƢe/Rc#~ۮP!g1C Du.!tyW׿u^|;vn*X7c1x @N7 GEC&_ur((]h"Ul$`1#Q=Qh=q.D«.4HbF0zt⢽." ]j030rPkY˵|p'& 3Cv&.@$jF"< 3C6L$LDx,f$0 0J\\gI^ܷbMTVr @D݌frϝ@l ]1fi 2o,*?|cNȎ(wM4C-E"-|grjFhK^{-8zƢe/Rc "ψ|yVqE-ˮ_Uٙϝ?kwJ|g}]Q\7(-ϻi^ b:|H ֺؓ7lUI.X\ `v׮v57қ=ҟ7V97Z+/b_o{hWw AjlVf_12/&0 ,SZ~ޔ@@@Z#Ol i߳:OGI\Gb1|>ۥ% @$@#΅:# AAAOjh[2K`ѭ%Ey?tky\}]/֢aZIܐ]xMr[rmŀ4ppW]2e0L=^K0%B``yVXX3glbpCb6)'¢R@Tcs&Gi;vw"`F`om312b^DE$6A~_5/k4ä ? #QY,B5sPhCZ)xP!S7AN%uxLM$-Q:@6-%wEMlNv=]v]z}QbҖ,ߢ%èKK;CֺNmCϭꮴvN5M9kQq1z-=ѻUTu]*5?Es$*ܢ%.EKbU:XUt65Mkc[q1+V[{*JlQMB={L7XM}pxWF6s{ףK=w}fuǵ>kYi`]k YcG߉gb$Ⱦ8M100SY\Ū@ƪlKEgaw/55a1/c 'zHF;;;;;;;H57YʹIgDo#bA+g>yߞX||7*d,\ra$u!yA89؀ ؀;n/t* N0Xn 3OeqJ+wU[O[ _ͿHj3O&>> e:datC {iyȶ{2 p`*OǬq8,e^O&========R%z,ЛrU{t~[렘+QǙ6  tgbuO@> r/g]PIcLޒ,NAwFNgW6Pueo,$|7 >MI Wj!8CՕ<߀T0d0\,x>[xYb>Dq+ |#g%y`W0 /]uṖ~q+ |#g%y`8TxY-ꠘq+ |#g%y`8~ղGg7|\> jf(#xTeb>D,ħaS/?"c$̯9@"+=vB[1~"1!69 ˳¢ lokA1߀v`v`FV{#E#G||y Վ'y5^T;(pD,ħڑ!WNRުi|6Pueo$.sp OC#c.@kF:(CdomYpIo@|*V;2n>ڡb>D3T]Y> . OjGB0[x11~qd,~$OڟjGL88ivP̺8CՕ$ |7 > U0\ K:b9O6_<߀T0 gV"bg5^Тb>D3T]Y> . Oe53xYmA1",ħ&8i.r"֡DjJA1";q+ |#'qIѢ |7 *&v.LMa-(͈HԱH]p{-Fb-F\Տ'~ WYx'"NJA<QGqv1H&㦺D5h Z֠5hm;ί)qj0LLlοD'G&nA+aòf f-F{^E{'^c<SBC>N=6=lFqܱ*]\?$E|?"_.^7Jҧ 4Ԛ tˤ5Ku@&;g!b\}ƥ* oԷt"K]K AI WciB.4ҟ5 U.gDpphA+u~Y4SJiErjo!¡)RH]ӡ oEA\^UTS]NMDpphԠ+#PHYz/٤A*ə.fm"8C84EjPzrzX^^3A*ɹ.m"8C84EjPҕbrzXIZ^3A*Ʌ.m"8C84EjPkrzXS^^iT.6!"5(ʤ5"᭑S^^YTK]N-DpphԠ+tFNS\rjo&C8CS-(ǪBQtV RIz]YԊR_=گt%Я_*TtKK qL]  ΑT%+Σ,Mq~~xOviv* u",&4FhqBGߡ@eq(¨>KЪK7SH`FOaTu)+Ъ+7SH`FOaTuMQ񀦆4Jҧ 4Ԛ lO 9T3SUv;'\㍄{T3SU6vZuF=t )Nv+3ZQ֖Շ7x75V|y;ՌFaFNNV5HN5#Q=Qi)Ohթ Щf$0 0:x= :x#:ՌFaFUo?,N^iq|GZ H%b]b0`cܙF<#, 8n&OZՏ92$&4j54D& mB6+v睭}; ` RIz,jEv)/W f~lvX"#Per ̢Vd/~MA%Zoo0۞W0iTCݧ]Wk*8:|.!RxgI]t;rY$oHΎ`vfc|u]HkVynQDľoqz}&G%Zod'X/&ӌ͒YiXiYnnxy@ 7ȴHw}$dlAxO=:OS5Vܥ{b"܅8. |HTpO^ȑ#_3!'UFK }?#}Hßi=mѢb8Uc*ѯwwwwwww+59GU}(*q\\AikUIc8Sm4зMO3"AF? {ia0K A#z A90EcSA;^E0?;0yc ePKe[F gh.map.gznu[+e[sHS}jEBz؇$ff'ēˋ  Pϧ_FF@U>>{ 7)7¢aEn """bQM_Mg2B݆dy| `#c+2We6s*t17!3m$<dx\HPȧaP%@@5-}lX Q˦]%&g|O%åL9yMab1DҦ]%&g|O%Uuf芌ִX,ڔѵ,\R|#'Ϫd H尢b1DM]JM%57"JN WrUrcb?6et*7> ߈|*U25-Z,CTlUo|.T2PDW5m'/6rGjWFi9y?mUo|.T2WӬ將2vKjoD> q`c֗.o0'z]Ac=^ NpJ=s~_~5̿"6׉+1֐^=ւ}}}}}}}]uCzKCWrz J`{Tɞ&VFzzu xԴtX,M]JM%57"J(OմX,lUo|.T2Z{U}mbҦ]%&g|O%CuB@.jZiX QmUo|.T2Tw}AMa-!lUo|.T2@[,䲦{W?g |pI >ȧa'W=f0?liN \ge\:K%: MMկ6et*7> ߈|*wD2i9,iX Q)kW YFSp% Gxa|dGiZ>o$*3 ݀Wni^f؇;CZ&/xτW%cG$ŌU1N<(΢îq= sDDVɖ6Qh{[V`+F Ao (YF|FG3iFywM˚̎opsjl/ۋb{UG>lִWb6et*7> ߈|*w^;˚>X,mSF׮|pI >ȧHX,)kW YFSPݱ䊌ִiX Q=)kW YFSpU%C4Rrؾb1DM]JM%57"_ 7)$ۚ>/W\Yڦd̞/wdaL`!UwJ/ꡘ(m SW,`9+l\l,1ԋt5s@8OUHX#h@3QGqpC]^ڵ$/M d zZ.dW!)3t=70`6 M%kz2E }ffHwƴ ؈أV^AȒWׯ&L0a~AS%cz)4!ך/tjkB@D@ z%-W2EX.޲2v=քf5V۩?X" MjR+ TuLwYF/*M_ocMh6II[SN; ҜX" MjR+Tucezc\|U [kB@D@IMJzںvzL)5J3۩X" MjR+YMo2z~C4z;<քf 5=EV[3=PVivou &5)rO(2bjYM ].~*M;0*{+".WMf vaaKC UW@yrX;FHtƑE{En.%2sA Վf{Qע0saYD}b ThG#{5TudnKzVGCoxe@ WH{Kvҥbu "!YDfJo9p-E"_}?t_ؓ)xwMݜ?v^SIlj$dǒl2UIJvɮ,E?ro5՝8'zv4U6 n%gPy#cd12~vg-HEcD޼ռ ;z0vqgqtggiw*{-cgNɉwn$G(<M[9LB.dma|oA$Y}E5 T(NN~39MN}5WhR`H"UMeWQ7Ww~ƎD٨XA>5Ii_F.pJ_K)[6:8Aߚ$˴tF % Q\@@衃cOdn肹B t@wtzS+Bz\$$J4")m" {dh AP-оz ;sxx5ϟI9I@xOOı"޳;:J]oK=_Fj;8E4Ii_8Rx8N=ʉ9ԋ:cd \'%q=!>= +6/A4vdVwf8Xs: Qe>oIY 3,!rbpM d̐2Cfgq+@>j[llv"Pv`v`VQtŋ=?OD̪Ũ7j,Ӿ">K P[&Awc!l,Ӿ"e<{bxzT+CbOWPtp, o$˴tF % O_q9ubsMBh,Ӿ"%a:sAP[w4u"cdnP:;:=,әK⹢|OO*o@̙&F \E[ЇA!/l f*?䅼`y3bFLM%b%1?*X4A4Ii_%qơ |`Vb~V@W K"Gdn肩B t@wtz+p$dePchFd.Eudn|W:;:=7S" io7$ȯMeWʳD(TgQ#t(z\̯xXI10pLcE `%W8|3ߋ'hyP|z->QSu&`>'§CWD|) |}d 5s{G4Od4x͙@@^"=o_XP;$vڄ(+hG՝J]@g6һa_i yFԛWY|}1Aפȅ; K)Nvg>؈O[wv:MUd-X`=!c:v<:%3renphUgVN936n]k#ͺZYެEXSOTht3[nXׇ7oJ3ԟwHJwJ:CnQwUGwougu'-ZVNIg-ǚuudSOTht3uWuczg>|E+٩Tht3uWuczN>|E+S!" *)̤E`=^ߢSC*D@USb zzP}AVsSOVN9cP4uxhhڢ31 GY;3 vͧ )P߇yL[  yHMqgɿ^} x'r/ݕfUT6@HI \h8|= ;UO6 8!̐G4 8!ܐG4 8!vYQ\VހgAZ *AU)T_S~MC *Np/ڐ_S^ЦSC *Np/h_%$;97uUifp C8Ul/ZkV#tYNE+h{M=C *Np/ZF{ tbV#tYNE+h:{}  =( p @ h*㉯]Ά$uȳeߖYTH}~ GFʒs*RpaLKV-6-(rBN 9q.ch1t}aVc0FUqqWwfmYf=E¸hT5kqqUgv&O@ j~k yXQ\כ(k5Cߦ/T>i^ $^:|ڧ( F]t{oI\=/>_j;>7#ڱaEAM|jO_7(P|¸侒ɋ`wɬno?oJRT ߁D҇ GmH4HwžK6tƐbEC}1mH#у }4=?jgFmInJ~Dv?4|X/b\'0Tͷ,q;nq8#8#8#8#8#8#8#'>#Dl6֢C׍=ppup\6UVXDy(QA{{WWù> ,XO]s?Unˋؖ(nPKe[cJDD sy-ku.map.gznu[+eY8SF>U3=53{T nYWjhHF279?\EU3l`؞ƺPusq+S?D#gvAzGo ~ &PESC')lCq:W 'G{^E{o^c,F1o*'$'5Bj\ۥ{Xи&T!UU2E%nAk晶Fȵ>#T YuJeGꢉ8 F`4 FE2]}M-^6Un͟k6ݪ/x Ճ1]U[X#(8Gw&,/2 G b69ۘÏ\ޖTN y IMT&ncKG;4],h_|spI|;! r0G\tI?S)d%ҡr˲5Awta(A3o}1BW&|9~aE˲5Awt(A3/l I,Twh,,h_tMt;<52]{3 E?.*EE3E :НN~_葐yp6!.*$'|;! D!^)9%gx''qx: TȅrИw!Წ}M OrIy80Rhǖ!{eko|.i|'Ӄ^ 0\zBHhKboeko|KrR. >OjqC1]Vr}Ա⽣`e, |WT}48888]1ԛrC tF`;j!!!'`Cc9GH";twh.*$L} >OzQ 9_()U!č˲57>es6|;! ՊG;6X !^,h_|spI|;! 2!ĵ˲57>5ʧCK2ز]b˲57>PIt>&P?G~x|spI|;! Պ|>fLxlE).EP@/k,ߖCc!eYEK `! tǖ˲57>P~SƋċ+"dП\ICf0wd-{KG1f0wt ÑQ/g27EMIrRUv@y]*Yl'd ]^nt}"f;C y? #~rWƟjLҍuX.Ū݊,5 gUZ헁\tJuY'8n-/ }M01+ `9>dOzY]I⚔êIϐTzexK15)Ccx岬}M]4](JЁ tzS++&ѸaG^T|X!pYVѾ&..+JЁ tz+)s.8th,/]U }E :НN~35ɷ[V[uh,,h_|spI|;! # .!Hx_]w.K@ *3z03G_@hUENn ՏLZr^3ۗvc:ovVql%Wf>B@D@;KwJ:SvU{k՟4-J50`_" YSsMWt6TDopԒ+̧}YhgNIg]7]3.Ϛz-R|/ڗvtuU=XYmoɕ̧ҝXng\k5-Rd_" YSҙIYwoC &zaKTf>7ݗvt5DPzW¨%W33B@D@;Kw)iOhՑa[ YJNTbS^Epv=XЙo㪾c`3h,\oLN%#I>Ty\b{8rRU\+I\Il+-jiD& mB6+Zϻn/lnpҒ+U3 0.w.".>9u>KЏ+З=O[rU,<ܹ个3{#bI Fq6q~!_".7*[ko*ˬ(^6:|nH .8ѻZdQI^7{V_=_l;>dw+#ڡa.#ы79n@.> Fq67K/L.Jv'gx>g}v{t!ϫ57Fo+>el>A$DHwެ!uY׎} H@zgBBBOxSG$#Eyv?l~u4PEٻNX{9'սOYcjx=.puh\4E^X"E: iz HGp7llf [PB Ī1l'eV̡AmXU]f*6&?s)PKe[1d!ph-dvorak.map.gznu[+eYs8S}kx>$xfxqQls-I%|%nEKP<҇$?ܓǬX oo,} wN \WƲ~>cLdtN,'ŢƚP5ss+.֛%^0+iݲCUu+HHKRg#gC>^p1" ;}<]IoF002ceęg47ŦڢX.rxΆGE9|6lyء _7L5qAW _RcCM=^=U΍;2/ ے5)mu`0/)=67z4{eUjbOQtGO.7)Ʊe?.˪:I3E :N~&.#!TIyMrq鲬CM䚀|GӃaD@'[0Ta( Cŵ~]֣ BrYVա&N. %@w:=E` J(GcಬCMН4](JЁtzՕ-[X!޺,P|g6w@>=7|7|Z%|溪jVw\!U+@2l'2=7&g |!a$7;jߝ` XNE6teRoʵ[ȋUB`;j(!!!O T+,&'$3GڣG.˪:I.əM'w@>=rf7S.SSh,pYVա&΀OrITq|Ӄ^q h.8RO $=!eUj ,- >OjE"`x˖mz4C]Uu 3spI|;  xBĥBz0\zÌ|'y|u>H$lه=.keUj \ȧÉ he1'o9 >Og%F8}&Zh,,Pt'MGt;JPBވ' ur˲5w|Kr.| >ONxS"PPG|߁`V%bLor,أBeYU;>PXKRXqw \'6Ԋ| |˖c}R˲5w|.i|ӃZɽoSh,vYVա&N.*JЁtzS+&[" .{z4A.˪:IE@XSG.\=w$d_]f\|X!pYVա&N.(JЁtz?)|`ʧ h,uYVա&N.N%@w:=EXKK __,aD|~U7 f0YFkŲv>S-u̍]W5":ȭ 7r#AsNgEv*TPx!mYKrmA|qI0i񪽦r!!"RrBg^ͮHWj0iN[J54^BB$DBۥ;%qzIѽ$Mf g-^ \HHht3/mljdi˅HKwJ:#骾qy`dooJ564^BB$DBۥ;%)vtU߸4oVwo5@P#:i?i^Cö U (Tаgfc'E=3lzY"AI+~~OʼX|((NHJt۴:0`H2w[)[j69OjVwڶc{{ǒTnK֤<RmB& mzm_V?qY0M lQ╪XDcۋȋ{՝?6]xXVCPiW ,E^E޽{AH8/rq߮ek5}koTޗyQHlt.D&d:LFkޒzHd< E5f{LJޡymd`AHc"z#z|7lw^(P|8ɗZ^&_%Jf)Y>]"e  JdU|"Cc 2D&ջfKotƐRK!>ǂ$ y$zpw^񙆐'xz}|YQ>P}H;Ez\͛btk,qmn'O>|"GDʼnxDSޘZ7^:=C# \WfUX?(Qgikz (ϠԽ!w݌a7lHZoC *hyhРA{U]".6&]kvPKe[`'r gb-mac.map.gznu[+e[w6)޳>R&4nm)!)'_:LT,9?' "޲erWyw!-3v:M-k5,h?"b1" J9f"Y>u'Xb1}M@kE%)~8[ \nTg)ڭ (".AMt e!Ea7cz`U_흏#/hXbV_yU+eeQ$`ꦯ*QXdg2ݚ'#gcUV~v L`SUSWMd`!;{U,.:4s:+KĭOR!~2PmTFQmT[=|*#䙘.)0U^ǻ3KldIsQ%)+Ui>;^@s">rșDJBn҅F nYɻcxؾs H@_b{ӔC ga7*\%TμΝ"*U*xO[Yު;ꎺ֝n{z|LՉ𶜈'/VSo8 J_9j9j~ 5ȊWR'+S*cU۶kц#`j]K:\}cv FQyTGQ<͜`y&Yƒ2eY^4rnهuf3 !:G>5+Xú˶?kNЄkuh9| ^GK1{غc ajL|Wn_X.Dy enR&^&q~kin,z$  RUt*SE'JPĿ,X|'4'Ҝ3pKŏl}D =r5w|\G<.Є`MDP}kPt@G_xL)d)z|L N3Je9Eǚ;>ť99Go:ù.'0Jr5AwtPt@G_`:?7zKP |=Je9Eǚ;j863Q"T?^~\q/p܄FFx)y52KMxW]St \3N|1O=D)y^fn@1xe9Eǚ;>ͥ93f8Qg?H&֚tiYչ5g;VU=߱"n^GKZbtI&/2W,}czLlY=w qmXggggggg+:+g>gͺZu }r@&vפΞR!!!OO 43&jY51cr&Ld@/,X|'4g:13Nz d&WOhVV=J\tYNѱ&OcYށ43&jnj CW4C]St \3 'w@> iz\}_=&z5JwYNѱ&NOqiNΐf<#BID %~천cMҜKs|Dir~ngQǀ\|; u4'k.{/+vXM'?͒,PU:PjTyoL"/ϝp&^v@EdyǪ:YesXč7K0}{'UuH?TU h"o,X|'4gׇQg8Wk r!03t0&B^L_Rī2Oˢ\IRv`1}>JH4`Tƣ H]YUa٢8`.j& jkB7_\IߜO z?Je9Eǚ;jxb(AgΏf$c&ӋMDPekL&N :=u~sUC#[D %~cM_0oG\J&[%gt?oI(p LDuul{<3-KIzG; u6l~+@It?B+kHlUyVxuەv `3}P05kVםiBfu빵6+gy$ ,uR"=˻˷ 'Uo~`eި#_ b꿵nZ|o n;7o*TP>J1{B>ԭ. viA|vηpړk߶,D@tLA+B6YOQ|/ؖn5J>7UyL{r_- ,j|dyT}jޖy=Z|/ږn5J>rmxLj0o[j5x[" Y(H1V- zr:ɶ,D@tQkmScRCnQؓթMe! "EL:Լ-5 E=Zl[" Y(sLRCPEqOVv>7ߖn5ʙ<жzBjOC\]@xvu"."Rc#~]/P!/:Qr,H@ot.S>"ʢ%.nʏoٲ]uêq&i>}C*JSԲEp1'S8݇ShydYŜNtN E; ?tnN"# s8}86zTIl]z3 3^QgfdƒD$v0XIN.ډhcCcva))]SyNdXŜNtN额ɋEiٷMZQ˄-Id,$p pj.ڙ'/@&DF,$p pJzʄZŜNtNUo=C=va))];]ݵe< XS#$us dh3_]NH{PSeӼJKoۖ/& &/2e/Q̧BBnd8QFP)T BRty`}oZ*/nѴ'Wo]ݹԘA+ ֢ac|qYO GkWw.".>9i̾_T.$_(FETE~Jb8>/VUyY$^:|lW{""q$u{oU3&yҊ~xyaZW3>ivH^Yv=a8X*vu5_^WH|ĺJSJ<%}I3]>fUlY޳1B ߱c "i]sS͋B4Sj Wrd$$I빓.Y׬#}Y#Ey?tk2.Xj8[GkLmlnqFpFpFpFpFpFpFÉZu~&i|99c{['yZ5)H57`;ͺ&N}iOPB O\4hоau}gzDPKe[ϳ|``be-oss_sundeadkeys.map.gznu[+eYs6)U-=q$;;dEB6ײK ѠH-HW 4Ac4)oLwsVlM6{x kҫ=5X深_S?"HV~M^*WW4Wi}=4<ӻ{V:r@iQz05znDtB!tX:dIA{N es Nen67+m*6eGIm mtݚ1J:d*,ͯ?6evzS1-U\/b'Ilbscs"BXR~ 9%yᾬYng`XX;TJr-Ah>zŖ2|YSF0+0XX.mF^J;iEVTNt\yi]|(<nD6n&n>:3I]v=֏uft?پ_l@R}TW%Ǔ% |L{r@ c!qa}V֋$kUGW}E_W}"SsA~)9B]$zƷ2:mQhcJ8N,s1(y&M%I4uu˚JSUisf jVnzLke=f2E, uwq92 X |r#z`&/z`={V r"&Lɻ[ Y笪b,UawzSK֞!=Fc=Fə/>~Vanty2Є#Ugީ>6 ^'K6-]ϠL~{RJXhu%^Rc;>ͥ9p|{``(HI+hZ&|(_WStl|g4gNo| ¿8R<7LN&T6 zŸ+):6 #C :\ #6]V;WStl|g4gNo|F, Ks̀&|(+):6 3\3g|#CB-+h%K!Є%JuM 4\|#CC>Rr Є%޻Rc;>ͥ9Gмe,V;T{>O!Oۃ?G͘ ߴ?K.ߣ@IzPhu%JuM  _ >푏ad~ϑ^o~@>xJuM 4C >푏!_ _K#6\'΋U.juPu86S:Mtt]@t@' 0_2D(55'[rJUE}՝p#s_+ /_Y~tQWDcͦZ}7m:``;ޛ`WlHH&J^]tp1?]NѱIҜYh8=Q0PV2Wjz@.t:E&wxGAЬ|Uuo &|(ڕi.͙- 'G> Im2`Ϥ@MxP•IӅ@GV% 9sid`4A\NѱIН4]JЁtʲXN]J ^&s#ŏ|g4g>5(һt;/\f :)lXKOR%GuB\GE̼ 'ֻyFo4B]NѱIҜp|{`HQ:y u5 JzvM\1ژjD;ub}R=KG$R#Wș4fc&0="iUhV|,C?kl跢G߳*cf;a/48Ϙ3XG'8IS)-|))8!l_ FrX68xG f"% J?0-M3aYUgeFfv\9z~^=O9o=Gs:G%Sq@+):6 C :G͘fBŸ4ARc;ihf(AQjPM :4AWT$N. %@w: ~fFDr_ijMxPwWStlt'Mņt;?ZxK@ ,4AT$N. %@w: ~B D z@ՕIӅPt3/WgRޜۖ5[il*%ʻTlXz`A2Qd @@ۗ(dfF*N6kvWdJcܳ(]n.' |-/cRyN wJgxs6<r Sb3 EM61_O<L`L V!xG |o~٬~yK}z2ڪ) `>Ū|?ǐGSHf'V{ijMB * _ubWG ɵ]&8C8̠ ~O0ն]&8C8hP}|ZÛT?i `cj`y{.!vM4(vz4-՟ۏ|êж]&8C8hP]PcRy^UmELpp5Ѡ3.ڡYǤ~BǪض]&8C8hPTPcR~ ǪĶ]&8C8hPI~aU3ۛ2!aD4-5wOX:.!vM4(gb@;V} Aغ緆V]@he d4L_7wrQ1S$ 9r\>2J)?^߱nXU?,v٤ w@' txFp:ixry"<$֖zyle]McΊb0\ $$3yMd~/=Wҟ]l}u. @<&LbeΗdpql.hr\nMf͖|k u=(U}0q<D`9*+R. &0 LfSb]$JdD7,eI,͊tݶȻɾJeOc~6ac6m>'3<·DO}f[dU!lg>©ɣ>RK4DH]ߔ6}:6] =n*a&"DO\gr`%*t l`*v.v*)&h"TY{|ߑ#<$zQY$^eF{#ƈ1b#ƈ݈٬r(%}"8Mzɷo XrR,Tl"sd%.I4ZYwvjR1~K;_bAC/ ?=)#)t*e25~jDt%Yg9]ҜKs|Gbb+h%&R.&K&r(:4\L 'wD>*] Ǒ^(֢J]M OqiNΥ9#Q13C_UpƏ;-Ƞ:IөI)A';hL gZMdP:IE螀gT!Ս*woD%Sg9];ihj(A'FB ӶErv5AwtQd(A'@TUN:':d5[85YEdw&~[4[YN׮&N.2Q̟]#u$zͻMdPCtj频螀~K$VxbS>Γև ϋ$e%o`]=8 Npό~L$W[6y-.tU孱h77xo{E7tW,}dX E{ M`{IŞR!!!'M1 H$KNI& ,kW|\3N|T iR~Ur!.|ؔWmZ4C:4W 'wD>*fX4 R, E&r(q^g9]ҜGŐV4P+u+9\h":4\0 >!0S7 GE9rv57.m|GbhV՝C,$bGHSIӅC :=? 'Qj.[+Rzس C*P@E!=&U#[lD%YN׮&Wåm|T j oXSعIq7l2_KR{`w`42b)3}-eh&囪ݨ?m-#z ^Dx{=.F1;[dqy]$Zf˪zK'&Ͳ4+qH'H\h"YN׮&Wåm|T iE*ֻ[4Cuӵ pi|;"é)$tv [4C_,kW|\sN|F}%瑑&++Y: g,-F L{T _^~hiZeK,`IPua2o]arwruӶ%%+M `N ^i_I2)F%+75ğlSfM{d "bM-a4||]zѻo40`~YzFŚ_YjY5 }T/ fAʃb;/$-f7k+۾;# ҜFk/b߮x e  XG5ZY^d)#o?7(! f#_Ϭٯ>ȄL'̮5b(|׬f{}Ap*.7JCHHI<g!nXM`mMB飑O?lqqWRٹN-߲mm;w#xG<;B''2I_ t.p \-u 5ղ@v5MfE;f1!n*TPYw]Ak?l"[_oΒvM?>PKe[ihu-102_qwertz_dot_dead.map.gznu[+e][wH~_9{Kvf'3-5ϯ_T @wNꮮʡ -_b~eQ (\VWG x:dX "fa|U%i&Ϫ"O2J()J)w5u5LbyYo5NbPb_a#lK [_u ET= <`XqS}yW,^::;:\dO() Xw n &:ݔFc.[-#_3bF̈1#V{Zh,`wtq7( W..չWYLL&,'w*5"bYuj`&`Z@*_`X|_ s1И.IQu@D@ttn$' 'uI-ۤL&O՝ M]@3sL 3ЖD]WdQ qZRT"+;">J3}l$/u[%!)ƃ$XNgk@tOv'3'N55>$Kj I\ 'ǥp%C&%h>}ɞXbnZKjyF t@(/y 0Ěx.:VFy%W3RHdqD dwʏb?K b)nKxSC>5%GR+ީs o xw1GUy_GcÎ6FO6]ʑOY7Q}Wܖ'؁؁WdWjPP:8z/7p%Uk"Wu &HKj )\ Z̀!zZxҪrk\Hr%TNJw$,Ӳ&xdžGIPծ"*dN4xk|HKj NydH+HW\ك''҇t4we" sAEݲ>uet} 0$J+>|..K;8D|z-߶k.V D/!@7Ёn@9@(`Қ+e-l ꒾Hw$.R8ƒJjlL>ؒLcK% Rx>cGdWj۴7xA՚eŝbXpw؂Ϳ RoD2[:5>$y%TNJw$.}ES5Dw3{iZìtcf{֮Fcڡ L/NV^JIf%f Юꕞ;/~ ^y Ld?Ywr(3A@ɁTIJY`P+@> @t/bW1h@CnN5 Cx 0A"~kޒG낅SV'f.`3II!g`z( ɿ6+:눡szS `K3dW@2pE\A7'-h]GZ}h)ܜ]-*ߝe9w!U۔:ug|8AɄfp)IrD(. c1R*ˆmosnr{ 3@(gr@!%G=WŃ ֢up{eȟj 66ujS#z z(L>iߣov1`w~1+?Azמ_ ؁QRS3m9x)Ȣ!qpo"MJ(_=>oXY%^Uih0n5 B 'AHVQb OK:/*4zjvXdPqTȍvЪϠoIϓe 2)oa0@aE\]`+A~xaV:b_030rPk Wi|:,dMح%}bݚog< ,XOR23V;Sl^U˸=&֙ԗpVf;jC8v J>cm^U˸=&ֱj:= vn/p&|fҜ"6XǮׇ*vjs{]MppnAg-2 ouSpVvno M4(z+bv =&BcѨn_GgYB_uԏaHH^8\>2*47lĮR|vYۮwX: @a(u(0V񪌒dXU((8i]*AV0zt:⤝wrZ!I늓r0xnmoa3030?O/FZ抂;q UZQ=Q:i}qz]=CnàZQ=Q:iq]}CnàZQ=Q:i}NJZuȾogL >K܌eȭB AV0zNIkw UjFaF餕oQ! aPU((DĐ[0*`FaNZF<Щg,JÁH#w1H}!ywkaeǐ[ \'+5\\Ք̚a,bn[ zZkYBcѨn_G,IMӞV6FUw+/>گք>)_1(SaEeri>6HBm0:ne1Jxd.=[Vc,*N ǵkyڣ93n4?}80$m%C;p̾V6y]rSwa)-mQ?g%+*@Wz}b!̈́='x: Ozt<2>5H3|}м~ @$@‘PrOYU߬53d낅%BtiM}D%5 h_xFƋQ'81O좙O0E&"(r5Awto(A'/H MbD %~k}MҜKs|G3a7#JzhCokPtO@Go:?'{I@ |ӡJd9E;i(2Q!D26źYcWV'4v&u| y~t9=!կZ4$Dī&)i.͙Ɔ|;"u4s(PoU r*;4B&)ީi, x;2ufQzJP֡Jm}MҜp|GΐfPMxclBMPbd9E;>ť9=o>=u4K-E1gJU&b(ck \|;"uffW-;4CMS 3 -Φ>|G|fINK$TLY-܁(,fz9ʢ*k:̐ajf4):Föbdw=0c.ƴc F0>:KOR5 i +CG丸^)ҳL1䇲ȉWLHgҲ*ݘ׸S|L]]cr`98 8 8 8 8 8 8 {r|)EY[^tuh"QXYs@_gM +o~4St֡J[%+ 簾&HϞ4bRJ3m BZAȗbbMDPMkPtO@G3Rcxf^*|D%h}MН4]JЁ 2#d̤~z֡Jn}MН4)A'̈lև;4C_,h_|gm|3-zm %g/U P, g,-`C3B|9>=Wh(gygV-%[-|>|Gם uWΒr?K#Up{ˊEh&6gS /:3|Ş?Fe ڵF> .5*м l 7ZT@%P TFH;g,fY-nw[Of03AQgg@ZVwa6ff[69YAlFƦG@yz*TPPΘȞz?O/٥`ʷ`Ԓk߾,D@tL_ ~\g[0n5͢FGNyS7.\o%W͢FGbNQT\Gpؒ}YfQ#uScRIB%WE͢FGMYǤZoߒ}YfQ#֦uScR^oaВՑe! "ELGdjޖuz Ö\|o/ ,j|ؔ?"SԀ*ToaԒՉMe! "Er,mշ^uxPܒUoh]͹ԘH_7+9T(|} 䅓eG4]E\lwRĮeŊrETl{w1tT@%P Tt|L}hdNLbNpzt˄:l':9 !Eȋv"~IJDF,$p pJm(/ڋͬ*ҹ `3gzZʄ -I))]h#C#v))]#y2Ɩ$2Bg1'S8=Sh}eZ9G4D;h&y2nyUb4RkCKbCP?M7C k jt\z]@xv5"."Rc7XDE-&o]͹踦1{C|Ő Nu56.WdZ >cmc @Oj1RDBd.>'=W},-/ׯu5)W=ҟV0saV}ΰf] 5$)FB6Vi^d0 ..l)CR3v~o&E:dU FѢIwrSMw.W;ٻ2!7y.^2e?' iqV:IF6O`Qaѹ&P 'lwR0M5]^RV>tr s@r@ "2{ RwE^nW#0#0>F+#+CI0q|Wng)sTHďxBGnhm5L500S]sUrT`$JɷUgL4IdQM:LoC65lWRt Tt<ڵu]Fet]F_boLFǢWk}G:YHy*ֈ/T>fj#Glsi C9t;߼͛-9hzy%!ft-eQG jGB B < B3~\$Z +E삃{b%Mt5KKЖӒ۽9999999ysbnVBmz=Fc=~q=6?lq[ъ6$>!I6yy_xxw$xM2fg#˽o;838f0M34;--ɯMcWQ<Lu%䘿KL"L24+ B_5!$9oӾ"e<;0<J\a?TW &1+ݨхF t@wt&!\ `>,$Ǵxc'a)<;4< ^(c3 沃$IrL@7jtaQI~zET~*N~2NirkʌW 5<$? $&CӇz0P™ z`̏^!2Uox1c閮)(M}^PUH4:P䥿1U7,Mx| McWQ %Йg!W ?cX?5!$y$9}E;00$A *_B%%^+;U^'SdWQwMd;vc3ГŐ@zڿG:tݚaf@ @ χ$Ob*]W(QfiC}qKol'gEZ^V\\Qo^ Y k3IrLw$.3HI[ r.k$RETIOA4񨷂[Z]ي6&>A&~~E3? B13++PR*WYVGM)\ gk|g^y3[Eq jtp<$4Ii_F.j@tG@gY!'>>suq<$$ǴtF%ЙWDL,g ?-V5vp<$4Ii_(OeH5ZR'|;D} 2t_Cb>GcRX$`h L$+{^D=^䛍tHI7igꋛi$C_%CJ;{UM#1KJ5w{C4_h:6gSXDYA;j+hG59ĚN]f.қ#xӪ},?7`f`ePo&Y bՃI3{x`f>F b#6b4l&뛪_ϓk`{D$c6v6%3za~t`GhuUA9e36~]#ZYEY[T̠d3lZ۰~\G0o*6_O J6CnQU ogu'-Zņ UAf-Ydžub#[ET̠d3Pcg>BEةgT̠d3Pc^> E3>" *3(̤E6b^aآU3}*D@tUfPb vlP}QVs[UA9[P uxhhڢU7 GYOk3 n# iP߇yJ[  ƑMIg8ʿ^|'zڕ+RmO t@'Љ OE~bKvWIfNp:Ss⢝5YSfNp:Ss⢝5[SfNp:Ssц=-$=9z۪},?7`f`ePo&Y˽BQ %;94s 8!v*.HidN!"t9NEv* tjN!"t9NE;JS<7sYSip C8l".Z_oN!"t9NE+h`MKv )Npj.ZF{" tbN!"t9NE+hz<:ϫ7^h,LRb3ޓp @# h*ȯ]Β&m:Q. J*Z S LLTWdŷ񼳅oom60n*lѪj".",a[E6`Mg-ZƷ GYO7a~7g*nbu^nIj/,ҼP&׺=DH4HbkuէxKO~]6HG\n˦iY4aHHq$&'XomU߬3dW҆uAuC {؏4G6zX8K\)XW8U] R3333333r3bnNo/i-=xݨ=ppWgUao_eJYZMo{ f4mqu5Lq5a] q#z`{`wot{YlWH$;PKe["e se-us.map.gznu[+e[sHS}kM}Hhfvl<3{yq!ԶY#JKv q̿*t?}Ba=y؅bW]pOtK.]Σ@WoI^h \W]2ee6VN{|pwJ,ϊ55.|RnEÊ@DDD^eH v?|F0~*W2Wϛqk&I <dx\4({?Lw YD0&0\]媅UsVP}uGqYtܝAgnhit6L\a) eC- 6'ܕg"y>|#Up%s=sIۻBdq~?d6Ѡd=sG0#C6 l` *92U|IT:X >ħ7_(ȗbx̹٣zl=[֫0bɇc(k9$rK|%XgŢ $ e_¨bŘζ1/x g«1psrac0qa5`P ׁSϰ-.ڔѵ,\R|#dB@.jZbM]JM%57"JK 0bzmSF׮|pI >ȧ:3tEvkZZ,CTmUo|.gU2_rXbͦ]%&g|O%CJ+i9b1D2vKjoD> *რcbw2vKjoD> UM[yM\x#ijđt<5j2ވ75-pb1M]JM%57"JAgL>jZ;X,ٔѵ,\R|#d(_;J$(˛,IEWT{W2H")HJ >O5"6י+1֐^=ւ}}}}}}}]uCzOcWrz+J`{Tɞ&VFzzu ꎨxԴtX,M]JM%57"J(OմX,lUo|.T2{W}mbҦ]%&g|O%CuG\@kZiX QmUo|.T2Twn[,CT?ڔѵ,\R|#dXݑ6_ eMz)~/|a&g|O%ȧI\5-mZ,CT/mUo|.T2\UP>ԴoX QjSF׮|pI >W%@3G>d[ӧ++ڔ_`Ι,,R L=JV_E=xeNBܕ` XJ6L6nU;ys\Hl 57y h@iTwܸ7P$!W,v-#ɋzES>@^d*K5쿼~{L<<"_5f0O3ʠTWؿH ,]}ЌiΙVd7{j+h_YMÄ &̯hdL];?vY&Z3bMoZۙSMh6UrN$]*_uR;/NlR^1SUterV v;Մfu9U55]ş5J۩?T" MjR+Tuce2zNC4 N5! "٤&%Rl]NUG;=V7+?VwZ9۩&D@4ԤW˩h2z^C4z;8Մfʤ5=EV[3=^.*ͥN-O5! "٤&%BlMOL~+T.~*͕NN5! "٤&][Nv9 :մQ݌Nth{C=M(NpZtLF#v3 8!V92M}@H%%z›0/}8_IxxxejZdir {]fC} {z3nBhhTCJl ۄm6}ۤ>bjYM ].Uw`UVE\=;A ”ї8ЇJ/Z0ށyV[qdvfAH` yؤaoa cX.L>@eçrX;FH#i޳]Ke 玃~]ѣyE;ayf"~ev4o.O{(Q s!OiΒٺa xY}N*Tߠf#=٥I]޳_1H"R5VKʠ- H@򝓨Bzů4Dj<~g.92'.vi|fK,MR|S DϚDRnIMO1&0Uu e,26|m ȧSùc|?6hU,\RSЭ>tm"1"{oӌ]U%uo@> n}'/6ŏ&_O[vOs8kuӦMK߀|*iqķBNy[f4IM := ~r3D_,Y._#̣j5Z@xK8;8;8;8;uCWH#.3{"=q*vQUȑ#_^^5Ξ.:D- 8"{aӌ]U%uo@> Պ(O&,{!sth]4iW|#\No@> QSv8"8ٕM3vU7>%9)SP .ݶḢ6hU,\RSPH}.ݵḢ~iFӮ*Fg:7 L@^Bsϳm |#pI|OLx,tmѴ Y> ȧzXQts|6hU,\RSP`[27h.3)n]4iWtgM{5%@ t*+BH0e-!?mѴ Y> ȧZ$"+at]v[Ḣ^4iW|#pI|Oy n$dO6-!lѴ Y> W@3Gb)OVi/wda:t_3񓅠\8[FSRԹ5&0U V Vbg\[ҿx۬ {f$O$]$*ITi Xr6,*x2؈-2n 튤$5)ʤB" d Qd*Xtܩ _޼٥eM?7Z3 oKTOHK=ʿ'nLFZU;oԷ2O_߼!B ߅SuEMt=.뙽CUpphVՓrJ<]U)ѝVjkQCUpphVII\ЩMo%aո:yC=U!¡Y&%}pQMUGMoMtg' Rzj?TpfE5UX^P+@CUpphVII[TSnM݆Z)Nzjoz *5)kj:=^P+PCUpphVIILZ[d55s+ RP!UjR'YMoMB RP!UjR\uP{дVDo,jEZ_=ٯIvkP-Ч_Xʻ H@%O4]y} Yg#ߑ(I^7.<-nXB 0  zW_~n$/ۛ hFEvuF=63>'\Ӎ{hmf$0 }U/ݲ̣|"SCWZ3 oKT{[ hFv6t#Z hFE+~xBzn$Ck3#Qèh/ЮM7(aT]Kn£YV`A $(o(P@a4 ;'YĖy,KJ؋9ԼIh0pj1Fb)F6RʶrAjn0]~P+E0Z~~O&3~AtL}ݜzP[q̢Vd_ߓ֓ٙП hW#W̢|um~}m$ϲh <<G墱E&%ݩ('֬٪:L500S]rD1a r($;u2BL}p\\=*Me.EC&QCPZ!mYXa2ZŭQ+E@4@rL)A!0ڂ9m;}lU;*L?V㮳 `9#Di~KDFի|Uy& Ba٪klBҕ<}\mG{?GӔ.DQ-<BL c7a̬sp5//m*x5K,WY*& MI +4_7\\=Nfr͖KƔ'dD7zHo}4u^;;"> 2~mz&&YCE;kt~PНN~3u'芌ML٨|h,ӡ"Н5U(NN>R]hU62*$΄)|GħLˋ\gFA@yML@w肙B t@wt:*jя7=\A$ttg.JS/@DE/ =}KJ6g :?Sapo8=}5"Q'o .?$t|O8>;"> HD:ܮ{& $t|O8[NjIU&ICV2-iVzU(kXV:/Մba2!,T^ 8M㴈7˽6ebڛiJD=E{qoFʟv".{@'؁؁SɞtՠGU2ʟؖC,L!(n8%MLw$1IdWx⭨ mNkBr&YCE;wxtT+b/ ˩!#.IudI\g2R8O'C"h,@u}+-z& 62*$NNzeҗYFj=\C$t|O89.t2T+S xo;&}S \'%qNjeX sMo4k]MWlXiۤmAP*?T J'/ DT: /DeJZEPpwm\$=>ojz& o$t|O8>|w|:o0V(vaY D YclU2 xLɚW/2Ea` gbLUd]D΋o$ڥ#CtW\ߥ %,`/K y@+z˪wjèiyD->ppP+%&bKҽV/VoWk`eisV"0^ TX!F,7nijDŗ ȿ,s`5*# 13D^!vŎ33Idk"ML@w|O:;:ʎ7ȉLO=\A?$ttg.+@t'@^Q!?ƄQDedщ% VP. ,z& IP._ .)JƇ܋AH|6 w~٨+'M1@0}$͛L_I'+J$ $21'W~Y)ΗKᏒ-8Ձ5@ @ Z'oW&ọh"+_u^vip*Y->w(rPtQ+qhZ >%VoT6-MW1qUԣ1zqfez0-yɪt=l?/7: <ԛN|̋q&$"Muq^V5jg`3_UEm߃ ,:seu9?IV՚." *5(|ܭ|mYw\+Ûvhk?w m|Ucxk֝:L=R! "҃πC`i>QV]*D@UzPz:fY>|C+s." *=(Ly=TXިYJvl깿." *=(y=TXSGJvb깿." *=(̤9E`=^ߡs]*D@UzPbs~zP}AV3SvVA9m&c5^hиC+Ygd4v-".>9|&Я%MR ~@$@#Qeg4]Eedq}yǖy@v:ͮb]O t@'Љ?P&l/8MͬNNEE;7UP^3S8=S}ztΨMgl*NT_>]כ*¸⹣ם}zf`f`~QM'k7OUAU)©htT![E5 8C8.1ؐ"Y!vJ$7c"#]t4=f4*ǐwU)©h#h]*xSא"Y!VM=C kfp p/ZF{Do:2dfVpzo^yf_NJ|۰n: @D1ox̀0kENFa|_fay'+4_X)>y[b %vaӁC?Ca\];|'Z:ix4ڵz0ӶD fdG" G]O3ʗ oTW#/!"NoWaiϻ_ؼ/ҼTt\7( 81lQ )^6_=_jS>w+#ھa#17?PFq56;d/MEsgx>g}u;|Aϫ7 h+?e !̈́=톶A$D:HjtľNoV|ƐbyK)mH;G f^53d-˂-%aF?4~XFh1X1pv8T,o~8#8#8#8#8#8#8#'>#DlA:֢C=ppp\6EVXDy1(Q^@Go=ajt> ,XGflٽX 8)Us6m;a;Y& Mq(Iemvv/"`ҖƓ"r9&dQ+eeLWYak&H#uԑ1n#}/ U?ur7O<#-Kg'Gc乧-E"w$3${c_;Ht6KgEZlRnwIof5g CZw!)$:h.@ߴ2CILwx˙G)v~' rOS sd̑92Gǐ9=}sW ?à0o'+Xce̟<"_|/͘O O&ă~%.WL+YlSGT-F:HDA:Hgt&g,ɮtU{u+6el>O_Kv s0%Iu?\?:6ީW^^=U~K&Qw ơ4RcOTW ɑY gEA t@wtŦdIW|D E$9}E;| qi|{GHwHҐ/T]up"c$9}E;jtadPu~c$[%0Mt$9}E;jtoP20_ K V:8Cߚ$Ǵ|'O89.o3Lg( Zr}0vp""mӾ"5(1(:?3&V#s2bJWMcWcE u2V/S)f-rf,sPañ o"kK84X upd#ӧ?$Ǵ|'O8 |G|Fg@=):Uh3q|jӾ">K̘ |G|TTzhB ڣRc;rr1SӯP׆Ms J%eŊYy%]ẛVV"_|͗n|gVe3ѕZ*Rgg̨ӠGMg$C惚<`jOJN>JIrLw4.3 N=ΐf꫘^,xlL_NPIrLw.'o343Jj_TjNP]i\g608:CY2ThO=&:D E.$Ǵ|'O8=o|w| 8b(w%rҐNP&1+ޱ cs oo43sjP82=یCMIzF!w4/>'> ̜#O=ggfK6e,#<_%3T$<{^-01Ȁ:'WP/n!$>ZCEdQc+e(:U plW:aڣD p~2bs[!*A)Uj@l&(\=-,, әf&SPPɲ9ȗ0 1MCS0}>+u,I#F:+>f6P<͒CSb\lSݳNz]/Ջfz~~nf&@ ~!|$ǴtG.@t@G͡FFrF oȿ$ǴtG.@t@GWYCԴ9oӾ"500(:?3 V#K$NDP&1+Q%QG#}_/^* 9DE6Ii_]@t@Gq0S^ך4ҲA$}Zn{~׋+d&?䅼27+*:QkO;*&IGr"`z4-LODǝʉǁܦSm,ug/j돒-fi>ϗ; u SiR(i|殮R ZVǧۜN@5Nn Ih~ɮ+4/X)UA# gK6o;812Fb:.17|Wvuުݖ߭7`f`eި3+{wLf ^[8g:ٵ3؈L` ,u|…Wo?|ή,֏.-Zs TL~}*$#ba`Ԣ5M*D@tU(H TM!ij6_I%zQ7U:z}fC[T誨QuScbq>BEs&" *j|ET=`PV#[zoI%vQ7Uz<&6-Zƶ7UQ#.#25o :z}aV#[6UQ#.#25o [fǶoR! "F9[P :<54lj£uYώKuC Gi8߇yN]  yHLMi&z-AXQ>6n7x$@Hb,}(dx×26s 8]8֗HȒBF4s 8]86XؒBF4s 8]86jRIZѻVn3030(;FZ-ZSAS))]CyFU#Kv )Nw.X^CYCKv )Nw.ڑhd&{&=!IG7ϓwYSip pj.@^,xUߒBF4s 8]8V}d2BS))]@BF4s 8]8V}>enż95 @I!)+5? @8@7 'P-Ts$IoyRhNJgnsV-+ T$qkZlZP"'䄜rz9J,ygt3_>¸EYϳ GTqq\·z`-El7W=Z&o֩f-".>;iހ)_0(Sa]{w~a<)2ˮko*Y^?}HGj]|.6XZ 瞕~׺ϳjm0jEEetjo_(P|º[/B<%s)陮nODyYj|gY"ƃoi׷"!QD2kCz# e]4<. r$Թ7Xr!((Q93JP-XrPGdOFgbRU g<]yJlwE_E9_NҽfZ$xۨ=ppWgU_̫ (OZ6%(578úN=X`3kjO8pCYuygr?y3PKe[׈1pt-nodeadkeys.map.gznu[+eKs8)|*>8!/N2gfE¶֒Tϧ_ !i[rl_h2)Okq8OvLqATup \XcoD@b6mDo-k+X|K` XŌ5kM"jd^ʭqS}I+TvRmJSiÛ1 c@HI$ !Lr"0`fXdl[]eϋ|]Eң &0 LnƪbJb428FQbU&L`l3VX5"IJ ֲa9FJ}jwՓoƲE#30UY3R|rWΊ$ qQN-4!hf1nB($b I_^7I!Vlעڒaqv:&0 0UOG@B]7*W4fkYkfz5_|Vݺws޺kv6GzG:^kP) ҘNf1]ףh/ڋhm/)Wu 鮫z.>8y+Z_+]z7 esD>EYsu{֩*#lA{EdFQd3 e-('m&unKmѥ;5 ^@xy0~m[AÝIN$cZx$3LgKX3p!̍Ab )@b-%͠2Vt$(PJr5w|KsJ. >푏É G1HN hJ%*z&~r5AwtQl(A'oj5bw35-aħ6˩:AŁ螀W)dH]FњJf9U;>ť9%ǃoé~Jo'њJr5AwtPtO@ǃ_`?{jHo{&YNա&. %@t<#5N˜mV{.pԄl{F^`J^LHf3&=Z]YNա&Osilb8=`?푏Cf? /vb](5Yܴ>퉏@#$Iv^-_z,]2Qi^,p, koLݚ-h )ho !D.VB6= v`4y3`T6$$I3fFH-נ&,{R1ht-KUTj4LG|#<#$TO˔h!߄g=ZB6˩:ޡi, x3ffHዔЯ G76˩:i.͙y|#ť9%ǃ3RӉ"~>Z>Sj\|##yo>g'+q!DMi͚۬,PU:PjTť9>>큏Cnckae=4@B]ﳇVzbX 3Sw(Z#&_Af&e:"]/Mն 1#Me,6se}{ht{~L/I(p LaJX hN@(5V6ZLR+r|| uː兜ʼKqG(ywNDT̫ kD|>4 A7֫Le-KRBZx.o;Gb-FgbqFN3ș!|<^Tvn`So9[8(5vyo[" ESاAq%VQ]XoᤣԨvl+B@D@;|TvU{N;J_"Ӻܽ-5-:J_"Ӻ1^oQ.mEqo]շ.Y gޢT#\m+B@D@;|cuyj- ;J:˥"D@tS7N%2woK :zEQGV'v7VnwJةDm+ToQQթ].M! "[ĝrҼi:i']'$))!SJSv[INwOڈNڳ*Хw `3gzZQ"D$s[INwO1%rز"Vs8]8vL'Ȳ"Vs8]8vB',B&[qR)n|v޽՜NtNI; ($))vH5l'՜NtNUO=J䮞e; E$p p'z{wuW^  JIYy80`c4R ;qY^z`N(W2/ T éFh4F/,' kl@vER]he"."rgW&EX ,ړR&+4RE\}t\ә}O>&)_ $HSb7~<)*YtVþ{_[>XXB/kGHt%.ՐH >p'fGʊvߝa#Ջw n Ϳ Nu66+yoL>͋*MĿW(* (g4~"Yo>HZJ}d9%}Ap\7!$$I:^3Kђ.Drݒ>P}i|.guoTq=`HCs8QK%&k֒= \Wf"ZT?Hgj4nRGrobmvu6p6f [PB uϪ5\m4h^CYey'r,~?b#PKe[D7Utw-indigenous.map.gznu[+e]Ys8~ϯVDaryfvL<3{( Dr̯_" $A[J Fhޑ/xW^Lѳ;%W»2wd8yK#dŤ1V8&,<XX&2{:gҿ3vZ27է3qRјEPY\txۂw$ElOF`F`\928:s έ,h4h&sSO;usQd)NS LLTW7*jȔ\HN"o,ȷ/mUu\&iMu CS93@4 ``00T6-eoW^Sjt ֊L @؀({ uHƎd~lx Aǒk Kzb)lzIa^kνN-uO~;q i:,W#ȇTno 疖6?Z߿gC,` ˪zUc)lr[aKV m-9N;b tlٺ%#ȇab9r[q6U{6`@o&C#A!y8ѐ:M|;aS}}A%2jD&4|K8,7#dʭ; یS*hh[*z2N8*C]N.^]^_ȵJ}s JyVIKӵN^ ~pOܿڤ}YS'p̷ $U'n5(:&Ert$fz8C$U2d8p64,8M ñI|#'qIɢ |wF|*.;C_dlF=2] =!{d7|S_pI|għ޽5ia(@L,Z,UbM2L]Eid$N3Skm.8(o|X Ac SWFoq2\'d7P-?ԟs~6p=!60uo.8ΈO%àEdP,ٜQoٟI9&<Ѓxg'ȸ4x:Zak>y&yy60uo$.s5opJϴɲٮc1yg SWFςK|għ| LsY \]zW pd*߉;!+b˃Twƨ!,ڽL`l06 uCwH'վډlB}E؁؁[E0Q :>$5gޑ,]=K8;#> 4qgȩ.Up, ?$U$NK>;#> hb$Ƀ^:sO6/2dؼsg&7閬 Yu18M:t 2ppdּCg&O{Yc!&"ΈO%CDd#RPPñI|#&:NK>;#> la!NbE*IAʴt3bQJI<˷\ؓi$&9rGL4$2#qaWdlR3bwK=ۢz^gĝl!Mlfv$MHz{ᱩSQiiޠ7 z<ި6]W(QT!ƈX42N,.oYÖXt׷yh5/>fW$ϛGlWb _d7|\R>;#> ;H>p, I|#g%e3SPGXw78Ib&"%q&QT2lvEԖH>p, $U2dv"GlX A^$U2dh;#&N;)0. z+|kd́/L"LD ?~:i1IوWe,Z ,,O J6L6g$&-_]^#*i.)H\]Pw 00O J:r8Y2LHF*" EԞ!'e6u)=< d*SrܥZ _]gU˾?/[Czf`f`~QNM%kd5KMH>z~i^idgbOξ< ,X_Uɘ>{\gZc%EzKY3_WHVW0o6." *(铒tj[~TWhJ6_ХB@D@S%}^ZNZ u=vTEI+_+ZzoڥB@D@S%}R^v{`RWh%;߬KJ-JeT=XWG0hJ6_ԥB@D@S%}2"孱_G0lJv멿y MZ Kz[ -Z.t=R! "Rrת ӯf-Zz݀yԪZE\}p\@7QO?Ի0i $@$9&D􉦫ȳ[\柮ߒM^|{r)c*au<:N:qBC#^ϡH9}|Q)©>s^ЦsM6 (NOTMڀO/hӅ&kfp p&m'~YqRѫVPހgzSZ 5(AQ)©3>iMlmkQfFpz jҊ_^Ц&kfp p&E{ tF#)I+~~6{Û =@*)'eu-@_IPF3 pI$^ζVE]/䎿R+k[?滌MA>O'aŎK_{ςvD4=¨E+Y GʮE\EUD߮؀ā*=o6a|݀yԪZE\}pf1{O@ m6B,X]78k5CVߦ?+ҼHtT7( p$mu={oȺr)^P_8;6_=_m6;ާ7ՀmhcAF[E^l?mQF6 s%o/% _ӳ$E Nd$.=>ε "!ғԬ8w>10tץޅyH[  ΑBzɟ4wF}I,勂wB꣑.?tueWƊӹOT56lİjF#`D0"_yD͉8"U1E/^X5=pppڳ*Yc8Km5_۾@rZ 6͆f/m6D_у ,3Z6x<8p}ܳ*Myrg PKe[p* epo.map.gznu[+e]r8}ϯ{D=CntW)کE_?傒rND h&DJU[N^<_ͼJȟo8.. [.K\_ati!56kR,ձXYaif(&ml`HĨ?o ZSvmfrm9 #$cU2ꮬUc˕#ɕGEHMͮf̫rXrшgd]: չu<`*u}LL-WM$WnTͺ6|[,Ţ*v5 /|q;@ SY+Lx2 OWJd' _˅3ɅS c-. `6`#$O?논)O6`6`;B.doJgR_eѢWYO>>;>EQ|toHrp\ljm0Bv=fc=fWoa|]/⹖I,(a)e]ڻWyxQZdž;U^^}&xy_ ȃ<0ZLqKd4}IQ.$Ô*%+p2\')2H2LbIbГ!I)UKWd$N3Sd8d8x:t+&$Ô*2)2I2ӎ,ݪ!60w, |wF|-fd֑[59DdRE|\R>;#>E3=S г!I)UKWd$N3Sd?hԑ.0jrdRE|\R>;#>E٬#[YWΐϒGCS1kHʟN6Ğx?ywWEU h= }; T8j6R\v2ؓe`<5&k5)4>Ū0rnA;G s67f>2Ҩ}o̶|'#~H4k)HOФby߷uE-#"{,yN֞%3U'>Z; R}C؁؁؝"{D8=_<-JR°}.n(j⾶`6_ա{2~ͅ{H-]Ȃoz`79T5o :V-;n h_jnLm$!KfcL(udkΕ;[Ε/Cاkg&T0qi2#Ef€DS4[Ê@1-b<3 ?`F:D1$S(D}$ӎQʐfJH'9ZzZt,x B5Gv6G}f€ΣA[ÊBDÖʣDm !e$"OӬ2㴐f̈a${!b-[:$zABt#Oo#wס!sJ9ʐps.Hp-}(+JkQQk m$̄G-GVPyHS*dx4d1@IQdžӝ,Q jqXWQbY14XZf\"*W^"f'= zq>޳35 vH}{ANW"Gu=OL7x_Sw7{c1vIO]V]R]e%gg(ZoqͫjQǽk0_!H~Sozr({uޭZ k.fc8kvHBVkCGF)v1 a D {Uf|L1dnP)Crn.b2er`YsdRE|\R>;#>E s2,Ax6В$3e#e#p)2dv'udY>FM f S|ςK|għpڒa!@Y-&$Ô*2)25;Rs[fYsQL||w&|-fAwi˟6=>}6u9[Q L*2NM7) iSr-bQx?^,ePB6g\fY`fqY7dMs(Z٪0Ԩ+0$q̷{ieGa=b/b?|՛qD6;tW`$Ô*2)2O%œя-/QCtm S|oz8ΈOzh(vdVFMѽI)U g%e3Sd>4 wd)0jr60w, |wF| K`#K!W60w, |wF| g-oa+d(; M2L"=ktY٢:Z Z:23}(]wMTq6If\ʼn@"-2 9'vR~'ϰf}.؃,(I%U!ެ6[w߄|*F|kCUuY@4@(OԤ̽!)e]ڻ&vr[//p)tȀ Ȁ, " ΢V-voo-k6v|h ?fFSdܗ&{ǾHFBZ&Lp:ȍ}j;d_M!b7*2fw^'͍sͲՆꚽ=x>"!vQٝP0pжC]>"!*(lj[ xZ9zoS!!"RYx_Z0_L׳xOHJ-Jv~&Zyl}VGTHHhԢdw]jj8V,uhpYOHJ-Jv~&Zyd}ʆNt=7 TELf%Zp_YT׳xS  MZkV" lWhFt=7 TE9mnدTE >=;r t&vȮE^Eޣnoj1@$@#ieh)r-n>n>^6W>P>,uYmf7u^]cOs1 L$0Wo >4dy~Z>lf4.ڔ_S0ש& 43ESU_30י& 43ESUm/ڛ]]E}0f8Ff`f`14"kloXL͌AAE;7uF3͌AAE;7uF3͌AAE;\vq#]t6f|%aaM6fFzE;6 sM5hx ("h'C0ס& 43ESUD{:dfFzh?zǻ@@"%v»|[ߊp @o$7S'{'\ʛGMjˋGoW?/]n^J sœ0'gzj'ISwf_ eVD7h"jZE^=:Zkد+h_C#Km& !yy.d>e*ѠNv5xzɫa/f}6@}T $^y.E&dzƙŞ{WהMYTjÙ脸{޸>xXGlH4#F}iW{F;5|uejiDFoY] {jt}N[Ijt vTdBg]]3Ko쎡v  "i=:wҾ^5b~uu_-P,s:G%|3o{Qئ+::>ppW`ݫ>ZE{ا h/U!.] c\ ҮsC 1356Ny0xb[W*^|FZ7PKe[ICDD ir-ku.map.gznu[+eY8SF>U3=53{T nYWjhHF279?\EU3l`؞ƺPusq+S?D#gvAzGo ~ &PESC')lCq:W 'G{^E{o^c,F1o*'$'5Bj\ۥ{Xи&T!UU2E%nAk晶Fȵ>#T YuJeGꢉ8 F`4 FE2]}M-^6Un͟k6ݪ/x Ճ1]U[X#(8Gw&,/2 G b69ۘÏ\ޖTN y IMT&ncKG;4],h_|spI|;! r0G\tI?S)d%ҡr˲5Awta(A3o}1BW&|9~aE˲5Awt(A3/l I,Twh,,h_tMt;<52]{3 E?.*EE3E :НN~_葐yp6!.*$'|;! D!^)9%gx''qx: TȅrИw!Წ}M OrIy80Rhǖ!{eko|.i|'Ӄ^ 0\zBHhKboeko|KrR. >OjqC1]Vr}Ա⽣`e, |WT}48888]1ԛrC tF`;j!!!'`Cc9GH";twh.*$L} >OzQ 9_()U!č˲57>es6|;! ՊG;6X !^,h_|spI|;! 2!ĵ˲57>5ʧCK2ز]b˲57>PIt>&P?G~x|spI|;! Պ|>fLxlE).EP@/k,ߖCc!eYEK `! tǖ˲57>P~SƋċ+"dП\ICf0wd-{KG1f0wt ÑQ/g27EMIrRUv@y]*Yl'd ]^nt}"f;C y? #~rWƟjLҍuX.Ū݊,5 gUZ헁\tJuY'8n-/ }M01+ `9>dOzY]I⚔êIϐTzexK15)Ccx岬}M]4](JЁ tzS++&ѸaG^T|X!pYVѾ&..+JЁ tz+)s.8th,/]U }E :НN~35ɷ[V[uh,,h_|spI|;! # .!Hx_]w.K@ *3z03G_@hUENn ՏLZr^3ۗvc:ovVql%Wf>B@D@;KwJ:SvU{k՟4-J50`_" YSsMWt6TDopԒ+̧}YhgNIg]7]3.Ϛz-R|/ڗvtuU=XYmoɕ̧ҝXng\k5-Rd_" YSҙIYwoC &zaKTf>7ݗvt5DPzW¨%W33B@D@;Kw)iOhՑa[ YJNTbS^Epv=XЙo㪾c`3h,\oLN%#I>Ty\b{8rRU\+I\Il+-jiD& mB6+Zϻn/lnpҒ+U3 0.w.".>9u>KЏ+З=O[rU,<ܹ个3{#bI Fq6q~!_".7*[ko*ˬ(^6:|nH .8ѻZdQI^7{V_=_l;>dw+#ڡa.#ы79n@.> Fq67K/L.Jv'gx>g}v{t!ϫ57Fo+>el>A$DHwެ!uY׎} H@zgBBBOxSG$#Eyv?l~u4PEٻNX{9'սOYcjx=.puh\4E^X"E: iz HGp7llf [PB Ī1l'eV̡AmXU]f*6&?s)PKe[e[=dk-dvorak.map.gznu[+e[8SV0~؇<3;l6=3{yXf$=~]ect̿*蜃s~RL{ʫ_=?<&\yWzS&9]#U|ӣ.p \ z./Q1sscpL$Y>w'XbQsM b<6TsS}ιqWdjWn6rxD.b.'A;!.fTGvF0~FHN9p)ū|Sy& ̝ d:X;{,^AW+3}ɓY&R.Q6qg/7/ t:@g3:?K|~Q'Wb5HEygUٶ-)4om.pAד\CA'%7qk0?=_3" GZb&ҐV> hڀ6 AXŖZe]>3oNeU ^«'cxqtcu;Pq.0Lt9_I LBzgw[]6O-ׂ;No;znh;x%Ă_J2Ͳߙ(B%zs$43y{`Xd+`b xI>ԿRFSwrf:@=Ie&/_E#.C!W˥Рq.޻,h[|\sI'#HM3WNšc"emk™螀NO~&.BƱڪAc1,h[|\Id0ў-6h,?,h[|spI|OO )$/㙢I4BW.*ޥI,xIp /zH!+  emkB_QtO@'P ;ٳeAc1x벬mM %mG>=[x<0-z/;MX!/0wbf\VHMvhZVhEϭ?rL[׹,ӘLKnVif<IO ;mTn2;zA\@-du M`ASOte 9<&@xƎgJ7qaxᲬmM %mG>=vrEjϖ.*\zӓ^i'޶8KQ_ 4h,o\U t{:=u@ =[V6h,,h[|spI|OOjD+g̥xBܟHe5|z'qx:zXr%7RsòAcޅxmM OrIHq|=P}k2=/O䲾kK_|z25+1c=[ΡUb˲57>d8Ugr'{iX !~uYVѶ&6# kB!4l٠B\,h[|\NG>5G-Q+ Bn( ]#]@8!됷h1Zhkq[#u&բEܗY\޵#*苸p(fF,4 B.YGKWRL`]| NN|D.汁R$Hn0 L`wJt! ?18FzS&q ~Q Ȫ=vw7}5 ȧ'C(kD)|I!+}iX!mM]4]8UO4blYmѠBtYVѶ&6# Cm7Pc_b~w޹,C;g,-%J L'zR>"qٲ_.*\zӓI$ '{Ac1eYEۚK_|z2BxϖlX !벬mM %mG>=S=yͪ!{"_n^=U f0?(zӓ5]q" wC$_92EfltԟhTU%؈ؽփ>*7o*TP>'cܫegPjN :߱,D@Ԡ'u~k i՟ԙL*̧cYhgAIHӡj oQ]ނف\f>B@D@;KJdކO6ȕ̧Dz҃>7gk՟mȕjhS,D@OZ FjRX" YzP'Pc^\Ff>B@D@;KJdҜ"m_G@Tf>7=v 9=EPzU\|ov, ,=(z-:<449+Uod`]\E\=;I_kR/( H@򝓨%O4]'Ee]Y#?۴HQ>ԇFhFt4'ԍgV‡wc1+S8©:h#~ޖđ,H|HQ/i<]^?h1T1p^\f,sz=AG#'}r"^:֦EΜ.pA3Uw_dՏRL@R=6`f  Cߌ!:x*TPw[A;~("ܖWqy-q *sPKe[g^^at-nodeadkeys.map.gznu[+eYs8S}k[z؇\d6/.l%!8I%%U!`&}]诞pǾfE.].ޱ:>.p \=//Q K1z[b/"]>u'Xb1}M_ƖbʅEӭy_uQ|n0 L`jv*}U {D2(+ؚ']ߖu;88L_$L b]J-/^ͥ9sf8Qghf2kܓ3S 'KYATD73JZey6/Rlj'źZZլWwj ENn:u򣾨/﷭/X.WB6";vw.j7$$IfG>ˠ&&=hf@ڣQ)^YNѡ&΀Osi,63z+&!۰G1jCMr9Qghfj^LEBMPuj 4G|; u43DݶjⲧngSQh"mSt 3S\F13:꣆TID %~lCMҜKs|ЉPJW~"jᰟڬG.3S\siN|:~#Q\go+6c,'U/*f?).=+EP7>6-#-Q2D9>bq L g'&GEtٰU*o5C&n8.p.u´ƈ!fo ,z4CmSt 3S\mA|5GfO.\ DnR=\ӘC3q,Y(" '~2pVpVpV|VМ'f͋ƥNT-Li񔓡\<G@QyTGQӮ<~WYy=Z5X%+{a#Z/&Zj߬T/ߪ,7eebTKTl9ϊEs>:C_wr.A{K_|#`4K.ܯi[vVNhlj|d\~[dwPB *u|O?b-Տ..$f/mB@D@74ʘ]!"Տf F?[" Y(HKTM4M~%W۲͢FG^6Mգml#W۲͢FG^6MճnI'Mf \Fv>mB@D@7%)v4UϺ=&55?Z|/ޖn5J>biu{Lj5ћ- :r_- ,j|d%EmDo0۲͢FG][djޖBFZd[" Y(b@V} A؄珆\z#hjE\E'ǥG^ʡBF_EjW{w0]@xv"."k%C%~uZe~5Yb8>/Tޗvx9\=DHt‘ҽezHe%=pxaZW3a~s[z0 iZfc;ͺ$(FeiַɗE)ž$ LW'XYC@@|aF>[!ƃXn1H'ɴқ1d>/e)ǂ$ y$Թ'XHCHH}<f>]W%}Y%Ey?<6RU:O`_{3m9O$?xٚ3T{p \Ѭ*mEcyVkoӻf Ez)? wWùoՐt> *TVX" ~r.b]ۀcPKe[)ohu-102_qwerty_dot_dead.map.gznu[+e][w8~_9{a^^r0 l܀2~%diTUR4*0HN|]Db _<_/ޔqwpp &u.s E"JZU<8M㴈 U׸Η CZeueI:^mC}! l6F-ls 5ܥ\=|yc]BqW"e::;:|<2kH?%y&_f]Bd֥7./y1#fČӍ\})ⓐ5n2louAg\\&u. &}md9S(bS LLTW\\5& sʗMw0g 2,*oTD@Dg䦉MyrҐ0QԖL7JVd[+>#UK}ڬdi:  (3:g@Woz*_RF-jJ>қ[u㴊 \HdmLL5#aJi3וBSLׂAߛԒ'030`d-WvKh2&Ieuz;^26Ѓ#q2tM2UXuJ#Q2-Mh%ц3S]=5N$iEM:ٮxF:C\Zd$/jC\;VٙouU^^=媄ߢ֣{~`YC4mESZc7'_8HDZ-o{:q5A8NpbpN_8| E(T1M(6w `lKS6M1!pЄلHod] p/Et">K1*Ӿn3Z1bk<(Kj*I \#Tf:PѱS pE~Zw.S8YNhV9ga7_ƃ"Z@w肩A t@8/ (ęxP.t'. JG@Ϭ<+"?K@Gh"1~I8W tӤ^*$1?":<n`xǃI00?F&jDXfa55.y%Tw#ӆ7<;w;a#; l;l˕#D.D] pQv`v`^\AAAϏd"ci^u45 G]RKuWƥq58Jm@qwīZqURUS`i3<;6B,dM؍%bݘ{o.g< ,Xr23/'vy&- ..=nomkC8vc9ҭ|Vb׍MzZ kK{&8C8l73g/P7nX+ׇ7iլgK{޶&8C8l736/XwR{ӪYnmMppnA)g6^CձnuVvlkC8vJ9Su{̬7/=x[!xPkPucf=^ӪnmMppnA)g&][d빵VNvio M<( Kyb=T>US]ڛnkC8vI3y YϯGCV:#[hUu/`3~]/ha0 $@$I.tymXW?T.]UQ%6-# 8 ph8?B^BKn/8MZ!II;BvXr jFaF褝R!N-UAV0z|t^gU/ mݗ?5`f`8Y|*ߒ[]Z!I;6Bv ,UAV0z|҆tҎ]ǖ*àZQ=Q>i'tҾHMd7md_}xƃoJϡBq,UTk0 0jNɈNZ յVAZ!Ih{TȮ% 0*`FaOZF{D:VAZ!IhϽݾ  NJrۨ: @ɗ?ohLb͇=2QC~h5p81:pp Ts2kqKڇBXn\~ӪYDZVUw+/>/fVFom&Ŭ'7OzZVh,ZUݭ `f0;#|!PNu6B"Hқeko4//s]'x:aOkފyKZ?ܱqZg|!(^Z 7psnQ$ľY&8$uyw*X|me^4wMa XǴg#D,EQ|bFX.0ޮ} N“]S/ϛd>貣~!}H#"`ʗU} z~ԺόGRt/ uЇ Q?4գbE]Eke TjྩT/"/"SZɇ/;[vn kȷ/oJYZAM{<܀ 8Ά1Άs?!}D,X`Zy.ʪH7ET^uɲ\PKe[+Caabr-nativo-us.map.gznu[+e[wHS}Ϟ#>IfAf- P.闾VŒHsBWT t ܱϫمwWu޳֤.pk@7osLO_LZ'k}ʖ+55DƖ>|!\ N~WsVzU`# Mt %bʶ rSI-/˴Z+@ JPS;< Te,/T Mf#ZBpVldf'88)z:ʛ$l^뺩fYY1ݶc'J t>v=c1{=?=g=D#%pK?G25t1WƘǢD%\POȕ8kN-{>8tl/-]ݷ|;5 ^Dx)тv ơΤ `X8yAٽ^ToXzb|2 d;Qr|58wc YZR]~J,'BFcc'q07KVW9095J:|$iO 8yNrԕO]WfIӅSC :f(Hr"1O ? h"cMН4]45(y&% YJ/Ε MP_]t 3S\siN| }gp.^d+&b(r5w|Ksr. >a` Cʾ'W 7j4Aߺ,Xt'Mt;%\ *cGL Q6J貜cMН4]JЁt"s7QZɅz.i:i.͙3 >! 9jek˩*۬K&ODYQVZ' O2#B쉏AlvqjA*5:b>o{X=cccq#߱fSv5=tD`;kR#5jHH&fbmwΤY[0ˌv0)Y&YB%z}1D %^vYNӱ&΀Osi|b8Q2L̟jug=6-&b(qe9Mǚ;> >$C_AoL Q5J벜cMН4)A#Qo%s¹y=Je9Mǚ;=\|; IDώfFMqSԀ\xbYofnnߪ CUfnPHl9_?טlmM/_ X(WŢAEwx?h"鲜cMҜYb8Q2=/o eB$4t:dy4kBPtGgFY^*:|7Je9Mǚ;ipn(A#Q3#c59c$n{S~@1g4k \|; I6Gfb=94A?,Xt'Mņt;%?z"L$rGS2 h"?vYNӱ&N.L %@w:J~-Cs)"u1J\vYNӱ&N. %@w:J~'zDQ}9Jr5AwtQj(A#Q 1y_^,~tvW} f0iF٫7J|³e|:=Ktmf>Hu`8Fl>hlM|}B UJ K'>\Kvm~tqɗ 5kzo[" USMK]R#Rl`SkTU! "[EazɻսIqȡZ z/VnuJeU=ޖONzj_ *˶z1.SȮmUVQo]]ճ.I &j~OVcU! "[EvvUϺ<&5=ZMz/VnuJf%DmFo0Ԯ۪ЭNԽ-5w%zj:빿ٶ*D@tSNm_G(a{jM£qq:3J*dcl ;'1%o4]eU\W7lUVuêfWMڰ-c' vb,PbNΊbS))Iʓj3o4k]z3 e(YBY e;9lp pJ'm,OH|ȲBFlp pJ'm"OX|زBFlp pJ'T\ +g6k{DCFo&;' Ƴl{S)é9iy2`3S8݇S:i@|BFlp pJ'z=tbN!# 6s 8}8V=~QVnlۃ `8:% &n0`H[8\ IxB:I*rYi{Q2ӾxťoͯoM 'n0ժ GkUw-".>:.uf9] Uߚ$ԀO'Ԛ0@xVu"."McCȟ~y^U~Uܬeo3l UQVziv\=DHt‘jffLeaZg3mv(^[va4X߈}αb NoTXg}jeeYdn?<1=N?kV5@XzV6Fwl7vDBdzLͷjݰ>c1ۂ$ I(;X/u^CBB=fw%ڣ F(jKUzfw2okP1_j#8QSþ,>I)fx5Yϖ͏JYZ?MﻛH6`9:b XgC{*TPX[Ve 4hѴn35am HR{{B%}aVybO`Xi}7ՆPKe[$ mt-us.map.gznu[+eYs8S=U4&0&eT)ٙLwɈ'3޲*ef?&0m&B,cIvUY- \7UY\&ur1 :"{:Oso2&Sy$Ot!|fz;:Yg\TI l:Mۇs`ǫ @|JDGu9H!At|ê!ln":714Ь@Ǚ|曛e|dg^Nz[Iwb߭㬿`oUPwuGQwN?;y>Dx;N'OVSo8 J_9j9j~ 5w=2Rq5fNˊڵhCER_w0|j.]1;v<*ʣqW~\gy&²(iW݌-&"DҼ-t !:G>+Xúŋ?mNЄkuh9| ^GK1{عc ajL|Z3ۗ2 lE0Äl4pQJIg;ͭ|}ľARZ˟Ne@I*y@ޕWk\|; u3Nb)#%LʔM,X|'4g:33;@r؅L5JﲜcM5]JЁ ",?Qi4C߻,X|'4'Ҝ3Mg8W|}$60_4AtYNѱ&莚.JЁ LV\*l4C]St \3N|dzvɥxij"wcdRA(T2zZh»貜cMҜY`8Qg?;tgHgͦZw }j@ &vפΞS!!!OO 43&j5cEH.Mt8J<ﲜcMҜg8QgH3BVXLJz@!貜cM;Ʋ0Q'hfFMHɥC=v6J겜cMҜg8QgH3& ZKmlB7MPr5w|Ks>=u43M-E?JՀ&b(sk\|; uffD-IirG\Ҝh7|oL۞? =_lXK'ߺ풣,PU:PjTyoL/ϝp&yJk h"InYU'tk۸b po%TVŀ&b(r5w|Ksv} |;u|g ar$LMäE%E,ʵ4-uo9`;G Li^ղ`_Tƣ HmY-תZ7eòEq\5AMPք~\&S<ݛȵL|^ i˚䓊)`T}ߝ%PpHL}P0%DŽ Η RRc3z<-;[85{|oW" YQNHQ!RIn'רv>B@D@7%xΛռI mv =Z |/ܕn5J>2m>5oK fmv\Fv>B@D@7%9w6Uߺ=&5-{r_+ ,j|yT}kV- zr:ɮ,D@tQkmScRCnQؓթMwe! "EL:Լ-5 E=ZlW" Y(s~LRCTݢ'Ws;B@D@7L hj`B!5Ф'Wg]ݹԘHoVrQ(9$ Nb:)tVeQ˷lUV_]uên&i>}C*JG×2CSvSŜNtN E; ?tfN"# s8}86\&йe;0XIN.H^ES%isGzs f0Q:k6[$$l'?ŜNtN额ȋ6 ?4l'9 >E;D&Љe;0XIN.ڙhgξ] N:5l|L߲D6bNp條y d ,IdbNptѪ7ڡLe;0XIN.ZFۓ ?Գl'9 >Ehչ,@/:%>bMR7j 0`D> f~}~u#umE0jEAut7jO^H|ĺŊKoJ%}I3]>fU lU~bcrcA$D:Hu:S H;Qs,H@:i yzҺό%u/*t(GT~yc̳EZ,U5GO.!S9gggggggݜ%_$?xљ3V{p \Ь*mB4S5}O3"=ZClYWWéo0}D*TPZUA~*__gI}7I 9n=y-p.~2ҿzMzD\Z*e.{l9rc)Jݩ;KkoCfJ4IBܱ-xTh!sќxt$Ⱦf7&0\\œڋt_dirQGqv'cy =,Ά1<1T Ky+E| ۜpW^~;|FrJ%'{h%o  l`;d=4rۏŒrS i *92Ud=Su0 >ħ\7&.<Q vs1z1z~W0>xwCcC(ֵ<$r$,`YdC]^=0jkѧlt廒dLWnn Q.ݏ6i=Ny6hUBqINoD>  K@@5]v"M3vU7> T2\dڟtٍH,^4iW|pI|O%Uue芌t-kX QiFӮ*&g:7"zJkVH,iFӮ*&g:7"JN WrUelѴ Y>ȧ[%C7|^eCbM3vU7> T2PDW5zO̫_lZ >7BsNl Mc?ĝ`=WfYplplplplplplplc.v芩8d{{%{Z' v`oTU+nԨQOWZNM%Q=iFӮ*&g:7"JjE'~j얷H,lѴ Y>ȧa"j!֮~Mݶ-!Kf4o|.|#dVD-䢦n7-!M3vU7> T2T+?n-!lѴ Y>ȧa"m˚4w٦} s7> T2\TPW=&0?lӖ4pG \*UYȧlj oXQjӌ]UM%uoD> ;u"t-iX QiFӮ*&g:7"J+2ϖz^be~s4I\,`_`UgA*n+i^f;CZ& ^g«#bƟA mPaqga׸""q%& ~(0 (F+%ij2xAdhr&m>O3iYSܜx1^xjER 5]vEbD_f4o|.|#d8w'7i>+ Sb6hU|qINoD> Պ$%߫["zaӌ]UM%uoD> Mx|Qe-!?mѴ Y>ȧZ䊌tm"znӌ]UM%uoD> WU2O!5]v۷H,~iFӮ*&g:7"_ 8)%ۚ~M`̯M1{ L9E`SU%+wxQN, MH,`YddWx^4oũxmF‚d͆6 hΘF%ƽ07vIR{"j?X4-2@2"SZ.dw!)3tW f0Q5YR`N@>WA3/;eZŪ]@lFQcN}QdɫWit"D1wz*E0.qqO&3l}0%z%k0.qqO[MfgF9(RwwMf۫v&oTdqHHg]+ܥ{zP%_k.)}A|$*o^; QF=Z 93[JG3j>d3WM9[4QL9K-GGGGGGG uq"|KUIKVKWt"i_%OJ,@Mo6% j6sـmv6,p6L}Ά+z!B8ecħC w,Y/B:&PKe[ ba-alternatequotes.map.gznu[+e][wH~_={W!=Cnd6^^|ZвY#rKS}bYqU]]C;eW׋~_<.ޔ1[;^' x˼:݆xEYr]Y(j"_嫪ȳkViEYk\+3&+-r)Nfj@"VĊXZQ"_]hXqS}ʉ+̳T }}>%&C.2Rztn .jLoVVuwu>#t:B?5>T oB`{do И.İed`@@GAsTFz-M^ҙ8}AfMXyK,um@ssL I"{.^u^rըDE{<7nkVUJE'[VO6 LLTSQjFf=Y$h2`4=VEWf`f`>&Y*Y;ڄ&fq KZ?y!g]=d-')/ӲeӋ<5$IZ:3J՘V |MVk_gR-+^F,bLM^j!n+L÷xxOIbUolh9A?f0ebٸDCG7fzn^Oq?[1Kd9n8òÉA8}ᘋP/BFF}cD_*đ ! CF:<&s$$bETg>5$y%TNJ@wP:;:fٓI7%̀)ƃ$XN]i@tG@gv4pt $d$tT\CߺXĥp \ '3ɐIb:h? 5?ƃ$ZcE;it!(莀$?O'?= O< pI~ZcE;itaQI~~2-g~=],%s40_ .i;Q wם LŔh29!Kj )\ g28I9ț(Ijb"Ƈ$ﻤX¥p&\>{B|&4ĕ-hA뉴-TjESS!!p[U&ج^q^U@OQrC#l}&a;_Wcv6FG\Ŋn.-GG؁؁W4^ՠGu2$ $4ۉ͊65 G]RKu|gOR8 |L24+F|Oϻ犨NxKjхF t@wt&#/hU\)ZcE;itAQI~fň- ?}ޔ1[sE "Dxe}Paue &.`3iY#WtpHh_ [k]bH"@^5'?MDH~.+783'q) |L2{(M[fJߙ5ĝ_MW|yi߻mQPit@T@e{g>27=`dB-׼(*[]NJ pl3k&1MzT [65>$y%TNJw$.ӕ͢IjבN",f&fq.tn@ߑNƁ|șɂzŬWPJ[e*C**&وJY~w-46Vd174Nxo0o v/4mU%|IܺA}`w@Q '\#7~)|m!w(W%I3$nz_!_kE棊nUVD~bi}Xw|eSM =cDl =YlbkԷ# 9wzvnxuIn )H44@dZьa~8$=fq\-kJL<%쌗e LLTs&Yy*Yψ;ln,Y{3oFϥBq-UTk0 0OکC'GYr jFaFI+hT% 0*`FaԜCXr jFaFI+hj܋ycz$ 1-+k> @8`.FS^Ě%vsߕ+oÆ5nf[գӃ1!&ĄX5q݋Kt`s}QOb]Vh,ZUݭ hf0|ĮG Ǟ=ڍg+4V_}_=]G)_r(Qa}/UzbY>xHB}eS]>E Otž%ҽjLDžy<ڵfCzs[Qn4XH<}Jpa I oTXgceiRɗy%7u)`iٜݮXE 5 |1>O'Iқ1.벣~ @$@#1EOH\`#O/y=Z,VU5K[*_5"/"/r俈9}ާh8PegX 8kx"~,P< mz (Ϡ4 ڀ|ll8:G` Y+}6"p;/*MyʋMa2sF+PKe[*"5hu-101_qwertz_comma_dead.map.gznu[+e][wF~ϯ=Gܥ}l&q h٬/}bcK9CWUwuW@ܱe.&u;v)p.vJ5۟_>O /"g_mT^[y}eedKbF̈1#f|c6@_}#35n:lNŦ\\&:$MڤNͬLت>L500SSmrUsU(1,d,n s> LWWqu: " :SD&7MunRϓSA‰pSMR[mrY~HKJ&VO5,MSg@3arL 3UD])bQJͭqZ%[lEVfEo$a`&`ZNV3a&flj*l0[^K`6RKS=3%k^,BIPBLIOIZ-{:Q5A8ONppN_8tE(R1Mdl_:ؾH/Lb.qdjC! e+! .S}I}EȺ;/EuXƥq2|GGpf]ns$0&0'<(KjA t@hI~*3:ahhȯ]RKu|gO89.(0Q@Kđ{t'<(.:VF%gVDzq‰3NxP.:VF%gVȄ3RDdiL dwڏR? b!oKtjRC1 Kj ӆ<;>;*>JD}eʗ=j"}L {W%i"/$d^鳬*Xh[V<`+L?4p0 LJGWBSHwO;+I߂o?!W~[-"@xhVKkr>2K@3pi |wD| 7BPQkcي-]Ҷ( NƣYp=%3".Ի /إY8A$kVV*[]NJ pl] g0} 'Q14NP}R+S4N5>;">J[8L8 ܗ܁Va7-<.] ǔ̌L]ƴC^,&|"b%f Ю뵞;.~ ̊2'7Ud?XYvvi3a=08zYdW\f%,i0 NEj)y>3h@Cmf5 K|l1I~mE#M⚩9ZKW\a30$JQ36|iNxPߒ69+fCX`V 43KIfϾe`K8A7'-Zh}ϠZ}h) }*pg[mrq%]᫷)u3p VS h.AQ[\(ůT =e)+gPHBJfxaQjDmmu~+mb+ǠF=П&zƇ~ &yF¬ϒKJ0?5  _ s&B ito&MIfR,S 6Ba2KGM|! 䨰r]TU溹)-R޸z>{]``9,l3"Xm7jvjs{]MppnAg][dB=lW!hPNf+b=q =u&hUu/`3~,T!:0 $@$/I.tEKlYn2RzvU5ۮwX: @,u(VJlXU((G܌cɭBAV0z椝NIʂwu-UHjFaFUo=Y% aPU((DĒ[0*`FaNZF~^뢨c (Y㪾Vc @'boxHJX*>9*[aGΪ գӃ1!&ĄK.Vb[ǹtX[7 ÏzZ58hUu/`Xx+͞=ƍk+VUw+/>گ΄X2(Qa}o?yUv^5}}mBCuK]'x:aOk޳E=x˒8{\w|nn=W}; ܜkV)=?{[|Y@ l;KM,Jq,S2,?e:Uk4vٲ1|O} N“]3һ1d.벣~ @$@‘PrOșGxCXGd]G }蟐>]`ҫ-u3K[*_5"/"/9Q[>gH(e,x \\5Wߗ(Qgi6iJgPhpymqu68Ά=X`=2kec̊8p΋luS]ŦwDb6PKe[lyy de-mac.map.gznu[+e]KsFW辵Uċ {e+z$@`(qE2V~b=(D~Ut7k3yܲErW !3v}&wl{Uy.e~ݗ %I$ Z\!K}KBIN ."㚶K L8hQ'U_s|Y&ݜ&`&`O*}U ;XbPRQ'][pǫaH%$.ܨ^\IٽX 8)Us6m;a;Y& Mq(Iemvv/"`ҖƓ"r9&dQ+eeLWYak&H#uԑ1n#}/ U?ur7O<#-Kg'Gc乧-E"w$3${c_;Ht6KgEZlRnwIof5g CZw!)$:h.@ߴ2CILwx˙G)v~' rOS sd̑92Gǐ9=}sW ?à0o'+Xce̟<"_|/͘O O&ă~%.WL+YlSGT-F:HDA:Hgt&g,ɮtU{u+6el>O_Kv s0%Iu?\?:6ީW^^=U~K&Qw ơ4RcOTW ɑY gEA t@wtŦdIW|D E$9}E;| qi|{GHwHҐ/T]up"c$9}E;jtadPu~c$[%0Mt$9}E;jtoP20_ K V:8Cߚ$Ǵ|'O89.o3Lg( Zr}0vp""mӾ"5(1(:?3&V#s2bJWMcWcE u2V/S)f-rf,sPañ o"kK84X upd#ӧ?$Ǵ|'O8 |G|Fg@=):Uh3q|jӾ">K̘ |G|TTzhB ڣRc;rr1SӯP׆Ms J%eŊYy%]ẛVV"_|͗n|gVe3ѕZ*Rgg̨ӠGMg$C惚<`jOJN>JIrLw4.3 N=ΐf꫘^,xlL_NPIrLw.'o343Jj_TjNP]i\g608:CY2ThO=&:D E.$Ǵ|'O8=o|w| 8b(w%rҐNP&1+ޱ cs oo43sjP82=یCMIzF!w4/>'> ̜#O=ggfK6e,#<_%3T$<{^-01Ȁ:'WP/n!$>ZCEdQc+e(:U plW:aڣD p~2bs[!*A)Uj@l&(\=-,, әf&SPPɲ9ȗ0 1MCS0}>+u,I#F:+>f6P<͒CSb\lSݳNz]/Ջfz~~nf&@ ~!|$ǴtG.@t@G͡FFrF oȿ$ǴtG.@t@GWYCԴ9oӾ"500(:?3 V#K$NDP&1+Q%QG#}_/^* 9DE6Ii_]@t@Gq0S^ך4ҲA$}Zn{~׋+d&?䅼27+*:QkO;*&IGr"`z4-LODǝʉǁܦSm,ug/j돒-fi>ϗ; u SiR(i|殮R ZVǧۜN@5Nn Ih~ɮ+4/X)UA# gK6o;812Fb:.17|Wvuުݖ߭7`f`eި3+{wLf ^[8g:ٵ3؈L` ,u|…Wo?|ή,֏.-Zs TL~}*$#ba`Ԣ5M*D@tU(H TM!ij6_I%zQ7U:z}fC[T誨QuScbq>BEs&" *j|ET=`PV#[zoI%vQ7Uz<&6-Zƶ7UQ#.#25o :z}aV#[6UQ#.#25o [fǶoR! "F9[P :<54lj£uYώKuC Gi8߇yN]  yHLMi&z-AXQ>6n7x$@Hb,}(dx×26s 8]8֗HȒBF4s 8]86XؒBF4s 8]86jRIZѻVn3030(;FZ-ZSAS))]CyFU#Kv )Nw.X^CYCKv )Nw.ڑhd&{&=!IG7ϓwYSip pj.@^,xUߒBF4s 8]8V}d2BS))]@BF4s 8]8V}>enż95 @I!)+5? @8@7 'P-Ts$IoyRhNJgnsV-+ T$qkZlZP"'䄜rz9J,ygt3_>¸EYϳ GTqq\·z`-El7W=Z&o֩f-".>;iހ)_0(Sa]{w~a<)2ˮko*Y^?}HGj]|.6XZ 瞕~׺ϳjm0jEEetjo_(P|º[/B<%s)陮nODyYj|gY"ƃoi׷"!QD2kCz# e]4<. r$Թ7Xr!((Q93JP-XrPGdOFgbRU g<]yJlwE_E9_NҽfZ$xۨ=ppWgU_̫ (OZ6%(578úN=X`3kjO8pCYuygr?y3PKe[me-latinalternatequotes.map.gznu[+e]KHϯ}c#x zfvY{fq@Pf P۞_3K4-m0U_AUqϾ,U5rzKRl6zS%Oޱ:9"\\Û\58 ⹣M卒DL_˺,J,d\'\K}NXUV]l:m5"VĊX+b=QZk'dI\_*/7B2EY~j:3/йϗ@|Ddy>FON]T_3VVJv]xC#t(ts5>@f%{{W/̋u)<@-ppWOecBAcm:i9{PIvʄ-T005&WE:W%̗md2aUY2R`@@'AhrDFܛK0e,%uniT<$+Y@sarT 3SD^UQ1Ԣnԍ*.2gs-2+ ~'5o&`&`j(EptJ S=d]+TQ^fli{- txbuǺ |)Y:Y;TL,g[ GRͺbqJ>#d餭~YJVe',g $EZmTmgfU!ZN |)YK|j#KUdln@F}zc$ɿt0e!ā ! CF&<.&HLEbJ𥙞'άy%A t@wtSI]7K2cSpƒ"Vӡ"Н53(Nh(ȒHѱSp‡"uICE| qi|GG50V%u#MA=Vӡ"]>˱pi|GG3P/xwKB=]RP]@t'@G7/D1Tb?]>Is3 .;^ w ¹r|"i:19uE%i\g:18ah~9&Jѹzњ[U'|(Kj5*Ӹ4Δ|GGPqǮrw7s=-4 U+OT6 F3zJ D>U|]a;O Aa8l$X.D]pN(;;V=_1AAA/d$I( o'q'"/Vӡ"]>KL'Q2$n8ST=uj:T pi^>;">JfX ypƒ"Vӡ"Н5 0(N QA(81(-M+0>JY'> c]mYy0 L`R@j@R7 ̷B";Y)J|K\ @=D&Ѝg"#HEl!?O]W~ .¥qr\'Q24X뷄 3ĝfK6g,]fAP 6 6Xo"r`f6pƒ"H/Ve)p7 ;@ .%aMbt>y%)\;>;>J[8:(eqz'I6-ֳ E61}m&Ifns+b&hn2h' t4dW.qڇ-brFmrM7qdYz^aޖzw#tuWMnܠ>@Q #GA.(Q^fIAq#/J׬d -"JMK@ %F}" ww"zhfN\Oj:TFN JG߼Q3É:m/ Kj5*Y '% Q jtИ>Upƒ"Vӡ"Н57(NYܡܬ"psjA?$"^zNDc3=@ (dhLM̋ ul>^RIe0&^UuuB:n(QJPDJS$5nB֊hSe7pk$Z6Vaۣ,w{݄3-`&FĆb3eP7Y^ƒ8K }ϐ@$@JHJ O_J꛳tfR,6[dI vΪ n LLp<K"9رX{DZX\57~E%kVn vXlPu7l|$ǧa*էC#oZ=T۬#bD1"~v9a]`+[~yn*>߼ڪݗ?5`f`(Y8/t2DM}æݘ6oW" ,X'd)WnO<*XG[ {TppVA93*FzFdְvᰭAg_j obitV]*8C8lhPWPuix[7i7Glj6^Kpm J>cu{L7m7Gnj6^Kpm J>Su{L4-Z͎m=7ޥC8ö%v U׺=&w[l=R!a[EL4-[znoKpm J>C"X?j ܢs{]*8C8lhPNfz+bq h5:vaѪ/`3~]/T!/:0O $@$9\">:)<-O7آ(Hͪfu\mK@A8]4\?E*^TI7k0 0J''Oډ,x׉% 顷YQ=Q:i}yNeN-UHZ!Iȓz=87xnVa3030?O/FZȂ; ,UAoV0ztҎIʂw -UHZ!Iɓv, ulɭBzm*`FaNډ6̊R/'%<{F_K!kq`'؅ڵfCv{WQn'x: OftM~8o|ja!S w X:((Q>?3z+Q,Y|Q=ڟQ{4G_fX878;b,q:H5"/"/rݜ[_gY# n /%,ߦo{4P^p\a c ~XgC=X`=2kec̊8p.ly[jqNjKPKe[pF pl-szl.map.gznu[+e[8S=|y؇zfv2d66̧_$.Vi9AUDO H}^/?}N]xxU%=;\:.p/ݏI K\{{bC٧$׏ Xt_"hyb\nꏅTc.ڮ ("!Au U d!R8؛'ߖ)%+fs,0` T_J&)mu b[J--<F}TU*2<1@==+L`ݺj*D$ ŋbSE~WI%Yl׭訶,>I倜Ng@QmTFQ>W|gb@wWx[^@S">rȹDBn܆˲Z5+ݱzwgα]$ =QK(˞~Xp࣒y;EM6%xwAA981?_=)#U8f_[ZF8|/?Po[͝EomDAZʛNeFtRzO أ $f9Eq)NΥ8p:i$eHR&a=߷YNѡ&FghN|3\'CzpR L٣$޶YNѡ&Κ.5%@t ,7T=A6):Kqr. >t GB# GHr5AwtBStO@g:?_w~z)Dl{4Ļ6):Kqr. >t~ABvH6L a0Y=`…k gaኂ\ߒiGIr57>ť8Ps|'3ať8Hs|'3@X{V,-]YJVeZgw ږiiε[V ^LxMgFKR _gy &_Lܿ]=뒹Gt.I2l˞|CgRKq|'3D#)hIT=Ar57>RKq|'3 5qĘ.=Aejo|Kq >tf&ԔiGyrXh"6):Kqz|{ >ig?B{ӣ$~jCM'R LggM-?=-A۬/ FG\s)N|3߬>1aLoy:۰c>ExkvK@uTa@#PKg{?wƩY#GH*EgeoV9t \l;5&OBuP=Uޣ$^YNѡ&FG\V Lg5 B˙qPl9;*Β"/6Ҵԣ`;;stgNgR)d^qI5TPDRo j&Wxts/0N_WUeE2@E\Q/KjZʼnkan|&m"gjCy-z< ,2NoLfhԣ$f9Eq)NΥ8dBZkB>'fuң$^YNѡ&FG\s)N|33f:M4x?)C&"r5AwtTStO@g:?3#ͧۗ揦e&"xf9E;k:)A'3Bw~jlH28M 6):B?N|3̷Z6$x_y[b70}L؂E&0} Ԍ_ DJOg{ϤXSI9 XrV,UgC3XJ/*@RxʬUnJ׬rh; `sn0Q3q$"u'bZoYUgj f[O"N*YNMc#}s63t3P f0یrTo#5nb'/$co|+W+؈}ئ/2}HB 3#p/Y9T?[0{|o_" YQNHKBFMf\ܟ/ ,(KTmTn`ё}YfFG^6M3RyIGRC; e! "e%9w4Uz<6h7[u*5h_" YQbMSclߑԩMe! "e%v4Uz<6j5ћ- :r:پ,D@tL#.#iޖMf Î\|o/ ,(KlWf \.|o/ ,(b@V}Q v*՛GkW{.".>:i|$߷k9TH+|C ;'ѝˌhJ"eol]dUa:.}S*JMÓg2e;3ibNpz E; ?tnN"#s8c85m /څL v)éhCy^mu'=T?70`6՛imP&/~oN"#s8c85-d ,IdbNpz 梥7C'$2Bo1'S8=SsⓂ)ϋ~0LgG Odє$qgҊк,eoKRq/n|-wJ;GuDP' uB:X..}|f gJ5[C,)_=_j;f7/+ڡ# œGb_mRlݬA+%(Vfj|Y)Y;Nhl*V_AXϰ{6Dz "!YDҭkA!CZ.[Qs,H@t.r!$$3zo+֒>/Y|ג<ʟQysk"K>MkTj8{ kϗLq;laqFpFpFpFpFpFpFZe!kL \z4k ,*"gj6 HGGހmu5Lq5}YOPB Īw6ް2+RhРACU榺m%KPKe[G si-us.map.gznu[+e][wH~_={W!=Cnd6^^|lH(d~]}bYqU]]C;e 篮pǾ$E.܋]x'X_?!\\5\58 ):˛F^1Xe_UeIV&:XI sDzRhNYw5WbE"VzXWZ($._*/SAMQt`t T / gQ2_ߖLff9geݬto|BG#t~Bk|3Kv/B`p(6%qiqyZ.Z&*ܱI_Ye]2a0LLMUU0|Y+vG s> LWgbe㥊WPƩʍ[2{Ig&m7*[bktu-  33f*gPOsvXF%**V޸㒭rP"+"za`&`JV30'Z)f+ki@ǍǺ,ַ[ g$kW%kyGsazi:RK8rV=> 34Yɪ5YI7b5ն33030f%x,cQ7@Yuwz`F`o$Ki;oqrw!n+[NJ '$c*x}3l܉\!}#L3hc7o'yX#}$O"Ɩh{:jpNppN_8"P$cQ:> l1.qdjC!e+! \$"1 |iĉ"3'ItI-ձ"Н4 (莀$CdRiIfl ɇ.:VFz%Й  ;$h8'|H[R+NK>{B|&:$h6sg4?5/ XN]8(莀$?O'?= O< pƒ$wI-ձ"Н40(莀$?_y:y~=],#s40_ .i;^ wם LŔh:9uI%TNJw.3j|O$PsM b55o!.:V3p))8Ij%;q%g v7wz"F 'jZTpTHI5\V 6URld2 U?Jwz$lG ylFa8_1՛rMT";;&2N^1"9ft;YQp"HKj )\ g28IfňO4s`>k0' ZcE;|fQ|O$C׍GNr8M͈MOD.t#]G'cߑ37JXA*mɖ**tdW*N!AtL Fr6[(QgiZIF>:Jit!AQ5 K$ B>+s\y-63E#TI%TNJ@wX:;:̞!rfg8%3JNx]RKut'.j@tG@g).?3 &I^uI-ձ"Н4(莀$?=ckdXo46?iլyd%!|ɇ5 ErsVv;jC8v|&e3T]3-֛6ޛ#pzZ^ MfPPucz{snObC w5!a J>Su{lXi.x=dW!̠3.Zdž{s~Ob#ۋv5!a J>3"mxo iUnd%!voX?j iUnfdTLhƪgB14IOb]VV_}_3L_7K*>EG1}H;GKg4]%equ[|~ǖE&jVVծf}KO# 8 pspi=DE*^TI C5'G' ujɭ< C5'O' ufɭ< C5'm@'f^qRo}Zf`f`~^j$km $VAAV0z椝IR*àZQ=QsFtN]'*àZQ=QsN}oZuȾog  > nƵVA{PU(¨>igɭ< C5'|S*àZQ=Qs7cɭ< C5'|J쭹(ؿ?00I|&۸ @HM^8rOytDR, qrWqu6<qmvmV 1!&ĄJ|u/.=kD=u][AX[~~`]x+=O{ZVV_}_=]X2(Qa}/".ӫfjZ2+JaOOMwY%< {F_K-1kN Ok:mGogpc" *qu6'yO+(Qasn/R% Ǵln/DyU|,"7T|Y>OH\`ҫ/y3Z,VU5K[*_5"/"/r俈9}gh8PegX 8k ",Q< mz (Ϡ4 ڀ|ll8:G` Y+}6޳2+Rp;/.MuWj?iz{PKe[e!hu-102_qwertz_comma_nodead.map.gznu[+e]KsFW*Mlc%EC+P!`DU3_˘ n*-G9n O򔍜G$e/pp&u.sq#A"&Hȳ˸LdY$nئjneZ˼ebPgî2BF!#F{ʨ5ugp`[)W_r|Ka TIRRם`*fJ[xȕadBE"TzP56X_F#~%DJN07$4ϲxn LLT&W:Wҫ$MI;zYuuj`&`HPbX|9ҝ:a\~UL׏䒉%ݕ'Q*zig!;,UUe 09A\4`\wN:X^]۸`-kԏu2J@<=wvdf];zAi'+ Jɖ`ⓁƋP4_О6 M+hOJK59Q]XО6ML+hOJK3S]\d8̯5A4i4I=MdGJ6|r[qrsq'} ݇ '1[k ;}l)Fæ8_9UbNtU E`v`v`)1IY)M3|Eם.N$E^ICE;|Ʃ43dH+EԦ#Ǵ E.ڤFӡ":<Kt1ޱQ4+FBoc'E޶ICE;|i|( $_n1ݟ.,]ķLa|!Ly'7/Z> cmmYy0L|&0)Ϣ^ N!ߥl^$a XCv4"@xhVr>2M@3pi |wD| 7BPQkc5[0'?ڤ햃$:!\gm\\\̊P2W7r`fE~$^ݲi:T\݆Ϸ`.>s[8>pp‡"ۤFӡ">Ky_S#dh~S}9 ieqaZu]|_[`zᘒނS`L;ӋdoV$1R@TwؔAz]S2+rxg ؤK'˟[}3A@ɁT^.*(ϳW*8zR1@ 95ohadbfG1@ xL<[HrUbRD `";}E-z\^[bh*,jĀX}`)Lr4ٗ]L6lI'<(FaSDZ @ /-%_3=REE⻳&z' _MShp81 4x8,LhVLDs Z6:Q#~"N6'&'Vs <jf/G @ Rr43C [>R#jku s\_,֦lC]X=?L64ћ7;M[0!*f>HB/CvZ0;00Jjz/$ F}s4Q:% IZO{|ްZ {V$:Dۄͷ7B B |]؞Y%{@ZؼoJT7޾k˞mXXN %O'yy y\obqY\7k1UEa q0"cm..i0 ?ɪmvȾ^030rPk WY|:",dNح%}뢗ݚog< ,XOR23gN;IְswᰩAgP7nT7oڡլg=o *| ou'ZwᰩAg6Xĺ{}NV]*8C8lhPbz:1޸ևvh5zn/ܥC8æ%6c9f#[ETppTѠ3fzn>|Cى&TppTѠ3fzP}AVS[MwᰩA9ZP=4vh5¢Uծ_GgYɩB_aHH^8\">"),-./*/%]-Ja*vu1x @N GdC%7We\7k0 0J'+Oډ,x׉%7 顷YQ=Q:i=yNeN-QH!I˓b38xnmv_րZdfe(堷YQ=Q:iCy]KnCoF0ztF e(fFaF餝ȓUj»k"7x;ko4r9fKnrx6k0 0jNX,xWג۬Q((ꍶ' ճF!=6k0 0J'z=:F!=6k0 0J'zF|?r/uW``xr ,LqY]1 @ t1/`^/֊nd,[>Rj:!\IjpTS2۶8hZ[[ }Ï:uhUk~~i0^&Oz|}CkܸvaѪj/kC~gv?"X^㬳>6X^:NnU1Jxd.=[TC,)N ǵkyuGogpc" :qu6'yo/k(Qabaҷɳwɢ0,SZ ~Z@@@F#_;6{$<5U[Avf-C  &_W:((Q>?3oJR.X|R=ڟP{4GL/WzX88)>b_Y%V <4ujE_E_"tsv}["qVP z8k *~(P< mz (Ϡڀ|lq6a Q#z`{d; YSp;/*rMx!;PKe[ x̂ng-yoruba.map.gznu[+e[8S=\l}H$dcu7t'nH-r1sTEIU?Tmq>9n=y-p.~2ҿzMzD\Z*e.{l9rc)Jݩ;KkoCfJ4IBܱ-xTh!sќxt$Ⱦf7&0\\œڋt_dirQGqv'cy =,Ά1<1T Ky+E| ۜpW^~;|FrJ%'{h%o  l`;d=4rۏŒrS i *92Ud=Su0 >ħ\7&.<Q vs1z1z~W0>xwCcC(ֵ<$r$,`YdC]^=0jkѧlt廒dLWnn Q.ݏ٬Dl8;[$]T4iW|S[꜌Kr|#ddXB2տlѴ Y>ȧR&ŜnEb1DҦMK߈|*+CWdlnYbM3vU7> gU2_eEb1DM3vU7> T2td(\tEb1Df4o|.|#dVP ?t"zgӌ]UM%uoD> UMrGMSѯ&zSN[$]TiFӮ*&g:7"Jϴ|tEb1DƦMK߈|*`ch/]datO /ȧZ.ݴH,6hU,\RFSP@.ݶH,~iFӮ*&g:7"J x^Bsǫmg |pI|O%E >aM !c?^æ=mIqYx.pY|˦ կ6hU,\RFSPC'QMݒ+f4o|.|#d# |dGiY>o$*3 ݀Wn Ҽ̰w{ M2/xτW%cG$ŌU1A](yQE]~6 ?VɖK&4=(0 yÃo (YF|FG&g&$>s55;ͩ1^x1^0VyXeZ$KTiFӮ*&g:7"JbőC-X0_V8Z$CTiFӮ*霌Kr|#dVG(^Mݢ f4o|.|#d+CY֮)"s-!?mѴ ):'㒜߈|*KbnM6-!6hU,\RFSpU%C4Re}b7f4o|.|#Upy#B;+_4 3YX&0PU+z\~И(IJЄ;J6L6|5G E{H暹| Yf$,HlhЀiT+nsch$!W,v/ɋzEA" d Y/2|E9RMzo_"~H?O/}a`ePo*Y;%nd3{E4oBZ3U:Fl5E~F!B *;xN7ӄ\k;X ^3! "i&Iv]jDwQ[6X+QS1" &5)k:UD7(jJԟw̄IMJzgẜޚ.Ru;3! "iRq.]+]wRvo~̄IMJzغvyDoV~6X Mu9UXSF/7kJ1_p̄IMJzgҚ^"魉[F/7oJq۩1" &5)bkz&z[r V)t;:fB@D@Ӥ&ԍFwk3S8iu.guyAn$xfxqQ$dsMIOLT,)C@ *~Fx{9)R6F/ް:9.p \=f,8X̅y_V٧$WO=XX"Z&uMJ\w0EEP'鳡/X(vw%cj*]> `#+#=VIX1%;e)y8 bxX4cQ$KGߋysAtLغ>a0 L`jjǪ(eqzf1+YUEƳAeD*Ԣ .XX3cTw! 9ޙo*\>0k0^5#YSi.8a9[֭é@"Ohȹ#BDp6\)YUwmޭ[[u)  H@~H:փJK(b^,r|dk^Az q֏b}|ۭ㬻`gSvmGv N_|y>Dw'OVn9 Jv_h9Zh9Z~-/w$ʗ RQifJ:hBTy\ݵ0ljUm.-ApCx4Gx4O_fm<Bx*gŚQMVR=亽_~T/|rVvQ=p ֝CM=^*Ώ{q PgԾ5K-o=?~H| ʋ gz0DRנvz4^hCMН5]JЁt4͝Fld̴ЕMDP]j"Pt'f d=omSt S\siN|4zf0+h>5 MDP?mSt t; ~/(yӣJf9E;k(2 h 5Nj?kΓIK3.V8~p C *˙)Rh»hCM]Ҝp|G02?&JɥzSMPmj4LG!_ ɦfR-j[9n2wE}S3Ad׏ PTˁ}Hyֱڮ{̭ۉ0jk7]e?wN"hah%4Jwޔvz@'4v& |e: yy Y)2Q{ť99GygD?#xv-F5[2RI6k TgAƆT: ^!I#zB}ߣJ*Ez`eVө:.pq6p L*IT_m/Ҿby&b(r5w|KszjGyw SMVŧf3yeQ,LME館ñޥTL2٬9$W5;,tLj2:{t} 9=t]lz]ba7nMn^TjW/2}HB  UL+)oUKӎ\sve! "e:C!"՟4'u]YfQ3xW7)|yGV; ve! "EjGRY\v>B@D@7:%AwtUϺ=&՟7ћOuj5hW" Y)Lz1Zm>ߑՉMve! "EXjgxMZtW" Y)̤+~LR|°#W3;B@D@7:%!vo{[j*|¨#Ws;B@D@7:LLho=B!5OC\zchjE\E'ǥg}Sg?k9>DyJ]$9\|FuRy.K\oްUQ~;vU5+ŮfۇhF/ OʄM-IUIs8C8֗L&̲DF-$p pJm /ڹLxչe;[IN.P^כE]IsG/;s `3(Fڛ- ZȯbNpztNEɄW,IdbNpztNE; :l'z9 !E;4ՂW%-hvѨedx${s8C85l,/Z_&oN"#s8C8V=d«$2Bo1'S8=ShLxձe;[IN.ZDx^󢨟Rc`N@I:> 0`8A_F.Hq{~ƍG)ӛE>Aoqr_quG9nzFh4FFӗ؞FWk kqu ZqZW3.HY[0sa^jsj{Y|\#Aj;lOM*Jq,&gx>g= u+7ت1/~rC "E$ӻj_W뚕iW-LJ(O ;'eK!)c),g5B)KLSf,߰ΊuO]G@Ȭ%o`oMZ%[RG3*O_3QdբmŁK 9%KggggggggnNԖ/Yc5gtգYsogySeVoH~7sjju5L;D*TPZz[VfE 4h6usL@v>d?TuoQ\6&?@UPXPKe[Y+is-Sundeadkeys.map.gznu[+e[w8S}Ϟcn4[7cܔPHDw0mbyuƅXeՖvO&0&ϝA$Էعw*_WE|EC<[Zw6˵g;۳1h=Z֣h=Z狿/#LG1(j~B7qmg  -h/ڋh/}c/11ɔn;>~"~k;fvzn4=ƦcA]|{ch,>f7_tTel*AURj"e-@.2}-2Q*^׏OcCM=^*֭9v 4ֿ-O<=h(5f폖dH$LD*y gl #yT&Jd=Z]YP|'4Ҝx0p v~F1ɠgYPtGMFt;~3MW#zFZ0EdPC5Awto(AGf 2IoyLգ59r\;>ť9%ǃgÙ|oF3|њ Jr\;jhf(AgVL_QD |ӣ5r\;j(2x 5NjV7 }˒mV<upfZn{.T2%SԌ yDWm: i.͙N 'G> #H}Rrn|Gkr(r\;>ͥ9Sa8=`hV,*tB5 g&(xy0o̾Z^-/-tl֩($/]t 6%iqYbYސuR-EKRto-勫\ATb.N`;N{rI톄<=il#JG$^YP|'4g26x0<˩dJǼњJ\YPxǎ,Lox<=c2 gpxDb`ɠ6qjPtWZp1!]hM%,u S\F!x0Ua~\IњJf9CMҜKs|{Ьe_!IWa/Q/\|#feX݉ho~v !mJ$fd(Ё T;˼eZ 4HhM%~!nEQtjwql Q+ADEKYPm5w|Ksh |]2 uW({;#ұveЬ(jO_,j/l?_ YƘ7Y$Z Npx+_. %,3yB͟Pg*OV4{7(ZP˪o_vhځv|11+I&jVPӷ/zb+њJW݋ejCM0cV0;2`Q3#3WP/=ZA*D\pjI!)H )rE='TOI Xң5xf9CM5]JЁt y$)l!IɑbM).3ș|ɪmrn`̲hߖ7T˼xY>\GLtę%jHZ$< EƵfyz@Ѓi#Ջo)ݬA:F;$xfxqQls-I%|%.C* hޑm|_\8u;dkr^M)ep \XU8j,c0L$xؓ` XΊ55_ug.vM]Bez0C0}jVk}vn11 x>G 9mNHC+ή L(BPr4:v2v*%2ωBf:禴6" gODB4)<y\wr?'bJ$OȮ(kꬨ]Tf!@Z]]3^sūlW*.4MW"ZKP,.,_ wc ِҪ6ЁD )1rΑbiq=7VW$O;wGCރmۮ)  H@~H5WۑAOq8xȿZòp3>QZf=\R9>ɮjLYX{֮;]}ػÞψ?J 8BILc7M:0f-9zs.*z5ĹuݫnM"rujU(6qqk9`n_pQk~XP-No1N<:Σyw^}kRK< :˘mqu˯? XT_ )={YŧmF*x ^ to`mO 5^@oaq կ{$f]diFա*pR. >ȧa$+vq= #1"M3U7>rINoD> ":3 ]6#=!4P|pI|OÅ xbE g5N#1"`ӌCUM/8)FSop`蠡fe|7fTo|.|#` #`_h5Gb>DfTo |'咜߈|*z> lnӌCUM%uoD> ECIyM#:}` x- "OؐH̺aӌCUMOpIN%9T0 ?we{fTo|.|#`V@D]6>ܭֲwؖuWr^m2HA wHk"X8i!~RNNe5ڭWWWgW WWWWg䫣~ ;{&[o{WO`;[U 1q9r`+n'EGbGd/lQu Y>ȧ[6 ]6+z$Cd6ͨ:T,\RFS^!5kYfkfTo|.|#`VH䬡f=!M3U7> T0T+fAeُ6ͨ:T,\RFS^6 yC?%5⅂?ٴ|&g:7" :_}6ݑkB]?ݦ댸,+z/xτWcW8^=HEI'sM}eeY,jt]EWUt]CMKH'0>B{'w&.n-g@:-Լ4it 5A=9j> ]GbE_fTo|.|#`(W~$r633CӿḢmӌCUMovI$'7" jغ(lḢ^4P|pI|OzP$YC>ḢiFա*&g:7" j'"eU|M3U7> T0\PAl둘jӌCUM%uoD:]3ruCz+&ཱིi/3gHL`:BUJ3xQw!dm7(LiPM+H#=lݔor$?T Ah|Ѐf >~=M>ywdCJbd̩6eZVwpN^5H@g~S'Uki`T3_lJ=/{&+.;]zŃMG;i7ofD!B|BQc:wVغ"ې+M‹%=>3{]EpphՃrFg.T*)ћU[JkQ/"8C84Ԡ3+tj[^TUR*E_/"8C84Ԡ3PuDo^yi)bS{AW!EjPҙxjE:T^N]EpphAIg-jJc:T3ڛu!¡Y%=+w+-Rrj/*C8CH J:3iID߫WGJqS{"8C84Ԡ3ĖY oMB-R\ޢ"5(l@5V='%A~54k)E픽~~W f:O:1mA'ԌF‡wo5#Q=;xBzn$Co5#Q=Quӊ_}Ц [H`FOaTݴm'F=V3SU7E=,++@: 茅qQ^u8P@)h&޹#m)^q-fKM<\䎿RTk4ϰ~ׄwBKV-uZ(' }BЧ'aŶq݋gA"n ]AR*E+0){)/>گ| vm0%%tSyKi+0){)/>o=]O\n s\#'x:cOkޒrH$y`#؅qjw3Czs[ӼnĒI|gIQϨh,]_>lWhD1p: ,q;nqqEpEpEpEpEpEpEESZJ_ o\z$m 5Ŧ1Gt6mf E:T/ 8{hw wnZ"D#Z4v<$H =c釢Mqbo~?wPKe[r2mt-alt-gb.map.gznu[+eYs8S}kC>$xfxqQ$lsMIO t,9C@}^'wA8}Nˌg;{U{xÚ:.p/ ۾L&Q D(j)Dʍr>E~A,'bH5-*(7MUI<=Ne :$t:;L?Y`yD^J>a *3Vf&YOuɤD @|JDG.uHڐapY~}~aU^-kvywuM H@@X4PO3e|7{Pz]RͽXEv8.YuGQwu?ӗ}'zzՅˇ^?YUZN* *} 9j)ԜTPV|z%ZwejdӲbu7#fojunIt FQyTGQӮ<}9J+58eyQ$( ZLDd﷉yWA |B$헬` mzq֣ sP/xO:c> d#=8sq1irRNBaDQBlͶ"iv%3I--iM2WtRq$ أ Jg9EҜKs|Gp;TXI2G1{jo|Ks >:åy2 U^3Bz4Aw>):IMCC :=11_ fu638M&b(r57>ť99Ga`:å`)'SGr5Awtӥ螀:t~oW =6MPwjo|KsfK >:ȼ Qp,U?dq0?0wx:&.}1Ʀ1^)%kZ-{4],P|#\3 'wD> ϴzRJr]&b(g9EҜ335hݞuWg-Zʴjљ5=+v/x{"ңL7y1W$rbWfdK [m'g'*******U>#k/m'`;N:{>K4Adf@r%j)-hQr57>ͥ9ӉG!̀[`%3 yBMPg9E;u i&Z3VjϐzMPGjo|Ksr. >:C3m RCi'ʀo|Ksr. >:CgLID]1SIw[rC*P:/7L"e-Fm&"(UuɼsPōW;wK0ɣԊm`Uh"}St ). |;uK@$B9c1I Sk"U%E,ʍ4-`9`;هs!ZK=Wl嚽~nDn2n8CP:ڙ#ѯ<$ٮJ*Ga0`3u|M~ E:ΔC|3nB_=%ui^۵u/[Uu~dAˁˁˁˁˁˁqA!ff\rJ[TMDS>):\|;"uG0Vz4AKq]apNjtӅ!)HAR\iZA*2o -h"/|St ).ɹ4'wD> ̭Z=e:k;pR, ̇MDPj3C :=u~4cJ1bi`V=sj-N :=u~KUR=[D %~YNѡ&F6wD>Ni֊ޝ˄_1s&͢آe &0} uVzQ,D{ϴ\> XrR,لa%tg}WTRr*חv `13r6dkp݉<[V7^;uֽ H@h1Sj |/o/l&+>?O/:s f0Q:k>Y3 s/:>#i/^uzn؈}MU|]PB UnuYKK g;rQ;_ۗni3>2m5oK mO:r_/ ,j|yTpFo?qБթMe! "E;oj`=MگZl_" Y(1QFo?qԑչe! "EL:Լ-5 ';rž,D@tQbFWO;r,D@tQ.+R uj5G?qq3 v- 9>Dy̹  Hsӹ*B)?^a,w:V]4Ivw{<CG%P T@%N_? [<zs8C867B&ԅe;[INnH޴KS$2Bo1'S8=Sicy^lWM͎}~Xo`3mF97lLxزD~s8C8v&oکLSv))ݴsydOYŜNN]țYiO'ZmѨ-e d$ys8C857b"oP&вDF-$p pJ7zɄYŜNNUo'2N,IdbNpztӪ7o:מeӾ SNXxͥ 0`Xw%eqWJQ>51S8v)= z?ojV5_AX<|6D,7DBdZRjӰ>_s|sA|$Թ_^ȑsWmkTp=`ȑ/w"""""""O|ED-i2&iGޜ= \WfUo͏RLߦwRj T~73ޏu7p7c ΟB U7*>4hР}uS,϶6)~?釧PKe[ffus-alt-intl.map.gznu[+e[wHS}Ξ#.>$q4N2'6k$@I<~n,p?'tWuuW t K4ܒM&s[rkru;r|2.pU.s\sX:Gh_ɷ( 76,`yV,UdqYO mOmG5BX44T]""""6x&xw"Y_o7`w`rTJSGhUϸN$zhx3*d.r'afnGl~&0lrU slMeg~soyJd*Y\yǼIm&BKY?      > 5\^sgvw|![pS^vݳ|rB9'ИK_2$> `vAݣ=nS w*+ev]mB> `#Utd7 V6/Le,7JrI^izנ;J3&MorC;oW Z6~<mW }:b}(oT2IBpe^¨MbŘβ1 ^τW%c:pupcc{qa5Uztgy6U,\RS0a .}mX Q˦]K߀|*e2MykK'Э`H"M3vUAiE :=J~JڭrX"hӌ]U%uo@>I }t9hX Qaӌ]U%uo@> *.䢦aw-!4kW|#pI|O%CJ/鴦a'fto|.|dU?L/j~WomZ =7@ ՟iq4rخEb1D]K߀|* M`eh/^eatK 1@G'8JGS>?X̿"6Dى-{F]QI϶J޴HB= v`oTU+D3jԨWWV@SK|Aa^4kW|#pI|O%Cz5][$CT6U,\RSɰZ5kU}aչM3vU7> T2T+frV尫Ҧ]K߀|*h~P/6U,\RSɰZ6 yM?37zcB%uo@> w>aMo!C?^æI3H\:K%93UM- !_mѵ Y> ȧzgN$ .%-!w6U,\RSp! Gxٚ:ݒ[.d$Yl(M-W57 Ar\Tݧ+bC bv^8.Oݍ>-z h~`?ǣ0qu~Ef$rݫ?`<(΢>9 qm& ~`o7CWp]WJ,d\+كLZm[ش76c_/W}W+q4r_-%4kW|#pI|O%C3c:rطտmѵ Y> ȧZA&{5]Z$CTlѵ Y> ȧa-OjEb1DM3vU7> T2T+\ݚ.Z$CT/mѵ Y> ȧJ0ao6U,\R䫒TH>Uf]wVi2/`da:t#Cu>^o9:N6 3xQBF|O%CW&C#Rl=UB/Л]ƚޑ,N3$TjJ^rE{YM:' )7ڽҟ$/%M}t 2 dGc0qj2;p~.'!._5Zf0O3JT+^$nd{EoBZUFl4WE|F!BEKiB.5ѝ- ֪U3LhI9w.ݲWJcyk%v=dB@D@Ӥ&%#tI6er V)z4IIL\SQ[yIUnC&D@4MjR;Tuc%2zNUSNM4II[S.Mʏrg2! "iRޱ,]+s{ V) 4IILZKd55s V)u;7?dB@D@Ӥ&%ClI/D~+Tn*ŅnLhԤʹj?(YUDV=:tZiNI+~_v2MӇ= c]b(P@H0wLŃE&0|X {HM79b'Ø=qΖ  V):ށyԚVE\=9HДїTЇfUWXʗ o-%3>d3wU9[4QLtiy!]<Q'TDxitN.p \-v 5ERD9R o3PAf; ƻig g7l"DZ6vN|>$H Oy,>L~?qPKe[|&be-nodeadkeys.map.gznu[+eYs8S}kxx؇\d6/.m%Q!$O t,ɶ B4 na4Ŕg;{Wي=\|`uvG\:tӗEM__ B s!Mb~9jU7{Dlbe-, dђGDP!TB^J5)nIl,#!QNΖ*߄k(Y)5{#E5m72rKK,ޚ'}^5Nt1e1izoρ )HAIMߚu(!&/Jɾ|UT=Fż*nZG`6 t_7,d|kJ+uz5v6 l0}Puw3IyBUl|}Y}"h5(D6j&j>:2]V}8u6*TgEž=uRf9c{#enȷM%fm`|[>Tf7-7I7vl8=#>퉏O쎩IA;.g{Z.i{رS MH)SIРMكT%yޝ",\MTm2T=.꾰ELʊ?{U 7c!^ [<ݨ2*ʨ2\LX_Iz%'YFӉz9ee%RxrDl6o;؏ƨ1jϮtq擁߲9_n/MR֝/x{$ÿe8v ơ4/+Œ15W2)^)ޔtϼ @-H $@¡Ta)I١ Jg9E;>ť9CJ8'G> ̈́Aj>E? 2%MD-}S KRC ::T-ș'kPt/R}D!KJ2u&b(r5w|Ksr. >푏:C3p8V|g@,50w|S Kdžt;u~_i*Qc)qCg9E;j453_~:QzYa.3)~Y\nᒱ kFFxI֠Єw%᳜}MҜz9=Qg?uz:MPr5w|KsNG@U*gf"BC0ؽ~JP3ZEP?CPj#3LRzYF?ϻSdUrVnY-_ګ;ꎺWwYX.~^thh`;[ML4 bMIdrD̝pr5w|Ks >푏:C+h%rߌfUąr5wxG5Psi%ȴC1x볜}MҜp|{ΐflD-(،]uh">) ).w> iPA}{ݡJ賜}MҜKs|{̜a>>ۀ\|#u }"RƁqNϖ슱6ExY%{Y: *u@PQe3ЋҨ?wb9+7Է/Rd+l9Ρ}Mw7l`/:a6PꐫHkޡJYNѾ&NOqiN߇=Qgh47rJb'#tDUM:UQ5AV7ok01&S F0>!,3j,AS7PO[3N6gctבE;Fۖ Z>-uZ%j>=@򐷷CR\iDZ#QmCllMDPr5AwtIl(AQgFլt0FAK120_:4A?|S Kt;u~4]:S)th"}S S#9%@w:h亞e&b(r5w|.m|{3aOh\gzcNljTpE&kVճbّaݡ h@Q'G}LQ4c|]Ū*Wgk+gt[~@DR;%EHur@pk"MjU7; dx3ug&Rsȴ9fU>2_/O0L^jĠ(US[&?~#GˠsyvJTwO܇f03NQggNwa@~]ot 6b#^cSc#" *TT3#_̟VŜ]Zj-䚽v- ,(|DyJѠlxԒkT;e! "E`>MjޤFæp\v>oB@D@7%{4ՐF&z%AKV;Ke! "Ed=ojh͖-ZM|/ݖn5J>Riu{Lj4fK\|o- ,j|yTC8l7[juhsmYfQ#-25oK&z%IKVGv>7ږn5J>B"SԘ?j$m۲͢F9YPH&<44hjGk?qq3 z! Gy̱  H^8\|DE^,qqS|Ey'OzVլmnӷxڇJ*J.?  -I^19 .Iɓv$~ȲDF,$p pJ'm,OڱLcv))T߭70`~Qv:k6["$l'bNp tIʄZŜNtNʓv ~DF,$p pJ'HS-}C#t4j|cBp7e;lޝŜNtNI; IɄYŜNtNUocCcv))v ~h`N"#ts8]8V(puQԏ?;@: YU_y80`Ɓ  s)W4\7껓,= sV/g^,Y) cznTFQiT~X) #{R|fK-Z Ch"."Rc'LXYŵG-&Ld]\E\}t\ӘÀ&X0$H(F/nRdbvp>/> int#E$D:HVs߳O%=xy~Zg3iv}S? yiE{0jEAn-. y:J[oϋR%}IOyYxaF>[_X!?\c "i]cԻ%}d>ܳcAp\7r!$$I>?3+I_,(GT.1Q̦wIZ,U5G0{s~"E/_ݜξ4P7xաYcUW)Lߦ=@Rj Q* NwΆΆS߬a*TPYzC ~rβl]vqCPKe[Ӊ: fr-us.map.gznu[+eY8SF}ff{kfxXb6}̧_t!YHM?,e)OJcA8{@>'ي\Wz]$tޒ2Q.\粰ee4 /ۉɧdoIԹf,sMȪhdh(?f\ˆ ]@DDDc 4>'D]Hv7`W`sDʈS* \gKl lx3gMdFʌ4yfc3<1E9ޔwa#ٮ3+ o LfppV6I`Sާ~1s˔j Ohvtry 3A 9 ?:^i=nAy[W.7y[{?i1oar]X|fu/aY~rV)gyx>4c_/n]Enq%gY;.ӭ6c=;|ىcqd7~grG~]uG i<#91v;?rlrO ;u:s^HL)&jEmaސO'K6.4ۭ|1"ą.c{>7s2D\go3"ޭ.l\p 뒤w% l`;àVd[rʅ18' Y4 l`2pAc}IL=Wb|O%Cy2 M~]xحIobtw(c=Fc F뻖q9o XXTayE6$E<%EohUɘxbm/ <8j2ѵPדDpHwQӦ*g:#J:D>:$CTi Y>ȧ\&בɂɢ!kf䒜ɢzSpQ"c!6pU7>%9y >ȧM5a$]6+!_mꫂo|.|=dPND^:!M3\}U Or N%9T2 d(>OD+X Qf W_|\s9T2?H~{R^d ^d7Yq&cTOF,Z|\ϔCb6pU7>%9WQ >ȧ6S&cQ5!zg W_|\3~QNG> 3k&|EW1Q\.xOs)r28 Np~c*'MzUu̍`-Gs```````|FRIywJ:P_P;v7*`b3jԨW`\D&d$%Q=i I.əjNG> Wd*5NX Q4W$L5'#J /5=QyX Qi I.ə5'#Jjԑb%HqյM3\}U OrIdYs|=dV}F]6sH,~i Y>ȧam*bɻ$^%Bsϫm#I.ɹJjNG> gL>^M#kBVmM;$[-k>p .gL^gquBgf䒜򌀀|d#N;D6fK_|*.ĽN㸃,6MM&^>|=0dx^H]1IŗŋYQeCVrӣx0.ƣތf4;~NxA}`$M4O,oIL7+4.oF`4 FFS7Dr cyԄLZCGnaD۷7tsfx1^ƫތ[3qD %'1*:$KTi I.ə5'#Jab%d~f!4W,\RzSP-ZDM!6pU7>%9Y >ȧak&2bwfK_|*_3|!za W_|pI|O%E Xȉ.!_lꫂo|.|=p$:۞WVi2f;gHL`꠪d%WJqAc}&v+nHQ,`˓bQ&Ɇp^f}V4׬=Lܕ.'qIfGЀ4OF%&\s"R{"jq E7i22@2u"S-Z.dWaS#Ge| f0یrTW?ߔx >WF3Hg8ź]@lF^cN}Y7o"D!~AQ%czuPrE!Nk^nM7 >nFN%:!/hPӍGp:ET1/hӱt3 tN/ѩ:h/#^Ц#M7 f^SuЊ_'u^dYy~G DXxX (P|!EM3wģ#{g\R268yϬkN~'=wBCV > Ƅ1aL<&fnWס+5XQd"."qd OWn1}Z u֣nE\Eܳ֓9џ̶ThG#﷽gy&śF7jmʻ4:Y2v=/ٳ:]A*T_f#]lħbwmH$"ճk!zGڲG8-H@D% K~!jԨWk;w ENK ?!H'Y]VEi]'p-YmD#######_xqW釴RDxaJ.p \IV|SD9R o3P@fC8 x  S CiGì+z!Bسe̻C w,=+<Wqqu(63NPKe[sAAfr-azerty.map.gznu[+e][8~_[[en~؇$N2M^^0/!YcI*蜏#c$x hW\M1Vʹ"vt:xxW^2ee2qLx 6;va%^^ձe^Bc92)^e2ۨ$Nx9kcP~ U)tEe t@vA.@ F5/ysadLDvYVW&֎!)7ʹέ̭!g󟘥]VT{w/:\[QLR.{`~~sT0,事rUG=SAA(929ra,;~Y*Ҩ=,& gqQn(-ݍQ(q8JYY[󿉦)`|Gmwy$5ndW|D1?tX -ɋ8ɱ]yNk0Ia͖e:+q8x<|^5)dۋ&rj@7 n t>q~¯Ɵ$L-*e{e:dAQP5h륹<-y`%EGYXYGpEsOY7 }A|}.vBrO6Ho@~*oo%D &ْ5!c ?.nC5{!zF,|$/:Jf7T !/6dT o,$?J* 7lvh,olȨYxI ~7 ? oLe쪁-a~6$csN.8d+>ᣒQa" O@f CWL.`3ywv.}<"o_ZO/ یrQo*Y/x7u2o]lW@TFv;7o*TP>1!pl=[VSjA7/l{u;w̄S:SuV|UI2V7k֪nc&D@4MjP :TT7*W7oJԟw̄I J:pQ UG oMugUj'-V4AIg-hJuUjTNLhԠ3Puczg|*թnLhԠ3PuczN|*PS1" &5(̤DV[S=^mbLSc&D@4MjPb zzPAUsN͏4A9cjPUxzkhb3+0.qqώ3 ~ç ²rN[00Ι%3ntl]BV4ݔQIwG< p8Տ󇼠CE'Iw5S8SuҺ6i(xjFpz I;m:װQՌNNIf,(.tz~Yo fzSZ k(Ag5S8SuNI6 4l&T)j髝 CЧ/%qhOfD9R7 ƻigg7l[oC *ԁU-;ge4hоc퇢̓]qWb?uPKe[ us.map.gznu[+e[sHS}jEBz؇$vIfŅPf(/}M# \Ŀ*t?}Ba=y܅/tOtK.^̣ޒ"en~y6VN{|pwJ,gROUPCda>O)7¢aEn """bQM_Mg2B݆dy| `#c+2Wϛqk&I <dx\h#{(9(2"/Y &0 L*W2W-X5'z,M<(΢u "?sGKa4T Ky3Eŷ|$ۜpW~;p >W•̅KNP%o `vBz&݊_P>='l`NhPΑɎ_z(OLeZ>o$> (.|~c(ua-@Ҍ|*= [cIl nz(|8⾖Dnɗ XrV,*Л.IB bCY̵6w/x{&*ӻ~ 7G6vq DoBNM?>X̻iSF׮|pI >ȧaP%@@5-}jX Q˦]%&g|O%åL9yMab1DҦ]%&g|O%Uuf芌ִX,۔ѵ,\R|#'Ϫd H尢b1DM]JM%57"JN WrUrcb?6et*7> ߈|*U25-Z,CT۔ѵ,\R|#dU?Ljz}O̫W6rGjWFi9y?lUo|.T2WӬ將;2vKjoD> q`c֗.o0'z]Ac=^ NpJ=s~_~5̿"6׉+1֐^=ւ}}}}}}}CuCzOCWrz+J`{Tɞ&VFzzu xԴtX,M]JM%57"J(OմX,lUo|.T2Z{U}mbҦ]%&g|O%CuB@.jZiX QmUo|.T2Tw}AMa-!ٔѵ,\R|#dX݁X eMz ~/|A&g|O%< OXo=!d{`ǫӞΈ#5uJf;ti/'- !6et*7> ߈|*wD2i9,iX Q)kW YFSp% Gxa|dGiZ>o$*3 ݀Wni^f؇;CZ&/xτW%cG$ŌU1N<(΢îq= sEDVɖ6Qh{[V`+F Ao (YF|FG3iFyw_M˚̎opsjl/ۋb{UG>lִgb6et*7> ߈|*w^;˚>X,mSF׮|pI >ȧHX,)kW YFSPݱ䊌ִiX Q=)kW YFSpU%C4Rrؾb1DM]JM%57"_ 7)$ۚ>/W\Y֦d̞/daL`!UwJ/ꡘ(m SW,`9+l\l,1ԋt5s@8OUHX#h@3QGqpC]^ڵ$/M d zZ.dW~wC|~ f0Q5YR`@>WA3O;cZj@lFQcN}Qdɛ7it&L01wfyktkxACkVog5! "TMt햫|Il,oZz;kB@D@IMJzNUmz+ Zԟw &5)镅r:jzk,?khS&D@4ԤWܭ˩htWerVivo~ &5)br:2YZ.*ͅN-5! "٤&%bm]NUG;=VZ_p &5)Ikzfzn\|UK[kB@D@IMJzؚ"魙V\yC4Wz;:քfKv@9W]'ez~~5hh3;0*{+".WMfz%ЯT2, H@T%W4]EY$]-٥#ߓ8/H׻]aAnxF`#lĀCC}|{7S8©:h]~.yA.5m4yf,gx^sP6|.HTA$D:HZ.+*b2$ N 5jӫxѻK<#ὥD?꣑N?x{۔E39zPk~J[=======:9?ƥTR๵up \jkUϒth&75J59rhXh AW0a„ sdSΉOY )/x_!?O+PKe[m%us-intl.map.gznu[+e[wHS}Ϟ#.>IfAf- Pϧ_Z6 1sBWT F ķ䯞p g… Gd_[v]@8gu{Yy P4`;O9`ěKeQw6nmlU2`##u,C!$r7O彠d97uzʕ/h2JSǴ d])N0m?jƨ1j?QT_E{sqyOk] YPg'CfkVf2Nn.nK1u&x ^>^M{qơħ?BES%Y(e??vh»l}MOsi$4߀|F3lMMP_MS i.͙L '7 us\! zapX&b(r57>ͥ9pa }Ճc>D%>4YNѾ&57#٧JTlաJd9EҜ)3߀|z3TS%WN ]&b(&)4L > Go:CTUcD %~o}MOsi46߀|cEf^ly2)~n: t7IM\{11@ 4C*Єw%d9EҜi`83?&qJLAڱ&)4Lg|:CAI/j3IǾEܰV;}s_'8 'IbTʏX**\zȝve=Osssssss]z3>jWl>zӡ &vդΞR!!!'MgP3zIWѫx˸C/,h_|#\3Ҝ߀| (5e\%#CSvh"MS 玧,Lo`<̧9z&)4L'|:C>lաJ7YNѾ&Fmo@> iZ3MP&) > Gy6+\KS > GL?f[b,ݧM,p=#m \GpQgf3ӫHoo4o:4B_,h_|# 8=6ΐ b14u&b(r57>ͥ9ӹp A,Τ>Kɒ|oi'Lg#)8ULiY)H w9'˺罽V?zǣփn&\'[eT.6mwI%Y6E8S<+J߽%PAmP'ZO٪Bt)5@{-EF_M#ؿͱQ_E}Q_ ԗnfUMdjzXB'MRMS i.͙ '7 u/54d:`þth"n}MK߀|Ҍ+TVZHACؓMDPUkYӅ:?3C+R[C1r57.m|QgH3|l}زC1xd9E_3\PJ-7rMP&)4L= > g:)}Grj/ j$&KfeyN|v*]b_._ f0?('F5b]aFCF4 iNjjV{WU~{6OnB #^O|2?"S[juns}YfQ##25oK [z -Z]b_" Y(b@V}'R_ ZrM£9qqKuCGhG9X$9\">")Z?_cv+ʇ.bw{< *J''G2ȲD}w1'S8=Sh}ye[ŜNN E ?taN"#ts8S86nYqRӹ׭f0O3IQgf eƒ$vYINO.ڙh2N-IdbNpz tFɄ:l':9 )E;4ՂٷOZmѨ-ddx$yws8S85|"/Z_&P߲DF,$p pJE; ?4l':9 )E~ўȄ:l':9 )E~~/?v2ϫJ/ uJ|۸.<0` 7w[QXU/qr#Yu{@-nݍ/Ot3yٹo}GZ/|]oaԒUϳ ֮\E\=:.5f,zH_4{ޒkv՜G5ٛ?7 oXW#]eEv׭p>?/ dt\""=HVs߲U'y͒^<~wX]]W?oh0acA|$Թ7XHCHHI93zJ֐,X|ӐR*͊vB=VrdKedc=~8K"=rXU'qflvYAE{^E{o{`̧F7&[)ԍ+Xô0Xz5"\vYcLDW9hqh:9sK$]Qz[%,/Dmdwp;gN=t~Z/}'Ѐԧ;ok`gm6.b=(ȃ<':S=|L8fЭ܏\b?JO)f]F] 2_buD%~mMҜKs|3a~MId`D%e9ۚ;i(1h33V/(t|5 Je9ۚ;i(2h l)59\]T7/I8WIO&fl(4]tY&΀Osilb8`?FdJɹ݄MP]nk 4̘G 0Od*'Cfy*V~ ,5h0_(kD܌IyWj!XRKUy}ֱɋu۽h/ڋhm/ YUn7^ hkh`;{M 3&VPGL>>JiD2Q)^tY&΀Osi46h00+(͕&r(qe9ۚ;>ť99Gs}>b h",u[|g4g62h025T=u:Љ|@9mMҜ7G!PR/w T5'6X/G-Wv.ߗuS_~z:cah*ϥf$&|D %e9ۚ;ihj(A#G߆QOFGDN ̗MdP]㺭 &t; ~4Bj dj\J_O4C.qi.͙ 'w@> ̎z$_L :i4 Je9ۚ;i(6hT/:D%^vY&NNh33(b=X Йm7Zh"vY&N.dt;"v~HdD\]ι㇇̙4b )-L4XyT@~fs6"o1rP"Oˢ\|GCasK?֜YY+Z_e%~/ sA Ʉ@eZfӲb]650_Pmb-Fbɵ!0<:˻kOeo~`̲h4X&/.35QXE^o fn:;77o*TPQ?~Ϻ,؍_qOYk׋x Э22O`_H㶲]IOQzTHnuJV&"_QMUHHVQO^]գm.ᨧV]ㅛ ЭNɟjgOz=Zz/THnuJUU=`V%{j<^  *z1fo0خƛ ЭNɟLԽ-5=ZNȝv* ԲBfts E}6;jTIڬ<Ы]F3 槙ehVf ep0J;m,wH|ȲBfts E}v,wX|زBfts E}v"wYnِQɂ,)dts E}5;d$wZ_|S߲Bfts E}Vd7 ,)dA7@PGPi,#v a)AvZuGR|/s'eY6b0 $nn0`Hb-@}U^~rjq>9KһHa5k'+o+4,q׶D& mBs`%^yW{jyhE^EG,_ÿz`ċԀ\ySkhE^EG5v? w*ߏ/L:]&E}Zʻ*/+bCȄL']|.6o)^ [n{ظwo?4;?/ln4Hsi^/ľ^fXw~%Uyw*QY}iiUYdn?"#1#h?/kV5AXϰ{'σ6ȄL'z%b(|^Uml 䙓¯`]' !!!OZѻdUeŒ?!:4Gg_X8 kͷLqmn/_~"GEDU)oME5j.p \ h~P< nz (ϠG؀|ko7b KPB 5lcU^fРAv^uS"/V*)~?S5T;PKe[Ԙde-dvorak.map.gznu[+e[s8S}kзNlogf $lINw/BW6jtA✟H&$n:+fu[ 9sv;r@rD\:t9X_f3ij_8֧ XXX㉱eX툶_%gm^d sL`rX5" YpOmyMAHzd9pώC%K|61B7Ug(-3 U-Yq}\~iD=QOt.>KV`:s1T?EEQQTEEL gUh~("ޮ2_&Xr%Zu+M2y }Ҥrl]}^Os@JrO6\Ubj1'l`N`cRu D7<]T.-8-F0q,; B΂ މ'M*5ri;XZVAU*h'*/3&XۄRD%QڂmC@c1h 4cTe_k":*4e?t=eےiQY5/oU,!v0hv@;zg 6C躈w>eh)y U4F0~F5XޒT.^]vhw~Moݸ ^/W t7ߢvqQ.' }L?cYIiyf*y^;R+]'~ џUtźW2 آ75Q|Zu97=qn5.,ҭUx&_%i;Ry"iw P2P .3&ٞ-~vmQ Y >ȧ3C.lqC?6(,\FS#Igˮ:&6(,\FS+ÐC{Ckbp257> `C)֙;К\YFѾ&^:Ix O ӗոNnFo6(݋ |I :=9EI'\I?;&YFѾ&&ǹ'߈|j0/g&WyheVU*X©iBG"u fSx[]W,D7թQiTFQiTyTZ}hӕGH-6v!.]wh;q;vj+iHHI9xr31 k.#M̄W22QMUdA|G6Db?W|WICkseko|Kp&FSZIpNE|f ;ek[xAP m)7egձU.G؈ΨV#lчZ㝋mQ Y >ȧCe#b>e|O6_ Y >ȧC.9_{C[eko|.a|#0&eS!EED25AWRt@|L:|v|Ckbp257>p:|(G{RFSzg _pȀNuefEإ'X|cW+ލ|rHCkbpfEp:| <FSw {oPY8M㴈47 }¼a 4@c1C6z+.nҫ )i3xbɄlYZ$( SKNf˿9"Qc5FQcX}8˕fWɜ=52=ɷ=3QCd./Ba~ƅ` ^R\l%JZl5pضJ2B'?ڳߧrEHrHi<۬ݒ,p . `&WŮ-=[Z_lQ Y >ȧC2,=[\Ckbpoeko|.a|#P |nVZ6(,\F䓃aV\RzVO`D#_g$X80`%Q2ܳe_:&YFѾ&&g67" ;jB>i$6(,\FS\Q1a5>7ezcݐ np{j0VS _>^~fUz=?oZsՇf0O3ʠ`MWP*=$fv!V)ջ:՝D b#6b[uv:MUd/-TPB}DU tSkއST78;ʳz~P" YSLs>BJuuf}x\ԟ{( ,)sUT7 ׇlSޡ,D@4T3;^l KP}=e! ":%ax^wUG{|%Ws=B@D@3KuJ:cxTϩׇ 5P" YSҙIYuoM:z}~KPz>8ft9}DV[S=P}AKPz><fꔋf@W]'z~~54o3 4S\E\=9t&Я5*$:|kAKh_}t38!vnڀ%@E,f$p C8U7mn9Ks6)Tݴ vӾJ!sı &Mu%|KGubFp:Sy.fuYB/u5HXbFp:Su_=K=6)TݴK36)Tݴ폤Hy^~7zRԠDg,꒯Á 0PFsRt3ͫ@¸ze*o,*od3͋?VQ!/'v+O=jOj/ثj[FP5TmUSrͶAsvjgжJׇ qG=qqO:3nAdL}݌zђ+øzƣvʞ'Ǖٙџ hw#;_*"DYk1\14/?ԗcH/8ֻZꓼ%qy~N)Hhюaez"&1C7yo/$HSݍk%yJn 3pL9~E*TPGV9qwzhРA{eU,*϶6~?5FPKe[055se-us_dvorak.map.gznu[+e[wHS}Ξ#>$N4N2gf//>Z6kI8x>v9QW]T t #n6-fsr)9s~L[rxOrD\:tUܺl9L\\X|'&ޞ,`˳bQƓ幹gg)4߯6$N97҅V_r|IWbq\ݗZ, ATMeMxF.V\kw"\w))$/HE DޮjmmяX-ŖbKRlh[[";b}4lbx&ãjQ(kQS4{x,gQnI]5b|OH~ސr<$xIM}ʃANNNNNNNv:gs=J>3Wm}FTƻt|O…s\*ߑndW"EVJPON^d1̝9sN*B2ym\݆!;F0 utdqx>ORFBWz>o$>] T_ W+鞎*Tyz'8qb*kJ@*c-!GyG7dN2~U0UYW:4J[Vk3ŘJЇ;< DUHHe+\؅{c[Z8'șj^g'8&DE"h&v+nHY<=Ȯ{3y]+WܒF'E;;ϷyIZ% {K, Wx!B͸ \\C\|h,׾&&'$g*NoD>慙* -Z*¹X!dY}MMOrI4Q߈|:R[X!M >ȧXGlUrSe57.i|#bb H$$]th,Mݳ=E :=.~F(e [b"\X!>6Yk_tϚ.p%@tOkyr..dΦCc9xdY}MMOrIt8t1/rX1 .gλ*7qyO{RVY8bf@2Ez:bɧ},jf_,`˳bņΌH}kkۡO``;[M]rzRO͸qOH"dȕ.!^4Yk_|\撜߈|h!⮘S8yr&rko|KrFPϸOSĜdpHr&4Yk_|\3Y(NoD>] ՌH@BmOT!M$Lc >ȧJˊ 6?9mf!#&ʋ|t>=_@yڐvh,,˵ I.ə'7". GEo >ȧaY3Vuh,5Yk_|\3%|Où:3\BPR}ʮCc9ɲ\䒜8t1'>6Ϻ+;4B&rkI,xOA&§|tD*]J2 rhѪopbl']hhյ\Ӵc˱rl9[l\;˝p4;%wUƸ6I%Y췍v m^ׂ9x̾*զ;TB`K%l DЙQٺBv |Nx`Y4 g6J sL<$,7aj9Z;N,-dl 6 b/E5C[bQW n%rFtN@ĭ.֕dԡ*įM$4aoD>] 4ܻ.ۑ5!!h{x .pAp@Cc)ɲ\uRNoD>] H lM >ȧAWf[X!^6Yk_|k67"*~^U7My 3I-%#L];nH^ IU;th,j,׾&&'$g(NoD>] ;nP@l&rko| \FPFIlaX!dY}MMOrI$T߈|vڭ ?\ovswOC^ `3,FŚ@xG |ڬYȧ{N_+ҩ{CGͭ;C*6. TPB}DUczҩ),e!gK^gu!!"ݥeH]"_;i [zjx.$DB$w.P5Vݨv?ޢWOy ҃:{g-R~?ԅHve=TX^|WO ҃)ck՛_w[z4^x  .=(kz:V=^|WOE ҃ޙzxJunxC]HHhwAI[Sd= գWJuaxC]HHhwA9g7c5~BѪ饡Wt`Eͽȋ{r^=@V!л_4,.H@Dtf=./6/\eeEEW6@1tl6F 4>?  j^IuY "AAvܰgtE!7tՅa[ f5Cڋ*⤺@Z{Շf0fAb-& jA (T!?hUöjAڈ!o誡a[ f5C/T kk!q?!ۤ f5CU|Z7tUװgtE!V nV:DP}Њ_g jxN7AP">h/v5_ `ã3bA$xե 0`зQKTt`Eͽȋ{r^=^S:Q$EtG?>/|_u E&5y9w)B,QNY$ wN udrz8׌>4/ 43_t0gvUCr'7&.G\W@'U|0 GGGGGGGyhW6F/ l髝\:4^kMS4[c4_ۮfE;V7 Lc !!jD*TPGVj,YB ڴʪvWY\}%^3PKe[iU se.map.gznu[+e[s8S}k[_!q3fˋKl$O讖qwiUA$S &>)Rzm;x:.pz,L&Dž/"^tL&9Y=u'XbcM_"z B)jr7.]LV1  B;/uY*^ eּ֝<:[|Vòtuul Z֣h=Z֟|S'1+L)ȟOZIaӆ vYNE{^E{dT~A Fx|u洦Jh_+qqo*}Ъ yc)2#h Z%h3Ĝ\$ WKY܍rePePe`mu3~]5=1Kw5 ^Dx`V FqĖ߳O8f@#OOBS Rl@6HX>fzPI:!З0_z4]YNѡ&F''R`8W42t JGԬ6):IӅ@g-ޚ@R٣R|lCMН4]kJЁt=Y+9~x )~kCMOq)ΔjN|f0`l-iiG?mSt t;|=ɿ#~E ]x)~oCMН4]iJЁtf 9Nr }K&mV<wpZn{L' u'@JԠѸw)f9ER80MEԤ]cHr57>ť8[n܂|3^@_I$VD%JJ=T(R{,ezk)$+*_]gy*~',֨JJJdNVleGZouPm&v4=[ #wCBBO +C r!c*]i|Ujo|k > feH IWz4B6):ީ), x;0 \jHڣRiCMOq)t9ЬJh!=\ƪjW=!Ųr57>ɥ8=o> f|a^vKi`{4C,P|#\q)N|f0+ws -KhWf}57>ɥ8gCrgv_3,wٚ^QR 6k T'AM*P ^!SR N0gW]h<AVw:m5CMw7 $lC"!G1xf9ERmgC+T(J HC?u!`TΓIR2EЩ7[xL*T$"H?{4B{\ͩ0#Ygd4F;6oPڣR[뒒fn1jCM4kbo1JJI#Hqf9E;i0Дg䣾=d'^"\|x)hCMН4]4Քgf|1Œq#Hr5Awtr9@g?={Vyx )~mCMK`oRk1W~}b>*`Ιd  -LfR3D&-L֛|k7jͷ%zU]]AlF6>" *TGT`f/_nuVEN/-ՏΖl fzB@D@7Kw)ټ])dTd6[0ժ2]juop\v>B@D@7tJ63stUtoKMf 'J |/ܕnl&骞uylTDoUjd3Ѯ,D@tLd3ŖMWclߑԩMwe! "e:%lg]5JlW" YSIKvl~°#Ws;B@D@7tJ6Cl.MԀj0Ug2r'4}շ5д#W.=ZsqqMgf3~ݬT!ZQR$ wNtE7ŗtUBH3=at{w!t4@#4b3̲UdY1'S8݇Ss⠝U[ŜNtNAv!VuaN""s8}85m(ڋM\$tMgcz3 e`- -I頷)é9h⠍DªF$"Bo1'S8݇SsA; :l'z9 >v.WiٷK<V>ўUXŜNtNA+h:>Jy]Sj<>3$xGR 0dT~ 'B %1InT7Ì{8rZOU^ԴFL\V2hڄ6Mh&s񼳥o}zu3{as\z]{v".",^þz`˨{#Wܣ=qqWwfoT($ϔXG#{]_}\2Ȯ$,/|(T/vx."E$D:HVbkѫzH&<aZG3{1=2 izvbf Nޛ gJY~e(U2߷h?+Z V}3"|GZ$"޵Czf3e-[QR$ wNbv\4=dSіuImK(Bͩu?,_MoTqvמoYۍ_~"E9/b.N{d4)5gtգYsUWyc8S7]w3"Ajzsn00:fB Uk4@ˬHAm\U]fTgjCNĤa#PKe[GCBCC fr-mac.map.gznu[+e[wF)g7!=ܜd3'ˋB-[kIx͌闾VMpl?g誢@77ngz~ K%;vH[vr@\:tӗU__&*D-YL}lO?޲HvKif'8 giҠKI\\Hλ"d5#ExigƐO.LwC!sd0}E|/8>ﳒ-:g l`{ub=<\YQJ=7 /IHx!D'xlaR_QEܼa%8F!@ hXT;EbUᡣ?i[_tvg枹dDTESc_VUzgk=<{ ed^>$rٷtl.TKjZ T-Ӊ0RaeQwkt:_[-<{~*R1ݘ"a y!$Թxsȼչf;3Kkɳ'IZfwc_[-ͥ9ө0֝a#%S=kGdp~D%[g9UҜL"> G@5T$Ӎf֡J}MOsi41߀|͕#9Q"$P#D%>YNվ&N. %@t41 9|`MP:˩j > G!uKy3sסJr57>ͥ9WϦ |:CtoH$1RoD%~}MOsߓQgh2U=v']S&YKcB OyS==|CW BJ/ Mߐuh"}MOqiNO߀|F45SK4y`n;4CuS pi|:C>A|3]~ڰo^b]Hz QO24:/\ I;6QO@fo%͑=7u|D'V]ޕ`;F:{>bE4A@#8 D|;4(:˩4/0oP> iG\F͊MPr57>ͥ9W߀|S$ ze&r(r57.m|QgH#8T~&BoD%,j_t'MN %@tш0~`ͮ:4C,j_|#67 ufT}8ԟegFHfS-Kb5kDƍꄥX)FmjH{fO؃7O^Ʌqu}0p&͢؂j.+0 tVᲚ8׳g/"-S+fs`;Q+E#06:N:;OjSz$/*vY:*Qyvj׾hQ2 G#\Aqq^(QI@b4X݄4!z `/:|NQַ*vh"}MK߀|7&{쁭7֡Jr57.m|QgHo̫?By; Mvh"o,j_t'Mt{:1T }kMdP:˩IESC :=u~F-ԓ1P3D%^YNվ&F4s> G!AG3\o!NLeW%E^~ծcn֦$m$uY[>b߰oط͜좉ԤFeV2-lMyϊr::@2DFq,$-ӯ3+&f3Y-blNƸe:[ܠuI :%_wJJE-Q}:i{5v;aƾst Io)T-|"6Oh;xJ,'BM1(]Rc#\~xa)׷{Fq`rhY86%.t0\J1pU\6R/A5kmBB$DBe唿|WBD?F[ydqV L`S:+1-睝|j V=Ϯ "ZȋԘt2|}k)R>?lx5i|h"/"Mc-CO*?On%b}K6հ7?, Nқj%2! gZ>[tñFƵf~yc-[//Xj8$)6Iq=?2Ix(/_~"Oʼn:˺2I7^zj.p \ jS~D9j iz (GPRk#yn2:8ƾXGCx*TPZ* 4hѾ+|*Βl_w|SPKe[`LV LLde-qwerty.map.gznu[+e[wHS}Ϟ#nL[:҃Kbe"JA<[ZwԫleY5}Fl Z֣h=Z֟|_#)g0QŨh̜π j[^E{^ҨƤ@ uc|xrV3-L&UuV,1UzG4͉4Asvk} 5s)ӛ8Y7Qz[Ɵ4Xmbwp;gN=_t])^6͟@=.9| ^'K1_[<ߺc `Lc[Sτ#a1hiu.6"7%f \<d$ȚM̠2QtRz$MܣJr\;>ť99GTHʐ/RG.AG6qjPtGof}5bgSh",u |C :>2_ru<68u&r([5w|Ksr. >C 3m)M_{4AHr5瀡&ό1V0;2`iVL_ ߛRMdP6qjPtG/07Lh$xb2)~nz ݾӅ3Jw#MG04p)JN͘Ph"hס&΀Ositj8`?F"JɅ]MP]5w|Ksp|ЬX$ 2&,f%J?^zWoxk^47N 1Qo\q5,K2Y/c[U>9kuk jVf՝:Snw ɏh/ڋ߷eWʼg\ }GtD`;i`Wݐ'`2c {LQB+)M^Jr\;>ͥ9G! ]A)" z4C6qj ߄>Cf8J.>zMڣJjס&΀Ositd8`H+cekz{r6 E&r(qf9CMҜ7G!PR C Jm&r(c5w|Ksr. >CBiORzǻC6_83S\siN|4Jc}GL |R]VlXJe/*f?).=+"}Dϖ( @ D48w=ԟ3TѝMdT)eVūtj|}4;YJ0Q?|QޣJiס&΀Oqiζ|мeclXs&_c? Y<$ʋ}Qv\+&9p}®4.?|>/2 |)8 NpN4X(EyDuSu"7}j^O^Z/第ە겸pz7ӗY1Q3n">f#GnƟ=H,u bC :?z7/ݢ_3Gw5AwtPtGVZ[^})5D%.,u C :?cDcW:D%hס&N.JЁt4 2jyK{4Am:Iөt; ~fX/5VtoV=Ƞįm:IӅPtG3_DONUr)o}C 9w|9fQl,+OSLk5!:3)K-ȋ՞k>@|4z0s 1?[Ʌ,-Uk?JpwW0;(@BY -tJYY%EvcZjEa+ߡ+h1Zhk1}9XK |/nޮ:Ͽn?/7f0O3^`Wkl0ѿ1jolpzGLjjWuyS$wPB * |~VEn,Տ.L:j^^VHnc>ovD?n*-vծmUHHVQ3xW7qn6Zv=lBB$DB:%ztU&{Zv=nBB$DB:%1ztUϺ<&՟5ٛ-:j<^  *|UU=`|6[wjulxmUHHVQ3֮YǤ^ VǛlBB$DB:%t/{[j7ٛ- ;j:y*$DB$tSbWWf Zzo  *S1y髾u lZFhjE^EGg^ʩBF_:)<7oٲ(J=ͪC:.}KChFhKÓ'CvUenNtʂ:lzݜAtA I;?tfN!39">Iʓz=87tUg~`̲h4XgIBv uJ'X,e;J'DcYCǖ2CS (#(SyҾHS-ᯝ}ĮȆlg:Lv>OIhdYS nNtҪ;ڗ};)/~0 4Xo⪾Qc`#e4V [-'u8V<#ƑJdqJicW8~J mB&9cy<ʷ`=?IGV=v]ȋԙ|[x+=O;jMv]ȋ輦3{#~bPNu6q߷}q^g8tñOXPyWfEss{3Y{KJyAk~CCʶH4E׫n{U|^@ lOf_j}|U*YOȈ|tv{|!ϫ5wVo+޳e b>~CA&d:Lw^!uYW-(9$ 3'u)gBBBoFuZʗ%ZJ髑w?,7RUٺN`_{enK%vۍO>|"D9'B'ѽOYcxZ3T{|p \Ѭ*nD<߈@dWX|Ic kFz Tl%BOgR*M9Wu^lFI)MjXGxG oƀP#QDQӦ !ۙ(J嗢,]uP TzP݌]BE!Fb6ׅҲ|LZB$(*P TkǮH"PW7vT'bE*Va&0.6cUǪbP"15$2Ye+r3MX"F3%Re|y9Kқr *$UtV$X93}1h?pw-@ -0 S0QQ"FukK `kQmXcAB> !ϱਦJD?x(W j4,6۽̂cccccccM _b#YR=ɟIy:Y| h/ڋ߶cH$ӣ+ЂlS5MeW};tp \y0k"5~@AmO]b.t}ZdUY]^]ܵZ,OŸ! h%ZVh%ZV\l+)^.?M:}*ٽo/xOczdsk=8sq3䅛LI$#\}$ٖs͂o|K0ǃaL?Iztlp>whM j9Uf7>oSriN|<N8R2$)4O К$^圪}Ҝp|Gp8[2? Lѡ5Ho9UfAwtQ`(A'7{f 9טTZm9j,G\SriN|<f0Ԉͥ9p|GpdЈs9oϳP׶\DŽ;B<GM&.}33RPI?lyx'񏶜So|#.^ >F"szԻA][Ω7 i.͙ >C^yO 6 `ݔG~3?Ljv5#ƪGmeP|xOV1 1m; _,1E.VB|ۡmDz,v}k{⇊!!!'`02+`P͂nt*CSװJͥ9Sp|GW6M~ޫК$.}wv0ۀ5` <(8cZC uhM rNվY Osi3x08c&$FZy[Ω7 i1|<J(zdHouZ]:&rNվY 4Ҝx04+dD2'}_r_a 4Ҝx04+铚eٛJ̅v))f^9PU:PT);~v3fpR4KǰnCg?O΃\ buJՕ ?%ML^%ss92KŮpYhfY,+;. )a~IzzqV#k*+Q,ʛ#Z ̞kcf33fʃfDJSFŒg١5!H-TKsJ. >C2`5gҡ51H-T Nɥ9#`++!IZ|vhM /rNվY Osi46x04+bzA0 Ƨ@⏶Sot'M %@t<:W(H=de.@E[Ω7 C :=~fX5@HTϟ(@m9j,N.t{:3EM L1Nv~GJ_yۖ~X03d WWjbh%N[3ooi N)niW|ߑx0 `F$UI]^̍;Q,LG3osf;@#2҃JֈhKtDQy!ڊh(\͜=Lۼ-Fb-Fs5Hrg+7~{wvw Va`x+K/+ld=&]ˍMotfv;I*o. TPB}Bc9ܯ5w?|).-56XMmo2! "k2r,g\uQȕX ƵF-Vv/eB@D@ĝR4>]ެq]F-Vl7eB@D@ĝRx=RIBoUm]&D@tM)1^oŪȶK." &ryU}ՑW[ljulۥ." &ryU}Ց_GpŪضK." &rfҹDm^oaŪՉm&L蚸Sb]z -VNm7eB@D@ĝrLj`=Bau孡V}ϮxڭܙLoT![($ NbXhH|T5.ϗom^+Z]TI%6;<CG#4@#?ZDVIb]INO@]'VITjNpz|ҎI;UujDE$p p'mNڋ*ХW[f0gzD jNpz|ҎIDYy'Q:9 !Iv;YINOډ:igrN.o}DCAG7UWt[y'Qݻ)©9i':i]+$*Bg5'S8=S>iH%rבw))DSճN"tVs8C8哖hS߽_{wJ/N%9cMRVdAd(?Fc H@"`WU} 9e=\aMry@\t=XG }!)s!gW1걙` XE5k[/v R*6eòEl0 L`jX*#-LQXwǡǒX%ϸ$ӝeTRʢH=<9=MXR,3qo,;nYul0 L`jX5UcDXX-d^*ˤN<ͫṭD:$:Ofh6f3>LLT fwlMmXwuΤltG@"z1r&m!q` 7euUy}cnXͻEul9$  ȯi`{jДS gf7|T3S^jBmRXUuWm ڎh;ڎa͗=t"'bJi7aQ5/-Gr-?/w1 RДnfNˊZ!";r*_ojZ˶ot̎{ܘl4Gx4?ƛ/}X`q$LYE"\DDaھB3ABIdkXxގMcFcM=^3$qA#c:_~+/e,73`89I37 h"e9Uǚ;>RKq|3\4^rEhb`MD r5Awtq)A'3ovn_' h"?,X|'G\s)N|f0`8'h>>r}k@?]Su t{:3zq,QC)̟7@}TkXStO@gP?q:q~\_y/p\lvÙNN`$YDŽr@Ir5w|KqfgX&f)&bxe9Uǚ;>ť839P:5Yչ\=g;vez*O/x #5zm1:$|S;1|x1{71;!s݂dܾk[%#9YYYYYYYΊy+ޱfS:v5mzB`;klHHӓz0J mK{6ՋAɀ&Ϻ,X|'G\s)N|f04+hK,/Hz@1H\tYNձ&N'R`W>MhjDrĘ,eAeTk< > f%ԄiOsXh".˩: }|{ >3ig6QD ?uYNձ&N'R`WMfMyLz]@|'G\s)N|f0神> az졿8{ْl"OtY5GY: (t߅3Qϝp&fO؛MD Uu:Mб&p- <)!_XU h"]Su #.*|f0Ӟ!L$4F(7Ɍ5E,ʵ4-uo%`;=G TLi^ղ`Nցz-[E7-Z_ܓ 03Oڄ-8P`w7u9Uܱ{">W/x{$f0+z.ei3V(.Pݙͽ:syԙgUL}w`U_/@QAC6~ p:p:p:p:p:p:p:w:M^I5Yqj#)= h"vYNձ&N'R`hE+bZ頡Ӏ&bwTkKqr. > f%mVQ-;$t@1H貜cMq)NΥ8P̚(R4݀&"r5AwtDStO@g?"*;Gb@H<ﲜcM5┠Йo? >m귷&br5w|(ɧؼGBrLvLo,/wΤX-`ӗ0J P=9o>,>rW X`VxKDK$cu[잤bUyI]U,iX_v `̠W-%!Msnq_5ZDLkއ \ a:9Γ$ d a/NMg3}{fS4myK}|[P} f0یWof3 >1TwG}䍵yW͠:f5Fl>TlMU|]7PB U3~OLĬ˂]ZjO8)չv")'|&yfEQI[~YOVr/Un|9V6j0m+pS.]ENg]7RYD^OR#v! "[d:%9wvUߺ=6j0o)Ujls"D@tL3ۮ[F kDAOR'v97Un|yU}بFo?QSԩ]Mw! "[d:%toM0h()U.f-2;Ȧ{[j*~Ts*B@D@tʙhy,^  I\:0` e4w-MU${fէ8xl6Zh)ZUlWg^kKku=J}heu".",9o673j_:70]AxKqqug=8rŐ Ju5o>/ʤ.uRVñ6Jmx=r""q$w5ٲdie@> f|]~u< emE{0E>5$_)F6Ԩw"o? moT8^V0&KrssB[4Β= \׀fUOORZ?MkR'XWWéa'zPBz`G 4h߱CT>KMI PKe[8DD tr-ku.map.gznu[+eY8SF>U3=53{T nYWjhHF279?\EU3l`؞ƺPusq+S?D#gvAzGo ~ &PESC')lCq:W 'G{^E{o^c,F1o*'$'5Bj\ۥ{Xи&T!UU2E%nAk晶Fȵ>#T YuJeGꢉ8 F`4 FE2]}M-^6Un͟k6ݪ/x Ճ1]U[X#(8Gw&,/2 G b69ۘÏ\ޖTN y IMT&ncKG;4],h_|spI|;! r0G\tI?S)d%ҡr˲5Awta(A3o}1BW&|9~aE˲5Awt(A3/l I,Twh,,h_tMt;<52]{3 E?.*EE3E :НN~_葐yp6!.*$'|;! D!^)9%gx''qx: TȅrИw!Წ}M OrIy80Rhǖ!{eko|.i|'Ӄ^ 0\zBHhKboeko|KrR. >OjqC1]Vr}Ա⽣`e, |WT}48888]1ԛrC tF`;j!!!'`Cc9GH";twh.*$L} >OzQ 9_()U!č˲57>es6|;! ՊG;6X !^,h_|spI|;! 2!ĵ˲57>5ʧCK2ز]b˲57>PIt>&P?G~x|spI|;! Պ|>fLxlE).EP@/k,ߖCc!eYEK `! tǖ˲57>P~SƋċ+"dП\ICf0wd-{KG1f0wt ÑQ/g27EMIrRUv@y]*Yl'd ]^nt}"f;C y? #~rWƟjLҍuX.Ū݊,5 gUZ헁\tJuY'8n-/ }M01+ `9>dOzY]I⚔êIϐTzexK15)Ccx岬}M]4](JЁ tzS++&ѸaG^T|X!pYVѾ&..+JЁ tz+)s.8th,/]U }E :НN~35ɷ[V[uh,,h_|spI|;! # .!Hx_]w.K@ *3z03G_@hUENn ՏLZr^3ۗvc:ovVql%Wf>B@D@;KwJ:SvU{k՟4-J50`_" YSsMWt6TDopԒ+̧}YhgNIg]7]3.Ϛz-R|/ڗvtuU=XYmoɕ̧ҝXng\k5-Rd_" YSҙIYwoC &zaKTf>7ݗvt5DPzW¨%W33B@D@;Kw)iOhՑa[ YJNTbS^Epv=XЙo㪾c`3h,\oLN%#I>Ty\b{8rRU\+I\Il+-jiD& mB6+Zϻn/lnpҒ+U3 0.w.".>9u>KЏ+З=O[rU,<ܹ个3{#bI Fq6q~!_".7*[ko*ˬ(^6:|nH .8ѻZdQI^7{V_=_l;>dw+#ڡa.#ы79n@.> Fq67K/L.Jv'gx>g}v{t!ϫ57Fo+>el>A$DHwެ!uY׎} H@zgBBBOxSG$#Eyv?l~u4PEٻNX{9'սOYcjx=.puh\4E^X"E: iz HGp7llf [PB Ī1l'eV̡AmXU]f*6&?s)PKe[RR us-hbs.map.gznu[+e[wHS}Ϟ#.>$q43;l6 ԶY#JKv q]EuW%,pOwC~1?ܓ(ݒ o(| G.pEr[2y\{|pwN,gROU|R.EÎ]@DDD^~w~xF0~*We9Cc>oCƥm$a6^o$*d.\rU[s1$+d>/HC6z&݊,{h>'='6 l'Tsd7'R{2`|O%CToʝ9k~[},x9{ #ƈ1b#ƈ݈ՇsИsu)ɗ XrV,*j$!W/!$Z,ݻ/x{&*p;8sqd˹B/s?>H̻iӌ]UM%uoD> *2ۧտlѴ Y>ȧR&ŜZF+Э`H"M3vUAwtJ~Jڭ["zoӌ]UM%uoD>Y }t٭hX Qfӌ]UM%uoD> *䪦n-!4iW|pI|O%CJ/n6hU,\RFSЫ~0_t<1~i-7 ,qx:~5oDЛ.p"1M3vU7> T2WӬn-!w6hU,\RFSPfWCk}I& {R'jz'88U2oؙudNܩCzh><6bzOCWEz+`;FU%{LF*x xjt:lX f4o|.|#dV@yW^nybʦMK߈|*V+bkqD=p-!Kf4o|KrR. >ȧZЋ.ݴH,6hU,\RFSP@.ݶH,~iFӮ*&g:7"J R@.kz'/,\RFSɰzB7=&0mӖ4pG \*UYȧlj oXQbӌ]UM%uoD> ;s"k'ZzY$-!76hUtFSp% Gxa.$sU|H|U2 - at(^\WCZ&iCY/ npVWF1A]hyQE]~6 ?ʘVɖK&4=(0 yÃo (YWə < /æeM͎opsnx1^}UՊ@_6ů Q"XM3vU7>%9ȯ8T2T+˚.}nX QۦMK߈|*KLWeEb1DʦMK߈|*V+ԑn[$CT4iW|pI|O%CۭۦEb1DҦMK߈|*d(Fk'˴ξEb1DM3vU7>d[ӏ)wVi2f~;gHL`ꡪd%WNV^Y3m9jc>tJ XrV,*ٸ2,ܙ`ZH=9<>,NCn3$k649097tJ%IHAC@"|d{ @֋L%7kjQNT޹˻뷇'OFk_yXo`3< M%kzg6M }WaUViNvG&;sU%oߤ=D!BJݵSc4!ך/tkW3LhIwr)]r Jԟ{̄IMJzNUmz+ Rt;3! "iRQ.&2z}NLhԤwܭ˩hJtWer纝3! "iR).]+ћ V).t;8fB@D@Ӥ&%cm]NUGi  0 \}h8|= 9hQoofp C8U'O%/hץ(NpNZ+^Ю+M7 Q)T>?i" L]6Zz3 ePo*YgA|M7 q(NpN?i缠]n;^;\ R"KMwVfuC}{z#nBShWCJ c˜0&{bqgA{D4}0tAU7`]v+".WMf vaaJKC *7`]v+".Ό"D<"2/.pEUH3(YjmJ(lpt7lXl AW!BqdQΉO X!/x_!?@GPKe[H me.map.gznu[+e]YF~>նc=^:FBh, [H_PYe ؗe^)rvJ5۟#t:B?5>@gKɢؔK<pp Ԛ\6ѹ,$;6k*ɮYU}j`&`H窉0+VA&0]e%//UJV@@x&7NunsW^ҙ8}!6Wuսde6k[ @@!MV5+`_#%Ki;oqp!n+[NJ g1_kup}_:Ő]Ԇ!B#VB@]$"1 % LωMtg6 OZcE;ktAhPН%CTR%1)8A]RKutg. J YRw):1pNP.:V pi |wD| ] cZR7Ҕ1 Kj)\K>;">JI|(~3_zܿE~ZcE;ktahPН%?߼ǘ3Qw}{X&ɏ]1;`fZx5=_w43ʙbGR+Ӹ4tjp%sM 5 NP]R+Ӹ4Δ|GGPq'< 9 oLZI gJYPp]u*THj0:lV)+(*m@~aPa_H؎԰æ8_A՛rMt";;U zy$߬ QO@Q&gx; 08py%TNJw4.3|GGɐV\QS p‡"7]RKu|O8]ҥ |wD| Zn"Aty%TNJ@w:;:J~DݦFFaaqo$^3M$ג8y`5mue &.`3IIV,ꕺ algz'[5jo"o! 2n8G9@(`L-'~ % )\'ǥq%CD%;XLw~6[c.FX$5GI@uؠ*:*J^foȊz{4aIxfeNu 7o.>siD@t|>y%TNJw.Uͤ uԣS'JYɦfMV'<(KjA t@wtʈH*G?:ם>ZXmXwIbS. | P‰( כYD"fnqQWTR'~麾o!wˀV%p_ "%əI|_^kEQU7*+I~bi}Xu|eSM =fbDl -6s i/5yC͝;7Ĺ$}}[ ҟDIJa_pk6bT[Tl%E^(967Z (Yy:Y;F?DJ c.*faqF`\ޕ,Y-ٳ `dd#oŕۣ͏Okc*էEeJu{4Y;@="FĈ#bD"s5(/WM^g|u_րZdWk{gLN7Ӗ/W 5m1 GMxU۷E,X`OR2+xTZ9X/Z]p&3('|TD7ißn]MppnAg_j obQnӪYn]MppnAg^7Cեm޴Ӫn]MppnAg^7CյnfܞV͆v;jC8v J>Su{L4VNvno M4(f1xoilds{Ѯ&8C8l7Ѡ3-2 o{sAOfv;7p&|5Em>*AӪٙv5!aTLhƪgB!ФUc+VUw+/>/ f>RN2 ~ @$@#1%3nsqs_|-߳YY=VmW;,GA q@tpzH:YrxQ%Y6*`FaNZOSYSKnàZQ=Q:i}yd,UHjFaF I{e[<7u_րZdȂ; ,UZQ=Q:i' e*AV0ztFȂwXrZ!I;'4ՄwӪEՇ7xho4frf\Knrx C5'ԑ'' ճV!= CVe*AV0ztҪ7ڎ,xWǒ[0*`FaNZF[s/eQO``89J|&۸o @D]&j/:R, qPqu7<qж[;C6WNJĄbBLrLtqݫkt3`ssQOf]VV_}_s>|#^|siOq ¢U Okv?KW*m'e^ezݭW }w_PyWfE?jQ<'ktto٢SfIIGv]=]l;gw+۾nÍ57.>PJu6/KϵM.Jq,S2,2._be 5 lY|dc>OgɌқ1d.뺣~ @$@#Ÿ`3 AAA/ZѻxSe⇎?#}4{7_fX8; ,qo~/"/ȉ"ts>:5"qΖ-pp p\6E^_Dy5(Q^@I 0pu6D Y+}6ޱ2+Rp,.]uWWjfqKPKe[qTUUbe-oss_latin9.map.gznu[+eY8S>>U3ӽ5={T[Ty 0c>ӯu02J)Sʟܥؒ|Ͼ.u9eE?ܳIh2u@6̫cCo,$(96x"_\6Ur͊2^2,.p[b*҈բwcS:NS)Y?rf6H,Mf5\f9oq.SMnܞ[3})]M-jCzbL;+ޖ:Je+w[* EI@b%,X{auNu]VrG<`#ʱI*W[{u\Ղe U<?H‡J5Lf>ͥ9p|'`hڍCa, =Εkv͂PtO@GojUdu.L\ôk|=\3 'wB>zY ZsSIPo\ôk|=\3e|;!C",*h"EIP\i,z'Ҝ (z&_Jjo:38𡒏\ôk|=\3N| *r*ezϓW;?GM ߵ?s.C_!? UWa5 ).9R7|9'wB> zaIP{Wa5 i.͙|;!CAFld9_/2f1+Xɷ3%aؐNZ#kXMdt]@t@_d^ :0~Evkk9 @ )8qY"+s>qڻ3333333@|eVm;ѵ-WO;vf)`)RKM0i%$Ի =$J5Lf>ͥ9p|'`H+|T$\ڕkv4 <Y5V:БZ1`׮\ôk|=\3N| i3@NtIxPɕLu^sf `l 3`L+"ՉȆCw{@Tqe  2R06+j@W {ΝL~v@Ҝp|'`HQ d'-H‡J޺r ӮY (weJiR:޻DFs#W̙4fKdž L`:"kU`V̧J(wɦovYUۍ:g9V8y"N #{̓>|~E'GYY:c@<7b.W8# b`Y\v-O;JcOX{`jfGjlto|> ˕kv͂PtO@Gqfl]IxPɿ]i,..JЁ (ьzSJvJ7bf`W\ôktMt{: ~f~Rr~Rg).,e«zK,FX}j}BOg>O7h݀oWX̧H—J.ۂ+FY4` IMp  S>قU&y/yIh5ɗXlXYerfEj̖  H@7)Ÿi"r,r%K̒|r@%O%dOFydt*d".m􆇂*[.=?6dз;~TvL)xX c4 _߼,l%ܼ̾?sڌH ? 0 WXTC ~7t$p,>%h*o>o|f﫪Xy'!B E |ը]e`7腃+)}*8C8l̠W^]޸VҢ5yTppTѠ3P7^Tڢբoy{>!6U4( zhx[7ן`آb`y{>!6U4(LzciC[ ᰩAg0]Cud]x-Z-m=ooOpM J>#DT{?ߢbdy{>!6U4(̤+~L}^EʼnMᰩAg]KdޖB'[Zzt *1yD?[CGC@h `4Lor.C$ 9s\">:)BZ\oޱe^|v+]*vqS:N#ӗH3e([ż`:/[Ƥkpqn.hxrL716#Xr6&][ssAėd*bQ7ҟmL:pI fVqRmɼ׭.l̽9C\SPV{]2pbЇ\~ Ƥkpqn.h 7J*u].Ƥkpqn.hDr7n&yVr6&][ssAd"ɋ4 oM̙^ҲJcoi!uhnn- #y;SX.A6&][ssad(' m[Ţ˥?ۘtmu. 5ŗބXŢDK1\ $jPx]h.lcҵՁ 874H [+^b {/l.m덥Uu+\A(;o㲺QAdA2e4wNd"_k*,NWU3bD|/.X,X!3 +ͮ-lniE7 }C7ۑF+ze=ߨQVm ZZ_}_r3kB}REkxh*rk~~` ȟ%g:Xǵ߯,:]՗mf}׵EzCOuuUz#<{F_ ͫ.,)uJhힶ]믙?/UGYYގ 7psnQoľYc5;y+px(vg_*}|*Y=-lG|/$H!F#_-OK"i׵$q43;l&^^|j۬P%|oti ]EuW%,pO6.qCɅsy[R"W-sه'a1V8&_$ܜ,`YTƓe?1>y1 aѰjjA/3weHvۿ `#c+2W?Bc>o}ƥu$a^o *.d.s'vol%o } l`;yd0s3ӪFsmA0#ۄ}6JvLv&,w)"j1,ռg*fT2KD\􆓰[<ϩoQ.ba7vsSc1FcpTừ#4|܇b=.#` XΊE%H$ e_¨MbEβѽ ^g«1]G:=8gGM&Gz 8:5]EbEM3vU7> T2 dȠn[$CTiFӮ*Fg:7 Js gS^Ӛ.kf4o|.|d ]ݚ.e-!6hU,\RSOΞT~M݊6hU,\RSЩB@.j"M3vU7> T2td(NkoX Q}iFӮ*Fg:7 J^[yMkg#u{dx#t9y?mѴ Y> ȧ3m".&5]v۵H,4iW|#pI|O%C")_Q eū,IEw!/2'8 'Ʃ|͔ֆ&uN}0rTfYplplplplplplplQ;t{R쳭7-ңPP;v7*`b7jԨWWV@SL|Na^4iW|#pI|O%Cz5]v[$CTW6hU,\RSɰZ5kU}nեM3vU7> T2T+frVeҦMK߀|*ha~PeO6hU,\RSɰZ6 yM?%4w٦} r7> T235M%7 xe' \ge:uJf;tfi/./[$BT4iW|#pI|O%CH@F5]vKZ$CTolѴ Y> ȧB<0BZyU63'8JtUM>|UПdr wi^fݝ^>-z h/x 3Ux6aU@8لWv.<(΢q? sDDf+dMZM%lQ`FQ < AW\7J,d?#>#C3iFyw_M˚/Ƌb/ƫ>G?ltmѴ Y> ȧzX0tKb6hU,\RSP8P.E-!W6hU,\RSɰZLg5]v"ӦMK߀|*KnMV-!6hU,\RSpQ%C4Remb7f4o|.|Upy#B;+4v3YX&0d%WN/:Bc>tIH,`YddCx8bh.͛krG8OUHX4Ө#Wܸ7.IB bXD^{q&޻E@TrK5쿾~Ox<<&__5Zf0O3JTwؿH lȿ'>hFzgLXu ؈=hl5,ys&!B7U2w.[o Dwz4X;dB@D@TMt閻|H47oVnC&D@4MjR;&tj[nP6.7o`۩? Me9U55ѝ͟4Xv?dB@D@Ӥ&%nYNUGvO뵬hƾCձ FMM|/GӍOfFpڇꤝOIvu5(xfFpڇSuҊ_=^Ю(NpNZDӍGhmfp }8U'Es4-N^ JJ7a^\u8P@7RԇLsG \7ZȖY\螿ziaoPo6Uh jh@1aLƄ1=1+ǹX{GDC4X8zQe"."qd oWDā>Tz`¸zQe"."qLσ?w*ag+yXaoa }v_.L>@e粻;DHtƑE!7ED¹c'ajg3}|{WQբa'eF{KhFG# a*g&sp@_{fqK%ۍ#######򍏈8?ť$Ktp \j{U/ %ql7}J5)l6M;f8ƾigC=D!BXԲsS!AK?Eoo00(0PKe[p uz-latin.map.gznu[+e[w:^9t1iSO;Mt=, 6)ٿ~ )BM»VI"n6N&q/!L69ɛ, HɃmp \j˹-ϿN&2領d'oal Es'eP}hc> 7fGYn """bQM_M^ߤH5IzF0rʹ~|^%[$xFSE39Myi=Gb#iHvy?&0]Us9WX6%z4/,0J} "qCI~ p p p p p p p  y0W(mN-D`|+¥  蠘K]r>Ie} l`ꉜf:o=G{GQ^}kxuŜ/@keO'XŢ&$'U^a\6my[ ^/WMt5` 8j0`KSϰ/ .ڔQ,\R|p^Ns9hkb_6eTm+7> ߀|j2\p6?hٌ4X,ؔQ,\R|pY^bv+Z6K,CdlʨVo|.'d Heb1DMUJ%57 r2\ eEf !ؔQ,\R|-'C7tZѲپb1D٦m%Fg|OM^eE[xΦnAYHxO:~9DЫc8iwæm%Fg|OMϴ|Tlv`"hSFն|#pI > ȧ&CB)_Q:_4oIEwPy2T|cϔ˟o %_?ȝzg=Szu ߀|j2T+frVѲUbleSFն|#pI > ȧ&CM<ӟWlv`"MUJ%57 h\TtM} r7> ߀|j2,3}!C?ݦl,e]b!Dަm%Fg|OM: +Z6,Cd6eTm+7> ߀|j2\gx^A1Fa';.5| }]s&/$'uX V>#V5:s6ϰ ՅpQFiga^(ސ"~@/ @/+z.n)qj0x!ѡHZmwaò"kE_E@Շqh.-`X"MUJ%57 ;EEf,Cd)j[ YSZQ${- !6eTm+7> ߀|j2,W$SA,CdؔQ,\R|PHrŌVlnX )j[ YSᲜ BHEfo6eTm+7> ߀|d8UﴑOT7y16%cv|!9Ej0T\;}b>d>ce XXdɆf^'ۻ$ϙ;FxjuJMAм`572INKeO<*PQWnA2|E:T zqҮv f0iF՛qm:o=7~! hb#6b[ vz'bOZ'i# iNI+~xBz6)T OhӉGhf$p }8U'E#sXwU7N/^  A_u8?Hxxxe-5$\-ge._C|ׁiԴԪN %>O>djYM ]lTW`]RE\=:A ”ї8ЇJ/jJ0^yvKq`v&ɖ Al}{OIn.]VCۧVߦ?|L$xUh.""HkU&9#apn~wXL]w;-Z0/#6ovlݴ~w|!AldO&ryJRv3\} RZRGT_}4Gm.bh8 {u[*m7>"D<", ,+kI[x`i_Ox7l&5R5)Ʊo00M;_QÄ &́Mm6v|:,X`=c,Ouvd'lĿSjPKe[7lKKpt-sundeadkeys.map.gznu[+e[w8S}Ϟ՗}gf{33{y 'lI̧_.%+`HbNDO4 qVm9rzn]'l6zW-{:.pz,86b1kD,kk}hL,'Ţ_5-DshTWָB+,dvTmK]V1DW`.S~W VzE`#X2LBD*k|.M!$ϲG\L`j]Uc5V"d\b;D oYul0 L`X5QcX0ł!Y8,oBV2Z/\zX6Uc[6bq,kyX/L5ZfQy-E,c˪ڟvjy4 hAcLqS"D(0=o sچҫk6*zU;2L?]G&0&AT !bMo̬cpzE{^c5w]}qU>_,GoY*UK4Aۼo +4gʖ)c;BF{A{^D{Hɋ9Q¢2fIe0|nP P ^\5z[NjOmܥ[5 ^Dxi0G][ACOKs2 Nc=lh[=|B؋uS'"T֣5[mUu BM :-\iShM)>YVա&N.4%@w:Z!у_ tru<8UĐ6˪:I.ɹ'w@> ]=$4V3&wj ,Pt'M4%@w:<=ɿPBMD6˪:IӅ@Gq:|XBfptX#F:a;Rr921!RͲ5w|Kq&S >P9ȋ()jBOn{&,P|gg4'w@> x<1ғS 4b+6RWfEeŊ[> np97 |E;7U}jfX^:\fbh!2-.ÀÀÀÀÀÀПO|'VmuPz@G4v& |̆ɥ89GX=}Mߙ5]ާkd,٥4'۬횃,PUi:PjT4xo׌b-*z /BD[V:i5]6n.p_. ͜X!T֣51xfYU;>ɥ8>0>C &oƓ{S|Ș@]}uuQՃqg,HEY-3MQQUQUQUiu҄D~R u2G4Wbw~fh/ڋh3h/`BO!}G""/YW~OCb>e`zLEL`z  Vj'ޱ/tJ&;qZOly\>|S"/Y%h6/=)HDEӁgw93 y 4jPI6=_:aEEGvq)7@=`Soqݕzh4@#Ј4~4Fz)u>cᗏ6Yfw[O҇f03^`g@*l0Q>vd[1K>UN b#6b46uv_PBzDcFܭVggPp4?(չfyoW" ESs ޸.7QUv! "]D;]ޤzrRf9*B@D@:%s^wUz:zNGR v! "]D8k\J r/UvuJؼqyL?xJxW" E)k󺫺1[G(U,&.NLKdކ{uz RNro" 9Dm>+ToAQԙYv! "]Drڼi8i=]=ö))/oV""V8}8V>vDwu JDjVpt'v= SA>*K9 0`8A?Fc_~U]|3x#?C2G4X)yUb0Zh4Fh42M?2H;{&L:Jfƣ^OKY,Ŀ2a,F?fמv0Yhd".":1O!Al?m [Q\W(묆}6HB-k=DHt‘.gjHxag3)6=tgAc"~#:vq6;yok$HSbJ[.y\%7yInOy]|F'ʿ!y1HttޭGZ-C 䅓`oBBB4=Ѧd-E7-) էFn{ʎCr33/pDpDpDpDpDpDpD|DD.6&i֒= \WfŸʪ H35zu7)3H7xmvq6q6f [PB 1O\m4h^CYEhSn5{PKe[INN tr.map.gznu[+e][8~_{sarIfKr78EwYmcsUTF 2^WWzsr]Mkr8yG'a$꘿b%/i/9W&CoT@T@crW sQLx߫cguQe'T=Ar](sqԾ\*VM6,K2,uK1ܗDѭ6˄Uvr˭N[}<5z^wku;H8R1b#~MŹyqQh,sQs{QWeD]2%8LLMU' 1I9/*^͏V\\QrT2~_02I$1"Yqu٤SEFhh_M帙qS(Ą9u$ݽK@=qLL|0L3_&z! t꜕,*[ ͮnM_[ekg{G{{O<8`"vŨ}W4?I)f8}&> e8=/~ꓱ\ǼKx.,^DqoְqU7]qC:+YE%n5zޠ7 zL{O>rmϵxJ"nVsRViQ}U]^f+9yh.XZ#P~KtFat~'e{blܬk6jW^^:Uލ=8sq`B®wp̻ rIi_ρK|'ħT&qiH8D6" W$˴t.J3o}+U?`EKL@w"_:;:J~ĒFu"KL@wP:;:TxJ {c@_|ЕAH)Wn".;@g؁؁Uɞՠã*jeXEM/KL7|ę ' dW ⩧󅢲Yܸ$˴|'q8 |wB|:Cc1. wdlvIi_ρK|'ħaX4!ȵKL7|t2+K.Ɏ,up, ?$˴|%ePO|GL7~rI_>.)N.cԇ}7񒫷ي,cqwmK@ PPV`+OY^>tp, $˴|%eP+F, Y6;8C.2+9pIt2ߎ"񺈈/'|UnjÂEXeiw}30wIdmY퇯N%Pho*4.֧j5"]X<P9(]/%JCbᰂTi)j2OrR( zFW~g%az0La02 2DV\*)K76bM+"W%ͪ`褣fOl͖ʼn&woA~`5+0F 1d"fFSI/[pפtV"i4UH!R\~1;cy,Ӿ"]40P(΀N'?"`"VG?RN ̧EdEc t+" *=(̤kz~°E+٩Th3Į%лBF-ZL=7ۧB@D@[MhƪohxAFlh'6UfVpz |. mƪGG4Dt4=f|yn;ͬNNA;mUfVpz O^Ц![ifp pZD{ tdV#tY1V<~U,aˢ pv :YЙo㪾c @3 d4 RN7&'\P$N<ٮb}#'UŹ5)6~UM J }B'{>Yxյo|xu3}asd=4`*qqWf:%^ ˞-Z7 GʭE\E'Uv?K7*>}<&E\oUnkeV/%"!G2F]K,>ksF kyLJ>yeD;1 e1Ff568蝼 ߨ0Ffi򥖗EɮYq xszGGHY|bFYHh׷ "!EDRk&އfEg )˺vaHHs$:;XLCPPQ:3zo*(_$~pS# q4`ٻNX5_Uc``````y٧5Go tjrO\\sUyc0Kc4Чmw3P@Gsn008& Y#l'eVnXU]f*6&?M[PKe[sNhu-101_qwerty_dot_nodead.map.gznu[+e]Ks8ϯ}kķtC^d6>..le!)'_@C)RW@ѤH]q6F?܈$KřswE߉QƗ zx*sjF5DMbM,lq|dujRﲢjrweٲ/bPgî2BF!#F{RT_*&:t6_~ɈJN**ڨ6׹#)PNRwy cJkxȕadBE"TzP56X%$6>V9qk4[,| M u +~$[uq~S,S LLTU\\)aHjbqq:xq8L.\B>;>S?pB<=u(z6f4o r+d,$~x:8ihZA{TZ̮̉BcΠ=mVg\,qz]eKq&hhz)ɖ&lb!JN^]q g0>T^^=,֣~` Ϩ!؀~yĬMIsz6kjgHC6W# 'A8t\"ڸbs|޹K " Mn6BPBpB8"10 +FEWR]i4* Ӹ4N8Nk ;}l)F拸\9I|Ntn)r+cT5((Q y&5)\'C-kPiۣb禅])-:m ƴ-0XL&YfE+MOAu;=w:AzNfEY̛߮3̟"όkڸmnF3GG+x88ȕ-Yi<'R"5T4-Bmf-[ZX-8zz pt&_"WK,DXn"`* 6p0 LNm5c3ӳWOCםpEMd_-[bh*,j؀X}`9s'.-'[yCdd7hB{5 @̔faշ}\-ꣶzO\ܩM4F$G<N&<[MaR+,)<8QNj_+)-e*v+'PHBNfxaӃ(5lZP?Blm:V{%cDaICTiFY9DR`O @=&Wԏ97#2IK)dS W(^y-:Dۄͷ7B B |]O3ۻTkwMijw-tٳ `ddCF7h[gm|RϙEr^lb0@aE\]`+A~xa(w5'MvW~րZd-WZ8N!BFDρ] [1zٵ9 |7|7v9M/_ϒ`,'c9ܩyag-ĥźٹ/f9-M2~@$@‘MI-:rAf\.6]q)֫-# #ph8?B^"Knd>o(`FaOZN1ؒym(`FaOZN Ēym(`FaOZNڋմ\㥡]Zf`f`~^jڛͧB:-Q堷YQ݇Q>iC:i*dym(`FaOڈNڐ 5FAz5 }vL'4DvרFvmovxMh9TH3%7 ޽>v<֥Bvu-QfFatFUo=*dWϒym(`FaOZF{D:FAz5 }VHٝ{e} :@䌅qQ^u8 @ |1 7w"rDR\/5?C9b׺٦bBE˗q֫MJĄbBL/9&X8ٹk}g"Zn ]~ԡլ jVU~~3m$`mƬ'? 7whnP[ڵ hf0;#zV@ l~kxfq^̯>|1g@uK]'x:bOkދY9x+8{X,w|_];?/-ov97(b-S{Xg|6D;X`-6M_M$PɽMbqV|l)}Q}kp/r添jM@5Q͗Y[MjwFjJKxk(Y>]()z9m~HF }֤ou*2LNGy'EܷʞRj2؂jBy<x3}Hc!b>۴d+Ϳ0"a5EmkK<'H>JO2 ;2O jV:fp9_+Vo;-%CePTAeSe5glޕ+d"_^i#`_VivlYg6l`uu$dU'>3=zʊm٣[yW-[@^W0TGQyT?^!60ہ@j1\(OV'x~rϙ3LL1TRĹя &?TRowp,^o7sli/}o1888=A2hP݄r PKW)w<4:UA =6CvU/*ꢺ.~EOf~tqth•[w5 ^Hx3K[7w 4/0GldD/c;4Q| \3S|wP> & :V 668vh‡YNҾ&NOsi,634eG .kI SO =MxPr5AwtQl(A'obmj.%SMPr5w|KsfƐz|303՟7o>I i.͙3 >:C3+(h%gj{MP?>I i.͙|; uC_Ywh‡,'i_|'4gr|0T)23x?=wڏeg8SJ ZDJg9I;>ͥ9sl|;(uVP \}Dn-*R|ZqR)\4/&*Ѐ u>|X\6[o)+Y5)?i3m[}G QC5D Q . x˥ily ӎXQp^,{I!itTLgώib3B>z]BXvh~;< v`o53`nHHӓ3iZ!n_s&:%鳜}MJWG!Qc%g꛿9-X^uh‡>I i.͙ 'w@> E&uC>x볜}MҜ֋| ïn6 gpĹr5wx`xOG ͼQKDzIŞMPG$k4F|; ufHvox5N?k)~YNOsi|`8QgHPZ|fQϺ#ͥ9qQgH 0{$k4>:C퐑UHW˟Mӭ3DDj^]8H/) @$IEfFl"O'[VflU7TuD\l .puLԈ 9b$vhR!b1YiB>z6UP4)iUr^llGNvHm ٙ'2\,o|Є%%łU9`<181`wdΒF|cs+`dMxPR\,m:idkI!)H!)u4R]-:S֡ JYNҾ&莚. %@t퉚P)i/>IQ#C :=u~4]aXG&t:Є%^,'i_|'4^ 0|ΐFY ZifLkա JNҾ&/bx3`2"Spxo(j؎卷E!¡E;Լ-5O-[b:yymQppFQM[ZPH =44jj0]X_}_j|$Я*d>g1yApӹ$|DEVLqq]|Ey'Oj?Wm&Ӛݦo):*J*Gphr>"~J, ^U|ޝ P( GtI;:l':9 E(NPv3PB餍I{et^]f0^KZɀ;, 3PBɓ6[Hɜ}J'm"Oڑ x֑e;Й P( GtҎI*ϵ9]7j|bvټ;9 E(ԜK5 0`x".F#1L !DZjZrf7֧x'bsǂUԮJ֬4uriDP' uB^rb% kh0tEIKVN Jvc~~1eH GXfh'%Z h1zb Nu6~~aw"-*]&Co*yQ$^7?6COGj]|{6oYV瞙P.=lw|_];?,of97V+b߭rlYgB;(Vfj}|^.YOQSLgw'XYC@@|aF>[_X!oxdZDnG :<&/H@NB F4<=igFu<뒥7ӥ7?y~q6RU:O`_{2my#B7'j/$?x=p \Ь*mEciVko۞f Dx!a, NwΆΆS߬!i}D*TPZqUAk?Tu9_]Ugiu঄kPKe[032hu-102_qwerty_comma_dead.map.gznu[+e]KsFW*Mlc%EC +P!`D2U3=_˘ ؗe.&s;%)Rv\Mk?yn0@t@tCgrs' Tr׀~׀d*YMe>2%1#fČ3b~1kuվƑKvxNۅE)%>'y<@-pp@ee |b6i9ש [Շ&`&`jMt %̗Mbw2a·*6a#laEM&rr";;U z~$Ϭ զzM_N'"/Xƥq5 (Jm 1j8B.:VS`i3<;6aJF[k.V DB~d p ;">JK~[1ldI.i[s\'KK YVVެwϒ5+xvcEm| 6.3KIWn'|(Kj )\'%C-kg@yFîtǔ̌L]ƴCYL&YfE+MJ|ϡ]k==w:])93Il&˟,:} W\f%,i0 NEj )y46ЀA؏@1IN^%$7%k~j-Es?0f &%QևLXuȿ%YmsVVͪ#Vϱ"L hg.$WO} ٕd pƒ"$7e)OZA @ kfGjs@bշC|V%C᫷)u3p VSԊh.AQ[\F'c/T =d)gPHBJfFwaQjDmmu~+mb+ǠF=П&zf~ &yCE¬<;I_{~uN `FIMw4$sAus\3MTͤX.է=>nXUg^eyhn5 B 'AHQaٚY=Y\77EW[oߵg϶ ,,'M dntcV߼ }}ۍVuEG1}HGbKg4]%eRt-?]qͶ# 8 ph8r=$ ~,U,Vk0 0J'+Oک,xש% aPU((Y{7ϑ7Xr{PU(¨9iyҺ]]KnàZQ=Q:imOgɭBzTk0 0J'z=:V!= CV~%(ؿ?00<9J|&۸ @orTD~Kwn䬪:>Rj:!\Ijtm.d&mqKڗo~ӪYDZE~~omD7O{ZVV_}_3 cd(P|:~f_E\W*{yeVz8tW( Nؓ5ZlQ)^#;.׮u6zmp7EAU|lO^V(P|:so/R% Oin/TiU |," 7[3j_%EE~d] ;=d 6-@YLvTT+catm: T]z zkқQAGDBzQ.(FV:Eeg[ܢbem->tpN=G=Y4?[I^d-662kfOV]uŨӕhc-p8'긾˩`=}oA,NBUi=jTYT}շ sZ:c7>Pwuez!Q8 G(uTTE׻1~)rXfYZ +(7ZXJ-Y-"nUSy|}Ce9#Vy!5$ڌ;NJ 'Wc>hh9A;3鴓!85h>YWCȸBvoy\wGewه& ivCH9Pp}!/La]!\Bʆ .\ gゾIӀ?h(Vl֔im#cE;ux~`xǃq"b Z!` ԩ:VF %#;/ uzzkmMT+$NK>;"> Ռ0 3T~hsk-_ԩ:VFD %#UOdѯ\kAmRXN](@tN?O}sH?ϱKlƍܡse0dzaӝWp) Mf*&\]ؤNձ">KLf '`c%R.Z" p AۤNձ">KL |wD|:5KVi&\P),(j3`bnd[N_|$t0 .*Hϩ[;3{5xT+oyYq:6e83^֫n#+`g.lPP*xj&T,fb&܏oƍك:"BHNemd8vm8Ǟc4cp :ojzF'Vu6/x5&ȕMT+ީ$LǙjfT̡}Zm!kԩ:V3'pI)LugVS&":n$ٓQ|KK[N-DږףW _#oj]( 惵]:UU4+a +0bRu'&d4!å՞މ~k-o"z`eި,Y6p+3`AW4+٥+pA^78OZ5B @WL ŢAa#;qD ncg"|&ՍlThx8a[33\il P:. βقK!Q6c ʬb}@x 8WQ¦aD-p5qA~5M 5)U=?ϔ&)iW?{>K³EԳqyGd{nv{9'98ԃ7-9ΥrR$ /^7j&(R=.V+ڧ5Tθ0V @$@:oH:H2H ɒo+*EEqy/ טfrB>S/ l5W<%"V>NU\=Yf/"U^2n(˷_7܀GwCD|S__[guz}bׯzK yZ96LY|}1]NX1Ǖvl6lQmG" ,X`g\:͟_vVEƮ ..=*,o*AnS>m|]I)loSXsw `HwJ>wU{k {J%\aESMWut6XwXoS*Y,]E00-ҝllc<k֝7֛wzJ%\_aESbMWuczS*٩YMw `HwJ>b骎xYi7J64˹pW vt#.#빍RroaESbYwo[RroaESM_uO(<54)31+,{).>خ|$Я R ’?yH[  ΑMWqYdոX|~VE&3jWuT>~cpN 8'\4RC!w|jJJEE;7r'! : B!֣vN o:7NBu(C(OzQQ\o\}jf`f`~VMk6O 7r'`NPzEP›I`NPz 额R›N jJJE;EH›"և5X;kkͩ9p5!wރ: B!v6֥7u jJJE+h{!w0X@)Bh %Đ; YIJT_{ogeQoZTG,ZÁI7s'C".SMm(Q|[eQs @Dkg=J o->.g8o5_9TcVh5YR؅]}]ݙi$[f=)_${S̸fVe/]؅Uٙϝ?+%ȿc~g}]Q\7yVCoD˴(/_"), [2z-1kF k\͇cGsnX۷1i1z&Opa\ MK%خk|YSrw15~+V O@g&~`3C{`$,5HkVjgaHHs$:7Xh!((Q93z+fI_,'T_ygHE[ VtO--S9gggggggψ~8KN?9Rॵd,p \\1V?Hgj5mRgtoqq5Lq5a\ a+z`{dֈW4.b]ukPKe[T+sk-qwerty_bksl.map.gznu[+e]YsH~_/Nlo{fxq (Y#pvϯ_K-n0ud~A*.&u[5.v\MGwly.^2ee2q-EufMV]+r,ZmPPmUUkb_GH<% QY:GRtޤUUg`-'|ږUeߞR\< /@zZdcW VVMnn=dZ 偌qG O%̆+ڗźrIeYNYV^^=:ͿEG ѝINEs DDƽS|w8-ӝ3>T7PHB IgUG6B*W6\p\8MBMD}A۝Dek6HkT+ީӄ7<;<Ռ ^rSpA>ؤNձ"Н4U(9E }3 \kClRX%qr\'`fsOr9MC lRXN]0W(~ ~'{T~ͿZ n:UNJ@w@:{t:yCӾ6i`ڜ?Wf s<枯9 } ˜dbB1MT+$dp96Q.+MT+$΄)|GħQk%/i6ھ E2˂x8s 6!FFEO%|OOC5BiJԭݙ̚Ia<*Yv#ש)h-h@333pg@?=X.s;W܆G؁؁W\٠GU0LXħLBߴuD䅐xqf Nq6p =|G9h:cuL,O|&8mT\kL+ԩ:VS'`I3<;6<̬C +}%\kC6Su|gO8yQ;|Gŧ5rN+Fwip!;K"Dhe6oD`!L&`>:vbS?&k7np"?n5#:SBPs[C[qU4>u粩swր#p8 9w1]Hg;':5Ա;#4"[n7׮xhp.e suYߤ̼P "܋/p%AK$cU: ƊxfHaF`|B:X=D&r;XpAM$_E5+7',JLX}`u3i>AviًH?\kAWD Eh P-~huU3BP@}Ngۘ_Iu#=8'`p,WCl., -Rls2f*gPHjT¦aaD-pֵqA~5_~݄׸ʁg 4ѫd"2rԶ:#N9=vSpSpAN雖AҘ9o)GmpE5D حӚUu*gjn M~  7$\Hwd7][ۢy<k'3F9HOXXN6rƛ+,HSYe_7}jf`f`~VMk>SEV8C_ |21Ik1ە c؆m>mWu~[ķ` YLKΪص%?T孾]E00-RrGx_M+i֝6zJks}"ANG^jtoͺaS9yOd=v `HwJ>b骎OzJ%\aES򑍗MWucͺzsNOd v `HwJ>R骎xYoVw{J%;5˹"ANG]6]159RɆf9*An|d%D`=S*ٙYv `HwJ>B?"m+~S*ٹYw `HwY;x髮 Eߘ篆=u&fVe/]؅՝uB_X0i $@$9\B>*.,W/ت(ݤ|t]jt N 8'뛆CCJ}(4N:9\@)Bh]hg3C$daZ'R(=R}zt)MI`NPz颽Z/2 +z[/Xm A`-f)F|C$t;IJT_ShJx; YIJT_!]SJxө!w0X@)BhgtѾHIx7]dkgmMw9u>1NB{Z'R(=Ru&tѺ!w0X@)Bhm3NBu(C(=7r'! : B!V|~OϽ,;Q  QU_y8 @# f4{;#BbFTvEVYT}#~\2*Ye-v% pQ8 G7v"ǹt =uBȲ.L] E4&׳Re5+,{).>خ΄X1$H(1F};/뢈*ɣ>y_E)xt4Ha Nؒѻ·5Kb|d#5f]Cz#97f`4}'80&u%GjlWf|L,);Ly?+k' Fo3?U!=mKtT5+5]Z0i $@$9\W4/KZRGo3Qբ-+:Ξ -[s#p"2~~NQsKkX 8c ","= kz H ս ހ|jj8øW` Ȭ8p1CUi~S]DźZGX{PKe["hu-102_qwertz_comma_dead.map.gznu[+e]KsFW*Mlc%EC +ж!`D2U3=_˘ 2^W9nO]8xS%Oޱ:>"\\5\6'čEFU"$˒L6KU'\+!^U2ה:^mC}! l6FZk+reI\*7s!fI_}ҩ [Շ&`&`jMt %̗Mbw2a·*zS="%{2FU53+EBi^ӗu<ȋ.:V3qizM3>;*>JRDzH8wLZNPKj)XL Y1]E|U>Ȝ8'|(Kj NydH+HW|C&t7U&BKIeܱ>ueC0$J+>z./Oo:8D~Rx-VrKՂ@#@ ]JP}i͗q^nG?vIHw.8R*jmL6[c;aK% x4>kGdfVąz7'<($r*^bXpw?߂Ϳ Ro$*[> ZcE;| |GG| g2r;*EǥѰ!]`1%3SokWl1oIVYJESa3shZOϝNh?vJ|E `*;}E-jnV1z`5`j@,>sti&zKȮ\& dy%ɸ)K~" jo-%_3=REEdqM.a$(|6N]1x8pP2jJZ1%(ʃsD}8aۜ;} )W@H5l 4J:ν2qE~[Z uSc@>3QCDo@c6o8w~HUz' zkϯiS(Fd.H]nkjS˥ P+̒"m6߭@@$)9:9*,=i?\{@UnnJT7޾kϞmXXN %O'yy y6~yj@f:w}@a= XK |%m:[[}Zf`f`~^j5_A"qA'CL5o] [sp2 }T4Wu~[$w` YJ|Ϊٵź%?ޮ&8C8l7AǗnSn467i5DϜCĺQެUyDؼlCbi9IOf}w5!a%x UǺ=&֝5ޛwzZ5^ M4(Lf:1ޤ6j6۹pW!hPkPucb=Ӫn]MppnAg&][d빍VNvno M4( K~Lb=T9U3ۛjC8v ʩ<ЌUzB7UVV_}_|&/*d>EG1}HGbKg4]%eR|-^MWJWծf}K@A8]4?E*^TI C֕'TԒ[0*`FaNZO3Y3KnàZQ=Q:i}y^mu' mݗ?5`f`(Y|Yp'% y9Tk0 0J'm(O@k`ɭBzTk0 0J'm$OPkhɭBzTk0 0J'T/TMnWȂq,U=*`FaԜӉm\j}  @D]K79X*i"W%Ż[7rVU)~l5p$5:pp TS2۶8ťkom7m?iլ ¢U KYnwŷ6y"̀=ƍk+VUw+/>گ΄X2(Ra}?yUv^5}}m}^2N>7U1Jxd.-[c,)N ǵkyޣiey۷3iFf8: _F0Rˢwɢ0,SZ ~ZUA@@F#_-Ol $<5SYAv.;0 $@$8J. ֫bU77렠Gx}XGd]G }蟐>]`ҫ-m֒p%|ﭦsBW]CyDo?<\xx=9^#Etգ.p \ e~>8>=QW[|ԝ` XΊE@pdn1ŗ+Qᖪ[A@D@[Qs2s2hOqیw$Yl#orXʐ3qc>]ƵU^GY{ G墉Ec(4E]|d1rUS&\\ɚDa|ʧɋ$mlA*P5k'.hD6ef̣튛,`ׅ<>ħr\g8JW5tG,-N8V Yd4z`@0  ybEɜR m"W2ݿ`*q5D >NL2cWRR8ό=~|6|bT0* FQy/^5_ I\I!{+q׮ alw9W~1G#㈟gϿOcɧ]$֥ݯ<~'XbɆ.V$p_,|&>E[ۚ/x{&:հD˃ہ8sqd9PS˱Wa4]]մ 9 >ȧT%éVlKb/e5mko|.i|=d8p22Wlٍ4h,|DeYMۚK_|:Օ/2_eAc1ಬmM %mG>J +V4h,,i[|spI|O'CO%ùWlAc1˲57>t2U2Ï[v5h,]մ 9 >ȧanL+_\V>C6َ"YZT`D0"GHt2T+&bmnVlmՠBvYVӶ&6#NzD@N*vݠB,\մ 9 >ȧ^q'nӊ-4h,?,i[|spI|O'Co2}ԏrzo|.i|=d~sh"Dm%ׄ)oq9x .pZ5oYVlyAxנB견mM %mG> o2زۺAc1x벬mM %mG> ,qFc>sItniՀ|_O|*j _H3z)ś<[0,ɚ\0M? :(I-(A (uĕ0;9sw:oqZ5(ƱXq8V+UMIy K=Ԋ"+)L*/sH%7ũ;u vj02L#ad02L5FP 6IBAc˲5AwtHQtO@M8qdo,RN_4A,i[tgM7)JЁ t++ bnqbeYMۚK_|:lSbn4C?]մ 9 >ȧ^拌Wlm٠BtYVӶ&6#Ns eHŖݶ !o.j\zSpIFXC[{d# L9dl1l}[ɕ݂iMk3ЮRrB\]P7Ҫ?)+-*լCUhWII\ЩjLoӲqZf=B@D@JOJᢜކjj_x *=)vrzVyBVcB@D@JOJآqy`T~[JubSCUhWIIX[S3.xer ZNzoz *=)I z~°V3B@D@JOJ؂^"mVqMTf=7?Tv3@9W}V OJ GcqqO'3}݆?* 6)}A|$*LMq׼m٤?$/HW]QAw< p8CpS^ϡa[ŋig}ZIAǶG4Dt4=|yn<ö >YiNI;UͬN w^Юa[*NpOZqG{ udV#46 8.V~Ixew{@}bmWb 0`D06Y_m.pkee>EVq uU-IK< J EEE,gDee64`X5*$![/Dvm+r2͉cՊyL굨xWZOl#<R bQY':8Cq8h4~3zt6^L6opt[TkqWq˪:+ģګ2 Uع+\xs2<:9h xs.&'Yl׫}Q!6,G+0R^T$87878787?7fOݽ/?.n?Y},x ^ |oQwk@9B?31!BFz~v6}$OQ+N]ٝ]y L 1 UP : |ZB+g5 .ɹ$'w@> 2Iߘ>E h!t嬦c;j:?PTwbG1=^ÔZA]9,莚.p%@t3|L j*z@k}[Wj:6 \sIN|::*.4~:K z?]9,莚.X*JЁ tsUz$ztltGMt{:LPi_isd$~ sKpNjӝWp% ZL*&Zk]t嬦c;>%9Ӆȧa(!Wj"h!w嬦c;>%9S8`f0X5?.]{^ɓ&4)H%R.aAd<^l|!FۊYU7;%&y3oN̤ޖn!^h;0 v``gbbHHӓ*xjfR( g,O̕h@\/rVӱY䒜I8`g&y⭭)-YTՀֺ+g5ޱI,x;0jR(BЕIևrVӱY䒜Lq|PXPHߠև]9,NOpINǙ|O9&bj@k}cWj:6 \sIN|:ct\x5r NOpIN%9`fmO;қS3<'>{m؊tZwv[ʁ(Hс TPॾQEYğ;ނ77ZA_HD[VV&Z~ \~:o$7IZC]9,NOpIήI|P}+g%d6Ee,ϣ3Ǧ~CQe~G|5w*|' |'Ug F$\OV {븹ˮ6}C9}}9u0u*K}q.(7*w3-xq8^/13.Ui3$+Z4s2HKݫQFh4I#LЂ-%G$rVUf06 c " F0~CF,7H퀆Xˀz$JլX͂I")H!zfX1+$ ,ZBYMfAwt(A'OL!atgNBBHӀz⏮tltGMt{:QtS:NZA]9,莚NLᔠfrJPKR!į]9,NOrIQT0 7JZBƁ/3vu{~` L9dl2¤_/6QY[[I^OTl%E^l&'8 gƩ+)!x4(,b%2ymQ;jֺeeVһ[gTJ `'}}>Xbݤd/l#?BoW LNPSSSSSSS@&ig6r f0yzԚ|΋vY׬[UwVVՁ^ug#_em@ *'Tu03ΝVE. {jUYWpv!~6EnU7l*[*լ}UpphWNGljtoqy˞Zzf=C8CJwJ>骎ކ.zjܞ *):Ve|VYЮҝ;ock՛5?=R zn/Wpv|yUXxo6멕ܬЮҝL:Ⱥ{6ޛ{j0빽ž*8C8t#-ކB=R]r_!US.M_uW(Z=4Jՙ ZFQw-/>گ|$Я5 R |}A|$*,Z\\/߱uQ~%ʪfuT>}C8\h84N y+yQ%Y6J`F0/Z.%|ׅ0J`F0/Z.%%|ץ0J`F0/Z.ڋm\QRZ3 eRk:X|J[  6)66y+!ͬFat ERw fV0:Q}.}RXe}7J[ ufV0:Qu.ftѺ]]#o%a(NaT_⍶G 3VBY FE+h(ΌfV0:Q}ъ7{^Eh@бG,RAdA'P|sKHЇ5>k?ꑳJ|dQi&0)]q]c}c`0pZ:٠hu/LŢE‹Z5Z_}_ՙ=SfH|ĸ{o¾ET&{a罯/ )<{2z1kȝ`vk׸u}; o6)݌?{]| AjlW0f_jy|^]r[6M˰ O?o*V@'6Fn>OGIXw͆ R sQ>Fy̾  Hs\WŦnn!!!OOh[eɢF(:nzsGMGK2ũ5p$8#8#8#8#8#8#8#O|F͉X"u)kZ^v֌o\4c ","= mz HO ս nj8͸潏B U#;\e4hоc퇪.UuUgj?]ixPKe[]aee-dvorak.map.gznu[+e[w8S}Ϟccl}[ff{33{yXI`ܗnH%i*2m##w}y6<ݑI%g󳿝. ޒ*Q.䲠ee6[Yh|/:&,,`˓birB暀U>\]@DDD x?lCmeqqx&>H+ϒ2M!-:qV!ʼnhmU[Qx>ar0݄c N`7:vji1=).ԥhcRvo./whtoF߱n j=S.,>IK%3{s;?tMrg-A7=ͿQ0~Wr4C,ޏ#4: ȱ ˭,zu" L!+V-ٖ۫$-:#ZK*.4|12ąNcG6Yk_Dg+2oOl\x.sĬlƺ$m%yE;l`؎0U39̚_>>,> e3r]VJsl2|{2,7J! 9$)T*g p8U2OXo-ƭlKtQ$x>r>(c,8F8F8F8F8F8F8F:Fb>U}U{nty_9$J*x ^>^s~7k{q QYA(n _*q)McR2-X>/+[18nƁq`0UT.dfY,^,Lv13RT2 q[!ѵMt2 t֬{R qEAȮȧ6kṀ T2dZ:\t!i Y>ȧa$H@F-]6qH,~i Y>ȧI hYX Qi Y>ȧa|g-]6+!6pU7> T2\6W2'-]6!76pU7> T2lV\~ o=HYNÀu @6L%Mcf:$b;CyN,OE%2=^ɋCb]`;ީdOWݨQ^$E"c5_􉚄NB*vH,M3\}UMOrI$l8T2T+2Ӣ^zlprb6pU7>%9ˆ|O%C"CR,٪#!zm W_|\sj8T2lVdDr)'/f98$CT4W$& '7"J͊xBxҭNyMs<'Fg#uɨV/°9uHwQi Y>ȧIknޤ#nѦ=-?K߈|*FwV"S/Ö.shX Qj W_|pI|O%use(38i!Ŧ*&g:7"JyOK^yzf|X Q]4W\|IL>E/]^lroIQ&yA1ҽ\; c=Fc$F>ÿ0a) 7EAUՎzY\&iErugy/Ld6ޕD|h0FG>| Br q%C3i'wAæeK-wtsnx1^ƫ>CaҘ_i7qy6x+\]|<&zЃ߬(ģ.?;pHQӦ*&g:7"JjE|aߤ{rMȶO`Wi=4p=!. #T2kV+6-];BgfK߈|*6+#v{n'b6pU7> T2lVKàfbM3\}UM%uoD&.;-Mp_q'[&c|s& JV;H\^F-]6X Q˦*&g:7"J;"媥f!mꫂo|.|#dY$~^zQgsX Qצ*&'$'咜߈|*Xkrڥ ]=dUz}~ H>]O f0QNڛJt6M |X^.kbb. 6b#dw(՛<"D_PTɘ!}1-זe+M gt[Dfng45rEԽ]rRbXwXQ>" &5)tj[AT;*Ņn-LhԤwF^Su&:zCN LhԤw]Su]+18[8Jqi>" &5)bTkJ\z W3! "iRޱvQOչvyż^o*H>" &5)IYMoM\uz ׺3! "iR!vA/VeU纝wgB@D@Ӥ&? _F{o?ϛ<.>:n*4/^uX7{( p$mvѵtouS"Ipl~jg3}zs[ (kц6FyaYD}b W= _Fdi򩒗yپ=ɞ= ~ڗPB*m6v.@|*v?@?6HO"R3^C@e]XǴ H@򝓨Bz4Dj:~g.>R(H|g)'>d=Owzh8N1K܆-GGGGGGG uq"*֪/_.p!i_gJ,@M6% j6Kـmv6p6L}Ά+z!B8ecwH-$H MKzVVE)Pn]PKe[{^^no-colemak.map.gznu[+eYs8S}kK>$xfxql)!8)%ŖU!4?(D}]whWϟp˾eFo7u߱w \WnbƲ2|g\ٗ- XrR,&:ҷXGu+Muٰ,Qq))=qݛHRR$:tS1]&F0;0XXJ)|)tgsQ+Wʢ;xΆĢEt,EuKIE;VlL`b:VM$1G(Y':/Rmu_9.pX6ӱl*9BL!Ss fk.FI`3ўu4 h߂fb\ǸD"q9d~Wlv˚v?Nm&0 L`>LZ:ATPWI2zU,J*κBzl>m:1z?ӗwLG1Q(dZ>̜π ɷc/Ƌb/}-U_ȻbfkNUAq&/W=:.p(e,ήjWRn#gHj,c)ݝq/0c0tL_|x6kz"t,x ^/cK8y{P~NM&/^'e$oc bm<}X5n<2 O$  #g *SE'Jzs&zW_]9th|g4'Ҝ(t0L <,z4Cc:4 3S\1(͕*h‡r,΀OqiNΥ9ѓP]Ɔ26Q"u&|(cW1).ɹ4'w@> G?s=Fo[0RD]MA9P:9@* ^ ^BM͍H}cRǼG.xەsLfw|KsvG00"|<ʺG+͂PtG7WsbU7ڣ J+͂颹@G/o12[Ą`}̴-l-c4Ry*V|VzUkXjVDdӼJE| i\+4B#4B#4B7/+kժ[;'m6`;Y |G*M%^tӡY暀|G`hvL"q L_ijգ J|9C;i7(A@!+ɷNSCSh…]9thx,Lxi'P\5M4=o]9th|g4g 'w@> fgDAzP=(ф%^wӡYҜp|`hv MԪPJW('{ zO]o|A ΀OqiNΥ9Q04;u&ZN/υ)mMxP׮c:4 @Gϼ+f6837֣ J9C;i02(ѻaԳ=BlX~`.]Wݾ݅srNj麣IhI2/RSzEG+񏮜c:4 3 Z9` LM*toea ӧaNL R;$4KLLO.fPj,"|Wmq^1, °0}.7Aj[o{(Lj1b#ƈ1'7br7y4__[M~W|b_^MF~u `)hpA'T"3j]l, W5o>o|*^-[PBzD1_~],ؕtK)EЭ2rW2_mQHF=ٖZ?W!U4) >UM?m#oj`]UppVѤ+1/کTzopV] wU!¡[Edhg][z[jhW!U4) vz1ZmRՉ]쪂C8C&%_IuNUϺ<&5Z[j:y]UppVѤ+.%2MoK {{ZzlW!U4) ~LR~W=hKVv=o *3x Aغ緆&[jmѣU] KuK(<-H@gNb˔hL(M[W`9a}첉YM!t  0 b}SwufNN>:֗'L&;k$S:iye›έHfNN>:6':i8m6tk j;60,P&; SfNN>:v"OH&idDz5stN)SyNd›NHfNN>:v&OYo)GwźVM(Oڀnn$IɄwYy'aI):G椝I˄7HfNN>:VbȄ7 HfNN>:Vb; o:N"=9 :ENZ+)/˲yLpt q\ 2 s }MԻ^bo^]^7~ V[VL`b V#7[mpVgZ_}_q%CH lg[j6=ZEݵ hf2{cO!Al~5)*̯Wq mv[P_e7msUz=Yz͐5K+8E:MnNÍ57 .? Nu6'/L(+q,g|̞FW5 wX}`"z mOt욫YAFr.:ʇ(i 䙓Ppw^X#"tq:YMb3biYl44[91[k:/ )LuW?Rgl#݀|ll8:eC *V4V#xϪ̠AW(Gz?|5PKe[mt-alt-us.map.gznu[+e]Is8W>5UEm9dswO'=gh 9PTCPb:1* xo@>/q18?{ _݊\/vz&$zKG A׹,*so&㪊\otlN,,O Kk&"DU4n{X*ŧ#²V5h!=l{!Fh,FYZIn Vq. vvn[;#f٦En5hSmfl TﳻƭKPZդB>_ kq:U6Ro*vkYi 9K|D;K˝ ĭiΩ֩-J{s)-DQ* ljw7hvh(ee?mA9F9-.-Z\Z4 <(yh˽[>k(^$,y4;#0rZUkmj Ν rnc5$9k(ao؍^]s&xعG66hhPޮnc64 {OVNojShb"8)QB2wD$5^USZi`lS0fhSMM\S߸rEcy3nNTz̈́cCҦe#vT>ڦdaC׮gv~ABڟmc׍JW5]nCqF.-,֚uN9Nmj y[3mʎIqM=Ɉs Cxh6(WgEܢ%OvErU:\eek_rU|EϱVn"AGݠ> W]lc 7>>s r,r5Gx˭|]p֎yT%v,cVmϷM/N:k>SvYܜ&0O˂E6r61ͦjE&> `lG 0v͠:Ep6Ҝ]n<5'3Vhd9mO&FgALg'D q`85$*Ķ%UXOkѶ:N_{[znsI4#Gٺ#Ghqyo;h#M=8[jFst7r;^"t6_v6 [5١[f`-Gwa>Ǟ蚣mj 5n.3n#e%nP=Ϥ$?GB܉rR^-q!Nws4~8iq$$s9)g{:Bi!sv-|@>-G>չp)r!H% q.H)6`6`;A Wdd\rl8؀ ؀LvcR2|A=l>d(RؙVvU tTdÞ"3lGzGA^/G7\|8$|UǵhI,dC{E֤ E>\=&\soZ3exx^ &7  #]x/t 5z:n4샃&NSeo |#> u2s/>9*e4U_πK|=p!ldtQ!&NSeo.3]8z'ᲞFK\E5Nd8OF|:5jAU1xi, z'ꔽQ:Ѹ4y$y') ^t9f/ ɴ {/8yl׉h[H$7777777徑{Ru+nee_KFzxu &P3Ikop#at8*깉T}Y>KLG5Nd(߀𻼓/+7|\>LP3j7xarPU ^2q/ |g%xd(߀q/nTW&NSeo |#> h|ϘhkyN砪i, %pR\'_d2@>)@>BsϪM\q\'%pO&<3q'io-%dFTǪcM/.pK&:3MU&NSeo |#> 7tWqAU1xi, z'ᒯ 0aKL',ݭw[*$||=᫓a<0*Xdu0r%$'lWIw2>n=J@;Ўy0l#'l]*nrŸ,K<=l۫p CBe̕KD]VoZ֠5h ZF|OWm0K9&bӔTHI҇:wR o9u3ڋh/ڋ~9>n<|TUMq\'%pO&C/FtgUտMp G|27R1#GrAU1xi, %pR\'_d2ؚUS/>:*~7q/ |g%xd(펣/nTW/Lp G|2.d(VS! ^mTW8M՗3<_d8|ۗ*ʷ&N `0} XLd%ؓ>4|͆&XIa&ɆpD^6\>Ao AIoBZ!%MiUWDA9O^FX*I27YX5ʩMHJ%d4/di rʩIurVhQF/"dʩMHJe9TXѲ^E*ȩ*m"D@ErP'.ˡ:Vǒj#T3UND䠤O]CuL%9_mQ 7V+Xυ&_j\m;O5==/ݓ@ ՟P)lvOU=kH$"գk]zO }Ұ݇8HHs$2+X/ٓQ^5waO 勜$BHluesS=sm[ثaGGGGGGGDcV^%  |]D9R njJ(h؀pJo7 =H ATUA;+#=VIY*­yXRˊM?Yv$63A<E{^E{c̗~7fKɇGlNi[{dUuvEcYl=7vƢhSvӏ^GMXsYpUZ}U&zZٖ,S]@RAhP߲լ]nơOMxVuN&x ^ / |5ol&@A98ԙb}rIք#a ="li2L8,?HMI̍ /| gl \AeB_IGޕWj\|# =Ƒ!_ %QBG6):QӅ@G\ jVT˨ D%>YNѡ&莚. %@w:z ~BҋjL-MP6): ).ɹ4'G> =3N4_{S9# ]&"(6):QESC :?db"HA=mSt "C :<Qti0ڧ,pNMX+ߍpo8ꄡsLDlbƄGޕGj4&|# sl.=ED %>YNѡ&NOsiΌNo|4TAi$-{YjJ!r3/~"X8>$UX2]/u}rוԒf墺VS^k;n,ɏh/ڋ^1+?>z]څ6";vw4.j7$$I3fG^ˠ&zgJ+M^Jr5w|KsG!S1%3҄VT=Ej4 <A$VkyLd=6):QӅ@GQZք.H=yjw> i%zya_^8S`z4C,P|'4'Ҝh04+qb55?ca?YPNOqiNΥ9=`hV鎘.Bx3mSI6k TGA&T ^~Ʌs'|z"}ӣJ"EeeVө:.p7q6ppioaaG1xf9E;>ť9>>큏C푹z*OO;Pݹrv>~@`{\>4+n 1bZ_CIt '44GGGGGt⩷C2S0IxP.q{>?x4Gx4O?|Eb^#Ez)u@8o0#-V|ck^XY-V }ժަx4xuc5;2MKgG9*Ws* 5xbQbXgd}VDrZLo=Ŀ͒-Sm ғ'& Iip|Mdz/Ԁ=HYNѡ&莚. %@w: -قMdB`h"YNѡ&莚. %@w:h坯k_2fR8=D%^YNѡ&莚N䔠h3+bvV=įmSt k6G>3F'%g/ jه6K|™4b )&_N ?oO|4z0k9g&)cRۢbnoY(2˙ KA|hߴ""rM{3{TԙCCz)u>y6ط7w `3(;F5*F'X5}W~:;.*TPPϔ=V9T?:;[05{|o[" YS| ~d6[05۲͢Ng&juoRqSقiGV; e! "Eϐ;oGRIQGVC; e! "E0;og]OzZ|/ږnuJ>S骞uyLj0j~V-;r_- ,|yU=k7[tjulsmYfQ3%2uoK &zaGV'v>7ٖnuJ>C_"SԀj0۲͢N9[PH &<5wjGkW{.".>9.uf>RN2 e)uAp3,\.^~`ˢ'vjVV]I6ww[T߭70`> lLxвDs8]86'm$^5l'z9 .I;'m,^5l'z9 .I;',ӂW&ZQɄ,Id-$p pjNHLxU߲DF-$p pJ'zȄW ,IdbNp tҪ'##v))Gk~zGzt,@4( Tp`cokci%bi],Io&늵Kܴ(GT~ygXdwY[,Uuv1KTaqDpDpDpDpDpDpD|DD"ˢ1I7^ ՞\z4k *,"= iz HO Gnl8:ƝB Uk4yhРA{U].VWYRuoCPKe[e RR us-mac.map.gznu[+eYs8S}kS>$q<3;l6=^\ \SCR9/bʇ2 6L@ &+fuK'92-5̭2y. w6/JsE XrT,T_ xPuE(>2ɽ\nO9)QձCmWAtz_<-{m`LݬXQM`# T_IX.:k/ |WYxs2U(~ȧL]6]hS_!6>|}R f6ᒥ7+V l`ΎǹXm Efl]Mi@ sTG$No^dEn/L_; !tjjK܃5-׷9wۤk%it+Im1jƨ1jjl\,UqCxX96}Er]j;l$sQ|{yCp-7/x #51[ı(8G4&>Jg;$NI4]Efw|Kqr. >ts%\thu!A4R-(:6 t{:-T$,aQrŻJ>j0S{؀&HDt͂̽~ gl:륾Ru 艮7xŀ&"H-(:6 ?8%@tf| :8*4Erc <פ #ѝ@DZˀ&"H\,莚.XjJЁLO$XʔF D$)~o5͂$)@ӂOt~$y)pJi}8l-700 q0Ƽ0RyMxmFѱYRBs|3aEI/#sgkMs7Rk5$"xT/ VBW41& yUD-b|:gE'88Mgjh$_iɱ{+*}2 >|6lgY~6b {Ϫ]m̀Û`;;3nHHӓ3LPK䨶8P]Epxіk ).|; *O>2Yӊ)4BKr8dl,\`1M'ghr6HzM-(:6 c}i%L'hfZkx3i=R\EfwxKa:Kx;4 54O/Fl$߭2F ï4Krcr­wQݰ6֛jնsn &(H TmTw^7oaUg۹?τMi|DETӼ-]͟uXv3! "`d%qwQ7UǺ<6כtXv/3! "`d%)vQ7UǺ<67Vw;J m;i2Xc]s{Vm;73! "`d%t/MTϭכwXߢτMi|D6R=~Wêԥm}&D@lL\u[uG(F:<5vX£݊k3 nCCGh?Fϱ  H9\|De\YF%.oOWo&/]eŊbUTww=*J/ )Cs+H^qk$p S85'K'~70X)NԜKJK+H(`Fp:Sst^VUW:wtiW f0?(z3\ͧ|#bNt (VPbNt 椝IR |# NIE('-hvL[Rs(n+Hyk$p S8'bF'K ?Ե" k$p S85'|Q|# NI+h(ά|# NI+h7}@d:%>bMTVWr2 2|"D'O?sq"@=O?uhVX.pk@ƪ/)Lw@R܀f !ΆS߬ay*TPXzc瞫hC 3~("^gQy+wQ_PKe[Ono-dvorak.map.gznu[+e[sHS}kMHff'3 Pϧ_jUsN_5[h%䮾n}Zf»ś:M;$Wաo2> 2KZ$f,`9+5ryl. _l,*ݘsɕ۲!Rd'ͮTwl6B9<" hg~KRE`# \ɹ20\\,ӣeVE8uGES9E<0xHMsl0 L`j\˹jXS*c WuN6.p#_e39ŜcDdbۅq&k.*IIAVi9n) h@נ9n.G"ZJɯoD"][x`# 9Y8|.LW妩B#3&u~%us=Y 3+œ'/ѳXvџۤX|;;;;;;;'r/*R,yY]&iLX\%uf\:t=5tt:H]%m*D|Έ.]3b&Qe+G}@ЇAXŖZe=3+ty_/xτWOt5oڞ@A98z0'i$2Cmu]|h'3I#wwww솦\WB,ũdyQ$ĬG *-넫5YiY'++X UOr/ XWɞ]Qf2 }ș '|O\.3}C,\wYVվ&F'$gF'7 DMsWN%}"eUk颹螀NO~S.C!DIlաB,\U I)|z2d xϖͮ;4C]U 9 > ȧ'@M\Ѥ !+eUk$L$k.!RFU"eYU;kW/RgrNl٬X !޺,j_|#spI|OOtA"̫t^NiW%%+6ݍX @iݷ5z^z1p/]1dWF =[6+;4C,j_|#spI|OOzex;^H,) X!޸,j_tgMFt{:=P@=[6vh,,j_|#spI|OOjET$ qr#ry "ICd L`S'+҅OV$M&w-F F8VnA:ztA gH'Wr)=[UCc˲57>dW.%{|CVd\ee댸<'3h*/l9vh,,j_|#spI|OOjQ,ֈF3gyK!}X!}MН5]4SO4O--;4C.˪\Sa"r)yR̯;%c>P`Ι$` 橒`L=Yoı8ٌlsb/eUko|.i|P}$OD=[6ԡBᲬ}M%mo@>=o[Qgfvh,uYVվ&F67 CD:TD/m&+wȗWK f0?(''kE`XsbDͶp??ѩFn;}"USoޖ-TPB}BUO e˺,ȕłnA|T߱"D@Ԡ'u~JZmaJ5˩?X" EzP'Rt[~Vn`~TYNNJ.҃>h6zR r/)hgk5?J:5˩"D@O-ڡZ 6zRf9+B@D@HJd҂"mFo0‘GyL[$9\bDeZEk\ޔޑuYsT~&in!!tt@' tGcߡذEyw5+S8=S}6լNNAvtnV#tV8S8mѩK f0?(''kn'4HhV:Y )vڈ'idV#tV8S8m)Ohөa[ YJNOT3~о2)h7V1hߜ>'ԍgV‡wg5+S8=Su&yBm%6J0e綹"E$D:HkߒU'yMJ_`~wXL|ȯo?ohm0saQD/ľdƻGA%M44yQV,&gx~J75o HW.~ #׷ "!YDRk.3fӐJ+t‘GyL[$9\WICHHI<^3zlkH_V$ugT_4Gge;Z U G/.5K\v======={DW"?孩5zQॳxաϪл/ )qhw]@t ~w3)oD*TPV{[A;~*\I}I6en#PKe[!]!hu-101_qwertz_comma_nodead.map.gznu[+e]YsF~ϯ{j|_Jd % B@ʯ_C#RȯʘZ4@`fpnl7ǍaI3g$c/pp &u.sq#A"&H윽WUgq,ɲHַaNW|uk-2K;NMC B@!#dck+rϾ?~0_}%yW,g**ڪ6׹˓ $@n;uwKuT֥7+MW)P*BEklFJrө^0ׅ$4ϲG&`&`yBUD&Izu^^V$lU 6*ҹ*2_%W' ˯Qup\2չD$P3vZgZY~H+잭$>cU{U:iYd4u|C&'tNP2I˫kuslEg ߁ќN3 HNNf֥#mk6OCK=XX_VJ| 4Y~x>8ihZA{TZ̮̉"n8ibZA{TZ̞̞"2ͧg)*_4AF3MMzP߲U8 g4>V^^=,y!9B?4B3*r$ @Y񹅛Sٮ>K$ eC$}bG'F8i Np .BE*Fqi/-`l_$h0dOBGAdBEdBT_$@R_78Kwmt|'O8odd83w̮Jr\֊ L1 |jMNJ@wנ:{t$?I0R44pNP6t|'O89.( Q@uv'MۤFӱ"5 6(%?#RՃ@@qי'<({h:VF%gV3R$U.cKI~j&i?/K_{h0f0lB4 Ԥ|gh:Vc/ Lp( ZL$VSzp7 |lMNJwi[%AQ1NjjG GVYPXIe`a:W)+$/*m@~bo_aFil𵄝>6a#laEĪuj' E`v`v`)1IY)M3|Eם.N$E^IcE;|Ʃ43dH+EԦ#Ǵ E.ڤFӱ";<Kt ޡQ4+FBo'E޶IcE;|i|( $_n1ݟ.,]wLa|!ɹ$"NnXE_ܪ cmmYy0L|&0)Ϣ^ N!ߥl^$a߮!W}bw D/!@?2n8G8@(`TE--p l)\'ǥq%CP-Tژr2$Gr\GKK YVVެ7ϒķw(U*6p7 @ .%aNb\ie6t|'O8y(o0_L&p_>sngY\v]?^8df`Զ6SO[`zL͊$W (1OAu;=w:]@zJfE̛׊ '+r6p& f.`3II flSuȿ%Yo(W=NJ l05`9XJ4\=}%dW.g[2 dd7hB{5 @K̔foWч-n!KWmR&#g#  %0\<8QNj_+- e*v+'PHBJfxaQjDmmµ~+M^{cDaI}CT<0>'AzkǯqSl(1g"-$ FgoitJ6V} 2WKvLCM|{3 B 'AHQaO ۻd[Tͻ4O5zjvXhPt̍n꛷ϦoZ/6?g5eyXֿ/@a AksQvIuV-ﲇ GMvW~րZdW*{g!vn̅-m;q*,X`>!Kɘp?wYX78;uhMTppTAn]S#bݰVև7s{n *|9&֍:l=ᰩAglCաm^CYs{~ *|fy=TXwV{j6^ЧC8æ%)v^UǺ=&֛ԗfC[}*8C8lhPkPucb=^סld빽OpM J>3"Xϭׇwh5;޴OpM J>C"X??jvf빽Y *S1y XϯGCaVn ,ZUZ_}_|&/[9U0|1c GbKg4]$Eeu͋bWKRnvQ۬{,GA GtpzH:YrxU&pF0tҺʂwZr5 }֓'L̒0جQ((?3KR.X|R=Q{4GL/nhX5pz ,qmn/"/EDmvyEC׭-pp p\6UVPDy5(Q@I l8:G` w6>bwZweU,WWY\u}΀8KPKe[ vlatam-nodeadkeys.map.gznu[+e]Ys8~_)J3fER$:$`t,ݍf&M [ՙW?H~awy1egUyzO>:< \\ë\4x^$ -I7Ū.e7"emvMX [Hgii1NMB@5)פP~ ,1EͦNMo6S<=?{"BH$K(;udL]fWʕ̕a"0);|^.u=+oZ,mVS45Qnĉ8'DsOqkH^Kc H6?: fEeeV~ jFHN]kvخ zU.\FORYKpiB+Q/L<-1^2eeNq:hh=T7&(Db0.l~u-ߦ%[mba ӎչh&`&`>z'pw1-BҩsVWlݮk[n G#zD닿//:8^hZPJ1}^ 3a{/E"ާW_рUfgoقLe+YxUS{-D>YU xjlj ăxϋG_ьJiAl>tAwX|f6${qܪp;sDou*// ^l~ė$>јn"Trlpe|&O"&Kت@7WL 9ՍtD(TõK \'%qNc G1ш/ hI*ZrKEB t@t;@dlڂ1r5k=%YM@w@:{tKJ~LH{և $PN%qr\'dd8L4V`zփ qIVӡ"5xP=:_qLPC"qk=KűB t@t #wOs%s}&ʭWuaL8t6&:PpuAᒬCE;|9+|ħaM3bu"pA>$PN%qN |w@|:ČYLcbe/8vϼ*SioԈ-7v쟩>ȁȁ\8_ xRS:S!louJ*-֕f强و;7Zܴݮ;D9"G"wMdeE`v`v`u+D5((Q Bh$ =F3\; > ʯX:'Cn?0 >K$NP}e$)Co?;{?_c]LkD6[(PEBT@T:yǒ*ϝpLS /D-+t5uVס"&(ۀ $mr7=\C.j:T'pIAN[73rJbLڽ~n.-]:Wq^Qr?]; G G?Q=GOGh'[I/c2md݋xJ'G/gZ$2fi~S-zPL -a!,q/b|Dy jsMd@ bc;ԩtV[M vS7 VD` = C:ꕑbǷH(`yzO]ttG. JG@ZYݍQ1~0k=K#W4"_qJD鬇k=%YM@wJV0.FlKV=\C_]t|'ρK|ħa%B4Mw~Y+}pI=?L/"{0d%WP4>Wأyd˥VŖX=kO'@&CZLPmQ-*ԭ[V΋oWw3KJ(J;=ۋOA7xՔU^U%84tS8_{#bD1"~vs(Oԃ .6ط7 <՚N|ɫEɐgL֋=xeU'7 ;i./ X`}DV'c>oO?b. 6/L:ԷvVA93σ*ҍ4e ZŚzn/إC8C[%i|·15$MN: M=R!¡҃x=o{d#SETpph3Fϛǚ &ZƦۋwVAg7C7n5zeEAV#SvVAg7C7n5Z&KvVAg&[d= 6 /:znoKpJJ>C"m!*C+ى&TpphP4F{hhԡ ZF[ 3 zISgraHH^8\>"/łZ\\_/?eQ]ͫv:fu!x @{/>OסĐUͬFatFII;wUfV0 餝PN *Co3Q݇Q}Ft^Lzvj030Wk:Y"*Ȑ.ͬFatFI;6w *Co3Q݇Q}&tҎ]Gl䡷U(è>itҾN%Yu}7=&4|*ߐwo3Q݇QuҎ=:i*x<6 }'xRl䡷U(è>im 3d ͬFatFI+hݟ{]û} :@:) Ӫp @Gh$w4vi,oEZ]fۊ VOc^,YIBLG^m:P"&Ąbz1Uw-/J:}AkѨrk~~`m48MZ&0*~~W f* '*vi9_Eg3}}mBc9/JOMwQ{={f-Ky`'؅5f꺾Gvp7EAgB llwfjy|^]r[a1- ~^UA@@Ė6nhxFDng ):waHH^8\74qϟ}LsK8JG#j/|0Q̧wˬ-+u%n[*qjG>"Dlveވ^;5C[..ጹ*mEcihoӻfDy ALNg # 3Ά=X`=0kdc̃ ~rl]qIkPKe[5 Z//lv-fkey.map.gznu[+eKs8)|*:!If(ZJKT,& n!Zq?_`={L%/vHv|u2.pu, X_'xԓ` XΊ55"OZJ,S&l8QWu p pzzFz̆2^l!82-Kx"b7S5mX ?@DcLȩD姅 ؅ۻRiqOx9CӶ7֞rR GK].TMgpIĥ8gU45Wl ;arc D]{!dyf[fЩf-9zspK эMݫf"rvԢrQqFͶ\}:v:`N<:Σyw>5Je,هm%>t/$Xb`+_+;{YŧIVm:V*x ^ /cxqmO L|9_ķƾG " *KvU7>(N`8Q=]7" *KvU7>(Nu0dC5k=ߥYUҜKs|=Q0O REn4qIP{fUo|Ksr. >Gov`)hOIPo.ͪU\Zz`p g{n" *KvU7>(u0Tӏg" *ݥYUҜKs|=Q0 PTdj{~O*]Zr?/}h0F`Q2ʓ:6d-4jW|S\siNG> 4O=Ny{n" *{Ҭ]U uG> fbZɷj}ibUعVmJӸw[c'&'83N kjQG]Ǻ4;Ӳ/OVkkkkkkk, =RY7L^H; v`oT)`4rȇ W@.&}OntH"KvU7>ť99z`H+B+@BCi-+fUo|Ksr. >G^5VkUhO͖-KfUo|.|=Q0+^sGߴH¶.ͪU SuFjk@=_m$|GfUo|Ksr. >G^A6*~Kd ~ri_ uG> ;tWxOn cC?ݥ줁댸1BB{'*.g@+Vj qءӵ.Ԡ)x+y&jHjTN$luץYUҜKs|=Q0wA鞮}nۥYUK_| i%j(Rk==& *{Ҭ]U OqiNΥ9(+&c{nE>TKvU7>(J@E`O-𡲗.ͪU\Zz`8ޥC}5ѨٴH‡~uiVծ*NΥ9`8w={7` j[}"+0=s&#T VzL b ȓSefjSO,`9+ 66rD($XX|`yns,o.h2h `sn0tʌFZ]\+T҄Gc-+ʴ l`f@*Pi ^X"vJLLV;OcZ3 IQW=A7D LEzbM~qw跳&YRAiԬN8i(𙺯|MC"į(R03~OVŜ/Y.*C8Cc>cuT"Db0 #6֢Y.AgfP57\ᬡTY텇.Ag0Ϋ6`Zyk(bds{ѡ"8C8hP~j1^PőY!¡]D\WC7I c:Tc*C8C%A7o<†R-Nrnor"|Ԝ?"60WG5jqjs{CEpphѠ3![F ZP!E4(b@5V'èrϿ7j ¢q] OKuSjFx8ExJ[$Ϝ.>*ɳJָ>]e,{v%ˋjWe\MK}:N C× Ld?&n%/+۫Y )Mțv*tjV"=VS67L&ЭDzhf%0 0J7m$oګܑcZ3 IQV{E2N"CqZJ`FOanڱiG2MGn%Ck5+Q=Qi'˄7HլFaF馝ʛr3uPvl}xA{7ϗ 7ZJ`FOaii𦁡[ZJ`FOanZv(44t+ZY )M~d›zn%Ck5+Q=Qi/ʎ^fYf_h@йQP3Ey@ (_IzPoH-KMś;qr/߈7=xBCV u(' }BЧ'<0޳`l7hPE7+)w)/>/ fmY!TzPZ ¢q] O[f?$(1FE˫v?,HtT5WgH ؓ17\$/;6]׮q7;ާw۱nÍ17K=w} An;Xϥ~LgxJN2,Mtw|ϛ%2dȾAfF=[gYLL?^6Og]3 1T |q  H9  +99rˍxѻx[0G2g#E}?Yz\/bj\'p3_ǝWNǴRI_ ttn\Z$c 5Ū1Gt1Mf E:FC0 8{wwn4~E"D{h?qyH AzE"..6^vp;PKe[^N il.map.gznu[+e]IsHׯc"B`P{ݳ\lHҿ~=RQ{/%E>%m_{5J¹< p y.^2e0F\g;|p{l' <+,eqf'Q|N9 ʴAFdDFMO90ҤYeȸv7 `Tr!k1yLIܤs4Il^ U|YБŐ^r$Mu,_$K c* ؀ ؎Pb'XI׉ݺ9Jڮfcw9gЏc1FcOnYwWl5iֱ}(<$r$`gE IHAɫ0~.>y˽ LbLwZ;< $Yv7l"WQW؟WձywWSWɂ  =H]4~/7(hEgX!KN,ym9pk \]Bt#Wձ o%zײ+TxgRK\Q\U2|D^˶xS ~LL"Kc9~k!i_&/*2 bb( K.ofJWձ D^˶xS .* 1OKE:wIl7x"8WEP-+rE?eEF'OOFOMƵX6YᴃcB,Ӿ"M|'ħBjr(* c>H"feW OAb7qi=)Cdh{ ipvpvpvpvpvpvpvыjJ|3(6ROgmz3V@ @JwF}$>YA?썢.tU`vB@l_N7UuܼD^˶xS .z\܀ FJ:Z7{-۾"M^xw6xPX,xY;8M L7!|WNOCj%&_ۦc9ZeW |wB|hDĽGQvkpU$RoZ}E <ltT;tlύh o:'I}yo*|EWEP>d[`).ޑ !kT4,?$jд\\5*.]U"1 VY.;8boBUE>;!>] ջq֡OZ\EK$BmvZ}E@{|@AENfζCHҪdQ4Iw&۪l *.L5ĥd Ҩ[q U2؀ ؀.v(vsQ%08hk1gs"EI/ucq888888=zQ@w]ś-iz2 r=Vʹ < GY0vc1Fcpۮf"K:8-2+߄aE>;!>] 19tbpUIl7x"w6 |Rt $^˶xS .zG|_ۧX}E|'! ݅*j_,IU9 yj2aRfu4vV|:9e$5Y" FMQ{8&*JZ- [mFx8]Ԧ?\XvMbw|2tT3̢anm7"Z EX*l-{eۻx 'ewꮂ0Wf8@Q5N} ң\*uV WdʆTncaֿJuZV}+HOvXO`Wh62ԽIa4Js0LVN5PAUjkXz. Mu2TȆ6` V1_*.CK#g.0}VkV= Wہ8t%w1T>f]W5<~W;>~{Gԣ,D@Rۮc9~m!i_&'T1\藘<0Ʌ/kzYH+|3P=+T>P(tR/%!K,UUɢf$,Hv(ttZPPUuR/ % B<1Ub&$ Eb O..)7lI^ۇ4'oHB b,T<=ɋX>V#C^+T@T@UÍNՓn}R'uv(?n4`f`槙ehXӭ/t}1oY=퓃sRNV93ȍ}z),yw. Y]WN==OrcAzM=צBB$DB[&Or.OiKey/54ۦBB$DB['%#NUczk J/zoަBB$DB['%煮^Û5h%zkS!!"ғQwUNUXk]s]zoѦBB$DB['%S쪜<|V~6h%zoS!!"ғޱvUNUXkvÛ7h%z/hS!!"ғޙtEzz-5h%{ii6"!*=)bWtB-]zo٦BB$DB['%yf^~57h%L"/"ydw[CY߇9HHs$(K[\ߥoޓm}Gru䰻ot  0 p~7s(0dyGqmf5c/KPKCjA/9hKCjA/Z_UQq@oCq3030?,FZ< MN3AP#h}~.xC]l5;ͬAtꢽ uu jxN3AP#h/sP׹![ if5cE{:3d:ͬAthoνJxGF H%z»0/n> @L0;w;vśgK!jZdir < ;iVUT{W{LWMJ c˜0&{bq+xςh`d4`z-"/WOf vaaӗ8ЇJ_6hU4`z-"/WMfgF)4hQc\wB0[_Ƿ0i45*8$^:|.E)ZdBgɘ]t;)4oH/{:!.6q5;>Ʒwŀ睑m3 Hc"EtjI?РFq5'X/\&_[%qDFsFWC7IV|bF#٦HnhYdRk)vGR uU߇9HHs$o^; AAAGue8pcE^d6}?PKe[zE ba-us.map.gznu[+e]Ks8ϯ}k$xfqqA$dsM I9%GC4)R8WFѤH_l]^8u;%~^M5ߟ~B k7̫sqm^$%UՍ&U+̳T }}+ M\dsSr_\ef9Eެto|BG#t~Bk|30/}L'|SH.ɳ..5lsY(1H2wl&-*ɮyUuj`&`H窉02WN&BcL?K-k/%[%B B < B:7B)t&n_m2sHU]ff-] 䌙g9x/yu5mVݸYW_hil[=Im j&1ddRvӕ ЬXw_ 0SvuVwy L/IFj5䅚u?nXJ>'GP/=I[OR ^eS˦ykHtTmge1 0SkUdln@ߍ I`C&w#SB@!L([!x!Mt$4K3=Ś|k<)KjA t@wtfSI]~o.d2S pE>tI-ձ"Н43(莀v4pL dIIƇ"uI-ձ">K4N'G5p@Q;sYh|Kjх3(y&_a(xP.:VF%Q xw% C fƭNTuG00p)JLMNƺ"ZcE;|ƙL N'G04?uBXM-zk|(Kj i\g N'GPq'BN;h=VBI`+\W <.LU‹2 >JhU?Jwz$l ylFaE\M&rrtD؁؁{EJb=?joV'yN(3VI8ZcE;|O N'GɐVFǕ_0 rk<(r%TNJ@wBߠ:;:J~fD  5[j25y%TNJ@w:;:J~bDݖ?>taqoʘ&$ 񊶽}PAƺD۲\a0$J+~w ]^܀0tp Wz#ɏ[5jo"! 2n8G>qtQ4+&jYZ Ovy6RK )\q=!>Jf~+P;/8Ov1I.i[sT'*`PPQ2{LGUU~أ w\A_$a5/JJ:Vױ"6`[Rmbmңcݲ.:V3piho|(n\G=:u⋄śK67 ByƦtd8&,d *PiLTTq@CX$w"Ś6t#8M㴈7`MVYɭvwj D(x(!Vz]ݦ %,i0?n~EځCQb4 KYY,!+pU\vI-ձ"Н4@tG@GɏQ3é:k/<5wR+I %Q C?/1lf\AW]RKut'. J#gVFD-w(?V8ѹtoqay`}/0S. |P‰( כWDE:>6~Ŝ~yYw]߶;Jy@TT@o$I[P"⪃i$Z>;>)&Ć؞Yl71"6Ć؞,6s i5yC͝v5Ĺw][=C  +!Q+5<9cؗ?|)=fq\-kJL<쌗e LLTs<$BU.DRkj= va/p&be=T]Xߩ/x=dW!hPkPucb}^Ӫn]MppnA)f&][d{VNvao M4( KqLb}T>U3]؛jC8v i3y X?݋GCVͺX[~~i0@nrac I.tyI;̋/oҲEPb߮wXz A  EÕ#YPdɭEZQ=Q:i=yNe!N-UHjFaFI;:V!= C6'f^,xauoa3030?O/FZ}-pXrAV0ztNIBt -UHjFaF餍I;:V!= Cv*OIUovhse!̸*Tk0 0jNک#OZOgɭBzTk0 0J'zBt-UHjFaFUoY% aPU((foͽy^=(YoYY]1 @‘M^8jOyt$%,mXy6fVͺX[~~i0]xǞ=ƍg+4V_}_3]G)_r(Qa}/UzbY>xHBeS]>E Otž%ҽjL=p vaiZgx!(^Y 7psnQ$ľY%8$ui7*4\˼h ǴLg+*yQ|bF_| i7 ,XOZXiyq?Un V^l ~?Xp+PKe[|s kr.map.gznu[+e[sHS}jEBz؇$vIfŅPf(/}M# \Ŀ*t?}Ba=y܅/tOtK.^̣ޒ"en~y6VN{|pwJ,gROUPCda>O)7¢aEn """bQM_Mg2B݆dy| `#c+2Wϛqk&I <dx\h#{(9(2"/Y &0 L*W2W-X5'z,M<(΢u "?sGKa4T Ky3Eŷ|$ۜpW~;p >W•̅KNP%o `vBz&݊_P>='l`NhPΑɎ_z(OLeZ>o$> (.|~c(ua-@Ҍ|*= [cIl nz(|8⾖Dnɗ XrV,*Л.IB bCY̵6w/x{&*ӻ~ 7G6vq DoBNM?>X̻iSF׮|pI >ȧaP%@@5-}jX Q˦]%&g|O%åL9yMab1DҦ]%&g|O%Uuf芌ִX,۔ѵ,\R|#'Ϫd H尢b1DM]JM%57"JN WrUrcb?6et*7> ߈|*U25-Z,CT۔ѵ,\R|#dU?Ljz}O̫W6rGjWFi9y?lUo|.T2WӬ將;2vKjoD> q`c֗.o0'z]Ac=^ NpJ=s~_~5̿"6׉+1֐^=ւ}}}}}}}CuCzOCWrz+J`{Tɞ&VFzzu xԴtX,M]JM%57"J(OմX,lUo|.T2Z{U}mbҦ]%&g|O%CuB@.jZiX QmUo|.T2Tw}AMa-!ٔѵ,\R|#dX݁X eMz ~/|A&g|O%< OXo=!d{`ǫӞΈ#5uJf;ti/'- !6et*7> ߈|*wD2i9,iX Q)kW YFSp% Gxa|dGiZ>o$*3 ݀Wni^f؇;CZ&/xτW%cG$ŌU1N<(΢îq= sEDVɖ6Qh{[V`+F Ao (YF|FG3iFyw_M˚̎opsjl/ۋb{UG>lִgb6et*7> ߈|*w^;˚>X,mSF׮|pI >ȧHX,)kW YFSPݱ䊌ִiX Q=)kW YFSpU%C4Rrؾb1DM]JM%57"_ 7)$ۚ>/W\Y֦d̞/daL`!UwJ/ꡘ(m SW,`9+l\l,1ԋt5s@8OUHX#h@3QGqpC]^ڵ$/M d zZ.dW~wC|~ f0Q5YR`@>WA3O;cZj@lFQcN}Qdɛ7it&L01wfyktkxACkVog5! "TMt햫|Il,oZz;kB@D@IMJzNUmz+ Zԟw &5)镅r:jzk,?khS&D@4ԤWܭ˩htWerVivo~ &5)br:2YZ.*ͅN-5! "٤&%bm]NUG;=VZ_p &5)Ikzfzn\|UK[kB@D@IMJzؚ"魙V\yC4Wz;:քfKv@9W]'ez~~5hh3;0*{+".WMfz%ЯT2, H@T%W4]EY$]-٥#ߓ8/H׻]aAnxF`#lĀCC}|{7S8©:h]~.yA.5m4yf,gx^sP6|.HTA$D:HZ.+*b2$ N 5jӫxѻK<#ὥD?꣑N?x{۔E39zPk~J[=======:9?ƥTR๵up \jkUϒth&75J59rhXh AW0a„ sdSΉOY )/x_!?O+PKe[h ke.map.gznu[+e[wHS}Ξ#.>$q43;l&^^|j۬P%|oti ]EuW%,pO6.qCɅsy[R"W-sه'a1V8&_$ܜ,`YTƓe?1>y1 aѰjjA/3weHvۿ `#c+2W?Bc>o}ƥu$a^o *.d.s'vol%o } l`;yd0s3ӪFsmA0#ۄ}6JvLv&,w)"j1,ռg*fT2KD\􆓰[<ϩoQ.ba7vsSc1FcpTừ#4|܇b=.#` XΊE%H$ e_¨MbEβѽ ^g«1]G:=8gGM&Gz 8:5]EbEM3vU7> T2 dȠn[$CTiFӮ*Fg:7 Js gS^Ӛ.kf4o|.|d ]ݚ.e-!6hU,\RSOΞT~M݊6hU,\RSЩB@.j"M3vU7> T2td(NkoX Q}iFӮ*Fg:7 J^[yMkg#u{dx#t9y?mѴ Y> ȧ3m".&5]v۵H,4iW|#pI|O%C")_Q eū,IEw!/2'8 'Ʃ|͔ֆ&uN}0rTfYplplplplplplplQ;t{R쳭7-ңPP;v7*`b7jԨWWV@SL|Na^4iW|#pI|O%Cz5]v[$CTW6hU,\RSɰZ5kU}nեM3vU7> T2T+frVeҦMK߀|*ha~PeO6hU,\RSɰZ6 yM?%4w٦} r7> T235M%7 xe' \ge:uJf;tfi/./[$BT4iW|#pI|O%CH@F5]vKZ$CTolѴ Y> ȧB<0BZyU63'8JtUM>|UПdr wi^fݝ^>-z h/x 3Ux6aU@8لWv.<(΢q? sDDf+dMZM%lQ`FQ < AW\7J,d?#>#C3iFyw_M˚/Ƌb/ƫ>G?ltmѴ Y> ȧzX0tKb6hU,\RSP8P.E-!W6hU,\RSɰZLg5]v"ӦMK߀|*KnMV-!6hU,\RSpQ%C4Remb7f4o|.|Upy#B;+4v3YX&0d%WN/:Bc>tIH,`YddCx8bh.͛krG8OUHX4Ө#Wܸ7.IB bXD^{q&޻E@TrK5쿾~Ox<<&__5Zf0O3JTwؿH lȿ'>hFzgLXu ؈=hl5,ys&!B7U2w.[o Dwz4X;dB@D@TMt閻|H47oVnC&D@4MjR;&tj[nP6.7o`۩? Me9U55ѝ͟4Xv?dB@D@Ӥ&%nYNUGvO뵬hƾCձ FMM|/GӍOfFpڇꤝOIvu5(xfFpڇSuҊ_=^Ю(NpNZDӍGhmfp }8U'Es4-N^ JJ7a^\u8P@7RԇLsG \7ZȖY\螿ziaoPo6Uh jh@1aLƄ1=1+ǹX{GDC4X8zQe"."qd oWDā>Tz`¸zQe"."qLσ?w*ag+yXaoa }v_.L>@e粻;DHtƑE!7ED¹c'ajg3}|{WQբa'eF{KhFG# a*g&sp@_{fqK%ۍ#######򍏈8?ť$Ktp \j{U/ %ql7}J5)l6M;f8ƾigC=D!BXԲsS!AK?Eoo00(0PKe[ǖ-[ br.map.gznu[+eYs8S}jK>$xfxqQ$ds-IOLT,)C@:~(Gx{9S6F*.ް*9.p \z,8X̅y_Q٧dz,`E&c/D8HGJ|Q 7\*qrmVAφrbۛ'i+vs,0` fXJ&)bŔ>ZVqqxcƢ"_8^͓j{`E6q L`S}،US=VMF)ӛ4Yʬ,0*#٧w ,bƚkr1]<~Sy Ju=&梈b˪Ѵ}8@99cXHn܄˲;E+Y˻s`xn9$  ȯIsBzДS)| B,ы|SJ+*٘xPdzC\ͣXEiw8k/mGvmӗ|,_:='b~;BZh9Z_B]/eãqbiZݤ(`-*.uٖR˶t̆h<ƣh<ٍ/}6Q !D<3S| (6V+V_~T/|Vby=]?Guhµ[w5 ^Bxi0@{?A C/cQ I}kZwh·˰$eZPsjϩBGK۽?J/ee&4 \_45h0pIFz^Є{ r5Awtad(A377w1BW*:4AwMS |C :Нv/TRzSuh"5YNѾ&4'Ҝ h0`8W|Mk,h_tM %@w:|3أHR m&"({kPtg/0@8qZ^tL_<wp܄톣NNT\ΤLiCޕGko|Ks3 >𝐏96V7QJ.ՃՔ"𝐏CZAnWC̃ ]m١J\5YNѾ&4s`H+y懡m$\(IOMS ).ɹ4'wB> JZfJ ڟMP|S\siN|4wL1?2ib:۰%c>ExkvK@uTal@#Pe2ћd?w\uDO;4A_(Mh:U.n.p\]%jCWKتC1xd9EҜ9`h]Ѫ4.VL@Y&&SSeQ;*kpw)U &Yl$W5;.,tLj2:hu} 9=t]lz]b2r_Mc"D0}LEH0+)я{h<V:ݛ'|&z^%FϨ Xb׃ qW$Z=*[x|`Ev6e904tʨ@՟Zu|8hN5L`h S |oolWU>ݼh=T?70`6 |Up?t1L}fٮv>6ޭթJ b#6b46uv>EU^߼Γ{PBzFc>ʫ|[؍iK9j 2rg^ OZrjs,D@tSWZݛTZ?%W͢Ng^]գm^qKVC; e! "EϠg'Zr_/ ,|UU=`\֟o&͢Ng]]ճnI :z \N|o/ ,|fEm_G?aؒՙe! "EԽ-5 ՟0j͢N9[PH :KʊbU\mO4@#Ј#ӗ'Oe¿$$˺9 1Eˋv&^ufN"#ts8c86\&ܲDF,$p pJm(/*ѹf0fzZʄ -IAg1'S8=Sh'd«F$2Bg1'S8=ShȄWXŜNN额ɋYjrG4Dt4|s3`gF 0dЗD 'oܞ&ūqQfQEW78/WqyG9-nzFh4FFӗ؞FWk kqu -ZB̋?\:Hզb)|}U>S$ Ihp`3 !!!'xx[yQW# Yzy{}|RS9CV7՞\:4k lUT E: izۯH G~aajD*TPOZz[Vdy 4hh[X_ HKd+V1-T9-+,tdص;t d ;쇲*m9ѶƫˈPKe[ us-norman.map.gznu[+e[sHS}jEBz؇$&If3dBm(/}M#\Ŀ*t?}Ba=y؆b7 ~'Q&/^fQ'ݫ$.p.s[?O&*領d'/&ܞ,`YƓe?1y0a^j7(/3Aw)!vE,F0߀̕S+}NwPMrHN60a-xh&sєGvPsId=I#Y &0 L2W2WX5%z4\YQFIDFZg4```````6umD&?],/?ڇ)mMg6Р#]tP_$M4ʬ|@|*[Q\Pn]%)y*w[cQl/ :(|<⾖FnW,`9+lndCrb>,ZimJ=^t ۃ8sqdLOSa,]T۔ѵ,\R|d0AEa,CT)k[ YSp.WnX Q]ڔѵ,\R|d(L@*ZiX Q-mVo|.'e2\ UEa !_mVo|.T2td Ȱ;rCW=[)pGjp.)ӊ9``SF׶|#pI > ȧW&CW@- !6etm+7> ߀|*培8m*Z4X,ؔѵ,\R|dXG܄vPgFqlG|SPPh_ZJ hty,wx58 Np~g*7Ms ɨvJ}c5Szオ```````F;ޓm`;^+UwЉըQ_]&OA&;-] K8zfSF׶|#pI > ȧayYòՕM]J%57 Jh3qG?h94X,զm%Fg|O%Cux$ԯh9,oX QaSF׶|#pI > ȧM<,*ZmX QbSF׶|#pI > ȧ<3\h9b1D2Kjo@> w]b72Kjo@> wDm}\̫6Z9 %Ԉ]SQCG>N,]T)k[ YSPCg. wzeSO|)6Fg|LD< xvPgO"D$'fV=^gbA=^4̢84:lk׳0iIDdmyY&~V`+ l[><+WwM8K5<ʈPr&M=q __^l/ۋ~۫>;f4iXr_ %ڔѵ,\R|dN-}iX Qۦm%Fg|O%CunjxU5X,^ؔѵ,\R|dX1DƞUb1DM]J%57 J%z߭h9l`znSF׶|#pI > ȧayR0{Rrؾb1DΦm%Fg|LSΖ>*W\Y֦d̎/daL` UwJ/ꠘ(n+[6$N] XTqewxP/>krO8Ys6%aN& hΘF%yǍ{an uI6$'EԮ%x Y'}t 2 dTrqo-qj2+}w|~Q f0Qz5&2E }bfHG6 ؈؃V^A{N<\=^K7˒ LwzԴkvX" M夜+InWΊb5S&D@4ԤWL.Tզ2ݠ\,ޢUNyǚlR^Y,f"zViz;kB@D@IMJzݲvzLwQD/ߩiToǚlR^),+ӛ5ҜX" MjR+֖TucezNX|UNǚlR^jzkыkZ9۩&D@4ԤW-)ޚoşִJsScMh6I9gs~BQWCVi:󨭲"."qdWv^I{eЫYַ1N ')K@hd=o6IYNҬ*sxu}66F`#zW? 4m盻iNAv :tiiNAv :tiiNA0emkW_o`3}F՛Jl>/h_F?iNA;tTF#4v3 8>6tLF#4v3 8>vg뵬ƺcUh&߂O>ԍiӻQ)f;U╽W!4O*;+w 5q MfQ5}j(M&l #obqgA{D4}0tAM4G<nJt[=======:9?ŅTR๵up \jkU6/)J,@M6%j6Sـev4p4}ю+z0a„9ecħ li.OkQPKe[p^^de-nodeadkeys.map.gznu[+eYs8S}k[z؇\d6/.l%!8I%%U!`&}]诞pǾfE.].ޱ:>.p \=//Q K1z[b/"]>u'Xb1}M_ƖbʅEӭy_uQ|n0 L`jv*}U {D2(+ؚ']ߖu;88L_$L b]J-/^ͥ9sf8Qghf2kܓ3S 'KYATD73JZey6/Rlj'źZZլWwj ENn:u򣾨/﷭/X.WB6";vw.j7$$IfG>ˠ&&=hf@ڣQ)^YNѡ&΀Osi,63z+&!۰G1jCMr9Qghfj^LEBMPuj 4G|; u43DݶjⲧngSQh"mSt 3S\F13:꣆TID %~lCMҜKs|ЉPJW~"jᰟڬG.3S\siN|:~#Q\go+6c,'U/*f?).=+EP7>6-#-Q2D9>bq L g'&GEtٰU*o5C&n8.p.u´ƈ!fo ,z4CmSt 3S\mA|5GfO.\ DnR=\ӘC3q,Y(" '~2pVpVpV|VМ'f͋ƥNT-Li񔓡\<G@QyTGQӮ<~WYy=Z5X%+{a#Z/&Zj߬T/ߪ,7eebTKTl9ϊEs>:C_wr.A{K_|#`4K.ܯi[vVNhlj|d\~[dwPB *u|O?b-Տ..$f/mB@D@74ʘ]!"Տf F?[" Y(HKTM4M~%W۲͢FG^6Mգml#W۲͢FG^6MճnI'Mf \Fv>mB@D@7%)v4UϺ=&55?Z|/ޖn5J>biu{Lj5ћ- :r_- ,j|d%EmDo0۲͢FG][djޖBFZd[" Y(b@V} A؄珆\z#hjE\E'ǥG^ʡBF_EjW{w0]@xv"."k%C%~uZe~5Yb8>/Tޗvx9\=DHt‘ҽezHe%=pxaZW3a~s[z0 iZfc;ͺ$(FeiַɗE)ž$ LW'XYC@@|aF>[!ƃXn1H'ɴқ1d>/e)ǂ$ y$Թ'XHCHH}<f>]W%}Y%Ey?<6RU:O`_{3m9O$?xٚ3T{p \Ѭ*mEcyVkoӻf Ez)? wWùoՐt> *TVX" ~r.b]ۀcPKe[Kzpl-dvorak.map.gznu[+e[sHS}kMH8$xfBmF闾V# 1}N_5 ag:n-y 9sv;?{OrD\Z:U,/uzh^ɗ8,`yQ,udqY mOF9BT6M<#<6x$zhMN]HwW`7`ce c)ys.m4JLEs1qɽtw$ɮL`:V2VY 6qUJٮ̳2*$ֲ.R|BFcT<M$wD'ۣh[n3p >W¥ NИI\ߔ2$O!+6 {&ݒ_<'إ sK('\CV`wĪ#-_.{h$4빊Հ|H|*ʭ7eZ(%(jl}######I#uD7{nJb^W.*}:F*x ^^nߢу@y~d!]xQ/ŭ&HN܎y>+fXq`Ɓq<8ԇܯXt!$M#Dy؊V,qLIQZ>|#`(7ȹbY!ѵuxvmJsfI&\$*I~X!6 `^" :t'_o:3]q"q}iFӮ*&g:7"zRKȧ#|s~nW-!M3vU7> T0t` @ݮ[$Cd?4iW|pI|OC3 E"w"1";iFӮ*&'$'咜߈|*w[=eEb>DѦMK߈|*r왼ڶH7Pv썪 tG(F:x#_e"#W6hU\|OC#CX'jEb>Df4o|Krn|OC##Y|Q[f4o|KrR. >ȧa##Apn6hU,\RFSޑ1OU1 ~i-ɆYH?5Վ_8t97-.76hU,\RFSp^Å\ޤ#dӾ-?K߈|*wV"R.ch"1"ͦMK߈|*.;CyXW?Z$Cd4iW|#NG>I3|OCN $Zj]"1"iFӮ*&'$'咜߈|u0g)"|mpeh~!yg9"ưMvrCn&kc=Fc$F>?,opΣ{!IZ5Փ͢"N89V긩*jݣ-0h0g:CwX]$W%RLdĝXƆ&g:oM5?^`bx1^}Uƾ|x iﴳlGnD^ T0T; s ]#Wl xwe' \/#up.s.cm\f4o|.|#`X `qn_Z$CdiFӮ*&g:7" xxߴnkf4o|.|#0PDococvJ6MB70}L L=Tw ts|_6hU,\RFS~gQ8DM3vU7>%9)FSPH-"WU"1"M3vU7>5FS^kNd+p~]H|:V7`"{-/WMf8!^JÞ Wo,jEZ_=o=lK Fv5~<(\$׻(mlϻMP'Y.s]<`O{ޑKĹ¹c'؅qjW3cr}SHivynYD}] 7$(ѮFdi򥔷ɫ,gwɬla)-ۡ~$/!C 2m6v6']2g} ^zv-芡ZV.)}A|$*oJCȑO/wF}A,DWt2%-(&}C|~[%<Q7'ѽoRDxm*n\Z$m 5UZ#E:T o3"@f=aav5_C"đE-l| ym AiZE',*>J?d*3PKe[gzz it.map.gznu[+eYsHS}c#)atgfGfP"R-#ʬ4PUܰ:q?ܰI3ogo$eX]P]2ee6V$e+"go]kKG,`9*k<k\M"vRis%ۚl?|5K|bp|f*2zIYzrq]>m.pkee>EVq uU-IK< J EE'?[GO"ݲ2azb0 L`jUXHto]kʾU\U,[X6'U+1qע]i>P&5.lUwfw;u:Ѐ1nA($tE&ˮۨd]V)0X;M`|zLQwseKeK(Zvu73j[o׶߲`p8z=G??񟑠s0OiTAqUlMh|J1}F>pf6 #Aq8h4іS\z:ِG:{rV3)6ۼZmQ5o]-jH7Ta玮r<`0͹de]rEبJUF8Km{MOSsssss>ItnkWl\mgc/x{$:YEޭw~8sd@ 6EGCy?ID;uewvy2A|6ݥYQـzMWj:6 E :=~Ku'芈-V{5L9Е͂WQtO@0S$Pܮ©ևu嬦c;>%99ȧR@wQ`h!ӕ͂邥螀N?W?{GB?.h!~YMfAwtA(A'O EE/ ={KF8ڝTn w; } W™tbB1օGWj:6 \3](N|:ϱr%^-}Wj:6 \3e|; juQxbu#Lmr `;ެ|&(<=f&b1q~BtM\4%+g5 I.ə|; zf' ҂EU h !.rVӱY;20 f(b./J])t@k}+g5 I.ə'w@> %q j@k}qޕ͂t|:cbM_. aև?v嬦c;>%99ȧ9a>Inx\+\|; jX(,Y;5s⳷نK){Wnʏ@5^5\E-h~C}3Deemά,p;w6N"!T>>xە͂w> շrVb=@6o?;KY^&,<:S|lw>ժ\wW#*|w2;w[uv_`ZyLdnojW<8O3W NpSSG;B(~`I p'[/1b/Njxc>:[Hf;IJ9=g*OԸdѽhF4JQ;-^nA{!K"gUekc`<1 R`7dRCHhM,> h!MdQʎ,HO4X(bgs|bKb ītltGM{t{:̔X"Fw$$4? h!YMfAwtA(A'OEw1%t<xٕ͂N :=~jH(Wźt.ZBڕ͂$L >O@D%!d2SkW|]WN3I-0!L:X(.b`%ۚ%|TIYRfp|f:2G#b1~1"V*GY#f[VfE*+}Fq`:y2烕)VKPM*)J"6#vP8888888To|̝Fzک |//m:Ϳ?/zkOk `3I`gkla.uͺ\QugeJkhPX[wv>bU]o/ TPB}BUc>iyhUPo޼V}UpphWNnSFZuæټEORznWpv|9F֪;o7쩕gs{޾*8C8t#ϛmlVYЮҝ\=ock]6ޛwzj^ *)H:VYlS+Ь}UpphWNG7]1n9fZzno *)Ȥs~zn|V [쫂C8CJwJ>B"m*l~S+եY-U!¡];50`~^&Xͧ;񍼕`3+Q¨hChJ0J`F0/9]!%|[ ylf%0 S.i*UOܷ=I{ӝoIϡqPlf%0 SUbFK 5VBY FE+h{]=#o%a(NaT_[ ylf%0 SxweQԏV  J|ۨ/<dAdy1 7w}X3c޺9ė1JլL`b_57 7?突 ZFQw-/>گ̴l _]X,J_ğ/*Un\Ak(ꮅ_GUٙC?k7J/k\Dez]m}2+J(.J<'w9[o٪fI8 vav?]]H3q1zfb;͸ $(1vcE%e$ OiY_be  Ll]|bcD; OtTZuwl ?c ;'?zUlfqϟH_,H폨i"K/㦷8qTyT]!SYwMMR3333333gDߜ%b_g&5PegX.pk@3ƪ/)Lߦ=@R܀~f\ !Sߌa*TPX5UơA;~2\UgQuQPKe[н--fr-oss_latin9.map.gznu[+e][wH~_={EHgf'3-5 $_ZرH TuWu_w2^W;v)_Mkpu/2ee4&B㋔uJ,<%0嚕UJeX'WpWp="&M f'Ddm2xUȯ*ɲ$+R{L:Z.ZpI&7:7G] Fs!…f6$EXe]Ta}ʋbSJm^ ٢vCWW=>! ) sNsTʨdp^CP63u\Q]dpj2-զ%G-d@ @ CHTRՎzSgF+=QH(#f:5\HLI*LpS՛ w Xvs[딸ّ#xOkF懁z *z`=G=}U'/52=AsZt D3VX+bb؜lG2)}gD?G?dez[:ȉdip2%P=Kg˥ <6gϭw[8PNOfaaaaaaaE."|y<9-4<&V\O<3[ xğE"\¥0_fnitnhJ-//_J|o|&>  ~9K(& -f{4ѻ/\"?KL&'Q2t2PI)?{4]"?KL<(Pep6o91Qe=@P⍫rZf%؁373W*3:CMe&0*\ i^g~G_2+@VryJJ-סE;~2([LVrrM M`(W:~gOR<9/(z&_4oӣ %~wZCw4/3~G|-r2w$ӯa<?J=zw1tRҩAo@_p:ZNޔ+mYdWjHH&BC]!oP7`G GJ-סE;~'Q27xo4gWRuhNe=;0=JfeDe@gj5)3!i&0x*\ i^g27<ȏ!P/ &YMnRj[.-/ &7dL+s"DdCCGJ07+/ "|R26+&jR+} V\G~΀y#(ҷP7 \$tr6[c>E?)*m{* |441 %3-~ 1$tGJ*\ i^g0<ȏ!}De@~r`i=@P⭫rZf$%؁3ge2їJ.ӣtwIW-Dy*il#礹hnp'pz@$dYSP!N6lʄ4x1ϴb6<@<)kr|^,cxp{P2+JnE=繧©'su)Ol}s=yJɘT7|>*rvm^xq7?갚Z.g 6A93/* 'RIcl6a5myL &|F%&ՋfgV3lhPmPToڠ7[0j5` `Dlغ<&՛5;Z m;/g 6Ѡ3.:.IGiêՉmM@M4(LfcRqlajdy>%t/ix[5VNm;o@mAg]KdޖBVl;o@mA9YPHtX:Gm.pո4L_7K9U(|~ Gkڂ ɑ31%3squ[|~ǖEy/&߉vݮf]# xBtu_FӉU+f]y˙l]mcAA2;Tjv%L6ıA b&}"Ztij86$$Wy]I_wZ dgs} 0޵dY"t< dj@ $.BXբm%L6ıA BLjv&[W@ hL yZn޴B\su!*6ASZzg; ql4H .ЪmC]/lgu ^~sK{%Cˢ/>ubsRjUc%BIyWZׇ ( TD\>=$N{9ԭ5+ d%^'5_\zw;W7[uX:Gm.pո4k:ϑO;ƳDV \q`㤟%osyUvN7Z2+JBqrijN]|-[^_{~f~Cvs[?`B{hc4`QoľYwv}(ވξ2(U{zF3uW+ko W}`"t m$ ]3~7+>5(|ϥ~5mLșPrw^X"tq^:Mb1"r:(ӎV=j " r D9#[?=g܀|7as߬V9TPB=jeqۺAԵV7E\]lMx0[PKe[)Rcz-dvorak-ucw.map.gznu[+e[8S=`l}3f3>n/Qj !4sT*Ӷ$n6/&u\[p.v&;vzՀ2.pU,sX_Aҝ2>I=$XgRŚ5ȼɣC(>RUzjlzzlNe$I7cvͲ<_F0߀3+=Iᝠ tI)J$z8 g4|Q0KofkkKk]΂{ X=V~!p|bLڢՏ3n'3Eb̓f3{+55555555%uUek+զl5廒3`Wm3CI/t9W>PQq޹ܥyDuw}Zh X~~|~Ї^PtaQ$R,u%܄v8&,= >|Q0 \5ڿxnˀsaeq\g,(XvX6 `# /7g]q"IӬ]UK߀|S KM$(pZ$CeӬ]UOsi(8(::2ni4jW|#:7 C tE>TcfUo|5\Z`8TAܙD*+6IP٫:ͪU\|W}g調e٢Z$Ce4jW|#S\siNo@> PG@͒IP:ͪUj> GZ)~6vl='A~#ŏ{Xp: d ;[1#>A}b]= YP+#>b3mo`;U |E:9U0V+2OL塣]-8*{QYU`H+2ioť99q|Q0\TO:Wc]$|:ͪU N 5dR9H‡.4jW|#S\siNo@*z\j;XnE,4c_~J0l^{BQΣ=zޣ(zO/Lszu+nO;yamyXZ(ڊGv@oAohoÇ7RLi0LՓL#-Muʍjv|sO//}{za i tnu‚pSXUx6Dol=;PVjsώ-iVծ*FWåuo@> Pcrx//;a,:&5;izF\Gˊ\:Y"p7PFFm$\:ͪU4挂|a"Wk~M]7" *wfUo|5\Z`X{[$Ce/4jW|#:7 _ gN$7}t{fӴ_E` *E/]7" *WfUo|5\Z`Xȟ+ݷH‡Ӭ]UK߀| Eחz&io?[$CeӬ]UOqiNΥ9(zXkt) >WI%WZ3 Wk Ic ެvRC<VjT/7|iʯ,y{6 o!BW)+7_[i® ѝ]1JfwjPLݕ[,,颡rn=Vpv J>#uŇ1ItryL ZX!E4(U9Tކ.JMJܞw"|ުxL,4jqfs{cEpphѠ3VPucc<V7b"oZW&kV"=V>M~ўʄ7HլFatӪ_'2M'n%Ck5+Q(ݴ, iZ @z.@A^\u8P@WRh޹3 eDK-6OFW;,8<#O'85޳`l7.o(բET})/6],)TzPZq ¢q~~[ fg)2$HQb܍wiE.HnkoTgq $^:|*COؓ1lStI^0/;6]֮q7;>7 ;۩nc/b"=:C%(vf J3,2,Mtw;|ϻe2dȾAfFۦK&&Xkxg]Kқ1T |ת|᜶  Hs .Wr!rǗ;>g5ˌ5)3O|0v]CT:|ӖJvWWWWWWW+_z8Q[R%)𲶤tp \j*Ic8Sc4_ӛ@t)w&?p097~E"Dh윹<$H }yŻ"/>H~? PKe[.w-sit-intl.map.gznu[+eYsHS}c#)atgfGfP"R-#ʬ4PUܰ:q?ܰI3ogo$eX]P]2ee6V$e+"go]kKG,`9*k<k\M"vRis%ۚl?|5K|bp|f*2zIYzrq]>m.pkee>EVq uU-IK< J EE'?[GO"ݲ2azb0 L`jUXHto]kʾU\U,[X6'U+1qע]i>P&5.lUwfw;u:Ѐ1nA($tE&ˮۨd]V)0X;M`|zLQwseKeK(Zvu73j[o׶߲`p8z=G??񟑠s0OiTAqUlMh|J1}F>pf6 #Aq8h4іS\z:ِG:{rV3)6ۼZmQ5o]-jH7Ta玮r<`0͹de]rEبJUF8Km{MOSsssss>ItnkWl\mgc/x{$:YEޭw~8sd@ 6EGCy?ID;uewvy2A|6SCy tfZB7]9,,Vt\;BWDn꣘&a ćtltGMt{:e ~@&5 N=>+g5 .ɹ$'w@>  Os% ku@k=񟮜tltGM,%@t:*?كP=v@k={Wj:6 E :=~jP(/xi9]2?wƻrkp|NN΄\-H .?rVӱY䒜Bq|0PM+f5onևrVӱY䒜)St0T3LGߑßY=TOIAϒTW)0݈f2M6~#mEZTլ̪|Rf<7'|VoM{WO;vfu3D1$$I <53)ˇ 3kzJ4m.]9,NOrI$Tt03?QP&K}&?w ooփַMڙv.pwqxpuI1oXt|P*ZBYMfw|Krv}P |;[9+ ܟ,J/fyo?6;tjU.;rwFS;N;:f`0Z<&#4X 븹ˮ6]<HO4K[ R>Xu)Hh8Jn<Xɖ{<Njxq8gpǘ,V5RΠfr `᪌>1R}bhFjMH+5c.FbD)zzZ{ I䬪lal'D`:Xo ᨗtXˀ]9,NO>Kr|P +bR$ZAW]9,莚%@t:%sC6IHa~ZBѕ͂PQtO@!?jcJBx@k=+g5QӉ%t{: P _S=i3>+g5 I.ə:|; ƈ\ B82e֮ѻy$;g,[&`Ct3F\4 &J5kK`}k;)k񩑊ȋ5'88u0ue0%FbaEdU?o-*vGZZ7̊TzW wJ 0 `tPdP+S؛&ee%{xfyj(grr*7 >:#=Tw>#y_wؗWէf0ˤt3v^50ϺfB2j4 ;;.o*TP>1Ap4<*rvinpv7oSJ޾*8C8T Hs)u#aSlޢVf=C8CJwJ>bwU{k՝7[J3=o_!USMWut6Twxo6S+U߬}UpphWNG7]1n.;=R zn/Wpv|yUXެYm6jhs{*8C8t#ΛZ{^OTf=7Wpv|d9EP=lS+ՅY-U!¡];%!vou6T?j6?評ҬЮҝrhkBѪ7VlZ4k~~ug#~ݮiRc ;'QeG4]$e|+UVլ6{,BA p8ĄGásJ[ɋ*ɲfV0:Q}Ѻt.(.fV0:Q}zt.).fV0:Q}t^l㺌zG^W f0?O/ZZSFJ`(NaT_!]%|[ ylf%0 S.ڐkh䭄< 6)vA4*'ηP8FJ{6)v1֥y+!ͬFat o=J0J`F0/ZF{F uf䭄< 6)V~O߻(@+H%>bmT՗b2 21xo]QU˘W%jVNS &0 LMV/svK󅁛͟JqE~~WwfZ6o,U/^*7٠hu/롟5C%~5.2Ȯ6Q >}m@}\@e|nvH ؓѻlUI^G{X̟wȮ{?o on8?}If\ I oWc1Rl۲iX姴nOxyS|&.>1|vc'x: Ow-ź;o6|hR1c H@Ÿ`*6us yzҸόGۊu/KthG^4G_q[ Ut8Jn<X)N&)y3oNOY(fx 5cUyciFoof Ez n@ Nw3Wéo0}D*TPy*РAk?Tum:V(OЃPKe[ܭ md.map.gznu[+eKs8)|*aN2'`kJTH*/!P"IU&EK@W'?<$_ $ސR7=բ\׹Q1{K/o4+ K?_ |NxuN l`;buu>N"_z\VrUԭ*'2'؇p!2jA2[ 80xqϒH~2T|$ڥ qo -,T.\q.#S4qϩܐ"!4&0ޭrD1H]&O|]yvIM羶> Le5NSB];LÄ_X.mķMR)5/x{&*d.r "eednIzw_ϔi:Z/m#^ 0IgY<ɶ"ڥ XM\uFnSV`wĪ'-}qe]d@3wڞAQO`Ɓq`:a"V01)H^kzI2 eu` t-z@Uj(?)!4 C |b&ղS'3d+)^&N4Z[ݻ/x{&:Uċ{q DH/&2Z4]]մ I.ə|O'ÉJ-JwuZ4C,iW|\3P_|:Ne2G\ #NH"eYM;k0R37SW25wl٭hX !޹,iW|spI|O`a( ©Z4C?\մ  .I$'#NJ3=۱e?.j\zWPEE;mX !޻,iW|spI|O'@`"2u($_{&}?O/.!#&DEo:vǖs8oјw!鲬]M %mG> #gH\>J)dM"eYM;kh(AgOH)Z01YD֗/8y ~Ax<8 Np~c:7=E|-diW;r9k9E|F_PH-n!{Z';v7:_b7$$JZ4O+ FzyVܢ# e5jo|KrR. >ȧ^$R"V{3! lX !]մ ɧL%9t2T+bjȥ βEc1rYVӮ&'$'咜_|:Oc=ޱeb]M %mG> 3Ppcnw-!O.j\zP8Ot>%3\첾8K_|:w>:][B\e=mq9x .pzGX>ec ‡We5jo|.i|=dߑH.P_k˲v57>%9=y?c|}d8 ,*M,_sPOV>|=dD2|7yYgͽ^6rX ^g«'?pB,kqivո+""lIZK4(0 yÃOo+(Y&|F'%g"N,.p;fcwc/Ƌb70^aVMaQch,uYVӮ&6#NWb@4ݱe-!Ŀ]մ 9 >ȧ^q$8I!;%- ĥ˲v5Awta(AgOPD[vآB鲬]M %mG> %_oǖ-!Ke5jo|.i|=d8SP>=زۺEc1eYMK_|*F7#{ߛ_q'%c.0}Li L:Y<>'"^LJ,HY,`YddW\,R\M^) )\\6 f0QNM'kz'6M 7-e̍_Hwô[AlF^cNi}~NyAN *xfVpz I;:3lZY)6'vQqR=ѩCz3 o3Id- *Ak3S8=S}ҎIv *xfVpz v ulV#6 8S8'픟/K)hW־}h'ߌO>ԍgVwk3S8=SuNGyAmy"bԴ*f'_d,H1R#H1F?\Y %f^Ykmy j6]088SsXƪU)P,3XW"mU/6=Nz_}LLk2ؚ]՘szWͲ|<()ҳϡ|.EyFF. c/>uuV[^EPmu  i ʘ8bbl47ն^/;_yh^|iX!MsssssssMωLoqOsR}m-质a乇ZEkZV~^w߽r,n|4B]J}?uڿQ9 Cu/9w>]x6 hob4~UۦioX4MGh:O՗ݦM| b^UbNrX> l>6sh6?=-JdSKdqf9s}}(v9m%t!0"nAeB7xZo:~X?wfX4[A(Y΅`L jZ޿A.N:mNCh4{Z+-x/Yp Ե0,ЀnmíH!%*ZI%8t|+z1DhXg x=FߖcT;@H1R|S@BN$SM`$kRLb*bQCT:11D y,۲Jzq@J1FGFCѺ5.ރQJl`1f(na\9StʞkbBϱG&hլ*fw.weSŋE&=1*6bկl(9Cb^SQJH^6ԩU_3᫂1[FiuP9C?3uYz!G<R'rgZm5J:WT0`(<-RFP(>D_V ^ϴ*Sp|-ޙ RdSJp[̀Rwӫ@NGOk9"LD{ Dօ>jZs'~*1: @tVV ؉xT!y(.D[̀RwFӫ@NGO \{GעE(>DV ^ϴ*S0P}RAju]ԺVAFNozw:z*_Oӡ}΂gj;pwlwٵtcu:a&;\8|"ԍuZjZ x&' `8?pi4!E^ $@!V ^Oƫ ~wB~*7ݼWJ!xaL:[f(,6|atj>m_oj%^ʃB BFH%6C+{ Z VYU) #Gr R9c>QtWJ|ʳWVu:H?;!? yXzf0kok5(>DvkPj._JS9>όJ(ˌJDJ5 EiZw,U"=زv9v-5ABl ˞`IPw&I 3u}FsRswݻ $ ;ylu{vsꙎF81ZisAC||0 3?Ѐzs41zF8U‡n(9^_t~J/Bc/rDIϻ !Τk8>tus)kclm C"SRA)%jc'^Y{t^.Y ؀QGb1;X}X"ۉ{5Pj݈l5J޹]K=ީ vFl$X0NMh픾Jf@U;kvd v`'j|&EYj>SEևjuZQpm]uOY˺GrH-]PvC@, {w/nՉR{fZMJsD sݻZ+$ UrSў{$aj&4aZ%1~š-arcTw rG̰H LA k FBXxLC!@G"X4(=,F*YKբD TJheTqԆR GuT{.>hkQa`qaƷGkJu41)BGCPKRuL{abU-JQq4VթVFQNkxXbji#W OxdžfнPXmOw葚> bQH {VW~C(C@gL_olD|Ɨ@15yvL)1/%'ɐy.;@ jZf7%K`g>"R+J$#").>"_ v$H_mԩ@G%?V {IEw2GD2zwc7+:<|lu<,Np'i> >NDܑ&3lx"A` \?mݖ4&j {5(?|>(K Đ߶>fnhweH#¿PcW^ٳ#~:qUP)uT%PTTUS>MgөWԶ"Tr\,??;? .VP;-imm>nOMu qkYM:><2 *rY(\v^8Zh1Zw-V_l-yRքvWr)-838TfonZn܏=jq*QqLSkӸV󼭗ޭQDE_1~3lRvs^VwZ1]ݰO:vHQ]N7Is(S ULF|҉C*K|"8C84ES7j[qn>CS]>!")LכU֊ɤ|C3]e>!")Lћ*&׍ Ү8'C8CS:%!vtա6Yvű.g>!")ٌ6DV[+IdC'ٛDpphTd3nYuoB'9]Z3{>!")'䁦&#UL=5;]q8E] :3 #*$ l+qJ9`&`3ef4ݖzۏwW+/mUoab[v=NQF#4@#H\}i {cV7WrÌFaFEv:F=aF0z ME{zՍ{ŒFaFEv7E+3Coq3838^jMk&[$F¿0#Q=Qu񄩎pA(èhyTsn$Cf$0 0. h_f]6X zJ(]VͶ^7Wj˟EYPKe[; hr.map.gznu[+e][6~ϯ={Wc?:fN>2lcKN#3ɐIb:h? 5?ƃ$ZcE;kt!(N$?O'?{Ty%TNJ@wP:;:|d&[#ntȏ]|1;`ZD5=_wfz.3IST|kK.:V p)T>;"> C#o$]!ɻ.:V p) 8$CƝM;h=Vֳj5YHp]y*t*$.tU‹2 >JhU?Jwz/$lG yjFaX1WbMT";;&ً2N^1"9ft;YQ&HKj)\ g<8$Cb'6s`>k0xKjхF t@wt&#/jL[ dk ;LwA  hXK3Ċɪt}o_030rPk&Y"/ dԳ[jK 51 Gm*o,X`5X̐vxYX/Z MzPNLk aIXUvjC8vb6zZž MfPPuXoZ{iUl` {&8C8l7A)f2^Cյn j= va/p&3(Lza}G*vb {]Mppn2RXkwk=va/p&3(̤kql^>US]؛jC8vbصE6b}T>U3]؛jC8vf@=V=av/ MzZ:BcѪn_'5YeB_tԏaHHq$:DbFM\YF7۟2/ߥeŋM*]t A  K#*u(VBl>*`FaԜS*Dש% 0*`FaԜ>3*Dי% 0*`FaԜ7yUⅡ׽ <ԚIlI`ɭ.jFaFI;6Bt -UAV0z植褝P!N,UAV0z椝I"Iߴv} .ڛ|3|.ŒkɭZQ=Q}N:i=*DWϒ[yTk0 0jNZFۧBt-UAV0z椕o*DWǒ[yTk0 0jNZFU^#v=>eX_l >e1Jx3d.-_Tc<.瑝`vk:}Gogpc" *qu6'yO+(Ra͗J&_EseX>esvb!ڏW h+e!|='x: OztެČ!͈uYc oI. +i zyԺόޱM;ʗg%F(y|Ybr\'p?mU/_~"ENǴ ' l=ppgUo_dJYZAM{f4x!]p\a  ~XgC,X`g/<+"]ݕWڔ}#PKe[؍ch-fr_sundeadkeys.map.gznu[+e[w8S}Ϟco%xMp_/,;sU~ ;uWz;5-2v]M&lup \X7cO&8".^,YUyRb{Db"JjtT@;Ơ1h c9Xpߋfu37\H㺨Y6SzSn7B=2b"`gd-f墺Q3VVU-A RI5ckx.X3y臻3y.]-+e3Tּ֝"jaVv=~]o%;֣h=Z֣'z{?B:CєPJ2Nrj3s.ɷףh/ڋhm/]H_/2dI<,g0}Q5qoqͪzQ~zt`}F4%]z9iߔ'EY/LMbw.&|RUnSln?%z}Bw5 ^Dxi0PKf;7Q ơħM cOH. $HmQJ.A̍%DA" )@b-͠2VtRz$GޕWj \|;" =Ƒ!rԵX&B(M8E;u026^ <#-gԴu){4AmSt |C :=} ad?8Z$868u&b([j \|;"  ׷|# #HD)9WOV3zpߣJoCMҜ3h043DD38ڻlZD,Mmes"tsg }`\ ]w٣mzD`;i`gZݐ'`GZDMXF3SM 8JhCMҜil8#`H3TVL~6YRU&B(qf9E;u“h",P|g4g62h0Iv5T=u G1lCMҜ7C 3% G1r5w|Ksr. >C33,V Rz>r+Om7~|g4'Ҝh043b/4 FS!Ŋv){Yr C*P/-X/ &%qzB}ףJ"EgeVө:.p7q6p piooF=6):g#`hX^Lu'2YE'Y6Ue3EgU ơ!#yLVJXm7Xoj3M!gw:M`<T1}`FF, !노n!yʣgr\.Yue4ƙJcU'U5u0fE'.V9x9t`fՏTV7}_{4LgG\ͩ01FS F0~GF,IH~4StңJ[%5+[ PgOM 1HAIip6jP K15`i&"(r5Awta`(AG2aG^*|D%hCMН4]JЁh2#d̤qz֣JlCMН4)AG̈lV=įmSt 3k6wD>3FHd痪_}wm̙4b )-L4X!|?=Wh$_Z;ϴX.'[*\E^>|G׃!@|,)#0b[Re \forf;@AhP13WhT}S]abVomuCFhFt17y__[>ľ\W?70`~Qk>E^c;ߍNc.V|c?ҷlzUS]AlFƦ߀~UEz*TPQ}5Ă?UkKK\ve! "e:e ]!"Տf &F?W" Y)ZݛTn`ڑ]YfQob^6]գml#W͢NdlgOzZ|/ڕnuJeU=`\V-;r_+ ,˦z1Do0ƻ͢NLԽ-5ZdW" Y)bWf \N|o+ ,@W} A؄? ZFv՞K z)_2 E!C$ y$fp7ҲsY|-?EU.vU'5ݥt @#48 8]4<9,~[Ţ))C>os7] Bwq[q O7[8ժGkW{.".>8.uf,zH_zґkv՞k:7* Xg#}_YfPi׵(/?>7cH']|N[6$YZ+/ׯu6)7++ھaN#ՋoVݬB;%(Vf_j}|Y.Y;LW+k g ~`" {Z$"5U:Y7]<.H@gNB |u3z+֒,Yrג<ʟPy4GȮ.gMoTqv8ԞoBߴv<ŧEcxٚ3T{p \ѬwUycyVoOӻ~@ R ~$ wΆgùo0*TPYFcC 3~r.b]~2SPKe[LTces-winkeys.map.gznu[+e]Ys6~ϯVs9f&;;NNj kJKq Ej,yl2hk)er_]xwkZم7Uܳ;V'G zx5X_[\f9$Vҳ(/&V܉|\ x*lj; ăxϳG_ėY2EI77Օ'LP>e D=G,X|el={.ު>T^^=z0Kf;;_f'^bW ncwDIޔGWr[ $1jP tD(TdõK \'%q 'r0D#c)%*ZrՂKEB t@7Uwiי@){փ \Utt'.JG@|/#q:)8u7d*$NK>;">=j0 |aOieC+0_{փ qIVѡ"Н4xP=:=j㘠Duzwd*Ic/T/@8qZ, }4.g ]4Un w<; # ™ D EZ.*:T3'qI |wD|z01OD /V-}K I\)|GħC]yS&q/Ì^zro^c^O]|;ñp@!苂W@}ⅺ>9[欬Ңdu-_W%Uʬۈ7ήtyP Z-@K%XC\QX.Wn".{ G(;;{{LdUAVDv%bhł3IGD^$P%q#`WDms8?ѫu!ȕKIXL#ӃZ5kX#Arʌռk}%YEw$.s)|GħCRJܮFb!/nc}Z\$P%q|`WM>#LP k}K \'%q ՊXN:˟\7~P%qr\'P}f$+Cov6[c]LkD6K$PEBT@uTzR`ϝpB /D=+d5wVա"&hpՃ&O*bHoX=\C.*:T3'pIX 7z-䜾!9̋,gIJĤJ"Pu\:W  @C<7jX؈FBOCcu&䬪lΪ0T3' +0wĨKE,i3X_>pAMdIJ`U*#' 1DW"V"S,ZrIVѡ"Н4(T(Ԋڱ*5OZᒬCE;itH:{tz+Y1^qNDӳ Kd*I+j9JG@?ru$wb[Z꒬CE;|\R>;">5jr,Ag/Jvw.IÐ1I,[8M 4#y!ĞJN]k3-Ki-ȋՁ5||G§@L\b[T[̊ogw3sP*gG PMz5geeG֦Vk1+(M @AF5H;՝Xu^g 'Uv_րZӃ5_"qO|jo`VsU |7|շ|^-;`K Ϊٵ%?qV.!*)G|fedEfQlpҡU]*8C8US[)C+s{.!*)L˦{l0i7Guh%zn/ڥC8C[;%xtU߸=l0m7Gwh%zn/ޥC8C[;%)vtU߸=l5戂dGR!¡ҝXlok6ZɎM=7ޥC8C[;%tou60h7Guh%;1d m|%E`CT9C+٩TpphtP4F{hhԡZF[ ;3 zISgpaRHH95,J\߱eQ~%ɪv:fv1x @/>S¯CcCUeŬFaFII;WbV0z 餝R«N JCo1+Q=Q}Ft^gu 030rPkz{Ep'![ ]zY !vD'mL bV0zI;WbV0zIb>Wc"7x;koMp3![ ubV0zꤝxt![ y-f%0 0OZF;W JCo1+Q=Q}Ҋ7%gVBzY !V~Oٟ{Yë} :@zP3&U}-@$H|s'_UOcIJڥg(gIzWIu+m+sگ~ļ)YRYb37ju@bBL9Ǥ/V?qY0C7G4JE#˭_՝ _W06 l?7th,Z4Z_}_ՙ}X2$HSb_YfPi52+J禺=F OtžezH򚥥~<qg3!H^ 7psn^ľYqa I gc5Rˢlۼ$ ˏiY>_be JlY|bCH;!|rC<'ջbߥ7+>cH1|ץ#@$@̑?zE3 AAAϏd]1Gdɝ#Ey?;E65`EٹNP9߲meE"hZ-y7'b٧5 tjr\\sUycyFooӻf Ez AL{ggù0|D,X`]s?TunXW$3g#PKe[$q3ro-cedilla.map.gznu[+e[8S=܌I'd6XfpOԲ08NbU~"L&W:nyrv9]%et;.p \-z*spVeVڥ mB>i9w'6uu.OksBd͒Er 80xqԟ%,9ϩ9HtKcs4|@|u.\p.]4qωܑ<&۲`TsU(sՔ@$.ے'u-,8Iզu_[Q$2FgT(((((((f!/S><oqK>3mSTh/x/sg+HqmvY,[ݗ3$yRkv՗*EHJe?좸McEκѽ ^«1]%[<=(8GM&/*t $.[Ecޅ2v57>%9cS0a(\t\}WEc12v57>Usz5'7 J3 ~~ˆb)d'ҢBYFӮ&.jJЁTW25pl-oX !,iW|#pI|O`R'C_@rL=!l٢Bf]MOpIN%9T2td8[v{lX !c]M%mo@> :-!6h,\SЫ0=cb'grC OƑqcREo:~=b}`9h̻YFӮ&Fg67 JAgD\>JDӮEcxg]M]4]0)AgSOH)X2.B|"EKy?R=a Oc'`'81NL回?\qZ+bGSԢ{o586868686868686Q;t{R]ޛIg4v썦Jtŗ 9>Y'^4O+t&bEDZ4pxa]MOpIN%9T2T+SJJ`-Z_h,76hSrB撜߀|*+b/֪:";gբBYFӮ&F'$'咜߀|*OS==eubYFӮ&Fg67 Jjřxز]b2v57> T2WMgrv`{.~Y_%mo@> wL>с&ْ5!c ?.nd낸,<Rɬ~GT>ey` ‡e4jo|.i|dޑ H.__k2v57>%9y?|Cd8 ,&4rSS{dOD2t\vYQeݽ^>+jX ^«#?0$ݫ 娈$NxiGՕI"U%SmQ`FQ < AW'%qj2x1ѱaə"/æ偙/Ƌb/ W}+BqXز-%mѴ Y > ȧzǕXlsboe4jo|.i|dVG*"RNq"qm]M]4Ք3ЩWP SB-}lX !YFӮ&Fg67 Jj+{`n2v57> T2P>=ز۶Ec1fMK߀|u2 ;nSGV7{1Nʷ6K<]`Ι,,N0U+x\~gEESgX8w'XbQƕɆ^X.6 RT3;'x]NMuǀ `. F%]sa"))]=(AMzd N"SZ.dw>-]D|n=U f0Qz5EZbNP> @}0jɮ 6b#dw^yM?@ *gTU2w.Go+j\- ^;VfU=)҅[U#ӪڼYCmԟ{ *5)青 :UT7W7oSޱ*D@4Ԥw.魩^mV^OǪЬRq]+՝Wѫwj_p *5)bj:RIZmP+թ^OMU! "Y&%cmQMUGtl]R$/ݔQInҏxB 0  zW_~m/+ۛiNIv uF#63 8>'\Ghmfp }8U'Oڛ̣|SGkOf0f^d-5(Ak3S8é:i xAm'lOZF#63 8>Vv4(xfFpڇSuҊ_']'m\jjiMd]m~P+U0.{-".WMf#6fJK'Cg uWoeç;DHtE!KĹc'ajg3}}rw_Pբa2h~z6M;7yO[(Rs)/Yήپ~ xn.y[ Bt{>.~b} ."R=9Q%ɕB׫-,( H@򝓨BwBBBOj;wѾ eNKhAG# dqfs.{dIސ-pDpDpDpDpDpDpDHWǤ2Fxi骝\Z4^k1Gr6MfD9R7 ƻigg7l *TZ6v|*>4hР}E'ۻ**>J?>РKPKe[,-00 ca.map.gznu[+e[8S=\|{؇<3;l6=3{y#cu7t'nH6tNPU!AeF>l}~1Q.w WբW/sL _hҝtLD ٞ,`˳brMr/b N퓃(>BO Yݤ8U{[P@ \sAS4 ی'$a/xThrQ( A|S4qw>&M<hx\4Sh* ABS4 'i]n0 L`*wWjrLy)&JP>i^ng*P T5] " Pr  Dex-3cNvk>o *.U.\7ESwI[3@^,3*3F0S4qX=pO2Kug6QxLMu4K άՀ|@|:G}T|)(*Y\w(ͨkWscxPOj~1G#㈿#՜qZ 5ESwN?|>QG` XN6l#%.IԦq'<u{W/x Nlod}t}{Pqa=['ԫϰ-.?]մ 9 > ȧJs 9٪ǐ_.j\pl*d8٪mx )޸,iW|#sp)|O'eugˌl-kx )>,iW|#sp)|O;a(!Ú-!o.j\ЫRB.kТReYMK߀|:U2O5[u۷h<,iW|#sp)|O'àEfpYBZA9(xz0`As%N[4[,iWtϚ.(A'oZY6KbL Exﲬ]M=k餢螀N'?6aC*hN藚͏dDQhzĎ^ zЃ?%*M$DЌXm`QB}zb3wrllllllll\o g;P-A'4v썦Nl 9>Y%!6^͖H/\մ 9 > ȧ!̃-!ť˲v57>t2f\0٪ۦE1x]Mlo@> lE1X,iW|#sp)|O'C=CO.kvӢR責]Mlo@> {\^s+O./\ɰzGLCjxG)S wuزgQ6uNf;fj5uV7w-!/.j\Pc(QVݒǐ˲v57>t2d3(S UsB(R g9Q;a*oZɆFTLLLLLLL<'j!|ZN+9U:?VNKb$k okYL),۹q8l6[qy(K=ۄH(Q=Lh.'dTvn-tHvQH'XO8fSR?[4N,iW|#sp)|O'CNG9ck٪ۗǐ.j\PKޅAVݢǐ˲v57>t2f*OYV>h<,iW|#sp)|O'C=ԗۯ٪ۺE1x鲬]Mlo@> U2T?њZ4C_]մ 9 > W%é~GZ5Jʩw\y 3),J L':YU3cA rm:3J[4/F0+0ddIMA6JJe/({馓,`˳bɦz] -J$T h-hV=,Ĝg.``O>)@~zX{ޯ70`6M'k6ER`/pb R>9~YZur+؈=hl=,y{6B :'W^χӄ^?X-7V{zX" Uՠ']W~+ԍr  j3*D@dOtP5Vyٸ܂eCR U! "]%{rpUUOoCer ' J z/v..ڙ(Xיa[*Np/څh_l6Jo}ĩ FM|(ϰB fVpڇ]LE닂u *DfVpڇS}_Qa[*Np/ZDİBDhmfp }8Ex94-H/ NJ쉅$/<0` a4!k.RP: [#_.V.[yCR=l=ܵ{v\=Ų(lxc1$lzh Gcqqώ[ fo~)R(Ra\w~dfGfm58$\v{( q$ct9IouѥxMLֱ~}!-N(N0<}f6͸7y;(Ra\|^Pɫ4w|_?H"R5r]7fZa[V]s$ Itra`JwEy 9>idzޓ}Nˌ;GhF6Hv]CjM%%%iq-ku_f.map.gznu[+e]Ks8ϯ}kė(8$xfqqds- I%%T,)Un4L4) "YUWz~ẙ)vʒٟ'ur{D Wor tH1{R&_yxj% kk|t阽KO&t~j`&`ZP檀p(\JbY6<2[/uKܗDd-rHIYwKjUFԈQ#jDVH^C'if63>+%|rP梈$6l[?,"eFa jb')1II*YNV\\QrH沘$N%ą"L22')F잎 ʙc3G'Q* xL{ad ;*L;V00s2)U>'cN=o_\.N S|JܲvK5*bCl2(V1"6Ć؎,I.n";/: O'؁؁UɞՠGU2ԊX4t 9>Az Ԋ" &|%פ YeMg$թt&SM`.NS=hJa$<( $[1ۂuIVӾ"Н50R(NN'?C.)Jz|,n"qK";U ȍKEB t@wt:wśCs*IyKхB t@wt:r9_tXV^UQSfwEʼ'b.Ղ2((E'@&B$3$m:co"7`L||w$|:XK=_>ܾ_|5"_o[ <ԚNtyr}2;Mҍե*v+[o>o=뺜}Wd` Ntk*`jB nѪZSR!¡RrHgN*ԍ4esbM=R!¡҃Сj oqӸ9qV]*8C8UzPfzzx?j7G8hJ64^KpJJ:Co Uϸ=֬?n7Gh%zj/ڥC8C[%)6igk64dR!¡҃X4C3n5xdcSOŻTpph3&Yo {saV#SOvVAIgM-_#ZzjoKpJ<ЌUx lӟ-ZzhT dz0ә@|bW>S GKLg4de17ŗdQHr#gNjYt A  닆ǼסؐUyw3Q=Q}vUpͬFaFIv ulV=t6 C'mOڛuZIVoЛVa3030?O/x7[ $4dfV0z6UpͬFaFIv uhV=t6 C'툟SIhV.o{xߘ>ԌgVwg3Q=QuҎyAlCg3Q=Q}Ҋ'/h{lf0 0OZD{ u`V=t6 C'x}vًy]SzNA' :]Rշb}  @p"A_b/@1ɷߍ%|${Iu/m+knsRU+IR ib3-7ziAbBL%Ǥ/Vٯހ>X(Say+/1-rz-yk3}}6}̋RuK]'x:cOkޑYݧxCRܳqg3}1(^ 7psnQD}8/yo/K(Sak-o'EYa XSZgGHY|bF#YIٮoxFXR ]5qaHH^8\/X|!((Q>f!YWQ.I(Ϩ4GOoi3Z V U-K[*_5>|"D'Oğ9}QsGNM_ :8c }j^XDy1_3PR?{ggåD,X`Xy1~2_UWIu:KPKe[7/latam-deadtilde.map.gznu[+eYs8S}kxx؇\d6/.5%:$c>l\H%ǖU`&}]FՅWכpǾ&E.܋]/ޱ:>.p \˼f,/㻭HLVDūbUE~G]Gխ],V"2ђ8*-gks*݈hAhsi:'5ij_\q],EvToJUʖqë1 cOISet[2&.cVVE`#Xʱ2 &S&-yUI%YЋb-"`[mUD;ND;Nu.siHM!'P}Lت>L6&05jʱjB $ҝe*"e㻊V|5XFwRE+1qicD>1qxQr;͍FS'4[7c܌PHy.L܊QVlwޑa6ۛ&00{Gs"!bcc+[BQ3 V&Q]w;߯foczGz[O<;$hLŮpwESs]'+ŤFqlT '_h/ڋ߷d,ztէxxrV3)h`Qt_TMfUU2E-'v6ڃ=h,ڣOFrhL܋Eu,#2bP P ՞]5=űxٌW͟1O6k-wm `ݙ򻿴P]!(pZӏ#͏6$I~ ިx @6H* $@W S5LI7ԓ(>hw!eYUǚ;>%99ȧÙ '!ɀ/]hɟD hm9K˲5AwtA(AGӃ\] zbĦW\bٳ)6,Xt'Mzt{:G ~@&Ndp!o]Uu 3\sIN|z0t`8|Yi&w*ZAtYVձ&N.+JЁOзZA߻,Xt'Mt{:=1N=%#s50.F8pO7 LŌd:ScB1ޅGeUk $Lg|;" C#.\~p?1xeYUǚ;>%9S8#h=FɺfYJVemrA}G}GӨO G^LBµg,*ee%E|]U5+,^v}GKR-EKңT\J^n!]h;vz+D6$$I5j%DC,TwwR$rċ.˪:I.əL'wD>=@xJ*d*ȪW-UZB.˪:ީI,x;2ՊXSEl!.˪:I.ə:|;" !q쮸b@kcqeYUǚ;>%9]Ozxe _n ao6?vYVձ&΀OpIN%9#PԚedIde}Tw|Krr. >O[-'5}g 7x؂tzwY5GY: Rtॾ 3/A3뭟P hm!~!-YYEӴ6kA \>\=o$ MmeUk pw>=o,SȔ8u3ZE/7$˒LKMWYW <:Na "a~~~xA]LxqΔ^iƴ/"g_d*Yhe-jmޱz3.p;]9'Eh\Ϣ&7$UUrYc{dYhfY,}+n<Y3.єFo/fW=\ô}{{{{{{{Q+AbVo_"tk9/UY5xfaXȨKM?+鸱Ϣ hm!MdQl ҳ' g }zp+OF=\%ZAIﲬcMН4]+JЁVNۣI9nBBӀF.˪:IӅE :=QO1$8hm!^vYVձ&NN\唠#OȷD-[nBeYUǚ;.i|GSaa&5%d rcW,{eɘ{~LϜI6 L¤+̣>H;ZI\OUl%E^\>|GӃ'C`L(hb[RnYog93 y zP+<1U^W)+({6Х`ZYF-`Spݗ߹k4@#Ј#4B4mGzީ |/߭:Ͽn?/ׯzK `3fzӃ5_";ߟ>އ-V|G7fUQ؈G;;.o*TP>c>#mVgUPiO5[.Rrg_zMV+i՛4ϟ*,]EhNg^jtozӦr=RrUv|&eU]ݽ ՛5ћ_J50˹`W" ES򙌗MWucz&z ܞRf9*B@D@HwJ>S骮qyUiN/zJ:1˹ɮ"D@t3.Z&z RNro")̤K~^AOTgf97Uv|%DP}~WaOTf97Uvv@W=V o MzJ:f֣];3 zISg*)<WwlY_Infe]jݧt @#48 >iJ ?M J^TI W8C8G̰" V8C8Oܰ" V8C8m@:(7tuoa`ӌrPozf (Aö: V8C8ڐihVBY !vJİ" V8C8i*K[7Rݸm%ԽY !vAQ7 J(`5+S8=S}Њ'>%|S߰" V8C8xP7u J(`5+S8=S}Њ'{;k/~f@ЩAXxUX 0`9%+jʣVV.iJ|dQJ2VzتN%ڄ6MhۤOV\3`"ӞRYhdu"."L _W0^UāTzSxf֣]:ǃ?KwJ?/k\Dezݬ}2+J͟E1RDBd.f-[c,) /ׯq4zmߍaN#ы7GB;%ؾ}eeQWmaxn/xyU|%,>1g "D$ջKoV|ƐRˎ1C H@I`'x~}XGd]GBw?,b\'poYRGGGGGGGy٧1o ,=.p h\4E^X"EzHA{ҹGGùa{*TPY5Fco gPe.b]%sPKe[}ƒhu-101_qwertz_dot_nodead.map.gznu[+e]Ys8~_oaryfvl<3{(Ex~gC/ŒcK_UF_;D"=w䯎pB"F.B@']$"&uw6 _k#cE;||#%ÙcvUrVL`NxPSh:VF%'&HꄑS p‡"IcE;| qi|GЬPb:;q䌦nZE&5A t@(j̧Ό8AۤFӱ"5 0(%?&&zp[Js40 O~Yj߳G7Q`ITH&50?ڤFӱ";<a`xGI00?Ԛ`"KNPch:VcL Lp( 5qRcT;M=-4ʄzƢM* ՙ`JYQ&yFVi"X{G4Nc%aa#.|'VU;}o GO(;;{HɞQՠGM2JPm+%tp"(Mj4+ Ӹ4N%CZ)6 $u;U-'\(r&5)XL Y1]E|U>Ȝ8'|(Mj4+ s[8>p p‡"ۤFӱ">Ky_Sdh~3}9 ieqaZu]P[`zᘒނShL=mb27+^)h*V;lƠ?tq)9dN<3o_+2̟ȍjڸVqX[ptjpR]E:z/ _IShp81 4x8,LhƷ¤VXDs Z6FQ/~"N(l{SyعB5#B )9ࡆ-FU ׺9ȯbk_7z=4V@A3>z?N&=fSLF¬IR`O @=Wǜd.H+)IL[)kVV\a/2ɳ6à!%GW'G%'?-FnmQ6<荫Zg`BF&27Foކ>FF.Wkuy\ v`-ƻ[a 0]D|Ey% 䗏Y67]Zf`f`~^j5_A*pA'CLډ1oc spo>o|_ϓ`,%c>ܩyaggb^ԡ5^S!aSeeguOuZY޴CkX[}*8C8lhP|ZÛX7ׇ7jֳܞקC8æ%y^Uź{}f}[}*8C8lhPPucbY>|Cs{A *|y=TXoR_Vw; m=ᰩAgCձn{}^V>!6U4(̤s~Lb=^ߡs{>!6U4( s~Lb=T>Cٙf}*8C8lhPNz+b=v Z:hUk~~i0@oT!Z0 $@$/I.ty6/$]-JrEWltA  EÑ#YPdɍU,>Iʓv* ujɍBzl(`FaNZO3Y3Kn`F0tXϫ"N z۩ݕ߯5`f`e(Y|Yp'%7 y9l(`FaNP,x0جQ((G܌cɍBfFatFI;ȓ֕Zr5 }Vdz(fFatFUo']'(fFatFUo?νݾ  JJ|.: @;^b9R,PZ7Vl׈~d,[/ fmYTzڡ5n\hUk~~`v&O-C;~0"X^⬳>6X@uK]'x:bOk޳E5x˒8{Xw|Z^]W;?,ov97(b߭R{Xg6B;(vf_+}|.YeX~Jtv;|ϫw h+>!bB'x: OftԾKV|Ɛa1c GBɅ?z#g3d-7-%ڣK# v^UwjenK%v_E_E/B7'je- nՌo k%,ߦw=@J n 8NΆgéu> ,XflcrQhrD"2L>oGldV@wXp;Qni'27pkr]dr]"YBc-M^벭%+d9K X ~H~&\(UBf2fz3y˨j(ӳUReήkEbL;Vkn9**UccccI;Xekr~s[HYHݲjukYLwHg'kFkhzmqGeׯЕˬ*-JG$>ڎj=Z qF'ItD'o餹fN5S5LMaC:na};D'ItD'IZ2RTv5%/zΩvv a@Sa G26#vv a@?/ / l%jKV*.jz||O/%cOFJe^\쫚4OXɪyIY,UTB%TB%TBCU_fn:I.WIOBUު__=ߒC}89ALc{I*2_DJrYо& yc(:Ɗt$W'ҟ{4]V+ v'.J Kg`Gob##[zj+=@Pj5مa v` (M͝b\W}Gꩋj6b 2dW}f\氊Efm^XYoy;9}: u3<`53,V'GcUr^ك*Pr3+Nb5<ҟ=gӗ=@R_.S4OK?; ?J5vx.rt\(|| wG!ƣ>ls N'%k6qˇ뼞 '\ , RnGFu#|?4@4%>#U^A_X?"[tM5*z^V!6MT=ջ" *TϨR23_/_UEή,Տ.^SjE{\ .3(|FD?nL:F= `ECޤqë].m J># oK' zsVC w@]4(̱fz1Aoj5h `E`hgjs~WcrlhPTPcRAo0j5x `EL4-5V'7 vѠ3.-2 oK SV7 vѠXPH ?wxѢU}4. f>BN2 QGyL]009r&&|FeZy.#.o/W٢(kԪ:fqC:N'יįCbmb^0WU:o ql4H|9H&ě*u=].`u I TxS[Ţn%L:ıA \2I 7=3HQ{ 8D`qYߔ,Y4NNM1%+]{&-^z Z^ƥ,Mo6K#5/jO:ƷDV \Ѹf0{#sOłw:YFͧ/~V$ev9Y&yg6@u}iCFF_]}NoXZǞ.=lַ?8pyi=2`s0(b.3=o tboַE)EӜ2Z~Ζ`?/+VAX4gG[H@: $3jK>5(|υ`&`rL('XŲnn!!!'xCdɝxğP<]`gY3Z,U YUyR[8UM=I1>|"D'O?9Q[gCbiu PFt__%8ls_8<3?=o߆ַ!| *TPZM4hN]:KuN)3PKe[b9OO fi-mac.map.gznu[+eYs8S}kS>$xfxqQ$ds- IOLT,ɱ C@4 "YU_==x TibwNn \Wn2~pxBR$)e_Tٗt, XXƗh:X纀|nυT>eSԛ߬f{Gx?mx3z dD)%edL]LYY`02ce(),>gźtϓg]<cƢXErfq ,QOj[2e0`djǪX2H1e!Y&V$w,.p \f,l$9fB یe]iW>1;՗N-N֢h-Z֢OZ;ѿcr)<;,S-liDcf#sY= !AxB=ԃ:Kje4إ{dYzzhUheoz'=&t鋕Ȉ{?Y&Mdr-'ڋh/ڋ>m{X/9孍`$ٜL޷Wu%kVy#;SEyuk-AK-yЏ^c˧p$IY4bR fZ*&NܖohcCd "/7f<^51w/x 3-ľPq0u&/'e$_L$GKx[G))کܸ yIϥTFNJ/ MxW_mS S\siN|4`GR[:4C o}M]_ #`81WەrB0e&"(r5Awto(Af ^._omS S\siN|4zf0(hx&rfvB_;4AYNվ&Κ.JЁt4fSGD MDP6˩YEN@G_`q:Tzxx^r)~n: ܡÅ dz G04p)9K͘Pth»h}M]Ҝp|G02 E3h5MP}Tk4̘GY_i$\fyJV~Y j#jZuZ4/R%M#)W*4/b2cefّQLzh+я]@X.B6;vo5i+T6$$I3fO^ӡYhʐCWRh}M]Ҝil8#`H+TTL ;UJU&B(qf9U;wC2+VB)=_A~+Q\|;" feV$f0Mo%1RI6kf/ TgA&T: ^0~s'S}zB}ߡJ"EXJY.p7q6p pioѤ ᇛ6˩).&|4oSLIi(r;`L͓IfM~3/o  +(CʎUFϔg5RRg//{/ Wi>r=ׅ\囼*o՝yoNʼRw zSnLbfSH%S!ܝCwǪ՜`0(1`2`IߌPw#w_:4AKq[[ g&H/4b;$f:78 vh",j_tgMt; ~fH=zOmS bC :Н??KL 6˩YөҜt; ~fFrW%m١Jf9U.m|G3aDk?N_ ~9޵Y:3g,-`ӷ0`grjPNjF;˄ϴX,++b^,\>|G׃g gL%匿**@bvʼt4a6gS !" @2۾Ya`\Ym`[oq-ТhFGhhX;S |/oޭub_n^m-W?70`> |ċyr7:Fǰ] +@2؈GMπ~U7o*TPPȾYsvc~4[0RjrroW" ES|fdTT?n -o)5]-Ng^juoRQSقɖRv9*B@D@:%ytU&z-Z r/UnuJ>骞uyL?i7[m)jdsѮ"D@tSbWMWcRalT]Ż-Ng]5]ճ.I &zRro"|fDmDo0Rձ]w! "[DԽ-5w-jubs]EQM_G(ajG+qq:3 z! ђGy̾  H9\F|FuZq}W|yEUmοW=v]'5ަt @#48 8hxr=H&whdNJ󼻚))wK+ھ;# œGoݬ{]|^"ADu67K/L*Jq,3<3_be |(>>B߳^} "]>7K>c(|]UK~1$ y$4;XLCHH˓uYW%}Y%E}?;E]]Lb\'poYRqDpDpDpDpDpDpDN|DDu)oLM%}{͚Ÿ濘?H^fj4} H/ Gnl:F[oC *#hyA ei?Tu/oAR :Q'sPKe[k8܆es-dvorak.map.gznu[+e]Ys8~_/Qz؇\d6/.5%:$뗸!XRb FhޓE\L1rr]M%dwy.^2ee2 2(s{ݙNz+Syxw8I(ߪ*> ȲO500SWrU,sՔc$/Vs_D~]td k^岙e |JoW(ƏPOr\?SN:w!ɲ$75||§Od2s@ ݑovz+,$7LGܣb/ ɇ >%1ﭦ$u^Ғ$٪%jbg6UOR*u"ߡjcXnN D'篕Z)ᰪjI/^tjIdU9j:Ý?Hxd[۲Esԣkk5}kb0LkI"ElPfH]Ty/r$@$N.tz\'/!ɆYxxONtUoI`m `=\$]OY¡dU$Mcpc(;G\㋩[)'bdU'0, g( H5IZR;Nt!_hӜS/?}n''`.A<4{M%e= p.2+I& %'*d>7$8A$tt'.+@tG@'tiȩ7ՙfc1tIX%qzSt2U2h1H<77Qpn8C]e:V3'pI |w@|:*4\=_HmEKLNJ@w@:;:Bf2/2?m֩'3b \'%qNJ2Y|$2 [dхB t@wt:lQ'˄|;|apTT'u O.גho+v8:N:qN蛆Zi"&}/S4o',:g% PbiI]4k0,7kz9zB͝@Utz1:콢Nte=?AVMŚZ͙L p.2+$lpNz\!荘Ғjc1KLNJw$.3)|ħ^9 t?ahgD6" VtIXN])@tG@Z) DLoxX A~wIXk\'dW_BN(wo^pK'Ođqixz0K!ؕ.>.kd I\g>Q8O'é3M utr}XA>$tt'N)J#/VOdH>)l~ep, $t|gO8spN/S^ g,8C_]e:V35 |w@|:o߈]ċI~fBr,ӱ":< ˀ xw`x* QZF^$&M0؁-ʜz6 z mki]ۇ;;݉Br#M߄/տYIvߔIs655FS%zj5:΢,:KW]}%ʳ,`P+FR\I,{v Jg~p^`;~{TTT ,VdSA|*NNNs8!#p J#a2'uU5qU6 (rT}P1z]Y̌g;J"[X(A,ӱ"Н4S(莀N'?s*{L6Œocqwn9J#e'Lʍ>"`́ !/.2+ 5|G§ZYMj{+"odE3tS+)b;ߐetc1y,ӱ">.)JV^4Rt_]w.ICw1I,[0&`AJ(ސe!ȿ\e:V3%eP})_݋lic1%YcE;|\R>; > OQ!fp, uIXO'kQww-5'UvW~ހ({5]qlq/X.rUqyH22U b#6b4tF.^{`{DV'c:CeS`AܣUۦB@D@[ԽPi֟vZŚzߦB@D@[%zI15ǝqwdSOTh3#/mG+S6" *=( nzfy;BG+S6" *=(LnzfIw[Jvjꩿ6" *=(錵nzfaУllꩿx mtf%}D`aأSm*D@UzPbYo [d禞oS! "҃r&tc7~Blv髡iV4`*qqWf:ՂOR Q?yJ[  yHTr錦ʒ[\UߑEU?r-ͦUd<:N:G1/}(6dxdE1lfp p/Z_3^Ц3C a*NT_h缠Ml< U)éhC~^ҶNv^jw Wo:YB^ ![ Y>v/ڈidV# Y>6ԐG4 8}8_/\Ujhv *4 8}8Ul/ZoV# Y>V6 *xA3S8݇S}ъ_'M'l< U)éh/I]TWp/}z@@H'%:cmҴb @p$Aߌ;A a$IIӭ:Q4 nkO500SW..}c}c`1pwqVg0F[O36olـnO7hU4`*qqW foBZ(Qa\w~!iUqL^3j$5( N81蚭S&Y_8l{XLw(nʟF]# œFco9={]}^@ jd;/|LjS3<ӳ=eCc4ҕ\ȢD6!xGm N"]sΛ%Q?yJ[  yHtro^U˶{X=?jh$_M꾺$v5ug&x ^/wroqu݃whut%d9U;>ť9%ǝXwÈdXyQEVgУ,j_t'MFt;w~s%f -FyVgPCTk"PtG7L*d%g2l١9r5w|KsNǝg:ÉӋ|oBA;C3Si8V$=_A>֡uS).)4'w@> L~`R /x;_mJ$dme$Ё T{|e_ hx뿻Π/$ȋx5m4M&nl`.w-TCEVPmTk lpw> ͷYz*?O^S캖XiVo~kz :5sĥ<6ӞT6Q+Zcǁ###i{fO=3grSomKzFm{c!|wX7F93v>+Q<ϒC~/_?VHKk:k۸(E>//x ̌QNQL2I-gV'P$(\٠ 3cb F0~CF,?Sޖ _::&q g&HϞ4br3qBzC3(r5Awta`(A#qgf(H>Y^JO~ Jd9U;ihh(A#q3hG}b~: Jl}MН4#)A#qgf [3#[oJd9U;.m|3atP2Q_)N_ѱ,sR;g,-`0qgG)=W+ɘ$[}u4[.'] "[>|ם!M~h$O&I˿Y!Iދ|Mu6`VP %w*fl+z5yfhZiE|VwpEz1{=cs9(ϻ gzQOV~`̲hY˙&/%]d{L[F֋n7:UQȍ͍]4U拷o*TPQX|Yd qm~tq)`5kmo  ]iC9үV\UX9%xje<  ]7J9R6UyꏪLZZ lls!!"F)G^VMm^-ūx6"!.nreT=URekj52^ͅH)vY5UϺS H@򝓘e$G4]yXP;?.bUbsu%!tv;N4iGt-)(Cg5@PGP>itҾNqmG6d;l&<*dϲwg5@PGPsҎtTM}v Y)AOZD;BnXSPjN|Ҫ'*v Y)AOZD=}nweO+@: 䈅qQ^y80`Ƒ 1ö8sEN&qzW,VW{xBӘ7Kr̖XZc? yťo}z|tV=ϮPGV5{yy1kȏDȗV[&oW#Zȋ伦1{l)PFu6犿7E<$YO7xZ >mm}>r՟CȄL'j]rN[1+E !.6u6)7++ۮ# ҜFoVS,Xg:BX![|)eeWnjg''*D^B@@|aF9SXfDQ8߱^m N"i]^7+9b(r~e>S H@p"`'xy}.DC2]CBQ6?aTRU:g`_kf n&v[#######r#'įɚ)W{zp \Ь*iEcyVkOfDy%?,Xggù/0jE*TPZķC wP|uS\źXNjf?kPKe[2|L`cm-french.map.gznu[+e]rF+tbrCo=lrQ`)J{jb !Tf֒B%@;uWz;5-2v]Mly.2ee4ǂ LY&{VV*bb..7,hb_M&M U"tHe^mEmyhpQ^kUuh+zKx / $qL(.j%s[2x^&{qj!)FjbkcD" $~ZED[%ϋu)Sy-ŬX Ak!@4@ofbXǸ %9݀K"0'F(XME[`Mx4&&NtL$ z|Jy+4g}5T^^=ld!9A;ԙؓ4TpB"/$Pƥqc(Nt0(Q,~o0p‚"$gUrN"0(6X#F f"8RT1y&9U@wȠ:{tfIWQ[.JubSp‚"$PN]@tv13',7(JNP6ɩ:T3pi |wD| ̰Lc]}o&ǺƑOT*If%#~GHB=mSut'. JG@GF8Vq:TqZ}Bۤ;0whs̘l{Ε1ESI E'+6ɩ:T3qi>;"> 96RQՇՌ"p†"$Pƥqf>;"> |f*r싔EJV-*W$#4B#4B#4B#7INv:8omnت6ծK~O ?)rNteaE`v`v`)X* LRDx w ]h>Z%$ԨM@,3l )ML@3|NL~i6R \INա":< ˂ xwdxL*:C@hǎ6y&9Uw4.3|GGfE,C51Sϭ1-[9 E.$P¥qz1Q0XZ&؛NP6ɩ:T3pi |wD| J ?os[I~jq;| qi|GG{@%̓ 8𒋷3bI6i NUt@T@E3֋;T5Pz8aA_$U*:M pd63KAIͯ i=6y&9Uw.Sq|GG93ϊ&j$9CU)޵I33cX`0} &B3c>OQ i\=j {3fV69< <3ՎDQyn*],ּՅaQ/mɪikN})sxOsbWyygl^G2$VI뚕nF 0׍+30wLi_?pš"jCE;| 5(^RjA$% -$7%@"8͆@zHA @RpQjŧP$_Zk!=ȫ6ɩ:TF%#gfVM&Ѹ菼TPS',(GT*I%#G3|}1t lCE;it]'G t@( & ےuU'l(kT*ke#30Ar`0ߤt]YNr&3^ja%-X׬zgݺV`V`}FX)G.s7h4RX3TjQr5mjQd\FQPuP%:T2d>YB]qu{\9<Lb,,~@Su7}Ix1U]ppNsGwJu^/O}jf`f`~V5"qAD:8qK5؆m>m|D﫺^-;`,c>k>*rvm~tqɏ`QjrroW ESHK )l`QjXw  [D]rsRv9*AA:%xtUzsR͆v9*AA:%wtUz<&֟5֛#:J5\_a"|eU=`V#;J5;˹"AtSkMWcbaQى]Mv  [DLԽ-6\tW E)KLbV9¨T3*AA:T ho}B!6иTȮ 4ZY `ԙH_K9T0|!C 3Gb˄hJ"e;,ʯn|jUl3ߡ<pN'OdCKv|kjNPztʄ7ZH ՜JJ E; o:d'z9 B!EʋjeO&\gN"wo5'R(=RsNGe›$Bo5'R(=Rh@&i`N"-Vs(C(V}Ʉ7YH ՜JJU_=u^EfߨN%>bm\j @H݌z3TDJjZE~靵/k)~䬪$wSfe:oӁ>'snVbϻ}%N:J5yvj/]؅ۥ, +XMӎRcƷ+VV{).>خވX2$HSb]IfirQzOMs{`-Y{5KKz<BqZW3aqs[f`4X}pa] M XWX}ceQdw15 o?*V ߁X'6{`$,5S.YC.[0i $@$ i z~z늵/Kߵ'Tn3Q,ˤ-:y)nM/ggggggg=%_/>-8RekP z8k ","= kz H Gހ|jj8ú& Y+{\e8p1CUMuWj?B#PKe[#latam-colemak.map.gznu[+e[w8S}Ϟcn~؇efvg{;3 r†4̧_t-YCݱ4*$~ XB7mrWM7kZf;ٛ:M;${.pk@7}ee2 }@ #Jel͓LcUu~}F0~FWF %1Ӗ~J4ӼJ׷۲r((EUD=QOD=wTOs/{i$""[deO U)[5 &0 LnWźJ)T2d[:wv\l2&_ /$:JSoKU-Nsx:cЀ4=qs$ Y&˯UbMlaq;&0`DK 8x T%;:wЫ|eY9_2=jڣ=jo)9թOşRuRPsبzYN_/߶t3SG}5o]kVia|%n]'kV7y^:SźA}Py3J%eʲ(iWݠ=bɱxw>OwkRgg,n(8G~Փ2_6'^"]q@gk"Pt/6_c8"504AuYNѱ&莚. %@w:fN q.`D%λ,XtGMN %@w:okM>/750w.):QEC :V'?J %s5Je9Eǚ;>ť99Gg:DA/Jgo[2mSI.k( Xǂ.|gc㱨M'*T4kD%vYNѱ&NOqiNΥ9=Qgw{<t>]St "C ::t~s,| Ph"鲜cM5]47tTC3L+h졽F.ڕ׵OVKǻ;^@QӮ~0'V>=Mbw&,OXvM3AyGyG(O7b"ѷEroXUe}(&nNwźwUy}}?t=aψum#M`{I=vCBB4A@3"'j\넩)ML4@+ŋ.): i.͙N 'G> ͌W|9̕ꃪMDPCk"Pt̤d M=J\tYNѱ&OcYޞbTr>̀&b([k44cNQghfTNdf.): i.͙M 'G> LAKoaGFNOqiNΥ9=QghΚjh9v2k9۫MDP.):QӅPtϬ5UD 7TҬb6J鲜cM5]JЁtYHZ&~­?wY+"NsўE4j|f^nJɅdpr@ޕGk4|;( ÉE,'F E 9uY/:M&w[*IY 7zMӀ\:aOw©|ijEKRI}=j:XB&UbNvZjZY-/y{D$Sj ~h&F-*nH{mYz5\6h"cMҜKs|{xՌh&)hTڗMDP]St ft;u~4I}$T+Qot@.):QӅ@GtFSO"044B?,XxǎM 7G tR }vB/4B]St c }íQ'H34Lؓ^ h"tYNѱ&NOsi46LgZ9u,>3 jUw]e@l̐D I@N&K,<3-oo85Ӳ(W;=QgPp ߁藍ۻfnXfv 9PgFjұCzNˊ=~|@WkT`?jڣ=jڟDHO;gݺhr7n`eި3Y^ b;IXM`UsP؈{M`T˷ez*TPRgGҟ{?1ũ. vi~tvη 5{|o[" YQNsR!Rin'רv>oB@D@7%|ΛռIp\v>lB@D@7%Q{6U6z\v>nB@D@7%z6Uz<&՟-zr_- ,j|yT=`V-{r:,D@tQkmScRnaГmYfQ##25oK 6zaOVgv>7ۖn5J>B?"SԀj0۲͢F9ڶ[?mxjhړUob]ݹԘH_׷rQ(O9$ 3'1KG4]UYu-RaU}E4lsw>tT@%P Tbt|X&>[<.$p pJ//ڙL3va))]h2-IdbNp tцX/*I ;zݛP} f0SoYo2ABvy;,$p pJT^Le;0XINw.X^SC$2`1'S8݅Shg}eZ8G4D;hy2nFjq0]@xvu"."Mσ? oXW#2jp}Py_e? s{ڻ#Y{˖͘5K+z< f{LJy@ʊЃa#Պ7 n.? Fu5/X/~L>/+,&gx>g=>Uͪ5|mb@ˍ=("5W]z#we|7&0mƪPUǒAY:dCNj0cIǒPgRRnQźZVyR`/x1cQǢHbktcWc+SwL`f* R$d6։TeJV.p \=X6cӟ 1IsOյ =[)5O$e9׭頖[@Ѐ-hf1n"Q$?a~lvq>M`|lH _ u;΋U]W BZ׺S^-V6UnnƠh=Z֣hѷ=?B~cQ?sˏOVgاuSA|=ڋh/ڋ~җ1ޘLHngoXj Ē>#~Z^6quLޑn49lsAsМC_B|\ƒ*IM^ɽRS-z(^7w͟@=.9| ^GK1[2۸cw aL-u?g‘0n~:IJ%f \<dȚ^͠2VtRz$=푏É HʐOTG.AGm:QӅ@G\ jV Tӽ D%>YPtGMt;}dP!Kr5 NݣJf9CMҜKs|{3a~MId`D%f9CM5]JЁt4+c{I@ |ݣ Jf9CM5]JЁt4Tl9fa?沐69upjZn{U2%)MDWm: i.͙M 'G> #H]D)9W7V3pףJ|hס&NOsiΌNo|4TArdHXɪE_*/x=+K7C/D\WEIGs]*ce%KZRլ\Tr늼~-EKR-[K˕duje M`{I=vCBB4A`f5j'G)tHz4y9+ū6qj4Lc >푏C|RzcȃǦ}գJ\YP|'\NRG> ̖XA {wM֣Jiס&NOsild8=`H3]ek&b{r6 y&r(qf9CMҜ7G!8R/i KgJu&r(c5w|Ksr. >푏C3(VӡB)=_Avn~jqAҜKs|{8]QUB}vnbs2R΋]Q1#EIw)X(Ǻr#!'vI_֡ &Dh"H,*YesP}`/aZ3E S7MP]5w|Ks-0>큏C\b5 Xr&3WW~3ahf0PʃE}QvR+9p}Ʈ4.?|WXYNp V|&b^Dy%u@QTMe֋ߣV匕z~+,n_~z2031jݙh*f"ڣJr\;jhj(AGk'#KPK&2(6qj颉@GʹPZCyRjڣ JYPtGMt; ~f&X=_t&]h"YPtGMņt; ~4B/.-zGxf9CM5)AgfLz3}FD%~mס&莚.dt;"ZC9UYdq"W 9\hL/I(` LDSL䂚xc˥ZbEZj5'> }=g D\[3-XZj~`vP /3$BLHL7Fi^p|h;؏h1ZϮb2.3|z]ruYh`3<4 |fɫv cӨ]MNkv:;.wW*TPP?~5įU+K Z׮6U!!"[e:e̟]!9MeZ<  *I UM?nMV] ЭNɟxhGRIQGVC 7U!!"[E?1ztUϺ<&՟6ٛ-:j<^  *Iz1Zmjlx*$DB$tS'.YǤ^ VcoBB$DB:%2_"So7[vjubxMUHHVQO]Kdޖ_-:j:y*$DB$tSNM_[(a4wj"yy:3R>*dC 䅓e̟hL"ϥM=[Wd׋feNjpw!>t4@#4bcYe;ū*],ݜAtAI;?tbN!39".Iȓv* ~ԲBfus E]6'zVIZ?y7껍f03N`ʂ' -)AS ("(|%^|qIGI"yytfooT, ߩF~?")*;p>7T>/vx9\GLtęҽczH%< EƵf~ޢyee`AHc"CUt7l)>PNu67K/L(Jq,@dD>dd:=>U;7vٲgCx|K 2E&ӻ}HoW!yY-(O9$  'u.4<=i]ߌ>$늵KܶW# rKUg<])nMn7>|"D'O]WY/4֚# \Wf=K(OzkJ'PRo#݀t7lq6f ΟB Uk4Vl|`ȠA\:[W$ tPKe[\0::ml-us-intl.map.gznu[+e[wHS}Ϟ#.>IfAf- Pϧ_Z6 1sBWTZ , ķ䯞po > # g*vV$j;Dޖ2Heeq}̾8ʃ&Ǵz=E_E@͵xő+.\rob'W2ަ'L.\\8<%W*߲9ˮ++VdI+@ JPSNy:o.Ex;m ]Uu 0`,=,哇BIdo'+r{Ad57%C=ʗb3e}*M&JPu1z1]E}_~coW:}jZw,`yV,ldl*,^mtiµ:/x gKɘϞ-^ı'PqaL|_-TI9UR&c&+&i4LB > G020RRӥbbp>wh"j}MOqiNΥ9(u2M d uh"o,i_|#\3YNo@>J sg .WhCd9M{tSPt@G+OLSO\ lաJd9MҜ)3߀| = mTUsסJr57>ͥ9p|Q2M2TO\ :68MP&i4Lc > G00?/2Sfť99d85M픒rۡJo}MOsitf8(L Hx)WI_,Ux88 Np>1NJ9S9+?bSUl֑;8{A-ڽ >|6lg]~6tgD}`ծ6 }CM`{IɞR!!!'M2 Z$ԫL<}eܡċ&i4׌4'7 %C_}7C1h}MOqiNΥ9(P35g5s#04XMPu4ko|Ks > Gɐf@[D %Λ,i_|#k67 %C >C1r57.m|Q243fs)V]a/&+_).ɹ4'7 %CΝGJ/T!ٖK){ue/ \ψ+yu%3Μ^EWéon4o:4B_,i_|# 8=6dHQuzNu[ κC1xd9MҜp|Q2\Ay3)&{ϒm$_[iZj>o > C>$eqz'I5bV2+In'ķyYgk}]^t@?x~"`lfn2ɲ$+ݦu'}J^'wUqBizޠ7 zD{C>:[U(QO9їqrS+a,oqsnE_}qJ25=,MRMӴ i.͙ '7 %Czz4dfDDLIZK&b(&i\|!͸RKJ#^HA'ī&iݳ C :=%?3C+R[C1r57.m|Q2Z[D %^6YNӾ&Fmo@>J )JԲ)D %~m}MOsi3߀|&N?z%S#LUORkt_PI(` &0`Rs|'P_F2gu I٨YY<=Ok3zJFNFrvK%$qm^V)޲"JsW+V?/ dt\Q""=Hs߲Uէx͒Py~!(Z=ayF"66:7y[(Qabnҷy!ž ϏnOy[|?>B<~` "=Hft-ԺRo+HQ9$ wNBɅJ>i 9>iǻ5/ 4hϨ=]`#ҋͲ-ѓ )|CN'O>|"D<'B7'j ٧6I_ l\:4Ykuc8Kk4_۾@r%* ƻYg g7lZ *TV6\E4hоc퇲*Uygr?D3cPKe[}RЀ it-fur.map.gznu[+eYs8S=Uaryfvl<=^\ \SCRN2~ 6.ѤHٔH ?"DSxÿmq6~ߢ,g_d.pGc[e^L&S Dsvt̿F)[=6,`QScKIYY|g0,ڔ|`:F%#&+yd3cRFnw ' uywE,GŢǚ@5>|$¨;jlgir j, (E,#ɝnyu9N6&0UzjJ $+e"J [U /\zX6Wcٌ8ġe-e0gOl57 4 hAcBqsB!na0yru-߲nx#85 L``5. y:gugׄfkYkfzm>~9~޺kv gqGQ_HeWٚtGU}ra9qh>,'Iq8i4NٟVK\z:)G<{S^r%֛ԎmVTo] /$jr~T瞮 <H{!@8M x%yY-SUG'8,LҘ۝)@۠m6hmA۠m6fG,ܾ?.n?{Y]z&x ^ *YS;8sqLg83d@ m=lL$X-Am.3.+Gp;\.o` 6Qu \M :=?_"#:qW:Rf55w|os|OgCG -΂@|RjTj邅螀 ~ꁔK2daoz:ڬFա&Oa)x;8 })|/ _۬ 0wx*qu<}Bʥ[2ؐhw)f55w|Kqƾg@y6wSR.H_n{:ڬFա&NOq)ΘkN|f0+\Jo_j]ngӹx_NɓF4)H%\՛\tAxܿgLH7i(y7['-F+AE"hZ--bnNʥv^h[;vwf+d6$$I=xzTn+"O\dG\/۬Fա&NOq)՜`hV*yW[)cڐ4Mѣ!hU;vɥ8gCrl~'Xzzig5_rRj#6k TGA3M*P@e/ڕEiTWhu)~#V{ahu)M*y8l ғ'  }fp5+K9~-x!-4Yԣ!xf55wxgcxOgABe&w;q"s sףjTj邩螀 ~fe0tأxf55Awtr螀 ~z%TQKw2S/U7˦=ZCYCMmN÷ʧD)ӟa M_^m狖3ͦE&0cJDqqDmJ^ijwV%_%QfK NpqU)!x4#(xM6+=٨Vy*TI `f5O j`iy#f󼈲?M&@ h77 >P#=t7iܦ߶_םz3 eTof+w^%>1L=뚴 yPڳ+b#6b4b2O]ˢPB sGEKKusf:.*B@DfS1ܭ|Sɨ*>޼Tv*B@DfbV6;*WoQT.]E,2R=c*z'JrU"):QENGR\ v! "`tJ1Sꪎu{lToR}V(U.Yd:v^uUǺ=6Tѫu*uf ]E,2RL:Ȧ{[Vѫw*un ]E,2R;Ȧ{[' U?(U.Yd:弞N6&0Ufqsg"Xl \}YGRǮP{KqqMgmcfQF&bSyGjVV{)".>:Dnƿjj8yko$Xt:\"E$D:HVke9$yãIb#IʣѢ ,U渿ޗuoTzYn*-4c[6Τq@'3/ֱo&i"!"ElF.bkXt(dF؂5~JLznâuTi}<VM-zIqUGljtAgЙ333XR^9Su|6Yo ]UI[?PT,UqBD`@8+#4ZJ*fʊVf}m 及<:Σ<:5:Ssa%)3ǖϕqO靾^鹠=055s+]9New͟)]O/dUf[:3g'Y"*BRDIS6+q ,eLW<ޑ~XaNOV_~ 5kC |#L-|Oؤs<ίFtEw]tVݥ0_anty h•3ZT/x `W].vn(?'S\ƞ,V^h D:֕xJuL&w|KsfG00QБW4MP⿮Ttl|g4gNo| 8R{*Є%^RӱIН4]JЁtLPEHGhĴЄ%޹RӱIҜYj8=rJ$TJ.U<)67oTtl|g4g 'G> fW2WJ.Bz|Є%JuL&w|Kqr. >푏o\.TMP+1i.͙/ 'G> kܡLٕ{h3~G14q {(IOM?\$΀OqiNO(F2M9%Rro~@>xJuL&w|KsGx_p[L竔U^2)?ST@T@T8 t0_tLuvq#O~|g4g>5(ҷ>;\f :^ْ|"w-GuB\GVG2o<+󌮲o4B_\$΀Osili8=Q0ouJ4 Є%^RӱIҜKs|{`hX%YM\"U /޸R#Wrș4fc&0="iUhVn,?#HM0a!ڿgUv27Ug̙R,#, =qR0Zs",` fl<44$pUA5-Zj}Y笪b#A=V[WknGw9g2.i mVz$j^v|Є+%JuL&AwtQb(AQoؑ|B҂OĿ]$N.JЁthez#M(onjEf Wc:6 C :Y 9=|/ijMxPwWc:6 bC :U%c g`sWc:6 }C :oayL'įTtlt'M2C :hdeBBݏ'/Y*S)fVݥRcfU :@2=^,$D{`T'E5[ee1Y*]EF]N %_%ės)hg w]<9 FfE'D&yY&c"o Ѐi(Xyi0翼z)}yK}z1Q)}FVK!0q<D gE|7cH!d)6y}H~TM% {M|Tev *TPR03J/_re,Տ&| Rkv!a ʘt۬H㶰݂YOQrޞE4( >TM{J弽`W!vhPjPhx[?kXT] w!a%uU:=&՟-zJ弽hW!vhPLPcRi{Xm)jl]Epp-AgR]CճNI {AOV*C8n J>3邟"o[juff[D4-5w-zJ:y{]Epp-A9ڱ[PH =5j՛E+] _3 NN2 ̑?F  Hh̪(M +RǮW;aC&mvv}:NAÓ!c+[4l2:p/Lx3iY{UgSY_csA$d.wIlQ7ҟmLe}u. P͢Ҭy/y >5]0z7X(wP-TˠeSY_csA$$;D$mB+[ ugSY_csA$$;ބ[٢?ۘ\ $39HW<//6BiF4p _\bOxc`eа\ű0d6ė;ބ:V|6:p1oB̬lQw?ۘ\ $jTx]deΗlc*pql.ho#⻷s7$e3<=J[>+խ[  BA0y͕ZH J(7ϤW8"Y&{խ능 &L`l VG7LX/n0)ժE+] _|m4R RYOqE+] _ fo'T1F;믑?y (*\]Ӣ u6Z~4VW<'kt񵌯ٲ{ɲn8v~۵wזV9 7(7b_slY N;kof}|QV,Y=-CL_fU 5Jw1vc<'3P|jQ: Gk$ 9r .֋rݴ'됐'x~mcbc{؟=`\嗟hT5piv[i}ǜ/Y$V zF诣Uݰ==\\=|&|<'g tFʮoXYeE:ll溨u96pB'el6z^8Ϫ|̗ef.뜌Oˢ'*'r(h4h4} ncIȱEOnF8Yl1/\R3F٪vk _  S(sMz&e7ɳ7WrV)x0rsi;xHCڛd+ o'VӉzjy%D@D@|$mL٠9{ v~"z>27"yFD^6/۔QH4D#H4~iYƧx T?*ꉨھ6S'J$I)bZ4|]mzSQ)[ îw7h?ڏh܌ہx1WikMx='D(pIpIpI{Ir\\\\LV v2G<c9dKGM!Osm-Ojm .X`O(uv LGs:YhQ!_˫' ~|3wy׆;D҄j 恻ra7^Rl*j=j}梹h.梹?#M^6n<=xVu_xx@R2[Qw ơ4/0'a24Mm'+%Y">K4N=dd*I&^gIKL}E;htI֢:{tڅDeDeӋD KL}E;| qi|{Gp֎CNaFF`NDPKL}E;htIآ:{tve+ȒI(7^p""$W#pi:'Q2lWx3Z4W{'b(odw.8a&C7|!M%0&NPdw.8auɉܱ$ܳ=g)ɯ.g!8:.3mgP [5jNxW.2)\'ǥq%ä3Mm(z!INji 禇1,S_ƥq.-N=d> IтesEIyXɪec0~4cJ֩J֑6H$I,:ۯ:#_՛r&zu="%{A=>&VU K.$4%s'ҍ"pIt. Z@tHb_ hsꪇ9sItN-(%vD3oTw=ȉKL}E;| qi|{GɐfOhE9M:D EN]e+Ӹ&K>#>J"UղyiNi'NPdw.|Gɰ]a&Ǜa>Y •$o\=?|GOR8.o(7$^bc;'a8z\ %ݶ PYj(y| b$ }S'(%Y"4xޢ:{tK|o8Y9E'"(%Y"48oQ=:J~7&zڿjl]!]9p0=qLƶYL4DlU<ֻE<<$:8L~e.8hNtź(n 4@4vQ<Β:C$~_$^EbGk@ɢrSNB+OdwZ;S8!f&SL4~DE,S_]2mQ=:J~4cYmMPT+cy'"(%Y"48jQ=:J~T2N [ =p""$W#LLsk'Q2Сߒj`Jӵ=Kdw.8!͈֫% J W=o.2@-8M-W#?(JLM.Tn}Vԗe~Vm +X͔JNYtunϋ|}}:oayêz^nzMD܏iY Y:υ٭/SӨ+xמ iS`^Մڝ%{lKw c9ϳ?3 qߖ y~ýv-$1`k7(-Iw|x3 -ޱ@3v4_zI޲+oUj2nװ{ϡ簊U{G{NT|` t;DF -γ|S+̾ѫͺ"jXSŮX7\Tc=%P'L"S#tԏs*jgxhP2K_/rg,/-/kש.HH8J.16Ay%u߰o:Czf`f`9%t3=MV!Φm%7؈{M/A}UŻwX`}D1_{4IJj]s )?C۞56" ڪSNlӰ9Q6G4жm*D@U)LSUMl6:L=mS! "Ng6]5mᴉCs6" *|iUcxLl8k7Gth5z/٦B@D@[E;mj` jsaVSMVQ3Ncbqԡlj깿t muJ>3{l6ћ#;zoM:%!vʇԽ 6O#N:zoM:TLhjhB!6ФC`l)qq:3 ZNj>@$@đ%3r]j=^%].]:]O4@#Ј@OeRCU\Y.Mʛv* ^ujV!#Y.Mɛv& ^ufV!#Y.M˛l3,oIv([o ?gzdfeĆl*NwnډiY![kfp pJ7m*oډ,xՉ![kfp pJ7T޴/ Mxֹmd=!QG7/wUkfp p޴ӱiCY![kfp pJ7zɂW *d^3S8݅Si,xձ![kfp pJ7zA~9p8r^^PQR3eU}@$ЏD$;D~;ϷG= VU,YVr7 Ӕ/A0: }-Zi <ZE\}p\rYğo*<жaB@x4NmgЛ5Cq}rq\eEum@C\zYkS]GHtlcOq8zV_ݯ_nϻ?./+#0EA䝬PAq7ٷZOץ%s)3_be Jz1!xoDBwO jqއyH]  yH('X֫5чlS1Gd'G {=4z8~=ozs>OUUW{ ,X{fl&RER <Z4ҵ(ͥZ}2rIUVlUL`ͦVu 3\ .^嫲:Ͳ4+Ͳvګ%/Rlac6a?a N~<b'eI:Y|߁L-Z8@|T ґ@e!{GsW y6}j<"2[mRm1Fc1Fݍ>Z+9`&Č-~Mփ<,H~#Xbbf Vz2IK>ug&x ^/c d `L|_ؗ2lgMDWuӵ 36w@>*cS re>wh"}M_ Q1b8PIZ:4C7uӵ 3S\siN|T 0P[ݡNCPg9];i:5)8%@w:g_#qMfhw*;4A,k_t'MGt;?BV;=vh"}MН4]<5xֻm:4C,k_|gWåm|T C󃈪ۑ~+_Isq 6}h2Ff2ިJLOLm;4]YN׾&΀Osip|b?*Lݜ3ozMP:pi|; ClE-{ISpi|; C̜'ٲf+vؼM'묧={Y:!m \{pQ13ϼ黹̶l}BxߡJRg9];.m|bHϼIdeȡ:pi|; é@(oY&;X"-4_+iZ`|;)a /aBϗb|]U؇;M^lq@/x ^/c_'ĘI2ObdfYfٸ]-O*b:]y׍]a`ehTս"$e;84Cv$X6|زFf4Cv,ڑl#v (ډ Ƅ1aLs}Xe`=gE41t ^AD6{yw4m8JO&M`wM^E^;̾)_24hQcwgyR̯Uh}}m" }՟CȄL'ɚ]|[vSi^/{{ظޕ;?l4HsiYĿ}u/h?РFu4;X/>M q, 2"32>_j͊k6|2qALt욪.Y+]l/H@gNBŅJ^i y~:O6kVӾ,Xr_Ӣ?Ph<_=.glT5qZ kTbxG;wޑ##trn:U&iK.pCUX?hўgkkzӷhўAK!g^sYGø+zPBz`ժw g.luH&YZPKe[P' nl-mac.map.gznu[+eYs8S}kK>$xfxqm)!)'OLT,9 C2&KZf;ٛ:k5o2Bۚ'+}Nx؝` X5k|!‰-ߋպUTJ%nzv "(ԴP@R$R<bL]&F002}e(HR>u%,x@]L`ZUSWE2Iv&,ӭy2b~z;Vlg7&0M_5}TI&W媩2ť99Gg:Å}o!e@Ok颅螀:?t~o(z@r5AwtQd(A'/0/DT?~Z< a/?wY^n… k G04JSj.eF+?,X|'4g673̟cz[MP}k4̘G XkV,-Yfy*Vrf2q֜XV-.ӻ6P~NJ}:x ^ /ukjY&᛼Ș^D+W3+e2%Hƭ3b 5j-m#`;^:{>K톄<=i:teI 3&)̈́4(r5w|KsS >:CJfrfeEk4 <:A3i榆J^0yl@1xe9Eǚ;>ͥ9G!̀RؘP4C.): ).y)3hj1P/(Iď]St S\siN|hS5M.?,?uY_ҜKs||fw`"x|Ů˶){Yr cC*P큊:/ ^EPh"H/XUǫtka \>\;Cb@1xe9Eǚ;>ť9>T>:ÅZK !놩5uR0c|If<-r%MK[v7tDuL _2yWR5UPDʺݨj}\ ˒‹ j&7 \&j"=͔Cw-z< TK.+qݨ7zި7M7s3mF%F|NWRS?4IJQv5瀱&O1 + o(N(`W|D%-uUsX'O 1HARJ3Ԋ`Z̗baMDPUkPtO@Gy7SDӖџxMDP.):QESC :=u~4W/3)N4A]St S38%@t-LWal}j@1r5w|\g:ÈQ2~yNU#;uY:3g,-X`0Qgg~]>[F9=m>rT`w_,`QPgΆ闸 DWI˻fXjW]}mǀ ` :=Ǘ @fkp݉(kV7 nٺrf' H@"Q'bn.N1꿼|.>_U߯70`>u|v] 3[jM>XӷUsP؈Mx}T˷ez *TPPΘ=VT?:;[05{|o[" YQNHsR!Rin'רv>oB@D@7%xΛռIgmv =Z |/ؖn5J>2m5oKmv '=Z |/ܖn5J>rmxLh[j5h[" Y(Hz1[jujsmYfQ#ۦYǤ^ 'W3;mB@D@7%ty[j- {r:,D@tQbWv \.|o- ,js1xm l󟆦=Z&v՝KuCG?Fy̱  H9\f|DEZE!K\ܔ.߱eY}v .a-*J{'dC3vŜNtNE; ?tnN"# s8}86B&Ѕe;0XIN.P^뤩й׽f0gzZʄ -I`))]SyF2F$2`1'S8݇Shgʄ:l'9 >E;,ӂٷMZQ[Ʉ,Id,$p pj.D^Le;0XIN.ZF; ?4l'9 >EhOdXŜNtNUo쮽,}@D6K5 0`x"nFS͝ ;V,6UY\&qz+a=xG|U$v7)C:N:=:J,ygkh0t\z]@xvu"."Rc+X8E=&o]ݹ踦1{zrɐ Fu5~u}Iʸ.U\ñ6J/ S{{#Y{ˮ1kVȃ~׺MCʊ0jE7 n{]~Z!Aj+Xύ~L>/+,'gx~Jtu{|ϫU 7Vk3>ey1 |rcA$D:Hu-ԺKoV|ĐQc 䙓Pz%GBBBoFu:җo;RG#*OF(2i[u|ݦJggggggg=%_ykxٙ3V{p \Ь*mB4S5}f Ez)?lYWWéo0*TPXzcC 3~*_]gq}qx߮PKe[CM=ullde-deadgraveacute.map.gznu[+e[w8S}Ϟco%xMp_/۝sU ~L;uWz;5-2v]M&lwup \X7cO_TZ&+}Id؝` XNŌ5k|[Ͷ B*EͲY`6cUǪ@cɠr2dCdz0cIǒPgRRin-^źZVyRa/x1cQǢHƗb]ktkƺ{VlUg7&05X5cU,HRɐm-$w\zl2G?b<江*kyXOlmGz?ӏGRc0Vb}(şT>$63A|=ڋh/ڋ~ҏ1ޘLo Pg,g58k|׬Ū-:Yn49nsAsМݚC?B|\ƒ:I׍ޔ',[y"3Mbw09agbN=t[)^6W͟@=ߠ.ݩ>4 ^'K1[2ۺ{PqN0uXK{Oup$ABr?ZjM8(?HMIڲ WA" )@Oxc3^+I/|фw%ՖsLfw|Ksr. >É HʐOTG.t%֣c:4 #C :Ո{L٣J|h9C;i7 #3 YJ/VqlpMPⷶc:4 3S\siN|4zf0Lt¯V|= ̟=r,N.J %@w:̌=$j ._h"ӡYН4]JЁt4TݶJF0_sYHs[=wpjZn{U0%)MxWm9th|g4g61h0̟c#u\=X)}&b(-͂ 4̘G0Od*'AfZT2#X V{LL˅jDt47jRE(n2VViQfr4וԒf墺ӹn3ekQ 8888888bujGt,v3K=vCBB4A`fj7G)Hz4yA+ŋc:4 3\3 'w@> ifNZJ+U&b(qՖsLfw|+/|ԉ՜Pɹ~Id=붜c:4 3\3N|4u垺MBuޣJ\ӡYҜ7G!͠R G'gJM&b(c[1).ɹ4'w@> XM |ǻ-"- \|;  fUW+_z곋3X3R➕"{9#-Q2hp2k#ϙ`"I]&"*ɲaU֚ul}40j&k.h"or,΀Oqiζ`hք>YY v;]{vf0 LJCYINb'e)Li*06S_bđlbۧ-);mXƣh<ƣx3n)L3_1ܛ\M|)5D}G-͂PtGXUΤO=m9tht'Mņt; ~4F/zKT Z%x֣Jl9C;i:5#StG|q5@gD%~m9C;iJЁtfh\%g֕_׻Q`zLEL`&L_0%Sgc!23-KJŖȋ՞K>@|4z0s D\[̴T­ 3+]l@# *f&B&D4R/Ӗ7ֳuZJEbߡh1Zhk183S |/߭zqb__u f0?({F5Y"F'Xc {ڻ^Z?j{ 6b#AcSgo" *TGTi0o_z?q*rvm~tqɷ`Qj߶"D@tLؗ~+$#R)l`QjT! "[Di|ɻսIǍqɏj5˹`[" E)MW{[?i7[8(jhs"D@tS7F/YǤ&z^GV#! "[D)vtUϺ<&55?Zr/VnuJeU=k7[tjulsmEQo&]KdޖMf ÎRNro" K~LR~W¨TSn+B@D@:DIʓj=$7tug~`ӌWo4Xo2AB+$INNXLx;k$p pJ'XLx;k$p pJ'D/L ^oQɄ񬼓k$p pjNHLxU;k$p pJ'zȄW fNptҪ'##+$2B))+^NˢSc`@mRj~ 2 2)C?FZ 'P-ǩr$f qRKVޔ,Y)3U:oD& mBsJ|..}k;Jyhj/E\EGǥ,?W=>EjW{t0m "tq>zidI7^ \z4]4E^X"EzHAJoݬ!pu6;oC *hxEA yi?TuXTIuI iMPKe[AA at.map.gznu[+eKs8)|*)鰇ĉgf'3"!kJtH*K<IQ%ŖU!hv-H_=.vN{x˚:.p f,۱F'/l*Dmʥ ̾ExN,'bƚ@5-Ō ߋfDs)a٬n0 L`jw*cU GƱdPVNP1֣pq$cI(3)f 7։rUI-+"<(cQ$K1.ĵUNF?U)[6 &0 Ln3VXK)T2dD:"dƮ \~3MX&BgSuk-Z$Ϊ$e7tPǭA h@43M7(RD0'],'[ݱf;spߧ L`O-AT>Kbgel*A<;:w|iY5}Fm Z֣h=Z֟|_#)g0VŨh=w(dz}\%9۪]VoG{^E{^2S[)ԍ+Xô0X҇{D֏+V7yWT=FsМ6' 4٭9%e,ntFm|Rjʲ(ip;ܟ; |wպx~?\߷ htmM=^ߒMyPgocO._<$t+-WDRSYtPip O$  +zE76XI酾MDW_]㺭 3S\siN|4N`GR|ʶ:rbȠNmMН4]JЁt4M͕Fl@5ݛ`MdP}nk"PtG7*d)X]Ʊi4Cߺ,u[|g4'Ҝh0`(_zS{?4AvY&N.J %@w:̌=$j \D%~mMН4]JЁt4Tl9fau?Ks5 ;]85it|7=t C *Č &+.qi.͙M 'w@> #H]D)9W7V3p?JmMҜ3h043橂L$,OX/ᕥ^ڣ fze"_.T'Bʏs3&ui^v'bUK-VZ&/2m\ˏh/ڋ߷eggͪZv }b@[tD`;k`gݐ'`/z-=bQJ3#M^Jr\5w|KsG!| ]A)xDcSXh"]㺭 3S\.'_|;  f&L,J>Z&D%^uY&΀Osild8`H3cek&n{r6 &r(qe9ۚ;>ť9=o>C^:Δ$MP.q).ɹ4'w@> XM |ǻ-ҡDw|Ksr. >C3C)w}c/Wś|e\fFRܳ*/nAlĐD@DY$/PGw4Q_H-[,N9t[] gk3AXQ3ETMpAb@9xe9ۚ;>ť9$GYsed6_f˟+h`~Yl#043Qz( Ar`_Tp}"ih+\+ |v`"Dr!7(QgI!MT7UǢxS٧fQbƪ:]˺?~S=}cNM4R3yED %e9ۚ;ihj(A#Gkè'#KPˀ&2(.qIEC :?inz5 t@mMН4]JЁt4c|I˿ҙti@r\5AwtQl(A#G3(b򎩗JA4A]㺭 S398%@w:̌XO5Vto胖Ƞį]㺭 @goNUr)l\HUt3g,-`ӷ0`S!l,D6X'bb"Oˢ\|GClakK?||KKU-گ? 9РbfdBDsk Eh2]-3ViY]꘎yQ/z;TE~-Fb-~r-/sQwIU5'沷vW} f0ifk4̒E|7:7QXMNk n:;77o*TPQ?~įuYK+Z׮6U!!"[e:e̟]!9meZ<  *I+UM?nMV] ЭNɟxjGRIQOVC 7U!!"[E?1zvUϺ<&՟-zj<^  *Iz1Zmjlx*$DB$tS'֮ڮYǤ^ VcoBB$DB:%2_"So[jubxMUHHVQO]Kdޖ_-zj:y*$DB$tSNm_[(a4j"yy:3B>*d(9$ 3'1˘?tVeQH盷lQV_uêu4l}w!!t4@#4bcYe;ŋ:a7@PGP:i}yNdXS nNtʂ:lݜAtA I{5U6k:vW} f0ifk4ջBY$e;:ts E}6'm$ ~hdN!3 9">I;'m, ~hlN!3 9">I;',ӂٷIlv٨Medx{9">v2'/ ~oN!3 9">Ih2àS (#(HБe;0J'})IyYcx0 Gg?I&5? 0`8A_FZ 'P-ǩj9YERn+qVKVV,iX%Y*=ǯC6Mhڄ6=6їx-]\֫ -jl]ȋKY·z`ċԀ/_<5i|ADvu"/"mC;~uV&Uv. >cm~C]~Oj!JdBd.> 7XZ[{ظwo?4;?/l4Hsi^}̰f W% ߩFfiїWe%žnjLg'Y@@@|aF>=[6B<߶ 2D&ӻ}H!yYWQs,H@gNB R>i y~ҺKV5(_V,(F(bKUg<})nMm7>|"D'Oȟ]W?IQegͶ# \׀f=(+(ϳzkJgPRo#݀|7lq6f ޟB Uk4VlcU^fРAv^uS"/V*)~?1 M#PKe[z=!!us-dvorak-intl.map.gznu[+e[wHS}Ϟ#>䦙IfAf- Pϧ_n@8 ]¨n6+/fu[r)p.vL;rxGjD\:t:spX-1N8&_M=w'XgŢr's˄?A݋UW'\z2+qղC5mVëŊ`-^廪7W]J2 s).qnz6'GOS=EOz[^s cZo6q1^X >|6lgl]<`HxYtyWuh,8n/x g«1]m[;8 D 'cHsIJ~^Ls{cQ⻼n@+6#֢~e"[|!\JqDmoby膔;$|  C;4Cee5ko| \FUP,[vݡBdYM_t2T2$xWƮI:4AWMմ gM{t{:|uWD yPѡB|h}M=kU#+?˹9W8me5ko|Krs >ȧ|+"Ŋ oV:sY~ܓ]G +@2$2ԛ# sH>c;6ܝ` XN6teR]_&vɞ8!!!'U2Ԋ7$B&<*XEe5ko|+\|O'CBΌr-fŤ;4C4YVӾ&&'$g)NoD> @@ IĚdpHbɲ57>%9FPd Z\ަBuߡBdYM䒜i8t2T+0B}STg\du<F'ȸI"ޓ^ !9O3yue5ko|Kr3 >ȧaXd#d}[v7.i|#d{V"cAt"շЪ&j$LFp ebJ:4C_,i_|\3u'7"NbI ?Ű~]١B\6YVӾ&;20Tg!|m,y~L|.ưvr! Um؏ޣ=zޣwKx`mR3&"r'eeIV$m~d*㎻~@oAoho]Yuy+(Y0'|E,~*Nnnfq|sw/2CGc&V!uwIYo䃏 u|O'C.Sx*11U^ء1Bɲ57>%9_q|#dWlGք\zزg#mp .ʸP>KGL[t&jNGr|#dVEb s0?a_:4C7YVӾ&&%moD> ʸP wlyتCc1xdYM_T2 B%3#5Y2/6w$YHN0uR"qy)$TܡBɲ57>%9@q|#d:ȧ(]@g~SewOիSa`ӌ27  t7}2D᭳fAcnrԯKTA b#6b[v:CUUl^͓[PBNtҩ%,e!WKyQKk3ǪЮR23un׍ueyZԟ{ *=(%֪Ս[J3?X" UzPҙz:zx;כ?koS*D@3Puc:zNKT U! "]%)c\k՛_-R z/|"٧6Fo l髝\:4c 5Ŧ@r1mw3P@Gl݌!08B udΙO Xlw]^žǛkPKe[doeesy-ku_alt.map.gznu[+eKs8)|*aIN2gfHA6ג萔ϧ_iRlɱUf?(DxV8'?\$o'G^ա̯Ʋ2>x&dloɒ,`Q&c/E8(>YorS{*Ô_3RXٲTmVItφ4^I`_븫Ez޿ `#+#=VD"N\'c.MN<[.Y޻6&0Uz(+x~"/,>ʘު _ &0 Ln3VMX5"a~.[y`EI'U>uTK-oi fh6ffu$ %[}~կ0lU]!l=߳|g™ È'OdH^^zͥ9f8pf }5:s1MTd&d%>7Y}M5]JЁ#3 7V);4CߚZվ&4Ҝ`pތ&gd%dժ5AwtPt@g? ~oHELrM&s({U4dž|;  sDۡ\`R?7Y <:oM^{lg Mg\(%c50MFWMVj_|\s>6`?FrJɅM&s(ɪUko|KsιgC(byx΋pƣ 9KyiW;}sX&)9r"z Wi;/=6YKƱG-0R+TSO >؋1#3/7YcWڽDh`;[M;؋_j7$$ 3j+QG\MJ}֡G7MVj_|\3 'w@>;P LҋJ?MPɪUko|Ks . >fFX] \GbK̡iU4朏 'w@>;QPM,MPɪUko|Ksz|{>;ijP?LjcW ģnEG'gb &-^x\HHXwN9OծV?L[Fu"ͅHu3UmURU`jE`  .)œgUWlvTZepjEp  .)œsgUWc*{^Wm.$DB$lOU]s.j VǮ_os!!"ae;xbꪞsylW[x:q"d  .)œIgvoG *{aWS/M RUߑ_Ea6}KChFh헆G'Tc׊7Uj">ړ֧vJ8tص2tVjOڀNЙc YV (#=iC:i7q@]F3 旙e`f IBǮuYV (#=itFTC#ǮZ@PGP{NS!;v j">ړvJ'\ qھmbȆlf;ߌ:G9vYV (#9i#:i}*ġc YV (#=i qhص2tVjOZuG{D8tص2tVjOZuGWgwmO?Q   XQ^y80`3h޹$w'd19մ̳E̒kzp|}Ƭ猪:-hڄ6MhknxəgY"Z, ]mūUs+Ȉήf/"/>9̴lxXUknE^E'5ۃ?e+w*Q/.X>?O/lZ ǾcmqCSf^@mp%2!grz/>)Orsσq9UCɶH4ǑE9n ~;;QNs6R_&eJS 2"?gd{v{b%wNo3>Uv@LtLuޯCFQr,H@WNb ;zrxҹ}b7osήJG#oEg#Kw-:y)nMm7>|"D'O?{q>MoʴQmա9Ϫo9J, J wsΆ1Άo0i*TPXuFcC +~(<]_'8i`CPKe[=į si.map.gznu[+e][wH~_={W!=Cnd6^^|lH(d~]}bYqU]]C;e 篮pǾ$E.܋]x'X_?!\\5\58 ):˛F^1Xe_UeIV&:XI sDzRhNYw5WbE"VzXWZ($._*/SAMQt`t T / gQ2_ߖLff9geݬto|BG#t~Bk|3Kv/B`p(6%qiqyZ.Z&*ܱI_Ye]2a0LLMUU0|Y+vG s> LWgbe㥊WPƩʍ[2{Ig&m7*[bktu-  33f*gPOsvXF%**V޸㒭rP"+"za`&`JV30'Z)f+ki@ǍǺ,ַ[ g$kW%kyGsazi:RK8rV=> 34Yɪ5YI7b5ն33030f%x,cQ7@Yuwz`F`o$Ki;oqrw!n+[NJ '$c*x}3l܉\!}#L3hc7o'yX#}$O"Ɩh{:jpNppN_8"P$cQ:> l1.qdjC!e+! \$"1 |iĉ"3'ItI-ձ"Н4 (莀$CdRiIfl ɇ.:VFz%Й  ;$h8'|H[R+NK>{B|&:43̟ XN]k@tG@g'bo8A߻XN]j@tG@g_cavOˈ% C fڭWugaB:t1%NuN(8a]tI-ձ">KL'30?y%BXM['|HKj )\ g4N'gZIN\IقHBIV$<\:RR Ue*ee%Y |bՏ;a#3 v6>r"W|`\uw9m9:콢I|=?W'yN )NbVH8ZcE;| ™L4N'gY1 Fǥ/L5 \uI-ձ"Н4(莀$?bd"AMhqpƒ$XN]h@tG@gY1"oKC(>taqo$^3EK"2NXm}Paue &.`3iY#WtpHh_Jȏ[5.V DCA p |EQeiQד&m"$SNK>{B|&=&ꭠءwfي-Kw1K%I bL{LGU򆕾왙 w /D嚕UJ;Vױ"6`$lId fp‡$oXĥpr~Y3Pu:ѩ\,NdS3bb3U@S7} HW'X>w̍tA,VPJ[eʧC**&Jy>SH S25JYVRR0]%gЀFjMh@0D(%ؿq2GKjх3L3{șᔠ(e8AwI-ձ"Н4pQI~fpJF^4d$y%TNJ@w_:;:LH5 i@NĻ-n!HE}s@ PI2f& a4ċ4u|`DnRJe05x]TMm S@ D9˛CD@FM$p Z+2[up#?U"KCs^Al0#bClbr.<޹ z%){cH3 IRjG釃OܳMLRnRey!a笪hm`&`3SɊI c.*faqB]ޔ,Y-ٳ `1WɆnŅ#{>-t362g#bD\Fyޥ |e/m:[_W <ԚI|%΋q9"&j 2nM~7|6xUEr,X`ȚdW"\?*rvm^xq?iյv MzPNK aIUv;jC8v|%65zZܞ MfP򙰗PuXoxoiUl`s{&8C8l7Ag^6Cյn = vn/p&3(Lfa}6G*vbs{]Mppn2Xlkw=vn/p&3(̤K~l^9USۛjC8v|%E6b}T9U3ۛjC8vS1y Ű~и珆&=u[AX[~~`3~,ifc N.tEm[?YY=TmW;,= @Eå:YrxQ%Y6*`FaԜS*xש% 0*`FaԜ>3*xי% 0*`FaԜWy]IsC{[k yz95*[]Z!vB'mHZr jFaFII;wXr jFaFI;E*»i"73f4\*ג[ AV0z:tzT% 0*`FaԜO[r jFaFI+h;T% 0*`FaԜ+^ˢc pt &Yo㪾c @# b4{=IX*]խR{Faz[ztzP"&Ąbc2+Y׽O767G*umaѪn_G5>w=>eXo?5eSO']|-[YR#;.>]l;>d7+۾nNÍ57.>PFu6/KϵM,Jq,S2,Ӳ9]Uk4vزgc>O'Iқ1.벣~ @$@#1Ʌ?zE3 AAAϏZxSe⻎?!}si"K,hX9pv8T,qo~/"/ȑ"D~uv5C-c[..ହ*mD;qgn:ِ3gu'ݫ$/.p.s[OM&*領d'8ܞ,`˓b)s'sˣKd &0 L2W2WyCʭMa^<)sT梀G :(9*2ݞk &0 L2Wd9̢,mz.p \ \6l#:(|%_>4ߐF0\r)IquSUs > ħNd2\pE|"܄yOUZ>o >  '+O&=Y8J&ri+=tP62n/0a/xd$1dI|f(ZG=icȣxCZvuOO>"sNb{"\^u"1mcx[ ^OW%cz7` <8j2a~cyїy?mVo|.T2p& g-}kX Q˦m%Fg|O%ùLӀ~PriX Q)k[ YSpQ^"c- !6etm+7> ߀|Г2үh9,oX QaSF׶|#pI > ȧS&Å\Tv`M]J%57 Jn ſრCbM]J%57 J^{"^>7@ ߀|*;Ӊv4* DETDj7d+~Po^at/wx68 Npb*I~HwJ^ ߀|*S9h9b1D)k[ YSPQ!^*ZnX Qͦm%Fg|O%\@+Knxڦ~Kjo@> wJL>aEv䊐1nS{RzB\T2+ 1O/XU mXQ)k[ YSPb- - !w6etm+7> ߀|*.Ľ]uPgF:6 l'4Οdai,'i6 l'4dGD*a„ O4U2w\DW9J,d6m %Jԝ"ɾtQキGylNyL ŠlX8Qצm%Fg|O%C?Wb1Do2Kjo@> FIWrغb1DҦm%Fg|O%xJH0h9kbM]J%57 J%WdlUbM]J%57 J2ʧv !mVo|.dwȧl*؛_>6%cv|A9Ej0T|5jA1dwM$N IddYCL$=ID&\$'E0ϯr Yk 6@2u"Sǽ(]@Wp>g&/_ֶvf0̿f^dMW?sl0Fث! iFd7{j/4~w.Y„ &̟hdLW.?vYR3lI7oVZۙcMh6rJW.b:)ӝkZKSocMh6IIWL.Tզ2YѹؼEM4=5! "٤&%]Y,f"zViz;kB@D@IMJnYLUG>>>>Dꏆi(g(jfp }8U'O9/йGhfp }8U'O/ЅGhfp }8U'Oڋ*Ou~Ϧk[z3 _3JTfyA6 砱Q)TS~CM(NpN?iC6 Q)Ts~>ldE2G4Du45|9nMލ݌NI;j(xnFpڇSuҊ_=^СGhfp }8U'E{ :tiiNI+~z$~ ]96wUÄ &̟hd<q[-4/W|Pzތ}m4jUӧ 1&NJ=qΖjZg8zQeoE\EܓC.=,K}}򼦵 GmqqO[NfgB{l Thg#[rJts]¸ci /:|+CHO86=kUަ8'R\';_lw|o囝`AFEW n@;OPxB;\^&/]%} ?ӳ:zכ]F*TPilMDwv "!ғTήxЫ]1Te㔱  H9J.|!jԨWk;!#EJ[K?s9z@_{ƑÑÑ{,qppnܭ.#ϣQ!ETyamik\,m] <αwk|ݷ!(QT Ǿigg7l0a„P} 0ReYmvn|F|F|F|F|F|qi ,XRQ]:<WO݆:I=Y$4ݱ!xwgYF,!]$>PKe[aaXXgb-dvorakukp.map.gznu[+e]K8F~tv>.UlaS! B a~_D$STRZ]_M:gsnoW(|$[R\\e^~d2Vě*;&$ܝ{XXgIDƙ=,IL> 'jä׮NE]\el76XJ?Q|LeTW8٬Ņ͒4!tI;.7{jiu]kN}`4ۭ^RzqIV\oN6+&f:fZ앮!gRnG:5lV1)`kEC>:'9#gQ5.Ê]fq׻N;­un9+땳eXa1*(nj۰ꍹ׼蓳 vY 9˹NmqZnuHdc)f7>6sMr볆a~p|',+5a;z 뺣Ӵ*`|j{NhԶ̭'/ VU:n^j"̴ZأP3I}Bpi`20fg V355`1\ yCY343MVOyjhmk?oh vqaDVEc8ڬZVm\9jݹVhkڰJ0]Ӻu`2b'տk}kO`ԫÖa%>YGz׻N;­unZH[ku8; ב`ع\k}^;,:ť>̎ zLvln76vl=q^lޫ_\sEy}Zt\(pcM.={FO\L%]Kě$6=dۤIf8 <[Ì-.V`V`d;v@zH?I*3/>>Lqg20j\yo/QOU v3Σh=Z֣h(Z/?={k QY*&|~؀ ؀팓2}4HB b&/1l\q"/+1ݽk<`q`9;}mٚ*_^md$s-G(vΓ0gq(z R oLbǷXGW|Aޭ(e sODPE@T'e<~nv]W/c#߲ Y͡hS4L>tO&0:I?>Z8w&I3ur| 86Hj g'u\qnj-\$UMTSd8p`_4dQmk\$U32߀d2dpAC,\Lf*p o@|2d8 9%*jEG5=>KFK*/h ,G Ά%__wr! 7br$i"'^ ~ԐEU18yc4SWFπK|P蘯+5uL*,H!FOcK NL9{@$yl3Oΐ^/Aߠo7 }]\_Iqf"j,Q/(;;{(=aO`V[LIMyU &I3uo.3o@|2ʝcb[Zj$i"%pn O&CslAsJV5ՈbZMf* \g)߀d2wU18$i"%pn5>LԾX1_3I<'∸)}d;wHobo,\坓W&I3uo |7 > u2\rˆ W?߾|#g%dd׬x YU18$i"'^ NpU N~1I|#g%dd(߱o7tSݏ2%+ 6pU NnLf* \|⫓?o;d,e8mB>]M*@e{<, 0Ԧ<-& ٻd`"聽y~H]4q8l^^}"xe2;)nm8K9f֌]Ibylt9>ywk&Vq!nVǗQ??b狑{?x&=FU1s4Iybި#7&3oLΧ?RhvХw<ԟRX*'4I#( `ƯQ&K3J R {kȢU18ya4SWFπK|⫓\#F|47cU~oMWc2`20SQ&.AAC>Z*'2I|#g%ddX%Xp,}pU N~7I|#g%dd( YTU18IL]E>.! O&C{Q$CRď#Ge/Yo fzɚdx8{LD<Jr8Ͱ.ODlFbNP~Ydɛ7i,X` +1CzZeȺ-»ś*ա\7㏣c"+1;5ck|`$zomGʧMQE"vT ",><ÁcE%8MIJHYeW`7`T22L\$)e)(<.<`xT.\\$ SqgHu}`V*jŒ'R&9VW|ڐΊfTvt2wE<r(_E>>^5"&e6<> >O™̅S3&RtFަjRfխf%6֎CO'D >K:IO9v(.^,rdtι^grb]\΁Mw7l=;ǎcDZ'?-h!E=E8,=4pFpFpFpFpFpFpF/'r)OHoEbRf e%ٷ+iBTy\80UT\5 3)~+n0〟ef\,HJ"xێ$6Xu#~N0`:YũS&^5auhSnukdLW'{7 у.qz;+SƼ ˲57>dd hǖݾth,rYVӾ&6wB> 2NB.pǖHbu .j\NȧL}3EL2XÔ e5kB_QtO@?R/-!.j\NȧL@q(tߡBeYM;kp(A'WO;X !>,i_|spI|;!NcuD`c;d\:& 9Hu<=5") ėCcޅ˲57>%9S >O'P6_\[ }wCc1xﲬ}M OrIQ t2+JѬL7eNؔ9IhhϤNj3ӈwg"IIBKV-H@K|F-u2+<>zSB~^uh[߼;v:,b7$$Jcc"I&Dv;4pxᲬ}M OrIt8dWt]-!б~(CաB\,i_x' Lx: .r)o΢Cc1x}M OrIHq|'P_W!XIm١B]մ I |:5rزub˲57>dVLIJ`c 񢶟]_9 >O'Co5Yا0.ke/ \g6.ʒ|Ec/ !į.j\Nȧ~G* [v;4C.j\Nȧ!]9A qibTdE^iG/x 3U8P+WA42(Mw-ǤSeӡrTтπR'OO|Տ"NM:ԡduz07Y3QdqOrT<"?SE+zDtZZNfj|$71O2աoBeYM;k0V=!~ "I"Cc˲5AwtTQtO@/'}\LڡBrYVӾ&Κ.+JЁ tS3#=زOe5ko|.i|'PϠEwl-X !^,i_|spI|;!N3 vcn7e5ko|.i|'S0^LB!oa~{^޹,ǀ;g,mUH)t >c$ ITr茦˴,򜷸)\#rU5)fu\mOq8qDp/PdVJU)éh}~NyAN *xfVpz v ufV#t6 8c8m/MRqZoCz3 tf xAm㠳U)éh' yAml{ȎY汻q83=L9G#X8y7+a<>قVg6`]ZE\}t\=c$iuL_ZA=mUa|hr"."ПAHs~s'E\..u6Cߦ7ޗYQfltt{OQ""q$ct5oɲS&i` ~~]hvF90(?ľY/ w3KoTW#{b7Z˯dߒپ OY_]˺"e  1dU|&}`} "]37뚔Z} H@BzgBBBOoFME˒ķF:,*iF}/uf DSI+*a}]诞?}M]xxS%={x:.p/FXb{U]Z=åE-r l`ln*Y"ɒ^dk(>.*g >}F l`.V|1ɒ7tqdYzEN싣T``ԩySI)&ѠMكT)[ZO p5Qr!uiAuQӪnꢺ3.q3]Ygn<_ṯI Qqm'yFQeTUFQZe|")넥Y(n3[RVVIQS[2[+>"=%%%%%%%!OJ~rVvy>M8RyN&x ^/u|o|!A9A?Ԙzؓ2c‘0xF-mcXʪ7%ej3<' zIk 'o;I,e$J:rht%f9I;>ť9=J8'w@> qjT?Zz4AlCMН4]JЁt̓zl(\( ф%>YNҡ&N. %@w:, YJo^0L۬q.pow̸ptQ# M#\(gRzQ$}5(z4QhCMҜz9Qg?F!JɅWMP}$j 4LG! g9"4Yɪs@Zl.iزa2[ȵG<x􆍱$6D{-S =YuQ'kQkb/ׂ6 ^v.{ GG4v&u|Ɨ: y~t̀R˓DJ29Ca =pg$j 4LƆ|; u4*PJ 9afkU=pU$j4 <:A3j欆J.Y$ф%^YNҡ&΀Ositd8QgH3j&{16E;=e$j w > iDAUt¹{ӣ Jf9I;>ť99G6*h)=_AmҢ6 dw|Ksr. >:CڣF-HlYxي-K)I6k3 T'A8@*^8cs'aGExy*^u \n lR'L{$Uy&|(r5w|KsmX>:C'X?7KO=mt Ɔt;u~4^ofKT =6I:Iөt;u~4^Ϫglmգ Jf9I;.m|3a4[B~NXyif9mQKR,T?YUgŪ'ݣ`3bVw!WÏF#a|}Q1#U6E[fIk{VfE--@D;%/w@ˁA8EUW{8 lx3 tg$4|q5uI l`$uv!p"<wO- `3F59"qA7DB:8Dj2+ }PWu~[$wPB *u|$ ٵ%?IG9kNjE!¡e嘏S!%"7L;bjmQppFQ#//yS7I#V E!¡EE!.yA_cˢ*&jVV]q6Ow[J:J*J~4<9";4l'xQ%Y֟ P( GtʀgZHɜ}J7m oڙ x֙e;Л P( GtӆZ2N 3~K3 eQgf e7PB˛6YHɜ}J7D޴ccv7PB馝ʛEjqmMovިdd, dM(PsNGeCo2'@(tMh2Yv7PBU_G2YGCo2'@(tMh;>^{Yپ@D6k5 0`8A?FcOn"2Jh2e_Nnmg 9V7%kVJIezFQiTFGG[,y߄T6_ 9IGV=N JN/~1.֢i|3 #ָDT{,/4fo?T,)F".ӫfɐieVz!͟!Bxd.>w-[C,)L(\n}>d7#ŸWf9 7V+/b߬R{XwB;(Vf_j|Y)YOQ1K~^U! Z#-OlnhxdZL?fGσl9?D%/H@gNB J44hР=c퇪.MuWj?,/e PKe[Tqx77 no-smi.map.gznu[+ew8{ϞiwtK91)඙~ҕlpcSttŽQ$F&w?i3g4J. \WnƲ><߈@dWX|Ic kFz Tl%BOgR*M9Wu^lFI)MjXGxG oƀP#QDQӦ !ۙ(J嗢,]uP TzP݌]BE!Fb6ׅҲ|LZB$(*P TkǮH"PW7vT'bE*Va&0.6cUǪbP"15$2Ye+r3MX"F3%Re|y9Kқr *$UtV$X93}1h?pw-@ -0 S0QQ"FukK `kQmXcAB> !ϱਦJD?x(W j4,6۽̂cccccccM _b#YR=ɟIy:Y| h/ڋ߶cH$ӣ+ЂlS5MeW};tp \y0k"5~@AmO]b.t}ZdUY]^]ܵZ,OŸ! h%ZVh%ZV\l+)^.?M:}*ٽo/xOczdsk=8sq3䅛LI$#\}$ٖs͂o|K0ǃaL?Iztlp>whM j9Uf7>oSriN|<N8R2$)4O К$^圪}Ҝp|Gp8[2? Lѡ5Ho9UfAwtQ`(A'7{f 9טTZm9j,G\SriN|<f0Ԉͥ9p|GpdЈs9oϳP׶\DŽ;B<GM&.}33RPI?lyx'񏶜So|#.^ >F"szԻA][Ω7 i.͙ >C^yO 6 `ݔG~3?Ljv5#ƪGmeP|xOV1 1m; _,1E.VB|ۡmDz,v}k{⇊!!!'`02+`P͂nt*CSװJͥ9Sp|GW6M~ޫК$.}wv0ۀ5` <(8cZC uhM rNվY Osi3x08c&$FZy[Ω7 i1|<J(zdHouZ]:&rNվY 4Ҝx04+dD2'}_r_a 4Ҝx04+铚eٛJ̅v))f^9PU:PT)8~v3f=}RtKC؇`7cg?O΃\ buJՕ ?%ML^%ss92KŮpYhfY,+;. )a~IzzqV#k*+Q,ʛ#Z ̞kcf33fʃfDJSFŒg١5!H-TKsJ. >C2`5gҡ51H-T Nɥ9#`++!IZ|vhM /rNվY Osi46x04+bzA0 Ƨ@⏶Sot'M %@t<:W(H=de.@E[Ω7 C :=~fX5@HTϟ(@m9j,N.t{:3EM L1Nv~GJ_yۖ~X03d WWjbh%N[3ooi N)niW|ߑx0 `F$UI]^̍;Q,LG3osf;@#2҃JֈhKtDQy!ڊh(\͜=Lۼ-Fb-Fs5Hrg+7~{wvw Va`x+K/+ld=&]ˍMotfv;I*o. TPB}Bc9ܯ5w?|).-56XMmo2! "k2r,g\uQȕX ƵF-Vv/eB@D@ĝR4>]ެq]F-Vl7eB@D@ĝRx=RIBoUm]&D@tM)1^oŪȶK." &ryU}ՑW[ljulۥ." &ryU}Ց_GpŪضK." &rfҹDm^oaŪՉm&L蚸Sb]z -VNm7eB@D@ĝrLj`=Bau孡V}ϮxڭܙLoT![($ NbXhH|T5.ϗom^+Z]TI%6;<CG#4@#?ZDVIb]INO@]'VITjNpz|ҎI;UujDE$p p'mNڋ*ХW[f0gzD jNpz|ҎIDYy'Q:9 !Iv;YINOډ:igrN.o}DCAG7UWt[y'Qݻ)©9i':i]+$*Bg5'S8=S>iH%rבw))DSճN"tVs8C8哖hS߽_{wJ/N%9cMRVdAd(?Fc H@"`WU} 9i zMG^~2ZUelNI8 fUFu3RW /neY<>ܭԗ̰wzޗm+Kmf[~ѝK4y r @ȁ!BT)MM1u>6q},=Pábř-O ?D-j>V2W-wzNU}N\?t7vDzDzDzDzDz/g̚ڕX>j?svIEgʼnMR{76/^;wU _+| _'S{=CGHg 걳:뤯ۑni?:iP~Wó~ 91X1fBjQa)?tUrh]`5)IJV xMtV;RSDiZ jx3S 'pf+m=.Mر2>mt=zHa&G2iP\iFA D &f,aCR<,CR<@l0)aA=%},h r|YLt\i 8q%k鄽LђQ(8nb#t_GIl#rub%GG R( X:JA[,-( ')L+Q2QGe) T[I)R7m"\ն\\F\:_/mȯL16} ߽`N{% b*M^S#nkk~)w4\+h]o1e^|T{j:^~,/<O'Ok& vDɭߝ}Fg-* ~696rlȱc#<6ة^^54D(7\] w]ub?sW륕Vk +Q5ii~tZpLZ Uw^cǫ)sb^b5b̽eG(wU]S 'оel^b5/S=KgAyP~ gy ?)dgG&䣰?O {~]dX$j@X<zJ`pצls';udӞ@ gcbӃa&{yi^^ڇ 'hT(5Y$ @(\?28pyX N\}܂` 'iL+Q2QI) t[q+5T1&0 ,C9PQ145s f$E('+ L Bg"Xt~1vN"#D.2.GSAÁ 'K13F[X$:1'=%e" ɣ o+sSi`Qi!Vg\@Vl s8SANQxa+AqLjY!ȜtzxPjb<+2C ץ=o5U2wX]JfLruuĻ"حKoj,eyK7}aLlЙ;X.eY<>یd2#aިjxh!C @9<0C 3ݸѫs]vϚ(,G'ӑ~tQ %LZ gn4,GͯqfëZ,W\WSK zuӼ(wU8^lh G'r 'b:(A#8dLf O 1٥OȘH8Ԁx8pt{f=hni[?|= p^3mk0fŦ}[֬ ys:!Y# D~Eq?y 8łKxŐː ?AyfJjXPDI %<(_8Wb:N\u:a/$B"?8nqLDO)(1=,WO 6}zZr4,J`Ȭp|xҤNIzu:a/Y"Q8;Id56\~%SLB]K,gYb7sw|$b $:Ʀ3XޭdNk{$ ~:3}CTe<ˠ{͟Pߙ'$q۔ « ̄ΧTUSO:汫>CH8cp(G 9m΅;?k}za1QPHPqЈb>ư2>$=j->QDAqɂ"dKHXb-W^2ڏxג4^aPXRXNt-]$+KגQ(8nl#t_GIl#rub%GG R( X:JA[,\= ')L+Q2QGe) T[q)5~:Qm#yJ/|IlF~5]d&5[H.u3gx—@u3:NptfyM۔*oaSZc]3OB[i>SH8cp(wGJ9k o/htZZa1Q%PHPfqЈb>ְ2>$=j-BQDf_(ʓ$Tb(4VAB×ūEF\QN-\PkI /0fq(Ua,)D'hK֘.ɕ[gekI)Ȏ_OHi7_S j@|=%FLSM=<3K(b)mX4r!|'4SFND=e0 _$tI._Ed&.pԬc戹t;b aF1_cDImV2'=K͹!o2eн_́s|uԳ¼:SGaΨ5zdΪ^إ#xnc 8/^sk*ik=)̄BBJqqŦ}Z@PJ J@dFk⊒1 ƶHe Zp#ጊom)aA,%J3%bD]IE;2KYZz !zǍm$^b0`% , K/9pȚ%G/ R" XzIA[,/X$pJTר {2-:I8˔T^%Tn]J\'KS,mȯnk֤vw+yɂޥf\7UN52cwtkk~rPͰ_#=ΪWYlr]ԍEgʼn͠atN^nvS֘[U.7 ݿ/UWe  !#d':WJ43M+ިګ16VgܭQ͚0D_ 3a&̒9q~]ߞ,eyK7__Wvr:jM7pY8Y͉u/W{\ǝ =m~\}t! Z'#%~noڗw6GJWҕ7:1p gJwuN"Vշ0$04A9&l]2r`<|ӈv}{o$$ ju5T| gk*3IBI( CՌPuC'EM7U 3IBI( CՌP{fO֏XȷWFIJBIܠf]j+]w;|> bmc^c&I( %ahrv}}(bm3^śa&I( %ahrrZO8Ձw u!}uih6~MUJ^{r^7@{|Sl+L0XqT3nrZi͇_ærW {u9G"=E_vBvBvBvBvݗF_??ы{hbaBJsu'@S\zHXAI;'L/*י,t,$=GPwfy˼@oy g,ќXwezQ%ɼ`HXAI;'H/*ב,t,$=GPwNI;֋u  *AԝS}Ҿ\,rlÚTdl |}`7 T#=i=}rxBg aBJsu'=ԋu  *AԝvO/*מ,t,$=GPwҚ;ڿ_Klu"z.(U3yGVdEVdEVd/͝%IqP?)͋}}Yn[iHS7~~~~~~#Ww(WhW/>|It}PG6V+y%y`֯U~}{^=Xm#z`䕼v0{ӟ6JX} E}orq_(L|o_]p\nu|p7[b)$3䍮wnYQE.3$}ڸ\zOX:KII638^^|lHh%~k0K[}]b7Ǎc_"e/TIfwpp &M.sq#A"v8yUȯ*ɲ$+R+w5u JaEըo5NbPb_a#ls \=} weT=bu}S&ѰpS.$qS,燩::;:|< d.HҿL}Է%Szo*+o1/y1#fČӍ\}e4 |^O׸t]8YRrKpp Ԛ\\H '6kO:52a0LLMUUİ)VN&0]e_L4չI=ON 'M7Imu#g!-5{+ɲX>mt4MqO33@WovXF-j*}d7ilYՓۆ Jk&:Y$Lqh]fle{- H-/f`f`>̔.>{i%MC 1-6nBzKC==%C$DuNT,f%Jx -h=D+M6u@-JfIfiw,<S@gN]@gJF|k榫u qw3ou+//^J|Uo|!9A?4B3+r$ 3Zc7o3vF8(ɯ["%tjp71a$ p"PbT1?wp}_:Ő]Ԇ!B"V.B@g]$"&uw6 _"-ձ">Kd1*}rI`L`NxPCR+I \Tf$uH8CߺX¥qr\'Q24+`GYMNxP?]RKut'.@tYA 'Όo8A߻XN]@tY!<+,?IS40 O~YjߓG7q@,MzNMj(8a\vI-ձ":<a`xǃGI00?&&j" %z.y%TNJwi[%AQ@H+iZi0 X]T Ug*ee%Y |bՏ;a#; Ӈ"l;l#X)WD]p[Qv`v`^=_AAAϏd"4WTK|:DQER+Ӹ4N%CZ)v $u;U-'\(r%TNJw, q&xdžGIЬ "*dN t>y%TNJw| '<QQ2$+S!Pc?]Xܛ*La|!ɥ$2NXMeWAƺD۲\a D`R?jE_Z'7B"{Y)H|~ %jA9G&Э"#HE,T_Z%u\!?]_>K4N#dh귅ZVlNF$蒶5GIuB4ڸ(qmen`~.z7 ,I\Wi:V\݆Ϸ`.>q[8>pp‡"oX¥q)Q24azƙLྜ} iqi4>~H9dfw`mm4l1dILP4+6ch?v]tnd`VX9̼ݭ"´SMK 80pьѣO%6[(QgIAlp",RϿHY^KAj3k hXL Hz$1O;e[JrSfiAΪ?\a D`RoT>{4t'<(oIV圕UvꈡsS`K3g_Bvxf%+IMqJh-gP->|LHmfH̾v}ŭ68O۔:ug B8AɄf|)LjE4(-ccJ*moo2{3@fs@!%G3<԰(5:P?Blm6NCDaOI}CT"KɘptY9X7Z]p&3(C>m|R" =۹=wW!hP򙳗|ZÛX7jÛjֳ۹=oW!hPPuhx[;m7?iլos{&8C8l7Ѡ3/Xĺ{sNOf v5!a%)v UǺ=&֛4ݞV͆v;jC8v J>cu{L4ޛzZ5^ M4(̤K~Lb=Ӫ٩Mw5!a%!voix[ǟ 5jvfs{]MppnA9ZP=4j֙ ¢U KeS g$xfxqQ$dkMI9|%Ά RbIU&EcG?ܱ$Oمwwe߳V.pC7c_ee0)p"P=L}zeU!y;Eܼ9Ͳ{K6GzGOt <#u(퇢.e>ygf֫]oG{^E{^)5],NdU1yfoYjK +_a*<_ɵt`+XXisJ2/bҾ)EYͳTMdw.&|RUn]o?%:]Bw5 ^Dxi0P[7Qw ơħM #OH. HYJ.A̵%DA" @b-̠2RtRz$CޕWk \|;  c=#)C>S5kMP]p5wxad0m!w8<'W#%3U D%>5YNѾ&N. %@w: ~jqHJon[CSuh"5YNѾ&΀OqiNΥ9`0V|}[ߛ7ciCokPtG7=$j lD%~o}MН4]JЁt4ADn9a52&}wpbZn{T0)(P?,h_|g4~h0̟cuL=YM)}&b(r5w|Ksp|G\4Yufwպ'biR]l#yYR2FL@ 'S9ҫr9C-=Y7aZ(` 5Ŧ>[1ZΓj Ub,tE&vդϴR!!!O 03jy5A~W1whbQUk 4L|;  4(POeLoc%Uvh"WMS SX&w`< +*9ӯGxMPmk 4L|;  4#Iݮj¼nccAuh"MS 3S\1h0ajQP/9U`o:4C,h_|g4'Ҝh043Æc-+hGRn \|;  ffP? , Doz~d3m?)de$Ё T{|f]QrROO:4A_(eh:U:n8].p_. ]DͿC1xd9E;0Yl`w> ͷpf%ɉ'JOdWӌ(ϲl_2GY}Qe`2L񣩬E\_iж VA]0&1bL0&`72`gH/%dM y;TuF>v^gH2+~"'^Ry!eU'U1q0yŦ.V9n-9t`fl\o:HL;4LgG,]ͩ1F F0~GF,IH~4UtڡJ[+ Z_gO 1HA Iip6jP K11`I&"(r5Awta`(A#gf;<Ѱf^"ԇ&KS`zLEL`&_+~4/yg/-%[̓<˗{`IX>r3}^ {VTG37w9 y 4M+4)k|ڮ0Vp\mE#4@#hS |/?j~=?oZsw `3gzπxUwa4*[-NTjV7TE}A *#47/X3vm~tqɷ`Ԓk߶,D@tL7/zWHHuf\ܟ- , KUM? [0ij`s,D@tS71/QT\GpВmYfQo2^]ճnI'uz \Fv>mB@D@7:%Su{Lj0/-Zp[" Y)kuWcR^oaВՑe! "Eto{[j- [r:,D@tS7.-2uoK BF-Zd[" Y)偺#RjGkWs.".>9.uf&Я|U(W (O 䅓ehJH&:4l'yU&yw1'S8݇S:i}yҎe«-IdbNptȄWXŜNtN I{VETk:w5wW} f0yF٫7lLxвD^:9 >I;'m$^5l':9 >I;'P&вDF,$p pJ'XT ^oصCwP,/yk jt\z]@xv5"."Rg7XDE-&o]͹並3{| Nu6犿7=NH78k-ϻ|,yx]𥮮"E$D:HVs߳Y'y˒~Y ~~?O4vH^Zv0sa^}Lf %$)FB6Z˼wb~xcz~^ z#)-Gw,׷"!ID2kuzo /lGyJ]$/ !$$I>f1^!}]!Ey?ti|^=.uoTqמoB۴v͉Za^^7՞\:4]4UVX Ez_3"=zkݬa7lD*TPZUAk?U1_ޔqy*WqcSPKe[it-nodeadkeys.map.gznu[+eYs8S}kS>$xfxql%!$O@C4)Ҷҿ*D7vMw8q?܈$KřswE݊. \Wn2~h9pylEŷd-XL_Ukּ^5SuV4^&L`dWTϨDX7٪̳eT$y2ϓrp"΅"[E;-?(UEUQUTUEU]UX_+'p ޚWe\iiXDR Bʿq'[$oEUd0 L`M_5}UL7Dvv.p \=/l8fNJ|o"V.Zq%b!fekt|>9Ѐ4=qSMt I_](MQnI4N&0 0yHwj=ƎAJ&֮Wg/{?nZwʠ=jڣמ?RB]q-4U^?ENcu:5ey=/~򏱞2誷zKފ(>jmVToiZEFAwtk(A #jG}-(:4 #.)4'G> N ZNsG=O[QthtGML %@w:\_AP=%uG=-(:4 C :;?3'~ڧ~>zN0?zƹݮSr'FF8#g$g%ӉNmFѡQҜp|{00!>G}k i.͙ >푏;C3@PO-h:8\y/:HO4! }ܹ\F ,;5ņ'߈źPZT"7|d;993(]賗=چFvQL,J<=i:L i8?!]+Qsxk i.͙|#w<3ɣ$S`~ijvA-(:4 cX&g< $gz=Z۶X(NOsitd8=qg3qէ =F:j$bC;>Ҝ3ǝ!6}fLazbC;>ҜKs|{ i>lk%~j=rcqiNɥ9=qghfkO=S3<'>{?_6?%,9(#C*P퀊;/GMe?w,_oz_"/Um:4 \n6ppqCBHjѣ>Ho5Ksm$>큏;CWΌzXll&]7~x=ה&^ >KfF Jm${˸z_O s&82 νsrgЪIpLg()QqȔ^4ߞaɨ// ?rf|V"Dx!733dԋ~pvS263\s:|w '0Q,Z@0R z Gm QMq(O1 +=uhr;^|j$;o"o4NɓC R>CR\y 2ShobC;j:3335ƴZBVI%hEFAwtAh(Aq3$&bL~:j$^EFAwt4SCRẗz\Z-CA׶X(NOsi1Lgzmq@2ںSQm>^8f!6o LaJpY6T#yּf-eG!$[dfEZu&X V Vl]*~O\$_f.=Iٵ[ϳTFDT<ݩ.K\^"/,mItNKz蜯F겶t5FQc5~v5gsrvȍA<.6ķ7wk `3ZZdy(q7Xc =c{= 7|^}sc#ߔ, *TT3#ϝ'~B\ZwT;- YQr[%\U72ÛtΗmYppF)G2˦j5oVqU:iGV=;_e!a3z^5U{u\vo˂C8f7J9bjx̪;Wtj5`[!6QʑbUSucVQZۑΗmYppF)GWMձY{u^GVv7ޖp,nrdҹ|Dm[yΗ&۲ᰙōR;ܼ-Փo:r:,8C8lfqԃZPXʽ|5vjjVR{./>/7f9R 2%}sApӹ刦$ U:zA,Nռ(E^/vQFLҷXڇJ*J45;4U.M몛vyĊ7塷X#Q݅Qi=uNU OZF<k0 07nڋu\QRn܇껵f0NqgMk*N|+AoF0 |ӆ T O x#Pz5]vnPЊ7塷X#Q݅Qi'}Z5Ҷ7x;io9*f+T-`Fwaܴi]S]+bFatF/ڞ 䩞oCoF0 | #+bFatF/վw^gYi@бq$G, " ȁ"cҞ;dO` xk^BU.RI*;z9;wu%;r8vڢԞ OˍY-#W׷bՓE'ƍk-ZI d1;#yl) Nu7>߶EYU,s|1g^@u|N}OGj]r{1+oE ǁ'.׮u7ݟWŸW 7psnV$_ľ[8N&muw ^X|+cyOunXCZۑ~^"/! ZI,/b?s “i]SZwJ 2sޒ>Dyʹ  H^8 w. ֛lUV됐'xc.DK:MK(DQ6?yzqbp.()QqǔLqg 7d\\\\\\\_~8%bο̫(k֜- \WfU__-sO3Z6!5mqu7Nq+zPBgꍝ'2 4h/X(8u?&3sPKe[]m;tr-intl.map.gznu[+e]Y6~ϯV(=/%Yg)Ќv(Q&)ۓ_ AHHXLt7A&2ZW9n=yH\9WzS&њNޑ*9!\\\ֹ㏣0rO:/_ kE˧V EaQƓCܽ:s&ZeU;rL*2yW)қdQ$<#_96g찫2&E]5jjj}&KqW|Mu)9Y|O[ 2<0'qZ :oYd5)S LLTW\\58ItaʙhY.Uzz.z&20DRw%Lğew(!WV{ݨU.c79n¡pĒ0'M0ND_GYmc'՞ ӏոLL|0\L| IpcU< PX6+Ybe345~mo햭A{Gセ;?)F?EmyO)l3ie H~N_/߶b,*ދ$#D]ǥ5,hTVu{.}ڐZej"hAoyڀwmJ"nV))$/HSU1\TmގP1zϮLn[lz]gh}E^ 1]]G=X#08G&]Z"*ri,Ӿ"]4:?P(΀N'tE[k|Y~ ȇ&2+E \ F*tI"U MeWF %72?יQ;!> Hvvdlo,Ӿ" _.)Nrŀ%|"")%;dE5`uD+Jy"n?ޤZd)kݥ̆W7TI, ϻǪGu=MOz캾8H)VD]vp[(;;{=]q$AAAGU2 #(V2XEdo$.3qNP8 <>q>D6*;8A&2+E < tS+rb~ȲYn,Ӿ" _.)NJcR(RT6wp, &2+I\cPtG,vp, ?5Ii_NO'Ci< ';A>IzKopIt2TF˷<쳳hʈ_]Ȝtü4Iۖ$T~PN^jeXn%c!IL7| |wB|:o0~#fYbIL7| |wB|:o8bmdSmS5`uD+|ƒx|7p7IT䫭O(,C.H:aHgN@yP]UP6 CbG:W}Ilvؒ}vl7Ɏ[+(Y+?'8n31>6l%r)hdHL޺M {!xu2V3C1":ӘXAIF}E` RX!F,7K`V_;8Asr["E`5+H"U btp, $˴tJ3O,Ū`\ctGND$Y}EhtX:;:Jw9ƔEedB t@wt:MUɎ,:8Cߚ$˴|׀K|'ħaWȽA_a~wl5I2"y1tR~1{@{t([D4IM<2z0|ҭKY󲝲+\lfL5PP.N2>vwZ-gUPހgzɚδ~U8{!+L)d[W.j 6b#IcNgZ< ,Xgdu23?gNϣS<#7W3zxaV՚zo mc:qU6Ҭ;MZ5ԟOJJ:nF15놵q}xd=SOyTh3fPu6XwRGԢo? mt۬q{YwZGiJ60_OJJ:SlVUǸ=֬7/-ZɎM=7ާB@D@[%6cks{-ZɆ VAIg&-ud'S! "҃[d= ֣OZzoOJ UH1t>S wD%hN<˸]Y?EY5lW{?i7qUDISG[ <՛Nbo64oV/fVpz 6mUfVpz I;m:6d:ͬNNI;'46c## :|S>^P7![ޝfVpz ꤝI6u *xN3S8=S}Ҋ7/hSϐG4 8c8'x=m:2d:ͬNNI+h9{ӛ= ] 茅QY݈u8 @™}1ox '[!"Ԕ}l>2;iحa_HYr QE .đʹjbӂ}B' }/Vlǹw--Z:i<UZE\}r\=A faGғ ̣QլE\E'U׃?K7*n+yH(k5Cߦ/THtR7( .81蚽d^)^{6_=_l;>,n_VFC# \FcoV)@οPFq6J&% n.xeUt%?>M?ЮoDBFTfEg )5aHHs$:'XLCPPQ>>3zmJP,HtPd/t0/e\g:c ,X'fl2:.p \-j,/-/Dj&[y&]H<"b[uVt!i;J}h*h걛jcɆ!Xm߈;7o;A jPwfGL~IMh&[g1{ϳ͓-u#-,/7-[{1pΌy|&@ 3lVw7e]D4[.=ݲ,G~G{~3Vsf RCynկ[4K;mYMhd55]MЂ֢ }fa^%<.ٷt, \WnƲGƱQek&+:)_j >όc5zqp~b֒ `_+`>Ol`_|F3@!d>ي h4>|G,MK y76ۢ)\[7:wU%(A gS9 )æ'V\)ќ'|"Sl9̃|ߑh0x޲+YxwIڦ Ngݩ/x 3.-Pq0u&x~I'T MVuS ##0?0eCAGZJMDP,O٪1j]M4 1HAz4zz`d p~b̴)d~_R`?)^gmd댸jx .pEY`nPDRFj&fvӡ&z-fe6Ѷur☮OPU:PT4x2/VR69bwaU0t^Ԕ &09* VJ;5}-gRҙF&zSS.4X v2oQPKk6-\U/=HZPך%(A4x7 rrKefN `98#8#8#8#8#8#8#O|FhrW$}b:_ ]{٢mzB`;h`WPÐf0hs$xrhbQ## , \xB-tMDP)ujN&{N +4XQ|H9ЕMDPRaο0Ws*t53(0`32`I+H C-tEMϿ9S F!!٭Ϊn)fbۺ-`;Spf#`@у-[WoD %>YNѮ&zWåm|4w ն!۲uU&b(kj|5\G!sGWR-t%֢zi\&[S ^R%(OOΝXZԾ0r.R/6.713؈cRgw\+IY&|+)d]MU3jfY` #9b-tMDP?uS Ɔt{:<+P.96Ʊ5+)N 2(V;DikY)R:@av -;Ei!Zeo}Jj|TikD,%-Ebj7Ȑ@H# S;j_ ])mD%HQ~)ao@HY)՘6v Еh"(ۜ-թe/)%(OOR̋3ؽO4hze7}*6AD Ӂz:1mCuS }C := ~ M7]TݹŁ4DciKXhjr\&gIc`chhr4Xw Փh~wIZ4V,hW|=6wD> CF:W֋r~xb߮4>V?70`>(F5բħbKʠ^쏘43nUMz:;-[ՋGqtֿ=^'&ق]Y]L'rQ;_ەnCįTTXeV`ԐkT;we! "E?:]ޤqU\v>B@D@7:%rrRuU*z  Z |/ܕnuJޤꪞ5=&WѫO5j5hW" Y)bz`P}Vo͢NɟXT]ճǤ^ACVc;we! "E?4SdޖU ZhW" Y)b>EmUQCVv>7ޕnuʑxx꫾u 󟆆 Zv:T{ǥ̟uzw_S$  '1K̟hLl%.oW2̋v2)&}chFhKÓcز\{1'S8=Sh}yюd«,IdbNpzt˄W[ŜNN E{y:w1a`iF97lLxвD~s8C8v(/H&jdN"#s8C86P&вDFh-$p pJH^f3-xwα] z:Xv>O&܍gN"wk1'S8=Ssюe«$2Bk1'S8=Sh@&j`N"#s8C8VȄWXŜNNUw?|;C{eվ sA?>)+ 0`x";򍾱Դ̳4IERbGv7NWiQL%ڄ6MhD_Vbϻ{-'ryv:T{ǥ, oW6 #5/qJrM. ,UoTqv8ԑY;3333333g&'j/$(6p \jѬgUW)~Vowӛ~@)? c] C\ }XWC=TPB=jޞC ~(|).b]8PKe[1 cn.map.gznu[+e[sHS}jEBz؇$vIfŅPf(/}M# \Ŀ*t?}Ba=y܅/tOtK.^̣ޒ"en~y6VN{|pwJ,gROUPCda>O)7¢aEn """bQM_Mg2B݆dy| `#c+2Wϛqk&I <dx\h#{(9(2"/Y &0 L*W2W-X5'z,M<(΢u "?sGKa4T Ky3Eŷ|$ۜpW~;p >W•̅KNP%o `vBz&݊_P>='l`NhPΑɎ_z(OLeZ>o$> (.|~c(ua-@Ҍ|*= [cIl nz(|8⾖Dnɗ XrV,*Л.IB bCY̵6w/x{&*ӻ~ 7G6vq DoBNM?>X̻iSF׮|pI >ȧaP%@@5-}jX Q˦]%&g|O%åL9yMab1DҦ]%&g|O%Uuf芌ִX,۔ѵ,\R|#'Ϫd H尢b1DM]JM%57"JN WrUrcb?6et*7> ߈|*U25-Z,CT۔ѵ,\R|#dU?Ljz}O̫W6rGjWFi9y?lUo|.T2WӬ將;2vKjoD> q`c֗.o0'z]Ac=^ NpJ=s~_~5̿"6׉+1֐^=ւ}}}}}}}CuCzOCWrz+J`{Tɞ&VFzzu xԴtX,M]JM%57"J(OմX,lUo|.T2Z{U}mbҦ]%&g|O%CuB@.jZiX QmUo|.T2Tw}AMa-!ٔѵ,\R|#dX݁X eMz ~/|A&g|O%< OXo=!d{`ǫӞΈ#5uJf;ti/'- !6et*7> ߈|*wD2i9,iX Q)kW YFSp% Gxa|dGiZ>o$*3 ݀Wni^f؇;CZ&/xτW%cG$ŌU1N<(΢îq= sEDVɖ6Qh{[V`+F Ao (YF|FG3iFyw_M˚̎opsjl/ۋb{UG>lִgb6et*7> ߈|*w^;˚>X,mSF׮|pI >ȧHX,)kW YFSPݱ䊌ִiX Q=)kW YFSpU%C4Rrؾb1DM]JM%57"_ 7)$ۚ>/W\Y֦d̞/daL`!UwJ/ꡘ(m SW,`9+l\l,1ԋt5s@8OUHX#h@3QGqpC]^ڵ$/M d zZ.dW~wC|~ f0Q5YR`@>WA3O;cZj@lFQcN}Qdɛ7it&L01wfyktkxACkVog5! "TMt햫|Il,oZz;kB@D@IMJzNUmz+ Zԟw &5)镅r:jzk,?khS&D@4ԤWܭ˩htWerVivo~ &5)br:2YZ.*ͅN-5! "٤&%bm]NUG;=VZ_p &5)Ikzfzn\|UK[kB@D@IMJzؚ"魙V\yC4Wz;:քfKv@9W]'ez~~5hh3;0*{+".WMfz%ЯT2, H@T%W4]EY$]-٥#ߓ8/H׻]aAnxF`#lĀCC}|{7S8©:h]~.yA.5m4yf,gx^sP6|.HTA$D:HZ.+*b2$ N 5jӫxѻK<#ὥD?꣑N?x{۔E39zPk~J[=======:9?ƥTR๵up \jkUϒth&75J59rhXh AW0a„ sdSΉOY )/x_!?O+PKe[+ph-capewell-qwerf2k6.map.gznu[+eYs8S}kxx؇\d6/.m%ѡ$O0Kҿ*Dw)ga}?ܳ4 ooivX\P݌eA5 }!)fS!'+}Irߝ` XNŌ5k!"OV]6 \aϹTaZ )".IMt x!L$lwc:rƊuvF0߀ь+#$,D%iOļ7bxs61u%YVWd5>|3cTɓHT>ewKVd!``'! &f.aVBIV vS=4zT0 D?Y[ Y|߁h0SGy|#|!y6f5@NRxDeڬ)b-Fbk1}9VL[*'DyX|N,'B $-X$zH.MV֝/x{"4Yh%M;s&r(:˩pi|;  =b)#)8TMPMTk \|;  Sse[PfB Lѡ J|}MН4t;+L#a7ȡeTk 4|;*  \loalަuӚ,pW =h0 ̟Su1ޓkGM$P?uS t; ~ye;4C_,j_|gWåm|4Ff0Ldeȡ:˩pi|;  =7rY`k|-u0>CX"gYlhp8i0o*cQ[.UN1Syg >|6򳡋>+7Ū^裗ړTG4v& | y~ !SDJ25#mI&%^YNվ&΀Ositd8`hfCh\8kZwh"WuS S pJЁt4fHіwh",j_|gWåm|4gcGvA>D%~}MН4]JЁt4 3i4޲aȡďuS 36w@> c3Nd% ;FjHJ? IsZ8;@>mQgwQQMDWuS 3\s>1h0wx?2x3_ }C&2(r5Awtg(A#Й/|Nꅞ/Ŭ'b& p}%`x5$/VZ.4YYfEY6in(|eN;c+nk @+ />#.)Q<ϒ:CףLe=^8K"Y}1̢}C}wh9T-Fgbr63fjX gf?;4IYNվ&N.N %@w: z"ƹ)=<_:4AYNվ&N.JЁt41#OQ/Sii&2(r5AwtQh(A#gfb?R#:4A?,j_t'M %@w:hQ@2Υnyvh"/,j_t'Mt; ~fH^Z{N3VȡįuS 3\sN|f0*z[%gjՊY(W=9w|9fQl4+=#'OBrQLZ}"f/* ^,`I`L!{zQViˇ|ͶrrRm͎0Рg7Lk`%B%2Z~ܰu}t2 d;aN,.3'yn('UwW}h`3}f4 Int2^ ؛wtz:;RUY,^{PBzDc_?Ѭ][j_\-7x^/⵹ uN9O^ծ**gQm? uQOJ^juoRqUiW6"!.˪Խ-5T٫-Zl? uQO]V]շ.I UjVcm.$DB$t])bUWcRCZ(hjudyQ  ]uJeU}ЯW[6x:<޸ͅH:%2_"S0W[5x:<ޤͅH:%B_"SԐ(njujyi  ]uʉxx꫁ aT緆F ^]ADv{ywԙ@nQ!_s,H@gNb1*-Bָ?_c˼xvKV]Iɞn["BG#4@#/ _˂-)^WwWs E!Iȓv" ~IJBfC6'TЩe;Y)AJ'm$Oګͬ,|@F3 3ˠhVkEI"v uY)AJ'H,e;Y)AJ'X#YCG2Cg5@P"(yҾϵq]#u6|S|Y0e;ޝ՜At椝x d ,)djN:DP:i/ڡ,e;Y)AJ'Eۓ?Գl:9"AUho]{}e@Dbm.<0`H};w”yci%biYYwVjێ=F'o%p4PMhڄ6MϹMe%zςD4_ڢqWoW]^E^;/uflX!_Tz5ih"/"yMg=O@ lP8˓b~ݮEc5}koTY^$^V:|W{Q"2p&w9{oM٧x҂n8<qq!+w(^Yv=i4X߈}c;: ߨF5R˼Wb0"#1# o?֬(! z#-OX1ȄL'Zw͊?1d>fecA٬YM`}MB髑w?l~URUi'0ԞTv'O>|"DʼnZ"u)LM.pCUX?(Qgikz (Ϡn0pu6oC *h<4hР=cuYdEج7FPKe[b|!11 tm-alt.map.gznu[+e[8SVI:d6^^0/!, ĐW$AǴ- o@tM_̣pOgI( \W\2e~LEI=$Xbb'c2bhC`6)¢DU.#o > Re>[ GiF>ƻCEuz8ޣ=zޣֆλ3NBeȞ|I,Ţ ]vMR{<na$1ӢMkhV/x U#\ T0 `H>6ḢeӌmU%uo@> 2Φ ȧz2tEvt,kiFն*Fg:7 |RC_@GlV4ḢiFն*Fg:7 N R5 Ab>DfTmo|Kr'7 n So"U8;fTmo|Kr|OCEDlq[<Ŧ5LYHij0`"DU!muӦU۪䒜Y > ȧ3m"&GloiFն*Fg:7 8S4XZKWY=BEO/d'8 oSSƞ)_ M_ouI3ҩFJpmpmpmpmpmpmpmkv 8d;{&[o' v`UU+iȑ/W]L|B!R+=iFն*F'$gW߀|*Pt#rT?o4j[|#\rINo@> P3}H !kfTmo|.|`V@IH6 !M3U7> T0T+f~pfw !lQ Y> ȧam6#KhyMo|.|`Xg& WlY6iV.#up .̪wn/#]>>4H̅~iFն*Fg:7 :b:?:eAb>DʦU۪K߀|*. ;hfNq&鎫[ > WC"1{>+?YK ^BxU0vD0MXCԃrGqYt֞gnʊ8Y"j vO@/ @/+~nM8S5D¦U۪䒜QPq|`XX Į!ّ.}hiӌmU%uo@> Պ%WDpHV !6ͨV,\RSpQCb]"h[z$Cd4j[|#NGlE9`8U1Sobv6M.0}L LTۭXxlo]$ˏaAOXBF' t@'zW_~n$盫 hFMvtF=4V3>7'BӍ{hf$0 }U7oڛê¨x"SC׵]~`Wk*X|P' 8hf$0 }U7ߴSЦSM7(aTݴigV7|oZ'F=4V3>V64HjF0ڇQuӊ_'QN"Q//\方_g3uN@_oQέpROWf!yvT*aPQ7= """bRM_MOf$g) n? ;pser/$|ަLj9Q! nng\7W."<I*_\ ..ť5 kB HۅgՁxOǣ%KK23лtRf_XYۦ.o`&`3sJ喥D<W_χyQ4a3V2$\c1>aŐp7p3  wu>DzTQf~~7?Jji"5лt_dirsoYGi^^%H! &oc=Fc$FOjFrH݄C ks&: έƈ1b#ƈ1n7kg +qrF]SB_ Kɘwi=DA Co7_sY9V7Fwh{07!~caQ2\0&ªMhFӾ&/XXoD~ u2$y`aՍuh"F07!~~`aQ2\d]Uw UC1ڄѴ/ \ ȏ`=_Mª[ѡmh߄FGЩaTMUMhFӾ&/XYoD~ :,:4MMB 0߈(z(KIn=qXx#WF:MFmj&}!MkaQ2 ?"ЙUMhFӾ&/YoD~ i|E1ak7Y=y^+ ` `ӲK;. UƮɇY?9`!!!!!! ?Ctsw`}f!C{!;;7BJ|YU 9=Y'aŪsUC MMB?߱0߈(Ezwh"F07!~gaQ2VAu[Xuvh"F07!~oaQ2wXmg[XuD6a4 oBFGɰeXXXuD6a4 oBFGɰԝ'E<7!~~#dXpnZcgm-y^.Z ^c C&B i_~o, ~7"?J;z-UC1ڄѴ/ # ȏ!Gn'6A7g8JtzydAecpGp%c^ f u3QGqvg +8ٲ ]cy3B7'|G}|[D9͒&#" < ֈii͹/Ƌb/>oEha&}!M_ZoD~ iGܪK n:4MMB`iaQ2w9ܳuh"F07!~gaQ2uNanaK&b i_~- ~7"?JnY)V6&}!MZoD~ ṷ&D6a4 oB|fa0kI[ NݵDNZHɊޙ-iPMX EqdS-d,v.2,#8#8~,w$[g +q!|}`yG  URrK |n<$E<=cn5ZOՇ cF%kMRAâz ;;.!szSZw: 6b#i,x1B +S4a7Wk~xk]ۅ6" zRٵ[VԈTw^[6XkUsn MMJBtͧ6IueV VzLhhRr:45]ß5Xvo3! "iIW˩hǤ2zyNUn6" &|غv{L7+?VwJvofB@D@DX[SnI2zy^U -LhhRIk~L[S=^`URs6" &|ؚ"T+T~`UJs6" &Kx __ JufzQ:nE\Eܳd+uɥBW9RG9/ L+,M>z'ۥٓ?8/Xͮ`ϫOcA`ĀCÑC śG܍aӻQ)ᴾh3yѺ]] (NpJm' ӰQ͌NttVhd4l2Bg3S8)]/ڟXhoӴ8 ХW,| ڇJ>;w)[M,Mn6a'a~FcfO+ ϭư0, °.sX!& 8WkW{h V:@xԪ[q4[;M/uWo gY6l~a}X(~b} ."R=V> Q &`&?9J.wr!$$vϿ3rv|HhA飑Oi)gVuP5/6 W>#tsR=:}%.!iKG-}=xxuhZk1CMͣD9f 7NЮ9հh*TPj9РAkE0:0 PKe[zdklatam-colemak-gaming.map.gznu[+e[w8S}Ϟcn~؇efvg{;3 r†4̧_t-YCݱ4*ITD#A7mrWM7kZf;ٛ:M;${.pk@7cߎee2 ˆe 4߬f{Gx?lx3z dD)ebL]ίV/#ohHd"fwZIyWv[QW,/+BjM^d~YQND;NsG4ҩF)R,2'PL6&XUl0 L`jXj*HRɐm-ko[u]>.p 䛱l2$_ /$:JSOKU-NscکcЀ4=͌qs=$ Y&˯UbMlɰ8;M`0iDs%]XdJe"*_|Vsk6GzG돾t"<:C|UjR#N j3s.c^E{^۶.z/]|<{ 0-d`QrWmݵfuS1U{zOhڃ=hϳh]хlUe,.SEH*WP PU/7v|kж}X/xcdu@A98ԙ򻿈g?)ҏ?,XtGMyt; ~bKƙ<Jr5AwtQl(A7Ӄt*e8s)&"(qe9Uǚ;jpj(A77w~5^wnszD%wYNձ&莚.JЁtS7^P218Wď]Su S\siNo|4zf0LxNIp6_%c6E6ku,Xx6V ,`=1 bbMH+IVMPmTk\|# y#Q-Os=Je9Uǚ;j(2h 7WǗ ! &"(.˩:QEsC :H~K50Sie=QvuRn~p7h>ͥ9өGYj◒zcvlhMPr5wxG ȭR#e.˩: i.͙M 'G> iEtggf@1r5w|Ks9^h0+|Z _ h",XtGMt; ~ftn_|7Ge=V;>ť99GvTC˹I&9D%~cM5] %@w:̷H|'RJTZU4A7]Su #C :?vz'R>qITí?wY_nEF &*=h̷sSJ.$˕?,X|'A`N .b7Z7b%˂}ѥo4cB8_TI lȼaf5mO:p \>w\==B,&]-I]$LŮqdYhfY,/y{D$S h&F/*nIw=\ö}GGGGGGG 'G$?W_]B?4NvYNձ&NOqiNΥ9=`hVUSo/ߖ TPB=J1I,إ9߂߶"D@tL~R%Ri[nԨv9o+B@D@:%|λսIrRv9l+B@D@:%Q{vU6zRv9n+B@D@:%zvUϺ=&՟-zJ_"|yU=`^V-{J:˹"D@tSkmWcRnaS.mEQ3-2uoK 6zaOVgv97VnuJ>C"SԀ?j0).ۊ-N9ھ[?mxhhSUobWRE\}r\|&Я[9U(|1S H@IMiUqq]~|n?nXU߯v$ ӷxڇFhF.\˄_bvu՜NtNI; ufN"# Vs8]86'\&|׹e;0XINwNPES%isG{K f0QvknP&g:=Uͪ7|mbB("5W]z3wQ/H@gNB J4<=igFu:җKn:RG#OF(-:uy-xX6ȁݜW?I(dt5YsU/ )LM{ H^f S YgC*TPYFco gP7Uϒl]_73PKe[gS)aHH lk-us.map.gznu[+e]Is8kEaI:ݕHXҿ~.WxC<ޓ衸ܓq 8z ٟn Zd*dxMגvemnEE,~o-JrvrtGyt?Ϋ{~ >cᄲ$70Tq!*j}11%]} 7rB $O@ns 88G堩A!Yt\6os.%f'(Qh&sєl51=_ʂ1ٕ)&`&`U\5clʟVdUMTiy֖5Tgq;zXNc@mtFmu_{?G3JLDBNm>>ʅK Oāl%IoJK) llO0̢\R9 !nC) llO0ddߏ3{3,||P.l?BɺwWfn_pi1z1zzoj ﾿1>,6'/`¢ ]|uI6$m_?Dq\6eyWxxLdLW'Z5 A3]F+}=aIŐw1蒳/L7oR*%qN=Łħ\&CgX~*=dE<(!*+îB=NŘ\ R\#H$kbFݦ x/b/^)^/NJK'~H,FvUoK'>NJOu$xld-aonKs7//iի: .=|9WI1-t|G-kŏMAcA ՠׁ3Xj%Y,v`mzwB/%MzU'mCb41jWFo:qrd(?3+h+Kk(*{Rh9T=>X pd*3KW[=UBzp{?UCWL}&>3z"zF؁؁؝Nte(W P+fb"yhtJK7M/^(`Œw7UeEb1U |#7 o@|:Qk1%@Rp@n]'2h-wݚ2[$pU |#ȝfG:߀t2+ޗHn[$CuU |#WK|P-f#?|#.o@|:o_GtGք$MvX\g+|͏t'L}+grr@x"M̪U WN|7 > dĶm:0T\6۴H,`4jWFO8Pqdkt?zhgAimW d>dND2=4}Vd {&xu2D2MKrTiy:Y<*"2[nj.X@/ AW\ߥtT@{[I(/6Qq6,Լ//ojsrkb41jWFo:srdW,"cGljX iVծ*_ . O'åJr7מٮEb1NvUo$.3>JSɛpnSW)L\>gd.gۭX!EB``9+,:2,gdCV#.Llv$rh:s\i92$lHI$;,d9_(Sq`n Ȁ z!-ĚZqS=?>ߔǁ~i+030ˌrRo:Yәo6tT|G&F71VN ؈=hl=wex1!B3:әW^/SlCn џ^\#;Դ3M&D@MjP +* u%-XaUi&" &=(L+:TE^U`J10_dB@D@ۤ%QyU UOoCU'CNM&D@MzPWPc-*zu*ũiM&D@MzPҙrWPc-ZJqfکY mtU5T=XWE0pX87߼ɄIJ:3>"m_E0tX0ߢɄIJ:C>"m}+TaҴS&" &=(l@5V}'-a9R&f("."LgBJԔwHH^9\tFug q}}l?۴(I^W.OC:N 뛆3sBCsCț"NjS8=S}]pB. "#йIXX (POOfŶ+΂E4:¹*E3+0FQqqWfmYaUa|h[qq`&߲-Iĸ~?XeQ\h㬆/MPY.7x[j.JHg]tG.KsF 5f{A6F90(/b=ɻ̾@@~1F5^,gOɬ49=ۣ ~$/~3F#]l c{,"ѵ.CJ뿮jʻOi $@$N. ;>||x>Eз9k(׷F:-(N:S8HP '2|Nx7Ԗy< Ec"_ qUdg~V [W &0 Lf&:W}IZ$UƾJu5H(ӯ J hN䞩=BLͦ3[K5^ՙE',cWUipvl%D D49rsT"BDp&\^(Xw˪mޭ [[S@&H'MyQKH\xgouUW>ղqNwqb5}ݭ㬽akWw}GwN_1Qb@{ dEn;f;쎣Ыe)9zsrS|J (ϕfdE۵iQ(i"`VzSJ]}c6 mFytG<}9H L [YK#o3}ę'))E\mKک4N yIMFIebDI酾̗MxW_MӴ ).ɹ4'w@>JS ǑaֻM7YNӾ&m| gW\-r(gSth",i_t'Mt;(?2/TRzcu:C1r57>ť99G3p7tzߡJr5AwtPtGF"*MDP&iIE@G/07DTUV7T^n™ k冣AAx)y5rI+?,i_|\s95(FϱRJZ]]MPC4ko|Ks.GPHI5+nz7%jqֵo=^JMQjRWidzûWwfbwf:dK[wm2'8*8*8*8*8*8*8*/ Ub,m+M`{IɞR!!!'M2LZDM19aLC GWMӴ i.͙ 'w@>J4)Pw\cUvh"MӴ SX&w`J4M-<Ju&b(c4ko|Ksr. >6VB)=_AǽE&/\|; %Cn5x/{-ޥkvr"O7Y-{Y: 06t(yw"/ϝ`*ntCExuNJ2^/Mg׾&p. 0{'Q}H_Tuh",i_|S\EU(Z\!8TLoJJ<ҴԽՀ`;[kL  H|GuEܖY\4l1wwyYSco}9n4 @StҾ.ϲqѕC޻w~? D?OD?O23.nҫ %a4ۯ(7+zl-5z^wk63&i(?;4IJt5g&ņ`,]njK$S\(`ZXk&"(o) Wh0 $ÈQr)|#1b:0}LEL`z %+O?e4–ugVNt %_'o(˘VwyHU-<ޱ"W[n*ڎ %3Go0"{2V1?mXYzM֕3[oI;'m$ kdN!#t6s 8}8v"Oڱ,cv S))SyҾZ.໿umh6h4frynv:'/ oN!#t6s 8}8Vdw ,)dfNptҪ;#Y]G2Bg3S8݇S:i:^yݞ@ЩQRO,RÁ 0dЗXs'oޡ*r'O"^,ڔ݌)z)}i^/^:|wW[Q""p$kt9Uէ8gIA? ~~ߟ^T(^[3 iF!zp?;ϿQFu6J_&B\%m)nOy]|G?>Bi 9ě5 6h'Ԟ`#OE=Z,U gO+)S9GGGGGGGG.NԒ6I? n=.puhֳ*n@r5_3P@Iw>Xgg?0i*TPXUA;~("]_gqy)7q[sPKe[N[[nl-sundeadkeys.map.gznu[+eYsF)*<lcEc(a4V>b @ d_%L4AbfpKVѦpzn]R½ś*6pup \U,XG]&<.9+0ꡅ` XNE_"sxoW)i[$q&0)V* \\D:n$" Uv `#QPʀ3q'f\ےkiQ>5&05UB8`:1,"ᆔ Y L`SSbTƪ g"&![ VWDv+rf2ML/ xUȯ3)"OK O>.k#q8b1GX}6g#p1¸ɮoķMTuN"QBv^!AG!c))V|qU8+ :èQ50VG9999999ysoV\yĿ+Qv1R6Exܐk>H|:ʩm5B<׏5B&VyTݴ0WiK:+/wV;++;/ơPp(8sϹDUM1SfyLq]-))T[:)sbWl&J],x ^tQwcݙ,ː/8,Gs 9ۘO\ETJS[V @7H* $@z wTqң1B-g5 .I$'wD> g2NB.:s""ҨGchᶜtht'Mt{:N[ȧGј!>嬦C;iS#,RT=!m9,΀OrIΔ(N|:*KAhz4B嬦C;u<%0 x;6 {(2;Q8c[j:4 3\3M'wD> }`D@H2Yɸ-3O~ ڟY R̖ EƬ ϶th|g'$g)N|:k#nA&h̅rVӡY:^(Lo <OA:3ML*1Q2+j }f1*$x10ViA :MSSSSSSSStH$7y?/;EKu% &eV\,_7i7z CbI;__q8| 3>z[ۅwգ8z,v3=(!!!O`~X!B&z!G\hYMfw|k$'wD> ?_ r2ј !.rVӡY:20# fM\@ F|I{4Cm9,΀OrIQt03@(RRј!m9,΀OrMGPϰrXH {ݣ1BԖ͂ \|;"jd&t=M{ s[_3\rIN|:w0M6wLlMf\-rPT'ADTJ/\H|M= į\D )hf]f ] .p\;:A"![ޣ1BmYMfw|Kr |;s9'?k+|jblk"7(qNx&VC I8rU9㺌> )l#_V5m yg}PZg2pxs&)LQ]YsNᱷs7ٲF,"e$;}ј!w2nC ={pA gH V6 &sh̃rVӡYН4]+JЁtS3b~8i=M)= ğm9,N.(JЁt#{3\8h̃/rVӡYН4A@)AGo/R,oi-ⷶth|g'$g*N|*]r?~,705r/w;lL`&&xOSf3:f3)V+*ȋ5w$> = F>''ϯզ=) )"ޔ]L@GTL/T\D꥝=_Ӳɧm߇2uz Xr*,:CSH__uv׫WZ3 eTk:Xӑ/nbN0W"QT UPhug#g_emB *GTu0#yn!sU+C‹iG*5뙽}UpphWN9#J^SFZ&MeZԞ *)F֪7m7?凞oS{*8C8t#MWuu6Toxo騕j`S{*8C8t#MWucz{nGTC U!¡];%)hkkwf ZNzjo *)鈵EU]Xxo凞ԬЮҝLZ[dݽ Rl_!USb zWf ŽZzjo *)gl@W=VqOtJu̢Q^ ;3 vŇ )R>DyȾ  Hs\tDeRy[\_ޑUQqΪfuT.}c8\h|>'shjEdY3+Qèh=~xBwy+zY FEv[ J`F0/ڀ_۸.ѩםZ3 eTk:XP'qJ`F0/ hC]C#o%Co3+Qèh:1V=61v/i*UO7 5y+ݻ(aT]3_O讞(aT_≶o䭄{mf%0 cxy+zY FE+h9\{YwF+NH%:bmTWb2 2د̮CS\$OW#}q+L/uw6þ{_M/ Yl:|ivH Nؓѻ5IJ`vk׸s/kۡ; ܜb߬SlW%ue%V&_ky(JvI`Ӳ]:uE dU|&C~`<'ջb7뚔Z-C ;'4M5)3HuoBـ|7jj8͸?C *#F4v=4hР}U]f".6?DdqPKe[1kDD dz.map.gznu[+eYs8S}kS>$x2{(DIO tb9 A1&&ӿz[9-26&=\auruD\zt&tB$cIv&ejq]l0#!ܱJL6R5A[QBB̘MŶ.*:]n-]EKb#g.We#GY|++&ݨؕR[IrI x:ЁtFgb_c\DBD4#\wIɶZPnYku} x4@g:&fH>3O*Omv~pYowT'ŝ-QCgtAgΘkƪC=LR]LW=!NQ!PJP~O+(١HhiQ@_ȏΣ<:ΣyZ35_ o rLͺʸtN_ٮ\P jW:W}J[\l;RϔOʢ%t;;zN |4in>uȉ RL-|G%.s<֧tEw]tVݥ0_fntyh•3XoU/x 3`W],#(?gS=)C%Y~z%I&ZW+24Lc >LÙ"P&٣ JוjMo|Qbs . >YXG*iz ֣ JrZC;k02Q[;A_EltcZh‡\$F6Ҝ 9f%,TС3%SSh‡R-ӡI/ mN9#Q04+f j%7=\$F'Ҝ(&oz4CTth|#\3[N| cC%ޮٕGh)3~G14q ީE&ZWTth|#S\siN| #5M)Rܲh‡o]$F4gN| H*gd:['dպIj_N**(*¼M3 L{JE(+\ǡ-Ί)Ky-N_ջrfxӣ9?a`;ޙ`WlHHI ZvW.lJ`DQ⟮Tth|#\3 'wD> BC}иф%.]$F6Ҝ(ԡZ[7Uk;3ф%^R-ӡI/ mN9#Q0j0xs)hϏU&<(qJL&Awtal(A'G+bf YJiI;^h‡?R-ӡIOqiNODYoGЬp.oWHa/'W _sSpiN|  z~%WY:y޲c!E?)J[J댸4R.p}3X>$SS}ۣ JJL&7>ͥ9ӕG"t(^@y&|(ڕjMo|Ksr. >yGoc\nѮZƕ>L'ΤY4[60IBcˊ#MAjh1[ ߱2ez?aw sf pHL=җ"b6a:Xp[P0+*.o֫gy/Ku.r7h 6ce%%.IUr]ݺRmu<< ]FϽ"EetDLicffG3d9ThMR_TthtgM %@t'j&v$i]*TZG+2YEsC :=?Z١ Hݧ JpZCҜ45(!35' C&|(+2\|;"CZE g`=sWe:4 }C :=?Z wi?%D=įTthtgM2C := ~TOJO˕xxǓ,g5Bh3-6DXUmO]G@Qp+=(uӨbFRmVlN\cܱr]dڍ@%_%ės%` w'#< #b"Q< ,Oil:49c >!<3 >3Wovy??OW/&kJsjW!0q:D gyc1wC$v!W5 |7|7 v>E]毯^-TPB}B1Qz5ٕ墽CEpp.223/&+$#R)l`QjT*C8v J>CUkxZ r^pE4( fz4-՟7ޛCQ.텇]DԺhg/zZr^tE4( fz16Gwj5y{"8C8lѠ3.YǤ^9 T37;Tp"|fEmxo0(.!a%!voix[j 5Gujua]Dr.&4cշ~B!5PQUoj,w)/~_|&Я*d>#5uA8 .3>2-<7ǫ7lS]{ĪfuR.@K t@'ЉG'י_R/lKiUzgLe]u.N _<&Ƴ}UgSYWSsA$d!OY٢LK1uՁ 854HB9H.w˺LzO 5Z]F6]0N,'L(heв\ũAAo"6-:_\ũA2$'ބz[٢?ۘʺ\ $s9HeW<sJU4i[/pKx!'O1sae2hTU.\A2AoB] +[ tgSYWSsAD͘7lV;ҟmLe]u.N 5cb*O .EHK1uՁ 854HԌ{ Iϋ콞~[ϕ^ս@SgNJCC $@'J(/7O/W8":X&.{9ԣ%5+'L`l Vb#ϛ\{&-:Jyhr/W,Mo6K#5/j;J6-ZYR_jf0{SsOņ7:Yww")6;PkoouQ 4'Ǧ==Ye|VKq`%vۮ̟w[_8=2yFja5'y/[pF'Q>6(]{ZFO2u{|ۊ57h+ޱM b:ց'x: Oft-P|jQ: Gk$ 9q . ֋b[77됐}<f6Uq~^q=Ȟ.|0^ϛe3Z,U eVyR1K8Uzl|"D'O"ts}ΘiYU4-)[s:gyFչ[?8Lx!_a(*TPY׽64hРCUu5Iɮ%_VPKe[*Eǔpl-dvorak_quotes.map.gznu[+e[wS}Y܌pڴ3N3syXI8&6!Ejh_H{#i(& -yFwopKlCΜ.ޒ2Qen>8y\lCeKMIѹC9N;F00ֱғe?3>}1姌 QٰjAǦ/ǦcCorBEr`#c++}NИͫlsii<dxX4(܋HwGav L`SUUsS~{y+,8I~.R|BFc|#R_,Iȯ=4rOݣh[]n3p >W¥ NИI\ߔ2$O! 65}&ݒ_<'إsK('\C`wĪ#-.{h_$4빊샕|H|*ʥCeZ7(%ty+ '8 rmQo~[&|$x>q)cU`%8F8F8F8F8F8F8F:Fb.|U]pĞ]U|-s%t]U}&*դDk;? $Cb}{;s6G˘.++1`?l鈥/xLxU0=ݘ?jJI4Jg8nũ;>o$> 3WL#γmPIcLޑȧ?R@.tEb>DfTo|.|#``8ܟU|leӌ]UM%uoD> :2 &W|ϕ[liTpe"g 6X2 dTp%V{h DKũ;<+lʈ;{&/-3 T`{=]"v#G|zy zE7čY r_6Z$pD¦UKr|#`Vdș"d6^Ḣiӌ]UMOrI΍Ws|#`VdZ\18K/j"1"{mӌ]UMOpIN%9T0Wd6tl"1"`ӌ]UM%uoD> sVy[_3iŏISQS@cx"1"{eӌ]UM%uoD> u0\ŁK4b:6  Y>ȧaX߳:tC6ͨU,\RFSpQ_sG\:zkfӌ]UM'8'xo> 7)ļ@@kiwE|¦UKr|#Пɷ&݆Ew1m r{5Y`?zޣ=zO?B?FzGB,۫7EE$qm~[a"+ڊGv@oAohoԏ]auq\HN3UWbF|I(/Z=lX fNݍ/Oؗ/o!vv-7~(ދ)w<dY*_=;_( +@[$f_d4jW|pI|OCP0:$;rEgikv,DofTo|.|#`XMlniFծ*&g:7"_ M$7@?%8fW}kӤϞtwda:CUfQ@>Ḣeӌ]UM%uoD> oss'/7E[$Cd4jW|\rINoD> 7#h0mQ Y5'7" >Z#v˷L҇Gyci_yXk`34 jMkEZbNPvf苇]31b.7|`3<}s&o!BWU03WN}GRrnp6{rfX!Eә+JJtUayZ˩=X!EjP+:TD7*Wl(S{ޱ"8C84Ԡ3#WPuDwQy6P*E_/cEpphAIg譪hJtjR)z9+C8CH J:SlU UGbi @' t\h8|=;j($if$0 CU'OOhӅ ZH`F0NZKЦKM7(aT>?i/2L j,+k `3A`-:5HAk5#Q¨:i xBn$Ck5#Q¨:iC~yB5HjF0:Qu.Ibmw,[m[q4Hnf$0 COŌ.OhSWӍ{hf$0 CU'x64HjF0:QuҊ'3Ц3M7(aTyFYVҢ{0 _A :MTb} (P@c4b\PuiTj{8RR\IT+?jP}B' }~kylj?^L_\m~P*E+0.{)/W f:%^J˞ W,j {z0;3lK Fv6q~%,7.Jno*$^V:|cOؓ6Z7쒼"qn8wl;]l;'7eocFEFt7lw^evH|D;ٛR^&]%}$ _Ӳ:]A2d F#]al{%c{YxGR.keE8-H@Dz4Dr:3z bI_$Ϩi,\T%ћ/%]- \WUO_O9RL@7@t nMwΆ9Άo6ޢ"D#Z4xG$@ Ҵ2OvYT}W3PKe[F,Lgb-extd.map.gznu[+eYs8S}kK>$q43;l6=^\ 9\SCR9/q6"K#"t7v--懲_=-).vJ;v up \X7cLO_B;'[}JxЃ` XΊŌ5k|ۿHY^YJVeDI독T8F002ce Gf)V\^̓ߕu,p0cIǒPk\8ᓃyؕRK<#x33MXRfJI5ݱ2a8&09lƪBDL=de۬sI¤/m]u\%Y&[$UI*tv 4 @C!0s}O15mf+kPliXx~^qr[MۇsbT @|LD3F.9H]YuKx;GwnW79=hʩ\䌆gnUR𩒭yEm'x%~QG:κ vVuGQwuGϰe/ljɁXܷ!dea;fVT@Qs5GQs9}%xBM[Z)+(١C&Dջ#fmwTeK:fKA;aTGQyT?ӗY-[_.,𝐏Å3.:]1=6):YEt11_3%D %~kCMOqiNΥ9`PݦFJS)Sڗs&b(6):4LS >𝐏C oHucD %~oCMOsi46 h0 5bL5r'iL۬1wx:&.=xC BuFzZh»hCMOsi40 h0̟iu;Z=Mi]&b(r57>ͥ9Sf8`_&yvM۲Sڄsst=^VTY2w(zbW~e[ ۟m/gv(h ZVAUP _!ջr.m/#`;N{L4A`VDM%LɄީhbQYjo|kJ\|;! "JM},+yLMPr5wxNGY 5UkXC%z* )D %.,P|#\3N|4JV =u G1XYNѡ&F4MVM?CNR`oz4C,P|#S\siN|4hӹ?K\ j3ҜKs|'мfw`"xWٖK){_r cC*P/󮜩E;OiMDP)+xΩCMw7\a. D!QJԣJ[5+[ 紡&HGO 1HAIip>jPIl&QңJhCMOsidf8`hVODУJf9E;khj(AGVj%c*z4AmSt S+8%@t4-w`_m&b(kjo|-\NgÈ!Pr)|snt{ L9fQl"+OM2L I٨W3?Xh`C]1J5+*T+B(-ˡ0̹РcV,BjZu{rV1<w3w fʙ6" b1q_\uvb_tW?70`~Qk>Y^3] 3]轼GXӻTz!!6b#bSg3^_eUB *GTi03p^/Sݪ"gזGK f樝/B@D@7t) C!"՟6'wCYfQ3ZݛTn>#W͢Ng.QTDo>#W͢Ng-YǤ&z \Fv>B@D@7:%)lgLZP" Y)eU=k70f͢Ng&--2uoK &z Î\|o~( ,|ؒ"SԀ*|¨#W ;[B@D@7:\Lho=B!5iGV]@x"."Rg3~mT!ZQr.H@ .3>*)<%_MQ~[vU5+/]qwKS-/c}#:u|LϲDvbNpz 條OE˄[ŜNNUOSv))]D&ԉe;[IN.ZD|EQ? \hP3^U} dЗTs'oX,5"^ɭ|/,=)j')}ޔYQ /7:|lNWGO""q$w5غ\{Z̟ϼnHZ{2 yz!6gj]H|ĺŎSoE)ű$ Ϗ陮n/y[|[)>!BL`g "E$ӻjۚj˖C ;'B4oFo]Z%o[RG3*O_3Qdͪ-:΃ 95KN-AE"h#ݜ-/Ycxޚ3T{p \Ѭ*iDt_3"AJw>XWW?0*TPXFcC wPe.bW_:țPKe[; al.map.gznu[+e]Ys8~_/3fE5%:$$`h!E*G"t7!4V|^w诞?V|NT\xxU&؟U|}D 7̯s!>HE^Wˬn"_WE]e\&"٬t6U[]:_+ SŪiE~ZNkF].E"oS4>ŜEk|/'ǜ<;L5M u Gp4qOMu kDBf5EY^@ @}vMt \H慸O^䛂4ϲ؀ ؀L\W"=+';uqy2(S LLTW\5ѹjܐH3o% o3'b&xNNNNNNL0z.s2Q`7E\?L7VJV|z!ꇍ2^$q.ktZz``N 93s;&"u]J-j˛N(-Ien[֮Y " :SDXp'E^INӡ"Н402('yBUR94/f0ExP]4*I|##B7(:6pomt|gO8%.8z& ?{3oG̟=\AINӡ"Н4(6('?$?{ԀpE~oCE;itQdP=:N~2S-g}ؒmRx1;pfZd5=]w C ʙ)tjrB5G4*Ӹ4tjp'96RQ.ԇUk+ֻ6i:T3qi08I#x-GО6VО;))TQH0k<{q&ez⻼ܽWn;WZ}+ \1 ĀAcNTbNn#)r31T5((Q 33aecG==y&9Mw4.3|Gɐg& QϣjbEQp E$PNaz8  c5, Vt=2p6i:T3pi2O78^I|'4i/\qr+*ޣ 6&ږ 3 O&'QqF-K91ߴp mZx!|Ke %vA{0@#@ ̣|d?oOmWn|gO8%.8GcP.3 Fx˵Xb#6i NUt@T@2֋z+G/D՝(xΡCEm| gp${$*$FǠzƇ"$P¥qzjܣYq24{ȓ9%"qzy&dS_ieqau]|_[p3EC$erCE`<3`F`9Y^cjFN4m`|M!J-sPHi45H RNxF3ͲDQ~쪊+]t A  Mã*}hbNLfN0z|tNN-)Co3Q=QhhgTCg䡷S((_!]WyUIKC/; 4'k6[HtZSS((_ch#*䡑%;ym0 0.1б%;ym0 0.gi raN:g}5T^^=ld!9A;ԙؓ4TpB"/$Pƥqc(Nt0(Q,~o0p‚"$gUrN"0(6X#F f"8RT1y&9U@wȠ:{tfIWQ[.JubSp‚"$PN]@tv13',7(JNP6ɩ:T3pi |wD| ̰Lc]}o&ǺƑOT*If%#~GHB=mSut'. JG@GF8Vq:TqZ}Bۤ;0whs̘l{Ε1ESI E'+6ɩ:T3qi>;"> 96RQՇՌ"p†"$Pƥqf>;"> |f*r싔EJV-*W$#4B#4B#4B#7INv:8omnت6ծK~O ?)rNteaE`v`v`)X* LRDx w ]h>Z%$ԨM@,3l )ML@3|NL~i6R \INա":< ˂ xwdxL*:C@hǎ6y&9Uw4.3|GGfE,C51Sϭ1-[9 E.$P¥qz1Q0XZ&؛NP6ɩ:T3pi |wD| J ?os[I~jq;| qi|GG{@%̓ 8𒋷3bI6i NUt@T@E3֋;T5Pz8aA_$U*:M pd63KAIͯ i=6y&9Uw.Sq|GG93ϊ&j$9CU)޵I33cX`0} &B3c>OQ i\=j {3fV69< <3ՎDQyn*],ּՅaQ/mɪikN})sxOsbWyygl^G2$VI뚕nF 0׍+30wLi_?pš"jCE;| 5(^RjA$% -$7%@"8͆@zHA @RpQjŧP$_Zk!=ȫ6ɩ:TF%#gfVM&Ѹ菼TPS',(GT*I%#G3|}1t lCE;it]'G t@( & ےuU'l(kT*ke#30Ar`0ߤt]YNr&3^ja%-X׬zgݺV`V`}FX)G.s7h4RX3TjQr5mjQd\FQPuP%:T2d>YB]qu{\9<Lb,,~@Su7}Ix1U]ppNsGwJu^/O}jf`f`~V5"qAD:8qK5؆m>m|D﫺^-;`,c>k>*rvm~tqɏ`QjrroW ESHK )l`QjXw  [D]rsRv9*AA:%xtUzsR͆v9*AA:%wtUz<&֟5֛#:J5\_a"|eU=`V#;J5;˹"AtSkMWcbaQى]Mv  [DLԽ-6\tW E)KLbV9¨T3*AA:T ho}B!6иTȮ 4ZY `ԙH_K9T0|!C 3Gb˄hJ"e;,ʯn|jUl3ߡ<pN'OdCKv|kjNPztʄ7ZH ՜JJ E; o:d'z9 B!EʋjeO&\gN"wo5'R(=RsNGe›$Bo5'R(=Rh@&i`N"-Vs(C(V}Ʉ7YH ՜JJU_=u^EfߨN%>bm\j @H݌z3TDJjZE~靵/k)~䬪$wSfe:oӁ>'snVbϻ}%N:J5yvj/]؅ۥ, +XMӎRcƷ+VV{).>خވX2$HSb]IfirQzOMs{`-Y{5KKz<BqZW3aqs[f`4X}pa] M XWX}ceQdw15 o?*V ߁X'6{`$,5S.YC.[0i $@$ i z~z늵/Kߵ'Tn3Q,ˤ-:y)nM/ggggggg=%_/>-8RekP z8k ","= kz H Gހ|jj8ú& Y+{\e8p1CUMuWj?B#PKe[0MMca-multix.map.gznu[+ew$qWg1x}Jʢx4I,1Q#Q tUgEF{# mဘ{#3*};|ˇݧ/Ͼ/~}˺u-ZE>٧/]>_͛<ny.G8{ |ý'Ț$ {?߉5➇?>4QJgmP iV)]CA˲kV\ϣi:S pQhjvK竂7jƕL7Bz$4mJ7qDjG\fs k/xBuq?=OTi\9@uuFNc!(A}*f\~y# vz!(AkO0P` $l*HDL:a:+2]FDxsmWg"9^g3Ts}XZ}Y+3۫RcڕqiR0zve|yLC?-qԽ߾7иϯh}@u|e.>hM{BûǰjzbMDTǻJe1H5 > LKŤ񸛔|$**BӃFD0JXϗ*IKf*EQab):BUiT5 1Zm~SypgĔgx4 Nb`R#N %`6 WfiΈy3߷ZgU[YZ309 \%y 2 솯ֈSЭܛZpT< X'Z REW=XDú 5}|JDgZq\xP*75uLj`"vG0Ej'xdyg*ęP#il4{CRE)펷f:٥N(iZn5V4V!Y#4Eųŝ,ęHJ;B+q}(*ocaOx"zqTMcQEJBHMrגPG:@{JہpB.] |ЅRwbj=5oJij3dmV0pn O0'[#[3DڌO퟼o?7_=U UD .I!Z'Q4']StzuK6#ɇP;NLh7@O;'-U;{,1CB։$5g΅ YN_D܇x/ O9rwMHT -=@uטuFNcVԗv11 IF).d5gEYfןajKEY;$u *2~Q2rb>#)rTBn߫ @_ ?\zSS:#ͽ-\zRrl´fW*2jmlLWqZJ 8qHB,sf.&\Q616>U @֥=ꌪEW1TxM+c=ZL.ṗ P;LrLT^*-U܊ljg$*La&0|u-Xš5WNhg葅`&fls7%;|v߇-GGڣk;noF|RǢQ62& %f _33bˤ4};1Uu0Ej*C޴ڡIo.ʸ. j18„) L@{@r'd'\~MWf2o3! Pfi\c&;Qϑ3wژP(2'Ut4 3EG03k fjG9f&Mb7l*H&Ex*S!+S҆$A%o!&$p\Hn;Y̵NɠμQy-|| nKXcռt5iarv5M'6Oq/~<~reWM$Z[^O̾ =8Gq}>lD̢6BR;<΍:pozad܌^35L#P)%S"59Uüہrke^h]r]\# $ aR\A$US\*'Hhq"b$4{^NN ہ4^a{e5G=2lǝʼDC]H0C34UK'N=gl,eW1}RlGNlMY+)]H6$ϩ\<^ Jy45R_!f @wn@*)!h;?o,fT|Ez7k*嗩W8_^M۽G.'/m#k'{Rj3V/V}[#?Yiw4ߴ˵=-ϪcWG:6@8+.:_T^P7Ud^6f2ꩮQ{zJɯ&\k w%f;5^pOVx7 D WfμB9e3y/_^*@1 #kkͥF_%hxِ!H?\Rm?4Ҋ3 /Gޗ'ºxE=)cn07gLW9Q@GwH#Tq Lq3𒵋;A'x9Oٚai%_gyBjppi(!z#I Nu xDޓV}f7iTca#R4jV֟}ЙISp;5w5DŻ""@ԯp * X0o7 i%FB, .P[^܏3-G@o z笤Lxz(z}Mģߌf #? ٭*[opjE?~y}rp8*>MZP-\ օ؊%]cJh`_Sxٺ ?@@2?rvʢX qT8F{r/~ S8Pub9Mdq0C/xQ!ߋ4jS"gAm$; d'/,4q"¦hg__XHNP7:(N[~F 4~_kC5~7sȳ4u!Ԅhz6#WC`%%\}qWjAMx'3̄ JVUS sqc%TkT*=DѪ6¤Hv*%_JU79Vǔ_f2?1 |kfH쫃, o1gDtђj{0=oI Дw\Iʗ! f5ԪI^t#: 8 ]IYll9Q%,.0vChԡ8.`qHkB+aJ3[+SԀ"RmfʁRޝT=ZRmMVM[ )_H#L^a,fພZ]y йY.8Z.`;v'e@#ȿϨwRtxUhppGM:GwC*wXr] Sykp5T{)r 1wT#$T $y25W7MP:pC9}`,Q:4H8\R*Ŧ&M<"efPA]ɪ^b;ÿX+ZR!:Vp;(EͰD&mD%V)/hy YcJ/k M3vP Tu3L$EgQxS9#w3UT۫DyUSBh;H$SW7ˮV{W^c: 8/mrٸnpFgT K;a) *4L8w=ѡP4PlCl4cM!w%Lr>5T{)r 1wT#$T $y65W7MP:pC9}`,Q:4H8\R*Ŧ&M<"efPA]ɪ^b;ÿX+ZR!:Vp;(EͰD&mD%V)/hy YcJ/k M3vP Tu3L$EgQxS9#w3UT۫DyUSBh;H$SW7ˮV{W^3^ѹ2]ze! 8-kaAAЊ +a{`=,wA -瞇P()v jzRǚCJy^`USD=1)q 3wT $T $y65W7M R:`SC9}`,Qz4H0\R*Ħ&M4"fPA]*¬^b;ÿX+ZR!:Vp;(EͰD&mD%V)oy YcJ/k M3vP Tu3L$EK̢sFd)Ng-W&)Дw\IB2o]3p]Or^t/Ft^.8]vNg_.URΡzX ] wt(:GOl4cM!w%Lr>5T{)r 1wT#$T $y65W7MP:pC9}`,Q:4H8\R*Ŧ&M<"efPA]ɪ^b;ÿX+ZR!:Vp;(EͰD&mD%V)/hy YcJ/k M3vP Tu3L$EgQxS9#w3UT۫DyUSBh;H$SW7ˮV{W^c#:< ]IYl\6uȿϨwRtxUhprChԡ8q8rg5!ܕ0˙K+SԀ"RmfʁTkT*=DѪ6¤Hv*% =|^u#O!kuL)ei.c $P0n$"k()ǜYʻәGKU"zzª)}k!4i$W+̛e \S޽+1]{ǡUq_v8[;׈D Jt­z]fԡ8qW8qg5!Wܕ0ˍq|QCjpIUgV<6uG+S(OM SkZ`@.^/Ѧ;43heJf@19lps(J0@)V|u{霓 Tfz5*'uUr>>ŢfX:Lڈ$>1i'JRSΜ"wM\n |cahl,%-֠R*cNjA.ьj{=jJZKzGdRs)ᴒNRa^TtV#ھ]qhBCn-kq8q0nPXF?wRtxUho5<:<Ggj4cMH$w%LrgXUHE{(;pk=|B4+S N&*rwl5-sB]iNJPFDqx#I㸆VKY4Cd4IfK%{=Pz4Gcf$qNTkT*DѪ6ŤH(v*% A|u#O&kuL)fi.c)!7Z-ƍIDeI}bp3"Kyw:KJQSX5ez-"|# JnVyD"Pz_^tIoltZ]v풶eYXnwIqTt|F?!RtxUhr=< u7>6q&$t g]js`4P$N2{A1i֦ ";0QYciq:B΃BuP<7"^I;XʢZ%3L2[*,YUrS uq8c%HvZR)$:Vp=(EͰD(&mDG%V)q4hxsy0YcJq4k M3vKPU TuEj5ny$r,kv(+ۜYʻI_U"4zª)k9iWr,̛%zֻ5:KyR}s{᛻[ISGgݨZ}=iR ϋgM;a`o*sW:=p0"r(J?Cn]F ^rdƮné ]Գ!AU]#W#.I~INyCbD٦(e 0I}^D&F ;sꤞ guK^gy^nr/*g2&jHII\lSmK ֨[I*ɪ)=g0}bys#Vd6]64lmWr1mY z0ۦ{}Q&QE[jBLu{V<޽o PHx)^ Jeh7+IΗq$g͸iO4ẅ́=7eڗ/k{9._!Wo7R !Յɐ!ӲLOz|oiJXzM=Qb}<&v|y;kJ{zXU8f^03w.P1$\ qӴԅ-TCPDDagG$ ;xpe*⃚4vZj& ԕb0埧N/mJ:֨TzU':\m~* bQ3,I?&DUJLNΫnr)2d)ſ54eb BCC5R 2()ǜYʻәGKU" pҷBSޑFr% _̛e \Sxй]qh}eEq"Q%,.0pG۟.:G!;{ 9䮄)]\';H ("@ iHÝ6 Ib^M (yMl&ԅƄС$/yeKDG 4Whe)Jf@)5T{)r 1wT#$T $y25W7MP:pC9}`,Q:4H8\R*Ŧ&M<"efPA]ɪ^b5w)bfjJ0Zw/5YIcNXĿϫnr)2d)ſ54eb BCC5R 2Y3OEM1>RޝT=ZRmMVM[ )_H#L^a,fພZ]y Ft7›b|;z^%"Lϛ'ҷBSޑFr%*=¼Yvu=ݻx\|kCnpR>_nfȿϨwRtxUhpn=.`3Pl hRǚCJ8n/js 4P$Nz$1/VJ׼iq6BNcBuP<%"VI+XʂZ%3ԤGL2*+YUS sq6c%TkT*=DѪ6¤Hv*% =|^u#O!kuL)ei.c 7nȚy, o1gDtђj{0=ojJZMzGɕd f5ԪwkuLp3sHv! 8)koo? 8wԁJjP?m;_3kq8rg5!ܕ0˗q\^Q ءT@>ГB6_93IRxUdɋF%c3{"8Ru(qB+,0U2GyxJ̣rS89}(›b|;z^%"Lϛ'ҷBSޑFr%*¼Yvu=ͻx|;vǡՍCnpR>oE]@#3C^&{;ѡP4Plml4cM!w%Lr}ە)j@6RH3p@bGHHbejDy;ng3.t4&T%ys(X"8juhqB+,HU2MAMxD$3U @YŽ(QJ. :w; ;p{sw9*N:DpU\r'\vW=jz@iu@q@ s$;>*]'$ .#˽>8J'㐤[X@bO&N4;OpE)S&61 I y$; Da{9=;d8ōL~y#L'҉Ot#O$9؊(u˛)Xq~2OPOu2zjȴÄ+~&1zsOq=T+JTzn.S<?wΕ./pqdkMNqd;py7O?1Qσv&ܿ zuz+V/V|;yt:sn{õ꬛ IHJ 1k8"@l&9 7h7p GYRkt2%MN (c_| x'[HK 8hdXf'|&w@?JK$YFRei6k%,5(V',=dXōL KVq;21R-h :Nq,MBGugo)B']T'Wͳ#INJM^t%}PL]Pzw4Wqyx&fŸJg1E A1[줈^ym6#0zs;n.0`><DZ[4n= *ffA7ZE2Nx{1*{ {e%.㗃{ O#Q0CiXMuuߒJQsٶ|\>$?/Q]}1|v;Ev*U[ jVͿ[4_ׇ<~لއm/&ܿ0%Uv!R s52'^!J+aP* 7\\u/S*AΘ7eq6{ȳnx Y*; MیA2ٵ<*SՍN?JyөeWq7/̭_T_USL<=sn0d'AU!c3 ᗰrH*/aUfN*R ѩGyUp%V}U_J̣*_T;*gTqWUB\oJIT(̼S]e}]+er .7)6})W5%kL$gQ6o53:/i~Gk,U|ua5~urЖ5ouz?6誡ڿG_R0"B(P=,EW Wc:GoŀF`՝=քtW”.V+S[Rmf Bb;z^%QOè*2Sޑ}%7+¼Y"xgjY^cWWo.i[\.i;nu.O=G?^&\:Gw%m4cMH0w%LjmF2E #iIÝ6e (DCd&*wl5-NB]yPJPFDq#IxVKYCd4񐖙IfK%{=PzuCƺmC}"IsjJ0Zwrp45IeNXѠϽnr)d)Ѭ54eb,µ1)=#j5ny$r,kv(+ۜYʻI_U"4zª)k9iWr,̛%zֻ5:K]qhue%ƦSØȿϨwRtxUhpn3ѻ_ƽFʝ=քrW”.g6 oWEH!=yf!b I̋5iZ̈́ЁӘP:%ϡcաA , V (65i)3̄ JV5gziźXIJa*D@A_,j%0i#Ǥ(JAWSdZSYkh$j(򍭛Ad")f>›b|;z^%"Lϛ'ҷBSޑFr%*=¼Yvu=ݻxnlpZolr6S4">JX9TK]Ua¹pGBѨCq.`qHkB+aJ3[+SԀ"RmfʁRޝT=ZRmMVM[ )_H#L^a,fພZ]y й]qhui÷z3Q%,.06u(6"6T&䐻t9>5T{)r 1wT#$T $y25W7MP:pC9}`,Q:4H8\R*Ŧ&M<"efPA]ɪ^b;ÿX+ZR!:Vp;(EͰD&mD%V)/hy YcJ/k M3vP Tu3L$EgQxS9#w3UT۫DyUSBh;H$SW7ˮV{W^c#: 8 ]IYl\7uȿϨwRtxUhpzChԡ8Oq8rg5!ܕ0˙k+SԀ"RmfʁRޝT=ZRmMVM[ )_H#L^a,fພZ]y δ ~3VMp2u'eW(ܧ#t+_^nYw)lG{ҝGv [MO3X_ Sz,:]I枘& X;Ms0*LY=gPbaݑDA:쏬 V0Ѻ\Hubuv 2" \IF6XJ\%30L2E*p,YXUUܫǨ)1=@Lwn3V҈FbǀXh${JT0jXĤH"&v*%bEru#O$kuL)bfi.&~7 U1--j6%mJ>eW%&\H_ۑd=Rm'\ЛTVM])_H#^de,fྞ.d} f^|C]?A1UǑl͕Fe!OTRnοNn«FPiT>? )V)dǜbHvQv%QjϏ?_"bDh26A1Ii}06=bZ$"6ӢW:-Ž;}A@i5.0ڲID-C˓w蘵2ӌ];vx׶=6\X;6ڲBw|~ dVc~ձDwSJNdH;:P Yw=2ܭApNM_7I$i@{F_|BM{w体srij dzvzeS ס{uͻ7mLz)kwO_G{WλZ!\߯~{:AglӠ/ }zʵFῑlPg1#J:HH=G+~T#G^?_=Wϫ[>.χat~_&f?j˚5/k^sWv ? <˯/Ũ7kQ+wH='8c?_&;o}uU O?|çM%Hqs 5pVºB]>܇Ys\*9zHWE^[1׿~ttttoˋ_]mOzhhpprs_^>,:zy|u6?mǏ.222:㏣xT}r$~uu^zWhhpptT/ǻOVoU;~BC˄˄˄v|(˧zO?Z]çvXo PJٗOGO<>Z]çvXo PjۗOGO.f FO -..ڡ</|O.fZçochhpp[I:v~u;~w P}恧z| ickh^i?Gyyyg{>^Uhc~ﲒe%JdM_^_}wp{?<wGJϗM,X6lb+.qˇж[.3K(z~h/_ڷ/ַ͇|X.E_zyh_>͇|X.E_]<_}~x?U8u-k^ּyYY^֧zpd|xy92a)}vЮ_> Tf>,EQn_ˇu|ẋR5ڷ/߿w_V̶|_ˇc2a)}CC{hl~o>@eRt)E+W/֫ Tf>,EQО2Kѥk=?h~_m*˂- , w,v,Y~f7ߜ__=_?SD޼De1zT-?a~(_|yGpӯ6>h?Gyyyg{>/?VtC?tm0:Ns +6...Ξw<o_>?C4.~˻W~݅cOӟ5>.3-3gjN4vͣWù!'Kݿni>pw-k^YqLӜc#/~?.A'xbgaT[V>?ǿ9ǿ?=lRz~3si~q8r1_:|2ǻdYɲ+9ǟ&{&}~;qw>.E#ҟ_oOypwR+0?K/Wd"YrE+\9ӏn~{ ˺u-ZE>kW҅[>?6䨛|\>>Oa< ijmآ_>]>]>]>]>+bO^>[>[>[>/}bϻl+HkPKe[Yiq-ku_ara.map.gznu[+eKsF o=ؖdcgVEC +жEȖ21&D~ܕg\/ܧg?{]9^%Ur5.p \=e^>DKqs9n[!_u9s]$jVëQe2(I/!}G@D11:l E]o @=(0`*W2W u2_P_m`[|#\8pyC-:+RdmE@= l`{d70\s:.)ȶm{=Z;|O'CW&C>G w8ЪNZUhE֎:l`X2x˳)4/b7vWv+nv>>?fYўzZ1.>ֲg_,`˳bɆ.;'kRf2Io/Oc1u&x ^>^jߓEƎ=8 DK%=&pe U~i>;Ņ>h_ )qyOΪGc1hCMM/'7"NjZ"3w" sA{4C,P|SFPP+S(̎{G ?7Y_M O>;IPg> HfM%+B] ?.ddszN2 X,'rn{4B_,P| |O'CnL_T{4C7Mt Fp G._'$BIO-|kUsmwCY442`wƬ˒8>+N)eRYfEMCߌЕ\7٪Br |dsZHr7_ 桻cx=Ncs=F@ZY{Bo%σGcoe5jo|a8t2T+<ė+@™ңBdYM _8S߈|:f%fr~tVڣBjCMMO-FPP}~Z̧&j:Hq|#dVybMq0[>iS8ee5jo|8t2庑EL\mb[e5jo|Q߈|*FA(|¹xr|+&Xmd#_g,t+-?X.HRH&9Ph.p \=u2 8ץ7wyIf.H!}kRKo ͩ`&Wy+dU✬IEsj́6ԏ;RV|̾eݣ d Qd:X#rڥ tUv&_^ f0QNM'k2ź6M_ 9LVHݭ&v;kzlGPzzbMB *GTu23/[Wkre^xvA7?nU{z毫 *5(#:«wV7RTЮ҃CZqZf=wU! "]%xQUWoCfuz Zf=tU! "]%iwQU׸=֪7[J54멿 *=( zV}XkjdSQW" UzPҙjPucnVYO]UhWAIg$][d= -R߬ *=(̰ z[z –ZzoUv36yVOZj:f\3 nç )ѰcAԍkVwo3S8=Su~zzm8̮C9(Qa\ww~%<)6Y6ñ6A]|Ob%"!3d.f YUCs /׸؃aGc/b_oئW&>e5ƚ= \WfUXW?(QN4F5 ('Pt7jp5L}3+zPB:jdcO 'PVE.ϒlWPKPKe[X]]gb-mac_intl.map.gznu[+eKs8)|*aIN2gfE6הTϧ_L-) CwaWgz;);vJ{xj:.p/F'/|&Dmr̾&yxN,Gb@5(N$Bz\bS{*_ uS]APEm66B9(ؘ'ߖu[8q$}I(=[^m@!M9}T"BDp6\*YUwwu޵kkvS@&4r;MPK(ϲٛbYEÕOlk)B/3= >.QUtuu ꎺ;ꎺafHVO: 'bԛm{ ݗj9jC殧ѵjjJm5oBTy\ݶ0lj.^1[v<*ʣqWnf.<\Iai4b٧Uf!O B!ΑOh"f9E;.m|{pf }ՃurFhL0e&"(r5Awto(A# YJo_cSh"YNѡ&NOqiNΥ9=Qgph{ߛɱ1=>h"iCM5]43MF"HA?z4A,PtGMEt;u~y!Pa{ɤpLX+ߍp/754kLJ)jѣ Jr5w|Kszg\ >푏:96RQJ^W)ED %>YNѡ&NOsiΔNo|)f"beŬdU&mGVtݗŇ ^Hx3_RKNR _gy%_yLܼ] 됹Gt.A2lݵ˜଼B/|GVe.z@4v&u|f yzt4V˒#&g" hQUj4LƆ|#u4)PoLj1ʪz4B6):ޱi, x3ufXM CaJi&b(qf9E;>ͥ9ӑG!̀RؘP{4C6): ).y#|L4g+I7=ďmSt S\siNo|h㩂?,?YOp NOqiNΥ9=QghM3o{bf0eٻlɮK7){^r cC*P퀊:/ ^ELPh"H/YY˴tj| po$MP]jlP> gj-@.rbjD(VKx[dIKiZrv9 G@fɛp&]^>qrWqu;h@0Ky|Nvʨ2*ʨK2ݤ=Y2wZYYe7<¨0* ¨˩0ݔL)VMG9*Wsjذߐ:KjsL?~D%-M⚕-sP'OM 1HAIsYjũP8K13`I&"(r5Awta`(AQgfvM*ѸaG^"|D%hCM5]46U}ɘJAGxf9E;j:5Stof:? {dÖ=įmSt k6G>FHẍ́_=m3i0)LY~_W7ϖh$t1OLB}Q?}'Xbם /qE(GyEI-<޳2+*Hkn2ڎ u:zƎ/; 9YmNĴF!Z6+gz$ ,uR!"=ˇ5'Mgn`ˌSoYnt1Lڣv\k|ov;.wW*TPPΘV9T?:[05{|oS" YQH R!Rql#רv>oB@D@7%xռI'Mf fZ |/ؔn5J>2i5oKMf GZ |/ܔn5J>rixL?k7[uj5hS" Y(Hz16[wjulsMYfQ#.YǤ^ #W;lB@D@7%ty[j7ћ- ;r:,D@tQbWf \|o) ,jS1xi lZFv՞ώKuCGj?Dyα  HsӹLˤ,\-\g|GvU5+.f뻻 *J;'OdCvWUeŜNtNE; ?tjN"#s8]86L&Йe;[INw.P^y]IsG睹f0/3NQgf eƒ$v[INw.ڱh#C#v))]yюe[ŜNtN额ʋUj$-hvѨddx$ys8]85t$/Z_&P߲DF-$p pJzȄXŜNtNUoG2ᇎ,IdbNp tѪ7wu^EÞ@бQG,JÁ 0d͈NY^ݔg&:Sx,$4>ȯqr'?k9d@| d]wD5QMTD5wnbY";?XKW-tj£=qq\ΈZČԀ\/v=5a|hjE\Eg5ז? 7J/a^ez,㼳}ZEχ2+JO/j>RDB#d.>$,)/ׯu50zmۃa#Պo)ݬw^|Y"Aj+k~L(J,&gx>g=>e5٢̆1P}rCA$D:HuzPo5+I.ZQs,H@: 93*֒.Y|ג<Qy5GyZ,U5-'Ůu垻OR:udP\o#^ċx/E7^}2K9=_!9$Vcʣ꾥95OkRY!Z,Q;lW#P B蓌\sj Id2%e%U"[+EŴ8T?0F?I.޼$.7hZxxNt5oQsc}=rҿkS/Gˢ-9ۘ9'3NzNm2Bx8a$T$-YuA~lCE|- |wD|:ND2tE:Le2FG>% e% !u_C2(`(z8f]IVӡ"]>KL}t2tT2|f(DvJ{8A7mttgJϕ/t9 !""Tp̃ $P]*@t'@dKݖ=!ȯmt|O'C_%É$knZS6t x#O1W= ȇ6j:TFJÖ́|JIަYDJReײymt2pZgR'O5?3qq‘%i<_0u)i]O"6,c B#bClh]rNdE";;w:ӕ;JZ1RWйXǔƲc G$P.%q |wD|:C|g|DLxHƻdYdC9d(թ Wη]N ~zЪ.cY|E$rmd5*Yt+]+C%bN*8Q|MI\g*|GħZ2Ood^W3dW~w5>z#Id{8nMB t@wt:o Ȼs,=ṗ IVӡ"]\R>;"> 7ۻEwMbvtm,`z$͛&0!d5QJ-Yv{8Cwmt|O'é'&en_Eɺ֏[{8EpѮIlu*30Lv`Y%k_$pՠxIT-z]'N"¼E~6;dMW:08;Tn_^8;u*_W4%,Xz0o#mꎜDyAcB?$P]0V(NN'?=#]5⋮S&A$P)@t'@aOK'ThBgՃYhK9% A&YMwZpIT2 EX .BIdciCE;ktPНN~̈́> Ӣq<MB t@wt:r9_4PV^UQuSfwEʬ"Sj@󀢓' _IItb!\Ef:Ht2 ez0Йѿ|}l?n?ם}Zf`f`~^jM'k:U^cM M?j'rUj+So>o=ݾ+`{BV'c:sy4}P\95X7 ;3{TpphԠ3u#ͺFlޤCXSOTpph3;gt[n4n6oڡg=o mtN:M=R!¡҃Л5C1.5N;Z vVAIg͚ǚFi|C+ٱƻTpph3fPuczN|C+S{.!*=(̤D`=lߡS{]*8C8UzPb3zzPAVSSOMwVA9aP4{zkhܡ320FU~~Wf:OR ~@$@‘M7IY9oqs_|}OE._ԬQM6# 8 p}pz<U,of0 0Z^ЮC U(¨>h=~NyAN *fV0zA{2J zөݗ?5`f`tfyAlt*`FaTc~]C U(¨>hC~ЎyA *fV0zUJBv}]7=|9fC >{Y!v2 5dzY!VhkEQ?t3 EU}+@'h,oL\P(y򨺗Ͷ5k9*ݕ$IɅ8:tDL 1!&c'+ZǹW767vh%8ffѨj/_Cz`K}CܸffѨj/cA;HjqO}i)_$zh)Ϩ>5G7-+u%n-د{{{{{{{{D_W>g9zSuf(t \\=1W>?(Q^fi4nJP܀r7hh8[` Ȭw6>2+Rp,.]uUWj?(#PKe[$ de-neo.map.gznu[+e][s۸~ϯV7I|؇d2ٜdr(8Ze~ĥAʼnmuEH @~%wٿ% Z"_ɟ!WG^ y!@^e~Ͳ%O6Ig+cwԒ#6Fj[L%dmzeޒ#6Fj[\V$7q`Z?Ԕ:8dL#g|K!}K  #]2g^z2@0Pa.}C",ze'jŀ2@ ,IS"9)2VagԧD.<).,Y0F*nUe3WM?ѝ# D.KIB ry\)Y2 `t镱jƑ!<=l& T?`׍qGuG#2#Ǎ{n7:࣯ #ƎS=e89A;j_HrM}M>Qzr QBJ;nK '/HuTsBC"_Djg-.o_W@]ھA-e-ݭ{K|h:WȱE߶ -"NX*&!7Pp>D|8Y'"ʅuoU>|dS>& @'PQtܭi}5E F؁i6,OXwJ/7cy?w*7 8hs~Pa3z&(OQE9߹Z1z/YN0sN92PW&B^[U`{q;rȱװngza{ tJ1ªWa'yZЗ'ugg[Y|P5|&pPP `}vU)gO@v 1g(guF8iDlcU-J|:|5g]wpw1`cЭFyg1>s[xSkN:t zK׭>͹ : cxuZ@e7_>_tV*RyӜǖ*VJu|g˓WLE+fׁ3!KЏGe*"0-SkD87'B8'+ux<58aH`Vz~Ajx{yM@ x }KP uFr(@L+aEO .kT ݊V F Ɠ:E~چ~jݸ }0 vi#5:~z>q!?bA PQ~:NPp% fbxΧ/dDݲD%4m7@ZDHVͯild#IWvI&KxT#72a5eoyHft5Y# (Wl/ DOP;E"d.K1Y+@/t Uh">ݜ*&"݇KW;aYv'K1l@hbX(CH "n&H ?|)/rъ\=0W@_<@H\ik$Hi8ډꏦ 97:c&D'~+ف 4ϕf+&i"GS9\s >A[c~4T+ي.D6TL" V;nʿv|_DԭzSwD5E 3jg٭zVqg՝[|Z|kqe,ZWp=-lZ oDof 'ۓ|lݐu%ka^W0քqd;0!Ź]yDs( e>?76nF0q P!!Ap 88|wuܣU) s(c+ QXh; lw䒁 |w8ܑh:,V˂9rԚr:'lu?P]qת&|(*nmlQEalQ4MZ|__Sk@p= !$f@qp 7j2ш2j QUL%U.Z9BRT;-V2!3gyjה}fx<9ۍ:oPkJH\iD5iHi8ډT ՝[A?fsF\ Ҫp؂j)K !$΍vJsB>Y2Slzmwlo86ھWۺ/1)n{;C72iؗ-2iqqCrVO Tw3/vWA:[a˖ʚ'Bh ESv3.jtoM-eC*)|"4P;e7F6]_>sHe67]}O tf]]51:' DC݌˶&XgY{[myܔw}"4P;e731<,iDhp(ҝr u6YZoyҔw-}"4P;e7C"mdP TfKSWDh Hw%X.Ӟ]7RI w2BCOאTsީ?3RjyO\)V g/.Dh ,`Y].9TJ82BCOאTKީ2*U2}YPkȅLZ;kk9< XͥwD [ kHuwR0LJT [ kHw*1&0EOWp2BCOאTb ?>3,p!%LٓMeA $D+TLGݝu'l0}غؾ7ZLyAϭ{[%wuk;_yIZ?*aXk\7;Z2A3OÌы;ߟq5tO^?p1n}?F/5%}f5c߳f}u'BwZ7`Hح{Co($aM#qP%ջJ]CkV\ZC2"dL9\'X?wM;XSL/53x틚Bx}k:ÿۯYqV9l=WMv#G<"xDуfM\P :sh)zl6 R@ HaQ0pLzzpt-mac_nodeadkeys.map.gznu[+e[w8S}Ϟ՗}[ff{33{y 'llܗTYCI9JU?H& Ln3~0}Og;{W-r:.pz, x^ MHe_ٷt, XX&$"V**߄kAuQl&zStr ǀH!E$l2b.S~3VVjE`#zXdl[]eXebk L`Sjƪeg3ZF/r$eeVn&0cXU#b 1cĐm-)ɲ]% \WO&j,W{s!3ЏeY3Ɗ}ajTפ$e 6[͍N-4!hz1nB($♢Gk6)jՃ`{t <p$8;{SXإ{dYjhUrhew{Y ɓs⫋>2BYOVk:Y}<@{^E{ާm1VK_|~6?{fJh_+m{7GMnɿW$׬B&v*;uGu7A{y1?Fjm`@كƂ2vd nTs5I==/7fmTѶ]P/x |ol&݁8sqLg"$czM 3LϖV$I}٩x%@7Hk $@Wc=%I? 5Mx_mSu \s)No|f0pK9AbPY&"YmSu bM : ~S}%nhyvb`MDSTj@St3orIdH^FD )~kCMRKq|{3é拱J3X|D)f9U;jx)AЙ/Ѓ= 5$an{4A,PtGMǚt;BDӑo撓pMuX+FtHw¹ &|B21фw)f9U;>ť8gX9ɋ()jf"h",P|'g4'G>3de,.z]څw٣m: v`4`WlHHӓz0|݂\p1qfңѵ,WmSu S\3iNo|f04+:BKʌ^'U&BHqf9U;v37#(":f?Y NOr)NΥ8=P=g7ŸWlXMGmfA*J4@*3xo{,;&{'7= /$-+dήCMw7m`/ "lC*E&bHr5w|Kq}| 7Fiak&WقQ>/#Oc,Wx˺i^|I;) 0<*ʣKmAk̍} wSÃÃÃÃÃÃs<\"hهL}3x+_D^s6tKѝZVhZV:Hfj:C(b㔮2 uV/]$Iu=7FnFncWD8ag&"I_ VU01Ɖf# erESLRgV|D)MdIm ғ'' }fp5+0"fT= ś6˩:QE@g?s,ߢSC_z4A?,PtGM4%@w:3bHqz֣RnCM5\)AЙO%;mգRf9U;.e|{Ӄal޹$,2CWf!^8bl4d+(C!z[˄ϴX.姼*bQv\>|{3aCZLQEHY,޲2/2Mv %AE4 2!b0([2VViQvdmK|wmuW~E#4@#a6NMg+~xa 'Mg}z3 e`W@ZNw3'XqэY^UԮ 6b#^cg@Ez*TP>!Y viA|vηpQsro[" ESɊL%IGVr/Vn|9V6j0n*7[8(Ujhs"D@tL31ϛmlQ.mENg27]շ.LJr/Vn|yU}ب6[t*udsmENg7]շ.MfŽRro")̤s~lA٢Tl+B@D@tJ>C_"m!+lQQԩ]M! "[d:DLhj`=B1j5QGR}Ϯ eziQC1 rIGG+qqWwfI* 'J?/H"Z%jykoK˼(Ջ4^7:|mvH 8ջl^I޲47_̟|ʯ{?ha8X߈}ʰf N 'JQɛ}eyQd?*VO W4~b "{"!QDҽk*?ngi;o&늵KܴGT4GgߗX8^a0$!KGGGGGGGG\W%Ϳi4~SukP.pG%RZ?Mﺛ 716`;:F8N}Άq-zPBgGm4h^CU:KuN?#0D+PKe[UW,!hu-101_qwerty_comma_nodead.map.gznu[+e]YsF~ϯ{j|_Jd % B@ʯ_C#RȯʘZ4@`fpnl7ǍaI3g$c/pp &u.sq#A"&H윽WUgq,ɲHַaNW|uk-2K;NMC B@!#dck+rϾ?~0_}%yW,g**ڪ6׹˓ $@n;uwKuT֥7+MW)P*BEklFJrө^0ׅ$4ϲG&`&`yBUD&Izu^^V$lU 6*ҹ*2_%W' ˯Qup\2չD$P3vZgZY~H+잭$>cU{U:iYd4u|C&'tNP2I˫kuslEg ߁ќN3 HNNf֥#mk6OCK=XX_VJ| 4Y~x>8ihZA{TZ̮̉"n8ibZA{TZ̞̞"2ͧg)*_4AF3MMzP߲U8 g4>V^^=,y!9B?4B3*r$ @Y񹅛Sٮ>K$ eC$}bG'F8i Np .BE*Fqi/-`l_$h0dOBGAdBEdBT_$@R_78Kwmt|'O8odd83w̮Jr\֊ L1 |jMNJ@wנ:{t$?I0R44pNP6t|'O89.( LK&M'<(6ttG.@tOYA |ڸqzMj4+Q  Q3+`B}ET=L-%M@h,5~YV yӤ^*SNWmRX00mx $cjM~0XUN%'\(Mj4+ޱ & oxw8xGMv81&ZA{TZfe"VWXIe`a:W)+$/*m@~bo_aFil𵄝>6a#laEĪuj' E`v`v`)1IY)M3|Eם.N$E^IcE;|Ʃ43dH+EԦ#Ǵ E.ڤFӱ";<Kt ޡQ4+FBo'E޶IcE;|i|( $_n1ݟ.,]wLa|!ɹ$"NnXE_ܪ cmmYy0L|&0)Ϣ^ N!ߥl^$a߮!W}bw D/!@?2n8G8@(`TE--p l)\'ǥq%CP-Tژr2$Gr\GKK YVVެ7ϒķw(U*6p7 @ .%aNb\ie6t|'O8y(o0_L&p_>sngY\v]?^8df`Զ6SO[`zL͊$W (1OAu;=w:]@zJfE̛׊ '+r6pD jf0^= ]w: [vΊryjsS`K3g_Bvxf%IMqJvh-gP-о|LHmfH̾v}VL$(|&Nm1x8pP2j Za%(ʃskE}8aۢMQbB@xL` hf|FV-\"XM0~لX=?L68ћ7>M[0! sB$^ۯvJ0?5 _ s&B ito&J$a3ooէ@>YY-sd$:Dۄͷ7B B |]O ۻd[Tͻ4O5zjvXhPt̍n꛷ϦoZ/6?g5eyXֿ/@a AksQvIuV-ﲇ GMvW~րZdW*{g!vn̅-m;q*,X`>!Kɘp?wYX78;uhMTppTAn]S#bݰVև7s{n *|9&֍:l=ᰩAglCաm^CYs{~ *|fy=TXwV{j6^ЧC8æ%)v^UǺ=&֛ԗfC[}*8C8lhPkPucb=^סld빽OpM J>3"Xϭׇwh5;޴OpM J>C"X??jvf빽Y *S1y XϯGCaVn ,ZUZ_}_|&/[9U0|1c GbKg4]$Eeu͋bWKRnvQ۬{,GA GtpzH:YrxU&pF0tҺʂwZr5 }֓'L̒0جQ((?3KR.X|R=Q{4GL/nhX5pz ,qmn/"/EDmvyEC׭-pp p\6UVPDy5(Q@I l8:G` w6>bwZweU,WWY\u}m$KPKe[oi i az.map.gznu[+e[sH)*qa&$x2/.Z6kI8x>74,plϟ>燇>"Rvd'959qN~6ҽD|@\2E.r2VN%;6؝` XKkf:o=q8z=~G>{_sNCjf#;<+l+~{Fg7ad1~jd1/x g«1;` <8j2?^Khϰo .ٔѵ,\R|d8pzAQ?*e294X,M]J%57 J.尴b1DŦm%Fg|O=wR&C_@- !?lVo|.T2tdn,CT)k[ YS-7|ToX Q})k[ YS+@&m] ŝ8FGOMFkt]r' .ڔѵ,\R|dL尛g2Kjo@> ;S^cԏJrEMG k /$ߧ;{%/& ֝+`;Z=]/vFz|u rTܥ;- K8:)k[ YSPpxx-e !32Kjo@> Sq/WjX Q)k[ YSPp?ӊ !M]J%57 JUv`ͦm%Fg|O%\@+CxΦ%57 JSOXY:d0?lnV \ψ#5uJf;n  !6etm+7> ߀|*w$(QEaG2Kjo@> ;O.f\TNT-'x|.{,;\Xg~,U2+҄3aՌjW aq~[4.fmyY&D8 G(ԇ*^(QTWRA*wm(9.:ۄ=iiV-5ݍc1q8f#?fa]ޑ1g,KT)k[ YSPA-lX Qۦm%Fg|O%CuGxČU5X,^۔ѵ,\R|dX1OU-}oX QiSF׶|#pI > ȧۭh9b1Dʦm%Fg|O%E HEa6etm+7> ߀|e2 ;ASV}MH̯Xyɦd̎/4gH &0u*Y zp@?V@ =~,U2w472d{dfW7$(núM@8Eإrhb#6b[Mvun>Lk0a„Jt)cGeɆk,jZ˽z;w ͦrRNǥ[U'eӢؼyMkiԟ{ &5) %V;+:iSޡ&D@4Ԥ+TuLw^D/6R*M_oCMh6IIW-htEbViz;jB@D@IMJRlYLUGVwkZ9۩&D@4Ԥ+֖TucezN|U3jB@D@IMJ2iI/L-״JsSCMh6IIW-%ޚojZ۩š&D@4Ԥ\uPExдUDiN˓v>' :մQ݌Nh{C=M(NpNZtDF#4v3 8>VZ*I ]1sq a4,=*W!Ք"M]nՆ֏ 2n]$IEh5SCc1pL8|LÊ=qNjZ8zQeoE\EܣD߮=,L}} Gmqq[NfgB|l FErnjaߦ?|N$xUG1\D$DzƑEHy RsA f{Ǘ*PiѺFyaYD}[a劣 7ɏ Fk3$eWl_?nJtۍ"/"<_D]GDžTRup \j*M[8Km6_@r n?wΆ)Άo0&L0alj9)`Yƻ$N>ܼ?ܟ:sPKe[&+ hr-us.map.gznu[+e]Ks8ϯ}jė($xfqqQls-I9q~ģ! $%r hkh"@ܲUt!N9<=+\\enq4򜊸Re/]KKVV ˋ¢sr[T֛Q(> #llG(hnH%p?9@L5.zɮ>llG((9*ى^ea=ڛD((m"n"y|% (,lbsdQ|{q]\eZٛuW^^}!x)tD֣?`~P#h Ċ?>Yy9:eXj*_]&6U#D D |B} ebl+:p}_*Ɛ6qϤ F@79A}E"3*OI@F t@(M+s#nYWM5WR2 G:#nEWTk|gddd8 % #)G΃jpA#Vk]Ӹ |wB| ] _A#n!ɟ6t_ςK|'G/Ld;u>Y"/6cBŏYx%^j \e]ڤZ}E> .%%@6OYu*|I7|\J>;!>Jj@`C3v$uo=Ϣ8^6[)n#i@ )%WcT .\G/һܑf8vPfipvpvpvY]C?|GVlޫn(R+d5((N^!%GΎ,;]F\p$yejMo, |wB| i'{;wpI.lR" N^!5kY}GV\CsTk|gddH+؜R,S[ bȲUAler P?h(JJM~^ek +kA~B\{dG|:NćߓG7Cq .%%CX%vwɚ]1hc*6i^p \;>JS,AǍ`\Cw6t_OR8m(N%<HHnVI.ӵ 7 0cѴk{ƨ?/\Gme3K2 ?m҂-j<ڵ 3%kG&H|cդ$ycjMo, |wB| P~&r"ӽEѽ  ۔:Dm3qc8AɄV2G2cr$y-lg+IUlD\Y‘!~:9*b>PSnO&دn*96Ć؞Yl>1"6ĆNG 0 iۗr 祾Iw_hd@D@DIrV]e3NW+%Ւjc%;+ft@t@:J~J~ӓ$RMKsC2{W>@; )L4Y3 KCIGr3A\sdSD=m qYD6,/q72'H/;|K=bA, g l|QG9_e-ٗ7C~3030?O/ZdWZ8{LFvniNvk.. 'MϜSdw,X`>!Kɘԟ9jf.٥ٌ^ؠյצC8úJ1QsVU{y/XM=緩ᰮAg@ʡĺ{yNV6!U4(LY9TXoTVwznoܦC8ú%6+c<9bCSm*8C8hPI3L`=^ߠUs{6!U4( DmU"RI?_g4{GvfET&)x @=#АkūE뉋v* ujȵBxlV+`F0J/.ڋͼȢ⹡F|ր^QfE\+YQ(]cq]CCgZ0ڇQhCqюE VjhF额bVFmo6ho4b9fCbxw60 }d$.ZWkȵBxlV+`F0J|퉂w VjhF颕oG]G\+fFat7osӴ8#KDIXxť\ <@7sGm.v UKMm'Q|+v5ծU4Ц%bBL 1!9&YUqk`|"dIH.t\v( ^'ct5{UOq~p޳iW31)(Y 7p2v1ø/y5 ߨ0 KgiV=%Wu Oin/xe|%GJ>~`}<OztMwޮ!_3K>1}H;GBɅF45oFM,E[# a5/GʁӺN,q;la8#8#8#8#8#8#8#O|FD~"zŖ2|YSF0+0XX.mF^J;iEVTNt\yi]|(<nD6n&n>:3I]v=֏uft?پ_l@R}TW%Ǔ% |L{r@ c!qa}V֋$kUGW}E_W}"SsA~)9B]$zƷ2:mQhcJ8N,s1(y&M%I4uu˚JSUisf jVnzLke=f2E, uwq92 X |r#z`&/z`={V r"&Lɻ[ Y笪b,UawzSK֞!=Fc=Fə/>~Vanty2Є#Ugީ>6 ^'K6-]ϠL~{RJXhu%^Rc;>ͥ9p|{``(HI+hZ&|(_WStl|g4gNo| ¿8R<7LN&T6 zŸ+):6 #C :\ #6]V;WStl|g4gNo|F, Ks̀&|(+):6 3\3g|#CB-+h%K!Є%JuM 4\|#CC>Rr Є%޻Rc;>ͥ9Gмe,V;T{>O!Oۃ?G͘ ߴ?K.ߣ@IzPhu%JuM  _ >푏ad~ϑ^o~@>xJuM 4C >푏!_ _K#6\'΋U.juPu86S:Mtt]@t@' 0_2D(55'[rJUE}՝p#s_+ /_Y~tQWDcͦZ}7m:``;ޛ`WlHH&J^]tp1?]NѱIҜYh8=Q0PV2Wjz@.t:E&wxGAЬ|Uuo &|(ڕi.͙- 'G> Im2`Ϥ@MxP•IӅ@GV% 9sid`4A\NѱIН4]JЁtʲXN]J ^&s#ŏ|g4g>5(һt;/\f :)lXKOR%GuB\GE̼ 'ֻyFo4B]NѱIҜp|{`HQ:y u5 JzvM\1ژjD;ub}R=KG$R#Wș4fc&0="iUhV|,C?kl跢G߳*cf;a/48Ϙ3XG'8IS)-|))8!l_ FrX68xG f"% J?0-M3aYUgeFfv\9z~^=O9o=Gs:G%Sq@+):6 C :G͘fBŸ4ARc;ihf(AQjPM :4AWT$N. %@w: ~fFDr_ijMxPwWStlt'Mņt;?ZxK@ ,4AT$N. %@w: ~B D z@ՕIӅPt3/WgRޜۖ5[il*%ʻTlXz`A2Qd @@ۗ(dfF*N6kvWdJcܳ(]n.' |-/cRyN wJgxs6<r Sb3 EM61_O<L`L V!xG |o~٬~yK}z2ڪ) `>Ū|?ǐGSHf'V{ijMB * _ubWG ɵ]&8C8̠ ~O0ն]&8C8hP}|ZÛT?i `cj`y{.!vM4(vz4-՟ۏ|êж]&8C8hP]PcRy^UmELpp5Ѡ3.ڡYǤ~BǪض]&8C8hPTPcR~ ǪĶ]&8C8hPI~aU3ۛ2!aD4-5wOX:.!vM4(gb@;V} Aغ緆V]@he d4L_7wrQ1S$ 9r\>2J)?^߱nXU?,v٤ w@' txFp:ixry"<$֖zyle]McΊb0\ $$3yMd~/=Wҟ]l}u. @<&LbeΗdpql.hr\nMf͖|k u=(U}0q<D`-)y.._I~h432wt/OQ= ,,O ˳$W2Leƙ<,Il>5DhTIqkYY,B5 ʁm& mp(>jc?iA6DsᲤ6u,-FJϞZ>R V3o ֫/=fqc)լ$b%zgp~sZv~uZ^ir.+M7:TLS϶fsyᙂ|-vVTxi>M>8V+-VBZ 嬬SV-VX󫠙mͪ3NKu)ge',:'gj3;63Rm|lhî\~sa _O\p$w `6`39#V( db}>BG#X^ ɋcP7oTxx^n_u^Ayqd!'`at(Rp$#y_ ;4 *2c {1oâ|U Ұ!$%AN/@t6`~t7%$= TOUBPTKnˈ&e+#Qf.Ib+]F‚d͊&cND@44*НI bLP l$ kCM2L}EH N HVQ4Wۨgbd7|Ĺ* |#> 2,m!ȵM2L}E> .)O%I &jwd7|\R>J*NHAB^#%s/+'hK‘"a$T&IMn2b &" zħZщ ATeI|g%edXzԶ̓0ӰQa'Y'd*UoO;H!sO ˓¢ lo'rspW؁؁QTɞ8AAAGd0vRBdTQQ6tp,&" %qFO%CB,6:8C$W$MPQdvRhAɪqp,|́M2L}E>KV>JN9tvpp, $W$ͺ|=Sɰڑ1:+RQccN~I"#^d7"Eo:jG2jǼ &" zħJKrY;9EM:.7|\R>JꚕԳ&Z88C_ma+YpIG|*.&j{bM2L}E> .)O%C 񸧙v?ʘ$W,8zW%`$"·ζ$QO1 x/7vP5yyGzD՗X|Gw)K0za03O//>*G7@r SyYb.1$9<(΢sb)׎A'ot|@?C-F0bTRL2ߤuB abdGi"5PwF5PUv.ģfn]zC-c1M2L}E`FMb#0~*Yr7l ٴ1,8M:p%0 4@bURv.SVl S_O87O%j'B J>98C$W$h[QdX$,! d7|\R>_ g]JMMn{+~kd̎/ :*YU:Z,rsQe_60o, |#> w-&j!60o, |#> ջoҳ&j:8C$W2_T2 'K5Nݾ=$E|>$n_6j mF7NIc 4BɃ-sz'[؈ؽVޡȒ7o,X`~AV%cz˖y[̮1]4hkS! "&ީ{=)OHy,A[TIIHSUފ,JzoڦB@D@S&%3򺜪c55v,G0jJ6_ЦB@D@S&%Cﺜcmyɪ^A+ٙfm*D@4UjR;Ů˩:֖NJʯ& Zu=7oS! "Rޱv]Nձ9uH;GR%&$7۷df9yAnvS9>ķxG#4@#.\}i~/B9}1(N/T K^ЪKM6 ifp p/hՕ&43 8K8U6.0*xU+Yo fzSZ<- hQQ)^©s>hgUgl<(N/T s^ЪsM6 ifp p盍$k\jh6hjkQ43 8K8rDGp%A+~ўVjQN3S8S5h/#^Ъ#M6 ifp pEts"M  o¼p @/$/x,bdqDBu=Iߟx&fMLsOh)Zhio-U_qED{/Hk  ZɎǺ󨝲kqj2ѷAh7S씾t>{٠LtQ;e"."q<џ3LwThNۣgy&ۇI~uO.L>EDz8GH#i1|COD@Y ~_hϼO{-Z0O#6 hW^(P|BS!iVe x/Y1ݠ>'Y6d~ >η"!ғTͮxN}A2jז>9uH;G i :<5w!'EFK {?!{H'i[Ec9{[ϙS=AG#84~KQq Ɨ;ppU?O2(Yjt5%j6Lfpm41~hax,X`jx|S;E0:0y8ePKe[Hbb no.map.gznu[+eYs8S}kK>$xfxql)!`JcIU&Ey˾.z4Oe_2c#oћ:;W.pG׹osO_XdNWc%-c7,`9)kk|[p,cպP\Muٰ,q)ެGxG9 T9 HubLLXU׫W`w`Թ2R20RR$:\WEw} E"X$k?;de;Vlg3&0u\5 RlgοH%^}j.pge3˦c!4b1U b>1k.FI`hou\RЀoA9nrLHI8ua[mݲfo&0'u×bd\5UYx $κ΍"*_|V}[s`0z1zGo~=O'w0bh=U*)}\Dž3s6h\V'_b/ƋbwX-@uMhbaJPYXRfu=:.p&5[Q:X]]W'&8]WfDygj,s޺۴q/1` ƀ1` (EGeG{ъНCM=^*dG݃8sqd "{RFtH8fK-m*L.sy l 9MuR^4MN_]:\|; I3 'X]SXh"r\;i0ҔL#A2|b/oPMD r\;iה̓:LrA;3D uYP|gg4'w@> = = {.X# GHr\;ih)A#ЙGGf@ s|ݣ$~ס&N.4%@w:}tHy.^m.?wY= ܾÅs 7# g&a'ႂIEIsD$e9CMq)NNrN|&Fϱ1Dԭ w=A}5w|ĥ89g^/4: a /x=+7G/Ei^`_EFӸ*WhFhFhFnd~ʐYWn֗=ƑM`V${6CBB +C&Z5gYU3|@w<4u&Bס&NOaYށL+D&/TkIXfnz4.qj ƚ|; IfȄ$Crv&$ u&br\;>RKq|3PܙZJ'hWл~겾;>RKq|3Pܙ=1?Bxmb Ʋ]Rd$XӁ T{2K#dA3qqMGH"EcUNi:.p7qd}& w4"G1Hס&΀g׋|dU\'_p.`r|$}n_>#_CB%tҽZ.Ć+\k:M 'j-_ݧ/^|9m]͠-Xn'qաe3aaXu2?b|MhPO'ȼG=ÄdBoNo{uY*_gΤX-`ӷ0dV 5,ˋn)&"rI/̩2Oˢ\Ԡ5ώ$o_%oy+f>/Zޕ5'Zt{ǪT4mٝ y &7Bm _Uƪ:-+ֵtȃ|P=lLj1b#ƈ1'7bb8.d+Y~yn]4]uC}z%RD6D^͵40I"|Ƌ|?fgsc[cybf1Z<1kqԫF b#6b4WMUz[PB I 'e,ՏFLvoW" UzRN~)4NF'me f[jj]UVIؽS՚Fs [j`W" UfR;1/کm~Zv=/UnNƋvzQyޖZFv=/UnvzQq~BKR'v=o *3)TTc^ZNztW" UfR;.!ޖm[j:y]UVIfz[j 0RԹ]B@D@Lʙyu ŨA؆秆&[jmѣqqLf~'Я를UH+ۇ(i 䙓2w4]UY|-?뜿_v ܼM!t  0 bGÓ̧CSvunNN>:5;/wڙ,xәe;Sr˂7[SnNN>:5;m(wuTql輣Չ;60I",PвB^7@tv"wHidN!#9:ESNdN,)d^7@tv&wYo)ăuMMm ,"75x.'' ޙgN!DSStNN;˝֗o[SnNN>:5;-] d2BSStNNKWlDzMǖ2BSStNNKWl_>HyYcZ<=3d G2̏фЋ齺 Y'NSVg3&0Mхo=z4- m [jy]k&|\ "a-:o;Mݵz2{c~rPN71u}Mʸ.U\luCۧ'WyY/sۜD$D:Hk޲E3xʜpk|y@ʊ0ƚEDU~{]~^@ koOe_u|QV(YlO1{6{"Y@@@|aF[!~6H'IϮ9=W͊.c1mA'xԓ` XΊ55"OZJ,S&l8QWu p pzzFz̆2^l!82-Kx"b7S5mX ?@DcLȩD姅 ؅ۻRiqOx9CӶ7֞rR GK].TMgpIĥ8gU45Wl ;arc D]{!dyf[fЩf-9zspK эMݫf"rvԢrQqFͶ\}:v:`N<:Σyw>5Je,هm%>t/$Xb`+_+;{YŧIVm:V*x ^ /cxqmO L|9_ķƾG " *KvU7>(N`8Q=]7" *KvU7>(Nu0dC5k=ߥYUҜKs|=Q0O REn4qIP{fUo|Ksr. >Gov`)hOIPo.ͪU\Zz`p g{n" *KvU7>(u0Tӏg" *ݥYUҜKs|=Q0 PTdj{~O*]Zr?/}h0F`Q2ʓ:6d-4jW|S\siNG> 4O=Ny{n" *{Ҭ]U uG> fbZɷj}ibUعVmJӸw[c'&'83N kjQG]Ǻ4;Ӳ/OVkkkkkkk, =RY7L^H; v`oT)`4rȇ W@.&}OntH"KvU7>ť99z`H+B+@BCi-+fUo|Ksr. >G^5VkUhO͖-KfUo|.|=Q0Pc9uIPܥYUK_| i3R[q6o[$Ce?4jW|S\siNG> TAO^B^Ko|.|=Q03ֿ{tn[.mf' \g:. f;tz;OGCE.TKvU7hɹ4'#CzNn0iU$|KvU7>ť99z`8S{r'0>B6 Nlmj'+`y*z[e^U}SmVbc)x ^ /c_'nmI&ilם yQjwB Ut]EWUt҇,_uuޔH3}R9#$i=qr_qzi{:];A jPwg] &LIXW]U ).ɹ4'#CzY?IPٿ]U 9>GV򨭊"SۣXmW.ͪU\|둏ahvtc$|fUo|.|=Q0@-Z$Ce/]U 9>GpVCKb]Gg" *եYU_v89z䫃%wXޠ% xo]y䋰̙,ZP)X25<#ONe^N I^+VO= X(:%o~ bai6+Y\ɠi0̹P+3IvchrvqVd:SeJ(zC*0Di]_@E)xEXct) >3wo2}X=?ׯKOk `3O/'FϜ*q aܙ^w;o7 v>3U\ɒ{!BE |fܯwي]b0CbQZ5˅CEpphՃrg΃TDH UauӆZ4˹P!E4(L9&1T#5j14˹P!E4(y5T}ކL+y Zrn/:Tpv J>n^ Ux<&1Uޫ#J82˹ѡ"8C8hPbj1W}VG4jqls{CEpphѠ3PcC^QPʼnYM!¡]DLGdކꈢR-Nrnoz"|؜?"6Đ+TѨT3ۛ*C8CTLj`BbUWCR-YAX4NK~~i0@nrP-/Oi 䙓eg4]%yZWw٧lR~nӢdy_K{I>`@' t8!8}hr=D&shbV򂿂((ݴi2Mn%Ck5+Q=QiCyd› JjV0z tF.50`>k7[$$2t+լFaF˛v$tdV"=VSv"oڱLxӱ[ZJ`FOanکi_,:_[eև7x7|39|p3[ޭլFaFvɛ6 oHլFaFUh2MCC页((ݴmO&gV"=VSVNxeOoV %>cM\j(P@0wFމbԴ̳"N(U3.b[hhӪN%>ODVb߿{-MJfa8._', oW06 #1/qJOJk7YAX4NK~~{5C%|ynUc5wyz՟l)<{2F_ݔ]KsF 5f{<"ycx;1y1F"fcq7o.O$HQb܍bkԏ,OiXin/xySD 7ȌWg#뒉 G,<գk]z3j;w$ 3'¿z%g"G|xϿ3zo H_,wgT>`#KWE5Z Q NuKTӸ"""""""_É"2V*IKΒ- \WdUX?H35F5 HhFpnna Ư!BbϢ'2 $HX(ts[\ŶƫC}PKe[|| ee.map.gznu[+eKs8)|*)鰇<3;l6}\\ \KCRN2~gC0)R8ҿ*Dw` $@ޱ/侺?ܱ/i oo4gwN \Wn2~hxBR̦B$2X)sHO XrR,f XRF^4X|nOT>e3ԛ߬f{Gx?nx3z dD) U&nKƴ匕U~F0~F3VFz %*>źtX,}`]Α u%kVyn:SEywy%h Z|ÖЏ _C$NuE7e F5 #H]D)9WV3zpߣJoCMҜ3h04+橂L*,OXɪWGZO6jk`fVmL~'/TU*-J60K;㩕?n|4>fgkivfgh6f#W|`\ GtD`;i`WlHHf0̊XB-19}ҊG/,P|g4gN|4Ҋ@HJOA{1}D %,P|g4'Ҝh04+hb1TrRgz4CmSu 3\3N|4ҊuߞMBuޣJ\YNա&΀OqiN|V6Ae3% G1r5w|Ksr. >C)VˮB)=_AnPt \|;  feS$|e0 .+6g,ۦmfAN*L @*JX4DLLpTh"H,YY%tvjlpioaE&b(r5w|Ks}|; [.sT(}=+ֳϲn}Puf0J)\ vJUIyzij 3:}>;ԃpppAjP|q^uPuPuh0+nyyA|7?o6d?kj.o]լ̫s`nV$H3%i=,P|g4'Ҝh0o-5 MDPRܔ,iFm ҳ'& }4 ' 0|),D%^YNա&N. %@w: ; ?R)胣=mSu bC :?Z?KL g=6˩:IөRt; ~f%RFzU&b(kTj Z > }3GDə,0W~f;~ L9fQl4+OsxEZxk˥dNŖyZ, `Ujk L`S`J9 ,[{$Uxʼ4 H˟,`ɰ`cVdBDs!b3^eҢd۲fIzW-%G^嫵݅=KJGi 4(߉8 F`4 FOG9eRg+9~ynŗ 'Ug~`Wo4X!/5d{KvZ/66yԫFl>hl|f\~[wPB * | ϪXkKKRk ۊ-223/&+JqSlԨv9o+B@D@:%|ɻսIMf Z r/VnuJ>uoK'Mf GZ r/VnuJ>S骞uyL?m7[uj5˹h[" E)L˦z1Ym(jls"D@tSkMWcRlaQձ]! "[DLԽ-5Zd[" E) K~LR~W¨TSn+B@D@:DLho=B!5PQUodWRE\}r\|&Я륜*d>EK)$ I23ҲX,d;,/Rnrq:fv!t4@#4bcߡe;ɋ*jNptȄ:l'z9 >Iȓv*ԲDF$p pJ'm(Oګ.йםf03^`ʄ -IAo5'S8݇S:icyF2F$2Bo5'S8݇S:iew-IdjNptNI"˴໿q]#u4|SIh2$2Bo5'S8݇S:iL#v)){%ݵEQ?} ThP3&U} G2(VQ߬W_%big6Itw27A6Mhڄ6}m+ϻ,X/npQUϳ+VV{)".>9.uf uea#ғRƷ+VV{)".>9ވ?X2$HQb~a_fERfW*YtVþ{_?Py_E_ S=DHt‘ezH%paZg3!wH^Yva4X߈}ʰf N oXgx5\ˢW"o? <1=o?*V@X"Ą $"5U]z3]Q/H@~땜i y~Һ'늵/Kܵ'T~ygȳ/Y[,Uu5Kv[*[6ȑ]W$xZ2T{p \Ѭ*iEcyVoOӻf Ez)? wΆgùo0E*TPZķC wPe.b]XG"PKe[LAA de.map.gznu[+eKs8)|*)鰇ĉgf'3"!kJtH*K<IQ%ŖU!hv-H_=.vN{x˚:.p f,۱F'/l*Dmʥ ̾ExN,'bƚ@5-Ō ߋfDs)a٬n0 L`jw*cU GƱdPVNP1֣pq$cI(3)f 7։rUI-+"<(cQ$K1.ĵUNF?U)[6 &0 Ln3VXK)T2dD:"dƮ \~3MX&BgSuk-Z$Ϊ$e7tPǭA h@43M7(RD0'],'[ݱf;spߧ L`O-AT>Kbgel*A<;:w|iY5}Fm Z֣h=Z֟|_#)g0VŨh=w(dz}\%9۪]VoG{^E{^2S[)ԍ+Xô0X҇{D֏+V7yWT=FsМ6' 4٭9%e,ntFm|Rjʲ(ip;ܟ; |wպx~?\߷ htmM=^ߒMyPgocO._<$t+-WDRSYtPip O$  +zE76XI酾MDW_]㺭 3S\siN|4N`GR|ʶ:rbȠNmMН4]JЁt4M͕Fl@5ݛ`MdP}nk"PtG7*d)X]Ʊi4Cߺ,u[|g4'Ҝh0`(_zS{?4AvY&N.J %@w:̌=$j \D%~mMН4]JЁt4Tl9fau?Ks5 ;]85it|7=t C *Č &+.qi.͙M 'w@> #H]D)9W7V3p?JmMҜ3h043橂L$,OX/ᕥ^ڣ fze"_.T'Bʏs3&ui^v'bUK-VZ&/2m\ˏh/ڋ߷eggͪZv }b@[tD`;k`gݐ'`/z-=bQJ3#M^Jr\5w|KsG!| ]A)xDcSXh"]㺭 3S\.'_|;  f&L,J>Z&D%^uY&΀Osild8`H3cek&n{r6 &r(qe9ۚ;>ť9=o>C^:Δ$MP.q).ɹ4'w@> XM |ǻ-ҡDw|Ksr. >C3C)w}c/Wś|e\fFRܳ*/nAlĐD@DY$/PGw4Q_H-[,N9t[] gk3AXQ3ETMpAb@9xe9ۚ;>ť9$GYsed6_f˟+h`~Yl#043Qz( Ar`_Tp}"ih+\+ |v`"Dr!7(QgI!MT7UǢxS٧fQbƪ:]˺?~S=}cNM4R3yED %e9ۚ;ihj(A#Gkè'#KPˀ&2(.qIEC :?inz5 t@mMН4]JЁt4c|I˿ҙti@r\5AwtQl(A#G3(b򎩗JA4A]㺭 S398%@w:̌XO5Vto胖Ƞį]㺭 @goNUr)l\HUt3g,-`ӷ0`S!l,D6X'bb"Oˢ\|GClakK?||KKU-گ? 9РbfdBDsk Eh2]-3ViY]꘎yQ/z;TE~-Fb-~r-/sQwIU5'沷vW} f0ifk4̒E|7:7QXMNk n:;77o*TPQ?~įuYK+Z׮6U!!"[e:e̟]!9meZ<  *I+UM?nMV] ЭNɟxjGRIQOVC 7U!!"[E?1zvUϺ<&՟-zj<^  *Iz1Zmjlx*$DB$tS'֮ڮYǤ^ VcoBB$DB:%2_"So[jubxMUHHVQO]Kdޖ_-zj:y*$DB$tSNm_[(a4j"yy:3B>*d(9$ 3'1˘?tVeQH盷lQV_uêu4l}w!!t4@#4bcYe;ŋ:a7@PGP:i}yNdXS nNtʂ:lݜAtA I{5U6k:vW} f0ifk4ջBY$e;:ts E}6'm$ ~hdN!3 9">I;'m, ~hlN!3 9">I;',ӂٷIlv٨Medx{9">v2'/ ~oN!3 9">Ih2àS (#(HБe;0J'})IyYcx0 Gg?I&5? 0`8A_FZ 'P-ǩj9YERn+qVKVV,iX%Y*=ǯC6Mhڄ6=6їx-]\֫ -jl]ȋKY·z`ċԀ/_<5i|ADvu"/"mC;~uV&Uv. >cm~C]~Oj!JdBd.> 7XZ[{ظwo?4;?/l4Hsi^}̰f W% ߩFfiїWe%žnjLg'Y@@@|aF>=[6B<߶ 2D&ӻ}H!yYWQs,H@gNB R>i y~ҺKV5(_V,(F(bKUg<})nMm7>|"D'Oȟ]W?IQegͶ# \׀f=(+(ϳzkJgPRo#݀|7lq6f ޟB Uk4VlcU^fРAv^uS"/V*)~?1 M#PKe[%AAat-sundeadkeys.map.gznu[+eKs8)|*)鰇ĉgf'3"!kJtH*K<IQ%ŖU!hv-H_=.vN{x˚:.p f,۱F'/l*Dmʥ ̾ExN,'bƚ@5-Ō ߋfDs)a٬n0 L`jw*cU GƱdPVNP1֣pq$cI(3)f 7։rUI-+"<(cQ$K1.ĵUNF?U)[6 &0 Ln3VXK)T2dD:"dƮ \~3MX&BgSuk-Z$Ϊ$e7tPǭA h@43M7(RD0'],'[ݱf;spߧ L`O-AT>Kbgel*A<;:w|iY5}Fm Z֣h=Z֟|_#)g0VŨh=w(dz}\%9۪]VoG{^E{^2S[)ԍ+Xô0X҇{D֏+V7yWT=FsМ6' 4٭9%e,ntFm|Rjʲ(ip;ܟ; |wպx~?\߷ htmM=^ߒMyPgocO._<$t+-WDRSYtPip O$  +zE76XI酾MDW_]㺭 3S\siN|4N`GR|ʶ:rbȠNmMН4]JЁt4M͕Fl@5ݛ`MdP}nk"PtG7*d)X]Ʊi4Cߺ,u[|g4'Ҝh0`(_zS{?4AvY&N.J %@w:̌=$j \D%~mMН4]JЁt4Tl9fau?Ks5 ;]85it|7=t C *Č &+.qi.͙M 'w@> #H]D)9W7V3p?JmMҜ3h043橂L$,OX/ᕥ^ڣ fze"_.T'Bʏs3&ui^v'bUK-VZ&/2m\ˏh/ڋ߷eggͪZv }b@[tD`;k`gݐ'`/z-=bQJ3#M^Jr\5w|KsG!| ]A)xDcSXh"]㺭 3S\.'_|;  f&L,J>Z&D%^uY&΀Osild8`H3cek&n{r6 &r(qe9ۚ;>ť9=o>C^:Δ$MP.q).ɹ4'w@> XM |ǻ-ҡDw|Ksr. >C3C)w}c/Wś|e\fFRܳ*/nAlĐD@DY$/PGw4Q_H-[,N9t[] gk3AXQ3ETMpAb@9xe9ۚ;>ť9$GYsed6_f˟+h`~Yl#043Qz( Ar`_Tp}"ih+\+ |v`"Dr!7(QgI!MT7UǢxS٧fQbƪ:]˺?~S=}cNM4R3yED %e9ۚ;ihj(A#Gkè'#KPˀ&2(.qIEC :?inz5 t@mMН4]JЁt4c|I˿ҙti@r\5AwtQl(A#G3(b򎩗JA4A]㺭 S398%@w:̌XO5Vto胖Ƞį]㺭 @goNUr)l\HUt3g,-`ӷ0`S!l,D6X'bb"Oˢ\|GClakK?||KKU-گ? 9РbfdBDsk Eh2]-3ViY]꘎yQ/z;TE~-Fb-~r-/sQwIU5'沷vW} f0ifk4̒E|7:7QXMNk n:;77o*TPQ?~įuYK+Z׮6U!!"[e:e̟]!9meZ<  *I+UM?nMV] ЭNɟxjGRIQOVC 7U!!"[E?1zvUϺ<&՟-zj<^  *Iz1Zmjlx*$DB$tS'֮ڮYǤ^ VcoBB$DB:%2_"So[jubxMUHHVQO]Kdޖ_-zj:y*$DB$tSNm_[(a4j"yy:3B>*d(9$ 3'1˘?tVeQH盷lQV_uêu4l}w!!t4@#4bcYe;ŋ:a7@PGP:i}yNdXS nNtʂ:lݜAtA I{5U6k:vW} f0ifk4ջBY$e;:ts E}6'm$ ~hdN!3 9">I;'m, ~hlN!3 9">I;',ӂٷIlv٨Medx{9">v2'/ ~oN!3 9">Ih2àS (#(HБe;0J'})IyYcx0 Gg?I&5? 0`8A_FZ 'P-ǩj9YERn+qVKVV,iX%Y*=ǯC6Mhڄ6=6їx-]\֫ -jl]ȋKY·z`ċԀ/_<5i|ADvu"/"mC;~uV&Uv. >cm~C]~Oj!JdBd.> 7XZ[{ظwo?4;?/l4Hsi^}̰f W% ߩFfiїWe%žnjLg'Y@@@|aF>=[6B<߶ 2D&ӻ}H!yYWQs,H@gNB R>i y~ҺKV5(_V,(F(bKUg<})nMm7>|"D'Oȟ]W?IQegͶ# \׀f=(+(ϳzkJgPRo#݀|7lq6f ޟB Uk4VlcU^fРAv^uS"/V*)~?1 M#PKe[͖Rie-CloGaelach.map.gznu[+e]I㸕ׯ10jOm%"YtjɦZMJH=m#|$ߗf0(z$uA7yD_Iݝ..*M.Oa1sq2uʘJ8&E'ل2"rrO ٬rD1##2(HVeo IU]w&/K.vn]: ɦƙVg`G`G`G`G`G`G`G1T)&|\|Eux mX6#M*N,>>;> g2N9gHE6_A:,)>2פ*7++ Lqc<Q㧄[ȜJbSVՂקНL_$8@32&_\{2 ! QN=F 'ͺ]|kqHXen8Cb-Fbk>99k6%<1m&f<-dK,,E':Yɛ,}r\ `2//^^鬽g=8sqtg}Ih=.\5K5 |WO8).t2d8 Diu[>7DQ+'Tj@5(t@T'@T&TP"3x8SZ+'qIL>;#> gj$i< h4c!YUtx x CSшf NX AYU|pI|għaLb#滇c!?WR ޥL^2O'X%A1Fgzİp, jjh%q |wF|:&ꁉHܩY]5 8wx2*.tgLUg OD=.jjh%q |wF|:eP cñ|t,*]pI|għ0hd5ϫ,$^n .y9'p'p`8u2_Yr_RYGn4cm!4ڽL}}}}}}}"QHVn"n'3V؁؁=%6^U Q3bՑTP"hIñ#kWR  |wF|:OUWD8c1u,*]>pI|għ5sVS1gu(Lun.<!;WR KS'%qNzXEL=!ȍfV c'%qNzX34Ŋűzp, v,*]>K⤸$N3P@Skc`'N;n sfzҩBT@uT:yoڌSNBp>+rOHŰp/ڮfP .VYfXIL}f,We⋧FᣇcUTC@wҹB t@ t߲dz̿3׷E'Y3ZlOnVx d<k$tdla<$1,bU=LT2L"̝xvʻtݽ]x(NT"AG$ǘ_qgaQq)Tx_ʾvG1` }GoEcFם<\(Q^g;C" #@&nHWM^yYۥsrD\I)h) aVǧ```````p$zH6ӗfp, YU|Ʃ'N@ﺠ78_XAUTC@wFSgt%fRN#GCc1yYU| 3^=-r5P)Q_uX8D q6m]QA.ϪJ{t8]l§$mUyn( ];&}Lö]Jދޮ!H|TyY˷nW]6ڇ$Ԓi2d't3|td&TRP ӵB K7 poAt$! UCɗTz鱧C=4d0 M^Ş0|ڮ7QOU(S-,|h߂|Zv%C|RP>)@OCiCWk0Oʞ4pڡheAW}brGJO1SOfG{&ɹօgWw_+0AwtzX١ۿtovQӶ1v{ ԏ%&bq70VtX A޸jjh_8.GJ3HIRb?R2EGJ[T1WvcjO}ԭ>vV:v giH#CiǸd(T$I.hs IG1zϑqr/>r?xG&E(}K6u>&0=<Y/d:ѵo٭)(ԝǻ_|Z|"޶J cF97Z~5~D^M)b~G}Vg$ @b#6b+tۺZ| 3:nMCެ`ITm5_mcMlJfq#l~ɴEXSN]"D@ES7%ohW5fIYT)." ")7MWt6xDo~E*ԔSim􍻛FXҨE*ّ)F]"D@ES7nc&ҸE*ٱ)]"D@ES7nc&QITSNMDhto&!M旦-RNM97! "-ҝ!vCȺ{lB 5t"̔S." ")偦#&iH% M"."qugou )ڱ=9HH^8\&ۼZ/\ݯdsy(756juVm|shFh FOxACn7yYլNNAv j:5V#xլNNAv j:3V#xլNNAv;,wx]/Zo ?fzZ͖IUӁW*NOTc~ЎxAMGF*xU)©>h'󂚎U^5S8=S}NA($m]>!UGӝo;_ &2VW*NOT!?hc^Pب[U 8S8x&F*xU)©>h!/Ш[U 8S8x9?f7; ]  M}'᠂ *3Uh,3_䃂dC}!IQ.۽Z/Yȿ^y)jսͱr-GrbZOl(w)%B/H%EhlrKq踺3e(4Џ^E-R&6Gc[GU9ǩ??0F'/|Umjm6}*ו\pMs1[Q""]p$w9}R#yo/ׯq4Cʇu1 e1z~Uw?hwޭP hd+~o&߬+6JfNS3j=vC囊dп }}j벸7`E9zrAȖCs3=8K*+MUs$;pp3UO_/?W(Q^gi4nJWPGØ=\>7 &h Y#GG~8p^0jSWa36f-^MPKe[Mhgb-colemak.map.gznu[+e][wH~_={ a8d6^^|l֒p97E(;'tUu5U_/qg:n-y9g;{[9'et5"\\\VfÈIj٪c0LM=XX^kg(V9ljxg2xT.\p? Zurz/rc+&`&`U e3TqCAgo]g4Nx"}Fc(9"vH#R#oz/=]S qܥrx]݆!llG(tsd㯤$i1<3:>> NrqkWA:rRW%Ω0t/8{#bDEjn38 }qiYwW ˋ¢ uN6$u^EqLsz}E^W'c:hzs`~^ݙ,zpJ|NcYuմ|'qIpO'P%Pt|AU'YM7| '߈t2\d8}A'@ !Ed5+I\g)|#p Ŭ@Y 箃c>P'YM7|ę,NgPYB*vO hk9s}ɏ0un3[N^;P58sCOG9uGٻtGք$m ?N^'=mKK(\:*, \ AIVӾ"M%qR\'߈t2Է]+\ Z<)8:jW $$R8FħRt-2y+8!$i_&O8X>Nj%=ry-6M&V448i\i#0Q'KѓK3$Z%&ey{E`v`v`ou3)E5((JI(VTr =N5XUd5+I\sK>NjY!2.KwGĞJp|!J "6vj!66Zlaf b@Є 吥7A.$i_&O |7"> D(rp6 D1V'YM  zXuU3/'iDrRp^}NZAC|}'C|@= :GovP7/""6vb #bClmNu8'"`Ab4@G:8M_$i_&O8G>NjùX̗{y⥂C:8Cd}E>K⌗ '߈t2{ p)SN~:↿I?o(wtgT{ 1`1No$.3NdBPnH%OszCOuvZDwYQy_zub=``NjHj_/?2("|b755:a(/q5xxɘĺI%J,ug[`̾d*'G>gשEݮH^:{(D0 \\\\\\\.~ {ՋA% 7A['YM7|Ndf(btz⃵xȳj^C8w}oz<#@x (DYE=I Y%x ~1o}E>KCoD|:L%K9wṗ IVӾ"M%q:b WoD|:Lba5?[+񚓾V;>bClbClŦvz7w_ ok^AraA޶$LąN .C\ q zz/D1kd]B"O85mh[iN\on<\ik 4 jM'k:զ1C 2!L* d c֝\{SRmt߾l BdLgV]8?66`^ؠUkS!¡RrNg\Ui֝W ZŚzjmS!¡ҝ]ޚuêquxd=SOym*8C8USUWut6XwQy֠o=MpJwJ:ꪎzYwYyiJ60^ЦC8C[;%)vQuUx=֬7 ZM=7oS!¡ҝXcks*{ ZɆ Tppht#.+빕d[VNIG]Wdݽ ֣_]zjo٦C8C[; kYϯOCdـY4 {_ݙH_۫wY|:UM}sH;GKHG4]y7d叜HӢ$ye2*&<@A 뇆󇼠ϡА]U(aTߴ.i. *fV0:Q}z]򂞺4d:YFMr*(.yP~Xk ̧ePk:Y|^P'![t6 !voڀ{lf0 C7mo9/sC U(aTߴ ~ӾJIo6rh{xI{ӝo; j1dݻU(aTݴi]^S]C U(aTߴmTϐ{lf0 C7E{ z̐{lf0 C7E%puǟVIXx啘 <FsN0M5eNvu5l/ļi0pl5"E"RD:Zʖ+r XҚ.d]~ؠ E^ G՝/sDw07ӬG7`/ʍk6`z-/WufgF)(Qa܍wBWY'.46ù}MY.;2~NcO/ؓѻwd])I=O]׮q7g>7;ۡ' ܼ 7F/b=~;>PFq7C)_/%a X紬nNyWtGIخ9O/“]KN]Irj5}c N. >tzxߌ>DԔs֔h/~4G&U[ Vt)ycNy+_NĒ}Z^jr[..*WǼJۻ $H(5% 76a s S?!l,X`9rU~p2OwYT}ϋ PKe[j it-ibm.map.gznu[+e]r8}VQ>$N43;l6( Dx~HE혧*DA݇Ѣ%#p_L긳}Ʌs񷋷y=)u/en~d9L Kw1%JppyQ\\\h +\tH ^%T88Uep&w}RSwdy|{#8#8>*WNe9 |nCƵu$aC-O<=ǟEۓ,"jp'pU3581y+uo^^-U.\67LVR֙D'a~UF$! O nU[\76J 6DLL#aƂcCz``00 Mܒސ.p$/tŪiJtO_(9[ e (8۳PFQ9{TaT0*ʷ d|uվKE;F||Uɘb-\=XAGM@~-3s'L)'Mv0'aPN6X9 xiXkÆ]!ؽhvb v`T[Twn nYbц]!~SonT$݊72v7~^ O%CJ ArQò}b2v7~^ O%CJ/鴆eCb MB? /䧒aC(_԰u=L6Բ g#1=xj2d܈s8mјw!aCFӮFKbd8LۧI n MB? /䧒ac̅\GG#*7cnȟ Fםs- De"NĎc8`0٠n&莙8d;-ڃHdOwjHH*x@xSD9RMjf&8c"H;$6n3V ?]5(JX1 kX~٢1B׆]!~SP D|kXvڢBۆ]!~SPݢ҆]!~SɰZ?A n[4C?lhYxI ~7 ? J}XwkXv[h,mhYxI ~7 ? EOjXv۵h,ڐѴ+o@~U2w=>WW ɘ'sN.8U;1\[(nūr4Iw=[⧒+!M2Ӝ4JwO8]pUzu700Ι曋67gݚdyf۫b>䭇z=gGq[.d;L~p>D^_6ZO \F#63 8>BF#63 8>aUdaT<Щ7S~3838?(zSZ< k(Ak3S8éh~NyAN5ll֏}mq\}ƶyy^q> 6=)j6ls,w;p}wrOl5)Uz7|0vZ6}@URCf4']]@&b6c5gU[Cd ֮A TtSNP=0eṕE8c X=aљI?Z&Z;".A`ya:PB: ";/xĎE;B5sΘA 9,:?}l0>M%Q0:x 3cGsCAb?mcFHx^L]X鼾">0͈+woOby:7:}X.{ξσϒ0,!G( ?GUX\çCYPs `\ձDظtc0\b=)@R=}KկOΑFo'χX@1?\NoƪjWvnT6n./x>/&dfiDtk"iNKR>ew }ArS<p"kcB^q#H?l\m*]hIm> A(C56&jkj0fv$gkg%O &M%Q=zDg&v2?fJg-9t u&I0^֫E{f[n튟Fl¼]6m>«S:lj 2"E|-[ķ/E:&`Y_zokzPP<}?U>݅-y~ϔ_7A |ng]AϏE=|s<7 CzWAndr<)dD0uCz\îxws\=Wwk/ OoLACqY(b٫,9{/ ^o;jf.UN}z+f_oIoM35i9x7o |&Mм<86龭.yr, ,[ٱ=oODzxZGR{:%m|.2+ S7_iHJ6G>o!Ҙ7@Jn@ F "t8q6{ {c6CQ4{' WnrƏA|ZK/mV$ Ơk>C ~>6h?-\g~"OԪ )1Y4qi+1 < 늭c$~j!1Q]X3L~tFc'}gR \Wl}UcAXo>y\oV턎|=_DŸbÿo{8`JHT'r{"܁2pV1\w%ѥIUOJU$ ں@8+q2Y a3-2:aOL4$y !ȷz:G=1љXBXĂ1`NPD]&eaiHX$GM&A3F#i䐔f,54T#ID5!G겨謎=*R? `~?b*6A2, {_̐h YB\+N"&eR ITtF/pرIڐn'RԮQ,mD;\SRŎQtMZU߼"3̒S"!3Z ίZK9~YU't3-V,`l"gncc ,`I{N'C{ [=qVB:P*2:auDC:J83-[JE9̴KJ"! WQ ʵWd]d ,K /FAJʌjF&vIzdkBeQkG!ǭ:OH k%<(2CʢA#t2d 3'WDM`$Y,^,`hQW_D*Em2Mfh#Jᚊ*v% 79= kU}Po0KrNeeĵjr_w9~:uYuqӬ770-V]}MJK ynn<=? m٬MRi1ԫ^@~m^!OKO:I'ׇ{b\CM1$~.Rf" IaM/!KצzGu|~[^1sX::PL4$u K̷!:G;Cљ|!!,"( ć+L908k<]dsrx ,) vn, v3F&j$gH&H]ˈ TB#V'\TlBd$XT@տ?!eѠ? :ԫWDM`$Y,^,`hQW_D*E2! 7壍(Q{k*^Z1 0"YWxcYs*SnN\v!U+|]7?O2 8&Lt061gn0Y$C='^нM 8+bYC(ǰ:Df!IGxTs"U qtfZՍ%E%btרa +2j .2 C%ėZ#i|q%eCBJR#He;P$DD5!G겨hd TB#V'\TlBd$XT@տ?!eѠ? :Г+N"&eR ITtF/0QC(TԯE" 6GA&|%JvpMKK;FכҜyE7f%92E2Z ίZٻt?mډf{][7u7LV]z@ї /[wyz~3׋,}eekm۬DR=C'uq=o:^?`|&ѮZuڰWZvԫ^@~!ݬ1fEwvެљWYcඉ=45Pk&pdh JN%2t2d QpqVb~߬a %2:aL4$9H'"09„A58:3|KJ"! 7N 7 +O~E]qؽQ _Jؗ<=Oً*]tMn*oܾp<͸3; {ŷo6m|m6}S|W}~{;~׾[wb0s9iownELZiՂӮ>^%P y-B%Q/ %Q,yb`mx` (RPk&pdh ^Ȑ%@ou_qm EAG1܍t&Qc6>83߆9XHa3 aAIxX$>]anx#onC v6Ļn]c eIwPN41K wT#I քˢweDZG!aq*6A2, {_̐h YBG?WDM`$Y,^,`hQW_D*EiCDo2GQdTTc(ax)<do^jfIΩL rZ ίZs$7_.߿M&rp6=6q ϒ'J9ɟ U$ tnhpY _P*2:auDC:3M83-[JE9̴KJ]5jaX6  c eIH (_\IPRT#I/,`Mȑ,*Z٣}-UA0e ?P ?Ab=@DEfHY4hO@,!c&ITd?+%KeL- U2kHCMQ,mD;\SRŎQ4do^jfIΩL9V:CV|.;O2 *LU: YؘGL@~{uFnAiV_7<7qЯkcQnwv$y>]vguKN%4_0by c6`lwE~CD ~D$#x҇Se?Ed%JCWdtOd&,:{yAP UP UZQTbz : ׇyCdT>ԽJQ-D4Y>8ʟJPlOR#Hvq8CT2-cb,UA(e ; @ ;@BكzW"zǃ"3$4AzAG C1WQ sE Lc;#Цw`'C>L$ p @cCOb PtTc(Yx=)]XV64 gTe{T^svU_<@u:Mg:6ŋM,mzPTpM#7],ynPi'^E@VaGPg~6/ EF1hHR`:{Q o#A2`3*n,!,"( ć+\F 7 +c_!`w\p ,) I*)3PRA؁j$Ց% 9REE{T"?cy wwF5o?E918:FP:$^,H^0l`0HeȲ"& 4iAG C!rf$pT ,*K:&+UA0U ?P ?Ab=@DEfHY4hO@,!sQ+N"&eR ITtF/0QC(TԯE" ! 7壍(Q{k*^Z1 0tAV75 $T-9qu\W3-9~Y'f,`t06鱱 <,yPi/^E@/>8+bK~0JEF1hHRgg|A):GCVuc aAIx'>]5jaX6  c eIH (_\IPRT#I/,`Mȑ,*Z٣}-UA0e ?P ?Ab=@DEfHY4hO@,!c&ITd?+%KeL- U2kHCMQ,mD;\SRŎQ4do^jfIΩL9V:CV|.;Og~\`l,7r7UGjW^%Pg"\,l=K7ez fiz iz %6PnÏh CR$C=ɟ >t"aP$v_qV_P" Qy [đhHH}^J0ȷ,(Q(C%E%bt;٥Ol"C> C%ğgRf~XKjm_֛9{Ξo3Eb]}绣`Xs+bz7zS͎D7< 7oo>zӛ7f/h'Ya+Fbݻ'<􀩩ꆳ[7˓?f]3Wz@AY |0МL2y@SS?(; _Qsz}~_1М\2y@SS?(;^$*?0\B2y@SS?(;^$*zOkh.c{o)<􀩩kOCu}s69E?g54WLzΤU9sױw-<􀩩bQsV 7w#<􀩩:.Z2М\ŀcm՝@yon#sg3eUfSwǷ}~{8a {s\\[mw;N\0Cc<Ͽj*z,>?l[,ܩ;6udDPaK8Ys4zNM,ܩ;7훧cWھ7s=fzźnỵɢ8PaK8es.EE]DEA% wN/?hWAluNM,ܩ;nª'x^t~4o,*7uh Kԝ^iw^_5YTi:Y4TXpN=kuNM,ܩ;mh_5zNM,ܩ;mhX~<W54'P{ޢzܳZ'/S뛳G./ݾf]i =FoVq=q<.q_":{\|_wo;67 _}9#}‘U=M,*6e?!ܯ}^\]~ѰCJ0j";P}Xw1ɯe]%]f/?'z8WկFcY7q(#yO"R7nX}z>5>8x&<^\/; }k_uTWsF߭, j0}{iDvpN#o"E|-["}q~W}=x^y)^jJ_e.P]Mf3|Gt|6e}q(|k_u+7Moz󙛑Ooy[>;ëiJ굧 PKe[!Dp%%tr-ku_f.map.gznu[+e]Ks8ϯ}kė(8$xfqqds- I%%T,)Un4L4) "YUWz~ẙ)vʒٟ'ur{D Wor tH1{R&_yxj% kk|t阽KO&t~j`&`ZP檀p(\JbY6<2[/uKܗDd-rHIYwKjUFԈQ#jDVH^C'if63>+%|rP梈$6l[?,"eFa jb')1II*YNV\\QrH沘$N%ą"L22')F잎 ʙc3G'Q* xL{ad ;*L;V00s2)U>'cN=o_\.N S|JܲvK5*bCl2(V1"6Ć؎,I.n";/: O'؁؁UɞՠGU2ԊX4t 9>Az Ԋ" &|%פ YeMg$թt&SM`.NS=hJa$<( $[1ۂuIVӾ"Н50R(NN'?C.)Jz|,n"qK";U ȍKEB t@wt:wśCs*IyKхB t@wt:r9_tXV^UQSfwEʼ'b.Ղ2((E'@&B$3$m:co"7`L||w$|:XK=_>ܾ_|5"_o[ <ԚNtyr}2;Mҍե*v+[o>o=뺜}Wd` Ntk*`jB nѪZSR!¡RrHgN*ԍ4esbM=R!¡҃Сj oqӸ9qV]*8C8UzPfzzx?j7G8hJ64^KpJJ:Co Uϸ=֬?n7Gh%zj/ڥC8C[%)6igk64dR!¡҃X4C3n5xdcSOŻTpph3&Yo {saV#SOvVAIgM-_#ZzjoKpJ<ЌUx lӟ-ZzhT dz0ә@|bW>S GKLg4de17ŗdQHr#gNjYt A  닆ǼסؐUyw3Q=Q}vUpͬFaFIv ulV=t6 C'mOڛuZIVoЛVa3030?O/x7[ $4dfV0z6UpͬFaFIv uhV=t6 C'툟SIhV.o{xߘ>ԌgVwg3Q=QuҎyAlCg3Q=Q}Ҋ'/h{lf0 0OZD{ u`V=t6 C'x}vًy]SzNA' :]Rշb}  @p"A_b/@1ɷߍ%|${Iu/m+knsRU+IR ib3-7ziAbBL%Ǥ/Vٯހ>X(Say+/1-rz-yk3}}6}̋RuK]'x:cOkޑYݧxCRܳqg3}1(^ 7psnQD}8/yo/K(Sak-o'EYa XSZgGHY|bF#YIٮoxFXR ]5qaHH^8\/X|!((Q>f!YWQ.I(Ϩ4GOoi3Z V U-K[*_5>|"D'Oğ9}QsGNM_ :8c }j^XDy1_3PR?{ggåD,X`Xy1~2_UWIu:KPKe[*( be.map.gznu[+eYs8S}kK>$xfxqQ$dsMI9|%Ά RcIqU&@ ѤEc_}u1O~c_"e.TI|/ޱ:>.p \=e~~h䏅sdL{YΛݬ9 )H5I 1}~3OjoEVpiq#6 l&֍uJHA6ٙ'껏KB=. l`{Bubwoz,.,K2Y/u}i}v"[;+,хfh&fOmN;#uCMe͸ 2آbl8atv̎[^D(l&o# i#6L9cTYvskݱztcF%t`yXyS3 ڣ۠ѮՖ6Du,ci7ŊݙW)+(Yۮ[2[+>"=)))))))!OJ~rVvy>M8R ֝Ç/x{",M~PgcOP G ޷_b)^(ޔtP @-H $@%*XHJ/uDJr5w|KszpN| qB5_*jMBe=|YNѡ&N. %@w: ~3$諈-ś1=ć6):IE@G_03 'BO2MP6):).ɹ4'w@> fFdSߛqd`hƒiCMН4]43(&أHRMxP6):IE@G|ktzYx\2)~nzƹݾ݅3rwuG04pIE֠DJr5w|Kszg\ >ad(%jJo{4CmSt 3\3e|; C>@N /rYiUY%jALBN-k/vh& h@7 1X}u o@V5+nM"B]{8888888{9gL}`\ }GptD`;iR3nHH&4cJ-g)䌆QB3j>h"(6):i.͙ 'w@> 4c*PJ 9fwU=pUj4 <95Vs\C%zH }$ф%^YNѡ&΀Ositd8Q0Tq5T="MPr5w|Ksz|;C6Qj՝p$h‡?YNѡ&΀OqiNΥ9Q043S-+hgf}gw|Ksr. >!}F-H|8o[0RDmfANJ=p:PjT̷szN0 ]&<(UJ[MС&p7 0}'QmH{4CmSt 3S\W(os*Wu,(j2Ȼ6K_N|&fb&b-$.հBK䚰UiX :h!}@ ڣR*Ts75\=򐇼Qg33nEyy$;J f7e=0B f > Q2#'jdk4GhGJK̪՜`<3hbXoHFFr\{4AKqSfe6ٓFSC R>CR 4R_@Ò%=ī6):IӅ@GόѸaG^"lգ Jf9E;.m|30OB /eijoFJzbF\m:+̒"gE+˭t $l/借dg w<9 FF\>Y2 "+juʸvдuYxgps8B̙Dz)u>y_6W[ f0?O/{5"FD:͆^Ԯ7|A}Sg#u_emA *#K!zUkKK\ʂC8C7t1z7B*D?n2-v͢NGD^juoRISقYGV;ʂC8C7:%xtU{\v>/ܕpnuJ>2骞xL?k7[uj5y}Ѯ,8C8tSbMWcRQs[mwe!¡EXlg=xf \N|^dW!Y)ȤKLRlaؑթʂC8C7:%!v{[jj0ve!¡Er*4}շ^{и#W. jv/Rg#~]/P!/ZQr,H@ tEWŧwlY_dUjUlswChFhIJEdY1'AtEˋv*~ԲDz-$RhydYHŜ}TJm(/ګ.yE;s60`~^Zk6[($l'bNJQ>*v,/H&ȲDz-$Rh'˄:l'z9 *E.کh_7ξ] u|Lx5e;޽Ŝ}Tj.H^Le;[IP)*GtѪ7ځLe;[IP)*GtѪ7#CG$Co1'AtEhy(@: J|۸<0`H݌#QEs@]w-[C,)^{z֏H^Y{0iz!*vu5_^VH|ĺJs/R<%}IP3j>ftu{|ϫ57Vo3?e10OtLެ#yp-(O9$ wNBJ4 ħOo %.<Qbxwȸ١[zl=[֫0bɧC(ko<}%XbQɆvI6$'e_èbŘֶ1/x 3UɘM[:=8gGM&z;*px=u*ZbEO2Kjo@> 22h9Kb_6etm+7> ߀|*e2MyO+Z# !6etm+7> ߀|*.3CWdl尴b1DѦm%Fg|O=|R&C_@- !lVo|.T2td,CT)k[ YS-~:h9`ݦm%Fg|O%CEdjQ{b^ |ox8R#޳&_NN,]T)k[ YSpZ6O !6etm+7> ߀|*LP/]^atOr/<;'8J=S~_~6̿"6׉+1֐N=ւ}}}}}}}CuCHCWrzJ`{Tɞ&VFz|u xTt6X,M]J%57 J(OU5X,lVo|.T2,{U}ubҦm%Fg|O%CuL@*ZiX Q-mVo|.T2Tw}AEa !ٔѵ,\R|dXށ6 yEwz ~' |#pI > ȧa'w>f0mqV \ge\:K%:3UE[2Kjo@> ;t"UiX Q)k[ YSp! Gxa|fdG&q|@|e2'" IVd^!z/xτW%cG$لU1N,(Növ= sED֖Ǜ5il.Qhl[V Ãsu(QT %g*M=q __^l/ۋ>UG>lVgb6etm+7> ߀|*w^;þ6X,mSF׶|#pI > ȧH7X,)k[ YSPݱ䊌VjX Q)k[ YSpQ&C4Rrخb1DM]J%57 _ 7)$>/W\Yަd̎/daL` UwJ/ꠘ(nme XrV,*ٸ2Yv)/ЩGhfp }8Um/ЙGhfp }8U/kYᯍuǪ FMM|/GFwc7S8iy'uyA6 Q)TmtiiNA+~ўh(xnFpڇSuЊ_?7u^&I~'zt.@*)+ޅY~-ÁFB};wAdb@&UwV>m {HE׸9u5ۋb{`{Շ1{\,]=#郯jZ8zQ[eoE\EܓD= M}I}h GmqqO[NfgB%(Swo* U| 70yF8I2^:|)CHgI]w&oS\(U_;_h|o囝`A"Exh]&_v(P|B;\&/%u ҳ:zCߛ]F*Tߡf#S#&I]ޱ_1Hg] \׻ʠ-- H@򃓨Bzů4Dj<~g!G22&;Q|K5&,vim """bSͩX7D<%N WǜEzVX2BDdy|iF`F` \9rd1.uIZKVi-@d@dԹGB; #Iu"wWrj`&`UXgD6̣8,ڮc90jTt;Q(`0 B^;᎓*/IHA4R/[qATl.W,yY^^6B B < :7.5 sw,'e_?9iJͼ>BAd^Q<h慢bODᘼ*^fd;qC,LE3JʟR&OG$OǛr٫>3G]cZ++>#2[m.N~NUfUbfWF=GG}Dǁ˲5qW ҭcɗmɈnvkɭ"o)LmkmE^W&c`m 8r2[>r&dAiӐſi_ ڊ7"|ӐNO&@$R W!C,^yN&Bc Bj"xw6x2 .$(߂A_X{~ҫȒ]?wEjTz ¤ OH}M*aeb7kҠjaSlʮ/L5Bfa uvEtvem+;REiaYaꚬPu `LGâ!1֕ollQ~^Vr,F?dVy`=u3ܰ\ J6#ǒѮ chsbx0ۏ) ^x6i{N3>-ۜehF{ҩt2-|7RC:vQZڊ7x$X͓YCͶC4S[F/5dЫaMErÝʈwxG_$8Qͫ!fOC4S[F/4dɰ¹⏹ #fK!ˣt mIѩW=xL_LOO VB y`o[t>C`h04 ȡ[?bmډh6p;(;;{(=ݺ_UHucxȴUP:n^ "jfk+Xxg'`i5W-㸻zz vkG)VX" K8W=D3oD| |wR|2>jr#)czVo,|IPZU$,j*+\S"&Ыxc LΪx0zVӶ75u,Zo,|IPŊ4إCKd wY/eC GΟ=D3oDeC>;!> KįjQfc1V>;!>  5ҫd^4I7eh4wYLW;mZ29 dKw|~NU7PI!<(΢ںEҼ<=6(d!w:>C!`0 WEqt^(K9 @L2wT_rT/g[M,Mna'a ̚f {2vK]n[crkWyhZ:j<*UZE\=8qB C$ї;ЇM;uW5`v-".΄l{&(PB9$?inMtV-8ă%ޔ:|+W( ^p$evѽ|]aS\(-/֯r6A>ŀmhcAFEB xlWo(~R{!iVɬ8<9=˳ۡ$+@@@~Qf#ӯĆٶA$DzٵnSL2t_uK sH[  yHdrW; AAAGu%%%ir-ku_f.map.gznu[+e]Ks8ϯ}kė(8$xfqqds- I%%T,)Un4L4) "YUWz~ẙ)vʒٟ'ur{D Wor tH1{R&_yxj% kk|t阽KO&t~j`&`ZP檀p(\JbY6<2[/uKܗDd-rHIYwKjUFԈQ#jDVH^C'if63>+%|rP梈$6l[?,"eFa jb')1II*YNV\\QrH沘$N%ą"L22')F잎 ʙc3G'Q* xL{ad ;*L;V00s2)U>'cN=o_\.N S|JܲvK5*bCl2(V1"6Ć؎,I.n";/: O'؁؁UɞՠGU2ԊX4t 9>Az Ԋ" &|%פ YeMg$թt&SM`.NS=hJa$<( $[1ۂuIVӾ"Н50R(NN'?C.)Jz|,n"qK";U ȍKEB t@wt:wśCs*IyKхB t@wt:r9_tXV^UQSfwEʼ'b.Ղ2((E'@&B$3$m:co"7`L||w$|:XK=_>ܾ_|5"_o[ <ԚNtyr}2;Mҍե*v+[o>o=뺜}Wd` Ntk*`jB nѪZSR!¡RrHgN*ԍ4esbM=R!¡҃Сj oqӸ9qV]*8C8UzPfzzx?j7G8hJ64^KpJJ:Co Uϸ=֬?n7Gh%zj/ڥC8C[%)6igk64dR!¡҃X4C3n5xdcSOŻTpph3&Yo {saV#SOvVAIgM-_#ZzjoKpJ<ЌUx lӟ-ZzhT dz0ә@|bW>S GKLg4de17ŗdQHr#gNjYt A  닆ǼסؐUyw3Q=Q}vUpͬFaFIv ulV=t6 C'mOڛuZIVoЛVa3030?O/x7[ $4dfV0z6UpͬFaFIv uhV=t6 C'툟SIhV.o{xߘ>ԌgVwg3Q=QuҎyAlCg3Q=Q}Ҋ'/h{lf0 0OZD{ u`V=t6 C'x}vًy]SzNA' :]Rշb}  @p"A_b/@1ɷߍ%|${Iu/m+knsRU+IR ib3-7ziAbBL%Ǥ/Vٯހ>X(Say+/1-rz-yk3}}6}̋RuK]'x:cOkޑYݧxCRܳqg3}1(^ 7psnQD}8/yo/K(Sak-o'EYa XSZgGHY|bF#YIٮoxFXR ]5qaHH^8\/X|!((Q>f!YWQ.I(Ϩ4GOoi3Z V U-K[*_5>|"D'Oğ9}QsGNM_ :8c }j^XDy1_3PR?{ggåD,X`Xy1~2_UWIu:KPKe[b}9!hu-102_qwerty_comma_nodead.map.gznu[+e]KsFW*Mlc%EC+P!`DU3_˘ n*-G9n O򔍜G$e/pp&u.sq#A"&Hȳ˸LdY$nئjneZ˼ebPgî2BF!#F{ʨ5ugp`[)W_r|Ka TIRRם`*fJ[xȕadBE"TzP56X_F#~%DJN07$4ϲxn LLT&W:Wҫ$MI;zYuuj`&`HPbX|9ҝ:a\~UL׏䒉%ݕ'Q*zig!;,UUe 09A\4`\wN:X^]۸`-kԏu2J@<=wvdf];zAi'+ Jɖ`ⓁƋP4_О6 M+hOJK59Q]XО6ML+hOJK3S]\d8̯5A4i4I=MdGJ6|r[qrsq'} ݇ '1[k ;}l)Fæ8_9UbNtU E`v`v`)1IY)M3|Eם.N$E^ICE;|Ʃ43dH+EԦ#Ǵ E.ڤFӡ":<Kt1ޱQ4+FBoc'E޶ICE;|i|( $_n1ݟ.,]ķLa|!Ly'7/Z> cmmYy0L|&0)Ϣ^ N!ߥl^$a XCv4"@xhVr>2M@3pi |wD| 7BPQkc5[0'?ڤ햃$:!\gm\\\̊P2W7r`fE~$^ݲi:T\݆Ϸ`.>s[8>pp‡"ۤFӡ">Ky_S#dh~S}9 ieqaZu]|_[`zᘒނS`L;ӋdoV$1R@TwؔAz]S2+rxg ؤK'˟[}3A@ɁT^.*(ϳW*8zR1@ 95ohadbfGz $yzg'ޒWS3V6 3 \g(}C &iNxPߒ79+պ%Fϡ"L hg.$WO} ٕdpƒ"o$6e)OZA @R53#9A 1[T!;[o2qwU۔:gB8AɄfp)IjD4(-e1J*mosnr2o; 3@fr@!%G3;԰(5nZP?Blmj6N{O5cDaOI}CT<"aV}$=:`O @gjB i4z[7WLS䫕 +elLCM|{3 B 'AHQaٚY%{@ZؼoJT7޾k˞mXXN %O'yy y\obqY\7k1UEa q0"cm..i0 ?ɪmvȾ^030rPk WY|:",dNح%}뢗ݚog< ,XOR23gN;IְswᰩAgP7nT7oڡլg=o *| ou'ZwᰩAg6Xĺ{}NV]*8C8lhPbz:1޸ևvh5zn/ܥC8æ%6c9f#[ETppTѠ3fzn>|Cى&TppTѠ3fzP}AVS[MwᰩA9ZP=4vh5¢Uծ_GgYɩB_aHH^8\">"),-./*/%]-Ja*vu1x @N GdC%7We\7k0 0J'+Oډ,x׉%7 顷YQ=Q:i=yNeN-QH!I˓b38xnmv_րZdfe(堷YQ=Q:iCy]KnCoF0ztF e(fFaF餝ȓUj»k"7x;ko4r9fKnrx6k0 0jNX,xWג۬Q((ꍶ' ճF!=6k0 0J'z=:F!=6k0 0J'zF|?r/uW``xr ,LqY]1 @ t1/`^/֊nd,[>Rj:!\IjpTS2۶8hZ[[ }Ï:uhUk~~i0^&Oz|}CkܸvaѪj/kC~gv?"X^㬳>6X^:NnU1Jxd.=[TC,)N ǵkyuGogpc" :qu6'yo/k(Qabaҷɳwɢ0,SZ ~Z@@@F#_;6{$<5U[Avf-C  &_W:((Q>?3oJR.X|R=ڟP{4GL/WzX88)>b_Y%V <4ujE_E_"tsv}["qVP z8k *~(P< mz (Ϡڀ|lq6a Q#z`{d; YSp;/*rMoe;PKe[8f ng.map.gznu[+e[sHS}jEBz؇$ff'ēˋ  Pϧ_FF@U>>{ 7)7¢aEn """bQM_Mg2B݆dy| `#c+2WeYGۘϛ6Mbw g2mN+Dp|FrJ%'{(ķw~ l`;A][=n/{(rˏŒrS 6 l'4dd/rW=R{2`-7JVe>1ߖ GiF>CMMXczl$^}Ww7=sNBq_C"W,`9+ln$!W!,ZlûJ=^t ;8sqdHOsa[,]T۔ѵ,\R|#dT0AMa[,CT)kW YFSp)bk^riX Q)kW YFSpU"c5-e-!6et*7> ߈| *үi9hX QaSF׮|pI >ȧS%Õ\մbM]JM%57"Jn yMa;2vKjoD> UM[yM\x#ijđxj2dAojZbEO2vKjoD> ՟i3q4i9b1DƦ]%&g|O%CB94˛,IEWX{27Ʃ|cϜߗl %uJ}c5Wf```````|F;ޒk`;(UwըQ^]%j!b;5-]-K8zfSF׮|pI >ȧz5--!+2vKjoD> ;^U߯i9lb)kW YFSPnZ,CTk2vKjoD> ha~Prmb'2vKjoD> ;K^/6/,\R|#dXg! kU'7lxzڳqYxNRɬzB>eSb!DM]JM%57"J:jZKZ,CTlUo|.T2\gx^C19Q{.5s|JL$C7C1CN|dIFl/x 3Ux1cU@ ?08k\fq%M%3큭V`+؊B}x;~%ij2xёLڄ}gaӲ&ܜۋb{o`{ՇquQ 5-bXM]JM%57"JWO-!۔ѵ,\R|#d8P򽚖â 2vKjoD> ;Ԑ-!?mUo|.T2Tw,"c5-mZ,CTmUo|.T2\UP>MԴoX QfSF׮|pI >W%ùz| ɶWV) 3YXzH=.Njz(3Jw;q[hBԕ` XΊE%W&~7G "=ys\>,NSn3$knhЀiTwܸ7P$!W,v-ɋzES>@^d*K5쿾~}H!y|bL>]hlk `3(zSɚ^a,)LwQC F+}'1f5n 6b#dWо(4 &L_Tɘ^v~?h" M]6f0fAd-5m㠵Q)T ~yA5m[Nv9 :մQ݌Nth{C=M(NpZtLF#v3 8!V9/$ԇBsG \7*dY\o螿zP_ m4?Чۄm6aM6+ǹX{GDC4Jq̣ފ'U?6]A{X2=PeCk;0*{+".ΌLa=Vߦ?4x^.֎Q""q$mv{^KqIL}q~6+zh}# œGm/b_XhG&2G+Ȟ`M>4yf,gx~$+PB*m6;ޒ]t=uHtٵ]zW UkmY8e,H@D% ~!jԨWk;7!'yF{KFG# q)gfs>|-nn{{{{{{{ ur"|K,skKWtbiת_%OJ,@Mo6% j6sـev4,p4L}ю+z0a„9ecħ wlY/rJPKe[bhr-unicode.map.gznu[+e]K6W}k$;$9e "PBRc;~ $эD"]uy8O{we|i.2eq|<*,Ҭk|Uyv8M㴈7m|0/qTc%uSٽ"VĊXb5Z__k='YQ7yq4и>sW`d);mg5n,4tXxxLR2R~cG$Een4zCza:m ؘq+7.`l1bCl]bLBYbiXW3OzŵTDz@wР:;:J~3"O֡ܿq.2S PU}ZcY;ktgPН}1/PeNƇ~ZcY| )pi|GG5ɐ)b: 0 PUkeх̠:;:J~I~{J0߻X]@t'@G7/@fLb?].n`]03n-w^; LՋ PuUkei\g258ah~9&J b5񡪏]\Ku, |O8np%CjZ>?[>g"%-HJJ٬pթS!Hu&ج^q^M@OQ|C#l}!a;_Wsv6F'.b'^mUw.-G'd؁؁d/VȨfԨQ_^moV'yNj.gt;1(`TpTkei\g<18!e6sW@?mW񠪛.:F% Q3+F&jm_HrFP񠪷]\Ku, tg. JG+Fmi 7wyF zWlu_ZV?i c]mYрy0 B`R?®^ˀJ!ll-i ے @=D&Э"#HEkv=e7#PjߟX.¥q \'Q2d 6_C$;zdXmk,P̠*:*J^I^zSa{4aj<Y%[%lXpwn0߂.KKImb3t [6@5>Tke)\7 |GGPuԣS'J8KnY$|3ϸl.t_nl@ߑIƁcz神BYdKUL T:T(وJB]rjQViEY7ww{TnYf  [7O@Q Dq(!Vzܧ %,i0?n~EځCQb4 KIЙL<ǝސ> =#) f=sU[ոq(Ug >O1m';LW|lf~T[UoX]@t'@Gl[Pn6gѢFQV'z&=̤~]#@ P %?>,a4o*/2hձk,{ [eu}B:d{7ˀf "%əI|ެ^KD)ު5JVZ6[v{ -&FĆb3=jRAM|i{~7 gHAb MHL{O_r}f/#%_q v˲M&`&`)JVNVgBGɩ-DppѠ3Į-2 oS&g\؛!a[DrLǪgB!jФGIױVS~~ f) B>xN_  ΑM7qgԸ?~˼*O.-+^On*V>zcA  .\B\"o'ЇZ!Iɓv* ujBzTk0 0J'/Oڙ,Dיŷ aPU((zc<'3fj?w+1cb]uG9}H;GBE^<36%(_=tЇӥQ ?4ף"ٹNP-g~K%k_E_ENu1YCם-pp P\6UVXDy5(Q^@I 0pu6DA I+l|E'@uYeUWrò[LPKe[=be-iso-alternate.map.gznu[+eYwHS}Μ#6-=dPfȉR%Ŗ焺R ,ja:'?ܰ3og4eX_Qe~ӗ xBLR!bM"LZ'{p/oYYū4IQ: 09:Q!TBPR!L g_8/Il_pߋ:\(R8J\oʇIAzd^M Ғ"Ɖ>dL{Y&M]oRϚ[',"/}~5NEռs^+bE-r l`L_7}TDe~&^dӭq۸d-"c'DnX7I.,K2]/u¶si}uI/3E6j&j>:5ߌ]V}:q*eEꁚq[^HR lFW@F70mkǪSeյvMҍPƖ>|{⣱#^vgiFA;k]e.tXRlo`ԩySI)&sI9A-E_RƵdejfmCJNꢺUEuQV]zq3]Ygn,:Xפo(l񸶓wFNNʨ2*ʨs2=o$leY(1[欬Ңdm6 eZWR}DTWi;8KKKKKKK Kfu^qq}p ֝CM=^,d!@9B?Ԙzؓ2TwkH&JWU$j4Ldž|#uNtc9+H ̟=YUa cb F0~GF,̈́qzx?Ab=YNҡ&莚. %@w:fMW\/3c){4AOmt |C :v03&'BOMP6I: ).ɹ4'G> LLA󁴾7ihƒiCM5]43Mb"HA{4A,'PtGMEt;u~fCO?kIs3~v.;~;ji LJ/ E&JWmt S\S?rNo|FϱzRr>+m&|(r5w|KsΙG! 9*yUY%&zA eG{Y'-kJv* @ s޸R̲Һa˒}ޖUʬ٨8R*k>)NlSX.WB]hh`;;M 1u 1V?x~3򳥭ֹ8DYwzSR6 i7ȁVl|"Jo6S@uTal@PQeEWԟ;TYoz4A_ռt5 M0.p_.u´Mꐪժ0!Sh‡,'P|'4v34{˳Z3N媉,33™4b f)-L LLeFr8]zi,V /͛eVaN4(hAk·%-hFKV[Jfj8yj !q{gN\\g! 1I$J fWe|I!c{v:+3}FFzï_z4Ŀ,'P|'4g o|Ҟ'ji$$r ֑ڣ J[5+[ 'P'OM 1HA IsjP$\J{4A7mt C ::?3~fGySsף Jf9I;jhl(AQG#&ξdKAtң JnCM5StΏFY쁭z4C_,'P|'¥mo|3FzLy:Xly,IϷ,g$6ҪsSZ,T?YUgz0jgG/x #Xw#WŏF#aۢbFXm2+"g|[[C'N :%_wJrW_PLXLƩ.Y<'CQ;#ߴW::ObuּNe=7pơN(JRc#xam~ľ^} f0yziiYt3LQ\olt] oޫoj|_/PBz@:c>k|_UR#֜EyۢЍ2rGžͩꏛFyy(8C8tQ缩Z͛T$n`ۢЍFG7Mգm#V E!¡E;ogzZx^^- (j|yT=`2霿"So7GvjujۢЍFGWdjޖ_#:b:yymQppFQM[O(a44ժ7S dԘH_K9T(|C H@IL2#.Ҳsr-^UVլ&mҷ@%P T!8=4<9"X,O(Pi}yNeN- dNBQ. 67L<̲@zM(PiCy^zC} f0yziiYBp'e;|&sBwQ(ݴcyF2Y#v7PB馝țv,ulN =&sBwQ(ݴSyӾϵ9綉Ǧ7x;iofy2xy&sBwQi#y2Y}v7PBU_e;Л P( EtӪ/##v7PBU_?-u.پ@D>K5 0`8A޿6BnbZ4/8~H*U⚕pR9fGYO=JҨ4*J/ yٹo7a-npUϳS dԘI| k4R_\{kvQu=~~4fo?T,)FEvdZ2+JO/Mvuv!<{Z-![L(\n}>eW#ŸWf97V+?ľ[qa ŗ)F7ZonY2be OlYܱ!B dy “i]3Ի}d>)yAp\/XoHCHHӓ{GP/E_^PWn]JRUXƻC&*oLj1b#ƈ1g7bp.np:Dj~G;(J6|1%۰j$Zi,[ݛ/xBx)nG˓ہ8d˵~,.R҇>@p@rT%t*H|DQտ]մ 9>Gpd,p|nF1T֥YMK_| 啡2ni$bK6U7> գ2 2(ze2+=H"ҬMU uG>J~ cYH+q5?\մ ).ɹ4'#%àEeP־ҽ}K,_\Z .C<gdqYǣFAz'54iS|spi|둏3m.FGD U}piVӦ*:#%rX][*|4ՙ;X{X;|dž.v,?;w{okGP;vW05jëd+&;UF GU\մ 9>GɐVDWHݲIPՕK6U7>(+&jjoMތok$CU.jT\|둏!(h5I!sD U-\մ ).ɹ4'#%CZNtF1TK6U7>(+&39;[NV?|a :#%C" ՚0>Hp@bAN~zHT5H8եYMK_| 4+:uM$bK6U7>(@ >j ƫdjY>'2# |^#Ϩ*m_O"r/xBx){*OԦLd\te8^갭/ܦ'Qxf&R~O(0 (z}x3WwM0K ~~J陴V&rGjzzswc/Ƌb3/}+viHD,UϥYMK_| RHݾH"ҬMU uG>J) υ ;S ((S9S$tiVӦ*:#%CZ#5 #]w[H"^4iS|spi|둏LiHv5\մ 9>W&13E?v}zS,|t̖/|w`:BdWN`B>WvEnX,`ˋbddd8fio>ɪkr8QMYP4 W7.ن]ƽX fd ZQr K _?\?lxyx$̾\f03J(Y;_mrldG?h4sV,;Fl56Mv~<ݼ~!B [dî _,L+^.2! "m*'I]!5"џb fR4ܟʄ&%cr1IEb V- N6Ѥw.6DVD/pTabhڹ mMJ~ݢqyL?/[UX86 mMJ~آqyLb0*>V-+Zvorʄ&%cmQLUϸ<&1V-NM;7=eB@D@Dߙ4 1V-L;7;eB@D@D!4 1 [8jqnڹ)" &3q@1W}'ϿTX£mE\Eܳdwv[JʱpN_$9I\Ul6]=&郔?8Y7ʣ=]%ԇA`AtN\?U^ofp ]8֗'LЭBFmfp ]86'\ЭBFmfp ]86'a*$sGֶr f0yF%klPD9)%ڣ jO|2뫇-&u]%nJۍ#######G.N#/OqĿx4.p \5q 5&)Er1UfD9f? ؆gg7lV~E"D{lyH AUI]3fEQ5%:$c>CJf7d-#_6}y18=#_|E.x]&=޽%U|ݣ .p \eA]a4 Ǭ x\]˷"0dԕ` XKSkBYkE#4vESYS΅jYѸ$ER$풴![>l0Sx c:Y ~9 ?uzrsi^{n] nq92ϠVcƜ,څgVvY|KjA?ojVѩfyx>iǚ9_{n]̋N5ؕK*YZݏݦ.7^[:t(dTͷy9v6A{;{x^`4rg>r{h3@֭ZykԉDfLY7!+HvuF>/yLҔǐ3:XZǀ======={97s dA[@>qA|x:|zkjB9';h,$Ion+Y+R9 `vA <ŎD;h,67fd]6 l'TbD č#k"ע>|=b('k_$/&J.& zu<`Acɇ],p-=~%X'Ţ }\+ػqrwu'.cec ^OWc<=<D BƼtgĢ7fK_|Κb8=]X˦*g:#*sY G's'8$Ctmꫂo|Kr&|OEsf͟ACbDަ*4$h(AGS5/ў.U6pU7> T17p! {!M3\}U %uG>U '_ ؕ9$Ct4W$\-NG>U $~=Oʻm!#&I|j2Fd\ ѯm CbEOf䒜zSp6S=]wH,4W,\RzSPf - uޱ"NHEW!!7Ʃ|sЄ߇?["7؉+1֐Nf.:١wD'ծ;9zzD`;ުbOѣG?)asT<$=?p$#9:vHM3\}U OrIdp|=b ů.ݕM3\}U %uG>U ;^HD^PX9$Ctlꫂo|Kr&|OCuT@Ot9lX]4W,\RzSP݁&t9!Ѧ*g:#*hSphwz-~iG|pI|O;Sע_o-Y:$?lCO/ \OKLNRŬygT>E>Q_A9$Bt4W$LV '#*9W:sH,4W$\ '#* l? /V$^]ҘLKSrd&yog?4H|3(NvE?VvyEVˬG+~(0?cDG!ViV;nwL4Idi](x(dBk܃l [FF};nu0[5BքLZ]kشS[œۋb{o`{ՇqsL\7=O7CbD_f䒜ɸzSPL1rgr6pU7> T1Tw ACbDҦ*4]6#Щa6OyLt9Cb9DM3\}U %uG>U f=QaKrM3\}U %uG>U M1OZ|R_hn!_mꫂo|Kr '#_S 'E1=ЛX\q%[&sv|s& *V_.^]LF(#eyJ,OE@~{dȻRv/}^^Y{RxMA톶z`0O FygMdkC{E2R{2j ؑJmd :ZndW.'e|h`3mf9k4Uϳ pu0#{G(/DZ)6r#7r[Mvz˪\ɓ;!B*q3r.ڬ,!"!fRNA*RNJ ^yu;2!!"iR^)yI6jz -V)  4II(XMoM uzF-V)FƋ 4IIX;=VbK4nJqi!"!&5)bTkJ GjDAUSNM 4IIXX;=Vb8KX84  MʤKz&A^*ŹnLHHhԤW]Sd551 K4iJqi!"!&5)zO(J :=jhbx;*yyOΫ&3݆_*>)cA|$Mq+"2qu~K6yMZV(ݮ"W"!c#l6Cc~4hW̻݌AAAv:tF38݌AAAv:tF38݌AAAj84ЫVkW f0rhXgEI"M7qt3EsUСM7f4?hCn4_dG6# :| >Ƽaƚn4|z;݌AAv>m:4tnFzhCCM7f4Z7tHӍgp "9V9"ϫӇ@SRE^&.kq(P@H0wW7 ٭Ug8n5滌MeQ->-&l ۄmI}XZRuQ[e"/"yd oWĐā>Tzbm[ydσ?Wjǽ/2UzV7jwE/?>>ZdB'I]7d]4HR/=!.W;ӛ۪CVu0 H"E ph?mѠJv4'Xϕ"\\5\6'čEFU"$˒L6KU'\+!^U2ה:^mC}! l6FZk+reI\*7s!fI_}ҩ [Շ&`&`jMt %̗Mbw2a·*zS="%{2FU53+EBi^ӗu<ȋ.:V3qizM3>;*>JRDzH8wLZNPKj)XL Y1]E|U>Ȝ8'|(Kj NydH+HW|C&t7U&BKIeܱ>ueC0$J+>z./Oo:8D~Rx-VrKՂ@#@ ]JP}i͗q^nG?vIHw.8R*jmL6[c;aK% x4>kGdfVąz7'<($r*^bXpw?߂Ϳ Ro$*[> ZcE;| |GG| g2r;*EǥѰ!]`1%3SokWl1oIVYJESa3shZOϝNh?vJ|E `*;}E-jnV1z`5`j@,>sti&zKȮ\& dy%ɸ)K~" jo-%_3=REEdqM.a$(|6N]1x8pP2jJZ1%(ʃsD}8aۜ;} )W@H5l 4J:ν2qE~[Z uSc@>3QCDo@c6o8w~HUz' zkϯiS(Fd.H]nkjS˥ P+̒"m6߭@@$)9:9*,=i?\{@UnnJT7޾kϞmXXN %O'yy y6~yj@f:w}@a= XK |%m:[[}Zf`f`~^j5_A"qA'CL5o] [sp2 }T4Wu~[$w` YJ|Ϊٵź%?ޮ&8C8l7AǗnSn467i5DϜCĺQެUyDؼlCbi9IOf}w5!a%x UǺ=&֝5ޛwzZ5^ M4(Lf:1ޤ6j6۹pW!hPkPucb=Ӫn]MppnAg&][d빍VNvno M4( K~Lb=T9U3ۛjC8v ʩ<ЌUzB7UVV_}_|&/*d>EG1}HGbKg4]%eR|-^MWJWծf}K@A8]4?E*^TI C֕'TԒ[0*`FaNZO3Y3KnàZQ=Q:i}y^mu' mݗ?5`f`(Y|Yp'% y9Tk0 0J'm(O@k`ɭBzTk0 0J'm$OPkhɭBzTk0 0J'T/TMnWȂq,U=*`FaԜӉm\j}  @D]K79X*i"W%Ż[7rVU)~l5p$5:pp TS2۶8ťkom7m?iլ ¢U KYnwŷ6y"̀=ƍk+VUw+/>گ΄X2(Ra}?yUv^5}}m}^2N>7U1Jxd.-[c,)N ǵkyޣiey۷3iFf8: _F0Rˢwɢ0,SZ ~ZUA@@F#_-Ol $<5SYAv.;0 $@$8J. ֫bU77렠Gx}XGd]G }蟐>]`ҫ-O_si-alternatequotes.map.gznu[+e][wH~_={W!=Cnd6^^|lH(d~]}bYqU]]C;e 篮pǾ$E.܋]x'X_?!\\5\58 ):˛F^1Xe_UeIV&:XI sDzRhNYw5WbE"VzXWZ($._*/SAMQt`t T / gQ2_ߖLff9geݬto|BG#t~Bk|3Kv/B`p(6%qiqyZ.Z&*ܱI_Ye]2a0LLMUU0|Y+vG s> LWgbe㥊WPƩʍ[2{Ig&m7*[bktu-  33f*gPOsvXF%**V޸㒭rP"+"za`&`JV30'Z)f+ki@ǍǺ,ַ[ g$kW%kyGsazi:RK8rV=> 34Yɪ5YI7b5ն33030f%x,cQ7@Yuwz`F`o$Ki;oqrw!n+[NJ '$c*x}3l܉\!}#L3hc7o'yX#}$O"Ɩh{:jpNppN_8"P$cQ:> l1.qdjC!e+! \$"1 |iĉ"3'ItI-ձ"Н4 (莀$CdRiIfl ɇ.:VFz%Й  ;$h8'|H[R+NK>{B|&:43̟ XN]k@tG@g'bo8A߻XN]j@tG@g_cavOˈ% C fڭWugaB:t1%NuN(8a]tI-ձ">KL'30?y%BXM['|HKj )\ g4N'gZIN\IقHBIV$<\:RR Ue*ee%Y |bՏ;a#3 v6>r"W|`\uw9m9:콢I|=?W'yN )NbVH8ZcE;| ™L4N'gY1 }z=WDu8A.:VF%ЙWLھ U-sETt$y%TNJ@w@:;:̊y[B9>6 {S%)"/\qrj cK-K0f0p0 LD͊@Bˀ7DBvV 7D~܂o?1vZ  "Vsh.zD.K d7o!ߟĥpr\ '3P4Qo3ĝ_VlXG]Ҷ( NUkt@T@e{g>27=`dI~!/׬U)p-|g$aM"c0T|>$y%TNJw$.ӕ͢IjבN"eqz'yΨ}]~G:N#gn e T*-U>U*PP1ɆT)MB阒|mQ< }tҀ B6/=4TkBI&zEA$/ %+fN͒ iQ?yL_  ΑMWIY9i\߱eQ~!ɪC:vuSA  \4\ZQC%UejFaFII;wZr jFaFII;wYr jFaFII{e[<7u_րZ3Z~-; ,U`PU(¨9i't҆T% 0*`FaԜ*x׉% 0*`FaԜS:i_"V.>Y{3oFϥq-UTk0 0OکC'GYr jFaFI+hT% 0*`FaԜCXr jFaFI+h{kż,1= G`I6k> @8`.FS^%b;yUy\* knf[qիG%bBL 1!9&sq݋Kt3`ssQOb]VV_}_3s>|#^ cӞVƳE~~Wf~* oTXg#/˼*Yy>6̊R}eS]>E OtžҽezL%y<ڵfCvs[Qn4X?}Jqa I oTXg4\ˢwɢ0,1- ~^UA@@F#_a-{6{Ot!YC.;0 $@$9\W4uϟ7(_,(7F>(rތg:C|JW"/"/bnN{_gY#?x2{.ΚK(ϳF4%3(hB68:&8Ά=X`}br̊8p΋luS]Ŧ[${PKe[5pl-dvorak_altquotes.map.gznu[+e[sHS}kMH8$xfBmF闾V# 1}N_5 ag:n-y 9sv;?{OrD\Z:U,/̥;s6G똽l' /qmO- XXXX̟n>:sƅl(xGxl˹и㛜iw&y\#oX@JS=4f*\di< O2cC㖓{H]9L1&0Uu e, gm.$۫|9ϳ]geTI˭e]1"…5Ɔy3Rߛ,I=4>rOķGѶ)f|K  1$)eY ryn-!4iW|pI|OCG@ݮZ$Cd+f4o|.|#`0.]Ḣ~iFӮ*&g:7" ^ =sg\EEb>Dvnӌ]UMOpIN%9T0 ]{ny|M3vU7> T0 ;Cyȝ'miFӮ*&Ǐ8)FS)s\ڱtfF ?IQ&rbcEu @֋LMc OHλt_ZE`CwF|$>3ymo`;UQ9u0sG|'"e˨EbGdlѴ .I$'7" jG\9-+Nf8Y|6hU$x5'7" jGF !-!6hU\|OzGF(`@-!mѴ Y>ȧa#c./tclZ #:=kj2proZ$f]dolѴ Y>ȧ 8{IG,ɦ}[~7> T0 D]вEb>DM3vU7> T0\w2~zݵḢ~iFӮ*&G|g<7 bI ղEb>Dvaӌ]UMOpIN%9`SDVdnC"rEaUM(1z1I^};>cY(|GB,j۫'EE$qmc9s̭0qSmU#G[`4 F`4t4ÇIJH;#> MΤu-~] j~̩/Ƌb/ ƫ>}a҈igَry)xrǦsAIȚ8X AzЃc P<+ptEbEOf4o|.|#`vFdG6qN^G \*;]/6hU,\RFS@ݾḢmӌ]UM%uoD> ssi]-!6hU,\RF䫃aމ$슕mn`Ι,,Rz*X, Cq{ٿlѴ Y>ȧa΢p. yz}|f4o|KrR. >ȧzg Z>}'EEb>D_f4o|kVu >ȧH@W>-ryXW f0?O/ZS@x8{!3!`ÅzMLXw =o5 2O][!B tʩYJ.5 V†ںTgU!¡YUO9]r"_5R;*[4֢^OǪЬRH]ѩMo%aո:eC=U!¡Y&%]&{uZ)z=C8CJMJBoUMUG=VW4J1멽X!UjRҕbj:YZP+Ź^O͏U!¡Y&%]+s*{ R zj/_',Gr%ɋfeTMKcA`ĀCCϡPӍU'I{3#Q¨h]~.xB.4HfF0:Quz]v]jp͌FatE{_ydjMcm_yXk`3< jMkl6'ԉF?Z FE;m5t#Z FEvuF=63!v/WhFٱo{xI{So'jt#ӻ(ah3~Ѻ<]]M7(aT]m'F=63!V= :t#Z FE+~>϶ۨ:Sz0T+ EEy)@ (Ox,ZĶ@HF6;8,aoHIQp:'QIr#ShWCJ c˜0&{bq@{t3}`suaCGo,jEZ_=ٯq>Cї+Ї=/jk7ހYԊ {z2;3Oٖ Aj~g yXgQHwQ }w_!O\>u窻(#'xzEҽ#We ssN ծf{Ӽ 7p2h~v1C7yo;$HQ]K)oWYY0 ,SZVWC7+H^"Cdl;>mvOdl=xv]<OZ!C@e,]S$ ITp`ȑ#^>DX9n-)ڣ j>d#K6u5[4QL*-nJ+y3nNģ{$I*~)ZU:.pHZk1Gt6Mf E:T7 8{hWWj"D#Z4@$@ Ҵ2OvYT}23PKe[Olatam-sundeadkeys.map.gznu[+e]YsF~ϯV}$;뵒H#~1gZ,_9=GcLc_}u1O~c_"e.TI|'X_..M,X_Fėd{U].Y&1ݖi9+fu"`F`HPbd´*ɲ$+rWQ[0(/-\?julSՠJ]'~ic}/+S'PL:}RYU}l`&`&ĪUcA8ҝeBa}Qv zM,X&ߤ A&sLPe-s%*%Gy',gUhOZN} 4f:M%I" 7`N`VYKvqWo&`&`>4~LD=έ N^)e*[9z]m5;{xO{{?DDuŨ+{vşTu6/Kɷ_ /_륣|ȷ|qf]q£[$qͪ:+Y#*[[|l?5sU],NfyK)VP PU`nFM򲉏W͟=;͇ '1_}[<m유L|_;TOHlImFQJnBBčPi<X[ yT& ^+J(>pB"jCE;| qi|GGp84K}o4 *=KMrхA t@(̓"r=&9U@w"ߠ:{ttPA{8aC$P¥qr\'Q0L0)|YL82`p‚"iCE;it̠:{t|_Q$u',({T*I"Q CkIs3m.9 sO …2b*i:51vE&9Uw4.3|GG02C a5=6ɩ:T3qi)38!_ =ޔ'C3z9"^ J*jPRNj Ǩ[}B{F]<p8@7}ґ/! $haOmͭW)+(j򮖯+Uʬtn6i>@`=,NX.WD]pQv`v`N=_ѥAAAϏ`NcZ?br(0q'h%y&9Uw4.3|GGV8믢iVcU=0UT*ީӰ,xGGAЬt5 =I{8aCmSu|gO8ӑ |wD| iz\ |O= E.$P¥qz1Q0hjPo9Wp†"?INա">K4N#`hVPRW~~j;| qi|GGМA3_{Ĕ`4ě_VlX'͚ۤ$: TalP/sXo rz8}E~$^޳Wi4*.n p\ tN|HR=6ɩ:T3pimRCsB}L=BQ yd]/Bmd@*w*;"> #:L9m|^-;`,c>#kUgUbIGɵ˅]E00A93/&+J㦰ӎR\a"|%&֟4_0(l`s}"AthP򙘗Phx[?m7pQ.]E00Ѡ3/Yz RFv9*AA%)v Uz<&65\xW E4(fz1Xo~aQى]Mv  [DL4-6/ ;J5;˹"AthPbP Rroa"S1y lWCRz#he.`3~]/T!/Z0i $@$ .>*)<5nز(Jɪv:fvC1x8'N7 OȄ߇&$/$9 B!Eˋv*tjN"-Vs(C(6L&̒DZ$P PJm(/ګ.๢ם 4Tk7[(n$d'jNPztюEɄ7,IjNPztNE; o:d'z9 B!E;4Մ7"և5X;kk4fry2j'snVbϻs-/tj B^ KYnOW6 #68MƌoWR؅]}]3 Nu5ٗZ?&_xJyIS3]_be 5JlY|bCgm` N’]3қ1d%@$@̑Ppo^əGx}XKd]KBE^}]Λbj\'poYR#z=Aqkumoug{={?7?7}Xݕ-<RF?In:ǀ/S뱿_/k~ِI RJX;qu&h&h&&1U@*Zh9a<崪vSRR0>H|&eoiNk.^7kWRC6ug&x ^ Ilo$ٹm aә+_+dYgf*,VU>{d0`&Y_Thgw8+ "Ԋ.Y+Հ|ߑL2T|J3#)xX4 >]2+RM~z3)@$za42C${ݚC~jx tgM5%@w:3cP%XF5cGmӴ ƚt;I~N~DR4Ηǐ_mӴ \q)N|&7%0/qǐ}4k$d\|;"I2 egsWɅڨx)~k}MН5]jJЁt&J0[~@bh֡Ri}MН5]hJЁt&Eo(sL'gաR|l}M]R)՜L2d#5:S56+g<_Mb)ԴX'9%uM6f a#m_ќ*^]/SZVm6-5Gv-rƇ=y;z1{=c_g6]mF`;IlD\ yyR'@PM3d!@7شh*6c*;B<Ǎl{Lg#F )vhܷ,i_tgMFt;I~f'33sth<,i_|l9#dGHZH/ 4#ǐmӴ \q)N|&S9PұYwh<YNӾ&.Oq)t9#dGPYvIǔܯ|8R1|IH`2L`4jJ9Wò:w!6i).ř5'wD> cg/ SG'yKաR\YNӾ&.Oqp|G3p/!w*UBmTvh<,i_tgM'ot3JЁt&o⨷sDJy١Rf9Mnp2. >O'pfA晸)=U#qcn--8Gqpppppp"RDDZ*Ն[j>Rմ̪'8 i)uuk(/4!Wь3)!*'m͏~g)Znn;AzЃIf䑜#TP:4YYNӾ&Κ.hJЁt&FT~_yþDp>mɣfҟI #XzKzf}#HG4k频N@g֋|ƂQ|3SNth<?YNӾ&Κ.5%@w:̷^deN0Gbf9M;kp)AЙ䧿G̟ ,i_tgMM :Н$cKQ^vi:{y '}z3 Lf# ^5] Z,/ўި]AlF6.TPB=j1{z5"זG)[xK^ksЭҝrͪ42?j*%oժ]Э2a:e]Fq-J z/UniU=ӽ-7ћ%nUjh3*D@tLdoMYF'Mf -Jz/UnMiU=بYmRԑ]vU! "[e:%{cmtUϺ<6j5ћ% *5뙿xW" US7toK &zZzo *)bSvlPіZNzo *)偦#amU7p֪ZE\}v\әٛ@U!_ؗsͮjRc' vGcQߡزU5˲fNpzI;tlN!"t6s 8C85'm Nډ(ئv S)©9iCq^$zCgnW?70`~Q$k97[( $l?͜NNI;'m$ idN!"t6s 8C85'm,Nڑ(ئ#v S)©9i}J9v}#]t4&y`n[:+ /ׯu6zmߍa#Ջ؍w.-,QFu6zZ]&O_%u)Oٜe  HOtQ>g "E$ݻ&r^w˚Fa[-($ wNb X:$$I:3Hm)_ܵhg4GW-*;uBfwUN#y&׏]d5ȉ8S4)𺵦|աY練%,o7mru6p6\b [PB Ȫg΢ 4h߱CUj$5PKe[ 9us-colemak.map.gznu[+e]r8}V7Qz؇<3;l6(D{~k o)G1OUnsIa8qn}%9ٛ"n+#\\=ܪ//JIZvڄlxm[,, k<׸B qb GL*QR`6+aMudXue1yby^7%P%P~s tKPRD3NԒlJxg2xL_4}Q s΢X:msIt,ٮ *6}U7s*9?{<\FEqmc>&BT:`>mN&̛)0s0ؾc{(/$Z=Nf=Vɂ}b LhlIcLfMqd\r!E SXUeuiq3&/aI{;C=%NpKgJQv.4=@;;yK.% %N'3{N=h>#POYq%`-xR1~T@YΚ9 xT0ylxIJD>C_6}GjF3B``yVX^ +Yx7Qܧ zY^g:c>hysGPqajL|zx:RJ2_ʘأ J)W:4 |qiopu CZI(ЁG1WSVuh&O8>;"> 3}%Z$MP)W:4 |qigpuKsgfzvB}0pn{4CMZաY>KL'J3sgn_,aQr]e;&U7\G)L7zY=OA&ȝ*9?4$A@hs̠R:mckƒ.EDo=9(\£q<p#pQg,V`t|WIśMPmSVuh&O89.3̳].PrW }&b({SVuh&O8>;"> }.h%ת'ObG1OSVuh&O8>;"> >JrkB*l&SmZh`4dnt[GH)B)Xb[oBʣR/`]6(NN<1ԙꝨE(J*\6Z ;F,mo ~򷡛>+Y賷=ڃPOv`v`,u|&*4G3 ժ@^JDߩF=pxєU ӸK>;"> Uȸr.U}bty6h*].EaT3;| ۩q \ ܎ƍ;31T=J&bU(-fѣhJ\4jUfo4|GG!@T"x_2&~a@({4OߚrC  zX53 'irVE6;if7^K16;  }  :B\M@ ~;? #ڽ#Wtn'_nv4n4ؙLVrHk]&)kSVuh&O8>;"> ^s S Kh"ܔU Ӹ4xipuסkj18iފ;\^܈wx:'&.tl(@A'%H"͐SBJP䡁h"rC7|'Qghfȅϗ@JG-!G1)W:4 |piZ>;"> iW Srԫms)^J1ygv=>۩q] ܎ƍ;լNADF_#yә=/:^/x,=6 ܈>Xk; w ˋ8˛x'uF'mgSyB>~bx`>4Ү׋tMdƃVqݪV7(IH|||O/ Ʈ%C96+dK[ڏ*gQ/ U@ @ #Z||WYI2fVq0cMgEfaC ~p R R Rπ Z>VB:AwMn?WCq3030fQQggؔ8{g/Ҩ!oi^՜Ԭ 6b#QcSc3P4mlܤu9ݦwocܚ^^}&x33ΝꟘ\dvinpv/lR.un2rgUOHu畱:EըsLX7Q_ʟj5oRݰ\޲ŪU϶s^ &j:Լ-]TѫßXv2! "`DIy^5UǺ=&]VѫwZZ l;tnFɿ;cͪa:|Ūչm]&D@Q/ΫXǤzN:|Ūжsa &jˤs~LR=^b¶s." M(bzPuAUK-LX7Q\ZPH*<44ojՙGيK ~{6oH_h(<\  Α%_4]ywlRҢdye2*61t 8 ʄC%/j NuE ?uak[).ZO^KSVj NE{_ytuP}\o ̧eToY| %r8VKNpJ\^L%2BoZp:ShCyeO[Z"#V%p c8v!/I?MKZmѨ-esd8V[)\h]S]+_KdjNt tѪ7ڞL%2BoZp:ShL3+_KdjNt tѪ7.qk/|i_  oTpAdA24;ӝ9bRwrKX^YΚ9 6 `j6B9111Y,w8g箵$6_:ŪUDZ+VQqq\&&a-F7h/Z&kWf+".>:iΌ)2$HQb]=~a,ʓjmZ>/i3U1RDBgj]|[.$Y'/ׯu5;ҫГaGov > Fu5]oϳ\%qxLW'+X^B@@|aF>sf!>?s E$Ӻj7n Cǜ $@$9\WSCHHI>?3z ֐YtӐ>?44G&UZ,U5U>bL{0\R_~"Ey_nNԒȯOi%?xh=ppWf}ؔ?HN3Z4) @ 8{XWWj[C *#Vo+PKe[4Y  cm-qwerty.map.gznu[+e]r㸒}{DajswOWߩ[}gyqPҔ,)#lbIhqWY'̃H~ݗeŧ[ſ_TC^ e/Ų|i0fJ(,>{nuSի8 X5Qj̳Qm^wSnŢZ4A84^cQ(T&b2N(ԟkߎD6j~d ߉Y+.UDZ+ =#K'CI` |=qXZ=Dy7R݅w[' пM[7'>W'3q]w#@Oj (蹍]X1zZy4wsfFzf|- bFф0_ˉu`1Nv. I :2EoȡN\@.7g"=>zzb%ۂ8 Ak)-W=Zbl DuH`@y'F;mHmePԶPc>wc 2, xHQ삩8ދ,j{ZwbI?qdX Slj5QvPz!=j륄%aE}1afzXCL4@ŗKlmc&*&W UCԫe}SnnvBL;F~)Xlqaa?Pmۗ ^[ •ռn6պ]`~z1Avh1Zh1ZݵZ u]έPfVOgPuϲuw:pު뷂 뷊61|,Q6Y#( ֿCnzy{~~1# C?)ěPɚ"w9! !X``ϴ}!`p80m?cJ}Y+HE{'<ȼT3TBS?Vtw+'" 0'b<~K1^b\ /m?)5ԸH@8r{4h4ZDn/%ݝvͳ)}?}HG&B8/)vfq_ru0)t'km UBmHض{rڱz`;L^m^է뇲IܴC"/3᫃1,u C&D$Af\% J-ݳf7;`vO ~ ~,l4yi#!JZ3'y):' `uR.$&-"q2WɂRw$/œR<NOü 4x6"q2U"?KdOpM]N2}9qYWW)NOQ~k3]g$ԬO]lXG$n]f*YPj΀x2^' `8Mo/`>խ:w!i+"'x'x~gcrg}DqEpwpwpugO|ȑ#?  ä,L.iJ7eDGf/]% J-OK?;!? PC9;UMD>dv*YPj΀*Pcz2AnMulG$Cfo\% J-OK?;!? PcIZ+(6"q2r,(~gOk^' `@}Yr2E$Cf?JZ3'y)_~wJ~:vOgT_μ^2QdJ{΀%yr^' `ؽcgf}Jr80![?$Y*ʎXXս#gvwaOej$2};SDddAE{Y ߉SIʕ8es,(vϚ]Qu,잀~쉈?8,nZ/׫nM i+v]΃38<ʇf>x>z>[P L``<ِ3sI}zrS-բǹ,=r]X먊nVhZVǃ=asqq"Ez C1*4+Oe-{&|ch/ڋh/WwOLj[1HܓU"=kvc v`t+G^YUdAE;~^ ~wB~:'zE*T-UDdU"=kvŰc v`t]8F<dm9"q2dAE;~ɓt0O2~zUD>d7WɂRwzg&W`<Nò\.TH7_Tm\:Tņ/rD-`k\w Oy@%Z/sw$B[ vTf1V{,;&nc֞w?Fk)LbHq^;dFA8x;W!:}>-WTPG²BA FDChAb E;c* %U0PX:*Q^UheRlӅP;qg)!vFa!E! b'&&Ά; CMJ1"J`I>^O*UbgjUoZ;Њh>&הj&[x$kO icY~3}Q`H`>v`[@k%Gκsgjɭ?x$hXKiq^7C ˳⢃MM-9C}0csAM˥[|Z~~e[7~Ϡid@dtԖ`&ۉ˺U{{46޴nK¬ ̒ƶ8!Ez lo;/כ^m|\k ߧZ=rs}1Lwv5?b _JnO[wvYy>A"'u0f_e?Xfo 1]\pvGM=R!¡:-غʷ b>*ԣDS!!*)J+U|o?KVCS C*8C8USWۮmt}) S!!*)يmW͌˭1v' (1FuUuGqX姴=jS7-2dIsMD<ӳK[1 +qpH]00`+ #G~~1gޗڑj#g?3s_m{!ʎ|NXGy-Q8#8#8#8#8#8#8#O|FDnfy-jxP-xxE$c ln"= l6w7)3HuoGWWùaE"DO,8;pyH AY6qX._?PPKe[)de-dsb_qwertz.map.gznu[+e[w8S}ϞcnAu U d!R8ؙ'ߔ)%+z},0`|FWF %ĶϫbSJ--<F}TU*2=<1D=+L`ݺj*D$ ٫b]E~WI%YlV訶,ʾHeNg@QmTFQXm}{L>G31[S_{S^˻}b+LjxJsY Uj>[^@c">rȹDBn܆˲Z5+ݲzwkֱ]$ ҌŞNSa%xʇeO?,SRQּ֝":S⒭U*zO[YwΪ;ꎺ =u }y>ft"&;Nb'+ ݩ7aA%/5GQs5?ˊGWR'+]:ee%۵kلi#`VzSI:\}cÍٍʣ<*ʣ]yssg)˄Y(5ZLDd71fUݿ}'AB> ,g5k/;GsP/xOt|vor&=8sqLcӏ"~BTDAl~hijBk;5l5 yIk*o;I>I3Ts&Wjo|ĥ89g:ù $k֣j}jo|ĥ89g:Å~2'P=ACjo|ĥ89g0ѝaH|B Sh",Pt'MGSt@g:?Ow~1!ꌑ41٣$f9Eq)NΥ8#ם! \=ΦG1Hf9Eq)NΥ8#0/L&{ S>ڇdRfAC :F7inWU e>фwhCMOq)4МLg?&E^oɻM r57>ť8S9#P}LE+0,f%J-&m L}-+v/x{"3V_d%HgRKq|G36Otj3q)NΥ8#Pf|e0olͮKw){]r cM*Pt^[9S 7O͛MD ꎕUN[MС&p. gk:a󍞄?hh"mSt lw>.hM@.rbljFk#e%Eȋ4-`9`;هdJ2٬r츤*("wE[nZ7Ee~\5AMP kbn.\ƉJL֣ss]Ɵ(ȓ+ewY@-P 8r-̓ɮjHǙu^e%9O6C.K, *o#=ܽCwި7zި3lI|k&"9*WsjqdBOh:K5K6/=@R\,Yb8 5A:zhA tf- `f:1M r57>RKq|G37p"48z4mSt \|;" ͌8zpy'^*B,{46):I6y_ؗWf0gz35"w3L=i|!{[E>]AlF6x}U˷Er *TPQ51{5@̪٥9߂YGk ҍrGͮ2?m2-wj]YfFGB@D@74J>2iiޖϛN:r_+ ,(ȹzQEB#WE2;og=54f \N|o+ ,(zQlaБԙve! "e%tMo7[v*uns]YfFGGdӼ-5 5[u*uas]YfF9[PMxд#W. ԛimP&/~oN"#s8C85-d ,IdbNpz梥7C'$2Bo1'S8=SsWⓂ{)/~0LgG dє$qgҊк,eoKRq/no}-wJ[GuDP' uBsJ,ygkf`s\z]@xv".",_=2j?{w0]@xv"."MkCj~k ,2ȮqY ~Z2+JO)"! GZK]C,)_=_j;>d7k+ھ# œFb߬SlݬFj+K/zL>/J,&gx~LD+k'Vk3>U b<HttZzHo|ĐVC 䙓΅J4oFMZҗ%o[RG*on1Qdղi-J gei4֜= \WfUo_%RLߦwRHw)o0*TPYzc{VfE 4h~2[_Wgqu6qܮPKe[TXf[[ nl.map.gznu[+eYsF)*<lcEc(a4V>b @ d_%L4AbfpKVѦpzn]R½ś*6pup \U,XG]&<.9+0ꡅ` XNE_"sxoW)i[$q&0)V* \\D:n$" Uv `#QPʀ3q'f\ےkiQ>5&05UB8`:1,"ᆔ Y L`SSbTƪ g"&![ VWDv+rf2ML/ xUȯ3)"OK O>.k#q8b1GX}6g#p1¸ɮoķMTuN"QBv^!AG!c))V|qU8+ :èQ50VG9999999ysoV\yĿ+Qv1R6Exܐk>H|:ʩm5B<׏5B&VyTݴ0WiK:+/wV;++;/ơPp(8sϹDUM1SfyLq]-))T[:)sbWl&J],x ^tQwcݙ,ː/8,Gs 9ۘO\ETJS[V @7H* $@z wTqң1B-g5 .I$'wD> g2NB.:s""ҨGchᶜtht'Mt{:N[ȧGј!>嬦C;iS#,RT=!m9,΀OrIΔ(N|:*KAhz4B嬦C;u<%0 x;6 {(2;Q8c[j:4 3\3M'wD> }`D@H2Yɸ-3O~ ڟY R̖ EƬ ϶th|g'$g)N|:k#nA&h̅rVӡY:^(Lo <OA:3ML*1Q2+j }f1*$x10ViA :MSSSSSSSStH$7y?/;EKu% &eV\,_7i7z CbI;__q8| 3>z[ۅwգ8z,v3=(!!!O`~X!B&z!G\hYMfw|k$'wD> ?_ r2ј !.rVӡY:20# fM\@ F|I{4Cm9,΀OrIQt03@(RRј!m9,΀OrMGPϰrXH {ݣ1BԖ͂ \|;"jd&t=M{ s[_3\rIN|:w0M6wLlMf\-rPT'ADTJ/\H|M= į\D )hf]f ] .p\;:A"![ޣ1BmYMfw|Kr |;s9'?k+|jblk"7(qNx&VC I8rU9㺌> )l#_V5m yg}PZg2pxs&)LQ]YsNᱷs7ٲF,"e$;}ј!w2nC ={pA gH V6 &sh̃rVӡYН4]+JЁtS3b~8i=M)= ğm9,N.(JЁt#{3\8h̃/rVӡYН4A@)AGo/R,oi-ⷶth|g'$g*N|*]r?~,705r/w;lL`&&xOSf3:f3)V+*ȋ5w$> = F>''ϯզ=) )"ޔ]L@GTL/T\D꥝=_Ӳɧm߇2uz Xr*,:CSH__uv׫WZ3 eTk:Xӑ/nbN0W"QT UPhug#g_emB *GTu0#yn!sU+C‹iG*5뙽}UpphWN9#J^SFZ&MeZԞ *)F֪7m7?凞oS{*8C8t#MWuu6Toxo騕j`S{*8C8t#MWucz{nGTC U!¡];%)hkkwf ZNzjo *)鈵EU]Xxo凞ԬЮҝLZ[dݽ Rl_!USb zWf ŽZzjo *)gl@W=VqOtJu̢Q^ ;3 vŇ )R>DyȾ  Hs\tDeRy[\_ޑUQqΪfuT.}c8\h|>'shjEdY3+Qèh=~xBwy+zY FEv[ J`F0/ڀ_۸.ѩםZ3 eTk:XP'qJ`F0/ hC]C#o%Co3+Qèh:1V=61v/i*UO7 5y+ݻ(aT]3_O讞(aT_≶o䭄{mf%0 cxy+zY FE+h9\{YwF+NH%:bmTWb2 2د̮CS\$OW#}q+L/uw6þ{_M/ Yl:|ivH Nؓѻ5IJ`vk׸s/kۡ; ܜb߬SlW%ue%V&_ky(JvI`Ӳ]:uE dU|&C~`<'ջb7뚔Z-C ;'4M5)3HuoBـ|7jj8͸?C *#F4v=4hР}U]f".6?DdqPKe[IWWbr-nativo.map.gznu[+e[wHS}Ϟ#>IfAf- P.闾VŒHsBWT t ܱϫمwWu޳֤.pk@7osLO_LZ'k}ʖ+55DƖ>|!\ N~WsVzU`# Mt %bʶ rSI-/˴Z+@ JPS;< Te,/T Mf#ZBpVldf'88)z:ʛ$l^뺩fYY1ݶc'J t>v=c1{=?=g=D#%pK?G25t1WƘǢD%\POȕ8kN-{>8tl/-]ݷ|;5 ^Dx)тv ơΤ `X8yAٽ^ToXzb|2 d;Qr|58wc YZR]~J,'BFcc'q07KVW9095J:|$iO 8yNrԕO]WfIӅSC :f(Hr"1O ? h"cMН4]45(y&% YJ/Ε MP_]t 3S\siN| }gp.^d+&b(r5w|Ksr. >a` Cʾ'W 7j4Aߺ,Xt'Mt;%\ *cGL Q6J貜cMН4]JЁt"s7QZɅz.i:i.͙3 >! 9jek˩*۬K&ODYQVZ' O2#B쉏AlvqjA*5:b>o{X=cccq#߱fSv5=tD`;kR#5jHH&fbmwΤY[0ˌv0)Y&YB%z}1D %^vYNӱ&΀Osi|b8Q2L̟jug=6-&b(qe9Mǚ;> >$C_AoL Q5J벜cMН4)A#Qo%s¹y=Je9Mǚ;=\|; IDώfFMqSԀ\xbYofnnߪ CUfnPHl9_?טlmM/_ X(WŢAIh2`3S8݇S:i,v aS))rJwSe-v `(Y7 ^us G2(V RoONϷOrUr-MK[ >..}k~}kj`>!pIOV=n ք£qqtfo T ߨF2f.{aۧoؿV5[4c,ȍ~:wmCڊ0EFu|lw^(P|:S//J\%u)nty]|;*?1Boc "D$ӻfjWUq?($ wNBɅzQbuM75(W,(O=4GYWWX84i}{5_3J^VʼnehMM5c{zW?l~P< iz (ϠG.l8:B w޲(shРA;/u kLD4"* ھ@밿_/}CTHMI?'PKe[ ^me-latinyz.map.gznu[+e][8~_={Wc?Cn=3;l6=3{yAfp'_]J4v:wNPUI: {enW ~g_,f{ɛ" 7py.^2eŲ\&=YߔIZ5򚀩Wٺ̳&,$<ڮծ>Gi(+k-U֝:ԀX+bE(V}uյq;"(̳/U S&۬d"n4t:y*+ruϔғy3ՂEr6ҽ;:BGBx_]=gğa:t'N6\iP \\SsT2_`daMXNdݰ &\U^pV@@x:7Tns^ҚZ}M!VWuŝ`E&k; @@H(g*iqIQ׆k $ Yۚ?nYQ&zHif`f`̔%GqB9őIub6@6IZ,OFJ|n&%/zF}ܡWot*// ^J|UobQ9C?4l lA} ?E7Ek[E5<<5SFcC$ĎNTpimNp .B2FT5}7S 'A 'Lm!PvBpB"1S/Ǘf:V):$ɛ6:TF% Q;dG&uX=HMjF t@wt'! jOIN>$MjI\ 'ǥp%C['ùF9\} KW{?mRCutgΟk@t'@GOb}o{ڃ$I ա"Н5:(N_<<-~ۮ>],6g܍Λk;^ w BO¥t&r&h<9!jMj)\ g<8Y&Jҥ|[MW}P*SΘi|GGPRL[Xh=VBY`V+l[ 8b/uu"r6JQ?Hn7V=Fm=5l a#l}"W|`6_w8:"%{BFV^+F<˓VD+ N8hCE| M5N#dH+F\A}Am!))zڇ$mRCu|OR89.($SQˎbpI^I ա"Н5:(N ؃QBQXܛ" 7LR+Ayݳ}TADӲRazS 0$J+w=J]\l0߶pgz+ȏ;5jo"!@/Ё@9@(`SLv'a &}Gw$.R8Si;Vּ&b6Y%c>?A&j,PyFT@5*J^z/Ȋ|;4ᾇ=H j"\ǭbPpw؁\}p) ^76Q1niWmP*N[w47>;>JjےNh0 mgEDtw7u[1m&wnPݫ(@QŃK%JY`P+@ b1=q4XkB%&XPxս4K6:TF'?,QН%?FDLd9d`|jMjI\ -w8!t\q(4T ɫ6:TF% Q+%,(]uz08Z?~ABS6Q |P( P[D,"@Y\rf/ᄛnHb2 U * 7HIr-_\}dq Z_XZa-KYbCl,6bClGM_|F}KBNs jr"ݻ6Iy?p_.@!yH(IA]m([6[%Qfvʊ &`&`8JVJV Ғ?Xm=nX!.os,vXlPqU7lrROt{Ƹǧ}K"nVP1"FĈ?a0.i0.yMd~bo^uʏk yz%kEZ܃N@=cډ3}=mzٝiӏo>o|2O޼͢{`{B1_peWGEu?ܠUך}Mppl҃rgL_9UGJ:Ӫ:YGfvnp&|& *puvnp&|&U5Tm*Yvnp&|U5TmXg^yhUos{&8C8l6Ѡ3ŮjĺVuYhUlDXmڕ܎Vf;kC8f J>3"6XשWu*vfs{}MpplAg][dB|_!6hPXuW(ĺ^?v*ֶLڢQ OKuS4ghig8iQ!7 WQ(aNZFrzF餕o-Q!7 WQ(aNZFUA,+ pr ,LaQ1 @‰M^8rOyt ^Zo" ;qMm+3"l2wzutDL 1!&=D<=rO76Wt*ֶMڢQ OKY|·z`|ċXo?OgIқ51.몥~@$@#Ÿ`3 AAA/p[e?#}4G_Vj8{ U5K[*qX5"/"/rݜONJ$?x2{.ΘHs(/4F4% (i48688.0Ά=X`=2kdc{'Y 8pPy-&a10/^zKPKe[Yfi-classic.map.gznu[+e]ْ8}W{DHԚॲ\=ngW$dZJ)׏@\P]NxϽ&$=ob}oW?m/~c^^ֲeE)uV۬e`e* ..ϊ֚ҚBŰ'rWJx0QcٱL.wR0[GzGo^kPi@dE) j>V3VmӛG#CAFlQ[nbZ: >>GkXiH$E+WE'uO4 ZvMv Q#A,:vETCm^l?Y~mSmA.&DiIԢANm//>F۔(gO{ 3c.&:`=}jH@M~^ ~wF~F 'Z 'Vn:,r&]?/?;#?#S%c2P[eɰDΠfZgn8,OrxǃŋZqi)J坼ѻ07mwZC( ~OR<L?;#?#}-גuܾ&juY@M~^ ~wF~F -Qhj+}Vヨ6yx61虔Rn=;Rb~KWگw*j6eP?U#C-w]7ZKk9Pj.j3}?{uc oz#lU~z6N_oMu)0}I`(R*A֡xqh`?Md~0mmL?{zgB{aZO/-C'h7'Oә BiPXiFN"yg) L^4lt%n#:Q=ACAG\,Đy7QfahbMe!2&|g:%gde"kKJ!+URG}4 &:IGc0 h련*DpT%zx=hE02*@$MA[ $DO\t's9D?Z ~ggP3VO}Vr[*uZM$^ψjxYl0ђ6s=3Ya-z|Qwճ&@HF5L},{悤C1) P8`Ip_yM`~X .{fc/-1WLRH+`*:B1-v'0-C'JpNlG~Ba:1"]#Mi\`KF|čzDxDzs#.p PpȐ Q)Z K>)BV&tNU:d%գIJIiMb(4Gđ(mȖ.cge]j_E˺sHqN$ݻ4wKmn9:-ԶgԒU^!Hq</F 9Uwգ6|x4N[6|,/*ԽVDAG;RORQ2=qg[Ia:1" U* }1 -F=CBe,HAG\%~$hx.2<5ģE;vAtJr2vrZ%uՇPM0n#t5&JDKUV] ,3IWSP DU $*ɂg*R\WSeAl>v6 "M87usjy1ν+7}`ĶQD9cHc7vN%ERl߰W@veSvNn88vN|`1z۵ ڍL1%N1`nĠ/*'wl絙w["b~)*0f{jowZnhNVe׎7GrM Y_ZBk9Pj.xr^'1kMѴP&%Q3}-Jmݳf7j`v߀?V1@\E:,^Zgn8,;#~|7SV?}-JmRm33bhReϮD!W6)^913jwY]߈\'juYr&]?K\5O3syca4\8 5LEa/l]UHֲB=u`MB<1"8PF*~_?zA6"?{z=$zg*Qh>h>Wr=kOK =a kЉHJPǕH"҂D:0%Vd:d"RY攘(%r$h 2`ASElj*\NG2K1}5v+7G1øDS N+f{yRā=$)&f&)fEQ02(@$LA[ $֓Nxz35tD/38Ԍ9Y2 *q4\'(-ԱibjvufxzDd`6mHF塰Nwao_#[һ Ktɛ}G}q2yѝqM_3[,W+~fTXiy|,Euj>X.x-XA̫/ǧ͖Ji>jYl:q{w(D@D~D"FTb%ѝȧ[j_/Xo*}{/#*)<~ )]&lȭ~[>6?/^Fgpgpsf9i4#|>1'Dywޯq#3bU;+ȍ}b>lW~x?* F7ÿݬZng0 X^^Nj 5r']C2b|0>i+b&$DB$tM3oj]ަZLgpx  ](ۛå7U-ϰжxØ  ](՛åڷǦZ\>~#b&$DB$tM3njwZ=|Ecc&$DB$tM3nj~ Nl;7 5LCdsy[Aq~ Nm;7 5Cdsy[+t G^v:fBB$DBd.i=yp#S q #ZVE^=:LT!]_zS* D˄hWJ n?n>=n/;Vm۰]cݡz$9:N /x"6{hb|LÜ ")'Tlj;! s6jNځ8iņ^[mg#2$aAAI;'~QFgpgpsf9i4#rm$ClAlAOԜcqҎĆ0gz椝v,6ulȐ9ES5'T/ Up}"lvw-.0}l坄9ES''NBlkaȐ9ES5'|=:FdHœ ")V> wYmg#2$aAAI+h3jߜ >m}Ǡh7j/-{*W@럃~T5ʟXchJox0>Oӏ'eU/_XK7$`U~]~+"/\b9"^:?{:Ma.yyΫ/~?yȰ;m?Wu)~]0}m@]TjaW?>sl q&ҽew; W3 qq?x:# <4Uo^slwl>;m^Y}٩aͦGledsvhڡ@;߰{7g>ȄL"zH?!]exS* Ĉ Z4D83zW̳}Ug7_bf8;\-VU^8N+nyJG Nҽoj^^5W?ZW-5WC1 \:8.c -zTQEUT\X;V-7 PC ˪~{Un}zX*(PKe[k ge.map.gznu[+e][8~_S[~؇$ORIfSr78E⨅18N|U\ts>t*dW?l=ɂ]Wz><= \\"W)r-˵sJ&%1J&4ܳςʍʍ`U0Dzbm,MoI3o(A՘ԘuepeXMOS~Wsfݺ0#0OXʑʕęccb6slS)-8Jxg0x\4Vh$Db Bb69Zf KC)&`&`*\\%SګdI|daQnWG Y] Xc9999999xb&YKYM}eۜ`U llGhT HM[)[li6`6`;@VNZgz&|DRf||w"| ՒGe>Z^9^buv(@*j,6&o=1z1ݜ5]\v%lٗmP;Ī'?^,, _vbe>lM6eyWxxBR2m ơėkwb#΋#횮 " Ì]U>߮|'GЯaXtЇS2d8,o$]qC&m"ݼVLRnWo xw6xUr S VXa}VBU fL@>tЇS2d *Yh*Q6?Ŕ]/5vUo(|$TI-ɨfIU7 |%Cz=;!>Jj#\0nh |`9}9>'p'p>3LN!#_ʿel# %{vʗO,ߦL^HOBQv`v`F=_SWV-rvZTltKuH7/SvԨU %AZ>U3ptJ E9cj!I$=̨U{5(V+jXKR6aFݮ* l( Ҋ+'W6ӊfwT(zQ xC7<;1 #6bʮ7xc$H{g5aKS2X9AE fT߀5(A98š-~3vUo@aM>;!>JSS\hgVQZ؛DdYe2t|ɜ4/$Ya7{/$gy|B+/dldX6,$Ͳ|4LdaQnWJ/ϣxQGz9z_LW.Gt,R2Ly>dq)iKbhRRMF9GGz\26ptJJ&R l]6xFݮ* xw6xi%S56OA`glL+FMO}Dí_5n/Ŕ]/5vUo(|$H+lsjzRE1^aFծ* ة|'GpZ%ðaU&m"Ÿ)^jPJ#d^EM߷aS1ܘ .xQӁ P)YjJud>d*w,ˎ-`BQFNs%{6Ij4 FIs]ʂ͆&c40tԊ g)qV7W,g=-i_,ˣMu d@d@v2Jn^`3}h?>߰﷯zf`f`~QzFɚ8{૿ѭlALiFFl>il|<߾O!BxF1;bDVՌ`Juτc>tEU"p' Jܟτ%)9CU$:~Q8iUn}&D@4M4(Y1TmޚLY V%z4Ѡ3fPci8<đnFLhhPbb1UVsJvoτ%6+=E}LhhPI3L[]^`UDs}&D@4M4( Dᭉ.+TިĩnLhhPNb:O($^7Xh[zQ+mE\Eܣ`3ܮTJ_("HH~q$Ur0MXָO~`$}'ve9Kz<&yS:NDa$>kA^ ۫Nt:H›N4 2Bk5).ZW^SIxөDFhf8>Eɋf; ̟uP_o 3J(Yf$Avh}DCAG7ϖ5 rxV3iNvbɋ֑7u4 2Bk5).mWt pڇSh_-IxSK "#V3iN-(w;\z$~ ] JJ| ou8P@ʙ=wj^rCp4Ovrj+_P/~̃\*44<B-t ݺnML|ȶfhm[ ,[Ѽ,=E$DHk޳eޅ\0/֯v5A>EwZvhcA""zcv57yɷ5O"(l;1y)YC陮n/{XF[%_Y&&XkDBTi=뜥$ua]c / J4מ;6c;˔;(է[# %q5/F&gRJ~d)VIkT$/wZJ{..j*qG :Lkz PP Hp Ю17"D'llyH A߲س^ҁPu7ےh闺R!?TeUT(c>?ܱ8ݰ o8gݫ7.pAr_2|&{}ܝ` XKkk|QK6J!*jvTM"""" d&:h2mƘ[,OnF0+0Vrse()xOSEIy2)m6z g4|Q2KQ|ׅ9N3.r)v0ya?Fc=Fяb_ 4᜽?Dj]Vw,`yR,lbl 殞G}7IµZU ^R2~'7ѷq ơė_B=YO#]AUOf5mo|.|Q2Wp GA1T/f5mo|.|Q2\d8:?][N* zҬmUOqiNΥ9(.+C_elHݲIP;f5mo|.|'U2 dxnE$b7f5mo|.|Q2dT#]w{hD UǥYM۪K߀| *#]w;4H"~wiVӶ*F:7 %àEepy;IdKk爣ud x^z 4i[|#spi|3m.&Gv zҬmUuo@>J8StƗ.(c=`S/d'8 o~cT˟o,M_[>̝`=SzYplplplplplplplcC;|;Vҽw ңP_P;vת 05j㫫dT+f)&wNWQ$4i[|#spi|! ԯ Kf5mo|.|Q2V@ZPt&joA˵6 .jV\|!)h5I2A1TriVӶ*F4'Ҝ߀| izg(k(XzM$bGf5mo|Ksr. > GɰZ6[(ő%4ɥ} r7>(V_}#ug׌mN dwe+ \Oup .Jf;tfi/#]_5H"~qiVӶ*F:7 %CzN #]w6H"^4i[|#spi|R= 0]t/UC>|U0dewЄ> {W|H Yodd5H"ҬmUuo@>JH=B)?O7H"^4i[|#S\siNo@>JՊzzXXzȇIP.jV\|!XUtm zҬmUuo@>J*꧉SkMoD UҬmU/d8=Xk> W%)F?dszӗ|t̎/w`:AdWN q۩e[ XX(:,>keIv`Y#h@'LCG%̵d[V0w%"?HX 2@2u"bm-q4쿼zstU f0QzFɚal[`F'\>qWA3&/1b- 6b#i;h_4"D_Pd]y?<ݲ+C+k״ LhI9wrWHHg܂EM;2! "mI\jLoyٸ܂eUiS&D@M4)rz4 _-Xv/2yf*Y맀gx9 TP}ʘ|%;K?6!c} Djv-s^C H@Pr`wFz|qϿ3zr(g,shO=}4Gl.vr8' su[*m7>"tq2*IKNK[| _m3(Y^mJ#(i6Sـmq6p6}3ΆyW!Bq`ޙO X!/d_D!?D1 ZPKe[/'vddcn-altgr-pinyin.map.gznu[+e]w8S~Ξc^l싽hzڝv̾`,'llnސ":IS珤".$͢$%IJL _mYutuujItD'It{'LO~f,'k蘋mZ u%FdE-벥 XXʹƗs)<= dcˍ 6%eݪ}E-hAdi˹w*^& ?τDˏr$ǔ[d ͛{s `cc(犙+gA@ y iDy?&0]Uf,qqْ\㐤$K0W30,ʍ%)^&k];xg" wO=|@|\ssI[3d4,3 Z$iyO[ > ħ&CJ[a .3nv( ~G{EՇw]uP9t }ɷ XXdC]-ɉ={FwW0jkѦm4o+ ^ɘ-\X AgG &.ϧNE?>5X̻~)j[ YSaPN *Z6`"MUJ%57 r2MyO+Z6# !6eTm+7> ߀|j2\W݊G2Kjo@>I9үh,oX fSFն|#pI > ȧ&C rQѲ}b?6eTm+7> ߀|j2tP ?VlvlX nSFն|#pI > ȧ&CE<{kS 7 ,qFGO FtSr ' .ڔQ,\R|pZ6O !6eTm+7> ߀|j2/ޙP/Y_atGr/<;'8L囁|]~6El3w1N5Vccccccc$ء+>lk`;^+dOWȑ#_^N^j&b;-] pD¦m%Fg|OMj'~*Z6,CdW6eTm+7> ߀|j2,W@ZU߯hl`")j[ YSZ56 !MUJ%57 4O?hb1DMUJ%57 hWtM} r7> ߀|j2,3.ޓ !S?æl,eUb!DMUJ%57 ;t"UlmX )j[ YSB<0.mR3{+П xvP_xHb=܊?WK ^l²?xkWQ](YQF]~& ?,kXD]2z^Ptmɑ"g'JUe0=lXVdzzsw/#0.WiXѲ %ڔQ,\R|PJ+Z6`"MUJ%57 Պ#%߫h,jX )j[ YSab)O |#:V8,CdؔQ$\G%'7 Պ%WnEfK2Kjo@>5.P>MTloX bSFն|#pI > WNSuEz+|oS2fv3YX:H5Y=.Nj:(3Jv;,tKܝ` Xl\9,1ԫdwH<4NSnR$/hЀӨGq7fcK%9g,v/#|E]޺@NdjrS5?~a{~C^-j `3g^ɚabcN@>ѳf_Hw4e#؈؃VA*O%L0aK֛eɖ\k;X jJ˽z9w͢rP蝤KJtgEay˩?T" EjP;&tj[nPT.6oQS*MO/SEhAI,\CQ[3yIM4}O! "Y%nY UG?i< M]֖vf0̏3Jd-5m$㠱)T3~NyBN5m$ iN˓v>'մՌNh{V92I}@HMJwa_u8IxxxeoUȖi^ge._C|WiԴЪN %>O>bjYM ]l~PS*M+0.{)".W f vaaKC5eW@e×;DH#i{G6yD¹e#ajg3c|swHh]# <0(_ľޯwMee_hg#{5ed{zVgCg$͑!Cdh+>] mH,"k!zO* ki8-H@'N& +~!rǗk;1#eJ;K꫏F:HnU:|nK%GD]G_ƟB*~)Z:.p5Xڽ*)qh}R5)l6M;f8ƾigCP=L0afç ~4davq̎KYyPKe[;,RR md-gag.map.gznu[+e]r8}V7Qz؇4d6^^\\KCRI<_č@P,qSh@ޒmt_L>NW¹ś<=)u/enq2&\;|7JppyV\\\h\)v|_R|ڧY-EuTʪ]AXE؇/)x' N&#D.I'׻M߀c++}.&NrMtt~J030:Tm*s[cSN=jA"sޑ,&jp'pUUS."&"ūtWd*$,oϪ4-*cYYYYYYY8bf!bocR&R)+g"iO"-ShB݅ۛ!!> *7enq* #2/H} 05<\,.nCEp7p3 *92e|ETڛo ~*-2`m ~*Xӌ<&}LMz1z1Q^}W{ 9'Gs#yx% <+.*u?Q|{yms^nt || _ߣуAAyqd~,o'$t O-.o6d4 o  ~7 ? C '$22 鰢Ec1 MB?K Š'߀T2d8 HbƆ]!~Sp.a(| ݲ MB? /䧞L>/H5,-!6d4 o,$?JN 伆e?6d4 o,$?Jn APò۾Ec1Æ]!~SЫ~@&x{xE ?őt<5j2Eu 9h̻!iW~#g%1߀T2 ?'h0aEc1`CFӮFKbd(w@LS.Wa._̢^c^ gVL S\X/ pUez?J}8F 9E,8;8;8;U\%ώ;>bB޶h;;{#TɞՐU2RSߩa*jX MB? /䧒!%հ얷h,6d4 o,$?J5,Z4C؆]!~SPZi nbaCFӮFKbdva n-!O6d4 o,$?JLI/gz to,$?J'wɎ YSq:l 3e#1xT2vM`5,oo[4B_lhYxI ~7 ? ;vf?amӢB!iW~#g%1߀T2qx~d\%_pATò_-%mhYxI ~7 ? $Dlo `VڢBۆ]!%y'߀T2T;H#q|eEc1xeCFӮFKbdX@ S i n[4C?mhYxI ~7 ? Wdleeb҆]!~Sp^%CtRòۮEc1Ն]!~aa"*conb~6$c&p9YH NtTɪz}1JXe^|b &N[> s+\YqQFq6 w-ūt{&y#Y']g$*X1+޴& 2 ɨc*qj2Е޿|z@|zh=U838ӌҫ7Jxu1o]VhUNv&;]i6ޥ-TPB}DU%cuؾ<ݐ+Mu=Zv MS5)t-|H47kVnc&D@4MjRҕ :UT7,7oJԟw̄IMJoQNUGMoMuge' V4IIW-ʩhJueTNLhԤ+Tuczc<|*թnLhԤ+TuczN<|*PS1" &5)ʤEV[S=^`LSc&D@4MjRb zz[T纝3! "iRrs~BQWCTހyԪVE\=;t%Я-_*T)t K}圾`&`3KHW4]Y7闫df\H Y^ovYD9nҏxB 0  z$>4? 5l/+ۛiNEv uaZiNEv uaZiNEr,(.tuT_o O3JTfyA6 q(Np.)h^ЮGhmfp }8Um/)/hשGhmfp }8U_/V+)h7F1qj{DCQGSo' ѰQ(NpZ] h]^ЮGhmfp }8UEi(xfFpڇSuъ_']'6 Q)T];k/Ӵ8s!].ʋ+0w䊗ZElieߪW`zb/=x224Ę0& c˜1+ǹX{GDC6X8zQ[qj2ѷ+h SG_@*=kVa\U٭{vj2;閠@ jqg _QLwѦ>6AC|O/ewQ;DH#i{GE53sN ծf{8|Ӣayf"ncv5o^_v(P|BB&/Ҍ%~ xnnx{IV@@@|F#٦IخkDBg]sܥ7;bRrN_00ΙBzWBBBOj;>'eF[KhګF:LvYM>jU<Q7'I Fxit^^բikU/6OJ,@Mo6%j6l1C~hWC=TPBXղsSA;~ȋ,]Q~ZePKe[r /@rs-latinunicodeyz.map.gznu[+e]K6W}k$;$9e "PBRc;~ $эD"]uy8O{we|i.2eq|<*,Ҭk|Uyv8M㴈7m|0/qTc%uSٽ"VĊXb5Z__k='YQ7yq4и>sW`d);mg5n,4tXxxLR2R~cG$Een4zCza:m ؘq+7.`l1bCl]bLBYbiXW3OzŵTDz@wР:;:J~3"O֡ܿq.2S PU}ZcY;ktgPН}1/PeNƇ~ZcY| )pi|GG|#jvsgr !=ib =+) f٨_a(U}YN6T.T{RY C(恾p3Q u}{Z*kpwhw̸܉f{hf.3U/Nhr[>@5U.: qi>;">J9樛(U/ԋ„Ƈ>vq-ձ,]>KL |wD| ʞjj!w; =+) fRU+OD #ՙ`JxQyG6iM>GՎ|]a; Aa8lx)Vݕv`v`^XQF}yIY94C PMQի.: qi>;">JyK:l6:Q}NۈTAU7]\Ku, tg. JgVLZ P/&TAUoX]@t'@GɏV@nVCٚ1յxE}@ƺX۲Ra0$J+~"]BW|A)$;;Yߒ?m!W~["@xhV~MԲ@֮&}HgSRS4NK>;">J [拙|XwW_p"տmQPt@T@E+2Ko2W7r[f2< PU"+\dmu.n [\}p) ӷZbClƝAwƇwq-ձ,]>KtF(oztW g-7do ЅԍMB;58pL2V5s#Y^1+TVlPJ %RIվk\Nb]6t#8M㴈7`M#,"arݝQ D(]Zq9yYw]߷; 2 Y* 7HIrf-ϫ8m"Fn%կV,Dxv ^{!6b !6v.od5Wxv~&}=3H3 1 &$JRze'g/9M>Yc3ΗK/8r;e٦Fk00%+O'+y3YIn!v,yɟJX\7~ywg/>{]``9,l|l [j&רooɫ>y36*!vvD1"FĈELkbQ^vIAMVrW/}Xk /AQ+q^e=d3&Ӗ/͖ArkSX!*$H Ad,V"\Qig"Z~#5Kpm1cګR"қ=RCra%C8ö!|-5Z>YT-]"8C8lhPPuix[7GH5ra/%C8ö1z]U׺=&қ#p{ m!a[DRk;e>Gɉ-&DppѠ3֮ZDn>GȖ {.!E4(̤kqL"}^A#Ԗ {]"8C8lhPbEP}aT3[.v-A9m&cճ^{hh#դ E[ KYuS !fhCE{7ϕ0Z|{PU(¨9i/ fꁵy#5n<[h5uK~~`v|QFu6q¿sV$7݊ejZ" 纻j=F Otƞ%ҽjL=p vavYW{?,ov97(b߭{Xgx6B,ͿT6:/0,)-튅h?J^TP5 O|?1U3|O} “]3һ1d.뺣} @$@#"`3 QF}yu/}dw :JC(y|]bj\'pm5/"/"'͉ںm,QNX (kx*~,P mz (/ڀrll:G A Ȥw6>"P@,ꇲ*]yʫMaOTdPKe[Gt% mm.map.gznu[+e[wHS}ΞUH$xf⃤Z$ON"*5KX[vI3/~pg={].;vxU2.pu&u.GߋyjB_T(<[}^Sw49a{B{<dpYE6nwk ?է\ iղ4mQQ؍ UXHP&pQ)Ӟ7 V&P&w:wF*{K0P~z ):-D HLn+9%@(}gUcŒm@/vܕ5Q2z8U̴U|},[frO.R88Fom>˧2}Lt: !ƙ΍SIJKk^"+o4]Tͺ!Ag!g=gBn.҂mjT~iWIZZ|]OVZ:`+X#VJrM!M=ۮXQ.=~d])LmގG{GG{Շ(;,Єsay9wkݓ XrR,ldsfk^ۋt% ޲sx_/xO1[ػc `L|ثėu??tH»٤9M!_No@>JNꕂLtbp>uH"դ9M!_No@>JS R A(!'IP&iWp|Q2db*a*DUoҜ}U / &7t$ŎHA: N!IsU7B8(P-ܵT3<344iNӾ*F &7%z c~!IsU7B8(&%Տ;Y<~n:AE3p4#gu!RAU,CU&iW"d; OFyC1TIsU7B3߀| LJ-)ןLd:E.oYEk졺~A R&jfN3U˕lc9??YLEԢ,8;8;8;8;8;8;8;'pvϔzϪ]mћAgTv*%{>LFj B3#*T3|5V7huC GU/4i_|#| > G̈ G&ǡ);$CUMӴ šdhfF+U+؉\U$bIsU7B(2߀| CVP8@& yb`:$AU&iW݈袉gfUOeӢ5iNӾ*F%|aŪZ>YԤ=8^45PxLpj$Uٛlˮ[MÖ4p0W>p \h旚AP sy!IsU7Bha8(w?*jhip7MӴ Ed'ߠ| ;s©@L Raa~Kɖ:Jf#ƯheFS H@򝓘'.E^7˷lR~ϮbEe*mOC:NC×Yϡҝ}w3S8=ShyNeZS͜NN E;?tfN!#t6s 8c86nQz sGCz3 o3QQVkEA"Kw q)N.ډhcYCcKw S))]h'N,)dfNpz tNEb?o_uh{DCQG7ϗw[S)N\SO^,;)N.Zv( ~hhN!#t6s 8c8VɂYS͜NNUho;\z{@DI?&-K5 (P@y&>&;|e"TL5|}HU=p^,RWh9Q-mZ(' }BЧOa%y`gZ"/ ]oQbբ GkWqq\6]Z,Đā/*=m0@xv5[qq`=O@ j~vbu]ouk3mkoTY^$^:|W{( N857SeA_8<~wXx]T?oh0saQĿ}]af] TXWX}mi5}<]+YC`mChB飑?luqYԣ;OX{3y3B7'jcV$/^6ZJO.p \ 5ź6ͺmͣD9FC#7} oՐ~E "Dl?quH AʪȶYZ]6PKe[ߵsk-qwerty.map.gznu[+e]YsH~_/Nlo{fxqf =~ ڒ햾SYG旘JqK]}1?үI oo;ڐ#\\e~~d/8 AGF9'BDB=S;FzY-*М.n p .8{4p&y: vHrȩ~ 3xܕmeLOZ]bcqq8~N'puT09[~y2B+ZgURolpӚ1;:b =uܐ(p:jnlݚBŽ_fyNC"UF G##r+9>lj79WC ^})E;pq݉KdN#3P4J{s1֯ \RXN]4( ~~'{ 5z$%uEF t@L Cx/2A~vI`¹6kc0|͙NN$]Mg:&.?\RX¥p3L0ϱ|t-6_8nC.Su|gOR8Sq zFRŮ^P-s,(j`56ѷ)6I`gvPWXF>KR{]aT0h;vTWt 3 0lFڬMTaE`v`v`Mg3d6((Q =g*3 b&ڏoōكBJecd8vm8Ǟcp :fnjfFV V y[b7&ɕKT+ީÓLϛ zfTΡ CU|6!kԩ:V3'q),NQ;|Gg5jy]ZcRKAe.oD`!p&`>&vr0V&x 7rč ?n5Rvg3$/p3i)9U-䃫X7c$n8nA_$jRNt 7\lX:g aǔwljp܆$o]RX_ldq_Q#3P5GxR^zS:i]64].)-\h{j:zP@wf10D|=D^.*}6?)DB GCj'k [L'9FbM=Ps򹡚)Zsǹ^;k8Gy GM͜-H35A͜P9I>!$k[|= ٣Sl8q8~qys%I+HNu0FDcF`|B&X=ďH>~$ zU4sOXU` kfɕBdƖ p܂$7t9OZІF @5WπDGt->[Lς!54rSy∦pkme<se -y)$ts3)gPaH zfTpTJ[keɟj!< )U=?}H6)i?2{>+g ҳmx$y'.=}; Ns*Lsp N9enZjƝ/FK5j4x.j"LJ\{RVrwOkZ7a7HtސLUƉȒmҶ+kEe1y>k?F9(OXXN 6 6QOC(qj]4#b-CUU> v1|pn qt7M$ĚH;5͸udw 'zt_ڀj3y780CޅLlB4Qc7f{Avc6۰ Gm:;o,X`>"k1Ip{Y9X?dG\U0")lfai[Tv9*Anl%V6#*6˙`W vLd#6/ۮmᤧT]􅻊`a[d:%xvUz<6?oG*6˙hW vLd#.ۮYdž &m=BTS*AnleU=ذZo0)Ull3}"ANF&]Gdӽ-6[=LlW vLd#.#BF=L|W vLm_O( <{54)U7+pVvavltf6J  ‘?yH[  ΑMWIU湨qr?Л͔]5}MpNixb>,v-`NW$P Pj.Z_\33K$`NPz E; k:N", V$P Pj.P\WES׽ <T rmP$HhɝDu(C(5T\HXȒ;0X@)BhcqNEšN- : B!v&.ik[`7 SYr'{Z'R(=R}&EšIjJJE+h"aMK$`NPz梕_'"aM'IjJJE+hϽ,;Q  ؈n< @s3=w"z,/v$|)߆rA:'olrd+b{<4 o-}o͗/gyo5[=¸TgW,w).>خb$[a)[${Svr.MΟEjd1sB.JRWMAjhZm}ZeK\#%X:aKVbse3&yMʼ@zz}|lH.,k69 3V/b/b)={]~) yĺQɗeşyahlnMiՀ<z#t 7 ,IXҽk.בzS42 v<- |HLpao^Gx=Yԑ(u'TYgҫE[,VvO--S9gggggggψy8K>gh8Rॳd,p \\5V}7?VHgj5mRgGހ|jj8úW` Ȭ8p1CTYqS_b]I͹dPKe[y-~hr-alternatequotes.map.gznu[+e][wH~_={W!=Cnd6^^|ZвY#rKS}bYqU]]C;eW׋~_<.ޔ1[;^' x˼:݆xEYr]Y(j"_嫪ȳkViEYk\+3&+-r)Nfj@"VĊXZQ"_]hXqS}ʉ+̳T }}>%&C.2Rztn .jLoVVuwu>#t:B?5>T oB`{do И.İed`@@GAsTFz-M^ҙ8}AfMXyK,um@ssL I"{.^u^rըDE{<7nkVUJE'[VO6 LLTSQjFf=Y$h2`4=VEWf`f`>&Y*Y;ڄ&fq KZ?y!g]=d-')/ӲeӋ<5$IZ:3J՘V |MVk_gR-+^F,bLM^j!n+L÷xxOIbUolh9A?f0ebٸDCG7fzn^Oq?[1Kd9n8òÉA8}ᘋP/BFF}cD_*đ ! CF:<&s$$bETg>5$y%TNJ@wP:;:fٓI7%̀)ƃ$XN]i@tG@gv4pt $d$tT\CߺXĥp \ '3ɐIb:h? 5?ƃ$ZcE;it!(莀$?O'?= O< pI~ZcE;itaQI~~2-g~=],%s40_ .i;Q wם LŔh29!Kj )\ g28I9ț(Ijb"Ƈ$ﻤX¥p&\>{B|&4ĕ-hA뉴-TjESS!!p[U&ج^q^U@OQrC#l}&a;_Wcv6FG\Ŋn.-GG؁؁W4^ՠGu2$ $4ۉ͊65 G]RKu|gOR8 |L24+F|Oϻ犨NxKjхF t@wt&#/hU\)ZcE;itAQI~fň- ?}ޔ1[sE "Dxe}Paue &.`3iY#WtpHh_ [k]bH"@^5'?MDH~.+783'q) |L2{(M[fJߙ5ĝ_MW|yi߻mQPit@T@e{g>27=`dB-׼(*[]NJ pl3k&1MzT [65>$y%TNJw$.ӕ͢IjבN",f&fq.tn@ߑNƁ|șɂzŬWPJ[e*C**&وJY~w-46Vd174Nxo0o v/4mU%|IܺA}`w@Q '\#7~)|m!w(W%I3$nz_!_kE棊nUVD~bi}Xw|eSM =cDl =YlbkԷ# 9wzvnxuIn )H44@dZьa~8$=fq\-kJL<%쌗e LLTs&Yy*Yψ;ln,Y{3oFϥBq-UTk0 0OکC'GYr jFaFI+hT% 0*`FaԜCXr jFaFI+hj܋ycz$ 1-+k> @8`.FS^Ě%vsߕ+oÆ5nf[գӃ1!&ĄX5q݋Kt`s}QOb]Vh,ZUݭ hf0|ĮG Ǟ=ڍg+4V_}_=]G)_r(Qa}/UzbY>xHB}eS]>E Otž%ҽjLDžy<ڵfCzs[Qn4XH<}Jpa I oTXgceiRɗy%7u)`iٜݮXE 5 |1>O'Iқ1.벣~ @$@#1EOH\`#O/y=Z,VU5K[*_5"/"/r俈9}ާh8PegX 8kx"~,P< mz (Ϡ4 ڀ|ll8:G` Y+}6"p;/*MyʋMa2sF+PKe[`))lv-apostrophe.map.gznu[+eYs8S}kxz؇$ff'3Nj`kItH*/q!XLb_8`-={\ŅW?pl.].ee|ݣ .p \-r˂* }2[D넽l *^?,`YԱ&Ա&YI\ b]CrQ)?eRˆ[S8cs6s6Bf :.gL]/X^W`7`cHH2,D2͛lKiVq~RBBgmU`%^WwEYJu [ҩ6D k"1rcT"Bne]|'{Vm:$ M YkOMR GKy7].TKgPޤ8gMKZƚ6c1vcpa{c D{"dyf[fЩe%c9Fc0rpK 9э'zT͒EPѢrQQ"`f[H.ǾRN;7b 1x ?Ӈ~W@̢u6պć,`9+ 6|%[U|ziiէlu廒R0櫡ėE|k|-4iW|spi|둏9uO-4iW|spi|둏TH}?TyPI4iW|S\siNG> 0P[A5N" *{Ҭ]U OqiNΥ9^ #[" *ͥYMK_| :lO[$CeqiVӮ*:#ào~Py\l[$Ce4iW|S\siNG> aԑ@M v?ߓgO~k4z2(RIIXW?\մ ).ɹ4'#Qgn=]w{hsiVӮ*:#CB3Wb4u\6iӻޱn Np'S5ŨފLA-pc KvETvҬ]U OqiNΥ9(+jj۲E>TvҬ]U uG> j {v" *4iW|spi|둏!@S}Fjk@m$|Gf5o|Ksr. >G^6*~Kh ri_ uG> ;xWxOn cC?ݥ줁댸l-+?dEyX{ێ= Np;`;˱'wgmtI&ilם˄<D]MhsBh4~Tb*=T+қ)a4Bi"}b`9'"NU\9JD'++5 oPq 5A=8j Jznj^@5a*UHºҬ]U OqiNΥ9(һԓ鞮}nۥYMK_| i%j(Rkw==zM>TʥYMҜKs|=Q0WLn񞮻}lҬ]U uG> 'P(`wP_}hTlZ$Ce4iW|'Ҝ_|u0ѻ`=][}"+0=s&#T VzL  y<(rrNLZ-\xj!Xb``#H2[HM!+^l6gq&a0CAGn$ٍ%[L)Mx4eE:P!]@**a%a4鿼~]qG}~X{|Zk`3}z95 ct1LN6њ^wۉQ$y_(('h_,"D_Q`̟?N"[kC Fs~W8jR^;TpvU=)IyPEԈ`\UVG8mE U!¡]E?19S՘$VLj^x *y5U}ކL+y Zzn/:TpvMJݼq{Lb0WG7jqds{CUpphWѤOͫ$^ZQPűYU!¡]E?6o†Z-Nznor * 9EmaPy(jԬЮIɟ$[dކo#5jqfs{CUpphWѤ?F{иVg6"w-/>/Mf$Я۵|T*.S$ y$up'<[d[G)giQovU%-nXC 0  NN\? *oof%0 0Jm /کLxש[J`FOa.P^33C页((]h2rG.kOk `3O/'FZɄ; JAk3+Q=QhɄwHͬFaF额ȋv,ulV"=6Sv*/˥xV١oFo&'/n7t+ӻ(h}N=y2]C页((]P&khV"=6SVɄw JfV0z tѪ_7/̲ݾ sğXxZ (P|%>m Fq5R&ϳ\%$ _2]>_`y o{G%ٮkxTϮw?1T |QExJ_$Ϝ |9rˍxѻx[0G2g#E{?'Yz\/bj\'p/YvRqFpFpFpFpFpFpFEe1T/5][xVbU#E:Ԙ o3"@J!=aaq5L"D=F4<$H =c釢mqb~?'PKe[i7chu-102_qwerty_dot_nodead.map.gznu[+e][w8~_9{зNlogfAN!& /QJ&`pN'wNRIU_QA7m|WM7k9ٛ2䝨\\en~q2񜆸QC"ѐ9{".2Y.eou.UW]6_)]^M,[V,{- 6 !#d2B~!k.EXS7 ەsNu^t ^]] HJ^B{K+Mo1WݯR"TPC5@_c}S"_ĉ/I+ieqq M u +~$[uqI^Q$bU 6*ҹ*$ ʗsn5dqy:xv8L.\B:VWEŚNVKSgw`rL lJhրqݭ:rVw1wq!VXT{ϩd8#@P;[uYzNc`ofo r+d"$~x>8ihZA{TZ̮̉Bc/=mVg\,qz_+q&hjz)ɖ&l"&/.Nw3ou+// ^Nro|?s~x0gT il@?xfVw|9=kgHK6W# 'A8\"ڸbs|޹s7g"-MnG6BP6BpB8"10 +FRMi5+ Ӹ4N8y%N<Aq2$I>m1ߟ.,MwB9y'7/Zޫ`c]mYy0L|"09Ϣ^ӅUw);+WD߯aW~C~dp Avil<3ؒ+",%@ Z3hZNf{6'EdquODPMʝDcD2qad3Ք$b"(΃sD}8ۜ;})w@5lzFV\^"ZM-~݄*zz_(l!q7?ov1`8~1>kǯqSl8F 2oH+)䷷ע^eg=m滛!!> BNN 䧅x]^{TwMijw-ٳ `ddCF7hg7mrVϓe rYx_}a 0(O W:w 'UvW~րZd-W*{g!nn̅-[ |7|7v9UUdo/ X`}D~<3qinpv./њZ[ۦC8ö P<>w*1놵>iְ^sᰭA)gΞˡj ofݨn\ެGYK{6!U<(z:<-֝ßh5ziߦC8öx^UǺ=f֝wz llS!a[ŃR;c3Mj}nVm*8C8lxPkPucf=^ףld륽h *rfҹEm[{jvj륽6!U<( syb=T>GٙfTppV6ZPڽ|4h5LE[ ˃Yu}KS #g~CA  /珨סȒ[ŋ2Y. }֥vJ:VA }֣vF:VA }֧b=86xiuvW~րZdfN|Knt9l*`FaOڐNڀ 5VA }66Bv -UfFatFI"M5ߴ궑]7|3|Ҍcɭ`V0椝Nu]]KnaYQ݇Q>im ճVA }VўP!N,UfFatFUovv^ynh'%9cm\Vj @H_?DJ4bzBvmaLeǐZ \G+I \ZjNf0svZ[[ˍÏzuAcѪ/`mefRzrGkܸvƢUխ_5ٙG?TXg|/]_yjgi2//s]'x:bOkފE5x-H{X,X^]W;?,ov97(b߬R{Xg|:B;p,T6OGɌڗJN 2\tQ?yH_  yH8'XUU߬3B7%ڣK -oj3UwsKej||w"|&9a'SAc)(ɮbMt[eJuT*.6w$a6i 1jC>лCE^3k1=x#08gtDXR1,_Gv!>ca-laS;l6Fo4Չ'TL(ԇ~lNWvП$zax$բzA{8iԈ6EiKN$j&2s170e#HMrL@w@:{tfqO'HB?Mfq&9CE>KdN3p&A?+= $ttg.i@tπ$@'?=P_p<$IP]k@tπ$?=r>y:yZ~L  ?I=+ᢙkc g:a;Bt!GgS{mc:TSlqI9ɇ(Ijf"lz8Cmc:TSΌj|'gy,$'s؅\I)[֘bGPn2rNl |cgpo|%ODfpD/tf~hZWq|_fkE<+X.iWKLL243OB_L&fL\IPe<;1< D$] f㊬1$y&9CE>K<L2T3R|'XB۵=ǡ7̌#zG4Zx‘61*I\ 'åpIzfL"D$mJp+Omn|#'q) |wB|&&: =)l/k4pmҮ UD4:#2KdIԢN(3_hz8A_! -+ZEPpwn4߁ 5IHo~ax I޶IPF/JwpI3;Z(i v&鶦͊|I ۴ t;8R3D|_)SR<5Km{v4pgtgCqi)a $b灉X`+H7VĤJilوWu|{H 3&З~/d8bI-6/.N:UNAs*2F FCY[TLd#N/YWaIcC3>" *)˦{[l0m7Guhz/ڧB@D@We:%xtUz<6l0k7Gwhz/ާB@D@We:%)vtUz<6l5戂b[%TLd#.[dž &zsDaV[MUNF&]Gdӽ-6 EZNm=7ݧB@D@We:%!vMؐj(*vf뙿>" *)|@Waè ^ %Zm=Zڵ並3@nWbf-0O $@$9\&lDUZ˥-UQ~zW5-fW5.~ShFh/ODCKvl~3S8=Ss⢝UZSfNpz E;:dz͜NNEj;K;r=!ڨ7s[Skp p/ک'.@j`N!"91V~E"BS)éhmOgN!"91V~~UV0eQOqx}``xv &YoIU_1 @3 fȽpB+eHšا#٫m,iU qN005M˲e`o-mhҡUܣu]Ok:X΅zo-dؐ-vhu6SZE\}r\ݙ}}XQ(Ra]{U~&N3Z2/J5%I)JDB3d.6-]C4- ǁ~O׺m}@ڊvheAc"":1ú؛TXW#_Y~ceQd~8g?ؙܲw7u߱Ǔw/pp &m./I KK,ꄿr/i/Z ,,G@_Ɩ$j]hg!4K|\ U7ojP@F$$ $1wίWW#0#0~&WF:W$$IU'|^岲(~- :E20'$bNF?LwǪT00&WtJ e[uaLl}jw\\&u.IWAfuuC'ڬlR)+U)nF оq $'0]0Y~}[mbe͖ ۏӸLL|0iND'Q9×D&٫rTeUuVЫ|e4mu[vG{Gt_N o0S?Ťh-S*5)}\9/ף//]*_>/SD-:{ 0MNIXגfuv kdle,.t?I@35gJ ͈ePF鸲ۙMSMtD7Mtst7ee{݅cE^#Kɘ-NA#C/ q$p" W-n+%$%Q y@" 'bI*3NR/ ȿ$t|'O89.o(u2Fj݈ p"=%9cE;jtadP%UƖ_&Q5|ӱ"57(>1/TR;#'b([䘎i\g N=ddPr/[qdp""ӱ"5haP%?$?{$C$NDP.1+Q"(ӡeauOs%Kp.LX+Fah &[rG䘎)\r|{G02MMԤ'b(KrLNJw4.-Q24+K2,Y꼖. VOJ#c +XЊLLU^^싔4ўŊ u&f}9mPv`v`^=_ AAAOd!Spyǒ&nt9ĉȋ.1+ Ӹ|GɐVꭙv<3hNPKrLNJw4, &ޞQ4+Dj _גJ6ӱ">K&'Q2#SZRϣXj19ӱ">K !Q2;ca(D E~ӱ">K4N=dhVL @m^Kʍ5)\'ǥq%Crgf0Y%gob,]Ҧ( Ut@T;@E2PsrƧ$o8A_$wU):MNJ pd6w0M>o.1+ S4ή|٫BT.۳6:uR0Y[>KtjߑIơY!sfr!6LacSJ|7O2=/^HrGd tWGɯ(O+/?gV!]Y7UywVuêݣ}@}ع.fLzbymŸջV.4+abbdI{gE(CNDPߒ\W,ns4+#13DJɕVf/΄3 Mtty%9cE;jta`P%?c|D͇?RI̧NDP.1+Q%QzSg_b$< p""/$ttGN(YA1_Q`dl5%9cE;| |G|&FLJ4l$uI:#7(Ƣk0Q+TWI:Eݎ5rTleQvjj>9Ԕ}T@oB2"֟=ZzߦB@D@WE=Cָ=EVm*D@tU4(vz4-֟#h5z/ܦB@D@WEd?3zkQX|QGdOF>(~bٺf`W5_q&W_~"E9/B7'Oy+ Ԍ k/ %,ߦ=@J ~$ 8NΆ)ΆS?a,X`=2~*_]gq}q{io5 PKe[*]ٛpt-nativo-us.map.gznu[+e[wHS}Ϟ#nBz؇43;l64вY#rK[m$-)?'tUMB0-}XbWϏi oڐգ\淹FDž/D2x[븿r)ӯiA] Xt TEl!‘@/BU0-MU,I.ufzr s@r@ " AHu馢T]$F00\\ &!H,ҭu\UBʢ ւ<9*E"]I`NxeUJ~V L`SZX媱`J&[:*h}dm=.p׹lr\ DžbMk.H}#Ԥ")-4׶7u^ٯmsˍ;c{ԏ.kP6lV0yE 9t~YN_b__c̆TLB$"$*%7_h&h&OjbS%_uJ(_yu-늒VY >|3ɐ .{K n\k/{4]n3Xw6jdFF v 1I ś|ܾJN^uvo&weTݍ?hrH`#Ij/";/ZbAZE[ >$C5̗4;r*/ޔ6GRVswLEӁv {1Ie^qO dN'6IӅM :̘=R/@XGw4j颉@g_,ƙңRr5w|Kq2. >$C24NѣRﲜCMRKq|30Wlb*P5= o]t BM :$P_ 2cHLP= ś.i:IӅ@g_F2_K9t2qz4C]t 3S\3|; IlEUZ Uڤ*BURPͰ6f ̏i#&T |jѪNˊvtE\vmc1{=~q{l~ȯOYUn]hkh`;7&ٳyr5$$I =Bm<ϐ`ۢsʪ\9d7.E3QG2hߒB+ڣqR벜CMН4]iJЁt&RD6x )^uYNӡ&΀Oq)t9dGHZH/ 4#ǐ]t 3\q)N|&S9PYh<wYNӡ&΀Oq)l9dGPYvFIǔܯ|8R1w|IH`j &0`d5JaY#;ǐm4j F|; I3VӗzFۣSx ).,P|g:8d8З;*6z4AO]t 7%@w:7q9Bza"yؼx )~CM_H8ȧa8R YL\W䞪|MR1VڎUہ[ior8 8 8 8 8 8 8 ;L`zjvD"g h|m jÃj>R7۽'8 i)uy(ϳ4!WQEE}s.H}ӹf#ߙjim zЃ@oy$g򓣩CcK.i:).řƚ|; I&$SS!P֙hF֨Y-rw_ϗtNiMBZo9 qd(>p\&1cf(^c!\(IHZIȿ"?ʆfud7hC_SIz$X킸$fVG.i:IӅ@g #!}yCΛ1{4g4j $d\|; NH,gč'lgh<tYNӡ&N.kJЁt&oGa,ŗ<3u#Hc4jXStG3|{EPLs:x)f]t ǚt;I~[+|D(?o٣Rr5AwtєL 1y37xaU4]D^X_o`32՛Ilīr9b5DX[p}GR:Pu+؈}ئ74U}B *#&7g^0. ze~t1cKokzo[" USٛ3]FFme Z?[" US7LgZۨ~6n`V]۪Э28kg6z J z/Vn썼YU=ب.V]E۪Э2)6kg]5?j:뙿*D@tLdoڮYF 6zZv=oB@D@tJfҌ]"mFo0Pԉ]MU! "[e:%{Cl.MԀj0Pԩ]MU! "[e:儿;bZ6{5Q6I=4wVܣqqWwfoT.( ߨF\Ї$Uv_/I}Z*/+5@5Io˵( N8ջؘt )Ҵ27n{X~ʯoʟV]7F90V/b7b-3,XgDg_u<++~gx>gsv{l@˚V 7Vod#>EyOnHttye-Zou,X8W Io7\!<hCj#sq"@}i4vSugP.pGUaO_͏JYZ=Mt7%3(Mo#ۀ|ll8:⍷B U+{ϜE4hоc퇺u}AU"? :+PKe[h9 pl-csb.map.gznu[+eYs8S}kK>$xfxql)!`RbIU&EcW}}1~c2c.^i|oX_Q]e~ۗ$HB<\c)-cw,`9)'26|/J.֛BlMJEEP'nj/Hy2mŘJXU7g`W`}eP2I՗'|.M%,x@]L`Z]USWE2Iv!,ӝy2bz{Vlf7&0u_5S}TI&庩:!:fR)+ز4m΁ȁD )uP}\"n!q} 7emUy}gXͻcxؾs H@_ҌŞNSa%xɇeO?,SJQμΝ":W㊭T*pO[Yު;ꎺ =u }y>ft"&;Nb'Jݩ7aQ%/5GQs5?ˊGK)dkYgӲbv%mێ=f7TeݷK:fGQ{ܘݨ<*ʣ<*ڕ77}='X ?X],ˋ"FySb""{i6};ABIM'_dkXxWipMnj֝ǚ/x{"3泻8 1O?ۓ2 QaenRS MZ 6Hi $@TfD'$PN_]St 3#.ɹ'wD>Ug8 IV4CﲜcMRBs|G3B?ԃd A'D ,X|gghN|-7T4A.):\|;" =ckGXŋ_4,Xt'M-4%@tuGG$7A.):).ř-4'wD> q1?wYcT7u\Ƹ$ˀ 7N]St 3S\3 4'wD>Fϴ =N\lYq4.):).ř|;" ՇĚb1o13cV:բ9kvTK=߱rn^'k:ce6ZtI&/2V6Q} ejUOX=wqmXggggggg:+ϐzǚMՀ M`{i:{>vCBBԝAg@Mi54/<Mt8$uYNѱ&΀'RLghf@З$#0&b겜cM. >tzFԔjc>ǔ h"]St 3S\3hN|343M=z̓r@1H\vYNѱ&΀M3FjτD ?vYNѱ&΀'RLggM-?c./ ΀'RLge3Uo}b>2^r:_%c.ExﲶK@uTa@PK3gV{?wY+n@H"EgUN9t \n6pN|':7[Auk Kqv} |; @ Db9s1N7 MR0c|If<-r-MK=Xv7Gw:{&/ҼJ7e>WTQE{-UlXGEMP5AMbMţt"@wBT|^izanEyrE,^;KjZGy`WAf(Ԥb̢pIE\~<=nFQoFz6Q0[ᙙi&bok Kqr. >tj4$z_j4ĿXܰpkI&)HARӹqW_})׿MD r5Awta)A'3Y7miOT0$貜cMН4]4ՔЙh%c&駓MD r5Awt4StO@g:*6Yz=$~cM_ȶ8=s|Gӝad!D$_~i.KCq`Ι L`&YC?՞v iZѧ V׏ XLgΆ DY/k@RxϪU^ve9095騙B@D@74J>rmxlTFoUjdsѮ,D@tL#.ۦYF &mB'WS;B@D@74J>bmxlk[*ufs]YfFG&]GdӼ-5=J|W" YQb4oK BF=J]bW" YQ+a44U7 ֮\E\}t\ӘH_7+9TH+|c ;'ѝˌhJ(d*RnaUU7l{w1tT@%P T3̲4p1'S8=Ss˄:l'9 !6B&Ѕe;0XIN\h6ISisG/{s `3(f:kZ- Z`1'S8=SsNEɄYŜNNE;T&Щe;0XIN\sy>2%ᯜ}ľ :i| #ᄖ}[hG9c{?++H3ZkRgGހ|7jj8ͺf?C *#VoLx˪̠A7E\_lM\1?OPKe[>6r gb.map.gznu[+e[wHS}Ϟ#njAXRNUE7U&t cx]]CR»ś*գ\7F'/b&Dr>'y|F,'brMs/cK:TH㦨YL`&W:W23Jزےp|w&D:2qDOv ŦZZy\a+x1hsQ$KH/ĵUNzU[2az?&0lrD窱Z0ɐ^*VuYWqdYfٺMV%Vg<~*mtFmt{GbVu-+vV W4e]׭ٱ8D șΑSo [q.nnkkVfݱzwk־]$ $==IS>K(˞XVJZֵnW~il+V[:κvv}Gw}GOe/<u F;OVo9 Zv9z9z~ =/w=їP]^mV)+(ٮM&DmVJ-%nh3:Σ<:ΟvKG_\,NfyK)Vnh3}jn:} !AxBJ|kM>\7hµg>/x dgo/v~ľ{PqN0 &>/WnOH.@GK[mr?JO)z[Nmq| gl RM$ }%QO=Ŀ,P|g4'Ҝ(Nu2GR#[z4C?f9M;.m|d83Wj-Q9#4&Gf9M;i7#B,7V{4C,P|g4'Ҝ(z&4f.Zz4AYNӡ&N.JЁt|Q$Q)M&"({4jPtG"*O*OK&mVs/p̄톣AAx)y=2KMxWmt 3\3N| #H]D)yntaݣJoCMҜ)3(wNԜ4YɪL\5g[VUtW߲"n^'KXqM-1:I%|)+޿޸{53;!s\dغk[59QQQQQQQ ]OX)WBѶ;vw.I4V˒#&g" h"(r5w|Ks&c >!t ]`%SxLMPr5wxGIxQzRڣJnCMҜp|dH3j&{26 MPbf9M;>ť9=o>!DSyz1υ{ӣJf9M;>ť99GDir^΢^S/).ɹ4'w@>J4c}'k#^[\V욱t"OY-Y: 06t(yw"/ϝ`*ntGExfeVu \nㆋ-l;$LIT7U=6i:).*| gj-@.rbljD(6 [x[fI+iZjv5&ه#-L6}Vv\6&񺨚yIp?V0l%5O%zG"0BEUy\ݶlo=Rq(:> ^'Kɘ蹼ͮk(ϳ?̻PB.JvOzUeҩuw[+F(w:O]TT\˿+Oԉ=YUPgņ`,_j&D$g[(`>ܣJ[5+[ g&HϞ4b$J3ԊTZʗbfMDPU4jPtGgf~M+ѸaG^"Gr5AwtPtGG3|}ɘJAyzѣJlCMН4)A#QWYal۪G1r5w|-\gaDk(wLUߵY:_`I(` L_DJ,}FtNLRQF,'BɆ雸"JkҞ庨#5+Bu붭ˡ0̩P13{!u6u'bZ?nXUgz ֕3[o=X@T9(ϻPջM^gaK}zYT} f0یWo/0kڅ^G5 Wb#6b*6 v뫺^-;PBzD1w5[URb?l녿]UVA9OfSHHMe F?W" U4(s>TM?i7`Q]UVѠOΛTDo>ᨣV]ЭAɟ7Cճ.IgMzZz/Un JؼuyLj0jVOwjuls]UVѠO͛YǤ^AGV'v=7Un JdҜ_"o70ԮЭAɟKdޖ_Oujufs]UVѠ[PH &Hɪfu\]O t@'Љ=ӗ'Od&/ >9>I˓v* ԲBFmp pJ'm Oڙ,3v S))U߯70`6%k6[( $l_͜NtN˓65lz9>I;'X|ױe;)NNک-YRw_=_lg>d7ʟWV0saQ}J9ߏu6_^V(P|:Ŋs/E)Ŷ Lg'XYC@@|aF>[l?} N"]3NԛUJR|y!s H@Pr`OBBBoFMZʗ%ZJGjO_|0QdrьKU l)yn#######r#B'jI}֘^ ՞\z4Y~7E^X6)x.`uDn~ׯ)(QAIw>Ά1ΆsXgäTPB=jecC wPe.bSmΛPKe[Ȝ tw.map.gznu[+e]Ys8~ϯV}If3(1~ m1q̯*DwEKxGl}q1ϟݑ/q&/^q'[RF\\|*dx5"Ue;|hJ``yRX\\3NXI+bwH%j)ܔ2DeCEmjgAOz͆r<_p9UHɋfw~0#07Xʩ̕!I4$h1snixxFE3xD<ߪ㞓"I]yj`&`UsfLŚD8vBlw2ەy^GE$Zg04E3=4Σ``00 qNų}% y籐wgqMQ&DDFu7[J"ڶpX {0p苓i&:'Ѷ,ZiJNZ)PSensq\O ޱ!3hYrzqI-VB\,Mg"3,zimعکmY8N>-4[ej}by5㜪-{ҦSFSޑzqY-VB;,[nk3,z޹ͱ!jY-4[׵`}by5/9[,_nzj?9ݾHxݙ筝[cSdxwbk<\3=o5<RxgxdoO"q>=% <),*e^N^D>8Zq"/1=hzg`q`,?[锟a:8[la*ݓF7j@t_J~:,}X Ae SWFςK|Sp!li((Yr/k8c1ym SWFO8eo@|*.;C_dlF=2!{d7|S_pI|Sޚ0Cr&L-c1&"4q2\'߀T2d(n[Krptp, I|#7]8.o@|*u2O95CbM2L]E>K⤸$Nd?E2[0-yN~I DƑqQS1Ft'dsC1&"%q5Nd8L۩ɉ,;8Cw60uo, |7 > +g||eH8;a>WyߑRE+ȱئ}u JS+6$Ely׃*5Ei06 c|cnv<;;Q(;;{=&AAAGd;fL;E먃c G60uo, |7 > @+Zl\Ebre SWFO>JػX&j;8CW60uoĎ8ħ5g'lX A.ma*YpIo@|*hϐS/\ jX A~I|#'pI |7 > hb$\Ƚ^:sO6/2߀T2߹3D'dG6&[:IpYHT2ߡ3NdyCxb SWFςK|SPC' HT}'vp, ola*8ħR # 8ĉ\I^'InF,JAIَ{6 1D\'p"?焿_YvX$%q5cQ}VT[!8d%Yz^PM!cɣ-2Q'IaXq/ qW]*1~[-AoЛGCw\]&%qj1՘sN"A(+Ҩg ['b^//>_s|4:e:8K$U2߀T2T;0Y6&"ħ% %bn<!Kd7|k|Sɰ16Lg'lc1&"ħ1 Ȳ٪c1ya SWFςK|SpY'Cyq ZX A~I|#'qIk |7 :N;)05m{+|kd̞/L"˸L=D ?~V:i1q݊W(Z ,,O J6L6|dHLZѿX 'T=ɓLjw$yɡ``tNÑqb$,/^D=C@2hR;x 2 ^Tr K뿼~{Hd~9"_6j 8՛Jik s7N3oջz:ٺAlFAcN}Y7Y|,X`"1}rҫ"KɵӋKzm]뙿6" zQ~U*#JY]A[ThԢOJ^ҥ-oʸeV6" *(RXQEpҠl멿MJ-JeT=X^]נTS6" *(bRccBA+ٙfm*D@4UjQ'.iNJ *zuAVs]OThԢO&][d56 Z.t=hS! "R>!vIo؀~+T]A+٥m*D@4UjQ.ZPUxЬA+Yo0Z]3}Ö?*T3z!mH;GR'9}*γ4W٧d_8$EI쪌Jr\ķxG' t@'\}hx|?shFr(NTMZO/hӅ&ifp p&m'RG43 8s8U6*(.xU/^o ̏3Yd-f yAl(NTMS^ЦSM6 (NTM93^Ц3M6 (NTMkIhF]kh6hj-xAxl|yw9֓v1mkQfFpzjҊ_^Ц&ifp p&E{ tF#t9I+~~֟{eÛ =@*)'DEy-@_IPF3 p\m5-,^Eg0;Uְ~7wLCV 6 (' }BЧOÊyhz0tud=O7`*qqW-f~l}vXbzA[uQkqqMσ?e[7*Hco ʢ|}좴 mw[.O\ S\Q""=H{ސMR"qpvl;_m6;'7eocAF[E׻5^l>PF6 s)o/% _ӳ y  Nd}$.=ε "!ғT8w>1T3tץޅyH[  ΑBzɟ4wFCA,勜DwB꣑.?d}eVƊӺO\5oDjF#`D0"_yD͉8"U1D/^X5=ppupڳ*ic8Km5_ӛ@rZ 6͆f/m6 ,XZ6x<8p}ܳ̓Mqx1yPKe[d pl-dvp.map.gznu[+e[w8S}Ξ\i?Cnd6^^|hmt]KVCCǍ1sJU? [Ƿo}w"e'OTI|X_ \Wn2~~6R<&EL׷2#az2p|bf, X:_ DBġ*Weܰ:g*`>M7 C5Fu.A|-Y}aDs}b=E d ;|lM^Dke!̮2–®KzZG~G'~s-ϗXx&T.om¤ذ \WO"5j\?Cqp8H2ٮ/seX%}ƹT7FLЁt;:.,-j֟,.p \=f,;cIy|ڢLx׈֟c l` h.Lva(/!ud|[Iؖ<<=T)p>Y~ƱSe_z9X3<ГC>H- KkSԇf L`ӽJŬO6%\n+J-s[S(@,g5k/˲8ӄg`} ^τcxwAAyq3e0zr˫4YɪrCh[gIRV~1|)"K)u,՜UC3<+lH *ַEv[VfүJ׬.rH ==.R[v٣JYNա&&¥moD> }3F 2ڱnW=mSu pi| қEJȝh",P|S\siNoD> CsW۫oz5^sw*{4AmSu gM7 %@t4͕B_I=6˩:'Ҝ߈|4\I=R.Ŭ uV2{WյT?nYUgfRrW+@2 2ʇPNޙoH;.(z$d|1VF^`^Eso 4As4i7~ޖvw^h"= v`4i+T6$$ 2gldw{4y*ŋ6˩:\|CZg+yK)z4CYNա&&4gNoD> ie\A+Tɥa=ě6˩:\|C2'Rs%ZhG1r57>ͥ9S >GYPpLڬ#Zht<ꌴR$TAToKgflH{4]mSu i.͙ '7" 3.Rʋml ?Y_ $PN2\ZP P{\j+ Քn=omSu i.͙2 >G\Iq\JO]{!=h"YNա&&{~eX|c`H.QT rRU=yTjo|Ksr. >gpFuq*!EW M*)J֖i)qf(v|-Fb-~r-gO8BDN{=Uߗі׳I<իh2YNա&&¥moD> ie~e,3)ғن]2W'?ڬ5YzTal@#PeVv.JV-^wӣJf9U{tPt@GYs~H-.j_z4CYNա&&4'Ҝ߈|4 _߾JʪGxf9U{to(AG3ߜubOw}_~wmy3hL`:|*ec>h"jCMMK߈|4oQE G1r57>ť9|#`HߢR[DIMPmSu )W|kN;g6#rP f0iF97ym ^=km~o}ΧW5;+؈=jl|F^-PB* |FƮ]X??9[u\\Wn >SoBDh -Xv.}EQ3RxW7~TnണT]-NgF5]գmlᬣT]-Ng5]ճ.IOzZ|_" E)Lz1Ym(.-Ng5]ճ.I &zAGV#! "[DL:Խ-5Z]r_" E) 3~LR~WyGVOrt_" E)b@W} A؄緆Zfvj/E\Eǥg]˩BF_Q/H@o .tEwl]wRfe[kv?Ki @#48"8hxr=$;Y,$p pJ'/OڥLKv))m\j} 0`H-ԷpD &D$X,_\Mյ[#ƑU⚕XŮұ:tPMhڄ6MrJN|֫ -:Jyvj/E\Eǥ,_ÿz`ċԀ\yQjvj/E\E5ٛv?k_Xg#mݪ71RDBg]|-[vYI^w_ׯu6НaGo6)n.>o lof_j}|V*Y'gx~Ltv{|!O5_ W}`"| YD2T͆2 _u֒?DyȾ  Hq\Wr!$$ukI_,iIQQ}i"K֫X8{ +kTlG>"tq^:5&i֒= \WfUO_%RLw@t).MwΆΆouޢ *T#hYB ڴ諸6WI\lmD|PKe[brs-latinunicode.map.gznu[+e]K6W}k$;$9e "PBRc;~ $эD"]uy8O{we|i.2eq|<*,Ҭk|Uyv8M㴈7m|0/qTc%uSٽ"VĊXb5Z__k='YQ7yq4и>sW`d);mg5n,4tXxxLR2R~cG$Een4zCza:m ؘq+7.`l1bCl]bLBYbiXW3OzŵTDz@wР:;:J~3"O֡ܿq.2S PU}ZcY;ktgPН}1/PeNƇ~ZcY| )pi|GG5ɐ)b: 0 PUkeх̠:;:J~I~{J0߻X]@t'@G7/@fLb?].n`]03n-w^; LՋ PuUkei\g258ah~9&J b5񡪏]\Ku, |O8np%CjZ>?[>g"%-HJJ٬pթS!Hu&ج^q^M@OQ|C#l}!a;_Wsv6F'.b'^mUw.-G'd؁؁d/VȨfԨQ_^moV'yNj.gt;1(`TpTkei\g<18!e6sW@?mW񠪛.:F% Q3+F&jm_HrFP񠪷]\Ku, tg. JG+Fmi 7wyF zWlu_ZV?i c]mYрy0 B`R?®^ˀJ!ll-i ے @=D&Э"#HEkv=e7#PjߟX.¥q \'Q2d 6_C$;zdXmk,P̠*:*J^I^zSa{4aj<Y%[%lXpwn0߂.KKImb3t [6@5>Tke)\7 |GGPuԣS'J8KnY$|3ϸl.t_nl@ߑIƁcz神BYdKUL T:T(وJB]rjQViEY7ww{TnYf  [7O@Q Dq(!Vzܧ %,i0?n~EځCQb4 KIЙL<ǝސ> =#) f=sU[ոq(Ug >O1m';LW|lf~T[UoX]@t'@Gl[Pn6gѢFQV'z&=̤~]#@ P %?>,a4o*/2hձk,{ [eu}B:d{7ˀf "%əI|ެ^KD)ު5JVZ6[v{ -&FĆb3=jRAM|i{~7 gHAb MHL{O_r}f/#%_q v˲M&`&`)JVNVgBGɩ-DppѠ3Į-2 oS&g\؛!a[DrLǪgB!jФGIױVS~~ f) B>xN_  ΑM7qgԸ?~˼*O.-+^On*V>zcA  .\B\"o'ЇZ!Iɓv* ujBzTk0 0J'/Oڙ,Dיŷ aPU((zc<'3fj?w+1cb]uG9}H;GBE^<36%(_=tЇӥQ ?4ף"ٹNP-g~K%k_E_ENu1YCם-pp P\6UVXDy5(Q^@I 0pu6DA I+l|E'@uYeUWrò[LPKe[waɑhu-102_qwertz_dot_nodead.map.gznu[+e]Ks8ϯ}jķtC^ڙd6>..l)!)'_ij!Xrl hkhR$ްU|[qv)9ޕI|'X_..M.s\FDLUgq,ɲH6+ݰMV'k?˺yjrŦΆ]! d2BF1ds5ڕQk&:|R+γTPP=6׹˓ $@n;uKuT6+MW)P*BEklFJrӉ:a|o ɱI+ieq M u WIc$٩w:"a0LLuUUİr.1;u`,.U/%K+OU>c& CZawl-Yyګ"IbM'3;09as6h*NtVw1q[T ͩd8yz̺Գw=Ӑ'+ Jɖ`ⓁƋP4_О6 M+hOJK59Q]XО6ML+hOJK3S]\d8̯5A4i4I=MdGJ6|r[qrsq'} ݇ '1[Kd1*YsZ+&0E'<(Mj4*I \ NcTf$uHz8CڤFӡ">K4N#dhV(D ;rFSL7pƒ"mM@wؠ:{t̊HV5]gJ7=mRPN]@tOYNՃKET=L-%M@Gh,5~YV yӤ^*NWmRPN00mx $cjM~0XUN%m'\(Mj4*ީ  oxwiUK \ICE;ux 8ccã$hVzW`2N mMw| '<QQ2$I!Pc?]Xܻ2o&B$"NnXE_|PAD۲\a L`R?jE_Z'W-B"KZ)^I-a %v @#VsY NTԒ: Ȑ6?|gO89.(o,mk`l'#OI-IuB4ڸ(qmen`~.z "IeEVu ןo\}p) ӷp}JS-E޷ICE;| |GG| 2rۣv<´1%SS-v$+߬HbzX)^sdW:̓$INd?Yr4 g_rq\T(QgIATp",R,N/chjsj-jA؏c@>$yzyÉ"`qԯy0 L`Ro}Du= ]w [f5gEZ9TX` Rҥi/!rl<5ؒNxP$æ,%@ Z3h_ZJf{6'$f_}>wgqM&aN?jR6 pFZIEmNMNb>A@x^; hft|F-\^"ZM-~݆)vz z(l!i7?ov1`B;?T$̪}^z=|W촀`v``LWM#^H2$FoitJ6|RaeIu oo@@$)9:9*,=i?K*y[ߔFo\m}B=. J6N661э5Z}m76rި,ob0@aE\]`+A~xaU~}|өݗ?5`f`(Y$ t2DYȸ9[saKE/5! GM8Syr,X`dgϜvy.- F3~xQzao *3(C>xU>5" ke}xam=R!aSEϜj obݨn\޴CYs{.!6U4(Y=TNj;m=R!aSElCձnuf[TppTѠ3fPucbq}Yj6^KpM J>cmVUǺ=&sj{ZFۋvᰩAg&-2 o{}~V[MvᰩAg-2 oSfۛR!aSEr"&cյ^{h(j E] KuS gjhR?yL_  yH('XouU߬3d-7-%ڣ K# ~5GŪs92#|(jࡩT/"/"Oݲ^jr\\YsUWY%,ߦw=@ J n 8Άgùu> ,XGflDKqs9n[!_u9s]$jVëQe2(I/!}G@D11:l E]o @=(0`*W2W u2_P_m`[|#\8pyC-:+RdmE@= l`{d70\s:.)ȶm{=Z;|O'CW&C>G w8ЪNZUhE֎:l`X2x˳)4/b7vWv+nv>>?fYўzZ1.>ֲg_,`˳bɆ.;'kRf2Io/Oc1u&x ^>^jߓEƎ=8 DK%=&pe U~i>;Ņ>h_ )qyOΪGc1hCMM/'7"NjZ"3w" sA{4C,P|SFPP+S(̎{G ?7Y_M O>;IPg> HfM%+B] ?.ddszN2 X,'rn{4B_,P| |O'CnL_T{4C7Mt Fp G._'$BIO-|kUsmwCY442`wƬ˒8>+N)eRYfEMCߌЕ\7٪Br |dsZHr7_ 桻cx=Ncs=F@ZY{Bo%σGcoe5jo|a8t2T+<ė+@™ңBdYM _8S߈|:f%fr~tVڣBjCMMO-FPP}~Z̧&j:Hq|#dVybMq0[>iS8ee5jo|8t2庑EL\mb[e5jo|Q߈|*FA(|¹xr|+&Xmd#_g,t+-?X.HRH&9Ph.p \=u2 8ץ7wyIf.H!}kRKo ͩ`&Wy+dU✬IEsj́6ԏ;RV|̾eݣ d Qd:X#rڥ tUv&_^ f0QNM'k2ź6M_ 9LVHݭ&v;kzlGPzzbMB *GTu23/[Wkre^xvA7?nU{z毫 *5(#:«wV7RTЮ҃CZqZf=wU! "]%xQUWoCfuz Zf=tU! "]%iwQU׸=֪7[J54멿 *=( zV}XkjdSQW" UzPҙjPucnVYO]UhWAIg$][d= -R߬ *=(̰ z[z –ZzoUv36yVOZj:f\3 nç )ѰcAԍkVwo3S8=Su~zzm8̮C9(Qa\ww~%<)6Y6ñ6A]|Ob%"!3d.f YUCs /׸؃aGc/b_oئW&>e5ƚ= \WfUXW?(QN4F5 ('Pt7jp5L}3+zPB:jdcO 'PVE.ϒlWPKPKe[w hu-101_qwerty_comma_dead.map.gznu[+e][wF~ϯ{Ξ#>I638^^|lHh%~k0K[}]b7Ǎc_"e/TIfwpp &M.sq#A"v8yUȯ*ɲ$+R+w5u JaEըo5NbPb_a#ls \=} weT=bu}S&ѰpS.$qS,燩::;:|< d.HҿL}Է%Szo*+o1/y1#fČӍ\}e4 |^O׸t]8YRrKpp Ԛ\\H '6kO:52a0LLMUUİ)VN&0]e_L4չI=ON 'M7Imu#g!-5{+ɲX>mt4MqO33@WovXF-j*}d7ilYՓۆ Jk&:Y$Lqh]fle{- H-/f`f`>̔.>{i%MC 1-6nBzKC==%C$DuNT,f%Jx -h=D+M6u@-JfIfiw,<S@gN]@gJF|k榫u qw3ou+//^J|Uo|!9A?4B3+r$ 3Zc7o3vF8(ɯ["%tjp71a$ p"PbT1?wp}_:Ő]Ԇ!B"V.B@g]$"&uw6 _"-ձ">Kd1*}rI`L`NxPCR+I \Tf$uH8CߺX¥qr\'Q24+`GYMNxP?]RKut'.@tYA 'Όo8A߻XN]@tY!<+,?IS40 O~YjߓG7q@,MzNMj(8a\vI-ձ":<a`xǃGI00?&&j" %z.y%TNJwi[%AQ@H+iZi0 X]T Ug*ee%Y |bՏ;a#; Ӈ"l;l#X)WD]p[Qv`v`^=_AAAϏd"4WTK|:DQER+Ӹ4N%CZ)v $u;U-'\(r%TNJw, q&xdžGIЬ "*dN t>y%TNJw| '<QQ2$+S!Pc?]Xܛ*La|!ɥ$2NXMeWAƺD۲\a D`R?jE_Z'7B"{Y)H|~ %jA9G&Э"#HE,T_Z%u\!?]_>K4N#dh귅ZVlNF$蒶5GIuB4ڸ(qmen`~.z7 ,I\Wi:V\݆Ϸ`.>q[8>pp‡"oX¥q)Q24azƙLྜ} iqi4>~H9dfw`mm4l1dILP4+6ch?v]tnd`VX9̼ݭ"´SMK 80pьѣO%6[(QgIAlp",RϿHY^KAj3k hXL Hz$1O;e[JrSfiAΪ?\a D`RoT>{4t'<(oIV圕UvꈡsS`K3g_Bvxf%+IMqJh-gP->|LHmfH̾v}ŭ68O۔:ug B8AɄf|)LjE4(-ccJ*moo2{3@fs@!%G3<԰(5:P?Blm6NCDaOI}CT"KɘptY9X7Z]p&3(C>m|R" =۹=wW!hP򙳗|ZÛX7jÛjֳ۹=oW!hPPuhx[;m7?iլos{&8C8l7Ѡ3/Xĺ{sNOf v5!a%)v UǺ=&֛4ݞV͆v;jC8v J>cu{L4ޛzZ5^ M4(̤K~Lb=Ӫ٩Mw5!a%!voix[ǟ 5jvfs{]MppnA9ZP=4j֙ ¢U KeS g2:z"z! +'fݓv[>o$:2 8A1'e+1ٕìju<;A1mNaRar `#c+2W:9A1N8'_4ڞ,`˓bsM(s͒G[\lHɣLN3,QNv˾a VbsBgZ?Ii|FsRBUPC`a~aT DDDDl1Ե399}vrnm4ւ< JFLFr@'y|^KCveWQ' _o]gC*/"oiu6L7#D-Ptbމ$*J'ݐ `vFJvޛ_"nx/tCtSfLqJ̕ ɾԣ`-GGGGGGGGdޜ$y5r_uX,6/xDxU2w.l &=ͽ_F]X`ފ4*n@2v ' d ;L%7y?sXNI6IFBDyًV|W8w%>ħa]Ëvf.$O28D%ɛ r)¨C 0u0khzoSF׾|pI >ȧ?R@.ZX QǦ}%&g|O%CG&ʦ}%&g|O%CN ZX Qͦ}%&g|O%CNZ;,CT/lWo|.T2 ]rXa`SF׾|pI >ȧaP 7vX,ڔѵ,\R|#dX߹!^Y+ Px7IDrR$E~,Vϊ*V\dNGlv`;l7aR9?]KhP,`˓bQɆމ򁔇|gb;vJ@b5jԨW;UŠb GTlWo|.T2Tw+կZ:,CT)k_ YFSPȠ0azeSF׾|pI >ȧa}L(Cbw2KjoD> ;`)Nxڦ:x#ijđu<57ÛyK2KjoD> u2\EC&_l+ YFS0:Zвb1DM]JM%57"JPfprخb1DM]JM%57"J ZrXa)k_ YF䫓?Om׆C ɋ8ׯb d'o=zl=[֫G|g sn0$:IrQ'Iaۺ^ڸ&wl [y[>|Vu4K5|X<4gM#wQa&qfj=A߳E%P<+pZ~v|찘QӦ}%&g|O%CuG|ao&ds`ǫÞGjp .;놖9b!DƦ}%&g|O%Pܻ,ZaM]JM%57"Jsymh9laznSF׾|pI >W'@IMicoc~ŕlJi F`# ~6gE$݌NtuAдQ݌NtAԴQ݌NtA{yXylek f0qFԛJl>/h_F?:NA;m :4дQ݌Nt A;:״Q݌Nt]f#+:XujDCIGSo' ѴQ(NpZ?h]^СGfp C8UEi(xnFp:SuЊ_gCg6 Q)T$OWXϳ<WzTTRW,J܇0wx1B"uiTn͆֏nr$bFZPbM&lG&a8+W{ςh`jÖVi:ށyV[qj2ѷ+h SG_@*hiøzQ[eoE\Eܳ֓ٙџɶThG#r΢|s좴>6A}d|Opv Gfg-./I/{_ׯv4;>$7 0O#6v,]~2C;Ȟ`M4y,gx^ P6|6DTH$"ճk)jG zʲqX$?8J.JCԨQOwFCA,Dw Wt2%-)&Z5viGGGGGGGQ''/OI%Exnmk\:,Zk2E;mͣD9R7@n s S_!l&L0alj9)`[?en8(\X͛PKe[$?S lt.map.gznu[+e[wHS}Ξar$x2{yAeI/}6cN订_+tb_7uy4_'o4fޱ*9? .p \=˼/㏎*N]ynU̷9Cw9&rO<1}oSYv6T}ΥT;Lvq3nj"M5m9mٝ|&|ٓ=V`L,XQfM2qvY s44}iHRɛ{/ |WHiI1^0=wDoc겂 Lt_T$C {{vzkVl[\ AW\mXez*9B^CfmUL,͊tO./R85ZSǶ;9j?皛kL_c'}Xe- SOpM}P&0N34m]V0qdFWA 'Hp˲J+jLG$m|]Vԝ=ǕO<={NZMN ]Uժn3=8jw՝pi6YPbE># VRgζ搣ÕDO+v]yvcZ,"&J)m1jƨ1jjLg3-V[c5GGfޢ*ODͽ^|NH»զ5U7>ť99GHDrʮ|Uz$BeoڲFѡ*/ xãNpn=s9d 92!GTMkBPt@G+; Z*RQdpIPmZP|S\siN|3+h1Bܝ1 ݴ~DMk¹:?t~O0GTMkPt@Go^~:Pzi]2ҦwAs w# G00p|%?,gO{$]elEҜ˙GahsMW"\H"޷iCUMOsi%33j(\=0^,Y<_f +XQEWv[g ^Hx3ug,K _e륪-eܿT]k -QKoѵ]OKW_ ~*UȯB7/|Vm{H= v`T3nȑO/7of:O:jBL'0I$:hEҜid8QgH3|X˕@IPY(:Tޱi, x;0ufS*_0e$bu(:T4\:|; u4JݮjncA]H"N۴Fѡ*&4:cQgH3"^S}% ؋IPOmZP|S\siN|h&,2Mƀo|Ksr. >:CMHIsM_lV- d6vA*H @5u^7^EP_H"~YfEljС*p{7X.p.uTUIP6Qt -ζT|pB~"g,&bjM|X3cxId,V8`;i1}ދeI4+ff_ƃ Hu^זKUObV5AMP;ք..D*1ٓT|R^izta.FE6J+QS7_t* B>c2[UHN3u`SSy?(EIzUyG-pݨ7zި7Ms3-VDެW _=lʲ)5qbabXH%}MX ÅkŗIDPٿevQbE8l ɓ3C R>AR\iZ9,P+y2GTMkPt@GUr¨f7}GTg(:TQӅ:?ړKQ?DlE;j:5CSt@Gt~z5vGׇm{$CeiCUMKLgҷ:*_*O~NU#;ߵi:=?4gΤY?OoaJH1{|>ԭo~a5{mτMi zջ*DzgV#vgB@D%xʛռIp}L4Q#ORDoVGj1_τM5J>rnu{L7[vXv/gB@D%)vZ7U׺=&wj^Um}&D@lQkuSuc}^oabl۹x &j|d)EmWG jqf۹>" 6M(S~L}TނêŹmL4Qu[W($A?:Zthj"."Rc#~mP!#/Zr,H@gNb:h:K|%.&/JʊbgURۻ=!*J#EÕcPlt}Fp:S:i=ydYz#z581I˓v.~[)N@gEU$iuK^wZ+ `3fQQgf dƒH堷X#S8)W&܍kD6bNt 椝9d, NUo}C}Ko$2BoFp:S:imG&P[)NZFy^=o XS#&eu@ ((Y"?,SM"_/J~RkG|c:|nT BP-T8E1,랜zV-]@xv[qq1WEHbӳ GkWqq4f 7 Xg#߯"OYvM֝p>/ZY^%^:|W{""q$u|o٪fiA{X߃|..{lh=a8X?}]bf I XgXٚ}mi^do1=plKVTȐ! l߰!(~rCA$D:HuzLo+HN[r,H@gNB J4Dr>?3zJ֒,XrՒ<Qy4g-ϾnukDpNkϷL}; "E/_#"ts~dJ(2Tzp \ꑬ*muS4S5]O3"@J t7lp6L}Ά=D!B"\̔VfYmES8(G$ɮg7&0\\œd@ U+tsqIgcy ,1<1T 3y;iHķ9Ѷɣݪg > W¹̅3NuИK2$K> `vA=[=n:h.6d]i3 *92yd=S7 > ħ̃ɯ Urfw1m;\`~=GGqÿ]vИsy-5H,eӌmUOrI 8T2d8 xӹ$Wn[Ekf4mJ~bWdhHݲ{f4mo|.|7~Od HH݊o6hV,\RSЩ\@ΏtAb1Df4mo|.|dVPEGvhX QnӌmU%uo@> n}'6 %YSѯZ]r .4i[|#pI|O%à3m"n&GoX QiFӶ*Fg:7 JrƃE pټ2Rwvza fԫA gHAPbA>O?\U^D/:s~8ҩE,8;8;8;Ýiupvpvpvpv>;ΘzOCWAz+`;ZU%{:CLF*x xm #6hV,\RSP͐įޑ. !f4mo|.|d(gHOLIۺjX Q]4i[|'$'咜߀|*RS9=eubjaӌmU%uo@> 5#]vkX QhӌmU%uo@> jәO6 ,\RSɰZg*7Ɏ Y6iV.#up .̪5um0#]>4H,~iFӶ*Fg:7 JjMۦAb1DƦM۪K߀|*5vM)+d&qU{q\)`cόU g%!峱]|F4/^|d h3O2HEgaόY%k:}lۘnUrƒ+wP|] XM3Uw|KrR. > ȧZSK fGAb1Dof4mo|.|df,W0ޑ. !W6hV,\RSɰ#]v æM۪K߀|*Ooy=eebM3U7> T2WPۮAb1DM3U7> dTk+|Ja̯xM1;.IH6U LT?43N[1mtCܝ` X.E%f̄7bj#ћ>Ie=ɒT.#QAzauw}wo"o?Ϸj]~`ҫ7/6nb{E_HoFZM(Vb#6b[ v"ۼ}!B+*'}NK D7Z k^2! "i>qp]jDwZ͛X+QS)" &5(铕 :TD7,7JԟwʄI JޚOjRu;2! "iR>(+ѝwjR t;2! "iR>)(+ћ5V)Nu;7=eB@D@Ӥ%}bmQUG=VjR u;2! "iR>jxkkRvovʄI J؂"ᭉV*ŹnLhԠʱj?(iUDo4>? 5(^%ꛛiNEv uF#463 8>\ӍGhlfp }8U/ڛòȢx"SG׵֮r f0yF՛Jl>/h_Ӎ463 8>v/ڀkF#463 8>6TӍGhlfp }8U_/V+Y} FM 9|/GӍfFpڇꢝMEvu5(xfFpڇSuъ_=^Ю(Np.ZDӍGhlfp }8UE_Q2M}@}bMb(P@a4k%=jȵM5-tsfeƯi8VP+?YwBM'jPpL8&{>&a^8W W[gA{E4}1taU7`]v+".W f 0%ztRY Gm݊gǭ3?n ߨЮF{_2Mr6y*$ $^:|*CHI]t.$-;/WCNֵ3 eF"nmv5oO;(Q] s!oiپ~ xY].'Y oPi{OGҦbwl׶"!EDF\w>1T t²pN_$9J.WICԨQwFCN,ˌDګF:HvYM<|nS%gDݜW_'RURV:.p5Hڳ* %qh}J5܀6`] S\ cߴ!"D!,j9- AK?E(:hk@[PKe[EBaph-capewell-dvorak.map.gznu[+eYs8S}kx>$xfxqQls-I%|%.6 RD) lh *~(.^={Lp/vHx:.pXUcq“b>"v;}"^Vٗd Xc'DҊf)6"L9J\쨫6+HHKҺrb.Ewd⻜1w5gyޮw`7`PdbTs'bd\jl<9z,(/p:}2rIt,Oغg7&0U*cDBw*[y$M4O6}&[_584Fl4~ͮç;<p.OL+"^/F|߁p©%O"yNۻR%~L6ᠹЎ"o*aTOzs^rL6ՃfI'b̈:|G^:"vhnY[yܳ^=5;,}'8 S6&?sF ^Tn9HlT=h|6lgͳlb/*|]]0Yzz4J3Xj`W-;7q Τyj*;N?dEup:MV|y@/x ^/ z]b K\ߛvD$[b.YQ,`I`@y/e_VՀŶr,O36gqvG[@ `h+™"GlsW CC&YxdYU;iЩ)A#ѓ˝z)dP }c&2(&˪:IӅt; ~n= ݲa{4C6YVա&΀Kh0`8H(ǵԇh"MUu 3\|4`)hևh"?6YVա&΀Kh0 ?=u^9aMdPCeUjB@G_X_ =߲a=ȡ/MUu 3k6w@> 7r7rZ|:bwRaEf+@2l'27(g xra~Od7ZW XrR,4XB_|z4`;V{D톄 iE@F`և-z4CMUu 3k6w@> '`.-{7?5Y_V_`&: dbWA==ȠoMUu t; ~JPJި[ zݺG9ɲ5w|Ks.ܚ|;  N _rYi*z4A&˪:Iө)%t;]=~J\X|ĩQ6ˋ$Y.uLG]kvW[h1Zhwbrv՗"MG b,^EI'U~6?WuOxv@+ @+ +қ%,3J*oJ񻌧^{N%8*=cny0Fsh1on9ZϠL+XfIUGoeUj¸@G_B-Ré`\Gӽ/=ȠĿ,Pt'MNkJЁt4ъ45Q&PefRДGxdYU;i)A#G+I9n"=S&2(GeUjIM :?Zoo5alѥMӚ,pW=h0WMge1p٣JmCM_ՃaH#s|y0Wt|d; LϜI(6 L_DUN(R9G[>s&r(&˪:5pi|;  NOڞp!1 GxdYU;i)A#Wr`[IU``0.3~Yrջ>n40`>kŲv ~,tM^kCzf:;Q̗of=TPB=J1}V|~ȖPo~~˅H>3ҫvTToR9͟xkx^  muJ>wU{EUjg-^\HHhS򙐗UWu{7W[x~/r!!"Ng]V]5.IfUj VC].$DB$])L˪1S}V[x:1<ޤ˅H:%vYuU׸<&w-^FNj\HHhSI^ڂūթ].$DB$]) K~LP}PaW3ͺ\HHhSN䁪z-RJx:fE^E޽Rg3~ݬTZ_4s,H@gNR.tr)k\e߱U?JMv2.mzGChFhĈ,PdVHҴU (NZOSYCm2Co5@P#(cm\j 0`q$&=LHZXj*_'2.tm֏%+ ,.Y.yl+-?9N %ڄ6MhD_V?{qY0 ]mAժDDcWyyKY>6]xX>[ "ًȋ{;ۃ?e+7*/q*]j8>7TiHt\D&d:LFk޲rH%9< E5f~Cz{WP6z0 i1z!z|7l>QFq6'X/Lrq,S 2"32._`y  Jl}bCc 2DwsެZ.Q9$ 3'J4|"D'Oȟ]GN?IQegp \ь*necyFow~@ J ^(f  gC=TPB=jO gPy-.bSlaPKe[3}es-nodeadkeys.map.gznu[+e]Ys6~ϯV}I63q=^\ ZKȯ_lEږ|H_F_H8nez[ nYpwU޲N/ppu/ Q H(($ ,4ium+sbppWGƺ/S/Tft+#ӴL3`+nԧJhhf$0>l~uߦ%[mba ێSl&`&`>4~;щ%zZR T%:opl|fvN]Z{`=G#n$`NŠT4%x*d>̜szeϿ"^ċx/}xfk$ߺ[`5J;&E^'kVBu ;ŷF< "⡛3:?*nL뵕N"/ΘF-?S`Nxг|StG.N JG@G< ǖKN2E>$h_]@tv>/V% qu84pNP7+ S4NK>; > Nh>0 &rfC0;8A$h_]21(u~/$P#Iu'9E@wĠ:{tEcOQ2g1.; w54™rl,i>6}B '9Ew4.3|Gab~ C3a5G+ Ӹ4Μ|Gސj(_%rRXW,1ćjIjWeٚ_ٱ^K&- 99yw %0aҙ a{iԯfʻb](kVΫ릭r rD9"G9̢O^+?ѵ܆G؁؁UΞϤR٠GMgEC쇚>`r 'i'H%y哜}E;|ƙ NΐfEꫫ\>YPU'\(rᓜ}E;vx43j.hL=͢NPOri\g>08:CqWc5!>P)=:8Cs+ S4 => iZ,3֋eN%Wȏ>)Wpi |w@|_C5--4pxOƑ?{n|'O89.34{ 12L g+6c,>id/ Ut@T{@EcfUQ?wM_o:8A_$IU}EMt6 K0m2{#E'|('9Ew.ӷQgh܋q$snO%}:_yF=_dnWn5G'}3!zD,zsz,l Y%(-u̗`Yg6((QRifpMTiiTgDC=G#n|y~@$Sj fS3?Dcc@]ԫfң7+[ܛ'''a+"}2pppI3s~L$D*EcN8S俒,XUS'1I V`'H%fh%Tupƒ"diJT+#M13DJ+(U+jPupƒ"o|StG. JG@G:RB%c82IėNxP+QK%#Ώf%\ꧧk+QS3R9JG@G9ԫ?-YW[up‡"$h_Nt MאRt(ܑQUS>$+ Ǥ(l$&`&=mW0 vͬX.d[γbQ>>;> C đ3(g|Uja"ތ6cQy@St"gmgaN/֫UV̗x4pZwPYC>"FĈ#bD"sHO;gzQo7ط7ڻ <u|ɫEtFOV!_xgor}݀ ,Gd3#σO09;G4jњ\[/R!¡2rG`MVL 9qְ wUQ#yS7)ѤEs{.!*j|yTjZm=R!¡FG7M5 '戃f[%Tpp誨QbMS cbAs[m8ljvh빽.!*j|yT(h7Gh5;h ]5J>2?"S(l7Gh5;x ]5J>B?"S؈j8ijvb빽.!*jc1xi (nWCf]@XZ_}_j|$Я*d>'@$@‘eG4]deXlY%]ͫv:fv!x @{N7@Ʉ߇F$l>.$0 0Jm(/ڱLxձ%;YI`Fa.H^Kv顳((]h/ӺLz޶j030WkYbp'%;ts}v(/D&jbN"=ts}v$/ڡLxա%;YI`Fa.ڱh_&;'okyxFo"_ n&d'ͻ(èhyц2UCKv顳((]v$^5d':9 >Ehd«,IbN0tѪ/ww^Ej@@:%>b}Z՗j @H݌jϝH^/I)SMŶ4ium+sĮ V1J֬4uZʴDL 1!&cX'Ckkh0tsģf. ,ZY~-/>/5fl]Z,؈oh. ,ZY~-/>دiX2$H(F[/Hb~JPy׵r^zOMu{=Y{fu-JzܳaZW3i~u]!yeykepc""*qu57yo+$H(F5VO"o? ,cZ;~^UA@@XĖևw,׷ZɛeYV2Z:뜅6.= hzXRo2V߰v(;Ǝc;~c{_y>&Dx 'bven5-gSK#1r#aᮗrO7ըveE"_Dl.]}:v*1C<c<ރjͯ<CEu6պć,`9+ 6|%[e|z(iiէlu廒R0櫡{~ dy"5e>tW؇IXW?]մ 9>GpRÉۧIPٿ\մ 9>Gpx$H ~ g rvn-4iW|spi|둏aPC7HM?^TvҬ]U OqiNΥ9(V+jj۪E>TvҬ]U uG> j v" *4iW|spi|둏!@S}Fjk@m$|Gf5o|Ksr. >GZ6*~Kh ri_ uG> ;xW@l c&A[vuF\ \O`VCgw{Qv4[$Be4iW|{Ks|=Q0w, &9WnqiVӮ*4'Ҝ_| gjoPdGhf62][j>'*F DfEdN؋ҼwJK Z{/x 3`WX?fo %o|$$[6βn-WzmvsE ` ȷ}@WwM0S t)ςմЋxyQ7X6CcM{ Ԡ5GMZ2Q &L崪IXW]մ ).ɹ4'#Czwz|4=u-4iW|spi|둏!\Q[Dj"GI‡^4iW|S\siNG> ʗ}b4>u-?\մ 9>GV*htiVӮ*:#Y uO*m$|Wf5o|\|둯 #zwbu71JUO޽ui/~3grhL`:B`ezPYyo5i6fY?,`YP tB-$ _ yHsvjaeI6X\Πi0̹P+3Ivchjvq֬`:SuJLJ?X^$Taf3@*P)xEXct)Md/E~ܓb_+ f0^NjXn9c] 7gf5W@ao{"o#ho|bT-Q~ ȟ ~Ud7o=D!B"c/w]b0CzQ[^S!Uդ'iAYQ#qYYᴦzn/hC8C&%btΧ1I &eg5Z zn/lC8C&%r^NU!{yD^M#ۋЮIɟ/Mf$Я|T*.S$ y$Up'Y^WwlfR~n`Y~쪈 _\'7XC 0  NN`"941t+y7S6T&ЭDzhmf%0 0Jm(/ڙLxי[J`FOa.H^WEbO.kkOk `3O/'FZaɄ; JAk3+Q=QhɄwHͬFaF额ȋv,ulV"=6Sv*/xVYSvl{xA{7ϗ 7J`FOahh𮁡[J`FOa.Zv(54t+ZY )E~d»zn%Ck3+Q=Qh/Ԏ^in_h@йQPO,ZÁ (PBFcnpix"X,5/X{NDތVEl 5zմĘ0& c˜JlxςE4Ogᩚ]3-b  H9  +!rȇ;w.ge{GhF飑O?duYi\'p/YvRqFpFpFpFpFpFpFEe1)U/5][xVb]!E:Ԙ o3"@J!=aaq5Lj"D=F4<$H =c釼Ȓm~|?ȊPKe[Drqfr-bepo_afnor.map.gznu[+e]Ys8~_/Qz؇\d6/.l)!$_Mt,ݍv&E5]r4?\$_7]~Wz"ό"LV]k% ݭKvt7F܈qиNm B@ ^#~'s$,٩SWl _?XX 53k@<}O';u*]˜T <<'暏M2Z*9RNm+N$`B3Ɇ)B;;u++^嵒Ez.zJffiKgq ?NBIse=pNjAĬ= ZQ>N׵a /ֿ. f^v}\ @IB,:y3^v%7,eg0>T^^=Ū|!9B?4r{,_P۱hIN۸ztgΦf^L@XKL/i6#;En1PC }BA(5"g&тK6:-mhᴠd25$+bnz84[ًbPhA-j>.X;UE(ԷNmRPNep \'cvo`UaǶyg-S'-;ٞ $SkB!@IB̼պeƿ=QdlV]Ꞧ||Gз&DbEV ƗN6t'0X@Oc`7p0NNzmh:TF%#h[s0p҃&q6pF"P$0h(JJMLCg*M!/9_b)6i U,:=eWb z3CL4oh:TF1Q+#XC%ƙ$_{8AICE;jtQlQ=:J~b%'^mu;1]V=ܖG؁؁Sd/VjPPӣ6vӏ'5zN21.X'&ڤFӡ">L&'Q23@BRN6t|'283(" .ԛ,R ^했oM^rKTE/[{#6ųD,R:Åbx_}rTqx'}iMj4*Q #Q ͇lt@}_ُHNLJJ-*M,Sfu\vz++ liE^Zi/$2]p mRPO cXO%ː# }CL4Mj4*QBQ:[t㥥[IICE;|WQ(ҷ;"_ݺ 7geдM>ICE <z[q RrokwN\lkQ._pҋ&ICE <!HM!1ڨ\tsmR%5kij>{[W;E4Q 6*DhMo4tԪP} 4I<זכռ^NN|f8)>WB4K v ׻u%rx<%GNb V`߸ߑZLѮs\+l5{kMj`%dl,`9E!tѵ+ubL=㹊|juwen!ǭ"Q,_V"j]“A,R '@HɑVL5쩂PpiѷNU^^U7E`wMzi 6,c6FĆb]l⫩(W=Z-={R9[ܭ2]4+}Jbgu $MH6:Z_j5GU&';N q=¹q!.ĵb6w_^b)I0WӒy*5U+-M=<0`6EvXyʃ|xs?p "lM@w"Ϣ:{t췅&zzb&cCLNz6ttG.-JG@Gɏ%lVB5KoX{8A5Mj4*Q %#GBҟ 'j2_kw6/{8F6t1XOd(O V&қvxө/_k ^Q+w^e=d33X">RGM&s<`˽.8l{6e D"X*,X`>"KX̰? e љ8Ckk]KpM1C̯BjD?L;užKpM J1sL UgxufZ^ vᰩA)fԞCգ^Ck {.!6U4(Lϳzz1^ס5lꅽh *bfY=T=`\_V#;zaoKpM J1s{Ll# :]R!aSERd;46kZN]7ݥC8æQx&nix;l Guh ;sl *S9y ݋GCa@Ztڵ `4L_7+5U2bȫ!C GbK,f4'EeU_ŭ?˴xQmv^oWw;,GA Gt*u(vFJ߬Q((:i](fFatF I;S:sF<6k0 0J'mNͼ*XRmN}Zf`f`~^j/Tp:rPfFatF餝6R9rPz5 }6V'Dđ۬Q((SuҾZ, 5v7x;io4fjyf¸CkXsHNU~~چI||@|Cl=Z7@Ztڵ `v0{c|Qx9{oo9+eyu E#!k\COG]b {oyR`vk9OUunÍ3ăw=A<{]@Ds6&兼Ku)`2ݞX@Ebe'ʿ!DNg} “]3ջu bz!C GBE ,Xfl=p~p{eUrѦܰ:PKe[yVVee-nodeadkeys.map.gznu[+eYs8S}kxx؇\d6/.l%!$OD-) C@4 ~ܕ_`-O]xW{:.puf, x^ H1 ;˄|o"Y>5,`I&cM cKyxzZ/tW&T_s|^˦*;6Ydkf ʈR$L2i)+jE`#X2RLղ|Hu z,eD)مLw(/jcEV~&06cPU EJlgpXοI%Y־d|p \7cHeC1b8q*kxX/LY.F"IقͪFscک"Ѐ4=͌qc=ƍ$ Q&_ߨwIVlڑaqvn;&0 0iNQ9#B]N7*WBU1S^W6U]w;ݯ뭽fkczGz[O?`~(<BM cɂ̜czrzE{^c*&ɻtv-XŴ0jWvvVXK}^ƬS1U-%v6Z%h Z[B?.z ]  <[ԙz:./kw7*u|VZˇP/nsTvim{_/xOcdsAA98ԙ򴿈{|I 3LgK۸,?p_r@;5^y ol \Ae@IdCޕWTk \|;  #=b)#7KC c͗XHbsߡJr5AwtPtG/0=%j(._wh"7YNվ&N. %@w:BDӑo2&c ;\46ap<o8ꄑ3LHldƄCޕGTk 4F|;  sSQJԃՌ"uh",j_|g4g 'w@> Y 4Ω(RS 'UJ̼BL"R'3FiZ(=R|'VU?m&vդϔWِ'`[-l48Āī&˩i.͙ 'w@> ix(e,D %.,j_|g4'Ҝh043jOL?#Βuh"o,j_|g4gN|4ruMBu֡JL,j_|g4{1h0h~)TID %~l}MҜKs|~^r>0S \|;  f@?I\v){YC*P큊/aϫ?wB!'շ/R$;V*k4]&n4.p_. -JXth",j_|g4g?`hi0SO2q :JM_"ֵ.~`X[K(Y`0LCJ#K_AJ8Ot>OE^MeMy2~V)4H=G<#@|ej>C)g}qjX >ApDpDpDpDpDpDpD|DℯԼ*H3+uyG 4#oe ˊ/x{"4C53V+xLIZg&B(&˩).ɹ4'w@> [@j%Oު?"$oĿ.XR [_gO 1HA IipjQ(R XڡJi}MН4]JЁt4C52*Ob~D%h}MН4]<0hd̤qzڡJn}MН4Z)A#gV[ؖw[uh"6YNվ&΀K`ӷN_~ՄM3iS01L4XE+ʆ;˄4_.էJ"W Vֻ6&0 Vʋ0ς˻d[R w&0! ,`9l 1ًg\xdtmXQy> %bnZEmh1ZϮa1N3|^Tv~`Wo4X"d{L^XYN>TN b#6b46uv>CMU,_[PBzDc>c}2_+K aKɵ˅]EN93'AQ%RA]XoᨥԨv9*B@D@:%!<]ޤúrRv9*B@D@:% ;ORQ"T]E-NgN[Ǥ:zE~KVcw! "[D]շ.I gޢT*B@D@:%6o]uz–Rro"|f҄_"S0[juds]EQ3&PEqKVv97UnuʑS H@I23."_,d˛̋{bsreTl3M:FhGpzLвU՜NtN I; udN"#tVs8}86'X&|ױe;YINNHiU$isGo[K f0?({Fz7[$$l'?՜NtNȓ6 5l':9 >I;'@&|ׁe;YINNڑ_&܍oN"wg5'S8݇SsҎ)+ 0`8A?Fz顴T|vr")ot|쿱WKJ mB&%~|bXY^_ ]oѰToWRE\}r\A H GKG-&L`WRE\}r\ә}?)_2$HSbw~a<)*YVþ{_?PXB@uzw{#Y{fU-K s'fz@ʊНaN#Ջw nͿ Nu67XoL䅸JyIn/xyU|%'̿>BL` "D$ӻKV|ƐQIC~)$ y$4;XoLCHHuU3=53{T nYWjhHF279?\EU3l`؞ƺPusq+S?D#gvAzGo ~ &PESC')lCq:W 'G{^E{o^c,F1o*'$'5Bj\ۥ{Xи&T!UU2E%nAk晶Fȵ>#T YuJeGꢉ8 F`4 FE2]}M-^6Un͟k6ݪ/x Ճ1]U[X#(8Gw&,/2 G b69ۘÏ\ޖTN y IMT&ncKG;4],h_|spI|;! r0G\tI?S)d%ҡr˲5Awta(A3o}1BW&|9~aE˲5Awt(A3/l I,Twh,,h_tMt;<52]{3 E?.*EE3E :НN~_葐yp6!.*$'|;! D!^)9%gx''qx: TȅrИw!Წ}M OrIy80Rhǖ!{eko|.i|'Ӄ^ 0\zBHhKboeko|KrR. >OjqC1]Vr}Ա⽣`e, |WT}48888]1ԛrC tF`;j!!!'`Cc9GH";twh.*$L} >OzQ 9_()U!č˲57>es6|;! ՊG;6X !^,h_|spI|;! 2!ĵ˲57>5ʧCK2ز]b˲57>PIt>&P?G~x|spI|;! Պ|>fLxlE).EP@/k,ߖCc!eYEK `! tǖ˲57>P~SƋċ+"dП\ICf0wd-{KG1f0wt ÑQ/g27EMIrRUv@y]*Yl'd ]^nt}"f;C y? #~rWƟjLҍuX.Ū݊,5 gUZ헁\tJuY'8n-/ }M01+ `9>dOzY]I⚔êIϐTzexK15)Ccx岬}M]4](JЁ tzS++&ѸaG^T|X!pYVѾ&..+JЁ tz+)s.8th,/]U }E :НN~35ɷ[V[uh,,h_|spI|;! # .!Hx_]w.K@ *3z03G_@hUENn ՏLZr^3ۗvc:ovVql%Wf>B@D@;KwJ:SvU{k՟4-J50`_" YSsMWt6TDopԒ+̧}YhgNIg]7]3.Ϛz-R|/ڗvtuU=XYmoɕ̧ҝXng\k5-Rd_" YSҙIYwoC &zaKTf>7ݗvt5DPzW¨%W33B@D@;Kw)iOhՑa[ YJNTbS^Epv=XЙo㪾c`3h,\oLN%#I>Ty\b{8rRU\+I\Il+-jiD& mB6+Zϻn/lnpҒ+U3 0.w.".>9u>KЏ+З=O[rU,<ܹ个3{#bI Fq6q~!_".7*[ko*ˬ(^6:|nH .8ѻZdQI^7{V_=_l;>dw+#ڡa.#ы79n@.> Fq67K/L.Jv'gx>g}v{t!ϫ57Fo+>el>A$DHwެ!uY׎} H@zgBBBOxSG$#Eyv?l~u4PEٻNX{9'սOYcjx=.puh\4E^X"E: iz HGp7llf [PB Ī1l'eV̡AmXU]f*6&?s)PKe[ DAch-de_sundeadkeys.map.gznu[+eYs8S}kK>$xfxqQ$dkMI9|%Ά RbIU&EcG?ܱ$Oمwwe߳V.pC7c_ee0)p"P=L}zeU!y;Eܼ9Ͳ{K6GzGOt <#u(퇢.e>ygf֫]oG{^E{^)5],NdU1yfoYjK +_a*<_ɵt`+XXisJ2/bҾ)EYͳTMdw.&|RUn]o?%:]Bw5 ^Dxi0P[7Qw ơħM #OH. HYJ.A̵%DA" @b-̠2RtRz$CޕWk \|;  c=#)C>S5kMP]p5wxad0m!w8<'W#%3U D%>5YNѾ&N. %@w: ~jqHJon[CSuh"5YNѾ&΀OqiNΥ9`0V|}[ߛ7ciCokPtG7=$j lD%~o}MН4]JЁt4ADn9a52&}wpbZn{T0)(P?,h_|g4~h0̟cuL=YM)}&b(r5w|Ksp|G\4Yufwպ'biR]l#yYR2FL@ 'S9ҫr9C-=Y7aZ(` 5Ŧ>[1ZΓj Ub,tE&vդϴR!!!O 03jy5A~W1whbQUk 4L|;  4(POeLoc%Uvh"WMS SX&w`< +*9ӯGxMPmk 4L|;  4#Iݮj¼nccAuh"MS 3S\1h0ajQP/9U`o:4C,h_|g4'Ҝh043Æc-+hGRn \|;  ffP? , Doz~d3m?)de$Ё T{|f]QrROO:4A_(eh:U:n8].p_. ]DͿC1xd9E;0Yl`w> ͷpf%ɉ'JOdWӌ(ϲl_2GY}Qe`2L񣩬E\_iж VA]0&1bL0&`72`gH/%dM y;TuF>v^gH2+~"'^Ry!eU'U1q0yŦ.V9n-9t`fl\o:HL;4LgG,]ͩ1F F0~GF,IH~4UtڡJ[+ Z_gO 1HA Iip6jP K11`I&"(r5Awta`(A#gf;<Ѱf^"ԇ&KS`zLEL`&_+~4/yg/-%[̓<˗{`IX>r3}^ {VTG37w9 y 4M+4)k|ڮ0Vp\mE#4@#hS |/?j~=?oZsw `3gzπxUwa4*[-NTjV7TE}A *#47/X3vm~tqɷ`Ԓk߶,D@tL7/zWHHuf\ܟ- , KUM? [0ij`s,D@tS71/QT\GpВmYfQo2^]ճnI'uz \Fv>mB@D@7:%Su{Lj0/-Zp[" Y)kuWcR^oaВՑe! "Eto{[j- [r:,D@tS7.-2uoK BF-Zd[" Y)偺#RjGkWs.".>9.uf&Я|U(W (O 䅓ehJH&:4l'yU&yw1'S8݇S:i}yҎe«-IdbNptȄWXŜNtN I{VETk:w5wW} f0yF٫7lLxвD^:9 >I;'m$^5l':9 >I;'P&вDF,$p pJ'XT ^oصCwP,/yk jt\z]@xv5"."Rg7XDE-&o]͹並3{| Nu6犿7=NH78k-ϻ|,yx]𥮮"E$D:HVs߳Y'y˒~Y ~~?O4vH^Zv0sa^}Lf %$)FB6Z˼wb~xcz~^ z#)-Gw,׷"!ID2kuzo /lGyJ]$/ !$$I>f1^!}]!Ey?ti|^=.uoTqמoB۴v͉Za^^7՞\:4]4UVX Ez_3"=zkݬa7lD*TPZUAk?U1_ޔqy*WqcSPKe[SNNtr-sundeadkeys.map.gznu[+e][8~_{sarIfKr78EwYmcsUTF 2^WWzsr]Mkr8yG'a$꘿b%/i/9W&CoT@T@crW sQLx߫cguQe'T=Ar](sqԾ\*VM6,K2,uK1ܗDѭ6˄Uvr˭N[}<5z^wku;H8R1b#~MŹyqQh,sQs{QWeD]2%8LLMU' 1I9/*^͏V\\QrT2~_02I$1"Yqu٤SEFhh_M帙qS(Ą9u$ݽK@=qLL|0L3_&z! t꜕,*[ ͮnM_[ekg{G{{O<8`"vŨ}W4?I)f8}&> e8=/~ꓱ\ǼKx.,^DqoְqU7]qC:+YE%n5zޠ7 zL{O>rmϵxJ"nVsRViQ}U]^f+9yh.XZ#P~KtFat~'e{blܬk6jW^^:Uލ=8sq`B®wp̻ rIi_ρK|'ħT&qiH8D6" W$˴t.J3o}+U?`EKL@w"_:;:J~ĒFu"KL@wP:;:TxJ {c@_|ЕAH)Wn".;@g؁؁Uɞՠã*jeXEM/KL7|ę ' dW ⩧󅢲Yܸ$˴|'q8 |wB|:Cc1. wdlvIi_ρK|'ħaX4!ȵKL7|t2+K.Ɏ,up, ?$˴|%ePO|GL7~rI_>.)N.cԇ}7񒫷ي,cqwmK@ PPV`+OY^>tp, $˴|%eP+F, Y6;8C.2+9pIt2ߎ"񺈈/'|UnjÂEXeiw}30wIdmY퇯N%Pho*4.֧j5"]X<P9(]/%JCbᰂTi)j2OrR( zFW~g%az0La02 2DV\*)K76bM+"W%ͪ`褣fOl͖ʼn&woA~`5+0F 1d"fFSI/[pפtV"i4UH!R\~1;cy,Ӿ"]40P(΀N'?"`"VG?RN ̧EdEc t+" *=(̤kz~°E+٩Th3Į%лBF-ZL=7ۧB@D@[MhƪohxAFlh'6UfVpz |. mƪGG4Dt4=f|yn;ͬNNA;mUfVpz O^Ц![ifp pZD{ tdV#tY1V<~U,aˢ pv :YЙo㪾c @3 d4 RN7&'\P$N<ٮb}#'UŹ5)6~UM J }B'{>Yxյo|xu3}asd=4`*qqWf:%^ ˞-Z7 GʭE\E'Uv?K7*>}<&E\oUnkeV/%"!G2F]K,>ksF kyLJ>yeD;1 e1Ff568蝼 ߨ0Ffi򥖗EɮYq xszGGHY|bFYHh׷ "!EDRk&އfEg )˺vaHHs$:;XLCPPQ:3zo*(_$~pS# q4`ٻNX5_Uc``````y٧5Go tjrO\\sUyc0Kc4Чmw3P@Gsn008& Y#l'eVnXU]f*6&?M[PKe[De%% dk-mac.map.gznu[+e]Ys8~_/K3fDx~LTL)UntB4i *//&uw!v\MlUy.^2ee2񜆸D_ٗ8 WO`¢sr+b ODlbɔhTs|K"YVToj^_OD$$vۂ1wLo㫀F++}FW(ީk|^<~- *" Q"и;u"JIf{Vl]S LLTW\5Sj*0r($;u2"pU.x\\=:U.  E ׅRdkVQ,cU՞R4@4@h:-T (fmdͭ~lU;*L?V_009DWyEuU䙊W4e N&>CqM_[egg{G{{OG]Ŕ.O3SLrϟOVIa&̨ ؠ~NE_EmbTy'Frk)"uRw٦ +4_7\\=<%3f+aarƛڦao4)%:#>cl붙OF7MtD71"=n_ͷ˺}'JE[͇ '1_U[<#08'_4/I#z!jhp[_(??.AĭO\8 $1>tRIt:+|MLw$.R8\%i ߬AIAe=\Ao,ӡ"Н4:?(莀B 2cKLը|h,ӡ"Н4(莀>ϗ%;!UĐ62*S΄i|Gp!A^3@yML@w肅F t@wt\_oz&$IPN]h@tG@G/@de/ =}K*mR<;apo82NIJo .?$t|gOR8>; >Jsl"o&n{&$$t|gOR8[%Cɿ$@LҐLK `8ְՈVfk'd҈qZěuƾJD]"_]ʐvnW=֝E`v`v`)0N^2m 'a(hFW}\p$y&YCE;| (O54gM5!$l,ӡ":<ˀ xw`x \竵jmpM I^IP¥p&(Ҋ-mjv51$YIPĥp:(C_}0pM I~l,ӡ">KNdWL+A6{&}w$.R8^3Uo{B\ӛ,Do5f,4'ۤmAP*? F@EK2UŐxK;HpMI~$\ݳ Ih5*.n-؀ \J´7I,˿opM I޶IPĥpm|w| ^%Lbٞyo YSlu2 k 6/ a auR+pyy$vԊAau4JBÝ8 s SD62*I %QjSgW`L<pMI^IPN\Q%?bɪٺkbHkd R2d[ Fr7(ܹQW'MR1ܠsL -b`DJpc^%Xfkv7Ԭ竕d4γ|=PSvUS1=1(W>/iip:Y->w(rP(8bZ uŠ2 V%۴hMm{P1zϮtqfy4ʖ__dUz=l?/W:zf`f`~QFFɚyU8a1MLjd[x N{Q;؈MϔU۫y|,X`R23NO?EV]*D@U4( e=TO:M=R! "Ag.ĺ:z}NV]*D@U4(Le=TXoR_Vw;zoK%c9ubgR! "Ag&--2 o:z}~VsSwVѠ3ĖzP}AV S-vVѠ7P:<44*֙G]OKuS4gh<- |HtrMqg?_cxv}fUX.~C:NĈ3Q̐EiU)NZWsQsC *NpJ''Nڅ(xӅ![kfp c8'&0xuv_~\o 3ʨ(YoA|C q95 81I;'m 40dzͬNt tI;o:5dzͬNt tI"IXuȾhgB >G܍cV!wU)T8i]Q![kfp c8VDzl"BU)NZF{" tbV!"YN餕oߋ^yf_N%%>cmXVWr @p$.FS'7`B cVv2 2 [eX#c`a !XVkCMbC?ۮay!ǹX>'ßuh8AѨj"."`%7##DV;:k4v-".>9΄~)_1(Qa~aQezN3}mm}@OusY{# |ˮ!k@{`#5f>Czs[Q6a4?}Npa IoTgclR˼hq xcz ~^@@@1F#_)Oli&i7 "!IDңk!fg i/[aHHs$\Wb!((Q>?3znJR,XxR'dOF>aգ`ٹf`YB߲/_~"GED~u)EC=ppp\6EVXDy1(QAI ĵ0pq6:у ,F6v{pʪH7EX^lM. PKe[ jp-dvorak.map.gznu[+e[sHS}jMH6IfŅ Pϧ_FFqlUCDl !wtKΜ7-_} Et1 .p \-v2l9rK1Iݩ;<+*x2׸{(2=dڦIex3*e. xĠ/"ݒlC0&0]P9:<ƍhWΣvղe B9졸omFi^d5 `#ʕK+bC1$WQF ,nԽ3 aC1Xn¼g*`-7JLs'ҁ,pOC%ykCg{skQɖtz|D ]$ e96m$t]%x ^>^ߢэ@yqdDryۤI* ͐ `vBJvrJxsBԝ` XJ6r+&znӼf.o (Wʌ43Qɇb3^x߶XWmUo|.gU2\ eMaw-!ؔѵ,\R|#dd8ڟ״vbZٔѵ,\R|#dV0aMaW-!ٔѵ,\R|#dU^Ma+2vKjoD> ;CW[ޭi9,kX Q})kW YFS0 eԴX,۔ѵ,\R|#d(WL>KC[W|I_sE,oXnl d z&WHkVkC{ER<'8qdJW|"!+yqkG`;F=]q#vFzzu j_d:5-]D-K8zaSF׮|pI >ȧZq" i9,mX Qæ]%&g|O%C$AMab1w6et*7> ߈|*V+NB5-Z,CT۔ѵ,\R|#dX8F˚>:;jy4GjɨV<"_ro[,]TmUo|.T2Wp! 51v6ـo|.T2 D9hX QfSF׮|pI >ȧᢺ2ԴoX QjSF׮|pI >ȧzxUմX,mUo|.dSR pO>dx&ã]Gov4 <ɘ8/ (Ypk(/+x,.Nɮ{HkyF]bmt=s]ID~3L6Р]( s܋6et*7> ߈|*DeQM䒐1nS{vRzF\T2VuMxbŦ]%&g|O%jP(jþX,mSF׮|pI >ȧah.^5-[,CT/mUo|.dwok؛_6%c|8Ej0TɪzGI˰尯-!ٔѵ,\R|#dX$ yMa_Z,CTؔѵ,\R|#dQ"~lX Qצ]%&g|O%CkQNTNjo{[Uck_{Xo`3cFԛJt‹6M |8^ɽ]f5n 6b#dw(*ts&L01CzGiB.4 Vt†jkB@D@sz-w2yXnޢ2v=քfV۩?X" MjR;#WTuLwQF/7*M_ocMh6II[S..; v/8քfNU9UXެZn*͹N͏5! "٤&%cmUNUG[Nv1' :մQ݌Nth{C=M(NpNZtLF#v3 8!Vdq}2MӇ= c4ޞi&L0\s**R/]GJa=VMPi&r;FH#iY{O..k.uBA f{ǧQkFyaYD}b = Thg#{3VUdo{zVgC|$+PB6JOd~!]*vCt~] "=HZ;*ZYw1N 䉓Bz4Dj:~g1:RHtc)Qqٸ>WLoÏGGGƑÑÑ{*q[]܉G ĥTR奵up \j{}/t7l7}J5qv6q6L}Ά &2lgpFUj//jSw333333>,uN| ,X`=aK=Du)\9[4;gtd888888??E(?;(l>PKe[8pl-legacy.map.gznu[+eYs8S}jK>dvdxql)!`RbIU&EcW}}1~c2c_/^i|&>.p \/{dxBR$ !bogW1;kB[%M!6UXJ%nzv "(TP@R$R<bL]%F0+02R}e(HR>妒ZVE<. &0 L"U$<1@==RnL`ݺj*D$ ŋrTeqiynV訮,?Ie^g@QmTFQ>W|gbS_{S^ǻ}`+LjxI3ltW@"\>r.bywQ|ê3xwڱEul9$  ȯibOT)0<ò)\%dg^NzMqb}߭㬿`oUPwuGQwnnq<3:'bUԛ¨j9jB]MEeţrIԵڬ3ViY]6D]mכZ%#=nnTGQyT?ʛ,τ\d,ήSEK)nl14Pu !A$s䓯_5[I3T&Wk Kqr. >tsN#)C)=oAҌ dwYNѱ&΀'RLgO>r=D L5$vYNѱ&N.5%@t ,7T4A.):\|;" =.{G&"Ok颅螀t~o/Ob986?_n4Ļ.):IE螀t~~!BtH4< a/tY^…k gaᒂ\RfMx'.):).ř|;" #؄H.jf"h"7]St 3S\3c|;" Zbn12cV:6l LC+/x{"3V_\%Fgo"cjՇMijHrĘ,eAek &|;" L)AD}kcD ]St 3#.y)LghfѢZԓ ̀&br5w|ĥ89g:C=#m:'hZ'hGZ?wY_q)NΥ8#Pf|e0gufKƲ]?)eme$XӁ T2T-Bs1L7k h"_Wui:5 m0.p\ oTb@1HcMq)ήV|G3A,g.a6BI &w/)leQi;v>PgϤ%SWf,'j<ߗu{ojߔ ˒∹ j&Wxts/P}r WuE*@E\Qe(KjZőkan|&ml"=4@*[,y 5(\wu׷_G4f{FQoFQfghTZaFogfɟE]St 3#.ɹ'wD>oLfh4$e9Eǚ;>RKq|G3FKuTׄ}N t@1H貜cMq)NΥ8#Pό4ݏKk@.):IESM :=̌4zl_2fR?MD r5Awt43StO@g:*4Rzh>A]St 3 \C|3̷Z6$d q/R1s&Bl"tVjƏ/h"GgygZVcw,`9)R$hd˚=-<޳*/i 3ڎtL)Ʉ@dkp݉(V7m:9Γ$ lL'b,NMc#}sۦh3t7w_ f0یrPo# 0SkO_H䃵VРVMc#^_4UuA *'TMgG^z?1. vm~tqɷ`֓߮,D@tt򑠗~+4Ov =Z?W" YQZۨ-n'W2 lg6z\v>B@D@74J>rmxlTFoUjdsѮ,D@tL#.ۦYF &mB'WS;B@D@74J>bmxlk[*ufs]YfFG&]GdӼ-5=J|W" YQb4oK BF=J]bW" YQ+a44U7 ֮\E\}t\ӘHoVrVg(9$ wN;tVeQWت>K-UbWMܰ}OQ T@%P'dC3vgŜNNEˋv.~ܲDF,$p pj.@^ C$2`1'S8=Ssц$M͖W?70`6ԛimP&X|ב<ʟPysk2Ϯ>X*5K7Ub8#8#8#8#8#8#8#O|F -2;sj.p \5VV4?UHgj6 H 5n0pu5z *TGVޘUyA yi?MoꋸԛXO;PKe[eVhr-unicodeus.map.gznu[+e]K6W}k$;$9e "PBRc;~ $эD"]uy8O{we|i.2eq|<*,Ҭk|Uyv8M㴈7m|0/qTc%uSٽ"VĊXb5Z__k='YQ7yq4и>sW`d);mg5n,4tXxxLR2R~cG$Een4zCza:m ؘq+7.`l1bCl]bLBYbiXW3OzŵTDz@wР:;:J~3"O֡ܿq.2S PU}ZcY;ktgPН}1/PeNƇ~ZcY| )pi|GG|#jvsgr !=ib =+) f٨_a(U}YN6T.T{RY C(恾p3Q u}{Z*kpwhw̸܉f{hf.3U/Nhr[>@5U.: qi>;">J9樛(U/ԋ„Ƈ>vq-ձ,]>KL |wD| ʞjj!w; =+) fRU+OD #ՙ`JxQyG6iM>GՎ|]a; Aa8lx)Vݕv`v`^XQF}yIY94C PMQի.: qi>;">JyK:l6:Q}NۈTAU7]\Ku, tg. JgVLZ P/&TAUoX]@t'@GɏV@nVCٚ1յxE}@ƺX۲Ra0$J+~"]BW|A)$;;Yߒ?m!W~["@xhV~MԲ@֮&}HgSRS4NK>;">J [拙|XwW_p"տmQPt@T@E+2Ko2W7r[f2< PU"+\dmu.n [\}p) ӷZbClƝAwƇwq-ձ,]>KtF(oztW g-7do ЅԍMB;58pL2V5s#Y^1+TVlPJ %RIվk\Nb]6t#8M㴈7`M#,"arݝQ D(]Zq9yYw]߷; 2 Y* 7HIrf-ϫ8m"Fn%կV,Dxv ^{!6b !6v.od5Wxv~&}=3H3 1 &$JRze'g/9M>Yc3ΗK/8r;e٦Fk00%+O'+y3YIn!v,yɟJX\7~ywg/>{]``9,l|l [j&רooɫ>y36*!vvD1"FĈELkbQ^vIAMVrW/}Xk /AQ+q^e=d3&Ӗ/͖ArkSX!*$H Ad,V"\Qig"Z~#5Kpm1cګR"қ=RCra%C8ö!|-5Z>YT-]"8C8lhPPuix[7GH5ra/%C8ö1z]U׺=&қ#p{ m!a[DRk;e>Gɉ-&DppѠ3֮ZDn>GȖ {.!E4(̤kqL"}^A#Ԗ {]"8C8lhPbEP}aT3[.v-A9m&cճ^{hh#դ E[ KYuS !fhCE{7ϕ0Z|{PU(¨9i/ fꁵy#5n<[h5uK~~`v|QFu6q¿sV$7݊ejZ" 纻j=F Otƞ%ҽjL=p vavYW{?,ov97(b߭{Xgx6B,ͿT6:/0,)-튅h?J^TP5 O|?1U3|O} “]3һ1d.뺣} @$@#"`3 QF}yu/}dw :JC(y|]bj\'pm5/"/"'͉ںm,QNX (kx*~,P mz (/ڀrll:G A Ȥw6>"P@,ꇲ*]yʫMaOTdPKe[dgh-akan.map.gznu[+e[8SV!I3fғKnm/!bbt6{7<\8x_&Et= .p \-v2q6VN{|ԍ` XΊ55.Q|L vjnrnz<x=|"$˓M`#\\闕;[gUmc>oCfZt,vǾx&S墹E"pC(H}1f0 L`*7W*jΪE/t{qIv'mcy=Z ӀcccccccB eC= 6'ڕDh|FrR'z($wɒ~ l`;A][=n/z(rˏl`NhPΑɎ_.{(/LeZ>o$> ReJ~]xo?4#A!f&olc{=~{a|uŜHky=` XΊE%lIA(z6c:/xτW%ch}` a5rˏPnfz:-.mU$\|O%P$Y Ȱ小-!ٔѵ,\R|#dpjZ#-!6et*7> ߈|*.OnMaYbM]JM%57"JkZ+Z,CTؔѵ,\R|#dTp) 5-=X,cSF׮|pI >ȧ[%C7|ԴvhX Q)kW YFSЫ~@_ִWT>7Bȧaj.֪~MaեM]JM%57"Jj\@kZiX QlUo|.T2T+>O6et*7> ߈|*V+ ^6,\R|#d8'Wɞ9f0?liN \ge\:K%:syuM- !_mUo|.T2TЉd\rضb1Dʦ]%&g|O%å7oaE=]tϥf>|#UПd膼r{(/zH2>܉҂l[ ^LxU2vD2XCrI'Y|5ngan胈ڊd!M%3큽^`/؋By?WwM4K5FgnaӲ&ܜbo`՛q(ׇQMX,kSF׮|pI >ȧ\q䊇; F4+Eb1Do2v;>%9)FSP8P򽚖 2vKjoD> KkZbӦ]%&g|O%Cbۭi9lbznSF׮|pI >ȧJn"}b72vKjoD*7.$>/W\Yڦd̞wdaL`!U+z\~PgvbYJ6L6|5G "=ys\>,I]n3$knhЀiT+nscK%W,v-ɋES>@^d*X[rڥ _\>la|~ f0Q5ٶk/u2o7_zfLY ؈=jl5/lUÄ &/hdL]9?,OZ3bE_^ZmۙcMh6UrN$]&_uR;/˗hhLs5! "٤&%brE6e-Zԟw &5)镅r:jzk(/*M_ocMh6II[S>+]˗4J3۩X" MjR+VTufj݆Vivo~ &5)kr:cezN|^C4C 5! "٤&%2iE?"魙[F/_*ͅN-5! "٤&%BlE?"魙V|AC4z;<քf v@9W]'ez~~54oh3;0&{+".WMfz%oT2,ۻ H@T%W4]YWwdf~Kn Y^vUDy>i ;N`'7 yA߇BM3nFp:SuҺ]]h(xnFp:Suz]]j(xnFp:Su:,'6ut f0Q7 ״QnFp:SuI 4m[Nv1' :մQ݌Nth{C=M(NpNZtLF#v3 8!V?9aOاyԛ\\9 -鍡˗6Jq̣ފ'U6>]AY2=zSECk;0&{+".Ό6vo{MPy%i&o c9\lD$D:Hk^KqIL}q~6+zh}# œGm/b_7xM Thg#5Tȏɫ4cٶa x/Y]>'Y Pi{Kvҥbu "!YDfRw^1TtʲqX$9J.JCԨQO>DX-%Wot2&ݺ-)&uCm%nJی#######򅏈p"n||HJ,skKWtbiת_m2(YjmJ(lpހt_00v6_Ä &̑M-;'e,Xc뇼Ȓm~m?$;?PKe[3^+ es.map.gznu[+e]Ys6~ϯV}I63q=^\$\Sȯ_K(RccK_F_HxǾ.bWϟpǾŜ]xxS=۟cu|}D Wcߌee4 D&iKbU"NVVl̾y$>KmV(ↈB@I&H8jEjKgZ?|\5'";7*YLeKpp1 hI2!$Na-bWe*Yk#0#0~jX"&%yWiYTXy-Vgm:M *ԅq"Nĉ8'z}D`"bM=OVI:uj6(.ȷ/E"˥>=u 詫x/,.^Le+YxU+D>YUgxKON#Ӄa~M bu"pA޻$P%qΙ |wD|z0+څ7eK9B[8$u$ 9v[{ŷ 3 w (/ُ)w.Zsoj*-J6]uE\\լ̪}N7@K%h Z-5_r&p";;wz+D6((Q5jEXlW"XzL-..*:T3'qIX>;">=Qx[,6Ώ꭪k]r咬CE;ux VFPЅ2?r5ZvIVѡ">K✏N#Ӄ^)%nWCA]pA.]Ut|gO8=o|`WM>Cg"{õ>%YEw.8OjX, zhO.?(|gO89.`Y3o{ډh/x؂.?"wI%I@uX*:*=xof0N0I ]z"U;EPpwnl\}p ɓRVyK \V|GCx 9oHNb,N׵^WiVKʣgY.wiNahڡ;{@;OD8QYJVe5O"vG͝n X0KX@J"$NSԷ|m`4 3" 4{pC04 BTc#1= ?{֙ %9P c+,7 '||ZM⚕6TҳGMb 'TzE/;Df Xõy咬CE;itaP=:=U4n0#/%?%YEw |wD|j0X&/Jvw.IÐ1I,[0K 4çyGQ+';uʹX.ŧ*"/V  }92D3yBS'EŶPfYsM92fD*T-ώ~ ʛj*-ʎM7t+bVQt ;Lw;A  kƑw;_wONa3030?M/kE^8C c&uqЃY͹^VUr3 }TߺЯ2{H #z03//:"gG&Zk[{TpphT~BǍ9iVwVNg^jtopsdSTppht31/mC+s{.!*)L˦zfY9BC+s{.!*)L˦zfQsYmJvl깽.!*)˦zfaСs{]*8C8USIYwo {saVSSMwVNg][dݽ 6O#:znoKpJwi;y髾 EAظ珆Zz#@krk~~ug3~]/ib!C 3G tES;,ʯ`7YU.vU5wX: @EãJuhbVJ(¨>i}:iSC[J`FaT3Jxՙ![ y-f%0 0OڐNګuRqZoNa3030?M/k7[H w堷(¨>itF![ y-f%0 0O cJxձ![ y-f%0 0O)/sIx7V.oyx;ߌ:G 7P-f%0 0NNZ^7d+!ŬFaFI+h![ y-f%0 0OZF{D :2d+!ŬFaFI+hϽ,վ  =( o㪾p @Gh,ӧ1'$R3IUy\bۊ9'1oJ׬$!mF2(bBL 1=Ū..}; |c'ZzYhd `3ӶA fa GrZF[ :7* g#5)r~ݬ⼳>Py_fE)7xtTH NؓѻlQI^V]=]l;>d7+۾nNÍы79=?{]|^!Allwf_jy|Y]rwa1- ~^UA@@1z#_-Oli'YnhxzLfg )taRHH9='Xh!((Q>?3z+H_,s('T^_ygW_I[ Vt-K[*_6Z-AE"hGn}s"~}QsKf(p \\=1W?Hgj6iRgGtmqq6q6a G` Ȭ1{e8p1CUꦺuuhu#PKe[J chu-101_qwertz_dot_dead.map.gznu[+e]Ys8~_oarifvl<3{x@6הϯ_8I%ǖ 4v&E-_bW~eq o8\VWG x:ıb EJZM< 8M㴈7KU׸WCZe}d)|uʽۆzB@a#l_Zk-EqX䫋Uv +4n/`>o%Qvj:ӹU@x2Dk@5)LlS~+lC̈1#fČoZk+DQ`{do q.P \\5Psr'0ML&,w*5"f0LLuUU2WV$hX1]_%ͣL4UI>ONO"jFCXVe7}ڬdh:  )3f*g$M\%SJTTHo:,*c %"͓-~' 00Ք LT 36xSIT`ȀZZ7f`f`>̔.>{iM|17Q4P;I%ևPa,;DzSip -h=F+6u@-JfNfiw,I,l:DS@gNh]@gJF|[uqXg4>V^^=h=?s~h0gV` m$Kj I\ 'ǥp%C&%h>}ɞXbnZKjyF t@(/y 0Ěx.:VFy%W3RXdIT dwʏ? b!nKdSC>5%GR+ީs oxw1GUy_GcN6FO6]ʑOn.-GO(;;{HɞՠGu2pJ_nJŮtpM‘UR+SN%CZ)"w,;U-׸KjIX eM ^1]E\U<Ȝh8mR+s-uet} 0$J+>|..K;8D|z-ȏ[5jo"@ DG.z%/ jr /#Cro>KN#d䫷OWlN?A%mkp)< q p#pQ2+|J$o`~6z;5$EpfENu ׍`.>s[8>p pIwI-ձ">Ky_Q#d~3]1hm&y0!]`zށ+јvӋŤW$1R@ҤYoC9zN' v;%"x̉nm2̟u;tq0wm}=Z,qP2+[.oEy4+9܋UT; hͬ&4ahP23 &Hvpe[r]biADiߣo|1`;?lԘ zkϯis (cX[5$ .SDI˥ +4KL<M&߭@@$)9*9J,9i?6\%{@escs]ߔB]m}WB=. J6J66Zu6m762]mbsaYLۇu" 08ztq6y4J_>^}dU׫7 <%kUV8߃N@= t5vk.lId>dio"{>o  Us2ؕŜNӪkޮ&8C8l7AsrIXۯÙjl]MppnAgP57vP+ׇ3iUcs{ή&8C8l7Ѡ36Phx=ׇ;iUks{&8C8l7Ѡ3PcbY>\UyDC2nu&e>\UDXC2nu{}NOb v5!a%44 ֱk=tW!hPbs~L`T>\U3ۛjC8v i3y XǭGC~ObX4[~~i0@nbfWc D'h<˄M[Ž?딯.]VaŶ# 8 phXb= ~ U*4Vk0 0J'-Nک(xש! aPU((8ig]g*AV0ztҺ⤽DU mݗ?5`f`(Y˽\Qp'! q9Tk0 0J'/NZOgȭBxTk0 0J'm NZ_oȭBxTk0 0J'TD]nWg U=*`FaTӉ8imQ! aPU((# 1V!< CVўwrZ!I+hٟ{} :@aY]u8 @ t17w"r Yj|2 2 aMՏeǗգӃ1!&ĄK.V?u1,[D zZkYBcѨn_G, _W06 #qJO{ZTh,Uݭ hz0[z|PNq6~<,zfj" ×=F OtžgjL=p vav^T{? ov9 7(b߭{g6B;`;V6y]rSwa)-mo?JVT ߁ĖC {Ot}ޭ!_1c GBɅ?z#f53d낅%Bti䦝ll< h۬p%|V#%<ׄ.an:&r)9zJ[rxŀ2.pu*M.dx5=@c-)xrQT4tbU*eL8!uN.E|%n7ʅȅ`9:eki.pY@sT涔Sa*WŦ.\2)hluIHGaսL~>k*'j1qI6Ƥؐ*E""/x*RIV&eNkܓ/8& :Ёt'So.b19@cnFAd.pce x& ԬlG4V6 lG\Lv'Ð6^Wb}he-.p \t2 RҎe7=UH3lllllll 5SK=~215x6|Ox-d`t/Yɵv>|6lv1zE*\?}(@iA'-(5IM6N$Y[輸3ɘ-^ر'qa=2@r4IICڲhYgIOf?~?Ȣ? :"/k xS\%{mzs1'UuN,ϊE'pG4JO^ۢ";03 !_$Inhs0y~0:6?Sh)_IHM8 >4i_tϚn:Q#'OT[dQ_&Ns!KU7>%9Dq|dd8:ҥYMK߀|:*F2aW!4i_|#spI|O'@%@@D&!W.jW$L" > ȧa3s O.jWݳt{:NPfdG!.jW\RP0O Rk뾪ygJvalgWIfYX<A=;+b>z[nܕ ȧ\I<.!S8կ.jW$L= > ȧ~wx^T)⑅UbܥYMrp|dNhR?W"N;ݤ$]]g@8c=FcX8{9dU$i<'J2\:aP~ߙSUN-mQ5oe[$]Z}A_З'aVFbJg՗?]մ 9> ȧ^Y*g $$'0]4p=#.#t2S+=g%];f5o|.|dVzFbtþwH,Ҭ}U%uo@> Jϙ/2V!.jW\RSpߍ%Ow}od~ń.M<~`,RPuRﮊ"q{o!4i_|#spI|O'CHKf:a_;$CT4i_|#spI|O'C*4atH,Ҭ}U%uo@> CF9R:Njۼn{/ūVi`ӌrRo:Y/x7}1Dr!]mW?:- 6b#`3_e}@"Gu23^=K*rralI jgB@D@ۤ]ͮP7Ң?k[J4ԟτIJ:#uI1GMf -V) 6AIgF.ml*дS>" &=( e3T=XlbԴS}&D@MzPҙbfzIlb̴S}&D@MzPkfzlabbdکh mtfҒ"mDo0lJqnک>" &=( %EP[3! "m҃r&4c7~Bb6WCـy4v{t\=L_k>UH t >1ǂ$ ITr茦,8.]| 뢼'rU5)fu\= t@'Љ xA?"CUeͬNNEv zЭGlfp p/ڀ_ ^CnԍgVwg3S8=Su'yA *xfVpz hnO>}V?w,n0jJ̣mE\EܣD߮`<,L}}Ūf"."q`&_5AO*[qgW8omc6Ac|Oob%"!3d.f=IR/{;_jw|ʮʷ#ڡ# <0(_ľ٤ƻW&umşTW#{5^eQd4u؄=YDRk!fCg )Z:9$ N i5}"\\5\6'čEFU"$˒L6KU'\+!^U2ה:^mC}! l6FZk+reI\*7s!fI_}ҩ [Շ&`&`jMt %̗Mbw2a·*zS="%{2FU53+EBi^ӗu<ȋ.:V3qizM3>;*>JRDzH8wLZNPKj)XL Y1]E|U>Ȝ8'|(Kj NydH+HW|C&t7U&BKIeܱ>ueC0$J+>z./Oo:8D~Rx-VrKՂ@#@ ]JP}i͗q^nG?vIHw.8R*jmL6[c;aK% x4>kGdfVąz7'<($r*^bXpw?߂Ϳ Ro$*[> ZcE;| |GG| g2r;*EǥѰ!]`1%3SokWl1oIVYJESa3shZOϝNh?vJ|E `*;}E-jnV1z`5`j@,>sti&zKȮ\& dy%ɸ)K~" jo-%_3=REEdqM.a$(|6N]1x8pP2jJZ1%(ʃsD}8aۜ;} )W@H5l 4J:ν2qE~[Z uSc@>3QCDo@c6o8w~HUz' zkϯiS(Fd.H]nkjS˥ P+̒"m6߭@@$)9:9*,=i?\{@UnnJT7޾kϞmXXN %O'yy y6~yj@f:w}@a= XK |%m:[[}Zf`f`~^j5_A"qA'CL5o] [sp2 }T4Wu~[$w` YJ|Ϊٵź%?ޮ&8C8l7AǗnSn467i5DϜCĺQެUyDؼlCbi9IOf}w5!a%x UǺ=&֝5ޛwzZ5^ M4(Lf:1ޤ6j6۹pW!hPkPucb=Ӫn]MppnAg&][d빍VNvno M4( K~Lb=T9U3ۛjC8v ʩ<ЌUzB7UVV_}_|&/*d>EG1}HGbKg4]%eR|-^MWJWծf}K@A8]4?E*^TI C֕'TԒ[0*`FaNZO3Y3KnàZQ=Q:i}y^mu' mݗ?5`f`(Y|Yp'% y9Tk0 0J'm(O@k`ɭBzTk0 0J'm$OPkhɭBzTk0 0J'T/TMnWȂq,U=*`FaԜӉm\j}  @D]K79X*i"W%Ż[7rVU)~l5p$5:pp TS2۶8ťkom7m?iլ ¢U KYnwŷ6y"̀=ƍk+VUw+/>گ΄X2(Ra}?yUv^5}}m}^2N>7U1Jxd.-[c,)N ǵkyޣiey۷3iFf8: _F0Rˢwɢ0,SZ ~ZUA@@F#_-Ol $<5SYAv.;0 $@$8J. ֫bU77렠Gx}XGd]G }蟐>]`ҫ-'NmZ= 2.puȶ/ x^,ORSuX|Mŷtb#M.|yl,K"ݮl*&;XZǀî&5oPs5k\L4'>êk!zMa3f`3+/ozIUeiRj Iv[otMa ۔uf>N ^EGa%(Ay4Tc۔?E; { V/;[3'OⅆOf vWy!v1 x-mQc5FQc՘/v~@OS6v<ﰪ67KSȻ<wFr[h^'uvI5[W/x #X-Ա{q07&9MBycMhN0ڿ?;A9̃`r>I1I@7H[ $@MTDG#F3ovH;ejjEqNe8qg81HX=ORDBP)bx#px Na@=S6c,):$OMZh_tGMt{:Aܳ_D4Ԉn[G#SvH*e5i}U 23mg8%hM?_'|CR(OV+WQSK :=w~O8֨CR(IRt@ǝ_h_P?Q?M/ CsLg?7i߻ ܾES 'w# Ǎ0pA(_% yS&V .9XN|1n(_Л9ET >6i}U pι34 z6d.e8ӑǝ!t -06 AYV+Wޱ,x;0wvӈƦF/̧0e8ǝ!Ոt CR1(;mjEqNΐG$ēwCR1(Io|e8%ǝ6areOM=pJ. >;C&ȼIsSk} !:{vd/ TGA%Tw^v훑 'Lo:$_tEIFvh_n`/;a^sǬÒZvH*eZѾ*78ǝDaG,&4'B-ѿ,͗Z7 vb;ȣ>,LiVb)T^U:TזKm^ly@+j& j5ዋO^Ye,\$UKʛ?@MeU"BMϤHTw@UPTUAU*|#.E0Sn 6Ս<*qV/)iZRM; w6ly@M+󍸕YyElV7^6 w:fO U}+Yݝ|y+6efƌ`L\4X$"E:B2^~!$iUޯ70`~Q;kem cלɉjMXE=Y@lF.x}S "D!>ȝԯSM'r -V׵+LX7F9_ծ *c]2! "`čR~x*ӼY Uj -V#] wnF) <I"jȵK." M(sUSci"jصK." M(bUScCV[X8rh &nӪ1_E(lqڥ." M(I#Aڢjĉk&LX7q_[dnގʧB-V#N]7eB@DD}i':Nj >IvykY))>i϶H,mUޯ70`~Q;k-҉ 9z-їbNtN6։<4vZ#t%p p'X#CG^KtbNtN|n2yھ]]# :7n|Nknޝj >ړv6Љ<4pZ#t%p p'-u" j >IKo=C=G%:BgZp|z]K|a XS_,O69Á (PIHx~D/=YE<%^Ò6ޣV%97BP-T :jELM '3u0ڢqՈP]VE\}p\nz:!3\AN6=i0[@ytv5[qqmc=|% y9߯"򤘟edZ >cmc兙Xup{#9K{/eH ~ ufSvqY!yD0iEAp7lO_H +Ld=s>SN'!T ݚ\2y%g6= J{!F(տw) 'M ^E l`{@wvhV0|ok(r{=r>@|%e/Ϙ9 ѶKӒ$u.o{؏ƨ1jO|ss^J"_WZPaMg.M}'@*PɝZ,E%$M>M 5 ^Hx3~Kf[7uA#ÍIN|$cZ#&SGG3(Io$fY O$-  v*cMGҏ-} GS޵W(: i.) 'w@> '3$#95sT-޴YCM5][JЁ'@ش܌&&& Sh*ڬFѡ&莚.,%@tҵg;H#Gqu48Ubh[(: i.) 'w@> }N5/Oix[=ڬFѡ&莚.ZJЁ lb\$7GS1jj ᜧ|; w}!툤7>%#s3Oiƕ6=x#:A7GS޵G(: .9YN|4O?Ni/\vGS1xf55w|p΅ǝ`K yF^3ҫ(T -~lE;>e8%ǝ6hh~nk&S i.) 'w@> jFO"GXT v6[m?od(ҁ T{~gdV{!)pӣZB"Y݊LVqP`;a^/"ebhjj4lpw> zMDJl)h*^)VY/5`{g#OwD@LiVb)h;)tTۼ-׺Z7y%sQ5AMPX2/N>GJ$),ztWa䓎hE,AN[KjZ;C;oWÉGux~Jbba>h*YCM5]<#q3 Q@sS 3T-^YCM5')AGoj;?ꍸg=ůmVP|'el|3Lf-g/)z6r`zLEL`& 5gأQ<3W+i&~g; w6ly@"Z7ۼVoEzժ;r2 w:fO 2% 4RTV4ݩΨQVv' H@"q'a.N1뿼|YV'Ug~`ӌWoY/bv!q7zov*o/ TPB}D;c9ܯr[/ťٹqG+۲eH=]b5ՙN:rK,D@lfq#eSu7.\o#ר/۲ōR EE;D:qFBz58}86vJڋvEP" PbNtNoCJ䡡c7[))_Gߖ/TY^$^:|{""q$u9{oŢi?8<~~Y]]W;?h0saV$}c;͹/yk$HS\jk2yվ$ Ϗ陯n_Nxy]ir&?!B ߱c "m]Sқ1d9e!ǂ$ y$ܹ_^HCHHӓs})EKMK(D(y6խQu:O`_{enS%vۍ3333333gNOYm&xٚ3T{p \ќ*meciNkoӻ~@Rn ALl9WWéo0*TPXuzcC 3~("[_gIy)7X3PKe[1TTus-dvorak-l.map.gznu[+e[8S=|y؇ܼ3;l6=3{y郱fp'=~ 08 R%UDPܑ]xȯ&qw!Jʹ՛< )›ep \j\方'`ŪZWYݑ"!B S3 NpqVԓt)׆*YY-.ݩCj7 wylk_\VyC{]^J^1y\x$y޻E@ȪG'&5]&CM3vU7> \8p:?צEb!DiFӮ*Fg:7 _ gU.\ ՚(΢n5)^0;^iaw Ƒ1`UW2QM[f4o|.|UpQP05m'B֧M{ܲge:uZ0?z>痝,'إ IiY{>o >  =❡1mF[,M`# UKQĜq3]U}&*ۃ8 4ex! c!.qH2yv,JNvq&rU&f7 sd^79b}k9"8Ikfey?mѴ sN Np>!NLՂWTZqYz$iNy/yu YrbOP= *߭@TV".jt"M3vU7> 'U2 dPecbwf4o|.|dTP\nMݲf4o|.|dV^MյM3vU7> T2<65]vK[$CTiFӮ*Fg:7 J*bh9_wp 5<4y4*)bh2_yg.ait֏A],T+~1^]Dd_L`*YdGuWgh#x 1t'XgŢ ]s&j"1@;v7*Ob7jԨWWqf14_,Ҍ|.v^^aj~1zՇmj"`ŦMK߀|*V+ܦbʼnt-jX QiFӮ*Fg:7 Jj/ .[$CTmѴ Y> ȧ_=@~M݊o6hU,\RS0 "ckY/EO6 _Y> ȧJ~Pe%-!76hU,\RSɰzTwjH,^4iW|#pI|O%H35]vEb1D_f4o|.|dk^ $V|%O6]`/WT342'D8Hu|O%CG$U3m XM}P,"piL%l`4 F<Ѩ6(QTWbAydhr&.O iYS\x1^xxՇq,͌˯m'w\^UBXs CBxL ^%Z1h0':SϮ- !4iW|#pI|O%Ck&n&tm"M3vU7> T2Vpͦ"cOkv"æMK߀|*\"S.}jX Q˦MK߀|*.? HM-!_mѴ Y> W%`R%Å\գyM %ISQ0rC^tƼEn'&$/ Ydʵ|8Cc$YʥC}fT2+ `vA%;kQTAwǤ#'U\_o`34M%kz6M 3k^;pZŪ]@lFAcN`}Udۛit"D1v.˩魉^n*E_S)" &5)xr:E|*@S)" &5)br:IZn`TSS&D@4MjR;֖Tuc%zN|*řnfLhԤw&-%ޚer纝2! "iR!jzkG*7?hJq۩)" &5)rO(J2'\ӍGhmfp }8U'O/hׅ(NpNZUQH^7Zϕf0O3JTfyAn㠵Q)TS~]M7 Q)T3~NyAN5(xfFpڇSuIbw:=!ڨɷuhQ(NpZ ?i]^Ю(NpNZ tZiNI+~ўvhQ͌Nh'Y@zݾ cm7b(P@a4('q-dKM,MnVat'a~+ =یɸ M^ m(1& c˜0yLÊ=qRt[qj2ѷ+h SG_@*=oVa\[qdv&AH` yXa0ilOMPyi& S]D$DzƑE%KD¹c'ajg3C-(k0'Y oPi@v=Rl׵"!ҳTͮxқ=ceᒾ  Hs\7XQ_]އǜXʗ ,%ڣ3j>d#U9[4QL%K[*qn|DʼnxD>.U%/^Z-]= \WݫBƻig5y(GPȍcߴaav6"DZ6v.|:$H }ym~W&?-CPKe[{Ō6hu-101_qwerty_dot_dead.map.gznu[+e]Ks8ϯ}kķtC^d6>..l%Q!; '\[vpzxҜ5DI6W# 'A8\"bs|Ǡ ȿt0EaSB@!L(!!M|DM|#bk|)򦋴Tw i\ |wD| 'UIuҒ\A]RKuWN]@tw2s@ #EC%Tw )\ĥq'C&(r;rh˜oZpE%Twq3+^"[=q"3]RKuWN]@tY!<+"?K@Gh"5~I8S ftӤ^*c1?":<f`fxǃI00?F&jDXfa55.y%Tw#ӆ7<;w;a#; Ӈ"l;l˕#D.D] pQv`v`^\AAAϏd"4WTK|:ȋ.|gO8f|wT| y6 8;U-׸PKj*ީS4L'Ab$Ի+=8PuRU38e|GɐWLC&|:7e&K""NDşeWƺD۲\a D`r?jE_Z 3N!vV6^oj_î6Z | t#)DEѬ ՗|r>2K S4NK>;">NK~[1l)fBle#.iSs' NƣYp='3".ԻL ,ެw\A_ċ(xv pl] '0 'Q14\C]RKuW¥qʼ)q24z %pf4hu}.0=sLxΘӳdoV$ R@ѴY@9zN3v;'"z,goom2̟M;tq۴ wm8zId"W\f %,y0 NEji!> h@Cmf-5 K "yGm"%rSi\' b0$Q361={4txPDTev숡sW`V 4Ig>AviYm<1ؒ+"MqJh-gP->|LHmff_}?ys4V?C6)wp VS hJ8N-ccJ*Dln"o2{3@fK@!'G3<԰AhQ[[vp{kj!6urؿ!}aч@$l߂54aƬ;"=R`O @&W497#2mH]+jSRc3 )kQVYb%GM|! 䨰lL~ɏ,Vy)Q\7yWoߵg϶ ,,' &X7oCMtCr۟3dVx_}a 0(ϻ Wz^e 'Uoa3030?M/Z y1p'C1oc sp3 }TVSk75!a PqOavip&rf֍j&=vip&re=TkzZ5Ҟ M<(z:1^ӪnmMppnA)g]CձnFe>|U.ۚăRXc39VFvmkC8vJ93R"XϭׇjvlK{mMppnA)g][dɧB=d[!xPXuW(z~^> {Z5lƢU ˃YuB_tC9rZ~sQ_JmF 1!&ĄsL|jqK΂E>Uc+4V_}_̴mYTzjܸBcѪn_5׃? w*Q}uEz,y>|Bo jQ<'kt5{oŬڥx-8 vavYV{?/-ov9 7(b,S{Xg|:D;`-T62/0,cZۑ ~^@@@F\A,ObLSo>O'ɌwR2\uQ @$@̑prO^LCPP}|f>^|Y>OH/r0gŴ-u%n-دE_Eyߜ-_gZdN>xٲ+p \\5WE1~,P< mz (Ϡtmqu68Ά=X`=2kec灻̃3~("[ޔqy.lT+PKe[B' ro-std.map.gznu[+e[s6)>$vvtӸ^^<\SBRIO@H'3!p.GDqm<y.~񪈣-9>{CG\d*q4 <ŊD2IJClӆ6B 4ZZ6 l'XX,qqgSRvXEd)BTnP1!1!q)<ޭoSyO?5 Kݦ*80Yǡ>K$!Z#16mlsiiwP >|=X8p9xY]H-c))XŪUE yx"_f2қ_m:˚0"GY,`0  u0S~2##۴#:6EJ6k ^LxU,X<\ψ.6+sf$wL)I\%d09#te#`Jbm0M"o_F9٤`+X#Vl=l2%Ypl{/gE?9:808uDn}7[D$'ERT һ͊EUdu` d+xDU1f3 WOC*ISkт9"v{M娾\ u0\HJ(~FqL>e{[/xτWcKhy`};~Џ^Ltj|ϼ .]մ 9>ȧTéۧٿ\մ 9>ȧLɘ2HDޥYM۪K_|:'/.Ïcpz55H̺ҬmU %uG> ϴ|⏕2  .jVYӍGt{:o6udteXzW̃")HAR\Վ "nCP|t".vb9բzg5fى%fyv!|du3`;ZU{#L#G|x 5O1 =]t$pD¥YM۪K_|:QMX+v+Gz~ 1"viVӶ*'_|:Qw5y")U|ʥYM۪Kr|=`wDMdOn$Cd f5mo|.|=`w}=]vkҬmU %uG> ՎL@^Bsϳ] |spI|OC'_'rKgpiO[uF\ \'p`vM_{ |h ҬmU %uG> ;tbs/|kf5mo|Krz>2 >ȧ|E>c[  jev N,6\5j84ƙq1Ղ3`T\726+(=~e%Y-k ̑s1Ղt }Gx1DN_hGE$qǻum9ssGGVW&4VQL{FQ`F(1t}ܖH3ՋA!=x\oW~E24*-=5?\^cb#>Ǿ9Fc݈4=]vAbD_f5mo|.|=`ߩ%vg{Ab>Dof5mo|.|=`w0G25\fS 1"tiVӶ*Κ. %@ t:OSԑdO>6ḢtiVӶ*:#zǓT1um 1"{ҬmU %uG> *ʧ=]v4Ḣ~siVӶ*:# c՞~Ma̮K>|s&#TȏlZ\+wk `3M/Zށ"-q 'T>rg4/;jE-7|wbw^yu?@"gu0w._@o+?X#ԪR;TpvZz¯BH`VSDU!¡]%rAOkj^p *(靄jzzy?WG8bhS{*8C8w-ZZ)zjo| *(bjzQZ_S+ʼnYOMU!¡]%cmQ-Uϸt󆬳]R$/]QI,!cA` ~M J^W77.''Э{hlf%0 ]'mO9Oh׹[ J`F0Oڐ׻eGqDjkf0ߦN`-: JAc3+Q¨>i'vpͬFa vubV=46.vOhWV١oߜ/>'ԌgV—wc3+Q¨:ig#~<]}C(vaT'k`V=46.V= :2t+Y hFI+~Ѿd&`:iM=l,EZ_=ٯ^C- CǴЗAЇSjjl,EZ_=ٯZވs&H|8enkoIQtTu}OgX]tkr[IH/[v]׮q6g%w/۱nÍ6+=~w} AldO&KyrvʺI`Ӳ>=qMA2d_!3V#M_?]>OgIx~ӫMIr-}d Gyᔾ  Hs\7XNCȑ/7wFo]A˜DF̒zYC mmJdK^-0#f3<cRZ_ tִN.p \ q 5EZ#E:X o3"@W? 8{ggl~E"D{h, I aI?el(LrPKe[5' aa pt-mac.map.gznu[+e[w8S}Ϟcn3d|gͥ(jj=Zf0+D8Y׌ԫ2":SzuaqJYY%E94!WhrW8 8 8 8 8 8 8 "ujje&v4=_$!!!OO +vurAьQbVt=pxf9U;>ť8gCb'O3L۱Y]Th"mSu cSX&g<3;c2rt=!6˩: ).ř4'G>3 zEX. Iz`Om?x\s)No|f0+iOk}b m?o6k@uTa@PKe^V" oPh"Uj:5 Mp \\3o$ MĐ}Tj$l>3o0y#4Yy(uQYM&zETWH`V 5d\[ {a/셽zڽ̏_$/LM'3D$,#/z{ eW?wk @+ bϭ0?|eu"=t@^IEԣ' ]oYoy#"HtCD$)K"gUjCM0ckV0 `i%&WD4p.oŷMD$J׬l1݆ =yhA gHjWN!,oI4XңRiCM5]hJЁtf+&m8ѸaG^B|PK&"HGTj颱@g?ΗO) 3N{4AmSu +8%@w:3ocvVz4C_,P|'¥lo|z07ԻsGR[D'ʙ, gR,-%`C`V4(WhD23)KI-ȋՎK>oO|f0`H}3')[VfEwND3F~*D$>WBUeU*)ʎ0t)rVUo=hFha~4BFzک |//?:Ϳo?oo:K f0?(;fkU^c;͜ uc.n̚oUzvtv>M]/ TPB=jc>#kVgURoT߶"D@tt~JFMaӎRܟ") sUmTTn`Q.mENgb7]3RiQGRC ! "[d:%xtUϺ<6?k7[u*5˹h[" ESbMWcgBTco+B@D@tJ>c骞uylk7[t*ubsmENg&Kdӽ-5Jt[" ESbtoK ]f Rro")b@W}Q o ;J £^k:3 zISgj")<lYIĮfeuEl3Ki:FhCpz %whbNJ)©9i}:i]$)©9i:ig]g$)©9iC:i/󺌓zCvW߭70`~Qv l!%c}\՗r 0`q 7wUu4f(F~r'7UWY%yUf%N-l4Fh4~6?5Hwv[ߛ^_lᤣTgWRE\}t\әI+KӌYkO;Ju߮ p'fSvu]#yeE0EFUt7lw_WHH+|yK1$ y$fpwLCHHӓu"D*m%kL[Kj.p \=5W??Hfj4nR'Gۀt7ll8:&B Uk4}hРA{U]f,:?h 3HŒcKM?0Hx#lWϟp#$y*μ)V.މ*<.p \=//Q)ᓘϔy_֎d,`Qؾ&0}D8h~,զJU>U[]APE]66PAbN"QBw5E]F0߁+Cb"1O\+O\䛂4_.}pi0 L`uWM_QTL=X&[(bv{[Q$b]g7&0ջm_51}XH U|yI%YlVQmY*n}&eNg@QmTFQXm{{##/Tblͣ;WB=|߁l_83}xbIyʥȮ+ӟWʛ}f l`2xtv4ȟu;vH ۛ`>%#s3Oiƕ6=xC:A7GS޵G(: .Ù-'w@> #gH?Ni/\S~pۣZoE;>e8Sa9qgh>͕ieŢeFs6 ϋ8h%w>8 ^G˝"MDS')W2յZ{Ofmݹ}2\6jSۅ9vգ &v^һ!!!OO 3zy=A$䭄'=pxf55w|p&ǝ!π [`^В/{4C6Qt \SrN|Qc=w5raGMu(: .Ù,'w@> yFj)t%Yh*mVP|'g gZN|4gWQuգZf55w|pJ. >;C;#m<$=_C>rM6?$\SrN|oՌ[XCZ&goXyv۬%Y:"0'y .7rf^07=/$խ(xC}p~} y:yC|j٣ZmE;>e8>d>;Ù^c f2ɦz|3_ 1WU|M-`;ޙc;p;{B'$+jƃ Hm^k]|y\5AMP;քo.K,ϓ*!o$˨U"Uҗe?Pwk @-P vq-*HO3u_EOzΣfy!xlS>|ҟjw߾,`QpgF $|K(\ZuUn[FC1`cNDDXʊ;q#*3s]0W\d H@:Y$BEz)79b6*]~$>_U߯70`~Q;k9Ųv_ ]ȅk܍[E=]AlF.G˷yr*TPQX=VKq~tv.`ґk߶,D@lfF9#AzWȅXufӎ\ҟ- Y(sTͪ? [05jK,D@lfq#qvTZGpԑk͗mYF)GΝMsYguz \FnmB@Df7J9Rnxj0oFx[" 6QkuScV^oaБkԉ/Me! "`3t.y;j- ;r:u,D@lfq##27oG BFFl[" 6QN+V/wGgW{.".>8.7f9͊ YEѲcAڋv:֧D;v# >EhCn$X#S8݇Sh%Бc7[))_{<~7zt,@) o㲺p`G2f4 ˻b5մ*I638^^|l֒K>@Hs*% ts>$ݱY ,g7I \׀sY߿"b>" O2]=v%Xbѹ&T&"dlif)ZUXJ%mzV "(THP )$:bL]YU7W`W`Թ2V2LRĔm>妒Z^.ixΆG碉E/E//Itغj0 L`jW\\5Y_E*Vd4j#ŧet ,'ŢsTD !0U\ݗ5BJ?UtVܢ)xѹhrLA*`ySٝ D@VuVZ7-I} PLO%OB0Dˋ2HlD ~]Wӊl'8IJf` $Wl{nryY%pVVLX%bɪҢLw[vGO_|1{=cg5D#%LB0G25b`m;1(@ Ч j:sA=AeJ{o5lV-sl/-]ݷ|Eی֝ǚ/x{"&тv 1I w IB] pٽ^ToXzb|2 d;48wc YZR]~J,'b px8?RG{(M҆U}mǀ `N $>NܴLd7w|ĥ89gf(ތ$A'$~&i@1Hr5w|Kq|3Wp2!D|D 겜cM_s)N|&d$AGI_,4.i:\|; IJIDϱ~jf@He9Mǚ;i8ҔL`H[>2NgJMD r5AwtQ)A#Й+?5=Am4k ̙g! Ajek˩*۬K&OhCYQVZ' ;5u 9<"HS f/>f瀤m:jXohU}{=c'Ǚ(|ǚMjՀ M`{i=I!!!Odz-%aш'm[tN VHS507 qrt<}c )wօ{4ī.i:IE@g92I623M r5w|Kqf >$C=rn h)8$iFA]t 3#.ɹ'w@> H.bc '7l4]t 3S\3jN|&ujH}L-rcJT6gR,2-L&:Yt Ʌg>h"]t 3S\34'w@> g,M@z\yRh".i:)N|&Nu2 R~$eJMD r5AwttStG3|KI#IM K4k "s)N|:F+6 MqSh@n"ij۬7K}Y~oBP޼[(l6/ kLI6 o&%K5 XrR,&WŢAG;YSU;ԟlI~5^`FHbl'?-GY:!(}y.zu,Wm E|@H<ﲜcMН4]hJЁt&7' Y>ܜyUn@He9Mǚ;ih)A#Й}=&}~@1He9Mǚ;'Rt23ӗL0$貜cMН4]<єL3^Q"L龙f@He9Mǚ;i(єL3^<QΥ0+@r5AwtDStG3Ok!Gq*#i̟@]t SM :$cKQwi:o6˦_~~>]U߯70`~Q$k>ٲr95+gT {z(=S}fl:0[b#6b4M|}B Uԗ~O|0.R/aS߶*D@tt7y/vUd5N{jjs*D@tLo^juoI۸]ЎZv=nB@D@tJeU}ӽ-5%zj_ *)ymWc6zD~ORcU! "[e:%SuylkV% zj:빿ɶ*D@tLo]]շ.mvžZ&v=lB@D@tJf%D6Rà.QSԩ]MU! "[e:%C_"m!+.QSԙ]ͶU! "[e:T}C v;#xDw(lxVgE1)NԜ_܍oN!`3S8݇S}N=y2`3S8݇SsP|вBFlp pjNZzɂoYS͜NtNIKO_U,l``uZ74> 0`8a~&-p.AN~\kiZj>@|&i_|2׷K*£qqtf9] Uߚ$ʨ!O&!'AMKe)i)h='jUPݘA*|Kf5!z9'uSܬε@ym=(ɱssCq3Em-2u#˂eۈz2A")cS4 fU[WudEu^ʂ,9NSoZcڢ{z2P4Y7thlzOM{*kfז5zOj)mvϲ9ډvOt*K' AM39LVtyG&]Ns: <|a_&A7B56HM8L7=5mZRGS Н4]/t{0?Q DVݺ*Vyf$ik;f2``zPԠ&niY,|HI[Rt9O5m_ƙ梹 Esg\&,>e=\$ͯ3e(BOT.!uFV΃`w`ԃ%]"ٺ%"PݼEI2hazɪz)2F:^ x-Zya.B~MJ1:]Mq@cDѺU} ^'«ct`u `ݙ2Iq96! Hg3'CEWrv<ddeAEL܋z]ȗy_.*: .I$'w@>=dqe șSC4CNsYVѱ&΀OpIN%9PK|1 E}0R Sh,\Ut |E :N?q@KB̥X!~sYVѱ&NO`IL/CAP4Kfygzo \Ut ft;|5QQ.<X!~wYVѱ&N.%@w:=FC1N/^๧\ ܾÅ3GO# ;a:BrLr}Иw!ᲬcM䒜Tq|ӃaMć(!j h,]Ut 3\3'|;  J_U⁾Q]ب)*ѻӕOwܷN,Dl|sp$ԣ;yiMVEf-~ Gx4GOM@ur Y{9m: v`5`OWӐ'`6#қDJJ!^,X|g'$7 ȧC&w!O鹡̀Bq岬cM:20AP0dX Y)X!^,Xt'Mt;P&>b@c1tYVѱ&΀OpINϛ|Ӄ^$6 Ŧ\H {3B責cMKr|ӃZeY!.OO.^̷}p>3LӺjI>/]VCEVi>&hAkҒm=wUo8 u[9g׬Lj/x Ճ'?{,/e>d Ŀ霛~ٓFSE R>AR=b0wtE˲5Awta(A#OH. i.cme4A?\Ut bE :N~z|8!≅y|@cx鲬cMН4XA)A#o?bUX!~uYVѱ&N.$t;",'Ht_1y˒1w|9dl,¤+93zz~/%RoB@D@;KwJ:c몞XE0ɕjbSɶ,D@t3.Gdݽ 5=Rt[" YSb#ކ_#zr:3ٶ,D@t]_[(Z .:t&Я%*:1uA'԰G,f%p p/ڀ_3Ъ3öa)éhC~^mfNU߯70`~QMbo'4HhVY >6mZ52l+Y >6mZ56l+Y >v/y.:MZ7 u=XJNT] h}Ъa[ 0XJNT_vZ50l+Y >VўVŬNtNE+hO]{YU= S҃6mk 0`8ߌb̝?>)[j;9OM6<rϬ=h)Zk~seyťo<Қndaғ+U3 0)w.".>:|#4cs3tiO G;qqWufoBogT- $)1Fz;/ۼJYeo1}u6.Znx."E$D:HFk ߒE;&yMZ@>aW3?󡸹mwH^v0sa^D}qa\ ՗$)1F6ʏɗU>%sIY_]!u dY}&ccu N"]3OԛUKjjc H@IBzgBBB4>ߌާ8җ5I?:RG*ig*oy[ UtG/+s!K^"xE+rWD8[.>5KgX.pk@3л/)L@7oqq5ĸ0'zPBz`G 4hXibu\źY==E!>Ίr_ 8*Ir2D+ wCi*wԉX>JRF<1+^>S-y,? XO [iDjטE>$/Vlk'-GP5P.Ԕ]Kr*qyEXٷyYޱ*v6!wNO=I182^XzYJf.kj9w֩˵ϰe ۡ?ȏGqtG/RS^zP!¿RL*8+} ~A/2Deh;wXB*V C/7S f5EVݓ=AO==_.rgpꟜL=#ghfW~\Nw O+ " ѢkaxUBGjA-wj||b̞{> ~jTya}1)Փ>/GV[GVG\- Jmsm3b8Qb8$'t9DOW˂RwdNCwCl1k"SDju9ղ&=kvÑb v`^lWr}$Z}Z9Ln6q/ eTBu&R H}Pr C 4B;ìN1JaC24i\&3 rb}LX2}.=zL2 ҌE0Ea@)B $,ÉMO&21!A PLH(ee1JK'WU2;zeQu!:8tԏH$ QRuĦ%EG LRt4mXt좣t'q-)) wGjuQղ&]?K\'i1+1[m5Rs\- Jmsm3b)1GV[":(~w,( ~KO@ͤJ=e_#x2WH2 K^‹|jUPUMʠ U-C%w]-7ZKjYPj.l5}=?{um kz#lU&_<;7u&L_A  /^%$8kS}.lqwZ7wi|vgc|LbH׭cm01Len{ZEH +ȊP$잶0Ea<˖ Nۡ z'P=r9([䝅Ӗ;&̱ 9f/D왤Ldm"\sc:d% !uԙơ~DE"h&tb-UD'6T-):fBŠ1h ')L)IGS]NG2QGRU 5 qRKz碇%abi!ν+5}ŶQDa)mH.f.yS/cjqM}YIs^GQf_]8_`v-1˩'|y6 r9_QjU"/W>=Hak/r.cMpwpwp6DJ%X7eL<۟yƇxjYPj.%y2^'i1K IzStvZC6L%yCX,5qXZCo\- Jm$EO?;#?-z =n]VōeAM~^ ~wF~Z (C^3Q#:(jYPj.%y2^'i1T]~nbI]- Jmsm3b|˻>yv.bŋZM$^ψlxZn0Q6ӦZar-v|Us&HF9L},wgA)  m_0J`Ip0uM~][.wgb1GLbHףn`* 9-v8-C'(xJ\C~B~Z1\ !MqgK zDz#,pwݎȐޕ:ȪA1K>)FR&tN4:d%աIRIiJǍU$qAW(BQuaaJJpb{@UҒ~a&iT jHJ@ ,IJ^.rӝ$Iuu8%)i^&*)qhZJFc;.UlW v!IF֮KBѱ4ǐKѵ>b(4Gā%(mH.cg’u]j_sQy-VZCo]- Jmsm3bx-NL\Nܴ_La?`v%CB!pN1`Wܮŀ-1Z/(` qۋa 2~d|&&[iX%o7OG(3Z%c-뉘 ?B5ƿ#:(ղ&]?Kd$O3b_u)~mq^pӯsD񿮖6YMK'`O?b-֐pgE~͋LGjuQv,( vϚpX=;-~jDZ)Rs69x6i13릇\kIk7,Rs╫eAM~)W_܁C5z,KxBZa9DWW˂Rw$/sW<Zl_V.ӦZar\|RQf#e 0V.]eassA)k bhzX̴:߼+~a7\˫dFAŎeĞM.-7#6~MZ1#Q  D\@ 2Ċ wYǜ@@J" DmX (]ptru8Qű^&)KBHtq(7Vh)l.Q0Ђ$ŤD$,)fŠ1h "W8OҒTWSbzebԁg>RE8.4d5~T XBn="j2}0ŶQD pQXGջ۰7ɯ,]„uMվ#8"Xw8&wΙmu1]oV-~~g0bȗ8ɘͮh\rTn_03(DJ);r=^n) .ÎWLh'؏1z]3[[l/r/ï>vXFˇ^kj,'Ś-Urr?dߘz"]ƇFn>kn}G_o7TQEUTŘ=ӯ دͪ`T &kx!"!&uQلǛ5 ]ƕ v/  6鋒4aqyj6gpx  m(ٌכRۨf*{cձig!"!&}Qk7ե7Ǻ:W٫pĴx  m(̤6D֗QdU3z:5,4dBB$DBۤ/J6C mTW3yzmY  m(Z͌[(:VOCcUV=PG4vȋ{t^}1@=i=e>7,5~h gFb-f K24ֆDaAAI;'oh[! 6O ?i|\F QAP=EP}NIrs*RȆlM_| 7ֆ_QAP=EPuN{fF QAP=EP}Ҋ;ammx( (">i0מѶ6O#IYW7cf`sN1Kޛ56|q6+K_r|)Qr4DF䧌>{((Pq5'O'>ȄL"zH?ٌ!Uae8S* D 5i%+q<]~[Fx.lۯj1 >'p=]qK{T"m7=8KY~ZVM]c? rZ#xxEj\v7j[l/sk\ n lnr?0plxGUTQEUC{6r@ 5Pڋݾ\wW; PKe[ѫPsk-bksl.map.gznu[+e][wH~_={ ar$xf⃠FJKS}j%ۑsLWUWwWn}]Ew䯎p˾E.]Oޱ:>"\\5m2xIE¢N̐{+\d8V@T@T[EU5}_GH<% QY:JU):LTo*3x>mϪmmO_<^<"-jǒ-6_қ.] {<(Cn՗/;O|B(g6\,eK,,Ȳ@vz!d;  U}T=Kd1٭$?©;V,-@u]z@TUʾ+ot- uMۋWE^EvUqғ,mSZUzale -aS X{2&"#Xuϝ{d)?oHY4o-6Z5*g ={]HTsٷ2gF""L)_b[қU5+ꖤsZ$v$L L 0cR=|:[.'uu eg[ܢbem->tpNwzG-ҤX/2Fxae:V5E'+.׆bcj8?cor*-E8 iJV1ReQQVl8اu$|o|=6,CF"P@9Ưwc UR$ͲHVVqQn԰h-Y-"*<@>NNNNNNNľO~2֜+y<\E:uFcE^;c>hh9A?1鴓!85h>YWCȸBvoypGe#pه&ivCH9Pp}!/La]Ȯ ! C*\&}PyQv'QDY p+9F:ENJw@4MOwjmΝ ^rSpA>ؤNѱ"Н4U(9E }3 \ClRX%qr\'P#/:sJ?փ IcE;itAP=:?كzDkzw):VF %#ӝ>{9a؇D~Irkp|FF]Έ&3'\k]ؤNѱ">KLf '0P?&!JХ\XEZIcE;|ę0tgf,ZKM/CsAFgYPg56ѷ)6IP`bPZF>%=ukyGwfY3Jkqu*m Z5888qpp >en'jp";;3D6((Qxj&T,fb&܏oƍك:"BH\]YvS6C`%0Q1C75=#_:E;:&u XL OwjfT̡}Zm!k):V3'pIQ;|Gŧ;C=Sk*@OXV3,CvD. lb߈"s3i>AviًH?\AWD Eh P-~hufb0ݝ8zK1s3?zJ6q{ 5pSQ@^uKMYN8--#Gm#;"ۻ퐳[cW..(?Q!(it.r'Ix]T3INHXnm֬S9S6vìh[% !Nʕp,kb[T[wH|2cvXdFxsţEIqj'tC|i]QT<5 v;0|Ea q0MH;ՍϸuVw 'vW/Xk AΚy8C(߅LL)"o9veXm>U]fo-X`}DVw|&yegUd`^أUKp]jS>m|]HQ67*s{.!vUQ[nnoޣg=o *(˦:y;k7?J7ܞKp]n|deTXӣl`깽` *(H˦:fIs[mJvj깽.!vUQkMSuczN9|G+s{.!vUQIY7o{s~V3SvᰫҍȺy 5h%;7| *(g'z~㞿h%LE#ˮ_ՍuB_X0 $@$9չ|DU\YF%>_߱UQ~%ILjUl3a<@A 7 Phȝ_urX'Q=Q}Ѻt(UgI`N0z袝S« bFaFEE{^e<7W/Xk AZSIv0X(¨ht!w0X(¨hChSC$aX'Q=Q}}$o:yȾ ڛn|sj|%܌cȝ`N0zꢝMu)U]C$aX'Q=Q}ъ/%gȝ< $0 0/ZE{B :1NBuCٟ{Yë} :@S#FU}-@$TSMm(Q|[eQqTsi˨dyƖ9Dk vA(E"o2EsqAKY{u@kȲk~~uc.Ƣff|YVqE#ˮ_UٙϘ?+%ȿO~g}]Q\7yC]o?˴(B/_")< {2Z[fq_{\̿|Ho>{?熷}+ ܜo.H%yI`Ӳ>1be h|*>1gu N“j]s>ԛff4')5X,>ڔQ()|jt/5k33솛$ˣdPnA25kC5.GXAxKls<;,U'8 'Ʃ&Sa~=G覼 it}StQキ######Q#uDhtyW5X,T6/x{&j2~ G7ֶq 4KA;) C..7Q@REYz,6C!+X gĪ&۹lg㷠&@ MG {VdWnt(uOCs(6qwx! a=/K2R,g\MVN iYPMTJM^Ky:GL+p 'i}AGЀ4gL_,ۊsX`1æm%Fg|OMN1nEfibMUJ%57 r2WѲY`")j[ YSWNS9h`"ݦm%Fg|OM~9.䲢elʨVo|.d8-@}eubMUJ%57 ˕S9?^A1Ea'ifo%7 ˕M"bC rSw,`9+5^"/v s$vVɞ#G> 9M0'l#i7=|@|j2z!蠘Od9I l`;@MvjF *Z\.^`"MUJ%57 3ߩh,h|˳6eTm+7> ߀|j2,WhZѲiX <2Kjo@>5 N/w/o~kS%57 gw,WCo6eTm+7> ߀|j2W+Z64X,^۔Q,\R|ɰ|L<*Z6 ,CdlʨVo|.d,'CuEf !_lʨVo|.З+L\~#tk(ߐ4 |.ưrs:o=G{GQ^+ff^yrm꣗gf2|]{zޠ7 zD{n76Gt |#iYd7߸ ˊLqsnE_}U}%jhdOnI!']h/ %l> @rZܧrrߨ=UO|SZ1(3N-/6X,mSFն|#pI > ȧ&CN'&xnOLԝ` XΊEM6jExﱿ߂xΦJvg#5=xj0ai/þbEMUJ%57 _9N'wBsYm^ѲٗٿlʨVo|.d蔓L@*Z6oX aSFն|#pI > ȧ&D31Sͮ,Cd)j[ YS\b%YFܫd,/x 3UHǝ@pՇCGw#-zݯ70`~Qz&kz86M {Foj8Sj4Fv;U'-L0a+S%1Lwz7)-߱"D@4A9w"b*)ӝ-jJKS/cEhAI]ѡ oery˚Rizz9+B@D@H Jzgޚ.OjJԟ"5(b:2e|TS+B@D@H JzتvyLoRY-6߭)L/fNJ,Rޱ*]+s{5ҜX" EjP;VY o"z~M4z98VfDV[3=PӚRi.roy"5(bO("i@' t\pz9OߡEFQs5#S8é:i]~.xB.4m$vOh7ƾcYhߒ>'ԍi#û)O>=>?V?sr,h.6^S*M+0.{)".W f vaaKC5eWXҗ) n-)W`#6u1Z4S -Kܺ-GGGGGGG;uq": ,KkI[t`i__9n@M4R5)Ʊo00M;_QÄ &́Mm6vN|:,X`=c,Ouvd?a܋PKe[DvUro-winkeys.map.gznu[+e][wH~_={ ar$xf⃠mF뗾V ŒH9*tn2&[;vN;;yǚEV &/2-zۏ;;;;;;;Ka}"I8d.6TJlXPfnaa<áÁ I49HQkn*4Uu~Jm{Bcg`g`g`g`g`g`gwC9BAIMVp~U+ʢH:{:{nB}]1去OV:)(g6*/ɗ/E"߯/TY!SU#9dequa_+yCyPk}\Ku1sDjdL 2A&_1:9zfe,.SE\۱f"brWmȻ3ciϗ!Y d,V^^=T,ߒElqPg"1{F{%7nWGI)~8x g&LV 彀8DoL$ҹTC.#2@O M&`tr44'Iޘ p"%9cE;jtadP=:*~sse쫚._aHL5|ӱ"57(}1gb_ KMcEN3%9cE;| qi|G30Q~ $2`DE%9cE;jtQbP=:*~)~{I$4W}=%9cE;jtQdP=:*~y2W-^\ap܄톣NNx)z54Pp»"ӱ">Kf'Q1ϱRJ=X)'b(KrLNJw4.3c'Q13gI|zkqh}cQi3LUT<5()3V:395jM|9mQv`v`^=)V5 0#ǧj|(GY p(KrLNJw4.3|GŐFۛHL9Q'B(r%9cE;vxS5'TJ?Zd.1+ Ӹ4lbpCQ.WC5S ]^ p""]c:Vpi7>{|T idz"BQ{=%9cE;| qi|GЌ쟪i@> Spi |w@|T 71iA$gob,]Ҧ( Ut@T{@EdIN0g|zB};"IcUNt 7\l\Ro*TW3BzP1ӱ">KԸ5oxѕrj]+feQ/c .l}Z`ySB=śwJLK2<6gП߰gCz*|e,T}5U~}ӜmՉʳmFhXVY"Kd,哲'sqѢ=ɖ:ύ?X]^W=b VzUkXjVT̋X}!yU'.$ks6+a+0WHŒFNGrBw8AKr]aUl6VғG b o)W類ބ 6CK8AW]c:VF%3gfm ѴOT'"(G䘎ESQ#@ MF6dn<<䥒$eMY#Nx <jG @Rqa'qv6vtAWjaw2&>ҩAn-d&Gܐr3'!3LbM}'KP_z%;~ [Daf}"*Nz/GzfEtgZ.15[iY v`LL-GJ^)$LWS 2L!}6QQ tQR3ě!?АEzN˪gUGeZBh>;\]HI $$4B=F{-u>EO^~3030Qꍊ5hBC}Lj]l,f/}g5u3؈}WMU|[` Y*|Vg]b/Aܣ5kmMt){B2"֟v f=ZzߦB@D@WEp=]qk.Gs6" *|$yU=Nz m=nS! "NG2]ճ.mv f#[ET誨SbmWcbI{Zmjvj빿6" *|yU=kKh5z/ަB@D@WEL:Խ-6=Zl=7ۦB@D@WE;Խ-6w%zzoM:L ho=B!6дGYob֪n-".>9.uf>R2 c) whH(M[Ճ?nXU?6hmx:$@Hbly(dyQy>l4p pJ/ڙl3KvaiN@sM42 ))A;m$idN## 9 >A˃v*ԒFF4s8}8v&Y nQɆ,id4s8}85l"Z_6|SߒFF4s8}8V=d7 ,idA3S8݇S:hlKvaiNZD6N˲l0ócbGMR͏IT} G]~2R"C..>_*_Ϣo|xLN 9!'=D'+Z;;Xn/ln0jlZխE\E'ǥ,_ÿz`ċ؀\y֣5a|@xVukqqMg&O咡Ah~=,ʤ.URao{[/vxtnE$D:HVs޲fLpaZG3!ivh^Yva8X߈}ʰb N XGx4Wb~xLG'YՀ|bF>[l w "!QD2kއfG :X?yʶ@$@#`# AAAOZd]eŒێ?"{:5GgE[,VuK6Ub#######ϼGDu~"qNX 8k h~Т= iz hOG܀thh8:[` Uw6޳*/3p;-u}gz?ƎPKe[WGcm-mmuock.map.gznu[+eKs8)|*>8!If(ZJK<H)'U!`--_%w3~0ݧg;{I;vx:.p&U./B𗯕c5]& XrR,&ׄ:BDcQ~ɥ ;Lz37#=7C ,`L]XɮW`7`42ֹ2ȷr=x3F:2b|%=gUcEe?&0mrX窑1"-ȗW&Ͳ4+vߞ"&*jSac6ac/q3|?A-X'G>3-K6zs >©΅ɓ>DcpɲR l`{Bd70I1DcpmAwIK('TPu7aSIXN彠[ >^"/lC5v=@N=~hWzQ1z1z7kWQL^Hn٧m֛-5w,`9)J6|9[ՋIz{ympt֝]M=^J|ol& `L|_ؗ2wlgاMxWuӴ pi|;"%ñIc9ޱu/-Ŀ,iW|6wD>J G|.~6hD %YNӮ&4'Ҝ(NU2G؁jhD %>YNӮ&=\|;"=3&G 2ڱuE1rv57.m|Gdd8U[woD %Sg9M_ #Q2 L2TR ݶh"YNӮ&4'Ҝ(#)x&ƟzdR\gxGalLSrŞT2 ]&b(rv57{ɹ4'wD>Jfb"\>0KKuȳ"IoYI;Cs_JIC R~\0 '\UcOEzN{8vPf$9J8:8:8:8:G>:tWP}dX {բ=&vѤdWݐÓ&f^wyUҢtī:iIE螁 կ1Bwڴh"uӴ CC :=%?j֪FBwh"uӴ "C :=%?Z4RM螧hD%.,iWt'M %@ thzg^j;]h"?YNӮ&N.JЁ(m|%]XݬM{̍?Y| DM %@w:J~fHFމ>]f RzزC*P@E˼f΢ެB_ݶh"YNӮ&N.JЁ(;nRh;-[4AwuӴ RC :=%?NuW #¤VݰU|-MKCc McS-3I_1g*If $ Z ye*Kݰz} np{ܔ}̯O-w$-l dfYvո_>el^'UqBiF`4 F󝎆>| ˛lQD9̒&Y1ݩe܋S9Yn{1$CHJ_#z0E1rv57>ť9}8 >$Øމ2߱ LUwZt_Tâm0/gNP? pNLJ-S]; %@'%b?!VwHU-<ޱ"Cޮ hhrH %ղ` ˨`ْFDO[)3u ٺH@Ұ(IEX+r%M~/oevľ^i=T f0QzFz$6܍Nϫ1&/3T 6b#Qcdw)廫wyz *TPQdb&_+K Z׮U! "[e& zT"jDj0*-4ծ}UVѤw<^jMoRqոiCVC U! "[ExQMU*zE^CV#U! "[E9wQMUߺ<&5Vѫ-j_ *Nj1W}V[4juds}UVѤw]TSշ.I *zEaCVv=7WnMJ~gDmaPE(jĮ&ЭI4-5 U[7jujs}UVѤX?FUxШVg7]4@nWV!_Iȓv" ubN!#6s 8>Iʓv* ujN!#6s 8>Iɓr;+$-ycz f0ҫ7Jl,xȲB~6s 8>I;'m, 5lZ9iN˓v$ udN!#6s 8>I;'\ o8=!ڠ˂-)nmp }85'ē'm 5lZ9iNUh]Cv S)NZ' ճlZ9iNUh9\{ӻ= SXxl+ 0`x&>F;UͻcboԴ,,Io*U݊=fo%A6 Ƅ1aLK}XE`gzD40tEZ@xv"."d oWFj_*=i5ahE\E'5σ?+7*]_,OevNkoT>Y^HtRuW{Q""p$kv5{آR/;v_=_lw|̮oʟVC;# œFk/b߮؆Yg&㼽Ï!'ڋh/ڋ>m{X/@U狳,g5j\۶wsDkuEyͪ:+mbcXwPwA{О1k}yݏRiUY+bkUV7;7 /5SGӥ;5 ^Hxi0H[7A#C/sGI#a6ުYJLvj37^ yI8 *E'Jzk&+6˩: ).ɹ4'G> z0GR|?sPY&"YmSu #C :Ո-_8c){4AOmSu |C :D?2_ru<68u&b([Tj\|#  g /&󽙜G{&"(6˩:QE3C :? ~/(t|ݣJf9U;j(2h 5NjV }K&mV<upfZx6=p C *Ԍ E&+6˩: i.͙N 'G> #H]D)PVSzpۣJ|lCMҜ)3h04+汔etZZj`W*qTR,O˰]OU*)ʡY1ZEaaaaaaaϧb]}=F`;N{BIeCBB4A`V4Ԃ3G {41(r5w|Ks&c >푏CZJE1.z4B6˩:ޱi, x3 fX \)QG1xf9U;>ͥ9ӑG!QZhyfmѣJYNա&NOqiN|VTP%s% G1r5w|Ksr. >푏Cj{RzOm?xS\siNo|4Uc'5Lo~>[c6Exo6k@uTal@Pe2/+QSpƧ'7=/R[VV*m5]&n8.p_. ͘D!QRޣJoCMҜmXG S7Bɝ%iLf.>˺샺8ȕBM2Y/9ae^ {a/셽v/1+_?!D|"]AWII/yWI"!N[khZV{nxa٢F4S d$zzܼd_p8~`wr{~fh7ڍvh n7m5K1u\ 1 G9*WsvjذOH%}KLL¹ߊo=Ŀ*Y\pvjI!)H!) N!,ToGxf9U;j00h3+&m8ѸaG^"}PK&"(GTj颱@GxKT =6˩:Qөxt; ~fXݱnMP6˩: pi|# #&~wHx_5Ccr`zLEL`z VzE/tLLR}b,)b|  j@K[VfEwNDTJ#?"+ @ꋲ*eeeGfy)jVUo=hFhA?!j#=:_nOf03N`W@kl0>F킿YVUjvjW{o2HnB Us[UKKsRk ۊ-2rgMVHHMaӎRܟ"|9V&՟4-uj5˹`[" E)LzԽ-՟6ћ-uj5˹p[" E)Lz1lQ.mEQ3ΛYǤgBTco+B@D@:%vtUϺ<&5Zd[" E)̤s~LRlaQթ]M! "[D;Խ-5w-:J:˹ٶ"D@tSN䁦#R o ;J £^KuSgj")<5.ز(Kʪju\.}}hFhGÓ'2CvWUe՜NtNI; ujN"#Vs8]86'L&|יe;[INwNPy]IsGo;K f0?(;Fz7[($l'?՜NtN˓6 5l'z9 .I;'X&|ױe;[INwNکO&܍gN"wo5'S8݅SsNGew-IdjNp tҪ'ځLe;[INwNZD{$ȲDF$p pJ'zQ~o뢨@: qU_u80`Ɓ 1oӘQyTy\]?0G|$g:U⚕pj9ffh4Fhh4h yٹo}ozU6AvRz]AxKqq3'LX/M#5/מv0]AxKqqMgF1OŒ!ADu6矿߶}q^dW8st}6̊RHufw#Y]|-KJ>p'fSvu]#yeE0EFUt7lw_WHHGzԻ}d%}Ap\7r!$$I:3+֒.Y|Ӓ>Q}i"K//MoTq`HCsȁ]W%;dI)dxգYsUWyciVoOӻf Ez)? NwΆ1ΆS߬ay*TPYFcoۇ Pel]1PKe[SW$$fr-bepo_latin9.map.gznu[+eKs8)t*%J=IfHJK<H-ǒU! P /u9qn}'l6zWњ=\|`Utu@\zt3X_csj_ '+3i'J:ٌUdP(dDe׼d,Zo.0 /+*'1>`lG.XTx@~p \oƲ@GJ_S_{:**cJ|"͋(evj\˗K<,'zLI@&6WUg:R^T:g5eً jM鮗 Fn>vkyXl"?jCWqioi"b"JL1h& h5\#z'sQ'~FNP/lD,'bƚkoj[xOTLWfFVj//x᡹c=-$|NPa'Ƕ,*oJ$oO XrR,48zdp1Q^.*+V孴dEdՓN^⩛5!$}DY|8ĕ?JxqJ5׬J}˻."SiW-@BA/:y2Vv:o/QܧUzP/xOcjhe@A98ԙr{,WJ_~ ;m)9麗X*keEEC*ە&hwMK [@P_Lx6JX\E񦾛jo ȋ/2o<3ey(/ S=c)+Dj{41+QhfEVQt ZZPG@K<&Y|)S5xy&b(6u 3S\siN|<[٩o ɡN5[÷=⩩!nApR4H"\؝S+=I,Zn=w > ]nOWT+[շ[_z4F?ڬF֡&(ϒ2ZPPgoB&ch"o۬F֡&΀Osidl8`0V[ۘh"hͤQd ʳcC JPJ<3xF ]JSy}b ƒ}R9 q)y4.ʝPARXLfG!o:).ɹ4'w@> J0TС|9/fMDR_mV#PgI|4x%X)VBYh[? v`4i+YT2$$I3xf%QCQg/[jɖigjӮ4ъ O@A ijܣհf55wxg0-%x4J 08 MiB7U&b([:i.͙0 >CZiᙑZŠe!l٣J\YCMjG!C){ҦE&"(jdjt{:JdKՅW=įmV#PgI3C JPJ3xBo5#͊?fZCC>pO H4H9z*/g[^3ɳLxYYQ׫]_> >C"&]T8|g f?Sj%io D3M DSN_(ߋZf(-qc&h>OGo=] P| k~ܱ35we"ƽQ(elQTQiתt z'!! F>JD҆9w-ǸeU^T"-oӦ0( m{m hچmt l &gy8jnۤr^MJ# *fdɽDBn[4NxlMDR"pɶ6gis]h׋i?7C.EC%v!/Bx-XŴP>eIXWQ +T_f{zzt0`f Ps#p$si=mV#Pt'M8t{:̻|&j&غu&b(c:pi|;  . ?ϦR8Q|{b֣jNOmV#Pt'MO %@ t4ѻ+'ɶK&=Ŗ|h \>,|4>Sg+o~xaU:bwWoí$̤-[b! ` "|ʫq1r5k.dwfUŠ2 ֖$nJrk\MVoIG -@ tq3TE}B *gTi03/TT7] ;&2rg,_uOHu'>iרs! "`EϤ]ޤa>YWy\tQ3:/PTwZGժoy}>" 6])LË:1^j`y}>" 6]):1޸ևvx:>" 6])̻:1SGj5p .|&Em[Gjujy}}.D@lSzP}AW3s! "`Er*&}յ~B!ФëUglg5ZI^E\}t\|&Я*dUK1eA9\B>2.,9.oW2/]eŊr7eUl;KS!t4@#4 } By!uf|]e!-uWv<*2c%N*ql!xW1yB+Y ugg&_W@c Aėr3(t^N], _M*,1! `iPV{Cr[b@ty3 B ıN2$'^E V(tL2:I(;Dxak%N*ql!Le'y$Zj5Z[gFe6EXԉg;+SOgVf:]vfuA8LDzīPWCJe=.ٙU!BP'Q3P0` MY$e,zOѤ+_FE`%3hm4jMgF >b{(]{8-^:Ah%{qq3m7HK> DVRqqtfg)_2pN'믑/~GEr^3ʾ6@HBo0:oU!ΈH']|m{޲ ^{zfSz}S=ʊ0EAU|믁?{]w:YbsvW䋼w"iN5?g]?JVTAXĖ6D7 "!ID2k{zXA _sђ>DyLY$GNB &_U:$$I>?3mJr~]B;y\/uoTqQ|+g.[,5U=I2>|"D'O?9Q[M 4PX[3(N{5g*~,p:<.p \=//?"HB$8Q^ce,g,lo.pg˂/dvY p$Loe]eRey6/b>R8H"Ko;OjڣV3G폶1< Hqϫf4Wջ)rH; )HAIMUIU&tȤv|bUZrWTM~wҤe]D >%#s"Q#!eHŵ`%%[be5EmX@4}bęLSqTIumFl媒j5Q:2x *ʠ2sL2WX N\f=[n2L 8^Gp4K5<#oʊmcZy7^|=eGoзGQyTG号4g\m|q4'Iֱ1*NCis=DP!; AUQ՗_ UEUQg^Uz";Ց""*bW,\-eKp38>bԨTҩv+2!r)Uָ֝¯x̱hhhhhhh n>uȃB3ΰ.4w<>*Q7Aw ;  :Ψ3:?:ŚO~rVvtqh•3Xw5 ^Hx3泻KҭȻ~PccOPJo(IcMī6I: ).ɹ4'w@> c :J/D 2g&<(_)rVUdjİߑ:ˉsTvGI&龂hƒ,'PtGMFt{:NQ^ES.AB0e&<(r5Awto(A'/qƱJݣ Jf9I;>ť99GO4{S95 C&<(6I:QESC :=u~/HJ/IU&|({$j\|; uy!PMwKs3.;;jiWʙ)5$DJr5w|Ksr. >:<(%ԋV w=6I: i.9c|; ucUξJ{6OXɪy嚼 beD' *I5N\gEo' h@s4X*B\/z;'4v&u|& yztP5D; s x|%?KO))S<[3@6HXhD蔜o%4DJ\YNҡ&OcYށ43%jN[yjܚGf=6I: ).ɹ4'w@> iXA(ez4C6I: ).ͩ w`> iJ*a$^h‡?YNҡ&NOqiNΥ9Qghf' ZJWxSHS ).ɹ4'w@> z }$t0_S |ɮmSDmzA*L @*̷4z1s'ȱʹm&<(⎕UN֡&pk Nё:d7ZF)By&|(r5w|Ksz+t>:C͎yV2U )\5C}83L/I(` Ld:ĸʻ̨}E,))3czp3u 5@ T J/tq0DTpL }=Il>ے\8;y>cښD9jԜ.|F4Cj ^11-u3%gv]r^n `72w'3;3uf&SfDz/=Ŀ,'P|'4gh|ҷwLHK*}k&<(o)K4qdjI!)H!)u43JCk-ĬGxf9I;j00QgfVjuh|ƿeRL }&<(G$j颱螀:?Ѥ?&KƙO=6I:Qөgt{:h^ńm:۲G>r5w|-\g:h$5OFހއϊU$[- JY+Vs=ʊ"Pܶ@":I5S(L_ΌcqWTHMQ+lSbf&-#\z3` Mc!q$ݫ]Z-;b^;^- ((|d )l`kT;oC8C7%IyΛռI&qӎXv"i5oK'f GZ x^^- (j|dyT=TxojdmQppFQ#ΛYǤlձoC8C7%v4UϺ=&5Zx^^- (j|d9Emxo0ĎME!¡E;Լ-5O-:b:yymQppFQM[W(a?wj D֮X_}_j|$Я*d>U!c$ y$s,\)\~`|'v=矖6]Iww[J:J*J.ˀ_bvWSɜ}J'/Oډ x։e;Л P( GtʀgZHɜ}J'm(OڋUZIV鼠- `3FZ-wZAo2'@(tI;'m$5l'z9 E(NXccv7PB餝ȓlٷMQɀYݛ P( G椝Iˀg- dNBQ> VdCo2'@(tIhd, dNBQ> V((gR  uJ|/<0` Ǵ3),ci%bi]ed֧xYKՏUԮKԬFJG\i:(Q' uBP\'X<ܷ`-n0ժ D֮X_}_jr uk0R#ָDkW{,/>گiވX0S`wHzɐyr^zO/Mv!<{Z]C,+L(\l;>ͯoŸ]3 3lYgD;(Vf_k}|^.YOQSLg'XYC@@|aF>[lwL74%&C.2Rztn .jLoVVuwu>#t:B?5>T oB`{do И.İed`@@GAsTFz-M^ҙ8}AfMXyK,um@ssL I"{.^u^rըDE{<7nkVUJE'[VO6 LLTSQjFf=Y$h2`4=VEWf`f`>&Y*Y;ڄ&fq KZ?y!g]=d-')/ӲeӋ<5$IZ:3J՘V |MVk_gR-+^F,bLM^j!n+L÷xxOIbUolh9A?f0ebٸDCG7fzn^Oq?[1Kd9n8òÉA8}ᘋP/BFF}cD_*đ ! CF:<&s$$bETg>5$y%TNJ@wP:;:fٓI7%̀)ƃ$XN]i@tG@gv4pt $d$tT\CߺXĥp \ '3ɐIb:h? 5?ƃ$ZcE;it!(莀$?O'?= O< pI~ZcE;itaQI~~2-g~=],%s40_ .i;Q wם LŔh29!Kj )\ g28I9ț(Ijb"Ƈ$ﻤX¥p&\>{B|&4ĕ-hA뉴-TjESS!!p[U&ج^q^U@OQrC#l}&a;_Wcv6FG\Ŋn.-GG؁؁W4^ՠGu2$ $4ۉ͊65 G]RKu|gOR8 |L24+F|a3q SpIXN]k@tG@g^12kƴ@Mƃ$XN]h@tG@gY1"oKC(3s7e\%y;^moTc]mYy0 L`$jV(:]`$WzC-Vjo"! ҁn8G>q梨W~M䲴Ovy6K I\ p=!> JV١wf qo_pb#.i[sT'*`PPޙ +}33ƃ$a5/JJ:Vױ"6`[$le f pIvI-ձ">KtF{('guS'H8KY8Ig* >Ѕwqd,;rF^1+TVlPJI6bh]h9Ym̍(+4",{;̛w7M[f l&nPݩ(@≣06]T(QgiZFw_k^{ hDք4, L Hh㴽\%OR+I g%Йg3)A{KjхSL3+~0tP6` ɫ.:VF%ЙWFD-wH\u8Z?'_P(DC@b6DE:>#7~)|m!w(W%I3$nz_!_kE棊nUVD~bi}Xw|eSM =cDl =YlbkԷ# 9wzvnxuIn )H44@dZьa~8$=fq\-kJL<%쌗e LLTs&Yy*Yψ;ln,Y{3oFϥBq-UTk0 0OکC'GYr jFaFI+hT% 0*`FaԜCXr jFaFI+hj܋ycz$ 1-+k> @8`.FS^Ě%vsߕ+oÆ5nf[գӃ1!&ĄX5q݋Kt`s}QOb]Vh,ZUݭ hf0|ĮG Ǟ=ڍg+4V_}_=]G)_r(Qa}/UzbY>xHB}eS]>E Otž%ҽjLDžy<ڵfCzs[Qn4XH<}Jpa I oTXgceiRɗy%7u)`iٜݮXE 5 |1>O'Iқ1.벣~ @$@#1EOH\`#O/y=Z,VU5K[*_5"/"/r俈9}ާh8PegX 8kx"~,P< mz (Ϡ4 ڀ|ll8:G` Y+}6"p;/*MyʋMa#+PKe[ hfr-dvorak.map.gznu[+e[wHS}Ϟ#nBz碙If Pϧ_j@Rl?'tUK<-uq5?<8[+oWo8Z{RF'.pEW̭rG>mيUpq\\H.sMmYFW/Qu8^%%"ky<`l6l6C-x\T/4pG^H96i ό! dPb,[w%RVe(~>]j`N綆]Tc7M&vG qǛ]J}Sc0`*WN}RNxŜRrW 3Y>|'SpZߞ&1]6QH^T 2"#rϑ3#y3,:rJ,|߉t2td2x,&+b.$zz` պLbG#)T>ȳ逅@N~rDIrRߒJs?5c췷gtT ]$U5fm %t֭]M^*ߢލAAĹ8z2e\^ŝXW8Vf愎4-}ڐLp@PⱍaŀQp: 'V[9YQ~RR[,M|W?h6DC<%3t[6739Jo=ڻBd-[lǦT&qȥOS;b):E@pVŻ+GRΖ$ّ]<8ML@ P^>N2š8ٱP%:j >O'CW&P|wlyEc1βv57.i|'SWBs*Ec1x]gY]䒜q8dd( 9HM̯s}%c.3™$`󦱒`NVw_s:߱:j >O'ñ[Ec1oeujo|5\NȧEIPbF5ɋh8`?؟?ÈdwD~~-[3`;JQ 9<7R_PJB޹\.\96kXuյ I.ɹp'wB> G@ IF\#h,uյ I.'wB> l^ xbp6-!uյ I.ɹ*N|:8Dmeujo|Kr >O'CG ;6oX !^YV׮&W%m|:>b?ޱ尻bVgY]_ dWǞqRAE"qSgY]hSt Ucaeb[eujo|5\Nȧm)^;BZh,YV׮&.'t;N~RDf[[h,o,kW|6wB> }$/ [ҢBβv57.i|'?$w?D%lV qob %ɓKkq p p p p p p ]uܕ(QԓWΡFϲD8I$7ˣĜ*$]ٺ,4MWӀq/F|q1Ck3xF )QXQPS#0,8K3o(_j'R޴u~U?L P )pϥ?"D yܕvTg^"!Nc38B&eʯUGRCY_r)!g"]lFV׶`7 v{vuA\5<~.dO&-uD޾nl=T f0?(zɚ8*zVf;kB@D@IOJݬqyUwZE6ihj`S&D@OͪZFjnCTf;7ׄvY5UXSE6khjhS&D@O&%ކUjVNvo &=)b3zzPACTf;7ׄv@5W]+z~7JGqq'3}͒?*uM}嘱  H^8J.!}&γ4=n/2˟'Ћn7eT&}S v;\h8|= 9U\mfp }8'O /Љa[*NpOZS^СSö U)T>?io62rK4 `3g^d- *Ak7S8é>i xAmiC~ҎyA *xnVpڇS}NI{XHAC# :|S>^P7a[ޭݬNꤝIu *xnVpڇS}Ҋo=^Сa[*NpOZtȰGhfp }8'Fɓl ګ,+^ ] NJwQQފu80`ƙ a4KOXq!?7]'zǹ{WV6Jq̣QUߊGՓxV=|IC Gqq&3_- ߩ0Fy勛~0y5 yr(~R ( .81蚨wR!qou{ZL'LʟWFC# \FcoW l݌{}Y@ ldo&_KyF++}C%[uE.mn^y, <<'GŢPƢsNb[u%)[&`&`jUd `}%&^6x|.|˦2Ecђ(i" bYquMlR)٢7J оq3H@0d &ˮ۸dMl7ޒaڱ*MLgSI J;\")6I,rl*[ sK6GzG돾ț? DTLOESrS'+Š0y:lT #G{^E{ާm)U./k@[Il5uzVq׬BYrqr?-AK-y– C7g2N׍*;z|)ʠ ʠ!`'mM_ͣ5FV"/-Nm=0?GGw&>/qD@~:~ ʂLޯjew֢G4P6[}kZ֢7H|}q h$֐ێQ;'4b gTש <4g qFר]K8{48;8;8;;;P%3?фh B=!,,S-LS?28C8C8C8C8C8C8CG~rMdE`v`v`u3D6((Q <5-ć PV8z%KI\g*|ħ'guOP5ZK (qzXm竭|G.ź 뒬cE;jt~P=:ԌH@ Z#GŮփ wIVѱ"5 P(~j[(֬Ś5)ܹLF.i`۷;x6=_wWb-u_Ѕ\?ob|k KI\|pjp*@u\jq.;w'pI |w@|:"\B*ԟT!o]Ut|'O8ct0T{w2Zb5>Klg|G'5M ªw5.蒬cE;vxT'r&[;?e&ՕDe3dI@z0_PVl|wI%GI@uX**ԈPx{SzXoփ lЪx5cEM~pAXď0' |cpAMdq6VғGLb gTW5?K-݉3Addk=ZXNJ i[7 «qLoFMnIu֮؟C$} 0pLR` ăXEc!ȿ$XN%qvM>;> ՞}&鱓V wwDcu.cм4AP Ќ@S@|Hćt1UZۂHΪ cE`<1A#0>!F,}Ezک |//?:Ϳm?oz <՚|&ūq"9!xAz˿/>3 }Pߺo2Ho #:NUKus~xQV6!*)C>rm|]Hn(Ûhk=w m|9F֬5Ûh%znۦC8C[;%xtUGwou'=ZVNG7]15;=Z VNG7]15MjsnVm*8C8USkMWuczN9|G+s{6!*)Ȥszn9|G+٩Tppht##B=ZL=7ۦC8C[;}\՗b~  @Hb/XK"v h d7UWײ}kɫ5+IHb驿QLJ mB&%I߬ey5?0n 67h%8f֢խ_՝xi+Ş=Z5 n-/>د΄X2$H(1F=_طEvbmAc\uKS]"'x:bOFs޳E=&yRpY vav]];? oV97F//b߭8N0&me%خ,;1(ۧ6o? ,cZW'XY<1z#a-;6w,7#D,6QsNX 8c *,"= kz HO ս ހtjq5a\ Q+z`{`ֈb̊98pCU:uPKe[66us-workman-intl.map.gznu[+e[wHS}Ϟ#.>䦙IfAf- Pϧ_Z6 1sBWTZ , ķ䯞pwˊmL.t.Y6kEޖ&F/.,{eQ4i?A//ks}-]Lv9"V{$Է<җ6=q > grB¹/*Wt7Yvu]L^"+OZJPߜLt̟xsI*Y/\o3m\]V#oHR>y/$[M "OV>|Q2S|Mz-?S~ߧ1mmU'xm?z1z?Q72['X{]|N,ϊ YŚ89.MV֝/xLx)sū8 3CO <)JP$4~Єw%d9MҜIh8(F:\DtbpMPu4ko|Ks > Gpn }d1BTth",i_tϚnJЁ(-Lln_7Ŀ,i_|#\3No@>Zy~b,Vy;U&b(r57.m|Q2L2d~m%c>Eoeq5h\:oL:^vh"&i > G00J^gסJd9MҜil8(&'jSܷ&i4Lg|y_ZR-j6jEKYM\h'(M%P$E̅?8aHw^NpO~TjIR-.;rg;Eg >|6lφnvfthB= v`o5)tj7$$I Sz";4pxd9MdhfEzFT-C!8o}M=w Gɐfz]JՉƪ:4Cߚ,i_|#\3e|y6SKb[vաJd9M_(N͝Bep%/sסJr57>ͥ9p|Q24*'_yįMӴ i.͙z|!H"ꕣUOuh"d9MҜp|Q24*O_'D %d9MҜi`8(wTuV+R'i{3)~n:^,xqt$5qI313RqT,f+R|uvYD9ΒCL䈖"V_M#ؿͱ_E_ .* TI%g&b)&i4Lf|!Rݧ>K&b(&i > Gɐf G=B%WS#+oI5Y:恋;g,-X$F LhFz4T˶-ML:4AWMӴ gMt{:J~fOOMӴ 5pi|!3¾ޔ2M&b(K4ko|'Ҝ߀|&N1fV/MpL u&b(r57>ͥ9ӹdN}dOPZ2:j$li֬, 'L=%#_'#9%`^hۼdReER*X\aһ@%%=3Ǘ[ X LgٚUL U,z㎕Uo;*;t d ;[9(]`On]e{OūCz3 (Y'_+ldf7y#MPTA b#6b;WML[1MGVխ`2Vmnf }Ҥ\K'+5Tz[Ԛv *3(gե_ `RkTU! "[E?9CޤQݸނEKV U! "[E?AGRyIKVC U! "[E?Ag/z-Zt_" U4(_zz1[jufs}UVѠO-YǤ^ V]EЭAɟ4Z[dޖuz ÖZzo *%EmViKVv=Wn ʹxx AX_ ZjM£qqK? ns6OnHOhG9X$9I.<)Z8?_cv+ʇΫbw{< :N''GסȲ|w3S8=S:i}ye[S͜NN I?taN!#t6s 8S86'nUqRӹ׭f0O3IQVkABv y9lp pJ'LSYC2Bg3S8=S:i#ydYS͜NN餝˓Ej'mh6h4ryn'/ ~oN!#t6s 8S8VȂXS͜NNUhOdXS͜NNUh/:\{}@bm\Vj 0`H]f:S(q8=bfcw//]FwHXK`-Zjyv\Gǥ,EoC#5/f[jMn '-YR=_֯u6s>dW[+ڡ# <0(_ľ٦ƻYg&uy7*Q;T6y.Y;M%+*o g*~`#{ "!ҳdFB+f[>mٰṟ  HsJ.WICHHI>g>ޕ|YD{FymVhT5p\gLr>|"D'O?9QK >eIRecM_xաYϪ__ (YZmJ#(i4Sym6:f8ƾYgC=TPBXw*РAk?Umʳ<ەxa+PKe[Qvus-dvorak-alt-intl.map.gznu[+e[wHS}Ξ#>䦙If3dPfȉ/}o"95Kml7&wq"gqtCH] \Wr_?Fc ;bpLi9u'XŢrX`dY]zoc>ʯWfjVFQs3ss3 ~7K*0`|F+'2W Z1lsmiw<`xT.\4'GXsr+2 c- &0 LnBLLيD8fo{l[Yzq}m1"ƕ#jjuS#######GD]IȯGX|䖈GѦ)|O¹̅3Na1$*e>/I]V l` YLvs~/g/薘j6,6?D9٦d]vYVψU'[O&[p??b>"yfxuf|zP.,ոu{[/x_Nt5v 8z2吾xxQ+ť*HNhݎEn.+jXq`Ɓq<8\%ُT@xl܀9F<ؘ8u'^ UD Tw%1@"l2<{m Hf.oHdbeNuMǠy41h@@]A`!R$@J4Rߩ4h.j % Go9Bc%e?.j$\J|=dd8rLlmݠB,\մ 9 >ȧa( =[vlX !~rYVӶ&6#Nc RHۡW|OϒgÅyԵ˴}`I X'c${}߳Ac1䲬mM %mG> 'N܈ =[vK4C.j\zP`Yz֖uhYQq/;R|Ұo @vNnsH";o]qN,/E')w-צAc;vך:'b7$$Jcb}BEԠ#+e5mko|Kr#%t2+)B%eAc1˲57>%9W_|:-$+)˲57>%9㹒_|:^*)4C.j$\-zPȘL+ W#^d7&J"ޓ'^ =[UƼ eYMۚK_|:NU2 ٞ}/܈yvY;K_|:ꞕԓ`ϖ9lX !pYVӶ&6#N3ue(38ٳemb˲57>t2Կ9!^4rŞG\ !Ĺ˲57>zS0ɷ𥶓e.Ew1M r~1z'>#&Bʗyt+2I۝~YTI'yg:ǽ` h0扎FVWɺDr cq%6?Ɩ%g2o{f~xSwc/Ƌb0ˇ[H;\ϯWn(މW)h"dY*_lՀGS]@ 'AZWmM\O9]vmɵ,ҠBmM0QI(:Y=e'[&duHa?\,PI|0@|| \IK4B_]մ I.ɹ+ >ȧZ95!ZI[boe5mko|Krk%t2T+ϖݖ !ke5mko|.i|=d8ѿ$_ه~1O~pY2?g`6tm0-}mX !岬mM %mG> oS9ݳeOe5mko|.i|=dH|'=l.j\z0l.d+ ~xaMzwO|xS[{ޭ70`~Q:5]*- w'C(_j;r "scÅ9FUur+؈kl=o<}>B :'^oLo[YJ. ՟-6kj^;TvS¯vViUYmYMRz?Tv֪Vm<جƇЮғ>*zZf=B@D@JOJޢqyU^EĬ&Юғ>)g\ku<>V-kj:5멿*D@O-Z{Uj 5R z/iC~NyAN *xfVpڅS}Ijvg;$mh6hzxAxm|z76 8.v6' 7lYiNI+vUͬN hxA *xfVpڅS}Ҋo?>*  0`x CMoc.!"(.Ҩ+_HIQp2'QIrn,#[WMJ c˜0&9IXx7~gxE4}1taMT=l<ܵ{r\=k+/ }Ṿ]'Uѯ6G*~Wr̢|u\n>6Bcd|OUwG2f]6[sN 5f}ǧ1kF9/H@gN ?i 9'qH]m]i7eImv X-Ed%+Ӥf7DtB!ttHݓyO9jNIG|/J/R*(K\qjIݤ~LUK*2<"'i\S1ՄHMqܿ `T228VdEu^RXj-, 3k2'ۺ^Wp'~Sy/xW8Is'PS;S|WȲO500SWrU,sՔc$8|9l/".:M_=pp@e388Դs̕h'"ޖ?2uܴNqn:hh5T9nơpqsI;}dힴ;*L?V㾳 s'2^r\Ԙ t꜕,X ͶvM_[eog{G{{oO8 b*:G?I-&5}&9 e8zE_7cto]U.\&%i$W2(YUMWO"פiJ-Q{BmW??Ϣ?f$׌Ww$H^e…Z{ f0{vf:űzժS`ۙxXxxDdLW;v уI.Ĥp"ɫjI؆dESͳېY'~zulXR>B YiO'C/4iΩzП>ߴdp)A<4gTjOmwIXN]4Q(莀N`ߥg'$"dE %7rrMcAuX A.2+$NoqNJ-'fRGd \'%qNJͿA$zw6rIXN](@tG@_L@E-*V䒾r&+>K⤸$N0RPo@AEKLNJ@wL:;:J82-l^$&M"N`{aojײ/E*˜MVd%uùiI]4RlcC8888888 ]az&btD؁؁{E :Q z~T%@(r53=>-'/\e:V3'qIT>; > 3D1%)8bd I\g>S8O'C,`dFdcy,ӱ"Н40R(莀N'?,P#Aa=,ӱ">+ָ$NP0{ĄzQ g4: #82.}`+BB{]78].2+$|pNSgA8T>}XA>$tt'N)J#/VOdH>)l~ep, $t|gO8spN1S^ g,8C_]e:V3  |w@|:oċI.72n8B+dIXLSI0 0b7J|IMIH&KVMN2RVݬ i\\}pudF6I"v!iʤU#sI`L{F-t BN[&FW\}%ʳ,`]ΟFs4z['T0}j~"a S7  Mũq):6 MrAXKW#T}P1z]Yc;J"[X(A,ӱ"Н4S(莀N'?r*[LŒbqwi9J#e'Llʍ6"`́ !/.2+ |G§ZMb{cFn/ ȿ]e:VFJ#Od8BKKLNJw |w@|*F[MoxAH]_c~w޹$gIb؂LQ`G:Yo)űx،db/d 9pIt2TRW,}X ApIXO'Cm%slɲٟ!]e:V3%e0(ϻԃua|~ի},_o gzɚ8xQ8C,Od.78ܬdU#7؈;˷o,X`ɘΐ{ݿl\]=ZUkꙿ]*D@UjPNLݹUHSv_e*S." *=(9֬w\h%z/إB@D@[%9.zwdCSOTh3Pc]d#SOETh3PcߣS]*D@UzPknzfaУllꩿx mtfҜ>"mE0Jvfꩿ." *=( 9}D`V;¨G+KSO]R! "҃r&tc7~Blv髡iV4`*qqWf:OR Q?yJ[  yHTr錦ʒ[\UߑEU?p-ͶUd<:N:G1/}(6dxdE1lfp p/Z_3^Ц3C a*NT_h/yA^UfVp E{N: :zݫ},_o gzZ *`*NT_S~FM#C a*NT_1hMl< U)éhg}o]hgMK><^P7![ރfVpꢝME6 *xA3S8݇S}ъ_^Ц![0hfp p/ZĐG4 8}8E=* eUOo^TDg,MZÁ$T|s'8!$)#iS>QmM&`&`ubۿx77wGh%yhTz0mcfQ &tSYVMѨrkqq`&硟AH} yHίeRߦ/EU ^&箹=DHt‘El%75jqd#5fCq{>yiD{lcAc""2qq57yK(Qa\lc򥕏fOɬn?<1=ۣ ~^6nA@@1F#],Od ai7 "!IDRRfI);0Oi $@$N. ֫jv렠Gx}n|YQ'dot0Q"Fs&}S&kf[5j/8#8#8#8#8#8#8#G>#DlTtKNX 8c 5EXDy1}o3P%&C.2Rztn .jLoVVuwu>#t:B?5>T oB`{do И.İed`@@GAsTFz-M^ҙ8}AfMXyK,um@ssL I"{.^u^rըDE{<7nkVUJE'[VO6 LLTSQjFf=Y$h2`4=VEWf`f`>&Y*Y;ڄ&fq KZ?y!g]=d-')/ӲeӋ<5$IZ:3J՘V |MVk_gR-+^F,bLM^j!n+L÷xxOIbUolh9A?f0ebٸDCG7fzn^Oq?[1Kd9n8òÉA8}ᘋP/BFF}cD_*đ ! CF:<&s$$bETg>5$y%TNJ@wP:;:fٓI7%̀)ƃ$XN]i@tG@gv4pt $d$tT\CߺXĥp \ '3ɐIb:h? 5?ƃ$ZcE;it!(莀$?O'?= O< pI~ZcE;itaQI~~2-g~=],%s40_ .i;Q wם LŔh29!Kj )\ g28I9ț(Ijb"Ƈ$ﻤX¥p&\>{B|&4ĕ-hA뉴-TjESS!!p[U&ج^q^U@OQrC#l}&a;_Wcv6FG\Ŋn.-GG؁؁W4^ՠGu2$ $4ۉ͊65 G]RKu|gOR8 |L24+F|a3q SpIXN]k@tG@g^12kƴ@Mƃ$XN]h@tG@gY1"oKC(3s7e\%y;^moTc]mYy0 L`$jV(:]`$WzC-Vjo"! ҁn8G>q梨W~M䲴Ovy6K I\ p=!> JV١wf qo_pb#.i[sT'*`PPޙ +}33ƃ$a5/JJ:Vױ"6`[$le f pIvI-ձ">KtF{('guS'H8KY8Ig* >Ѕwqd,;rF^1+TVlPJI6bh]h9Ym̍(+4",{;̛w7M[f l&nPݩ(@≣06]T(QgiZFw_k^{ hDք4, L Hh㴽\%OR+I g%Йg3)A{KjхSL3+~0tP6` ɫ.:VF%ЙWFD-wH\u8Z?'_P(DC@b6DE:>#7~)|m!w(W%I3$nz_!_kE棊nUVD~bi}Xw|eSM =cDl =YlbkԷ# 9wzvnxuIn )H44@dZьa~8$=fq\-kJL<%쌗e LLTs&Yy*Yψ;ln,Y{3oFϥBq-UTk0 0OکC'GYr jFaFI+hT% 0*`FaԜCXr jFaFI+hj܋ycz$ 1-+k> @8`.FS^Ě%vsߕ+oÆ5nf[գӃ1!&ĄX5q݋Kt`s}QOb]Vh,ZUݭ hf0|ĮG Ǟ=ڍg+4V_}_=]G)_r(Qa}/UzbY>xHB}eS]>E Otž%ҽjLDžy<ڵfCzs[Qn4XH<}Jpa I oTXgceiRɗy%7u)`iٜݮXE 5 |1>O'Iқ1.벣~ @$@#1EOH\`#O/y=Z,VU5K[*_5"/"/r俈9}ާh8PegX 8kx"~,P< mz (Ϡ4 ڀ|ll8:G` Y+}6"p;/*MyʋMa#+PKe[,>>ml-fr-oss.map.gznu[+eYs8S}kK>$x2{(D IO tb) A1}^śj4Og"e#oѫ*7 գX7_c"DR7I\kŚ3ՆUNe)x| IMl bdn2(uY7qdYv-]E2]dz#UGYv{w-;\AGytGϷFgln o rLMʸtN_Ygz.(ii5yA+z}M}e+~W}gNc)BgL7?YYޕcc'x>xmh%'c7? @Y:˜¯zOa9ݭ?Y |6mo%t@N\BLeju5#6V?\e[/j ]tEw]t[uN|Kф+Ugު>4 ^gK-^OLē2TMO/"DJͥ9GpTAGRzj1ф%JL&w|Ksr. >YX:T{/8ObKz4AWTthtgMFt;UĖҏ2RiA٣ JsZC>ť99Go1+ VryJф%~sZC>ͥ9Sf8Q04+srgs&|(We:4 \siN| } }r"8]n{4CTth|4g0(NTdzϓI+3O~fwchRA(P~m(z4ѺpZC>ť9=s|`4sJeڼMh‡o]$.OqiNΥ9Q0+#n˜}4YɪIj_ޛPP.,8@=vTŤRqJr%N)Lw<'SOֲ `Xy Xn &|]q24EpNeA-ٮSVVIQYW5+ޕj2|] .'e:IS5/;Ƌ|ф+%JL&AwtPtGG8Q3#B҂O=Ŀ]$Κ.JЁtheڑ&7c"dMxP+2YӅ@GϬ"/v45C&<(+2YEC :U%c µф%R-ӡIН5]JЁthޅA'^ф%~uZC;kJЁt&Ec=%+"?m/6dfZ2m&jK-Xص{t d {7#XHZ}o03Rhb,)raeVڍ@$ JJr/cRy2"*'xs1<̊OXM$L>%yo Ѐi(Xei0翼ylbn^mJy`S}V) `>Y^sc{Cz|!W5 |7|7 v>E]o^=TPB=J(U9T?]O0(5vho_!̠W~)l>Ԩv9oWp"|&՟6'wj5y{"8C8lѠ3ԮTxo>e=Rv9o/Wp"|U3T=Txo>Q.E]D`jg]j RNrd_!hPTWPcR| TS7Wp"|fDmxo>aQՙ]ۛ+C8v J>C_"Ԁ?j>aQչ]ۛ+C8v ʙ<ЌU lGCRzc@heK~`3~ݮT!C ILpMIY乴+>޼a,w6 ]qv=-BG' t@'N\g>~kKtbe]J':Ydَ1uՁ 854H|9HfI~/1WҟmLe]u.N @<&fjeS/TU.\ .2N7hut=ک>@8 "joPx3 4c+[ΗA6:pDHx lQ7ҟmLe]u.N $yM-:_\ũA2Yjys 1&V I -~[s9=y's+[ΗA6:p X_xlX٢n?ۘʺ\ $jD  e3EݙΗlc*pqj.hcyM't-F:_\ũAfLo^޾]|^h(mz}Tw$*>u\7jH H)A'~y"OB)eⴗJ=-Y\i&0ɦ`%?ѕog"o|iGV=6-ZYR_j4Ifi%|SYGqE+] _ foNX1pF믑n~ (2nqiw]?P[fE7x'*Gx3d.5[C/YRǁ.=l_3.qymy{lepc" :r?_otS/R\%9e|̖ ~^W! F#_ilӁi7ʆ *TVhu 4hPeFq5V8iRkPKe[ 22 gh-ewe.map.gznu[+e[wHS}Ξ#.=CG3fIm$@I<~n5"E UTwկ ] q=dy{J»l=kG=U#/rٻGЄdOM=u'Xb)sMs/pdi&|)DyŎ[@DDD A MK~Kf{F0~2Wu -&U 7>uDa[<)sD"xBQ*=tvy7&0]檩UQHvyllǫ8]'YI -,κ1<1 3}0W(Է9Ѷɢݺc >W¹΅3IЄK:,. `vd7g-4rۏ6&6 l'(y:ɛy M=ڙ|zd/ u*IxϤT孃=Fc=F?Ӈ6L_Єs~u-= X(nlr殞GhU' תOcT/x 3dW-no ơėX\B㥨Hԣ'WqFUK6Uw|Ksr. >Gph:U]wX#K6U7>(t2etݍH"^4iS|spi|둏Ἴ2Ut-D UuiVӦ*:#=|T&PAH"piVӦ*:#%CLs9?uIP\մ 9>G/~<>u}$bK6U7>((*SyO,_\Z >CGɐV@_||t./h ^c)9%(JJzń?SˋfӵtY.uN?AܙGGG#Ï>B82828282[↯z}sWFz `;J=_vFzxu rD=$t:DQ3f5mo|.|=Q2N78uF1TuҬMU uG>J ZD U]4iS|spi|둏!p(ɁH".jT\ZzdH+,YށbjWsiM}11OQ+\;z>j}0z?ӇiGGW$b.jT\ZzdHR+Ƴ]wT#K6U7>(+M^bA=)IP f5mo|NΥ9(+)%CS>H"tiVӦ*:#%CZ!ײD U=wiVӦ*:#%y K؁j$CU4iS|spi|둯Lczǎ~@?f1Wڥ-_u0JJ ]?&|V-Cݰ,;u'Xbdd#W^$ۇ$ƉzmʢՆ: hΘOύKa9sW"q/=|`F]# d Y+2Jn!vIM?l?O/*mn`So69nt2L#wlcnBQS+b#6b&;En^]JV!B  '֛eɆ]?X-VX˽];fB@D@TN tBjD?)*hڹ? mMJ~OUczO+Z L;3! "mI,\Sգm^lªдs1" &E1U=D^D/Ыjqlڹ1" &NE1U=`T|[WX81 mMJ~ڢqyLbы- *Zvoz̄&%3i/izbы- +Zvov̄&%Cl/izb*p\aܴsc&D@M4)gbO($a54j Gcۊ'ǥm cᔾ  Hs2LMW4ldkMG)eq4;lvG9{J> 0 >4<* 945tx_u_*NpJ'/Oڙ,xי[P*NpJ'm Oڹ,x׹[P*NpJ'm(Oګ2OUD.+mn`SoճBY [8mfp ]8v"Oڱ,xױ[P*NpJ'TYC U)vNڙ2y*Y릀gx_vKsTP}ʘ|%[M>&!e} "R9K/wRMS$ I(o^; QF=ڸsS;JG3jO|2-&u]%nJۍ#######]G_B%)ii*\j$^kMS0Kc6_ӫ@r%,? w3Ά Άo0"D!,;) AK?dyn(gh{N3PKe[k`3** fr-oci.map.gznu[+eYs8S}k[z؇\d6OfEB֔!8AN,'U!4?(F[yՓ_=?}ʜM&,coX^P2e27Y_eiUnZ^v;HxHwM.m wMjbkֿp6D |4UY\uZe*ۮȕ'6ˎ"LU3wz^ Wng73g7n߬ @˅?eEn* 6=7T1A $69ұ9t<-ZOPRe[]YF嶒ڢJ3VeLmP/Ёt{4:bf&"Ri"K+!JrNv˚]ԝXS 蘘K y>$g6,ZGu7~plk֫O;:JOeS܍Π3 :|O1ǜyƪ!f[Mdz]HgJ&+@2'Y!1WRP~OOƶUuVVl_`$4[]s]˞(m`(TGytG<љ ,AN<{MJ%Ѩ=F>/}E_ }E_絛tv*#EoL{'ʮ6aO9szf|2ip%2-$Eğ$~9q_iZ4m =AlT/K@w]tEwo]:E/YJw-π&\:NI=^ |ob&>?s~h0eI*ɔ.DJG00QБ,VдMP⿮Ttl|g4gN| 8R{\z6 Jr:c;i02Q3A_El%tbZ h‡\$΀Osi,5 9f%a*h%BAf@>͕꘎M 4|; C++h% 6'\$΀Osi|a8Q0M0TWKuiv@>xJuL&w|KsG|0V;Tt6wYI+50O~ ƥPrPhu%JuL&w|KsG02i)K!Gw[Wc:6 3\3 'w@> |Ńz|۲`d:_b^(g`j01S7_dLLf EпL'Ŕό<LGDxǚmq }2v|0 v`MR+LT6$$I Zaފ#Сtǀ&t:c;>ͥ9p|`H+,5xŗbG+MPҕ꘎M4 <YYH #|@>xJuL&w|KsfGVVd 3)hr@p:c;i06Q,BN$VVMxPGWc:6 C :=?r%VpB='S}F\/΀Osi<3(ҷ:;U'ںWd,ߧ']]Q)p|z0p뫸(om-e<MPWc:6 3\3[N| [3ԧLNsMP+1i.͙|; CX*TjxѮZxƕ>LGΤY4[60IBrc)|7AmuGXXMFs p@L=/E \嫢Ha XmAY-?= @M= \u~`$Zj}䬪b#A=V[Wknw9g2.i mVz$j^v|Є+%JuL&AwtQb(A'G(Q3#>օBǟ4ARӱIН4]43Q4yt& hƒ/\$N. %@tJDĻ/|Є%~w:c;i(6Q[b b@xJuL&Awto(A'G+=[Cz`7įTtl|g4gN|&FS=E+"~!b{ |&/olfuW|b^LeJƹgS}R) `>Y`;ߍ}m7ut:lM^ҷ USɭ7|A}`3:_4UuB *'T)^/S`WG IOɵE{[deg:^mVHFq[nԨv9oWp"|&OZv =Z r^E4( vz4-՟-j5y{"8C8Ѡ3.ڡYǤ{^OV#+C8n J>uzLj0m=Zr^E4(Lvz1zo0)jb}Epp-Ag&]Sdޖv ÞRrl_!vhPbPQOVv9ooE4(gb@;V} Aغ緆RzS@heK~`3~ݮT!c ILpIˬ*BZ\ޔްuY};v ]6iv=-BG' t@'\g?^[ͱVgՎ1Ձ 864H|9HfrǛI~/k?ۘ\ $$sM̥MbeΗlc*pql.hr\nMf͎|khׯgS}0q<DԻB̈́2Ll:_-ۘ\ $$&"iZ٢n?ۘ\ $$&u}/TW.\ A,ϵͼ9x1]UJ6[4r{rSw0Vs/mLe}u.ͅ$$&0E@K1Ձ 864HԌ@xffe3/TW.\ Q3&rǛPw"+[ԍtgSY_csAD͘x+߽}?t!,)Qں\TI 9V *|n:4$@ $xbqL quߏC)eWZ꿮Xڰq&0ͦ`%^y ΄lbv Rzm Zܥ ~i0&KX/K#5/՞7m Zܥ ~`qOa7Y;_EVzf}׵ ժ 4Ƕ==Ye|͖͘KUtqd%vۮw[]4=2iFjc;kw^7av_x7䋲g"qvh-?e`?ojV5@X4{6F[$<5WzS\8(_S$ ɑPpw^=Y8A;dhI,Bsk@[h.7iWvk*+vә:Wp}6F&ƚZDjSۅ]Ѷ|wpwpN\aBŐÓ6vأJ$L83ݣK-^Yо& ex d+,zSLZGS$.ڬFh_xsF'CbLkPߩqS^7ۣ)ʗK%uWoTk谉%M@D('U^AᘮV]\.E?-fmGx?F5G7p7p{7NvvxL#\,?h}i%Q (.TAI@3F#3cYXi}٣) n}M?ex8tzuG_ߛ̱eWmV# zN/ ,M^ zw8zLVG{i0Hf5B7~- ~w@~ y&O 26ݣ) /۬Fh_xA8LvCYih įmV# ~-A2l2L`:L *9o 3짶94NOIc-]kpggL_gj?#N*f濯~%:|ZGJZlĺj1X@8X< __,nKI||, "wKVu+|?hh N"rembHt԰֛֦/]{U[]6}Plr㫪X|g7PB UNrWS,+tT?:;[wxmWrl˙~~]rv[0Z].MJ9\UgxupIר\ .ry=T=ގOjz G^_rlxPʙcPcVF5rh `ŃR`:\j~רc/rlxPʙTPcVF05vx `ŃRL:<5kz Q'_7 t3%2oG ]z Q/Kv@6]<('j@=V} AX[CQZtڽ.p˃YuS"h)<. 9\b9"+RG\\/߉U^iZ(aUZ.}GK t@'ЉoHO^g<l˂dl_b̾:ıA lbcR a \ UQROi=yEopOtC._^"Qen8y\{|ԝ` XΊ55.'Q|L ;vjnrnz<x=4.#DݭI'M`#\\闕;[gU17!3MFc[N zX c1111111xbZ!W(@ķ9Ѯɣf` >W¥̅ NИK2$K! `vA[=n/zh>=DoM1l`N0ddor=4/Le,7Jr)2n M~]xo?4#A!bSc=Fc$F>a|ƜHkyʑ|N,gŢ ]vI y_=Dq\>e{W/xτW%ch}tc}q0Lt9؏%Y,g}ļwf4$\|O%P$Y Ȱn[$CTiFӮ*&g:7"J nEb1DҦMK߈|*.+CWdlnYbM3vU7> gU2_eEb1DM3vU7> T2td˚.=H,cӌ]UM%uoD> *რn;f4o|.|#dU?L/kWش|ox8RGo:~5oDЛ.p"1M3vU7> T2 ?͠n-!76hU,\RFSP'+JõtyE=)T=fBfp8U2o pch2Q_'c!Z4{̂ccccccc]uCWH%!+{"= U`{=]&vFzzu j\ T2T+<+WeEb1Dueӌ]UM%uoD> PsVkiX Q]4iW|pI|O%Cj. 5]viX QlѴ Y>ȧZ&5]vmX Qdӌ]UM%uoD> h\^/63_ Y>ȧJWJ䆐1aӞ줁댸,e]}BWf4o|.|#dޡ ȸn+f4o|.|#d# |d6sU|H|U2g"!=yaiA6V=^3VuqIvY, "2[l7D]2FQ`ȣPt]rSD9RMO>33:649Q|o3iYSܜx1^xjQ( ."XM3vU7> T2+\yg!ֈbE@p>H,mӌ]U?䒜Kr|#d(W9YZA G*-!6hU'Kr|#dXX C0ۇ՟6hU,\RFSPXrEvknX Q=iFӮ*&g:7"J*ʧ.[$CT4iW|pI|Jz| ɦ{+|md̞/wda:CUJq>^Cc>tB$O XTqeY;U╽!"Դ:;+wf'o]GI6 Ƅ1aL<&a8+W{ςh`rGo@yDz;FHtƑE"7Eę¹c'qjg3mr{W(kvF90,_ľoMwMeqW*=|*e*U27L%=ۡ ~$+PB*m6ҕ|o.@TA$D:HZ.;*ZYwN ;'QɅ~i5ue$Hc釼Ȓm~m?YbPKe[9 vn-us.map.gznu[+eYs8)Uaryfvl<3{( D IOE@ HWE@7Ci#䯞?H>\yWzўޒ"Pe~Y~dxD`)Ds7,`yR,U dYN mw}XcʅhPdDFdlʵJx⇌w"Y.o#ƯXʩ!?VLVy2.&.<hx7Qi&+Y\d͐?$wEhSga,5]V>A:݄C:Jf| j'4ة{dWh!:K\N_jk=nŻכi3,f/aXN]^Y uz~nV{t2wͳ{i8:2Y%ؗqeDA\*څeUx *nvgxέfej+a~9k۹֗ϺU\-}Ԭ씚>9q:js;vQȺWzSnc7"x~Vs\+ 'mjw;;sP<;LYO kgwh?qnj駅v:sNAa.KȌuSbh/y($N=kȓO\ai v:WXs9`C3 ?ږg"y[_>|Up)kD=4$ɒ l`;àb=4rUQFvrW\6 lgTd'R-z*,7*>|zghυݺ9N3r&Mv=LM.1{G1{ÿzꡱC$ș,`˓bQņ>ِػQx.cec ^OWcܕ_U뇍<D ={z5]GĢ6puU7> T1Wp. 5]!M3\]U%uo@>U ΦEO"QC:$Ctmꪂo|KrQ > ȧ:3EkuH,4U,\RST0aMÊݯ6puU7> T1b˚.}XǦ*Fg:7 *~U S{ #o6puU7>%9)S0@:\t= ~i ,y|t>j1މSiĢ6puU7>%9a > ȧ5m"N'zuXѽi  .I$'7 *2S~G|eh8{b(~$z@6C'8 oSSƞ)/64YEn371^/f.:١wH'!;9z!*vQUŞ&6G~|}U xI(z"n׊ZQ 4U$|OCuT 7;$Ct76puU7>%9)SŰj& yy+oR;$Ctlꪂo|KrR. > ȧj&g5]X]4U,\RSP݁&kv!*Fg:7 *h\^/yݏ6o|.|bXg&jdGY ,xwv餁 qYx.pY|˪6puU7> T1TЉd\MrM3\]U%uo@>U AX̜l8ݤ;j,7_U CzɚD(>A/ϻ, ƦE4/ǂȹU1d1Ϣb>EYsل?9\;$,>l<&MmU SIǡ_UrM3\]U%uo@>U U1O3!5]uH,~i Y> Wéz| ʺiWVi2g;gHL`ꡪbP}~OX8nmn XXTy IVtO枅HT̢I#+"h@'L&,9gWdC ",|LƱ]gh] `*j!E;V-zn6E|>$n_6Zʗf0fFSŚ^Y|S3ޏ:[?XSFn4ZٗEys&!BU1W^{?vYnȭ&ӫk jngLHHhE9W^P9)џ,i<̈́HI-Jz5]V?/OlJ14^fBB$DBӤ%\Zޚ/'4Xv/l3!!"iR^iw].UO;=V,kJqii  MZJrzIc~U3NLHHhԢW]KNxe V)u;7o3!!"iR^tMO/0lJqiE  MZ kz&B'6X4޲̈́HI-x\LO44kJћ,nE^E޳L UepX$9IU\􊦛8K7q~}Ki}$n7ETMrK!dL$0 Lꇆk74F×w (^"hu.&yCn4 9aN<'Ê=}= #郡O8oJtQd"/"yb oWĀā>Tz`m[yb&-A+5Hmo3Jl}M~cmʻ,I3b-2!Τ.zrW4H?8;B\6v4;'E`AF[Ewk|юW4_юFk򩐧iΒٶ4_2:=zOd:tBFz'{M?]u 2!ӓTxb_ז.9cA|$п`WG~|vOf.:ҾHhi'~4{o>oWjDpZԖSnqwD#######_xWɇTD(jqΏ.p \v 6!CvM@vZ lghhG;"DZ5|<$H }ҳȒ}~WmaslPKe[V8 jp-kana86.map.gznu[+e[w:ϧ{׬en;qgݒu!g_^epOWI^h \W]2eM&*領d'8ܞ,`˓b)s'sˣKd &0 L2W2WyCʭMa^<)sT梀G :(9*2ݞk &0 L2Wd9̢,mz.p \ \6l#:(|%_>4ߐF0\r)IquSUs > ħNd2\pE|"܄yOUZ>o >  'g>=&Wn7IҤ' ,`˓bQF.wŷFCM=x3*oF 2i_:Q>lO;(ސj]Ӏ#######򓏈87^׷pdHbLkVUɘmG:=8O0Lvg"uT4`1M]J%57 J2䬢o !ٔѵ,\R|d8p*Z# !W6etm+7> ߀|*.+CWdl尴b1DѦm%Fg|O=1zR&C_@- !?lVo|.T2td,CT)k[ YS-7|TvhX Q})k[ YS+@_Tu}Oī76հg#5dx%^UIż6etm+7> ߀|*?&iRrؾb1Dm%Fg|O%CªPC|oc~Buʇ[v"*@T5y4S}e7lp}KrRܗ;}'81NL$?;{%/ s`;^+Uw4ݨQ_]&\?wNEAa۔ѵ,\R|dV{W 尬b1DuaSF׶|#pI > ȧa*6 !s2Kjo@> ՊVv`Zڔѵ,\R|dg-]7X,fSF׶|#pI > ȧayGt.  7zmS?%57 J;%WE;rEW=[)p=!.  \*ʧ*Z^6X,ڔѵ,\R|d 늖;2Kjo@> c:(3#hɎ}|ldOd yb4a4nlTw|Nv0a„ '*;P.n%qj2xywV6_SCM~NvdC:[ ͣ<6bh&փaEK6X,kSF׶|#pI > ȧzgX+Z`M]J%57 J#$߫h9l`ziSF׶|#pI > ȧayL<%$Vb1D٦m%Fg|O%Cu+2[rتb1D¦m%Fg|O%E CHEa6etm+7> ߀|e2 ;nSG6}^̯x{1; L"5Aduu݊be XXTqe^&}垤Q"v0'i}CGЀ4OF%yG{a uNb{"fq~9,}ݵ d :e.d+~|hݳ_/k[z3 _3JT+9ndOzGLY؈=hl5 ڗy|oa„ O4U2+xN,Kbrnp7i-߱&D@4I9+InWNb5S&D@4Ԥ+&tj[\lޢUNyǚlR,\SQ[3yIM4}5! "٤&%]q,]+]ыwjZ_p &5)Je1UXޤZl[*ͩNM5! "٤&%],]+s{5ҜX" MjRҕIKzfzn|UskB@D@IMJBlI/L~+Tl~P*ͅN-5! "٤&-(檫L/ӯ5t&zQeoE\EܓLW~BAW?oc2$ #')ˌhXI7ɷdwH,'iVv9>iGpGxA4mϳu5w3 8>'t\F#4v3 8>'tBF#4v3 8>'a:gSG絭]~`Wo*YgA|Ms(NpN)?i^СGhfp }8U'팟S^СSM(NpN9?io6_U]#:| >^P7OnFpڇOIu5mV=:ѴQ݌NhonHa?@SRIXD*a„ O4U2wΈWaWθ ٭yėp}XlaoPoƾ6Uh5SCττττ?c8gKW{πd`bg53"."qd͡oLĀ>Ty^Zq̣ފ'-'3?N*io-[%awa\ cm‡4JR?!JDB'I]w*oSuz)Z_֯v6;>F7yNu0 "Ex7l'v(P

#>#>#>#>#>Ή4 Gl.?+CէnCluY^ܐ;oYF,!?}^PKe[sAAde-sundeadkeys.map.gznu[+eKs8)|*)鰇ĉgf'3"!kJtH*K<IQ%ŖU!hv-H_=.vN{x˚:.p f,۱F'/l*Dmʥ ̾ExN,'bƚ@5-Ō ߋfDs)a٬n0 L`jw*cU GƱdPVNP1֣pq$cI(3)f 7։rUI-+"<(cQ$K1.ĵUNF?U)[6 &0 Ln3VXK)T2dD:"dƮ \~3MX&BgSuk-Z$Ϊ$e7tPǭA h@43M7(RD0'],'[ݱf;spߧ L`O-AT>Kbgel*A<;:w|iY5}Fm Z֣h=Z֟|_#)g0VŨh=w(dz}\%9۪]VoG{^E{^2S[)ԍ+Xô0X҇{D֏+V7yWT=FsМ6' 4٭9%e,ntFm|Rjʲ(ip;ܟ; |wպx~?\߷ htmM=^ߒMyPgocO._<$t+-WDRSYtPip O$  +zE76XI酾MDW_]㺭 3S\siN|4N`GR|ʶ:rbȠNmMН4]JЁt4M͕Fl@5ݛ`MdP}nk"PtG7*d)X]Ʊi4Cߺ,u[|g4'Ҝh0`(_zS{?4AvY&N.J %@w:̌=$j \D%~mMН4]JЁt4Tl9fau?Ks5 ;]85it|7=t C *Č &+.qi.͙M 'w@> #H]D)9W7V3p?JmMҜ3h043橂L$,OX/ᕥ^ڣ fze"_.T'Bʏs3&ui^v'bUK-VZ&/2m\ˏh/ڋ߷eggͪZv }b@[tD`;k`gݐ'`/z-=bQJ3#M^Jr\5w|KsG!| ]A)xDcSXh"]㺭 3S\.'_|;  f&L,J>Z&D%^uY&΀Osild8`H3cek&n{r6 &r(qe9ۚ;>ť9=o>C^:Δ$MP.q).ɹ4'w@> XM |ǻ-ҡDw|Ksr. >C3C)w}c/Wś|e\fFRܳ*/nAlĐD@DY$/PGw4Q_H-[,N9t[] gk3AXQ3ETMpAb@9xe9ۚ;>ť9$GYsed6_f˟+h`~Yl#043Qz( Ar`_Tp}"ih+\+ |v`"Dr!7(QgI!MT7UǢxS٧fQbƪ:]˺?~S=}cNM4R3yED %e9ۚ;ihj(A#Gkè'#KPˀ&2(.qIEC :?inz5 t@mMН4]JЁt4c|I˿ҙti@r\5AwtQl(A#G3(b򎩗JA4A]㺭 S398%@w:̌XO5Vto胖Ƞį]㺭 @goNUr)l\HUt3g,-`ӷ0`S!l,D6X'bb"Oˢ\|GClakK?||KKU-گ? 9РbfdBDsk Eh2]-3ViY]꘎yQ/z;TE~-Fb-~r-/sQwIU5'沷vW} f0ifk4̒E|7:7QXMNk n:;77o*TPQ?~įuYK+Z׮6U!!"[e:e̟]!9meZ<  *I+UM?nMV] ЭNɟxjGRIQOVC 7U!!"[E?1zvUϺ<&՟-zj<^  *Iz1Zmjlx*$DB$tS'֮ڮYǤ^ VcoBB$DB:%2_"So[jubxMUHHVQO]Kdޖ_-zj:y*$DB$tSNm_[(a4j"yy:3B>*d(9$ 3'1˘?tVeQH盷lQV_uêu4l}w!!t4@#4bcYe;ŋ:a7@PGP:i}yNdXS nNtʂ:lݜAtA I{5U6k:vW} f0ifk4ջBY$e;:ts E}6'm$ ~hdN!3 9">I;'m, ~hlN!3 9">I;',ӂٷIlv٨Medx{9">v2'/ ~oN!3 9">Ih2àS (#(HБe;0J'})IyYcx0 Gg?I&5? 0`8A_FZ 'P-ǩj9YERn+qVKVV,iX%Y*=ǯC6Mhڄ6=6їx-]\֫ -jl]ȋKY·z`ċԀ/_<5i|ADvu"/"mC;~uV&Uv. >cm~C]~Oj!JdBd.> 7XZ[{ظwo?4;?/l4Hsi^}̰f W% ߩFfiїWe%žnjLg'Y@@@|aF>=[6B<߶ 2D&ӻ}H!yYWQs,H@gNB R>i y~ҺKV5(_V,(F(bKUg<})nMm7>|"D'Oȟ]W?IQegͶ# \׀f=(+(ϳzkJgPRo#݀|7lq6f ޟB Uk4VlcU^fРAv^uS"/V*)~?1 M#PKe[// fr-oss.map.gznu[+eYs8S}k[z؇\d6OfEBִ!8AN,%U!4?(F[.'ӿz~-9xM^Yz/ް&ڣ.p \e~e:c!o4Ҫ\K.vݳN׹LOR5A\B$LfɋrTeqjls-]EIb#IʣѢ ,U渿ޗuoTzYn*-4c[6Τq@'3/ֱo&i"!"ElF.bkXt(dF؂5~JLznâuTi}<VM-zIqUGljtAgЙ333XR^9Su|6Yo ]UI[?PT,UqBD`@8+#4ZJ*fʊVf}m 及<:Σ<:5:Ssa%)3ǖϕqO靾^鹠=055s+]9New͟)]O/dUf[:3g'Y"*BRDIS6+q ,eLW<ޑ~XaNOV_~ 5kC |#L-|Oؤs<ίFtEw]tVݥ0_anty h•3ZT/x `W].vn(?'S\ƞ,V^h D:֕xJuL&w|KsfG00QБW4MP⿮Ttl|g4gNo| 8R{*Є%^RӱIН4]JЁtLPEHGhĴЄ%޹RӱIҜYj8=rJ$TJ.U<)67oTtl|g4g 'G> fW2WJ.Bz|Є%JuL&w|Kqr. >푏o\.TMP+1i.͙/ 'G> kܡLٕ{h3~G14q {(IOM?\$΀OqiNO(F2M9%Rro~@>xJuL&w|KsGx_p[L竔U^2)?ST@T@T8 t0_tLuvq#O~|g4g>5(ҷ>;\f :^ْ|"w-GuB\GVG2o<+󌮲o4B_\$΀Osili8=Q0ouJ4 Є%^RӱIҜKs|{`hX%YM\"U /޸R#Wrș4fc&0="iUhVn,?#HM0a!ڿgUv27Ug̙R,#, =qR0Zs",` fl<44$pUA5-Zj}Y笪b#A=V[WknGw9g2.i mVz$j^v|Є+%JuL&AwtQb(AQoؑ|B҂OĿ]$N.JЁthez#M(onjEf Wc:6 C :Y 9=|/ijMxPwWc:6 bC :U%c g`sWc:6 }C :oayL'įTtlt'M2C :hdeBBݏ'/Y*S)fVݥRcfU :@2=^,$D{`T'E5[ee1Y*]EF]N %_%ės)hg w]<9 FfE'D&yY&c"o Ѐi(Xyi0翼z)}yK}z1Q)}FVK!0q<D gE|7cH!d)6y}H~TM% {M|Tev *TPR03J/_re,Տ&| Rkv!a ʘt۬H㶰݂YOQrޞE4( >TM{J弽`W!vhPjPhx[?kXT] w!a%uU:=&՟-zJ弽hW!vhPLPcRi{Xm)jl]Epp-AgR]CճNI {AOV*C8n J>3邟"o[juff[D4-5w-zJ:y{]Epp-A9ڱ[PH =5j՛E+] _3 NN2 ̑?F  Hh̪(M +RǮW;aC&mvv}:NAÓ!c+[4l2:p/Lx3iY{UgSY_csA$d.wIlQ7ҟmLe}u. P͢Ҭy/y >5]0z7X(wP-TˠeSY_csA$$;D$mB+[ ugSY_csA$$;ބ[٢?ۘ\ $39HW<//6BiF4p _\bOxc`eа\ű0d6ė;ބ:V|6:p1oB̬lQw?ۘ\ $jTx]deΗlc*pql.ho#⻷s7$e3<=J[>+խ[  BA0y͕ZH J(7ϤW8"Y&{խ능 &L`l VG7LX/n0)ժE+] _|m4R RYOqE+] _ fo'T1F;믑?y (*\]Ӣ u6Z~4VW<'kt񵌯ٲ{ɲn8v~۵wזV9 7(7b_slY N;kof}|QV,Y=-CL_fU 5Jw1vc<'3P|jQ: Gk$ 9r .֋rݴ'됐'x~mcbc{؟=`\嗟hT5piv[i}ǜ/Y$V Ru${P $hLE e2g_Әqǿ,ٺ'/q oʘy.2e?$> yUU5+4",b[S[t9ΘZU%]TꂎP*BE3Ts =֧h:fEk|/K'է<;L5#M u GpȌg0%rv[pWez:|P5P١6;ҹ;$p!뚾vi{o PWr\\=&t.Eȿ_ʗQJn߻xxOMbvol9A?3ߋ築G4BQ,ŀ[y=iD#_45K8V#D 'F8tcoBsbBѧ7OD)5KB8DĄل`oS}GDC11l8y&5T@wȠ:{t6:-o7̂)z8AmRCut'. J'@gW*DDѱSp҇"I ա">K4N#3ɐ)L\,%S3^ .;Q wם턡 LŔh259!uE&5Tw4.3|Ggad(Ejb"{8CmRCu|gO8npMz&g. v7DZ5@iάg$B%NB$ZV 6e|`6 S?Hnwz$l6Ca?q&.f|զX}r";;w6ً2I12Ver=Ʉȋ6:T3qi>;"> 팑hDh!fg=tUP*ީS4LMfX CUIz8CmRCu|gO8El23IjHwϧ {Sl5D. nk]ˊs \g&Q;HOt#BSHhgJ[5.É t+9Dڛ6VBm.MS4NK>;"> JcP,4 F3It'iD&mk$P̠*:*̞XOJ,cu>]گb$/% 2~sHGbDh = 62; = 15; = 21; = 22; = 29; = 30; = 37; = 38; = 45; = 46; = 53; = 54; = 61; = 68; = 16; = 17; = 23; = 24; = 31; = 32; = 39; = 40; = 47; = 48; = 55; = 56; = 63; = 58; = 11; = 18; = 19; = 25; = 26; = 33; = 34; = 41; = 42; = 49; = 50; = 57; = 13; = 27; = 28; = 35; = 36; = 43; = 44; = 51; = 52; = 59; = 60; = 12; = 64; = 91; = 10; = 90; = 93; = 92; = 14; = 94; = 95; = 96; = 97; = 98; = 99; = 100; = 101; = 102; = 103; = 104; = 105; = 106; = 107; = 108; = 109; = 110; = 111; = 69; = 112; = 113; = 88; = 80; = 81; = 87; = 114; = 115; = 116; = 83; = 74; = 75; = 82; = 117; = 70; = 76; = 77; = 65; = 71; = 72; = 89; = 66; = 73; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; virtual indicator 1 = "L1"; virtual indicator 2 = "L2"; virtual indicator 3 = "L3"; virtual indicator 4 = "L4"; indicator 5 = "Caps Lock"; indicator 6 = "Num Lock"; indicator 7 = "Scroll Lock"; }; xkb_keycodes "pc102" { include "sgi_vndr/indigo(pc101)" = 118; }; PK(f[4*Ucckeycodes/sgi_vndr/indynu[default xkb_keycodes "universal" { minimum= 8; maximum= 255; include "sgi_vndr/indy(pc105)" alternate = 91; alternate = 100; alternate = 101; }; xkb_keycodes "pc101" { minimum= 8; maximum= 255; = 22; = 30; = 38; = 46; = 45; = 54; = 62; = 69; = 70; = 78; = 77; = 86; = 93; = 110; = 21; = 29; = 37; = 44; = 53; = 52; = 61; = 68; = 75; = 76; = 85; = 92; = 99; = 98; = 28; = 36; = 35; = 43; = 51; = 60; = 59; = 67; = 74; = 83; = 84; = 90; = 26; = 34; = 42; = 41; = 50; = 58; = 57; = 66; = 73; = 81; = 82; = 97; = 100; = 33; = 25; = 49; = 96; = 65; = 16; = 15; = 23; = 31; = 39; = 47; = 55; = 63; = 71; = 79; = 87; = 94; = 102; = 95; = 103; = 106; = 111; = 118; = 119; = 108; = 109; = 117; = 107; = 105; = 104; = 114; = 126; = 127; = 134; = 140; = 116; = 125; = 133; = 132; = 115; = 123; = 124; = 113; = 122; = 130; = 129; = 120; = 121; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; virtual indicator 1 = "L1"; virtual indicator 2 = "L2"; virtual indicator 3 = "L3"; virtual indicator 4 = "L4"; indicator 5 = "Caps Lock"; indicator 6 = "Num Lock"; indicator 7 = "Scroll Lock"; }; xkb_keycodes "pc102" { = 91; = 27; augment "sgi_vndr/indy(pc101)" maximum= 255; minimum= 8; }; xkb_keycodes "pc104" { include "sgi_vndr/indy(pc101)" minimum= 8; maximum= 255; // These key names are here to support so-called "Windows95" // keyboards like the Microsoft Natural keyboard. = 147; = 148;

= 149; }; xkb_keycodes "pc105" { = 27; augment "sgi_vndr/indy(pc104)" minimum= 8; maximum= 255; }; xkb_keycodes "jp106" { = 22; = 89; = 91; = 141; = 142; = 143; alias = ; alias = ; alias = ; augment "sgi_vndr/indy(pc101)" minimum= 8; maximum= 255; }; // can be combined with any other "indy" keycode // description to add virtual keys which can be // used to implement an overlay-based numeric // keypad. partial hidden xkb_keycodes "overlayKeypad" { = 17; = 18; = 19; = 146; = 145; = 144; = 136; = 137; = 138; = 135; = 139; }; partial hidden xkb_keycodes "shiftLock" { indicator 5 = "Shift Lock"; }; PK(f[)% keycodes/sunnu[// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // xkb_keycodes "type6" { minimum= 8; maximum= 132; = 36; = 37; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 49; = 50; = 60; = 61; = 62; = 63; = 64; = 65; = 66; = 67; = 68; = 69; = 70; = 71; = 72; = 73; = 74; = 20; alias = ; = 83; = 84; = 85; = 86; = 87; = 88; = 89; = 90; = 91; = 92; = 93; = 94; = 95; = 96; = 106; = 107; = 108; = 109; = 110; = 111; = 112; = 113; = 114; = 115; = 116; = 117; = 26; = 126; = 127; = 128; = 129; = 12; = 13; = 15; = 17; = 19; = 21; = 23; = 24; = 25; = 14; = 16; = 18; = 8; = 10; = 32; = 33; = 56; = 58; = 79; = 80; = 102; = 104; = 29; = 30; = 28; = 105; = 53; = 54; = 78; = 75; = 76; = 77; = 132; = 98; = 99; = 100; = 119; = 120; = 121; = 97; = 101; = 57; = 27; = 31; = 34; = 35; = 51; = 59; = 81; = 103; = 130; = 125; = 52; = 9; = 11; = 55; indicator 4 = "Caps Lock"; indicator 3 = "Compose"; indicator 2 = "Scroll Lock"; indicator 1 = "Num Lock"; }; xkb_keycodes "type6tuv" { include "sun(type6)" = 131; }; xkb_keycodes "type6_jp" { include "sun(type6)" = 122; = 123; = 124; = 118; }; xkb_keycodes "type6_euro" { include "sun(type6)" = 131; }; xkb_keycodes "type6unix" { include "sun(type6)" }; // Even though this is labeled as _usb, I verified these keycodes as accurate // on my type5 serial and type6 serial keyboards as well on linux-2.6 boxes. // I'm not sure where the "type6" keycodes above are coming from... default xkb_keycodes "type6_usb" { include "xfree86" // = 232; // = 133; // = 134; // = 135; // = 140; // = 248; // = 191; // = 192; // = 122; // = 188; // = 245; // The blank has keycode 239 on my type6 serial kb, but 134 on // my type6 usb keyboard (same as ) // = 239; // AltGr + PrScr actually sends a different keycode // = 92; // = 160; // = 174; // = 176; // = 222; = 155; = 160; = 235; indicator 4 = "Compose"; }; xkb_keycodes "type6tuv_usb" { include "sun(type6_usb)" // = 94; // = 51; }; xkb_keycodes "type6_jp_usb" { include "sun(type6_usb)" alias = ; // 123 alias = ; // 131 alias = ; // 129 alias = ; // 208 indicator 5 = "Kana"; }; PK(f[DDkeycodes/emptynu[default xkb_keycodes "empty" { minimum= 8; maximum= 255; }; PK(f[|'//keycodes/atarittnu[default xkb_keycodes "us" { minimum= 8; maximum= 255; = 9; = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 18; = 19; = 20; = 21; = 49; = 22; = 23; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 36; = 91; = 37; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 51; = 50; = 52; = 53; = 54; = 55; = 56; = 57; = 58; = 59; = 60; = 61; = 62; = 64; = 65; = 66; = 67; = 68; = 69; = 70; = 71; = 72; = 73; = 74; = 75; = 76; = 106; = 105; = 90; = 79; = 80; = 83; = 88; = 85; = 107; = 108; = 109; = 110; = 111; = 112; = 113; = 82; = 114; = 115; = 116; = 86; = 117; = 118; = 119; = 120; = 121; = 122; }; xkb_keycodes "de" { include "ataritt(us)" = 104; }; PK(f[n8pkeycodes/fujitsunu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_keycodes "138" { minimum= 8; maximum= 255; = 37; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 49; = 50; = 51; = 61; = 62; = 63; = 64; = 65; = 66; = 67; = 68; = 69; = 70; = 71; = 72; = 73; = 84; = 85; = 86; = 87; = 88; = 89; = 90; = 91; = 92; = 93; = 94; = 95; = 96; = 97; = 107; = 108; = 109; = 110; = 111; = 112; = 113; = 114; = 115; = 116; = 117; = 52; = 118; = 127; = 27; = 128; = 125; = 129; = 10; = 130; = 23; = 75; = 119; = 56; = 13; = 14; = 16; = 18; = 20; = 22; = 24; = 25; = 26; = 15; = 17; = 19; = 137; = 138; = 139; = 140; = 141; = 142; = 143; = 144; = 145; = 146; = 147; = 148; = 153; = 154; = 155; = 156; = 149; = 150; = 151; = 152; = 34; = 59; = 81; = 105; = 126; = 9; = 30; = 21; = 29; = 82; = 83; = 12; = 35; = 32; = 36; = 28; = 74; = 60; = 33; = 103; = 57; = 80; = 11; = 55; = 54; = 133; = 79; = 76; = 77; = 78; = 53; = 99; = 100; = 101; = 58; = 120; = 121; = 122; = 98; = 102; = 31; = 123; = 124; }; PK(f[ 4.""keycodes/evdevnu[// translation from evdev scancodes to something resembling xfree86 keycodes. default xkb_keycodes "evdev" { minimum = 8; maximum = 255; # Added for pc105 compatibility = 94; = 49; = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 18; = 19; = 20; = 21; = 22; = 23; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 51; alias = ; = 36; = 66; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 50; = 52; = 53; = 54; = 55; = 56; = 57; = 58; = 59; = 60; = 61; = 62; = 64; = 37; = 65; = 105; = 108; // Microsoft keyboard extra keys = 133; = 134; = 135; alias = ; = 9; = 67; = 68; = 69; = 70; = 71; = 72; = 73; = 74; = 75; = 76; = 95; = 96; = 107; // = 107; = 78; = 127; // = 419; = 118; = 110; = 112; = 119; = 115; = 117; = 111; = 113; = 116; = 114; = 77; = 106; = 63; = 82; = 79; = 80; = 81; = 86; = 83; = 84; = 85; = 87; = 88; = 89; = 104; = 90; = 91; = 125; = 191; = 192; = 193; = 194; = 195; = 196; = 197; = 198; = 199; = 200; = 201; = 202; // Keys that are generated on Japanese keyboards // = 93; // Hankaku/Zenkakau toggle - not actually used alias = ; = 101; // Hiragana/Katakana toggle = 97; // backslash/underscore = 100; // Henkan = 102; // Muhenkan = 132; // Yen = 98; // Katakana = 99; // Hiragana = 103; // KPJPComma // = 97; // Romaji // Keys that are generated on Korean keyboards = 130; // Hangul Latin toggle = 131; // Hangul to Hanja conversion // Solaris compatibility alias = ; alias = ; = 121; = 122; = 123; = 124; = 136; = 137; = 138; = 139; = 140; = 141; = 142; = 143; = 144; = 145; = 146; // Extended keys that may be generated on "Internet" keyboards. // evdev has standardize names for these. = 109; // #define KEY_LINEFEED 101 = 120; // #define KEY_MACRO 112 = 126; // #define KEY_KPPLUSMINUS 118 = 128; // #define KEY_SCALE 120 = 129; // #define KEY_KPCOMMA 121 = 147; // #define KEY_MENU 139 = 148; // #define KEY_CALC 140 = 149; // #define KEY_SETUP 141 = 150; // #define KEY_SLEEP 142 = 151; // #define KEY_WAKEUP 143 = 152; // #define KEY_FILE 144 = 153; // #define KEY_SENDFILE 145 = 154; // #define KEY_DELETEFILE 146 = 155; // #define KEY_XFER 147 = 156; // #define KEY_PROG1 148 = 157; // #define KEY_PROG2 149 = 158; // #define KEY_WWW 150 = 159; // #define KEY_MSDOS 151 = 160; // #define KEY_COFFEE 152 = 161; // #define KEY_DIRECTION 153 = 162; // #define KEY_CYCLEWINDOWS 154 = 163; // #define KEY_MAIL 155 = 164; // #define KEY_BOOKMARKS 156 = 165; // #define KEY_COMPUTER 157 = 166; // #define KEY_BACK 158 = 167; // #define KEY_FORWARD 159 = 168; // #define KEY_CLOSECD 160 = 169; // #define KEY_EJECTCD 161 = 170; // #define KEY_EJECTCLOSECD 162 = 171; // #define KEY_NEXTSONG 163 = 172; // #define KEY_PLAYPAUSE 164 = 173; // #define KEY_PREVIOUSSONG 165 = 174; // #define KEY_STOPCD 166 = 175; // #define KEY_RECORD 167 = 176; // #define KEY_REWIND 168 = 177; // #define KEY_PHONE 169 = 178; // #define KEY_ISO 170 = 179; // #define KEY_CONFIG 171 = 180; // #define KEY_HOMEPAGE 172 = 181; // #define KEY_REFRESH 173 = 182; // #define KEY_EXIT 174 = 183; // #define KEY_MOVE 175 = 184; // #define KEY_EDIT 176 = 185; // #define KEY_SCROLLUP 177 = 186; // #define KEY_SCROLLDOWN 178 = 187; // #define KEY_KPLEFTPAREN 179 = 188; // #define KEY_KPRIGHTPAREN 180 = 189; // #define KEY_NEW 181 = 190; // #define KEY_REDO 182 = 208; // #define KEY_PLAYCD 200 = 209; // #define KEY_PAUSECD 201 = 210; // #define KEY_PROG3 202 = 211; // #define KEY_PROG4 203 conflicts with AB11 = 212; // #define KEY_DASHBOARD 204 = 213; // #define KEY_SUSPEND 205 = 214; // #define KEY_CLOSE 206 = 215; // #define KEY_PLAY 207 = 216; // #define KEY_FASTFORWARD 208 = 217; // #define KEY_BASSBOOST 209 = 218; // #define KEY_PRINT 210 = 219; // #define KEY_HP 211 = 220; // #define KEY_CAMERA 212 = 221; // #define KEY_SOUND 213 = 222; // #define KEY_QUESTION 214 = 223; // #define KEY_EMAIL 215 = 224; // #define KEY_CHAT 216 = 225; // #define KEY_SEARCH 217 = 226; // #define KEY_CONNECT 218 = 227; // #define KEY_FINANCE 219 = 228; // #define KEY_SPORT 220 = 229; // #define KEY_SHOP 221 = 230; // #define KEY_ALTERASE 222 = 231; // #define KEY_CANCEL 223 = 232; // #define KEY_BRIGHTNESSDOWN 224 = 233; // #define KEY_BRIGHTNESSUP 225 = 234; // #define KEY_MEDIA 226 = 235; // #define KEY_SWITCHVIDEOMODE 227 = 236; // #define KEY_KBDILLUMTOGGLE 228 = 237; // #define KEY_KBDILLUMDOWN 229 = 238; // #define KEY_KBDILLUMUP 230 = 239; // #define KEY_SEND 231 = 240; // #define KEY_REPLY 232 = 241; // #define KEY_FORWARDMAIL 233 = 242; // #define KEY_SAVE 234 = 243; // #define KEY_DOCUMENTS 235 = 244; // #define KEY_BATTERY 236 = 245; // #define KEY_BLUETOOTH 237 = 246; // #define KEY_WLAN 238 = 247; // #define KEY_UWB 239 = 248; // #define KEY_UNKNOWN 240 = 249; // #define KEY_VIDEO_NEXT 241 = 250; // #define KEY_VIDEO_PREV 242 = 251; // #define KEY_BRIGHTNESS_CYCLE 243 = 252; // #define KEY_BRIGHTNESS_ZERO 244 = 253; // #define KEY_DISPLAY_OFF 245 = 254; // #define KEY_WWAN 246 = 255; // #define KEY_RFKILL 247 = 372; // #define KEY_FAVORITES 364 = 382; // #define KEY_KEYBOARD 374 = 569; // #define KEY_ROTATE_LOCK_TOGGLE 561 // Fake keycodes for virtual keys = 92; = 203; = 204; = 205; = 206; = 207; indicator 1 = "Caps Lock"; indicator 2 = "Num Lock"; indicator 3 = "Scroll Lock"; indicator 4 = "Compose"; indicator 5 = "Kana"; indicator 6 = "Sleep"; indicator 7 = "Suspend"; indicator 8 = "Mute"; indicator 9 = "Misc"; indicator 10 = "Mail"; indicator 11 = "Charging"; alias = ; // For Brazilian ABNT2 alias = ; }; // PC98 xkb_keycodes "pc98" { include "evdev(evdev)" }; PK(f[Ą keycodes/xfree98nu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // // default xkb_keycodes "pc98" { minimum= 8; maximum= 255; = 8; = 9; = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 18; = 19; = 20; = 21; = 22; = 23; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 36; = 124; = 121; = 37; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 120; = 49; = 50; = 51; = 52; = 53; = 54; = 55; = 56; = 57; = 58; = 59; = 122; = 123; = 89; = 60; = 61; = 104; = 105; = 106; = 107; = 108; = 109; = 110; = 111; = 112; = 113; = 114; = 115; = 90; = 91; = 92; = 93; = 94; = 64; = 65; = 63; = 62; = 66; = 67; = 68; = 69; = 70; = 71; = 72; = 73; = 74; = 75; = 76; = 77; = 78; = 79; = 80; = 81; = 82; = 83; = 84; = 85; = 86; = 87; = 88; indicator 1 = "Caps Lock"; indicator 2 = "Kana"; }; PK(f[&7I I keycodes/amiganu[default xkb_keycodes "usa1" { minimum= 8; maximum= 255; = 77; = 88; = 89; = 90; = 91; = 92; = 93; = 94; = 95; = 96; = 97; = 8; = 9; = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 18; = 19; = 20; = 21; = 73; = 74; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 76; = 107; = 106; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 49; = 50; = 104; = 57; = 58; = 59; = 60; = 61; = 62; = 63; = 64; = 65; = 66; = 105; = 108; = 110; = 72; = 111; = 109; = 78; = 103; = 84; = 87; = 85; = 86; = 98; = 99; = 100; = 101; = 69; = 70; = 71; = 82; = 53; = 54; = 55; = 102; = 37; = 38; = 39; = 23; = 68; = 75; }; xkb_keycodes "de" { minimum= 8; maximum= 255; = 77; = 88; = 89; = 90; = 91; = 92; = 93; = 94; = 95; = 96; = 97; = 8; = 9; = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 18; = 19; = 20; = 21; = 73; = 74; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 76; = 107; = 106; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 49; = 50; = 51; = 104; = 56; = 57; = 58; = 59; = 60; = 61; = 62; = 63; = 64; = 65; = 66; = 105; = 108; = 110; = 72; = 111; = 109; = 78; = 103; = 84; = 87; = 85; = 86; = 98; = 99; = 100; = 101; = 69; = 70; = 71; = 82; = 53; = 54; = 55; = 102; = 37; = 38; = 39; = 23; = 68; = 75; }; PK(f[keycodes/READMEnu[The keycodes component of a keyboard mapping specifies the range and interpretation of the raw keycodes reported by the device. It sets the keycodes symbolic name, the minimum and maximum legal codes for the keyboard, and the symbolic name for each key. The keycodes component might also contain aliases for some keys, symbolic names for some indicators and a description of which indicators are physically present. PK(f[keycodes/aliasesnu[ // keycode aliases for phonetic keyboard maps default xkb_keycodes "qwerty" { alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; }; xkb_keycodes "azerty" { alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; }; xkb_keycodes "qwertz" { alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; }; PK(f[cvJ J keycodes/ibmnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // xkb_keycodes "rs6k-101" { = 9; = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 18; = 19; = 20; = 21; = 23; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 36; = 37; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 49; = 51; = 52; = 54; = 55; = 56; = 57; = 58; = 59; = 60; = 61; = 62; = 63; = 65; = 66; = 68; = 69; = 70; = 72; = 118; = 120; = 121; = 122; = 123; = 124; = 125; = 126; = 127; = 128; = 129; = 130; = 131; = 132; = 133; = 134; = 83; = 88; = 93; = 84; = 89; = 94; = 91; = 87; = 92; = 97; = 98; = 103; = 108; = 113; = 99; = 104; = 109; = 114; = 100; = 105; = 110; = 101; = 106; = 111; = 116; = 107; = 112; indicator 1 = "Caps Lock"; indicator 2 = "Num Lock"; indicator 3 = "Scroll Lock"; }; xkb_keycodes "rs6k-102" { include "ibm(rs6k-101)" = 53; }; PK(f[Σkk keycodes/hpnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_keycodes "hp-101" { = 23; = 31; = 39; = 47; = 46; = 55; = 63; = 70; = 71; = 79; = 78; = 87; = 94; = 111; = 22; = 30; = 38; = 45; = 54; = 53; = 62; = 69; = 76; = 77; = 86; = 93; = 100; = 101; = 29; = 37; = 36; = 44; = 52; = 61; = 60; = 68; = 75; = 84; = 85; = 91; = 99; = 27; = 35; = 43; = 42; = 51; = 59; = 58; = 67; = 74; = 82; = 83; = 98; = 26; = 34; = 50; = 66; = 97; = 17; = 16; = 24; = 32; = 40; = 48; = 56; = 64; = 72; = 80; = 88; = 95; = 103; = 96; = 104; = 107; = 112; = 119; = 120; = 109; = 110; = 118; = 108; = 106; = 105; = 115; = 127; = 128; = 135; = 141; = 117; = 126; = 134; = 133; = 116; = 124; = 125; = 114; = 123; = 131; = 130; = 121; = 122; indicator 1 = "Caps Lock"; indicator 2 = "Num Lock"; indicator 3 = "Scroll Lock"; }; xkb_keycodes "hil" { = 71; = 70; = 69; = 68; = 67; = 66; = 65; = 64; = 96; = 97; = 98; = 99; = 100; = 101; = 63; = 62; = 61; = 60; = 59; = 58; = 57; = 56; = 104; = 105; = 106; = 107; = 108; = 109; = 55; = 53; = 52; = 51; = 50; = 49; = 48; = 112; = 113; = 114; = 115; = 116; = 117; = 13; = 36; = 35; = 34; = 33; = 32; = 128; = 120; = 121; = 122; = 123; = 12; = 14; = 11; = 129; = 10; = 87; = 39; = 15; = 86; = 84; = 83; = 82; = 81; = 80; = 88; = 89; = 90; = 91; = 92; = 45; = 41; = 43; = 47; = 94; = 95; = 102; = 103; = 110; = 111; = 118; = 119; = 127; = 125; = 134; = 132; = 133; = 135; = 25; = 29; = 27; = 31; = 21; = 17; = 19; = 23; = 16; = 18; = 20; = 22; = 24; = 26; = 28; = 46; = 30; = 44; }; PK(f[vykeycodes/jollanu[default xkb_keycodes "jolla" { // These keycodes are beyond the X11 255 limit value so it would // only be valid for the use with SW which supports extended keycodes, // like xkbcommon. = 264; // Jolla phone has the wired headset button sending this keycode }; PK(f[TU׬ keycodes/olpcnu[ // OLPC's mechanical keyboard moves several keys to the AA row. make // them easier to write symbol files naturally. // see http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard // and http://wiki.laptop.org/go/OLPC_Spanish_Non-membrane_Keyboard default xkb_keycodes "olpc" { alias = ; // many OLPC keyboards don't put tilde there alias = ; // on model olpc, physical position of BKSL }; default xkb_keycodes "olpcm" { alias = ; // many OLPC keyboards don't put tilde there alias = ; // on model olpcm, new physical position of BKSL alias = ; // on model olpcm, new physical position of =+ alias = ; // on model olpcm, new physical position of '" }; PK(f[=e"!!keycodes/xfree86nu[// "standard" XFree86 codes // It seems that the "default" must be the first entry in the file. default xkb_keycodes "xfree86" { include "xfree86(basic)" = 51; alias = ; = 94; }; xkb_keycodes "basic" { minimum= 8; maximum= 255; = 49; alias = ; // Some geometries use AE00 = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 18; = 19; = 20; = 21; = 22; = 23; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 36; = 66; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 50; = 52; = 53; = 54; = 55; = 56; = 57; = 58; = 59; = 60; = 61; = 62; = 64; = 37; = 65; = 109; = 113; // Microsoft keyboard extra keys = 115; = 116; = 117; = 9; = 67; = 68; = 69; = 70; = 71; = 72; = 73; = 74; = 75; = 76; = 95; = 96; = 111; = 92; = 78; = 110; = 114; = 106; = 97; = 99; = 107; = 103; = 105; = 98; = 100; = 104; = 102; = 77; = 112; = 63; = 82; = 79; = 80; = 81; = 86; = 83; = 84; = 85; = 87; = 88; = 89; = 108; = 90; = 91; = 126; = 118; = 119; = 120; = 121; = 122; = 123; // Keys that are generated on Japanese keyboards alias = ; // Hankaku_Zenkaku toggle = 208; // Hiragana_Katakana toggle = 211; // backslash/underscore = 129; // Henkan = 131; // Muhenkan = 133; // Yen = 210; // Alphanumeric mode on macintosh = 209; // Kana mode on macintosh // Keys that are generated on Korean keyboards alias = ; // Hangul Latin toggle alias = ; // Hangul to Hanja conversion // Extended keys that may be generated on "Internet" keyboards. // These are not standardised, hence the meaningless names. // The entries commented out are never generated because the raw codes // in those positions are already used for well-defined keys. = 130; = 132; alias = ; = 134; = 135; = 136; = 137; = 138; = 139; = 140; = 141; = 142; = 143; = 144; = 145; = 146; = 147; = 148; = 149; = 150; = 151; = 152; = 153; = 154; = 155; // = 156; // = 157; = 158; = 159; = 160; = 161; = 162; = 163; = 164; = 165; = 166; = 167; = 168; = 169; // = 170; = 171; = 172; = 173; = 174; = 175; = 176; = 177; = 178; = 179; = 180; // = 181; // = 182; // = 183; // = 184; = 185; = 186; = 187; = 188; // = 189; // = 190; // = 191; // = 192; // = 193; = 194; = 195; = 196; = 197; // = 198; // = 199; // = 200; // = 201; = 202; // = 203; // = 204; // = 205; // = 206; // = 207; // = 208; // = 209; // = 210; // = 211; = 212; = 213; = 214; = 215; = 216; = 217; = 218; // = 219; // = 220; // = 221; = 222; = 223; = 224; = 225; = 226; = 227; = 228; = 229; = 230; = 231; = 232; = 233; = 234; = 235; = 236; = 237; = 238; = 239; = 240; = 241; = 242; = 243; = 244; = 245; = 246; = 247; = 248; = 249; = 250; = 251; = 252; alias = ; = 253; alias = ; = 254; = 255; // MacBooks generate 0x65 for the lower brightness key = 101; // Required for apple/logitech_g15 keyboard = 93; // Codes generated for scancodes 0x59-0x5f, 0x62-0x76 = 157; // = 170; // = 181; // alias = ; = 182; // = 183; // = 184; // = 189; // = 190; // = 191; // = 192; // = 193; // = 198; // = 199; // = 200; // = 201; // = 203; // = 204; // = 205; // = 206; // = 207; // alias = ; // alias = ; // alias = ; // alias = ; // = 219; // = 220; // = 221; // // Solaris compatibility alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; alias = ; // Other codes never generated. The XFree86 ddx never generates // these codes. // Thus we can use them as fake keys = 8; = 124; // = 125; // = 156; // = 127; // = 128; // indicator 1 = "Caps Lock"; indicator 2 = "Num Lock"; indicator 3 = "Scroll Lock"; alias = ; // For Brazilian ABNT2 alias = ; }; // What keyboard is this? xkb_keycodes "102" { include "xfree86(xfree86)" // There will be warnings from xkbcomp because of multiple definitions. = 122; = 123; = 121; = 118; = 131; = 135; = 119; = 129; = 130; = 134; = 128; = 132; = 120; = 133; = 125; = 124; }; // IBM ThinkPad Z60m/Z60t/Z61m/Z61t xkb_keycodes "thinkpadz60" { include "xfree86(xfree86)" = 227; }; PK(f[Tt keycodes/sonynu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // xkb_keycodes "nwp5461" { = 18; = 19; = 20; = 21; = 22; = 23; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32; = 33; = 34; = 35; = 36; = 37; = 38; = 39; = 40; = 41; = 42; = 43; = 44; = 45; = 46; = 47; = 48; = 49; = 50; = 51; = 52; = 53; = 54; = 55; = 56; = 57; = 58; = 59; = 60; = 61; = 62; = 63; = 64; = 65; = 66; = 67; = 68; = 69; = 70; = 71; = 72; = 73; = 74; = 75; = 76; = 77; = 78; = 81; = 8; = 9; = 10; = 11; = 12; = 13; = 14; = 15; = 16; = 17; = 111; = 112; = 113; = 114; = 115; = 116; = 117; = 109; = 95; = 98; = 99; = 100; = 107; = 108; = 89; = 82; = 83; = 84; = 85; = 86; = 87; = 88; = 93; = 90; = 91; = 92; = 97; = 94; = 96; }; PK(f[TZrrkeycodes/macintoshnu[// //Copyright (c) 1996 X Consortium // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and/or sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the X Consortium shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from the X Consortium. // // default xkb_keycodes "macintosh" { include "xfree86" = 182; = 183; = 184; = 157; }; xkb_keycodes "old" { minimum= 8; maximum= 255; = 61; = 58; = 26; = 27; = 28; = 29; = 31; = 30; = 34; = 36; = 33; = 37; = 35; = 32; = 59; = 56; = 20; = 21; = 22; = 23; = 25; = 24; = 40; = 42; = 39; = 43; = 41; = 38; = 50; = 65; = 8; = 9; = 10; = 11; = 13; = 12; = 46; = 48; = 45; = 49; = 47; = 44; = 18; = 14; = 15; = 16; = 17; = 19; = 53; = 54; = 51; = 55; = 52; = 57; = 62; // Left Control = 63; // Left Option = 64; // Left Shift = 66; // Left Command // = 131; // Right Shift // = 132; // Right Command // = 133; // Right Control // = 134; // Right Option = 130; = 128; = 107; = 126; = 104; = 105; = 106; = 108; = 109; = 117; = 111; = 119; = 113; = 115; = 121; = 122; = 123; = 124; = 125; = 127; = 129; = 70; = 67; = 69; = 68; = 79; = 89; = 83; = 75; = 97; = 99; = 100; = 86; = 94; = 95; = 96; = 77; = 91; = 92; = 93; = 84; = 90; = 73; indicator 3 = "Scroll Lock"; indicator 2 = "Num Lock"; indicator 1 = "Caps Lock"; alias = ; }; xkb_keycodes "hhk" { include "macintosh" = 51; = 49; = 131; = 129; = 208; = 111; = 78; = 110; }; // Aluminium Keyboards xkb_keycodes "alukbd" { include "xfree86" // Fkeys missing in xfree86 keycodes = 129; = 130; // Eject key that matches the geometry definition alias = ; // Japanese keypad separator (KPSP in base, JPCM in evdev) alias = ; }; // Aluminium Keyboards JIS // As of HID Usage Table v1.11, it seems there are no usages // for keys EISU or KANA. JIS Aluminium Keyboards overcome // this by outputting usages of keys Hanja and Hangul xkb_keycodes "jisevdev" { alias = ; // Switch to kana mode alias = ; // Switch to alphanumeric mode }; PK(f[}_keycodes/digital_vndr/lknu[// //Copyright (c) 1996 Digital Equipment Corporation // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be included //in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, //DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR //THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the Digital Equipment //Corporation shall not be used in advertising or otherwise to promote //the sale, use or other dealings in this Software without prior written //authorization from Digital Equipment Corporation. // // HISTORY // Log // Revision 1.2 1996/06/18 09:13:22 erik // use flags correctly, assorted cleanups and consortium fixes // // Revision 1.1.6.2 1995/08/07 17:40:34 William_Walker // Upgrade XKB to protocol 0.62 (dual submit from decx11) // [1995/08/06 14:06:25 William_Walker] // // Revision 1.1.2.4 1995/08/05 15:25:55 William_Walker // Upgrade to XKB protocol 0.62 // [1995/08/05 14:39:58 William_Walker] // // Revision 1.1.2.3 1995/06/27 12:17:31 William_Walker // Rename to ISO9995 compliant . // [1995/06/26 20:24:04 William_Walker] // // Revision 1.1.2.2 1995/06/05 19:21:28 William_Walker // New file. I love keymaps. // [1995/06/05 18:07:29 William_Walker] // // EndLog // // @(#)RCSfile: lk Revision: /main/3 (DEC) Date: 1996/01/24 12:13:31 // xkb_keycodes "lk_common" { // "Function" keys = 86; = 87; = 88; = 89; = 90; = 100; = 101; = 102; = 103; = 104; = 113; = 114; = 170; = 167; = 169; = 168; // "Keypad" keys = 157; = 158; = 159; = 153; = 154; = 155; = 150; = 151; = 152; = 149; = 146; = 148; // "Alphanumeric" keys = 191; = 192; = 197; = 203; = 208; = 214; = 219; = 224; = 229; = 234; = 239; = 249; = 245; = 188; = 190; = 193; = 198; = 204; = 209; = 215; = 220; = 225; = 230; = 235; = 240; = 250; = 246; = 189; = 175; = 176; = 194; = 199; = 205; = 210; = 216; = 221; = 226; = 231; = 236; = 242; = 251; = 174; = 195; = 200; = 206; = 211; = 217; = 222; = 227; = 232; = 237; = 243; = 171; = 212; = 255; // Support R5 Lock Down Modifiers alias = ; }; xkb_keycodes "lkx01" { include "digital_vndr/lk(lk_common)" = 201; = 115; = 116; = 128; = 129; = 130; = 131; = 124; = 125; = 138; = 139; = 140; = 141; = 142; = 143; = 161; = 162; = 163; = 164; = 160; = 156; = 247; = 177; }; xkb_keycodes "lk201" { include "digital_vndr/lk(lkx01)" indicator 4 = "Scroll Lock"; indicator 3 = "Caps Lock"; indicator 2 = "Compose"; indicator 1 = "Wait"; }; xkb_keycodes "lk421" { include "digital_vndr/lk(lkx01)" = 172; = 178; = 173; }; xkb_keycodes "lk401" { include "digital_vndr/lk(lk421)" indicator 4 = "Scroll Lock"; indicator 3 = "Caps Lock"; }; xkb_keycodes "lk44x" { include "digital_vndr/lk(lk_common)" = 85; = 115; = 116; = 124; = 138; = 139; = 140; = 141; = 142; = 143; = 161; = 162; = 163; = 164; = 156; = 172; = 178; = 173; }; xkb_keycodes "lk443" { include "digital_vndr/lk(lk44x)" = 247; indicator 3 = "Caps Lock"; indicator 4 = "Scroll Lock"; indicator 5 = "Num Lock"; }; xkb_keycodes "lk444" { include "digital_vndr/lk(lk44x)" = 201; = 247; indicator 3 = "Caps Lock"; indicator 4 = "Scroll Lock"; indicator 5 = "Num Lock"; }; // LK201-LT = lk201 // LK421-AJ = lk421 +AB11 // LK421-JJ = lk421aj+MUHE+KANJ+HIRA // LK401-AJ = lk401 // LK401-BJ = lk401 +MUHE+KANJ+HIRA // LK401-JJ = lk401bj+AB11 // LK401-LT = lk401 // LK441-LT = lk443 xkb_keycodes "lk421aj" { include "digital_vndr/lk(lk421)" = 252; }; xkb_keycodes "lk421jj" { include "digital_vndr/lk(lk421aj)" = 94; = 95; = 97; }; xkb_keycodes "lk401bj" { include "digital_vndr/lk(lk401)" = 94; = 95; = 97; }; xkb_keycodes "lk401jj" { include "digital_vndr/lk(lk401bj)" = 252; }; PK(f[ \keycodes/digital_vndr/pcnu[// //Copyright (c) 1996 Digital Equipment Corporation // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be included //in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, //DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR //THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the Digital Equipment //Corporation shall not be used in advertising or otherwise to promote //the sale, use or other dealings in this Software without prior written //authorization from Digital Equipment Corporation. // // HISTORY // Log // Revision 1.2 1996/06/18 09:13:25 erik // use flags correctly, assorted cleanups and consortium fixes // // Revision 1.1.6.3 1995/10/25 21:00:14 William_Walker // Add pc104-key support // [1995/10/23 15:46:21 William_Walker] // // Revision 1.1.6.2 1995/08/07 17:40:37 William_Walker // Upgrade XKB to protocol 0.62 (dual submit from decx11) // [1995/08/06 14:06:28 William_Walker] // // Revision 1.1.2.4 1995/08/05 15:25:56 William_Walker // Upgrade to XKB protocol 0.62 // [1995/08/05 14:40:02 William_Walker] // // Revision 1.1.2.3 1995/06/27 12:17:32 William_Walker // Rename to ISO9995 compliant . // [1995/06/26 20:24:07 William_Walker] // // Revision 1.1.2.2 1995/06/05 19:21:31 William_Walker // New file. I love keymaps. // [1995/06/05 18:07:34 William_Walker] // // EndLog // // @(#)RCSfile: pc Revision: /main/3 (DEC) Date: 1996/01/24 12:13:36 // xkb_keycodes "pc_common" { // "Function" keys = 9; = 15; = 23; = 31; = 39; = 47; = 55; = 63; = 71; = 79; = 86; = 94; // "Editing" keys = 99; = 97; = 96; = 106; // "Keypad" keys = 108; = 117; = 125; = 107; = 115; = 116; = 105; = 114; = 122; = 121; = 112; = 113; // "Alphanumeric" keys = 22; = 30; = 38; = 37; = 46; = 54; = 61; = 62; = 70; = 69; = 78; = 85; = 102; = 13; = 21; = 29; = 36; = 45; = 44; = 53; = 60; = 67; = 68; = 77; = 84; = 91; = 20; = 28; = 27; = 35; = 43; = 52; = 51; = 59; = 66; = 75; = 76; = 82; = 90; = 18; = 26; = 34; = 33; = 42; = 50; = 49; = 58; = 65; = 73; = 74; = 89; = 17; = 25; = 41; = 57; = 255; // Support R5 Lock Down Modifiers }; xkb_keycodes "pc10x" { include "digital_vndr/pc(pc_common)" = 8; = 14; = 87; = 95; = 98; = 103; = 110; = 111; = 100; = 101; = 109; = 118; = 119; = 126; = 132; = 124; = 88; alias = ; indicator 3 = "Caps Lock"; indicator 4 = "Scroll Lock"; }; xkb_keycodes "pc101" { include "digital_vndr/pc(pc10x)" = 92; indicator 5 = "Num Lock"; }; xkb_keycodes "pc102" { include "digital_vndr/pc(pc10x)" = 19; = 83; indicator 5 = "Num Lock"; }; xkb_keycodes "pc104" { include "digital_vndr/pc(pc101)" = 139; = 140; = 141; }; xkb_keycodes "lk411_common" { include "digital_vndr/pc(pc_common)" = 8; = 14; = 24; = 10; = 16; = 87; = 95; = 98; = 11; = 12; = 110; = 103; = 100; = 101; = 111; = 109; = 118; = 119; = 126; = 132; = 19; = 124; = 40; = 88; alias = ; indicator 3 = "Caps Lock"; indicator 4 = "Scroll Lock"; }; xkb_keycodes "lk411" { include "digital_vndr/pc(lk411_common)" = 92; }; xkb_keycodes "lk450" { include "digital_vndr/pc(lk411)" indicator 2 = "Compose"; indicator 1 = "Wait"; }; // Japanese variants // // PCXAJ-AA = pc+BKSL+AC12+AB11+MUHE+KANJ+HIRA+indicator // LK411-AJ = lk411+MUHE+KANJ+HIRA // LK411-JJ = lk411+BKSL+AZ01+MUHE+KANJ+HIRA // LK411-LT = lk411 xkb_keycodes "pcxajaa" { include "digital_vndr/pc(pc10x)" = 93; = 83; = 81; = 133; = 134; = 135; indicator 5 = "Group 2"; }; xkb_keycodes "lk411jj" { include "digital_vndr/pc(lk411_common)" = 81; = 83; = 133; = 134; = 135; }; PK(f[z)  types/level5nu[partial default xkb_types "default" { // Defines a type with an eight-level shift, similar to the three-level // type used for iso9995, but it lets the Shift key behave "normally". virtual_modifiers LevelThree,ScrollLock,LevelFive; type "EIGHT_LEVEL" { modifiers = Shift+LevelThree+LevelFive; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[LevelFive] = Level5; map[Shift+LevelFive] = Level6; map[LevelThree+LevelFive] = Level7; map[Shift+LevelThree+LevelFive] = Level8; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; type "EIGHT_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree+LevelFive; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Lock+Shift+LevelThree] = Level3; map[LevelFive] = Level5; map[Shift+LevelFive] = Level6; map[Lock+LevelFive] = Level6; map[LevelThree+LevelFive] = Level7; map[Shift+LevelThree+LevelFive] = Level8; map[Lock+LevelThree+LevelFive] = Level8; map[Lock+Shift+LevelThree+LevelFive] = Level7; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" { // Level5-Lock is implemented by using NumLock, because a real modifier // is required. modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[LevelThree+Shift] = Level4; map[LevelFive] = Level5; map[LevelFive+Shift] = Level6; map[LevelFive+LevelThree] = Level7; map[LevelFive+LevelThree+Shift] = Level8; map[NumLock] = Level5; map[NumLock+Shift] = Level6; map[NumLock+LevelThree] = Level7; map[NumLock+LevelThree+Shift] = Level8; map[NumLock+LevelFive] = Level1; map[NumLock+LevelFive+Shift] = Level2; map[NumLock+LevelFive+LevelThree] = Level3; map[NumLock+LevelFive+LevelThree+Shift] = Level4; // Lock has no effect map[Lock] = Level1; map[Lock+Shift] = Level2; map[Lock+LevelThree] = Level3; map[Lock+LevelThree+Shift] = Level4; map[Lock+LevelFive] = Level5; map[Lock+LevelFive+Shift] = Level6; map[Lock+LevelFive+LevelThree] = Level7; map[Lock+LevelFive+LevelThree+Shift] = Level8; map[Lock+NumLock] = Level5; map[Lock+NumLock+Shift] = Level6; map[Lock+NumLock+LevelThree] = Level7; map[Lock+NumLock+LevelThree+Shift] = Level8; map[Lock+NumLock+LevelFive] = Level1; map[Lock+NumLock+LevelFive+Shift] = Level2; map[Lock+NumLock+LevelFive+LevelThree] = Level3; map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; preserve[LevelFive+Shift] = Shift; preserve[NumLock+Shift] = Shift; preserve[Lock+LevelFive+Shift] = Shift; preserve[Lock+NumLock+Shift] = Shift; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" { // Level5-Lock is implemented by using NumLock, because a real modifier // is required. modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[LevelThree+Shift] = Level4; map[LevelFive] = Level5; map[LevelFive+Shift] = Level6; map[LevelFive+LevelThree] = Level7; map[LevelFive+LevelThree+Shift] = Level8; map[NumLock] = Level5; map[NumLock+Shift] = Level6; map[NumLock+LevelThree] = Level7; map[NumLock+LevelThree+Shift] = Level8; map[NumLock+LevelFive] = Level1; map[NumLock+LevelFive+Shift] = Level2; map[NumLock+LevelFive+LevelThree] = Level3; map[NumLock+LevelFive+LevelThree+Shift] = Level4; // Lock interchanges Level1 and Level2 map[Lock] = Level2; map[Lock+Shift] = Level1; map[Lock+LevelThree] = Level3; map[Lock+LevelThree+Shift] = Level4; map[Lock+LevelFive] = Level5; map[Lock+LevelFive+Shift] = Level6; map[Lock+LevelFive+LevelThree] = Level7; map[Lock+LevelFive+LevelThree+Shift] = Level8; map[Lock+NumLock] = Level5; map[Lock+NumLock+Shift] = Level6; map[Lock+NumLock+LevelThree] = Level7; map[Lock+NumLock+LevelThree+Shift] = Level8; map[Lock+NumLock+LevelFive] = Level2; map[Lock+NumLock+LevelFive+Shift] = Level1; map[Lock+NumLock+LevelFive+LevelThree] = Level4; map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3; preserve[LevelFive+Shift] = Shift; preserve[NumLock+Shift] = Shift; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; type "EIGHT_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree+LevelFive; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; map[LevelFive] = Level5; map[Shift+LevelFive] = Level6; map[Lock+LevelFive] = Level6; map[Lock+Shift+LevelFive] = Level6; map[LevelThree+LevelFive] = Level7; map[Shift+LevelThree+LevelFive] = Level8; map[Lock+LevelThree+LevelFive] = Level7; map[Lock+Shift+LevelThree+LevelFive] = Level8; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; preserve[Lock+LevelFive] = Lock; preserve[Lock+Shift+LevelFive] = Lock; preserve[Lock+LevelThree+LevelFive] = Lock; preserve[Lock+Shift+LevelThree+LevelFive] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "X"; level_name[Level6] = "X Shift"; level_name[Level7] = "X Alt Base"; level_name[Level8] = "X Shift Alt"; }; }; PK(f[56k types/defaultnu[default xkb_types "default" { include "basic" include "pc" include "iso9995" include "extra" include "numpad" include "level5" include "mousekeys" }; PK(f[+vtypes/mousekeysnu[partial default xkb_types "default" { virtual_modifiers Alt; type "SHIFT+ALT" { modifiers = Shift+Alt; map[Shift+Alt] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Shift+Alt"; }; }; PK(f[]G.. types/nokianu[partial default xkb_types "default" { // A type that is used by Nokia devices and keyboards. virtual_modifiers LevelThree; type "PC_FN_LEVEL2" { modifiers = LevelThree; map[None] = Level1; map[LevelThree] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Fn"; }; }; PK(f[\d types/numpadnu[partial default xkb_types "pc" { type "KEYPAD" { modifiers = Shift+NumLock; map[None] = Level1; map[Shift] = Level2; map[NumLock] = Level2; map[Shift+NumLock] = Level1; level_name[Level1] = "Base"; level_name[Level2] = "Number"; }; include "extra(keypad)" }; // On Mac keypads, level 1 and 2 are swapped. partial xkb_types "mac" { type "KEYPAD" { modifiers = None; map[None] = Level2; level_name[Level2] = "Number"; }; include "extra(keypad)" }; partial xkb_types "microsoft" { type "KEYPAD" { modifiers = Shift+NumLock; map[None] = Level1; preserve[Shift] = Shift; map[NumLock] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Number"; }; include "extra(keypad)" }; // Swiss-German style numeric keypad: Shift and NumLock operate as // two independent modifiers; however, since we want shift state for // the cursor keys, only three levels are used from the key mappings. // Closest type is actually FOUR_LEVEL_X, but most numpad layouts use // FOUR_LEVEL_MIXED_KEYPAD, so that's the one we are going to override. partial xkb_types "shift3" { type "FOUR_LEVEL_MIXED_KEYPAD" { modifiers = Shift+NumLock+Control+Alt; // NumLock Off => navigate using cursor keys map[None] = Level1; // NumLock Off + Shift pressed => select using cursor keys preserve[Shift] = Shift; // NumLock On => decimal digits map[NumLock] = Level2; // NumLock On + Shift pressed => auxiliary symbols, // e.g. hexadecimal digits map[Shift+NumLock] = Level3; // Ctrl + Alt, regardless of NumLock and Shift => command keys map[Control+Alt] = Level4; // reverse map from levels to modifiers level_name[Level1] = "Base"; level_name[Level2] = "NumLock"; level_name[Level3] = "Shift+NumLock"; level_name[Level4] = "Ctrl+Alt"; }; }; PK(f[薪 types/capsnu[// CapsLock uses internal capitalization rules, // Shift "pauses" CapsLock. partial xkb_types "internal" { type "ALPHABETIC" { modifiers = Shift+Lock; map[Shift] = Level2; preserve[Lock] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; preserve[Lock] = Lock; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level3; preserve[Lock+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; preserve[Lock] = Lock; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; }; // CapsLock uses internal capitalization rules, // Shift does not cancel CapsLock. partial xkb_types "internal_nocancel" { type "ALPHABETIC" { modifiers = Shift; map[Shift] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { // the same as FOUR_LEVEL_ALPHABETIC modifiers = Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; }; // CapsLock acts as Shift with locking, // Shift "pauses" CapsLock. partial xkb_types "shift" { type "ALPHABETIC" { modifiers = Shift+Lock; map[Shift] = Level2; map[Lock] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Shift+Lock+LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; }; // CapsLock acts as Shift with locking, // Shift does not cancel CapsLock. partial xkb_types "shift_nocancel" { type "ALPHABETIC" { modifiers = Shift+Lock; map[Shift] = Level2; map[Lock] = Level2; map[Shift+Lock] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[Shift+Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Shift+Lock+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[Shift+Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; }; PK(f[0 types/completenu[default xkb_types "complete" { include "basic" include "mousekeys" include "pc" include "iso9995" include "level5" include "extra" include "numpad" }; PK(f[>{. types/READMEnu[The types component of a keyboard mapping specifies the key types that can be associated with the various keyboard keys. The types component can optionally contain also real modifier bindings and symbolic names for one or more virtual modifiers. PK(f[6__ types/basicnu[default xkb_types "basic" { // Fairly standard definitions for // three of the four required key types. // The fourth type "KEYPAD" is defined in the "numpad" file. virtual_modifiers NumLock; type "ONE_LEVEL" { modifiers = None; map[None] = Level1; level_name[Level1]= "Any"; }; type "TWO_LEVEL" { modifiers = Shift; map[Shift] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; }; type "ALPHABETIC" { modifiers = Shift+Lock; map[Shift] = Level2; map[Lock] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Caps"; }; }; PK(f[OJ== types/extranu[partial default xkb_types "default" { // Defines a type with a four-level shift, similar to the three-level // type used for iso9995, but it lets the Shift key behave "normally". virtual_modifiers LevelThree; type "FOUR_LEVEL" { modifiers = Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Lock+Shift+LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; type "FOUR_LEVEL_SEMIALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; preserve[Lock+LevelThree] = Lock; preserve[Lock+Shift+LevelThree] = Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; // A four-level keypad variant. The first two levels are controlled by // NumLock (with active shifting like in KEYPAD). LevelThree overrides // this mode, with two additional shifted levels. type "FOUR_LEVEL_MIXED_KEYPAD" { modifiers = Shift+NumLock+LevelThree; map[None] = Level1; map[Shift+NumLock] = Level1; map[NumLock] = Level2; map[Shift] = Level2; map[LevelThree] = Level3; map[NumLock+LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Shift+NumLock+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Number"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; }; // Base level, two shifted LevelThree levels, one Ctrl+Alt command level. type "FOUR_LEVEL_X" { modifiers = Shift+LevelThree+Control+Alt; map[None] = Level1; map[LevelThree] = Level2; map[Shift+LevelThree] = Level3; map[Control+Alt] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Alt Base"; level_name[Level3] = "Shift Alt"; level_name[Level4] = "Ctrl+Alt"; }; // A special type for keys used in the Serbian Latin Unicode keymap. // It makes it possible to use all three forms of latin letters // present in Unicode that are made up of two separate letters // (forms like LJ, Lj, and lj; NJ, Nj, and nj; etcetera). type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[Lock] = Level4; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level3; preserve[Lock]= Lock; preserve[Lock+LevelThree]= Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "AltGr Base"; level_name[Level4] = "Shift AltGr"; }; // A key type for the German ssharp (for example), which is capitalized as SS. // CHARACTERISTICS: // It is FOUR_LEVEL with the exception that the fifth level is mapped to the // Lock modifier. If other modifiers are used, the Lock state is ignored. // DETAILS ABOUT GERMAN: // The capital form of ssharp (called sharp s) only exists for completely // capitalized text, not for words at the beginning of sentences nor for // nouns (nouns in German normally start with a captial letter). // The ssharp key, to the right of the zero key, takes this into account // and has a questionmark mapped to Shift-ssharp since normally no capital // version is needed. // When typing with active CapsLock, this key type is needed to // output two capital letters S because this is the only German key // whose capital letter is not the same as the one typed with Shift. type "FOUR_LEVEL_PLUS_LOCK" { modifiers = Shift+Lock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock] = Level5; map[Lock+Shift] = Level2; map[Lock+LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level4; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "Lock"; }; }; // This enables the four-level shifting also for the keypad. partial xkb_types "keypad" { virtual_modifiers LevelThree; type "FOUR_LEVEL_KEYPAD" { modifiers = Shift+NumLock+LevelThree; map[None] = Level1; map[Shift] = Level2; map[NumLock] = Level2; map[Shift+NumLock] = Level1; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[NumLock+LevelThree] = Level4; map[Shift+NumLock+LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Number"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Alt Number"; }; }; PK(f[2쒭 types/iso9995nu[partial default xkb_types "default" { // A key type which can be used to implement // an ISO9995-style level-three shift. virtual_modifiers LevelThree; type "THREE_LEVEL" { modifiers = Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level3; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Level3"; }; }; PK(f[B} types/cancelnu[partial default xkb_types "Shift_Cancels_Caps" { override type "TWO_LEVEL" { modifiers = Shift+Lock; map[Shift] = Level2; preserve[Lock]= Lock; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; }; }; PK(f[J  types/pcnu[partial default xkb_types "default" { // Some types that are necessary // for a full implementation of // a PC-compatible keyboard. virtual_modifiers Alt; virtual_modifiers LevelThree; virtual_modifiers LAlt; virtual_modifiers RAlt; virtual_modifiers RControl; virtual_modifiers LControl; type "PC_SUPER_LEVEL2" { modifiers = Mod4; map[None] = Level1; map[Mod4] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Super"; }; type "PC_CONTROL_LEVEL2" { modifiers = Control; map[None] = Level1; map[Control] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Control"; }; type "PC_LCONTROL_LEVEL2" { modifiers = LControl; map[None] = Level1; map[LControl] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "LControl"; }; type "PC_RCONTROL_LEVEL2" { modifiers = RControl; map[None] = Level1; map[RControl] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "RControl"; }; type "PC_ALT_LEVEL2" { modifiers = Alt; map[None] = Level1; map[Alt] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "Alt"; }; type "PC_LALT_LEVEL2" { modifiers = LAlt; map[None] = Level1; map[LAlt] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "LAlt"; }; type "PC_RALT_LEVEL2" { modifiers = RAlt; map[None] = Level1; map[RAlt] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "RAlt"; }; type "CTRL+ALT" { modifiers = Control+Alt+Shift+LevelThree; map[None] = Level1; map[Shift] = Level2; map[LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Control+Alt] = Level5; preserve[Shift] = Shift; preserve[Shift+LevelThree] = Shift; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Alt Base"; level_name[Level4] = "Shift Alt"; level_name[Level5] = "Ctrl+Alt"; }; // Local eight level. // Needed when you want part of your layout eight-level but cannot use // LevelFive as modifier, as this will take over the right Ctrl by default // for the whole layout and is too invasive for the average four-level user. // Needed to fix bug #9529. // FIXME: Should really use RControl but it seems not to be enabled by // default and touching this requires a lot of testing. type "LOCAL_EIGHT_LEVEL" { modifiers = Shift+Lock+LevelThree+Control; map[None] = Level1; map[Lock+Shift] = Level1; map[Shift] = Level2; map[Lock] = Level2; map[LevelThree] = Level3; map[Lock+Shift+LevelThree] = Level3; map[Shift+LevelThree] = Level4; map[Lock+LevelThree] = Level4; map[Control] = Level5; map[Lock+Shift+Control] = Level5; map[Shift+Control] = Level6; map[Lock+Control] = Level6; map[LevelThree+Control] = Level7; map[Lock+Shift+LevelThree+Control] = Level7; map[Shift+LevelThree+Control] = Level8; map[Lock+LevelThree+Control] = Level8; level_name[Level1] = "Base"; level_name[Level2] = "Shift"; level_name[Level3] = "Level3"; level_name[Level4] = "Shift Level3"; level_name[Level5] = "Ctrl"; level_name[Level6] = "Shift Ctrl"; level_name[Level7] = "Level3 Ctrl"; level_name[Level8] = "Shift Level3 Ctrl"; }; }; PK(f[: {44 symbols/atnu[// based on a keyboard map from an 'xkb/symbols/de' file default xkb_symbols "basic" { include "de(basic)" name[Group1]="German (Austria)"; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "de(nodeadkeys)" name[Group1]="German (Austria, no dead keys)"; }; partial alphanumeric_keys xkb_symbols "mac" { include "de(mac)" name[Group1]= "German (Austria, Macintosh)"; }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "de(Sundeadkeys)" name[Group1]="German (Austria, with Sun dead keys)"; }; PK(f[=Ϛsymbols/fujitsu_vndr/jpnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // // Japanese for a Fujitsu 140 key keyboard xkb_symbols "basic" { override "fujitsu_vndr/us" augment key { [], [ kana_NU ] }; key { [ 2, quotedbl ], [ kana_FU ] }; key { [ 3, numbersign ], [ kana_A, kana_a ] }; key { [ 4, dollar ], [ kana_U, kana_u ] }; augment key { [], [ kana_E, kana_e ] }; key { [ 6, ampersand ], [ kana_O, kana_o ] }; key { [ 7, apostrophe ], [ kana_YA, kana_ya ] }; key { [ 8, parenleft ], [ kana_YU, kana_yu ] }; key { [ 9, parenright ], [ kana_YO, kana_yo ] }; replace key { [ 0 ], [ kana_WA, kana_WO ] }; key { [ minus, equal ], [ kana_HO ] }; key { [ asciicircum, asciitilde ], [ kana_HE ] }; key { [ backslash, bar ], [ prolongedsound] }; augment key { [], [ kana_TA ] }; augment key { [], [ kana_TE ] }; augment key { [], [ kana_I, kana_i ] }; augment key { [], [ kana_SU ] }; augment key { [], [ kana_KA ] }; augment key { [], [ kana_N ] }; augment key { [], [ kana_NA ] }; augment key { [], [ kana_NI ] }; augment key { [], [ kana_RA ] }; augment key { [], [ kana_SE ] }; key { [ at, grave ], [ voicedsound ] }; key { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] }; augment key { [], [ kana_CHI ] }; augment key { [], [ kana_TO ] }; augment key { [], [ kana_SHI ] }; augment key { [], [ kana_HA ] }; augment key { [], [ kana_KI ] }; augment key { [], [ kana_KU ] }; augment key { [], [ kana_MA ] }; augment key { [], [ kana_NO ] }; augment key { [], [ kana_RI ] }; key { [ semicolon, plus ], [ kana_RE ] }; key { [ colon, asterisk ], [ kana_KE ] }; key { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] }; augment key { [], [ kana_TSU, kana_tsu ] }; augment key { [], [ kana_SA ] }; augment key { [], [ kana_SO ] }; augment key { [], [ kana_HI ] }; augment key { [], [ kana_KO ] }; augment key { [], [ kana_MI ] }; augment key { [], [ kana_MO ] }; augment key { [], [ kana_NE, kana_comma ] }; augment key { [], [ kana_RU, kana_fullstop ] }; augment key { [], [ kana_ME, kana_conjunctive ] }; key { [ underscore ], [ kana_RO ] }; key { [ Select ] }; key { [ Massyo ] }; key { [ Touroku ] }; key { [ Zenkaku_Hankaku ] }; key { [ Eisu_Shift ] }; key { [ Mode_switch ] }; key { [ Cancel ] }; key { [ Muhenkan ] }; key { [ Henkan ] }; }; PK(f[''symbols/fujitsu_vndr/usnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // // US/ASCII layout for a Fujitsu 138 key keyboard xkb_symbols "basic" { include "us(basic)" // A few alphanumeric keys are different key { [ grave, asciitilde ] }; key { [ BackSpace ] }; key { [ backslash, bar ] }; key { [ ] }; key { [ Shift_R ] }; key { [ Alt_L ] }; key { [ Alt_R ] }; key { [ Meta_L ] }; key { [ Meta_R ] }; key { [ Linefeed ] }; key { [ Multi_key ] }; // End alphanumeric section // Begin "Function" section key { [ Break ] }; key { [ Print ] }; key { [ Kanji ] }; key { [ Pause ] }; key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; key { [ F11 ] }; key { [ F12 ] }; key { [ F13 ] }; key { [ F14 ] }; key { [ F15 ] }; key { [ F16 ] }; key { [ F17 ] }; key { [ F18 ] }; key { [ F19 ] }; key { [ F20 ] }; key { [ F21 ] }; key { [ F22 ] }; key { [ F23 ] }; key { [ F24 ] }; key { [ F25 ] }; key { [ F26 ] }; key { [ F27 ] }; key { [ F28 ] }; key { [ F29 ] }; key { [ F30 ] }; key { [ F31 ] }; key { [ F32 ] }; // End "Function" section // Begin "Editing" section key { [ Undo ] }; key { [ F33 ] }; key { [ F34 ] }; key { [ F35 ] }; key { [ Help ] }; // End "Editing" section // Begin "Cursor" section key { [ ] }; key { [ ] }; key { [ ] }; key { [ Prior ] }; key { [ Home ] }; key { [ Next ] }; key { [ ] }; key { [ Delete ] }; key { [ Insert ] }; key { [ Left ] }; key { [ Right ] }; key { [ Up ] }; key { [ Down ] }; key { [ Execute ] }; // End "Cursor" section // Begin "Keypad" section key { [ KP_Multiply ] }; key { [ KP_Divide ] }; key { [ KP_Add ] }; key { [ KP_Subtract ] }; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_Equal ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_Decimal ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_Enter ] }; key { [ KP_0 ] }; key { [ KP_0 ] }; // End "Keypad" section modifier_map Shift { Shift_R }; modifier_map Mod1 { Meta_L, Meta_R }; modifier_map Mod2 { Mode_switch }; modifier_map Mod3 { Alt_L }; modifier_map Mod4 { Num_Lock }; modifier_map Mod5 { F13, F18, F20 }; }; PK(f[ .c c symbols/chnu[default partial alphanumeric_keys xkb_symbols "basic" { include "latin" name[Group1]= "German (Switzerland)"; key { [ section, degree ] }; key { [ 1, plus, bar, exclamdown ] }; key { [ 2, quotedbl, at, oneeighth ] }; key { [ 3, asterisk, numbersign ] }; key { [ 4, ccedilla ] }; key { [ 5, percent ] }; key { [ 6, ampersand, notsign ] }; key { [ 7, slash, bar ] }; key { [ 8, parenleft, cent ] }; key { [ 9, parenright ] }; key { [ 0, equal ] }; key { [ apostrophe, question, dead_acute ] }; key { [ dead_circumflex, dead_grave, dead_tilde ] }; key { [ e, E, EuroSign ] }; key { [ z, Z ] }; key { [ o, O, oe, OE ] }; key { [ udiaeresis, egrave, bracketleft ] }; key { [ dead_diaeresis, exclam, bracketright ] }; key { [ odiaeresis, eacute ] }; key { [ adiaeresis, agrave, braceleft ] }; key { [ dollar, sterling, braceright ] }; key { [ less, greater, backslash, brokenbar ] }; key { [ y, Y ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "legacy" { include "ch(basic)" name[Group1]= "German (Switzerland, legacy)"; key { [ 7, slash, brokenbar ] }; }; partial alphanumeric_keys xkb_symbols "de" { include "ch(basic)" }; partial alphanumeric_keys xkb_symbols "de_Sundeadkeys" { // modify the basic Swiss German layout to use Sun dead keys include "ch(basic)" key { [ apostrophe, question, dead_acute ] }; key { [ dead_circumflex, dead_grave, dead_tilde ] }; key { [ dead_diaeresis, exclam, bracketright ] }; }; partial alphanumeric_keys xkb_symbols "de_sundeadkeys" { include "ch(de_Sundeadkeys)" name[Group1]= "German (Switzerland, with Sun dead keys)"; }; partial alphanumeric_keys xkb_symbols "de_nodeadkeys" { // modify the basic Swiss German layout not to have any dead keys include "ch(basic)" name[Group1]= "German (Switzerland, no dead keys)"; key { [ apostrophe, question, acute ] }; key { [ asciicircum, grave, asciitilde ] }; key { [ diaeresis, exclam, bracketright ] }; }; partial alphanumeric_keys xkb_symbols "fr" { include "ch(basic)" name[Group1]= "French (Switzerland)"; override key { [ egrave, udiaeresis, bracketleft ] }; override key { [ eacute, odiaeresis ] }; override key { [ agrave, adiaeresis, braceleft ] }; }; partial alphanumeric_keys xkb_symbols "fr_Sundeadkeys" { // modify the basic Swiss French layout to use Sun dead keys include "ch(fr)" key { [ apostrophe, question, dead_acute ] }; key { [ dead_circumflex, dead_grave, dead_tilde ] }; key { [ dead_diaeresis, exclam, bracketright ] }; }; partial alphanumeric_keys xkb_symbols "fr_sundeadkeys" { include "ch(fr_Sundeadkeys)" name[Group1]= "French (Switzerland, with Sun dead keys)"; }; partial alphanumeric_keys xkb_symbols "fr_nodeadkeys" { // modify the basic Swiss French layout not to have any dead keys include "ch(fr)" name[Group1]= "French (Switzerland, no dead keys)"; key { [ apostrophe, question, acute ] }; key { [ asciicircum, grave, asciitilde ] }; key { [ diaeresis, exclam, bracketright ] }; }; // Copied from macintosh_vndr/ch // 03.01.2003 // Andreas Tobler // modified for Swiss German Apple Extended Keyboard II partial alphanumeric_keys xkb_symbols "de_mac" { name[Group1]= "German (Switzerland, Macintosh)"; key { [ 1, plus, plusminus, infinity ] }; key { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] }; key { [ 3, asterisk, numbersign, leftcaret ] }; // not displayed here key { [ 4, ccedilla, Ccedilla, slash ] }; key { [ 5, percent, bracketleft ] }; key { [ 6, ampersand, bracketright ] }; key { [ 7, slash, bar, backslash ] }; key { [ 8, parenleft, braceleft, Ograve ] }; key { [ 9, parenright, braceright, Ocircumflex ] }; key { [ 0, equal, notequal, Uacute ] }; key { [ apostrophe, question, questiondown, NoSymbol ] }; key { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] }; key { [ q, Q, oe, OE ] }; key { [ w, W, Greek_SIGMA, Aacute ] }; key { [ e, E, EuroSign, Ediaeresis ] }; key { [ r, R, registered, Egrave ] }; key { [ t, T, dagger, Icircumflex ] }; key { [ z, Z, Greek_OMEGA, Iacute ] }; key { [ u, U, degree, Ugrave ] }; key { [ i, I, exclamdown, idotless ] }; key { [ o, O, oslash, Ooblique ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [ udiaeresis, egrave, section, ydiaeresis ] }; key { [ dead_diaeresis, exclam, grave, apostrophe ] }; key { [ a, A, aring, Aring ] }; key { [ s, S, ssharp, U1E9E ] }; // ligature fl key { [ d, D, Greek_sigma, NoSymbol ] }; // partialderivative is not available here att key { [ f, F, function, doubledagger ] }; key { [ g, G, at, comma ] }; key { [ h, H, ordfeminine, periodcentered ] }; key { [ j, J, masculine, eth ] }; key { [ k, K, Greek_DELTA, macron ] }; key { [ l, L, notsign, caret ] }; key { [ odiaeresis, eacute, cent, breve ] }; key { [ adiaeresis, agrave, ae, AE ] }; key { [ y, Y, yen, Ydiaeresis ] }; key { [ x, X, similarequal, trademark ] }; key { [ c, C, copyright, NoSymbol ] }; key { [ v, V, radical, diamond ] }; key { [ b, B, integral, NoSymbol ] }; key { [ n, N, dead_tilde, enopencircbullet ] }; // to be fixed att key { [ m, M, mu, dead_abovering ] }; // not sure att key { [ comma, semicolon, guillemotleft, guillemotright ] }; key { [ period, colon, ellipsis, division ] }; key { [ minus, underscore, hyphen, emdash ] }; key { [ section, degree, NoSymbol, NoSymbol ] }; // ligature fi // per mille key { [ space, nobreakspace, nobreakspace ] }; key { [ less, greater, lessthanequal, greaterthanequal ] }; key { [ dollar, sterling, paragraph, enfilledcircbullet ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "fr_mac" { include "ch(de_mac)" name[Group1]= "French (Switzerland, Macintosh)"; override key { [ egrave, udiaeresis, bracketleft ] }; override key { [ eacute, odiaeresis ] }; override key { [ agrave, adiaeresis, braceleft ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6_de" { include "sun_vndr/ch(sun_type6_de)" }; partial alphanumeric_keys xkb_symbols "sun_type6_fr" { include "sun_vndr/ch(sun_type6_fr)" }; PK(f[.. symbols/groupnu[// The right Alt key (while pressed) chooses the second keyboard group. partial modifier_keys xkb_symbols "switch" { key { symbols[Group1] = [ Mode_switch, Multi_key ], virtualMods= AltGr }; }; // The left Alt key (while pressed) chooses the second keyboard group. partial modifier_keys xkb_symbols "lswitch" { key { symbols[Group1] = [ Mode_switch, Multi_key ], virtualMods= AltGr }; }; // Either Win key (while pressed) chooses the second keyboard group. partial modifier_keys xkb_symbols "win_switch" { include "group(lwin_switch)" include "group(rwin_switch)" }; // The left Win key (while pressed) chooses the second keyboard group. // (Using this map, you should declare your keyboard as pc101 or pc102 // instead of pc104 or pc105.) partial modifier_keys xkb_symbols "lwin_switch" { key { symbols[Group1] = [ Mode_switch, Multi_key ], virtualMods= AltGr }; }; // The right Win key (while pressed) chooses the second keyboard group. // (Using this map, you should declare your keyboard as pc101 or pc102 // instead of pc104 or pc105.) partial modifier_keys xkb_symbols "rwin_switch" { key { symbols[Group1] = [ Mode_switch, Multi_key ], virtualMods= AltGr }; }; // The right Menu key (while pressed) chooses the second keyboard group. // while Shift+Menu acts as Menu. partial modifier_keys xkb_symbols "menu_switch" { key { symbols[Group1] = [ Mode_switch, Menu ], virtualMods= AltGr }; }; // The right Ctrl key (while pressed) chooses the second keyboard group. // (Needed mainly for the Canadian keyboard.) partial modifier_keys xkb_symbols "rctrl_switch" { key { symbols[Group1] = [ Mode_switch ] }; }; // Pressing the right Alt key switches to the next group. partial modifier_keys xkb_symbols "toggle" { virtual_modifiers AltGr; key { symbols[Group1] = [ ISO_Next_Group ], virtualMods= AltGr }; }; // Pressing both Shift keys switches to the next or previous group // (depending on which Shift is pressed first). partial modifier_keys xkb_symbols "shifts_toggle" { key { [ Shift_L, ISO_Prev_Group ] }; key { [ Shift_R, ISO_Next_Group ] }; }; // Pressing Shift+Caps_Lock switches to the next group. partial modifier_keys xkb_symbols "shift_caps_toggle" { key { [ Caps_Lock, ISO_Next_Group ] }; }; // Pressing Caps_Lock selects the first group, // pressing Shift+Caps_Lock selects the last group. partial modifier_keys xkb_symbols "shift_caps_switch" { key { [ ISO_First_Group, ISO_Last_Group ] }; }; // toggle using win + space as combo partial modifier_keys xkb_symbols "win_space_toggle" { key { type="PC_SUPER_LEVEL2", symbols[Group1]= [ space, ISO_Next_Group ], symbols[Group2]= [ space, ISO_Next_Group ] }; }; // Pressing the left Win key selects the first group, // pressing the right Win or the Menu key selects the last group. partial modifier_keys xkb_symbols "win_menu_switch" { virtual_modifiers AltGr; key { virtualMods= AltGr, symbols[Group1] = [ ISO_First_Group ] }; key { virtualMods= AltGr, symbols[Group1] = [ ISO_Last_Group ] }; key { virtualMods= AltGr, symbols[Group1] = [ ISO_Last_Group ] }; }; // Pressing the left Ctrl key selects the first group, // pressing the right Ctrl key selects the last group. partial modifier_keys xkb_symbols "lctrl_rctrl_switch" { virtual_modifiers AltGr; key { virtualMods= AltGr, symbols[Group1] = [ ISO_First_Group ] }; key { virtualMods= AltGr, symbols[Group1] = [ ISO_Last_Group ] }; }; // // CTRL-SHIFT toggle section // partial modifier_keys xkb_symbols "lctrl_lshift_toggle" { key { type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ Shift_L, ISO_Next_Group ] }; key { [ Control_L, ISO_Next_Group ] }; }; partial modifier_keys xkb_symbols "lctrl_lshift_toggle_rev" { key { type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ Shift_L, ISO_Prev_Group ] }; key { [ Control_L, ISO_Prev_Group ] }; }; partial modifier_keys xkb_symbols "rctrl_rshift_toggle" { key { type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ Shift_R, ISO_Next_Group ] }; key { [ Control_R, ISO_Next_Group ] }; }; partial modifier_keys xkb_symbols "ctrl_shift_toggle" { include "group(lctrl_lshift_toggle)" include "group(rctrl_rshift_toggle)" }; partial modifier_keys xkb_symbols "ctrl_shift_toggle_bidir" { include "group(lctrl_lshift_toggle_rev)" include "group(rctrl_rshift_toggle)" }; // // CTRL-ALT toggle section // partial modifier_keys xkb_symbols "lctrl_lalt_toggle" { virtual_modifiers Alt; key { type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= Alt }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1] = [ Control_L, ISO_Next_Group ] }; }; partial modifier_keys xkb_symbols "lctrl_lalt_toggle_rev" { virtual_modifiers Alt; key { type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], virtualMods= Alt }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1] = [ Control_L, ISO_Prev_Group ] }; }; partial modifier_keys xkb_symbols "rctrl_ralt_toggle" { virtual_modifiers Alt; key { type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= Alt }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1] = [ Control_R, ISO_Next_Group ] }; }; partial modifier_keys xkb_symbols "ctrl_alt_toggle" { include "group(lctrl_lalt_toggle)" include "group(rctrl_ralt_toggle)" }; partial modifier_keys xkb_symbols "ctrl_alt_toggle_bidir" { include "group(lctrl_lalt_toggle_rev)" include "group(rctrl_ralt_toggle)" }; // // ALT-SHIFT toggle section // partial modifier_keys xkb_symbols "lalt_lshift_toggle" { virtual_modifiers Alt; key { symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= Alt }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1] = [ Shift_L, ISO_Next_Group ] }; }; partial modifier_keys xkb_symbols "lalt_lshift_toggle_rev" { virtual_modifiers Alt; key { symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], virtualMods= Alt }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1] = [ Shift_L, ISO_Prev_Group ] }; }; partial modifier_keys xkb_symbols "ralt_rshift_toggle" { virtual_modifiers Alt; key { symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= Alt }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1] = [ Shift_R, ISO_Next_Group ] }; }; partial modifier_keys xkb_symbols "alt_shift_toggle" { include "group(lalt_lshift_toggle)" include "group(ralt_rshift_toggle)" }; partial modifier_keys xkb_symbols "alt_shift_toggle_bidir" { include "group(lalt_lshift_toggle_rev)" include "group(ralt_rshift_toggle)" }; // Pressing the Menu key switches to the next group, // while Shift+Menu acts as Menu. partial modifier_keys xkb_symbols "menu_toggle" { key { [ ISO_Next_Group, Menu ] }; }; // Pressing the left Win key switches to the next group. // (Using this map, you should declare your keyboard as // pc101 or pc102 instead of pc104 or pc105.) partial modifier_keys xkb_symbols "lwin_toggle" { virtual_modifiers AltGr; key { virtualMods= AltGr, symbols[Group1] = [ ISO_Next_Group ] }; }; // Pressing the right Win key switches to the next group. // (Using this map, you should declare your keyboard as // pc101 or pc102 instead of pc104 or pc105.) partial modifier_keys xkb_symbols "rwin_toggle" { virtual_modifiers AltGr; key { virtualMods= AltGr, symbols[Group1] = [ ISO_Next_Group ] }; }; // Pressing both Ctrl keys switches to the next or previous group // (depending on which Ctrl is pressed first). partial modifier_keys xkb_symbols "ctrls_toggle" { virtual_modifiers LControl, RControl; key { type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], virtualMods= LControl }; key { type[Group1]="PC_CONTROL_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= RControl }; }; // Pressing both Alt switches to the next or previous group // (depending on which Alt is pressed first). partial modifier_keys xkb_symbols "alts_toggle" { virtual_modifiers LAlt, RAlt; key { type[Group1]="PC_RALT_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], virtualMods= LAlt }; key { type[Group1]="PC_LALT_LEVEL2", symbols[Group1] = [ NoSymbol, ISO_Next_Group ], virtualMods= RAlt }; }; // Pressing the left Shift key switches to the next group. partial modifier_keys xkb_symbols "lshift_toggle" { virtual_modifiers AltGr; key { symbols[Group1] = [ ISO_Next_Group ], virtualMods= AltGr }; }; // Pressing the right Shift key switches to the next group. partial modifier_keys xkb_symbols "rshift_toggle" { virtual_modifiers AltGr; key { symbols[Group1] = [ ISO_Next_Group ], virtualMods= AltGr }; }; // Pressing the left Alt key switches to the next group. partial modifier_keys xkb_symbols "lalt_toggle" { virtual_modifiers AltGr; key { symbols[Group1] = [ ISO_Next_Group ], virtualMods= AltGr }; }; // Pressing the left Ctrl key switches to the next group. partial modifier_keys xkb_symbols "lctrl_toggle" { virtual_modifiers AltGr; key { symbols[Group1] = [ ISO_Next_Group ], virtualMods= AltGr }; }; // Pressing the right Ctrl key switches to the next group. partial modifier_keys xkb_symbols "rctrl_toggle" { virtual_modifiers AltGr; key { symbols[Group1] = [ ISO_Next_Group ], virtualMods= AltGr }; }; // Pressing Alt+Caps_Lock switches to the next group, // pressing Caps_Lock toggles CapsLock. partial modifier_keys xkb_symbols "alt_caps_toggle" { key { type="PC_ALT_LEVEL2", symbols[Group1] = [ Caps_Lock, ISO_Next_Group ] }; }; hidden partial modifier_keys xkb_symbols "olpc" { key { [ ISO_Next_Group, ISO_Prev_Group ] }; }; partial modifier_keys xkb_symbols "alt_space_toggle" { key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1] = [ space, ISO_Next_Group ] }; }; // Pressing the Scroll Lock key switches to the next group, partial modifier_keys xkb_symbols "sclk_toggle" { virtual_modifiers AltGr; key { virtualMods= AltGr, symbols[Group1] = [ ISO_Next_Group ] }; }; // Control_L+Win_L selects the first group (presumably Lat), // Control_R+Menu selects the second group (presumably Rus). partial modifier_keys xkb_symbols "lctrl_lwin_rctrl_menu" { key { type[Group1] = "PC_CONTROL_LEVEL2", symbols[Group1] = [ Super_L, ISO_First_Group ] }; key { type[Group1] = "PC_CONTROL_LEVEL2", symbols[Group1] = [ Menu, ISO_Last_Group ] }; }; // Control_L+Win_L toggles groups. partial modifier_keys xkb_symbols "lctrl_lwin_toggle" { key { type[ Group1 ] = "PC_CONTROL_LEVEL2", symbols[ Group1 ] = [ Super_L, ISO_Next_Group ] }; }; PK(f[T22 symbols/ptnu[default partial alphanumeric_keys xkb_symbols "basic" { include "latin(type4)" name[Group1]="Portuguese"; key { [ backslash, bar, notsign, notsign ] }; key { [ 3, numbersign, sterling, sterling ] }; key { [ 4, dollar, section, dollar ] }; key { [ apostrophe, question, backslash, questiondown ] }; key { [ guillemotleft, guillemotright, dead_cedilla, dead_ogonek ] }; key { [ plus, asterisk, dead_diaeresis, dead_abovering ] }; key { [ dead_acute, dead_grave, dead_tilde, dead_macron ] }; key { [ dead_tilde, dead_circumflex, dead_grave, dead_breve ] }; key { [ ccedilla, Ccedilla, dead_acute, dead_doubleacute ] }; key { [ masculine, ordfeminine,dead_circumflex, dead_caron ] }; key { [ less, greater, backslash, backslash ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "pt(basic)" key { [ plus, asterisk, dead_diaeresis, dead_diaeresis ] }; key { [ dead_acute, dead_grave ] }; key { [ dead_tilde, dead_circumflex ] }; }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "pt(Sundeadkeys)" name[Group1]="Portuguese (with Sun dead keys)"; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "pt(basic)" name[Group1]="Portuguese (no dead keys)"; key { [ guillemotleft, guillemotright, cedilla, ogonek ] }; key { [ plus, asterisk, quotedbl, quotedbl ] }; key { [ acute, grave ] }; key { [ asciitilde, asciicircum ] }; key { [ ccedilla, Ccedilla, acute, doubleacute ] }; key { [ masculine, ordfeminine, asciicircum, caron ] }; key { [ minus, underscore, dead_belowdot, abovedot ] }; }; // Layout variant for Mac, by Ricardo Cabral . partial alphanumeric_keys xkb_symbols "mac" { include "pt" name[Group1]= "Portuguese (Macintosh)"; key { [ grave, asciitilde, notsign, notsign ] }; key { [ 6, ampersand, threequarters, fiveeighths ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ plus, asterisk, dead_diaeresis ] }; key { [ masculine, ordfeminine ] }; key { [ backslash, bar, dead_grave, dead_breve ] }; key { [ dead_tilde, dead_circumflex ] }; }; partial alphanumeric_keys xkb_symbols "mac_sundeadkeys" { include "pt(mac)" name[Group1]= "Portuguese (Macintosh, with Sun dead keys)"; key { [ plus, asterisk, dead_diaeresis, dead_diaeresis ] }; key { [ dead_acute, dead_grave ] }; key { [ dead_tilde, dead_circumflex ] }; }; partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { include "pt(mac)" name[Group1]= "Portuguese (Macintosh, no dead keys)"; key { [ plus, asterisk, quotedbl, quotedbl ] }; key { [ acute, grave ] }; key { [ asciitilde, asciicircum ] }; }; // // Portuguese Nativo layout. // This is a Dvorak-based layout, designed for the Portuguese language. // // Ari Caldeira 2005-07-19 // partial alphanumeric_keys xkb_symbols "nativo" { name[Group1]="Portuguese (Nativo)"; // Numeric row key { [ plus, asterisk, dead_diaeresis, plusminus ] }; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, quotedbl, at, twosuperior ] }; key { [ 3, numbersign, sterling, threesuperior ] }; key { [ 4, dollar, section, onequarter ] }; key { [ 5, percent, cent, 0x01002030 ] }; key { [ 6, ampersand, notsign, diaeresis ] }; key { [ 7, slash, braceleft, 0x0100032D ] }; key { [ 8, parenleft, bracketleft, 0x01000331 ] }; key { [ 9, parenright, bracketright, dead_horn ] }; key { [ 0, equal, braceright, dead_hook ] }; key { [ masculine, ordfeminine, dead_ogonek, 0x01000326 ] }; key { [ less, greater, dead_cedilla, dead_abovering ] }; // Upper row key { [ apostrophe, question, degree, questiondown ] }; key { [ comma, semicolon, 0x01000329, 0x01000315 ] }; key { [ period, colon, 0x01002022, periodcentered ] }; key { [ h, H, paragraph, paragraph ] }; key { [ x, X, multiply, division ] }; key { [ w, W, ubreve, Ubreve ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ t, T, trademark, trademark ] }; key { [ c, C, copyright, copyright ] }; key { [ p, P, thorn, THORN ] }; key { [ dead_tilde, dead_circumflex, dead_caron, dead_doubleacute ] }; key { [ minus, underscore, 0x01002015, 0x01000336 ] }; // Central row key { [ i, I, idotless, Iabovedot ] }; key { [ e, E, EuroSign, EuroSign ] }; key { [ a, A, ae, AE ] }; key { [ o, O, oe, OE ] }; key { [ u, U, oslash, Ooblique ] }; key { [ m, M, mu, mu ] }; key { [ d, D, eth, ETH ] }; key { [ s, S, ssharp, 0x01001E9E ] }; key { [ r, R, registered, registered ] }; key { [ n, N, eng, ENG ] }; key { [ dead_acute, dead_grave, dead_macron, dead_breve ] }; key { [ backslash, bar, dead_belowdot, dead_abovedot ] }; // Lower row key { [ guillemotleft, guillemotright, 0x01002039, 0x0100203A ] }; key { [ y, Y, yen, yen ] }; key { [ ccedilla, Ccedilla ] }; key { [ j, J, 0x01000292, 0x010001B7 ] }; key { [ b, B, apostrophe, quotedbl ] }; key { [ k, K, currency, brokenbar ] }; key { [ q, Q, 0x01000259, 0x0100018F ] }; key { [ v, V, doublelowquotemark, singlelowquotemark ] }; key { [ g, G, leftdoublequotemark, leftsinglequotemark ] }; key { [ f, F, rightdoublequotemark, rightsinglequotemark ] }; key { [ z, Z, 0x0100201F, 0x0100201B ] }; key { [ space, space, nobreakspace, nobreakspace ] }; // Configures the use of the AltGr key include "level3(ralt_switch)" }; // // Portuguese Nativo layout for US keyboards. // // Ari Caldeira 2005-07-19 // partial alphanumeric_keys xkb_symbols "nativo-us" { include "pt(nativo)" name[Group1]="Portuguese (Nativo for US keyboards)"; key { [ y, Y, ccedilla, Ccedilla ] }; key { [ guillemotleft, guillemotright, 0x01002039, 0x0100203A ] }; }; // // Portuguese Nativo layout for typing Esperanto. // // Ari Caldeira 2005-07-19 // partial alphanumeric_keys xkb_symbols "nativo-epo" { include "pt(nativo)" name[Group1]="Esperanto (Portugal, Nativo)"; key { [ h, H, hcircumflex, Hcircumflex ] }; key { [ ccircumflex, Ccircumflex, x, X ] }; key { [ ubreve, Ubreve, w, W ] }; key { [ jcircumflex, Jcircumflex, y, Y ] }; key { [ scircumflex, Scircumflex, ccedilla, Ccedilla ] }; key { [ gcircumflex, Gcircumflex, q, Q ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/pt(sun_type6)" }; // // Portuguese Colemak layout. // partial alphanumeric_keys xkb_symbols "colemak" { include "pt(basic)" name[Group1]="Portuguese (Colemak)"; key { [ q, Q, at, Greek_OMEGA ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ f, F, dstroke, ordfeminine ] }; key { [ p, P, thorn, THORN ] }; key { [ g, G, eng, ENG ] }; key { [ j, J, dead_hook, dead_horn ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ u, U, downarrow, uparrow ] }; key { [ y, Y, leftarrow, yen ] }; key { [ ccedilla, Ccedilla, dead_acute, dead_doubleacute ] }; key { [ a, A, ae, AE ] }; key { [ r, R, paragraph, registered ] }; key { [ s, S, ssharp, section ] }; key { [ t, T, tslash, Tslash ] }; key { [ d, D, eth, ETH ] }; key { [ h, H, hstroke, Hstroke ] }; key { [ n, N, n, N ] }; key { [ e, E, EuroSign, cent ] }; key { [ i, I, rightarrow, idotless ] }; key { [ o, O, oslash, Ooblique ] }; key { [ z, Z, guillemotleft, less ] }; key { [ x, X, guillemotright, greater ] }; key { [ c, C, cent, copyright ] }; key { [ v, V, leftdoublequotemark, leftsinglequotemark ] }; key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; key { [ k, K, kra, ampersand ] }; key { [ m, M, mu, masculine ] }; key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; }; PK(f[s symbols/nlnu[// Basic layout based on converted file, from keytable file to xkb/symbols/ file // with mk_xkb by root@linux.chanae.stben.be Tue Sep 30 00:53:29 MET DST 1997 // Converted from the nl-latin.map of the Linux kbd package by // Pablo Saratxaga // Official layout by Benno Schulenberg , January 2007, // based on http://www.xs4all.nl/~koospol/public/Xmodmap-nl-deadkeys.gz default partial alphanumeric_keys xkb_symbols "basic" { include "latin" name[Group1]="Dutch"; key { [ 2, quotedbl, twosuperior, oneeighth ] }; key { [ 6, ampersand, threequarters, fiveeighths ] }; key { [ 7, underscore, sterling, seveneighths ] }; key { [ 8, parenleft, braceleft, bracketleft ] }; key { [ 9, parenright, braceright, bracketright ] }; key { [ 0, apostrophe, degree, trademark ] }; key { [ slash, question, backslash, questiondown ] }; key { [ degree, dead_tilde, dead_cedilla, dead_ogonek ] }; key { [ e, E, EuroSign, cent ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, ydiaeresis, yen ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ i, I, idiaeresis, Idiaeresis ] }; key { [ o, O, ograve, Ograve ] }; key { [ p, P, paragraph, THORN ] }; key { [dead_diaeresis, dead_circumflex, asciitilde, asciicircum] }; key { [ asterisk, bar, dead_tilde, dead_macron ] }; key { [ a, A, aacute, Aacute ] }; key { [ f, F, ordfeminine, ordfeminine ] }; key { [ plus, plusminus, dead_acute, dead_doubleacute ] }; key { [dead_acute, dead_grave, apostrophe, grave ] }; key { [ at, section, notsign, notsign ] }; key { [ less, greater, dead_grave, dead_breve ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, Greek_mu, masculine ] }; key { [ comma, semicolon, cedilla, guillemotleft] }; key { [ period, colon, periodcentered, guillemotright ] }; key { [ minus, equal, hyphen, dead_abovedot] }; key { [bracketright, bracketleft, bar, brokenbar ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "std" { name[Group1]= "Dutch (standard)"; key { [ at, section, notsign ] }; key { [ 1, exclam, onesuperior ] }; key { [ 2, quotedbl, twosuperior ] }; key { [ 3, numbersign, threesuperior ] }; key { [ 4, dollar, onequarter ] }; key { [ 5, percent, onehalf ] }; key { [ 6, ampersand, threequarters ] }; key { [ 7, underscore, sterling ] }; key { [ 8, parenleft, braceleft ] }; key { [ 9, parenright, braceright ] }; key { [ 0, apostrophe ] }; key { [ slash, question, backslash ] }; key { [ degree, dead_tilde, dead_cedilla ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E, EuroSign ] }; key { [ r, R, paragraph ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ dead_diaeresis, dead_circumflex ] }; key { [ asterisk, bar ] }; key { [ less, greater ] }; key { [ a, A ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ plus, plusminus ] }; key { [ dead_acute, dead_grave ] }; key { [ bracketright, bracketleft, bar ] }; key { [ z, Z, guillemotleft ] }; key { [ x, X, guillemotright ] }; key { [ c, C, cent ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M, mu ] }; key { [ comma, semicolon ] }; key { [ period, colon, periodcentered ] }; key { [ minus, equal ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { // For naming consistency include "nl(basic)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { // For naming consistency include "nl(Sundeadkeys)" name[Group1]="Dutch (with Sun dead keys)"; }; // Copied from macintosh_vndr/nl partial alphanumeric_keys xkb_symbols "mac" { include "latin" name[Group1]= "Dutch (Macintosh)"; include "level3(ralt_switch)" }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/nl(sun_type6)" }; PK(f[Ee? symbols/hrnu[default partial alphanumeric_keys xkb_symbols "basic" { include "rs(latin)" name[Group1]="Croatian"; // Redefine these keys to match the XFree86 Croatian layout. key { [ 1, exclam, asciitilde, dead_tilde ] }; key { [ 3, numbersign, asciicircum, dead_circumflex ] }; key { [ 5, percent, degree, dead_abovering ] }; key { [ 7, slash, grave, dead_grave ] }; key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; }; partial alphanumeric_keys xkb_symbols "us" { include "us" name[Group1]= "Croatian (US, with Croatian letters)"; key { [ any, any, backslash ] }; key { [ any, any, bar ] }; key { [ any, any, EuroSign ] }; key { [ any, any, z, Z ] }; key { [ any, any, scaron, Scaron ] }; key { [ any, any, dstroke, Dstroke ] }; key { [ any, any, bracketleft ] }; key { [ any, any, bracketright ] }; key { [ any, any, lstroke ] }; key { [ any, any, Lstroke ] }; key { [ any, any, ccaron, Ccaron ] }; key { [ any, any, cacute, Cacute ] }; key { [ any, any, bar ] }; key { [ any, any, y, Y ] }; key { [ any, any, at ] }; key { [ any, any, braceleft ] }; key { [ any, any, braceright ] }; key { [ any, any, section ] }; key { [ any, any, semicolon ] }; key { [ any, any, colon ] }; key { [ any, any, minus, underscore ] }; key { [ any, any, zcaron, Zcaron ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "alternatequotes" { include "rs(latinalternatequotes)" name[Group1]= "Croatian (with guillemets)"; }; partial alphanumeric_keys xkb_symbols "unicode" { include "rs(latinunicode)" name[Group1]= "Croatian (with Croatian digraphs)"; }; partial alphanumeric_keys xkb_symbols "unicodeus" { include "rs(latinunicodeyz)" name[Group1]= "Croatian (US, with Croatian digraphs)"; }; PK(f[ -\\symbols/keypadnu[default hidden partial keypad_keys xkb_symbols "x11" { include "keypad(operators)" key { [ KP_Home, KP_7 ] }; key { [ KP_Up, KP_8 ] }; key { [ KP_Prior, KP_9 ] }; key { [ KP_Left, KP_4 ] }; key { [ KP_Begin, KP_5 ] }; key { [ KP_Right, KP_6 ] }; key { [ KP_End, KP_1 ] }; key { [ KP_Down, KP_2 ] }; key { [ KP_Next, KP_3 ] }; key { [ KP_Enter ] }; key { [ KP_Equal ] }; key { [ KP_Insert, KP_0 ] }; key { [ KP_Delete, KP_Decimal ] }; key { [ KP_Decimal, KP_Decimal ] }; }; hidden partial keypad_keys xkb_symbols "overlay" { include "keypad(overlay1)" }; hidden partial keypad_keys xkb_symbols "overlay1" { key { [ KP_Home ], overlay1= }; key { [ KP_Up ], overlay1= }; key { [ KP_Prior ], overlay1= }; key { [ KP_Left ], overlay1= }; key { [ KP_Begin ], overlay1= }; key { [ KP_Right ], overlay1= }; key { [ KP_End ], overlay1= }; key { [ KP_Down ], overlay1= }; key { [ KP_Next ], overlay1= }; key { [ KP_Insert ], overlay1= }; key { [ KP_Delete ], overlay1= }; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_0 ] }; key { [ KP_Decimal ] }; }; hidden partial keypad_keys xkb_symbols "overlay2" { key { [ KP_Home ], overlay2= }; key { [ KP_Up ], overlay2= }; key { [ KP_Prior ], overlay2= }; key { [ KP_Left ], overlay2= }; key { [ KP_Begin ], overlay2= }; key { [ KP_Right ], overlay2= }; key { [ KP_End ], overlay2= }; key { [ KP_Down ], overlay2= }; key { [ KP_Next ], overlay2= }; key { [ KP_Insert ], overlay2= }; key { [ KP_Delete ], overlay2= }; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_0 ] }; key { [ KP_Decimal ] }; }; hidden partial keypad_keys xkb_symbols "operators" { // Puts some commands to control the X server on // the fifth level of the keypad's operator keys. key { type="CTRL+ALT", // Ungrab cancels server/keyboard/pointer grabs symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; key { type="CTRL+ALT", // ClsGrb kills whichever client has a grab in effect symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; key { type="CTRL+ALT", // -VMode switches to the previous video mode symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; key { type="CTRL+ALT", // +VMode switches to the next video mode symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; }; // Legacy PC keypad definition // Copyright © 2006-2007 Nicolas Mailhot keypad_keys xkb_symbols "legacy" { include "keypad(core)" include "keypad(legacymath)" include "keypad(legacynumber)" include "kpdl(dot)" }; // Legacy Wang 725-3771-ae and 725-3771-uk keypad definition // Copyright © 2006-2007 Nicolas Mailhot keypad_keys xkb_symbols "legacy_wang" { include "keypad(core)" include "keypad(legacymath)" include "keypad(legacynumber_wang)" include "kpdl(dot)" }; // Complete new keypad definition // Copyright © 2006-2007 Nicolas Mailhot keypad_keys xkb_symbols "oss" { include "keypad(core)" include "keypad(ossmath)" include "keypad(ossnumber)" include "kpdl(dotoss)" }; // Latin9 restriction of new keypad definition // Copyright © 2006-2007 Nicolas Mailhot keypad_keys xkb_symbols "oss_latin9" { include "keypad(core)" include "keypad(ossmath_latin9)" include "keypad(legacynumber)" include "kpdl(dotoss_latin9)" }; // Wang 725-3771-ae and 725-3771-uk keypad variant of oss keypad // Copyright © 2006-2007 Nicolas Mailhot keypad_keys xkb_symbols "oss_wang" { include "keypad(core)" include "keypad(ossmath)" include "keypad(ossnumber_wang)" include "kpdl(dotoss)" }; // Forward-looking keypad definition // Won't work with applications that make ASCII assumptions // Copyright © 2007 Nicolas Mailhot keypad_keys xkb_symbols "future" { include "keypad(core)" include "keypad(futuremath)" include "keypad(ossnumber)" include "kpdl(commaoss)" }; // Forward-looking keypad definition // Won't work with applications that make ASCII assumptions // Copyright © 2007 Nicolas Mailhot keypad_keys xkb_symbols "future_wang" { include "keypad(core)" include "keypad(futuremath)" include "keypad(ossnumber_wang)" include "kpdl(commaoss)" }; // Keypad keys nobody changes // Copyright © 2006 Nicolas Mailhot partial keypad_keys xkb_symbols "core" { modifier_map Mod2 { Num_Lock }; key { [ Num_Lock ] }; key { [ KP_Enter ] }; key { [ KP_Equal ] }; }; // Legacy keypad math area // Copyright © 2006 Nicolas Mailhot // // ┏━━━━━┱─────┬─────┬─────┐ // ┃Num ┃ ₁ │ ₂ │ ₃ │ ₁ // ┃Lock⇭┃ / │ * │ - │ ₂ // ┡━━━━━╃─────┼─────┼─────┤ ₃ // │ ₄ │ ₄ // │ │ // ┤ │ 1 None // │ │ 2 Ctrl+Alt // │ + │ // ╆━━━━━┪ partial keypad_keys xkb_symbols "legacymath" { key.type[Group1]="CTRL+ALT" ; key { [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; // / key { [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; // * key { [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; // - key { [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; // + }; // Keypad math area with non-CS operators // Copyright © 2006 Nicolas Mailhot // // ┏━━━━━┱─────┬─────┬─────┐ // ┃Num ┃ ∕ ₁ │ . ₂ │ − ₃ │ ₁ // ┃Lock⇭┃ / ÷ │ * × │ - − │ ₂ // ┡━━━━━╃─────┼─────┼─────┤ ₃ // │ + ₄ │ ₄ // │ │ // ┤ │ 1 None // │ │ 2 Level3 ⇮ // │ + + │ 3 Shift+Level3 ⇧⇮ // ╆━━━━━┪ 4 Ctrl+Alt partial keypad_keys xkb_symbols "ossmath" { key.type[Group1]="CTRL+ALT" ; key { [ KP_Divide, 0x1002215, 0x10000F7, VoidSymbol, XF86_Ungrab ] }; // / ∕ ÷ key { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol, XF86_ClearGrab ] }; // * ⋅ × key { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // - − − key { [ KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + }; // Keypad math area with non-CS operators in first levels // As demanded by users not interested in legacy pre-unicode junk // Copyright © 2007 Nicolas Mailhot // // ┏━━━━━┱─────┬─────┬─────┐ // ┃Num ┃ / ₁ │ * ₂ │ - ₃ │ ₁ // ┃Lock⇭┃ ∕ ÷ │ . × │ − − │ ₂ // ┡━━━━━╃─────┼─────┼─────┤ ₃ // │ + ₄ │ ₄ // │ │ // ┤ │ 1 None // │ │ 2 Level3 ⇮ // │ + + │ 3 Shift+Level3 ⇧⇮ // ╆━━━━━┪ 4 Ctrl+Alt partial keypad_keys xkb_symbols "futuremath" { key.type[Group1]="FOUR_LEVEL_X" ; key { [ 0x1002215, KP_Divide, 0x10000F7, XF86_Ungrab ] }; // ∕ / ÷ key { [ 0x10022C5, KP_Multiply, 0x10000D7, XF86_ClearGrab ] }; // ⋅ * × key { [ 0x1002212, KP_Subtract, 0x1002212, XF86_Prev_VMode ] }; // − - − key { [ 0x100002B, KP_Add, 0x100002B, XF86_Next_VMode ] }; // + + + }; // Keypad math area with non-CS operators, restricted to latin9 // Copyright © 2006 Nicolas Mailhot // // ┏━━━━━┱─────┬─────┬─────┐ // ┃Num ┃ / ₁ │ · ₂ │ - ₃ │ ₁ // ┃Lock⇭┃ / ÷ │ * × │ - - │ ₂ // ┡━━━━━╃─────┼─────┼─────┤ ₃ // │ + ₄ │ ₄ // │ │ // ┤ │ 1 None // │ │ 2 Level3 ⇮ // │ + + │ 3 Shift+Level3 ⇧⇮ // ╆━━━━━┪ 4 Ctrl+Alt partial keypad_keys xkb_symbols "ossmath_latin9" { key.type[Group1]="FOUR_LEVEL_X"; key { [ KP_Divide, slash, division, XF86_Ungrab ] }; // / / ÷ key { [ KP_Multiply, periodcentered, multiply, XF86_ClearGrab ] }; // * · × key { [ KP_Subtract, minus, minus, XF86_Prev_VMode ] }; // - - - key { [ KP_Add, plus, plus, XF86_Next_VMode ] }; // + + + }; // Legacy keypad number area // Copyright © 2006 Nicolas Mailhot // // ┏━━━━━┱ // ┃Num ┃ ⇱ Home // ┃Lock⇭┃ ⇲ End // ┡━━━━━╃─────┼─────┼ ⇞ Page up // │ 7 │ 8 │ 9 │ ⇟ Page down // │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert // ├─────┼─────┼─────┤ ␥ Delete // │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions // │ ⇦ │ │ ⇨ │ // ├─────┼─────┼─────╆ // │ 1 │ 2 │ 3 ┃ // │ ⇲ │ ⇩ │ ⇟ ┃ 1 None // ├─────┴─────┼─────┨ 2 Num Lock ⇭ // │ 0 │ // │ ⎀ │ // └───────────┴ partial keypad_keys xkb_symbols "legacynumber" { key.type[Group1]="KEYPAD" ; key { [ KP_Home, KP_7 ] }; // 7 key { [ KP_Up, KP_8 ] }; // 8 key { [ KP_Prior, KP_9 ] }; // 9 key { [ KP_Left, KP_4 ] }; // 4 key { [ KP_Begin, KP_5 ] }; // 5 key { [ KP_Right, KP_6 ] }; // 6 key { [ KP_End, KP_1 ] }; // 1 key { [ KP_Down, KP_2 ] }; // 2 key { [ KP_Next, KP_3 ] }; // 3 key { [ KP_Insert, KP_0 ] }; // 0 }; // Legacy Wang 725-3771-ae and 725-3771-uk keypad number area // Copyright © 2007 Nicolas Mailhot // This is actually a three-level keypad, declared as four-level // to avoid defining a new type // // ┏━━━━━┱ // ┃Num ┃ ⇱ Home // ┃Lock⇭┃ ⇲ End // ┡━━━━━╃─────┼─────┼ ⇞ Page up // │ 7 │ 8 │ 9 │ ⇟ Page down // │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert // ├─────┼─────┼─────┤ ␥ Delete // │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions // │ ⇦ [ │ ] │ ⇨ $ │ // ├─────┼─────┼─────╆ // │ 1 │ 2 │ 3 ┃ // │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None // ├─────┴─────┼─────┨ 2 Num Lock ⇭ // │ 0 │ 3 Level3 ⇮ // │ ⎀ │ // └───────────┴ partial keypad_keys xkb_symbols "legacynumber_wang" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; key { [ KP_Home, KP_7, less ] }; // 7 < key { [ KP_Up, KP_8, greater ] }; // 8 > key { [ KP_Prior, KP_9, asciicircum ] }; // 9 ^ key { [ KP_Left, KP_4, bracketleft ] }; // 4 [ key { [ KP_Begin, KP_5, bracketright ] }; // 5 ] key { [ KP_Right, KP_6, dollar ] }; // 6 $ key { [ KP_End, KP_1, ampersand ] }; // 1 & key { [ KP_Down, KP_2, at ] }; // 2 @ key { [ KP_Next, KP_3, numbersign ] }; // 3 # key { [ KP_Insert, KP_0, apostrophe ] }; // 0 ' }; // Keypad number area with arrow symbols // Copyright © 2006 Nicolas Mailhot // // ┏━━━━━┱ // ┃Num ┃ ⇱ Home // ┃Lock⇭┃ ⇲ End // ┡━━━━━╃─────┼─────┼ ⇞ Page up // │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │ ⇟ Page down // │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert // ├─────┼─────┼─────┤ ␥ Delete // │ 4 ⇐ │ 5 ⇔ │ 6 ⇒ │ ⇦⇧⇨⇩ Directions // │ ⇦ ← │ ↔ │ ⇨ → │ ⍽ narrow no-break space // ├─────┼─────┼─────╆ // │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃ // │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ 1 None // ├─────┴─────┼─────┨ 2 Num Lock ⇭ // │ 0 ⇕ │ 3 Level3 ⇮ // │ ⎀ ↕ │ 4 Shift+Level3 ⇧⇮ // └───────────┴ partial keypad_keys xkb_symbols "ossnumber" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; key { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // 7 ↖ ⇖ key { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // 8 ↑ ⇑ key { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // 9 ↗ ⇗ key { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // 4 ← ⇐ key { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // 5 ↔ ⇔ key { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // 6 → ⇒ key { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // 1 ↙ ⇙ key { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // 2 ↓ ⇓ key { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // 3 ↘ ⇘ key { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // 0 ↕ ⇕ }; // Wang 725-3771-ae and 725-3771-uk keypad number area with additional arrow symbols // Copyright © 2007 Nicolas Mailhot // // ┏━━━━━┱ // ┃Num ┃ ⇱ Home // ┃Lock⇭┃ ⇲ End // ┡━━━━━╃─────┼─────┼ ⇞ Page up // │ 7 ↖ │ 8 ↑ │ 9 ↗ │ ⇟ Page down // │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert // ├─────┼─────┼─────┤ ␥ Delete // │ 4 ← │ 5 ↔ │ 6 → │ ⇦⇧⇨⇩ Directions // │ ⇦ [ │ ] │ ⇨ $ │ ⍽ narrow no-break space // ├─────┼─────┼─────╆ // │ 1 ↙ │ 2 ↓ │ 3 ↘ ┃ // │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None // ├─────┴─────┼─────┨ 2 Num Lock ⇭ // │ 0 ↕ │ 3 Level3 ⇮ // │ ⎀ ' │ 4 Shift+Level3 ⇧⇮ // └───────────┴ partial keypad_keys xkb_symbols "ossnumber_wang" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; key { [ KP_Home, KP_7, less, 0x1002196 ] }; // 7 < ↖ key { [ KP_Up, KP_8, greater, 0x1002191 ] }; // 8 > ↑ key { [ KP_Prior, KP_9, asciicircum, 0x1002197 ] }; // 9 ^ ↗ key { [ KP_Left, KP_4, bracketleft, 0x1002190 ] }; // 4 [ ← key { [ KP_Begin, KP_5, bracketright, 0x1002194 ] }; // 5 ] ↔ key { [ KP_Right, KP_6, dollar, 0x1002192 ] }; // 6 $ → key { [ KP_End, KP_1, ampersand, 0x1002199 ] }; // 1 & ↙ key { [ KP_Down, KP_2, at, 0x1002193 ] }; // 2 @ ↓ key { [ KP_Next, KP_3, numbersign, 0x1002198 ] }; // 3 # ↘ key { [ KP_Insert, KP_0, apostrophe, 0x1002195 ] }; // 0 ' ↕ }; // Standard base "pc" layout only contains cursor keys, and then gets // augmented with the digits later. If you define your own layout for // the numpad you can inherit the cursors, but you'll have to define // the digits yourself. This module can be included in the rules to // define math operators; these are the variants used in computer // languages that are based on ASCII. NoSymbol does not mean that // nothing is bound to the key but that no assignment is done here. // srvr_ctrl(stdkeypad) and keypad(x11) declare the operator keys to // be of type CTRL+ALT in order to assign server control events to // them, but it uses the second level which is overwritten if we have // more than one definition (shift state) for the key. Instead, here // the commands are put at the 4th lever. partial keypad_keys xkb_symbols "ops" { key { [ NoSymbol, slash, NoSymbol, XF86_Ungrab ] }; key { [ NoSymbol, asterisk, NoSymbol, XF86_ClearGrab ] }; key { [ NoSymbol, minus, NoSymbol, XF86_Prev_VMode ] }; key { [ NoSymbol, plus, NoSymbol, XF86_Next_VMode ] }; key { [ NoSymbol, equal ] }; }; // Hexadecimal Numpad, by Roland Kaufmann // License: BSD (also covers variant with ATM digit order) // Third-level gives the letters used in hexadecimal numbers, or // columns in small spreadsheets. As a bonus, having 'e' available at // the center of the keyboard makes it easy to enter floating point // numbers in scientific notation. // Equal is added to start formulas (most numpads on PCs don't have // their own equal key), comma as a list separator (as most // programming languages wants period as a decimal separator) and // colon to enter times and ranges. Someone also may want to represent // multiplication and division in prose using x and colon. // Two first levels are specified as NoSymbol to not override any // previous specification. Combine this with another keypad specifier, // e.g. "legacy". partial keypad_keys xkb_symbols "hex" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; // None NumLock AltGr // symbol row key { [ NoSymbol, NoSymbol, parenleft ] }; key { [ NoSymbol, NoSymbol, parenright ] }; key { [ NoSymbol, NoSymbol, dollar ] }; // upper row key { [ NoSymbol, NoSymbol, a ] }; key { [ NoSymbol, NoSymbol, b ] }; key { [ NoSymbol, NoSymbol, c ] }; // home row key { [ NoSymbol, NoSymbol, d ] }; key { [ NoSymbol, NoSymbol, e ] }; key { [ NoSymbol, NoSymbol, f ] }; key { [ NoSymbol, NoSymbol, comma ] }; // lower row key { [ NoSymbol, NoSymbol, equal ] }; key { [ NoSymbol, NoSymbol, x ] }; key { [ NoSymbol, NoSymbol, colon ] }; // decimal row key { [ NoSymbol, NoSymbol, backslash ] }; }; // Main numbers follows the traditions from ATMs and phones with // numbers increasing downwards to the right. (It is easier to // change the keyboard layout than to reprogram your local ATM; // also cell-phones are becoming more common while calculators are // becoming more rare). // First level is left unspecified, so it may be combined with another // layout, e.g. "legacy". partial keypad_keys xkb_symbols "atm" { // upper row key { [ NoSymbol, KP_1 ] }; key { [ NoSymbol, KP_2 ] }; key { [ NoSymbol, KP_3 ] }; // lower row key { [ NoSymbol, KP_7 ] }; key { [ NoSymbol, KP_8 ] }; key { [ NoSymbol, KP_9 ] }; }; partial modifier_keys xkb_symbols "pointerkeys" { key { [ Num_Lock, Pointer_EnableKeys ] }; }; // Only numbers, operators and decimal separator, // as seen on keypad overlay on Japanese keyboard. // ┌─┬─┬─┬─┐ // │7│8│9│*│ // ├─┼─┼─┼─┤ // │4│5│6│-│ // ├─┼─┼─┼─┤ // │1│2│3│+│ // ├─┼─┼─┼─┤ // │0│ │·│/│ // └─┴─┴─┴─┘ partial keypad_keys xkb_symbols "numoperdecsep" { key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; // ClsGrb kills whichever client has a grab in effect key { type="CTRL+ALT", symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; // -VMode switches to the previous video mode key { type="CTRL+ALT", symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; // +VMode switches to the next video mode key { type="CTRL+ALT", symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; key { [ KP_0 ] }; key { [ KP_Decimal ] }; // Ungrab cancels server/keyboard/pointer grabs key { type="CTRL+ALT", symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; }; PK(f[( symbols/npnu[// based on a keyboard map from an 'xkb/symbols/dev' file default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Nepali"; // `,1,2,3,4,5,6,7,8,9,0,-,= key { [ 0x100093D,0x100093C ] }; key { [ 0x1000967, exclam ] }; key { [ 0x1000968, at ] }; key { [ 0x1000969, numbersign ] }; key { [ 0x100096A, dollar ] }; key { [ 0x100096B, percent ] }; key { [ 0x100096C, asciicircum ] }; key { [ 0x100096D, ampersand ] }; key { [ 0x100096e, asterisk ] }; key { [ 0x100096F ] }; key { [ 0x1000966,0x1000970 ] }; key { [ minus, 0x1000952 ] }; key { [ 0x100200D, 0x100200C ] }; // q,w,e,r,t,y,u,i,o,p,[,] key { [ 0x100091F, 0x1000920 ] }; key { [ 0x100094C, 0x1000914 ] }; key { [ 0x1000947, 0x1000948 ] }; key { [ 0x1000930, 0x1000943 ] }; key { [ 0x1000924, 0x1000925 ] }; key { [ 0x100092F, 0x100091E ] }; key { [ 0x1000941, 0x1000942 ] }; key { [ 0x100093F, 0x1000940 ] }; key { [ 0x100094B, 0x1000913 ] }; key { [ 0x100092A, 0x100092B ] }; key { [ 0x1000907, 0x1000908 ] }; key { [ 0x100090F, 0x1000910 ] }; // a,s,d,f,g,h,j,k,l,;,',Backslash key { [ 0x100093E, 0x1000906 ] }; key { [ 0x1000938, 0x1000936 ] }; key { [ 0x1000926, 0x1000927 ] }; key { [ 0x1000909, 0x100090A ] }; key { [ 0x1000917, 0x1000918 ] }; key { [ 0x1000939, 0x1000905 ] }; key { [ 0x100091C, 0x100091D ] }; key { [ 0x1000915, 0x1000916 ] }; key { [ 0x1000932, 0x1000933 ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ 0x1000950, 0x1000903 ] }; // z,x,c,v,b,n,m,,,.,/ key { [ 0x1000937, 0x100090B ] }; key { [ 0x1000921, 0x1000922 ] }; key { [ 0x100091B, 0x100091A ] }; key { [ 0x1000935, 0x1000901 ] }; key { [ 0x100092C, 0x100092D ] }; key { [ 0x1000928, 0x1000923 ] }; key { [ 0x100092E, 0x1000902 ] }; key { [ comma, 0x1000919 ] }; key { [ 0x1000964, 0x1000965 ] }; key { [ 0x100094D, question ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { // Contact: Walter Bender include "np" key { [ 0x100091E, 0x1000965 ] }; // NYA; double danda key { [ 0x1000967, 0x10FFFFD ] }; // Nepali digit one; U091C+U094D+U091E key { [ 0x1000968, 0x1000908 ] }; // Nepali digit two; key { [ 0x1000969, 0x1000918 ] }; // Nepali digit three; key { [ 0x100096A, 0x10FFFFC ] }; // Nepali digit four; U0926+U094D+U0927 key { [ 0x100096B, 0x100091B ] }; // Nepali digit five key { [ 0x100096C, 0x100091F ] }; // Nepali digit six key { [ 0x100096D, 0x1000920 ] }; // Nepali digit seven key { [ 0x100096e, 0x1000921 ] }; // Nepali digit eight key { [ 0x100096F, 0x1000922 ] }; // Nepali digit nine key { [ 0x1000966, 0x1000923 ] }; // Nepali digit zero key { [ 0x1000914, 0x1000913 ] }; // O, AU key { [ 0x100200C, 0x1000902 ] }; // ZERO-WIDTH-NON-JOINER (ZWNJ); SIGN ANUSVARA key { [ 0x100094D, 0x100200D ] }; // SIGN VIRAMA; ZERO-WIDTH-JOINER (ZWJ) key { [ 0x10FFFFB, 0x10FFFFA ] }; // U0924+U094D+U0930; U0924+U094D+U0924 key { [ 0x1000927, 0x10FFFF9 ] }; // DHA; U0921+U094D+U0922 key { [ 0x100092D, 0x1000910 ] }; // BHA, AI key { [ 0x100091A, 0x10FFFF8 ] }; // CA; U0926+U094D+U0935 key { [ 0x1000924, 0x10FFFF7 ] }; // TA; U091F+U094D+U091F key { [ 0x1000925, 0x10FFFF6 ] }; // THA; U0920+U094D+U0920 key { [ 0x1000917, 0x100090A ] }; // GA, UU key { [ 0x1000937, 0x10FFFF5 ] }; // SSA; U0915+U094D+U0937 key { [ 0x100092F, 0x1000907 ] }; // YA, I key { [ 0x1000909, 0x100090F ] }; // U, E key { [ 0x10FFFF4, 0x1000943 ] }; // U0928+U094D+ZWJ; VOWEL SIGN VOCALIC R key { [ 0x1000947, 0x1000948 ] }; // SIGN E; SIGN AI key { [ 0x100092C, 0x1000906 ] }; // BA, AA key { [ 0x1000915, 0x10FFFF3 ] }; // KA; U0919+U094D+U0915 key { [ 0x100092E, 0x10FFFF2 ] }; // MA; U0919+U094D+U0917 key { [ 0x100093E, 0x1000901 ] }; // CANDRABINDU, VOWEL SIGN AA key { [ 0x1000928, 0x10FFFF1 ] }; // NA; U0926+U094D+U0926 key { [ 0x100091C, 0x100091D ] }; // JA, JHA key { [ 0x1000935, 0x100094B ] }; // VA, VOWEL SIGN O key { [ 0x100092A, 0x100092B ] }; // PA, PHA key { [ 0x100093F, 0x1000940 ] }; // VOWEL SIGN I, VOWEL SIGN II key { [ 0x1000938, 0x10FFFF0 ] }; // SA; U091F+U094D+U0920 key { [ 0x1000941, 0x1000942 ] }; // VOWEL SIGN U, VOWEL SIGN UU key { [ 0x1000936, 0x10FFFEF ] }; // SHA; U0915+U094D+U0915 key { [ 0x1000939, 0x10FFFEE ] }; // HA; U0939+U094D+U092F key { [ 0x1000905, 0x100090B ] }; // A; U0909+U090B key { [ 0x1000916, 0x1000950 ] }; // KHA, OM key { [ 0x1000926, 0x100094C ] }; // DA, VOWEL SIGN AU key { [ 0x1000932, 0x10FFFED ] }; // LA; U0926+U094D+U092F key { [ 0x1000903, 0x10FFFEC ] }; // SIGN VISARGA; U0921+U094D+U0921 key { [ 0x100093D, 0x1000919 ] }; // SIGN AVAGRHA; NGA key { [ 0x1000964, 0x10FFFEB ] }; // DANDA; U0936+U094D+U0930 key { [ 0x1000930, 0x10FFFEA ] }; // RA; U0930+U0941 include "group(olpc)" }; PK(f[ٞsymbols/sharp_vndr/ws011shnu[// $NetBSD: ws011sh,v 1.2 2010/05/30 10:10:20 nonaka Exp $ partial default alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Sharp WS011SH"; key { type[Group1] = "THREE_LEVEL", symbols[Group1] = [ Zenkaku_Hankaku, Zenkaku_Hankaku, exclam ] }; key { [ q, Q, quotedbl ] }; key { [ w, W, numbersign ] }; key { [ e, E, dollar ] }; key { [ r, R, percent ] }; key { [ t, T, ampersand ] }; key { [ y, Y, 1 ] }; key { [ u, U, 2 ] }; key { [ i, I, 3 ] }; key { [ o, O, underscore ] }; key { [ p, P, at ] }; key { [ BackSpace, BackSpace, Delete ] }; key { [ Tab, Tab, Escape ] }; key { [ a, A, bracketleft ] }; key { [ s, S, apostrophe ] }; key { [ d, D, parenleft ] }; key { [ f, F, parenright ] }; key { [ g, G, asterisk ] }; key { [ h, H, 4 ] }; key { [ j, J, 5 ] }; key { [ k, K, 6 ] }; key { [ l, L, plus ] }; key { [ minus, equal, backslash ] }; key { [ grave, braceleft, braceright ] }; key { [ Shift_L ] }; key { [ z, Z, bracketright ] }; key { [ x, X, asciicircum ] }; key { [ c, C, asciitilde ] }; key { [ v, V, bar ] }; key { [ b, B, 7 ] }; key { [ n, N, 8 ] }; key { [ m, M, 9 ] }; key { [ comma, less, semicolon ] }; key { [ period, greater, colon ] }; key { [ slash, question, 0 ] }; key { [ Shift_R ] }; key { [ Return ] }; key { [ ISO_Level3_Shift ] }; key { [ Control_L ] }; key { [ space ] }; key { [ Up, Up, Prior ] }; key { [ Left, Left, Home ] }; key { [ Down, Down, Next ] }; key { [ Right, Right, End ] }; key { [ Escape ] }; key { [ 1 ] }; key { [ 2 ] }; key { [ 3 ] }; key { [ 4 ] }; key { [ 5 ] }; key { [ 6 ] }; key { [ 7 ] }; key { [ 8 ] }; key { [ 9 ] }; key { [ 0 ] }; include "level3(ralt_switch)" }; PK(f[lc99symbols/sharp_vndr/ws020shnu[// $NetBSD: ws020sh,v 1.1 2010/05/25 13:12:51 nonaka Exp $ partial default alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Sharp WS020SH"; key { type[Group1]="THREE_LEVEL", symbols[Group1]= [ Zenkaku_Hankaku, Zenkaku_Hankaku, exclam ] }; key { [ q, Q, quotedbl ] }; key { [ w, W, numbersign ] }; key { [ e, E, dollar ] }; key { [ r, R, percent ] }; key { [ t, T, ampersand ] }; key { [ y, Y, underscore ] }; key { [ u, U, 1 ] }; key { [ i, I, 2 ] }; key { [ o, O, 3 ] }; key { [ p, P, at ] }; key { [ BackSpace, BackSpace, Delete ] }; key { [ Tab, Tab, Escape ] }; key { [ a, A, bracketleft ] }; key { [ s, S, apostrophe ] }; key { [ d, D, parenleft ] }; key { [ f, F, parenright ] }; key { [ g, G, asterisk ] }; key { [ h, H, 4 ] }; key { [ j, J, 5 ] }; key { [ k, K, 6 ] }; key { [ l, L, plus ] }; key { [ minus, equal, backslash ] }; key { [ grave, braceleft, braceright ] }; key { [ Shift_L ] }; key { [ z, Z, bracketright ] }; key { [ x, X, asciicircum ] }; key { [ c, C, asciitilde ] }; key { [ v, V, bar ] }; key { [ b, B, 7 ] }; key { [ n, N, 8 ] }; key { [ m, M, 9 ] }; key { [ comma, less, semicolon ] }; key { [ period, greater, colon ] }; key { [ slash, question, 0 ] }; key { [ Shift_R ] }; key { [ Return ] }; key { [ ISO_Level3_Shift ] }; key { [ Control_L ] }; key { [ space ] }; key { [ Up, Up, Prior ] }; key { [ Left, Left, Home ] }; key { [ Down, Down, Next ] }; key { [ Right, Right, End ] }; key { [ Escape ] }; include "level3(ralt_switch)" }; PK(f[GFsymbols/sharp_vndr/ws007shnu[// $NetBSD: ws007sh,v 1.1 2010/05/15 15:33:30 nonaka Exp $ partial default alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Sharp WS007SH"; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, ampersand ] }; key { [ 7, apostrophe, grave ] }; key { [ 8, parenleft, braceleft ] }; key { [ 9, parenright, braceright ] }; key { [ 0 ] }; key { [ minus, equal, backslash ] }; key { [ BackSpace, BackSpace, Delete ] }; key { [ q, Q ] }; key { [ w, W, asciicircum ] }; key { [ e, E, asciitilde ] }; key { [ r, R, bar ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U, bracketleft ] }; key { [ i, I, bracketright ] }; key { [ o, O, underscore ] }; key { [ p, P, at ] }; key { [ Tab, Tab, Escape ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K, plus ] }; key { [ l, L, asterisk ] }; key { [ Shift_L ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, semicolon, less ] }; key { [ period, colon, greater ] }; key { [ slash, question ] }; key { [ Shift_R ] }; key { [ Return ] }; key { [ ISO_Level3_Shift ] }; key { [ Control_L ] }; key { [ space ] }; key { [ Up, Up, Prior ] }; key { [ Left, Left, Home ] }; key { [ Down, Down, Next ] }; key { [ Right, Right, End ] }; key { [ Escape ] }; include "level3(ralt_switch)" }; PK(f[dsymbols/sharp_vndr/ws003shnu[// $NetBSD: ws003sh,v 1.1 2010/05/15 15:33:30 nonaka Exp $ partial default alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Sharp WS003SH"; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, ampersand ] }; key { [ 7, apostrophe, grave ] }; key { [ 8, parenleft, braceleft ] }; key { [ 9, parenright, braceright ] }; key { [ 0 ] }; key { [ minus, equal, backslash ] }; key { [ BackSpace, BackSpace, Delete ] }; key { [ q, Q ] }; key { [ w, W, asciicircum ] }; key { [ e, E, asciitilde ] }; key { [ r, R, bar ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U, bracketleft ] }; key { [ i, I, bracketright ] }; key { [ o, O, underscore ] }; key { [ p, P, at ] }; key { [ Tab, Tab, Escape ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K, plus ] }; key { [ l, L, asterisk ] }; key { [ Shift_L ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, semicolon, less ] }; key { [ period, colon, greater ] }; key { [ slash, question ] }; key { [ Shift_R ] }; key { [ Return ] }; key { [ ISO_Level3_Shift ] }; key { [ Control_L ] }; key { [ space ] }; key { [ Up, Up, Prior ] }; key { [ Left, Left, Home ] }; key { [ Down, Down, Next ] }; key { [ Right, Right, End ] }; key { [ Escape ] }; include "level3(ralt_switch)" }; PK(f[Jsymbols/sharp_vndr/sl-c3x00nu[// $NetBSD: sl-c3x00,v 1.1 2009/12/13 04:54:51 nonaka Exp $ // $OpenBSD: zaurus,v 1.2 2008/03/05 17:24:55 matthieu Exp $ partial default alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Sharp SL-C3x00"; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, ampersand ] }; key { [ 7, apostrophe ] }; key { [ 8, parenleft ] }; key { [ 9, parenright ] }; key { [ 0, asciitilde ] }; key { type="CTRL+ALT", symbols[Group1]= [ BackSpace, Terminate_Server ] }; key { [ q, Q ] }; key { [ w, W, asciicircum ] }; key { [ e, E, equal ] }; key { [ r, R, plus ] }; key { [ t, T, bracketleft ] }; key { [ y, Y, bracketright ] }; key { [ u, U, braceleft ] }; key { [ i, I, braceright ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ Tab, ISO_Left_Tab, Caps_Lock ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D, grave ] }; key { [ f, F, backslash ] }; key { [ g, G, semicolon ] }; key { [ h, H, colon ] }; key { [ j, J, asterisk ] }; key { [ k, K, yen ] }; key { [ l, L, bar ] }; key { [ Shift_L ] }; key { [ z, Z ] }; key { [ x, X, SunCut ] }; key { [ c, C, SunCopy ] }; key { [ v, V, SunPaste ] }; key { [ b, B, underscore ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ Shift_R ] }; key { [ Return ] }; key { [ ISO_Level3_Shift ] }; key { [ Control_L ] }; key { [ minus, minus, at ] }; key { [ space ] }; key { [ comma, slash, less ] }; key { [ period, question, greater ] }; key { [ Up, Up, Prior ] }; key { [ Left, Left, Home ] }; key { [ Down, Down, Next ] }; key { [ Right, Right, End ] }; key { [ Escape ] }; include "level3(ralt_switch)" }; PK(f[܎  symbols/srvr_ctrlnu[// Actions which control the server's behavior. partial keypad_keys function_keys xkb_symbols "xfree86" { include "keypad(operators)" include "srvr_ctrl(fkey2vt)" }; partial function_keys xkb_symbols "fkey2vt" { key { type="CTRL+ALT", symbols[Group1]= [ F1, F1, F1, F1, XF86_Switch_VT_1 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F2, F2, F2, F2, XF86_Switch_VT_2 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F3, F3, F3, F3, XF86_Switch_VT_3 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F4, F4, F4, F4, XF86_Switch_VT_4 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F5, F5, F5, F5, XF86_Switch_VT_5 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F6, F6, F6, F6, XF86_Switch_VT_6 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F7, F7, F7, F7, XF86_Switch_VT_7 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F8, F8, F8, F8, XF86_Switch_VT_8 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F9, F9, F9, F9, XF86_Switch_VT_9 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F10, F10, F10, F10, XF86_Switch_VT_10 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F11, F11, F11, F11, XF86_Switch_VT_11 ] }; key { type="CTRL+ALT", symbols[Group1]= [ F12, F12, F12, F12, XF86_Switch_VT_12 ] }; }; partial function_keys keypad_keys xkb_symbols "no_srvr_keys" { key.type="TWO_LEVEL"; key { [ F1, F1 ] }; key { [ F2, F2 ] }; key { [ F3, F3 ] }; key { [ F4, F4 ] }; key { [ F5, F5 ] }; key { [ F6, F6 ] }; key { [ F7, F7 ] }; key { [ F8, F8 ] }; key { [ F9, F9 ] }; key { [ F10, F10 ] }; key { [ F11, F11 ] }; key { [ F12, F12 ] }; key { [ KP_Divide, KP_Divide ] }; key { [ KP_Multiply, KP_Multiply ] }; key { [ KP_Subtract, KP_Subtract ] }; key { [ KP_Add, KP_Add ] }; }; partial function_keys xkb_symbols "grab_debug" { key { type="CTRL+ALT", symbols[Group1]= [ F11, F11, F11, F11, XF86LogGrabInfo ] }; key { type="CTRL+ALT", symbols[Group1]= [ F12, F12, F12, F12, XF86LogWindowTree ] }; }; PK(f[4 e e symbols/tznu[// Keyboard layout for Swahili in Arabic script. // Based on Martin Vidner's Buckwalter transliteration variant of the Arabic keyboard // Please notify any corrections or omissions to // Kevin Donnelly (kevin@dotmon.com) default partial alphanumeric_keys xkb_symbols "swa" { name[Group1]= "Swahili (Tanzania)"; key { [ 0x1000670, VoidSymbol ] }; key { [ 0x1000661, VoidSymbol ] }; key { [ 0x1000662, VoidSymbol ] }; key { [ 0x1000663, VoidSymbol ] }; key { [ 0x1000664, VoidSymbol ] }; key { [ 0x1000665, Arabic_percent ] }; key { [ 0x1000666, VoidSymbol ] }; key { [ 0x1000667, VoidSymbol ] }; key { [ 0x1000668, VoidSymbol ] }; key { [ 0x1000669, 0x100fd3e ] }; key { [ 0x1000660, 0x100fd3f ] }; key { [ minus, Arabic_tatweel ] }; key { [ equal, plus ] }; key { [ Arabic_qaf, Arabic_gaf ] }; key { [ Arabic_waw, Arabic_hamzaonwaw ] }; key { [ 0x1000656, Arabic_ain ] }; key { [ Arabic_ra, Arabic_tteh ] }; key { [ Arabic_teh, Arabic_tah ] }; key { [ Arabic_yeh, Arabic_alefmaksura ] }; key { [ Arabic_damma, Arabic_dammatan ] }; key { [ Arabic_kasra, Arabic_hamzaonyeh ] }; key { [ Arabic_sukun, 0x1000657 ] }; key { [ Arabic_peh, Arabic_tehmarbuta ] }; key { [ VoidSymbol, VoidSymbol ] }; key { [ Arabic_fatha, Arabic_alef ] }; key { [ Arabic_seen, Arabic_sad ] }; key { [ Arabic_dal, Arabic_dad ] }; key { [ Arabic_feh, Arabic_fathatan ] }; key { [ 0x10006A0, Arabic_ghain ] }; key { [ Arabic_ha, Arabic_hah ] }; key { [ Arabic_jeem, VoidSymbol ] }; key { [ Arabic_kaf, Arabic_kasratan ] }; key { [ Arabic_lam, Arabic_shadda ] }; key { [ Arabic_semicolon, VoidSymbol ] }; key { [ Arabic_hamza, VoidSymbol ] }; key { [ Arabic_zain, Arabic_zah ] }; key { [ Arabic_khah, VoidSymbol ] }; key { [ Arabic_tcheh, Arabic_sheen ] }; key { [ 0x10006A8, Arabic_theh ] }; key { [ Arabic_beh, Arabic_thal ] }; key { [ Arabic_noon, VoidSymbol ] }; key { [ Arabic_meem, VoidSymbol ] }; key { [ Arabic_comma, Arabic_hamzaunderalef ] }; key { [ 0x10006d4, Arabic_hamzaonalef ] }; key { [ VoidSymbol, Arabic_question_mark ] }; }; PK(f[h  symbols/lknu[// X Keyboard Extension file for Sinhala (Sri Lanka) (2004-04-22) // Maintainer : Harshula Jayasuriya // Last Updated: 2011-05-25 // This is a phonetic static mapping for a standard US-English keyboard // (QWERTY) // http://www.nongnu.org/sinhala/doc/keymaps/sinhala-keyboard_3.html // Repaya, Rakaransaya and Yansaya aren't inserted with A-r, R and Y, // respectively. The problem lies with the XKB infrastructure which // only allows a one-to-one mapping of keycodes to Unicode codepoints. // Unfortunately, the 3 mentioned glyphs actually consists of 3 // Unicode codepoints each. The result is that the user must // manually construct the glyph by typing each of the 3 codepoints. // ALT-, represents the 'JOIN' key, it requires // two codepoints, hence it also has to be manually constructed. // Similarly, ALT-/ representing the 'TOUCH' key requires // two codepoints. // Repaya = rayanna,AL,ZWJ // Rakaransaya = AL,ZWJ,rayanna // Yansaya = AL,ZWJ,yayanna // JOIN = AL,ZWJ // TOUCH = ZWJ,AL // Where, // AL = Al Lakuna = ALT-a // ZWJ = Zero Width Joiner = ALT-/ // rayanna = r // yayanna = y default partial alphanumeric_keys xkb_symbols "sin_phonetic" { include "us" name[Group1] = "Sinhala (phonetic)"; key.type[Group1] = "FOUR_LEVEL"; // q - p key { [ Sinh_ri, Sinh_rii, Sinh_ru2, Sinh_ruu2 ] }; key { [ Sinh_ae, Sinh_aee, Sinh_ae2, Sinh_aee2 ] }; key { [ Sinh_e, Sinh_ee, Sinh_e2, Sinh_ee2 ] }; key { [ Sinh_ra, Sinh_al, Sinh_ra, NoSymbol ] }; key { [ Sinh_tha, Sinh_thha, Sinh_tta, Sinh_ttha ] }; key { [ Sinh_ya, Sinh_al, NoSymbol, NoSymbol ] }; key { [ Sinh_u, Sinh_uu, Sinh_u2, Sinh_uu2 ] }; key { [ Sinh_i, Sinh_ii, Sinh_i2, Sinh_ii2 ] }; key { [ Sinh_o, Sinh_oo, Sinh_o2, Sinh_oo2 ] }; key { [ Sinh_pa, Sinh_pha, NoSymbol, NoSymbol ] }; // a - l key { [ Sinh_a, Sinh_aa, Sinh_al, Sinh_aa2 ] }; key { [ Sinh_sa, Sinh_sha, Sinh_ssha, NoSymbol ] }; key { [ Sinh_dha, Sinh_dhha, Sinh_dda, Sinh_ddha ] }; key { [ Sinh_fa, NoSymbol, Sinh_ai2, Sinh_ai ] }; key { [ Sinh_ga, Sinh_gha, Sinh_nga, NoSymbol ] }; key { [ Sinh_ha, Sinh_h2, Sinh_au2, Sinh_au ] }; key { [ Sinh_ja, Sinh_jha, Sinh_nja, NoSymbol ] }; key { [ Sinh_ka, Sinh_kha, Sinh_lu, Sinh_luu ] }; key { [ Sinh_la, Sinh_lla, Sinh_lu2, Sinh_luu2 ] }; // z - ? key { [ Sinh_nya, Sinh_jnya, NoSymbol, NoSymbol ] }; key { [ Sinh_ndha, Sinh_ndda, NoSymbol, NoSymbol ] }; key { [ Sinh_ca, Sinh_cha, NoSymbol, NoSymbol ] }; key { [ Sinh_va, NoSymbol, NoSymbol, NoSymbol ] }; key { [ Sinh_ba, Sinh_bha, NoSymbol, NoSymbol ] }; key { [ Sinh_na, Sinh_nna, Sinh_ng, Sinh_ng2 ] }; key { [ Sinh_ma, Sinh_mba, NoSymbol, NoSymbol ] }; key { [ any, any, Sinh_al, NoSymbol ] }; key { [ any, any, Sinh_kunddaliya, NoSymbol ] }; key { [ any, any, 0x100200d, NoSymbol ] }; // Space include "nbsp(nb2zwnj3s)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "tam_unicode" { include "in(tam_tamilnet)" name[Group1]= "Tamil (Sri Lanka, TamilNet '99)"; }; partial alphanumeric_keys xkb_symbols "tam_TAB" { include "in(tam_tamilnet_TAB)" name[Group1]= "Tamil (Sri Lanka, TamilNet '99, TAB encoding)"; }; // SINHALA - US, SUBSTITUTES SOME AND ADDS SOME // ============================================= // // This started as an upgrade to the first romanized version of // Sinhala called PTS Pali created in the 1860s. PTS requires // dots and bars on letters that are rare in fonts, and impossible // to type. Its singular purpose was to print Tripitaka, the // collection of Buddhist discourses. // // This version covers the entire newer Sinhala phoneme chart // (Hodiya) that became standard just before the end of the 19th // century. All the phonemes map to the SBCS. It is easy and // faster than English to type. It overcomes the setback of // Unicode Sinhala that it is not compatible with Pali and // Sanskrit because it encodes two ligatures as base letters and // the SLS1134 specification matching shape and morpheme sets // violating Sanskrit orthography. // // Most importantly, this romanized version of Sinhala has a // companion orthographic font that displays the text in the // native script and a JavaScript converts it to Unicode Sinhala // and back dramatically increasing Sinhala seen on the web due // to its ease of use // // Dedication: // Thomas William Rhys Davids, Ven. Udagama Sumangala // Rev. Fr. A. M. Gunasekara, Rev. Fr. Theodore G. Perera // Ven. Mettavihari // // Maintainer: // JC Ahangama - sing@ahangama.com // partial alphanumeric_keys modifier_keys xkb_symbols "us" { include "us(basic)" name[Group1]= "Sinhala (US, with Sinhala letters)"; // // UNSHIFTED, SHIFT, ALT // -------------------------------------------- // key { [ z, VoidSymbol, VoidSymbol ] }; key { [ x, VoidSymbol, VoidSymbol ] }; key { [ c, ccedilla, VoidSymbol ] }; key { [ v, VoidSymbol, VoidSymbol ] }; key { [ b, B, VoidSymbol ] }; key { [ n, N, ntilde ] }; key { [ m, VoidSymbol, VoidSymbol ] }; key { [ comma, less, UAB ] }; key { [ period, greater, UBB ] }; key { [ slash, question, U200C ] }; key { [ a, aacute, adiaeresis ] }; key { [ s, VoidSymbol, VoidSymbol ] }; key { [ eth, ETH, VoidSymbol ] }; key { [ thorn, f, VoidSymbol ] }; key { [ g, G, VoidSymbol ] }; key { [ h, VoidSymbol, VoidSymbol ] }; key { [ j, ccedilla, VoidSymbol ] }; key { [ k, VoidSymbol, VoidSymbol ] }; key { [ l, L, ocircumflex ] }; key { [ semicolon, colon, VoidSymbol ] }; key { [ apostrophe, quotedbl, VoidSymbol ] }; key { [ d, D, q ] }; key { [ ae, acute, VoidSymbol ] }; key { [ e, eacute, ediaeresis ] }; key { [ r, ucircumflex, VoidSymbol ] }; key { [ t, VoidSymbol, VoidSymbol ] }; key { [ y, VoidSymbol, VoidSymbol ] }; key { [ u, uacute, udiaeresis ] }; key { [ i, iacute, idiaeresis ] }; key { [ o, oacute, odiaeresis ] }; key { [ p, VoidSymbol, VoidSymbol ] }; key { [ bracketleft, braceleft, VoidSymbol ] }; key { [ bracketright, braceright, VoidSymbol ] }; key { [ 1, exclam, dead_macron ] }; key { [ 2, at, dead_belowdot ] }; key { [ 3, numbersign, dead_abovedot ] }; key { [ 4, dollar, currency ] }; key { [ 5, percent, UB0 ] }; key { [ 6, asciicircum, onequarter ] }; key { [ 7, ampersand, onehalf ] }; key { [ 8, asterisk, threequarters ] }; key { [ 9, parenleft, VoidSymbol ] }; key { [ 0, parenright, VoidSymbol ] }; key { [ minus, underscore, U2014 ] }; key { [ equal, plus, VoidSymbol ] }; key { [ backslash, bar, VoidSymbol ] }; key { [ space, nobreakspace, VoidSymbol ] }; key { [ grave, asciitilde, VoidSymbol ] }; include "level3(alt_switch)" }; PK(f[P symbols/eponu[// Esperanto keyboard maps -- "Ekverto" // // Ekverto A ("legacy") (2004-01-10) // Chusslove Illich (Ĉaslavo Iliĉo) // // Ekverto B ("basic") (2006-12-02) // Benno Schulenberg (Beno Sĥilenberĥ) // Chusslove Illich (Ĉaslavo Iliĉo) default partial alphanumeric_keys xkb_symbols "basic" { include "us(basic)" name[Group1]= "Esperanto"; key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; key { [ scircumflex, Scircumflex, q, Q ] }; key { [ gcircumflex, Gcircumflex, w, W ] }; key { [ ccircumflex, Ccircumflex, x, X ] }; key { [ ubreve, Ubreve, y, Y ] }; key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; key { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] }; key { [ hcircumflex, Hcircumflex, bracketright, braceright ] }; key { [ o, O, braceleft, braceleft ] }; key { [ p, P, braceright, braceright ] }; key { [ a, A, leftsinglequotemark, NoSymbol ] }; key { [ s, S, rightsinglequotemark, NoSymbol ] }; key { [ d, D, leftdoublequotemark, NoSymbol ] }; key { [ f, F, rightdoublequotemark, NoSymbol ] }; key { [ n, N, endash, endash ] }; key { [ m, M, emdash, emdash ] }; key.type[Group1] = "FOUR_LEVEL"; key { [ 5, percent, EuroSign, EuroSign ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "legacy" { name[Group1]= "Esperanto (displaced semicolon and quote, obsolete)"; key.type[Group1] = "FOUR_LEVEL"; key { [ grave, asciitilde, NoSymbol, NoSymbol ] }; key { [ 1, exclam, NoSymbol, NoSymbol ] }; key { [ 2, quotedbl, NoSymbol, NoSymbol ] }; key { [ 3, numbersign, NoSymbol, NoSymbol ] }; key { [ 4, dollar, NoSymbol, NoSymbol ] }; key { [ 5, percent, NoSymbol, NoSymbol ] }; key { [ 6, apostrophe, NoSymbol, NoSymbol ] }; key { [ 7, ampersand, NoSymbol, NoSymbol ] }; key { [ 8, asterisk, NoSymbol, NoSymbol ] }; key { [ 9, parenleft, NoSymbol, NoSymbol ] }; key { [ 0, parenright, NoSymbol, NoSymbol ] }; key { [ minus, underscore, NoSymbol, NoSymbol ] }; key { [ equal, plus, NoSymbol, NoSymbol ] }; key { [ comma, semicolon, NoSymbol, NoSymbol ] }; key { [ period, colon, NoSymbol, NoSymbol ] }; key { [ slash, question, NoSymbol, NoSymbol ] }; key { [ bracketleft, braceleft, NoSymbol, NoSymbol ] }; key { [ bracketright, braceright, NoSymbol, NoSymbol ] }; key { [ backslash, bar, NoSymbol, NoSymbol ] }; key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; key { [ scircumflex, Scircumflex, at, NoSymbol ] }; key { [ jcircumflex, Jcircumflex, asciicircum, NoSymbol ] }; key { [ e, E, EuroSign, NoSymbol ] }; key { [ r, R, emdash, NoSymbol ] }; key { [ t, T, endash, NoSymbol ] }; key { [ gcircumflex, Gcircumflex, NoSymbol, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol ] }; key { [ i, I, NoSymbol, NoSymbol ] }; key { [ o, O, NoSymbol, NoSymbol ] }; key { [ p, P, NoSymbol, NoSymbol ] }; key { [ a, A, less, NoSymbol ] }; key { [ s, S, greater, NoSymbol ] }; key { [ d, D, leftdoublequotemark, NoSymbol ] }; key { [ f, F, rightdoublequotemark, NoSymbol ] }; key { [ g, G, NoSymbol, NoSymbol ] }; key { [ h, H, NoSymbol, NoSymbol ] }; key { [ j, J, NoSymbol, NoSymbol ] }; key { [ k, K, NoSymbol, NoSymbol ] }; key { [ l, L, NoSymbol, NoSymbol ] }; key { [ ubreve, Ubreve, NoSymbol, NoSymbol ] }; key { [ hcircumflex, Hcircumflex, NoSymbol, NoSymbol ] }; key { [ z, Z, leftsinglequotemark, NoSymbol ] }; key { [ ccircumflex, Ccircumflex, rightsinglequotemark, NoSymbol ] }; key { [ c, C, NoSymbol, NoSymbol ] }; key { [ v, V, NoSymbol, NoSymbol ] }; key { [ b, B, NoSymbol, NoSymbol ] }; key { [ n, N, NoSymbol, NoSymbol ] }; key { [ m, M, NoSymbol, NoSymbol ] }; include "level3(ralt_switch)" }; // Add the Esperanto supersigned letters to their related keys on a Qwerty keyboard. // This is a generic "component" that is not used by the other layouts in this file, // but is meant to be applied to any Qwerty layout. If you have any questions, ask // J. Pablo Fernández . partial xkb_symbols "qwerty" { key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; }; // Add the Esperanto supersigned letters to their related keys in a // Dvorak layout. Similar comment as above applies. partial xkb_symbols "dvorak" { key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; }; // Add the Esperanto supersigned letters to their related keys in a // Colemak layout. Similar comment as above applies. partial xkb_symbols "colemak" { key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; }; PK(f[D**symbols/sgi_vndr/jpnu[xkb_symbols "jp106" { name[group1]="Japan/ASCII"; key { [ Zenkaku_Hankaku ] }; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, ampersand ] }; key { [ 7, apostrophe ] }; key { [ 8, parenleft ] }; key { [ 9, parenright ] }; key { [ 0, asciitilde ] }; key { [ minus, equal ] }; key { [ asciicircum, overbar ] }; key { [ yen, bar ] }; // keys and - are identical to US/ASCII keyboard key { [ at, grave ] }; key { [ bracketleft, braceleft ] }; key { [ Eisu_Shift, Caps_Lock ] }; // keys - are identical to US/ASCII keyboard key { [ semicolon, plus ] }; key { [ colon, asterisk ] }; key { [ bracketright, braceright ] }; // keys and - are identical to US/ASCII keyboard key { [ backslash, underscore ] }; key { [ Muhenkan ] }; key { [ Kanji ] }; key { [ Hiragana_Katakana ] }; }; xkb_symbols "alternate106" { key { [ 0, overbar ] }; key { [ asciicircum, asciitilde] }; key { [ backslash, bar ] }; key { [ underbar, underscore ] }; augment "sgi/jp(jp106)" }; PK(f[lZZ symbols/inetnu[// EAK (Easy Access keyboards: Internet, Multimedia, PDA) // Copyright (C) 2002 Stanislav Brabec // // Based on the LinEAK project. // LinEAK - Linux support for Easy Access and Internets // Copyright (C) 2001, 2002 Mark Smulders // Usage in XF86Config: // Option "XkbLayout" "my_kb_layout" // Option "XkbVariant" "my_kb_variant" // Option "XkbModel" "my_eak_type" // Option "XkbRules" "xfree86" // Simple command line usage: // setxkbmap 'my_kb_layout' -variant 'my_kb_variant' -model 'my_eak_type' // Very common set of media keys. hidden partial alphanumeric_keys xkb_symbols "media_common" { key { [ XF86AudioMedia ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioStop, XF86Eject ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86Eject ] }; key { [ XF86Eject ] }; }; // Popular web navigation keys. hidden partial alphanumeric_keys xkb_symbols "nav_common" { key { [ XF86Calculator ] }; key { [ XF86WWW ] }; key { [ XF86Search ] }; key { [ XF86Favorites ] }; key { [ XF86Reload ] }; key { [ XF86Stop ] }; key { [ XF86Forward ] }; key { [ XF86Back ] }; key { [ XF86MyComputer ] }; key { [ XF86Mail ] }; key { [ XF86AudioMedia ] }; }; // ACPI Standard hidden partial alphanumeric_keys xkb_symbols "acpi_common" { key { [ XF86PowerOff ] }; key { [ XF86Standby ] }; key { [ XF86WakeUp ] }; key { [ XF86Battery ] }; key { [ XF86WLAN ] }; key { [ XF86Sleep ] }; }; // Combined sections, for simplicity. hidden partial alphanumeric_keys xkb_symbols "media_nav_common" { include "inet(media_common)" include "inet(nav_common)" }; hidden partial alphanumeric_keys xkb_symbols "media_nav_acpi_common" { include "inet(media_common)" include "inet(nav_common)" include "inet(acpi_common)" }; hidden partial alphanumeric_keys xkb_symbols "nav_acpi_common" { include "inet(nav_common)" include "inet(acpi_common)" }; hidden partial alphanumeric_keys xkb_symbols "media_acpi_common" { include "inet(media_common)" include "inet(acpi_common)" }; // Evdev Standardized Keycodes partial alphanumeric_keys xkb_symbols "evdev" { key { [ XF86AudioMute ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86PowerOff ] }; key { [ Cancel ] }; key { [ Redo ] }; key { [ SunProps ] }; key { [ Undo ] }; key { [ SunFront ] }; key { [ XF86Copy ] }; key { [ XF86Open ] }; key { [ XF86Paste ] }; key { [ Find ] }; key { [ XF86Cut ] }; key { [ Help ] }; key { [ Linefeed ] }; // Commented out because HZTG has same keycode as TLDE // key { [ Zenkaku_Hankaku ] }; key { [ Hiragana_Katakana ] }; key { [ Henkan ] }; key { [ Muhenkan ] }; key { [ Katakana ] }; key { [ Hiragana ] }; key { [ Romaji ] }; key { [ Hangul ] }; key { [ Hangul_Hanja ] }; key { [ XF86TouchpadToggle ] }; key { [ XF86TouchpadOn ] }; key { [ XF86TouchpadOff ] }; key { [ XF86AudioMicMute ] }; // key { [ ] }; // KEY_MACRO key { [ plusminus ] }; key { [ XF86LaunchA ] }; key { [ XF86MenuKB ] }; key { [ XF86Calculator ] }; // key { [ ] }; // KEY_SETUP key { [ XF86Sleep ] }; key { [ XF86WakeUp ] }; key { [ XF86Explorer ] }; key { [ XF86Send ] }; // key { [ ] }; // KEY_DELETEFILE key { [ XF86Xfer ] }; key { [ XF86Launch1 ] }; key { [ XF86Launch2 ] }; key { [ XF86WWW ] }; key { [ XF86DOS ] }; key { [ XF86ScreenSaver ] }; key { [ XF86RotateWindows ] }; key { [ XF86TaskPane ] }; key { [ XF86Mail ] }; key { [ XF86Favorites ] }; key { [ XF86MyComputer ] }; key { [ XF86Back ] }; key { [ XF86Forward ] }; // key { [ ] }; // KEY_CLOSECD (opposite of eject) key { [ XF86Eject ] }; key { [ XF86Eject, XF86Eject ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioStop, XF86Eject ] }; key { [ XF86AudioRecord ] }; key { [ XF86AudioRewind ] }; key { [ XF86Phone ] }; // key { [ ] }; // KEY_ISO key { [ XF86Tools ] }; key { [ XF86HomePage ] }; key { [ XF86Reload ] }; key { [ XF86Close ] }; // key { [ ] }; // KEY_MOVE // key { [ ] }; // KEY_EDIT key { [ XF86ScrollUp ] }; key { [ XF86ScrollDown ] }; key { [ parenleft ] }; key { [ parenright ] }; key { [ XF86New ] }; key { [ Redo ] }; key { [ XF86LaunchA ] }; key { [ XF86LaunchC ] }; key { [ XF86LaunchD ] }; key { [ XF86LaunchE ] }; key { [ XF86LaunchF ] }; key { [ XF86AudioPlay ] }; key { [ XF86AudioPause ] }; key { [ XF86Launch3 ] }; key { [ XF86Launch4 ] }; key { [ XF86LaunchB ] }; key { [ XF86Suspend ] }; key { [ XF86Close ] }; key { [ XF86AudioPlay ] }; key { [ XF86AudioForward ] }; // key { [ ] }; // KEY_BASSBOOST key { [ Print ] }; // key { [ ] }; // KEY_HP key { [ XF86WebCam ] }; key { [ XF86AudioPreset ] }; // key { [ ] }; // KEY_QUESTION key { [ XF86Mail ] }; key { [ XF86Messenger ] }; // KEY_CHAT key { [ XF86Search ] }; key { [ XF86Go ] }; // KEY_CONNECT key { [ XF86Finance ] }; key { [ XF86Game ] }; // KEY_SPORT key { [ XF86Shop ] }; // key { [ ] }; // KEY_ALTERASE key { [ Cancel ] }; key { [ XF86MonBrightnessDown ] }; key { [ XF86MonBrightnessUp ] }; key { [ XF86AudioMedia ] }; key { [ XF86Display ] }; key { [ XF86KbdLightOnOff ] }; // KEY_KBDILLUMTOGGLE key { [ XF86KbdBrightnessDown ] }; // KEY_KBDILLUMDOWN key { [ XF86KbdBrightnessUp ] }; // KEY_KBDILLUMUP key { [ XF86Send ] }; key { [ XF86Reply ] }; key { [ XF86MailForward ] }; key { [ XF86Save ] }; key { [ XF86Documents ] }; key { [ XF86Battery ] }; key { [ XF86Bluetooth ] }; key { [ XF86WLAN ] }; // key { [ ] }; // KEY_VIDEO_NEXT -- drive next video source // key { [ ] }; // KEY_VIDEO_PREV -- drive previous video source key { [ XF86MonBrightnessCycle ] }; // KEY_BRIGHTNESS_CYCLE -- bright up, max++ == min // key { [ ] }; // KEY_BRIGHTNESS_ZERO -- brightness off // key { [ ] }; // KEY_DISPLAY_OFF -- turn off display key { [ XF86WWAN ] }; // KEY_WWAN key { [ XF86RFKill ] }; // KEY_RFKILL key { [ XF86Favorites ] }; key { [ XF86Keyboard ] }; key { [ XF86RotationLockToggle ] }; key { [ XF86Tools ] }; key { [ XF86Launch5 ] }; key { [ XF86Launch6 ] }; key { [ XF86Launch7 ] }; key { [ XF86Launch8 ] }; key { [ XF86Launch9 ] }; }; // Acer // Acer AirKey V partial alphanumeric_keys xkb_symbols "airkey" { include "inet(acpi_common)" key { [ XF86AudioNext ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86Mail ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioMute ] }; key { [ XF86WWW ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86Terminal ] }; key { [ XF86AudioStop, XF86Eject ] }; }; // Acer C300 laptop partial alphanumeric_keys xkb_symbols "acer_c300" { include "inet(nav_common)" key { [ F14 ] }; key { [ F13 ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86Launch2 ] }; key { [ Help ] }; key { [ XF86Launch1 ] }; }; // Acer Ferrari 4000 Keyboard // From Alex Dubov partial alphanumeric_keys xkb_symbols "acer_ferrari4k" { include "inet(media_nav_common)" key { [ dollar ] }; key { [ EuroSign ] }; key { [ XF86Display ] }; // Missing keycodes - set-up with setkeycodes key { [ Help ] }; key { [ XF86Launch1 ] }; key { [ XF86Launch2 ] }; key { [ XF86Launch3 ] }; key { [ XF86Launch4 ] }; }; // Acer laptop (Generic layout for Acer laptops from 2004 onwards) // From Carlos Corbacho // Keys marked (HAL) require HAL 0.5.10 (or newer) to be set up correctly // (Your laptop must also be added to hal-info) // (Not all these keys will be available on every Acer laptop) partial alphanumeric_keys xkb_symbols "acer_laptop" { include "inet(media_nav_acpi_common)" key { [ XF86Launch2 ] }; // "P" or "P2" (HAL) key { [ XF86Launch1 ] }; // "e" or "P1" (HAL) // Hotkeys (Function) // Launch Keys // Device keys key { [ XF86Display ] }; // Fn+F5 (HAL) key { [ XF86Launch4 ] }; // Fn+F3 (HAL) key { [ XF86LaunchB ] }; // Bluetooth (HAL) key { [ XF86LaunchA ] }; // Wireless (HAL) key { [ Help ] }; // Fn+F1 (HAL) key { [ XF86Launch5 ] }; // Fn+F7 (HAL) key { [ XF86Launch3 ] }; // Fn+F2 (HAL) // Special Characters // To avoid setting a precedent/standard that will be broken in later // versions of HAL, these keys are commented out for now. When they are no // longer marked 'FIXME' and have saner keycodes, these two entries can be // fixed and permanently uncommented. In the meantime, just uncomment these // to make the keys work. // key { [ EuroSign ] }; // Euro (HAL) // key { [ dollar ] }; // Dollar (HAL) }; // Azona // Azona RF2300 wireless Internet partial alphanumeric_keys xkb_symbols "azonaRF2300" { // From Radics Laszlo include "inet(nav_acpi_common)" key { [ XF86HomePage ] }; key { [ XF86AudioStop ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86Copy ] }; key { [ XF86Cut ] }; // key { [ XF86Paste ] }; }; // Brother // Brother Internet partial alphanumeric_keys xkb_symbols "brother" { include "inet(acpi_common)" key { [ XF86ScrollUp ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioPrev ] }; key { [ XF86ScrollDown ] }; key { [ XF86ZoomOut ] }; key { [ XF86AudioMute ] }; key { [ XF86WWW ] }; key { [ Menu ] }; key { [ XF86AudioStop ] }; key { [ XF86Calculator ] }; key { [ XF86Xfer ] }; key { [ XF86Mail ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86ZoomIn ] }; key { [ XF86AudioLowerVolume ] }; }; // BTC // BTC 5113RF Multimedia partial alphanumeric_keys xkb_symbols "btc5113rf" { include "inet(acpi_common)" key { [ XF86AudioStop ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86Favorites ] }; key { [ XF86Eject ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86Back ] }; key { [ XF86WWW ] }; key { [ XF86Search ] }; }; // BTC 9000 partial alphanumeric_keys xkb_symbols "btc9000" { include "inet(acpi_common)" key { [ XF86AudioStop ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86Favorites ] }; key { [ XF86AudioMedia ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86Reload ] }; key { [ XF86Mail ] }; key { [ XF86HomePage ] }; key { [ XF86Search ] }; }; // BTC 9000A partial alphanumeric_keys xkb_symbols "btc9000a" { include "inet(acpi_common)" key { [ XF86AudioStop ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86Favorites ] }; key { [ XF86Eject ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86HomePage ] }; key { [ Help ] }; key { [ XF86WWW ] }; key { [ XF86Search ] }; }; // BTC 9001AH xkb_symbols "btc9001ah" { include "inet(acpi_common)" key { [ XF86HomePage ] }; key { [ XF86AudioStop ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86Mail ] }; key { [ XF86Eject ] }; }; // BTC 5090 partial alphanumeric_keys xkb_symbols "btc5090" { include "inet(media_nav_acpi_common)" key { [ XF86Start ] }; key { [ XF86Eject ] }; }; // BTC 9019U partial alphanumeric_keys xkb_symbols "btc9019u" { include "inet(media_nav_acpi_common)" key { [ XF86Search ] }; key { [ XF86HomePage ] }; }; // Cherry // Cherry Blue Line CyBo@rd partial alphanumeric_keys xkb_symbols "cherryblue" { include "inet(nav_common)" key { [ XF86Reload ] }; key { [ XF86HomePage ] }; key { [ XF86AudioStop ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86Standby ] }; key { [ XF86Terminal ] }; key { [ XF86Go ] }; }; // Cherry CyMotion Master XPress partial alphanumeric_keys xkb_symbols "cherryblueb" { include "inet(media_nav_common)" key { [ XF86Reload ] }; key { [ XF86HomePage ] }; key { [ XF86Forward ] }; key { [ XF86Back ] }; key { [ XF86Copy ] }; key { [ XF86ScrollUp ] }; key { [ XF86ScrollDown ] }; key { [ XF86Cut ] }; key { [ XF86Paste ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86Book ] }; key { [ XF86Finance ] }; key { [ XF86Standby ] }; key { [ XF86AudioRewind ] }; key { [ XF86Eject ] }; key { [ XF86Book ] }; key { [ XF86Book ] }; key { [ XF86Terminal ] }; key { [ XF86Go ] }; }; // Cherry Blue Line CyBo@rd (alt.) partial alphanumeric_keys xkb_symbols "cherrybluea" { include "inet(media_nav_acpi_common)" key { [ XF86Go ] }; }; // Cherry CyBo@rd USB-Hub partial alphanumeric_keys xkb_symbols "cherrycyboard" { include "inet(media_nav_acpi_common)" key { [ XF86Search ] }; key { [ XF86HomePage ] }; key { [ XF86Terminal ] }; key { [ XF86AudioMedia ] }; }; // Cherry CyMotion Expert partial alphanumeric_keys xkb_symbols "cherrycmexpert" { include "inet(cherryblueb)" include "inet(acpi_common)" key { [ XF86Mail ] }; }; // Chicony // Chicony Internet partial alphanumeric_keys xkb_symbols "chicony" { include "inet(acpi_common)" key { [ XF86AudioMute ] }; key { [ XF86Mail ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86Forward ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioStop ] }; key { [ XF86Back ] }; key { [ XF86LaunchB ] }; key { [ XF86LaunchC ] }; key { [ XF86LaunchA ] }; key { [ XF86WWW ] }; key { [ XF86ContrastAdjust ] }; key { [ XF86BrightnessAdjust ] }; }; // Chicony KU-0108 partial alphanumeric_keys xkb_symbols "chicony0108" { include "inet(cherrycyboard)" }; // Chicony KU-0420 AKA Targus Slim Internet Media USB Keyboard partial alphanumeric_keys xkb_symbols "chicony0420" { include "inet(media_nav_acpi_common)" key { [ XF86AudioMedia ] }; key { [ XF86MyComputer ] }; }; // Chicony KB-9885 partial alphanumeric_keys xkb_symbols "chicony9885" { include "inet(acpi_common)" key { [ XF86AudioMute ] }; key { [ XF86Mail ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86Forward ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioStop ] }; key { [ XF86Back ] }; key { [ XF86LaunchB ] }; key { [ XF86LaunchC ] }; key { [ XF86LaunchA ] }; key { [ XF86WWW ] }; }; // Compaq // Compaq Easy Access partial alphanumeric_keys xkb_symbols "compaqeak8" { key { [ XF86Community ] }; key { [ XF86Market ] }; key { [ XF86Meeting ] }; key { [ XF86Search ] }; key { [ XF86News ] }; key { [ XF86Mail ] }; key { [ XF86HomePage ] }; key { [ XF86WWW ] }; }; // Compaq Internet (7 keys) partial alphanumeric_keys xkb_symbols "compaqik7" { key { [ XF86LightBulb ] }; key { [ XF86Mail ] }; key { [ XF86Search ] }; key { [ Help ] }; key { [ XF86VendorHome ] }; key { [ XF86HomePage ] }; key { [ XF86Shop ] }; }; // Compaq Internet (13 keys) partial alphanumeric_keys xkb_symbols "compaqik13" { include "inet(media_acpi_common)" key { [ XF86Mail ] }; key { [ XF86Go ] }; key { [ XF86Search ] }; key { [ XF86WWW ] }; key { [ XF86Shop ] }; }; // Compaq Internet (18 keys) partial alphanumeric_keys xkb_symbols "compaqik18" { include "inet(media_acpi_common)" key { [ XF86LightBulb ] }; key { [ XF86Eject ] }; key { [ XF86Mail ] }; key { [ XF86Go ] }; key { [ XF86Search ] }; key { [ XF86WWW ] }; key { [ XF86VendorHome ] }; key { [ XF86Community ] }; key { [ XF86Shop ] }; key { [ Print ] }; }; // laptop/notebook Compaq (eg. Armada, Evo) laptop Keyboard partial alphanumeric_keys xkb_symbols "armada" { include "inet(media_acpi_common)" key { [ XF86Search ] }; key { [ XF86Mail ] }; key { [ XF86HomePage ] }; key { [ XF86WWW ] }; key { [ XF86Launch2 ] }; // Battery Monitor key { [ XF86AudioMedia ] }; key { [ XF86Launch0 ] }; // Info Center }; // Compaq Presario laptop partial alphanumeric_keys xkb_symbols "presario" { include "inet(media_acpi_common)" key { [ XF86Q ] }; key { [ XF86Launch2 ] }; key { [ XF86Mail ] }; key { [ XF86Launch1 ] }; key { [ XF86WWW ] }; key { [ XF86Shop ] }; key { [ XF86AudioMedia ] }; }; // Compaq iPaq partial alphanumeric_keys xkb_symbols "ipaq" { key { [ XF86Shop ] }; key { [ XF86Standby ] }; key { [ XF86Search ] }; key { [ XF86Travel ] }; key { [ XF86BackForward ] }; key { [ XF86Q ] }; key { [ XF86Mail ] }; }; // Dell partial alphanumeric_keys xkb_symbols "dell" { include "inet(acpi_common)" key { [ XF86Mail ] }; key { [ XF86Search ] }; key { [ XF86HomePage ] }; }; // Dell Precision M65 laptop partial alphanumeric_keys xkb_symbols "dellm65" { include "inet(media_common)" key { [ XF86PowerOff ] }; key { [ Super_L ] }; }; // laptop/notebook Dell Inspiron 8xxx partial alphanumeric_keys xkb_symbols "inspiron" { include "inet(media_common)" key { [ XF86AudioStop ] }; key { [ XF86AudioNext ] }; key { [ XF86Eject ] }; key { [ XF86Display ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; }; // DELL USB Multimedia (former 8135, generalized, superset of 8125) partial alphanumeric_keys xkb_symbols "dellusbmm" { // Describes the extra keys on a SK-8135 Multimedia keyboard // From Olivier Lahaye include "inet(media_nav_acpi_common)" key { [ XF86HomePage ] }; key { [ XF86MyComputer ] }; key { [ XF86AudioMedia ] }; }; // Diamond // Diamond 9801/9802 partial alphanumeric_keys xkb_symbols "diamond" { include "inet(media_nav_acpi_common)" key { [ XF86Go ] }; }; // Ennyah // Ennyah DKB-1008 partial alphanumeric_keys xkb_symbols "ennyah_dkb1008" { include "inet(media_nav_acpi_common)" key { [ XF86AudioMedia ] }; }; // Genius // Genius Comfy KB-16M/Multimedia KWD-910 partial alphanumeric_keys xkb_symbols "genius" { include "inet(media_acpi_common)" key { [ XF86AudioRaiseVolume ] }; key { [ XF86Calculator ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86Forward ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPrev ] }; key { [ XF86Back ] }; key { [ XF86ScreenSaver ] }; key { [ XF86Mail ] }; key { [ XF86Eject ] }; key { [ XF86WWW ] }; }; // Genius Comfy 21e partial alphanumeric_keys xkb_symbols "geniuscomfy2" { // Describes the extra keys on a Genius Comfy KB-21e-Scroll // From Radics Laszlo include "inet(media_nav_acpi_common)" key { [ Return ] }; }; // Gyration partial alphanumeric_keys xkb_symbols "gyration" { include "inet(nav_common)" key { [ XF86Reload ] }; key { [ XF86HomePage ] }; key { [ XF86AudioStop ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; }; // Hewlett-Packard // Hewlett-Packard Internet partial alphanumeric_keys xkb_symbols "hpi6" { include "inet(media_nav_acpi_common)" key { [ XF86HomePage ] }; key { [ XF86Search ] }; key { [ XF86VendorHome ] }; key { [ XF86Community ] }; key { [ XF86AudioMedia ] }; key { [ XF86Eject ] }; key { [ XF86Shop ] }; key { [ XF86Launch1 ] }; key { [ Help ] }; key { [ XF86Finance ] }; key { [ Print ] }; key { [ Help ] }; }; // Hewlett-Packard SK-2501, SK-2505 Multimedia partial alphanumeric_keys xkb_symbols "hp250x" { key { [ XF86Tools ] }; key { [ XF86Search ] }; key { [ XF86Eject ] }; key { [ XF86Mail ] }; key { [ XF86AudioMute ] }; key { [ XF86Launch5 ] }; key { [ XF86Launch3 ] }; key { [ XF86Launch2 ] }; key { [ XF86Launch4 ] }; key { [ XF86Standby ] }; key { [ Help ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86WWW ] }; }; // Hewlett-Packard Omnibook XE3 GC, GD, GE and Pavilion N5xxx partial alphanumeric_keys xkb_symbols "hpxe3gc" { // Describes the OneTouch buttons on HP Omnibook XE3 GC and // HP Pavilion N52XX models. // See http://sourceforge.net/projects/omke for details on enabling // these keys include "inet(media_common)" key { [ Help ] }; key { [ XF86Launch1 ] }; key { [ XF86WWW ] }; key { [ XF86Mail ] }; }; // Hewlett-Packard Omnibook XE3 GF partial alphanumeric_keys xkb_symbols "hpxe3gf" { // Describes the OneTouch buttons on HP Omnibook XE3 GF models. // See http://sourceforge.net/projects/omke for details on enabling // these keys include "inet(media_nav_common)" key { [ Help ] }; key { [ XF86Launch1 ] }; }; // Hewlett-Packard Omnibook XT1000 partial alphanumeric_keys xkb_symbols "hpxt1000" { // Describes the OneTouch buttons on HP Omnibook XT1000 models. // See http://sourceforge.net/projects/omke for details on enabling // these keys include "inet(media_nav_common)" key { [ XF86Launch3 ] }; key { [ Help ] }; key { [ XF86Launch2 ] }; key { [ XF86Launch1 ] }; }; // Hewlett-Packard Pavilion ZT1100 partial alphanumeric_keys xkb_symbols "hpzt11xx" { // Describes the OneTouch buttons on HP Pavilion ZT11xx models. // See http://sourceforge.net/projects/omke for details on enabling // these keys include "inet(media_nav_common)" key { [ XF86Launch3 ] }; key { [ Help ] }; key { [ XF86Launch2 ] }; key { [ XF86Launch1 ] }; }; // Hewlett-Packard Pavilion dv5 partial alphanumeric_keys xkb_symbols "hpdv5" { // Describes the OneTouch buttons on HP Pavilion dv5 models. // See http://sourceforge.net/projects/omke for details on enabling // these keys include "inet(media_common)" key { [ XF86ScreenSaver ] }; key { [ XF86WWW ] }; key { [ Help ] }; key { [ XF86Launch1 ] }; }; // Hewlett-Packard Omnibook XE4xxx and ZE4xxx partial alphanumeric_keys xkb_symbols "hpxe4xxx" { // Describes the OneTouch buttons on HP Omnibook XE4xxx and ZE4xxx // models. // See http://sourceforge.net/projects/omke for details on enabling // these keys include "inet(media_nav_common)" key { [ Help ] }; key { [ XF86Launch2 ] }; key { [ XF86Launch1 ] }; }; // Hewlett-Packard Omnibook 500 FA partial alphanumeric_keys xkb_symbols "hp500fa" { // Describes the OneTouch buttons on HP Omnibook 500 FA models. // See http://sourceforge.net/projects/omke for details on enabling // these keys key { [ Help ] }; key { [ XF86Launch1 ] }; }; // Hewlett-Packard Omnibook 500 partial alphanumeric_keys xkb_symbols "hp5xx" { // Describes the OneTouch buttons on HP Omnibook 5xx models. // See http://sourceforge.net/projects/omke for details on enabling // these keys include "inet(media_common)" key { [ Help ] }; key { [ XF86Launch1 ] }; }; // Honeywell // Honeywell Euroboard partial alphanumeric_keys xkb_symbols "honeywell_euroboard" { // January 2002 // Scott Penrose // http://linux.dd.com.au/quest/linux/keyboard/honeywell/ key { [ XF86Game ] }; key { [ XF86AudioPrev ] }; key { [ XF86Eject ] }; key { [ XF86Launch2 ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86Launch1 ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioStop ] }; key { [ XF86Mail ] }; key { [ XF86ScreenSaver ] }; key { [ XF86Calculator ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86WWW ] }; }; // IBM // IBM Rapid Access partial alphanumeric_keys xkb_symbols "rapidaccess" { key { [ XF86AudioMute ] }; key { [ XF86Launch2 ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPause ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioStop ] }; key { [ XF86Standby ] }; key { [ Help ] }; key { [ XF86Launch4 ] }; key { [ XF86Launch3 ] }; key { [ XF86Launch1 ] }; }; // IBM Rapid Access II partial alphanumeric_keys xkb_symbols "rapidaccess2" { include "inet(acpi_common)" key { [ XF86AudioNext ] }; key { [ XF86Favorites ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioStop ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioPrev ] }; key { [ XF86HomePage ] }; key { [ XF86Shop ] }; key { [ XF86Search ] }; key { [ XF86MyComputer ] }; key { [ XF86VendorHome ] }; }; // IBM ThinkPad 60 series partial alphanumeric_keys xkb_symbols "thinkpad60" { include "inet(media_nav_common)" key { [ XF86VendorHome ] }; }; // IBM Space Saver partial alphanumeric_keys xkb_symbols "ibm_spacesaver" { key { type="ONE_LEVEL", symbols[Group1]= [ Num_Lock ] }; }; // Logitech // Logitech common definitions hidden partial alphanumeric_keys xkb_symbols "logitech_base" { include "inet(media_nav_acpi_common)" key { [ XF86HomePage ] }; key { [ XF86Community ] }; key { [ XF86ScrollClick ] }; key { [ XF86VendorHome ] }; key { [ XF86New ] }; key { [ XF86Reply ] }; key { [ XF86MyComputer ] }; key { [ XF86Documents ] }; key { [ XF86Pictures ] }; key { [ XF86Music ] }; }; // Logitech second set of common keys hidden partial alphanumeric_keys xkb_symbols "logitech_set3" { key { [ XF86AudioStop ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86New ] }; // F1 key { [ XF86Reply ] }; // F2 key { [ XF86Send ] }; // F4 key { [ Print ] }; // F7 key { [ XF86Save ] }; // F8 key { [ XF86Documents ] }; // F10 key { [ XF86Go ] }; key { [ XF86AudioMedia ] }; }; // Logitech Access partial alphanumeric_keys xkb_symbols "logiaccess" { include "inet(logitech_base)" key { [ XF86MailForward ] }; key { [ XF86Send ] }; key { [ XF86Messenger ] }; key { [ XF86WebCam ] }; }; // Logitech Cordless Desktop (alt.) partial alphanumeric_keys xkb_symbols "logicda" { include "inet(logitech_base)" include "inet(logitech_set3)" }; // Logitech Internet Navigator partial alphanumeric_keys xkb_symbols "logicink" { include "inet(logitech_base)" key { [ XF86Shop ] }; key { [ XF86VendorHome ] }; key { [ XF86Finance ] }; key { [ XF86Start ] }; }; // Logitech Cordless Desktop EX110 partial alphanumeric_keys xkb_symbols "logiex110" { include "inet(logitech_base)" key { [ XF86Close ] }; // Close // Extended function keys // In the Console before starting X // Using setkeycodes e03b 212 e03c 213 e03d 214 e03e 215 e03f 216 e040 217 // setkeycodes e041 218 e042 219 e043 220 e044 221 e057 222 e058 223 6d 206 // *=keys that are there but need different symbol names. key { [ Help ] }; // F1 key { [ XF86Word ] }; // F2 key { [ XF86Excel ] }; // F3 key { [ XF86Pictures ] }; // F4 key { [ Undo ] }; // F5 key { [ Redo ] }; // F6 * key { [ Print ] }; // F7 key { [ XF86Save ] }; // F8 key { [ XF86Launch1 ] }; // F9 * key { [ XF86Launch2 ] }; // F10 key { [ XF86Launch3 ] }; // F11 key { [ XF86Launch4 ] }; // F12 }; // Logitech iTouch Internet Navigator SE partial alphanumeric_keys xkb_symbols "logiinkse" { include "inet(logitech_base)" key { [ XF86MailForward ] }; // F3 key { [ XF86Send ] }; // F4 key { [ Undo ] }; // F5 key { [ Redo ] }; // F6 key { [ Print ] }; // F7 key { [ XF86Messenger ] }; key { [ XF86WebCam ] }; key { [ XF86VendorHome ] }; key { [ XF86Shop ] }; key { [ XF86Save ] }; // F8 }; // Logitech iTouch Internet Navigator SE USB partial alphanumeric_keys xkb_symbols "logiinkseusb" { include "inet(logitech_base)" include "inet(logitech_set3)" }; // Logitech iTouch Cordless Y-RB6 partial alphanumeric_keys xkb_symbols "logiitc" { include "inet(logitech_base)" key { [ XF86AudioRaiseVolume ] }; // Just to override RaiseVolume from logitech_base, // since no keysym can have two keycodes, see // https://bugs.freedesktop.org/show_bug.cgi?id=7095 key { [ XF86Launch1 ] }; }; // Logitech Internet partial alphanumeric_keys xkb_symbols "logiik" { include "inet(logitech_base)" key { [ Find ] }; key { [ Print ] }; key { [ XF86Favorites ] }; key { [ XF86Reload ] }; key { [ XF86Search ] }; key { [ XF86HotLinks ] }; key { [ XF86Forward ] }; key { [ XF86HomePage ] }; key { [ XF86Stop ] }; key { [ XF86OpenURL ] }; key { [ XF86AddFavorite ] }; key { [ XF86History ] }; key { [ XF86WWW ] }; }; // Logitech iTouch partial alphanumeric_keys xkb_symbols "itouch" { include "inet(logitech_base)" key { [ XF86AudioMute ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; }; // Logitech UltraX Cordless Media Desktop partial alphanumeric_keys xkb_symbols "logiultraxc" { key { [ XF86AudioMute ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioRaiseVolume ] }; }; partial alphanumeric_keys xkb_symbols "logidinovo" { include "inet(media_nav_common)" key { [ XF86HomePage ] }; key { [ XF86Standby ] }; key { [ XF86Search ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioMedia ] }; }; partial alphanumeric_keys xkb_symbols "logidinovoedge" { include "inet(media_acpi_common)" key { [ XF86HomePage ] }; key { [ XF86Mail ] }; key { [ XF86Search ] }; key { [ XF86AudioMedia ] }; }; partial alphanumeric_keys xkb_symbols "logitech_g15" { include "inet(media_nav_acpi_common)" key { [ XF86Messenger ] }; key { [ XF86Launch7 ] }; key { [ XF86Launch9 ] }; key { [ XF86Phone ] }; key { [ XF86LaunchD ] }; key { [ XF86Support ] }; key { [ XF86LaunchF ] }; key { [ XF86LogOff ] }; key { [ XF86Launch5 ] }; key { [ XF86Travel ] }; key { [ XF86Spell ] }; key { [ XF86Launch4 ] }; key { [ XF86Music ] }; key { [ XF86Forward ] }; key { [ XF86Send ] }; key { [ XF86Save ] }; key { [ XF86Pictures ] }; key { [ XF86LaunchA ] }; key { [ XF86iTouch ] }; key { [ XF86Launch3 ] }; key { [ XF86ToDoList ] }; key { [ XF86Calculator ] }; key { [ XF86VendorHome ] }; key { [ XF86Away ] }; key { [ XF86WebCam ] }; key { [ XF86Launch0 ] }; key { [ XF86Launch6 ] }; key { [ XF86Calendar ] }; key { [ XF86LaunchB ] }; key { [ XF86LaunchC ] }; key { [ XF86WWW ] }; key { [ XF86LaunchE ] }; key { [ XF86Launch1 ] }; key { [ XF86Launch2 ] }; key { [ XF86Launch8 ] }; }; // Memorex // Memorex MX1998 partial alphanumeric_keys xkb_symbols "mx1998" { include "inet(media_acpi_common)" key { [ XF86ScrollDown ] }; key { [ XF86AudioRewind ] }; key { [ XF86Close ] }; key { [ XF86Xfer ] }; key { [ XF86AudioRecord ] }; key { [ XF86Documents ] }; key { [ XF86Game ] }; key { [ XF86Calculator ] }; key { [ Menu ] }; key { [ XF86WWW ] }; key { [ XF86WakeUp ] }; key { [ XF86DOS ] }; key { [ XF86ScreenSaver ] }; key { [ XF86ScrollUp ] }; }; // Memorex MX2500 EZ-Access partial alphanumeric_keys xkb_symbols "mx2500" { include "inet(media_nav_acpi_common)" key { [ XF86Clear ] }; key { [ XF86Phone ] }; key { [ XF86DOS ] }; key { [ XF86Close ] }; key { [ XF86Xfer ] }; key { [ XF86Eject ] }; key { [ XF86Documents ] }; key { [ XF86News ] }; key { [ XF86WakeUp ] }; key { [ XF86RotateWindows ] }; }; // Memorex MX2750 partial alphanumeric_keys xkb_symbols "mx2750" { include "inet(media_nav_acpi_common)" key { [ XF86Launch0 ] }; }; // Microsoft // Microsoft Natural Ergonomic 4000 partial alphanumeric_keys xkb_symbols "microsoft4000" { include "inet(media_nav_common)" key { [ XF86Launch1 ] }; key { [ XF86Launch2 ] }; key { [ XF86Launch3 ] }; key { [ XF86Launch4 ] }; key { [ XF86Launch5 ] }; // Missing because of lack of support from kbd driver: Zoom in and // slider. }; // Microsoft Natural Wireless Ergonomic 7000 partial alphanumeric_keys xkb_symbols "microsoft7000" { include "inet(media_nav_common)" key { [ Undo ] }; key { [ XF86New ] }; key { [ Redo ] }; key { [ XF86MailForward ] }; key { [ XF86Close ] }; key { [ Print ] }; key { [ XF86Save ] }; key { [ XF86Send ] }; key { [ Help ] }; key { [ XF86Reply ] }; key { [ parenleft ] }; key { [ parenright ] }; key { [ KP_Equal ] }; key { [ XF86Open ] }; // Missing because of lack of support from kbd driver: Spell, Launch, // and Zoom in and out buttons. }; // Microsoft Internet partial alphanumeric_keys xkb_symbols "microsoftinet" { include "inet(nav_acpi_common)" key { [ XF86AudioStop ] }; }; // Microsoft Natural Pro USB partial alphanumeric_keys xkb_symbols "microsoftprousb" { include "inet(nav_common)" key { [ XF86Reload ] }; key { [ XF86AudioMedia ] }; key { [ XF86HomePage ] }; key { [ XF86AudioStop ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86Standby ] }; // Internet Section -- Left Side // Multimedia Section -- Right Side // My Computer Section -- Far Right // My computer maps to printscreen, so leaving commented out for now // key { [ XF86MyComputer ] }; }; // Microsoft Natural Pro OEM partial alphanumeric_keys xkb_symbols "microsoftprooem" { include "inet(media_nav_common)" key { [ XF86Search ] }; key { [ XF86HomePage ] }; key { [ XF86Standby ] }; key { [ XF86MyComputer ] }; // Internet Section -- Left Side // Multimedia Section -- Right Side // My Computer Section -- Far Right }; // Microsoft Internet Pro (Swedish) partial alphanumeric_keys xkb_symbols "microsoftprose" { include "inet(nav_common)" key { [ XF86Reload ] }; key { [ XF86HomePage ] }; key { [ XF86AudioStop ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86Standby ] }; key { [ XF86AudioStop ] }; key { [ XF86MyComputer ] }; key { [ XF86AudioMedia ] }; }; // Microsoft Office Keyboard partial alphanumeric_keys xkb_symbols "microsoftoffice" { include "inet(nav_acpi_common)" key { [ XF86Calendar ] }; key { [ Undo ] }; key { [ XF86HomePage ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86Cut ] }; key { [ XF86LogOff ] }; key { [ XF86ApplicationLeft ] }; key { [ XF86TaskPane ] }; key { [ XF86Spell ] }; key { [ XF86WWW ] }; key { [ XF86New ] }; key { [ XF86Open ] }; key { [ XF86Close ] }; key { [ Help ] }; key { [ XF86Save ] }; key { [ Print ] }; key { [ XF86OfficeHome ] }; key { [ Redo ] }; key { [ XF86Reply ] }; key { [ XF86MailForward ] }; key { [ XF86Send ] }; key { [ XF86Copy ] }; key { [ XF86ApplicationRight ] }; key { [ XF86Paste ] }; }; // Microsoft Wireless Multimedia 1.0A partial alphanumeric_keys xkb_symbols "microsoftmult" { include "inet(media_nav_acpi_common)" key { [ XF86Messenger ] }; key { [ XF86New ] }; key { [ XF86Open ] }; key { [ XF86Close ] }; key { [ XF86Reply ] }; key { [ Redo ] }; key { [ Undo ] }; key { [ XF86LogOff ] }; key { [ XF86Spell ] }; key { [ Help ] }; key { [ XF86Music ] }; key { [ XF86Forward ] }; key { [ XF86Send ] }; key { [ XF86Save ] }; key { [ Print ] }; key { [ XF86Pictures ] }; key { [ XF86Documents ] }; }; // Oretec // Oretec MCK-800 MM/Internet keyboard partial alphanumeric_keys xkb_symbols "oretec" { include "inet(acpi_common)" key { [ XF86ScrollUp ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioPrev ] }; key { [ XF86ScrollDown ] }; key { [ XF86ZoomOut ] }; key { [ XF86AudioMute ] }; key { [ XF86WWW ] }; key { [ Menu ] }; key { [ XF86AudioStop ] }; key { [ XF86Calculator ] }; key { [ XF86Xfer ] }; key { [ XF86Mail ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86ZoomIn ] }; key { [ XF86AudioLowerVolume ] }; }; // Propeller // Propeller Voyager KTEZ-1000 partial alphanumeric_keys xkb_symbols "propeller" { include "inet(media_common)" key { [ XF86AudioRewind ] }; key { [ XF86Close ] }; key { [ XF86Xfer ] }; key { [ XF86AudioRecord ] }; key { [ XF86Documents ] }; key { [ XF86Game ] }; key { [ XF86Calculator ] }; key { [ Menu ] }; key { [ XF86WWW ] }; key { [ XF86DOS ] }; key { [ XF86Standby ] }; }; // QTronix // QTronix Scorpius 98N+ partial alphanumeric_keys xkb_symbols "qtronix" { key { [ XF86ScrollDown ] }; key { [ XF86Forward ] }; key { [ XF86WakeUp ] }; key { [ XF86Search ] }; key { [ XF86Standby ] }; key { [ XF86ScrollUp ] }; key { [ XF86Back ] }; key { [ XF86Reload ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioStop ] }; key { [ XF86HomePage ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRecord ] }; key { [ XF86PowerOff ] }; key { [ XF86Stop ] }; key { [ XF86Calculator ] }; }; // Samsung // Samsung SDM 4500P partial alphanumeric_keys xkb_symbols "samsung4500" { include "inet(media_nav_acpi_common)" key { [ XF86Launch4 ] }; key { [ XF86Launch1 ] }; key { [ XF86Launch3 ] }; key { [ XF86Launch5 ] }; key { [ XF86Close ] }; key { [ XF86Book ] }; key { [ XF86Eject ] }; key { [ Help ] }; key { [ XF86Explorer ] }; key { [ XF86Launch2 ] }; }; // Samsung SDM 4510P partial alphanumeric_keys xkb_symbols "samsung4510" { include "inet(media_acpi_common)" key { [ XF86Launch1 ] }; key { [ XF86Launch3 ] }; key { [ XF86Eject ] }; key { [ XF86Launch2 ] }; }; // SK // NEC SK-1300 partial alphanumeric_keys xkb_symbols "sk1300" { include "inet(media_common)" key { [ XF86Eject ] }; key { [ XF86Forward ] }; key { [ XF86WWW ] }; key { [ XF86Standby ] }; key { [ XF86Back ] }; key { [ XF86Stop ] }; }; // NEC SK-2500 partial alphanumeric_keys xkb_symbols "sk2500" { include "inet(media_nav_common)" key { [ XF86AudioRewind ] }; key { [ XF86Close ] }; key { [ XF86Eject ] }; key { [ XF86Eject ] }; key { [ XF86Forward ] }; key { [ XF86AudioRecord ] }; key { [ XF86Xfer ] }; key { [ XF86PowerOff ] }; key { [ Menu ] }; key { [ XF86ScreenSaver ] }; }; // NEC SK-6200 partial alphanumeric_keys xkb_symbols "sk6200" { include "inet(acpi_common)" key { [ XF86Favorites ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86Back ] }; key { [ XF86Forward ] }; key { [ XF86WWW ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioStop ] }; key { [ XF86Mail ] }; }; // NEC SK-7100 partial alphanumeric_keys xkb_symbols "sk7100" { include "inet(media_common)" key { [ XF86AudioPause ] }; key { [ XF86Close ] }; key { [ XF86Video ] }; key { [ XF86Eject ] }; key { [ XF86CD ] }; key { [ XF86Display ] }; key { [ XF86WWW ] }; }; // Sven // SVEN Ergonomic 2500 partial alphanumeric_keys xkb_symbols "sven" { include "inet(acpi_common)" key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86Forward ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86ZoomOut ] }; key { [ XF86AudioPrev ] }; key { [ XF86AudioStop ] }; key { [ XF86HomePage ] }; key { [ XF86Mail ] }; key { [ XF86ZoomIn ] }; key { [ XF86MyComputer ] }; key { [ XF86Stop ] }; key { [ XF86ScreenSaver ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86Calculator ] }; key { [ XF86Reload ] }; key { [ XF86Search ] }; key { [ XF86Favorites ] }; key { [ XF86ScrollUp ] }; key { [ XF86ScrollDown ] }; key { [ XF86AudioNext ] }; key { [ XF86Back ] }; }; // SVEN Slim 303 partial alphanumeric_keys xkb_symbols "sven303" { key { [ XF86PowerOff ] }; key { [ XF86Sleep ] }; key { [ XF86WakeUp ] }; }; // Symplon // Symplon PaceBook tablet partial alphanumeric_keys xkb_symbols "symplon" { include "inet(nav_acpi_common)" key { [ XF86RotationPB ] }; key { [ XF86SplitScreen ] }; key { [ XF86Support ] }; key { [ XF86New ] }; key { [ XF86User2KB ] }; key { [ XF86RotationKB ] }; key { [ XF86MenuKB ] }; key { [ XF86User1KB ] }; key { [ XF86UserPB ] }; key { [ XF86MenuPB ] }; }; // Toshiba // Toshiba Satellite S3000 partial alphanumeric_keys xkb_symbols "toshiba_s3000" { include "inet(media_common)" // Describes the Special buttons on Toshiba Satellite 3000 models. // See http://sourceforge.net/projects/omke for details on enabling // these keys key { [ XF86Launch1 ] }; key { [ XF86Launch2 ] }; key { [ XF86WWW ] }; key { [ XF86Mail ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioLowerVolume ] }; }; // Trust // Trust Wireless Classic partial alphanumeric_keys xkb_symbols "trust" { include "inet(media_nav_acpi_common)" key { [ XF86ScreenSaver ] }; key { [ XF86Eject ] }; }; // Trust Direct Access partial alphanumeric_keys xkb_symbols "trustda" { include "inet(media_common)" key { [ XF86AudioRewind ] }; key { [ XF86Close ] }; key { [ XF86Eject ] }; key { [ XF86AudioRecord ] }; key { [ XF86Xfer ] }; key { [ XF86Standby ] }; key { [ Help ] }; key { [ XF86WWW ] }; key { [ XF86Away ] }; }; // YaHoo! // Yahoo! Internet partial alphanumeric_keys xkb_symbols "yahoo" { include "inet(acpi_common)" key { [ XF86AudioPrev ] }; key { [ XF86AudioPlay, XF86AudioPause ] }; key { [ XF86AudioStop ] }; key { [ XF86AudioNext ] }; key { [ XF86AudioRecord ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86AudioMute ] }; key { [ XF86Close ] }; key { [ XF86Calculator ] }; key { [ Help ] }; key { [ XF86Mail ] }; key { [ XF86WWW ] }; }; // Apple keyboards (macbooks, powerbooks, powermac G5, etc) partial alphanumeric_keys xkb_symbols "apple" { // Really brightness up/down key { [ XF86BrightnessAdjust ] }; key { [ XF86BrightnessAdjust ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86RotateWindows ] }; // Really keyboard backlight off/up/down key { [ XF86Launch0 ] }; key { [ XF86Launch1 ] }; key { [ XF86Launch2 ] }; key { [ XF86PowerOff ] }; key { [ F13 ] }; key { [ F14 ] }; key { [ F15 ] }; key { [ XF86Eject ] }; key { [ F16 ] }; key { [ KP_Equal ] }; }; partial alphanumeric_keys xkb_symbols "cymotionlinux" { include "inet(media_nav_acpi_common)" key { [ Undo ] }; key { [ Redo ] }; key { [ XF86ScrollDown ] }; key { [ XF86Launch2 ] }; key { [ XF86Launch1 ] }; key { [ XF86MenuKB ] }; key { [ XF86Launch3 ] }; key { [ XF86Cut ] }; key { [ XF86Copy ] }; key { [ XF86Paste ] }; key { [ XF86ScrollUp ] }; key { [ XF86AudioMedia ] }; }; partial alphanumeric_keys xkb_symbols "silvercrest" { include "inet(media_nav_acpi_common)" key { [ XF86HomePage ] }; key { [ XF86Launch2 ] }; key { [ XF86Launch1 ] }; }; // eMachines partial alphanumeric_keys xkb_symbols "emachines" { include "inet(media_nav_acpi_common)" key { [ XF86iTouch ] }; key { [ KP_0 ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_Add ] }; key { [ KP_Decimal ] }; key { [ KP_Divide ] }; key { [ KP_Multiply ] }; key { [ KP_Subtract ] }; }; // BenQ // BenQ X* (X730, X500, X800) // // To make the FN_LOCK and CONFIG key work on the BenQ X500 , use: // setkeycodes e074 130 # KEY_PROPS from /usr/include/linux/input.h // setkeycodes e075 171 # KEY_CONFIG from /usr/include/linux/input.h partial alphanumeric_keys xkb_symbols "benqx" { include "inet(media_nav_acpi_common)" key { [ XF86ModeLock ] }; key { [ XF86WWW ] }; key { [ XF86Go ] }; key { [ XF86Calendar ] }; }; // Intel // Intel Classmate partial alphanumeric_keys xkb_symbols "classmate" { key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; }; // Unitek partial alphanumeric_keys xkb_symbols "unitekkb1925" { include "inet(media_nav_common)" key { [ XF86AudioMute ] }; key { [ XF86PowerOff ] }; key { [ XF86Sleep ] }; key { [ XF86WakeUp ] }; key { [ XF86Search ] }; key { [ XF86Reload ] }; }; // Creative // Creative Desktop Wireless 7000 partial alphanumeric_keys xkb_symbols "creativedw7000" { include "inet(media_nav_acpi_common)" key { [ XF86Pictures ] }; }; // Compal // Compal FL90 partial alphanumeric_keys xkb_symbols "compalfl90" { include "inet(media_nav_acpi_common)" key { [ XF86MonBrightnessUp ] }; key { [ XF86MonBrightnessDown ] }; }; partial alphanumeric_keys xkb_symbols "pc105" { include "inet(media_nav_acpi_common)" }; // HTC Dream partial alphanumeric_keys xkb_symbols "htcdream" { key { [ BackSpace ] }; key { [ Return ] }; key { [ 1, 1, exclam, exclam ] }; key { [ 2, 2, at, at ] }; key { [ 3, 3, numbersign, numbersign ] }; key { [ 4, 4, dollar, dollar ] }; key { [ 5, 5, percent, percent ] }; key { [ 6, 6, dead_circumflex, dead_circumflex ] }; key { [ 7, 7, ampersand, ampersand ] }; key { [ 8, 8, asterisk, asterisk ] }; key { [ 9, 9, parenleft, parenleft ] }; key { [ 0, 0, parenright, parenright ] }; key { [ Shift_L ] }; key { [ space ] }; key { [ period, period, slash, slash ] }; key { [ Shift_R ] }; modifier_map Shift { , }; }; partial alphanumeric_keys xkb_symbols "chromebook" { include "level3(ralt_switch)" key { [ XF86Back ] }; key { [ XF86Forward ] }; key { [ XF86Reload ] }; key { [ F11 ] }; // key { [ F5, F5, F5, F5 ] }; // Overview key key { [ XF86MonBrightnessDown ] }; key { [ XF86MonBrightnessUp ] }; key { [ XF86AudioMute ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ BackSpace, BackSpace, Delete ] }; key { [ Up, Up, Prior, Up ] }; key { [ Down, Down, Next, Down ] }; key { [ Left, Left, Home, Left ] }; key { [ Right, Right, End, Right ] }; key { [ Super_L, Super_L, Caps_Lock, Super_L ] }; }; partial alphanumeric_keys xkb_symbols "teck227" { include "inet(media_nav_common)" key { [ Hiragana ] }; }; partial alphanumeric_keys xkb_symbols "teck229" { include "inet(teck227)" }; PK(f[_6͐ symbols/krnu[default alphanumeric_keys xkb_symbols "kr106" { include "us" name[Group1]= "Korean"; include "kr(hw_keys)" }; alphanumeric_keys xkb_symbols "kr104" { include "us" name[Group1]= "Korean (101/104 key compatible)"; include "kr(ralt_hangul)" include "kr(rctrl_hanja)" }; partial function_keys xkb_symbols "hw_keys" { key { [ Hangul ] }; key { [ Hangul_Hanja ] }; }; partial function_keys xkb_symbols "ralt_hangul" { replace key { type[Group1] = "ONE_LEVEL", symbols[Group1]= [ Hangul ] }; }; partial function_keys xkb_symbols "rctrl_hangul" { replace key { type[Group1] = "ONE_LEVEL", symbols[Group1]= [ Hangul ] }; }; partial function_keys xkb_symbols "ralt_hanja" { replace key { type[Group1] = "ONE_LEVEL", symbols[Group1]= [ Hangul_Hanja ] }; }; partial function_keys xkb_symbols "rctrl_hanja" { replace key { type[Group1] = "ONE_LEVEL", symbols[Group1]= [ Hangul_Hanja ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/kr(sun_type6)" }; PK(f[tO_O_ symbols/finu[// // X keyboard maps for Finland // // SFS 5966 / Kotoistus keymap created by Troy Korjuslommi // Classic keymap based on traditional by Marko Myllynen // Eliminate deadkeys alternative sent by Linus Torvalds // default partial alphanumeric_keys xkb_symbols "kotoistus" { // Official keymap for Finland based on SFS 5966 standard // // This keymap implements all the functionality of Annex 1 // of the standard and additionally defines the following to // allow entering these characters with keyboards without LSGT. // // AE08+4, U+003C : LESS-THAN SIGN (less) // AE09+4, U+003E : GREATER-THAN SIGN (greater) // AD08+4, U+007C : VERTICAL LINE (bar) // // Annex 3 of the standard is implemented in fi_FI.UTF-8/Compose name[Group1]="Finnish"; key { [ section, onehalf, dead_stroke, NoSymbol ] }; key { [ 1, exclam, NoSymbol, exclamdown ] }; key { [ 2, quotedbl, at, rightdoublequotemark ] }; key { [ 3, numbersign, sterling, guillemotright ] }; key { [ 4, currency, dollar, guillemotleft ] }; key { [ 5, percent, permille, leftdoublequotemark ] }; key { [ 6, ampersand, singlelowquotemark, doublelowquotemark ] }; key { [ 7, slash, braceleft, NoSymbol ] }; key { [ 8, parenleft, bracketleft, less ] }; key { [ 9, parenright, bracketright, greater ] }; key { [ 0, equal, braceright, degree ] }; key { [ plus, question, backslash, questiondown ] }; key { [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ] }; key { [ q, Q, q, Q ] }; key { [ w, W, w, W ] }; key { [ e, E, EuroSign, NoSymbol ] }; key { [ r, R, r, R ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, y, Y ] }; key { [ u, U, u, U ] }; key { [ i, I, idotless, bar ] }; key { [ o, O, oe, OE ] }; key { [ p, P, dead_horn, dead_hook ] }; key { [ aring, Aring, dead_doubleacute, dead_abovering ] }; key { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_macron ] }; key { [ a, A, schwa, SCHWA ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, f, F ] }; key { [ g, G, g, G ] }; key { [ h, H, h, H ] }; key { [ j, J, j, J ] }; key { [ k, K, kra, NoSymbol ] }; key { [ l, L, dead_stroke, NoSymbol ] }; key { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ apostrophe, asterisk, dead_caron, dead_breve ] }; key { [ less, greater, bar, NoSymbol ] }; key { [ z, Z, ezh, EZH ] }; key { [ x, X, multiply, periodcentered ] }; key { [ c, C, c, C ] }; key { [ v, V, v, V ] }; key { [ b, B, b, B ] }; key { [ n, N, eng, ENG ] }; key { [ m, M, mu, emdash ] }; key { [ comma, semicolon, rightsinglequotemark, leftsinglequotemark ] }; key { [ period, colon, dead_belowdot, dead_abovedot ] }; key { [ minus, underscore, endash, dead_belowcomma ] }; include "nbsp(level4)" include "nbsp(level3)" include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "winkeys" { include "fi(kotoistus)" name[Group1]="Finnish (Winkeys)"; include "eurosign(5)" }; partial alphanumeric_keys xkb_symbols "classic" { include "fi(fi)" name[Group1]="Finnish (classic)"; }; hidden partial alphanumeric_keys xkb_symbols "fi" { // Classic Finnish keyboard layout with dead keys key { [ section, onehalf, onequarter, threequarters ] }; key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, quotedbl, at, twosuperior ] }; key { [ 3, numbersign, sterling, threesuperior ] }; key { [ 4, currency, dollar, cent ] }; key { [ 5, percent, EuroSign, masculine ] }; key { [ 6, ampersand, yen, ordfeminine ] }; key { [ 7, slash, braceleft, plusminus ] }; key { [ 8, parenleft, bracketleft, less ] }; key { [ 9, parenright, bracketright, greater ] }; key { [ 0, equal, braceright, degree ] }; key { [ plus, question, backslash, questiondown ] }; key { [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ] }; key { [ q, Q, q, Q ] }; key { [ w, W, w, W ] }; key { [ e, E, EuroSign, cent ] }; key { [ r, R, registered, NoSymbol ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, y, Y ] }; key { [ u, U, u, U ] }; key { [ i, I, idotless, bar ] }; key { [ o, O, o, O ] }; key { [ p, P, paragraph, NoSymbol ] }; key { [ aring, Aring, oe, OE ] }; key { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] }; key { [ a, A, schwa, SCHWA ] }; key { [ s, S, scaron, Scaron ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, f, F ] }; key { [ g, G, eng, ENG ] }; key { [ h, H, h, H ] }; key { [ j, J, j, J ] }; key { [ k, K, kra, NoSymbol ] }; key { [ l, L, dead_stroke, NoSymbol ] }; key { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ apostrophe, asterisk, dead_caron, dead_breve ] }; key { [ less, greater, bar, brokenbar ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ x, X, multiply, division ] }; key { [ c, C, copyright, cent ] }; key { [ v, V, v, V ] }; key { [ b, B, ssharp, U1E9E ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, mu, NoSymbol ] }; key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; key { [ period, colon, periodcentered, notsign ] }; key { [ minus, underscore, hyphen, dead_macron ] }; include "nbsp(level4)" include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Classic Finnish keyboard layout without dead keys include "fi(fi)" name[Group1]="Finnish (classic, no dead keys)"; key { [ acute, grave, cedilla, ogonek ] }; key { [ diaeresis, asciicircum, asciitilde, caron ] }; key { [ l, L, l, L ] }; key { [ apostrophe, asterisk, caron, breve ] }; key { [ comma, semicolon, cedilla, ogonek ] }; key { [ minus, underscore, hyphen, macron ] }; }; partial alphanumeric_keys xkb_symbols "smi" { // Describes the differences between a Norwegian Northern Sami // (keyboard with dead key support) and a Swedish/Finnish Sami // keyboard according to the specs at: // http://www.hum.uit.no/a/trond/se-lat9-sefi-keys.html include "no(smi)" name[Group1]="Northern Saami (Finland)"; key { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; }; partial alphanumeric_keys xkb_symbols "mac" { // Macintosh keyboard for Finland based on Swedish(Macintosh) keyboard include "se(mac)" name[Group1]="Finnish (Macintosh)"; }; partial alphanumeric_keys xkb_symbols "sun_type6" { // Sun Type 6/7 keyboard for Finland include "sun_vndr/fi(sun_type6)" }; partial xkb_symbols "das" { // This is DAS layout for typing Finnish. It is originally designed by // Cristian Seres (cseres at iki.fi). // More information about DAS: http://c.seres.fi/DAS_en.html // This xkeyboard layout is originally made by Joel Lehtonen, // (joel.lehtonen at iki.fi) on 2008-01-14. He released it under Public // domain. name[Group1]="Finnish (DAS)"; key { [ 1, exclam, section ] }; key { [ 2, quotedbl, twosuperior ] }; key { [ 3, at, sterling ] }; key { [ 4, EuroSign, dollar ] }; key { [ 5, percent, onehalf ] }; key { [ 6, ampersand ] }; key { [ 7, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, braceright, degree ] }; key { [ plus, question, currency ] }; key { [ equal, numbersign ] }; key { [ p, P, Greek_pi ] }; key { [ h, H ] }; key { [ r, R, dead_circumflex ] }; key { [ k, K, dead_caron ] }; key { [ less, greater ] }; key { [ apostrophe, bar ] }; key { [ w, W ] }; key { [ u, U ] }; key { [ y, Y ] }; key { [ b, B ] }; key { [ q, Q ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ s, S, scaron, Scaron ] }; key { [ l, L, dead_acute ] }; key { [ n, N, dead_grave ] }; key { [ t, T, dead_diaeresis ] }; key { [ v, V ] }; key { [ g, G ] }; key { [ a, A ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ e, E ] }; key { [ c, C ] }; key { [ backslash, dead_tilde ] }; key { [ asterisk, slash ] }; key { [ f, F ] }; key { [ x, X ] }; key { [ d, D ] }; key { [ m, M, mu ] }; key { [ j, J ] }; key { [ aring, Aring ] }; key { [ odiaeresis, Odiaeresis, oe, OE ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore, U2013, dead_macron ] }; key { [ space, space, space, nobreakspace ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "fidvorak" { // Dvorak keyboard layout for use with Finnish by Pekka Oinas. // // Dedicated keys for Ä and Ö by utilizing the extra LSGT key found on Finnish keyboards // and by moving colon and semicolon behind shift-modifiers on comma and period. // Less and greater than symbols moved behind 3rd level modifiers on comma and period. // Includes an assortment of dead keys but is not made with them in mind. name[Group1]= "Finnish Dvorak"; key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, NoSymbol, exclamdown ] }; key { [ 2, at, cent, rightdoublequotemark ] }; key { [ 3, numbersign, sterling ] }; key { [ 4, dollar, currency ] }; key { [ 5, percent, permille, leftdoublequotemark ] }; key { [ 6, asciicircum, dead_circumflex, doublelowquotemark ] }; key { [ 7, ampersand, section, singlelowquotemark ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright, degree, dead_abovering ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ apostrophe, quotedbl, dead_acute, dead_doubleacute ] }; key { [ comma, semicolon, less, leftsinglequotemark ] }; key { [ period, colon, greater ] }; key { [ p, P ] }; key { [ y, Y, yen ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ c, C ] }; key { [ r, R ] }; key { [ l, L, notsign ] }; key { [ slash, question, NoSymbol, questiondown ] }; key { [ equal, plus ] }; key { [ a, A, schwa, SCHWA ] }; key { [ o, O, aring, Aring ] }; key { [ e, E, EuroSign ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ i, I, idotless, Iabovedot ] }; key { [ d, D, eth, ETH ] }; key { [ h, H ] }; key { [ t, T, thorn, THORN ] }; key { [ n, N, eng, ENG ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ minus, underscore, endash, emdash ] }; key { [ backslash, bar, dead_caron, dead_breve ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ odiaeresis, Odiaeresis, dead_diaeresis, dead_macron ] }; key { [ q, Q, ooblique, Ooblique ] }; key { [ j, J ] }; key { [ k, K, kra ] }; key { [ x, X, multiply, periodcentered ] }; key { [ b, B, hyphen ] }; key { [ m, M, mu, emdash ] }; key { [ w, W ] }; key { [ v, V ] }; key { [ z, Z, ezh, EZH ] }; include "level3(ralt_switch)" }; PK(f[݊y.. symbols/nonu[// based on a keyboard map from an 'xkb/symbols/no' file default partial alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple en_US // keyboard and a Norwegian keyboard with dead key support // and all of ISO-8859-1 characters available. include "latin(type2)" name[Group1]="Norwegian"; key { [ period, colon, ellipsis, periodcentered ] }; key { [ minus, underscore, endash, emdash ] }; key { [ r, R, registered, trademark ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [ 5, percent, onehalf, 0x1002030 ] }; key { [ plus, question, plusminus, questiondown ] }; key { [ backslash, dead_grave, dead_acute, notsign ] }; key { [ oslash, Ooblique, dead_acute, dead_doubleacute ] }; key { [ ae, AE, dead_circumflex, dead_caron] }; key { [ bar, section, brokenbar, paragraph ] }; key { [apostrophe, asterisk, dead_doubleacute, multiply ] }; key { [ less, greater, onehalf, threequarters] }; include "nbsp(level3n)" include "keypad(ossmath)" include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Modifies the basic Norwegian layout to no dead keys include "no(basic)" name[Group1]="Norwegian (no dead keys)"; key { [ backslash, grave, acute, ogonek ] }; key { [ diaeresis, asciicircum, asciitilde, macron ] }; key { [ oslash, Ooblique, acute, doubleacute ] }; key { [ ae, AE, asciicircum, caron ] }; key { [ comma, semicolon, cedilla, ogonek ] }; key { [ period, colon, periodcentered, abovedot ] }; }; partial alphanumeric_keys xkb_symbols "winkeys" { include "no(basic)" name[Group1]="Norwegian (Win keys)"; include "eurosign(5)" }; // Norwegian Dvorak partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" name[Group1]="Norwegian (Dvorak)"; key { [ bar, section, brokenbar, paragraph ] }; key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, quotedbl, at, twosuperior ] }; key { [ 3, numbersign, sterling, threesuperior ] }; key { [ 4, currency, dollar, onequarter ] }; key { [ 5, percent, onehalf, onehalf ] }; key { [ 6, ampersand, threequarters, threequarters ] }; key { [ 7, slash, braceleft, division ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ plus, question, plusminus, questiondown ] }; key { [ backslash, grave, dead_acute, dead_grave ] }; key { [ aring, Aring, braceright, bracketright ] }; key { [ comma, semicolon, dead_cedilla, cedilla ] }; key { [ period, colon, periodcentered ] }; key { [ p, P, thorn, THORN ] }; key { [ y, Y, yen ] }; key { [ f, F, ordfeminine ] }; key { [ c, C, ccedilla, copyright ] }; key { [ r, R, registered ] }; key { [ apostrophe, asterisk, dead_circumflex, acute ] }; key { [dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] }; key { [ e, E, EuroSign, cent ] }; key { [ i, I, idotless, Iabovedot] }; key { [ d, D, eth, ETH ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ minus, underscore, hyphen, diaeresis] }; key { [ ae, AE, braceleft, bracketleft] }; key { [ x, X, multiply ] }; key { [ m, M, mu ] }; key { [ less, greater, guillemotleft, guillemotright ] }; key { [ space, space, nobreakspace, nobreakspace] }; key { [ oslash, Ooblique, bar, backslash ] }; // fixed https://bugs.freedesktop.org/show_bug.cgi?id=4397 include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "smi" { // Northern Sami keyboards for Finland, Norway and Sweden // // Describes the differences between a very simple en_US // keyboard and a Norwegian Northern Sami keyboard (with // dead-key support) according to the spec on // http://www.hum.uit.no/a/trond/se-lat9-no-keys.html // Written by Børre Gaup . include "latin" name[Group1]= "Northern Saami (Norway)"; key { [ 1, exclam, copyright, exclamdown ] }; key { [ 2, quotedbl, at, registered ] }; key { [ 3, numbersign, sterling, less ] }; key { [ 4, dollar, dollar, greater ] }; key { [ 5, percent, U2022, U2030 ] }; key { [ 6, ampersand, section, paragraph ] }; key { [ 7, slash, braceleft, bar ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ 0, equal, braceright, notequal ] }; key { [ plus, question, division, questiondown ] }; key { [ backslash, grave, acute, asciitilde ] }; key { [ aacute, Aacute, q, Q ] }; key { [ scaron, Scaron, w, W ] }; key { [ e, E, eacute, Eacute ] }; key { [ r, R, registered, trademark ] }; key { [ y, Y, yacute, Yacute ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ i, I, idiaeresis, Idiaeresis ] }; key { [ o, O, oe, OE ] }; key { [ aring, Aring, acircumflex, Acircumflex ] }; key { [ eng, ENG, quotedbl, asciicircum ] }; key { [ a, A, agrave, Agrave ] }; key { [ s, S, ssharp, apostrophe ] }; key { [ f, F, ordfeminine, ordfeminine ] }; key { [ g, G, gcaron, Gcaron ] }; key { [ h, H, U01E5, U01E4 ] }; key { [ j, J, notsign, multiply ] }; key { [ k, K, U01E9, U01E8 ] }; key { [ l, L, degree, hyphen ] }; key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; key { [ ae, AE, adiaeresis, Adiaeresis ] }; key { [ bar, section, brokenbar, paragraph ] }; key { [ dstroke, Dstroke, apostrophe, asterisk ] }; key { [ z, Z, U0292, U01B7 ] }; key { [ ccaron, Ccaron, x, X ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, lessthanequal, guillemotleft ] }; key { [ b, B, greaterthanequal, guillemotright ] }; key { [ n, N, leftsinglequotemark, leftdoublequotemark ] }; key { [ m, M, rightsinglequotemark, rightdoublequotemark ] }; key { [ comma, semicolon, singlelowquotemark, doublelowquotemark ] }; key { [ period, colon, ellipsis, periodcentered ] }; key { [ minus, underscore, endash, emdash ] }; key { type[Group1] = "FOUR_LEVEL", [ zcaron, Zcaron, U01EF, U01EE ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "smi_nodeadkeys" { // Modifies the basic Norwegian layout to no dead keys include "no(smi)" name[Group1]= "Northern Saami (Norway, no dead keys)"; key { [ backslash, grave, acute, ogonek ] }; }; // Copied from macintosh_vndr/no partial alphanumeric_keys xkb_symbols "mac" { // Describes the differences between a very simple en_US // keyboard and a very simple Norwegian keyboard. include "latin(type4)" name[Group1]= "Norwegian (Macintosh)"; key { [ bar, section ] }; key { [ 3, numbersign, sterling, sterling ] }; key { [ 4, currency, dollar, dollar ] }; key { [ 6, ampersand, threequarters, fiveeighths ] }; key { [ 7, slash, bar, backslash ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; key { [ plus, question ] }; key { [ ae, AE ] }; key { [ aring, Aring ] }; key { [ dead_grave, dead_acute, acute, dead_ogonek ] }; key { [ diaeresis, asciicircum, asciitilde, dead_macron ] }; key { [ at, asterisk ] }; }; partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { // Modifies the basic Norwegian layout to no dead keys include "no(mac)" name[Group1]= "Norwegian (Macintosh, no dead keys)"; key { [ grave, acute, acute, ogonek ] }; key { [ diaeresis, asciicircum, asciitilde, macron ] }; }; partial alphanumeric_keys xkb_symbols "colemak" { // Colemak layout - http://colemak.com/ // Q W F P G J L U Y Ø Å ¨ // A R S T D H N E I O Æ ' // < Z X C V B K M , . - include "no(basic)" name[Group1]= "Norwegian (Colemak)"; key { [ k, K, kra, ampersand ] }; key { [ r, R, registered, trademark ] }; key { [ s, S, ssharp, section ] }; key { [ t, T, thorn, THORN ] }; key { [ d, D, eth, ETH ] }; key { [ n, N ] }; key { [ e, E, EuroSign, cent ] }; key { [ i, I, rightarrow, idotless ] }; key { [ o, O, oe, OE ] }; key { [ f, F, dstroke, ordfeminine ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [ g, G, eng, ENG ] }; key { [ j, J ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ u, U, downarrow, uparrow ] }; key { [ y, Y, leftarrow, yen ] }; key { [ oslash, Ooblique, dead_acute, dead_doubleacute ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/no(sun_type6)" }; PK(f[*00 symbols/irnu[// Iranian keyboard layout //////////////////////////////////////// // Persian layout, // based on // Information Technology – Layout of Persian Letters and Symbols on Computer Keyboards // ISIRI 9147 – 1st Edition // Institute of Standards and Industrial Research of Iran // http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147 // http://behnam.esfahbod.info/standards/isiri-keyboard-9147.pdf // // Author: Behnam Esfahbod // default partial alphanumeric_keys xkb_symbols "pes" { name[Group1]= "Persian"; include "ir(pes_part_basic)" include "ir(pes_part_ext)" include "nbsp(zwnj2nb3nnb4)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "pes_keypad" { name[Group1]= "Persian (with Persian keypad)"; include "ir(pes_part_basic)" include "ir(pes_part_ext)" include "ir(pes_part_keypad)" include "nbsp(zwnj2nb3nnb4)" include "level3(ralt_switch)" }; hidden partial alphanumeric_keys xkb_symbols "pes_part_basic" { // Persian digits key { [ Farsi_1, exclam, grave ] }; key { [ Farsi_2, 0x100066c, at ] }; key { [ Farsi_3, 0x100066b, numbersign ] }; key { [ Farsi_4, 0x100fdfc, dollar ] }; key { [ Farsi_5, 0x100066a, percent ] }; key { [ Farsi_6, multiply, asciicircum ] }; key { [ Farsi_7, Arabic_comma, ampersand ] }; key { [ Farsi_8, asterisk, enfilledcircbullet ] }; key { [ Farsi_9, parenright, 0x100200e ] }; key { [ Farsi_0, parenleft, 0x100200f ] }; // Persian letters and symbols key { [ Arabic_dad, Arabic_sukun, degree ] }; key { [ Arabic_sad, Arabic_dammatan, VoidSymbol ] }; key { [ Arabic_theh, Arabic_kasratan, 0x13a4 ] }; key { [ Arabic_qaf, Arabic_fathatan, VoidSymbol ] }; key { [ Arabic_feh, Arabic_damma, VoidSymbol ] }; key { [ Arabic_ghain, Arabic_kasra, VoidSymbol ] }; key { [ Arabic_ain, Arabic_fatha, VoidSymbol ] }; key { [ Arabic_heh, Arabic_shadda, 0x100202d ] }; key { [ Arabic_khah, bracketright, 0x100202e ] }; key { [ Arabic_hah, bracketleft, 0x100202c ] }; key { [ Arabic_jeem, braceright, 0x100202a ] }; key { [ Arabic_tcheh, braceleft, 0x100202b ] }; key { [ Arabic_sheen, Arabic_hamzaonwaw, VoidSymbol ] }; key { [ Arabic_seen, Arabic_hamzaonyeh, VoidSymbol ] }; key { [ Farsi_yeh, Arabic_yeh, Arabic_alefmaksura ] }; key { [ Arabic_beh, Arabic_hamzaunderalef, VoidSymbol ] }; key { [ Arabic_lam, Arabic_hamzaonalef, VoidSymbol ] }; key { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] }; key { [ Arabic_teh, Arabic_tehmarbuta, VoidSymbol ] }; key { [ Arabic_noon, guillemotright, 0x100fd3e ] }; key { [ Arabic_meem, guillemotleft, 0x100fd3f ] }; key { [ Arabic_keheh, colon, semicolon ] }; key { [ Arabic_gaf, Arabic_semicolon, quotedbl ] }; key { [ Arabic_zah, Arabic_kaf, VoidSymbol ] }; key { [ Arabic_tah, 0x1000653, VoidSymbol ] }; key { [ Arabic_zain, Arabic_jeh, VoidSymbol ] }; key { [ Arabic_ra, Arabic_superscript_alef,0x1000656 ] }; key { [ Arabic_thal, 0x100200c, 0x100200d ] }; key { [ Arabic_dal, Arabic_hamza_above, Arabic_hamza_below ] }; key { [ Arabic_peh, Arabic_hamza, ellipsis ] }; key { [ Arabic_waw, greater, comma ] }; key { [ period, less, apostrophe ] }; key { [ slash, Arabic_question_mark, question ] }; key { [ 0x100200d, division, asciitilde ] }; key { [ minus, Arabic_tatweel, underscore ] }; key { [ equal, plus, 0x1002212 ] }; key { [ backslash, bar, 0x1002010 ] }; }; hidden partial alphanumeric_keys xkb_symbols "pes_part_ext" { // Persian and ASCII digits key { [ Farsi_1, exclam, grave, 1 ] }; key { [ Farsi_2, 0x100066c, at, 2 ] }; key { [ Farsi_3, 0x100066b, numbersign, 3 ] }; key { [ Farsi_4, 0x100fdfc, dollar, 4 ] }; key { [ Farsi_5, 0x100066a, percent, 5 ] }; key { [ Farsi_6, multiply, asciicircum, 6 ] }; key { [ Farsi_7, Arabic_comma, ampersand, 7 ] }; key { [ Farsi_8, asterisk, enfilledcircbullet, 8 ] }; key { [ Farsi_9, parenright, 0x100200e, 9 ] }; key { [ Farsi_0, parenleft, 0x100200f, 0 ] }; }; hidden partial alphanumeric_keys xkb_symbols "pes_part_keypad" { // Persian digits and Mathematical operators key { [ division, XF86_Ungrab ] }; key { [ multiply, XF86_ClearGrab ] }; key { [ 0x1002212, XF86_Prev_VMode ] }; key { [ plus, XF86_Next_VMode ] }; key { [ KP_Enter ] }; key { [ equal ] }; key { [ KP_Home, Farsi_7 ] }; key { [ KP_Up, Farsi_8 ] }; key { [ KP_Prior, Farsi_9 ] }; key { [ KP_Left, Farsi_4 ] }; key { [ KP_Begin, Farsi_5 ] }; key { [ KP_Right, Farsi_6 ] }; key { [ KP_End, Farsi_1 ] }; key { [ KP_Down, Farsi_2 ] }; key { [ KP_Next, Farsi_3 ] }; key { [ KP_Insert, Farsi_0 ] }; key { [ KP_Delete, 0x100066b ] }; }; //////////////////////////////////////// // Kurdish Layout partial alphanumeric_keys xkb_symbols "ku" { include "tr(ku)" name[Group1]= "Kurdish (Iran, Latin Q)"; }; partial alphanumeric_keys xkb_symbols "ku_f" { include "tr(ku_f)" name[Group1]= "Kurdish (Iran, F)"; }; partial alphanumeric_keys xkb_symbols "ku_alt" { include "tr(ku_alt)" name[Group1]= "Kurdish (Iran, Latin Alt-Q)"; }; //////////////////////////////////////// // Kurdish Soranî Bahdînî (Arabic) keyboard layout, // based on the Kurdî Soranî Bahdînî keyboard from KurdITGroup // which is based on National Iranian Keyboard Standard (ISIRI 2901:1994), // with additions. // // Copyright (C) 2006 Erdal Ronahî, published under the GPL v2 // // Special copyright note: author explicitly permitted to license this // layout under MIT/X11 license, for details see // https://bugs.freedesktop.org/show_bug.cgi?id=9541 // // Author: Erdal Ronahî // // Kurdish Arabic-Latin Layout for Soranî partial alphanumeric_keys xkb_symbols "ku_ara" { name[Group1]= "Kurdish (Iran, Arabic-Latin)"; // Other 3-Level symbols key { [ 0x100200d, division, asciitilde ] }; key { [ backslash, bar, ccedilla, Ccedilla ] }; // Digits key { [ 0x1000661, exclam, 1, grave ] }; key { [ 0x1000662, at, 2, at ] }; key { [ 0x1000663, numbersign, 3, 0x100066b ] }; key { [ 0x1000664, dollar, 4, 0x100fdfc ] }; key { [ 0x1000665, percent, 5, 0x100066a ] }; key { [ 0x1000666, asciicircum, 6, multiply ] }; key { [ 0x1000667, ampersand, 7, Arabic_comma ] }; key { [ 0x1000668, asterisk, 8, enfilledcircbullet ] }; key { [ 0x1000669, parenright, 9, 0x100200e ] }; key { [ 0x1000660, parenleft, 0, 0x100200f ] }; key { [ minus, Arabic_tatweel, underscore ] }; key { [ equal, plus, 0x1002212 ] }; key { [ Arabic_qaf, X, q, Q ] }; key { [ Arabic_waw, X, w, W ] }; key { [ 0x10006d5, Arabic_heh, e, E ] }; key { [ Arabic_ra , 0x1000695, r, R ] }; key { [ Arabic_teh, Arabic_tah, t, T ] }; key { [ 0x10006cc, 0x10006ce, y, Y ] }; key { [ Arabic_hamzaonyeh, Arabic_hamza, u, U ] }; key { [ Arabic_hah, Arabic_ain, i, I ] }; key { [ 0x10006c6, Arabic_hamzaonwaw, o, O ] }; key { [ 0x100067e, Arabic_theh, p, P ] }; key { [ bracketright, braceright, ucircumflex, Ucircumflex ] }; key { [ bracketleft, braceleft, scedilla, Scedilla ] }; key { [ Arabic_alef, Arabic_maddaonalef, a, A ] }; key { [ Arabic_seen, Arabic_sheen, s, S ] }; key { [ Arabic_dal, Arabic_thal, d, D ] }; key { [ Arabic_feh, Arabic_hamzaunderalef, f, F ] }; key { [ 0x10006af, Arabic_ghain, g, G ] }; key { [ Arabic_heh, 0x100200c, h, H ] }; key { [ 0x1000698, Arabic_hamzaonalef, j, J ] }; key { [ 0x10006a9, Arabic_kaf, k, K ] }; key { [ Arabic_lam, 0x10006b5, l, L ] }; key { [ Arabic_semicolon, colon, ecircumflex, Ecircumflex ] }; key { [ apostrophe, quotedbl, icircumflex, Icircumflex ] }; key { [ Arabic_zain, Arabic_dad, z, Z ] }; key { [ Arabic_khah, Arabic_sad, x, X ] }; key { [ Arabic_jeem, 0x1000686, c, C ] }; key { [ 0x10006a4, Arabic_zah, v, V ] }; key { [ Arabic_beh, 0x1000649, b, B ] }; key { [ Arabic_noon, Arabic_tehmarbuta, n, N ] }; key { [ Arabic_meem, Arabic_tatweel, m, M ] }; key { [ Arabic_comma, greater, comma ] }; key { [ period, less, apostrophe ] }; key { [ slash, Arabic_question_mark, question ] }; include "nbsp(zwnj2nb3)" include "level3(ralt_switch)" }; // EXTRAS: ///////////////////////////////////////////////////////////////////////////////// // // Generated keyboard layout file with the Keyboard Layout Editor. // For more about the software, see http://code.google.com/p/keyboardlayouteditor // // Version 0.2, fixed AD09. // // Layout by Ernst Tremel, http://ubuntuforums.org/showpost.php?p=9365469&postcount=32 // Creation of this file by Simos Xenitellis. partial alphanumeric_keys xkb_symbols "ave" { name[Group1] = "Avestan"; key { [ U10B30, U10B32 ] }; // 𐬰 𐬲 key { [ U10B11, U10B12 ] }; // 𐬑 𐬒 key { [ U10B17, UE102 ] }; // 𐬗  key { [ U10B2C, U10B13 ] }; // 𐬬 𐬓 key { [ U10B20, U10B21 ] }; // 𐬠 𐬡 key { [ U10B25, U10B27 ] }; // 𐬥 𐬧 key { [ U10B28, U10B29 ] }; // 𐬨 𐬩 key { [ U10B3C, U10B39 ] }; // 𐬼 𐬹 key { [ U10B3E, U10B3D ] }; // 𐬾 𐬽 key { [ U10B3F, periodcentered ] }; // 𐬿 · key { [ U10B00, U10B01 ] }; // 𐬀 𐬁 key { [ U10B2F, U10B31 ] }; // 𐬯 𐬱 key { [ U10B1B, U10B1C ] }; // 𐬛 𐬜 key { [ U10B1F, U10B16 ] }; // 𐬟 𐬖 key { [ U10B14, U10B15 ] }; // 𐬔 𐬕 key { [ U10B35, UE100 ] }; // 𐬵  key { [ U10B18, U10B24 ] }; // 𐬘 𐬤 key { [ U10B10, UE101 ] }; // 𐬐  key { [ U10B2E, UE103 ] }; // 𐬮  key { [ U10B3B, U10B3A ] }; // 𐬻 𐬺 key { [ U10B1D ] }; // 𐬝 key { [ U10B22, U10B23 ] }; // 𐬢 𐬣 key { [ U10B33, U10B34 ] }; // 𐬳 𐬴 key { [ U10B08, U10B09 ] }; // 𐬈 𐬉 key { [ U10B2D, U10B26 ] }; // 𐬭 𐬦 key { [ U10B19, U10B1A ] }; // 𐬙 𐬚 key { [ U10B2B, U10B2A ] }; // 𐬫 𐬪 key { [ U10B0E, U10B0F ] }; // 𐬎 𐬏 key { [ U10B0C, U10B0D ] }; // 𐬌 𐬍 key { [ U10B0A, U10B0B ] }; // 𐬊 𐬋 key { [ U10B1E ] }; // 𐬞 key { [ U10B06, U10B07 ] }; // 𐬆 𐬇 key { [ U10B02, U10B03 ] }; // 𐬂 𐬃 key { [ U10B78 ] }; // 𐭸 key { [ U10B79 ] }; // 𐭹 key { [ U10B7A ] }; // 𐭺 key { [ U10B7B ] }; // 𐭻 key { [ U10B7C ] }; // 𐭼 key { [ U10B7D ] }; // 𐭽 key { [ U10B7E ] }; // 𐭾 key { [ U10B7F ] }; // 𐭿 key { [ U10B04, U10B05 ] }; // 𐬄 𐬅 key { [ U10B04, U10B05 ] }; // 𐬄 𐬅 }; PK(f[%Dee symbols/emptynu[default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { name[Group1]= "Empty"; }; PK(f[^Fsymbols/macintosh_vndr/chnu[// // 03.01.2003 // Andreas Tobler // modified for Swiss German Apple Extended Keyboard II default partial alphanumeric_keys xkb_symbols "extended" { name[Group1]= "Switzerland - German, Mac"; key { [ 1, plus, plusminus, infinity ] }; key { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] }; key { [ 3, asterisk, numbersign, leftcaret ] }; // not displayed here key { [ 4, ccedilla, Ccedilla, slash ] }; key { [ 5, percent, bracketleft ] }; key { [ 6, ampersand, bracketright ] }; key { [ 7, slash, bar, backslash ] }; key { [ 8, parenleft, braceleft, Ograve ] }; key { [ 9, parenright, braceright, Ocircumflex ] }; key { [ 0, equal, notequal, Uacute ] }; key { [ apostrophe, question, questiondown, NoSymbol ] }; key { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] }; key { [ q, Q, oe, OE ] }; key { [ w, W, Greek_SIGMA, Aacute ] }; key { [ e, E, EuroSign, Ediaeresis ] }; key { [ r, R, registered, Egrave ] }; key { [ t, T, dagger, Icircumflex ] }; key { [ z, Z, Greek_OMEGA, Iacute ] }; key { [ u, U, degree, Ugrave ] }; key { [ i, I, exclamdown, idotless ] }; key { [ o, O, oslash, Ooblique ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [ udiaeresis, egrave, section, ydiaeresis ] }; key { [ dead_diaeresis, exclam, grave, apostrophe ] }; key { [ a, A, aring, Aring ] }; key { [ s, S, ssharp, U1E9E ] }; // ligature fl key { [ d, D, Greek_sigma, NoSymbol ] }; // partialderivative is not available here att key { [ f, F, function, doubledagger ] }; key { [ g, G, at, comma ] }; key { [ h, H, ordfeminine, periodcentered ] }; key { [ j, J, masculine, eth ] }; key { [ k, K, Greek_DELTA, macron ] }; key { [ l, L, notsign, caret ] }; key { [ odiaeresis, eacute, cent, breve ] }; key { [ adiaeresis, agrave, ae, AE ] }; key { [ y, Y, yen, Ydiaeresis ] }; key { [ x, X, similarequal, trademark ] }; key { [ c, C, copyright, NoSymbol ] }; key { [ v, V, radical, diamond ] }; key { [ b, B, integral, NoSymbol ] }; key { [ n, N, dead_tilde, enopencircbullet ] }; // to be fixed att key { [ m, M, mu, dead_abovering ] }; // not sure att key { [ comma, semicolon, guillemotleft, guillemotright ] }; key { [ period, colon, ellipsis, division ] }; key { [ minus, underscore, hyphen, emdash ] }; key { [ section, degree, NoSymbol, NoSymbol ] }; // ligature fi // per mille key { [ space, nobreakspace, nobreakspace ] }; key { [ less, greater, lessthanequal, greaterthanequal ] }; key { [ dollar, sterling, paragraph, enfilledcircbullet ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "de" { include "macintosh_vndr/ch(extended)" }; partial alphanumeric_keys xkb_symbols "fr" { include "macintosh_vndr/ch(extended)" name[Group1]= "Switzerland - French, Mac"; override key { [ egrave, udiaeresis, bracketleft ] }; override key { [ eacute, odiaeresis ] }; override key { [ agrave, adiaeresis, braceleft ] }; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "macintosh_vndr/ch(fr)" // for consistent naming }; PK(f[43qZ  symbols/macintosh_vndr/ptnu[// mac version from Ricardo Cabral partial default alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple en_US // keyboard and a very simple Portuguese keyboard. include "latin" name[Group1]= "Portugal - Mac"; key { [ less, greater, bar, brokenbar ] }; key { [ 2, quotedbl, at, oneeighth ] }; key { [ 3, numbersign, sterling, sterling ] }; key { [ 4, dollar, section, dollar ] }; key { [ 6, ampersand ] }; key { [ 7, slash ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ 0, equal ] }; key { [ apostrophe, question ] }; key { [ plus, asterisk, dead_diaeresis ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; key { [ ccedilla, Ccedilla ] }; key { [ dead_tilde, dead_circumflex ] }; key { [ backslash, bar ] }; key { [ masculine, ordfeminine ] }; key { [ dead_acute, dead_grave ] }; include "eurosign(e)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "macintosh_vndr/pt(basic)" // for consistent naming name[Group1]= "Portugal - Mac, Sun dead keys"; key { [ plus, asterisk, SunFA_Diaeresis, SunFA_Diaeresis ] }; key { [ SunFA_Tilde, SunFA_Circum ] }; key { [ SunFA_Acute, SunFA_Grave ] }; }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "macintosh_vndr/pt(Sundeadkeys)" // for consistent naming }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "macintosh_vndr/pt(basic)" // for consistent naming name[Group1]= "Portugal - Mac, no dead keys"; key { [ plus, asterisk, quotedbl, quotedbl ] }; key { [ asciitilde, asciicircum ] }; key { [ acute, grave ] }; }; PK(f[އ%symbols/macintosh_vndr/nlnu[partial default alphanumeric_keys xkb_symbols "basic" { include "latin" name[Group1]= "Netherlands - Mac"; include "level3(ralt_switch)" }; PK(f[''JJsymbols/macintosh_vndr/finu[partial default alphanumeric_keys xkb_symbols "basic" { include "macintosh_vndr/se(basic)" // for consistent naming name[Group1]= "Finland - Mac"; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "macintosh_vndr/se(basic)" // for consistent naming name[Group1]= "Finland - Mac, no dead keys"; }; PK(f[3fCFFsymbols/macintosh_vndr/nonu[partial default alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple en_US // keyboard and a very simple Norwegian keyboard. include "latin" name[Group1]= "Norway - Mac"; key { [ bar, section ] }; key { [ 2, quotedbl, at, oneeighth ] }; key { [ 3, numbersign, sterling, sterling ] }; key { [ 4, currency, dollar, dollar ] }; key { [ 6, ampersand ] }; key { [ 7, slash, bar, backslash ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ 0, equal ] }; key { [ plus, question ] }; key { [ dead_grave, dead_acute, acute, dead_ogonek ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; key { [ ae, AE ] }; key { [ aring, Aring ] }; key { [ diaeresis, asciicircum, asciitilde, dead_macron ] }; key { [ at, asterisk ] }; key { [ less, greater ] }; include "eurosign(e)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Modifies the basic Norwegian layout to no dead keys include "macintosh_vndr/no(basic)" name[Group1]= "Norway - Mac, no dead keys"; key { [ grave, acute, acute, ogonek ] }; key { [ diaeresis, asciicircum, asciitilde, macron ] }; }; PK(f['csymbols/macintosh_vndr/applenu[// // Keyboard modification for Apple keyboards // partial default modifier_keys xkb_symbols "extended" { key { [ KP_Equal ] }; // The key in the PC's Insert position is sometimes engraved Help (at least // in Switzerland and Great Britain), with Insert sometimes above. But in the // US and Canada, it remains Insert. So this should probably be an XkbOption, // but I have to do more research. // Perhaps Help should be the primary symbol with Insert in the 1st shift-level // key { [ Help, Insert ] }; // The keys next to F12, labeled F13, F14, & F15 generate codes that XFree86 // claims not to generate. I think they should be equivalent to the PC keys // Print Screen / SysRq, Scroll Lock, and Pause. Linux kernel bug? // key { [ F13 ] }; // should be keycode 93 or // key { [ F13 ] }; // should be keycode 118 // key { [ F14 ] }; // should be keycode 123 or // key { [ F14 ] }; // should be keycode 119 // key { [ F15 ] }; // should be keycode 127 or // key { [ F15 ] }; // should be keycode 120 }; partial modifier_keys xkb_symbols "laptop" { include "macintosh_vndr/apple(extended)" // The real numlock key on the iBook (shared with F5) works internally to // the keyboard. It illuminates the Num_Lock led and locks the fn-key to // type only the keypad keys on the letter keys (U=4, I=5, O=6, P=*, etc.). // The key in the Num_lock position is engraved with Clear. override key { [ Clear ] }; // The key engraved Delete sends BKSP. To get Delete, use Shift-Delete override key { [ BackSpace, Delete ] }; // These keyboards only generate a when pressing fn+Alt. This makes // it impossible to get to the third shift level on keys that are on // the fn-keypad, so use the Enter key (right of ) for Mode_switch, // and use fn+Enter (Apple's code for Menu) for KP_Enter. replace key { [ ISO_Level3_Shift ] }; modifier_map Mod5 { ISO_Level3_Shift }; // Linux kernel bug with Menu on macs means this does not work yet // replace key { [ KP_Enter ] }; // should be keycode 117 }; partial modifier_keys xkb_symbols "laptop_bad_switch" { // Kept for backward compatibility include "macintosh_vndr/apple(laptop)" }; // Long Aluminium Keyboards partial function_keys xkb_symbols "alukbd" { // The base is a inet PC keyboard include "pc" // Additional Fxx keys key { [ F13 ] }; key { [ F14 ] }; key { [ F15 ] }; key { [ F16 ] }; key { [ F17 ] }; key { [ F18 ] }; key { [ F19 ] }; // On aluminium keyboards, Num_Lock is replace by Clear replace key { [ Clear ] }; // CAPS key is always Caps_Lock, even for JIS keyboards replace key { [ Caps_Lock ] }; // F1..F12 are multimedia keys when used with the 'Fn' key // Make those multimedia actions available via ISO_Level3_Shift too, // it is useful when the Fn key is remapped to something else (e.g. Insert) key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, XF86KbdBrightnessDown, NoSymbol, XF86_Switch_VT_1 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, XF86KbdBrightnessUp, NoSymbol, XF86_Switch_VT_2 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_3 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_4 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_5 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_6 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, XF86AudioPrev, NoSymbol, XF86_Switch_VT_7 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, XF86AudioPlay, NoSymbol, XF86_Switch_VT_8 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, XF86AudioNext, NoSymbol, XF86_Switch_VT_9 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, XF86AudioMute, NoSymbol, XF86_Switch_VT_10 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, XF86AudioLowerVolume, NoSymbol, XF86_Switch_VT_11 ] }; key { type= "FOUR_LEVEL_X", symbols[Group1]= [ NoSymbol, XF86AudioRaiseVolume, NoSymbol, XF86_Switch_VT_12 ] }; }; // Aluminium Keyboard: make F13, F14, F15 PC-ish (Print, Scroll_Lock, Pause) partial function_keys keypad_keys xkb_symbols "alupckeys" { key { type= "PC_ALT_LEVEL2", symbols[Group1]= [ Print, Sys_Req ] }; key { [ Scroll_Lock ] }; key { type= "PC_CONTROL_LEVEL2", symbols[Group1]= [ Pause, Break ] }; override key { [ Num_Lock, Pointer_EnableKeys ] }; }; PK(f[}dXsymbols/macintosh_vndr/frnu[// Marc.Shapiro@inria.fr 19-sep-1998 // modifications : Etienne Herlent june 2000 // adapted to the new input layer : // Martin Costabel 3-jan-2001 ////////////////////////////////////////////////////////////////// // Petites Modification le juillet 2005 par Bin Zhang : // 1) La ligne 83 : remplacer les deux "VoidSymbol" par oe et OE // 2) La ligne 89 : remplacer "VoidSymbol" par "EuroSign" // ( 1) et 2) fonctionnent sous UTF-8, mais pas sous iso-8859-1. ) // 3) Remplacer la ligne 148 par la ligne 149 pour que la touche Alt_L // (la touche Apple-Pomme) fonctionne correctement sous Xorg, une idée // motivée par http://www.linux-france.org/macintosh/clavier_gentoo.html ////////////////////////////////////////////////////////////////// // This map is an almost-complete mapping of the standard French // MacIntosh keyboard under Xwindows. I tried to remain as faithful // as possible to the Mac meaning of each key. I did this entirely by // hand and by intuition, relying on the Clavier (Keyboard?) Desktop // Accessory for the Mac meaning of keys, and on reading keysymdef.h // to intuit the corresponding X names. Lacking proper documentation, // I may have made some mistakes. // Entries marked CHECK are particularly uncertain // Entries marked MISSING mark Mac characters for which I was unable // to find a corresponding keysym. (Some for sure don't: e.g. the // Apple mark and the oe/OE character; others I may have simply not // found.) default xkb_symbols "extended" { name[Group1]= "France - Mac"; key { [ Escape ] }; key { [ at, numbersign, periodcentered, Ydiaeresis ] }; key { [ KP_Enter ] }; key { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple key { [ eacute, 2, ediaeresis, Eacute ] }; key { [ quotedbl, 3, leftdoublequotemark, rightdoublequotemark ] }; key { [ apostrophe, 4, leftsinglequotemark, rightsinglequotemark ] }; key { [ parenleft, 5, braceleft, bracketleft ] }; key { [ section, 6, paragraph, aring ] }; key { [ egrave, 7, guillemotleft, guillemotright] }; key { [ exclam, 8, exclamdown, Ucircumflex ] }; key { [ ccedilla, 9, Ccedilla, Aacute ] }; key { [ agrave, 0, oslash, Oslash ] }; key { [ parenright, degree, braceright, bracketright ] }; key { [ minus, underscore, emdash, endash ] }; key { [ BackSpace, VoidSymbol, Delete, VoidSymbol ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ a, A, ae, AE ] }; key { [ z, Z, Acircumflex, Aring ] }; key { [ e, E, ecircumflex, Ecircumflex ] }; key { [ r, R, registered, currency ] }; key { [ t, T, dagger, trademark ] }; key { [ y, Y, Uacute, Ydiaeresis ] }; key { [ u, U, masculine, ordfeminine ] }; key { [ i, I, icircumflex, idiaeresis ] }; key { [ o, O, oe, OE ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [dead_circumflex,dead_diaeresis,ocircumflex, Ocircumflex ] }; key { [ dollar, asterisk, EuroSign, yen ] }; key { [ Caps_Lock ] }; key { [ q, Q, doubledagger, Greek_OMEGA ] }; key { [ s, S, Ograve, Greek_SIGMA ] }; key { [ d, D, Greek_delta, Greek_DELTA ] }; key { [ f, F, VoidSymbol, periodcentered ] }; key { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: ligature fi,fl key { [ h, H, Igrave, Icircumflex ] }; key { [ j, J, Idiaeresis, Iacute ] }; key { [ k, K, Egrave, Ediaeresis ] }; key { [ l, L, notsign, bar ] }; key { [ m, M, mu, Oacute ] }; key { [ ugrave, percent, Ugrave, 0x1002030 ] }; key { [ dead_grave, sterling, at, numbersign ] }; key { [ Return ] }; key { [ less, greater, lessthanequal, greaterthanequal ] }; key { [ w, W, guilsinglleft, guilsinglright ] }; // MISSING: half-guillemot (single angle bracket) key { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK: similarequal; MISSING: extra-slanted slash key { [ c, C, copyright, cent ] }; key { [ v, V, diamond, radical ] }; // CHECK diamond key { [ b, B, ssharp, integral ] }; key { [ n, N, dead_tilde, asciitilde ] }; key { [ comma, question, infinity, questiondown ] }; key { [ semicolon, period, ellipsis, periodcentered ] }; key { [ colon, slash, division, backslash ] }; key { [ equal, plus, notequal, plusminus ] }; key { [ space, space, nobreakspace, nobreakspace ] }; include "level3(ralt_switch)" }; xkb_symbols "nodeadkeys" { include "macintosh_vndr/fr(extended)" name[Group1]= "France - Mac, no dead keys"; key { [ ampersand, 1, VoidSymbol, acute ] }; // MISSING: Apple key { [asciicircum,diaeresis,ocircumflex, Ocircumflex ] }; key { [ grave, sterling, at, numbersign ] }; key { [ n, N, asciitilde, dead_tilde ] }; }; PK(f[P symbols/macintosh_vndr/dknu[default partial alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple en_US // keyboard and a Danish keyboard with dead key support // and all of ISO-8859-1 characters available. include "latin" name[Group1]= "Denmark - Mac"; key { [ onehalf, section, threequarters, paragraph ]}; key { [ less, greater, backslash, notsign ]}; key { [ space, space, nobreakspace, nobreakspace ]}; key { [ 1, exclam, exclamdown, onesuperior ]}; key { [ 2, quotedbl, at, twosuperior ]}; key { [ 3, numbersign, sterling, threesuperior ]}; key { [ 4, EuroSign, dollar, onequarter ]}; key { [ 5, percent, NoSymbol, cent ]}; key { [ 6, ampersand, yen, NoSymbol ]}; key { [ 7, slash, braceleft, division ]}; key { [ 8, parenleft, bracketleft, guillemotleft ]}; key { [ 9, parenright, bracketright, guillemotright ]}; key { [ 0, equal, braceright, degree ]}; key { [ plus, question, plusminus, questiondown ]}; key { [ dead_acute, dead_grave, bar, brokenbar ]}; key { [ c, C, copyright, NoSymbol ]}; key { [ comma, semicolon, dead_cedilla, dead_ogonek ]}; key { [ period, colon, periodcentered, dead_abovedot ]}; key { [ minus, underscore, hyphen, macron ]}; key { [ a, A, ordfeminine, masculine ]}; key { [ d, D, eth, ETH ]}; key { [ ae, AE ]}; key { [ oslash, Ooblique ]}; key { [ e, E, EuroSign, cent ]}; key { [ r, R, registered, NoSymbol ]}; key { [ t, T, thorn, THORN ]}; key { [ i, I, NoSymbol, NoSymbol ]}; key { [ o, O, oe, OE ]}; key { [ aring, Aring ]}; key { [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ]}; key { [ apostrophe, asterisk, dead_doubleacute, multiply ]}; include "eurosign(e)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "macintosh_vndr/dk(basic)" name[Group1]= "Denmark - Mac, no dead keys"; key { [ acute, grave, bar, ogonek ] }; key { [ diaeresis, asciicircum, asciitilde, dead_macron ] }; }; partial alphanumeric_keys xkb_symbols "macbookpro" { include "level3(win_switch)" include "macintosh_vndr/dk(basic)" name[Group1]= "Denmark - Mac, MacBook Pro"; key { [apostrophe, asterisk, at, at ] }; key { [ dollar, section, dollar, dollar ] }; }; PK(f[Њ̏symbols/macintosh_vndr/denu[// olh@suse.de very close to MacOS map default partial alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple US/ASCII // keyboard and a simple German keyboard. include "latin" name[Group1]= "Germany - Mac"; key { [ dead_circumflex, degree, notsign ] }; key { [ 1, exclam, exclamdown, at ] }; key { [ 2, quotedbl, twosuperior ] }; key { [ 3, section, threesuperior,sterling ] }; key { [ 4, dollar, onequarter, currency ] }; key { [ 5, percent, bracketleft ] }; key { [ 6, ampersand, bracketright ] }; key { [ 7, slash, bar, backslash ] }; key { [ 8, parenleft, braceleft, asciitilde ] }; key { [ 9, parenright, braceright ] }; key { [ 0, equal, braceright, degree ] }; key { [ ssharp, question, backslash, questiondown ] }; key { [ dead_acute, dead_grave, dead_cedilla ] }; key { [ q, Q, guillemotleft,guillemotright ] }; key { [ e, E, EuroSign ] }; key { [ r, R, registered ] }; key { [ t, T ] }; key { [ z, Z ] }; key { [ u, U, diaeresis, Aacute ] }; key { [ i, I, slash, Ucircumflex ] }; key { [ o, O, oslash, Ooblique ] }; key { [ udiaeresis, Udiaeresis, periodcentered, degree ] }; key { [ plus, asterisk, asciitilde ] }; key { [ a, A, aring, Aring ] }; key { [ f, F ] }; key { [ g, G, copyright ] }; key { [ h, H, ordfeminine ] }; key { [ l, L, at ] }; key { [ odiaeresis, Odiaeresis, dead_acute ] }; key { [ adiaeresis, Adiaeresis, dead_circumflex ] }; key { [ less, greater, bar ] }; key { [ y, Y, guillemotleft,less ] }; key { [ n, N, asciitilde ] }; key { [ m, M, mu ] }; key { [ comma, semicolon ] }; key { [ period, colon, periodcentered, division ] }; key { [ minus, underscore ] }; key { [ numbersign, apostrophe, dead_grave ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { // modify the default German layout to use Sun dead keys include "macintosh_vndr/de(basic)" name[Group1]= "Germany - Mac, Sun dead keys"; key { [ SunFA_Circum, degree, notsign ] }; key { [ SunFA_Acute, SunFA_Grave, SunFA_Cedilla ] }; key { [ udiaeresis, Udiaeresis, SunFA_Diaeresis ] }; key { [ plus, asterisk, SunFA_Tilde, dead_macron ] }; key { [ odiaeresis, Odiaeresis, SunFA_Acute ] }; key { [ adiaeresis, Adiaeresis, SunFA_Circum ] }; key { [ numbersign, acute, SunFA_Grave ] }; }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "macintosh_vndr/de(Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // modify the default German layout to not have any dead keys include "macintosh_vndr/de(basic)" name[Group1]= "Germany - Mac, no dead keys"; key { [ asciicircum, degree, notsign ] }; key { [ acute, grave, cedilla ] }; key { [ udiaeresis, Udiaeresis, diaeresis ] }; key { [ plus, asterisk, asciitilde, macron ] }; key { [ odiaeresis, Odiaeresis, acute ] }; key { [ adiaeresis, Adiaeresis, asciicircum ] }; key { [ numbersign, apostrophe, grave ] }; }; PK(f[J0--symbols/macintosh_vndr/gbnu[partial default alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple en_US // keyboard and a very simple U.K. keyboard layout include "macintosh_vndr/us" name[Group1]= "United Kingdom - Mac"; key { [ 2, at, EuroSign ] }; key { [ 3, sterling, numbersign ] }; key { [ section, plusminus ] }; key { [ grave, asciitilde ] }; include "level3(ralt_switch)" }; PK(f[%ٷ%%symbols/macintosh_vndr/senu[partial default alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple en_US // keyboard and a very simple Swedish(Sweden) keyboard. include "latin" name[Group1]= "Sweden - Mac"; key { [ section, degree ] }; key { [ 1, exclam, copyright, exclamdown ] }; key { [ 2, quotedbl, at, oneeighth ] }; key { [ 3, numbersign, sterling, yen ] }; key { [ 4, currency, dollar, cent ] }; key { [ 6, ampersand ] }; key { [ 7, slash, bar, backslash ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ comma, semicolon ] }; key { [ 0, equal ] }; key { [ plus, question ] }; key { [ acute, grave ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ aring, Aring ] }; key { [ diaeresis, asciicircum, asciitilde ] }; key { [ apostrophe, asterisk, at ] }; key { [ less, greater, bar, brokenbar ] }; include "kpdl(comma)" include "eurosign(e)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "macintosh_vndr/se(basic)" // for consistent naming name[Group1]= "Sweden - Mac, no dead keys"; }; PK(f[dv symbols/macintosh_vndr/itnu[default xkb_symbols "extended" { name[Group1]= "Italy - Mac"; key { [ less, greater ] }; key { [ at, numbersign, periodcentered ] }; key { [ ampersand, 1, guillemotleft,guillemotright ] }; key { [ quotedbl, 2 ] }; key { [ apostrophe, 3 ] }; key { [ parenleft, 4, braceleft, bracketleft ] }; key { [ ccedilla, 5, Ccedilla, Iacute ] }; key { [ egrave, 6, paragraph, periodcentered] }; key { [ parenright, 7, braceright, bracketright ] }; key { [ sterling, 8, infinity ] }; key { [ agrave, 9, acute, Ocircumflex ] }; key { [ eacute, 0, grave, Oacute ] }; key { [ minus, underscore ] }; key { [ equal, plus, notequal, plusminus ] }; key { [ q, Q ] }; key { [ z, Z ] }; key { [ e, E, EuroSign ] }; key { [ r, R, registered ] }; key { [ t, T ] }; key { [ y, Y, Uacute, ydiaeresis ] }; key { [ u, U ] }; key { [ i, I, icircumflex, idiaeresis ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ igrave, asciicircum ] }; key { [ dollar, asterisk ] }; key { [ section, degree, at, numbersign ] }; key { [ a, A, aring, Aring ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H, Igrave, Icircumflex ] }; key { [ j, J, Idiaeresis, Iacute ] }; key { [ k, K, Egrave, Ediaeresis ] }; key { [ l, L, ssharp, bar ] }; key { [ m, M, mu, Oacute ] }; key { [ ugrave, percent, ae, AE ] }; key { [ w, W ] }; key { [ x, X ] }; key { [ c, C, copyright, copyright ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N, dead_tilde ] }; key { [ comma, question, questiondown ] }; key { [ semicolon, period ] }; key { [ colon, slash, bar, backslash ] }; key { [ ograve, exclam, exclamdown ] }; include "kpdl(dot)" include "level3(ralt_switch)" }; PK(f[5ؖsymbols/macintosh_vndr/jpnu[// JIS symbol mapping for Apple Aluminium // (Damien Ciabrini ) // // The JIS version of the Aluminium Keyboard is made of // QWERTY-like map for the latin part // PC98-like map for the kana part // EISU and KANA keys found on other Apple keyboards partial default alphanumeric_keys xkb_symbols "usmac" { name[Group1] = "Japan - Macintosh, US map"; include "jp(common)" key { [ KP_Separator ] }; key { [ yen, bar ] }; replace key { [ 0 ] }; replace key { [ underscore ] }; replace key { [ Caps_Lock ] }; }; partial alphanumeric_keys xkb_symbols "mac" { name[Group1] = "Japan - Macintosh"; include "jp(kana)" replace key { [ Caps_Lock ] }; }; partial alphanumeric_keys xkb_symbols "alujiskeys" { // On JIS USB keyboard, EISU and KANA replace Hangul and Hanja // see keycodes macintosh(jisevdev) replace key { [ Hiragana_Katakana ] }; replace key { [ Eisu_toggle ] }; }; PK(f[AqTyysymbols/macintosh_vndr/latamnu[partial default alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple mac_US // keyboard and a very simple Spanish keyboard. include "latin" name[Group1]= "Latin American - Mac"; key { [ bracketleft, bracketright, braceleft, braceright ] }; key { [ less, greater, bracketleft, braceleft ] }; key { [ 1, exclamdown ] }; key { [ 2, exclam, at, oneeighth ] }; key { [ 3, numbersign, guillemotleft, guillemotright ] }; key { [ 4, dollar, yen, Icircumflex ] }; key { [ 5, percent ] }; key { [ 6, slash, backslash, Idiaeresis ] }; key { [ 7, ampersand, bar, Iacute ] }; key { [ 8, asterisk, degree ] }; key { [ 9, parenleft, sterling, Ocircumflex ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus, plusminus ] }; key { [ dead_grave, degree ] }; key { [ dead_acute, dead_diaeresis, bar ] }; key { [ comma, questiondown ] }; key { [ period, question ] }; key { [ ccedilla, Ccedilla ] }; key { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; include "level3(ralt_switch)" }; PK(f[?6s||symbols/macintosh_vndr/usnu[// symbols definition for a Macintosh "Extended" keyboard default xkb_symbols "extended" { name[Group1]= "USA"; key { [ Escape ] }; key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ backslash, bar ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; key { [ space ] }; include "eurosign(e)" include "keypad(overlay)" key { [ equal ] }; }; hidden xkb_symbols "oldmac" { include "macintosh_vndr/us(extended)" // Begin "Function" section key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; key { [ F11 ] }; key { [ F12 ] }; key { [ Print ] }; key { [ Scroll_Lock ] }; key { [ Pause ] }; // End "Function" section // Begin "Editing" section key { [ Insert ] }; key { [ Home ] }; key { [ Prior ] }; key { [ Delete ] }; key { [ End ] }; key { [ Next ] }; key { [ Up ] }; key { [ Left ] }; key { [ Down ] }; key { [ Right ] }; // End "Editing" section key { [ BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ Return ] }; key { [ Caps_Lock ] }; key { [ Num_Lock, Pointer_EnableKeys ] }; // Begin "Modifier" section key { [ Shift_L ] }; key { [ Shift_R ] }; key { [ Control_L ] }; key { [ Control_R ] }; key { [ Alt_L, Meta_L ] }; key { [ Alt_R, Meta_R ] }; key { [ Super_L ] }; key { [ Super_R ] }; // End "Modifier" section // begin modifier mappings modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L, Control_R }; modifier_map Mod2 { Num_Lock }; // Fake keys for virtual<->real modifiers mapping key { [ ISO_Level3_Shift ] }; key { [ Mode_switch ] }; modifier_map Mod5 { , }; key { [ NoSymbol, Alt_L ] }; modifier_map Mod1 { , }; key { [ NoSymbol, Meta_L ] }; modifier_map Mod1 { }; key { [ NoSymbol, Super_L ] }; modifier_map Mod4 { }; key { [ NoSymbol, Hyper_L ] }; modifier_map Mod4 { }; // end modifier mappings }; PK(f[KqRRsymbols/macintosh_vndr/isnu[// // This file describes the differences between a Macintosh US Extended // keymap and an Icelandic keyboard layout in the style of Mac OS and Mac OS X // // Copyright (C) 2004, 2006 Ævar Arnfjörð Bjarmason // // Permission to use, copy, modify, distribute, and sell this software and its // documentation for any purpose is hereby granted without fee, provided that // the above copyright notice appear in all copies and that both that // copyright notice and this permission notice appear in supporting // documentation. // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR // OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR // OTHER DEALINGS IN THE SOFTWARE. // // Except as contained in this notice, the name of a copyright holder shall // not be used in advertising or otherwise to promote the sale, use or // other dealings in this Software without prior written authorization of // the copyright holder. // // = HISTORY // * 2004-09-28: // Initial cleanroom writing of the keymap, I just booted Mac OS X, opened // TextEdit.app and wrote down what the value produced by each key was when I // pressed it, a for a, A for shift + a, å for lalt + a etc and made the // keymap from that information // // * 2006-01-14: // Revised the comments in the file // // = NOTES // * 20 characters in this keymap have no named character defined in // include/keysymdef.h and as a result their Unicode code points in // hexadecimal are listed here, these can be generated with the following // perl command: // $ perl -CA -e 'printf "U%x\n", ord shift' Æ // and converted back like: // $ perl -CO -le '$_=shift;s/[^a-f0-9]//ig;print chr hex' Uc6 // * The Apple logo appears twice on this keymap like the Mac OS and Mac OS X // keymaps. In the MacRoman encoding it has the code point 0xF0 (240) but it // has no assigned code point in Unicode, the code point Apple uses for it is // U+F8FF (63743) which is in the BMP's Private Use Area (U+E000–U+F8FF) // * This keymap has only been tested on a PowerBook6,5 (iBook G4) but it // should work on other Apple laptop models which use the same keyboard // layout. It will probably work on standard sized keyboards with little or // no modification but it might not support them fully, please report if // you're able to get it running with such a keyboard partial default alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Iceland - Mac"; //-- Row 5 (E) --// key { [ sterling, section, UF8FF, apostrophe ] }; key { [ 1, exclam, exclamdown, VoidSymbol ] }; key { [ 2, quotedbl, at, VoidSymbol ] }; key { [ 3, numbersign, U2122, sterling ] }; key { [ 4, dollar, U00A2, EuroSign ] }; key { [ 5, percent, U2030, infinity ] }; key { [ 6, ampersand, asciicircum, U2044 ] }; key { [ 7, slash, backslash, U00F7 ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ 0, equal, U2260, U2248 ] }; key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; key { [ minus, underscore, endash, emdash ] }; //-- Row 4 (D) --// key { [ q, Q, paragraph, VoidSymbol ] }; key { [ w, W, U2211, VoidSymbol ] }; key { [ e, E, dead_grave, VoidSymbol ] }; key { [ r, R, registered, VoidSymbol ] }; key { [ t, T, degree, VoidSymbol ] }; key { [ y, Y, yen, VoidSymbol ] }; key { [ u, U, dead_diaeresis, VoidSymbol ] }; key { [ i, I, U0131, U00AA ] }; key { [ o, O, dead_circumflex,U00BA ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [ eth, Eth, U201e, U201c ] }; key { [ apostrophe, question, questiondown, U00B7 ] }; //-- Row 3 (C) --// key { [ a, A, aring, Aring ] }; key { [ s, S, ssharp, abovedot ] }; key { [ d, D, U2202, U2DA ] }; key { [ f, F, U192, macron ] }; key { [ g, G, copyright, breve ] }; key { [ h, H, bar, VoidSymbol ] }; key { [ j, J, U2206, U2dd ] }; key { [ k, K, U00AC, VoidSymbol ] }; key { [ l, L, U2026, caron ] }; key { [ ae, AE, oe, OE ] }; key { [ dead_acute, dead_diaeresis, U201A, U2018 ] }; key { [ plus, asterisk, U2022, plusminus ] }; //-- Row 2 (B) --// key { [ less, greater, section, UF8FF ] }; key { [ z, Z, U3A9, VoidSymbol ] }; key { [ x, X, asciitilde, VoidSymbol ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, U221A, U25CA ] }; key { [ b, B, U222B, VoidSymbol ] }; key { [ n, N, dead_tilde, VoidSymbol ] }; key { [ m, M, U00B5, VoidSymbol ] }; key { [ comma, semicolon, lessthanequal, guillemotleft ] }; key { [ period, colon, greaterthanequal,guillemotright ] }; key { [ thorn, Thorn, U2019, U201d ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "macintosh_vndr/is(basic)" // for consistent naming name[Group1]= "Iceland - Mac, no dead keys"; }; PK(f[. symbols/khnu[// // khmer unicode keyboard for XFree86 4.3 or XOrg // (might work with older versions, not tested) // // layout defined by National Information Communications Technology Development Authority (NiDA) // http://www.nida.gov.kh // // version: 1.0.1 // // date: 14.09.2005 // // author: Jens Herden (jens at khmeros.info) // // // understanding the symbols: // // 0x100yyyy = unicode, yyyy is hexcode // codes that are not assigned in unicode (0x10017fb-0x10017ff), // are used to make compositions for special vowels // // voidsymbol = no symbol for this combination // // all other symbol are defined in: /usr/X11/include/X11/keysymdef.h // but with a leading 'XK_' // default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Khmer (Cambodia)"; // there are four levels defined: // // normal shift right-alt right-alt + shift // // keys: `1234567890-=\ key { [ guillemotleft, guillemotright, 0x100200d, voidsymbol ] }; key { [ 0x10017e1, exclam, 0x100200c, 0x10017f1 ] }; key { [ 0x10017e2, 0x10017d7, at, 0x10017f2 ] }; key { [ 0x10017e3, quotedbl, 0x10017d1, 0x10017f3 ] }; key { [ 0x10017e4, 0x10017db, dollar, 0x10017f4 ] }; key { [ 0x10017e5, percent, EuroSign, 0x10017f5 ] }; key { [ 0x10017e6, 0x10017cd, 0x10017d9, 0x10017f6 ] }; key { [ 0x10017e7, 0x10017d0, 0x10017da, 0x10017f7 ] }; key { [ 0x10017e8, 0x10017cf, asterisk, 0x10017f8 ] }; key { [ 0x10017e9, parenleft, braceleft, 0x10017f9 ] }; key { [ 0x10017e0, parenright, braceright, 0x10017f0 ] }; key { [ 0x10017a5, 0x10017cc, x, voidsymbol ] }; key { [ 0x10017b2, equal, 0x10017ce, voidsymbol ] }; key { [ 0x10017ae, 0x10017ad, backslash, voidsymbol ] }; // keys: qwertyuiop[] key { [ 0x1001786, 0x1001788, 0x10017dc, 0x10019e0 ] }; key { [ 0x10017b9, 0x10017ba, 0x10017dd, 0x10019e1 ] }; key { [ 0x10017c1, 0x10017c2, 0x10017af, 0x10019e2 ] }; key { [ 0x100179a, 0x10017ac, 0x10017ab, 0x10019e3 ] }; key { [ 0x100178f, 0x1001791, 0x10017a8, 0x10019e4 ] }; key { [ 0x1001799, 0x10017bd, voidsymbol, 0x10019e5 ] }; key { [ 0x10017bb, 0x10017bc, voidsymbol, 0x10019e6 ] }; key { [ 0x10017b7, 0x10017b8, 0x10017a6, 0x10019e7 ] }; key { [ 0x10017c4, 0x10017c5, 0x10017b1, 0x10019e8 ] }; key { [ 0x1001795, 0x1001797, 0x10017b0, 0x10019e9 ] }; key { [ 0x10017c0, 0x10017bf, 0x10017a9, 0x10019ea ] }; key { [ 0x10017aa, 0x10017a7, 0x10017b3, 0x10019eb ] }; // keys: asdfghjkl;' key { [ 0x10017b6, 0x10017ff, voidsymbol, 0x10019ec ] }; key { [ 0x100179f, 0x10017c3, voidsymbol, 0x10019ed ] }; key { [ 0x100178a, 0x100178c, voidsymbol, 0x10019ee ] }; key { [ 0x1001790, 0x1001792, voidsymbol, 0x10019ef ] }; key { [ 0x1001784, 0x10017a2, voidsymbol, 0x10019f0 ] }; key { [ 0x10017a0, 0x10017c7, voidsymbol, 0x10019f1 ] }; key { [ 0x10017d2, 0x1001789, voidsymbol, 0x10019f2 ] }; key { [ 0x1001780, 0x1001782, 0x100179d, 0x10019f3 ] }; key { [ 0x100179b, 0x10017a1, voidsymbol, 0x10019f4 ] }; key { [ 0x10017be, 0x10017fe, 0x10017d6, 0x10019f5 ] }; key { [ 0x10017cb, 0x10017c9, 0x10017c8, 0x10019f6 ] }; // keys: zxcvbnm,./ key { [ 0x100178b, 0x100178d, voidsymbol, 0x10019f7 ] }; key { [ 0x1001781, 0x1001783, voidsymbol, 0x10019f8 ] }; key { [ 0x1001785, 0x1001787, voidsymbol, 0x10019f9 ] }; key { [ 0x100179c, 0x10017fd, voidsymbol, 0x10019fa ] }; key { [ 0x1001794, 0x1001796, 0x100179e, 0x10019fb ] }; key { [ 0x1001793, 0x100178e, voidsymbol, 0x10019fc ] }; key { [ 0x1001798, 0x10017c6, voidsymbol, 0x10019fd ] }; key { [ 0x10017fc, 0x10017fb, comma, 0x10019fe ] }; key { [ 0x10017d4, 0x10017d5, period, 0x10019ff ] }; key { [ 0x10017ca, question, slash, voidsymbol ] }; key { [ 0x100200b, space, 0x10000a0, voidsymbol ] }; key { [ Alt_R ] }; // third level with right-Alt include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "kh(basic)" // Contact Walter@laptop.org key { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] }; key { [ 0x10017e1, 0x100200c, exclam, 0x10017f1 ] }; key { [ 0x10017e3, 0x10017d1, quotedbl, 0x10017f3 ] }; key { [ 0x10017e5, EuroSign, percent, 0x10017f5 ] }; key { [ 0x10017b2, 0x10017ce, equal, voidsymbol ] }; //language key include "group(olpc)" }; PK(f[иsymbols/level5nu[// These partial variants assign ISO_Level5_Shift to various XKB keycodes // so that the fifth shift level can be reached. // The right Ctrl key (while pressed) chooses the fifth shift level. partial modifier_keys xkb_symbols "rctrl_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] }; include "level5(modifier_mapping)" }; // The Less/Greater key (while pressed) chooses the fifth shift level. partial modifier_keys xkb_symbols "lsgt_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] }; include "level5(modifier_mapping)" }; // The right Alt key (while pressed) chooses the fifth shift level. partial modifier_keys xkb_symbols "ralt_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] }; include "level5(modifier_mapping)" }; // The CapsLock key (while pressed) chooses the fifth shift level. partial modifier_keys xkb_symbols "caps_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] }; include "level5(modifier_mapping)" }; // Ensure a mapping to a real modifier for LevelFive. partial modifier_keys xkb_symbols "modifier_mapping" { replace key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] }; modifier_map Mod3 { }; }; // This adds the definitions needed to create a level5-lock behaviour, using // the real modifier NumLock as a lock indicator. // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK // See also: compat/level5(level5_lock) partial modifier_keys xkb_symbols "lock" { key.type[Group1] = "ONE_LEVEL"; include "level5(modifier_mapping)" replace key { vmods = NumLock, symbols[Group1] = [ NoSymbol ], actions[Group1] = [ SetMods(modifiers=NumLock) ] }; modifier_map Mod2 { }; }; // The following modifier keys are used to switch to the third shift level // and to set a corresponding lock, implemented as NumLock. partial modifier_keys xkb_symbols "lsgt_switch_lock" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "lwin_switch_lock" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "ralt_switch_lock" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "rwin_switch_lock" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "lsgt_switch_lock_cancel" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "lwin_switch_lock_cancel" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "ralt_switch_lock_cancel" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; partial modifier_keys xkb_symbols "rwin_switch_lock_cancel" { include "level5(lock)" key { type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] }; }; PK(f[y◲ symbols/mnnu[// based on: // Mongolian standard keyboard // Author Sanlig Badral // 2002/12/7 Version 1.0 default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Mongolian"; key { [ equal, plus, degree ] }; key { [ 1, numerosign, multiply ] }; key { [ 2, minus, division ] }; key { [ 3, quotedbl, plusminus ] }; key { [ 4, U20ae, notsign ] }; // Tugrik sign key { [ 5, colon, NoSymbol ] }; key { [ 6, period, notequal ] }; key { [ 7, underscore, ampersand ] }; key { [ 8, comma, asterisk ] }; key { [ 9, percent, bracketleft ] }; key { [ 0, question, bracketright ] }; key { [ Cyrillic_ie, Cyrillic_IE, X ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA, L ] }; key { [ Cyrillic_ef, Cyrillic_EF, apostrophe ] }; key { [ Cyrillic_tse, Cyrillic_TSE, grave ] }; key { [ Cyrillic_u, Cyrillic_U, EuroSign ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE, registered ] }; key { [ Cyrillic_e, Cyrillic_E, trademark ] }; key { [ Cyrillic_en, Cyrillic_EN, yen ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, doublelowquotemark ] }; key { [ Cyrillic_sha, Cyrillic_SHA, leftdoublequotemark ] }; key { [ Cyrillic_u_straight,Cyrillic_U_straight,rightdoublequotemark] }; key { [ Cyrillic_ze, Cyrillic_ZE, NoSymbol ] }; key { [ Cyrillic_ka, Cyrillic_KA, braceleft ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, braceright ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, mu ] }; key { [ Cyrillic_yeru, Cyrillic_YERU, sterling ] }; key { [ Cyrillic_be, Cyrillic_BE, dollar ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar, rightdoublequotemark ] }; key { [ Cyrillic_a, Cyrillic_A, Cyrillic_yeru ] }; key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_YERU ] }; key { [ Cyrillic_er, Cyrillic_ER, Cyrillic_e ] }; key { [ Cyrillic_o, Cyrillic_O, Cyrillic_E ] }; key { [ Cyrillic_el, Cyrillic_EL, numerosign ] }; key { [ Cyrillic_de, Cyrillic_DE, section ] }; key { [ Cyrillic_pe, Cyrillic_PE, ellipsis ] }; key { [ exclam, bar, bar ] }; key { [ parenleft, parenright, NoSymbol ] }; key { [ Cyrillic_ya, Cyrillic_YA, emdash ] }; key { [ Cyrillic_che, Cyrillic_CHE, endash ] }; key { [ Cyrillic_io, Cyrillic_IO, copyright ] }; key { [ Cyrillic_es, Cyrillic_ES, NoSymbol ] }; key { [ Cyrillic_em, Cyrillic_EM, NoSymbol ] }; key { [ Cyrillic_i, Cyrillic_I, less ] }; key { [ Cyrillic_te, Cyrillic_TE, greater ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, guillemotleft ] }; key { [ Cyrillic_ve, Cyrillic_VE, guillemotright ] }; key { [ Cyrillic_yu, Cyrillic_YU, backslash ] }; key { [ space, space, nobreakspace ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc" { // Contact: Walter Bender include "mn(basic)" key { [ 7, semicolon, ampersand ] }; key { [ backslash, bar, exclam ] }; include "group(olpc)" }; PK(f[*ó symbols/aplnu[// EXTRAS: // // APL Keyboard Layouts // This file supports: // - The Sharp APL for Unix (SAX) layout // - The IBM APL2 layout // - The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout // - The Dyalog APL layout - with additions for box drawing and commands // Unicode APL table: http://aplwiki.com/UnicodeAplTable // ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf (appendix A) // Generic Unicode stuff: http://www.fileformat.info/info/unicode/category/index.htm // Tim Nelson (this file's creator) says: // This file doesn't deal with all the combining stuff -- I'm not an APL programmer, // and am not quite sure what's needed here. However, it may be possible to get this // working with dead keys and the like. Patches gratefully accepted. // [Geoff Streeter: What has been done to is to support all of the APL overstrikes in the compose table] // Some of the shift-key assignments may differ from the APL tradition. If // that's not considered acceptable, it should be possible to remap the // shift keys. I have striven, however, to ensure that the use of shift keys // in these maps is at least self-consistent. // I'm assuming that this will be used with another keyboard layout (ie. for // your language), with a special shift key to use these maps. // 2018-07-02 added some codes to the Unicode Private Use page. // 2017-02-27 changed ¤ to ⌺, added ⊆ // 2012-09-26 changed "overbar" to macron which fixed some strangeness in xterm // 2011-12-22 Geoff Streeter: geoff@dyalog.com // Added the Dyalog support. // Corrected (what he thinks) are some errors. // Resolving the confusion between APL's and Unicode's concept of Left and Right tacks. // Unsure about some of the inheritance from APL2 into APLPLUS. Patches welcome. // Complied with freedesktop.org requirement that the keycodes be in sorted order. Which // leads to the bottom to top (roughly) definitions. // default layout seems to have to be the first one. Choosing the basic Dyalog layout is definitely // better than using the "common" one. Choosing the complete Dyalog layout is not useful to non-Dyalog // users. default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]="APL"; include "apl(dyalog_base)" // forward reference good APL keyboard without Dyalogs extras }; // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // │ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ │ ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ ┃ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ │ │ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ │ │ ┃ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial hidden alphanumeric_keys xkb_symbols "common" { key { [ U2282 ] }; // Z: ⊂ -- Subset Of key { [ U2283 ] }; // X: ⊃ -- Superset Of key { [ U2229 ] }; // C: ∩ -- Intersection key { [ U222A ] }; // V: ∪ -- Union key { [ U22A5 ] }; // B: ⊥ -- Up Tack key { [ U22A4 ] }; // N: ⊤ -- Down Tack key { [ U007C ] }; // M: | -- Vertical Line key { [ U237A ] }; // A: ⍺ -- APL Functional Symbol Alpha key { [ U2308 ] }; // S: ⌈ -- Left Ceiling key { [ U230A ] }; // D: ⌊ -- Left Floor key { [ underscore ] }; // F: key { [ U2207 ] }; // G: ∇ -- Nabla key { [ U2206 ] }; // H: ∆ -- Increment key { [ U2218 ] }; // J: ∘ -- Ring Operator key { [ apostrophe ] }; // K: key { [ U2395 ] }; // L: ⎕ -- APL Functional Symbol Quad key { [ question ] }; // Q: key { [ U2375 ] }; // W: ⍵ -- APL Functional Symbol Omega key { [ U220A ] }; // E: ∊ -- Small Element Of key { [ U2374 ] }; // R: ⍴ -- APL Functional Symbol Rho key { [ asciitilde ] }; // T: key { [ U2191 ] }; // Y: ↑ -- Upwards Arrow key { [ U2193 ] }; // U: ↓ -- Downwards Arrow key { [ U2373 ] }; // I: ⍳ -- APL Functional Symbol Iota key { [ U25CB ] }; // O: ○ -- White Circle key { [ asterisk ] }; // P: * -- asterisk key { [ U2190 ] }; // [: ← -- Leftwards Arrow key { [ diaeresis ] }; key { [ macron ] }; // ¯ -- Macron key { [ less ] }; key { [ U2264 ] }; // ≤ -- Less-than Or Equal To key { [ equal ] }; key { [ U2265 ] }; // ≥ -- Greater-than Or Equal To key { [ greater ] }; key { [ U2260 ] }; // ≠ -- Not Equal To key { [ U2228 ] }; // ∨ -- Logical Or key { [ U2227 ] }; // ∧ -- Logical And }; // Keys common to a number of keyboards that allow normal language usage alongside APL // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ │ │ │ │ │ │ │ │ │ ⍱ │ ⍲ │ │ ⌹ ┃ ┃ // │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ × │ ÷ ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ │ │ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ │ │ ┃ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "unified" { name[Group1]= "APL Keyboard Symbols: Unified Layout"; include "apl(common)" key { [ U2192 ] }; // ]: → -- Rightwards Arrow key { [ NoSymbol, U2371 ] }; // 9: ⍱ -- APL Functional Symbol Down Caret Tilde key { [ NoSymbol, U2372 ] }; // 0: ⍲ -- APL Functional Symbol Up Caret Tilde key { [ U00D7 ] }; // -: × -- Multiplication Sign key { [ U00F7, U2339 ] }; // =: ÷ ⌹ -- Division Sign / APL Functional Symbol Quad Divide key { [ U22C4 ] }; // `: ⋄ -- Diamond Operator }; // Layout: http://www.wickensonline.co.uk/apl-unicomp.html // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ │ ¡ │ │ │ ¢ │ │ │ │ ⍂ │ ⍱ │ ⍲ │ ≡ │ ⌹ ┃ ┃ // │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ × │ ÷ ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ ¿ │ ⌽ │ ⍷ │ │ ⍉ │ │ │ ⍸ │ ⍥ │ ⍣ │ │ ┃ ┃ // ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ ⊖ │ │ │ ⍫ │ ⍒ │ ⍋ │ ⍤ │ ⌻ │ ⍞ │ │ │ ⍀ ┃ ┃ // ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ ⊢ │ ⊣ │ ⍝ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ │ │ │ ⍝ │ │ ⍎ │ ⍕ │ ⌶ │ ⍪ │ ⍙ │ ⌿ ┃ ┃ // ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ ⍞ │ ⍎ │ ⍕ ┃ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "sax" { name[Group1]= "APL Keyboard Symbols: sax"; include "apl(unified)" key { [ NoSymbol, U235D ] }; // C: ⍝ -- APL Functional Symbol Up Shoe Jot key { [ NoSymbol, U234E ] }; // B: ⍎ -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack") key { [ NoSymbol, U2355 ] }; // N: ⍕ -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack") key { [ NoSymbol, U2336 ] }; // M: ⌶ -- APL Functional Symbol I-Beam key { [ U235E, U236A ] }; // ,: ⍞ ⍪ -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar key { [ U234E, U2359 ] }; // .: ⍎ ⍙ -- [See B key] / APL Functional Symbol Delta Underbar key { [ U2355, U233F ] }; // /: ⍕ ⌿ -- [See N key] / APL Functional Symbol Slash Bar key { [ NoSymbol, U2296 ] }; // A: ⊖ -- Circled Minus key { [ NoSymbol, U236B ] }; // F: ⍫ -- APL Functional Symbol Del Tilde key { [ NoSymbol, U2352 ] }; // G: ∇ ⍒ -- APL Functional Symbol Del Stile key { [ NoSymbol, U234B ] }; // H: ∆ ⍋ -- APL Functional Symbol Delta Stile key { [ NoSymbol, U2364 ] }; // J: ⍤ -- APL Functional Symbol Jot Diaeresis key { [ NoSymbol, U233B ] }; // K: ⌻ key { [ NoSymbol, U235E ] }; // L: ⍞ -- APL Functional Symbol Quote Quad key { [ U22A2 ] }; // ;: ⊢ -- Right Tack key { [ U22A3 ] }; // ': ⊣ -- Left Tack key { [ NoSymbol, U00BF ] }; // Q: ¿ -- Inverted Question Mark key { [ NoSymbol, U233D ] }; // W: ⌽ -- APL Functional Symbol Circle Stile key { [ NoSymbol, U2377 ] }; // E: ⍷ -- APL Functional Symbol Epsilon Underbar key { [ NoSymbol, U2349 ] }; // T: ⍉ -- APL Functional Symbol Circle Backslash key { [ NoSymbol, U2378 ] }; // I: ⍸ -- APL Functional Symbol Iota Underbar key { [ NoSymbol, U2365 ] }; // O: ⍥ -- APL Functional Symbol Circle Diaeresis key { [ NoSymbol, U235F ] }; // P: ⍟ -- APL Functional Symbol Circle Star key { [ NoSymbol, U00A1 ] }; // 1: ¡ -- Inverted Exclamation Mark key { [ NoSymbol, cent ] }; // 4: key { [ NoSymbol, U2342 ] }; // 8: ⍂ -- APL Functional Symbol Quad Backslash key { [ NoSymbol, U2261 ] }; // -: ≡ -- Identical To key { [ U235D, U2340 ] }; // \: ⍝ ⍀ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar }; // Layout: http://www.wickensonline.co.uk/apl-unicomp.html // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ⍂ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃ // │ ⌻ │ │ │ │ │ │ │ │ │ │ │ - │ ÷ ┃ ┃ // │ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ + │ × ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ⍞ │ ⍙ ┃ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ → │ ⍸ ┃ ┃ // ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ ⌷ ┃ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ ⍎ │ ⍕ │ ⍤ ┃ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ ( │ ) │ ⍷ ┃ ┃ // ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ [ │ ] │ ≡ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ ⍝ │ ⍀ │ ⌿ ┃ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ ; │ : │ \ ┃ ┃ // ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ , │ . │ / ┃ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "apl2" { name[Group1]= "APL Keyboard Symbols: IBM APL2"; include "apl(common)" // The first column is NoSymbol because it inherits. The second is NoSymbol because those keys don't do anything // AFS - short for APL Functional Symbol key { [ comma, semicolon, U235D ] }; // ,: ⍝ -- AFS Up Shoe Jot key { [ period, colon, U2340 ] }; // .: ⍀ -- AFS Backslash Bar key { [ slash, backslash, U233F ] }; // /: ⌿ -- AFS Slash Bar key { [ bracketleft, parenleft, U234E ] }; // ;: ⍎ -- [See B key in SAX layout] key { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout] key { [ NoSymbol, U2192, U235E ] }; // [: (←) → ⍞ -- Rightwards Arrow / AFS Quote Quad key { [ U2337, U2378, U2359 ] }; // ]: ⌷ ⍸ ⍙ -- AFS Squish Quad / AFS Iota Underbar / AFS Delta Underbar key { [ NoSymbol, NoSymbol, U2336 ] }; // 1: ⌶ -- AFS I-Beam key { [ NoSymbol, NoSymbol, U236B ] }; // 2: ⍫ -- AFS Del Tilde key { [ NoSymbol, NoSymbol, U2353 ] }; // 3: ⍒ -- AFS Del Stile key { [ NoSymbol, NoSymbol, U234B ] }; // 4: ⍋ -- AFS Delta Stile key { [ NoSymbol, NoSymbol, U233D ] }; // 5: ⌽ -- AFS Circle Stile key { [ NoSymbol, NoSymbol, U2349 ] }; // 6: ⍉ -- AFS Circle Backslash key { [ NoSymbol, NoSymbol, U2296 ] }; // 7: ⊖ -- Circled Minus key { [ NoSymbol, NoSymbol, U235F ] }; // 8: ⍟ -- AFS Circle Star key { [ NoSymbol, NoSymbol, U2371 ] }; // 9: ⍱ -- AFS Down Caret Tilde key { [ NoSymbol, NoSymbol, U2372 ] }; // 0: ⍲ -- AFS Up Caret Tilde key { [ plus, minus, exclam ] }; // -: key { [ U00D7, U00F7, U2339 ] }; // =: × ÷ ⌹ -- Multiplication Sign / Division Sign / AFS Quad Divide key { [ U2261, U2377, U2364 ] }; // \: ≡ ⍷ ⍤ -- Identical To / AFS Epsilon Underbar / AFS Jot Diaeresis key { [ NoSymbol, U233B, U2342 ] }; // `: ⌻ ⍂ -- include "level3(ralt_switch)" }; // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ⍪ │ ≡ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃ // │ ⋄ │ │ │ │ │ │ │ │ │ │ │ - │ ÷ ┃ ┃ // │ $ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ + │ × ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ⍞ │ ⍬ ┃ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ → │ ⍸ ┃ ┃ // ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ ⍎ │ ⍕ │ ⍙ ┃ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ ( │ ) │ ⊣ ┃ ┃ // ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ [ │ ] │ ⊢ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ ⍝ │ ⍀ │ ⌿ ┃ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ ; │ : │ \ ┃ ┃ // ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ , │ . │ / ┃ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "aplplusII" { name[Group1]= "APL Keyboard Symbols: Manugistics APL*PLUS II"; // AFS - short for APL Functional Symbol include "apl(apl2)" key { [ bracketleft, parenleft, U234E ] }; // ;: ⍎ -- [See B key in SAX layout] key { [ bracketright, parenright, U2355 ] }; // ': ⍕ -- [See N key in SAX layout] key { [ U2190, NoSymbol, U235E ] }; // [: ← ⍞ -- Leftwards Arrow / AFS Quote Quad key { [ U2192, NoSymbol, U236C ] }; // ]: → ⍬ -- Rightwards Arrow / AFS Zilde key { [ NoSymbol, NoSymbol, U2261 ] }; // 1: ≡ -- Identical To key { [ U22A2, U22A3, U2359 ] }; // \: ⊢ ⊣ ⍙ -- Left Tack / Right Tack / AFS Delta Underbar key { [ dollar, U22C4, U236A ] }; // `: ⋄ ⍪ -- Diamond Operator / AFS Comma Bar }; // MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts // I didn't do the old-style MicroAPL layout; patches gratefully accepted // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ⍞ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃ // │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ × │ ÷ ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ⍇ │ ⍈ ┃ ┃ // ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ ≡ │ ≢ │ ⊣ ┃ ┃ // ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ ⍎ │ ⍕ │ ⊢ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ ⍪ │ ⍤ │ ┃ ┃ // ┃ ┃ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ ⍝ │ ⍀ │ ⌿ ┃ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "aplx" { name[Group1]= "APL Keyboard Symbols: APLX Unified APL Layout"; include "apl(unified)" key { [ U235D, U236A ] }; // ,: ⍝ ⍪ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar key { [ U2340, U2364 ] }; // .: ⍀ ⍤ -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis key { [ U233F ] }; // /: ⌿ -- APL Functional Symbol Slash Bar key { [ U234E, U2261 ] }; // ;: ⍎ ≡ -- [See B key in SAX layout] / Identical To key { [ U2355, U2262 ] }; // ': ⍕ ≢ -- [See N key in SAX layout] / Not Identical To key { [ NoSymbol, U2347 ] }; // [: ⍇ -- Box With Left Arrow key { [ NoSymbol, U2348 ] }; // ]: ⍈ -- Box With Right Arrow key { [ NoSymbol, U2336 ] }; // 1: ⌶ -- APL Functional Symbol I-Beam key { [ NoSymbol, U236B ] }; // 2: ⍫ -- APL Functional Symbol Del Tilde key { [ NoSymbol, U2353 ] }; // 3: ⍒ -- APL Functional Symbol Del Stile key { [ NoSymbol, U234B ] }; // 4: ⍋ -- APL Functional Symbol Delta Stile key { [ NoSymbol, U233D ] }; // 5: ⌽ -- APL Functional Symbol Circle Stile key { [ NoSymbol, U2349 ] }; // 6: ⍉ -- APL Functional Symbol Circle Backslash key { [ NoSymbol, U2296 ] }; // 7: ⊖ -- Circled Minus key { [ NoSymbol, U235F ] }; // 8: ⍟ -- APL Functional Symbol Circle Star key { [ NoSymbol, exclam ] }; // -: key { [ U22A2, U22A3 ] }; // \: ⊢ ⊣ -- Right Tack / Left Tack key { [ NoSymbol, U235E ] }; // `: ⍞ -- APL Functional Symbol Quote Quad }; // APL language support for the Dyalog keyboard. // Dyalog Ltd sell this keyboard with APL engravings. The current model is // engraved on a Cherry G80. Base languages for US, UK and DK are availible. // Geoff Streeter, Dyalog Ltd. 2007-09-03 // geoff@dyalog.com // extended for APL special actions 2008-09-09 // add variant 2010-11-26 // made BKSL and LTGT keys the same to remove a compatibility issue with the UK physical keyboard // add key (quad equals) 2013-03-12 // add currency 2014-05-23 // add parallel 2014-05-23 // add circle jot 2014-05-23 // add t diaeresis 2014-05-23 // add del diaerisis 2014-05-23 // add quad query 2014-05-23 // add dagger 2014-05-23 // correct spelling of key name LTGT→LSGT 2016-05-26 // add enclose underbar 2017-02-27 // add alpha underbar 2019-03-22 // add omega underbar 2019-03-22 // The intention is that this keyboard layout overlays a base keyboard that provides // the alphabet and similar. If this keyboard is placed as the 2nd layout then it can // be reached with a latching shift to increase group by one. partial hidden alphanumeric_keys xkb_symbols "dyalog_base" { // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ⌺ │ ⌶ │ ⍫ │ ⍒ │ ⍋ │ ⌽ │ ⍉ │ ⊖ │ ⍟ │ ⍱ │ ⍲ │ ! │ ⌹ ┃ ┃ // │ ⋄ │ ¨ │ ¯ │ < │ ≤ │ = │ ≥ │ > │ ≠ │ ∨ │ ∧ │ × │ ÷ ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ ⍰ │ ⍹ │ ⍷ │ ⌾ │ ⍨ │ │ │ ⍸ │ ⍥ │ ⍣ │ ⍞ │ ⍬ ┃ ┃ // ┃ ┃ ? │ ⍵ │ ∊ │ ⍴ │ ~ │ ↑ │ ↓ │ ⍳ │ ○ │ * │ ← │ → ┃ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ ⍶ │ │ │ │ ⍢ │ │ ⍤ │ ⌸ │ ⌷ │ ≡ │ ≢ │ ⊣ ┃ ┃ // ┃ ┃ ⍺ │ ⌈ │ ⌊ │ _ │ ∇ │ ∆ │ ∘ │ ' │ ⎕ │ ⍎ │ ⍕ │ ⊢ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ ⊣ │ ⊆ │ │ │ │ ⍭ │ ⍡ │ ∥ │ ⍪ │ ⍙ │ ⍠ ┃ ┃ // ┃ ┃ ⊢ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ⊥ │ ⊤ │ | │ ⍝ │ ⍀ │ ⌿ ┃ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ key { [ U2282, U2286 ] }; // subset of, enclose if simple key { [ U2283 ] }; // superset of key { [ U2229 ] }; // intersection key { [ U222A ] }; // union key { [ U22a5, U236d ] }; // up tack, stile tide key { [ U22a4, U2361 ] }; // down tack, down tack diaeresis key { [ bar, U2225 ] }; // vertical line, parallel to key { [ U235d, U236a ] }; // up shoe jot, comma bar key { [ U2340, U2359 ] }; // backslash bar, delta underbar key { [ U233f, U2360 ] }; // slash bar, quad colon key { [ U237a, U2376 ] }; // alpha, alpha underscore key { [ U2308 ] }; // left ceiling key { [ U230a ] }; // left floor key { [ underscore ] }; // low line key { [ U2207, U2362 ] }; // nabla, del diaerisis key { [ U2206 ] }; // increment key { [ U2218, U2364 ] }; // ring operator, jot diaeresis key { [ apostrophe, U2338 ] }; // quote, key key { [ U2395, U2337 ] }; // quad, squish quad key { [ U234e, U2261 ] }; // up tack jot, identical to key { [ U2355, U2262 ] }; // down tack jot, not identical to key { [ question, U2370 ] }; // ?, quad question key { [ U2375, U2379 ] }; // omega, omega underscore key { [ U220a, U2377 ] }; // small element of, epsilon underbar key { [ U2374, U233E ] }; // rho, circle jot key { [ asciitilde, U2368 ] }; // tilde, tilde diaeresis key { [ U2191 ] }; // upwards arrow key { [ U2193 ] }; // downwards arrow key { [ U2373, U2378 ] }; // iota, iota underbar key { [ U25cb, U2365 ] }; // circle, circle diaeresis key { [ asterisk, U2363 ] }; // asterisk, star diaeresis key { [ U2190, U235e ] }; // left arrow, quote quad key { [ U2192, U236c ] }; // right arrow, zilde key { [ diaeresis, U2336 ] }; // i-beam key { [ macron, U236B ] }; // deltilde key { [ less, U2352 ] }; // downgrade key { [ U2264, U234b ] }; // lesseq upgrade key { [ equal, U233d ] }; // circlestile key { [ U2265, U2349 ] }; // greatereq circleslope key { [ greater, U2296 ] }; // circlebar key { [ U2260, U235f ] }; // notequal, circlestar key { [ U2228, U2371 ] }; // logical or, down caret tilde key { [ U2227, U2372 ] }; // logical and, up caret tilde key { [ multiply, exclam ] }; key { [ division, U2339 ] }; // quad divide key { [ U22a2, U22a3 ] }; // right tack, left tack key { [ U22a2, U22a3 ] }; // right tack, left tack key { [ U22c4, U233a ] }; // diamond, quad diamond }; partial hidden keypad_keys xkb_symbols "dyalog_box" { // ┌───┬───┬───┬───┐ // │ │ │ │ │ // ├───┼───┼───┼───┤ // │ ┌ │ ┬ │ ┐ │ │ // ├───┼───┼───┤ │ // │ ├ │ ┼ │ ┤ │ │ // ├───┼───┼───┼───┤ // │ └ │ ┴ │ ┘ │ │ // ├───┴───┼───┤ │ // │ ─ │ │ │ │ // └───────┴───┴───┘ key { [ U2500 ] }; // box drawing light horizontal key { [ U2514 ] }; // box drawing light up and right key { [ U2534 ] }; // box drawing light up and horizontal key { [ U2518 ] }; // box drawing light up and left key { [ U251c ] }; // box drawing light vertical and right key { [ U253c ] }; // box drawing light vertical and horizontal key { [ U2524 ] }; // box drawing light vertical and left key { [ U250c ] }; // box drawing light down and right key { [ U252c ] }; // box drawing light down and horizontal key { [ U2510 ] }; // box drawing light down and left key { [ U2502 ] }; // box drawing light vertical }; partial hidden xkb_symbols "dyalog_codes" { // Layout of private use area for this. In the style of the Unicode book // // APL special actions F800-F88F // // │F800 F810 F820 F830 F840 F850 F860 F870 F880 // ├────┬────┬────┬────┬────┬────┬────┬────┬────┐ // 0│QT │LL │BK │FX │Rc │BP │PA │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // 1│ER │HO │ZM │LN │LW │AB │SA │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // 2│TB │CT │SC │MC │RW │HT │RZ │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // 3│BT │PT │RP │MR │Lw │TH │AC │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // 4│EP │IN │NX │JP │Rw │RM │MA │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // 5│UC │II │PV │D1 │Uc │CB │OF │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // 6│DC │DI │RT │D2 │Dc │PR │FS │ │TO │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // 7│RC │DP │RA │D3 │Ll │SR │FA │ │MO │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // 8│LC │DB │ED │D4 │Rl │IS │TT │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // 9│US │RD │TC │D5 │Ul │TL │FT │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // A│DS │TG │NB │U1 │Dl │UA │PL │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // B│RS │DK │NS │U2 │Us │AO │CA │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // C│LS │OP │ST │U3 │Ds │DO │ │ │ │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // D│UL │CP │EN │U4 │DD │GL │ │ │S1 │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // E│DL │MV │IF │U5 │DH │CH │ │ │S2 │ // ├────┼────┼────┼────┼────┼────┼────┼────┼────┤ // F│RL │FD │HK │Lc │BH │PU │ │ │OS │ // └────┴────┴────┴────┴────┴────┴────┴────┴────┘ // // APL Function Keys F700-F7FF // // │F700 ... ... F7F0 // ├────┬────┬────┬────┬....┬────┬────┬────┬────┐ // 0│F0 │F16 │F32 │F48 │ │F192│F208│F224│F240│ // . // . // . // F│F15 │F31 │F47 │F63 │ │F207│F223│F239│F255│ // └────┴────┴────┴────┴....┴────┴────┴────┴────┘ // // whilst these locations are defined. Dyalog's "aplkeys/xterm" file copes with // normal function keys from the base keyboard rather than this overlay // ┌─────┐ ┌───┐ // │ CA │ │ZM │ // │ QT │ │ZM │ // └─────┘ └───┘ // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ CB ┃ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ BP ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ BT ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ TB ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ TC ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ED ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ MO ┃ ┃ ┃ ┃ // ┃ ┃ ┃ ┃ TO ┃ ┃ ┃ ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ key { [ Uf850, Uf855 ] }; // BP CB key { [ Uf800, Uf86b ] }; // QT CA key { [ Uf821, Uf821 ] }; // ZM, ZM put this on both, the unshifted one sometimes gets lost key { [ Uf828, Uf829 ] }; // ED, TC key { [ Uf886, Uf887 ] }; // TO, MO key { [ Uf802, Uf803 ] }; // TB, BT // ┌─────┐ // │ │ // │ BK │ // ┌────┼─────┼────┐ // │ BH │ │ RM │ // │ PV │ FD │ NX │ // └────┴─────┴────┘ key { [ Uf81f ] }; // FD key { [ Uf825, Uf84f ] }; // PV, BH key { [ Uf824, Uf854 ] }; // NX, RM key { [ Uf820 ] }; // BK // ┌───┬───┬───┐ // │PT │LL │UL │ // │CP │LS │US │ // ├───┼───┼───┤ // │CT │RL │DL │ // │DK │RS │DS │ // └───┴───┴───┘ key { [ Uf81b, Uf812 ] }; // DK, CT key { [ Uf80b, Uf80f ] }; // RS, RL key { [ Uf80c, Uf810 ] }; // LS, LL key { [ Uf81d, Uf813 ] }; // CP, PT key { [ Uf80a, Uf80e ] }; // DS, DL key { [ Uf809, Uf80d ] }; // US, UL // ┌───┬───┬───┬───┐ // │ │RD │TG │LN │ // ├───┼───┼───┼───┤ // │ │ │ │ │ // ├───┼───┼───┤TL │ // │ │ │ │ │ // ├───┼───┼───┼───┤ // │ │ │ │ │ // ├───┴───┼───┤ │ // │ │ │ │ // └───────┴───┴───┘ key { [ Uf859 ] }; // TL key { [ Uf819 ] }; // RD key { [ Uf81a ] }; // TG key { [ Uf831 ] }; // LN }; xkb_symbols "dyalog" { include "apl(dyalog_base)" include "apl(dyalog_box)" include "apl(dyalog_codes)" name[Group1] = "Dyalog APL complete"; }; PK(f[pEJEJ symbols/lvnu[// Latvian keymap version 1.1 // Copyright (C) Dmitry Golubev , 2003-2004 // // Reworked to get rid of dead_keys (use of which in this case // is a dirty hack). It is now not dependent on locale settings // and GTK_IM_MODULES in Gnome. The map is also providing some of // ISO9995-3 alternate characters. Note that this version works // correctly under Gnome 2.6. This is to be put into symbols/ // directory, or somewhere else. // // Permission to use, copy, modify, distribute, and sell this software and its // documentation for any purpose is hereby granted without fee, provided that // the above copyright notice appear in all copies and that both that // copyright notice and this permission notice appear in supporting // documentation, and that the name of the copyright holder(s) not be used in // advertising or publicity pertaining to distribution of the software without // specific, written prior permission. The copyright holder(s) makes no // representations about the suitability of this software for any purpose. It // is provided "as is" without express or implied warranty. // // THE COPYRIGHT HOLDER(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO // EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. // Modified by Aldis Berjoza , 12 april 2011 // Changes: // * Added Latvian Ergonomic, Latvian Adapted and Latvian Modern variants // Author of this work is Valdis Vītoliņš // http://odo.lv/LatvianKeyboard // http://odo.lv/Recipes/LatvianKeyboard#HErgonomiskC481stastatC5ABrasuzlikC5A1anauzLinuxdatora%22 // * Added guillemotleft, leftdoublequotemark, guillemotright, // rightdoublequotemark to Latvian modern layout for AD11 and AD12 // * Added US-Dvorac compatible Latvian layouts // * Added programmer US-Dvorac compatible Latvian layouts // * Added US-Colemak compatible Latvian layouts // * Reformatted layouts //============================================================================ // Latvian QWERTY layout // http://en.wikipedia.org/wiki/QWERTY // default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { name[Group1]= "Latvian"; key {[ grave, asciitilde, acute, asciitilde ]}; key {[ 1, exclam, onesuperior, exclamdown ]}; key {[ 2, at, twosuperior, oneeighth ]}; key {[ 3, numbersign, threesuperior, sterling ]}; key {[ 4, dollar, EuroSign, cent ]}; key {[ 5, percent, onehalf, threeeighths ]}; key {[ 6, asciicircum, threequarters, fiveeighths ]}; key {[ 7, ampersand, braceleft, seveneighths ]}; key {[ 8, asterisk, bracketleft, trademark ]}; key {[ 9, parenleft, bracketright, plusminus ]}; key {[ 0, parenright, braceright, degree ]}; key {[ minus, underscore, backslash, questiondown ]}; key {[ equal, plus, endash, emdash ]}; key {[ q, Q, q, Q ]}; key {[ w, W, w, W ]}; key {[ e, E, emacron, Emacron ]}; key {[ r, R, rcedilla, Rcedilla ]}; key {[ t, T, t, T ]}; key {[ y, Y, y, Y ]}; key {[ u, U, umacron, Umacron ]}; key {[ i, I, imacron, Imacron ]}; key {[ o, O, omacron, Omacron ]}; key {[ p, P, p, P ]}; key {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]}; key {[ bracketright, braceright, guillemotright, rightdoublequotemark ]}; key {[ a, A, amacron, Amacron ]}; key {[ s, S, scaron, Scaron ]}; key {[ d, D, d, D ]}; key {[ f, F, f, F ]}; key {[ g, G, gcedilla, Gcedilla ]}; key {[ h, H, h, H ]}; key {[ j, J, j, J ]}; key {[ k, K, kcedilla, Kcedilla ]}; key {[ l, L, lcedilla, Lcedilla ]}; key {[ semicolon, colon, semicolon, colon ]}; key {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]}; key {[ z, Z, zcaron, Zcaron ]}; key {[ x, X, x, X ]}; key {[ c, C, ccaron, Ccaron ]}; key {[ v, V, v, V ]}; key {[ b, B, b, B ]}; key {[ n, N, ncedilla, Ncedilla ]}; key {[ m, M, m, M ]}; key {[ comma, less, horizconnector, multiply ]}; key {[ period, greater, periodcentered, division ]}; key {[ slash, question, slash, abovedot ]}; key {[ backslash, bar, grave, breve ]}; key {[ space, space, space, space ]}; include "level3(ralt_switch)" }; partial alphanumeric_keys modifier_keys xkb_symbols "apostrophe" { include "lv(basic)" name[Group1]= "Latvian (apostrophe)"; key {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]}; key {[space, space, apostrophe]}; modifier_map Mod5 { }; }; partial alphanumeric_keys modifier_keys xkb_symbols "tilde" { include "lv(basic)" name[Group1]= "Latvian (tilde)"; key {[ISO_Level3_Latch, asciitilde, grave, acute]}; key {[space, space, asciitilde]}; modifier_map Mod5 { }; }; partial alphanumeric_keys modifier_keys xkb_symbols "fkey" { include "lv(basic)" name[Group1]= "Latvian (F)"; key {[ISO_Level3_Latch, ISO_Level3_Latch, f, F]}; key {[space, space, f, F]}; modifier_map Mod5 { }; }; //============================================================================ // Latvian Adapted keyboard layout // http://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Adapted.png // // http://odo.lv/LatvianKeyboard // http://odo.lv/LatvianKeyboard5 // partial alphanumeric_keys modifier_keys xkb_symbols "adapted" { include "lv(basic)" name[Group1]= "Latvian (adapted)"; key {[ 2, Ccaron, at, twosuperior ]}; key {[ 3, ccaron, numbersign, threesuperior ]}; key {[ 4, Zcaron, dollar, EuroSign ]}; key {[ 5, zcaron, percent, onehalf ]}; key {[ scaron, Scaron, q, Q ]}; key {[ emacron, Emacron, w, W ]}; key {[ e, E, e, E ]}; key {[ amacron, Amacron, y, Y ]}; key {[ u, U, u, U ]}; key {[ i, I, i, I ]}; key {[ umacron, Umacron, bracketleft, braceleft ]}; key {[ ncedilla, Ncedilla, bracketright, braceright ]}; key {[ a, A, a, A ]}; key {[ s, S, s, S ]}; key {[ g, G, g, G ]}; key {[ k, K, k, K ]}; key {[ l, L, l, L ]}; key {[ imacron, Imacron, semicolon, colon ]}; key {[ z, Z, z, Z ]}; key {[ kcedilla, Kcedilla, x, X ]}; key {[ c, C, c, C ]}; key {[ n, N, n, N ]}; key {[ comma, gcedilla, less, multiply ]}; key {[ period, Gcedilla, greater, division ]}; key {[ lcedilla, Lcedilla, slash, question ]}; }; //============================================================================ // Latvian Ergonomic (ŪGJRMV) keyboard layout by Valdis Vītoliņš // http://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Ergonomic.png // // http://odo.lv/LatvianKeyboard // http://odo.lv/LatvianKeyboard5 // partial alphanumeric_keys modifier_keys xkb_symbols "ergonomic" { include "lv(apostrophe)" name[Group1]= "Latvian (ergonomic, ŪGJRMV)"; key {[ 2, at, gcedilla, Gcedilla ]}; key {[ minus, underscore, endash, emdash ]}; key {[ f, F, equal, plus ]}; key {[ umacron, Umacron, q, Q ]}; key {[ g, G, g, G ]}; key {[ j, J, j, J ]}; key {[ r, R, rcedilla, Rcedilla ]}; key {[ m, M, m, M ]}; key {[ v, V, w, W ]}; key {[ n, N, y, Y ]}; key {[ z, Z, z, Z ]}; key {[ emacron, Emacron, emacron, Emacron ]}; key {[ ccaron, Ccaron, ccaron, Ccaron ]}; key {[ zcaron, Zcaron, bracketleft, braceleft ]}; key {[ h, H, bracketright, braceright ]}; key {[ scaron, Scaron, scaron, Scaron ]}; key {[ u, U, u, U ]}; key {[ s, S, s, S ]}; key {[ i, I, i, I ]}; key {[ l, L, l, L ]}; key {[ d, D, d, D ]}; key {[ a, A, a, A ]}; key {[ t, T, t, T ]}; key {[ e, E, e, E ]}; key {[ c, C, c, C ]}; key {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]}; key {[ kcedilla, Kcedilla, slash, backslash ]}; key {[ gcedilla, Gcedilla, gcedilla, Gcedilla ]}; key {[ ncedilla, Ncedilla, ncedilla, Ncedilla ]}; key {[ b, B, x, X ]}; key {[ imacron, Imacron, imacron, Imacron ]}; key {[ k, K, k, K ]}; key {[ p, P, p, P ]}; key {[ o, O, omacron, Omacron ]}; key {[ amacron, Amacron, amacron, Amacron ]}; key {[ comma, semicolon, less, multiply ]}; key {[ period, colon, greater, division ]}; key {[ lcedilla, Lcedilla, question, slash ]}; }; //============================================================================ // Latvian Modern keyboard layout by Valdis Vītoliņš // http://odo.lv/xwiki/bin/download/Recipes/LatvianKeyboard/Modern.png // // http://odo.lv/LatvianKeyboard // http://odo.lv/LatvianKeyboard5 // partial alphanumeric_keys modifier_keys xkb_symbols "modern" { name[Group1]= "Latvian (modern)"; key {[ grave, asciitilde, acute, copyright ]}; key {[ 1, exclam, onesuperior, exclamdown ]}; key {[ 2, at, twosuperior, oneeighth ]}; key {[ 3, numbersign, threesuperior, sterling ]}; key {[ 4, dollar, EuroSign, cent ]}; key {[ 5, percent, onehalf, threeeighths ]}; key {[ 6, asciicircum, threequarters, fiveeighths ]}; key {[ 7, ampersand, braceleft, seveneighths ]}; key {[ 8, asterisk, bracketleft, trademark ]}; key {[ 9, parenleft, bracketright, plusminus ]}; key {[ 0, parenright, braceright, degree ]}; key {[ minus, underscore, backslash, questiondown ]}; key {[ equal, plus, endash, emdash ]}; key {[ emacron, Emacron, emacron, Emacron ]}; key {[ o, O, omacron, Omacron ]}; key {[ amacron, Amacron, amacron, Amacron ]}; key {[ p, P, question, P ]}; key {[ b, B, exclam, B ]}; key {[ j, J, emdash, J ]}; key {[ d, D, endash, D ]}; key {[ imacron, Imacron, imacron, Imacron ]}; key {[ l, L, lcedilla, Lcedilla ]}; key {[ g, G, gcedilla, Gcedilla ]}; Key {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]}; key {[ bracketright, braceright, guillemotright, rightdoublequotemark ]}; key {[ e, E, e, E ]}; key {[ u, U, umacron, Umacron ]}; key {[ a, A, a, A ]}; key {[ n, N, ncedilla, Ncedilla ]}; key {[ k, K, kcedilla, Kcedilla ]}; key {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]}; key {[ s, S, scaron, Scaron ]}; key {[ i, I, i, I ]}; key {[ t, T, t, T ]}; key {[ r, R, rcedilla, Rcedilla ]}; key {[ m, M, m, M ]}; key {[ slash, question, backslash, bar ]}; key {[ q, Q, q, Q ]}; key {[ x, X, q, Q ]}; key {[ z, Z, zcaron, Zcaron ]}; key {[ c, C, ccaron, Ccaron ]}; key {[ v, V, bar, V ]}; key {[ w, W, backslash, W ]}; key {[ f, F, period, F ]}; key {[ y, Y, U0233, U0232 ]}; key {[ h, H, U1E29, U1E28 ]}; key {[ comma, semicolon, less, multiply ]}; key {[ period, colon, greater, division ]}; key {[ space, space, apostrophe ]}; modifier_map Mod5 { }; include "level3(ralt_switch)" }; // EXTRAS: //============================================================================ // US Dvorak compatible Latvian layout // http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard // partial alphanumeric_keys modifier_keys xkb_symbols "dvorak" { name[Group1]= "Latvian (US Dvorak)"; key {[ asciitilde, grave, acute, asciitilde ]}; key {[ 1, exclam, onesuperior, exclamdown ]}; key {[ 2, at, twosuperior, oneeighth ]}; key {[ 3, numbersign, threesuperior, sterling ]}; key {[ 4, dollar, EuroSign, cent ]}; key {[ 5, percent, onehalf, threeeighths ]}; key {[ 6, asciicircum, threequarters, fiveeighths ]}; key {[ 7, ampersand, braceleft, seveneighths ]}; key {[ 8, asterisk, bracketleft, trademark ]}; key {[ 9, parenleft, bracketright, plusminus ]}; key {[ 0, parenright, braceright, degree ]}; key {[ bracketleft, braceleft, leftdoublequotemark, guillemotleft ]}; key {[ bracketright, braceright, rightdoublequotemark, guillemotright ]}; key {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]}; key {[ comma, less, guillemotleft, multiply ]}; key {[ period, greater, guillemotright, division ]}; key {[ p, P, p, P ]}; key {[ y, Y, y, Y ]}; key {[ f, F, f, F ]}; key {[ g, G, gcedilla, Gcedilla ]}; key {[ c, C, ccaron, Ccaron ]}; key {[ r, R, rcedilla, Rcedilla ]}; key {[ l, L, lcedilla, Lcedilla ]}; key {[ slash, question, slash, abovedot ]}; key {[ equal, plus, endash, emdash ]}; key {[ a, A, amacron, Amacron ]}; key {[ o, O, omacron, Omacron ]}; key {[ e, E, emacron, Emacron ]}; key {[ u, U, umacron, Umacron ]}; key {[ i, I, imacron, Imacron ]}; key {[ d, D, d, D ]}; key {[ h, H, h, H ]}; key {[ t, T, t, T ]}; key {[ n, N, ncedilla, Ncedilla ]}; key {[ s, S, scaron, Scaron ]}; key {[ minus, underscore, backslash, questiondown ]}; key {[ semicolon, colon, semicolon, colon ]}; key {[ q, Q, q, Q ]}; key {[ j, J, j, J ]}; key {[ k, K, kcedilla, Kcedilla ]}; key {[ x, X, x, X ]}; key {[ b, B, b, B ]}; key {[ m, M, m, M ]}; key {[ w, W, w, W ]}; key {[ v, V, v, V ]}; key {[ z, Z, zcaron, Zcaron ]}; key {[ backslash, bar, grave, breve ]}; key {[ space, space, space, space ]}; include "level3(ralt_switch)" }; partial alphanumeric_keys modifier_keys xkb_symbols "ykeydvorak" { include "lv(dvorak)" name[Group1]= "Latvian (US Dvorak, Y variant)"; key {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]}; key {[space, space, y, Y]}; modifier_map Mod5 { }; }; partial alphanumeric_keys modifier_keys xkb_symbols "minuskeydvorak" { include "lv(dvorak)" name[Group1]= "Latvian (US Dvorak, minus variant)"; key {[ISO_Level3_Latch, ISO_Level3_Latch, minus, underscore]}; key {[space, space, minus, underscore]}; modifier_map Mod5 { }; }; //============================================================================ // US Dvorak programmers layput compatible Latvian layout // http://www.kaufmann.no/roland/dvorak/ // partial alphanumeric_keys modifier_keys xkb_symbols "dvorakprogr" { include "lv(dvorak)" name[Group1]= "Latvian (programmer US Dvorak)"; key {[ dollar, asciitilde, EuroSign, cent ]}; key {[ ampersand, percent, acute, asciitilde ]}; key {[ bracketleft, 7, onesuperior, twosuperior ]}; key {[ braceleft, 5, guillemotleft, leftdoublequotemark ]}; key {[ braceright, 3, guillemotright, rightdoublequotemark ]}; key {[ parenleft, 1, onehalf, threeeighths ]}; key {[ equal, 9, threequarters, fiveeighths ]}; key {[ asterisk, 0, degree, copyright ]}; key {[ parenright, 2, endash, emdash ]}; key {[ plus, 4, plusminus, section ]}; key {[ bracketright, 6, registered, trademark ]}; key {[ exclam, 8, exclam, exclamdown ]}; key {[ numbersign, grave, Greek_alpha, Greek_beta ]}; key {[ semicolon, colon, semicolon, colon ]}; key {[ at, asciicircum, at, asciicircum ]}; key {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]}; include "level3(ralt_switch)" }; partial alphanumeric_keys modifier_keys xkb_symbols "ykeydvorakprogr" { include "lv(dvorakprogr)" name[Group1]= "Latvian (programmer US Dvorak, Y variant)"; key {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]}; key {[space, space, y, Y]}; modifier_map Mod5 { }; }; partial alphanumeric_keys modifier_keys xkb_symbols "minuskeydvorakprogr" { include "lv(dvorakprogr)" name[Group1]= "Latvian (programmer US Dvorak, minus variant)"; key {[ISO_Level3_Latch, ISO_Level3_Latch, minus, underscore]}; key {[space, space, minus, underscore]}; modifier_map Mod5 { }; }; //============================================================================ // Colemak compatible Latvian layout // http://colemak.com/ // partial alphanumeric_keys modifier_keys xkb_symbols "colemak" { include "lv(basic)" name[Group1]= "Latvian (US Colemak)"; key {[ f, F, f, F ]}; key {[ p, P, p, P ]}; key {[ g, G, gcedilla, Gcedilla ]}; key {[ j, J, j, J ]}; key {[ l, L, lcedilla, Lcedilla ]}; key {[ u, U, umacron, Umacron ]}; key {[ y, Y, y, Y ]}; key {[ semicolon, colon, semicolon, colon ]}; key {[ r, R, rcedilla, Rcedilla ]}; key {[ s, S, scaron, Scaron ]}; key {[ t, T, t, T ]}; key {[ d, D, d, D ]}; key {[ n, N, ncedilla, Ncedilla ]}; key {[ e, E, emacron, Emacron ]}; key {[ i, I, imacron, Imacron ]}; key {[ o, O, omacron, Omacron ]}; key {[ k, K, kcedilla, Kcedilla ]}; include "level3(ralt_switch)" }; partial alphanumeric_keys modifier_keys xkb_symbols "apostrophecolemak" { include "lv(colemak)" name[Group1]= "Latvian (US Colemak, apostrophe variant)"; key {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]}; key {[space, space, apostrophe]}; modifier_map Mod5 { }; }; partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/lv(sun_type6)" }; PK(f[;5 5 symbols/gnnu[// based on us_intl keyboard map file and a Sinhala keyboard map // version 0.3 default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]="French (Guinea)"; key { [0x010007F1, 0x010007C1 ] }; key { [0x010007EB, 0x010007C2 ] }; key { [0x010007F5, 0x010007C3, numbersign, sterling ] }; key { [0x010007F4, 0x010007C4, 0x01002E1C, dollar ] }; key { [ parenleft, 0x010007C5, 0x01002E1D ] }; key { [ minus, 0x010007C6, bar ] }; key { [0x010007EC, 0x010007C7, grave ] }; key { [0x010007FA, 0x010007C8, backslash ] }; key { [0x010007ED, 0x010007C9, asciicircum, plusminus ] }; key { [0x010007EE, 0x010007C0, at, degree ] }; key { [parenright ] }; key { [ equal, plus, braceright ] }; key { [0x010007CA ] }; key { [0x010007E0, less ] }; key { [0x010007CD,0x010007CB ] }; key { [0x010007D9,0x010007DA ] }; key { [0x010007D5 ] }; key { [0x010007E6,0x010007E7 ] }; key { [0x010007CE,0x010007F6 ] }; key { [0x010007CC ] }; key { [0x010007D0,0x010007CF ] }; key { [0x010007D4 ] }; key { [0x010007F3 ] }; key { [ dollar, sterling, currency ] }; key { [0x010007EB ] }; key { [0x010007DB ] }; key { [0x010007D8 ] }; key { [0x010007DD ] }; key { [0x010007DC,0x010007F7 ] }; key { [0x010007E4 ] }; key { [0x010007D6,0x010007E8 ] }; key { [0x010007DE ] }; key { [0x010007DF,0x010007EA ] }; key { [0x010007E1 ] }; key { [0x010007EF, 0x010007F8, percent ] }; key { [0x010007EC, asciitilde, notsign ] }; key { [0x010007D1, asterisk ] }; key { [0x010007E5 ] }; key { [0x0100060C ] }; key { [0x010007D7,0x010007E9 ] }; key { [0x010007E2 ] }; key { [0x010007D3 ] }; key { [0x010007E3,0x010007D2 ] }; key { [0x010007F8,0x0100061F ] }; key { [0x0100061B ] }; key { [0x0100060C, slash ] }; key { [0x010007F9] }; include "level3(ralt_switch)" }; PK(f[./ symbols/hp_vndr/usnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // // US/ASCII layout for a HP non-PC keyboard xkb_symbols "hil" { include "us(basic)" // A few alphanumeric keys are different key { [ grave, asciitilde ]}; key { [ Shift_R ]}; key { [ Meta_L ]}; key { [ Meta_R ]}; // End alphanumeric section // Begin "Function" section key { [ Break ]}; key { [ Cancel ]}; key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ Menu ] }; key { [ hpSystem ]}; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ hpClearLine ]}; key { [ Clear ]}; key { [ F9 ] }; key { [ F10 ] }; key { [ F11 ] }; key { [ F12 ] }; // End "Function" section // Begin "Editing" section key { [ Execute, Print ]}; key { [ hpInsertLine ]}; key { [ hpDeleteLine ]}; key { [ hpInsertChar ]}; key { [ hpDeleteChar ]}; key { [ Home ] }; key { [ Prior ] }; key { [ Next ] }; key { [ Select ] }; key { [ Left ] }; key { [ Down ] }; key { [ Up ] }; key { [ Right ]}; // End "Editing" section // Begin "Keypad" section key { [ KP_Multiply ]}; key { [ KP_Divide ]}; key { [ KP_Add ]}; key { [ KP_Subtract ]}; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_Enter ]}; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_Separator ]}; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_Tab ]}; key { [ KP_0 ] }; key { [ KP_Decimal ] }; // End "Keypad" section modifier_map Shift { Shift_R }; modifier_map Mod1 { Meta_L, Meta_R }; modifier_map Mod2 { Alt_L }; modifier_map Mod3 { Mode_switch }; }; PK(f[YY symbols/ctrlnu[// Eliminate CapsLock, making it another Ctrl. partial modifier_keys xkb_symbols "nocaps" { replace key { [ Control_L, Control_L ] }; modifier_map Control { , }; }; // Make the left Ctrl key a left Meta. xkb_symbols "lctrl_meta" { replace key { [ Meta_L ] }; modifier_map Mod4 { }; }; // Swap the functions of the CapsLock key and the left Ctrl key. partial modifier_keys xkb_symbols "swapcaps" { replace key { [ Control_L ] }; replace key { [ Caps_Lock ] }; modifier_map Control { }; modifier_map Lock { }; }; // Swap the functions of the CapsLock key and the left Ctrl key, // but make the Ctrl key a 'Hyper' modifier partial modifier_keys xkb_symbols "swapcaps_hyper" { replace key { [ Control_L ] }; replace key { [ Hyper_L ] }; modifier_map Control { }; modifier_map Mod3 { }; }; // Move Ctrl to the leftmost key on the middle row and CapsLock to the // leftmost key on the bottom row. Only works if the geometry or keycodes // file has defined appropriate aliases for the keys in question. partial modifier_keys xkb_symbols "ac_ctrl" { replace key { [ Control_L ] }; replace key { [ Caps_Lock ] }; modifier_map Control { }; modifier_map Lock { }; }; // Move Ctrl to the leftmost key on the bottom row and CapsLock to the // leftmost key on the middle row. Only works if the geometry or keycodes // file has defined appropriate aliases for the keys in question. partial modifier_keys xkb_symbols "aa_ctrl" { replace key { [ Control_L ] }; replace key { [ Caps_Lock ] }; modifier_map Control { }; modifier_map Lock { }; }; // Right Ctrl functions as another right Alt. partial modifier_keys xkb_symbols "rctrl_ralt" { key { symbols[Group1]= [ Alt_R ] }; modifier_map Mod1{ }; }; // Menu key functions as another right Ctrl. partial modifier_keys xkb_symbols "menu_rctrl" { replace key { [ Control_R, Control_R ] }; modifier_map Control { Control_L, }; }; // Right Alt key functions as another right Ctrl. partial modifier_keys xkb_symbols "ralt_rctrl" { replace key { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Control_R, Control_R ] }; modifier_map Control { }; }; // Swap the functions of the left Alt key and the left Ctrl key. partial modifier_keys xkb_symbols "swap_lalt_lctl" { replace key { [ Control_L, Control_L ] }; replace key { [ Alt_L, Meta_L ] }; modifier_map Mod1 { }; modifier_map Control { }; }; // Swap the functions of the left Win key and the left Ctrl key. partial modifier_keys xkb_symbols "swap_lwin_lctl" { replace key { [ Control_L ] }; replace key { [ Super_L ] }; modifier_map Mod4 { }; modifier_map Control { }; }; // Swap the functions of the right Win key and the right Ctrl key. partial modifier_keys xkb_symbols "swap_rwin_rctl" { replace key { [ Control_R ] }; replace key { [ Super_R ] }; modifier_map Mod4 { }; modifier_map Control { }; }; // Map Ctrl to the left Alt key, Alt to the left Win key, // and Super to the left Ctrl key. partial modifier_keys xkb_symbols "swap_lalt_lctl_lwin" { replace key { [ Control_L, Control_L ] }; replace key { [ Alt_L, Meta_L ] }; replace key { [ Super_L ] }; modifier_map Mod1 { }; modifier_map Mod4 { }; modifier_map Control { }; }; PK(f[c symbols/eunu[// Based on // Copyright 2012 Steffen Bruentjen (eurkey (at) steffen dot bruentjen dot de) default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { name[Group1] = "EurKEY (US based layout with European letters)"; key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, at, ordfeminine, twosuperior ] }; key { [ 3, numbersign, masculine, threesuperior ] }; key { [ 4, dollar, sterling, yen ] }; key { [ 5, percent, EuroSign, cent ] }; key { [ 6, asciicircum, dead_circumflex, dead_caron ] }; key { [ 7, ampersand, dead_abovering, dead_macron ] }; key { [ 8, asterisk, doublelowquotemark, singlelowquotemark ] }; key { [ 9, parenleft, leftdoublequotemark, leftsinglequotemark ] }; key { [ 0, parenright, rightdoublequotemark, rightsinglequotemark ] }; key { [ minus, underscore, endash, emdash ] }; key { [ equal, plus, multiply, division ] }; key { [ q, Q, ae, AE ] }; key { [ w, W, aring, Aring ] }; key { [ e, E, ediaeresis, Ediaeresis ] }; key { [ r, R, yacute, Yacute ] }; key { [ t, T, thorn, Thorn ] }; key { [ y, Y, ydiaeresis, Ydiaeresis ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ i, I, idiaeresis, Idiaeresis ] }; key { [ o, O, odiaeresis, Odiaeresis ] }; key { [ p, P, oe, OE ] }; key { [ bracketleft, braceleft, guillemotleft, U2039 ] }; key { [ bracketright, braceright, guillemotright, U203A ] }; key { [ backslash, bar, notsign, brokenbar ] }; key { [ a, A, adiaeresis, Adiaeresis ] }; key { [ s, S, ssharp, section ] }; key { [ d, D, eth, Eth ] }; key { [ f, F, egrave, Egrave ] }; key { [ g, G, eacute, Eacute ] }; key { [ h, H, ugrave, Ugrave ] }; key { [ j, J, uacute, Uacute ] }; key { [ k, K, U0133, U0132 ] }; key { [ l, L, oslash, Oslash ] }; key { [ semicolon, colon, degree, periodcentered ] }; key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; key { [ z, Z, agrave, Agrave ] }; key { [ x, X, aacute, Aacute ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, igrave, Igrave ] }; key { [ b, B, iacute, Iacute ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, dead_greek, squareroot ] }; key { [ comma, less, ograve, Ograve ] }; key { [ period, greater, oacute, Oacute ] }; key { [ slash, question, questiondown, 0x1002026 ] }; include "level3(ralt_switch)" }; PK(f[~~ symbols/ngnu[default partial alphanumeric_keys xkb_symbols "basic" { include "us" name[Group1]= "English (Nigeria)"; key { [ 4, 0x010020A6, dollar, cent ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "yoruba" { include "ng(basic)" name[Group1]= "Yoruba"; key { [ 0x01001EB9, 0x01001EB8, q, Q ] }; key { [ 0x01001ECD, 0x01001ECC, x, X ] }; key { [ 0x01001E63, 0x01001E62, v, V ] }; }; partial alphanumeric_keys xkb_symbols "igbo" { include "ng(basic)" name[Group1]= "Igbo"; key { [ 0x01001ECB, 0x01001ECA, q, Q ] }; key { [ 0x01001E45, 0x01001E44, x, X ] }; key { [ 0x01001EE5, 0x01001EE4, semicolon, colon ] }; key { [ 0x01001ECD, 0x01001ECC, bracketleft, braceleft ] }; }; partial alphanumeric_keys xkb_symbols "hausa" { include "ng(basic)" name[Group1]= "Hausa (Nigeria)"; key { [ 0x01000071, 0x01000051, q, Q ] }; key { [ udiaeresis, Udiaeresis, w, W ] }; key { [ e, E, EuroSign, cent ] }; key { [ 0x010001B4, 0x010001B3,bracketleft, braceleft ] }; key { [ gcaron, Gcaron,bracketright, braceright] }; key { [ 0x01000257, 0x0100018A, d, D ] }; key { [ 0x01000131, 0x01000130, semicolon, colon ] }; key { [ 0x010001DD, 0x0100018E,apostrophe, quotedbl ] }; key { [ 0x01000272, 0x0100019D, z, Z ] }; key { [ ntilde, Ntilde, m, M ] }; key { [ ccedilla, Ccedilla, period, greater ] }; key { [ scedilla, Scedilla, slash, question ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { include "ng(basic)" // OLPC West Africa keyboard layout // See: http://wiki.laptop.org/go/Image:Nigeria-B3.png key { [ grave, asciitilde, exclamdown, exclamdown ] }; key { [ 1, exclam, sterling, sterling ] }; key { [ 2, at, EuroSign, EuroSign ] }; key { [ 3, numbersign, dollar, dollar ] }; key { [ 4, 0x10020A6, 0x1000301, 0x1000301 ] }; // Naira, combining acute key { [ 5, percent, 0x1000300, 0x1000300 ] }; // combining grave key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above key { [ 8, asterisk, 0x1000324, 0x1000324 ] }; // combining caron above key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above key { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above key { [ w, W, 0x1001EB9, 0x1001EB8 ] }; // E with dot below key { [ e, E, 0x10001DD, 0x100018E ] }; // reversed E key { [ r, R, 0x10001B4, 0x10001B3 ] }; // Y with hook key { [ t, T, 0x1000327, 0x1000327 ] }; // combining cedilla key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below key { [ p, P, 0x1000304, 0x1000304 ] }; // combining diaeresis below key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below key { [ a, A, Greek_iota, Greek_IOTA ] }; key { [ s, S, 0x1001E63, 0x1001E62 ] }; // S with dot below key { [ d, D, 0x1000257, 0x100018A ] }; // D with hook key { [ f, F, 0x1001E0D, 0x1001E0C ] }; // D with dot below key { [ g, G, 0x1000272, 0x100019D ] }; // N with left hook key { [ h, H, 0x1001EE5, 0x1001EE4 ] }; // U with dot below key { [ j, J, 0x1001ECB, 0x1001ECA ] }; // I with dot below key { [ k, K, 0x1000199, 0x1000198 ] }; // K with hook key { [ l, L, 0x1001E37, 0x1001E36 ] }; // L with dot below key { [ semicolon, colon, masculine, ordfeminine ] }; key { [ apostrophe, quotedbl, currency, currency ] }; key { [ backslash, bar, section, section ] }; key { [ c, C, 0x1000254, 0x1000186 ] }; // open O key { [ v, V, 0x100028B, 0x10001B2 ] }; // V with hook key { [ b, B, 0x1000253, 0x1000181 ] }; // B with hook key { [ n, N, eng, ENG ] }; key { [ m, M, 0x1001E45, 0x1001E44 ] }; // N with dot above key { [ comma, less, guillemotleft, guillemotleft ] }; key { [ period, greater, guillemotright, guillemotright ] }; key { [ slash, question, questiondown, questiondown ] }; key { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] }; include "level3(ralt_switch)" }; PK(f[?OO symbols/mmnu[default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Burmese"; key { [ U1050, U100E, grave, asciitilde ] }; key { [ U1041, U100D, 1, exclam ] }; key { [ U1042, U1052, 2, at ] }; key { [ U1043, U100B, 3, numbersign ] }; key { [ U1044, U1053, 4, dollar ] }; key { [ U1045, U1054, 5, percent ] }; key { [ U1046, U1055, 6, asciicircum ] }; key { [ U1047, U101B, 7, ampersand ] }; key { [ U1048, asterisk, 8, asterisk ] }; key { [ U1049, parenleft, 9, parenleft ] }; key { [ U1040, parenright, 0, parenright ] }; key { [ minus, underscore, minus, underscore ] }; key { [ equal, plus, equal, plus ] }; key { [ U1006, U1008, q, Q ] }; key { [ U1010, U101D, w, W ] }; key { [ U1014, U1023, e, E ] }; key { [ U1019, U104E, r, R ] }; key { [ U1021, U1024, t, T ] }; key { [ U1015, U104C, y, Y ] }; key { [ U1000, U1025, u, U ] }; key { [ U1004, U104D, i, I ] }; key { [ U101E, U103F, o, O ] }; key { [ U1005, U100F, p, P ] }; key { [ U101F, U1027, bracketleft, braceleft ] }; key { [ U1029, U102A, bracketright, braceright ] }; key { [ U1031, U1017, a, A ] }; key { [ U103B, U103E, s, S ] }; key { [ U102D, U102E, d, D ] }; key { [ U103A, U1039, f, F ] }; key { [ U102B, U103D, g, G ] }; key { [ U1037, U1036, h, H ] }; key { [ U103C, U1032, j, J ] }; key { [ U102F, U1012, k, K ] }; key { [ U1030, U1013, l, L ] }; key { [ U1038, U1002, semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ U1016, U1007, z, Z ] }; key { [ U1011, U100C, x, X ] }; key { [ U1001, U1003, c, C ] }; key { [ U101C, U1020, v, V ] }; key { [ U1018, U101A, b, B ] }; key { [ U100A, U1009, n, N ] }; key { [ U102C, U1026, m, M ] }; key { [ comma, U104A, comma, less ] }; key { [ period, U104B, period, greater ] }; key { [ slash, question ] }; key { [ U104F, U1051, backslash, bar ] }; }; partial alphanumeric_keys xkb_symbols "zawgyi" { name[Group1]="Burmese Zawgyi"; include "level3(ralt_switch)" // Alphanumeric section key { [ U1041, U100D, U100E, U106F ] }; key { [ U1042, U1091, U106D ] }; key { [ U1043, U100B, U106C ] }; key { [ U1044, dollar, U104E, U1023 ] }; key { [ U1045, percent, U1029, U102A ] }; key { [ U1046, asciicircum ] }; key { [ U1047, U101B, U1090 ] }; key { [ U1048, U1002, U1062 ] }; key { [ U1049, parenleft, U1026 ] }; key { [ U1040, parenright ] }; key { [ minus, underscore, U1097 ] }; key { [ equal, plus, U106E ] }; key { [ U1006, U103D, U1066, U1067 ] }; key { [ U1010, U107D, U1071, U1072 ] }; key { [ U1014, U108F, U1077, U1096 ] }; key { [ U1019, U107D, U107C ] }; key { [ U1021, U108A, U1024 ] }; key { [ U1015, U1094, U1078, U104C ] }; key { [ U1000, U1095, U1060, U1009 ] }; key { [ U1004, U1088, U104D, U106A ] }; key { [ U101E, U1025, U1086 ] }; key { [ U1005, U100F, U1065, U1070 ] }; key { [ U101F, U1027 ] }; key { [ U104F, U1092 ] }; key { [ U1031, U1017, U1008, U107A ] }; key { [ U103A, U103D ] }; key { [ U102D, U102E, U108E, U108C ] }; key { [ U1039, U1064 ] }; key { [ U102B, U103C ] }; key { [ U1037, U1036 ] }; key { [ U103B, U1032, U1083, U1084 ] }; key { [ U102F, U1033, U1089 ] }; key { [ U1030, U1034, U108D, U108B ] }; key { [ U1038, U105A ] }; key { [ U1012, U1013, U1075, U1076 ] }; key { [ U1016, U1007, U1079, U1068 ] }; key { [ U1011, U100C, U1073, U1074 ] }; key { [ U1001, U1003, U1061, U1063 ] }; key { [ U101C, U1020, U1085 ] }; key { [ U1018, U1080, U1093 ] }; key { [ U100A, U107F, U106B, U1069 ] }; key { [ U102C, U107E, U1081, U1082 ] }; key { [ U101A, U101D ] }; key { [ period, U1008 ] }; key { [ U104B, U104A ] }; key { [ U104F, U1092 ] }; // End alphanumeric section include "mm(tilde_switch)" }; // The following code creates the "Tilde key" phenomenon. partial modifier_keys xkb_symbols "tilde_switch" { key { symbols[Group1] = [ ISO_Level3_Latch, asciitilde, grave ] }; modifier_map Mod5 { ISO_Level3_Latch }; }; PK(f[gg symbols/sinu[default partial alphanumeric_keys xkb_symbols "basic" { include "rs(latin)" name[Group1]="Slovenian"; key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; }; partial alphanumeric_keys xkb_symbols "us" { include "rs(latinyz)" name[Group1]= "Slovenian (US, with Slovenian letters)"; key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; }; partial alphanumeric_keys xkb_symbols "alternatequotes" { include "rs(latinalternatequotes)" name[Group1]= "Slovenian (with guillemets)"; key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; }; PK(f[m +5O5O symbols/ienu[// Irish keyboard map // Support for Irish (old and new orthography) and English // Seamus O Ciardhuain (19 December 2002) // The general idea is to provide the characters in ISO 8859-1, // ISO 8859-15, ISO 8859-14, CP1252 and "Extended Latin-8". // However, not all are accessible directly because there aren't // enough keys; some need deadkeys to access them, others the // "Multi_key" compose sequences. // Designed to be similar to the layouts used on Windows // and the Macintosh. // Everything is in Group 1 to be compatible with the // multi-layout keyboard support in XFree86 4.3. // The basic layout is a modern keyboard, but dotted consonants are // accessible using a deadkey (AltGr+H or AltGr+W). // If a proper Clo Gaelach keyboard is needed, then use the layout // defined below as ie(CloGaelach), which gives dotted consonants // without use of a deadkey. default partial alphanumeric_keys xkb_symbols "basic" { // Modern keyboard for Irish and English // - acute-accented vowels as AltGr+vowel and AltGr+Shift+vowel // - euro currency sign as AltGr+4 // - Comhartha Agus (Tironian Sign Et) as AltGr+Shift+7 // - non-breaking space as AltGr+Space and AltGr+Shift+Space // - matches hardware (keys and engraved symbols) for Irish keyboards name[Group1] = "Irish"; // // Numeric row `1234567890-= // key { [ grave, notsign, brokenbar, NoSymbol ] }; key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, quotedbl, trademark, twosuperior ] }; key { [ 3, sterling, copyright, threesuperior ] }; key { [ 4, dollar, EuroSign, cent ] }; key { [ 5, percent, section, dagger ] }; key { [ 6, asciicircum, dead_circumflex, 0x1002030 ] }; // per thousand key { [ 7, ampersand, paragraph, 0x100204A ] }; // Tironian Et key { [ 8, asterisk, dead_diaeresis, enfilledcircbullet ] }; key { [ 9, parenleft, ordfeminine, periodcentered ] }; key { [ 0, parenright, masculine, degree ] }; key { [ minus, underscore, endash, emdash ] }; key { [ equal, plus, notequal, plusminus ] }; // // QWERTYUIOP[] // key { [ q, Q, oe, OE ] }; key { [ w, W, dead_abovedot, dead_abovedot ] }; key { [ e, E, eacute, Eacute ] }; key { [ r, R, registered, 0x1002030 ] }; // per thousand key { [ t, T, thorn, THORN ] }; key { [ y, Y, yen, mu ] }; key { [ u, U, uacute, Uacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ p, P, singlelowquotemark, NoSymbol ] }; key { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] }; key { [ bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] }; // // ASDFGHJKL;'# // key { [ a, A, aacute, Aacute ] }; key { [ s, S, ssharp, 0x1001E9E ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, 0x1000192, NoSymbol ] }; // f with hook key { [ g, G, copyright, NoSymbol ] }; key { [ h, H, dead_abovedot, dead_abovedot ] }; key { [ j, J, idotless, onequarter ] }; key { [ k, K, dead_abovering, onehalf ] }; key { [ l, L, acute, threequarters ] }; key { [ semicolon, colon, ellipsis, doubledagger ] }; key { [ apostrophe, at, ae, AE ] }; key { [ numbersign, asciitilde, guillemotleft, guillemotright ] }; // // \ZXCVBNM,./ // key { [ backslash, bar, dead_grave, dead_acute ] }; key { [ z, Z, leftanglebracket, rightanglebracket ] }; key { [ x, X, multiply, approximate ] }; key { [ c, C, dead_cedilla, cedilla ] }; key { [ v, V, dead_caron, NoSymbol ] }; key { [ b, B, diaeresis, NoSymbol ] }; key { [ n, N, dead_tilde, NoSymbol ] }; key { [ m, M, macron, NoSymbol ] }; key { [ comma, less, lessthanequal, doublelowquotemark ] }; key { [ period, greater, greaterthanequal, singlelowquotemark ] }; key { [ slash, question, division, questiondown ] }; key { [ space, space, nobreakspace, nobreakspace ] }; include "level3(ralt_switch)" // NB: putting Shift+ as Multi_key gives odd behaviour since the // order of pressing keys affects the result. include "compose(rwin)" }; partial alphanumeric_keys xkb_symbols "CloGaelach" { // Adds support for Clo Gaelach (old orthography for Irish). // Changes from "basic": // - dotted consonants as AltGr+consonant or AltGr+Shift+consonant (TPSDFGCBM) // - long lowercase r as AltGr+R // - long lowercase s as AltGr+Z // - long lowercase s dotted as AltGr+Shift+Z // - some symbols moved around to retain them // - several characters unlikely to be used are lost // The long letters are needed only where the font provides // both the long and short forms as different glyphs. include "ie(basic)" name[Group1] = "CloGaelach"; key { [ grave, notsign, brokenbar, ssharp ] }; key { [ r, R, 0x100027C, registered ] }; // long r key { [ t, T, tabovedot, Tabovedot ] }; key { [ p, P, pabovedot, Pabovedot ] }; key { [ s, S, sabovedot, Sabovedot ] }; key { [ d, D, dabovedot, Dabovedot ] }; key { [ f, F, fabovedot, Fabovedot ] }; key { [ g, G, gabovedot, Gabovedot ] }; key { [ z, Z, 0x100017F, 0x1001E9B ] }; // long s, long s dot key { [ c, C, cabovedot, Cabovedot ] }; key { [ b, B, babovedot, Babovedot ] }; key { [ m, M, mabovedot, Mabovedot ] }; key { [ backslash, bar, dead_grave, dead_cedilla ] }; }; partial alphanumeric_keys xkb_symbols "UnicodeExpert" { // This should eventually be a "Unicode Expert" layout like the Mac one. name[Group1] = "Irish (UnicodeExpert)"; // // Numeric row `1234567890-= // key { [ grave, notsign, 0x10000A6, 0x10000A6 ] }; // broken bar key { [ 1, exclam, NoSymbol, NoSymbol ] }; key { [ 2, quotedbl, dead_doubleacute, dead_doubleacute ] }; key { [ 3, sterling, NoSymbol, NoSymbol ] }; key { [ 4, dollar, EuroSign, EuroSign ] }; key { [ 5, percent, NoSymbol, NoSymbol ] }; key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; key { [ 7, ampersand, 0x100204A, 0x100204A ] }; // Tironian Et key { [ 8, asterisk, dead_abovering, dead_abovering ] }; key { [ 9, parenleft, dead_breve, dead_breve ] }; key { [ 0, parenright, dead_ogonek, dead_ogonek ] }; key { [ minus, underscore, dead_macron, dead_macron ] }; key { [ equal, plus, NoSymbol, NoSymbol ] }; // // QWERTYUIOP[] // key { [ q, Q, NoSymbol, NoSymbol ] }; key { [ w, W, NoSymbol, NoSymbol ] }; key { [ e, E, eacute, Eacute ] }; key { [ r, R, 0x100027C, 0x100027C ] }; // long r key { [ t, T, NoSymbol, NoSymbol ] }; key { [ y, Y, NoSymbol, NoSymbol ] }; key { [ u, U, uacute, Uacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ p, P, NoSymbol, NoSymbol ] }; key { [ bracketleft, braceleft, dead_hook, dead_hook ] }; key { [ bracketright, braceright, dead_horn, dead_horn ] }; // // ASDFGHJKL;'# // key { [ a, A, aacute, Aacute ] }; key { [ s, S, NoSymbol, NoSymbol ] }; key { [ d, D, NoSymbol, NoSymbol ] }; key { [ f, F, NoSymbol, NoSymbol ] }; key { [ g, G, NoSymbol, NoSymbol ] }; key { [ h, H, dead_abovedot, dead_abovedot ] }; key { [ j, J, NoSymbol, NoSymbol ] }; key { [ k, K, NoSymbol, NoSymbol ] }; key { [ l, L, NoSymbol, NoSymbol ] }; key { [ semicolon, colon, dead_diaeresis, dead_diaeresis ] }; key { [ apostrophe, at, dead_acute, dead_acute ] }; key { [ numbersign, asciitilde, dead_tilde, dead_tilde ] }; // // \ZXCVBNM,./ // key { [ backslash, bar, dead_grave, dead_grave ] }; key { [ z, Z, 0x100017F, 0x1001E9B ] }; // long s, long s dot key { [ x, X, NoSymbol, NoSymbol ] }; key { [ c, C, NoSymbol, NoSymbol ] }; key { [ v, V, dead_caron, dead_caron ] }; key { [ b, B, NoSymbol, NoSymbol ] }; key { [ n, N, NoSymbol, NoSymbol ] }; key { [ m, M, NoSymbol, NoSymbol ] }; key { [ comma, less, dead_cedilla, dead_cedilla ] }; key { [ period, greater, dead_abovedot, dead_abovedot ] }; key { [ slash, question, dead_belowdot, dead_belowdot ] }; key { [ space, space, space, nobreakspace ] }; include "level3(ralt_switch)" include "compose(rwin)" }; // // Ogham keyboard map for XFree86 // // Seamus O Ciardhuain (17 December 2002) // // Ogham keyboard layout as recommended in I.S. 434:1999. // Suitable for multi-layout xkbcomp. // Character names are given as in the Unicode standard, // range U+1680 to U+169F. partial alphanumeric_keys xkb_symbols "ogam" { name[Group1] = "Ogham"; key.type[Group1] = "ONE_LEVEL"; key { type[Group1]="TWO_LEVEL", [ 0x100169B, 0x100169C ] }; // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK key { [ 0x1001680 ] }; // OGHAM SPACE MARK key { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK key { [ space ] }; // // Top Row QWERTYUIOP // key { [ 0x100168A ] }; // OGHAM LETTER CEIRT key { [ 0x1001695 ] }; // OGHAM LETTER EABHADH key { [ 0x1001693 ] }; // OGHAM LETTER EADHADH key { [ 0x100168F ] }; // OGHAM LETTER RUIS key { [ 0x1001688 ] }; // OGHAM LETTER TINNE key { [ 0x1001698 ] }; // OGHAM LETTER IFIN key { [ 0x1001692 ] }; // OGHAM LETTER UR key { [ 0x1001694 ] }; // OGHAM LETTER IODHADH key { [ 0x1001691 ] }; // OGHAM LETTER ONN key { [ 0x100169A ] }; // OGHAM LETTER PEITH // // Middle Row ASDFGHJKL // key { [ 0x1001690 ] }; // OGHAM LETTER AILM key { [ 0x1001684 ] }; // OGHAM LETTER SAIL key { [ 0x1001687 ] }; // OGHAM LETTER DAIR key { [ 0x1001683 ] }; // OGHAM LETTER FEARN key { [ 0x100168C ] }; // OGHAM LETTER GORT key { [ 0x1001686 ] }; // OGHAM LETTER UATH key { [ 0x1001697 ] }; // OGHAM LETTER UILLEANN key { [ 0x1001696 ] }; // OGHAM LETTER OR key { [ 0x1001682 ] }; // OGHAM LETTER LUIS // // Bottom Row ZXCVBNM // key { [ 0x100168E ] }; // OGHAM LETTER STRAIF key { [ 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL key { [ 0x1001689 ] }; // OGHAM LETTER COLL key { [ 0x100168D ] }; // OGHAM LETTER NGEADAL key { [ 0x1001681 ] }; // OGHAM LETTER BEITH key { [ 0x1001685 ] }; // OGHAM LETTER NION key { [ 0x100168B ] }; // OGHAM LETTER MUIN // As an extension because and may not be // available or sensible. These are also a bit more // intuitive on a standard Irish keyboard. key { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK key { [ 0x100169B ] }; // OGHAM FEATHER MARK key { [ 0x1001680 ] }; // OGHAM SPACE MARK include "compose(rwin)" }; partial alphanumeric_keys xkb_symbols "ogam_is434" { // This has the full layout of IS434 with an Irish QWERTY keyboard, // and the Ogham characters accessed when CAPS LOCK is on. name[Group1] = "Ogham (IS434)"; key.type[Group1] = "THREE_LEVEL"; key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", [ backslash, bar, 0x100169B, 0x100169C ] }; // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK key { [ numbersign, asciitilde, 0x1001680 ] }; // OGHAM SPACE MARK key { [ grave, notsign, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK key { [ space, space, space ] }; // // Numeric row // key { type[Group1]="TWO_LEVEL", [ 1, exclam ] }; key { type[Group1]="TWO_LEVEL", [ 2, quotedbl ] }; key { type[Group1]="TWO_LEVEL", [ 3, sterling ] }; key { [ 4, dollar, EuroSign ] }; key { type[Group1]="TWO_LEVEL", [ 5, percent ] }; key { type[Group1]="TWO_LEVEL", [ 6, asciicircum ] }; key { [ 7, ampersand, 0x100204A ] }; // Tironian Et key { type[Group1]="TWO_LEVEL", [ 8, asterisk ] }; key { type[Group1]="TWO_LEVEL", [ 9, parenleft ] }; key { type[Group1]="TWO_LEVEL", [ 0, parenright ] }; key { type[Group1]="TWO_LEVEL", [ minus, underscore ] }; key { type[Group1]="TWO_LEVEL", [ equal, plus ] }; // // Top Row QWERTYUIOP // key { [ q, Q, 0x100168A ] }; // OGHAM LETTER CEIRT key { [ w, W, 0x1001695 ] }; // OGHAM LETTER EABHADH key { [ e, E, 0x1001693 ] }; // OGHAM LETTER EADHADH key { [ r, R, 0x100168F ] }; // OGHAM LETTER RUIS key { [ t, T, 0x1001688 ] }; // OGHAM LETTER TINNE key { [ y, Y, 0x1001698 ] }; // OGHAM LETTER IFIN key { [ u, U, 0x1001692 ] }; // OGHAM LETTER UR key { [ i, I, 0x1001694 ] }; // OGHAM LETTER IODHADH key { [ o, O, 0x1001691 ] }; // OGHAM LETTER ONN key { [ p, P, 0x100169A ] }; // OGHAM LETTER PEITH // // Middle Row ASDFGHJKL // key { [ a, A, 0x1001690 ] }; // OGHAM LETTER AILM key { [ s, S, 0x1001684 ] }; // OGHAM LETTER SAIL key { [ d, D, 0x1001687 ] }; // OGHAM LETTER DAIR key { [ f, F, 0x1001683 ] }; // OGHAM LETTER FEARN key { [ g, G, 0x100168C ] }; // OGHAM LETTER GORT key { [ h, H, 0x1001686 ] }; // OGHAM LETTER UATH key { [ j, J, 0x1001697 ] }; // OGHAM LETTER UILLEANN key { [ k, K, 0x1001696 ] }; // OGHAM LETTER OR key { [ l, L, 0x1001682 ] }; // OGHAM LETTER LUIS // // Bottom Row ZXCVBNM // key { [ z, Z, 0x100168E ] }; // OGHAM LETTER STRAIF key { [ x, X, 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL key { [ c, C, 0x1001689 ] }; // OGHAM LETTER COLL key { [ v, V, 0x100168D ] }; // OGHAM LETTER NGEADAL key { [ b, B, 0x1001681 ] }; // OGHAM LETTER BEITH key { [ n, N, 0x1001685 ] }; // OGHAM LETTER NION key { [ m, M, 0x100168B ] }; // OGHAM LETTER MUIN // As an extension because and may not be // available or sensible. These are also a bit more // intuitive on a standard Irish keyboard. key { [ comma, less, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK key { [ period, greater, 0x100169B ] }; // OGHAM FEATHER MARK key { [ slash, question, 0x1001680 ] }; // OGHAM SPACE MARK // The standard says the Ogham characters should be accessed when // Caps Lock is down; not clear if this means it should lock but // seems logical. key { type[Group1] = "ONE_LEVEL", [ ISO_Level3_Lock ] }; // Also allow access to Ogham characters using RALT for convenience include "level3(ralt_switch)" // Redefine Scroll Lock as locking shift in case that's needed. // Also overcomes annoying use of Scroll Lock LED inherited from // US symbols but not relevant here since we're not changing group. key {type[Group1] = "ONE_LEVEL", [ Shift_Lock ] }; modifier_map Shift { Shift_Lock }; include "compose(rwin)" }; PK(f[޹ symbols/tgnu[default partial alphanumeric_keys xkb_symbols "basic" { include "fr(azerty)" name[Group1]="French (Togo)"; // This is based on French AZERTY-Keyboard layout that is mostly used in Togo. // It includes symbols used to write different local languages in Togo. // Created 2015 by Globalbility Togo (www.globalbility.org) // Authors: Issaka Ouro-Wétchiré, Caroline Riefstahl, Mats Blakstad // // LAYOUT OVERVIEW // ____ // | 1 3| 1 = Shift, 3 = AltGr + Shift (AltGr is the right side alt key) // | 2 4| 2 = normal, 4 = AltGr // ¯¯¯¯ // ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ // | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ° | + | <-- | // | ² | & | é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | // ======================================================================== // | |<- | A | Z Ʒ| E | R Ɛ| T Ɗ| Y Ƴ| U Ʊ| I Ɩ| O Ɔ| P | ¨ | $ | , | // | ->| | a | z ʒ| e €| r ɛ| t ɗ| y ƴ| u ʊ| i ɩ| o ɔ| p | ^ ̌| £ ¤| <-' | // ===================================================================¬ | // | | Q Ǝ| S | D Ɖ| F Ƒ| G Ɣ| H Ĥ | J Ɨ| K | L | M Ŋ| % | µ | | // | MAJ | q ǝ| s | d ɖ| f ƒ| g ɣ| h ɦ| j ɨ | k | l | m ɲ| ù `| * ́| | // ======================================================================== // | ^ | > | W | X | C | V Ʋ| B Ɓ| N Ŋ| ? | . | / | § | | | // | | | < | w | x | c | v ʋ| b ɓ| n ŋ| , | ; | : ¯| ! ~| | | // ======================================================================== // | | | | | | | | | // | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | // ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ // The different local languages in Togo uses all together 17 symbols not found in French language: // Ʒ, ɛ, Ɗ, Ƴ, Ʊ, Ɩ, Ɔ, Ǝ, Ɖ, Ƒ, Ɣ, Ĥ, Ɨ, Ɲ, Ʋ, Ɓ, Ŋ. // Togolese local languages use 9 tone markers: // Acute ( ´ ), Grave ( ` ), Circumflex ( ˆ ), Caron ( ˇ ), Macron ( ¯ ), Tilde ( ~ ), Tilde + Acute ( ̃́ ), Tilde + Grave ( ̃̀ ), Diaeresis ( ¨ ) // The vowels can use these tone markers except diaeresis. // 'Y' is not used as a vowel in most local languages, and can only use diaeresis. // Nasal consonants (m, n, ŋ) can only have have accent tones (acute and grave) // Modifications of the basic French Azerty layout to add symbols for Togolese local languages // Second row key { [ z, Z, ezh, EZH ] }; // U0292 = ʒ (small), U01B7 = Ʒ (capital) key { [ r, R, U025B, U0190 ] }; // U025B = ɛ (small), U0190 = Ɛ (capital) key { [ t, T, U0257, U018A ] }; // U0257 = ɗ (small), U018A = Ɗ (capital) key { [ y, Y, U01B4, U01B3 ] }; // U01B4 = ƴ (small), U01B3 = Ƴ (capital) key { [ u, U, U028A, U01B1 ] }; // U028A = ʊ (small), U01B1 = Ʊ (capital) key { [ i, I, U0269, U0196 ] }; // U0269 = ɩ (small), U0196 = Ɩ (capital) key { [ o, O, U0254, U0186 ] }; // U0254 = ɔ (small), U0186 = Ɔ (capital) key { [ dead_circumflex,dead_diaeresis, dead_caron ] }; // Third row key { [ q, Q, U01DD, U018E ] }; // U01DD = ǝ (small), U018E = Ǝ (capital) key { [ d, D, U0256, U0189 ] }; // U0256 = ɖ (small), U0189 = Ɖ (capital) key { [ f, F, U0192, U0191 ] }; // U0192 = ƒ (small), U0191 = Ƒ (capital) key { [ g, G, U0263, U0194 ] }; // U0263 = ɣ (small), U0194 = Ɣ (capital) key { [ h, H, U0266, U0124 ] }; // U0266 = ɦ (small), U0124 = Ĥ (capital) key { [ j, J, U0268, U0197 ] }; // U0268 = ɨ (small), U0197 = Ɨ (capital) key { [ m, M, U0272, U019D ] }; // U0272 = ɲ (small), U019D = Ɲ (capital) key { [ ugrave, percent, dead_grave ] }; key { [ asterisk, mu, dead_acute ] }; // Fourth row key { [ v, V, U028B, U01B2 ] }; // U028B = ʋ (small), U01B2 = Ʋ (capital) key { [ b, B, U0253, U0181 ] }; // U0253 = ɓ (small), U0181 = Ɓ (capital) key { [ n, N, U014B, U014A ] }; // U014B = ŋ (small), U014A = Ŋ (capital) key { [ colon, slash, dead_macron ] }; key { [ exclam, section, dead_tilde ] }; }; PK(f[)%'@@ symbols/kznu[// Based on http://www.sci.kz/~sairan/keyboard/kzkbd.html // Baurzhan Ismagulov // // TODO: // 1. AltGr with TLDE and LSGT. // 2. Dead key for ruskaz and kazrus. // 3. Ctrl + . // 4. Alt-Tab. // RST KazSSR 903-90 // levels 3 and 4 are non-standard extensions default partial alphanumeric_keys xkb_symbols "basic" { name[Group1] = "Kazakh"; key.type[group1] = "FOUR_LEVEL"; key { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; key { [ quotedbl, exclam ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ backslash, slash ] }; key { [ numerosign, question ] }; key { [ less, greater, bar, brokenbar ] }; key.type[group1] = "ALPHABETIC"; key { [ Cyrillic_schwa, Cyrillic_SCHWA ] }; key { [ Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; key { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; key { [ Cyrillic_shha, Cyrillic_SHHA ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; }; // Kikkarin KZ1 partial alphanumeric_keys xkb_symbols "ruskaz" { name[Group1] = "Russian (Kazakhstan, with Kazakh)"; key.type[group1] = "FOUR_LEVEL"; key { [ 1, exclam ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numerosign, numbersign ] }; key { [ 4, semicolon, dollar ] }; key { [ 5, percent ] }; key { [ 6, colon, asciicircum ] }; key { [ 7, question, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ backslash, slash, bar ] }; key { [ period, comma, slash, question ] }; key { [ less, greater, bar, brokenbar ] }; key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; }; // Kikkarin KZ2 partial alphanumeric_keys xkb_symbols "kazrus" { name[Group1] = "Kazakh (with Russian)"; key.type[group1] = "FOUR_LEVEL"; key { [ 1, exclam ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numerosign, numbersign ] }; key { [ 4, semicolon, dollar ] }; key { [ 5, percent ] }; key { [ 6, colon, asciicircum ] }; key { [ 7, question, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ backslash, slash, bar ] }; key { [ period, comma, slash, question ] }; key { [ less, greater, bar, brokenbar ] }; key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { // Contact: Walter Bender // We moved the Cyrillic IO off of the Tilde Key as an Alt-GR character // and moved it onto the Backslash key, making Backslash and Bar available // through the Latin side of the keyboard. include "kz(basic)" key { [ parenleft, parenright ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; include "group(olpc)" }; partial alphanumeric_keys xkb_symbols "ext" { // Levels 3 and 4 represent main keyboard's numeric part of US layout, // parens are duplicated for consistency. include "kz(basic)" name[Group1] = "Kazakh (extended)"; key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; key { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] }; key { [ quotedbl, exclam, 1, exclam ] }; key { [ Cyrillic_schwa, Cyrillic_SCHWA, 2, at ] }; key { [ Ukrainian_i, Ukrainian_I, 3, numbersign ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender, 4, dollar ] }; key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, 5, percent ] }; key { [ comma, semicolon, 6, asciicircum ] }; key { [ period, colon, 7, ampersand ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight, 8, asterisk ] }; key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, 9, parenleft ] }; key { [ Cyrillic_ka_descender, Cyrillic_KA_descender, 0, parenright ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar, minus, underscore ] }; key { [ Cyrillic_shha, Cyrillic_SHHA, equal, plus ] }; key { [ backslash, slash, bar, brokenbar ] }; key { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] }; key { [ Cyrillic_e, Cyrillic_E, apostrophe ] }; key { [ Cyrillic_be, Cyrillic_BE, less ] }; key { [ Cyrillic_yu, Cyrillic_YU, greater ] }; include "level3(ralt_switch)" }; // Kazakh Latin (based on Kazakh alphabet version of 2018) // levels 3 and 4 are non-standard extensions partial alphanumeric_keys xkb_symbols "latin" { // Contact: Galym Kerimbekov name[Group1] = "Kazakh (Latin)"; key.type[group1] = "FOUR_LEVEL"; key { [ parenleft, parenright ] }; key { [ quotedbl, exclam ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ backslash, slash ] }; key { [ numerosign, question ] }; key { [ less, greater, bar, brokenbar ] }; key.type[group1] = "ALPHABETIC"; key { [ aacute, Aacute ] }; key { [ iacute, Iacute ] }; key { [ nacute, Nacute ] }; key { [ U01F5, U01F4 ] }; // gG with acute key { [ uacute, Uacute ] }; key { [ yacute, Yacute ] }; key { [ oacute, Oacute ] }; key { [ sacute, Sacute ] }; key { [ cacute, Cacute ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, M ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; }; PK(f[R(( symbols/phnu[//////////////////////////////////////////////////////////////////////////////// // Philippines National Keyboard Layout v1.0.0 (2010-10-23) // // http://laibcoms.com/sandbox/the-philippines-national-keyboard-layout // // // // Loosely based on ISO/IEC 9995-3:2009 // // * glyphs that are not used in Philippine Languages and // // Philippine English were not included // // * Additions/Changes that are not part of ISO/IEC 9995-3:2009 // // were added // // // // http://en.wikipedia.org/wiki/ISO/IEC_9995 // // http://www.fileformat.info/info/unicode/char/20B1/index.htm // // // // By: Ubuntu Philippines LoCo Team // // Site: http://ubuntu-ph.org // // // // Project Contact: JC John Sese Cuneta / 謝施洗 / ᜑᜓᜏᜈ᜔ ᜃᜓᜈᜒᜆ // // XMPP/Jabber: jcjohn.sesecuneta@talkr.im // // Email: jcjohn.sesecuneta@laibcoms.com // //////////////////////////////////////////////////////////////////////////////// // QWERTY (Latin) version // http://en.wikipedia.org/wiki/QWERTY // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & ← │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃ // │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ Q │ W │ E Œ │ R ¶ │ T │ Y │ U │ I İ │ O Ø │ P │ { │ } │ | Ə │ // ┃Tab ↹ ┃ q │ w │ e œ │ r ® │ t ™ │ y ¥ │ u │ i ı │ o ø │ p ₱ │ [ │ ] │ \ ə │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ A Æ │ S │ D │ F ª │ G │ H │ J │ K │ L │ : │ " ̋◌ ┃ Enter ┃ // ┃Caps ⇬ ┃ a æ │ s § │ d │ f │ g │ h │ j │ k │ l │ ; │ ' ́◌ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ N Ñ │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃ // ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ n ñ │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Filipino"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° // E row; Numerals row, right side key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ // D row; QWERTY row, left side key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ // D row; QWERTY row, right side key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə // C row; Home row, left side key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G // C row; Home row, right side key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ // B row; Lower row, right side key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // QWERTY (Baybayin) version // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃ // │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ │ │ ᜁ │ │ │ │ ᜂ │ ᜁ │ ᜂ │ │ │ │ │ // ┃Tab ↹ ┃ │ ᜏ │ ◌ᜒ │ ᜍ │ ᜆ │ ᜌ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ᜉ │ │ │ │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ Enter ┃ // ┃Caps ⇬ ┃ ᜀ │ ᜐ │ ᜇ │ │ ᜄ │ ᜑ │ │ ᜃ │ ᜎ │ │ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ ᜅ │ │ │ │ ┃ ┃ // ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜈ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "qwerty-bay" { name[Group1]= "Filipino (QWERTY, Baybayin)"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // E row; Numerals row, right side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) // D row; QWERTY row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) // D row; QWERTY row, right side key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // C row; Home row, left side key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) // C row; Home row, right side key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) // B row; Lower row, right side key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // Capewell-Dvorak (Latin) version // http://www.michaelcapewell.com/projects/keyboard/index.htm#The_Capewell-Dvorak_Layout // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ { │ } ┃ ⌫ Bak ┃ // │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ [ │ ] ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ " ̋◌ │ < ̨◌ │ > ␣ │ P │ Y │ Q │ F ª │ G │ R ¶ │ K │ ? ¿ │ + ∓ │ | Ə │ // ┃Tab ↹ ┃ ' ́◌ │ , ̧◌ │ . … │ p ₱ │ y ¥ │ q │ f │ g │ r ® │ k │ / ÷ │ = ± │ \ ə │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ O Ø │ A Æ │ E Œ │ I İ │ U │ D │ H │ T │ N Ñ │ S │ _ ◌͠ ┃ Enter ┃ // ┃Caps ⇬ ┃ o ø │ a æ │ e œ │ i ı │ u │ d │ h │ t ™ │ n ñ │ s § │ - ¬ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ J │ L │ M º │ W │ B ’ │ : ┃ ┃ // ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ j │ l │ m µ │ w │ b ” │ ; ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "capewell-dvorak" { name[Group1]= "Filipino (Capewell-Dvorak, Latin)"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° // E row; Numerals row, right side key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } // D row; Upper row, left side key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ // D row; Upper row, right side key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə // C row; Home row, left side key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U // C row; Home row, right side key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J // B row; Lower row, right side key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // Capewell-Dvorak (Baybayin) version // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ │ │ // ┃Tab ↹ ┃ │ ᜵ │ ᜶ │ ᜉ │ ᜌ │ │ │ ᜄ │ ᜍ │ ᜃ │ │ ◌᜔ │ │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ ᜂ │ │ ᜁ │ ᜁ │ ᜂ │ │ │ │ ᜅ │ │ ┃ Enter ┃ // ┃Caps ⇬ ┃ ◌ᜓ │ ᜀ │ ◌ᜒ │ ◌ᜒ │ ◌ᜓ │ ᜇ │ ᜑ │ ᜆ │ ᜈ │ ᜐ │ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃Shift ⇧┃ │ │ │ │ │ │ ᜎ │ ᜋ │ ᜏ │ ᜊ │ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "capewell-dvorak-bay" { name[Group1]= "Filipino (Capewell-Dvorak, Baybayin)"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // E row; Numerals row, right side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // D row; QWERTY row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) // D row; QWERTY row, right side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // C row; Home row, left side key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) // C row; Home row, right side key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // B row; Lower row, right side key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // Capewell-QWERF 2006 (Latin) version // http://www.michaelcapewell.com/projects/keyboard/index.htm#The_QWERF_Layout // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃ // │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ Q │ W │ E Œ │ R ¶ │ F ª │ J │ Y │ K │ L │ : │ { │ } │ | Ə │ // ┃Tab ↹ ┃ q │ w │ e œ │ r ® │ f │ j │ y ¥ │ k │ l │ ; │ [ │ ] │ \ ə │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ A Æ │ S │ D │ T │ G │ H │ U │ I İ │ O Ø │ P │ " ̋◌ ┃ Enter ┃ // ┃Caps ⇬ ┃ a æ │ s § │ d │ t ™ │ g │ h │ u │ i ı │ o ø │ p ₱ │ ' ́◌ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ N Ñ │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃ // ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ n ñ │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "capewell-qwerf2k6" { name[Group1]= "Filipino (Capewell-QWERF 2006, Latin)"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° // E row; Numerals row, right side key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ // D row; Upper row, left side key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª // D row; Upper row, right side key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə // C row; Home row, left side key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G // C row; Home row, right side key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ // B row; Lower row, right side key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // Capewell-QWERF 2006 (Baybayin) version // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃ // │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ │ │ ᜁ │ │ │ │ │ │ │ │ │ │ │ // ┃Tab ↹ ┃ │ ᜏ │ ◌ᜒ │ ᜍ │ │ │ ᜌ │ ᜃ │ ᜎ │ │ │ │ │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ │ │ │ │ │ │ ᜂ │ ᜁ │ ᜂ │ │ ┃ Enter ┃ // ┃Caps ⇬ ┃ ᜀ │ ᜐ │ ᜇ │ ᜆ │ ᜄ │ ᜑ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ᜉ │ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ ᜅ │ │ │ │ ┃ ┃ // ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜈ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "capewell-qwerf2k6-bay" { name[Group1]= "Filipino (Capewell-QWERF 2006, Baybayin)"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // E row; Numerals row, right side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) // D row; QWERTY row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // D row; QWERTY row, right side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // C row; Home row, left side key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) // C row; Home row, right side key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) // B row; Lower row, right side key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // Colemak (Latin) version // http://colemak.com // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃ // │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ Q │ W │ F ª │ P │ G │ J │ L │ U │ Y │ : │ { │ } │ | Ə │ // ┃Tab ↹ ┃ q │ w │ f │ p ₱ │ g │ j │ l │ u │ y ¥ │ ; │ [ │ ] │ \ ə │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ A Æ │ R ¶ │ S │ T │ D │ H │ N Ñ │ E Œ │ I İ │ O Ø │ " ̋◌ ┃ Enter ┃ // ┃Caps ⇬ ┃ a æ │ r ® │ s § │ t ™ │ d │ h │ n ñ │ e œ │ i ı │ o ø │ ' ́◌ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ K │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃ // ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ k │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "colemak" { name[Group1]= "Filipino (Colemak, Latin)"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° // E row; Numerals row, right side key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ // D row; Upper row, left side key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G // D row; Upper row, right side key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə // C row; Home row, left side key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D // C row; Home row, right side key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ // B row; Lower row, right side key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // Colemak (Baybayin) version // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃ // │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ │ │ │ │ │ │ │ ᜂ │ │ │ │ │ │ // ┃Tab ↹ ┃ │ ᜏ │ │ ᜉ │ ᜄ │ │ ᜎ │ ◌ᜓ │ ᜌ │ │ │ │ │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ │ │ │ │ │ │ ᜅ │ ᜁ │ ᜁ │ ᜂ │ ┃ Enter ┃ // ┃Caps ⇬ ┃ ᜀ │ ᜍ │ ᜐ │ ᜆ │ ᜇ │ ᜑ │ ᜈ │ ◌ᜒ │ ◌ᜒ │ ◌ᜓ │ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜃ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "colemak-bay" { name[Group1]= "Filipino (Colemak, Baybayin)"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // E row; Numerals row, right side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) // D row; QWERTY row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) // D row; QWERTY row, right side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // C row; Home row, left side key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) // C row; Home row, right side key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) // B row; Lower row, right side key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // Dvorak Simplified (Latin) version // http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ { │ } ┃ ⌫ Bak ┃ // │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ [ │ ] ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ " ̋◌ │ < ̨◌ │ > ␣ │ P │ Y │ F ª │ G │ C ¢ │ R ¶ │ L │ ? ¿ │ + ∓ │ | Ə │ // ┃Tab ↹ ┃ ' ́◌ │ , ̧◌ │ . … │ p ₱ │ y ¥ │ f │ g │ c © │ r ® │ l │ / ÷ │ = ± │ \ ə │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ A Æ │ O Ø │ E Œ │ U │ I İ │ D │ H │ T │ N Ñ │ S │ _ ◌͠ ┃ Enter ┃ // ┃Caps ⇬ ┃ a æ │ o ø │ e œ │ u │ i ı │ d │ h │ t ™ │ n ñ │ s § │ - ¬ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ ¦ │ : │ Q │ J │ K │ X · │ B ’ │ M º │ W │ V ‘ │ Z » ┃ ┃ // ┃Shift ⇧┃ │ ; │ q │ j │ k │ x × │ b ” │ m µ │ w │ v “ │ z « ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "dvorak" { name[Group1]= "Filipino (Dvorak, Latin)"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° // E row; Numerals row, right side key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } // D row; Upper row, left side key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ // D row; Upper row, right side key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə // C row; Home row, left side key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ // C row; Home row, right side key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · // B row; Lower row, right side key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // Dvorak Simplified (Baybayin) version // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ │ │ // ┃Tab ↹ ┃ │ ᜵ │ ᜶ │ ᜉ │ ᜌ │ │ ᜄ │ │ ᜍ │ ᜎ │ │ ◌᜔ │ │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ │ ᜂ │ ᜁ │ ᜂ │ ᜁ │ │ │ │ ᜅ │ │ ┃ Enter ┃ // ┃Caps ⇬ ┃ ᜀ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ◌ᜒ │ ᜇ │ ᜑ │ ᜆ │ ᜈ │ ᜐ │ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃Shift ⇧┃ │ │ │ │ ᜃ │ │ ᜊ │ ᜋ │ ᜏ │ │ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "dvorak-bay" { name[Group1]= "Filipino (Dvorak, Baybayin)"; // ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------| // Level1 Level2 Level3 Level4 // Base Shift AltGr AltGr+Shift // E row; Numerals row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // E row; Numerals row, right side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // D row; QWERTY row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) // D row; QWERTY row, right side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // C row; Home row, left side key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) // C row; Home row, right side key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // B row; Lower row, left side key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // B row; Lower row, right side key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // // A row key { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space) include "level3(ralt_switch)" }; // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ │ │ // ┃Tab ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ │ │ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ Enter ┃ // ┃Caps ⇬ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⏎ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃Shift ⇧┃ │ │ │ │ │ │ │ │ │ │ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫ // ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃ // ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // PK(f[7 symbols/aznu[// Symbols definition for a Azerbaijani keyboard layout. // Based on AZS 495-2010 standard. // 2001 - Pablo Saratxaga // 2015 - Adil Aliyev default partial alphanumeric_keys xkb_symbols "latin" { include "us" name[Group1]= "Azerbaijani"; key { [ grave, asciitilde ] }; key { [ 2, quotedbl ] }; key { [ 3, U2166 ] }; key { [ 4, semicolon ] }; key { [ 5, percent ] }; key { [ 6, colon ] }; key { [ 7, question ] }; key { [ 8, asterisk ] }; key { [ backslash, slash ] }; key { [ udiaeresis, Udiaeresis ] }; key { [ i, Iabovedot ] }; key { [ odiaeresis, Odiaeresis ] }; key { [ gbreve, Gbreve ] }; key { [ idotless, I ] }; key { [ schwa, SCHWA ] }; key { [ ccedilla, Ccedilla ] }; key { [ scedilla, Scedilla ] }; key { [ period, comma ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "cyrillic" { name[Group1]= "Azerbaijani (Cyrillic)"; key {[ 2, quotedbl ] }; key {[ 3, numbersign ] }; key {[ 4, semicolon ] }; key {[ 6, colon ] }; key {[ 7, question ] }; key {[ 8, asterisk, braceleft ] }; key {[ 9, parenleft, bracketleft ] }; key {[ 0, parenright, bracketright ] }; key {[ minus, underscore, braceright ] }; key {[ Cyrillic_je, Cyrillic_JE ] }; key {[ Cyrillic_u_straight, Cyrillic_U_straight ] }; key {[ Cyrillic_u, Cyrillic_U ] }; key {[ Cyrillic_ka, Cyrillic_KA ] }; key {[ Cyrillic_ie, Cyrillic_IE ] }; key {[ Cyrillic_en, Cyrillic_EN ] }; key {[ Cyrillic_ghe, Cyrillic_GHE ] }; key {[ Cyrillic_sha, Cyrillic_SHA ] }; key {[ Cyrillic_shha, Cyrillic_SHHA ] }; key {[ Cyrillic_ze, Cyrillic_ZE ] }; key {[ Cyrillic_ha, Cyrillic_HA ] }; key {[ Cyrillic_che_vertstroke, Cyrillic_CHE_vertstroke ] }; key {[ Cyrillic_ef, Cyrillic_EF ] }; key {[ Cyrillic_yeru, Cyrillic_YERU ] }; key {[ Cyrillic_ve, Cyrillic_VE ] }; key {[ Cyrillic_a, Cyrillic_A ] }; key {[ Cyrillic_pe, Cyrillic_PE ] }; key {[ Cyrillic_er, Cyrillic_ER ] }; key {[ Cyrillic_o, Cyrillic_O ] }; key {[ Cyrillic_el, Cyrillic_EL ] }; key {[ Cyrillic_de, Cyrillic_DE ] }; key {[ Cyrillic_zhe, Cyrillic_ZHE ] }; key {[ Cyrillic_ka_vertstroke,Cyrillic_KA_vertstroke ] }; key {[ Cyrillic_schwa, Cyrillic_SCHWA ] }; key {[ Cyrillic_che, Cyrillic_CHE ] }; key {[ Cyrillic_es, Cyrillic_ES ] }; key {[ Cyrillic_em, Cyrillic_EM ] }; key {[ Cyrillic_i, Cyrillic_I ] }; key {[ Cyrillic_te, Cyrillic_TE ] }; key {[ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; key {[ Cyrillic_be, Cyrillic_BE ] }; key {[ Cyrillic_o_bar, Cyrillic_O_bar ] }; key {[ period, comma ] }; }; PK(f[cTT symbols/canu[default partial xkb_symbols "fr" { name[Group1] = "French (Canada)"; key { [ numbersign, bar, backslash ] }; key { [ 1, exclam, plusminus ] }; key { [ 2, quotedbl, at ] }; key { [ 3, slash, sterling ] }; key { [ 4, dollar, cent ] }; key { [ 5, percent, currency ] }; key { [ 6, question, notsign ] }; key { [ 7, ampersand, brokenbar ] }; key { [ 8, asterisk, twosuperior ] }; key { [ 9, parenleft, threesuperior ] }; key { [ 0, parenright, onequarter ] }; key { [ minus, underscore, onehalf ] }; key { [ equal, plus, threequarters ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O, section ] }; key { [ p, P, paragraph ] }; key { [dead_circumflex, dead_circumflex, bracketleft ] }; key { [ dead_cedilla, dead_diaeresis, bracketright ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon, asciitilde ] }; key { [dead_grave, dead_grave, braceleft ] }; key { [ less, greater, braceright ] }; key { [guillemotleft, guillemotright, degree] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M, mu ] }; key { [ comma, apostrophe, macron ] }; key { [ period, period, hyphen ] }; key { [ eacute, Eacute, dead_acute ] }; key { [ space, space, nobreakspace ] }; include "level3(ralt_switch)" }; xkb_symbols "fr-dvorak" { name[Group1] = "French (Canada, Dvorak)"; key { [ numbersign, bar, backslash ] }; key { [ 1, exclam, plusminus ] }; key { [ 2, quotedbl, at ] }; key { [ 3, slash, sterling ] }; key { [ 4, dollar, cent ] }; key { [ 5, percent, currency ] }; key { [ 6, question, notsign ] }; key { [ 7, ampersand, brokenbar ] }; key { [ 8, asterisk, twosuperior ] }; key { [ 9, parenleft, threesuperior ] }; key { [ 0, parenright, onequarter ] }; key { [dead_circumflex, dead_circumflex, bracketleft ] }; key { [ dead_cedilla, dead_diaeresis, bracketright ] }; key { [dead_grave, dead_grave, braceleft ] }; key { [ comma, apostrophe, macron ] }; key { [ period, period, hyphen ] }; key { [ p, P, paragraph ] }; key { [ y, Y ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ c, C ] }; key { [ r, R ] }; key { [ l, L ] }; key { [ eacute, Eacute, dead_acute ] }; key { [ equal, plus, threequarters ] }; key { [ a, A ] }; key { [ o, O, section ] }; key { [ e, E ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ d, D ] }; key { [ h, H ] }; key { [ t, T ] }; key { [ n, N ] }; key { [ s, S ] }; key { [ minus, underscore, onehalf ] }; key { [ less, greater, braceright ] }; key { [guillemotleft, guillemotright, degree] }; key { [ semicolon, colon, asciitilde ] }; key { [ q, Q ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ x, X ] }; key { [ b, B ] }; key { [ m, M, mu ] }; key { [ w, W ] }; key { [ v, V ] }; key { [ z, Z ] }; key { [ space, space, nobreakspace ] }; include "level3(ralt_switch)" }; partial xkb_symbols "fr-legacy" { include "ca(fr)" name[Group1] = "French (Canada, legacy)"; key { [ degree, degree, notsign ] }; key { [ 1, exclam, onesuperior ] }; key { [ 3, numbersign, threesuperior ] }; key { [ 4, dollar, onequarter ] }; key { [ 5, percent, onehalf ] }; key { [ 6, question, threequarters ] }; key { [ 7, ampersand, braceleft ] }; key { [ 8, asterisk, bracketleft ] }; key { [ 9, parenleft, bracketright, plusminus ] }; key { [ 0, parenright, braceright ] }; key { [ minus, underscore, bar, questiondown] }; key { [ equal, plus, dead_cedilla ] }; key { [ r, R, paragraph, registered ] }; key { [ y, Y, yen ] }; key { [ o, O, oslash, Ooblique ] }; key { [ p, P, thorn, THORN ] }; key { [dead_circumflex, dead_circumflex, degree ] }; key { [ ccedilla, Ccedilla, dead_tilde, dead_diaeresis ] }; key { [ a, A, ae, AE ] }; key { [ s, S, ssharp, section ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, ordfeminine ] }; key { [ semicolon, colon, dead_acute, dead_acute ] }; key { [ egrave, Egrave ] }; key { [ agrave, Agrave, dead_grave ] }; key { [ ugrave, Ugrave, backslash, bar ] }; key { [ z, Z, guillemotleft ] }; key { [ x, X, guillemotright ] }; key { [ c, C, cent, copyright ] }; key { [ m, M, mu, masculine ] }; key { [ comma, apostrophe, less ] }; key { [ period, period, greater ] }; key { [ eacute, Eacute, slash ] }; }; partial xkb_symbols "multi" { include "ca(fr)" name[Group1] = "Canadian Multilingual (1st part)"; key { [ slash, backslash, bar ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, question ] }; key { [ 7, ampersand, braceleft ] }; key { [ 8, asterisk, braceright ] }; key { [ 9, parenleft, bracketleft ] }; key { [ 0, parenright, bracketright ] }; key { [ minus, underscore ] }; key { [ equal, plus, notsign ] }; key { [ o, O ] }; key { [ p, P ] }; key { [dead_circumflex, dead_diaeresis, dead_grave ] }; key { [ ccedilla, Ccedilla, asciitilde ] }; key { [ semicolon, colon, degree ] }; key { [ egrave, Egrave ] }; key { [ agrave, Agrave ] }; key { [ ugrave, Ugrave ] }; key { [ z, Z, guillemotleft ] }; key { [ x, X, guillemotright ] }; key { [ comma, apostrophe, less ] }; key { [ period, quotedbl, greater ] }; key { [ eacute, Eacute ] }; }; partial xkb_symbols "multi-2gr" { name[Group1] = "Canadian Multilingual (2nd part)"; key { [ NoSymbol, hyphen ] }; key { [ onesuperior, exclamdown ] }; key { [ twosuperior, NoSymbol ] }; key { [ threesuperior, sterling ] }; key { [ onequarter, currency ] }; key { [ onehalf,threeeighths ] }; key { [ threequarters, fiveeighths ] }; key { [ NoSymbol,seveneighths ] }; key { [ NoSymbol, trademark ] }; key { [ NoSymbol, plusminus ] }; key { [ NoSymbol, questiondown] }; key { [ dead_cedilla, dead_ogonek ] }; key { [ NoSymbol, Greek_OMEGA ] }; key { [ lstroke, Lstroke ] }; key { [ oe, OE ] }; key { [ paragraph, registered ] }; key { [ tslash, Tslash ] }; key { [ leftarrow, yen ] }; key { [ downarrow, uparrow ] }; key { [ rightarrow, idotless ] }; key { [ oslash, Ooblique ] }; key { [ thorn, THORN ] }; key { [ NoSymbol, dead_abovering ] }; key { [ dead_tilde, dead_macron ] }; key { [ ae, AE ] }; key { [ ssharp, section ] }; key { [ eth, ETH ] }; key { [ NoSymbol, ordfeminine ] }; key { [ eng, ENG ] }; key { [ hstroke, Hstroke ] }; key { [ U0133, U0132 ] }; key { [ kra, NoSymbol ] }; key { [ U0140, U013F ] }; key { [ dead_acute, dead_doubleacute ] }; key { [ NoSymbol, dead_caron ] }; key { [ NoSymbol, dead_breve ] }; key { [ NoSymbol, brokenbar ] }; key { [ cent, copyright ] }; key { [ leftdoublequotemark, leftsinglequotemark ] }; key { [ rightdoublequotemark, rightsinglequotemark ] }; key { [ U0149, U266A ] }; key { [ mu, masculine ] }; key { [ Greek_horizbar, multiply ] }; key { [ periodcentered, division ] }; key { [ NoSymbol, dead_abovedot ] }; }; // based on // Inuktitut keyboard for X11 // written by Pablo Saratxaga alphanumeric_keys xkb_symbols "ike" { name[Group1]= "Inuktitut"; key { [ 0x01001595, 1 ] }; key { [ 0x01001449, 2 ] }; key { [ 0x01001550, 3 ] }; key { [ 0x01001483, 4 ] }; key { [ 0x01001466, 5 ] }; key { [ 0x01001585, 6 ] }; key { [ 0x010014bb, 7 ] }; key { [ 0x010014d0, 8 ] }; key { [ 0x010014ea, 9 ] }; key { [ 0x0100153e, 0 ] }; key { [ minus, underscore ] }; key { [ 0x0100155d, equal ] }; key { [ 0x0100158f, 0x0100148b ] }; key { [ 0x01001403, 0x01001431 ] }; key { [ 0x0100157f, 0x01001546 ] }; key { [ 0x0100146d, 0x01001596 ] }; key { [ 0x0100144e, 0x01001671 ] }; key { [ 0x010014ef, 0x01001673 ] }; key { [ 0x010014a5, 0x01001675 ] }; key { [ 0x010014c2, 0x010015a4 ] }; key { [ 0x010014d5, 0x010015a0 ] }; key { [ 0x01001528, 0x010015a6 ] }; key { [ 0x010014a1, 0x01001505 ] }; key { [ dead_abovedot, 0x0100141e] }; key { [ 0x01001591, 0x0100148d ] }; key { [ 0x01001405, 0x01001433 ] }; key { [ 0x01001581, 0x01001548 ] }; key { [ 0x0100146f, 0x01001555 ] }; key { [ 0x01001450, parenleft ] }; key { [ 0x010014f1, parenright ] }; key { [ 0x010014a7, 0x0100152a ] }; key { [ 0x010014c4, 0x01001557 ] }; key { [ 0x010014d7, 0x010015a2 ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ 0x01001593, 0x01001490 ] }; key { [ 0x0100140a, 0x01001438 ] }; key { [ 0x01001583, 0x0100154b ] }; key { [ 0x01001472, question ] }; key { [ 0x01001455, 0x0100157c ] }; key { [ 0x010014f4, 0x010014c7 ] }; key { [ 0x010014aa, 0x010014da ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ 0x0100152d, 0x01001559 ] }; key { [ 0x0100157b, 0x01001575 ] }; key { [ 0x01001579, 0x01001577 ] }; key { [ backslash, bar ] }; }; partial xkb_symbols "multix" { name[Group1] = "Canadian Multilingual"; key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; key { [ slash, backslash, bar, NoSymbol, NoSymbol, hyphen ] }; key { [ 1, exclam, plusminus, NoSymbol, onesuperior, exclamdown ] }; key { [ 2, at, at, NoSymbol, twosuperior, NoSymbol ] }; key { [ 3, numbersign, sterling, NoSymbol, threesuperior, sterling ] }; key { [ 4, dollar, cent, NoSymbol, onequarter, currency ] }; key { [ 5, percent, currency, NoSymbol, onehalf, threeeighths ] }; key { [ 6, question, notsign, NoSymbol, threequarters, fiveeighths ] }; key { [ 7, ampersand, braceleft, NoSymbol, NoSymbol, seveneighths ] }; key { [ 8, asterisk, braceright, NoSymbol, NoSymbol, trademark ] }; key { [ 9, parenleft, bracketleft, NoSymbol, NoSymbol, plusminus ] }; key { [ 0, parenright, bracketright, NoSymbol ] }; key { [ minus, underscore, onehalf, NoSymbol, NoSymbol, questiondown] }; key { [ equal, plus, notsign, NoSymbol, dead_cedilla, dead_ogonek ] }; key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; key { [ q, Q, NoSymbol, NoSymbol, NoSymbol, Greek_OMEGA ] }; key { [ w, W, NoSymbol, NoSymbol, lstroke, Lstroke ] }; key { [ e, E, NoSymbol, NoSymbol, oe, OE ] }; key { [ r, R, NoSymbol, NoSymbol, paragraph, registered ] }; key { [ t, T, NoSymbol, NoSymbol, tslash, Tslash ] }; key { [ y, Y, NoSymbol, NoSymbol, leftarrow, yen ] }; key { [ u, U, NoSymbol, NoSymbol, downarrow, uparrow ] }; key { [ i, I, NoSymbol, NoSymbol, rightarrow, idotless ] }; key { [ o, O, section, NoSymbol, oslash, Ooblique ] }; key { [ p, P, paragraph, NoSymbol, thorn, THORN ] }; key.type[group1]="EIGHT_LEVEL"; key { [dead_circumflex, dead_diaeresis, dead_grave, NoSymbol, NoSymbol, dead_abovering ] }; key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; key { [ ccedilla, Ccedilla, asciitilde, NoSymbol, dead_tilde, dead_macron ] }; key { [ a, A, NoSymbol, NoSymbol, ae, AE ] }; key { [ s, S, NoSymbol, NoSymbol, ssharp, section ] }; key { [ d, D, NoSymbol, NoSymbol, eth, ETH ] }; key { [ f, F, NoSymbol, NoSymbol, NoSymbol, ordfeminine ] }; key { [ g, G, NoSymbol, NoSymbol, eng, ENG ] }; key { [ h, H, NoSymbol, NoSymbol, hstroke, Hstroke ] }; key { [ j, J, NoSymbol, NoSymbol, U0133, U0132 ] }; key { [ k, K, NoSymbol, NoSymbol, kra, NoSymbol ] }; key { [ l, L, NoSymbol, NoSymbol, U0140, U013F ] }; key.type[group1]="EIGHT_LEVEL"; key { [ semicolon, colon, degree, NoSymbol, dead_acute, dead_doubleacute ] }; key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; key { [ egrave, Egrave, braceleft, NoSymbol, NoSymbol, dead_caron ] }; key { [ agrave, Agrave, braceright, NoSymbol, NoSymbol, dead_breve ] }; key { [ ugrave, Ugrave, degree, NoSymbol, NoSymbol, brokenbar ] }; key.type[group1]="FOUR_LEVEL_SEMIALPHABETIC"; key { [ z, Z, guillemotleft, NoSymbol ] }; key { [ x, X, guillemotright, NoSymbol ] }; key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; key { [ c, C, NoSymbol, NoSymbol, cent, copyright ] }; key { [ v, V, NoSymbol, NoSymbol, leftdoublequotemark, leftsinglequotemark ] }; key { [ b, B, NoSymbol, NoSymbol, rightdoublequotemark, rightsinglequotemark ] }; key { [ n, N, NoSymbol, NoSymbol, U0149, U266A ] }; key { [ m, M, mu, NoSymbol, mu, masculine ] }; key { [ comma, apostrophe, less, NoSymbol, Greek_horizbar, multiply ] }; key { [ period, quotedbl, greater, NoSymbol, periodcentered, division ] }; key { [ eacute, Eacute, dead_acute, NoSymbol, NoSymbol, dead_abovedot ] }; include "nbsp(level3s)" modifier_map Control{ Control_L }; include "level3(ralt_switch)" include "level5(rctrl_switch)" }; // OLPC Section xkb_symbols "olpc" { include "ca(fr)" key { [ 2, quotedbl, ograve, Ograve ] }; key { [ 3, slash, at, VoidSymbol ] }; key { [ e, E, EuroSign, VoidSymbol] }; key { [ period, period, 0x1002010 ] }; key { [ guillemotleft, guillemotright, degree, VoidSymbol ] }; }; partial alphanumeric_keys xkb_symbols "eng" { include "us(basic)" name[Group1] = "English (Canada)"; key { [ backslash, bar, VoidSymbol, VoidSymbol ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "kut" { // Ejective U0313 and acute accents are taken from shs layout. include "ca(shs)" name[Group1]= "Kutenai"; // Alveolar Click key { [ t, T,U01C2 ,U01C2 ] }; //Cent sign key { [ c, C,U00A2,U00A2 ] }; //Mid dot key { [ period, greater,U00B7 ] }; //Glottal stop key { [ slash, question, U0294 ] }; //COMBINING COMMA ABOVE RIGHT key { [ apostrophe, quotedbl, U0315,U0315 ] }; //MODIFIER LETTER RIGHT HALF RING key { [ semicolon, colon,U02BE,U02BE ] }; }; // Secwepemctsin keyboard for X11 // written by Neskie Manuel partial alphanumeric_keys xkb_symbols "shs" { include "us" name[Group1]= "Secwepemctsin"; // Using a "dead key" to get a COMBINING COMMA ABOVE // for ejectives on q, l, t, s, m, g, k, p, w, y, r. // The Compose key is used for the other acutes and grave. key { [ comma, less, U0313 ] }; key { [ a, A, aacute, Aacute ] }; key { [ e, E, eacute, Eacute ] }; key { [ u, U, uacute, Uacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, oacute, Oacute ] }; include "level3(ralt_switch)" include "compose(rctrl)" }; partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/ca(sun_type6)" }; PK(f[i}} symbols/kenu[// Keyboard layout for Swahili in Arabic script. // Based on Martin Vidner's Buckwalter transliteration variant of the Arabic keyboard // Please notify any corrections or omissions to // Kevin Donnelly (kevin@dotmon.com) default partial alphanumeric_keys xkb_symbols "swa" { include "us" name[Group1]= "Swahili (Kenya)"; key { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON key { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "kik" { include "us" name[Group1]= "Kikuyu"; key { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON key { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW include "level3(ralt_switch)" }; PK(f[TL L symbols/sony_vndr/usnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // // US/ASCII layout for a nwp5461 keyboard xkb_symbols "nwp5461" { include "us(basic)" key { [ Alt_L, Meta_L ] }; key { [ Shift_R ] }; key { [ NoSymbol ] }; // Begin "Function" section key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; key { [ F11 ] }; key { [ F12 ] }; key { [ Help ] }; key { [ Cancel ] }; key { [ Select ] }; key { [ Execute ] }; key { [ Delete ] }; key { [ Left ] }; key { [ Right ] }; key { [ Up ] }; key { [ Down ] }; key { [ Prior ] }; key { [ Next ] }; key { [ Insert ] }; key { [ Clear ] }; // End "Function" section // Begin "Keypad" section key { [ KP_Multiply ] }; key { [ KP_Divide ] }; key { [ KP_Add ] }; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_Subtract ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_Separator ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_Enter ] }; key { [ KP_0 ] }; key { [ KP_Decimal ] }; key { [ KP_Tab ] }; // End "Keypad" section modifier_map Shift { Shift_R }; modifier_map Mod3 { Alt_L }; }; PK(f[oX  symbols/mlnu[default partial alphanumeric_keys xkb_symbols "basic" { include "fr(basic)" name[Group1]="Bambara"; key { [ n, N, U0272, U019D ] }; // n N ɲ Ɲ key { [ s, S, U0161, U0160 ] }; // s S š Š key { [ g, G, U0254, U0186 ] }; // g G ɔ Ɔ key { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ key { [ z, Z, U017E, U017d ] }; // z Z ž Ž key { [ e, E, U025B, U0190 ] }; // e E ɛ Ɛ }; partial alphanumeric_keys xkb_symbols "fr-oss" { include "fr(oss)" name[Group1]="French (Mali, alt.)"; // š Š on d replaces ë Ë // ɲ Ɲ on j replaces ü Ü // ŋ Ŋ on m replaces ö Ö // ž Ž on z replaces â  // ɛ Ɛ on r replaces ê Ê // ɔ Ɔ on p replaces ô Ô key { [ d, D, U0161, U0160 ] }; // d D š Š key { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ key { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ key { [ z, Z, U017E, U017d ] }; // z Z ž Ž key { [ r, R, U025B, U0190 ] }; // r R ɛ Ɛ key { [ p, P, U0254, U0186 ] }; // p P ɔ Ɔ }; partial alphanumeric_keys xkb_symbols "us-mac" { include "us(mac)" name[Group1]="English (Mali, US, Macintosh)"; // ž Ž on z replaces Ω ¸ // ɛ Ɛ on a replaces å Å // š Š on s replaces ß // ɲ Ɲ on j replaces ∆ ½ // ŋ Ŋ on k replaces °  // ɔ Ɔ on o replaces ø Ø key { [ z, Z, U017E, U017d ] }; // z Z ž Ž key { [ a, A, U025B, U0190 ] }; // a A ɛ Ɛ key { [ s, S, U0161, U0160 ] }; // s S š Š key { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ key { [ k, K, U014B, U014A ] }; // k K ŋ Ŋ key { [ o, O, U0254, U0186 ] }; // o O ɔ Ɔ }; partial alphanumeric_keys xkb_symbols "us-intl" { include "us(intl)" name[Group1]="English (Mali, US, intl.)"; // ž Ž on x replaces // š Š on s replaces ß § // ɲ Ɲ on h replaces // ŋ Ŋ on j replaces // ɛ Ɛ on w replaces å Å // ɔ Ɔ on o replaces ó Ó key { [ x, X, U017E, U017d ] }; // x X ž Ž key { [ s, S, U0161, U0160 ] }; // s S š Š key { [ h, H, U0272, U019D ] }; // h H ɲ Ɲ key { [ j, J, U014B, U014A ] }; // j J ŋ Ŋ key { [ w, W, U025B, U0190 ] }; // w W ɛ Ɛ key { [ o, O, U0254, U0186 ] }; // o O ɔ Ɔ }; PK(f[,Z2 symbols/twnu[default partial alphanumeric_keys xkb_symbols "tw" { include "us(basic)" name[Group1]= "Taiwanese"; key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, U030D, exclamdown ] }; key { [ 2, at, U0358, twosuperior ] }; key { [ 3, numbersign, section, threesuperior ] }; key { [ 4, dollar, yen, sterling ] }; key { [ 5, percent, EuroSign, cent ] }; key { [ 6,asciicircum, dead_circumflex, dead_caron ] }; key { [ 7, ampersand, dead_acute, NoSymbol ] }; key { [ 8, asterisk, dead_cedilla, dead_horn ] }; key { [ 9, parenleft, dead_ogonek, dead_breve ] }; key { [ 0, parenright, dead_abovedot, dead_abovering ] }; key { [ minus, underscore, dead_macron, plusminus ] }; key { [ equal, plus, multiply, division ] }; key { [ q, Q, paragraph, degree ] }; key { [ e, E, eacute, Eacute ] }; key { [ r, R, U1E5F, U1E5E ] }; key { [ t, T, U1E6F, U1E6E ] }; key { [ y, Y, U1E73, U1E72 ] }; key { [ u, U, U0289, U0244 ] }; key { [ i, I, U0268, U0197 ] }; key { [ o, O, oslash, Ooblique ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ d, D, U1E0F, U1E0E ] }; key { [ g, G, eng, ENG ] }; key { [ l, L, U1E3B, U1E3A ] }; key { [ semicolon, colon, U02D0, dead_diaeresis ] }; key { [apostrophe, quotedbl, U02BC, dead_doubleacute ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, mu, mu ] }; key { [ comma, less, dead_belowcomma, guillemotleft ] }; key { [ period, greater, dead_belowdot, guillemotright ] }; key { [ slash, question, questiondown, dead_hook ] }; key { [ backslash, bar, notsign, brokenbar ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "indigenous" { include "tw(tw)" name[Group1]= "Taiwanese (indigenous)"; key { [ U02BC, quotedbl, apostrophe, dead_doubleacute ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "saisiyat" { include "tw(indigenous)" name[Group1]= "Saisiyat (Taiwan)"; key { [ U02D0, colon, semicolon, dead_diaeresis ] }; include "level3(ralt_switch)" }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/tw(sun_type6)" }; PK(f[lB symbols/runu[// Keyboard layouts for Russia. // AEN // 2001/12/23 by Leon Kanter // 2005/12/09 Valery Inozemtsev // 2018/07/15 @a13 (a.k.a. @dbvvmpg) and Stepanenko Andrey // Windows layout default partial alphanumeric_keys xkb_symbols "winkeys" { include "ru(common)" name[Group1]= "Russian"; key { [ 3, numerosign ] }; key { [ 4, semicolon ] }; key { [ 5, percent ] }; key { [ 6, colon ] }; key { [ 7, question ] }; key { [ 8, asterisk, U20BD ] }; key { [ period, comma ] }; key { [ backslash, slash ] }; }; hidden partial alphanumeric_keys xkb_symbols "common" { key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numbersign ] }; key { [ 4, asterisk ] }; key { [ 5, colon ] }; key { [ 6, comma ] }; key { [ 7, period ] }; key { [ 8, semicolon ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ backslash, bar ] }; key { [ slash, question ] }; key { [ slash, bar ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; include "kpdl(comma)" }; partial alphanumeric_keys xkb_symbols "legacy" { include "ru(common)" name[Group1]= "Russian (legacy)"; }; partial alphanumeric_keys xkb_symbols "olpc" { include "ru(common)" key { [ 0x01000451, 0x01000401, grave ] }; // Ñ‘, Ð key { [ 3, numbersign, 0x01002116 ] }; // â„– key { [ 4, dollar, semicolon ] }; key { [ 6, asciicircum, colon ] }; key { [ 7, ampersand ] }; key { [ 9, parenleft, acute ] }; key { [ backslash, bar, slash ] }; include "group(olpc)" }; partial alphanumeric_keys xkb_symbols "typewriter" { include "ru(common)" name[Group1]= "Russian (typewriter)"; key { [ bar, plus ] }; key { [ numerosign, 1 ] }; key { [ minus, 2 ] }; key { [ slash, 3 ] }; key { [ quotedbl, 4 ] }; key { [ colon, 5 ] }; key { [ comma, 6 ] }; key { [ period, 7 ] }; key { [ underscore, 8 ] }; key { [ question, 9 ] }; key { [ percent, 0 ] }; key { [ exclam, equal ] }; key { [ semicolon, backslash ] }; key { [ parenright, parenleft ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; }; partial alphanumeric_keys xkb_symbols "typewriter-legacy" { include "ru(common)" name[Group1]= "Russian (typewriter, legacy)"; key { [ apostrophe, quotedbl ] }; key { [ exclam, 1 ] }; key { [ numerosign, 2 ] }; key { [ slash, 3 ] }; key { [ semicolon, 4 ] }; key { [ colon, 5 ] }; key { [ comma, 6 ] }; key { [ period, 7 ] }; key { [ underscore, 8 ] }; key { [ question, 9 ] }; key { [ percent, 0 ] }; key { [ parenleft, parenright ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; }; partial alphanumeric_keys xkb_symbols "phonetic" { name[Group1]= "Russian (phonetic)"; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, Cyrillic_io ] }; key { [ 4, Cyrillic_IO ] }; key { [ 5, Cyrillic_hardsign ] }; key { [ 6, Cyrillic_HARDSIGN ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ period, greater ] }; key { [ slash, question ] }; key { [ comma, less ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ bar, brokenbar ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_e, Cyrillic_E ] }; }; partial alphanumeric_keys xkb_symbols "phonetic_winkeys" { include "ru(phonetic)" name[Group1]= "Russian (phonetic, with Win keys)"; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; }; partial alphanumeric_keys xkb_symbols "phonetic_yazherty" { include "ru(phonetic_winkeys)" name[Group1]= "Russian (phonetic yazherty)"; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; }; partial alphanumeric_keys xkb_symbols "tt" { include "ru(winkeys)" name[Group1]= "Tatar"; key.type[group1]="FOUR_LEVEL"; key { [ Cyrillic_shha, Cyrillic_SHHA, Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_zhe_descender, Cyrillic_ZHE_descender, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "os_legacy" { include "ru(common)" name[Group1]= "Ossetian (legacy)"; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; key { [ 0x010004D5, 0x010004D4 ] }; }; partial alphanumeric_keys xkb_symbols "os_winkeys" { include "ru(winkeys)" name[Group1]= "Ossetian (Win keys)"; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; key { [ 0x010004D5, 0x010004D4 ] }; }; partial alphanumeric_keys xkb_symbols "cv" { include "ru(winkeys)" name[Group1]= "Chuvash"; key.type[group1]="FOUR_LEVEL"; key { [ Cyrillic_u, Cyrillic_U, 0x010004f3, 0x010004f2 ] }; key { [ Cyrillic_ie, Cyrillic_IE, 0x010004d7, 0x010004d6 ] }; key { [ Cyrillic_a, Cyrillic_A, 0x010004d1, 0x010004d0 ] }; key { [ Cyrillic_es, Cyrillic_ES, 0x010004ab, 0x010004aa ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "udm" { include "ru(winkeys)" name[Group1]= "Udmurt"; key.type[group1]="FOUR_LEVEL"; key { [ question, exclam, 1, 1 ] }; key { [ parenleft, quotedbl, 2, 2 ] }; key { [ parenright, numerosign, 3, 3 ] }; key { [ colon, semicolon, 4, 4 ] }; key { [ asterisk, percent, 5, 5 ] }; key { [ 0x010004dd, 0x010004dc, 6, 6 ] }; key { [ 0x010004e7, 0x010004e6, 7, 7 ] }; key { [ 0x010004f5, 0x010004f4, 8, 8 ] }; key { [ 0x010004e5, 0x010004e4, 9, 9 ] }; key { [ 0x010004df, 0x010004de, 0, 0 ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "cv_latin" { include "us(alt-intl)" name[Group1]= "Chuvash (Latin)"; key.type[group1]="FOUR_LEVEL"; key { [ q, Q, 0x01000161, 0x01000160 ] }; key { [ w, W, udiaeresis, Udiaeresis ] }; key { [ e, E, 0x01000115, 0x01000114 ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ i, I, 0x0100012d, 0x0100012c ] }; key { [ o, O, odiaeresis, Odiaeresis ] }; key { [ a, A, abreve, Abreve ] }; key { [ s, S, scedilla, Scedilla ] }; key { [ g, G, gbreve, Gbreve ] }; key { [ j, J, 0x01000131, 0x01000130 ] }; key { [ c, C, ccedilla, Ccedilla ] }; include "level3(ralt_switch)" }; // Komi language layout // Vlad Shakhov // last changes 2007/10/23 partial alphanumeric_keys xkb_symbols "kom" { include "ru(winkeys)" name[Group1]= "Komi"; key.type[group1]="FOUR_LEVEL_ALPHABETIC"; // cyrilllic o with diaeresis key { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; // hard I as additional key for soft Cyrillic_I key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; include "level3(ralt_switch)" }; // Yakut language layout // 2008/04/23 Yakov Aleksandrov // 2008/04/23 Anatoliy Zhozhikov // 2008/04/23 Aleksandr Varlamov partial alphanumeric_keys xkb_symbols "sah" { include "ru(winkeys)" name[Group1]= "Yakut"; key.type[group1]="FOUR_LEVEL_ALPHABETIC"; key { [ Cyrillic_io, Cyrillic_IO, U04EB, U04EA ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, U048B, U048A ] }; key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; key { [ Cyrillic_ka, Cyrillic_KA, U04C4, U04C3 ] }; key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, U0495, U0494 ] }; key { [ Cyrillic_ze, Cyrillic_ZE, U04E1, U04E0 ] }; key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE, U0461, U0460 ] }; key { [ Cyrillic_che, Cyrillic_CHE, Cyrillic_u_macron, Cyrillic_U_macron ] }; key { [ Cyrillic_em, Cyrillic_EM, U04C8, U04C7 ] }; key { [ Cyrillic_i, Cyrillic_I, Cyrillic_i_macron, Cyrillic_I_macron ] }; include "level3(ralt_switch)" }; //Kalmyk language layout //based on the Kalmyk language layout: http://soft.oyrat.org/ //Nikolay Korneev //Toli Miron partial alphanumeric_keys xkb_symbols "xal" { include "ru(winkeys)" name[Group1]= "Kalmyk"; key.type[group1]="FOUR_LEVEL"; key { [ question, exclam, 1 ] }; key { [ numerosign, quotedbl, 2 ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight, 3 ] }; key { [ Cyrillic_schwa, Cyrillic_SCHWA, 4 ] }; key { [ asterisk, percent, 5 ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender, 6 ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar, 7 ] }; key { [ Cyrillic_shha, Cyrillic_SHHA, 8 ] }; key { [ Cyrillic_zhe_descender, Cyrillic_ZHE_descender, 9 ] }; key { [ semicolon, colon, 0 ] }; key { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_tse, Cyrillic_TSE, dollar ] }; key { [ Cyrillic_u, Cyrillic_U, EuroSign ] }; key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; key { [ Cyrillic_ie, Cyrillic_IE, trademark ] }; key { [ Cyrillic_ha, Cyrillic_HA, bracketleft ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright ] }; key { [ Cyrillic_e, Cyrillic_E, apostrophe ] }; key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; key { [ Cyrillic_be, Cyrillic_BE, less ] }; key { [ Cyrillic_yu, Cyrillic_YU, greater ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "dos" { include "ru(common)" name[Group1]= "Russian (DOS)"; key { [ parenright, parenleft ] }; key { [ 4, currency ] }; key { [ 9, question ] }; key { [ 0, percent ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; }; partial alphanumeric_keys xkb_symbols "bak" { include "ru(winkeys)" name[Group1]= "Bashkirian"; key.type[group1]="FOUR_LEVEL"; key { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_io, Cyrillic_IO ] }; key { [ exclam, quotedbl, 1, 1 ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar, 2, 2 ] }; key { [ 0x010004a1, 0x010004a0, 3, 3 ] }; key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, 4, 4 ] }; key { [ 0x010004ab, 0x010004aa, 5, 5 ] }; key { [ colon, semicolon, 6, 6 ] }; key { [ 0x01000499, 0x01000498, 7, 7 ] }; key { [ Cyrillic_shha, Cyrillic_SHHA, 8, 8 ] }; key { [ question, parenleft, 9, 9 ] }; key { [ numerosign, parenright, 0, 0 ] }; key { [ minus, percent, minus, underscore ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight, equal, plus ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender, backslash, slash ] }; include "level3(ralt_switch)" }; // Serbian characters are added as third-level symbols to Russian keyboard layout. partial alphanumeric_keys xkb_symbols "srp" { include "ru(common)" name[Group1]= "Serbian (Russia)"; key { [ 3, numerosign ] }; key { [ 4, semicolon ] }; key { [ 5, percent ] }; key { [ 6, colon ] }; key { [ 7, question ] }; key { [ 8, asterisk ] }; key { [ period, comma ] }; key { [ backslash, slash ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, U458, U408 ] }; key { [ Cyrillic_en, Cyrillic_EN, U45A, U40A ] }; key { [ Cyrillic_el, Cyrillic_EL, U459, U409 ] }; key { [ Cyrillic_de, Cyrillic_DE, U45F, U40F ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE, U452, U402 ] }; key { [ Cyrillic_che, Cyrillic_CHE, U45B, U40B ] }; include "level3(ralt_switch)" }; // Mari language layout // http://www.marlamuter.com/ // Last edit by Viatcheslav Kileev (slavakileev@yandex.ru) partial alphanumeric_keys xkb_symbols "chm" { include "ru(winkeys)" name[Group1]= "Mari"; key.type[group1]="FOUR_LEVEL_ALPHABETIC"; key { [ Cyrillic_a, Cyrillic_A, U04D3, U04D2 ] }; key { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] }; key { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] }; key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; key { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "phonetic_azerty" { include "level3(ralt_switch)" name[Group1]= "Russian (phonetic, AZERTY)"; key { [ ampersand, 1, onesuperior, exclamdown ] }; key { [ eacute, 2, asciitilde, oneeighth ] }; key { [ quotedbl, 3, numbersign, sterling ] }; key { [apostrophe, 4, braceleft, dollar ] }; key { [ parenleft, 5, bracketleft, threeeighths ] }; key { [ minus, 6, bar, fiveeighths ] }; key { [ egrave, 7, grave, seveneighths ] }; key { [underscore, 8, backslash, trademark ] }; key { [ ccedilla, 9, asciicircum, plusminus ] }; key { [ agrave, 0, at, degree ] }; key { [parenright, degree, bracketright, questiondown ] }; key { [ equal, plus, braceright, dead_ogonek ] }; key { [ comma, question, acute, doubleacute ] }; key { [ semicolon, period, horizconnector, multiply ] }; key { [ colon, slash, periodcentered, division ] }; key { [ exclam, section, dead_belowdot, dead_abovedot ] }; key { [ ugrave, percent, asciicircum, caron ] }; key { [ bar, brokenbar ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; // Q key { [ Cyrillic_ze, Cyrillic_ZE ] }; // Z key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; // W key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; // M key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_e, Cyrillic_E ] }; }; // Russian dvorak phonetic layout // Oleg Zalizniak partial alphanumeric_keys xkb_symbols "phonetic_dvorak" { include "level3(ralt_switch)" name[Group1]= "Russian (phonetic, Dvorak)"; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, Cyrillic_io ] }; key { [ 4, Cyrillic_IO ] }; key { [ 5, Cyrillic_hardsign ] }; key { [ 6, Cyrillic_HARDSIGN ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; key { [ comma, less, dead_cedilla, dead_caron ] }; key { [ period, greater, dead_abovedot, periodcentered ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ slash, question ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ minus, underscore ] }; key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; }; partial alphanumeric_keys xkb_symbols "phonetic_fr" { include "fr" include "ru(phonetic_azerty)" name[Group1]= "Russian (phonetic, French)"; }; // EXTRAS: // Rulemak, Colemak based Russian phonetic layout // contact: Geert Hendrickx // http://forum.colemak.com/viewtopic.php?id=519 // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ Ё ``│ ! ˝ │ @ │ № │ $ │ % │ ^ ¯ │ & │ * ₴ │ ( │ ) │ _ — │ Ъ + ┃ ⌫ ┃ // │ ё ` │ 1 ´ │ 2 ¨ │ 3 # │ 4 ¢ │ 5 € │ 6 ˘ │ 7 │ 8 ₽ │ 9 [ │ 0 ] │ - – │ ъ = ┃Backspace┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ Я Ѣ │ Ж Ѵ │ Ф Ѳ │ П │ Г Ґ │ й Ј │ Л Љ │ У Ў │ Ы Ї │ Ю : │ Ш { │ Щ } ┃ Enter ┃ // ┃ Tab ↹ ┃ я ѣ │ ж ѵ │ ф ѳ │ п │ г ґ │ й ј │ л љ │ у ў │ ы ї │ ю ; │ ш « │ щ » ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ⌫ Back ┃ А │ Р │ С │ Т Ћ │ Д Ђ │ Ч Џ │ Н Њ │ Е Є │ И І │ О │ Ь " │ Э | ┃ ┃ // ┃ space ┃ а │ р │ с │ т ћ │ д ђ │ ч џ │ н њ │ е є │ и і │ о │ ь ' │ э \ ┃ ┃ // ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫ // ┃ ┃ З Ѕ │ Х │ Ц │ В │ Б Ѓ │ К Ќ │ М │ ; │ : │ ? Ӏ ┃ ┃ // ┃ Shift ⇧ ┃ з ѕ │ х │ ц │ в │ б ѓ │ к ќ │ м │ , < │ . > │ / ӏ ┃ Shift ⇧ ┃ // ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃ Ctrl ┃ Meta ┃ Alt ┃ Space ┃AltGr ⇮┃ Menu ┃ Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "rulemak" { name[Group1]= "Russian (Rulemak, phonetic Colemak)"; key { [ Cyrillic_io, Cyrillic_IO, U0300, U030F ] }; // Combining grave, double grave key { [ 1, exclam, U0301, U030B ] }; // Combining acute, double acute key { [ 2, at, U0308 ] }; // Combining diaeresis key { [ 3, numerosign, numbersign ] }; key { [ 4, dollar, cent ] }; key { [ 5, percent, EuroSign ] }; key { [ 6, asciicircum, U0306, U0304 ] }; // Combining breve, macron key { [ 7, ampersand ] }; key { [ 8, asterisk, U20BD, U20B4 ] }; // ruble, hryvnia key { [ 9, parenleft, bracketleft ] }; key { [ 0, parenright, bracketright ] }; key { [ minus, underscore, endash, emdash ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] }; key { [ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ] }; // yat key { [ Cyrillic_zhe, Cyrillic_ZHE, U0475, U0474 ] }; // izhitsa key { [ Cyrillic_ef, Cyrillic_EF, U0473, U0472 ] }; // fita key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_je, Cyrillic_JE ] }; key { [ Cyrillic_el, Cyrillic_EL, Cyrillic_lje, Cyrillic_LJE ] }; key { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] }; key { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_yi, Ukrainian_YI ] }; key { [ Cyrillic_yu, Cyrillic_YU, semicolon, colon ] }; key { [ Cyrillic_sha, Cyrillic_SHA, guillemotleft, braceleft ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA, guillemotright, braceright ] }; key { [ Cyrillic_e, Cyrillic_E, backslash, bar ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_te, Cyrillic_TE, Serbian_tshe, Serbian_TSHE ] }; key { [ Cyrillic_de, Cyrillic_DE, Serbian_dje, Serbian_DJE ] }; key { [ Cyrillic_che, Cyrillic_CHE, Cyrillic_dzhe, Cyrillic_DZHE ] }; key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_nje, Cyrillic_NJE ] }; key { [ Cyrillic_ie, Cyrillic_IE, Ukrainian_ie, Ukrainian_IE ] }; key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, quotedbl ] }; key { [ Cyrillic_ze, Cyrillic_ZE, Macedonia_dse, Macedonia_DSE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_be, Cyrillic_BE, Macedonia_gje, Macedonia_GJE ] }; key { [ Cyrillic_ka, Cyrillic_KA, Macedonia_kje, Macedonia_KJE ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ comma, semicolon, less ] }; key { [ period, colon, greater ] }; key { [ slash, question, U04CF, U04C0 ] }; // palochka key { [ equal, plus, multiply, division ] }; include "level3(ralt_switch)" include "capslock(backspace)" include "nbsp(level4)" }; // Church Slavonic language layout // based on the Russian standard keyboard // by Aleksandr Andreev and Yuri Shardt // last changes 2010/08/01; contact partial alphanumeric_keys xkb_symbols "chu" { name[Group1]= "Church Slavonic"; key { [ Ukrainian_yi, Ukrainian_YI, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign key { [ U0461, U0460, U047D, U047C ] }; // ѡ Ѡ ѽ Ѽ key { [ Ukrainian_ie, Ukrainian_IE, U0465, U0464 ] }; // є Є ѥ Ѥ key { [ U046F, U046E, U0469, U0468 ] }; // ѯ Ѯ ѩ Ѩ key { [ U0471, U0470, U046D, U046C ] }; // ѱ Ѱ ѭ Ѭ key { [ U0473, U0472, UA657, UA656 ] }; // ѳ Ѳ iotified A key { [ U0475, U0474, U0477, U0476 ] }; // ѵ Ѵ ѷ Ѷ key { [ U047B, U047A, UA64D, UA64C ] }; // ѻ Ѻ ꙍ Ꙍ key { [ U047F, U047E, U046B, U046A ] }; // ѿ Ѿ ѫ Ѫ key { [ Macedonia_dse, Macedonia_DSE, parenleft, asterisk ] }; // ѕ Ѕ ( * key { [ Cyrillic_u, Cyrillic_U, parenright, U0488]}; // у У ) NB: for digraph Ouk, use Cyrillic_o + Cyrillic_u key { [ U0483, U0486, U0487, U005F ] }; // а҃ а҆ а҇, _ (titlo, psili, pokrytie, underscore) key { [ U0301, U0300, U0484, UA67E ] }; // а̀ а́ а҄ ꙾ (oxia, varia, kamora, kavyka) key { [ Cyrillic_shorti, Cyrillic_SHORTI, Ukrainian_i ] }; key { [ Cyrillic_tse, Cyrillic_TSE, U2DF0 ] }; key { [ UA64B, UA64A, U2DF9 ] }; // Cyrillic monograph Uk (not U)! key { [ Cyrillic_ka, Cyrillic_KA, U2DE6 ] }; key { [ Cyrillic_ie, Cyrillic_IE, U2DF7 ] }; key { [ Cyrillic_en, Cyrillic_EN, U2DE9 ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, U2DE2 ] }; key { [ Cyrillic_sha, Cyrillic_SHA, U2DF2 ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA, U2DF3 ] }; key { [ Cyrillic_ze, Cyrillic_ZE, U2DE5 ] }; key { [ Cyrillic_ha, Cyrillic_HA, U2DEF ] }; key { [Cyrillic_hardsign,Cyrillic_HARDSIGN, UA67D ] }; // Payerok key { [ backslash, slash, colon, question ] }; // \ / : ? NB: for Slavonic question, use semicolon key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ve, Cyrillic_VE, U2DE1 ] }; key { [ Cyrillic_a, Cyrillic_A, U2DF6 ] }; key { [ Cyrillic_pe, Cyrillic_PE, U2DEB ] }; key { [ Cyrillic_er, Cyrillic_ER, U2DEC ] }; key { [ Cyrillic_o, Cyrillic_O, U2DEA ] }; key { [ Cyrillic_el, Cyrillic_EL, U2DE7 ] }; key { [ Cyrillic_de, Cyrillic_DE, U2DE3 ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE, U2DE4 ] }; key { [ U0463, U0462, U2DFA ] }; // Yat key { [ U0467, U0466, U2DFD ] }; // Small Yus key { [ Cyrillic_che, Cyrillic_CHE, U2DF1 ] }; key { [ Cyrillic_es, Cyrillic_ES, U2DED ] }; key { [ Cyrillic_em, Cyrillic_EM, U2DE8 ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_te, Cyrillic_TE, U2DEE ] }; key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE, U2DE0 ] }; key { [ Cyrillic_yu, Cyrillic_YU, U2DFB ] }; key { [ period, comma, semicolon, exclam ] }; }; // RUU (Russian-Ukrainian United keyboard layout). // This is a modified Russian standard keyboard, with the third level containing // Ukrainian and Belorusian alphabetic letters and commonly used Unicode symbols. // For a description see http://wiki.opennet.ru/RUU [in Russian]. // Vasyĺ V. Vercynśkyj // last changes 2011/05/11 // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ' ~ │ ! ≈ │ " ∞ │ № ₴ │ ; € │ % ‰ │ : ≤ │ ? ≥ │ * × │ ( { │ ) } │ _ – │ + ± ┃ ⌫ ┃ // │ ’ ́ │ 1 ÷ │ 2 ¤ │ 3 § │ 4 $ │ 5 ° │ 6 < │ 7 > │ 8 • │ 9 [ │ 0 ] │ - — │ = ≠ ┃Backspace┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ Й │ Ц │ У Ў │ К │ Е Ё │ Н │ Г Ґ │ Ш │ Щ │ З │ Х │ Ъ Ї ┃ Enter ┃ // ┃ Tab ↹ ┃ й │ ц │ у ў │ к ® │ е ё │ н │ г ґ │ ш │ щ │ з │ х │ ъ ї ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ Caps ┃ Ф │ Ы І │ В │ А │ П │ Р │ О │ Л │ Д │ Ж │ Э Є │ | ¦ ┃ ┃ // ┃ Lock ⇬ ┃ ф │ ы і │ в │ а │ п │ р │ о │ л │ д │ ж │ э є │ / \ ┃ ┃ // ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫ // ┃ ┃ Я │ Ч │ С │ М │ И │ Т │ Ь │ Б „ │ Ю “ │ , … ┃ ┃ // ┃ Shift ⇧ ┃ я │ ч │ с © │ м │ и │ т ™ │ ь µ │ б « │ ю » │ . / ┃ Shift ⇧ ┃ // ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃ Ctrl ┃ Meta ┃ Alt ┃ Space ┃AltGr ⇮┃ Menu ┃ Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "ruu" { include "ru(common)" name[Group1]= "Russian (with Ukrainian-Belorussian layout)"; key { [ U2019, apostrophe, U0301, asciitilde ] }; // Apostrophe and Stress symbol key { [ 1, exclam, division, U2248 ] }; // Division Sign and Almost Equal To key { [ 2, quotedbl, currency, infinity ] }; key { [ 3, numerosign, section, U20B4 ] }; // Paragraph and Hryvnia sign key { [ 4, semicolon, dollar, EuroSign ] }; key { [ 5, percent, degree, permille ] }; key { [ 6, colon, less, lessthanequal ] }; key { [ 7, question, greater, greaterthanequal ] }; key { [ 8, asterisk,enfilledcircbullet,multiply ] }; key { [ 9, parenleft, bracketleft, braceleft ] }; key { [ 0, parenright, bracketright, braceright ] }; key { [ minus, underscore, emdash, endash ] }; key { [ equal, plus, notequal, plusminus ] }; key { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] }; key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ Cyrillic_ze, Cyrillic_ZE, paragraph ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI ] }; key { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] }; key { [ slash, bar, backslash, brokenbar ] }; key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; key { [ Cyrillic_te, Cyrillic_TE, trademark ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, mu ] }; key { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] }; key { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark ] }; key { [ period, comma, slash, ellipsis ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/ru(sun_type6)" }; // Apple layout partial alphanumeric_keys xkb_symbols "mac" { include "ru(common)" name[Group1]= "Russian (Macintosh)"; key { [ less, greater ] }; key { [ 2, quotedbl ] }; key { [ 3, numerosign ] }; key { [ 4, percent ] }; key { [ 5, colon ] }; key { [ 6, comma ] }; key { [ 7, period ] }; key { [ 8, semicolon ] }; key { [ bracketright, bracketleft ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_er, Cyrillic_ER, U20BD ] }; include "level3(ralt_switch)" }; // eng: Russian-based polyglot and reactionary keyboard layout // This keyboard layout covers Russian in Petrine 1708 and Bolshevik 1918 variant spelling, Ukrainian, Belorussian, Serbian in its modern and Slavenoserbian variants, and Bulgarian and Slavomacedonian in pre-1945 and post-1945 spelling, // in short all in any dominion prevailing Cyrillic orthographies of modern secular Slavic literary languages, even with dictionary accentuation marks, // but also the most-widespread Church Slavonic spellings, that is all Church-Slavonic in so far as variants can be replaced without loss of meaning – not to speak of Interslavic. // Furthermore, it suffices Romanian Cyrillic, Moldovan Cyrillic, Abkhazian excluding the more clumsy obsoleted forms unlikely to find devotees, Tajik, all Turkic and Mongolic Cyrillic alphabets // and virtually all overlooked languages in Cyrillic reigns at least by combining characters, taking advantage of eight key levels. // This is withal a pan-Cyrillic keyboard layout, or a comprehensive Cyrillic keyboard layout, an universal Cyrillic keyboard layout, a generic Cyrillic keyboard layout. // // rus: Многоязыковая и реакціонная клавіатурная разкладка основана на русскихъ // Сія разкладка покрываетъ русскій въ петровскомъ правописаніи 1708-го года и большевицкомъ 1918-го, украинскій, бѣлорусскій въ современномъ и славяносербскомъ видѣ, и булгарскій и славомацедонскій въ писаніи до и послѣ 1945-го года, // короче всѣ въ какомъ-либо державствѣ преобладающія правописанія, то есть весь церкославянскій, поскольку какъ разные виды буквъ можно возмѣщать безъ потери значенія — не говоря о междуславянскомъ. // Свѣрхъ этого, она подходитъ къ румынской кириллицѣ, къ молдавской кириллицѣ, къ абхазскому за изключеніемъ неуклюжихъ устарѣлыхъ образовъ, у которыхъ невѣроятно что они вообще найдутъ поклонниковъ, къ таджикскому, къ всѣмъ тюрксимъ и монголскимъ кириллицамъ, // и по сути дѣла всѣмъ упущеннымъ языкамъ въ кириллическихъ правленіяхъ хотя бы соединящими сѵмволами, извлѣкая выгоду изъ восьми уровней клавишъ. // Тѣмъ всѣмъ сё всекириллическая клавіатурная разкладка, или всеобъемлющая кириллическая разкладка, или универсальная кириллическая разкладка клавіатуры. // // srp: Многојезиков и реакционаран распоред тастера основан на рускима // Овај распоред покрива руски у петровском правопису 1708-е године и бољшевичком 1918-е године, украјински, белоруски, српски у сувременом и славеносрпском виду, те бугарски и славомакедонски у писању до и после 1945-е године, // укратко све у некој држави преовлађујуће правописе, то је читав црквенословенски, пошто је могуће разне видове слова замењивати без губитка значења — не говорећи о меџусловенском. // Поврх овог, он одговара к румунској ћирилици, к молдавској ћирилици, к абхаскоме с изузетком гломазних застарелих ликова, уз које није вероватно да они најђу поклонике, к таџичкоме, к свим туркијским и монголским ћирилицима, // те у спровођењу свим испуштеним језицима у ћириличким господарствима бар са спајајућим симболима, искориштавајући осам ступњева тастера. // Тиме свим ово је свећирилички тастатуран распоред, или свеобухватан ћирилички распоред тастера, или свеопшти ћирилички тастатуран распоред. partial alphanumeric_keys xkb_symbols "prxn" { name[Group1]= "Russian (Polyglot and Reactionary)"; key.type[Group1]="EIGHT_LEVEL"; key { [ U2019, apostrophe, U0301, U0300, U2053, U2015, U02BC, asciitilde ] }; // Typographic Apostrophe, Apostrophe, Combining Acute, Combining Grave, Swung Dash, Quotation Dash, Modifier Letter Apostrophe, Tilde key { [ 1, exclam, U0304, U0306, U0308, U0311, U0307, U0313 ] }; // 1, !, Combining Macron, Combining Breve, Combining Diaresis, Combining Inverted Breve, Combining Dot Above, Combining Comma Above key { [ 2,quotedbl,numerosign, U20BF, U20B8, U20AE, U00A3, U20B9 ] }; // 2 " № ₿ ₸ ₮ £ ₹ key { [ 3, section, U20B4, currency, U20BD, U20AA, U20BC, U20BE ] }; // 3 § ₴ ¤ ₽ ₪ ₼ ₾ key { [ 4, semicolon, dollar, EuroSign, U0482, U20DD, U0488, U0489 ] }; // 4 ; $ € Thousands Sign, Combining Enclosing Circle, Combining Hundred Thousands, Combining Millions key { [ 5, percent, degree, permille, UA670, UA671, UA672, UA66F ] }; // 5, %, °, ‰, Combinining Ten Millions, Combining Hundred Millions, Combining Thousand Millions, Combining Vzmet key { [ 6, colon, U0335, U0336, U0483, U0487, UFE2E, UFE2F ] }; // 6, :, Combining Short Stroke Overlay, Combining Long Stroke Overlay, Combining Titlo, Combining Pokrytie, Combining Titlo Left Half, Combining Titlo Right Half key { [ 7, question, U030B, U030F, U030C, U0303, U032C, U0360 ] }; // 7, ?, Combining Double Acute, Combining Double Grave, Combining Caron/Háček, Combining Tilde, Combining Caron/Háček Below, Combining Double Tilde key { [ 8, asterisk, U0331, U0332, U0333, U032F, U032D, U032E ] }; // 8, *, Combining Macron Below, Combining Low Line, Combining Double Low Line, Combining Inverted Breve Below, Combining Circumflex Accent, Combining Breve Below key { [ 9,parenleft, bracketleft, braceleft, U035F, U035D, U035E, U035C ] }; // 9 ( [ { Combining Double Macron Below, Combining Double Breve, Combining Double Macron, Combining Double Breve Below key { [ 0,parenright,bracketright, braceright, U27E8, U27E9, U04A7, U04A6 ] }; // 0 ) ] } ⟨⟩ ҧ Ҧ key { [ minus, underscore, emdash, endash, U2011,hyphen, U2010, U2212 ] }; // Hyphen-Minus, Underscore, Em Dash, En Dash, Non-Breaking-Hyphen, Soft Hyphen, Hyphen, Minus Sign key { [ equal, plus,notequal, U2248, U04FF, U04FE, U050D, U050C ] }; // = + ≠ ≈ ӿ Ӿ ԍ Ԍ key { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_je, Cyrillic_JE, U04CF, U04C0, U030A, U0325 ] }; // й Й ј Ј ӏ Ӏ, Combining Ring Above and Below key { [ Cyrillic_tse, Cyrillic_TSE, U04B5, U04B4, Cyrillic_u_straight, Cyrillic_U_straight, U051B, U051A ] }; // ц Ц ҵ Ҵ ү Ү ԛ Ԛ key { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_u_straight_bar,Cyrillic_U_straight_bar, Byelorussian_shortu, Byelorussian_SHORTU ] }; // у У ў Ў ұ Ұ ў Ў key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender, U049F, U049E, U046F, U046E ] }; // к К Қ қ ҟ Ҟ ѯ Ѯ key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO, U0463, U0462, UA653, UA652 ] }; // е Е ё Ё ѣ Ѣ ꙓ Ꙓ key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_nje, Cyrillic_NJE, Cyrillic_en_descender, Cyrillic_EN_descender, U04C8, U04C7 ] }; // н Н њ Њ ң Ң ӈ Ӈ key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn,Ukrainian_GHE_WITH_UPTURN, Cyrillic_ghe_bar, Cyrillic_GHE_bar, U04F7, U04F6 ] }; // г Г Ґ ґ ғ Ғ ӷ Ӷ key { [ Cyrillic_sha, Cyrillic_SHA, U04A1, U04A0, U04AB, U04AA, UA67D, UA67F ] }; // ш Ш ҡ Ҡ ҫ Ҫ Combining Payerok Payerok key { [ Cyrillic_shcha, Cyrillic_SHCHA, U0505, U0504, UA68D, UA68C, U050F, U050E ] }; // щ Щ ԅ Ԅ ꚍ Ꚍ ԏ Ԏ key { [ Cyrillic_ze, Cyrillic_ZE, U04E1, U04E0, U0499, U0498, U0507, U0506 ] }; // з З ӡ Ӡ ҙ Ҙ ԇ Ԇ key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA, Cyrillic_ha_descender, Cyrillic_HA_descender, U04FD, U04FC ] }; // х Х һ Һ ҳ Ҳ ӽ Ӽ key { [Cyrillic_hardsign,Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI, Macedonia_dse, Macedonia_DSE, U033E, U2E2F ] }; // ъ Ъ ї Ї ѕ Ѕ, Combining Yerok, Yerok key { [ Cyrillic_ef, Cyrillic_EF, U0473, U0472, U04C4, U04C3, U04FB, U04FA ] }; // ф Ф ѳ Ѳ ӄ Ӄ ӻ Ӻ key { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I, U04D5, U04D4, U04A9, U04A8 ] }; // ы Ы і І ӕ Ӕ ҩ Ҩ key { [ Cyrillic_ve, Cyrillic_VE, U051D, U051C, U0529, U0528, U0527, U0526 ] }; // в В ԝ Ԝ ԩ Ԩ ԧ Ԧ key { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA, UA657, UA656, UA655, UA654 ] }; // а А ә Ә ꙗ Ꙗ ꙕ Ꙕ key { [ Cyrillic_pe, Cyrillic_PE, U0525, U0524, U0471, U0470, UA65F, UA65E ] }; // п П ԥ Ԥ ѱ Ѱ ꙟ Ꙟ key { [ Cyrillic_er, Cyrillic_ER, U0481, U0480, U048F, U048E, U0521, U0520 ] }; // р Р ҁ Ҁ ҏ Ҏ ԡ Ԡ key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar, U047B, U047A, U0461, U0460 ] }; // о О ө Ө ѻ Ѻ ѡ Ѡ key { [ Cyrillic_el, Cyrillic_EL, Cyrillic_lje, Cyrillic_LJE, U04C6, U04C5, U052F, U052E ] }; // л Л љ Љ ӆ Ӆ ԯ Ԯ key { [ Cyrillic_de, Cyrillic_DE, Cyrillic_dzhe, Cyrillic_DZHE, U04BD, U04BC, U04BF, U04BE ] }; // д Д џ Џ ҽ Ҽ ҿ Ҿ key { [ Cyrillic_zhe, Cyrillic_ZHE, Serbian_dje, Serbian_DJE, Cyrillic_zhe_descender, Cyrillic_ZHE_descender, U04C2, U04C1 ] }; // ж Ж ђ Ђ Җ җ ӂ Ӂ key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE, U0465, U0464, U04CA, U04C9 ] }; // э Э є Є ѥ Ѥ ӊ Ӊ key { [ slash, bar, backslash, U260E, UA65B, UA65A, U0513, U0512 ] }; // / | \ ☎ ꙛ Ꙛ ԓ Ԓ key { [ U0495, U0494, U0501, U0500, U0503, U0502, U0509, U0508 ] }; // ҕ Ҕ ԁ Ԁ ԃ Ԃ ԉ Ԉ key { [ Cyrillic_ya, Cyrillic_YA, U0469, U0468, U0467, U0466, UA657, UA656 ] }; // я Я ѩ Ѩ ѧ Ѧ ꙗ Ꙗ key { [ Cyrillic_che, Cyrillic_CHE, Serbian_tshe, Serbian_TSHE, Cyrillic_che_descender, Cyrillic_CHE_descender, U2016, U00A6 ] }; // ч Ч ћ Ћ ҷ Ҷ ‖ ¦ key { [ Cyrillic_es, Cyrillic_ES, U046D, U046C, U046B, U046A, U04F7, U04F6 ] }; // с С ѭ Ѭ ѫ Ѫ ӷ Ӷ key { [ Cyrillic_em, Cyrillic_EM, multiply, division, U22C5, U2219, U04CE, U04CD ] }; // м М × ÷ ⋅ ∙ ӎ Ӎ key { [ Cyrillic_i, Cyrillic_I, U0475, U0474, U048B, U048A, periodcentered, U261B ] }; // и И ѵ Ѵ ҋ Ҋ · ☛ key { [ Cyrillic_te, Cyrillic_TE, U04AD, U04AC, U051F, U051E, Cyrillic_che_vertstroke, Cyrillic_CHE_vertstroke ] }; // т Т ҭ Ҭ ԟ Ԟ ҹ Ҹ key { [Cyrillic_softsign,Cyrillic_SOFTSIGN, U04A5, U04A4, UA64F, UA64E, U048D, U048C ] }; // ь Ь ҥ Ҥ ꙏ Ꙏ ҍ Ҍ key { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark, singlelowquotemark, U2039, U0523, U0522 ] }; // б Б « „ ‚ ‹ ԣ Ԣ key { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark, leftsinglequotemark, U203A, rightdoublequotemark, rightsinglequotemark]}; // ю Ю » “ ‘ › ” ’ key { [ period, comma, ellipsis, enfilledcircbullet, U04CC, U04CB, UA649, UA648 ] }; // . , … • ӌ Ӌ ꙉ Ꙉ // eng: Maps Right Alt for reaching the third level // rus: Составляетъ правую Alt для достиженія третьяго уровня // srp: Саставља десни Alt за достизање трећег ступња include "level3(ralt_switch)" // eng: Maps for reaching the fifth level // rus: Составляетъ для достиженія пятаго уровня // srp: Саставља за достизање петег ступња include "level5(caps_switch)" // eng: Offers pressing both shift keys for capslock // rus: Предоставляетъ нажатие обѣихъ клавишъ Shift для защелкиванія прописности буквъ // srp: Ставља на располагање притискивање обију тастера Shift за учвршћивање верзала include "shift(both_shiftlock)" // eng: Makes return comma instead of dot, as the comma is decimal separator in Cyrillic written languages // rus: Дѣлаетъ что отдаетъ запятую вмѣсто точки, такъ какъ запятая десятичный раздѣлитель въ языкахъ пишемыхъ кириллицей // srp: Ради да враћа зарез уместо точке, будући да зарез је десетни разделитељ у језицима који се пишу ћирилицом include "kpdl(comma)" // eng: Bug notice: One has to set lv5:rwin_switch_lock or one of the other level 5 locks for the caps switch to work! // rus: Приходится ставить lv5:rwin_switch_lock либо одинъ изъ другихъ затворовъ пятаго уровня, чтобы работалъ переключатель Caps! // srp: Потребно да се ставља lv5:rwin_switch_lock или једна из других брава петег ступња, да би шљакао пребацивач Caps! // https://bugs.freedesktop.org/show_bug.cgi?id=102189 }; partial alphanumeric_keys xkb_symbols "unipunct" { // Раскладка представляет собой обычную русскую раскладку, в которой некоторые редко используемые буквы // убрали на третий уровень, и поставили все пунктуационные знаки на то же место, где они стоят на // US раскладке (+ добавлен знак номера, который отсутствует в US раскладке, но часто нужен в RU). // ru(unipunct): // `~ 1! 2@ 3#3№ 4$ 5% 6^ 7& 8* 9( 0) -_ =+ // хХ бБ уУюЮ кК еЕэЭ нН гГ шШщЩ жЖ зЗ [{ ]} \| // фФ ыЫ вВ аА пП рР оОёЁ лЛ дД ;: '" //" // яЯ чЧцЦ сС мМ иИйЙ тТ ьЬъЪ ,< .> /? include "us(basic)" name[Group1]= "Russian (with US punctuation)"; // Единственный символ, который отсутствует на US раскладке - № key { [ 3, numbersign, 3, numerosign ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_che, Cyrillic_CHE, Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_i, Cyrillic_I, Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; }; PK(f[AFF symbols/bgnu[////////////////////////////////////////////////////////////////////////// // Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev // // This software may be used, modified, copied, distributed, and sold, // both in source and binary form provided that the above copyright // notice and these terms are retained. The name of the author may not // be used to endorse or promote products derived from this software // without prior permission. THIS SOFTWARE IS PROVIDED "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT // SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE. // ////////////////////////////////////////////////////////////////////////// // Version 2.0 // The following variants are defined in this file: // "bds" - the BDS keyboard layout compliant with the proposed // Bulgarian state standard BDS 5237:2006 // "phonetic" - the phonetic Bulgarian layout with the traditional position // of the letters // "bas_phonetic" - the phonetic keyboard layout compliant with the // proposed Bulgarian state standard BDS 5237:2006 // "latin" - an extended variant of the QWERTY layout with symbols that // Bulgarian users will type while the keyboard is in Latin mode // The reasons behind the layout of the symbols in levels 3 and 4 are // explained in http://arxiv.org/abs/0905.0484 (in Bulgarian). // Two notes for the maintainers of xkeyboard-config: // 1. Please do not use key names such as for the Bulgarian // phonetic layouts. The placement of the symbols must stay always // the same regardless of which one of the alias sets in // xkb/keycodes/aliases is used. // 2. The layouts should not include level3(ralt_switch). ////////////////////////////////////////////////////////////////////////// // Describes Bulgarian keyboard "BDS" modified according to the // the new state standard BDS 5237:2006 and extended with symbols in // levels 3 and 4. default partial alphanumeric_keys xkb_symbols "bds" { name[Group1]= "Bulgarian"; key {[ parenleft, parenright, bracketleft, bracketright ]}; key {[ 1, exclam ]}; key {[ 2, question ]}; key {[ 3, plus, dagger, dagger ]}; key {[ 4, quotedbl ]}; key {[ 5, percent, U2329, U232A ]}; key {[ 6, equal, emdash, emdash ]}; key {[ 7, colon, ellipsis, ellipsis ]}; key {[ 8, slash, U0300, U0301 ]}; key {[ 9, endash ]}; key {[ 0, numerosign ]}; key {[ minus, dollar, U2011, EuroSign ]}; key {[ period, EuroSign ]}; key {[ comma, Cyrillic_yeru, rightsinglequotemark, leftsinglequotemark ]}; key {[ Cyrillic_u, Cyrillic_U ]}; key {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]}; key {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]}; key {[ Cyrillic_sha, Cyrillic_SHA ]}; key {[ Cyrillic_shcha, Cyrillic_SHCHA ]}; key {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]}; key {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]}; key {[ Cyrillic_de, Cyrillic_DE ]}; key {[ Cyrillic_ze, Cyrillic_ZE ]}; key {[ Cyrillic_tse, Cyrillic_TSE ]}; key {[ semicolon, section ]}; key {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; key {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; key {[ Cyrillic_a, Cyrillic_A ]}; key {[ Cyrillic_o, Cyrillic_O ]}; key {[ Cyrillic_zhe, Cyrillic_ZHE ]}; key {[ Cyrillic_ghe, Cyrillic_GHE ]}; key {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]}; key {[ Cyrillic_en, Cyrillic_EN ]}; key {[ Cyrillic_ve, Cyrillic_VE ]}; key {[ Cyrillic_em, Cyrillic_EM ]}; key {[ Cyrillic_che, Cyrillic_CHE ]}; key {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]}; key {[ U045D, U040D ]}; key {[ Cyrillic_yu, Cyrillic_YU ]}; key {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]}; key {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]}; key {[ Cyrillic_e, Cyrillic_E ]}; key {[ Cyrillic_ef, Cyrillic_EF ]}; key {[ Cyrillic_ha, Cyrillic_HA ]}; key {[ Cyrillic_pe, Cyrillic_PE ]}; key {[ Cyrillic_er, Cyrillic_ER, registered, registered ]}; key {[ Cyrillic_el, Cyrillic_EL ]}; key {[ Cyrillic_be, Cyrillic_BE ]}; key {[ space, space, nobreakspace, nobreakspace ]}; key { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]}; }; // This is an improved variant of the traditional Bulgarian phonetic // keyboard. Some unnecessary symbols in levels 1 and 2 are replaced // by more useful ones (similar as in "bas_phonetic") and additional // symbols are added in levels 3 and 4. partial alphanumeric_keys xkb_symbols "phonetic" { name[Group1]= "Bulgarian (traditional phonetic)"; key {[ Cyrillic_che, Cyrillic_CHE ]}; key {[ 1, exclam ]}; key {[ 2, at ]}; key {[ 3, numerosign ]}; key {[ 4, dollar, EuroSign, EuroSign ]}; key {[ 5, percent ]}; key {[ 6, EuroSign ]}; key {[ 7, section ]}; key {[ 8, asterisk ]}; key {[ 9, parenleft, bracketleft, U2329 ]}; key {[ 0, parenright, bracketright, U232A ]}; key {[ minus, endash, U2011, U2011 ]}; key {[ equal, plus, emdash, dagger ]}; key {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; key {[ Cyrillic_ve, Cyrillic_VE ]}; key {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]}; key {[ Cyrillic_er, Cyrillic_ER, registered, registered ]}; key {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]}; key {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]}; key {[ Cyrillic_u, Cyrillic_U ]}; key {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]}; key {[ Cyrillic_o, Cyrillic_O ]}; key {[ Cyrillic_pe, Cyrillic_PE ]}; key {[ Cyrillic_sha, Cyrillic_SHA ]}; key {[ Cyrillic_shcha, Cyrillic_SHCHA ]}; key {[ Cyrillic_a, Cyrillic_A ]}; key {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]}; key {[ Cyrillic_de, Cyrillic_DE ]}; key {[ Cyrillic_ef, Cyrillic_EF ]}; key {[ Cyrillic_ghe, Cyrillic_GHE ]}; key {[ Cyrillic_ha, Cyrillic_HA ]}; key {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]}; key {[ Cyrillic_ka, Cyrillic_KA ]}; key {[ Cyrillic_el, Cyrillic_EL ]}; key {[ semicolon, colon, ellipsis, ellipsis ]}; key {[ apostrophe, quotedbl, rightsinglequotemark, leftsinglequotemark ]}; key {[ Cyrillic_yu, Cyrillic_YU ]}; key {[ U045D, U040D ]}; key {[ Cyrillic_ze, Cyrillic_ZE ]}; key {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; key {[ Cyrillic_tse, Cyrillic_TSE, copyright, copyright ]}; key {[ Cyrillic_zhe, Cyrillic_ZHE ]}; key {[ Cyrillic_be, Cyrillic_BE ]}; key {[ Cyrillic_en, Cyrillic_EN ]}; key {[ Cyrillic_em, Cyrillic_EM ]}; key {[ comma, doublelowquotemark, guillemotleft, guillemotleft ]}; key {[ period, leftdoublequotemark, guillemotright, guillemotright ]}; key {[ slash, question, U0300, U0301 ]}; key {[ space, space, nobreakspace, nobreakspace ]}; key { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]}; }; // This is the Bulgarian phonetic keyboard according to the proposed // state standard BDS 5237:2006 with additional symbols in levels 3 and 4. partial alphanumeric_keys xkb_symbols "bas_phonetic" { include "bg(phonetic)" name[Group1]= "Bulgarian (new phonetic)"; key {[ Cyrillic_yu, Cyrillic_YU ]}; key {[ Cyrillic_che, Cyrillic_CHE ]}; key {[ Cyrillic_sha, Cyrillic_SHA ]}; key {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; key {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; key {[ Cyrillic_zhe, Cyrillic_ZHE ]}; key {[ Cyrillic_ve, Cyrillic_VE ]}; }; // This is an extended variant of the standard Latin QWERTY layout with // additional symbols in levels 3 and 4. hidden partial alphanumeric_keys xkb_symbols "latin" { key {[ grave, asciitilde, U2248, U2245 ]}; key {[ 1, exclam, notsign, notsign ]}; key {[ 2, at, twosuperior, enfilledcircbullet ]}; key {[ 3, numbersign, threesuperior, notequal ]}; key {[ 4, dollar, EuroSign, sterling ]}; key {[ 5, percent, U2030, U2030 ]}; key {[ 6, asciicircum, logicaland, logicalor ]}; key {[ 7, ampersand, section, section ]}; key {[ 8, asterisk, infinity, multiply ]}; key {[ 9, parenleft, U2202, nabla ]}; key {[ 0, parenright, U2300, U2300 ]}; key {[ minus, underscore, U2011, endash ]}; key {[ equal, plus, emdash, plusminus ]}; key {[ q, Q, Greek_THETA, Greek_theta ]}; key {[ w, W, Greek_OMEGA, Greek_omega ]}; key {[ e, E, U2203, Greek_epsilon ]}; key {[ r, R, registered, Greek_rho ]}; key {[ t, T, trademark, Greek_tau ]}; key {[ y, Y, yen, Greek_upsilon ]}; key {[ u, U, intersection, union ]}; key {[ i, I, integral, Greek_iota ]}; key {[ o, O, degree, U222E ]}; key {[ p, P, Greek_PI, Greek_pi ]}; key {[ bracketleft, braceleft, U2286, includedin ]}; key {[ bracketright, braceright, U2208, U2209 ]}; key {[ a, A, U2200, Greek_alpha ]}; key {[ s, S, Greek_SIGMA, Greek_sigma ]}; key {[ d, D, Greek_DELTA, Greek_delta ]}; key {[ f, F, Greek_PHI, Greek_phi ]}; key {[ g, G, Greek_GAMMA, Greek_gamma ]}; key {[ h, H, U2225, Greek_eta ]}; key {[ j, J ]}; key {[ k, K, U03F0, Greek_kappa ]}; key {[ l, L, Greek_LAMBDA, Greek_lambda ]}; key {[ semicolon, colon, division, division ]}; key {[ apostrophe, quotedbl, leftdoublequotemark, rightdoublequotemark]}; key {[ backslash, bar, identical, downtack ]}; key {[ less, greater, U2266, U2267 ]}; key {[ z, Z, U2220, Greek_zeta ]}; key {[ x, X, Greek_XI, Greek_xi ]}; key {[ c, C, copyright, Greek_chi ]}; key {[ v, V, Greek_PSI, Greek_psi ]}; key {[ b, B, U03D1, Greek_beta ]}; key {[ n, N, U207F, Greek_nu ]}; key {[ m, M, Greek_mu, Greek_mu ]}; key {[ comma, less, U2266, U21D4 ]}; key {[ period, greater, U2267, U21D2 ]}; key {[ slash, question, leftsinglequotemark, rightsinglequotemark]}; key {[ space, space, nobreakspace, nobreakspace ]}; key { type[Group1] = "KEYPAD", [ KP_Delete, KP_Decimal ]}; }; PK(f[W% m msymbols/nokia_vndr/su-8wnu[partial alphanumeric_keys default xkb_symbols "no" { name[Group1]= "Norwegian/Danish"; include "nokia_vndr/su-8w(base)" key { [ 1, exclam, dead_circumflex ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numbersign, EuroSign ] }; key { [ 4, currency, dollar ] }; key { [ 5, percent, sterling ] }; key { [ 6, ampersand ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ plus, question ] }; key { [ dead_acute, dead_grave, backslash ] }; key { [ q, Q, dead_circumflex ] }; key { [ w, W, at ] }; key { [ e, E, EuroSign ] }; key { [ r, R, dollar ] }; key { [ t, T, sterling ] }; key { [ y, Y ] }; key { [ u, U, braceleft ] }; key { [ i, I, bracketleft ] }; key { [ o, O, bracketright ] }; key { [ p, P, braceright ] }; key { [ aring, Aring ] }; key { [ ssharp, U1E9E, backslash ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ oslash, Ooblique ] }; key { [ ae, AE ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, semicolon, less ] }; key { [ period, colon, greater ] }; key { [ minus, underscore, dead_diaeresis ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "no_nodeadkeys" { name[Group1] = "Norwegian/Danish (no dead keys)"; include "nokia_vndr/su-8w(no)" key { [ 1, exclam, asciicircum ] }; key { [ acute, grave, backslash ] }; key { [ q, Q, asciicircum ] }; }; partial alphanumeric_keys default xkb_symbols "dk" { include "nokia_vndr/su-8w(no)" }; partial alphanumeric_keys default xkb_symbols "dk_nodeadkeys" { include "nokia_vndr/su-8w(no_nodeadkeys)" }; partial alphanumeric_keys default xkb_symbols "de" { name[Group1]= "German"; include "nokia_vndr/su-8w(base)" key { [ 1, exclam, dead_circumflex ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numbersign, EuroSign ] }; key { [ 4, currency, dollar ] }; key { [ 5, percent, sterling ] }; key { [ 6, ampersand ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ plus, question ] }; key { [ dead_acute, dead_grave, backslash ] }; key { [ q, Q, dead_circumflex ] }; key { [ w, W, at ] }; key { [ e, E, EuroSign ] }; key { [ r, R, dollar ] }; key { [ t, T, sterling ] }; key { [ z, Z ] }; key { [ u, U, braceleft ] }; key { [ i, I, bracketleft ] }; key { [ o, O, bracketright ] }; key { [ p, P, braceright ] }; key { [ udiaeresis, Udiaeresis ] }; key { [ ssharp, U1E9E, backslash ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ odiaeresis, Odiaeresis ] }; key { [ adiaeresis, Adiaeresis ] }; key { [ y, Y ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, semicolon, less ] }; key { [ period, colon, greater ] }; // XXX Inexplicably, the diaeresis is dead on other layouts, but not // German. Go figure. key { [ minus, underscore, diaeresis ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "de_nodeadkeys" { name[Group1] = "German (no dead keys)"; include "nokia_vndr/su-8w(de)" key { [ 1, exclam, asciicircum ] }; key { [ acute, grave, backslash ] }; key { [ q, Q, asciicircum ] }; }; partial alphanumeric_keys default xkb_symbols "se" { name[Group1]= "Finnish/Swedish"; include "nokia_vndr/su-8w(base)" key { [ 1, exclam, dead_circumflex ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numbersign, EuroSign ] }; key { [ 4, currency, dollar ] }; key { [ 5, percent, sterling ] }; key { [ 6, ampersand ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ plus, question ] }; key { [ dead_acute, dead_grave, backslash ] }; key { [ q, Q, dead_circumflex ] }; key { [ w, W, at ] }; key { [ e, E, EuroSign ] }; key { [ r, R, dollar ] }; key { [ t, T, sterling ] }; key { [ y, Y ] }; key { [ u, U, braceleft ] }; key { [ i, I, bracketleft ] }; key { [ o, O, bracketright ] }; key { [ p, P, braceright ] }; key { [ aring, Aring ] }; key { [ ssharp, U1E9E, backslash ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ odiaeresis, Odiaeresis ] }; key { [ adiaeresis, Adiaeresis ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, semicolon, less ] }; key { [ period, colon, greater ] }; key { [ minus, underscore, dead_diaeresis ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "se_nodeadkeys" { name[Group1] = "Finnish/Swedish (no dead keys)"; include "nokia_vndr/su-8w(se)" key { [ 1, exclam, asciicircum ] }; key { [ acute, grave, backslash ] }; key { [ q, Q, asciicircum ] }; key { [ minus, underscore, diaeresis ] }; }; partial alphanumeric_keys default xkb_symbols "fi" { include "nokia_vndr/su-8w(se)" }; xkb_symbols "fi_nodeadkeys" { include "nokia_vndr/su-8w(se_nodeadkeys)" }; // Russian layout on first two levels, US layout on third and fourth. partial alphanumeric_keys default xkb_symbols "ru" { name[Group1]= "Russian"; include "nokia_vndr/su-8w(base)" // XXX Would be nice if this actually generated a tilde. key { [ Cyrillic_io, Cyrillic_IO, grave ] }; key { [ 1, exclam, exclam, exclam ] }; key { [ 2, at, quotedbl, at ] }; key { [ 3, numbersign, numbersign, numbersign ] }; key { [ 4, dollar, currency, dollar ] }; key { [ 5, percent, percent, percent ] }; key { [ 6, dead_circumflex, ampersand, asciicircum ] }; key { [ 7, ampersand, slash, ampersand ] }; key { [ 8, asterisk, parenleft, asterisk ] }; key { [ 9, parenleft, parenright, parenleft ] }; key { [ 0, parenright, equal, parenright ] }; key { [ minus, underscore, plus, question ] }; key { [ equal, plus, equal, plus ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, q, Q ] }; key { [ Cyrillic_tse, Cyrillic_TSE, w, W ] }; key { [ Cyrillic_u, Cyrillic_U, e, E ] }; key { [ Cyrillic_ka, Cyrillic_KA, r, R ] }; key { [ Cyrillic_ie, Cyrillic_IE, t, T ] }; key { [ Cyrillic_en, Cyrillic_EN, y, Y ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, u, U ] }; key { [ Cyrillic_sha, Cyrillic_SHA, i, I ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA, o, O ] }; key { [ Cyrillic_ze, Cyrillic_ZE, p, P ] }; key { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] }; key { [ Cyrillic_ef, Cyrillic_EF, a, A ] }; key { [ Cyrillic_yeru, Cyrillic_YERU, s, S ] }; key { [ Cyrillic_ve, Cyrillic_VE, d, D ] }; key { [ Cyrillic_a, Cyrillic_A, f, F ] }; key { [ Cyrillic_pe, Cyrillic_PE, g, G ] }; key { [ Cyrillic_er, Cyrillic_ER, h, H ] }; key { [ Cyrillic_o, Cyrillic_O, j, J ] }; key { [ Cyrillic_el, Cyrillic_EL, k, K ] }; key { [ Cyrillic_de, Cyrillic_DE, l, L ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE, semicolon, colon ] }; key { [ Cyrillic_e, Cyrillic_E, apostrophe, quotedbl ] }; key { [ Cyrillic_ya, Cyrillic_YA, z, Z ] }; key { [ Cyrillic_che, Cyrillic_CHE, x, X ] }; key { [ Cyrillic_es, Cyrillic_ES, c, C ] }; key { [ Cyrillic_em, Cyrillic_EM, v, V ] }; key { [ Cyrillic_i, Cyrillic_I, b, B ] }; key { [ Cyrillic_te, Cyrillic_TE, n, N ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, m, M ] }; key { [ Cyrillic_be, Cyrillic_BE, comma, less ] }; key { [ Cyrillic_yu, Cyrillic_YU, period, greater ] }; key { [ slash, question, slash, question ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "ru_nodeadkeys" { name[Group1] = "Russian - no dead keys"; include "nokia_vndr/su-8w(ru)" key { [ 6, asciicircum, ampersand, asciicircum ] }; }; partial alphanumeric_keys default xkb_symbols "us" { name[Group1]= "U.S. English - International"; include "nokia_vndr/su-8w(base)" // I can't believe it's not us(intl). key { [ 1, exclam, exclamdown ] }; key { [ 2, at, twosuperior ] }; key { [ 3, numbersign ] }; key { [ 4, dollar, currency ] }; key { [ 5, percent, EuroSign ] }; key { [ 6, asciicircum, onequarter ] }; key { [ 7, ampersand, onehalf ] }; key { [ 8, asterisk, threequarters ] }; key { [ 9, parenleft, leftsinglequotemark ] }; key { [ 0, parenright, rightsinglequotemark ] }; key { [ minus, underscore, yen ] }; key { [ equal, plus, multiply ] }; key { [ q, Q, adiaeresis, Adiaeresis ] }; key { [ w, W, aring, Aring ] }; key { [ e, E, eacute, Eacute ] }; key { [ r, R, registered ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, udiaeresis, Udiaeresis ] }; key { [ u, U, uacute, Uacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ p, P, odiaeresis, Odiaeresis ] }; key { [ bracketleft, braceleft, guillemotleft ] }; key { [ bracketright, braceright, guillemotright ] }; key { [ a, A, aacute, Aacute ] }; key { [ s, S, ssharp, section ] }; key { [ d, D, eth, ETH ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L, oslash, Ooblique ] }; key { [ semicolon, colon, paragraph, degree ] }; // XXX Not entirely sure if fourth level is quotedbl or diaeresis. // The former makes a lot more sense. key { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; key { [ z, Z, ae, AE ] }; key { [ x, X ] }; key { [ c, C, copyright ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, mu ] }; key { [ comma, less, ccedilla, Ccedilla ] }; key { [ period, greater ] }; key { [ slash, question, questiondown ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "us_nodeadkeys" { name[Group1] = "U.S. English - no dead keys"; include "nokia_vndr/su-8w(us_intl)" // XXX Not entirely sure if second level is quotedbl or diaeresis. // The former makes a lot more sense. key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; }; partial default alphanumeric_keys xkb_symbols "base" { // forked from from pc(pc105); madness. key { [ Escape ] }; // the extra key on most European keyboards key { [ less, greater, bar, brokenbar ] }; // these keys are common to all layouts key { [ backslash, bar ] }; key { [ space ] }; key { [ BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ Return ] }; // we don't ever generate this key, but the VKB needs it always. key { [ KP_Enter ] }; // generated from the headset, must always be in the map. key { [ XF86Phone ] }; key { [ Caps_Lock ] }; key { [ Num_Lock, Pointer_EnableKeys ] }; key { [ Shift_L ] }; key { [ Control_L ] }; key { [ Alt_L, Meta_L ] }; key { [ Super_L ] }; key { [ Shift_R ] }; key { [ Control_R ] }; key { [ Alt_R, Meta_R ] }; key { [ Super_R ] }; key { [ Menu ] }; key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F11 ] }; key { [ F10 ] }; key { [ F12 ] }; // Begin modifier mappings modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L, Control_R }; modifier_map Mod2 { Num_Lock }; // Fake keys for virtual<->real modifiers mapping: key { [ ISO_Level3_Shift ] }; key { [ Mode_switch ] }; modifier_map Mod5 { , }; key { [ NoSymbol, Alt_L ] }; modifier_map Mod1 { , }; key { [ NoSymbol, Meta_L ] }; modifier_map Mod1 { }; key { [ NoSymbol, Super_L ] }; modifier_map Mod4 { }; key { [ NoSymbol, Hyper_L ] }; modifier_map Mod4 { }; // End modifier mappings key { [ Insert ] }; key { [ Delete ] }; key { [ End ] }; key { [ Up ] }; key { [ Left ] }; key { [ Down ] }; key { [ Right ] }; // True for all layouts (except for ru). key { [ grave, asterisk, asciitilde ] }; // SU-8W uses 140 for Home, not the normal keycode. Very useful. key { [ NoSymbol ] }; // Ditto LWIN/RWIN and Page Up/Page Down. key { [ none ] }; key { [ NoSymbol ] }; // The LWIN & RWIN keys correspond to the 'select left' and // 'select right' keys. key { [ Prior ] }; key { [ Next ] }; // = 140 ~ key { [ Home ] }; // = 138 ~ key { [ Menu ] }; key { [ XF86Mail ] }; // Power button. key { [ Execute ] }; }; PK(f[ h{=;=;symbols/nokia_vndr/rx-44nu[partial alphanumeric_keys xkb_symbols "us" { name[Group1] = "U.S. English"; include "nokia_vndr/rx-44(base)" key { [ a, A, exclam, exclam ] }; key { [ s, S, quotedbl, quotedbl ] }; key { [ d, D, at, at ] }; key { [ f, F, numbersign, numbersign ] }; key { [ g, G, backslash, backslash ] }; key { [ h, H, slash, slash ] }; key { [ j, J, parenleft, parenleft ] }; key { [ k, K, parenright, parenright ] }; key { [ l, L, asterisk, asterisk ] }; key { [ apostrophe, question, question, question ] }; key { [ z, Z, yen, yen ] }; key { [ x, X, asciicircum, asciicircum ] }; key { [ c, C, asciitilde, asciitilde ] }; key { [ v, V, percent, percent ] }; key { [ b, B, ampersand, ampersand ] }; key { [ n, N, dollar, dollar ] }; key { [ m, M, EuroSign, EuroSign ] }; key { [ semicolon, colon, sterling, sterling ] }; key { [ minus, underscore, underscore, underscore ] }; key { [ plus, equal, equal, equal ] }; key { [ comma, less, comma, less ] }; key { [ period, greater, period, greater ] }; }; partial alphanumeric_keys xkb_symbols "fisenoda" { name[Group1] = "Finnish/Swedish/Norwegian/Danish"; include "nokia_vndr/rx-44(base)" key { [ a, A, exclam, exclam ] }; key { [ s, S, quotedbl, quotedbl ] }; key { [ d, D, at, at ] }; key { [ f, F, numbersign, numbersign ] }; key { [ g, G, asterisk, asterisk ] }; key { [ h, H, backslash, backslash ] }; key { [ j, J, slash, slash ] }; key { [ k, K, parenleft, parenleft ] }; key { [ l, L, parenright, parenright ] }; key { [ aring, Aring, question, question ] }; key { [ z, Z, EuroSign, EuroSign ] }; key { [ x, X, asciitilde, asciitilde ] }; key { [ c, C, percent, percent ] }; key { [ v, V, ampersand, ampersand ] }; key { [ b, B, plus, plus ] }; key { [ n, N, less, less ] }; key { [ m, M, greater, greater ] }; key { type="EIGHT_LEVEL", [ oslash, Oslash, equal, equal, odiaeresis, Odiaeresis, equal, equal ] }; key { type="EIGHT_LEVEL", [ ae, AE, apostrophe, apostrophe, adiaeresis, Adiaeresis, apostrophe, apostrophe ] }; key { [ minus, underscore, underscore, underscore ] }; key { [ comma, semicolon, comma, semicolon ] }; key { [ period, colon, period, colon ] }; }; partial alphanumeric_keys xkb_symbols "ptes" { name[Group1] = "Portuguese/Spanish"; include "nokia_vndr/rx-44(base)" key { [ a, A, exclam, exclam ] }; key { [ s, S, quotedbl, quotedbl ] }; key { [ d, D, at, at ] }; key { [ f, F, numbersign, numbersign ] }; key { [ g, G, asterisk, asterisk ] }; key { [ h, H, backslash, backslash ] }; key { [ j, J, slash, slash ] }; key { [ k, K, parenleft, parenleft ] }; key { [ l, L, parenright, parenright ] }; key { [ dead_acute, dead_grave, dead_diaeresis, dead_diaeresis ] }; key { [ z, Z, EuroSign, EuroSign ] }; key { [ x, X, percent, percent ] }; key { [ c, C, ampersand, ampersand ] }; key { [ v, V, exclamdown, exclamdown ] }; key { [ b, B, apostrophe, apostrophe ] }; key { [ n, N, plus, plus ] }; key { [ m, M, equal, equal ] }; key { [ ccedilla, Ccedilla, questiondown, questiondown ] }; key { [ ntilde, Ntilde, question, question ] }; key { [ dead_tilde, dead_circumflex, dead_circumflex, dead_circumflex ] }; key { [ comma, semicolon, minus, minus ] }; key { [ period, colon, underscore, underscore ] }; }; partial alphanumeric_keys xkb_symbols "fr" { name[Group1] = "French"; include "nokia_vndr/rx-44(base)" key { [ a, A, 1, 1 ] }; key { [ z, Z, 2, 2 ] }; key { [ q, Q, at, at ] }; key { [ s, S, percent, percent ] }; key { [ d, D, ecircumflex, Ecircumflex ] }; key { [ f, F, eacute, Eacute ] }; key { [ g, G, egrave, Egrave ] }; key { [ h, H, oe, OE ] }; key { [ j, J, parenleft, parenleft ] }; key { [ k, K, parenright, parenright ] }; key { [ l, L, agrave, Agrave ] }; key { [ m, M, ugrave, Ugrave ] }; key { [ w, w, EuroSign, EuroSign ] }; key { [ x, X, numbersign, numbersign ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, plus, plus ] }; key { [ b, B, equal, equal ] }; key { [ n, N, quotedbl, quotedbl ] }; key { [ comma, question, backslash, backslash ] }; key { [ semicolon, period, minus, minus ] }; key { [ colon, slash, underscore, underscore ] }; key { [ apostrophe, apostrophe, mu, mu ] }; key { [ less, greater, less, greater ] }; key { [ exclam, section, asterisk, asterisk ] }; }; partial alphanumeric_keys xkb_symbols "de" { name[Group1] = "German"; include "nokia_vndr/rx-44(base)" key { [ z, Z, 6, 6 ] }; key { [ a, A, exclam, exclam ] }; key { [ s, S, quotedbl, quotedbl ] }; key { [ d, D, at, at ] }; key { [ f, F, numbersign, numbersign ] }; key { [ g, G, percent, percent ] }; key { [ h, H, backslash, backslash ] }; key { [ j, J, slash, slash ] }; key { [ k, K, parenleft, parenleft ] }; key { [ l, L, parenright, parenright ] }; key { [ udiaeresis, Udiaeresis, question, question ] }; key { [ y, Y, EuroSign, EuroSign ] }; key { [ x, X, asciitilde, asciitilde ] }; key { [ c, C, asterisk, asterisk ] }; key { [ v, V, ampersand, ampersand ] }; key { [ b, B, plus, plus ] }; key { [ n, N, less, less ] }; key { [ m, M, greater, greater ] }; key { [ odiaeresis, Odiaeresis, equal, equal ] }; key { [ adiaeresis, Adiaeresis, apostrophe, apostrophe ] }; key { [ minus, underscore, ssharp, U1E9E ] }; key { [ comma, semicolon, comma, semicolon ] }; key { [ period, colon, period, colon ] }; }; // Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons. partial alphanumeric_keys xkb_symbols "ru" { name[Group1] = "Russian"; include "nokia_vndr/rx-44(base)" key { type="EIGHT_LEVEL", [ q, Q, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] }; key { type="EIGHT_LEVEL", [ w, W, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2 ] }; key { type="EIGHT_LEVEL", [ e, E, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3 ] }; key { type="EIGHT_LEVEL", [ r, R, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4 ] }; key { type="EIGHT_LEVEL", [ t, T, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5 ] }; key { type="EIGHT_LEVEL", [ y, Y, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6 ] }; key { type="EIGHT_LEVEL", [ u, U, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] }; key { type="EIGHT_LEVEL", [ i, I, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8 ] }; key { type="EIGHT_LEVEL", [ o, O, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] }; key { type="EIGHT_LEVEL", [ p, P, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0 ] }; key { type="EIGHT_LEVEL", [ a, A, exclam, exclam, Cyrillic_ef, Cyrillic_EF, exclam, exclam ] }; key { type="EIGHT_LEVEL", [ s, S, quotedbl, quotedbl, Cyrillic_yeru, Cyrillic_YERU, quotedbl, quotedbl ] }; key { type="EIGHT_LEVEL", [ d, D, at, at, Cyrillic_ve, Cyrillic_VE, at, at ] }; key { type="EIGHT_LEVEL", [ f, F, numbersign, numbersign, Cyrillic_a, Cyrillic_A, numbersign, numbersign ] }; key { type="EIGHT_LEVEL", [ g, G, backslash, backslash, Cyrillic_pe, Cyrillic_PE, backslash, backslash ] }; key { type="EIGHT_LEVEL", [ h, H, slash, slash, Cyrillic_er, Cyrillic_ER, slash, slash ] }; key { type="EIGHT_LEVEL", [ j, J, parenleft, parenleft, Cyrillic_o, Cyrillic_O, parenleft, parenleft ] }; key { type="EIGHT_LEVEL", [ k, K, parenright, parenright, Cyrillic_el, Cyrillic_EL, parenright, parenright ] }; key { type="EIGHT_LEVEL", [ l, L, colon, colon, Cyrillic_de, Cyrillic_DE, colon, colon ] }; key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, semicolon, semicolon, Cyrillic_zhe, Cyrillic_ZHE, semicolon, semicolon ] }; key { type="EIGHT_LEVEL", [ z, Z, underscore, underscore, Cyrillic_ya, Cyrillic_YA, minus, minus ] }; key { type="EIGHT_LEVEL", [ x, X, percent, percent, Cyrillic_che, Cyrillic_CHE, percent, percent ] }; key { type="EIGHT_LEVEL", [ c, C, 0x1002116, 0x1002116, Cyrillic_es, Cyrillic_ES, 0x1002116, 0x1002116 ] }; key { type="EIGHT_LEVEL", [ v, V, equal, equal, Cyrillic_em, Cyrillic_EM, equal, equal ] }; key { type="EIGHT_LEVEL", [ b, B, ampersand, ampersand, Cyrillic_i, Cyrillic_I, ampersand, ampersand ] }; key { type="EIGHT_LEVEL", [ n, N, asterisk, asterisk, Cyrillic_te, Cyrillic_TE, asterisk, asterisk ] }; key { type="EIGHT_LEVEL", [ m, M, apostrophe, apostrophe, Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] }; key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, minus, minus, Cyrillic_be, Cyrillic_BE, minus, minus ] }; key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, question, question, Cyrillic_yu, Cyrillic_YU, question, question ] }; key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { type="EIGHT_LEVEL", [ period, comma, period, comma, period, comma, period, comma ] }; key { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, Cyrillic_io, Cyrillic_IO, Cyrillic_e, Cyrillic_E, Cyrillic_io, Cyrillic_IO ] }; }; partial alphanumeric_keys xkb_symbols "it" { name[Group1] = "Italian"; include "nokia_vndr/rx-44(base)" key { [ a, A, exclam, exclam ] }; key { [ s, S, quotedbl, quotedbl ] }; key { [ d, D, at, at ] }; key { [ f, F, numbersign, numbersign ] }; key { [ g, G, asterisk, asterisk ] }; key { [ h, H, backslash, backslash ] }; key { [ j, J, slash, slash ] }; key { [ k, K, parenleft, parenleft ] }; key { [ l, L, parenright, parenright ] }; key { [ apostrophe, question, igrave, Igrave ] }; key { [ z, Z, EuroSign, EuroSign ] }; key { [ x, X, asciitilde, asciitilde ] }; key { [ c, C, ampersand, ampersand ] }; key { [ v, V, equal, equal ] }; key { [ b, B, less, less ] }; key { [ n, N, greater, greater ] }; key { [ m, M, plus, plus ] }; key { [ eacute, Eacute, ograve, Ograve ] }; key { [ egrave, Egrave, agrave, Agrave ] }; key { [ minus, underscore, ugrave, Ugrave ] }; key { [ comma, semicolon, comma, semicolon ] }; key { [ period, colon, period, colon ] }; }; partial default alphanumeric_keys xkb_symbols "base" { key { [ q, Q, 1, 1 ] }; key { [ w, W, 2, 2 ] }; key { [ e, E, 3, 3 ] }; key { [ r, R, 4, 4 ] }; key { [ t, T, 5, 5 ] }; key { [ y, Y, 6, 6 ] }; key { [ u, U, 7, 7 ] }; key { [ i, I, 8, 8 ] }; key { [ o, O, 9, 9 ] }; key { [ p, P, 0, 0 ] }; key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; // broken UI spec. key { [ KP_Enter, KP_Enter, KP_Enter, KP_Enter ] }; key { [ Multi_key, Multi_key, Multi_key, Multi_key ] }; key { [ Shift_L, Shift_L, Shift_L, Shift_L ] }; key { [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Shift ] }; key { [ space, space, space, space ] }; key { [ Control_R, Control_R, Control_R, Control_R ] }; key { [ Tab, Tab, Tab, Tab ] }; modifier_map Shift { Shift_L }; modifier_map Mod5 { ISO_Level3_Shift }; modifier_map Control { Control_R }; key { [ Return ] }; key { [ Up ] }; key { [ Down ] }; key { [ Left ] }; key { [ Right ] }; key { [ Escape ] }; key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; key { [ F11 ] }; key { [ F12 ] }; // generated from the headset, must always be in the map. key { [ XF86Phone ] }; }; PK(f[ssymbols/nokia_vndr/rx-51nu[default partial alphanumeric_keys xkb_symbols "common" { include "nokia_vndr/rx-51(common_keys)" include "nokia_vndr/rx-51(modifiers)" key { [ BackSpace, Delete, BackSpace, Delete ] }; // This section should not be included by any other section. // It's referenced only once by rule file to allow multiple layout configurations. // More than one layout at the same time could be set for instance as follows: // setxkbmap -rules evdev \ // -model nokiarx51 \ // -option grp:ctrl_shift_toggle \ // -layout us,cz \ // -variant ",qwerty" // Notice the similarity: // "pc+us+cz(qwerty):2+grp:XYZ" vs. // "nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ" // where XYZ is one of xkb_symbols section usually located in file symbols/group. // Bear in mind that option XYZ could replace current keys configuration!!! // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys // which may disallow opening of virtual symbol table (Multi_key). // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore // pressing Ctrl+Shift will switch to previous layout, not to the next one. // For RX-51 device there is a lot of restrictions if more than one layout is // is configured at the same time because some modifiers and special cases are // handled by hildon layer (especially with eight-level layout): // - settings may be done from terminal only (GUI does not and won't support it) // - virtual symbol table is not updated according to current layout // - for unknown reasons the eight-level layout (nordic,ru) works properly // only if it's configured as first layout (e.g. "ru,us,cz" not "us,cz,ru") // otherwise it's not possible to access levels 5-8 // - Ctrl+Space related problems: // - If eight-level layout is used as first layout one of eight-level layouts has to // be also chosen in GUI - otherwise the Ctrl+Space "switch" is disabled // - Ctrl+Space has no effect if only four-level layouts are chosen // (don't forget the layout configured in GUI - despite of it's not reachable) // - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is "turned on" (why?) // in case eight- and four-level layouts are configured simultaneously // - Ctrl+Space is "turned on" by default and has to be "turned off" for four-level layouts // in case eight- and four-level layouts are configured simultaneously // - four-level layout on first place does not work at all when Ctrl+Space is "turned on" // in case the 2nd, 3rd or 4th layout is eight-level layout }; //////////////////////////////////////////////////////////////////////////////// partial alphanumeric_keys xkb_symbols "us" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; }; partial alphanumeric_keys xkb_symbols "pl" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "Polish"; }; partial alphanumeric_keys xkb_symbols "fise" { include "nokia_vndr/rx-51(nordic_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Finnish/Swedish"; // 2. row key { [ odiaeresis, Odiaeresis, exclam, exclam ] }; key { [ adiaeresis, Adiaeresis, question, question ] }; }; partial alphanumeric_keys xkb_symbols "dano" { include "nokia_vndr/rx-51(nordic_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Danish/Norwegian"; // 2. row key { [ oslash, Oslash, exclam, exclam ] }; key { [ ae, AE, question, question ] }; }; partial alphanumeric_keys xkb_symbols "nordic" { include "nokia_vndr/rx-51(nordic_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Danish/Finnish/Norwegian/Swedish"; key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; // 2. row key { [ odiaeresis, Odiaeresis, exclam, exclam, oslash, Oslash, exclam, exclam ] }; key { [ adiaeresis, Adiaeresis, question, question, ae, AE, question, question ] }; }; partial alphanumeric_keys xkb_symbols "ptes" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Portuguese/Spanish"; // 1. row key { [ dead_acute, dead_acute, dead_grave, dead_grave ] }; // 2. row key { [ g, G, exclamdown, exclamdown ] }; key { [ h, H, exclam, exclam ] }; key { [ j, J, questiondown, questiondown ] }; key { [ k, K, question, question ] }; key { [ l, L, dead_diaeresis, dead_diaeresis ] }; key { [ ntilde, Ntilde, dead_tilde, dead_tilde ] }; key { [ ccedilla, Ccedilla, dead_circumflex,dead_circumflex ] }; // 3. row key { [ z, Z, parenleft, parenleft ] }; key { [ x, X, parenright, parenright ] }; key { [ c, C, slash, slash ] }; key { [ v, V, quotedbl, quotedbl ] }; key { [ b, B, apostrophe, apostrophe ] }; key { [ n, N, colon, colon ] }; key { [ m, M, semicolon, semicolon ] }; key { [ period, comma, comma, comma ] }; }; partial alphanumeric_keys xkb_symbols "fr" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "French"; // 1. row key { [ a, A, 1, 1 ] }; key { [ z, Z, 2, 2 ] }; key { [ agrave, Agrave, ccedilla, Ccedilla ] }; // 2. row key { [ q, Q, asterisk, asterisk ] }; key { [ s, S, plus, plus ] }; key { [ d, D, numbersign, numbersign ] }; key { [ f, F, minus, minus ] }; key { [ g, G, underscore, underscore ] }; key { [ h, H, exclam, exclam ] }; key { [ j, J, question, question ] }; key { [ k, K, colon, colon ] }; key { [ l, L, dead_circumflex,dead_circumflex ] }; key { [ m, M, ugrave, Ugrave ] }; key { [ eacute, Eacute, egrave, Egrave ] }; // 3. row key { [ w, W, EuroSign, EuroSign ] }; key { [ c, C, parenleft, parenleft ] }; key { [ v, V, parenright, parenright ] }; key { [ b, B, slash, slash ] }; key { [ comma, comma, apostrophe, apostrophe ] }; key { [ semicolon, period, period, period ] }; }; partial alphanumeric_keys xkb_symbols "de" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "German"; // 1. row key { [ z, Z, 6, 6 ] }; key { [ udiaeresis, Udiaeresis, ssharp, U1E9E ] }; // 2. row key { [ k, K, semicolon, semicolon ] }; key { [ l, L, colon, colon ] }; key { [ odiaeresis, Odiaeresis, exclam, exclam ] }; key { [ adiaeresis, Adiaeresis, question, question ] }; // 3. row key { [ y, Y, EuroSign, EuroSign ] }; key { [ c, C, equal, equal ] }; key { [ period, comma, comma, comma ] }; }; partial alphanumeric_keys xkb_symbols "ch" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Swiss"; // 1. row key { [ z, Z, 6, 6 ] }; key { [ udiaeresis, Udiaeresis, egrave, Egrave ] }; // 2. row key { [ h, H, equal, equal ] }; key { [ j, J, parenleft, parenleft ] }; key { [ k, K, parenright, parenright ] }; key { [ l, L, colon, colon ] }; key { [ odiaeresis, Odiaeresis, eacute, Aacute ] }; key { [ adiaeresis, Adiaeresis, agrave, Agrave ] }; // 3. row key { [ y, Y, question, question ] }; key { [ x, X, exclam, exclam ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ period, comma, comma, comma ] }; }; // Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons. partial alphanumeric_keys xkb_symbols "ru" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Russian"; key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; // 1. row key { [ q, Q, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] }; key { [ w, W, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2 ] }; key { [ e, E, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3 ] }; key { [ r, R, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4 ] }; key { [ t, T, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5 ] }; key { [ y, Y, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6 ] }; key { [ u, U, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] }; key { [ i, I, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8 ] }; key { [ o, O, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] }; key { [ p, P, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0 ] }; key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // 2. row key { [ a, A, asterisk, asterisk, Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] }; key { [ s, S, plus, plus, Cyrillic_yeru, Cyrillic_YERU, plus, plus ] }; key { [ d, D, numbersign, numbersign, Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] }; key { [ f, F, minus, minus, Cyrillic_a, Cyrillic_A, minus, minus ] }; key { [ g, G, underscore, underscore, Cyrillic_pe, Cyrillic_PE, underscore, underscore ] }; key { [ h, H, exclam, exclam, Cyrillic_er, Cyrillic_ER, exclam, exclam ] }; key { [ j, J, question, question, Cyrillic_o, Cyrillic_O, question, question ] }; key { [ k, K, semicolon, semicolon, Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] }; key { [ l, L, colon, colon, Cyrillic_de, Cyrillic_DE, colon, colon ] }; key { [ comma, comma, comma, comma, Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] }; key { [ period, period, period, period, Cyrillic_e, Cyrillic_E, period, period ] }; // 3. row key { [ z, Z, dollar, dollar, Cyrillic_ya, Cyrillic_YA, dollar, dollar ] }; key { [ x, X, EuroSign, EuroSign, Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] }; key { [ c, C, slash, slash, Cyrillic_es, Cyrillic_ES, slash, slash ] }; key { [ v, V, parenleft, parenleft, Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] }; key { [ b, B, parenright, parenright, Cyrillic_i, Cyrillic_I, parenright, parenright ] }; key { [ n, N, quotedbl, quotedbl, Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] }; key { [ m, M, apostrophe, apostrophe, Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] }; key { [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU, Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; }; partial alphanumeric_keys xkb_symbols "it" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Italian"; // 1. row key { [ egrave, Egrave, eacute, Eacute ] }; // 2. row key { [ h, H, semicolon, semicolon ] }; key { [ j, J, colon, colon ] }; key { [ k, K, exclam, exclam ] }; key { [ l, L, question, question ] }; key { [ ograve, Ograve, igrave, Igrave ] }; key { [ agrave, Agrave, ugrave, Ugrave ] }; // 3. row key { [ z, Z, EuroSign, EuroSign ] }; key { [ x, X, parenleft, parenleft ] }; key { [ c, C, parenright, parenright ] }; key { [ period, comma, comma, comma ] }; }; partial alphanumeric_keys xkb_symbols "cz" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Czech"; // 1. row key { [ z, Z, 6, 6 ] }; key { [ dead_acute, dead_acute, sterling, sterling ] }; // 2. row key { [ k, K, semicolon, semicolon ] }; key { [ l, L, colon, colon ] }; key { [ uring, Uring, EuroSign, EuroSign ] }; key { [ dead_caron, dead_caron, dollar, dollar ] }; // 3. row key { [ y, Y, equal, equal ] }; key { [ x, X, slash, slash ] }; key { [ c, C, backslash, backslash ] }; key { [ v, V, apostrophe, apostrophe ] }; key { [ b, B, quotedbl, quotedbl ] }; key { [ n, N, exclam, exclam ] }; key { [ m, M, question, question ] }; key { [ period, comma, comma, comma ] }; }; partial alphanumeric_keys xkb_symbols "cz_qwerty" { include "nokia_vndr/rx-51(cz)" name[Group1] = "Czech - qwerty"; // Do not use the layout "cz_qwerty" directly if it is the only layout and compat rules enabled. // There is one compat rule that converts "cz_qwerty" to "pc+cz(qwerty)" which is not correct for RX-51. // Use either the layout "cz(qwerty)" or the general "cz" with variant "qwerty". // 1. row key { [ y, Y, 6, 6 ] }; // 3. row key { [ z, Z, percent, percent ] }; }; //////////////////////////////////////////////////////////////////////////////// partial hidden alphanumeric_keys xkb_symbols "nordic_base" { include "nokia_vndr/rx-51(english_base)" // 1. row key { [ aring, Aring, equal, equal ] }; // 2. row key { [ k, K, semicolon, semicolon ] }; key { [ l, L, colon, colon ] }; // 3. row key { [ z, Z, EuroSign, EuroSign ] }; key { [ c, C, sterling, sterling ] }; key { [ period, comma, comma, comma ] }; }; partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key { [ q, Q, 1, 1 ] }; key { [ w, W, 2, 2 ] }; key { [ e, E, 3, 3 ] }; key { [ r, R, 4, 4 ] }; key { [ t, T, 5, 5 ] }; key { [ y, Y, 6, 6 ] }; key { [ u, U, 7, 7 ] }; key { [ i, I, 8, 8 ] }; key { [ o, O, 9, 9 ] }; key { [ p, P, 0, 0 ] }; key { [ comma, semicolon, equal, equal ] }; // 2. row key { [ a, A, asterisk, asterisk ] }; key { [ s, S, plus, plus ] }; key { [ d, D, numbersign, numbersign ] }; key { [ f, F, minus, minus ] }; key { [ g, G, underscore, underscore ] }; key { [ h, H, parenleft, parenleft ] }; key { [ j, J, parenright, parenright ] }; key { [ k, K, ampersand, ampersand ] }; key { [ l, L, exclam, exclam ] }; key { [ period, colon, question, question ] }; // 3. row key { [ z, Z, sterling, sterling ] }; key { [ x, X, dollar, dollar ] }; key { [ c, C, EuroSign, EuroSign ] }; key { [ v, V, slash, slash ] }; key { [ b, B, backslash, backslash ] }; key { [ n, N, quotedbl, quotedbl ] }; key { [ m, M, apostrophe, apostrophe ] }; key { [ space, space, at, at ] }; }; partial hidden alphanumeric_keys xkb_symbols "common_keys" { // all other common keys key { [ BackSpace ] }; key { [ Tab ] }; // broken UI spec. key { [ KP_Enter ] }; key { [ Return ] }; key { [ Escape ] }; key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically // on left/right and up/down in landscape/portrait orientation. This does // not feel natural for the user and therefore we want the VOL+/VOL- keys // map to -/+. // // The only exception is an active call in portrait mode where we want to // use the real meanings of the keys. This special case and management of // +/- keys in general is handled in maemo-statusmenu-volume. key { [ F8 ] }; key { [ F7 ] }; key { [ F9 ] }; key { [ F10 ] }; key { [ F11 ] }; }; partial hidden alphanumeric_keys modifier_keys xkb_symbols "modifiers" { // Shift switches between current level and level+1 key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Shift_L ] }; modifier_map Shift { Shift_L }; // Fn+Ctrl virtual symbol table (Multi_key) // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon) key { type[Group1] = "FOUR_LEVEL", symbols[Group1] = [ Control_L, Control_L, Multi_key, Multi_key ] }; modifier_map Control { Control_L }; // Fn key (right alt) switches to 3rd level include "level3(ralt_switch)" }; partial hidden alphanumeric_keys xkb_symbols "arrows_2btns" { // rx-51 specific arrows mapping // normal 2nd level must not be enumerated to allow text selection with Shift key key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, Up ] }; key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, Down ] }; }; partial hidden alphanumeric_keys xkb_symbols "arrows_4btns" { // standard arrows mapping // normal 2nd level must not be enumerated to allow text selection with Shift key key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Up ] }; key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Left ] }; key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Down ] }; key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Right ] }; }; // author: Roman Moravcik xkb_symbols "sk" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Slovak QWERTZ (CZ HW)"; // 1. row key { [ z, Z, 6, 6 ] }; key { [ dead_acute, dead_acute, sterling, sterling ] }; // 2. row key { [ k, K, semicolon, semicolon ] }; key { [ l, L, colon, colon ] }; key { [ ocircumflex, adiaeresis, EuroSign, EuroSign ] }; key { [ dead_caron, bar, dollar, dollar ] }; // 3. row key { [ y, Y, equal, equal ] }; key { [ x, X, slash, slash ] }; key { [ c, C, backslash, backslash ] }; key { [ v, V, apostrophe, apostrophe ] }; key { [ b, B, quotedbl, quotedbl ] }; key { [ n, N, exclam, exclam ] }; key { [ m, M, question, question ] }; key { [ period, Tab, comma, comma ] }; }; xkb_symbols "sk_qwerty" { include "nokia_vndr/rx-51(sk)" name[Group1] = "Slovak QWERTY (CZ hw)"; // 1. row key { [ y, Y, 6, 6 ] }; // 3. row key { [ z, Z, equal, equal ] }; }; // author: Roman Moravcik partial alphanumeric_keys xkb_symbols "aren" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Arabic"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ Arabic_dad, Arabic_fatha, 0x1000661, 0x1000661 ] }; key { symbols[Group2] = [ Arabic_sad, Arabic_fathatan, 0x1000662, 0x1000662 ] }; key { symbols[Group2] = [ Arabic_theh, Arabic_damma, 0x1000663, 0x1000663 ] }; key { symbols[Group2] = [ Arabic_qaf, Arabic_dammatan, 0x1000664, 0x1000664 ] }; key { symbols[Group2] = [ Arabic_feh, 0x100fef9, 0x1000665, 0x1000665 ] }; key { symbols[Group2] = [ Arabic_ghain, Arabic_hamzaunderalef, 0x1000666, 0x1000666 ] }; key { symbols[Group2] = [ Arabic_ain, rightsinglequotemark, 0x1000667, 0x1000667 ] }; key { symbols[Group2] = [ Arabic_ha, Arabic_tehmarbuta, 0x1000668, 0x1000668 ] }; key { symbols[Group2] = [ Arabic_khah, division, 0x1000669, 0x1000669 ] }; key { symbols[Group2] = [ Arabic_hah, multiply, 0x1000660, 0x1000660 ] }; key { symbols[Group2] = [ Arabic_jeem, period, equal, equal ] }; // 2. row key { symbols[Group2] = [ Arabic_sheen, Arabic_kasra, asterisk, asterisk ] }; key { symbols[Group2] = [ Arabic_seen, Arabic_kasratan, plus, plus ] }; key { symbols[Group2] = [ Arabic_yeh, Arabic_alefmaksura, numbersign, numbersign ] }; key { symbols[Group2] = [ Arabic_beh, Arabic_hamzaonyeh, minus, minus ] }; key { symbols[Group2] = [ Arabic_lam, 0x100fef7, underscore, underscore ] }; key { symbols[Group2] = [ Arabic_alef, Arabic_hamzaonalef, parenright, parenright ] }; key { symbols[Group2] = [ Arabic_teh, Arabic_tatweel, parenleft, parenleft ] }; key { symbols[Group2] = [ Arabic_noon, Arabic_comma, ampersand, ampersand ] }; key { symbols[Group2] = [ Arabic_meem, Arabic_semicolon, exclam, exclam ] }; key { symbols[Group2] = [ Arabic_kaf, colon, Arabic_question_mark, Arabic_question_mark ] }; // 3. row key { symbols[Group2] = [ Arabic_thal, Arabic_shadda, sterling, sterling ] }; key { symbols[Group2] = [ Arabic_dal, Arabic_sukun, dollar, dollar ] }; key { symbols[Group2] = [ Arabic_waw, Arabic_hamzaonwaw, EuroSign, EuroSign ] }; key { symbols[Group2] = [ Arabic_ra, 0x100fef5, slash, slash ] }; key { symbols[Group2] = [ Arabic_zain, 0x100fefb, backslash, backslash ] }; key { symbols[Group2] = [ Arabic_tah, Arabic_maddaonalef, quotedbl, quotedbl ] }; key { symbols[Group2] = [ Arabic_zah, Arabic_hamza, apostrophe, apostrophe ] }; }; // author: Hessam Farhang partial alphanumeric_keys xkb_symbols "faen" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Persian"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ Arabic_dad, Arabic_sukun, 0x10006f1, 0x1000661 ] }; key { symbols[Group2] = [ Arabic_sad, Arabic_dammatan, 0x10006f2, 0x1000662 ] }; key { symbols[Group2] = [ Arabic_theh, Arabic_kasratan, 0x10006f3, 0x1000663 ] }; key { symbols[Group2] = [ Arabic_qaf, Arabic_fathatan, 0x10006f4, 0x1000664 ] }; key { symbols[Group2] = [ Arabic_feh, Arabic_damma, 0x10006f5, 0x1000665 ] }; key { symbols[Group2] = [ Arabic_ghain, Arabic_kasra, 0x10006f6, 0x1000666 ] }; key { symbols[Group2] = [ Arabic_ain, Arabic_fatha, 0x10006f7, 0x1000667 ] }; key { symbols[Group2] = [ Arabic_heh, Arabic_shadda, 0x10006f8, 0x1000668 ] }; key { symbols[Group2] = [ Arabic_khah, 0x10006af, 0x10006f9, 0x1000669 ] }; key { symbols[Group2] = [ Arabic_hah, 0x1000686, 0x10006f0, 0x1000660 ] }; key { symbols[Group2] = [ Arabic_jeem, Arabic_comma, comma, Arabic_semicolon ] }; // 2. row key { symbols[Group2] = [ Arabic_sheen, Arabic_hamzaonwaw, asterisk, asterisk ] }; key { symbols[Group2] = [ Arabic_seen, Arabic_hamzaonyeh, plus, plus ] }; key { symbols[Group2] = [ 0x10006cc, period, numbersign, numbersign ] }; key { symbols[Group2] = [ Arabic_beh, colon, minus, minus ] }; key { symbols[Group2] = [ Arabic_lam, Arabic_hamzaonalef, underscore, underscore ] }; key { symbols[Group2] = [ Arabic_alef, Arabic_maddaonalef, parenleft, parenleft ] }; key { symbols[Group2] = [ Arabic_teh, Arabic_tehmarbuta, parenright, parenright ] }; key { symbols[Group2] = [ Arabic_noon, guillemotright, ampersand, ampersand ] }; key { symbols[Group2] = [ Arabic_meem, guillemotleft, exclam, exclam ] }; key { symbols[Group2] = [ 0x10006a9, Arabic_waw, Arabic_question_mark, colon ] }; // 3. row key { symbols[Group2] = [ Arabic_zah, Arabic_kaf, sterling, period ] }; key { symbols[Group2] = [ Arabic_tah, 0x1000653, dollar, dollar ] }; key { symbols[Group2] = [ Arabic_zain, 0x1000698, EuroSign, EuroSign ] }; key { symbols[Group2] = [ Arabic_ra, 0x1000670, slash, slash ] }; key { symbols[Group2] = [ Arabic_thal, 0x100200c, backslash, backslash ] }; key { symbols[Group2] = [ Arabic_dal, 0x1000654, quotedbl, quotedbl ] }; key { symbols[Group2] = [ 0x100067e, Arabic_hamza, apostrophe, apostrophe ] }; }; // author: Jaroslav Poriz xkb_symbols "dv" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "Dvorak"; // 1. row key { [ colon, semicolon, 1, 1 ] }; key { [ w, W, 2, 2 ] }; key { [ v, V, 3, 3 ] }; key { [ p, P, 4, 4 ] }; key { [ y, Y, 5, 5 ] }; key { [ f, F, 6, 6 ] }; key { [ g, G, 7, 7 ] }; key { [ c, C, 8, 8 ] }; key { [ r, R, 9, 9 ] }; key { [ l, L, 0, 0 ] }; key { [ period, comma, equal, equal ] }; // 2. row key { [ a, A, asterisk, asterisk ] }; key { [ o, O, plus, plus ] }; key { [ e, E, numbersign, numbersign ] }; key { [ u, U, minus, minus ] }; key { [ i, I, underscore, underscore ] }; key { [ d, D, exclam, parenleft ] }; key { [ h, H, question, parenright ] }; key { [ t, T, ampersand, ampersand ] }; key { [ n, N, less, exclam ] }; key { [ s, S, greater, question ] }; // 3. row key { [ z, Z, asciitilde, asciitilde ] }; key { [ q, Q, dollar, dollar ] }; key { [ j, J, backslash, bar ] }; key { [ k, K, grave, slash ] }; key { [ x, X, parenleft, backslash ] }; key { [ b, B, parenright, quotedbl ] }; key { [ m, M, apostrophe, apostrophe ] }; key { [ space, slash, at, at ] }; }; // author: Porfyras // author: Roman Moravcik // author: Faidon Liambotis partial alphanumeric_keys xkb_symbols "gr" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Greek"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ period, colon, 1, 1 ] }; key { symbols[Group2] = [ Greek_finalsmallsigma, Greek_SIGMA, 2, 2 ] }; key { symbols[Group2] = [ Greek_epsilon, Greek_EPSILON, 3, 3 ] }; key { symbols[Group2] = [ Greek_rho, Greek_RHO, 4, 4 ] }; key { symbols[Group2] = [ Greek_tau, Greek_TAU, 5, 5 ] }; key { symbols[Group2] = [ Greek_upsilon, Greek_UPSILON, 6, 6 ] }; key { symbols[Group2] = [ Greek_theta, Greek_THETA, 7, 7 ] }; key { symbols[Group2] = [ Greek_iota, Greek_IOTA, 8, 8 ] }; key { symbols[Group2] = [ Greek_omicron, Greek_OMICRON, 9, 9 ] }; key { symbols[Group2] = [ Greek_pi, Greek_PI, 0, 0 ] }; key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; // 2. row key { symbols[Group2] = [ Greek_alpha, Greek_ALPHA, asterisk, asterisk ] }; key { symbols[Group2] = [ Greek_sigma, Greek_SIGMA, plus, plus ] }; key { symbols[Group2] = [ Greek_delta, Greek_DELTA, numbersign, numbersign ] }; key { symbols[Group2] = [ Greek_phi, Greek_PHI, minus, minus ] }; key { symbols[Group2] = [ Greek_gamma, Greek_GAMMA, underscore, underscore ] }; key { symbols[Group2] = [ Greek_eta, Greek_ETA, parenleft, parenleft ] }; key { symbols[Group2] = [ Greek_xi, Greek_XI, parenright, parenright ] }; key { symbols[Group2] = [ Greek_kappa, Greek_KAPPA, ampersand, ampersand ] }; key { symbols[Group2] = [ Greek_lamda, Greek_LAMDA, exclam, exclam ] }; key { symbols[Group2] = [ dead_acute, dead_diaeresis, question, question ] }; // 3. row key { symbols[Group2] = [ Greek_zeta, Greek_ZETA, sterling, sterling ] }; key { symbols[Group2] = [ Greek_chi, Greek_CHI, dollar, dollar ] }; key { symbols[Group2] = [ Greek_psi, Greek_PSI, EuroSign, EuroSign ] }; key { symbols[Group2] = [ Greek_omega, Greek_OMEGA, slash, slash ] }; key { symbols[Group2] = [ Greek_beta, Greek_BETA, backslash, backslash ] }; key { symbols[Group2] = [ Greek_nu, Greek_NU, quotedbl, quotedbl ] }; key { symbols[Group2] = [ Greek_mu, Greek_MU, apostrophe, apostrophe ] }; }; // author: Ognian Samokovliyski // author: Kostadin Bashev // author: Roman Moravcik partial alphanumeric_keys xkb_symbols "bg_phonetic" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Bulgarian - Phonetic"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; key { symbols[Group2] = [ Cyrillic_hardsign, Cyrillic_HARDSIGN, 6, 6 ] }; key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; // 2. row key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; key { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, parenright, parenright ] }; key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; key { symbols[Group2] = [ period, colon, question, question ] }; key { symbols[Group2] = [ Cyrillic_yu, Cyrillic_YU, Up, Up ] }; // 3. row key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, sterling, sterling ] }; key { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, dollar, dollar ] }; key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, slash, slash ] }; key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Left, Left ] }; key { symbols[Group2] = [ Cyrillic_shcha, Cyrillic_SHCHA, Down, Down ] }; key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Right, Right ] }; }; // author: Nikola Kovachevski partial alphanumeric_keys xkb_symbols "mk" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Macedonian"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ Cyrillic_lje, Cyrillic_LJE, 1, 1 ] }; key { symbols[Group2] = [ Cyrillic_nje, Cyrillic_NJE, 2, 2 ] }; key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; key { symbols[Group2] = [ Macedonia_dse, Macedonia_DSE, 6, 6 ] }; key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, equal, equal ] }; // 2. row key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; key { symbols[Group2] = [ Cyrillic_je, Cyrillic_JE, parenright, parenright ] }; key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; key { symbols[Group2] = [ period, comma, question, question ] }; key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Up, Up ] }; // 3. row key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, colon, colon ] }; key { symbols[Group2] = [ Cyrillic_dzhe, Cyrillic_DZHE, semicolon, semicolon ] }; key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, slash, slash ] }; key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; key { symbols[Group2] = [ Macedonia_kje, Macedonia_KJE, Left, Left ] }; key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, Down, Down ] }; key { symbols[Group2] = [ Macedonia_gje, Macedonia_GJE, Right, Right ] }; }; // author: Roman Moravcik partial alphanumeric_keys xkb_symbols "ru_phonetic" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "Russian - Phonetic"; name[Group2] = "U.S. English"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group1] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; key { symbols[Group1] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; key { symbols[Group1] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; key { symbols[Group1] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; key { symbols[Group1] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; key { symbols[Group1] = [ Cyrillic_yeru, Cyrillic_YERU, 6, 6 ] }; key { symbols[Group1] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; key { symbols[Group1] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; key { symbols[Group1] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; key { symbols[Group1] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; key { symbols[Group1] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; key { symbols[Group2] = [ q, Q, 1, 1 ] }; key { symbols[Group2] = [ w, W, 2, 2 ] }; key { symbols[Group2] = [ e, E, 3, 3 ] }; key { symbols[Group2] = [ r, R, 4, 4 ] }; key { symbols[Group2] = [ t, T, 5, 5 ] }; key { symbols[Group2] = [ y, Y, 6, 6 ] }; key { symbols[Group2] = [ u, U, 7, 7 ] }; key { symbols[Group2] = [ i, I, 8, 8 ] }; key { symbols[Group2] = [ o, O, 9, 9 ] }; key { symbols[Group2] = [ p, P, 0, 0 ] }; key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; // 2. row key { symbols[Group1] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; key { symbols[Group1] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; key { symbols[Group1] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; key { symbols[Group1] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; key { symbols[Group1] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; key { symbols[Group1] = [ Cyrillic_ha, Cyrillic_HA, exclam, exclam ] }; key { symbols[Group1] = [ Cyrillic_shorti, Cyrillic_SHORTI, question, question ] }; key { symbols[Group1] = [ Cyrillic_ka, Cyrillic_KA, semicolon, semicolon ] }; key { symbols[Group1] = [ Cyrillic_el, Cyrillic_EL, colon, colon ] }; key { symbols[Group1] = [ Cyrillic_yu, Cyrillic_YU, comma, comma ] }; key { symbols[Group1] = [ Cyrillic_e, Cyrillic_E, period, period ] }; key { symbols[Group2] = [ a, A, asterisk, asterisk ] }; key { symbols[Group2] = [ s, S, plus, plus ] }; key { symbols[Group2] = [ d, D, numbersign, numbersign ] }; key { symbols[Group2] = [ f, F, minus, minus ] }; key { symbols[Group2] = [ g, G, underscore, underscore ] }; key { symbols[Group2] = [ h, H, exclam, exclam ] }; key { symbols[Group2] = [ j, J, question, question ] }; key { symbols[Group2] = [ k, K, semicolon, semicolon ] }; key { symbols[Group2] = [ l, L, colon, colon ] }; key { symbols[Group2] = [ comma, comma, comma, comma ] }; key { symbols[Group2] = [ period, period, period, period ] }; // 3. row key { symbols[Group1] = [ Cyrillic_ze, Cyrillic_ZE, dollar, dollar ] }; key { symbols[Group1] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, EuroSign, EuroSign ] }; key { symbols[Group1] = [ Cyrillic_tse, Cyrillic_TSE, slash, slash ] }; key { symbols[Group1] = [ Cyrillic_zhe, Cyrillic_ZHE, parenleft, parenleft ] }; key { symbols[Group1] = [ Cyrillic_be, Cyrillic_BE, parenright, parenright ] }; key { symbols[Group1] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; key { symbols[Group1] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; key { symbols[Group1] = [ Cyrillic_che, Cyrillic_CHE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { symbols[Group2] = [ z, Z, dollar, dollar ] }; key { symbols[Group2] = [ x, X, EuroSign, EuroSign ] }; key { symbols[Group2] = [ c, C, slash, slash ] }; key { symbols[Group2] = [ v, V, parenleft, parenleft ] }; key { symbols[Group2] = [ b, B, parenright, parenright ] }; key { symbols[Group2] = [ n, N, quotedbl, quotedbl ] }; key { symbols[Group2] = [ m, M, apostrophe, apostrophe ] }; key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; }; // author: Roman Moravcik partial alphanumeric_keys xkb_symbols "he_phonetic" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Hebrew - Phonetic"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ hebrew_qoph, hebrew_qoph, 1, 1 ] }; key { symbols[Group2] = [ hebrew_waw, hebrew_waw, 2, 2 ] }; key { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, 3, 3 ] }; key { symbols[Group2] = [ hebrew_resh, hebrew_resh, 4, 4 ] }; key { symbols[Group2] = [ hebrew_taw, hebrew_tet, 5, 5 ] }; key { symbols[Group2] = [ hebrew_ayin, hebrew_ayin, 6, 6 ] }; key { symbols[Group2] = [ hebrew_waw, hebrew_waw, 7, 7 ] }; key { symbols[Group2] = [ hebrew_yod, hebrew_yod, 8, 8 ] }; key { symbols[Group2] = [ hebrew_samech, hebrew_samech, 9, 9 ] }; key { symbols[Group2] = [ hebrew_pe, hebrew_finalpe, 0, 0 ] }; key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; // 2. row key { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, asterisk, asterisk ] }; key { symbols[Group2] = [ hebrew_shin, hebrew_shin, plus, plus ] }; key { symbols[Group2] = [ hebrew_dalet, hebrew_dalet, numbersign, numbersign ] }; key { symbols[Group2] = [ hebrew_pe, hebrew_finalpe, minus, minus ] }; key { symbols[Group2] = [ hebrew_gimel, hebrew_gimel, underscore, underscore ] }; key { symbols[Group2] = [ hebrew_he, hebrew_he, parenleft, parenleft ] }; key { symbols[Group2] = [ hebrew_yod, hebrew_yod, parenright, parenright ] }; key { symbols[Group2] = [ hebrew_kaph, hebrew_finalkaph, ampersand, ampersand ] }; key { symbols[Group2] = [ hebrew_lamed, hebrew_lamed, exclam, exclam ] }; key { symbols[Group2] = [ period, colon, question, question ] }; // 3. row key { symbols[Group2] = [ hebrew_zain, hebrew_zain, sterling, sterling ] }; key { symbols[Group2] = [ hebrew_chet, hebrew_chet, dollar, dollar ] }; key { symbols[Group2] = [ hebrew_zade, hebrew_finalzade, EuroSign, EuroSign ] }; key { symbols[Group2] = [ hebrew_waw, hebrew_waw, slash, slash ] }; key { symbols[Group2] = [ hebrew_bet, hebrew_bet, backslash, backslash ] }; key { symbols[Group2] = [ hebrew_nun, hebrew_finalnun, quotedbl, quotedbl ] }; key { symbols[Group2] = [ hebrew_mem, hebrew_finalmem, apostrophe, apostrophe ] }; }; // author: Roman Moravcik partial alphanumeric_keys xkb_symbols "he" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Hebrew"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ hebrew_taw, hebrew_taw, 1, 1 ] }; key { symbols[Group2] = [ hebrew_finalzade, hebrew_finalzade, 2, 2 ] }; key { symbols[Group2] = [ hebrew_qoph, hebrew_qoph, 3, 3 ] }; key { symbols[Group2] = [ hebrew_resh, hebrew_resh, 4, 4 ] }; key { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, 5, 5 ] }; key { symbols[Group2] = [ hebrew_tet, hebrew_tet, 6, 6 ] }; key { symbols[Group2] = [ hebrew_waw, hebrew_waw, 7, 7 ] }; key { symbols[Group2] = [ hebrew_finalnun, hebrew_finalnun, 8, 8 ] }; key { symbols[Group2] = [ hebrew_finalmem, hebrew_finalmem, 9, 9 ] }; key { symbols[Group2] = [ hebrew_pe, hebrew_pe, 0, 0 ] }; key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; // 2. row key { symbols[Group2] = [ hebrew_shin, hebrew_shin, asterisk, asterisk ] }; key { symbols[Group2] = [ hebrew_dalet, hebrew_dalet, plus, plus ] }; key { symbols[Group2] = [ hebrew_gimel, hebrew_gimel, numbersign, numbersign ] }; key { symbols[Group2] = [ hebrew_kaph, hebrew_kaph, minus, minus ] }; key { symbols[Group2] = [ hebrew_ayin, hebrew_ayin, underscore, underscore ] }; key { symbols[Group2] = [ hebrew_yod, hebrew_yod, parenleft, parenleft ] }; key { symbols[Group2] = [ hebrew_chet, hebrew_chet, parenright, parenright ] }; key { symbols[Group2] = [ hebrew_lamed, hebrew_lamed, ampersand, ampersand ] }; key { symbols[Group2] = [ hebrew_finalkaph, period, exclam, exclam ] }; key { symbols[Group2] = [ hebrew_finalpe, colon, question, question ] }; // 3. row key { symbols[Group2] = [ hebrew_zain, hebrew_zain, sterling, sterling ] }; key { symbols[Group2] = [ hebrew_samech, hebrew_samech, dollar, dollar ] }; key { symbols[Group2] = [ hebrew_bet, hebrew_bet, EuroSign, EuroSign ] }; key { symbols[Group2] = [ hebrew_he, hebrew_he, slash, slash ] }; key { symbols[Group2] = [ hebrew_nun, hebrew_nun, backslash, backslash ] }; key { symbols[Group2] = [ hebrew_mem, hebrew_mem, quotedbl, quotedbl ] }; key { symbols[Group2] = [ hebrew_zade, hebrew_zade, apostrophe, apostrophe ] }; }; // author: David Gegechkori partial alphanumeric_keys xkb_symbols "ge" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Georgian - Latin"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ 0x010010e5, Q, 1, 1 ] }; key { symbols[Group2] = [ 0x010010ec, 0x010010ed, 2, 2 ] }; key { symbols[Group2] = [ 0x010010d4, E, 3, 3 ] }; key { symbols[Group2] = [ 0x010010e0, 0x010010e6, 4, 4 ] }; key { symbols[Group2] = [ 0x010010e2, 0x010010d7, 5, 5 ] }; key { symbols[Group2] = [ 0x010010e7, Y, 6, 6 ] }; key { symbols[Group2] = [ 0x010010e3, U, 7, 7 ] }; key { symbols[Group2] = [ 0x010010d8, I, 8, 8 ] }; key { symbols[Group2] = [ 0x010010dd, O, 9, 9 ] }; key { symbols[Group2] = [ 0x010010de, P, 0, 0 ] }; key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; // 2. row key { symbols[Group2] = [ 0x010010d0, A, asterisk, asterisk ] }; key { symbols[Group2] = [ 0x010010e1, 0x010010e8, plus, plus ] }; key { symbols[Group2] = [ 0x010010d3, D, numbersign, numbersign ] }; key { symbols[Group2] = [ 0x010010e4, F, minus, minus ] }; key { symbols[Group2] = [ 0x010010d2, G, underscore, underscore ] }; key { symbols[Group2] = [ 0x010010f0, H, parenleft, parenleft ] }; key { symbols[Group2] = [ 0x010010ef, 0x010010df, parenright, parenright ] }; key { symbols[Group2] = [ 0x010010d9, K, ampersand, ampersand ] }; key { symbols[Group2] = [ 0x010010da, L, exclam, exclam ] }; key { symbols[Group2] = [ period, colon, question, question ] }; // 3. row key { symbols[Group2] = [ 0x010010d6, 0x010010eb, sterling, sterling ] }; key { symbols[Group2] = [ 0x010010ee, X, dollar, dollar ] }; key { symbols[Group2] = [ 0x010010ea, 0x010010e9, EuroSign, EuroSign ] }; key { symbols[Group2] = [ 0x010010d5, V, slash, slash ] }; key { symbols[Group2] = [ 0x010010d1, B, backslash, backslash ] }; key { symbols[Group2] = [ 0x010010dc, N, quotedbl, quotedbl ] }; key { symbols[Group2] = [ 0x010010db, M, apostrophe, apostrophe ] }; }; // author: Eriks Jansons partial alphanumeric_keys xkb_symbols "lv" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Latvian"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ q, Q, 1, 1 ] }; key { symbols[Group2] = [ w, W, 2, 2 ] }; key { symbols[Group2] = [ emacron, Emacron, 3, 3 ] }; key { symbols[Group2] = [ rcedilla, Rcedilla, 4, 4 ] }; key { symbols[Group2] = [ t, T, 5, 5 ] }; key { symbols[Group2] = [ y, Y, 6, 6 ] }; key { symbols[Group2] = [ umacron, Umacron, 7, 7 ] }; key { symbols[Group2] = [ imacron, Imacron, 8, 8 ] }; key { symbols[Group2] = [ omacron, Omacron, 9, 9 ] }; key { symbols[Group2] = [ p, P, 0, 0 ] }; key { symbols[Group1] = [ ISO_Group_Latch, semicolon, equal, equal], symbols[Group2] = [ comma, semicolon, equal, equal ] }; // 2. row key { symbols[Group2] = [ amacron, Amacron, asterisk, asterisk ] }; key { symbols[Group2] = [ scaron, Scaron, plus, plus ] }; key { symbols[Group2] = [ d, D, numbersign, numbersign ] }; key { symbols[Group2] = [ f, F, minus, minus ] }; key { symbols[Group2] = [ gcedilla, Gcedilla, underscore, underscore ] }; key { symbols[Group2] = [ h, H, parenleft, parenleft ] }; key { symbols[Group2] = [ j, J, parenright, parenright ] }; key { symbols[Group2] = [ kcedilla, Kcedilla, ampersand, ampersand ] }; key { symbols[Group2] = [ lcedilla, Lcedilla, exclam, exclam ] }; key { symbols[Group2] = [ period, colon, question, question ] }; // 3. row key { symbols[Group2] = [ zcaron, Zcaron, sterling, sterling ] }; key { symbols[Group2] = [ x, X, dollar, dollar ] }; key { symbols[Group2] = [ ccaron, Ccaron, EuroSign, EuroSign ] }; key { symbols[Group2] = [ v, V, slash, slash ] }; key { symbols[Group2] = [ b, B, backslash, backslash ] }; key { symbols[Group2] = [ ncedilla, Ncedilla, quotedbl, quotedbl ] }; key { symbols[Group2] = [ m, M, apostrophe, apostrophe ] }; }; // author: Aleksandar Urosevic partial alphanumeric_keys xkb_symbols "sr_cyrillic" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Serbian - Cyrillic"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ Cyrillic_lje, Cyrillic_LJE, 1, 1 ] }; key { symbols[Group2] = [ Cyrillic_nje, Cyrillic_NJE, 2, 2 ] }; key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, 6, 6 ] }; key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, equal, equal ] }; // 2. row key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; key { symbols[Group2] = [ Cyrillic_je, Cyrillic_JE, parenright, parenright ] }; key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; key { symbols[Group2] = [ period, comma, question, question ] }; key { symbols[Group2] = [ Serbian_dje, Serbian_DJE, Up, Up ] }; // 3. row key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, colon, colon ] }; key { symbols[Group2] = [ Cyrillic_dzhe, Cyrillic_DZHE, semicolon, semicolon ] }; key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, slash, slash ] }; key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Left, Left ] }; key { symbols[Group2] = [ Serbian_tshe, Serbian_TSHE, Down, Down ] }; key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, Right, Right ] }; }; // author: Roman Moravcik // author: Tarick partial alphanumeric_keys xkb_symbols "ua_phonetic" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "U.S. English"; name[Group2] = "Ukrainian - Phonetic"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group1] = [ q, Q, 1, 1 ] }; key { symbols[Group1] = [ w, W, 2, 2 ] }; key { symbols[Group1] = [ e, E, 3, 3 ] }; key { symbols[Group1] = [ r, R, 4, 4 ] }; key { symbols[Group1] = [ t, T, 5, 5 ] }; key { symbols[Group1] = [ y, Y, 6, 6 ] }; key { symbols[Group1] = [ u, U, 7, 7 ] }; key { symbols[Group1] = [ i, I, 8, 8 ] }; key { symbols[Group1] = [ o, O, 9, 9 ] }; key { symbols[Group1] = [ p, P, 0, 0 ] }; key { symbols[Group1] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; key { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 6, 6 ] }; key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; key { symbols[Group2] = [ Ukrainian_i, Ukrainian_I, 8, 8 ] }; key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; // 2. row key { symbols[Group1] = [ a, A, asterisk, asterisk ] }; key { symbols[Group1] = [ s, S, plus, plus ] }; key { symbols[Group1] = [ d, D, numbersign, numbersign ] }; key { symbols[Group1] = [ f, F, minus, minus ] }; key { symbols[Group1] = [ g, G, underscore, underscore ] }; key { symbols[Group1] = [ h, H, exclam, exclam ] }; key { symbols[Group1] = [ j, J, question, question ] }; key { symbols[Group1] = [ k, K, semicolon, semicolon ] }; key { symbols[Group1] = [ l, L, colon, colon ] }; key { symbols[Group1] = [ comma, comma, comma, comma ] }; key { symbols[Group1] = [ period, period, period, period ] }; key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, exclam, exclam ] }; key { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, question, question ] }; key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, semicolon, semicolon ] }; key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, colon, colon ] }; key { symbols[Group2] = [ Cyrillic_yu, Cyrillic_YU, comma, comma ] }; key { symbols[Group2] = [ Ukrainin_ie, Ukrainian_IE, period, period ] }; // 3. row key { symbols[Group1] = [ z, Z, dollar, dollar ] }; key { symbols[Group1] = [ x, X, EuroSign, EuroSign ] }; key { symbols[Group1] = [ c, C, slash, slash ] }; key { symbols[Group1] = [ v, V, parenleft, parenleft ] }; key { symbols[Group1] = [ b, B, parenright, parenright ] }; key { symbols[Group1] = [ n, N, quotedbl, quotedbl ] }; key { symbols[Group1] = [ m, M, apostrophe, apostrophe ] }; key { symbols[Group1] = [ Cyrillic_che, Cyrillic_CHE, Ukrainian_yi, Ukrainian_YI ] }; key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, dollar, dollar ] }; key { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, EuroSign, EuroSign ] }; key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, slash, slash ] }; key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, parenleft, parenleft ] }; key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, parenright, parenright ] }; key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Ukrainian_yi, Ukrainian_YI ] }; }; // author: Roman Moravcik // author: Tarick partial alphanumeric_keys xkb_symbols "ua" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_2btns)" name[Group1] = "U.S. English"; name[Group2] = "Ukrainian"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group1] = [ q, Q, 1, 1 ] }; key { symbols[Group1] = [ w, W, 2, 2 ] }; key { symbols[Group1] = [ e, E, 3, 3 ] }; key { symbols[Group1] = [ r, R, 4, 4 ] }; key { symbols[Group1] = [ t, T, 5, 5 ] }; key { symbols[Group1] = [ y, Y, 6, 6 ] }; key { symbols[Group1] = [ u, U, 7, 7 ] }; key { symbols[Group1] = [ i, I, 8, 8 ] }; key { symbols[Group1] = [ o, O, 9, 9 ] }; key { symbols[Group1] = [ p, P, 0, 0 ] }; key { symbols[Group1] = [ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ] }; key { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] }; key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, 2, 2 ] }; key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 3, 3 ] }; key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, 4, 4 ] }; key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 5, 5 ] }; key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, 6, 6 ] }; key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] }; key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, 8, 8 ] }; key { symbols[Group2] = [ Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] }; key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, 0, 0 ] }; key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ] }; // 2. row key { symbols[Group1] = [ a, A, asterisk, asterisk ] }; key { symbols[Group1] = [ s, S, plus, plus ] }; key { symbols[Group1] = [ d, D, numbersign, numbersign ] }; key { symbols[Group1] = [ f, F, minus, minus ] }; key { symbols[Group1] = [ g, G, underscore, underscore ] }; key { symbols[Group1] = [ h, H, exclam, exclam ] }; key { symbols[Group1] = [ j, J, question, question ] }; key { symbols[Group1] = [ k, K, semicolon, semicolon ] }; key { symbols[Group1] = [ l, L, colon, colon ] }; key { symbols[Group1] = [ comma, comma, comma, comma ] }; key { symbols[Group1] = [ period, period, period, period ] }; key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] }; key { symbols[Group2] = [ Ukrainian_i, Ukrainian_I, plus, plus ] }; key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] }; key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, minus, minus ] }; key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, underscore, underscore ] }; key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, exclam, exclam ] }; key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, question, question ] }; key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] }; key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, colon, colon ] }; key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] }; key { symbols[Group2] = [ Ukrainian_ie, Ukrainian_IE, period, period ] }; // 3. row key { symbols[Group1] = [ z, Z, dollar, dollar ] }; key { symbols[Group1] = [ x, X, EuroSign, EuroSign ] }; key { symbols[Group1] = [ c, C, slash, slash ] }; key { symbols[Group1] = [ v, V, parenleft, parenleft ] }; key { symbols[Group1] = [ b, B, parenright, parenright ] }; key { symbols[Group1] = [ n, N, quotedbl, quotedbl ] }; key { symbols[Group1] = [ m, M, apostrophe, apostrophe ] }; key { symbols[Group1] = [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; key { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, dollar, dollar ] }; key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] }; key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, slash, slash ] }; key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] }; key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, parenright, parenright ] }; key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] }; key { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] }; key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; }; // author: Mihai C. // created on 2010-10-31 partial alphanumeric_keys xkb_symbols "ro" { include "nokia_vndr/rx-51(english_base)" name[Group1] = "Romanian"; key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Up, abreve ] }; key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, 0x1000219 ] }; key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Down, 0x100021b ] }; key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, acircumflex ] }; key { [ z, Z, icircumflex, Icircumflex] }; }; // author: Thanawit Lertruengpanya partial alphanumeric_keys xkb_symbols "th" { include "nokia_vndr/rx-51(english_base)" include "nokia_vndr/rx-51(arrows_4btns)" name[Group1] = "U.S. English"; name[Group2] = "Thai Kedmanee"; key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; // 1. row key { symbols[Group2] = [ Thai_maiyamok, Thai_leksun, Thai_lakkhangyao, plus ] }; key { symbols[Group2] = [ Thai_saraaimaimalai, quotedbl, slash, Thai_leknung ] }; key { symbols[Group2] = [ Thai_saraam, Thai_dochada, minus, Thai_leksong ] }; key { symbols[Group2] = [ Thai_phophan, Thai_thonangmontho, Thai_phosamphao, Thai_leksam ] }; key { symbols[Group2] = [ Thai_saraa, Thai_thothong, Thai_thothung, Thai_leksi ] }; key { symbols[Group2] = [ Thai_maihanakat, Thai_nikhahit, Thai_sarau, Thai_sarauu ] }; key { symbols[Group2] = [ Thai_saraii, Thai_maitri, Thai_saraue, Thai_baht ] }; key { symbols[Group2] = [ Thai_rorua, Thai_nonen, Thai_khokhwai, Thai_lekha ] }; key { symbols[Group2] = [ Thai_nonu, Thai_paiyannoi, Thai_totao, Thai_lekhok ] }; key { symbols[Group2] = [ Thai_yoyak, Thai_yoying, Thai_chochan, Thai_lekchet ] }; key { symbols[Group2] = [ Thai_bobaimai, Thai_thothan, Thai_khokhai, Thai_lekpaet ] }; // 2. row key { symbols[Group2] = [ Thai_fofan, Thai_ru, Thai_chochang, Thai_lekkao ] }; key { symbols[Group2] = [ Thai_hohip, Thai_khorakhang, plus, plus ] }; key { symbols[Group2] = [ Thai_kokai, Thai_topatak, numbersign, numbersign ] }; key { symbols[Group2] = [ Thai_dodek, Thai_sarao, minus, minus ] }; key { symbols[Group2] = [ Thai_sarae, Thai_chochoe, underscore, underscore ] }; key { symbols[Group2] = [ Thai_maitho, Thai_maitaikhu, Thai_ngongu, period ] }; key { symbols[Group2] = [ Thai_maiek, Thai_maichattawa, Thai_loling, comma ] }; key { symbols[Group2] = [ Thai_saraaa, Thai_sorusi, ampersand, ampersand ] }; key { symbols[Group2] = [ Thai_sosua, Thai_sosala, exclam, exclam ] }; key { symbols[Group2] = [ Thai_wowaen, Thai_soso, question, question ] }; // 3. row key { symbols[Group2] = [ Thai_phophung, parenleft, Thai_moma, Thai_thophuthao ] }; key { symbols[Group2] = [ Thai_popla, parenright, Thai_saraaimaimuan, Thai_lochula ] }; key { symbols[Group2] = [ Thai_saraae, Thai_choching, Thai_fofa, Thai_lu ] }; key { symbols[Group2] = [ Thai_oang, Thai_honokhuk, slash, slash ] }; key { symbols[Group2] = [ Thai_sarai, Thai_phinthu, backslash, backslash ] }; key { symbols[Group2] = [ Thai_sarauee, Thai_thanthakhat, Thai_khokhuat, Thai_khokhon ] }; key { symbols[Group2] = [ Thai_thothahan, question, apostrophe, apostrophe ] }; }; PK(f[ symbols/frnu[default partial alphanumeric_keys xkb_symbols "basic" { include "latin" name[Group1]="French"; key { [ ampersand, 1, onesuperior, exclamdown ] }; key { [ eacute, 2, asciitilde, oneeighth ] }; key { [ quotedbl, 3, numbersign, sterling ] }; key { [apostrophe, 4, braceleft, dollar ] }; key { [ parenleft, 5, bracketleft, threeeighths ] }; key { [ minus, 6, bar, fiveeighths ] }; key { [ egrave, 7, grave, seveneighths ] }; key { [underscore, 8, backslash, trademark ] }; key { [ ccedilla, 9, asciicircum, plusminus ] }; key { [ agrave, 0, at, degree ] }; key { [parenright, degree, bracketright, questiondown ] }; key { [ equal, plus, braceright, dead_ogonek ] }; key { [ a, A, ae, AE ] }; key { [ z, Z, guillemotleft, less ] }; key { [ e, E, EuroSign, cent ] }; key { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] }; key { [ dollar, sterling, currency, dead_macron ] }; key { [ q, Q, at, Greek_OMEGA ] }; key { [ m, M, mu, masculine ] }; key { [ ugrave, percent, dead_circumflex, dead_caron] }; key { [twosuperior, asciitilde, notsign, notsign ] }; key { [ asterisk, mu, dead_grave, dead_breve ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ comma, question, dead_acute, dead_doubleacute ] }; key { [ semicolon, period, horizconnector, multiply ] }; key { [ colon, slash, periodcentered, division ] }; key { [ exclam, section, dead_belowdot, dead_abovedot ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc" { // Contact: Sayamindu Dasgupta include "fr(basic)" name[Group1]="French"; key { [ less, greater ] }; key { [ dead_circumflex, dead_diaeresis, notsign, dead_abovering ] }; key { [ semicolon, period, underscore, multiply ] }; key { [ twosuperior, asciitilde, VoidSymbol, VoidSymbol ] }; // Some keys only have the Shift+AltGr character printed on them (alongside // the unmodified one). Make such keys shift-invariant so that the printed // value is achieved by pressing AltGr or Shift+AltGr. key { [ x, X, guillemotright, guillemotright ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ z, Z, guillemotleft, guillemotleft ] }; }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { // Modifies the basic French layout to use the Sun dead keys include "fr(basic)" key { [dead_circumflex, dead_diaeresis ] }; key { [comma, question, dead_acute, dead_doubleacute ] }; }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "fr(Sundeadkeys)" name[Group1]="French (with Sun dead keys)"; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Modifies the basic French layout to eliminate all dead keys include "fr(basic)" name[Group1]="French (no dead keys)"; key { [ equal, plus, braceright, ogonek ] }; key { [asciicircum, diaeresis ] }; key { [ dollar, sterling, currency, macron ] }; key { [ ugrave, percent, asciicircum, caron ] }; key { [ asterisk, mu, grave, breve ] }; key { [ comma, question, acute, doubleacute ] }; key { [ exclam, section, dead_belowdot, abovedot ] }; }; // Unicode French derivative // Loose refactoring of the historic Linux French keyboard layout // // Copyright © 2006-2008 Nicolas Mailhot // // Credits (fr-latin1, fr-latin0, fr-latin9) // © 199x-1996 René Cougnenc ✝ // © 1997-2002 Guylhem Aznar // © 2003-2006 Nicolas Mailhot // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ // │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃ // ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ ~ │ $ ø ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ Q Ä │ S „ │ D Ë │ F ‚ │ G ¥ │ H Ð │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃ // ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f ‘ │ g ’ │ h ð │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃ // ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "oss" { include "latin" include "level3(ralt_switch)" include "nbsp(level4n)" include "keypad(oss)" name[Group1]="French (alt.)"; // First row key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ key { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É key { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ key { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) key { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) key { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç key { [ agrave, 0, at, Agrave ] }; // à 0 @ À key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ key { [ equal, plus, braceright, plusminus ] }; // = + } ± // Second row key { [ a, A, ae, AE ] }; // a A æ Æ key { [ z, Z, acircumflex, Acircumflex ] }; // z Z â  key { [ e, E, EuroSign, cent ] }; // e E € ¢ key { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê key { [ t, T, thorn, THORN ] }; // t T þ Þ key { [ y, Y, ydiaeresis, Ydiaeresis ] }; // y Y ÿ Ÿ key { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û key { [ i, I, icircumflex, Icircumflex ] }; // i I î Î key { [ o, O, oe, OE ] }; // o O œ Œ key { [ p, P, ocircumflex, Ocircumflex ] }; // p P ô Ô key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ key { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø // Third row key { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä key { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „ key { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë key { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚ key { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥ key { [ h, H, eth, ETH ] }; // h H ð Ð key { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ü key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï key { [ l, L, 0x1000140, 0x100013F ] }; // l L ŀ Ŀ key { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ // Fourth row key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ key { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ key { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ” key { [ c, C, copyright, registered ] }; // c C © ® key { [ v, V, 0x100202F, leftarrow ] }; // v V ⍽ ← (espace fine insécable) key { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑ key { [ n, N, notsign, rightarrow ] }; // n N ¬ → key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − }; partial alphanumeric_keys xkb_symbols "oss_latin9" { // Restricts the fr(oss) layout to latin9 symbols include "fr(oss)" include "keypad(oss_latin9)" name[Group1]="French (alt., Latin-9 only)"; // First row key { [ ampersand, 1, dead_caron, dead_cedilla ] }; // & 1 ˇ ¸ key { [ quotedbl, 3, numbersign, dead_tilde ] }; // " 3 # ~ key { [ apostrophe, 4, braceleft, underscore ] }; // ' 4 { _ key { [ parenleft, 5, bracketleft, minus ] }; // ( 5 [ - key { [ minus, 6, bar, minus ] }; // - 6 | - key { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \ key { [ parenright, degree, bracketright, equal ] }; // ) ° ] = // Third row key { [ s, S, ssharp, guillemotleft ] }; // s S ß « key { [ f, F, apostrophe, apostrophe ] }; // f F ' ' key { [ g, G, apostrophe, yen ] }; // g G ' ¥ key { [ l, L, periodcentered, periodcentered ] }; // l L · · key { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * µ ` ^ // Fourth row key { [ less, greater, less, greater ] }; // < > < > key { [ w, W, guillemotleft, guillemotleft ] }; // w W « « key { [ x, X, guillemotright, guillemotright ] }; // x X » » key { [ v, V, nobreakspace, less ] }; // v V ⍽ < (espace insécable) key { [ b, B, minus, asciicircum ] }; // b B - ^ key { [ n, N, notsign, greater ] }; // n N ¬ > key { [ comma, question, questiondown, period ] }; // , ? ¿ . key { [ semicolon, period, multiply, periodcentered ] }; // ; . × · key { [ colon, slash, division, slash ] }; // : / ÷ / key { [ exclam, section, exclamdown, minus ] }; // ! § ¡ - }; partial alphanumeric_keys xkb_symbols "oss_Sundeadkeys" { // Modifies the basic fr(oss) layout to use the Sun dead keys include "fr(oss)" key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ¹ ² ³ ¸ key { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ }; partial alphanumeric_keys xkb_symbols "oss_sundeadkeys" { include "fr(oss_Sundeadkeys)" name[Group1]="French (alt., with Sun dead keys)"; }; partial alphanumeric_keys xkb_symbols "oss_nodeadkeys" { // Modifies the basic fr(oss) layout to eliminate all dead keys include "fr(oss)" name[Group1]="French (alt., no dead keys)"; key { [ twosuperior, threesuperior, onesuperior, cedilla ] }; // ² ³ ¹ ¸ key { [ ampersand, 1, caron, ogonek ] }; // & 1 ˇ ̨ key { [ quotedbl, 3, numbersign, breve ] }; // " 3 # ˘ key { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ̃ Å key { [ ugrave, percent, acute, Ugrave ] }; // ù % ' Ù key { [ asterisk, mu, grave, macron ] }; // * µ ` ̄ }; // Historic Linux French keyboard layout (fr-latin9) // Copyright (c) 199x, 2002 Rene Cougnenc (original work) // Guylhem Aznar (maintainer) // Nicolas Mailhot // (XFree86 submission) // // This layout has long been distributed and refined outside official channels. // To this day it remains more feature-rich and popular than the 'fr' layout. // // This layout is derived from an original version by Guylhem Aznar. // The original version is always available from: // http://en.tldp.org/HOWTO/Francophones-HOWTO.html // and is distributed under a GPL license. // // The author has given permission for this derived version to be distributed // under the standard XFree86 license. He would like all changes to this // version to be sent to him at , so he can sync // the identically named linux console map (kbd, linux-console) and his // out-of-tree GPL version. // // Now follows the keyboard design description in French. // (If you can't read it you probably have no business changing this file anyway:) // // Les accents circonflexes des principales voyelles sont obtenus avec // la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift. // // ____ _________ _____________ _______ // | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause | // | s a| s = normal, a = AltGr | Exec | | Halte | // ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ // ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ // | œ "| 1 ·| 2 É| 3 ,| 4 '| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <-- | // | Œ "| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | // ======================================================================== // | |<- | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ë| , | // | ->| | a â| z å| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' | // ===================================================================¬ | // | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| | // | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| | // ======================================================================== // | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | // | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | | // ======================================================================== // | | | | | | | | | // | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | // ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ // // // Si les touches mortes fonctionnent, utiliser les accents dits // « morts », i.e. fonctionnant comme l'accent circonflexe & le // tréma des machines à écrire ; sont disponibles : // // (^) : accent circonflexe, // Shift+(^) : tréma, // Shift+AltGr+(^) : tilde, // AltGr+(1) : accent aigu, // AltGr+(7) : accent grave // // Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma // sur les vielles machines à écrire : // // AltGr+(1) puis e : é // AltGr+(1) puis E : É // partial alphanumeric_keys xkb_symbols "latin9" { include "latin" include "nbsp(level3)" name[Group1]="French (legacy, alt.)"; key { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] }; key { [ ampersand, 1, dead_acute, periodcentered ] }; key { [ eacute, 2, asciitilde, Eacute ] }; key { [ quotedbl, 3, numbersign, cedilla ] }; key { [ apostrophe, 4, braceleft, acute ] }; key { [ parenleft, 5, bracketleft, diaeresis ] }; key { [ minus, 6, bar, brokenbar ] }; key { [ egrave, 7, dead_grave, Egrave ] }; key { [ underscore, 8, backslash, macron ] }; key { [ ccedilla, 9, asciicircum, Ccedilla ] }; key { [ agrave, 0, at, Agrave ] }; key { [ parenright, degree, bracketright, ydiaeresis ] }; key { [ equal, plus, braceright, dead_abovering ] }; key { [ a, A, acircumflex, adiaeresis ] }; key { [ z, Z, aring, Aring ] }; key { [ e, E, EuroSign, cent ] }; key { [ r, R, ccedilla, Ccedilla ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, yacute, Yacute ] }; key { [ u, U, ucircumflex, udiaeresis ] }; key { [ i, I, icircumflex, idiaeresis ] }; key { [ o, O, ocircumflex, odiaeresis ] }; key { [ p, P, paragraph, grave ] }; key { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] }; key { [ dollar, sterling, ecircumflex, ediaeresis ] }; key { [ q, Q, Acircumflex, Adiaeresis ] }; key { [ s, S, oslash, Ooblique ] }; key { [ d, D, Ecircumflex, Ediaeresis ] }; key { [ f, F, plusminus, ordfeminine ] }; key { [ g, G, ae, AE ] }; key { [ h, H, eth, ETH ] }; key { [ j, J, Ucircumflex, Udiaeresis ] }; key { [ k, K, Icircumflex, Idiaeresis ] }; key { [ l, L, Ocircumflex, Odiaeresis ] }; key { [ m, M, onesuperior, masculine ] }; key { [ ugrave, percent, twosuperior, Ugrave ] }; key { [ asterisk, mu, threesuperior, yen ] }; key { [ less, greater, bar ] }; key { [ w, W, guillemotleft ] }; key { [ x, X, guillemotright ] }; key { [ c, C, copyright ] }; key { [ v, V, registered ] }; key { [ b, B, ssharp, U1E9E ] }; key { [ n, N, notsign ] }; key { [ comma, question, questiondown ] }; key { [ semicolon, period, multiply ] }; key { [ colon, slash, division ] }; key { [ exclam, section, exclamdown ] }; // French uses a comma as decimal separator, but keyboards are labeled with a period // Will take effect when KP_Decimal is mapped to the locale decimal separator key { [ KP_Delete, KP_Decimal, KP_Delete, KP_Decimal ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "latin9_Sundeadkeys" { // Modifies the basic fr-latin9 layout to use the Sun dead keys include "fr(latin9)" key { [ ampersand, 1, dead_acute, periodcentered ] }; key { [ egrave, 7, dead_grave, Egrave ] }; key { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] }; }; partial alphanumeric_keys xkb_symbols "latin9_sundeadkeys" { include "fr(latin9_Sundeadkeys)" name[Group1]="French (legacy, alt., with Sun dead keys)"; }; partial alphanumeric_keys xkb_symbols "latin9_nodeadkeys" { // Modifies the basic fr-latin9 layout to eliminate all dead keys include "fr(latin9)" name[Group1]="French (legacy, alt., no dead keys)"; key { [ ampersand, 1, apostrophe, periodcentered ] }; key { [ egrave, 7, grave, Egrave ] }; key { [ equal, plus, braceright ] }; key { [ asciicircum, diaeresis, asciitilde, apostrophe ] }; }; // Bépo : Improved ergonomic french keymap using Dvorak method. // Built by community on 'Dvorak Fr / Bépo' : // see http://www.clavier-dvorak.org/wiki/ to join and help. // XOrg integration (1.0rc2 version) in 2008 // by Frédéric Boiteux // // Bépo layout (1.0rc2 version) for a pc105 keyboard (french) : // ┌─────┐ // │ S A │ S = Shift, A = AltGr + Shift // │ s a │ s = normal, a = AltGr // └─────┘ // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ # ¶ │ 1 „ │ 2 “ │ 3 ” │ 4 ≤ │ 5 ≥ │ 6 │ 7 ¬ │ 8 ¼ │ 9 ½ │ 0 ¾ │ ° ′ │ ` ″ ┃ ⌫ Retour┃ // │ $ – │ " — │ « < │ » > │ ( [ │ ) ] │ @ ^ │ + ± │ - − │ / ÷ │ * × │ = ≠ │ % ‰ ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ B ¦ │ É ˝ │ P § │ O Œ │ È ` │ ! │ V │ D Ð │ L │ J IJ │ Z Ə │ W ┃Entrée ┃ // ┃Tab ↹ ┃ b | │ é ˊ │ p & │ o œ │ è ` │ ˆ ¡ │ v ˇ │ d ð │ l / │ j ij │ z ə │ w ̆ ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ A Æ │ U Ù │ I ˙ │ E ¤ │ ; ̛ │ C ſ │ T Þ │ S ẞ │ R ™ │ N │ M º │ Ç , ┃ ┃ // ┃Maj ⇬ ┃ a æ │ u ù │ i ̈ │ e € │ , ’ │ c © │ t þ │ s ß │ r ® │ n ˜ │ m ¯ │ ç ¸ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ Ê │ À │ Y ‘ │ X ’ │ : · │ K │ ? ̉ │ Q ̣ │ G │ H ‡ │ F ª ┃ ┃ // ┃Shift ⇧┃ ê / │ à \ │ y { │ x } │ . … │ k ~ │ ' ¿ │ q ˚ │ g µ │ h † │ f ˛ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ Espace inséc. Espace inséc. fin ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ (Espace) _ ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "bepo" { include "level3(ralt_switch)" include "keypad(oss)" name[Group1]= "French (Bepo, ergonomic, Dvorak way)"; // First row key { [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ” key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [ ≤ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ] ≥ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ] }; // @ 6 ^ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾ key { [ equal, degree, notequal, minutes ] }; // = ° ≠ ′ key { [ percent, grave, permille, seconds ] }; // % ` ‰ ″ // Second row key { [ b, B, bar, brokenbar ] }; // b B | ¦ key { [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ˊ ˝ key { [ p, P, ampersand, section ] }; // p P & § key { [ o, O, oe, OE ] }; // o O œ Œ key { [ egrave, Egrave, dead_grave, grave ] }; // è È ` ` key { [ dead_circumflex, exclam, exclamdown ] }; // ^ ! ¡ key { [ v, V, dead_caron ] }; // v V ˇ key { [ d, D, eth, ETH ] }; // d D ð Ð key { [ l, L, dead_stroke ] }; // l L / key { [ j, J, U0133, U0132 ] }; // j J ij IJ key { [ z, Z, schwa, SCHWA ] }; // z Z ə Ə key { [ w, W, dead_breve ] }; // w W ̆ // Third row key { [ a, A, ae, AE ] }; // a A æ Æ key { [ u, U, ugrave, Ugrave ] }; // u U ù Ù key { [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ̈ ˙ key { [ e, E, EuroSign, dead_currency ] }; // e E € ¤ key { [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛ key { [ c, C, copyright, U017F ] }; // c C © ſ key { [ t, T, thorn, THORN ] }; // t T þ Þ key { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ key { [ r, R, registered, trademark ] }; // r R ® ™ key { [ n, N, dead_tilde ] }; // n N ~ key { [ m, M, dead_macron, masculine ] }; // m M ̄ º key { [ ccedilla, Ccedilla, dead_cedilla, dead_belowcomma ] }; // ç Ç ¸ , // Fourth row key { [ ecircumflex, Ecircumflex, slash ] }; // ê Ê / key { [ agrave, Agrave, backslash ] }; // à À \ key { [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘ key { [ x, X, braceright, rightsinglequotemark ] }; // x X } ’ key { [ period, colon, ellipsis, periodcentered ] }; // . : … · key { [ k, K, asciitilde ] }; // k K ~ key { [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ ̉ key { [ q, Q, dead_abovering, dead_belowdot ] }; // q Q ˚ ̣ key { [ g, G, dead_greek ] }; // g G µ key { [ h, H, dagger, doubledagger ] }; // h H † ‡ key { [ f, F, dead_ogonek, ordfeminine ] }; // f F ̨ ª key { [ space, nobreakspace, underscore, U202F ] }; // ␣ (espace insécable) _ (espace insécable fin) }; partial alphanumeric_keys xkb_symbols "bepo_latin9" { // Restricts the fr(bepo) layout to latin9 symbols include "fr(bepo)" include "keypad(oss_latin9)" name[Group1]="French (Bepo, ergonomic, Dvorak way, Latin-9 only)"; key { [ dollar, numbersign, dollar, paragraph ] }; // $ # $ ¶ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1 ] }; // " 1 key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less ] }; // « 2 < key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater ] }; // » 3 > key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft ] }; // ( 4 [ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright ] }; // ) 5 ] key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, minus, onequarter ] }; // - 8 - ¼ key { [ equal, degree ] }; // = ° key { [ percent, grave ] }; // % ` key { [ b, B, bar ] }; // b B | key { [ eacute, Eacute, dead_acute ] }; // é É ˊ key { [ j, J ] }; // j J key { [ z, Z ] }; // z Z key { [ w, W ] }; // w W key { [ i, I, dead_diaeresis ] }; // i I ̈ key { [ comma, semicolon, comma, dead_horn ] }; // , ; , ̛ key { [ c, C, copyright ] }; // c C © key { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ key { [ r, R, registered ] }; // r R ® key { [ m, M, macron, masculine ] }; // m M ̄ º key { [ y, Y, braceleft ] }; // y Y { key { [ x, X, braceright ] }; // x X } key { [ period, colon ] }; // . : key { [ h, H ] }; // h H key { [ f, F, f, ordfeminine ] }; // f F ª // Note : on a besoin de redéfinir les niveaux 3 et 4, // donc nbsp(level2) ne suffit pas ! key { [ space, nobreakspace, underscore, nobreakspace ] }; // ␣ (espace insécable) _ (espace insécable) }; // Version 1.1rc2 of the Bépo keyboard layout, // normalized by the AFNOR NF Z71‐300 norm. // // Layout: https://bepo.fr/wiki/Version_1.1rc2 // Normalization: https://normalisation.afnor.org/actualites/faq-clavier-francais/ // // ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗ // │ # ¶│ 1 „│ 2 “│ 3 ”│ 4 ⩽│ 5 ⩾║ 6 │ 7 ¬│ 8 ¼│ 9 ½│ 0 ¾│ ° ′│ ` ″║ ║ // │ $ –│ " —│ « <│ » >│ ( [│ ) ]║ @ ^│ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║ <-- ║ // ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣ // ║ |<- ║ B _│ É │ P §│ O Œ│ È `║ ! │ V │ D │ L £│ J │ Z │ W ║ | ║ // ║ ->| ║ b |│ é ´│ p &│ o œ│ è `║ ˆ ¡│ v ˇ│ d ∞│ l /│ j │ z ―│ w ║ <-' ║ // ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║ // ║ ║ A Æ│ U Ù│ I ˙│ E ¤│ ; ,║ C ©│ T ™│ S ſ│ R ®│ N │ M │ Ç ©║ ║ // ║ CAPS ║ a æ│ u ù│ i ¨│ e €│ , '║ c ¸│ t ᵉ│ s ß│ r ˘│ n ~│ m ¯│ ç ║ ║ // ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣ // ║ ^ ║ Ê ^│ À ‚│ Y ‘│ X ’│ : ·│ K ‑║ ? ̉ │ Q ̛│ G †│ H ‡│ F ║ ^ ║ // ║ | ║ ê /│ à \│ y {│ x }│ . …│ k ~║ ’ ¿│ q °│ g µ│ h ̣ │ f ˛║ | ║ // ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣ // ║ ║ ║ ║ Fine insécable Insécable ║ ║ ║ ║ ║ // ║ Ctrl ║ WinG ║ Alt ║ Espace _ ║AltGr║ WinD ║WinM ║ Ctrl ║ // ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝ partial alphanumeric_keys xkb_symbols "bepo_afnor" { name[Group1]= "French (Bepo, ergonomic, Dvorak way, AFNOR)"; include "pc(pc105)" key { type[group1] = "FOUR_LEVEL", [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ” key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, U2A7D ] }; // ( 4 [ ⩽ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, U2A7E ] }; // ) 5 ] ⩾ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum, U262D ] }; // @ 6 ^ ☭ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾ key { type[group1] = "FOUR_LEVEL", [ equal, degree, notequal, minutes ] }; // = ° ≠ ′ key { type[group1] = "FOUR_LEVEL", [ percent, grave, U2030, seconds ] }; // % ` ‰ ″ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, underscore ] }; // b B | _ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, heart ] }; // é É ´ ♥ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section ] }; // p P & § key { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ o, O, oe, OE ] }; // o O œ Œ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, dead_grave, grave ] }; // è È ` ` key { type[group1] = "FOUR_LEVEL", [ dead_circumflex, exclam, exclamdown, U2620 ] }; // ^ ! ¡ ☠ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v, V, dead_caron, U2622 ] }; // v V ˇ ☢ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ d, D, UFDD7, U2623 ] }; // d D ∞ ☣ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l, L, dead_stroke, sterling ] }; // l L / £ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ j, J, U262E, U262F ] }; // j J ☮ ☯ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ z, Z, UFDD8, U2619 ] }; // z Z ― ☙ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ w, W, U269C, U267F ] }; // w W ⚜ ♿ key { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ a, A, ae, AE ] }; // a A æ Æ key { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ u, U, ugrave, Ugrave ] }; // u U ù Ù key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ¨ ˙ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, EuroSign, dead_currency ] }; // e E € ¤ key { type[group1] = "FOUR_LEVEL", [ comma, semicolon, apostrophe, dead_belowcomma ] }; // , ; ' , key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c, C, dead_cedilla, copyright ] }; // c C ¸ © key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ t, T, UFDD5, trademark ] }; // t T ᵉ ™ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ s, S, UFDD4, U017F ] }; // s S ß ſ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r, R, dead_breve, registered ] }; // r R ˘ ® key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde, U2693 ] }; // n N ~ ⚓ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, U26FD ] }; // m M ¯ ⛽ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ccedilla, Ccedilla, U2708, U1F12F ] }; // ç Ç ✈ 🄯 key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash, asciicircum ] }; // ê Ê / ^ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, backslash, singlelowquotemark ] }; // à À \ ‚ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark ] }; // x X } ’ key { type[group1] = "FOUR_LEVEL", [ period, colon, ellipsis, periodcentered ] }; // . : … · key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, U2011 ] }; // k K ~ ‑ key { type[group1] = "FOUR_LEVEL", [ rightsinglequotemark, question, questiondown, dead_hook ] }; // ’ ? ¿ ̉ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_horn ] }; // q Q ˚ ̛ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g, G, dead_greek, dagger ] }; // g G µ † key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h, H, dead_belowdot, doubledagger ] }; // h H ̣ ‡ key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, U26C4 ] }; // f F ˛ ⛄ key { type[group1] = "FOUR_LEVEL", [ space, U202F, underscore, nobreakspace ] }; //   _ include "level3(ralt_switch)" }; // Author : Francis Leboutte, http://www.algo.be/ergo/dvorak-fr.html // thanks to Fabien Cazenave for his help // Licence : X11 // Version : 0.3 // Base layer + dead AltGr key (`): // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ // │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ // │ _ │ = │ / ± │ - ¼ │ è ½ │ \ ¾ │ ^ │ ( │ ` ` │ ) │ " │ [ │ ] ┃ ⌫ ┃ // ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ // ┃ ┃ ? Æ │ < │ > │ G │ ! │ H │ V │ C Ç │ M │ K │ Z │ & ┃ ┃ // ┃ ↹ ┃ : æ │ ' $ │ é É │ g € │ . ° │ h │ v │ c ç │ m µ │ k │ z │ ¨ ┃ ┃ // ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ // ┃ ┃ O Ò │ A À │ U Ù │ E È │ B │ F │ S │ T │ N │ D │ W │ # ┃ ┃ // ┃ ⇬ ┃ o ò │ a à │ u ù │ e è │ b │ f │ s « │ t │ n » │ d │ w │ ~ ┃ ┃ // ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ // ┃ ┃ ç Ç │ | Œ │ Q │ @ │ I Ì │ Y │ X │ R │ L │ P │ J ┃ ┃ // ┃ ⇧ ┃ à À │ ; œ │ q { │ , } │ i ì │ y £ │ x │ r º │ l │ p § │ j ┃ ⇧ ┃ // ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ // ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ // ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ // Notice the specific Caps_Lock layer: // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ // │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ ┃ // ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ // ┃ ┃ │ < │ > │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ⇬ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ // ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ // ┃ ┃ / │ - │ │ │ │ │ │ │ │ │ ┃ ┃ // ┃ ⇧ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⇧ ┃ // ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ // ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ // ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys modifier_keys xkb_symbols "dvorak" { name[Group1]="French (Dvorak)"; // First row key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ underscore, asterisk ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ equal, 1 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 2, plusminus ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 3, onequarter ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, 4, onehalf ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ backslash, 5, threequarters ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dead_circumflex, 6 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 7 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ISO_Level3_Latch, 8, grave ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 9 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 0 ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketleft, plus ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketright, percent ] }; // Second row key { [ colon, question, ae, AE ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ apostrophe, less, dollar ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, greater, Eacute ] }; key { [ g, G, EuroSign ] }; key { [ period, exclam, degree ] }; key { [ h, H ] }; key { [ v, V ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ m, M, mu ] }; key { [ k, K ] }; key { [ z, Z ] }; key { [ dead_diaeresis, ampersand ] }; // Third row key { [ o, O, ograve, Ograve ] }; key { [ a, A, agrave, Agrave ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ e, E, egrave, Egrave ] }; key { [ b, B ] }; key { [ f, F ] }; key { [ s, S, guillemotleft ] }; key { [ t, T ] }; key { [ n, N, guillemotright ] }; key { [ d, D ] }; key { [ w, W ] }; key { [ asciitilde, numbersign ] }; // Fourth row key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave, ccedilla, Agrave, Ccedilla, slash ] }; key { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ semicolon, bar, oe, OE, minus ] }; key { [ q, Q, braceleft ] }; key { [ comma, at, braceright ] }; key { [ i, I, igrave, Igrave ] }; key { [ y, Y, sterling ] }; key { [ x, X ] }; key { [ r, R, masculine ] }; key { [ l, L ] }; key { [ p, P, section ] }; key { [ j, J ] }; key { [ space, space, nobreakspace, nobreakspace ] }; }; // C'WHERTY: Breton keyboard. Ar c'hlavier brezhoneg. // Copyright © 2009 Dominique Pellé // Version: 0.1 // // ┌─────┐ // │ S A │ S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift // │ s a │ s = normal, a = ArErl = AltGr // └─────┘ // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ $ Γ │ 1 Δ │ 2 Θ │ 3 Λ │ 4 Ξ │ 5 Π │ 6 Σ │ 7 Φ │ 8 Ψ │ 9 Ç │ 0 Ω │ ° ß │ + ¬ ┃ ⌫ Souzañ┃ // │ ² ˙ │ & ¯ │ é ´ │ " # │ ' { │ ( [ │ - | │ è ` │ - \ │ ç ± │ à @ │ ) ] │ = } ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃Toalenn┃ C'h │ W ω │ E ε │ R ρ │ T τ │ Y ψ │ U υ │ I ι │ O OE│ P π │ ¨ ¥ │ * £ ┃Enankañ┃ // ┃ ↹ ┃ c'h │ w │ e € │ r │ t │ y │ u │ i ı │ o oe│ p │ ^ « │ / » ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃Prenn ┃ A Æ │ S σ │ D δ │ F φ │ G γ │ H η │ J ς │ K κ │ L λ │ M μ │ Ù ® │ ! ¡ ┃ ┃ // ┃Pennli ⇬┃ a æ │ s │ d $ │ f │ g │ h │ j │ k │ l │ m │ ù ŭ │ ? ¿ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ Q θ │ Z ζ │ X ξ │ C χ │ V │ B β │ N ν │ CH │ Ñ │ : © │ ; ┃ ┃ // ┃Shift ⇧┃ q < │ z > │ x │ c ¢ │ v │ b │ n │ ch │ ñ │ . │ , ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ⍽ Espace insécable ␣ ┃ ┃ ┃ ┃ // ┃Reol ┃Meta ┃Erl ┃ ␣ Espace ␣ ┃ArErl ⇮┃Menu ┃Reol ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "bre" { include "keypad(oss)" name[Group1]= "French (Breton)"; // First row key { [ twosuperior, dead_tilde, dead_abovedot, Greek_GAMMA ] }; key { [ ampersand, 1, dead_macron, Greek_DELTA ] }; key { [ eacute, 2, dead_acute, Greek_THETA ] }; key { [ quotedbl, 3, numbersign, Greek_LAMDA ] }; key { [ apostrophe, 4, braceleft, Greek_XI ] }; key { [ parenleft, 5, bracketleft, Greek_PI ] }; key { [ minus, 6, bar, Greek_SIGMA ] }; key { [ egrave, 7, dead_grave, Greek_PHI ] }; key { [ underscore, 8, backslash, Greek_PSI ] }; key { [ ccedilla, 9, plusminus, Ccedilla ] }; key { [ agrave, 0, at, Greek_OMEGA ] }; key { [ parenright, dead_abovering, bracketright, ssharp ] }; key { [ equal, plus, braceright, notsign ] }; // Second row // Handling the C'H key correctly requires an inputmethod (XIM) // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 // key { [ trigraph_c_h, trigraph_C_h, trigraph_C_H, Greek_alpha ] }; key { [ UF8FD, UF8FE, UF8FF, Greek_alpha ] }; key { [ w, W, Greek_omega, Greek_omega ] }; key { [ e, E, EuroSign, Greek_epsilon ] }; key { [ r, R, Greek_rho, Greek_rho ] }; key { [ t, T, Greek_tau, Greek_tau ] }; key { [ y, Y, Greek_psi, Greek_psi ] }; key { [ u, U, Greek_upsilon, Greek_upsilon ] }; key { [ i, I, idotless, Greek_iota ] }; key { [ o, O, oe, OE ] }; key { [ p, P, Greek_pi, Greek_pi ] }; key { [ dead_circumflex, dead_diaeresis, guillemotleft, yen ] }; key { [ slash, asterisk, guillemotright, sterling ] }; // Third row key { [ a, A, ae, AE ] }; key { [ s, S, Greek_sigma, Greek_sigma ] }; key { [ d, D, dollar, Greek_delta ] }; key { [ f, F, Greek_phi, Greek_phi ] }; key { [ g, G, Greek_gamma, Greek_gamma ] }; key { [ h, H, Greek_eta, Greek_eta ] }; key { [ j, J, Greek_finalsmallsigma, Greek_finalsmallsigma ] }; key { [ k, K, Greek_kappa, Greek_kappa ] }; key { [ l, L, Greek_lamda, Greek_lambda ] }; key { [ m, M, Greek_mu, Greek_mu ] }; key { [ ugrave, Ugrave, ubreve, registered ] }; key { [ question, exclam, questiondown, exclamdown ] }; // Fourth row key { [ q, Q, less, Greek_theta ] }; key { [ z, Z, greater, Greek_zeta ] }; key { [ x, X, Greek_xi, Greek_xi ] }; key { [ c, C, cent, Greek_chi ] }; key { [ v, V ] }; key { [ b, B, Greek_beta, Greek_beta ] }; key { [ n, N, Greek_nu, Greek_nu ] }; // Handling the CH key correctly requires an inputmethod (XIM) // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 // key { [ digraph_ch, digraph_Ch, digraph_CH, Greek_omicron ] }; key { [ UF8FA, UF8FB, UF8FC, Greek_omicron ] }; key { [ ntilde, Ntilde ] }; key { [ period, colon, section, copyright ] }; key { [ comma, semicolon, percent ] }; key { [ space, nobreakspace, space, nobreakspace ] }; include "level3(ralt_switch)" }; // Occitan layout // Author : 2009 Thomas Metz // Derived from the layout defined at http://www.panoccitan.org // Version: 0.1 // Differences from OSS French keyboard : // - add á, í, ò, ó et ú, Á, Í, Ò, Ó, Ú, ñ, Ñ // - change position of æ, ü, î, û, œ, ô, ö, ï, â, ë // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ // │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ A Á │ Z Æ │ E ¢ │ R Ê │ T Ë │ Y Û │ U Ú │ I Í │ O Ó │ P Ò │ ¨ Œ │ £ Ø ┃Entrée ┃ // ┃Tab ↹ ┃ a á │ z æ │ e € │ r ê │ t ë │ y û │ u ú │ i í │ o ó │ p ò │ ^ œ │ $ ø ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ Q Ä │ S „ │ D  │ F ‚ │ G ¥ │ H Ü │ J Î │ K Ï │ L Ô │ M Ö │ % Ù │ µ ̄ ┃ ┃ // ┃Maj ⇬ ┃ q ä │ s ß │ d â │ f ‘ │ g ’ │ h ü │ j î │ k ï │ l ô │ m ö │ ù ' │ * ` ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N Ñ │ ? … │ . . │ / ∕ │ § − ┃ ┃ // ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v → │ b ↓ │ n ñ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "oci" { include "fr(oss)" name[Group1]= "Occitan"; key { [ a, A, aacute, Aacute ] }; // a A á Á key { [ z, Z, ae, AE ] }; // z Z æ Æ key { [ t, T, ediaeresis, Ediaeresis ] }; // t T ë Ë key { [ y, Y, ucircumflex, Ucircumflex ] }; // y Y û Û key { [ u, U, uacute, Uacute ] }; // u U ú Ú key { [ i, I, iacute, Iacute ] }; // i I í Í key { [ o, O, oacute, Oacute ] }; // o O ó Ó key { [ p, P, ograve, Ograve ] }; // p P ò Ò key { [ dead_circumflex, dead_diaeresis, oe, OE ] }; // ^ ̈ ̃ œ Œ key { [ d, D, acircumflex, Acircumflex ] }; // d D â  key { [ h, H, udiaeresis, Udiaeresis ] }; // h H ü Ü key { [ j, J, icircumflex, Icircumflex ] }; // j J î Î key { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï key { [ l, L, ocircumflex, Ocircumflex ] }; // l L ô Ô key { [ v, V, rightarrow, leftarrow ] }; // v V → ← key { [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ }; // Marc.Shapiro@inria.fr 19-sep-1998 // modifications : Etienne Herlent june 2000 // adapted to the new input layer : // Martin Costabel 3-jan-2001 // adapted for Latin9 alphabet (ISO-8859-15): // Etienne Herlent march 2005 // This map is an almost-complete mapping of the standard French // MacIntosh keyboard under Xwindows. I tried to remain as faithful // as possible to the Mac meaning of each key. I did this entirely by // hand and by intuition, relying on the Clavier (Keyboard?) Desktop // Accessory for the Mac meaning of keys, and on reading keysymdef.h // to intuit the corresponding X names. Lacking proper documentation, // I may have made some mistakes. // Entries marked CHECK are particularly uncertain // Entries marked MISSING mark Mac characters for which I was unable // to find a corresponding keysym. (Some for sure don't: e.g. the // Apple mark and the oe/OE character; others I may have simply not // found.) // Copied from macintosh_vndr/fr partial alphanumeric_keys xkb_symbols "mac" { name[Group1]= "French (Macintosh)"; key { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 key { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple key { [ eacute, 2, ediaeresis, Eacute ] }; key { [ quotedbl, 3, VoidSymbol, VoidSymbol ] }; // CHECK all quotemarks key { [ apostrophe, 4, VoidSymbol, VoidSymbol ] }; key { [ parenleft, 5, braceleft, bracketleft ] }; // CHECK section key { [ section, 6, paragraph, aring ] }; key { [ egrave, 7, guillemotleft, guillemotright ] }; key { [ exclam, 8, exclamdown, Ucircumflex ] }; key { [ ccedilla, 9, Ccedilla, Aacute ] }; key { [ agrave, 0, oslash, VoidSymbol ] }; // MISSING: Oslash key { [ parenright, degree, braceright, bracketright ] }; key { [ minus, underscore, emdash, endash ] }; // CHECK dashes key { [ a, A, ae, AE ] }; key { [ z, Z, Acircumflex, Aring ] }; key { [ e, E, ecircumflex, Ecircumflex ] }; key { [ r, R, registered, currency ] }; key { [ t, T, VoidSymbol, VoidSymbol ] }; key { [ y, Y, Uacute, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 key { [ u, U, VoidSymbol, ordfeminine ] }; // MISSING: ordmasculine? key { [ i, I, icircumflex, idiaeresis ] }; key { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9 key { [ p, P, VoidSymbol, VoidSymbol ] }; key { [dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex ] }; key { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9 key { [ q, Q, acircumflex, Agrave ] }; key { [ s, S, Ograve, VoidSymbol ] }; key { [ d, D, VoidSymbol, VoidSymbol ] }; key { [ f, F, VoidSymbol, periodcentered ] }; // MISSING: oblong script f?? key { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: kerned fi, fl key { [ h, H, Igrave, Icircumflex ] }; key { [ j, J, Idiaeresis, Iacute ] }; key { [ k, K, Egrave, Ediaeresis ] }; key { [ l, L, notsign, bar ] }; key { [ m, M, mu, Oacute ] }; key { [ ugrave,percent, Ugrave, ucircumflex ] }; // MISSING: per-mille key { [ dead_grave, sterling, at, numbersign ] }; key { [ less, greater, VoidSymbol, VoidSymbol ] }; key { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket) key { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK similarequal; MISSING: extra-slanted slash key { [ c, C, copyright, cent ] }; key { [ v, V, diamond, leftradical ] }; // CHECK diamond, leftradical key { [ b, B, ssharp, U1E9E ] }; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s key { [ n, N, dead_tilde, asciitilde ] }; key { [ comma, question, VoidSymbol, questiondown ] }; key { [ semicolon, period, VoidSymbol, periodcentered ] }; key { [ colon, slash, division, backslash ] }; key { [ equal, plus, VoidSymbol, plusminus ] }; key { [ space, space, nobreakspace, nobreakspace ] }; key { [ comma,KP_Decimal ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "geo" { include "ge(basic)" name[Group1]= "Georgian (France, AZERTY Tskapo)"; key { [ exclam, noSymbol ] }; key { [ 0x0100201e, 1 ] }; key { [ 0x01002116, 2 ] }; key { [ percent, 3 ] }; key { [ parenleft, 4 ] }; key { [ colon, 5 ] }; key { [ semicolon, 6 ] }; key { [ question, 7 ] }; key { [ 0x01002116, 8 ] }; key { [ degree, 9 ] }; key { [ parenright, 0 ] }; key { [ minus, underscore, 0x01002014 ] }; key { [ less, greater ] }; key { [ Georgian_an, 0x010010fa ] }; key { [ Georgian_zen, Z ] }; key { [ Georgian_en, E, Georgian_he ] }; key { [ Georgian_rae, 0x010000ae ] }; key { [ Georgian_tar, T ] }; key { [ Georgian_qar, 0x010010f8 ] }; key { [ Georgian_un, U ] }; key { [ Georgian_in, Georgian_hie ] }; key { [ Georgian_on, O ] }; key { [ Georgian_par, P ] }; key { [ Georgian_tan, T ] }; key { [ Georgian_jil, Z ] }; key { [ Georgian_khar, Q ] }; key { [ Georgian_san, S ] }; key { [ Georgian_don, D ] }; key { [ Georgian_phar, Georgian_fi ] }; key { [ Georgian_gan, 0x010010f9 ] }; key { [ Georgian_hae, Georgian_hoe ] }; key { [ Georgian_jhan, 0x010010f7 ] }; key { [ Georgian_kan, K ] }; key { [ Georgian_las, L ] }; key { [ Georgian_man, M ] }; key { [ Georgian_zhar, J ] }; key { [ Georgian_chin, 0x010000a9 ] }; key { [ guillemotleft, guillemotright ] }; key { [ Georgian_cil, W ] }; key { [ Georgian_xan, Georgian_har ] }; key { [ Georgian_can, 0x010000a9 ] }; key { [ Georgian_vin, Georgian_we ] }; key { [ Georgian_ban, B ] }; key { [ Georgian_nar, 0x010010fc ] }; key { [ comma, 0x01002014 ] }; key { [ Georgian_shin, S ] }; key { [ Georgian_ghan, noSymbol ] }; key { [ Georgian_char, noSymbol ] }; }; // US keyboard made French // // Copyright (C) 2018, Florent Gallaire partial alphanumeric_keys xkb_symbols "us" { include "us(euro)" name[Group1]= "French (US, with French letters)"; key { [ grave, asciitilde, dead_grave ] }; key { [ 6,asciicircum,dead_circumflex ] }; key { [ z, Z, acircumflex, Acircumflex ] }; // â  key { [ c, C, ccedilla, Ccedilla ] }; // ç Ç key { [ a, A, agrave, Agrave ] }; // à À key { [ s, S, ae, AE ] }; // æ Æ key { [ d, D, ecircumflex, Ecircumflex ] }; // ê Ê key { [ f, F, ediaeresis, Ediaeresis ] }; // ë Ë key { [ h, H, udiaeresis, Udiaeresis ] }; // ü Ü key { [ j, J, ucircumflex, Ucircumflex ] }; // û Û key { [ k, K, icircumflex, Icircumflex ] }; // î Î key { [apostrophe, quotedbl,dead_diaeresis ] }; key { [ e, E, eacute, Eacute ] }; // é É key { [ r, R, egrave, Egrave ] }; // è È key { [ y, Y, ydiaeresis, Ydiaeresis ] }; // ÿ Ÿ key { [ u, U, ugrave, Ugrave ] }; // ù Ù key { [ i, I, idiaeresis, Idiaeresis ] }; // ï Ï key { [ o, O, ocircumflex, Ocircumflex ] }; // ô Ô key { [ p, P, oe, OE ] }; // œ Œ key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; // « “ key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; // » ” key { [ 4, dollar, EuroSign, currency ] }; // € ¤ }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/fr(sun_type6)" }; partial alphanumeric_keys xkb_symbols "azerty" { name[Group1]="French (AZERTY)"; include "level3(ralt_switch)" // French AZERTY-Keyboard layout // Author : 2015, Mats Blakstad // Based on the layout at https://en.wikipedia.org/wiki/File:KB_France.svg // LAYOUT OVERVIEW // ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ // | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ° | + | <-- | // | ² | & | é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | // ======================================================================== // | |<- | A | Z | E | R | T | Y | U | I | O | P | ¨ | $ | , | // | ->| | a | z | e €| r | t | y | u | i | o | p | ^ | £ ¤| <-' | // ===================================================================¬ | // | | Q | S | D | F | G | H | J | K | L | M | % | µ | | // | MAJ | q | s | d | f | g | h | j | k | l | m | ù | * | | // ======================================================================== // | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | // | | | < | w | x | c | v | b | n | , | ; | : | ! | | | // ======================================================================== // | | | | | | | | | // | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | // ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ // First row key { [ twosuperior ] }; key { [ ampersand, 1 ] }; key { [ eacute, 2, asciitilde ] }; key { [ quotedbl, 3, numbersign ] }; key { [ apostrophe, 4, braceleft ] }; key { [ parenleft, 5, bracketleft ] }; key { [ minus, 6, bar ] }; key { [ egrave, 7, grave ] }; key { [ underscore, 8, backslash ] }; key { [ ccedilla, 9, asciicircum ] }; key { [ agrave, 0, at ] }; key { [ parenright, degree, bracketright ] }; key { [ equal, plus, braceright ] }; // Second row key { [ a, A ] }; key { [ z, Z ] }; key { [ e, E, EuroSign ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ dead_circumflex,dead_diaeresis ] }; key { [ dollar, sterling, currency ] }; // Third row key { [ q, Q ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ m, M ] }; key { [ ugrave, percent ] }; key { [ asterisk, mu ] }; // Fourth row key { [ less, greater ] }; key { [ w, W ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ comma, question ] }; key { [ semicolon, period ] }; key { [ colon, slash ] }; key { [ exclam, section ] }; }; // US keyboard made French (with dead keys, alternative) // // Copyright (C) 2018, Florent Gallaire partial alphanumeric_keys xkb_symbols "us-alt" { include "us(euro)" name[Group1]= "French (US, with French letters, with dead keys, alternative)"; key { [ c, C, ccedilla, Ccedilla ] }; // ç Ç key { [ a, A, ae, AE ] }; // æ Æ key { [dead_diaeresis, quotedbl, apostrophe ] }; key { [ e, E, eacute, Eacute ] }; // é É key { [ o, O, oe, OE ] }; // œ Œ key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; // « “ key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; // » ” key { [dead_grave, asciitilde, grave ] }; key { [dead_circumflex, asciicircum, 6 ] }; key { [ 4, dollar, EuroSign, currency ] }; // € ¤ }; // For physically modified US keyboard (Q <-> A, W <-> Z and ; <-> M) // // Copyright (C) 2018, Florent Gallaire partial alphanumeric_keys xkb_symbols "us-azerty" { include "us" name[Group1]= "French (US, AZERTY)"; key { [ w, W, guillemotleft, leftdoublequotemark ] }; // « “ key { [ x, X,guillemotright,rightdoublequotemark ] }; // » ” key { [ semicolon, colon ] }; key { [ q, Q ] }; key { [ m, M ] }; key { [apostrophe, quotedbl, ugrave, Ugrave ] }; // ù Ù key { [ a, A, ae, AE ] }; // æ Æ key { [ z, Z ] }; key { [ o, O, oe, OE ] }; // œ Œ key { [bracketleft, braceleft,dead_circumflex, dead_diaeresis ] }; key { [ grave, asciitilde, dead_grave ] }; key { [ 2, at, eacute, Eacute ] }; // é É key { [ 4, dollar, currency ] }; // ¤ key { [ 6,asciicircum,dead_circumflex ] }; key { [ 7, ampersand, egrave, Egrave ] }; // è È key { [ 9, parenleft, ccedilla, Ccedilla ] }; // ç Ç key { [ 0, parenright, agrave, Agrave ] }; // à À include "eurosign(e)" include "level3(ralt_switch)" }; // Unicode French standardized new azerty // Defined by the French national organization for standardization (AFNOR) in norm NF Z71-300 (http://norme-azerty.fr/) // // Credits // © 2019 Cimbali // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ # ̑ │ 1 À │ 2 É │ 3 È │ 4 Ê │ 5 ̋ │ 6 ̏ │ 7 │ 8 — │ 9 ‹ │ 0 › │ " │ ¨ ┃ ⌫ Retour┃ // │ @ ̆̆̆ ̆│ à § │ é ́ │ è ̀ │ ê & │ ( [ │ ) ] │ ‘ ̄̄ │ ’ _ │ « “ │ » ” │ ' ° │ ̂ ̌̌̌ ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ A Æ │ Z │ E │ R │ T ™ │ Y │ U Ù │ I ̣ │ O Œ │ P ‰ │ – ‑ │ ± ‡ ┃Entrée ┃ // ┃Tab ↹ ┃ a æ │ z £ │ e € │ r ® │ t { │ y } │ u ù │ i ̇ │ o œ │ p % │ - − │ + † ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ Q │ S ẞ │ D │ F │ G │ H ̱ │ J", │ K │ L │ M │ \ √ │ ½ ¼ ┃ ┃ // ┃Maj ⇬ ┃ q θ │ s ß │ d $ │ f ¤ │ g µ │ h │ j │ k ̷ │ l | │ m ∞ │ / ÷ │ * × ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃ // ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "afnor" { include "latin" include "level3(ralt_switch)" include "nbsp(level3n)" include "keypad(oss)" name[Group1]="French (AFNOR standardized AZERTY)"; // First row key { [ at, numbersign, dead_breve, dead_invertedbreve ] }; // @ # ̑ ̆̆̆ // key { [ agrave, 1, section, Agrave ] }; // à 1 § À key { [ eacute, 2, dead_acute, Eacute ] }; // é 2 ́ É key { [ egrave, 3, dead_grave, Egrave ] }; // è 3 ̀ È key { [ ecircumflex, 4, ampersand, Ecircumflex ] }; // ê 4 & Ê key { [ parenleft, 5, bracketleft, dead_doubleacute ] }; // ( 5 [ key { [ parenright, 6, bracketright, dead_doublegrave ] }; // ) 6 ] key { [ leftsinglequotemark, 7, dead_macron, VoidSymbol ] }; // ‘ 7 key { [rightsinglequotemark, 8, underscore, emdash ] }; // ’ 8 _ — key { [ guillemotleft, 9, leftdoublequotemark, VoidSymbol ] }; // « 9 “ ‹ key { [ guillemotright, 0, rightdoublequotemark, VoidSymbol ] }; // » 0 ” › key { [ apostrophe, quotedbl, degree, dead_abovering ] }; // ' " ° key { [ dead_circumflex, dead_diaeresis, dead_caron, VoidSymbol ] }; // ̂ ¨ ̌̌̌ // // Second ow key { [ a, A, ae, AE ] }; // a A æ Æ key { [ z, Z, sterling, VoidSymbol ] }; // z Z £ key { [ e, E, EuroSign, VoidSymbol ] }; // e E € key { [ r, R, registered, VoidSymbol ] }; // r R ® key { [ t, T, braceleft, trademark ] }; // t T { ™ key { [ y, Y, braceright, VoidSymbol ] }; // y Y } key { [ u, U, ugrave, Ugrave ] }; // u U ù Ù key { [ i, I, dead_abovedot, dead_belowdot ] }; // i I ̇ ̣ // key { [ o, O, oe, OE ] }; // o O œ Œ key { [ p, P, percent, permille ] }; // p P % ‰ key { [ minus, endash, 0x1002212, 0x1002011 ] }; // - – − ‑ // signe moins (minus sign), trait d'union insécable (non-breaking hyphen) key { [ plus, plusminus, dagger, doubledagger ] }; // + ± † ‡ // Third r w key { [ q, Q, Greek_theta, VoidSymbol ] }; // q Q θ key { [ s, S, ssharp, 0x1001E9E ] }; // s S ß ẞ // lettre majuscule latine S dur (latin capital letter sharp s) key { [ d, D, dollar, VoidSymbol ] }; // d D $ key { [ f, F, dead_currency, VoidSymbol ] }; // f F ¤ key { [ g, G, dead_greek, VoidSymbol ] }; // g G µ key { [ h, H, VoidSymbol, dead_belowmacron ] }; // h H ̱ // Missing dead key for other european keys (ªəƏþÞıݺſðÐƞȠijIJ) key { [ j, J, VoidSymbol, VoidSymbol ] }; // j J key { [ k, K, dead_longsolidusoverlay, VoidSymbol ] }; // k K ̷ // key { [ l, L, bar, VoidSymbol ] }; // l L | key { [ m, M, infinity, VoidSymbol ] }; // m M ∞ key { [ slash, backslash, division, radical ] }; // / \ ÷ √ key { [ asterisk, onehalf, multiply, onequarter ] }; // * ½ × ¼ // Fourth row key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ key { [ w, W, ezh, EZH ] }; // w W ʒ Ʒ key { [ x, X, copyright, VoidSymbol ] }; // x X © key { [ c, C, ccedilla, Ccedilla ] }; // c C ç Ç key { [ v, V, dead_cedilla, dead_ogonek ] }; // v V ̧ ̨ // key { [ b, B, dead_stroke, VoidSymbol ] }; // b B ̵ // key { [ n, N, dead_tilde, VoidSymbol ] }; // n N ~ key { [ period, question, questiondown, VoidSymbol ] }; // . ? ¿ key { [ comma, exclam, exclamdown, dead_belowcomma ] }; // , ! ¡ ̦ // key { [ colon, ellipsis, periodcentered, VoidSymbol ] }; // : … · key { [ semicolon, equal, similarequal, notequal ] }; // ; = ≃ ≠ }; PK(f[ * symbols/snnu[default partial alphanumeric_keys xkb_symbols "basic" { include "latin" name[Group1]="Wolof"; key { [ ampersand, 1, bar, NoSymbol ] }; key { [ eacute, 2, asciitilde, Eacute ] }; key { [ quotedbl, 3, numbersign, cedilla ] }; key { [apostrophe, 4, braceleft, acute ] }; key { [ parenleft, 5, bracketleft, diaeresis ] }; key { [ minus, 6, bar, brokenbar ] }; key { [ egrave, 7, dead_grave, Egrave ] }; key { [underscore, 8, backslash, macron ] }; key { [ ccedilla, 9, asciicircum, Ccedilla ] }; key { [ agrave, 0, at, Agrave ] }; key { [parenright, degree, bracketright, ydiaeresis ] }; key { [ equal, plus, braceright,threequarters ] }; key { [ a, A, ae, AE ] }; key { [ z, Z, guillemotleft, less ] }; key { [ e, E, EuroSign, cent ] }; key { [ eng, ENG, bracketleft, bracketright ] }; key { [ dollar, sterling, currency, ecircumflex ] }; key { [ q, Q, at, Greek_OMEGA ] }; key { [ m, M, mu, masculine ] }; key { [ ntilde, Ntilde, acute, dead_acute ] }; key { [twosuperior, percent, notsign, notsign ] }; key { [ mu, sterling, grave, dead_grave ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ comma, question, questiondown, NoSymbol ] }; key { [ semicolon, period, horizconnector, multiply ] }; key { [ colon, slash, periodcentered, division ] }; key { [ exclam, section, exclamdown, NoSymbol ] }; key { [ less, greater, bar, NoSymbol ] }; include "level3(ralt_switch)" }; PK(f[`ͪ## symbols/mtnu[// Maltese keyboard map (based on MSA Standard DMS100) // by Ramon Casha (ramon.casha@linux.org.mt) default partial alphanumeric_keys xkb_symbols "basic" { include "latin" name[Group1]="Maltese"; // Copied from GB layout key { [ 2, quotedbl, twosuperior, oneeighth ] }; key { [ 4, dollar, EuroSign, onequarter ] }; key { [apostrophe, at, dead_circumflex, dead_caron] }; key { [numbersign, asciitilde, dead_grave, dead_breve ] }; // The following four sets are the four additional letters, with the UK // equivalents key { [ cabovedot, Cabovedot, grave, notsign ] }; key { [ gabovedot, Gabovedot, bracketleft, braceleft ] }; key { [ hstroke, Hstroke, bracketright, braceright ] }; key { [ zabovedot, Zabovedot, backslash, bar ] }; // Euro symbol key { [ 3, EuroSign, sterling ] }; // Long accent key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; // Normal accented vowels key { [ e, E, egrave, Egrave ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, igrave, Igrave ] }; key { [ o, O, ograve, Ograve ] }; key { [ a, A, agrave, Agrave ] }; include "level3(ralt_switch)" }; // Maltese keyboard map (based on MSA Standard DMS100, annex A) // by Ramon Casha (ramon.casha@linux.org.mt) partial alphanumeric_keys xkb_symbols "us" { include "latin" // Describes the differences between the mt // keyboard and a US-based physical keyboard name[Group1]="Maltese (with US layout)"; // The following four sets are the four additional letters, with the US // equivalents key { [ cabovedot, Cabovedot, grave, asciitilde ] }; key { [ gabovedot, Gabovedot, bracketleft, braceleft ] }; key { [ hstroke, Hstroke, bracketright, braceright ] }; key { [ zabovedot, Zabovedot, backslash, bar ] }; key { [ zabovedot, Zabovedot, backslash, bar ] }; // Euro symbol key { [ 3, EuroSign, numbersign ] }; // Long accent key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; // Normal accented vowels key { [ e, E, egrave, Egrave ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, igrave, Igrave ] }; key { [ o, O, ograve, Ograve ] }; key { [ a, A, agrave, Agrave ] }; include "level3(ralt_switch)" }; // Alternative Maltese keyboard map (US-based layout using AltGr) // by Johann A. Briffa (johann.briffa@um.edu.mt) partial alphanumeric_keys xkb_symbols "alt-us" { include "us(basic)" include "level3(ralt_switch)" name[Group1]="Maltese (US layout with AltGr overrides)"; // Currency symbols key { [ 3, numbersign, sterling, NoSymbol ] }; key { [ 4, dollar, EuroSign, NoSymbol ] }; // Maltese characters key { [ g, G, gabovedot, Gabovedot ] }; key { [ h, H, hstroke, Hstroke ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ c, C, cabovedot, Cabovedot ] }; // Maltese accented vowels key { [ e, E, egrave, Egrave ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, igrave, Igrave ] }; key { [ o, O, ograve, Ograve ] }; key { [ a, A, agrave, Agrave ] }; // Other accents (dead-key) key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 6, asciicircum, NoSymbol, dead_circumflex ] }; key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; }; // Alternative Maltese keyboard map (UK-based layout using AltGr) // by Johann A. Briffa (johann.briffa@um.edu.mt) partial alphanumeric_keys xkb_symbols "alt-gb" { include "gb(basic)" include "level3(ralt_switch)" name[Group1]="Maltese (UK layout with AltGr overrides)"; // Currency symbols key { [ 3, sterling, numbersign, NoSymbol ] }; key { [ 4, dollar, EuroSign, NoSymbol ] }; // Maltese characters key { [ g, G, gabovedot, Gabovedot ] }; key { [ h, H, hstroke, Hstroke ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ c, C, cabovedot, Cabovedot ] }; // Maltese accented vowels key { [ e, E, egrave, Egrave ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, igrave, Igrave ] }; key { [ o, O, ograve, Ograve ] }; key { [ a, A, agrave, Agrave ] }; // Other accents (dead-key) key { [ grave, notsign, dead_grave, NoSymbol ] }; key { [ 2, quotedbl, NoSymbol, dead_diaeresis ] }; key { [ 6, asciicircum, NoSymbol, dead_circumflex ] }; key { [ apostrophe, at, dead_acute, NoSymbol ] }; key { [numbersign, asciitilde, NoSymbol, dead_tilde ] }; }; // Alternative Maltese keyboard map (US-based layout using AltGr) // by Johann A. Briffa (johann.briffa@um.edu.mt) partial alphanumeric_keys xkb_symbols "alt-us" { include "us(basic)" include "level3(ralt_switch)" name[Group1]="Maltese (US layout with AltGr overrides)"; // Currency symbols key { [ 3, numbersign, sterling, NoSymbol ] }; key { [ 4, dollar, EuroSign, NoSymbol ] }; // Maltese characters key { [ g, G, gabovedot, Gabovedot ] }; key { [ h, H, hstroke, Hstroke ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ c, C, cabovedot, Cabovedot ] }; // Maltese accented vowels key { [ e, E, egrave, Egrave ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, igrave, Igrave ] }; key { [ o, O, ograve, Ograve ] }; key { [ a, A, agrave, Agrave ] }; // Other accents (dead-key) key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 6, asciicircum, NoSymbol, dead_circumflex ] }; key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; }; // Alternative Maltese keyboard map (UK-based layout using AltGr) // by Johann A. Briffa (johann.briffa@um.edu.mt) partial alphanumeric_keys xkb_symbols "alt-gb" { include "gb(basic)" include "level3(ralt_switch)" name[Group1]="Maltese (UK layout with AltGr overrides)"; // Currency symbols key { [ 3, sterling, numbersign, NoSymbol ] }; key { [ 4, dollar, EuroSign, NoSymbol ] }; // Maltese characters key { [ g, G, gabovedot, Gabovedot ] }; key { [ h, H, hstroke, Hstroke ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ c, C, cabovedot, Cabovedot ] }; // Maltese accented vowels key { [ e, E, egrave, Egrave ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, igrave, Igrave ] }; key { [ o, O, ograve, Ograve ] }; key { [ a, A, agrave, Agrave ] }; // Other accents (dead-key) key { [ grave, notsign, dead_grave, NoSymbol ] }; key { [ 2, quotedbl, NoSymbol, dead_diaeresis ] }; key { [ 6, asciicircum, NoSymbol, dead_circumflex ] }; key { [ apostrophe, at, dead_acute, NoSymbol ] }; key { [numbersign, asciitilde, NoSymbol, dead_tilde ] }; }; PK(f[Ӝsymbols/level3nu[// These partial variants assign ISO_Level3_Shift to various XKB keycodes // so that the third shift level can be reached. // The default behaviour: // the right Alt key (AltGr) chooses the third symbol engraved on a key. default partial modifier_keys xkb_symbols "ralt_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // Ensure a mapping to a real modifier for LevelThree. partial modifier_keys xkb_symbols "modifier_mapping" { replace key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; modifier_map Mod5 { }; }; // The right Alt key never chooses the third level. // This option attempts to undo the effect of a layout's inclusion of // 'ralt_switch'. You may want to also select another level3 option // to map the level3 shift to some other key. partial modifier_keys xkb_symbols "ralt_alt" { key { type[Group1]="TWO_LEVEL", type[Group2]="TWO_LEVEL", type[Group3]="TWO_LEVEL", type[Group4]="TWO_LEVEL", symbols[Group1] = [ Alt_R, Meta_R ], symbols[Group2] = [ Alt_R, Meta_R ], symbols[Group3] = [ Alt_R, Meta_R ], symbols[Group4] = [ Alt_R, Meta_R ] }; modifier_map Mod1 { }; }; // The right Alt key (while pressed) chooses the third shift level, // and Compose is mapped to its second level. partial modifier_keys xkb_symbols "ralt_switch_multikey" { key { type[Group1]="TWO_LEVEL", symbols[Group1] = [ ISO_Level3_Shift, Multi_key ] }; include "level3(modifier_mapping)" }; // A special case of the right-Alt switch -- for use with grp:alts_toggle. hidden partial modifier_keys xkb_symbols "ralt_switch_for_alts_toggle" { virtual_modifiers LAlt, AltGr; key { type[Group1]="PC_RALT_LEVEL2", symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ], virtualMods= LAlt }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ], virtualMods= AltGr }; include "level3(modifier_mapping)" }; // Either Alt key (while pressed) chooses the third shift level. // (To be used mostly to imitate Mac OS functionality.) partial modifier_keys xkb_symbols "alt_switch" { include "level3(lalt_switch)" include "level3(ralt_switch)" }; // The left Alt key (while pressed) chooses the third shift level. partial modifier_keys xkb_symbols "lalt_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // The right Ctrl key (while pressed) chooses the third shift level. partial modifier_keys xkb_symbols "switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // The Menu key (while pressed) chooses the third shift level. partial modifier_keys xkb_symbols "menu_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // Either Win key (while pressed) chooses the third shift level. partial modifier_keys xkb_symbols "win_switch" { include "level3(lwin_switch)" include "level3(rwin_switch)" }; // The left Win key (while pressed) chooses the third shift level. partial modifier_keys xkb_symbols "lwin_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // The right Win key (while pressed) chooses the third shift level. // (When using this map, you should set your keyboard as pc101 or pc102 // instead of pc104 or pc105.) partial modifier_keys xkb_symbols "rwin_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // The Enter key on the kepypad (while pressed) chooses the third shift level. // (This is especially useful for Mac laptops which miss the right Alt key.) partial modifier_keys xkb_symbols "enter_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // The CapsLock key (while pressed) chooses the third shift level. partial modifier_keys xkb_symbols "caps_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // The Backslash key (while pressed) chooses the third shift level. partial modifier_keys xkb_symbols "bksl_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // The Less/Greater key (while pressed) chooses the third shift level. partial modifier_keys xkb_symbols "lsgt_switch" { key { type[Group1]="ONE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // The CapsLock key (while pressed) chooses the third shift level, // and latches when pressed together with another third-level chooser. partial modifier_keys xkb_symbols "caps_switch_latch" { key { type[Group1]="THREE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] }; include "level3(modifier_mapping)" }; // The Backslash key (while pressed) chooses the third shift level, // and latches when pressed together with another third-level chooser. partial modifier_keys xkb_symbols "bksl_switch_latch" { key { type[Group1]="THREE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] }; include "level3(modifier_mapping)" }; // The Less/Greater key (while pressed) chooses the third shift level, // and latches when pressed together with another third-level chooser. partial modifier_keys xkb_symbols "lsgt_switch_latch" { key { type[Group1]="THREE_LEVEL", symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] }; include "level3(modifier_mapping)" }; // Number key 4 chooses third shift level when pressed in isolation. partial modifier_keys xkb_symbols "4_switch_isolated" { override key { symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; // Number key 9 chooses third shift level when pressed in isolation. partial modifier_keys xkb_symbols "9_switch_isolated" { override key { symbols[Group1] = [ ISO_Level3_Shift ] }; include "level3(modifier_mapping)" }; PK(f[]E symbols/shiftnu[// Cancel CapsLock when a Shift key is pressed. partial modifier_keys xkb_symbols "breaks_caps" { key { type = "ALPHABETIC", actions [Group1] = [ SetMods(modifiers=Shift), SetMods(modifiers=Shift+Lock,clearLocks) ] }; key { type = "ALPHABETIC", actions [Group1] = [ SetMods(modifiers=Shift), SetMods(modifiers=Shift+Lock,clearLocks) ] }; }; // Toggle CapsLock when pressed together with the other Shift key. partial modifier_keys xkb_symbols "lshift_both_capslock" { key { type[Group1]="TWO_LEVEL", symbols[Group1] = [ Shift_L, Caps_Lock ] }; }; // Toggle CapsLock when pressed together with the other Shift key. partial modifier_keys xkb_symbols "rshift_both_capslock" { key { type[Group1]="TWO_LEVEL", symbols[Group1] = [ Shift_R, Caps_Lock ] }; }; partial modifier_keys xkb_symbols "both_capslock" { include "shift(lshift_both_capslock)" include "shift(rshift_both_capslock)" }; // Set CapsLock when pressed with the other Shift key, release it when pressed alone. partial modifier_keys xkb_symbols "lshift_both_capslock_cancel" { key { type[Group1]="ALPHABETIC", symbols[Group1] = [ Shift_L, Caps_Lock ] }; }; // Set CapsLock when pressed with the other Shift key, release it when pressed alone. partial modifier_keys xkb_symbols "rshift_both_capslock_cancel" { key { type[Group1]="ALPHABETIC", symbols[Group1] = [ Shift_R, Caps_Lock ] }; }; partial modifier_keys xkb_symbols "both_capslock_cancel" { include "shift(lshift_both_capslock_cancel)" include "shift(rshift_both_capslock_cancel)" }; // Toggle ShiftLock when pressed together with the other Shift key. partial modifier_keys xkb_symbols "lshift_both_shiftlock" { key { type[Group1]="TWO_LEVEL", symbols[Group1] = [ Shift_L, Shift_Lock ] }; }; // Toggle ShiftLock when pressed together with the other Shift key. partial modifier_keys xkb_symbols "rshift_both_shiftlock" { key { type[Group1]="TWO_LEVEL", symbols[Group1] = [ Shift_R, Shift_Lock ] }; }; partial modifier_keys xkb_symbols "both_shiftlock" { include "shift(lshift_both_shiftlock)" include "shift(rshift_both_shiftlock)" }; PK(f[TPP symbols/pknu[// Urdu keymap // Developed by: // Zaeem Arshad // Last update: 2004-03-12 // Notice: // Alt-key combinations are yet to be put in. The unavailable keys are // those which do not have a corresponding glyph in Unicode. default partial alphanumeric_keys xkb_symbols "urd-phonetic" { name[Group1]= "Urdu (Pakistan)"; key { [ 0x100064b , 0x100007E, 0x100200C ] }; key { [ 0x1000031 , 0x1000021 ] }; key { [ 0x1000032 , 0x1000040 ] }; key { [ 0x1000033 , 0x1000023 ] }; key { [ 0x1000034 , 0x1000024 ] }; key { [ 0x1000035 , 0x1000025 ] }; key { [ 0x1000036 , 0x100005E ] }; key { [ 0x1000037 , 0x1000026 ] }; key { [ 0x1000038 , 0x100002A ] }; key { [ 0x1000039 , 0x1000029 ] }; key { [ 0x1000030 , 0x1000028 ] }; key { [ 0x100002D , 0x100005F ] }; key { [ 0x100003D , 0x100002B ] }; key { [ 0x1000642 , 0x1000652, 0x100200D ] }; key { [ 0x1000648 , 0x1000624, 0x100200C ] }; key { [ 0x1000639 , 0x1000670 ] }; key { [ 0x1000631 , 0x1000691 ] }; key { [ 0x100062a , 0x1000679 ] }; key { [ 0x10006d2 , 0x100064E ] }; key { [ 0x1000621 , 0x1000626 ] }; key { [ 0x10006cc , 0x1000650 ] }; key { [ 0x10006c1 , 0x10006c3 ] }; key { [ 0x100067e , 0x100064f ] }; key { [ 0x100005d , 0x100007D ] }; key { [ 0x100005b , 0x100007B ] }; key { [ 0x1000627 , 0x1000622 ] }; key { [ 0x1000633 , 0x1000635 ] }; key { [ 0x100062f , 0x1000688 ] }; key { [ 0x1000641 , 0x1000651 ] }; key { [ 0x10006af , 0x100063a ] }; key { [ 0x100062D , 0x10006BE ] }; key { [ 0x100062c , 0x1000636 ] }; key { [ 0x10006a9 , 0x100062e ] }; key { [ 0x1000644 , 0x1000654 ] }; key { [ 0x100061b , 0x100003a ] }; key { [ 0x1000027 , 0x1000022 ] }; key { [ 0x100005C , 0x100007C ] }; key { [ bar , brokenbar ] }; key { [ 0x1000632 , 0x1000630, 0x100200E ] }; key { [ 0x1000634 , 0x1000698, 0x100202A ] }; key { [ 0x1000686 , 0x100062b, 0x100202D ] }; key { [ 0x1000637 , 0x1000638, 0x100202C ] }; key { [ 0x1000628 , 0x100002e, 0x100202E ] }; key { [ 0x1000646 , 0x10006ba, 0x100202B ] }; key { [ 0x1000645 , 0x1000658, 0x100200F ] }; key { [ 0x100060c , 0x100003c ] }; key { [ 0x10006d4 , 0x100003E ] }; key { [ 0x100002f , 0x100061f ] }; // key { [ Mode_switch, Multi_key ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "urd-crulp" { name[Group1]= "Urdu (Pakistan, CRULP)"; // www.crulp.org phonetic v1.1 key { [ 0x100007E , 0x100064B ] }; key { [ 0x10006F1 , 0x1000031, 0x1000021 ] }; key { [ 0x10006F2 , 0x1000032, 0x1000040 ] }; key { [ 0x10006F3 , 0x1000033, 0x1000023 ] }; key { [ 0x10006F4 , 0x1000034 ] }; key { [ 0x10006F5 , 0x1000035, 0x100066A ] }; key { [ 0x10006F6 , 0x1000036 ] }; key { [ 0x10006F7 , 0x1000037, 0x1000026 ] }; key { [ 0x10006F8 , 0x1000038, 0x100002A ] }; key { [ 0x10006F9 , 0x1000039, 0x1000029 ] }; key { [ 0x10006F0 , 0x1000030, 0x1000028 ] }; key { [ 0x100002D , 0x100005F ] }; key { [ 0x100003D , 0x100002B ] }; key { [ 0x1000642 , 0x1000652 ] }; key { [ 0x1000648 , 0x1000651, 0x1000602 ] }; key { [ 0x1000639 , 0x1000670, 0x1000656 ] }; key { [ 0x1000631 , 0x1000691, 0x1000613 ] }; key { [ 0x100062a , 0x1000679, 0x1000614 ] }; key { [ 0x10006d2 , 0x100064E, 0x1000601 ] }; key { [ 0x1000621 , 0x1000626, 0x1000654 ] }; key { [ 0x10006cc , 0x1000650, 0x1000611 ] }; key { [ 0x10006c1 , 0x10006c3 ] }; key { [ 0x100067e , 0x100064f, 0x1000657 ] }; key { [ 0x100005d , 0x100007D ] }; key { [ 0x100005b , 0x100007B ] }; key { [ 0x1000627 , 0x1000622, 0x100FDF2 ] }; key { [ 0x1000633 , 0x1000635, 0x1000610 ] }; key { [ 0x100062f , 0x1000688, 0x100FDFA ] }; key { [ 0x1000641 , 0x1000651 ] }; key { [ 0x10006af , 0x100063a ] }; key { [ 0x100062D , 0x10006BE, 0x1000612 ] }; key { [ 0x100062c , 0x1000636, 0x100FDFB ] }; key { [ 0x10006a9 , 0x100062e ] }; key { [ 0x1000644 , 0x1000654 ] }; key { [ 0x100061b , 0x100003a ] }; key { [ 0x1000027 , 0x1000022 ] }; key { [ 0x100005C , 0x100007C ] }; key { [ bar , brokenbar ] }; key { [ 0x1000632 , 0x1000630, 0x100060F ] }; key { [ 0x1000634 , 0x1000698, 0x100060E ] }; key { [ 0x1000686 , 0x100062b, 0x1000603 ] }; key { [ 0x1000637 , 0x1000638 ] }; key { [ 0x1000628 , 0x100002e, 0x100FDFD ] }; key { [ 0x1000646 , 0x10006ba, 0x1000600 ] }; key { [ 0x1000645 , 0x1000658 ] }; key { [ 0x100060c , 0x100003c, 0x100003C ] }; key { [ 0x10006d4 , 0x100066B, 0x100003E ] }; key { [ 0x100002f , 0x100061F ] }; // key { [ Mode_switch, Multi_key ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "urd-nla" { name[Group1]= "Urdu (Pakistan, NLA)"; // www.nla.gov.pk key { [ 0x1000060 , 0x100007E, 0x100200C ] }; key { [ 0x1000031 , 0x1000021 ] }; key { [ 0x1000032 , 0x1000040 ] }; key { [ 0x1000033 , 0x1000023 ] }; key { [ 0x1000034 , 0x1000024 ] }; key { [ 0x1000035 , 0x100066A ] }; key { [ 0x1000036 , 0x100005E ] }; key { [ 0x1000037 , 0x10006D6 ] }; key { [ 0x1000038 , 0x100066D ] }; key { [ 0x1000039 , 0x1000029 ] }; key { [ 0x1000030 , 0x1000028 ] }; key { [ 0x100002D , 0x100005F ] }; key { [ 0x100003D , 0x100002B ] }; key { [ 0x1000637 , 0x1000638, 0x100200D ] }; key { [ 0x1000635 , 0x1000636, 0x100200C ] }; key { [ 0x10006BE , 0x1000630 ] }; key { [ 0x100062F , 0x1000688 ] }; key { [ 0x1000679 , 0x100062B ] }; key { [ 0x100067E , 0x1000651 ] }; key { [ 0x100062A , 0x10006C3 ] }; key { [ 0x1000628 , 0x1000640 ] }; key { [ 0x100062C , 0x1000686 ] }; key { [ 0x100062D , 0x100062E ] }; key { [ 0x100005d , 0x100007D ] }; key { [ 0x100005b , 0x100007B ] }; key { [ 0x1000645 , 0x1000698 ] }; key { [ 0x1000648 , 0x1000632 ] }; key { [ 0x1000631 , 0x1000691 ] }; key { [ 0x1000646 , 0x10006BA ] }; key { [ 0x1000644 , 0x10006C2 ] }; key { [ 0x10006C1 , 0x1000621 ] }; key { [ 0x1000627 , 0x1000622 ] }; key { [ 0x10006a9 , 0x10006AF ] }; key { [ 0x10006CC , 0x100064A ] }; key { [ 0x100061b , 0x100003a ] }; key { [ 0x1000027 , 0x1000022 ] }; key { [ 0x100005C , 0x100007C ] }; key { [ bar , brokenbar ] }; key { [ 0x1000642 , 0x100200D, 0x100200E ] }; key { [ 0x1000641 , 0x100200C, 0x100202A ] }; key { [ 0x10006D2 , 0x10006D3, 0x100202D ] }; key { [ 0x1000633 , 0x100200E, 0x100202C ] }; key { [ 0x1000634 , 0x1000624, 0x100202E ] }; key { [ 0x100063A , 0x1000626, 0x100202B ] }; key { [ 0x1000639 , 0x100200F, 0x100200F ] }; key { [ 0x100060c , 0x100003E ] }; key { [ 0x10006d4 , 0x100003C ] }; key { [ 0x100002F , 0x100061f ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "snd" { name[Group1]= "Sindhi"; // www.bhurgri.com key { [ 0x1002019, 0x1002018 ] }; key { [ 1, exclam, 0x1000610 ] }; key { [ 2, 0x1000670, 0x1000611 ] }; key { [ 3, 0x1000621, 0x1000613 ] }; key { [ 4, 0x1000621, 0x1000612 ] }; key { [ 5, 0x1000621, 0x1002026 ] }; key { [ 6, 0x1000621, 0x1002022 ] }; key { [ 7, 0x10006FD ] }; key { [ 8, asterisk ] }; key { [ 9, parenright ] }; key { [ 0, parenleft ] }; key { [ 0x100068F, 0x100005F, 0x100002D ] }; key { [ 0x100068C, plus, 0x100003D ] }; key { [ 0x100068D, 0x100067A, 0x100007C ] }; key { [ 0x1000642, 0x100064E, 0x100064B ] }; key { [ 0x1000635, 0x1000636, 0x100FDFA ] }; key { [ 0x100064A, 0x1000650, 0x1000656 ] }; key { [ 0x1000631, 0x1000699, 0x100FDE6 ] }; key { [ 0x100062A, 0x100067D, 0x1000629 ] }; key { [ 0x100067F, 0x100062B, 0x100FDE5 ] }; key { [ 0x1000639, 0x100063A, 0x100FDE3 ] }; key { [ 0x10006B3, 0x10006BE, 0x100FDE4 ] }; key { [ 0x1000648, 0x100064F, 0x1000657 ] }; key { [ 0x100067E, 0x10006A6 ] }; key { [ 0x1000687, 0x1000683 ] }; key { [ 0x1000686, 0x1000684 ] }; key { [ 0x1000627, 0x1000622, 0x1000649 ] }; key { [ 0x1000633, 0x1000634 ] }; key { [ 0x100062F, 0x100068A ] }; key { [ 0x1000641, 0x10006A6 ] }; key { [ 0x10006AF, 0x10006AF ] }; key { [ 0x1000647, 0x100062D, 0x10006C1 ] }; key { [ 0x100062C, 0x100062C, 0x100FDFB ] }; key { [ 0x10006AA, 0x10006E1 ] }; key { [ 0x1000644, 0x100003A ] }; key { [ 0x10006A9, 0x100061B ] }; key { [ 0x10006B1, 0x1000640 ] }; key { [ 0x1000632, 0x1000630, 0x1000652 ] }; key { [ 0x100062E, 0x1000651, 0x100200C ] }; key { [ 0x1000637, 0x1000638, 0x100200D ] }; key { [ 0x1000680, 0x1000621, 0x1000624 ] }; key { [ 0x1000628, 0x100067B, 0x100FDE1 ] }; key { [ 0x1000646, 0x10006BB, 0x100200E ] }; key { [ 0x1000645, 0x10006FE, 0x100FDF4 ] }; key { [ 0x100060C, 0x100201C, 0x100200F ] }; key { [ period, 0x100201D, 0x10006D4 ] }; key { [ 0x1000626, Arabic_question_mark, 0x100002F ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "ara" { name[Group1]= "Arabic (Pakistan)"; // NOTES: // // there is also combined shadda diacritis in AltGr position of simple // diacritics fatha, fathatan, damma, dammatan, kasra and kasratan // should a third state be added to Group2 ? // // How is this different from ara(basic)? --bernie key { [ 0x100064d , 0x100064b ] }; key { [ 0x10006F1 , 0x1000021 ] }; key { [ 0x10006F2 , 0x1000003 ] }; key { [ 0x10006F3 , 0x100002f ] }; key { [ 0x10006F4 , 0x1000626 ] }; key { [ 0x10006F5 , 0x1000003 ] }; key { [ 0x10006F6 , 0x10006d6 ] }; key { [ 0x10006F7 , 0x1000654 ] }; key { [ 0x10006F8 , 0x100064c ] }; key { [ 0x10006F9 , 0x1000029 ] }; key { [ 0x10006F0 , 0x1000028 ] }; key { [ 0x1000623 , 0x1000651 ] }; key { [ 0x1000624 , 0x1000622 ] }; key { [ 0x1000642 , 0x1000652 ] }; key { [ 0x1000648 , 0x10000a3 ] }; key { [ 0x1000639 , 0x10000a5 ] }; key { [ 0x1000631 , 0x1000691 ] }; key { [ 0x100062a , 0x1000679 ] }; key { [ 0x10006d2 , 0x1000601 ] }; key { [ 0x1000621 , 0x100060c ] }; key { [ 0x10006cc , 0x1000670 ] }; key { [ 0x10006c1 , 0x10006c3 ] }; key { [ 0x100067e , 0x100064f ] }; key { [ 0x100005d , 0x1000670 ] }; key { [ 0x100005b , 0x1000670 ] }; key { [ 0x1000627 , 0x1000653 ] }; key { [ 0x1000633 , 0x1000635 ] }; key { [ 0x100062f , 0x1000688 ] }; key { [ 0x1000641 , 0x1000003 ] }; key { [ 0x10006af , 0x100063a ] }; key { [ 0x10006be , 0x100062d ] }; key { [ 0x100062c , 0x1000636 ] }; key { [ 0x10006a9 , 0x100062e ] }; key { [ 0x1000644 , 0x1000613 ] }; key { [ 0x100061b , 0x100003a ] }; key { [ 0x1000670 , 0x1000022 ] }; key { [ 0x100060e , 0x1000614 ] }; key { [ bar , brokenbar ] }; key { [ 0x1000632 , 0x1000630 ] }; key { [ 0x1000634 , 0x1000698 ] }; key { [ 0x1000686 , 0x100062b ] }; key { [ 0x1000637 , 0x1000638 ] }; key { [ 0x1000628 , 0x1000612 ] }; key { [ 0x1000646 , 0x10006ba ] }; key { [ 0x1000645 , 0x1000003 ] }; key { [ 0x100060c , 0x1000650 ] }; key { [ 0x10006d4 , 0x100064e ] }; key { [ 0x1000003 , 0x100061f ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { // Contact: Walter Bender include "pk(ara)" name[Group1]= "Urdu (Pakistan)"; // Keys '~' - '=' key { [ 0x1000654, 0x100064B ] }; key { [ 0x10006F1, 0x1000603 ] }; key { [ 0x10006F2, 0x1000602 ] }; key { [ 0x10006F3, 0x1000601 ] }; key { [ 0x10006F4, 0x1000600 ] }; key { [ 0x10006F5, 0x100060F ] }; key { [ 0x10006F6, 0x100060E ] }; key { [ 0x10006F7, 0x1000614 ] }; key { [ 0x10006F8, 0x1000612 ] }; key { [ 0x10006F9, 0x1000611 ] }; key { [ 0x10006F0, 0x1000613 ] }; key { [ minus, 0x1000610 ] }; key { [ equal, plus ] }; //Keys 'Q' - ']' key { [ 0x1000642, 0x1000652 ] }; key { [ 0x1000648, 0x1000651 ] }; key { [ 0x1000639, 0x1000670 ] }; key { [ 0x1000631, 0x1000691 ] }; key { [ 0x100062A, 0x1000679 ] }; key { [ 0x10006D2, 0x100064E ] }; key { [ 0x1000621, 0x1000626 ] }; key { [ 0x10006CC, 0x1000650 ] }; key { [ 0x10006C1, 0x10006C3 ] }; key { [ 0x100067E, 0x100064F ] }; key { [ 0x100FDFD, 0x100FDFA ] }; key { [ 0x100FDF2, 0x100FDFB ] }; // Keys 'A' - ''' key { [ 0x1000627, 0x1000622 ] }; key { [ 0x1000633, 0x1000635 ] }; key { [ 0x100062F, 0x1000688 ] }; key { [ 0x1000641 ] }; //shift key not available key { [ 0x10006AF, 0x100063A ] }; key { [ 0x100062D, 0x10006BE ] }; key { [ 0x100062C, 0x1000636 ] }; key { [ 0x10006A9, 0x100062E ] }; key { [ 0x1000644, 0x1000656 ] }; key { [ 0x100061B, colon ] }; key { [ quote, doublequote ] }; key { [ backslash, bar ] }; key { [ space ] }; // Keys: 'Z' - '/' key { [ 0x1000632, 0x1000622 ] }; key { [ 0x1000634, 0x1000635 ] }; key { [ 0x1000686, 0x1000688 ] }; key { [ 0x1000637 ] }; //shift key unavailable key { [ 0x1000628, 0x100063A ] }; key { [ 0x1000646, 0x10006BE ] }; key { [ 0x1000645, 0x1000636 ] }; key { [ 0x100060C, 0x100062E ] }; key { [ 0x10006D4, 0x1000656 ] }; key { [ slash, 0x100061F ] }; include "group(olpc)" }; PK(f[$K symbols/bwnu[default partial alphanumeric_keys xkb_symbols "tswana" { include "us" name[Group1]= "Tswana"; key { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON key { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW include "level3(ralt_switch)" }; PK(f[CF   symbols/bynu[// based on // belarusian standard keyboard // Alexander Mikhailian // Reworked to use winkeys by default and russian keymap as base by Paul Lubetsky // Added third level with russian symbols // See freedesktop.org bug #23604 default partial alphanumeric_keys xkb_symbols "basic" { include "ru(winkeys)" name[Group1]= "Belarusian"; key { [ Byelorussian_shortu, Byelorussian_SHORTU ] }; key { [ apostrophe, apostrophe ] }; key { [ Ukrainian_i, Ukrainian_I ] }; }; partial alphanumeric_keys xkb_symbols "legacy" { include "by(basic)" name[Group1]= "Belarusian (legacy)"; key { [ 3, numbersign ] }; key { [ 4, asterisk ] }; key { [ 5, colon ] }; key { [ 6, comma ] }; key { [ 7, period ] }; key { [ 8, semicolon ] }; key { [ slash, question ] }; key { [ backslash, bar ] }; }; // based on a keyboard map from an 'xkb/symbols/iso3335-3' file partial alphanumeric_keys xkb_symbols "latin" { include "latin" name[Group1]= "Belarusian (Latin)"; key { [ w, W, scaron, Scaron ] }; key { [ u, U, ubreve, Ubreve ] }; key { [ s, S, sacute, Sacute ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ z, Z, zacute, Zacute ] }; key { [ x, X, zcaron, Zcaron ] }; key { [ c, C, cacute, Cacute ] }; key { [ v, V, ccaron, Ccaron ] }; key { [ n, N, nacute, Nacute ] }; include "level3(ralt_switch)" }; PK(f[+j3(( symbols/esnu[// Modified for a real Spanish keyboard by Jon Tombs. default partial alphanumeric_keys xkb_symbols "basic" { include "latin(type4)" name[Group1]="Spanish"; key { [ 1, exclam, bar, exclamdown ] }; key { [ 3, periodcentered, numbersign, sterling ] }; key { [ 4, dollar, asciitilde, dollar ] }; key { [ 6, ampersand, notsign, fiveeighths ] }; key { [apostrophe, question, backslash, questiondown ] }; key { [exclamdown, questiondown, dead_tilde, asciitilde ] }; key { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] }; key { [ plus, asterisk, bracketright, dead_macron ] }; key { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] }; key { [dead_acute, dead_diaeresis, braceleft, braceleft ] }; key { [ masculine, ordfeminine, backslash, backslash ] }; key { [ ccedilla, Ccedilla, braceright, dead_breve ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "winkeys" { include "es(basic)" name[Group1]="Spanish (Win keys)"; include "eurosign(5)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "es(basic)" key { [dead_acute, dead_diaeresis, braceleft, braceleft ] }; key { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] }; }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "es(Sundeadkeys)" name[Group1]="Spanish (with Sun dead keys)"; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "es(basic)" name[Group1]="Spanish (no dead keys)"; key { [ grave, asciicircum, bracketleft, degree ] }; key { [ plus, asterisk, bracketright, macron ] }; key { [ ntilde, Ntilde, asciitilde, doubleacute ] }; key { [ acute, diaeresis, braceleft, braceleft ] }; key { [ ccedilla, Ccedilla, braceright, breve ] }; key { [ minus, underscore, dead_belowdot, abovedot ] }; }; // Spanish mapping (note R-H exchange) partial alphanumeric_keys xkb_symbols "dvorak" { name[Group1]="Spanish (Dvorak)"; key {[ masculine, ordfeminine, backslash, degree ]}; key {[ 1, exclam, bar, onesuperior ]}; key {[ 2, quotedbl, at, twosuperior ]}; key {[ 3, periodcentered, numbersign, threesuperior ]}; key {[ 4, dollar, asciitilde, onequarter ]}; key {[ 5, percent, brokenbar, fiveeighths ]}; key {[ 6, ampersand, notsign, threequarters ]}; key {[ 7, slash, onehalf, seveneighths ]}; key {[ 8, parenleft, oneeighth, threeeighths ]}; key {[ 9, parenright, asciicircum ]}; key {[ 0, equal, grave, dead_doubleacute ]}; key {[ apostrophe, question, dead_macron, dead_ogonek ]}; key {[ exclamdown, questiondown, dead_breve, dead_abovedot ]}; key {[ period, colon, less, guillemotleft ]}; key {[ comma, semicolon, greater, guillemotright ]}; key {[ ntilde, Ntilde, lstroke, Lstroke ]}; key {[ p, P, paragraph ]}; key {[ y, Y, yen ]}; key {[ f, F, tslash, Tslash ]}; key {[ g, G, dstroke, Dstroke ]}; key {[ c, C, cent, copyright ]}; key {[ h, H, hstroke, Hstroke ]}; key {[ l, L, sterling ]}; key {[ dead_grave, dead_circumflex, bracketleft, dead_caron ]}; key {[ plus, asterisk, bracketright, plusminus ]}; key {[ a, A, ae, AE ]}; key {[ o, O, oslash, Oslash ]}; key {[ e, E, EuroSign ]}; key {[ u, U, aring, Aring ]}; key {[ i, I, oe, OE ]}; key {[ d, D, eth, ETH ]}; key {[ r, R, registered, trademark ]}; key {[ t, T, thorn, THORN ]}; key {[ n, N, eng, ENG ]}; key {[ s, S, ssharp, section ]}; key {[ dead_acute, dead_diaeresis, braceleft, dead_tilde ]}; key {[ ccedilla, Ccedilla, braceright, dead_cedilla ]}; key {[ less, greater, guillemotleft, guillemotright ]}; key {[ minus, underscore, hyphen, macron ]}; key {[ q, Q, currency ]}; key {[ j, J ]}; key {[ k, K, kra ]}; key {[ x, X, multiply, division ]}; key {[ b, B ]}; key {[ m, M, mu ]}; key {[ w, W ]}; key {[ v, V ]}; key {[ z, Z ]}; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "cat" { include "es(basic)" name[Group1]="Catalan (Spain, with middle-dot L)"; key { [ l, L, 0x1000140, 0x100013F ] }; }; partial alphanumeric_keys xkb_symbols "ast" { include "es(basic)" name[Group1]="Asturian (Spain, with bottom-dot H and bottom-dot L)"; key { [ h, H, 0x1001E25, 0x1001E24 ] }; key { [ l, L, 0x1001E37, 0x1001E36 ] }; }; // Copied from macintosh_vndr/es partial alphanumeric_keys xkb_symbols "mac" { include "es" name[Group1]= "Spanish (Macintosh)"; }; partial alphanumeric_keys xkb_symbols "olpc" { // http://wiki.laptop.org/go/OLPC_Spanish_Keyboard include "us(basic)" name[Group1]="Spanish"; key { [ masculine, ordfeminine ] }; key { [ 1, exclam, bar ] }; key { [ 2, quotedbl, at ] }; key { [ 3, dead_grave, numbersign, grave ] }; key { [ 5, percent, asciicircum, dead_circumflex ] }; key { [ 6, ampersand, notsign ] }; key { [ 7, slash, backslash ] }; key { [ 8, parenleft ] }; key { [ 9, parenright ] }; key { [ 0, equal ] }; key { [ apostrophe, question ] }; key { [ exclamdown, questiondown ] }; key { [ e, E, EuroSign ] }; key { [ dead_acute, dead_diaeresis, acute, dead_abovering ] }; key { [ bracketleft, braceleft ] }; key { [ ntilde, Ntilde ] }; key { [ plus, asterisk, dead_tilde ] }; key { [ bracketright, braceright, section ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; key { [ less, greater, ISO_Next_Group ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpcm" { // Mechanical (non-membrane) OLPC Spanish keyboard layout. // See: http://wiki.laptop.org/go/OLPC_Spanish_Non-membrane_Keyboard include "us(basic)" name[Group1]="Spanish"; key { [ questiondown, exclamdown, backslash ] }; key { [ 1, exclam, bar ] }; key { [ 2, quotedbl, at ] }; key { [ 3, dead_grave, numbersign, grave ] }; key { [ 4, dollar, asciitilde, dead_tilde ] }; key { [ 5, percent, asciicircum, dead_circumflex ] }; key { [ 6, ampersand, notsign ] }; key { [ 7, slash, backslash ] }; // no '\' label on olpcm, leave for compatibility key { [ 8, parenleft, masculine ] }; key { [ 9, parenright, ordfeminine ] }; key { [ 0, equal ] }; key { [ apostrophe, question ] }; key { [ e, E, EuroSign ] }; key { [ dead_acute, dead_diaeresis, dead_abovering, acute ] }; key { [ plus, asterisk ] }; key { [ ntilde, Ntilde ] }; // no AC11 or AC12 on olpcm key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; key { [ less, greater ] }; key { [ bracketleft, braceleft, ccedilla, Ccedilla ] }; key { [ bracketright, braceright ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "deadtilde" { include "es(basic)" name[Group1]="Spanish (dead tilde)"; key { [ 4, dollar, dead_tilde, dollar ] }; }; partial alphanumeric_keys xkb_symbols "olpc2" { // Modified variant of US International layout, specifically for Peru // Contact: Sayamindu Dasgupta include "us(olpc)" name[Group1]="Spanish (OLPC2)"; key { [ 3, numbersign, dead_grave, dead_grave] }; // combining grave key { [ XF86Start ] }; include "level3(ralt_switch)" }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/es(sun_type6)" }; PK(f[Y; symbols/lanu[// Lao keymap, by Anousak Souphavanh default partial alphanumeric_keys xkb_symbols "basic" { // This keymap describes the Lao keyboard standard, // which is [kind of] widely used in Laos. name[Group1]= "Lao"; key { [ 0x100200D ]}; key { [ 0x1000ea2, 0x1000ed1 ]}; key { [ 0x1000ea2, 0x1000ed1 ]}; key { [ 0x1000e9f, 0x1000ed2 ]}; key { [ 0x1000ec2, 0x1000ed3 ]}; key { [ 0x1000e96, 0x1000ed4 ]}; key { [ 0x1000eb8, 0x1000ecc ]}; key { [ 0x1000eb9, 0x1000ebc ]}; key { [ 0x1000e84, 0x1000ed5 ]}; key { [ 0x1000e95, 0x1000ed6 ]}; key { [ 0x1000e88, 0x1000ed7 ]}; key { [ 0x1000e82, 0x1000ed8 ]}; key { [ 0x1000e8a, 0x1000ed9 ]}; key { [ 0x1000ecd ]}; key { [ 0x1000ebb ]}; key { [ 0x1000ec4, 0x1000ed0 ]}; key { [ 0x1000eb3 ]}; key { [ 0x1000e9e, underscore ]}; key { [ 0x1000eb0, plus ]}; key { [ 0x1000eb4 ]}; key { [ 0x1000eb5 ]}; key { [ 0x1000ea3, 0x1000eae ]}; key { [ 0x1000e99 ]}; key { [ 0x1000e8d, 0x1000ebd ]}; key { [ 0x1000e9a, minus ]}; key { [ 0x1000ea5, braceright ]}; key { [ 0x1000edc, 0x1000edd ]}; key { [ 0x1000eb1 ]}; key { [ 0x1000eab, semicolon ]}; key { [ 0x1000e81, period ]}; key { [ 0x1000e94, comma ]}; key { [ 0x1000ec0, colon ]}; key { [ 0x1000ec9, 0x1000eca ]}; key { [ 0x1000ec8, 0x1000ecb ]}; key { [ 0x1000eb2, exclam ]}; key { [ 0x1000eaa, question ]}; key { [ 0x1000ea7, percent ]}; key { [ 0x1000e87, equal ]}; key { [ 0x1000e9c, 0x10020ad ]}; key { [ 0x1000e9b, parenleft ]}; key { [ 0x1000ec1, 0x1000eaf ]}; key { [ 0x1000ead ]}; key { [ 0x1000eb6 ]}; key { [ 0x1000eb7 ]}; key { [ 0x1000e97, 0x1000ec6 ]}; key { [ 0x1000ea1, grave ]}; key { [ 0x1000ec3, dollar ]}; key { [ 0x1000e9d, parenright ]}; }; partial xkb_symbols "stea" { // This keymap describes the proposed Lao keyboard standard by // the PAN Localization Project. // Science Technology and Environment Agency of Lao PDR // National University Computer and Emergency Science of Pakistan // International Development Research Center // Caveat: assigning multiple codepoints to a single key does not // work in XKB. Therefore the combining codepoint assignments // have been omitted. name[Group1]= "Lao (STEA proposed standard layout)"; key { [ quotedbl, apostrophe ]}; key { [ 0x1000ea2, 1, 0x1000ed1 ]}; key { [ 0x1000e9f, 2, 0x1000ed2 ]}; key { [ 0x1000ec2, 3, 0x1000ed3 ]}; key { [ 0x1000e96, 4, 0x1000ed4 ]}; key { [ 0x1000eb8, 0x1000ecc, 0x1000ed5 ]}; key { [ 0x1000eb9, 0x1000ebc, 0x1000ed6 ]}; key { [ 0x1000e84, 5, 0x1000ed7 ]}; key { [ 0x1000e95, 6, 0x1000ed8 ]}; key { [ 0x1000e88, 7, 0x1000ed9 ]}; key { [ 0x1000e82, 8, 0x1000ed0 ]}; key { [ 0x1000e8a, 9 ]}; key { [ 0x1000ecd ]}; key { [ 0x1000ebb ]}; key { [ 0x1000ec4, 0 ]}; key { [ 0x1000eb3, asterisk ]}; key { [ 0x1000e9e, underscore ]}; key { [ 0x1000eb0, plus ]}; key { [ 0x1000eb4 ]}; key { [ 0x1000eb5 ]}; key { [ 0x1000eae, 0x1000ea3 ]}; key { [ 0x1000e99, 0x1000edc ]}; key { [ 0x1000e8d, 0x1000ebd ]}; key { [ 0x1000e9a, minus ]}; key { [ 0x1000ea5 ]}; key { [ slash, backslash ]}; key { [ 0x1000eb1 ]}; key { [ 0x1000eab, semicolon ]}; key { [ 0x1000e81, period ]}; key { [ 0x1000e94, comma ]}; key { [ 0x1000ec0, colon ]}; key { [ 0x1000ec9, 0x1000eca ]}; key { [ 0x1000ec8, 0x1000ecb ]}; key { [ 0x1000eb2, exclam ]}; key { [ 0x1000eaa, question ]}; key { [ 0x1000ea7, percent ]}; key { [ 0x1000e87, equal ]}; key { [ 0x1000e9c, 0x10020ad ]}; key { [ 0x1000e9b, parenleft ]}; key { [ 0x1000ec1, 0x1000eaf ]}; key { [ 0x1000ead, x ]}; key { [ 0x1000eb6 ]}; key { [ 0x1000eb7 ]}; key { [ 0x1000e97, 0x1000ec6 ]}; key { [ 0x1000ea1, 0x1000edd ]}; key { [ 0x1000ec3, dollar ]}; key { [ 0x1000e9d, parenright ]}; key { [ space, nobreakspace, nobreakspace ]}; key { [ comma, period ]}; include "level3(ralt_switch)" }; PK(f[(( symbols/tjnu[// 17/07/2008 // ------------------------------------------------------------- // Standard Tojiki Keyboard Layout, Official Standard // ------------------------------------------------------------- // Created by Victor Ibragimov // Tajik Fedora & Software Localization Team // ------------------------------------------------------------- // DUAL INPUT METHOD // -------------------------------------------------------------------- // -------------- Tajiki Official Keyboard Layout---------------------- // -------------------------------------------------------------------- // default partial alphanumeric_keys xkb_symbols "basic" { name[Group1] = "Tajik"; include "kpdl(comma)" include "level3(ralt_switch)" key { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я key { [ Cyrillic_che, Cyrillic_CHE ] }; // ч Ч key { [ Cyrillic_es, Cyrillic_ES ] }; // с С key { [ Cyrillic_em, Cyrillic_EM ] }; // м М key { [ Cyrillic_i, Cyrillic_I ] }; // и И key { [ Cyrillic_te, Cyrillic_TE ] }; // т Т key { [ Cyrillic_i_macron, Cyrillic_I_macron ] }; // ӣ Ӣ key { [ Cyrillic_be, Cyrillic_BE ] }; // б Б key { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю key { [ period, comma ] }; // . , key { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф key { [ Cyrillic_che_descender, Cyrillic_CHE_descender ] }; // ҷ Ҷ key { [ Cyrillic_ve, Cyrillic_VE ] }; // в В key { [ Cyrillic_a, Cyrillic_A ] }; // а А key { [ Cyrillic_pe, Cyrillic_PE ] }; // п П key { [ Cyrillic_er, Cyrillic_ER ] }; // р Р key { [ Cyrillic_o, Cyrillic_O ] }; // о О key { [ Cyrillic_el, Cyrillic_EL ] }; // л Л key { [ Cyrillic_de, Cyrillic_DE ] }; // д Д key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж key { [ Cyrillic_e, Cyrillic_E ] }; // э Э key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й key { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] }; // қ Қ key { [ Cyrillic_u, Cyrillic_U ] }; // у У key { [ Cyrillic_ka, Cyrillic_KA ] }; // к К key { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е key { [ Cyrillic_en, Cyrillic_EN ] }; // н Н key { [ Cyrillic_ghe, Cyrillic_GHE ] }; // г Г key { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш key { [ Cyrillic_ha_descender, Cyrillic_HA_descender ] }; // ҳ Ҳ key { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З key { [ Cyrillic_ha, Cyrillic_HA ] }; // х Х key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ key { [ 1, exclam, 0x10000a7 ] }; // 1 ! § key { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » key { [ 3, numerosign ] }; // 3 № key { [ 4, semicolon ] }; // 4 ; key { [ 5, percent ] }; // 5 % key { [ 6, colon, 0x1002013 ] }; // 6 : – key { [ 7, question, ampersand ] }; // 7 ? & key { [ 8, asterisk ] }; // 8 * key { [ 9, parenleft ] }; // 9 ( key { [ 0, parenright, 0x10000b0 ] }; // 0 ) ° key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, minus, underscore ] }; // ғ Ғ - _ key { [ Cyrillic_u_macron, Cyrillic_U_macron, equal, plus ] }; // ӯ Ӯ = + key { [ backslash, slash ] }; // \ / key { [ slash, bar ] }; // / | key { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё }; // -------------------------------------------------------------------- // -------------- Tojiki Rusi Keyboard Layout-------------------------- // -------------------------------------------------------------------- // AEN // 2001/12/23 by Leon Kanter // 2005/12/09 Valery Inozemtsev // Pablo Saratxaga (for the dead keys changes) // -------------------------------------------------------------------- xkb_symbols "legacy" { name[Group1] = "Tajik (legacy)"; include "kpdl(comma)" include "level3(ralt_switch)" key { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я key { [ Cyrillic_che, Cyrillic_CHE, Cyrillic_che_descender, Cyrillic_CHE_descender ] }; // ч Ч ҷ Ҷ key { [ Cyrillic_es, Cyrillic_ES ] }; // с С key { [ Cyrillic_em, Cyrillic_EM ] }; // м М key { [ Cyrillic_i, Cyrillic_I, Cyrillic_i_macron, Cyrillic_I_macron ] }; // и И ӣ Ӣ key { [ Cyrillic_te, Cyrillic_TE ] }; // т Т key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ь Ь key { [ Cyrillic_be, Cyrillic_BE ] }; // б Б key { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю key { [ period, comma ] }; // . , key { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф key { [ Cyrillic_yeru, Cyrillic_YERU ] }; // ы Ы key { [ Cyrillic_ve, Cyrillic_VE ] }; // в В key { [ Cyrillic_a, Cyrillic_A ] }; // а А key { [ Cyrillic_pe, Cyrillic_PE ] }; // п П key { [ Cyrillic_er, Cyrillic_ER ] }; // р Р key { [ Cyrillic_o, Cyrillic_O ] }; // о О key { [ Cyrillic_el, Cyrillic_EL ] }; // л Л key { [ Cyrillic_de, Cyrillic_DE ] }; // д Д key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж key { [ Cyrillic_e, Cyrillic_E ] }; // э Э key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й key { [ Cyrillic_tse, Cyrillic_TSE ] }; // ц Ц key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_macron, Cyrillic_U_macron ] }; // у У ӯ Ӯ key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; // к К қ Қ key { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е key { [ Cyrillic_en, Cyrillic_EN ] }; // н Н key { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; // г Г ғ Ғ key { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // щ Щ key { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_ha_descender, Cyrillic_HA_descender ] }; // х Х ҳ Ҳ key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ key { [ 1, exclam, 0x10000a7 ] }; // 1 ! § key { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » key { [ 3, numerosign ] }; // 3 № key { [ 4, semicolon ] }; // 4 ; key { [ 5, percent ] }; // 5 % key { [ 6, colon, 0x1002013 ] }; // 6 : – key { [ 7, question, ampersand ] }; // 7 ? & key { [ 8, asterisk ] }; // 8 * key { [ 9, parenleft ] }; // 9 ( key { [ 0, parenright ] }; // 0 ) key { [ minus, underscore ] }; // - _ key { [ equal, plus ] }; // = + key { [ backslash, slash ] }; // \ / key { [ slash, bar ] }; // / | key { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё }; PK(f[s 44 symbols/idnu[// // Default layout, additional characters must be in "phoneticx" (with "x") or other extended layout variants below // default partial alphanumeric_keys xkb_symbols "phonetic" { name[Group1]= "Indonesian (Arab Melayu, phonetic)"; // ` key { [ grave, asciitilde, VoidSymbol, VoidSymbol ] }; // 1..= key { [ Arabic_1, exclam, 1, VoidSymbol ] }; key { [ Arabic_2, at, 2, VoidSymbol ] }; key { [ Arabic_3, numbersign, 3, VoidSymbol ] }; key { [ Arabic_4, VoidSymbol, 4, dollar ] }; key { [ Arabic_5, Arabic_percent, 5, percent ] }; key { [ Arabic_6, asciicircum, 6, VoidSymbol ] }; key { [ Arabic_7, ampersand, 7, VoidSymbol ] }; key { [ Arabic_8, asterisk, 8, VoidSymbol ] }; key { [ Arabic_9, parenright, 9, VoidSymbol ] }; key { [ Arabic_0, parenleft, 0, VoidSymbol ] }; key { [ minus, Arabic_tatweel, VoidSymbol, underscore ] }; key { [ equal, plus, VoidSymbol, VoidSymbol ] }; // Q..] key { [ Arabic_qaf, Arabic_maddaonalef, VoidSymbol, VoidSymbol ] }; key { [ Arabic_waw, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ Arabic_alefmaksura, Arabic_ain, VoidSymbol, VoidSymbol ] }; key { [ Arabic_ra, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ Arabic_teh, Arabic_tehmarbuta, Arabic_tah, VoidSymbol ] }; key { [ Arabic_yeh, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ Arabic_hamzaonwaw, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ Arabic_hamzaonyeh, Arabic_hamzaunderalef, VoidSymbol, VoidSymbol ] }; key { [ Arabic_hamza, U0674, VoidSymbol, VoidSymbol ] }; // high_hamza key { [ Arabic_veh, VoidSymbol, VoidSymbol, VoidSymbol ] }; // p key { [ bracketright, braceright, VoidSymbol, VoidSymbol ] }; key { [ bracketleft, braceleft, VoidSymbol, VoidSymbol ] }; // \ key { [ backslash, bar, VoidSymbol, VoidSymbol ] }; // A..' key { [ Arabic_alef, Arabic_hamzaonalef, VoidSymbol, VoidSymbol ] }; key { [ Arabic_seen, Arabic_sheen, Arabic_sad, VoidSymbol ] }; key { [ Arabic_dal, VoidSymbol, Arabic_dad, VoidSymbol ] }; key { [ Arabic_feh, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ U0762, U06a0, Arabic_ghain, U06af ] }; // g, ng, gaf (tausug) key { [ Arabic_ha, Arabic_hah, VoidSymbol, VoidSymbol ] }; key { [ Arabic_jeem, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ Arabic_keheh, Arabic_kaf, VoidSymbol, VoidSymbol ] }; // k key { [ Arabic_lam, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ Arabic_semicolon, colon, semicolon, VoidSymbol ] }; key { [ 0x10000ab, 0x10000bb, apostrophe, quotedbl ] }; // «, » // not exist in US keyboard key { [ bar, brokenbar, VoidSymbol, VoidSymbol ] }; // Z../ key { [ Arabic_zain, Arabic_thal, Arabic_zah, VoidSymbol ] }; key { [ Arabic_khah, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ Arabic_tcheh, VoidSymbol, VoidSymbol, VoidSymbol ] }; // c key { [ Arabic_theh, VoidSymbol, VoidSymbol, U06cf ] }; // waw_with_dot_above (malay) key { [ Arabic_beh, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ Arabic_noon, U06bd, VoidSymbol, VoidSymbol ] }; // ny key { [ Arabic_meem, VoidSymbol, VoidSymbol, VoidSymbol ] }; key { [ Arabic_comma, greater, comma, 0x100066b ] }; // decimal_separator key { [ period, less, Arabic_fullstop, 0x100066c ] }; // thousands_separator key { [ slash, Arabic_question_mark, 0x100060d, question ] }; // date_separator include "level3(ralt_switch)" }; // // Extended layout, non-standard characters // partial alphanumeric_keys xkb_symbols "phoneticx" { include "id(phonetic)" name[Group1]= "Indonesian (Arab Melayu, ext. phonetic)"; // 1..= key { [ NoSymbol, NoSymbol, NoSymbol, Arabic_superscript_alef ] }; key { [ NoSymbol, NoSymbol, NoSymbol, 0x100fd3e ] }; // ornate_left key { [ NoSymbol, NoSymbol, NoSymbol, 0x100fd3f ] }; // ornate_right // Q..] key { [ NoSymbol, NoSymbol, Arabic_shadda, NoSymbol ] }; key { [ NoSymbol, NoSymbol, 0x10008e6, 0x10008e4 ] }; // curly_kasra, curly_fatha key { [ NoSymbol, NoSymbol, Arabic_damma, Arabic_dammatan ] }; key { [ NoSymbol, NoSymbol, Arabic_kasra, Arabic_kasratan ] }; key { [ NoSymbol, NoSymbol, 0x100065d, NoSymbol ] }; // reversed_damma // A..' key { [ NoSymbol, NoSymbol, Arabic_fatha, Arabic_fathatan ] }; key { [ NoSymbol, NoSymbol, 0x10008f8, NoSymbol ] }; // right_arrowhead_above // Z../ key { [ NoSymbol, NoSymbol, 0x100065b, 0x100065C ] }; // inverted_small_v_above, dot_below key { [ NoSymbol, NoSymbol, Arabic_sukun, 0x10006E1 ] }; // small_high_dotless_head_of_khah }; PK(f[fiF^88 symbols/grnu[// Hellenic keyboard map for X.org // // Original version: // Kostas Gewrgiou // Heavily modified and maintained by: // Vasilis Vasaitis // Originally converted to single group form by: // Ivan Pascal default partial alphanumeric_keys alternate_group xkb_symbols "basic" { include "gr(simple)" name[Group1] = "Greek"; include "eurosign(e)" include "eurosign(5)" include "kpdl(comma)" include "level3(ralt_switch)" key { [ NoSymbol, NoSymbol, U037D, U03FF ] }; key { [ NoSymbol, NoSymbol, rightarrow, leftarrow ] }; key { [ NoSymbol, NoSymbol, copyright ] }; key { [ NoSymbol, NoSymbol, U03D6 ] }; key { [ NoSymbol, NoSymbol, U03D0 ] }; key { [ NoSymbol, NoSymbol, U0374, U0375 ] }; key { [ NoSymbol, NoSymbol, U03FB, U03FA ] }; key { [ NoSymbol, NoSymbol, guillemotleft ] }; key { [ NoSymbol, NoSymbol, guillemotright, periodcentered ] }; key { [ NoSymbol, NoSymbol, downarrow, uparrow ] }; key { [ NoSymbol, NoSymbol, U03D5 ] }; key { [ NoSymbol, NoSymbol, U03DD, U03DC ] }; key { [ NoSymbol, NoSymbol, U037C, U03FE ] }; key { [ NoSymbol, NoSymbol, U03DF, U03DE ] }; key { [ NoSymbol, NoSymbol, U03F2, U03F9 ] }; key { [ NoSymbol, NoSymbol, dead_acute, dead_psili ] }; key { [ NoSymbol, NoSymbol, dead_grave, dead_dasia ] }; key { [ NoSymbol, NoSymbol, periodcentered ] }; key { [ NoSymbol, NoSymbol, U03DB, U03DA ] }; key { [ NoSymbol, NoSymbol, registered, U03F1 ] }; key { [ NoSymbol, NoSymbol, U03D2, U03D2 ] }; key { [ NoSymbol, NoSymbol, U03D1, U03F4 ] }; key { [ NoSymbol, NoSymbol, U037B, U03FD ] }; key { [ NoSymbol, NoSymbol, U03E1, U03E0 ] }; key { [ NoSymbol, NoSymbol, dead_tilde, dead_macron ] }; key { [ NoSymbol, NoSymbol, dead_iota, dead_breve ] }; key { [ NoSymbol, NoSymbol, NoSymbol, onesuperior ] }; key { [ NoSymbol, NoSymbol, onehalf, twosuperior ] }; key { [ NoSymbol, NoSymbol, sterling, threesuperior ] }; key { [ NoSymbol, NoSymbol, onequarter, threequarters ] }; key { [ NoSymbol, NoSymbol, U03F0 ] }; key { [ NoSymbol, NoSymbol, U03D7, U03CF ] }; key { [ NoSymbol, NoSymbol, U20AF ] }; key { [ NoSymbol, NoSymbol, degree ] }; key { [ NoSymbol, NoSymbol, plusminus ] }; }; partial alphanumeric_keys alternate_group xkb_symbols "simple" { include "gr(bare)" name[Group1] = "Greek (simple)"; key { [ grave, asciitilde ] }; // ` ~ key { [ 1, exclam ] }; // 1 ! key { [ 2, at ] }; // 2 @ key { [ 3, numbersign ] }; // 3 # key { [ 4, dollar ] }; // 4 $ key { [ 5, percent ] }; // 5 % key { [ 6, asciicircum ] }; // 6 ^ key { [ 7, ampersand ] }; // 7 & key { [ 8, asterisk ] }; // 8 * key { [ 9, parenleft ] }; // 9 ( key { [ 0, parenright ] }; // 0 ) key { [ minus, underscore ] }; // - _ key { [ equal, plus ] }; // = + key { [ bracketleft, braceleft ] }; // [ { key { [ bracketright, braceright ] }; // ] } key { [ apostrophe, quotedbl ] }; // ' " key { [ comma, less ] }; // , < key { [ period, greater ] }; // . > key { [ slash, question ] }; // / ? key { [ backslash, bar ] }; // \ | include "kpdl(comma)" }; hidden partial alphanumeric_keys alternate_group xkb_symbols "bare" { key { [ semicolon, colon ] }; // ; : key { [ Greek_finalsmallsigma, Greek_SIGMA ] }; // ς Σ key { [ Greek_epsilon, Greek_EPSILON ] }; // ε Ε key { [ Greek_rho, Greek_RHO ] }; // ρ Ρ key { [ Greek_tau, Greek_TAU ] }; // τ Τ key { [ Greek_upsilon, Greek_UPSILON ] }; // υ Υ key { [ Greek_theta, Greek_THETA ] }; // θ Θ key { [ Greek_iota, Greek_IOTA ] }; // ι Ι key { [ Greek_omicron, Greek_OMICRON ] }; // ο Ο key { [ Greek_pi, Greek_PI ] }; // π Π key { [ Greek_alpha, Greek_ALPHA ] }; // α Α key { [ Greek_sigma, Greek_SIGMA ] }; // σ Σ key { [ Greek_delta, Greek_DELTA ] }; // δ Δ key { [ Greek_phi, Greek_PHI ] }; // φ Φ key { [ Greek_gamma, Greek_GAMMA ] }; // γ Γ key { [ Greek_eta, Greek_ETA ] }; // η Η key { [ Greek_xi, Greek_XI ] }; // ξ Ξ key { [ Greek_kappa, Greek_KAPPA ] }; // κ Κ key { [ Greek_lamda, Greek_LAMDA ] }; // λ Λ key { [ dead_acute, dead_diaeresis ] }; // ´ ¨ key { [ Greek_zeta, Greek_ZETA ] }; // ζ Ζ key { [ Greek_chi, Greek_CHI ] }; // χ Χ key { [ Greek_psi, Greek_PSI ] }; // ψ Ψ key { [ Greek_omega, Greek_OMEGA ] }; // ω Ω key { [ Greek_beta, Greek_BETA ] }; // β Β key { [ Greek_nu, Greek_NU ] }; // ν Ν key { [ Greek_mu, Greek_MU ] }; // μ Μ key { [ guillemotleft, guillemotright ] }; // « » }; // =========================================================================================== // Greek - Extended | // =========================================================================================== // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━━┓ // │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + ┃Backspace ┃ // │ ` │ 1 │ 2 │ 3 £ │ 4 │ 5 € │ 6 │ 7 │ 8 │ 9 │ 0 ° │ - ± │ = ┃ ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━━━┫ // ┃ ┃ : │ Σ │ Ε │ Ρ │ Τ │ Υ │ Θ │ Ι │ Ο │ Π │ { │ } ┃Enter ┃ // ┃Tab ┃ ; · │ ς │ ε € │ ρ ® │ τ │ υ │ θ │ ι │ ο │ π │ [ │ ] ┃ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃Caps ┃ Α │ Σ │ Δ │ Φ │ Γ │ Η │ Ξ │ Κ │ Λ │ ¨ │ " │ | ┃ ┃ // ┃Lock ┃ α │ σ │ δ │ φ │ γ │ η │ ξ │ κ │ λ │ ´ │ ' │ \ ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━━━┫ // ┃ ┃ » │ Ζ │ Χ │ Ψ │ Ω │ Β │ Ν │ Μ │ < │ > │ ? ┃ ┃ // ┃Shift ┃ « │ ζ │ χ │ ψ © │ ω │ β │ ν │ μ │ , « │ . » │ / ┃Shift ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴──┲━━┷━━━━┳┷━━━━━┻┳━━━━━━━┳━━━━━━┫ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ┃Meta ┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹──────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━┛ partial alphanumeric_keys alternate_group xkb_symbols "extended" { include "gr(simple)" name[Group1] = "Greek (extended)"; key.type[Group1] = "THREE_LEVEL"; key { [ NoSymbol, NoSymbol, sterling ] }; // £ key { [ NoSymbol, NoSymbol, degree ] }; // ° key { [ NoSymbol, NoSymbol, plusminus ] }; // ± key { [ NoSymbol, NoSymbol, periodcentered ] }; // · key { [ NoSymbol, NoSymbol, registered ] }; // ® key { [ NoSymbol, NoSymbol, copyright ] }; // © key { [ NoSymbol, NoSymbol, guillemotleft ] }; // « key { [ NoSymbol, NoSymbol, guillemotright ] }; // » include "level3(ralt_switch)" include "eurosign(5)" include "eurosign(e)" }; partial alphanumeric_keys alternate_group xkb_symbols "polytonic" { include "gr(extended)" name[Group1] = "Greek (polytonic)"; key.type[Group1] = "THREE_LEVEL"; key { [ dead_tilde, dead_diaeresis, dead_macron ] }; // ~ ¨ ¯ key { [ dead_iota, VoidSymbol, dead_breve ] }; // ͺ ˘ key { [ dead_acute, dead_psili ] }; // ´ ̓ key { type[Group1]="FOUR_LEVEL", [ dead_grave, dead_dasia, apostrophe, quotedbl ] }; // ` ̔ ' " }; partial alphanumeric_keys alternate_group xkb_symbols "nodeadkeys" { include "gr(simple)" name[Group1] = "Greek (no dead keys)"; key { [ semicolon, colon ] }; // ; : }; // Greek layout rearranged as Colemak partial alphanumeric_keys alternate_group xkb_symbols "colemak" { include "gr(basic)" name[Group1] = "Greek (Colemak)"; key { [ semicolon, colon, periodcentered ] }; key { [ Greek_finalsmallsigma, Greek_SIGMA, U03DB, U03DA ] }; key { [ Greek_phi, Greek_PHI, U03D5 ] }; key { [ Greek_pi, Greek_PI, U03E1, U03E0 ] }; key { [ Greek_gamma, Greek_GAMMA, U03DD, U03DC ] }; key { [ Greek_xi, Greek_XI, U037C, U03FE ] }; key { [ Greek_lamda, Greek_LAMDA, U03F2, U03F9 ] }; key { [ Greek_theta, Greek_THETA, U03D1, U03F4 ] }; key { [ Greek_upsilon, Greek_UPSILON, U03D2, U03D2 ] }; key { [ dead_acute, dead_diaeresis, dead_acute, dead_psili ] }; key { [ Greek_alpha, Greek_ALPHA ] }; key { [ Greek_rho, Greek_RHO, registered, U03F1 ] }; key { [ Greek_sigma, Greek_SIGMA ] }; key { [ Greek_tau, Greek_TAU ] }; key { [ Greek_delta, Greek_DELTA, downarrow, uparrow ] }; key { [ Greek_eta, Greek_ETA ] }; key { [ Greek_nu, Greek_NU, U0374, U0375 ] }; key { [ Greek_epsilon, Greek_EPSILON, EuroSign ] }; key { [ Greek_iota, Greek_IOTA, U037B, U03FD ] }; key { [ Greek_omicron, Greek_OMICRON ] }; key { [ Greek_zeta, Greek_ZETA, U037D, U03FF ] }; key { [ Greek_chi, Greek_CHI, rightarrow, leftarrow ] }; key { [ Greek_psi, Greek_PSI, copyright ] }; key { [ Greek_omega, Greek_OMEGA, U03D6 ] }; key { [ Greek_beta, Greek_BETA, U03D0 ] }; key { [ Greek_kappa, Greek_KAPPA, U03DF, U03DE ] }; key { [ Greek_mu, Greek_MU, U03FB, U03FA ] }; key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/gr(sun_type6)" }; PK(f[[(ZNZN symbols/hunu[// New style XKB layout for some widely used Hungarian keyboard layouts // // Based on old style 'xkb/symbols/hu" // // (C) 2002-2004 Soós Péter // (C) 2010 Andras Timar // // Permission is granted to anyone to use, distribute and modify // this file in any way, provided that the above copyright notice // is left intact and the author of the modification summarizes // the changes in this header. // // This file is distributed without any expressed or implied warranty. // // Changes: // 2004-04-17 - Moved to new style (only Unicode based layouts) // - Added consistent dead key support // - Fixed abovedot // - Added adiaeresis // - Added EuroSign and cent symbol // 2010-04-23 - Added doublelowquotemark // - Added rightdoublequotemark // - Added endash // 2010-05-13 - Added ellipsis // Default layout default partial xkb_symbols "basic" { include "hu(102_qwertz_comma_dead)" name[Group1] = "Hungarian"; }; // Standard layout partial xkb_symbols "standard" { include "hu(102_qwertz_comma_dead)" name[Group1] = "Hungarian (standard)"; }; // Standard layout without dead key support partial xkb_symbols "nodeadkeys" { include "hu(102_qwertz_comma_nodead)" name[Group1] = "Hungarian (no dead keys)"; }; // Qwerty layout partial xkb_symbols "qwerty" { include "hu(101_qwerty_comma_dead)" name[Group1] = "Hungarian (QWERTY)"; }; // Main layouts // 101_qwertz_comma_dead // 101 key qwertz layout // with decimal comma on keypad // and with dead key support partial xkb_symbols "101_qwertz_comma_dead" { name[Group1] = "Hungarian (101/QWERTZ/comma/dead keys)"; include "latin" include "hu(def_101)" include "hu(def_qwertz)" include "kpdl(comma)" include "hu(def_dead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 101_qwertz_comma_nodead // 101 key qwertz layout // with decimal comma on keypad // and without dead key support partial xkb_symbols "101_qwertz_comma_nodead" { name[Group1] = "Hungarian (101/QWERTZ/comma/no dead keys)"; include "latin" include "hu(def_101)" include "hu(def_qwertz)" include "kpdl(comma)" include "hu(def_nodead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 101_qwertz_dot_dead // 101 key qwertz layout // with decimal dot on keypad // and with dead key support partial xkb_symbols "101_qwertz_dot_dead" { name[Group1] = "Hungarian (101/QWERTZ/dot/dead keys)"; include "latin" include "hu(def_101)" include "hu(def_qwertz)" include "hu(def_dot)" include "hu(def_dead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 101_qwertz_dot_nodead // 101 key qwertz layout // with decimal dot on keypad // and without dead key support partial xkb_symbols "101_qwertz_dot_nodead" { name[Group1] = "Hungarian (101/QWERTZ/dot/no dead keys)"; include "latin" include "hu(def_101)" include "hu(def_qwertz)" include "hu(def_dot)" include "hu(def_nodead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 101_qwerty_comma_dead // 101 key qwerty layout // with decimal comma on keypad // and with dead key support partial xkb_symbols "101_qwerty_comma_dead" { name[Group1] = "Hungarian (101/QWERTY/comma/dead keys)"; include "latin" include "hu(def_101)" include "hu(def_qwerty)" include "kpdl(comma)" include "hu(def_dead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 101_qwerty_comma_nodead // 101 key qwerty layout // with decimal comma on keypad // and without dead key support partial xkb_symbols "101_qwerty_comma_nodead" { name[Group1] = "Hungarian (101/QWERTY/comma/no dead keys)"; include "latin" include "hu(def_101)" include "hu(def_qwerty)" include "kpdl(comma)" include "hu(def_nodead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 101_qwerty_dot_dead // 101 key qwerty layout // with decimal dot on keypad // and with dead key support partial xkb_symbols "101_qwerty_dot_dead" { name[Group1] = "Hungarian (101/QWERTY/dot/dead keys)"; include "latin" include "hu(def_101)" include "hu(def_qwerty)" include "hu(def_dot)" include "hu(def_dead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 101_qwerty_dot_nodead // 101 key qwerty layout // with decimal dot on keypad // and without dead key support partial xkb_symbols "101_qwerty_dot_nodead" { name[Group1] = "Hungarian (101/QWERTY/dot/no dead keys)"; include "latin" include "hu(def_101)" include "hu(def_qwerty)" include "hu(def_dot)" include "hu(def_nodead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 102_qwertz_comma_dead // 102 key qwertz layout // with decimal comma on keypad // and with dead key support partial xkb_symbols "102_qwertz_comma_dead" { name[Group1] = "Hungarian (102/QWERTZ/comma/dead keys)"; include "latin" include "hu(def_102)" include "hu(def_qwertz)" include "kpdl(comma)" include "hu(def_dead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 102_qwertz_comma_nodead // 102 key qwertz layout // with decimal comma on keypad // and without dead key support partial xkb_symbols "102_qwertz_comma_nodead" { name[Group1] = "Hungarian (102/QWERTZ/comma/no dead keys)"; include "latin" include "hu(def_102)" include "hu(def_qwertz)" include "kpdl(comma)" include "hu(def_nodead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 102_qwertz_dot_dead // 102 key qwertz layout // with decimal dot on keypad // and with dead key support partial xkb_symbols "102_qwertz_dot_dead" { name[Group1] = "Hungarian (102/QWERTZ/dot/dead keys)"; include "latin" include "hu(def_102)" include "hu(def_qwertz)" include "hu(def_dot)" include "hu(def_dead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 102_qwertz_dot_nodead // 102 key qwertz layout // with decimal dot on keypad // and without dead key support partial xkb_symbols "102_qwertz_dot_nodead" { name[Group1] = "Hungarian (102/QWERTZ/dot/no dead keys)"; include "latin" include "hu(def_102)" include "hu(def_qwertz)" include "hu(def_dot)" include "hu(def_nodead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 102_qwerty_comma_dead // 102 key qwerty layout // with decimal comma on keypad // and with dead key support partial xkb_symbols "102_qwerty_comma_dead" { name[Group1] = "Hungarian (102/QWERTY/comma/dead keys)"; include "latin" include "hu(def_102)" include "hu(def_qwerty)" include "kpdl(comma)" include "hu(def_dead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 102_qwerty_comma_nodead // 102 key qwerty layout // with decimal comma on keypad // and without dead key support partial xkb_symbols "102_qwerty_comma_nodead" { name[Group1] = "Hungarian (102/QWERTY/comma/no dead keys)"; include "latin" include "hu(def_102)" include "hu(def_qwerty)" include "kpdl(comma)" include "hu(def_nodead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 102_qwerty_dot_dead // 102 key qwerty layout // with decimal dot on keypad // and with dead key support partial xkb_symbols "102_qwerty_dot_dead" { name[Group1] = "Hungarian (102/QWERTY/dot/dead keys)"; include "latin" include "hu(def_102)" include "hu(def_qwerty)" include "hu(def_dot)" include "hu(def_dead)" include "hu(def_common)" include "level3(ralt_switch)" }; // 102_qwerty_dot_nodead // 102 key qwerty layout // with decimal dot on keypad // and without dead key support partial xkb_symbols "102_qwerty_dot_nodead" { name[Group1] = "Hungarian (102/QWERTY/dot/no dead keys)"; include "latin" include "hu(def_102)" include "hu(def_qwerty)" include "hu(def_dot)" include "hu(def_nodead)" include "hu(def_common)" include "level3(ralt_switch)" }; // Partial layouts // def_102: // The standard Hungarian 102 key layout hidden partial alphanumeric_keys xkb_symbols "def_102" { key { [ 0, section, notsign ] }; key { [ iacute, Iacute, less, greater ] }; }; // def_101: // An alternative layout for 101 key keyboards hidden partial alphanumeric_keys xkb_symbols "def_101" { key { [ iacute, Iacute, 0, section ] }; key { [ less, greater ] }; }; // def_qwertz: // The standard Hungaryan qwertz layout hidden partial alphanumeric_keys xkb_symbols "def_qwertz" { key { [ z, Z, endash ] }; key { [ y, Y, greater ] }; }; // def_qwerty: // The qwerty layout for people who familiar with the standard US layout hidden partial alphanumeric_keys xkb_symbols "def_qwerty" { key { [ y, Y, endash ] }; key { [ z, Z, greater ] }; }; // def_dot: // The Hungarian standard is the comma on the keypad not decimal dot, // but programmers hate it hidden partial keypad_keys xkb_symbols "def_dot" { key { [ KP_Delete, KP_Decimal ] }; }; // def_dead: // Dead keys support part hidden partial alphanumeric_keys xkb_symbols "def_dead" { key { [ 1, apostrophe, asciitilde, dead_tilde ] }; key { [ 2, quotedbl, dead_caron, caron ] }; key { [ 3, plus, asciicircum, dead_circumflex ] }; key { [ 4, exclam, dead_breve, breve ] }; key { [ 5, percent, dead_abovering, degree ] }; key { [ 6, slash, dead_ogonek, ogonek ] }; key { [ 7, equal, grave, dead_grave ] }; key { [ 8, parenleft, dead_abovedot, abovedot ] }; key { [ 9, parenright, dead_acute, acute ] }; key { [ odiaeresis, Odiaeresis, dead_doubleacute, doubleacute ] }; key { [ udiaeresis, Udiaeresis, dead_diaeresis, diaeresis ] }; key { [ oacute, Oacute, dead_cedilla, cedilla ] }; }; // def_nodead: // Without dead keys support hidden partial alphanumeric_keys xkb_symbols "def_nodead" { key { [ 1, apostrophe, asciitilde ] }; key { [ 2, quotedbl, caron ] }; key { [ 3, plus, asciicircum ] }; key { [ 4, exclam, breve ] }; key { [ 5, percent, degree ] }; key { [ 6, slash, ogonek ] }; key { [ 7, equal, grave ] }; key { [ 8, parenleft, abovedot ] }; key { [ 9, parenright, acute ] }; key { [ odiaeresis, Odiaeresis, doubleacute ] }; key { [ udiaeresis, Udiaeresis, diaeresis ] }; key { [ oacute, Oacute, cedilla ] }; }; // def_common: // The common part of all Hungarian layout above hidden partial alphanumeric_keys xkb_symbols "def_common" { key { [ q, Q, backslash ] }; key { [ w, W, bar ] }; key { [ e, E, Adiaeresis ] }; key { [ u, U, EuroSign ] }; key { [ i, I, Iacute, iacute ] }; key { [ o, O, doublelowquotemark ] }; key { [ p, P, rightdoublequotemark ] }; key { [ odoubleacute, Odoubleacute, division ] }; key { [ uacute, Uacute, multiply ] }; key { [ a, A, adiaeresis, Adiaeresis ] }; key { [ s, S, dstroke ] }; key { [ d, D, Dstroke ] }; key { [ f, F, bracketleft ] }; key { [ g, G, bracketright ] }; key { [ j, J, iacute, Iacute ] }; key { [ k, K, lstroke ] }; key { [ l, L, Lstroke ] }; key { [ eacute, Eacute, dollar, cent ] }; key { [ aacute, Aacute, ssharp, U1E9E ] }; key { [ udoubleacute, Udoubleacute, currency ] }; key { [ x, X, numbersign ] }; key { [ c, C, ampersand ] }; key { [ v, V, at ] }; key { [ b, B, braceleft ] }; key { [ n, N, braceright ] }; key { [ m, M, less ] }; key { [ comma, question, semicolon ] }; key { [ period, colon, greater ] }; key { [ minus, underscore, asterisk ] }; }; // EXTRAS: // New style XKB layout used Old Hungarian keyboard layouts // // // // (C) 2013 Andras Tisza // (C) 2017,2018 Viktor Kovacs // // Permission is granted to anyone to use, distribute and modify // this file in any way, provided that the above copyright notice // is left intact and the author of the modification summarizes // the changes in this header. // // This file is distributed without any expressed or implied warranty. // // Changes: // 2013 - Planned Old Hungarian layout // 2017 - Added Old Hungarian layout //2018 - Resolved several easy-to-use issue, added extra punctuation and quotation marks partial alphanumeric_keys xkb_symbols "oldhun" { name[Group1]="Old Hungarian"; include "level3(ralt_switch)" key.type[Group1]="FOUR_LEVEL_ALPHABETIC"; // In the remarks you can read characters displayed only Unicode point key {[U10CFA, apostrophe, U2E42, 1 ]}; //Old Hungarian one, reversed 9 double low quotemark key {[ U10CFB, quotedbl,U201F, 2]}; //Old Hungarian five, reversed 9 double upper quotemark key {[ U10CFC, plus,minus, 3]}; //Old Hungarian ten key {[ U10CFD, exclam, U203C, 4]}; //Old Hungarian fifty,double exclam key {[ U10CFE, percent,U2026, 5]}; //Old Hungarian hundred, triple dot key {[ U10CFF, slash, backslash,6]}; //Old Hungarian thousand key {[U10CC6, U10C86, equal,7]}; //Old Hungarian cs, Cs key {[ U10CDA, U10C9A, parenleft,8]}; //Old Hungarian ny, Ny key {[U10CE8, U10CA8, parenright,9 ]}; //Old Hungarian ty, Ty key {[ U10CDE, U10C9E, U10CDD, U10C9D ]}; //Old Hungarian Rudimenta oe, Oe, Nikolsburg oe, Oe key {[U10CED, U10CAD ]}; //Old Hungarian ue , Ue key {[U10CDC, U10C9C ]}; //Old Hungarian oo, OO key {[U10CCE, U10C8E, backslash ]}; //Old-Hungarian gy, Gy key {[U10CF0, U10CB0 ]}; //Old Hungarian zs, Zs key {[U10CC9, U10C89, U10CCA, U10C8A ]}; //Old Hungarian e, E, close e, close E key {[U10CE2, U10CA2, U10CE3, U10CA3 ]}; //Old Hungarian r, R, short r, short R key {[ U10CE6, U10CA6, U10CF1, U10CB1 ]}; //Old Hungarian t, T, ent-sharped sign,Ent-sharped sign key {[U10CEF, U10CAF ]}; //Old Hungarian z, Z key {[U10CEA, U10CAA, U10CF2, U10CB2 ]}; //Old Hungarian u, U, Old Hungarian us, Us key {[U10CD0, U10C90 ]}; //Old Hungarian i, I key {[U10CDB, U10C9B ]}; //Old Hungarian o, O key {[U10CE0, U10CA0 ]}; //Old Hungarian p, P key {[U10CDF, U10C9F ]}; //Old Hungarian oee, Oee key {[ U10CEB, U10CAB, U10CD5, U10C95]}; //Old Hungarian uu,Uu,unk,Unk key {[ U10CC0 , U10C80, U10CC3, U10C83 ]}; //Old Hungarian a,A,amb,Amb key {[U10CE4, U10CA4, U10CE1, U10CA1 ]}; //Old Hungarian s,S,emp,Emp key {[ U10CC7, U10C87, U10CE7, U10CA7 ]}; //Old Hungarian d,D, ent/ant/int, Ent/Ant/Int key {[U10CCC, U10C8C, bracketleft]}; //Old Hungarian f,F key {[ U10CCD, U10C8D, bracketright ]}; //Old Hungarian g, G key {[ U10CCF, U10C8F, U10CE9, U10CA9 ]}; //Old Hungarian h, H,ech, Ech key {[ U10CD2, U10C92, backslash ]}; //Old Hungarian j, J key {[U10CD3, U10C93, U10CD4, U10C94 ]}; //Old Hungarian open k, open K, close k, close K key {[U10CD6, U10C96 ]}; //Old Hungarian l, L key {[U10CCB, U10C8B ]}; //Old Hungarian ee, EE key {[U10CC1, U10C81 , U10CC8, U10C88]}; //Old Hungarian aa, AA, and And key {[U10CEC, U10CAC ]}; //Old Hungarian ue, Ue key {[ U10CD7, U10C97, greater ]}; //Old Hungarian ly, Ly key {[ U10CE5, U10CA5, numbersign ]}; //Old Hungarian sz, Sz key {[ U10CC4, U10C84, U10CC5, U10C85 ]}; //Old Hungarian c,C, enc, Enc key {[U10CEE, U10CAE, at ]}; //Old Hungarian v,V key {[U10CC2, U10C82, braceleft ]}; //Old Hungarian b, B key { [ U10CD9, U10C99 , braceright ]}; //Old Hungarian n, N key {[ U10CD8, U10C98 , less ]}; //Old Hungarian m, M key {[U2E41, U2E2E, U204F ]}; //reversed question mark,reversed semicolon, reversed comma key {[period, colon, greater ]}; key {[minus, underscore, asterisk ]}; key {[U10CD1, U10C91, less ]}; //Old Hungarian ii,II key {[ section, U200F, U200E, 0]}; //Right to left mark, left to right mark }; PK(f[* symbols/synu[default partial alphanumeric_keys xkb_symbols "basic" { include "ara(basic)" name[Group1]= "Arabic (Syria)"; }; partial alphanumeric_keys xkb_symbols "syc" { name[Group1]= "Syriac"; key { [ 0x100070F, 0x100032E, Arabic_shadda ] }; key { [ 1, exclam, 0x1000701 ] }; key { [ 2, 0x100030A, 0x1000702 ] }; key { [ 3, 0x1000325, 0x1000703 ] }; key { [ 4, 0x1000749, 0x1000704 ] }; key { [ 5, 0x1002670, 0x1000705 ] }; key { [ 6, 0x1002671, 0x1000708 ] }; key { [ 7, 0x100070A, 0x1000709 ] }; key { [ 8, 0x10000BB, 0x100070B ] }; key { [ 9, parenright, 0x100070C ] }; key { [ 0, parenleft, 0x100070D ] }; key { [ minus, 0x10000AB, 0x100250C ] }; key { [ equal, plus, 0x1002510 ] }; key { [ 0x1000714, 0x1000730, Arabic_fatha ] }; key { [ 0x1000728, 0x1000733, Arabic_fathatan ] }; key { [ 0x1000716, 0x1000736, Arabic_damma ] }; key { [ 0x1000729, 0x100073A, Arabic_dammatan ] }; key { [ 0x1000726, 0x100073D, Arabic_madda_above ] }; key { [ 0x100071C, 0x1000740, Arabic_hamza_above ] }; key { [ 0x1000725, 0x1000741, 0x1000747 ] }; key { [ 0x1000717, 0x1000308, 0x1000743 ] }; key { [ 0x100071E, 0x1000304, 0x1000745 ] }; key { [ 0x100071A, 0x1000307, 0x100032D ] }; key { [ 0x1000713, 0x1000303 ] }; key { [ 0x1000715, 0x100074A ] }; key { [ 0x1000706, colon ] }; key { [ 0x100072B, 0x1000731, Arabic_kasra ] }; key { [ 0x1000723, 0x1000734, Arabic_kasratan ] }; key { [ 0x100071D, 0x1000737 ] }; key { [ 0x1000712, 0x100073B, Arabic_hamza ] }; key { [ 0x1000720, 0x100073E, Arabic_hamza_below ] }; key { [ 0x1000710, 0x1000711, Arabic_superscript_alef ] }; key { [ 0x100072C, Arabic_tatweel, 0x1000748 ] }; key { [ 0x1000722, 0x1000324, 0x1000744 ] }; key { [ 0x1000721, 0x1000331, 0x1000746 ] }; key { [ 0x100071F, 0x1000323 ] }; key { [ 0x100071B, 0x1000330 ] }; key { [ bracketright, 0x1000732, Arabic_sukun ] }; key { [ bracketleft, 0x1000735 ] }; key { [ 0x1000724, 0x1000738, 0x100200D ] }; key { [ 0x100072A, 0x100073C, 0x100200C ] }; key { [ 0x1000727, 0x100073F, 0x100200E ] }; key { [ 0x1000700, 0x1000739, 0x100200F ] }; key { [ 0x100002E, 0x1000742 ] }; key { [ 0x1000718, Arabic_comma ] }; key { [ 0x1000719, Arabic_semicolon ] }; key { [ 0x1000707, Arabic_question_mark ] }; // Space plus zero-width non-joiner: include "nbsp(zwnj2)" modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L, Control_R }; modifier_map Mod1 { Alt_L, Alt_R }; modifier_map Mod2 { Mode_switch }; }; partial alphanumeric_keys xkb_symbols "syc_phonetic" { name[Group1]= "Syriac (phonetic)"; key { [ 0x100070F, 0x100032E, Arabic_shadda ] }; key { [ 1, exclam, 0x1000701 ] }; key { [ 2, 0x100030A, 0x1000702 ] }; key { [ 3, 0x1000325, 0x1000703 ] }; key { [ 4, 0x1000749, 0x1000704 ] }; key { [ 5, 0x1002670, 0x1000705 ] }; key { [ 6, 0x1002671, 0x1000708 ] }; key { [ 7, 0x100070A, 0x1000709 ] }; key { [ 8, 0x10000BB, 0x100070B ] }; key { [ 9, parenright, 0x100070C ] }; key { [ 0, parenleft, 0x100070D ] }; key { [ minus, 0x10000AB, 0x100250C ] }; key { [ equal, plus, 0x1002510 ] }; key { [ 0x1000729, 0x1000730, Arabic_fatha ] }; key { [ 0x1000718, 0x1000733, Arabic_fathatan ] }; key { [ 0x1000716, 0x1000736, Arabic_damma ] }; key { [ 0x100072A, 0x100073A, Arabic_dammatan ] }; key { [ 0x100072C, 0x100073D, Arabic_madda_above ] }; key { [ 0x100071D, 0x1000740, Arabic_hamza_above ] }; key { [ 0x100071C, 0x1000741, 0x1000747 ] }; key { [ 0x1000725, 0x1000308, 0x1000743 ] }; key { [ 0x1000727, 0x1000304, 0x1000745 ] }; key { [ 0x1000726, 0x1000307, 0x100032D ] }; key { [ bracketright, 0x1000303 ] }; key { [ bracketleft, 0x100074A ] }; key { [ 0x1000706, colon ] }; key { [ 0x1000710, 0x1000731, Arabic_kasra ] }; key { [ 0x1000723, 0x1000734, Arabic_kasratan ] }; key { [ 0x1000715, 0x1000737 ] }; key { [ 0x1000714, 0x100073B, Arabic_hamza ] }; key { [ 0x1000713, 0x100073E, Arabic_hamza_below ] }; key { [ 0x1000717, 0x1000711, Arabic_superscript_alef ] }; key { [ 0x100071B, Arabic_tatweel, 0x1000748 ] }; key { [ 0x100071F, 0x1000324, 0x1000744 ] }; key { [ 0x1000720, 0x1000331, 0x1000746 ] }; key { [ 0x100071A, 0x1000323 ] }; key { [ 0x100071E, 0x1000330 ] }; key { [ space, 0x100200c ] }; key { [ 0x1000719, 0x1000732, Arabic_sukun ] }; key { [ 0x1000728, 0x1000735 ] }; key { [ 0x1000724, 0x1000738, 0x100200D ] }; key { [ 0x100072B, 0x100073C, 0x100200C ] }; key { [ 0x1000712, 0x100073F, 0x100200E ] }; key { [ 0x1000722, 0x1000739, 0x100200F ] }; key { [ 0x1000721, 0x1000742 ] }; key { [ 0x1000700, Arabic_comma ] }; key { [ 0x100002E, Arabic_semicolon ] }; key { [ 0x1000707, Arabic_question_mark ] }; modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L, Control_R }; modifier_map Mod1 { Alt_L, Alt_R }; modifier_map Mod2 { Mode_switch }; }; partial alphanumeric_keys xkb_symbols "ku" { include "tr(ku)" name[Group1]= "Kurdish (Syria, Latin Q)"; }; partial alphanumeric_keys xkb_symbols "ku_f" { include "tr(ku_f)" name[Group1]= "Kurdish (Syria, F)"; }; partial alphanumeric_keys xkb_symbols "ku_alt" { include "tr(ku_alt)" name[Group1]= "Kurdish (Syria, Latin Alt-Q)"; }; PK(f[+ symbols/mdnu[default partial alphanumeric_keys xkb_symbols "basic" { include "ro" name[Group1]="Moldavian"; }; // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ~ │ ! │ " │ # │ ; │ % │ : │ ? │ * │ ( ̣ │ ) │ -- │ + ┃ ⌫ Back ┃ // │ ` │ 1 │ 2 @ │ 3 │ 4 $ │ 5 € │ 6 ^ │ 7 & │ 8 │ 9 │ 0 │ - │ = ┃ space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ Ţ Q │ Ê W │ E │ R │ T │ Y │ U │ İ │ O │ P │ Ö { │ Ü } ┃ Enter ┃ // ┃Tab ↹ ┃ ţ q │ ê w │ e │ r │ t │ y │ u │ i │ o │ p │ ö [ │ ü ] ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ A │ S │ D │ F │ G │ H │ J │ K │ L │Ş │I │ / ┃ ┃ // ┃Caps ⇬ ┃ a │ s │ d │ f │ g │ h │ j │ k │ l │ş │ı' │ \ ┃ ┃ // ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ │ Z │ Ç X │ C │ V │ B │ N │ M │Ä │< │> ┃ ┃ // ┃Shift ⇧ │ z │ ç x │ c │ v │ b │ n │ m │ä │, │. ┃Shift ⇧ ┃ // ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Space ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ // A, Ä, B, C, Ç, D, E, Ê, F, G, H, I, İ, J, K, L, M, N, O, Ö, P, R, S, Ş, T, Ţ, U, Ü, V, Y, Z. partial alphanumeric_keys xkb_symbols "gag" { include "us(basic)" name[Group1]="Moldavian (Gagauz)"; key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numbersign ] }; key { [ 4, semicolon, dollar ] }; key { [ 5, percent, EuroSign, cent ] }; key { [ 6, colon, asciicircum ] }; key { [ 7, question, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ tcedilla, Tcedilla, q, Q ] }; key { [ ecircumflex, Ecircumflex, w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, Iabovedot, i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ odiaeresis, Odiaeresis, bracketleft, braceleft ] }; key { [ udiaeresis, Udiaeresis, bracketright, braceright ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ scedilla, Scedilla ] }; key { [ idotless, I, apostrophe ] }; key { [ z, Z ] }; key { [ ccedilla, Ccedilla, x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ adiaeresis, Adiaeresis ] }; key { [ comma, less ] }; key { [ period, greater, slash ] }; key { [ backslash, bar ] }; include "level3(ralt_switch)" }; PK(f[XV33 symbols/tmnu[// Nazar Annagurban , 2009 // Default layout (based on Vista Turkmen layout) default partial xkb_symbols "basic" { include "us" name[Group1]="Turkmen"; key { [ zcaron, Zcaron, grave, asciitilde ] }; key { [ adiaeresis, Adiaeresis, q, Q ] }; key { [ ncaron, Ncaron, bracketleft, braceleft ] }; key { [odiaeresis, Odiaeresis, bracketright, braceright ] }; key { [udiaeresis, Udiaeresis, x, X ] }; key { [ ccedilla, Ccedilla, c, C ] }; key { [ yacute, Yacute, v, V ] }; key { [ scedilla, Scedilla, backslash, bar ] }; include "level3(ralt_switch)" }; // Turkmen Alt-Q Layout // This layout provides turkmen letter via the AltGr key partial xkb_symbols "alt" { include "us" name[Group1]="Turkmen (Alt-Q)"; key { [ y, Y, yacute, Yacute ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ o, O, odiaeresis, Odiaeresis ] }; key { [ a, A, adiaeresis, Adiaeresis ] }; key { [ s, S, scedilla, Scedilla ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ n, N, ncaron, Ncaron ] }; include "level3(ralt_switch)" }; PK(f[מ symbols/altwinnu[// Meta is mapped to second level of Alt. partial modifier_keys xkb_symbols "meta_alt" { key { [ Alt_L, Meta_L ] }; key { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Alt_R, Meta_R ] }; modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; // modifier_map Mod4 {}; }; // Alt is mapped to the Super and the usual Alt. partial modifier_keys xkb_symbols "alt_win" { key { [ Alt_L ] }; key { [ Alt_R ] }; modifier_map Mod1 { , }; }; // Ctrl is mapped to the Super and the usual Ctrl keys. partial modifier_keys xkb_symbols "ctrl_win" { key { [ Control_L ] }; key { [ Control_R ] }; modifier_map Control { , }; }; // Ctrl is mapped to the Alt, Alt to the Super, and Win to the Ctrl keys. partial modifier_keys xkb_symbols "ctrl_alt_win" { key { [ Control_L, Control_L ] }; key { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Control_R, Control_R ] }; key { [ Alt_L, Meta_L ] }; key { [ Alt_R, Meta_R ] }; key { [ Super_L ] }; key { [ Super_R ] }; modifier_map Control { , }; modifier_map Mod1 { , }; modifier_map Mod4 { , }; }; // Meta is mapped to the Super. partial modifier_keys xkb_symbols "meta_win" { key { [ Alt_L, Alt_L ] }; key { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Alt_R, Alt_R ] }; key { [ Meta_L ] }; key { [ Meta_R ] }; modifier_map Mod1 { Alt_L, Alt_R }; modifier_map Mod4 { , Meta_L, Meta_R }; }; // Meta is mapped to the left Win key. partial modifier_keys xkb_symbols "left_meta_win" { key { [ Alt_L, Alt_L ] }; key { [ Meta_L ] }; modifier_map Mod1 { Alt_L }; modifier_map Mod4 { , Meta_L }; }; // Hyper is mapped to the Super. partial modifier_keys xkb_symbols "hyper_win" { key { [ Hyper_L ] }; key { [ Hyper_R ] }; modifier_map Mod4 { Hyper_L, Hyper_R }; }; // Menu is mapped to the Menu key. partial modifier_keys xkb_symbols "menu" { key { [ Menu ] }; }; // Menu is mapped to the right Win key. partial modifier_keys xkb_symbols "menu_win" { key { [ Super_R ] }; }; // Layout for Tux key caps with additional right Alt key partial modifier_keys xkb_symbols "alt_super_win" { key { [ Alt_L, Meta_L ] }; key { [ Alt_R, Meta_R ] }; key { [ Super_L ]}; key { [ Super_R ] }; modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; modifier_map Mod4 { Super_L, Super_R }; }; // Swap the Alt and Super. partial modifier_keys xkb_symbols "swap_alt_win" { include "altwin(swap_lalt_lwin)" include "altwin(swap_ralt_rwin)" }; // Swap the left Alt and Super. partial modifier_keys xkb_symbols "swap_lalt_lwin" { key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Super_L ] }; key { [ Alt_L, Meta_L ] }; }; // Swap the right Alt and Super. hidden partial modifier_keys xkb_symbols "swap_ralt_rwin" { key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Super_R ] }; key { [ Alt_R, Meta_R ] }; }; // Win is mapped to the PrtSc key (and the usual Win key). partial modifier_keys xkb_symbols "prtsc_rwin" { replace key { [ Super_R, Super_R ] }; modifier_map Mod4 { , }; }; PK(f[ symbols/dknu[// based on a keyboard map from an 'xkb/symbols/dk' file default partial alphanumeric_keys xkb_symbols "basic" { include "latin(type2)" name[Group1]="Danish"; key { [ plus, question, plusminus, questiondown ] }; key { [dead_acute, dead_grave, bar, brokenbar ] }; key { [ ae, AE, dead_acute, dead_doubleacute ] }; key { [ oslash, Ooblique, dead_circumflex, dead_caron ] }; key { [ onehalf, section, threequarters, paragraph ] }; key { [apostrophe, asterisk, dead_doubleacute, multiply ] }; key { [ less, greater, backslash, notsign ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "dk(basic)" name[Group1]="Danish (no dead keys)"; key { [ acute, grave, bar, ogonek ] }; key { [ aring, Aring, diaeresis, degree ] }; key { [ diaeresis, asciicircum, asciitilde, macron ] }; key { [ ae, AE, acute, doubleacute ] }; key { [ oslash, Ooblique, asciicircum, caron ] }; key { [apostrophe, asterisk, doubleacute, multiply ] }; key { [ comma, semicolon, cedilla, ogonek ] }; key { [ period, colon, periodcentered, abovedot ] }; }; partial alphanumeric_keys xkb_symbols "winkeys" { include "dk(basic)" name[Group1] = "Danish (Win keys)"; include "eurosign(5)" }; // Copied from macintosh_vndr/dk partial alphanumeric_keys xkb_symbols "mac" { include "dk" name[Group1]= "Danish (Macintosh)"; key { [ space, space, nobreakspace, nobreakspace ] }; key { [ minus, underscore, hyphen, macron ] }; include "kpdl(dot)" }; partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { include "dk(mac)" name[Group1]= "Danish (Macintosh, no dead keys)"; key { [ acute, grave, bar, ogonek ] }; key { [diaeresis, asciicircum, asciitilde, dead_macron ] }; }; partial alphanumeric_keys xkb_symbols "dvorak" { include "no(dvorak)" name[Group1]= "Danish (Dvorak)"; key { [ asciitilde, asciicircum, dead_diaeresis, dead_tilde ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/dk(sun_type6)" }; PK(f[a600 symbols/manu[// Arabic AZERTY with modern Latin digits default partial alphanumeric_keys xkb_symbols "arabic" { include "ara(azerty)" name[Group1]="Arabic (Morocco)"; }; // French AZERTY keyboard used when typing French partial alphanumeric_keys xkb_symbols "french" { include "fr(basic)" name[Group1]="French (Morocco)"; }; // Clavier unicode tifinaghe de base réalisé par l'IRCAM (Institut Royal de la Culture Amazighe du Maroc) http://www.ircam.ma/ // Support des lettres unicode tifinaghe-IRCAM, néotifinaghes & touarègues. // Les caractères tifinaghes sont accessibles en SHIFT positions pour le niveau 2, en ALTGR positions pour le niveau 3 // Polices tifinaghes Unicode à télécharger depuis : // http://www.ircam.ma/documents/policesclavierunicode/hapaxber.ttf (licence non libre, libre téléchargement et distribution uniquement) // Minihowto ici: http://perso.menara.ma/~kebdani/tamazgha/gnu_amazigh.html partial alphanumeric_keys xkb_symbols "tifinagh" { name[Group1]="Berber (Morocco, Tifinagh)"; key { [ twosuperior, NoSymbol ] }; key { [ ampersand, 1 ] }; key { [ NoSymbol, 2, asciitilde ] }; key { [ quotedbl, 3, numbersign ] }; key { [apostrophe, 4, braceleft ] }; key { [ parenleft, 5, bracketleft ] }; key { [ minus, 6, bar ] }; key { [ NoSymbol , 7 ] }; key { [underscore, 8, backslash ] }; key { [NoSymbol, 9, asciicircum ] }; key { [ NoSymbol , 0, at ] }; key { [parenright, degree, bracketright ] }; key { [ equal, plus, braceright ] }; key { [ 0x1002d30 ] }; key { [ 0x1002d63, 0x1002d65 ] }; key { [ 0x1002d3b, NoSymbol,0x10020ac ] }; key { [ 0x1002d54, 0x1002d55 ] }; key { [ 0x1002d5c, 0x1002d5f ] }; key { [ 0x1002d62 ] }; key { [ 0x1002d53 ] }; key { [ 0x1002d49 ] }; key { [ 0x1002d44 ] }; key { [ 0x1002d43 ] }; key { [ 0x1002d6f ] }; key { [ dollar, sterling, 0x10000a4] }; key { [ 0x1002d47 ] }; key { [ 0x1002d59, 0x1002d5a ] }; key { [ 0x1002d37, 0x1002d39 ] }; key { [ 0x1002d3c ] }; key { [ 0x1002d33, 0x1002d33] }; key { [ 0x1002d40 ] }; key { [ 0x1002d4a ] }; key { [ 0x1002d3d, 0x1002d3d ] }; key { [ 0x1002d4d ] }; key { [ 0x1002d4e ] }; key { [ NoSymbol , percent ] }; key { [ asterisk, mu ] }; key { [ 0x1002d61 ] }; key { [ 0x1002d45 ] }; key { [ 0x1002d5b ] }; key { [ 0x1002d56 ] }; key { [ 0x1002d31 ] }; key { [ 0x1002d4f ] }; key { [ comma, question ] }; key { [ semicolon, period ] }; key { [ colon, slash ] }; key { [ exclam, section ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "tifinagh-phonetic" { include "ma(tifinagh)" name[Group1]="Berber (Morocco, Tifinagh phonetic)"; key { [ 0x1002d30 ] }; key { [ 0x1002d63, 0x1002d65 ] }; key { [ 0x1002d3b, NoSymbol,0x10020ac ] }; key { [ 0x1002d54, 0x1002d55 ] }; key { [ 0x1002d5c, 0x1002d5f ] }; key { [ 0x1002d62 ] }; key { [ 0x1002d53 ] }; key { [ 0x1002d49 ] }; key { [ 0x1002d44 ] }; key { [ 0x1002d43 ] }; key { [ 0x1002d47 ] }; key { [ 0x1002d59, 0x1002d5a ] }; key { [ 0x1002d37, 0x1002d39 ] }; key { [ 0x1002d3c ] }; key { [ 0x1002d33 ] }; key { [ 0x1002d40 ] }; key { [ 0x1002d4a ] }; key { [ 0x1002d3d ] }; key { [ 0x1002d4d ] }; key { [ 0x1002d4e ] }; key { [ 0x1002d61,0x1002d6f ] }; key { [ 0x1002d45 ] }; key { [ 0x1002d5b ] }; key { [ 0x1002d56 ] }; key { [ 0x1002d31 ] }; key { [ 0x1002d4f ] }; include "level3(ralt_switch)" }; // Clavier unicode tifinaghe étendu réalisé par l'IRCAM (Institut Royal de la Culture Amazighe du Maroc) http://www.ircam.ma/ // Support des lettres unicode tifinaghe-IRCAM, néotifinaghes & touarègues. // Les caractères tifinaghes sont accessibles en SHIFT positions pour le niveau 2, en ALTGR positions pour le niveau 3 // Polices tifinaghes Unicode à télécharger depuis : // http://www.ircam.ma/documents/policesclavierunicode/hapaxber.ttf (licence non libre, libre téléchargement et distribution uniquement) // Minihowto ici: http://perso.menara.ma/~kebdani/tamazgha/gnu_amazigh.html partial alphanumeric_keys xkb_symbols "tifinagh-extended" { name[Group1]="Berber (Morocco, Tifinagh extended)"; key { [ twosuperior,0x100200C ] }; key { [ ampersand, 1 ] }; key { [0x1002d52, 2, asciitilde ] }; key { [ quotedbl, 3, numbersign ] }; key { [apostrophe, 4, braceleft ] }; key { [ parenleft, 5, bracketleft ] }; key { [ minus, 6, bar ] }; key { [ 0x1002d64 , 7 ] }; key { [underscore, 8, backslash ] }; key { [ 0x1002014, 9, asciicircum ] }; key { [ 0x100200d, 0, at ] }; key { [parenright, degree, bracketright ] }; key { [ equal, plus, braceright ] }; key { [ 0x1002d30, 0x1002d36 ] }; key { [ 0x1002d63, 0x1002d65 ] }; key { [ 0x1002d3b, 0x1002d57, 0x10020ac ] }; key { [ 0x1002d54, 0x1002d55 ] }; key { [ 0x1002d5c, 0x1002d5f ] }; key { [ 0x1002d62, 0x1002d42 ] }; key { [ 0x1002d53, 0x1002d4c ] }; key { [ 0x1002d49, 0x1002d58 ] }; key { [ 0x1002d44, 0x1002d5d ] }; key { [ 0x1002d43, 0x1002d5e ] }; key { [ 0x1002d6f, 0x1002d60 ] }; key { [ dollar, sterling, 0x10000a4] }; key { [ 0x1002d47, 0x1002d48 ] }; key { [ 0x1002d59, 0x1002d5a ] }; key { [ 0x1002d37, 0x1002d39 ] }; key { [ 0x1002d3c, 0x1002d35 ] }; key { [ 0x1002d33, 0x1002d33 ] }; key { [ 0x1002d40, 0x1002d41 ] }; key { [ 0x1002d4a, 0x1002d4b ] }; key { [ 0x1002d3d, 0x1002d3d ] }; key { [ 0x1002d4d, 0x1002d38 ] }; key { [ 0x1002d4e, 0x1002d3a ] }; key { [ 0x1002d51, percent ] }; key { [ asterisk, mu ] }; key { [ 0x1002d61, 0x1002d3e ] }; key { [ 0x1002d45, 0x1002d46 ] }; key { [ 0x1002d5b, 0x1002d3f ] }; key { [ 0x1002d56, 0x1002d34 ] }; key { [ 0x1002d31, 0x1002d32 ] }; key { [ 0x1002d4f, 0x1002d50 ] }; key { [ comma, question ] }; key { [ semicolon, period ] }; key { [ colon, slash ] }; key { [ exclam, section ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "tifinagh-extended-phonetic" { include "ma(tifinagh-extended)" name[Group1]="Berber (Morocco, Tifinagh extended phonetic)"; key { [ 0x1002d30 ] }; key { [ 0x1002d63, 0x1002d65 ] }; key { [ 0x1002d3b, NoSymbol,0x10020ac ] }; key { [ 0x1002d54, 0x1002d55 ] }; key { [ 0x1002d5c, 0x1002d5f ] }; key { [ 0x1002d62 ] }; key { [ 0x1002d53 ] }; key { [ 0x1002d49 ] }; key { [ 0x1002d44 ] }; key { [ 0x1002d43 ] }; key { [ 0x1002d47 ] }; key { [ 0x1002d59, 0x1002d5a ] }; key { [ 0x1002d37, 0x1002d39 ] }; key { [ 0x1002d3c ] }; key { [ 0x1002d33 ] }; key { [ 0x1002d40 ] }; key { [ 0x1002d4a ] }; key { [ 0x1002d3d ] }; key { [ 0x1002d4d ] }; key { [ 0x1002d4e ] }; key { [ 0x1002d61 ] }; key { [ 0x1002d45 ] }; key { [ 0x1002d5b ] }; key { [ 0x1002d56 ] }; key { [ 0x1002d31 ] }; key { [ 0x1002d4f ] }; include "level3(ralt_switch)" }; // Tifinagh keyboard; improved from the IRCAM layout to make all // tifinagh chars in unicode accessible (in shift positions for most // touareg letters; in altgr position for spirants. partial alphanumeric_keys xkb_symbols "tifinagh-alt" { name[Group1]="Berber (Morocco, Tifinagh alt.)"; key { [ twosuperior, asciitilde ] }; key { [ ampersand, 1 ] }; key { [asciitilde, 2, asciitilde ] }; key { [ quotedbl, 3, numbersign ] }; key { [apostrophe, 4, braceleft ] }; key { [ parenleft, 5, bracketleft ] }; key { [ minus, 6, bar ] }; key { [ grave, 7, grave ] }; key { [underscore, 8, backslash ] }; key { [asciicircum, 9, asciicircum ] }; key { [ at, 0, at ] }; key { [parenright, degree, bracketright ] }; key { [ equal, plus, braceright ] }; key { [ 0x1002d30 ] }; key { [ 0x1002d63, 0x1002d65, 0x1002d64 ] }; key { [ 0x1002d3b ] }; key { [ 0x1002d54, 0x1002d55 ] }; key { [ 0x1002d5c, 0x1002d5f, 0x1002d5d ] }; key { [ 0x1002d62 ] }; key { [ 0x1002d53 ] }; key { [ 0x1002d49 ] }; key { [ 0x1002d44 ] }; key { [ 0x1002d43, 0x1002d52 ] }; key { [ dead_circumflex ] }; key { [ dollar, sterling ] }; key { [ 0x1002d47, 0x1002d48 ] }; key { [ 0x1002d59, 0x1002d5a ] }; key { [ 0x1002d37, 0x1002d39, 0x1002d38, 0x1002d3a ] }; key { [ 0x1002d3c ] }; key { [ 0x1002d33, 0x1002d36, 0x1002d34, 0x1002d35 ] }; key { [ 0x1002d40, 0x1002d42, 0x1002d41 ] }; key { [ 0x1002d4a, 0x1002d4c, 0x1002d4b ] }; key { [ 0x1002d3d, 0x1002d3e, 0x1002d3f ] }; key { [ 0x1002d4d ] }; key { [ 0x1002d4e ] }; key { [ percent ] }; key { [ asterisk, mu ] }; key { [ 0x1002d61, 0x1002d6f, 0x1002d60 ] }; key { [ 0x1002d45, 0x1002d46 ] }; key { [ 0x1002d5b, 0x1002d5e ] }; key { [ 0x1002d56, 0x1002d57, 0x1002d58 ] }; key { [ 0x1002d31, 0x1002d31, 0x1002d32 ] }; key { [ 0x1002d4f, 0x1002d50, 0x1002d51 ] }; key { [ comma, question ] }; key { [ semicolon, period ] }; key { [ colon, slash ] }; key { [ exclam, section ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "tifinagh-alt-phonetic" { include "ma(tifinagh-alt)" name[Group1]="Berber (Morocco, Tifinagh alt. phonetic)"; key { [ 0x1002d30 ] }; key { [ 0x1002d63, 0x1002d65, 0x1002d64 ] }; key { [ 0x1002d3b ] }; key { [ 0x1002d54, 0x1002d55 ] }; key { [ 0x1002d5c, 0x1002d5f, 0x1002d5d ] }; key { [ 0x1002d62 ] }; key { [ 0x1002d53 ] }; key { [ 0x1002d49 ] }; key { [ 0x1002d44 ] }; key { [ 0x1002d43, 0x1002d52 ] }; key { [ 0x1002d47, 0x1002d48 ] }; key { [ 0x1002d59, 0x1002d5a ] }; key { [ 0x1002d37, 0x1002d39, 0x1002d38, 0x1002d3a ] }; key { [ 0x1002d3c ] }; key { [ 0x1002d33, 0x1002d36, 0x1002d34, 0x1002d35 ] }; key { [ 0x1002d40, 0x1002d42, 0x1002d41 ] }; key { [ 0x1002d4a, 0x1002d4c, 0x1002d4b ] }; key { [ 0x1002d3d, 0x1002d3e, 0x1002d3f ] }; key { [ 0x1002d4d ] }; key { [ 0x1002d4e ] }; key { [ 0x1002d61, 0x1002d6f, 0x1002d60 ] }; key { [ 0x1002d45, 0x1002d46 ] }; key { [ 0x1002d5b, 0x1002d5e ] }; key { [ 0x1002d56, 0x1002d57, 0x1002d58 ] }; key { [ 0x1002d31, 0x1002d31, 0x1002d32 ] }; key { [ 0x1002d4f, 0x1002d50, 0x1002d51 ] }; include "level3(ralt_switch)" }; PK(f[|WW symbols/denu[// based on a keyboard map from an 'xkb/symbols/de' file default xkb_symbols "basic" { include "latin(type4)" name[Group1]="German"; key { [ 2, quotedbl, twosuperior, oneeighth ] }; key { [ 3, section, threesuperior, sterling ] }; key { [ 4, dollar, onequarter, currency ] }; key {type[Group1]="FOUR_LEVEL_PLUS_LOCK", symbols[Group1]= [ssharp, question, backslash, questiondown, 0x1001E9E ]}; key { [dead_acute, dead_grave, dead_cedilla, dead_ogonek ] }; key { [ e, E, EuroSign, EuroSign ] }; key { [ z, Z, leftarrow, yen ] }; key { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] }; key { [ plus, asterisk, asciitilde, macron ] }; key { [ s, S, U017F, U1E9E ] }; key { [ j, J, dead_belowdot, dead_abovedot ] }; key { [odiaeresis, Odiaeresis, dead_doubleacute, dead_belowdot ] }; key { [adiaeresis, Adiaeresis, dead_circumflex, dead_caron ] }; key { [dead_circumflex, degree, U2032, U2033 ] }; key { [numbersign, apostrophe, rightsinglequotemark, dead_breve ] }; key { [ y, Y, guillemotright, U203A ] }; key { [ x, X, guillemotleft, U2039 ] }; key { [ v, V, doublelowquotemark, singlelowquotemark ] }; key { [ b, B, leftdoublequotemark, leftsinglequotemark ] }; key { [ n, N, rightdoublequotemark, rightsinglequotemark ] }; key { [ comma, semicolon, periodcentered, multiply ] }; key { [ period, colon, U2026, division ] }; key { [ minus, underscore, endash, emdash ] }; key { [ less, greater, bar, dead_belowmacron ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "deadtilde" { // previous standard German layout with tilde as dead key include "de(basic)" name[Group1]="German (dead tilde)"; key { [ plus, asterisk, dead_tilde, dead_macron ] }; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // modify the basic German layout to not have any dead keys include "de(basic)" name[Group1]="German (no dead keys)"; key { [asciicircum, degree, notsign, notsign ] }; key { [ acute, grave, cedilla, cedilla ] }; key { [ udiaeresis, Udiaeresis, diaeresis, diaeresis ] }; key { [ plus, asterisk, asciitilde, macron ] }; key { [ odiaeresis, Odiaeresis, doubleacute, doubleacute ] }; key { [ adiaeresis, Adiaeresis, asciicircum, asciicircum ] }; key { [ numbersign, apostrophe, rightsinglequotemark, grave ] }; }; partial alphanumeric_keys xkb_symbols "deadgraveacute" { // modify the basic German layout to have only acute and grave // as dead keys (tilde and circumflex are needed as spacing characters // in many programming languages) include "de(basic)" name[Group1]="German (dead grave acute)"; key { [asciicircum, degree, notsign, notsign ] }; key { [ plus, asterisk, asciitilde, dead_macron ] }; key { [ numbersign, apostrophe, rightsinglequotemark, grave ] }; }; partial alphanumeric_keys xkb_symbols "deadacute" { // modify the basic German layout to have only acute as // dead keys (ASCII grave, tilde and circumflex are needed as // spacing characters in many programming languages and text formatters) include "de(deadgraveacute)" name[Group1]="German (dead acute)"; key { [dead_acute, grave, dead_cedilla, dead_ogonek ] }; key { [numbersign, apostrophe, rightsinglequotemark, dead_grave ] }; }; partial alphanumeric_keys xkb_symbols "T3" { name[Group1]="German (T3)"; key.type[Group1] = "EIGHT_LEVEL"; key { [ dead_circumflex, degree, multiply, NoSymbol, U204A, hyphen, bar, NoSymbol ] }; key { [ 1, exclam, rightsinglequotemark, NoSymbol, onesuperior, exclamdown, U02B9, NoSymbol ] }; key { [ 2, quotedbl, twosuperior, NoSymbol, twosuperior, currency, U02BA, NoSymbol ] }; key { [ 3, section, threesuperior, NoSymbol, threesuperior, sterling, U02BF, NoSymbol ] }; key { [ 4, dollar, emdash, NoSymbol, onequarter, 0x20AC, U02BE, NoSymbol ] }; key { [ 5, percent, exclamdown, NoSymbol, onehalf, uparrow, U02C1, NoSymbol ] }; key { [ 6, ampersand, questiondown, NoSymbol, threequarters, downarrow, U02C0, NoSymbol ] }; key { [ 7, slash, braceleft, NoSymbol, oneeighth, leftarrow, braceleft, NoSymbol ] }; key { [ 8, parenleft, bracketleft, NoSymbol, threeeighths, rightarrow, braceright, NoSymbol ] }; key { [ 9, parenright, bracketright, NoSymbol, fiveeighths, plusminus, bracketleft, NoSymbol ] }; key { [ 0, equal, braceright, NoSymbol, seveneighths, trademark, bracketright, NoSymbol ] }; key { [ ssharp, question, backslash, NoSymbol, backslash, questiondown, U02BB, NoSymbol ] }; key { [ dead_acute, dead_grave, dead_abovedot, NoSymbol, dead_cedilla, dead_ogonek, notsign, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC"; key { [ q, Q, at, NoSymbol, U0242, U0241, U030D, NoSymbol ] }; key { [ w, W, dead_caron, NoSymbol, U02B7, U2126, dead_abovedot, NoSymbol ] }; key { [ e, E, EuroSign, NoSymbol, oe, OE, dead_breve, NoSymbol ] }; key { [ r, R, dead_diaeresis, NoSymbol, paragraph, registered, dead_circumflex, NoSymbol ] }; key { [ t, T, dead_macron, NoSymbol, UA78C, UA78B, dead_diaeresis, NoSymbol ] }; key { [ z, Z, dead_doubleacute, NoSymbol, U027C, yen, dead_invertedbreve, NoSymbol ] }; key { [ u, U, dead_breve, NoSymbol, U0223, U0222, dead_caron, NoSymbol ] }; key { [ i, I, dead_tilde, NoSymbol, idotless, U214D, dead_abovecomma, NoSymbol ] }; key { [ o, O, dead_abovering, NoSymbol, oslash, Oslash, dead_horn, NoSymbol ] }; key { [ p, P, dead_hook, NoSymbol, thorn, THORN, dead_hook, NoSymbol ] }; key { [ udiaeresis, Udiaeresis, dead_horn, NoSymbol, U017F, dead_abovering, dead_grave, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL"; key { [ plus, asterisk, asciitilde, NoSymbol, dead_tilde, dead_macron, at, NoSymbol ] }; key.type[Group1] = "ONE_LEVEL"; key { [ Caps_Lock ] }; key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC"; key { [ a, A, lessthanequal, NoSymbol, ae, AE, U0329, NoSymbol ] }; key { [ s, S, greaterthanequal, NoSymbol, ssharp, section, dead_belowdot, NoSymbol ] }; key { [ d, D, U2300, NoSymbol, eth, ETH, dead_belowbreve, NoSymbol ] }; key { [ f, F, minutes, NoSymbol, U0294, ordfeminine, dead_belowcircumflex, NoSymbol ] }; key { [ g, G, seconds, NoSymbol, eng, ENG, dead_belowmacron, NoSymbol ] }; key { [ h, H, U1E9E, NoSymbol, U0272, U019D, U0332, NoSymbol ] }; key { [ j, J, dead_cedilla, NoSymbol, U0133, U0132, dead_belowring, NoSymbol ] }; key { [ k, K, dead_belowcomma, NoSymbol, kra, dead_belowcomma, dead_stroke, NoSymbol ] }; key { [ l, L, dead_ogonek, NoSymbol, lstroke, Lstroke, U0338, NoSymbol ] }; key { [ odiaeresis, Odiaeresis, dead_belowdot, NoSymbol, dead_acute, dead_doubleacute, degree, NoSymbol ] }; key { [ adiaeresis, Adiaeresis, dead_stroke, NoSymbol, U019B, U1E9E, minutes, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL"; key { [ numbersign, apostrophe, registered, NoSymbol, schwa, SCHWA, seconds, NoSymbol ] }; key { [ less, greater, bar, NoSymbol, U0149, brokenbar, U266A, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC"; key { [ y, Y, U203A, NoSymbol, U0292, U01B7, guillemotleft, NoSymbol ] }; key { [ x, X, guillemotright, NoSymbol, doublelowquotemark, singlelowquotemark, guillemotright, NoSymbol ] }; key { [ c, C, copyright, NoSymbol, cent, copyright, Greek_horizbar, NoSymbol ] }; key { [ v, V, guillemotleft, NoSymbol, leftdoublequotemark, leftsinglequotemark, U2039, NoSymbol ] }; key { [ b, B, U2039, NoSymbol, rightdoublequotemark, rightsinglequotemark, U203A, NoSymbol ] }; key { [ n, N, endash, NoSymbol, U019E, U0220, endash, NoSymbol ] }; key { [ m, M, mu, NoSymbol, mu, masculine, emdash, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL"; key { [ comma, semicolon, U02BB, NoSymbol, ellipsis, multiply, dollar, NoSymbol ] }; key { [ period, colon, U200C, NoSymbol, periodcentered, division, numbersign, NoSymbol ] }; key { [ minus, underscore, hyphen, NoSymbol, U0140, U013F, U2011, NoSymbol ] }; key { [ space, space, nobreakspace, NoSymbol, U202F, U200C, nobreakspace, NoSymbol ] }; include "kpdl(comma)" include "level5(modifier_mapping)" include "level3(modifier_mapping)" key.type[Group1] = "THREE_LEVEL"; key { [ Shift_L, Shift_L, ISO_Level5_Latch ] }; key { [ Shift_R, Shift_R, ISO_Level5_Latch ] }; key { [ ISO_Level3_Shift, ISO_Level5_Latch, ISO_Level5_Latch ] }; }; partial alphanumeric_keys xkb_symbols "ro" { // add romanian-specific letters to the basic German layout. // Romanian symbols are accessible with combination of and // 'a', 's', 't', 'i', 'ä (ä)' (+ for capital letters). // To view romanian-specific symbols, add "export LC_CTYPE=ro_RO" // or "export LC_CTYPE=de_DE.utf8" to your .profile. include "de(basic)" name[Group1]="Romanian (Germany)"; key { [ t, T, tcedilla, Tcedilla ] }; key { [ i, I, icircumflex, Icircumflex ] }; key { [ a, A, acircumflex, Acircumflex ] }; key { [ s, S, scedilla, Scedilla ] }; key { [ adiaeresis, Adiaeresis, abreve, Abreve ] }; }; partial alphanumeric_keys xkb_symbols "ro_nodeadkeys" { // add romanian-specific letters to the German nodeadkeys layout. // Read the comment for de_ro ! include "de(nodeadkeys)" name[Group1]="Romanian (Germany, no dead keys)"; key { [ t, T, tcedilla, Tcedilla ] }; key { [ i, I, icircumflex, Icircumflex ] }; key { [ a, A, acircumflex, Acircumflex ] }; key { [ s, S, scedilla, Scedilla ] }; key { [ adiaeresis, Adiaeresis, abreve, Abreve ] }; }; // German Dvorak keymap by Thorsten Staerk (www.staerk.de/thorsten) // Have acute and grave as dead keys, tilde and circumflex alive as they are needed // in many programming languages. // to use this keymap, use a 105-key-keyboard and the command setxkbmap -model pc105 -layout dvorak -variant de // source: http://www-lehre.informatik.uni-osnabrueck.de/~rfreund/dvorak.php partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" name[Group1]="German (Dvorak)"; key { [ asciicircum, degree ] }; key { [ 1, exclam, onesuperior ] }; key { [ 2, quotedbl, twosuperior ] }; key { [ 3, section, threesuperior ] }; key { [ 4, dollar, bar ] }; key { [ 5, percent, bar ] }; key { [ 6, ampersand, brokenbar ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ plus, asterisk, asciitilde ] }; key { [ less, greater, dead_grave ] }; key { [ udiaeresis, Udiaeresis, at ] }; key { [ comma, semicolon, dead_diaeresis ] }; key { [ period, colon ] }; key { [ c, C, copyright, Cacute ] }; key { [ t, T, trademark ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ question, ssharp ] }; key { [ slash, backslash, dead_acute ] }; key { [ a, A, at, aogonek ] }; key { [ o, O, oacute, Oacute ] }; key { [ e, E, EuroSign, eogonek ] }; key { [ i, I ] }; key { [ u, U ] }; key { [ h, H ] }; key { [ d, D ] }; key { [ r, R, registered ] }; key { [ n, N, nacute, Nacute ] }; key { [ s, S, sacute, Sacute] }; key { [ l, L, lstroke, Lstroke ] }; key { [ odiaeresis, Odiaeresis ] }; key { [ q, Q, at ] }; key { [ m, M, mu ] }; key { [ numbersign, apostrophe ] }; key { [ minus, underscore, hyphen, diaeresis] }; key { [ adiaeresis, Adiaeresis, bar ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { // For naming consistency include "de(basic)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { // For naming consistency include "de(Sundeadkeys)" name[Group1]="German (with Sun dead keys)"; }; // German Neo-Layout Version 2 // adopted 2004 by Hanno Behrens // inspired by Dvorak/de-ergo http://www.goebel-consult.de/de-ergo/ // // Authors: // Stephan Hilb // // Benjamin Kellermann // Erik Streb // and many other contributors // // http://www.neo-layout.org // // $Revision$, $Date$ partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "neo_base" { // Levels in Neo jargon // -------------------------------------------------------------- // Ebene 1: normal // Ebene 2: Shift // Ebene 3: Mod3 // Ebene 4: Mod4 (for marking something use Shift + Mod4) // Ebene 5: Shift + Mod3 // Ebene 6: Mod3 + Mod4 // Compose (not a level): Mod3 + Tab // Feststelltaste (Capslock): Shift + Shift // Mod4-Lock: Mod4 + Mod4 // Mod4-Lock: Shift + Mod3 + Tab // Legend // =============== // Levels in Xkbmap jargon to be found here in the definitions. // These are the levels used, and Xorg's translations: // -------------------------------------------------------------- // Xorg: Level1 Level2 Level3 Level4 Level5 Level6 Level7 Level8 // Neo: Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Pseudo-Ebene Ebene6 ??? // Keys (Neo): None Shift Mod3 Mod3 + Shift Mod4 Mod4 + Shift Mod3 + Mod4 Mod3 + Mod4 + Shift // Alphanumeric-keys // =============== key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; // Tab as Multi_key (Compose) // -------------------------------------------------------------- key { [ Tab, ISO_Left_Tab, Multi_key, ISO_Level5_Lock, NoSymbol, NoSymbol, NoSymbol, ISO_Level5_Lock ] }; // Number row // -------------------------------------------------------------- key { [ dead_circumflex, dead_caron, U21BB, U02DE, dead_abovedot, Pointer_EnableKeys, dead_belowdot, NoSymbol ] }; key { [ 1, degree, onesuperior, onesubscript, ordfeminine, NoSymbol, notsign, NoSymbol ] }; key { [ 2, section, twosuperior, twosubscript, masculine, NoSymbol, logicalor, NoSymbol ] }; key { [ 3, U2113, threesuperior, threesubscript, numerosign, NoSymbol, logicaland, NoSymbol ] }; key { [ 4, guillemotright, U203A, femalesymbol, NoSymbol, NoSymbol, U22A5, NoSymbol ] }; key { [ 5, guillemotleft, U2039, malesymbol, periodcentered, NoSymbol, U2221, NoSymbol ] }; key { [ 6, dollar, cent, U26A5, sterling, NoSymbol, U2225, NoSymbol ] }; key { [ 7, EuroSign, yen, U03F0, currency, NoSymbol, rightarrow, NoSymbol ] }; key { [ 8, doublelowquotemark, singlelowquotemark, U27E8, Tab, ISO_Left_Tab, U221E, NoSymbol ] }; key { [ 9, leftdoublequotemark, leftsinglequotemark, U27E9, KP_Divide, KP_Divide, variation, NoSymbol ] }; key { [ 0, rightdoublequotemark, rightsinglequotemark, zerosubscript, KP_Multiply, KP_Multiply, emptyset, NoSymbol ] }; key { [ minus, emdash, NoSymbol, U2011, KP_Subtract, KP_Subtract, hyphen, NoSymbol ] }; key { [ dead_grave, dead_cedilla, dead_abovering, dead_dasia, dead_diaeresis, NoSymbol, dead_macron, NoSymbol ] }; // Top row // -------------------------------------------------------------- key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ x, X, ellipsis, Greek_xi, Prior, Prior, Greek_XI, NoSymbol ] }; key { [ v, V, underscore, NoSymbol, BackSpace, BackSpace, radical, NoSymbol ] }; key { [ l, L, bracketleft, Greek_lambda, Up, Up, Greek_LAMBDA, NoSymbol ] }; key { [ c, C, bracketright, Greek_chi, Delete, Delete, U2102, NoSymbol ] }; key { [ w, W, asciicircum, Greek_omega, Next, Next, Greek_OMEGA, NoSymbol ] }; key { [ k, K, exclam, Greek_kappa, exclamdown, NoSymbol, multiply, NoSymbol ] }; key { [ h, H, less, Greek_psi, KP_7, KP_7, Greek_PSI, NoSymbol ] }; key { [ g, G, greater, Greek_gamma, KP_8, KP_8, Greek_GAMMA, NoSymbol ] }; key { [ f, F, equal, Greek_phi, KP_9, KP_9, Greek_PHI, NoSymbol ] }; key { [ q, Q, ampersand, U03D5, KP_Add, KP_Add, U211A, NoSymbol ] }; key { [ ssharp, U1E9E, U017F, Greek_finalsmallsigma, U2212, NoSymbol, jot, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ dead_acute, dead_tilde, dead_stroke, dead_psili, dead_doubleacute, NoSymbol, dead_breve, NoSymbol ] }; // Middle row // -------------------------------------------------------------- key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ u, U, backslash, NoSymbol, Home, Home, includedin, NoSymbol ] }; key { [ i, I, slash, Greek_iota, Left, Left, integral, NoSymbol ] }; key { [ a, A, braceleft, Greek_alpha, Down, Down, U2200, NoSymbol ] }; key { [ e, E, braceright, Greek_epsilon, Right, Right, U2203, NoSymbol ] }; key { [ o, O, asterisk, Greek_omicron, End, End, elementof, NoSymbol ] }; key { [ s, S, question, Greek_sigma, questiondown, NoSymbol, Greek_SIGMA, NoSymbol ] }; key { [ n, N, parenleft, Greek_nu, KP_4, KP_4, U2115, NoSymbol ] }; key { [ r, R, parenright, Greek_rho, KP_5, KP_5, U211D, NoSymbol ] }; key { [ t, T, minus, Greek_tau, KP_6, KP_6, partialderivative, NoSymbol ] }; key { [ d, D, colon, Greek_delta, KP_Separator, comma, Greek_DELTA, NoSymbol ] }; key { [ y, Y, at, Greek_upsilon, period, KP_Decimal, nabla, NoSymbol ] }; // Bottom row // -------------------------------------------------------------- key { [ udiaeresis, Udiaeresis, numbersign, NoSymbol, Escape, Escape, union, NoSymbol ] }; key { [ odiaeresis, Odiaeresis, dollar, U03F5, Tab, Tab, intersection, NoSymbol ] }; key { [ adiaeresis, Adiaeresis, bar, Greek_eta, Insert, Insert, U2135, NoSymbol ] }; key { [ p, P, asciitilde, Greek_pi, Return, Return, Greek_PI, NoSymbol ] }; key { [ z, Z, grave, Greek_zeta, Undo, Redo, U2124, NoSymbol ] }; key { [ b, B, plus, Greek_beta, colon, NoSymbol, U21D0, NoSymbol ] }; key { [ m, M, percent, Greek_mu, KP_1, KP_1, ifonlyif, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ comma, endash, quotedbl, U03F1, KP_2, KP_2, U21D2, NoSymbol ] }; key { [ period, enfilledcircbullet, apostrophe, U03D1, KP_3, KP_3, U21A6, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ j, J, semicolon, Greek_theta, semicolon, NoSymbol, Greek_THETA, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; // Space key // -------------------------------------------------------------- key { [ space, space, space, nobreakspace, KP_0, KP_0, U202F, NoSymbol ] }; // Keypad-keys // =============== // The former Numlock key: key { [ Tab, ISO_Left_Tab, equal, approxeq, notequal, Pointer_EnableKeys, identical, NoSymbol ] }; // Topmost row // -------------------------------------------------------------- key { [ KP_Divide, KP_Divide, division, U2300, U2215, NoSymbol, U2223, NoSymbol ] }; key { [ KP_Multiply, KP_Multiply, U22C5, U2299, multiply, NoSymbol, U2297, NoSymbol ] }; key { [ KP_Subtract, KP_Subtract, U2212, U2296, U2216, NoSymbol, U2238, NoSymbol ] }; // Top row // -------------------------------------------------------------- key { [ KP_7, U2714, U2195, U226A, KP_Home, KP_Home, upstile, NoSymbol ] }; key { [ KP_8, U2718, uparrow, intersection, KP_Up, KP_Up, U22C2, NoSymbol ] }; key { [ KP_9, dagger, U20D7, U226B, KP_Prior, KP_Prior, U2309, NoSymbol ] }; key { [ KP_Add, KP_Add, plusminus, U2295, U2213, NoSymbol, U2214, NoSymbol ] }; // Middle row // -------------------------------------------------------------- key { [ KP_4, club, leftarrow, includedin, KP_Left, KP_Left, U2286, NoSymbol ] }; key { [ KP_5, EuroSign, colon, U22B6, KP_Begin, KP_Begin, U22B7, NoSymbol ] }; key { [ KP_6, U2023, rightarrow, includes, KP_Right, KP_Right, U2287, NoSymbol ] }; // Bottom row // -------------------------------------------------------------- key { [ KP_1, diamond, U2194, lessthanequal, KP_End, KP_End, downstile, NoSymbol ] }; key { [ KP_2, heart, downarrow, union, KP_Down, KP_Down, U22C3, NoSymbol ] }; key { [ KP_3, U2660, U21CC, greaterthanequal, KP_Next, KP_Next, U230B, NoSymbol ] }; key { [ KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, NoSymbol ] }; key { [ KP_Equal, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; // Bottommost row // -------------------------------------------------------------- key { [ KP_0, U2423, percent, U2030, KP_Insert, KP_Insert, U25A1, NoSymbol ] }; key { [ KP_Separator, period, comma, minutes, KP_Delete, KP_Delete, seconds, NoSymbol ] }; }; partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "neo" { include "de(neo_base)" name[Group1]= "German (Neo 2)"; include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)" }; // Copied from macintosh_vndr/de // olh@suse.de very close to MacOS map partial alphanumeric_keys xkb_symbols "mac" { include "de" name[Group1]= "German (Macintosh)"; key { [ 1, exclam, exclamdown, at ] }; key { [ 5, percent, bracketleft ] }; key { [ 6, ampersand, bracketright ] }; key { [ 7, slash, bar, backslash ] }; key { [ 8, parenleft, braceleft, asciitilde ] }; key { [ 9, parenright, braceright ] }; key { [ q, Q, guillemotleft, guillemotright ] }; key { [ r, R, registered ] }; key { [ u, U, diaeresis, Aacute ] }; key { [ i, I, slash, Ucircumflex ] }; key { [ udiaeresis, Udiaeresis, periodcentered, degree ] }; key { [ plus, asterisk, asciitilde ] }; key { [ a, A, aring, Aring ] }; key { [ g, G, copyright ] }; key { [ h, H, ordfeminine ] }; key { [ l, L, at ] }; key { [ odiaeresis, Odiaeresis, dead_acute ] }; key { [ n, N, asciitilde ] }; }; partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { // modify the standard German mac layout to not have any dead keys include "de(mac)" name[Group1]= "German (Macintosh, no dead keys)"; key { [ asciicircum, degree, notsign ] }; key { [ 4, dollar, onequarter, currency ] }; key { [ acute, grave, cedilla ] }; key { [ udiaeresis, Udiaeresis, diaeresis ] }; key { [ plus, asterisk, asciitilde, macron ] }; key { [ odiaeresis, Odiaeresis, acute ] }; key { [ adiaeresis, Adiaeresis, asciicircum ] }; key { [ numbersign, apostrophe, rightsinglequotemark ] }; }; partial alphanumeric_keys xkb_symbols "dsb" { include "latin(basic)" name[Group1] = "Lower Sorbian"; key { [ z, Z, zcaron, Zcaron ] }; key { [ x, X, zacute, Zacute ] }; key { [ c, C, cacute, Cacute ] }; key { [ v, V, ccaron, Ccaron ] }; key { [ n, N, nacute, Nacute ] }; key { [ s, S, sacute, Sacute ] }; key { [ d, D, scaron, Scaron ] }; key { [ f, F ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E, ecaron, Ecaron ] }; key { [ r, R, racute, Racute ] }; key { [ t, T, U20B5, EuroSign ] }; key { [ o, O, oacute, Oacute ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "dsb_qwertz" { include "latin(basic)" name[Group1] = "Lower Sorbian (QWERTZ)"; key { [ y, Y ] }; key { [ x, X ] }; key { [ c, C, cacute, Cacute ] }; key { [ v, V, ccaron, Ccaron ] }; key { [ n, N, nacute, Nacute ] }; key { [ s, S, sacute, Sacute ] }; key { [ d, D, scaron, Scaron ] }; key { [ f, F ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E, ecaron, Ecaron ] }; key { [ r, R, racute, Racute ] }; key { [ t, T, U20B5, EuroSign ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ u, U, zacute, Zacute ] }; key { [ o, O, oacute, Oacute ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "qwerty" { // This layout should work exactly as a de with the exception // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped). // 2008 by Matej Košík include "de(basic)" name[Group1] = "German (QWERTY)"; key { [ z, Z, leftarrow, yen ] }; key { [ y, Y, guillemotleft, less ] }; }; // layout for Russian letters on an german keyboard // based on US-RU layout by Ivan Popov 2005-07-17 // adopted for german layout by Alexey Fisher 2010-08-19 partial alphanumeric_keys xkb_symbols "ru" { include "de(basic)" name[Group1]= "Russian (Germany, phonetic)"; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_io, Cyrillic_IO, asciitilde ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA, plus, asterisk ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_yu, Cyrillic_YU, numbersign, apostrophe ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; include "level3(ralt_switch)" }; // layout for Russian (recommended) letters on a german keyboard // based on "Russisch für Deutsche, empfohlen" by B. Bendixen und H. Rothe http://russisch.urz.uni-leipzig.de/key2000.htm 2016-02-01 // adapted for Linux by Niko Krause 2016-06-09 partial alphanumeric_keys xkb_symbols "ru-recom" { include "de(basic)" name[Group1]= "Russian (Germany, recommended)"; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_ya, Cyrillic_YA, asciicircum, degree ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, Ukrainian_yi, Ukrainian_YI ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_es, Cyrillic_ES, Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_sha, Cyrillic_SHA, plus, asterisk ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, numbersign, apostrophe ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ asciitilde, question, backslash, questiondown ] }; key { [ U0301, U0300, U0323, U0307 ] }; include "level3(ralt_switch)" }; // layout for Russian (transliteration) letters on a german keyboard // based on "Russisch für Deutsche, Transliteration" by B. Bendixen und H. Rothe http://russisch.urz.uni-leipzig.de/key2000.htm 2016-02-01 // adapted for Linux by Niko Krause 2016-06-09 partial alphanumeric_keys xkb_symbols "ru-translit" { include "de(basic)" name[Group1]= "Russian (Germany, transliteration)"; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_ya, Cyrillic_YA, asciicircum, degree ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, Ukrainian_yi, Ukrainian_YI ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_es, Cyrillic_ES, Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, plus, asterisk ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, numbersign, apostrophe ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ asciitilde, question, backslash, questiondown ] }; key { [ U0301, U0300, U0323, U0307 ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "pl" { // Combined layout for entering both German and Polish symbols on a German physical // keyboard. Based on German (no dead keys) and Polish (basic). Polish diacritics // on AltGr+"acelnosxz". EuroSign moved to AE04 (AltGr+dollar key) to avoid conflict // with Polish eogonek. // // https://github.com/kontextify/xkeyboard-config include "latin(type4)" name[Group1]= "Polish (Germany, no dead keys)"; include "de(nodeadkeys)" key { [ 4, dollar, EuroSign, currency ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E, eogonek, Eogonek ] }; key { [ o, O, oacute, Oacute ] }; key { [ a, A, aogonek, Aogonek ] }; key { [ s, S, sacute, Sacute ] }; key { [ f, F ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ x, X, zacute, Zacute ] }; key { [ c, C, cacute, Cacute ] }; key { [ n, N, nacute, Nacute ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "htcdream" { include "inet(htcdream)" name[Group1]= "German"; //second row key { [ q, Q, Tab, Tab ] }; key { [ w, W, grave, grave ] }; key { [ e, E, EuroSign, EuroSign ] }; key { [ r, R, underscore, underscore ] }; key { [ t, T, sterling, sterling] }; key { [ z, Z, division, division ] }; key { [ u, U, udiaeresis, udiaeresis ] }; key { [ i, I, minus, minus ] }; key { [ o, O, odiaeresis, odiaeresis ] }; key { [ p, P, equal, equal ] }; //third row key { [ a, A, adiaeresis, adiaeresis ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ d ,D, backslash, backslash ] }; key { [ f, F, braceleft, braceleft ] }; key { [ g, G, braceright, braceright ] }; key { [ h, H, multiply, multiply ] }; key { [ j, J, colon, colon ] }; key { [ k, K, plus, plus ] }; key { [ l, L, apostrophe, apostrophe ] }; //forth row key { [ y, Y, bar, bar ] }; key { [ x, X, bracketleft, bracketleft ] }; key { [ c, C, bracketright, bracketright ] }; key { [ v, V, less, less ] }; key { [ b, B, greater, greater ] }; key { [ n, N, semicolon, semicolon ] }; key { [ m, M, quotedbl, quotedbl ] }; key { [ comma, comma, question, question ] }; //fifth row key { [ at, at, asciitilde, asciitilde ] }; include "level3(alt_switch)" }; partial alphanumeric_keys xkb_symbols "tr" { // add turkish-specific letters to the basic German layout. // Turkish symbols are accessible with combination of and // 'i', 's', 'g', 'c'' (+ for capital letters). include "de(basic)" name[Group1]="Turkish (Germany)"; key { [ i, I, U0131, U0130 ] }; key { [ s, S, U015F, U015E ] }; key { [ g, G, U011F, U011E ] }; key { [ c, C, U0E7, U0C7 ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "us" { include "us" name[Group1]="German (US, with German letters)"; key { [ a, A, adiaeresis, Adiaeresis ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; key { [ apostrophe, quotedbl, adiaeresis, Adiaeresis ] }; key { [ e, E, EuroSign, EuroSign ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ o, O, odiaeresis, Odiaeresis ] }; key { [ bracketleft, braceleft, udiaeresis, Udiaeresis ] }; key { [ 3, numbersign, section, section ] }; key { [ minus, underscore, ssharp, question ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "hu" { // modify the basic German layout to not have any dead keys and add Hungarian letters include "de(basic)" name[Group1]="German (with Hungarian letters and no dead keys)"; key { [ y, Y, guillemotleft, less ] }; key { [odiaeresis, Odiaeresis, eacute, Eacute ] }; key { [adiaeresis, Adiaeresis, aacute, Aacute] }; key { [ e, E, EuroSign, EuroSign ] }; key { [ z, Z, leftarrow, yen ] }; key { [ u, U, uacute, Uacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, odoubleacute, Odoubleacute ] }; key { [udiaeresis, Udiaeresis, udoubleacute, Udoubleacute ] }; key { [ plus, asterisk, asciitilde, macron ] }; key { [ acute, grave, oacute, Oacute ] }; key { [numbersign, apostrophe, rightsinglequotemark, grave ] }; key { [asciicircum, degree, notsign, notsign ] }; }; partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/de(sun_type6)" }; partial alphanumeric_keys xkb_symbols "adnw_base" { include "de(neo_base)" key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; }; partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "adnw" { include "de(adnw_base)" name[Group1]= "German (Aus der Neo-Welt)"; include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)" }; partial alphanumeric_keys xkb_symbols "koy_base" { include "de(neo_base)" key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; }; partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "koy" { include "de(koy_base)" name[Group1]= "German (KOY)"; include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)" }; partial alphanumeric_keys xkb_symbols "bone_base" { include "de(neo_base)" key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; }; partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "bone" { include "de(bone_base)" name[Group1]= "German (Bone)"; include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)" }; partial alphanumeric_keys xkb_symbols "bone_eszett_home_base" { include "de(bone_base)" key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; }; partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "bone_eszett_home" { include "de(bone_eszett_home_base)" name[Group1]= "German (Bone, eszett home row)"; include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)" }; partial alphanumeric_keys xkb_symbols "neo_qwertz_base" { include "de(neo_base)" key.type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK"; key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; key { [ minus, emdash, NoSymbol, U2011, NoSymbol, NoSymbol, hyphen, NoSymbol ] }; key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; }; partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "neo_qwertz" { include "de(neo_qwertz_base)" name[Group1]= "German (Neo qwertz)"; include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)" }; partial alphanumeric_keys xkb_symbols "neo_qwerty_base" { include "de(neo_qwertz_base)" key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK"; key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; }; partial alphanumeric_keys modifier_keys keypad_keys xkb_symbols "neo_qwerty" { include "de(neo_qwerty_base)" name[Group1]= "German (Neo qwerty)"; include "shift(both_capslock)" include "level3(caps_switch)" include "level3(bksl_switch)" include "level5(lsgt_switch_lock)" include "level5(ralt_switch_lock)" }; partial alphanumeric_keys xkb_symbols "lld" { include "de(basic)" name[Group1] = "German Ladin"; key { [ p, P, ediaeresis, Ediaeresis ] }; }; PK(f[ (BAA symbols/brnu[default xkb_symbols "abnt2" { // Based on a very simple Brazilian ABNT2 keyboard, // by Ricardo Y. Igarashi (iga@that.com.br). // With added support for dead keys in I18N applications, // by Conectiva (http://www.conectiva.com.br). include "latin" name[Group1]="Portuguese (Brazil)"; key { [ apostrophe, quotedbl, notsign, notsign ] }; key { [ 2, at, twosuperior, onehalf ] }; key { [ 3, numbersign, threesuperior, threequarters ] }; key { [ 4, dollar, sterling, onequarter ] }; key { [ 5, percent, cent, threeeighths ] }; key { [ 6, dead_diaeresis, notsign, diaeresis ] }; key { [ equal, plus, section, dead_ogonek ] }; key { [ q, Q, slash, slash ] }; key { [ w, W, question, question ] }; key { [ e, E, degree, degree ] }; key { [ r, R, registered, registered ] }; key { [ dead_acute, dead_grave, acute, grave ] }; key { [ bracketleft, braceleft, ordfeminine, dead_macron ] }; key { [ bracketright, braceright, masculine, masculine ] }; key { [ ccedilla, Ccedilla, dead_acute,dead_doubleacute ] }; key { [ dead_tilde,dead_circumflex, asciitilde, asciicircum ] }; key { [ backslash, bar, masculine, dead_breve ] }; key { [ c, C, copyright, copyright ] }; key { [ m, M, mu, mu ] }; key { [ semicolon, colon, dead_belowdot, dead_abovedot ] }; // The ABNT-2 keyboard has this special key: key { [ slash, question, degree, questiondown ] }; modifier_map Mod3 { Scroll_Lock }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "br(abnt2)" name[Group1]="Portuguese (Brazil, no dead keys)"; key { [ 6, diaeresis, notsign, notsign ] }; key { [ apostrophe, grave ] }; key { [ ccedilla, Ccedilla, acute, doubleacute ] }; key { [ asciitilde, asciicircum ] }; key { [ semicolon, colon, dead_belowdot, abovedot ] }; }; // The ABNT2 keyboard on IBM/Lenovo Thinkpads, // by Piter PUNK . // partial alphanumeric_keys xkb_symbols "thinkpad" { include "br(abnt2)" name[Group1]="Portuguese (Brazil, IBM/Lenovo ThinkPad)"; key { [ slash, question, degree, questiondown ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { include "us(basic)" name[Group1]="Portuguese (Brazil)"; key { [ apostrophe, quotedbl ] }; key { [ 1, exclam, onesuperior ] }; key { [ 2, at, twosuperior ] }; key { [ 3, numbersign, threesuperior ] }; key { [ 4, dollar, sterling ] }; key { [ 5, percent, cent ] }; key { [ 6, dead_diaeresis, notsign ] }; key { [ equal, plus, section ] }; key { [ e, E, EuroSign ] }; key { [ dead_acute, dead_grave, acute, grave ] }; key { [ bracketleft, braceleft, 0x10000AA ] }; key { [ bracketright, braceright, 0x10000BA ] }; key { [ ccedilla, Ccedilla ] }; key { [ dead_tilde, dead_circumflex ] }; key { [ z, Z, bar ] }; key { [ c, C, 0x10020A2 ] }; key { [ period, greater, backslash ] }; key { [ semicolon, colon ] }; key { [ slash, question, degree, ISO_Next_Group ] }; include "level3(ralt_switch)" }; // // Brazilian Dvorak layout 2005-04-18 // "Teclado Simplificado Brasileiro" ou "Dvorak Brasileiro" // // Heitor Moraes heitor.moraes@gmail.com // Luiz Portella lfpor@lujz.org // Nando Florestan nando2003@mandic.com.br // Ari Caldeira ari@tecladobrasileiro.com.br // partial alphanumeric_keys xkb_symbols "dvorak" { name[Group1]="Portuguese (Brazil, Dvorak)"; // Numeric row key { [ apostrophe, quotedbl, dead_caron, dead_doubleacute ] }; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, at, twosuperior, onehalf ] }; key { [ 3, numbersign, threesuperior, threequarters ] }; key { [ 4, dollar, sterling, onequarter ] }; key { [ 5, percent, cent, 0x01002030 ] }; key { [ 6, dead_diaeresis, notsign, diaeresis ] }; key { [ 7, ampersand, dead_belowdot, dead_abovedot ] }; key { [ 8, asterisk, dead_ogonek, dead_horn ] }; key { [ 9, parenleft, dead_cedilla, dead_hook ] }; key { [ 0, parenright, dead_macron, dead_breve ] }; key { [ bracketleft, braceleft, ordfeminine, 0x01000326 ] }; key { [ bracketright, braceright, masculine, dead_abovering ] }; // Upper row key { [ slash, question, degree, questiondown ] }; key { [ comma, less, 0x01000329, 0x01000313 ] }; key { [ period, greater, 0x01002022, periodcentered ] }; key { [ p, P, thorn, THORN ] }; key { [ y, Y, yen, yen ] }; key { [ f, F, leftdoublequotemark, leftsinglequotemark ] }; key { [ g, G, rightdoublequotemark, rightsinglequotemark ] }; key { [ c, C, uparrow, copyright ] }; key { [ r, R, registered, registered ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ dead_acute, dead_grave, acute, grave ] }; key { [ equal, plus, section, plusminus ] }; // Central row key { [ a, A, ae, AE ] }; key { [ o, O, oe, OE ] }; key { [ e, E, EuroSign, EuroSign ] }; key { [ u, U, oslash, Ooblique ] }; key { [ i, I, idotless, Iabovedot ] }; key { [ d, D, eth, ETH ] }; key { [ h, H, leftarrow, paragraph ] }; key { [ t, T, rightarrow, trademark ] }; key { [ n, N, eng, ENG ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] }; key { [ minus, underscore, 0x01002015, 0x01000336 ] }; // Lower row key { [ ccedilla, Ccedilla, backslash, bar ] }; key { [ semicolon, colon, 0x01000331, 0x0100032D ] }; key { [ q, Q, 0x01000259, 0x0100018F ] }; key { [ j, J, 0x01000292, 0x010001B7 ] }; key { [ k, K, guillemotleft, 0x01002039 ] }; key { [ x, X, multiply, division ] }; key { [ b, B, guillemotright, 0x0100203A ] }; key { [ m, M, downarrow, mu ] }; key { [ w, W, ubreve, Ubreve ] }; key { [ v, V, doublelowquotemark, singlelowquotemark ] }; key { [ z, Z, 0x0100201F, 0x0100201B ] }; key { [ backslash, bar, currency, brokenbar ] }; key { [ space, space, nobreakspace, nobreakspace ] }; // Configures the "," for the numeric keypad include "kpdl(comma)" // Configures the use of the AltGr key include "level3(ralt_switch)" }; // // Brazilian Nativo layout. // This is a Dvorak-based layout, designed for the Portuguese language. // // Ari Caldeira 2005-07-19 // partial alphanumeric_keys xkb_symbols "nativo" { name[Group1]="Portuguese (Brazil, Nativo)"; // Numeric row key { [ equal, plus, section, plusminus ] }; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, at, twosuperior, onehalf ] }; key { [ 3, numbersign, threesuperior, threequarters ] }; key { [ 4, dollar, sterling, onequarter ] }; key { [ 5, percent, cent, 0x01002030 ] }; key { [ 6, dead_diaeresis, notsign, diaeresis ] }; key { [ 7, ampersand, dead_belowdot, dead_abovedot ] }; key { [ 8, asterisk, dead_ogonek, dead_horn ] }; key { [ 9, parenleft, dead_cedilla, dead_hook ] }; key { [ 0, parenright, dead_macron, dead_breve ] }; key { [ bracketleft, braceleft, ordfeminine, 0x01000326 ] }; key { [ bracketright, braceright, masculine, dead_abovering ] }; // Upper row key { [ slash, question, degree, questiondown ] }; key { [ comma, less, 0x01000329, 0x01000313 ] }; key { [ period, greater, 0x01002022, periodcentered ] }; key { [ h, H, paragraph, paragraph ] }; key { [ x, X, multiply, division ] }; key { [ w, W, ubreve, Ubreve ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ t, T, trademark, trademark ] }; key { [ c, C, copyright, copyright ] }; key { [ p, P, thorn, THORN ] }; key { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] }; key { [ minus, underscore, 0x01002015, 0x01000336 ] }; // Central row key { [ i, I, idotless, Iabovedot ] }; key { [ e, E, EuroSign, EuroSign ] }; key { [ a, A, ae, AE ] }; key { [ o, O, oe, OE ] }; key { [ u, U, oslash, Ooblique ] }; key { [ m, M, mu, mu ] }; key { [ d, D, eth, ETH ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ r, R, registered, registered ] }; key { [ n, N, eng, ENG ] }; key { [ dead_acute, dead_grave, acute, grave ] }; key { [ apostrophe, quotedbl, dead_caron, dead_doubleacute ] }; // Lower row key { [ semicolon, colon, 0x01000331, 0x0100032D ] }; key { [ y, Y, yen, yen ] }; key { [ ccedilla, Ccedilla, backslash, bar ] }; key { [ j, J, 0x01000292, 0x010001B7 ] }; key { [ b, B, guillemotleft, 0x01002039 ] }; key { [ k, K, guillemotright, 0x0100203A ] }; key { [ q, Q, 0x01000259, 0x0100018F ] }; key { [ v, V, doublelowquotemark, singlelowquotemark ] }; key { [ g, G, leftdoublequotemark, leftsinglequotemark ] }; key { [ f, F, rightdoublequotemark, rightsinglequotemark ] }; key { [ z, Z, 0x0100201F, 0x0100201B ] }; key { [ backslash, bar, currency, brokenbar ] }; key { [ space, space, nobreakspace, nobreakspace ] }; // Configures the "," for the numeric keypad include "kpdl(comma)" // Configures the use of the AltGr key include "level3(ralt_switch)" }; // // Brazilian Nativo layout for US keyboards. // // Ari Caldeira 2005-07-19 // partial alphanumeric_keys xkb_symbols "nativo-us" { include "br(nativo)" name[Group1]="Portuguese (Brazil, Nativo for US keyboards)"; key { [ y, Y, ccedilla, Ccedilla ] }; key { [ semicolon, colon, backslash, bar ] }; }; // // Brazilian Nativo layout for typing Esperanto. // // Ari Caldeira 2005-07-19 // partial alphanumeric_keys xkb_symbols "nativo-epo" { include "br(nativo)" name[Group1]="Esperanto (Brazil, Nativo)"; key { [ h, H, hcircumflex, Hcircumflex ] }; key { [ ccircumflex, Ccircumflex, x, X ] }; key { [ ubreve, Ubreve, w, W ] }; key { [ jcircumflex, Jcircumflex, y, Y ] }; key { [ scircumflex, Scircumflex, ccedilla, Ccedilla ] }; key { [ gcircumflex, Gcircumflex, q, Q ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/br(sun_type6)" }; PK(f[rr symbols/innu[// This layout includes all Indian layouts, including: // - Devanagari (Hindi, Marathi, Sanskrit) // - Bangla // - Gujarati // - Kannada // - Malayalam // - Ol Chiki // - Oriya // - Tamil // - Telugu // - Urdu // Links: // - Indic INSCRIPT keyboard layout diagrams: // http://java.sun.com/products/jfc/tsc/articles/InputMethod/indiclayout.html // - Bangla Baishakhi (Bangla layouts): // - Bangla Baishakhi Inscript (Bangla layouts): // - Bangla Bornona (Bangla layouts): // - Uni Gitanjali (Bangla layouts): // http://nltr.org // - Ekusheyr Shadhinota (Bangla layouts): // http://ekushey.org/projects/shadhinota/index.html // - Microsoft Windows XP SP2: Indic Language Standards - an Introduction: // http://www.bhashaindia.com/MSProducts/XpSp2/Articles/IndicLanguageStandards.aspx // - Ol Chiki: // http://www.unicode.org/L2/L2005/05243r-n2984-ol-chiki.pdf (fig. 9) // based on a keyboard map from an 'xkb/symbols/dev' file // Devangari is the default. Kill me if I am wrong:) default partial alphanumeric_keys xkb_symbols "deva" { // March 2004 -- David Holl name[Group1]="Indian"; key.type="FOUR_LEVEL"; key { [ U094a, U0912, grave, asciitilde ] }; key { [ U0967, U090d, 1, exclam ] }; key { [ U0968, U0945, 2, at ] }; // Shift+AE0[3-8] really need to return a macro of keys defined by // INSCRIPT in place of the symbols that are here for now. But this // requires XKB to map 1 key into two to three other key presses. key { [ U0969, numbersign, 3, numbersign ] }; key { [ U096a, dollar, 4 ] }; key { [ U096b, percent, 5, percent ] }; key { [ U096c, asciicircum, 6, asciicircum ] }; key { [ U096d, ampersand, 7, ampersand ] }; key { [ U096e, asterisk, 8, asterisk ] }; key { [ U096f, parenleft, 9, parenleft ] }; key { [ U0966, parenright, 0, parenright ] }; key { [ minus, U0903, minus, underscore ] }; key { [ U0943, U090b, U0944, U0960 ] }; key { [ U094c, U0914 ] }; key { [ U0948, U0910 ] }; key { [ U093e, U0906 ] }; key { [ U0940, U0908, U0963, U0961 ] }; key { [ U0942, U090a ] }; key { [ U092c, U092d ] }; key { [ U0939, U0919 ] }; key { [ U0917, U0918, U095a ] }; key { [ U0926, U0927 ] }; key { [ U091c, U091d, U095b ] }; key { [ U0921, U0922, U095c, U095d ] }; key { [ U093c, U091e ] }; // I added \ / ? | for shell-convenience (file names and piping) key { [ U0949, U0911, U005C, U007C ] }; key { [ U094b, U0913 ] }; key { [ U0947, U090f ] }; key { [ U094d, U0905 ] }; key { [ U093f, U0907, U0962, U090c ] }; key { [ U0941, U0909 ] }; key { [ U092a, U092b, NoSymbol, U095e ] }; key { [ U0930, U0931 ] }; key { [ U0915, U0916, U0958, U0959 ] }; key { [ U0924, U0925 ] }; key { [ U091a, U091b, U0952 ] }; key { [ U091f, U0920, NoSymbol, U0951 ] }; key { [ U0946, U090e, U0953 ] }; key { [ U0902, U0901, NoSymbol, U0950 ] }; key { [ U092e, U0923, U0954 ] }; key { [ U0928, U0929 ] }; key { [ U0935, U0934 ] }; key { [ U0932, U0933 ] }; key { [ U0938, U0936 ] }; key { [ comma, U0937, U0970 ] }; key { [ period, U0964, U0965, U093d ] }; // I added \ / ? | for shell-convenience (file names and piping) key { [ U092f, U095f, slash, question ] }; // space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ): include "nbsp(zwnj3zwj4)" include "rupeesign(4)" include "level3(ralt_switch)" }; //Name : Bolnagri (Combined) //Description : A phonetic keyboard layout for Devnagari(Hindi) // http://www.indlinux.org/wiki/index.php/BolNagri //NOTE : This is a combined map of bolnagri_matras and bolnagri_vowels. //Inspired by "devrom" keymap by Steve Smith for the windows tool "keyman" //Original Author : Noah Levitt //Past Authors : Pramod.R and Ravikant //Current Main. : G Karunakar partial alphanumeric_keys xkb_symbols "bolnagri" { name[Group1] = "Hindi (Bolnagri)"; key.type="FOUR_LEVEL"; // Roman digits key { [ U0902, U0901, apostrophe, asciitilde ] }; // apostrophe: anusvara, candrabindu key { [ 1, exclam, U0967, exclam ] }; key { [ 2, at, U0968, at ] }; key { [ 3, numbersign, U0969, numbersign ] }; key { [ 4, dollar, U096A ] }; // Rupee symbol on AltGr+4 key { [ 5, percent, U096B, percent ] }; key { [ 6, asciicircum, U096C, asciicircum ] }; key { [ 7, ampersand, U096D, ampersand ] }; key { [ 8, asterisk, U096E, asterisk ] }; key { [ 9, parenleft, U096F, parenleft ] }; key { [ 0, parenright, U0966, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ U0964, U0965, U007C, U005C ] }; //pipe : danda, double danda //Q Row key { [ U200C, U200D ] }; // Q: ZWNJ, ZWJ key { [ U0935, U950 ] }; // W: wa, OM key { [ U0947, U0948, U090F, U0910 ] }; // E: e, ai matras key { [ U0930, U0943, U0931, U090B ] }; // R: ra, vocalic Ri key { [ U0924, U0925 ] }; // T: ta, tha key { [ U092f, U091E ] }; // Y: ya, nya key { [ U0941, U0942, U0909, U090A ] }; // U: u, uu matras key { [ U093F, U0940, U0907, U0908 ] }; // I: i, ii matras key { [ U094B, U094C, U0913, U0914 ] }; // O: o, au matras key { [ U092A, U092B ] }; // P: pa, pha key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; //A Row key { [ U093E, U0906, U0905, U0906 ] }; // A: aa, full A, AA key { [ U0938, U0937 ] }; // S: sa, ssa key { [ U0926, U0927 ] }; // D: da, dha key { [ U091F, U0920 ] }; // F: TA, THA key { [ U0917, U0918 ] }; // G: ga, gha key { [ U0939, U0903 ] }; // H: ha, visarg key { [ U091C, U091D ] }; // J: ja, jha key { [ U0915, U0916 ] }; // K: ka, kha key { [ U0932, U0933, U0962, U090C ] }; // L: la, vocalic L or lru matra key { [ semicolon, colon ] }; key { [apostrophe, quotedbl ] }; //Z Row key { [ U0936, U0945, U0936, U090D ] }; // Z: sha, akaar candra key { [ U094D, U0949, U094D, U0911 ] }; // X: halant, aakaar candra, chandra A key { [ U091A, U091B ] }; // C: ca, cha key { [ U0921, U0922 ] }; // V: da, dha key { [ U092C, U092D ] }; // B: ba, bha key { [ U0928, U0923 ] }; // N: na, nna key { [ U092E, U0919, U092E, U093D ] }; // M: ma, nga, avagraha key { [ comma, U0970 ] };// comma: comma, dev abbreviation sign key { [ period, U093C ] }; // period: period, nukta key { [ slash, question ] }; // modifier_map Shift { Shift_L }; // modifier_map Lock { Caps_Lock }; // modifier_map Control{ Control_L }; // modifier_map Mod3 { Mode_switch }; include "level3(ralt_switch)" include "rupeesign(4)" }; // based on a keyboard map from an 'xkb/symbols/ben' file partial alphanumeric_keys xkb_symbols "ben" { name[Group1]= "Bangla (India)"; // Mainly numbers. key { [ U09E7 ] }; key { [ U09E8 ] }; key { [ U09E9 ] }; key { [ U09EA ] }; key { [ U09EB ] }; key { [ U09EC ] }; key { [ U09ED ] }; key { [ U09EE ] }; key { [ U09EF, parenleft ] }; key { [ U09E6, parenright ] }; key { [ minus, U0983 ] }; key { [ U098B, U09C3 ] }; // Mainly long vowels key { [ U09CC, U0994 ] }; key { [ U09C8, U0990 ] }; key { [ U09BE, U0986 ] }; key { [ U09C0, U0988 ] }; key { [ U09C2, U098A ] }; // Mainly voiced consonants key { [ U09AC, U09AD ] }; key { [ U09B9, U0999 ] }; key { [ U0997, U0998 ] }; key { [ U09A6, U09A7 ] }; key { [ U099C, U099D ] }; key { [ U09A1, U09A2 ] }; key { [ U09BC, U099E ] }; // Mainly short vowels key { [ U09CB, U0993 ] }; key { [ U09C7, U098F ] }; key { [ U09CD, U0985 ] }; key { [ U09BF, U0987 ] }; key { [ U09C1, U0989 ] }; // Mainly unvoiced consonants key { [ U09AA, U09AB ] }; key { [ U09B0, U09DD ] }; key { [ U0995, U0996 ] }; key { [ U09A4, U09A5 ] }; key { [ U099A, U099B ] }; key { [ U099F, U09A0 ] }; key { [ U005C, U007C ] }; key { [ z, Z ] }; key { [ U0982, U0981 ] }; key { [ U09AE, U09A3 ] }; key { [ U09A8, U09A8 ] }; key { [ U09AC, U09AC ] }; key { [ U09B2, U09B2 ] }; key { [ U09B8, U09B6 ] }; key { [ comma, U09B7 ] }; key { [ period, U0964 ] }; key { [ U09DF, U09AF ] }; include "level3(ralt_switch)" include "rupeesign(4)" }; xkb_symbols "ben_probhat" { name[Group1]= "Bangla (India, Probhat)"; key.type="FOUR_LEVEL"; key { [ Escape ] }; // numbers key { [ U200D, asciitilde ] }; key { [ U09E7, exclam, U09F4 ] }; key { [ U09E8, at, U09F5 ] }; key { [ U09E9, numbersign, U09F6 ] }; key { [ U09EA, U09F3, U09F7, U09F2 ] }; key { [ U09EB, percent ] }; key { [ U09EC, asciicircum ] }; key { [ U09ED, U099E, U09FA ] }; key { [ U09EE, U09CE ] }; key { [ U09EF, parenleft ] }; key { [ U09E6, parenright, U09F8, U09F9 ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ BackSpace ] }; // tab, q to ] key { [ Tab, ISO_Left_Tab ] }; key { [ U09A6, U09A7 ] }; key { [ U09C2, U098A ] }; key { [ U09C0, U0988 ] }; key { [ U09B0, U09DC ] }; key { [ U099F, U09A0 ] }; key { [ U098F, U0990 ] }; key { [ U09C1, U0989 ] }; key { [ U09BF, U0987 ] }; key { [ U0993, U0994 ] }; key { [ U09AA, U09AB ] }; key { [ U09C7, U09C8 ] }; key { [ U09CB, U09CC, U09D7 ] }; key { [ Return ] }; // caps, a to ' // key { [ Caps_Lock ] }; key { [ U09BE, U0985, U098C, U09E0 ] }; key { [ U09B8, U09B7, U09E1, U09E3 ] }; key { [ U09A1, U09A2, U09C4, U09E2 ] }; key { [ U09A4, U09A5 ] }; key { [ U0997, U0998 ] }; key { [ U09B9, U0983, U09BD ] }; key { [ U099C, U099D ] }; key { [ U0995, U0996 ] }; key { [ U09B2, U0982 ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; // shift, z to / // key { [ Shift_L ] }; key { [ U09DF, U09AF ] }; key { [ U09B6, U09DD ] }; key { [ U099A, U099B ] }; key { [ U0986, U098B ] }; key { [ U09AC, U09AD ] }; key { [ U09A8, U09A3 ] }; key { [ U09AE, U0999 ] }; key { [ comma, U09C3 ] }; key { [ U0964, U0981, U09BC ] }; key { [ U09CD, question ] }; key { [ U200C, U0965 ] }; // key { [ Control_L ] }; // key { [ space ] }; // modifier_map Shift { Shift_L }; // modifier_map Lock { Caps_Lock }; // modifier_map Control{ Control_L }; include "level3(ralt_switch)" include "rupeesign(4)" }; // Bangla Baishakhi, Bangla Baishakhi Inscript, Bangla Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal xkb_symbols "ben_baishakhi" { name[Group1]= "Bangla (India, Baishakhi)"; key { [ Escape ] }; // numbers key { [ 0x100200D, 0x100200C ] }; key { [ 0x10009E7, exclam ] }; key { [ 0x10009E8, at ] }; key { [ 0x10009E9, numbersign ] }; key { [ 0x10009EA, dollar, 0x10009F2 ] }; key { [ 0x10009EB, percent ] }; key { [ 0x10009EC, asciicircum, 0x10009D7 ] }; key { [ 0x10009ED, ampersand ] }; key { [ 0x10009EE, asterisk,0x10009FA ] }; key { [ 0x10009EF, parenleft ] }; key { [ 0x10009E6, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ BackSpace ] }; // tab, q to ] key { [ Tab, ISO_Left_Tab ] }; key { [ 0x10009A1, 0x10009A2 ] }; key { [ 0x10009C0 , 0x10009C2 ] }; key { [ 0x10009C7, 0x100098F, 0x1000990 ] }; key { [ 0x10009B0 , 0x10009C3, 0x100098B ] }; key { [ 0x100099F, 0x10009A0 ] }; key { [ 0x10009AF, 0x10009DF ] }; key { [ 0x10009C1, 0x1000989, 0x100098A ] }; key { [ 0x10009BF, 0x1000987, 0x1000988 ] }; key { [ 0x10009CB, 0x1000993, 0x1000994 ] }; key { [ 0x10009AA, 0x10009AB ] }; key { [ bracketleft, braceleft] }; key { [ bracketright, braceright ] }; key { [ Return ] }; // caps, a to ' // key { [ Caps_Lock ] }; key { [ 0x10009BE, 0x1000985, 0x1000986 ] }; key { [ 0x10009B8, 0x10009B6, 0x10009B7 ] }; key { [ 0x10009A6, 0x10009A7 ] }; key { [ 0x10009A4, 0x10009A5, 0x10009CE ] }; key { [ 0x1000997, 0x1000998 ] }; key { [ 0x10009CD, 0x10009B9, 0x1000983 ] }; key { [ 0x100099C, 0x100099D ] }; key { [ 0x1000995, 0x1000996 ] }; key { [ 0x10009B2, 0x1000964, 0x100098C ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; // shift, z to / // key { [ Shift_L ] }; key { [ 0x10009C8, 0x10009CC ] }; key { [ 0x10009DC, 0x10009DD ] }; key { [ 0x100099A, 0x100099B ] }; key { [ 0x10009F1, 0x10009F0 ] }; key { [ 0x10009AC, 0x10009AD ] }; key { [ 0x10009A8, 0x10009A3, 0x100099E ] }; key { [ 0x10009AE, 0x1000999, 0x1000981 ] }; key { [ comma, less ] }; key { [ period, greater,0x10009BC ] }; key { [ slash, question, 0x1000982 ] }; key { [ backslash, bar ] }; // third level with right-alt include "level3(ralt_switch)" // key { [ Control_L ] }; // key { [ space ] }; // modifier_map Shift { Shift_L }; // modifier_map Lock { Caps_Lock }; // modifier_map Control{ Control_L }; }; xkb_symbols "ben_inscript" { name[Group1]= "Bangla (India, Baishakhi Inscript)"; // Mainly numbers. key { [ 0x100200D, 0x100200C ] }; key { [ 0x10009E7 ] }; key { [ 0x10009E8 ] }; key { [ 0x10009E9 ] }; key { [ 0x10009EA ] }; key { [ 0x10009EB ] }; key { [ 0x10009EC ] }; key { [ 0x10009ED ] }; key { [ 0x10009EE ] }; key { [ 0x10009EF, parenleft ] }; key { [ 0x10009E6, parenright ] }; key { [ minus, 0x1000983 ] }; key { [ 0x10009C3, 0x100098B ] }; // Mainly long vowels key { [ 0x10009CC, 0x1000994 ] }; key { [ 0x10009C8, 0x1000990 ] }; key { [ 0x10009BE, 0x1000986 ] }; key { [ 0x10009C0, 0x1000988 ] }; key { [ 0x10009C2, 0x100098A ] }; // Mainly voiced consonants key { [ 0x10009AC, 0x10009AD ] }; key { [ 0x10009B9, 0x1000999 ] }; key { [ 0x1000997, 0x1000998 ] }; key { [ 0x10009A6, 0x10009A7 ] }; key { [ 0x100099C, 0x100099D ] }; key { [ 0x10009A1, 0x10009A2 ] }; key { [ 0x10009BC, 0x100099E ] }; // Mainly short vowels key { [ 0x10009CB, 0x1000993 ] }; key { [ 0x10009C7, 0x100098F ] }; key { [ 0x10009CD, 0x1000985 ] }; key { [ 0x10009BF, 0x1000987 ] }; key { [ 0x10009C1, 0x1000989 ] }; // Mainly unvoiced consonants key { [ 0x10009AA, 0x10009AB ] }; key { [ 0x10009B0, 0x10009DD ] }; key { [ 0x1000995, 0x1000996 ] }; key { [ 0x10009A4, 0x10009A5 ] }; key { [ 0x100099A, 0x100099B ] }; key { [ 0x100099F, 0x10009A0 ] }; key { [ backslash, bar ] }; key { [ 0x10009CE ] }; key { [ 0x1000982, 0x1000981 ] }; key { [ 0x10009AE, 0x10009A3 ] }; key { [ 0x10009A8, 0x10009A8 ] }; key { [ 0x10009AC, 0x10009AC ] }; key { [ 0x10009B2, 0x10009B2 ] }; key { [ 0x10009B8, 0x10009B6 ] }; key { [ comma, 0x10009B7 ] }; key { [ period, 0x1000964 ] }; key { [ 0x10009DF, 0x10009AF ] }; }; xkb_symbols "ben_gitanjali" { name[Group1]= "Bangla (India, Uni Gitanjali)"; key { [ Escape ] }; // numbers key { [ colon, question ] }; key { [ 0x10009E7, 0x10009CE ] }; key { [ 0x10009E8, apostrophe ] }; key { [ 0x10009E9, numbersign ] }; key { [ 0x10009EA, 0x10009F3 ] }; key { [ 0x10009EB, slash ] }; key { [ 0x10009EC, period ] }; key { [ 0x10009ED, ampersand ] }; key { [ 0x10009EE, asterisk ] }; key { [ 0x10009EF, parenleft ] }; key { [ 0x10009E6, parenright ] }; key { [ minus, 0x1000983 ] }; key { [ 0x10009C3, 0x100098B ] }; key { [ BackSpace ] }; // tab, q to ] key { [ Tab, ISO_Left_Tab ] }; key { [ 0x10009D7, 0x1000994 ] }; key { [ 0x10009C8, 0x1000990 ] }; key { [ 0x10009BE, 0x1000985 ] }; key { [ 0x10009C0, 0x1000988 ] }; key { [ 0x10009C2, 0x100098A ] }; key { [ 0x10009AC, 0x10009AD ] }; key { [ 0x10009B9, 0x1000999 ] }; key { [ 0x1000997, 0x1000998 ] }; key { [ 0x10009A6, 0x10009A7 ] }; key { [ 0x100099C, 0x100099D ] }; key { [ 0x10009A1, 0x10009A2 ] }; key { [ 0x100200C, 0x100099E ] }; key { [ Return ] }; // caps, a to ' // key { [ Caps_Lock ] }; key { [ 0x100200D, 0x1000993 ] }; key { [ 0x10009C7, 0x100098F ] }; key { [ 0x10009CD ] }; key { [ 0x10009BF, 0x1000987 ] }; key { [ 0x10009C1, 0x1000989 ] }; key { [ 0x10009AA, 0x10009AB ] }; key { [ 0x10009B0, 0x10009F0 ] }; key { [ 0x1000995, 0x1000996 ] }; key { [ 0x10009A4, 0x10009A5 ] }; key { [ 0x100099A, 0x100099B ] }; key { [ 0x100099F, 0x10009A0 ] }; // shift, z to / // key { [ Shift_L ] }; key { [ 0x10009C7, 0x100098F ] }; key { [ 0x1000982, 0x1000981 ] }; key { [ 0x10009AE, 0x10009A3 ] }; key { [ 0x10009A8, 0x10009DC ] }; key { [ 0x10009F1, 0x10009DD ] }; key { [ 0x10009B2 ] }; key { [ 0x10009B8, 0x10009B6 ] }; key { [ comma, 0x10009B7 ] }; key { [ 0x1000964, 0x10009FA ] }; key { [ 0x10009AF, 0x10009DF ] }; key { [ backslash, bar ] }; // third level with right-win // include "level3(lwin_switch)" // key { [ Control_L ] }; // key { [ space ] }; // modifier_map Shift { Shift_L }; // modifier_map Lock { Caps_Lock }; // modifier_map Control{ Control_L }; }; xkb_symbols "ben_bornona" { name[Group1]= "Bangla (India, Bornona)"; key { [ Escape ] }; // numbers key { [ 0x100200D, 0x100200C ] }; key { [ 0x10009E7, exclam ] }; key { [ 0x10009E8, 0x1000981 ] }; key { [ 0x10009E9, numbersign ] }; key { [ 0x10009EA, 0x10009F3 ] }; key { [ 0x10009EB, percent ] }; key { [ 0x10009EC, 0x1000983 ] }; key { [ 0x10009ED, 0x10009CE ] }; key { [ 0x10009EE, asterisk ] }; key { [ 0x10009EF, parenleft ] }; key { [ 0x10009E6, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ BackSpace ] }; // tab, q to ] key { [ Tab, ISO_Left_Tab ] }; key { [ 0x1000982, 0x1000999, 0x10009D7 ] }; key { [ 0x10009A2, 0x10009A0, 0x100098A ] }; key { [ 0x10009C7, 0x10009C8, 0x1000988 ] }; key { [ 0x10009B0, 0x10009C3, 0x100098B ] }; key { [ 0x10009A4, 0x100099F ] }; key { [ 0x10009A7, 0x10009A5, 0x100098F ] }; key { [ 0x10009C1, 0x10009C2, 0x1000989 ] }; key { [ 0x10009BF, 0x10009C0, 0x1000987 ] }; key { [ 0x10009CB, 0x10009CC, 0x1000993 ] }; key { [ 0x10009AA, 0x1000990, 0x1000994 ] }; key { [ 0x100005B, 0x100007B, 0x10009DC ] }; key { [ 0x100005D, 0x100007D ] }; key { [ Return ] }; // caps, a to ' // key { [ Caps_Lock ] }; key { [ 0x10009BE, 0x1000985, 0x10009F4 ] }; key { [ 0x10009B8, 0x10009B6, 0x10009F5 ] }; key { [ 0x10009A6, 0x10009A1, 0x10009F8 ] }; key { [ 0x10009AB ] }; key { [ 0x1000997, 0x1000998 ] }; key { [ 0x10009CD, 0x10009B9 ] }; key { [ 0x100099C, 0x100099D ] }; key { [ 0x1000995, 0x1000996 ] }; key { [ 0x10009B2, 0x1000964 ] }; key { [ semicolon, 0x100003A ] }; key { [ apostrophe, quotedbl ] }; // shift, z to / // key { [ Shift_L ] }; key { [ 0x10009AF, 0x10009DC ] }; key { [ 0x10009B7, 0x10009DD, 0x10009FA ] }; key { [ 0x100099A, 0x100099B ] }; key { [ 0x10009AD ] }; key { [ 0x10009AC, 0x10009DF ] }; key { [ 0x10009A8, 0x10009A3 ] }; key { [ 0x10009AE, 0x100099E ] }; key { [ comma, 0x100003C ] }; key { [ 0x100002E, 0x100003E ] }; key { [ 0x100002F, question ] }; key { [ 0x10009F1, 0x10009F0 ] }; // key { [ Control_L ] }; // key { [ space ] }; // modifier_map Shift { Shift_L }; // modifier_map Lock { Caps_Lock }; // modifier_map Control{ Control_L }; // third level with right-alt include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "guj" { name[Group1]= "Gujarati"; // Mainly numbers. key { [ U0AE7, U0A8D ] }; key { [ U0AE8, U0AC5 ] }; key { [ U0AE9 ] }; key { [ U0AEA ] }; key { [ U0AEB ] }; key { [ U0AEC ] }; key { [ U0AED ] }; key { [ U0AEE ] }; key { [ U0AEF, parenleft ] }; key { [ U0AE6, parenright ] }; key { [ minus, U0A83 ] }; key { [ U0A8B, U0AC3 ] }; // Mainly long vowels key { [ U0ACC, U0A94 ] }; key { [ U0AC8, U0A90 ] }; key { [ U0ABE, U0A86 ] }; key { [ U0AC0, U0A88 ] }; key { [ U0AC2, U0A8A ] }; // Mainly voiced consonants key { [ U0AAC, U0AAD ] }; key { [ U0AB9, U0A99 ] }; key { [ U0A97, U0A98 ] }; key { [ U0AA6, U0AA7 ] }; key { [ U0A9C, U0A9D ] }; key { [ U0AA1, U0AA2 ] }; key { [ U0ABC, U0A9E ] }; // Mainly short vowels key { [ U0ACB, U0A93 ] }; key { [ U0AC7, U0A8F ] }; key { [ U0ACD, U0A85 ] }; key { [ U0ABF, U0A87 ] }; key { [ U0AC1, U0A89 ] }; // Mainly unvoiced consonants key { [ U0AAA, U0AAB ] }; key { [ U0AB0, U0AB0 ] }; key { [ U0A95, U0A96 ] }; key { [ U0AA4, U0AA5 ] }; key { [ U0A9A, U0A9B ] }; key { [ U0A9F, U0AA0 ] }; key { [ U0AC9, U0A91 ] }; key { [ z , Z ] }; key { [ U0A82, U0A81 ] }; key { [ U0AAE, U0AA3 ] }; key { [ U0AA8, U0AA8 ] }; key { [ U0AB5, U0AB5 ] }; key { [ U0AB2, U0AB3 ] }; key { [ U0AB8, U0AB6 ] }; key { [ comma, U0AB7 ] }; key { [ period, U0964 ] }; key { [ U0AAF, question ] }; include "rupeesign(4)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "kan" { // Inscript layout for Kannada // Author : G Karunakar // Date : Wed Nov 13 17:22:58 IST 2002 // Kannada digits mapped in basic only name[Group1]= "Kannada"; key { [ U0cca, U0c92 ] }; key { [ U0ce7 ] }; key { [ U0ce8 ] }; key { [ U0ce9 ] }; key { [ U0cea ] }; key { [ U0ceb ] }; key { [ U0cec ] }; key { [ U0ced ] }; key { [ U0cee ] }; key { [ U0cef ] }; key { [ U0ce6 ] }; key { [ U0c83 ] }; key { [ U0cc3, U0c8b ] }; key { [ U0ccc, U0c94 ] }; key { [ U0cc8, U0c90 ] }; key { [ U0cbe, U0c86 ] }; key { [ U0cc0, U0c88 ] }; key { [ U0cc2, U0c8a ] }; key { [ U0cac, U0cad ] }; key { [ U0cb9, U0c99 ] }; key { [ U0c97, U0c98 ] }; key { [ U0ca6, U0ca7 ] }; key { [ U0c9c, U0c9d ] }; key { [ U0ca1, U0ca2 ] }; key { [ U0cbc, U0c9e ] }; key { [ U0ccb, U0c93 ] }; key { [ U0cc7, U0c8f ] }; key { [ U0ccd, U0c85 ] }; key { [ U0cbf, U0c87 ] }; key { [ U0cc1, U0c89 ] }; key { [ U0caa, U0cab ] }; key { [ U0cb0, U0cb1 ] }; key { [ U0c95, U0c96 ] }; key { [ U0ca4, U0ca5 ] }; key { [ U0c9a, U0c9b ] }; key { [ U0c9f, U0ca0 ] }; key { [ U0cc6, U0c8e ] }; key { [ U0c82 ] }; key { [ U0cae, U0ca3 ] }; key { [ U0ca8 ] }; key { [ U0cb5, U0cb4 ] }; key { [ U0cb2, U0cb3 ] }; key { [ U0cb8, U0cb6 ] }; key { [ comma , U0cb7 ] }; key { [ period ] }; key { [ U0caf, U0040 ] }; key { symbols[Group1] = [ Mode_switch, Multi_key ], virtualMods = AltGr }; include "rupeesign(4)" include "level3(ralt_switch)" }; // Description : A keymap for Malayalam // Encoding : Unicode (http://www.unicode.org) // Author : Baiju M // Date : Sat Aug 17 21:10:48 IST 2002 // Mapping: partial alphanumeric_keys xkb_symbols "mal" { name[Group1] = "Malayalam"; //From grave to backslash (\) key { [ U0d4a , U0d12 ] }; // svu: // These lines were in former "mal" variant - // but the digits are replaced with the ones from 'mal_plusnum' - // for the integrity of all Indian layouts // // key { [1 , exclam ] }; // key { [2 , at ] }; // key { [3 , numbersign ] }; // key { [4 , dollar ] }; // key { [5 , percent ] }; // key { [6 ,asciicircum ] }; // key { [7 , ampersand ] }; // key { [8 , asterisk ] }; // key { [9 , parenleft ] }; // key { [0 , parenright ] }; key { [ U0d67 , exclam ] }; key { [ U0d68 , at ] }; key { [ U0d69 , numbersign ] }; key { [ U0d6a , dollar ] }; key { [ U0d6b , percent ] }; key { [ U0d6c , asciicircum ] }; key { [ U0d6d , ampersand ] }; key { [ U0d6e , asterisk ] }; key { [ U0d6f , parenleft ] }; key { [ U0d66 , parenright ] }; key { [ minus , U0d03 ] }; key { [ U0d43 , U0d0b ] }; key { [U0200c, U05C ]};//bksl: ZWNJ // From 'q' to right bracket (]) key { [ U0d4c , U0d14 ] }; key { [ U0d48 , U0d10 ] }; key { [ U0d3e , U0d06 ] }; key { [ U0d40 , U0d08 ] }; key { [ U0d42 , U0d0a ] }; key { [ U0d2c , U0d2d ] }; key { [ U0d39 , U0d19 ] }; key { [ U0d17 , U0d18 ] }; key { [ U0d26 , U0d27 ] }; key { [ U0d1c , U0d1d ] }; key { [ U0d21 , U0d22 ] }; key { [ U0200d , U0d1e ] }; // From 'a' to apostrophe (') key { [ U0d4b , U0d13 ] }; key { [ U0d47 , U0d0f ] }; key { [ U0d4d , U0d05 ] }; key { [ U0d3f , U0d07 ] }; key { [ U0d41 , U0d09 ] }; key { [ U0d2a , U0d2b ] }; key { [ U0d30 , U0d31 ] }; key { [ U0d15 , U0d16 ] }; key { [ U0d24 , U0d25 ] }; key { [ U0d1a , U0d1b ] }; key { [ U0d1f , U0d20 ] }; // From 'z' to slash (/) key { [ U0d46 , U0d0e ] }; key { [ U0d02 , U200b ] };//X:ZWSP key { [ U0d2e , U0d23 ] }; key { [ U0d28 ] }; key { [ U0d35 , U0d34 ] }; key { [ U0d32 , U0d33 ] }; key { [ U0d38 , U0d36 ] }; key { [ comma , U0d37 ] }; key { [ period , U0200d ] }; key { [ U0d2f , question ] }; include "rupeesign(4)" include "level3(ralt_switch)" }; //Name : Lalitha //Description : A transliteration keyboard layout for Malayalam //Original Author : Noah Levitt //Current Main : Jinesh K.J, Swathantra Malayalam Computing (SMC) partial alphanumeric_keys xkb_symbols "mal_lalitha" { name[Group1] = "Malayalam (Lalitha)"; key.type="FOUR_LEVEL"; // Roman digits key { [ U0D4D, U0D02, apostrophe, asciitilde ] }; // apostrophe: virama(chandrakala),anusvara key { [ 1, exclam, U0D67, exclam ] }; key { [ 2, at, U0D68, at ] }; key { [ 3, numbersign, U0D69, numbersign ] }; key { [ 4, dollar, U0D6A ] }; key { [ 5, percent, U0D6B, percent ] }; key { [ 6, asciicircum, U0D6C, asciicircum ] }; key { [ 7, ampersand, U0D6D, ampersand ] }; key { [ 8, asterisk, U0D6E, asterisk ] }; key { [ 9, parenleft, U0D6F, parenleft ] }; key { [ 0, parenright, U0D66, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ U005C, U007C, U200C ] };//backslash:pipe,backslash,ZWNJ //Q Row key { [ U0D48, U0D4C, U0D10, U0D14 ] }; // Q: ai and au matras key { [ U0D35 ] }; // W: wa, OM key { [ U0D46, U0D47, U0D0E, U0D0F ] }; // E: e,ee matras key { [ U0D30, U0D31, U0D43, U0D0B ] }; // R: ra,rra, vocalic Ri key { [ U0D24, U0D25, U0D1F, U0D20 ] }; // T: tha, ttha,ta,tta key { [ U0D2f ] }; // Y: ya key { [ U0D41, U0D42, U0D09, U0D0A ] }; // U: u, uu matras key { [ U0D3F, U0D40, U0D07, U0D08 ] }; // I: i, ii matras key { [ U0D4A, U0D4B, U0D12, U0D13 ] }; // O: o, oo matras key { [ U0D2A ] }; // P: pa key { [ bracketleft, braceleft ] };//braceleft: key { [ bracketright, braceright ] };//braceright: //A Row key { [ U0D3E, U0D05, U0D06, U0D05 ] }; // A: a,aa key { [ U0D38, U0D37 ] }; // S: sa, ssa key { [ U0D26, U0D27, U0D21, U0D22 ] }; // D: soft da,soft dda,hard da,hard dda, key { [ U0D2B ] }; // F: pha key { [ U0D17, U0D18 ] }; // G: ga, gha key { [ U0D39, U0D03 ] }; // H: ha, visarg key { [ U0D1C, U0D1D ] }; // J: ja, jha key { [ U0D15, U0D16 ] }; // K: ka, kha key { [ U0D32, U0D33 ] }; // L: la, vocalic L or lru matra` key { [ semicolon, colon ] }; key { [apostrophe, quotedbl ] }; //Z Row key { [ U0D34, U0D36 ] }; // Z: sha,zha key { [ U0D4D, U200B ] }; // X: chandrakala,ZWSP key { [ U0D1A, U0D1B ] }; // C: ca, cha key { [ U0D35, U200D ] }; // V: va,ZWJ key { [ U0D2C, U0D2D ] }; // B: ba, bha key { [ U0D28, U0D23, U0D19, U0D1E ] }; // N: na, hard na,nga,nha key { [ U0D2E, U0D02 ] }; // M: ma key { [ comma, U003C ] };// comma: comma key { [ period, U003E ] }; // period: period key { [ slash, question ] }; // modifier_map Shift { Shift_L }; // modifier_map Lock { Caps_Lock }; // modifier_map Control{ Control_L }; // modifier_map Mod3 { Mode_switch }; include "level3(ralt_switch)" include "rupeesign(4)" }; partial alphanumeric_keys xkb_symbols "olck" { // Layout for the Ol Chiki script. // http://www.unicode.org/L2/L2005/05243r-n2984-ol-chiki.pdf (figure 9) name[Group1]= "Ol Chiki"; key { [ grave, U1C7B ] }; key { [ U1C51, exclam ] }; key { [ U1C52, at ] }; key { [ U1C53, numbersign ] }; key { [ U1C54, dollar, U20B9 ] }; key { [ U1C55, percent ] }; key { [ U1C56, asciicircum ] }; key { [ U1C57, ampersand ] }; key { [ U1C58, asterisk ] }; key { [ U1C59, parenleft ] }; key { [ U1C50, parenright ] }; key { [ minus, U1C7C ] }; key { [ equal, plus ] }; key { [ U1C67 ] }; key { [ U1C63 ] }; key { [ U1C6E ] }; key { [ U1C68 ] }; key { [ U1C74, U1C5B ] }; key { [ U1C6D ] }; key { [ U1C69 ] }; key { [ U1C64 ] }; key { [ U1C5A, U1C73 ] }; key { [ U1C6F ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ U1C7F, U1C7E ] }; key { [ U1C5F ] }; key { [ U1C65 ] }; key { [ U1C70, U1C6B ] }; key { [ U1C5D ] }; key { [ U1C5C ] }; key { [ U1C66, U1C77 ] }; key { [ U1C61 ] }; key { [ U1C60 ] }; key { [ U1C5E ] }; key { [ semicolon, U1C7A ] }; key { [ apostrophe, quotedbl ] }; key { [ U1C72 ] }; key { [ U1C7D ] }; key { [ U1C6A ] }; key { [ U1C76 ] }; key { [ U1C75 ] }; key { [ U1C71, U1C78 ] }; key { [ U1C62, U1C6C ] }; key { [ comma, less ] }; key { [ U1C79, greater ] }; key { [ slash, question ] }; key { symbols[Group1] = [ Mode_switch, Multi_key ], virtualMods = AltGr }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "ori" { // Inscript layout for Oriya // Author: G Karunakar // Date: Wed Nov 13 18:16:19 IST 2002 name[Group1]= "Oriya"; key { [ U0b67 ] }; key { [ U0b68 ] }; key { [ U0b69 ] }; key { [ U0b6a ] }; key { [ U0b6b ] }; key { [ U0b6c ] }; key { [ U0b6d ] }; key { [ U0b6e ] }; key { [ U0b6f ] }; key { [ U0b66 ] }; key { [ U0b03 ] }; key { [ U0b43, U0b0b ] }; key { [ U0b4c, U0b14 ] }; key { [ U0b48, U0b10 ] }; key { [ U0b3e, U0b06 ] }; key { [ U0b40, U0b08 ] }; key { [ U0b42, U0b0a ] }; key { [ U0b2c, U0b2d ] }; key { [ U0b39, U0b19 ] }; key { [ U0b17, U0b18 ] }; key { [ U0b26, U0b27 ] }; key { [ U0b1c, U0b1d ] }; key { [ U0b21, U0b22 ] }; key { [ U0b3c, U0b1e ] }; key { [ U0b4b, U0b13 ] }; key { [ U0b47, U0b0f ] }; key { [ U0b4d, U0b05 ] }; key { [ U0b3f, U0b07 ] }; key { [ U0b41, U0b09 ] }; key { [ U0b2a, U0b2b ] }; key { [ U0b30 ] }; key { [ U0b15, U0b16 ] }; key { [ U0b24, U0b25 ] }; key { [ U0b1a, U0b1b ] }; key { [ U0b1f, U0b20 ] }; key { [ U0b02, U0b01 ] }; key { [ U0b2e, U0b23 ] }; key { [ U0b28 ] }; key { [ U0b35 ] }; key { [ U0b32, U0b33 ] }; key { [ U0b38, U0b36 ] }; key { [ comma , U0b37 ] }; key { [ period ] }; key { [ U0b2f, U0040 ] }; key { symbols[Group1] = [ Mode_switch, Multi_key ], virtualMods = AltGr }; include "rupeesign(4)" include "level3(ralt_switch)" }; // based on a keyboard map from an 'xkb/symbols/tml' file // INSCRIPT partial alphanumeric_keys xkb_symbols "tam" { name[Group1]= "Tamil (Inscript)"; key { [ U0BCA, U0B92 ] }; // Mainly numbers. key { [ U0BE7 ] }; key { [ U0BE8 ] }; key { [ U0BE9 ] }; key { [ U0BEA ] }; key { [ U0BEB ] }; key { [ U0BEC ] }; key { [ U0BED ] }; key { [ U0BEE ] }; key { [ U0BEF, parenleft ] }; key { [ U0BF0, parenright ] }; key { [ U0BF1, U0B83 ] }; key { [ U0BF2, plus ] }; // Mainly long vowels key { [ U0BCC, U0B94 ] }; key { [ U0BC8, U0B90 ] }; key { [ U0BBE, U0B86 ] }; key { [ U0BC0, U0B88 ] }; key { [ U0BC2, U0B8A ] }; // Mainly voiced consonants key { [ U0BB9, U0B99 ] }; key { [ U0B9c ] }; key { [ U0B9E ] }; // Mainly short vowels key { [ U0BCB, U0B93 ] }; key { [ U0BC7, U0B8F ] }; key { [ U0BCD, U0B85 ] }; key { [ U0BBF, U0B87 ] }; key { [ U0BC1, U0B89 ] }; // Mainly unvoiced consonants key { [ U0BAA ] }; key { [ U0BB0, U0BB1 ] }; key { [ U0B95 ] }; key { [ U0BA4 ] }; key { [ U0B9A ] }; key { [ U0B9F ] }; key { [ U005C, U007C ] };//backslash-bar - Changed to Unicode key { [ U0BC6, U0B8E ] }; key { [ U0B82 ] }; key { [ U0BAE, U0BA3 ] }; key { [ U0BA8, U0BA9 ] }; key { [ U0BB5, U0BB4 ] }; key { [ U0BB2, U0BB3 ] }; key { [ U0BB8, U0BB6 ] }; key { [ comma, U0BB7 ] }; key { [ period, U0964 ] }; key { [ U0BAF, question ] }; include "level3(ralt_switch)" include "rupeesign(4)" }; partial alphanumeric_keys xkb_symbols "tam_tamilnet" { // Description: A keymap based on the TamilNet'99 typewriter keyboard // Encoding: Unicode (http://www.unicode.org) // Author: Thuraiappah Vaseeharan // Modifed by: Malathi S // Secondary contact: Sri Ramadoss M // Date : Fri Sep 4 11:32:00 CST 2009 // Mapping: name[Group1]= "Tamil (TamilNet '99)"; // granthas key { [ apostrophe, asciitilde ] }; key { [ U0031, exclam ] } ; key { [ U0032, at ] } ; key { [ U0033, numbersign ] } ; key { [ U0034, U0BF9 ] } ; key { [ U0035, percent ] } ; key { [ U0036, asciicircum ] } ; key { [ U0037, ampersand ] } ; key { [ U0038, asterisk ] } ; key { [ U0039, parenleft ] } ; key { [ U0030, parenright ] } ; key { [ minus, underscore ] }; key { [ equal, plus ] }; // Qrow key { [ U0B9E, U0BB6 ] }; key { [ U0BB1, U0BB7 ] }; key { [ U0BA8, U0BB8 ] }; key { [ U0B9A, U0BB9 ] }; key { [ U0BB5, U0B9C ] }; key { [ U0BB2 ] }; key { [ U0BB0 ] }; key { [ U0BC8, U0B90 ] }; key { [ U0BCA, U0BCB ] }; key { [ U0BBF, U0BC0 ] }; key { [ U0BC1, U0BC2 ] }; // Arow key { [ U0BAF ] }; key { [ U0BB3 ] }; key { [ U0BA9 ] }; key { [ U0B95 ] }; key { [ U0BAA ] }; key { [ U0BBE, U0BB4 ] }; key { [ U0BA4 ] }; key { [ U0BAE ] }; key { [ U0B9F ] }; key { [ U0BCD, U0B83 ] }; key { [ U0B99 ] }; // Zrow key { [ U0BA3 ] }; key { [ U0B92, U0B93 ] }; key { [ U0B89, U0B8A ] }; key { [ U0B8E, U0B8F ] }; key { [ U0BC6, U0BC7 ] }; key { [ U0B94, U0BCC ] }; key { [ U0B85, U0B86 ] }; key { [ U0B87, U0B88 ] }; }; partial alphanumeric_keys xkb_symbols "tam_tamilnet_with_tam_nums" { // Description: A keymap based on the TamilNet'99 typewriter keyboard // Encoding: Unicode (http://www.unicode.org) // Author: Malathi S // Secondary contact: Sri Ramadoss M // Date : Fri Sep 4 11:33:00 CST 2009 // Mapping: name[Group1]= "Tamil (TamilNet '99 with Tamil numerals)"; // Mainly numbers. key { [ apostrophe, asciitilde ] }; key { [ U0BE7, exclam ] }; key { [ U0BE8, at ] }; key { [ U0BE9, numbersign ] }; key { [ U0BEA, U0BF9 ] }; key { [ U0BEB, percent ] }; key { [ U0BEC, asciicircum ] }; key { [ U0BED, ampersand ] }; key { [ U0BEE, asterisk ] }; key { [ U0BEF, parenleft ] }; key { [ U0BE6, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; // Qrow key { [ U0B9E, U0BB6 ] }; key { [ U0BB1, U0BB7 ] }; key { [ U0BA8, U0BB8 ] }; key { [ U0B9a, U0BB9 ] }; key { [ U0BB5, U0B9c ] }; key { [ U0BB2 ] }; key { [ U0BB0 ] }; key { [ U0BC8, U0B90 ] }; key { [ U0BCA, U0BCB ] }; key { [ U0BBF, U0BC0 ] }; key { [ U0BC1, U0BC2 ] }; // Arow key { [ U0BAF ] }; key { [ U0BB3 ] }; key { [ U0BA9 ] }; key { [ U0B95 ] }; key { [ U0BAA ] }; key { [ U0BBE, U0BB4 ] }; key { [ U0BA4 ] }; key { [ U0BAE ] }; key { [ U0B9F ] }; key { [ U0BCD, U0B83 ] }; key { [ U0B99 ] }; // Zrow key { [ U0BA3 ] }; key { [ U0B92, U0B93 ] }; key { [ U0B89, U0B8A ] }; key { [ U0B8E, U0B8F ] }; key { [ U0BC6, U0BC7 ] }; key { [ U0B94, U0BCC ] }; key { [ U0B85, U0B86 ] }; key { [ U0B87, U0B88 ] }; }; partial alphanumeric_keys xkb_symbols "tam_tamilnet_TSCII" { // Description : A Tamil typewrite-style keymap // loosely based on TamilNet'99 reommendations // Encoding : TSCII (http://www.tscii.org) // Author : Thuraiappah Vaseeharan // Last Modified: Sat Jan 5 17:11:26 CST 2002 name[Group1]= "Tamil (TamilNet '99, TSCII encoding)"; key { [ 0x10000b7, 0x10000a4 ] }; // aytham key { [ 0x1000082, 0x10000a5 ] }; // shri key { [ 0x1000083, 0x1000088 ] }; // ja key { [ 0x1000084, 0x1000089 ] }; // sha key { [ 0x1000085, 0x100008a ] }; // sa key { [ 0x1000086, 0x100008b ] }; // ha key { [ 0x1000087, 0x100008c ] }; // ksha // Qrow key { [ 0x10000bb, 0x100009a ] }; // nja key { [ 0x10000c8, 0x10000da ] }; // Ra key { [ 0x10000bf, 0x10000d1 ] }; // NNa key { [ 0x10000ba, 0x10000cd ] }; // ca key { [ 0x10000c5, 0x10000d7 ] }; // va key { [ 0x10000c4, 0x10000d6 ] }; // la key { [ 0x10000c3, 0x10000d5 ] }; // ra key { [ 0x10000a8, 0x10000b3 ] }; // sangili, ai key { [ 0x10000ca, 0x10000cb ] }; // di, dI key { [ 0x10000a2, 0x10000a3 ] }; // visiri key { [ dead_acute, 0x10000a3 ] }; // Ukaaram // Arow key { [ 0x10000c2, 0x10000d4 ] }; // ya key { [ 0x10000c7, 0x10000d9 ] }; // La key { [ 0x10000c9, 0x10000db ] }; // na key { [ 0x10000b8, 0x10000cc ] }; // ka key { [ 0x10000c0, 0x10000d2 ] }; // pa key { [ dead_grave,0x10000a1 ] }; // pulli,aravu key { [ 0x10000be, 0x10000d0 ] }; // tha key { [ 0x10000c1, 0x10000d3 ] }; // ma key { [ 0x10000bc, 0x10000ce ] }; // da key { [ 0x10000c6, 0x10000d8 ] }; // zha key { [ 0x10000b9, 0x1000099 ] }; // nga // Zrow key { [ 0x10000bd, 0x10000cf ] }; // Na key { [ 0x10000b4, 0x10000b5 ] }; // o, O key { [ 0x10000af, 0x10000b0 ] }; // u, U key { [ 0x10000b1, 0x10000b2 ] }; // e, E key { [ 0x10000a6, 0x10000a7 ] }; // kombus key { [ 0x10000b6, 0x10000aa ] }; // au key { [ 0x10000ab, 0x10000ac ] }; // a, A key { [ 0x10000fe, 0x10000ae ] }; // i, I }; partial alphanumeric_keys xkb_symbols "tam_tamilnet_TAB" { // Description: A keymap based on the TamilNet'99 typewriter keyboard // Encoding: TAB (http://www.tamilnet99.org) // Author: Thuraiappah Vaseeharan // Date : Sun Aug 12 02:23:00 CDT 2001 name[Group1]= "Tamil (TamilNet '99, TAB encoding)"; // numeral row key { [ 0x10000e7, 0x10000a7 ] } ; key { [ 0x10000fa, 0x10000a8 ] } ; key { [ 0x10000fb ] } ; key { [ 0x10000fc ] } ; key { [ 0x10000fd ] } ; key { [ 0x10000fe ] } ; key { [ 0x10000ff ] } ; // q-row key { [ 0x10000eb, 0x10000b3 ] }; key { [ 0x10000f8, 0x10000c1 ] }; key { [ 0x10000ef, 0x10000b8 ] }; key { [ 0x10000ea, 0x10000b2 ] }; key { [ 0x10000f5, 0x10000be ] }; key { [ 0x10000f4, 0x10000bd ] }; key { [ 0x10000f3, 0x10000bc ] }; key { [ 0x10000ac, 0x10000e4 ] }; key { [ 0x10000ae, 0x10000af ] }; key { [ 0x10000a4, 0x10000a6 ] }; key { [ dead_circumflex, 0x10000a6 ] }; // Ukaaram // a-row key { [ 0x10000f2, 0x10000bb ] }; key { [ 0x10000f7, 0x10000c0 ] }; key { [ 0x10000f9, 0x10000c2 ] }; key { [ 0x10000e8, 0x10000b0 ] }; key { [ 0x10000f0, 0x10000b9 ] }; key { [ 0x10000a2, 0x10000a3 ] }; key { [ 0x10000ee, 0x10000b6 ] }; key { [ 0x10000f1, 0x10000ba ] }; key { [ 0x10000ec, 0x10000b4 ] }; key { [ 0x10000f6, 0x10000bf ] }; key { [ 0x10000e9, 0x10000b1 ] }; // z-row key { [ 0x10000ed, 0x10000b5 ] }; key { [ 0x10000e5, 0x10000e6 ] }; key { [ 0x10000e0, 0x10000e1 ] }; key { [ 0x10000e2, 0x10000e3 ] }; key { [ 0x10000aa, 0x10000ab ] }; key { [ 0x10000ac, 0x10000a3 ] }; key { [ 0x10000dc, 0x10000dd ] }; key { [ 0x10000de, 0x10000df ] }; }; partial alphanumeric_keys xkb_symbols "tel" { // Inscript layout for Telugu using Unicode // Author: G Karunakar // Date: // See layout at http://www.indlinux.org/keymap/telugu.php name[Group1]= "Telugu"; key { [ U0c4a, U0c12 ] }; key { [ U0c67 ] }; key { [ U0c68 ] }; key { [ U0c69, numbersign ] }; key { [ U0c6a, dollar ] }; key { [ U0c6b, percent ] }; key { [ U0c6c, asciicircum ] }; key { [ U0c6d, ampersand ] }; key { [ U0c6e, asterisk ] }; key { [ U0c6f, parenleft ] }; key { [ U0c66, parenright ] }; key { [ U0c03, underscore ] }; key { [ U0c43, U0c0b ] }; key { [ BackSpace ] }; key { [ U0c4c, U0c14 ] }; key { [ U0c48, U0c10 ] }; key { [ U0c3e, U0c06 ] }; key { [ U0c40, U0c08 ] }; key { [ U0c42, U0c0a ] }; key { [ U0c2c, U0c2d ] }; key { [ U0c39, U0c19 ] }; key { [ U0c17, U0c18 ] }; key { [ U0c26, U0c27 ] }; key { [ U0c1c, U0c1d ] }; key { [ U0c21, U0c22 ] }; key { [ U0c1e ] }; key { [ U0c4b, U0c13 ] }; key { [ U0c47, U0c0f ] }; key { [ U0c4d, U0c05 ] }; key { [ U0c3f, U0c07 ] }; key { [ U0c41, U0c09 ] }; key { [ U0c2a, U0c2b ] }; key { [ U0c30, U0c31 ] }; key { [ U0c15, U0c16 ] }; key { [ U0c24, U0c25 ] }; key { [ U0c1a, U0c1b ] }; key { [ U0c1f, U0c20 ] }; key { [ U0c46, U0c0e ] }; key { [ U0c02, U0c01 ] }; key { [ U0c2e, U0c23 ] }; key { [ U0c28 ] }; key { [ U0c35 ] }; key { [ U0c32, U0c33 ] }; key { [ U0c38, U0c36 ] }; key { [ comma , U0c37 ] }; key { [ period ] }; key { [ U0c2f, U0040 ] }; key { symbols[Group1] = [ Mode_switch, Multi_key ], virtualMods = AltGr }; include "rupeesign(4)" include "level3(ralt_switch)" }; //Name : Sarala //Description : This is an adaptation of the Sarala keyboard (http://www.medhajananam.org/sarala/) developed // by Krishna Dhullipalla. Because of the way keyboard shortcuts are laid out in KDE, the keyboard // modifiers had to be changed. The layout does not take any part of the original Sarala keyboard // code however. It has been developed from scratch, so the experience may differ. // // There is a ibus-m17n version of Sarala layout developed by Satya Pothamsetti on // http://www.medhajananam.org/. //Standard : Supports Unicode 9.0. //Help : This layout differs slightly from the layout on Medhajenanam. The layout has been depicted in the // pdf file attached to this post on Sarala google group. // (https://groups.google.com/forum/#!topic/sarala-keyboard/-gsa90dUFcs). // //Layout Developed by : Krishna Dhullipalla (http://www.medhajananam.org/) //Author : Venkat R Akkineni //Date : Apr 28 2017 partial alphanumeric_keys xkb_symbols "tel-sarala" { name[Group1] = "Telugu (Sarala)"; key.type="FOUR_LEVEL"; // sequence base, shift, alt, alt + shift key { [ U0C4A, U0C12 ] }; // ొ ఒ key { [ U0C42, U0C0A ] }; // ూ ఊ key { [ U0C21, U0C22 ] }; // డ ఢ key { [ U0C35, U0C39 ] }; // వ హ key { [ U0C2C, U0C2D ] }; // బ భ key { [ U0C28, U0C23 ] }; // న ణ key { [ U0C2E, U0C01 ] }; // మ ఁ key { [ U002C, U0C1E, leftcaret ] }; // , ఞ < key { [ U002E, U0C19, rightcaret ] }; // . ఙ > key { [ U0C36, question, KP_Divide ] }; // శ ? / key { [ U0C2F, U0C3D ] }; // య ఽ key { [ U0C02, U0C03 ] }; // ం ః key { [ U0C26, U0C27 ] }; // ద ధ key { [ U0C4D, U0C05 ] }; // ్ అ key { [ U0C17, U0C18 ] }; // గ ఘ key { [ U0C1A, U0C1B, U0C58, U0C59 ] }; // చ ఛ ౘ ౙ key { [ U0C3E, U0C06 ] }; // ా ఆ key { [ U0C15, U0C16, U0C62, U0C63 ] }; // క ఖ ౢ ౣ key { [ U0C32, U0C33, U0C0C, U0C61 ] }; // ల ళ ఌ ౡ key { [ U0C1F, U0C20, semicolon, colon ] }; // ట ఠ ; : key { [ quoteright, quotedbl ] }; // ' " key { [ U0C46, U0C0E, U0C44, U0C34 ] }; // ె ఎ ౄ ఴ key { [ U0C38, U0C37, U0C44 ] }; // స ష ౄ key { [ U0C47, U0C0F, U0C44 ] }; // ే ఏ ౄ key { [ U0C30, U0C31, U0C44, U0C60 ] }; // ర ఱ ౄ ౠ key { [ U0C24, U0C25 ] }; // త థ key { [ U0C40, U0C08 ] }; // ీ ఈ key { [ U0C41, U0C09 ] }; // ు ఉ key { [ U0C3F, U0C07 ] }; // ి ఇ key { [ U0C4B, U0C13 ] }; // ో ఓ key { [ U0C2A, U0C2B ] }; // ప ఫ key { [ U0C1C, U0C1D, bracketleft, braceleft ] }; // జ ఝ [ { key { [ U0C48, U0C10, bracketright, braceright ] }; // ై ఐ ] } key { [ KP_1, exclam, U0C67, U0C78 ] }; // 1 ! ౦ ౸ key { [ KP_2, at, U0C68, U0C79 ] }; // 2 @ ౨ ౹ key { [ KP_3, numbersign, U0C69, U0C7A ] }; // 3 # ౩ ౺ key { [ KP_4, dollar, U0C6A, U0C7B ] }; // 4 $ ౪ ౻ key { [ KP_5, percent, U0C6B, U0C7C ] }; // 5 % ౫ ౼ key { [ KP_6, asciicircum, U0C6C, U0C7D ] }; // 6 ^ ౬ ౽ key { [ KP_7, ampersand, U0C6D, U0C7E ] }; // 7 & ౭ ౾ key { [ KP_8, KP_Multiply, U0C6E, U0C7F ] }; // 8 * ౮ ౿ key { [ KP_9, U0028, U0C6F, U20B9 ] }; // 9 ( ౯ ₹ key { [ KP_0, U0029, U0C66, U0C55 ] }; // 0 ) ౦ ౕ key { [ KP_Subtract, underbar, NoSymbol, U0C56 ] }; // - _ ౖ key { [ KP_Equal, KP_Add ] }; // = + key { [ U0C4C, U0C14, U0964, U0965 ] }; // ౌ ఔ । ॥ key { [ U0C43, U0C0B, quoteleft, asciitilde ] }; // ృ ఋ ` ~ include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "urd-phonetic" { include "pk(urd-phonetic)" name[Group1]= "Urdu (phonetic)"; }; partial alphanumeric_keys xkb_symbols "urd-phonetic3" { include "pk(urd-crulp)" name[Group1]= "Urdu (alt. phonetic)"; }; partial alphanumeric_keys xkb_symbols "urd-winkeys" { include "pk(urd-nla)" name[Group1]= "Urdu (Win keys)"; }; // based on a keyboard map from an 'xkb/symbols/gur' file partial alphanumeric_keys xkb_symbols "guru" { name[Group1]= "Punjabi (Gurmukhi)"; // Mainly numbers. key { [ U0A67 ] }; key { [ U0A68 ] }; key { [ U0A69, U0A71 ] }; key { [ U0A6A, U0A74 ] }; key { [ U0A6B, U262C ] }; key { [ U0A6C ] }; key { [ U0A6D ] }; key { [ U0A6e ] }; key { [ U0A6F, parenleft ] }; key { [ U0A66, parenright ] }; key { [ U0A03 ] }; key { [ equal, plus ] }; // Mainly long vowels key { [ U0A4C, U0A14 ] }; key { [ U0A48, U0A10 ] }; key { [ U0A3E, U0A06 ] }; key { [ U0A40, U0A08 ] }; key { [ U0A42, U0A0A ] }; // Mainly voiced consonants key { [ U0A2C, U0A2D ] }; key { [ U0A39, U0A19 ] }; key { [ U0A17, U0A18 ] }; key { [ U0A26, U0A27 ] }; key { [ U0A1C, U0A1D ] }; key { [ U0A21, U0A22 ] }; key { [ U0A3C, U0A1E ] }; // Mainly short vowels key { [ U0A4B, U0A13 ] }; key { [ U0A47, U0A0F ] }; key { [ U0A4D, U0A05 ] }; key { [ U0A3F, U0A07 ] }; key { [ U0A41, U0A09 ] }; // Mainly unvoiced consonants key { [ U0A2A, U0A2B ] }; key { [ U0A30, U0A5C ] }; key { [ U0A15, U0A16 ] }; key { [ U0A24, U0A25 ] }; key { [ U0A1A, U0A1B ] }; key { [ U0A1F, U0A20 ] }; key { [ U005C, U007C ] }; key { [ z, U0A01 ] }; key { [ U0A02, U0A70, U0A71 ] }; key { [ U0A2E, U0A23 ] }; key { [ U0A28, U0A28 ] }; key { [ U0A35, U0A35 ] }; key { [ U0A32, U0A33 ] }; key { [ U0A38, U0A36 ] }; key { [ comma, less ] }; key { [ period, U0964 ] }; key { [ U0A2F, question ] }; include "rupeesign(4)" include "level3(ralt_switch)" }; //Name : Jhelum (Refind Inscript) //Description : A Jhelum keyboard layout for Gurmukhi (Punjabi) // http://www.satluj.org/Jhelum.html //Modified for Inscript to make //Original Author : Amanpreet Singh Alam { [ apostrophe, asciitilde, U0A02,U0A01 ] }; // apostrophe: anusvara, candrabindu key { [ 1,exclam, U0A67, exclam ] }; key { [ 2,at, U0A68, at ] }; key { [ 3,numbersign, U0A69, numbersign ] }; key { [ 4,dollar, U0A6A ] }; key { [ 5,percent,U0A6B, percent ] }; key { [ 6,U0A73, U0A6C,asciicircum ] }; key { [ 7,U0A72,U0A6D,ampersand ] }; key { [ 8,asterisk,U0A6E, asterisk ] }; key { [ 9,parenleft,U0A6F,parenleft ] }; key { [ 0,parenright,U0A66,parenright ] }; key { [ minus,underscore] }; key { [ equal,plus] }; key { [ U0964,U0965,U007C,U005C] }; //pipe : danda, double danda //Q Row key { [ U0A4C, U0A14 ] }; // Q: oo, ooh key { [ U0A48, U0A10 ] }; // W: ee, ae key { [ U0A3E, U0A06 ] }; // E: a, aa key { [ U0A40, U0A08, U20B9 ] }; // R: ee, ai, rupeesign key { [ U0A42, U0A0A ] }; // T: u, uu key { [ U0A30, U0A5C ] }; // Y: ra, raa key { [ U0A26, U0A27 ] }; // U: tha, thha key { [ U0A17, U0A18, U0A5A ] }; // I:ga, gha key { [ U0A24, U0A1F ] }; // O: ta, tha key { [ U0A2A, U0A5E, VoidSymbol,U0A5E ] }; // P: pa, pha key { [ U0A21, U0A22, bracketleft, braceleft ] }; key { [ U0A19, U0A1E, bracketright, braceright ] }; //A Row key { [ U0A4B, U0A13 ] }; // A: o, oo key { [ U0A47, U0A0F ] }; // S: e, ee key { [ U0A4D, U0A05 ] }; // D: halant, aa key { [ U0A3F, U0A07 ] }; // F: i, aa key { [ U0A41, U0A09 ] }; // G: u, uh key { [ U0A39, U0A20 ] }; // H: ha, thha key { [ U0A1C, U0A1D, U0A5B ] }; // J: ja, jha key { [ U0A15, U0A16,VoidSymbol ,U0A59 ] }; // K: ka, kha key { [ U0A32, U0A25, U0A33 ] }; // L: la, tha key { [ U0A38, colon, U0A36 ] }; //; sa key { [apostrophe, quotedbl ] }; //Z Row key { [ U0A71, U0A3C ] }; // Z: addak, par bindi key { [ U0A02, U0A70 ] }; // X: bindi, tippi key { [ U0A1A, U0A1B ] }; // C: ca, cha key { [ U0A35, U0A2F ] }; // V: va, ya key { [ U0A2C, U0A2D ] }; // B: ba, bha key { [ U0A28, U0A23 ] }; // N: na, nha key { [ U0A2E, U0A2E ] }; // M: ma key { [ comma, U262C ] };// comma: comma, dev abbreviation sign key { [ period, U0A74 ] }; // period: period, nukta key { [ slash, question ] }; // modifier_map Shift { Shift_L }; // modifier_map Lock { Caps_Lock }; // modifier_map Control{ Control_L }; // modifier_map Mod3 { Mode_switch }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc" { // Contact: Walter Bender include "in(deva)" key { [ U094A, U0912 ] }; // DEVANAGARI VOWEL SIGN SHORT O; DEVANAGARI LETTER SHORT O key { [ U0967, U090D ] }; // DEVANAGARI DIGIT ONE; DEVANAGARI LETTER CANDRA E key { [ U0968, U0945 ] }; // DEVANAGARI DIGIT TWO; DEVANAGARI VOWEL SIGN CANDRA E key { [ U0969 ] }; // DEVANAGARI DIGIT THREE; key { [ U096A ] }; // DEVANAGARI DIGIT FOUR; key { [ U096B ] }; // DEVANAGARI DIGIT FIVE; key { [ U096C ] }; // DEVANAGARI DIGIT SIX; key { [ U096D ] }; // DEVANAGARI DIGIT SEVEN; key { [ U096E ] }; // DEVANAGARI DIGIT EIGHT; key { [ U096F, parenleft ] }; // DEVANAGARI DIGIT NINE; key { [ U0966, parenright ] }; // DEVANAGARI DIGIT ZERO; key { [ minus, U0903 ] }; // DEVANAGARI SIGN VISARGA; key { [ U0943, U090B ] }; // DEVANAGARI VOWEL SIGN VOCALIC R; DEVANAGARI LETTER VOCALIC R key { [ U094C, U0914 ] }; // DEVANAGARI VOWEL SIGN AU; DEVANAGARI LETTER AU key { [ U0948, U0910 ] }; // DEVANAGARI VOWEL SIGN AI; DEVANAGARI LETTER AI key { [ U093E, U0906 ] }; // DEVANAGARI VOWEL SIGN AA; DEVANAGARI LETTER AA key { [ U0940, U0908 ] }; // DEVANAGARI VOWEL SIGN II; DEVANAGARI LETTER II key { [ U0942, U090A ] }; // DEVANAGARI VOWEL SIGN UU; DEVANAGARI LETTER UU key { [ U092C, U092D ] }; // DEVANAGARI LETTER BA; DEVANAGARI LETTER BHA key { [ U0939, U0919 ] }; // DEVANAGARI LETTER HA; DEVANAGARI LETTER NGA key { [ U0917, U0918 ] }; // DEVANAGARI LETTER GA; DEVANAGARI LETTER GHA key { [ U0926, U0927 ] }; // DEVANAGARI LETTER DA; DEVANAGARI LETTER DHA key { [ U091C, U091D ] }; // DEVANAGARI LETTER JA; DEVANAGARI LETTER JHA key { [ U0921, U0922 ] }; // DEVANAGARI LETTER DDA; DEVANAGARI LETTER DDHA key { [ U093C, U091E ] }; // DEVANAGARI SIGN NUKTA; DEVANAGARI LETTER NYA key { [ U0949, U0911 ] }; // DEVANAGARI VOWEL SIGN CANDRA O; DEVANAGARI LETTER CANDRA O key { [ U094B, U0913 ] }; // DEVANAGARI VOWEL SIGN O; DEVANAGARI LETTER O key { [ U0947, U090F ] }; // DEVANAGARI VOWEL SIGN E; DEVANAGARI LETTER E key { [ U094D, U0905 ] }; // DEVANAGARI SIGN VIRAMA; DEVANAGARI LETTER A key { [ U093F, U0907 ] }; // DEVANAGARI VOWEL SIGN I; DEVANAGARI LETTER I key { [ U0941, U0909 ] }; // DEVANAGARI VOWEL SIGN U; DEVANAGARI LETTER U key { [ U092A, U092B ] }; // DEVANAGARI LETTER PA; DEVANAGARI LETTER PHA key { [ U0930, U0931 ] }; // DEVANAGARI LETTER RA; DEVANAGARI LETTER RRA key { [ U0915, U0916 ] }; // DEVANAGARI LETTER KA; DEVANAGARI LETTER KHA key { [ U0924, U0925 ] }; // DEVANAGARI LETTER TA; DEVANAGARI LETTER THA key { [ U091A, U091B ] }; // DEVANAGARI LETTER CA; DEVANAGARI LETTER CHA key { [ U091F, U0920 ] }; // DEVANAGARI LETTER TTA; DEVANAGARI LETTER TTHA key { [ U0946, U090E ] }; // DEVANAGARI VOWEL SIGN SHORT E; DEVANAGARI LETTER SHORT E key { [ U0902, U0901 ] }; // DEVANAGARI SIGN ANUSVARA; DEVANAGARI SIGN CANDRABINDU key { [ U092E, U0923 ] }; // DEVANAGARI LETTER MA; DEVANAGARI LETTER NNA key { [ U0928, U0929 ] }; // DEVANAGARI LETTER NA; DEVANAGARI LETTER NNNA key { [ U0935, U0934 ] }; // DEVANAGARI LETTER VA; DEVANAGARI LETTER LLLA key { [ U0932, U0933 ] }; // DEVANAGARI LETTER LA; DEVANAGARI LETTER LLA key { [ U0938, U0936 ] }; // DEVANAGARI LETTER SA; DEVANAGARI LETTER SHA key { [ comma, U0937 ] }; // DEVANAGARI LETTER SSA key { [ period, U0964 ] }; // DEVANAGARI DANDA key { [ U092F, U095F ] }; // DEVANAGARI LETTER YA; DEVANAGARI LETTER YYA // space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ): include "nbsp(zwnj3zwj4)" include "group(olpc)" include "rupeesign(4)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "hin-wx" { name[Group1]= "Hindi (Wx)"; key { [ grave, asciitilde, 2, 3 ] }; key { [ 0x1000967, exclam ] }; key { [ 0x1000968, at ] }; key { [ 0x1000969 , numbersign ] }; key { [ 0x100096A , dollar ] }; key { [ 0x100096B , percent ] }; key { [ 0x100096C , asciicircum ] }; key { [ 0x100096D , ampersand ] }; key { [ 0x100096e , asterisk ] }; key { [ 0x100096F, parenleft ] }; key { [ 0x1000966, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ 0x1000943, 0x1000944, 0x100090B, 0x1000960] }; key { [ 0x1000924, 0x1000925 ] }; key { [ 0x1000947, 0x1000948, 0x100090F, 0x1000910] }; key { [ 0x1000930, 0x1000937 ] }; key { [ 0x100091F, 0x1000920 ] }; key { [ 0x100092F ] }; key { [ 0x1000941, 0x1000942, 0x1000909, 0x100090A ] }; key { [ 0x100093F, 0x1000940, 0x1000907, 0x1000908 ] }; key { [ 0x100094B, 0x100094C, 0x1000913, 0x1000914] }; key { [ 0x100092A, 0x100092B ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ backslash, bar, 0x1000964, 0x1000965 ] }; key { [ 0x100094D, 0x100093E, 0x1000905,0x1000906 ] }; key { [ 0x1000938, 0x1000936 ] }; key { [ 0x1000921, 0x1000922 ] }; key { [ 0x1000919, 0x100091E ] }; key { [ 0x1000917, 0x1000918 ] }; key { [ 0x1000939, 0x1000903 ] }; key { [ 0x100091C, 0x100091D ] }; key { [ 0x1000915, 0x1000916 ] }; key { [ 0x1000932, 0x1000962, 0x1000933, 0x100090C] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ 0x1000901, 0x100093C, 0x100093D, 0x1000950] }; key { [ 0x1000926, 0x1000927 ] }; key { [ 0x100091A, 0x100091B ] }; key { [ 0x1000935 ] }; key { [ 0x100092C, 0x100092D ] }; key { [ 0x1000928, 0x1000923 ] }; key { [ 0x100092E, 0x1000902 ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; include "level3(ralt_switch)" include "rupeesign(4)" }; partial alphanumeric_keys xkb_symbols "eng" { include "us(basic)" name[Group1]= "English (India, with rupee)"; include "rupeesign(4)" include "level3(ralt_switch)" }; // Description : Enhanced INSCRIPT keymap for Malayalam // Encoding : Unicode (http://www.unicode.org) // Author : Mahesh T Pai // Date : March, 2011 // Source : http://www.nongnu.org/smc/docs/images/ml_inscript_layout.jpg // Comment : Based on the Inscript Keyboard created by M Baiju // Mapping: partial alphanumeric_keys xkb_symbols "mal_enhanced" { name[Group1] = "Malayalam (enhanced Inscript, with rupee)"; //From grave to backslash (\) key { [ U0d4a , U0d12 ] }; key { [ U0d67 , exclam ] }; key { [ U0d68 , at ] }; key { [ U0d69 , numbersign ] }; key { [ U0d6a , dollar ] }; key { [ U0d6b , percent ] }; key { [ U0d6c , asciicircum ] }; key { [ U0d6d , ampersand ] }; key { [ U0d6e , U0d7e ] }; key { [ U0d6f , parenleft ] }; key { [ U0d66 , parenright ] }; key { [ minus , U0d03 ] }; key { [ U0d43 , U0d0b ] }; key { [ U0d7c , U05C ] }; //bksl: chillu RR // From 'q' to right bracket (]) key { [ U0d57 , U0d14 ] }; key { [ U0d48 , U0d10 ] }; key { [ U0d3e , U0d06 ] }; key { [ U0d40 , U0d08 ] }; key { [ U0d42 , U0d0a ] }; key { [ U0d2c , U0d2d ] }; key { [ U0d39 , U0d19 ] }; key { [ U0d17 , U0d18 ] }; key { [ U0d26 , U0d27 ] }; key { [ U0d1c , U0d1d ] }; key { [ U0d21 , U0d22 ] }; key { [ U0200d , U0d1e ] }; // From 'a' to apostrophe (') key { [ U0d4b , U0d13 ] }; key { [ U0d47 , U0d0f ] }; key { [ U0d4d , U0d05 ] }; key { [ U0d3f , U0d07 ] }; key { [ U0d41 , U0d09 ] }; key { [ U0d2a , U0d2b ] }; key { [ U0d30 , U0d31 ] }; key { [ U0d15 , U0d16 ] }; key { [ U0d24 , U0d25 ] }; key { [ U0d1a , U0d1b ] }; key { [ U0d1f , U0d20 ] }; // From 'z' to slash (/) key { [ U0d46 , U0d0e ] }; key { [ U0d02 , U0d7a ] }; key { [ U0d2e , U0d23 ] }; key { [ U0d28 , U0d7b ] }; key { [ U0d35 , U0d34 ] }; key { [ U0d32 , U0d33 ] }; key { [ U0d38 , U0d36 ] }; key { [ comma , U0d37 ] }; key { [ period , U0d7d ] }; //chillu l key { [ U0d2f , question ] }; include "rupeesign(4)" include "level3(ralt_switch)" }; // ---- BEGIN Hindi KaGaPa phonetic ---- // Name: KaGaPa phonetic // Brief: Devanagari layout (Hindi, Sanskrit, Nepali, Marathi, etc.) // Diagram: (Original)[http://baraha.com/help/Keyboards/dev_brhkbd.htm] // (This layout)[http://bdsatish.in/lang/dev-kagapa.png] // // Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout) // which is a modified layout of the specification by Dr. K. P. Rao. // This is a phonetic layout with the following features: // [1] All letters are mapped to phonetically-similar English keys // as much as possible. // [2] The independent vowel (svara) and its dependent vowel (maatra) // use the same key (depending upon SHIFT, ALTGR or ALTGR + SHIFT). // [3] Consonant conjuncts are produced by explicitly invoking the // 'viraama' (key f). The 'short a' maatra is implicit in all // consonants. // [4] Zero width non-joiner and joiner are on keys 6 and 7 // respectively. These are absolutely essential for alternative // glyph renderings of consonant half-forms. // [5] Rigvedic accent marks, visarga variants. // // Author: Satish BD // partial alphanumeric_keys xkb_symbols "hin-kagapa" { name[Group1] = "Hindi (KaGaPa phonetic)"; key.type="FOUR_LEVEL"; // Roman digits key { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark key { [ 1, exclam, U0967 ] }; key { [ 2, at, U0968, U20A8 ] }; // U20A8: generic rupee sign (Rs) key { [ 3, numbersign, U0969 ] }; key { [ 4, dollar, U096A, U20B9 ] }; // U20B9: new Indian rupee sign key { [ 5, percent, U096B ] }; key { [ 6, asciicircum, U096C, U200C ] }; // ZWNJ key { [ 7, ampersand, U096D, U200D ] }; // ZWJ key { [ 8, asterisk, U096E, U0901 ] }; // U0901: Devanagari candrabindu key { [ 9, parenleft, U096F ] }; key { [ 0, parenright, U0966, U0970 ] }; // U0970: Devanagari abbreviation sign key { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta key { [ equal, plus ] }; key { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda //Q Row key { [ U091F, U0920 ] }; // Q: retroflex Ta, Tha key { [ U0921, U0922, U095C, U095D ] }; // W: retroflex Da, Dha, Da-nukta, Dha-nukta key { [ U0946, U0947, U090E, U090F ] }; // E: matras, short E, long E key { [ U0930, U0943, U090B, U0931 ] }; // R: ra, vocalic R matra, vocalic R, ra-nukta key { [ U0924, U0925 ] }; // T: dental ta, tha key { [ U092F, U0948, U0910, U095F ] }; // Y: ya, ai matra, ai, ya-nukta key { [ U0941, U0942, U0909, U090A ] }; // U: matras, u, uu key { [ U093F, U0940, U0907, U0908 ] }; // I: matras, i, ii key { [ U094A, U094B, U0912, U0913 ] }; // O: matras, short o, long o key { [ U092A, U092B, U095E ] }; // P: pa, pha, pha-nukta key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; //A Row key { [ U093E, U0906, U0905, U0972 ] }; // A: aa matra, aa, short a, candra a key { [ U0938, U0936 ] }; // S: sa, sha key { [ U0926, U0927 ] }; // D: dental da, dha key { [ U094D, U0944, U0960 ] }; // F: virama, vocalic RR matra, vocalic RR key { [ U0917, U0918, U095A ] }; // G: ga, gha, ga-nukta key { [ U0939, U0903, U1CF5, U1CF6 ] }; // H: ha, visarga, jihvamuliya, upadhmaniya key { [ U091C, U091D, U095B ] }; // J: ja, jha, ja-nukta key { [ U0915, U0916, U0958, U0959 ] }; // K: ka, kha, ka-nukta, kha-nukta key { [ U0932, U0933, U0962, U090C ] }; // L: la, lla, vocalic L matra, vocalic L key { [ semicolon, colon, U1CF2, U1CF3 ] }; // U1CF2/3: ardhavisarga/rotated ardhavisarga key { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta // U201D: Right double quotation mark //Z Row key { [ U091E, U0919 ] }; // Z: nya, nga key { [ U0937, U093C, U0934 ] }; // X: ssa, nukta below, lla-nukta key { [ U091A, U091B ] }; // C: ca, cha key { [ U0935, U094C, U0914 ] }; // V: va, matra au, au key { [ U092C, U092D ] }; // B: ba, bha key { [ U0928, U0923, U0929 ] }; // N: na, nna, nnna key { [ U092E, U0902, U093D, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM key { [ comma, U003C, U0945, U090D ] }; // comma: comma, less than, matra, candra e key { [ period, U003E, U0949, U0911 ] }; // period: period, greater than, matra, candra o key { [ slash, question ] }; include "level3(ralt_switch)" }; // ---- END Hindi KaGaPa ---- // Sanskrit uses Devanagari layout of Hindi partial alphanumeric_keys xkb_symbols "san-kagapa" { include "in(hin-kagapa)" name[Group1] = "Sanskrit (KaGaPa phonetic)"; }; // Marathi uses Devanagari layout of Hindi partial alphanumeric_keys xkb_symbols "mar-kagapa" { include "in(hin-kagapa)" name[Group1] = "Marathi (KaGaPa phonetic)"; }; // ---- BEGIN Kannada KaGaPa phonetic ---- // Name: Kannada KaGaPa phonetic // Diagram: (Original)[http://www.baraha.com/help/Keyboards/kan_brhkbd.htm] // (This layout)[http://bdsatish.in/lang/kan-kagapa.png] // // Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout). // See the description to "hin-kagapa" above. // Certain punctuation characters from Devanagari block are // retained for compatibility. // // Author: Satish BD // partial alphanumeric_keys xkb_symbols "kan-kagapa" { name[Group1] = "Kannada (KaGaPa phonetic)"; key.type="FOUR_LEVEL"; // Roman digits key { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark key { [ 1, exclam, U0CE7 ] }; key { [ 2, at, U0CE8, U20A8 ] }; // U20A8: generic rupee sign (Rs) key { [ 3, numbersign, U0CE9 ] }; key { [ 4, dollar, U0CEA, U20B9 ] }; // U20B9: new Indian rupee sign key { [ 5, percent, U0CEB ] }; key { [ 6, asciicircum, U0CEC, U200C ] }; // ZWNJ key { [ 7, ampersand, U0CED, U200D ] }; // ZWJ key { [ 8, asterisk, U0CEE, U0901 ] }; // U0901: Devanagari candrabindu key { [ 9, parenleft, U0CEF ] }; key { [ 0, parenright, U0CE6 ] }; key { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta key { [ equal, plus ] }; key { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda //Q Row key { [ U0C9F, U0CA0 ] }; // Q: retroflex Ta, Tha key { [ U0CA1, U0CA2 ] }; // W: retroflex Da, Dha key { [ U0CC6, U0CC7, U0C8E, U0C8F ] }; // E: matras, short E, long E key { [ U0CB0, U0CC3, U0C8B, U0CB1 ] }; // R: ra, vocalic R matra, vocalic R, RRA key { [ U0CA4, U0CA5 ] }; // T: dental ta, tha key { [ U0CAF, U0CC8, U0C90 ] }; // Y: ya, ai matra, ai key { [ U0CC1, U0CC2, U0C89, U0C8A ] }; // U: matras, u, uu key { [ U0CBF, U0CC0, U0C87, U0C88 ] }; // I: matras, i, ii key { [ U0CCA, U0CCB, U0C92, U0C93 ] }; // O: matras, short o, long o key { [ U0CAA, U0CAB ] }; // P: pa, pha key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; //A Row key { [ U0CBE, U0C86, U0C85 ] }; // A: aa matra, aa, short a key { [ U0CB8, U0CB6 ] }; // S: sa, sha key { [ U0CA6, U0CA7 ] }; // D: dental da, dha key { [ U0CCD, U0CC4, U0CE0 ] }; // F: virama, vocalic RR matra, vocalic RR key { [ U0C97, U0C98 ] }; // G: ga, gha key { [ U0CB9, U0C83, U0CF1, U0CF2 ] }; // H: ha, visarga, jihvanuliya, upadhmaniya key { [ U0C9C, U0C9D ] }; // J: ja, jha key { [ U0C95, U0C96 ] }; // K: ka, kha key { [ U0CB2, U0CB3, U0CE2, U0C8C ] }; // L: la, lla, vocalic L matra, vocalic L key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta // U201D: Right double quotation mark //Z Row key { [ U0C9E, U0C99 ] }; // Z: nya, nga key { [ U0CB7, U0CBC, U0CDE ] }; // X: ssa, nukta below, LLLA key { [ U0C9A, U0C9B ] }; // C: ca, cha key { [ U0CB5, U0CCC, U0C94 ] }; // V: va, matra au, au key { [ U0CAC, U0CAD ] }; // B: ba, bha key { [ U0CA8, U0CA3 ] }; // N: na, nna key { [ U0CAE, U0C82, U0CBD, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM key { [ comma, U003C, U0CB1 ] }; // comma: comma, less than, RRA key { [ period, U003E, U0CDE ] }; // period: period, greater than, LLLA key { [ slash, question ] }; include "level3(ralt_switch)" }; // ---- END Kannada KaGaPa ---- // ---- BEGIN Telugu KaGaPa phonetic ---- // Name: Telugu KaGaPa phonetic // Diagram: (Original)[http://www.baraha.com/help/Keyboards/tel_brhkbd.htm] // (This layout)[http://bdsatish.in/lang/tel-kagapa.png] // // Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout). // See the description to "hin-kagapa" above. // Certain punctuation characters from Devanagari block are // retained for compatibility. // // Author: Satish BD // partial alphanumeric_keys xkb_symbols "tel-kagapa" { name[Group1] = "Telugu (KaGaPa phonetic)"; key.type="FOUR_LEVEL"; // Roman digits key { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark key { [ 1, exclam, U0C67 ] }; key { [ 2, at, U0C68, U20A8 ] }; // U20A8: generic rupee sign (Rs) key { [ 3, numbersign, U0C69 ] }; key { [ 4, dollar, U0C6A, U20B9 ] }; // U20B9: new Indian rupee sign key { [ 5, percent, U0C6B ] }; key { [ 6, asciicircum, U0C6C, U200C ] }; // ZWNJ key { [ 7, ampersand, U0C6D, U200D ] }; // ZWJ key { [ 8, asterisk, U0C6E, U0C01 ] }; // U0C01: Telugu arasunna key { [ 9, parenleft, U0C6F ] }; key { [ 0, parenright, U0C66 ] }; key { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta key { [ equal, plus ] }; key { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda //Q Row key { [ U0C1F, U0C20 ] }; // Q: retroflex Ta, Tha key { [ U0C21, U0C22 ] }; // W: retroflex Da, Dha key { [ U0C46, U0C47, U0C0E, U0C0F ] }; // E: matras, short E, long E key { [ U0C30, U0C43, U0C0B, U0C31 ] }; // R: ra, vocalic R matra, vocalic R, RRA key { [ U0C24, U0C25 ] }; // T: dental ta, tha key { [ U0C2F, U0C48, U0C10 ] }; // Y: ya, ai matra, ai key { [ U0C41, U0C42, U0C09, U0C0A ] }; // U: matras, u, uu key { [ U0C3F, U0C40, U0C07, U0C08 ] }; // I: matras, i, ii key { [ U0C4A, U0C4B, U0C12, U0C13 ] }; // O: matras, short o, long o key { [ U0C2A, U0C2B ] }; // P: pa, pha key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; //A Row key { [ U0C3E, U0C06, U0C05 ] }; // A: aa matra, aa, short a key { [ U0C38, U0C36 ] }; // S: sa, sha key { [ U0C26, U0C27 ] }; // D: dental da, dha key { [ U0C4D, U0C44, U0C60 ] }; // F: virama, vocalic RR matra, vocalic RR key { [ U0C17, U0C18 ] }; // G: ga, gha key { [ U0C39, U0C03 ] }; // H: ha, visarga key { [ U0C1C, U0C1D ] }; // J: ja, jha key { [ U0C15, U0C16 ] }; // K: ka, kha key { [ U0C32, U0C33, U0C62, U0C0C ] }; // L: la, lla, vocalic L matra, vocalic L key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta // U201D: Right double quotation mark //Z Row key { [ U0C1E, U0C19 ] }; // Z: nya, nga key { [ U0C37 ] }; // X: ssa key { [ U0C1A, U0C1B ] }; // C: ca, cha key { [ U0C35, U0C4C, U0C14 ] }; // V: va, matra au, au key { [ U0C2C, U0C2D ] }; // B: ba, bha key { [ U0C28, U0C23 ] }; // N: na, nna key { [ U0C2E, U0C02, U0C3D, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM key { [ comma, U003C, U0C58 ] }; // comma: comma, less than, TSA key { [ period, U003E, U0C59 ] }; // period: period, greater than, DZA key { [ slash, question ] }; include "level3(ralt_switch)" }; // Description : Keymap for Manipuri language (Meetei mayek script) // Encoding : Unicode (http://www.unicode.org) // Author : Santosh Heigrujam // Date : December, 2013 // Source : // Comment : partial alphanumeric_keys modifier_keys xkb_symbols "eeyek" { name[Group1]= "Manipuri (Eeyek)"; key { [ grave, asciitilde ] }; key { [ Uabf1, exclam ] }; key { [ Uabf2, at ] }; key { [ Uabf3, numbersign ] }; key { [ Uabf4, dollar ] }; key { [ Uabf5, percent ] }; key { [ Uabf6, asciicircum ] }; key { [ Uabf7, ampersand ] }; key { [ Uabf8, asterisk ] }; key { [ Uabf9, parenleft ] }; key { [ Uabf0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ Uabc8, Uabd8 ] }; key { [ Uabcb, Uabcb ] }; key { [ Uabcf, Uabe2 ] }; key { [ Uabd4, Uabd4 ] }; key { [ Uabc7, Uabe0 ] }; key { [ Uabcc, Uabe6 ] }; key { [ Uabce, Uabe8 ] }; key { [ Uabe4, Uabe9 ] }; key { [ Uabe3, Uabe7 ] }; key { [ Uabc4, Uabde ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ Uabd1, Uabe5 ] }; key { [ Uabc1, Uabd3 ] }; key { [ Uabd7, Uabd9 ] }; key { [ Uabd0, Uabda ] }; key { [ Uabd2, Uabd8 ] }; key { [ Uabcd, Uabea ] }; key { [ Uabd6, Uabd3 ] }; key { [ Uabc0, Uabdb ] }; key { [ Uabc2, Uabdc ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ Uabc9, Uabe1 ] }; key { [ Uabca, Uabd9 ] }; key { [ Uabc6, Uabeb ] }; key { [ Uabda, Uabed ] }; key { [ Uabd5, Uabec ] }; key { [ Uabc5, Uabdf ] }; key { [ Uabc3, Uabdd ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; key { [ backslash, bar ] }; include "level3(ralt_switch)" }; PK(f[b symbols/alnu[// based on // albanian keyboard layout // done by Pablo Saratxaga // default partial alphanumeric_keys xkb_symbols "basic" { include "latin(type3)" name[Group1]="Albanian"; key { [ 1, exclam, asciitilde, dead_tilde ] }; key { [ 2, quotedbl, dead_caron, oneeighth ] }; key { [ 3, numbersign, dead_circumflex, sterling ] }; key { [ 4, dollar, dead_breve, dollar ] }; key { [ 5, percent, dead_abovering, threeeighths] }; key { [ 6, asciicircum, dead_ogonek, fiveeighths ] }; key { [ 7, ampersand, grave, dead_grave ] }; key { [ 8, asterisk, dead_abovedot, trademark ] }; key { [ 9, parenleft, dead_acute, plusminus ] }; key { [ 0, parenright, dead_doubleacute, degree ] }; key { [ minus, underscore, dead_diaeresis, questiondown] }; key { [ e, E, EuroSign, EuroSign ] }; key { [ ccedilla, Ccedilla, division, dead_abovering ] }; key { [ at, apostrophe, multiply, dead_macron ] }; key { [ s, S, dstroke, section ] }; key { [ d, D, Dstroke, ETH ] }; key { [ediaeresis, Ediaeresis, dollar, dead_doubleacute ] }; key { [bracketleft, braceleft, ssharp, dead_caron ] }; key { [ backslash, bar, notsign, notsign ] }; key { [bracketright, braceright, currency, dead_breve ] }; key { [ comma, semicolon, less, multiply ] }; key { [ period, colon, greater, division ] }; key { [ slash, question, dead_belowdot, dead_abovedot ] }; include "level3(ralt_switch)" }; // Tastiera Plisi (plisi.org) // by Getoar Mjeku // partial alphanumeric_keys xkb_symbols "plisi" { include "us" name[Group1]= "Albanian (Plisi)"; key { [ grave, asciitilde ] }; key { [ 1, exclam, U2019 ] }; key { [ 2, at, twosuperior ] }; key { [ 3, numbersign, threesuperior ] }; key { [ 4, dollar, EuroSign ] }; key { [ 5, percent, exclamdown ] }; key { [ 6, asciicircum, questiondown ] }; key { [ 7, ampersand, braceleft ] }; key { [ 8, asterisk, braceright ] }; key { [ 9, parenleft, bracketleft ] }; key { [ 0, parenright, bracketright ] }; key { [ minus, underscore, U00AD ] }; key { [ equal, plus, registered ] }; key { [ q, Q, dead_grave ] }; key { [ w, W, dead_caron ] }; key { [ e, E, dead_circumflex ] }; key { [ r, R, dead_diaeresis ] }; key { [ t, T, dead_macron ] }; key { [ y, Y, dead_doubleacute ] }; key { [ u, U, dead_breve ] }; key { [ i, I, dead_tilde, U0131 ] }; key { [ o, O, dead_abovering ] }; key { [ p, P, dead_abovedot ] }; key { [ ccedilla, Ccedilla, dead_acute ] }; key { [ greater, less, U031C ] }; key { [ a, A, U2264 ] }; key { [ s, S, U2265 ] }; key { [ d, D, U2300 ] }; key { [ f, F, U2032 ] }; key { [ g, G, U2033 ] }; key { [ h, H, section ] }; key { [ j, J, dead_cedilla ] }; key { [ k, K, dead_comma ] }; key { [ l, L, dead_ogonek ] }; key { [ ediaeresis, Ediaeresis, dead_belowdot ] }; key { [ apostrophe, quotedbl ] }; key { [ z, Z, guillemotleft ] }; key { [ x, X, guillemotright ] }; key { [ c, C, copyright ] }; key { [ v, V, U2039 ] }; key { [ b, B, U203A ] }; key { [ n, N, endash ] }; key { [ m, M, emdash, U00B5 ] }; key { [ comma, semicolon, U02BB ] }; key { [ period, colon, U200C ] }; key { [ slash, question, U2011 ] }; key { [ backslash, bar, U031B ] }; include "level3(ralt_switch)" }; PK(f[ symbols/cnnu[// // Default Chinese is the same as American // default partial alphanumeric_keys xkb_symbols "basic" { include "us(basic)" name[Group1]= "Chinese"; }; // Tibetan Standard Keyboard map for XKB/X.org // // Based on the CNS Tibetan keyboard as supported by Windows Vista // using information published by Tashi Tsering: // http://www.yalasoo.com/English/docs/yalasoo_en_MStbKb.html // // XKB version by Rich Felker . // // The CNS Tibetan keyboard standard specifies 5 keyboards worth of keys, // but apparently makes no requirements about how each is accessed. Only // the first 2 are needed for native Tibetan text; the remainder are // filled with special symbols and letters for transliterating foreign // text. Further, CNS leaves the level of support of keyboards 2-5 as an // option to the implementor (despite the fact that #2 is absolutely // essential...). Windows Vista maps them as follows: // // 1. Unshifted // 2. "m"-key-prefixed // 3. Shift-modified // 4. Ctrl+Alt+Shift-modified // 5. "M"-key-prefixed // // I roughly copy the Windows Vista mapping, which was intended by the // designer of the keyboard, with the following exceptions: // // The fifth keyboard is almost empty and contains only precomposed forms // of subjoined letter characters whose use is strongly discouraged, and // is not implemented at all in this XKB map. The fourth is implemented, // but is accessed by an "m"-prefix (or "M"-prefix, for convenience) // followed by a Shift-modified key. This avoids stealing the Ctrl and Alt // keys, which belong to applications on *nix and not to the keyboard or // input method. Aside from enterring rare special symbols and // foreign-word-transliteration letters, these differences should not // affect users. // // Implementation notes: // // A latching ISO Level3 shift is used for the "m"-prefix modifier. In // principle moving it to other keys (e.g. AltGr) would be possible // according to user preference, but this is not practical for typing // Tibetan, since the subjoined consonants, of which Tibetan has 0-2 per // syllable, are accessed via this mechanism. // // One annoyance is that the latching Level3 shift fails to work if the // previous key is not yet released when "m" is pressed (the key release // event kills the latch). I consider this a bug in X and don't know an // easy way to work around it. Complain to the maintainers if it bothers // you and maybe they'll find a fix. You won't notice it unless you're // fast at typing Tibetan anyway. partial alphanumeric_keys xkb_symbols "tib" { name[Group1]= "Tibetan"; key { [ 0x1000f68, 0x1000f01, 0x1000fb8, 0x1000f00 ] }; # ཨ ༁ ྸ ༀ key { [ 0x1000f21, 0x1000f2a, 0x1000f04, 0x1000f76 ] }; # ༡ ༪ ༄ ྲྀ key { [ 0x1000f22, 0x1000f2b, 0x1000f05, 0x1000f77 ] }; # ༢ ༫ ༅ ཷ key { [ 0x1000f23, 0x1000f2c, 0x1000f7e, 0x1000f78 ] }; # ༣ ༬ ཾ ླྀ key { [ 0x1000f24, 0x1000f2d, 0x1000f83, 0x1000f79 ] }; # ༤ ༭ ྃ ཹ key { [ 0x1000f25, 0x1000f2e, 0x1000f37, 0x1000f81 ] }; # ༥ ༮ ༷ ཱྀ key { [ 0x1000f26, 0x1000f2f, 0x1000f35, 0x1000f09 ] }; # ༦ ༯ ༵ ༉ key { [ 0x1000f27, 0x1000f30, 0x1000f7f, 0x1000f0a ] }; # ༧ ༰ ཿ ༊ key { [ 0x1000f28, 0x1000f31, 0x1000f14, 0x1000f0f ] }; # ༨ ༱ ༔ ༏ key { [ 0x1000f29, 0x1000f32, 0x1000f11, 0x1000f10 ] }; # ༩ ༲ ༑ ༐ key { [ 0x1000f20, 0x1000f33, 0x1000f08, 0x1000f12 ] }; # ༠ ༳ ༈ ༒ key { [ 0x1000f67, 0x1000f3c, 0x1000fb7, 0x1000f0c ] }; # ཧ ༼ ྷ ༌ key { [ 0x1000f5d, 0x1000f3d, 0x1000fba, 0x1000f13 ] }; # ཝ ༽ ྺ ༓ key { [ 0x1000f45, 0x1000f15, 0x1000f95, 0x1000f89 ] }; # ཅ ༕ ྕ ྉ key { [ 0x1000f46, 0x1000f16, 0x1000f96, 0x1000f88 ] }; # ཆ ༖ ྖ ྈ key { [ 0x1000f7a, 0x1000f17, 0x1000f7b, 0x1000fbe ] }; # ེ ༗ ཻ ྾ key { [ 0x1000f62, 0x1000fbc, 0x1000fb2, 0x1000f6a ] }; # ར ྼ ྲ ཪ key { [ 0x1000f4f, 0x1000f4a, 0x1000f9f, 0x1000f9a ] }; # ཏ ཊ ྟ ྚ key { [ 0x1000f61, 0x1000fbb, 0x1000fb1, 0x1000fbf ] }; # ཡ ྻ ྱ ྿ key { [ 0x1000f74, 0x1000f18, 0x1000fad, 0x1000f75 ] }; # ུ ༘ ྭ ཱུ key { [ 0x1000f72, 0x1000f19, 0x1000f80, 0x1000f73 ] }; # ི ༙ ྀ ཱི key { [ 0x1000f7c, 0x1000f1a, 0x1000f7d, 0x1000fc0 ] }; # ོ ༚ ཽ ࿀ key { [ 0x1000f55, 0x1000f1b, 0x1000fa5, 0x1000fc1 ] }; # ཕ ༛ ྥ ࿁ key { [ 0x1000f59, 0x1000f1c, 0x1000fa9, 0x1000fc2 ] }; # ཙ ༜ ྩ ࿂ key { [ 0x1000f5a, 0x1000f1d, 0x1000faa, 0x1000fc3 ] }; # ཚ ༝ ྪ ࿃ key { [ 0x1000f5b, 0x1000f1e, 0x1000fab, 0x1000f5c ] }; # ཛ ༞ ྫ ཛྷ key { [ 0x1000f60, 0x1000f71, 0x1000fb0, 0x1000fc4 ] }; # འ ཱ ྰ ࿄ key { [ 0x1000f66, 0x1000f1f, 0x1000fb6, 0x1000fc5 ] }; # ས ༟ ྶ ࿅ key { [ 0x1000f51, 0x1000f4c, 0x1000fa1, 0x1000f9c ] }; # ད ཌ ྡ ྜ key { [ 0x1000f56, 0x1000f3e, 0x1000fa6, 0x1000f57 ] }; # བ ༾ ྦ བྷ key { [ 0x1000f44, 0x1000f3f, 0x1000f94, 0x1000fc6 ] }; # ང ༿ ྔ ࿆ key { [ 0x1000f58, 0x1000fcf, 0x1000fa8, 0x1000fc7 ] }; # མ ࿏ ྨ ࿇ key { [ 0x1000f0b, 0x1000f02, 0x1000f84, 0x1000fc8 ] }; # ་ ༂ ྄ ࿈ key { [ 0x1000f42, 0x1000f03, 0x1000f92, 0x1000f43 ] }; # ག ༃ ྒ གྷ key { [ 0x1000f63, 0x1000f06, 0x1000fb3, 0x1000fc9 ] }; # ལ ༆ ླ ࿉ key { [ 0x1000f5e, 0x1000f07, 0x1000fae, 0x1000fca ] }; # ཞ ༇ ྮ ࿊ key { [ 0x1000f0d, 0x1000f38, 0x1000f0e, 0x1000fcb ] }; # ། ༸ ༎ ࿋ key { [ 0x1000f5f, 0x1000f34, 0x1000faf, 0x1000fcc ] }; # ཟ ༴ ྯ ࿌ key { [ 0x1000f64, 0x1000f65, 0x1000fb4, 0x1000fb5 ] }; # ཤ ཥ ྴ ྵ key { [ 0x1000f40, 0x1000f69, 0x1000f90, 0x1000fb9 ] }; # ཀ ཀྵ ྐ ྐྵ key { [ 0x1000f41, 0x1000f87, 0x1000f91, 0x1000f36 ] }; # ཁ ྇ ྑ ༶ key { [ 0x1000f54, 0x1000f86, 0x1000fa4, 0x1000f82 ] }; # པ ྆ ྤ ྂ key { [ 0x1000f53, 0x1000f4e, 0x1000fa3, 0x1000f9e ] }; # ན ཎ ྣ ྞ key { [ ISO_Level3_Latch, ISO_Level3_Latch, 0x1000f85, 0x1000f52 ] }; # -བཏགས་ ྅ དྷ key { [ 0x1000f50, 0x1000f4b, 0x1000fa0, 0x1000f9b ] }; # ཐ ཋ ྠ ྛ key { [ 0x1000f47, 0x1000f3a, 0x1000f97, 0x1000f8b ] }; # ཇ ༺ ྗ ྋ key { [ 0x1000f49, 0x1000f3b, 0x1000f99, 0x1000f8a ] }; # ཉ ༻ ྙ ྊ }; // Tibetan Standard Keyboard with ASCII numerals // // Users may prefer that the numeral keys enter ASCII numerals instead of // Tibetan numerals, since the latter are not in modern use in Tibet. // This is especially an issue for laptop users who do not have a numeric // keypad by which to access the ASCII numerals, and who need to type // numbers to be interpreted by applications. // // In this mapping, the Shift-modified numeral keys generate Tibetan // numerals, since it was unclear to me that the standard Latin punctuation // keys would be any use without Latin letters. (One can imagine wanting to // type an email address using the @ sign, but as of present non-ASCII // email addresses are not possible.) This mapping may change in the future // if a clearly better use for the shifted numerals is pointed out by users. partial alphanumeric_keys xkb_symbols "tib_asciinum" { include "cn(tib)" name[Group1]= "Tibetan (with ASCII numerals)"; key { [ 1, 0x1000f21, 0x1000f04, 0x1000f76 ] }; # 1 ༡ ༄ ྲྀ key { [ 2, 0x1000f22, 0x1000f05, 0x1000f77 ] }; # 2 ༢ ༅ ཷ key { [ 3, 0x1000f23, 0x1000f7e, 0x1000f78 ] }; # 3 ༣ ཾ ླྀ key { [ 4, 0x1000f24, 0x1000f83, 0x1000f79 ] }; # 4 ༤ ྃ ཹ key { [ 5, 0x1000f25, 0x1000f37, 0x1000f81 ] }; # 5 ༥ ༷ ཱྀ key { [ 6, 0x1000f26, 0x1000f35, 0x1000f09 ] }; # 6 ༦ ༵ ༉ key { [ 7, 0x1000f27, 0x1000f7f, 0x1000f0a ] }; # 7 ༧ ཿ ༊ key { [ 8, 0x1000f28, 0x1000f14, 0x1000f0f ] }; # 8 ༨ ༔ ༏ key { [ 9, 0x1000f29, 0x1000f11, 0x1000f10 ] }; # 9 ༩ ༑ ༐ key { [ 0, 0x1000f20, 0x1000f08, 0x1000f12 ] }; # 0 ༠ ༈ ༒ }; // Uyghur Standard Keyboard Map for XKB/X.Org // // XKB version in collaboration by Muhemmed Abdullah , // Abdussalam Abdurrahman , and // Ekrem Tomur partial alphanumeric_keys xkb_symbols "ug" { include "us(basic)" name[Group1]= "Uyghur"; key { [ 9, parenright ] }; // 9 ) key { [ 0, parenleft ] }; // 0 ( key { [ minus, 0x1002014 ] }; // - — key { [ 0x1000686, VoidSymbol ] }; // چ key { [ 0x10006cb, VoidSymbol ] }; // ۋ key { [ 0x10006d0, VoidSymbol ] }; // ې key { [ 0x1000631, VoidSymbol ] }; // ر key { [ 0x100062a, VoidSymbol ] }; // ت key { [ 0x100064a, VoidSymbol ] }; // ي key { [ 0x10006c7, VoidSymbol ] }; // ۇ key { [ 0x10006ad, VoidSymbol ] }; // ڭ key { [ 0x1000648, VoidSymbol ] }; // و key { [ 0x100067e, VoidSymbol ] }; // پ key { [ bracketright, guillemotright ] }; // ] » key { [ bracketleft, guillemotleft ] }; // [ « key { [ 0x10006be, VoidSymbol ] }; // ھ key { [ 0x1000633, VoidSymbol ] }; // س key { [ 0x100062f, 0x1000698 ] }; // د ژ key { [ 0x1000627, 0x1000641 ] }; // ا ف key { [ 0x10006d5, 0x10006af ] }; // ە گ key { [ 0x1000649, 0x100062e ] }; // ى خ key { [ 0x1000642, 0x100062c ] }; // ق ج key { [ 0x1000643, 0x10006c6 ] }; // ك ۆ key { [ 0x1000644, VoidSymbol ] }; // ل key { [ Arabic_semicolon, colon ] }; // ؛ : key { [ 0x1000632, VoidSymbol ] }; // ز key { [ 0x1000634, VoidSymbol ] }; // ش key { [ 0x100063a, VoidSymbol ] }; // غ key { [ 0x10006c8, VoidSymbol ] }; // ۈ key { [ 0x1000628, VoidSymbol ] }; // ب key { [ 0x1000646, VoidSymbol ] }; // ن key { [ 0x1000645, VoidSymbol ] }; // م key { [ Arabic_comma, 0x100203a ] }; // ، › key { [ period, 0x1002039 ] }; // . ‹ key { [ 0x1000626, Arabic_question_mark ] }; // ئ ؟ }; // Pinyin Keyboard, in the style of altgr-intl // // Chinese speakers and learners often find it hard to type Hanyu Pinyin // with all its tones and ü. This rule defines an altgr-intl-like behavior, // with dead keys activated by "AltGr + ". It also works with many // "pinyin" extensions, such as Tongyong Pinyin (Taiwan Mandarin) and // various SASM/GNC romanizations. // // Number row keys 1 2 3 4 are defined as dead-keys for the tones. // They correspond to the four tones in Hanyu Pinyin. // // To generate a · for "neutral" syllables, use AltGr + ` (grave). // To generate a raw ü, use AltGr + v. // V is used instead of ü for tones. // // AltGr+Shift+` triggers dead_abovering (˚), used by the Taiwanese // Tongyong Pinyin variant for the "neutral" tone. // // AltGr+6 triggers dead_circumflex (^) for ê ẑ ĉ ŝ, etc. // These can be stacked after tones to produce ế and ề; other tones require // combining characters, available through nobreakspace (AltGr+Space). // // AltGr+Shift+6 triggers dead_diaeresis (¨) for SASM/GNC // romanization of tib, mon, and ug. // // This file should be used with an appropriate XCompose file with // definitons for dead_{macron,acute,caron,grave} + a/e/i/o/u/v(ü). // --Mingye Wang partial alphanumeric_keys xkb_symbols "altgr-pinyin" { include "us(basic)" name[Group1]= "Hanyu Pinyin (altgr)"; key { [ grave, asciitilde, periodcentered,dead_abovering ] }; key { [ 1, exclam, dead_macron, macron ] }; key { [ 2, at, dead_acute, acute ] }; key { [ 3, numbersign, dead_caron, caron ] }; key { [ 4, dollar, dead_grave, grave ] }; key { [ 6, asciicircum, dead_circumflex, dead_diaeresis ] }; key { [ v, V, udiaeresis, Udiaeresis ] }; key { [ space, space, nobreakspace, nobreakspace ] }; include "level3(ralt_switch)" }; // Mongolian Bichig (traditional) Keyboard Map for XKB/X.Org // // by Maurizio M. Gavioli , 2019 from PRC // standard GB/T 28038-2011, par. 4.3. // The original standard has vertical presentation forms (UFExx range) // for level 2 of AB08 - AB10, AD11 - AD13, AE01, AE09, AE10; they have // been replaced by the corresponding decompositions, assuming that: // 1) presentation forms are a job of the font stack more than of the // keyboard management. // 2) these keyboard layout will not necessarily be used only for // vertical text orientations. partial alphanumeric_keys xkb_symbols "mon_trad" { include "us(basic)" name[Group1]= "Mongolian (Bichig)"; key { [ U180D, asciitilde ] }; // ~: FVS3, ~ key { [ 1, exclam ] }; // 1: 1, ! key { [ 2, U2048 ] }; // 2: 2, ⁈ key { [ 3, U2049 ] }; // 3: 3, ⁉ key { [ 4, 4 ] }; // 4: 4 key { [ 5, percent ] }; // 5: 5, % key { [ 6, U200C ] }; // 6: 6, ZWNJ key { [ 7, U180A ] }; // 7: 7, ᠊ NIRUGU key { [ 8, U200D ] }; // 8: 8, ZWJ key { [ 9, parenleft ] }; // 9: 9, ( key { [ 0, parenright ] }; // 0: 0, ) key { [ U202F, U180E ] }; // -: NNBSP, MVS key { [ equal, plus ] }; // +: =, + key { [ U1823, U1842 ] }; // Q: ᠣ O, ᡂ CHI key { [ U1838, U1838 ] }; // W: ᠸ WA key { [ U1821, U1827 ] }; // E: ᠡ E, ᠧ EE key { [ U1837, U183F ] }; // R: ᠷ RA, ᠿ ZRA key { [ U1832, U1832 ] }; // T: ᠲ TA key { [ U1836, U1836 ] }; // Y: ᠶ YA key { [ U1826, U1826 ] }; // U: ᠦ UE key { [ U1822, U1822 ] }; // I: ᠢ I key { [ U1825, U1825 ] }; // O: ᠥ OE key { [ U182B, U182B ] }; // P: ᠫ PA key { [ bracketleft, U3008 ] }; // [: [, 〈 key { [ bracketright, U3009 ] }; // ]: ], 〉 key { [ U1801, U2014 ] }; // \: ᠁, — key { [ U1820, U1820 ] }; // A: ᠠ A key { [ U1830, U1830 ] }; // S: ᠰ SA key { [ U1833, U1833 ] }; // D: ᠳ DA key { [ U1839, U1839 ] }; // F: ᠹ FA key { [ U182D, U182D ] }; // G: ᠭ GA key { [ U182C, U183E ] }; // H: ᠬ QA, ᠾ HAA key { [ U1835, U1835 ] }; // J: ᠵ JA key { [ U183A, U183B ] }; // K: ᠺ KA, ᠻ KHA key { [ U182F, U1840 ] }; // L: ᠯ LA, ᡀ LHA key { [ semicolon, U1804 ] }; // ;: ;, ᠄ key { [ U180B, U180C ] }; // `: FVS1, FVS2 key { [ U183D, U1841 ] }; // Z: ᠽ ZA, ᡁ ZHI key { [ U1831, U1831 ] }; // X: ᠱ SHA key { [ U1834, U183C ] }; // C: ᠴ CHA, ᠼ TSA key { [ U1824, U1824 ] }; // V: ᠤ U key { [ U182A, U182A ] }; // B: ᠪ BA key { [ U1828, U1829 ] }; // N: ᠨ NA, ᠩ ANG key { [ U182E, U182E ] }; // M: ᠮ MA key { [ U1802, U300A ] }; // ,: ᠂, 《 key { [ U1803, U300B ] }; // .: ᠃, 》 key { [ U00B7, question ] }; // /: ·, ? }; // Mongolian Todo Keyboard Map for XKB/X.Org // // by Maurizio M. Gavioli , 2019 from PRC // standard GB/T 28038-2011, par. 4.4. // The original standard has vertical presentation forms (UFExx range) // in AB08 - AB10, AC10, AD11 - AD13, AE01, AE09 - AE11: they have been // replaced by the corresponding decompositions; see explanation for // "mon_trad" above. partial alphanumeric_keys xkb_symbols "mon_trad_todo" { include "us(basic)" name[Group1]= "Mongolian Todo"; key { [ U180D, asciitilde ] }; // ~: FVS3, ~ key { [ 1, exclam ] }; // 1: 1, ! key { [ 2, U2048 ] }; // 2: 2, ⁈ key { [ 3, U2049 ] }; // 3: 3, ⁉ key { [ 4, U1843 ] }; // 4: 4, ᡃ TODO LONG VOWEL key { [ 5, percent ] }; // 5: 5, % key { [ 6, U200C ] }; // 6: 6, ZWNJ key { [ 7, U180A ] }; // 7: 7, ᠊ NIRUGU key { [ 8, U200D ] }; // 8: 8, ZWJ key { [ 9, parenleft ] }; // 9: 9, ( key { [ 0, parenright ] }; // 0: 0, ) key { [ U202F, U2014 ] }; // -: NNBSP, — EM DASH key { [ equal, plus ] }; // +: =, + key { [ U1846, U1806 ] }; // Q: ᡆ TODO O, ᠆ (Todo hyphen) key { [ U1856, U1856 ] }; // W: ᡖ TODO WA key { [ U1844, U1844 ] }; // E: ᡄ TODO E key { [ U1837, U1837 ] }; // R: ᠷ RA key { [ U1850, U1850 ] }; // T: ᡐ TODO TA key { [ U1855, U1855 ] }; // Y: ᡕ TODO YA key { [ U1849, U1849 ] }; // U: ᡉ TODO UE key { [ U1845, U1845 ] }; // I: ᡅ TODO I key { [ U1848, U1848 ] }; // O: ᡈ TODO OE key { [ U184C, U184C ] }; // P: ᠫ PA key { [ bracketleft, U300C ] }; // [: [, 「 key { [ bracketright, U300D ] }; // ]: ], 」 key { [ U1801, U00B7 ] }; // \: ᠁, · key { [ U1820, U1820 ] }; // A: ᠠ A key { [ U1830, U1830 ] }; // S: ᠰ SA key { [ U1851, U1851 ] }; // D: ᡑ TODO DA key { [ U1838, U1838 ] }; // F: ᠸ WA key { [ U184E, U1858 ] }; // G: ᡎ TODO GA, ᡘ TODO GAA key { [ U184D, U1859 ] }; // H: ᡍ TODO Qa, ᡙ TODO HAA key { [ U1853, U185A ] }; // J: ᡓ TODO JA, ᡚ TODO JIA key { [ U1857, U1857 ] }; // K: ᡗ TODO KA key { [ U182F, U1840 ] }; // L: ᠯ LA, ᡀ LHA key { [ semicolon, U1804 ] }; // ;: ;, ᠄ key { [ U180B, U180C ] }; // `: FVS1, FVS2 key { [ U1834, U185C ] }; // Z: ᠴ CHA, ᠼ TODO DZA key { [ U1831, U1831 ] }; // X: ᠱ SHA key { [ U1854, U1852 ] }; // C: ᡔ TODO TSA ᡒ TODO CHA key { [ U1847, U1847 ] }; // V: ᡇ TODO U key { [ U184B, U184B ] }; // B: ᡋ TODO BA key { [ U1828, U184A ] }; // N: ᠨ NA, ᠩ TODO ANG key { [ U184F, U184F ] }; // M: ᡏ TODO MA key { [ comma, U300E ] }; // ,: ,, 『 key { [ U3002, U300F ] }; // .: 。, 』 key { [ U3001, question ] }; // /: 、, ? }; // Mongolian Xibe Keyboard Map for XKB/X.Org // // by Maurizio M. Gavioli , 2019 from PRC // standard GB/T 28038-2011, par. 4.5. // The original standard has vertical presentation forms (UFExx range) // in AB08 - AB10, AD11 - AD13, AE01, AE09, AE10; they have been // replaced by the corresponding decompositions; see explanation for // "mon_trad" above. partial alphanumeric_keys xkb_symbols "mon_trad_xibe" { include "us(basic)" name[Group1]= "Mongolian Xibe"; key { [ U180D, asciitilde ] }; // ~: FVS3, ~ key { [ 1, exclam ] }; // 1: 1, ! key { [ 2, U2018 ] }; // 2: 2, ‘ key { [ 3, U2019 ] }; // 3: 3, ’ key { [ 4, U1807 ] }; // 4: 4, ᠇ SIBE SYLL. BOUND. MARKER key { [ 5, percent ] }; // 5: 5, % key { [ 6, U200C ] }; // 6: 6, ZWNJ key { [ 7, U180A ] }; // 7: 7, ᠊ NIRUGU key { [ 8, U200D ] }; // 8: 8, ZWJ key { [ 9, parenleft ] }; // 9: 9, ( key { [ 0, parenright ] }; // 0: 0, ) key { [ U202F, U202F ] }; // -: NNBSP key { [ equal, plus ] }; // +: =, + key { [ U1834, U1834 ] }; // Q: ᠴ CHA key { [ U1838, U1838 ] }; // W: ᠸ WA key { [ U185D, U185D ] }; // E: ᡝ SIBE E key { [ U1837, U1870 ] }; // R: ᠷ RA, ᡰ SIBE RAA key { [ U1868, U1868 ] }; // T: ᡨ SIBE TA key { [ U1836, U1836 ] }; // Y: ᠶ YA key { [ U1860, U1860 ] }; // U: ᡠ SIBE UE key { [ U185E, U185F ] }; // I: ᡞ SIBE I, ᡟ SIBE IY key { [ U1823, U1823 ] }; // O: ᠣ O key { [ U1866, U1866 ] }; // P: ᡦ SIBE PA key { [ bracketleft, U201C ] }; // [: [, “ key { [ bracketright, U201D ] }; // ]: ], ” key { [ U1801, U2014 ] }; // \: ᠁, — key { [ U1820, U1820 ] }; // A: ᠠ A key { [ U1830, U1830 ] }; // S: ᠰ SA key { [ U1869, U1869 ] }; // D: ᡩ SIBE DA key { [ U186B, U186B ] }; // F: ᡫ SIBE FA key { [ U1864, U186C ] }; // G: ᡤ SIBE GA, ᡬ SIBE GAA key { [ U1865, U186D ] }; // H: ᡥ SIBE HA, ᡭ SIBE HAA key { [ U186A, U186A ] }; // J: ᡪ SIBE JA key { [ U1863, U183A ] }; // K: ᡣ SIBE KA, ᠺ KA key { [ U182F, U182F ] }; // L: ᠯ LA key { [ semicolon, U1804 ] }; // ;: ;, ᠄ key { [ U180B, U180C ] }; // `: FVS1, FVS2 key { [ U186F, U1872 ] }; // Z: ᡯ SIBE ZA, ᡲ SIBE ZHA key { [ U1867, U1867 ] }; // X: ᡧ SIBE SHA key { [ U186E, U1871 ] }; // C: ᡮ SIBE TSA, ᡱ SIBE CHA key { [ U1861, U1861 ] }; // V: ᡡ SIBE U key { [ U182A, U182A ] }; // B: ᠪ BA key { [ U1828, U1862 ] }; // N: ᠨ NA, ᡢ SIBE ANG key { [ U182E, U182E ] }; // M: ᠮ MA key { [ comma, U300E ] }; // ,: ,, 『 key { [ U3002, U300F ] }; // .: 。, 』 key { [ U3001, question ] }; // /: 、, ? }; // Mongolian Manchu Keyboard Map for XKB/X.Org // // by Maurizio M. Gavioli , 2019 from PRC // standard GB/T 28038-2011, par. 4.6. // The original standard has vertical presentation forms (UFExx range) // for level 2 of AB10, ABC10, AD11 - AD13, AE01, AE09, AE10; they have been // replaced by the corresponding decompositions; see explanation for // "mon_trad" above. partial alphanumeric_keys xkb_symbols "mon_trad_manchu" { include "us(basic)" name[Group1]= "Mongolian Manchu"; key { [ U180D, asciitilde ] }; // ~: FVS3, ~ key { [ 1, exclam ] }; // 1: 1, ! key { [ 2, 2 ] }; // 2: 2 key { [ 3, 3 ] }; // 3: 3 key { [ 4, 4 ] }; // 4: 4 key { [ 5, percent ] }; // 5: 5, % key { [ 6, U200C ] }; // 6: 6, ZWNJ key { [ 7, U180A ] }; // 7: 7, ᠊ NIRUGU key { [ 8, U200D ] }; // 8: 8, ZWJ key { [ 9, parenleft ] }; // 9: 9, ( key { [ 0, parenright ] }; // 0: 0, ) key { [ U202F, U202F ] }; // -: NNBSP key { [ equal, plus ] }; // +: =, + key { [ U1834, U1834 ] }; // Q: ᠴ CHA key { [ U1838, U1838 ] }; // W: ᠸ WA key { [ U185D, U185D ] }; // E: ᡝ SIBE E key { [ U1875, U1870 ] }; // R: ᡵ MANCHU RA, ᡰ SIBE RAA key { [ U1868, U1868 ] }; // T: ᡠ SIBE TA key { [ U1836, U1836 ] }; // Y: ᠶ YA key { [ U1860, U1860 ] }; // U: ᡠ SIBE UE key { [ U1873, U185F ] }; // I: ᡳ MANCHU I, ᡟ SIBE IY key { [ U1823, U1823 ] }; // O: ᠣ O key { [ U1866, U1866 ] }; // P: ᡦ SIBE PA key { [ bracketleft, bracketleft ] }; // [: [ key { [ bracketright, bracketright ] }; // ]: ] key { [ U1801, U2014 ] }; // \: ᠁, — key { [ U1820, U1820 ] }; // A: ᠠ A key { [ U1830, U1830 ] }; // S: ᠰ SA key { [ U1869, U1869 ] }; // D: ᡩ SIBE DA key { [ U1876, U1876 ] }; // F: ᡶ MANCHU FA key { [ U1864, U186C ] }; // G: ᡩ SIBE GA, ᡶ SIBE GAA key { [ U1865, U186D ] }; // H: ᡩ SIBE HA, ᡶ SIBE HAA key { [ U1835, U1835 ] }; // J: ᠵ JA key { [ U1874, U183A ] }; // K: ᡴ MANCHU KA, ᠺ KA key { [ U182F, U182F ] }; // L: ᠯ LA key { [ semicolon, U1804 ] }; // ;: ;, ᠄ key { [ U180B, U180C ] }; // `: FVS1, FVS2 key { [ U186F, U1872 ] }; // Z: ᡯ SIBE ZA, ᡲ SIBE ZHA key { [ U1867, U1867 ] }; // X: ᡧ SIBE SHA key { [ U186E, U1871 ] }; // C: ᡮ SIBE TSA, ᡱ SIBE CHA key { [ U1861, U1861 ] }; // V: ᡡ SIBE U key { [ U182A, U182A ] }; // B: ᠪ BA key { [ U1828, U1862 ] }; // N: ᠨ NA, ᡢ SIBE ANG key { [ U182E, U182E ] }; // M: ᠮ MA key { [ U1808, U1808 ] }; // ,: ᠈ key { [ U1809, U1809 ] }; // .: ᠉ key { [ question, question ] }; // /: , ? }; // Mongolian Bichig Galik Keyboard Map for XKB/X.Org // // by Maurizio M. Gavioli , 2019 from PRC // standard GB/T 28038-2011, par. 4.7. partial alphanumeric_keys xkb_symbols "mon_trad_galik" { include "us(basic)" name[Group1]= "Mongolian Galik"; key { [ U180D, U180D ] }; // ~: FVS3 key { [ U1811, U1811 ] }; // 1: ᠑ key { [ U1812, U1812 ] }; // 2: ᠒ key { [ U1813, U1813 ] }; // 3: ᠓ key { [ U1814, U1814 ] }; // 4: ᠔ key { [ U1815, U1815 ] }; // 5: ᠕ key { [ U1816, U200C ] }; // 6: ᠖, ZWNJ key { [ U1817, U1817 ] }; // 7: ᠗ key { [ U1818, U200D ] }; // 8: ᠘, ZWJ key { [ U1819, U1919 ] }; // 9: ᠙ key { [ U1810, U1910 ] }; // 0: ᠐ key { [ U202F, U180E ] }; // -: NNBSP, MVS key { [ VoidSymbol, VoidSymbol ] }; // +: --- key { [ U1880, U1827 ] }; // Q: ᢀ ALI GALI ANUNASVARA ONE, ᠧ EE key { [ U1881, U1823 ] }; // W: ᢁ ALI GALI VISARGA ONE, ᠣ O key { [ U1882, U1821 ] }; // E: ᢂ ALI GALI DAMARU, ᠡ E key { [ U1883, U1883 ] }; // R: ᢃ ALI GALI UBADAMA key { [ U1884, U1884 ] }; // T: ᢄ ALI GAL INVERTED UDADAMA key { [ U1885, U1885 ] }; // Y: ᢅ ALI GALI BALUDA key { [ U1886, U1826 ] }; // U: ᢆ ALI GALI THREE BALUDA, ᠦ UE key { [ U1887, U1822 ] }; // I: ᢇ ALI GALI A, ᠢ I key { [ U1888, U1888 ] }; // O: ᢈALI GALI I key { [ U1889, U1889 ] }; // P: ᢉ ALI GALI KA key { [ U188A, U188A ] }; // [: ᢊ ALI GALI NGA key { [ U1895, U1895 ] }; // ]: ᢕ ALI GALI ZHA key { [ VoidSymbol, VoidSymbol ] }; // \: -- key { [ U188B, U1820 ] }; // A: ᠀ ALI GALI CA,ᠠ A key { [ U188C, U188C ] }; // S: ᡛ ALI GALI TTA key { [ U188D, U188D ] }; // D: ᢍ ALI GALI THA key { [ U188E, U188E ] }; // F: ᢎ ALI GALI DDA key { [ U188F, U188F ] }; // G: ᢏ ALI GALI NNA key { [ U1890, U1890 ] }; // H: ᢐ ALI GALI TA key { [ U1891, U1853 ] }; // J: ᢑ ALI GALI DA, ᡓ TODO JA key { [ U1892, U1858 ] }; // K: ᢒ ALI GALI PA, ᡘ TODO GAA key { [ U1893, U1893 ] }; // L: ᢓ ALI GALI PHA key { [ U1894, U1894 ] }; // ;: ᢔ ALI GALI SSA key { [ U180B, U180C ] }; // `: FVS1, FVS2 key { [ U1896, U185C ] }; // Z: ᢖ ALI GALI ZA, ᡜ TODO DZA key { [ U1897, U1897 ] }; // X: ᢗ ALI GALI AH key { [ U18A6, U18A6 ] }; // C: ᢦ ALI GALI HALF U key { [ U18A7, U1824 ] }; // V: ᢦ ALI GALI HALF YA ,ᠤ U key { [ U18A9, U18A9 ] }; // B: ᢩ ALI GALI DAGALGA key { [ U1805, U1805 ] }; // N: ᠅ key { [ U1800, U185B ] }; // M: ᠀ BIRGA, ᡛ TODO NYA key { [ U1802, U1802 ] }; // ,: ᠂ key { [ U1803, U1803 ] }; // .: ᠃ key { [ VoidSymbol, VoidSymbol ] }; // /: }; // Mongolian Todo Galik Keyboard Map for XKB/X.Org // // by Maurizio M. Gavioli , 2019 from PRC // standard GB/T 28038-2011, par. 4.8. partial alphanumeric_keys xkb_symbols "mon_todo_galik" { include "us(basic)" name[Group1]= "Mongolian Todo Galik"; key { [ U180D, U180D ] }; // ~: FVS3 key { [ U1811, U1811 ] }; // 1: ᠑ key { [ U1812, U1812 ] }; // 2: ᠒ key { [ U1813, U1813 ] }; // 3: ᠓ key { [ U1814, U1843 ] }; // 4: ᠔, ᡃ TODO LONG VOWEL SIGN key { [ U1815, U1815 ] }; // 5: ᠕ key { [ U1816, U200C ] }; // 6: ᠖, ZWNJ key { [ U1817, U1817 ] }; // 7: ᠗ key { [ U1818, U200D ] }; // 8: ᠘, ZWJ key { [ U1819, U1919 ] }; // 9: ᠙ key { [ U1810, U1910 ] }; // 0: ᠐ key { [ U202F, U202F ] }; // -: NNBSP key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ U1880, U1880 ] }; // Q: ᢀ ALI GALI ANUNASVARA ONE key { [ U1881, U1846 ] }; // W: ᢁ ALI GALI VISARGA ONE, ᡆ TODO O key { [ U1882, U1844 ] }; // E: ᢂ ALI GALI DAMARU, ᡄ TODO E key { [ U1883, U1883 ] }; // R: ᢃ ALI GALI UBADAMA key { [ U1884, U1884 ] }; // T: ᢄ ALI GAL INVERTED UDADAMA key { [ U1885, U1885 ] }; // Y: ᢅ ALI GALI BALUDA key { [ U1886, U1849 ] }; // U: ᢆ ALI GALI THREE BALUDA, ᡉ TODO UE key { [ U1889, U1845 ] }; // I: ᢉ ALI GALI KA, ᡅ TODO I key { [ U188A, U188A ] }; // O: ᢊ ALI GALI NGA key { [ U1887, U1887 ] }; // P: ᢇ ALI GALI A key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ U188B, U1820 ] }; // A: ᢋ ALI GALI CA, ᠠ A key { [ U188C, U188C ] }; // S: ᢌ ALI GALI TTA key { [ U188D, U188D ] }; // D: ᢍ ALI GALI THA key { [ U188E, U188E ] }; // F: ᢎ ALI GALI DDA key { [ U188F, U188F ] }; // G: ᢏ ALI GALI NNA key { [ U1894, U1894 ] }; // ;: ᢔ ALI GALI SSA key { [ U1896, U1896 ] }; // Z: ᢖ ALI GALI ZA key { [ U1897, U1897 ] }; // X: ᢗ ALI GALI AH key { [ U1898, U1898 ] }; // L: ᢘ TODO ALI GALI TA key { [ U1892, U1892 ] }; // K: ᢒ ALI GALI PA key { [ U180B, U180C ] }; // `: FVS1, FVS2 key { [ U1899, U1899 ] }; // Z: ᢙ TODO ALI GALI ZHA key { [ U18A7, U18A6 ] }; // X: ᢧ ALI GALI HALF YA key { [ U1893, U1893 ] }; // C: ᢓ ALI GALI PHA key { [ U1847, U1847 ] }; // V: ᡇ TODO U key { [ U18A9, U18A9 ] }; // B: ᢩ ALIGALI DAGALGA key { [ U1805, U1805 ] }; // N: ᠅ FOUR DOTS key { [ U1800, U185B ] }; // M: ᠀ BIRGA, ᡛ TODO NIA key { [ U1802, U1802 ] }; // ,: ᠂ COMMA key { [ U1803, U1803 ] }; // .: ᠃ FULL STOP key { [ VoidSymbol, VoidSymbol ] }; // /: --- }; // Mongolian Manchu Galik Keyboard Map for XKB/X.Org // // by Maurizio M. Gavioli , 2019 from PRC // standard GB/T 28038-2011, par. 4.9. partial alphanumeric_keys xkb_symbols "mon_manchu_galik" { include "us(basic)" name[Group1]= "Mongolian Manchu Galik"; key { [ U180D, U180D ] }; // ~: FVS3 key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, U200C ] }; // 6: --, ZWNJ key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, U200D ] }; // 8: 8, ZWJ key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ U202F, U202F ] }; // -: NNBSP key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ U1880, U1880 ] }; // Q: ᢀ ALI GALI ANUNASVARA ONE key { [ U1881, U1881 ] }; // W: ᢁ ALI GALI VISARGA ONE key { [ U1882, U185D ] }; // E: ᢂ ALI GALI DAMARU, ᡝ SIBE E key { [ U1883, U1883 ] }; // R: ᢃ ALI GALI UBADAMA key { [ U1884, U1884 ] }; // T: ᢄ ALI GAL INVERTED UDADAMA key { [ U1885, U1885 ] }; // Y: ᢅ ALI GALI BALUDA key { [ U1886, U1860 ] }; // U: ᢆ ALI GALI THREE BALUDA, ᡠ SIBE UE key { [ U1887, U1873 ] }; // I: ᢇ ALI GALI A, ᡳ MANCHU I key { [ U1888, U1823 ] }; // O: ᢈ ALI GALI I, ᠣ O key { [ U188F, U188F ] }; // P: ᢏ ALI GALI NNA key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ U1892, U1820 ] }; // A: ᢒ ALI GALI PA, ᠠ A key { [ U189A, U189A ] }; // S: ᢚ MANCHU ALI GALI GHA key { [ U189B, U189B ] }; // D: ᢛ MANCHU ALI GALI NGA key { [ U189C, U189C ] }; // F: ᢜ MANCHU ALI GALI CA key { [ U189D, U189D ] }; // G: ᢝ MANCHU ALI GALI JHA key { [ U189E, U189E ] }; // H: ᢞ MANCHU ALI GALI TTA key { [ U189F, U189F ] }; // J: ᢟ MANCHU ALI GALI DDHA key { [ U18A0, U18A0 ] }; // K: ᢠ MANCHU ALI GALI TA key { [ U18A1, U18A1 ] }; // L: ᢡ MANCHU ALI GALI DHA key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ U180B, U180C ] }; // `: FVS1, FVS2 key { [ U18A2, U18A2 ] }; // Z: ᢢ MANCHU ALI GALI SSA key { [ U18A3, U18A3 ] }; // X: ᢣ MANCHU ALI GALI CYA key { [ U18A4, U18A4 ] }; // C: ᢤ MANCHU ALI GALI ZHA key { [ U18A5, U1861 ] }; // V: ᢥ MANCHU ALI GALI ZA, ᡡ SIBE U key { [ U18A8, U18A8 ] }; // B: ᢨ MANCHU ALI GALI BHA key { [ U18AA, U18AA ] }; // N: ᢪ MANCHU ALI GALI LHA key { [ VoidSymbol, VoidSymbol ] }; // /: --- key { [ U1808, U1808 ] }; // ,: ᠈ key { [ U1809, U1809 ] }; // .: ᠉ key { [ VoidSymbol, VoidSymbol ] }; // /: --- }; PK(f[!#f  symbols/mknu[// based on keyboard map: // Author: Damjan Georgievski // Revision: 1.5 default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Macedonian"; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_lje, Cyrillic_LJE ] }; key { [ Cyrillic_nje, Cyrillic_NJE ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_dzhe, Cyrillic_DZHE ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Macedonia_dse, Macedonia_DSE ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_je, Cyrillic_JE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Macedonia_kje, Macedonia_KJE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Macedonia_gje, Macedonia_GJE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ equal, plus ] }; key { [ minus, underscore ] }; key { [ dead_grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, doublelowquotemark ] }; key { [ 3, leftdoublequotemark ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ slash, question ] }; include "kpdl(comma)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "mk(basic)" name[Group1]= "Macedonian (no dead keys)"; key { [ grave, asciitilde ] }; }; PK(f[N symbols/aunu[// // Default Australian is the same as American // default partial alphanumeric_keys xkb_symbols "basic" { include "us(basic)" name[Group1]= "English (Australian)"; }; PK(f[O symbols/cdnu[// based on us_intl keyboard map file and a Sinhala keyboard map // version 0.3 default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "French (Democratic Republic of the Congo)"; key.type[Group1] = "FOUR_LEVEL"; // GRAVE, TILDE, COMBINING TILDE key { [ grave, asciitilde, 0x01000303 ] }; key { [ ampersand, 1, numbersign ] }; key { [0x01000301, 2, at ] }; key { [0x01000300, 3, guillemotleft ] }; key { [ parenleft, 4, bracketleft ] }; key { [ braceleft, 5, less ] }; key { [ braceright, 6, greater ] }; key { [parenright, 7, bracketright ] }; key { [0x01000302, 8, guillemotright ] }; key { [0x0100030c, 9, 0x0100030D ] }; key { [0x01000308, 0, at ] }; key { [ minus, underscore, percent, degree ] }; key { [ equal, plus, multiply, division ] }; key { [ a, A, ae, AE ] }; key { [ z, Z ] }; key { [ e, E, oe, OE ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U, 0x01000289, 0x01000244 ] }; key { [ i, I, 0x01000268, 0x01000197 ] }; key { [ o, O, oslash, Ooblique ] }; key { [ p, P ] }; key { [0x0100025B, 0x01000190, asciicircum ] }; key { [ asterisk, asciicircum, dollar ] }; key { [ q, Q ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ m, M ] }; key { [0x01000254, 0x01000186 ] }; key { [ backslash, bar ] }; key { [ w, W ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N, 0x0100014B, 0x0100014A ] }; key { [ comma, question, 0x01000327 ] }; key { [ semicolon, period ] }; key { [ colon, slash ] }; key { [ exclam, apostrophe, 0x01002019 ] }; key { [ quotedbl, backslash, bar ] }; // SPACE, SPACE, NO-BREAK SPACE, NARROW NO_BREAK SPACE key { [ space, space, nobreakspace, 0x0100202F ] }; include "level3(ralt_switch)" }; PK(f[-D  symbols/kgnu[// Kirghiz (aka Kyrgyz) Standard Keyboard // // Standard - Phonetic // ______________- ________________ // ё1234567890өң ё1234567890яю // Ё!"№;%:?*()ӨҢ Ё!"№;%:?-()ЯЮ // // йцукенгшщзхъү өүертыуиопчшъ // фывапролджэ асдфгңйклэь // ячсмитьбю.(,) зхжвбнмцщ.(,) // Authors: // Timur Jamakeev // Ilyas Bakirov // Yury Fedorov // Emil Asanov // Ulan Melisbek // Kyrgyz standard keyboard default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Kyrgyz"; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numerosign ] }; key { [ 4, semicolon ] }; key { [ 5, percent ] }; key { [ 6, colon ] }; key { [ 7, question ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; key { [ period, comma ] }; key { [ slash, bar ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; }; // Kyrgyz phonetic layout partial alphanumeric_keys xkb_symbols "phonetic" { name[Group1]="Kyrgyz (phonetic)"; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numerosign ] }; key { [ 4, semicolon ] }; key { [ 5, percent ] }; key { [ 6, colon ] }; key { [ 7, question ] }; key { [ 8, minus ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ period, comma ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; }; PK(f[`;## symbols/gbnu[// based on a keyboard map from an 'xkb/symbols/gb' file default partial alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple en_US // keyboard and a very simple U.K. keyboard layout defined by // the SVR4 European Language Supplement and sometimes also // known as the IBM 166 layout. include "latin" name[Group1]="English (UK)"; key { [ 2, quotedbl, twosuperior, oneeighth ] }; key { [ 3, sterling, threesuperior, sterling ] }; key { [ 4, dollar, EuroSign, onequarter ] }; key { [apostrophe, at, dead_circumflex, dead_caron] }; key { [ grave, notsign, bar, bar ] }; key { [numbersign, asciitilde, dead_grave, dead_breve ] }; key { [ backslash, bar, bar, brokenbar ] }; include "level3(ralt_switch_multikey)" }; partial alphanumeric_keys xkb_symbols "intl" { // Describes the differences between a very simple en_US // keyboard and a very simple U.K. keyboard layout with // dead keys. By Phil Jones (philjones1@blueyonder.co.uk) // Includes the following keys: // dead_grave // dead_acute // dead_circumflex // dead_tilde // dead_diaeresis include "latin" name[Group1]="English (UK, intl., with dead keys)"; key { [ 2, dead_diaeresis, twosuperior, onehalf ] }; key { [ 3, sterling, threesuperior, onethird ] }; key { [ 4, dollar, EuroSign, onequarter ] }; key { [ 6, dead_circumflex, NoSymbol, onesixth ] }; key { [ dead_acute, at, apostrophe, bar ] }; key { [ dead_grave, notsign, bar, bar ] }; key { [ numbersign, dead_tilde, bar, bar ] }; key { [ backslash, bar, bar, bar ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "extd" { // Clone of the Microsoft "English (UK, Extended" layout, which // includes dead keys for: grave; diaeresis; circumflex; tilde; and // accute. It also enables direct access to accute characters using // the Multi_key (Alt Gr). // // Taken from... // "Windows Keyboard Layouts" // http://msdn.microsoft.com/en-us/goglobal/bb964651.aspx // // -- Jonathan Miles include "latin" name[Group1]="English (UK, extended, with Win keys)"; key { [ dead_grave, notsign, brokenbar, NoSymbol ] }; key { [ 2, quotedbl, dead_diaeresis, onehalf ] }; key { [ 3, sterling, threesuperior, onethird ] }; key { [ 4, dollar, EuroSign, onequarter ] }; key { [ 6, asciicircum, dead_circumflex, NoSymbol ] }; key { [ w, W, wacute, Wacute ] }; key { [ e, E, eacute, Eacute ] }; key { [ y, Y, yacute, Yacute ] }; key { [ u, U, uacute, Uacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ a, A, aacute, Aacute ] }; key { [ apostrophe, at, dead_acute, NoSymbol ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ numbersign, asciitilde, dead_tilde, NoSymbol ] }; key { [ backslash, bar, NoSymbol, NoSymbol ] }; include "level3(ralt_switch)" }; // Describe the differences between the US Colemak layout // and a UK variant. By Andy Buckley (andy@insectnation.org) partial alphanumeric_keys xkb_symbols "colemak" { include "us(colemak)" name[Group1]="English (UK, Colemak)"; key { [ 2, quotedbl, twosuperior, oneeighth ] }; key { [ 3, sterling, threesuperior, sterling ] }; key { [ 4, dollar, EuroSign, onequarter ] }; key { [apostrophe, at, dead_circumflex, dead_caron] }; key { [ grave, notsign, bar, bar ] }; key { [numbersign, asciitilde, dead_grave, dead_breve ] }; key { [ backslash, bar, bar, brokenbar ] }; include "level3(ralt_switch_multikey)" }; // Dvorak (UK) keymap (by odaen) allowing the usage of // the £ and ? key and swapping the @ and " keys. partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak-alt-intl)" name[Group1]="English (UK, Dvorak)"; key { [ apostrophe, at ] }; key { [ 2, quotedbl, twosuperior, NoSymbol ] }; key { [ 3, sterling, threesuperior, NoSymbol ] }; key { [ numbersign, asciitilde ] }; key { [ backslash, bar ] }; key { [ grave, notsign, bar, bar ] }; }; // Dvorak letter positions, but punctuation all in the normal UK positions. partial alphanumeric_keys xkb_symbols "dvorakukp" { include "gb(dvorak)" name[Group1]="English (UK, Dvorak, with UK punctuation)"; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ slash, question ] }; key { [apostrophe, at, dead_circumflex, dead_caron] }; }; // Copied from macintosh_vndr/gb partial alphanumeric_keys xkb_symbols "mac" { // Describes the differences between a very simple en_US // keyboard and a very simple U.K. keyboard layout include "latin" name[Group1]= "English (UK, Macintosh)"; key { [ 2, at, EuroSign ] }; key { [ 3, sterling, numbersign ] }; key { [ section, plusminus ] }; key { [ grave, asciitilde ] }; include "level3(ralt_switch)" include "level3(enter_switch)" }; partial alphanumeric_keys xkb_symbols "mac_intl" { include "latin" name[Group1]="English (UK, intl., Macintosh)"; key { [ 2, at, EuroSign, onehalf ] }; key { [ 3, sterling, twosuperior, onethird ] }; key { [ 4, dollar, threesuperior, onequarter ] }; key { [ 6, dead_circumflex, NoSymbol, onesixth ] }; key { [ o, O, oe, OE ] }; key { [ dead_acute, dead_diaeresis, dead_diaeresis, bar ] }; //dead_doubleacute key { [ section, plusminus, notsign, notsign ] }; //dead_grave key { [ backslash, bar, numbersign, bar ] }; key { [ dead_grave, dead_tilde, brokenbar, bar ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "pl" { // Polish layout based on British keyboard // Adopted 2016 by Aleksander Kowalski include "latin" name[Group1]="Polish (British keyboard)"; key { [ 2, quotedbl, twosuperior, oneeighth ]}; key { [ 3, sterling, threesuperior, sterling ]}; key { [ 4, dollar, EuroSign, onequarter ]}; key { [apostrophe, at, dead_circumflex, dead_caron]}; key { [ grave, notsign, bar, bar ]}; key { [numbersign, asciitilde, dead_grave, dead_breve ]}; key { [ backslash, bar, bar, brokenbar ]}; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E, eogonek, Eogonek ] }; key { [ o, O, oacute, Oacute ] }; key { [ a, A, aogonek, Aogonek ] }; key { [ s, S, sacute, Sacute ] }; key { [ f, F ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ x, X, zacute, Zacute ] }; key { [ c, C, cacute, Cacute ] }; key { [ n, N, nacute, Nacute ] }; include "level3(ralt_switch)" }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/gb(sun_type6)" }; PK(f[qcc symbols/plnu[// based on a keyboard map from an 'xkb/symbols/pl' file default partial alphanumeric_keys xkb_symbols "basic" { // Visualisation and description: http://podziemie.net/xkb/pl // Contact: Michał Górny include "latin" name[Group1]="Polish"; key { [ 1, exclam, notequal, exclamdown ] }; key { [ 2, at, twosuperior, questiondown ] }; key { [ 4, dollar, cent, onequarter ] }; key { [ 5, percent, EuroSign, U2030 ] }; key { [ 6, asciicircum, onehalf, logicaland ] }; key { [ 7, ampersand, section, U2248 ] }; key { [ 8, asterisk, periodcentered, threequarters ] }; key { [ 9, parenleft, guillemotleft, plusminus ] }; key { [ 0, parenright, guillemotright, degree ] }; key { [ minus, underscore, endash, emdash ] }; key { [ q, Q, Greek_pi, Greek_OMEGA ] }; key { [ w, W, oe, OE ] }; key { [ e, E, eogonek, Eogonek ] }; key { [ r, R, copyright, registered ] }; key { [ t, T, ssharp, trademark ] }; key { [ i, I, rightarrow, U2194 ] }; key { [ o, O, oacute, Oacute ] }; key { [ a, A, aogonek, Aogonek ] }; key { [ s, S, sacute, Sacute ] }; key { [ f, F, ae, AE ] }; key { [ h, H, rightsinglequotemark, U2022 ] }; key { [ j, J, schwa, SCHWA ] }; key { [ k, K, ellipsis, dead_stroke ] }; key { [ grave, asciitilde, notsign, logicalor ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ x, X, zacute, Zacute ] }; key { [ c, C, cacute, Cacute ] }; key { [ v, V, doublelowquotemark, leftsinglequotemark ] }; key { [ b, B, rightdoublequotemark, leftdoublequotemark ] }; key { [ n, N, nacute, Nacute ] }; key { [ m, M, mu, infinity ] }; key { [ comma, less, lessthanequal, multiply ] }; key { [ period, greater, greaterthanequal, division ] }; key { [ space, space, nobreakspace, nobreakspace ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "legacy" { include "latin" name[Group1]="Polish (legacy)"; key { [ e, E, eogonek, Eogonek ] }; key { [ u, U, EuroSign, cent ] }; key { [ o, O, oacute, Oacute ] }; key { [ a, A, aogonek, Aogonek ] }; key { [ s, S, sacute, Sacute ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ x, X, zacute, Zacute ] }; key { [ c, C, cacute, Cacute ] }; key { [ n, N, nacute, Nacute ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "qwertz" { include "latin(type3)" name[Group1]="Polish (QWERTZ)"; key { [ 1, exclam, asciitilde, exclamdown ] }; key { [ 2, quotedbl, dead_caron, oneeighth ] }; key { [ 3, numbersign, dead_circumflex, sterling ] }; key { [ 4, dollar, dead_breve, dollar ] }; key { [ 5, percent, degree, threeeighths ] }; key { [ 6, ampersand, dead_ogonek, fiveeighths ] }; key { [ 7, slash, dead_grave, seveneighths ] }; key { [ 8, parenleft, dead_abovedot, trademark ] }; key { [ 9, parenright, dead_acute, plusminus ] }; key { [ 0, equal, dead_doubleacute, degree ] }; key { [ plus, question, dead_diaeresis, questiondown ] }; key { [apostrophe, asterisk, dead_cedilla, dead_ogonek ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E, EuroSign, cent ] }; key { [ zabovedot, nacute, division, dead_abovering ] }; key { [ sacute, cacute, multiply, dead_macron ] }; key { [ s, S, dstroke, section ] }; key { [ d, D, Dstroke, ETH ] }; key { [ f, F ] }; key { [ k, K, kra, ampersand ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ lstroke, Lstroke, dollar, dead_doubleacute ] }; key { [ aogonek, eogonek, ssharp, dead_caron ] }; key { [ abovedot, dead_ogonek, notsign, notsign ] }; key { [ oacute, zacute, dead_grave, dead_breve ] }; key { [ c, C, cent, copyright ] }; key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; // Polish Dvorak keymaps // by Rafal Rzepecki // The base keymap "pl" places Polish quotes on quotemark key and // moves the dead symbols from there to "1/!" key. If you are used to common // dead keys placement, you could use "pl_altquotes"; in this layout // dead keys remain in the old place, whereas Polish quotes are placed on the // "1/!" key. If you do not use Polish quotes at all, you can use "pl_basic" map. // Basic Polish keymap (without Polish quotes) partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" name[Group1] = "Polish (Dvorak)"; key { [ c, C, cacute, Cacute ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ a, A, aogonek, Aogonek ] }; key { [ o, O, oacute, Oacute ] }; key { [ e, E, eogonek, Eogonek ] }; key { [ n, N, nacute, Nacute ] }; key { [ s, S, sacute, Sacute ] }; key { [ v, V, zacute, Zacute ] }; key { [ z, Z, zabovedot, Zabovedot ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; // Default Polish keymap with Polish quotes on quotemark key partial alphanumeric_keys xkb_symbols "dvorak_quotes" { include "pl(dvorak)" name[Group1] = "Polish (Dvorak, with Polish quotes on quotemark key)"; key { [ apostrophe, quotedbl, doublelowquotemark, rightdoublequotemark ] }; // Dead symbols moved to this key key { [ 1, exclam, dead_acute, dead_diaeresis ] }; }; // Polish keymap with Polish quotes on key "1/!" partial alphanumeric_keys xkb_symbols "dvorak_altquotes" { include "pl(dvorak)" name[Group1] = "Polish (Dvorak, with Polish quotes on key 1)"; key { [ 1, exclam, doublelowquotemark, rightdoublequotemark ] }; }; // Polish programmer Dvorak keymap by Michal Nazarewicz // based on programmer Dvorak by Roland Kaufmann // and Polish Dvorak keymaps by Rafal Rzepecki { [ ampersand, percent, doublelowquotemark, rightdoublequotemark ] }; // symbols row, right side // upper row, left side // upper row, right side key { [ c, C, cacute, Cacute ] }; key { [ l, L, lstroke, Lstroke ] }; // home row, left side key { [ a, A, aogonek, Aogonek ], type[Group1] = "EIGHT_LEVEL_ALPHABETIC" }; key { [ o, O, oacute, Oacute ] }; key { [ e, E, eogonek, Eogonek ] }; // home row, right side key { [ n, N, nacute, Nacute ] }; key { [ s, S, sacute, Sacute ] }; // lower row, left side key { [ j, J, doublelowquotemark, rightdoublequotemark ] }; key { [ k, K, leftdoublequotemark, leftsinglequotemark ] }; key { [ x, X, zacute, Zacute ] }; // lower row, right side key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; key { [ v, V, zacute, Zacute ] }; key { [ z, Z, zabovedot, Zabovedot ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; // Silesian keyboard layout by Grzegorz Kulik // and Przemysław Buczkowski . // See http://poslunsku.eu/2012/07/slonsko-slabikorzowo-klawiatura-na-windows-i-ubuntu/ // for a description. partial alphanumeric_keys xkb_symbols "szl" { include "latin" name[Group1]="Silesian"; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E, atilde, Atilde ] }; key { [ o, O, ocircumflex, Ocircumflex ] }; key { [ u, U, omacron, Omacron ] }; key { [ p, P, otilde, Otilde ] }; key { [ a, A, U014F, U014E ] }; key { [ s, S, sacute, Sacute ] }; key { [ f, F ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ x, X, zacute, Zacute ] }; key { [ c, C, cacute, Cacute ] }; key { [ n, N, nacute, Nacute ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "csb" { include "latin" name[Group1]="Kashubian"; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E, eacute, Eacute ] }; key { [ r, R, ediaeresis, Ediaeresis ] }; key { [ y, Y, EuroSign, cent ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, ograve, Ograve ] }; key { [ o, O, oacute, Oacute ] }; key { [ p, P, ocircumflex, Ocircumflex ] }; key { [ a, A, aogonek, Aogonek ] }; key { [ s, S, atilde, Atilde ] }; key { [ f, F ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ n, N, nacute, Nacute ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; // Russian Polish-phonetic Dvorak // by Adrian Dziubek // // This layout aims to enable Polish Dvorak users to type with Russian // Cyrillic alphabet by using the sound correspondence between Polish and // Russian languages. // // This keyboard should be intuitive. Please let me know, if my intuition // lets You down. // // The guidelines used: // - no Cyrillic symbols are placed on punctuation symbols, // - visual similarities are ignored if there is a sound correspondence: // no Cyrillic_es on c, no Cyrillic_er on p, no Cyrillic_ha on x etc., // - the Latin symbols that have close sound correspondence (as read in Polish) // to Cyrillic symbols (as read in Russian) are mapped respectively: // * j -> Cyrillic_shorti, // * k -> Cyrillic_ka, // * b -> Cyrillic_be, // * m -> Cyrillic_em, // * w -> Cyrillic_ve, // * z -> Cyrillic_ze // * a -> Cyrillic_a, // * o -> Cyrillic_o, // * u -> Cyrillic_u, // * i -> Cyrillic_i, // * d -> Cyrillic_de, // * h -> Cyrillic_ha, // * t -> Cyrillic_te, // * n -> Cyrillic_en, // * s -> Cyrillic_es, // * p -> Cyrillic_pe, // * y -> Cyrillic_yeru, // * f -> Cyrillic_ef, // * g -> Cyrillic_ghe, // * c -> Cyrillic_tse, // * r -> Cyrillic_er, // * l -> Cyrillic_el, // - ...and little more distant: // * AltGr + s (sacute) -> Cyrillic_sha, // * AltGr + z (zabovedot) -> Cyrillic_zhe, // * AltGr + c (cacute) -> Cyrillic_che, // - the soft versions of Russian vowels are accessible through AltGr + vowel: // * AltGr + a -> Cyrillic_ya, // * AltGr + o -> Cyrillic_io, // * AltGr + u -> Cyrillic_yu, // - ...except for Cyrillic_ie which is more frequently used than Cyrillic_e: // * AltGr + e -> Cyrillic_e, // * e -> Cyrillic_ie, // - q is also mapped to Cyrillic_ya, following the US phonetic keyboard // choice, as Cyrillic_ya and Cyrillic_a are both often used: // * q -> Cyrillic_ya, // - the soft and hard symbols that have no Polish counterparts are mapped // to rarely used in Polish x character: // * x -> Cyrillic_softsign // * AltGr + x -> Cyrillic_hardsign, // - the soft sign is additionally available as AltGr + consonant combination // for every consonant that can be softened or separated by soft sign: // * AltGr + l -> Cyrillic_softsign, // * AltGr + d -> Cyrillic_softsign, // * AltGr + n -> Cyrillic_softsign, // * AltGr + r -> Cyrillic_softsign, // * AltGr + t -> Cyrillic_softsign, // * AltGr + p -> Cyrillic_softsign, // - ...and also because of visual similarity under level3 b: // * AltGr + b -> Cyrillic_softsign, // * Shift + AltGr + b -> Cyrillic_hardsign, // - the Cyrillic_shcha symbol is placed under AltGr + w (visual similarity): // * AltGr + w -> Cyrillic_shcha // - v, also rarely unused in Polish is mapped like w: // * v -> Cyrillic_ve, // partial alphanumeric_keys xkb_symbols "ru_phonetic_dvorak" { include "us(dvorak)" name[Group1] = "Russian (Poland, phonetic Dvorak)"; // lower row key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_be, Cyrillic_BE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE, Cyrillic_zhe, Cyrillic_ZHE ] }; // home row key { [ Cyrillic_a, Cyrillic_A, Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_de, Cyrillic_DE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_te, Cyrillic_TE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_es, Cyrillic_ES, Cyrillic_sha, Cyrillic_SHA ] }; // upper row key { [ Cyrillic_pe, Cyrillic_PE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_er, Cyrillic_ER, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_el, Cyrillic_EL, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; // EXTRAS: // A Polish keymap with a comprehensive set of quotes, dashes, and dead accents // // See http://marcinwolinski.pl/keyboard/ for a description. // // ┌────┐ // │ 2 4│ 2 = Shift, 4 = Level3 + Shift // │ 1 3│ 1 = Normal, 3 = Level3 // └────┘ // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ˙ │ ( ̣ │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back ┃ // │ ` ` │ 1 ¡ │ 2 © │ 3 • │ 4 § │ 5 € │ 6 ¢ │ 7 − │ 8 × │ 9 ÷ │ 0 ° │ - – │ = — ┃ space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ Q │ W │ E Ę │ R │ T │ Y │ U │ I │ O Ó │ P │ { « │ } » ┃ Enter ┃ // ┃Tab ↹ ┃ q │ w │ e ę │ r │ t │ y │ u │ i │ o ó │ p │ [ ‹ │ ] › ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ A Ą │ S Ś │ D │ F │ G │ H │ J │ K │ L Ł │ : “ │ " ” │ | ¶ ┃ ┃ // ┃Caps ⇬ ┃ a ą │ s ś │ d │ f │ g │ h │ j │ k │ l ł │ ; ‘ │ ' ’ │ \ ┃ ┃ // ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ │ Z Ż │ X Ź │ C Ć │ V │ B │ N Ń │ M │ < „ │ > · │ ? ¿ ┃ ┃ // ┃Shift ⇧ │ z ż │ x ź │ c ć │ v │ b │ n ń │ m │ , ‚ │ . … │ / ⁄ ┃Shift ⇧ ┃ // ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Space ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "intl" { include "latin(intl)" name[Group1]="Polish (intl., with dead keys)"; key { [ e, E, eogonek, Eogonek ] }; key { [ o, O, oacute, Oacute ] }; key { [ a, A, aogonek, Aogonek ] }; key { [ s, S, sacute, Sacute ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ x, X, zacute, Zacute ] }; key { [ c, C, cacute, Cacute ] }; key { [ n, N, nacute, Nacute ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; // Polish Colemak // by Tomek Piotrowski // partial alphanumeric_keys xkb_symbols "colemak" { include "us(colemak)" name[Group1]= "Polish (Colemak)"; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ x, X, zacute, Zacute ] }; key { [ c, C, cacute, Cacute ] }; key { [ a, A, aogonek, Aogonek ] }; key { [ s, S, sacute, Sacute ] }; key { [ n, N, nacute, Nacute ] }; key { [ e, E, eogonek, Eogonek ] }; key { [ o, O, oacute, Oacute ] }; key { [ l, L, lstroke, Lstroke ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/pl(sun_type6)" }; //Glagolica partial alphanumeric_keys xkb_symbols "glagolica" { name[Group1] = "Polish (Glagolica)"; key { [ U2C21, U2C23, any, any ] };//q/Q/Ⱑ/Ⱓ key { [ U2C02, U2C19, any, any ] };//w/W/Ⰲ/Ⱉ/ key { [ U2C05, U2C27, U2C24, U2C25 ] };//e/E/Ⰵ/Ⱗ/Ⱔ/Ⱕ key { [ U2C13, U2C13, any, any ] };//r/R/Ⱃ/Ⱃ key { [ U2C15, U2C15, any, any ] };//t/T/Ⱅ/Ⱅ key { [ U2C09, U2C0A, U2C20, any ] };//y/Y/Ⰹ/Ⰺ/Ⱐ key { [ U2C16, U2C16, any, any ] };//u/U/Ⱆ/ key { [ U2C0B, U2C09, any, any ] };//i/I/Ⰻ/Ⰹ key { [ U2C11, U2C19, U2C41, any ] };//o/O/Ⱁ/Ⱉ/ⱁ key { [ U2C12, U2C1A, any, any ] };//p/P/Ⱂ/Ⱊ key { [ U2C1E, U2C26, any, any ] };//[/{/Ⱎ/Ⱖ key { [ U2C1B, U2C29, any, any ] };//]/}/Ⱋ/Ⱙ key { [ U2C00, U2C00, U2C28, U2C29 ] };//a/A/Ⰰ/Ⰰ/Ⱘ/Ⱙ key { [ U2C14, U2C1E, any, any ] };//[/{/Ⱄ/Ⱎ key { [ U2C04, U2C04, any, any ] };//d/D/Ⰴ/Ⰴ key { [ U2C17, U2C2A, any, any ] };//f/F/Ⱇ/Ⱚ key { [ U2C03, U2C03, any, any ] };//g/G/Ⰳ/Ⰳ key { [ U2C18, U2C18, any, any ] };//h/H/Ⱈ/Ⱈ key { [ U2C0A, U2C0A, any, any ] };//j/J/Ⰺ/Ⰺ key { [ U2C0D, U2C0D, any, any ] };//k/K/Ⰽ/Ⰽ key { [ U2C0E, U2C0E, any, any ] };//l/L/Ⰾ/Ⰾ key { [ U2C0C, any, any, any ] };//\/|/Ⰼ key { [ U2C28, U2C24, any, any ] };//;/:/Ⱘ/Ⱔ key { [ U2C06, any, any, any ] };//'/"/Ⰶ key { [ U2C08, U2C07, any, any ] };//z/Z/Ⰸ/Ⰷ key { [ U2C20, U2C1F, any, any ] };//x/X/Ⱐ/Ⱏ key { [ U2C1C, U2C1D, any, any] };//c/C/Ⱌ/Ⱍ key { [ U2C02, U2C2B, any, any ] };//v/V/Ⰲ/Ⱛ key { [ U2C01, U2C01, any, any ] };//b/B/Ⰱ/Ⰱ key { [ U2C10, U2C10, any, any ] };//n/N/Ⱀ/Ⱀ key { [ U2C0F, U2C0F, any, any ] };//m/M/Ⰿ/Ⰿ include "kpdl(comma)" include "level3(ralt_switch)" }; PK(f[X66 symbols/nbspnu[// Let Space key provide No-Break Space (NBSP), Narrow No-Break Space (NNBSP), // Zero-Width Non-Joiner (ZWNJ), and Zero-Width Joiner (ZWJ) for the desired // levels. //////////////////////////////////////// // Only Space partial xkb_symbols "none" { key { type[Group1]="ONE_LEVEL", symbols[Group1]= [ space ] }; }; //////////////////////////////////////// // No-Break Space partial xkb_symbols "level2" { key { type[Group1]="TWO_LEVEL", symbols[Group1]= [ space, nobreakspace ] }; }; // level3 & level3ns provide no-breaking spaces starting from level3 // This is good for typographers but experience shows many users accidently // type no-breaking spaces on the CLI (resulting in errors) // Used by fr(latin9) and lt(std) partial xkb_symbols "level3" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, space, nobreakspace ] }; }; // level3s kills fourth level // Used by ca(multix) partial xkb_symbols "level3s" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, space, nobreakspace, NoSymbol ] }; }; // for this reason pushing no-breaking spaces to level4 is the safe default nowadays partial xkb_symbols "level4" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, space, space, nobreakspace ] }; }; //////////////////////////////////////// // Narrow No-Break Space // level3n provides narrow no-breaking space in addition to the normal one partial xkb_symbols "level3n" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, space, nobreakspace, 0x100202F ] }; }; // level4n provides narrow no-breaking space in addition to the normal one partial xkb_symbols "level4n" { key { type[Group1]="EIGHT_LEVEL", symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] }; }; // level4nl provides narrow no-breaking space in addition to the normal one // without forcing the use of level5 for mostly four-level layouts // Used by fr(oss), be(oss)… partial xkb_symbols "level4nl" { key { type[Group1]="LOCAL_EIGHT_LEVEL", symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] }; }; //////////////////////////////////////// // Zero-Width Non-Joiner & Zero-Width Joiner // Author: Behnam Esfahbod // ZWNJ and ZWJ are widely used in Persian, Kurdinsh, Pashto, Uzbek and other // languages that use PersoArabic script. // ZWNJ on level 2 partial xkb_symbols "zwnj2" { key { type[Group1]="TWO_LEVEL", symbols[Group1]= [ space, 0x100200c ] }; }; // ZWNJ on level 2 // ZWJ on level 3 partial xkb_symbols "zwnj2zwj3" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, 0x100200c, 0x100200d ] }; }; // ZWNJ on level 2 // ZWJ on level 3 // NBSP on level 4 partial xkb_symbols "zwnj2zwj3nb4" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, 0x100200c, 0x100200d, nobreakspace ] }; }; // ZWNJ on level 2 // NBSP on level 3 // Used by ir(ku_ara), af(basic), af(ps), af(uz), af(olpc-fa), af(olpc-ps), af(olpc-uz) partial xkb_symbols "zwnj2nb3" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, 0x100200c, nobreakspace ] }; }; // ZWNJ on level 2 // NBSP on level 3 partial xkb_symbols "zwnj2nb3s" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, 0x100200c, nobreakspace, NoSymbol ] }; }; // ZWNJ on level 2 // NBSP on level 3 // ZWJ on level 4 partial xkb_symbols "zwnj2nb3zwj4" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100200d ] }; }; // ZWNJ on level 2 // NBSP on level 3 // NNBSP on level 4 // Used by ir(pes) partial xkb_symbols "zwnj2nb3nnb4" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100202F ] }; }; // ZWNJ on level 3 // ZWJ on level 4 // Used by in(deva), in(olpc) partial xkb_symbols "zwnj3zwj4" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, space, 0x100200c, 0x100200d ] }; }; // NBSP on level 2 // ZWNJ on level 3 // Used by lk(sin_phonetic) partial xkb_symbols "nb2zwnj3s" { key { type[Group1]="FOUR_LEVEL", symbols[Group1]= [ space, nobreakspace, 0x100200c, NoSymbol ] }; }; PK(f[BB symbols/senu[// based on a keyboard map from an 'xkb/symbols/se' file default partial alphanumeric_keys xkb_symbols "basic" { include "latin(type2)" include "se(se)" }; partial alphanumeric_keys xkb_symbols "se" { name[Group1]="Swedish"; key { [ 5, percent, EuroSign, cent ] }; key { [ plus, question, backslash, questiondown ] }; key { [dead_acute, dead_grave, plusminus, notsign ] }; key { [odiaeresis, Odiaeresis, oslash, Ooblique ] }; key { [adiaeresis, Adiaeresis, ae, AE ] }; key { [ section, onehalf, paragraph, threequarters] }; key { [apostrophe, asterisk, acute, multiply ] }; key { [ space, space, space, nobreakspace ] }; key { [ less, greater, bar, brokenbar ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Modifies the basic Swedish layout to eliminate all dead keys include "latin(type2)" include "latin(type2_nodeadkeys)" include "se(se)" name[Group1]="Swedish (no dead keys)"; key { [ acute, grave, plusminus, notsign ] }; }; // Swedish Dvorak partial alphanumeric_keys xkb_symbols "dvorak" { include "se(basic)" name[Group1]="Swedish (Dvorak)"; key { [ aring, Aring, backslash ] }; key { [ adiaeresis, Adiaeresis, braceleft, bracketleft ] }; key { [ odiaeresis, Odiaeresis, braceright, bracketright ] }; key { [ p, P, thorn, THORN ] }; key { [ y, Y, leftarrow, yen ] }; key { [ f, F, dstroke, ordfeminine ] }; key { [ g, G, eng, ENG ] }; key { [ c, C, copyright, copyright ] }; key { [ r, R, registered, registered ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; key { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ] }; key { [ a, A, ae, AE ] }; key { [ o, O, oe, OE ] }; key { [ e, E, EuroSign, cent ] }; key { [ u, U, downarrow, uparrow ] }; key { [ i, I, rightarrow, idotless ] }; key { [ d, D, eth, ETH ] }; key { [ h, H, hstroke, Hstroke ] }; key { [ t, T, tslash, Tslash ] }; key { [ n, N ] }; key { [ s, S, ssharp, section ] }; key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; key { [ period, colon, periodcentered, dead_abovedot ] }; key { [ q, Q, at, Greek_OMEGA ] }; key { [ j, J ] }; key { [ k, K, kra, ampersand ] }; key { [ x, X, guillemotright, greater ] }; key { [ b, B, rightdoublequotemark, apostrophe ] }; key { [ m, M, mu, masculine ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ v, V, leftdoublequotemark, grave ] }; key { [ z, Z, guillemotleft, less ] }; }; // Ivan Popov, 2005-07-17 // phonetic layout for Russian cyrillic letters // on Swedish (latin type2) keyboards // level3 modifier is a shortcut to the "se" meaning of the keys where // we place cyrillic letters, handy for accessing the corresponding // punctuation marks. // It is important to have access to punctuation marks, and the rest of // alphabetical keys are added for being consequent so that the users // can expect the level3 modifier to give what the key label shows. partial alphanumeric_keys xkb_symbols "rus" { include "se(basic)" name[Group1]="Russian (Sweden, phonetic)"; key.type[group1]="ALPHABETIC"; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; }; partial alphanumeric_keys xkb_symbols "rus_nodeadkeys" { include "se(nodeadkeys)" include "se(rus)" name[Group1]="Russian (Sweden, phonetic, no dead keys)"; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; }; xkb_symbols "smi" { include "fi(smi)" name[Group1]= "Northern Saami (Sweden)"; }; // Copied from macintosh_vndr/se partial alphanumeric_keys xkb_symbols "mac" { // Describes the differences between a very simple en_US // keyboard and a very simple Swedish(Sweden) keyboard. include "latin" name[Group1]= "Swedish (Macintosh)"; key { [ section, degree ] }; key { [ 1, exclam, copyright, exclamdown ] }; key { [ 2, quotedbl, at, oneeighth ] }; key { [ 3, numbersign, sterling, yen ] }; key { [ 4, currency, dollar, cent ] }; key { [ 6, ampersand ] }; key { [ 7, slash, bar, backslash ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ 0, equal ] }; key { [ plus, question ] }; key { [ acute, grave ] }; key { [ aring, Aring ] }; key { [ diaeresis, asciicircum, asciitilde ] }; key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; key { [ adiaeresis, Adiaeresis, ae, AE ] }; key { [ apostrophe, asterisk, at ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; // Svdvorak // This version of Dvorak follows danish and norwegian style in hope for a // Scandinavian standard. partial alphanumeric_keys xkb_symbols "svdvorak" { include "se(basic)" name[Group1]="Swedish (Svdvorak)"; key { [ aring, Aring, braceleft ] }; key { [ comma, semicolon, bracketleft ] }; key { [ period, colon, bracketright ] }; key { [ p, P, braceright ] }; key { [ y, Y ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ c, C ] }; key { [ r, R ] }; key { [ l, L ] }; key { [ apostrophe, asterisk ] }; key { [ a, A ] }; key { [ o, O, parenleft ] }; key { [ e, E, parenright ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ d, D ] }; key { [ h, H ] }; key { [ t, T ] }; key { [ n, N ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ minus, underscore ] }; key { [ less, greater, bar ] }; key { [ odiaeresis, Odiaeresis ] }; key { [ adiaeresis, Adiaeresis ] }; key { [ q, Q ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ x, X ] }; key { [ b, B ] }; key { [ m, M ] }; key { [ w, W ] }; key { [ v, V ] }; key { [ z, Z ] }; }; partial alphanumeric_keys xkb_symbols "swl" { // // Swedish Sign Language // ISO_639-3 language code: swl // (called “svenskt teckenspråk” in swedish) // // Author: Saašha Metsärantala saasha@acc.umu.se // // A sans-serif font is available at // http://www.acc.umu.se/home/saasha/typsnitt/swl_sans.ttf // include "se(basic)" name[Group1]="Swedish Sign Language"; key { [ 0x110c925, 0x110c95f, 0x110c940, 0x110c99a ] }; key { [ 0x110c96b, 0x110c933, 0x110c920, 0x110c98e ] }; key { [ 0x110c949, 0x110c94b, 0x110c921, 0x110c99f ] }; key { [ 0x110c923, 0x110c92d, 0x110c95c, 0x110c96e ] }; key { [ 0x110c93b, 0x110c927, 0x110c908, 0x110c9a6 ] }; key { [ 0x110c93a, 0x110c94c, 0x110c93e, 0x110c9a7 ] }; key { [ 0x110c95b, 0x110c93f, 0x110c907, 0x110c992 ] }; key { [ 0x110c973, 0x110c924, 0x110c93c, 0x110c9a4 ] }; key { [ 0x110c972, 0x110c945, 0x110c91a, 0x110c99c ] }; key { [ 0x110c979, 0x110c929, 0x110c916, 0x110c999 ] }; key { [ 0x110c976, 0x110c975, 0x110c917, 0x110c994 ] }; key { [ 0x110c95a, 0x110c926, 0x110c918, 0x110c996 ] }; key { [ 0x110c96f, 0x110c932, 0x110c915, 0x110c998 ] }; key { [ 0x110c942, 0x110c922, 0x110c913, 0x110c9a2 ] }; key { [ 0x110c985, 0x110c94e, 0x110c914, 0x110c97a ] }; key { [ 0x110c928, 0x110c948, 0x110c919, 0x110c9a5 ] }; key { [ 0x110c970, 0x110c92b, 0x110c905, 0x110c991 ] }; key { [ 0x110c92e, 0x110c944, 0x110c904, VoidSymbol ] }; key { [ 0x110c96c, 0x110c92a, 0x110c900, 0x110c9a1 ] }; key { [ 0x110c971, 0x110c930, 0x110c903, 0x110c99e ] }; key { [ 0x110c987, 0x110c947, 0x110c90c, 0x110c96d ] }; key { [ 0x110c986, 0x110c92c, 0x110c91b, 0x110c993 ] }; key { [ 0x110c939, 0x110c94a, 0x110c911, 0x110c995 ] }; key { [ 0x110c952, 0x110c943, 0x110c912, 0x110c99b ] }; key { [ 0x110c978, 0x110c977, 0x110c95e, 0x110c9a3 ] }; key { [ 0x110c951, 0x110c931, 0x110c91e, 0x110c997 ] }; key { [ 0x110c90e, 0x110c946, 0x110c906, 0x110c9a0 ] }; key { [ 0x110c91f, 0x110c961, 0x110c91c, VoidSymbol ] }; key { [ 0x110c93d, 0x110c92f, 0x110c902, VoidSymbol ] }; key { [ 0x110c953, 0x110c936, 0x110c988, 0x110c962 ] }; key { [ 0x110c954, 0x110c957, 0x110c97d, 0x110c963 ] }; key { [ 0x110c934, 0x110c937, 0x110c97e, 0x110c983 ] }; key { [ 0x110c955, 0x110c958, 0x110c98a, 0x110c984 ] }; key { [ 0x110c935, 0x110c938, 0x110c97f, 0x110c966 ] }; key { [ 0x110c956, 0x110c959, 0x110c980, 0x110c967 ] }; key { [ 0x110c960, 0x110c969, 0x110c982, 0x110c96a ] }; key { [ 0x110c97c, 0x110c90b, 0x110c989, 0x110c964 ] }; key { [ 0x110c97b, 0x110c90a, 0x110c98b, 0x110c965 ] }; key { [ 0x110c974, 0x110c909, 0x110c98c, 0x110c968 ] }; }; partial alphanumeric_keys xkb_symbols "us" { include "us" name[Group1]="Swedish (US, with Swedish letters)"; key { [ NoSymbol, NoSymbol, odiaeresis, Odiaeresis ] }; key { [ NoSymbol, NoSymbol, adiaeresis, Adiaeresis ] }; key { [ NoSymbol, NoSymbol, aring, Aring ] }; include "level3(ralt_switch)" }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/se(sun_type6)" }; partial alphanumeric_keys xkb_symbols "dvorak_a5" { include "se(basic)" name[Group1]="Swedish (Dvorak A5)"; key { [ dead_acute, dead_grave, plusminus, none ] }; key { [ aring, Aring, braceleft, none ] }; key { [ adiaeresis, Adiaeresis, braceright, none ] }; key { [ odiaeresis, Odiaeresis, bracketleft, none ] }; key { [ p, P, bracketright, none ] }; key { [ y, Y, dollar, none ] }; key { [ f, F, quotedbl, none ] }; key { [ g, G, question, none ] }; key { [ c, C, ampersand, none ] }; key { [ r, R, less, none ] }; key { [ l, L, greater, none ] }; key { [ comma, semicolon, dead_cedilla, none ] }; key { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ] }; key { [ a, A, semicolon, none ] }; key { [ o, O, slash, none ] }; key { [ e, E, parenleft, none ] }; key { [ u, U, parenright, none ] }; key { [ i, I, bar, none ] }; key { [ d, D, numbersign, none ] }; key { [ h, H, asciicircum, none ] }; key { [ t, T, numbersign, none ] }; key { [ n, N, quotedbl, none ] }; key { [ s, S, asciitilde, none ] }; key { [ minus, underscore, grave, none ] }; key { [ period, colon, colon, none ] }; key { [ q, Q, equal, none ] }; key { [ j, J, at, none ] }; key { [ k, K, exclam, none ] }; key { [ x, X, backslash, none ] }; key { [ b, B, percent, none ] }; key { [ m, M, grave, none ] }; key { [ w, W, lstroke, none ] }; key { [ v, V, leftdoublequotemark, none ] }; key { [ z, Z, guillemotleft, none ] }; key { [ apostrophe, asterisk, asterisk, none ] }; }; partial alphanumeric_keys xkb_symbols "ovd" { // Adds combining ogonek (U0328) to the basic Swedish layout to facilitate // typing of Ą ą Ę ę Į į Ų ų Y̨ y̨ Ą̊ ą̊. // The character replaces which is considered dispensable // since ä and ö have their own keys. is still available // via + Å. include "se(basic)" name[Group1]="Elfdalian (Swedish, with combining ogonek)"; key { [ U0328, dead_circumflex, dead_tilde, dead_caron ] }; }; // us_dvorak // Author Thomas Lundqvist http://tlundqvist.org/sv_dvorak/ partial alphanumeric_keys xkb_symbols "us_dvorak" { include "us(dvorak-intl)" name[Group1]="Swedish (based on US Intl. Dvorak)"; key { [ apostrophe, asciitilde, grave, dead_tilde ] }; key { [ 2, quotedbl, at ] }; key { [ 6, asciicircum, dead_circumflex ] }; key { [ aring, Aring, dead_acute ] }; key { [ minus, underscore, bar, dead_macron ] }; key { [ adiaeresis, Adiaeresis, dead_grave, dead_ogonek ] }; key { [ odiaeresis, Odiaeresis, dead_diaeresis, dead_belowdot ] }; key { [ semicolon, colon, backslash ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; PK(f[а#symbols/composenu[partial modifier_keys xkb_symbols "ralt" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "lwin" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "lwin-altgr" { key { type[Group1]="FOUR_LEVEL", [ Super_L, Super_L, Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "rwin" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "rwin-altgr" { key { type[Group1]="FOUR_LEVEL", [ Super_R, Super_R, Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "menu" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "menu-altgr" { key { type[Group1]="FOUR_LEVEL", [ Menu, Menu, Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "rctrl" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "rctrl-altgr" { key { type[Group1]="FOUR_LEVEL", [ Control_R, Control_R, Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "lctrl" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "lctrl-altgr" { key { type[Group1]="FOUR_LEVEL", [ Control_L, Control_L, Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "caps" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "caps-altgr" { key { type[Group1]="FOUR_LEVEL", [ Caps_Lock, Caps_Lock, Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "102" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "102-altgr" { key { type[Group1]="FOUR_LEVEL", [ less, greater, Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "paus" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "prsc" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; partial modifier_keys xkb_symbols "sclk" { key { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] }; }; PK(f[Syuusymbols/eurosignnu[// Most keyboards have the EuroSign engraved on the E key partial xkb_symbols "e" { key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; }; // Many Apple keyboards have the EuroSign engraved on the 2 key partial xkb_symbols "2" { key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; }; // Some keyboards have the EuroSign engraved on the 4 key partial xkb_symbols "4" { key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; }; // Many keyboards have the EuroSign engraved on the 5 key partial xkb_symbols "5" { key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; }; PK(f[*uEE symbols/itnu[// based on a keyboard map from an 'xkb/symbols/it' file // 17 May 2003 Modified by Sebastiano Vigna (vigna@dsi.unimi.it) // 03 December 2017 - Added it(intl) and it(scn), please refer to // Cadèmia Siciliana // 18 July 2018 - Fixed inconsistent 'ì' and 'ù' in it(intl) // Alessandro Pellegrini default partial alphanumeric_keys xkb_symbols "basic" { include "latin(type4)" name[Group1]="Italian"; key { [ backslash, bar, notsign, brokenbar ] }; key { [ 2, quotedbl, twosuperior, dead_doubleacute ] }; key { [ 3, sterling,threesuperior, dead_tilde ] }; key { [ 4, dollar, onequarter, oneeighth ] }; key { [ 0, equal, braceright, dead_ogonek ] }; key { [apostrophe, question, grave, questiondown ] }; key { [ igrave, asciicircum, asciitilde, dead_circumflex ] }; key { [ egrave, eacute, bracketleft, braceleft ] }; key { [ plus, asterisk, bracketright, braceright ] }; key { [ ograve, ccedilla, at, dead_cedilla ] }; key { [ agrave, degree, numbersign, dead_abovering ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ comma, semicolon, dead_acute, multiply ] }; key { [ period, colon,periodcentered, dead_diaeresis ] }; key { [ minus, underscore, dead_macron, division ] }; key { [ ugrave, section, dead_grave, dead_breve ] }; key { [ less, greater,guillemotleft,guillemotright] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Modifies the basic italian layout to eliminate all dead keys include "it(basic)" name[Group1]="Italian (no dead keys)"; key { [ 2, quotedbl, twosuperior, doubleacute ] }; key { [ 3, sterling,threesuperior, asciitilde ] }; key { [ 0, equal, braceright, ogonek ] }; key { [ igrave, asciicircum, asciitilde, asciicircum ] }; key { [ ograve, ccedilla, at, cedilla ] }; key { [ agrave, degree, numbersign, degree ] }; key { [ comma, semicolon, acute, multiply ] }; key { [ period, colon,periodcentered, diaeresis ] }; key { [ minus, underscore, macron, division ] }; key { [ ugrave, section, grave, breve ] }; }; partial alphanumeric_keys xkb_symbols "winkeys" { include "it(basic)" name[Group1]="Italian (Winkeys)"; include "eurosign(5)" }; // Copied from macintosh_vndr/it partial alphanumeric_keys xkb_symbols "mac" { name[Group1]= "Italian (Macintosh)"; key { [ less, greater ] }; key { [ at, numbersign, periodcentered ] }; key { [ ampersand, 1, guillemotleft,guillemotright ] }; key { [ quotedbl, 2 ] }; key { [ apostrophe, 3 ] }; key { [ parenleft, 4, braceleft, bracketleft ] }; key { [ ccedilla, 5, Ccedilla, Iacute ] }; key { [ egrave, 6, paragraph, periodcentered] }; key { [ parenright, 7, braceright, bracketright ] }; key { [ sterling, 8, infinity ] }; key { [ agrave, 9, acute, Ocircumflex ] }; key { [ eacute, 0, grave, Oacute ] }; key { [ minus, underscore ] }; key { [ equal, plus, notequal, plusminus ] }; key { [ q, Q ] }; key { [ z, Z ] }; key { [ e, E, EuroSign ] }; key { [ r, R, registered ] }; key { [ t, T ] }; key { [ y, Y, Uacute, ydiaeresis ] }; key { [ u, U ] }; key { [ i, I, icircumflex, idiaeresis ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ igrave, asciicircum ] }; key { [ dollar, asterisk ] }; key { [ section, degree, at, numbersign ] }; key { [ a, A, aring, Aring ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H, Igrave, Icircumflex ] }; key { [ j, J, Idiaeresis, Iacute ] }; key { [ k, K, Egrave, Ediaeresis ] }; key { [ l, L, ssharp, bar ] }; key { [ m, M, mu, Oacute ] }; key { [ ugrave, percent, ae, AE ] }; key { [ w, W ] }; key { [ x, X ] }; key { [ c, C, copyright, copyright ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N, dead_tilde ] }; key { [ comma, question, questiondown ] }; key { [ semicolon, period ] }; key { [ colon, slash, bar, backslash ] }; key { [ ograve, exclam, exclamdown ] }; include "kpdl(dot)" include "level3(ralt_switch)" }; // Used by Georgian people in Italy, // contributed by Vladimer Sichinava partial alphanumeric_keys xkb_symbols "geo" { include "it" include "ge(basic)" name[Group1]= "Georgian (Italy)"; key { [ backslash, bar, notsign, brokenbar ] }; key { [ 1, exclam, onesuperior ] }; key { [ 2, quotedbl, twosuperior, dead_doubleacute ] }; key { [ 3, sterling, threesuperior, dead_tilde ] }; key { [ 4, dollar, onequarter, oneeighth ] }; key { [ 5, percent, onehalf ] }; key { [ 6, ampersand ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright ] }; key { [ 0, equal, braceright, dead_ogonek ] }; key { [ apostrophe, question, grave, questiondown ] }; key { [ igrave, asciicircum, asciitilde, dead_circumflex ] }; key { [ 0x010010d4, E, EuroSign ] }; key { [ egrave, eacute, bracketleft, braceleft ] }; key { [ plus, asterisk, bracketright, braceright ] }; key { [ ograve, ccedilla, at, dead_cedilla ] }; key { [ agrave, degree, numbersign, degree ] }; key { [ ugrave, section, dead_grave, dead_breve ] }; key { [ less, greater ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; }; // OLPC Section xkb_symbols "olpc" { include "it(basic)" key { [ igrave, asciicircum, asciitilde, dead_tilde ] }; key { [ ugrave, section, Egrave, dead_breve ] }; key { [ less, greater, guillemotleft, guillemotright ] }; }; partial alphanumeric_keys modifier_keys xkb_symbols "us" { include "us(euro)" name[Group1]= "Italian (US, with Italian letters)"; key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, onesuperior ] }; key { [ 2, at, twosuperior ] }; key { [ 3, numbersign, threesuperior ] }; key { [ 6,asciicircum,dead_circumflex ] }; key { [ 0, parenright, degree ] }; key { [ minus, underscore, dead_macron ] }; key { [ e, E, egrave, Egrave ] }; key { [ r, R, registered ] }; key { [ u, U, ugrave, Ugrave ] }; key { [ i, I, igrave, Igrave ] }; key { [ o, O, ograve, Ograve ] }; key { [ a, A, agrave, Agrave ] }; key { [ d, D, eacute, Eacute ] }; key { [ j, J, uacute, Uacute ] }; key { [ k, K, iacute, Iacute ] }; key { [ l, L, oacute, Oacute ] }; key { [ semicolon, colon,dead_diaeresis, dead_diaeresis ] }; key { [apostrophe, quotedbl, dead_acute ] }; key { [ z, Z, aacute, Aacute ] }; key { [ c, C, copyright ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ comma, less, guillemotleft ] }; key { [ period, greater, guillemotright ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "htcdream" { include "inet(htcdream)" name[Group1]= "Italian"; //second row key { [ q, Q, Tab, Tab ] }; key { [ w, W, grave, grave ] }; key { [ e, E, egrave, egrave] }; key { [ r, R, eacute, eacute ] }; key { [ t, T, quotedbl, quotedbl ] }; key { [ y, Y, apostrophe, apostrophe ] }; key { [ u, U, ugrave, ugrave ] }; key { [ i, I, igrave, igrave ] }; key { [ o, O, ograve, ograve ] }; key { [ p, P, NoSymbol, NoSymbol ] }; //third row key { [ a, A, agrave, agrave ] }; key { [ s, S, bar, bar ] }; key { [ d ,D, EuroSign, EuroSign ] }; key { [ f, F, sterling, sterling ] }; key { [ g, G, division, division ] }; key { [ h, H, multiply, multiply ] }; key { [ j, J, minus, minus ] }; key { [ k, K, plus, plus ] }; key { [ l, L, equal, equal ] }; //forth row key { [ z, Z, underscore, underscore ] }; key { [ x, X, asciitilde, asciitilde ] }; key { [ c, C, less, less ] }; key { [ v, V, greater, greater ] }; key { [ b, B, backslash, backslash ] }; key { [ n, N, colon, colon ] }; key { [ m, M, semicolon, semicolon ] }; key { [ comma, comma, question, question ] }; //fifth row key { [ at, at, NoSymbol, NoSymbol ] }; include "level3(alt_switch)" }; partial alphanumeric_keys xkb_symbols "ibm" { // Modifies the basic italian layout to match IBM 142 variant include "us" name[Group1]="Italian (IBM 142)"; key { [ backslash, bar ] }; key { [ 2, quotedbl ] }; key { [ 3, sterling, numbersign ] }; key { [ 6, ampersand ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [apostrophe, question ] }; key { [ igrave, asciicircum ] }; key { [ q, Q, at ] }; key { [ e, E, EuroSign ] }; key { [ egrave, eacute ] }; key { [ plus, asterisk, asciitilde ] }; key { [ ograve, ccedilla ] }; key { [ agrave, degree ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; key { [ ugrave, section, grave ] }; key { [ less, greater ] }; include "level3(ralt_switch)" include "kpdl(comma)" }; partial alphanumeric_keys xkb_symbols "fur" { include "it(basic)" include "latin(type4)" include "level3(ralt_switch)" name[Group1] = "Friulian (Italy)"; key { [ backslash, bar, notsign, brokenbar ] }; key { [ 2, quotedbl, twosuperior, dead_doubleacute ] }; key { [ 3, sterling,threesuperior, U1D49 ] }; key { [ 4, dollar, onequarter, oneeighth ] }; key { [ 5, percent, EuroSign, onehalf ] }; key { [ 0, equal, braceright, dead_ogonek ] }; key { [apostrophe, question, grave, questiondown ] }; key { [ igrave, asciicircum, asciitilde, dead_circumflex ] }; key { [ e, E, ecircumflex, Ecircumflex ] }; key { [ t, T, U1D57, U1D40 ] }; key { [ u, U, ucircumflex, NoSymbol ] }; key { [ i, I, icircumflex, Icircumflex ] }; key { [ o, O, ocircumflex, Ocircumflex ] }; key { [ egrave, eacute, bracketleft, braceleft ] }; key { [ plus, asterisk, bracketright, braceright ] }; key { [ a, A, acircumflex, Acircumflex ] }; key { [ f, F, U1DA0, U00AA ] }; key { [ ograve, ccedilla, at, dead_cedilla ] }; key { [ agrave, degree, numbersign, dead_abovering ] }; key { [ c, C, U1D9C, U00A9 ] }; key { [ n, N, U207F, Ntilde ] }; key { [ m, M, U1D50, U00B5 ] }; key { [ comma, semicolon, dead_acute, multiply ] }; key { [ period, colon,periodcentered, dead_diaeresis ] }; key { [ minus, underscore, dead_macron, division ] }; key { [ ugrave, section, dead_grave, dead_breve ] }; key { [ less, greater,guillemotleft,guillemotright] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/it(sun_type6)" }; partial alphanumeric_keys xkb_symbols "lld" { include "it(basic)" name[Group1] = "Italian Ladin"; key { [ i, I, idiaeresis, Idiaeresis ] }; key { [ p, P, ediaeresis, Ediaeresis ] }; key { [ a, A, aacute, Aacute ] }; key { [ s, S, sacute, Sacute ] }; key { [ c, C, cacute, Cacute ] }; }; partial alphanumeric_keys xkb_symbols "intl" { include "it(basic)" name[Group1] = "Italian (intl., with dead keys)"; key { [ igrave, asciicircum, asciitilde, dead_circumflex ] }; key { [ e, E, EuroSign, U0259 ] }; key { [ agrave, degree, numbersign, U1D58 ] }; key { [ h, H, U1E25, U1E24 ] }; key { [ f, F, U0111, U0110 ] }; key { [ d, D, U1E0D, U1E0C ] }; key { [ x, X, U03C7, U03A7 ] }; key { [ z, Z ] }; key { [ ugrave, section, dead_grave, dead_breve ] }; }; partial alphanumeric_keys xkb_symbols "scn" { include "it(basic)" name[Group1] = "Sicilian"; key { [ iacute, asciicircum, asciitilde, dead_circumflex ] }; key { [ o, O, ocircumflex, Ocircumflex ] }; key { [ i, I, icircumflex, Icircumflex ] }; key { [ u, U, ucircumflex, Ucircumflex ] }; key { [ r, R, ediaeresis, Ediaeresis ] }; key { [ e, E, EuroSign, ecircumflex ] }; key { [ agrave, degree, numbersign, U1D58 ] }; key { [ f, F, U0111, U0110 ] }; key { [ d, D, U1E0D, U1E0C ] }; key { [ s, S, scaron, Scaron ] }; key { [ a, A, acircumflex, Acircumflex ] }; // In our Windows layout, there is no ©, but Ç. Since this character // is available via CapsLock, I decided to keep © in place, as the // Italian layout. key { [ c, C, ccedilla, copyright ] }; key { [ x, X, U03C7, U03A7 ] }; // Replaced dead_grave by ugrave, since it's common to write mixed // Sicilian - Italian (where we replaced ugrave with uacute) key { [ uacute, section, ugrave, dead_breve ] }; }; PK(f[nv(( symbols/thnu[// based on a keyboard map from an 'xkb/symbols/th' file default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Thai"; // converted to THai keysysms - Pablo Saratxaga key { [ underscore, percent ] }; key { [ Thai_lakkhangyao, plus ] }; key { [ slash, Thai_leknung ] }; key { [ minus, Thai_leksong ] }; key { [ Thai_phosamphao, Thai_leksam ] }; key { [ Thai_thothung, Thai_leksi ] }; key { [ Thai_sarau, Thai_sarauu ] }; key { [ Thai_saraue, Thai_baht ] }; key { [ Thai_khokhwai, Thai_lekha ] }; key { [ Thai_totao, Thai_lekhok ] }; key { [ Thai_chochan, Thai_lekchet ] }; key { [ Thai_khokhai, Thai_lekpaet ] }; key { [ Thai_chochang, Thai_lekkao ] }; key { [ Thai_maiyamok, Thai_leksun ] }; key { [ Thai_saraaimaimalai, quotedbl ] }; key { [ Thai_saraam, Thai_dochada ] }; key { [ Thai_phophan, Thai_thonangmontho ] }; key { [ Thai_saraa, Thai_thothong ] }; key { [ Thai_maihanakat, Thai_nikhahit ] }; key { [ Thai_saraii, Thai_maitri ] }; key { [ Thai_rorua, Thai_nonen ] }; key { [ Thai_nonu, Thai_paiyannoi ] }; key { [ Thai_yoyak, Thai_yoying ] }; key { [ Thai_bobaimai, Thai_thothan ] }; key { [ Thai_loling, comma ] }; key { [ Thai_fofan, Thai_ru ] }; key { [ Thai_hohip, Thai_khorakhang ] }; key { [ Thai_kokai, Thai_topatak ] }; key { [ Thai_dodek, Thai_sarao ] }; key { [ Thai_sarae, Thai_chochoe ] }; key { [ Thai_maitho, Thai_maitaikhu ] }; key { [ Thai_maiek, Thai_maichattawa ] }; key { [ Thai_saraaa, Thai_sorusi ] }; key { [ Thai_sosua, Thai_sosala ] }; key { [ Thai_wowaen, Thai_soso ] }; key { [ Thai_ngongu, period ] }; key { [ Thai_phophung, parenleft ] }; key { [ Thai_popla, parenright ] }; key { [ Thai_saraae, Thai_choching ] }; key { [ Thai_oang, Thai_honokhuk ] }; key { [ Thai_sarai, Thai_phinthu ] }; key { [ Thai_sarauee, Thai_thanthakhat ] }; key { [ Thai_thothahan, question ] }; key { [ Thai_moma, Thai_thophuthao ] }; key { [ Thai_saraaimaimuan, Thai_lochula ] }; key { [ Thai_fofa, Thai_lu ] }; key { [ Thai_khokhuat, Thai_khokhon ] }; }; partial alphanumeric_keys xkb_symbols "pat" { name[Group1]= "Thai (Pattachote)"; // The thai layout defines a second keyboard group and changes // the behavior of a few modifier keys. // converted to THai keysysms - Pablo Saratxaga pablo@mandrakesoft.com // Pattachote modification by Visanu Euarchukiati -- visanu@inet.co.th key { [ underscore, Thai_baht ] }; key { [ equal, plus ] }; key { [ Thai_leksong, quotedbl ] }; key { [ Thai_leksam, slash ] }; key { [ Thai_leksi, comma ] }; key { [ Thai_lekha, question ] }; key { [ Thai_sarauu, Thai_sarau ] }; key { [ Thai_lekchet, underscore ] }; key { [ Thai_lekpaet, period ] }; key { [ Thai_lekkao, parenleft ] }; key { [ Thai_leksun, parenright ] }; key { [ Thai_leknung, minus ] }; key { [ Thai_lekhok, percent ] }; key { [ Thai_maitaikhu, Thai_maitri ] }; key { [ Thai_totao, Thai_ru ] }; key { [ Thai_yoyak, Thai_maiyamok ] }; key { [ Thai_oang, Thai_yoying ] }; key { [ Thai_rorua, Thai_sorusi ] }; key { [ Thai_maiek, Thai_saraue ] }; key { [ Thai_dodek, Thai_fofa ] }; key { [ Thai_moma, Thai_soso ] }; key { [ Thai_wowaen, Thai_thothung ] }; key { [ Thai_saraae, Thai_thophuthao ] }; key { [ Thai_saraaimaimuan, Thai_paiyannoi ] }; key { [ Thai_chochoe, Thai_lu ] }; key { [ Thai_maitho, Thai_maichattawa] }; key { [ Thai_thothahan, Thai_thothong ] }; key { [ Thai_ngongu, Thai_saraam ] }; key { [ Thai_kokai, Thai_nonen ] }; key { [ Thai_maihanakat, Thai_thanthakhat] }; key { [ Thai_saraii, Thai_sarauee ] }; key { [ Thai_saraaa, Thai_phophung ] }; key { [ Thai_nonu, Thai_chochang ] }; key { [ Thai_sarae, Thai_sarao ] }; key { [ Thai_saraaimaimalai, Thai_khorakhang ] }; key { [ Thai_khokhai, Thai_thonangmontho ] }; key { [ Thai_bobaimai, Thai_dochada ] }; key { [ Thai_popla, Thai_topatak ] }; key { [ Thai_loling, Thai_thothan ] }; key { [ Thai_hohip, Thai_phosamphao ] }; key { [ Thai_sarai, Thai_phinthu ] }; key { [ Thai_khokhwai, Thai_sosala ] }; key { [ Thai_sosua, Thai_honokhuk ] }; key { [ Thai_saraa, Thai_fofan ] }; key { [ Thai_chochan, Thai_choching ] }; key { [ Thai_phophan, Thai_lochula ] }; key { [ Thai_lakkhangyao, Thai_nikhahit ] }; }; partial alphanumeric_keys xkb_symbols "tis" { name[Group1]= "Thai (TIS-820.2538)"; // The thai layout defines a second keyboard group and changes // the behavior of a few modifier keys. // converted to THai keysysms - Pablo Saratxaga // modified to TIS-820.2538 - Theppitak Karoonboonyanan key { [ 0x1000e4f, 0x1000e5b ] }; key { [ Thai_baht, Thai_lakkhangyao] }; key { [ slash, Thai_leknung ] }; key { [ minus, Thai_leksong ] }; key { [ Thai_phosamphao, Thai_leksam ] }; key { [ Thai_thothung, Thai_leksi ] }; key { [ Thai_sarau, Thai_sarauu ] }; key { [ Thai_saraue, 0x1000e4e ] }; key { [ Thai_khokhwai, Thai_lekha ] }; key { [ Thai_totao, Thai_lekhok ] }; key { [ Thai_chochan, Thai_lekchet ] }; key { [ Thai_khokhai, Thai_lekpaet ] }; key { [ Thai_chochang, Thai_lekkao ] }; key { [ Thai_maiyamok, Thai_leksun ] }; key { [ Thai_saraaimaimalai, quotedbl ] }; key { [ Thai_saraam, Thai_dochada ] }; key { [ Thai_phophan, Thai_thonangmontho ] }; key { [ Thai_saraa, Thai_thothong ] }; key { [ Thai_maihanakat, Thai_nikhahit ] }; key { [ Thai_saraii, Thai_maitri ] }; key { [ Thai_rorua, Thai_nonen ] }; key {type[Group1]="THREE_LEVEL", [ Thai_nonu, Thai_paiyannoi, 0x1000e5a] }; key { [ Thai_yoyak, Thai_yoying ] }; key { [ Thai_bobaimai, Thai_thothan ] }; key { [ Thai_loling, comma ] }; key { [ Thai_fofan, Thai_ru ] }; key { [ Thai_hohip, Thai_khorakhang ] }; key { [ Thai_kokai, Thai_topatak ] }; key { [ Thai_dodek, Thai_sarao ] }; key { [ Thai_sarae, Thai_chochoe ] }; key { [ Thai_maitho, Thai_maitaikhu ] }; key { [ Thai_maiek, Thai_maichattawa ] }; key { [ Thai_saraaa, Thai_sorusi ] }; key { [ Thai_sosua, Thai_sosala ] }; key { [ Thai_wowaen, Thai_soso ] }; key { [ Thai_ngongu, period ] }; key { [ Thai_phophung, parenleft ] }; key { [ Thai_popla, parenright ] }; key { [ Thai_saraae, Thai_choching ] }; key { [ Thai_oang, Thai_honokhuk ] }; key { [ Thai_sarai, Thai_phinthu ] }; key { [ Thai_sarauee, Thai_thanthakhat ] }; key { [ Thai_thothahan, question ] }; key { [ Thai_moma, Thai_thophuthao ] }; key { [ Thai_saraaimaimuan, Thai_lochula ] }; key { [ Thai_fofa, Thai_lu ] }; key { [ Thai_khokhon, Thai_khokhuat ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { name[Group1]= "Thai"; // The OLPC thai layout // walter@laptop.org key { [ 0x1000E4F, 0x1000E5B ] }; key { [ 0x1000E3F, 0x1000E45 ] }; key { [ slash, 0x1000E51 ] }; key { [ minus, 0x1000E52 ] }; key { [ 0x1000E20, 0x1000E53 ] }; key { [ 0x1000E16, 0x1000E54 ] }; key { [ 0x1000E38, 0x1000E39 ] }; key { [ 0x1000E36, 0x1000E4E ] }; key { [ 0x1000E04, 0x1000E55 ] }; key { [ 0x1000E15, 0x1000E56 ] }; key { [ 0x1000E08, 0x1000E57 ] }; key { [ 0x1000E02, 0x1000E58 ] }; key { [ 0x1000E0A, 0x1000E59 ] }; key { [ 0x1000E46, 0x1000E50 ] }; key { [ 0x1000E44, quotedbl ] }; key { [ 0x1000E33, 0x1000E0E ] }; key { [ 0x1000E1E, 0x1000E11 ] }; key { [ 0x1000E30, 0x1000E18 ] }; key { [ 0x1000E31, 0x1000E4D ] }; key { [ 0x1000E35, 0x1000E4A ] }; key { [ 0x1000E23, 0x1000E13 ] }; key { [ 0x1000E19, 0x1000E2F ] }; key { [ 0x1000E22, 0x1000E0D ] }; key { [ 0x1000E1A, 0x1000E10 ] }; key { [ 0x1000E25, comma ] }; key { [ 0x1000E1F, 0x1000E24 ] }; key { [ 0x1000E2B, 0x1000E06 ] }; key { [ 0x1000E01, 0x1000E0F ] }; key { [ 0x1000E14, 0x1000E42 ] }; key { [ 0x1000E40, 0x1000E0C ] }; key { [ 0x1000E49, 0x1000E47 ] }; key { [ 0x1000E48, 0x1000E4B ] }; key { [ 0x1000E32, 0x1000E29 ] }; key { [ 0x1000E2A, 0x1000E28 ] }; key { [ 0x1000E27, 0x1000E0B ] }; key { [ 0x1000E07, period ] }; key { [ 0x1000E05, 0x1000E03 ] }; key { [ 0x1000E1C, parenleft ] }; key { [ 0x1000E1B, parenright ] }; key { [ 0x1000E41, 0x1000E09 ] }; key { [ 0x1000E2D, 0x1000E2E ] }; key { [ 0x1000E34, 0x1000E3A ] }; key { [ 0x1000E37, 0x1000E4C ] }; key { [ 0x1000E17, question ] }; key { [ 0x1000E21, 0x1000E12 ] }; key { [ 0x1000E43, 0x1000E2C ] }; key { [ 0x1000E1D, 0x1000E26 ] }; include "group(olpc)" }; PK(f[<< symbols/rsnu[// Bosnian, Croatian, Serbian and Slovenian XKB keyboard mappings. // // Derived from "Danube" D.2 from 2003-05-12, // which is available at http://srpski.org/dunav/. // // Original authors: // Danilo Segan (Данило Шеган) // Chusslove Illich (Часлав Илић) // // Danilo Segan : // - Modified for inclusion in XFree86. // - Further modifications on 2005-08-18 to support Bosnian, // Croatian and Slovenian in xkeyboard-config. default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Serbian"; include "rs(cyrlevel3)" include "rs(common)" include "rs(cyralpha)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "latin" { name[Group1]= "Serbian (Latin)"; include "latin(type3)" include "rs(latalpha)" include "rs(latlevel3)" include "rs(common)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "yz" { include "rs(basic)" name[Group1]= "Serbian (Cyrillic, ZE and ZHE swapped)"; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // y key { [ Cyrillic_ze, Cyrillic_ZE ] }; // z }; hidden partial alphanumeric_keys xkb_symbols "common" { // "Common" keys: keys that are the same // for both latin and cyrillic keyboards. key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, ampersand ] }; key { [ 7, slash ] }; key { [ 8, parenleft ] }; key { [ 9, parenright ] }; key { [ 0, equal ] }; key { [ apostrophe, question ] }; key { [ plus, asterisk ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "kpdl(comma)" }; hidden partial alphanumeric_keys xkb_symbols "cyralpha" { key { [ Cyrillic_lje, Cyrillic_LJE ] }; // q key { [ Cyrillic_nje, Cyrillic_NJE ] }; // w key { [ Cyrillic_ie, Cyrillic_IE ] }; // e key { [ Cyrillic_er, Cyrillic_ER ] }; // r key { [ Cyrillic_te, Cyrillic_TE ] }; // t key { [ Cyrillic_ze, Cyrillic_ZE ] }; // y key { [ Cyrillic_u, Cyrillic_U ] }; // u key { [ Cyrillic_i, Cyrillic_I ] }; // i key { [ Cyrillic_o, Cyrillic_O ] }; // o key { [ Cyrillic_pe, Cyrillic_PE ] }; // p key { [ Cyrillic_sha, Cyrillic_SHA ] }; // [ { key { [ Serbian_dje, Serbian_DJE ] }; // ] } key { [ Cyrillic_a, Cyrillic_A ] }; // a key { [ Cyrillic_es, Cyrillic_ES ] }; // s key { [ Cyrillic_de, Cyrillic_DE ] }; // d key { [ Cyrillic_ef, Cyrillic_EF ] }; // f key { [ Cyrillic_ghe, Cyrillic_GHE ] }; // g key { [ Cyrillic_ha, Cyrillic_HA ] }; // h key { [ Cyrillic_je, Cyrillic_JE ] }; // j key { [ Cyrillic_ka, Cyrillic_KA ] }; // k key { [ Cyrillic_el, Cyrillic_EL ] }; // l key { [ Cyrillic_che, Cyrillic_CHE ] }; // ; : key { [ Serbian_tshe, Serbian_TSHE ] }; // ' " key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // \ | key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // z key { [ Cyrillic_dzhe, Cyrillic_DZHE ] }; // x key { [ Cyrillic_tse, Cyrillic_TSE ] }; // c key { [ Cyrillic_ve, Cyrillic_VE ] }; // v key { [ Cyrillic_be, Cyrillic_BE ] }; // b key { [ Cyrillic_en, Cyrillic_EN ] }; // n key { [ Cyrillic_em, Cyrillic_EM ] }; // m }; hidden partial alphanumeric_keys xkb_symbols "latalpha" { key { [ scaron, Scaron ] }; // [ { key { [ dstroke, Dstroke ] }; // ] } key { [ ccaron, Ccaron ] }; // ; : key { [ cacute, Cacute ] }; // ' " key { [ zcaron, Zcaron ] }; // \ | }; hidden partial alphanumeric_keys xkb_symbols "twoletter" { // Letters which are written in latin transcription with two characters. key { type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC", [ U1C9, U1C8, any, U1C7 ] }; // q key { type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC", [ U1CC, U1CB, any, U1CA ] }; // w key { type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC", [ U1C6, U1C5, any, U1C4 ] }; // x // Also replace letter Y with Zcaron, since Y is of no use any longer. key { [ zcaron, Zcaron ] }; // z }; hidden partial alphanumeric_keys xkb_symbols "latlevel3" { key { [ any, any, notsign, notsign ] }; // ` ~ key { [ any, any, dead_tilde, asciitilde ] }; // 1 ! key { [ any, any, dead_caron, caron ] }; // 2 @ key { [ any, any, dead_circumflex, asciicircum ] }; // 3 # key { [ any, any, dead_breve, breve ] }; // 4 $ key { [ any, any, dead_abovering, degree ] }; // 5 % key { [ any, any, dead_ogonek, ogonek ] }; // 6 ^ key { [ any, any, dead_grave, grave ] }; // 7 & key { [ any, any, dead_abovedot, abovedot ] }; // 8 * key { [ any, any, dead_acute, apostrophe ] }; // 9 ( key { [ any, any, dead_doubleacute, doubleacute ] }; // 0 ) key { [ any, any, dead_diaeresis, diaeresis ] }; // - _ key { [ any, any, dead_cedilla, cedilla ] }; // = + key { [ any, any, backslash, Greek_OMEGA ] }; // q key { [ any, any, bar, Lstroke ] }; // w key { [ any, any, EuroSign, EuroSign ] }; // e key { [ any, any, paragraph, registered ] }; // r key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", [ any, any, tslash, Tslash ] }; // t key { [ any, any, leftarrow, yen ] }; // y key { [ any, any, downarrow, uparrow ] }; // u key { [ any, any, rightarrow, idotless ] }; // i key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", [ any, any, oslash, Ooblique ] }; // o key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", [ any, any, thorn, THORN ] }; // p key { [ any, any, division, dead_abovering ] }; // [ key { [ any, any, multiply, dead_macron ] }; // ] key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", [ any, any, ae, AE ] }; // a key { [ any, any, doublelowquotemark, guillemotright ] }; // s key { [ any, any, leftdoublequotemark, guillemotleft ] }; // d key { [ any, any, bracketleft, ordfeminine ] }; // f key { [ any, any, bracketright, ENG ] }; // g key { type[Group1] = "FOUR_LEVEL_ALPHABETIC", [ any, any, hstroke, Hstroke ] }; // h key { [ any, any, lstroke, ampersand ] }; // k key { [ any, any, lstroke, Lstroke ] }; // l key { [ any, any, dead_acute, dead_doubleacute ] }; // ; key { [ any, any, ssharp, dead_caron ] }; // ' key { [ any, any, currency, dead_breve ] }; // \ key { [ any, any, leftsinglequotemark, guillemotright ] }; // z key { [ any, any, rightsinglequotemark,guillemotleft ] }; // x key { [ any, any, cent, copyright ] }; // c key { [ any, any, at, grave ] }; // v key { [ any, any, braceleft, apostrophe ] }; // b key { [ any, any, braceright, braceright ] }; // n key { [ any, any, section, masculine ] }; // m key { [ any, any, less, multiply ] }; // , < key { [ any, any, greater, division ] }; // . > key { [ any, any, emdash, endash ] }; // / ? }; hidden partial alphanumeric_keys xkb_symbols "cyrlevel3" { key { [ any, any, degree, notsign ] }; // ` ~ key { [ any, any, dead_circumflex ] }; // 3 # key { [ any, any, dead_grave ] }; // 7 & key { [ any, any, dead_doublegrave ] }; // 8 * key { [ any, any, dead_acute ] }; // 9 ( key { [ any, any, dead_invertedbreve ] }; // 0 ) key { [ any, any, dead_macron ] }; // - _ key { [ any, any, backslash ] }; // q key { [ any, any, bar ] }; // w key { [ any, any, EuroSign, sterling ] }; // e key { [ any, any, paragraph, registered ] }; // r key { [ any, any, ellipsis ] }; // t key { [ any, any, leftarrow, yen ] }; // y key { [ any, any, downarrow, uparrow ] }; // u key { [ any, any, rightarrow ] }; // i key { [ any, any, section ] }; // o key { [ any, any, division ] }; // [ key { [ any, any, multiply ] }; // ] key { [ any, any, doublelowquotemark, guillemotright ] }; // s key { [ any, any, leftdoublequotemark, guillemotleft ] }; // d key { [ any, any, bracketleft ] }; // f key { [ any, any, bracketright ] }; // g key { [ any, any, currency ] }; // \ key { [ any, any, leftsinglequotemark ] }; // z key { [ any, any, rightsinglequotemark ] }; // x key { [ any, any, cent, copyright ] }; // c key { [ any, any, at ] }; // v key { [ any, any, braceleft ] }; // b key { [ any, any, braceright ] }; // n key { [ any, any, asciicircum ] }; // m key { [ any, any, less ] }; // , < key { [ any, any, greater ] }; // . > key { [ any, any, emdash, endash ] }; // / ? }; partial alphanumeric_keys xkb_symbols "latinunicode" { // This mapping supports the Unicode characters 0x1c4-0x1cc (dz, lj, and nj // as single character). You get the title form with AltGr+Shift. include "rs(latin)" name[Group1]= "Serbian (Latin, Unicode)"; include "rs(twoletter)" }; partial alphanumeric_keys xkb_symbols "latinyz" { // For those who insist on using "english-position" Z and Y. include "rs(latin)" name[Group1]= "Serbian (Latin, QWERTY)"; key { [ y, Y ] }; // y key { [ z, Z ] }; // z }; partial alphanumeric_keys xkb_symbols "latinunicodeyz" { // Unicode, ZHE and Z swapped. include "rs(latinunicode)" name[Group1]= "Serbian (Latin, Unicode, QWERTY)"; key { [ zcaron, Zcaron ] }; // y key { [ z, Z ] }; // z }; xkb_symbols "alternatequotes" { // Another acceptable »pair of quotes« for Serbian. include "rs(basic)" name[Group1]= "Serbian (Cyrillic with guillemets)"; key { [ any, any, guillemotright ] }; // s key { [ any, any, guillemotleft ] }; // d }; xkb_symbols "latinalternatequotes" { // Another acceptable »pair of quotes« for Serbian. include "rs(latin)" name[Group1]= "Serbian (Latin with guillemets)"; key { [ any, any, guillemotright ] }; // s key { [ any, any, guillemotleft ] }; // d }; xkb_symbols "rue" { // Layout for Pannonian Rusyn (spoken mainly in Serbia and Croatia // by the Rusyn people), based on Serbian Cyrillic layout. // Authors: // Ljubomir J. Papuga (Любомир Я. Папуґа) // Mihajlo Hornjak include "rs(basic)" name[Group1]= "Pannonian Rusyn"; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ` key { [ Cyrillic_ya, Cyrillic_YA ] }; // q key { [ Ukrainian_ie, Ukrainian_IE ] }; // w key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // ] key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; // g key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // j key { [ Cyrillic_ghe, Cyrillic_GHE ] }; // ' key { [ Cyrillic_yu, Cyrillic_YU ] }; // z key { [ Ukrainian_yi, Ukrainian_YI ] }; // x }; // EXTRAS: xkb_symbols "combiningkeys" { // Raw combining characters instead of dead keys, // especially good for post-accenting texts. include "rs(basic)" name[Group1]= "Serbian (combining accents instead of dead keys)"; key { [ any, any, U0302, dead_circumflex ] }; // 3, U0302 = COMBINING CIRCUMFLEX ACCENT key { [ any, any, U0300 ] }; // 7, U0300 = COMBINING GRAVE ACCENT key { [ any, any, U030F ] }; // 8, U030F = COMBINING DOUBLE GRAVE ACCENT key { [ any, any, U0301 ] }; // 9, U0301 = COMBINING ACUTE ACCENT key { [ any, any, U0311 ] }; // 0, U0311 = COMBINING INVERTED BREVE key { [ any, any, U0304 ] }; // -, U0304 = COMBINING MACRON }; PK(f[h3> > symbols/etnu[// // Ethiopia // Designed as a part of OLPC project // // 2007 Sergey Udaltsov // default partial alphanumeric_keys xkb_symbols "basic" { include "et(olpc)" name[Group1]="Amharic"; }; partial alphanumeric_keys xkb_symbols "olpc" { name[Group1]="Amharic"; key { [ 0x01001369, 0x01001372 ] }; // 1 key { [ 0x0100136a, 0x01001373 ] }; // 2 key { [ 0x0100136b, 0x01001374 ] }; // 3 key { [ 0x0100136c, 0x01001375 ] }; // 4 key { [ 0x0100136d, 0x01001376 ] }; // 5 key { [ 0x0100136e, 0x01001377 ] }; // 6 key { [ 0x0100136f, 0x01001378 ] }; // 7 key { [ 0x01001370, 0x01001379 ] }; // 8 key { [ 0x01001371, 0x0100137a ] }; // 9 key { [ 0x0100137b, 0x0100137c ] }; // 0 key { [ minus, underscore ] }; // -_ key { [ equal, plus ] }; // =+ key { [ 0x01001240, 0x01001250 ] }; // q key { [ 0x010012C8, VoidSymbol ] }; // w key { [ 0x0100FE69, 0x0100FE70 ] }; // dead e key { [ 0x01001228, VoidSymbol ] }; // r key { [ 0x01001270, 0x01001320 ] }; // t key { [ 0x010012E8, VoidSymbol ] }; // y key { [ 0x0100FE75, 0x0100FE76 ] }; // dead u key { [ 0x0100FE71, 0x0100FE72 ] }; // dead i key { [ 0x0100FE73, 0x0100FE74 ] }; // dead o key { [ 0x01001350, 0x01001330 ] }; // p key { [ 0x01001340, 0x01001338 ] }; // [ key { [ 0x01001328, 0x01001280 ] }; // ] key { [ 0x0100FE67, 0x0100FE68 ] }; // dead a key { [ 0x01001230, 0x01001220 ] }; // s key { [ 0x010012F0, 0x010012F8 ] }; // d key { [ 0x01001348, VoidSymbol ] }; // f key { [ 0x01001308, 0x01001318 ] }; // g key { [ 0x01001200, 0x01001210 ] }; // h key { [ 0x01001300, VoidSymbol ] }; // j key { [ 0x010012A8, 0x010012B8 ] }; // k key { [ 0x01001208, VoidSymbol ] }; // l key { [ 0x01001362, 0x01001361 ] }; // :; key { [ 0x01001366, 0x01001365 ] }; // '" key { [ 0x010012D8, 0x010012E0 ] }; // z key { [ 0x010012A0, 0x010012D0 ] }; // x key { [ 0x01001278, 0x0100FE78 ] }; // c key { [ 0x01001238, 0x01001268 ] }; // v key { [ 0x01001260, VoidSymbol ] }; // b key { [ 0x01001290, 0x01001298 ] }; // n key { [ 0x01001218, VoidSymbol ] }; // m key { [ 0x01001363, VoidSymbol ] }; // < key { [ 0x01001364, VoidSymbol ] }; // > key { [ 0x01001367, question ] }; // ? key { [ VoidSymbol, 0x01002010 ] }; // bksl include "group(olpc)" }; PK(f[xq؉symbols/terminatenu[default partial modifier_keys xkb_symbols "ctrl_alt_bksp" { key { type="CTRL+ALT", symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Terminate_Server ] }; }; PK(f[崈22 symbols/genu[// Georgian Keyboard Layouts by Aiet Kolkhi // Full layout descriptions available at http://www.gakartuleba.org/layouts/ // // This includes the following keyboard layouts: Georgian QWERTY; Georgian Ergonomic; // Georgian MESS; Georgian AZERTY Tskapo; Georgian Russian. // // Layouts include Georgian Mkhedruli alphabeth; most layouts also include some special // and ancient characters (like Fi, Yn, Elifi, Turned Gan and Ain). Layouts do not // include Georgian Asomtavruli or Georgian Khutsuri alphabeths which are also present // in Unicode. // // Georgian Typewriter no longer supported, as it is no longer used in Georgia. // // some layouts based on Georgian keyboard map, in the so called "latin" layout. // 1999, Pablo Saratxaga // default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Georgian"; key { [ 0x0100201e, 0x0100201c, 0x0100201e, asciitilde ] }; key { [ 1, exclam, apostrophe ] }; key { [ 2, at, 0x0100201e ] }; key { [ 3, numbersign, 0x0100201c ] }; key { [ 4, dollar, 0x01002116 ] }; key { [ 5, percent, EuroSign ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand, section ] }; key { [ 8, asterisk, degree ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore, 0x01002014 ] }; key { [ equal, plus, 0x01002013 ] }; key { [ Georgian_khar, Q ] }; key { [ Georgian_cil, Georgian_char ] }; key { [ Georgian_en, E, Georgian_he ] }; key { [ Georgian_rae, Georgian_ghan, 0x010000ae ] }; key { [ Georgian_tar, Georgian_tan ] }; key { [ Georgian_qar, Y, 0x010010f8 ] }; key { [ Georgian_un, U ] }; key { [ Georgian_in, I, Georgian_hie ] }; key { [ Georgian_on, O ] }; key { [ Georgian_par, P ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ Georgian_an, A, 0x010010fa ] }; key { [ Georgian_san, Georgian_shin ] }; key { [ Georgian_don, D ] }; key { [ Georgian_phar, F, Georgian_fi ] }; key { [ Georgian_gan, G, 0x010010f9 ] }; key { [ Georgian_hae, H, Georgian_hoe ] }; key { [ Georgian_jhan, Georgian_zhar, 0x010010f7 ] }; key { [ Georgian_kan, K ] }; key { [ Georgian_las, L ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ backslash, bar, asciitilde, asciitilde ] }; key { [ guillemotleft, guillemotright ] }; key { [ Georgian_zen, Georgian_jil ] }; key { [ Georgian_xan, X, Georgian_har ] }; key { [ Georgian_can, Georgian_chin, 0x010000a9 ] }; key { [ Georgian_vin, V, Georgian_we ] }; key { [ Georgian_ban, B ] }; key { [ Georgian_nar, N, 0x010010fc ] }; key { [ Georgian_man, M ] }; key { [ comma, less, guillemotleft ] }; key { [ period, greater, guillemotright ] }; key { [ slash, question, 0x010010fb ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "qwerty" { include "ge(basic)" }; partial alphanumeric_keys xkb_symbols "ergonomic" { include "ge(basic)" name[Group1]= "Georgian (ergonomic)"; key { [ 0x0100201e, apostrophe, 0x0100201e, asciitilde ] }; key { [ exclam, 1, exclam ] }; key { [ 0x01002116, 2, at ] }; key { [ comma, 3, numbersign, section ] }; key { [ semicolon, 4, dollar ] }; key { [ percent, 5, EuroSign ] }; key { [ colon, 6, asciicircum ] }; key { [ question, 7, ampersand ] }; key { [ period, 8, asterisk, degree ] }; key { [ parenleft, 9, parenleft, guillemotleft ] }; key { [ parenright, 0, parenright, guillemotright ] }; key { [ minus, plus, 0x01002014, underscore ] }; key { [ 0x0100201c, equal, equal ] }; key { [ Georgian_chin, noSymbol ] }; key { [ Georgian_par, noSymbol ] }; key { [ Georgian_un, noSymbol ] }; key { [ Georgian_jil, noSymbol, noSymbol, 0x010000ae ] }; key { [ Georgian_char, noSymbol, noSymbol, Georgian_tan ] }; key { [ Georgian_tar, noSymbol, noSymbol, 0x010010f8 ] }; key { [ Georgian_tan, noSymbol ] }; key { [ Georgian_nar, noSymbol, 0x010010fc, I ] }; key { [ Georgian_vin, noSymbol, Georgian_we ] }; key { [ Georgian_shin, noSymbol ] }; key { [ Georgian_kan, noSymbol, bracketleft, braceleft ] }; key { [ Georgian_khar, noSymbol, bracketright,braceright ] }; key { [ Georgian_xan, noSymbol, Georgian_har ] }; key { [ Georgian_in, noSymbol, Georgian_hie ] }; key { [ Georgian_an, noSymbol, 0x010010fa, D ] }; key { [ Georgian_en, noSymbol, Georgian_he ] }; key { [ Georgian_on, noSymbol ] }; key { [ Georgian_don, noSymbol ] }; key { [ Georgian_man, noSymbol ] }; key { [ Georgian_san, noSymbol ] }; key { [ Georgian_rae, noSymbol, L ] }; key { [ Georgian_ban, noSymbol, colon ] }; key { [ Georgian_gan, noSymbol, 0x010010f9, quotedbl ] }; key { [ slash, section, backslash, bar ] }; key { [ guillemotleft,guillemotright ] }; key { [ Georgian_jhan, noSymbol ] }; key { [ Georgian_hae, noSymbol, Georgian_hoe, X ] }; key { [ Georgian_qar, noSymbol, 0x010010f8, C ] }; key { [ Georgian_ghan, noSymbol, 0x010010f7, V ] }; key { [ Georgian_zhar, noSymbol ] }; key { [ Georgian_zen, noSymbol ] }; key { [ Georgian_can, noSymbol, noSymbol, M ] }; key { [ Georgian_las, noSymbol, guillemotleft, less ] }; key { [ Georgian_phar, noSymbol, Georgian_fi, guillemotright ] }; key { [ Georgian_cil, noSymbol, 0x010010fb ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "mess" { include "ge(basic)" name[Group1]= "Georgian (MESS)"; key { [ Georgian_char, backslash, grave ] }; key { [ 1, exclam, apostrophe ] }; key { [ 2, at, asciitilde ] }; key { [ 3, 0x01002116, numbersign ] }; key { [ 4, dollar, EuroSign ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand, section ] }; key { [ 8, asterisk, degree ] }; key { [ 9, parenleft ] }; key { [ 0, parenright, 0x01002014 ] }; key { [ minus, underscore, 0x01002013 ] }; key { [ Georgian_zhar, plus, bar ] }; key { [ Georgian_khar, Q ] }; key { [ Georgian_cil, W ] }; key { [ Georgian_en, E ] }; key { [ Georgian_rae, R ] }; key { [ Georgian_tar, T ] }; key { [ Georgian_qar, Y ] }; key { [ Georgian_un, U ] }; key { [ Georgian_in, I, Georgian_hie ] }; key { [ Georgian_on, O ] }; key { [ Georgian_par, P ] }; key { [ Georgian_shin, bracketleft, guillemotleft ] }; key { [ Georgian_ghan, bracketright, guillemotright ] }; key { [ Georgian_an, A, 0x010010fa ] }; key { [ Georgian_san, S ] }; key { [ Georgian_don, D ] }; key { [ Georgian_phar, F, Georgian_fi ] }; key { [ Georgian_gan, G, 0x010010f9 ] }; key { [ Georgian_hae, H, Georgian_he ] }; key { [ Georgian_jhan, J, 0x010010f7 ] }; key { [ Georgian_kan, K ] }; key { [ Georgian_las, L ] }; key { [ Georgian_tan, 0x0100201e ] }; key { [ Georgian_chin,0x0100201c ] }; key { [ equal, slash, bar ] }; key { [ guillemotleft, guillemotright ] }; key { [ Georgian_zen, Z, Georgian_hoe ] }; key { [ Georgian_xan, X, Georgian_har ] }; key { [ Georgian_can, C ] }; key { [ Georgian_vin, V, Georgian_we ] }; key { [ Georgian_ban, B ] }; key { [ Georgian_nar, N, 0x010010fc ] }; key { [ Georgian_man, M ] }; key { [ comma, semicolon, less ] }; key { [ period, colon, greater ] }; key { [ Georgian_jil, question, 0x010010fb ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "ru" { name[Group1]= "Russian (Georgia)"; key { [ asciicircum, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, semicolon ] }; key { [ 5, colon ] }; key { [ 6, comma ] }; key { [ 7, period ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ numbersign, bar ] }; key { [ Georgian_ghan, q ] }; key { [ Georgian_can, w ] }; key { [ Georgian_un, e ] }; key { [ Georgian_kan, r ] }; key { [ Georgian_en, t ] }; key { [ Georgian_nar, y ] }; key { [ Georgian_gan, u ] }; key { [ Georgian_shin, i ] }; key { [ Georgian_cil, o ] }; key { [ Georgian_zen, p ] }; key { [ Georgian_xan, bracketleft ] }; key { [ Georgian_jhan, bracketright ] }; key { [ Georgian_phar, a ] }; key { [ Georgian_tan, s ] }; key { [ Georgian_vin, d ] }; key { [ Georgian_an, f ] }; key { [ Georgian_par, g ] }; key { [ Georgian_rae, h ] }; key { [ Georgian_on, j ] }; key { [ Georgian_las, k ] }; key { [ Georgian_don, l ] }; key { [ Georgian_zhar, semicolon ] }; key { [ Georgian_jil, percent ] }; key { [ backslash, bar ] }; key { [ guillemotleft, guillemotright ] }; key { [ Georgian_char, z ] }; key { [ Georgian_chin, x ] }; key { [ Georgian_san, c ] }; key { [ Georgian_man, v ] }; key { [ Georgian_in, b ] }; key { [ Georgian_tar, n ] }; key { [ Georgian_khar, m ] }; key { [ Georgian_ban, less ] }; key { [ Georgian_qar, greater ] }; key { [ Georgian_hae, question ] }; }; partial alphanumeric_keys xkb_symbols "os" { include "ru(os_legacy)" name[Group1]= "Ossetian (Georgia)"; }; PK(f[N!!! symbols/jpnu[// Symbols for Japanese 106-keys keyboards (by tsuka@kawalab.dnj.ynu.ac.jp). default partial alphanumeric_keys xkb_symbols "106" { include "jp(common)" name[Group1]= "Japanese"; key { [ 0, asciitilde ] }; key { [ backslash, bar ] }; }; hidden partial alphanumeric_keys xkb_symbols "common" { // "Common" keys for jp 106/109A layouts. key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Zenkaku_Hankaku, Kanji ] }; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, ampersand ] }; key { [ 7, apostrophe ] }; key { [ 8, parenleft ] }; key { [ 9, parenright ] }; key { [ minus, equal ] }; key { [ asciicircum, asciitilde] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ at, grave ] }; key { [ bracketleft, braceleft ] }; key { [ Eisu_toggle, Caps_Lock ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, plus ] }; key { [ colon, asterisk ] }; key { [ bracketright, braceright ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; key { [ backslash, underscore] }; key { [ Control_L ] }; key { [ Muhenkan ] }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Henkan, Mode_switch ] }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Hiragana_Katakana, Romaji ] }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Eisu_toggle ] }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Hiragana_Katakana ] }; key { type[Group1]= "PC_ALT_LEVEL2", symbols[Group1]= [ Print, Execute ] }; }; partial alphanumeric_keys xkb_symbols "henkan" { key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Henkan, Mode_switch ] }; }; partial alphanumeric_keys xkb_symbols "OADG109A" { include "jp(common)" name[Group1]= "Japanese (OADG 109A)"; key { [ 0 ] }; key { [ yen, bar ] }; }; // 86 keys with kana map partial alphanumeric_keys xkb_symbols "kana86" { include "srvr_ctrl(fkey2vt)" include "pc(editing)" include "keypad(numoperdecsep)" include "altwin(menu)" include "jp(kana)" include "jp(OADG109A)" name[Group1]= "Japanese (Kana 86)"; key { [ Escape ] }; key { [ Num_Lock ] }; key { [ BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ Return ] }; key { [ Shift_L ] }; key { [ Shift_R ] }; key { [ Super_L ] }; key { [ Alt_L ] }; key { [ space ] }; key { [ Alt_R ] }; // For compatibility with other keyboards connected at the same time: key { [ Super_R ] }; key { [ Control_R ] }; }; partial alphanumeric_keys xkb_symbols "kana" { name[Group1]= "Japanese (Kana)"; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Zenkaku_Hankaku, Kanji ] }; key { [ kana_NU ] }; key { [ kana_FU ] }; key { [ kana_A, kana_a ] }; key { [ kana_U, kana_u ] }; key { [ kana_E, kana_e ] }; key { [ kana_O, kana_o ] }; key { [ kana_YA, kana_ya ] }; key { [ kana_YU, kana_yu ] }; key { [ kana_YO, kana_yo ] }; key { [ kana_WA, kana_WO ] }; key { [ kana_HO ] }; key { [ kana_HE ] }; key { [ prolongedsound ] }; key { [ kana_TA ] }; key { [ kana_TE ] }; key { [ kana_I, kana_i ] }; key { [ kana_SU ] }; key { [ kana_KA ] }; key { [ kana_N ] }; key { [ kana_NA ] }; key { [ kana_NI ] }; key { [ kana_RA ] }; key { [ kana_SE ] }; key { [ voicedsound ] }; key { [ semivoicedsound, kana_openingbracket ] }; key { [ Eisu_toggle, Caps_Lock ] }; key { [ kana_CHI ] }; key { [ kana_TO ] }; key { [ kana_SHI ] }; key { [ kana_HA ] }; key { [ kana_KI ] }; key { [ kana_KU ] }; key { [ kana_MA ] }; key { [ kana_NO ] }; key { [ kana_RI ] }; key { [ kana_RE ] }; key { [ kana_KE ] }; key { [ kana_MU, kana_closingbracket ] }; key { [ kana_TSU, kana_tsu ] }; key { [ kana_SA ] }; key { [ kana_SO ] }; key { [ kana_HI ] }; key { [ kana_KO ] }; key { [ kana_MI ] }; key { [ kana_MO ] }; key { [ kana_NE, kana_comma ] }; key { [ kana_RU, kana_fullstop ] }; key { [ kana_ME, kana_middledot ] }; key { [ kana_RO ] }; key { [ Control_L ] }; key { [ Muhenkan ] }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Henkan, Mode_switch ] }; key { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Hiragana_Katakana, Romaji ] }; key { type[Group1]= "PC_ALT_LEVEL2", symbols[Group1]= [ Print, Execute ] }; }; partial alphanumeric_keys xkb_symbols "nicola_f_bs" { key { type="", symbols[Group1]= [ bracketright, braceright ] }; key { [ 0, underscore ] }; key { [ colon, asterisk ] }; key { [ BackSpace, BackSpace ] }; key { [ Escape ] }; key { [ at, grave ] }; }; // Copied from macintosh_vndr/jp partial alphanumeric_keys xkb_symbols "mac" { include "jp(kana)" name[Group1]= "Japanese (Macintosh)"; replace key { [ Caps_Lock ] }; }; partial alphanumeric_keys xkb_symbols "hztg_escape" { replace key { [ Escape ] }; }; partial alphanumeric_keys xkb_symbols "dvorak" { include "jp(OADG109A)" name[Group1]= "Japanese (Dvorak)"; key { [ at, grave ] }; key { [ colon, asterisk ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ p, P ] }; key { [ y, Y ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ c, C ] }; key { [ r, R ] }; key { [ l, L ] }; key { [ slash, question ] }; key { [ o, O ] }; key { [ e, E ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ d, D ] }; key { [ h, H ] }; key { [ t, T ] }; key { [ n, N ] }; key { [ s, S ] }; key { [ minus, equal ] }; key { [ semicolon, plus ] }; key { [ q, Q ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ x, X ] }; key { [ b, B ] }; key { [ w, W ] }; key { [ v, V ] }; key { [ z, Z ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6_suncompat" { include "sun_vndr/jp(sun_type6_suncompat)" }; partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/jp(sun_type6)" }; partial alphanumeric_keys xkb_symbols "sun_type7_suncompat" { include "sun_vndr/jp(sun_type7_suncompat)" }; partial alphanumeric_keys xkb_symbols "suncompat" { include "sun_vndr/jp(suncompat)" }; partial alphanumeric_keys xkb_symbols "sun_type7" { include "sun_vndr/jp(sun_type7)" }; PK(f[1Y[Y[ symbols/afnu[// // Keymap for the Afghan dari keybord layout // Based on the specification "Computer Locale Requirements for // Afghanstan" [1] from the "United Nations Development Programme // Afghanistan" and the "Afghan Transitional Islamic // Administration Ministry of Communications". // [1] http://www.evertype.com/standards/af/ // For a MINI HOWTO see [2]. // [2] http://www.afghanischerKulturverein.de/en/afghanComputer_en.php // // 2006-02-15 file created by M. Emal Alekozai default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Afghani"; key { [ 0x100200d, 0x10000f7, dead_tilde ] }; key { [ 0x10006f1, exclam, 0x1000060 ] }; key { [ 0x10006f2, 0x100066c, 0x1000040 ] }; key { [ 0x10006f3, 0x100066b, numbersign ] }; key { [ 0x10006f4, 0x100e60b, 0x1000024] }; key { [ 0x10006f5, 0x100066a, 0x1000025 ] }; key { [ 0x10006f6, multiply, 0x100005e ] }; key { [ 0x10006f7, Arabic_comma, 0x1000026 ] }; key { [ 0x10006f8, asterisk, 0x1002022 ] }; key { [ 0x10006f9, 0x1000029, 0x100200e ] }; key { [ 0x10006f0, 0x1000028, 0x100200f ] }; key { [ minus, Arabic_tatweel, 0x100005f ] }; key { [ equal, plus ] }; key { [ Arabic_dad, Arabic_sukun, 0x10000b0 ] }; key { [ Arabic_sad, Arabic_dammatan ] }; key { [ Arabic_theh, Arabic_kasratan, 0x10020ac ] }; key { [ Arabic_qaf, Arabic_fathatan, 0x100fd3e ] }; key { [ Arabic_feh, Arabic_damma, 0x100fd3f ] }; key { [ Arabic_ghain, Arabic_kasra, 0x100e656] }; key { [ Arabic_ain, Arabic_fatha, 0x100e659] }; key { [ Arabic_heh, Arabic_shadda, 0x1000655] }; key { [ Arabic_khah, bracketright, 0x1000027] }; key { [ Arabic_hah, bracketleft, 0x1000022] }; key { [ Arabic_jeem, braceright, 0x1000681 ] }; key { [ 0x1000686, braceleft, 0x1000685 ] }; key { [ Arabic_sheen, Arabic_hamzaonwaw, 0x100069a ] }; key { [ Arabic_seen, Arabic_hamzaonyeh, 0x10006cd ] }; key { [ 0x10006cc, Arabic_yeh, 0x1000649 ] }; key { [ Arabic_beh, Arabic_hamzaunderalef, 0x10006d0 ] }; key { [ Arabic_lam, Arabic_hamzaonalef, 0x10006b7 ] }; key { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] }; key { [ Arabic_teh, Arabic_tehmarbuta, 0x100067c ] }; key { [ Arabic_noon, 0x10000bb, 0x10006bc ] }; key { [ Arabic_meem, 0x10000ab, 0x10006ba ] }; key { [ 0x10006a9, colon, 0x100003b ] }; key { [ 0x10006af, Arabic_semicolon, 0x10006ab ] }; key { [ backslash, bar, 0x100003f ] }; key { [ Arabic_zah, Arabic_kaf, 0x10006d2] }; key { [ Arabic_tah, 0x1000653 , 0x1000691 ] }; key { [ Arabic_zain, 0x1000698, 0x1000696 ] }; key { [ Arabic_ra, 0x1000670 , 0x1000693 ] }; key { [ Arabic_thal, 0x100200c, 0x1000688 ] }; key { [ Arabic_dal, 0x1000654, 0x1000689 ] }; key { [ 0x100067e, Arabic_hamza, 0x1000679 ] }; key { [ Arabic_waw, greater, 0x100002c ] }; key { [ period, less, 0x10006c7 ] }; key { [ slash, Arabic_question_mark, 0x10006c9 ] }; include "nbsp(zwnj2nb3)" include "level3(ralt_switch)" }; // Keymap for the Afghan pashto keybord layout // Based on the specification "Computer Locale Requirements for // Afghanstan" [1] from the "United Nations Development Programme // Afghanistan"" and the "Afghan Transitional Islamic // Administration Ministry of Communications". // [1] http://www.evertype.com/standards/af/ // For a MINI HOWTO see [2]. // [2] http://www.afghanischerKulturverein.de/en/afghanComputer_en.php // // 2006-02-15 file created by M. Emal Alekozai partial alphanumeric_keys xkb_symbols "ps" { name[Group1]= "Pashto"; key { [ 0x100200d, 0x10000f7, dead_tilde ] }; key { [ 0x10006f1, exclam, 0x1000060 ] }; key { [ 0x10006f2, 0x100066c, 0x1000040 ] }; key { [ 0x10006f3, 0x100066b, numbersign ] }; key { [ 0x10006f4, 0x100e60b, 0x1000024] }; key { [ 0x10006f5, 0x100066a, 0x1000025 ] }; key { [ 0x10006f6, multiply, 0x100005e ] }; key { [ 0x10006f7, 0x10000bb, 0x1000026 ] }; key { [ 0x10006f8, 0x10000ab, 0x1002022 ] }; key { [ 0x10006f9, 0x1000029, 0x100200e ] }; key { [ 0x10006f0, 0x1000028, 0x100200f ] }; key { [ minus, Arabic_tatweel, 0x100005f ] }; key { [ equal, plus ] }; key { [ Arabic_dad, Arabic_sukun, 0x10000b0 ] }; key { [ Arabic_sad, Arabic_dammatan, 0x1000653 ] }; key { [ Arabic_theh, Arabic_kasratan, 0x10020ac ] }; key { [ Arabic_qaf, Arabic_fathatan, 0x100fd3e ] }; key { [ Arabic_feh, Arabic_damma, 0x100fd3f ] }; key { [ Arabic_ghain, Arabic_kasra, 0x100e656] }; key { [ Arabic_ain, Arabic_fatha, 0x100e659] }; key { [ Arabic_heh, Arabic_shadda, 0x1000670] }; key { [ Arabic_khah, 0x1000681, 0x1000027] }; key { [ Arabic_hah, 0x1000685, 0x1000022] }; key { [ Arabic_jeem, 0x100005d, 0x100007d ] }; key { [ 0x1000686, 0x100005b, 0x100007b ] }; key { [ Arabic_sheen, 0x100069a ] }; key { [ Arabic_seen, Arabic_hamzaonyeh, 0x10006d2 ] }; key { [ 0x10006cc, Arabic_yeh, 0x1000649 ] }; key { [ Arabic_beh, 0x100067e, 0x10006ba ] }; key { [ Arabic_lam, Arabic_hamzaonalef, 0x10006b7 ] }; key { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] }; key { [ Arabic_teh, 0x100067c, 0x1000679 ] }; key { [ Arabic_noon, 0x10006bc, 0x100003e ] }; key { [ Arabic_meem, 0x1000629, 0x100003c ] }; key { [ 0x10006a9, colon, 0x1000643 ] }; key { [ 0x10006ab, Arabic_semicolon, 0x10006af ] }; key { [ backslash, 0x100002a, 0x100007c ] }; key { [ 0x10006cd, 0x1000638, 0x100003f] }; key { [ 0x10006d0, 0x1000637, 0x100003b ] }; key { [ Arabic_zain, 0x1000698, 0x1000655 ] }; key { [ Arabic_ra, 0x1000621, 0x1000654 ] }; key { [ Arabic_thal, 0x100200c, 0x1000625 ] }; key { [ Arabic_dal, 0x1000689, 0x1000688 ] }; key { [ 0x1000693, 0x1000624, 0x1000691 ] }; key { [ Arabic_waw, 0x100060c, 0x100002c ] }; key { [ 0x1000696, 0x100002e, 0x10006c7 ] }; key { [ slash, Arabic_question_mark, 0x10006c9 ] }; include "nbsp(zwnj2nb3)" include "level3(ralt_switch)" }; // Keymap for the Afghan southern uzbek keybord layout // Based on the specification "Computer Locale Requirements for // Afghanstan" [1] from the "United Nations Development Programme // Afghanistan"" and the "Afghan Transitional Islamic // Administration Ministry of Communications". // [1] http://www.evertype.com/standards/af/ // For a MINI HOWTO see [2]. // [2] http://www.afghanischerKulturverein.de/en/afghanComputer_en.php // // 2006-02-15 file created by M. Emal Alekozai partial alphanumeric_keys xkb_symbols "uz" { name[Group1]= "Uzbek (Afghanistan)"; key { [ 0x100200d, 0x10000f7, dead_tilde ] }; key { [ 0x10006f1, exclam, 0x1000060 ] }; key { [ 0x10006f2, 0x100066c, 0x1000040 ] }; key { [ 0x10006f3, 0x100066b, numbersign ] }; key { [ 0x10006f4, 0x100e60b, 0x1000024] }; key { [ 0x10006f5, 0x100066a, 0x1000025 ] }; key { [ 0x10006f6, multiply, 0x100005e ] }; key { [ 0x10006f7, Arabic_comma, 0x1000026 ] }; key { [ 0x10006f8, asterisk, 0x1002022 ] }; key { [ 0x10006f9, 0x1000029, 0x100200e ] }; key { [ 0x10006f0, 0x1000028, 0x100200f ] }; key { [ minus, Arabic_tatweel, 0x100005f ] }; key { [ equal, plus ] }; key { [ Arabic_dad, Arabic_sukun, 0x10000b0 ] }; key { [ Arabic_sad, Arabic_dammatan, 0x1000653 ] }; key { [ Arabic_theh, Arabic_kasratan, 0x10020ac ] }; key { [ Arabic_qaf, Arabic_fathatan, 0x100fd3e ] }; key { [ Arabic_feh, Arabic_damma, 0x100fd3f ] }; key { [ Arabic_ghain, Arabic_kasra, 0x100e656] }; key { [ Arabic_ain, Arabic_fatha, 0x100e659] }; key { [ Arabic_heh, Arabic_shadda, 0x1000670] }; key { [ Arabic_khah, bracketright, 0x1000027] }; key { [ Arabic_hah, bracketleft, 0x1000022] }; key { [ Arabic_jeem, braceright, 0x1000681 ] }; key { [ 0x1000686, braceleft, 0x1000685 ] }; key { [ Arabic_sheen, Arabic_hamzaonwaw, 0x100069a ] }; key { [ Arabic_seen, Arabic_hamzaonyeh, 0x10006cd ] }; key { [ 0x10006cc, Arabic_yeh, 0x1000649 ] }; key { [ Arabic_beh, 0x10006d0, 0x1000643 ] }; key { [ Arabic_lam, Arabic_hamzaonalef, 0x10006b7 ] }; key { [ Arabic_alef, Arabic_maddaonalef, 0x1000671 ] }; key { [ Arabic_teh, Arabic_tehmarbuta, 0x100067c ] }; key { [ Arabic_noon, 0x10000bb, 0x10006bc ] }; key { [ Arabic_meem, 0x10000ab, 0x10006ba ] }; key { [ 0x10006a9, colon, 0x100003b ] }; key { [ 0x10006af, Arabic_semicolon, 0x10006ab ] }; key { [ backslash, bar, 0x100003f ] }; key { [ Arabic_zah, 0x10006c9, 0x10006d2] }; key { [ Arabic_tah, 0x10006c7, 0x1000691 ] }; key { [ Arabic_zain, 0x1000698, 0x1000696 ] }; key { [ Arabic_ra, 0x1000625, 0x1000693 ] }; key { [ Arabic_thal, 0x100200c, 0x1000688 ] }; key { [ Arabic_dal, 0x1000654, 0x1000689 ] }; key { [ 0x100067e, Arabic_hamza, 0x1000679 ] }; key { [ Arabic_waw, greater, 0x100002c ] }; key { [ period, less ] }; key { [ slash, Arabic_question_mark, 0x1000655 ] }; include "nbsp(zwnj2nb3)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc-ps" { name[Group1]= "Pashto (Afghanistan, OLPC)"; key { [ 0x100200D, 0x1000654, grave ] }; // zero width joiner, Arabic hamza above key { [ 0x10006F1, exclam, asciitilde ] }; // Arabic one key { [ 0x10006F2, 0x100066C, at ] }; // Arabic two, Arabic thousands separator key { [ 0x10006F3, 0x100066B, numbersign ] }; // Arabic three, Arabic decimal separator key { [ 0x10006F4, 0x100060B, dollar ] }; // Arabic four, Afghani sign key { [ 0x10006F5, 0x100066A, percent ] }; // Arabic five, Arabic percent sign key { [ 0x10006F6, multiply, asciicircum ] }; // Arabic six key { [ 0x10006F7, guillemotright, ampersand ] }; // Arabic seven key { [ 0x10006F8, guillemotleft, 0x100066D ] }; // Arabic eight, Arabic five-pointed star key { [ 0x10006F9, parenright, enfilledcircbullet ] }; // Arabic nine key { [ 0x10006F0, parenleft, degree ] }; // Arabic zero key { [ minus, 0x1000640, underscore ] }; // Arabic_tatweel key { [ equal, plus, division ] }; key { [ 0x1000636, 0x1000652, EuroSign ] }; // Arabic dad, Arabic sukun key { [ 0x1000635, 0x100064C, 0x1000671 ] }; // Arabic sad, Arabic dammatan, Arabic alef walsa key { [ 0x100062B, 0x100064D, 0x1000649 ] }; // Arabic theh, Arabic kasratan, Arabic alef maksura initial form key { [ 0x1000642, 0x100064B, 0x100200E ] }; // Arabic qaf, Arabic fathatan, left-to-right mark key { [ 0x1000641, 0x100064F, 0x100200F ] }; // Arabic feh, Arabic damma, right-to-left mark key { [ 0x100063A, 0x1000650, 0x100e653 ] }; // Arabic ghain, Arabic kasra, Arabic alef with madda above key { [ 0x1000639, 0x100064E, 0x100e659 ] }; // Arabic ain, Arabic fatha, Arabic zwarakay key { [ 0x1000647, 0x1000651, 0x1000670 ] }; // Arabic heh, Arabic shadda, Arabic superscript alef key { [ 0x100062E, 0x1000681, apostrophe ] }; // Arabic khah, Arabic hah with hamza above, key { [ 0x100062D, 0x1000685, quotedbl ] }; // Arabic hah, Arabic hah with three dots above key { [ 0x100062C, bracketright, braceleft ] }; // Arabic jeem key { [ 0x1000686, bracketleft, braceright ] }; // Arabic tcheh key { [ 0x1000634, 0x100069A ] }; // Arabic sheen, Arabic seen with dot below and dot above key { [ 0x1000633, 0x10006CD ] }; // Arabic seen, Arabic yeh with tail key { [ 0x10006CC, 0x100064A, 0x10006D2 ] }; // Farsi yeh, Arabic yeh, Arabic yeh barree key { [ 0x1000628, 0x100067E, 0x10006BA ] }; // Arabic beh, Arabic peh, Arabic noon ghunna key { [ 0x1000644, 0x1000623, 0x10006B7 ] }; // Arabic lam, Arabic hamza on alef, Arabic alef with hamza above key { [ 0x1000627, 0x1000622, 0x1000625 ] }; // Arabic alef, Arabic madda on alef, Arabic alef with hamza below key { [ 0x100062A, 0x100067C, 0x1000679 ] }; // Arabic teh, Arabic teh with ring, Arabic tteh key { [ 0x1000646, 0x10006BC, greater ] }; // Arabic noon, Arabic noon with ring key { [ 0x1000645, 0x1000629, less ] }; // Arabic meem, Arabic teh marbuta key { [ 0x10006A9, colon, 0x1000643 ] }; // Arabic keheh, Arabic kaf key { [ 0x10006AB, 0x100061B, 0x10006AF ] }; // Arabic kaf with ring, Arabic semicolon, Arabic gaf key { [ backslash, asterisk, bar ] }; key { [ 0x1000638, 0x1000626, question] }; // Arabic zah, Arabic yeh with hamza above key { [ 0x10006D0, 0x1000637, semicolon ] }; // Arabic tah, Arabic E key { [ 0x1000632, 0x1000698 ] }; // Arabic zain, Arabic jeh key { [ 0x1000631, 0x1000621 ] }; // Arabic_ra (reh?), Arabic hamza key { [ 0x1000630, 0x100200C ] }; // Arabic_thal, zero width non-joiner key { [ 0x100062F, 0x1000689, 0x1000688 ] }; // Arabic_dal, Arabic dal with ring, Arabic ddal key { [ 0x1000693, 0x1000624, 0x1000691 ] }; // Arabic reh with ring, Arabic waw with hamza above, Arabic rreh key { [ 0x1000648, period, comma ] }; // Arabic_waw, Arabic comma key { [ 0x1000696, 0x100002E, 0x10006C7 ] }; // Arabic reh with dot below and dot above, full stop, Arabic letter U key { [ slash, 0x100061F, 0x10006C9 ] }; // Arabic question mark, Arabic kirghiz yu include "nbsp(zwnj2nb3)" include "group(olpc)" }; partial alphanumeric_keys xkb_symbols "fa-olpc" { name[Group1]= "Persian (Afghanistan, Dari OLPC)"; key { [ 0x100200D, division, asciitilde ] }; // zero width joiner key { [ 0x10006F1, exclam, grave ] }; // Arabic one key { [ 0x10006F2, 0x100066C, at ] }; // Arabic two, Arabic thousands separator key { [ 0x10006F3, 0x100066B, numbersign ] }; // Arabic three, Arabic decimal separator key { [ 0x10006F4, 0x100060B, dollar ] }; // Arabic four, Afghani sign key { [ 0x10006F5, 0x100066A, percent ] }; // Arabic five, Arabic percent sign key { [ 0x10006F6, multiply, asciicircum ] }; // Arabic six key { [ 0x10006F7, 0x100060C, ampersand ] }; // Arabic seven, Arabic comma key { [ 0x10006F8, asterisk, enfilledcircbullet ] }; // Arabic eight, key { [ 0x10006F9, parenright, 0x100200E ] }; // Arabic nine, left-to-right mark key { [ 0x10006F0, parenleft, 0x100200F ] }; // Arabic zero, right-to-left mark key { [ minus, 0x1000640, underscore ] }; // Arabic_tatweel key { [ equal, plus ] }; key { [ 0x1000636, 0x1000652, degree ] }; // Arabic dad, Arabic sukun key { [ 0x1000635, 0x100064C ] }; // Arabic sad, Arabic dammatan key { [ 0x100062B, 0x100064D, EuroSign ] }; // Arabic theh, Arabic kasratan key { [ 0x1000642, 0x100064B, 0x100FD3E ] }; // Arabic qaf, Arabic fathatan, ornate left paren key { [ 0x1000641, 0x100064F, 0x100FD3F ] }; // Arabic feh, Arabic damma, ornate right paren key { [ 0x100063A, 0x1000650, 0x1000656 ] }; // Arabic ghain, Arabic kasra, Arabic subscript alef key { [ 0x1000639, 0x100064E, 0x100e659 ] }; // Arabic ain, Arabic fatha, Arabic zwarakay key { [ 0x1000647, 0x1000651, 0x1000655 ] }; // Arabic heh, Arabic shadda, Arabic hamza below key { [ 0x100062E, bracketright, apostrophe ] }; // Arabic khah key { [ 0x100062D, bracketleft, quotedbl ] }; // Arabic hah key { [ 0x100062C, braceright, 0x1000681 ] }; // Arabic jeem, Arabic hah with hamza above key { [ 0x1000686, braceleft, 0x1000685 ] }; // Arabic tcheh, Arabic hah with three dots above key { [ 0x1000634, 0x1000624, 0x100069A ] }; // Arabic sheen, Arabic waw with hamza above, Arabic seen with dot below and dot above key { [ 0x1000633, 0x1000626, 0x10006CD ] }; // Arabic seen, Arabic yeh with hamza above, Arabic yeh with tail key { [ 0x10006CC, 0x100064A, 0x1000649 ] }; // Farsi yeh, Arabic yeh, Arabic alef maksura key { [ 0x1000628, 0x1000625, 0x10006D0 ] }; // Arabic beh, Arabic alef with hamza below, Arabic e key { [ 0x1000644, 0x1000623, 0x10006B7 ] }; // Arabic lam, Arabic hamza on alef, Arabic alef with hamza above key { [ 0x1000627, 0x1000622, 0x1000671 ] }; // Arabic alef, Arabic madda on alef, Arabic alef wasla key { [ 0x100062A, 0x1000629, 0x100067C ] }; // Arabic teh, Arabic teh marbuta, Arabic tteh key { [ 0x1000646, guillemotright, 0x10006BC ] }; // Arabic noon, Arabic noon with ring key { [ 0x1000645, guillemotleft, 0x10006BA ] }; // Arabic meem, Arabic noon ghunna key { [ 0x10006A9, colon, semicolon ] }; // Arabic keheh, key { [ 0x10006AF, 0x100061B, 0x10006AB ] }; // Arabic gaf, Arabic semicolon, Arabic kaf with ring key { [ backslash, bar, question ] }; key { [ 0x1000638, 0x1000643, 0x10006D2 ] }; // Arabic zah, Arabic kaf, Arabic yeh barree key { [ 0x1000637, 0x1000653, 0x1000691 ] }; // Arabic tah, Arabic maddah above, Arabic rreh key { [ 0x1000632, 0x1000698, 0x1000696 ] }; // Arabic zain, Arabic jeh, Arabic reh with dot below and dot above key { [ 0x1000631, 0x1000670, 0x1000693 ] }; // Arabic_ra (reh?), Arabic superscript alef, Arabic reh with ring key { [ 0x1000630, 0x100200C, 0x1000688 ] }; // Arabic_thal, zero width non-joiner, Arabic ddal key { [ 0x100062F, 0x1000654, 0x1000689 ] }; // Arabic dal, Arabic hamza above, Arabic dal with ring key { [ 0x100067E, 0x1000621, 0x1000679 ] }; // Arabic peh, Arabic hamza, Arabic tteh key { [ 0x1000648, greater, comma ] }; // Arabic_waw key { [ period, less, 0x10006C7 ] }; // Arabic u key { [ slash, 0x100061F, 0x10006C9 ] }; // Arabic question mark, Arabic kirghiz yu include "nbsp(zwnj2nb3)" include "group(olpc)" }; partial alphanumeric_keys xkb_symbols "uz-olpc" { name[Group1]= "Uzbek (Afghanistan, OLPC)"; key { [ 0x100200D, division, asciitilde ] }; // zero width joiner key { [ 0x10006F1, exclam, grave ] }; // Arabic one key { [ 0x10006F2, 0x100066C, at ] }; // Arabic two, Arabic thousands separator key { [ 0x10006F3, 0x100066B, numbersign ] }; // Arabic three, Arabic decimal separator key { [ 0x10006F4, 0x100060B, dollar ] }; // Arabic four, Afghani sign key { [ 0x10006F5, 0x100066A, percent ] }; // Arabic five, Arabic percent sign key { [ 0x10006F6, multiply, asciicircum ] }; // Arabic six key { [ 0x10006F7, 0x100060C, ampersand ] }; // Arabic seven, Arabic comma key { [ 0x10006F8, asterisk, enfilledcircbullet ] }; // Arabic eight, key { [ 0x10006F9, parenright, 0x100200E ] }; // Arabic nine, left-to-right mark key { [ 0x10006F0, parenleft, 0x100200F ] }; // Arabic zero, right-to-left mark key { [ minus, 0x1000640, underscore ] }; // Arabic_tatweel key { [ equal, plus ] }; key { [ 0x1000636, 0x1000652, degree ] }; // Arabic dad, Arabic sukun key { [ 0x1000635, 0x100064C, 0x1000653 ] }; // Arabic sad, Arabic dammatan, Arabic maddah above key { [ 0x100062B, 0x100064D, EuroSign ] }; // Arabic theh, Arabic kasratan key { [ 0x1000642, 0x100064B, 0x100FD3E ] }; // Arabic qaf, Arabic fathatan, ornate left paren key { [ 0x1000641, 0x100064F, 0x100FD3F ] }; // Arabic feh, Arabic damma, ornate right paren key { [ 0x100063A, 0x1000650, 0x1000656 ] }; // Arabic ghain, Arabic kasra, Arabic subscript alef key { [ 0x1000639, 0x100064E, 0x100e659 ] }; // Arabic ain, Arabic fatha, Arabic zwarakay key { [ 0x1000647, 0x1000651, 0x1000670 ] }; // Arabic heh, Arabic shadda, Arabic superscript alef key { [ 0x100062E, bracketright, apostrophe ] }; // Arabic khah key { [ 0x100062D, bracketleft, quotedbl ] }; // Arabic hah key { [ 0x100062C, braceright, 0x1000681 ] }; // Arabic jeem, Arabic hah with hamza above key { [ 0x1000686, braceleft, 0x1000685 ] }; // Arabic tcheh, Arabic hah with three dots above key { [ 0x1000634, 0x1000624, 0x100069A ] }; // Arabic sheen, Arabic waw with hamza above, Arabic seen with dot below and dot above key { [ 0x1000633, 0x1000626, 0x10006CD ] }; // Arabic seen, Arabic yeh with hamza above, Arabic yeh with tail key { [ 0x10006CC, 0x100064A, 0x1000649 ] }; // Farsi yeh, Arabic yeh, Arabic alef maksura key { [ 0x1000628, 0x10006D0, 0x1000643 ] }; // Arabic beh, Arabic e, Arabic kaf key { [ 0x1000644, 0x1000623, 0x10006B7 ] }; // Arabic lam, Arabic hamza on alef, Arabic alef with hamza above key { [ 0x1000627, 0x1000622, 0x1000671 ] }; // Arabic alef, Arabic madda on alef, Arabic alef wasla key { [ 0x100062A, 0x1000629, 0x100067C ] }; // Arabic teh, Arabic teh marbuta, Arabic tteh key { [ 0x1000646, guillemotright, 0x10006BC ] }; // Arabic noon, Arabic noon with ring key { [ 0x1000645, guillemotleft, 0x10006BA ] }; // Arabic meem, Arabic noon ghunna key { [ 0x10006A9, colon, semicolon ] }; // Arabic keheh, key { [ 0x10006AF, 0x100061B, 0x10006AB ] }; // Arabic gaf, Arabic semicolon, Arabic kaf with ring key { [ backslash, bar, question ] }; key { [ 0x1000638, 0x10006C9, 0x10006D2 ] }; // Arabic zah, Arabic kirghiz yu, Arabic yeh barree key { [ 0x1000637, 0x10006C7, 0x1000691 ] }; // Arabic tah, Arabic u, Arabic rreh key { [ 0x1000632, 0x1000698, 0x1000696 ] }; // Arabic zain, Arabic jeh, Arabic reh with dot below and dot above key { [ 0x1000631, 0x1000625, 0x1000693 ] }; // Arabic_ra (reh?), Arabic alef with hamza below, Arabic reh with ring key { [ 0x1000630, 0x100200C, 0x1000688 ] }; // Arabic_thal, zero width non-joiner, Arabic ddal key { [ 0x100062F, 0x1000654, 0x1000689 ] }; // Arabic dal, Arabic hamza above, Arabic dal with ring key { [ 0x100067E, 0x1000621, 0x1000679 ] }; // Arabic peh, Arabic hamza, Arabic tteh key { [ 0x1000648, greater, comma ] }; // Arabic_waw key { [ period, less ] }; key { [ slash, 0x100061F, 0x1000655 ] }; // Arabic question mark, Arabic hamza below include "nbsp(zwnj2nb3)" include "group(olpc)" }; PK(f[RR++ symbols/ronu[// // Complete set of Romanian keyboards as described in the new Romanian standard // SR 13392:2004 adopted in December 2004 by ASRO, "Asociatia de Standardizare // din Romania". // // The default mapping is the RO_US/Programmers layout because of the lack of // Romanian hardware keyboards. The primary standard layout is implemented as // the "std" variant. If you're determined to get cedillas as in ISO-8859-2 // (and not commabelow accents as in ISO-8859-16) use the defined variants // "cedilla" for the default layout or "std_cedilla" for the standard one. // Pre-Vista MS compatible layout included (use the "winkeys" variant). // // Created by Cristian Gafton, (C) 2000 // Modified by Marius Andreiana, (C) 2001 // Completed by Misu Moldovan, (C) 2001, 2004-2008. // v 1.4 default partial alphanumeric_keys xkb_symbols "basic" { // This RO_US/Programmers layout, although the secondary layout in the // Romanian standard, has always been the "de facto" standard in the // Linux/Unix world. It is implemented here as the default layout and it's // fully compatible with an US keyboard (Euro on AltGr+5 does not count). include "us" name[Group1]="Romanian"; key { [ 1, exclam, dead_tilde ] }; key { [ 2, at, dead_caron ] }; key { [ 3, numbersign, dead_circumflex ] }; key { [ 4, dollar, dead_breve ] }; key { [ 5, percent, dead_abovering ] }; key { [ 6, asciicircum, dead_ogonek ] }; key { [ 7, ampersand, dead_grave ] }; key { [ 8, asterisk, dead_abovedot ] }; key { [ 9, parenleft, dead_acute ] }; key { [ 0, parenright, dead_doubleacute ] }; key { [ minus, underscore, dead_diaeresis, endash ] }; key { [ equal, plus, dead_cedilla, plusminus ] }; key { [ q, Q, acircumflex, Acircumflex ] }; key { [ w, W, ssharp, 0x1001e9e ] }; key { [ e, E, EuroSign ] }; key { [ t, T, 0x100021b, 0x100021a ] }; key { [ i, I, icircumflex, Icircumflex ] }; key { [ p, P, section ] }; key { [ bracketleft, braceleft, doublelowquotemark ] }; key { [ bracketright, braceright, rightdoublequotemark ] }; key { [ a, A, abreve, Abreve ] }; key { [ s, S, 0x1000219, 0x1000218 ] }; key { [ d, D, dstroke, Dstroke ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ backslash, bar ] }; key { [ c, C, copyright ] }; key { [ comma, less, guillemotleft ] }; key { [ period, greater, guillemotright ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "cedilla" { // Variant of the basic layout with cedillas. // Implements S and T with cedilllas as in ISO-8859-2. // Included for compatibility reasons (this used to be the def variant). include "ro(basic)" name[Group1]="Romanian (cedilla)"; key { [ t, T, tcedilla, Tcedilla ] }; key { [ s, S, scedilla, Scedilla ] }; }; partial alphanumeric_keys xkb_symbols "std" { // Primary layout in the new Romanian standard. // Implemented here as a variant because of the lack of hardware // Romanian keyboards and because of the predilection of Romanian // X users towards the secondary layout from the new standard. include "us" name[Group1]="Romanian (standard)"; key { [ doublelowquotemark, rightdoublequotemark, grave, asciitilde ] }; key { [ 1, exclam, dead_tilde ] }; key { [ 2, at, dead_caron ] }; key { [ 3, numbersign, dead_circumflex ] }; key { [ 4, dollar, dead_breve ] }; key { [ 5, percent, dead_abovering ] }; key { [ 6, asciicircum, dead_ogonek ] }; key { [ 7, ampersand, dead_grave ] }; key { [ 8, asterisk, dead_abovedot ] }; key { [ 9, parenleft, dead_acute ] }; key { [ 0, parenright, dead_doubleacute ] }; key { [ minus, underscore, dead_diaeresis, endash ] }; key { [ equal, plus, dead_cedilla, plusminus ] }; key { [ e, E, EuroSign ] }; key { [ p, P, section ] }; key { [ abreve, Abreve, bracketleft, braceleft ] }; key { [ icircumflex, Icircumflex, bracketright, braceright ] }; key { [ acircumflex, Acircumflex, backslash, bar ] }; key { [ s, S, ssharp, 0x1001e9e ] }; key { [ d, D, dstroke, Dstroke ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ 0x1000219, 0x1000218, semicolon, colon ] }; key { [ 0x100021b, 0x100021a, apostrophe, quotedbl ] }; key { [ backslash, bar ] }; key { [ c, C, copyright ] }; key { [ comma, semicolon, less, guillemotleft ] }; key { [ period, colon, greater, guillemotright ] }; key { [ KP_Delete, KP_Separator ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "std_cedilla" { // Variant of the "std" layout using cedillas instead of commas. // It implements S and T with cedillas as in ISO-8859-2. // Included for compatibility reasons. include "ro(std)" name[Group1]="Romanian (standard cedilla)"; key { [ scedilla, Scedilla ] }; key { [ tcedilla, Tcedilla ] }; }; partial alphanumeric_keys xkb_symbols "winkeys" { // Describes the differences between a very simple US/ASCII // keyboard and a simple Romanian keyboard. // Created by Manfred Pohler, (C) 2003 include "latin" name[Group1]="Romanian (Win keys)"; key { [ bracketright, bracketleft ] }; key { [ 1, exclam, asciitilde, asciitilde ] }; key { [ 2, quotedbl, at, at ] }; key { [ 3, numbersign, asciicircum,asciicircum ] }; key { [ 4, currency ] }; key { [ 5, percent, degree, degree ] }; key { [ 6, ampersand ] }; key { [ 7, slash, grave, grave ] }; key { [ 8, parenleft ] }; key { [ 9, parenright ] }; key { [ 0, equal ] }; key { [ plus, question ] }; key { [ apostrophe, asterisk ] }; key { [ q, Q, backslash, backslash ] }; key { [ w, W, bar, bar ] }; key { [ e, E, EuroSign, EuroSign ] }; key { [ t, T ] }; key { [ z, Z ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ abreve, Abreve, division, division ] }; key { [ icircumflex, Icircumflex, multiply, multiply ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ scedilla, Scedilla, dollar, dollar ] }; key { [ tcedilla, Tcedilla, ssharp, U1E9E ] }; key { [ y, Y ] }; key { [ b, B, braceleft, braceleft ] }; key { [ n, N, braceright, braceright ] }; key { [ m, M, section, section ] }; key { [ comma, semicolon, less, less ] }; key { [ period, colon, greater, greater ] }; key { [ minus, underscore ] }; key { [ acircumflex, Acircumflex ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; partial xkb_symbols "crh_dobruja" { // Romania-specific Crimean Tatar (Crimean Turkish) Q layout. // This layout is not yet standard. Common Alt-Q and F layouts are now also // available right next to this layout in the new language-centric UI. // Reşat SABIQ , 2009, 2011 // Özgür Qarahan , 2009 include "tr(crh)" name[Group1]="Crimean Tatar (Dobruja Q)"; key { [ w, W, abreve, Abreve ] }; key { [ t, T, 0x100021b, 0x100021a ] }; key { [ p, P, section ] }; key { [ s, S, 0x1000219, 0x1000218 ] }; key { [ ibreve, Ibreve, j, J ] }; key { [ m, M, trademark, masculine ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "ergonomic" { // This layout is optimized for fast touch-typing in Romanian on a // US keyboard, and works by swapping out symbols infrequently used // in written Romanian (q,w,y,k) in favor of native ones, thus reducing // the need to use modifier keys. // Created by Gabriel Somlo, (C) 2011 include "ro(basic)" name[Group1]="Romanian (ergonomic Touchtype)"; key { [ abreve, Abreve, q, Q ] }; key { [ 0x1000219, 0x1000218, w, W ] }; key { [ 0x100021b, 0x100021a, y, Y ] }; key { [ a, A, acircumflex, Acircumflex ] }; key { [ icircumflex, Icircumflex, k, K ] }; }; partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/ro(sun_type6)" }; PK(f[?$>> symbols/uanu[// Keyboard layouts for the Ukraine. // AEN & Leon Kanter // last changes 2007/10/03 by Andriy Rysin // Oleksiy Protas : // - Added Serbian Cyrillics support // The legacy WinKeys layout extended on the third and fourth level with // some Unicode symbols (typographic quotes, m-dash, n-dash, ...), some // often-used Cyrillics from other Slavic languages, and some often-used // ASCII symbols (slash, brackets, ...). default partial alphanumeric_keys xkb_symbols "unicode" { include "ua(winkeys)" name[Group1]= "Ukrainian"; key { [ apostrophe, U02BC, U0301, asciitilde ] }; // Apostrophe and Stress symbol key { [ 1, exclam, onesuperior ] }; key { [ 2, quotedbl, twosuperior, U2019 ] }; // single quote used often as an apostrophe (deprecated) key { [ 3, numerosign, U00A7, U20B4 ] }; // Paragraph and Hryvnia sign key { [ 4, semicolon, dollar, EuroSign ] }; key { [ 5, percent, degree ] }; key { [ 6, colon, less ] }; key { [ 7, question, greater ] }; key { [ 8, asterisk, enfilledcircbullet ] }; key { [ 9, parenleft, bracketleft, braceleft ] }; key { [ 0, parenright, bracketright, braceright ] }; key { [ minus, underscore, emdash, endash ] }; key { [ equal, plus, notequal, plusminus ] }; key { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] }; key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; // Registered tm key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; key { [ Ukrainian_yi, Ukrainian_YI, Cyrillic_hardsign,Cyrillic_HARDSIGN ] }; key { [ Ukrainian_i, Ukrainian_I, Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Ukrainian_ie, Ukrainian_IE, Cyrillic_e, Cyrillic_E ] }; key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN, backslash, bar ] }; key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; key { [ Cyrillic_te, Cyrillic_TE, trademark ] }; key { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] }; key { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark ] }; key { [ period, comma, slash, ellipsis ] }; // Serbian Vukovica key { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_je, Cyrillic_JE ] }; key { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_dzhe, Cyrillic_DZHE ] }; key { [ Cyrillic_de, Cyrillic_DE, Serbian_dje, Serbian_DJE ] }; key { [ Cyrillic_che, Cyrillic_CHE, Serbian_tshe, Serbian_TSHE ] }; key { [ Cyrillic_el, Cyrillic_EL, Cyrillic_lje, Cyrillic_LJE ] }; key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_nje, Cyrillic_NJE ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "legacy" { name[Group1]= "Ukrainian (legacy)"; key { [ apostrophe, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numbersign ] }; key { [ 4, asterisk ] }; key { [ 5, colon ] }; key { [ 6, comma ] }; key { [ 7, period ] }; key { [ 8, semicolon ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Ukrainian_yi, Ukrainian_YI ] }; key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Ukrainian_ie, Ukrainian_IE ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key {[Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ slash, question ] }; key { [ slash, bar ] }; }; partial alphanumeric_keys xkb_symbols "winkeys" { include "ua(legacy)" name[Group1]= "Ukrainian (Win keys)"; key { [ 3, numerosign ] }; key { [ 4, semicolon ] }; key { [ 5, percent ] }; key { [ 6, colon ] }; key { [ 7, question ] }; key { [ 8, asterisk ] }; key { [ period, comma ] }; }; partial alphanumeric_keys xkb_symbols "typewriter" { include "ua(legacy)" name[Group1]= "Ukrainian (typewriter)"; key { [ apostrophe, quotedbl ] }; key { [ exclam, 1 ] }; key { [ numerosign, 2 ] }; key { [ slash, 3 ] }; key { [ semicolon, 4 ] }; key { [ colon, 5 ] }; key { [ comma, 6 ] }; key { [ period, 7 ] }; key { [ underscore, 8 ] }; key { [ question, 9 ] }; key { [ percent, 0 ] }; key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Ukrainian_i, Ukrainian_I ] }; key { [ Ukrainian_yi, Ukrainian_YI ] }; key { [ parenleft, parenright ] }; }; partial alphanumeric_keys xkb_symbols "phonetic" { include "ua(legacy)" name[Group1]= "Ukrainian (phonetic)"; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Ukrainian_yi, Ukrainian_YI ] }; key { [ Ukrainian_ie, Ukrainian_IE ] }; key { [ slash, question ] }; }; // Ukrainian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny). // Andrew Porokhnyak partial alphanumeric_keys xkb_symbols "rstu" { include "ua(legacy)" name[Group1]= "Ukrainian (standard RSTU)"; key { [ apostrophe, question ] }; key { [ exclam, 1 ] }; key { [ quotedbl, 2 ] }; key { [ numbersign, 3 ] }; key { [ semicolon, 4 ] }; key { [ colon, 5 ] }; key { [ comma, 6 ] }; key { [ period, 7 ] }; key { [ asterisk, 8 ] }; key { [ parenleft, 9 ] }; key { [ parenright, 0 ] }; key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Ukrainian_i, Ukrainian_I ] }; key { [ Ukrainian_yi, Ukrainian_YI ] }; key { [ slash, percent ] }; }; // Russian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny). // Andrew Porokhnyak partial alphanumeric_keys xkb_symbols "rstu_ru" { include "ru(common)" name[Group1]= "Russian (Ukraine, standard RSTU)"; key { [ apostrophe, question ] }; key { [ exclam, 1 ] }; key { [ quotedbl, 2 ] }; key { [ numbersign, 3 ] }; key { [ semicolon, 4 ] }; key { [ colon, 5 ] }; key { [ comma, 6 ] }; key { [ period, 7 ] }; key { [ asterisk, 8 ] }; key { [ parenleft, 9 ] }; key { [ parenright, 0 ] }; key { [ slash, percent ] }; key.type[group1]="ALPHABETIC"; key { [ Cyrillic_io, Cyrillic_IO ] }; }; // Homophonic keyboard layout (by Tomas Marko Miljenović), // based on the Ukrainian National Transliteration, // commonly used phonetic layouts for Mac and Win. partial alphanumeric_keys xkb_symbols "homophonic" { include "ua(legacy)" name[Group1]= "Ukrainian (homophonic)"; key { [ grave, underscore ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, semicolon ] }; key { [ 4, colon ] }; key { [ 5, percent ] }; key { [ 6, apostrophe ] }; key { [ 7, quotedbl ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ Ukrainian_ie, Ukrainian_IE ] }; key { [ Ukrainian_yi, Ukrainian_YI ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/ua(sun_type6)" }; PK(f[Z symbols/fonu[default partial alphanumeric_keys xkb_symbols "basic" { include "latin(type2)" name[Group1]= "Faroese"; key { [ onehalf, section, threequarters, paragraph ] }; key { [ less, greater, backslash, notsign ] }; key { [ space, space, nobreakspace, nobreakspace ] }; key { [ 5, percent, NoSymbol, cent ] }; key { [ 6, ampersand, yen, NoSymbol ] }; key { [ plus, question, plusminus, questiondown ] }; key { [dead_acute, dead_grave, bar, brokenbar ] }; key { [ c, C, copyright, NoSymbol ] }; key { [ minus, underscore, hyphen, macron ] }; key { [ d, D, eth, ETH ] }; key { [ ae, AE ] }; key { [ oslash, Ooblique ] }; key { [ i, I ] }; key { [ aring, Aring, dead_diaeresis, dead_circumflex ] }; key { [ eth, ETH, dead_tilde, dead_caron ] }; key { [apostrophe, asterisk, dead_doubleacute, multiply ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "fo(basic)" name[Group1]= "Faroese (no dead keys)"; key { [ acute, grave, bar, ogonek ] }; key { [ aring, Aring, diaeresis, degree ] }; key { [ diaeresis, asciicircum, asciitilde, macron ] }; key { [ ae, AE, acute, doubleacute ] }; key { [ oslash, Ooblique, asciicircum, caron ] }; key { [apostrophe, asterisk, doubleacute, multiply ] }; key { [ comma, semicolon, cedilla, ogonek ] }; key { [ period, colon, periodcentered, abovedot ] }; }; PK(f[$| symbols/btnu[// // Dzongkha / Tibetan layout for Bhutanese keyboard // ///////////////////////////////////////////////////////////////// // // Based on the official layout for Dzongkha // approved by the Department of Information Technology & // Dzongkha Development Authority of the Government of Bhutan // // Copyright (C) 2004, Gregory Mokhin ///////////////////////////////////////////////////////////////// // Version 0.97 2004-01-09 Layout map provided by Chris Fynn // Version 1.0 2004-07-29 Some correction by Pema Geyleg ///////////////////////////////////////////////////////////////// default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Dzongkha"; key { [ 0x1000F09, 0x1000F0A, 0x1000F6C, 0x1000F6D ] }; // numbers e.a. key { [ 0x1000F21, 0x1000F04, 1, exclam ] }; key { [ 0x1000F22, 0x1000F05, 2, at ] }; key { [ 0x1000F23, 0x1000F06, 3, numbersign ] }; key { [ 0x1000F24, 0x1000F48, 4, dollar ] }; key { [ 0x1000F25, 0x1000F70, 5, percent ] }; key { [ 0x1000F26, 0x1000F08, 6, 0x1000F01 ] }; key { [ 0x1000F27, 0x1000F38, 7, ampersand ] }; key { [ 0x1000F28, 0x1000F34, 8, asterisk ] }; key { [ 0x1000F29, 0x1000F3C, 9, parenleft ] }; key { [ 0x1000F20, 0x1000F3D, 0, parenright ] }; key { [ 0x1000F14, 0x1000F7F, minus, underscore ] }; key { [ 0x1000F0D, 0x1000F11, equal, plus ] }; // consonants ( ka kha ga nga ) key { [ 0x1000F40, 0x1000F90, 0x1000F88, VoidSymbol ] }; key { [ 0x1000F41, 0x1000F91, 0x1000F89, VoidSymbol ] }; key { [ 0x1000F42, 0x1000F92, 0x1000F6E, 0x1000F6F] }; key { [ 0x1000F44, 0x1000F94, 0x1000F83, 0x1000F82 ] }; // vowels ( i u e o ) key { [ 0x1000F72, 0x1000F80, 0x1000F1A, VoidSymbol ] }; key { [ 0x1000F74, 0x1000F84, 0x1000F1B, VoidSymbol ] }; key { [ 0x1000F7A, 0x1000F7B, 0x1000F1C, VoidSymbol ] }; key { [ 0x1000F7C, 0x1000F7D, 0x1000F1D, 0x1000F17 ] }; // consonants ( ca cha ja nya ) key { [ 0x1000F45, 0x1000F95, 0x1000F1E, 0x1000F18 ] }; key { [ 0x1000F46, 0x1000F96, 0x1000F1F, 0x1000F19 ] }; key { [ 0x1000F47, 0x1000F97, bracketleft, 0x1000F3E ] }; key { [ 0x1000F49, 0x1000F99, bracketright, 0x1000F3F ] }; // consonants ( ta tha da na pa pha ba ma tsa tsha dza wa ) key { [ 0x1000F4F, 0x1000F9F, 0x1000F4A, 0x1000F9A ] }; key { [ 0x1000F50, 0x1000FA0, 0x1000F4B, 0x1000F9B ] }; key { [ 0x1000F51, 0x1000FA1, 0x1000F4C, 0x1000F9C ] }; key { [ 0x1000F53, 0x1000FA3, 0x1000F4E, 0x1000F9E ] }; key { [ 0x1000F54, 0x1000FA4, 0x1002039, guillemotleft ] }; key { [ 0x1000F55, 0x1000FA5, 0x100203A, guillemotright ] }; key { [ 0x1000F56, 0x1000FA6, 0x1000F37, 0x1000F35 ] }; key { [ 0x1000F58, 0x1000FA8, 0x1000F7E, VoidSymbol ] }; key { [ 0x1000F59, 0x1000FA9, 0x1000F39, VoidSymbol ] }; key { [ 0x1000F5A, 0x1000FAA, colon, semicolon ] }; key { [ 0x1000F5B, 0x1000FAB, apostrophe, quotedbl ] }; // TODO: BKSL and LSGT are from gb layout, are there any variants? key { [ 0x1000F5D, 0x1000FAD, backslash, 0x1000FBA ] }; key { [ 0x1000F0D, 0x1000F11, 0x1000F10, 0x1000F0F ] }; // consonants ( zha za 'a ya ra la sha sa ha a ) key { [ 0x1000F5E, 0x1000FAE, 0x1000F13, 0x1000F36 ] }; key { [ 0x1000F5F, 0x1000FAF, 0x1000FBE, 0x1000FBF ] }; key { [ 0x1000F60, 0x1000F71, 0x1000F03, 0x1000FB0 ] }; key { [ 0x1000F61, 0x1000FB1, 0x1000F12, 0x1000FBB ] }; key { [ 0x1000F62, 0x1000FB2, 0x1000F6A, 0x1000FBC ] }; key { [ 0x1000F63, 0x1000FB3, 0x1000F8A, 0x1000F8B ] }; key { [ 0x1000F64, 0x1000FB4, 0x1000F65, 0x1000FB5 ] }; key { [ 0x1000F66, 0x1000FB6, comma, less ] }; key { [ 0x1000F67, 0x1000FB7, period, greater ] }; key { [ 0x1000F68, 0x1000FB8, slash, question ] }; // space key { [ 0x1000F0B, space, 0x1000F0C, nobreakspace ] }; include "level3(ralt_switch)" }; PK(f[ symbols/bdnu[// // XKB symbol :: National Bangla/Bengali Standard Keyboard Layout for Bangladesh // Ref: http://www.bcc.net.bd/keyboard/bsti_kb_specification.pdf // // Author: Jamil Ahmed // Created: 18-12-2005 // Last Updated: 08-01-2006 // Version: 6.01.3 // // Issues: // Khanda-Ta is given U-09CE; But BCC had U-09BA // U-09BB is added though it is not allocated in Original Unicode // U-09B3 is added though it is not allocated in Original Unicode // 3 Conjunct characters are not included // default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Bangla"; key { [ Escape ] }; // numbers key { [ grave, asciitilde, voidsymbol, voidsymbol ] }; key { [ 0x10009E7, exclam, 0x10009F4, voidsymbol ] }; key { [ 0x10009E8, at, 0x10009F5, voidsymbol ] }; key { [ 0x10009E9, numbersign, 0x10009F6, voidsymbol ] }; key { [ 0x10009EA, dollar, 0x10009F3, 0x10009F2 ] }; key { [ 0x10009EB, percent, 0x10009F7, voidsymbol ] }; key { [ 0x10009EC, asciicircum, 0x10009F8, 0x10009B3 ] }; key { [ 0x10009ED, ampersand, 0x1000902, voidsymbol ] }; key { [ 0x10009EE, asterisk, voidsymbol, voidsymbol ] }; key { [ 0x10009EF, parenleft, voidsymbol, voidsymbol ] }; key { [ 0x10009E6, parenright, 0x10009F9, voidsymbol ] }; key { [ minus, underscore, 0x100200C, voidsymbol ] }; key { [ equal, plus, 0x100200D, voidsymbol ] }; key { [ BackSpace ] }; // tab, q to ] key { [ Tab, ISO_Left_Tab ] }; key { [ 0x1000999, 0x1000982, 0x10009E2, 0x10009E3 ] }; key { [ 0x10009AF, 0x10009DF, voidsymbol, voidsymbol ] }; key { [ 0x10009A1, 0x10009A2, 0x10009C4, voidsymbol ] }; key { [ 0x10009AA, 0x10009AB, voidsymbol, voidsymbol ] }; key { [ 0x100099F, 0x10009A0, voidsymbol, voidsymbol ] }; key { [ 0x100099A, 0x100099B, voidsymbol, voidsymbol ] }; key { [ 0x100099C, 0x100099D, voidsymbol, voidsymbol ] }; key { [ 0x10009B9, 0x100099E, 0x10009BD, voidsymbol ] }; key { [ 0x1000997, 0x1000998, voidsymbol, voidsymbol ] }; key { [ 0x10009DC, 0x10009DD, voidsymbol, voidsymbol ] }; key { [ bracketleft, braceleft, voidsymbol, voidsymbol ] }; key { [ bracketright, braceright, voidsymbol, voidsymbol ] }; key { [ Return ] }; // caps, a to ' // key { [ Caps_Lock ] }; key { [ 0x10009C3, 0x10009D7, 0x100098B, 0x10009E0 ] }; key { [ 0x10009C1, 0x10009C2, 0x1000989, 0x100098A ] }; key { [ 0x10009BF, 0x10009C0, 0x1000987, 0x1000988 ] }; key { [ 0x10009AC, 0x10009AD, 0x10009F0, 0x10009F1 ] }; key { [ 0x10009CD, 0x1000964, 0x1000965, voidsymbol ] }; key { [ 0x10009BE, 0x1000985, 0x1000986, voidsymbol ] }; key { [ 0x1000995, 0x1000996, 0x10009BB, voidsymbol ] }; key { [ 0x10009A4, 0x10009A5, 0x10009CE, voidsymbol ] }; key { [ 0x10009A6, 0x10009A7, 0x100098C, 0x10009E1 ] }; key { [ semicolon, colon, voidsymbol, voidsymbol ] }; key { [ apostrophe, quotedbl, voidsymbol, voidsymbol ] }; // shift, z to / // key { [ Shift_L ] }; key { [ 0x1000981, 0x1000983, 0x10009FA, voidsymbol ] }; key { [ 0x10009CB, 0x10009CC, 0x1000993, 0x1000994 ] }; key { [ 0x10009C7, 0x10009C8, 0x100098F, 0x1000990 ] }; key { [ 0x10009B0, 0x10009B2, voidsymbol, voidsymbol ] }; key { [ 0x10009A8, 0x10009A3, voidsymbol, voidsymbol ] }; key { [ 0x10009B8, 0x10009B7, voidsymbol, voidsymbol ] }; key { [ 0x10009AE, 0x10009B6, voidsymbol, voidsymbol ] }; key { [ comma, less, voidsymbol, voidsymbol ] }; key { [ period, greater, 0x10009BC, voidsymbol ] }; key { [ slash, question, voidsymbol, voidsymbol ] }; key { [ backslash, bar, voidsymbol, voidsymbol ] }; // third level with right-Alt include "level3(ralt_switch)" }; // // XKB symbol :: Probhat Bangla/Bengali Keyboard Layout // Ref: www.ankurbangla.org/images/probhat_layout.png // xkb_symbols "probhat" { include "in(ben_probhat)" name[Group1]= "Bangla (Probhat)"; }; PK(f[ňsymbols/capslocknu[default hidden partial modifier_keys xkb_symbols "capslock" { replace key { [ Caps_Lock ] }; modifier_map Lock { Caps_Lock }; }; hidden partial modifier_keys xkb_symbols "shiftlock" { replace key { [ Shift_Lock ] }; modifier_map Shift { Shift_Lock }; }; hidden partial modifier_keys xkb_symbols "grouplock" { replace key { [ ISO_Next_Group, Caps_Lock ] }; }; hidden partial modifier_keys xkb_symbols "groupshift" { key { type[Group1] = "PC_ALT_LEVEL2", [ Mode_switch, Caps_Lock ] }; }; hidden partial modifier_keys xkb_symbols "swapescape" { key { [ Escape ] }; key { [ Caps_Lock ] }; }; hidden partial modifier_keys xkb_symbols "escape" { key { [ Escape ] }; }; hidden partial modifier_keys xkb_symbols "escape_shifted_capslock" { key { type[Group1] = "TWO_LEVEL", symbols[Group1] = [ Escape, Caps_Lock ], actions[Group1] = [ NoAction(), LockMods(modifiers = Lock) ] }; }; hidden partial modifier_keys xkb_symbols "backspace" { key { [ BackSpace ] }; }; hidden partial modifier_keys xkb_symbols "super" { key { [ Super_L ] }; modifier_map Mod4 { }; }; hidden partial modifier_keys xkb_symbols "hyper" { key { [ Hyper_L ] }; modifier_map Mod4 { }; }; hidden partial modifier_keys xkb_symbols "menu" { key { [ Menu ] }; }; hidden partial modifier_keys xkb_symbols "numlock" { key { [ Num_Lock ] }; }; // This changes the key to become a Control modifier, // but it will still produce the Caps_Lock keysym. hidden partial modifier_keys xkb_symbols "ctrl_modifier" { replace key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Caps_Lock ], actions[Group1] = [ SetMods(modifiers=Control) ] }; modifier_map Control { }; }; hidden partial modifier_keys xkb_symbols "none" { key { [ VoidSymbol ] }; }; PK(f[ҖK77 symbols/latamnu[// based on a keyboard // Modified for a real Latin American Keyboard by Fabian Mandelbaum default partial alphanumeric_keys xkb_symbols "basic" { include "latin(type4)" name[Group1]="Spanish (Latin American)"; key { [ 1, exclam, bar, exclamdown ] }; key { [ 3, numbersign, periodcentered, sterling ] }; key { [ 4, dollar, asciitilde, dollar ] }; key { [ 6, ampersand, notsign, fiveeighths ] }; key { [apostrophe, question, backslash, questiondown ] }; key { [questiondown, exclamdown, dead_cedilla, dead_ogonek] }; key { [dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ] }; key { [ plus, asterisk, asciitilde, dead_macron ] }; key { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] }; key { [ braceleft, bracketleft, dead_circumflex, braceleft] }; key { [ bar, degree, notsign, notsign ] }; key { [braceright, bracketright, dead_grave, braceright ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "latam(basic)" key { [dead_acute, dead_diaeresis, braceleft, braceleft ] }; key { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] }; }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "latam(Sundeadkeys)" name[Group1]="Spanish (Latin American, with Sun dead keys)"; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "latam(basic)" name[Group1]="Spanish (Latin American, no dead keys)"; key { [questiondown, exclamdown, cedilla, ogonek ] }; key { [ grave, asciicircum, bracketleft, degree ] }; key { [ plus, asterisk, bracketright, macron ] }; key { [ ntilde, Ntilde, asciitilde, doubleacute ] }; key { [ acute, diaeresis, braceleft, braceleft ] }; key { [ ccedilla, Ccedilla, braceright, breve ] }; key { [ minus, underscore, dead_belowdot, abovedot ] }; }; partial alphanumeric_keys xkb_symbols "deadtilde" { include "latam(basic)" name[Group1]="Spanish (Latin American, dead tilde)"; key { [ plus, asterisk, dead_tilde, dead_macron ] }; }; // Latin American Spanish Dvorak mapping (note R-H exchange) partial alphanumeric_keys xkb_symbols "dvorak" { name[Group1]="Spanish (Latin American, Dvorak)"; key {[ bar, degree, notsign, notsign ]}; key {[ 1, exclam, bar, exclamdown ]}; key {[ 2, quotedbl, at, oneeighth ]}; key {[ 3, numbersign, periodcentered, sterling ]}; key {[ 4, dollar, asciitilde, dollar ]}; key {[ 5, percent, onehalf, threeeighths ]}; key {[ 6, ampersand, notsign, fiveeighths ]}; key {[ 7, slash, braceleft, seveneighths ]}; key {[ 8, parenleft, bracketleft, trademark ]}; key {[ 9, parenright, bracketright, plusminus ]}; key {[ 0, equal, braceright, degree ]}; key {[ apostrophe, question, backslash, questiondown ]}; key {[ questiondown, exclamdown, dead_cedilla, dead_ogonek ]}; key {[ period, colon, at ]}; key {[ comma, semicolon ]}; key {[ ntilde, Ntilde, lstroke, Lstroke ]}; key {[ p, P, paragraph ]}; key {[ y, Y, yen ]}; key {[ f, F, tslash, Tslash ]}; key {[ g, G, dstroke, Dstroke ]}; key {[ c, C, cent, copyright ]}; key {[ h, H, hstroke, Hstroke ]}; key {[ l, L, sterling ]}; key {[ dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ]}; key {[ plus, asterisk, asciitilde, dead_macron ]}; key {[ a, A, ae, AE ]}; key {[ o, O, oslash, Oslash ]}; key {[ e, E, EuroSign ]}; key {[ u, U, aring, Aring ]}; key {[ i, I, oe, OE ]}; key {[ d, D, eth, ETH ]}; key {[ r, R, registered, trademark ]}; key {[ t, T, thorn, THORN ]}; key {[ n, N, eng, ENG ]}; key {[ s, S, ssharp, section ]}; key {[ braceleft, bracketleft, dead_circumflex, braceleft ]}; key {[ braceright, bracketright, dead_grave, braceright ]}; key {[ less, greater, guillemotleft, guillemotright ]}; key {[ minus, underscore, hyphen, macron ]}; key {[ q, Q, currency ]}; key {[ j, J ]}; key {[ k, K, kra ]}; key {[ x, X, multiply, division ]}; key {[ b, B ]}; key {[ m, M, mu ]}; key {[ w, W ]}; key {[ v, V ]}; key {[ z, Z ]}; include "level3(ralt_switch)" }; // Latin American Spanish Colemak mapping (by eDreymaR) partial alphanumeric_keys xkb_symbols "colemak" { name[Group1]="Spanish (Latin American, Colemak)"; key {[ bar, degree, notsign, notsign ]}; key {[ 1, exclam, bar, exclamdown ]}; key {[ 2, quotedbl, at, oneeighth ]}; key {[ 3, numbersign, periodcentered, sterling ]}; key {[ 4, dollar, asciitilde, dollar ]}; key {[ 5, percent, onehalf, threeeighths ]}; key {[ 6, ampersand, notsign, fiveeighths ]}; key {[ 7, slash, braceleft, seveneighths ]}; key {[ 8, parenleft, bracketleft, trademark ]}; key {[ 9, parenright, bracketright, plusminus ]}; key {[ 0, equal, braceright, degree ]}; key {[ apostrophe, question, backslash, questiondown ]}; key {[ questiondown, exclamdown, dead_cedilla, dead_ogonek ]}; key {[ q, Q, U201A, U201E ]}; key {[ w, W, U2018, U201C ]}; key {[ f, F, U2019, U201D ]}; key {[ p, P, U2293, paragraph ]}; key {[ g, G, eng, ENG ]}; key {[ j, J, U222B, U03A3 ]}; key {[ l, L, lstroke, Lstroke ]}; key {[ u, U, U2039, guillemotleft ]}; key {[ y, Y, U203A, guillemotright ]}; key {[ ntilde, Ntilde, asciitilde, U02EE ]}; key {[ dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ]}; key {[ plus, asterisk, asciitilde, dead_macron ]}; key {[ a, A, ae, AE ]}; key {[ r, R, registered, trademark ]}; key {[ s, S, ssharp, section ]}; key {[ t, T, thorn, THORN ]}; key {[ d, D, eth, ETH ]}; key {[ h, H, hstroke, Hstroke ]}; key {[ n, N, hyphen, U2190 ]}; key {[ e, E, EuroSign, U2191 ]}; key {[ i, I, U2015, U2192 ]}; key {[ o, O, U00BA, U00AA ]}; key {[ braceleft, bracketleft, dead_circumflex, braceleft ]}; key {[ braceright, bracketright, dead_grave, braceright ]}; key {[ less, greater, bar, U00A6 ]}; key {[ z, Z, U0292, U01B7 ]}; key {[ x, X, U2020, U2021 ]}; key {[ c, C, cent, copyright ]}; key {[ v, V, division, U03B3 ]}; key {[ b, B, U2022, U03B2 ]}; key {[ k, K, U00E7, U00C7 ]}; key {[ m, M, multiply, U2193 ]}; key {[ comma, semicolon, hyphen, multiply ]}; key {[ period, colon, U0323, division ]}; key {[ minus, underscore ]}; include "level3(ralt_switch)" }; // Latin American Spanish Colemak mapping (by eDreymaR), customized to // keep WASD in a qwerty-like layout partial alphanumeric_keys xkb_symbols "colemak-gaming" { name[Group1]="Spanish (Latin American, Colemak for gaming)"; key {[ bar, degree, notsign, notsign ]}; key {[ 1, exclam, bar, exclamdown ]}; key {[ 2, quotedbl, at, oneeighth ]}; key {[ 3, numbersign, periodcentered, sterling ]}; key {[ 4, dollar, asciitilde, dollar ]}; key {[ 5, percent, onehalf, threeeighths ]}; key {[ 6, ampersand, notsign, fiveeighths ]}; key {[ 7, slash, braceleft, seveneighths ]}; key {[ 8, parenleft, bracketleft, trademark ]}; key {[ 9, parenright, bracketright, plusminus ]}; key {[ 0, equal, braceright, degree ]}; key {[ apostrophe, question, backslash, questiondown ]}; key {[ questiondown, exclamdown, dead_cedilla, dead_ogonek ]}; key {[ q, Q, U201A, U201E ]}; key {[ w, W, U2018, U201C ]}; key {[ f, F, U2019, U201D ]}; key {[ p, P, U2293, paragraph ]}; key {[ g, G, eng, ENG ]}; key {[ j, J, U222B, U03A3 ]}; key {[ l, L, lstroke, Lstroke ]}; key {[ u, U, U2039, guillemotleft ]}; key {[ y, Y, U203A, guillemotright ]}; key {[ ntilde, Ntilde, asciitilde, U02EE ]}; key {[ dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ]}; key {[ plus, asterisk, asciitilde, dead_macron ]}; key {[ a, A, ae, AE ]}; key {[ s, S, ssharp, section ]}; key {[ d, D, eth, ETH ]}; key {[ t, T, thorn, THORN ]}; key {[ r, R, registered, trademark ]}; key {[ h, H, hstroke, Hstroke ]}; key {[ n, N, hyphen, U2190 ]}; key {[ e, E, EuroSign, U2191 ]}; key {[ i, I, U2015, U2192 ]}; key {[ o, O, U00BA, U00AA ]}; key {[ braceleft, bracketleft, dead_circumflex, braceleft ]}; key {[ braceright, bracketright, dead_grave, braceright ]}; key {[ less, greater, bar, U00A6 ]}; key {[ z, Z, U0292, U01B7 ]}; key {[ x, X, U2020, U2021 ]}; key {[ c, C, cent, copyright ]}; key {[ v, V, division, U03B3 ]}; key {[ b, B, U2022, U03B2 ]}; key {[ k, K, U00E7, U00C7 ]}; key {[ m, M, multiply, U2193 ]}; key {[ comma, semicolon, hyphen, multiply ]}; key {[ period, colon, U0323, division ]}; key {[ minus, underscore ]}; include "level3(ralt_switch)" }; PK(f[՛ symbols/ghnu[default partial alphanumeric_keys xkb_symbols "basic" { include "us" name[Group1]= "English (Ghana)"; key { [ 4, 0x010020B5, dollar, cent ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "akan" { include "gh(basic)" name[Group1]= "Akan"; key { [ 0x0100025B, 0x01000190, q, Q ] }; key { [ 0x01000254, 0x01000186, x, X ] }; }; partial alphanumeric_keys xkb_symbols "ga" { include "gh(basic)" name[Group1]= "Ga"; key { [ 0x0100025B, 0x01000190, q, Q ] }; key { [ 0x01000254, 0x01000186, x, X ] }; key { [ 0x0100014B, 0x0100014A, c, C ] }; }; partial alphanumeric_keys xkb_symbols "ewe" { include "gh(basic)" name[Group1]= "Ewe"; key { [ 0x0100025B, 0x01000190, q, Q ] }; key { [ 0x0100014B, 0x0100014A, c, C ] }; key { [ 0x01000254, 0x01000186, braceleft, braceleft ] }; key { [ 0x0100028B, 0x010001B2, braceright, braceright ] }; key { [ 0x01000256, 0x01000189, backslash, backslash ] }; key { [ 0x01000192, 0x01000191, j, J ] }; key { [ g, G, 0x01000263, 0x01000194 ] }; }; partial alphanumeric_keys xkb_symbols "fula" { include "gh(basic)" name[Group1]= "Fula"; key { [ 0x01000071, 0x01000051, q, Q ] }; key { [ udiaeresis, Udiaeresis, w, W ] }; key { [ e, E, EuroSign, cent ] }; key { [ 0x010001B4, 0x010001B3,bracketleft, braceleft ] }; key { [ gcaron, Gcaron,bracketright, braceright] }; key { [ 0x01000257, 0x0100018A, d, D ] }; key { [ 0x01000131, 0x01000130, semicolon, colon ] }; key { [ 0x010001DD, 0x0100018E,apostrophe, quotedbl ] }; key { [ 0x01000272, 0x0100019D, z, Z ] }; key { [ ntilde, Ntilde, m, M ] }; key { [ ccedilla, Ccedilla, period, greater ] }; key { [ scedilla, Scedilla, slash, question ] }; }; partial alphanumeric_keys xkb_symbols "hausa" { include "gh(fula)" name[Group1]= "Hausa (Ghana)"; }; partial alphanumeric_keys xkb_symbols "generic" { include "gh(basic)" name[Group1]= "English (Ghana, multilingual)"; key { [ e, E, 0x0100025b, 0x01000190 ] }; key { [ c, C, 0x01000254, 0x01000186 ] }; key { [ d, D, 0x01000256, 0x01000189 ] }; key { [ f, F, 0x01000192, 0x01000191 ] }; key { [ g, G, 0x01000263, 0x01000194 ] }; key { [ n, N, 0x0100014b, 0x0100014a ] }; key { [ z, Z, 0x010001B6, 0x010001B5 ] }; key { [ v, V, 0x0100028B, 0x010001B2 ] }; key { [ 4, dollar, 0x010020B5, cent ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "avn" { include "gh(basic)" name[Group1]= "Avatime"; key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; // combining grave; combining tilde key { [ 4, dollar, cent, 0x010020B5 ] }; // ¢, ₵ key { [ minus, underscore, 0x01000304, 0x01000304 ] }; // combining macron key { [ 0x0100028B, 0x010001B2 ] }; // ʋ, Ʋ key { [ u, U, 0x0100028A, 0x010001B1 ] }; // ʊ, Ʊ key { [ i, I, 0x01000269, 0x01000196 ] }; // ɩ, Ɩ key { [ 0x0100025B, 0x01000190, bracketleft, braceleft ] }; // ɛ, Ɛ key { [ d, D, 0x01000256, 0x01000189 ] }; // ɖ, Ɖ key { [ f, F, 0x01000192, 0x01000191 ] }; // ƒ, Ƒ key { [ 0x0100014B, 0x0100014A ] }; // ŋ, Ŋ key { [ apostrophe, quotedbl, 0x01000301, 0x01000301 ] }; // combining acute key { [ 0x01000254, 0x01000186 ] }; // ɔ, Ɔ include "level3(ralt_switch)" }; // This keyboard layout fully imitates the 'Ghana Unicode' layout which is used in GILLBT on Windows with Keyman. // However, in this layout a 3rd level key (R ALT) is used rather than dead keys. // Also it has three additional features: // 1) combining macron above: + + <-> // 2) cent: + <4> or + + <4> // 3) ʊ/Ʊ: + / partial alphanumeric_keys xkb_symbols "gillbt" { include "gh(basic)" name[Group1]= "English (Ghana, GILLBT)"; key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; // combining grave; combining tilde key { [ 4, dollar, cent, 0x010020B5 ] }; // ¢, ₵ key { [ 6, asciicircum, 0x01000302, 0x01000302 ] }; // combining circumflex accent key { [ minus, underscore, 0x01000331, 0x01000304 ] }; // combining macron below; combining macron above key { [ 0x0100014B, 0x0100014A, equal, plus ] }; // ŋ, Ŋ key { [ 0x0100028B, 0x010001B2, q, Q ] }; // ʋ, Ʋ key { [ e, E, 0x010001DD, 0x0100018E ] }; // ǝ, Ǝ key { [ u, U, 0x0100028A, 0x010001B1 ] }; // ʊ, Ʊ key { [ 0x0100025B, 0x01000190, bracketleft, braceleft ] }; // ɛ, Ɛ key { [ 0x01000254, 0x01000186, bracketright, braceright ] }; // ɔ, Ɔ key { [ d, D, 0x01000256, 0x01000189 ] }; // ɖ, Ɖ key { [ f, F, 0x01000192, 0x01000191 ] }; // ƒ, Ƒ key { [ g, G, 0x01000263, 0x01000194 ] }; // ɣ, Ɣ key { [ apostrophe, quotedbl, 0x01000301, 0x01000301 ] }; // combining acute key { [ z, Z, 0x01000292, 0x010001B7 ] }; // ʒ, Ʒ key { [ 0x01000269, 0x01000196, x, X ] }; // ɩ, Ɩ key { [ c, C, 0x010000E7, 0x010000C7 ] }; // ç, Ç include "level3(ralt_switch)" }; PK(f[+a symbols/olpcnu[// // Created by Bernardo Innocenti // // Additional symbol definitions for the OLPC keyboards // alphanumeric_keys modifier_keys xkb_symbols "olpc" { include "pc(pc105)" modifier_map Mod1 { KP_Home }; // KP_Home is the "square" game key modifier_map Mod3 { KP_End }; // KP_End is the "tick" game key modifier_map Mod4 { KP_Prior }; // KP_Prior is the "O" game key modifier_map Mod5 { KP_Next }; // KP_Next is the "X" game key key { [ XF86Search ] }; // search key (unpopulated on olpcm, harmless) key { [ XF86Meeting ] }; // fn+search key (unpopulated on olpcm, harmless) key { [ XF86Start ] }; // gear key (fn+space) key { [ XF86TaskPane ] }; // frame key (the top-right key) (unpopulated on olpcm, harmless) key { [ XF86Messenger ] }; // overlay key (next to frame key) (unpopulated on olpcm, harmless) }; PK(f[_]}11 symbols/benu[// based on a keyboard map from an 'xkb/symbols/be' file default partial alphanumeric_keys xkb_symbols "basic" { include "latin" name[Group1]="Belgian"; key { [ ampersand, 1, bar, exclamdown ] }; key { [ eacute, 2, at, oneeighth ] }; key { [ quotedbl, 3, numbersign, sterling ] }; key { [apostrophe, 4, onequarter, dollar ] }; key { [ parenleft, 5, onehalf, threeeighths ] }; key { [ section, 6, asciicircum, fiveeighths ] }; key { [ egrave, 7, braceleft, seveneighths ] }; key { [ exclam, 8, bracketleft, trademark ] }; key { [ ccedilla, 9, braceleft, plusminus ] }; key { [ agrave, 0, braceright, degree ] }; key { [parenright, degree, backslash, questiondown ] }; key { [ minus, underscore, dead_cedilla, dead_ogonek ] }; key { [ a, A, at, Greek_OMEGA ] }; key { [ z, Z, lstroke, Lstroke ] }; key { [ e, E, EuroSign, cent ] }; key { [ o, O, oe, OE ] }; // o O œ Œ key { [dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] }; key { [ dollar, asterisk, bracketright, dead_macron ] }; key { [ q, Q, ae, AE ] }; key { [ m, M, dead_acute, dead_doubleacute ] }; key { [ ugrave, percent, dead_acute, dead_caron ] }; key { [twosuperior, threesuperior, notsign, notsign ] }; key { [ mu, sterling, dead_grave, dead_breve ] }; key { [ w, W, guillemotleft, less ] }; key { [ comma, question, dead_cedilla, masculine ] }; key { [ semicolon, period, horizconnector, multiply ] }; key { [ colon, slash, periodcentered, division ] }; key { [ equal, plus, dead_tilde, dead_abovedot] }; key { [ less, greater, backslash, backslash ] }; include "level3(ralt_switch)" }; // Variant of the fr(oss) layout for Belgium // Copyright © 2006 Nicolas Mailhot // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ³ ≤ │ 1 ≥ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ™ │ 7 È │ 8 ¡ │ 9 Ç │ 0 À │ ° Ø │ _ ± ┃ ⌫ Retour┃ // │ ² ¹ │ & | │ é @ │ " # │ ' ¸ │ ( ˇ │ § ^ │ è ` │ ! ~ │ ç { │ à } │ ) ø │ - ‑ ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ * ̨ ┃Entrée ┃ // ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ [ │ $ ] ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ Q Ä │ S „ │ D Ë │ F ‚ │ G ¥ │ H Ð │ J Ü │ K Ï │ L │ M Ö │ % Ù │ £ ̄ ┃ ┃ // ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f ‘ │ g ’ │ h ð │ j ü │ k ï │ l / │ m ö │ ù ' │ µ ` ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ > ≠ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ + − ┃ ┃ // ┃Shift ⇧┃ < \ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ = ~ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ Espace insécable ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "oss" { include "fr(oss)" include "be(oss_frbe)" name[Group1]="Belgian (alt.)"; }; partial alphanumeric_keys xkb_symbols "oss_frbe" { // First row key { [ twosuperior, threesuperior, onesuperior, lessthanequal ] }; // ² ³ ¹ ≤ key { [ ampersand, 1, bar, greaterthanequal ] }; // & 1 | ≥ key { [ eacute, 2, at, Eacute ] }; // é 2 @ É key { [ apostrophe, 4, dead_cedilla, 0x1002014 ] }; // ' 4 ¸ — (tiret cadratin) key { [ parenleft, 5, dead_caron, 0x1002013 ] }; // ( 5 ˇ – (tiret demi-cadratin) key { [ section, 6, asciicircum, trademark ] }; // § 6 ^ ™ key { [ exclam, 8, asciitilde, exclamdown ] }; // ! 8 ~ ¡ key { [ ccedilla, 9, braceleft, Ccedilla ] }; // ç 9 { Ç key { [ agrave, 0, braceright, Agrave ] }; // à 0 } À key { [ parenright, degree, oslash, Ooblique ] }; // ) ° ø Ø key { [ minus, underscore, 0x1002011, plusminus ] }; // - _ - (tiret insécable) ± // Second row key { [ dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] }; // ^ ̈ [ ˚ key { [ dollar, asterisk, bracketright, dead_ogonek ] }; // $ * ] ̨ // Third row key { [ l, L, dead_stroke ] }; key { [ mu, sterling, dead_grave, dead_macron ] }; // µ £ ` ̄ // Fourth row key { [ less, greater, backslash, notequal ] }; // < > \ ≠ key { [ equal, plus, dead_tilde, 0x1002212 ] }; // = + ~ − }; partial alphanumeric_keys xkb_symbols "oss_latin9" { // Restricts the be(oss) layout to latin9 symbols include "fr(oss_latin9)" include "be(oss_frbe)" include "keypad(oss_latin9)" name[Group1]="Belgian (alt., Latin-9 only)"; // First row key { [ twosuperior, threesuperior, onesuperior, less ] }; // ² ³ ¹ < key { [ ampersand, 1, bar, greater ] }; // & 1 | > key { [ apostrophe, 4, dead_cedilla, minus ] }; // ' 4 ¸ - key { [ parenleft, 5, dead_caron, minus ] }; // ( 5 ˇ - key { [ section, 6, asciicircum, asciicircum ] }; // § 6 ^ ^ key { [ minus, underscore, minus, plusminus ] }; // - _ - ± // Second row key { [ dollar, asterisk, bracketright, dead_cedilla ] }; // $ * ] ¸ // Third row key { [ l, L, l, L ] }; // l L l L key { [ mu, sterling, dead_grave, dead_circumflex ] }; // µ £ ` ^ // Fourth row key { [ less, greater, backslash, equal ] }; // < > \ = key { [ equal, plus, dead_tilde, minus ] }; // = + ~ - }; partial alphanumeric_keys xkb_symbols "oss_Sundeadkeys" { // Modifies the basic be(oss) layout to use the Sun dead keys include "be(oss)" // First row key { [ apostrophe, 4, dead_cedilla, 0x1002014 ] }; // ' 4 ¸ — (tiret cadratin) // Second row key { [ dead_circumflex, dead_diaeresis, bracketleft, dead_abovering ] }; // ^ ̈ [ ˚ //Third row key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù key { [ mu, sterling, dead_grave, dead_macron ] }; // µ £ ` ̄ // Fourth row key { [ equal, plus, dead_tilde, 0x1002212 ] }; // = + ~ − }; partial alphanumeric_keys xkb_symbols "oss_sundeadkeys" { include "be(oss_Sundeadkeys)" name[Group1]="Belgian (alt., with Sun dead keys)"; }; partial alphanumeric_keys xkb_symbols "iso-alternate" { include "be(basic)" name[Group1]="Belgian (alt. ISO)"; key { [ a, A, ae, AE ] }; key { [ z, Z, guillemotleft, less ] }; key { [ q, Q, at, Greek_OMEGA ] }; key { [ m, M, mu, masculine ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ comma, question, dead_cedilla, dead_doubleacute ] }; }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { // Use the Sun dead keys include "be(basic)" name[Group1]="Belgian (with Sun dead keys)"; key { [dead_circumflex, dead_diaeresis, bracketleft, bracketleft] }; key { [ ugrave, percent, dead_acute, dead_acute ] }; key { [ mu, sterling, dead_grave, dead_grave ] }; key { [ comma, question, dead_cedilla, dead_cedilla] }; key { [ equal, plus, dead_tilde, dead_tilde ] }; }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { // Use the Sun dead keys include "be(sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Eliminates dead keys from the basic Belgian layout include "be(basic)" name[Group1]="Belgian (no dead keys)"; key { [ minus, underscore, cedilla, ogonek ] }; key { [asciicircum, diaeresis, bracketleft, bracketleft] }; key { [ dollar, asterisk, bracketright, macron ] }; key { [ m, M, acute, doubleacute ] }; key { [ ugrave, percent, apostrophe, apostrophe ] }; key { [ mu, sterling, grave, grave ] }; key { [ comma, question, cedilla, masculine ] }; key { [ equal, plus, asciitilde, asciitilde ] }; }; // Wang model 724 azerty Belgium keyboard partial alphanumeric_keys xkb_symbols "wang" { include "be(basic)" include "keypad(legacy_wang)" name[Group1]="Belgian (Wang 724 AZERTY)"; // Engravings on Wang 725-3771-ae key { [ twosuperior, threesuperior, notsign, asciitilde ] }; key { [ less, greater, backslash, brokenbar ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/be(sun_type6)" }; PK(f[kl(l( symbols/amnu[// based on a keyboard map from an 'xkb/symbols/am' file default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Armenian"; key { [ Armenian_separation_mark, Armenian_exclam ] }; key { [ question, Armenian_hyphen ] }; key { [ guillemotright, guillemotleft ] }; key { [ Armenian_fe, Armenian_FE ] }; key { [ Armenian_dza, Armenian_DZA ] }; key { [ Armenian_hyphen, 0x1002014 ] }; key { [ comma, dollar ] }; key { [ Armenian_full_stop, 0x1002026 ] }; key { [ Armenian_question, percent ] }; key { [ 0x1002024, Armenian_ligature_ew ] }; key { [ Armenian_accent, Armenian_apostrophe ] }; key { [ parenright, parenleft ] }; key { [ Armenian_o, Armenian_O ] }; key { [ Armenian_e, Armenian_E ] }; key { [ Armenian_ghat, Armenian_GHAT ] }; key { [ Armenian_tche, Armenian_TCHE ] }; key { [ Armenian_pyur, Armenian_PYUR ] }; key { [ Armenian_ben, Armenian_BEN ] }; key { [ Armenian_se, Armenian_SE ] }; key { [ Armenian_men, Armenian_MEN ] }; key { [ Armenian_vo, Armenian_VO ] }; key { [ Armenian_vyun, Armenian_VYUN ] }; key { [ Armenian_ken, Armenian_KEN ] }; key { [ Armenian_at, Armenian_AT ] }; key { [ Armenian_to, Armenian_TO ] }; key { [ Armenian_tsa, Armenian_TSA ] }; key { [ Armenian_tso, Armenian_TSO ] }; key { [ Armenian_je, Armenian_JE ] }; key { [ Armenian_vev, Armenian_VEV ] }; key { [ Armenian_gim, Armenian_GIM ] }; key { [ Armenian_yech, Armenian_YECH ] }; key { [ Armenian_ayb, Armenian_AYB ] }; key { [ Armenian_nu, Armenian_NU ] }; key { [ Armenian_ini, Armenian_INI ] }; key { [ Armenian_tyun, Armenian_TYUN ] }; key { [ Armenian_ho, Armenian_HO ] }; key { [ Armenian_pe, Armenian_PE ] }; key { [ Armenian_re, Armenian_RE ] }; key { [ Armenian_zhe, Armenian_ZHE ] }; key { [ Armenian_da, Armenian_DA ] }; key { [ Armenian_cha, Armenian_CHA ] }; key { [ Armenian_hi, Armenian_HI ] }; key { [ Armenian_za, Armenian_ZA ] }; key { [ Armenian_lyun, Armenian_LYUN ] }; key { [ Armenian_ke, Armenian_KE ] }; key { [ Armenian_khe, Armenian_KHE ] }; key { [ Armenian_sha, Armenian_SHA ] }; key { [ Armenian_ra, Armenian_RA ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { include "am(basic)" include "group(olpc)" }; xkb_symbols "phonetic" { include "am(basic)" name[Group1]= "Armenian (phonetic)"; key { [ Armenian_sha, Armenian_SHA ] }; key { [ Armenian_e, Armenian_E ] }; key { [ Armenian_to, Armenian_TO ] }; key { [ Armenian_pyur, Armenian_PYUR ] }; key { [ Armenian_dza, Armenian_DZA ] }; key { [ Armenian_je, Armenian_JE ] }; key { [ Armenian_vyun, Armenian_VYUN ] }; key { [ Armenian_ligature_ew, 0x100058f ] }; key { [ Armenian_ra, Armenian_RA ] }; key { [ Armenian_cha, Armenian_CHA ] }; key { [ Armenian_tche, Armenian_TCHE ] }; key { [ Armenian_hyphen, 0x1002015 ] }; key { [ Armenian_zhe, Armenian_ZHE ] }; key { [ Armenian_ke, Armenian_KE ] }; key { [ Armenian_vo, Armenian_VO ] }; key { [ Armenian_yech, Armenian_YECH ] }; key { [ Armenian_re, Armenian_RE ] }; key { [ Armenian_tyun, Armenian_TYUN ] }; key { [ Armenian_at, Armenian_AT ] }; key { [ Armenian_vyun, Armenian_VYUN ] }; key { [ Armenian_ini, Armenian_INI ] }; key { [ Armenian_o, Armenian_O ] }; key { [ Armenian_pe, Armenian_PE ] }; key { [ Armenian_khe, Armenian_KHE ] }; key { [ Armenian_tsa, Armenian_TSA ] }; key { [ Armenian_ayb, Armenian_AYB ] }; key { [ Armenian_se, Armenian_SE ] }; key { [ Armenian_da, Armenian_DA ] }; key { [ Armenian_fe, Armenian_FE ] }; key { [ Armenian_gim, Armenian_GIM ] }; key { [ Armenian_ho, Armenian_HO ] }; key { [ Armenian_hi, Armenian_HI ] }; key { [ Armenian_ken, Armenian_KEN ] }; key { [ Armenian_lyun, Armenian_LYUN ] }; key { [ semicolon, Armenian_full_stop ] }; key { [ Armenian_accent, 0x1000022 ] }; key { [ Armenian_za, Armenian_ZA ] }; key { [ Armenian_ghat, Armenian_GHAT ] }; key { [ Armenian_tso, Armenian_TSO ] }; key { [ Armenian_vev, Armenian_VEV ] }; key { [ Armenian_ben, Armenian_BEN ] }; key { [ Armenian_nu, Armenian_NU ] }; key { [ Armenian_men, Armenian_MEN ] }; key { [ 0x100002C, 0x10000AB ] }; key { [ 0x1002024, 0x10000BB ] }; key { [ 0x100002F, Armenian_question ] }; }; partial alphanumeric_keys xkb_symbols "phonetic-alt" { include "am(phonetic)" name[Group1]= "Armenian (alt. phonetic)"; key { [ Armenian_re, Armenian_RE ] }; key { [ Armenian_ra, Armenian_RA ] }; }; partial alphanumeric_keys xkb_symbols "olpc-phonetic" { include "am(phonetic-alt)" name[Group1]= "Armenian (OLPC phonetic)"; include "group(olpc)" }; partial alphanumeric_keys xkb_symbols "eastern" { name[Group1]="Armenian (eastern)"; // This is the closer phonetic transliteration for Eastern Armenian // than the Windows XP layout for Eastern Armenian, which seems // to have contained a bug, with the reversal of 'g' for keh and 'c' for gim. // Also, AE01 (the colon) has been replaced with the Armenian_full_stop, // and capital AE07 (ken) with the Armenian ligature ew. key { [ Armenian_separation_mark, Armenian_exclam ] }; key { [ Armenian_full_stop, KP_1 ] }; key { [ Armenian_dza, Armenian_DZA ] }; key { [ Armenian_hi, Armenian_HI ] }; key { [ Armenian_accent, KP_3 ] }; key { [ comma, KP_4 ] }; key { [ minus, KP_9 ] }; key { [ period, Armenian_ligature_ew ] }; key { [ guillemotleft, parenleft ] }; key { [ guillemotright, parenright ] }; key { [ Armenian_o, Armenian_O ] }; key { [ Armenian_ra, Armenian_RA ] }; key { [ Armenian_zhe, Armenian_ZHE ] }; key { [ Armenian_khe, Armenian_KHE ] }; key { [ Armenian_vyun, Armenian_VYUN ] }; key { [ Armenian_e, Armenian_E ] }; key { [ Armenian_re, Armenian_RE ] }; key { [ Armenian_tyun, Armenian_TYUN ] }; key { [ Armenian_yech, Armenian_YECH ] }; key { [ Armenian_at, Armenian_AT ] }; key { [ Armenian_ini, Armenian_INI ] }; key { [ Armenian_vo, Armenian_VO ] }; key { [ Armenian_pe, Armenian_PE ] }; key { [ Armenian_cha, Armenian_CHA ] }; key { [ Armenian_je, Armenian_JE ] }; key { [ apostrophe, Armenian_question ] }; key { [ Armenian_ayb, Armenian_AYB ] }; key { [ Armenian_se, Armenian_SE ] }; key { [ Armenian_da, Armenian_DA ] }; key { [ Armenian_fe, Armenian_FE ] }; key { [ Armenian_gim, Armenian_GIM ] }; key { [ Armenian_ho, Armenian_HO ] }; key { [ Armenian_tche, Armenian_TCHE ] }; key { [ Armenian_ken, Armenian_KEN ] }; key { [ Armenian_lyun, Armenian_LYUN ] }; key { [ Armenian_to, Armenian_TO ] }; key { [ Armenian_pyur, Armenian_PYUR ] }; key { [ Armenian_za, Armenian_ZA ] }; key { [ Armenian_tso, Armenian_TSO ] }; key { [ Armenian_ke, Armenian_KE ] }; key { [ Armenian_vev, Armenian_VEV ] }; key { [ Armenian_ben, Armenian_BEN ] }; key { [ Armenian_nu, Armenian_NU ] }; key { [ Armenian_men, Armenian_MEN ] }; key { [ Armenian_sha, Armenian_SHA ] }; key { [ Armenian_ghat, Armenian_GHAT ] }; key { [ Armenian_tsa, Armenian_TSA ] }; }; partial alphanumeric_keys xkb_symbols "western" { include "am(eastern)" name[Group1]="Armenian (western)"; // This is exactly the same layout for Western Armenian // as in Windows XP, except: // AE01 (the colon) has been replaced with the Armenian_full_stop and // capital AE07 (ken) with the Armenian ligature ew key { [ Armenian_vev, Armenian_VEV ] }; key { [ Armenian_da, Armenian_DA ] }; key { [ Armenian_ben, Armenian_BEN ] }; key { [ Armenian_tyun, Armenian_TYUN ] }; key { [ Armenian_ken, Armenian_KEN ] }; key { [ Armenian_ke, Armenian_KE ] }; key { [ Armenian_gim, Armenian_GIM ] }; key { [ Armenian_vyun, Armenian_VYUN ] }; key { [ Armenian_pe, Armenian_PE ] }; }; partial alphanumeric_keys xkb_symbols "eastern-alt" { include "am(eastern)" name[Group1]="Armenian (alt. eastern)"; // This replicates the Windows XP keyboard layout for Eastern // Armenian exactly (including the bug), except: // AE01 (the colon) has been replaced with the Armenian_full_stop and // capital AE07 (ken) with the Armenian ligature ew key { [ Armenian_ke, Armenian_KE ] }; key { [ Armenian_gim, Armenian_GIM ] }; }; PK(f[#RR symbols/aranu[default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Arabic"; key.type[Group1]="FOUR_LEVEL"; key { [ Arabic_thal, Arabic_shadda, Arabic_percent, U0609 ]}; // ‎ذ‎ ‎◌ّ‎ ‎٪‎ ‎؉‎ key { [ 1, exclam, Arabic_1, NoSymbol ]}; // 1 ! ١ key { [ 2, at, Arabic_2, NoSymbol ]}; // 2 @ ٢ key { [ 3, numbersign, Arabic_3, NoSymbol ]}; // 3 # ٣ key { [ 4, dollar, Arabic_4, NoSymbol ]}; // 4 $ ٤ key { [ 5, percent, Arabic_5, U2030 ]}; // 5 % ٥ ‰ key { [ 6, asciicircum, Arabic_6, NoSymbol ]}; // 6 ^ ٦ key { [ 7, ampersand, Arabic_7, NoSymbol ]}; // 7 & ٧ key { [ 8, asterisk, Arabic_8, NoSymbol ]}; // 8 * ٨ key { [ 9, parenright, Arabic_9, NoSymbol ]}; // 9 ) ٩ key { [ 0, parenleft, Arabic_0, NoSymbol ]}; // 0 ( ٠ key { [ minus, underscore, endash, U2011 ]}; // - _ – Non-Breaking-Hyphen key { [ equal, plus, notequal, U2248 ]}; // = + ≠ ≈ key { [ Arabic_dad, Arabic_fatha, NoSymbol, U2066 ]}; // ‎ض‎ ‎◌َ LEFT‑TO‑RIGHT ISOLATE key { [ Arabic_sad, Arabic_fathatan, NoSymbol, U2067 ]}; // ‎ص‎ ‎◌ً RIGHT‑TO‑LEFT ISOLATE key { [ Arabic_theh, Arabic_damma, NoSymbol, U2068 ]}; // ‎ث‎ ‎◌ُ FIRST STRONG ISOLATE key { [ Arabic_qaf, Arabic_dammatan, NoSymbol, U2069 ]}; // ‎ق‎ ‎◌ٌ POP DIRECTIONAL ISOLATE key { [ Arabic_feh, UFEF9, Arabic_veh, NoSymbol ]}; // ‎ف‎ ‎ﻹ ‎ڤ key { [ Arabic_ghain,Arabic_hamzaunderalef, NoSymbol, U202A ]}; // ‎غ‎ ‎إ‎ LEFT-TO-RIGHT-EMBEDDING key { [ Arabic_ain, grave, NoSymbol, U202B ]}; // ‎ع‎ ` RIGHT-TO-LEFT EMBEDDING key { [ Arabic_ha, division, NoSymbol, U202C ]}; // ‎ه‎ ÷ POP DIRECTIONAL FORMATTING key { [ Arabic_khah, multiply, NoSymbol, NoSymbol ]}; // ‎خ‎ × key { [ Arabic_hah, Arabic_semicolon, NoSymbol, U200E ]}; // ‎ح‎ ؛ LEFT-TO-RIGHT MARK key { [ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ‎ج‎ < ‎چ‎ RIGHT-TO-LEFT MARK key { [ Arabic_dal, greater, NoSymbol, U061C ]}; // ‎د‎ > ARABIC LETTER MARK key { [ Arabic_sheen, Arabic_kasra, NoSymbol, NoSymbol ]}; // ‎ش‎ ‎◌ِ‎ key { [ Arabic_seen, Arabic_kasratan, NoSymbol, NoSymbol ]}; // ‎س‎ ‎◌ٍ‎ key { [ Arabic_yeh, bracketright, NoSymbol, NoSymbol ]}; // ‎ي‎ ] key { [ Arabic_beh, bracketleft, Arabic_peh, NoSymbol ]}; // ‎ب‎ [ ‎پ‎ key { [ Arabic_lam, U0FEF7, NoSymbol, NoSymbol ]}; // ‎ل‎ ‎ﻷ‎ key { [ Arabic_alef, Arabic_hamzaonalef, U0671, NoSymbol ]}; // ‎ا‎ ‎أ ‎ٱ‎ key { [ Arabic_teh, Arabic_tatweel, NoSymbol, NoSymbol ]}; // ‎ت‎ ‎ـ‎ key { [ Arabic_noon, Arabic_comma, U066B, NoSymbol ]}; // ‎ن‎ ‎،‎ ‎٫‎ key { [ Arabic_meem, slash, NoSymbol, NoSymbol ]}; // ‎م‎ / key { [ Arabic_kaf, colon, Arabic_gaf, NoSymbol ]}; // ‎ك‎ : ‎گ‎ key { [ Arabic_tah, quotedbl, U27E9, U200D ]}; // ‎ط‎ " ⟩ ZWJ key { [ backslash, ellipsis, U27E8, U202F ]}; // \ … ⟨ NNBSP key { [ bar, brokenbar, NoSymbol, NoSymbol ]}; // | ¦ key { [Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ‎ئ‎ ~ » › key { [ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ‎ء‎ ◌ْ « ‹ key { [Arabic_hamzaonwaw, braceright, NoSymbol, NoSymbol ]}; // ‎ؤ } key { [ Arabic_ra, braceleft, NoSymbol, NoSymbol ]}; // ‎ر‎ { key { [ UFEFB, UFEF5, NoSymbol, NoSymbol ]}; // ‎ﻻ‎ ‎ﻵ‎ key {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, NoSymbol ]}; // ‎ى‎ ‎آ‎ ‎◌ٰ‎ key { [Arabic_tehmarbuta, apostrophe, NoSymbol, NoSymbol ]}; // ‎ة‎ ' key { [ Arabic_waw, comma, U066C, NoSymbol ]}; // ‎و‎ , ‎٬ key { [ Arabic_zain, period, Arabic_jeh, NoSymbol ]}; // ‎ز‎ . ‎ژ‎ key { [ Arabic_zah, Arabic_question_mark, U066D, U200C ]}; // ‎ظ‎ ‎؟‎ ‎٭‎ ZWNJ include "level3(ralt_switch)" }; // Synonym for the default partial alphanumeric_keys xkb_symbols "qwerty" { include "ara(basic)" name[Group1]= "Arabic (QWERTY)"; }; // Replaces the Western numeral signs with Arabic-script digits on the keypad, pushing the Western digits to the third level accessible by the right alt key. // As this set of definitions is unlisted, it is not usable without parallel mapping on the numeric row in the ara(digits) layout which includes it. partial hidden keypad_keys xkb_symbols "digits_KP" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD"; key { [ KP_Home, Arabic_7, 7, NoSymbol ] }; key { [ KP_Up, Arabic_8, 8, NoSymbol ] }; key { [ KP_Prior, Arabic_9, 9, NoSymbol ] }; key { [ KP_Left, Arabic_4, 4, NoSymbol ] }; key { [ KP_Begin, Arabic_5, 5, NoSymbol ] }; key { [ KP_Right, Arabic_6, 6, NoSymbol ] }; key { [ KP_End, Arabic_1, 1, NoSymbol ] }; key { [ KP_Down, Arabic_2, 2, NoSymbol ] }; key { [ KP_Next, Arabic_3, 3, NoSymbol ] }; key { [ KP_Insert, Arabic_0, 0, NoSymbol ] }; include "kpdl(momayyezoss)" }; // Replaces the Western numeral signs with Arabic-script digits on the numeric row, pushing the Western digits to the third level accessible by the right alt key. partial alphanumeric_keys xkb_symbols "digits" { include "ara(basic)" name[Group1]= "Arabic (digits)"; key { [Arabic_thal,Arabic_shadda, percent,U2030]}; key { [ Arabic_1, exclam, 1, NoSymbol ] }; key { [ Arabic_2, at, 2, NoSymbol ] }; key { [ Arabic_3, numbersign, 3, NoSymbol ] }; key { [ Arabic_4, dollar, 4, NoSymbol ] }; key { [ Arabic_5, Arabic_percent, 5, U0609 ] }; key { [ Arabic_6, asciicircum, 6, NoSymbol ] }; key { [ Arabic_7, ampersand, 7, NoSymbol ] }; key { [ Arabic_8, asterisk, 8, NoSymbol ] }; key { [ Arabic_9, parenright, 9, NoSymbol ] }; key { [ Arabic_0, parenleft, 0, NoSymbol ] }; include "ara(digits_KP)" }; // Synonym for the layout with the Latin-script and Arabic-script digits switched partial alphanumeric_keys xkb_symbols "qwerty_digits" { include "ara(digits)" name[Group1]= "Arabic (qwerty/digits)"; }; partial alphanumeric_keys xkb_symbols "azerty" { include "ara(basic)" name[Group1]= "Arabic (AZERTY)"; // The North African Arabic keyboard differs from the Middle East one // by the numeric row; it follows French keyboard style. // // PROBLEM: some characters are inaccessible: ! @ # $ % ^ * // Should they go elsewhere? Replacing " ' that are now doubled? // Also, dead_circumflex and dead_diaeresis from French keyboard // as well as ugrave are missing, which questions the utility of the // other accentuated Latin letters. Maybe this is useful only with // a French keyboard in Group1? Then, shouldn't Group1 be filled? key { [ ampersand, 1 ] }; key { [ eacute, 2 ] }; key { [ quotedbl, 3 ] }; key { [ apostrophe, 4 ] }; key { [ parenleft, 5 ] }; key { [ minus, 6 ] }; key { [ egrave, 7 ] }; key { [ underscore, 8 ] }; key { [ ccedilla, 9 ] }; key { [ agrave, 0 ] }; key { [ parenright, degree ] }; }; partial alphanumeric_keys xkb_symbols "azerty_digits" { include "ara(azerty)" name[Group1]= "Arabic (AZERTY/digits)"; key { [ ampersand, Arabic_1, 1, NoSymbol ] }; key { [ eacute, Arabic_2, 2, NoSymbol ] }; key { [ quotedbl, Arabic_3, 3, NoSymbol ] }; key { [ apostrophe, Arabic_4, 4, NoSymbol ] }; key { [ parenleft, Arabic_5, 5, NoSymbol ] }; key { [ minus, Arabic_6, 6, NoSymbol ] }; key { [ egrave, Arabic_7, 7, NoSymbol ] }; key { [ underscore, Arabic_8, 8, NoSymbol ] }; key { [ ccedilla, Arabic_9, 9, NoSymbol ] }; key { [ agrave, Arabic_0, 0, NoSymbol ] }; }; // Arabic keyboard using Buckwalter transliteration // http://www.qamus.org/transliteration.htm // Martin Vidner partial alphanumeric_keys xkb_symbols "buckwalter" { name[Group1]= "Arabic (Buckwalter)"; // ARABIC LETTER SUPERSCRIPT ALEF key { [ 0x1000670, Arabic_shadda ] }; // Arabic_0 .. Arabic_9 do not work in Kate, // Unicode never seems to work worse. key { [ 0x1000661, VoidSymbol ] }; key { [ 0x1000662, VoidSymbol ] }; key { [ 0x1000663, VoidSymbol ] }; key { [ 0x1000664, Arabic_sheen ] }; key { [ 0x1000665, Arabic_percent ] }; key { [ 0x1000666, VoidSymbol ] }; key { [ 0x1000667, Arabic_hamzaonwaw ] }; key { [ 0x1000668, Arabic_thal ] }; // ORNATE LEFT PARENTHESIS key { [ 0x1000669, 0x100fd3e ] }; // ORNATE RIGHT PARENTHESIS key { [ 0x1000660, 0x100fd3f ] }; key { [ minus, Arabic_tatweel ] }; key { [ equal, plus ] }; key { [ Arabic_qaf, VoidSymbol ] }; key { [ Arabic_waw, Arabic_hamzaonwaw ] }; key { [ VoidSymbol, Arabic_ain ] }; key { [ Arabic_ra, VoidSymbol ] }; key { [ Arabic_teh, Arabic_tah ] }; key { [ Arabic_yeh, Arabic_alefmaksura ] }; key { [ Arabic_damma, VoidSymbol ] }; key { [ Arabic_kasra, Arabic_hamzaunderalef ] }; key { [ Arabic_sukun, Arabic_hamzaonalef ] }; key { [ Arabic_tehmarbuta, VoidSymbol ] }; // ARABIC LETTER ALEF WASLA key { [ VoidSymbol, 0x1000671 ] }; key { [ VoidSymbol, Arabic_hamzaonyeh ] }; key { [ Arabic_fatha, Arabic_alef ] }; key { [ Arabic_seen, Arabic_sad ] }; key { [ Arabic_dal, Arabic_dad ] }; key { [ Arabic_feh, Arabic_fathatan ] }; key { [ Arabic_ghain, VoidSymbol ] }; key { [ Arabic_ha, Arabic_hah ] }; key { [ Arabic_jeem, VoidSymbol ] }; key { [ Arabic_kaf, Arabic_kasratan ] }; key { [ Arabic_lam, VoidSymbol ] }; key { [ Arabic_semicolon, VoidSymbol ] }; key { [ Arabic_hamza, VoidSymbol ] }; key { [ VoidSymbol, Arabic_maddaonalef ] }; key { [ Arabic_zain, Arabic_zah ] }; key { [ Arabic_khah, VoidSymbol ] }; key { [ VoidSymbol, VoidSymbol ] }; key { [ Arabic_theh, VoidSymbol ] }; key { [ Arabic_beh, VoidSymbol ] }; key { [ Arabic_noon, Arabic_dammatan ] }; key { [ Arabic_meem, VoidSymbol ] }; key { [ Arabic_comma, Arabic_hamzaunderalef ] }; // ARABIC FULL STOP (Urdu) key { [ 0x10006d4, Arabic_hamzaonalef ] }; key { [ VoidSymbol, Arabic_question_mark ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { name[Group1]= "Arabic (OLPC)"; include "ara(basic)" // This OLPC layout comprises the following changes in comparison to the default Arabic one: // ‣ Arabic and European digits are swapped (which entails swapping of the percent and permille signs). // ‣ Lām-ʾalif is eliminated. People type as they pronounce, and lam-alef is just a visual formatting of the // sequence and thus arguably not used on the keyboard. This frees four slots which are used for the following three changes. // ‣ The characters move: // • Thal from to // • Shadda from to // ‣ £ and € obtain the and keys, the ^ and & signs previously occupying them take seat at and . // ‣ The key gets grave ` and asciitilde ~ as on English keyboards. // ‣ In sum the grave and asciitilde are present twice, as their erstwhile places are not removed. // ‣ The braces }{ take the place of the less-than and greater-than >< signs, // but these the place of kasra and kasratan which establish themselves in the braces’ former steads. // ‣ The … character on is replaced by |, because OLPC laptops have no key installed where the bar is else placed. key { [ grave, asciitilde, percent, U2030 ] }; key { [ Arabic_1, exclam, 1 ] }; key { [ Arabic_2, at, 2 ] }; key { [ Arabic_3, numbersign, 3 ] }; key { [ Arabic_4, dollar, 4 ] }; key { [ Arabic_5, Arabic_percent, 5, U0609 ] }; key { [ Arabic_6, sterling, 6 ] }; key { [ Arabic_7, EuroSign, 7 ] }; key { [ Arabic_8, asterisk, 8 ] }; key { [ Arabic_9, parenright, 9 ] }; key { [ Arabic_0, parenleft, 0 ] }; key { [ Arabic_feh, Arabic_shadda ] }; key { [ Arabic_jeem, braceright ] }; key { [ Arabic_dal, braceleft ] }; key { [ Arabic_sheen, greater ] }; key { [ Arabic_seen, less ] }; key { [ Arabic_lam, ampersand ] }; key { [ backslash, bar ] }; key { [ Arabic_hamzaonwaw, Arabic_kasra ] }; key { [ Arabic_ra, Arabic_kasratan ] }; key { [ Arabic_thal, asciicircum ] }; include "group(olpc)" }; partial alphanumeric_keys xkb_symbols "mac" { //This is a layout that is compatible with macbooks include "ara(digits)" name[Group1]= "Arabic (Macintosh)"; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ Arabic_tatweel, VoidSymbol ] }; key { [ Arabic_theh, Arabic_kasra ] }; key { [ Arabic_qaf, Arabic_kasratan ] }; key { [ Arabic_feh, Arabic_damma ] }; key { [ Arabic_ghain, Arabic_dammatan ] }; key { [ Arabic_ain, Arabic_sukun ] }; key { [ Arabic_ha, Arabic_shadda ] }; key { [ Arabic_khah, bracketright ] }; key { [ Arabic_hah, bracketleft ] }; key { [ Arabic_jeem, braceright ] }; key { [Arabic_tehmarbuta, braceleft ] }; key { [ Arabic_sheen, guillemotright ] }; key { [ Arabic_seen, guillemotleft ] }; key { [ Arabic_yeh, Arabic_alefmaksura] }; key { [ Arabic_beh, 0x1000670 ] }; key { [ Arabic_lam, VoidSymbol ] }; key { [ Arabic_alef, Arabic_maddaonalef ] }; key { [ Arabic_teh, 0x1000671 ] }; key { [ Arabic_noon, VoidSymbol ] }; key { [ Arabic_meem, VoidSymbol ] }; key { [ Arabic_kaf, colon ] }; key { [ Arabic_semicolon, quotedbl ] }; key { [ backslash, bar ] }; key { [ Arabic_tatweel, VoidSymbol ] }; key { [ Arabic_zah, VoidSymbol ] }; key { [ Arabic_tah, VoidSymbol ] }; key { [ Arabic_thal, Arabic_hamzaonyeh ] }; key { [ Arabic_dal, Arabic_hamza ] }; key { [ Arabic_zain, Arabic_hamzaonalef ] }; key { [ Arabic_ra, Arabic_hamzaunderalef ] }; key { [ Arabic_waw, Arabic_hamzaonwaw ] }; key { [ Arabic_comma, greater ] }; key { [ period, less ] }; key { [ slash, Arabic_question_mark ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/ara(sun_type6)" }; partial alphanumeric_keys xkb_symbols "basic_ext" { name[Group1]= "Arabic (with extensions for Arabic-written other languages and European digits preferred)"; key.type[Group1]="FOUR_LEVEL"; key { [ Arabic_thal, Arabic_shadda, Arabic_percent, Arabic_ddal ]}; // ‎ذ‎ ‎◌ّ‎ ‎٪‎ ‎ڈ‎ key { [ 1, exclam, Arabic_1, Farsi_1 ]}; // 1 ! ١ ۱ key { [ 2, at, Arabic_2, Farsi_2 ]}; // 2 @ ٢ ۲ key { [ 3, numbersign, Arabic_3, Farsi_3 ]}; // 3 # ٣ ۳ key { [ 4, dollar, Arabic_4, Farsi_4 ]}; // 4 $ ٤ ۴ key { [ 5, percent, Arabic_5, Farsi_5 ]}; // 5 % ٥ ۵ key { [ 6, Farsi_yeh, Arabic_6, Farsi_6 ]}; // 6 ‎ی‎ ٦ ۶ key { [ 7, ampersand, Arabic_7, Farsi_7 ]}; // 7 & ٧ ۷ key { [ 8, asterisk, Arabic_8, Farsi_8 ]}; // 8 * ٨ ۸ key { [ 9, parenright, Arabic_9, Farsi_9 ]}; // 9 ) ٩ ۹ key { [ 0, parenleft, Arabic_0, Farsi_0 ]}; // 0 ( ٠ ۰ key { [ minus, underscore, endash, U2011 ]}; // - _ – Non-Breaking-Hyphen key { [ equal, plus, notequal, U2248 ]}; // = + ≠ ≈ key { [ Arabic_dad, Arabic_fatha, U0689, U2066 ]}; // ‎ض‎ ‎◌َ ډ LEFT‑TO‑RIGHT ISOLATE key { [ Arabic_sad, Arabic_fathatan, U06D5, U2067 ]}; // ‎ص‎ ‎◌ً ە RIGHT‑TO‑LEFT ISOLATE key { [ Arabic_theh, Arabic_damma, U067F, U2068 ]}; // ‎ث‎ ‎◌ُ ٿ FIRST STRONG ISOLATE key { [ Arabic_qaf, Arabic_dammatan, U06A6, U2069 ]}; // ‎ق‎ ‎◌ٌ ڦ POP DIRECTIONAL ISOLATE key { [ Arabic_feh, UFEF9, Arabic_veh, U068D ]}; // ‎ف‎ ‎ﻹ ‎ڤ ‎ڍ‎ key { [ Arabic_ghain,Arabic_hamzaunderalef, U0685, U202A ]}; // ‎غ‎ ‎إ‎ ‎څ‎ LEFT-TO-RIGHT-EMBEDDING key { [ Arabic_ain, Arabic_rreh, Arabic_heh_goal, U202B ]}; // ‎ع‎ ‎ڑ‎ ‎ہ‎ RIGHT-TO-LEFT EMBEDDING key { [ Arabic_ha, division, Arabic_heh_doachashmee, U202C ]}; // ‎ه‎ ÷ ‎ھ‎ POP DIRECTIONAL FORMATTING key { [ Arabic_khah, multiply, U0681, U0687 ]}; // ‎خ‎ × ‎ځ‎ ‎ڇ‎ key { [ Arabic_hah, Arabic_semicolon, U0683, U200E ]}; // ‎ح‎ ؛ ‎ڃ‎ LEFT-TO-RIGHT MARK key { [ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ‎ج‎ < ‎چ‎ RIGHT-TO-LEFT MARK key { [ Arabic_dal, greater, U0684, U061C ]}; // ‎د‎ > ‎ڄ‎ ARABIC LETTER MARK key { [ Arabic_sheen, Arabic_kasra, U06C6, U06C9 ]}; // ‎ش‎ ‎◌ِ‎ ‎ۆ‎ ‎ۉ‎ key { [ Arabic_seen, Arabic_kasratan, U067C, U0680 ]}; // ‎س‎ ‎◌ٍ‎ ‎ټ‎ ‎ڀ‎ key { [ Arabic_yeh, bracketright, U06D0, U06CD ]}; // ‎ي‎ ] ‎ې‎ ‎ۍ‎ key { [ Arabic_beh, bracketleft, Arabic_peh, U067B ]}; // ‎ب‎ [ ‎پ‎ ‎ٻ‎ key { [ Arabic_lam, U0FEF7, U076A, U0658 ]}; // ‎ل‎ ‎ﻷ‎ ‎ݪ‎ ٘‎◌‎ key { [ Arabic_alef, Arabic_hamzaonalef, U0671, Arabic_noon_ghunna ]}; // ‎ا‎ ‎أ ‎ٱ‎ ‎ں‎ key { [ Arabic_teh, Arabic_tatweel, U067D, U067A ]}; // ‎ت‎ ‎ـ‎ ‎ٽ‎ ٺ‎ key { [ Arabic_noon, Arabic_comma, U066B, U06BB ]}; // ‎ن‎ ‎،‎ ‎٫‎ ڻ‎ key { [ Arabic_meem, slash, U06B3, U06B1 ]}; // ‎م‎ / ‎ڳ‎ ‎ڱ‎ key { [ Arabic_kaf, colon, Arabic_gaf, Arabic_keheh ]}; // ‎ك‎ : ‎گ‎ ‎ک‎ key { [ Arabic_tah, quotedbl, U27E9, U200D ]}; // ‎ط‎ " ⟩ ZWJ key { [ backslash, ellipsis, U27E8, U202F ]}; // \ … ⟨ NNBSP key { [ bar, brokenbar, U06C0, U0620 ]}; // | ¦ ‎ۀ‎ ‎ؠ‎ key { [Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ‎ئ‎ ~ » › key { [ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ‎ء‎ ◌ْ « ‹ key { [Arabic_hamzaonwaw, braceright, U06C7, U0677 ]}; // ‎ؤ } ‎ۇ‎ ‎ٷ‎ key { [ Arabic_ra, braceleft, U0693, U0699 ]}; // ‎ر‎ { ‎ړ ‎ڙ‎ key { [ UFEFB, UFEF5, U06AB, U06AD ]}; // ‎ﻻ‎ ‎ﻵ‎ ‎ګ‎ ‎ڭ‎ key {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, Arabic_yeh_baree ]}; // ‎ى‎ ‎آ‎ ‎◌ٰ‎ ‎ے‎ key { [Arabic_tehmarbuta, apostrophe, Arabic_fullstop, U06AA ]}; // ‎ة‎ ' ۔ ‎ڪ‎ key { [ Arabic_waw, comma, U066C, U06CB ]}; // ‎و‎ , ‎٬‎ ‎ۋ‎ key { [ Arabic_zain, period, Arabic_jeh, U0696 ]}; // ‎ز‎ . ‎ژ‎ ‎ږ‎ key { [ Arabic_zah, Arabic_question_mark, Arabic_tteh, U200C ]}; // ‎ظ‎ ‎؟‎ ‎ٹ‎ ZWNJ include "level3(ralt_switch)" }; // Replaces the Western numeral signs with Arabic-script digits on the keypad, pushing the Western digits to the third level accessible by the right alt key. // As this set of definitions is unlisted, it is not usable without parallel mapping on the numeric row in the ara(basic_ext_digits) layout which includes it. partial hidden keypad_keys xkb_symbols "basic_ext_digits_KP" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD"; key { [ KP_Home, Arabic_7, 7, Farsi_7 ] }; key { [ KP_Up, Arabic_8, 8, Farsi_8 ] }; key { [ KP_Prior, Arabic_9, 9, Farsi_9 ] }; key { [ KP_Left, Arabic_4, 4, Farsi_4 ] }; key { [ KP_Begin, Arabic_5, 5, Farsi_5 ] }; key { [ KP_Right, Arabic_6, 6, Farsi_6 ] }; key { [ KP_End, Arabic_1, 1, Farsi_1 ] }; key { [ KP_Down, Arabic_2, 2, Farsi_2 ] }; key { [ KP_Next, Arabic_3, 3, Farsi_3 ] }; key { [ KP_Insert, Arabic_0, 0, Farsi_0 ] }; include "kpdl(momayyezoss)" }; // Replaces the Western numeral signs with Arabic-script digits on the numeric row, pushing the Western digits to the third level accessible by the right alt key. // The alternative numeral glyphs used in some languages that employ the Arabic script are featured in the fourth layer. partial alphanumeric_keys xkb_symbols "basic_ext_digits" { include "ara(basic_ext)" name[Group1]= "Arabic (with extensions for Arabic-written other languages and Arabic digits preferred)"; key { [Arabic_thal,Arabic_shadda, percent, Arabic_ddal ]}; key { [ Arabic_1, exclam, 1, Farsi_1 ] }; key { [ Arabic_2, at, 2, Farsi_2 ] }; key { [ Arabic_3, numbersign, 3, Farsi_3 ] }; key { [ Arabic_4, dollar, 4, Farsi_4 ] }; key { [ Arabic_5, Arabic_percent, 5, Farsi_5 ] }; key { [ Arabic_6, Farsi_yeh, 6, Farsi_6 ] }; key { [ Arabic_7, ampersand, 7, Farsi_7 ] }; key { [ Arabic_8, asterisk, 8, Farsi_8 ] }; key { [ Arabic_9, parenright, 9, Farsi_9 ] }; key { [ Arabic_0, parenleft, 0, Farsi_0 ] }; include "ara(basic_ext_digits_KP)" }; // In this layout the Ugaritic characters get the places of the Arabic characters with the matching sound values. partial alphanumeric_keys xkb_symbols "uga" { name[Group1]= "Ugaritic instead of Arabic"; key.type[Group1]="TWO_LEVEL"; key { [ U1038F, NoSymbol ]}; // 𐎏 key { [ 1, exclam ]}; // 1 ! key { [ 2, at ]}; // 2 @ key { [ 3, numbersign ]}; // 3 # key { [ 4, dollar ]}; // 4 $ key { [ 5, percent ]}; // 5 % key { [ 6, asciicircum ]}; // 6 ^ key { [ 7, ampersand ]}; // 7 & key { [ 8, asterisk ]}; // 8 * key { [ 9, parenleft ]}; // 9 ( key { [ 0, parenright ]}; // 0 ) key { [ minus, underscore ]}; // - _ key { [ equal, plus ]}; // = + key { [ U1039D, NoSymbol ]}; // 𐎝 key { [ U10395, NoSymbol ]}; // 𐎕 key { [ U10398, NoSymbol ]}; // 𐎘 key { [ U10396, NoSymbol ]}; // 𐎖 key { [ U10394, NoSymbol ]}; // 𐎔 key { [ U10399, NoSymbol ]}; // 𐎙 key { [ U10393, grave ]}; // 𐎓 ` key { [ U10385, division ]}; // 𐎅 ÷ key { [ U10383, multiply ]}; // 𐎃 × key { [ U10388, semicolon ]}; // 𐎈 ; key { [ U10382, greater ]}; // 𐎂 > key { [ U10384, less ]}; // 𐎄 < key { [ U1038C, U27E8 ]}; // 𐎌 ⟨ key { [ U10392, U27E9 ]}; // 𐎒 ⟩ key { [ U1038A, bracketleft ]}; // 𐎊 [ key { [ U10381, bracketright ]}; // 𐎁 ] key { [ U1038D, NoSymbol ]}; // 𐎍 key { [ U10380, NoSymbol ]}; // 𐎀 key { [ U1039A, NoSymbol ]}; // 𐎚 key { [ U10390, NoSymbol ]}; // 𐎐 key { [ U1038E, slash ]}; // 𐎎 / key { [ U1038B, colon ]}; // 𐎋: key { [ U10389, quotedbl ]}; // 𐎉 " key { [backslash, ellipsis ]}; // \ … key { [ bar, endash ]}; // | – key { [ U1039B, guillemotleft ]}; // 𐎛 « key { [ NoSymbol, guillemotright ]}; // » key { [ U1039C, braceleft ]}; // 𐎜 { key { [ U10397, braceright ]}; // 𐎗 } key { [ U1039F, U2039 ]}; // 𐎟 ‹ key { [ question, U203A ]}; // ? › key { [ U002BC, apostrophe ]}; // ʼ ' key { [ U10386, comma ]}; // 𐎆 , key { [ U10387, period ]}; // 𐎇 . key { [ U10391, periodcentered ]}; // 𐎑 · }; PK(f['< symbols/menu[// Montenegro keyboard mapping // // Initially, a copy of Serbian variants // default partial alphanumeric_keys xkb_symbols "basic" { include "rs(latin)" name[Group1]= "Montenegrin"; key { [ any, any, zacute, Zacute ] }; // z key { [ any, any, sacute, Sacute ] }; // s }; partial alphanumeric_keys xkb_symbols "cyrillic" { include "rs(basic)" name[Group1]= "Montenegrin (Cyrillic)"; }; partial alphanumeric_keys xkb_symbols "cyrillicyz" { include "rs(yz)" name[Group1]= "Montenegrin (Cyrillic, ZE and ZHE swapped)"; }; partial alphanumeric_keys xkb_symbols "latinunicode" { include "rs(latinunicode)" name[Group1]= "Montenegrin (Latin, Unicode)"; key { [ any, any, zacute, Zacute ] }; // z key { [ any, any, sacute, Sacute ] }; // s }; partial alphanumeric_keys xkb_symbols "latinyz" { include "rs(latinyz)" name[Group1]= "Montenegrin (Latin, QWERTY)"; key { [ any, any, zacute, Zacute ] }; // z key { [ any, any, sacute, Sacute ] }; // s }; partial alphanumeric_keys xkb_symbols "latinunicodeyz" { include "rs(latinunicodeyz)" name[Group1]= "Montenegrin (Latin, Unicode, QWERTY)"; key { [ any, any, zacute, Zacute ] }; // z key { [ any, any, sacute, Sacute ] }; // s }; xkb_symbols "cyrillicalternatequotes" { include "rs(alternatequotes)" name[Group1]= "Montenegrin (Cyrillic with guillemets)"; }; xkb_symbols "latinalternatequotes" { include "rs(latinalternatequotes)" name[Group1]= "Montenegrin (Latin with guillemets)"; key { [ any, any, zacute, Zacute ] }; // z key { [ any, any, sacute, Sacute ] }; // s key { [ any, any, guillemotleft, guillemotright ] }; // < }; PK(f[Mk:?? symbols/ilnu[// based on a keyboard map from an 'xkb/symbols/il' file // This is an implemetation of the Israeli standard SI-1452 (2013) // It does not implement changes to the English layout, as that part // of the standard is not normative nor really useful in the context // of xkb. // This implementation extends the standard with Yiddish digraphs // (a common extension) and Nun Hafukha (a fun character). default partial alphanumeric_keys xkb_symbols "basic" { // uses the kbd layout in use in Israel. name[Group1]= "Hebrew"; key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; key { [ hebrew_zain, Z ] }; key { [ hebrew_samech, X, U05B6 ] }; // Segol key { [ hebrew_bet, C, U05B1 ] }; // Hataf Segol key { [ hebrew_he, V ] }; key { [ hebrew_nun, B, NoSymbol, U05C6 ]}; // Nun Hafukha key { [ hebrew_mem, N ] }; key { [ hebrew_zade, M, U05B5 ] }; // Tsere key { [ hebrew_taw, greater, rightsinglequotemark ]}; // greater Mirrored key { [ hebrew_finalzade, less, singlelowquotemark ]}; // less Mirrored key { [ hebrew_shin, A, U05B0 ] }; // Shva key { [ hebrew_dalet,S, U05BC ] }; // Dagesh key { [ hebrew_gimel,D ] }; key { [ hebrew_kaph, F ] }; key { [ hebrew_ayin, G, U05F1 ] }; // Yiddish Vav Yod key { [ hebrew_yod, H, U05F2 ] }; // Yiddish Double Yod key { [ hebrew_chet, J, U05B4 ] }; // Hiriq key { [ hebrew_lamed, K ] }; key { [ hebrew_finalkaph, L, rightdoublequotemark ]}; key { [ hebrew_finalpe, colon, doublelowquotemark ]}; key { [ slash, Q, U05C2 ] }; // Sin Dot key { [ apostrophe, W, U05C1 ] }; // Shin Dot key { [ hebrew_qoph, E, U05B8 ] }; // Qamats key { [ hebrew_resh, R, U05B3 ] }; // Hataf Qamats key { [ hebrew_aleph,T ] }; key { [ hebrew_tet, Y, U05F0 ] }; // Yiddish Double Vav key { [ hebrew_waw, U, U05B9 ] }; // Holam key { [ hebrew_finalnun, I ] }; key { [ hebrew_finalmem, O ] }; key { [ hebrew_pe, P, U05B7 ] }; // Patah key.type[Group1] = "FOUR_LEVEL"; // Non-alphanumeric keys key { [ period, question, division ]}; key { [ comma, quotedbl, U05F4] }; // Gershayim key { [ bracketright, braceright, U05B2 ]}; // Mirrored; Hataf Patah key { [ bracketleft, braceleft, U05BF ]}; // Mirrored; Rafe key { [ backslash, bar, U05BB ] }; // Qubuts // Top (digits) row key { [ semicolon, asciitilde, U05F3 ]}; // Geresh key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign, EuroSign ]}; key { [ 4, dollar, NewSheqelSign ]}; key { [ 5, percent, degree ]}; key { [ 6, asciicircum, U05AB ]}; // Hebrew Accent Ole key { [ 7, ampersand, U05BD ]}; // Meteg key { [ 8, asterisk, multiply]}; key { [ 9, parenright, U200E ]}; // LRM; Paren Mirrored key { [ 0, parenleft, U200F ]}; // RLM; Paren Mirrored key { [ minus, underscore, U05BE ]}; // Maqaf key { [ equal, plus, endash ]}; include "level3(ralt_switch)" }; // nikud patter based on Dekel Tsur's Hebrew mapping for LyX partial alphanumeric_keys xkb_symbols "lyx" { name[Group1]= "Hebrew (lyx)"; key { [ semicolon, asciitilde ] }; // On some key (e.g. AD01, right below) there is not yet mapping for the // second shift level. Since I could not figure a simple way to map this // to "emit nothing", it is currently mapped to the same letter of the // first shift level (avoiding mapping may risk it be used by a character // from a different group). key { [ slash, slash ] }; key { [ apostrophe, apostrophe ] }; key { [ hebrew_qoph, 0x10005b8 ] }; // Qamats key { [ hebrew_resh, 0x10005bc ] }; // Dagesh/Shuruq key { [ hebrew_aleph, 0x100200e ] }; // LRM key { [ hebrew_tet, 0x100200f ] }; // RLM key { [ hebrew_waw, 0x10005b9 ] }; // Holam key { [ hebrew_finalnun,hebrew_finalnun] }; key { [ hebrew_finalmem,hebrew_finalmem] }; key { [ hebrew_pe, 0x10005b7 ] }; // Patah key { [ hebrew_shin, 0x10005b0 ] }; // Sheva key { [ hebrew_dalet, 0x10005bc ] }; // Dagesh/Shuruq key { [ hebrew_gimel, hebrew_gimel ] }; key { [ hebrew_kaph, hebrew_kaph ] }; key { [ hebrew_ayin, 0x10005c2 ] }; // Sin dot key { [ hebrew_yod, 0x10005c1 ] }; // Shin dot key { [ hebrew_chet, 0x10005b4 ] }; // Hiriq key { [ hebrew_lamed, 0x10020aa ] }; // NIS key { [ hebrew_finalkaph,hebrew_finalkaph] }; key { [ hebrew_finalpe, colon ] }; key { [ comma, quotedbl ] }; key { [ hebrew_zain, hebrew_zain ] }; key { [ hebrew_samech,0x10005b6 ] }; // Segol key { [ hebrew_bet, 0x10005bb ] }; // Qubuts key { [ hebrew_he, 0x10005b1 ] }; // H. Segol key { [ hebrew_nun, 0x10005b2 ] }; // H. Patah key { [ hebrew_mem, 0x10005b3 ] }; // H. Qamats key { [ hebrew_zade, 0x10005b5 ] }; // Tsere key { [ hebrew_taw, greater ] }; key { [ hebrew_finalzade, less ] }; key { [ period, question ] }; // Note the parens mirroring below: key { [ bracketright, braceright ] }; key { [ bracketleft, braceleft ] }; key { [ 1, exclam ]}; key { [ 2, at ]}; key { [ 3, numbersign ]}; key { [ 4, dollar ]}; key { [ 5, percent ]}; key { [ 6, asciicircum ]}; key { [ 7, ampersand ]}; key { [ 8, asterisk ]}; key { [ 9, parenright ]}; key { [ 0, parenleft ]}; key { [ minus , 0x10005be ] }; // H. Hiphen key { [ equal , plus ] }; }; partial alphanumeric_keys xkb_symbols "phonetic" { // uses the phonetic layout from old Slackware 'il.map' file name[Group1]= "Hebrew (phonetic)"; key { [ equal, plus, hebrew_doublelowline, hebrew_doublelowline ]}; key { [ hebrew_qoph, hebrew_qoph ] }; key { [ hebrew_waw, hebrew_waw ] }; key { [ hebrew_aleph, hebrew_aleph ] }; key { [ hebrew_resh, hebrew_resh ] }; key { [ hebrew_taw, hebrew_tet ] }; key { [ hebrew_ayin, hebrew_ayin ] }; key { [ hebrew_waw, hebrew_waw ] }; key { [ hebrew_yod, hebrew_yod ] }; key { [ hebrew_samech, hebrew_samech ] }; key { [ hebrew_pe, hebrew_finalpe ] }; key { [ hebrew_aleph, hebrew_aleph ] }; key { [ hebrew_shin, hebrew_shin ] }; key { [ hebrew_dalet, hebrew_dalet ] }; key { [ hebrew_pe, hebrew_finalpe ] }; key { [ hebrew_gimel, hebrew_gimel ] }; key { [ hebrew_he, hebrew_he ] }; key { [ hebrew_yod, hebrew_yod ] }; key { [ hebrew_kaph, hebrew_finalkaph ] }; key { [ hebrew_lamed, hebrew_lamed ] }; key { [ hebrew_zain, hebrew_zain ] }; key { [ hebrew_chet, hebrew_chet ] }; key { [ hebrew_zade, hebrew_finalzade ] }; key { [ hebrew_waw, hebrew_waw ] }; key { [ hebrew_bet, hebrew_bet ] }; key { [ hebrew_nun, hebrew_finalnun ] }; key { [ hebrew_mem, hebrew_finalmem ] }; }; // The 'Biblical Hebrew' keyboard layout as defined by Tiro for use with the // 'SBL Hebrew' font was added 2006.11.13 by Sebastian J. Bronner // . Its primary features (as compared to the lyx layout) // are that the consonants are in the Israeli standard positions, that a great // multitude of glyphs can be input directly from the keyboard, and that it is // the closest thing to a standard layout a theologian can hope for. // Documentation (including printable keyboard tables), SBL Hebrew font, and // keyboard layout for Windows are available at // http://www.sbl-site.org/Resources/Resources_BiblicalFonts.aspx. // // It is of interest that the 'basic' layout defined first in this file (as // ships with x.org disagrees in the non-consonant characters that the Tiro- // layout claims to be the Israeli standard. Tiros apparent diligence in the // PDF-documentation accompanying the keyboard-layout-files lead me to put // greater stock in their claim than in this file. Therefore, the 'biblical' // layout below does not include 'il(basic)' but redoes the _whole_ thing from // scratch. partial alphanumeric_keys xkb_symbols "biblical" { name[Group1]= "Hebrew (Biblical, Tiro)"; key.type = "FOUR_LEVEL_SEMIALPHABETIC"; key { [ U05C3, U05AE, semicolon, asciitilde ] }; key { [ 1, U05A9, VoidSymbol, exclam ] }; key { [ 2, U0599, VoidSymbol, at ] }; key { [ 3, U0592, VoidSymbol, numbersign ] }; key { [ 4, U05AF, NewSheqelSign, dollar ] }; key { [ 5, U05BA, U200D, percent ] }; key { [ 6, U05B9, U200C, asciicircum ] }; key { [ 7, U05BF, U034F, ampersand ] }; key { [ 8, U05C2, U200E, asterisk ] }; key { [ 9, U05C1, U200F, parenright ] }; key { [ 0, U059D, U25CC, parenleft ] }; key { [ U05BE, U05A0, minus, underscore ] }; key { [ equal, U05BC, VoidSymbol, plus ] }; key { [ U0307, U05C4, U0308, slash ] }; key { [ U05F3, U05AC, U05F4, apostrophe ] }; key { [ hebrew_qoph, U05AB, U20AC ] }; key { [ hebrew_resh, U059F ] }; key { [ hebrew_aleph, U0593 ] }; key { [ hebrew_tet, U059E ] }; key { [ hebrew_waw, U059C, U05F0 ] }; key { [ hebrew_finalnun, U05A1 ] }; key { [ hebrew_finalmem, U0595 ] }; key { [ hebrew_pe, U0594 ] }; key { [ bracketright, U0597, VoidSymbol, braceright ] }; key { [ bracketleft, U0598, VoidSymbol, braceleft ] }; key { [ U05C0, U05A8, backslash, bar ] }; key { [ hebrew_shin, U05BD ] }; key { [ hebrew_dalet, U05B0 ] }; key { [ hebrew_gimel, U05BB ] }; key { [ hebrew_kaph, U05B4 ] }; key { [ hebrew_ayin, U05B1 ] }; key { [ hebrew_yod, U05B6, U05F2 ] }; key { [ hebrew_chet, U05B5, U05F1 ] }; key { [ hebrew_lamed, U05B3 ] }; key { [ hebrew_finalkaph, U05B8, U05C7 ] }; key { [ hebrew_finalpe, U05B2, VoidSymbol, colon ] }; key { [ U059a, U05B7, comma, quotedbl ] }; key { [ hebrew_zain, U05C5 ] }; key { [ hebrew_samech, U05A4 ] }; key { [ hebrew_bet, U05AA, U05A2 ] }; key { [ hebrew_he, U05A6 ] }; key { [ hebrew_nun, U05A5, U05C6 ] }; key { [ hebrew_mem, U05A7 ] }; key { [ hebrew_zade, U059B ] }; key { [ hebrew_taw, U0591, VoidSymbol, greater ] }; key { [ hebrew_finalzade, U0596, VoidSymbol, less ] }; key { [ U05AD, U05A3, period, question ] }; key { [ space, space, thinspace, nobreakspace ] }; }; // EXTRAS // Biblical hebrew (SIL) US Standard layout version 1.5 // This map is based closely on v 1.5 of the standard. The only deviation being the replacement of the composite characters sin and shin // by their more recent Unicodev6 counterparts // this map contains all the characters found in Biblical annotation, masoretic and Dead Sea Scroll related work. // The layout corresponds phonetically to a US standard layout or similar (Qwerty). // If you are using an actual Hebrew keyboard, you are probably better off using a Tiro compliant scholarly layout // This linux port created and maintained by Dennis Meulensteen, dennis@meulensteen.nl partial alphanumeric_keys xkb_symbols "biblicalSIL" { name[Group1]= "Hebrew (Biblical, SIL phonetic)"; key.type = "FOUR_LEVEL_SEMIALPHABETIC"; key { [ U20AC, U20AA, U0024 ] }; //Euro, Shekel, Dollar - key { [ 1, U0021, U05BD, U0597 ] }; //1, exclamation meteg revia key { [ 2, U0598, U05A2, U05AE ] }; //2, zarqa atn. hafukh zinor key { [ 3, U05A8, U0596, U0599 ] }; //3, qadma tipeha pashta key { [ 4, U059C, U05A5, U05A0 ] }; //4, geresh merkha tel. gedola key { [ 5, U059E, U05A6, U05A9 ] }; //5, gershayim mer. kefula tel qetana key { [ 6, VoidSymbol, U05AD, U059F ] }; //6, - dehi qar. para key { [ 7, U05AC, U05A3, U05A1 ] }; //7, iluy munah pazer key { [ 8, U059D, U059B, U0595 ] }; //8, g. muqdam tevir zaq. gadol key { [ 9, U0029, U05A7, U0593 ] }; //9, parenth.R darqa shalshelet key { [ 0, U0028, U05AA, U05AF ] }; //0, paren.L yer. ben yomo masora c. key { [ U05BE, U2013, U2014, U05BF ] }; //Maqaf, en dash em dash rafe key { [ U05BC, VoidSymbol, U0591, U25CC ] }; //Dagesh - etnahta mark base key { [ hebrew_qoph, U0597 ] }; //Qof revia - - key { [ hebrew_waw] }; //waw - - - key { [ U05B6, U05B5, VoidSymbol, U05B1 ] }; //segol tsere - hat. segol key { [ hebrew_resh ] }; //resh - - - key { [ hebrew_taw ] }; //taw - - - key { [ hebrew_yod, U059F ] }; //jod qar. para - - key { [ U05BB] }; //quibuts - - - key { [ U05B4 ] }; //hiriq, - - - key { [ U05B9, U05BA, U05C7, U05B3 ] }; //holam, holam(wav) qam. qatan hat. Qamats key { [ hebrew_pe, hebrew_finalpe, VoidSymbol, U034F ] }; //pe final pe - c. grapheme joiner key { [ bracketright, braceright, VoidSymbol, U0594 ] }; //Bracket R brace R - zaq. qatan key { [ bracketleft, braceleft, U059A, U0592 ] }; //Brachket L brace L yetiv segolta key { [ U05C0, U05C0, U05A4, U05AB ] };//Paseq Paseq mahapakh ole key { [ U05B7, U05B8, U05C7, U05B2 ] }; //patah Qamats Qam. Qatan hat. patah key { [ hebrew_samech, U05E9 ] }; //Samech, shin no dot - - key { [ hebrew_dalet ] }; //dalet - - - key { [ UFB2B, hebrew_shin, U05C2 ] }; //UCSv6 Sin shin (nodot) sindot - key { [ hebrew_gimel, VoidSymbol, U25E6, U2022 ] }; //gimel - bullet(DSS) bulletfill (DSS) key { [ hebrew_he, VoidSymbol, U0336, U030A ] };//he - strikeout(DSS) Ring Above(DSS) key { [ UFB2A, hebrew_shin, U05C1] }; //UCSv6 Shin shin (nodot) shindot - key { [ hebrew_kaph, hebrew_finalkaph ] }; //kaph Final kaph - key { [ hebrew_lamed, VoidSymbol ] }; //lamed - - key { [ U05B0, U05F4, semicolon, U05C3 ] }; //sva gers. p semicolon sof pasuq key { [ U2019, U201D, U0323, U05C4 ] };//QuoteRight double R Quote punctum punctum Above key { [ hebrew_zain ] }; //Zayin - - key { [ hebrew_chet ] }; //chet - - key { [ hebrew_zade, U05E5 ] }; // tzade, final tzade - key { [ hebrew_tet ] }; //tet - - key { [ hebrew_bet ] }; //bet - - key { [ hebrew_nun, hebrew_finalnun ] }; //nun, final nun key { [ hebrew_mem, hebrew_finalmem, U200C, U200D ] }; //mem, final mem 0.wid.non.join. 0.wid.joiner key { [ U002C, U05E2, U00AB, U0307 ] }; //comma, ayin guillemetsR masora dot key { [ U0002E, U05D0, U00BB, U0308 ] }; //period, alef guillemetsL thousands key { [ slash, question, U05F3 ] }; //slash question geresh P key { [ space, space, thinspace, nobreakspace ] };//space space thin space, nbsp }; PK(f[!symbols/rupeesignnu[// keyboards having the RupeeSign on the 4 key partial xkb_symbols "4" { key { [ NoSymbol, NoSymbol, U20B9 ] }; }; PK(f[mJ** symbols/dznu[// Tamazight en caractères latin // Noureddine LOUAHEDJ // louahedj@noureddine.me // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ // │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ A Æ │ Z  │ E ¢ │ R Ṛ │ T Ṭ │ Y Ÿ │ U Û │ I Î │ O Ɛ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃ // ┃Tab ↹ ┃ a æ │ z â │ e € │ r ṛ │ t ṭ │ y ÿ │ u û │ i î │ o ɛ │ p ô │ ^ ~ │ $ ø ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ Q Ä │ S Ṣ │ D Ḍ │ F ‚ │ G Ǧ │ H Ḥ │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃ // ┃Maj ⇬ ┃ q ä │ s ṣ │ d ḍ │ f ‘ │ g ǧ │ h ḥ │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ > ≥ │ W “ │ X ” │ C Č │ V Ɣ │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃ // ┃Shift ⇧┃ < ≤ │ w « │ x » │ c č │ v ɣ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ default partial alphanumeric_keys xkb_symbols "la" { include "fr(oss)" name[Group1]="Berber (Algeria, Latin)"; key { [ z, Z, 0x1001E93, 0x1001E92 ] }; // z Z ẓ Ẓ key { [ r, R, 0x1001E5B, 0x1001E5A ] }; // r R ṛ Ṛ key { [ t, T, 0x1001E6D, 0x1001E6C ] }; // t T ṭ Ṭ key { [ o, O, 0x100025B, 0x1000190 ] }; // o O ɛ Ɛ key { [ s, S, 0x1001E63, 0x1001E62 ] }; // s s ṣ Ṣ key { [ d, D, 0x1001E0D, 0x1001E0C ] }; // d D ḍ Ḍ key { [ g, G, 0x10001E7, 0x10001E6 ] }; // g G ǧ Ǧ key { [ h, H, 0x1001E25, 0x1001E24 ] }; // h H ḥ Ḥ key { [ c, C, 0x100010D, 0x100010C ] }; // c C č Č key { [ v, V, 0x1000263, 0x1000194 ] }; // v V ɣ Ɣ include "level3(ralt_switch)" }; // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ │ 1 ̨ │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ + ┃ ⌫ Retour┃ // │ ² │ & │ ~ │ " # │ ' { │ ( [ │ - | │ │ _ \ │ ^ │ @ │ ) ] │ = } ┃ arrière┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ │ ⵥ │ ⵦ │ ⵕ │ ⵟ │ │ │ │ ⵧ │ │ │ £ Ø ┃Entrée ┃ // ┃Tab ↹ ┃ ⴰ │ ⵣ ⵤ │ ⴻ │ ⵔ │ ⵜ ⵝ │ ⵢ │ ⵓ │ ⵉ │ ⵄ │ ⵃ │ ⵯ │ $ ø ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ ⵈ │ ⵚ │ ⴹ ⴺ │ │ ⴵ ⴶ │ ⵁ │ ⵋ │ ⴿ │ │ │ % Ù │ µ ̄¯ ┃ ┃ // ┃Maj ⇬ ┃ ⵇ │ ⵙ │ ⴷ ⴸ │ ⴼ │ ⴳ ⴴ │ ⵀ ⵂ │ ⵊ ⵌ │ ⴽ ⴾ │ ⵍ │ ⵎ │ ù ´ │ * ` ┃ ┃ // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ ┃ > ¦ │ │ ⵆ │ ⵞ │ ⵗ ⵠ │ ⴲ │ ⵐ │ ? … │ . ⋅ │ / ∕ │ § − ┃ ┃ // ┃Shift ⇧┃ < | │ ⵡ │ ⵅ │ ⵛ │ ⵖ ⵘ │ ⴱ ⵒ │ ⵏ ⵑ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial alphanumeric_keys xkb_symbols "ber" { name[Group1]="Berber (Algeria, Tifinagh)"; // First row key { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ key { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ key { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É key { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ key { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) key { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) key { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) key { [ egrave, 7, grave, Egrave ] }; // è 7 ` È key { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ key { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç key { [ agrave, 0, at, Agrave ] }; // à 0 @ À key { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ key { [ equal, plus, braceright, plusminus ] }; // = + } ± // Second row key { [ 0x1002D30 ] }; // ⴰ key { [ 0x1002D63, 0x1002D65, 0x1002D64 ] }; // ⵣ ⵥ ⵤ key { [ 0x1002D3B, 0x1002D66 ] }; // ⴻ ⵦ key { [ 0x1002D54, 0x1002D55 ] }; // ⵔ ⵕ key { [ 0x1002D5C, 0x1002D5F, 0x1002D5D ] }; // ⵜ ⵟ ⵝ key { [ 0x1002D62 ] }; // ⵢ key { [ 0x1002D53 ] }; // ⵓ key { [ 0x1002D49 ] }; // ⵉ key { [ 0x1002D44, 0x1002D67 ] }; // ⵄ ⵧ key { [ 0x1002D43 ] }; // ⵃ key { [ 0x1002D6F ] }; // ⵯ key { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø // Third row key { [ 0x1002D47, 0x1002D48 ] }; // ⵇ ⵈ key { [ 0x1002D59, 0x1002D5A ] }; // ⵙ ⵚ key { [ 0x1002D37, 0x1002D39, 0x1002D38, 0x1002D3A ] }; // ⴷ ⴹ ⴸ ⴺ key { [ 0x1002D3C ] }; // ⴼ key { [ 0x1002D33, 0x1002D35, 0x1002D34, 0x1002D36 ] }; // ⴳ ⴵ ⴴ ⴶ key { [ 0x1002D40, 0x1002D41, 0x1002D42 ] }; // ⵀ ⵁ ⵂ key { [ 0x1002D4A, 0x1002D4B, 0x1002D4C ] }; // ⵊ ⵋ ⵌ Ü key { [ 0x1002D3D, 0x1002D3F, 0x1002D3E ] }; // ⴽ ⴿ ⴾ key { [ 0x1002D4D ] }; // ⵍ key { [ 0x1002D4E ] }; // ⵎ key { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù key { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ // Fourth row key { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ key { [ 0x1002D61 ] }; // ⵡ key { [ 0x1002D45, 0x1002D46 ] }; // ⵅ ⵆ key { [ 0x1002D5B, 0x1002D5E ] }; // ⵛ ⵞ key { [ 0x1002D56, 0x1002D57, 0x1002D58, 0x1002D60 ] }; // ⵖ ⵗ ⵘ ⵠ key { [ 0x1002D31, 0x1002D32, 0x1002D52 ] }; // ⴱ ⴲ ⵒ key { [ 0x1002D4F, 0x1002D50, 0x1002D51 ] }; // ⵏ ⵐ ⵑ key { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … key { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ key { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ key { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − include "level3(ralt_switch)" }; // Arabic AZERTY with modern Latin digits partial alphanumeric_keys xkb_symbols "ar" { include "ara(azerty)" name[Group1]="Arabic (Algeria)"; }; PK(f[ 33 symbols/eenu[// based on // Estonian XKB-keymap by Ville Hallik // default partial alphanumeric_keys xkb_symbols "basic" { // Describes the differences between a very simple en_US // keyboard and a very simple Estonian keyboard // This layout conforms to both EVS8:1993 and EVS8:2000 standards include "latin(type4)" name[Group1]="Estonian"; key { [ 3, numbersign, sterling, sterling ] }; key { [ 4, currency, dollar, dollar ] }; key { [ plus, question, backslash, questiondown ] }; key { [dead_acute, dead_grave, grave, apostrophe ] }; key { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] }; key { [ otilde, Otilde, section, dead_macron ] }; key { [ s, S, scaron, Scaron ] }; key { [odiaeresis, Odiaeresis, dead_acute, dead_doubleacute ] }; key { [adiaeresis, Adiaeresis, asciicircum, dead_caron ] }; key { [dead_caron, dead_tilde, notsign, notsign ] }; key { [apostrophe, asterisk, onehalf, dead_breve ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ comma, semicolon, less, multiply ] }; key { [ period, colon, greater, division ] }; key { [ minus, underscore, bar, abovedot ] }; include "level3(ralt_switch)" include "eurosign(e)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // Modifies the basic Estonian layout to eliminate all dead keys include "ee(basic)" name[Group1]="Estonian (no dead keys)"; key { [asciicircum,asciitilde ] }; key { [apostrophe, grave ] }; key { [udiaeresis, Udiaeresis, diaeresis, degree ] }; key { [ otilde, Otilde, section, macron ] }; key { [odiaeresis, Odiaeresis, acute, doubleacute ] }; key { [adiaeresis, Adiaeresis, asciicircum, caron ] }; key { [apostrophe, asterisk, onehalf, breve ] }; key { [ minus, underscore, dead_belowdot, abovedot ] }; }; // Dvorak with Estonian characters partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" name[Group1]= "Estonian (Dvorak)"; key { [ 3, numbersign, sterling ] }; key { [ 4, dollar, section, currency ] }; key { [ 8, asterisk, onehalf ] }; key { [ a, A, adiaeresis, Adiaeresis ] }; key { [ o, O, otilde, Otilde ] }; key { [ e, E, odiaeresis, Odiaeresis ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ s, S, scaron, Scaron ] }; key { [ z, Z, zcaron, Zcaron ] }; include "level3(ralt_switch)" include "kpdl(comma)" include "eurosign(5)" }; // Estonian few characters on basic US keymap. // by Elan Ruusamäe partial alphanumeric_keys xkb_symbols "us" { include "us(euro)" name[Group1] = "Estonian (US, with Estonian letters)"; // ž, Ž key { [ z, Z, zcaron, Zcaron ] }; // ¢ key { [ c, C, cent, cent ] }; // š, Š key { [ s, S, scaron, Scaron ] }; key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; key { [ apostrophe, quotedbl, adiaeresis, Adiaeresis ] }; key { [ bracketleft, braceleft, udiaeresis, Udiaeresis ] }; key { [ bracketright, braceright, otilde, Otilde ] }; // £ key { [ 3, numbersign, sterling, sterling ] }; include "level3(ralt_switch)" include "eurosign(e)" }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/ee(sun_type6)" }; PK(f[cgg  symbols/sknu[default partial alphanumeric_keys xkb_symbols "basic" { // This layout conforms to a new Slovak compromise standard // designed to satisfy most Unix, Windows and Mac users. // 2001 by Kamil Toman include "latin" name[Group1] = "Slovak"; key { [ semicolon, dead_abovering, grave, asciitilde ] }; key { [ plus, 1, exclam, dead_tilde ] }; key { [ lcaron, 2, at, dead_caron ] }; key { [ scaron, 3, numbersign, dead_circumflex ] }; key { [ ccaron, 4, dollar, dead_breve ] }; key { [ tcaron, 5, percent, dead_abovering]}; key { [ zcaron, 6, asciicircum, dead_ogonek ] }; key { [ yacute, 7, ampersand, dead_grave ] }; key { [ aacute, 8, asterisk, dead_abovedot] }; key { [ iacute, 9, braceleft, dead_acute ] }; key { [ eacute, 0, braceright, dead_doubleacute ] }; key { [ equal, percent, NoSymbol, dead_diaeresis]}; key { [dead_acute, dead_caron, dead_macron, dead_cedilla ] }; key { [ q, Q, backslash, NoSymbol ] }; key { [ w, W, bar, Nosymbol ] }; key { [ e, E, EuroSign, NoSymbol ] }; key { [ r, R, NoSymbol, NoSymbol ] }; key { [ t, T, NoSymbol, NoSymbol ] }; key { [ z, Z, NoSymbol, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol ] }; key { [ i, I, NoSymbol, NoSymbol ] }; key { [ o, O, NoSymbol, NoSymbol ] }; key { [ p, P, NoSymbol, NoSymbol ] }; key { [ uacute, slash, bracketleft, division ] }; key { [adiaeresis, parenleft, bracketright, multiply ] }; key { [ a, A, asciitilde, NoSymbol ] }; key { [ s, S, dstroke, NoSymbol ] }; key { [ d, D, Dstroke, NoSymbol ] }; key { [ f, F, bracketleft, NoSymbol ] }; key { [ g, G, bracketright, NoSymbol ] }; key { [ h, H, grave, NoSymbol ] }; key { [ j, J, apostrophe, NoSymbol ] }; key { [ k, K, lstroke, NoSymbol ] }; key { [ l, L, Lstroke, NoSymbol ] }; key { [ocircumflex, quotedbl, dollar, NoSymbol ] }; key { [ section, exclam, apostrophe, ssharp ] }; key { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] }; key { [ ncaron, parenright, backslash, bar ] }; key { [ backslash, bar, slash, NoSymbol ] }; key { [ y, Y, degree, NoSymbol ] }; key { [ x, X, numbersign, Nosymbol ] }; key { [ c, C, ampersand, NoSymbol ] }; key { [ v, V, at, NoSymbol ] }; key { [ b, B, braceleft, NoSymbol ] }; key { [ n, N, braceright, NoSymbol ] }; key { [ m, M, asciicircum, NoSymbol ] }; key { [ comma, question, less, NoSymbol ] }; key { [ period, colon, greater, NoSymbol ] }; key { [ minus, underscore, asterisk, NoSymbol ] }; key { [ space, space, nobreakspace, nobreakspace ] }; include "level3(ralt_switch)" }; xkb_symbols "bksl" { // Use instead of (useful for keyboards without key). include "sk(basic)" name[Group1] = "Slovak (extended backslash)"; key { [ backslash, bar, slash, parenright ] }; key { [ backslash, parenleft, slash, NoSymbol ] }; }; partial alphanumeric_keys xkb_symbols "qwerty" { // This layout works exactly as the basic Slovak one with the exception // of the 'Z' and 'Y' keys, which are in Qwerty style (i.e. swapped). // 2001 by Kamil Toman include "sk(basic)" name[Group1] = "Slovak (QWERTY)"; key { [ z, Z, degree, NoSymbol ] }; key { [ y, Y, NoSymbol, NoSymbol ] }; }; xkb_symbols "qwerty_bksl" { // Use instead of (useful for keyboards without key). include "sk(qwerty)" name[Group1] = "Slovak (QWERTY, extended backslash)"; key { [ backslash, bar, slash, parenright ] }; key { [ backslash, parenleft, slash, NoSymbol ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/sk(sun_type6)" }; PK(f[*TOO symbols/mynu[partial default alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Malay (Jawi, Arabic Keyboard)"; //Numbers key { [ 0x1000661, exclam, 1 ] }; key { [ 0x1000662, at, 2 ] }; key { [ 0x1000663, numbersign, 3 ] }; key { [ 0x1000664, dollar, 4 ] }; key { [ 0x1000665, Arabic_percent, 5 ] }; key { [ 0x1000666, asciicircum, 6 ] }; key { [ 0x1000667, ampersand, 7 ] }; key { [ 0x1000668, asterisk, 8 ] }; key { [ 0x1000669, parenright, 9 ] }; key { [ 0x1000660, parenleft, 0 ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; // Alphabets key { [ Arabic_dad, U0686 ] }; key { [ Arabic_sad, U06A0 ] }; key { [ Arabic_theh, U06AC ] }; key { [ Arabic_qaf, U0640 ] }; key { [ Arabic_feh, 0x100fef9, 0x10006a4 ] }; key { [ Arabic_ghain, Arabic_hamzaunderalef ] }; key { [ Arabic_ain, grave ] }; key { [ Arabic_ha, division ] }; key { [ Arabic_khah, multiply ] }; key { [ U06A9, Arabic_semicolon ] }; key { [ Arabic_jeem, less, 0x1000686 ] }; key { [ Arabic_dal, greater ] }; key { [ Arabic_sheen, U06CF ] }; key { [ Arabic_seen, U06A8 ] }; key { [ Arabic_yeh, bracketright ] }; key { [ Arabic_beh, bracketleft, 0x100067e ] }; key { [ Arabic_lam, 0x100fef7 ] }; key { [ Arabic_alef, Arabic_hamzaonalef ] }; key { [ Arabic_teh, Arabic_tatweel ] }; key { [ Arabic_noon, Arabic_comma ] }; key { [ Arabic_meem, slash ] }; key { [ U06A9, colon, 0x10006af ] }; key { [ Arabic_tah, quotedbl ] }; key { [ bar, brokenbar ] }; key { [Arabic_hamzaonyeh, asciitilde, guillemotright ] }; key { [ Arabic_hamza, U06BD, guillemotleft ] }; key { [Arabic_hamzaonwaw, braceright ] }; key { [ Arabic_ra, braceleft ] }; key { [ 0x100fefb, 0x100fef5 ] }; key { [Arabic_alefmaksura, Arabic_maddaonalef ] }; key { [Arabic_tehmarbuta, apostrophe ] }; key { [ Arabic_waw, U200C, comma ] }; key { [ Arabic_zain, period ] }; key { [ Arabic_zah, Arabic_question_mark ] }; //others key { [ Escape ] }; include "level3(ralt_switch)" // End alphanumeric section }; // symbol names: see /usr/X11R6/include/X11/keysymdef.h (XFree86-devel.rpm) partial alphanumeric_keys xkb_symbols "phonetic" { name[Group1] = "Malay (Jawi, phonetic)"; //Numbers key { [ 0x1000661, exclam, 1 ] }; key { [ 0x1000662, Arabic_hamza, 2 ] }; key { [ 0x1000663, Arabic_hamzaonalef, 3 ] }; key { [ 0x1000664, Arabic_maddaonalef, 4 ] }; key { [ 0x1000665, Arabic_hamzaunderalef, 5 ] }; key { [ 0x1000666, Arabic_hamzaonyeh, 6 ] }; key { [ 0x1000667, Arabic_hamzaonwaw, 7 ] }; key { [ 0x1000668, NoSymbol, 8 ] }; key { [ 0x1000669, parenright, 9 ] }; key { [ 0x1000660, parenleft, 0 ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; // Alphabets key { [ bar, brokenbar ] }; key { [ Arabic_zain, Arabic_thal ] }; key { [ Arabic_khah, Arabic_hah ] }; key { [ Arabic_tcheh, UFEB9 ] }; key { [ U06CF, Arabic_zah ] }; key { [ Arabic_beh, Arabic_peh ] }; key { [ Arabic_noon, U06BD ] }; key { [ Arabic_meem, Arabic_madonalef ] }; key { [ Arabic_comma, rightcaret ] }; key { [ period, leftcaret ] }; key { [ slash, Arabic_question_mark ] }; key { [ Arabic_alef, Arabic_maddaonalef ] }; key { [ Arabic_seen, Arabic_sheen ] }; key { [ Arabic_dal, Arabic_dad ] }; key { [ Arabic_feh, Arabic_veh ] }; key { [ U06AC, U06A0 ] }; key { [ Arabic_ha, Arabic_hah ] }; key { [ Arabic_jeem, Arabic_tcheh ] }; key { [ Arabic_kaf, Arabic_qaf ] }; key { [ Arabic_lam, UFEFB ] }; key { [ Arabic_semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ Arabic_qaf, Arabic_veh ] }; key { [ Arabic_waw, Arabic_shadda ] }; key { [ Arabic_ain, Arabic_ghain ] }; key { [ Arabic_ra, Arabic_ghain ] }; key { [ Arabic_teh, Arabic_tehmarbuta ] }; key { [ Arabic_yeh, Arabic_alefmaksura ] }; key { [ Arabic_waw, Arabic_tah ] }; key { [ Arabic_yeh, U0640 ] }; // U0640 - tatweel key { [ Arabic_ain, U200C ] }; // U200C - ZWNJ key { [ Arabic_veh, Arabic_teh ] }; key { [ bracketright, braceright ] }; key { [ bracketleft, braceleft ] }; key { [ backslash, bar ] }; //others key { [ Escape ] }; include "level3(ralt_switch)" // End alphanumeric section }; PK(f[EF F symbols/kpdlnu[// The key is a mess. // It was probably originally meant to be a decimal separator. // Except since it was declared by USA people it didn't use the original // SI separator "," but a "." (since then the USA managed to f-up the SI // by making "." an accepted alternative, but standards still use "," as // default) // As a result users of SI-abiding countries expect either a "." or a "," // or a "decimal_separator" which may or may not be translated in one of the // above depending on applications. // It's not possible to define a default per-country since user expectations // depend on the conflicting choices of their most-used applications, // operating system, etc. Therefore it needs to be a configuration setting // Copyright © 2007 Nicolas Mailhot // Legacy #1 // This assumes KP_Decimal will be translated in a dot partial keypad_keys xkb_symbols "dot" { key.type[Group1]="KEYPAD" ; key { [ KP_Delete, KP_Decimal ] }; // }; // Legacy #2 // This assumes KP_Separator will be translated in a comma partial keypad_keys xkb_symbols "comma" { key.type[Group1]="KEYPAD" ; key { [ KP_Delete, KP_Separator ] }; // }; // Period , usual keyboard serigraphy in most countries partial keypad_keys xkb_symbols "dotoss" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; key { [ KP_Delete, period, comma, 0x100202F ] }; // . , ⍽ (narrow no-break space) }; // Period , usual keyboard serigraphy in most countries, latin-9 restriction partial keypad_keys xkb_symbols "dotoss_latin9" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; key { [ KP_Delete, period, comma, nobreakspace ] }; // . , ⍽ (no-break space) }; // Comma , what most non anglo-saxon people consider the real separator partial keypad_keys xkb_symbols "commaoss" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; key { [ KP_Delete, comma, period, 0x100202F ] }; // , . ⍽ (narrow no-break space) }; // Momayyez : Bahrain, Iran, Iraq, Kuwait, Oman, Qatar, Saudi Arabia, Syria, UAE partial keypad_keys xkb_symbols "momayyezoss" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; key { [ KP_Delete, 0x100066B, comma, 0x100202F ] }; // ? , ⍽ (narrow no-break space) }; // Abstracted , pray everything will work out (it usually does not) partial keypad_keys xkb_symbols "kposs" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; key { [ KP_Delete, KP_Decimal, KP_Separator, 0x100202F ] }; // ? ? ⍽ (narrow no-break space) }; // Spreadsheets may be configured to use the dot as decimal // punctuation, comma as a thousands separator and then semi-colon as // the list separator. Of these, dot and semi-colon is most important // when entering data by the keyboard; the comma can then be inferred // and added to the presentation afterwards. Using semi-colon as a // general separator may in fact be preferred to avoid ambiguities // in data files. Most times a decimal separator is hard-coded, it // seems to be period, probably since this is the syntax used in // (most) programming languages. partial keypad_keys xkb_symbols "semi" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; key { [ NoSymbol, NoSymbol, semicolon ] }; }; PK(f[|l== symbols/zanu[// Based on the Latvian and GB keyboard maps. default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { // Describes the differences between an en_US layout // and a South African layout with dead keys. // By Dwayne Bailey (dwayne@translate.org.za). include "latin" name[Group1]="English (South Africa)"; key { [ grave, asciitilde, dead_grave ] }; key { [ 2, at, yen ] }; key { [ 3, numbersign, sterling ] }; key { [ 4, dollar, dollar ] }; key { [ 5, percent, EuroSign ] }; key { [ 6,asciicircum, dead_circumflex ] }; key { [ e, E, ediaeresis, Ediaeresis ] }; key { [ r, R, ecircumflex, Ecircumflex ] }; key { [ t, T, U1e71, U1e70 ] }; key { [ y, Y, ucircumflex, Ucircumflex ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ i, I, idiaeresis, Idiaeresis ] }; key { [ o, O, odiaeresis, Odiaeresis ] }; key { [ p, P, ocircumflex, Ocircumflex ] }; key { [ a, A, adiaeresis, Adiaeresis ] }; key { [ s, S, scaron, Scaron ] }; key { [ d, D, U1e13, U1e12 ] }; key { [ l, L, U1e3d, U1e3c ] }; key { [ semicolon, colon, dead_diaeresis ] }; key { [apostrophe, quotedbl, dead_acute ] }; key { [ n, N, U1e4b, U1e4a ] }; key { [ m, M, U1e45, U1e44 ] }; key { [ period, greater, dead_abovedot ] }; include "level3(ralt_switch)" }; PK(f[M&yHyH symbols/usnu[default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { name[Group1]= "English (US)"; key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; key { [ backslash, bar ] }; }; partial alphanumeric_keys xkb_symbols "euro" { include "us(basic)" name[Group1]= "English (US, euro on 5)"; include "eurosign(5)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "ibm238l" { include "us(basic)" name[Group1]= "English (US, IBM Arabic 238_L)"; key { [ comma, comma ] }; key { [ period, period ] }; key { [ quoteleft, asciitilde ] }; key { [ backslash, bar ] }; key { [ leftcaret, rightcaret ] }; }; partial alphanumeric_keys xkb_symbols "intl" { include "us(basic)" name[Group1]= "English (US, intl., with dead keys)"; key { [dead_grave, dead_tilde, grave, asciitilde ] }; key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, at, twosuperior, dead_doubleacute ] }; key { [ 3, numbersign, threesuperior, dead_macron ] }; key { [ 4, dollar, currency, sterling ] }; key { [ 5, percent, EuroSign, dead_cedilla ] }; key { [ 6, dead_circumflex, onequarter, asciicircum ] }; key { [ 7, ampersand, onehalf, dead_horn ] }; key { [ 8, asterisk, threequarters, dead_ogonek ] }; key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; key { [ minus, underscore, yen, dead_belowdot ] }; key { [ equal, plus, multiply, division ] }; key { [ q, Q, adiaeresis, Adiaeresis ] }; key { [ w, W, aring, Aring ] }; key { [ e, E, eacute, Eacute ] }; key { [ r, R, registered, registered ] }; key { [ t, T, thorn, THORN ] }; key { [ y, Y, udiaeresis, Udiaeresis ] }; key { [ u, U, uacute, Uacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ p, P, odiaeresis, Odiaeresis ] }; key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; key { [ a, A, aacute, Aacute ] }; key { [ s, S, ssharp, section ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, f, F ] }; key { [ g, G, g, G ] }; key { [ h, H, h, H ] }; key { [ j, J, j, J ] }; key { [ k, K, oe, OE ] }; key { [ l, L, oslash, Ooblique ] }; key { [ semicolon, colon, paragraph, degree ] }; key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; key { [ z, Z, ae, AE ] }; key { [ x, X, x, X ] }; key { [ c, C, copyright, cent ] }; key { [ v, V, v, V ] }; key { [ b, B, b, B ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, mu, mu ] }; key { [ comma, less, ccedilla, Ccedilla ] }; key { [ period, greater, dead_abovedot, dead_caron ] }; key { [ slash, question, questiondown, dead_hook ] }; key { [ backslash, bar, notsign, brokenbar ] }; key { [ backslash, bar, backslash, bar ] }; include "level3(ralt_switch)" }; // Based on symbols/us_intl keyboard map: // Dead-keys definition for a very simple US/ASCII layout. // by Conectiva (http://www.conectiva.com.br) // modified by Ricardo Y. Igarashi (iga@that.com.br) // Added the following deadkeys, to make it truly international: // // dead_macron: on AltGr-minus // dead_breve: on AltGr-parenleft // dead_abovedot: on AltGr-period // dead_abovering: on AltGr-0 // dead_doubleacute: on AltGr-equal (as quotedbl is already used) // dead_caron: on AltGr-less (AltGr-shift-comma) // dead_cedilla: on AltGr-comma // dead_ogonek: on AltGr-semicolon // dead_belowdot: on AltGr-underscore (AltGr-shift-minus) // dead_hook: on AltGr-question // dead_horn: on AltGr-plus (AltGr-shift-equal) // dead_diaeresis: on AltGr-colon (Alt-shift-semicolon) // // those were already there: // dead_grave // dead_acute // dead_circumflex // dead_tilde // dead_diaeresis partial alphanumeric_keys xkb_symbols "alt-intl" { include "us" name[Group1]= "English (US, alt. intl.)"; key { [ dead_grave, dead_tilde, grave, asciitilde ] }; key { [ 5, percent, EuroSign ] }; key { [ 6, dead_circumflex, asciicircum, asciicircum ] }; key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; key { [ minus, underscore, dead_macron, dead_belowdot ] }; key { [ equal, plus, dead_doubleacute, dead_horn ] }; key { [ e, E, EuroSign, cent ] }; key { [ semicolon, colon, dead_ogonek, dead_diaeresis ] }; key { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; key { [ comma, less, dead_cedilla, dead_caron ] }; key { [ period, greater, dead_abovedot, dead_circumflex ] }; key { [ slash, question, dead_hook, dead_hook ] }; key { [ backslash, bar, backslash, bar ] }; include "level3(ralt_switch)" }; // based on a keyboard map from an 'xkb/symbols/dk' file partial alphanumeric_keys xkb_symbols "dvorak" { name[Group1]= "English (Dvorak)"; key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft, dead_grave] }; key { [ 0, parenright ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright, dead_tilde] }; key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; key { [ comma, less, dead_cedilla, dead_caron ] }; key { [ period, greater, dead_abovedot, periodcentered ] }; key { [ p, P ] }; key { [ y, Y ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ c, C ] }; key { [ r, R ] }; key { [ l, L ] }; key { [ slash, question ] }; key { [ equal, plus ] }; key { [ a, A ] }; key { [ o, O ] }; key { [ e, E ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ d, D ] }; key { [ h, H ] }; key { [ t, T ] }; key { [ n, N ] }; key { [ s, S ] }; key { [ minus, underscore ] }; key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; key { [ q, Q ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ x, X ] }; key { [ b, B ] }; key { [ m, M ] }; key { [ w, W ] }; key { [ v, V ] }; key { [ z, Z ] }; key { [ backslash, bar ] }; }; // Dvorak intl., with dead keys // Olivier Mehani (shtrom-xorg@ssji.net) // Reproduce the per-key mapping of us(intl) for the dvorak layout // aka "I just swapped my keys over" partial alphanumeric_keys xkb_symbols "dvorak-intl" { include "us(dvorak)" name[Group1]= "English (Dvorak, intl., with dead keys)"; key { [dead_grave, dead_tilde, grave, asciitilde ] }; key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, at, twosuperior, dead_doubleacute ] }; key { [ 3, numbersign, threesuperior, dead_macron ] }; key { [ 4, dollar, currency, sterling ] }; key { [ 5, percent, EuroSign, dead_cedilla ] }; key { [ 6, dead_circumflex, onequarter, asciicircum ] }; key { [ 7, ampersand, onehalf, dead_horn ] }; key { [ 8, asterisk, threequarters, dead_ogonek ] }; key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; key { [ comma, less, ccedilla, Ccedilla ] }; key { [ period, greater, dead_abovedot, dead_caron ] }; key { [ p, P, odiaeresis, Odiaeresis ] }; key { [ y, Y, udiaeresis, Udiaeresis ] }; // key { [ f, F ] }; // key { [ g, G ] }; key { [ c, C, copyright, cent ] }; key { [ r, R, registered, registered ] }; key { [ l, L, oslash, Ooblique ] }; key { [ slash, question, questiondown, dead_hook ] }; // key { [ equal, plus, multiply, division ] }; key { [ a, A, aacute, Aacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ e, E, eacute, Eacute ] }; key { [ u, U, uacute, Uacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ d, D, eth, ETH ] }; // key { [ h, H ] }; key { [ t, T, thorn, THORN ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ s, S, ssharp, section ] }; // key { [ minus, underscore, yen, dead_belowdot ] }; key { [ semicolon, colon, paragraph, degree ] }; key { [ q, Q, adiaeresis, Adiaeresis ] }; // key { [ j, J ] }; key { [ k, K, oe, OE ] }; // key { [ x, X ] }; // key { [ b, B ] }; key { [ m, M, mu, mu ] }; key { [ w, W, aring, Aring ] }; // key { [ v, V ] }; key { [ z, Z, ae, AE ] }; key { [ backslash, bar, notsign, brokenbar ] }; include "level3(ralt_switch)" }; // Dvorak international without dead keys // Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net) // Based on information from http://www.poupinou.org/dvorak/index.html // // ` 1 2 3 4 5 6 7 8 9 0 [ ] \ // € // // ' , . p y f g c r l / = // ä ê ë ü ç // // a o e u i d h t n s - // à ô é û î ß // // ; q j k x b m w v z // â ö è ù ï partial alphanumeric_keys xkb_symbols "dvorak-alt-intl" { include "us(dvorak)" name[Group1]= "English (Dvorak, alt. intl.)"; key { [ 4, dollar, EuroSign ] }; key { [ comma, less, adiaeresis, dead_caron ] }; key { [ period, greater, ecircumflex, periodcentered ] }; key { [ p, P, ediaeresis, dead_cedilla ] }; key { [ y, Y, udiaeresis ] }; key { [ c, C, ccedilla, dead_abovedot ] }; key { [ a, A, agrave ] }; key { [ o, O, ocircumflex ] }; key { [ e, E, eacute ] }; key { [ u, U, ucircumflex ] }; key { [ i, I, icircumflex ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ semicolon, colon, acircumflex ] }; key { [ q, Q, odiaeresis, dead_ogonek ] }; key { [ j, J, egrave, dead_doubleacute ] }; key { [ k, K, ugrave ] }; key { [ x, X, idiaeresis ] }; include "level3(ralt_switch)" }; // Left and right handed dvorak layouts // by sqweek 2006-01-30 // Based on the corresponding layouts in the console-tools package. partial alphanumeric_keys xkb_symbols "dvorak-l" { include "us(dvorak)" name[Group1]= "English (Dvorak, left-handed)"; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ slash, question ] }; key { [ p, P ] }; key { [ f, F ] }; key { [ m, M ] }; key { [ l, L ] }; key { [ j, J ] }; key { [ 4, dollar ] }; key { [ 3, numbersign ] }; key { [ 2, at ] }; key { [ 1, exclam ] }; key { [ semicolon, colon ] }; key { [ q, Q ] }; key { [ b, B ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ r, R ] }; key { [ s, S ] }; key { [ o, O ] }; key { [ period, greater ] }; key { [ 6, asciicircum ] }; key { [ 5, percent ] }; key { [ equal, plus ] }; key { [ minus, underscore ] }; key { [ k, K ] }; key { [ c, C ] }; key { [ d, D ] }; key { [ t, T ] }; key { [ h, H ] }; key { [ e, E ] }; key { [ a, A ] }; key { [ z, Z ] }; key { [ 8, asterisk ] }; key { [ 7, ampersand ] }; key { [ apostrophe, quotedbl ] }; key { [ x, X ] }; key { [ g, G ] }; key { [ v, V ] }; key { [ w, W ] }; key { [ n, N ] }; key { [ i, I ] }; key { [ comma, less ] }; key { [ 0, parenright ] }; key { [ 9, parenleft ] }; }; partial alphanumeric_keys xkb_symbols "dvorak-r" { include "us(dvorak)" name[Group1]= "English (Dvorak, right-handed)"; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ j, J ] }; key { [ l, L ] }; key { [ m, M ] }; key { [ f, F ] }; key { [ p, P ] }; key { [ slash, question ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ q, Q ] }; key { [ period, greater ] }; key { [ o, O ] }; key { [ r, R ] }; key { [ s, S ] }; key { [ u, U ] }; key { [ y, Y ] }; key { [ b, B ] }; key { [ semicolon, colon ] }; key { [ equal, plus ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ z, Z ] }; key { [ a, A ] }; key { [ e, E ] }; key { [ h, H ] }; key { [ t, T ] }; key { [ d, D ] }; key { [ c, C ] }; key { [ k, K ] }; key { [ minus, underscore ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ x, X ] }; key { [ comma, less ] }; key { [ i, I ] }; key { [ n, N ] }; key { [ w, W ] }; key { [ v, V ] }; key { [ g, G ] }; key { [ apostrophe, quotedbl ] }; }; // Classic dvorak layout // by Piter Punk - 2006-07-06 // Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net // on xorg list. partial alphanumeric_keys xkb_symbols "dvorak-classic" { name[Group1]= "English (classic Dvorak)"; key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ bracketleft, braceleft ] }; key { [ 7, ampersand ] }; key { [ 5, percent ] }; key { [ 3, numbersign ] }; key { [ 1, exclam ] }; key { [ 9, parenleft, dead_grave] }; key { [ 0, parenright ] }; key { [ 2, at ] }; key { [ 4, dollar ] }; key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; key { [ 8, asterisk ] }; key { [ bracketright, braceright, dead_tilde] }; key { [ slash, question ] }; key { [ comma, less, dead_cedilla, dead_caron ] }; key { [ period, greater, dead_abovedot, periodcentered ] }; key { [ p, P ] }; key { [ y, Y ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ c, C ] }; key { [ r, R ] }; key { [ l, L ] }; key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; key { [ equal, plus ] }; key { [ a, A ] }; key { [ o, O ] }; key { [ e, E ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ d, D ] }; key { [ h, H ] }; key { [ t, T ] }; key { [ n, N ] }; key { [ s, S ] }; key { [ minus, underscore ] }; key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; key { [ q, Q ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ x, X ] }; key { [ b, B ] }; key { [ m, M ] }; key { [ w, W ] }; key { [ v, V ] }; key { [ z, Z ] }; key { [ backslash, bar ] }; }; // programmer Dvorak, by Roland Kaufmann // License: BSD, available at // Main features: Numbers are in shift position (like French), symbols have been // placed in locations that give good hand-alternation and finger rolling with // symbols that usually follows, accented characters are possible for I18N. // Patch suggestions should be sent upstream. partial alphanumeric_keys xkb_symbols "dvp" { include "us(dvorak)" name[Group1] = "English (programmer Dvorak)"; // Unmodified Shift AltGr Shift+AltGr // symbols row, left side key { [ dollar, asciitilde, dead_tilde ] }; key { [ ampersand, percent ] }; key { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; key { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; key { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; key { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; key { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; // symbols row, right side key { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; key { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; key { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; key { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; key { [ exclam, 8, exclamdown, U2E18 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; // reversed interrobang key { [ numbersign, grave, dead_grave ] }; key { [ BackSpace, BackSpace ] }; // upper row, left side key { [ semicolon, colon, dead_diaeresis ] }; key { [ comma, less, guillemotleft, U201C ] }; key { [ period, greater, guillemotright, U201D ] }; key { [ p, P, paragraph, section ] }; key { [ y, Y, udiaeresis, Udiaeresis ] }; // upper row, right side key { [ c, C, ccedilla, Ccedilla ] }; key { [ r, R, registered, trademark ] }; key { [ slash, question, questiondown, U203D ] }; // interrobang key { [ at, asciicircum, dead_circumflex, dead_caron ] }; // home row, left side key { [ a, A, aring, Aring ] }; key { [ o, O, oslash, Ooblique ] }; key { [ e, E, ae, AE ] }; key { [ u, U, eacute, Eacute ] }; // home row, right side key { [ d, D, eth, ETH ] }; key { [ h, H, dead_acute ] }; key { [ t, T, thorn, THORN ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ minus, underscore, hyphen, endash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; key { [ backslash, bar ] }; // lower row, left side key { [ apostrophe, quotedbl, dead_acute ] }; // do NOT hardcode this switch; use lv3:ralt_switch option instead! //include "level3(ralt_switch)" }; // phonetic layout for Russian letters on an US keyboard // by Ivan Popov 2005-07-17 // level3 modifier is a shortcut to the "us" meaning of the keys where // we place cyrillic letters, handy for accessing the corresponding // punctuation marks. // It is important to have access to punctuation marks, and the rest of // alphabetical keys are added for being consequent so that the users // can expect the level3 modifier to give what the key label shows. partial alphanumeric_keys xkb_symbols "rus" { include "us(basic)" name[Group1]= "Russian (US, phonetic)"; key.type[group1]="FOUR_LEVEL_ALPHABETIC"; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] }; key { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_e, Cyrillic_E, backslash, bar ] }; key { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "mac" { include "us(basic)" name[Group1]= "English (Macintosh)"; key.type[group1]="FOUR_LEVEL"; // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg key { [ section, plusminus, section, plusminus ] }; key { [ grave, asciitilde, dead_grave, dead_horn ] }; key { [ 1, exclam, exclamdown, U2044 ] }; key { [ 2, at, trademark, EuroSign ] }; key { [ 3, numbersign, sterling, U2039 ] }; key { [ 4, dollar, cent, U203A ] }; key { [ 5, percent, infinity, UFB01 ] }; key { [ 6,asciicircum, section, UFB02 ] }; key { [ 7, ampersand, paragraph, doubledagger ] }; key { [ 8, asterisk, enfilledcircbullet, degree ] }; key { [ 9, parenleft, ordfeminine, periodcentered ] }; key { [ 0, parenright, masculine,singlelowquotemark] }; key { [ minus, underscore, endash, emdash ] }; key { [ equal, plus, notequal, plusminus ] }; key { [ q, Q, oe, OE ] }; key { [ w, W, U2211,doublelowquotemark] }; key { [ e, E, dead_acute, acute ] }; key { [ r, R, registered, U2030 ] }; key { [ t, T, dagger, dead_caron ] }; key { [ y, Y, yen, onequarter ] }; key { [ u, U, dead_diaeresis, diaeresis ] }; key { [ i, I, dead_circumflex, U02C6 ] }; key { [ o, O, oslash, Ooblique ] }; key { [ p, P, Greek_pi, U220F ] }; key { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] }; key { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] }; key { [ backslash, bar, guillemotleft, guillemotright ] }; key { [ a, A, aring, Aring ] }; key { [ s, S, ssharp, dead_stroke ] }; key { [ d, D, partialderivative, eth ] }; key { [ f, F, function, dead_hook ] }; key { [ g, G, copyright, dead_doubleacute ] }; key { [ h, H, dead_abovedot, dead_belowdot ] }; key { [ j, J, U2206, onehalf ] }; key { [ k, K,dead_abovering, UF8FF ] }; key { [ l, L, notsign, THORN ] }; key { [ semicolon, colon, U2026, thorn ] }; key { [apostrophe, quotedbl, ae, AE ] }; key { [ z, Z, Greek_OMEGA, dead_cedilla ] }; key { [ x, X, U2248, dead_ogonek ] }; // unclear whether "approxeq" is 2248 or 2245 key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, squareroot, U25CA ] }; key { [ b, B, integral, idotless ] }; key { [ n, N, dead_tilde, U02DC ] }; key { [ m, M, mu, threequarters ] }; key { [ comma, less, lessthanequal, dead_macron ] }; key { [ period, greater, greaterthanequal, dead_breve ] }; key { [ slash, question, division, questiondown ] }; include "level3(ralt_switch)" }; // Colemak symbols for xkb on X.Org Server 7.x // 2006-01-01 Shai Coleman, http://colemak.com/ partial alphanumeric_keys xkb_symbols "colemak" { include "us" name[Group1]= "English (Colemak)"; key { [ grave, asciitilde, dead_tilde, asciitilde ] }; key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, at, masculine, twosuperior ] }; key { [ 3, numbersign, ordfeminine, threesuperior ] }; key { [ 4, dollar, cent, sterling ] }; key { [ 5, percent, EuroSign, yen ] }; key { [ 6, asciicircum, hstroke, Hstroke ] }; key { [ 7, ampersand, eth, ETH ] }; key { [ 8, asterisk, thorn, THORN ] }; key { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; key { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] }; key { [ minus, underscore, endash, emdash ] }; key { [ equal, plus, multiply, division ] }; key { [ q, Q, adiaeresis, Adiaeresis ] }; key { [ w, W, aring, Aring ] }; key { [ f, F, atilde, Atilde ] }; key { [ p, P, oslash, Ooblique ] }; key { [ g, G, dead_ogonek, asciitilde ] }; key { [ j, J, dstroke, Dstroke ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ u, U, uacute, Uacute ] }; key { [ y, Y, udiaeresis, Udiaeresis ] }; key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; key { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] }; key { [ bracketright, braceright, guillemotright, 0x100203a ] }; key { [ backslash, bar, asciitilde, asciitilde ] }; key { [ a, A, aacute, Aacute ] }; key { [ r, R, dead_grave, asciitilde ] }; key { [ s, S, ssharp, 0x1001e9e ] }; key { [ t, T, dead_acute, dead_doubleacute ] }; key { [ d, D, dead_diaeresis, asciitilde ] }; key { [ h, H, dead_caron, asciitilde ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ e, E, eacute, Eacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ apostrophe, quotedbl, otilde, Otilde ] }; key { [ z, Z, ae, AE ] }; key { [ x, X, dead_circumflex, asciitilde ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, oe, OE ] }; key { [ b, B, dead_breve, asciitilde ] }; key { [ k, K, dead_abovering, asciitilde ] }; key { [ m, M, dead_macron, asciitilde ] }; key { [ comma, less, dead_cedilla, asciitilde ] }; key { [ period, greater, dead_abovedot, asciitilde ] }; key { [ slash, question, questiondown, asciitilde ] }; key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; key { [ minus, underscore, endash, emdash ] }; key { [ space, space, space, nobreakspace ] }; include "level3(ralt_switch)" }; // I do NOT like dead-keys - the International keyboard as defined by Microsoft // does not fit my needs. Why use two keystrokes for all simple characters (eg ' // and generates a single ') just to have an é (eacute) in two strokes // as well? I type ' more often than é (eacute). // // This file works just like a regular keyboard, BUT has all dead-keys // accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+" // followed by an e. In other words, this keyboard is not international as long // as you leave the right Alt key alone. // // The original MS International keyboard was intended for Latin1 (iso8859-1). // With the introduction of iso8859-15, the (important) ligature oe (and OE) // became available. I added them next to ae. Because I write ediaeresis more // often than registered, I moved registered to be next to copyright and added // ediaeresis and idiaeresis. - Adriaan partial alphanumeric_keys xkb_symbols "altgr-intl" { include "us(intl)" name[Group1]= "English (intl., with AltGr dead keys)"; // five dead keys moved into level3: key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] }; // diversions from the MS Intl keyboard: key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ r, R, ediaeresis, Ediaeresis ] }; key { [ j, J, idiaeresis, Idiaeresis ] }; key { [ x, X, oe, OE ] }; key { [ v, V, registered, registered ] }; // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys: key { [ 6, asciicircum, dead_circumflex, onequarter ] }; key { [ 7, ampersand, dead_horn, onehalf ] }; key { [ 8, asterisk, dead_ogonek, threequarters ] }; include "level3(ralt_switch)" }; // Intel ClassmatePC Keyboard Layout // by Piter PUNK // // The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl) // to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since // the keyboard does not have AltGr key. The EuroSign is engraved at 5 key. // classmate - us(basic) partial alphanumeric_keys xkb_symbols "classmate" { include "us(basic)" name[Group1]= "English (US)"; key { [ backslash, bar, backslash, bar ] }; include "eurosign(5)" include "level3(switch)" }; // classmate-intl - us(intl) // RCTL is generated by Fn+Alt, because that, when trying to access // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got // the keypad keycodes. The keypad is changed to make Fn+Alt+ // generate the same symbol as the original key. partial alphanumeric_keys xkb_symbols "classmate-intl" { include "us(intl)" name[Group1]= "USA - ClassmatePC (International)"; key.type[Group1]="FOUR_LEVEL"; key { [ backslash, bar, backslash, bar ] }; key { [ KP_Home, KP_7, onehalf, dead_horn ] }; key { [ KP_Up, KP_8, threequarters, dead_ogonek ] }; key { [ KP_Prior, KP_9, leftsinglequotemark, dead_breve ] }; key { [ KP_Multiply, KP_Multiply, rightsinglequotemark, dead_abovering ] }; key { [ KP_Left, KP_4, uacute, Uacute ] }; key { [ KP_Begin, KP_5, iacute, Iacute ] }; key { [ KP_Right, KP_6, oacute, Oacute ] }; key { [ KP_Subtract, KP_Subtract, odiaeresis, Odiaeresis ] }; key { [ KP_Down, KP_2, oe, OE ] }; key { [ KP_Next, KP_3, oslash, Ooblique ] }; key { [ KP_Add, KP_Add, paragraph, degree ] }; key { [ KP_Insert, KP_0, mu, mu ] }; key { [ KP_Delete, KP_Decimal, dead_abovedot, dead_caron ] }; key { [ KP_Divide, KP_Divide, questiondown, dead_hook ] }; include "level3(switch)" }; // classmate-alt-intl - us(alt-intl) // RCTL is generated by Fn+Alt, because that, when trying to access // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got // the keypad keycodes. The keypad is changed to make Fn+Alt+ // generate the same symbol as the original key. partial alphanumeric_keys xkb_symbols "classmate-alt-intl" { include "us(alt-intl)" name[Group1]= "USA - ClassmatePC (Alternative international)"; key.type[Group1]="FOUR_LEVEL"; key { [ backslash, bar, backslash, bar ] }; key { [ KP_Subtract, KP_Subtract ] }; key { [ KP_Prior, KP_9, leftsinglequotemark, dead_breve ] }; key { [ KP_Multiply, KP_Multiply, rightsinglequotemark, dead_abovering ] }; key { [ KP_Add, KP_Add, dead_ogonek, dead_diaeresis ] }; key { [ KP_Delete, KP_Decimal, dead_abovedot, dead_circumflex ] }; key { [ KP_Divide, KP_Divide, dead_hook, dead_hook ] }; include "level3(switch)" }; // classmate-altgr-intl - us(altgr-intl) // RCTL is generated by Fn+Alt, because that, when trying to access // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got // the keypad keycodes. The keypad is changed to make Fn+Alt+ // generate the same symbol as the original key. partial alphanumeric_keys xkb_symbols "classmate-altgr-intl" { include "us(altgr-intl)" name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)"; key.type[Group1]="FOUR_LEVEL"; key { [ backslash, bar, backslash, bar ] }; key { [ KP_Home, KP_7, dead_horn, dead_horn ] }; key { [ KP_Up, KP_8, dead_ogonek, dead_ogonek ] }; key { [ KP_Prior, KP_9, leftsinglequotemark, dead_breve ] }; key { [ KP_Multiply, KP_Multiply, rightsinglequotemark, dead_abovering ] }; key { [ KP_Left, KP_4, uacute, Uacute ] }; key { [ KP_Begin, KP_5, iacute, Iacute ] }; key { [ KP_Right, KP_6, oacute, Oacute ] }; key { [ KP_Subtract, KP_Subtract, odiaeresis, Odiaeresis ] }; key { [ KP_End, KP_1, idiaeresis, Idiaeresis ] }; key { [ KP_Down, KP_2, oe, OE ] }; key { [ KP_Next, KP_3, oslash, Ooblique ] }; key { [ KP_Add, KP_Add, paragraph, degree ] }; key { [ KP_Insert, KP_0, mu, mu ] }; key { [ KP_Delete, KP_Decimal, dead_abovedot, dead_caron ] }; key { [ KP_Divide, KP_Divide, questiondown, dead_hook ] }; include "level3(switch)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "us(basic)" name[Group1]= "English (US)"; // OLPC international US English keyboard layout. // It's a little different from the usual international layout. // See: http://wiki.laptop.org/go/Image:Keyboard_english.png key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, exclamdown, exclamdown ] }; key { [ 2, at, notsign, notsign ] }; key { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave key { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute key { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above key { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above key { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above key { [ q, Q, Greek_omega, Greek_OMEGA ] }; key { [ w, W, oslash, Oslash ] }; key { [ e, E, oe, OE ] }; key { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla key { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below key { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below key { [ a, A, ae, AE ] }; key { [ s, S, ssharp, 0x1001E9E ] }; // uppercase S sharp key { [ d, D, eth, ETH ] }; key { [ f, F, thorn, THORN ] }; key { [ h, H, sterling, sterling ] }; key { [ j, J, EuroSign, EuroSign ] }; key { [ semicolon, colon, masculine, ordfeminine ] }; key { [ apostrophe, quotedbl, currency, currency ] }; key { [ backslash, bar, section, section ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, mu, mu ] }; key { [ comma, less, guillemotleft, guillemotleft ] }; key { [ period, greater, guillemotright, guillemotright ] }; key { [ slash, question, questiondown, questiondown ] }; key { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc2" { include "us(olpc)" name[Group1]= "English (the divide/multiply keys toggle the layout)"; include "group(olpc)" }; xkb_symbols "olpcm" { include "us(basic)" name[Group1]= "English (US)"; // Mechanical (non-membrane) OLPC int'l US English keyboard layout. // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, exclamdown, exclamdown ] }; key { [ 2, at, notsign, notsign ] }; key { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave key { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute key { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above key { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above key { [ q, Q, Greek_omega, Greek_OMEGA ] }; key { [ w, W, oslash, Oslash ] }; key { [ e, E, oe, OE ] }; key { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla key { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below key { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below key { [ a, A, ae, AE ] }; key { [ s, S, ssharp, 0x1001E9E ] }; // uppercase S sharp key { [ d, D, eth, ETH ] }; key { [ f, F, thorn, THORN ] }; key { [ h, H, sterling, sterling ] }; key { [ j, J, EuroSign, EuroSign ] }; key { [ semicolon, colon, masculine, ordfeminine ] }; // no AC11 or AC12 on olpcm key { [ c, C, ccedilla, Ccedilla ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ m, M, mu, mu ] }; key { [ comma, less, guillemotleft, guillemotleft ] }; key { [ period, greater, guillemotright, guillemotright ] }; key { [ slash, question, questiondown, questiondown ] }; key { [ backslash, bar, section, section ] }; key { [ equal, plus, 0x1000303, 0x1000303 ] }; key { [ apostrophe, quotedbl, currency, currency ] }; include "level3(ralt_switch)" }; // Based on Cherokee Nation Official Layout // http://www.cherokee.org/extras/downloads/font/Keyboard.htm partial alphanumeric_keys modifier_keys xkb_symbols "chr" { name[Group1]= "Cherokee"; key.type[group1]="ALPHABETIC"; key { [ grave, U13CA ] }; key { [ 1, U13B1 ] }; key { [ 2, U13C7 ] }; key { [ 3, U13E7 ] }; key { [ U13D9, U13B0 ] }; key { [ U13E6, U13B9 ] }; key { [ U13DC, U13DD ] }; key { [ U13CB, U13E1 ] }; key { [ U13D6, U13BA ] }; key { [ U13D2, parenleft ] }; key { [ U13C4, parenright ] }; key { [ U13BF, U13BC ] }; key { [ U13F3, U13BD ] }; key { [ U13AA, U13C6 ] }; key { [ U13B3, U13EB ] }; key { [ U13A1, U13E3 ] }; key { [ U13DB, U13CF ] }; key { [ U13D4, U13D8 ] }; key { [ U13EF, U13F2 ] }; key { [ U13A4, U13AD ] }; key { [ U13A2, U13F1 ] }; key { [ U13A3, U13EC ] }; key { [ U13C1, U13EA ] }; key { [ U13D5, U13D1 ] }; key { [ U13B6, U13E4 ] }; key { [ U13E9, U13EE ] }; key { [ U13A0, U13CC ] }; key { [ U13CD, U13CE ] }; key { [ U13D7, U13D0 ] }; key { [ U13A9, U13C8 ] }; key { [ U13A6, U13E5 ] }; key { [ U13AF, U13B2 ] }; key { [ U13DA, U13AB ] }; key { [ U13B8, U13A7 ] }; key { [ U13B5, U13AE ] }; key { [ U13E8, U13E0 ] }; key { [ apostrophe, quotedbl ] }; key { [ U13AC, U13C3 ] }; key { [ U13F4, U13ED ] }; key { [ U13D3, U13DF ] }; key { [ U13A5, U13DE ] }; key { [ U13A8, U13F0 ] }; key { [ U13BE, U13BB ] }; key { [ U13C5, U13B7 ] }; key { [ comma, U13E2 ] }; key { [ period, U13B4 ] }; key { [ U13C2, U13C9 ] }; }; // Serbian charecters added as third level symbols to US keyboard layout. partial alphanumeric_keys xkb_symbols "hbs" { include "us" name[Group1]= "Serbo-Croatian (US)"; key { [ grave, asciitilde ] }; key { [ 6, dead_caron, asciicircum, asciicircum ] }; key { [ 8, asterisk, multiply, division ] }; key { [ minus, underscore, endash, emdash ] }; key { [ l, L, U1C9, U1C8 ] }; key { [ n, N, U1CC, U1CB ] }; key { [ z, Z, U1C6, U1C5 ] }; key { [ e, E, EuroSign, cent ] }; key { [ d, D, dstroke, Dstroke ] }; key { [ dead_acute, quotedbl, apostrophe, apostrophe ] }; key { [ space, space, nobreakspace, nobreakspace ] }; key { [ comma, less, U3003, guillemotright ] }; key { [ period, greater, ellipsis, guillemotleft ] }; include "level3(ralt_switch)" }; //based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg partial alphanumeric_keys xkb_symbols "htcdream" { include "inet(htcdream)" name[Group1]= "English (US)"; //second row key { [ q, Q, Tab, Tab ] }; key { [ w, W, grave, grave ] }; key { [ e, E, underscore, underscore ] }; key { [ r, R, sterling, sterling ] }; key { [ t, T, EuroSign, EuroSign ] }; key { [ y, Y, division, division ] }; key { [ u, U, multiply, multiply ] }; key { [ i, I, minus, minus ] }; key { [ o, O, plus, plus ] }; key { [ p, P, equal, equal ] }; //third row key { [ a, A, NoSymbol, NoSymbol ] }; key { [ s, S, bar, bar ] }; key { [ d ,D, backslash, backslash ] }; key { [ f, F, braceleft, braceleft ] }; key { [ g, G, braceright, braceright ] }; key { [ h, H, colon, colon ] }; key { [ j, J, semicolon, semicolon ] }; key { [ k, K, quotedbl, quotedbl ] }; key { [ l, L, apostrophe, apostrophe ] }; //forth row key { [ z, Z, NoSymbol, NoSymbol ] }; key { [ x, X, NoSymbol, NoSymbol ] }; key { [ c, C, NoSymbol, NoSymbol ] }; key { [ v, V, bracketleft, bracketleft ] }; key { [ b, B, bracketright, bracketright ] }; key { [ n, N, less, less ] }; key { [ m, M, greater, greater ] }; key { [ comma, comma, question, question ] }; //fifth row key { [ at, at, asciitilde, asciitilde ] }; include "level3(alt_switch)" }; // Workman Keyboard Layout symbols for xkb on X.Org Server 7.x // 09-06-2010 OJ Bucao. http://www.workmanlayout.com partial alphanumeric_keys xkb_symbols "workman" { include "us(basic)" name[Group1]= "English (Workman)"; key { [ q, Q ] }; key { [ d, D ] }; key { [ r, R ] }; key { [ w, W ] }; key { [ b, B ] }; key { [ j, J ] }; key { [ f, F ] }; key { [ u, U ] }; key { [ p, P ] }; key { [ semicolon, colon ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ h, H ] }; key { [ t, T ] }; key { [ g, G ] }; key { [ y, Y ] }; key { [ n, N ] }; key { [ e, E ] }; key { [ o, O ] }; key { [ i, I ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ m, M ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ BackSpace, Escape, BackSpace, BackSpace ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "workman-intl" { include "us(intl)" name[Group1]= "English (Workman, intl., with dead keys)"; key { [ q, Q, adiaeresis, Adiaeresis ] }; key { [ d, D, eth, ETH ] }; key { [ r, R, registered, registered ] }; key { [ w, W, aring, Aring ] }; key { [ b, B, b, B ] }; key { [ j, J, j, J ] }; key { [ f, F, f, F ] }; key { [ u, U, uacute, Uacute ] }; key { [ p, P, odiaeresis, Odiaeresis ] }; key { [ semicolon, colon, paragraph, degree ] }; key { [ a, A, aacute, Aacute ] }; key { [ s, S, ssharp, section ] }; key { [ h, H, h, H ] }; key { [ t, T, thorn, THORN ] }; key { [ g, G, g, G ] }; key { [ y, Y, udiaeresis, Udiaeresis ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ e, E, eacute, Eacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ z, Z, ae, AE ] }; key { [ x, X, x, X ] }; key { [ m, M, mu, mu ] }; key { [ c, C, copyright, cent ] }; key { [ v, V, v, V ] }; key { [ k, K, oe, OE ] }; key { [ l, L, oslash, Ooblique ] }; key { [ BackSpace, Escape, BackSpace, BackSpace ] }; include "level3(ralt_switch)" }; // Norman keyboard layout symbols for xkb on X.Org Server 7.x // Written 11/23/2012, revised 3/7/2013 by David Norman http://normanlayout.info // To the extent possible under law, the author(s) have dedicated all // copyright and related and neighboring rights to this software to the // public domain worldwide. This software is distributed without any warranty. partial alphanumeric_keys xkb_symbols "norman" { include "us(basic)" name[Group1]= "English (Norman)"; key { [ q, Q ] }; key { [ w, W ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ k, K ] }; key { [ j, J ] }; key { [ u, U ] }; key { [ r, R ] }; key { [ l, L ] }; key { [ semicolon, colon ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ e, E ] }; key { [ t, T ] }; key { [ g, G ] }; key { [ y, Y ] }; key { [ n, N ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ h, H ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ p, P ] }; key { [ m, M ] }; key { [ BackSpace ] }; include "level3(ralt_switch)" }; // Carpalx layout created by Martin Krzywinski // http://mkweb.bcgsc.ca/carpalx/ partial alphanumeric_keys xkb_symbols "carpalx" { name[Group1]= "English (Carpalx)"; key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ q, Q ] }; key { [ g, G ] }; key { [ m, M ] }; key { [ l, L ] }; key { [ w, W ] }; key { [ y, Y ] }; key { [ f, F ] }; key { [ u, U ] }; key { [ b, B ] }; key { [ semicolon, colon ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ d, D ] }; key { [ s, S ] }; key { [ t, T ] }; key { [ n, N ] }; key { [ r, R ] }; key { [ i, I ] }; key { [ a, A ] }; key { [ e, E ] }; key { [ o, O ] }; key { [ h, H ] }; key { [ apostrophe, quotedbl ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ p, P ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; key { [ backslash, bar ] }; }; // Carpalx layout created by Martin Krzywinski // http://mkweb.bcgsc.ca/carpalx/ // Merged with us(intl) and modified to move // accented vowels closer to the plain vowels partial alphanumeric_keys xkb_symbols "carpalx-intl" { include "us(carpalx)" name[Group1]= "English (Carpalx, intl., with dead keys)"; key { [dead_grave, dead_tilde, grave, asciitilde ] }; key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, at, twosuperior, dead_doubleacute ] }; key { [ 3, numbersign, threesuperior, dead_macron ] }; key { [ 4, dollar, currency, sterling ] }; key { [ 5, percent, EuroSign, dead_cedilla ] }; key { [ 6, dead_circumflex, onequarter, asciicircum ] }; key { [ 7, ampersand, onehalf, dead_horn ] }; key { [ 8, asterisk, threequarters, dead_ogonek ] }; key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; key { [ minus, underscore, yen, dead_belowdot ] }; key { [ equal, plus, multiply, division ] }; key { [ q, Q, degree, paragraph ] }; key { [ g, G, U011F, U011E ] }; key { [ m, M, mu, mu ] }; key { [ l, L, copyright, cent ] }; key { [ w, W, w, W ] }; key { [ y, Y, idiaeresis, Idiaeresis ] }; key { [ f, F, adiaeresis, Adiaeresis ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ b, B, odiaeresis, Odiaeresis ] }; key { [ semicolon, colon, oslash, Ooblique ] }; key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; key { [ d, D, eth, ETH ] }; key { [ s, S, ssharp, section ] }; key { [ t, T, thorn, THORN ] }; key { [ n, N, ntilde, Ntilde ] }; key { [ r, R, registered, registered ] }; key { [ i, I, iacute, Iacute ] }; key { [ a, A, aacute, Aacute ] }; key { [ e, E, eacute, Eacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ h, H, uacute, Uacute ] }; key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; key { [ z, Z, z, Z ] }; key { [ x, X, U015F, U015E ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, ae, AE ] }; key { [ j, J, oe, OE ] }; key { [ k, K, U0131, U0130 ] }; key { [ p, P, aring, Aring ] }; key { [ comma, less, ediaeresis, Ediaeresis ] }; key { [ period, greater, dead_abovedot, dead_caron ] }; key { [ slash, question, questiondown, dead_hook ] }; key { [ backslash, bar, notsign, brokenbar ] }; key { [ backslash, bar, backslash, bar ] }; include "level3(ralt_switch)" }; // Carpalx layout created by Martin Krzywinski // http://mkweb.bcgsc.ca/carpalx/ // Merged with us(intl) and us(altgr-intl) and modified to move // accented vowels closer to the plain vowels partial alphanumeric_keys xkb_symbols "carpalx-altgr-intl" { include "us(carpalx-intl)" name[Group1]= "English (Carpalx, intl., with AltGr dead keys)"; // five dead keys moved into level3: key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] }; // diversions from the MS Intl keyboard: key { [ 1, exclam, onesuperior, exclamdown ] }; // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys: key { [ 6, asciicircum, dead_circumflex, onequarter ] }; key { [ 7, ampersand, dead_horn, onehalf ] }; key { [ 8, asterisk, dead_ogonek, threequarters ] }; include "level3(ralt_switch)" }; // Carpalx layout created by Martin Krzywinski // Full optimization variant without fixed QWERTY-like ZXCV keys // http://mkweb.bcgsc.ca/carpalx/ partial alphanumeric_keys xkb_symbols "carpalx-full" { include "us(carpalx)" name[Group1]= "English (Carpalx, full optimization)"; key { [ b, B ] }; key { [ y, Y ] }; key { [ v, V ] }; key { [ f, F ] }; }; // Carpalx layout created by Martin Krzywinski // Full optimization variant without fixed QWERTY-like ZXCV keys // http://mkweb.bcgsc.ca/carpalx/ // Merged with us(intl) and modified to move // accented vowels closer to the plain vowels partial alphanumeric_keys xkb_symbols "carpalx-full-intl" { include "us(carpalx-intl)" name[Group1]= "English (Carpalx, full optimization, intl., with dead keys)"; key { [ b, B, idiaeresis, Idiaeresis ] }; key { [ y, Y, adiaeresis, Adiaeresis ] }; key { [ v, V, odiaeresis, Odiaeresis ] }; key { [ f, F, ae, AE ] }; }; // Carpalx layout created by Martin Krzywinski // Full optimization variant without fixed QWERTY-like ZXCV keys // http://mkweb.bcgsc.ca/carpalx/ // Merged with us(intl) and us(altgr-intl) and modified to move // accented vowels closer to the plain vowels partial alphanumeric_keys xkb_symbols "carpalx-full-altgr-intl" { include "us(carpalx-altgr-intl)" name[Group1]= "English (Carpalx, full optimization, intl., with AltGr dead keys)"; key { [ b, B, idiaeresis, Idiaeresis ] }; key { [ y, Y, adiaeresis, Adiaeresis ] }; key { [ v, V, odiaeresis, Odiaeresis ] }; key { [ f, F, ae, AE ] }; }; // EXTRAS: // Czech, Slovak and German charecters added as third level symbols to US keyboard layout. partial alphanumeric_keys xkb_symbols "cz_sk_de" { include "us" name[Group1]="Czech Slovak and German (US)"; key { [grave, asciitilde, uring, Uring ] }; key { [ 1, exclam, uacute, Uacute ] }; key { [ 2, at, ecaron, Ecaron ] }; key { [ 3, numbersign, scaron, Scaron ] }; key { [ 4, dollar, ccaron, Ccaron ] }; key { [ 5, percent, rcaron, Rcaron ] }; key { [ 6, asciicircum, zcaron, Zcaron ] }; key { [ 7, ampersand, yacute, Yacute ] }; key { [ 8, asterisk, aacute, Aacute ] }; key { [ 9, parenleft, iacute, Iacute ] }; key { [ 0, parenright, eacute, Eacute ] }; key { [minus, underscore, ssharp, 0x1001E9E ] }; key { [equal, plus, dead_acute, dead_caron ] }; key { [ e, E, EuroSign, Eacute ] }; key { [bracketleft, braceleft, udiaeresis, Udiaeresis ] }; key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; key { [apostrophe, quotedbl,adiaeresis, Adiaeresis ] }; key { [ a, A, aacute, Aacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ y, Y, yacute, Yacute ] }; key { [ u, U, uring, Uring ] }; key { [ s, S, scaron, Scaron ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ c, C, ccaron, Ccaron ] }; key { [ r, R, rcaron, Rcaron ] }; key { [ t, T, tcaron, Tcaron ] }; key { [ d, D, dcaron, Dcaron ] }; key { [ n, N, ncaron, Ncaron ] }; key { [ l, L, lcaron, Lcaron ] }; key { [ p, P,ocircumflex, Ocircumflex ] }; key { [ space, space, nobreakspace, nobreakspace] }; include "level3(ralt_switch)" }; // 03 December 2017 - Added us(scn), please refer to // Cadèmia Siciliana partial alphanumeric_keys xkb_symbols "scn" { include "us(intl)" name[Group1]="Sicilian (US keyboard)"; key { [ e, E, U0259, U018F ] }; key { [ d, D, U1E0D, U1E0C ] }; key { [ f, F, U0111, U0110 ] }; key { [ h, H, U1E25, U1E24 ] }; key { [ x, X, U03C7, U03A7 ] }; key { [ period, greater, U1D58, dead_caron ] }; include "level3(ralt_switch)" }; // XCompose is out! Unicode combining is in! For those of us who live // on the edge: A keymap using Unicode combining characters instead of // deadkeys. This variation does not deviate from the lame MS-style // US-intl layout; but it uses AltGr for combining, like altgr-intl. // // This might break your font layout layout systems (because they // suck), caveat emptor. Also, most of today's software will count // individual combining marks for selection, deletion, character // counting &c., and won't be smart enough to do canonical equivalence // when searching, &c. // // With Unicode combining you use "handwriting order", not // "typewriting order" as with deadkeys. That is, you first type the // base character, then the diacritics/accents/modifiers. This has // the advantage of avoiding hidden states --- each keypress changes // something on screen. // // TODO: as of now, this duplicates all us(intl) functionality with // combining. With care, perhaps we could add more combining marks // not present in intl, and support all major languages. partial alphanumeric_keys xkb_symbols "intl-unicode" { name[Group1]= "English (US, international AltGr Unicode combining)"; include "us(intl)" include "level3(ralt_switch)" // grave, tilde key { [grave, asciitilde, U0300, U0303 ] }; // double acute key { [ 2, at, twosuperior, U030B ] }; // macron key { [ 3, numbersign, threesuperior, U0304 ] }; // circumflex key { [ 6, asciicircum, onequarter, U0302 ] }; // horn key { [ 7, ampersand, onehalf, U031B ] }; // ogonek key { [ 8, asterisk, threequarters, U0328 ] }; // breve key { [ 9, parenleft, leftsinglequotemark, U0306 ] }; // abovering key { [ 0, parenright, rightsinglequotemark, U030A ] }; // belowdot key { [ minus, underscore, yen, U0323 ] }; // acute, diaeresis key { [apostrophe, quotedbl, U0301, U0308 ] }; // abovedot, caron key { [ period, greater, U0307, U030C ] }; // hook key { [ slash, question, questiondown, U0309 ] }; // alt-intl compatibility // cedilla, caron key { [ comma, less, U0327, U030C ] }; // ogonek, diaeresis key { [ semicolon, colon, U0328, U0308 ] }; // doubleacute, horn key { [ equal, plus, U030B, U031B ] }; // we don't do combining latin letters and combining enclosures // because support for those is very rare. }; // XCompose is out! Unicode combining is in! For those of us who live // on the edge: A keymap using Unicode combining characters instead of // deadkeys. This variation does break compatibility with us-intl, // whenever I thought it would be more mnemonic or Unicodeish. partial alphanumeric_keys xkb_symbols "alt-intl-unicode" { name[Group1]= "English (US, international AltGr Unicode combining, alternative)"; include "us(intl-unicode)" // easier macron; em-dash. // em-dash is available via compose, but I added here since it's such // an important typographic character. key { [ minus, underscore, U0304, U2014 ] }; // belowdot, abovedot (caron at coma/less key, per above) key { [ period, greater, U0323, U0307 ] }; }; partial alphanumeric_keys xkb_symbols "ats" { include "us" name[Group1]= "Atsina"; //Using Dead key to get COMBINING COMMA ABOVE for ejectives on //q, l, t, s, m, g, k, p, w, y, r //XCompose key is used for the other accute and grave. key { [ e, E, eacute, Eacute ] }; key { [ u, U, uacute, Uacute ] }; key { [ i, I, iacute, Iacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ bracketleft, braceleft, U03B8 ] }; key { [ bracketright, braceright, U010D, U010C ] }; //U+010C (uppercase Č) and U+010D (lowercase č). key { [ a, A, aacute, Aacute ] }; //Small letter Open use compose to key get acute accent key { [ c, C, U0254, U0186 ] }; key { [ comma, less, U0313 ] }; key { [ slash, question, U0294 ] }; include "level3(ralt_switch)" include "compose(rctrl)" }; partial alphanumeric_keys xkb_symbols "crd" { include "us" name[Group1]= "Coeur d'Alene Salish"; key { [ w, W, U02B7, U02B7 ] }; key { [ 7, ampersand, U0294 ] }; key { [ q, Q, U221A ] }; key { [ v, V, U0259 ] }; key { [ backslash, bar, U026B ] }; key { [ e, E, U025B ] }; key { [ i, I, U026A ] }; key { [ j, J, U01F0 ] }; key { [ 6, asciicircum, U0295 ] }; key { [ s, S, U0161 ] }; key { [ c, C, U010D ] }; key { [ o, O, U0254 ] }; key { [ period, greater, U0323 ] }; include "level3(ralt_switch)" include "compose(rctrl)" }; partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/us(sun_type6)" }; // Implementation of the 3l keyboard layout // See https://github.com/jackrosenthal/threelayout for specification partial alphanumeric_keys modifier_keys xkb_symbols "3l" { name[Group1] = "English (3l)"; key.type[Group1] = "ONE_LEVEL"; key { [ Escape ] }; key { [ Tab ] }; key { [ ISO_Level3_Shift ] }; // Sym Modifier key { [ ISO_Level5_Shift ] }; // Cur/Num Modifier // Top row numbers - not part of spec, but given for convenience key { [ 1 ] }; key { [ 2 ] }; key { [ 3 ] }; key { [ 4 ] }; key { [ 5 ] }; key { [ 6 ] }; key { [ 7 ] }; key { [ 8 ] }; key { [ 9 ] }; key { [ 0 ] }; // Main keys // Order of mods (defined by EIGHT_LEVEL_SEMIALPHABETIC) is: // [ None, Shift, Sym, Shift+Sym, Num, Shift+Num, Sym+Num, Shift+Sym+Num ] key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; // Second row key { [ q, Q, quotedbl, Greek_omicron, Prior, Prior, U21CD, Greek_OMICRON ] }; key { [ f, F, underscore, Greek_phi, BackSpace, BackSpace, U21A4, Greek_PHI ] }; key { [ u, U, bracketleft, Greek_upsilon, Up, Up, U2191, Greek_UPSILON ] }; key { [ y, Y, bracketright, Greek_psi, Delete, Delete, U21A6, Greek_PSI ] }; key { [ z, Z, asciicircum, Greek_zeta, Next, Next, U21CF, Greek_ZETA ] }; key { [ x, X, exclam, Greek_xi, NoSymbol, NoSymbol, U2260, Greek_XI ] }; key { [ k, K, less, Greek_kappa, 1, A, U2A7D, Greek_KAPPA ] }; key { [ c, C, greater, Greek_chi, 2, B, U2A7E, Greek_CHI ] }; key { [ w, W, equal, Greek_omega, 3, C, U2261, Greek_OMEGA ] }; key { [ b, B, ampersand, Greek_beta, NoSymbol, NoSymbol, U2248, Greek_BETA ] }; // Home row key { [ o, O, slash, Greek_omega, Home, Home, U21D0, Greek_OMEGA ] }; key { [ h, H, minus, Greek_theta, Left, Left, U2190, Greek_THETA ] }; key { [ e, E, braceleft, Greek_epsilon, Down, Down, U2193, Greek_EPSILON ] }; key { [ a, A, braceright, Greek_alpha, Right, Right, U2192, Greek_ALPHA ] }; key { [ i, I, asterisk, Greek_iota, End, End, U21D2, Greek_IOTA ] }; key { [ d, D, question, Greek_delta, period, colon, U2286, Greek_DELTA ] }; key { [ r, R, parenleft, Greek_rho, 4, D, U2227, Greek_RHO ] }; key { [ t, T, parenright, Greek_tau, 5, E, U2228, Greek_TAU ] }; key { [ n, N, apostrophe, Greek_eta, 6, F, U2200, Greek_ETA ] }; key { [ s, S, colon, Greek_sigma, NoSymbol, NoSymbol, U2203, Greek_SIGMA ] }; // Bottom row key { [ comma, comma, numbersign, NoSymbol, slash, NoSymbol, U21AE, NoSymbol ] }; key { [ m, M, dollar, Greek_mu, asterisk, NoSymbol, U2194, Greek_MU ] }; key { [ period, period, bar, NoSymbol, minus, NoSymbol, U21CE, NoSymbol ] }; key { [ j, J, asciitilde, Greek_SIGMA, plus, NoSymbol, U21D4, NoSymbol ] }; key { [ semicolon, semicolon, grave, NoSymbol, comma, NoSymbol, U2282, NoSymbol ] }; key { [ g, G, plus, Greek_gamma, 0, NoSymbol, U2229, Greek_GAMMA ] }; key { [ l, L, percent, Greek_lambda, 7, parenleft, U222A, Greek_LAMBDA ] }; key { [ p, P, backslash, Greek_pi, 8, parenright, U2208, Greek_PI ] }; key { [ v, V, at, Greek_nu, 9, NoSymbol, U2209, Greek_NU ] }; include "level5(modifier_mapping)" }; // Chromebooks typically have the key which is normally in the caps // lock position mapped to keycode 133 (LWIN). For 3l, it is critical // that the key in this positon correspond to tab, so there is a // variant available for chromebook hardware. partial modifier_keys xkb_symbols "3l-cros" { include "us(3l)" name[Group1] = "English (3l, chromebook)"; key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Tab ] }; }; PK(f[]Q5BB symbols/ltnu[// Separate keymaps merged into one file by Nerijus Baliūnas, 2002 // Lithuanian Numeric layout - Lithuanian letters on the numeric row // based on Lithuanian keyboard map by Ričardas Čepas // 3rd and 4th levels added by Mantas Kriaučiūnas , 2004 // Minor modifications and cleanup by Rimas Kudelis , 2010 // // If you want two layouts, use: // Option "XkbLayout" "lt,lt(us)" default partial alphanumeric_keys modifier_keys xkb_symbols "basic" { include "latin" include "eurosign(e)" include "level3(ralt_switch)" name[Group1]="Lithuanian"; key {[ grave, asciitilde, acute ]}; key {[ aogonek, Aogonek, 1, exclam ]}; key {[ ccaron, Ccaron, 2, at ]}; key {[ eogonek, Eogonek, 3, numbersign ]}; key {[ eabovedot, Eabovedot, 4, dollar ]}; key {[ iogonek, Iogonek, 5, percent ]}; key {[ scaron, Scaron, 6, asciicircum ]}; key {[ uogonek, Uogonek, 7, ampersand ]}; key {[ umacron, Umacron, 8, asterisk ]}; key {[ doublelowquotemark, parenleft, 9, parenleft ]}; key {[ leftdoublequotemark, parenright, 0, parenright ]}; key {[ minus, underscore, endash ]}; key {[ zcaron, Zcaron, equal, plus ]}; key {[ endash, EuroSign ]}; }; // Similar to the above, but uses 3rd and 4th levels in the numeric row // for Lithuanian letters partial alphanumeric_keys modifier_keys xkb_symbols "us" { include "latin" include "eurosign(e)" include "level3(ralt_switch)" name[Group1]="Lithuanian (US, with Lithuanian letters)"; key {[ grave, asciitilde, acute ]}; key {[ 1, exclam, aogonek, Aogonek ]}; key {[ 2, at, ccaron, Ccaron ]}; key {[ 3, numbersign, eogonek, Eogonek ]}; key {[ 4, dollar, eabovedot, Eabovedot ]}; key {[ 5, percent, iogonek, Iogonek ]}; key {[ 6, asciicircum, scaron, Scaron ]}; key {[ 7, ampersand, uogonek, Uogonek ]}; key {[ 8, asterisk, umacron, Umacron ]}; key {[ 9, parenleft, doublelowquotemark, parenleft ]}; key {[ 0, parenright, leftdoublequotemark, parenright ]}; key {[ minus, underscore, endash ]}; key {[ equal, plus, zcaron, Zcaron ]}; key {[ endash, EuroSign ]}; }; // Lithuanian keymap LST 1582:2000 // The standard is described at http://ims.mii.lt/klav/ // Extensions: B01 L3 is "<" , B02 L3 is ">" and B03 L3 is endash to make this // layout usable with pc101 and pc104 keyboards. // // Made by Gediminas Paulauskas // Minor modifications by Ričardas Čepas and Rimas Kudelis partial alphanumeric_keys modifier_keys xkb_symbols "std" { include "latin" include "eurosign(e)" include "nbsp(level3)" include "kpdl(comma)" include "level3(ralt_switch)" name[Group1]="Lithuanian (standard)"; key {[ grave, asciitilde, acute ]}; key {[ exclam, 1, at ]}; key {[ minus, 2, underscore ]}; key {[ slash, 3, numbersign ]}; key {[ semicolon, 4, dollar ]}; key {[ colon, 5, section ]}; key {[ comma, 6, asciicircum ]}; key {[ period, 7, ampersand ]}; key {[ equal, 8, asterisk ]}; key {[ parenleft, 9, bracketleft ]}; key {[ parenright, 0, bracketright ]}; key {[ question, plus, apostrophe ]}; key {[ x, X, percent ]}; key {[ aogonek, Aogonek ]}; key {[ zcaron, Zcaron ]}; key {[ iogonek, Iogonek, braceleft ]}; key {[ w, W, braceright ]}; key {[ scaron, Scaron ]}; key {[ uogonek, Uogonek ]}; key {[ eabovedot, Eabovedot, quotedbl ]}; key {[ q, Q, bar ]}; key {[ less, greater, endash ]}; key {[ z, Z, less ]}; key {[ umacron, Umacron, greater ]}; key {[ c, C, endash ]}; key {[ ccaron, Ccaron, doublelowquotemark ]}; key {[ f, F, leftdoublequotemark ]}; key {[ eogonek, Eogonek, backslash ]}; }; // Lithuanian keymap LST 1205-92 // This standard was made deprecated by LST 1582:2000 above. // This keyboard is also know as IBM layout. // We follow the map shown at: http://www.registrucentras.lt/litwin/kbdlta.gif // and info from Edis Tamošauskas // // Made by Piter PUNK // Minor modifications and cleanup by Rimas Kudelis, 2010 partial alphanumeric_keys modifier_keys xkb_symbols "ibm" { include "latin" include "eurosign(e)" include "nbsp(level3)" include "level3(ralt_switch)" name[Group1]="Lithuanian (IBM LST 1205-92)"; key {[ grave, asciitilde, acute ]}; key {[ exclam, 1 ]}; key {[ quotedbl, 2, at ]}; key {[ slash, 3, numbersign ]}; key {[ semicolon, 4, dollar ]}; key {[ colon, 5, percent ]}; key {[ comma, 6, asciicircum ]}; key {[ period, 7, ampersand ]}; key {[ question, 8, asterisk ]}; key {[ parenleft, 9 ]}; key {[ parenright, 0 ]}; key {[ underscore, minus, endash ]}; key {[ plus, equal ]}; key {[ aogonek, Aogonek, q, Q ]}; key {[ zcaron, Zcaron, w, W ]}; key {[ iogonek, Iogonek, bracketleft, braceleft ]}; key {[ doublelowquotemark, leftdoublequotemark, bracketright, braceright ]}; key {[ uogonek, Uogonek, semicolon, colon ]}; key {[ eabovedot, Eabovedot, apostrophe, quotedbl ]}; key {[ less, greater, endash ]}; key {[ umacron, Umacron, x, X ]}; key {[ ccaron, Ccaron, comma, less ]}; key {[ scaron, Scaron, period, greater ]}; key {[ eogonek, Eogonek, slash, question ]}; }; // LEKP and LEKPa layouts 1.0 // For more info visit http://lekp.info // Created by Tautrimas Pajarskas, 2007 // Made by Ernestas Lukoševičius, 2007 // Minor cleanup by Rimas Kudelis, 2010 partial alphanumeric_keys modifier_keys xkb_symbols "lekp" { include "capslock(backspace)" include "level3(ralt_switch)" name[Group1]="Lithuanian (LEKP)"; key {[ grave, asciitilde, acute ]}; key {[ slash, numbersign, bar ]}; key {[ backslash, at, section ]}; key {[ period, braceleft ]}; key {[ comma, braceright ]}; key {[ f, F ]}; key {[ exclam, endash ]}; key {[ w, W ]}; key {[ uogonek, Uogonek ]}; key {[ iogonek, Iogonek ]}; key {[ parenleft, doublelowquotemark, registered ]}; key {[ parenright, leftdoublequotemark, copyright ]}; key {[ colon, ampersand, trademark ]}; key {[ q, Q, EuroSign ]}; key {[ g, G, 7 ]}; key {[ r, R, 8 ]}; key {[ l, L, 9 ]}; key {[ d, D, percent ]}; key {[ ccaron, Ccaron ]}; key {[ j, J ]}; key {[ u, U, period ]}; key {[ eabovedot, Eabovedot, minus ]}; key {[ eogonek, Eogonek, slash ]}; key {[ question, bracketleft, division ]}; key {[ equal, bracketright ]}; key {[ a, A, 0 ]}; key {[ k, K, 4 ]}; key {[ s, S, 5 ]}; key {[ t, T, 6 ]}; key {[ m, M, dollar ]}; key {[ p, P ]}; key {[ n, N ]}; key {[ e, E, comma ]}; key {[ i, I, plus ]}; key {[ o, O, asterisk ]}; key {[ y, Y, multiply ]}; key {[ apostrophe, underscore ]}; key {[ semicolon, quotedbl, sterling ]}; key {[ z, Z, asciicircum ]}; key {[ x, X, 1 ]}; key {[ c, C, 2 ]}; key {[ v, V, 3 ]}; key {[ zcaron, Zcaron ]}; key {[ scaron, Scaron ]}; key {[ b, B, degree ]}; key {[ umacron, Umacron, less ]}; key {[ aogonek, Aogonek, greater ]}; key {[ h, H ]}; }; partial alphanumeric_keys modifier_keys xkb_symbols "lekpa" { include "capslock(backspace)" include "level3(ralt_switch)" name[Group1]="Lithuanian (LEKPa)"; key {[ grave, asciitilde, acute ]}; key {[ slash, quotedbl, bar ]}; key {[ backslash, at, section ]}; key {[ period, braceleft, numbersign ]}; key {[ comma, braceright, sterling ]}; key {[ f, F, ampersand ]}; key {[ exclam, endash ]}; key {[ w, W ]}; key {[ uogonek, Uogonek ]}; key {[ iogonek, Iogonek ]}; key {[ parenleft, doublelowquotemark, registered ]}; key {[ parenright, leftdoublequotemark, copyright ]}; key {[ colon, semicolon, trademark ]}; key {[ q, Q, EuroSign ]}; key {[ g, G, 7 ]}; key {[ r, R, 8 ]}; key {[ l, L, 9 ]}; key {[ d, D, percent ]}; key {[ ccaron, Ccaron ]}; key {[ j, J ]}; key {[ u, U, period ]}; key {[ eabovedot, Eabovedot, minus ]}; key {[ eogonek, Eogonek, slash ]}; key {[ question, bracketleft, division ]}; key {[ equal, bracketright ]}; key {[ a, A, 0 ]}; key {[ k, K, 4 ]}; key {[ s, S, 5 ]}; key {[ t, T, 6 ]}; key {[ m, M, dollar ]}; key {[ p, P ]}; key {[ n, N ]}; key {[ e, E, comma ]}; key {[ i, I, plus ]}; key {[ o, O, asterisk ]}; key {[ y, Y, multiply ]}; key {[ apostrophe, underscore ]}; key {[ z, Z, asciicircum ]}; key {[ x, X, 1 ]}; key {[ c, C, 2 ]}; key {[ v, V, 3 ]}; key {[ zcaron, Zcaron ]}; key {[ scaron, Scaron ]}; key {[ b, B, degree ]}; key {[ umacron, Umacron, less ]}; key {[ aogonek, Aogonek, greater ]}; key {[ h, H ]}; }; // EXTRAS: partial alphanumeric_keys modifier_keys xkb_symbols "us_dvorak" { include "us(dvorak)" name[Group1]="Lithuanian (US Dvorak with Lithuanian letters)"; key { [ 1, exclam, aogonek, Aogonek ] }; key { [ 2, at, ccaron, Ccaron ] }; key { [ 3, numbersign, eogonek, Eogonek ] }; key { [ 4, dollar, eabovedot, Eabovedot ] }; key { [ 5, percent, iogonek, Iogonek ] }; key { [ 6, asciicircum, scaron, Scaron ] }; key { [ 7, ampersand, uogonek, Uogonek ] }; key { [ 8, asterisk, umacron, Umacron ] }; key { [ 9, parenleft, doublelowquotemark, parenleft ] }; key { [ 0, parenright, leftdoublequotemark,parenright ] }; key { [ equal, plus, zcaron, Zcaron ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/lt(sun_type6)" }; PK(f[u symbols/uznu[// Uzbek standard keyboard // // Mashrab Kuvatov // // History: // // Jun 2, 2003. Mashrab Kuvatov // // Created based on the Russian standard keyboard. AEN // The following symbols of the Russian standard keyboard were replaced: // minus (key ) with Byelorussian_shortu (U045e), // equal (key ) with Cyrillic_ka_descender (U049b), // Cyrillic_ha (key ) with Cyrillic_ghe_bar (U0493), // Cyrillic_hardsign (key ) with Cyrillic_ha_descender (U04b3). // The following symbols of the Russian standard keyboard were moved: // Cyrillic_ze to key (English 's'), // Cyrillic_sha to key (English 'i'), // Cyrillic_ha to key (English 'o'), // Cyrillic_hardsign to key (English 'p'). // // Feb 25, 2007. Mashrab Kuvatov // // Made cyrillic and latin variants. Default is cyrillic. // Cyrillic variant is standard compliant. The standard // was accepted by the official body of Uzbekistan. See // http://www.uznet.net/index.php?option=com_content&task=view&id=288&Itemid=58 // // Latin variant is somewhat experimental, since there is no // official standard for it. It is a copy of "us" layout, where // apostrophe is replaced with U02BB. default partial alphanumeric_keys xkb_symbols "cyrillic" { name[Group1]= "Uzbek"; key { [ 1, exclam ] }; key { [ 2, quotedbl ] }; key { [ 3, numerosign ] }; key { [ 4, semicolon ] }; key { [ 5, percent ] }; key { [ 6, colon ] }; key { [ 7, question ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ backslash, bar ] }; key { [ period, comma ] }; key { [ slash, bar ] }; key.type[group1]="ALPHABETIC"; key { [Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; key { [Cyrillic_ha_descender, Cyrillic_HA_descender ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Byelorussian_shortu, Byelorussian_SHORTU ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [Cyrillic_ka_descender, Cyrillic_KA_descender ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; }; partial alphanumeric_keys xkb_symbols "latin" { include "us" name[Group1]= "Uzbek (Latin)"; key { [0x010002BB, quotedbl] }; }; PK(f[E?symbols/parensnu[// swap parentheses and square brackets partial default xkb_symbols "swap_brackets" { replace key { [ 9, bracketleft ] }; replace key { [ 0, bracketright ] }; replace key { [ parenleft, braceleft ] }; replace key { [ parenright, braceright ] }; }; PK(f[+C__symbols/jolla_vndr/sbjnu[// Instructions // // 1. Set basic layout by: // setxkbmap -rules evdev -model jollasbj -layout cz // // 2. Set variant by: // setxkbmap -rules evdev -model jollasbj -layout cz -variant qwerty // In practice this is equivalent to: // setxkbmap -rules evdev -model jollasbj -layout cz_qwerty // However, the latter form isn't portable so always use the -variant option. // // 3. Set multilayout by: // setxkbmap -rules evdev -model jollasbj -layout "us,cz" -variant ",qwerty" -option grp:ctrl_shift_toggle // This sets the basic us layout active. You can switch to qwerty // variant of cz layout by pressing ctrl+shift. // // Pitfalls // // 1. Many to one mappings // // Higher level input method components don't necessarily handle many to // one mappings correctly. They may assume that there exists only a one // to one mapping between a hardware key and a symbol. Therefore you // should take care not to introduce many to one mappings for keys that // are going to be reverse mapped from a symbol to a hardware key. // // Currently at least the modifier keys are affected. Clients may set // states, such as autorepeat, for hardware keys by reverse mapping a // modifier symbol to a hardware key and then setting the state for the // first hardware key that maps to the symbol. The correct way would be // to modify the state of all hardware keys mapping to a given symbol. // // We are nice and keep the mappings one to one for clients that don't // choose to handle many to one mappings. default partial alphanumeric_keys xkb_symbols "common" { include "pc(pc105)" include "jolla_vndr/sbj(common-keys)" // This section should not be included by any other section. It's // referenced only once by rule file to allow multiple layout // configurations. }; partial hidden alphanumeric_keys xkb_symbols "common-keys" { // These keycodes are beyond the X11 255 limit value so it would // only be valid for the use with SW which supports extended keycodes, // like xkbcommon. // generated from the headset, must always be in the map. key { [ XF86Phone ] }; }; PK(f[ symbols/banu[default partial alphanumeric_keys xkb_symbols "basic" { include "rs(latin)" name[Group1]="Bosnian"; }; partial alphanumeric_keys xkb_symbols "us" { include "rs(latinyz)" name[Group1]= "Bosnian (US, with Bosnian letters)"; }; partial alphanumeric_keys xkb_symbols "alternatequotes" { include "rs(latinalternatequotes)" name[Group1]= "Bosnian (with guillemets)"; }; partial alphanumeric_keys xkb_symbols "unicode" { include "rs(latinunicode)" name[Group1]= "Bosnian (with Bosnian digraphs)"; }; partial alphanumeric_keys xkb_symbols "unicodeus" { include "rs(latinunicodeyz)" name[Group1]= "Bosnian (US, with Bosnian digraphs)"; }; PK(f[`6 symbols/iqnu[// Iraque keyboard layout, // 3-Level layout default partial alphanumeric_keys xkb_symbols "basic" { include "ara(basic)" name[Group1]= "Iraqi"; }; partial alphanumeric_keys xkb_symbols "ku" { include "tr(ku)" name[Group1]= "Kurdish (Iraq, Latin Q)"; }; partial alphanumeric_keys xkb_symbols "ku_f" { include "tr(ku_f)" name[Group1]= "Kurdish (Iraq, F)"; }; partial alphanumeric_keys xkb_symbols "ku_alt" { include "tr(ku_alt)" name[Group1]= "Kurdish (Iraq, Latin Alt-Q)"; }; partial alphanumeric_keys xkb_symbols "ku_ara" { include "ir(ku_ara)" name[Group1]= "Kurdish (Iraq, Arabic-Latin)"; }; PK(f[~Z symbols/brainu[// 10-dot patterns on the home row + v and n default partial alphanumeric_keys xkb_symbols "home_row" { include "brai(keypad)" name[Group1]="Braille"; key { [ braille_dot_1 ] }; key { [ braille_dot_2 ] }; key { [ braille_dot_3 ] }; key { [ braille_dot_4 ] }; key { [ braille_dot_5 ] }; key { [ braille_dot_6 ] }; key { [ braille_dot_7 ] }; key { [ braille_dot_8 ] }; key { [ braille_dot_9 ] }; key { [ braille_dot_10 ] }; }; // 6-dot patterns for the left hand partial alphanumeric_keys xkb_symbols "left_hand" { include "brai(keypad_left)" name[Group1]="Braille (left-handed)"; key { [ braille_dot_1 ] }; key { [ braille_dot_2 ] }; key { [ braille_dot_3 ] }; key { [ braille_dot_4 ] }; key { [ braille_dot_5 ] }; key { [ braille_dot_6 ] }; }; // 6-dot patterns for the left hand partial alphanumeric_keys xkb_symbols "left_hand_invert" { include "brai(left_hand)" name[Group1]="Braille (left-handed inverted thumb)"; key { [ braille_dot_5 ] }; key { [ braille_dot_6 ] }; }; // 6-dot patterns for the right hand partial alphanumeric_keys xkb_symbols "right_hand" { include "brai(keypad)" name[Group1]="Braille (right-handed)"; key { [ braille_dot_1 ] }; key { [ braille_dot_2 ] }; key { [ braille_dot_3 ] }; key { [ braille_dot_4 ] }; key { [ braille_dot_5 ] }; key { [ braille_dot_6 ] }; }; // 6-dot patterns for the right hand partial alphanumeric_keys xkb_symbols "right_hand_invert" { include "brai(right_hand)" name[Group1]="Braille (right-handed inverted thumb)"; key { [ braille_dot_2 ] }; key { [ braille_dot_3 ] }; }; // 6-dot patterns on the keypad hidden partial keypad_keys xkb_symbols "keypad" { key { [ braille_dot_1 ] }; key { [ braille_dot_2 ] }; key { [ braille_dot_3 ] }; key { [ braille_dot_4 ] }; key { [ braille_dot_5 ] }; key { [ braille_dot_6 ] }; }; // 6-dot patterns on the keypad with left hand hidden partial keypad_keys xkb_symbols "keypad_left" { key { [ braille_dot_1 ] }; key { [ braille_dot_2 ] }; key { [ braille_dot_3 ] }; key { [ braille_dot_4 ] }; key { [ braille_dot_5 ] }; key { [ braille_dot_6 ] }; }; PK(f[m@ @ symbols/mvnu[// Keymap for Thaana/Dhivehi script (Dhivehi language). default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]="Dhivehi"; key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ 0x10007B0, 0x10007A4 ] }; key { [ 0x1000787, 0x10007A2 ] }; key { [ 0x10007AC, 0x10007AD ] }; key { [ 0x1000783, 0x100079C ] }; key { [ 0x100078C, 0x1000793 ] }; key { [ 0x1000794, 0x10007A0 ] }; key { [ 0x10007AA, 0x10007AB ] }; key { [ 0x10007A8, 0x10007A9 ] }; key { [ 0x10007AE, 0x10007AF ] }; key { [ 0x1000795, division ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ 0x10007A6, 0x10007A7 ] }; key { [ 0x1000790, 0x1000781 ] }; key { [ 0x100078B, 0x1000791 ] }; key { [ 0x100078A, 0x100fdf2 ] }; key { [ 0x100078E, 0x10007A3 ] }; key { [ 0x1000780, 0x1000799 ] }; key { [ 0x1000796, 0x100079B ] }; key { [ 0x1000786, 0x100079A ] }; key { [ 0x100078D, 0x1000785 ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ backslash, bar ] }; key { [ bar, brokenbar ] }; key { [ 0x1000792, 0x10007A1 ] }; key { [ multiply, 0x1000798 ] }; key { [ 0x1000797, 0x100079D ] }; key { [ 0x1000788, 0x10007A5 ] }; key { [ 0x1000784, 0x100079E ] }; key { [ 0x1000782, 0x100078F ] }; key { [ 0x1000789, 0x100079F ] }; key { [ Arabic_comma, less ] }; key { [ period, greater ] }; key { [ slash, Arabic_question_mark ] }; modifier_map Shift { Shift_L }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L }; modifier_map Mod3 { Mode_switch }; }; // Any additional keys (if need be added) should appear and function exactly as it does on the US_en keyboard. PK(f[ޤ-9-9 symbols/latinnu[// Common Latin alphabet layout default partial xkb_symbols "basic" { key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, at, twosuperior, oneeighth ] }; key { [ 3, numbersign, threesuperior, sterling ] }; key { [ 4, dollar, onequarter, dollar ] }; key { [ 5, percent, onehalf, threeeighths ] }; key { [ 6, asciicircum, threequarters, fiveeighths ] }; key { [ 7, ampersand, braceleft, seveneighths ] }; key { [ 8, asterisk, bracketleft, trademark ] }; key { [ 9, parenleft, bracketright, plusminus ] }; key { [ 0, parenright, braceright, degree ] }; key { [ minus, underscore, backslash, questiondown ] }; key { [ equal, plus, dead_cedilla, dead_ogonek ] }; key { [ q, Q, at, Greek_OMEGA ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ e, E, e, E ] }; key { [ r, R, paragraph, registered ] }; key { [ t, T, tslash, Tslash ] }; key { [ y, Y, leftarrow, yen ] }; key { [ u, U, downarrow, uparrow ] }; key { [ i, I, rightarrow, idotless ] }; key { [ o, O, oslash, Ooblique ] }; key { [ p, P, thorn, THORN ] }; key { [bracketleft, braceleft, dead_diaeresis, dead_abovering ] }; key { [bracketright, braceright, dead_tilde, dead_macron ] }; key { [ a, A, ae, AE ] }; key { [ s, S, ssharp, section ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, dstroke, ordfeminine ] }; key { [ g, G, eng, ENG ] }; key { [ h, H, hstroke, Hstroke ] }; key { [ j, J, dead_hook, dead_horn ] }; key { [ k, K, kra, ampersand ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ semicolon, colon, dead_acute, dead_doubleacute ] }; key { [apostrophe, quotedbl, dead_circumflex, dead_caron ] }; key { [ grave, asciitilde, notsign, notsign ] }; key { [ backslash, bar, dead_grave, dead_breve ] }; key { [ z, Z, guillemotleft, less ] }; key { [ x, X, guillemotright, greater ] }; key { [ c, C, cent, copyright ] }; key { [ v, V, leftdoublequotemark, leftsinglequotemark ] }; key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; key { [ n, N, n, N ] }; key { [ m, M, mu, masculine ] }; key { [ comma, less, horizconnector, multiply ] }; key { [ period, greater, periodcentered, division ] }; key { [ slash, question, dead_belowdot, dead_abovedot ] }; }; // Northern Europe ( Danish, Finnish, Norwegian, Swedish) common layout partial xkb_symbols "type2" { include "latin" key { [ 1, exclam, exclamdown, onesuperior ] }; key { [ 2, quotedbl, at, twosuperior ] }; key { [ 3, numbersign, sterling, threesuperior] }; key { [ 4, currency, dollar, onequarter ] }; key { [ 5, percent, onehalf, cent ] }; key { [ 6, ampersand, yen, fiveeighths ] }; key { [ 7, slash, braceleft, division ] }; key { [ 8, parenleft, bracketleft, guillemotleft] }; key { [ 9, parenright, bracketright, guillemotright] }; key { [ 0, equal, braceright, degree ] }; key { [ e, E, EuroSign, cent ] }; key { [ r, R, registered, registered ] }; key { [ t, T, thorn, THORN ] }; key { [ o, O, oe, OE ] }; key { [ aring, Aring, dead_diaeresis, dead_abovering ] }; key { [dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] }; key { [ a, A, ordfeminine, masculine ] }; key { [ c, C, copyright, copyright ] }; key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; key { [ period, colon, periodcentered, dead_abovedot ] }; key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; }; // Slavic Latin ( Albanian, Croatian, Polish, Slovene, Yugoslav) // common layout partial xkb_symbols "type3" { include "latin" key { [ q, Q, backslash, Greek_OMEGA ] }; key { [ w, W, bar, Lstroke ] }; key { [ z, Z, leftarrow, yen ] }; key { [ f, F, bracketleft, ordfeminine ] }; key { [ g, G, bracketright, ENG ] }; key { [ k, K, lstroke, ampersand ] }; key { [ y, Y, guillemotleft, less ] }; key { [ v, V, at, grave ] }; key { [ b, B, braceleft, apostrophe ] }; key { [ n, N, braceright, braceright ] }; key { [ m, M, section, masculine ] }; key { [ comma, semicolon, less, multiply ] }; key { [ period, colon, greater, division ] }; }; // Another common Latin layout // (German, Estonian, Spanish, Icelandic, Italian, Latin American, Portuguese) partial xkb_symbols "type4" { include "latin" key { [ 2, quotedbl, at, oneeighth ] }; key { [ 6, ampersand, notsign, fiveeighths ] }; key { [ 7, slash, braceleft, seveneighths ] }; key { [ 8, parenleft, bracketleft, trademark ] }; key { [ 9, parenright, bracketright, plusminus ] }; key { [ 0, equal, braceright, degree ] }; key { [ e, E, EuroSign, cent ] }; key { [ comma, semicolon, horizconnector, multiply ] }; key { [ period, colon, periodcentered, division ] }; key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; }; partial xkb_symbols "nodeadkeys" { key { [ equal, plus, cedilla, ogonek ] }; key { [bracketleft, braceleft, diaeresis, degree ] }; key { [bracketright, braceright, asciitilde, macron ] }; key { [ semicolon, colon, acute, doubleacute ] }; key { [apostrophe, quotedbl, asciicircum, caron ] }; key { [ backslash, bar, grave, breve ] }; key { [ slash, question, dead_belowdot, abovedot ] }; }; partial xkb_symbols "type2_nodeadkeys" { include "latin(nodeadkeys)" key { [ aring, Aring, diaeresis, degree ] }; key { [ diaeresis, asciicircum, asciitilde, caron ] }; key { [ comma, semicolon, cedilla, ogonek ] }; key { [ period, colon, periodcentered, abovedot ] }; key { [ minus, underscore, dead_belowdot, abovedot ] }; }; partial xkb_symbols "type3_nodeadkeys" { include "latin(nodeadkeys)" }; partial xkb_symbols "type4_nodeadkeys" { include "latin(nodeadkeys)" key { [ minus, underscore, dead_belowdot, abovedot ] }; }; // Added 2008.03.05 by Marcin Woliński // See http://marcinwolinski.pl/keyboard/ for a description. // Used by pl(intl) // // ┌─────┐ // │ 2 4 │ 2 = Shift, 4 = Level3 + Shift // │ 1 3 │ 1 = Normal, 3 = Level3 // └─────┘ // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ̇ │ ( ̣ │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back- ┃ // │ ` ` │ 1 ¡ │ 2 © │ 3 • │ 4 § │ 5 € │ 6 ¢ │ 7 − │ 8 × │ 9 ÷ │ 0 ° │ - – │ = — ┃ space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { « │ } » ┃ Enter ┃ // ┃Tab ↹ ┃ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ ‹ │ ] › ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ A │ S │ D │ F │ G │ H │ J │ K │ L │ : “ │ " ” │ | ¶ ┃ ┃ // ┃Caps ⇬ ┃ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; ‘ │ ' ’ │ \ ┃ ┃ // ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ │ Z │ X │ C │ V │ B │ N │ M │ < „ │ > · │ ? ¿ ┃ ┃ // ┃Shift ⇧ │ z │ x │ c │ v │ b │ n │ m │ , ‚ │ . … │ / ⁄ ┃Shift ⇧ ┃ // ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Space ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ partial xkb_symbols "intl" { key { [ grave, asciitilde, dead_grave, dead_tilde ] }; key { [ 1, exclam, exclamdown, dead_acute ] }; key { [ 2, at, copyright, dead_diaeresis ] }; key { [ 3, numbersign, U2022, dead_doubleacute ] }; // U+2022 is bullet (the name bullet does not work) key { [ 4, dollar, section, dead_cedilla ] }; key { [ 5, percent, EuroSign, dead_caron ] }; key { [ 6, asciicircum, cent, dead_circumflex ] }; key { [ 7, ampersand, U2212, dead_breve ] }; // U+2212 is MINUS SIGN key { [ 8, asterisk, multiply, dead_abovedot ] }; key { [ 9, parenleft, division, dead_belowdot ] }; key { [ 0, parenright, degree, dead_abovering ] }; key { [ minus, underscore, endash, dead_macron ] }; key { [ equal, plus, emdash, dead_ogonek ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [bracketleft, braceleft, U2039, guillemotleft ] }; key { [bracketright, braceright, U203A, guillemotright ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon, leftsinglequotemark, leftdoublequotemark ] }; key { [apostrophe, quotedbl, rightsinglequotemark, rightdoublequotemark ] }; key { [ backslash, bar, NoSymbol, paragraph ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, less, singlelowquotemark, doublelowquotemark ] }; key { [ period, greater, ellipsis, periodcentered ] }; key { [ slash, question, U2044, questiondown ] }; // U+2044 is FRACTION SLASH }; PK(f[XoRR symbols/maonu[default partial alphanumeric_keys xkb_symbols "basic" { // Adds the macrons needed for the Maori language to // a simple US keyboard layout. include "latin" name[Group1]="Maori"; key { [ a, A, amacron, Amacron ] }; key { [ e, E, emacron, Emacron ] }; key { [ i, I, imacron, Imacron ] }; key { [ o, O, omacron, Omacron ] }; key { [ u, U, umacron, Umacron ] }; key { type[Group1]="TWO_LEVEL", [ ISO_Level3_Shift, Multi_key ] }; modifier_map Mod5 { }; }; PK(f[symbols/nec_vndr/jpnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // // symbols for a NEC PC98 keyboard default xkb_symbols "pc98" { key { [ Escape ] }; // Alphanumeric section key { [ 1, exclam ], [ kana_NU ] }; key { [ 2, quotedbl ], [ kana_FU ] }; key { [ 3, numbersign ], [ kana_A, kana_a ] }; key { [ 4, dollar ], [ kana_U, kana_u ] }; key { [ 5, percent ], [ kana_E, kana_e ] }; key { [ 6, ampersand ], [ kana_O, kana_o ] }; key { [ 7, apostrophe ], [ kana_YA, kana_ya ] }; key { [ 8, parenleft ], [ kana_YU, kana_yu ] }; key { [ 9, parenright ], [ kana_YO, kana_yo ] }; key { [ 0 ], [ kana_WA, kana_WO ] }; key { [ minus, equal ], [ kana_HO ] }; key { [ asciicircum, grave ], [ kana_HE ] }; key { [ backslash, bar ], [ prolongedsound ] }; key { [ BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ q, Q ], [ kana_TA ] }; key { [ w, W ], [ kana_TE ] }; key { [ e, E ], [ kana_I, kana_i ] }; key { [ r, R ], [ kana_SU ] }; key { [ t, T ], [ kana_KA ] }; key { [ y, Y ], [ kana_N ] }; key { [ u, U ], [ kana_NA ] }; key { [ i, I ], [ kana_NI ] }; key { [ o, O ], [ kana_RA ] }; key { [ p, P ], [ kana_SE ] }; key { [ at, asciitilde ], [ voicedsound ] }; key { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] }; key { [ Return ] }; key { [ Control_L ] }; key { [ Caps_Lock ] }; key { [ a, A ], [ kana_CHI ] }; key { [ s, S ], [ kana_TO ] }; key { [ d, D ], [ kana_SHI ] }; key { [ f, F ], [ kana_HA ] }; key { [ g, G ], [ kana_KI ] }; key { [ h, H ], [ kana_KU ] }; key { [ j, J ], [ kana_MA ] }; key { [ k, K ], [ kana_NO ] }; key { [ l, L ], [ kana_RI ] }; key { [ semicolon, plus ], [ kana_RE ] }; key { [ colon, asterisk ], [ kana_KE ] }; key { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] }; key { [ Shift_L ] }; key { [ z, Z ], [ kana_TSU, kana_tsu ] }; key { [ x, X ], [ kana_SA ] }; key { [ c, C ], [ kana_SO ] }; key { [ v, V ], [ kana_HI ] }; key { [ b, B ], [ kana_KO ] }; key { [ n, N ], [ kana_MI ] }; key { [ m, M ], [ kana_MO ] }; key { [ comma, less ], [ kana_NE, kana_comma ] }; key { [ period, greater ], [ kana_RU, kana_fullstop ] }; key { [ slash, question ], [ kana_ME, kana_middledot ] }; key { [ NoSymbol, underscore ], [ kana_RO ] }; // key { [ Shift_R ] }; key { [ Mode_switch ] }; key { [ Alt_L ] }; key { [ Muhenkan ] }; key { [ space ] }; key { [ Henkan, Kanji ] }; // End alphanumeric section // Begin "Function" section key { [ Break ] }; key { [ Print ] }; key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; key { [ F11 ] }; key { [ F12 ] }; key { [ F13 ] }; key { [ F14 ] }; key { [ F15 ] }; // End "Function" section // Begin "Editing" section key { [ Insert ] }; key { [ Delete ] }; key { [ Prior ] }; key { [ Next ] }; key { [ Up ] }; key { [ Left ] }; key { [ Right ] }; key { [ Down ] }; // End "Editing" section // Begin "Keypad" section key { [ Clear, Home ] }; key { [ Help ] }; key { [ KP_Subtract ] }; key { [ KP_Divide ] }; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_Multiply ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_Add ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_Equal ] }; key { [ KP_0 ] }; key { [ KP_Separator ] }; key { [ KP_Decimal ] }; // key { [ KP_Enter ] }; // End "Keypad" section modifier_map Shift { Shift_L }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L }; modifier_map Mod1 { Alt_L }; modifier_map Mod2 { Mode_switch }; }; PK(f[')@@symbols/xfree68_vndr/atarittnu[default xkb_symbols "us" { name[Group1]= "US/ASCII"; key { [ Escape ] }; // Alphanumeric section key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ grave, asciitilde ] }; key { [ BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ Return ] }; key { [ Delete ] }; key { [ Control_L ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ backslash, bar ] }; key { [ Shift_L ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; key { [ Shift_R ] }; key { [ Meta_L ] }; key { [ space ] }; key { [ Caps_Lock ] }; // End alphanumeric section // Begin "Function" section key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; // End "Function" section // Begin "Editing" section key { [ Help ] }; key { [ Undo ] }; key { [ Insert ] }; key { [ Up ] }; key { [ Home, Clear ] }; key { [ Left ] }; key { [ Down ] }; key { [ Right ] }; // End "Editing" section // Begin "Keypad" section key { [ KP_F1 ] }; key { [ KP_F2 ] }; key { [ KP_Divide ] }; key { [ KP_Multiply ] }; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_Subtract ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_Add ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_0 ] }; key { [ KP_Decimal ] }; key { [ KP_Enter ] }; // End "Keypad" section modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L }; modifier_map Mod1 { Meta_L }; }; xkb_symbols "de" { include "ataritt(us)" name[Group1]= "German"; key { [ 2, quotedbl ] }; key { [ 3, section ] }; key { [ 6, ampersand ] }; key { [ 7, slash ] }; key { [ 8, parenleft ] }; key { [ 9, parenright ] }; key { [ 0, equal ] }; key { [ ssharp, question ] }; key { [ apostrophe, grave ] }; key { [ numbersign, asciicircum ] }; key { [ z, Z ] }; key { [ udiaeresis, Udiaeresis ], [ at, backslash ] }; key { [ plus, asterisk ] }; key { [ odiaeresis, Odiaeresis ], [ bracketleft, braceleft ] }; key { [ adiaeresis, Adiaeresis ], [ bracketright, braceright ] }; key { [ asciitilde, bar ] }; key { [ less, greater ] }; key { [ y, Y ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; }; PK(f[w;;symbols/xfree68_vndr/amiganu[default xkb_symbols "usa1" { name[Group1]= "usa1"; key { [ Escape ] }; // Begin "Function" section key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; // End "Function" section // Alphanumeric section key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ backslash, bar ] }; key { [ BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ Return ] }; key { [ Control_L ] }; key { [ Caps_Lock ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ Shift_L ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; key { [ Shift_R ] }; key { [ Alt_L, Meta_L ] }; key { [ Mode_switch ] }; key { [ space ] }; key { [ Multi_key ] }; key { [ Alt_R, Meta_R ] }; // End alphanumeric section // Begin "Editing" section key { [ Delete ] }; key { [ Help ] }; key { [ Up ] }; key { [ Left ] }; key { [ Down ] }; key { [ Right ] }; // End "Editing" section // Begin "Keypad" section key { [ Num_Lock ] }; key { [ Scroll_Lock ] }; key { [ KP_Divide ] }; key { [ KP_Multiply, Print ] }; key { [ KP_7, KP_Home ] }; key { [ KP_8, KP_Up ] }; key { [ KP_9, KP_Prior ] }; key { [ KP_Subtract ] }; key { [ KP_4, KP_Left ] }; key { [ KP_5 ] }; key { [ KP_6, KP_Right ] }; key { [ KP_Add ] }; key { [ KP_1, KP_End ] }; key { [ KP_2, KP_Down ] }; key { [ KP_3, KP_Next ] }; key { [ KP_0, KP_Insert ] }; key { [ KP_Decimal, KP_Delete ] }; key { [ KP_Enter ] }; // End "Keypad" section modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L }; modifier_map Mod1 { Alt_L, Alt_R }; modifier_map Mod2 { Mode_switch }; modifier_map Mod3 { Meta_L, Meta_R }; }; PK(f[~w7979 symbols/isnu[// based on // XKB keyboard by Hrafnkell Eiriksson - hkelle@rhi.hi.is // fixes by Olafur Osvaldsson - oli@isnic.is // // "basic" corrected according to the Icelandic standard for keyboards, // IST 125:1995 (some symbols substituted by a dead diacritic). // Some positions are according to IST ISO/IEC 9995-3:1994 // Added nobreakspace default partial alphanumeric_keys xkb_symbols "basic" { include "latin(type4)" name[Group1]="Icelandic"; // = key { [ 2, quotedbl, twosuperior, oneeighth ] }; key { [ 4, dollar, onequarter, currency ] }; key { [odiaeresis, Odiaeresis, backslash, questiondown ] }; key { [ minus, underscore, dead_cedilla, dead_ogonek ] }; key { [ eth, ETH, dead_diaeresis, dead_abovering ] }; key { [apostrophe, question, asciitilde, dead_macron ] }; key { [ d, D, U201e, U201c ] }; key { [ ae, AE, asciicircum, dead_doubleacute ] }; key { [dead_acute, dead_acute, dead_circumflex, dead_caron ] }; key { [dead_abovering, dead_diaeresis, notsign, hyphen ] }; // = key { [ plus, asterisk, grave, dead_breve ] }; // = , is in file "pc": pc105 key { [ thorn, THORN, dead_belowdot, dead_abovedot ] }; key { [ space, space, space, space ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { // modify the basic Icelandic layout to use Sun dead keys include "is(basic)" name[Group1]="Icelandic (with Sun dead keys)"; key { [dead_circumflex, degree, notsign, notsign ] }; key { [dead_acute, dead_grave, dead_cedilla, dead_cedilla ] }; key { [udiaeresis, Udiaeresis, dead_diaeresis, dead_diaeresis ] }; key { [ plus, asterisk, dead_tilde, dead_macron ] }; key { [odiaeresis, Odiaeresis, dead_acute, dead_acute ] }; key { [adiaeresis, Adiaeresis, dead_circumflex, dead_circumflex ] }; key { [numbersign, acute, dead_grave, dead_grave ] }; }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { // modify the basic Icelandic layout to not have any dead keys include "is(basic)" name[Group1]="Icelandic (no dead keys)"; key { [asciicircum, degree, notsign, notsign ] }; key { [apostrophe, grave, cedilla, cedilla ] }; key { [udiaeresis, Udiaeresis, diaeresis, diaeresis ] }; key { [ plus, asterisk, asciitilde, macron ] }; key { [odiaeresis, Odiaeresis, acute, acute ] }; key { [adiaeresis, Adiaeresis, asciicircum, asciicircum ] }; key { [numbersign, acute, grave, grave ] }; key { [ thorn, THORN, dead_belowdot, abovedot ] }; }; // Copyright (C) 2004, 2006 Ævar Arnfjörð Bjarmason // // = HISTORY // * 2004-09-28: // Initial cleanroom writing of the keymap, I just booted Mac OS X, opened // TextEdit.app and wrote down what the value produced by each key was when I // pressed it, a for a, A for shift + a, å for lalt + a etc and made the // keymap from that information // // * 2006-01-14: // Revised the comments in the file // // * 2013-05-30: // Renamed the old keyboard layout and created a new one that conforms with the later // model Apple laptop and Aluminium USB/Bluetooth keyboards (A1243/A1255 and later) // that are used with the more recent versions of OS X. Also replaced some Unicode // codes with proper symbol names. // // = NOTES // * 20 characters in this keymap have no named character defined in // include/keysymdef.h and as a result their Unicode code points in // hexadecimal are listed here, these can be generated with the following // perl command: // $ perl -CA -e 'printf "U%x\n", ord shift' Æ // and converted back like: // $ perl -CO -le '$_=shift;s/[^a-f0-9]//ig;print chr hex' Uc6 // * The Apple logo appears twice on this keymap like the Mac OS and Mac OS X // keymaps. In the MacRoman encoding it has the code point 0xF0 (240) but it // has no assigned code point in Unicode, the code point Apple uses for it is // U+F8FF (63743) which is in the BMP's Private Use Area (U+E000–U+F8FF) // * This keymap has only been tested on a PowerBook6,5 (iBook G4) but it // should work on other Apple laptop models which use the same keyboard // layout. It will probably work on standard sized keyboards with little or // no modification but it might not support them fully, please report if // you're able to get it running with such a keyboard // Copied from macintosh_vndr/is xkb_symbols "mac_legacy" { name[Group1]= "Icelandic (Macintosh, legacy)"; //-- Row 5 (E) --// key { [ sterling, section, UF8FF, apostrophe ] }; key { [ 1, exclam, exclamdown, VoidSymbol ] }; key { [ 2, quotedbl, at, VoidSymbol ] }; key { [ 3, numbersign, U2122, sterling ] }; key { [ 4, dollar, U00A2, EuroSign ] }; key { [ 5, percent, U2030, infinity ] }; key { [ 6, ampersand, asciicircum, U2044 ] }; key { [ 7, slash, backslash, U00F7 ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ 0, equal, U2260, U2248 ] }; key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; key { [ minus, underscore, endash, emdash ] }; //-- Row 4 (D) --// key { [ q, Q, paragraph, VoidSymbol ] }; key { [ w, W, U2211, VoidSymbol ] }; key { [ e, E, dead_grave, VoidSymbol ] }; key { [ r, R, registered, VoidSymbol ] }; key { [ t, T, degree, VoidSymbol ] }; key { [ y, Y, yen, VoidSymbol ] }; key { [ u, U, dead_diaeresis, VoidSymbol ] }; key { [ i, I, U0131, U00AA ] }; key { [ o, O, dead_circumflex, U00BA ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [ eth, Eth, U201e, U201c ] }; key { [ apostrophe, question, questiondown, U00B7 ] }; //-- Row 3 (C) --// key { [ a, A, aring, Aring ] }; key { [ s, S, ssharp, abovedot ] }; key { [ d, D, U2202, U2DA ] }; key { [ f, F, U192, macron ] }; key { [ g, G, copyright, breve ] }; key { [ h, H, bar, VoidSymbol ] }; key { [ j, J, U2206, U2dd ] }; key { [ k, K, U00AC, VoidSymbol ] }; key { [ l, L, U2026, caron ] }; key { [ ae, AE, oe, OE ] }; key { [ dead_acute, dead_diaeresis, U201A, U2018 ] }; key { [ plus, asterisk, U2022, plusminus ] }; //-- Row 2 (B) --// key { [ less, greater, section, UF8FF ] }; key { [ z, Z, U3A9, VoidSymbol ] }; key { [ x, X, asciitilde, VoidSymbol ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, U221A, U25CA ] }; key { [ b, B, U222B, VoidSymbol ] }; key { [ n, N, dead_tilde, VoidSymbol ] }; key { [ m, M, U00B5, VoidSymbol ] }; key { [ comma, semicolon, lessthanequal, guillemotleft ] }; key { [ period, colon, greaterthanequal, guillemotright ] }; key { [ thorn, Thorn, U2019, U201d ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "mac" { name[Group1]= "Icelandic (Macintosh)"; //-- Row 5 (E) --// key { [ degree, dead_diaeresis, oslash, Ooblique ] }; key { [ 1, exclam, exclamdown, VoidSymbol ] }; key { [ 2, quotedbl, at, VoidSymbol ] }; key { [ 3, numbersign, trademark, sterling ] }; key { [ 4, dollar, cent, EuroSign ] }; key { [ 5, percent, U2030, infinity ] }; key { [ 6, ampersand, asciicircum, U2044 ] }; key { [ 7, slash, braceleft, division ] }; key { [ 8, parenleft, bracketleft, braceleft ] }; key { [ 9, parenright, bracketright, braceright ] }; key { [ 0, equal, braceright, approxeq ] }; key { [ odiaeresis, Odiaeresis, backslash, U2260 ] }; key { [ minus, underscore, endash, emdash ] }; //-- Row 4 (D) --// key { [ q, Q, U0040, paragraph ] }; key { [ w, W, U2211, U00A7 ] }; key { [ e, E, U20AC, U00BF ] }; key { [ r, R, registered, VoidSymbol ] }; key { [ t, T, degree, U2022 ] }; key { [ y, Y, yen, VoidSymbol ] }; key { [ u, U, dead_diaeresis, VoidSymbol ] }; key { [ i, I, idotless, ordfeminine ] }; key { [ o, O, dead_circumflex, U00BA ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [ eth, Eth, doublelowquotemark, leftdoublequotemark ] }; key { [ apostrophe, question, asciitilde, periodcentered ] }; //-- Row 3 (C) --// key { [ a, A, aring, Aring ] }; key { [ s, S, ssharp, abovedot ] }; key { [ d, D, partialderivative, U02DA ] }; key { [ f, F, function, macron ] }; key { [ g, G, copyright, breve ] }; key { [ h, H, bar, U00B8 ] }; key { [ j, J, U2206, doubleacute ] }; key { [ k, K, notsign, U2DB ] }; key { [ l, L, ellipsis, caron ] }; key { [ ae, AE, oe, OE ] }; key { [ dead_acute, dead_acute, asciicircum, leftsinglequotemark ] }; key { [ plus, asterisk, grave, plusminus ] }; //-- Row 2 (B) --// key { [ less, greater, bar, UF8FF ] }; key { [ z, Z, Greek_OMEGA, VoidSymbol ] }; key { [ x, X, asciitilde, VoidSymbol ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ v, V, radical, U25CA ] }; key { [ b, B, integral, VoidSymbol ] }; key { [ n, N, dead_tilde, VoidSymbol ] }; key { [ m, M, mu, VoidSymbol ] }; key { [ comma, semicolon, lessthanequal, guillemotleft ] }; key { [ period, colon, greaterthanequal, guillemotright ] }; key { [ thorn, Thorn, rightsinglequotemark, rightdoublequotemark ] }; include "level3(ralt_switch)" }; // This is a modified version of the English Dvorak layout that allows // you to type all Icelandic letters under X. It's not a full attempt at // nationalizing the layout as e.g. the Norwegian, Swedish and French // layouts which modify the primary keys of the basic Dvorak layout // extensively. // Rather it's a simple modification of 5 keys of the US Dvorak layout, // it adds Germanic/Icelandic style quotation marks („“), eth (ðÐ), ae // (æÆ), endash and emdash (–—), thorn (þÞ), EuroSign (€) and the German // Sharp S (ßẞ). These keys aren't used in the US version, making the // Icelandic version a superset of it. // Maybe someone else will make a "full" attempt at an Icelandic layout // but I was mostly interested in continuing to type English comfortably // as a primary function while being able to type the full Icelandic // alphabet as a secondary function. // -- Ævar Arnfjörð Bjarmason // Icelandic Dvorak partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" include "eurosign(4)" name[Group1]= "Icelandic (Dvorak)"; key { [ slash, question, U201e, U201c ] }; key { [ o, O, odiaeresis, Odiaeresis ] }; key { [ d, D, eth, ETH ] }; key { [ s, S, ae, AE ] }; key { [ minus, underscore, endash, emdash ] }; key { [ z, Z, thorn, Thorn ] }; key { [ b, B, ssharp, U1E9E ] }; include "level3(ralt_switch)" }; PK(f[BB symbols/trnu[// Keyboard layouts for Turkey. // This file distributed without any expressed or implied warranty. // Nilgün Belma Bugüner , 2005 // Turkish Q layout default partial xkb_symbols "basic" { include "latin" name[Group1]="Turkish"; key { [ 1, exclam, greater, exclamdown ] }; key { [ 2, apostrophe, sterling, twosuperior ] }; key { [ 3,asciicircum, numbersign, threesuperior ] }; key { [ 4, plus, dollar, onequarter ] }; key { [ 6, ampersand, threequarters, VoidSymbol ] }; key { [ 7, slash, braceleft, VoidSymbol ] }; key { [ 8, parenleft, bracketleft, VoidSymbol ] }; key { [ 9, parenright, bracketright, plusminus ] }; key { [ 0, equal, braceright, degree ] }; key { [ asterisk, question, backslash, questiondown ] }; key { [ minus, underscore, bar, VoidSymbol ] }; key { [ w, W, VoidSymbol, VoidSymbol ] }; key { [ e, E, EuroSign, VoidSymbol ] }; key { [ t, T, U20BA, VoidSymbol ] }; key { [ u, U, ucircumflex, Ucircumflex ] }; key { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ idotless, I, icircumflex, Icircumflex ] }; key { [ o, O, ocircumflex, Ocircumflex ] }; key { [ p, P, VoidSymbol, VoidSymbol ] }; key { [ gbreve, Gbreve ] }; key { [udiaeresis, Udiaeresis, asciitilde, dead_macron ] }; key { [ a, A, acircumflex, Acircumflex ] }; key { [ s, S, ssharp, VoidSymbol ] }; key { [ d, D, VoidSymbol, VoidSymbol ] }; key { [ f, F, ordfeminine, VoidSymbol ] }; key { [ g, G, VoidSymbol, VoidSymbol ] }; key { [ h, H, VoidSymbol, VoidSymbol ] }; key { [ k, K, VoidSymbol, VoidSymbol ] }; key { [ l, L, VoidSymbol, VoidSymbol ] }; key { [ scedilla, Scedilla, acute, dead_acute ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, Iabovedot, apostrophe, dead_caron ] }; key { [ quotedbl, eacute, less, degree ] }; key { [ comma, semicolon, grave, dead_grave ] }; key { [ less, greater, bar, brokenbar ] }; key { [odiaeresis, Odiaeresis, multiply, VoidSymbol ] }; key { [ ccedilla, Ccedilla,periodcentered, division ] }; key { [ period, colon, dead_abovedot, dead_abovedot ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; // Turkish F layout partial xkb_symbols "f" { include "latin" name[Group1]="Turkish (F)"; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, quotedbl, twosuperior, VoidSymbol ] }; key { [ 3,asciicircum, numbersign, threesuperior ] }; key { [ 4, dollar, onequarter, VoidSymbol ] }; key { [ 6, ampersand, threequarters, VoidSymbol ] }; key { [ 7, apostrophe, braceleft, VoidSymbol ] }; key { [ 8, parenleft, bracketleft, VoidSymbol ] }; key { [ 9, parenright, bracketright, plusminus ] }; key { [ 0, equal, braceright, degree ] }; key { [ slash, question, backslash, questiondown ] }; key { [ minus, underscore, bar, VoidSymbol ] }; key { [ f, F, at, VoidSymbol ] }; key { [ g, G, VoidSymbol, VoidSymbol ] }; key { [ gbreve, Gbreve, VoidSymbol, VoidSymbol ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ idotless, I, paragraph, VoidSymbol ] }; key { [ o, O, ocircumflex, Ocircumflex ] }; key { [ d, D, yen, VoidSymbol ] }; key { [ r, R, registered, VoidSymbol ] }; key { [ n, N, VoidSymbol, VoidSymbol ] }; key { [ h, H, degree, VoidSymbol ] }; key { [ p, P, sterling, VoidSymbol ] }; key { [ q, Q,dead_diaeresis,dead_abovering ] }; key { [ w, W, asciitilde, dead_breve ] }; key { [ u, U, ucircumflex, Ucircumflex ] }; key { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ i, Iabovedot, icircumflex, Icircumflex ] }; key { [ e, E, EuroSign, VoidSymbol ] }; key { [ a, A, acircumflex, Acircumflex ] }; key { [udiaeresis, Udiaeresis, ucircumflex, Ucircumflex ] }; key { [ t, T, U20BA, VoidSymbol ] }; key { [ k, K, VoidSymbol, VoidSymbol ] }; key { [ m, M, mu, VoidSymbol ] }; key { [ l, L, VoidSymbol, VoidSymbol ] }; key { [ y, Y, acute, dead_acute ] }; key { [ scedilla, Scedilla, numbersign, dead_caron ] }; key { [ plus, asterisk, notsign, plusminus ] }; key { [ x, X, grave, dead_grave ] }; key { [ j, J, guillemotleft, VoidSymbol ] }; key { [odiaeresis, Odiaeresis,guillemotright, VoidSymbol ] }; key { [ v, V, leftdoublequotemark, VoidSymbol ] }; key { [ c, C, cent, copyright ] }; key { [ ccedilla, Ccedilla,rightdoublequotemark, VoidSymbol ] }; key { [ z, Z, VoidSymbol, VoidSymbol ] }; key { [ s, S, section, VoidSymbol ] }; key { [ b, B, multiply, nobreakspace ] }; key { [ period, colon, division, dead_abovedot ] }; key { [ comma, semicolon,periodcentered, VoidSymbol ] }; key { [ less, greater, bar, brokenbar ] }; include "kpdl(comma)" include "level3(ralt_switch)" }; // Turkish Alt-Q layout partial xkb_symbols "alt" { include "latin" name[Group1]="Turkish (Alt-Q)"; key { [ 7, ampersand, lowleftcorner, upleftcorner ] }; key { [ 8, asterisk, leftt, topt ] }; key { [ 9, parenleft, rightt, bott ] }; key { [ 0, parenright, lowrightcorner, uprightcorner ] }; key { [ minus, underscore, horizlinescan5, vertbar ] }; key { [ equal, plus, crossinglines ] }; key { [ e, E, EuroSign, VoidSymbol ] }; // key { [ t, T, trademark, VoidSymbol > key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ i, I, idotless, Iabovedot ] }; key { [ o, O, odiaeresis, Odiaeresis ] }; key { [ a, A, acircumflex, Acircumflex ] }; key { [ s, S, scedilla, Scedilla ] }; key { [ g, G, gbreve, Gbreve ] }; key { [ c, C, ccedilla, Ccedilla ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "tr(basic)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "tr(Sundeadkeys)" name[Group1]="Turkish (with Sun dead keys)"; }; // Kurdish Q layout // Erdal Ronahi , 2006 // http://ferheng.org partial xkb_symbols "ku" { include "tr(basic)" name[Group1]="Kurdish (Turkey, Latin Q)"; key { [ i, I, idotless, I ] }; key { [ x, X, gbreve, Gbreve ] }; key { [ucircumflex, Ucircumflex, asciitilde, dead_macron ] }; key { [icircumflex, Icircumflex, apostrophe, dead_caron ] }; key { [ecircumflex, Ecircumflex, odiaeresis, Odiaeresis ] }; }; // Kurdish F layout partial xkb_symbols "ku_f" { include "tr(f)" name[Group1]="Kurdish (Turkey, F)"; key { [ x, X, gbreve, Gbreve ] }; key { [ i, I, paragraph, VoidSymbol ] }; key { [ o, O, ocircumflex, Ocircumflex ] }; key { [ucircumflex, Ucircumflex, udiaeresis, Udiaeresis ] }; key { [icircumflex, Icircumflex, i, Iabovedot ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ecircumflex, Ecircumflex, odiaeresis, Odiaeresis ] }; }; // Kurdish Alt-Q layout partial xkb_symbols "ku_alt" { include "tr(alt)" name[Group1]="Kurdish (Turkey, Latin Alt-Q)"; key { [ e, E, ecircumflex, Ecircumflex ] }; key { [ u, U, ucircumflex, Ucircumflex ] }; key { [ i, I, icircumflex, Icircumflex ] }; key { [ o, O, odiaeresis, Odiaeresis ] }; }; // Turkish international Q layout // Alexis Pellicier , 2007 partial xkb_symbols "intl" { include "latin" name[Group1]="Turkish (intl., with dead keys)"; key { type[group1] = "FOUR_LEVEL", [ 1, exclam, onesuperior, exclamdown ] }; key { type[group1] = "FOUR_LEVEL", [ 2, apostrophe, sterling, twosuperior ] }; key { type[group1] = "FOUR_LEVEL", [ 3, dead_circumflex, numbersign, threesuperior ] }; key { type[group1] = "FOUR_LEVEL", [ 4, plus, dollar, onequarter ] }; key { type[group1] = "FOUR_LEVEL", [ 6, ampersand, threequarters, VoidSymbol ] }; key { type[group1] = "FOUR_LEVEL", [ 7, slash, braceleft, VoidSymbol ] }; key { type[group1] = "FOUR_LEVEL", [ 8, parenleft, bracketleft, VoidSymbol ] }; key { type[group1] = "FOUR_LEVEL", [ 9, parenright, bracketright, plusminus ] }; key { type[group1] = "FOUR_LEVEL", [ 0, equal, braceright, degree ] }; key { type[group1] = "FOUR_LEVEL", [ asterisk, question, backslash, questiondown ] }; key { type[group1] = "FOUR_LEVEL", [ minus, underscore, division, VoidSymbol ] }; key { [ w, W, VoidSymbol, VoidSymbol ] }; key { [ e, E, EuroSign, cent ] }; key { [ t, T, U20BA, VoidSymbol ] }; key { [ u, U, ucircumflex, Ucircumflex ] }; key { [ idotless, I, icircumflex, Icircumflex ] }; key { [ o, O, ocircumflex, Ocircumflex ] }; key { [ p, P, VoidSymbol, VoidSymbol ] }; key { [ gbreve, Gbreve, dead_diaeresis ] }; key { [udiaeresis, Udiaeresis, dead_tilde, dead_macron ] }; key { [ a, A, acircumflex, Acircumflex ] }; key { [ s, S, section, VoidSymbol ] }; key { [ d, D, VoidSymbol, VoidSymbol ] }; key { [ f, F, ordfeminine, VoidSymbol ] }; key { [ g, G, VoidSymbol, VoidSymbol ] }; key { [ h, H, VoidSymbol, VoidSymbol ] }; key { [ k, K, VoidSymbol, VoidSymbol ] }; key { [ l, L, VoidSymbol, VoidSymbol ] }; key { [ scedilla, Scedilla, dead_acute, dead_acute ] }; key { [ i, Iabovedot, apostrophe, dead_caron ] }; key { type[group1] = "FOUR_LEVEL", [ quotedbl, eacute, plusminus, degree ] }; key { type[group1] = "FOUR_LEVEL", [ comma, semicolon, dead_grave, dead_grave ] }; key { type[group1] = "FOUR_LEVEL", [ less, greater, bar, brokenbar ] }; key { [odiaeresis, Odiaeresis, multiply, VoidSymbol ] }; key { [ ccedilla, Ccedilla, periodcentered, division ] }; key { type[group1] = "FOUR_LEVEL", [ period, colon, dead_abovedot, dead_abovedot ] }; include "nbsp(level3)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "tr(intl)" name[Group1]= "Turkish"; key { [ 1, exclam, VoidSymbol, VoidSymbol ] }; key { [ 6, ampersand, VoidSymbol, VoidSymbol ] }; key { type[group1] = "FOUR_LEVEL", [ minus, underscore, bar, VoidSymbol ] }; key { [ c, C, leftdoublequotemark, VoidSymbol ] }; key { [ v, V, rightdoublequotemark, VoidSymbol ] }; key { [ b, B, VoidSymbol, VoidSymbol ] }; key { [odiaeresis, Odiaeresis, VoidSymbol, VoidSymbol ] }; key { [ ccedilla, Ccedilla, multiply, VoidSymbol ] }; key { [ period, colon, division, dead_abovedot ] }; key { [ less, greater, VoidSymbol, VoidSymbol ] }; }; // Crimean Tatar (Crimean Turkish) layouts. // First released (by Ubuntu): 2009-02-24. // These layouts are not yet standard. In particular, the mapping of // the letter 'x' might change in the future. This letter is not used // in the current official alphabet, but is included in the layouts for // foreign words and for shortcuts. // Reşat SABIQ , 2009 // Özgür Qarahan , 2009 // Crimean Tatar (Crimean Turkish) Q layout partial xkb_symbols "crh" { include "tr(basic)" name[Group1]="Crimean Tatar (Turkish Q)"; key { [ x, X, asterisk, question ] }; key { [ f, F, iacute, Iacute ] }; key { [ j, J, ibreve, Ibreve ] }; key { [ quotedbl, backslash, less, degree ] }; key { [ ntilde, Ntilde, guillemotright, greater ] }; }; // Crimean Tatar (Crimean Turkish) F layout partial xkb_symbols "crh_f" { include "tr(f)" name[Group1]="Crimean Tatar (Turkish F)"; key { [ x, X, slash, question ] }; key { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ idotless, I, iacute, Iacute ] }; key { [ k, K, ibreve, Ibreve ] }; key { [ plus, asterisk, backslash, plusminus ] }; key { [ ntilde, Ntilde, grave, dead_grave ] }; }; // Crimean Tatar (Crimean Turkish) Alt-Q layout partial xkb_symbols "crh_alt" { include "tr(alt)" name[Group1]="Crimean Tatar (Turkish Alt-Q)"; key { [ f, F, iacute, Iacute ] }; key { [ j, J, ibreve, Ibreve ] }; key { [ n, N, ntilde, Ntilde ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/tr(sun_type6)" }; PK(f[uqc[ symbols/typonu[// Typographic Keyboard // Sergei Stolyarov // Initial contribution by Alexey Ten // Additional contribution and code cleanup by Artur Dryomov // Mainly based on the layout proposed by Ilya Birman // http://ilyabirman.ru/projects/typography-layout/ default partial xkb_symbols "base" { // 1st keyboard row key { [ NoSymbol, NoSymbol, NoSymbol, approxeq ] }; // "~" key { [ NoSymbol, NoSymbol, onesuperior, exclamdown ] }; // "1" key { [ NoSymbol, NoSymbol, twosuperior, onehalf ] }; // "2" key { [ NoSymbol, NoSymbol, threesuperior, onethird ] }; // "3" key { [ NoSymbol, NoSymbol, dollar, onequarter ] }; // "4" key { [ NoSymbol, NoSymbol, U2030, NoSymbol ] }; // "5" key { [ NoSymbol, NoSymbol, uparrow, NoSymbol ] }; // "6" key { [ NoSymbol, NoSymbol, ampersand, questiondown ] }; // "7" key { [ NoSymbol, NoSymbol, infinity, oneeighth ] }; // "8" key { [ NoSymbol, NoSymbol, leftarrow, NoSymbol ] }; // "9" key { [ NoSymbol, NoSymbol, rightarrow, NoSymbol ] }; // "0" key { [ NoSymbol, NoSymbol, emdash, endash ] }; // "-" key { [ NoSymbol, NoSymbol, notequal, plusminus ] }; // "=" // 2nd keyboard row key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; // "e" key { [ NoSymbol, NoSymbol, registered, NoSymbol ] }; // "r" key { [ NoSymbol, NoSymbol, trademark, NoSymbol ] }; // "t" key { [ NoSymbol, NoSymbol, yen, NoSymbol ] }; // "y" key { [ NoSymbol, NoSymbol, acute, doubleacute ] }; // "p" key { [ NoSymbol, NoSymbol, bracketleft, braceleft ] }; // "[" key { [ NoSymbol, NoSymbol, bracketright, braceright ] }; // "]" // 3rd keyboard row key { [ NoSymbol, NoSymbol, U0301, NoSymbol ] }; // "a" key { [ NoSymbol, NoSymbol, section, NoSymbol ] }; // "s" key { [ NoSymbol, NoSymbol, degree, division ] }; // "d" key { [ NoSymbol, NoSymbol, sterling, NoSymbol ] }; // "f" key { [ NoSymbol, NoSymbol, doublelowquotemark, singlelowquotemark ] }; // "j" key { [ NoSymbol, NoSymbol, leftdoublequotemark, leftsinglequotemark ] }; // "k" key { [ NoSymbol, NoSymbol, rightdoublequotemark, rightsinglequotemark ] }; // "l" key { [ NoSymbol, NoSymbol, leftsinglequotemark, minutes ] }; // ";" key { [ NoSymbol, NoSymbol, rightsinglequotemark, seconds ] }; // "'" // 4th keyboard row key { [ NoSymbol, NoSymbol, multiply, U22C5 ] }; // "x" key { [ NoSymbol, NoSymbol, copyright, cent ] }; // "c" key { [ NoSymbol, NoSymbol, downarrow, U25CA ] }; // "v" key { [ NoSymbol, NoSymbol, U2212, enfilledcircbullet ] }; // "m" key { [ NoSymbol, NoSymbol, guillemotleft, less ] }; // "," key { [ NoSymbol, NoSymbol, guillemotright, greater ] }; // "." key { [ NoSymbol, NoSymbol, ellipsis, NoSymbol ] }; // "/" // 5th keyboard row key { [ space, space, nobreakspace, nobreakspace ] }; // " " // Reference // U+2030 PER MILLE SIGN // U+0301 COMBINING ACUTE ACCENT // U+22C5 DOT OPERATOR // U+25CA LOZENGE // U+2212 MINUS SIGN }; PK(f[>> symbols/transnu[default partial alphanumeric_keys xkb_symbols "ipa" { name[Group1]="International Phonetic Alphabet"; // also serves extIPA and orientalistic conversions key.type[Group1]="EIGHT_LEVEL"; //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\ key {[ grave, asciitilde, minutes, seconds, U2053, NoSymbol, U2015, asciicircum ]}; // ` ~ ′ ″ SwungDash QuotDash ^ key {[ 1, exclam, onesuperior, exclamdown, U02E5, U030B, NoSymbol, NoSymbol ]}; // 1 ! ¹ ¡ ˥ ̋◌┎────┒ key {[ 2, quotedbl, twosuperior, oneeighth, U02E6, U0301, U25CB, U20DD ]}; // 2 " ² ⅛ ˦ ́◌┃○ ⃝ ┃ key {[ 3, section, threesuperior, sterling, U02E7, U0304, NoSymbol, U0348 ]}; // 3 § ³ £ ˧ ̄◌┖─┒◌͆ ┃ key {[ 4, dollar, onequarter, currency, U02E8, U0300, NoSymbol, U032A ]}; // 4 $ ¼ ¤ ˨ ̀◌ ┃̪◌ ┃ key {[ 5, percent, U0331, threeeighths, U02E9, U030F, NoSymbol, U0347 ]}; // 5 % ̱◌ ⅜ ˩ ̏◌ ┃◌͇ ┃ key {[ 6, ampersand, U032E, fiveeighths, U0323, U0311, NoSymbol, U02EC ]}; // 6 & ̮◌ ⅝ ̣◌ ̑◌ ┃ˬ ┃ key {[ 7, slash, braceleft, seveneighths, U0307, U0313, NoSymbol, U02ED ]}; // 7 / { ⅞ ̇◌ ̓◌ ┃˭ ┃ Disordered key {[ 8, parenleft, bracketleft, U2E28, U27E8, U032D, U27EA, U0354 ]}; // 8 ( [ ⸨ ⟨ ̭◌ ⟪┃◌͔┃ Speech key {[ 9, parenright, bracketright, U2E29, U27E9, NoSymbol, U27EB, U0355 ]}; // 9 ) ] ⸩ ⟩ ⟫┃◌͕┃ key {[ 0, equal, braceright, degree, U02BE, notequal, U2248, U034E ]}; // 0 = } ° ʾ ≠ ≈┃◌͎ ┃ // ┃ ┃ key {[ U0294, question, backslash, questiondown, U0295, U02A1, U02A2, U0362 ]}; // ʔ ? \ ¿ ʕ ʡ ʢ┃◌‌͢◌┃ // ┎───┚ ┃ key {[ U2197, U2198, UA71C, UA71B, U02BF, asterisk, U2193, U2191 ]}; // ↗ ↘ ꜜ ꜛ ʿ┃* ↓ ↑ ┃ //─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────//──────────┸──────┸───────────────\\ key {[ q, U025C, at, Greek_OMEGA, U02DE, NoSymbol, U20BD, Q ]}; // q ɜ @ Ω ˞ ₽ Q key {[ w, U028D, U0270, NoSymbol, U026F, NoSymbol, U031D, W ]}; // w ʍ ɰ ɯ ̝◌ W key {[ e, schwa, U025B, U025C, U0258, NoSymbol, EuroSign, E ]}; // e ə ɛ ɜ ɘ € E key {[ r, U027E, U0281, U0280, U0279, U027B, U027D, R ]}; // r ɾ ʁ ʀ ɹ ɻ ɽ R key {[ t,Greek_theta, U0288, NoSymbol, U01C0, U01C1, U01C2, T ]}; // t θ ʈ ǀ ǁ ǂ T key {[ z, U0292, U0291, U0293, U0290, U026E, U261C, Z ]}; // z ʒ ʑ ʓ ʐ ɮ ☜ Z key {[ u, U028A, U0289, U028C, U025E, U02AA, U261D, U ]}; // u ʊ ʉ ʌ ɞ ʪ ☝ U key {[ i, U026A, U0268, U0264, U0275, U02AB, U261F, I ]}; // i ɪ ɨ ɤ ɵ ʫ ☟ I key {[ o, U0254, oslash, oe, U032A, U025E, U261E, O ]}; // o ɔ ø œ ̪◌ ɞ ☞ O key {[ p, U0303, U031F, U2038, U033A, NoSymbol, U1D513, P ]}; // p ̃◌ ̟◌ ‸ ̻̺◌ 𝔓 P // ┎─┒ key {[ U02E4, U0330, U0308, U033D, U033B, U02C0, U02C1, U02AC ]}; // ˤ ̰◌ ̈◌ ̽◌ ̻◌ ˀ ˁ┃ʬ┃ key {[ U02D0, U02D1, U0320, U0304, U033C, NoSymbol, NoSymbol, U02AD ]}; // ː ˑ ̠◌ ̄◌ ̼◌ ┃ʭ┃ //─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────//──────────────┸─┸────────────────\\ key {[ a, U0251, ae, U0252, U0250, U0276, U031E, A ]}; // a ɑ æ ɒ ɐ ɶ ̞◌ A key {[ s, U0283, NoSymbol, U0286, U0282, U031C, U0318, S ]}; // s ʃ ʆ ʂ ̜◌ ̘◌ S key {[ d, eth, U0256, U0257, U1D91, U0339, U0319, D ]}; // d ð ɖ ɗ ᶑ ̹◌ ̙◌ D // ┎─┒ key {[ f, U0278, NoSymbol, NoSymbol, NoSymbol, NoSymbol, U02A9, F ]}; // f ɸ ┃ʩ┃F // ┖─┚ key {[ g, U0263, U0262, U0260, U029B, U0261, U20B8, G ]}; // g ɣ ɢ ɠ ʛ ɡ ₸ G key {[ h, U0266, U0267, U029C, hstroke, NoSymbol, U20B4, H ]}; // h ɦ ɧ ʜ ħ ₴ H key {[ j, U029D, U025F, U0284, NoSymbol, NoSymbol, NoSymbol, J ]}; // j ʝ ɟ ʄ J key {[ k, U02B0, U02B1, U029E, NoSymbol, UA78E, U2113, K ]}; // k ʰ ʱ ʞ ꞎ ℓ K key {[ l, U028E, U026B, U026C, U029F, U026D, U027A, L ]}; // l ʎ ɫ ɬ ʟ ɭ ɺ L // ┎────┒ key {[ U02B2, U02B7, U02E0, U02B8, U207F, U02E1, U034C, U034D ]}; // ʲ ʷ ˠ ʸ ⁿ ˡ┃◌͌ ◌͍ ┃ Disordered key {[ U032F, U0325, U032C, U030C, U031A, U0327, U034B, U0348 ]}; // ̯◌ ̥◌ ̬◌ ̌◌◌̚ ̧◌┃◌͋ ◌͈ ┃ Speech key {[ U0329, U02C8, U02CC, U0306, U02BC, U0328, U034A, U0349 ]}; // ̩◌ ˈ ˌ ̆◌ ʼ ̨◌┃◌͊ ◌‌͉┃ //─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────//────────────┸────┸───────────────\\ key {[ bar, U2016, U203F, U035C, U0361, NoSymbol, NoSymbol, NoSymbol ]}; // | ‖ ‿ ◌͜◌ ◌͡◌ key {[ y, U028F, guillemotright, U203A, U0265, NoSymbol, U0287, Y ]}; // y ʏ » › ɥ ʇ Y key {[ x, Greek_chi, guillemotleft, U2039, UA725, UA724, U0297, X ]}; // x χ « ‹ ꜥ Ꜥ ʗ X key {[ c, ccedilla, U0255, U023C, UA723, UA722, U0296, C ]}; // c ç ɕ ȼ ꜣ Ꜣ ʖ C key {[ v, U028B, U2C71, U0274, doublelowquotemark, singlelowquotemark, NoSymbol, V ]}; // v ʋ ⱱ ɴ „ ‚ V key {[ b, Greek_beta, U0299, U0253, leftdoublequotemark, leftsinglequotemark, U0298, B ]}; // b β ʙ ɓ “ ‘ ʘ B key {[ n, eng, U0272, U0273, rightdoublequotemark, rightsinglequotemark, U01C3, N ]}; // n ŋ ɲ ɳ ” ’ ǃ N key {[ m, U0271, mu, U22C5, U0298, U01C3, U20BC, M ]}; // m ɱ µ ⋅ ʘ ǃ ₼ M key {[ comma, semicolon, periodcentered, multiply, U2020, U2021, NoSymbol, NoSymbol ]}; // , ; · × † ‡ key {[ period, colon, ellipsis, division, enfilledcircbullet, NoSymbol, NoSymbol, NoSymbol ]}; // . : … ÷ • key {[ minus, underscore, endash, emdash, U2011, U00AD, U2010, U2212 ]}; // - _ – — NoBrHyphen SHy Hy Minus //━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\ //│\\ // Makes return comma instead of dot, as the comma is decimal separator outside the English dominions //🏵\\ include "kpdl(comma)" //│\\ //│\\ // Maps Right Alt for reaching the third level //🏵\\ include "level3(ralt_switch)" //│\\ //│\\ // Maps for reaching the fifth level //🏵\\ include "level5(caps_switch)" //│\\ //🏵\\ // Offers pressing both shift keys for capslock //│\\ include "shift(both_shiftlock)" //│\\🏵 //│\│╱🌿 //──────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─┘˝˝ // Note about a bug in XKB: One has to set lv5:rwin_switch_lock or one of the other level 5 locks for the caps switch to work! // https://bugs.freedesktop.org/show_bug.cgi?id=102189 }; PK(f[rso{^{^ symbols/cznu[default partial alphanumeric_keys xkb_symbols "basic" { // This layout conforms to a new Czech compromise standard // designed to satisfy most Unix, Windows and Mac users. // 2001 by Kamil Toman include "latin" name[Group1]= "Czech"; key { [ semicolon, dead_abovering, grave, asciitilde ] }; key { [ plus, 1, exclam, dead_tilde ] }; key { [ ecaron, 2, at, dead_caron ] }; key { [ scaron, 3, numbersign, dead_circumflex ] }; key { [ ccaron, 4, dollar, dead_breve ] }; key { [ rcaron, 5, percent, dead_abovering]}; key { [ zcaron, 6, asciicircum, dead_ogonek ] }; key { [ yacute, 7, ampersand, dead_grave ] }; key { [ aacute, 8, asterisk, dead_abovedot] }; key { [ iacute, 9, braceleft, dead_acute ] }; key { [ eacute, 0, braceright, dead_doubleacute ] }; key { [ equal, percent, NoSymbol, dead_diaeresis]}; key { [dead_acute, dead_caron, dead_macron, dead_cedilla ] }; key { [ q, Q, backslash, NoSymbol ] }; key { [ w, W, bar, Nosymbol ] }; key { [ e, E, EuroSign, NoSymbol ] }; key { [ r, R, NoSymbol, NoSymbol ] }; key { [ t, T, NoSymbol, NoSymbol ] }; key { [ z, Z, NoSymbol, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol ] }; key { [ i, I, NoSymbol, NoSymbol ] }; key { [ o, O, NoSymbol, NoSymbol ] }; key { [ p, P, NoSymbol, NoSymbol ] }; key { [ uacute, slash, bracketleft, division ] }; key { [parenright, parenleft, bracketright, multiply ] }; key { [ a, A, asciitilde, NoSymbol ] }; key { [ s, S, dstroke, NoSymbol ] }; key { [ d, D, Dstroke, NoSymbol ] }; key { [ f, F, bracketleft, NoSymbol ] }; key { [ g, G, bracketright, NoSymbol ] }; key { [ h, H, grave, NoSymbol ] }; key { [ j, J, apostrophe, NoSymbol ] }; key { [ k, K, lstroke, NoSymbol ] }; key { [ l, L, Lstroke, NoSymbol ] }; key { [ uring, quotedbl, dollar, NoSymbol ] }; key { [ section, exclam, apostrophe, ssharp ] }; key { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] }; key { [dead_diaeresis, apostrophe, backslash, bar ] }; key { [ backslash, bar, slash, NoSymbol ] }; key { [ y, Y, degree, NoSymbol ] }; key { [ x, X, numbersign, Nosymbol ] }; key { [ c, C, ampersand, NoSymbol ] }; key { [ v, V, at, NoSymbol ] }; key { [ b, B, braceleft, NoSymbol ] }; key { [ n, N, braceright, NoSymbol ] }; key { [ m, M, asciicircum, NoSymbol ] }; key { [ comma, question, less, NoSymbol ] }; key { [ period, colon, greater, NoSymbol ] }; key { [ minus, underscore, asterisk, NoSymbol ] }; key { [ space, space, space, space ] }; include "level3(ralt_switch)" }; xkb_symbols "bksl" { // Use instead of (useful for keyboards without key). include "cz(basic)" name[Group1]= "Czech (with <\|> key)"; key { [ backslash, bar, slash, NoSymbol ] }; }; partial alphanumeric_keys xkb_symbols "qwerty" { // This layout represents the actual Czech keyboards; // it complies with the symbols printed on the keys. // 2011 by Lukáš Mojžíš include "cz(basic)" name[Group1]= "Czech (QWERTY)"; key { [ z, Z, degree, NoSymbol ] }; key { [ uring, quotedbl, semicolon, colon ] }; key { [ section, exclam, apostrophe, ssharp ] }; key { [ y, Y, NoSymbol, NoSymbol ] }; key { [ uacute, slash, bracketleft, braceleft ] }; key { [parenright, parenleft, bracketright, braceright ] }; key { [ iacute, 9, parenleft, dead_acute ] }; key { [ eacute, 0, parenright, dead_doubleacute ] }; }; xkb_symbols "qwerty_bksl" { // Use instead of (useful for keyboards without key). include "cz(qwerty)" name[Group1]= "Czech (QWERTY, extended backslash)"; key { [ backslash, bar, slash, NoSymbol ] }; }; partial alphanumeric_keys xkb_symbols "qwerty-mac" { // This layout corresponds to the Apple's Czech - QWERTY. // 2018 by Jakub Jirutka include "latin" name[Group1]= "Czech (QWERTY, Macintosh)"; key { [ less, greater, lessthanequal, greaterthanequal]}; key { [ plus, 1, grave, notsign ] }; key { [ ecaron, 2, at, enfilledcircbullet]}; key { [ scaron, 3, numbersign, notequal ] }; key { [ ccaron, 4, dollar, sterling ] }; key { [ rcaron, 5, asciitilde, U25CA ] }; key { [ zcaron, 6, asciicircum, dagger ] }; key { [ yacute, 7, ampersand, paragraph ] }; key { [ aacute, 8, asterisk, division ] }; key { [ iacute, 9, braceleft, guillemotleft] }; key { [ eacute, 0, braceright, guillemotright]}; key { [ equal, percent, dead_abovering, dead_cedilla]}; key { [dead_acute, dead_caron, dead_circumflex, dead_macron]}; key { [ q, Q, NoSymbol, NoSymbol ] }; key { [ w, W, eabovedot, Eabovedot ] }; key { [ e, E, eogonek, Eogonek ] }; key { [ r, R, EuroSign, registered ] }; key { [ t, T, NoSymbol, trademark ] }; key { [ y, Y, NoSymbol, NoSymbol ] }; key { [ u, U, NoSymbol, NoSymbol ] }; key { [ i, I, NoSymbol, NoSymbol ] }; key { [ o, O, NoSymbol, NoSymbol ] }; key { [ p, P, NoSymbol, NoSymbol ] }; key { [ uacute, slash, bracketleft, less ] }; key { [parenright, parenleft, bracketright, greater ] }; key { [ a, A, aogonek, Aogonekl ] }; key { [ s, S, ssharp, U2211 ] }; key { [ d, D, partialderivate, U2206 ] }; key { [ f, F, NoSymbol, NoSymbol ] }; key { [ g, G, NoSymbol, NoSymbol ] }; key { [ h, H, leftsinglequotemark, leftdoublequotemark]}; key { [ j, J, rightsinglequotemark, rightdoublequotemark]}; key { [ k, K, NoSymbol, NoSymbol ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ uring, quotedbl, semicolon, ellipsis ] }; key { [ section, exclam, apostrophe, dead_tilde ] }; key { [dead_diaeresis, grave, dead_diaeresis, dead_doubleacute]}; key { [ backslash, bar, NoSymbol, NoSymbol ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ x, X, NoSymbol, NoSymbol ] }; key { [ c, C, NoSymbol, copyright ] }; key { [ v, V, NoSymbol, squareroot ] }; key { [ b, B, NoSymbol, NoSymbol ] }; key { [ n, N, singlelowquotemark, doublelowquotemark]}; key { [ m, M, NoSymbol, NoSymbol ] }; key { [ comma, question, less, lessthanequal] }; key { [ period, colon, greater, greaterthanequal]}; key { [ minus, underscore, endash, emdash ] }; key { [ space, space, nobreakspace, nobreakspace ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys alternate_group xkb_symbols "ucw" { // This layout is usually used as the second group, // it contains accented characters only, no 'latin' set. // 2008 by Milan Vancura name[Group1]= "Czech (UCW, only accented letters)"; key { [zcaron, Zcaron ] }; key { [ssharp, U1E9E ] }; key { [ccaron, Ccaron ] }; key { [ccedilla, Ccedilla ] }; key { [ntilde, Ntilde ] }; key { [ncaron, Ncaron ] }; key { [lacute, Lacute ] }; key { [aacute, Aacute ] }; key { [scaron, Scaron ] }; key { [dcaron, Dcaron ] }; key { [ediaeresis, Ediaeresis ] }; key { [racute, Racute ] }; key { [uacute, Uacute ] }; key { [udiaeresis, Udiaeresis ] }; key { [ocircumflex, Ocircumflex ] }; key { [lcaron, Lcaron ] }; key { [adiaeresis, Adiaeresis ] }; key { [ecaron, Ecaron ] }; key { [eacute, Eacute ] }; key { [rcaron, Rcaron ] }; key { [tcaron, Tcaron ] }; key { [yacute, Yacute ] }; key { [uring, Uring ] }; key { [iacute, Iacute ] }; key { [oacute, Oacute ] }; key { [odiaeresis, Odiaeresis ] }; }; partial alphanumeric_keys xkb_symbols "dvorak-ucw" { // US Dvorak layout extended with UCW, // AltGr produces accented characters. include "us(dvorak)" name[Group1]= "Czech (US, Dvorak, UCW support)"; key { [ j, J, eacute, Eacute ] }; key { [ k, K, uacute, Uacute ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ a, A, aacute, Aacute ] }; key { [ o, O, oacute, Oacute ] }; key { [ e, E, ecaron, Ecaron ] }; key { [ u, U, uring, Uring ] }; key { [ i, I, iacute, Iacute ] }; key { [ d, D, dcaron, Dcaron ] }; key { [ t, T, tcaron, Tcaron ] }; key { [ n, N, ncaron, Ncaron ] }; key { [ s, S, scaron, Scaron ] }; key { [ y, Y, yacute, Yacute ] }; key { [ c, C, ccaron, Ccaron ] }; key { [ r, R, rcaron, Rcaron ] }; include "level3(ralt_switch)" }; // phonetic layout for Russian letters on an CZ (QWERTY) keyboard // originaly created by Pavel Sorejs partial alphanumeric_keys xkb_symbols "rus" { include "cz(qwerty)" name[Group1]= "Russian (Czech, phonetic)"; key { [ plus, ampersand, 1 , 1 ] }; key { [ Cyrillic_hardsign, 2, 2 , 2 ] }; key { [ Cyrillic_sha, Cyrillic_SHA, 3 , 3 ] }; key { [ Cyrillic_che, Cyrillic_CHE, 4 , 4 ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA, 5 , 5 ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE, 6 , 6 ] }; key { [ quotedbl, 4, 7 , 7 ] }; key { [ section, 5, 8 , 8 ] }; key { [ dollar, 6, 9 , 9 ] }; key { [ equal, 7, 0 , 0 ] }; key { [ percent, 8 ] }; key { [ apostrophe, 9 ] }; key { [ comma, question ] }; key { [ period, exclam ] }; key { [ minus, slash ] }; key { [ semicolon, colon ] }; key { [ bar, brokenbar ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ numerosign, 1, q, Q ] }; key { [ Cyrillic_yu, Cyrillic_YU, w, W ] }; key { [ Cyrillic_ie, Cyrillic_IE, e, E ] }; key { [ Cyrillic_er, Cyrillic_ER, r, R ] }; key { [ Cyrillic_te, Cyrillic_TE, t, T ] }; key { [ Cyrillic_yeru, Cyrillic_YERU, y, Y ] }; key { [ Cyrillic_u, Cyrillic_U, u, U ] }; key { [ Cyrillic_i, Cyrillic_I, i, I ] }; key { [ Cyrillic_o, Cyrillic_O, o, O ] }; key { [ Cyrillic_pe, Cyrillic_PE, p, P ] }; key { [ Cyrillic_e, Cyrillic_E, bracketleft, division ] }; key { [ parenright, parenleft, bracketright, multiply ] }; key { [ Cyrillic_a, Cyrillic_A, a, A ] }; key { [ Cyrillic_es, Cyrillic_ES, s, S ] }; key { [ Cyrillic_de, Cyrillic_DE, d, D ] }; key { [ Cyrillic_ef, Cyrillic_EF, f, F ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, g, G ] }; key { [ Cyrillic_ha, Cyrillic_HA, h, H ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, j, J ] }; key { [ Cyrillic_ka, Cyrillic_KA, k, K ] }; key { [ Cyrillic_el, Cyrillic_EL, l, L ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, less, greater ] }; key { [ Cyrillic_ze, Cyrillic_ZE, z, Z ] }; key { [ Cyrillic_ya, Cyrillic_YA, x, X ] }; key { [ Cyrillic_tse, Cyrillic_TSE, c, C ] }; key { [ Cyrillic_ve, Cyrillic_VE, v, V ] }; key { [ Cyrillic_be, Cyrillic_BE, b, B ] }; key { [ Cyrillic_en, Cyrillic_EN, n, N ] }; key { [ Cyrillic_em, Cyrillic_EM, m, M ] }; key { [ backslash, brokenbar ] }; include "level3(ralt_switch)" }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/cz(sun_type6)" }; xkb_symbols "prog" { // cz-prog 1.0 2019-05-15 by Viktor Grešák and Tomáš Hudec // // Programmer keyboard. Based on the US layout with accented Czech letters and dead keys. // Using AltGr and a key from the 1st row generates original level 2 US key as level 3 except TLDE and AE12. // Using AltGr+Shift on accented letters generates its uppercase variant. // Using AltGr or AltGr+Shift on letters which have accent in Czech but are not on the 1st row directly accessible generate accented letters, // i.e. [d, D], [t, T], [n, N], [o, O] generate with AltGr and AltGr+Shift: [dcaron, Dcaron], [tcaron, Tcaron], [ncaron, Ncaron], [oacute, Oacute]. // Other Czech letters besides alphanumeric keys (like uacute, uring) are generated using AltGr. name[Group1]="Czech (programming)"; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N, ncaron, Ncaron ] }; key { [ m, M ] }; key { [ comma, less, multiply ] }; key { [ period, greater, division ] }; key { [ slash, question, dead_abovedot ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D, dcaron, Dcaron ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon, uring, Uring ] }; key { [ apostrophe, quotedbl, section ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T, tcaron, Tcaron ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O, oacute, Oacute ] }; key { [ p, P ] }; key { [ bracketleft, braceleft, uacute, Uacute ] }; key { [ bracketright, braceright ] }; key { [ plus, 1, exclam, NoSymbol ] }; key { [ ecaron, 2, at, Ecaron ] }; key { [ scaron, 3, numbersign, Scaron ] }; key { [ ccaron, 4, dollar, Ccaron ] }; key { [ rcaron, 5, percent, Rcaron ] }; key { [ zcaron, 6, asciicircum, Zcaron ] }; key { [ yacute, 7, ampersand, Yacute ] }; key { [ aacute, 8, asterisk, Aacute ] }; key { [ iacute, 9, parenleft, Iacute ] }; key { [ eacute, 0, parenright, Eacute ] }; key { [ equal, minus, underscore, U2212 ] }; key { [ dead_acute, dead_caron, plusminus, notequal ] }; key { [ backslash, bar, dead_diaeresis ] }; key { [ BackSpace, BackSpace ] }; key { [ Caps_Lock ] }; key { [ Menu, Multi_key ] }; key { [ Alt_L, Meta_L ] }; key { [ Control_L ] }; key { [ Shift_L ] }; key { [ Super_L ] }; key { [ ISO_Level3_Shift ] }; key { [ Control_R ] }; key { [ Return ] }; key { [ Shift_R ] }; key { [ Super_R ] }; key { [ space ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ grave, asciitilde ] }; include "level3(ralt_switch)" }; xkb_symbols "typo" { // cz-typo 1.0 2019-05-15 by Viktor Grešák and Tomáš Hudec // // Contains typographic symbols in third and fourth level. // It is intended to be used in conjuction with other existing layout, e.g. setxkbmap -symbols "pc+cz(basic)+cz(typo)+inet(evdev)" name[Group1]="Czech (typographic)"; key { [ NoSymbol, NoSymbol, degree, U2300 ] }; key { [ NoSymbol, NoSymbol, multiply, U22C5 ] }; key { [ NoSymbol, NoSymbol, ampersand, copyright ] }; key { [ NoSymbol, NoSymbol, at, ordfeminine ] }; key { [ NoSymbol, NoSymbol, enfilledcircbullet, enopencircbullet ] }; key { [ NoSymbol, NoSymbol, U203A, U2039 ] }; key { [ NoSymbol, NoSymbol, doublelowquotemark, leftdoublequotemark ] }; key { [ NoSymbol, NoSymbol, ellipsis, rightdoublequotemark ] }; key { [ NoSymbol, NoSymbol, endash, emdash ] }; key { [ NoSymbol, NoSymbol, UFB00, UFB05 ] }; key { [ NoSymbol, NoSymbol, U2010, U2011 ] }; key { [ NoSymbol, NoSymbol, guillemotright, guillemotleft ] }; key { [ NoSymbol, NoSymbol, dagger, doubledagger ] }; key { [ NoSymbol, NoSymbol, UFB02, UFB04 ] }; key { [ NoSymbol, NoSymbol, NoSymbol, UFB03 ] }; key { [ NoSymbol, NoSymbol, U2030, registered ] }; key { [ NoSymbol, NoSymbol, leftarrow ] }; key { [ NoSymbol, NoSymbol, downarrow, uparrow ] }; key { [ NoSymbol, NoSymbol, rightarrow, UFB01 ] }; key { [ NoSymbol, NoSymbol, minutes, seconds ] }; key { [ NoSymbol, NoSymbol, NoSymbol, rightsinglequotemark ] }; key { [ NoSymbol, NoSymbol, underscore, U2212 ] }; key { [ space, space, space, nobreakspace ] }; key { [ NoSymbol, NoSymbol, singlelowquotemark, leftsinglequotemark ] }; }; xkb_symbols "coder" { // US layout with Czech chars under AltGr // for touch-typing programmers who need to write Czech occasionally // https://github.com/michalkahle/czech-coder-xkb include "us" name[Group1]= "Czech (coder)"; key {[ grave, asciitilde, semicolon, dead_abovering ]}; key {[ 2, at, ecaron, Ecaron ]}; key {[ 3, numbersign, scaron, Scaron ]}; key {[ 4, dollar, ccaron, Ccaron ]}; key {[ 5, percent, rcaron, Rcaron ]}; key {[ 6, asciicircum, zcaron, Zcaron ]}; key {[ 7, ampersand, yacute, Yacute ]}; key {[ 8, asterisk, aacute, Aacute ]}; key {[ 9, parenleft, iacute, Iacute ]}; key {[ 0, parenright, eacute, Eacute ]}; key {[ equal, plus, dead_acute, dead_caron ]}; key {[ e, E, e, EuroSign ]}; key {[ bracketleft, braceleft, uacute, Uacute ]}; key {[ semicolon, colon, uring, Uring ]}; key {[ apostrophe, quotedbl, section, quotedbl ]}; key {[ backslash, bar, dead_diaeresis, apostrophe ]}; include "level3(ralt_switch)" }; xkb_symbols "prog_typo" { // cz-prog-typo 1.0 2019-06-17 by Viktor Grešák and Tomáš Hudec // // Programmer + Typographic keyboard. Based on the US layout with accented Czech letters and dead keys. // Using AltGr and a key from the 1st row generates original level 2 US key as level 3 except TLDE and AE12. // Using AltGr+Shift on accented letters generates its uppercase variant. // Using AltGr or AltGr+Shift on letters which have accent in Czech but are not on the 1st row directly accessible generate accented letters, // i.e. [d, D], [t, T], [n, N], [o, O] generate with AltGr and AltGr+Shift: [dcaron, Dcaron], [tcaron, Tcaron], [ncaron, Ncaron], [oacute, Oacute]. // Other Czech letters besides alphanumeric keys (like uacute, uring) are generated using AltGr. // // Contains typographic symbols in third and fourth level. name[Group1]="Czech (programming, typographic)"; include "cz(prog)" include "cz(typo)" }; PK(f[nOU U symbols/pcnu[default partial alphanumeric_keys modifier_keys xkb_symbols "pc105" { key { [ Escape ] }; // The extra key on many European keyboards: key { [ less, greater, bar, brokenbar ] }; // The following keys are common to all layouts. key { [ backslash, bar ] }; key { [ space ] }; include "srvr_ctrl(fkey2vt)" include "pc(editing)" include "keypad(x11)" key { [ BackSpace, BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ Return ] }; key { [ Caps_Lock ] }; key { [ Num_Lock ] }; key { [ Shift_L ] }; key { [ Control_L ] }; key { [ Super_L ] }; key { [ Shift_R ] }; key { [ Control_R ] }; key { [ Super_R ] }; key { [ Menu ] }; // Beginning of modifier mappings. modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L, Control_R }; modifier_map Mod2 { Num_Lock }; modifier_map Mod4 { Super_L, Super_R }; // Fake keys for virtual<->real modifiers mapping: key { [ ISO_Level3_Shift ] }; key { [ Mode_switch ] }; modifier_map Mod5 { , }; key { [ NoSymbol, Alt_L ] }; include "altwin(meta_alt)" key { [ NoSymbol, Meta_L ] }; modifier_map Mod1 { }; key { [ NoSymbol, Super_L ] }; modifier_map Mod4 { }; key { [ NoSymbol, Hyper_L ] }; modifier_map Mod4 { }; // End of modifier mappings. key { [ XF86Display ] }; key { [ XF86KbdLightOnOff ] }; key { [ XF86KbdBrightnessDown ] }; key { [ XF86KbdBrightnessUp ] }; }; hidden partial alphanumeric_keys xkb_symbols "editing" { key { type= "PC_ALT_LEVEL2", symbols[Group1]= [ Print, Sys_Req ] }; key { [ Scroll_Lock ] }; key { type= "PC_CONTROL_LEVEL2", symbols[Group1]= [ Pause, Break ] }; key { [ Insert ] }; key { [ Home ] }; key { [ Prior ] }; key { [ Delete ] }; key { [ End ] }; key { [ Next ] }; key { [ Up ] }; key { [ Left ] }; key { [ Down ] }; key { [ Right ] }; }; PK(f[#symbols/sun_vndr/chnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6_de" { name[Group1]= "German (Switzerland, Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ section, degree ] }; key { [ 1, plus, bar ] }; key { [ 2, quotedbl, at ] }; key { [ 3, asterisk, numbersign ] }; key { [ 4, ccedilla, asciicircum ] }; key { [ 5, percent, asciitilde ] }; key { [ 6, ampersand, notsign ] }; key { [ 7, slash, brokenbar ] }; key { [ 8, parenleft, cent ] }; key { [ 9, parenright ] }; key { [ 0, equal, grave ] }; key { [ apostrophe, question, dead_acute ] }; key { [ dead_circumflex, dead_grave, dead_tilde ] }; key { [ e, E, EuroSign ] }; key { [ z, Z ] }; key { [ udiaeresis, egrave, bracketleft ] }; key { [ dead_diaeresis, exclam, bracketright ] }; key { [ odiaeresis, eacute ] }; key { [ adiaeresis, agrave, braceleft ] }; key { [ dollar, sterling, braceright ] }; key { [ less, greater, backslash ] }; key { [ y, Y ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "sun_type6_fr" { name[Group1]= "French (Switzerland, Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ section, degree ] }; key { [ 1, plus, bar ] }; key { [ 2, quotedbl, at ] }; key { [ 3, asterisk, numbersign ] }; key { [ 4, ccedilla, asciicircum ] }; key { [ 5, percent, asciitilde ] }; key { [ 6, ampersand, notsign ] }; key { [ 7, slash, brokenbar ] }; key { [ 8, parenleft, cent ] }; key { [ 9, parenright ] }; key { [ 0, equal, grave ] }; key { [ apostrophe, question, dead_acute ] }; key { [ dead_circumflex, dead_grave, dead_tilde ] }; key { [ e, E, EuroSign ] }; key { [ z, Z ] }; key { [ egrave, udiaeresis, bracketleft ] }; key { [ dead_diaeresis, exclam, bracketright ] }; key { [ eacute, odiaeresis ] }; key { [ agrave, adiaeresis, braceleft ] }; key { [ dollar, sterling, braceright ] }; key { [ less, greater, backslash ] }; key { [ y, Y ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/ch(sun_type6_de)" }; partial alphanumeric_keys xkb_symbols "legacy" { include "ch(legacy)" }; partial alphanumeric_keys xkb_symbols "de" { include "ch(de)" }; partial alphanumeric_keys xkb_symbols "de_Sundeadkeys" { include "ch(de_Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "de_sundeadkeys" { include "ch(de_sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "de_nodeadkeys" { include "ch(de_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "fr" { include "ch(fr)" }; partial alphanumeric_keys xkb_symbols "fr_Sundeadkeys" { include "ch(fr_Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "fr_sundeadkeys" { include "ch(fr_sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "fr_nodeadkeys" { include "ch(fr_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "de_mac" { include "ch(de_mac)" }; partial alphanumeric_keys xkb_symbols "fr_mac" { include "ch(fr_mac)" }; PK(f[_Ssymbols/sun_vndr/ptnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]= "Portuguese (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ less, greater ] }; key { [ backslash, bar ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numbersign, sterling ] }; key { [ 4, dollar, section ] }; key { [ 5, percent, asciitilde ] }; key { [ 6, ampersand, asciicircum ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ apostrophe, question, grave ] }; key { [ guillemotleft, guillemotright ] }; key { [ e, E, EuroSign ] }; key { [ plus, asterisk, dead_diaeresis ] }; key { [ dead_acute, dead_grave ] }; key { [ dead_tilde, dead_circumflex ] }; key { [ ccedilla, Ccedilla ] }; key { [ masculine, ordfeminine ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/pt(sun_type6)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "pt(Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "pt(sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "pt(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "mac" { include "pt(mac)" }; partial alphanumeric_keys xkb_symbols "mac_sundeadkeys" { include "pt(mac_sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { include "pt(mac_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "nativo" { include "pt(nativo)" }; partial alphanumeric_keys xkb_symbols "nativo-us" { include "pt(nativo-us)" }; partial alphanumeric_keys xkb_symbols "nativo-epo" { include "pt(nativo-epo)" }; PK(f[ symbols/sun_vndr/nlnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // default partial alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Dutch (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ at, section, notsign ] }; key { [ 1, exclam, onesuperior ] }; key { [ 2, quotedbl, twosuperior ] }; key { [ 3, numbersign, threesuperior ] }; key { [ 4, dollar, onequarter ] }; key { [ 5, percent, onehalf ] }; key { [ 6, ampersand, threequarters ] }; key { [ 7, underscore, sterling ] }; key { [ 8, parenleft, braceleft ] }; key { [ 9, parenright, braceright ] }; key { [ 0, apostrophe, grave ] }; key { [ slash, question, backslash ] }; key { [ degree, dead_tilde, dead_cedilla ] }; key { [ e, E, EuroSign ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [dead_diaeresis, dead_circumflex ] }; key { [ asterisk, bar, asciitilde ] }; key { [ a, A ] }; key { [ s, S, ssharp, U1E9E ] }; key { [ f, F ] }; key { [ plus, plusminus ] }; key { [dead_acute, dead_grave ] }; key { [ less, greater, asciicircum ] }; key { [bracketright, bracketleft, brokenbar ] }; key { [ z, Z, guillemotleft ] }; key { [ x, X, guillemotright ] }; key { [ c, C, cent ] }; key { [ n, N ] }; key { [ m, M, mu ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, equal ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/nl(sun_type6)" }; partial alphanumeric_keys xkb_symbols "std" { include "nl(std)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "nl(Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "nl(sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "mac" { include "nl(mac)" }; PK(f[ji i symbols/sun_vndr/krnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]= "Korean (Sun Type 6/7)"; include "sun_vndr/us(sunbasic)" // A few keys are different key { [ Hangul ] }; key { [ Hangul_Hanja ] }; key { [ Hangul ] }; key { [ Hangul_Hanja ] }; key { [ backslash, bar, brokenbar ] }; }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/kr(sun_type6)" }; partial alphanumeric_keys xkb_symbols "kr106" { include "kr(kr106)" }; partial alphanumeric_keys xkb_symbols "kr104" { include "kr(kr104)" }; partial function_keys xkb_symbols "hw_keys" { include "kr(hw_keys)" }; partial function_keys xkb_symbols "ralt_hangul" { include "kr(ralt_hangul)" }; partial function_keys xkb_symbols "rctrl_hangul" { include "kr(rctrl_hangul)" }; partial function_keys xkb_symbols "ralt_hanja" { include "kr(ralt_hanja)" }; partial function_keys xkb_symbols "rctrl_hanja" { include "kr(rctrl_hanja)" }; PK(f[X$symbols/sun_vndr/finu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Finnish (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ section, onehalf ] }; key { [ 1, exclam ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numbersign, sterling ] }; key { [ 4, currency, dollar ] }; key { [ 5, percent ] }; key { [ 6, ampersand ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ plus, question, backslash ] }; key { [ dead_acute, dead_grave ] }; key { [ e, E, EuroSign ] }; key { [ aring, Aring ] }; key { [ dead_diaeresis, asciicircum, asciitilde ] }; key { [ odiaeresis, Odiaeresis ] }; key { [ adiaeresis, Adiaeresis ] }; key { [ apostrophe, asterisk, grave ] }; key { [ less, greater, bar ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" include "kpdl(comma)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/fi(sun_type6)" }; partial alphanumeric_keys xkb_symbols "kotoistus" { include "fi(kotoistus)" }; partial alphanumeric_keys xkb_symbols "classic" { include "fi(classic)" }; partial alphanumeric_keys xkb_symbols "fi" { include "fi(fi)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "fi(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "smi" { include "fi(smi)" }; partial alphanumeric_keys xkb_symbols "mac" { include "fi(mac)" }; PK(f[^symbols/sun_vndr/nonu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Norwegian (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ bar, section ] }; key { [ less, greater ] }; key { [ apostrophe, asterisk, grave ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numbersign, sterling ] }; key { [ 4, currency, dollar ] }; key { [ 5, percent, asciitilde ] }; key { [ 6, ampersand, asciicircum ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ plus, question ] }; key { [ backslash, dead_grave, dead_acute ] }; key { [ e, E, EuroSign ] }; key { [ aring, Aring ] }; key { [ dead_diaeresis, dead_circumflex, dead_tilde ] }; key { [ oslash, Oslash ] }; key { [ ae, AE ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" include "kpdl(comma)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/no(sun_type6)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "no(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "no(dvorak)" }; partial alphanumeric_keys xkb_symbols "smi" { include "no(smi)" }; partial alphanumeric_keys xkb_symbols "smi_nodeadkeys" { include "no(smi_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "mac" { include "no(mac)" }; partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { include "no(mac_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "colemak" { include "no(colemak)" }; PK(f[Γ=CCsymbols/sun_vndr/lvnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Latvian (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ grave, asciitilde, acute, asciitilde ] }; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, at, twosuperior, oneeighth ] }; key { [ 3, numbersign, threesuperior, sterling ] }; key { [ 4, dollar, EuroSign, cent ] }; key { [ 5, percent, onehalf, threeeighths ] }; key { [ 6, asciicircum, threequarters, fiveeighths ] }; key { [ 7, ampersand, braceleft, seveneighths ] }; key { [ 8, asterisk, bracketleft, trademark ] }; key { [ 9, parenleft, bracketright, plusminus ] }; key { [ 0, parenright, braceright, degree ] }; key { [ minus, underscore, backslash, questiondown ] }; key { [ equal, plus, endash, emdash ] }; key { [ q, Q, q, Q ] }; key { [ w, W, w, W ] }; key { [ e, E, emacron, Emacron ] }; key { [ r, R, rcedilla, Rcedilla ] }; key { [ t, T, t, T ] }; key { [ y, Y, y, Y ] }; key { [ u, U, umacron, Umacron ] }; key { [ i, I, imacron, Imacron ] }; key { [ o, O, omacron, Omacron ] }; key { [ p, P, p, P ] }; key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; key { [ bracketright, braceright, guillemotright, rightdoublequotemark ] }; key { [ a, A, amacron, Amacron ] }; key { [ s, S, scaron, Scaron ] }; key { [ d, D, d, D ] }; key { [ f, F, f, F ] }; key { [ g, G, gcedilla, Gcedilla ] }; key { [ h, H, h, H ] }; key { [ j, J, j, J ] }; key { [ k, K, kcedilla, Kcedilla ] }; key { [ l, L, lcedilla, Lcedilla ] }; key { [ semicolon, colon, semicolon, colon ] }; key { [ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ] }; key { [ backslash, bar, degree, brokenbar ] }; key { [ backslash, bar, grave, breve ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ x, X, x, X ] }; key { [ c, C, ccaron, Ccaron ] }; key { [ v, V, v, V ] }; key { [ b, B, b, B ] }; key { [ n, N, ncedilla, Ncedilla ] }; key { [ m, M, m, M ] }; key { [ comma, less, horizconnector, multiply ] }; key { [ period, greater, periodcentered, division ] }; key { [ slash, question, slash, abovedot ] }; include "level3(ralt_switch)" }; alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/lv(sun_type6)" }; partial alphanumeric_keys xkb_symbols "apostrophe" { include "lv(apostrophe)" }; partial alphanumeric_keys xkb_symbols "tilde" { include "lv(tilde)" }; partial alphanumeric_keys xkb_symbols "fkey" { include "lv(fkey)" }; partial alphanumeric_keys xkb_symbols "adapted" { include "lv(adapted)" }; partial alphanumeric_keys xkb_symbols "ergonomic" { include "lv(ergonomic)" }; partial alphanumeric_keys xkb_symbols "modern" { include "lv(modern)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "lv(dvorak)" }; partial alphanumeric_keys xkb_symbols "ykeydvorak" { include "lv(ykeydvorak)" }; partial alphanumeric_keys xkb_symbols "minuskeydvorak" { include "lv(minuskeydvorak)" }; partial alphanumeric_keys xkb_symbols "dvorakprogr" { include "lv(dvorakprogr)" }; partial alphanumeric_keys xkb_symbols "ykeydvorakprogr" { include "lv(ykeydvorakprogr)" }; partial alphanumeric_keys xkb_symbols "minuskeydvorakprogr" { include "lv(minuskeydvorakprogr)" }; partial alphanumeric_keys xkb_symbols "colemak" { include "lv(colemak)" }; partial alphanumeric_keys xkb_symbols "apostrophecolemak" { include "lv(apostrophecolemak)" }; PK(f[sHsymbols/sun_vndr/canu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Multilingual (Canada, Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ slash, bar, backslash ]}; key { [ 1, exclam, plusminus ]}; key { [ 2, at ]}; key { [ 3, numbersign, sterling ]}; key { [ 4, dollar, cent ]}; key { [ 5, percent, currency ]}; key { [ 6, question, notsign ]}; key { [ 7, ampersand, braceleft ]}; key { [ 8, asterisk, braceright ]}; key { [ 9, parenleft, bracketleft ]}; key { [ 0, parenright, bracketright ]}; key { [ minus, underscore, onehalf ]}; key { [ equal, plus, notsign ]}; key { [ e, E, EuroSign ]}; key { [ o, O, section ]}; key { [ p, P, paragraph ]}; key { [ dead_circumflex, dead_diaeresis, dead_grave ]}; key { [ ccedilla, Ccedilla, asciitilde ]}; key { [ semicolon, colon, degree ]}; key { [ egrave, Egrave, braceleft ]}; key { [ agrave, Agrave, braceright ]}; key { [ agrave, Agrave, braceright ]}; key { [ uacute, Uacute ]}; key { [ z, Z, guillemotleft ]}; key { [ x, X, guillemotright ]}; key { [ m, M, mu ]}; key { [ comma, apostrophe, less ]}; key { [ period, quotedbl, greater ]}; key { [ eacute, Eacute, grave ]}; include "level3(ralt_switch)" }; alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/ca(sun_type6)" }; partial alphanumeric_keys xkb_symbols "fr" { include "ca(fr)" }; partial alphanumeric_keys xkb_symbols "fr-dvorak" { include "ca(fr-dvorak)" }; partial alphanumeric_keys xkb_symbols "fr-legacy" { include "ca(fr-legacy)" }; partial alphanumeric_keys xkb_symbols "multi" { include "ca(multi)" }; partial alphanumeric_keys xkb_symbols "multi-2gr" { include "ca(multi-2gr)" }; partial alphanumeric_keys xkb_symbols "ike" { include "ca(ike)" }; partial alphanumeric_keys xkb_symbols "multix" { include "ca(multix)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "ca(olpc)" }; partial alphanumeric_keys xkb_symbols "eng" { include "ca(eng)" }; partial alphanumeric_keys xkb_symbols "kut" { include "ca(kut)" }; partial alphanumeric_keys xkb_symbols "shs" { include "ca(shs)" }; PK(f[symbols/sun_vndr/solarisnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial xkb_symbols "defaults_common" { key { [ XF86AudioMute ] }; key { [ XF86AudioLowerVolume ] }; key { [ XF86AudioRaiseVolume ] }; key { [ XF86PowerOff ] }; key { [ Cancel ] }; key { [ Redo ] }; key { [ SunProps ] }; key { [ Undo ] }; key { [ SunFront ] }; key { [ XF86Copy ] }; key { [ SunOpen ] }; key { [ XF86Paste ] }; key { [ Find ] }; key { [ XF86Cut ] }; key { [ Help ] }; key { [ Linefeed ] }; key { [ Alt_L, Alt_L ] }; key { [ Meta_L ] }; key { [ Meta_R ] }; // The following is needed for virtual hotkeys key { [ XF86Sleep ] }; key { [ XF86ScreenSaver ] }; key { [ XF86Display ] }; // Common Sun Modifiers modifier_map Shift { Shift_R, Shift_L }; modifier_map Mod2 { Num_Lock }; modifier_map Mod4 { Meta_L, Meta_R }; }; partial default xkb_symbols "defaults" { include "sun_vndr/solaris(defaults_common)" modifier_map Mod1 { Alt_L }; }; partial xkb_symbols "defaults_type7jp" { include "sun_vndr/solaris(defaults_common)" modifier_map Mod1 { Alt_L, Alt_R }; }; partial xkb_symbols "sun_compat" { key { [ L1, L1, SunStop ] }; key { [ L2, L2, SunAgain ] }; key { [ L3, L3, SunProps ] }; key { [ L4, L4, SunUndo ] }; key { [ L5, L5, SunFront ] }; key { [ L6, L6, SunCopy ] }; key { [ L7, L7, SunOpen ] }; key { [ L8, L8, SunPaste ] }; key { [ L9, L9, SunFind ] }; key { [ L10, L10, SunCut ] }; // F11 & F12 are mapped to SunF36 and SunF37 since they were added // after F11-F35 were already assigned on Sun keyboards key { [ SunF36 ], [ F11 ] }; key { [ SunF37 ], [ F12 ] }; // These were added to the keyboard much later and simply got mapped // to their logical names key { [ Help ] }; key { [ SunAudioMute, SunVideoDegauss ] }; key { [ SunAudioLowerVolume, SunVideoLowerBrightness ] }; key { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] }; key { [ XF86Sleep, XF86Hibernate ] }; }; PK(f[Gsymbols/sun_vndr/twnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // default partial alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]= "Taiwanese (Sun Type 6/7)"; include "sun_vndr/us(sunbasic)" key { [ Henkan_Mode ] }; key { [ backslash, bar, brokenbar ] }; }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/tw(sun_type6)" }; partial alphanumeric_keys xkb_symbols "tw" { include "tw(tw)" }; partial alphanumeric_keys xkb_symbols "indigenous" { include "tw(indigenous)" }; partial alphanumeric_keys xkb_symbols "saisiyat" { include "tw(saisiyat)" }; PK(f[?w$symbols/sun_vndr/runu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]= "Russian (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key.type[group1]="FOUR_LEVEL"; key { [ 1, exclam, 1, exclam ] }; key { [ 2, quotedbl, 2, at ] }; key { [ 3, numerosign, 3, numbersign ] }; key { [ 4, percent, 4, dollar ] }; key { [ 5, colon, 5, percent ] }; key { [ 7, period, 7, ampersand ] }; key { [ 8, semicolon, 8, asterisk ] }; key { [ slash, question, backslash, bar ] }; key { [ ediaeresis, Ediaeresis, slash, question ] }; key { [ backslash, bar, backslash, bar ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, q, Q ] }; key { [ Cyrillic_tse, Cyrillic_TSE, w, W ] }; key { [ Cyrillic_u, Cyrillic_U, e, E ] }; key { [ Cyrillic_ka, Cyrillic_KA, r, R ] }; key { [ Cyrillic_ie, Cyrillic_IE, t, T ] }; key { [ Cyrillic_en, Cyrillic_EN, y, Y ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, u, U ] }; key { [ Cyrillic_sha, Cyrillic_SHA, i, I ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA, o, O ] }; key { [ Cyrillic_ze, Cyrillic_ZE, p, P ] }; key { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] }; key { [Cyrillic_hardsign,Cyrillic_HARDSIGN, bracketright, braceright ] }; key { [ Cyrillic_ef, Cyrillic_EF, a, A ] }; key { [ Cyrillic_yeru, Cyrillic_YERU, s, S ] }; key { [ Cyrillic_ve, Cyrillic_VE, d, D ] }; key { [ Cyrillic_a, Cyrillic_A, f, F ] }; key { [ Cyrillic_pe, Cyrillic_PE, g, G ] }; key { [ Cyrillic_er, Cyrillic_ER, h, H ] }; key { [ Cyrillic_o, Cyrillic_O, j, J ] }; key { [ Cyrillic_el, Cyrillic_EL, k, K ] }; key { [ Cyrillic_de, Cyrillic_DE, l, L ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE, semicolon, colon ] }; key { [ Cyrillic_e, Cyrillic_E, apostrophe, quotedbl ] }; key { [ Cyrillic_ya, Cyrillic_YA, z, Z ] }; key { [ Cyrillic_che, Cyrillic_CHE, x, X ] }; key { [ Cyrillic_es, Cyrillic_ES, c, C ] }; key { [ Cyrillic_em, Cyrillic_EM, v, V ] }; key { [ Cyrillic_i, Cyrillic_I, b, B ] }; key { [ Cyrillic_te, Cyrillic_TE, n, N ] }; key { [Cyrillic_softsign,Cyrillic_SOFTSIGN, m, M ] }; key { [ Cyrillic_be, Cyrillic_BE, comma, less ] }; key { [ Cyrillic_yu, Cyrillic_YU, period, greater ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/ru(sun_type6)" }; partial alphanumeric_keys xkb_symbols "winkeys" { include "ru(winkeys)" }; partial alphanumeric_keys xkb_symbols "common" { include "ru(common)" }; partial alphanumeric_keys xkb_symbols "legacy" { include "ru(legacy)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "ru(olpc)" }; partial alphanumeric_keys xkb_symbols "typewriter" { include "ru(typewriter)" }; partial alphanumeric_keys xkb_symbols "typewriter-legacy" { include "ru(typewriter-legacy)" }; partial alphanumeric_keys xkb_symbols "phonetic" { include "ru(phonetic)" }; partial alphanumeric_keys xkb_symbols "phonetic_winkeys" { include "ru(phonetic_winkeys)" }; partial alphanumeric_keys xkb_symbols "tt" { include "ru(tt)" }; partial alphanumeric_keys xkb_symbols "os_legacy" { include "ru(os_legacy)" }; partial alphanumeric_keys xkb_symbols "os_winkeys" { include "ru(os_winkeys)" }; partial alphanumeric_keys xkb_symbols "cv" { include "ru(cv)" }; partial alphanumeric_keys xkb_symbols "udm" { include "ru(udm)" }; partial alphanumeric_keys xkb_symbols "cv_latin" { include "ru(cv_latin)" }; partial alphanumeric_keys xkb_symbols "kom" { include "ru(kom)" }; partial alphanumeric_keys xkb_symbols "sah" { include "ru(sah)" }; partial alphanumeric_keys xkb_symbols "xal" { include "ru(xal)" }; partial alphanumeric_keys xkb_symbols "dos" { include "ru(dos)" }; partial alphanumeric_keys xkb_symbols "bak" { include "ru(bak)" }; partial alphanumeric_keys xkb_symbols "srp" { include "ru(srp)" }; partial alphanumeric_keys xkb_symbols "chm" { include "ru(chm)" }; partial alphanumeric_keys xkb_symbols "chu" { include "ru(chu)" }; partial alphanumeric_keys xkb_symbols "ruu" { include "ru(ruu)" }; PK(f[+&|>>symbols/sun_vndr/frnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="French (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ twosuperior ] }; key { [ ampersand, 1 ] }; key { [ eacute, 2, asciitilde ] }; key { [ quotedbl, 3, numbersign ] }; key { [ apostrophe, 4, braceleft ] }; key { [ parenleft, 5, bracketleft ] }; key { [ minus, 6, bar ] }; key { [ egrave, 7, grave ] }; key { [ underscore, 8, backslash ] }; key { [ ccedilla, 9, asciicircum ] }; key { [ agrave, 0, at ] }; key { [ parenright, degree, bracketright ] }; key { [ equal, plus, braceright ] }; key { [ a, A ] }; key { [ z, Z ] }; key { [ e, E, EuroSign ] }; key { [ dead_circumflex, dead_diaeresis ] }; key { [ dollar, sterling, currency ] }; key { [ q, Q ] }; key { [ m, M ] }; key { [ ugrave, percent ] }; key { [ asterisk, mu ] }; key { [ less, greater ] }; key { [ w, W ] }; key { [ comma, question ] }; key { [ semicolon, period ] }; key { [ colon, slash ] }; key { [ exclam, section ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/fr(sun_type6)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "fr(olpc)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "fr(Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "fr(sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "fr(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "oss" { include "fr(oss)" }; partial alphanumeric_keys xkb_symbols "oss_latin9" { include "fr(oss_latin9)" }; partial alphanumeric_keys xkb_symbols "oss_Sundeadkeys" { include "fr(oss_Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "oss_sundeadkeys" { include "fr(oss_sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "oss_nodeadkeys" { include "fr(oss_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "latin9" { include "fr(latin9)" }; partial alphanumeric_keys xkb_symbols "latin9_Sundeadkeys" { include "fr(latin9_Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "latin9_sundeadkeys" { include "fr(latin9_sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "latin9_nodeadkeys" { include "fr(latin9_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "bepo" { include "fr(bepo)" }; partial alphanumeric_keys xkb_symbols "bepo_latin9" { include "fr(bepo_latin9)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "fr(dvorak)" }; partial alphanumeric_keys xkb_symbols "bre" { include "fr(bre)" }; partial alphanumeric_keys xkb_symbols "oci" { include "fr(oci)" }; partial alphanumeric_keys xkb_symbols "mac" { include "fr(mac)" }; partial alphanumeric_keys xkb_symbols "geo" { include "fr(geo)" }; PK(f[#˿symbols/sun_vndr/esnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Spanish (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ masculine, ordfeminine, backslash ] }; key { [ less, greater ] }; key { [ 1, exclam, bar ] }; key { [ 2, quotedbl, at ] }; key { [ 3, periodcentered, numbersign ] }; key { [ 4, dollar, asciicircum ] }; key { [ 5, percent, asciitilde ] }; key { [ 6, ampersand, notsign ] }; key { [ 7, slash ] }; key { [ 8, parenleft ] }; key { [ 9, parenright ] }; key { [ 0, equal ] }; key { [ apostrophe, question, grave ] }; key { [ exclamdown, questiondown ] }; key { [ e, E, EuroSign ] }; key { [ dead_grave, dead_circumflex, bracketleft ] }; key { [ plus, asterisk, bracketright ] }; key { [ ntilde, Ntilde ] }; key { [ dead_acute, dead_diaeresis, braceleft ] }; key { [ ccedilla, Ccedilla, braceright ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/es(sun_type6)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "es(Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "es(sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "es(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "es(dvorak)" }; partial alphanumeric_keys xkb_symbols "cat" { include "es(cat)" }; partial alphanumeric_keys xkb_symbols "ast" { include "es(ast)" }; partial alphanumeric_keys xkb_symbols "mac" { include "es(mac)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "es(olpc)" }; partial alphanumeric_keys xkb_symbols "deadtilde" { include "es(deadtilde)" }; partial alphanumeric_keys xkb_symbols "olpc2" { include "es(olpc2)" }; PK(f[d:symbols/sun_vndr/grnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Greek (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ grave, asciitilde, onehalf ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign, sterling ] }; key { [ 4, dollar, EuroSign ] }; key { [ 5, percent, EuroSign ] }; key { [ 6, asciicircum, notsign ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright, degree ] }; key { [ minus, underscore, plusminus ] }; key { [ equal, plus ] }; key { [ semicolon, colon, periodcentered ] }; key { [ Greek_finalsmallsigma, periodcentered, Greek_SIGMA ] }; key { [ Greek_epsilon, Greek_EPSILON, EuroSign ] }; key { [ Greek_rho, Greek_RHO, registered ] }; key { [ Greek_tau, Greek_TAU ] }; key { [ Greek_upsilon, Greek_UPSILON ] }; key { [ Greek_theta, Greek_THETA ] }; key { [ Greek_iota, Greek_IOTA ] }; key { [ Greek_omicron, Greek_OMICRON ] }; key { [ Greek_pi, Greek_PI ] }; key { [ bracketleft, braceleft, guillemotleft ] }; key { [ bracketright, braceright, guillemotright ] }; key { [ Greek_alpha, Greek_ALPHA ] }; key { [ Greek_sigma, Greek_SIGMA ] }; key { [ Greek_delta, Greek_DELTA ] }; key { [ Greek_phi, Greek_PHI ] }; key { [ Greek_gamma, Greek_GAMMA ] }; key { [ Greek_eta, Greek_ETA ] }; key { [ Greek_xi, Greek_XI ] }; key { [ Greek_kappa, Greek_KAPPA ] }; key { [ Greek_lamda, Greek_LAMDA ] }; key { [ dead_acute, dead_diaeresis ] }; key { [ apostrophe, quotedbl ] }; key { [ backslash, bar, brokenbar ] }; key { [ guillemotleft, guillemotright, brokenbar ] }; key { [ Greek_zeta, Greek_ZETA ] }; key { [ Greek_chi, Greek_CHI ] }; key { [ Greek_psi, Greek_PSI, copyright ] }; key { [ Greek_omega, Greek_OMEGA ] }; key { [ Greek_beta, Greek_BETA ] }; key { [ Greek_nu, Greek_NU ] }; key { [ Greek_mu, Greek_MU ] }; key { [ comma, less, guillemotleft ] }; key { [ period, greater, guillemotright ] }; key { [ slash, question ] }; include "level3(ralt_switch)" }; alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/gr(sun_type6)" }; partial alphanumeric_keys xkb_symbols "simple" { include "gr(simple)" }; partial alphanumeric_keys xkb_symbols "bare" { include "gr(bare)" }; partial alphanumeric_keys xkb_symbols "extended" { include "gr(extended)" }; partial alphanumeric_keys xkb_symbols "polytonic" { include "gr(polytonic)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "gr(nodeadkeys)" }; PK(f[symbols/sun_vndr/dknu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Danish (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ onehalf, section ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numbersign, sterling ] }; key { [ 4, currency, dollar ] }; key { [ 5, percent, asciitilde ] }; key { [ 6, ampersand, asciicircum ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ plus, question ] }; key { [ dead_acute, dead_grave, bar ] }; key { [ e, E, EuroSign ] }; key { [ aring, Aring ] }; key { [ dead_diaeresis, dead_circumflex, dead_tilde ] }; key { [ apostrophe, asterisk, grave ] }; key { [ ae, AE ] }; key { [ oslash, Ooblique ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; key { [ less, greater, backslash ] }; include "level3(ralt_switch)" include "kpdl(comma)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/dk(sun_type6)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "dk(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "mac" { include "dk(mac)" }; partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { include "dk(mac_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "dk(dvorak)" }; PK(f[࠽jsymbols/sun_vndr/denu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="German (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ asciicircum, degree ] }; key { [ 2, quotedbl, twosuperior ] }; key { [ 3, section, threesuperior ] }; key { [ 4, dollar ] }; key { [ 6, ampersand, section ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ ssharp, question, backslash ] }; key { [ dead_acute, dead_grave ] }; key { [ q, Q, at ] }; key { [ e, E, EuroSign ] }; key { [ z, Z ] }; key { [ udiaeresis, Udiaeresis ] }; key { [ plus, asterisk, asciitilde ] }; key { [ odiaeresis, Odiaeresis ] }; key { [ adiaeresis, Adiaeresis ] }; key { [ y, Y ] }; key { [ m, M, mu ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; key { [ numbersign, apostrophe, grave ] }; key { [ less, greater, bar ] }; include "level3(ralt_switch)" include "kpdl(comma)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/de(sun_type6)" }; partial alphanumeric_keys xkb_symbols "legacy" { include "de(legacy)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "de(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "deadgraveacute" { include "de(deadgraveacute)" }; partial alphanumeric_keys xkb_symbols "deadacute" { include "de(deadacute)" }; partial alphanumeric_keys xkb_symbols "ro" { include "de(ro)" }; partial alphanumeric_keys xkb_symbols "ro_nodeadkeys" { include "de(ro_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "de(dvorak)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "de(Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "de(sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "neo_base" { include "de(neo_base)" }; partial alphanumeric_keys xkb_symbols "adnw" { include "de(adnw)" }; partial alphanumeric_keys xkb_symbols "adnw_base" { include "de(adnw_base)" }; partial alphanumeric_keys xkb_symbols "neo" { include "de(neo)" }; partial alphanumeric_keys xkb_symbols "mac" { include "de(mac)" }; partial alphanumeric_keys xkb_symbols "mac_nodeadkeys" { include "de(mac_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "dsb" { include "de(dsb)" }; partial alphanumeric_keys xkb_symbols "dsb_qwertz" { include "de(dsb_qwertz)" }; partial alphanumeric_keys xkb_symbols "qwerty" { include "de(qwerty)" }; partial alphanumeric_keys xkb_symbols "ru" { include "de(ru)" }; partial alphanumeric_keys xkb_symbols "htcdream" { include "de(htcdream)" }; partial alphanumeric_keys xkb_symbols "us" { include "de(us)" }; partial alphanumeric_keys xkb_symbols "hu" { include "de(hu)" }; PK(f[symbols/sun_vndr/brnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]= "Portuguese (Brazil, Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ apostrophe, quotedbl, notsign ] }; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, at, twosuperior, onehalf ] }; key { [ 3, numbersign, threesuperior, threequarters ] }; key { [ 4, dollar, sterling, onequarter ] }; key { [ 5, percent, cent ] }; key { [ 6, dead_diaeresis, notsign, diaeresis ] }; key { [ 7, ampersand, braceleft ] }; key { [ 8, asterisk, bracketleft ] }; key { [ 9, parenleft, bracketright ] }; key { [ 0, parenright, braceright ] }; key { [ minus, underscore, backslash ] }; key { [ equal, plus, section ] }; key { [ e, E, EuroSign ] }; key { [ r, R, registered ] }; key { [ dead_acute, dead_grave, acute, grave ] }; key { [ bracketleft, braceleft, ordfeminine ] }; key { [ ccedilla, Ccedilla, exclamdown ] }; key { [ dead_tilde, dead_circumflex, asciitilde, asciicircum ] }; key { [ bracketright, braceright, masculine ] }; key { [ bracketright, braceright, masculine ] }; key { [ slash, bar, degree ] }; key { [ z, Z, guillemotleft ] }; key { [ x, X, guillemotright ] }; key { [ c, C, copyright ] }; key { [ m, M, mu ] }; key { [ comma, less, question ] }; key { [ period, greater, questiondown ] }; key { [ semicolon, colon ] }; key { [ slash, question, degree, questiondown ] }; key { [ KP_Decimal ] }; key { [ KP_Delete, comma ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/br(sun_type6)" }; partial alphanumeric_keys xkb_symbols "abnt2" { include "br(abnt2)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "br(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "thinkpad" { include "br(thinkpad)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "br(olpc)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "br(dvorak)" }; partial alphanumeric_keys xkb_symbols "nativo" { include "br(nativo)" }; partial alphanumeric_keys xkb_symbols "nativo-us" { include "br(nativo-us)" }; partial alphanumeric_keys xkb_symbols "nativo-epo" { include "br(nativo-epo)" }; PK(f[vTf symbols/sun_vndr/gbnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="English (UK, Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ grave, notsign, brokenbar ] }; key { [ 2, quotedbl ] }; key { [ 3, sterling ] }; key { [ 4, dollar, EuroSign ] }; key { [ numbersign, asciitilde ] }; key { [ apostrophe, at ] }; key { [ backslash, bar ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/gb(sun_type6)" }; partial alphanumeric_keys xkb_symbols "intl" { include "gb(intl)" }; partial alphanumeric_keys xkb_symbols "extd" { include "gb(extd)" }; partial alphanumeric_keys xkb_symbols "colemak" { include "gb(colemak)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "gb(dvorak)" }; partial alphanumeric_keys xkb_symbols "dvorakukp" { include "gb(dvorakukp)" }; partial alphanumeric_keys xkb_symbols "mac" { include "gb(mac)" }; partial alphanumeric_keys xkb_symbols "mac_intl" { include "gb(mac_intl)" }; PK(f[uMggsymbols/sun_vndr/plnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Polish (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ e, E, eogonek, Eogonek ] }; key { [ u, U, EuroSign ] }; key { [ o, O, oacute, Oacute ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ a, A, aogonek, Aogonek ] }; key { [ s, S, sacute, Sacute ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ backslash, bar, brokenbar ] }; key { [ less, greater, bar, brokenbar ] }; key { [ z, Z, zabovedot, Zabovedot ] }; key { [ x, X, zacute, Zacute ] }; key { [ c, C, cacute, Cacute ] }; key { [ n, N, nacute, Nacute ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/pl(sun_type6)" }; partial alphanumeric_keys xkb_symbols "legacy" { include "pl(legacy)" }; partial alphanumeric_keys xkb_symbols "qwertz" { include "pl(qwertz)" }; partial alphanumeric_keys xkb_symbols "intl" { include "pl(intl)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "pl(dvorak)" }; partial alphanumeric_keys xkb_symbols "dvorak_quotes" { include "pl(dvorak_quotes)" }; partial alphanumeric_keys xkb_symbols "dvorak_altquotes" { include "pl(dvorak_altquotes)" }; partial alphanumeric_keys xkb_symbols "dvp" { include "pl(dvp)" }; partial alphanumeric_keys xkb_symbols "szl" { include "pl(szl)" }; partial alphanumeric_keys xkb_symbols "csb" { include "pl(csb)" }; partial alphanumeric_keys xkb_symbols "ru_phonetic_dvorak" { include "pl(ru_phonetic_dvorak)" }; PK(f[JTusymbols/sun_vndr/senu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Swedish (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ section, onehalf ] }; key { [ less, greater, bar ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numbersign, sterling ] }; key { [ 4, currency, dollar ] }; key { [ 6, ampersand ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ plus, question, backslash ] }; key { [ dead_acute, dead_grave ] }; key { [ e, E, EuroSign ] }; key { [ aring, Aring ] }; key { [ dead_diaeresis, asciicircum, asciitilde ] }; key { [ odiaeresis, Odiaeresis ] }; key { [ adiaeresis, Adiaeresis ] }; key { [ apostrophe, asterisk, grave ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" include "kpdl(comma)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/se(sun_type6)" }; partial alphanumeric_keys xkb_symbols "se" { include "se(se)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "se(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "se(dvorak)" }; partial alphanumeric_keys xkb_symbols "rus" { include "se(rus)" }; partial alphanumeric_keys xkb_symbols "rus_nodeadkeys" { include "se(rus_nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "smi" { include "se(smi)" }; partial alphanumeric_keys xkb_symbols "mac" { include "se(mac)" }; partial alphanumeric_keys xkb_symbols "svdvorak" { include "se(svdvorak)" }; partial alphanumeric_keys xkb_symbols "swl" { include "se(swl)" }; PK(f[9AAsymbols/sun_vndr/itnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]= "Italian (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ less, greater ] }; key { [ backslash, bar ] }; key { [ 2, quotedbl ] }; key { [ 3, sterling ] }; key { [ 6, ampersand ] }; key { [ 7, slash ] }; key { [ 8, parenleft, braceleft ] }; key { [ 9, parenright, braceright ] }; key { [ 0, equal ] }; key { [ apostrophe, question, grave ] }; key { [ igrave, asciicircum ] }; key { [ e, E, EuroSign ] }; key { [ egrave, eacute, bracketleft, dead_abovering ] }; key { [ plus, asterisk, bracketright ] }; key { [ ugrave, section, asciitilde ] }; key { [ ograve, ccedilla, at ] }; key { [ agrave, degree, numbersign ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/it(sun_type6)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "it(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "mac" { include "it(mac)" }; partial alphanumeric_keys xkb_symbols "geo" { include "it(geo)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "it(olpc)" }; partial alphanumeric_keys xkb_symbols "us" { include "it(us)" }; partial alphanumeric_keys xkb_symbols "htcdream" { include "it(htcdream)" }; partial alphanumeric_keys xkb_symbols "ibm" { include "it(ibm)" }; PK(f[ symbols/sun_vndr/jpnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys modifier_keys xkb_symbols "sun_type6_suncompat" { include "inet(evdev)" include "sun_vndr/us(sunbasic)" key { [ backslash, bar ], [ prolongedsound ] }; key { [ 1, exclam ], [ kana_NU ] }; key { [ 2, quotedbl ], [ kana_FU ] }; key { [ 3, numbersign ], [ kana_A, kana_a ] }; key { [ 4, dollar ], [ kana_U, kana_u ] }; key { [ 5, percent ], [ kana_E, kana_e ] }; key { [ 6, ampersand ], [ kana_O, kana_o ] }; key { [ 7, apostrophe ], [ kana_YA, kana_ya ] }; key { [ 8, parenleft ], [ kana_YU, kana_yu ] }; key { [ 9, parenright ], [ kana_YO, kana_yo ] }; key { [ 0 ], [ kana_WA, kana_WO ] }; key { [ minus, equal ], [ kana_HO ] }; key { [ asciicircum, asciitilde], [ kana_HE ] }; key { [ q, Q ], [ kana_TA ] }; key { [ w, W ], [ kana_TE ] }; key { [ e, E ], [ kana_I, kana_i ] }; key { [ r, R ], [ kana_SU ] }; key { [ t, T ], [ kana_KA ] }; key { [ y, Y ], [ kana_N ] }; key { [ u, U ], [ kana_NA ] }; key { [ i, I ], [ kana_NI ] }; key { [ o, O ], [ kana_RA ] }; key { [ p, P ], [ kana_SE ] }; key { [ at, grave ], [ voicedsound ] }; key { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] }; key { [ a, A ], [ kana_CHI ] }; key { [ s, S ], [ kana_TO ] }; key { [ d, D ], [ kana_SHI ] }; key { [ f, F ], [ kana_HA ] }; key { [ g, G ], [ kana_KI ] }; key { [ h, H ], [ kana_KU ] }; key { [ j, J ], [ kana_MA ] }; key { [ k, K ], [ kana_NO ] }; key { [ l, L ], [ kana_RI ] }; key { [ semicolon, plus ], [ kana_RE ] }; key { [ colon, asterisk ], [ kana_KE ] }; key { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] }; key { [ z, Z ], [ kana_TSU, kana_tsu ] }; key { [ x, X ], [ kana_SA ] }; key { [ c, C ], [ kana_SO ] }; key { [ v, V ], [ kana_HI ] }; key { [ b, B ], [ kana_KO ] }; key { [ n, N ], [ kana_MI ] }; key { [ m, M ], [ kana_MO ] }; key { [ comma, less ], [ kana_NE, kana_comma ] }; key { [ period, greater ], [ kana_RU, kana_fullstop ] }; key { [ slash, question ], [ kana_ME, kana_conjunctive ]}; key { [ backslash, underscore], [ kana_RO ] }; key { [ backslash, underscore], [ kana_RO ] }; key { [ Execute ] }; key { [ Kanji ] }; key { [ Henkan_Mode ] }; key { [ Kana_Lock, Mode_switch ] }; key { [ Multi_key ] }; key { [ SunSys_Req ] }; modifier_map Mod3 { Kana_Lock }; }; partial alphanumeric_keys xkb_symbols "sun_type6" { // include "jp" // type6 based on "jp" should be provided later include "sun_vndr/jp(sun_type6_suncompat)" }; partial alphanumeric_keys xkb_symbols "sun_type7_suncompat" { include "sun_vndr/jp(sun_type6_suncompat)" key { [ 0, asciitilde, kana_WA, kana_WO ] }; key { [ Henkan_Mode ] }; key { [ Kana_Lock, Mode_switch ] }; key { [ Alt_R, Alt_R ] }; }; partial alphanumeric_keys xkb_symbols "suncompat" { include "sun_vndr/jp(sun_type7_suncompat)" }; partial alphanumeric_keys xkb_symbols "sun_type7" { include "jp" }; partial alphanumeric_keys xkb_symbols "106" { include "jp(106)" }; partial alphanumeric_keys xkb_symbols "common" { include "jp(common)" }; partial alphanumeric_keys xkb_symbols "OADG109A" { include "jp(OADG109A)" }; partial alphanumeric_keys xkb_symbols "kana86" { include "jp(kana86)" }; partial alphanumeric_keys xkb_symbols "kana" { include "jp(kana)" }; partial alphanumeric_keys xkb_symbols "nicola_f_bs" { include "jp(nicola_f_bs)" }; partial alphanumeric_keys xkb_symbols "mac" { include "jp(mac)" }; partial alphanumeric_keys xkb_symbols "hztg_escape" { include "jp(hztg_escape)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "jp(dvorak)" }; PK(f[\\symbols/sun_vndr/ronu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Romanian (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ grave, asciitilde, grave, asciitilde ] }; key { [ 1, exclam, dead_tilde ] }; key { [ 2, at, dead_caron ] }; key { [ 3, numbersign, dead_circumflex ] }; key { [ 4, dollar, dead_breve ] }; key { [ 5, percent, dead_abovering ] }; key { [ 6, asciicircum, dead_ogonek ] }; key { [ 7, ampersand, dead_grave ] }; key { [ 8, asterisk, dead_abovedot ] }; key { [ 9, parenleft, dead_acute ] }; key { [ 0, parenright, dead_doubleacute ] }; key { [ minus, underscore, dead_diaeresis, endash ] }; key { [ equal, plus, dead_cedilla, plusminus ] }; key { [ q, Q, acircumflex, Acircumflex ] }; key { [ w, W, ssharp, 0x1001e9e ] }; key { [ e, E, EuroSign ] }; key { [ r, R, r, R ] }; key { [ t, T, 0x100021b, 0x100021a ] }; key { [ y, Y, y, Y ] }; key { [ u, U, u, U ] }; key { [ i, I, icircumflex, Icircumflex ] }; key { [ o, O, o, O ] }; key { [ p, P, section ] }; key { [ bracketleft, braceleft, doublelowquotemark ] }; key { [ bracketright, braceright, rightdoublequotemark ] }; key { [ a, A, abreve, Abreve ] }; key { [ s, S, 0x1000219, 0x1000218 ] }; key { [ d, D, dstroke, Dstroke ] }; key { [ f, F, f, F ] }; key { [ g, G, g, G ] }; key { [ h, H, h, H ] }; key { [ j, J, j, J ] }; key { [ k, K, k, K ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ semicolon, colon, semicolon, colon ] }; key { [ apostrophe, quotedbl, apostrophe, quotedbl ] }; key { [ backslash, bar, backslash, brokenbar ] }; key { [ backslash, bar, backslash, brokenbar ] }; key { [ z, Z, z, Z ] }; key { [ x, X, x, X ] }; key { [ c, C, copyright ] }; key { [ v, V, v, V ] }; key { [ b, B, b, B ] }; key { [ n, N, n, N ] }; key { [ m, M, m, M ] }; key { [ comma, less, guillemotleft, multiply ] }; key { [ period, greater, guillemotright, division ] }; key { [ slash, question, slash, question ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/ro(sun_type6)" }; partial alphanumeric_keys xkb_symbols "cedilla" { include "ro(cedilla)" }; partial alphanumeric_keys xkb_symbols "std" { include "ro(std)" }; partial alphanumeric_keys xkb_symbols "std_cedilla" { include "ro(std_cedilla)" }; partial alphanumeric_keys xkb_symbols "winkeys" { include "ro(winkeys)" }; partial alphanumeric_keys xkb_symbols "crh_dobruja" { include "ro(crh_dobruja)" }; partial alphanumeric_keys xkb_symbols "ergonomic" { include "ro(ergonomic)" }; PK(f[Esymbols/sun_vndr/uanu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Ukrainian (Sun Type 6)"; include "sun_vndr/us(sun_type6)" key { [ grave, asciitilde, apostrophe, asciitilde ] }; key { [ 1, exclam, 1, exclam ] }; key { [ 2, at, 2, quotedbl ] }; key { [ 3, numbersign, 3, numbersign ] }; key { [ 4, dollar, 4, asterisk ] }; key { [ 5, percent, 5, colon ] }; key { [ 6, asciicircum, 6, comma ] }; key { [ 7, ampersand, 7, period ] }; key { [ 8, asterisk, 8, semicolon ] }; key { [ 9, parenleft, 9, parenleft ] }; key { [ 0, parenright, 0, parenright ] }; key { [ minus, underscore, minus, underscore ] }; key { [ equal, plus, equal, plus ] }; key { [ q, Q, Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ w, W, Cyrillic_tse, Cyrillic_TSE ] }; key { [ e, E, Cyrillic_u, Cyrillic_U ] }; key { [ r, R, Cyrillic_ka, Cyrillic_KA ] }; key { [ t, T, Cyrillic_ie, Cyrillic_IE ] }; key { [ y, Y, Cyrillic_en, Cyrillic_EN ] }; key { [ u, U, Cyrillic_ghe, Cyrillic_GHE ] }; key { [ i, I, Cyrillic_sha, Cyrillic_SHA ] }; key { [ o, O, Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ p, P, Cyrillic_ze, Cyrillic_ZE ] }; key { [ bracketleft, braceleft, Cyrillic_ha, Cyrillic_HA ] }; key { [ bracketright, braceright, Ukrainian_yi, Ukrainian_YI ] }; key { [ a, A, Cyrillic_ef, Cyrillic_EF ] }; key { [ s, S, Ukrainian_i, Ukrainian_I ] }; key { [ d, D, Cyrillic_ve, Cyrillic_VE ] }; key { [ f, F, Cyrillic_a, Cyrillic_A ] }; key { [ g, G, Cyrillic_pe, Cyrillic_PE ] }; key { [ h, H, Cyrillic_er, Cyrillic_ER ] }; key { [ j, J, Cyrillic_o, Cyrillic_O ] }; key { [ k, K, Cyrillic_el, Cyrillic_EL ] }; key { [ l, L, Cyrillic_de, Cyrillic_DE ] }; key { [ semicolon, colon, Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ apostrophe, quotedbl, Ukrainian_ie, Ukrainian_IE ] }; key { [ backslash, bar, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; key { [ less, greater, slash, bar ] }; key { [ z, Z, Cyrillic_ya, Cyrillic_YA ] }; key { [ x, X, Cyrillic_che, Cyrillic_CHE ] }; key { [ c, C, Cyrillic_es, Cyrillic_ES ] }; key { [ v, V, Cyrillic_em, Cyrillic_EM ] }; key { [ n, N, Cyrillic_te, Cyrillic_TE ] }; key { [ b, B, Cyrillic_i, Cyrillic_I ] }; key { [ m, M, Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; key { [ comma, less, Cyrillic_be, Cyrillic_BE ] }; key { [ period, greater, Cyrillic_yu, Cyrillic_YU ] }; key { [ slash, question, slash, question ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/ua(sun_type6)" }; partial alphanumeric_keys xkb_symbols "unicode" { include "ua(unicode)" }; partial alphanumeric_keys xkb_symbols "legacy" { include "ua(legacy)" }; partial alphanumeric_keys xkb_symbols "winkeys" { include "ua(winkeys)" }; partial alphanumeric_keys xkb_symbols "typewriter" { include "ua(typewriter)" }; partial alphanumeric_keys xkb_symbols "phonetic" { include "ua(phonetic)" }; partial alphanumeric_keys xkb_symbols "rstu" { include "ua(rstu)" }; partial alphanumeric_keys xkb_symbols "rstu_ru" { include "ua(rstu_ru)" }; partial alphanumeric_keys xkb_symbols "homophonic" { include "ua(homophonic)" }; PK(f[|symbols/sun_vndr/benu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Belgium (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [twosuperior, threesuperior ] }; key { [ ampersand, 1, bar ] }; key { [ eacute, 2, at ] }; key { [ quotedbl, 3, numbersign ] }; key { [apostrophe, 4 ] }; key { [ parenleft, 5 ] }; key { [ section, 6, asciicircum ] }; key { [ egrave, 7 ] }; key { [ exclam, 8 ] }; key { [ ccedilla, 9, braceleft ] }; key { [ agrave, 0, braceright ] }; key { [parenright, degree ] }; key { [ minus, underscore ] }; key { [ a, A ] }; key { [ z, Z ] }; key { [ e, E, EuroSign ] }; key { [ o, O ] }; key { [dead_circumflex, dead_diaeresis, bracketleft ] }; key { [ dollar, asterisk, bracketright ] }; key { [ q, Q ] }; key { [ m, M ] }; key { [ ugrave, percent, dead_acute ] }; key { [ mu, sterling, dead_grave ] }; key { [ less, greater, backslash ] }; key { [ w, W ] }; key { [ comma, question ] }; key { [ semicolon, period ] }; key { [ colon, slash ] }; key { [ equal, plus, dead_tilde ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/be(sun_type6)" }; partial alphanumeric_keys xkb_symbols "oss" { include "be(oss)" }; partial alphanumeric_keys xkb_symbols "oss_frbe" { include "be(oss_frbe)" }; partial alphanumeric_keys xkb_symbols "oss_latin9" { include "be(oss_latin9)" }; partial alphanumeric_keys xkb_symbols "oss_Sundeadkeys" { include "be(oss_Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "oss_sundeadkeys" { include "be(oss_sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "iso-alternate" { include "be(iso-alternate)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "be(sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "be(Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "be(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "wang" { include "be(wang)" }; PK(f[zƊuusymbols/sun_vndr/aranu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // default partial alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]= "Arabic (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ Arabic_thal, Arabic_shadda, grave, asciitilde ] }; key { [ 0x1000661, exclam, 1, exclam ] }; key { [ 0x1000662, at, 2, at ] }; key { [ 0x1000663, numbersign, 3, numbersign ] }; key { [ 0x1000664, dollar, 4, dollar ] }; key { [ 0x1000665, percent, 5, percent ] }; key { [ 0x1000666, asciicircum, 6, asciicircum ] }; key { [ 0x1000667, ampersand, 7, ampersand ] }; key { [ 0x1000668, asterisk, 8, asterisk ] }; key { [ 0x1000669, parenright, 9, parenright ] }; key { [ 0x1000660, parenleft, 0, parenleft ] }; key { [ minus, underscore, minus, underscore ] }; key { [ equal, plus, equal, plus ] }; key { [ Arabic_dad, Arabic_fatha, q, Q ] }; key { [ Arabic_sad, Arabic_fathatan, w, W ] }; key { [ Arabic_theh, Arabic_damma, e, E ] }; key { [ Arabic_qaf, Arabic_dammatan, r, R ] }; key { [ Arabic_feh, 0x100fef9, t, T ] }; key { [ Arabic_ghain, Arabic_hamzaunderalef, y, Y ] }; key { [ Arabic_ain, grave, u, U ] }; key { [ Arabic_ha, division, i, I ] }; key { [ Arabic_khah, multiply, o, O ] }; key { [ Arabic_hah, Arabic_semicolon, p, P ] }; key { [ Arabic_jeem, greater, bracketleft, braceleft ] }; key { [ Arabic_dal, less, bracketright, braceright ] }; key { [ Arabic_sheen, Arabic_kasra, a, A ] }; key { [ Arabic_seen, Arabic_kasratan, s, S ] }; key { [ Arabic_yeh, bracketright, d, D ] }; key { [ Arabic_beh, bracketleft, f, F ] }; key { [ Arabic_lam, 0x100fef7, g, G ] }; key { [ Arabic_alef, Arabic_hamzaonalef, h, H ] }; key { [ Arabic_teh, Arabic_tatweel, j, J ] }; key { [ Arabic_noon, Arabic_comma, k, K ] }; key { [ Arabic_meem, slash, l, L ] }; key { [ Arabic_kaf, colon, semicolon, colon ] }; key { [ Arabic_tah, quotedbl, apostrophe, quotedbl ] }; key { [ backslash, bar, backslash, bar ] }; key { [ bar, brokenbar, bar, brokenbar ] }; key { [ Arabic_hamzaonyeh, asciitilde, z, Z ] }; key { [ Arabic_hamza, Arabic_sukun, x, X ] }; key { [ Arabic_hamzaonwaw, braceright, c, C ] }; key { [ Arabic_ra, braceleft, v, V ] }; key { [ 0x100fefb, 0x100fef5, b, B ] }; key { [ Arabic_alefmaksura, Arabic_maddaonalef, n, N ] }; key { [ Arabic_tehmarbuta, apostrophe, m, M ] }; key { [ Arabic_waw, comma, comma, less ] }; key { [ Arabic_zain, period, period, greater ] }; key { [ Arabic_zah, Arabic_question_mark, slash, question ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/ara(sun_type6)" }; partial alphanumeric_keys xkb_symbols "qwerty" { include "ara(qwerty)" }; partial alphanumeric_keys xkb_symbols "azerty" { include "ara(azerty)" }; partial alphanumeric_keys xkb_symbols "digits" { include "ara(digits)" }; partial alphanumeric_keys xkb_symbols "qwerty_digits" { include "ara(qwerty_digits)" }; partial alphanumeric_keys xkb_symbols "azerty_digits" { include "ara(azerty_digits)" }; partial alphanumeric_keys xkb_symbols "buckwalter" { include "ara(buckwalter)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "ara(olpc)" }; PK(f[Usymbols/sun_vndr/eenu[// // Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Estonian (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ dead_caron, dead_tilde, notsign, notsign ] }; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, quotedbl, at, oneeighth ] }; key { [ 3, numbersign, sterling, sterling ] }; key { [ 4, currency, dollar, dollar ] }; key { [ 5, percent, onehalf, threeeighths ] }; key { [ 6, ampersand, notsign, fiveeighths ] }; key { [ 7, slash, braceleft, seveneighths ] }; key { [ 8, parenleft, bracketleft, trademark ] }; key { [ 9, parenright, bracketright, plusminus ] }; key { [ 0, equal, braceright, degree ] }; key { [ plus, question, backslash, questiondown ] }; key { [ dead_acute, dead_grave, grave, apostrophe ] }; key { [ q, Q, at, Greek_OMEGA ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ e, E, EuroSign, cent ] }; key { [ r, R, paragraph, registered ] }; key { [ t, T, tslash, Tslash ] }; key { [ y, Y, leftarrow, yen ] }; key { [ u, U, downarrow, uparrow ] }; key { [ i, I, rightarrow, idotless ] }; key { [ o, O, oslash, Ooblique ] }; key { [ p, P, thorn, THORN ] }; key { [ udiaeresis, Udiaeresis, dead_diaeresis,dead_abovering ] }; key { [ otilde, Otilde, section, dead_macron ] }; key { [ a, A, ae, AE ] }; key { [ s, S, ssharp, section ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, dstroke, ordfeminine ] }; key { [ g, G, eng, ENG ] }; key { [ h, H, hstroke, Hstroke ] }; key { [ j, J, j, J ] }; key { [ k, K, kra, ampersand ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ odiaeresis, Odiaeresis, dead_acute, dead_doubleacute ] }; key { [ adiaeresis, Adiaeresis, asciicircum, dead_caron ] }; key { [ backslash, bar, degree, brokenbar ] }; key { [ apostrophe, asterisk, onehalf, dead_breve ] }; key { [ z, Z, zcaron, Zcaron ] }; key { [ x, X, guillemotright, greater ] }; key { [ c, C, cent, copyright ] }; key { [ v, V, leftdoublequotemark, leftsinglequotemark ] }; key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; key { [ n, N, ncedilla, Ncedilla ] }; key { [ m, M, mu, masculine ] }; key { [ comma, semicolon, less, multiply ] }; key { [ period, colon, greater, division ] }; key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/ee(sun_type6)" }; partial alphanumeric_keys xkb_symbols "nodeadkeys" { include "ee(nodeadkeys)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "ee(dvorak)" }; partial alphanumeric_keys xkb_symbols "us" { include "ee(us)" }; PK(f[ۘJJsymbols/sun_vndr/sknu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Slovak (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ semicolon, dead_abovering, grave, asciitilde ] }; key { [ plus, 1, exclam, asciitilde ] }; key { [ lcaron, 2, at, dead_caron ] }; key { [ scaron, 3, numbersign, dead_circumflex ] }; key { [ ccaron, 4, dollar, dead_breve ] }; key { [ tcaron, 5, percent, dead_abovering ] }; key { [ zcaron, 6, asciicircum, dead_ogonek ] }; key { [ yacute, 7, ampersand, grave ] }; key { [ aacute, 8, asterisk, dead_abovedot ] }; key { [ iacute, 9, parenleft, apostrophe ] }; key { [ eacute, 0, parenright, dead_doubleacute ] }; key { [ equal, percent, dead_diaeresis, backslash ] }; key { [ dead_acute, dead_caron, dead_cedilla, minus ] }; key { [ q, Q, backslash ] }; key { [ w, W, bar ] }; key { [ e, E, EuroSign ] }; key { [ z, Z ] }; key { [ p, P, apostrophe ] }; key { [ uacute, slash, division ] }; key { [ adiaeresis, parenleft, multiply ] }; key { [ s, S, dstroke ] }; key { [ d, D, Dstroke ] }; key { [ f, F, bracketleft ] }; key { [ g, G, bracketright ] }; key { [ k, K, lstroke ] }; key { [ l, L, Lstroke ] }; key { [ ocircumflex, quotedbl, dollar ] }; key { [ section, exclam, ssharp, U1E9E ] }; key { [ ncaron, parenright, currency, currency ] }; key { [ ncaron, parenright, backslash, bar ] }; key { [ backslash, bar, slash, brokenbar ] }; key { [ y, Y, less ] }; key { [ x, X, greater, numbersign ] }; key { [ c, C, ampersand ] }; key { [ v, V, at ] }; key { [ b, B, braceleft ] }; key { [ n, N, braceright ] }; key { [ comma, question, less ] }; key { [ period, colon, greater ] }; key { [ minus, underscore, asterisk ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/sk(sun_type6)" }; partial alphanumeric_keys xkb_symbols "bksl" { include "sk(bksl)" }; partial alphanumeric_keys xkb_symbols "qwerty" { include "sk(qwerty)" }; partial alphanumeric_keys xkb_symbols "qwerty_bksl" { include "sk(qwerty_bksl)" }; PK(f[AǤsymbols/sun_vndr/usnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sunbasic" { include "us(basic)" include "capslock(capslock)" include "srvr_ctrl(xfree86)" }; partial alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]= "English (US, Sun Type 6/7)"; include "sun_vndr/us(sunbasic)" include "eurosign(4)" include "level3(ralt_switch)" key { [ Multi_key ] }; key { [ SunSys_Req ] }; }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/us(sunbasic)" }; partial alphanumeric_keys xkb_symbols "euro" { include "us(euro)" }; partial alphanumeric_keys xkb_symbols "intl" { include "us(intl)" }; partial alphanumeric_keys xkb_symbols "alt-intl" { include "us(alt-intl)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" }; partial alphanumeric_keys xkb_symbols "dvorak-intl" { include "us(dvorak-intl)" }; partial alphanumeric_keys xkb_symbols "dvorak-alt-intl" { include "us(dvorak-alt-intl)" }; partial alphanumeric_keys xkb_symbols "dvorak-l" { include "us(dvorak-l)" }; partial alphanumeric_keys xkb_symbols "dvorak-r" { include "us(dvorak-r)" }; partial alphanumeric_keys xkb_symbols "dvorak-classic" { include "us(dvorak-classic)" }; partial alphanumeric_keys xkb_symbols "dvp" { include "us(dvp)" }; partial alphanumeric_keys xkb_symbols "rus" { include "us(rus)" }; partial alphanumeric_keys xkb_symbols "mac" { include "us(mac)" }; partial alphanumeric_keys xkb_symbols "colemak" { include "us(colemak)" }; partial alphanumeric_keys xkb_symbols "altgr-intl" { include "us(altgr-intl)" }; partial alphanumeric_keys xkb_symbols "classmate" { include "us(classmate)" }; partial alphanumeric_keys xkb_symbols "classmate-intl" { include "us(classmate-intl)" }; partial alphanumeric_keys xkb_symbols "classmate-alt-intl" { include "us(classmate-alt-intl)" }; partial alphanumeric_keys xkb_symbols "classmate-altgr-intl" { include "us(classmate-altgr-intl)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "us(olpc)" }; partial alphanumeric_keys xkb_symbols "olpc2" { include "us(olpc2)" }; partial alphanumeric_keys xkb_symbols "chr" { include "us(chr)" }; partial alphanumeric_keys xkb_symbols "hbs" { include "us(hbs)" }; partial alphanumeric_keys xkb_symbols "htcdream" { include "us(htcdream)" }; partial alphanumeric_keys xkb_symbols "workman" { include "us(workman)" }; partial alphanumeric_keys xkb_symbols "workman-intl" { include "us(workman-intl)" }; partial alphanumeric_keys xkb_symbols "cz_sk_de" { include "us(cz_sk_de)" }; partial alphanumeric_keys xkb_symbols "intl-unicode" { include "us(intl-unicode)" }; partial alphanumeric_keys xkb_symbols "alt-intl-unicode" { include "us(alt-intl-unicode)" }; partial alphanumeric_keys xkb_symbols "ats" { include "us(ats)" }; partial alphanumeric_keys xkb_symbols "crd" { include "us(crd)" }; PK(f[IIsymbols/sun_vndr/ltnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Lithuanian (Sun Type 6/7)"; include "sun_vndr/us(sun_type6)" key { [ grave, asciitilde, notsign, brokenbar ] }; key { [ aogonek, Aogonek, 1, exclam ] }; key { [ ccaron, Ccaron, 2, at ] }; key { [ eogonek, Eogonek, 3, numbersign ] }; key { [ eabovedot, Eabovedot, 4, dollar ] }; key { [ iogonek, Iogonek, 5, percent ] }; key { [ scaron, Scaron, 6, asciicircum ] }; key { [ uogonek, Uogonek, 7, ampersand ] }; key { [ umacron, Umacron, 8, asterisk ] }; key { [ doublelowquotemark, parenleft, 9, parenleft ] }; key { [ leftdoublequotemark, parenright, 0, parenright ] }; key { [ minus, underscore, backslash, questiondown ] }; key { [ zcaron, Zcaron, equal, plus ] }; key { [ q, Q, at, Greek_OMEGA ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ e, E, EuroSign ] }; key { [ r, R, paragraph, registered ] }; key { [ t, T, tslash, Tslash ] }; key { [ y, Y, leftarrow, yen ] }; key { [ u, U, downarrow, uparrow ] }; key { [ i, I, rightarrow, idotless ] }; key { [ o, O, oslash, Ooblique ] }; key { [ p, P, thorn, THORN ] }; key { [ bracketleft, braceleft, dead_diaeresis, dead_abovering ] }; key { [ bracketright, braceright, dead_tilde, dead_macron ] }; key { [ a, A, ae, AE ] }; key { [ s, S, ssharp, section ] }; key { [ d, D, eth, ETH ] }; key { [ f, F, dstroke, ordfeminine ] }; key { [ g, G, eng, ENG ] }; key { [ h, H, hstroke, Hstroke ] }; key { [ j, J ] }; key { [ k, K, kra, ampersand ] }; key { [ l, L, lstroke, Lstroke ] }; key { [ semicolon, colon, dead_acute, dead_doubleacute ] }; key { [ apostrophe, quotedbl, dead_circumflex, dead_caron ] }; key { [ backslash, bar, dead_grave, dead_breve ] }; key { [ backslash, bar, dead_grave, dead_breve ] }; key { [ z, Z, guillemotleft, less ] }; key { [ x, X, guillemotright, greater ] }; key { [ c, C, cent, copyright ] }; key { [ v, V, leftdoublequotemark, leftsinglequotemark ] }; key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; key { [ n, N ] }; key { [ m, M, mu, masculine ] }; key { [ comma, less, ampersand, multiply ] }; key { [ period, greater, periodcentered, division ] }; key { [ slash, question, dead_belowdot, dead_abovedot ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/lt(sun_type6)" }; partial alphanumeric_keys xkb_symbols "us" { include "lt(us)" }; partial alphanumeric_keys xkb_symbols "std" { include "lt(std)" }; partial alphanumeric_keys xkb_symbols "ibm" { include "lt(ibm)" }; partial alphanumeric_keys xkb_symbols "lekp" { include "lt(lekp)" }; partial alphanumeric_keys xkb_symbols "lekpa" { include "lt(lekpa)" }; partial alphanumeric_keys xkb_symbols "us_dvorak" { include "lt(us_dvorak)" }; PK(f[g`ttsymbols/sun_vndr/trnu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // default partial alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Turkish (Sun Type 6)"; include "sun_vndr/us(sun_type6)" key { [ quotedbl, eacute ] }; key { [ 1, exclam ] }; key { [ 2, apostrophe ] }; key { [ 3, asciicircum, numbersign ] }; key { [ 4, plus, dollar ] }; key { [ 6, ampersand ] }; key { [ 7, slash, braceleft ] }; key { [ 8, parenleft, bracketleft ] }; key { [ 9, parenright, bracketright ] }; key { [ 0, equal, braceright ] }; key { [ asterisk, question, backslash ] }; key { [ minus, underscore ] }; key { [ q, Q, at ] }; key { [ e, E, EuroSign ] }; key { [ idotless, I ] }; key { [ gbreve, Gbreve ] }; key { [udiaeresis, Udiaeresis, asciitilde ] }; key { [ scedilla, Scedilla, acute ] }; key { [ i, Iabovedot ] }; key { [ comma, semicolon, grave ] }; key { [ less, greater, bar ] }; key { [odiaeresis, Odiaeresis ] }; key { [ ccedilla, Ccedilla ] }; key { [ period, colon ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/tr(sun_type6)" }; partial alphanumeric_keys xkb_symbols "f" { include "tr(f)" }; partial alphanumeric_keys xkb_symbols "alt" { include "tr(alt)" }; partial alphanumeric_keys xkb_symbols "Sundeadkeys" { include "tr(Sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "sundeadkeys" { include "tr(sundeadkeys)" }; partial alphanumeric_keys xkb_symbols "ku" { include "tr(ku)" }; partial alphanumeric_keys xkb_symbols "ku_f" { include "tr(ku_f)" }; partial alphanumeric_keys xkb_symbols "ku_alt" { include "tr(ku_alt)" }; partial alphanumeric_keys xkb_symbols "intl" { include "tr(intl)" }; partial alphanumeric_keys xkb_symbols "olpc" { include "tr(olpc)" }; partial alphanumeric_keys xkb_symbols "crh" { include "tr(crh)" }; partial alphanumeric_keys xkb_symbols "crh_f" { include "tr(crh_f)" }; partial alphanumeric_keys xkb_symbols "crh_alt" { include "tr(crh_alt)" }; PK(f[=>JJsymbols/sun_vndr/cznu[// // Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // partial default alphanumeric_keys xkb_symbols "sun_type6" { name[Group1]="Czech (Sun Type 6/7"; include "sun_vndr/us(sun_type6)" key { [ semicolon, dead_abovering, grave, asciitilde ] }; key { [ plus, 1, exclam, asciitilde ] }; key { [ ecaron, 2, at, dead_caron ] }; key { [ scaron, 3, numbersign, dead_circumflex ] }; key { [ ccaron, 4, dollar, dead_breve ] }; key { [ rcaron, 5, percent, dead_abovering ] }; key { [ zcaron, 6, asciicircum, dead_ogonek ] }; key { [ yacute, 7, ampersand, grave ] }; key { [ aacute, 8, asterisk, dead_abovedot ] }; key { [ iacute, 9, parenleft, dead_acute ] }; key { [ eacute, 0, parenright, dead_doubleacute ] }; key { [ equal, percent, dead_diaeresis, backslash ] }; key { [ dead_acute, dead_caron, dead_cedilla, minus ] }; key { [ q, Q, backslash ] }; key { [ w, W, bar ] }; key { [ e, E, EuroSign ] }; key { [ z, Z ] }; key { [ uacute, slash, division ] }; key { [parenright, parenleft, multiply ] }; key { [ s, S, dstroke ] }; key { [ d, D, Dstroke ] }; key { [ f, F, bracketleft ] }; key { [ g, G, bracketright ] }; key { [ k, K, lstroke ] }; key { [ l, L, Lstroke ] }; key { [ uring, quotedbl, dollar ] }; key { [ section, exclam, ssharp, currency ] }; key { [ dead_diaeresis, apostrophe, backslash, bar ] }; key { [ backslash, asterisk, slash, brokenbar ] }; key { [ y, Y, less ] }; key { [ x, X, greater, numbersign ] }; key { [ v, V, at ] }; key { [ b, B, braceleft ] }; key { [ n, N, braceright ] }; key { [ comma, question, less ] }; key { [ period, colon, greater ] }; key { [ minus, underscore ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "basic" { include "sun_vndr/cz(sun_type6)" }; partial alphanumeric_keys xkb_symbols "bksl" { include "cz(bksl)" }; partial alphanumeric_keys xkb_symbols "qwerty" { include "cz(qwerty)" }; partial alphanumeric_keys xkb_symbols "qwerty_bksl" { include "cz(qwerty_bksl)" }; partial alphanumeric_keys xkb_symbols "ucw" { include "cz(ucw)" }; partial alphanumeric_keys xkb_symbols "dvorak-ucw" { include "cz(dvorak-ucw)" }; PK(f[ symbols/cmnu[// ========== Cameroon Keyboards ========== // ---------------------------------------------------------------------------- // This comment was added by , on 18-Jun-2016: // // All comments below this one, were in the original cm file;they do not // apply to the Mmuock keyboard which is defined towards the end of this file. // ---------------------------------------------------------------------------- // ****** For Instructions, see "Use of Cameroon Keyboards" section below ****** // The XKB versions of these keyboards were developed by Matthew Lee, Jenni Beadle, and Bruce Cox of SIL Cameroon in association with Going Komputya, Uwe Yung of the Goethe Institute, Yaoundé, and Centre ANACLAC. // Cameroon is officially a bilingual country, using French and English, but there are over 270 minority languages. // * Cameroon Français is an exact copy of the French France keyboard intended for AZERTY users. // * Cameroon is an exact copy of the Basic US Keyboard. I can not currently name this "Cameroon English" due to a limitation of XKB. // * Cameroon QWERTY and Cameroon AZERTY are based largely on SIL Cameroon's Keyman and Microsoft keyboards of the same style already in wide use. These keyboards are designed to allow the user to type any of Cameroon's 270+ languages and dialects that use the approved orthography. This Approved Orthography was adopted in 1979 by the National Committee for the Unification and Harmonisation of Alphabets of Camerooninan Languages. // * Cameroon Dvorak is described below. // ===== Use of Cameroon Keyboards ===== // == Fonts == // These keyboards are fully Unicode (5.1), so we recommend using a good unicode font for diacritics to position correctly. Recommended fonts are: ttf-sil-charis, ttf-sil-doulos, ttf-sil-gentium and ttf-sil-andika (All of which are free for Linux, Mac, and Windows). // == Cameroon AZERTY == // Cameroon AZERTY uses the French France (AZERTY) layout, as french keyboards are widely used here. While this keyboard is designed for Cameroonian orthography, it still is possible but not recommended, to type French with minimal discomfort using this keyboard. // Cameroon AZERTY uses the "!" (exclamation) key as the "Cameroon" key. Pressing this key before another key allows you to access the special letters and diacritics needed in Cameroonian orthography. // For example, press "!" then "a" and get "ɛ" (small epsilon). "!" then "Shift" + "a" (A) will get an "Ɛ" (capital epsilon). Press the "!" key twice to get a "!". // If you prefer, you can hold the AltGr (and/or Shift) key to access the same letters, but we have found this to be much more awkward in practice. If you really don't like our Cameroon key, simply comment out "include "cm(exclamation_switch)"" and the exclamation key will return to normal. // All Diacritics (with the exception of French Trema and Circumflex) must be typed (in order of stacking) after the letter. // == Cameroon QWERTY == // Cameroon QWERTY uses the US QWERTY layout, as US keyboards are also widely used here. While this keyboard is designed for Cameroonian orthography, it is possible, but not recommended, to type English with minimal discomfort using this keyboard. // Cameroon QWERTY uses the ";" (semicolon) key as the "Cameroon" key. Pressing this key before another key allows you to access the special letters and diacritics needed in Cameroonian orthography. // For example, press ";" then "a" and get "ɛ" (small epsilon). ";" then "Shift" + "a" (A) will get an "Ɛ" (capital epsilon). Press ";" twice to get a ";", or press Shift + ; (:) twice to get a ":" (colon). // If you prefer, you can hold the AltGr (and/or Shift) key to access the same letters, but we have found this to be much more awkward in practice. If you really don't like our Cameroon key, simply comment out "include "cm(semicolon_switch)"" and the semicolon key will return to normal. // All Diacritics must be typed (in order of stacking) after the letter. // == Cameroon Dvorak == // Cameroon Dvorak is uses a similar system to Cameroon QWERTY. default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]="English (Cameroon)"; key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, U003F ] }; key { [ backslash, bar ] }; }; partial alphanumeric_keys xkb_symbols "french" { include "latin" name[Group1]="French (Cameroon)"; key { [ ampersand, 1, onesuperior, exclamdown ] }; key { [ eacute, 2, asciitilde, oneeighth ] }; key { [ quotedbl, 3, numbersign, sterling ] }; key { [apostrophe, 4, braceleft, dollar ] }; key { [ parenleft, 5, bracketleft, threeeighths ] }; key { [ minus, 6, bar, fiveeighths ] }; key { [ egrave, 7, grave, seveneighths ] }; key { [underscore, 8, backslash, trademark ] }; key { [ ccedilla, 9, asciicircum, plusminus ] }; key { [ agrave, 0, at, degree ] }; key { [parenright, degree, bracketright, questiondown ] }; key { [ equal, plus, braceright, dead_ogonek ] }; key { [ a, A, ae, AE ] }; key { [ z, Z, guillemotleft, less ] }; key { [ e, E, EuroSign, cent ] }; key { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] }; key { [ dollar, sterling, currency, dead_macron ] }; key { [ q, Q, at, Greek_OMEGA ] }; key { [ m, M, mu, masculine ] }; key { [ ugrave, percent, dead_circumflex, dead_caron] }; key { [twosuperior, asciitilde, notsign, notsign ] }; key { [ asterisk, mu, dead_grave, dead_breve ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ comma, U003F, dead_acute, dead_doubleacute ] }; key { [ semicolon, period, horizconnector, multiply ] }; key { [ colon, slash, periodcentered, division ] }; key { [ exclam, section, dead_belowdot, dead_abovedot ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "azerty" { include "cm(basic)" name[Group1] = "Cameroon Multilingual (AZERTY)"; key { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS key { [ x, X, U2039, U203A ] }; // SMALL LETTER X, CAPITAL LETTER X, SINGLE LEFT-POINTING ANGLE QUOTATION MARK, SINGLE RIGHT-POINTING ANGLE QUOTATION MARK key { [ c, C, U0327, copyright ] }; // SMALL LETTER C, CAPITAL LETTER C, COMBINING CEDILLA, COPYRIGHT SIGN key { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) key { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK key { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG key { [ U002C, U003F, NoSymbol, U00D7 ] }; // COMMA, QUESTION MARK, , MULTIPLY key { [ semicolon, period, dead_acute, dead_grave ] }; // SEMICOLON, PERIOD key { [ colon, slash, U0323 ] }; // COLON, SLASH, COMBINING DOT BELOW key { [ exclam, U00A7 ] }; // EXCLAMATION MARK, SECTION SIGN key { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH key { [ s, S, U201C, U201D ] }; // SMALL LETTER S, CAPITAL LETTER S, LEFT DOUBLE QUOTES, RIGHT DOUBLE QUOTES key { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK key { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE key { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) key { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA key { [ j, J, leftarrow, U2122 ] }; //SMALL LETTER J, CAPITAL LETTER J, LEFT ARROW, TRADE MARK SIGN key { [ k, K, downarrow, uparrow ] }; // SMALL LETTER K, CAPITAL LETTER K, DOWN ARROW, UP ARROW key { [ l, L, rightarrow, U00A3 ] }; // SMALL LETTER L, CAPITAL LETTER L, RIGHT ARROW, POUND STERLING key { [ m, M, U00F9, U00B5 ] }; // SMALL LETTER M, CAPITAL LETTER M, SMALL LETTER U WITH GRAVE, MICRO SYMBOL key { [ U0300, U0302, U1DC5, U1DC4 ] }; // COMBINING LOW TONE, COMBINING FALLING TONE, COMBINING LOW-MID TONE, COMBINING MID-HIGH TONE key { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E key { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER key { [ e, E, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA key { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN key { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE key { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK key { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR key { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR key { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O key { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR key { [ U0301, U030C, dead_circumflex, dead_diaeresis ] }; // COMBINING HIGH TONE, COMBINING RISING TONE, DEAD CIRCUMFLEX, DEAD DIAERESIS key { [ U0330, U0303, U0304, U030D ] }; // COMBINING TILDE (NASAL) BELOW, COMBINING TILDE (NASAL), COMBINING MID TONE, COMBINING VERTICAL LINE ABOVE key { [ U0026, KP_1, U00B9, U2018 ] }; // AMPERSAND, 1, SUPERSCRIPT 1, LEFT SINGLE QUOTE key { [ eacute, KP_2, asciitilde, U2019 ] }; // SMALL LETTER E WITH ACUTE, 2, TILDE, RIGHT SINGLE QUOTE key { [ U0022, KP_3, U0025 ] }; // QUOTATION MARK, 3, PERCENT SIGN key { [ U0027, KP_4, U007B ] }; // APOSTROPHE, 4, LEFT CURLY BRACKET key { [ U0028, KP_5, U005B, numbersign ] }; // LEFT PARENTHESIS, 5, LEFT SQUARE BRACKET, NUMBER SIGN key { [ U002D, KP_6, U007C ] }; // HYPHEN/MINUS, 6, BAR key { [ U00E8, KP_7, U0300 ] }; // SMALL LETTER E WITH GRAVE, 7, COMBINING GRAVE key { [ underscore, KP_8, backslash, U20D6 ] }; // UNDERSCORE, 8, BACKSLASH, COMBINING LEFT ARROW ABOVE key { [ ccedilla, KP_9, U005E] }; // SMALL LETTER C WITH CEDILLA, 9, CIRCUMFLEX key { [ U00E0, KP_0, at, U20D7 ] }; // SMALL LETTER A WITH GRAVE key { [ U0029, U00B0, U005D ] }; // RIGHT PARENTHESIS, DEGREE, RIGHT SQUARE BRACKET key { [ U003D, U002B, U007D, U00B1 ] }; // EQUAL SIGN, PLUS SIGN, RIGHT CURLY BRACKET, PLUS-MINUS SIGN key { [ U1DC6, U1DC7, KP_Multiply, U00A4 ] }; // COMBINING MID-LOW, COMBINING HIGH-MID, MULTIPLY, CURRENCY SIGN key { [ U003C, U003E, U00AB, U00BB ] }; // LESS THAN, GREATER THAN, LEFT GUILLEMET, RIGHT GUILLEMET key { [ U0024, U20AC, U00B2, U00B3 ] }; // DOLLAR, EURO, SUPERSCRIPT 2, SUPERSCRIPT 3 include "cm(exclamation_switch)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "qwerty" { include "cm(basic)" name[Group1] = "Cameroon Multilingual (QWERTY)"; key { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER key { [ x, X ] }; // SMALL LETTER X, CAPITAL LETTER X key { [ c, C, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT key { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) key { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK key { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG key { [ m, M, NoSymbol, U2122 ] }; // SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN key { [ U002C, U003C, U2039, U00AB ] }; // COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET key { [ U002E, U003E, U203A, U00BB ] }; // PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET key { [ U002F, U003F, U00F7 ] }; // SLASH, QUESTION MARK, DIVISION SIGN key { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E key { [ s, S ] }; // SMALL LETTER S, CAPITAL LETTER S key { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK key { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE key { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) key { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA key { [ j, J, U0330, U0323 ] }; // SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW key { [ k, K, U1DC5, U1DC7 ] }; // SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID key { [ l, L, U1DC6, U1DC4 ] }; // SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE key { [ U003B, U003A ] }; // SEMICOLON, COLON key { [ U0300, U0302, U0027, U0022 ] }; // COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK key { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH key { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS key { [ e, E, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA key { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN key { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE key { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK key { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR key { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR key { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O key { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR key { [ U0301, U030C, U005B, U007B ] }; // COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET key { [ U0327, U0308, U005D, U007D ] }; // COMBINING CEDILLA, COMBINING DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET key { [ U0031, U0021, U00BC ] }; // 1, EXCLAMATION POINT, ONE QUARTER key { [ U0032, U0040, U00BD ] }; //2, AT SYMBOL, ONE HALF key { [ U0033, U0023, U00BE ] }; // 3, NUMBER SIGN, THREE QUARTERS key { [ U0034, U0024, NoSymbol, U20AC ] }; // 4, DOLLAR, , EURO SIGN key { [ U0038, U002A, NoSymbol, U00D7 ] }; // 8, ASTERISK, , MATH MULTIPLY key { [ U0039, U0028, U2018, U201C ] }; // 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK key { [ U0030, U0029, U2019, U201D ] }; // 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK key { [ U002D, U005F, U0304 ] }; // MINUS, UNDERSCORE, COMBINING MID TONE, COMBINING MID TONE key { [ U003D, U002B, NoSymbol, U00B1 ] }; // EQUAL, PLUS, , PLUS-MINUS key { [ U005C, U007C ] }; // BACKSLASH, BAR key { [ U030D, U0303, U0060, U007E ] }; // COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE include "cm(semicolon_switch)" include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "dvorak" { include "us(dvorak)" name[Group1] = "Cameroon Multilingual (Dvorak)"; key { [ semicolon, colon ] }; // SEMICOLON, COLON key { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH key { [ j, J, U0330, U0323 ] }; // SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW key { [ k, K, U1DC5, U1DC7 ] }; // SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID key { [ x, X ] }; // SMALL LETTER X, CAPITAL LETTER X key { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK key { [ m, M, NoSymbol, U2122 ] }; // SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN key { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS key { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) key { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER key { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E key { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O key { [ e, E, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA key { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR key { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR key { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK key { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA key { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE key { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG key { [ s, S ] }; // SMALL LETTER S, CAPITAL LETTER S key { [ minus, underscore, U0304 ] }; // MINUS, UNDERSCORE, COMBINING MID TONE key { [ U0300, U0302, U0027, U0022 ] }; // COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK key { [ comma, less, U2039, U00AB ] }; // COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET key { [ period, greater, U203A, U00BB ] }; // PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET key { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR key { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK key { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE key { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) key { [ c, C, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT key { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN key { [ l, L, U1DC6, U1DC4 ] }; // SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE key { [ slash, U003F, U00F7, U0294 ] }; // SLASH, QUESTION MARK, DIVISION SIGN, GLOTTAL STOP key { [ equal, plus, NoSymbol, plusminus ] }; // EQUAL, PLUS, , PLUS-MINUS key { [ KP_1, exclam, U00BC ] }; // 1, EXCLAMATION POINT, ONE QUARTER key { [ KP_2, at, U00BD ] }; // 2, AT SYMBOL, ONE HALF key { [ KP_3, numbersign, U00BE ] }; // 3, NUMBER SIGN, THREE QUARTERS key { [ KP_4, dollar, NoSymbol, U20AC ] }; // 4, DOLLAR, , EURO SIGN key { [ KP_5, percent ] }; // 5, PERCENT key { [ KP_6, asciicircum ] }; // 6, CARET key { [ KP_7, ampersand ] }; // 7, AMPERSAND key { [ KP_8, asterisk, NoSymbol, multiply ] }; // 8, ASTERISK, , MULTIPLY key { [ KP_9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; // 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK key { [ KP_0, parenright, rightsinglequotemark, rightdoublequotemark ] }; // 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK key { [ U0301, U030C, U005B, U007B ] }; // COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET key { [ U0327, dead_diaeresis, U005D, braceright ] }; // COMBINING CEDILLA, DEAD DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET key { [ backslash, bar ] }; // BACKSLASH, BAR key { [ U030D, U0303, U0060, U007E ] }; // COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE include "cm(semicolon_switch_dvorak)" include "level3(ralt_switch)" }; // The following code creates the "Cameroon key" phenomenon. partial modifier_keys xkb_symbols "semicolon_switch" { key { symbols[Group1] = [ ISO_Level3_Latch, colon, semicolon, colon ]}; modifier_map Mod5 { ISO_Level3_Latch }; }; partial modifier_keys xkb_symbols "exclamation_switch" { key { symbols[Group1] = [ ISO_Level3_Latch, U00A7, exclam, U00A7 ] }; modifier_map Mod5 { ISO_Level3_Latch }; }; partial modifier_keys xkb_symbols "semicolon_switch_dvorak" { key { symbols[Group1] = [ ISO_Level3_Latch, colon, semicolon, colon ] }; modifier_map Mod5 { ISO_Level3_Latch }; }; // ------- begin Mmuock alphabet layout ------------------------------------------ // This layout is used for the Mmuock alphabet as described in the book // _The Sound of Mmuock: Orthography (2. ed.)_ [isbn: 978-9956-645-28-1]. // Mmuock is the language of the Mmuock (local: Muòk) people of Western // Cameroon. // // Author: Tano Fotang // Created: 2014-06-24 // Version: 1.2 // // CHANGES v 1.0: // 2014-07-06 corrected shifted level3 of to quotedbl // CHANGES v 1.1: // 2015-05-23 1- added dead_tilde to key ; this is needed to produce // the letter <ñ> which was totally missing from the keyboard // 2- added letter to ; the letter had been missing. // 3- if we're not re-defining particular symbols from the included // latin layout, then maintain the original latin mappings. // Previously, we had set them to NoSymbol. Now, we want to // keep the original latin mappings except for those few that we // want to overwrite for our own keyboard. // // CHANGES v 1.2: // 2016-06-17 1- added dead keys dead_macron, dead_acute, and dead_grave for // tones 1, 3, and 4, for compatibility with the Keyman version. // 2- rearranged combining diacritics for tones 0 to 5 such that // the diacritics are on consequetive keys (AC01 to AC05). // 3- moved tone 8 to level 3 of AE12. // 4- moved layout definition out of the EXTRAS section. // 5- for a cleaner keyboard, // replaced ṭhe included latin layout with us(basic). // // // NOTES: // 0. This map is based on the Latin alphabet layout for the US keyboard. // // 1. We use combining diacritical marks to create tone markings. There are 13 // tones that need to be indicated, although the first 5 are usually enough // to represent the rest in simplified orthography. // // 2. When composing Mmuock text, about every fourth symbol is for tone. To // facilitate easy and fast input, the combining diacritics are placed on // the home row (AC). To reduce the number of key strokes required, the // unshifted third level is used. Only 5 of the combining diacritics are not // on the AC row; they are in the top number row, AE. // // 3. Symbols that are used infrequently (`r', `h', `ɛ', `ǝ', etc.) are placed // in level3. Additionally, the letter eng (`ŋ'), although commonly used, // is found in level3 because it can alternatively be represented by . // (Indeed, the keyman version of keyboard actually replaces with `ŋ'.) // // 4. The unshifted AB10 key (normally assigned to the slash `/') is used as // level 3 switch since the slash is not used in the ordinary course of // typing Mmuock text. // // 5. The 'Cameroon Multilingual' keyboards that are defined elsewhere, do not // fit our needs because: (a) they are based on a different alphabet, (b) the // vast majority of their symbols are not used in Mmuock, and (c) for the few // symbols that are used in Mmuock, their placings are not egonomic for // typing Mmuock as the _PRIMARY_ language. The aim of this keyboard, is // to give priority to symbols that are actually used in the Mmuock alphabet. // // 6. The following fonts have been found to produce the best results with this // keyboard: // Family Accuracy // DejaVu (except Sans Mono) 9/10 // Linux Libertine 8/10 // Ubuntu (except light) 8/10 // Droid (except sans mono) 7/10 // Gentium, Gentium Alt 6.5/10 // In the terminal emulator, the following font variants have been tested: // Ubuntu Mono 9/10 // Unifont (Medium) 9/10 // DejaVu Sans Mono 7.5/10 // Droid Sans Mono 6.5/10 // These fonts are all freely available. // // ------the layout----------- // // ┌─────┐ // │ 2 4 │ 2 = Shift, 4 = Level3 + Shift // │ 1 3 │ 1 = Normal, 3 = Level3 // └─────┘ // // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ // │ ~ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & | * │ ( │ ) │ _ – │ + ̣┃ ⌫ Back- ┃ // AE│ ` ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6  ̂│ 7  ̑│ 8  ̍│ 9  ̓│ 0  ̊│ ¯ - │ = ̋┃ space ┃ // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ // ┃ ┃ Q │ W │ E Ǝ │ Š R │ T │ Y │ U Ω │ I Ɛ │ O Φ │ P ∏ │ Ø { │ Σ } ┃ Enter ┃ // AD┃Tab ↹ ┃ q │ w │ e ǝ │ š r │ t │ y │ u ω │ i ɛ │ o φ │ p π │ ø [ │ σ ] ┃ ⏎ ┃ // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ // ┃ ┃ A │ S │ D │ F │ G │  ̇ H │ J │ K │ L │ Œ : │ " ” │ Æ | ┃ ┃ // AC┃Caps ⇬ ┃ a  ̃│ s  ̄| d ́| f  ̀| g  ̌|  ̣ h │ j  ̆│ k  ̏│ l  ̈│ œ ; │ ' ’ │ æ \ ┃ ┃ // ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ // ┃ │ Z Dz │ X │ C │ V │ B │ N ŋ │ M │ < « │ > » │ ? ┃ ┃ // AB┃Shift ⇧ │ z dz │ x │ c │ v │ b │ n Ŋ │ m │ , ‹ │ . › │ / ┃Shift ⇧ ┃ // ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // AA┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ⇮┃Menu ┃Ctrl ┃ // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ // partial alphanumeric_keys xkb_symbols "mmuock" { include "us(basic)" include "level3(ralt_switch)" name[Group1]= "Mmuock"; key { [ 6, asciicircum, U0302 ] }; // tone 10 key { [ 7, ampersand, U0311 ] }; // tone 12 key { [ 8, asterisk, U030D ] }; // tone 13 key { [ 9, parenleft, U0307 ] }; // tone 7 key { [ 0, parenright, U030A ] }; // tone 6 key { [dead_macron, underscore, minus, endash ] }; key { [ equal, plus, U030B, dead_belowdot ] }; // U030B = tone 8 key { [ e, E, U01DD, U018E ] }; // U01DD = reversed E key { [ scaron, Scaron, r, R ] }; key { [ u, U, Greek_omega, Greek_OMEGA ] }; key { [ i, I, U025B, U0190 ] }; // U025B = open E key { [ o, O, Greek_phi, Greek_PHI ] }; key { [ p, P, Greek_pi, Greek_PI ] }; key { [ oslash, Ooblique, bracketleft, braceleft ] }; key { [Greek_sigma, Greek_SIGMA, bracketright, braceright ] }; key { [ a, A, U0303 ] }; // tone 0 key { [ s, S, U0304 ] }; // tone 1 key { [ d, D, U0301 ] }; // tone 3 key { [ f, F, U0300 ] }; // tone 4 key { [ g, G, U030C ] }; // tone 5 key { [ U0323, U0307, h, H ] }; // COMBINING DOT BELOW, ABOVE key { [ j, J, U0306 ] }; // tone 9 key { [ k, K, U030F ] }; // tone 11 key { [ l, L, U0308 ] }; // tone 14 key { [ oe, OE, semicolon, colon ] }; key { [ dead_acute, quotedbl, apostrophe ] }; key { [ dead_grave, dead_tilde, grave, asciitilde ] }; key { [ z, Z, U01F3, U01F2 ] }; // U01F3 = letter dz key { [ n, N, eng, ENG ] }; key { [ comma, less, guillemotleft, U2039 ] }; key { [ period, greater, guillemotright, U203A ] }; key { [ ae, AE, backslash, bar ] }; include "cm(solidus_switch)" }; // use slash as special key for switching to level3 partial modifier_keys xkb_symbols "solidus_switch" { key { symbols[Group1] = [ ISO_Level3_Latch, question, slash, dead_abovedot ] }; modifier_map Mod5 { ISO_Level3_Latch }; }; // ------- end of Mmuock keyboard map -------------------------------------------- PK(f[)9a  symbols/digital_vndr/lknu[// //Copyright (c) 1996 Digital Equipment Corporation // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be included //in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, //DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR //THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the Digital Equipment //Corporation shall not be used in advertising or otherwise to promote //the sale, use or other dealings in this Software without prior written //authorization from Digital Equipment Corporation. // // HISTORY // Log: lk,v // Revision 1.2 1996/06/18 09:10:09 erik // use flags correctly, assorted cleanups and consortium fixes // // Revision 1.1.2.2 1995/03/10 17:16:52 William_Walker // Rename to avoid name conflicts with XKB stuff // [1995/03/10 17:10:33 William_Walker] // // Revision 1.1.2.2 1994/10/31 15:22:00 William_Walker // New experimental version. // [1994/10/31 14:48:37 William_Walker] // // EndLog // // @(#)RCSfile: lk,v Revision: 1.2 (DEC) Date: 1996/01/24 12:14:58 // // Symbols common to all the LK-style keyboards. // default xkb_symbols "common" { // Modifier mappings modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control { Control_L, Control_R }; modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; modifier_map Mod2 { Num_Lock }; modifier_map Mod3 { Scroll_Lock }; // Additional alphanumeric keys key { [ less, greater ] }; key { [ Alt_L, Meta_L ] }; // "Function" keys key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; key { [ Escape, F11 ] }; key { [ F12 ] }; key { [ F13 ] }; key { [ F14 ] }; key { [ F17 ] }; key { [ F18 ] }; key { [ F19 ] }; key { [ F20 ] }; // "Editing" keys key { [ Help ] }; key { [ Menu ] }; key { [ Find ] }; key { [ Insert ] }; key { [ Delete ] }; key { [ Select ] }; key { [ Prior ] }; key { [ Next ] }; key { [ Up ] }; key { [ Left ] }; key { [ Down ] }; key { [ Right ] }; // "Keypad" keys key { type= "SHIFT+ALT", symbols[Group1]=[ KP_F1,Pointer_EnableKeys ] }; key { [ KP_F2 ] }; key { [ KP_F3 ] }; key { [ KP_F4 ] }; key { [ KP_Separator ] }; key { [ KP_Subtract ] }; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_Enter ] }; key { [ KP_0 ] }; key { [ KP_Decimal ] }; }; xkb_symbols "lk401" { include "symbols/digital_vndr/lk(common)" key { [ Alt_R, Meta_R ] }; key { [ Multi_key ] }; key { [ Multi_key ] }; }; PK(f[S2VVsymbols/digital_vndr/vtnu[// //Copyright (c) 1996 Digital Equipment Corporation // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be included //in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, //DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR //THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the Digital Equipment //Corporation shall not be used in advertising or otherwise to promote //the sale, use or other dealings in this Software without prior written //authorization from Digital Equipment Corporation. // // HISTORY // Log // Revision 1.2 1996/06/18 09:10:19 erik // use flags correctly, assorted cleanups and consortium fixes // // Revision 1.1.6.2 1995/12/19 19:56:39 William_Walker // Update to XKB 0.65 // [1995/12/17 02:37:47 William_Walker] // // Revision 1.1.2.5 1995/07/11 21:20:50 William_Walker // Make RALT act as RALT // [1995/07/11 21:18:28 William_Walker] // // Revision 1.1.2.4 1995/06/27 12:18:41 William_Walker // Add LK201 and LK450 support as well as TW and DP variants. // [1995/06/26 20:30:37 William_Walker] // // Revision 1.1.2.3 1995/06/09 20:55:21 William_Walker // Add VT105 layout support and ISO group support // [1995/06/09 20:43:09 William_Walker] // // Revision 1.1.2.2 1995/06/05 19:25:04 William_Walker // New file. I love keymaps. // [1995/06/05 18:17:58 William_Walker] // // EndLog // // @(#)RCSfile: vt Revision: /main/3 (DEC) Date: 1996/01/24 12:15:08 // xkb_symbols "vt105" { // Modifier mappings // modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control { Control_L, Control_R }; modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; modifier_map Mod3 { Mode_switch }; // Common keys // key { [ Delete ] }; key { [ Tab ] }; key { [ Return ] }; key { [ Control_L ] }; key { [ Caps_Lock ] }; key { [ Shift_L ] }; key { [ Shift_R ] }; key { [ Alt_L, Meta_L ] }; key { [ space ] }; // "Function" keys // key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; key { [ Escape, F11 ] }; key { [ F12 ] }; key { [ F13 ] }; key { [ F14 ] }; key { [ F17 ] }; key { [ F18 ] }; key { [ F19 ] }; key { [ F20 ] }; // "Editing" keys // key { [ Help ] }; key { [ Menu ] }; key { [ Find ] }; key { [ Insert ] }; key { [ apLineDel ] }; key { [ Select ] }; key { [ Prior ] }; key { [ Next ] }; key { [ Up ] }; key { [ Left ] }; key { [ Down ] }; key { [ Right ] }; // "Keypad" keys // key { type= "SHIFT+ALT", symbols[Group1]= [ KP_F1,Pointer_EnableKeys ] }; key { [ KP_F2 ] }; key { [ KP_F3 ] }; key { [ KP_F4 ] }; key { [ KP_7 ] }; key { [ KP_8 ] }; key { [ KP_9 ] }; key { [ KP_Subtract ] }; key { [ KP_4 ] }; key { [ KP_5 ] }; key { [ KP_6 ] }; key { [ KP_Separator ] }; key { [ KP_1 ] }; key { [ KP_2 ] }; key { [ KP_3 ] }; key { [ KP_Enter ] }; key { [ KP_0 ] }; key { [ KP_Decimal ] }; // Key to support Lock-Down Modifier descriptions for R5 // key { [ NoSymbol ] }; }; xkb_symbols "vt108" { include "digital_vndr/vt(vt105)" replace key { [ Mode_switch ] }; key { [ Alt_L, Meta_L ] }; key { [ Alt_R, Meta_R ] }; key { [ Multi_key ] }; }; PK(f[MO symbols/digital_vndr/usnu[// //Copyright (c) 1996 Digital Equipment Corporation // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be included //in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, //DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR //THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the Digital Equipment //Corporation shall not be used in advertising or otherwise to promote //the sale, use or other dealings in this Software without prior written //authorization from Digital Equipment Corporation. // // HISTORY // Log // Revision 1.2 1996/06/18 09:10:16 erik // use flags correctly, assorted cleanups and consortium fixes // // Revision 1.1.6.3 1995/12/19 19:56:37 William_Walker // Update to XKB 0.65 // [1995/12/17 02:37:44 William_Walker] // // Revision 1.1.6.2 1995/10/25 21:01:25 William_Walker // Add pc104-key support // [1995/10/23 15:46:27 William_Walker] // // Revision 1.1.2.7 1995/06/27 12:18:40 William_Walker // Add LK201 and LK450 support as well as TW and DP variants. // [1995/06/26 20:30:33 William_Walker] // // Revision 1.1.2.6 1995/06/09 20:55:20 William_Walker // Add VT105 layout support and ISO group support // [1995/06/09 20:43:05 William_Walker] // // Revision 1.1.2.5 1995/06/08 21:05:49 William_Walker // Use ISO_Next_Group instead of grouplock // [1995/06/08 21:03:56 William_Walker] // // Revision 1.1.2.4 1995/06/05 19:25:00 William_Walker // New file. I love keymaps. // [1995/06/05 18:17:54 William_Walker] // // EndLog // // @(#)RCSfile: us Revision: /main/4 (DEC) Date: 1996/01/24 12:15:05 // // ************************************************************** // * * // * Symbols for en_US.ISO8859-1 - English for U.S. * // * * // ************************************************************** xkb_symbols "us" { key { [ grave, asciitilde ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ bracketleft, braceleft ] }; key { [ bracketright, braceright ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon ] }; key { [ apostrophe, quotedbl ] }; key { [ backslash, bar ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, less ] }; key { [ period, greater ] }; key { [ slash, question ] }; }; // ************************************************************** // * * // * The VT105 layouts * // * * // * NOTES: The typewriter (TW) and dataprocessing (DP) keys * // * for the VT108 layout are identical for the US. * // * * // ************************************************************** xkb_symbols "vt105-tw" { include "digital_vndr/us(us)" include "digital_vndr/vt(vt105)" override key { symbols[Group1]= [ 3, numbersign ], symbols[Group2]= [ sterling ] }; key { [ less, greater ] }; }; xkb_symbols "vt105-dp" { include "digital_vndr/us(vt105-tw)" }; xkb_symbols "vt105" { include "digital_vndr/us(vt105-tw)" }; // ************************************************************** // * * // * The VT108 layouts - based upon the LK401-AA * // * * // * NOTES: The typewriter (TW) and dataprocessing (DP) keys * // * for the VT108 layout are identical for the US. * // * * // ************************************************************** xkb_symbols "vt108-tw" { include "digital_vndr/us(us)" include "digital_vndr/vt(vt108)" replace key { [ Multi_key ] }; override key { symbols[Group1]= [ 3, numbersign ], symbols[Group2]= [ sterling ] }; key { [ less, greater ] }; }; xkb_symbols "vt108-dp" { include "digital_vndr/us(vt108-tw)" }; xkb_symbols "vt108" { include "digital_vndr/us(vt108-tw)" }; // ************************************************************** // * * // * The "unix" layouts - based upon the LK421-AA * // * * // * NOTES: The "unix" keyboard emits the same keycodes as the * // * LK401, but is a shorter keyboard that uses an * // * "extend" key. To make life easier, we map * // * to Escape so users do not have to press Extend+F11 * // * to get Escape. * // * * // ************************************************************** xkb_symbols "unix" { include "digital_vndr/us(vt108)" override key { [ Escape ] }; override key { [ grave, asciitilde ] }; }; // ************************************************************** // * * // * The "pcxal" layouts * // * * // * NOTES: The pcxal layouts are pretty much standardized for * // * the US and use a 101-key keyboard. * // * * // ************************************************************** xkb_symbols "pcxalga" { include "digital_vndr/pc(pc)" include "digital_vndr/us(us)" replace key { [ Alt_R, Meta_R ] }; }; xkb_symbols "pcxal" { include "digital_vndr/us(pcxalga)" }; xkb_symbols "pcxalaa" { include "digital_vndr/us(pcxalga)" }; xkb_symbols "pcxalfa" { include "digital_vndr/us(pcxalga)" }; xkb_symbols "pcxalka" { include "digital_vndr/us(pcxalga)" }; xkb_symbols "lk44x" { include "digital_vndr/us(pcxalga)" }; // ************************************************************** // * * // * The "pc104" layouts. * // * * // ************************************************************** xkb_symbols "pc104" { include "digital_vndr/pc(pc104)" include "digital_vndr/us(us)" replace key { [ Alt_R ] }; }; PK(f[c77symbols/digital_vndr/pcnu[// //Copyright (c) 1996 Digital Equipment Corporation // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be included //in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, //DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR //THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the Digital Equipment //Corporation shall not be used in advertising or otherwise to promote //the sale, use or other dealings in this Software without prior written //authorization from Digital Equipment Corporation. // // HISTORY // Log // Revision 1.2 1996/06/18 09:10:12 erik // use flags correctly, assorted cleanups and consortium fixes // // Revision 1.1.6.4 1995/12/19 19:55:58 William_Walker // Update to XKB 0.65 // [1995/12/17 02:37:07 William_Walker] // // Revision 1.1.6.3 1995/10/25 21:01:09 William_Walker // Make sure we use DIN 2137 and VT510 Spec for Group Semantics // [1995/10/23 15:49:03 William_Walker] // // Revision 1.1.6.2 1995/08/07 17:40:40 William_Walker // Upgrade XKB to protocol 0.62 (dual submit from decx11) // [1995/08/06 14:06:32 William_Walker] // // Revision 1.1.2.7 1995/08/05 15:25:57 William_Walker // Sync up with Erik's pool. // [1995/08/03 20:17:15 William_Walker] // // Revision 1.1.2.6 1995/06/27 12:18:25 William_Walker // Add LK201 and LK450 support as well as TW and DP variants. // [1995/06/26 20:29:52 William_Walker] // // Revision 1.1.2.5 1995/06/08 17:10:28 William_Walker // Make RALT default to Mode_switch // [1995/06/08 17:08:50 William_Walker] // // Revision 1.1.2.4 1995/06/05 19:24:14 William_Walker // New file. I love keymaps. // [1995/06/05 18:17:03 William_Walker] // // EndLog // // @(#)RCSfile: pc Revision: /main/4 (DEC) Date: 1996/01/24 12:15:02 // // ************************************************************** // * * // * The symbols common to all Extended PC layouts. * // * * // ************************************************************** xkb_symbols "pc" { // Modifier mappings // modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control { Control_L, Control_R }; modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; modifier_map Mod3 { Mode_switch }; modifier_map Mod4 { Num_Lock }; modifier_map Mod5 { Scroll_Lock }; // Common keys // key { [ BackSpace, Delete ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ Caps_Lock ] }; key { [ Return ] }; key { [ Shift_L ] }; key { [ Shift_R ] }; key { [ Control_L ] }; key { [ Alt_L, Meta_L ] }; key { [ space ] }; key { [ Mode_switch ] }; key { [ Control_R ] }; // "Function" keys // key { [ Escape ] }; key { [ F1 ] }; key { [ F2 ] }; key { [ F3 ] }; key { [ F4 ] }; key { [ F5 ] }; key { [ F6 ] }; key { [ F7 ] }; key { [ F8 ] }; key { [ F9 ] }; key { [ F10 ] }; key { [ F11 ] }; key { [ F12 ] }; key { type= "PC_ALT_LEVEL2", symbols[Group1]= [ Print, Sys_Req ] }; key { [ Scroll_Lock ] }; key { type= "PC_CONTROL_LEVEL2", symbols[Group1]= [ Pause, Break ] }; // "Editing" keys // key { [ Insert ] }; key { [ Home ] }; key { [ Prior ] }; key { [ Delete ] }; key { [ End ] }; key { [ Next ] }; key { [ Up ] }; key { [ Left ] }; key { [ Down ] }; key { [ Right ] }; // "Keypad" keys // key { type= "SHIFT+ALT", symbols[Group1]= [ Num_Lock,Pointer_EnableKeys] }; key { [ KP_Divide ] }; key { [ KP_Multiply ] }; key { [ KP_Subtract ] }; key { [ KP_Home, KP_7 ] }; key { [ KP_Up, KP_8 ] }; key { [ KP_Prior, KP_9 ] }; key { [ KP_Add ] }; key { [ KP_Left, KP_4 ] }; key { [ KP_5 ] }; key { [ KP_Right, KP_6 ] }; key { [ KP_End, KP_1 ] }; key { [ KP_Down, KP_2 ] }; key { [ KP_Next, KP_3 ] }; key { [ KP_Enter ] }; key { [ KP_Insert, KP_0 ] }; key { [ KP_Delete, KP_Decimal ] }; // Key to support Lock-Down Modifier descriptions for R5 // key { [ NoSymbol ] }; }; xkb_symbols "pc104" { include "digital_vndr/pc(pc)" replace key { [ Alt_L ] }; key { [ Meta_L ] }; key { [ Meta_R ] }; key { [ Menu ] }; }; PK(f[ symbols/vnnu[// based on: // vn, TCVN 5712:1993 // Le Hong Boi // August 1999 // Further modified by Ashley Clark // July 2000 for X 4.0 // Fix accents into combining marks by Samuel Thibault // July 2009 default partial alphanumeric_keys xkb_symbols "basic" { include "us" name[Group1]= "Vietnamese"; key { [ grave, asciitilde ] }; key { [ abreve, Abreve ] }; key { [ acircumflex, Acircumflex ] }; key { [ ecircumflex, Ecircumflex ] }; key { [ ocircumflex, Ocircumflex ] }; key { [ 0x1000300, percent, dead_grave, percent ] }; key { [ 0x1000309, asciicircum, dead_hook, asciicircum ] }; key { [ 0x1000303, ampersand, dead_tilde, ampersand ] }; key { [ 0x1000301, asterisk, dead_acute, asterisk ] }; key { [ 0x1000323, parenleft, dead_belowdot, parenleft ] }; key { [ dstroke, Dstroke ] }; key { [ minus, underscore ] }; key { [ DongSign, plus ] }; key { [ uhorn, Uhorn ] }; key { [ ohorn, Ohorn ] }; include "level3(ralt_switch)" }; // US keyboard made Vietnamese // // Copyright (C) 2018, Florent Gallaire Phong partial alphanumeric_keys xkb_symbols "us" { include "us(euro)" name[Group1]= "Vietnamese (US, with Vietnamese letters)"; key { [dead_grave, dead_tilde, grave, asciitilde ] }; key { [ 4, dollar, DongSign, currency ] }; // ₫ ¤ key { [ e, E, ecircumflex, Ecircumflex ] }; // ê Ê key { [ u, U, uhorn, Uhorn ] }; // ư Ư key { [ o, O, ocircumflex, Ocircumflex ] }; // ô Ô key { [ p, P, ohorn, Ohorn ] }; // ơ Ơ key { [ a, A, acircumflex, Acircumflex ] }; // â  key { [ s, S, abreve, Abreve ] }; // ă Ă key { [ d, D, dstroke, Dstroke ] }; // đ Đ key { [dead_acute, quotedbl, apostrophe ] }; key { [dead_belowdot, greater, period ] }; key { [ dead_hook, question, slash ] }; }; // French keyboard made Vietnamese // // Copyright (C) 2018, Florent Gallaire Phong partial alphanumeric_keys xkb_symbols "fr" { include "fr(basic)" name[Group1]="Vietnamese (French, with Vietnamese letters)"; key { [dead_tilde, 2, eacute, asciitilde ] }; key { [dead_acute, 4, apostrophe, braceleft ] }; key { [dead_grave, 7, egrave, grave ] }; key { [ a, A, abreve, Abreve ] }; // ă Ă key { [ u, U, uhorn, Uhorn ] }; // ư Ư key { [ o, O, ohorn, Ohorn ] }; // ơ Ơ key { [ dollar, sterling, DongSign, currency ] }; // ₫ ¤ key { [ d, D, dstroke, Dstroke ] }; // đ Đ key { [ dead_hook, question, comma ] }; key { [dead_belowdot, period, semicolon ] }; }; // EXTRAS: // Vietnamese AÐERTY (60s typewriters adaptation) // // Copyright (C) 2018, Florent Gallaire Phong partial alphanumeric_keys xkb_symbols "aderty" { include "fr(basic)" name[Group1]="Vietnamese (AÐERTY)"; key { [dead_tilde, 2, eacute, asciitilde ] }; key { [dead_acute, 4, apostrophe, braceleft ] }; key { [dead_grave, 7, egrave, grave ] }; key { [ dstroke, Dstroke, z, Z ] }; // đ Đ key { [ dollar, sterling, DongSign, currency ] }; // ₫ ¤ key { [ uhorn, Uhorn, f, F ] }; // ư Ư key { [ ohorn, Ohorn, j, J ] }; // ơ Ơ key { [ abreve, Abreve, w, W ] }; // ă Ă key { [ dead_hook, question, comma ] }; key { [dead_belowdot, period, semicolon ] }; }; // Vietnamese QĐERTY (AĐERTY qwertification) // // Copyright (C) 2018, Florent Gallaire Phong partial alphanumeric_keys xkb_symbols "qderty" { include "us(euro)" name[Group1]= "Vietnamese (QĐERTY)"; key { [dead_grave, dead_tilde, grave, asciitilde ] }; key { [ 4, dollar, DongSign, currency ] }; // ₫ ¤ key { [ dstroke, Dstroke, w, W ] }; // đ Đ key { [ e, E, ecircumflex, Ecircumflex ] }; // ê Ê key { [ o, O, ocircumflex, Ocircumflex ] }; // ô Ô key { [ a, A, acircumflex, Acircumflex ] }; // â  key { [ uhorn, Uhorn, f, F ] }; // ư Ư key { [ ohorn, Ohorn, j, J ] }; // ơ Ơ key { [dead_acute, quotedbl, apostrophe ] }; key { [ abreve, Abreve, z, Z ] }; // ă Ă key { [dead_belowdot, greater, period ] }; key { [ dead_hook, question, slash ] }; }; PK(f[Xhddgeometry/keytronicnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_geometry "FlexPro" { // This is an approximate layout for a Key Tronic FlexPro // keyboard. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes of a few keys by eye. I didn't actually // *measure* a real keyboard. description= "Key Tronic FlexPro keyboard"; width= 515; height= 200; shape "EDGE" { cornerRadius= 2, { [ 515, 200 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [ 32,18] }, { [2,1], [30,17] } }; shape "TABK" { { [ 32,18] }, { [2,1], [30,17] } }; shape "BKSL" { { [ 23,18] }, { [2,1], [21,17] } }; shape "RTRN" { approx = { [16, 0], [38,37] }, { [16, 0], [38, 0], [38,37], [ 0,37], [ 0,19], [16,19] }, { [18, 1], [36, 1], [36,36], [ 2,36], [ 2,20], [18,20] } }; shape "CAPS" { { [36,18] }, { [2,1], [34,17] } }; shape "SHFT" { { [46,18] }, { [2,1], [44,17] } }; shape "LCTL" { { [32,18] }, { [2,1], [30,17] } }; shape "RCTL" { { [38,18] }, { [2,1], [36,17] } }; shape "LALT" { { [28,18] }, { [2,1], [26,17] } }; shape "RALT" { { [33,18] }, { [2,1], [31,17] } }; shape "LSPC" { { [66,22] }, { [0,0], [66,22] } }; shape "RSPC" { { [76,22] }, { [0,0], [76,22] } }; shape "KP0" { { [37,18] }, { [2,1], [35,17] } }; shape "KPEN" { { [18,37] }, { [2,1], [16,36] } }; shape "LOGO" { cornerRadius= 3, { [80,35] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 9; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 56; row { top = 1; key.color= "grey20"; keys { , }; }; row { top = 20; key.color= "grey20"; keys { , }; }; row { top = 39; keys { , }; }; row { top = 58; key.color= "grey20"; keys { , }; }; row { top = 77; key.color= "grey20"; keys { , }; }; row { top = 96; keys { , }; }; }; // End of "Function" section section "Alpha" { top= 56; left= 53; row { top= 1; keys { { , color="grey20" }, { , "BKSL", color="grey20" }, , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , color="grey20" }, { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "RTRN", -14, color="grey20" } }; }; row { top= 39; keys { { , color="grey20" }, { , "CAPS", color="grey20" }, , , , , , , , , , , }; }; row { top= 58; keys { { , color="grey20" }, { , "SHFT", color="grey20" }, , , , , , , , , , , { , "SHFT", color="grey20" } }; }; row { top= 77; key.color= "grey20"; keys { , { , shape="LCTL" }, { , shape="LALT" }, { , shape="LSPC", 4, color="white" }, { , shape="RSPC",color="white" }, { , shape="RALT", 4 }, { , shape="RCTL" } }; }; }; // End of "Alpha" section section "Editing" { top= 12; left= 365; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 45; keys { , , }; }; row { top= 64; keys { , , }; }; row { top= 102; left= 20; keys { }; }; row { top= 121; keys { , , }; }; }; // End of "Editing" section shape "LEDS" { cornerRadius= 3, { [ 76, 20 ] } }; shape "LED" { cornerRadius= 0, { [ 7, 4 ] } }; solid "LedPanel" { shape= "LEDS"; top= 11; left= 430; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 13; indicator.shape= "LED"; indicator "Num Lock" { left= 440; }; indicator "Caps Lock" { left= 467; }; indicator "Scroll Lock" { left= 489; }; text.top= 22; text.color= "black"; text "NumLockLabel" { left= 438; text="Num\nLock"; }; text "CapsLockLabel" { left= 465; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 487; text="Scroll\nLock"; }; logo "FlexProLogoImage" { top= 12; left= 45; name= "KeyTronic"; shape= "LOGO"; }; text "KeyTronicLogoText" { top= 15; left= 50; width= 55; text= "FlexPro"; font= "times"; slant= "o"; weight= "bold"; fontWidth= "narrow"; fontSize= 36; }; section "Keypad" { top= 56; left= 430; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , color= "grey20" } }; }; row { top= 39; keys { , , , { , color= "grey20" } }; }; row { top= 58; keys { , , , { , "KPEN", color= "grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section }; PK(f[vwn((geometry/sgi_vndr/indigonu[// // Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. // // Permission to use, copy, modify, and distribute this // software and its documentation for any purpose and without // fee is hereby granted, provided that the above copyright // notice appear in all copies and that both that copyright // notice and this permission notice appear in supporting // documentation, and that the name of Silicon Graphics not be // used in advertising or publicity pertaining to distribution // of the software without specific prior written permission. // Silicon Graphics makes no representation about the suitability // of this software for any purpose. It is provided "as is" // without any express or implied warranty. // // SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS // SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY // AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON // GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL // DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH // THE USE OR PERFORMANCE OF THIS SOFTWARE. // default xkb_geometry "pc101" { // This is an approximate layout for a 101-key (US/ASCII) SGI // keyboard. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes of a few keys by eye. I didn't actually // *measure* a real keyboard. description= "Silicon Graphics 101-key keyboard"; width= 472; height= 193; shape "EDGE" { cornerRadius= 2, { [ 472, 193 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "TABK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } }; shape "RTRN" { { [ 40,18] }, { [2,1], [37,17] } }; shape "CAPS" { { [ 34,18] }, { [2,1], [29,17] } }; shape "RTSH" { { [ 49,18] }, { [2,1], [47,17] } }; shape "LFSH" { { [ 44,18] }, { [2,1], [42,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 50; row { top= 1; keys { { , color="grey20" }, { , 19}, , , , { , 11}, , , , { , 11}, , , }; }; }; // End of "Function" section section "Alpha" { top= 83; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color= "grey20" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 20 }, { , "SPCE",color="white" }, , { , 20 } }; }; }; // End of "Alpha" section section "Editing" { top= 50; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 33; keys { , , }; }; row { top= 53; keys { , , }; }; row { top= 91; left= 20; keys { }; }; row { top= 110; keys { , , }; }; }; // End of "Editing" section shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; solid "LedPanel" { shape= "LEDS"; top= 50; left= 377; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 64.5; indicator.shape= "LED"; indicator "Num Lock" { left= 386; }; indicator "Caps Lock" { left= 411; }; indicator "Scroll Lock" { left= 436; }; text.top= 52; text.color= "black"; text "NumLockLabel" { left= 382.5; text="Num\nLock"; }; text "CapsLockLabel" { left= 407; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 432; text="Scroll\nLock"; }; logo "SGILogoImage" { top= 17; left= 22; name= "SGI"; shape= "LOGO"; }; text "SGILogoText" { top= 21; left= 40; width= 50; text= "SiliconGraphics"; font= "helvetica"; slant= "o"; weight= "bold"; fontWidth= "narrow"; fontSize= 24; }; section "Keypad" { top= 83; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; xkb_geometry "pc102" { // This is an approximate layout for 102-key SGI international // keyboards. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes of a few keys by eye. I didn't actually // *measure* a real keyboard. description= "Silicon Graphics 102-key Keyboard"; width= 470; height= 193; shape.cornerRadius= 1; shape "EDGE" { cornerRadius=2, { [ 470, 193 ] } }; shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [35,18] }, { [2,1], [33,17] } }; shape "TABK" { { [27,18] }, { [2,1], [25,17] } }; shape "RTRN" { approx = { [ 0, 0], [26,37] }, { [ 0, 0], [26, 0], [26,37], [ 5,37], [ 5,18], [ 0,18] }, { [ 1, 1], [24, 1], [24,36], [ 7,36], [ 7,17], [ 1,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [25,17] } }; shape "RTSH" { { [ 50,18] }, { [2,1], [48,17] } }; shape "LFSH" { { [ 22,18] }, { [2,1], [20,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 50; row { top= 1; keys { { , color="grey20" }, { , 18}, , , , { , 10}, , , , { , 10}, , , }; }; }; // End of "Function" section section "Alpha" { top= 83; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color= "grey20" } }; }; row { top= 20; keys { { , "TABK", color= "grey20" }, , , , , , , , , , , , , { , "RTRN", color= "grey20" } }; }; row { top= 39; keys { { , "CAPS", color= "grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color= "grey20" }, , , , , , , , , , , , { , "RTSH", color= "grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 19 }, { , "SPCE", color="white" }, , { , 19 } }; }; }; // End of "Alpha" section section "Editing" { top= 50; left= 308; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 33; keys { , , }; }; row { top= 53; keys { , , }; }; row { top= 91; left= 20; keys { }; }; row { top= 110; keys { , , }; }; }; // End of "Editing" section shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; solid "LedPanel" { shape= "LEDS"; top= 50; left= 375; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 64.5; indicator.shape= "LED"; indicator "Num Lock" { left= 384; }; indicator "Caps Lock" { left= 409; }; indicator "Scroll Lock" { left= 434; }; text.top= 52; text.color= "black"; text "NumLockLabel" { left= 380.5; text="Num\nLock"; }; text "CapsLockLabel" { left= 405; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 430; text="Scroll\nLock"; }; logo "SGILogoImage" { top= 17; left= 22; name= "SGI"; shape= "LOGO"; }; text "SGILogoText" { top= 21; left= 40; width= 50; text= "SiliconGraphics"; font= "helvetica"; slant= "o"; weight= "bold"; setWidth= "narrow"; fontSize= 24; }; section "Keypad" { top= 83; left= 374; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; PK(f[S::geometry/sgi_vndr/indynu[// // Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. // // Permission to use, copy, modify, and distribute this // software and its documentation for any purpose and without // fee is hereby granted, provided that the above copyright // notice appear in all copies and that both that copyright // notice and this permission notice appear in supporting // documentation, and that the name of Silicon Graphics not be // used in advertising or publicity pertaining to distribution // of the software without specific prior written permission. // Silicon Graphics makes no representation about the suitability // of this software for any purpose. It is provided "as is" // without any express or implied warranty. // // SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS // SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY // AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON // GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL // DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH // THE USE OR PERFORMANCE OF THIS SOFTWARE. // default xkb_geometry "pc101" { // This is an approximate layout for a 101-key (US/ASCII) SGI // keyboard. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes of a few keys by eye. I didn't actually // *measure* a real keyboard. description= "Silicon Graphics 101-key keyboard"; width= 472; height= 193; shape "EDGE" { cornerRadius= 2, { [ 472, 193 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "TABK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } }; shape "RTRN" { { [ 40,18] }, { [2,1], [37,17] } }; shape "CAPS" { { [ 34,18] }, { [2,1], [29,17] } }; shape "RTSH" { { [ 49,18] }, { [2,1], [47,17] } }; shape "LFSH" { { [ 44,18] }, { [2,1], [42,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 50; row { top= 1; keys { { , color="grey20" }, { , 19}, , , , { , 11}, , , , { , 11}, , , }; }; }; // End of "Function" section section "Alpha" { top= 83; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color= "grey20" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 20 }, { , "SPCE",color="white" }, , { , 20 } }; }; }; // End of "Alpha" section section "Editing" { top= 50; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 33; keys { , , }; }; row { top= 53; keys { , , }; }; row { top= 91; left= 20; keys { }; }; row { top= 110; keys { , , }; }; }; // End of "Editing" section shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; solid "LedPanel" { shape= "LEDS"; top= 50; left= 377; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 64.5; indicator.shape= "LED"; indicator "Num Lock" { left= 386; }; indicator "Caps Lock" { left= 411; }; indicator "Scroll Lock" { left= 436; }; text.top= 52; text.color= "black"; text "NumLockLabel" { left= 382.5; text="Num\nLock"; }; text "CapsLockLabel" { left= 407; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 432; text="Scroll\nLock"; }; logo "SGILogoImage" { top= 17; left= 22; name= "SGI"; shape= "LOGO"; }; text "SGILogoText" { top= 21; left= 40; width= 50; text= "SiliconGraphics"; font= "helvetica"; slant= "o"; weight= "bold"; fontWidth= "narrow"; fontSize= 24; }; section "Keypad" { top= 83; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; xkb_geometry "pc102" { // This is an approximate layout for 102-key SGI international // keyboards. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes of a few keys by eye. I didn't actually // *measure* a real keyboard. description= "Silicon Graphics 102-key Keyboard"; width= 470; height= 193; shape.cornerRadius= 1; shape "EDGE" { cornerRadius=2, { [ 470, 193 ] } }; shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [35,18] }, { [2,1], [33,17] } }; shape "TABK" { { [27,18] }, { [2,1], [25,17] } }; shape "RTRN" { approx = { [ 0, 0], [26,37] }, { [ 0, 0], [26, 0], [26,37], [ 5,37], [ 5,18], [ 0,18] }, { [ 1, 1], [24, 1], [24,36], [ 7,36], [ 7,17], [ 1,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [25,17] } }; shape "RTSH" { { [ 50,18] }, { [2,1], [48,17] } }; shape "LFSH" { { [ 22,18] }, { [2,1], [20,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 50; row { top= 1; keys { { , color="grey20" }, { , 18}, , , , { , 10}, , , , { , 10}, , , }; }; }; // End of "Function" section section "Alpha" { top= 83; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color= "grey20" } }; }; row { top= 20; keys { { , "TABK", color= "grey20" }, , , , , , , , , , , , , { , "RTRN", color= "grey20" } }; }; row { top= 39; keys { { , "CAPS", color= "grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color= "grey20" }, , , , , , , , , , , , { , "RTSH", color= "grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 19 }, { , "SPCE", color="white" }, , { , 19 } }; }; }; // End of "Alpha" section section "Editing" { top= 50; left= 308; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 33; keys { , , }; }; row { top= 53; keys { , , }; }; row { top= 91; left= 20; keys { }; }; row { top= 110; keys { , , }; }; }; // End of "Editing" section shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; solid "LedPanel" { shape= "LEDS"; top= 50; left= 375; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 64.5; indicator.shape= "LED"; indicator "Num Lock" { left= 384; }; indicator "Caps Lock" { left= 409; }; indicator "Scroll Lock" { left= 434; }; text.top= 52; text.color= "black"; text "NumLockLabel" { left= 380.5; text="Num\nLock"; }; text "CapsLockLabel" { left= 405; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 430; text="Scroll\nLock"; }; logo "SGILogoImage" { top= 17; left= 22; name= "SGI"; shape= "LOGO"; }; text "SGILogoText" { top= 21; left= 40; width= 50; text= "SiliconGraphics"; font= "helvetica"; slant= "o"; weight= "bold"; setWidth= "narrow"; fontSize= 24; }; section "Keypad" { top= 83; left= 374; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; xkb_geometry "jp106" { description= "Silicon Graphics 106-key Japanese keyboard"; width= 442; height= 167; shape "EDGE" { cornerRadius= 2, { [ 442, 167 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "BKSL" { { [ 27,18] }, { [2,1], [ 25,17] } }; shape "RTRN" { { [0,0],[ 27,0],[27,37],[4,37],[4,18],[0,18] } , { [2,1],[ 25,1],[25,36],[5,36],[5,17],[2,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; shape "RTSH" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "SPCE" { { [ 46,18] }, { [2,1], [ 44,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; logo "SGILogoImage" { top= 5; left= 6; name= "SGI"; shape= "LOGO"; }; text "SGILogoText" { top= 9; left= 25; width= 50; text= "SiliconGraphics"; font= "helvetica"; slant= "o"; weight= "bold"; fontWidth= "narrow"; fontSize= 24; }; shape "LEDS" { cornerRadius= 0.1, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 25; left= 362; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 40; indicator.shape= "LED"; indicator "Num Lock" { left= 366; }; indicator "Caps Lock" { left= 391; }; indicator "Scroll Lock" { left= 416; }; text.top= 28; text.color= "black"; text "NumLockLabel" { left= 366; text="Num\nLock"; }; text "CapsLockLabel" { left= 391; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 416; text="Scroll\nLock"; }; section.left= 5; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 25; row { top= 1; keys { { , color="grey20" }, { , 18 }, , , , { , 11 ,color="grey20"}, {,color="grey20"}, { , color="grey20"}, {,color="grey20"}, { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { {,color="grey20"}, , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , 1 ,"RTRN",color="grey20" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 20 },, { , "SPCE", color="white" }, ,,, { , 17 } }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 296; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 361; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "jp106" geometry PK(f[';;geometry/sgi_vndr/O2nu[// // Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. // // Permission to use, copy, modify, and distribute this // software and its documentation for any purpose and without // fee is hereby granted, provided that the above copyright // notice appear in all copies and that both that copyright // notice and this permission notice appear in supporting // documentation, and that the name of Silicon Graphics not be // used in advertising or publicity pertaining to distribution // of the software without specific prior written permission. // Silicon Graphics makes no representation about the suitability // of this software for any purpose. It is provided "as is" // without any express or implied warranty. // // SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS // SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY // AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON // GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL // DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH // THE USE OR PERFORMANCE OF THIS SOFTWARE. // default xkb_geometry "pc101" { // This is an approximate layout for a 101-key (US/ASCII) SGI // keyboard. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes of a few keys by eye. I didn't actually // *measure* a real keyboard. description= "101-key keyboard for Silicon Graphics O2"; width= 448; height= 162; shape "EDGE" { cornerRadius= 2, { [ 15, 0 ], [ 433, 0 ], [ 433, 10 ], [ 448, 10 ], [ 448, 162 ], [ 0, 162 ], [ 0, 10 ], [ 15, 10 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "TABK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } }; shape "RTRN" { { [ 40,18] }, { [2,1], [37,17] } }; shape "CAPS" { { [ 34,18] }, { [2,1], [29,17] } }; shape "RTSH" { { [ 49,18] }, { [2,1], [47,17] } }; shape "LFSH" { { [ 44,18] }, { [2,1], [42,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "LOGO" { { [ 12,12] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 6; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 25; row { top= 1; keys { { , color="grey20" }, { , 19}, , , , { , 11}, , , , { , 11}, , , }; }; }; // End of "Function" section section "Alpha" { top= 58; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color= "grey20" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 20 }, { , "SPCE",color="white" }, , { , 20 } }; }; }; // End of "Alpha" section section "Editing" { top= 25; left= 299; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 33; keys { , , }; }; row { top= 53; keys { , , }; }; row { top= 91; left= 20; keys { }; }; row { top= 110; keys { , , }; }; }; // End of "Editing" section shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 3, 1.5] } }; solid "LedPanel" { shape= "LEDS"; top= 25; left= 364; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 40.5; indicator.shape= "LED"; indicator "Num Lock" { left= 372; }; indicator "Caps Lock" { left= 397; }; indicator "Scro llLock" { left= 422; }; text.font= "helvetica"; text.weight= "bold"; text.slant= "r"; text.fontWidth= "normal"; text.fontSize= 12; text.top= 39.5; text.color= "black"; text "NumLockLabel" { left= 376.5; text="1"; }; text "CapsLockLabel" { left= 401.5; text="A"; }; text "ScrollLockLabel" { left= 426.5; text="S"; }; logo "SGILogoImage" { top= 26.5; left= 396; name= "SGI"; shape= "LOGO"; }; text.font= "helvetica"; text.weight= "bold"; text.slant= "o"; text.fontWidth= "narrow"; text.fontSize= 18; text "SiliconLogoText" { top= 27; left= 375; width= 20; text= "Silicon"; }; text "GraphicsLogoText" { top= 27; left= 409; width= 20; text= "Graphics"; }; section "Keypad" { top= 58; left= 363; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; xkb_geometry "pc102" { // This is an approximate layout for 102-key SGI international // keyboards. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes of a few keys by eye. I didn't actually // *measure* a real keyboard. description= "Silicon Graphics 102-key Keyboard"; width= 470; height= 193; shape.cornerRadius= 1; shape "EDGE" { cornerRadius=2, { [ 470, 193 ] } }; shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [35,18] }, { [2,1], [33,17] } }; shape "TABK" { { [27,18] }, { [2,1], [25,17] } }; shape "RTRN" { approx = { [ 0, 0], [26,37] }, { [ 0, 0], [26, 0], [26,37], [ 5,37], [ 5,18], [ 0,18] }, { [ 1, 1], [24, 1], [24,36], [ 7,36], [ 7,17], [ 1,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [25,17] } }; shape "RTSH" { { [ 50,18] }, { [2,1], [48,17] } }; shape "LFSH" { { [ 22,18] }, { [2,1], [20,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [130,18] }, { [2,1], [128,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 50; row { top= 1; keys { { , color="grey20" }, { , 18}, , , , { , 10}, , , , { , 10}, , , }; }; }; // End of "Function" section section "Alpha" { top= 83; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color= "grey20" } }; }; row { top= 20; keys { { , "TABK", color= "grey20" }, , , , , , , , , , , , , { , "RTRN", color= "grey20" } }; }; row { top= 39; keys { { , "CAPS", color= "grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color= "grey20" }, , , , , , , , , , , , { , "RTSH", color= "grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 19 }, { , "SPCE", color="white" }, , { , 19 } }; }; }; // End of "Alpha" section section "Editing" { top= 50; left= 308; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 33; keys { , , }; }; row { top= 53; keys { , , }; }; row { top= 91; left= 20; keys { }; }; row { top= 110; keys { , , }; }; }; // End of "Editing" section shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; solid "LedPanel" { shape= "LEDS"; top= 50; left= 375; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 64.5; indicator.shape= "LED"; indicator "Num Lock" { left= 384; }; indicator "Caps Lock" { left= 409; }; indicator "Scroll Lock" { left= 434; }; text.top= 52; text.color= "black"; text "NumLockLabel" { left= 380.5; text="Num\nLock"; }; text "CapsLockLabel" { left= 405; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 430; text="Scroll\nLock"; }; logo "SGILogoImage" { top= 17; left= 22; name= "SGI"; shape= "LOGO"; }; text "SGILogoText" { top= 21; left= 40; width= 50; text= "SiliconGraphics"; font= "helvetica"; slant= "o"; weight= "bold"; setWidth= "narrow"; fontSize= 24; }; section "Keypad" { top= 83; left= 374; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; xkb_geometry "jp106" { description= "Silicon Graphics 106-key Japanese keyboard"; width= 442; height= 167; shape "EDGE" { cornerRadius= 2, { [ 442, 167 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "BKSL" { { [ 27,18] }, { [2,1], [ 25,17] } }; shape "RTRN" { { [0,0],[ 27,0],[27,37],[4,37],[4,18],[0,18] } , { [2,1],[ 25,1],[25,36],[5,36],[5,17],[2,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; shape "RTSH" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "SPCE" { { [ 46,18] }, { [2,1], [ 44,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; logo "SGILogoImage" { top= 5; left= 6; name= "SGI"; shape= "LOGO"; }; text "SGILogoText" { top= 9; left= 25; width= 50; text= "SiliconGraphics"; font= "helvetica"; slant= "o"; weight= "bold"; fontWidth= "narrow"; fontSize= 24; }; shape "LEDS" { cornerRadius= 0.1, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 25; left= 362; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 40; indicator.shape= "LED"; indicator "Num Lock" { left= 366; }; indicator "Caps Lock" { left= 391; }; indicator "Scroll Lock" { left= 416; }; text.top= 28; text.color= "black"; text "NumLockLabel" { left= 366; text="Num\nLock"; }; text "CapsLockLabel" { left= 391; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 416; text="Scroll\nLock"; }; section.left= 5; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 25; row { top= 1; keys { { , color="grey20" }, { , 18 }, , , , { , 11 ,color="grey20"}, {,color="grey20"}, { , color="grey20"}, {,color="grey20"}, { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { {,color="grey20"}, , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , 1 ,"RTRN",color="grey20" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 20 },, { , "SPCE", color="white" }, ,,, { , 17 } }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 296; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 361; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "jp106" geometry PK(f[b˫oMoM geometry/sunnu[// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. // //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // xkb_geometry "t6" { // This is an approximate layout for a (US/ASCII) Sun Type6 // keyboard. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes. width= 515; height= 170; shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } }; shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } }; shape "RTRN" { { [ 42,18] }, { [2,1], [40,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } }; shape "RTSH" { { [ 51,18] }, { [2,1], [49,17] } }; shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [136,18] }, { [2,1], [134,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "RMTA" { { [ 28,18] }, { [2,1], [26,17] } }; shape "LMTA" { { [ 28,18] }, { [2,1], [26,17] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 14; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 24; row { top= 1; keys { { , "HELP" }, { , 9 }, { , 19 }, , , , { , 11 }, , , , { , 11 }, , , , { , 9 }, , , { , 9 }, , , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { , , { , 9}, , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { , , { , 9, shape="TABK" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { , , { , 9, shape="CAPS" }, , , , , , , , , , , , { , "RTRN" } }; }; row { top= 58; keys { , , { , 9 , shape="LFSH" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; keys { , , { , 9, shape="LCTL" }, , { , "LMTA" }, { , "SPCE" }, { , "RMTA" }, , }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 352; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 420; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } }; shape "LED" { cornerRadius= 2, { [ 3, 6 ] } }; solid "LedPanel" { shape= "LEDS"; top= 1; left= 218; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 10; indicator.shape= "LED"; indicator "CapsLock" { left= 243; }; indicator "Compose" { left= 281; }; indicator "ScrollLock" { left= 262; }; indicator "NumLock" { left= 224; }; text.top= 1; text.color= "black"; text "CapsLockLabel" { left= 243; text="Caps\nLock"; }; text "ComposeLabel" { left= 281; text="Compose"; }; text "ScrollLockLabel" { left= 262; text="Scroll\nLock"; }; text "NumLockLabel" { left= 224; text="Num\nLock"; }; }; xkb_geometry "t6tuv" { // This is an approximate layout for a (US/ASCII) Sun Type6 // keyboard. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes. width= 515; height= 170; shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } }; shape "RTRN" { approx = { [ 0, 0], [28,37] }, { [ 0, 0], [28, 0], [28,37], [ 5,37], [ 5,18], [ 0,18] }, { [ 1, 1], [26, 1], [26,36], [ 7,36], [ 7,17], [ 1,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; shape "LFSH" { { [ 24,18] }, { [2,1], [22,17] } }; shape "RTSH" { { [ 51,18] }, { [2,1], [49,17] } }; shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [137,18] }, { [2,1], [135,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "RMTA" { { [ 28,18] }, { [2,1], [26,17] } }; shape "LMTA" { { [ 28,18] }, { [2,1], [26,17] } }; shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 14; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 24; row { top= 1; keys { { , "HELP" }, { , 9 }, { , 19 }, , , , { , 11 }, , , , { , 11 }, , , , { , 9 }, , , { , 9 }, , , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { , , { , 9}, , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { , , { , 9, shape="TABK" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top= 39; keys { , , { , 9, shape="CAPS" }, , , , , , , , , , , , }; }; row { top= 58; keys { , , { , 9 , shape="LFSH" }, , , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; keys { , , { , 9, shape="LCTL" }, , { , "LMTA" }, { , "SPCE" }, { , "RMTA" }, , }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 352; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 420; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } }; shape "LED" { cornerRadius= 2, { [ 3, 6 ] } }; solid "LedPanel" { shape= "LEDS"; top= 1; left= 218; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 10; indicator.shape= "LED"; indicator "CapsLock" { left= 243; }; indicator "Compose" { left= 281; }; indicator "ScrollLock" { left= 262; }; indicator "NumLock" { left= 224; }; text.top= 1; text.color= "black"; text "CapsLockLabel" { left= 243; text="Caps\nLock"; }; text "ComposeLabel" { left= 281; text="Compose"; }; text "ScrollLockLabel" { left= 262; text="Scroll\nLock"; }; text "NumLockLabel" { left= 224; text="Num\nLock"; }; }; xkb_geometry "t6jp" { // This is an approximate layout for a (US/ASCII) Sun Type6 // keyboard. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes. width= 515; height= 170; shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } }; shape "KANJ" { { [ 27,18] }, { [2,1], [25,17] } }; shape "EXEC" { { [ 27,18] }, { [2,1], [25,17] } }; shape "RTRN" { approx = { [ 0, 0], [28,37] }, { [ 0, 0], [28, 0], [28,37], [ 5,37], [ 5,18], [ 0,18] }, { [ 1, 1], [26, 1], [26,36], [ 7,36], [ 7,17], [ 1,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } }; shape "RTSH" { { [ 33,18] }, { [2,1], [31,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [ 96,18] }, { [2,1], [94,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 14; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 24; row { top= 1; keys { { , "HELP" }, { , 9 }, { , 19 }, , , , { , 11 }, , , , { , 11 }, , , , { , 9 }, , , { , 9 }, , , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { , , { , 9}, , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { , , { , 9, shape="TABK" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top= 39; keys { , , { , 9, shape="CAPS" }, , , , , , , , , , , , }; }; row { top= 58; keys { , , { , 9 , shape="LFSH" }, , , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; keys { , , { , 9 }, , , { , "EXEC" }, { , "SPCE" }, { , "KANJ" }, , , , }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 352; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 420; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } }; shape "LED" { cornerRadius= 2, { [ 3, 6 ] } }; solid "LedPanel" { shape= "LEDS"; top= 1; left= 218; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 10; indicator.shape= "LED"; indicator "CapsLock" { left= 243; }; indicator "Compose" { left= 281; }; indicator "ScrollLock" { left= 262; }; indicator "NumLock" { left= 224; }; text.top= 1; text.color= "black"; text "CapsLockLabel" { left= 243; text="Caps\nLock"; }; text "ComposeLabel" { left= 281; text="Compose"; }; text "ScrollLockLabel" { left= 262; text="Scroll\nLock"; }; text "NumLockLabel" { left= 224; text="Num\nLock"; }; }; xkb_geometry "t6unix" { // This is an approximate layout for a (US/ASCII) Sun Type6 // keyboard. I just took a similar layout (101 key PC keyboard) // and adjusted the sizes. width= 515; height= 170; shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [ 28,18] }, { [2,1], [26,17] } }; shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } }; shape "RTRN" { { [ 42,18] }, { [2,1], [40,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } }; shape "RTSH" { { [ 51,18] }, { [2,1], [49,17] } }; shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } }; shape "SPCE" { { [136,18] }, { [2,1], [134,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } }; shape "RMTA" { { [ 28,18] }, { [2,1], [26,17] } }; shape "LMTA" { { [ 28,18] }, { [2,1], [26,17] } }; shape "LOGO" { { [ 16,16] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 14; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 24; row { top= 1; keys { { , "HELP" }, { , 9 }, { , 19 }, , , , { , 11 }, , , , { , 11 }, , , , { , 9 }, , , { , 9 }, , , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { , , { , 9}, , , , , , , , , , , , , , }; }; row { top= 20; keys { , , { , 9, shape="TABK" }, , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 39; keys { , , { , 9, shape="CAPS" }, , , , , , , , , , , , { , "RTRN" } }; }; row { top= 58; keys { , , { , 9 , shape="LFSH" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; keys { , , { , 9, shape="LCTL" }, , {, "LMTA"}, { , "SPCE" }, {, "RMTA"}, , }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 352; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 420; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color= "grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } }; shape "LED" { cornerRadius= 2, { [ 3, 6 ] } }; solid "LedPanel" { shape= "LEDS"; top= 1; left= 218; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 10; indicator.shape= "LED"; indicator "CapsLock" { left= 243; }; indicator "Compose" { left= 281; }; indicator "ScrollLock" { left= 262; }; indicator "NumLock" { left= 224; }; text.top= 1; text.color= "black"; text "CapsLockLabel" { left= 243; text="Caps\nLock"; }; text "ComposeLabel" { left= 281; text="Compose"; }; text "ScrollLockLabel" { left= 262; text="Scroll\nLock"; }; text "NumLockLabel" { left= 224; text="Num\nLock"; }; }; default xkb_geometry "type6" { include "sun(t6)" description= "Sun Type6 keyboard (US, Korea, Taiwan)"; }; xkb_geometry "type6jp" { include "sun(t6jp)" description= "Sun Type6 Japanese keyboard"; }; xkb_geometry "type6tuv" { include "sun(t6tuv)" description= "Sun Type6 TUV keyboard"; }; xkb_geometry "type6unix" { include "sun(t6unix)" description= "Sun Type6 Unix keyboard"; }; xkb_geometry "type7" { include "sun(t6)" description= "Sun Type7 keyboard (US, Korea, Taiwan)"; }; xkb_geometry "type7jp" { include "sun(t6jp)" description= "Sun Type7 Japanese keyboard"; }; xkb_geometry "type7tuv" { include "sun(t6tuv)" description= "Sun Type7 TUV keyboard"; }; xkb_geometry "type7unix" { include "sun(t6unix)" description= "Sun Type7 Unix keyboard"; }; PK(f[Igeometry/everexnu[default xkb_geometry "STEPnote" { description= "Everex STEPnote"; width= 281; height= 150; shape.cornerRadius= 1; shape "NORM" { { [17,17] }, { [ 2, 1], [ 15, 15 ] } }; shape "NARR" { { [ 15, 17 ] }, { [ 2, 1 ], [ 13, 15 ] } }; shape "FKEY" { { [ 15.1, 15.5 ] }, { [ 1, 1 ], [ 14.1, 14.5 ] } }; shape "ESC" { { [ 16.4, 15.5 ] }, { [ 1, 1 ], [ 14.1, 14.5 ] } }; shape "WIDE" { // backspace, tab and Fn { [ 25, 17 ] }, { [ 2, 1 ], [ 23, 15 ] } }; shape "RTRN" { { [ 27.5, 17 ] }, { [ 2, 1 ], [ 25.5, 15 ] } }; shape "CAPS" { { [ 30, 17 ] }, { [ 2, 1 ], [ 28, 15 ] } }; shape "LFSH" { { [ 38.5, 17 ] }, { [ 2, 1 ], [ 36.5, 15 ] } }; shape "RTSH" { { [ 21, 17 ] }, { [ 2, 1 ], [ 19, 15 ] } }; shape "SPCE" { { [ 88.8, 17 ] }, { [ 2, 1 ], [ 86.8, 15 ] } }; shape "WELL" { { [ 269, 105 ] } }; shape "LED" { cornerRadius= 1.5, { [ 3, 10 ] } }; section.left= 6; row.left= 1; key.shape= "NORM"; key.gap= 0.5; key.color= "grey20"; labelColor= "white"; baseColor= "grey20"; indicator.top= 20; indicator.shape= "LED"; indicator.onColor= "green"; indicator.offColor= "green30"; indicator "Power" { left= 40; }; indicator "Battery" { left=101; }; indicator "Suspend" { left=112; }; indicator "HardDrive" { left=123; }; indicator "Floppy" { left=134; }; indicator "KeyPad" { left=145; }; indicator "Num Lock" { left=156; }; indicator "Caps Lock" { left=167; }; indicator "Scroll Lock" { left=178; }; solid "KeyWell" { top= 35; left= 6; shape= "WELL"; color= "grey10"; }; section "Whole" { top= 35; row { top= 0.5; key.color= "grey30"; key.shape= "FKEY"; keys { { , "ESC" }, , , , , , , , , , , , , , , , }; }; row { top= 16.5; keys { { , "NARR" }, , , , , , , , , , , , , { , shape="WIDE", color="grey30" }, { , shape="NARR", color="grey30" } }; }; row { top= 34; keys { { , shape="WIDE", color="grey30" }, , , , , , , , , , , , , { , "NARR" }, { , shape="NARR", color="grey30" } }; }; row { top= 51.5; keys { { , shape="CAPS", color="grey30" }, , , , , , , , , , , , { , shape="RTRN", color="grey30" }, { , shape="NARR", color="grey30" } }; }; row { top= 69; keys { { , shape="LFSH", color="grey30" }, , , , , , , , , , , { , shape="RTSH", color="grey30" }, { , shape="NARR", color="grey30" }, { , shape="NARR", color="grey30" } }; }; row { top= 86.5; key.color= "grey30"; keys { { , "WIDE" }, , , { , shape="SPCE", 18, color="grey20" }, , , , { , "NARR" }, { , "NARR" }, { , "NARR" } }; }; solid "FakeKey" { top= 86.5; left= 62.1; shape= "NORM"; color= "grey20"; }; overlay "KPAD" { =, =, =, =, =, =, =, =, =, =, =, =, =, =, = }; }; // End of "Whole" section alias = ; alias = ; }; PK(f[8988 geometry/necnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_geometry "pc98" { description= "Generic PC98"; width= 405; height= 172; shape.cornerRadius= 1; shape "NORM" { { [ 17,18] }, { [2,1], [ 15,17] } }; shape "RTRN" { { [ 20,37] }, { [2,1], [ 18,35] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; shape "RTSH" { { [ 31,18] }, { [2,1], [ 29,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "SPCE" { { [115,18] }, { [2,1], [113,17] } }; shape "FUNC" { { [ 21,18] }, { [2,1], [ 19,17] } }; shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; shape "TABK" { { [ 30,18] }, { [2,1], [ 28,17] } }; shape "ARRW" { { [ 35,18] }, { [2,1], [ 33,17] } }; section.left= 8; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 29; row { top= 1; key.shape="FUNC"; keys { { , "NORM" }, { , "NORM", 5 }, { , 6 }, , , , , { , 6 }, , , , , { , 6 }, , , , }; }; }; // End of "Function" section section "Alpha" { top= 54; row { top= 1; keys { { , shape="BKSP"}, , , , , , , , , , , , , , { , "BKSP" } }; }; row { top= 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "RTRN", 6 } }; }; row { top= 39; keys { , , , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH" }, , , , , , , , , , , , { , "RTSH" } }; }; row { top= 77; keys { { , 35 } , , { , "FUNC" }, { , "SPCE" }, { , "FUNC" } }; }; }; // End of "Alpha" section section "Editing" { top= 54; left= 281; row { top= 1; keys { , }; }; row { top= 20; keys { , }; }; row { top= 39; keys { { , "ARRW" } }; }; row { top= 58; keys { , }; }; row { top= 77; keys { { , "ARRW" } }; }; }; // End of "Editing" section section "Keypad" { top= 54; left= 320; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , }; }; row { top= 39; keys { , , , }; }; row { top= 58; keys { , , , }; }; row { top= 77; keys { , , , }; }; }; // End of "Keypad" section }; // End of "pc98" geometry PK(f[\?OO geometry/dellnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_geometry "dell101" { description= "Dell 101"; width= 470; height= 210; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "CAPS" { { [ 33,18] }, { [ 28,18] }, { [2,1], [ 26,16] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; shape "SPCE" { { [133,18] }, { [2,1], [131,16] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 52; left= 377; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 67; indicator.shape= "LED"; indicator "Num Lock" { left= 382; }; indicator "Caps Lock" { left= 407; }; indicator "Scroll Lock" { left= 433; }; text.top= 55; text.color= "black"; text "NumLockLabel" { left= 378; text="Num\nLock"; }; text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 52; row { top= 1; keys { { , color="grey20" }, { , 20 }, , , , { , 11 }, , , , { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 91; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 21 }, { , "SPCE", color="white" }, , { , 21 } }; }; }; // End of "Alpha" section section "Editing" { top= 91; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 91; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "default" geometry xkb_geometry "dell65" { }; xkb_geometry "dell65x" { description= "Dell 101"; width= 470; height= 210; color="grey10"; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "CAPS" { { [ 33,18] }, { [ 28,18] }, { [2,1], [ 26,16] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; shape "SPCE" { { [133,18] }, { [2,1], [131,16] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 52; left= 377; color= "grey10"; }; shape "BACKGROUND" { cornerRadius=5, { [ 470, 210 ] } }; solid "Background" { shape= "BACKGROUND"; top= 0; left= 0; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 67; indicator.shape= "LED"; indicator "Num Lock" { left= 382; }; indicator "Caps Lock" { left= 407; }; indicator "Scroll Lock" { left= 433; }; text.top= 55; text.color= "black"; text "NumLockLabel" { left= 378; text="Num\nLock"; }; text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 52; row { top= 1; keys { { , color="grey20" }, { , 20 }, , , , { , 11 }, , , , { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 91; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 21 }, { , "SPCE", color="white" }, , { , 21 } }; }; }; // End of "Alpha" section section "Editing" { top= 91; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 91; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // // Dell Precision M65 laptop // xkb_geometry "dellm65" { description= "Dell Precision M65 laptop"; width= 308; height= 152; baseColor = "grey20"; labelColor = "white"; shape "BACKGROUND" { cornerRadius = 3, { [ 308, 152 ] } }; shape "BACKGROUND2" { cornerRadius = 2, { [ 7, 22 ], [ 171, 22 ], [ 171, 10 ], [ 301, 10 ], [ 301, 148 ], [ 244, 148 ], [ 244, 132 ], [ 7, 132] } }; solid "Background" { shape = "BACKGROUND"; top = 0; left = 0; color = "grey20"; }; solid "Background2" { shape = "BACKGROUND2"; top = 0; left = 0; color = "black"; }; shape "LEDS" { cornerRadius = 4, { [ 26, 8 ] } }; shape "LED" { cornerRadius = 0, { [ 4, 4 ] } }; solid "LedPanel" { shape = "LEDS"; top = 8; left = 69; color = "grey20"; }; indicator.onColor= "green"; indicator.offColor= "gray20"; indicator.top= 10; indicator.shape= "LED"; indicator "Num Lock" { left= 72; }; indicator "Caps Lock" { left= 80; }; indicator "Scroll Lock" { left= 88; }; shape "MEDIA" { cornerRadius = 5, { [ 2, 2], [ 12, 12 ] } }; shape "POWER" { cornerRadius = 7, { [ 14, 14 ] } }; section "Media" { top = 5; left = 102; width = 60; height = 14; key.color="grey30"; key.shape = "MEDIA"; row { top = 0; keys { , , , { , shape = "POWER", gap = 3 } }; }; }; shape "FKEY" { cornerRadius = 1, { [ 18, 12 ] }, { [ 1, 1 ], [ 17, 10 ] } }; section "Function" { top = 12; left = 8; width = 290; height = 24; key.color = "grey80"; key.shape = "FKEY"; key.gap = 0; row { top = 0; keys { { , 165 }, , , , { , 1 }, , }; }; row { top = 12; keys { , { , 1 }, , , , { , 1 }, , , , { , 1 }, , , , { , 1 }, , }; }; }; shape "AKEY" { cornerRadius = 1, { [ 19, 19 ] }, { [ 2, 1 ], [ 17, 15 ] } }; shape "BKSP" { cornerRadius = 1, { [ 44, 19 ] }, { [ 2, 1 ], [ 42, 15 ] } }; shape "TABK" { cornerRadius = 1, { [ 31, 19 ] }, { [ 2, 1 ], [ 29, 15 ] } }; shape "BKSL" { cornerRadius = 1, { [ 31, 19 ] }, { [ 2, 1 ], [ 29, 15 ] } }; shape "CAPS" { cornerRadius = 1, { [ 34, 19 ] }, { [ 2, 1 ], [ 32, 15 ] } }; shape "RTRN" { cornerRadius = 1, { [ 47, 19 ] }, { [ 2, 1 ], [ 45, 15 ] } }; shape "LFSH" { cornerRadius = 1, { [ 44, 19 ] }, { [ 2, 1 ], [ 42, 15 ] } }; shape "RTSH" { cornerRadius = 1, { [ 56, 19 ] }, { [ 2, 1 ], [ 54, 15 ] } }; shape "LCTL" { cornerRadius = 1, { [ 31, 19 ] }, { [ 2, 1 ], [ 29, 15 ] } }; shape "LALT" { cornerRadius = 1, { [ 25, 19 ] }, { [ 2, 1 ], [ 23, 15 ] } }; shape "RCTL" { cornerRadius = 1, { [ 25, 19 ] }, { [ 2, 1 ], [ 23, 15 ] } }; shape "SPCE" { cornerRadius = 1, { [ 96, 19 ] }, { [ 2, 1 ], [ 94, 15 ] } }; section "Alpha" { top = 36; left = 8; width = 290; height = 21; key.color = "grey80"; key.shape = "AKEY"; key.gap = 0; row { top = 1; keys { , , , , , , , , , , , , , { , 1, "BKSP" } }; }; row { top = 20; keys { { , "TABK" }, { , 1 }, , , , , , , , , , , , { , 1, "BKSL" } }; }; row { top = 39; keys { { , "CAPS" }, { , 1 }, , , , , , , , , , , { , 1, "RTRN" } }; }; row { top = 58; keys { { , "LFSH" }, { , 1 }, , , , , , , , , , { , 1, "RTSH" } }; }; row { top = 77; keys { { , "LCTL" }, { , 20 }, { , "LALT" }, { , "SPCE" }, , { , "RCTL" } }; }; }; shape "SKEY" { cornerRadius = 1, { [ 18, 17 ] }, { [ 2, 1 ], [ 16, 13 ] } }; section "Arrows" { top = 113; left = 243; width = 54; height = 36; key.color = "grey80"; key.shape = "SKEY"; row { top = 0; left = 20; keys { }; }; row { top = 17; left = 2; keys { , , }; }; }; shape "STIK" { cornerRadius = 4, { [ 7, 7 ] } }; solid "STIK" { priority = 255; color = "blue"; shape = "STIK"; top = 90; left = 135; }; }; xkb_geometry "latitude" { description="Dell Latitude"; width=304.2; height=219.1; baseColor="grey"; labelColor="white"; alias =; alias =; shape "EXTERNAL" {corner=3, {[0,0], [302,0], [302,154], [174,154], [174,198], [166,216], [107,216], [100,198], [100,154], [0,154]}}; solid "external" {shape="EXTERNAL"; top=1.1; left=1.1; color="grey10"; priority=10;}; shape "INTERNAL" {corner=3, {[0,13], [162.2,13], [162.2,0], [286,0], [286,138], [230,138], [230,124], [163,124], [163,138], [96,138], [96,124], [0,124]}}; solid "internal" {shape="INTERNAL"; top=7; left=8.5; color="black"; priority=20;}; shape "TOUCHPAD" {corner=2, {[68,40]}}; solid "touchpad" {shape="TOUCHPAD"; top=153; left=104; color="grey20"; priority=20;}; shape "TOUCHPADBUTTONS" {corner=1, {[0,0], [33.5,0], [33.5,16], [6,16]}, {[34.5,0], [68,0], [61, 16], [34.5,16]}}; solid "touchleft" {shape="TOUCHPADBUTTONS"; top=198; left=104; color="grey20"; priority=20;}; shape "NIPPLE" {corner=3, {[7.5,7.5]}}; solid "nipple" {shape="NIPPLE"; top=87; left=134; color="blue"; priority=200;}; shape "NIPPLEBUTTONS" {corner=2, {[32.5,13]}, {[33.5,0],[66,13]}}; solid "nipplebuttons" {shape="NIPPLEBUTTONS"; top=131; left=105; color="grey20"; priority=20;}; shape "FILLINGS" {corner=1.5, {[19,15]}, {[38,0],[55,15]}}; solid "fillings" {shape="FILLINGS"; top=112; left=238; color="grey"; priority=200;}; shape "FUNC" {corner=1.5, {[16.3,12]}, {[2,0.5], [14,10]}}; shape "ESC" {corner=1.5, {[18,12]}, {[2,0.5], [16,10]}}; shape "BKSP" {corner=1.5, {[36.5,18]}, {[3,0.5], [33.5,14]}}; section "Function" {key.color="grey"; priority=100; top=9; left=10; width=290; height=28; row {top=0; left=161.1; keys {{,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",2.5}, {,"FUNC",1.1}, {,"FUNC",1.1}};}; row {top=12.5; left=0; keys {{,"ESC",0}, {,"FUNC",2.7}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",2.5}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",2.5}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",1.1}, {,"FUNC",2.5}, {, "FUNC",1.1}, {,"FUNC",1.1}};}; }; // End of "Function" section shape "NORM" {corner=1.5, {[18,18]}, {[3,0.5], [14.8,14]}}; shape "TABK" {corner=1.5, {[28,18]}, {[3,0.5], [25,14]}}; shape "CAPS" {corner=1.5, {[32,18]}, {[3,0.5], [22,14]}}; shape "LFSH" {corner=1.5, {[23,18]}, {[3,0.5], [20,14]}}; shape "RTSH" {corner=1.5, {[50,18]}, {[3,1], [47,14]}}; shape "RTRN" {corner=1.5, {[0,0],[26.5,0],[26.5,37],[4,37],[4,18],[0,18]}, {[3,0.5], [23.5,0.5], [23.5,33], [7,33], [7,14], [3,14]}}; shape "SPCE" {corner=1.5,{[95,18]}, {[3,0.5],[92,14]}}; shape "LCTL" {corner=1.5, {[27,18]}, {[3,0.5],[24,14]}}; shape "LALT" {corner=1.5, {[22,18]}, {[3,0.5],[19,14]}}; shape "WIN" {corner=1.5, {[18,18]}, {[3,0.5],[15,14]}}; section "Alpha" {key.color="grey"; priority=100; top=36; left=10; width=290; height=18; row {top=0; left=0; keys {{, "NORM", 0}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "BKSP", 1}};}; row {top=19; left=0; keys {{, "TABK", 0}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "RTRN", 1}};}; row {top=38; left=0; keys {{, "CAPS", 0}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}};}; // TODO There's a weird <> key here, check it out: row {top=57; left=0; keys {{, "LFSH", 0}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "NORM", 1}, {, "RTSH", 1}};}; row {top=76; left=0; keys {{, "LCTL", 0}, {, "WIN", 1},{, "WIN", 1}, {, "LALT", 1}, {, "SPCE", 1}, {, "WIN", 1},{, "LALT", 1}};}; }; // End of "Alpha" section shape "ARROW" {corner=1.5, {[17,15]}, {[2,0.5],[15,13]}}; section "Arrows" {key.color="grey"; priority=110; top=112; left=240; width=43; height=31; row {top=0; left=18; keys {{, "ARROW", 0}};}; row {top=16; left=0; keys {{, "ARROW", 0}, {, "ARROW", 1}, {, "ARROW", 1}};}; }; // End of "Arrows" section shape "LEDS" {corner=3, {[25,7]}}; solid "leds" {shape="LEDS"; top=5.7; left=69; color="grey"; priority=10;}; shape "LED" {corner=0, {[0,1.5], [3,4.5]}, {[0.5,1.5], [1,0] , [2,0], [2.5,1.5]}}; indicator.onColor="green"; indicator.offColor="grey"; indicator.top=7; indicator.shape="LED"; indicator.priority=200; indicator "Num Lock" {left=72;}; indicator "Caps Lock" {left=80;}; indicator "Scroll Lock" {left=88;}; text "LATITUDE" {left=10; top=7; text="L A T I T U D E | D620";}; shape "ROUND" {corner=5, {[10,10]}}; shape "POWER" {corner=7, {[15,15]}}; section "Topbuttons" {key.color="grey"; priority=110; top=2; left=100; row {top=2; left=0; keys {{, "ROUND", 0}, {, "ROUND", 3}, {, "ROUND", 3}};}; row {top=0; left=45; keys {{, "POWER", 0}};}; }; // End of "TopButtons" section }; PK(f[EV|&& geometry/tecknu[default xkb_geometry "teck227" { description="Truly Ergonomic Computer Keyboard Model 227 with wide Alt. (Standard US layout)"; width=296; height=155; shape.cornerRadius=1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "DBL" { { [36, 18] }, { [2,1], [ 34,16] } }; shape "RSUP" { { [ 2, 0], [ 12, 1] , [ 22, 0], [24, 18], [ 12, 19 ], [0, 18] }, { [ 4, 1], [ 12, 2] , [ 20, 1], [22, 16], [ 12, 17 ], [2, 16] } }; shape "DEL" { { [ 2, 0], [ 14, 1] , [ 26, 0], [28, 18], [ 14, 19 ], [0, 18] }, { [ 4, 1], [ 14, 2] , [ 24, 1], [26, 16], [ 14, 17 ], [2, 16] } }; shape "AE11" { { [ 2, 0], [ 16, 1] , [ 30, 0], [32, 18], [ 16, 19 ], [0, 18] }, { [ 4, 1], [ 16, 2] , [ 28, 1], [30, 16], [ 16, 17 ], [2, 16] } }; shape "BKSP" { { [ 2, 0], [ 18, 1] , [ 34, 0], [36, 18], [ 18, 19 ], [0, 18] }, { [ 4, 1], [ 18, 2] , [ 32, 1], [34, 16], [ 18, 17 ], [2, 16] } }; shape "RTRN" { { [ 2, 0], [ 20, 1] , [ 38, 0], [40, 18], [ 20, 19 ], [0, 18] }, { [ 4, 1], [ 20, 2] , [ 36, 1], [38, 16], [ 20, 17 ], [2, 16] } }; section "Function" { left=17; top=3; row { keys { , { , 3 }, , , , { , 3 }, , , , { , 3 }, , , , { , 3 } }; }; overlay "FN" { =, =, =, =, =, =, =, =, =, =, =, =, =, = }; }; section "Special Keys" { top=22; left=122; row { keys { , , }; }; overlay "MISC" { =, = }; }; section "LeftNumbers" { top=32; left=12; angle=6; row { keys { , , , , , , }; }; }; section "CenterNumbers" { top=45; left=136; row { keys { { , "RSUP" } }; }; }; section "RightNumbers" { top=45; left=159; angle=-6; row { keys { , , , , , , }; }; overlay "KPAD" { =, =, = }; }; section "LeftAlphaQWER" { top=51; left=10; angle=6; row { keys { , , , , , , }; }; }; section "CenterAlphaQWER" { top=64; left=134; row { keys { { , "DEL" } }; }; }; section "RightAlphaQWER" { top=64; left=161; angle=-6; row { keys { , , , , , , }; }; overlay "KPAD" { =, =, =, =, = }; }; section "LeftAlphaASDF" { top=52; left=10; angle=6; row { top=18; keys { { , "DBL" }, , , , , }; }; }; section "CenterAlphaASDF" { top=83; left=132; row { keys { { , "AE11" } }; }; }; section "RightAlphaASDF" { top=65; left=161; angle=-6; row { top=18; keys { , , , , , { , "DBL" } }; }; overlay "KPAD" { =, =, =, = }; }; section "LeftAlphaZXCV" { top=89; left=6; angle=6; row { keys { { , "DBL" }, , , , , }; }; }; section "CenterAlphaZXCV" { top=102; left=130; row { keys { { , "BKSP" } }; }; }; section "RightAlphaZXCV" { top=102; left=165; angle=-6; row { keys { , , , , , { , "DBL" } }; }; overlay "KPAD" { =, =, = }; }; section "LeftSpecial" { top=108; left=4; angle=6; row { keys { { , "DBL" }, { , "DBL", 54 } }; }; }; section "CenterSpecial" { top=121; left=128; row { keys { { , "RTRN" } }; }; }; section "RightSpecial" { top=121; left=167; angle=-6; row { keys { { , "DBL" }, { , "DBL", 54 } }; }; }; section "pgup, pgdown, home and end" { top=112; left=40; angle=6; row { left=18; keys { }; }; row { top=9; keys { , { , 18 } }; }; row { top=18; left=18; keys { }; }; }; section "Arrows" { top=117; left=203; angle=-6; row { left=18; keys { }; }; row { top=9; keys { , { , 18 } }; }; row { top=18; left=18; keys { }; }; }; }; xkb_geometry "teck229" { description="Truly Ergonomic Computer Keyboard Model 229 with standard sized Alt and an additional Menu and Super key. (Standard US layout)"; width=296; height=155; shape.cornerRadius=1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "DBL" { { [36, 18] }, { [2,1], [ 34,16] } }; shape "RSUP" { { [ 2, 0], [ 12, 1] , [ 22, 0], [24, 18], [ 12, 19 ], [0, 18] }, { [ 4, 1], [ 12, 2] , [ 20, 1], [22, 16], [ 12, 17 ], [2, 16] } }; shape "DEL" { { [ 2, 0], [ 14, 1] , [ 26, 0], [28, 18], [ 14, 19 ], [0, 18] }, { [ 4, 1], [ 14, 2] , [ 24, 1], [26, 16], [ 14, 17 ], [2, 16] } }; shape "AE11" { { [ 2, 0], [ 16, 1] , [ 30, 0], [32, 18], [ 16, 19 ], [0, 18] }, { [ 4, 1], [ 16, 2] , [ 28, 1], [30, 16], [ 16, 17 ], [2, 16] } }; shape "BKSP" { { [ 2, 0], [ 18, 1] , [ 34, 0], [36, 18], [ 18, 19 ], [0, 18] }, { [ 4, 1], [ 18, 2] , [ 32, 1], [34, 16], [ 18, 17 ], [2, 16] } }; shape "RTRN" { { [ 2, 0], [ 20, 1] , [ 38, 0], [40, 18], [ 20, 19 ], [0, 18] }, { [ 4, 1], [ 20, 2] , [ 36, 1], [38, 16], [ 20, 17 ], [2, 16] } }; section "Function" { left=17; top=3; row { keys { , { , 3 }, , , , { , 3 }, , , , { , 3 }, , , , { , 3 } }; }; overlay "FN" { =, =, =, =, =, =, =, =, =, =, =, =, =, = }; }; section "Special Keys" { top=22; left=122; row { keys { , , }; }; overlay "MISC" { =, = }; }; section "LeftNumbers" { top=32; left=12; angle=6; row { keys { , , , , , , }; }; }; section "CenterNumbers" { top=45; left=136; row { keys { { , "RSUP" } }; }; }; section "RightNumbers" { top=45; left=159; angle=-6; row { keys { , , , , , , }; }; overlay "KPAD" { =, =, = }; }; section "LeftAlphaQWER" { top=51; left=10; angle=6; row { keys { , , , , , , }; }; }; section "CenterAlphaQWER" { top=64; left=134; row { keys { { , "DEL" } }; }; }; section "RightAlphaQWER" { top=64; left=161; angle=-6; row { keys { , , , , , , }; }; overlay "KPAD" { =, =, =, =, = }; }; section "LeftAlphaASDF" { top=52; left=10; angle=6; row { top=18; keys { { , "DBL" }, , , , , }; }; }; section "CenterAlphaASDF" { top=83; left=132; row { keys { { , "AE11" } }; }; }; section "RightAlphaASDF" { top=65; left=161; angle=-6; row { top=18; keys { , , , , , { , "DBL" } }; }; overlay "KPAD" { =, =, =, = }; }; section "LeftAlphaZXCV" { top=89; left=6; angle=6; row { keys { { , "DBL" }, , , , , }; }; }; section "CenterAlphaZXCV" { top=102; left=130; row { keys { { , "BKSP" } }; }; }; section "RightAlphaZXCV" { top=102; left=165; angle=-6; row { keys { , , , , , { , "DBL" } }; }; overlay "KPAD" { =, =, = }; }; section "LeftSpecial" { top=108; left=4; angle=6; row { keys { , , { , "DBL", 54 } }; }; }; section "CenterSpecial" { top=121; left=128; row { keys { { , "RTRN" } }; }; }; section "RightSpecial" { top=121; left=167; angle=-6; row { keys { { , "DBL" }, { , 54 }, }; }; }; section "pgup, pgdown, home and end" { top=112; left=40; angle=6; row { left=18; keys { }; }; row { top=9; keys { , { , 18 } }; }; row { top=18; left=18; keys { }; }; }; section "Arrows" { top=117; left=203; angle=-6; row { left=18; keys { }; }; row { top=9; keys { , { , 18 } }; }; row { top=18; left=18; keys { }; }; }; }; PK(f[ Bgeometry/atarittnu[default xkb_geometry "us" { description= "Atari TT (us)"; width= 480; height= 173; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "RTRN" { approx = { [0,19], [32,37] }, { [ 14, 0], [32, 0], [32,37], [0,37], [0,19], [14,19] }, { [ 16, 1], [30, 1], [30,36], [2,36], [2,20], [16,20] } }; shape "CTRL" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "SPCE" { { [172,18] }, { [2,1], [170,17] } }; shape "FCTS" { { [ 28,10] }, { [2,1], [ 26,9] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; section.left= 21; row.left= 1; key.shape = "NORM"; key.gap= 1; section "Function" { top= 36; key.shape= "FCTS"; row { top= 1; keys { , , , , , , , , , }; }; }; // End of "Function" section section "Alpha" { top= 63; row { top= 1; keys { , , , , , , , , , , , , , , { , "BKSP" } }; }; row { top= 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "RTRN", -13 }, }; }; row { top= 39; keys { { , "CTRL" }, , , , , , , , , , , , { , 34 } }; }; row { top= 58; keys { { , "LFSH" }, , , , , , , , , , , { , "RTSH" } }; }; row { top= 77; key.shape= "MODK"; keys { { , 24 }, { , "SPCE" }, }; }; }; // End of "Alpha" section section "Editing" { top= 63; left= 319; row { top= 1; key.shape = "BKSP"; keys { , }; }; row { top= 20; keys { , , }; }; row { top= 39; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 63; left= 381; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , }; }; row { top= 39; keys { , , , }; }; row { top= 58; keys { , , , { , "KPEN" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section }; xkb_geometry "de" { description= "Atari TT (de)"; width= 480; height= 173; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 27,18] }, { [2,1], [ 25,17] } }; shape "TABK" { { [ 27,18] }, { [2,1], [ 25,17] } }; shape "RTRN" { approx = { [0,19], [32,37] }, { [ 14, 0], [32, 0], [32,37], [0,37], [0,19], [14,19] }, { [ 16, 1], [30, 1], [30,36], [2,36], [2,20], [16,20] } }; shape "CTRL" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "LFSH" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "RTSH" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "SPCE" { { [170,18] }, { [2,1], [168,17] } }; shape "FCTS" { { [ 28,11] }, { [2,1], [ 26,10] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; section.left= 21; row.left= 1; key.shape = "NORM"; key.gap= 1; section "Function" { top= 36; key.shape= "FCTS"; row { top= 1; keys { , , , , , , , , , }; }; }; // End of "Function" section section "Alpha" { top= 63; row { top= 1; keys { , , , , , , , , , , , , , , { , "BKSP" } }; }; row { top= 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "RTRN", -13 }, }; }; row { top= 39; keys { { , "CTRL" }, , , , , , , , , , , , { , 34 } }; }; row { top= 58; keys { { , "LFSH" }, , , , , , , , , , , , { , "RTSH" } }; }; row { top= 77; key.shape= "MODK"; keys { { , 24 }, { , "SPCE" }, }; }; }; // End of "Alpha" section section "Editing" { top= 63; left= 319; row { top= 1; key.shape = "BKSP"; keys { , }; }; row { top= 20; keys { , , }; }; row { top= 39; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 63; left= 381; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , }; }; row { top= 39; keys { , , , }; }; row { top= 58; keys { , , , { , "KPEN" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section }; PK(f[&%eegeometry/fujitsunu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_geometry "138" { // This is an approximate layout for a (US/ASCII) Fujitsu keyboard. description= "Fujitsu English keyboard"; width= 480; height= 215; shape "EDGE" { cornerRadius= 2, { [ 480, 215 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "TABK" { { [ 27,18] }, { [2,1], [ 25,17] } }; shape "RTRN" { approx = { [ 0, 0], [28,37] }, { [ 0, 0], [28, 0], [28,37], [ 5,37], [ 5,19], [ 0,19] }, { [ 1, 1], [26, 1], [26,36], [ 7,36], [ 7,18], [ 1,18] } }; shape "LFSH" { { [ 41,18] }, { [2,1], [ 39,17] } }; shape "RTSH" { { [ 33,18] }, { [2,1], [ 31,17] } }; shape "LCTL" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "SPCE" { { [151,18] }, { [2,1], [149,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; shape "EXEC" { { [ 57,18] }, { [2,1], [ 55,17] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 15; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Alpha" { top= 28; row { top= 1; keys { , { , 6 }, { , 30 }, , , , { , 6 }, , , , { , 6 }, , , , { , 68 }, , , }; }; row { top= 20; keys { , { , 6 }, { , 30 }, , , , { , 6 }, , , , { , 6 }, , , , { , 6 }, , , { , 6 }, , , }; }; row { top= 39; left= 316; keys { , , }; }; row { top= 54; keys { , { , 6 }, , , , , , , , , , , , , , , { , 68 }, , , }; }; row { top= 58; left= 316; keys { , , }; }; row { top= 73; keys { , { , 6, "TABK" }, , , , , , , , , , , , , { , "RTRN" }, { , 68 }, , , }; }; row { top= 92; keys { , { , 6, "LCTL" }, , , , , , , , , , , , , { , 49 }, { , 25 }, , , }; }; row { top= 102; left= 316; keys { , { , 19 } }; }; row { top= 111; keys { , { , 6 , "LFSH" }, , , , , , , , , , , , { , "RTSH" }, { , 25 }, { , 25 }, , , { , "KPEN" } }; }; row { top= 130; keys { , { , 6 }, , , { , "SPCE" }, , , , , { , 68, "KP0" }, }; }; row { top= 149; left= 316; keys { { , "EXEC" } }; }; }; // End of "Alpha" section }; xkb_geometry "140" { // This is an approximate layout for a Fujitsu Japanese keyboard. description= "Fujitsu Japanese keyboard"; width= 480; height= 215; shape "EDGE" { cornerRadius= 2, { [ 480, 215 ] } }; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "TABK" { { [ 27,18] }, { [2,1], [ 25,17] } }; shape "RTRN" { approx = { [ 0, 0], [28,37] }, { [ 0, 0], [28, 0], [28,37], [ 5,37], [ 5,19], [ 0,19] }, { [ 1, 1], [26, 1], [26,36], [ 7,36], [ 7,18], [ 1,18] } }; shape "LFSH" { { [ 41,18] }, { [2,1], [ 39,17] } }; shape "RTSH" { { [ 33,18] }, { [2,1], [ 31,17] } }; shape "LCTL" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "SPCE" { { [113,18] }, { [2,1], [111,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; shape "HNKN" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "EXEC" { { [ 57,18] }, { [2,1], [ 55,17] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section.left= 15; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Alpha" { top= 28; row { top= 1; keys { , { , 6 }, { , 30 }, , , , { , 6 }, , , , { , 6 }, , , , { , 68 }, , , }; }; row { top= 20; keys { , { , 6 }, { , 30 }, , , , { , 6 }, , , , { , 6 }, , , , { , 6 }, , , { , 6 }, , , }; }; row { top= 39; left= 316; keys { , , }; }; row { top= 54; keys { , { , 6 }, , , , , , , , , , , , , , , { , 68 }, , , }; }; row { top= 58; left= 316; keys { , , }; }; row { top= 73; keys { , { , 6, "TABK" }, , , , , , , , , , , , , { , "RTRN" }, { , 68 }, , , }; }; row { top= 92; keys { , { , 6, "LCTL" }, , , , , , , , , , , , , { , 49 }, { , 25 }, , , }; }; row { top= 102; left= 316; keys { , { , 19 } }; }; row { top= 111; keys { , { , 6 , "LFSH" }, , , , , , , , , , , , { , "RTSH" }, { , 25 }, { , 25 }, , , { , "KPEN" } }; }; row { top= 130; keys { , { , 6 }, , , , { , "SPCE" }, , , , , , { , 68, "KP0" }, }; }; row { top= 149; left= 134; keys { { , "HNKN" }, { , "HNKN" }, { , 132, "EXEC" } }; }; }; // End of "Alpha" section }; PK(f[Nn$?1?1geometry/microsoftnu[default xkb_geometry "natural" { // Approximate layout for a Microsoft Natural description= "Microsoft Natural"; width= 550; height= 190; shape.cornerRadius= 1; shape "LDEF" { { [ 18,18] }, { [2,1], [15,15] } }; shape "TABK" { { [ 26,18] }, { [2,1], [23,15] } }; shape "CAPS" { { [ 30,18] }, { [2,1], [23,15] } }; shape "LFSH" { { [ 41,18] }, { [2,1], [38,15] } }; shape "KEY6" { { [ 22,18] }, { [2,1], [15,15] } }; shape "KEYT" { { [ 33,18] }, { [2,1], [15,15] } }; shape "KEYG" { { [ 29,18] }, { [2,1], [15,15] } }; shape "LCTL" { approx= { [ 32, 22 ] }, { [ 0, 0], [ 32, 0 ], [ 32, 23 ], [ 0, 22 ] }, { [ 2, 1], [ 29, 1 ], [ 29, 17 ], [ 2, 15 ] } }; shape "LWIN" { approx= { [ 32, 23 ] }, { [ 0, 0], [ 32, 0 ], [ 32, 24 ], [ 0, 23 ] }, { [ 2, 1], [ 29, 1 ], [ 29, 18 ], [ 2, 17 ] } }; shape "LALT" { approx= { [ 32, 24 ] }, { [ 0, 0], [ 32, 0 ], [ 32, 25 ], [ 0, 24 ] }, { [ 2, 1], [ 29, 1 ], [ 29, 20 ], [ 2, 19 ] } }; shape "RDEF" { { [ 18,18] }, { [3,1], [15,15] } }; shape "KEY7" { { [ 28, 18 ] }, { [ 14, 1], [26, 15] } }; shape "KEYH" { { [ 24, 18 ] }, { [ 10, 1], [22, 15] } }; shape "KEYN" { { [ 32, 18 ] }, { [ 18, 1], [30, 15] } }; shape "BKSP" { { [ 41, 18 ] }, { [ 3, 1], [39, 15] } }; shape "BKSL" { { [ 24, 18 ] }, { [ 3, 1], [22, 15] } }; shape "RTRN" { { [ 37, 18 ] }, { [ 3, 1], [35, 15] } }; shape "RTSH" { { [ 43, 18 ] }, { [ 3, 1], [41, 15] } }; shape "RALT" { approx= { [ 27, 24 ] }, { [ 0, 0], [ 27, 0 ], [ 27, 24 ], [ 0, 25 ] }, { [ 3, 1], [ 25, 1 ], [ 25, 19 ], [ 3, 20 ] } }; shape "RWIN" { approx= { [ 27, 23 ] }, { [ 0, 0], [ 27, 0 ], [ 27, 23 ], [ 0, 24 ] }, { [ 3, 1], [ 25, 1 ], [ 25, 18 ], [ 3, 19 ] } }; shape "MENU" { approx= { [ 27, 21 ] }, { [ 0, 0], [ 27, 0 ], [ 27, 21 ], [ 0, 23 ] }, { [ 3, 1], [ 25, 1 ], [ 25, 16 ], [ 3, 17 ] } }; shape "RCTL" { approx= { [ 27, 19 ] }, { [ 0, 0], [ 27, 0 ], [ 27, 19 ], [ 0, 21 ] }, { [ 3, 1], [ 25, 1 ], [ 25, 14 ], [ 3, 15 ] } }; shape "KPAD" { { [ 18, 37 ] }, { [ 3, 1 ], [ 16, 34 ] } }; shape "KP0" { { [ 37, 18 ] }, { [ 3, 1 ], [ 35, 15 ] } }; shape "SPCE" { { [ 4, 3], [42,10], [44, 0], [88, 0], [90,10], [130, 3], [134,26], [99,30], [67,33], [33,30], [ 0,26] }, { [ 6, 4.5], [43,11], [45, 1], [87, 1], [89,11], [128, 4.5], [131,23], [99,28], [67,32], [33,28], [ 3,23] } }; shape "EDGE" { cornerRadius= 2, { [ 25, 0 ], [ 177, 17 ], [ 329, 0 ], [ 542, 0 ], [ 542, 150 ], [ 354, 150 ], [ 177, 185 ], [ 0, 150 ] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; row.left= 1; key.shape= "LDEF"; key.gap= 1; section "LeftFunction" { top= 10; left= 40; angle= 10; row { top= 1; keys { , { , 12 }, , , , }; }; }; // End of "LeftFunction" section section "LeftAlpha" { top= 47; left= 30; angle= 10; row { top= 1; keys { , , , , , , { , "KEY6" } }; }; row { top= 20; keys { { , "TABK" }, , , , , { , "KEYT" } }; }; row { top= 39; keys { { , "CAPS" }, , , , , { , "KEYG" } }; }; row { top= 58; keys { { , "LFSH" }, , , , , }; }; row { top= 77; keys { { , "LCTL" }, { , "LWIN" }, { , "LALT" } }; }; }; // End of "LeftAlpha" section key.shape= "RDEF"; section "RightFunction" { top= 32; left= 195; angle= -10; row { top= 1; left= 1; keys { , , , , , , }; }; }; // End of "RightFunction" section section "RightAlpha" { top= 71; left= 190; angle= -10; row.left= 1; row { top= 1; keys { { , "KEY7" }, , , , , , { , "BKSP" } }; }; row { top= 20; keys { , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "KEYH" }, , , , , , { , "RTRN" } }; }; row { top= 58; keys { { , "KEYN" }, , , , , { , "RTSH" } }; }; row { top= 77; left= 40; keys { { , "RALT" }, { , "RWIN" }, { , "MENU" }, { , "RCTL" } }; }; }; // End of "RightAlpha" section section "SpaceBar" { top= 139; left= 111; key.shape= "SPCE"; row { keys { }; }; }; section "Editing" { top= 15; left= 385; row { top= 1; keys { , , }; }; row { top= 33; keys { , , }; }; row { top= 53; keys { , , }; }; row { top= 91; left= 20; keys { }; }; row { top= 109; keys { , , }; }; }; // End of "Editing" section shape "LED" { cornerRadius= 0, { [ 3, 1 ] } }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.left= 177; indicator.shape= "LED"; indicator "Num Lock" { top= 90; }; indicator "Caps Lock" { top= 107; }; indicator "Scroll Lock" { top= 127; }; section "Keypad" { top= 47; left= 456; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // Approximate layout for a Microsoft Natural(R) Keyboard Elite // // Modified by Pavel Kurashov Mon Oct 8 22:08:20 NOVST 2007 // // * Function, editing and navigation keys are reduced in height // * Navigation keys are repositioned in two columns // * Leds are enlarged for better look // * "BKSP" is aligned with "BKSL" and "RTRN" // * Outline edges are slightly modified // xkb_geometry "elite" { // Approximate layout for a Microsoft Natural(R) Keyboard Elite description= "Microsoft Natural(r) Keyboard Elite"; width= 495; height= 190; shape.cornerRadius= 1; shape "LDEF" { { [ 18,18] }, { [2,1], [15,15] } }; shape "FKEY" { { [ 18,13] }, { [2,1], [15,10] } }; shape "TABK" { { [ 26,18] }, { [2,1], [23,15] } }; shape "CAPS" { { [ 30,18] }, { [2,1], [23,15] } }; shape "LFSH" { { [ 41,18] }, { [2,1], [38,15] } }; shape "KEY6" { { [ 22,18] }, { [2,1], [15,15] } }; shape "KEYT" { { [ 33,18] }, { [2,1], [15,15] } }; shape "KEYG" { { [ 29,18] }, { [2,1], [15,15] } }; shape "LCTL" { approx= { [ 32, 22 ] }, { [ 0, 0], [ 32, 0 ], [ 32, 23 ], [ 0, 22 ] }, { [ 2, 1], [ 29, 1 ], [ 29, 17 ], [ 2, 15 ] } }; shape "LWIN" { approx= { [ 32, 23 ] }, { [ 0, 0], [ 32, 0 ], [ 32, 24 ], [ 0, 23 ] }, { [ 2, 1], [ 29, 1 ], [ 29, 18 ], [ 2, 17 ] } }; shape "LALT" { approx= { [ 32, 24 ] }, { [ 0, 0], [ 32, 0 ], [ 32, 25 ], [ 0, 24 ] }, { [ 2, 1], [ 29, 1 ], [ 29, 20 ], [ 2, 19 ] } }; shape "RDEF" { { [ 18,18 ] }, { [ 2, 1], [15, 15] } }; shape "KEY7" { { [ 28, 18 ] }, { [ 14, 1], [26, 15] } }; shape "KEYH" { { [ 24, 18 ] }, { [ 10, 1], [22, 15] } }; shape "KEYN" { { [ 32, 18 ] }, { [ 18, 1], [30, 15] } }; shape "BKSP" { { [ 32, 18 ] }, { [ 2, 1], [30, 15] } }; shape "BKSL" { { [ 24, 18 ] }, { [ 2, 1], [22, 15] } }; shape "RTRN" { { [ 37, 18 ] }, { [ 2, 1], [35, 15] } }; shape "RTSH" { { [ 43, 18 ] }, { [ 2, 1], [41, 15] } }; shape "RALT" { approx= { [ 27, 24 ] }, { [ 0, 0], [ 27, 0 ], [ 27, 24 ], [ 0, 25 ] }, { [ 3, 1], [ 25, 1 ], [ 25, 19 ], [ 3, 20 ] } }; shape "RWIN" { approx= { [ 27, 23 ] }, { [ 0, 0], [ 27, 0 ], [ 27, 23 ], [ 0, 24 ] }, { [ 3, 1], [ 25, 1 ], [ 25, 18 ], [ 3, 19 ] } }; shape "MENU" { approx= { [ 27, 21 ] }, { [ 0, 0], [ 27, 0 ], [ 27, 21 ], [ 0, 23 ] }, { [ 3, 1], [ 25, 1 ], [ 25, 16 ], [ 3, 17 ] } }; shape "RCTL" { approx= { [ 27, 19 ] }, { [ 0, 0], [ 27, 0 ], [ 27, 19 ], [ 0, 21 ] }, { [ 3, 1], [ 25, 1 ], [ 25, 14 ], [ 3, 15 ] } }; shape "KPAD" { { [ 18, 37 ] }, { [ 3, 1 ], [ 16, 34 ] } }; shape "KP0" { { [ 37, 18 ] }, { [ 3, 1 ], [ 35, 15 ] } }; shape "SPCE" { { [ 4, 3], [42,10], [44, 0], [88, 0], [90,10], [130, 3], [134,26], [99,30], [67,33], [33,30], [ 0,26] }, { [ 6, 4.5], [43,11], [45, 1], [87, 1], [89,11], [128, 4.5], [131,23], [99,28], [67,32], [33,28], [ 3,23] } }; shape "EDGE" { cornerRadius= 3, { [ 32, 15 ], [140, 33],[ 220, 33 ], [ 329, 15 ], [ 493, 15 ], [ 493, 150 ], [ 354, 150 ], [200, 180], [ 153, 180 ], [ 7, 150 ] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; row.left= 1; key.shape= "FKEY"; key.gap= 1; section "LeftFunction" { top= 26; left= 40; angle= 10; row { top= 1; keys { , { , 12 }, , , , }; }; }; // End of "LeftFunction" section key.shape= "LDEF"; section "LeftAlpha" { top= 47; left= 30; angle= 10; row { top= 1; keys { , , , , , , { , "KEY6" } }; }; row { top= 20; keys { { , "TABK" }, , , , , { , "KEYT" } }; }; row { top= 39; keys { { , "CAPS" }, , , , , { , "KEYG" } }; }; row { top= 58; keys { { , "LFSH" }, , , , , }; }; row { top= 77; keys { { , "LCTL" }, { , "LWIN" }, { , "LALT" } }; }; }; // End of "LeftAlpha" section key.shape= "FKEY"; section "RightFunction" { top= 48; left= 195; angle= -10; row { top= 1; left= 1; keys { , , , , , , }; }; }; // End of "RightFunction" section key.shape= "RDEF"; section "RightAlpha" { top= 71; left= 190; angle= -10; row.left= 1; row { top= 1; keys { { , "KEY7" }, , , , , , { , "BKSP" } }; }; row { top= 20; keys { , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "KEYH" }, , , , , , { , "RTRN" } }; }; row { top= 58; keys { { , "KEYN" }, , , , , { , "RTSH" } }; }; row { top= 77; left= 40; keys { { , "RALT" }, { , "RWIN" }, { , "MENU" }, { , "RCTL" } }; }; }; // End of "RightAlpha" section section "SpaceBar" { top= 139; left= 111; key.shape= "SPCE"; row { keys { }; }; }; section "Editing" { key.shape="FKEY"; top= 23; left= 348; row { top= 0; keys { , , }; }; row { top= 22; left=20; keys { , }; }; row { top= 36; left=20; keys { , }; }; row { top= 50; left=20; keys { , }; }; row { top= 75; left= 29; keys { }; }; row { top= 89; left=20; keys { , }; }; row { top= 103; left=29; keys { }; }; }; // End of "Editing" section shape "LED" { cornerRadius= 1, { [ 7, 2 ] } }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.left= 177; indicator.shape= "LED"; indicator "Num Lock" { top= 90; }; indicator "Caps Lock" { top= 107; }; indicator "Scroll Lock" { top= 127; }; section "Keypad" { top= 44; left= 412; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; PK(f[a}RRgeometry/typematrixnu[// -*- indent-tabs-mode: nil -*- // Created by Frédéric Boiteux // and Gildas Cotomale // Note : the special/multimedia keys (Calc, WWW, Desktop…) have a keycode // , found in definition file /usr/share/X11/xkb/keycodes/evdev. // Fn = ; // Calc = ; // WWW = ; // CycleWindows = ; // Mail = ; // PlayPause = ; // Desktop = ; xkb_geometry "tm2020" { description = "TypeMatrix EZ-Reach 2020"; // Keyboard total size : width = 308; height = 152; // Background / foreground colours baseColor = "white"; labelColor = "black"; // Key shapes: base key = 16 mm each side shape "NORM" { cornerRadius=1, { [16, 16] }, { [1, 1], [15, 15] }}; shape "ALPL" { cornerRadius=1, { [24.25, 16] }, { [1, 1], [23, 15] }}; shape "DHAL" { cornerRadius=1, { [24.25, 32.5] }, { [1, 1], [23, 31.5] }}; shape "FUNC" { cornerRadius=1, { [16, 12] }, { [2.5, 0], [13.5, 10] }}; shape "FUNL" { cornerRadius=1, { [24.25, 12] }, { [2.5, 0], [21.5, 10] }}; shape "SPCE" { cornerRadius=1, { [57, 26] }, { [2.5, 1], [54.5, 24] }}; shape "DBLA" { cornerRadius=1, { [32.5, 16] }, { [1, 1], [31, 15] }}; shape "LED" { cornerRadius=2, { [4, 4] }}; shape "DECO" { cornerRadius=1, { [3, 18] }}; section "Function" { left = 4; top = 24; key.gap = 0.5; key.color = "grey10"; key.shape = "FUNC"; row { keys { { , "FUNL" }, , , , , }; key.color = "grey20"; keys { { , "FUNL" } }; }; row { left = 150; key.color = "red"; keys { { , "FUNL" } }; key.color = "grey10"; keys { , , , , , , { , "FUNL" } }; }; }; section "Alpha" { left = 4; top = 36.5; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 0; keys { { , "ALPL" }, , , , , , { , "DHAL" } }; }; row { top = 16.5; keys { { , "ALPL" }, , , , , }; }; row { top = 33; keys { { , "DHAL" }, , , , , , { , "DHAL" } }; }; row { top = 49.5; left = 24.5; keys { , , , , }; }; row { top = 0; left = 150; keys { { , "DHAL" }, , , }; key.color = "grey20"; keys { , , , { , "ALPL" } }; }; row { top = 16.5; left = 174.5; keys { , , }; key.color = "grey20"; keys { , , , { , "ALPL" } }; }; row { top = 33; left = 150; keys { { , "DHAL" }, , , }; key.color = "grey20"; keys { , , , { , "DHAL" } }; }; row { top = 49.5; left = 174.5; keys { , , }; key.color = "grey20"; keys { , , }; }; }; section "Control" { left = 4; top = 102.5; key.gap = 0.5; key.color = "grey10"; key.shape = "ALPL"; row { top = 0; keys { , , }; keys { { , "SPCE"} }; }; row { top = 16.5; keys { , , }; }; row { top = 0; left = 150; key.shape = "NORM"; keys { { , "SPCE"}, }; key.color = "grey20"; keys { , , , { , "DHAL" } }; }; row { top = 16.5; left = 207.5; key.shape = "NORM"; key.color = "grey20"; keys { { , "DBLA" }, , }; }; }; // Leds indicator.top = 12; indicator.onColor = "green"; indicator.offColor = "grey10"; indicator.shape = "LED"; indicator "Num Lock" { left = 252; }; indicator "Caps Lock" { left = 266; }; indicator "Misc" { left = 280; }; text.top= 5; text.color= "black"; text "NumLockLabel" { left= 252; text="1"; }; text "CapsLockLabel" { left= 266; text="A"; }; text "MiscLabel" { left= 280; text="D"; }; text "Logo" { left = 29; top = 10; text="TypeMatrix™"; }; // Other decorations: drawings solid "rainure1" { shape = "DECO"; top = 1; left = 110; color = "grey10";}; solid "rainure2" { shape = "DECO"; top = 1; left = 115; color = "grey10";}; solid "rainure3" { shape = "DECO"; top = 1; left = 120; color = "grey10";}; solid "rainure4" { shape = "DECO"; top = 1; left = 125; color = "grey10";}; solid "rainure5" { shape = "DECO"; top = 1; left = 130; color = "grey10";}; solid "rainure6" { shape = "DECO"; top = 1; left = 135; color = "grey10";}; solid "rainure7" { shape = "DECO"; top = 1; left = 140; color = "grey10";}; solid "rainure8" { shape = "DECO"; top = 1; left = 145; color = "grey10";}; solid "rainure9" { shape = "DECO"; top = 1; left = 150; color = "grey10";}; solid "rainure10" { shape = "DECO"; top = 1; left = 155; color = "grey10";}; solid "rainure11" { shape = "DECO"; top = 1; left = 160; color = "grey10";}; solid "rainure12" { shape = "DECO"; top = 1; left = 165; color = "grey10";}; solid "rainure13" { shape = "DECO"; top = 1; left = 170; color = "grey10";}; }; // geometry tm2020 xkb_geometry "tm2030_shape" { // Keyboard total size width = 320; height = 130; // Background / foreground colours baseColor = "white"; labelColor = "black"; // Key shapes: base key = 20 mm each side shape "NORM" { cornerRadius=1, { [18, 18] }, { [1.5, 1.5], [16.5, 14] } }; shape "FUNC" { cornerRadius=1, { [18, 12] }, { [2.5, 0], [15.5, 10] } }; shape "LFSH" { cornerRadius=1, { [18, 36.5] }, { [2.5, 0], [15.5, 30] } }; shape "ALT1" { cornerRadius=1, { [27.5, 18] }, { [2.5, 0], [23.5, 14] } }; shape "BKSP" { cornerRadius=1, { [18, 30.5] }, { [1.5, 1.5], [16.5, 29] } }; shape "SPCE" { cornerRadius=1, { [92, 25] }, { [1.5, 1.5], [90.5, 22] } }; shape "LED" { cornerRadius=2, { [4, 4] } }; shape "PAN1" { cornerRadius=1, { [27, 126.5] } }; shape "PAN2" { cornerRadius=1, { [92, 13] } }; // Other decorations: panels solid "panneau1" { shape = "PAN1"; left = 0; top = 0; color = "grey40"; }; solid "panneau2" { shape = "PAN2"; left = 101.5; top = 113.5; color = "grey40"; }; // Leds: they must be put after panels, otherwise the panels overwrite them indicator.left = 6; indicator.onColor = "green"; indicator.offColor = "grey10"; indicator.shape = "LED"; indicator "Num Lock" { top = 11 ; }; indicator "Caps Lock" { top = 27.5; }; indicator "Scroll Lock" { top = 44 ; }; text.left = 12; text.color = "black"; text "NumLockLabel" { top = 11; text="num"; }; text "CapsLockLabel" { top = 27.5; text="caps"; }; text "SrollLockLabel" { top = 44; text="scroll"; }; }; // geometry tm2030_shape xkb_geometry "tm2030_MiscDiod_dvk" { text "ModeLabel" { left = 12; top = 58; color = "black"; text="Dvorak"; }; }; xkb_geometry "tm2030_MiscDiod_102" { text "ModeLabel" { left = 12; top = 58; color = "black"; text="102"; }; }; xkb_geometry "tm2030_MiscDiod_106" { text "ModeLabel" { left = 12; top = 58; color = "black"; text="106"; }; }; xkb_geometry "tm2030_MiscDiod_off" { indicator "Misc" { left = 6; top = 60.5; shape = "LED"; offColor = "grey10"; onColor = "grey10"; }; }; xkb_geometry "tm2030_MiscDiod_on" { indicator "Misc" { left = 6; top = 60.5; shape = "LED"; offColor = "green"; onColor = "green"; }; }; xkb_geometry "tm2030USB_func" { section "Function" { left = 27; top = 1.5; key.gap = 0.5; key.color = "grey30"; key.shape = "FUNC"; row { keys { , , , , , }; }; row { left = 129.5; keys { , , , , , , , }; }; }; }; // geometry tm2030USB_func xkb_geometry "tm2030USB_alpha" { section "Alpha" { left = 27; top = 14; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 0; keys { , , , , , }; }; row { top = 18.5; keys { , , , , , }; }; row { top = 37; keys { { , "LFSH" }, , , , , }; }; row { top = 55.5; left = 18.5; keys { , , , , }; }; row { top = 0; left = 129.5; keys { , , , , , , , }; }; row { top = 18.5; left = 129.5; keys { , , , , , , , }; }; row { top = 37; left = 129.5; keys { , , , , , , { , "LFSH" }, }; }; row { top = 55.5; left = 129.5; keys { , , , , , }; }; row { top = 55.5; left = 259; keys { }; }; row { top = 74; left = 74; keys { { , "SPCE" } }; }; }; }; // geometry tm2030USB_alpha xkb_geometry "tm2030USB_ctrl" { section "Control" { left = 27; top = 0; key.gap = 0.5; key.color = "grey30"; key.shape = "NORM"; row { top = 88; keys { , , , }; }; row { top = 106.5; keys { , { , "ALT1" }, { , "ALT1" } }; }; row { top = 88; left = 166.5; keys { , , , , { , "LFSH"}, }; }; row { top = 106.5; left = 166.5; keys { , , , }; }; row { top = 106.5; left = 259; keys { }; }; row { top = 1; left = 111.5; vertical = true; keys { , { , "BKSP" }, { , "LFSH" } }; }; }; }; // geometry tm2030USB_ctrl xkb_geometry "tm2030PS2" { include "typematrix(tm2030_shape)" include "typematrix(tm2030_MiscDiod_dvk)" include "typematrix(tm2030_MiscDiod_off)" description = "TypeMatrix EZ-Reach 2030 PS2"; section "Function" { left = 27; top = 1.5; key.gap = 0.5; key.color = "grey10"; key.shape = "FUNC"; row { key.color = "grey30"; keys { }; }; row { left = 18.5; keys { , , , }; }; row { left = 92.5; key.color = "grey30"; keys { }; }; row { left = 129.5; key.color = "grey30"; keys { , , }; }; row { left = 185; keys { , , , }; }; row { left = 259; key.color = "grey30"; keys { }; }; }; section "Alpha" { left = 27; top = 14; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 0; keys { , , , , , }; }; row { top = 18.5; keys { , , , , , }; }; row { top = 37; keys { { , "LFSH" }, , , , , }; }; row { top = 55.5; left = 18.5; keys { , , , , }; }; row { top = 0; left = 129.5; keys { , , , , , , , }; }; row { top = 18.5; left = 129.5; keys { , , }; }; row { top = 18.5; left = 185; key.color = "grey30"; keys { , , , }; }; row { top = 18.5; left = 259; keys { }; }; row { top = 37; left = 129.5; keys { , , }; }; row { top = 37; left = 185; key.color = "grey30"; keys { , , , { , "LFSH" }, {, key.color="red"} }; }; row { top = 55.5; left = 129.5; keys { , , }; }; row { top = 55.5; left = 185; key.color = "grey30"; keys { , , }; }; row { top = 55.5; left = 259; keys { }; }; row { top = 74; left = 74; keys { { , "SPCE" } }; }; }; section "Control" { left = 27; top = 0; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 88; keys { , , , }; }; row { top = 106.5; keys { , { , "ALT1" }, { , "ALT1" } }; }; row { top = 88; left = 166.5; keys { }; }; row { top = 88; left = 185; key.color = "grey30"; keys { , , , { , "LFSH"} }; }; row { top = 88; left = 259; keys { }; }; row { top = 106.5; left = 166.5; keys { }; }; row { top = 106.5; left = 185; key.color = "grey30"; keys { , , }; }; row { top = 106.5; left = 259; keys { }; }; row { top = 1; left = 111.5; key.color = "grey10"; vertical = true; keys { , { , "BKSP" }, { , "LFSH" } }; }; }; }; // geometry tm2030PS2 xkb_geometry "tm2030USB" { include "typematrix(tm2030_shape)" include "typematrix(tm2030_MiscDiod_102)" include "typematrix(tm2030_MiscDiod_off)" description = "TypeMatrix EZ-Reach 2030 USB"; include "typematrix(tm2030USB_func)" include "typematrix(tm2030USB_alpha)" include "typematrix(tm2030USB_ctrl)" }; // geometry tm2030USB // European 102/105 keys mode. // Same as the standard keyboard, except for one key: Play becomes LSGT. xkb_geometry "tm2030USB-102" { include "typematrix(tm2030_shape)" include "typematrix(tm2030_MiscDiod_102)" include "typematrix(tm2030_MiscDiod_on)" description = "TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)"; include "typematrix(tm2030USB_func)" include "typematrix(tm2030USB_alpha)" section "Control" { left = 27; top = 0; key.gap = 0.5; key.color = "grey30"; key.shape = "NORM"; row { top = 88; keys { , , , }; }; row { top = 106.5; keys { , { , "ALT1" }, { , "ALT1" } }; }; row { top = 88; left = 166.5; keys { , , , , { , "LFSH"}, }; }; row { top = 106.5; left = 166.5; keys { , , , }; }; row { top = 106.5; left = 259; keys { }; }; row { top = 1; left = 111.5; vertical = true; keys { , { , "BKSP" }, { , "LFSH" } }; }; }; }; // geometry tm2030USB-102 // Japan / Korean 106 keys mode. // Same as the standard keyboard, except for the following keys: // – is replaced by // – WWW key becomes // — Calc key becomes // — key becomes // — and Mail key becomes // About control keys: // NFER/MEHU and XFER/KANJ: TMx keeps LWIN (and RWIN if it happens to exist). // HKTG/HIRA: TMx keeps MENU/COMP, but locates this key in alpha section (see above). xkb_geometry "tm2030USB-106" { include "typematrix(tm2030_shape)" include "typematrix(tm2030_MiscDiod_106)" include "typematrix(tm2030_MiscDiod_on)" description = "TypeMatrix EZ-Reach 2030 USB (106:JP mode)"; include "typematrix(tm2030USB_func)" section "Alpha" { left = 27; top = 14; key.gap = 0.5; key.color = "grey10"; key.shape = "NORM"; row { top = 0; keys { , , , , , }; }; row { top = 18.5; keys { , , , , , }; }; row { top = 37; keys { { , "LFSH" }, , , , , }; }; row { top = 55.5; left = 18.5; keys { , , , , }; }; row { top = 0; left = 129.5; keys { , , , , , , , }; }; row { top = 18.5; left = 129.5; keys { , , , , , , , }; }; row { top = 37; left = 129.5; keys { , , , , , , { , "LFSH" }, }; }; row { top = 55.5; left = 129.5; keys { , , , , , }; }; row { top = 55.5; left = 259; keys { }; }; row { top = 74; left = 74; keys { { , "SPCE" } }; }; }; section "Control" { left = 27; top = 0; key.gap = 0.5; key.color = "grey30"; key.shape = "NORM"; row { top = 88; keys { , , , }; }; row { top = 106.5; keys { , { , "ALT1" }, { , "ALT1" } }; }; row { top = 88; left = 166.5; keys { , , , , { , "LFSH"}, }; }; row { top = 106.5; left = 166.5; keys { , , , }; }; row { top = 106.5; left = 259; keys { }; }; row { top = 1; left = 111.5; vertical = true; keys { , { , "BKSP" }, { , "LFSH" } }; }; }; }; // geometry tm2030USB-106 PK(f[Igeometry/nokianu[// Zoomed 3x because of text size default xkb_geometry "nokiarx51" { description= "Nokia RX-51"; width= 273; // 13x6mm + 2x1.5mm border + 2x5mm border height= 54; // 3x5mm + 2x1.5mm border shape.cornerRadius= 1.5; shape "NORM" { { [18,15] } }; shape "SPCE" { { [36,15] } }; shape "FRAME" { cornerRadius= 2.5, { [243,54] } }; solid "FRAME" { shape= "FRAME"; color= "white"; top= 0; left= 15; }; section.left= 15; row.left= 4.5; key.shape= "NORM"; key.gap= 0; section "Keys" { top= 0; row { top= 4.5; keys { { , "NORM", color="grey20" }, , , , , , , , , , , , { , "NORM", color="grey20" } }; }; row { top= 19.5; keys { { , "NORM", color="grey20" }, , , , , , , , , , , , { , "NORM", color="grey20" } }; }; row { top= 34.5; keys { { , "NORM", color="grey20" }, , , , , , , , { , "SPCE", color="white" }, , , }; }; }; // End of "Keys" section }; // End of "rx51" geometry PK(f[ZBTTgeometry/amiganu[default xkb_geometry "usa1" { description= "Amiga (usa1)"; width= 490; height= 175; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "FCTS" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "TLDE" { { [ 28,18] }, { [2,1], [ 21,17] } }; shape "TABK" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "CTRL" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "CAPS" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "RTRN" { approx = { [ 16, 0], [42,37] }, { [16, 0], [42, 0], [42,37], [ 0,37], [ 0,19], [16,19] }, { [18, 1], [40, 1], [40,36], [ 2,36], [ 2,20], [18,20] } }; shape "LFSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; shape "MODK" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "SPCE" { { [172,18] }, { [2,1], [170,17] } }; shape "DELE" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; section.left= 22; row.left= 1; key.shape= "FCTS"; key.gap= 1; section "Function" { top= 28; row { top= 1; keys { { , shape="NORM" }, { , 9 }, , , , , { , 9 }, , , , }; }; }; // End of "Function" section key.shape= "NORM"; section "Alpha" { top= 56; row { top= 1; keys { { , shape="TLDE" }, , , , , , , , , , , , , , { , "BKSP" } }; }; row { top= 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "RTRN", -15 } }; }; row { top= 39; keys { { , "CTRL" }, { , "CAPS" }, , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH" }, , , , , , , , , , , { , "RTSH" } }; }; row { top= 77; key.shape= "MODK"; keys { { , 10 }, , { , "SPCE" }, , }; }; }; // End of "Alpha" section section "Editing" { top= 56; left= 326; row { top= 1; key.shape = "DELE"; keys { , }; }; row { top= 39; left = 20; keys { }; }; row { top= 58; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 56; left= 392; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , }; }; row { top= 39; keys { , , , }; }; row { top= 58; keys { , , , { , "KPEN" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section }; xkb_geometry "de" { description= "Amiga (de)"; width= 490; height= 175; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "FCTS" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "TLDE" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "TABK" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "CTRL" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "CAPS" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "RTRN" { { [ 0, 0], [28,0], [28,37], [5,37], [5,18], [ 0,18] }, { [ 2, 1], [26,1], [26,36], [7,36], [7,17], [ 2,17] } }; shape "LFSH" { { [ 32,18] }, { [2,1], [ 29,17] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; shape "MODK" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "SPCE" { { [172,18] }, { [2,1], [170,17] } }; shape "DELE" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; section.left= 22; row.left= 1; key.shape= "FCTS"; key.gap= 1; section "Function" { top= 28; row { top= 1; keys { { , shape="NORM" }, { , 9 }, , , , , { , 9 }, , , , }; }; }; // End of "Function" section key.shape= "NORM"; section "Alpha" { top= 56; row { top= 1; keys { { , shape="TLDE" }, , , , , , , , , , , , , , { , "BKSP" } }; }; row { top= 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top= 39; keys { { , "CTRL" }, { , "CAPS" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH" }, , , , , , , , , , , , { , "RTSH" } }; }; row { top= 77; key.shape= "MODK"; keys { { , 14 }, , { , "SPCE" }, , }; }; }; // End of "Alpha" section section "Editing" { top= 56; left= 326; row { top= 1; key.shape = "DELE"; keys { , }; }; row { top= 39; left = 20; keys { }; }; row { top= 58; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 56; left= 392; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , }; }; row { top= 39; keys { , , , }; }; row { top= 58; keys { , , , { , "KPEN" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section }; PK(f[Fgeometry/chiconynu[// -*- indent-tabs-mode: nil -*- // Created by Alexander Pohoyda // Geometry specification for Chicony KB-9820 keyboard. // 86 keys default xkb_geometry "us" { description = "Chicony KB-9820 infra-red keyboard"; width = 350; height = 180; //baseColor = "grey60"; labelColor = "white"; shape "EDGE" { cornerRadius = 25, { [0, 8], [142.5, 0], [202.5, 0], [347, 8], [347, 60], [327, 100], [322, 160], [202.5, 165], [142.5, 165], [25, 160], [20, 100], [0, 60] } }; shape "KEYS" { cornerRadius = 2, { [271, 109] } }; shape "MOUS" { cornerRadius = 12, { [24, 24] } }; shape "MOUS2" { cornerRadius = 9, { [18, 18] } }; shape "BTNS" { cornerRadius = 5, { [10, 10] } }; solid "Edges" { top = 0; left = 0; shape = "EDGE"; color = "grey60"; }; solid "KeyPanel" { shape = "KEYS"; left = 38; top = 22; color = "black"; }; solid "Mouse" { shape = "MOUS"; left = 315; top = 30; color = "grey30"; }; outline "Mouse2" { shape = "MOUS2"; left = 318; top = 33; color = "black"; }; solid "Button1" { shape = "BTNS"; left = 10; top = 32; color = "grey30"; }; solid "Button2" { shape = "BTNS"; left = 20; top = 42; color = "grey30"; }; outline "Buttons" { shape = "MOUS"; left = 8; top = 30; color = "black"; }; shape.cornerRadius = 1; shape "ESC" { { [17, 12] }, { [1.5, 0], [15.5, 10] } }; shape "SMALL" { { [15, 12] }, { [1.5, 0], [13.5, 10] } }; shape "THIN" { { [14, 18] }, { [2, 0], [12, 15] } }; shape "NARR" { { [16, 18] }, { [2, 0], [14, 15] } }; shape "NORM" { { [17, 18] }, { [2, 0], [15, 15] } }; shape "WIDER" { { [18, 18] }, { [2, 0], [16, 15] } }; shape "CAPS" { { [22, 18] }, { [2, 0], [20, 15] } }; shape "RTSH" { { [23, 18] }, { [2, 0], [21, 15] } }; shape "WIDEST" { { [30, 18] }, { [2, 0], [28, 15] } }; shape "SPCE" { { [68, 18] }, { [2, 0], [66, 15] } }; section "Function" { key.shape = "SMALL"; key.gap = 0.79; key.color = "grey60"; left = 38; top = 22; row { top = 1; keys { { , shape="ESC", 1 }, { , 1.5 }, , , , , , , , , , , , , , , }; }; }; // End of "Function" section section "Control" { key.shape = "NORM"; key.gap = 1; key.color = "grey60"; left = 38; top = 111; row { top = 1; keys { , , , , { , shape="SPCE" }, , { , shape="THIN" }, { , shape="THIN" }, { , shape="THIN" }, { , shape="THIN" } }; }; }; // End of "Control" section section "Editing" { key.shape = "NORM"; key.gap = 1; key.color = "grey60"; left = 291; top = 34; row.vertical = True; row { top = 1; keys { , , , }; }; }; // End of "Editing" section section "Navigation" { key.gap = 1; key.shape = "NARR"; key.color = "grey60"; left = 257; top = 92; row { left = 16; top = 1; keys { }; }; row { top = 20; keys { , , }; }; }; // End of "Navigation" section section "Alpha" { key.gap = 1; key.shape = "NORM"; key.color = "grey60"; left = 38; top = 35; row { top = 1; keys { { , shape="NARR" }, , , , , , , , , , , , , { , shape="WIDER" } }; }; row { top = 20; keys { , , , , , , , , , , , , , }; }; row { top = 39; keys { { , shape="CAPS" }, , , , , , , , , , , , { , shape="WIDEST" } }; }; row { top = 58; keys { { , shape="WIDEST" }, , , , , , , , , , , { , shape="RTSH" } }; }; }; // End of "Alpha" section }; PK(f[aageometry/READMEnu[The geometry component of a keyboard mapping specifies primarily the geometry of the keyboard. It contains the geometry symbolic name and the keyboard geometry description. The geometry component might also contain aliases for some keys or symbolic names for some indicators and might affect the set of indicators that are physically present. Key aliases defined in the geometry component of a keyboard mapping override those defined in the keycodes component. PK(f[H9geometry/sanwanu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_geometry "sanwaskbkg3" { description= "Sanwa Supply SKB-KG3"; // SKB-KG3BK (black) // http://www.sanwa.co.jp/product/syohin.asp?code=SKB-KG3BK // http://www.sanwa.co.jp/zooma/keybord/SKB-KG3BK/ // SKB-KG3W (white) // http://www.sanwa.co.jp/product/syohin.asp?code=SKB-KG3W // http://www.sanwa.co.jp/zooma/keybord/SKB-KG3SW/ // SKB-KG3SV (silver) // http://www.sanwa.co.jp/product/syohin.asp?code=SKB-KG3SV // http://www.sanwa.co.jp/zooma/keybord/SKB-KG3SV/ width= 304; height= 127; shape.cornerRadius= 1; shape "TOP" { { [15.25,13] }, { [2,2], [13.25,11] } }; shape "NORM" { { [17,16] }, { [2,2], [15,14] } }; shape "TBBK" { { [24.5,16] }, { [2,2], [22.5,14] } }; shape "RTRN" { { [0,0], [36,0], [36,34], [8.5,34], [8.5,16], [0,16] }, { [2,2], [34,2], [34,32], [10.5,32], [10.5,14], [2,14] } }; shape "CAPS" { { [33,16] }, { [28,16] }, { [2,2], [26,14] } }; shape "LFSH" { { [41,16] }, { [2,2], [39,14] } }; shape "CTSH" { { [19.5,16] }, { [2,2], [17.5,14] } }; shape "SPCE" { { [57.5,16] }, { [2,2], [55.5,14] } }; shape "LED" { cornerRadius= 0, { [5,1] } }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 3; indicator.shape= "LED"; indicator "Num Lock" { left= 247; }; indicator "Caps Lock" { left= 266; }; indicator "Scroll Lock" { left= 285; }; text.color= "black"; text.top= 1; text "Vendor1" { left= 10; text="SANWA"; }; text.top= 4.5; text "Vendor2" { left= 10; text="SUPPLY"; }; text "NumLockLabel" { left= 241; text="Num Lock"; }; text "CapsLockLabel" { left= 260; text="Caps Lock"; }; text "ScrollLockLabel" { left= 279; text="Scroll Lock"; }; section.left= 3; row.left= 1; key.shape= "NORM"; key.gap= 2; section "Function" { key.shape= "TOP"; top= 10; row { top= 1; keys { , , , , , , , , , , , , , , {, color="grey20"}, , {, color="grey20"} }; }; overlay "SCLK" { = }; overlay "FN" { = }; }; // End of "Function" section section "Alpha" { top= 24; row { top= 2; keys { , , , , , , , {, color="grey20"}, {, color="grey20"}, {, color="grey20"}, {, color="grey20"}, , , , { , "TBBK" } }; }; row { top= 20; keys { { , "TBBK" }, , , , , , , {, color="grey20"}, {, color="grey20"}, {, color="grey20"}, {, color="grey20"}, , , { , "RTRN" } }; }; row { top= 38; keys { { , "CAPS" }, , , , , , , {, color="grey20"}, {, color="grey20"}, {, color="grey20"}, {, color="grey20"}, , }; }; row { top= 56; keys { { , "LFSH" }, , , , , , , {, color="grey20"}, , {, color="grey20"}, {, color="grey20"}, , {, color="grey20"}, {, key.shape= "CTSH" } }; }; row { top= 74; keys { { , key.shape= "CTSH" }, {, color="grey20"}, , , , {, "SPCE" }, , , , , {, color="grey20"}, {, color="grey20"}, {, key.shape= "CTSH", color="grey20"} }; }; overlay "SCLK" { =, =, =, =, =, =, =, =, =, =, =, =, =, =, = }; overlay "FN" { =, =, =, = }; }; // End of "Alpha" section alias = ; alias = ; }; // End of "default" geometry PK(f[dQQ geometry/hhknu[// // XKB geometry for the Happy Hacking (Lite). // Different variants correspond to different switch // settings on the HHK. // // Copyright (c) Doug Palmer , 2002 // //Permission is hereby granted, free of charge, to any person obtaining a copy //of this software and associated documentation files (the "Software"), to deal //in the Software without restriction, including without limitation the rights //to use, copy, modify, merge, publish, distribute, sublicense, and/or sell //copies of the Software, and to permit persons to whom the Software is //furnished to do so, subject to the following conditions: // //The above copyright notice and this permission notice shall be included in //all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR //IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, //FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE //AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER //LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, //OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN //THE SOFTWARE. // SW = 100 Default layout with windows keys default xkb_geometry "win1" { include "hhk(basic)" key.gap = 1; section "Space" { top = 86; left = 30; row { top = 1; keys { , { , "DIAM" }, { , "SPCE" }, { , "DIAM" }, }; }; }; }; // SW = 101 Layout with windows and alt keys swapped xkb_geometry "win2" { include "hhk(basic)" key.gap = 1; section "Space" { top = 86; left = 30; row { top = 1; keys { , { , "DIAM" }, { , "SPCE" }, { , "DIAM" }, }; }; }; }; // SW = 110 Default layout with windows keys, and left diamond = Fn key xkb_geometry "win3" { include "hhk(basic)" key.gap = 1; section "Space" { top = 86; left = 30; row { top = 1; keys { , { , "DIAM" }, { , "SPCE" }, { , "DIAM" }, }; }; }; }; // SW = 101 Layout with windows and alt keys swapped and left-Alt = Fn key xkb_geometry "win4" { include "hhk(basic)" key.gap = 1; section "Space" { top = 86; left = 30; row { top = 1; keys { , { , "DIAM" }, { , "SPCE" }, { , "DIAM" }, }; }; }; }; // SW = 000 Layout with Muhenkan and Henkan keys xkb_geometry "jp1" { include "hhk(basic)" key.gap = 1; section "Space" { top = 86; left = 30; row { top = 1; keys { , { , "DIAM" }, { , "SPCE" }, { , "DIAM" }, }; }; }; }; // SW = 001 Layout with Muhenkan and Henkan keys swapped with Alt xkb_geometry "jp2" { include "hhk(basic)" key.gap = 1; section "Space" { top = 86; left = 30; row { top = 1; keys { , { , "DIAM" }, { , "SPCE" }, { , "DIAM" }, }; }; }; }; // SW = 010 Layout with Henkan key and left-diamond as Fn xkb_geometry "jp3" { include "hhk(basic)" key.gap = 1; section "Space" { top = 86; left = 30; row { top = 1; keys { , { , "DIAM" }, { , "SPCE" }, { , "DIAM" }, }; }; }; }; // SW = 001 Layout with Henkan key swapped with Alt and left-Alt as Fn xkb_geometry "jp4" { include "hhk(basic)" key.gap = 1; section "Space" { top = 86; left = 30; row { top = 1; keys { , { , "DIAM" }, { , "SPCE" }, { , "DIAM" }, }; }; }; }; // Basic layout for non-switchable keys partial hidden xkb_geometry "basic" { description = "Happy Hacking"; width = 290; height = 106; shape.cornerRadius = 1; shape "NORM" { { [18, 18] }, { [2, 1], [14, 14] } }; shape "BKSP" { { [28, 18] }, { [2, 1], [24, 14] } }; shape "TABK" { { [28, 18] }, { [2, 1], [24, 14] } }; shape "CTRL" { { [32, 18] }, { [2, 1], [28, 14] } }; shape "RTRN" { { [42, 18] }, { [2, 1], [38, 14] } }; shape "LFSH" { { [42, 18] }, { [2, 1], [38, 14] } }; shape "RTSH" { { [32, 18] }, { [2, 1], [28, 14] } }; shape "DIAM" { { [28, 18] }, { [2, 1], [24, 14] } }; shape "SPCE" { { [114, 18] }, { [2, 1], [110, 14] } }; text.color = "black"; text "PFULabel" { left = 16; top = 2; fontsize = 20; text = "PFU"; }; text "HHKLabel" { left = 254; top = 90; text = "Happy Hacking\nKeyboard"; }; section.left = 1; row.left = 1; key.shape = "NORM"; key.gap = 1; section "Alphanumeric" { top = 10; row { top = 1; keys { , , , , , , , , , , , , , , }; }; row { top = 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 39; keys { { , "CTRL" }, , , , , , , , , , , , { , "RTRN" } }; }; row { top = 58; keys { { , "LFSH" }, , , , , , , , , , , { , "RTSH" }, { , color = "grey20" } }; }; }; alias = ; }; PK(f[SCC geometry/hpnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_geometry "pc101" { description= "HP PC101"; width= 470; height= 210; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "SPCE" { { [132,18] }, { [2,1], [130,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 52; row { top= 1; keys { { , color="grey20" }, { , 18 }, , , , { , 11 }, , , , { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 91; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 20 }, { , "SPCE", color="white" }, , { , 20 } }; }; }; // End of "Alpha" section section "Editing" { top= 91; left= 310; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 91; left= 375; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "default" geometry xkb_geometry "hil" { description= "HP hil"; width= 455; height= 170; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "TABK" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "BKSL" { { [ 24,18] }, { [2,1], [ 22,17] } }; shape "RTRN" { { [ 38,18] }, { [2,1], [ 36,17] } }; shape "LFSH" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "RTSH" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "SPCE" { { [151,18] }, { [2,1], [150,17] } }; shape "KP0" { { [ 38,18] }, { [2,1], [ 36,17] } }; shape "KPTB" { { [ 18,38] }, { [2,1], [ 16,37] } }; shape "TLDE" { { [ 24,18] }, { [2,1], [ 22,17] } }; shape "FKT1" { { [ 17,14] }, { [2,1], [ 15,13] } }; shape "FKT2" { { [ 23,14] }, { [2,1], [ 21,13] } }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 14; row { top= 1; keys { { , "FKT1" }, { , "FKT1" } , { , "FKT2", 10 }, { , "FKT2" }, { , "FKT2" }, { , "FKT2" }, { , "FKT1" }, { , "FKT1" }, { , "FKT2" }, { , "FKT2" }, { , "FKT2" }, { , "FKT2" }, { , "FKT1", 10 }, { , "FKT1" }, { , "FKT1", 19 }, { , "FKT1" }, { , "FKT1" }, { , "FKT1" } }; }; }; // End of "Function" section section "Alpha" { top= 52; row { top= 1; keys { { , "TLDE" }, , , , , , , , , , , , , { , "BKSP" }, , }; }; row { top= 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "BKSL" }, , }; }; row { top= 39; keys { , , , , , , , , , , , , , { , "RTRN" }, , }; }; row { top= 58; keys { , { , "LFSH" }, , , , , , , , , , , { , "RTSH" }, , , }; }; row { top= 77; keys { , { , 30 }, { , "SPCE" }, , { , 30 }, , }; }; }; // End of "Alpha" section section "Keypad" { top= 52; left= 360; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , }; }; row { top= 39; keys { , , , }; }; row { top= 58; keys { , , , { , "KPTB" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section }; // Created by Alexander Pohoyda // Geometry specification for HP Omnibook keyboards. // Compatible Models: 6100, 6000. xkb_geometry "omnibook" { width = 282; height = 128; baseColor = "grey80"; labelColor = "white"; shape "FN0" { cornerRadius = 1, { [15.5, 12] }, { [1, 0], [14.5, 11] } }; shape "NORM" { cornerRadius = 1, { [18, 16] }, { [2, 0], [16, 14] } }; shape "BKSP" { cornerRadius = 1, { [31, 16] }, { [2, 0], [29, 14] } }; shape "TABK" { cornerRadius = 1, { [27, 16] }, { [2, 0], [25, 14] } }; shape "CAPS" { cornerRadius = 1, { [32, 16] }, { [2, 0], [30, 14] } }; shape "RTSH" { cornerRadius = 1, { [45, 16] }, { [2, 0], [43, 14] } }; shape "MODK" { cornerRadius = 1, { [28, 16] }, { [2, 0], [26, 14] } }; shape "SPCE" { cornerRadius = 1, { [90, 16] }, { [2, 0], [88, 14] } }; shape "ARRS" { cornerRadius = 1, { [17, 12] }, { [2, 0], [15, 11] } }; shape "LED" { cornerRadius = 1, { [2, 4] } }; shape "KEYS" { cornerRadius = 1, { [0, 13], [197, 13], [197, 0], [280, 0], [280, 125], [224, 125], [224, 112], [0, 112] } }; solid "KeyPanel" { shape = "KEYS"; left = 1; top = 1; color = "black"; }; shape "NULL1" { cornerRadius = 1, { [54, 16] } }; solid "NullPanel1" { shape = "NULL1"; left = 226; top = 96; color = "grey80"; }; shape "NULL2" { cornerRadius = 1, { [19, 14] } }; solid "NullPanel2" { shape = "NULL2"; left = 243; top = 97; color = "black"; }; indicator.onColor = "green"; indicator.offColor = "grey10"; indicator.top = 4; indicator.shape = "LED"; indicator "Caps Lock" { left = 45; }; indicator "Num Lock" { left = 60; }; indicator "Scroll Lock" { left = 75; }; indicator "HDDActivity" { onColor = "red"; left = 90; }; key.color = "grey60"; section "Function" { key.gap = 0.99; left = 1; top = 1; key.shape = "FN0"; row { left = 197; top = 1; keys { , , , , }; }; row { top = 14; keys { , , , , , , , , , , , , , , , , }; }; }; // End of "Function" section section "Control" { left = 1; top = 34; key.gap = 1; row { top = 62; key.shape = "NORM"; keys { , , , , { , "SPCE" }, , , }; }; }; // End of "Control" section section "Navigation" { key.shape = "ARRS"; left = 225; top = 97; key.gap = 1.4; row { left= 18; top = 1; keys { }; }; row { top = 16; keys { , , }; }; }; // End of "Navigation" section shape "STIK" { cornerRadius = 4, { [7, 7] } }; solid "STIK" { priority = 255; color = "red"; shape = "STIK"; top = 73; left = 126; }; }; // 86 keys xkb_geometry "omnibook_intl" { include "hp(omnibook)" description = "HP Omnibook 6000/6100, Intl"; shape "RTRN" { cornerRadius = 1, { [22, 0], [22, 33], [5, 33], [5, 16], [0, 16], [0, 0] }, { [20, 0], [20, 31], [7, 31], [7, 14], [2, 14], [2, 0] } }; shape "LFSH" { cornerRadius = 1, { [23, 16] }, { [2, 0], [21, 14] } }; section "Alpha" { key.gap = 1; key.color = "grey60"; key.shape = "NORM"; left = 1; top = 27; row { top = 1; keys { , , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 18; keys { { , "TABK" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 35; keys { { , "CAPS" }, , , , , , , , , , , , }; }; row { top = 52; keys { { , "LFSH" }, , , , , , , , , , , , { , "RTSH" } }; }; }; // End of "Alpha" section }; xkb_geometry "mini110" { description= "HP Mini 110"; width= 262; height= 106; shape.cornerRadius = 0; shape "FN0" { { [ 14, 10 ] } , { [ 14, 10 ] } }; shape "NORM" { { [ 16.7, 16 ] } , { [ 16.7, 16 ] } }; shape "TLDE" { { [ 12, 16 ] } , { [ 12, 16 ] } }; shape "ONE" { { [ 14, 16 ] } , { [ 14, 16 ] } }; shape "BKSP" { { [ 31.3, 16 ] } , { [ 31.3, 16 ] } }; shape "BKSL" { { [ 23.9, 16 ] } , { [ 23.9, 16 ] } }; shape "CAPS" { { [ 22, 16 ] } , { [ 22, 16 ] } }; shape "RTRN" { { [ 36.3, 16 ] } , { [ 36.3, 16 ] } }; shape "LFSH" { { [ 31, 16 ] } , { [ 31, 16 ] } }; shape "RTSH" { { [ 45, 16 ] } , { [ 45, 16 ] } }; shape "CTLS" { { [ 16.5, 19 ] } , { [ 16.5, 19 ] } }; shape "SPCE" { { [ 78.4, 19 ] } , { [ 78.4, 19 ] } }; shape "ARRW" { { [ 16.7, 9 ] } , { [ 16.7, 9 ] } }; key.gap=1; section "Function" { top=4; left=3; key.shape="FN0"; row { keys { , , , , , , , , , , , , , , , , }; }; }; section "Alphanum" { top=15; left=3; key.shape="NORM"; row { top= 0; keys { { , "TLDE" } , { , "ONE" }, , , , , , , , , , , , { , "BKSP" } }; }; row { top= 17; keys { , , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 34; keys { { , "CAPS" } , , , , , , , , , , , , { , "RTRN" } }; }; row { top= 51; keys { { , "LFSH" }, , , , , , , , , , , { , "RTSH" } }; }; }; section "Control" { top=83; left=3; key.shape="CTLS"; row { keys { , , , , { , "SPCE" }, , , }; }; }; section "Arrows" { top=83; left=204.9; key.shape="ARRW"; row { left= 17.7; keys { }; }; row { top = 10; keys { , , }; }; }; }; xkb_geometry "dv5" { height=118.4; width=310.6; description = "HP Pavilion dv5"; shape.cornerRadius = 1; shape "ESC" { { [20.0, 12.5] }, { [2.2, 1], [17.8, 10.5] } }; shape "FN0" { { [15.9, 12.5] }, { [2.2, 1], [13.7, 10.5] } }; shape "DELE" { { [19.4, 12.5] }, { [2.2, 1], [17.2, 10.5] } }; shape "NORM" { { [17.9, 18.3] }, { [2.2, 1], [15.7, 16.3] } }; shape "BKSP" { { [36.1, 18.3] }, { [2.4, 1], [33.7, 16.3] } }; shape "TABK" { { [26.8, 18.3] }, { [2.4, 1], [24.4, 16.3] } }; shape "BKSL" { { [27.1, 18.3] }, { [2.4, 1], [24.7, 16.3] } }; shape "CAPS" { { [31.6, 18.3] }, { [2.4, 1], [29.2, 16.3] } }; shape "RTRN" { { [41.2, 18.3] }, { [2.4, 1], [39.3, 16.3] } }; shape "LFSH" { { [41.5, 18.3] }, { [2.4, 1], [38.8, 16.3] } }; shape "RTSH" { { [31.5, 18.3] }, { [2.4, 1], [29.1, 16.3] } }; shape "LCTL" { { [22.4, 18.3] }, { [2.2, 1], [20.2, 16.3] } }; shape "RCTL" { { [22.6, 18.3] }, { [2.2, 1], [20.4, 16.3] } }; shape "CTLS" { { [17.9, 18.3] }, { [2.2, 1], [15.7, 16.3] } }; shape "SPCE" { { [94.3, 18.3] }, { [2.5, 1], [91.8, 16.3] } }; shape "ARRW" { { [17.9, 18.3] }, { [2.2, 1], [15.7, 16.3] } }; shape "EDIT" { { [16.6, 18.3] }, { [2.2, 1], [14.4, 16.3] } }; key.gap = 1.2; section "Function" { top=4.2; left=3; row { key.shape = "FN0"; keys { {, "ESC"}, {2.9, }, , , , {2.9, }, , , , {2.9, }, , , , {2.9, }, , , {, "DELE"} }; }; }; section "Alpha" { top = 17.9; key.shape = "NORM"; left = 3; row { top = 0; keys { , , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 19.5; keys { { , "TABK" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top = 39; keys { { , "CAPS" }, , , , , , , , , , , , { , "RTRN" } }; }; row { top = 58.5; keys { { , "LFSH" }, , , , , , , , , , , { , "RTSH" } }; }; }; // End of "Alpha" section section "Controls" { top = 95.9; key.shape = "CTLS"; left = 3; row { top = 0; keys { {, "LCTL"}, , , , {, "SPCE"}, , , {, "RCTL"} }; }; }; section "Editing" { top = 16.5; left = 289.9; key.shape = "EDIT"; key.gap = 1.4; row { top = 0; vertical = true; keys { , , , }; }; }; section "Arrows" { top = 76.4; key.shape = "ARRW"; left = 249.3; row { top = 0; left = 19.1; keys { }; }; row { top = 19.5; left = 0; keys { , , }; }; }; }; PK(f[PQdgeometry/northgatenu[default xkb_geometry "omnikey101" { description= "North Gate Omnikey 101"; width= 470; height= 175; shape.cornerRadius= 1; shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [34,18] }, { [2,1], [32,17] } }; shape "TABK" { { [27,18] }, { [2,1], [25,17] } }; shape "RTRN" { approx = { [15, 0], [40,37] }, { [15, 0], [40, 0], [40,37], [ 0,37], [ 0,19], [15,19] }, { [17, 1], [38, 1], [38,36], [ 2,36], [ 2,20], [17,20] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } }; shape "LFSH" { { [ 41,18] }, { [2,1], [39,17] } }; shape "RTSH" { { [ 30,18] }, { [2,1], [28,17] } }; shape "MODK" { { [ 26,18] }, { [2,1], [24,17] } }; shape "SPCE" { { [129,18] }, { [2,1], [127,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } }; shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 1, 3 ] } }; solid "LedPanel" { shape= "LEDS"; top= 32; left= 375; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 46.5; indicator.shape= "LED"; indicator "Num Lock" { left= 384; }; indicator "Caps Lock" { left= 409; }; indicator "Scroll Lock" { left= 434; }; text.top= 34; text.color= "black"; text "NumLockLabel" { left= 380.5; text="Num\nLock"; }; text "CapsLockLabel" { left= 405; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 430; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 32; row { top= 1; keys { { , color="grey20" }, { , 18}, , , , { , 9 }, , , , { , 9 }, , , }; }; }; // End of "Function" section section "Alpha" { top= 65; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "RTRN", -14, color="grey20" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" }, }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 23 }, { , "SPCE", color="white" }, , { , 23 } }; }; }; // End of "Alpha" section section "Editing" { top= 32; left= 308; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 33; keys { , , }; }; row { top= 53; keys { , , }; }; row { top= 91; left= 20; keys { }; }; row { top= 110; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 65; left= 374; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "default" geometry PK(f[mZ Z geometry/steelseriesnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // // modified from /usr/share/X11/xkb/geometry/pc(pc104) // // The Apex 300 (Apex RAW) has 21 additional keys and // is replaced by a hardware key. These // additions to the basic PC104 layout are shown in red. // // Currently the kernel doesn't initialize these keys; a userspace // tool is needed (apexctl: https://github.com/tuxmark5/ApexCtl). // With this tool or a proper driver, the extra keys (except FN) // can be assigned keycodes via udev-hwdb. // // FIXME: Keycodes shown here should be changed to match // kernel defaults when a driver is developed. // // The additional keys are in 4 groups: // 1) L1-L2 left of Escape (column) , // 2) M1-M12 above F1-F12 (row) - // 3) MX1-MX5 left of alpha keys (column) - // 4) LeftUp, RightUp with regular arrows , // // Known key functions: // + = kbd backlight step dimmer (NoSymbol) // + = kbd backlight step brighter (NoSymbol) // + = (AudioPrev) // + = (AudioPlay, AudioPause) // + = (AudioNext) // + = (AudioMute) // + = (VolumeUp) // + = (VolumeDown) // // And yes, the spacebar really is that ridiculous. // // 2017.April // default xkb_geometry "apex300" { description= "SteelSeries Apex 300 (Apex RAW)"; width= 450; height= 150; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; shape "SPCE" { { [113,37] }, { [2,1], [111,35] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; shape "MKEY" { { [ 18,8] }, { [2,1], [ 16,7] } }; shape "ESCA" { { [ 18,28] }, { [2,1], [ 16,27] } }; shape "LKEY" { { [ 18,14] }, { [2,1], [ 16,13] } }; shape "LEDS" { cornerRadius= 0, { [ 54, 6 ] } }; shape "LED" { cornerRadius= 0, { [ 4, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 2; left= 315; color= "grey10"; }; indicator.onColor= "red"; indicator.offColor= "red"; indicator.top= 7; indicator.shape= "LED"; indicator "Num Lock" { left= 321; }; indicator "Caps Lock" { left= 340; }; indicator "Scroll Lock" { left= 359; }; text.top= 2; text.color= "black"; text "NumLockLabel" { left= 322; text="N"; }; text "CapsLockLabel" { left= 341; text="C"; }; text "ScrollLockLabel" { left= 360; text="S"; }; text "SteelSeriesLogo" { top= 10; left= 400; text="SteelSeries"; }; text "FNLogoKeyLabel" { top= 130; left= 248; text="FN"; }; key.shape= "NORM"; key.gap= 1; key.color= "grey10"; section "Lkeys" { key.shape= "LKEY"; key.color= "red"; row { top= 1; keys { }; }; row { top= 15; keys { }; }; }; // end of "Lkeys" section section "MXkeys" { key.shape= "NORM"; key.color= "red"; row { top= 35; keys { }; }; // 40 59 78 97 116 row { top= 54; keys { }; }; // 35 54 73 92 111 row { top= 73; keys { }; }; row { top= 92; keys { }; }; row { top=111; keys { }; }; }; // end of "MXkeys" section section "Escape" { left= 23; key.shape= "ESCA"; key.color= "grey30"; row { top= 1; keys { }; }; }; // end of "Escape" section section "Mkeys" { left= 61; key.color= "red"; key.shape= "MKEY"; row { top= 1; keys { , , , , { , 11 }, , , , { , 11 }, , , }; }; }; // end of "Mkeys" section section "Function" { left= 61; key.color= "grey30"; row { top= 10; keys { , , , , { , 11 }, , , , { , 11 }, , , , { , 5 }, , }; }; }; // end of "Function" section section "Alpha" { top= 35; left= 23; key.color= "grey10"; row { keys { , , , , , , , , , , , , , { , "BKSP", color="grey30" } }; }; row { top= 19; keys { { , "TABK", color="grey30" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 38; keys { { , "CAPS", color="grey30" }, , , , , , , , , , , , { , "RTRN", color="grey30" } }; }; row { top= 57; keys { { , "LFSH", color="grey30" }, , , , , , , , , , , { , "RTSH", color="grey30" } }; }; row { top= 76; key.shape= "SMOD"; key.color= "grey30"; keys { { , "MODK" }, , , { , "SPCE" }, , { , color="red" }, , }; }; }; // end of "Alpha" section section "Editing" { top= 35; left= 313; key.color= "grey30"; row { keys { , , }; }; row { top= 19; keys { , , }; }; row { top= 57; keys { { , color="red" }, , { , color="red" } }; }; row { top= 76; keys { , , }; }; }; // end of "Editing" section section "Keypad" { top= 35; left= 373; key.color= "grey10"; row { keys { , , , }; }; row { top= 19; keys { , , , { , "KPAD" } }; }; row { top= 38; keys { , , }; }; row { top= 57; keys { , , , { , "KPAD" } }; }; row { top= 76; keys { { , "KP0" }, }; }; }; // end of "Keypad" section alias = ; alias = ; }; // end of "apex300" geometry PK(f[Y+geometry/kinesisnu[default xkb_geometry "model100" { // This is an approximate layout for a Kinesis Ergonomic keyboard // Generated completely by eye. I didn't actually *measure* a real // keyboard. description= "Kinesis Ergonomic"; width= 421; height= 185; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } }; shape "WIDE" { { [ 21,18] }, { [2,1], [19,17] } }; shape "TALL" { { [ 18,37] }, { [2,1], [16,36] } }; shape "FKEY" { cornerRadius=0, { [ 10,13] } }; shape "LED" { cornerRadius= 1.5, { [ 3, 3] } }; shape "LOGO" { { [ 40, 10 ] } }; shape "EDGE" { cornerRadius=5, { [ 421, 185 ] } }; outline "Edges" { top= 0; left= 0; shape= "EDGE"; }; section "LeftFunction" { left= 15; top= 11; key.shape= "FKEY"; key.gap= 3; row { left= 1; top= 1; keys { , , , , , , , , }; }; }; // End of "LeftFunction" section section "RightFunction" { left= 290; top= 11; key.shape= "FKEY"; key.gap= 3; row { left= 1; top= 0.2; keys { , , , , , , , , }; }; }; // End of "RightFunction" section row.vertical= True; row.top= 1; key.gap= 0.5; logo "KinesisLogoImage" { top= 25; left= 240; name= "Kinesis"; shape= "LOGO"; }; indicator.shape= "LED"; indicator.top= 30; indicator.onColor= "green"; indicator.offColor= "green30"; indicator "Caps Lock" { left= 23; }; section "LeftAlpha" { top= 34; left= 15; row { left= 2; key.shape= "WIDE"; keys { , , , }; }; row { top= 4; left= 24; keys { , , { , color="grey20" }, , }; }; row { left= 43; keys { , , { , color="grey20" }, , }; }; row { left= 62; keys { , , { , color="grey20" }, , }; }; row { left= 81; keys { , , { , color="grey20" }, , }; }; row { left= 100; keys { , , , }; }; }; // End of "LeftAlpha" section indicator "NumLock" { left= 318; }; indicator "Overlay" { left= 387; }; section "RightAlpha" { top= 34; left= 290; row { left= 2; keys { , , , }; }; row { left= 21; keys { , , { , color="grey20" }, , }; }; row { left= 40; keys { , , { , color="grey20" }, , }; }; row { left= 59; keys { , , { , color="grey20" }, , }; }; row { top= 4; left= 78; keys { , , { , color="grey20" }, , }; }; row { left= 97; key.shape= "WIDE"; keys { , , , }; }; overlay "KPAD" { =, =, =, =, =, =, =, =, =, =, =, =, =, =, =, =, =, = }; }; // End of "RightAlpha" section section "LeftEdit" { top= 109; left= 123; angle= 20; row.top= -18; row { top= 1; left= 1; keys { { , "TALL" } }; }; row { left= 20; keys { , { , "TALL" } }; }; row { left= 39; keys { , , }; }; }; // End of "LeftEdit" section section "RightEdit" { top= 109; left= 302; angle= -20; row.top= -18; row { left= -57; keys { , , }; }; row { left= -38; keys { , { , "TALL" } }; }; row { top= 1; left= -19; keys { { , "TALL" } }; }; overlay "KPAD" { = }; }; // End of "RightEdit" section alias = ; alias = ; }; PK(f[} g/g/geometry/thinkpadnu[// -*- indent-tabs-mode: nil -*- // Created by Alexander Pohoyda // Geometry specification for IBM ThinkPad keyboard. // Compatible Models: THINKPAD 560Z 2640-90U, THINKPAD 560Z 2640-91U, // THINKPAD 560Z 2640-B0U, THINKPAD 560Z 2640-B1U, THINKPAD 560Z 2640-RR3, // THINKPAD 600 2645-31U, THINKPAD 600 2645-35U, THINKPAD 600 2645-41U, // THINKPAD 600 2645-42U, THINKPAD 600 2645-45U, THINKPAD 600 2645-48U, // THINKPAD 600 2645-51U, THINKPAD 600 2645-85U, THINKPAD 600 2645-A1U, // THINKPAD 600 2645-RR1, THINKPAD 600 2645-RR2, THINKPAD 600E 2645-3AU, // THINKPAD 600E 2645-4AU, THINKPAD 600E 2645-4BU, THINKPAD 600E 2645-55U, // THINKPAD 600E 2645-5AU, THINKPAD 600E 2645-5BU, THINKPAD 600E 2645-5JU, // THINKPAD 600E 2645-8AO, THINKPAD 600E 2645-8AU, THINKPAD 600E 2645-8BU, // THINKPAD 600E 2645-AAU, THINKPAD 600E 2645-RRB, THINKPAD 600E 2645-RRD, // THINKPAD 600E 2645-RRF, THINKPAD 600E 2645-RRS, THINKPAD A22E 2645-45U xkb_geometry "common" { width = 290; height = 150; baseColor = "grey80"; labelColor = "white"; shape "FN0" { cornerRadius = 1, { [17, 12] }, { [2, 0], [15, 10] } }; shape "NORM" { cornerRadius = 1, { [18, 18] }, { [2.5, 0], [15.5, 14] } }; shape "BKSP" { cornerRadius = 1, { [37, 18] }, { [2.5, 0], [34.5, 14] } }; shape "TABK" { cornerRadius = 1, { [27, 18] }, { [2.5, 0], [24.5, 14] } }; shape "CAPS" { cornerRadius = 1, { [31, 18] }, { [1, 0], [30, 16] }, { [1, 0], [26, 16] }, { [2.5, 0], [24.5, 14] } }; shape "RTSH" { cornerRadius = 1, { [50, 18] }, { [2.5, 0], [46.5, 14] } }; shape "MODK" { cornerRadius = 1, { [27.5, 18] }, { [2.5, 0], [25, 14] } }; shape "SPCE" { cornerRadius = 1, { [100, 18] }, { [2.5, 0], [97.5, 14] } }; shape "ARRS" { cornerRadius = 1, { [16, 13] }, { [1.5, 0], [14.5, 11] } }; shape "LED" { cornerRadius = 2, { [3, 3] } }; shape "KEYS" { cornerRadius = 2, { [0, 0], [19, 0], [19, 13], [172, 13], [172, 0], [286, 0], [286, 138], [216, 138], [216, 124], [0, 124] } }; solid "KeyPanel" { shape = "KEYS"; left = 2; top = 5; color = "black"; }; shape "NULL1" { cornerRadius = 1, { [0, 0], [50, 0], [50, 18], [34, 18], [34, 4], [16, 4], [16, 18], [0, 18] } }; solid "NullPanel1" { shape = "NULL1"; left = 237; top = 110; color = "grey80"; }; shape "NULL2" { cornerRadius = 1, { [17, 13] } }; solid "NullPanel2" { shape = "NULL2"; left = 219; top = 129; color = "grey80"; }; shape "NULL3" { cornerRadius = 1, { [0, 26], [72, 26], [72, 13], [76, 13], [76, 26], [149, 26], [149, 13], [153, 13], [153, 26], [226, 26], [226, 0], [230, 0], [230, 26], [284, 26], [285, 27], [0, 27] } }; solid "NullPanel3" { shape = "NULL3"; left = 3; top = 6; color = "grey80"; }; indicator.onColor = "green"; indicator.offColor = "grey10"; indicator.top = 4; indicator.shape = "LED"; indicator "HDDActivity" { onColor = "red"; left = 100; }; indicator "Num Lock" { left = 108; }; indicator "Caps Lock" { left = 114; }; indicator "Scroll Lock" { left = 120; }; indicator "Power" { left = 128; }; key.gap = 1; key.color = "grey60"; section "Function" { left = 2; top = 5; key.shape = "FN0"; row { top = 1; keys { , { , 155 }, , }; }; row { top = 14; keys { , , , , { , 6 }, , , , { , 6 }, , , }; }; }; // End of "Function" section section "Control" { left= 2; top = 109; key.shape = "MODK"; row { top = 1; keys { { , "NORM" }, , , { , "SPCE" }, , }; }; }; // End of "Control" section section "Editing" { top = 5; left = 233; key.shape = "FN0"; row { top = 1; keys { , , }; }; row { top = 14; keys { , , }; }; }; // End of "Editing" section section "Navigation" { top = 114; left = 236; key.shape = "ARRS"; row { top = 1; left = 17; keys { }; }; row { top = 15; keys { , , }; }; }; // End of "Navigation" section shape "STIK" { cornerRadius = 4, { [7, 7] } }; solid "STIK" { priority = 255; color = "red"; shape = "STIK"; top = 85; left = 126; }; }; // 85 keys // US/English (FRU 02K4785). xkb_geometry "us" { include "thinkpad(common)" description = "IBM ThinkPad 560Z/600/600E/A22E, US"; shape "RTRN" { cornerRadius = 1, { [43, 18] }, { [2.5, 0], [40.5, 14] } }; shape "LFSH" { cornerRadius = 1, { [43, 18] }, { [2.5, 0], [40.5, 14] } }; shape "BKSL" { cornerRadius = 1, { [28, 18] }, { [2.5, 0], [25.5, 14] } }; section "Alpha" { left = 2; top = 33; key.gap = 1; key.color = "grey60"; key.shape = "NORM"; row { top = 1; keys { , , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top = 39; keys { { , "CAPS" }, , , , , , , , , , , , { , "RTRN" } }; }; row { top = 58; keys { { , "LFSH" }, , , , , , , , , , , { , "RTSH" } }; }; }; // End of "Alpha" section }; // 86 keys // Tested on: DE/German, UK/English (FRU 02K4787). xkb_geometry "intl" { include "thinkpad(common)" description = "IBM ThinkPad 560Z/600/600E/A22E, Intl"; shape "RTRN" { cornerRadius = 1, { [28, 0], [28, 37], [4, 37], [4, 18], [0, 18], [0, 0] }, { [25.5, 0], [25.5, 33], [6.5, 33], [6.5, 14], [2.5, 14], [2.5, 0] } }; shape "LFSH" { cornerRadius = 1, { [24, 18] }, { [2.5, 0], [21.5, 14] } }; section "Alpha" { left = 2; top = 33; key.gap = 1; key.color = "grey60"; key.shape = "NORM"; row { top = 1; keys { , , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 39; keys { { , "CAPS" }, , , , , , , , , , , , }; }; row { top = 58; keys { { , "LFSH" }, , , , , , , , , , , , { , "RTSH" } }; }; }; // End of "Alpha" section }; xkb_geometry "60" { width = 290; height = 140; baseColor = "grey80"; labelColor = "white"; shape "NORM" { cornerRadius = 1, { [18, 18] }, { [2, 0], [16, 16] } }; shape "ESC" { cornerRadius = 1, { [17, 13] }, { [1.5, 0], [15.5, 12] } }; shape "FN0" { cornerRadius = 1, { [17, 11] }, { [1.5, 0], [15.5, 10] } }; shape "BKSP" { cornerRadius = 1, { [37, 18] }, { [2, 0], [35, 16] } }; shape "TABK" { cornerRadius = 1, { [27.5, 18] }, { [2, 0], [25.5, 16] } }; shape "BKSL" { cornerRadius = 1, { [27.5, 18] }, { [2, 0], [25.5, 16] } }; shape "CAPS" { cornerRadius = 1, { [30.5, 18] }, { [2, 0], [28.5, 16] } }; shape "RTRN" { cornerRadius = 1, { [43.5, 18] }, { [2, 0], [41.5, 16] } }; shape "LFSH" { cornerRadius = 1, { [40, 18] }, { [2, 0], [38, 16] } }; shape "RTSH" { cornerRadius = 1, { [53, 18] }, { [2, 0], [51, 16] } }; shape "LCTL" { cornerRadius = 1, { [21, 18] }, { [2, 0], [19, 16] } }; shape "LWIN" { cornerRadius = 1, { [15, 18] }, { [1.5, 0], [13.5, 16] } }; shape "SPCE" { cornerRadius = 1, { [97, 18] }, { [2, 0], [95, 16] } }; shape "ARR1" { cornerRadius = 1, { [17, 13] }, { [1.5, 0], [15.5, 12] } }; shape "ARR2" { cornerRadius = 1, { [17, 11] }, { [1.5, 0], [15.5, 10] } }; shape "VOL" { cornerRadius = 2.5, { [5, 5] } }; shape "TVTG" { cornerRadius = 0.5, { [0, 1], [17, 1], [17, 4], [0, 4] } }; shape "KEYS" { cornerRadius = 2, { [0, 0], [19, 0], [19, 16], [172, 16], [172, 4], [286, 4], [286, 133], [231, 133], [231, 126], [0, 126] } }; solid "KeyPanel" { shape = "KEYS"; left = 2; top = 3; color = "black"; }; shape "NULL0" { cornerRadius = 0.5, { [0, 26], [72, 26], [72, 14], [76, 14], [76, 26], [149, 26], [149, 14], [153, 14], [153, 26], [226, 26], [226, 2], [230, 2], [230, 26], [284, 26], [284, 27], [0, 27] } }; solid "NullPanel0" { shape = "NULL0"; left = 3; top = 6; color = "grey80"; }; shape "NULL1" { cornerRadius = 0.5, { [0, 12], [17, 12], [17, 13], [0, 13] } }; solid "NullPanel1" { shape = "NULL1"; left = 3; top = 6; color = "grey80"; }; shape "MEDIA" { cornerRadius = 0.5, { [0, 0], [55, 0], [55, 10], [0, 10] } }; solid "MediaPanel" { shape = "MEDIA"; left = 25.5; top = 6; color = "black"; }; section "Volume" { left = 22; top = 8.5; key.shape = "VOL"; key.gap = 6; key.color = "grey20"; row { keys { , , , {, "TVTG", color = "blue"} }; }; }; key.gap = 1; key.color = "grey60"; section "Function" { left = 2; top = 3; key.shape = "FN0"; row { key.shape = "ESC"; top = 1; keys { }; }; row { top = 5; keys { { , 173 }, , }; }; row { top = 17; keys { , , , , { , 6 }, , , , { , 6 }, , , }; }; }; // End of "Function" section section "Control" { left = 2; top = 109; key.shape = "NORM"; row { top = 1; keys { , { , "LCTL" }, { , "LWIN" }, , { , "SPCE" }, , , }; }; }; // End of "Control" section section "Editing" { top = 7; left = 233; key.shape = "FN0"; row { top = 1; keys { , , }; }; row { top = 13; keys { , , }; }; }; // End of "Editing" section section "Navigation" { top = 109; left = 233; row { key.shape = "ARR1"; top = 1; keys { , , }; }; row { key.shape = "ARR2"; top = 15; keys { , , }; }; }; // End of "Navigation" section shape "STIK" { cornerRadius = 3.5, { [7, 7] } }; solid "STIK" { priority = 255; color = "red"; shape = "STIK"; top = 85.5; left = 125.5; }; section "Alpha" { left = 2; top = 33; key.shape = "NORM"; row { top = 1; keys { , , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 20; keys { { , "TABK" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top = 39; keys { { , "CAPS" }, , , , , , , , , , , , { , "RTRN", color = "blue" } }; }; row { top = 58; keys { { , "LFSH" }, , , , , , , , , , , { , "RTSH" } }; }; }; // End of "Alpha" section }; PK(f[eEyaa geometry/sonynu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_geometry "nwp5461" { description= "Sony NEWS NWS-5000 Keyboard"; width= 425; height= 190; shape.cornerRadius= 1; shape "NORM" { { [18,18] }, { [2,1], [16,17] } }; shape "BKSP" { { [28,18] }, { [2,1], [26,17] } }; shape "TABK" { { [28,18] }, { [2,1], [26,17] } }; shape "BKSL" { { [28,18] }, { [2,1], [26,17] } }; shape "RTRN" { approx = { [15, 0], [33,37] }, { [15, 0], [33, 0], [33,37], [ 0,37], [ 0,19], [15,19] }, { [17, 1], [31, 1], [31,36], [ 2,36], [ 2,20], [17,20] } }; shape "SHFT" { { [42,18] }, { [2,1], [40,17] } }; shape "MODK" { { [33,18] }, { [2,1], [31,17] } }; shape "SPCE" { { [85,18] }, { [2,1], [83,17] } }; shape "KPEN" { { [18,38] }, { [2,1], [16,37] } }; shape "STOP" { { [28,18] }, { [2,1], [26,17] } }; shape "CUT" { { [55,18] }, { [2,1], [53,17] } }; shape "EXEC" { { [32,18] }, { [2,1], [30,17] } }; shape "UNK" { { [18,18] }, { [2,1], [16,17] } }; shape "CAPS" { { [18,18] }, { [2,1], [16,17] } }; shape "FKEY" { { [23,18] }, { [2,1], [21,17] } }; section.left= 13; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 55; row { top= 1; left= 37; key.shape="FKEY"; keys { , , , , , { , 5 }, , , , , { , 5 }, }; }; }; // End of "Function" section section "Alpha" { top= 80; row { top= 1; keys { { , color="grey20" } , , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , color="grey20" }, { , "RTRN", -14, color="grey20" } }; }; row { top= 39; keys { { , "MODK", color="grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "SHFT", color="grey20" }, , , , , , , , , , , , { , "SHFT", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , "CAPS" }, { , "STOP", color="white" }, { , "SPCE", color="white" }, { , "CUT", color="white" }, { , "UNK" }, { , "UNK" }, { , "EXEC" } }; }; }; // End of "Alpha" section section "Editing" { top= 80; left= 312; key.color= "grey20"; row { top= 1; keys { }; }; row { top= 20; keys { }; }; row { top= 39; keys { }; }; row { top= 58; keys { }; }; row { top= 77; keys { }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 334; row { top= 1; key.color= "grey20"; keys { { , 19 }, , }; }; row { top= 20; keys { , , , { , color="grey20" } }; }; row { top= 39; keys { , , , { , color="grey20" } }; }; row { top= 58; keys { , , , { , "KPEN", color="grey20" } }; }; row { top= 77; keys { , { , color="grey20" }, }; }; row { top= 96; key.color= "grey20"; keys { , , , }; }; }; // End of "Keypad" section }; // End of "default" geometry PK(f[a__geometry/macintoshnu[// // Some modifications () : // - Added a key // - Fixed the shape of the key // - Moved to the 'AC' row // - Added a special Macintosh sysctl key // - Minor changes (Function keys shape, LED position...) // Minor changes // - Mail address above is no longer valid // - Changed {L,R}MTA to {L,R}WIN, which are defined // 2005/10 -- Simon Vallet default xkb_geometry "macintosh" { description= "Apple Extended Keyboard II"; width = 475; height = 194; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "TLDE" { { [ 23,18] }, { [2,1], [ 21,17] } }; shape "BKSP" { { [ 33,18] }, { [2,1], [ 31,17] } }; shape "TAB" { { [ 33,18] }, { [2,1], [ 31,17] } }; shape "RTRN" { { [0,0],[23,0],[23,37],[4,37],[4,18],[0,18] }, { [2,1],[21,1],[21,36],[6,36],[6,17],[2,17] } }; shape "CAPS" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "LCTL" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "LALT" { { [ 22,18] }, { [2,1], [ 20,17] } }; shape "LMTA" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "LFSH" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "RCTL" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "RALT" { { [ 22,18] }, { [2,1], [ 20,17] } }; shape "RMTA" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "RTSH" { { [ 47,18] }, { [2,1], [ 45,17] } }; shape "SPCE" { { [123,18] }, { [2,1], [121,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } }; // Macintosh keyboards have a special sysctl key at the top right shape "AAPL" { { [ 0,0], [ 18,0], [ 18,18], [ 0,18] }, { [ 1,1], [ 17,1], [ 17,17], [ 1,17] }, { [ 8,5], [ 8,12], [ 2,9] } }; shape "LEDS" { cornerRadius = 0, { [ 55,19] } }; shape "LED" { cornerRadius = 0, { [ 8, 2] } }; solid "LedPanel" { shape= "LEDS"; top = 48; left = 378; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top = 50; indicator.shape= "LED"; indicator "NumLock" { left = 381; }; indicator "CapsLock" { left = 398; }; indicator "ScrollLock" { left = 415; }; text.top= 55; text.color= "black"; text "NumLockLabel" { left = 381; text = "Num\nLock"; }; text "CapsLockLabel" { left = 398; text = "Caps\nLock"; }; text "ScrollLockLabel" { left = 415; text = "Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top = 48; row { top= 1; keys { , { , 20 }, , , , { , 11 }, , , , { , 11 }, , , , { , 10 }, , , // This is the sysctl key on macintosh keyboards // keycode is 222 with a 4.21 kernel, which is { , "AAPL", 67 } }; }; }; // End of "Function" section section "Alpha" { top = 87; row { top= 1; keys { { , "TLDE" }, , , , , , , , , , , , , { , "BKSP" } }; }; row { top= 20; keys { { , "TAB" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top= 39; keys { { , "CAPS" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH" }, , , , , , , , , , , , { , "RTSH" } }; }; row { top= 77; keys { { , "LCTL" }, { , "LALT" }, { , "LMTA" }, { , "SPCE" }, { , "RMTA" }, { , "RALT" }, { , "RCTL" } }; }; }; // End of "Alpha" section section "Editing" { top = 87; left = 314; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top = 87; left = 380; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , }; }; row { top= 39; keys { , , , }; }; row { top= 58; keys { , , , { , "KPEN" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section }; // End of "default" geometry // This section describes the geometry of the "Apple Pro" keyboard // included with NewWorld desktop machines // // It adds four new keysyms, labeled SDDN, SDUP, SDNO, EJCT. // // 2005/10 -- Simon Vallet xkb_geometry "applepro" { description= "Apple Pro Keyboard"; width = 455; height = 150; shape.cornerRadius= 1; shape "NORM" { { [ 18, 18] }, { [2, 1], [ 16, 15] } }; shape "FUNC" { { [ 18, 21] }, { [2, 1], [ 16, 16] } }; shape "BKSP" { { [ 38, 18] }, { [2, 1], [ 36, 15] } }; shape "TAB" { { [ 29, 18] }, { [2, 1], [ 26, 15] } }; shape "LFSH" { { [ 28, 18] }, { [2, 1], [ 26, 15] } }; shape "RTSH" { { [ 47, 18] }, { [2, 1], [ 45, 15] } }; shape "RTRN" { { [0,0],[27,0],[27,37],[4,37],[4,18],[0,18] }, { [2,1],[25,1],[25,34],[6,34],[6,15],[2,15] } }; shape "CAPS" { { [ 32, 18] }, { [2, 1], [ 26, 15] } }; shape "LCTL" { { [ 28, 20] }, { [2, 1], [ 26, 17] } }; shape "RCTL" { { [ 28, 20] }, { [2, 1], [ 26, 17] } }; shape "LALT" { { [ 23, 20] }, { [2, 1], [ 21, 17] } }; shape "RALT" { { [ 23, 20] }, { [2, 1], [ 21, 17] } }; shape "LMTA" { { [ 28, 20] }, { [2, 1], [ 26, 17] } }; shape "RMTA" { { [ 28, 20] }, { [2, 1], [ 26, 17] } }; shape "SPCE" { { [121, 20] }, { [3, 1], [118, 17] } }; shape "BOTM" { { [ 18, 20] }, { [2, 1], [ 16, 17] } }; shape "KP0" { { [ 37, 20] }, { [2, 1], [ 35, 17] } }; shape "KPEN" { { [ 18, 39] }, { [2, 1], [ 16, 36] } }; section.left = 7; row.left = 1; key.gap = 1; key.shape = "NORM"; section "Function" { key.shape = "FUNC"; top = 26; row { top= 1; keys { , { , 14 }, , , , { , 14 }, , , , { , 14 }, , , , { , 11 }, , , { , 11 }, , , }; }; }; // End of "Function" section section "Alpha" { top = 48; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP" } }; }; row { top= 20; keys { { , "TAB" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top= 39; keys { { , "CAPS" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH" }, , , , , , , , , , , , { , "RTSH" } }; }; row { top= 77; keys { { , "LCTL" }, { , "LALT" }, { , "LMTA" }, { , "SPCE" }, { , "RMTA" }, { , "RALT" }, { , "RCTL" } }; }; }; // End of "Alpha" section section "Editing" { top = 48; left = 303; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; key.shape = "BOTM"; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top = 48; left = 370; row { top= 1; keys { , , , }; }; row { top= 20; keys { , , , }; }; row { top= 39; keys { , , , }; }; row { top= 58; keys { , , , { , "KPEN" } }; }; row { top= 77; keys { { , "KP0" }, { , "BOTM" } }; }; }; // End of "Keypad" section }; // End of "applepro" geometry xkb_geometry "macbook78" { description= "Apple laptop 78-key (US)"; width= 273; height= 110; shape.cornerRadius= 0; shape "ESC" { { [ 21,9] }, cornerRadius=1, { [0,1], [ 19,8] } }; shape "FUNC" { { [ 18,9] }, cornerRadius=1, { [2,1], [ 16,8] } }; shape "EJCT" { { [ 20,9] }, cornerRadius=1, { [2,1], [ 20,8] } }; shape "DEGR" { { [ 16,18] }, cornerRadius=1, { [0,2], [ 14,16] } }; shape "NORM" { { [ 18,18] }, cornerRadius=1, { [2,2], [ 16,16] } }; shape "BKSP" { { [ 25,18] }, cornerRadius=1, { [2,2], [ 25,16] } }; shape "TABK" { { [ 24,18] }, cornerRadius=1, { [0,2], [ 22,16] } }; shape "BKSL" { { [ 17,18] }, cornerRadius=1, { [2,2], [17,16] } }; shape "RTRN" { { [ 31,18] }, cornerRadius=1, { [2,2], [31,16] } }; shape "CAPS" { { [ 29,18] }, cornerRadius=1, { [0,2], [ 27,16] } }; shape "LFSH" { { [ 40,18] }, cornerRadius=1, { [0,2], [ 38,16] } }; shape "RTSH" { { [ 39,18] }, cornerRadius=1, { [2,2], [ 39,16] } }; shape "APPL" { { [ 23,18] }, cornerRadius=1, { [2,2], [ 21,16] } }; shape "SPCE" { { [ 94,18] }, cornerRadius=1, { [2,2], [ 92,16] } }; shape "ARRO" { { [ 17,9] }, cornerRadius=1, { [2,1], [ 15,8] } }; shape "LED" { cornerRadius= 1, { [ 2, 2 ] } }; indicator.onColor= "green"; indicator.offColor= "gray"; indicator.shape= "LED"; indicator "Num Lock" { top=4; left= 119; }; indicator "Caps Lock" { top=53; left= 4; }; section.left=0; row.left= 1; key.shape= "FUNC"; key.gap= 1; section "Function" { top= 0; row { top= 1; keys { {, "ESC" }, , , , , , , , , , , , , {, "EJCT" } }; }; }; // End of "Function" section key.shape= "NORM"; section "Alpha" { top= 10; row { top= 1; keys { {, "DEGR"}, , , , , , , , , , , , , { , "BKSP" } }; }; row { top= 20; keys { { , "TABK"}, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS" }, , , , , , , , , , , , { , "RTRN" } }; }; row { top= 58; keys { { , "LFSH"}, , , , , , , , , , , { , "RTSH" } }; }; row { top= 77; keys { {, "DEGR"}, , , {, "APPL"}, {, "SPCE" }, {, "APPL"}, }; }; }; // End of "Alpha" section key.shape= "ARRO"; section "Editing" { top = 86; left = 217; row { top= 1; left= 19; keys { }; }; row { top= 10; keys { , , }; }; }; // End of "Editing" section alias = ; alias = ; }; xkb_geometry "macbook79" { description= "Apple laptop 79-key (Intl)"; width= 273; height= 110; shape.cornerRadius= 0; shape "ESC" { { [ 21,9] }, cornerRadius=1, { [0,1], [ 19,8] } }; shape "FUNC" { { [ 18,9] }, cornerRadius=1, { [2,1], [ 16,8] } }; shape "EJCT" { { [ 20,9] }, cornerRadius=1, { [2,1], [ 20,8] } }; shape "DEGR" { { [ 16,18] }, cornerRadius=1, { [0,2], [ 14,16] } }; shape "NORM" { { [ 18,18] }, cornerRadius=1, { [2,2], [ 16,16] } }; shape "BKSP" { { [ 25,18] }, cornerRadius=1, { [2,2], [ 25,16] } }; shape "TABK" { { [ 24,18] }, cornerRadius=1, { [0,2], [ 22,16] } }; shape "RTRN" { { [ 0,0], [17,0], [17,37], [5,37], [5, 18], [0,18], [0,0] }, cornerRadius=1, { [ 2,2], [15,2], [15,35], [7,35], [7, 16], [2,16] } }; shape "CAPS" { { [ 29,18] }, cornerRadius=1, { [0,2], [ 27,16] } }; shape "LFSH" { { [ 21,18] }, cornerRadius=1, { [0,2], [ 19,16] } }; shape "RTSH" { { [ 39,18] }, cornerRadius=1, { [2,2], [ 39,16] } }; shape "APPL" { { [ 23,18] }, cornerRadius=1, { [2,2], [ 21,16] } }; shape "SPCE" { { [ 94,18] }, cornerRadius=1, { [2,2], [ 92,16] } }; shape "ARRO" { { [ 17,9] }, cornerRadius=1, { [2,1], [ 15,8] } }; shape "LED" { cornerRadius= 1, { [ 2, 2 ] } }; indicator.onColor= "green"; indicator.offColor= "gray"; indicator.shape= "LED"; indicator "Num Lock" { top=4; left= 119; }; indicator "Caps Lock" { top=53; left= 4; }; section.left=0; row.left= 1; key.shape= "FUNC"; key.gap= 1; section "Function" { top= 0; row { top= 1; keys { {, "ESC" }, , , , , , , , , , , , , {, "EJCT" } }; }; }; // End of "Function" section key.shape= "NORM"; section "Alpha" { top= 10; row { top= 1; keys { {, "DEGR"}, , , , , , , , , , , , , { , "BKSP" } }; }; row { top= 20; keys { { , "TABK"}, , , , , , , , , , , , , { , "RTRN" } }; }; row { top= 39; keys { { , "CAPS" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH"}, , , , , , , , , , , , { , "RTSH" } }; }; row { top= 77; keys { {, "DEGR"}, , , {, "APPL"}, {, "SPCE" }, {, "APPL"}, }; }; }; // End of "Alpha" section key.shape= "ARRO"; section "Editing" { top = 86; left = 217; row { top= 1; left= 19; keys { }; }; row { top= 10; keys { , , }; }; }; // End of "Editing" section alias = ; alias = ; }; // Aluminium Keyboard, ANSI model (United States, 109 keys) xkb_geometry "applealu_ansi" { width= 430; height= 113.5; baseColor= "white"; labelColor= "black"; xfont= "-*-helvetica-medium-r-normal--*-80-*-*-*-*-iso8859-1"; description= "Aluminium Keyboard (ANSI)"; shape "NORM" { corner= 1, { [ 15.5, 15 ] } }; shape "FUNC" { corner= 1, { [ 16.1, 9 ] } }; shape "FUNS" { corner= 1, { [ 15.5, 9 ] } }; shape "BKSP" { corner= 1, { [ 24.5, 15 ] } }; shape "TAB" { corner= 1, { [ 24.5, 15 ] } }; shape "RTRN" { corner= 1, { [ 29.5, 15 ] } }; shape "CAPS" { corner= 1, { [ 29.5, 15 ] } }; shape "LCTL" { corner= 1, { [ 25, 18 ] } }; shape "LALT" { corner= 1, { [ 20, 18 ] } }; shape "LMTA" { corner= 1, { [ 25, 18 ] } }; shape "LFSH" { corner= 1, { [ 39, 15 ] } }; shape "RCTL" { corner= 1, { [ 25, 18 ] } }; shape "RALT" { corner= 1, { [ 20, 18 ] } }; shape "RMTA" { corner= 1, { [ 25, 18 ] } }; shape "RTSH" { corner= 1, { [ 39, 15 ] } }; shape "SPCE" { corner= 1, { [ 110.5, 18 ] } }; shape "KP0" { corner= 1, { [ 34.5, 18 ] } }; shape "KPEN" { corner= 1, { [ 15.5, 36.5 ] } }; shape "KPDT" { corner= 1, { [ 15.5, 18 ] } }; shape "LED" { corner= 0.5, { [ 1.5, 1.5 ] } }; section "Function" { key.color= "white"; priority= 7; top= 4.5; left= 4.7; width= 420.5; height= 10; row { top= 0; left= 0; keys { { , "FUNC", 0 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.5 }, { , "FUNS", 11.5 }, { , "FUNS", 3.5 }, { , "FUNS", 3.5 }, { , "FUNS", 11.5 }, { , "FUNS", 3.5 }, { , "FUNS", 3.5 }, { , "FUNS", 3.5 } }; }; }; // End of "Function" section section "Alpha" { key.color= "white"; priority= 8; top= 17; left= 5; width= 271.5; height= 92; row { top= 0; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "BKSP", 3.5 } }; }; row { top= 18.5; left= 0; keys { { , "TAB", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 37; left= 0; keys { { , "CAPS", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "RTRN", 3.5 } }; }; row { top= 55.5; left= 0; keys { { , "LFSH", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "RTSH", 3.5 } }; }; row { top= 74; left= 0; keys { { , "LCTL", 0 }, { , "LALT", 3.5 }, { , "LMTA", 3.5 }, { , "SPCE", 3.5 }, { , "RMTA", 3.5 }, { , "RALT", 3.5 }, { , "RCTL", 3.5 } }; }; }; // End of "Alpha" section section "Editing" { key.color= "white"; priority= 9; top= 17; left= 287.7; width= 53.5; height= 92; row { top= 0; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 18.5; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 58.5; left= 19; keys { { , "NORM", 0 } }; }; row { top= 77; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; }; // End of "Editing" section section "Keypad" { key.color= "white"; priority= 10; top= 17; left= 352.7; width= 72.5; height= 92; row { top= 0; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 18.5; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 37; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 55.5; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "KPEN", 3.5 } }; }; row { top= 74; left= 0; keys { { , "KP0", 0 }, { , "KPDT", 3.5 } }; }; }; // End of "Keypad" section indicator "Caps Lock" { top= 56; left= 6.7; priority= 2; onColor= "green"; offColor= "gray"; shape= "LED"; }; }; // Aluminium Keyboard, ISO model (International, 110 keys) xkb_geometry "applealu_iso" { width= 430; height= 113.5; baseColor= "white"; labelColor= "black"; xfont= "-*-helvetica-medium-r-normal--*-80-*-*-*-*-iso8859-1"; description= "Aluminium Keyboard (ISO)"; shape "NORM" { corner= 1, { [ 15.5, 15 ] } }; shape "FUNC" { corner= 1, { [ 16.1, 9 ] } }; shape "FUNS" { corner= 1, { [ 15.5, 9 ] } }; shape "BKSP" { corner= 1, { [ 24.5, 15 ] } }; shape "TAB" { corner= 1, { [ 24.5, 15 ] } }; shape "RTRN" { corner= 1, { [ 0, 0 ], [ 15.5 , 0 ], [ 15.5 , 33.5 ], [ 5, 33.5 ], [ 5, 15 ], [ 0, 15 ] } }; shape "CAPS" { corner= 1, { [ 29.5, 15 ] } }; shape "LCTL" { corner= 1, { [ 25, 18 ] } }; shape "LALT" { corner= 1, { [ 20, 18 ] } }; shape "LMTA" { corner= 1, { [ 25, 18 ] } }; shape "LFSH" { corner= 1, { [ 20, 15 ] } }; shape "RCTL" { corner= 1, { [ 25, 18 ] } }; shape "RALT" { corner= 1, { [ 20, 18 ] } }; shape "RMTA" { corner= 1, { [ 25, 18 ] } }; shape "RTSH" { corner= 1, { [ 39, 15 ] } }; shape "SPCE" { corner= 1, { [ 110.5, 18 ] } }; shape "KP0" { corner= 1, { [ 34.5, 18 ] } }; shape "KPEN" { corner= 1, { [ 15.5, 36.5 ] } }; shape "KPDT" { corner= 1, { [ 15.5, 18 ] } }; shape "LED" { corner= 0.5, { [ 1.5, 1.5 ] } }; section "Function" { key.color= "white"; priority= 7; top= 4.5; left= 4.7; width= 420.5; height= 10; row { top= 0; left= 0; keys { { , "FUNC", 0 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.5 }, { , "FUNS", 11.5 }, { , "FUNS", 3.5 }, { , "FUNS", 3.5 }, { , "FUNS", 11.5 }, { , "FUNS", 3.5 }, { , "FUNS", 3.5 }, { , "FUNS", 3.5 } }; }; }; // End of "Function" section section "Alpha" { key.color= "white"; priority= 8; top= 17; left= 5; width= 271.5; height= 92; row { top= 0; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "BKSP", 3.5 } }; }; row { top= 18.5; left= 0; keys { { , "TAB", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "RTRN", 3.5 } }; }; row { top= 37; left= 0; keys { { , "CAPS", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 55.5; left= 0; keys { { , "LFSH", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "RTSH", 3.5 } }; }; row { top= 74; left= 0; keys { { , "LCTL", 0 }, { , "LALT", 3.5 }, { , "LMTA", 3.5 }, { , "SPCE", 3.5 }, { , "RMTA", 3.5 }, { , "RALT", 3.5 }, { , "RCTL", 3.5 } }; }; }; // End of "Alpha" section section "Editing" { key.color= "white"; priority= 9; top= 17; left= 287.7; width= 53.5; height= 92; row { top= 0; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 18.5; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 58.5; left= 19; keys { { , "NORM", 0 } }; }; row { top= 77; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; }; // End of "Editing" section section "Keypad" { key.color= "white"; priority= 10; top= 17; left= 352.7; width= 72.5; height= 92; row { top= 0; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 18.5; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 37; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 55.5; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "KPEN", 3.5 } }; }; row { top= 74; left= 0; keys { { , "KP0", 0 }, { , "KPDT", 3.5 } }; }; }; // End of "Keypad" section indicator "Caps Lock" { top= 56; left= 6.7; priority= 2; onColor= "green"; offColor= "gray"; shape= "LED"; }; }; // Aluminium Keyboard, JIS model (Japanese, 112 keys) xkb_geometry "applealu_jis" { width= 430; height= 113.5; baseColor= "white"; labelColor= "black"; xfont= "-*-helvetica-medium-r-normal--*-80-*-*-*-*-iso8859-1"; description= "Aluminium Keyboard (JIS)"; shape "NORM" { corner= 1, { [ 15.5, 15 ] } }; shape "FUNC" { corner= 1, { [ 16.1, 9 ] } }; shape "FUNS" { corner= 1, { [ 15.5, 9 ] } }; shape "KEY1" { corner= 1, { [ 24.5, 15 ] } }; shape "BKSP" { corner= 1, { [ 15.5, 15 ] } }; shape "TAB" { corner= 1, { [ 15.5, 15 ] } }; shape "RTRN" { corner= 1, { [ 0, 0 ], [ 24.5 , 0 ], [ 24.5 , 33.5 ], [ 4.5, 33.5 ], [ 4.5, 15 ], [ 0, 15 ] } }; shape "CAPS" { corner= 1, { [ 35, 18 ] } }; shape "LCTL" { corner= 1, { [ 20, 15 ] } }; shape "LALT" { corner= 1, { [ 27, 18 ] } }; shape "LMTA" { corner= 1, { [ 27, 18 ] } }; shape "LFSH" { corner= 1, { [ 29.5, 15 ] } }; shape "EISU" { corner= 1, { [ 20, 18 ] } }; shape "RCTL" { corner= 1, { [ 27, 18 ] } }; shape "RALT" { corner= 1, { [ 27, 18 ] } }; shape "RMTA" { corner= 1, { [ 27, 18 ] } }; shape "RTSH" { corner= 1, { [ 29.5, 15 ] } }; shape "KANA" { corner= 1, { [ 20, 18 ] } }; shape "SPCE" { corner= 1, { [ 64, 18 ] } }; shape "KPDT" { corner= 1, { [ 15.5, 18 ] } }; shape "KPEN" { corner= 1, { [ 15.5, 36.5 ] } }; shape "LED" { corner= 0.5, { [ 1.5, 1.5 ] } }; section "Function" { key.color= "white"; priority= 7; top= 4.5; left= 4.7; width= 420.5; height= 10; row { top= 0; left= 0; keys { { , "FUNC", 0 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.6 }, { , "FUNC", 3.5 }, { , "FUNC", 3.5 }, { , "FUNS", 11.5 }, { , "FUNS", 3.5 }, { , "FUNS", 3.5 }, { , "FUNS", 11.5 }, { , "FUNS", 3.5 }, { , "FUNS", 3.5 }, { , "FUNS", 3.5 } }; }; }; // End of "Function" section section "Alpha" { key.color= "white"; priority= 8; top= 17; left= 5; width= 271.5; height= 92; row { top= 0; left= 0; keys { { , "KEY1", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "BKSP", 3.5 } }; }; row { top= 18.5; left= 0; keys { { , "TAB", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "RTRN", 3.5 } }; }; row { top= 37; left= 0; keys { { , "LCTL", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 55.5; left= 0; keys { { , "LFSH", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "RTSH", 3.5 } }; }; row { top= 74; left= 0; keys { { , "LALT", 0 }, { , "LMTA", 3.5 }, { , "EISU", 3.5 }, { , "SPCE", 3.5 }, { , "KANA", 3.5 }, { , "RMTA", 3.5 }, { , "RALT", 3.5 }, { , "CAPS", 3.5 } }; }; }; // End of "Alpha" section section "Editing" { key.color= "white"; priority= 9; top= 17; left= 287.7; width= 53.5; height= 92; row { top= 0; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 18.5; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 58.5; left= 19; keys { { , "NORM", 0 } }; }; row { top= 77; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; }; // End of "Editing" section section "Keypad" { key.color= "white"; priority= 10; top= 17; left= 352.7; width= 72.5; height= 92; row { top= 0; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 18.5; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 37; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "NORM", 3.5 } }; }; row { top= 55.5; left= 0; keys { { , "NORM", 0 }, { , "NORM", 3.5 }, { , "NORM", 3.5 }, { , "KPEN", 3.5 } }; }; row { top= 74; left= 0; keys { { , "KPDT", 0 }, { , "KPDT", 3.5 }, { , "KPDT", 3.5 } }; }; }; // End of "Keypad" section indicator "Caps Lock" { top= 93; left= 273.2; priority= 2; onColor= "green"; offColor= "gray"; shape= "LED"; }; }; PK(f[~ geometry/winbooknu[default xkb_geometry "XP5" { description= "WinBook XP5"; width= 281; height= 180; shape.cornerRadius= 1; shape "NORM" { { [17,17] }, { [ 2, 1], [ 15, 15 ] } }; shape "FKEY" { { [ 15, 10 ] }, { [ 1, 0 ], [ 14, 9.5 ] } }; shape "ONE" { { [ 28, 17 ] }, { [ 11, 0 ], [ 28, 17 ] }, { [ 13, 1 ], [ 26, 15 ] } }; shape "WIDE" { // backspace, caps lock, ctrl alt ? { [ 24.5, 17 ] }, { [ 2, 1 ], [ 22.5, 15 ] } }; shape "WIDR" { // backslash, left shift { [ 35, 17 ] }, { [ 2, 1 ], [ 33, 15 ] } }; shape "RTRN" { { [ 45, 17 ] }, { [ 2, 1 ], [ 43, 15 ] } }; shape "SPCE" { { [ 90, 17 ] }, { [ 2, 1 ], [ 88, 15 ] } }; shape "STIK" { cornerRadius= 4, { [ 8, 8 ] } }; shape "BTN" { { [ 31, 6 ] } }; section.left= 2; row.left= 1; key.shape= "NORM"; key.gap= 0.5; key.color= "grey10"; labelColor= "white"; baseColor= "grey20"; section "Whole" { top= 10; row { top= 11; key.shape= "FKEY"; keys { , , , , , , , , , , , , , , , , }; }; row { top= 22; keys { { , "ONE" }, , , , , , , , , , , , { , shape="WIDE" }, }; }; row { top= 40; keys { , , , , , , , , , , , , , { , "WIDR" } }; }; row { top= 58; keys { { , shape="WIDE" }, , , , , , , , , , , , { , shape="RTRN" } }; }; row { top= 76; keys { { , shape="WIDR" }, , , , , , , , , , , , , }; }; row { top= 94; keys { { , "WIDE" }, , { , "WIDE" }, , { , shape="SPCE" }, , , , , }; }; overlay "KPAD" { =, =, =, =, =, =, =, =, =, =, =, =, =, =, = }; }; // End of "Whole" section solid "STIK" { color= "red"; shape= "STIK"; top= 81; left= 112; }; solid "BTN1" { color= "red"; shape= "BTN"; top= 137; left= 93; }; solid "BTN2" { color= "red"; shape= "BTN"; top= 137; left= 127; }; alias = ; alias = ; }; PK(f[rUpp geometry/pcnu[// //Copyright 1996, 1998 The Open Group // //Permission to use, copy, modify, distribute, and sell this software and its //documentation for any purpose is hereby granted without fee, provided that //the above copyright notice appear in all copies and that both that //copyright notice and this permission notice appear in supporting //documentation. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // default xkb_geometry "pc101" { description= "Generic 101"; width= 470; height= 180; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; shape "SPCE" { { [133,18] }, { [2,1], [131,16] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 22; left= 377; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 37; indicator.shape= "LED"; indicator "Num Lock" { left= 382; }; indicator "Caps Lock" { left= 407; }; indicator "Scroll Lock" { left= 433; }; text.top= 25; text.color= "black"; text "NumLockLabel" { left= 378; text="Num\nLock"; }; text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 22; row { top= 1; keys { { , color="grey20" }, { , 20 }, , , , { , 11 }, , , , { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 21 }, { , "SPCE", color="white" }, , { , 21 } }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "default" geometry xkb_geometry "pc102" { description= "Generic 102"; width= 470; height= 180; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "RTRN" { { [0,0], [28,0], [28,37], [5,37], [5,18], [0,18] }, { [2,1], [26,1], [26,35], [7,35], [7,16], [2,16] } }; shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; shape "LFSH" { { [ 25,18] }, { [2,1], [ 23,16] } }; shape "RTSH" { { [ 50,18] }, { [2,1], [ 48,16] } }; shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; shape "SPCE" { { [134,18] }, { [2,1], [132,16] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 22; left= 377; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 37; indicator.shape= "LED"; indicator "Num Lock" { left= 382; }; indicator "Caps Lock" { left= 407; }; indicator "Scroll Lock" { left= 433; }; text.top= 25; text.color= "black"; text "NumLockLabel" { left= 378; text="Num\nLock"; }; text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 22; row { top= 1; keys { { , "TABK", color="grey20" }, { , 10 }, , , , { , 11 }, , , , { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 20 }, { , "SPCE", color="white" }, , { , 21 } }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "pc102" geometry xkb_geometry "pc104" { description= "Generic 104"; width= 470; height= 180; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; shape "SPCE" { { [113,18] }, { [2,1], [111,16] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 22; left= 377; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 37; indicator.shape= "LED"; indicator "Num Lock" { left= 382; }; indicator "Caps Lock" { left= 407; }; indicator "Scroll Lock" { left= 433; }; text.top= 25; text.color= "black"; text "NumLockLabel" { left= 378; text="Num\nLock"; }; text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 22; row { top= 1; keys { { , color="grey20" }, { , 20 }, , , , { , 11 }, , , , { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "SMOD"; key.color= "grey20"; keys { { , "MODK" }, , , { , "SPCE", color="white" }, , , , }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "pc104" geometry xkb_geometry "pc105" { description= "Generic 105"; width= 470; height= 180; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "RTRN" { { [0,0], [28,0], [28,37], [5,37], [5,18], [0,18] } , { [2,1], [26,1], [26,35], [7,35], [7,16], [2,16] } , approx = { [5,0], [28,37] } }; shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; shape "LFSH" { { [ 25,18] }, { [2,1], [ 23,16] } }; shape "RTSH" { { [ 50,18] }, { [2,1], [ 48,16] } }; shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; shape "SPCE" { { [113,18] }, { [2,1], [111,16] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 22; left= 377; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 37; indicator.shape= "LED"; indicator "Num Lock" { left= 382; }; indicator "Caps Lock" { left= 407; }; indicator "Scroll Lock" { left= 433; }; text.top= 25; text.color= "black"; text "NumLockLabel" { left= 378; text="Num\nLock"; }; text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 22; row { top= 1; keys { { , color="grey20" }, { , 20 }, , , , { , 11 }, , , , { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "SMOD"; key.color= "grey20"; keys { { , "MODK" }, , , { , "SPCE", color="white" }, , , , }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "pc105" geometry // Added for Japanese 106 keyboard by . xkb_geometry "jp106" { description= "Japanese 106"; width= 470; height= 180; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "BKSP" { { [ 18,18] }, { [2,1], [ 16,17] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "BKSL" { { [ 27,18] }, { [2,1], [ 25,17] } }; shape "RTRN" { { [0,0],[ 27,0],[27,37],[4,37],[4,18],[0,18] } , { [2,1],[ 25,1],[25,36],[5,36],[5,17],[2,17] } }; shape "CAPS" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,17] } }; shape "RTSH" { { [ 32,18] }, { [2,1], [ 30,17] } }; shape "MODK" { { [ 28,18] }, { [2,1], [ 26,17] } }; shape "SPCE" { { [ 46,18] }, { [2,1], [ 44,17] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,17] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,36] } }; shape "LEDS" { cornerRadius= 0, { [ 76 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 25; left= 375; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 40; indicator.shape= "LED"; indicator "Num Lock" { left= 379; }; indicator "Caps Lock" { left= 404; }; indicator "Scroll Lock" { left= 429; }; text.top= 28; text.color= "black"; text "NumLockLabel" { left= 378; text="Num\nLock"; }; text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 25; row { top= 1; keys { { , color="grey20" }, { , 18 }, , , , { , 11 ,color="grey20"}, {,color="grey20"}, { , color="grey20"}, {,color="grey20"}, { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { {,color="grey20"}, , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , 1 ,"RTRN",color="grey20" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "MODK"; key.color= "grey20"; keys { , { , 20 },, { , "SPCE", color="white" }, ,,, { , 17 } }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 310; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 375; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "jp106" geometry // Added for Brazilian ABNT2 by Ricardo Y. Igarashi . xkb_geometry "abnt2" { include "pc(pc105)" description= "Brazilian ABNT2"; shape "RTRN" { { [0,0],[ 28,0],[28,37],[4,37],[4,18],[0,18] } , { [2,1],[ 26,1],[26,36],[5,36],[5,18],[2,18] } }; shape "RTSH" { { [ 31,18] }, { [2,1], [ 29,16] } }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Alpha" { top= 61; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , , , { , "RTSH", color="grey20" } }; }; }; // End of "Alpha" section section "Keypad" { top= 61; left= 376; row { top= 20; keys { , , , { , color="grey20" } }; }; row { top= 39; keys { , , , { , color="grey20" } }; }; }; // End of "Keypad" section }; // End of "abnt2" geometry // Created by Alexander Pohoyda xkb_geometry "pc86" { description = "Noname keyboard with 86 keys, DE"; width = 287; height = 143; baseColor = "grey20"; shape "EDGE" { cornerRadius = 2, { [287, 143] } }; shape "LED" { cornerRadius = 2, { [3, 3] } }; shape "LEDS" { cornerRadius = 0, { [75, 5] } }; shape "KEYS" { cornerRadius = 0, { [271, 109] } }; outline "Edges" { top = 0; left = 0; shape = "EDGE"; color = "black"; }; solid "KeyPanel" { shape = "KEYS"; left = 8; top = 22; color = "grey70"; }; solid "LedPanel" { shape = "LEDS"; left = 212; top = 10; color = "black"; }; indicator.onColor = "green"; indicator.offColor = "green30"; indicator.top = 11; indicator.shape = "LED"; indicator "Num Lock" { left = 212 + 7; }; indicator "Caps Lock" { left = 212 + 23; }; indicator "Scroll Lock" { left = 212 + 39; }; text.fontSize = 6; text.top = 10; text.color = "white"; text "NumLockLabel" { left = 212 + 7 + 5; text = "Num\nLock"; }; text "CapsLockLabel" { left = 212 + 23 + 5; text = "Caps\nLock"; }; text "ScrollLockLabel" { left = 212 + 39 + 5; text = "Scroll\nLock"; }; shape.cornerRadius = 1; shape "SMALL" { { [15, 12] }, { [1.5, 0], [13.5, 10] } }; shape "NARR" { { [13, 18] }, { [1.5, 0], [11.5, 14] } }; shape "NORM" { { [18, 18] }, { [3, 0], [15, 14] } }; shape "NORM_1" { { [22, 18] }, { [4, 0], [22, 18] }, { [7, 0], [19, 14] } }; shape "WIDER" { { [23, 18] }, { [3, 0], [20, 14] } }; shape "WIDEST" { { [27, 18] }, { [3, 0], [24, 14] } }; shape "SPCE" { { [75, 18] }, { [3, 0], [72, 14] } }; section "Function" { key.shape = "SMALL"; key.gap = 0.99; key.color = "grey30"; left = 8; top = 22; row { top = 1; keys { , , , , , , , , , , , , , , , , }; }; }; // End of "Function" section section "Control" { key.shape = "NORM"; key.gap = 1; key.color = "grey30"; left = 8; top = 111; row { top = 1; keys { , , , { , shape="SPCE", 39 }, , , }; }; }; // End of "Control" section section "Editing" { key.shape = "NARR"; key.gap = 1; key.color = "grey30"; left = 265; top = 34; row.vertical = True; row { top = 1; keys { , , , }; }; }; // End of "Editing" section section "Navigation" { key.gap = 1; key.shape = "NARR"; key.color = "grey30"; left = 236; top = 92; row { left = 14; top = 1; keys { }; }; row { top = 20; keys { , , }; }; }; // End of "Navigation" section section "Alpha" { key.gap = 1; key.shape = "NORM"; key.color = "grey10"; left = 8; top = 35; row { top = 1; keys { { , shape="NORM_1" }, , , , , , , , , , , , { , shape="WIDER", color="grey30" } }; }; row { top = 20; keys { { , shape="NARR", color="grey30" }, , , , , , , , , , , , , { , shape="NARR" } }; }; row { top = 39; keys { { , color="grey30" }, , , , , , , , , , , , { , shape="WIDEST", color="grey30" } }; }; row { top = 58; keys { { , shape="WIDEST", color="grey30" }, , , , , , , , , , , { , shape="WIDER", color="grey30" } }; }; row { left = 57; top = 77; keys { , }; }; }; // End of "Alpha" section alias = ; alias = ; }; // End of "pc86" geometry xkb_geometry "kr106" { description= "Korean 106"; width= 470; height= 180; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "BKSP" { { [ 38,18] }, { [2,1], [ 36,16] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "BKSL" { { [ 28,18] }, { [2,1], [ 26,16] } }; shape "RTRN" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; shape "SPCE" { { [ 75,18] }, { [2,1], [ 73,16] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 22; left= 377; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 37; indicator.shape= "LED"; indicator "Num Lock" { left= 382; }; indicator "Caps Lock" { left= 407; }; indicator "Scroll Lock" { left= 433; }; text.top= 25; text.color= "black"; text "NumLockLabel" { left= 378; text="Num\nLock"; }; text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 22; row { top= 1; keys { { , color="grey20" }, { , 20 }, , , , { , 11 }, , , , { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 61; row { top= 1; keys { , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , , { , "RTRN", color="grey20" } }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "SMOD"; key.color= "grey20"; keys { { , "MODK" }, , , { , "NORM", color="white" }, { , "SPCE", color="white" }, { , "NORM", color="white" }, , , , }; }; }; // End of "Alpha" section section "Editing" { top= 61; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 61; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "kr106" geometry // Based on the pc(pc105) layout. The keypad, sysreq/ScrLk/Break, and multimedia // keys are not shown because they are shared with other keys via the key. // This should not be a problem if the normal symbols are used, as the keys will // show through normally, they just won't show from xkbprint. For the record, // + = AudioRaise, // + = AudioLower, // + = AudioMute, // + = Sysreq, // + = ScrollLock, // + = , // +7 = KP_7, // +8 = KP_8, // +9 = KP_9, // +0 = KP_MUL, // +U = KP_4, // +I = KP_5, // +O = KP_6, // +P = KP_SUB, // +J = KP_1, // +K = KP_2, // +L = KP_3, // +; = KP_ADD, // +M = KP_INS, // +. = KP_DEL, // +/ = KP_DIV. // The other FN combinations aren't passed to X, but are handled by BIOS. // and all keys with level mappings are marked in grey20. // // David Cameron Staples 2006-05-12 xkb_geometry "latitude" { description= "Dell Latitude"; width= 330; height= 210; shape.cornerRadius= 1; shape "NORM" { { [ 18 ,18] }, { [2,1 ], [ 16,16] } }; shape "FUNC" { { [ 16.2,12] }, { [2,0.5], [ 14,10] } }; shape "ESC" { { [ 18 ,12] }, { [2,0.5], [ 16,10] } }; shape "BKSP" { { [ 38 ,18] }, { [2,1 ], [ 36,16] } }; shape "TABK" { { [ 28 ,18] }, { [2,1 ], [ 26,16] } }; shape "BKSL" { { [ 28 ,18] }, { [2,1 ], [ 26,16] } }; shape "RTRN" { { [ 42 ,18] }, { [2,1 ], [ 40,16] } }; shape "CAPS" { { [ 33 ,18] }, { [2,1 ], [ 26,16] } }; shape "LFSH" { { [ 42 ,18] }, { [2,1 ], [ 40,16] } }; shape "RTSH" { { [ 52 ,18] }, { [2,1 ], [ 50,16] } }; shape "SPCE" { { [ 95 ,18] }, { [2,1 ], [ 93,16] } }; shape "LCTL" { { [ 28 ,14] }, { [2,1 ], [ 26,12] } }; shape "LALT" { { [ 22 ,14] }, { [2,1 ], [ 20,12] } }; shape "WIN" { { [ 18 ,14] }, { [2,1 ], [ 16,12] } }; shape "LED" { cornerRadius= 0.5, { [ 1, 3 ] } }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 37; indicator.shape= "LED"; indicator "Num Lock" { left= 138; }; indicator "Caps Lock" { left= 150; }; indicator "Scroll Lock" { left= 162; }; text.top= 33; text.color= "black"; text "NumLockLabel" { left= 140; text="Num\nLock"; }; text "CapsLockLabel" { left= 152; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 164; text="Scroll\nLock"; }; text "LATITUDE" { left= 19; text="L A T I T U D E"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 32; key.shape= "FUNC"; key.color= "grey20"; row { top= 1; left= 163.8; keys { { , color="white" }, , , , { , 3, color="white" }, { , color="white"}, }; }; row { top= 14; keys { { , "ESC" }, { , 3 }, { , color="white" }, , { , color="white" }, { , 3 }, { , color="white" }, , , { , 3, color="white" }, , { , color="white" }, { , color="white" }, { , 3, color="white" }, , }; }; }; // End of "Function" section section "Alpha" { top= 60; row { top= 1; keys { , , , , , , , { , color="grey20" }, { , color="grey20" }, { , color="grey20" }, { , color="grey20" }, , , { , "BKSP" } }; }; row { top= 20; keys { { , "TABK" }, , , , , , , { , color="grey20" }, { , color="grey20" }, { , color="grey20" }, { , color="grey20" }, , , { , "BKSL" } }; }; row { top= 39; keys { { , "CAPS" }, , , , , , , { , color="grey20" }, { , color="grey20" }, { , color="grey20" }, { , color="grey20" }, , { , "RTRN" } }; }; row { top= 58; keys { { , "LFSH" }, , , , , , , { , color="grey20" }, , { , color="grey20" }, { , color="grey20" }, { , "RTSH" } }; }; row { top= 77; key.shape= "WIN"; keys { { , "LCTL" }, { , color="grey20" }, , { , "LALT" }, { , "SPCE" }, , { , "LALT" } }; }; }; // End of "Alpha" section section "Editing" { top= 136; left= 250; key.shape= "FUNC"; key.color= "grey20"; row { top= 1; left= 18.2; keys { }; }; row { top= 14; keys { , , }; }; }; // End of "Editing" section alias = ; alias = ; }; // End of "latitude" geometry xkb_geometry "pc104alt" { description= "Generic 104 with L-shaped Enter and small Backspace with Backslash left to it"; width= 470; height= 210; shape.cornerRadius= 1; shape "NORM" { { [ 18,18] }, { [2,1], [ 16,16] } }; shape "BKSP" { { [ 19,18] }, { [2,1], [ 17,16] } }; shape "TABK" { { [ 28,18] }, { [2,1], [ 26,16] } }; // shape "RTRN" { { [ 0,19 ], [ 0,37 ], [ 42,37 ], [ 42,0 ], [ 14,0 ], [ 14,19 ] }, // { [ 2,20 ], [ 2,35 ], [ 40,35 ], [ 40,1 ], [ 16,1 ], [ 16,20 ] }, // approx = { [ 17,21 ], [ 39,34 ] } // }; shape "RTRN" { { [ -14,19 ], [ -14,37 ], [ 28,37 ], [ 28,0 ], [ 0,0 ], [ 0,19 ] }, { [ -12,20 ], [ -12,35 ], [ 26,35 ], [ 26,1 ], [ 2,1 ], [ 2,20 ] }, approx = { [ 3,21 ], [ 25,34 ] } }; shape "CAPS" { { [ 33,18] }, { [2,1], [ 31,16] } }; shape "LFSH" { { [ 42,18] }, { [2,1], [ 40,16] } }; shape "RTSH" { { [ 52,18] }, { [2,1], [ 50,16] } }; shape "MODK" { { [ 27,18] }, { [2,1], [ 25,16] } }; shape "SMOD" { { [ 23,18] }, { [2,1], [ 21,16] } }; shape "SPCE" { { [113,18] }, { [2,1], [111,16] } }; shape "KP0" { { [ 37,18] }, { [2,1], [ 35,16] } }; shape "KPAD" { { [ 18,37] }, { [2,1], [ 16,35] } }; shape "LEDS" { cornerRadius= 0, { [ 75 ,20 ] } }; shape "LED" { cornerRadius= 0, { [ 5, 1 ] } }; solid "LedPanel" { shape= "LEDS"; top= 52; left= 377; color= "grey10"; }; indicator.onColor= "green"; indicator.offColor= "green30"; indicator.top= 67; indicator.shape= "LED"; indicator "Num Lock" { left= 382; }; indicator "Caps Lock" { left= 407; }; indicator "Scroll Lock" { left= 433; }; text.top= 55; text.color= "black"; text "NumLockLabel" { left= 378; text="Num\nLock"; }; text "CapsLockLabel" { left= 403; text="Caps\nLock"; }; text "ScrollLockLabel" { left= 428; text="Scroll\nLock"; }; section.left= 19; row.left= 1; key.shape= "NORM"; key.gap= 1; section "Function" { top= 52; row { top= 1; keys { { , color="grey20" }, { , 20 }, , , , { , 11 }, , , , { , 11 }, , , , { , 8 }, , }; }; }; // End of "Function" section section "Alpha" { top= 91; row { top= 1; keys { , , , , , , , , , , , , , , { , "BKSP", color="grey20" } }; }; row { top= 20; keys { { , "TABK", color="grey20" }, , , , , , , , , , , // , , { , -13, "RTRN", color="grey20" } , , { , "RTRN", color="grey20" } }; }; row { top= 39; keys { { , "CAPS", color="grey20" }, , , , , , , , , , , }; }; row { top= 58; keys { { , "LFSH", color="grey20" }, , , , , , , , , , , { , "RTSH", color="grey20" } }; }; row { top= 77; key.shape= "SMOD"; key.color= "grey20"; keys { { , "MODK" }, , , { , "SPCE", color="white" }, , , , }; }; }; // End of "Alpha" section section "Editing" { top= 91; left= 312; key.color= "grey20"; row { top= 1; keys { , , }; }; row { top= 20; keys { , , }; }; row { top= 58; left= 20; keys { }; }; row { top= 77; keys { , , }; }; }; // End of "Editing" section section "Keypad" { top= 91; left= 376; row { top= 1; key.color= "grey20"; keys { , , , }; }; row { top= 20; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 39; keys { , , }; }; row { top= 58; keys { , , , { , "KPAD", color="grey20" } }; }; row { top= 77; keys { { , "KP0" }, }; }; }; // End of "Keypad" section alias = ; alias = ; }; // End of "pc104alt" geometry PK(f[dԜPPgeometry/digital_vndr/lknu[// //Copyright (c) 1996 Digital Equipment Corporation // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be included //in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, //DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR //THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the Digital Equipment //Corporation shall not be used in advertising or otherwise to promote //the sale, use or other dealings in this Software without prior written //authorization from Digital Equipment Corporation. // // HISTORY // Log: lk,v // Revision 1.2 1996/06/18 09:12:47 erik // use flags correctly, assorted cleanups and consortium fixes // // Revision 1.1.6.2 1995/08/18 21:15:16 William_Walker // Upgrade XKB to Protocol Rev. 0.64 // [1995/08/18 20:41:46 William_Walker] // // Revision 1.1.2.5 1995/08/11 19:35:47 William_Walker // Sync up with Erik's pool. // [1995/08/11 18:35:58 William_Walker] // // Revision 1.1.2.4 1995/06/27 12:17:28 William_Walker // Rename to ISO9995 compliant . // [1995/06/26 20:23:07 William_Walker] // // Revision 1.1.2.3 1995/06/09 20:54:36 William_Walker // Add VT105 layout support and ISO group support // [1995/06/09 20:40:38 William_Walker] // // Revision 1.1.2.2 1995/06/05 19:21:16 William_Walker // New file. I love keymaps. // [1995/06/05 18:05:43 William_Walker] // // EndLog // // @(#)RCSfile: lk,v Revision: 1.2 (DEC) Date: 1996/01/24 12:16:00 // xkb_geometry "lk201" { width = 530; height = 170; shape.cornerRadius = 1; shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; shape "RTRN" { approx = { [0,0],[23,19] }, { [0,0], [23,0], [23,39], [5,39], [5,19], [0,19] }, { [3,2], [20,2], [20,36], [8,36], [8,16], [3,16] } }; shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; shape "MED" { { [28,19] }, { [3,2], [25,16] } }; shape "CAPS" { { [28,19] }, { [3,2], [18,16] } }; shape "SPCE" { { [171,19] },{ [3,2], [168,16]} }; shape "LEDS" { [ 30,15] }; shape "LED" { [ 5, 2] }; section.left= 27; row.left = 1; key.shape = "NORM"; key.gap = 1; section "Function" { top = 20; row { top = 1; keys { , , , , , { , 19 }, , , , , { , 19 }, , , , { , 98 }, , , }; }; }; section "Editing" { top = 20; left = 350; row { top = 1; keys { , { , "LONG" } }; }; row { top = 41; keys { , , }; }; row { top = 61; keys { , , }; }; row { top = 81; left = 20; keys { }; }; row { top = 101; keys { , , }; }; }; section "Keypad" { top = 60; left = 426; row { top = 1; keys { , , , }; }; row { top = 21; keys { , , , }; }; row { top = 41; keys { , , , }; }; row { top = 61; keys { , , , { , "TALL" } }; }; row { top = 81; keys { { , "LONG" }, }; }; }; section "Alpha" { top = 60; row { top = 1; left = 15; keys { , , , , , , , , , , , , , { , "MED" } }; }; row { top = 21; left = 15; keys { { , "MED" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 41; keys { , { , "CAPS" }, , , , , , , , , , , , }; }; row { top = 61; keys { { , "LONG" }, , , , , , , , , , , , { , "LONG" } }; }; row { top = 81; left = 26; keys { { , "LONG" }, { , "SPCE" } }; }; }; section.left = 341; section.top = 3; section "Indicators" { indicator.onColor = "#00ff00"; indicator.offColor= "#001000"; indicator.top = 10; indicator.shape= "LED"; indicator "Scroll Lock" { left = 9; }; indicator "Caps Lock" { left = 27; }; indicator "Compose" { left = 45; }; indicator "Wait" { left = 63; }; text.top = 4; text.color = "black"; text "HoldScreenLabel" {left = 5; text="Hold\n"; }; text "CapsLockLabel" {left = 23; text="Lock\n"; }; text "ComposeLabel" {left = 37; text="Compose\n"; }; text "WaitLabel" {left = 60; text="Wait\n"; }; }; }; xkb_geometry "lk401" { width = 480; height = 180; shape.cornerRadius = 1; shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; shape "RTRN" { approx = { [0,0],[23,19] }, { [0,0], [23,0], [23,39], [5,39], [5,19], [0,19] }, { [3,2], [20,2], [20,36], [8,36], [8,16], [3,16] } }; shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; shape "MED" { { [28,19] }, { [3,2], [25,16] } }; shape "CAPS" { { [28,19] }, { [3,2], [18,16] } }; shape "SPCE" { { [131,19] },{ [3,2], [128,16]} }; shape "LEDS" { [ 36,15] }; shape "LED" { [ 5, 2] }; section.left= 17; row.left = 1; key.shape = "NORM"; key.gap = 1; text "Logo" {left = 20; top = 10; text="digital\n"; }; section "Function" { top = 20; row { top = 1; keys { , , , , , { , 15 }, , , , , { , 15 }, , , , { , 75 }, , , }; }; }; section "Editing" { top = 20; left = 320; row { top = 1; keys { , { , "LONG" } }; }; row { top = 41; keys { , , }; }; row { top = 61; keys { , , }; }; row { top = 81; left= 20; keys { }; }; row { top = 101; keys { , , }; }; }; section "Keypad" { top = 60; left = 385; row { top = 1; keys { , , , }; }; row { top = 21; keys { , , , }; }; row { top = 41; keys { , , , }; }; row { top = 61; keys { , , , { , "TALL" } }; }; row { top = 81; keys { { , "LONG" }, }; }; }; section "Alpha" { top = 60; row { top = 1; left = 15; keys { , , , , , , , , , , , , , { , "MED" } }; }; row { top = 21; left = 15; keys { { , "MED" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 41; keys { , { , "CAPS" }, , , , , , , , , , , , }; }; row { top = 61; keys { { , "LONG" }, , , , , , , , , , , , { , "LONG" } }; }; row { top = 81; left = 29; keys { { , "MED" }, { , "MED" }, { , "SPCE" }, { , "MED" }, { , "MED" } }; }; }; section.left = 69; section.top = 3; section "Indicators" { solid "led_panel" { top = 0; left = 0; cornerRadius = 1; shape = "LEDS"; color = "grey"; }; indicator.onColor = "#00ff00"; indicator.offColor= "#001000"; indicator.shape = "LED"; indicator.top = 1; indicator "Scroll Lock" { left = 3; }; indicator "Caps Lock" { left = 22; }; }; section "IndicatorLabels" { text.top = 4; text.color = "black"; text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; text "CapsLockLabel" {left = 22; text="Caps\nLock"; }; }; }; xkb_geometry "lk450" { width = 480; height = 180; shape.cornerRadius = 1; shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; shape "RTRN" { approx = { [0,0],[23,19] }, { [0,0], [23,0], [23,39], [5,39], [5,19], [0,19] }, { [3,2], [20,2], [20,36], [8,36], [8,16], [3,16] } }; shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; shape "MED" { { [28,19] }, { [3,2], [25,16] } }; shape "CAPS" { { [28,19] }, { [3,2], [18,16] } }; shape "SPCE" { { [131,19] },{ [3,2], [128,16]} }; shape "LEDS" { [ 36,15] }; shape "LED" { [ 5, 2] }; section.left= 17; row.left = 1; key.shape = "NORM"; key.gap = 1; text "Logo" {left = 20; top = 10; text="digital\n"; }; section "Function" { top = 20; row { top = 1; keys { , , , , , { , 15 }, , , , , { , 15 }, , , , { , 75 }, , , }; }; }; section "Editing" { top = 20; left = 320; row { top = 1; keys { , { , "LONG" } }; }; row { top = 41; keys { , , }; }; row { top = 61; keys { , , }; }; row { top = 81; left= 20; keys { }; }; row { top = 101; keys { , , }; }; }; section "Keypad" { top = 60; left = 385; row { top = 1; keys { , , , }; }; row { top = 21; keys { , , , }; }; row { top = 41; keys { , , , }; }; row { top = 61; keys { , , , { , "TALL" } }; }; row { top = 81; keys { { , "LONG" }, }; }; }; section "Alpha" { top = 60; row { top = 1; left = 15; keys { , , , , , , , , , , , , , { , "MED" } }; }; row { top = 21; left = 15; keys { { , "MED" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 41; keys { , { , "CAPS" }, , , , , , , , , , , , }; }; row { top = 61; keys { { , "LONG" }, , , , , , , , , , , , { , "LONG" } }; }; row { top = 81; left = 29; keys { { , "MED" }, { , "MED" }, { , "SPCE" }, { , "MED" }, { , "MED" } }; }; }; section.left = 69; section.top = 3; section "Indicators" { solid "led_panel" { top = 0; left = 0; cornerRadius = 1; shape = "LEDS"; color = "grey"; }; indicator.onColor = "#00ff00"; indicator.offColor= "#001000"; indicator.shape = "LED"; indicator.top = 1; indicator "Scroll Lock" { left = 3; }; indicator "Caps Lock" { left = 22; }; }; section "IndicatorLabels" { text.top = 4; text.color = "black"; text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; text "CapsLockLabel" {left = 22; text="Caps\nLock"; }; }; }; xkb_geometry "lk401bj" { width = 480; height = 180; shape.cornerRadius = 1; shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; shape "RTRN" { approx = { [0,0],[23,19] }, { [0,0], [23,0], [23,39], [5,39], [5,19], [0,19] }, { [3,2], [20,2], [20,36], [8,36], [8,16], [3,16] } }; shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; shape "MED" { { [28,19] }, { [3,2], [25,16] } }; shape "CAPS" { { [28,19] }, { [3,2], [18,16] } }; shape "SPCE" { { [131,19] },{ [3,2], [128,16]} }; shape "LEDS" { [ 30,15] }; shape "LED" { [ 5, 2] }; section.left= 17; row.left = 1; key.shape = "NORM"; key.gap = 1; text "Logo" {left = 20; top = 10; text="digital\n"; }; section "Function" { top = 20; row { top = 1; keys { , , , , , { , 15 }, , , , , { , 15 }, , , , { , 75 }, , , }; }; }; section "Editing" { top = 20; left = 320; row { top = 1; keys { , { , "LONG" } }; }; row { top = 41; keys { , , }; }; row { top = 61; keys { , , }; }; row { top = 81; left = 20; keys { }; }; row { top = 101; keys { , , }; }; }; section "Keypad" { top = 60; left = 385; row { top = 1; keys { , , , }; }; row { top = 21; keys { , , , }; }; row { top = 41; keys { , , , }; }; row { top = 61; keys { , , , { , "TALL" } }; }; row { top = 81; keys { { , "LONG" }, }; }; }; section "Alpha" { top = 60; row { top = 1; left = 15; keys { , , , , , , , , , , , , , { , "MED" } }; }; row { top = 21; left = 15; keys { { , "MED" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 41; keys { , { , "CAPS" }, , , , , , , , , , , , }; }; row { top = 61; keys { { , "LONG" }, , , , , , , , , , , , { , "LONG" } }; }; row { top = 81; left = 29; keys { { , "MED" }, { , "MED" }, { , "SPCE" }, { , "MED" }, { , "MED" } }; }; }; section.left = 69; section.top = 3; section "Indicators" { solid "led_panel" { top = 0; left = 0; cornerRadius = 1; shape = "LEDS"; color = "grey"; }; indicator.onColor = "#00ff00"; indicator.offColor= "#001000"; indicator.top = 1; indicator.shape= "LED"; indicator "Scroll Lock" { left = 3; }; indicator "Caps Lock" { left = 22; }; text.top = 4; text.color = "black"; text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; text "CapsLockLabel" {left = 19; text="Caps\nLock"; }; }; }; xkb_geometry "lk401jj" { width = 460; height = 180; shape.cornerRadius = 1; shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; shape "RTRN" { approx = { [0,0],[28,23] }, { [0,0], [28,0], [28,39], [5,39], [5,19], [0,19] }, { [3,2], [25,2], [25,36], [8,36], [8,16], [3,16] } }; shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; shape "LONG1" { { [32,19] }, { [3,2], [29,16] } }; shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; shape "MED" { { [28,19] }, { [3,2], [25,16] } }; shape "MED1" { { [23,19] }, { [3,2], [20,16] } }; shape "CTRL" { { [43,19] }, { [3,2], [38,16] } }; shape "SPCE" { { [55,19] },{ [3,2], [53,16]} }; shape "LEDS" { [ 56,15] }; shape "LED" { [ 5, 2] }; section.left = 5; row.left = 1; key.shape = "NORM"; key.gap = 1; text "Logo" {left = 7; top = 10; text="digital\n"; }; section "Function" { top = 40; row { top = 1; keys { , , , , , { , 18 }, , , , , { , 18 }, , , , { , 73 }, , , }; }; }; section "Editing" { top = 40; left = 313; row { top = 1; keys { , { , "LONG" } }; }; row { top = 31; keys { , , }; }; row { top = 51; keys { , , }; }; row { top = 71; left= 20; keys { }; }; row { top = 91; keys { , , }; }; }; section "Keypad" { top = 70; left = 377; row { top = 1; keys { , , , }; }; row { top = 21; keys { , , , }; }; row { top = 41; keys { , , , }; }; row { top = 61; keys { , , , { , "TALL" } }; }; row { top = 81; keys { { , "LONG" }, }; }; }; section "Alpha" { top = 70; row { top = 1; left = 7; keys { { , "MED1" }, , , , , , , , , , , , , , { , "MED1" } }; }; row { top = 21; left = 7; keys { { , "LONG1" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 41; keys { { , "CTRL" }, , , , , , , , , , , , }; }; row { top = 61; keys { , { , "LONG1" }, , , , , , , , , , , , { , "MED" } }; }; row { top = 81; left = 7; keys { { , "LONG" }, { , "LONG" }, { , "LONG" }, { , "SPCE" }, { , "LONG" }, { , "LONG" }, , }; }; }; section.left = 315; section.top = 20; section "Indicators" { solid "led_panel" { top = 0; left = 0; cornerRadius = 1; shape = "LEDS"; color = "grey"; }; indicator.onColor = "#00ff00"; indicator.offColor= "#001000"; indicator.top = 11; indicator.shape= "LED"; indicator "Scroll Lock" { left = 6; }; indicator "Caps Lock" { left = 26; }; text.top = 4; text.color = "black"; text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; text "CapsLockLabel" {left = 22; text="Caps\nLock"; }; }; }; PK(f[ӓFgeometry/digital_vndr/unixnu[// //Copyright (c) 1996 Digital Equipment Corporation // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be included //in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, //DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR //THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the Digital Equipment //Corporation shall not be used in advertising or otherwise to promote //the sale, use or other dealings in this Software without prior written //authorization from Digital Equipment Corporation. // // HISTORY // Log: unix,v // Revision 1.2 1996/06/18 09:12:53 erik // use flags correctly, assorted cleanups and consortium fixes // // Revision 1.1.2.3 1995/06/27 12:17:30 William_Walker // Rename to ISO9995 compliant . // [1995/06/26 20:23:12 William_Walker] // // Revision 1.1.2.2 1995/06/05 19:21:23 William_Walker // New file. I love keymaps. // [1995/06/05 18:05:56 William_Walker] // // EndLog // // @(#)RCSfile: unix,v Revision: 1.2 (DEC) Date: 1996/01/24 12:16: // xkb_geometry "unix" { width = 340; height = 160; shape.cornerRadius = 1; shape "NORM" { primary = { [18,19] }, { [3,2], [15,16] } }; shape "AE00" { primary = { [28,19] }, { [3,2], [25,16] } }; shape "BKSP" { primary = { [46,19] }, { [3,2], [43,16] } }; shape "TABK" { primary = { [37,19] }, { [3,2], [34,16] } }; shape "CTRL" { primary = { [46,19] }, { [3,2], [43,16] } }; shape "RTRN" { primary = { [46,19] }, { [3,2], [43,16] } }; shape "SHFT" { primary = { [56,19] }, { [3,2], [53,16] } }; shape "MODK" { primary = { [37,19] }, { [3,2], [34,16] } }; shape "SPCE" { primary = { [132,19] },{ [3,2], [129,16]} }; section.left= 17; row.left = 1; key.shape = "NORM"; key.gap = 1; text.color = "black"; text "Logo" {left = 20; top = 10; text="digital\n"; }; section "Function" { top = 30; row { top = 1; keys { , , , , , { , 20 }, , , , , { , 20 }, , , }; }; }; section "Alpha" { top = 50; row { top = 1; keys { { , "AE00" }, , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 21; keys { { , "TABK" }, , , , , , , , , , , , , , }; }; row { top = 41; left = -4; keys { { , "CTRL" }, , , , , , , , , , , , { , "RTRN" } }; }; row { top = 61; left = -4; keys { { , "SHFT" }, , , , , , , , , , , { , "SHFT" } }; }; solid "ExtendKey" { top = 81; left= 1; shape= "NORM"; color= "grey20"; }; text.top = 89; text.color = "black"; text "ExtendLabel" {left = 6; text="Ext\nend"; }; row { top = 81; left = 19; key.shape = "MODK"; keys { { , "NORM" }, , { , "SPCE" }, , }; }; }; }; xkb_geometry "lk421jj" { width = 315; height = 170; shape.cornerRadius = 1; shape "NORM" { { [18,19] }, { [3,2], [15,16] } }; shape "RTRN" { approx = { [0,0],[28,23] }, { [0,0], [28,0], [28,39], [5,39], [5,19], [0,19] }, { [3,2], [25,2], [25,36], [8,36], [8,16], [3,16] } }; shape "LONG" { { [37,19] }, { [3,2], [34,16] } }; shape "LONG1" { { [32,19] }, { [3,2], [29,16] } }; shape "TALL" { { [18,39] }, { [3,2], [15,36] } }; shape "MED" { { [23,19] }, { [3,2], [20,16] } }; shape "CTRL" { { [43,19] }, { [3,2], [38,16] } }; shape "SPCE" { { [55,19] },{ [3,2], [53,16]} }; shape "LEDS" { [ 56,15] }; shape "LED" { [ 5, 2] }; section.left = 5; row.left = 1; key.shape = "NORM"; key.gap = 1; text "Logo" {left = 7; top = 10; text="digital\n"; }; section "Function" { top = 45; row { top = 1; left = 7; keys { , , , , , { , 18 }, , , , }; }; }; section "Editing" { top = 45; left= 230; row { top = 1; keys { , , , }; }; }; section "Alpha" { top = 65; row { top = 1; left = 7; keys { { , "MED" }, , , , , , , , , , , , , , { , "MED" } }; }; row { top = 21; left = 7; keys { { , "LONG1" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 41; keys { { , "CTRL" }, , , , , , , , , , , , }; }; row { top = 61; keys { , { , "LONG1" }, , , , , , , , , , , , { , "LONG1" } }; }; row { top = 81; left = 7; keys { , , { , "LONG" }, { , "LONG" }, { , "SPCE" }, { , "LONG" }, { , "LONG" }, , }; }; }; section.left = 233; section.top = 20; section "Indicators" { solid "led_panel" { top = 0; left = 0; cornerRadius = 1; shape = "LEDS"; color = "grey"; }; indicator.onColor = "#00ff00"; indicator.offColor= "#001000"; indicator.top = 11; indicator.shape= "LED"; indicator "Scroll Lock" { left = 6; }; indicator "Caps Lock" { left = 26; }; text.top = 3; text.color = "black"; text "ScrollLockLabel" {left = 3; text="Scroll\nLock"; }; text "CapsLockLabel" {left = 22; text="Caps\nLock"; }; }; }; PK(f[&g6p*p*geometry/digital_vndr/pcnu[// //Copyright (c) 1996 Digital Equipment Corporation // //Permission is hereby granted, free of charge, to any person obtaining //a copy of this software and associated documentation files (the //"Software"), to deal in the Software without restriction, including //without limitation the rights to use, copy, modify, merge, publish, //distribute, sublicense, and sell copies of the Software, and to //permit persons to whom the Software is furnished to do so, subject to //the following conditions: // //The above copyright notice and this permission notice shall be included //in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, //DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR //OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR //THE USE OR OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of the Digital Equipment //Corporation shall not be used in advertising or otherwise to promote //the sale, use or other dealings in this Software without prior written //authorization from Digital Equipment Corporation. // // HISTORY // Log: pc,v // Revision 1.2 1996/06/18 09:12:50 erik // use flags correctly, assorted cleanups and consortium fixes // // Revision 1.1.6.2 1995/08/18 21:15:18 William_Walker // Upgrade XKB to Protocol Rev. 0.64 // [1995/08/18 20:41:49 William_Walker] // // Revision 1.1.2.4 1995/08/11 19:35:48 William_Walker // Sync up with Erik's pool. // [1995/08/11 18:36:03 William_Walker] // // Revision 1.1.2.3 1995/06/27 12:17:29 William_Walker // Rename to ISO9995 compliant . // [1995/06/26 20:23:10 William_Walker] // // Revision 1.1.2.2 1995/06/05 19:21:19 William_Walker // New file. I love keymaps. // [1995/06/05 18:05:51 William_Walker] // // EndLog // // @(#)RCSfile: pc,v Revision: 1.2 (DEC) Date: 1996/02/02 14:40:25 // partial xkb_geometry "common" { width = 480; height = 200; shape.cornerRadius = 1; shape "NORM" { primary = { [18,19] }, { [3,2], [15,16] } }; shape "KP0" { primary = { [37,19] }, { [3,2], [34,16] } }; shape "KPAD" { primary = { [18,39] }, { [3,2], [15,36] } }; shape "LEDS" { [78,22] }; shape "LED" { [5,2] }; text.color = "black"; section.left = 17; row.left = 1; key.shape = "NORM"; key.gap = 1; section "Function" { top = 40; row { top = 1; keys { , { , 20 }, , , , { , 10 }, , , , { , 10 }, , , }; }; }; section "Editing" { top = 40; left = 308; row { top = 1; keys { , , }; }; row { top = 41; keys { , , }; }; row { top = 61; keys { , , }; }; row { top = 101; left = 20; keys { }; }; row { top = 121; keys { , , }; }; }; section "Keypad" { top = 80; left = 374; row { top = 1; keys { , , , }; }; row { top = 21; keys { , , , { , "KPAD" } }; }; row { top = 41; keys { , , }; }; row { top = 61; keys { , , , { , "KPAD" } }; }; row { top = 81; keys { { , "KP0" }, }; }; }; }; partial xkb_geometry "leds_on_keys" { section.top = 40; section.left = 17; section "LedPanel" { indicator.onColor = "#00ff00"; indicator.offColor = "#001000"; indicator.shape = "LED"; indicator "Scroll Lock" { left = 317; top = 5; }; indicator "Num Lock" { left = 364; top = 45; }; indicator "Caps Lock" { left = 10; top = 85; }; }; section.left = 375; section.top = 40; section "LogoPanel" { solid "logo_panel" { top = 0; left = 0; shape = "LEDS"; color = "grey"; }; text "Logo" {left = 28; top = 10; text="digital\n"; }; }; }; partial xkb_geometry "leds_alone" { section.left = 375; section.top = 40; section "Indicators" { solid "led_panel" { top = 0; left = 0; shape = "LEDS"; color = "grey"; }; indicator.top = 16; indicator.onColor = "#00ff00"; indicator.offColor = "#001000"; indicator.shape = "LED"; indicator "Num Lock" { left = 3; }; indicator "Caps Lock" { left = 26; }; indicator "Scroll Lock" { left = 50; }; text "Logo" {left = 2; top = 3; text="digital\n"; }; }; section "IndicatorLabels" { text.top = 11; text "NumLockLabel" {left = 10; text="Num\nLock"; }; text "CapsLockLabel" {left = 33; text="Caps\nLock"; }; text "ScrollLockLabel" {left = 58; text="Scroll\nLock"; }; }; }; xkb_geometry "pc101" { include "digital_vndr/pc(common)" shape.cornerRadius = 1; shape "BKSP" { primary = { [36,19] }, { [3,2], [33,16] } }; shape "TABK" { primary = { [27,19] }, { [3,2], [24,16] } }; shape "RTRN" { primary = { [41,19] }, { [3,2], [38,16] } }; shape "CAPS" { primary = { [32,19] }, { [3,2], [29,16] } }; shape "LFSH" { primary = { [41,19] }, { [3,2], [38,16] } }; shape "RTSH" { primary = { [51,19] }, { [3,2], [49,16] } }; shape "MODK" { primary = { [27,19] }, { [3,2], [24,16] } }; shape "BKSL" { primary = { [27,19] }, { [3,2], [24,16] } }; shape "SPCE" { primary = { [132,19] },{ [3,2], [129,16]} }; section.left = 17; row.left = 1; key.shape = "NORM"; key.gap = 1; section "Alpha" { top = 80; row { top = 1; keys { , , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 21; keys { { , "TABK" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top = 41; keys { { , "CAPS" }, , , , , , , , , , , , { , "RTRN" } }; }; row { top = 61; keys { { , "LFSH" }, , , , , , , , , , , { , "RTSH" } }; }; row { top = 81; key.shape = "MODK"; keys { , { , 20 }, { , "SPCE" }, , { , 21 } }; }; }; }; xkb_geometry "pc102" { include "digital_vndr/pc(common)" shape.cornerRadius = 1; shape "BKSP" { primary = { [36,19] }, { [3,2], [33,16] } }; shape "TABK" { primary = { [27,19] }, { [3,2], [24,16] } }; shape "RTRN" { approx = { [0,0],[28,19] }, { [0,0], [27,0], [27,39], [5,39], [5,19], [0,19] }, { [3,2], [24,2], [24,36], [8,36], [8,16], [3,16] } }; shape "CAPS" { primary = { [32,19] }, { [3,2], [29,16] } }; shape "LFSH" { primary = { [22,19] }, { [3,2], [19,16] } }; shape "RTSH" { primary = { [51,19] }, { [3,2], [49,16] } }; shape "MODK" { primary = { [27,19] }, { [3,2], [24,16] } }; shape "BKSL" { primary = { [27,19] }, { [3,2], [24,16] } }; shape "SPCE" { primary = { [132,19] },{ [3,2], [129,16]} }; section.left = 17; row.left = 1; key.shape = "NORM"; key.gap = 1; section "Alpha" { top = 80; row { top = 1; keys { , , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 21; keys { { , "TABK" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 41; keys { { , "CAPS" }, , , , , , , , , , , , }; }; row { top = 61; keys { { , "LFSH" }, , , , , , , , , , , , { , "RTSH" } }; }; row { top = 81; key.shape = "MODK"; keys { , { , 20 }, { , "SPCE" }, , { , 21 } }; }; }; }; xkb_geometry "pcxaj" { include "digital_vndr/pc(common)" shape.cornerRadius = 1; shape "BKSP" { primary = { [36,19] }, { [3,2], [33,16] } }; shape "TABK" { primary = { [27,19] }, { [3,2], [24,16] } }; shape "RTRN" { primary = { [22,19] }, { [3,2], [19,16] } }; shape "CAPS" { primary = { [32,19] }, { [3,2], [29,16] } }; shape "LFSH" { primary = { [41,19] }, { [3,2], [38,16] } }; shape "RTSH" { primary = { [32,19] }, { [3,2], [29,16] } }; shape "MODK" { primary = { [27,19] }, { [3,2], [24,16] } }; shape "BKSL" { primary = { [27,19] }, { [3,2], [24,16] } }; shape "SPCE" { primary = { [114,19]}, { [3,2], [111,16]} }; section.left = 17; row.left = 1; key.shape = "NORM"; key.gap = 1; section "Alpha" { top = 80; row { top = 1; keys { , , , , , , , , , , , , , { , "BKSP" } }; }; row { top = 21; keys { { , "TABK" }, , , , , , , , , , , , , { , "BKSL" } }; }; row { top = 41; keys { { , "CAPS" }, , , , , , , , , , , , , { , "RTRN" } }; }; row { top = 61; keys { { , "LFSH" }, , , , , , , , , , , , { , "RTSH" } }; }; row { top = 81; key.shape = "MODK"; keys { , , { , "NORM" }, { , "SPCE" }, { , "NORM" }, { , "NORM" }, , }; }; }; }; PK(f[z compat/japannu[// Japanese keyboards need the Eisu and Kana Shift // and Lock keys, which are typically bound to the // second shift level of some other modifier key. // These interpretations disable the default // interpretation (which would have these keys set // to the same modifier as the level one symbol). default partial xkb_compatibility "japan" { interpret.repeat= False; interpret Eisu_Shift+Lock { action= NoAction(); }; interpret Eisu_toggle+Lock { action= NoAction(); }; interpret Kana_Shift+Lock { action= NoAction(); }; interpret Kana_Lock+Lock { action= NoAction(); }; }; // Some Japanese keyboards have an explict // Kana Lock key and matching LED. partial xkb_compatibility "kana_lock" { virtual_modifiers Kana_Lock; interpret Kana_Lock+AnyOfOrNone(all) { virtualModifier= Kana_Lock; useModMapMods=level1; action= LockGroup(group=+1); }; indicator "Kana" { !allowExplicit; groups= All-Group1; }; }; PK(f[qett compat/level5nu[// Fairly complete set of symbol interpretations // to provide reasonable default behavior. default partial xkb_compatibility "default" { virtual_modifiers LevelFive; interpret.repeat= False; setMods.clearLocks= True; latchMods.clearLocks= True; latchMods.latchToLock= True; interpret ISO_Level5_Shift+Any { useModMapMods= level1; virtualModifier= LevelFive; action= SetMods(modifiers=LevelFive); }; interpret ISO_Level5_Shift { action= SetMods(modifiers=LevelFive); }; interpret ISO_Level5_Latch+Any { useModMapMods= level1; virtualModifier= LevelFive; action= LatchMods(modifiers=LevelFive); }; interpret ISO_Level5_Latch { action= LatchMods(modifiers=LevelFive); }; interpret ISO_Level5_Lock+Any { useModMapMods= level1; virtualModifier= LevelFive; action= LockMods(modifiers=LevelFive); }; interpret ISO_Level5_Lock { action= LockMods(modifiers=LevelFive); }; }; partial xkb_compatibility "level5_lock" { // This defines a Level5-Lock using the NumLock real modifier // in order to create arbitrary level-behaviour, which would // not be possible with the virtual modifier. // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK // See also: symbols/level5(lock) virtual_modifiers NumLock; interpret ISO_Level5_Lock { action = LockMods(modifiers = NumLock); }; }; PK(f[{ compat/lednumnu[// Use the Num Lock LED to show either // Num Lock, Group, or Shift Lock state. default partial xkb_compatibility "num_lock" { indicator "Num Lock" { !allowExplicit; whichModState= Locked; modifiers= NumLock; }; }; partial xkb_compatibility "group_lock" { indicator "Num Lock" { modifiers= None; groups=All-group1; }; }; partial xkb_compatibility "shift_lock" { indicator "Num Lock" { whichModState= Locked; modifiers= Shift; }; }; PK(f[H compat/miscnu[default partial xkb_compatibility "misc" { virtual_modifiers Alt,Meta,Super,Hyper,ScrollLock; // Interpretations for some other useful keys. interpret Terminate_Server { action = Terminate(); }; setMods.clearLocks= True; // Sets the "Alt" virtual modifier. interpret Alt_L+Any { //useModMapMods= level1; virtualModifier= Alt; action = SetMods(modifiers=modMapMods); }; interpret Alt_L { action = SetMods(modifiers=Alt); }; interpret Alt_R+Any { //useModMapMods= level1; virtualModifier= Alt; action = SetMods(modifiers=modMapMods); }; interpret Alt_R { action = SetMods(modifiers=Alt); }; // Sets the "Meta" virtual modifier. interpret Meta_L+Any { //useModMapMods= level1; virtualModifier= Meta; action = SetMods(modifiers=modMapMods); }; interpret Meta_L { action = SetMods(modifiers=Meta); }; interpret Meta_R+Any { //useModMapMods= level1; virtualModifier= Meta; action = SetMods(modifiers=modMapMods); }; interpret Meta_R { action = SetMods(modifiers=Meta); }; // Sets the "Super" virtual modifier. interpret Super_L+Any { //useModMapMods= level1; virtualModifier= Super; action = SetMods(modifiers=modMapMods); }; interpret Super_L { action = SetMods(modifiers=Super); }; interpret Super_R+Any { //useModMapMods= level1; virtualModifier= Super; action = SetMods(modifiers=modMapMods); }; interpret Super_R { action = SetMods(modifiers=Super); }; // Sets the "Hyper" virtual modifier. interpret Hyper_L+Any { //useModMapMods= level1; virtualModifier= Hyper; action = SetMods(modifiers=modMapMods); }; interpret Hyper_L { action = SetMods(modifiers=Hyper); }; interpret Hyper_R+Any { //useModMapMods= level1; virtualModifier= Hyper; action = SetMods(modifiers=modMapMods); }; interpret Hyper_R { action = SetMods(modifiers=Hyper); }; // Sets the "ScrollLock" virtual modifier and // makes it actually lock when pressed. Sets // up a map for the scroll lock indicator. interpret Scroll_Lock+Any { virtualModifier= ScrollLock; action = LockMods(modifiers=modMapMods); }; include "ledscroll" include "misc(assign_shift_left_action)" }; partial xkb_compatibility "assign_shift_left_action" { // Because of the irrevertable modifier mapping in symbols/pc, // is getting bound to the Lock modifier when using // symbols/shift(both_capslock), creating unwanted behaviour. // This is a quirk, to circumvent the problem. interpret Shift_L { action = SetMods(modifiers = Shift); }; }; PK(f[+)compat/mousekeysnu[// Interpretations for arrow keys and a bunch of // other common keysyms which make it possible to // bind "mouse" keys using xmodmap and activate or // deactivate them from the keyboard. default partial xkb_compatibility "mousekeys" { // Keypad actions. interpret.repeat= True; interpret KP_1 { action = MovePtr(x=-1,y= +1); }; interpret KP_End { action = MovePtr(x=-1,y= +1); }; interpret KP_2 { action = MovePtr(x=+0,y= +1); }; interpret KP_Down { action = MovePtr(x=+0,y= +1); }; interpret KP_3 { action = MovePtr(x=+1,y=+1); }; interpret KP_Next { action = MovePtr(x=+1,y=+1); }; interpret KP_4 { action = MovePtr(x=-1,y=+0); }; interpret KP_Left { action = MovePtr(x=-1,y=+0); }; interpret KP_6 { action = MovePtr(x=+1,y=+0); }; interpret KP_Right { action = MovePtr(x=+1,y=+0); }; interpret KP_7 { action = MovePtr(x=-1,y=-1); }; interpret KP_Home { action = MovePtr(x=-1,y=-1); }; interpret KP_8 { action = MovePtr(x=+0,y=-1); }; interpret KP_Up { action = MovePtr(x=+0,y=-1); }; interpret KP_9 { action = MovePtr(x=+1,y=-1); }; interpret KP_Prior { action = MovePtr(x=+1,y=-1); }; interpret KP_5 { action = PointerButton(button=default); }; interpret KP_Begin { action = PointerButton(button=default); }; interpret KP_F2 { action = SetPtrDflt(affect=defaultButton,button=1); }; interpret KP_Divide { action = SetPtrDflt(affect=defaultButton,button=1); }; interpret KP_F3 { action = SetPtrDflt(affect=defaultButton,button=2); }; interpret KP_Multiply { action = SetPtrDflt(affect=defaultButton,button=2); }; interpret KP_F4 { action = SetPtrDflt(affect=defaultButton,button=3); }; interpret KP_Subtract { action = SetPtrDflt(affect=defaultButton,button=3); }; interpret KP_Separator { action = PointerButton(button=default,count=2); }; interpret KP_Add { action = PointerButton(button=default,count=2); }; interpret KP_0 { action = LockPointerButton(button=default,affect=lock); }; interpret KP_Insert { action = LockPointerButton(button=default,affect=lock); }; interpret KP_Decimal { action = LockPointerButton(button=default,affect=unlock); }; interpret KP_Delete { action = LockPointerButton(button=default,affect=unlock); }; // Additional mappings for Solaris keypad compatibility. interpret F25 { // aka KP_Divide action = SetPtrDflt(affect=defaultButton,button=1); }; interpret F26 { // aka KP_Multiply action = SetPtrDflt(affect=defaultButton,button=2); }; interpret F27 { // aka KP_Home action = MovePtr(x=-1,y=-1); }; interpret F29 { // aka KP_Prior action = MovePtr(x=+1,y=-1); }; interpret F31 { // aka KP_Begin action = PointerButton(button=default); }; interpret F33 { // aka KP_End action = MovePtr(x=-1,y= +1); }; interpret F35 { // aka KP_Next action = MovePtr(x=+1,y=+1); }; interpret.repeat= False; // New keysym actions. interpret Pointer_Button_Dflt { action= PointerButton(button=default); }; interpret Pointer_Button1 { action= PointerButton(button=1); }; interpret Pointer_Button2 { action= PointerButton(button=2); }; interpret Pointer_Button3 { action= PointerButton(button=3); }; interpret Pointer_DblClick_Dflt { action= PointerButton(button=default,count=2); }; interpret Pointer_DblClick1 { action= PointerButton(button=1,count=2); }; interpret Pointer_DblClick2 { action= PointerButton(button=2,count=2); }; interpret Pointer_DblClick3 { action= PointerButton(button=3,count=2); }; interpret Pointer_Drag_Dflt { action= LockPointerButton(button=default); }; interpret Pointer_Drag1 { action= LockPointerButton(button=1); }; interpret Pointer_Drag2 { action= LockPointerButton(button=2); }; interpret Pointer_Drag3 { action= LockPointerButton(button=3); }; interpret Pointer_EnableKeys { action= LockControls(controls=MouseKeys); }; interpret Pointer_Accelerate { action= LockControls(controls=MouseKeysAccel); }; interpret Pointer_DfltBtnNext { action= SetPtrDflt(affect=defaultButton,button= +1); }; interpret Pointer_DfltBtnPrev { action= SetPtrDflt(affect=defaultButton,button= -1); }; // Allow an indicator for MouseKeys. indicator "Mouse Keys" { //!allowExplicit; indicatorDrivesKeyboard; controls= MouseKeys; }; }; PK(f[  compat/capsnu[partial xkb_compatibility "caps_lock" { // Keysym Caps_Lock locks the Lock modifier. // With this definition, the keysym Caps_Lock can be used without binding // the whole key to a real modifier. This is essential when you don't // want to use Caps_Lock on the first level. // This should not have any compatibility issues when used together with // other layouts which don't utilize this capability. interpret Caps_Lock { action = LockMods(modifiers = Lock); }; }; PK(f[Ucompat/completenu[default xkb_compatibility "complete" { include "basic" augment "iso9995" augment "mousekeys" augment "accessx(full)" augment "misc" augment "xfree86" augment "level5" augment "caps(caps_lock)" }; PK(f[ compat/READMEnu[The core protocol interpretation of keyboard modifiers does not include direct support for multiple keyboard groups, so XKB reports the effective keyboard group to XKB-aware clients using some of the reserved bits in the state field of some core protocol events. This modified state field would not be interpreted correctly by XKB-unaware clients, so XKB provides a group compatibility mapping which remaps the keyboard group into a core modifier mask that has similar effects, when possible. XKB maintains three compatibility state components that are used to make XKB-unaware clients(*) work as well as possible: - The compatibility state which corresponds to the effective modifier and effective group state. - The compatibility lookup state which is the core-protocol equivalent of the lookup state. - The compatibility grab state which is the nearest core-protocol equivalent of the grab state. Compatibility states are essentially the corresponding XKB states, but with the keyboard group possibly encoded as one or more modifiers. Modifiers that correspond to each keyboard group are described in this group compatibility map. ---- (*) The implementation of XKB invisibly extends the X library to use the keyboard extension if it is present. That means, clients that use library or toolkit routines to interpret keyboard events automatically use all of XKB's features; clients that directly interpret the state field of core-protocol events or the keymap directly may be affected by some of the XKB differences. Thus most clients can take all advantages without modification but it also means that XKB state can be reported to clients that have not explicitly requested the keyboard extension. PK(f[GCcompat/ledcapsnu[// Use the Caps Lock LED to show either // Caps Lock, Group, or Shift Lock state. default partial xkb_compatibility "caps_lock" { indicator "Caps Lock" { !allowExplicit; whichModState= Locked; modifiers= Lock; }; }; partial xkb_compatibility "group_lock" { indicator "Caps Lock" { modifiers= None; groups=All-group1; }; }; partial xkb_compatibility "shift_lock" { indicator "Caps Lock" { whichModState= Locked; modifiers= Shift; }; }; PK(f[Smm compat/olpcnu[// // Map the OLPC game keys to virtual modifiers. // // Created by Bernardo Innocenti // default xkb_compatibility "olpc" { include "complete" virtual_modifiers Square,Cross,Triangle,Circle; interpret KP_Home+Any { //useModMapMods= level1; virtualModifier= Square; action = SetMods(modifiers=modMapMods); }; interpret KP_Home { action = SetMods(modifiers=Square); }; interpret KP_Next+Any { //useModMapMods= level1; virtualModifier= Cross; action = SetMods(modifiers=modMapMods); }; interpret KP_Next { action = SetMods(modifiers=Cross); }; interpret KP_End+Any { //useModMapMods= level1; virtualModifier= Circle; action = SetMods(modifiers=modMapMods); }; interpret KP_End { action = SetMods(modifiers=Circle); }; interpret KP_Prior+Any { //useModMapMods= level1; virtualModifier= Triangle; action = SetMods(modifiers=modMapMods); }; interpret KP_Prior { action = SetMods(modifiers=Triangle); }; }; PK(f[B&Lcompat/ledscrollnu[// Use the Scroll Lock LED to show either // Scroll Lock, Group, or Shift Lock state. default partial xkb_compatibility "scroll_lock" { indicator "Scroll Lock" { allowExplicit; whichModState= Locked; modifiers= ScrollLock; }; }; partial xkb_compatibility "group_lock" { indicator "Scroll Lock" { modifiers= None; groups=All-group1; }; }; partial xkb_compatibility "shift_lock" { indicator "Scroll Lock" { whichModState= Locked; modifiers= Shift; }; }; PK(f[ZSaacompat/accessxnu[default partial xkb_compatibility "basic" { interpret AccessX_Enable { action= LockControls(controls=AccessXKeys); }; }; partial xkb_compatibility "full" { interpret AccessX_Enable { action= LockControls(controls=AccessXKeys); }; interpret AccessX_Feedback_Enable { action= LockControls(controls=AccessXFeedback); }; interpret RepeatKeys_Enable { action= LockControls(controls=RepeatKeys); }; interpret SlowKeys_Enable { action= LockControls(controls=SlowKeys); }; interpret BounceKeys_Enable { action= LockControls(controls=BounceKeys); }; interpret StickyKeys_Enable { action= LockControls(controls=StickyKeys); }; interpret MouseKeys_Enable { action= LockControls(controls=MouseKeys); }; interpret MouseKeys_Accel_Enable { action= LockControls(controls=MouseKeysAccel); }; interpret Overlay1_Enable { action= LockControls(controls=Overlay1); }; interpret Overlay2_Enable { action= LockControls(controls=Overlay2); }; interpret AudibleBell_Enable { action= LockControls(controls=AudibleBell); }; }; PK(f[yt㸱 compat/xtestnu[default xkb_compatibility "xtest" { // Minimal set of symbol interpretations to provide // reasonable behavior for testing. // The X Test Suite assumes that it can set any modifier // by simulating a KeyPress and clear it by simulating a // KeyRelease. Because of the way that XKB implements // locking/latching modifiers, this approach fails in // some cases (typically the Lock or NumLock modifiers). // These symbol interpretations make all modifier keys // just set the corresponding modifier so that xtest // will see the behavior it expects. virtual_modifiers NumLock,AltGr; interpret.repeat= False; setMods.clearLocks= True; latchMods.clearLocks= True; latchMods.latchToLock= False; interpret Shift_Lock+AnyOf(Shift+Lock) { action= SetMods(modifiers=Shift); }; interpret Num_Lock+Any { virtualModifier= NumLock; action= SetMods(modifiers=NumLock); }; interpret Mode_switch { useModMapMods= level1; virtualModifier= AltGr; action= SetGroup(group=2); }; interpret Any + Any { action= SetMods(modifiers=modMapMods); }; group 2 = AltGr; group 3 = AltGr; group 4 = AltGr; indicator.allowExplicit= False; indicator "Caps Lock" { modifiers= Lock; }; indicator "Num Lock" { modifiers= NumLock; }; indicator "Shift Lock" { whichModState= Locked; modifiers= Shift; }; indicator.allowExplicit= True; }; PK(f[+ compat/basicnu[// Minimal set of symbol interpretations to provide // reasonable default behavior (Num lock, Shift lock, // Caps lock, and Mode switch) and set up the // automatic updating of common keyboard LEDs. default xkb_compatibility "basic" { virtual_modifiers NumLock,AltGr; interpret.repeat= False; setMods.clearLocks= True; latchMods.clearLocks= True; latchMods.latchToLock= True; interpret Shift_Lock+AnyOf(Shift+Lock) { action= LockMods(modifiers=Shift); }; interpret Any+Lock { action= LockMods(modifiers=Lock); }; interpret Num_Lock+Any { virtualModifier= NumLock; action= LockMods(modifiers=NumLock); }; interpret Mode_switch { useModMapMods= level1; virtualModifier= AltGr; action= SetGroup(group=+1); }; interpret Any + Any { action= SetMods(modifiers=modMapMods); }; group 2 = AltGr; group 3 = AltGr; group 4 = AltGr; include "ledcaps" include "lednum" indicator "Shift Lock" { !allowExplicit; whichModState= Locked; modifiers= Shift; }; }; PK(f[R Y22compat/xfree86nu[// XFree86 special keysyms. default partial xkb_compatibility "basic" { interpret.repeat= True; interpret XF86_Switch_VT_1 { action = SwitchScreen(Screen=1, !SameServer); }; interpret XF86_Switch_VT_2 { action = SwitchScreen(Screen=2, !SameServer); }; interpret XF86_Switch_VT_3 { action = SwitchScreen(Screen=3, !SameServer); }; interpret XF86_Switch_VT_4 { action = SwitchScreen(Screen=4, !SameServer); }; interpret XF86_Switch_VT_5 { action = SwitchScreen(Screen=5, !SameServer); }; interpret XF86_Switch_VT_6 { action = SwitchScreen(Screen=6, !SameServer); }; interpret XF86_Switch_VT_7 { action = SwitchScreen(Screen=7, !SameServer); }; interpret XF86_Switch_VT_8 { action = SwitchScreen(Screen=8, !SameServer); }; interpret XF86_Switch_VT_9 { action = SwitchScreen(Screen=9, !SameServer); }; interpret XF86_Switch_VT_10 { action = SwitchScreen(Screen=10, !SameServer); }; interpret XF86_Switch_VT_11 { action = SwitchScreen(Screen=11, !SameServer); }; interpret XF86_Switch_VT_12 { action = SwitchScreen(Screen=12, !SameServer); }; interpret XF86LogGrabInfo { action = Private(type=0x86, data="PrGrbs"); }; interpret XF86LogWindowTree { action = Private(type=0x86, data="PrWins"); }; interpret XF86_Next_VMode { action = Private(type=0x86, data="+VMode"); }; interpret XF86_Prev_VMode { action = Private(type=0x86, data="-VMode"); }; }; partial xkb_compatibility "grab_break" { interpret XF86_Ungrab { action = Private(type=0x86, data="Ungrab"); }; interpret XF86_ClearGrab { action = Private(type=0x86, data="ClsGrb"); }; }; PK(f[Fullcompat/iso9995nu[// Fairly complete set of symbol interpretations // to provide reasonable default behavior. default partial xkb_compatibility "default" { virtual_modifiers LevelThree,AltGr; interpret.repeat= False; setMods.clearLocks= True; latchMods.clearLocks= True; latchMods.latchToLock= True; interpret ISO_Level2_Latch+Shift { useModMapMods= level1; action= LatchMods(modifiers=Shift); }; interpret ISO_Level3_Shift+Any { useModMapMods= level1; virtualModifier= LevelThree; action= SetMods(modifiers=LevelThree); }; interpret ISO_Level3_Shift { action= SetMods(modifiers=LevelThree); }; interpret ISO_Level3_Latch+Any { useModMapMods= level1; virtualModifier= LevelThree; action= LatchMods(modifiers=LevelThree); }; interpret ISO_Level3_Latch { action= LatchMods(modifiers=LevelThree); }; interpret ISO_Level3_Lock+Any { useModMapMods= level1; virtualModifier= LevelThree; action= LockMods(modifiers=LevelThree); }; interpret ISO_Level3_Lock { action= LockMods(modifiers=LevelThree); }; interpret ISO_Group_Latch { useModMapMods= level1; virtualModifier= AltGr; action= LatchGroup(group=2); }; interpret ISO_Next_Group { useModMapMods= level1; virtualModifier= AltGr; action= LockGroup(group=+1); }; interpret ISO_Prev_Group { useModMapMods= level1; virtualModifier= AltGr; action= LockGroup(group=-1); }; interpret ISO_First_Group { action= LockGroup(group=1); }; interpret ISO_Last_Group { action= LockGroup(group=2); }; indicator "Group 2" { !allowExplicit; groups= All-Group1; }; }; PK(f[ np compat/pc98nu[// Minimal set of symbol interpretations to provide // reasonable default behavior (Num lock, Shift lock, // and Mode switch) and set up the automatic updating // of common keyboard LEDs. default xkb_compatibility "basic" { virtual_modifiers NumLock,AltGr; interpret.repeat= False; setMods.clearLocks= True; latchMods.clearLocks= True; latchMods.latchToLock= True; interpret Shift_Lock+AnyOf(Shift+Lock) { action= LockMods(modifiers=Shift); }; // interpret Any+Lock { // action= LockMods(modifiers=Lock); // }; interpret Num_Lock+Any { virtualModifier= NumLock; action= LockMods(modifiers=NumLock); }; interpret Mode_switch { useModMapMods= level1; virtualModifier= AltGr; action= SetGroup(group=2,clearLocks); }; interpret Any + Any { action= SetMods(modifiers=modMapMods); }; group 2 = AltGr; group 3 = AltGr; group 4 = AltGr; indicator.allowExplicit= False; indicator "Caps Lock" { whichModState= Locked; modifiers= Lock; }; indicator "Num Lock" { whichModState= Locked; modifiers= NumLock; }; indicator "Shift Lock" { whichModState= Locked; modifiers= Shift; }; indicator.allowExplicit= True; }; PK(f[9STT compat/pcnu[default partial xkb_compatibility "pc" { // Sets the "Alt" virtual modifier. virtual_modifiers Alt; setMods.clearLocks= True; interpret Alt_L+Any { virtualModifier= Alt; action = SetMods(modifiers=modMapMods); }; interpret Alt_R+Any { virtualModifier= Alt; action = SetMods(modifiers=modMapMods); }; }; PK(f[5>hrules/evdev.extras.xmlnu[ apl apl APL eng dyalog dlg Dyalog APL complete sax sax APL Keyboard Symbols: sax unified ufd APL Keyboard Symbols: Unified Layout apl2 apl2 APL Keyboard Symbols: IBM APL2 aplplusII aplII APL Keyboard Symbols: Manugistics APL*PLUS II aplx aplx APL Keyboard Symbols: APLX Unified APL Layout ca fr French (Canada) fra kut kut Kutenai shs shs Secwepemctsin sun_type6 Multilingual (Canada, Sun Type 6/7) de de German ger us German (US, with German letters) eng hu German (with Hungarian letters and no dead keys) ger hun pl Polish (Germany, no dead keys) ger pol sun_type6 German (Sun Type 6/7) adnw German (Aus der Neo-Welt) koy German (KOY) bone German (Bone) bone_eszett_home German (Bone, eszett home row) neo_qwertz German (Neo qwertz) neo_qwerty German (Neo qwerty) ru-recom ru Russian (Germany, recommended) rus ru-translit ru Russian (Germany, transliteration) rus lld German Ladin de_lld ger lld hu Hungarian oldhun Old Hungarian oldhun ir fa Persian per ave Avestan ave lt lt Lithuanian lit us_dvorak Lithuanian (US Dvorak with Lithuanian letters) sun_type6 Lithuanian (Sun Type 6/7) lv lv Latvian lav dvorak Latvian (US Dvorak) ykeydvorak Latvian (US Dvorak, Y variant) minuskeydvorak Latvian (US Dvorak, minus variant) dvorakprogr Latvian (programmer US Dvorak) ykeydvorakprogr Latvian (programmer US Dvorak, Y variant) minuskeydvorakprogr Latvian (programmer US Dvorak, minus variant) colemak Latvian (US Colemak) apostrophecolemak Latvian (US Colemak, apostrophe variant) sun_type6 Latvian (Sun Type 6/7) us en English (US) eng intl-unicode English (US, international AltGr Unicode combining) alt-intl-unicode English (US, international AltGr Unicode combining, alternative) ats Atsina crd Coeur d'Alene Salish crd cz_sk_de Czech Slovak and German (US) eng cze slo ger ibm238l English (US, IBM Arabic 238_L) sun_type6 English (US, Sun Type 6/7) carpalx English (Carpalx) carpalx-intl English (Carpalx, intl., with dead keys) carpalx-altgr-intl English (Carpalx, intl., with AltGr dead keys) carpalx-full English (Carpalx, full optimization) carpalx-full-intl English (Carpalx, full optimization, intl., with dead keys) carpalx-full-altgr-intl English (Carpalx, full optimization, intl., with AltGr dead keys) 3l English (3l) 3l-cros English (3l, chromebook) scn Sicilian (US keyboard) eng ita scn pl pl Polish pol intl Polish (intl., with dead keys) colemak Polish (Colemak) sun_type6 Polish (Sun Type 6/7) glagolica Polish (Glagolica) ro ro Romanian rum crh_dobruja crh Crimean Tatar (Dobruja Q) crh ergonomic Romanian (ergonomic Touchtype) sun_type6 Romanian (Sun Type 6/7) rs sr Serbian srp combiningkeys Serbian (combining accents instead of dead keys) ru ru Russian chu Church Slavonic chu ruu ru Russian (with Ukrainian-Belorussian layout) rus ukr bel rulemak Russian (Rulemak, phonetic Colemak) sun_type6 Russian (Sun Type 6/7) unipunct Russian (with US punctuation) prxn ru Russian (Polyglot and Reactionary) rus rus-petr1708 ukr bel srp mkd bul chu rum-Cyrl kaz kir uzb bak aze tat uig kdr tyv kjh crh tgk abk sah mon kal sjd chv oss krl ale wbl kur niv dng kom udm sel ulc ude oac oaa gld eve evn kca itl yrk neg RU RS BA ME MK BG MD UA BY KZ MN KG TJ UZ TM AZ am hy Armenian hye olpc-phonetic Armenian (OLPC phonetic) il he Hebrew heb biblicalSIL Hebrew (Biblical, SIL phonetic) heb ara ar Arabic sun_type6 Arabic (Sun Type 6/7) basic_ext Arabic (with extensions for Arabic-written other languages and European digits preferred) basic_ext_digits Arabic (with extensions for Arabic-written other languages and Arabic digits preferred) uga Ugaritic instead of Arabic be be Belgian sun_type6 Belgian (Sun Type 6/7) br pt Portuguese (Brazil) sun_type6 Portuguese (Brazil, Sun Type 6/7) cz cs Czech sun_type6 Czech (Sun Type 6/7) prog Czech (programming) typo Czech (typographic) coder Czech (coder) prog_typo Czech (programming, typographic) dk da Danish sun_type6 Danish (Sun Type 6/7) nl nl Dutch sun_type6 Dutch (Sun Type 6/7) ee et Estonian sun_type6 Estonian (Sun Type 6/7) fi fi Finnish das Finnish (DAS) sun_type6 Finnish (Sun Type 6/7) fidvorak Finnish Dvorak fr fr French sun_type6 French (Sun Type 6/7) us-alt French (US, with French letters, with dead keys, alternative) us-azerty French (US, AZERTY) gr gr Greek sun_type6 Greek (Sun Type 6/7) colemak Greek (Colemak) it it Italian sun_type6 Italian (Sun Type 6/7) lld Italian Ladin it_lld it lld jp ja Japanese sun_type6 Japanese (Sun Type 6) sun_type7 Japanese (Sun Type 7 - pc compatible) sun_type7_suncompat Japanese (Sun Type 7 - sun compatible) no no Norwegian sun_type6 Norwegian (Sun Type 6/7) pt pt Portuguese sun_type6 Portuguese (Sun Type 6/7) pt pt Portuguese colemak Portuguese (Colemak) sk sk Slovak sun_type6 Slovak (Sun Type 6/7) es es Spanish sun_type6 Spanish (Sun Type 6/7) se sv Swedish dvorak_a5 Swedish (Dvorak A5) sun_type6 Swedish (Sun Type 6/7) ovd Elfdalian (Swedish, with combining ogonek) ovd ch de German (Switzerland) sun_type6_de German (Switzerland, Sun Type 6/7) sun_type6_fr French (Switzerland, Sun Type 6/7) tr tr Turkish sun_type6 Turkish (Sun Type 6/7) ua uk Ukrainian sun_type6 Ukrainian (Sun Type 6/7) gb en English (UK) sun_type6 English (UK, Sun Type 6/7) kr ko Korean sun_type6 Korean (Sun Type 6/7) vn vi Vietnamese vie aderty Vietnamese (AÐERTY) qderty Vietnamese (QĐERTY) eu eu EurKEY (US based layout with European letters) cat dan eng est fao fin ger gre gsw ita lav lit nld nor por spa swe cm cm English (Cameroon) mmuock Mmuock trans International Phonetic Alphabet lv3 Key to choose the 3rd level parens Parentheses position PK(f[FP̉̉rules/base.xmlnu[ pc101 Generic 101-key PC Generic pc102 Generic 102-key PC (intl.) Generic pc104 Generic 104-key PC Generic pc105 Generic 105-key PC (intl.) Generic dell101 Dell 101-key PC Dell latitude Dell Latitude laptop Dell dellm65 Dell Precision M65 laptop Dell everex Everex STEPnote Everex flexpro Keytronic FlexPro Keytronic microsoft Microsoft Natural Microsoft omnikey101 Northgate OmniKey 101 Northgate winbook Winbook Model XP5 Generic pc98 PC-98 Generic a4techKB21 A4Tech KB-21 A4Tech a4techKBS8 A4Tech KBS-8 A4Tech a4_rfkb23 A4Tech Wireless Desktop RFKB-23 A4Tech airkey Acer AirKey V Acer azonaRF2300 Azona RF2300 wireless Internet Azona scorpius Advance Scorpius KI Scorpius brother Brother Internet Brother btc5113rf BTC 5113RF Multimedia BTC btc5126t BTC 5126T BTC btc6301urf BTC 6301URF BTC btc9000 BTC 9000 BTC btc9000a BTC 9000A BTC btc9001ah BTC 9001AH BTC btc5090 BTC 5090 BTC btc9019u BTC 9019U BTC btc9116u BTC 9116U Mini Wireless Internet and Gaming cherryblue Cherry Blue Line CyBo@rd cherryblueb Cherry CyMotion Master XPress Cherry cherrybluea Cherry Blue Line CyBo@rd (alt.) Cherry cherrycyboard Cherry CyBo@rd USB-Hub Cherry cherrycmexpert Cherry CyMotion Expert Cherry cherrybunlim Cherry B.UNLIMITED Cherry chicony Chicony Internet Chicony chicony0108 Chicony KU-0108 Chicony chicony0420 Chicony KU-0420 Chicony chicony9885 Chicony KB-9885 Chicony compaqeak8 Compaq Easy Access Compaq compaqik7 Compaq Internet (7 keys) Compaq compaqik13 Compaq Internet (13 keys) Compaq compaqik18 Compaq Internet (18 keys) Compaq cymotionlinux Cherry CyMotion Master Linux Cherry armada Compaq Armada laptop Compaq presario Compaq Presario laptop Compaq ipaq Compaq iPaq Compaq dell Dell Dell dellsk8125 Dell SK-8125 Dell dellsk8135 Dell SK-8135 Dell dellusbmm Dell USB Multimedia Dell inspiron Dell Inspiron 6000/8000 laptop Dell precision_m Dell Precision M laptop Dell dexxa Dexxa Wireless Desktop Dexxa diamond Diamond 9801/9802 Diamond dtk2000 DTK2000 ennyah_dkb1008 Ennyah DKB-1008 Ennyah fscaa1667g Fujitsu-Siemens Amilo laptop Fujitsu-Siemens genius Genius Comfy KB-16M/Multimedia KWD-910 Genius geniuscomfy Genius Comfy KB-12e Genius geniuscomfy2 Genius Comfy KB-21e-Scroll Genius geniuskb19e Genius KB-19e NB Genius geniuskkb2050hs Genius KKB-2050HS Genius gyration Gyration Gyration htcdream HTC Dream HTC kinesis Kinesis Kinesis logitech_base Logitech Logitech logitech_g15 Logitech G15 extra keys via G15daemon Logitech hpi6 Hewlett-Packard Internet Hewlett-Packard hp250x Hewlett-Packard NEC SK-2500 Multimedia Hewlett-Packard hpxe3gc Hewlett-Packard Omnibook XE3 GC Hewlett-Packard hpxe3gf Hewlett-Packard Omnibook XE3 GF Hewlett-Packard hpxt1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard hpdv5 Hewlett-Packard Pavilion dv5 Hewlett-Packard hpzt11xx Hewlett-Packard Pavilion ZT1100 Hewlett-Packard hp500fa Hewlett-Packard Omnibook 500 FA Hewlett-Packard hp5xx Hewlett-Packard Omnibook 500 Hewlett-Packard hpnx9020 Hewlett-Packard nx9020 Hewlett-Packard hp6000 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard honeywell_euroboard Honeywell Euroboard Hewlett-Packard hpmini110 Hewlett-Packard Mini 110 laptop Hewlett-Packard rapidaccess IBM Rapid Access Lenovo (previously IBM) rapidaccess2 IBM Rapid Access II Lenovo (previously IBM) thinkpad IBM ThinkPad 560Z/600/600E/A22E Lenovo (previously IBM) thinkpad60 IBM ThinkPad R60/T60/R61/T61 Lenovo (previously IBM) thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t Lenovo (previously IBM) ibm_spacesaver IBM Space Saver Lenovo (previously IBM) logiaccess Logitech Access Logitech logiclx300 Logitech Cordless Desktop LX-300 Logitech logii350 Logitech Internet 350 Logitech 046d:c313 logimel Logitech Internet 350 Logitech logicd Logitech Cordless Desktop Logitech logicd_it Logitech Cordless Desktop iTouch Logitech logicd_nav Logitech Cordless Desktop Navigator Logitech logicd_opt Logitech Cordless Desktop Optical Logitech logicda Logitech Cordless Desktop (alt.) Logitech logicdpa2 Logitech Cordless Desktop Pro (2nd alt.) Logitech logicfn Logitech Cordless Freedom/Desktop Navigator Logitech logicdn Logitech Cordless Desktop Navigator Logitech logiitc Logitech iTouch Cordless Y-RB6 Logitech logiik Logitech Internet Logitech itouch Logitech iTouch Logitech logicink Logitech Internet Navigator Logitech logiex110 Logitech Cordless Desktop EX110 Logitech logiinkse Logitech iTouch Internet Navigator SE Logitech logiinkseusb Logitech iTouch Internet Navigator SE USB Logitech logiultrax Logitech Ultra-X Logitech logiultraxc Logitech Ultra-X Cordless Media Desktop Logitech logidinovo Logitech diNovo Logitech logidinovoedge Logitech diNovo Edge Logitech mx1998 Memorex MX1998 Memorex mx2500 Memorex MX2500 EZ-Access Memorex mx2750 Memorex MX2750 Memorex microsoft4000 Microsoft Natural Ergonomic 4000 Microsoft microsoft7000 Microsoft Natural Wireless Ergonomic 7000 Microsoft microsoftinet Microsoft Internet Microsoft microsoftpro Microsoft Natural Pro/Internet Pro Microsoft microsoftprousb Microsoft Natural Pro USB/Internet Pro Microsoft microsoftprooem Microsoft Natural Pro OEM Microsoft vsonku306 ViewSonic KU-306 Internet ViewSonic microsoftprose Microsoft Internet Pro (Swedish) Microsoft microsoftoffice Microsoft Office Keyboard Microsoft microsoftmult Microsoft Wireless Multimedia 1.0A Microsoft microsoftelite Microsoft Natural Elite Microsoft microsoftccurve2k Microsoft Comfort Curve 2000 Microsoft oretec Ortek Multimedia/Internet MCK-800 Ortek propeller Propeller Voyager KTEZ-1000 KeyTronic qtronix QTronix Scorpius 98N+ QTronix samsung4500 Samsung SDM 4500P Samsung samsung4510 Samsung SDM 4510P Samsung sanwaskbkg3 Sanwa Supply SKB-KG3 Sanwa Supply Inc. sk1300 NEC SK-1300 NEC sk2500 NEC SK-2500 NEC sk6200 NEC SK-6200 NEC sk7100 NEC SK-7100 NEC sp_inet Super Power Multimedia Generic sven SVEN Ergonomic 2500 SVEN sven303 SVEN Slim 303 SVEN symplon Symplon PaceBook tablet Symplon toshiba_s3000 Toshiba Satellite S3000 Toshiba trust Trust Wireless Classic Trust trustda Trust Direct Access Trust trust_slimline Trust Slimline Trust tm2020 TypeMatrix EZ-Reach 2020 TypeMatrix tm2030PS2 TypeMatrix EZ-Reach 2030 PS2 TypeMatrix tm2030USB TypeMatrix EZ-Reach 2030 USB TypeMatrix tm2030USB-102 TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) TypeMatrix tm2030USB-106 TypeMatrix EZ-Reach 2030 USB (106:JP mode) TypeMatrix yahoo Yahoo! Internet Yahoo! macbook78 MacBook/MacBook Pro Apple macbook79 MacBook/MacBook Pro (intl.) Apple macintosh Macintosh Apple macintosh_old Macintosh Old Apple macintosh_hhk Happy Hacking for Mac Fujitsu acer_c300 Acer C300 Acer acer_ferrari4k Acer Ferrari 4000 Acer acer_laptop Acer laptop Acer asus_laptop Asus laptop Asus apple Apple Apple apple_laptop Apple laptop Apple applealu_ansi Apple Aluminium (ANSI) Apple applealu_iso Apple Aluminium (ISO) Apple applealu_jis Apple Aluminium (JIS) Apple silvercrest Silvercrest Multimedia Wireless Silvercrest emachines eMachines m6800 laptop eMachines benqx BenQ X-Touch BenQ benqx730 BenQ X-Touch 730 BenQ benqx800 BenQ X-Touch 800 BenQ hhk Happy Hacking Fujitsu classmate Classmate PC Intel olpc OLPC OLPC sun_type7_usb Sun Type 7 USB Sun Microsystems sun_type7_euro_usb Sun Type 7 USB (European) Sun Microsystems sun_type7_unix_usb Sun Type 7 USB (Unix) Sun Microsystems sun_type7_jp_usb Sun Type 7 USB (Japanese)/Japanese 106-key Sun Microsystems sun_type6_usb Sun Type 6/7 USB Sun Microsystems sun_type6_euro_usb Sun Type 6/7 USB (European) Sun Microsystems sun_type6_unix_usb Sun Type 6 USB (Unix) Sun Microsystems sun_type6_jp_usb Sun Type 6 USB (Japanese) Sun Microsystems sun_type6_jp Sun Type 6 (Japanese) Sun Microsystems targa_v811 Targa Visionary 811 Targa unitekkb1925 Unitek KB-1925 Unitek Group compalfl90 FL90 Compal Electronics creativedw7000 Creative Desktop Wireless 7000 Creative htcdream Htc Dream phone htc teck227 Truly Ergonomic 227 Truly Ergonomic teck229 Truly Ergonomic 229 Truly Ergonomic apex300 SteelSeries Apex 300 (Apex RAW) SteelSeries chromebook Chromebook Google teck227 Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) Megawin Technology teck229 Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) Megawin Technology us en English (US) eng chr chr Cherokee chr euro English (US, euro on 5) intl English (US, intl., with dead keys) alt-intl English (US, alt. intl.) colemak English (Colemak) dvorak English (Dvorak) dvorak-intl English (Dvorak, intl., with dead keys) dvorak-alt-intl English (Dvorak, alt. intl.) dvorak-l English (Dvorak, left-handed) dvorak-r English (Dvorak, right-handed) dvorak-classic English (classic Dvorak) dvp English (programmer Dvorak) rus ru Russian (US, phonetic) rus mac English (Macintosh) altgr-intl English (intl., with AltGr dead keys) eng fra deu olpc2 English (the divide/multiply keys toggle the layout) hbs Serbo-Croatian (US) eng bos hbs hrv srp norman English (Norman) workman English (Workman) workman-intl English (Workman, intl., with dead keys) af fa Afghani ps ps Pashto pus uz uz Uzbek (Afghanistan) uzb olpc-ps ps Pashto (Afghanistan, OLPC) pus fa-olpc fa Persian (Afghanistan, Dari OLPC) uz-olpc uz Uzbek (Afghanistan, OLPC) uzb ara ar Arabic AE BH DZ EG EH JO KW LB LY MA MR OM PS QA SA SD SY TN YE ara azerty Arabic (AZERTY) azerty_digits Arabic (AZERTY/digits) digits Arabic (digits) qwerty Arabic (QWERTY) qwerty_digits Arabic (qwerty/digits) buckwalter Arabic (Buckwalter) olpc Arabic (OLPC) mac Arabic (Macintosh) al sq Albanian sqi plisi Albanian (Plisi) am hy Armenian hye phonetic Armenian (phonetic) phonetic-alt Armenian (alt. phonetic) eastern Armenian (eastern) western Armenian (western) eastern-alt Armenian (alt. eastern) at de German (Austria) deu nodeadkeys German (Austria, no dead keys) sundeadkeys German (Austria, with Sun dead keys) mac German (Austria, Macintosh) au en English (Australian) eng az az Azerbaijani aze cyrillic Azerbaijani (Cyrillic) by by Belarusian bel legacy Belarusian (legacy) latin Belarusian (Latin) be be Belgian deu nld fra oss Belgian (alt.) oss_latin9 Belgian (alt., Latin-9 only) oss_sundeadkeys Belgian (alt., with Sun dead keys) iso-alternate Belgian (alt. ISO) nodeadkeys Belgian (no dead keys) sundeadkeys Belgian (with Sun dead keys) wang Belgian (Wang 724 AZERTY) bd bn Bangla ben sat probhat Bangla (Probhat) in in Indian ben bn Bangla (India) ben sat ben_probhat bn Bangla (India, Probhat) ben sat ben_baishakhi Bangla (India, Baishakhi) ben sat ben_bornona Bangla (India, Bornona) ben sat ben_gitanjali Bangla (India, Uni Gitanjali) ben sat ben_inscript Bangla (India, Baishakhi Inscript) ben sat eeyek Manipuri (Eeyek) mni guj gu Gujarati guj guru pa Punjabi (Gurmukhi) pan jhelum pa Punjabi (Gurmukhi Jhelum) pan kan kn Kannada kan kan-kagapa kn Kannada (KaGaPa phonetic) kan mal ml Malayalam mal mal_lalitha ml Malayalam (Lalitha) mal mal_enhanced ml Malayalam (enhanced Inscript, with rupee) mal ori or Oriya ori sat olck sat Ol Chiki sat tam_tamilnet ta Tamil (TamilNet '99) tam tam_tamilnet_with_tam_nums ta Tamil (TamilNet '99 with Tamil numerals) tam tam_tamilnet_TAB ta Tamil (TamilNet '99, TAB encoding) tam tam_tamilnet_TSCII ta Tamil (TamilNet '99, TSCII encoding) tam tam ta Tamil (Inscript) tam tel te Telugu tel tel-kagapa te Telugu (KaGaPa phonetic) tel tel-sarala te Telugu (Sarala) tel tel-kagapa te Telugu (KaGaPa phonetic) tel urd-phonetic ur Urdu (phonetic) urd urd-phonetic3 ur Urdu (alt. phonetic) urd urd-winkeys ur Urdu (Win keys) urd bolnagri hi Hindi (Bolnagri) hin hin-wx hi Hindi (Wx) hin hin-kagapa hi Hindi (KaGaPa phonetic) hin san-kagapa sa Sanskrit (KaGaPa phonetic) san mar-kagapa mr Marathi (KaGaPa phonetic) mar eng en English (India, with rupee) eng ba bs Bosnian bos alternatequotes Bosnian (with guillemets) unicode Bosnian (with Bosnian digraphs) unicodeus Bosnian (US, with Bosnian digraphs) us Bosnian (US, with Bosnian letters) br pt Portuguese (Brazil) por nodeadkeys Portuguese (Brazil, no dead keys) dvorak Portuguese (Brazil, Dvorak) nativo Portuguese (Brazil, Nativo) nativo-us Portuguese (Brazil, Nativo for US keyboards) nativo-epo Esperanto (Brazil, Nativo) epo thinkpad Portuguese (Brazil, IBM/Lenovo ThinkPad) bg bg Bulgarian bul phonetic Bulgarian (traditional phonetic) bas_phonetic Bulgarian (new phonetic) dz la Berber (Algeria, Latin) ber ber Berber (Algeria, Tifinagh) ber ar ar Arabic (Algeria) ara ma ar Arabic (Morocco) french fr French (Morocco) fra tifinagh ber Berber (Morocco, Tifinagh) ber tifinagh-alt ber Berber (Morocco, Tifinagh alt.) ber tifinagh-alt-phonetic ber Berber (Morocco, Tifinagh alt. phonetic) ber tifinagh-extended ber Berber (Morocco, Tifinagh extended) ber tifinagh-phonetic ber Berber (Morocco, Tifinagh phonetic) ber tifinagh-extended-phonetic ber Berber (Morocco, Tifinagh extended phonetic) ber cm cm English (Cameroon) eng french French (Cameroon) fra qwerty Cameroon Multilingual (QWERTY) eng bas nmg fub ewo xmd mfh bkm ozm lns sox pny wes lem nyj mfk mcp ass xed dua anv bum btb bfd azo ken yam yat yas azerty Cameroon Multilingual (AZERTY) fra bas nmg fub ewo xmd mfh bkm ozm lns sox pny wes lem nyj mfk mcp ass xed dua anv bum btb bfd azo ken yam yat yas dvorak Cameroon Multilingual (Dvorak) mmuock Mmuock mm my Burmese mya zawgyi zg Burmese Zawgyi ca fr French (Canada) fra fr-dvorak fr French (Canada, Dvorak) fr-legacy fr French (Canada, legacy) multix Canadian Multilingual multi Canadian Multilingual (1st part) multi-2gr Canadian Multilingual (2nd part) ike ike Inuktitut iku eng en English (Canada) eng cd fr French (Democratic Republic of the Congo) fra cn zh Chinese zho mon_trad Mongolian (Bichig) mvf mon_trad_todo Mongolian Todo mvf mon_trad_xibe Mongolian Xibe sjo mon_trad_manchu Mongolian Manchu mnc mon_trad_galik Mongolian Galik mvf mon_todo_galik Mongolian Todo Galik mvf mon_manchu_galik Mongolian Manchu Galik mnc tib Tibetan tib tib_asciinum Tibetan (with ASCII numerals) tib ug ug Uyghur uig altgr-pinyin Hanyu Pinyin (altgr) zho hr hr Croatian hrv alternatequotes Croatian (with guillemets) unicode Croatian (with Croatian digraphs) unicodeus Croatian (US, with Croatian digraphs) us Croatian (US, with Croatian letters) cz cs Czech ces bksl Czech (with <\|> key) qwerty Czech (QWERTY) qwerty_bksl Czech (QWERTY, extended backslash) qwerty-mac Czech (QWERTY, Macintosh) ucw Czech (UCW, only accented letters) dvorak-ucw Czech (US, Dvorak, UCW support) rus ru Russian (Czech, phonetic) rus dk da Danish dan nodeadkeys Danish (no dead keys) winkeys Danish (Win keys) mac Danish (Macintosh) mac_nodeadkeys Danish (Macintosh, no dead keys) dvorak Danish (Dvorak) nl nl Dutch nld sundeadkeys Dutch (with Sun dead keys) mac Dutch (Macintosh) std Dutch (standard) bt dz Dzongkha dzo ee et Estonian est nodeadkeys Estonian (no dead keys) dvorak Estonian (Dvorak) us Estonian (US, with Estonian letters) ir fa Persian fas pes_keypad Persian (with Persian keypad) ku ku Kurdish (Iran, Latin Q) kur ku_f ku Kurdish (Iran, F) kur ku_alt ku Kurdish (Iran, Latin Alt-Q) kur ku_ara ku Kurdish (Iran, Arabic-Latin) kur iq ar Iraqi ara kur ku ku Kurdish (Iraq, Latin Q) kur ku_f ku Kurdish (Iraq, F) kur ku_alt ku Kurdish (Iraq, Latin Alt-Q) kur ku_ara ku Kurdish (Iraq, Arabic-Latin) kur fo fo Faroese fao nodeadkeys Faroese (no dead keys) fi fi Finnish fin classic Finnish (classic) nodeadkeys Finnish (classic, no dead keys) winkeys Finnish (Winkeys) smi Northern Saami (Finland) sme mac Finnish (Macintosh) fr fr French fra nodeadkeys French (no dead keys) sundeadkeys French (with Sun dead keys) oss French (alt.) oss_latin9 French (alt., Latin-9 only) oss_nodeadkeys French (alt., no dead keys) oss_sundeadkeys French (alt., with Sun dead keys) latin9 French (legacy, alt.) latin9_nodeadkeys French (legacy, alt., no dead keys) latin9_sundeadkeys French (legacy, alt., with Sun dead keys) bepo French (Bepo, ergonomic, Dvorak way) bepo_latin9 French (Bepo, ergonomic, Dvorak way, Latin-9 only) bepo_afnor French (Bepo, ergonomic, Dvorak way, AFNOR) dvorak French (Dvorak) mac French (Macintosh) azerty French (AZERTY) afnor French (AFNOR standardized AZERTY) bre French (Breton) oci Occitan oci geo Georgian (France, AZERTY Tskapo) kat us French (US, with French letters) gh en English (Ghana) eng generic English (Ghana, multilingual) akan ak Akan aka ewe ee Ewe ewe fula ff Fula ful ga gaa Ga gaa hausa ha Hausa (Ghana) hau avn avn Avatime avn gillbt English (Ghana, GILLBT) gn fr French (Guinea) fra ge ka Georgian kat ergonomic Georgian (ergonomic) mess Georgian (MESS) ru ru Russian (Georgia) rus os Ossetian (Georgia) oss de de German deu deadacute German (dead acute) deadgraveacute German (dead grave acute) nodeadkeys German (no dead keys) T3 German (T3) ro Romanian (Germany) ron ro_nodeadkeys Romanian (Germany, no dead keys) ron dvorak German (Dvorak) sundeadkeys German (with Sun dead keys) neo German (Neo 2) mac German (Macintosh) mac_nodeadkeys German (Macintosh, no dead keys) dsb Lower Sorbian dsb dsb_qwertz Lower Sorbian (QWERTZ) dsb qwerty German (QWERTY) tr Turkish (Germany) tr ru ru Russian (Germany, phonetic) rus deadtilde German (dead tilde) gr gr Greek ell simple Greek (simple) extended Greek (extended) nodeadkeys Greek (no dead keys) polytonic Greek (polytonic) hu hu Hungarian hun standard Hungarian (standard) nodeadkeys Hungarian (no dead keys) qwerty Hungarian (QWERTY) 101_qwertz_comma_dead Hungarian (101/QWERTZ/comma/dead keys) 101_qwertz_comma_nodead Hungarian (101/QWERTZ/comma/no dead keys) 101_qwertz_dot_dead Hungarian (101/QWERTZ/dot/dead keys) 101_qwertz_dot_nodead Hungarian (101/QWERTZ/dot/no dead keys) 101_qwerty_comma_dead Hungarian (101/QWERTY/comma/dead keys) 101_qwerty_comma_nodead Hungarian (101/QWERTY/comma/no dead keys) 101_qwerty_dot_dead Hungarian (101/QWERTY/dot/dead keys) 101_qwerty_dot_nodead Hungarian (101/QWERTY/dot/no dead keys) 102_qwertz_comma_dead Hungarian (102/QWERTZ/comma/dead keys) 102_qwertz_comma_nodead Hungarian (102/QWERTZ/comma/no dead keys) 102_qwertz_dot_dead Hungarian (102/QWERTZ/dot/dead keys) 102_qwertz_dot_nodead Hungarian (102/QWERTZ/dot/no dead keys) 102_qwerty_comma_dead Hungarian (102/QWERTY/comma/dead keys) 102_qwerty_comma_nodead Hungarian (102/QWERTY/comma/no dead keys) 102_qwerty_dot_dead Hungarian (102/QWERTY/dot/dead keys) 102_qwerty_dot_nodead Hungarian (102/QWERTY/dot/no dead keys) is is Icelandic isl Sundeadkeys Icelandic (with Sun dead keys) nodeadkeys Icelandic (no dead keys) mac_legacy Icelandic (Macintosh, legacy) mac Icelandic (Macintosh) dvorak Icelandic (Dvorak) il he Hebrew heb lyx Hebrew (lyx) phonetic Hebrew (phonetic) biblical Hebrew (Biblical, Tiro) it it Italian ita nodeadkeys Italian (no dead keys) winkeys Italian (Winkeys) mac Italian (Macintosh) us Italian (US, with Italian letters) geo Georgian (Italy) kat ibm Italian (IBM 142) intl Italian (intl., with dead keys) deu fra ita slk srd nap scn fur scn Sicilian ita scn fur Friulian (Italy) fur jp ja Japanese jpn kana Japanese (Kana) kana86 Japanese (Kana 86) OADG109A Japanese (OADG 109A) mac Japanese (Macintosh) dvorak Japanese (Dvorak) kg ki Kyrgyz kir phonetic Kyrgyz (phonetic) kh km Khmer (Cambodia) khm kz kk Kazakh kaz ruskaz ru Russian (Kazakhstan, with Kazakh) kaz rus kazrus Kazakh (with Russian) kaz rus ext Kazakh (extended) kaz latin Kazakh (Latin) kaz la lo Lao lao stea Lao (STEA proposed standard layout) lao latam es Spanish (Latin American) AR BO CL CO CR CU DO EC GT HN HT MX NI PA PE PR PY SV US UY VE spa nodeadkeys Spanish (Latin American, no dead keys) deadtilde Spanish (Latin American, dead tilde) sundeadkeys Spanish (Latin American, with Sun dead keys) dvorak Spanish (Latin American, Dvorak) colemak Spanish (Latin American, Colemak) colemak-gaming Spanish (Latin American, Colemak for gaming) lt lt Lithuanian lit std Lithuanian (standard) us Lithuanian (US, with Lithuanian letters) ibm Lithuanian (IBM LST 1205-92) lekp Lithuanian (LEKP) lekpa Lithuanian (LEKPa) lv lv Latvian lav apostrophe Latvian (apostrophe) tilde Latvian (tilde) fkey Latvian (F) modern Latvian (modern) ergonomic Latvian (ergonomic, ŪGJRMV) adapted Latvian (adapted) mao mi Maori mri me sr Montenegrin srp cyrillic Montenegrin (Cyrillic) cyrillicyz Montenegrin (Cyrillic, ZE and ZHE swapped) latinunicode Montenegrin (Latin, Unicode) latinyz Montenegrin (Latin, QWERTY) latinunicodeyz Montenegrin (Latin, Unicode, QWERTY) cyrillicalternatequotes Montenegrin (Cyrillic with guillemets) latinalternatequotes Montenegrin (Latin with guillemets) mk mk Macedonian mkd nodeadkeys Macedonian (no dead keys) mt mt Maltese mlt us Maltese (with US layout) alt-us Maltese (US layout with AltGr overrides) alt-gb Maltese (UK layout with AltGr overrides) mn mn Mongolian mon no no Norwegian nor nob nno nodeadkeys Norwegian (no dead keys) winkeys Norwegian (Win keys) dvorak Norwegian (Dvorak) smi Northern Saami (Norway) sme smi_nodeadkeys Northern Saami (Norway, no dead keys) sme mac Norwegian (Macintosh) mac_nodeadkeys Norwegian (Macintosh, no dead keys) colemak Norwegian (Colemak) pl pl Polish pol legacy Polish (legacy) qwertz Polish (QWERTZ) dvorak Polish (Dvorak) dvorak_quotes Polish (Dvorak, with Polish quotes on quotemark key) dvorak_altquotes Polish (Dvorak, with Polish quotes on key 1) csb Kashubian csb szl Silesian szl ru_phonetic_dvorak ru Russian (Poland, phonetic Dvorak) rus dvp Polish (programmer Dvorak) pt pt Portuguese por nodeadkeys Portuguese (no dead keys) sundeadkeys Portuguese (with Sun dead keys) mac Portuguese (Macintosh) mac_nodeadkeys Portuguese (Macintosh, no dead keys) mac_sundeadkeys Portuguese (Macintosh, with Sun dead keys) nativo Portuguese (Nativo) nativo-us Portuguese (Nativo for US keyboards) nativo-epo Esperanto (Portugal, Nativo) epo ro ro Romanian ron cedilla Romanian (cedilla) std Romanian (standard) std_cedilla Romanian (standard cedilla) winkeys Romanian (Win keys) ru ru Russian rus phonetic Russian (phonetic) phonetic_winkeys Russian (phonetic, with Win keys) phonetic_yazherty Russian (phonetic yazherty) typewriter Russian (typewriter) legacy Russian (legacy) typewriter-legacy Russian (typewriter, legacy) tt Tatar tat os_legacy Ossetian (legacy) oss os_winkeys Ossetian (Win keys) oss cv Chuvash chv cv_latin Chuvash (Latin) chv udm Udmurt udm kom Komi kom sah Yakut sah xal Kalmyk xal dos Russian (DOS) mac Russian (Macintosh) srp Serbian (Russia) rus srp bak Bashkirian bak chm Mari chm phonetic_azerty Russian (phonetic, AZERTY) phonetic_dvorak Russian (phonetic, Dvorak) phonetic_fr Russian (phonetic, French) rs sr Serbian srp yz Serbian (Cyrillic, ZE and ZHE swapped) latin Serbian (Latin) latinunicode Serbian (Latin, Unicode) latinyz Serbian (Latin, QWERTY) latinunicodeyz Serbian (Latin, Unicode, QWERTY) alternatequotes Serbian (Cyrillic with guillemets) latinalternatequotes Serbian (Latin with guillemets) rue Pannonian Rusyn rue si sl Slovenian slv alternatequotes Slovenian (with guillemets) us Slovenian (US, with Slovenian letters) sk sk Slovak slk bksl Slovak (extended backslash) qwerty Slovak (QWERTY) qwerty_bksl Slovak (QWERTY, extended backslash) es es Spanish spa nodeadkeys Spanish (no dead keys) winkeys Spanish (Win keys) deadtilde Spanish (dead tilde) sundeadkeys Spanish (with Sun dead keys) dvorak Spanish (Dvorak) ast ast Asturian (Spain, with bottom-dot H and bottom-dot L) ast cat ca Catalan (Spain, with middle-dot L) cat mac Spanish (Macintosh) se sv Swedish swe nodeadkeys Swedish (no dead keys) dvorak Swedish (Dvorak) rus ru Russian (Sweden, phonetic) rus rus_nodeadkeys ru Russian (Sweden, phonetic, no dead keys) rus smi Northern Saami (Sweden) sme mac Swedish (Macintosh) svdvorak Swedish (Svdvorak) us_dvorak Swedish (based on US Intl. Dvorak) us Swedish (US, with Swedish letters) swl Swedish Sign Language swl ch de German (Switzerland) deu gsw legacy German (Switzerland, legacy) de_nodeadkeys de German (Switzerland, no dead keys) de_sundeadkeys de German (Switzerland, with Sun dead keys) fr fr French (Switzerland) fra fr_nodeadkeys fr French (Switzerland, no dead keys) fra fr_sundeadkeys fr French (Switzerland, with Sun dead keys) fra fr_mac fr French (Switzerland, Macintosh) fra de_mac de German (Switzerland, Macintosh) sy ar Arabic (Syria) syr syc syc Syriac syc_phonetic syc Syriac (phonetic) ku ku Kurdish (Syria, Latin Q) kur ku_f ku Kurdish (Syria, F) kur ku_alt ku Kurdish (Syria, Latin Alt-Q) kur tj tg Tajik tgk legacy Tajik (legacy) lk si Sinhala (phonetic) sin tam_unicode ta Tamil (Sri Lanka, TamilNet '99) tam tam_TAB Tamil (Sri Lanka, TamilNet '99, TAB encoding) tam us us Sinhala (US, with Sinhala letters) th th Thai tha tis Thai (TIS-820.2538) pat Thai (Pattachote) tr tr Turkish tur f Turkish (F) alt Turkish (Alt-Q) sundeadkeys Turkish (with Sun dead keys) ku ku Kurdish (Turkey, Latin Q) kur ku_f ku Kurdish (Turkey, F) kur ku_alt ku Kurdish (Turkey, Latin Alt-Q) kur intl Turkish (intl., with dead keys) crh crh Crimean Tatar (Turkish Q) crh crh_f crh Crimean Tatar (Turkish F) crh crh_alt crh Crimean Tatar (Turkish Alt-Q) crh tw zh Taiwanese fox indigenous Taiwanese (indigenous) ami tay bnn ckv pwn pyu dru ais ssf tao tsu trv xnb sxr uun fos saisiyat xsy Saisiyat (Taiwan) xsy ua uk Ukrainian ukr phonetic Ukrainian (phonetic) typewriter Ukrainian (typewriter) winkeys Ukrainian (Win keys) legacy Ukrainian (legacy) rstu Ukrainian (standard RSTU) rstu_ru Russian (Ukraine, standard RSTU) homophonic Ukrainian (homophonic) gb en English (UK) eng extd English (UK, extended, with Win keys) intl English (UK, intl., with dead keys) dvorak English (UK, Dvorak) dvorakukp English (UK, Dvorak, with UK punctuation) mac English (UK, Macintosh) mac_intl English (UK, intl., Macintosh) colemak English (UK, Colemak) pl pl Polish (British keyboard) pol uz uz Uzbek uzb latin Uzbek (Latin) vn vi Vietnamese vie us Vietnamese (US, with Vietnamese letters) fr Vietnamese (French, with Vietnamese letters) kr ko Korean kor kr104 Korean (101/104 key compatible) nec_vndr/jp ja Japanese (PC-98) JP jpn ie ie Irish eng CloGaelach CloGaelach gle UnicodeExpert Irish (UnicodeExpert) ogam Ogham sga ogam_is434 Ogham (IS434) sga pk ur Urdu (Pakistan) urd urd-crulp Urdu (Pakistan, CRULP) urd-nla Urdu (Pakistan, NLA) ara ar Arabic (Pakistan) ara snd sd Sindhi snd mv dv Dhivehi div za en English (South Africa) eng epo eo Esperanto epo legacy Esperanto (displaced semicolon and quote, obsolete) np ne Nepali nep sat ng en English (Nigeria) eng igbo ig Igbo ibo yoruba yo Yoruba yor hausa ha Hausa (Nigeria) hau et am Amharic amh sn wo Wolof wol brai brl Braille left_hand Braille (left-handed) left_hand_invert Braille (left-handed inverted thumb) right_hand Braille (right-handed) right_hand_invert Braille (right-handed inverted thumb) tm tk Turkmen tuk alt Turkmen (Alt-Q) ml bm Bambara bam fr-oss fr French (Mali, alt.) fra us-mac en English (Mali, US, Macintosh) eng us-intl en English (Mali, US, intl.) eng tz sw Swahili (Tanzania) swa tg fr-tg French (Togo) fra ajg blo kpo ewe fon fue gej ife kbp las dop mfg nmz bud gng kdh soy ke sw Swahili (Kenya) swa kik ki Kikuyu kik bw tn Tswana tsn ph ph Filipino eng bik ceb fil hil ilo pam pag phi tgl war qwerty-bay Filipino (QWERTY, Baybayin) bik ceb fil hil ilo pam pag phi tgl war capewell-dvorak Filipino (Capewell-Dvorak, Latin) capewell-dvorak-bay Filipino (Capewell-Dvorak, Baybayin) bik ceb fil hil ilo pam pag phi tgl war capewell-qwerf2k6 Filipino (Capewell-QWERF 2006, Latin) capewell-qwerf2k6-bay Filipino (Capewell-QWERF 2006, Baybayin) bik ceb fil hil ilo pam pag phi tgl war colemak Filipino (Colemak, Latin) colemak-bay Filipino (Colemak, Baybayin) bik ceb fil hil ilo pam pag phi tgl war dvorak Filipino (Dvorak, Latin) dvorak-bay Filipino (Dvorak, Baybayin) bik ceb fil hil ilo pam pag phi tgl war md md Moldavian ron gag gag Moldavian (Gagauz) gag id id Indonesian (Arab Melayu, phonetic) ind msa min ace bjn tsg mfa phoneticx Indonesian (Arab Melayu, ext. phonetic) my ms Malay (Jawi, Arabic Keyboard) ind msa min ace bjn tsg mfa phonetic Malay (Jawi, phonetic) grp Switching to another layout lv3 Key to choose the 3rd level ctrl Ctrl position grp_led Use keyboard LED to show alternative layout keypad Layout of numeric keypad kpdl Numeric keypad Delete behavior caps Caps Lock behavior altwin Alt/Win key behavior Compose key Position of Compose key compat Miscellaneous compatibility options currencysign Adding currency signs to certain keys lv5 Key to choose 5th level nbsp Using space key to input non-breaking space japan Japanese keyboard options korean Korean Hangul/Hanja keys esperanto Adding Esperanto supersigned letters solaris Maintain key compatibility with old Solaris keycodes terminate Key sequence to kill the X server PK(f[FP̉̉rules/evdev.xmlnu[ pc101 Generic 101-key PC Generic pc102 Generic 102-key PC (intl.) Generic pc104 Generic 104-key PC Generic pc105 Generic 105-key PC (intl.) Generic dell101 Dell 101-key PC Dell latitude Dell Latitude laptop Dell dellm65 Dell Precision M65 laptop Dell everex Everex STEPnote Everex flexpro Keytronic FlexPro Keytronic microsoft Microsoft Natural Microsoft omnikey101 Northgate OmniKey 101 Northgate winbook Winbook Model XP5 Generic pc98 PC-98 Generic a4techKB21 A4Tech KB-21 A4Tech a4techKBS8 A4Tech KBS-8 A4Tech a4_rfkb23 A4Tech Wireless Desktop RFKB-23 A4Tech airkey Acer AirKey V Acer azonaRF2300 Azona RF2300 wireless Internet Azona scorpius Advance Scorpius KI Scorpius brother Brother Internet Brother btc5113rf BTC 5113RF Multimedia BTC btc5126t BTC 5126T BTC btc6301urf BTC 6301URF BTC btc9000 BTC 9000 BTC btc9000a BTC 9000A BTC btc9001ah BTC 9001AH BTC btc5090 BTC 5090 BTC btc9019u BTC 9019U BTC btc9116u BTC 9116U Mini Wireless Internet and Gaming cherryblue Cherry Blue Line CyBo@rd cherryblueb Cherry CyMotion Master XPress Cherry cherrybluea Cherry Blue Line CyBo@rd (alt.) Cherry cherrycyboard Cherry CyBo@rd USB-Hub Cherry cherrycmexpert Cherry CyMotion Expert Cherry cherrybunlim Cherry B.UNLIMITED Cherry chicony Chicony Internet Chicony chicony0108 Chicony KU-0108 Chicony chicony0420 Chicony KU-0420 Chicony chicony9885 Chicony KB-9885 Chicony compaqeak8 Compaq Easy Access Compaq compaqik7 Compaq Internet (7 keys) Compaq compaqik13 Compaq Internet (13 keys) Compaq compaqik18 Compaq Internet (18 keys) Compaq cymotionlinux Cherry CyMotion Master Linux Cherry armada Compaq Armada laptop Compaq presario Compaq Presario laptop Compaq ipaq Compaq iPaq Compaq dell Dell Dell dellsk8125 Dell SK-8125 Dell dellsk8135 Dell SK-8135 Dell dellusbmm Dell USB Multimedia Dell inspiron Dell Inspiron 6000/8000 laptop Dell precision_m Dell Precision M laptop Dell dexxa Dexxa Wireless Desktop Dexxa diamond Diamond 9801/9802 Diamond dtk2000 DTK2000 ennyah_dkb1008 Ennyah DKB-1008 Ennyah fscaa1667g Fujitsu-Siemens Amilo laptop Fujitsu-Siemens genius Genius Comfy KB-16M/Multimedia KWD-910 Genius geniuscomfy Genius Comfy KB-12e Genius geniuscomfy2 Genius Comfy KB-21e-Scroll Genius geniuskb19e Genius KB-19e NB Genius geniuskkb2050hs Genius KKB-2050HS Genius gyration Gyration Gyration htcdream HTC Dream HTC kinesis Kinesis Kinesis logitech_base Logitech Logitech logitech_g15 Logitech G15 extra keys via G15daemon Logitech hpi6 Hewlett-Packard Internet Hewlett-Packard hp250x Hewlett-Packard NEC SK-2500 Multimedia Hewlett-Packard hpxe3gc Hewlett-Packard Omnibook XE3 GC Hewlett-Packard hpxe3gf Hewlett-Packard Omnibook XE3 GF Hewlett-Packard hpxt1000 Hewlett-Packard Omnibook XT1000 Hewlett-Packard hpdv5 Hewlett-Packard Pavilion dv5 Hewlett-Packard hpzt11xx Hewlett-Packard Pavilion ZT1100 Hewlett-Packard hp500fa Hewlett-Packard Omnibook 500 FA Hewlett-Packard hp5xx Hewlett-Packard Omnibook 500 Hewlett-Packard hpnx9020 Hewlett-Packard nx9020 Hewlett-Packard hp6000 Hewlett-Packard Omnibook 6000/6100 Hewlett-Packard honeywell_euroboard Honeywell Euroboard Hewlett-Packard hpmini110 Hewlett-Packard Mini 110 laptop Hewlett-Packard rapidaccess IBM Rapid Access Lenovo (previously IBM) rapidaccess2 IBM Rapid Access II Lenovo (previously IBM) thinkpad IBM ThinkPad 560Z/600/600E/A22E Lenovo (previously IBM) thinkpad60 IBM ThinkPad R60/T60/R61/T61 Lenovo (previously IBM) thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t Lenovo (previously IBM) ibm_spacesaver IBM Space Saver Lenovo (previously IBM) logiaccess Logitech Access Logitech logiclx300 Logitech Cordless Desktop LX-300 Logitech logii350 Logitech Internet 350 Logitech 046d:c313 logimel Logitech Internet 350 Logitech logicd Logitech Cordless Desktop Logitech logicd_it Logitech Cordless Desktop iTouch Logitech logicd_nav Logitech Cordless Desktop Navigator Logitech logicd_opt Logitech Cordless Desktop Optical Logitech logicda Logitech Cordless Desktop (alt.) Logitech logicdpa2 Logitech Cordless Desktop Pro (2nd alt.) Logitech logicfn Logitech Cordless Freedom/Desktop Navigator Logitech logicdn Logitech Cordless Desktop Navigator Logitech logiitc Logitech iTouch Cordless Y-RB6 Logitech logiik Logitech Internet Logitech itouch Logitech iTouch Logitech logicink Logitech Internet Navigator Logitech logiex110 Logitech Cordless Desktop EX110 Logitech logiinkse Logitech iTouch Internet Navigator SE Logitech logiinkseusb Logitech iTouch Internet Navigator SE USB Logitech logiultrax Logitech Ultra-X Logitech logiultraxc Logitech Ultra-X Cordless Media Desktop Logitech logidinovo Logitech diNovo Logitech logidinovoedge Logitech diNovo Edge Logitech mx1998 Memorex MX1998 Memorex mx2500 Memorex MX2500 EZ-Access Memorex mx2750 Memorex MX2750 Memorex microsoft4000 Microsoft Natural Ergonomic 4000 Microsoft microsoft7000 Microsoft Natural Wireless Ergonomic 7000 Microsoft microsoftinet Microsoft Internet Microsoft microsoftpro Microsoft Natural Pro/Internet Pro Microsoft microsoftprousb Microsoft Natural Pro USB/Internet Pro Microsoft microsoftprooem Microsoft Natural Pro OEM Microsoft vsonku306 ViewSonic KU-306 Internet ViewSonic microsoftprose Microsoft Internet Pro (Swedish) Microsoft microsoftoffice Microsoft Office Keyboard Microsoft microsoftmult Microsoft Wireless Multimedia 1.0A Microsoft microsoftelite Microsoft Natural Elite Microsoft microsoftccurve2k Microsoft Comfort Curve 2000 Microsoft oretec Ortek Multimedia/Internet MCK-800 Ortek propeller Propeller Voyager KTEZ-1000 KeyTronic qtronix QTronix Scorpius 98N+ QTronix samsung4500 Samsung SDM 4500P Samsung samsung4510 Samsung SDM 4510P Samsung sanwaskbkg3 Sanwa Supply SKB-KG3 Sanwa Supply Inc. sk1300 NEC SK-1300 NEC sk2500 NEC SK-2500 NEC sk6200 NEC SK-6200 NEC sk7100 NEC SK-7100 NEC sp_inet Super Power Multimedia Generic sven SVEN Ergonomic 2500 SVEN sven303 SVEN Slim 303 SVEN symplon Symplon PaceBook tablet Symplon toshiba_s3000 Toshiba Satellite S3000 Toshiba trust Trust Wireless Classic Trust trustda Trust Direct Access Trust trust_slimline Trust Slimline Trust tm2020 TypeMatrix EZ-Reach 2020 TypeMatrix tm2030PS2 TypeMatrix EZ-Reach 2030 PS2 TypeMatrix tm2030USB TypeMatrix EZ-Reach 2030 USB TypeMatrix tm2030USB-102 TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) TypeMatrix tm2030USB-106 TypeMatrix EZ-Reach 2030 USB (106:JP mode) TypeMatrix yahoo Yahoo! Internet Yahoo! macbook78 MacBook/MacBook Pro Apple macbook79 MacBook/MacBook Pro (intl.) Apple macintosh Macintosh Apple macintosh_old Macintosh Old Apple macintosh_hhk Happy Hacking for Mac Fujitsu acer_c300 Acer C300 Acer acer_ferrari4k Acer Ferrari 4000 Acer acer_laptop Acer laptop Acer asus_laptop Asus laptop Asus apple Apple Apple apple_laptop Apple laptop Apple applealu_ansi Apple Aluminium (ANSI) Apple applealu_iso Apple Aluminium (ISO) Apple applealu_jis Apple Aluminium (JIS) Apple silvercrest Silvercrest Multimedia Wireless Silvercrest emachines eMachines m6800 laptop eMachines benqx BenQ X-Touch BenQ benqx730 BenQ X-Touch 730 BenQ benqx800 BenQ X-Touch 800 BenQ hhk Happy Hacking Fujitsu classmate Classmate PC Intel olpc OLPC OLPC sun_type7_usb Sun Type 7 USB Sun Microsystems sun_type7_euro_usb Sun Type 7 USB (European) Sun Microsystems sun_type7_unix_usb Sun Type 7 USB (Unix) Sun Microsystems sun_type7_jp_usb Sun Type 7 USB (Japanese)/Japanese 106-key Sun Microsystems sun_type6_usb Sun Type 6/7 USB Sun Microsystems sun_type6_euro_usb Sun Type 6/7 USB (European) Sun Microsystems sun_type6_unix_usb Sun Type 6 USB (Unix) Sun Microsystems sun_type6_jp_usb Sun Type 6 USB (Japanese) Sun Microsystems sun_type6_jp Sun Type 6 (Japanese) Sun Microsystems targa_v811 Targa Visionary 811 Targa unitekkb1925 Unitek KB-1925 Unitek Group compalfl90 FL90 Compal Electronics creativedw7000 Creative Desktop Wireless 7000 Creative htcdream Htc Dream phone htc teck227 Truly Ergonomic 227 Truly Ergonomic teck229 Truly Ergonomic 229 Truly Ergonomic apex300 SteelSeries Apex 300 (Apex RAW) SteelSeries chromebook Chromebook Google teck227 Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) Megawin Technology teck229 Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) Megawin Technology us en English (US) eng chr chr Cherokee chr euro English (US, euro on 5) intl English (US, intl., with dead keys) alt-intl English (US, alt. intl.) colemak English (Colemak) dvorak English (Dvorak) dvorak-intl English (Dvorak, intl., with dead keys) dvorak-alt-intl English (Dvorak, alt. intl.) dvorak-l English (Dvorak, left-handed) dvorak-r English (Dvorak, right-handed) dvorak-classic English (classic Dvorak) dvp English (programmer Dvorak) rus ru Russian (US, phonetic) rus mac English (Macintosh) altgr-intl English (intl., with AltGr dead keys) eng fra deu olpc2 English (the divide/multiply keys toggle the layout) hbs Serbo-Croatian (US) eng bos hbs hrv srp norman English (Norman) workman English (Workman) workman-intl English (Workman, intl., with dead keys) af fa Afghani ps ps Pashto pus uz uz Uzbek (Afghanistan) uzb olpc-ps ps Pashto (Afghanistan, OLPC) pus fa-olpc fa Persian (Afghanistan, Dari OLPC) uz-olpc uz Uzbek (Afghanistan, OLPC) uzb ara ar Arabic AE BH DZ EG EH JO KW LB LY MA MR OM PS QA SA SD SY TN YE ara azerty Arabic (AZERTY) azerty_digits Arabic (AZERTY/digits) digits Arabic (digits) qwerty Arabic (QWERTY) qwerty_digits Arabic (qwerty/digits) buckwalter Arabic (Buckwalter) olpc Arabic (OLPC) mac Arabic (Macintosh) al sq Albanian sqi plisi Albanian (Plisi) am hy Armenian hye phonetic Armenian (phonetic) phonetic-alt Armenian (alt. phonetic) eastern Armenian (eastern) western Armenian (western) eastern-alt Armenian (alt. eastern) at de German (Austria) deu nodeadkeys German (Austria, no dead keys) sundeadkeys German (Austria, with Sun dead keys) mac German (Austria, Macintosh) au en English (Australian) eng az az Azerbaijani aze cyrillic Azerbaijani (Cyrillic) by by Belarusian bel legacy Belarusian (legacy) latin Belarusian (Latin) be be Belgian deu nld fra oss Belgian (alt.) oss_latin9 Belgian (alt., Latin-9 only) oss_sundeadkeys Belgian (alt., with Sun dead keys) iso-alternate Belgian (alt. ISO) nodeadkeys Belgian (no dead keys) sundeadkeys Belgian (with Sun dead keys) wang Belgian (Wang 724 AZERTY) bd bn Bangla ben sat probhat Bangla (Probhat) in in Indian ben bn Bangla (India) ben sat ben_probhat bn Bangla (India, Probhat) ben sat ben_baishakhi Bangla (India, Baishakhi) ben sat ben_bornona Bangla (India, Bornona) ben sat ben_gitanjali Bangla (India, Uni Gitanjali) ben sat ben_inscript Bangla (India, Baishakhi Inscript) ben sat eeyek Manipuri (Eeyek) mni guj gu Gujarati guj guru pa Punjabi (Gurmukhi) pan jhelum pa Punjabi (Gurmukhi Jhelum) pan kan kn Kannada kan kan-kagapa kn Kannada (KaGaPa phonetic) kan mal ml Malayalam mal mal_lalitha ml Malayalam (Lalitha) mal mal_enhanced ml Malayalam (enhanced Inscript, with rupee) mal ori or Oriya ori sat olck sat Ol Chiki sat tam_tamilnet ta Tamil (TamilNet '99) tam tam_tamilnet_with_tam_nums ta Tamil (TamilNet '99 with Tamil numerals) tam tam_tamilnet_TAB ta Tamil (TamilNet '99, TAB encoding) tam tam_tamilnet_TSCII ta Tamil (TamilNet '99, TSCII encoding) tam tam ta Tamil (Inscript) tam tel te Telugu tel tel-kagapa te Telugu (KaGaPa phonetic) tel tel-sarala te Telugu (Sarala) tel tel-kagapa te Telugu (KaGaPa phonetic) tel urd-phonetic ur Urdu (phonetic) urd urd-phonetic3 ur Urdu (alt. phonetic) urd urd-winkeys ur Urdu (Win keys) urd bolnagri hi Hindi (Bolnagri) hin hin-wx hi Hindi (Wx) hin hin-kagapa hi Hindi (KaGaPa phonetic) hin san-kagapa sa Sanskrit (KaGaPa phonetic) san mar-kagapa mr Marathi (KaGaPa phonetic) mar eng en English (India, with rupee) eng ba bs Bosnian bos alternatequotes Bosnian (with guillemets) unicode Bosnian (with Bosnian digraphs) unicodeus Bosnian (US, with Bosnian digraphs) us Bosnian (US, with Bosnian letters) br pt Portuguese (Brazil) por nodeadkeys Portuguese (Brazil, no dead keys) dvorak Portuguese (Brazil, Dvorak) nativo Portuguese (Brazil, Nativo) nativo-us Portuguese (Brazil, Nativo for US keyboards) nativo-epo Esperanto (Brazil, Nativo) epo thinkpad Portuguese (Brazil, IBM/Lenovo ThinkPad) bg bg Bulgarian bul phonetic Bulgarian (traditional phonetic) bas_phonetic Bulgarian (new phonetic) dz la Berber (Algeria, Latin) ber ber Berber (Algeria, Tifinagh) ber ar ar Arabic (Algeria) ara ma ar Arabic (Morocco) french fr French (Morocco) fra tifinagh ber Berber (Morocco, Tifinagh) ber tifinagh-alt ber Berber (Morocco, Tifinagh alt.) ber tifinagh-alt-phonetic ber Berber (Morocco, Tifinagh alt. phonetic) ber tifinagh-extended ber Berber (Morocco, Tifinagh extended) ber tifinagh-phonetic ber Berber (Morocco, Tifinagh phonetic) ber tifinagh-extended-phonetic ber Berber (Morocco, Tifinagh extended phonetic) ber cm cm English (Cameroon) eng french French (Cameroon) fra qwerty Cameroon Multilingual (QWERTY) eng bas nmg fub ewo xmd mfh bkm ozm lns sox pny wes lem nyj mfk mcp ass xed dua anv bum btb bfd azo ken yam yat yas azerty Cameroon Multilingual (AZERTY) fra bas nmg fub ewo xmd mfh bkm ozm lns sox pny wes lem nyj mfk mcp ass xed dua anv bum btb bfd azo ken yam yat yas dvorak Cameroon Multilingual (Dvorak) mmuock Mmuock mm my Burmese mya zawgyi zg Burmese Zawgyi ca fr French (Canada) fra fr-dvorak fr French (Canada, Dvorak) fr-legacy fr French (Canada, legacy) multix Canadian Multilingual multi Canadian Multilingual (1st part) multi-2gr Canadian Multilingual (2nd part) ike ike Inuktitut iku eng en English (Canada) eng cd fr French (Democratic Republic of the Congo) fra cn zh Chinese zho mon_trad Mongolian (Bichig) mvf mon_trad_todo Mongolian Todo mvf mon_trad_xibe Mongolian Xibe sjo mon_trad_manchu Mongolian Manchu mnc mon_trad_galik Mongolian Galik mvf mon_todo_galik Mongolian Todo Galik mvf mon_manchu_galik Mongolian Manchu Galik mnc tib Tibetan tib tib_asciinum Tibetan (with ASCII numerals) tib ug ug Uyghur uig altgr-pinyin Hanyu Pinyin (altgr) zho hr hr Croatian hrv alternatequotes Croatian (with guillemets) unicode Croatian (with Croatian digraphs) unicodeus Croatian (US, with Croatian digraphs) us Croatian (US, with Croatian letters) cz cs Czech ces bksl Czech (with <\|> key) qwerty Czech (QWERTY) qwerty_bksl Czech (QWERTY, extended backslash) qwerty-mac Czech (QWERTY, Macintosh) ucw Czech (UCW, only accented letters) dvorak-ucw Czech (US, Dvorak, UCW support) rus ru Russian (Czech, phonetic) rus dk da Danish dan nodeadkeys Danish (no dead keys) winkeys Danish (Win keys) mac Danish (Macintosh) mac_nodeadkeys Danish (Macintosh, no dead keys) dvorak Danish (Dvorak) nl nl Dutch nld sundeadkeys Dutch (with Sun dead keys) mac Dutch (Macintosh) std Dutch (standard) bt dz Dzongkha dzo ee et Estonian est nodeadkeys Estonian (no dead keys) dvorak Estonian (Dvorak) us Estonian (US, with Estonian letters) ir fa Persian fas pes_keypad Persian (with Persian keypad) ku ku Kurdish (Iran, Latin Q) kur ku_f ku Kurdish (Iran, F) kur ku_alt ku Kurdish (Iran, Latin Alt-Q) kur ku_ara ku Kurdish (Iran, Arabic-Latin) kur iq ar Iraqi ara kur ku ku Kurdish (Iraq, Latin Q) kur ku_f ku Kurdish (Iraq, F) kur ku_alt ku Kurdish (Iraq, Latin Alt-Q) kur ku_ara ku Kurdish (Iraq, Arabic-Latin) kur fo fo Faroese fao nodeadkeys Faroese (no dead keys) fi fi Finnish fin classic Finnish (classic) nodeadkeys Finnish (classic, no dead keys) winkeys Finnish (Winkeys) smi Northern Saami (Finland) sme mac Finnish (Macintosh) fr fr French fra nodeadkeys French (no dead keys) sundeadkeys French (with Sun dead keys) oss French (alt.) oss_latin9 French (alt., Latin-9 only) oss_nodeadkeys French (alt., no dead keys) oss_sundeadkeys French (alt., with Sun dead keys) latin9 French (legacy, alt.) latin9_nodeadkeys French (legacy, alt., no dead keys) latin9_sundeadkeys French (legacy, alt., with Sun dead keys) bepo French (Bepo, ergonomic, Dvorak way) bepo_latin9 French (Bepo, ergonomic, Dvorak way, Latin-9 only) bepo_afnor French (Bepo, ergonomic, Dvorak way, AFNOR) dvorak French (Dvorak) mac French (Macintosh) azerty French (AZERTY) afnor French (AFNOR standardized AZERTY) bre French (Breton) oci Occitan oci geo Georgian (France, AZERTY Tskapo) kat us French (US, with French letters) gh en English (Ghana) eng generic English (Ghana, multilingual) akan ak Akan aka ewe ee Ewe ewe fula ff Fula ful ga gaa Ga gaa hausa ha Hausa (Ghana) hau avn avn Avatime avn gillbt English (Ghana, GILLBT) gn fr French (Guinea) fra ge ka Georgian kat ergonomic Georgian (ergonomic) mess Georgian (MESS) ru ru Russian (Georgia) rus os Ossetian (Georgia) oss de de German deu deadacute German (dead acute) deadgraveacute German (dead grave acute) nodeadkeys German (no dead keys) T3 German (T3) ro Romanian (Germany) ron ro_nodeadkeys Romanian (Germany, no dead keys) ron dvorak German (Dvorak) sundeadkeys German (with Sun dead keys) neo German (Neo 2) mac German (Macintosh) mac_nodeadkeys German (Macintosh, no dead keys) dsb Lower Sorbian dsb dsb_qwertz Lower Sorbian (QWERTZ) dsb qwerty German (QWERTY) tr Turkish (Germany) tr ru ru Russian (Germany, phonetic) rus deadtilde German (dead tilde) gr gr Greek ell simple Greek (simple) extended Greek (extended) nodeadkeys Greek (no dead keys) polytonic Greek (polytonic) hu hu Hungarian hun standard Hungarian (standard) nodeadkeys Hungarian (no dead keys) qwerty Hungarian (QWERTY) 101_qwertz_comma_dead Hungarian (101/QWERTZ/comma/dead keys) 101_qwertz_comma_nodead Hungarian (101/QWERTZ/comma/no dead keys) 101_qwertz_dot_dead Hungarian (101/QWERTZ/dot/dead keys) 101_qwertz_dot_nodead Hungarian (101/QWERTZ/dot/no dead keys) 101_qwerty_comma_dead Hungarian (101/QWERTY/comma/dead keys) 101_qwerty_comma_nodead Hungarian (101/QWERTY/comma/no dead keys) 101_qwerty_dot_dead Hungarian (101/QWERTY/dot/dead keys) 101_qwerty_dot_nodead Hungarian (101/QWERTY/dot/no dead keys) 102_qwertz_comma_dead Hungarian (102/QWERTZ/comma/dead keys) 102_qwertz_comma_nodead Hungarian (102/QWERTZ/comma/no dead keys) 102_qwertz_dot_dead Hungarian (102/QWERTZ/dot/dead keys) 102_qwertz_dot_nodead Hungarian (102/QWERTZ/dot/no dead keys) 102_qwerty_comma_dead Hungarian (102/QWERTY/comma/dead keys) 102_qwerty_comma_nodead Hungarian (102/QWERTY/comma/no dead keys) 102_qwerty_dot_dead Hungarian (102/QWERTY/dot/dead keys) 102_qwerty_dot_nodead Hungarian (102/QWERTY/dot/no dead keys) is is Icelandic isl Sundeadkeys Icelandic (with Sun dead keys) nodeadkeys Icelandic (no dead keys) mac_legacy Icelandic (Macintosh, legacy) mac Icelandic (Macintosh) dvorak Icelandic (Dvorak) il he Hebrew heb lyx Hebrew (lyx) phonetic Hebrew (phonetic) biblical Hebrew (Biblical, Tiro) it it Italian ita nodeadkeys Italian (no dead keys) winkeys Italian (Winkeys) mac Italian (Macintosh) us Italian (US, with Italian letters) geo Georgian (Italy) kat ibm Italian (IBM 142) intl Italian (intl., with dead keys) deu fra ita slk srd nap scn fur scn Sicilian ita scn fur Friulian (Italy) fur jp ja Japanese jpn kana Japanese (Kana) kana86 Japanese (Kana 86) OADG109A Japanese (OADG 109A) mac Japanese (Macintosh) dvorak Japanese (Dvorak) kg ki Kyrgyz kir phonetic Kyrgyz (phonetic) kh km Khmer (Cambodia) khm kz kk Kazakh kaz ruskaz ru Russian (Kazakhstan, with Kazakh) kaz rus kazrus Kazakh (with Russian) kaz rus ext Kazakh (extended) kaz latin Kazakh (Latin) kaz la lo Lao lao stea Lao (STEA proposed standard layout) lao latam es Spanish (Latin American) AR BO CL CO CR CU DO EC GT HN HT MX NI PA PE PR PY SV US UY VE spa nodeadkeys Spanish (Latin American, no dead keys) deadtilde Spanish (Latin American, dead tilde) sundeadkeys Spanish (Latin American, with Sun dead keys) dvorak Spanish (Latin American, Dvorak) colemak Spanish (Latin American, Colemak) colemak-gaming Spanish (Latin American, Colemak for gaming) lt lt Lithuanian lit std Lithuanian (standard) us Lithuanian (US, with Lithuanian letters) ibm Lithuanian (IBM LST 1205-92) lekp Lithuanian (LEKP) lekpa Lithuanian (LEKPa) lv lv Latvian lav apostrophe Latvian (apostrophe) tilde Latvian (tilde) fkey Latvian (F) modern Latvian (modern) ergonomic Latvian (ergonomic, ŪGJRMV) adapted Latvian (adapted) mao mi Maori mri me sr Montenegrin srp cyrillic Montenegrin (Cyrillic) cyrillicyz Montenegrin (Cyrillic, ZE and ZHE swapped) latinunicode Montenegrin (Latin, Unicode) latinyz Montenegrin (Latin, QWERTY) latinunicodeyz Montenegrin (Latin, Unicode, QWERTY) cyrillicalternatequotes Montenegrin (Cyrillic with guillemets) latinalternatequotes Montenegrin (Latin with guillemets) mk mk Macedonian mkd nodeadkeys Macedonian (no dead keys) mt mt Maltese mlt us Maltese (with US layout) alt-us Maltese (US layout with AltGr overrides) alt-gb Maltese (UK layout with AltGr overrides) mn mn Mongolian mon no no Norwegian nor nob nno nodeadkeys Norwegian (no dead keys) winkeys Norwegian (Win keys) dvorak Norwegian (Dvorak) smi Northern Saami (Norway) sme smi_nodeadkeys Northern Saami (Norway, no dead keys) sme mac Norwegian (Macintosh) mac_nodeadkeys Norwegian (Macintosh, no dead keys) colemak Norwegian (Colemak) pl pl Polish pol legacy Polish (legacy) qwertz Polish (QWERTZ) dvorak Polish (Dvorak) dvorak_quotes Polish (Dvorak, with Polish quotes on quotemark key) dvorak_altquotes Polish (Dvorak, with Polish quotes on key 1) csb Kashubian csb szl Silesian szl ru_phonetic_dvorak ru Russian (Poland, phonetic Dvorak) rus dvp Polish (programmer Dvorak) pt pt Portuguese por nodeadkeys Portuguese (no dead keys) sundeadkeys Portuguese (with Sun dead keys) mac Portuguese (Macintosh) mac_nodeadkeys Portuguese (Macintosh, no dead keys) mac_sundeadkeys Portuguese (Macintosh, with Sun dead keys) nativo Portuguese (Nativo) nativo-us Portuguese (Nativo for US keyboards) nativo-epo Esperanto (Portugal, Nativo) epo ro ro Romanian ron cedilla Romanian (cedilla) std Romanian (standard) std_cedilla Romanian (standard cedilla) winkeys Romanian (Win keys) ru ru Russian rus phonetic Russian (phonetic) phonetic_winkeys Russian (phonetic, with Win keys) phonetic_yazherty Russian (phonetic yazherty) typewriter Russian (typewriter) legacy Russian (legacy) typewriter-legacy Russian (typewriter, legacy) tt Tatar tat os_legacy Ossetian (legacy) oss os_winkeys Ossetian (Win keys) oss cv Chuvash chv cv_latin Chuvash (Latin) chv udm Udmurt udm kom Komi kom sah Yakut sah xal Kalmyk xal dos Russian (DOS) mac Russian (Macintosh) srp Serbian (Russia) rus srp bak Bashkirian bak chm Mari chm phonetic_azerty Russian (phonetic, AZERTY) phonetic_dvorak Russian (phonetic, Dvorak) phonetic_fr Russian (phonetic, French) rs sr Serbian srp yz Serbian (Cyrillic, ZE and ZHE swapped) latin Serbian (Latin) latinunicode Serbian (Latin, Unicode) latinyz Serbian (Latin, QWERTY) latinunicodeyz Serbian (Latin, Unicode, QWERTY) alternatequotes Serbian (Cyrillic with guillemets) latinalternatequotes Serbian (Latin with guillemets) rue Pannonian Rusyn rue si sl Slovenian slv alternatequotes Slovenian (with guillemets) us Slovenian (US, with Slovenian letters) sk sk Slovak slk bksl Slovak (extended backslash) qwerty Slovak (QWERTY) qwerty_bksl Slovak (QWERTY, extended backslash) es es Spanish spa nodeadkeys Spanish (no dead keys) winkeys Spanish (Win keys) deadtilde Spanish (dead tilde) sundeadkeys Spanish (with Sun dead keys) dvorak Spanish (Dvorak) ast ast Asturian (Spain, with bottom-dot H and bottom-dot L) ast cat ca Catalan (Spain, with middle-dot L) cat mac Spanish (Macintosh) se sv Swedish swe nodeadkeys Swedish (no dead keys) dvorak Swedish (Dvorak) rus ru Russian (Sweden, phonetic) rus rus_nodeadkeys ru Russian (Sweden, phonetic, no dead keys) rus smi Northern Saami (Sweden) sme mac Swedish (Macintosh) svdvorak Swedish (Svdvorak) us_dvorak Swedish (based on US Intl. Dvorak) us Swedish (US, with Swedish letters) swl Swedish Sign Language swl ch de German (Switzerland) deu gsw legacy German (Switzerland, legacy) de_nodeadkeys de German (Switzerland, no dead keys) de_sundeadkeys de German (Switzerland, with Sun dead keys) fr fr French (Switzerland) fra fr_nodeadkeys fr French (Switzerland, no dead keys) fra fr_sundeadkeys fr French (Switzerland, with Sun dead keys) fra fr_mac fr French (Switzerland, Macintosh) fra de_mac de German (Switzerland, Macintosh) sy ar Arabic (Syria) syr syc syc Syriac syc_phonetic syc Syriac (phonetic) ku ku Kurdish (Syria, Latin Q) kur ku_f ku Kurdish (Syria, F) kur ku_alt ku Kurdish (Syria, Latin Alt-Q) kur tj tg Tajik tgk legacy Tajik (legacy) lk si Sinhala (phonetic) sin tam_unicode ta Tamil (Sri Lanka, TamilNet '99) tam tam_TAB Tamil (Sri Lanka, TamilNet '99, TAB encoding) tam us us Sinhala (US, with Sinhala letters) th th Thai tha tis Thai (TIS-820.2538) pat Thai (Pattachote) tr tr Turkish tur f Turkish (F) alt Turkish (Alt-Q) sundeadkeys Turkish (with Sun dead keys) ku ku Kurdish (Turkey, Latin Q) kur ku_f ku Kurdish (Turkey, F) kur ku_alt ku Kurdish (Turkey, Latin Alt-Q) kur intl Turkish (intl., with dead keys) crh crh Crimean Tatar (Turkish Q) crh crh_f crh Crimean Tatar (Turkish F) crh crh_alt crh Crimean Tatar (Turkish Alt-Q) crh tw zh Taiwanese fox indigenous Taiwanese (indigenous) ami tay bnn ckv pwn pyu dru ais ssf tao tsu trv xnb sxr uun fos saisiyat xsy Saisiyat (Taiwan) xsy ua uk Ukrainian ukr phonetic Ukrainian (phonetic) typewriter Ukrainian (typewriter) winkeys Ukrainian (Win keys) legacy Ukrainian (legacy) rstu Ukrainian (standard RSTU) rstu_ru Russian (Ukraine, standard RSTU) homophonic Ukrainian (homophonic) gb en English (UK) eng extd English (UK, extended, with Win keys) intl English (UK, intl., with dead keys) dvorak English (UK, Dvorak) dvorakukp English (UK, Dvorak, with UK punctuation) mac English (UK, Macintosh) mac_intl English (UK, intl., Macintosh) colemak English (UK, Colemak) pl pl Polish (British keyboard) pol uz uz Uzbek uzb latin Uzbek (Latin) vn vi Vietnamese vie us Vietnamese (US, with Vietnamese letters) fr Vietnamese (French, with Vietnamese letters) kr ko Korean kor kr104 Korean (101/104 key compatible) nec_vndr/jp ja Japanese (PC-98) JP jpn ie ie Irish eng CloGaelach CloGaelach gle UnicodeExpert Irish (UnicodeExpert) ogam Ogham sga ogam_is434 Ogham (IS434) sga pk ur Urdu (Pakistan) urd urd-crulp Urdu (Pakistan, CRULP) urd-nla Urdu (Pakistan, NLA) ara ar Arabic (Pakistan) ara snd sd Sindhi snd mv dv Dhivehi div za en English (South Africa) eng epo eo Esperanto epo legacy Esperanto (displaced semicolon and quote, obsolete) np ne Nepali nep sat ng en English (Nigeria) eng igbo ig Igbo ibo yoruba yo Yoruba yor hausa ha Hausa (Nigeria) hau et am Amharic amh sn wo Wolof wol brai brl Braille left_hand Braille (left-handed) left_hand_invert Braille (left-handed inverted thumb) right_hand Braille (right-handed) right_hand_invert Braille (right-handed inverted thumb) tm tk Turkmen tuk alt Turkmen (Alt-Q) ml bm Bambara bam fr-oss fr French (Mali, alt.) fra us-mac en English (Mali, US, Macintosh) eng us-intl en English (Mali, US, intl.) eng tz sw Swahili (Tanzania) swa tg fr-tg French (Togo) fra ajg blo kpo ewe fon fue gej ife kbp las dop mfg nmz bud gng kdh soy ke sw Swahili (Kenya) swa kik ki Kikuyu kik bw tn Tswana tsn ph ph Filipino eng bik ceb fil hil ilo pam pag phi tgl war qwerty-bay Filipino (QWERTY, Baybayin) bik ceb fil hil ilo pam pag phi tgl war capewell-dvorak Filipino (Capewell-Dvorak, Latin) capewell-dvorak-bay Filipino (Capewell-Dvorak, Baybayin) bik ceb fil hil ilo pam pag phi tgl war capewell-qwerf2k6 Filipino (Capewell-QWERF 2006, Latin) capewell-qwerf2k6-bay Filipino (Capewell-QWERF 2006, Baybayin) bik ceb fil hil ilo pam pag phi tgl war colemak Filipino (Colemak, Latin) colemak-bay Filipino (Colemak, Baybayin) bik ceb fil hil ilo pam pag phi tgl war dvorak Filipino (Dvorak, Latin) dvorak-bay Filipino (Dvorak, Baybayin) bik ceb fil hil ilo pam pag phi tgl war md md Moldavian ron gag gag Moldavian (Gagauz) gag id id Indonesian (Arab Melayu, phonetic) ind msa min ace bjn tsg mfa phoneticx Indonesian (Arab Melayu, ext. phonetic) my ms Malay (Jawi, Arabic Keyboard) ind msa min ace bjn tsg mfa phonetic Malay (Jawi, phonetic) grp Switching to another layout lv3 Key to choose the 3rd level ctrl Ctrl position grp_led Use keyboard LED to show alternative layout keypad Layout of numeric keypad kpdl Numeric keypad Delete behavior caps Caps Lock behavior altwin Alt/Win key behavior Compose key Position of Compose key compat Miscellaneous compatibility options currencysign Adding currency signs to certain keys lv5 Key to choose 5th level nbsp Using space key to input non-breaking space japan Japanese keyboard options korean Korean Hangul/Hanja keys esperanto Adding Esperanto supersigned letters solaris Maintain key compatibility with old Solaris keycodes terminate Key sequence to kill the X server PK(f[:[)00 rules/xkb.itsnu[ PK(f[5>hrules/base.extras.xmlnu[ apl apl APL eng dyalog dlg Dyalog APL complete sax sax APL Keyboard Symbols: sax unified ufd APL Keyboard Symbols: Unified Layout apl2 apl2 APL Keyboard Symbols: IBM APL2 aplplusII aplII APL Keyboard Symbols: Manugistics APL*PLUS II aplx aplx APL Keyboard Symbols: APLX Unified APL Layout ca fr French (Canada) fra kut kut Kutenai shs shs Secwepemctsin sun_type6 Multilingual (Canada, Sun Type 6/7) de de German ger us German (US, with German letters) eng hu German (with Hungarian letters and no dead keys) ger hun pl Polish (Germany, no dead keys) ger pol sun_type6 German (Sun Type 6/7) adnw German (Aus der Neo-Welt) koy German (KOY) bone German (Bone) bone_eszett_home German (Bone, eszett home row) neo_qwertz German (Neo qwertz) neo_qwerty German (Neo qwerty) ru-recom ru Russian (Germany, recommended) rus ru-translit ru Russian (Germany, transliteration) rus lld German Ladin de_lld ger lld hu Hungarian oldhun Old Hungarian oldhun ir fa Persian per ave Avestan ave lt lt Lithuanian lit us_dvorak Lithuanian (US Dvorak with Lithuanian letters) sun_type6 Lithuanian (Sun Type 6/7) lv lv Latvian lav dvorak Latvian (US Dvorak) ykeydvorak Latvian (US Dvorak, Y variant) minuskeydvorak Latvian (US Dvorak, minus variant) dvorakprogr Latvian (programmer US Dvorak) ykeydvorakprogr Latvian (programmer US Dvorak, Y variant) minuskeydvorakprogr Latvian (programmer US Dvorak, minus variant) colemak Latvian (US Colemak) apostrophecolemak Latvian (US Colemak, apostrophe variant) sun_type6 Latvian (Sun Type 6/7) us en English (US) eng intl-unicode English (US, international AltGr Unicode combining) alt-intl-unicode English (US, international AltGr Unicode combining, alternative) ats Atsina crd Coeur d'Alene Salish crd cz_sk_de Czech Slovak and German (US) eng cze slo ger ibm238l English (US, IBM Arabic 238_L) sun_type6 English (US, Sun Type 6/7) carpalx English (Carpalx) carpalx-intl English (Carpalx, intl., with dead keys) carpalx-altgr-intl English (Carpalx, intl., with AltGr dead keys) carpalx-full English (Carpalx, full optimization) carpalx-full-intl English (Carpalx, full optimization, intl., with dead keys) carpalx-full-altgr-intl English (Carpalx, full optimization, intl., with AltGr dead keys) 3l English (3l) 3l-cros English (3l, chromebook) scn Sicilian (US keyboard) eng ita scn pl pl Polish pol intl Polish (intl., with dead keys) colemak Polish (Colemak) sun_type6 Polish (Sun Type 6/7) glagolica Polish (Glagolica) ro ro Romanian rum crh_dobruja crh Crimean Tatar (Dobruja Q) crh ergonomic Romanian (ergonomic Touchtype) sun_type6 Romanian (Sun Type 6/7) rs sr Serbian srp combiningkeys Serbian (combining accents instead of dead keys) ru ru Russian chu Church Slavonic chu ruu ru Russian (with Ukrainian-Belorussian layout) rus ukr bel rulemak Russian (Rulemak, phonetic Colemak) sun_type6 Russian (Sun Type 6/7) unipunct Russian (with US punctuation) prxn ru Russian (Polyglot and Reactionary) rus rus-petr1708 ukr bel srp mkd bul chu rum-Cyrl kaz kir uzb bak aze tat uig kdr tyv kjh crh tgk abk sah mon kal sjd chv oss krl ale wbl kur niv dng kom udm sel ulc ude oac oaa gld eve evn kca itl yrk neg RU RS BA ME MK BG MD UA BY KZ MN KG TJ UZ TM AZ am hy Armenian hye olpc-phonetic Armenian (OLPC phonetic) il he Hebrew heb biblicalSIL Hebrew (Biblical, SIL phonetic) heb ara ar Arabic sun_type6 Arabic (Sun Type 6/7) basic_ext Arabic (with extensions for Arabic-written other languages and European digits preferred) basic_ext_digits Arabic (with extensions for Arabic-written other languages and Arabic digits preferred) uga Ugaritic instead of Arabic be be Belgian sun_type6 Belgian (Sun Type 6/7) br pt Portuguese (Brazil) sun_type6 Portuguese (Brazil, Sun Type 6/7) cz cs Czech sun_type6 Czech (Sun Type 6/7) prog Czech (programming) typo Czech (typographic) coder Czech (coder) prog_typo Czech (programming, typographic) dk da Danish sun_type6 Danish (Sun Type 6/7) nl nl Dutch sun_type6 Dutch (Sun Type 6/7) ee et Estonian sun_type6 Estonian (Sun Type 6/7) fi fi Finnish das Finnish (DAS) sun_type6 Finnish (Sun Type 6/7) fidvorak Finnish Dvorak fr fr French sun_type6 French (Sun Type 6/7) us-alt French (US, with French letters, with dead keys, alternative) us-azerty French (US, AZERTY) gr gr Greek sun_type6 Greek (Sun Type 6/7) colemak Greek (Colemak) it it Italian sun_type6 Italian (Sun Type 6/7) lld Italian Ladin it_lld it lld jp ja Japanese sun_type6 Japanese (Sun Type 6) sun_type7 Japanese (Sun Type 7 - pc compatible) sun_type7_suncompat Japanese (Sun Type 7 - sun compatible) no no Norwegian sun_type6 Norwegian (Sun Type 6/7) pt pt Portuguese sun_type6 Portuguese (Sun Type 6/7) pt pt Portuguese colemak Portuguese (Colemak) sk sk Slovak sun_type6 Slovak (Sun Type 6/7) es es Spanish sun_type6 Spanish (Sun Type 6/7) se sv Swedish dvorak_a5 Swedish (Dvorak A5) sun_type6 Swedish (Sun Type 6/7) ovd Elfdalian (Swedish, with combining ogonek) ovd ch de German (Switzerland) sun_type6_de German (Switzerland, Sun Type 6/7) sun_type6_fr French (Switzerland, Sun Type 6/7) tr tr Turkish sun_type6 Turkish (Sun Type 6/7) ua uk Ukrainian sun_type6 Ukrainian (Sun Type 6/7) gb en English (UK) sun_type6 English (UK, Sun Type 6/7) kr ko Korean sun_type6 Korean (Sun Type 6/7) vn vi Vietnamese vie aderty Vietnamese (AÐERTY) qderty Vietnamese (QĐERTY) eu eu EurKEY (US based layout with European letters) cat dan eng est fao fin ger gre gsw ita lav lit nld nor por spa swe cm cm English (Cameroon) mmuock Mmuock trans International Phonetic Alphabet lv3 Key to choose the 3rd level parens Parentheses position PK(f[Qi rules/basenu[// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part // // Rules for resolving XKB components for use with XFree86 // Copyright 1996 by Joseph Moss // // 2002 Modifier: Ivan Pascal The XFree86 Project // // If you want non-latin layouts implicitly include the en_US layout // uncomment lines below //! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ // in ir iku jp kan kh kr la lao lk mk mm mn mv mal olck \ // ori pk ru scc sy syr tel th tj tam ua uz // PC models ! $pcmodels = pc101 pc102 pc104 pc105 // Jolla devices and keyboards ! $jollamodels = jollasbj // Microsoft models (using MS geometry) ! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose // Nokia devices and keyboards ! $nokiamodels = nokiasu8w nokiarx44 nokiarx51 // PC geometries - they have special geometry but symbols are mostly pc105 ! $pcgeometries = latitude // TypeMatrix geometries ! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106 // Layouts that provide further specializations for the OLPC ! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us ! $macbooks = macbook78 macbook79 ! $maclaptop = ibook powerbook macbook78 macbook79 ! $applealu = applealu_ansi applealu_iso applealu_jis ! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 ! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us ! $azerty = be fr ! $qwertz = al cz de hr hu ro si sk // all layouts with 3rd and 4th groups ! $threelevellayouts = al az \ be br bt \ ca ch cs cz \ de dk \ ee es \ fi fo fr \ gb gr \ hu \ ie ir is it \ latam \ lk lt \ mn mt \ nl no \ pl pt \ ro \ se sk \ tr \ us \ vn \ za ! $thinkpads = thinkpad thinkpad60 thinkpadz60 ! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \ sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \ sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb ! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb // Sun Type_6_7 keyboards with custom layouts ! $sun_custom = ara be br ca ch cz de dk \ ee es fi fr gb gr it jp \ kr lt lv nl no pl pt ro \ ru se sk tr tw ua us ! $sun_var = sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \ sun_type7 sun_type7_suncompat suncompat ! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat ! $htcdreamlayouts = us it de ! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \ airkey \ apple armada azonaRF2300 \ benqx brother \ btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \ cherryblue cherrybluea cherryblueb \ cherrycyboard cherrycmexpert \ chicony chicony0108 chicony0420 chicony9885 \ compalfl90 \ compaqeak8 compaqik7 compaqik13 compaqik18 \ creativedw7000 \ cymotionlinux \ dell dellm65 inspiron dellusbmm \ emachines ennyah_dkb1008 evdev \ genius geniuscomfy2 \ gyration honeywell_euroboard \ hp250x hp5xx hp500fa hpdv5 \ hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \ ibm_spacesaver ipaq inspiron intel \ logiaccess logicda logicink \ logiex110 logiclx300 \ logiinkse logiinkseusb logiitc logiik \ logitech_base itouch logiultrax \ logitech_g15 \ logidinovo logidinovoedge \ microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \ microsoftoffice microsoftmult \ mx1998 mx2500 mx2750 \ oretec \ pc105 \ presario propeller \ qtronix \ rapidaccess rapidaccess2 thinkpad60 \ samsung4500 samsung4510 \ silvercrest \ sk1300 sk2500 sk6200 sk7100 \ sven sven303 symplon \ teck227 teck229 \ toshiba_s3000 trust trustda \ unitekkb1925 yahoo \ apex300 ! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \ cherrybluea herrycyboard chicony042 compaqik13 compaqik18 \ armada presario dellm65 inspiron dellusbmm diamond \ ennyah_dkb1008 genius geniuscomfy2 hpi6 hpxe3gc hpxe3gf \ hpxt1000 hpzt11xx hpdv5 hpxe4xxx hp5xx thinkpad60 ogitech_base \ logidinovo logidinovoedge logitech_g15 mx1998 mx2500 mx2750 \ microsoft4000 microsoft7000 microsoftprooem microsoftmult \ propeller samsung4500 samsung4510 sk1300 sk2500 sk7100 \ toshiba_s3000 trust trustda cymotionlinux silvercrest \ emachines benqx unitekkb1925 creativedw7000 compalfl90 \ pc105 a4techKB21 a4techKBS8 a4_rfkb23 asus_laptop btc6301urf \ dexxa dtk2000 fscaa1667g geniuskb19e geniuscomfy latitude \ microsoftpro precision_m scorpius sp_inet targa_v811 thinkpad \ tm2030USB-102 tm2030USB-106 trust_slimline ! $dvoraklayouts = br ca de ee es fr gb no pl se us ! model = keycodes amiga = amiga(de) ataritt = ataritt(de) empty = empty $sun_jp = sun(type6_jp_usb) $sun = sun(type6_usb) pc98 = xfree98(pc98) $applealu = macintosh(alukbd) macintosh_hhk = macintosh(hhk) macintosh_old = macintosh(old) $macs = macintosh thinkpadz60 = xfree86(thinkpadz60) * = xfree86 ! layout[1] = keycodes $azerty = +aliases(azerty) $qwertz = +aliases(qwertz) * = +aliases(qwerty) ! layout = keycodes $azerty = +aliases(azerty) $qwertz = +aliases(qwertz) * = +aliases(qwerty) ! option = keycodes ! model layout = geometry thinkpad us = thinkpad(us) ! model = geometry microsoftelite = microsoft(elite) $msmodels = microsoft(natural) dell101 = dell(dell101) dellm65 = dell(dellm65) latitude = dell(latitude) flexpro = keytronic(FlexPro) hp6000 = hp(omnibook) hpmini110 = hp(mini110) hpdv5 = hp(dv5) omnikey101 = northgate(omnikey101) sanwaskbkg3 = sanwa(sanwaskbkg3) $pcmodels = pc(%m) $pcgeometries = pc(%m) everex = everex(STEPnote) thinkpad = thinkpad(intl) thinkpad60 = thinkpad(60) thinkpadz60 = thinkpad(60) apex300 = steelseries(apex300) $tmgeometries = typematrix(%m) winbook = winbook(XP5) pc98 = nec(pc98) $applealu = macintosh(%m) $macbooks = macintosh(%m) $macs = macintosh(macintosh) hhk = hhk(basic) kinesis = kinesis(model100) $nokiamodels = nokia(%m) sun_type6_jp = sun(type6jp) sun_type6_usb = sun(type6) sun_type6_euro_usb = sun(type6tuv) sun_type6_jp_usb = sun(type6jp) sun_type6_unix_usb = sun(type6unix) sun_type7_jp_usb = sun(type6jp) sun_type7_usb = sun(type7) sun_type7_euro_usb = sun(type7tuv) sun_type7_unix_usb = sun(type7unix) * = pc(pc104) ! model layout variant = symbols * ben basic = pc+in(ben) * ben probhat = pc+in(ben_probhat) * dev basic = pc+in(deva) * dvorak $dvoraklayouts = pc+%v(dvorak) * dvorak basic = pc+us(dvorak) * dvorak pl_basic = pc+pl(dvorak) * dvorak pl = pc+pl(dvorak_quotes) * dvorak pl_altquotes = pc+pl(dvorak_altquotes) * dzdwi basic = pc+bt(basic) * fi basic = pc+fi(classic) * ge azerty_tskapo = pc+fr(geo) * guj basic = pc+in(guj) * gur basic = pc+in(guru) * ie laptop = pc+ie(basic) * ie CloGaelachLaptop = pc+ie(CloGaelach) * in urd = pc+in(urd-phonetic) * iu basic = pc+ca(ike) * lo basic = pc+la(basic) * kan basic = pc+in(kan) * mal basic = pc+in(mal) * mal mlplusnum = pc+in(mal) * ogham basic = pc+ie(ogam) * ogham laptop = pc+ie(ogam) * ogham is434 = pc+ie(ogam_is434) * ogham is434laptop = pc+ie(ogam_is434) * ori basic = pc+in(ori) * ro de = pc+ro(winkeys) * ro us = pc+ro(std) * ro academic = pc+ro(std) * ro std_comma = pc+ro(std) * ro comma = pc+ro(basic) * ru os = pc+ru(os_legacy) * pk urd = pc+pk(urd-phonetic) * sapmi basic = pc+no(smi) * sapmi nodeadkeys = pc+no(smi_nodeadkeys) * sapmi sefi = pc+fi(smi) * sin phonetic-static = pc+in(sin_phonetic) * syr basic = pc+sy(syc) * syr phonetic = pc+sy(syc_phonetic) * tam INSCRIPT = pc+in(tam) * tam UNI = pc+in(tam_unicode) * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) * tam TAB = pc+in(tam_TAB) * tam TSCII = pc+in(tam_TSCII) * tel basic = pc+in(tel) * yu basic = pc+srp(latin) * yu unicode = pc+srp(latinunicode) * yu yz = pc+srp(latinyz) * yu unicodeyz = pc+srp(latinunicodeyz) classmate us intl = pc+us(classmate-intl) classmate us alt-intl = pc+us(classmate-alt-intl) classmate us altgr-intl = pc+us(classmate-altgr-intl) nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty) * $sun_custom $sun_var = pc+sun_vndr/%l%(v) ! model layout = symbols * ar = pc+ara * ben = pc+in(ben) * bs = pc+ba * cs = pc+rs * cz_qwerty = pc+cz(qwerty) * dev = pc+in(deva) * dvorak = pc+us(dvorak) * dzdwi = pc+bt * el = pc+gr * en_US = pc+latin * guj = pc+in(guj) * gur = pc+in(guru) * iu = pc+ca(ike) * lo = pc+la * kan = pc+in(kan) * mi = pc+mao * ogham = pc+ie(ogam) * ori = pc+ie(ori) * sapmi = pc+no(smi) * sr = pc+srp * syr = pc+sy(syc) * tel = pc+in(tel) * tml = pc+in(tam) * yu = pc+srp * fr-latin9 = pc+fr(latin9) * us_intl = pc+us(alt-intl) * ben(basic) = pc+in(ben) * ben(probhat) = pc+in(ben_probhat) * dev(basic) = pc+in(deva) * dvorak($dvoraklayouts) = pc+%v(dvorak) * dvorak(basic) = pc+us(dvorak) * dvorak(pl_basic) = pc+pl(dvorak) * dvorak(pl) = pc+pl(dvorak_quotes) * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) * dzdwi(basic) = pc+bt(basic) * fi(basic) = pc+fi(classic) * ge(azerty_tskapo) = pc+fr(geo) * guj(basic) = pc+in(guj) * gur(basic) = pc+in(guru) * ie(laptop) = pc+ie(basic) * ie(CloGaelachLaptop) = pc+ie(CloGaelach) * in(urd) = pc+in(urd-phonetic) * iu(basic) = pc+ca(ike) * lo(basic) = pc+la(basic) * kan(basic) = pc+in(kan) * mal(basic) = pc+in(mal) * mal(mlplusnum) = pc+in(mal) * ogham(basic) = pc+ie(ogam) * ogham(laptop) = pc+ie(ogam) * ogham(is434) = pc+ie(ogam_is434) * ogham(is434laptop) = pc+ie(ogam_is434) * ori(basic) = pc+in(ori) * ro(de) = pc+ro(winkeys) * ro(us) = pc+ro(std) * ro(academic) = pc+ro(std) * ro(std_comma) = pc+ro(std) * ro(comma) = pc+ro(basic) * ru(os) = pc+ru(os_legacy) * pk(urd) = pc+pk(urd-phonetic) * sapmi(basic) = pc+no(smi) * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) * sapmi(sefi) = pc+fi(smi) * sin(phonetic-static) = pc+in(sin_phonetic) * syr(basic) = pc+sy(syc) * syr(phonetic) = pc+sy(syc_phonetic) * tam(INSCRIPT) = pc+in(tam) * tam(UNI) = pc+in(tam_unicode) * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) * tam(TAB) = pc+in(tam_TAB) * tam(TSCII) = pc+in(tam_TSCII) * tel(basic) = pc+in(tel) * yu(basic) = pc+srp(latin) * yu(unicode) = pc+srp(latinunicode) * yu(yz) = pc+srp(latinyz) * yu(unicodeyz) = pc+srp(latinunicodeyz) ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2 ataritt * = xfree68_vndr/ataritt(us)+%l%(v) amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2 amiga * = xfree68_vndr/amiga(usa1)+%l%(v) classmate us = pc+%l(classmate) empty * = empty(basic) * empty = empty(basic) jollasbj $nonlatin = jolla_vndr/sbj(common)+us+%l%(v):2 jollasbj * = jolla_vndr/sbj(common)+%l%(v) $sun $sun_custom = pc+sun_vndr/%l%(v) pc98 nec_vndr/jp = nec_vndr/jp(pc98) macintosh_old us = macintosh_vndr/us(oldmac) macintosh_old en_US = macintosh_vndr/us(oldmac) macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2 applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2 $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v) $applealu * = macintosh_vndr/apple(alukbd)+%l%(v) $macs en_US = pc+macintosh_vndr/us(extended) $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) nokiarx44 * = nokia_vndr/rx-44(%l) nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v) nokiasu8w * = nokia_vndr/su-8w(%l) olpc $olpclayouts = olpc+%l%(m) olpc * = olpc+%l%(v) olpcm $olpclayouts = olpc+%l%(m) olpcm * = olpc+%l%(v) $thinkpads br = pc+br(thinkpad) sl-c3x00 * = pc+sharp_vndr/sl-c3x00(basic) ws003sh * = pc+sharp_vndr/ws003sh(basic) ws007sh * = pc+sharp_vndr/ws007sh(basic) ws011sh * = pc+sharp_vndr/ws011sh(basic) ws020sh * = pc+sharp_vndr/ws020sh(basic) htcdream $htcdreamlayouts = %l(htcdream) * $nonlatin = pc+us+%l%(v):2 * * = pc+%l%(v) ! model layout[1] = symbols * ar = pc+ara%(v[1]) * ben = pc+in(ben) * bs = pc+ba%(v[1]) * cs = pc+rs%(v[1]) * cz_qwerty = pc+cz(qwerty) * dev = pc+in(deva) * dvorak = pc+us(dvorak) * dzdwi = pc+bt%(v[1]) * el = pc+gr%(v[1]) * en_US = pc+latin%(v[1]) * guj = pc+in(guj) * gur = pc+in(guru) * iu = pc+ca(ike) * lo = pc+la%(v[1]) * kan = pc+in(kan) * mi = pc+mao%(v[1]) * ogham = pc+ie(ogam) * ori = pc+ie(ori) * sapmi = pc+no(smi) * sr = pc+srp%(v[1]) * syr = pc+sy(syc) * tel = pc+in(tel) * tml = pc+in(tam) * yu = pc+srp%(v[1]) * fr-latin9 = pc+fr(latin9) * us_intl = pc+us(alt-intl) * ben(basic) = pc+in(ben) * ben(probhat) = pc+in(ben_probhat) * dev(basic) = pc+in(deva) * dvorak($dvoraklayouts) = pc+%v(dvorak) * dvorak(basic) = pc+us(dvorak) * dvorak(pl_basic) = pc+pl(dvorak) * dvorak(pl) = pc+pl(dvorak_quotes) * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) * dzdwi(basic) = pc+bt(basic) * fi(basic) = pc+fi(classic) * ge(azerty_tskapo) = pc+fr(geo) * guj(basic) = pc+in(guj) * gur(basic) = pc+in(guru) * ie(laptop) = pc+ie(basic) * ie(CloGaelachLaptop) = pc+ie(CloGaelach) * in(urd) = pc+in(urd-phonetic) * iu(basic) = pc+ca(ike) * lo(basic) = pc+la(basic) * kan(basic) = pc+in(kan) * mal(basic) = pc+in(mal) * mal(mlplusnum) = pc+in(mal) * ogham(basic) = pc+ie(ogam) * ogham(laptop) = pc+ie(ogam) * ogham(is434) = pc+ie(ogam_is434) * ogham(is434laptop) = pc+ie(ogam_is434) * ori(basic) = pc+in(ori) * ro(de) = pc+ro(winkeys) * ro(us) = pc+ro(std) * ro(academic) = pc+ro(std) * ro(std_comma) = pc+ro(std) * ro(comma) = pc+ro(basic) * ru(os) = pc+ru(os_legacy) * pk(urd) = pc+pk(urd-phonetic) * sapmi(basic) = pc+no(smi) * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) * sapmi(sefi) = pc+fi(smi) * sin(phonetic-static) = pc+in(sin_phonetic) * syr(basic) = pc+sy(syc) * syr(phonetic) = pc+sy(syc_phonetic) * tam(INSCRIPT) = pc+in(tam) * tam(UNI) = pc+in(tam_unicode) * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) * tam(TAB) = pc+in(tam_TAB) * tam(TSCII) = pc+in(tam_TSCII) * tel(basic) = pc+in(tel) * yu(basic) = pc+srp(latin) * yu(unicode) = pc+srp(latinunicode) * yu(yz) = pc+srp(latinyz) * yu(unicodeyz) = pc+srp(latinunicodeyz) ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1]) amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) jollasbj * = jolla_vndr/sbj(common)+%l[1]%(v[1]) $sun $sun_custom = pc+sun_vndr/%l[1]%(v[1]) macintosh_old us = macintosh_vndr/us(oldmac) macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) applealu_jis us = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac) $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1]) $applealu * = macintosh_vndr/apple(alukbd)+%l[1]%(v[1]) $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1]) $thinkpads br = pc+%l[1](thinkpad) * * = pc+%l[1]%(v[1]) ! model layout[1] variant[1] = symbols * ben basic = pc+in(ben) * ben probhat = pc+in(ben_probhat) * dev basic = pc+in(deva) * dvorak $dvoraklayouts = pc+%v(dvorak) * dvorak basic = pc+us(dvorak) * dvorak pl_basic = pc+pl(dvorak) * dvorak pl = pc+pl(dvorak_quotes) * dvorak pl_altquotes = pc+pl(dvorak_altquotes) * dzdwi basic = pc+bt(basic) * fi basic = pc+fi(classic) * ge azerty_tskapo = pc+fr(geo) * guj basic = pc+in(guj) * gur basic = pc+in(guru) * ie laptop = pc+ie(basic) * ie CloGaelachLaptop = pc+ie(CloGaelach) * in urd = pc+in(urd-phonetic) * iu basic = pc+ca(ike) * lo basic = pc+la(basic) * kan basic = pc+in(kan) * mal basic = pc+in(mal) * mal mlplusnum = pc+in(mal) * ogham basic = pc+ie(ogam) * ogham laptop = pc+ie(ogam) * ogham is434 = pc+ie(ogam_is434) * ogham is434laptop = pc+ie(ogam_is434) * ori basic = pc+in(ori) * ro de = pc+ro(winkeys) * ro us = pc+ro(std) * ro academic = pc+ro(std) * ro std_comma = pc+ro(std) * ro comma = pc+ro(basic) * ru os = pc+ru(os_legacy) * pk urd = pc+pk(urd-phonetic) * sapmi basic = pc+no(smi) * sapmi nodeadkeys = pc+no(smi_nodeadkeys) * sapmi sefi = pc+fi(smi) * sin phonetic-static = pc+in(sin_phonetic) * syr basic = pc+sy(syc) * syr phonetic = pc+sy(syc_phonetic) * tam INSCRIPT = pc+in(tam) * tam UNI = pc+in(tam_unicode) * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) * tam TAB = pc+in(tam_TAB) * tam TSCII = pc+in(tam_TSCII) * tel basic = pc+in(tel) * yu basic = pc+srp(latin) * yu unicode = pc+srp(latinunicode) * yu yz = pc+srp(latinyz) * yu unicodeyz = pc+srp(latinunicodeyz) ! model layout[2] = symbols * ar = +ara%(v[2]):2 * ben = +in(ben):2 * bs = +ba%(v[2]):2 * cs = +rs%(v[2]):2 * cz_qwerty = +cz(qwerty):2 * dev = +in(deva):2 * dvorak = +us(dvorak):2 * dzdwi = +bt%(v[2]):2 * el = +gr%(v[2]):2 * en_US = +latin%(v[2]):2 * guj = +in(guj):2 * gur = +in(guru):2 * iu = +ca(ike):2 * lo = +la%(v[2]):2 * kan = +in(kan):2 * mi = +mao%(v[2]):2 * ogham = +ie(ogam):2 * ori = +ie(ori):2 * sapmi = +no(smi):2 * sr = +srp%(v[2]):2 * syr = +sy(syc):2 * tel = +in(tel):2 * tml = +in(tam):2 * yu = +srp%(v[2]):2 * fr-latin9 = +fr(latin9):2 * us_intl = +us(alt-intl):2 * ben(basic) = +in(ben):2 * ben(probhat) = +in(ben_probhat):2 * dev(basic) = +in(deva):2 * dvorak($dvoraklayouts) = +%v(dvorak):2 * dvorak(basic) = +us(dvorak):2 * dvorak(pl_basic) = +pl(dvorak):2 * dvorak(pl) = +pl(dvorak_quotes):2 * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2 * dzdwi(basic) = +bt(basic):2 * fi(basic) = +fi(classic):2 * ge(azerty_tskapo) = +fr(geo):2 * guj(basic) = +in(guj):2 * gur(basic) = +in(guru):2 * ie(laptop) = +ie(basic):2 * ie(CloGaelachLaptop) = +ie(CloGaelach):2 * in(urd) = +in(urd-phonetic):2 * iu(basic) = +ca(ike):2 * lo(basic) = +la(basic):2 * kan(basic) = +in(kan):2 * mal(basic) = +in(mal):2 * mal(mlplusnum) = +in(mal):2 * ogham(basic) = +ie(ogam):2 * ogham(laptop) = +ie(ogam):2 * ogham(is434) = +ie(ogam_is434):2 * ogham(is434laptop) = +ie(ogam_is434):2 * ori(basic) = +in(ori):2 * ro(de) = +ro(winkeys):2 * ro(us) = +ro(std):2 * ro(academic) = +ro(std):2 * ro(std_comma) = +ro(std):2 * ro(comma) = +ro(basic):2 * ru(os) = +ru(os_legacy):2 * pk(urd) = +pk(urd-phonetic):2 * sapmi(basic) = +no(smi):2 * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2 * sapmi(sefi) = +fi(smi):2 * sin(phonetic-static) = +in(sin_phonetic):2 * syr(basic) = +sy(syc):2 * syr(phonetic) = +sy(syc_phonetic):2 * tam(INSCRIPT) = +in(tam):2 * tam(UNI) = +in(tam_unicode):2 * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2 * tam(TAB) = +in(tam_TAB):2 * tam(TSCII) = +in(tam_TSCII):2 * tel(basic) = +in(tel):2 * yu(basic) = +srp(latin):2 * yu(unicode) = +srp(latinunicode):2 * yu(yz) = +srp(latinyz):2 * yu(unicodeyz) = +srp(latinunicodeyz):2 nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2 nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2 $sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2 * * = +%l[2]%(v[2]):2 ! model layout[3] = symbols * ar = +ara%(v[3]):3 * ben = +in(ben):3 * bs = +ba%(v[3]):3 * cs = +rs%(v[3]):3 * cz_qwerty = +cz(qwerty):3 * dev = +in(deva):3 * dvorak = +us(dvorak):3 * dzdwi = +bt%(v[3]):3 * el = +gr%(v[3]):3 * en_US = +latin%(v[3]):3 * guj = +in(guj):3 * gur = +in(guru):3 * iu = +ca(ike):3 * lo = +la%(v[3]):3 * kan = +in(kan):3 * mi = +mao%(v[3]):3 * ogham = +ie(ogam):3 * ori = +ie(ori):3 * sapmi = +no(smi):3 * sr = +srp%(v[3]):3 * syr = +sy(syc):3 * tel = +in(tel):3 * tml = +in(tam):3 * yu = +srp%(v[3]):3 * fr-latin9 = +fr(latin9):3 * us_intl = +us(alt-intl):3 * ben(basic) = +in(ben):3 * ben(probhat) = +in(ben_probhat):3 * dev(basic) = +in(deva):3 * dvorak($dvoraklayouts) = +%v(dvorak):3 * dvorak(basic) = +us(dvorak):3 * dvorak(pl_basic) = +pl(dvorak):3 * dvorak(pl) = +pl(dvorak_quotes):3 * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3 * dzdwi(basic) = +bt(basic):3 * fi(basic) = +fi(classic):3 * ge(azerty_tskapo) = +fr(geo):3 * guj(basic) = +in(guj):3 * gur(basic) = +in(guru):3 * ie(laptop) = +ie(basic):3 * ie(CloGaelachLaptop) = +ie(CloGaelach):3 * in(urd) = +in(urd-phonetic):3 * iu(basic) = +ca(ike):3 * lo(basic) = +la(basic):3 * kan(basic) = +in(kan):3 * mal(basic) = +in(mal):3 * mal(mlplusnum) = +in(mal):3 * ogham(basic) = +ie(ogam):3 * ogham(laptop) = +ie(ogam):3 * ogham(is434) = +ie(ogam_is434):3 * ogham(is434laptop) = +ie(ogam_is434):3 * ori(basic) = +in(ori):3 * ro(de) = +ro(winkeys):3 * ro(us) = +ro(std):3 * ro(academic) = +ro(std):3 * ro(std_comma) = +ro(std):3 * ro(comma) = +ro(basic):3 * ru(os) = +ru(os_legacy):3 * pk(urd) = +pk(urd-phonetic):3 * sapmi(basic) = +no(smi):3 * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3 * sapmi(sefi) = +fi(smi):3 * sin(phonetic-static) = +in(sin_phonetic):3 * syr(basic) = +sy(syc):3 * syr(phonetic) = +sy(syc_phonetic):3 * tam(INSCRIPT) = +in(tam):3 * tam(UNI) = +in(tam_unicode):3 * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3 * tam(TAB) = +in(tam_TAB):3 * tam(TSCII) = +in(tam_TSCII):3 * tel(basic) = +in(tel):3 * yu(basic) = +srp(latin):3 * yu(unicode) = +srp(latinunicode):3 * yu(yz) = +srp(latinyz):3 * yu(unicodeyz) = +srp(latinunicodeyz):3 nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3 nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3 $sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3 * * = +%l[3]%(v[3]):3 ! model layout[4] = symbols * ar = +ara%(v[4]):4 * ben = +in(ben):4 * bs = +ba%(v[4]):4 * cs = +rs%(v[4]):4 * cz_qwerty = +cz(qwerty):4 * dev = +in(deva):4 * dvorak = +us(dvorak):4 * dzdwi = +bt%(v[4]):4 * el = +gr%(v[4]):4 * en_US = +latin%(v[4]):4 * guj = +in(guj):4 * gur = +in(guru):4 * iu = +ca(ike):4 * lo = +la%(v[4]):4 * kan = +in(kan):4 * mi = +mao%(v[4]):4 * ogham = +ie(ogam):4 * ori = +ie(ori):4 * sapmi = +no(smi):4 * sr = +srp%(v[4]):4 * syr = +sy(syc):4 * tel = +in(tel):4 * tml = +in(tam):4 * yu = +srp%(v[4]):4 * fr-latin9 = +fr(latin9):4 * us_intl = +us(alt-intl):4 * ben(basic) = +in(ben):4 * ben(probhat) = +in(ben_probhat):4 * dev(basic) = +in(deva):4 * dvorak($dvoraklayouts) = +%v(dvorak):4 * dvorak(basic) = +us(dvorak):4 * dvorak(pl_basic) = +pl(dvorak):4 * dvorak(pl) = +pl(dvorak_quotes):4 * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4 * dzdwi(basic) = +bt(basic):4 * fi(basic) = +fi(classic):4 * ge(azerty_tskapo) = +fr(geo):4 * guj(basic) = +in(guj):4 * gur(basic) = +in(guru):4 * ie(laptop) = +ie(basic):4 * ie(CloGaelachLaptop) = +ie(CloGaelach):4 * in(urd) = +in(urd-phonetic):4 * iu(basic) = +ca(ike):4 * lo(basic) = +la(basic):4 * kan(basic) = +in(kan):4 * mal(basic) = +in(mal):4 * mal(mlplusnum) = +in(mal):4 * ogham(basic) = +ie(ogam):4 * ogham(laptop) = +ie(ogam):4 * ogham(is434) = +ie(ogam_is434):4 * ogham(is434laptop) = +ie(ogam_is434):4 * ori(basic) = +in(ori):4 * ro(de) = +ro(winkeys):4 * ro(us) = +ro(std):4 * ro(academic) = +ro(std):4 * ro(std_comma) = +ro(std):4 * ro(comma) = +ro(basic):4 * ru(os) = +ru(os_legacy):4 * pk(urd) = +pk(urd-phonetic):4 * sapmi(basic) = +no(smi):4 * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4 * sapmi(sefi) = +fi(smi):4 * sin(phonetic-static) = +in(sin_phonetic):4 * syr(basic) = +sy(syc):4 * syr(phonetic) = +sy(syc_phonetic):4 * tam(INSCRIPT) = +in(tam):4 * tam(UNI) = +in(tam_unicode):4 * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4 * tam(TAB) = +in(tam_TAB):4 * tam(TSCII) = +in(tam_TSCII):4 * tel(basic) = +in(tel):4 * yu(basic) = +srp(latin):4 * yu(unicode) = +srp(latinunicode):4 * yu(yz) = +srp(latinyz):4 * yu(unicodeyz) = +srp(latinunicodeyz):4 nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4 nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4 $sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4 * * = +%l[4]%(v[4]):4 ! model layout[2] variant[2] = symbols * ben basic = +in(ben):2 * ben probhat = +in(ben_probhat):2 * dev basic = +in(deva):2 * dvorak $dvoraklayouts = +%v(dvorak):2 * dvorak basic = +us(dvorak):2 * dvorak pl_basic = +pl(dvorak):2 * dvorak pl = +pl(dvorak_quotes):2 * dvorak pl_altquotes = +pl(dvorak_altquotes):2 * dzdwi basic = +bt(basic):2 * fi basic = +fi(classic):2 * ge azerty_tskapo = +fr(geo):2 * guj basic = +in(guj):2 * gur basic = +in(guru):2 * ie laptop = +ie(basic):2 * ie CloGaelachLaptop = +ie(CloGaelach):2 * in urd = +in(urd-phonetic):2 * iu basic = +ca(ike):2 * lo basic = +la(basic):2 * kan basic = +in(kan):2 * mal basic = +in(mal):2 * mal mlplusnum = +in(mal):2 * ogham basic = +ie(ogam):2 * ogham laptop = +ie(ogam):2 * ogham is434 = +ie(ogam_is434):2 * ogham is434laptop = +ie(ogam_is434):2 * ori basic = +in(ori):2 * ro de = +ro(winkeys):2 * ro us = +ro(std):2 * ro academic = +ro(std):2 * ro std_comma = +ro(std):2 * ro comma = +ro(basic):2 * ru os = +ru(os_legacy):2 * pk urd = +pk(urd-phonetic):2 * sapmi basic = +no(smi):2 * sapmi nodeadkeys = +no(smi_nodeadkeys):2 * sapmi sefi = +fi(smi):2 * sin phonetic-static = +in(sin_phonetic):2 * syr basic = +sy(syc):2 * syr phonetic = +sy(syc_phonetic):2 * tam INSCRIPT = +in(tam):2 * tam UNI = +in(tam_unicode):2 * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):2 * tam TAB = +in(tam_TAB):2 * tam TSCII = +in(tam_TSCII):2 * tel basic = +in(tel):2 * yu basic = +srp(latin):2 * yu unicode = +srp(latinunicode):2 * yu yz = +srp(latinyz):2 * yu unicodeyz = +srp(latinunicodeyz):2 ! model layout[3] variant[3] = symbols * ben basic = +in(ben):3 * ben probhat = +in(ben_probhat):3 * dev basic = +in(deva):3 * dvorak $dvoraklayouts = +%v(dvorak):3 * dvorak basic = +us(dvorak):3 * dvorak pl_basic = +pl(dvorak):3 * dvorak pl = +pl(dvorak_quotes):3 * dvorak pl_altquotes = +pl(dvorak_altquotes):3 * dzdwi basic = +bt(basic):3 * fi basic = +fi(classic):3 * ge azerty_tskapo = +fr(geo):3 * guj basic = +in(guj):3 * gur basic = +in(guru):3 * ie laptop = +ie(basic):3 * ie CloGaelachLaptop = +ie(CloGaelach):3 * in urd = +in(urd-phonetic):3 * iu basic = +ca(ike):3 * lo basic = +la(basic):3 * kan basic = +in(kan):3 * mal basic = +in(mal):3 * mal mlplusnum = +in(mal):3 * ogham basic = +ie(ogam):3 * ogham laptop = +ie(ogam):3 * ogham is434 = +ie(ogam_is434):3 * ogham is434laptop = +ie(ogam_is434):3 * ori basic = +in(ori):3 * ro de = +ro(winkeys):3 * ro us = +ro(std):3 * ro academic = +ro(std):3 * ro std_comma = +ro(std):3 * ro comma = +ro(basic):3 * ru os = +ru(os_legacy):3 * pk urd = +pk(urd-phonetic):3 * sapmi basic = +no(smi):3 * sapmi nodeadkeys = +no(smi_nodeadkeys):3 * sapmi sefi = +fi(smi):3 * sin phonetic-static = +in(sin_phonetic):3 * syr basic = +sy(syc):3 * syr phonetic = +sy(syc_phonetic):3 * tam INSCRIPT = +in(tam):3 * tam UNI = +in(tam_unicode):3 * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):3 * tam TAB = +in(tam_TAB):3 * tam TSCII = +in(tam_TSCII):3 * tel basic = +in(tel):3 * yu basic = +srp(latin):3 * yu unicode = +srp(latinunicode):3 * yu yz = +srp(latinyz):3 * yu unicodeyz = +srp(latinunicodeyz):3 ! model layout[4] variant[4] = symbols * ben basic = +in(ben):4 * ben probhat = +in(ben_probhat):4 * dev basic = +in(deva):4 * dvorak $dvoraklayouts = +%v(dvorak):4 * dvorak basic = +us(dvorak):4 * dvorak pl_basic = +pl(dvorak):4 * dvorak pl = +pl(dvorak_quotes):4 * dvorak pl_altquotes = +pl(dvorak_altquotes):4 * dzdwi basic = +bt(basic):4 * fi basic = +fi(classic):4 * ge azerty_tskapo = +fr(geo):4 * guj basic = +in(guj):4 * gur basic = +in(guru):4 * ie laptop = +ie(basic):4 * ie CloGaelachLaptop = +ie(CloGaelach):4 * in urd = +in(urd-phonetic):4 * iu basic = +ca(ike):4 * lo basic = +la(basic):4 * kan basic = +in(kan):4 * mal basic = +in(mal):4 * mal mlplusnum = +in(mal):4 * ogham basic = +ie(ogam):4 * ogham laptop = +ie(ogam):4 * ogham is434 = +ie(ogam_is434):4 * ogham is434laptop = +ie(ogam_is434):4 * ori basic = +in(ori):4 * ro de = +ro(winkeys):4 * ro us = +ro(std):4 * ro academic = +ro(std):4 * ro std_comma = +ro(std):4 * ro comma = +ro(basic):4 * ru os = +ru(os_legacy):4 * pk urd = +pk(urd-phonetic):4 * sapmi basic = +no(smi):4 * sapmi nodeadkeys = +no(smi_nodeadkeys):4 * sapmi sefi = +fi(smi):4 * sin phonetic-static = +in(sin_phonetic):4 * syr basic = +sy(syc):4 * syr phonetic = +sy(syc_phonetic):4 * tam INSCRIPT = +in(tam):4 * tam UNI = +in(tam_unicode):4 * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):4 * tam TAB = +in(tam_TAB):4 * tam TSCII = +in(tam_TSCII):4 * tel basic = +in(tel):4 * yu basic = +srp(latin):4 * yu unicode = +srp(latinunicode):4 * yu yz = +srp(latinyz):4 * yu unicodeyz = +srp(latinunicodeyz):4 ! model = symbols a4techKB21 = +inet(media_nav_common) a4techKBS8 = +inet(media_nav_acpi_common) a4_rfkb23 = +inet(media_nav_acpi_common) asus_laptop = +inet(media_common) acer_tm_800 = +inet(acer_laptop) benqx730 = +inet(benqx) benqx800 = +inet(benqx) btc5126t = +inet(nav_acpi_common) btc9116u = +inet(btc9019u) btc6301urf = +inet(media_nav_acpi_common) chromebook = +inet(chromebook) dellsk8125 = +inet(dell) dellsk8135 = +inet(dell) cherrybunlim = +inet(nav_common) dexxa = +inet(media_nav_common) dtk2000 = +inet(media_nav_acpi_common) fscaa1667g = +inet(media_nav_common) geniuskb19e = +inet(media_nav_acpi_common) geniuscomfy = +inet(media_nav_acpi_common) geniuskkb2050hs = +inet(dellusbmm) hpnx9020 = +inet(hpi6) latitude = +inet(media_common) logicd = +inet(logitech_base) logicd_it = +inet(logitech_base) logicd_nav = +inet(logitech_base) logicd_opt = +inet(logitech_base) logiultrax = +inet(logitech_base) logiclx300 = +inet(logiex110) logii350 = +inet(logiex110) logimel = +inet(logiex110) logicdit = +inet(logicd) logicdo = +inet(logicd) logicdp = +inet(logicd) logicdpa = +inet(logicda) logiciink = +inet(logicink) ltcd = +inet(logicda) microsoftccurve2k = +inet(microsoftprooem) microsoftpro = +inet(media_nav_acpi_common) precision_m = +inet(media_nav_common) scorpius = +inet(media_nav_acpi_common) sp_inet = +inet(media_nav_acpi_common) targa_v811 = +inet(media_nav_acpi_common) thinkpad = +inet(media_nav_common) thinkpadz60 = +inet(thinkpad60) tm2030USB-102 = +inet(media_nav_acpi_common) tm2030USB-106 = +inet(media_nav_acpi_common) trust_slimline = +inet(media_nav_acpi_common) vsonku306 = +inet(microsoftprooem) $inetkbds = +inet(%m) $maclaptop = +inet(apple)+level3(enter_switch) $applealu = +inet(apple) $macs = +inet(apple) sun_type7_jp_usb = +sun_vndr/solaris(defaults_type7jp) $sun = +sun_vndr/solaris(defaults) ! model layout = symbols $inetmediakbds jp = +jp(henkan) ! layout variant = compat de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) jp $sun_compat = complete+japan(kana_lock) ! layout[1] variant[1] = compat de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) jp $sun_compat = complete+japan(kana_lock) ! layout[2] variant[2] = compat de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de koy = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de bone = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de bone_eszett_home = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de neo_qwertz = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de neo_qwerty = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 jp $sun_compat = +complete+japan(kana_lock):2 ! layout[3] variant[3] = compat de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de koy = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de bone = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de bone_eszett_home = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de neo_qwertz = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de neo_qwerty = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 jp $sun_compat = +complete+japan(kana_lock):3 ! layout[4] variant[4] = compat de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de koy = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de bone = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de bone_eszett_home = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de neo_qwertz = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de neo_qwerty = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 jp $sun_compat = +complete+japan(kana_lock):4 ! model layout = compat pc98 nec_vndr/jp = pc98(basic) * jp = complete+japan olpc * = olpc olpcm * = olpc * * = complete ! model layout[1] = compat * * = complete ! model = types $macs = complete+numpad(mac) $applealu = complete+numpad(mac) $nokiamodels = complete+nokia * = complete ! layout option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) * misc:typo = +typo(base) ! layout[1] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 * misc:typo = +typo(base):1 ! layout[2] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 * misc:typo = +typo(base):2 ! layout[3] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 * misc:typo = +typo(base):3 ! layout[4] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 * misc:typo = +typo(base):4 ! option = symbols grp:shift_toggle = +group(shifts_toggle) altwin:menu = +altwin(menu) altwin:menu_win = +altwin(menu_win) altwin:meta_alt = +altwin(meta_alt) altwin:alt_win = +altwin(alt_win) altwin:ctrl_win = +altwin(ctrl_win) altwin:ctrl_alt_win = +altwin(ctrl_alt_win) altwin:meta_win = +altwin(meta_win) altwin:left_meta_win = +altwin(left_meta_win) altwin:hyper_win = +altwin(hyper_win) altwin:alt_super_win = +altwin(alt_super_win) altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin) altwin:swap_alt_win = +altwin(swap_alt_win) altwin:prtsc_rwin = +altwin(prtsc_rwin) grab:debug = +srvr_ctrl(grab_debug) grp:switch = +group(switch) grp:lswitch = +group(lswitch) grp:win_switch = +group(win_switch) grp:lwin_switch = +group(lwin_switch) grp:rwin_switch = +group(rwin_switch) grp:menu_switch = +group(menu_switch) grp:toggle = +group(toggle) grp:shifts_toggle = +group(shifts_toggle) grp:ctrls_toggle = +group(ctrls_toggle) grp:alts_toggle = +group(alts_toggle) grp:caps_toggle = +capslock(grouplock) grp:caps_switch = +capslock(groupshift) grp:shift_caps_toggle = +group(shift_caps_toggle) grp:shift_caps_switch = +group(shift_caps_switch) grp:win_space_toggle = +group(win_space_toggle) grp:win_menu_switch = +group(win_menu_switch) grp:alt_caps_toggle = +group(alt_caps_toggle) grp:alt_space_toggle = +group(alt_space_toggle) grp:menu_toggle = +group(menu_toggle) grp:lwin_toggle = +group(lwin_toggle) grp:rwin_toggle = +group(rwin_toggle) grp:lshift_toggle = +group(lshift_toggle) grp:rshift_toggle = +group(rshift_toggle) grp:rctrl_switch = +group(rctrl_switch) grp:lctrl_toggle = +group(lctrl_toggle) grp:rctrl_toggle = +group(rctrl_toggle) grp:lalt_toggle = +group(lalt_toggle) grp:sclk_toggle = +group(sclk_toggle) grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch) grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu) grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle) grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle) grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir) grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle) grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle) grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir) grp:lalt_lshift_toggle = +group(lalt_lshift_toggle) grp:ralt_rshift_toggle = +group(ralt_rshift_toggle) grp:alt_shift_toggle = +group(alt_shift_toggle) grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir) grp:lctrl_lwin_toggle = +group(lctrl_lwin_toggle) lv3:switch = +level3(switch) lv3:ralt_switch = +level3(ralt_switch) lv3:ralt_switch_multikey = +level3(ralt_switch_multikey) lv3:ralt_alt = +level3(ralt_alt) lv3:lalt_switch = +level3(lalt_switch) lv3:alt_switch = +level3(alt_switch) lv3:menu_switch = +level3(menu_switch) lv3:win_switch = +level3(win_switch) lv3:lwin_switch = +level3(lwin_switch) lv3:rwin_switch = +level3(rwin_switch) lv3:enter_switch = +level3(enter_switch) lv3:4_switch_isolated = +level3(4_switch_isolated) lv3:9_switch_isolated = +level3(9_switch_isolated) caps:capslock = +capslock(capslock) caps:numlock = +capslock(numlock) caps:shiftlock = +capslock(shiftlock) caps:swapescape = +capslock(swapescape) caps:escape = +capslock(escape) caps:escape_shifted_capslock = +capslock(escape_shifted_capslock) caps:backspace = +capslock(backspace) caps:super = +capslock(super) caps:hyper = +capslock(hyper) caps:menu = +capslock(menu) caps:none = +capslock(none) caps:ctrl_modifier = +capslock(ctrl_modifier) ctrl:nocaps = +ctrl(nocaps) ctrl:lctrl_meta = +ctrl(lctrl_meta) ctrl:swapcaps = +ctrl(swapcaps) ctrl:swapcaps_hyper = +ctrl(swapcaps_hyper) ctrl:ac_ctrl = +ctrl(ac_ctrl) ctrl:aa_ctrl = +ctrl(aa_ctrl) ctrl:rctrl_ralt = +ctrl(rctrl_ralt) ctrl:menu_rctrl = +ctrl(menu_rctrl) ctrl:ralt_rctrl = +ctrl(ralt_rctrl) ctrl:swap_lalt_lctl = +ctrl(swap_lalt_lctl) ctrl:swap_lwin_lctl = +ctrl(swap_lwin_lctl) ctrl:swap_rwin_rctl = +ctrl(swap_rwin_rctl) ctrl:swap_lalt_lctl_lwin = +ctrl(swap_lalt_lctl_lwin) compose:ralt = +compose(ralt) compose:lwin = +compose(lwin) compose:lwin-altgr = +compose(lwin-altgr) compose:rwin = +compose(rwin) compose:rwin-altgr = +compose(rwin-altgr) compose:menu = +compose(menu) compose:menu-altgr = +compose(menu-altgr) compose:lctrl = +compose(lctrl) compose:lctrl-altgr = +compose(lctrl-altgr) compose:rctrl = +compose(rctrl) compose:rctrl-altgr = +compose(rctrl-altgr) compose:caps = +compose(caps) compose:caps-altgr = +compose(caps-altgr) compose:102 = +compose(102) compose:102-altgr = +compose(102-altgr) compose:paus = +compose(paus) compose:prsc = +compose(prsc) compose:sclk = +compose(sclk) srvrkeys:none = +srvr_ctrl(no_srvr_keys) eurosign:e = +eurosign(e) eurosign:2 = +eurosign(2) eurosign:4 = +eurosign(4) eurosign:5 = +eurosign(5) rupeesign:4 = +rupeesign(4) keypad:oss = +keypad(oss) keypad:legacy = +keypad(legacy) keypad:legacy_wang = +keypad(legacy_wang) keypad:oss_wang = +keypad(oss_wang) keypad:future = +keypad(future) keypad:future_wang = +keypad(future_wang) keypad:hex = +keypad(ops)+keypad(hex) keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm) nbsp:none = +nbsp(none) nbsp:level2 = +nbsp(level2) nbsp:level3 = +nbsp(level3) nbsp:level3s = +nbsp(level3s) nbsp:level3n = +nbsp(level3n) nbsp:level4 = +nbsp(level4) nbsp:level4n = +nbsp(level4n) nbsp:level4nl = +nbsp(level4nl) japan:nicola_f_bs = +jp(nicola_f_bs) japan:hztg_escape = +jp(hztg_escape) korean:ralt_hangul = +kr(ralt_hangul) korean:rctrl_hangul = +kr(rctrl_hangul) korean:ralt_hanja = +kr(ralt_hanja) korean:rctrl_hanja = +kr(rctrl_hanja) kpdl:dot = +kpdl(dot) kpdl:comma = +kpdl(comma) kpdl:dotoss = +kpdl(dotoss) kpdl:dotoss_latin9 = +kpdl(dotoss_latin9) kpdl:commaoss = +kpdl(commaoss) kpdl:momayyezoss = +kpdl(momayyezoss) kpdl:kposs = +kpdl(kposs) kpdl:semi = +kpdl(semi) shift:breaks_caps = +shift(breaks_caps) esperanto:qwerty = +epo(qwerty) esperanto:dvorak = +epo(dvorak) esperanto:colemak = +epo(colemak) terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp) keypad:pointerkeys = +keypad(pointerkeys) apple:alupckeys = +macintosh_vndr/apple(alupckeys) shift:both_capslock = +shift(both_capslock) shift:lshift_both_capslock = +shift(lshift_both_capslock) shift:rshift_both_capslock = +shift(rshift_both_capslock) shift:both_capslock_cancel = +shift(both_capslock_cancel) shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel) shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel) shift:both_shiftlock = +shift(both_shiftlock) shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock) shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock) solaris:sun_compat = +sun_vndr/solaris(sun_compat) lv3:caps_switch = +level3(caps_switch) lv3:bksl_switch = +level3(bksl_switch) lv3:lsgt_switch = +level3(lsgt_switch) lv3:caps_switch_latch = +level3(caps_switch_latch) lv3:bksl_switch_latch = +level3(bksl_switch_latch) lv3:lsgt_switch_latch = +level3(lsgt_switch_latch) lv5:lsgt_switch = +level5(lsgt_switch) lv5:ralt_switch = +level5(ralt_switch) lv5:lsgt_switch_lock = +level5(lsgt_switch_lock) lv5:ralt_switch_lock = +level5(ralt_switch_lock) lv5:lwin_switch_lock = +level5(lwin_switch_lock) lv5:rwin_switch_lock = +level5(rwin_switch_lock) lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel) lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel) lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel) lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel) parens:swap_brackets = +parens(swap_brackets) ! option = compat grp_led:num = +lednum(group_lock) grp_led:caps = +ledcaps(group_lock) grp_led:scroll = +ledscroll(group_lock) japan:kana_lock = +japan(kana_lock) caps:shiftlock = +ledcaps(shift_lock) grab:break_actions = +xfree86(grab_break) ! option = types caps:internal = +caps(internal) caps:internal_nocancel = +caps(internal_nocancel) caps:shift = +caps(shift) caps:shift_nocancel = +caps(shift_nocancel) numpad:pc = +numpad(pc) numpad:mac = +numpad(mac) numpad:microsoft = +numpad(microsoft) numpad:shift3 = +numpad(shift3) PK(f[?.ff rules/xkb.dtdnu[ PK(f[Y㰩 rules/evdevnu[// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part // // Rules for resolving XKB components for use with XFree86 // Copyright 1996 by Joseph Moss // // 2002 Modifier: Ivan Pascal The XFree86 Project // // If you want non-latin layouts implicitly include the en_US layout // uncomment lines below //! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ // in ir iku jp kan kh kr la lao lk mk mm mn mv mal olck \ // ori pk ru scc sy syr tel th tj tam ua uz // PC models ! $pcmodels = pc101 pc102 pc104 pc105 // Jolla devices and keyboards ! $jollamodels = jollasbj // Microsoft models (using MS geometry) ! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose // Nokia devices and keyboards ! $nokiamodels = nokiasu8w nokiarx44 nokiarx51 // PC geometries - they have special geometry but symbols are mostly pc105 ! $pcgeometries = latitude // TypeMatrix geometries ! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106 // Layouts that provide further specializations for the OLPC ! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us ! $macbooks = macbook78 macbook79 ! $maclaptop = ibook powerbook macbook78 macbook79 ! $applealu = applealu_ansi applealu_iso applealu_jis ! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 ! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us ! $azerty = be fr ! $qwertz = al cz de hr hu ro si sk // all layouts with 3rd and 4th groups ! $threelevellayouts = al az \ be br bt \ ca ch cs cz \ de dk \ ee es \ fi fo fr \ gb gr \ hu \ ie ir is it \ latam \ lk lt \ mn mt \ nl no \ pl pt \ ro \ se sk \ tr \ us \ vn \ za ! $thinkpads = thinkpad thinkpad60 thinkpadz60 ! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \ sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \ sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb ! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb // Sun Type_6_7 keyboards with custom layouts ! $sun_custom = ara be br ca ch cz de dk \ ee es fi fr gb gr it jp \ kr lt lv nl no pl pt ro \ ru se sk tr tw ua us ! $sun_var = sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \ sun_type7 sun_type7_suncompat suncompat ! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat ! $htcdreamlayouts = us it de ! $evdevkbds = ibm_spacesaver ! $dvoraklayouts = br ca de ee es fr gb no pl se us ! model = keycodes pc98 = evdev(pc98) applealu_jis = evdev+macintosh(jisevdev) $jollamodels = evdev+jolla(jolla) olpc = evdev+olpc(olpc) olpcm = evdev+olpc(olpcm) * = evdev ! layout[1] = keycodes $azerty = +aliases(azerty) $qwertz = +aliases(qwertz) * = +aliases(qwerty) ! layout = keycodes $azerty = +aliases(azerty) $qwertz = +aliases(qwertz) * = +aliases(qwerty) ! option = keycodes ! model layout = geometry thinkpad us = thinkpad(us) ! model = geometry microsoftelite = microsoft(elite) $msmodels = microsoft(natural) dell101 = dell(dell101) dellm65 = dell(dellm65) latitude = dell(latitude) flexpro = keytronic(FlexPro) hp6000 = hp(omnibook) hpmini110 = hp(mini110) hpdv5 = hp(dv5) omnikey101 = northgate(omnikey101) sanwaskbkg3 = sanwa(sanwaskbkg3) $pcmodels = pc(%m) $pcgeometries = pc(%m) everex = everex(STEPnote) thinkpad = thinkpad(intl) thinkpad60 = thinkpad(60) thinkpadz60 = thinkpad(60) apex300 = steelseries(apex300) $tmgeometries = typematrix(%m) winbook = winbook(XP5) pc98 = nec(pc98) $applealu = macintosh(%m) $macbooks = macintosh(%m) $macs = macintosh(macintosh) hhk = hhk(basic) kinesis = kinesis(model100) $nokiamodels = nokia(%m) sun_type6_jp = sun(type6jp) sun_type6_usb = sun(type6) sun_type6_euro_usb = sun(type6tuv) sun_type6_jp_usb = sun(type6jp) sun_type6_unix_usb = sun(type6unix) sun_type7_jp_usb = sun(type6jp) sun_type7_usb = sun(type7) sun_type7_euro_usb = sun(type7tuv) sun_type7_unix_usb = sun(type7unix) * = pc(pc104) ! model layout variant = symbols * ben basic = pc+in(ben) * ben probhat = pc+in(ben_probhat) * dev basic = pc+in(deva) * dvorak $dvoraklayouts = pc+%v(dvorak) * dvorak basic = pc+us(dvorak) * dvorak pl_basic = pc+pl(dvorak) * dvorak pl = pc+pl(dvorak_quotes) * dvorak pl_altquotes = pc+pl(dvorak_altquotes) * dzdwi basic = pc+bt(basic) * fi basic = pc+fi(classic) * ge azerty_tskapo = pc+fr(geo) * guj basic = pc+in(guj) * gur basic = pc+in(guru) * ie laptop = pc+ie(basic) * ie CloGaelachLaptop = pc+ie(CloGaelach) * in urd = pc+in(urd-phonetic) * iu basic = pc+ca(ike) * lo basic = pc+la(basic) * kan basic = pc+in(kan) * mal basic = pc+in(mal) * mal mlplusnum = pc+in(mal) * ogham basic = pc+ie(ogam) * ogham laptop = pc+ie(ogam) * ogham is434 = pc+ie(ogam_is434) * ogham is434laptop = pc+ie(ogam_is434) * ori basic = pc+in(ori) * ro de = pc+ro(winkeys) * ro us = pc+ro(std) * ro academic = pc+ro(std) * ro std_comma = pc+ro(std) * ro comma = pc+ro(basic) * ru os = pc+ru(os_legacy) * pk urd = pc+pk(urd-phonetic) * sapmi basic = pc+no(smi) * sapmi nodeadkeys = pc+no(smi_nodeadkeys) * sapmi sefi = pc+fi(smi) * sin phonetic-static = pc+in(sin_phonetic) * syr basic = pc+sy(syc) * syr phonetic = pc+sy(syc_phonetic) * tam INSCRIPT = pc+in(tam) * tam UNI = pc+in(tam_unicode) * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) * tam TAB = pc+in(tam_TAB) * tam TSCII = pc+in(tam_TSCII) * tel basic = pc+in(tel) * yu basic = pc+srp(latin) * yu unicode = pc+srp(latinunicode) * yu yz = pc+srp(latinyz) * yu unicodeyz = pc+srp(latinunicodeyz) classmate us intl = pc+us(classmate-intl) classmate us alt-intl = pc+us(classmate-alt-intl) classmate us altgr-intl = pc+us(classmate-altgr-intl) nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty) * $sun_custom $sun_var = pc+sun_vndr/%l%(v) ! model layout = symbols * ar = pc+ara * ben = pc+in(ben) * bs = pc+ba * cs = pc+rs * cz_qwerty = pc+cz(qwerty) * dev = pc+in(deva) * dvorak = pc+us(dvorak) * dzdwi = pc+bt * el = pc+gr * en_US = pc+latin * guj = pc+in(guj) * gur = pc+in(guru) * iu = pc+ca(ike) * lo = pc+la * kan = pc+in(kan) * mi = pc+mao * ogham = pc+ie(ogam) * ori = pc+ie(ori) * sapmi = pc+no(smi) * sr = pc+srp * syr = pc+sy(syc) * tel = pc+in(tel) * tml = pc+in(tam) * yu = pc+srp * fr-latin9 = pc+fr(latin9) * us_intl = pc+us(alt-intl) * ben(basic) = pc+in(ben) * ben(probhat) = pc+in(ben_probhat) * dev(basic) = pc+in(deva) * dvorak($dvoraklayouts) = pc+%v(dvorak) * dvorak(basic) = pc+us(dvorak) * dvorak(pl_basic) = pc+pl(dvorak) * dvorak(pl) = pc+pl(dvorak_quotes) * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) * dzdwi(basic) = pc+bt(basic) * fi(basic) = pc+fi(classic) * ge(azerty_tskapo) = pc+fr(geo) * guj(basic) = pc+in(guj) * gur(basic) = pc+in(guru) * ie(laptop) = pc+ie(basic) * ie(CloGaelachLaptop) = pc+ie(CloGaelach) * in(urd) = pc+in(urd-phonetic) * iu(basic) = pc+ca(ike) * lo(basic) = pc+la(basic) * kan(basic) = pc+in(kan) * mal(basic) = pc+in(mal) * mal(mlplusnum) = pc+in(mal) * ogham(basic) = pc+ie(ogam) * ogham(laptop) = pc+ie(ogam) * ogham(is434) = pc+ie(ogam_is434) * ogham(is434laptop) = pc+ie(ogam_is434) * ori(basic) = pc+in(ori) * ro(de) = pc+ro(winkeys) * ro(us) = pc+ro(std) * ro(academic) = pc+ro(std) * ro(std_comma) = pc+ro(std) * ro(comma) = pc+ro(basic) * ru(os) = pc+ru(os_legacy) * pk(urd) = pc+pk(urd-phonetic) * sapmi(basic) = pc+no(smi) * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) * sapmi(sefi) = pc+fi(smi) * sin(phonetic-static) = pc+in(sin_phonetic) * syr(basic) = pc+sy(syc) * syr(phonetic) = pc+sy(syc_phonetic) * tam(INSCRIPT) = pc+in(tam) * tam(UNI) = pc+in(tam_unicode) * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) * tam(TAB) = pc+in(tam_TAB) * tam(TSCII) = pc+in(tam_TSCII) * tel(basic) = pc+in(tel) * yu(basic) = pc+srp(latin) * yu(unicode) = pc+srp(latinunicode) * yu(yz) = pc+srp(latinyz) * yu(unicodeyz) = pc+srp(latinunicodeyz) ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2 ataritt * = xfree68_vndr/ataritt(us)+%l%(v) amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2 amiga * = xfree68_vndr/amiga(usa1)+%l%(v) classmate us = pc+%l(classmate) empty * = empty(basic) * empty = empty(basic) jollasbj $nonlatin = jolla_vndr/sbj(common)+us+%l%(v):2 jollasbj * = jolla_vndr/sbj(common)+%l%(v) $sun $sun_custom = pc+sun_vndr/%l%(v) pc98 nec_vndr/jp = nec_vndr/jp(pc98) macintosh_old us = macintosh_vndr/us(oldmac) macintosh_old en_US = macintosh_vndr/us(oldmac) macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2 applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2 $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v) $applealu * = macintosh_vndr/apple(alukbd)+%l%(v) $macs en_US = pc+macintosh_vndr/us(extended) $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) nokiarx44 * = nokia_vndr/rx-44(%l) nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v) nokiasu8w * = nokia_vndr/su-8w(%l) olpc $olpclayouts = olpc+%l%(m) olpc * = olpc+%l%(v) olpcm $olpclayouts = olpc+%l%(m) olpcm * = olpc+%l%(v) $thinkpads br = pc+br(thinkpad) sl-c3x00 * = pc+sharp_vndr/sl-c3x00(basic) ws003sh * = pc+sharp_vndr/ws003sh(basic) ws007sh * = pc+sharp_vndr/ws007sh(basic) ws011sh * = pc+sharp_vndr/ws011sh(basic) ws020sh * = pc+sharp_vndr/ws020sh(basic) htcdream $htcdreamlayouts = %l(htcdream) * $nonlatin = pc+us+%l%(v):2 * * = pc+%l%(v) ! model layout[1] = symbols * ar = pc+ara%(v[1]) * ben = pc+in(ben) * bs = pc+ba%(v[1]) * cs = pc+rs%(v[1]) * cz_qwerty = pc+cz(qwerty) * dev = pc+in(deva) * dvorak = pc+us(dvorak) * dzdwi = pc+bt%(v[1]) * el = pc+gr%(v[1]) * en_US = pc+latin%(v[1]) * guj = pc+in(guj) * gur = pc+in(guru) * iu = pc+ca(ike) * lo = pc+la%(v[1]) * kan = pc+in(kan) * mi = pc+mao%(v[1]) * ogham = pc+ie(ogam) * ori = pc+ie(ori) * sapmi = pc+no(smi) * sr = pc+srp%(v[1]) * syr = pc+sy(syc) * tel = pc+in(tel) * tml = pc+in(tam) * yu = pc+srp%(v[1]) * fr-latin9 = pc+fr(latin9) * us_intl = pc+us(alt-intl) * ben(basic) = pc+in(ben) * ben(probhat) = pc+in(ben_probhat) * dev(basic) = pc+in(deva) * dvorak($dvoraklayouts) = pc+%v(dvorak) * dvorak(basic) = pc+us(dvorak) * dvorak(pl_basic) = pc+pl(dvorak) * dvorak(pl) = pc+pl(dvorak_quotes) * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) * dzdwi(basic) = pc+bt(basic) * fi(basic) = pc+fi(classic) * ge(azerty_tskapo) = pc+fr(geo) * guj(basic) = pc+in(guj) * gur(basic) = pc+in(guru) * ie(laptop) = pc+ie(basic) * ie(CloGaelachLaptop) = pc+ie(CloGaelach) * in(urd) = pc+in(urd-phonetic) * iu(basic) = pc+ca(ike) * lo(basic) = pc+la(basic) * kan(basic) = pc+in(kan) * mal(basic) = pc+in(mal) * mal(mlplusnum) = pc+in(mal) * ogham(basic) = pc+ie(ogam) * ogham(laptop) = pc+ie(ogam) * ogham(is434) = pc+ie(ogam_is434) * ogham(is434laptop) = pc+ie(ogam_is434) * ori(basic) = pc+in(ori) * ro(de) = pc+ro(winkeys) * ro(us) = pc+ro(std) * ro(academic) = pc+ro(std) * ro(std_comma) = pc+ro(std) * ro(comma) = pc+ro(basic) * ru(os) = pc+ru(os_legacy) * pk(urd) = pc+pk(urd-phonetic) * sapmi(basic) = pc+no(smi) * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) * sapmi(sefi) = pc+fi(smi) * sin(phonetic-static) = pc+in(sin_phonetic) * syr(basic) = pc+sy(syc) * syr(phonetic) = pc+sy(syc_phonetic) * tam(INSCRIPT) = pc+in(tam) * tam(UNI) = pc+in(tam_unicode) * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) * tam(TAB) = pc+in(tam_TAB) * tam(TSCII) = pc+in(tam_TSCII) * tel(basic) = pc+in(tel) * yu(basic) = pc+srp(latin) * yu(unicode) = pc+srp(latinunicode) * yu(yz) = pc+srp(latinyz) * yu(unicodeyz) = pc+srp(latinunicodeyz) ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1]) amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) jollasbj * = jolla_vndr/sbj(common)+%l[1]%(v[1]) $sun $sun_custom = pc+sun_vndr/%l[1]%(v[1]) macintosh_old us = macintosh_vndr/us(oldmac) macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) applealu_jis us = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac) $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1]) $applealu * = macintosh_vndr/apple(alukbd)+%l[1]%(v[1]) $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1]) $thinkpads br = pc+%l[1](thinkpad) * * = pc+%l[1]%(v[1]) ! model layout[1] variant[1] = symbols * ben basic = pc+in(ben) * ben probhat = pc+in(ben_probhat) * dev basic = pc+in(deva) * dvorak $dvoraklayouts = pc+%v(dvorak) * dvorak basic = pc+us(dvorak) * dvorak pl_basic = pc+pl(dvorak) * dvorak pl = pc+pl(dvorak_quotes) * dvorak pl_altquotes = pc+pl(dvorak_altquotes) * dzdwi basic = pc+bt(basic) * fi basic = pc+fi(classic) * ge azerty_tskapo = pc+fr(geo) * guj basic = pc+in(guj) * gur basic = pc+in(guru) * ie laptop = pc+ie(basic) * ie CloGaelachLaptop = pc+ie(CloGaelach) * in urd = pc+in(urd-phonetic) * iu basic = pc+ca(ike) * lo basic = pc+la(basic) * kan basic = pc+in(kan) * mal basic = pc+in(mal) * mal mlplusnum = pc+in(mal) * ogham basic = pc+ie(ogam) * ogham laptop = pc+ie(ogam) * ogham is434 = pc+ie(ogam_is434) * ogham is434laptop = pc+ie(ogam_is434) * ori basic = pc+in(ori) * ro de = pc+ro(winkeys) * ro us = pc+ro(std) * ro academic = pc+ro(std) * ro std_comma = pc+ro(std) * ro comma = pc+ro(basic) * ru os = pc+ru(os_legacy) * pk urd = pc+pk(urd-phonetic) * sapmi basic = pc+no(smi) * sapmi nodeadkeys = pc+no(smi_nodeadkeys) * sapmi sefi = pc+fi(smi) * sin phonetic-static = pc+in(sin_phonetic) * syr basic = pc+sy(syc) * syr phonetic = pc+sy(syc_phonetic) * tam INSCRIPT = pc+in(tam) * tam UNI = pc+in(tam_unicode) * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) * tam TAB = pc+in(tam_TAB) * tam TSCII = pc+in(tam_TSCII) * tel basic = pc+in(tel) * yu basic = pc+srp(latin) * yu unicode = pc+srp(latinunicode) * yu yz = pc+srp(latinyz) * yu unicodeyz = pc+srp(latinunicodeyz) ! model layout[2] = symbols * ar = +ara%(v[2]):2 * ben = +in(ben):2 * bs = +ba%(v[2]):2 * cs = +rs%(v[2]):2 * cz_qwerty = +cz(qwerty):2 * dev = +in(deva):2 * dvorak = +us(dvorak):2 * dzdwi = +bt%(v[2]):2 * el = +gr%(v[2]):2 * en_US = +latin%(v[2]):2 * guj = +in(guj):2 * gur = +in(guru):2 * iu = +ca(ike):2 * lo = +la%(v[2]):2 * kan = +in(kan):2 * mi = +mao%(v[2]):2 * ogham = +ie(ogam):2 * ori = +ie(ori):2 * sapmi = +no(smi):2 * sr = +srp%(v[2]):2 * syr = +sy(syc):2 * tel = +in(tel):2 * tml = +in(tam):2 * yu = +srp%(v[2]):2 * fr-latin9 = +fr(latin9):2 * us_intl = +us(alt-intl):2 * ben(basic) = +in(ben):2 * ben(probhat) = +in(ben_probhat):2 * dev(basic) = +in(deva):2 * dvorak($dvoraklayouts) = +%v(dvorak):2 * dvorak(basic) = +us(dvorak):2 * dvorak(pl_basic) = +pl(dvorak):2 * dvorak(pl) = +pl(dvorak_quotes):2 * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2 * dzdwi(basic) = +bt(basic):2 * fi(basic) = +fi(classic):2 * ge(azerty_tskapo) = +fr(geo):2 * guj(basic) = +in(guj):2 * gur(basic) = +in(guru):2 * ie(laptop) = +ie(basic):2 * ie(CloGaelachLaptop) = +ie(CloGaelach):2 * in(urd) = +in(urd-phonetic):2 * iu(basic) = +ca(ike):2 * lo(basic) = +la(basic):2 * kan(basic) = +in(kan):2 * mal(basic) = +in(mal):2 * mal(mlplusnum) = +in(mal):2 * ogham(basic) = +ie(ogam):2 * ogham(laptop) = +ie(ogam):2 * ogham(is434) = +ie(ogam_is434):2 * ogham(is434laptop) = +ie(ogam_is434):2 * ori(basic) = +in(ori):2 * ro(de) = +ro(winkeys):2 * ro(us) = +ro(std):2 * ro(academic) = +ro(std):2 * ro(std_comma) = +ro(std):2 * ro(comma) = +ro(basic):2 * ru(os) = +ru(os_legacy):2 * pk(urd) = +pk(urd-phonetic):2 * sapmi(basic) = +no(smi):2 * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2 * sapmi(sefi) = +fi(smi):2 * sin(phonetic-static) = +in(sin_phonetic):2 * syr(basic) = +sy(syc):2 * syr(phonetic) = +sy(syc_phonetic):2 * tam(INSCRIPT) = +in(tam):2 * tam(UNI) = +in(tam_unicode):2 * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2 * tam(TAB) = +in(tam_TAB):2 * tam(TSCII) = +in(tam_TSCII):2 * tel(basic) = +in(tel):2 * yu(basic) = +srp(latin):2 * yu(unicode) = +srp(latinunicode):2 * yu(yz) = +srp(latinyz):2 * yu(unicodeyz) = +srp(latinunicodeyz):2 nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2 nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2 $sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2 * * = +%l[2]%(v[2]):2 ! model layout[3] = symbols * ar = +ara%(v[3]):3 * ben = +in(ben):3 * bs = +ba%(v[3]):3 * cs = +rs%(v[3]):3 * cz_qwerty = +cz(qwerty):3 * dev = +in(deva):3 * dvorak = +us(dvorak):3 * dzdwi = +bt%(v[3]):3 * el = +gr%(v[3]):3 * en_US = +latin%(v[3]):3 * guj = +in(guj):3 * gur = +in(guru):3 * iu = +ca(ike):3 * lo = +la%(v[3]):3 * kan = +in(kan):3 * mi = +mao%(v[3]):3 * ogham = +ie(ogam):3 * ori = +ie(ori):3 * sapmi = +no(smi):3 * sr = +srp%(v[3]):3 * syr = +sy(syc):3 * tel = +in(tel):3 * tml = +in(tam):3 * yu = +srp%(v[3]):3 * fr-latin9 = +fr(latin9):3 * us_intl = +us(alt-intl):3 * ben(basic) = +in(ben):3 * ben(probhat) = +in(ben_probhat):3 * dev(basic) = +in(deva):3 * dvorak($dvoraklayouts) = +%v(dvorak):3 * dvorak(basic) = +us(dvorak):3 * dvorak(pl_basic) = +pl(dvorak):3 * dvorak(pl) = +pl(dvorak_quotes):3 * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3 * dzdwi(basic) = +bt(basic):3 * fi(basic) = +fi(classic):3 * ge(azerty_tskapo) = +fr(geo):3 * guj(basic) = +in(guj):3 * gur(basic) = +in(guru):3 * ie(laptop) = +ie(basic):3 * ie(CloGaelachLaptop) = +ie(CloGaelach):3 * in(urd) = +in(urd-phonetic):3 * iu(basic) = +ca(ike):3 * lo(basic) = +la(basic):3 * kan(basic) = +in(kan):3 * mal(basic) = +in(mal):3 * mal(mlplusnum) = +in(mal):3 * ogham(basic) = +ie(ogam):3 * ogham(laptop) = +ie(ogam):3 * ogham(is434) = +ie(ogam_is434):3 * ogham(is434laptop) = +ie(ogam_is434):3 * ori(basic) = +in(ori):3 * ro(de) = +ro(winkeys):3 * ro(us) = +ro(std):3 * ro(academic) = +ro(std):3 * ro(std_comma) = +ro(std):3 * ro(comma) = +ro(basic):3 * ru(os) = +ru(os_legacy):3 * pk(urd) = +pk(urd-phonetic):3 * sapmi(basic) = +no(smi):3 * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3 * sapmi(sefi) = +fi(smi):3 * sin(phonetic-static) = +in(sin_phonetic):3 * syr(basic) = +sy(syc):3 * syr(phonetic) = +sy(syc_phonetic):3 * tam(INSCRIPT) = +in(tam):3 * tam(UNI) = +in(tam_unicode):3 * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3 * tam(TAB) = +in(tam_TAB):3 * tam(TSCII) = +in(tam_TSCII):3 * tel(basic) = +in(tel):3 * yu(basic) = +srp(latin):3 * yu(unicode) = +srp(latinunicode):3 * yu(yz) = +srp(latinyz):3 * yu(unicodeyz) = +srp(latinunicodeyz):3 nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3 nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3 $sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3 * * = +%l[3]%(v[3]):3 ! model layout[4] = symbols * ar = +ara%(v[4]):4 * ben = +in(ben):4 * bs = +ba%(v[4]):4 * cs = +rs%(v[4]):4 * cz_qwerty = +cz(qwerty):4 * dev = +in(deva):4 * dvorak = +us(dvorak):4 * dzdwi = +bt%(v[4]):4 * el = +gr%(v[4]):4 * en_US = +latin%(v[4]):4 * guj = +in(guj):4 * gur = +in(guru):4 * iu = +ca(ike):4 * lo = +la%(v[4]):4 * kan = +in(kan):4 * mi = +mao%(v[4]):4 * ogham = +ie(ogam):4 * ori = +ie(ori):4 * sapmi = +no(smi):4 * sr = +srp%(v[4]):4 * syr = +sy(syc):4 * tel = +in(tel):4 * tml = +in(tam):4 * yu = +srp%(v[4]):4 * fr-latin9 = +fr(latin9):4 * us_intl = +us(alt-intl):4 * ben(basic) = +in(ben):4 * ben(probhat) = +in(ben_probhat):4 * dev(basic) = +in(deva):4 * dvorak($dvoraklayouts) = +%v(dvorak):4 * dvorak(basic) = +us(dvorak):4 * dvorak(pl_basic) = +pl(dvorak):4 * dvorak(pl) = +pl(dvorak_quotes):4 * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4 * dzdwi(basic) = +bt(basic):4 * fi(basic) = +fi(classic):4 * ge(azerty_tskapo) = +fr(geo):4 * guj(basic) = +in(guj):4 * gur(basic) = +in(guru):4 * ie(laptop) = +ie(basic):4 * ie(CloGaelachLaptop) = +ie(CloGaelach):4 * in(urd) = +in(urd-phonetic):4 * iu(basic) = +ca(ike):4 * lo(basic) = +la(basic):4 * kan(basic) = +in(kan):4 * mal(basic) = +in(mal):4 * mal(mlplusnum) = +in(mal):4 * ogham(basic) = +ie(ogam):4 * ogham(laptop) = +ie(ogam):4 * ogham(is434) = +ie(ogam_is434):4 * ogham(is434laptop) = +ie(ogam_is434):4 * ori(basic) = +in(ori):4 * ro(de) = +ro(winkeys):4 * ro(us) = +ro(std):4 * ro(academic) = +ro(std):4 * ro(std_comma) = +ro(std):4 * ro(comma) = +ro(basic):4 * ru(os) = +ru(os_legacy):4 * pk(urd) = +pk(urd-phonetic):4 * sapmi(basic) = +no(smi):4 * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4 * sapmi(sefi) = +fi(smi):4 * sin(phonetic-static) = +in(sin_phonetic):4 * syr(basic) = +sy(syc):4 * syr(phonetic) = +sy(syc_phonetic):4 * tam(INSCRIPT) = +in(tam):4 * tam(UNI) = +in(tam_unicode):4 * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4 * tam(TAB) = +in(tam_TAB):4 * tam(TSCII) = +in(tam_TSCII):4 * tel(basic) = +in(tel):4 * yu(basic) = +srp(latin):4 * yu(unicode) = +srp(latinunicode):4 * yu(yz) = +srp(latinyz):4 * yu(unicodeyz) = +srp(latinunicodeyz):4 nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4 nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4 $sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4 * * = +%l[4]%(v[4]):4 ! model layout[2] variant[2] = symbols * ben basic = +in(ben):2 * ben probhat = +in(ben_probhat):2 * dev basic = +in(deva):2 * dvorak $dvoraklayouts = +%v(dvorak):2 * dvorak basic = +us(dvorak):2 * dvorak pl_basic = +pl(dvorak):2 * dvorak pl = +pl(dvorak_quotes):2 * dvorak pl_altquotes = +pl(dvorak_altquotes):2 * dzdwi basic = +bt(basic):2 * fi basic = +fi(classic):2 * ge azerty_tskapo = +fr(geo):2 * guj basic = +in(guj):2 * gur basic = +in(guru):2 * ie laptop = +ie(basic):2 * ie CloGaelachLaptop = +ie(CloGaelach):2 * in urd = +in(urd-phonetic):2 * iu basic = +ca(ike):2 * lo basic = +la(basic):2 * kan basic = +in(kan):2 * mal basic = +in(mal):2 * mal mlplusnum = +in(mal):2 * ogham basic = +ie(ogam):2 * ogham laptop = +ie(ogam):2 * ogham is434 = +ie(ogam_is434):2 * ogham is434laptop = +ie(ogam_is434):2 * ori basic = +in(ori):2 * ro de = +ro(winkeys):2 * ro us = +ro(std):2 * ro academic = +ro(std):2 * ro std_comma = +ro(std):2 * ro comma = +ro(basic):2 * ru os = +ru(os_legacy):2 * pk urd = +pk(urd-phonetic):2 * sapmi basic = +no(smi):2 * sapmi nodeadkeys = +no(smi_nodeadkeys):2 * sapmi sefi = +fi(smi):2 * sin phonetic-static = +in(sin_phonetic):2 * syr basic = +sy(syc):2 * syr phonetic = +sy(syc_phonetic):2 * tam INSCRIPT = +in(tam):2 * tam UNI = +in(tam_unicode):2 * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):2 * tam TAB = +in(tam_TAB):2 * tam TSCII = +in(tam_TSCII):2 * tel basic = +in(tel):2 * yu basic = +srp(latin):2 * yu unicode = +srp(latinunicode):2 * yu yz = +srp(latinyz):2 * yu unicodeyz = +srp(latinunicodeyz):2 ! model layout[3] variant[3] = symbols * ben basic = +in(ben):3 * ben probhat = +in(ben_probhat):3 * dev basic = +in(deva):3 * dvorak $dvoraklayouts = +%v(dvorak):3 * dvorak basic = +us(dvorak):3 * dvorak pl_basic = +pl(dvorak):3 * dvorak pl = +pl(dvorak_quotes):3 * dvorak pl_altquotes = +pl(dvorak_altquotes):3 * dzdwi basic = +bt(basic):3 * fi basic = +fi(classic):3 * ge azerty_tskapo = +fr(geo):3 * guj basic = +in(guj):3 * gur basic = +in(guru):3 * ie laptop = +ie(basic):3 * ie CloGaelachLaptop = +ie(CloGaelach):3 * in urd = +in(urd-phonetic):3 * iu basic = +ca(ike):3 * lo basic = +la(basic):3 * kan basic = +in(kan):3 * mal basic = +in(mal):3 * mal mlplusnum = +in(mal):3 * ogham basic = +ie(ogam):3 * ogham laptop = +ie(ogam):3 * ogham is434 = +ie(ogam_is434):3 * ogham is434laptop = +ie(ogam_is434):3 * ori basic = +in(ori):3 * ro de = +ro(winkeys):3 * ro us = +ro(std):3 * ro academic = +ro(std):3 * ro std_comma = +ro(std):3 * ro comma = +ro(basic):3 * ru os = +ru(os_legacy):3 * pk urd = +pk(urd-phonetic):3 * sapmi basic = +no(smi):3 * sapmi nodeadkeys = +no(smi_nodeadkeys):3 * sapmi sefi = +fi(smi):3 * sin phonetic-static = +in(sin_phonetic):3 * syr basic = +sy(syc):3 * syr phonetic = +sy(syc_phonetic):3 * tam INSCRIPT = +in(tam):3 * tam UNI = +in(tam_unicode):3 * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):3 * tam TAB = +in(tam_TAB):3 * tam TSCII = +in(tam_TSCII):3 * tel basic = +in(tel):3 * yu basic = +srp(latin):3 * yu unicode = +srp(latinunicode):3 * yu yz = +srp(latinyz):3 * yu unicodeyz = +srp(latinunicodeyz):3 ! model layout[4] variant[4] = symbols * ben basic = +in(ben):4 * ben probhat = +in(ben_probhat):4 * dev basic = +in(deva):4 * dvorak $dvoraklayouts = +%v(dvorak):4 * dvorak basic = +us(dvorak):4 * dvorak pl_basic = +pl(dvorak):4 * dvorak pl = +pl(dvorak_quotes):4 * dvorak pl_altquotes = +pl(dvorak_altquotes):4 * dzdwi basic = +bt(basic):4 * fi basic = +fi(classic):4 * ge azerty_tskapo = +fr(geo):4 * guj basic = +in(guj):4 * gur basic = +in(guru):4 * ie laptop = +ie(basic):4 * ie CloGaelachLaptop = +ie(CloGaelach):4 * in urd = +in(urd-phonetic):4 * iu basic = +ca(ike):4 * lo basic = +la(basic):4 * kan basic = +in(kan):4 * mal basic = +in(mal):4 * mal mlplusnum = +in(mal):4 * ogham basic = +ie(ogam):4 * ogham laptop = +ie(ogam):4 * ogham is434 = +ie(ogam_is434):4 * ogham is434laptop = +ie(ogam_is434):4 * ori basic = +in(ori):4 * ro de = +ro(winkeys):4 * ro us = +ro(std):4 * ro academic = +ro(std):4 * ro std_comma = +ro(std):4 * ro comma = +ro(basic):4 * ru os = +ru(os_legacy):4 * pk urd = +pk(urd-phonetic):4 * sapmi basic = +no(smi):4 * sapmi nodeadkeys = +no(smi_nodeadkeys):4 * sapmi sefi = +fi(smi):4 * sin phonetic-static = +in(sin_phonetic):4 * syr basic = +sy(syc):4 * syr phonetic = +sy(syc_phonetic):4 * tam INSCRIPT = +in(tam):4 * tam UNI = +in(tam_unicode):4 * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):4 * tam TAB = +in(tam_TAB):4 * tam TSCII = +in(tam_TSCII):4 * tel basic = +in(tel):4 * yu basic = +srp(latin):4 * yu unicode = +srp(latinunicode):4 * yu yz = +srp(latinyz):4 * yu unicodeyz = +srp(latinunicodeyz):4 ! model = symbols $evdevkbds = +inet(evdev)+inet(%m) chromebook = +inet(evdev)+inet(chromebook) applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys) * = +inet(evdev) ! model layout = symbols ! layout variant = compat de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) jp $sun_compat = complete+japan(kana_lock) ! layout[1] variant[1] = compat de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de koy = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de bone = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de bone_eszett_home = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de neo_qwertz = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) de neo_qwerty = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) jp $sun_compat = complete+japan(kana_lock) ! layout[2] variant[2] = compat de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de koy = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de bone = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de bone_eszett_home = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de neo_qwertz = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 de neo_qwerty = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 jp $sun_compat = +complete+japan(kana_lock):2 ! layout[3] variant[3] = compat de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de koy = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de bone = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de bone_eszett_home = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de neo_qwertz = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 de neo_qwerty = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 jp $sun_compat = +complete+japan(kana_lock):3 ! layout[4] variant[4] = compat de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de koy = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de bone = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de bone_eszett_home = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de neo_qwertz = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 de neo_qwerty = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 jp $sun_compat = +complete+japan(kana_lock):4 ! model layout = compat pc98 nec_vndr/jp = pc98(basic) * jp = complete+japan olpc * = olpc olpcm * = olpc * * = complete ! model layout[1] = compat * * = complete ! model = types $macs = complete+numpad(mac) $applealu = complete+numpad(mac) $nokiamodels = complete+nokia * = complete ! layout option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) * misc:typo = +typo(base) ! layout[1] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 * misc:typo = +typo(base):1 ! layout[2] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 * misc:typo = +typo(base):2 ! layout[3] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 * misc:typo = +typo(base):3 ! layout[4] option = symbols $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 * misc:typo = +typo(base):4 ! option = symbols grp:shift_toggle = +group(shifts_toggle) altwin:menu = +altwin(menu) altwin:menu_win = +altwin(menu_win) altwin:meta_alt = +altwin(meta_alt) altwin:alt_win = +altwin(alt_win) altwin:ctrl_win = +altwin(ctrl_win) altwin:ctrl_alt_win = +altwin(ctrl_alt_win) altwin:meta_win = +altwin(meta_win) altwin:left_meta_win = +altwin(left_meta_win) altwin:hyper_win = +altwin(hyper_win) altwin:alt_super_win = +altwin(alt_super_win) altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin) altwin:swap_alt_win = +altwin(swap_alt_win) altwin:prtsc_rwin = +altwin(prtsc_rwin) grab:debug = +srvr_ctrl(grab_debug) grp:switch = +group(switch) grp:lswitch = +group(lswitch) grp:win_switch = +group(win_switch) grp:lwin_switch = +group(lwin_switch) grp:rwin_switch = +group(rwin_switch) grp:menu_switch = +group(menu_switch) grp:toggle = +group(toggle) grp:shifts_toggle = +group(shifts_toggle) grp:ctrls_toggle = +group(ctrls_toggle) grp:alts_toggle = +group(alts_toggle) grp:caps_toggle = +capslock(grouplock) grp:caps_switch = +capslock(groupshift) grp:shift_caps_toggle = +group(shift_caps_toggle) grp:shift_caps_switch = +group(shift_caps_switch) grp:win_space_toggle = +group(win_space_toggle) grp:win_menu_switch = +group(win_menu_switch) grp:alt_caps_toggle = +group(alt_caps_toggle) grp:alt_space_toggle = +group(alt_space_toggle) grp:menu_toggle = +group(menu_toggle) grp:lwin_toggle = +group(lwin_toggle) grp:rwin_toggle = +group(rwin_toggle) grp:lshift_toggle = +group(lshift_toggle) grp:rshift_toggle = +group(rshift_toggle) grp:rctrl_switch = +group(rctrl_switch) grp:lctrl_toggle = +group(lctrl_toggle) grp:rctrl_toggle = +group(rctrl_toggle) grp:lalt_toggle = +group(lalt_toggle) grp:sclk_toggle = +group(sclk_toggle) grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch) grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu) grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle) grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle) grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir) grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle) grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle) grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir) grp:lalt_lshift_toggle = +group(lalt_lshift_toggle) grp:ralt_rshift_toggle = +group(ralt_rshift_toggle) grp:alt_shift_toggle = +group(alt_shift_toggle) grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir) grp:lctrl_lwin_toggle = +group(lctrl_lwin_toggle) lv3:switch = +level3(switch) lv3:ralt_switch = +level3(ralt_switch) lv3:ralt_switch_multikey = +level3(ralt_switch_multikey) lv3:ralt_alt = +level3(ralt_alt) lv3:lalt_switch = +level3(lalt_switch) lv3:alt_switch = +level3(alt_switch) lv3:menu_switch = +level3(menu_switch) lv3:win_switch = +level3(win_switch) lv3:lwin_switch = +level3(lwin_switch) lv3:rwin_switch = +level3(rwin_switch) lv3:enter_switch = +level3(enter_switch) lv3:4_switch_isolated = +level3(4_switch_isolated) lv3:9_switch_isolated = +level3(9_switch_isolated) caps:capslock = +capslock(capslock) caps:numlock = +capslock(numlock) caps:shiftlock = +capslock(shiftlock) caps:swapescape = +capslock(swapescape) caps:escape = +capslock(escape) caps:escape_shifted_capslock = +capslock(escape_shifted_capslock) caps:backspace = +capslock(backspace) caps:super = +capslock(super) caps:hyper = +capslock(hyper) caps:menu = +capslock(menu) caps:none = +capslock(none) caps:ctrl_modifier = +capslock(ctrl_modifier) ctrl:nocaps = +ctrl(nocaps) ctrl:lctrl_meta = +ctrl(lctrl_meta) ctrl:swapcaps = +ctrl(swapcaps) ctrl:swapcaps_hyper = +ctrl(swapcaps_hyper) ctrl:ac_ctrl = +ctrl(ac_ctrl) ctrl:aa_ctrl = +ctrl(aa_ctrl) ctrl:rctrl_ralt = +ctrl(rctrl_ralt) ctrl:menu_rctrl = +ctrl(menu_rctrl) ctrl:ralt_rctrl = +ctrl(ralt_rctrl) ctrl:swap_lalt_lctl = +ctrl(swap_lalt_lctl) ctrl:swap_lwin_lctl = +ctrl(swap_lwin_lctl) ctrl:swap_rwin_rctl = +ctrl(swap_rwin_rctl) ctrl:swap_lalt_lctl_lwin = +ctrl(swap_lalt_lctl_lwin) compose:ralt = +compose(ralt) compose:lwin = +compose(lwin) compose:lwin-altgr = +compose(lwin-altgr) compose:rwin = +compose(rwin) compose:rwin-altgr = +compose(rwin-altgr) compose:menu = +compose(menu) compose:menu-altgr = +compose(menu-altgr) compose:lctrl = +compose(lctrl) compose:lctrl-altgr = +compose(lctrl-altgr) compose:rctrl = +compose(rctrl) compose:rctrl-altgr = +compose(rctrl-altgr) compose:caps = +compose(caps) compose:caps-altgr = +compose(caps-altgr) compose:102 = +compose(102) compose:102-altgr = +compose(102-altgr) compose:paus = +compose(paus) compose:prsc = +compose(prsc) compose:sclk = +compose(sclk) srvrkeys:none = +srvr_ctrl(no_srvr_keys) eurosign:e = +eurosign(e) eurosign:2 = +eurosign(2) eurosign:4 = +eurosign(4) eurosign:5 = +eurosign(5) rupeesign:4 = +rupeesign(4) keypad:oss = +keypad(oss) keypad:legacy = +keypad(legacy) keypad:legacy_wang = +keypad(legacy_wang) keypad:oss_wang = +keypad(oss_wang) keypad:future = +keypad(future) keypad:future_wang = +keypad(future_wang) keypad:hex = +keypad(ops)+keypad(hex) keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm) nbsp:none = +nbsp(none) nbsp:level2 = +nbsp(level2) nbsp:level3 = +nbsp(level3) nbsp:level3s = +nbsp(level3s) nbsp:level3n = +nbsp(level3n) nbsp:level4 = +nbsp(level4) nbsp:level4n = +nbsp(level4n) nbsp:level4nl = +nbsp(level4nl) japan:nicola_f_bs = +jp(nicola_f_bs) japan:hztg_escape = +jp(hztg_escape) korean:ralt_hangul = +kr(ralt_hangul) korean:rctrl_hangul = +kr(rctrl_hangul) korean:ralt_hanja = +kr(ralt_hanja) korean:rctrl_hanja = +kr(rctrl_hanja) kpdl:dot = +kpdl(dot) kpdl:comma = +kpdl(comma) kpdl:dotoss = +kpdl(dotoss) kpdl:dotoss_latin9 = +kpdl(dotoss_latin9) kpdl:commaoss = +kpdl(commaoss) kpdl:momayyezoss = +kpdl(momayyezoss) kpdl:kposs = +kpdl(kposs) kpdl:semi = +kpdl(semi) shift:breaks_caps = +shift(breaks_caps) esperanto:qwerty = +epo(qwerty) esperanto:dvorak = +epo(dvorak) esperanto:colemak = +epo(colemak) terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp) keypad:pointerkeys = +keypad(pointerkeys) apple:alupckeys = +macintosh_vndr/apple(alupckeys) shift:both_capslock = +shift(both_capslock) shift:lshift_both_capslock = +shift(lshift_both_capslock) shift:rshift_both_capslock = +shift(rshift_both_capslock) shift:both_capslock_cancel = +shift(both_capslock_cancel) shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel) shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel) shift:both_shiftlock = +shift(both_shiftlock) shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock) shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock) solaris:sun_compat = +sun_vndr/solaris(sun_compat) lv3:caps_switch = +level3(caps_switch) lv3:bksl_switch = +level3(bksl_switch) lv3:lsgt_switch = +level3(lsgt_switch) lv3:caps_switch_latch = +level3(caps_switch_latch) lv3:bksl_switch_latch = +level3(bksl_switch_latch) lv3:lsgt_switch_latch = +level3(lsgt_switch_latch) lv5:lsgt_switch = +level5(lsgt_switch) lv5:ralt_switch = +level5(ralt_switch) lv5:lsgt_switch_lock = +level5(lsgt_switch_lock) lv5:ralt_switch_lock = +level5(ralt_switch_lock) lv5:lwin_switch_lock = +level5(lwin_switch_lock) lv5:rwin_switch_lock = +level5(rwin_switch_lock) lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel) lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel) lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel) lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel) parens:swap_brackets = +parens(swap_brackets) ! option = compat grp_led:num = +lednum(group_lock) grp_led:caps = +ledcaps(group_lock) grp_led:scroll = +ledscroll(group_lock) japan:kana_lock = +japan(kana_lock) caps:shiftlock = +ledcaps(shift_lock) grab:break_actions = +xfree86(grab_break) ! option = types caps:internal = +caps(internal) caps:internal_nocancel = +caps(internal_nocancel) caps:shift = +caps(shift) caps:shift_nocancel = +caps(shift_nocancel) numpad:pc = +numpad(pc) numpad:mac = +numpad(mac) numpad:microsoft = +numpad(microsoft) numpad:shift3 = +numpad(shift3) PK(f[L}Nrules/evdev.lstnu[! model pc101 Generic 101-key PC pc102 Generic 102-key PC (intl.) pc104 Generic 104-key PC pc105 Generic 105-key PC (intl.) dell101 Dell 101-key PC latitude Dell Latitude laptop dellm65 Dell Precision M65 laptop everex Everex STEPnote flexpro Keytronic FlexPro microsoft Microsoft Natural omnikey101 Northgate OmniKey 101 winbook Winbook Model XP5 pc98 PC-98 a4techKB21 A4Tech KB-21 a4techKBS8 A4Tech KBS-8 a4_rfkb23 A4Tech Wireless Desktop RFKB-23 airkey Acer AirKey V azonaRF2300 Azona RF2300 wireless Internet scorpius Advance Scorpius KI brother Brother Internet btc5113rf BTC 5113RF Multimedia btc5126t BTC 5126T btc6301urf BTC 6301URF btc9000 BTC 9000 btc9000a BTC 9000A btc9001ah BTC 9001AH btc5090 BTC 5090 btc9019u BTC 9019U btc9116u BTC 9116U Mini Wireless Internet and Gaming cherryblue Cherry Blue Line CyBo@rd cherryblueb Cherry CyMotion Master XPress cherrybluea Cherry Blue Line CyBo@rd (alt.) cherrycyboard Cherry CyBo@rd USB-Hub cherrycmexpert Cherry CyMotion Expert cherrybunlim Cherry B.UNLIMITED chicony Chicony Internet chicony0108 Chicony KU-0108 chicony0420 Chicony KU-0420 chicony9885 Chicony KB-9885 compaqeak8 Compaq Easy Access compaqik7 Compaq Internet (7 keys) compaqik13 Compaq Internet (13 keys) compaqik18 Compaq Internet (18 keys) cymotionlinux Cherry CyMotion Master Linux armada Compaq Armada laptop presario Compaq Presario laptop ipaq Compaq iPaq dell Dell dellsk8125 Dell SK-8125 dellsk8135 Dell SK-8135 dellusbmm Dell USB Multimedia inspiron Dell Inspiron 6000/8000 laptop precision_m Dell Precision M laptop dexxa Dexxa Wireless Desktop diamond Diamond 9801/9802 dtk2000 DTK2000 ennyah_dkb1008 Ennyah DKB-1008 fscaa1667g Fujitsu-Siemens Amilo laptop genius Genius Comfy KB-16M/Multimedia KWD-910 geniuscomfy Genius Comfy KB-12e geniuscomfy2 Genius Comfy KB-21e-Scroll geniuskb19e Genius KB-19e NB geniuskkb2050hs Genius KKB-2050HS gyration Gyration htcdream HTC Dream kinesis Kinesis logitech_base Logitech logitech_g15 Logitech G15 extra keys via G15daemon hpi6 Hewlett-Packard Internet hp250x Hewlett-Packard NEC SK-2500 Multimedia hpxe3gc Hewlett-Packard Omnibook XE3 GC hpxe3gf Hewlett-Packard Omnibook XE3 GF hpxt1000 Hewlett-Packard Omnibook XT1000 hpdv5 Hewlett-Packard Pavilion dv5 hpzt11xx Hewlett-Packard Pavilion ZT1100 hp500fa Hewlett-Packard Omnibook 500 FA hp5xx Hewlett-Packard Omnibook 500 hpnx9020 Hewlett-Packard nx9020 hp6000 Hewlett-Packard Omnibook 6000/6100 honeywell_euroboard Honeywell Euroboard hpmini110 Hewlett-Packard Mini 110 laptop rapidaccess IBM Rapid Access rapidaccess2 IBM Rapid Access II thinkpad IBM ThinkPad 560Z/600/600E/A22E thinkpad60 IBM ThinkPad R60/T60/R61/T61 thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t ibm_spacesaver IBM Space Saver logiaccess Logitech Access logiclx300 Logitech Cordless Desktop LX-300 logii350 Logitech Internet 350 logimel Logitech Internet 350 logicd Logitech Cordless Desktop logicd_it Logitech Cordless Desktop iTouch logicd_nav Logitech Cordless Desktop Navigator logicd_opt Logitech Cordless Desktop Optical logicda Logitech Cordless Desktop (alt.) logicdpa2 Logitech Cordless Desktop Pro (2nd alt.) logicfn Logitech Cordless Freedom/Desktop Navigator logicdn Logitech Cordless Desktop Navigator logiitc Logitech iTouch Cordless Y-RB6 logiik Logitech Internet itouch Logitech iTouch logicink Logitech Internet Navigator logiex110 Logitech Cordless Desktop EX110 logiinkse Logitech iTouch Internet Navigator SE logiinkseusb Logitech iTouch Internet Navigator SE USB logiultrax Logitech Ultra-X logiultraxc Logitech Ultra-X Cordless Media Desktop logidinovo Logitech diNovo logidinovoedge Logitech diNovo Edge mx1998 Memorex MX1998 mx2500 Memorex MX2500 EZ-Access mx2750 Memorex MX2750 microsoft4000 Microsoft Natural Ergonomic 4000 microsoft7000 Microsoft Natural Wireless Ergonomic 7000 microsoftinet Microsoft Internet microsoftpro Microsoft Natural Pro/Internet Pro microsoftprousb Microsoft Natural Pro USB/Internet Pro microsoftprooem Microsoft Natural Pro OEM vsonku306 ViewSonic KU-306 Internet microsoftprose Microsoft Internet Pro (Swedish) microsoftoffice Microsoft Office Keyboard microsoftmult Microsoft Wireless Multimedia 1.0A microsoftelite Microsoft Natural Elite microsoftccurve2k Microsoft Comfort Curve 2000 oretec Ortek Multimedia/Internet MCK-800 propeller Propeller Voyager KTEZ-1000 qtronix QTronix Scorpius 98N+ samsung4500 Samsung SDM 4500P samsung4510 Samsung SDM 4510P sanwaskbkg3 Sanwa Supply SKB-KG3 sk1300 NEC SK-1300 sk2500 NEC SK-2500 sk6200 NEC SK-6200 sk7100 NEC SK-7100 sp_inet Super Power Multimedia sven SVEN Ergonomic 2500 sven303 SVEN Slim 303 symplon Symplon PaceBook tablet toshiba_s3000 Toshiba Satellite S3000 trust Trust Wireless Classic trustda Trust Direct Access trust_slimline Trust Slimline tm2020 TypeMatrix EZ-Reach 2020 tm2030PS2 TypeMatrix EZ-Reach 2030 PS2 tm2030USB TypeMatrix EZ-Reach 2030 USB tm2030USB-102 TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) tm2030USB-106 TypeMatrix EZ-Reach 2030 USB (106:JP mode) yahoo Yahoo! Internet macbook78 MacBook/MacBook Pro macbook79 MacBook/MacBook Pro (intl.) macintosh Macintosh macintosh_old Macintosh Old macintosh_hhk Happy Hacking for Mac acer_c300 Acer C300 acer_ferrari4k Acer Ferrari 4000 acer_laptop Acer laptop asus_laptop Asus laptop apple Apple apple_laptop Apple laptop applealu_ansi Apple Aluminium (ANSI) applealu_iso Apple Aluminium (ISO) applealu_jis Apple Aluminium (JIS) silvercrest Silvercrest Multimedia Wireless emachines eMachines m6800 laptop benqx BenQ X-Touch benqx730 BenQ X-Touch 730 benqx800 BenQ X-Touch 800 hhk Happy Hacking classmate Classmate PC olpc OLPC sun_type7_usb Sun Type 7 USB sun_type7_euro_usb Sun Type 7 USB (European) sun_type7_unix_usb Sun Type 7 USB (Unix) sun_type7_jp_usb Sun Type 7 USB (Japanese)/Japanese 106-key sun_type6_usb Sun Type 6/7 USB sun_type6_euro_usb Sun Type 6/7 USB (European) sun_type6_unix_usb Sun Type 6 USB (Unix) sun_type6_jp_usb Sun Type 6 USB (Japanese) sun_type6_jp Sun Type 6 (Japanese) targa_v811 Targa Visionary 811 unitekkb1925 Unitek KB-1925 compalfl90 FL90 creativedw7000 Creative Desktop Wireless 7000 htcdream Htc Dream phone teck227 Truly Ergonomic 227 teck229 Truly Ergonomic 229 apex300 SteelSeries Apex 300 (Apex RAW) chromebook Chromebook teck227 Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) teck229 Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) ! layout us English (US) af Afghani ara Arabic al Albanian am Armenian at German (Austria) au English (Australian) az Azerbaijani by Belarusian be Belgian bd Bangla in Indian ba Bosnian br Portuguese (Brazil) bg Bulgarian dz Berber (Algeria, Latin) ma Arabic (Morocco) cm English (Cameroon) mm Burmese ca French (Canada) cd French (Democratic Republic of the Congo) cn Chinese hr Croatian cz Czech dk Danish nl Dutch bt Dzongkha ee Estonian ir Persian iq Iraqi fo Faroese fi Finnish fr French gh English (Ghana) gn French (Guinea) ge Georgian de German gr Greek hu Hungarian is Icelandic il Hebrew it Italian jp Japanese kg Kyrgyz kh Khmer (Cambodia) kz Kazakh la Lao latam Spanish (Latin American) lt Lithuanian lv Latvian mao Maori me Montenegrin mk Macedonian mt Maltese mn Mongolian no Norwegian pl Polish pt Portuguese ro Romanian ru Russian rs Serbian si Slovenian sk Slovak es Spanish se Swedish ch German (Switzerland) sy Arabic (Syria) tj Tajik lk Sinhala (phonetic) th Thai tr Turkish tw Taiwanese ua Ukrainian gb English (UK) uz Uzbek vn Vietnamese kr Korean nec_vndr/jp Japanese (PC-98) ie Irish pk Urdu (Pakistan) mv Dhivehi za English (South Africa) epo Esperanto np Nepali ng English (Nigeria) et Amharic sn Wolof brai Braille tm Turkmen ml Bambara tz Swahili (Tanzania) tg French (Togo) ke Swahili (Kenya) bw Tswana ph Filipino md Moldavian id Indonesian (Arab Melayu, phonetic) my Malay (Jawi, Arabic Keyboard) ! variant chr us: Cherokee euro us: English (US, euro on 5) intl us: English (US, intl., with dead keys) alt-intl us: English (US, alt. intl.) colemak us: English (Colemak) dvorak us: English (Dvorak) dvorak-intl us: English (Dvorak, intl., with dead keys) dvorak-alt-intl us: English (Dvorak, alt. intl.) dvorak-l us: English (Dvorak, left-handed) dvorak-r us: English (Dvorak, right-handed) dvorak-classic us: English (classic Dvorak) dvp us: English (programmer Dvorak) rus us: Russian (US, phonetic) mac us: English (Macintosh) altgr-intl us: English (intl., with AltGr dead keys) olpc2 us: English (the divide/multiply keys toggle the layout) hbs us: Serbo-Croatian (US) norman us: English (Norman) workman us: English (Workman) workman-intl us: English (Workman, intl., with dead keys) ps af: Pashto uz af: Uzbek (Afghanistan) olpc-ps af: Pashto (Afghanistan, OLPC) fa-olpc af: Persian (Afghanistan, Dari OLPC) uz-olpc af: Uzbek (Afghanistan, OLPC) azerty ara: Arabic (AZERTY) azerty_digits ara: Arabic (AZERTY/digits) digits ara: Arabic (digits) qwerty ara: Arabic (QWERTY) qwerty_digits ara: Arabic (qwerty/digits) buckwalter ara: Arabic (Buckwalter) olpc ara: Arabic (OLPC) mac ara: Arabic (Macintosh) plisi al: Albanian (Plisi) phonetic am: Armenian (phonetic) phonetic-alt am: Armenian (alt. phonetic) eastern am: Armenian (eastern) western am: Armenian (western) eastern-alt am: Armenian (alt. eastern) nodeadkeys at: German (Austria, no dead keys) sundeadkeys at: German (Austria, with Sun dead keys) mac at: German (Austria, Macintosh) cyrillic az: Azerbaijani (Cyrillic) legacy by: Belarusian (legacy) latin by: Belarusian (Latin) oss be: Belgian (alt.) oss_latin9 be: Belgian (alt., Latin-9 only) oss_sundeadkeys be: Belgian (alt., with Sun dead keys) iso-alternate be: Belgian (alt. ISO) nodeadkeys be: Belgian (no dead keys) sundeadkeys be: Belgian (with Sun dead keys) wang be: Belgian (Wang 724 AZERTY) probhat bd: Bangla (Probhat) ben in: Bangla (India) ben_probhat in: Bangla (India, Probhat) ben_baishakhi in: Bangla (India, Baishakhi) ben_bornona in: Bangla (India, Bornona) ben_gitanjali in: Bangla (India, Uni Gitanjali) ben_inscript in: Bangla (India, Baishakhi Inscript) eeyek in: Manipuri (Eeyek) guj in: Gujarati guru in: Punjabi (Gurmukhi) jhelum in: Punjabi (Gurmukhi Jhelum) kan in: Kannada kan-kagapa in: Kannada (KaGaPa phonetic) mal in: Malayalam mal_lalitha in: Malayalam (Lalitha) mal_enhanced in: Malayalam (enhanced Inscript, with rupee) ori in: Oriya olck in: Ol Chiki tam_tamilnet in: Tamil (TamilNet '99) tam_tamilnet_with_tam_nums in: Tamil (TamilNet '99 with Tamil numerals) tam_tamilnet_TAB in: Tamil (TamilNet '99, TAB encoding) tam_tamilnet_TSCII in: Tamil (TamilNet '99, TSCII encoding) tam in: Tamil (Inscript) tel in: Telugu tel-kagapa in: Telugu (KaGaPa phonetic) tel-sarala in: Telugu (Sarala) tel-kagapa in: Telugu (KaGaPa phonetic) urd-phonetic in: Urdu (phonetic) urd-phonetic3 in: Urdu (alt. phonetic) urd-winkeys in: Urdu (Win keys) bolnagri in: Hindi (Bolnagri) hin-wx in: Hindi (Wx) hin-kagapa in: Hindi (KaGaPa phonetic) san-kagapa in: Sanskrit (KaGaPa phonetic) mar-kagapa in: Marathi (KaGaPa phonetic) eng in: English (India, with rupee) alternatequotes ba: Bosnian (with guillemets) unicode ba: Bosnian (with Bosnian digraphs) unicodeus ba: Bosnian (US, with Bosnian digraphs) us ba: Bosnian (US, with Bosnian letters) nodeadkeys br: Portuguese (Brazil, no dead keys) dvorak br: Portuguese (Brazil, Dvorak) nativo br: Portuguese (Brazil, Nativo) nativo-us br: Portuguese (Brazil, Nativo for US keyboards) nativo-epo br: Esperanto (Brazil, Nativo) thinkpad br: Portuguese (Brazil, IBM/Lenovo ThinkPad) phonetic bg: Bulgarian (traditional phonetic) bas_phonetic bg: Bulgarian (new phonetic) ber dz: Berber (Algeria, Tifinagh) ar dz: Arabic (Algeria) french ma: French (Morocco) tifinagh ma: Berber (Morocco, Tifinagh) tifinagh-alt ma: Berber (Morocco, Tifinagh alt.) tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alt. phonetic) tifinagh-extended ma: Berber (Morocco, Tifinagh extended) tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic) tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic) french cm: French (Cameroon) qwerty cm: Cameroon Multilingual (QWERTY) azerty cm: Cameroon Multilingual (AZERTY) dvorak cm: Cameroon Multilingual (Dvorak) mmuock cm: Mmuock zawgyi mm: Burmese Zawgyi fr-dvorak ca: French (Canada, Dvorak) fr-legacy ca: French (Canada, legacy) multix ca: Canadian Multilingual multi ca: Canadian Multilingual (1st part) multi-2gr ca: Canadian Multilingual (2nd part) ike ca: Inuktitut eng ca: English (Canada) mon_trad cn: Mongolian (Bichig) mon_trad_todo cn: Mongolian Todo mon_trad_xibe cn: Mongolian Xibe mon_trad_manchu cn: Mongolian Manchu mon_trad_galik cn: Mongolian Galik mon_todo_galik cn: Mongolian Todo Galik mon_manchu_galik cn: Mongolian Manchu Galik tib cn: Tibetan tib_asciinum cn: Tibetan (with ASCII numerals) ug cn: Uyghur altgr-pinyin cn: Hanyu Pinyin (altgr) alternatequotes hr: Croatian (with guillemets) unicode hr: Croatian (with Croatian digraphs) unicodeus hr: Croatian (US, with Croatian digraphs) us hr: Croatian (US, with Croatian letters) bksl cz: Czech (with <\|> key) qwerty cz: Czech (QWERTY) qwerty_bksl cz: Czech (QWERTY, extended backslash) qwerty-mac cz: Czech (QWERTY, Macintosh) ucw cz: Czech (UCW, only accented letters) dvorak-ucw cz: Czech (US, Dvorak, UCW support) rus cz: Russian (Czech, phonetic) nodeadkeys dk: Danish (no dead keys) winkeys dk: Danish (Win keys) mac dk: Danish (Macintosh) mac_nodeadkeys dk: Danish (Macintosh, no dead keys) dvorak dk: Danish (Dvorak) sundeadkeys nl: Dutch (with Sun dead keys) mac nl: Dutch (Macintosh) std nl: Dutch (standard) nodeadkeys ee: Estonian (no dead keys) dvorak ee: Estonian (Dvorak) us ee: Estonian (US, with Estonian letters) pes_keypad ir: Persian (with Persian keypad) ku ir: Kurdish (Iran, Latin Q) ku_f ir: Kurdish (Iran, F) ku_alt ir: Kurdish (Iran, Latin Alt-Q) ku_ara ir: Kurdish (Iran, Arabic-Latin) ku iq: Kurdish (Iraq, Latin Q) ku_f iq: Kurdish (Iraq, F) ku_alt iq: Kurdish (Iraq, Latin Alt-Q) ku_ara iq: Kurdish (Iraq, Arabic-Latin) nodeadkeys fo: Faroese (no dead keys) classic fi: Finnish (classic) nodeadkeys fi: Finnish (classic, no dead keys) winkeys fi: Finnish (Winkeys) smi fi: Northern Saami (Finland) mac fi: Finnish (Macintosh) nodeadkeys fr: French (no dead keys) sundeadkeys fr: French (with Sun dead keys) oss fr: French (alt.) oss_latin9 fr: French (alt., Latin-9 only) oss_nodeadkeys fr: French (alt., no dead keys) oss_sundeadkeys fr: French (alt., with Sun dead keys) latin9 fr: French (legacy, alt.) latin9_nodeadkeys fr: French (legacy, alt., no dead keys) latin9_sundeadkeys fr: French (legacy, alt., with Sun dead keys) bepo fr: French (Bepo, ergonomic, Dvorak way) bepo_latin9 fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only) bepo_afnor fr: French (Bepo, ergonomic, Dvorak way, AFNOR) dvorak fr: French (Dvorak) mac fr: French (Macintosh) azerty fr: French (AZERTY) afnor fr: French (AFNOR standardized AZERTY) bre fr: French (Breton) oci fr: Occitan geo fr: Georgian (France, AZERTY Tskapo) us fr: French (US, with French letters) generic gh: English (Ghana, multilingual) akan gh: Akan ewe gh: Ewe fula gh: Fula ga gh: Ga hausa gh: Hausa (Ghana) avn gh: Avatime gillbt gh: English (Ghana, GILLBT) ergonomic ge: Georgian (ergonomic) mess ge: Georgian (MESS) ru ge: Russian (Georgia) os ge: Ossetian (Georgia) deadacute de: German (dead acute) deadgraveacute de: German (dead grave acute) nodeadkeys de: German (no dead keys) T3 de: German (T3) ro de: Romanian (Germany) ro_nodeadkeys de: Romanian (Germany, no dead keys) dvorak de: German (Dvorak) sundeadkeys de: German (with Sun dead keys) neo de: German (Neo 2) mac de: German (Macintosh) mac_nodeadkeys de: German (Macintosh, no dead keys) dsb de: Lower Sorbian dsb_qwertz de: Lower Sorbian (QWERTZ) qwerty de: German (QWERTY) tr de: Turkish (Germany) ru de: Russian (Germany, phonetic) deadtilde de: German (dead tilde) simple gr: Greek (simple) extended gr: Greek (extended) nodeadkeys gr: Greek (no dead keys) polytonic gr: Greek (polytonic) standard hu: Hungarian (standard) nodeadkeys hu: Hungarian (no dead keys) qwerty hu: Hungarian (QWERTY) 101_qwertz_comma_dead hu: Hungarian (101/QWERTZ/comma/dead keys) 101_qwertz_comma_nodead hu: Hungarian (101/QWERTZ/comma/no dead keys) 101_qwertz_dot_dead hu: Hungarian (101/QWERTZ/dot/dead keys) 101_qwertz_dot_nodead hu: Hungarian (101/QWERTZ/dot/no dead keys) 101_qwerty_comma_dead hu: Hungarian (101/QWERTY/comma/dead keys) 101_qwerty_comma_nodead hu: Hungarian (101/QWERTY/comma/no dead keys) 101_qwerty_dot_dead hu: Hungarian (101/QWERTY/dot/dead keys) 101_qwerty_dot_nodead hu: Hungarian (101/QWERTY/dot/no dead keys) 102_qwertz_comma_dead hu: Hungarian (102/QWERTZ/comma/dead keys) 102_qwertz_comma_nodead hu: Hungarian (102/QWERTZ/comma/no dead keys) 102_qwertz_dot_dead hu: Hungarian (102/QWERTZ/dot/dead keys) 102_qwertz_dot_nodead hu: Hungarian (102/QWERTZ/dot/no dead keys) 102_qwerty_comma_dead hu: Hungarian (102/QWERTY/comma/dead keys) 102_qwerty_comma_nodead hu: Hungarian (102/QWERTY/comma/no dead keys) 102_qwerty_dot_dead hu: Hungarian (102/QWERTY/dot/dead keys) 102_qwerty_dot_nodead hu: Hungarian (102/QWERTY/dot/no dead keys) Sundeadkeys is: Icelandic (with Sun dead keys) nodeadkeys is: Icelandic (no dead keys) mac_legacy is: Icelandic (Macintosh, legacy) mac is: Icelandic (Macintosh) dvorak is: Icelandic (Dvorak) lyx il: Hebrew (lyx) phonetic il: Hebrew (phonetic) biblical il: Hebrew (Biblical, Tiro) nodeadkeys it: Italian (no dead keys) winkeys it: Italian (Winkeys) mac it: Italian (Macintosh) us it: Italian (US, with Italian letters) geo it: Georgian (Italy) ibm it: Italian (IBM 142) intl it: Italian (intl., with dead keys) scn it: Sicilian fur it: Friulian (Italy) kana jp: Japanese (Kana) kana86 jp: Japanese (Kana 86) OADG109A jp: Japanese (OADG 109A) mac jp: Japanese (Macintosh) dvorak jp: Japanese (Dvorak) phonetic kg: Kyrgyz (phonetic) ruskaz kz: Russian (Kazakhstan, with Kazakh) kazrus kz: Kazakh (with Russian) ext kz: Kazakh (extended) latin kz: Kazakh (Latin) stea la: Lao (STEA proposed standard layout) nodeadkeys latam: Spanish (Latin American, no dead keys) deadtilde latam: Spanish (Latin American, dead tilde) sundeadkeys latam: Spanish (Latin American, with Sun dead keys) dvorak latam: Spanish (Latin American, Dvorak) colemak latam: Spanish (Latin American, Colemak) colemak-gaming latam: Spanish (Latin American, Colemak for gaming) std lt: Lithuanian (standard) us lt: Lithuanian (US, with Lithuanian letters) ibm lt: Lithuanian (IBM LST 1205-92) lekp lt: Lithuanian (LEKP) lekpa lt: Lithuanian (LEKPa) apostrophe lv: Latvian (apostrophe) tilde lv: Latvian (tilde) fkey lv: Latvian (F) modern lv: Latvian (modern) ergonomic lv: Latvian (ergonomic, ŪGJRMV) adapted lv: Latvian (adapted) cyrillic me: Montenegrin (Cyrillic) cyrillicyz me: Montenegrin (Cyrillic, ZE and ZHE swapped) latinunicode me: Montenegrin (Latin, Unicode) latinyz me: Montenegrin (Latin, QWERTY) latinunicodeyz me: Montenegrin (Latin, Unicode, QWERTY) cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets) latinalternatequotes me: Montenegrin (Latin with guillemets) nodeadkeys mk: Macedonian (no dead keys) us mt: Maltese (with US layout) alt-us mt: Maltese (US layout with AltGr overrides) alt-gb mt: Maltese (UK layout with AltGr overrides) nodeadkeys no: Norwegian (no dead keys) winkeys no: Norwegian (Win keys) dvorak no: Norwegian (Dvorak) smi no: Northern Saami (Norway) smi_nodeadkeys no: Northern Saami (Norway, no dead keys) mac no: Norwegian (Macintosh) mac_nodeadkeys no: Norwegian (Macintosh, no dead keys) colemak no: Norwegian (Colemak) legacy pl: Polish (legacy) qwertz pl: Polish (QWERTZ) dvorak pl: Polish (Dvorak) dvorak_quotes pl: Polish (Dvorak, with Polish quotes on quotemark key) dvorak_altquotes pl: Polish (Dvorak, with Polish quotes on key 1) csb pl: Kashubian szl pl: Silesian ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak) dvp pl: Polish (programmer Dvorak) nodeadkeys pt: Portuguese (no dead keys) sundeadkeys pt: Portuguese (with Sun dead keys) mac pt: Portuguese (Macintosh) mac_nodeadkeys pt: Portuguese (Macintosh, no dead keys) mac_sundeadkeys pt: Portuguese (Macintosh, with Sun dead keys) nativo pt: Portuguese (Nativo) nativo-us pt: Portuguese (Nativo for US keyboards) nativo-epo pt: Esperanto (Portugal, Nativo) cedilla ro: Romanian (cedilla) std ro: Romanian (standard) std_cedilla ro: Romanian (standard cedilla) winkeys ro: Romanian (Win keys) phonetic ru: Russian (phonetic) phonetic_winkeys ru: Russian (phonetic, with Win keys) phonetic_yazherty ru: Russian (phonetic yazherty) typewriter ru: Russian (typewriter) legacy ru: Russian (legacy) typewriter-legacy ru: Russian (typewriter, legacy) tt ru: Tatar os_legacy ru: Ossetian (legacy) os_winkeys ru: Ossetian (Win keys) cv ru: Chuvash cv_latin ru: Chuvash (Latin) udm ru: Udmurt kom ru: Komi sah ru: Yakut xal ru: Kalmyk dos ru: Russian (DOS) mac ru: Russian (Macintosh) srp ru: Serbian (Russia) bak ru: Bashkirian chm ru: Mari phonetic_azerty ru: Russian (phonetic, AZERTY) phonetic_dvorak ru: Russian (phonetic, Dvorak) phonetic_fr ru: Russian (phonetic, French) yz rs: Serbian (Cyrillic, ZE and ZHE swapped) latin rs: Serbian (Latin) latinunicode rs: Serbian (Latin, Unicode) latinyz rs: Serbian (Latin, QWERTY) latinunicodeyz rs: Serbian (Latin, Unicode, QWERTY) alternatequotes rs: Serbian (Cyrillic with guillemets) latinalternatequotes rs: Serbian (Latin with guillemets) rue rs: Pannonian Rusyn alternatequotes si: Slovenian (with guillemets) us si: Slovenian (US, with Slovenian letters) bksl sk: Slovak (extended backslash) qwerty sk: Slovak (QWERTY) qwerty_bksl sk: Slovak (QWERTY, extended backslash) nodeadkeys es: Spanish (no dead keys) winkeys es: Spanish (Win keys) deadtilde es: Spanish (dead tilde) sundeadkeys es: Spanish (with Sun dead keys) dvorak es: Spanish (Dvorak) ast es: Asturian (Spain, with bottom-dot H and bottom-dot L) cat es: Catalan (Spain, with middle-dot L) mac es: Spanish (Macintosh) nodeadkeys se: Swedish (no dead keys) dvorak se: Swedish (Dvorak) rus se: Russian (Sweden, phonetic) rus_nodeadkeys se: Russian (Sweden, phonetic, no dead keys) smi se: Northern Saami (Sweden) mac se: Swedish (Macintosh) svdvorak se: Swedish (Svdvorak) us_dvorak se: Swedish (based on US Intl. Dvorak) us se: Swedish (US, with Swedish letters) swl se: Swedish Sign Language legacy ch: German (Switzerland, legacy) de_nodeadkeys ch: German (Switzerland, no dead keys) de_sundeadkeys ch: German (Switzerland, with Sun dead keys) fr ch: French (Switzerland) fr_nodeadkeys ch: French (Switzerland, no dead keys) fr_sundeadkeys ch: French (Switzerland, with Sun dead keys) fr_mac ch: French (Switzerland, Macintosh) de_mac ch: German (Switzerland, Macintosh) syc sy: Syriac syc_phonetic sy: Syriac (phonetic) ku sy: Kurdish (Syria, Latin Q) ku_f sy: Kurdish (Syria, F) ku_alt sy: Kurdish (Syria, Latin Alt-Q) legacy tj: Tajik (legacy) tam_unicode lk: Tamil (Sri Lanka, TamilNet '99) tam_TAB lk: Tamil (Sri Lanka, TamilNet '99, TAB encoding) us lk: Sinhala (US, with Sinhala letters) tis th: Thai (TIS-820.2538) pat th: Thai (Pattachote) f tr: Turkish (F) alt tr: Turkish (Alt-Q) sundeadkeys tr: Turkish (with Sun dead keys) ku tr: Kurdish (Turkey, Latin Q) ku_f tr: Kurdish (Turkey, F) ku_alt tr: Kurdish (Turkey, Latin Alt-Q) intl tr: Turkish (intl., with dead keys) crh tr: Crimean Tatar (Turkish Q) crh_f tr: Crimean Tatar (Turkish F) crh_alt tr: Crimean Tatar (Turkish Alt-Q) indigenous tw: Taiwanese (indigenous) saisiyat tw: Saisiyat (Taiwan) phonetic ua: Ukrainian (phonetic) typewriter ua: Ukrainian (typewriter) winkeys ua: Ukrainian (Win keys) legacy ua: Ukrainian (legacy) rstu ua: Ukrainian (standard RSTU) rstu_ru ua: Russian (Ukraine, standard RSTU) homophonic ua: Ukrainian (homophonic) extd gb: English (UK, extended, with Win keys) intl gb: English (UK, intl., with dead keys) dvorak gb: English (UK, Dvorak) dvorakukp gb: English (UK, Dvorak, with UK punctuation) mac gb: English (UK, Macintosh) mac_intl gb: English (UK, intl., Macintosh) colemak gb: English (UK, Colemak) pl gb: Polish (British keyboard) latin uz: Uzbek (Latin) us vn: Vietnamese (US, with Vietnamese letters) fr vn: Vietnamese (French, with Vietnamese letters) kr104 kr: Korean (101/104 key compatible) CloGaelach ie: CloGaelach UnicodeExpert ie: Irish (UnicodeExpert) ogam ie: Ogham ogam_is434 ie: Ogham (IS434) urd-crulp pk: Urdu (Pakistan, CRULP) urd-nla pk: Urdu (Pakistan, NLA) ara pk: Arabic (Pakistan) snd pk: Sindhi legacy epo: Esperanto (displaced semicolon and quote, obsolete) igbo ng: Igbo yoruba ng: Yoruba hausa ng: Hausa (Nigeria) left_hand brai: Braille (left-handed) left_hand_invert brai: Braille (left-handed inverted thumb) right_hand brai: Braille (right-handed) right_hand_invert brai: Braille (right-handed inverted thumb) alt tm: Turkmen (Alt-Q) fr-oss ml: French (Mali, alt.) us-mac ml: English (Mali, US, Macintosh) us-intl ml: English (Mali, US, intl.) kik ke: Kikuyu qwerty-bay ph: Filipino (QWERTY, Baybayin) capewell-dvorak ph: Filipino (Capewell-Dvorak, Latin) capewell-dvorak-bay ph: Filipino (Capewell-Dvorak, Baybayin) capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006, Latin) capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006, Baybayin) colemak ph: Filipino (Colemak, Latin) colemak-bay ph: Filipino (Colemak, Baybayin) dvorak ph: Filipino (Dvorak, Latin) dvorak-bay ph: Filipino (Dvorak, Baybayin) gag md: Moldavian (Gagauz) phoneticx id: Indonesian (Arab Melayu, ext. phonetic) phonetic my: Malay (Jawi, phonetic) ! option grp Switching to another layout grp:switch Right Alt (while pressed) grp:lswitch Left Alt (while pressed) grp:lwin_switch Left Win (while pressed) grp:rwin_switch Right Win (while pressed) grp:win_switch Any Win (while pressed) grp:menu_switch Menu (while pressed), Shift+Menu for Menu grp:caps_switch Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action grp:rctrl_switch Right Ctrl (while pressed) grp:toggle Right Alt grp:lalt_toggle Left Alt grp:caps_toggle Caps Lock grp:shift_caps_toggle Shift+Caps Lock grp:shift_caps_switch Caps Lock to first layout; Shift+Caps Lock to last layout grp:win_menu_switch Left Win to first layout; Right Win/Menu to last layout grp:lctrl_rctrl_switch Left Ctrl to first layout; Right Ctrl to last layout grp:alt_caps_toggle Alt+Caps Lock grp:shifts_toggle Both Shift together grp:alts_toggle Both Alt together grp:ctrls_toggle Both Ctrl together grp:ctrl_shift_toggle Ctrl+Shift grp:lctrl_lshift_toggle Left Ctrl+Left Shift grp:rctrl_rshift_toggle Right Ctrl+Right Shift grp:ctrl_alt_toggle Alt+Ctrl grp:alt_shift_toggle Alt+Shift grp:lalt_lshift_toggle Left Alt+Left Shift grp:alt_space_toggle Alt+Space grp:menu_toggle Menu grp:lwin_toggle Left Win grp:win_space_toggle Win+Space grp:rwin_toggle Right Win grp:lshift_toggle Left Shift grp:rshift_toggle Right Shift grp:lctrl_toggle Left Ctrl grp:rctrl_toggle Right Ctrl grp:sclk_toggle Scroll Lock grp:lctrl_lwin_rctrl_menu Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout grp:lctrl_lwin_toggle Left Ctrl+Left Win lv3 Key to choose the 3rd level lv3:switch Right Ctrl lv3:menu_switch Menu lv3:win_switch Any Win lv3:lwin_switch Left Win lv3:rwin_switch Right Win lv3:alt_switch Any Alt lv3:lalt_switch Left Alt lv3:ralt_switch Right Alt lv3:ralt_switch_multikey Right Alt; Shift+Right Alt as Compose lv3:ralt_alt Right Alt never chooses 3rd level lv3:enter_switch Enter on keypad lv3:caps_switch Caps Lock lv3:bksl_switch Backslash lv3:lsgt_switch <Less/Greater> lv3:caps_switch_latch Caps Lock; acts as onetime lock when pressed together with another 3rd-level chooser lv3:bksl_switch_latch Backslash; acts as onetime lock when pressed together with another 3rd level chooser lv3:lsgt_switch_latch <Less/Greater>; acts as onetime lock when pressed together with another 3rd level chooser ctrl Ctrl position ctrl:nocaps Caps Lock as Ctrl ctrl:lctrl_meta Left Ctrl as Meta ctrl:swapcaps Swap Ctrl and Caps Lock ctrl:swapcaps_hyper Caps Lock as Control, Control as Hyper ctrl:ac_ctrl At left of 'A' ctrl:aa_ctrl At bottom left ctrl:rctrl_ralt Right Ctrl as Right Alt ctrl:menu_rctrl Menu as Right Ctrl ctrl:swap_lalt_lctl Swap Left Alt with Left Ctrl ctrl:swap_lwin_lctl Swap Left Win with Left Ctrl ctrl:swap_rwin_rctl Swap Right Win with Right Ctrl ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Left Alt grp_led Use keyboard LED to show alternative layout grp_led:num Num Lock grp_led:caps Caps Lock grp_led:scroll Scroll Lock keypad Layout of numeric keypad keypad:legacy Legacy keypad:oss Unicode additions (arrows and math operators) keypad:future Unicode additions (arrows and math operators; math operators on default level) keypad:legacy_wang Legacy Wang 724 keypad:oss_wang Wang 724 keypad with Unicode additions (arrows and math operators) keypad:future_wang Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level) keypad:hex Hexadecimal keypad:atm ATM/phone-style kpdl Numeric keypad Delete behavior kpdl:dot Legacy key with dot kpdl:comma Legacy key with comma kpdl:dotoss Four-level key with dot kpdl:dotoss_latin9 Four-level key with dot, Latin-9 only kpdl:commaoss Four-level key with comma kpdl:momayyezoss Four-level key with momayyez kpdl:kposs Four-level key with abstract separators kpdl:semi Semicolon on third level caps Caps Lock behavior caps:internal Caps Lock uses internal capitalization; Shift "pauses" Caps Lock caps:internal_nocancel Caps Lock uses internal capitalization; Shift does not affect Caps Lock caps:shift Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock caps:shift_nocancel Caps Lock acts as Shift with locking; Shift does not affect Caps Lock caps:capslock Caps Lock toggles normal capitalization of alphabetic characters caps:shiftlock Caps Lock toggles ShiftLock (affects all keys) caps:swapescape Swap ESC and Caps Lock caps:escape Make Caps Lock an additional Esc caps:escape_shifted_capslock Make unmodified Caps Lock an additional Esc, but Shift + Caps Lock behaves like regular Caps Lock caps:backspace Make Caps Lock an additional Backspace caps:super Make Caps Lock an additional Super caps:hyper Make Caps Lock an additional Hyper caps:menu Make Caps Lock an additional Menu key caps:numlock Make Caps Lock an additional Num Lock caps:ctrl_modifier Caps Lock is also a Ctrl caps:none Caps Lock is disabled altwin Alt/Win key behavior altwin:menu Add the standard behavior to Menu key altwin:menu_win Menu is mapped to Win altwin:meta_alt Alt and Meta are on Alt altwin:alt_win Alt is mapped to Win and the usual Alt altwin:ctrl_win Ctrl is mapped to Win and the usual Ctrl keys altwin:ctrl_alt_win Ctrl is mapped to Alt; Alt is mapped to Win altwin:meta_win Meta is mapped to Win altwin:left_meta_win Meta is mapped to Left Win altwin:hyper_win Hyper is mapped to Win altwin:alt_super_win Alt is mapped to Right Win, Super to Menu altwin:swap_lalt_lwin Left Alt is swapped with Left Win altwin:swap_alt_win Alt is swapped with Win altwin:prtsc_rwin Win is mapped to PrtSc and the usual Win Compose key Position of Compose key compose:ralt Right Alt compose:lwin Left Win compose:lwin-altgr 3rd level of Left Win compose:rwin Right Win compose:rwin-altgr 3rd level of Right Win compose:menu Menu compose:menu-altgr 3rd level of Menu compose:lctrl Left Ctrl compose:lctrl-altgr 3rd level of Left Ctrl compose:rctrl Right Ctrl compose:rctrl-altgr 3rd level of Right Ctrl compose:caps Caps Lock compose:caps-altgr 3rd level of Caps Lock compose:102 <Less/Greater> compose:102-altgr 3rd level of <Less/Greater> compose:paus Pause compose:prsc PrtSc compose:sclk Scroll Lock compat Miscellaneous compatibility options numpad:pc Default numeric keypad keys numpad:mac Numeric keypad always enters digits (as in macOS) numpad:microsoft Num Lock on: digits; Shift for arrow keys. Num Lock off: arrow keys (as in Windows) numpad:shift3 Shift does not cancel Num Lock, chooses 3rd level instead srvrkeys:none Special keys (Ctrl+Alt+<key>) handled in a server apple:alupckeys Apple Aluminium: emulate PC keys (PrtSc, Scroll Lock, Pause, Num Lock) shift:breaks_caps Shift cancels Caps Lock misc:typo Enable extra typographic characters shift:both_capslock Both Shift together enable Caps Lock shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it shift:both_shiftlock Both Shift together enable Shift Lock keypad:pointerkeys Shift + Num Lock enables PointerKeys grab:break_actions Allow breaking grabs with keyboard actions (warning: security risk) grab:debug Allow grab and window tree logging currencysign Adding currency signs to certain keys eurosign:e Euro on E eurosign:2 Euro on 2 eurosign:4 Euro on 4 eurosign:5 Euro on 5 rupeesign:4 Rupee on 4 lv5 Key to choose 5th level lv5:lsgt_switch <Less/Greater> chooses 5th level lv5:ralt_switch Right Alt chooses 5th level lv5:lsgt_switch_lock <Less/Greater> chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:lsgt_switch_lock_cancel <Less/Greater> chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:lsgt_switch <Less/Greater> chooses 5th level lv5:ralt_switch Right Alt chooses 5th level lv5:lsgt_switch_lock <Less/Greater> chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser nbsp Using space key to input non-breaking space nbsp:none Usual space at any level nbsp:level2 Non-breaking space at the 2nd level nbsp:level3 Non-breaking space at the 3rd level nbsp:level3s Non-breaking space at the 3rd level, nothing at the 4th level nbsp:level3n Non-breaking space at the 3rd level, thin non-breaking space at the 4th level nbsp:level4 Non-breaking space at the 4th level nbsp:level4n Non-breaking space at the 4th level, thin non-breaking space at the 6th level nbsp:level4nl Non-breaking space at the 4th level, thin non-breaking space at the 6th level (via Ctrl+Shift) nbsp:zwnj2 Zero-width non-joiner at the 2nd level nbsp:zwnj2zwj3 Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level nbsp:zwnj2zwj3nb4 Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level nbsp:zwnj2nb3 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level nbsp:zwnj2nb3s Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level nbsp:zwnj2nb3zwj4 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level nbsp:zwnj2nb3nnb4 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level nbsp:zwnj3zwj4 Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level japan Japanese keyboard options japan:kana_lock Kana Lock key is locking japan:nicola_f_bs NICOLA-F style Backspace japan:hztg_escape Make Zenkaku Hankaku an additional Esc korean Korean Hangul/Hanja keys korean:ralt_hangul Make right Alt a Hangul key korean:rctrl_hangul Make right Ctrl a Hangul key korean:ralt_hanja Make right Alt a Hanja key korean:rctrl_hanja Make right Ctrl a Hanja key esperanto Adding Esperanto supersigned letters esperanto:qwerty To the corresponding key in a QWERTY layout esperanto:dvorak To the corresponding key in a Dvorak layout esperanto:colemak To the corresponding key in a Colemak layout solaris Maintain key compatibility with old Solaris keycodes solaris:sun_compat Sun Key compatibility terminate Key sequence to kill the X server terminate:ctrl_alt_bksp Ctrl+Alt+Backspace PK(f[͐7 rules/xfree98nu[// // Rules for resolving XKB components for use with XFree86 // Copyright 1996 by Joseph Moss // ! model = keycodes geometry pc98 = xfree98(pc98) nec(pc98) jp106 = xfree98(jp106) pc(jp106) ! model layout = symbols pc98 nec_vndr/jp = nec_vndr/jp(pc98) jp106 jp = jp ! model layout = compat types * * = complete complete ! option = symbols grp:switch = +group(switch) grp:toggle = +group(toggle) grp:shift_toggle = +group(shifts_toggle) grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) ctrl:nocaps = +ctrl(nocaps) ctrl:lctrl_meta = +ctrl(lctrl_meta) ctrl:swapcaps = +ctrl(swapcaps) ctrl:swapcaps_hyper = +ctrl(swapcaps_hyper) ctrl:ctrl_ac = +ctrl(ctrl_ac) ctrl:ctrl_aa = +ctrl(ctrl_aa) PK(f[L}Nrules/base.lstnu[! model pc101 Generic 101-key PC pc102 Generic 102-key PC (intl.) pc104 Generic 104-key PC pc105 Generic 105-key PC (intl.) dell101 Dell 101-key PC latitude Dell Latitude laptop dellm65 Dell Precision M65 laptop everex Everex STEPnote flexpro Keytronic FlexPro microsoft Microsoft Natural omnikey101 Northgate OmniKey 101 winbook Winbook Model XP5 pc98 PC-98 a4techKB21 A4Tech KB-21 a4techKBS8 A4Tech KBS-8 a4_rfkb23 A4Tech Wireless Desktop RFKB-23 airkey Acer AirKey V azonaRF2300 Azona RF2300 wireless Internet scorpius Advance Scorpius KI brother Brother Internet btc5113rf BTC 5113RF Multimedia btc5126t BTC 5126T btc6301urf BTC 6301URF btc9000 BTC 9000 btc9000a BTC 9000A btc9001ah BTC 9001AH btc5090 BTC 5090 btc9019u BTC 9019U btc9116u BTC 9116U Mini Wireless Internet and Gaming cherryblue Cherry Blue Line CyBo@rd cherryblueb Cherry CyMotion Master XPress cherrybluea Cherry Blue Line CyBo@rd (alt.) cherrycyboard Cherry CyBo@rd USB-Hub cherrycmexpert Cherry CyMotion Expert cherrybunlim Cherry B.UNLIMITED chicony Chicony Internet chicony0108 Chicony KU-0108 chicony0420 Chicony KU-0420 chicony9885 Chicony KB-9885 compaqeak8 Compaq Easy Access compaqik7 Compaq Internet (7 keys) compaqik13 Compaq Internet (13 keys) compaqik18 Compaq Internet (18 keys) cymotionlinux Cherry CyMotion Master Linux armada Compaq Armada laptop presario Compaq Presario laptop ipaq Compaq iPaq dell Dell dellsk8125 Dell SK-8125 dellsk8135 Dell SK-8135 dellusbmm Dell USB Multimedia inspiron Dell Inspiron 6000/8000 laptop precision_m Dell Precision M laptop dexxa Dexxa Wireless Desktop diamond Diamond 9801/9802 dtk2000 DTK2000 ennyah_dkb1008 Ennyah DKB-1008 fscaa1667g Fujitsu-Siemens Amilo laptop genius Genius Comfy KB-16M/Multimedia KWD-910 geniuscomfy Genius Comfy KB-12e geniuscomfy2 Genius Comfy KB-21e-Scroll geniuskb19e Genius KB-19e NB geniuskkb2050hs Genius KKB-2050HS gyration Gyration htcdream HTC Dream kinesis Kinesis logitech_base Logitech logitech_g15 Logitech G15 extra keys via G15daemon hpi6 Hewlett-Packard Internet hp250x Hewlett-Packard NEC SK-2500 Multimedia hpxe3gc Hewlett-Packard Omnibook XE3 GC hpxe3gf Hewlett-Packard Omnibook XE3 GF hpxt1000 Hewlett-Packard Omnibook XT1000 hpdv5 Hewlett-Packard Pavilion dv5 hpzt11xx Hewlett-Packard Pavilion ZT1100 hp500fa Hewlett-Packard Omnibook 500 FA hp5xx Hewlett-Packard Omnibook 500 hpnx9020 Hewlett-Packard nx9020 hp6000 Hewlett-Packard Omnibook 6000/6100 honeywell_euroboard Honeywell Euroboard hpmini110 Hewlett-Packard Mini 110 laptop rapidaccess IBM Rapid Access rapidaccess2 IBM Rapid Access II thinkpad IBM ThinkPad 560Z/600/600E/A22E thinkpad60 IBM ThinkPad R60/T60/R61/T61 thinkpadz60 IBM ThinkPad Z60m/Z60t/Z61m/Z61t ibm_spacesaver IBM Space Saver logiaccess Logitech Access logiclx300 Logitech Cordless Desktop LX-300 logii350 Logitech Internet 350 logimel Logitech Internet 350 logicd Logitech Cordless Desktop logicd_it Logitech Cordless Desktop iTouch logicd_nav Logitech Cordless Desktop Navigator logicd_opt Logitech Cordless Desktop Optical logicda Logitech Cordless Desktop (alt.) logicdpa2 Logitech Cordless Desktop Pro (2nd alt.) logicfn Logitech Cordless Freedom/Desktop Navigator logicdn Logitech Cordless Desktop Navigator logiitc Logitech iTouch Cordless Y-RB6 logiik Logitech Internet itouch Logitech iTouch logicink Logitech Internet Navigator logiex110 Logitech Cordless Desktop EX110 logiinkse Logitech iTouch Internet Navigator SE logiinkseusb Logitech iTouch Internet Navigator SE USB logiultrax Logitech Ultra-X logiultraxc Logitech Ultra-X Cordless Media Desktop logidinovo Logitech diNovo logidinovoedge Logitech diNovo Edge mx1998 Memorex MX1998 mx2500 Memorex MX2500 EZ-Access mx2750 Memorex MX2750 microsoft4000 Microsoft Natural Ergonomic 4000 microsoft7000 Microsoft Natural Wireless Ergonomic 7000 microsoftinet Microsoft Internet microsoftpro Microsoft Natural Pro/Internet Pro microsoftprousb Microsoft Natural Pro USB/Internet Pro microsoftprooem Microsoft Natural Pro OEM vsonku306 ViewSonic KU-306 Internet microsoftprose Microsoft Internet Pro (Swedish) microsoftoffice Microsoft Office Keyboard microsoftmult Microsoft Wireless Multimedia 1.0A microsoftelite Microsoft Natural Elite microsoftccurve2k Microsoft Comfort Curve 2000 oretec Ortek Multimedia/Internet MCK-800 propeller Propeller Voyager KTEZ-1000 qtronix QTronix Scorpius 98N+ samsung4500 Samsung SDM 4500P samsung4510 Samsung SDM 4510P sanwaskbkg3 Sanwa Supply SKB-KG3 sk1300 NEC SK-1300 sk2500 NEC SK-2500 sk6200 NEC SK-6200 sk7100 NEC SK-7100 sp_inet Super Power Multimedia sven SVEN Ergonomic 2500 sven303 SVEN Slim 303 symplon Symplon PaceBook tablet toshiba_s3000 Toshiba Satellite S3000 trust Trust Wireless Classic trustda Trust Direct Access trust_slimline Trust Slimline tm2020 TypeMatrix EZ-Reach 2020 tm2030PS2 TypeMatrix EZ-Reach 2030 PS2 tm2030USB TypeMatrix EZ-Reach 2030 USB tm2030USB-102 TypeMatrix EZ-Reach 2030 USB (102/105:EU mode) tm2030USB-106 TypeMatrix EZ-Reach 2030 USB (106:JP mode) yahoo Yahoo! Internet macbook78 MacBook/MacBook Pro macbook79 MacBook/MacBook Pro (intl.) macintosh Macintosh macintosh_old Macintosh Old macintosh_hhk Happy Hacking for Mac acer_c300 Acer C300 acer_ferrari4k Acer Ferrari 4000 acer_laptop Acer laptop asus_laptop Asus laptop apple Apple apple_laptop Apple laptop applealu_ansi Apple Aluminium (ANSI) applealu_iso Apple Aluminium (ISO) applealu_jis Apple Aluminium (JIS) silvercrest Silvercrest Multimedia Wireless emachines eMachines m6800 laptop benqx BenQ X-Touch benqx730 BenQ X-Touch 730 benqx800 BenQ X-Touch 800 hhk Happy Hacking classmate Classmate PC olpc OLPC sun_type7_usb Sun Type 7 USB sun_type7_euro_usb Sun Type 7 USB (European) sun_type7_unix_usb Sun Type 7 USB (Unix) sun_type7_jp_usb Sun Type 7 USB (Japanese)/Japanese 106-key sun_type6_usb Sun Type 6/7 USB sun_type6_euro_usb Sun Type 6/7 USB (European) sun_type6_unix_usb Sun Type 6 USB (Unix) sun_type6_jp_usb Sun Type 6 USB (Japanese) sun_type6_jp Sun Type 6 (Japanese) targa_v811 Targa Visionary 811 unitekkb1925 Unitek KB-1925 compalfl90 FL90 creativedw7000 Creative Desktop Wireless 7000 htcdream Htc Dream phone teck227 Truly Ergonomic 227 teck229 Truly Ergonomic 229 apex300 SteelSeries Apex 300 (Apex RAW) chromebook Chromebook teck227 Truly Ergonomic Computer Keyboard Model 227 (Wide Alt keys) teck229 Truly Ergonomic Computer Keyboard Model 229 (Standard sized Alt keys, additional Super and Menu key) ! layout us English (US) af Afghani ara Arabic al Albanian am Armenian at German (Austria) au English (Australian) az Azerbaijani by Belarusian be Belgian bd Bangla in Indian ba Bosnian br Portuguese (Brazil) bg Bulgarian dz Berber (Algeria, Latin) ma Arabic (Morocco) cm English (Cameroon) mm Burmese ca French (Canada) cd French (Democratic Republic of the Congo) cn Chinese hr Croatian cz Czech dk Danish nl Dutch bt Dzongkha ee Estonian ir Persian iq Iraqi fo Faroese fi Finnish fr French gh English (Ghana) gn French (Guinea) ge Georgian de German gr Greek hu Hungarian is Icelandic il Hebrew it Italian jp Japanese kg Kyrgyz kh Khmer (Cambodia) kz Kazakh la Lao latam Spanish (Latin American) lt Lithuanian lv Latvian mao Maori me Montenegrin mk Macedonian mt Maltese mn Mongolian no Norwegian pl Polish pt Portuguese ro Romanian ru Russian rs Serbian si Slovenian sk Slovak es Spanish se Swedish ch German (Switzerland) sy Arabic (Syria) tj Tajik lk Sinhala (phonetic) th Thai tr Turkish tw Taiwanese ua Ukrainian gb English (UK) uz Uzbek vn Vietnamese kr Korean nec_vndr/jp Japanese (PC-98) ie Irish pk Urdu (Pakistan) mv Dhivehi za English (South Africa) epo Esperanto np Nepali ng English (Nigeria) et Amharic sn Wolof brai Braille tm Turkmen ml Bambara tz Swahili (Tanzania) tg French (Togo) ke Swahili (Kenya) bw Tswana ph Filipino md Moldavian id Indonesian (Arab Melayu, phonetic) my Malay (Jawi, Arabic Keyboard) ! variant chr us: Cherokee euro us: English (US, euro on 5) intl us: English (US, intl., with dead keys) alt-intl us: English (US, alt. intl.) colemak us: English (Colemak) dvorak us: English (Dvorak) dvorak-intl us: English (Dvorak, intl., with dead keys) dvorak-alt-intl us: English (Dvorak, alt. intl.) dvorak-l us: English (Dvorak, left-handed) dvorak-r us: English (Dvorak, right-handed) dvorak-classic us: English (classic Dvorak) dvp us: English (programmer Dvorak) rus us: Russian (US, phonetic) mac us: English (Macintosh) altgr-intl us: English (intl., with AltGr dead keys) olpc2 us: English (the divide/multiply keys toggle the layout) hbs us: Serbo-Croatian (US) norman us: English (Norman) workman us: English (Workman) workman-intl us: English (Workman, intl., with dead keys) ps af: Pashto uz af: Uzbek (Afghanistan) olpc-ps af: Pashto (Afghanistan, OLPC) fa-olpc af: Persian (Afghanistan, Dari OLPC) uz-olpc af: Uzbek (Afghanistan, OLPC) azerty ara: Arabic (AZERTY) azerty_digits ara: Arabic (AZERTY/digits) digits ara: Arabic (digits) qwerty ara: Arabic (QWERTY) qwerty_digits ara: Arabic (qwerty/digits) buckwalter ara: Arabic (Buckwalter) olpc ara: Arabic (OLPC) mac ara: Arabic (Macintosh) plisi al: Albanian (Plisi) phonetic am: Armenian (phonetic) phonetic-alt am: Armenian (alt. phonetic) eastern am: Armenian (eastern) western am: Armenian (western) eastern-alt am: Armenian (alt. eastern) nodeadkeys at: German (Austria, no dead keys) sundeadkeys at: German (Austria, with Sun dead keys) mac at: German (Austria, Macintosh) cyrillic az: Azerbaijani (Cyrillic) legacy by: Belarusian (legacy) latin by: Belarusian (Latin) oss be: Belgian (alt.) oss_latin9 be: Belgian (alt., Latin-9 only) oss_sundeadkeys be: Belgian (alt., with Sun dead keys) iso-alternate be: Belgian (alt. ISO) nodeadkeys be: Belgian (no dead keys) sundeadkeys be: Belgian (with Sun dead keys) wang be: Belgian (Wang 724 AZERTY) probhat bd: Bangla (Probhat) ben in: Bangla (India) ben_probhat in: Bangla (India, Probhat) ben_baishakhi in: Bangla (India, Baishakhi) ben_bornona in: Bangla (India, Bornona) ben_gitanjali in: Bangla (India, Uni Gitanjali) ben_inscript in: Bangla (India, Baishakhi Inscript) eeyek in: Manipuri (Eeyek) guj in: Gujarati guru in: Punjabi (Gurmukhi) jhelum in: Punjabi (Gurmukhi Jhelum) kan in: Kannada kan-kagapa in: Kannada (KaGaPa phonetic) mal in: Malayalam mal_lalitha in: Malayalam (Lalitha) mal_enhanced in: Malayalam (enhanced Inscript, with rupee) ori in: Oriya olck in: Ol Chiki tam_tamilnet in: Tamil (TamilNet '99) tam_tamilnet_with_tam_nums in: Tamil (TamilNet '99 with Tamil numerals) tam_tamilnet_TAB in: Tamil (TamilNet '99, TAB encoding) tam_tamilnet_TSCII in: Tamil (TamilNet '99, TSCII encoding) tam in: Tamil (Inscript) tel in: Telugu tel-kagapa in: Telugu (KaGaPa phonetic) tel-sarala in: Telugu (Sarala) tel-kagapa in: Telugu (KaGaPa phonetic) urd-phonetic in: Urdu (phonetic) urd-phonetic3 in: Urdu (alt. phonetic) urd-winkeys in: Urdu (Win keys) bolnagri in: Hindi (Bolnagri) hin-wx in: Hindi (Wx) hin-kagapa in: Hindi (KaGaPa phonetic) san-kagapa in: Sanskrit (KaGaPa phonetic) mar-kagapa in: Marathi (KaGaPa phonetic) eng in: English (India, with rupee) alternatequotes ba: Bosnian (with guillemets) unicode ba: Bosnian (with Bosnian digraphs) unicodeus ba: Bosnian (US, with Bosnian digraphs) us ba: Bosnian (US, with Bosnian letters) nodeadkeys br: Portuguese (Brazil, no dead keys) dvorak br: Portuguese (Brazil, Dvorak) nativo br: Portuguese (Brazil, Nativo) nativo-us br: Portuguese (Brazil, Nativo for US keyboards) nativo-epo br: Esperanto (Brazil, Nativo) thinkpad br: Portuguese (Brazil, IBM/Lenovo ThinkPad) phonetic bg: Bulgarian (traditional phonetic) bas_phonetic bg: Bulgarian (new phonetic) ber dz: Berber (Algeria, Tifinagh) ar dz: Arabic (Algeria) french ma: French (Morocco) tifinagh ma: Berber (Morocco, Tifinagh) tifinagh-alt ma: Berber (Morocco, Tifinagh alt.) tifinagh-alt-phonetic ma: Berber (Morocco, Tifinagh alt. phonetic) tifinagh-extended ma: Berber (Morocco, Tifinagh extended) tifinagh-phonetic ma: Berber (Morocco, Tifinagh phonetic) tifinagh-extended-phonetic ma: Berber (Morocco, Tifinagh extended phonetic) french cm: French (Cameroon) qwerty cm: Cameroon Multilingual (QWERTY) azerty cm: Cameroon Multilingual (AZERTY) dvorak cm: Cameroon Multilingual (Dvorak) mmuock cm: Mmuock zawgyi mm: Burmese Zawgyi fr-dvorak ca: French (Canada, Dvorak) fr-legacy ca: French (Canada, legacy) multix ca: Canadian Multilingual multi ca: Canadian Multilingual (1st part) multi-2gr ca: Canadian Multilingual (2nd part) ike ca: Inuktitut eng ca: English (Canada) mon_trad cn: Mongolian (Bichig) mon_trad_todo cn: Mongolian Todo mon_trad_xibe cn: Mongolian Xibe mon_trad_manchu cn: Mongolian Manchu mon_trad_galik cn: Mongolian Galik mon_todo_galik cn: Mongolian Todo Galik mon_manchu_galik cn: Mongolian Manchu Galik tib cn: Tibetan tib_asciinum cn: Tibetan (with ASCII numerals) ug cn: Uyghur altgr-pinyin cn: Hanyu Pinyin (altgr) alternatequotes hr: Croatian (with guillemets) unicode hr: Croatian (with Croatian digraphs) unicodeus hr: Croatian (US, with Croatian digraphs) us hr: Croatian (US, with Croatian letters) bksl cz: Czech (with <\|> key) qwerty cz: Czech (QWERTY) qwerty_bksl cz: Czech (QWERTY, extended backslash) qwerty-mac cz: Czech (QWERTY, Macintosh) ucw cz: Czech (UCW, only accented letters) dvorak-ucw cz: Czech (US, Dvorak, UCW support) rus cz: Russian (Czech, phonetic) nodeadkeys dk: Danish (no dead keys) winkeys dk: Danish (Win keys) mac dk: Danish (Macintosh) mac_nodeadkeys dk: Danish (Macintosh, no dead keys) dvorak dk: Danish (Dvorak) sundeadkeys nl: Dutch (with Sun dead keys) mac nl: Dutch (Macintosh) std nl: Dutch (standard) nodeadkeys ee: Estonian (no dead keys) dvorak ee: Estonian (Dvorak) us ee: Estonian (US, with Estonian letters) pes_keypad ir: Persian (with Persian keypad) ku ir: Kurdish (Iran, Latin Q) ku_f ir: Kurdish (Iran, F) ku_alt ir: Kurdish (Iran, Latin Alt-Q) ku_ara ir: Kurdish (Iran, Arabic-Latin) ku iq: Kurdish (Iraq, Latin Q) ku_f iq: Kurdish (Iraq, F) ku_alt iq: Kurdish (Iraq, Latin Alt-Q) ku_ara iq: Kurdish (Iraq, Arabic-Latin) nodeadkeys fo: Faroese (no dead keys) classic fi: Finnish (classic) nodeadkeys fi: Finnish (classic, no dead keys) winkeys fi: Finnish (Winkeys) smi fi: Northern Saami (Finland) mac fi: Finnish (Macintosh) nodeadkeys fr: French (no dead keys) sundeadkeys fr: French (with Sun dead keys) oss fr: French (alt.) oss_latin9 fr: French (alt., Latin-9 only) oss_nodeadkeys fr: French (alt., no dead keys) oss_sundeadkeys fr: French (alt., with Sun dead keys) latin9 fr: French (legacy, alt.) latin9_nodeadkeys fr: French (legacy, alt., no dead keys) latin9_sundeadkeys fr: French (legacy, alt., with Sun dead keys) bepo fr: French (Bepo, ergonomic, Dvorak way) bepo_latin9 fr: French (Bepo, ergonomic, Dvorak way, Latin-9 only) bepo_afnor fr: French (Bepo, ergonomic, Dvorak way, AFNOR) dvorak fr: French (Dvorak) mac fr: French (Macintosh) azerty fr: French (AZERTY) afnor fr: French (AFNOR standardized AZERTY) bre fr: French (Breton) oci fr: Occitan geo fr: Georgian (France, AZERTY Tskapo) us fr: French (US, with French letters) generic gh: English (Ghana, multilingual) akan gh: Akan ewe gh: Ewe fula gh: Fula ga gh: Ga hausa gh: Hausa (Ghana) avn gh: Avatime gillbt gh: English (Ghana, GILLBT) ergonomic ge: Georgian (ergonomic) mess ge: Georgian (MESS) ru ge: Russian (Georgia) os ge: Ossetian (Georgia) deadacute de: German (dead acute) deadgraveacute de: German (dead grave acute) nodeadkeys de: German (no dead keys) T3 de: German (T3) ro de: Romanian (Germany) ro_nodeadkeys de: Romanian (Germany, no dead keys) dvorak de: German (Dvorak) sundeadkeys de: German (with Sun dead keys) neo de: German (Neo 2) mac de: German (Macintosh) mac_nodeadkeys de: German (Macintosh, no dead keys) dsb de: Lower Sorbian dsb_qwertz de: Lower Sorbian (QWERTZ) qwerty de: German (QWERTY) tr de: Turkish (Germany) ru de: Russian (Germany, phonetic) deadtilde de: German (dead tilde) simple gr: Greek (simple) extended gr: Greek (extended) nodeadkeys gr: Greek (no dead keys) polytonic gr: Greek (polytonic) standard hu: Hungarian (standard) nodeadkeys hu: Hungarian (no dead keys) qwerty hu: Hungarian (QWERTY) 101_qwertz_comma_dead hu: Hungarian (101/QWERTZ/comma/dead keys) 101_qwertz_comma_nodead hu: Hungarian (101/QWERTZ/comma/no dead keys) 101_qwertz_dot_dead hu: Hungarian (101/QWERTZ/dot/dead keys) 101_qwertz_dot_nodead hu: Hungarian (101/QWERTZ/dot/no dead keys) 101_qwerty_comma_dead hu: Hungarian (101/QWERTY/comma/dead keys) 101_qwerty_comma_nodead hu: Hungarian (101/QWERTY/comma/no dead keys) 101_qwerty_dot_dead hu: Hungarian (101/QWERTY/dot/dead keys) 101_qwerty_dot_nodead hu: Hungarian (101/QWERTY/dot/no dead keys) 102_qwertz_comma_dead hu: Hungarian (102/QWERTZ/comma/dead keys) 102_qwertz_comma_nodead hu: Hungarian (102/QWERTZ/comma/no dead keys) 102_qwertz_dot_dead hu: Hungarian (102/QWERTZ/dot/dead keys) 102_qwertz_dot_nodead hu: Hungarian (102/QWERTZ/dot/no dead keys) 102_qwerty_comma_dead hu: Hungarian (102/QWERTY/comma/dead keys) 102_qwerty_comma_nodead hu: Hungarian (102/QWERTY/comma/no dead keys) 102_qwerty_dot_dead hu: Hungarian (102/QWERTY/dot/dead keys) 102_qwerty_dot_nodead hu: Hungarian (102/QWERTY/dot/no dead keys) Sundeadkeys is: Icelandic (with Sun dead keys) nodeadkeys is: Icelandic (no dead keys) mac_legacy is: Icelandic (Macintosh, legacy) mac is: Icelandic (Macintosh) dvorak is: Icelandic (Dvorak) lyx il: Hebrew (lyx) phonetic il: Hebrew (phonetic) biblical il: Hebrew (Biblical, Tiro) nodeadkeys it: Italian (no dead keys) winkeys it: Italian (Winkeys) mac it: Italian (Macintosh) us it: Italian (US, with Italian letters) geo it: Georgian (Italy) ibm it: Italian (IBM 142) intl it: Italian (intl., with dead keys) scn it: Sicilian fur it: Friulian (Italy) kana jp: Japanese (Kana) kana86 jp: Japanese (Kana 86) OADG109A jp: Japanese (OADG 109A) mac jp: Japanese (Macintosh) dvorak jp: Japanese (Dvorak) phonetic kg: Kyrgyz (phonetic) ruskaz kz: Russian (Kazakhstan, with Kazakh) kazrus kz: Kazakh (with Russian) ext kz: Kazakh (extended) latin kz: Kazakh (Latin) stea la: Lao (STEA proposed standard layout) nodeadkeys latam: Spanish (Latin American, no dead keys) deadtilde latam: Spanish (Latin American, dead tilde) sundeadkeys latam: Spanish (Latin American, with Sun dead keys) dvorak latam: Spanish (Latin American, Dvorak) colemak latam: Spanish (Latin American, Colemak) colemak-gaming latam: Spanish (Latin American, Colemak for gaming) std lt: Lithuanian (standard) us lt: Lithuanian (US, with Lithuanian letters) ibm lt: Lithuanian (IBM LST 1205-92) lekp lt: Lithuanian (LEKP) lekpa lt: Lithuanian (LEKPa) apostrophe lv: Latvian (apostrophe) tilde lv: Latvian (tilde) fkey lv: Latvian (F) modern lv: Latvian (modern) ergonomic lv: Latvian (ergonomic, ŪGJRMV) adapted lv: Latvian (adapted) cyrillic me: Montenegrin (Cyrillic) cyrillicyz me: Montenegrin (Cyrillic, ZE and ZHE swapped) latinunicode me: Montenegrin (Latin, Unicode) latinyz me: Montenegrin (Latin, QWERTY) latinunicodeyz me: Montenegrin (Latin, Unicode, QWERTY) cyrillicalternatequotes me: Montenegrin (Cyrillic with guillemets) latinalternatequotes me: Montenegrin (Latin with guillemets) nodeadkeys mk: Macedonian (no dead keys) us mt: Maltese (with US layout) alt-us mt: Maltese (US layout with AltGr overrides) alt-gb mt: Maltese (UK layout with AltGr overrides) nodeadkeys no: Norwegian (no dead keys) winkeys no: Norwegian (Win keys) dvorak no: Norwegian (Dvorak) smi no: Northern Saami (Norway) smi_nodeadkeys no: Northern Saami (Norway, no dead keys) mac no: Norwegian (Macintosh) mac_nodeadkeys no: Norwegian (Macintosh, no dead keys) colemak no: Norwegian (Colemak) legacy pl: Polish (legacy) qwertz pl: Polish (QWERTZ) dvorak pl: Polish (Dvorak) dvorak_quotes pl: Polish (Dvorak, with Polish quotes on quotemark key) dvorak_altquotes pl: Polish (Dvorak, with Polish quotes on key 1) csb pl: Kashubian szl pl: Silesian ru_phonetic_dvorak pl: Russian (Poland, phonetic Dvorak) dvp pl: Polish (programmer Dvorak) nodeadkeys pt: Portuguese (no dead keys) sundeadkeys pt: Portuguese (with Sun dead keys) mac pt: Portuguese (Macintosh) mac_nodeadkeys pt: Portuguese (Macintosh, no dead keys) mac_sundeadkeys pt: Portuguese (Macintosh, with Sun dead keys) nativo pt: Portuguese (Nativo) nativo-us pt: Portuguese (Nativo for US keyboards) nativo-epo pt: Esperanto (Portugal, Nativo) cedilla ro: Romanian (cedilla) std ro: Romanian (standard) std_cedilla ro: Romanian (standard cedilla) winkeys ro: Romanian (Win keys) phonetic ru: Russian (phonetic) phonetic_winkeys ru: Russian (phonetic, with Win keys) phonetic_yazherty ru: Russian (phonetic yazherty) typewriter ru: Russian (typewriter) legacy ru: Russian (legacy) typewriter-legacy ru: Russian (typewriter, legacy) tt ru: Tatar os_legacy ru: Ossetian (legacy) os_winkeys ru: Ossetian (Win keys) cv ru: Chuvash cv_latin ru: Chuvash (Latin) udm ru: Udmurt kom ru: Komi sah ru: Yakut xal ru: Kalmyk dos ru: Russian (DOS) mac ru: Russian (Macintosh) srp ru: Serbian (Russia) bak ru: Bashkirian chm ru: Mari phonetic_azerty ru: Russian (phonetic, AZERTY) phonetic_dvorak ru: Russian (phonetic, Dvorak) phonetic_fr ru: Russian (phonetic, French) yz rs: Serbian (Cyrillic, ZE and ZHE swapped) latin rs: Serbian (Latin) latinunicode rs: Serbian (Latin, Unicode) latinyz rs: Serbian (Latin, QWERTY) latinunicodeyz rs: Serbian (Latin, Unicode, QWERTY) alternatequotes rs: Serbian (Cyrillic with guillemets) latinalternatequotes rs: Serbian (Latin with guillemets) rue rs: Pannonian Rusyn alternatequotes si: Slovenian (with guillemets) us si: Slovenian (US, with Slovenian letters) bksl sk: Slovak (extended backslash) qwerty sk: Slovak (QWERTY) qwerty_bksl sk: Slovak (QWERTY, extended backslash) nodeadkeys es: Spanish (no dead keys) winkeys es: Spanish (Win keys) deadtilde es: Spanish (dead tilde) sundeadkeys es: Spanish (with Sun dead keys) dvorak es: Spanish (Dvorak) ast es: Asturian (Spain, with bottom-dot H and bottom-dot L) cat es: Catalan (Spain, with middle-dot L) mac es: Spanish (Macintosh) nodeadkeys se: Swedish (no dead keys) dvorak se: Swedish (Dvorak) rus se: Russian (Sweden, phonetic) rus_nodeadkeys se: Russian (Sweden, phonetic, no dead keys) smi se: Northern Saami (Sweden) mac se: Swedish (Macintosh) svdvorak se: Swedish (Svdvorak) us_dvorak se: Swedish (based on US Intl. Dvorak) us se: Swedish (US, with Swedish letters) swl se: Swedish Sign Language legacy ch: German (Switzerland, legacy) de_nodeadkeys ch: German (Switzerland, no dead keys) de_sundeadkeys ch: German (Switzerland, with Sun dead keys) fr ch: French (Switzerland) fr_nodeadkeys ch: French (Switzerland, no dead keys) fr_sundeadkeys ch: French (Switzerland, with Sun dead keys) fr_mac ch: French (Switzerland, Macintosh) de_mac ch: German (Switzerland, Macintosh) syc sy: Syriac syc_phonetic sy: Syriac (phonetic) ku sy: Kurdish (Syria, Latin Q) ku_f sy: Kurdish (Syria, F) ku_alt sy: Kurdish (Syria, Latin Alt-Q) legacy tj: Tajik (legacy) tam_unicode lk: Tamil (Sri Lanka, TamilNet '99) tam_TAB lk: Tamil (Sri Lanka, TamilNet '99, TAB encoding) us lk: Sinhala (US, with Sinhala letters) tis th: Thai (TIS-820.2538) pat th: Thai (Pattachote) f tr: Turkish (F) alt tr: Turkish (Alt-Q) sundeadkeys tr: Turkish (with Sun dead keys) ku tr: Kurdish (Turkey, Latin Q) ku_f tr: Kurdish (Turkey, F) ku_alt tr: Kurdish (Turkey, Latin Alt-Q) intl tr: Turkish (intl., with dead keys) crh tr: Crimean Tatar (Turkish Q) crh_f tr: Crimean Tatar (Turkish F) crh_alt tr: Crimean Tatar (Turkish Alt-Q) indigenous tw: Taiwanese (indigenous) saisiyat tw: Saisiyat (Taiwan) phonetic ua: Ukrainian (phonetic) typewriter ua: Ukrainian (typewriter) winkeys ua: Ukrainian (Win keys) legacy ua: Ukrainian (legacy) rstu ua: Ukrainian (standard RSTU) rstu_ru ua: Russian (Ukraine, standard RSTU) homophonic ua: Ukrainian (homophonic) extd gb: English (UK, extended, with Win keys) intl gb: English (UK, intl., with dead keys) dvorak gb: English (UK, Dvorak) dvorakukp gb: English (UK, Dvorak, with UK punctuation) mac gb: English (UK, Macintosh) mac_intl gb: English (UK, intl., Macintosh) colemak gb: English (UK, Colemak) pl gb: Polish (British keyboard) latin uz: Uzbek (Latin) us vn: Vietnamese (US, with Vietnamese letters) fr vn: Vietnamese (French, with Vietnamese letters) kr104 kr: Korean (101/104 key compatible) CloGaelach ie: CloGaelach UnicodeExpert ie: Irish (UnicodeExpert) ogam ie: Ogham ogam_is434 ie: Ogham (IS434) urd-crulp pk: Urdu (Pakistan, CRULP) urd-nla pk: Urdu (Pakistan, NLA) ara pk: Arabic (Pakistan) snd pk: Sindhi legacy epo: Esperanto (displaced semicolon and quote, obsolete) igbo ng: Igbo yoruba ng: Yoruba hausa ng: Hausa (Nigeria) left_hand brai: Braille (left-handed) left_hand_invert brai: Braille (left-handed inverted thumb) right_hand brai: Braille (right-handed) right_hand_invert brai: Braille (right-handed inverted thumb) alt tm: Turkmen (Alt-Q) fr-oss ml: French (Mali, alt.) us-mac ml: English (Mali, US, Macintosh) us-intl ml: English (Mali, US, intl.) kik ke: Kikuyu qwerty-bay ph: Filipino (QWERTY, Baybayin) capewell-dvorak ph: Filipino (Capewell-Dvorak, Latin) capewell-dvorak-bay ph: Filipino (Capewell-Dvorak, Baybayin) capewell-qwerf2k6 ph: Filipino (Capewell-QWERF 2006, Latin) capewell-qwerf2k6-bay ph: Filipino (Capewell-QWERF 2006, Baybayin) colemak ph: Filipino (Colemak, Latin) colemak-bay ph: Filipino (Colemak, Baybayin) dvorak ph: Filipino (Dvorak, Latin) dvorak-bay ph: Filipino (Dvorak, Baybayin) gag md: Moldavian (Gagauz) phoneticx id: Indonesian (Arab Melayu, ext. phonetic) phonetic my: Malay (Jawi, phonetic) ! option grp Switching to another layout grp:switch Right Alt (while pressed) grp:lswitch Left Alt (while pressed) grp:lwin_switch Left Win (while pressed) grp:rwin_switch Right Win (while pressed) grp:win_switch Any Win (while pressed) grp:menu_switch Menu (while pressed), Shift+Menu for Menu grp:caps_switch Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action grp:rctrl_switch Right Ctrl (while pressed) grp:toggle Right Alt grp:lalt_toggle Left Alt grp:caps_toggle Caps Lock grp:shift_caps_toggle Shift+Caps Lock grp:shift_caps_switch Caps Lock to first layout; Shift+Caps Lock to last layout grp:win_menu_switch Left Win to first layout; Right Win/Menu to last layout grp:lctrl_rctrl_switch Left Ctrl to first layout; Right Ctrl to last layout grp:alt_caps_toggle Alt+Caps Lock grp:shifts_toggle Both Shift together grp:alts_toggle Both Alt together grp:ctrls_toggle Both Ctrl together grp:ctrl_shift_toggle Ctrl+Shift grp:lctrl_lshift_toggle Left Ctrl+Left Shift grp:rctrl_rshift_toggle Right Ctrl+Right Shift grp:ctrl_alt_toggle Alt+Ctrl grp:alt_shift_toggle Alt+Shift grp:lalt_lshift_toggle Left Alt+Left Shift grp:alt_space_toggle Alt+Space grp:menu_toggle Menu grp:lwin_toggle Left Win grp:win_space_toggle Win+Space grp:rwin_toggle Right Win grp:lshift_toggle Left Shift grp:rshift_toggle Right Shift grp:lctrl_toggle Left Ctrl grp:rctrl_toggle Right Ctrl grp:sclk_toggle Scroll Lock grp:lctrl_lwin_rctrl_menu Left Ctrl+Left Win to first layout; Right Ctrl+Menu to second layout grp:lctrl_lwin_toggle Left Ctrl+Left Win lv3 Key to choose the 3rd level lv3:switch Right Ctrl lv3:menu_switch Menu lv3:win_switch Any Win lv3:lwin_switch Left Win lv3:rwin_switch Right Win lv3:alt_switch Any Alt lv3:lalt_switch Left Alt lv3:ralt_switch Right Alt lv3:ralt_switch_multikey Right Alt; Shift+Right Alt as Compose lv3:ralt_alt Right Alt never chooses 3rd level lv3:enter_switch Enter on keypad lv3:caps_switch Caps Lock lv3:bksl_switch Backslash lv3:lsgt_switch <Less/Greater> lv3:caps_switch_latch Caps Lock; acts as onetime lock when pressed together with another 3rd-level chooser lv3:bksl_switch_latch Backslash; acts as onetime lock when pressed together with another 3rd level chooser lv3:lsgt_switch_latch <Less/Greater>; acts as onetime lock when pressed together with another 3rd level chooser ctrl Ctrl position ctrl:nocaps Caps Lock as Ctrl ctrl:lctrl_meta Left Ctrl as Meta ctrl:swapcaps Swap Ctrl and Caps Lock ctrl:swapcaps_hyper Caps Lock as Control, Control as Hyper ctrl:ac_ctrl At left of 'A' ctrl:aa_ctrl At bottom left ctrl:rctrl_ralt Right Ctrl as Right Alt ctrl:menu_rctrl Menu as Right Ctrl ctrl:swap_lalt_lctl Swap Left Alt with Left Ctrl ctrl:swap_lwin_lctl Swap Left Win with Left Ctrl ctrl:swap_rwin_rctl Swap Right Win with Right Ctrl ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Left Alt grp_led Use keyboard LED to show alternative layout grp_led:num Num Lock grp_led:caps Caps Lock grp_led:scroll Scroll Lock keypad Layout of numeric keypad keypad:legacy Legacy keypad:oss Unicode additions (arrows and math operators) keypad:future Unicode additions (arrows and math operators; math operators on default level) keypad:legacy_wang Legacy Wang 724 keypad:oss_wang Wang 724 keypad with Unicode additions (arrows and math operators) keypad:future_wang Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level) keypad:hex Hexadecimal keypad:atm ATM/phone-style kpdl Numeric keypad Delete behavior kpdl:dot Legacy key with dot kpdl:comma Legacy key with comma kpdl:dotoss Four-level key with dot kpdl:dotoss_latin9 Four-level key with dot, Latin-9 only kpdl:commaoss Four-level key with comma kpdl:momayyezoss Four-level key with momayyez kpdl:kposs Four-level key with abstract separators kpdl:semi Semicolon on third level caps Caps Lock behavior caps:internal Caps Lock uses internal capitalization; Shift "pauses" Caps Lock caps:internal_nocancel Caps Lock uses internal capitalization; Shift does not affect Caps Lock caps:shift Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock caps:shift_nocancel Caps Lock acts as Shift with locking; Shift does not affect Caps Lock caps:capslock Caps Lock toggles normal capitalization of alphabetic characters caps:shiftlock Caps Lock toggles ShiftLock (affects all keys) caps:swapescape Swap ESC and Caps Lock caps:escape Make Caps Lock an additional Esc caps:escape_shifted_capslock Make unmodified Caps Lock an additional Esc, but Shift + Caps Lock behaves like regular Caps Lock caps:backspace Make Caps Lock an additional Backspace caps:super Make Caps Lock an additional Super caps:hyper Make Caps Lock an additional Hyper caps:menu Make Caps Lock an additional Menu key caps:numlock Make Caps Lock an additional Num Lock caps:ctrl_modifier Caps Lock is also a Ctrl caps:none Caps Lock is disabled altwin Alt/Win key behavior altwin:menu Add the standard behavior to Menu key altwin:menu_win Menu is mapped to Win altwin:meta_alt Alt and Meta are on Alt altwin:alt_win Alt is mapped to Win and the usual Alt altwin:ctrl_win Ctrl is mapped to Win and the usual Ctrl keys altwin:ctrl_alt_win Ctrl is mapped to Alt; Alt is mapped to Win altwin:meta_win Meta is mapped to Win altwin:left_meta_win Meta is mapped to Left Win altwin:hyper_win Hyper is mapped to Win altwin:alt_super_win Alt is mapped to Right Win, Super to Menu altwin:swap_lalt_lwin Left Alt is swapped with Left Win altwin:swap_alt_win Alt is swapped with Win altwin:prtsc_rwin Win is mapped to PrtSc and the usual Win Compose key Position of Compose key compose:ralt Right Alt compose:lwin Left Win compose:lwin-altgr 3rd level of Left Win compose:rwin Right Win compose:rwin-altgr 3rd level of Right Win compose:menu Menu compose:menu-altgr 3rd level of Menu compose:lctrl Left Ctrl compose:lctrl-altgr 3rd level of Left Ctrl compose:rctrl Right Ctrl compose:rctrl-altgr 3rd level of Right Ctrl compose:caps Caps Lock compose:caps-altgr 3rd level of Caps Lock compose:102 <Less/Greater> compose:102-altgr 3rd level of <Less/Greater> compose:paus Pause compose:prsc PrtSc compose:sclk Scroll Lock compat Miscellaneous compatibility options numpad:pc Default numeric keypad keys numpad:mac Numeric keypad always enters digits (as in macOS) numpad:microsoft Num Lock on: digits; Shift for arrow keys. Num Lock off: arrow keys (as in Windows) numpad:shift3 Shift does not cancel Num Lock, chooses 3rd level instead srvrkeys:none Special keys (Ctrl+Alt+<key>) handled in a server apple:alupckeys Apple Aluminium: emulate PC keys (PrtSc, Scroll Lock, Pause, Num Lock) shift:breaks_caps Shift cancels Caps Lock misc:typo Enable extra typographic characters shift:both_capslock Both Shift together enable Caps Lock shift:both_capslock_cancel Both Shift together enable Caps Lock; one Shift key disables it shift:both_shiftlock Both Shift together enable Shift Lock keypad:pointerkeys Shift + Num Lock enables PointerKeys grab:break_actions Allow breaking grabs with keyboard actions (warning: security risk) grab:debug Allow grab and window tree logging currencysign Adding currency signs to certain keys eurosign:e Euro on E eurosign:2 Euro on 2 eurosign:4 Euro on 4 eurosign:5 Euro on 5 rupeesign:4 Rupee on 4 lv5 Key to choose 5th level lv5:lsgt_switch <Less/Greater> chooses 5th level lv5:ralt_switch Right Alt chooses 5th level lv5:lsgt_switch_lock <Less/Greater> chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:lsgt_switch_lock_cancel <Less/Greater> chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:lsgt_switch <Less/Greater> chooses 5th level lv5:ralt_switch Right Alt chooses 5th level lv5:lsgt_switch_lock <Less/Greater> chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:ralt_switch_lock Right Alt chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:lwin_switch_lock Left Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser lv5:rwin_switch_lock Right Win chooses 5th level; acts as onetime lock when pressed together with another 5th level chooser nbsp Using space key to input non-breaking space nbsp:none Usual space at any level nbsp:level2 Non-breaking space at the 2nd level nbsp:level3 Non-breaking space at the 3rd level nbsp:level3s Non-breaking space at the 3rd level, nothing at the 4th level nbsp:level3n Non-breaking space at the 3rd level, thin non-breaking space at the 4th level nbsp:level4 Non-breaking space at the 4th level nbsp:level4n Non-breaking space at the 4th level, thin non-breaking space at the 6th level nbsp:level4nl Non-breaking space at the 4th level, thin non-breaking space at the 6th level (via Ctrl+Shift) nbsp:zwnj2 Zero-width non-joiner at the 2nd level nbsp:zwnj2zwj3 Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level nbsp:zwnj2zwj3nb4 Zero-width non-joiner at the 2nd level, zero-width joiner at the 3rd level, non-breaking space at the 4th level nbsp:zwnj2nb3 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level nbsp:zwnj2nb3s Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, nothing at the 4th level nbsp:zwnj2nb3zwj4 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, zero-width joiner at the 4th level nbsp:zwnj2nb3nnb4 Zero-width non-joiner at the 2nd level, non-breaking space at the 3rd level, thin non-breaking space at the 4th level nbsp:zwnj3zwj4 Zero-width non-joiner at the 3rd level, zero-width joiner at the 4th level japan Japanese keyboard options japan:kana_lock Kana Lock key is locking japan:nicola_f_bs NICOLA-F style Backspace japan:hztg_escape Make Zenkaku Hankaku an additional Esc korean Korean Hangul/Hanja keys korean:ralt_hangul Make right Alt a Hangul key korean:rctrl_hangul Make right Ctrl a Hangul key korean:ralt_hanja Make right Alt a Hanja key korean:rctrl_hanja Make right Ctrl a Hanja key esperanto Adding Esperanto supersigned letters esperanto:qwerty To the corresponding key in a QWERTY layout esperanto:dvorak To the corresponding key in a Dvorak layout esperanto:colemak To the corresponding key in a Colemak layout solaris Maintain key compatibility with old Solaris keycodes solaris:sun_compat Sun Key compatibility terminate Key sequence to kill the X server terminate:ctrl_alt_bksp Ctrl+Alt+Backspace PK(f[8W[[ rules/READMEnu[This directory lists sets of rules which can be used to obtain an exact XKB configuration. PKe[Sh::fi-kotoistus.map.gznu[PKe[lа }es-mac.map.gznu[PKe[i(gh-gillbt.map.gznu[PKe[Ws7lv-ergonomic.map.gznu[PKe[My~Fno-nodeadkeys.map.gznu[PKe[ÖbVcz-qwerty.map.gznu[PKe[7;;8gca-fr-dvorak.map.gznu[PKe[:x uit-mac.map.gznu[PKe[Û̈́se-nodeadkeys.map.gznu[PKe[[ *lt-ibm.map.gznu[PKe[((*no-smi_nodeadkeys.map.gznu[PKe[*1OO de-T3.map.gznu[PKe[4llus-euro.map.gznu[PKe[yyCde-deadacute.map.gznu[PKe[(N>dd "pl.map.gznu[PKe[77 2fi-smi.map.gznu[PKe[^MMBde-ro_nodeadkeys.map.gznu[PKe[~Qcz-qwerty_bksl.map.gznu[PKe[9?cZZtbdk-nodeadkeys.map.gznu[PKe[lаres-sundeadkeys.map.gznu[PKe[ JAnrs-latinyz.map.gznu[PKe[ELFFepo-legacy.map.gznu[PKe[-po<< de-ro.map.gznu[PKe[ii ,no-mac.map.gznu[PKe[#TTno-mac_nodeadkeys.map.gznu[PKe[Vnph-colemak.map.gznu[PKe[_wse-svdvorak.map.gznu[PKe[..]'pt-nativo-epo.map.gznu[PKe[q?@6fr-nodeadkeys.map.gznu[PKe[;Fhu-nodeadkeys.map.gznu[PKe[3Vfr-sundeadkeys.map.gznu[PKe[bF fru-cv_latin.map.gznu[PKe[6Fu uvn.map.gznu[PKe[bO}  us-workman.map.gznu[PKe[Zbr-nodeadkeys.map.gznu[PKe[dBȡch-fr_nodeadkeys.map.gznu[PKe[-6pa  رfr-oss_nodeadkeys.map.gznu[PKe[>m9@ba-unicodeus.map.gznu[PKe[ks 8in-eng.map.gznu[PKe[K#IIltr-crh_f.map.gznu[PKe[Ers-latinalternatequotes.map.gznu[PKe[Xlt-lekp.map.gznu[PKe[jx||gh-hausa.map.gznu[PKe[q~~ge-mess.map.gznu[PKe[\$k,al-plisi.map.gznu[PKe[NqZYY;br-dvorak.map.gznu[PKe[uAKme-latinunicode.map.gznu[PKe[\<< A[tm.map.gznu[PKe[53ifr-latin9_nodeadkeys.map.gznu[PKe[okk ytr-crh.map.gznu[PKe[KUme-latinunicodeyz.map.gznu[PKe[zS  _cm-dvorak.map.gznu[PKe[;WG6 kr-kr104.map.gznu[PKe[_ mt.map.gznu[PKe[v^>ZZml-us-mac.map.gznu[PKe[uP P nkz-latin.map.gznu[PKe[cKde-mac_nodeadkeys.map.gznu[PKe[- de-dsb.map.gznu[PKe[rs\# be-wang.map.gznu[PKe[reeiq-ku_alt.map.gznu[PKe[Ä[1 )fr.map.gznu[PKe[hJ 9ro.map.gznu[PKe[2 xx His.map.gznu[PKe[>MM HXpt.map.gznu[PKe[*Mges-deadtilde.map.gznu[PKe[Uڭ\\ xee-us.map.gznu[PKe[&e latam.map.gznu[PKe[D$™ch-fr_mac.map.gznu[PKe[ylrr cz-rus.map.gznu[PKe[!tU..ius-altgr-intl.map.gznu[PKe[*OO se-mac.map.gznu[PKe[|0e ges-ast.map.gznu[PKe[yg es-cat.map.gznu[PKe[k((fi-winkeys.map.gznu[PKe[1 b(( {it-geo.map.gznu[PKe[A$c c 'ie-ogam_is434.map.gznu[PKe[ree5ir-ku_alt.map.gznu[PKe[/:<<,Efr-bepo.map.gznu[PKe['k44 Unl-std.map.gznu[PKe[L$L`oodlv-modern.map.gznu[PKe[.sch-legacy.map.gznu[PKe[~eetr-ku_alt.map.gznu[PKe[2?EEEus-dvorak.map.gznu[PKe[1 ʡcm.map.gznu[PKe[qз sk.map.gznu[PKe[~Ffr-latin9_sundeadkeys.map.gznu[PKe[-*]c%%sy-ku_f.map.gznu[PKe[؍ >ch-fr.map.gznu[PKe[-(( %fo.map.gznu[PKe[>͑tw-saisiyat.map.gznu[PKe[2 %% Ydk.map.gznu[PKe[f Ʌ it-scn.map.gznu[PKe[eSL y/ml.map.gznu[PKe[jx||?gh-fula.map.gznu[PKe[4p ^Njp.map.gznu[PKe[3\ba-unicode.map.gznu[PKe[=lby-latin.map.gznu[PKe[W__|no-winkeys.map.gznu[PKe[ 8cz.map.gznu[PKe[ 'Uis-dvorak.map.gznu[PKe[F gh.map.gznu[PKe[3N'rr üis-mac.map.gznu[PKe[cJDD rsy-ku.map.gznu[PKe[1d!ph-dvorak.map.gznu[PKe[`'r gb-mac.map.gznu[PKe[ϳ|``be-oss_sundeadkeys.map.gznu[PKe[0_m us-olpc2.map.gznu[PKe[iehu-102_qwertz_dot_dead.map.gznu[PKe[Gn*ch-de_nodeadkeys.map.gznu[PKe[4D|:is-mac_legacy.map.gznu[PKe["e Ise-us.map.gznu[PKe[{s Xro-std_cedilla.map.gznu[PKe[h}MM,gdk-mac_nodeadkeys.map.gznu[PKe["Fyy vat-mac.map.gznu[PKe[׈1wpt-nodeadkeys.map.gznu[PKe[D7UBtw-indigenous.map.gznu[PKe[p* epo.map.gznu[PKe[ICDD ir-ku.map.gznu[PKe[e[=ldk-dvorak.map.gznu[PKe[g^^at-nodeadkeys.map.gznu[PKe[)oChu-102_qwerty_dot_dead.map.gznu[PKe[+CaaKbr-nativo-us.map.gznu[PKe[$  mt-us.map.gznu[PKe[6""ng-igbo.map.gznu[PKe[ O(ba-alternatequotes.map.gznu[PKe[*"5r8hu-101_qwertz_comma_dead.map.gznu[PKe[lyy Hde-mac.map.gznu[PKe[NXme-latinalternatequotes.map.gznu[PKe[pF jhpl-szl.map.gznu[PKe[G jxsi-us.map.gznu[PKe[e!Uhu-102_qwertz_comma_nodead.map.gznu[PKe[ x̂:ng-yoruba.map.gznu[PKe[jwdbr-thinkpad.map.gznu[PKe[Y+ris-Sundeadkeys.map.gznu[PKe[@M00lv-adapted.map.gznu[PKe[r2Gmt-alt-gb.map.gznu[PKe[ff3us-alt-intl.map.gznu[PKe[|&be-nodeadkeys.map.gznu[PKe[Ӊ:  fr-us.map.gznu[PKe[sAA fr-azerty.map.gznu[PKe[ " us.map.gznu[PKe[m%0 us-intl.map.gznu[PKe[vGzBB @ de-tr.map.gznu[PKe[ԘO de-dvorak.map.gznu[PKe[055^ se-us_dvorak.map.gznu[PKe[iU Wn se.map.gznu[PKe[GCBCC } fr-mac.map.gznu[PKe[`LV LL de-qwerty.map.gznu[PKe[i77  se-smi.map.gznu[PKe[\  gb-pl.map.gznu[PKe[8DD  tr-ku.map.gznu[PKe[RR  us-hbs.map.gznu[PKe[H  me.map.gznu[PKe[qTUU( be-oss_latin9.map.gznu[PKe[-  ke-kik.map.gznu[PKe[p  uz-latin.map.gznu[PKe[7lKK< pt-sundeadkeys.map.gznu[PKe[INN & tr.map.gznu[PKe[sNS6 hu-101_qwerty_dot_nodead.map.gznu[PKe[~FKF fr-latin9.map.gznu[PKe[032;V hu-102_qwerty_comma_dead.map.gznu[PKe[^%Gf cz-bksl.map.gznu[PKe[T+7w sk-qwerty_bksl.map.gznu[PKe["7 hu-102_qwertz_comma_dead.map.gznu[PKe[wwD ca-multi.map.gznu[PKe[6%%%r iq-ku_f.map.gznu[PKe[7/a latam-deadtilde.map.gznu[PKe[}ƒ hu-101_qwertz_dot_nodead.map.gznu[PKe[,bRp fr-afnor.map.gznu[PKe[b9OO n fi-mac.map.gznu[PKe[k8܆ es-dvorak.map.gznu[PKe[/XX fo-nodeadkeys.map.gznu[PKe[2|L`\ cm-french.map.gznu[PKe[# latam-colemak.map.gznu[PKe[9599q de-deadtilde.map.gznu[PKe[\0:: ml-us-intl.map.gznu[PKe[}RЀ h it-fur.map.gznu[PKe[//%0 fr-oss_sundeadkeys.map.gznu[PKe[3@ cm-azerty.map.gznu[PKe[ wQ ph.map.gznu[PKe[P' t` nl-mac.map.gznu[PKe[CM=ullap de-deadgraveacute.map.gznu[PKe[AA  at.map.gznu[PKe[z=!! us-dvorak-intl.map.gznu[PKe[doee sy-ku_alt.map.gznu[PKe[=į  si.map.gznu[PKe[<5  jp-OADG109A.map.gznu[PKe[aaXX gb-dvorakukp.map.gznu[PKe[3{{S ca-fr-legacy.map.gznu[PKe[ᤏ be-sundeadkeys.map.gznu[PKe[Tqx77  no-smi.map.gznu[PKe[rcc Y ie.map.gznu[PKe[w 'hu-qwerty.map.gznu[PKe[-I  8ch.map.gznu[PKe[Git-nodeadkeys.map.gznu[PKe[]m;Wtr-intl.map.gznu[PKe[flt-lekpa.map.gznu[PKe[1 ucn.map.gznu[PKe[+ph-capewell-qwerf2k6.map.gznu[PKe[b|!11 0tm-alt.map.gznu[PKe[{d d ge-ru.map.gznu[PKe[zdk>latam-colemak-gaming.map.gznu[PKe[gS)aHH 6lk-us.map.gznu[PKe[9eXXgb-intl.map.gznu[PKe[N[[Pnl-sundeadkeys.map.gznu[PKe[1kDD dz.map.gznu[PKe[*Eǔmpl-dvorak_quotes.map.gznu[PKe[F,LO gb-extd.map.gznu[PKe[; al.map.gznu[PKe[H//V,ma-french.map.gznu[PKe[0MMz<ca-multix.map.gznu[PKe[YZiq-ku_ara.map.gznu[PKe[X]]gb-mac_intl.map.gznu[PKe[| Rtr-f.map.gznu[PKe[$ de-neo.map.gznu[PKe[>Lzzpt-mac_nodeadkeys.map.gznu[PKe[UW,!Zhu-101_qwerty_comma_nodead.map.gznu[PKe[oi i Uaz.map.gznu[PKe[&+ hr-us.map.gznu[PKe[""``` 4 be-oss.map.gznu[PKe[m;9FFgb-dvorak.map.gznu[PKe[Hbb W.no.map.gznu[PKe[I/   =lv.map.gznu[PKe[|| KMee.map.gznu[PKe[LAA ]de.map.gznu[PKe[%AAzlat-sundeadkeys.map.gznu[PKe[͖R|ie-CloGaelach.map.gznu[PKe[Mhgb-colemak.map.gznu[PKe[j it-ibm.map.gznu[PKe[Z))3ie-UnicodeExpert.map.gznu[PKe[!Dp%%Vtr-ku_f.map.gznu[PKe[*( be.map.gznu[PKe[WD` ca-eng.map.gznu[PKe[ge-ergonomic.map.gznu[PKe[>%%%ir-ku_f.map.gznu[PKe[b}9!E%hu-102_qwerty_comma_nodead.map.gznu[PKe[8f (5ng.map.gznu[PKe[b[Chr-unicode.map.gznu[PKe[=QSbe-iso-alternate.map.gznu[PKe[* Ucgh-avn.map.gznu[PKe[&| qit-us.map.gznu[PKe[Ķځhu-standard.map.gznu[PKe[>O_ڑsi-alternatequotes.map.gznu[PKe[5ϡpl-dvorak_altquotes.map.gznu[PKe[Olatam-sundeadkeys.map.gznu[PKe[اpt-nativo.map.gznu[PKe[ 9Eus-colemak.map.gznu[PKe[4Y  Xcm-qwerty.map.gznu[PKe[)de-dsb_qwertz.map.gznu[PKe[TXf[[ nl.map.gznu[PKe[IWWSbr-nativo.map.gznu[PKe[ ^$me-latinyz.map.gznu[PKe[Y5fi-classic.map.gznu[PKe[k 4Lge.map.gznu[PKe[TS==%Zgh-generic.map.gznu[PKe[/'vddhcn-altgr-pinyin.map.gznu[PKe[;,RR Mwmd-gag.map.gznu[PKe[r /@܅rs-latinunicodeyz.map.gznu[PKe[Gt% ٕmm.map.gznu[PKe[ߵ̤sk-qwerty.map.gznu[PKe[y-~hr-alternatequotes.map.gznu[PKe[`))lv-apostrophe.map.gznu[PKe[i7cQhu-102_qwerty_dot_nodead.map.gznu[PKe[L 0lt-std.map.gznu[PKe[rK!!dk-winkeys.map.gznu[PKe[*]ٛpt-nativo-us.map.gznu[PKe[h9 pl-csb.map.gznu[PKe[>6r #gb.map.gznu[PKe[Ȝ 3tw.map.gznu[PKe[d Dpl-dvp.map.gznu[PKe[bSrs-latinunicode.map.gznu[PKe[waɑchu-102_qwertz_dot_nodead.map.gznu[PKe[Ysir-ku_ara.map.gznu[PKe[w hu-101_qwerty_comma_dead.map.gznu[PKe[<1AAus-dvorak-classic.map.gznu[PKe[$?S lt.map.gznu[PKe[[}}yng-hausa.map.gznu[PKe[EBa5ph-capewell-dvorak.map.gznu[PKe[3}?es-nodeadkeys.map.gznu[PKe[F*--lv-tilde.map.gznu[PKe[Drqfr-bepo_afnor.map.gznu[PKe[yVVee-nodeadkeys.map.gznu[PKe[ICDD iq-ku.map.gznu[PKe[ DA(ch-de_sundeadkeys.map.gznu[PKe[SNN.tr-sundeadkeys.map.gznu[PKe[De%% =dk-mac.map.gznu[PKe[ Mjp-dvorak.map.gznu[PKe[8?[pl-legacy.map.gznu[PKe[eVKkhr-unicodeus.map.gznu[PKe[dC{gh-akan.map.gznu[PKe[3^+ es.map.gznu[PKe[J chu-101_qwertz_dot_dead.map.gznu[PKe[  us-dvp.map.gznu[PKe[  hu.map.gznu[PKe[~ lt-us.map.gznu[PKe[Cff tr-alt.map.gznu[PKe[1TTqus-dvorak-l.map.gznu[PKe[{Ō6hu-101_qwerty_dot_dead.map.gznu[PKe[B' (ro-std.map.gznu[PKe[5' aa @pt-mac.map.gznu[PKe[\%/oo%tr-crh_alt.map.gznu[PKe[+NpFF5br-nativo-epo.map.gznu[PKe[8Ecz-qwerty-mac.map.gznu[PKe[&kk8Ufi-nodeadkeys.map.gznu[PKe[ѫPjsk-bksl.map.gznu[PKe[hEJJ{us-dvorak-r.map.gznu[PKe[DvUoro-winkeys.map.gznu[PKe[WG4cm-mmuock.map.gznu[PKe[+]]Apt-mac_sundeadkeys.map.gznu[PKe[SW$$fr-bepo_latin9.map.gznu[PKe[- Pvn-fr.map.gznu[PKe[\Z \ba.map.gznu[PKe[ hqfr-dvorak.map.gznu[PKe[5Қ{se-dvorak.map.gznu[PKe[66Wus-workman-intl.map.gznu[PKe[Qvus-dvorak-alt-intl.map.gznu[PKe[JIpNN&latam-dvorak.map.gznu[PKe[K\6rs-latin.map.gznu[PKe[,>>wFml-fr-oss.map.gznu[PKe[ 22 Vgh-ewe.map.gznu[PKe[k`3** defr-oci.map.gznu[PKe[, ufr-bre.map.gznu[PKe[8f gh-ga.map.gznu[PKe[9 ;vn-us.map.gznu[PKe[V8 8jp-kana86.map.gznu[PKe[sAAsde-sundeadkeys.map.gznu[PKe[// fr-oss.map.gznu[PKe[(٤epl-qwertz.map.gznu[PK(f[Ѓkkeycodes/sgi_vndr/irisnu[PK(f[O  keycodes/sgi_vndr/indigonu[PK(f[4*Ucckeycodes/sgi_vndr/indynu[PK(f[)% keycodes/sunnu[PK(f[DDkeycodes/emptynu[PK(f[|'//?keycodes/atarittnu[PK(f[n8pkeycodes/fujitsunu[PK(f[ 4.""q&keycodes/evdevnu[PK(f[Ą Ikeycodes/xfree98nu[PK(f[&7I I XVkeycodes/amiganu[PK(f[ckeycodes/READMEnu[PK(f[ekeycodes/aliasesnu[PK(f[cvJ J ~nkeycodes/ibmnu[PK(f[Σkk {keycodes/hpnu[PK(f[vykeycodes/jollanu[PK(f[TU׬ keycodes/olpcnu[PK(f[=e"!!:keycodes/xfree86nu[PK(f[Tt 4keycodes/sonynu[PK(f[TZrrkeycodes/macintoshnu[PK(f[}_keycodes/digital_vndr/lknu[PK(f[ \keycodes/digital_vndr/pcnu[PK(f[z)   types/level5nu[PK(f[56k a#types/defaultnu[PK(f[+vP$types/mousekeysnu[PK(f[]G.. e%types/nokianu[PK(f[\d &types/numpadnu[PK(f[薪 .types/capsnu[PK(f[0 @types/completenu[PK(f[>{. Atypes/READMEnu[PK(f[6__ Btypes/basicnu[PK(f[OJ== NEtypes/extranu[PK(f[2쒭 Ztypes/iso9995nu[PK(f[B} \types/cancelnu[PK(f[J  ]types/pcnu[PK(f[: {44 $ksymbols/atnu[PK(f[=Ϛmsymbols/fujitsu_vndr/jpnu[PK(f[''}symbols/fujitsu_vndr/usnu[PK(f[ .c c Xsymbols/chnu[PK(f[.. symbols/groupnu[PK(f[T22 symbols/ptnu[PK(f[s Osymbols/nlnu[PK(f[Ee? q,symbols/hrnu[PK(f[ -\\h6symbols/keypadnu[PK(f[( tsymbols/npnu[PK(f[ٞGsymbols/sharp_vndr/ws011shnu[PK(f[lc99symbols/sharp_vndr/ws020shnu[PK(f[GF-symbols/sharp_vndr/ws007shnu[PK(f[dsymbols/sharp_vndr/ws003shnu[PK(f[Jsymbols/sharp_vndr/sl-c3x00nu[PK(f[܎   symbols/srvr_ctrlnu[PK(f[4 e e |symbols/tznu[PK(f[h  symbols/lknu[PK(f[P r symbols/eponu[PK(f[D**}+symbols/sgi_vndr/jpnu[PK(f[lZZ 3symbols/inetnu[PK(f[_6͐ /symbols/krnu[PK(f[tO_O_ J4symbols/finu[PK(f[݊y.. ӓsymbols/nonu[PK(f[*00  symbols/irnu[PK(f[%Dee symbols/emptynu[PK(f[^F{symbols/macintosh_vndr/chnu[PK(f[43qZ  symbols/macintosh_vndr/ptnu[PK(f[އ% symbols/macintosh_vndr/nlnu[PK(f[''JJsymbols/macintosh_vndr/finu[PK(f[3fCFFsymbols/macintosh_vndr/nonu[PK(f['c"symbols/macintosh_vndr/applenu[PK(f[}dX_,symbols/macintosh_vndr/frnu[PK(f[P fBsymbols/macintosh_vndr/dknu[PK(f[Њ̏cPsymbols/macintosh_vndr/denu[PK(f[J0--_symbols/macintosh_vndr/gbnu[PK(f[%ٷ%%bsymbols/macintosh_vndr/senu[PK(f[dv jsymbols/macintosh_vndr/itnu[PK(f[5ؖusymbols/macintosh_vndr/jpnu[PK(f[AqTyyysymbols/macintosh_vndr/latamnu[PK(f[?6s||symbols/macintosh_vndr/usnu[PK(f[KqRR[symbols/macintosh_vndr/isnu[PK(f[. symbols/khnu[PK(f[иsymbols/level5nu[PK(f[y◲ vsymbols/mnnu[PK(f[*ó bsymbols/aplnu[PK(f[pEJEJ Psymbols/lvnu[PK(f[;5 5 symbols/gnnu[PK(f[./ >symbols/hp_vndr/usnu[PK(f[YY ysymbols/ctrlnu[PK(f[c  symbols/eunu[PK(f[~~ "symbols/ngnu[PK(f[?OO :symbols/mmnu[PK(f[gg BRsymbols/sinu[PK(f[m +5O5O Tsymbols/ienu[PK(f[޹ Rsymbols/tgnu[PK(f[)%'@@ dsymbols/kznu[PK(f[R(( symbols/phnu[PK(f[7  symbols/aznu[PK(f[cTT / symbols/canu[PK(f[i}}  symbols/kenu[PK(f[TL L  symbols/sony_vndr/usnu[PK(f[oX  H symbols/mlnu[PK(f[,Z2  symbols/twnu[PK(f[lB  symbols/runu[PK(f[AFF v!symbols/bgnu[PK(f[W% m m!symbols/nokia_vndr/su-8wnu[PK(f[ h{=;=;l"symbols/nokia_vndr/rx-44nu[PK(f[s|"symbols/nokia_vndr/rx-51nu[PK(f[ b#symbols/frnu[PK(f[ * D%symbols/snnu[PK(f[`ͪ## zM%symbols/mtnu[PK(f[Ӝ^q%symbols/level3nu[PK(f[]E 8%symbols/shiftnu[PK(f[TPP 5%symbols/pknu[PK(f[$K $%symbols/bwnu[PK(f[CF   3%symbols/bynu[PK(f[+j3(( x%symbols/esnu[PK(f[Y; &symbols/lanu[PK(f[(( /&symbols/tjnu[PK(f[s 44 X&symbols/idnu[PK(f[fiF^88 s&symbols/grnu[PK(f[[(ZNZN ?&symbols/hunu[PK(f[* &symbols/synu[PK(f[+ 'symbols/mdnu[PK(f[XV33 )'symbols/tmnu[PK(f[מ U/'symbols/altwinnu[PK(f[ 1='symbols/dknu[PK(f[a600 FG'symbols/manu[PK(f[|WW ^x'symbols/denu[PK(f[ (BAA (symbols/brnu[PK(f[rr z)symbols/innu[PK(f[b D*symbols/alnu[PK(f[ *symbols/cnnu[PK(f[!#f  '+symbols/mknu[PK(f[N 3+symbols/aunu[PK(f[O 4+symbols/cdnu[PK(f[-D  E+symbols/kgnu[PK(f[`;## ]+symbols/gbnu[PK(f[qcc +symbols/plnu[PK(f[X66  +symbols/nbspnu[PK(f[BB {+symbols/senu[PK(f[а#t9,symbols/composenu[PK(f[SyuuB,symbols/eurosignnu[PK(f[*uEE gE,symbols/itnu[PK(f[nv(( f,symbols/thnu[PK(f[<< <,symbols/rsnu[PK(f[h3> > x,symbols/etnu[PK(f[xq؉,symbols/terminatenu[PK(f[崈22 ,symbols/genu[PK(f[N!!! 0-symbols/jpnu[PK(f[1Y[Y[ 0R-symbols/afnu[PK(f[RR++ í-symbols/ronu[PK(f[?$>> -symbols/uanu[PK(f[Z .symbols/fonu[PK(f[$| !.symbols/btnu[PK(f[ >3.symbols/bdnu[PK(f[ň;D.symbols/capslocknu[PK(f[ҖK77 KL.symbols/latamnu[PK(f[՛ .symbols/ghnu[PK(f[+a .symbols/olpcnu[PK(f[_]}11 ۡ.symbols/benu[PK(f[kl(l(  .symbols/amnu[PK(f[#RR .symbols/aranu[PK(f['< @/symbols/menu[PK(f[Mk:?? M/symbols/ilnu[PK(f[!/symbols/rupeesignnu[PK(f[mJ** /symbols/dznu[PK(f[ 33 /symbols/eenu[PK(f[cgg  0symbols/sknu[PK(f[*TOO 0symbols/mynu[PK(f[EF F 30symbols/kpdlnu[PK(f[|l== @0symbols/zanu[PK(f[M&yHyH I0symbols/usnu[PK(f[]Q5BB Ñ1symbols/ltnu[PK(f[u 1symbols/uznu[PK(f[E?r1symbols/parensnu[PK(f[+C__51symbols/jolla_vndr/sbjnu[PK(f[ 1symbols/banu[PK(f[`6 1symbols/iqnu[PK(f[~Z x1symbols/brainu[PK(f[m@ @ 1symbols/mvnu[PK(f[ޤ-9-9  2symbols/latinnu[PK(f[XoRR gE2symbols/maonu[PK(f[G2symbols/nec_vndr/jpnu[PK(f[')@@_2symbols/xfree68_vndr/atarittnu[PK(f[w;;r2symbols/xfree68_vndr/amiganu[PK(f[~w7979 2symbols/isnu[PK(f[BB u2symbols/trnu[PK(f[uqc[ 02symbols/typonu[PK(f[>>  3symbols/transnu[PK(f[rso{^{^ N3symbols/cznu[PK(f[nOU U Ŭ3symbols/pcnu[PK(f[#T3symbols/sun_vndr/chnu[PK(f[_Sz3symbols/sun_vndr/ptnu[PK(f[ i3symbols/sun_vndr/nlnu[PK(f[ji i +3symbols/sun_vndr/krnu[PK(f[X$3symbols/sun_vndr/finu[PK(f[^ 4symbols/sun_vndr/nonu[PK(f[Γ=CC4symbols/sun_vndr/lvnu[PK(f[sH384symbols/sun_vndr/canu[PK(f[1L4symbols/sun_vndr/solarisnu[PK(f[GI]4symbols/sun_vndr/twnu[PK(f[?w$f4symbols/sun_vndr/runu[PK(f[+&|>>R4symbols/sun_vndr/frnu[PK(f[#˿Ӕ4symbols/sun_vndr/esnu[PK(f[d:ե4symbols/sun_vndr/grnu[PK(f[4symbols/sun_vndr/dknu[PK(f[࠽j4symbols/sun_vndr/denu[PK(f[4symbols/sun_vndr/brnu[PK(f[vTf 4symbols/sun_vndr/gbnu[PK(f[uMgg4symbols/sun_vndr/plnu[PK(f[JTu5symbols/sun_vndr/senu[PK(f[9AA 5symbols/sun_vndr/itnu[PK(f[ C15symbols/sun_vndr/jpnu[PK(f[\\TK5symbols/sun_vndr/ronu[PK(f[E@c5symbols/sun_vndr/uanu[PK(f[|{y5symbols/sun_vndr/benu[PK(f[zƊuuŌ5symbols/sun_vndr/aranu[PK(f[U~5symbols/sun_vndr/eenu[PK(f[ۘJJ|5symbols/sun_vndr/sknu[PK(f[AǤ 5symbols/sun_vndr/usnu[PK(f[II5symbols/sun_vndr/ltnu[PK(f[g`tt5symbols/sun_vndr/trnu[PK(f[=>JJ: 6symbols/sun_vndr/cznu[PK(f[ 6symbols/cmnu[PK(f[)9a  6symbols/digital_vndr/lknu[PK(f[S2VVS6symbols/digital_vndr/vtnu[PK(f[MO 6symbols/digital_vndr/usnu[PK(f[c77N6symbols/digital_vndr/pcnu[PK(f[ 6symbols/vnnu[PK(f[Xhdd7geometry/keytronicnu[PK(f[vwn((?17geometry/sgi_vndr/indigonu[PK(f[S::(Z7geometry/sgi_vndr/indynu[PK(f[';;7geometry/sgi_vndr/O2nu[PK(f[b˫oMoM  7geometry/sunnu[PK(f[I8geometry/everexnu[PK(f[8988 -8geometry/necnu[PK(f[\?OO j>8geometry/dellnu[PK(f[EV|&& 8geometry/tecknu[PK(f[ B8geometry/atarittnu[PK(f[&%ee8geometry/fujitsunu[PK(f[Nn$?1?1m8geometry/microsoftnu[PK(f[a}RR9geometry/typematrixnu[PK(f[Im9geometry/nokianu[PK(f[ZBTT#s9geometry/amiganu[PK(f[F9geometry/chiconynu[PK(f[aa9geometry/READMEnu[PK(f[H99geometry/sanwanu[PK(f[dQQ 9geometry/hhknu[PK(f[SCC ~9geometry/hpnu[PK(f[PQd:geometry/northgatenu[PK(f[mZ Z u :geometry/steelseriesnu[PK(f[Y+A:geometry/kinesisnu[PK(f[} g/g/Q:geometry/thinkpadnu[PK(f[eEyaa :geometry/sonynu[PK(f[a__]:geometry/macintoshnu[PK(f[~ 4;geometry/winbooknu[PK(f[rUpp  @;geometry/pcnu[PK(f[dԜPP;geometry/digital_vndr/lknu[PK(f[ӓF/<geometry/digital_vndr/unixnu[PK(f[&g6p*p*K<geometry/digital_vndr/pcnu[PK(f[z v<compat/japannu[PK(f[qett z<compat/level5nu[PK(f[{ e<compat/lednumnu[PK(f[H t<compat/miscnu[PK(f[+)S<compat/mousekeysnu[PK(f[  <compat/capsnu[PK(f[Uš<compat/completenu[PK(f[ <compat/READMEnu[PK(f[GCթ<compat/ledcapsnu[PK(f[Smm <compat/olpcnu[PK(f[B&L<compat/ledscrollnu[PK(f[ZSaa<compat/accessxnu[PK(f[yt㸱 U<compat/xtestnu[PK(f[+ B<compat/basicnu[PK(f[R Y22<compat/xfree86nu[PK(f[Full <compat/iso9995nu[PK(f[ np <compat/pc98nu[PK(f[9STT <compat/pcnu[PK(f[5>hH<rules/evdev.extras.xmlnu[PK(f[FP̉̉m=rules/base.xmlnu[PK(f[FP̉̉@rules/evdev.xmlnu[PK(f[:[)00 Drules/xkb.itsnu[PK(f[5>hDrules/base.extras.xmlnu[PK(f[Qi UErules/basenu[PK(f[?.ff Erules/xkb.dtdnu[PK(f[Y㰩 NErules/evdevnu[PK(f[L}N9Frules/evdev.lstnu[PK(f[͐7 ^7Grules/xfree98nu[PK(f[L}N:Grules/base.lstnu[PK(f[8W[[ Grules/READMEnu[PKfkG