1
use std :: collections :: HashMap ; use lazy_static :: lazy_static ; pub const ENTER_KEYCODE : u16 = 61480u16 ; pub const TAB_KEYCODE : u16 = 61483u16 ; pub const SHIFT_MODIFIER : u16 = 57346u16 ; pub const RIGHT_ALT_MODIFIER : u16 = 57408u16 ; pub const LEFT_ALT_MODIFIER : u16 = 57348u16 ; pub const RIGHT_CTRL_MODIFIER : u16 = 57360u16 ; pub const NUMLOCK : u16 = 61523u16 ; pub const NUMPAD_KEYS : [ u16 ; 10usize ] = [ 61538u16 , 61529u16 , 61530u16 , 61531u16 , 61532u16 , 61533u16 , 61534u16 , 61535u16 , 61536u16 , 61537u16 , ] ; lazy_static ! { pub static ref LAYOUT_MAP : HashMap < & 'static str , Layout > = { let mut m = HashMap :: new ( ) ; m . insert ( "LAYOUT_US_ENGLISH" , Layout :: new ( 64u16 , None , None , None , None , 127u16 , vec ! [ 44u16 , 94u16 , 116u16 , 96u16 , 97u16 , 98u16 , 100u16 , 52u16 , 102u16 , 103u16 , 101u16 , 110u16 , 54u16 , 45u16 , 55u16 , 56u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 115u16 , 51u16 , 118u16 , 46u16 , 119u16 , 120u16 , 95u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 47u16 , 49u16 , 48u16 , 99u16 , 109u16 , 53u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 111u16 , 113u16 , 112u16 , 117u16 , 42u16 ] , DeadKeys :: new ( None , None , None , None , None , None , None , None , None , None , None , None , ) ) , ) ; m . insert ( "LAYOUT_CANADIAN_FRENCH" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 53u16 , 97u16 , 98u16 , 100u16 , 118u16 , 102u16 , 103u16 , 101u16 , 110u16 , 54u16 , 45u16 , 55u16 , 96u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 115u16 , 51u16 , 49u16 , 46u16 , 113u16 , 99u16 , 159u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 175u16 , 181u16 , 176u16 , 300u16 , 109u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 180u16 , 117u16 , 177u16 , 179u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , Some ( 1280u16 ) , Some ( 61488u16 ) , Some ( 1024u16 ) , Some ( 61552u16 ) , Some ( 768u16 ) , Some ( 61492u16 ) , Some ( 256u16 ) , Some ( 61487u16 ) , None , None , ) ) , ) ; m . insert ( "LAYOUT_CANADIAN_MULTILINGUAL" , Layout :: new ( 64u16 , Some ( 128u16 ) , Some ( 2048u16 ) , Some ( 63u16 ) , Some ( 1792u16 ) , 4095u16 , vec ! [ 44u16 , 94u16 , 119u16 , 96u16 , 97u16 , 98u16 , 100u16 , 118u16 , 102u16 , 103u16 , 101u16 , 110u16 , 54u16 , 45u16 , 55u16 , 53u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 115u16 , 51u16 , 182u16 , 46u16 , 183u16 , 99u16 , 95u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 166u16 , 117u16 , 167u16 , 300u16 , 109u16 , 1324u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 164u16 , 181u16 , 165u16 , 2096u16 , 42u16 ] , DeadKeys :: new ( Some ( 768u16 ) , None , Some ( 1024u16 ) , Some ( 63534u16 ) , Some ( 512u16 ) , Some ( 61551u16 ) , Some ( 1280u16 ) , Some ( 61615u16 ) , Some ( 256u16 ) , Some ( 61487u16 ) , Some ( 1536u16 ) , Some ( 61616u16 ) , ) ) , ) ; m . insert ( "LAYOUT_DANISH" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 96u16 , 161u16 , 98u16 , 99u16 , 49u16 , 101u16 , 102u16 , 113u16 , 45u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 159u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 165u16 , 191u16 , 166u16 , 300u16 , 120u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 164u16 , 174u16 , 167u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1280u16 ) , Some ( 61488u16 ) , Some ( 768u16 ) , Some ( 61550u16 ) , Some ( 256u16 ) , Some ( 61552u16 ) , Some ( 1024u16 ) , Some ( 61616u16 ) , ) ) , ) ; m . insert ( "LAYOUT_FINNISH" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 96u16 , 161u16 , 98u16 , 99u16 , 49u16 , 101u16 , 102u16 , 113u16 , 45u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 159u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 165u16 , 173u16 , 166u16 , 300u16 , 120u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 164u16 , 191u16 , 167u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1280u16 ) , Some ( 61488u16 ) , Some ( 768u16 ) , Some ( 61550u16 ) , Some ( 256u16 ) , Some ( 61552u16 ) , Some ( 1024u16 ) , Some ( 61616u16 ) , ) ) , ) ; m . insert ( "LAYOUT_FRENCH" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 56u16 , 32u16 , 160u16 , 48u16 , 116u16 , 30u16 , 33u16 , 34u16 , 45u16 , 49u16 , 110u16 , 16u16 , 35u16 , 118u16 , 119u16 , 103u16 , 94u16 , 95u16 , 96u16 , 97u16 , 98u16 , 99u16 , 100u16 , 101u16 , 102u16 , 55u16 , 54u16 , 63u16 , 46u16 , 127u16 , 80u16 , 167u16 , 84u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 115u16 , 81u16 , 82u16 , 83u16 , 68u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 93u16 , 91u16 , 92u16 , 90u16 , 162u16 , 165u16 , 173u16 , 166u16 , 37u16 , 556u16 , 20u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 51u16 , 17u16 , 18u16 , 19u16 , 4u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 29u16 , 27u16 , 28u16 , 26u16 , 161u16 , 163u16 , 174u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( None , None , None , None , Some ( 768u16 ) , Some ( 61551u16 ) , Some ( 512u16 ) , Some ( 61604u16 ) , Some ( 256u16 ) , Some ( 61487u16 ) , Some ( 1024u16 ) , Some ( 61599u16 ) , ) ) , ) ; m . insert ( "LAYOUT_FRENCH_BELGIAN" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 37u16 , 32u16 , 160u16 , 48u16 , 116u16 , 30u16 , 33u16 , 34u16 , 45u16 , 112u16 , 120u16 , 16u16 , 46u16 , 118u16 , 119u16 , 103u16 , 94u16 , 95u16 , 96u16 , 97u16 , 98u16 , 99u16 , 100u16 , 101u16 , 102u16 , 55u16 , 54u16 , 63u16 , 56u16 , 127u16 , 80u16 , 159u16 , 84u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 115u16 , 81u16 , 82u16 , 83u16 , 68u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 93u16 , 91u16 , 92u16 , 90u16 , 175u16 , 191u16 , 176u16 , 163u16 , 110u16 , 556u16 , 20u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 51u16 , 17u16 , 18u16 , 19u16 , 4u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 29u16 , 27u16 , 28u16 , 26u16 , 166u16 , 158u16 , 167u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 1280u16 ) , None , None , None , Some ( 768u16 ) , Some ( 61551u16 ) , Some ( 512u16 ) , Some ( 61617u16 ) , Some ( 256u16 ) , Some ( 61487u16 ) , Some ( 1024u16 ) , Some ( 61624u16 ) , ) ) , ) ; m . insert ( "LAYOUT_FRENCH_SWISS" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 112u16 , 95u16 , 160u16 , 49u16 , 98u16 , 99u16 , 45u16 , 101u16 , 102u16 , 96u16 , 94u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 159u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 93u16 , 92u16 , 175u16 , 191u16 , 176u16 , 300u16 , 120u16 , 556u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 29u16 , 28u16 , 180u16 , 164u16 , 177u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 1280u16 ) , None , None , None , Some ( 768u16 ) , Some ( 61488u16 ) , Some ( 512u16 ) , Some ( 61550u16 ) , Some ( 256u16 ) , Some ( 61486u16 ) , Some ( 1024u16 ) , Some ( 61614u16 ) , ) ) , ) ; m . insert ( "LAYOUT_GERMAN" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 49u16 , 97u16 , 98u16 , 99u16 , 113u16 , 101u16 , 102u16 , 112u16 , 48u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 148u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 93u16 , 92u16 , 165u16 , 173u16 , 166u16 , 812u16 , 120u16 , 1324u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 29u16 , 28u16 , 164u16 , 191u16 , 167u16 , 176u16 , 42u16 ] , DeadKeys :: new ( Some ( 1024u16 ) , None , None , None , None , None , Some ( 1280u16 ) , Some ( 61550u16 ) , Some ( 768u16 ) , Some ( 61493u16 ) , None , None , ) ) , ) ; m . insert ( "LAYOUT_GERMAN_MAC" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 49u16 , 97u16 , 98u16 , 99u16 , 113u16 , 101u16 , 102u16 , 112u16 , 48u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 53u16 , 103u16 , 117u16 , 109u16 , 148u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 93u16 , 92u16 , 162u16 , 228u16 , 163u16 , 812u16 , 120u16 , 556u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 29u16 , 28u16 , 165u16 , 164u16 , 166u16 , 1324u16 , 42u16 ] , DeadKeys :: new ( Some ( 256u16 ) , None , None , None , Some ( 1024u16 ) , Some ( 61592u16 ) , Some ( 512u16 ) , Some ( 61550u16 ) , Some ( 768u16 ) , Some ( 61667u16 ) , Some ( 1280u16 ) , Some ( 61585u16 ) , ) ) , ) ; m . insert ( "LAYOUT_GERMAN_SWISS" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 112u16 , 95u16 , 160u16 , 49u16 , 98u16 , 99u16 , 45u16 , 101u16 , 102u16 , 96u16 , 94u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 159u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 93u16 , 92u16 , 175u16 , 191u16 , 176u16 , 300u16 , 120u16 , 556u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 29u16 , 28u16 , 180u16 , 164u16 , 177u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 1280u16 ) , None , None , None , Some ( 768u16 ) , Some ( 61488u16 ) , Some ( 512u16 ) , Some ( 61550u16 ) , Some ( 256u16 ) , Some ( 61486u16 ) , Some ( 1024u16 ) , Some ( 61614u16 ) , ) ) , ) ; m . insert ( "LAYOUT_ICELANDIC" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 96u16 , 97u16 , 98u16 , 99u16 , 116u16 , 101u16 , 102u16 , 113u16 , 49u16 , 54u16 , 46u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 112u16 , 148u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 165u16 , 173u16 , 166u16 , 300u16 , 110u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 164u16 , 191u16 , 167u16 , 176u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1024u16 ) , Some ( 61557u16 ) , Some ( 768u16 ) , Some ( 61617u16 ) , Some ( 256u16 ) , Some ( 61620u16 ) , None , None , ) ) , ) ; m . insert ( "LAYOUT_IRISH" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 768u16 ) , 1023u16 , vec ! [ 44u16 , 94u16 , 95u16 , 49u16 , 97u16 , 98u16 , 100u16 , 52u16 , 102u16 , 103u16 , 101u16 , 110u16 , 54u16 , 45u16 , 55u16 , 56u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 115u16 , 51u16 , 118u16 , 46u16 , 119u16 , 120u16 , 116u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 47u16 , 63u16 , 48u16 , 99u16 , 109u16 , 244u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 111u16 , 127u16 , 112u16 , 113u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , None , None , Some ( 256u16 ) , Some ( 61493u16 ) , None , None , None , None , ) ) , ) ; m . insert ( "LAYOUT_ITALIAN" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , None , 255u16 , vec ! [ 44u16 , 94u16 , 95u16 , 180u16 , 97u16 , 98u16 , 99u16 , 45u16 , 101u16 , 102u16 , 112u16 , 48u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 179u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 175u16 , 53u16 , 176u16 , 110u16 , 120u16 , 0u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 239u16 , 117u16 , 240u16 , 0u16 , 42u16 ] , DeadKeys :: new ( None , None , None , None , None , None , None , None , None , None , None , None , ) ) , ) ; m . insert ( "LAYOUT_NORWEGIAN" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 96u16 , 161u16 , 98u16 , 99u16 , 49u16 , 101u16 , 102u16 , 113u16 , 45u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 159u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 165u16 , 46u16 , 166u16 , 300u16 , 120u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 164u16 , 53u16 , 167u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1280u16 ) , Some ( 61488u16 ) , Some ( 768u16 ) , Some ( 61550u16 ) , Some ( 256u16 ) , Some ( 61552u16 ) , Some ( 1024u16 ) , Some ( 61616u16 ) , ) ) , ) ; m . insert ( "LAYOUT_PORTUGUESE" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 96u16 , 97u16 , 98u16 , 99u16 , 45u16 , 101u16 , 102u16 , 111u16 , 47u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 159u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 165u16 , 53u16 , 166u16 , 300u16 , 120u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 164u16 , 117u16 , 167u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1280u16 ) , Some ( 61551u16 ) , Some ( 768u16 ) , Some ( 61552u16 ) , Some ( 256u16 ) , Some ( 61553u16 ) , Some ( 1024u16 ) , Some ( 61489u16 ) , ) ) , ) ; m . insert ( "LAYOUT_PORTUGUESE_BRAZILIAN" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 117u16 , 96u16 , 97u16 , 98u16 , 100u16 , 53u16 , 102u16 , 103u16 , 101u16 , 110u16 , 54u16 , 45u16 , 55u16 , 148u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 120u16 , 56u16 , 118u16 , 46u16 , 119u16 , 154u16 , 95u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 48u16 , 63u16 , 49u16 , 300u16 , 109u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 112u16 , 127u16 , 113u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1280u16 ) , Some ( 61539u16 ) , Some ( 768u16 ) , Some ( 61551u16 ) , Some ( 256u16 ) , Some ( 61556u16 ) , Some ( 1024u16 ) , Some ( 61492u16 ) , ) ) , ) ; m . insert ( "LAYOUT_SPANISH" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 160u16 , 97u16 , 98u16 , 99u16 , 45u16 , 101u16 , 102u16 , 112u16 , 48u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 159u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 175u16 , 181u16 , 176u16 , 300u16 , 120u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 180u16 , 158u16 , 177u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1280u16 ) , Some ( 61556u16 ) , Some ( 768u16 ) , Some ( 61487u16 ) , Some ( 256u16 ) , Some ( 61551u16 ) , Some ( 1024u16 ) , Some ( 61601u16 ) , ) ) , ) ; m . insert ( "LAYOUT_SPANISH_LATIN_AMERICA" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 160u16 , 97u16 , 98u16 , 99u16 , 45u16 , 101u16 , 102u16 , 112u16 , 48u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 148u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 116u16 , 173u16 , 113u16 , 300u16 , 120u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 52u16 , 53u16 , 49u16 , 176u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1024u16 ) , Some ( 61551u16 ) , Some ( 768u16 ) , Some ( 61617u16 ) , Some ( 256u16 ) , Some ( 61620u16 ) , None , None , ) ) , ) ; m . insert ( "LAYOUT_SWEDISH" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 95u16 , 96u16 , 161u16 , 98u16 , 99u16 , 49u16 , 101u16 , 102u16 , 113u16 , 45u16 , 54u16 , 56u16 , 55u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 119u16 , 118u16 , 63u16 , 103u16 , 127u16 , 109u16 , 159u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 165u16 , 173u16 , 166u16 , 300u16 , 120u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 164u16 , 191u16 , 167u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1280u16 ) , Some ( 61488u16 ) , Some ( 768u16 ) , Some ( 61550u16 ) , Some ( 256u16 ) , Some ( 61552u16 ) , Some ( 1024u16 ) , Some ( 61616u16 ) , ) ) , ) ; m . insert ( "LAYOUT_TURKISH" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , None , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 53u16 , 160u16 , 161u16 , 98u16 , 99u16 , 95u16 , 101u16 , 102u16 , 45u16 , 97u16 , 49u16 , 46u16 , 56u16 , 100u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 120u16 , 113u16 , 181u16 , 103u16 , 158u16 , 109u16 , 148u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 165u16 , 173u16 , 166u16 , 300u16 , 110u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 52u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 164u16 , 174u16 , 167u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1280u16 ) , Some ( 61615u16 ) , Some ( 768u16 ) , Some ( 61617u16 ) , Some ( 256u16 ) , Some ( 61536u16 ) , Some ( 1024u16 ) , Some ( 61616u16 ) , ) ) , ) ; m . insert ( "LAYOUT_UNITED_KINGDOM" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , Some ( 63u16 ) , None , 255u16 , vec ! [ 44u16 , 94u16 , 95u16 , 49u16 , 97u16 , 98u16 , 100u16 , 52u16 , 102u16 , 103u16 , 101u16 , 110u16 , 54u16 , 45u16 , 55u16 , 56u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 115u16 , 51u16 , 118u16 , 46u16 , 119u16 , 120u16 , 116u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 47u16 , 63u16 , 48u16 , 99u16 , 109u16 , 53u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 111u16 , 127u16 , 112u16 , 113u16 , 42u16 ] , DeadKeys :: new ( None , None , None , None , None , None , None , None , None , None , None , None , ) ) , ) ; m . insert ( "LAYOUT_US_INTERNATIONAL" , Layout :: new ( 64u16 , Some ( 128u16 ) , None , None , Some ( 1792u16 ) , 2047u16 , vec ! [ 44u16 , 94u16 , 1324u16 , 96u16 , 97u16 , 98u16 , 100u16 , 556u16 , 102u16 , 103u16 , 101u16 , 110u16 , 54u16 , 45u16 , 55u16 , 56u16 , 39u16 , 30u16 , 31u16 , 32u16 , 33u16 , 34u16 , 35u16 , 36u16 , 37u16 , 38u16 , 115u16 , 51u16 , 118u16 , 46u16 , 119u16 , 120u16 , 95u16 , 68u16 , 69u16 , 70u16 , 71u16 , 72u16 , 73u16 , 74u16 , 75u16 , 76u16 , 77u16 , 78u16 , 79u16 , 80u16 , 81u16 , 82u16 , 83u16 , 84u16 , 85u16 , 86u16 , 87u16 , 88u16 , 89u16 , 90u16 , 91u16 , 92u16 , 93u16 , 47u16 , 49u16 , 48u16 , 300u16 , 109u16 , 812u16 , 4u16 , 5u16 , 6u16 , 7u16 , 8u16 , 9u16 , 10u16 , 11u16 , 12u16 , 13u16 , 14u16 , 15u16 , 16u16 , 17u16 , 18u16 , 19u16 , 20u16 , 21u16 , 22u16 , 23u16 , 24u16 , 25u16 , 26u16 , 27u16 , 28u16 , 29u16 , 111u16 , 113u16 , 112u16 , 1068u16 , 42u16 ] , DeadKeys :: new ( Some ( 512u16 ) , None , None , None , Some ( 1280u16 ) , Some ( 61556u16 ) , Some ( 768u16 ) , Some ( 61493u16 ) , Some ( 256u16 ) , Some ( 61539u16 ) , Some ( 1024u16 ) , Some ( 61557u16 ) , ) ) , ) ; m } ; }