The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
[]
ExtraScanCodesWin=
COMPANYNAME=Steffen Brüntjen, Ilya Zakharevich
+LAYOUTNAME=US-Intl Shift-Space -> Russian phonetic, k.ilyaz.org/v0
+LAYOUTNAME=Russian phonetic Shift-Space -> US-Intl, k.ilyaz.org/v0
COPYR_YEARS=2011,2012
@LOCALE_NAME=en-US,ru-RU
@LOCALE_ID=0409,0419
@DLLNAME=la-ru-iz,ru-la-iz
SORT_ORDER_ID_=0000
@LANGUAGE_NAME=English (United States),Russian (Russia)
#
[Substitutions]
# Will be used when putting a second diacritic: (as <subst-Vietnamese>)
@Vietnamese=åă,àâ,èê,òô,øơ,ùư
#
[DEADKEYS]
#
# Can be omitted now
#
0020=SPACE
#
[visual -> KBD/B/C/D]
#
visual_rowcount=4
@visual_per_row_counts=3,2,4,4
visual_prefixes=  *
in_key_separator=/
prefix_repeat=3
#					Greek-AltGr and CopyRight-AltGr each has only one element: Ω and ©
@layer_names=Greek,Math,Greek-AltGr
@layer_names=Green,Green-AltGr
@layer_names=Latin,Latin-AltGr,CopyRight,CopyRight-AltGr
@layer_names=Russian,Russian-AltGr,Russian-II,Russian-II-AltGr
#
# Perl 5.8.8 does not recognize  ҇ as a combining character...
# @AltGrCharSubstitutions=ijü,|∣,!⊥,1⊤,¡≠,¹⟂,2∫,@∮,ª∭,²‖,²∥,3⊳,#⊲,º⊢,³⊣,4□,$◇,€△,¥▽,ó∘,5•,%⋈,£⨯,6∨,7∪,^∧,&∩,*×,(∈,)∋
# □◇/△▽
	--	--/--≠	--	--	--	--	--	--		--/--∏		--		--		⁻/−		⁼⁺/≈∑
	--	⊤⊥/≠⟂	∫∮/∭∥	⊳⊲/⊢⊣	□◇/△▽	•⋈/⨯	∨∧	∪∩		--×		--∈		--∋		--		--
***	`~/ˋ˜	1!/¡¹/¼	2@/ª²/½	3#/º³/¾	4$/€¥/⅓	5%/£¢/⅔	6^/ˆˇ	7&/°¯		8*/„‚		9(/“‘		0)/”’		-_/©№//©	=+/×÷/↔⇔
	ю//ѫ/ѭ	1!/≈≠	2@/²§	3ъ/--№	4Ъ/--£	5ё/--€	6Ё/-- ҃	7&/ ҆ ҇// ꙽ꙿ	8*/∞×/-- ҅	9(/≤←//ҁ	0)/≥→// ꙼꙾	-_/©–		ч//ҷ/ӵ
#
	ω	ψ	ε	ρ/√	τ	υ	ω	η/∞	ο	π/∂	⁽₍	⁾₎	--
	--	--	--	--	--	--	--	--	--	--	--	--	--
***	q/æ	w/å	e/ë	r/ý/®	t/þ/™	y/ÿ	u/ü/↖⇖	i/ï/↗⇗	o/ö	p/œ/℗	[{/«‹	]}/»›	\|/¬¦
	я/ѣ/ѧ/ѩ	в/ѵ/ꙍ/ԝ	е/ё/ө/ӫ	р/ ҄®/ѽ	т/ћ/ҭ/ԏ	ы/і/ү/ұ	у/ў/ӯ/ӱ	и/ѷ/ӣ/ӥ	о/ѡ/ѻ/ѿ	п/ѱ/ԥԤ/ҧ	ш//ԧԦ/ѐ	щ//ꚇ/ѝ	э//ѥ/ӧ
#
	α/∟	σ/∩	δ/∕	φ	γ	θ	ι/∫	κ	λ	₋		₌₊
	--	--	--	--	--	--	--	--	--	--		--
***	a/ä	s/ߧ/℠	d/ð	f/è	g/é	h/ù/←⇐	j/ú/↓⇓	k/ij/↑⇑	l/ø/→⇒	;:/¨·		'"/´†
	а/ә/ꙗ/ӓ	с/ѕ/ҫ/ԍ	д/ђ/ӟ/ԁ	ф/ѳ/ғ/ӻ	г/ґ/ӷ/ҕ	х/һ/ҳ/ӽ	й/ї/ҋ/ӑ	к/қ/ҡ/ҟ	л/љ/ӆ/ԓ	;:/¨—/ӹ/ӳ	'"/ ́´/ ̀ ̀/ ́ ́
#
	ζ	ξ	χ	β	β	ν/ⁿ	μ//Ω		--/--≤		--/--≥		--
	--	--	--	--	--	--	--		--		--		--
***	z/à	x/á	c/ç/©	v/ì	b/í	n/ñ/↙⇙	m/Ω±/↘⇘		,</ò		.>/ó		/?/¿…
	з/є/ҙ/ѯ	ь/ъ/ӛ/ӕ	ц/џ/ҵ/ќ	ж/ӂ/җ/ӝ	б/ѓ/ѹ/ꙋ	н/њ/ң/ҥ	м/Ω±/ӎ/ꙟ	,</«„/⁘⁙	.>/»“/·։/჻⁖	/?/ј
#
	--	--
	--	--
***	\|/¶❧	./,
	\|/ӏӀ	./,
#
# Earlier versions had:	б/ѹ (now г overflows down as ...);	7&/ ҅ ҆	/?/§”	2@/²³
# ԥԤ  ԧԦ must be specified both lc/uc since perl 5.10 does not upcases them automatically (v6.0)
# On II-maps: forms with ¨, iotified, latinized forms, forms with more developped appendages, or appendages
# more to the right, or higher, are on AltGr prefix.  (Same for almost-unrelated letters placed
# opportunistically.  (Many are inverted w.r.t. Unicode versions!  Later reason in the list wins.)
#
# ԃ 	Ꚉ 	ӗ
# ԅ 	Ԑ 	ӡ
# ԇ 	ӄ
# ҝ 	Ԟ 	Ԛ 	Ԡ
# ԉ 	Ԕ 	ӊ 	ӈ
# Ԣ 	ԋ 	ҩ
# ҏ
# 
# Ӿ 	Ԧ 	ӌ
# ҹ 	ҽ 	ҿ 	ҍ 	ӭ
# Ԙ 	Ӏ
#
#		Stressed: ѐ ѝ
#
#Non-obvious: '"/́´/ӹ/ӳ	я/ѣ/ѧ/ѩ	б/ѓ/ѹ/ѽ	д/ђ/ӟ/ԁ  й/ї/ҋ/ӑ  ь/ъ/ӛ/ӕ   ф/ѳ/ғ/Ӻ   м/Ω±/ӎ/ꙟ   ш//ԧ/ѐ	щ//ꚇ/ѝ   з/є/ҙ/ѯ  ц/џ/ҵ/ќ
#		р/ ҄®/ꙋ	,</«„/⁘⁙	.>/»“/·։/჻⁖	/?/ј/;	+ 6789
# Coppa is on AltGr since 1/9 fraction pushes it there...
#
[layer_recipes]
CopyRight_0=		Id(CopyRight)		MutateDupsOK[0327](SelectRX[[eE]](Latin))	ByPairs[$¤ ,¸ qĸ Q⌨ ËƏ ëə "〃 -∓](Latin)
CopyRight_1=		Id(CopyRight-AltGr)	MutateDupsOK[00a8](SelectRX[[t]](Latin))	ByPairs[EƏ eə](Latin)
#
Math_PlusPlus=	Id(Math)		ByPairs['′ "″]
#
# 0301 over Greek letters=tonos;   0308=dialytika	'
Greek_Hairy_0=	Id(Greek)	MutateDupsOK[<super>](SelectRX[[0-9]])	MutateDupsOK[<sub>](SelectRX[[0-9]](FlipShift))	MutateDupsOK[0308](ByPairs[.υ ,ι <Ι >Υ](Latin))	ByPairs[/₯ ?; `΄ _ͺ](Latin)
Greek_Hairy_1=	Id(Greek-AltGr)	MutateDupsOK[0308+0301](ByPairs[.υ ,ι <Ι >Υ](Latin))	MutateDupsOK[0301|<any-calculated-symbol>|<any-calculated-final>|<any-lunate-symbol>|<any-latinize>|<any-quasisynon>,<any-amplify>](Greek)	ByPairs[Mµ WϜ wϝ TϚ tϛ Kϗ XϠ xϡ CϘ cϙ ZϞ zϟ ;· R∐ l∧ L⋀ n∨ N⋁ F∅](Latin)	ByPairs[1‐ 2– 3—](Latin) ByPairs[4― 0‒ |00ad !‑](Latin)	ShiftFromTo[5,˥](SelectRX[[5-9]](Latin))	ShiftFromTo[5,꜒](SelectRX[[5-9]](FlipShift(Latin))) ShiftFromTo[0,꜍](SelectRX[[0-4]](FlipShift(Latin)))
#
BusinessA_0=	Imported[business,00a4](Latin)
BusinessA_1=	Imported[business,00a3](Latin)
BusinessAdd_0=		ByPairs[qĸ Q⌨ "〃 -∓](Latin)			DefinedTo[¤](SelectRX[[^\da-zA-Z]](Latin))
BusinessAdd_1=		ByPairs[EƏ eə](Latin)	FlipShift(CopyRight)	DefinedTo[¤](SelectRX[[^\da-zA-Z]](Latin))
#
Business_0=	Id(BusinessA_0)	Face(VLine)		Id(BusinessAdd_0)
Business_1=	Id(BusinessA_1)	FlipLayers(VLine)	Id(BusinessAdd_1)
#
[face_recipes]
#
VLine=		Mutate[20d2,20d3,<any-addvline>,20e6,<any-vertical>,<any-stem>|<any-calculated-operator>,0338+<any-manual>,20d2+<any-manual>,20d3+<any-manual>|<any-vline>+<any-vline>,<any-addleft>+<any-addleft>,<any-addright>+<any-addright>](Face(US))
Business=	Layers(BusinessA_0+BusinessA_1)	Face(VLine)	Layers(BusinessAdd_0+BusinessAdd_1)
#
[faces]
# Create DeadKey maps basing on (massaged!) visual descriptions:
#
DeadKey_Map00a9=	Layers(CopyRight_0+CopyRight_1)
#
DeadKey_Map00b1_0=	Id(Math_PlusPlus)
DeadKey_Map00b1_1=				SpaceSelf2Id
#
DeadKey_Map03a9=	Layers(Greek_Hairy_0+Greek_Hairy_1)
#
[faces/US]
@layers=Latin,Latin-AltGr
LinkFace=CyrillicPhonetic
#
MetaData_Index=0
faceDeadKeys= 	´  ˋ  ˜  ˆ  ˇ  °  ¯  ¨  Ω  ±  ©  ¥
ExportDeadKeys=	´  ˋ  ˜  ˆ  ˇ  °  ¯  ¨
#
@faceDeadKeys2= 03a6.03a6
#			, 0192.02c7,	0192.00b4
#		=> 0483	=> 0483		=> 03a6
#
#						002c = ,
@char2key_prefer_first=\,|,.,002c
#
# Will be only considered when putting a diacritic on AltGr-key (~∼, *∗, .⋅ ) perp=⟂' ¹⟂ is good only if ¹ is on 1! key…
#@AltGrCharSubstitutions=ijü,|∣,!⊥,1⊤,¡≠,¹⟂,2∫,@∮,ª∭,²‖,²∥,3⊳,#⊲,º⊢,³⊣,4□,$◇,€△,¥▽,ó∘,5•,%⋈,£⨯,6∨,7∪,^∧,&∩,*×,(∈,)∋
@AltGrCharSubstitutions=ijü,|∣,²‖,ó∘
# ¡≀ - better on bluekeys; #≠ - conflicts too much
@AltGrCharSubstitutionLayers=Green,Green-AltGr
#
#  This gives more collisions:
#@AltGrCharSubstitutions=ijü,^∧,&∩,*×,#≠,6∨,7∪,|∣,!⊥,1⊤,¡≀,¹⟂,2∫,@∮,ª∭,²‖,²∥,3⊳,#⊲,º△,³▽,4□,$◇,€⊢,¥⊣
#
# Tibetan range: take only tibetan diacritics, so our code adding diacritics won't be confused by prefices... ???
Auto_Diacritic_Start=0f00
Flip_AltGr_Key=00a0
@Import_Prefix_Keys=	0301:CyrillicPhonetic,03a6,	0483:CyrillicPhonetic,0483
#
DeadKey_InvMap0000=	ByPairs[0192.202f]
#                   Chaining makes sense if Flip_AltGr_Key is on AltGr key (repeating will reach inverted faces of:)
@chainAltGr=0192,03a6,0483
#
Diacritic_if_undef=			SpaceSelf2Id
DeadChar_DefaultTranslation=		♪
DeadChar_32bitTranslation=		♫
#
# 017F,0192,03a6 - good candidates to never be generated on the base face.  But 017F takes accents (use it for dead2 only)
# 00b6=pilcrow 007c=| 002f=/ 00a0=NBSPC --> open box, narrow and hair spaces to figure and narrow nbr-spaces (was: 03a6.2007 00a0.202F)
DeadKey_Map0192=	ByPairs[0020.2422 0192.2423 03a6.2420]	LinkFace
# Layers(Russian+Russian-AltGr)
#							was: 0020.2009
DeadKey_AddMap03a6=	ByPairs[0020.00a0 0192.2007 03a6.0483]
#				Default map (not used now???):
DeadKey_Map=		Mutate	Mutate2Self
#
# diaeresis 00a8: combine with cedilla 0327(00b8) and ogonek 0328, comma below 0326 (precombined only on SsTt)
# ogonek is reachable on AltGr layer...)
# cedilla: only E H unreachable on front layer  except for Ȩȩ Ee - and Hh would be unreachable with AltGr too because of Ǜ - which is typable as ¨Ù)
# (and Ȩȩ is not used in "known" languages - http://fr.wikipedia.org/wiki/E_caudata - alternative writing of æ
#   - moved to Copyright face)
# ẗ gets in the way of Ț and Ţ!		(Used in transliteration of Arabic and UPA; moved to copyright face - on AltGr-t...)
# Ǜ would get in the way of Ḩ (used WHERE?) - available elsewhere - but there it is also penalized... ; ,<any-symbol-diaeresis> does not add anything...   visigothic conflicts with greekized ɑⱭ
DeadKey_Map00a8=	Mutate[\\ẗ,\\Ǜ[h],\\⋅[;],00a8|0309+<subst-Vietnamese>,<reveal-greenkey>|<any-diaeresized>,0328,0327,0326|<any-comma>,<any-calculated-operator>|<any-overlay>+<any-addvline>,<any-overlay>+<any-addhline>,<any-overlay>+<any-addline>,<any-amplify>+<any-round>,<any-round>+<any-round>,<any-rotunda>,<any-NONONO-visigothic>,<any-doubleletter>]	MutateDupsOK[<any-latinize>](Greek)	MutateDupsOK[<any-latinize>](FromTo[Latin,Greek](ByPairs[za ZA]))	Mutate2Self
#     <any-comma> picks up digits with comma which are above 0xffff - better make it last
#
#  Combine macron=00af and stroke (AOUaou missing stroke...)  00ad=SOFT HYPHEN; <any-stroke> should pick up 0338; 20D2 (|) and 20E5 \ do not appear in decompositions...
# ⩉ masks combining macron
#DeadKey_Map00af=	ByPairs[4― 0‒ ”ə ¦00ad !‑ ¹ǃ]	Mutate[\\⩉,00af|<pseudo-stroke>,<any-bar>,<any-stroke>,<any-dash>,<any-overbar>,<any-topbar>,<any-diagonal>,<any-strikethrough>,<any-over-equal>,<any-solidus>,<any-equal>,<any-line>,<any-quill>,<any-base>,<any-underbar>,<any-phonetized>,<any-addline>|<any-stroke>+<any-calculated>,<any-right-hook>]	ByPairs[1‐ 2– 3—]	ShiftFromTo[5,˥](SelectRX[[5-9]])	Mutate2Self
DeadKey_Map00af=	ByPairs[”ɚ ¹ǃ]	Mutate[\\⩉,00af|<pseudo-stroke>,<any-bar>,<any-stroke>,<any-dash>,<any-overbar>,<any-topbar>,<any-diagonal>,<any-strikethrough>,<any-over-equal>,<any-solidus>,<any-equal>,<any-line>,<any-quill>,<any-base>,<any-underbar>,<any-phonetized>,<any-addline>,<any-addhline>|<any-stroke>+<any-calculated>,<any-right-hook>]	ByPairs[1‐ 2– 3—]	ByPairs[4― 0‒ ”ə ¦00ad !‑ ¹ǃ]	ShiftFromTo[5,˥](SelectRX[[5-9]])	Mutate2Self
#
# ring above 00b0: combine with dotabove 307 dotbelow 323 
# (only WÊ miss dot below, AUY miss dot above: Ȧ is Livonian and phonetic; U is not precomposed; Ẉ - WHERE???) ; <any-jot> does not add anything useful now...
# Ẏ (useful WHERE???) obscures Vietnamese Ỵ, [any-dots does not add anything...]	ByPairs[‚⊗]
DeadKey_Map00b0=	Mutate[\\Ẏ⋵,00b0||0323+<subst-Vietnamese>|0307,0323|<any-round>,<any-ring>,<any-dot>,<any-dots>,<any-dotless>,<any-other-circle>,<any-circled>,<any-circled>+<reveal-greenkey>,<any-adddot>|<any-insular>|<circle>] ByPairs[%‰]	Mutate2Self
#
#  Combine breve=02d8/0306 and caron 02c7/030c (we do not description of breve-like diacretics!)
#   Note that Ü combines with caron (in 2 ways! Ǖ Ṻ) - but we prefer Ü -> Ǔ;	arc/check not visible
DeadKey_Map02c7=	Mutate[02c7|030c|<any-breve>,<any-arc>,<any-caron>,<any-loop>,<any-check>,<any-belt>,<any-flourish>|<any-quasisynon>]	ByPairs[þꝥ ÞꝤ]	Mutate2Self
#
Named_DIA_Recipe__acute_more=	<pseudo-hook>,<any-hook>+<any-calculated>,<any-fishhook>+<any-calculated>,<any-hook>,<any-fishhook>,<pseudo-tail>,<any-leg>,<any-tail>,<pseudo-curl>,<any-apostrophe>,<any-tick>,<any-sharpen>,<any-addright>,<any-rightwards>|031b
# combine acute 00b4 and hooks/tails/curls and horn 031b	(double acute=030b/2dd - protect against '' --> "; Ǘ is accessible otherwise, hides Ủ)
DeadKey_Map00b4=	Mutate[\\˝,\\Ǘ[u],00b4|030b--00b4,00b4+031b--0300|<NAMED-acute-more>]	Mutate2Self
#
# Do not need 00b4+<subst-Vietnamese> ???
#
# double grave 30f, grave 60/2cb/300; append reversed list for acute (horn=031b)	
# (tnvz have 3 type of hooks attached; the middle one [palatal] on nz are not reached ƫᶇᶌᶎ)
# Ǜ would get in the way of Vietnamese Ư (it could be available elsewhere, but there it is also penalized...)
DeadKey_Map02cb=	Mutate[\\Ǜ[u],02cb|030f--0300,02cb+031b--0301,031b--00a8|<any-unsharpen>,<any-calculated-squared>,<any-addleft>,<any-leftwards>|||00b4|030b--00b4,00b4+031b--0300|||<NAMED-acute-more>]	Mutate2Self
#
# ; <any-overbar>--<any-manual-turnaround> to symmetrize ∈∋.
Named_DIA_Recipe__hat_more=	<pseudo-smallcaps>,<any-amplify>,<any-whiten>,<any-fake-white>,<any-fake-black>,<any-calculated-!operator-!squared-!circled>,<any-loop>,<any-upturn>,<any-descender>,<any-underbar>,<any-overbar>--<any-manual-turnaround>,<any-paleo>
#	(For the purpose of double accents, grave 0300 is considered equivalent to horn 031b or hat 02c6, ring 00b0 to breve 02d8/0306, with-stroke to horn)
DeadKey_Map02dc=	Mutate[\\ı∼∽≈〚〛₡,02dc|02dc+<subst-Vietnamese>,<any-tilde>,<any-equivalent>,<any-addtilde>|||02c6|||<NAMED-hat-more>]	ByPairs[§ẞ]	Mutate2Self
# adding <any-turnaround> breaks more than it adds.   \\∽[˜] does not work, since [**] acts BEFORE propagation to AltGr...
#
# Hat:  (if both smallcaps and turned/etc defined in the same Unicode version, prefer smallcaps) [loop/upturn not visible]
DeadKey_Map02c6=	Mutate[\\ı≈˜〚〛₡,02c6|<NAMED-hat-more>]	Mutate2Self
#
DeadKey_Map00a5=	Face(Business)
#
[faces/VK]
#
@SPACE=,0020,0192@,03a6@,00a0@
#@TAB=,0009,0009,0483@,0484@
#
# Dotted circle, black circle, white circle
#@APPS=,-1,25CC@,25CF@,25EF@
#
# Non-breakable translations (non-ideal 2007), 202F
#
[faces/CyrillicPhonetic]
#
@layers=Russian,Russian-AltGr
BaseLayer=Latin
LinkFace=US
#
MetaData_Index=1
#
faceDeadKeys= 	́	҃	Ω  ±  ©  £
ExportDeadKeys=	́	҃
#
@faceDeadKeys2= 03a6.03a6,	00a0.Ё
#		=> 0483	     	=> 0483
#
# Pressing AltGr-| produces |; with the setting below, pressing SWITCH AltGr-| produces the expected ¦
# Otherwise: the keys on OEM_102 (the SECOND \|) (which produce \| when both on Cyrillic and Latin) 
# would be prefered, and SWITCH AltGr-| would be resolved as "map | to Latin", and would produce |.
#						002c = ,
@char2key_prefer_first=\,|,.,002c
@char2key_prefer_last=Ё,Ъ,ё,ъ
#
# Tibetan range: take only tibetan diacritics, so our code adding diacritics won't be confused by prefices... ???
Auto_Diacritic_Start=0f00
Flip_AltGr_Key=00a0
#
# (Ё would be mapped to Е if we do not specify it explicitly:)
DeadKey_InvMap0000=	ByPairs[0192.202f Ё.0483]
#                   Chaining makes sense if Flip_AltGr_Key is on AltGr key (repeating will reach inverted faces of:)
@chainAltGr=0301,0483,0192
@Explicit_AltGr_Invert=0192,03a6
#
Diacritic_if_undef=			SpaceSelf2Id
DeadChar_DefaultTranslation=		♪
DeadChar_32bitTranslation=		♫
#
DeadKey_Map0192=	ByPairs[0020.2422 0192.2423 03a6.2420]	LinkFace
DeadKey_InvMap0192=	ByPairs[0020.00a0 0192.2007 03a6.0483]
#
DeadKey_Map0301_0=	Id(Russian-II)		FromTo[Digits,Denominators1](LinkFace)	FromTo[Digits,Numerators1](FlipShift(Latin))
# This ByPairs is tricky: we want to translate AltGr-Shift-Space; one might think one must use the mapping of non-AltGr layer???
DeadKey_Map0301_1=	Id(Russian-II-AltGr)	FromTo[Digits,Denominators2](Latin)	FromTo[Digits,Numerators2](FromToFlipShift[Latin,Latin](Latin))	ByPairs[$⅘](Latin)
#				0483 is ҃ titlo, A66F is combining vzmet, 2df5 is combining ST, 2df8 is combining DJERV (which we do not have non-combining???)
DeadKey_Map0483=	ByPairs[0020.2009 0192.2009 03a6.2009]	Mutate[<pseudo-calculated-combining>](Face(CyrillicPhonetic))	Mutate[<pseudo-calculated-combining>](FlipShift(Layers(Russian-II+Russian-II-AltGr)))	FromTo[Digits,CyrPowersOfTen](Face(US))	ByPairs[-A66F S.2df5 D.2df8](Face(US))
DeadKey_InvMap0483=	ByPairs[0192.2009]
#
DeadKey_Map00a3=	Face(Business)
#
####[DEADKEYS/eurkey/1/1]
#####
####klc_filename=eurkey-std.klc
#####
#####    Now is not needed at all
#####
[visual -> DEADKEYS/la_ru]
#
# Can be omitted now:
#
KEYNAME_DEAD

02c6	"MODIFIER LETTER CIRCUMFLEX ACCENT"
00b4	"ACUTE ACCENT"
00b1	"PLUS-MINUS SIGN"
00a8	"DIAERESIS"
00a9	"COPYRIGHT SIGN"
00b0	"DEGREE SIGN"
02cb	"MODIFIER LETTER GRAVE ACCENT (Mandarin Chinese fourth tone)"
00af	"MACRON"
02dc	"SMALL TILDE"
02c7	"CARON (Mandarin Chinese third tone)"
03a9	"GREEK CAPITAL LETTER OMEGA"

[visual -> DEADKEYS/business]

DEADKEY	00A4

0041	20b3	// A -> ₳
0061	060b	// a -> ؋
0042	0e3f	// B -> ฿
0062	09f3	// b -> ৳
0043	00a2	// C -> ¢
// 0063	20a1	// c -> ₡
0063	00a9	// c -> ©
0044	20af	// D -> ₯
0064	20ab	// d -> ₫
0045	20a0	// E -> ₠
0065	20ac	// e -> €
0046	20a3	// F -> ₣
0066	0192	// f -> ƒ
0047	20b2	// G -> ₲
0067	0af1	// g -> ૱
0048	20b4	// H -> ₴
0068	20b4	// h -> ₴
0049	fdfc	// I -> ﷼
0069	17db	// i -> ៛
004b	20ad	// K -> ₭
006b	20ad	// k -> ₭
004c	00a3	// L -> £
006c	10da	// l -> ლ	GEORGIAN LETTER LAS [Georgian; Georgian; 1.1]
004d	2133	// M -> ℳ
006d	20a5	// m -> ₥
004e	20a6	// N -> ₦
006e	a838	// n -> ꠸	NORTH INDIC RUPEE MARK [5.2]
0050	20b1	// P -> ₱
0070	2117	// p -> ℗
0052	20b9	// R -> ₹
0072	00ae	// r -> ®
0053	20aa	// S -> ₪
0073	2120	// s -> ℠
0054	20b8	// T -> ₸
0074	2122	// t -> ™
// Put (CJK) yuans to AltGr-u/U	[Order on Wikipedia: yen (円/圓), yuan (元/圆)]
0055	5706	// U -> 圆	yuan-2
0075	5143	// u -> 元	yuan-1
0057	20a9	// W -> ₩
0077	20a9	// w -> ₩
0059	00a5	// Y -> ¥
0079	5143	// y -> 元
00a0	00a4	//   -> ¤
00a4	00a4	// ¤ -> ¤
//0024	00a4	// $ -> ¤
0020	00a4	//   -> ¤

DEADKEY	00A3

// 0043	20a2	// C -> ₢ (AltGr-inv)
0063	20b5	// c -> ₵ (AltGr-inv)
// ®™℗℠
0043	20a1	// C -> ₡
0042	09f2	// B -> ৲ (AltGr-inv)	BENGALI RUPEE MARK	Í
0062	20a2	// b -> ₢ (AltGr-inv)				í
0044	058F	// D -> ֏ (AltGr-inv) 	ARMENIAN DRAM SIGN	Ð
0064	058F	// d -> ֏ (AltGr-inv) 	ARMENIAN DRAM SIGN	ð
0047	09fB	// G -> ৾ (AltGr-inv)	BENGALI GANDA MARK	É
0067	09fB	// g -> ৾ (AltGr-inv)	BENGALI GANDA MARK	é
004c	20b6	// L -> ₶ (AltGr-inv) LIVRE TOURNOIS SIGN [5.2]	Ø
006c	20a4	// l -> ₤ (AltGr-inv)				ø
004e	a837	// N -> ꠷ (AltGr-inv) NORTH INDIC PLACEHOLDER MARK	Ñ
006e	a837	// n -> ꠷ (AltGr-inv) NORTH INDIC PLACEHOLDER MARK	ñ
0050	20a7	// P -> ₧ (AltGr-inv)	[obsolete Spanish]	œ
0070	20b0	// p -> ₰
0072	20a8	// r -> ₨
// 0052	20a2	// R -> ₢ (AltGr-inv)				ý
0052	211b	// R -> ℛ (AltGr-inv)	SCRIPT CAPITAL R	Ý
// 0053	0024	// S -> $ (AltGr-inv)				§
0053	0024	// S -> $ (AltGr-inv)				ß
0073	20b7	// s -> ₷	SPESMILO SIGN [5.2]
// 0054	0bf9	// T -> ௹ (AltGr-inv)				Þ
0074	20ae	// t -> ₮
0054	0bf9	// T -> ௹ (AltGr-inv)				þ
// Put CJK yens to AltGr-y/Y	[Order on Wikipedia: yen (円/圓), yuan (元/圆)]
0059	5713	// Y -> 圓 (AltGr-inv)	CJK yen-2		Ÿ
0079	5186	// y -> 円 (AltGr-inv)	CJK yen-1		ÿ

[visual -> KBD/Digits]
#
# For fractions, we look for fractions with minimal denominator/numerator which contain the given digit in numerator/denominator.  We take the first one and the second one from the list.
# Note that ⅗, ⅝, ⅞ do not appear in the lists via denominators; and ⅓, ¼, ⅕, ⅙, ⅛ do not appear in the lists via numerators.
# All Unicoded fractions appear in these lists.  So each one can be entered via a DeadKeyMap.
#
#
visual_rowcount=10
@visual_per_row_counts=1,1,2,1,1,1,1,1,1,1
visual_prefixes=<* *<> < +
in_key_separator=/
prefix_repeat=3
#
@layer_names=Numerators2,Numerators1,Digits,OverDigits,Denominators1,Denominators2,Super,SuperExtraLetters,Sub,SubExtraLetters,CyrPowersOfTen
# ↉ 0/3  ⅐ 1/7 ⅑ 1/9
<<<	½	⅖	⅗	--	⅝	--	--	--	--	--	--	--	--	--	--	--	--	--	--
***	⅟	⅔	¾	⅘	⅚	--	⅞	--	--	↉	--	--	--	--	--	--	--	--	--
	1/!	2/@	3/#	4/$	5/%	6/^	7/&	8/*	9/(	0/)	--	--	--	--	--	--	--	--	--
***	⅒	½	⅓	¼	⅕	⅙	⅐	⅛	⅑	⅒	--	--	--	--	--	--	--	--	--
<<<	--	--	⅔	¾	⅖	⅚	--	⅜	--	--	--	--	--	--	--	--	--	--	--
>>>	¹	²	³	⁴	⁵	⁶	⁷	⁸	⁹	⁰	ⁱ	⁲	⁳	⁺	⁻	⁼	⁽	⁾	ⁿ
	--	--	--	--	--	--	--	--	--	--	i	--	--	+	-	=	(	)	n
<<<	₁	₂	₃	₄	₅	₆	₇	₈	₉	₀	₊	₋	₌	₍	₎	₏	--	--	--
	--	--	--	--	--	--	--	--	--	--	+	-	=	(	)	ə	--	--	--
+++	--	--	҂	 ⃝	 ҈	 ҉	꙰	꙱	꙲	--	--	--	--	--	--	--	--	--	--
#
#
# Most of the above are very optional now: Super and Sup are obsoleted by Mutate[<super>] etc
# combined with Select[] clauses.  Register mapping is not done yet (2011) but can be easily done.
#
[Diacritics_Limits]
# For debugging purposes only, to check correct reading of tables below (0th entry is for 0..3 combined; 1 for 1..3, 2: 2,3; 4,5,6: combined)
@ALL=8,5,0,0,10,10,10,10
# 0:tilde, 1:grave,quote, 2: quote
[Diacritics]
# Surrogate + 8bit + Modifiers, Modifiers below, Vertical (or Comma-like or Doubled or Dotlike or Rotated or letter-like) Modifiers, Prime-like or Centered modifiers, Combining, Combining below, Vertical/plus-like/arrows and dotlike Combining, Combining for symbols
/APOSTROPHE=		'´ʼʾˀˊ΄/ˏˌ/ˈˌˡ/ʹˑ/ ́ ̉ ̛ ̷ ̸ ́ ͗  ᷎  ᷄  ᷇  ᷁/ ̗ ̩  ̦  ̹  ͅ / ̍ ̓  ̓ ̕ ̩  /  ⃬  ⃐ ⃫  ⃬
/QUOTATION_MARK=	"¨˝˸ː΅/˶˵/ˮ/ʺ/ ̈ ̋ ̏ ̈́  ᷉  ᷈  ゙    / ̤  ͈ / ̎  ͛   ͈ /  ⃛   ⃜  ⃨
/GRAVE_ACCENT=		`ˋʿˁˤ/ˎ/ʻʽ/˴˵/ ̀ ̀  ͑  ᷆  ᷅  ᷀ / ̖  ̜   ᷂ / ̒ ̔ /  ⃑ ⃭   ⃠ ⃥
/CIRCUMFLEX_ACCENT=	^ˆ˄˟/˰/˪˫ꜛʳʴʵʶˣ// ̂ ̑  ͒  ͡    ̽  ͆  ᷍ / ̭ ̯   ᷼     ͓  ̪  ̼  ͎  ᷊ /  ̘  ̙   ͉  ̘  ͉ /   ⃟  ⃤  ⃧ ⃩ ⃰  ⃟ 
/BREVE=			˘ˇ˅/ˬ˯˽˾/˱˲˿ˠʸꜜ/˂˃/ ̆ ̌ ̐ ͝   ᷓ  ᷾   ͐  ᷌  ᷋   ᷃/ ̮ ̬ ͜    ̺  ̫   ͔  ͕  ͖  ᷿  /  ͍   ͢  /   ⃞  ⃢  ⃣ 
/DEGREE_SIGN=		°˚˙/˳/˙ˠʰʱʲˢʷᵊᶣ/˓˒/ ̊ ゚     ᷒ / ̣ ̥ ̤  ̻   ͙   ͚ / ̇ ͘  ̣ ̤ ͘ /   ⃝ ⃘
/TILDE=			~ ˜/˷¸˛ͺ/ⸯꙿ/˞/ ̃ ̴ ͂ ͊ ͋ ͌   ͠  ᷑  / ̰  ̧  ̨  ̡  ̢  ᷏  ᷐  ᷽  ᷽ / ̾ ̾ /   ⃗  ⃖ ⃯ ⃮ ⃕ ⃔ ⃙ ⃚ ⃡
/MACRON=		¯ˉ˹˺/ˍ˻˼‗/˭/˔˕˖˗/ ̄ ̅ ̅ ̵ ̶ ̿ ͞   ̚  / ̱  ̲  ̳ ͇ ͟   ̠  /  ͍   ̝  ̞  ̟  ̠  ̘  ̙   ͉ /  ⃒ ⃓ ⃦  ⃪ ⃡  ⃡  ⃗  ⃖ ⃯ ⃮
#
# These are from "main blocks" of the modifiers and combining; plus Greek standalone diacritics: ͺ΄΅
# One of ˠ is obscured by vertical line with middle dot...  The Macron-\ 29F7 obscures ˭.
# Circled \ and | with middle dot obscure ˙ˠ.  ˙ duplicated (forward) to make accessible.  Also:  ̅
#  ̾ ̘  ̙  ͘  ͉  ͉  ᷽  combining chars are also duplicated.  Also:  ⃡  ⃗  ⃖ ⃯ ⃮  ⃬  ⃟ (for symbols).
# ʰʱʲˡˢʷ - from IPA.  The rest (and ʳʴʵʶʸ) are v1.1 letter modifiers.  (ˠ is in front to unobscure the rest.)
#
# Combining for symbols: arrows and round arrows -> ~; rectangular around: to ˘ .
#`´¨˜ˆˇ°¯