From 9168ac2823c9c409115e861cb53608c1370121d1 Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 17 May 2021 19:05:31 +0200 Subject: [PATCH 1/7] Timed updates - Remove profling measurements on dispose --- src/Artemis.Core/Plugins/TimedUpdateRegistration.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Artemis.Core/Plugins/TimedUpdateRegistration.cs b/src/Artemis.Core/Plugins/TimedUpdateRegistration.cs index 65eede731..39d5ad8cb 100644 --- a/src/Artemis.Core/Plugins/TimedUpdateRegistration.cs +++ b/src/Artemis.Core/Plugins/TimedUpdateRegistration.cs @@ -194,6 +194,8 @@ namespace Artemis.Core public void Dispose() { Dispose(true); + Feature.Profiler.ClearMeasurements(ToString()); + GC.SuppressFinalize(this); } From f1eefe0761f7747d7dfa9e25d0b2d2c3a556bec1 Mon Sep 17 00:00:00 2001 From: Robert Date: Tue, 18 May 2021 16:59:58 +0200 Subject: [PATCH 2/7] Profiles - Only set imports as changed if they actually had real changes Default layouts - Added default keyboard and headset layouts --- src/Artemis.Core/Artemis.Core.csproj | 6 + .../Artemis/Headset/Artemis 1 LED headset.xml | 25 + .../Headset/Artemis 2 LEDs headset.xml | 32 + .../Headset/Artemis 4 LEDs headset.xml | 46 + .../Artemis/Headset/Headset.png | Bin 0 -> 84051 bytes .../Keyboard/Artemis L keyboard-ANSI.xml | 956 +++++++++++++++ .../Keyboard/Artemis L keyboard-ISO.xml | 964 ++++++++++++++++ .../Keyboard/Artemis TKL keyboard-ANSI.xml | 800 +++++++++++++ .../Keyboard/Artemis TKL keyboard-ISO.xml | 808 +++++++++++++ .../Keyboard/Artemis XL keyboard-ANSI.xml | 1016 ++++++++++++++++ .../Keyboard/Artemis XL keyboard-ISO.xml | 1024 +++++++++++++++++ .../Keyboard/Keycaps/0_BracketRight.png | Bin 0 -> 4056 bytes .../Keyboard/Keycaps/1_ExclamationMark.png | Bin 0 -> 3729 bytes .../Artemis/Keyboard/Keycaps/2_At.png | Bin 0 -> 4536 bytes .../Artemis/Keyboard/Keycaps/3_Hash.png | Bin 0 -> 4248 bytes .../Artemis/Keyboard/Keycaps/4_Dollar.png | Bin 0 -> 4220 bytes .../Artemis/Keyboard/Keycaps/5_Percent.png | Bin 0 -> 4288 bytes .../Artemis/Keyboard/Keycaps/6_Circumflex.png | Bin 0 -> 4110 bytes .../Artemis/Keyboard/Keycaps/7_Ampersand.png | Bin 0 -> 4228 bytes .../Artemis/Keyboard/Keycaps/8_Asterisk.png | Bin 0 -> 4121 bytes .../Keyboard/Keycaps/9_BracketRight.png | Bin 0 -> 4177 bytes .../Artemis/Keyboard/Keycaps/A.png | Bin 0 -> 3922 bytes .../Keyboard/Keycaps/AccentGrave_Tilde.png | Bin 0 -> 3863 bytes .../Artemis/Keyboard/Keycaps/Alt.png | Bin 0 -> 5657 bytes .../Keycaps/Apostrophe_QuotationMark.png | Bin 0 -> 3713 bytes .../Artemis/Keyboard/Keycaps/Asterisk.png | Bin 0 -> 3843 bytes .../Artemis/Keyboard/Keycaps/B.png | Bin 0 -> 3839 bytes .../Artemis/Keyboard/Keycaps/Backspace.png | Bin 0 -> 4879 bytes .../Keyboard/Keycaps/BlackslashIso.png | Bin 0 -> 5515 bytes .../Keyboard/Keycaps/Blackslash_Pipe_Wide.png | Bin 0 -> 4693 bytes .../Artemis/Keyboard/Keycaps/C.png | Bin 0 -> 3964 bytes .../Artemis/Keyboard/Keycaps/CapsLock.png | Bin 0 -> 6423 bytes .../Artemis/Keyboard/Keycaps/CaretDown.png | Bin 0 -> 4605 bytes .../Artemis/Keyboard/Keycaps/CaretLeft.png | Bin 0 -> 4588 bytes .../Artemis/Keyboard/Keycaps/CaretRight.png | Bin 0 -> 4614 bytes .../Artemis/Keyboard/Keycaps/CaretUp.png | Bin 0 -> 4652 bytes .../Artemis/Keyboard/Keycaps/Ctrl.png | Bin 0 -> 4814 bytes .../Artemis/Keyboard/Keycaps/D.png | Bin 0 -> 3833 bytes .../Artemis/Keyboard/Keycaps/Delete.png | Bin 0 -> 3934 bytes .../Artemis/Keyboard/Keycaps/Dot_Del.png | Bin 0 -> 5501 bytes .../Artemis/Keyboard/Keycaps/E.png | Bin 0 -> 3647 bytes .../Artemis/Keyboard/Keycaps/End.png | Bin 0 -> 3911 bytes .../Artemis/Keyboard/Keycaps/EnterAnsi.png | Bin 0 -> 5935 bytes .../Artemis/Keyboard/Keycaps/EnterIso.png | Bin 0 -> 9115 bytes .../Artemis/Keyboard/Keycaps/Equals_Plus.png | Bin 0 -> 3689 bytes .../Artemis/Keyboard/Keycaps/Escape.png | Bin 0 -> 4299 bytes .../Artemis/Keyboard/Keycaps/F.png | Bin 0 -> 3627 bytes .../Artemis/Keyboard/Keycaps/F1.png | Bin 0 -> 3752 bytes .../Artemis/Keyboard/Keycaps/F10.png | Bin 0 -> 4000 bytes .../Artemis/Keyboard/Keycaps/F11.png | Bin 0 -> 3764 bytes .../Artemis/Keyboard/Keycaps/F12.png | Bin 0 -> 4019 bytes .../Artemis/Keyboard/Keycaps/F2.png | Bin 0 -> 3893 bytes .../Artemis/Keyboard/Keycaps/F3.png | Bin 0 -> 4009 bytes .../Artemis/Keyboard/Keycaps/F4.png | Bin 0 -> 3852 bytes .../Artemis/Keyboard/Keycaps/F5.png | Bin 0 -> 3963 bytes .../Artemis/Keyboard/Keycaps/F6.png | Bin 0 -> 4008 bytes .../Artemis/Keyboard/Keycaps/F7.png | Bin 0 -> 3898 bytes .../Artemis/Keyboard/Keycaps/F8.png | Bin 0 -> 4068 bytes .../Artemis/Keyboard/Keycaps/F9.png | Bin 0 -> 4015 bytes .../Artemis/Keyboard/Keycaps/G.png | Bin 0 -> 3934 bytes .../Keyboard/Keycaps/GreaterThan_Dot.png | Bin 0 -> 3872 bytes .../Artemis/Keyboard/Keycaps/Gui.png | Bin 0 -> 6984 bytes .../Artemis/Keyboard/Keycaps/H.png | Bin 0 -> 3638 bytes .../Artemis/Keyboard/Keycaps/Home.png | Bin 0 -> 4138 bytes .../Keyboard/Keycaps/Hyphen_Underscore.png | Bin 0 -> 3614 bytes .../Artemis/Keyboard/Keycaps/I.png | Bin 0 -> 3601 bytes .../Artemis/Keyboard/Keycaps/Insert.png | Bin 0 -> 4185 bytes .../Artemis/Keyboard/Keycaps/J.png | Bin 0 -> 3762 bytes .../Artemis/Keyboard/Keycaps/K.png | Bin 0 -> 3890 bytes .../Artemis/Keyboard/Keycaps/L.png | Bin 0 -> 3623 bytes .../Keyboard/Keycaps/LessThan_Comma.png | Bin 0 -> 3936 bytes .../Artemis/Keyboard/Keycaps/M.png | Bin 0 -> 3971 bytes .../Artemis/Keyboard/Keycaps/M1.png | Bin 0 -> 4014 bytes .../Artemis/Keyboard/Keycaps/M2.png | Bin 0 -> 4187 bytes .../Artemis/Keyboard/Keycaps/M3.png | Bin 0 -> 4252 bytes .../Artemis/Keyboard/Keycaps/M4.png | Bin 0 -> 4082 bytes .../Artemis/Keyboard/Keycaps/M5.png | Bin 0 -> 4187 bytes .../Artemis/Keyboard/Keycaps/M6.png | Bin 0 -> 4242 bytes .../Artemis/Keyboard/Keycaps/Menu.png | Bin 0 -> 4509 bytes .../Artemis/Keyboard/Keycaps/Minus.png | Bin 0 -> 3592 bytes .../Artemis/Keyboard/Keycaps/N.png | Bin 0 -> 3860 bytes .../Artemis/Keyboard/Keycaps/Num0_Ins.png | Bin 0 -> 5970 bytes .../Artemis/Keyboard/Keycaps/Num1.png | Bin 0 -> 3666 bytes .../Artemis/Keyboard/Keycaps/Num2.png | Bin 0 -> 3939 bytes .../Artemis/Keyboard/Keycaps/Num3.png | Bin 0 -> 3946 bytes .../Artemis/Keyboard/Keycaps/Num4.png | Bin 0 -> 3813 bytes .../Artemis/Keyboard/Keycaps/Num5.png | Bin 0 -> 3919 bytes .../Artemis/Keyboard/Keycaps/Num6.png | Bin 0 -> 3955 bytes .../Artemis/Keyboard/Keycaps/Num7.png | Bin 0 -> 3823 bytes .../Artemis/Keyboard/Keycaps/Num8.png | Bin 0 -> 3959 bytes .../Artemis/Keyboard/Keycaps/Num9.png | Bin 0 -> 3947 bytes .../Artemis/Keyboard/Keycaps/NumEnter.png | Bin 0 -> 5942 bytes .../Artemis/Keyboard/Keycaps/NumLock.png | Bin 0 -> 4526 bytes .../Artemis/Keyboard/Keycaps/NumPlus.png | Bin 0 -> 4636 bytes .../Artemis/Keyboard/Keycaps/O.png | Bin 0 -> 3967 bytes .../Artemis/Keyboard/Keycaps/P.png | Bin 0 -> 3758 bytes .../Artemis/Keyboard/Keycaps/PageDown.png | Bin 0 -> 4724 bytes .../Artemis/Keyboard/Keycaps/PageUp.png | Bin 0 -> 4298 bytes .../Artemis/Keyboard/Keycaps/PauseBreak.png | Bin 0 -> 4815 bytes .../Artemis/Keyboard/Keycaps/PrintScreen.png | Bin 0 -> 4575 bytes .../Artemis/Keyboard/Keycaps/Q.png | Bin 0 -> 4061 bytes .../Keyboard/Keycaps/QuestionMark_Slash.png | Bin 0 -> 4114 bytes .../Artemis/Keyboard/Keycaps/R.png | Bin 0 -> 3820 bytes .../Artemis/Keyboard/Keycaps/S.png | Bin 0 -> 4000 bytes .../Artemis/Keyboard/Keycaps/ScrollLock.png | Bin 0 -> 4883 bytes .../Keyboard/Keycaps/Semicolon_Colon.png | Bin 0 -> 3765 bytes .../Artemis/Keyboard/Keycaps/Shift.png | Bin 0 -> 5977 bytes .../Artemis/Keyboard/Keycaps/ShiftBig.png | Bin 0 -> 5882 bytes .../Artemis/Keyboard/Keycaps/Slash.png | Bin 0 -> 3836 bytes .../Artemis/Keyboard/Keycaps/Space.png | Bin 0 -> 16702 bytes .../SquareBracketLeft_CurlyBracketLeft.png | Bin 0 -> 3871 bytes .../SquareBracketRight_CurlyBracketRight.png | Bin 0 -> 3859 bytes .../Artemis/Keyboard/Keycaps/T.png | Bin 0 -> 3617 bytes .../Artemis/Keyboard/Keycaps/Tab.png | Bin 0 -> 4832 bytes .../Artemis/Keyboard/Keycaps/U.png | Bin 0 -> 3771 bytes .../Artemis/Keyboard/Keycaps/V.png | Bin 0 -> 3944 bytes .../Artemis/Keyboard/Keycaps/W.png | Bin 0 -> 4020 bytes .../Artemis/Keyboard/Keycaps/X.png | Bin 0 -> 4022 bytes .../Artemis/Keyboard/Keycaps/Y.png | Bin 0 -> 3836 bytes .../Artemis/Keyboard/Keycaps/Z.png | Bin 0 -> 3880 bytes .../DefaultLayouts/Artemis/Keyboard/L.png | Bin 0 -> 23612 bytes .../DefaultLayouts/Artemis/Keyboard/TKL.png | Bin 0 -> 21583 bytes .../DefaultLayouts/Artemis/Keyboard/XL.png | Bin 0 -> 24099 bytes .../AdaptionHints/DeviceAdaptionHint.cs | 2 +- .../KeyboardSectionAdaptionHint.cs | 2 +- src/Artemis.Core/Models/Profile/Layer.cs | 2 +- .../Models/Profile/LayerAdapter.cs | 4 +- .../Models/Surface/ArtemisDevice.cs | 114 +- .../Models/Surface/Layout/ArtemisLayout.cs | 52 + .../Plugins/DeviceProviders/DeviceProvider.cs | 4 +- .../Services/Input/InputService.cs | 12 +- .../Services/Interfaces/IRgbService.cs | 2 +- src/Artemis.Core/Services/RgbService.cs | 24 +- .../Storage/Models/SurfaceArrangementType.cs | 6 +- .../Services/Storage/ProfileService.cs | 37 +- .../ProfileEditor/ProfileEditorViewModel.cs | 2 +- .../Settings/Device/DeviceDialogViewModel.cs | 4 +- .../Device/Tabs/DeviceInfoTabView.xaml | 2 +- .../Device/Tabs/DeviceInfoTabViewModel.cs | 2 +- .../Device/Tabs/InputMappingsTabViewModel.cs | 2 +- .../Tabs/Devices/DeviceSettingsView.xaml | 2 +- .../Tabs/Devices/DeviceSettingsViewModel.cs | 6 +- .../SurfaceDeviceDetectInputViewModel.cs | 2 +- .../Visualization/SurfaceDeviceViewModel.cs | 4 +- .../Services/DeviceLayoutService.cs | 2 +- 145 files changed, 5874 insertions(+), 92 deletions(-) create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 1 LED headset.xml create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 2 LEDs headset.xml create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 4 LEDs headset.xml create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Headset/Headset.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ANSI.xml create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ISO.xml create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ANSI.xml create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ISO.xml create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ANSI.xml create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ISO.xml create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/0_BracketRight.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/1_ExclamationMark.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/2_At.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/3_Hash.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/4_Dollar.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/5_Percent.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/6_Circumflex.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/7_Ampersand.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/8_Asterisk.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/9_BracketRight.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/A.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/AccentGrave_Tilde.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Alt.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Apostrophe_QuotationMark.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Asterisk.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/B.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Backspace.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/BlackslashIso.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Blackslash_Pipe_Wide.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/C.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CapsLock.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretDown.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretLeft.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretRight.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretUp.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Ctrl.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/D.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Delete.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Dot_Del.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/E.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/End.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterAnsi.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterIso.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Equals_Plus.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Escape.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F1.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F10.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F11.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F12.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F2.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F3.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F4.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F5.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F6.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F7.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F8.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F9.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/G.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/GreaterThan_Dot.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Gui.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/H.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Home.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Hyphen_Underscore.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/I.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Insert.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/J.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/K.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/L.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/LessThan_Comma.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M1.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M2.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M3.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M4.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M5.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M6.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Menu.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Minus.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/N.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num0_Ins.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num1.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num2.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num3.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num4.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num5.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num6.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num7.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num8.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num9.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumEnter.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumLock.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumPlus.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/O.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/P.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageDown.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageUp.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PauseBreak.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PrintScreen.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Q.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/QuestionMark_Slash.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/R.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/S.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ScrollLock.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Semicolon_Colon.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Shift.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ShiftBig.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Slash.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Space.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketLeft_CurlyBracketLeft.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketRight_CurlyBracketRight.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/T.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Tab.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/U.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/V.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/W.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/X.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Y.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Z.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/L.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/TKL.png create mode 100644 src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/XL.png diff --git a/src/Artemis.Core/Artemis.Core.csproj b/src/Artemis.Core/Artemis.Core.csproj index 8b5c4bc83..17b364307 100644 --- a/src/Artemis.Core/Artemis.Core.csproj +++ b/src/Artemis.Core/Artemis.Core.csproj @@ -80,4 +80,10 @@ PreserveNewest + + + + PreserveNewest + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 1 LED headset.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 1 LED headset.xml new file mode 100644 index 000000000..bc0ebc8ef --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 1 LED headset.xml @@ -0,0 +1,25 @@ + + + 1 LEDs headset + The default layout for headsets with 1 LED + SpoinkyNL & Aureshion + Headset + Artemis + Artemis 1 LED headset + 242 + 233 + 1 + 1 + + + M0.073,0.002 L0.073,0.015 L0.293,0.937 L0.3,0.946 L0.275,0.969 L0.048,0.025z M0.925,0.001 L0.925,0.012 L0.706,0.938 L0.697,0.941 L0.729,0.97 L0.95,0.021z + 15 + 125 + 212 + 108 + + + + Headset.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 2 LEDs headset.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 2 LEDs headset.xml new file mode 100644 index 000000000..00a153c9b --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 2 LEDs headset.xml @@ -0,0 +1,32 @@ + + + 2 LEDs headset + The default layout for headsets with 2 LEDs + SpoinkyNL & Aureshion + Headset + Artemis + Artemis 2 LEDs headset + 242 + 233 + 1 + 1 + + + M0.246,0 L0.24,0.02 L0.974,0.938 L0.999,0.941 L0.916,0.965 L0.17,0.023z + 15 + 125 + 64 + 108 + + + M0.741,-0.003 L0.755,0.012 L0.026,0.937 L0.003,0.939 L0.084,0.965 L0.833,0.027z + 163 + ~ + 64 + 108 + + + + Headset.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 4 LEDs headset.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 4 LEDs headset.xml new file mode 100644 index 000000000..7764b9abc --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Artemis 4 LEDs headset.xml @@ -0,0 +1,46 @@ + + + 4 LEDs headset + The default layout for headsets with 4 LEDs + SpoinkyNL & Aureshion + Headset + Artemis + Artemis 4 LEDs headset + 242 + 233 + 1 + 1 + + + M0.241,0.001 L0.231,0.021 L0.62,1 L0.523,1 L0.153,0.056z + 15 + 125 + 64 + 54 + + + M0.62,0 L0.968,0.87 L0.992,0.886 L0.903,0.943 L0.523,0z + ~ + + + 64 + 54 + + + M0.748,0 L0.752,0.027 L0.377,1 L0.468,1 L0.837,0.053z + 163 + 125 + 64 + 54 + + + M0.377,0 L0.468,0 L0.09,0.935 L0,0.88 L0.032,0.863z + ~ + + + 64 + 54 + + + + Headset.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Headset.png b/src/Artemis.Core/DefaultLayouts/Artemis/Headset/Headset.png new file mode 100644 index 0000000000000000000000000000000000000000..2925ef002c581134ede463bc3bfbd8d3887e40b3 GIT binary patch literal 84051 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 D5^i%^ literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ANSI.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ANSI.xml new file mode 100644 index 000000000..8c61a0f4d --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ANSI.xml @@ -0,0 +1,956 @@ + + + Artemis large keyboard layout + The default layout for full sized keyboards + SpoinkyNL + Keyboard + Artemis + Artemis L keyboard + 441 + 144 + + + 7 + 18 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + 39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5 + 1 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 7 + ~ + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.25 + + + + + + + + +67 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 2.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + +24 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 7 + ~ + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + 2 + + + + + + + + + + + + + + + 2 + 0 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 2 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 361 + 10 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + L.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ISO.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ISO.xml new file mode 100644 index 000000000..fe5f59f05 --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis L keyboard-ISO.xml @@ -0,0 +1,964 @@ + + + Artemis large keyboard layout + The default layout for full sized keyboards + SpoinkyNL + Keyboard + Artemis + Artemis L keyboard + 441 + 144 + + + 7 + 18 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + 39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 7 + ~ + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + +90.75 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + +24 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 7 + ~ + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + 2 + + + + + + + + + + + + + + + 2 + 0 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 2 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 361 + 10 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + L.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ANSI.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ANSI.xml new file mode 100644 index 000000000..fd0683ee6 --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ANSI.xml @@ -0,0 +1,800 @@ + + + Artemis tenkeyless keyboard layout + The default layout for tenkeyless keyboards + SpoinkyNL + Keyboard + Artemis + Artemis TKL keyboard + 360 + 144 + + + 7 + 19 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + 42 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5 + 1 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.25 + + + + + + + + 7 + + + 2.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 9 + 0 + 1 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 9 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 221 + 7 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + TKL.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ISO.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ISO.xml new file mode 100644 index 000000000..ef4f1d732 --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis TKL keyboard-ISO.xml @@ -0,0 +1,808 @@ + + + Artemis tenkeyless keyboard layout + The default layout for tenkeyless keyboards + SpoinkyNL + Keyboard + Artemis + Artemis TKL keyboard + 360 + 144 + + + 7 + 19 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + 42 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 7 + + + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + 7 + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + 7 + + + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 9 + 0 + 1 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 9 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 221 + 7 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + TKL.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ANSI.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ANSI.xml new file mode 100644 index 000000000..21e0f8bfb --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ANSI.xml @@ -0,0 +1,1016 @@ + + + Artemis XL keyboard layout + The default layout for keyboards with programmable keys + SpoinkyNL + Keyboard + Artemis + Artemis XL keyboard + 464 + 144 + + + 30 + 16 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 30 + 39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 30 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.5 + 1 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 30 + ~ + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.25 + + + + + + + + +67 + + + + + + + + + + + + + + + + + + + + + + 30 + + + 2.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + +24 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 30 + ~ + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + 2 + + + + + + + + + + + + + + + 7 + 16 + + + + + + + + 7 + + + + + + + + + + 7 + +2 + + + + + + + + 7 + + + + + + + + + + 7 + +2 + + + + + + + + 7 + + + + + + + + + + 5 + 0 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 5 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 384 + 10 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + XL.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ISO.xml b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ISO.xml new file mode 100644 index 000000000..4da97caa7 --- /dev/null +++ b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Artemis XL keyboard-ISO.xml @@ -0,0 +1,1024 @@ + + + Artemis XL keyboard layout + The default layout for keyboards with programmable keys + SpoinkyNL + Keyboard + Artemis + Artemis XL keyboard + 464 + 144 + + + 30 + 16 + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12.667 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 30 + 39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 30 + + + 1.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 30 + ~ + 1.75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + +90.75 + + + + + + + + + + + + + + + + + + + + + + 30 + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2.75 + + + + + + + + +24 + + + + + + + + +24 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + 30 + ~ + 1.5 + + + + + + + + + + + + + + + 1.25 + + + + + + + + 6.5 + + + + + + + + 1.25 + + + + + + + + + + + + + + + + + + + + + + 1.5 + + + + + + + + +5 + + + + + + + + + + + + + + + + + + + + + + +5 + 2 + + + + + + + + + + + + + + + 7 + 16 + + + + + + + + 7 + + + + + + + + + + 7 + +2 + + + + + + + + 7 + + + + + + + + + + 7 + +2 + + + + + + + + 7 + + + + + + + + + + 5 + 0 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 5 + 139 + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + 0.25 + + + + 384 + 10 + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + 0.75 + 0.5 + + + + XL.png + + \ No newline at end of file diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/0_BracketRight.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/0_BracketRight.png new file mode 100644 index 0000000000000000000000000000000000000000..48a040795bf29d4360084ffe52bd2f5d27dcb062 GIT binary patch literal 4056 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/1_ExclamationMark.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/1_ExclamationMark.png new file mode 100644 index 0000000000000000000000000000000000000000..b9d6c96ec53879d4ca85b7a3b4e9ad3f2b1dde7a GIT binary patch literal 3729 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 Q`cI<0^?s|nmd9fM12t=hP5=M^ literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/2_At.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/2_At.png new file mode 100644 index 0000000000000000000000000000000000000000..c00bfbe80944f2eebfbd0af12e19e84218a377b4 GIT binary patch literal 4536 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 UQy-c#_Wl(Z>YD20YdHk}2fys5RsaA1 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/4_Dollar.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/4_Dollar.png new file mode 100644 index 0000000000000000000000000000000000000000..a65a4071d46c617542638a6290945a1bce666a66 GIT binary patch literal 4220 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 F{{Tz)yyyS` literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/6_Circumflex.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/6_Circumflex.png new file mode 100644 index 0000000000000000000000000000000000000000..3a9b2bb3aa027980644e33cb80b53e457e621bef GIT binary patch literal 4110 zcmaJ^c|276`yW}xRze{o#@Iq*X3S#7z6@nek*&lqXP6kn7-lRHCFz!I+0%kVmP<+^ zOLcY0WG&$vhg&InVof-p_Vk=aXP>cVxG)tS|@!+HHB1 zc!E26?A(F^+-IT3)@2*O{?e<urn0^MZ zze%~++C$Cg3;>GN!oj^!7%WtWpoPMrF$BV4s5TOXM0*$&+S<^c7mRC- zL8j=QAX@yi#a$V|e3{HZT?B%~Vrj9^T6BgF0!1JY5J+u=wl2jLYux;ZpaX9QXm4Qg+$P3JAVBo z9n3rd{6CF_l*{rO4dbVv3N8RO@RYAyce88z@Xt?1SA=*{P0B_)zZ7SFHPptX>#Oj(c01}hV zaHP}ye^r6KFP%vb_N50x&CGVPPJkYArUsDdtYGz>H2v*05nxb50kQ>yPJ{jxXI<*Q za3J9^1QbCBfaCB039gOA;NT>bHy(~eBfWHRNF3G+kA?ljlm9Dzf7dB@hwDe+FFLyD z9RLy!z$rMg4%{2S=)g%x0uByv)e%ToGzpLOh9S5V5j&;xU#0YGi(8*N(|;O+yZEQI zfBhI0*OK`i6)NhfmwGw-~Feg^W?72tv+qAhuu}ado9lDWs7O$W$1lh z7W}1MeT@VJ&JYn9^aE7x*X-R_XB2n;hIy=DY}{=x(H7rPP1)h=(G9gx!F{g%5zBdm zEcDb%S7a{X+xv%8r#dz>9}Pxrtcs^Oik`F*yppfMawWX z27ZsmDBHvKx9EO;4<|)2>;j!J-XTFrJ(ihgN(06-l z@9o;)DT|R9@d}T|a#Cz>xNzooTJIj;j(9NzShQ^33?IJgZf}>#=dwPN4U;$x5=ng23AQ$XnX;dG+!(=W*kB3{OLnozoE_hR|(lpKsc{ zrEoJw9I^)Pl zWB8Ir<-+mn#l8X-U6)>bt#Ey)x=V7Y1+fw&ziO}f>6;98+S54urfdlMkuKJAg7Ivm ze}Kn4#b1AB93IL)h( zHk&79t@Hb1gpw19&Y9g>Z^0|b^pHn(-+o`>CMZ#E5+SC`h$c-vi} zBy-7q1IWKCUzGLH5HvhE2w8)47FuV-{w9sESYRnBDK3+`-Z-p>K-3bZPxcp2_F#$% zUdunj;GDD*)~PbAi9eGC+0~fli>GP=_Dfu9+kyx+z@MT>r+6FqY%VC8P)ugWW4;{I zT+(s?N@int!Lj=_orvp6%ZHn+DLGN@6cN)RJ(&cBL8}kEda8jv@5{nzcv}|^LB#iS zUxkmKKA!dUw7Yv7$N1#X{=rWziQ=Ln#-HDn{T4MhR3|+6Sc4<{R#vI#VrReAg0*I&xk9+6(KW zx~6v86fTPo&(d+=e*1aaaXWPPP#x>lL5PgZ<(0apPu=cHKN>6PBsyars6%9BudJY| z3Z^+ZItzvtZ`~BfiZe}ZQ?qBj^7R!IVXhv%67P!ps6dk2S50nB2?9u&*DvzSRdr0+EA)E(`J`^tw_D3IN1w;Bw_hemqIj2Q`z2=w zYY+qRl5Zr=O36-1t8X^&^#pVGM@E`293P))&q8CTx)u#WW*j>;9Br?B%SnE7%Sb{0 z+z-sB>FHvs@BXg3tO${s148bC4MTz)oBa;s`2_+OhOO=uUB0i$ihlqWTs%v@AxlB( zrJj7AEg#u8WvH?_cCFM>#IS`F4aA?i2zqxk>I1r??Q&7|8pkKJ%4S8A^MLZswvS@k4R~z5 zxv6J84>3<;+T=bT5&AgeDM34M7I*&8v=04)XuyA-h<~B?R~3dd)Az?-H0vhVC*CpJ z`|<49iv&wrD7gyOvrwNPVV3}w^o%mD3;m*D#;F%f^->(Y{lK}R<<M|+{5IRNcKO+nj<)wZwlqTJfDj-0Rf!u*)&{Z zfy9OrPh)P2j*v=Yu8?!~O^J<^89s$dxMYrYkNiV=-Nq|2(uD22Jl4imc-3QP`sd*_ z5M-L#Dynckr@6Q<=Za{PQrYQxZhnzWK^u$gZa81&7lkPHt*@sgj$ zmKB}r6Z)z>7&+X$Ppj>D=>W#4BhTPB8BqL706~^;%zD%H7<+-!XYjB+TI}`_3yZO< zs`{$5C^xIkH6vx?@K9~u+7;4zayWnO_vCMv*3^K&bgxQ5fj`ato-B$XO&D~W z!=O*^1La!lfaUqa%MAjN9JSh(A4sBGY#hChR7j{^!pe0_GBLD zDHT5T21?nuWE}JedfJP0x>W3U(j&=YGvrPrUPBn}$$)+76?#J6C3rO@q_Z(R zPTn2t5MUpcr#?fo{7OzdMiri{QlX+2+6rg&B)r|gf8hF5)k8AL7f-)C8qHs^8KYj3 zv^^P-nTIg3$yO>jGHz2@ukJFh9wE0nKVkpyFf}Yy!@q4Lqrkmaey~90CV!V&yH#e~kt4d;_3%E3xSmHC#|a20~$slugikER!r58XU#c&+01HMxVe{Su79 zJX(phs9}aUqkp3y_jSXav)T8RTluJ$axy)4X;_md9ss>^=RCZmf|yc4lO2bz?HkN? z30Fj@yXrRIcZ|sCc}wkfSG8}feqGbb&$dZU(p+5R8Tu5Mm1MMg6*t%}ypCr)Lz<>g zt3te5k*L~z(xXX(`T0+H*=cMjG#rhb+03{yMz_T7qZ*<+kTzB3dHhj_U)+v%Oo z=x;xpUNAS|rrpcf&?!@O?5Vs5CSvx6wUa~PG9zy4hgu2iXKoz<=lb)Y-MUv#67R2x zJ>{EV*#4M=pswk|?aLePBnaS(=~m_U6>lP>(LJgNfoNafPprt##QEAShdiP3bIQFF zX+2iaC%|Xq+mqKBF%&I-+@8o%KDd%(twbl0cTQN5*0&lv>6PB`?elaMu58~m{-Hdh z=noXWZ6D=%(7kw(`#I?|!NoT_J`TR{O^sBLoY3f7HnJT`%|ygW?WuY8>|E2pt!-$* z=;&xUzlhXE9LlQoeCh7A@ZNW-Ylhir@x&rh(&?)QhHx&eW38!bIb|cM0$^~2+2FQx z9}~{-%ohiyn&qffqer-vJ|F>c&E~ly@?`H><6-Xqo0@?5`_-e8kRsH9ABF?ALzaJ3 z@|=P~H`9tIi`N5~&mtpOw&Q&MF)z+GMVeiXQJI^bnR%`~wQ!zwijYx-*C-N6AKA|S c9?c^F8kJB?|D(Gse&>X4X>La>H}#DDKi9%RUjP6A literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/7_Ampersand.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/7_Ampersand.png new file mode 100644 index 0000000000000000000000000000000000000000..137f74aa7455b7ee293219c53e01dbf0ccf897dc GIT binary patch literal 4228 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/8_Asterisk.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/8_Asterisk.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b6b2331b7d865bd473e24cee189fd851ed8de1 GIT binary patch literal 4121 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/9_BracketRight.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/9_BracketRight.png new file mode 100644 index 0000000000000000000000000000000000000000..b97abfbf7899b5519768520aaba9d4cb2ea4ea8e GIT binary patch literal 4177 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 Jr3Nk${{f`Ig;)Rp literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/A.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/A.png new file mode 100644 index 0000000000000000000000000000000000000000..7ecd4d362f677b921b2e2287134bb2e472e6187e GIT binary patch literal 3922 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Alt.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Alt.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc50eda3bb4cded31c228d675801e9ed64c4a05 GIT binary patch literal 5657 zcmc&&2~<p0CK}D+|s0h|t zipnek0Yo5(AVDo!0x}4w2#SC>Kvk4`0!Zy$?QQS9@2!`$l5_Ss-~NYhfB(PtO7a%h zO)82j6=h^(R2=MW-Qa5k{0&^X82-I`!>0|tEQ9Q~@nvL`RHa{8nbT)9Wn>h?nI1j@ z9~Wmbjmt&@bS@P{N3tOpEhA%L83_TjP*8xRg27AnQ*^yeT(B;X4H&|- zkLH2y(XJk}=ujGou4}m-X%R_=4X{B0fQ)3bIDB#>MR(RN8NQc3#^@qvA%akfu9egw z(#K^B(uT_ektS$U6b(l-L7I`!I8y?VL^4L=u{d)K)*OQ)pm3&SB9@HDBj-Q5us0r^ zL3Xp z6a-@2Kt4B&M+5D`;V{>H%7!m+1ApW5Z%l{bvy&mR4G#naT%HG)%lfp+TR!EBw6T${ zDhavPo5`VbBlreVhx2nlTR;F(bn#d`4uvJ6us9E#2^mKuo0u43@nkG^4(h_CGZ|68 zhvEnxut4y5GM@B1C@eWTAOQXnOsA0U=Rawf_0G#%Rsi_vba3hF&rJ? z^XCpWHd}aH29pK9;JaywSnRGG% z3rihGz@ixDR4R&yCxR#{9xz4WXn+}sN;e@gsNkphwp?16R6^4EbJaxW(qJ3Eg-0Uc zX@Dug9EB%fX($qdXoeyYuqG&YWNL0|3KMQJM;;u_W*!qRXn^&(RcTao*dhZ*BG3RV z9%VwrgD8+r#G^=fA`WF@hNt69&EcRysu`kjI~|M{6K>{*J}`jKEop zE5L?%vU2wLoWj{RQZsXJFz{@Qv<&AAVgAI`Y%P%OnS5AiQS%Pn!JWUko|Qitph?S` zqDzxX5~S-Q=N>cvU`75`?(_2_LO|H)ztHKN8$OpIhyZw?RWQ7If2S0r$xCyGsr#q+ zxtws2_gMxIz=O#Yz`Rp*89XiUfQF-?2t+e;Gr$Ck1@QP!EdQRRg%ZV?eJauakfnKUXdwV6 z7=(8u%zu#&!GwV$Pzh!z6LWZTz!KqnsOCfl3Xj9m&2S_tfTzQCI2Y)j4?*9ur!oStK=lyg4+dW{ROMiBF`qa4L6PfgO;V1|X z77mjj2d-Bhd{jL4${r6NMI9V$tvn*TMzbn;YT^}%QHif)^5x((!}^wvvb&!!DCS~y`G zql47#=}*)0(8XgFIleKEE0)gSCIu5 z(&CnUkv{(R*7WqQlD#t@W$#yT&l>UheA)?0%;aluYOGf~9yiuoT`{vgJL=BRDnwIj z$$9xav!{=nkF9BJJHN?^6#l$(@wRQ--bN0H5^6gnk|!1c4#GN%y&tEmOM~yEW3`my zx-0p?ZSSvjme4kpgmx6Zq!hh5wfk17?UI72cPNpm^|BM-iDYd0PDj?=ZL+$l8bKSZ zkLqvEHr7BOln%!a5rS{44WA6wS{`(2cvVGvg5dVYs5|ASmO3l?v?m@4x~S}2x|wiH zWn^2d4RV!c?LdrDo3%@QnQDV7cb&gu)`Wxp@bXTXRD^0!5H(q{<15)KRg4&o!mIM4 zaI}AwfV>PrXzD5HQPp>SU67KpVfRPCFK#jX)y2^|qpvLf>l><8 zawq-r{R}0CI0`3d)_YGAhgY`!xFO>7>s=h1IOW4r&*j4%gun7fR(@Hjt0E`95(J); zs1P!v$9@=QmkN1-_V6C5Xb;YBZ`={jXE9EKyt4XTCSfW*6?VcJT zf5_FqjQha2&)W)If%Jr89`(Ew?fm|Lwizd_DR26Q^^>xP1ys&3j*X7juN$d?aG|5I zDQjtE^;uIZV`E>P)&VBuqTf%l5tr%|e+=^d-awct^HU2iQzl*i;mJ0Yv6VXAFBrX- z!v^Gxh0{75%N><QR9}v0cMqpK+0%-jY?xahGv9uag)lDNWDg`>;X;CO~;ZmYvWgU*cQz zK>pp+d%3$u$_6&aw$=KNzY199r-qgUckB$WFH}jG$mmdh_Mj#vr}05mSl$=HWqwNG zUj5Ocoj<4wk{`(C|8Qi5VQ2}kZ_&?aKS^Nt2YQCN#^wH&gIcY<)e#5wXQHM8g~M_+ zKtkOKAgUd!fWc)r3*Y)kzu>PMeKi2g7g5^miC{8@2r~Y{HqJmMS z^=kUhQV2XzP+F^cK5E^#EXH36+1E^o4WA_HAb(0eL3jlwr^Ka zQ+EZow{O?G*B3+H^>eS@G&S}s$XRW<$70K|20Z&*gQ|}mjT3UtP}{feVA=B|ySJ(O zn;nxf_l=;EpVfVM_a-#(X6>F2r!|G=i~X|OMqUlwS)!=@wO_UK<-x6pLWvM3l*!tMko;_&7VQcP zD~o*5Z?!B%*sb8FrnA2IF?0W+HjC)jAvTSM7Fv&zl`@{$3kwwox-O~RF)}h5#5c!j zi_`Mbtv#XI-S52&r{Sj3ICSUidzs>4=00(RTD<6GA!<`%tb*lAK5cz3Veg*v@h#%? zynfS^ie_;J=Dp$)<6Veeb8iq9ew(s#2mga6?w;SrUoiq}925pk<$X2+d)L}UN zW~3u$zx@UJO)btMbi!UtP=!iG^5Dnmw|tvK)&Oun^;vq8VutRbn|6=s#X# zQZ#hB!m)MqIx4rWD< zqx7aTmET+I6}t>bNEzarp_Pw2dHV5y_*j&|>tKUl9#{2ltuNq-SFhi7!Po6asa@EjI=Nt}KYKAaVjz@Ty4Li`3UP;p>>Jc zMwUlba>{#fb?t9^lp_=eZb)FLTHRn;VEfZ+$`JxB{*lW2JbvpfNS|(y*86f%{Vlu0 z2E~3K3F{iNN={}Dxb93aY{-%mzD)}Z7i*0XQ3?1SWwVAXx-hKh+~q0%a%kk^tFXj% z_34=d451bW25}PM+ln*r@a@V=$`Ol0#Rfu+{C-L06fLpZ6w0p~Jli!&aTLWIr^6GZ zVBvPe*xJj3$`LpEpRh;`w;)1~a>bj}H&qu+Q+|qVQ7IeMx!WBQfHQ*HnkxB2E$eb( zb|XEh8+s29 zUdmW)-M93$!y!tyoV^*D8dePDyot=-vua;`^8~QHP z7)GZaGjNxLcD*RuqnEh9YIN5vLW+WkePf`kMyuvOo+qJJ! zl-hijZCX*by8^WXr5tJjMBGzrtqL-0_ijFD_MH#rhfWki)cveGSvC47WPSfgkH3TF zez%IWV#Oljf&PHK9TO--sjC=claVkXqCpY(_-+F}{Nf0h;# zKG4NN>6M&vM{wFFYqFnfJU2&mjOeU3tZp&C^ljx-W$@b)^HGsr%psF&M;p(ODM{9d z%!3v7t!_Ecw}3a^($W%XEMH^3N)qe-P;Wc#LiY8^v(L8`b<2Cz7mNgCe&e3qo!rRC z8%EouieLE|+)?ulzlT--=$g7d{dFaTKp@0cJ_xnjm&xhXS`(+S2MV`IjKBk4?TO9N z3K_U~uhfH;>|w`Pt)p2l4xhMlyk=UYc|L9eU%fR>Wx%&sgM$d72<<}*JRLl>p&ae@ zWyFD~QIS7@P!JQQ_4e!G6Rt0lNFUe7O z@i?Q`XPv7sOopq$(-C`e=y&pFE@C-{ME<_M?=WHR%Wq`!?rs=K)6YEU{Y}X^peG3B z_f0w^QLxBg`=mw3sNOdq;G@1`2Ijl=_VyV_@u2)&Rw<@BV;6 laMGWq=Ep0WiM`ThOGdJcnHLkYm>FC4r8<>Jl8#71v`LFl zA*qP0mGy`cViaXx;v47G`My8S^}W~izR!05?)!Id&vm^gsQayzOSI^EWA) zJrzvm@&T|36a!%(&?aCk9*V%A(0IHt7zszt0M1p@jI$~>lrZ2&f zV)et8cx9^NFBI|!Fj#14C^QrWaQOpti2$VQvurN9ghJeChZ1$R8e@P33j=+Cu z{HwIUIh+T;90370n9mUB!&mnwSRA|mZ)ilh)b^v z1LzPW9F2j{5eyszj)MDOF>s8D56(pA2cG#q@%y_@#XDj@ct7b7P-_4<4uJS#m{zlgV)ta z27%<$Y$z7aVLjs>70H`zR6esZBg&7e_~V{~BlTW9dG>Tra$aK3sl*hCYEX3v4M#hb zf(`3Z{GgI2kr3cro^s2z@y6-o6U6HeZ`^oj=(IC9+szH8<3;gxv9|lZ^8HboEvn!m z*uQwXoIgKFpGsuZC1)?qe(s$K#DAX}X=zT;GJpKb*r1b>)A#l-D~8-@TxI=-vDE75 z@88~edHTI=6U{7sIWhYZ=zAC()q59eOyrnqG)zxVe;&_T2&^bO^Gnon_dUN=My<@I z$k^<-$S+HC6ERWW7fTcL-CMR0aU40&jATh1EkpVA@pMwE(gSse_lb!kI}c=c;EQDU z_|y=#m`Qdl7*h$*KQ;|3lz6+BXoo;|7bZGc&{X z>?_clANPnkvQ7#B-u||J;&uPXuv#b@m#>J(ge^IpYahT{gSSfqmG>i zpIbeWZ`P8Ur`^ivfsIPf6}As#m}<6A8ni#r3@05YBlpXX*B)2K`K^3v%X7U%4Cgm~ zTsH6XgG#O#eKY}^efnXi}%JAYW#M`b=Re6Sy*E4*=sD1f9UHzF#R zid1e-D^YR>m6V1i6tABgjV}#;vn}8ZBrjP0Z5ltPOz>$_Z6NKD>>y z%->!YryL>8)~q!6thl#lRK)2ha+0(%QkK6Iu&tGunqXb21twk8zdXI*ArHKD^*6KT zygAI?JQN)--4c7wx$yk)t6HQ>&gn}F$rks@*u4k3r0&Lc1o~Jh+c;DT3lt2aLX^ti zg86Rs-!){UX=wQF-Mtlpk^Ljzh8itAm1jO8aFsMuSz zpiAa4Rf5TZn#k|sR97g_u#?&uZ=TQ8EJP+BiV|q^ZR4u9IV*nSxkw3zU;W`Dz73Xi z=Mr(p_0wG+j%FeuW8)1rx4LriH65z^5ZeOmja)bWc^=|^a^_4&r$kj&b!q}4gXA_a zr#GM3?;+TEGf_YsSh?Gyapn3$tEXq7H~Y_gu;`tU()~I}Gg^F}EX`4Sr+%)s^o8)_ z$K!1>JL{jH+9I3j$RUr8UhDczIm8aGgXYoZ*p6HKwyuUj&KV@OroUFu9x${}sS4W1 zxSv;OW$3aL1)CJ1r#+iO!|`dfo^MHg)P!Swt(fWS55kC7Z;S>M4e#r;b^xT_PaPL+ z+V5sw9n!=l={8hNYR(=?6|Lkwxzfv=^AZ(2`Za2?BTj2k2AM8nRemi=Zdor@1|I`) za!@^4XnyWiQ)xg?fqhm^;3=i(PZMU>@+~@;@hNj90eziXrR!!{(S2T*^ivFjqL=&) zr~U3zcAG3MAUuN3DhU|(YgfUi$?rQ~W3?6g7lYBdEW|r38TpkEcD1X^2-=I&(hz>7MZ@o;lJOeBKOc z17FEcda$$lSjbUYAPIzIDWO(Ds#0?=GI*fv3bVRlWl5TzM<RjrpU-di=ue%-Y>BzBjk627Z z_IbHBT+GY;Bu%?t^TD(Tft-+&((k<-6MRgwPi7aUh}f($Qw$D8z9`Hm{qZ2**q|!l z!1K3BpYI~NVSc#;piBlEZMAy%MwT;}IFU?tBv+nvy zzs|bp{A~M?2O=~kiO*5_9y#}h2v`f_b zsgn|Y=yC!$MsXg>@l9YTR_sq2$TR5FJ1H&mO0pv zL}9eN?(48LAxK_J$2@EBE>zg8;_!SSc?bg@7!YsbG{;C%4c9|p~*UEHZvHGaPdj}htzM0?T zCv(hWq9wxj%9%}>zf~I`Sdk%lhYl=7sfGp1Sr<1-HQ5C|kdI`>pTBhCl@vN~fDFwS zWzkAVPfu2?f}J`JT=mxzM$C-8J-2>E%fVaXO|8_}f$LS&vQut8ep@{-XN@Y2X!@bma>nQP)T#M95;X8g|#WudBCv((k5RUUv5` ze;aHgZhpt0Mn&6?b)eh)gA{2fUS9vFEnZzGZfI uyXE6yo?#9JT%(J-Mg=ueD?P@m@^BE;(ffq+QvcA}Poa(Feo8UPJN`e%$cG&O literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Asterisk.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Asterisk.png new file mode 100644 index 0000000000000000000000000000000000000000..df3c69164b0c98fe9f183b7746423b81d7262861 GIT binary patch literal 3843 zcmaJ^c{o&iA0JEBM7apX7^U2d+03dj_9a=G6p9!#2UBKgW@H~!l(LjHktIYCS80*L zh-8a!O*e@w;Uc1xEWP92y6^kPectmt=lr(s=kwiv&vW9O9c>ikG~_@akb<49C0R6j zt-mr-qHp4U&CjAiooD67JIM0o1yMKv$c)DF0l;<)iXT7*D7281Ex=w7Na8Hr#f|6Y zu%AF>F$^i|GKRqnwg?RZ?Ii`XDby1H59|Z@(V0ZZY)u^mOs5ecu4o6i1KR@dr`v{d zfP2Yz5ozPldmRyADh!Bybf4jh7J2?D9%;f$Elqh7dU+7bS%fV9BBeG5{ve&XNcbofy*S zGy)2Z#-ZRSUnqdV`9OW~MkuHc9!`T|eXvvn6>Ee+(P%$;{tb^nT3T8m&^WvW28lpe znd9Kra5FR-V`PCvU~y>pPplo2%cC%V4?OLE;`eu*igrYPuz#9EK&=DdH~{L4p<$s^ zzz7Sa!0{L;Afm%l&?pKHO@+WjCc@TB=YLA+=a#5G*Qft9hG_9mYXMAAKXF8j@3Y(f?rR2;#n$oN?KXX3`2?GOJdRRQJHsjAazOFMay`axwzz(7jbT~ap5g8 zGM989I!N&y$Q|);sWv4xl{xnU+lD<_;Xxcg%~lOS6W(SMiC%{y4-KFyZuy-$g^4Rd z6=BW0s>vg*<(@U|%8S!~a7UNF%&K*dbyaxPCFhbNRS%aWefjjM*S_WpDWsrz(n{4e zX=Qae=-ujA;Nk7}j@+FPR1P+LQBPYgse0G-qDQMU6?8R0h9 zSuv{dbf96lRM~=i9?yfkvt89&aNnEM_p!{)t2R93*x^m>v&X~SD*Y) zWm0FtB3WP7Buto_0}|Uv44EG-mm(EkdqR(XR-6_u@wGFTvD*Ntid8R zzxUqZ%9rJ*7c|98T&9W^?L!5tH;ujmNzJIs92r8N?Bied=B9`*fBmTYLcRY<*q6y- zr`$CLXD#;wDpfpEwtFWq7dsj@oubhp*AD-Coi)l%E>!UJm1ZY`udP+Ud z{q)7a-S67l_rJ~Bx$3?cGj#V_{d7;UQ{Hv^$r}p%(36p&!<%g{tXQ%2LjtJV(+W;b zr%M70?>kyr)ArmgmmiXim8z2Q@S>-thd00EXP;TLi0&)*%!-yadmQ$q+)?I^@SvcO zL7g?7U78=W_jT&Az>Y`d<`|{E&GVXv2zCk!%u3E&3z zu^2Yrc6+d6j-pN;mP!g0570>{TRd-zPu6)=KyK2qO5@f$?a|P^B$=aT?-Zp0dy?6k zM>~>4t&*NM8(Y#*9JHm!&J|ks+^2-Kr9)e$gcaO=>%>dF^_5bc0pwi zM*|}`x8s29(nb}EHpoh?5#bWgSd^RYuZ;+kTI+wnl9$#_aJItAT-dhh?cf8Jmz3V? z1h4WD+#IDMucJU%cumaCIB=jtBk*|r?lEftH$j5nK00(@R{DIGuk7v!eulaG=dr7u zmo@Jl(X^`0^%kJOJMWR(B6<`}oNl$QUPv^%D=c$Q>6g3{)feDnt!U@;{7E)WbU$Xqug))^$$KMdmj>*jz~*MagOAVQ#)Mg1`cy(I^CBhT3}ORY=wwFd{11d z*k*jnpgLmt6ldgF!VQf#UB_(8Jj{R3JDO*Ff< z;9UDZheKz>O>D}oxH_DD(RJHgjON)3GclWNzIBgDsdhUEQ|Sl%Dzba!wqI2aAXfg; zP^n5fC&Lt}Xc=qENKxM9Nb65YN!gY=+U#_VkQN^wU$r3|AE_%%HH^7aUtu?guB&

o~16*UcGT=sOEvDh8p0)NOs7wxba zB@PPh`y86GDHCn31=bicTPkezrQ;8fJ;d?`2!dlvROg=d(K5tU)%=*-Uw~vU>2%oL zz~kuLm4b;09;f%j!@PwY`qZ@7p2~3R64T3tThY)rj>9QObv2P(Wo}XLT+N*DL&p&Y zRqFdQT*@^^9u8(N%UkvgBn>u47hC+=QZAv5Y_4^&bub?OZPs#E67F{oA1&pXx6e^J zAJJTxI8ZM7aMJMDO2Mh==U2}-ejS(E7z`5JC>!T@smz-|qkB^t;6(D()!yZaS*aM6 zg~GE>$s)c+9tQm|(WC86q1F?Lc<*s&ploT6#r@;uXj@gsLJ`rMpE#e#^>U@Rcim5C zzli0ja!v0~itLclkj~7a`u5SRVWW4)pFrAuPM$PUySsENSXV$dzW(FtATK9-oXzI5 zHt}~CP8#wpCne>dyw!puqH0L^aR6H3*AEQfSwxa0$CvAZ)#L>2G82an1*dzvM1}BF zOW#U-l;))_HGSrrfT^YXiPM!*IcMzs$2sRKER3;A*()Ynzg!+(SuLx4BAB^6WQBQa z)nFoIN9~s?{4;MJ4-<$dd8HR{0<4}}*JHpr#~o!R{l1(E^qFXs3Jeuv^&x@hq#Tab zriF=#Lt4?(ALYhS%QQq8D31WcoYOY&O!*13ml2fe#46w51`@J$aKmCIqe8d}{rUth(h#l6K5sstjjF*NH83=!>~(umHOAe` ztBBH94n+Cuo)s{=7HQF1R;gd#q302;#fM9jdVj0z$g+}Z$W}!Mmx?rMNUzN>kff*qU9;pChA`#w_@d#d5+xR@CIG0g<1+>4O7skO4 YI%3-=SX3fidhq+JuWh1LqH!hiKkhIWegFUf literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumEnter.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumEnter.png new file mode 100644 index 0000000000000000000000000000000000000000..505aa627516444fb810e8c0de395d09f9307f001 GIT binary patch literal 5942 zcmcIo2Ut_*`VTS$gJ4Ais6Ye}D+w7SgoGusL|GM75E&=Q2}H6?!rmazDuP(W0s^I6 zi+4BI{z2R*-`@qC~hSh}7Pv>;J#Ec{0v9-}}A4_x-)=d-8>co73`T zYnCAph~>`P?03Sy0r00*Sqc93^tyK!{!tNZ^ARBsNDbLX4v~9G3xQY`#rEO z7<{e?z~s|GlL)Q=mPQ~fZ6X8!BLozq>0l6>XQe-Ry-pv^W?Jd*A-m#T1$JOCds~zc z^o(-zVnl^7s7!quYqVtq4OYMf#Q-{j%i)P=5mx&1dTH>r>@iLsJue~-vC_Ad0iwNK zJka!4yj{qml45A`!jt(udK6OcrgY zz2gEFd}pN}EEWrBI9zymxJkIF311k5BT%VS9G-|H60xuZRust-0})uB$l!wpdr-s> zvISx`pNE!d1nB%wv6Vh->3bKrf0r69-PU* zfgF$v^28!omar%*2nx3xxcpw8$$` z0OEFnB7Ufl0Xl@iW*U6(MkL+|{=(;9*ba-&Zx+z(gdia13%&S!&W9*_eDD`-XD5p) z6}@Q>o5$pbi$0YBF6;sA0WoN$Ps9@mSUd@fCwLLaGy;i6CL804G(7&js4JhzW<~y5 zlwj&5OAsQBK>U>`oN`P+4E(7ulR;zggo+<1I>=l;R|74*gDgX zpF7*xc?kI|HV0l1?R46Tc6P8cBT&uEutXEWyt%HfG-sYj4DcABv%Qr*?5hcz&7=`P z2AK>HDOfWAAY)nPBy%i)XVI|~kPhPM3_Qpr03Y_-^BJMC6q4ohn zBvME$EQyH6W9f7f9ZMwv=2$Y3!Jv~!M1V?!&7RL6n!At<7c{{6SgXt`CajUlB%4wh z^JbWvVL?+81xqE630Mk|fG5*Iz?4N~$;##zWG^s6>;goBLeWA!ZUurCt~l(E2%ML3 z1Gq3x4sKo!J3l6Ieodz6!x|3OfRmNtdu6!afqU=IHns>(w#WrgPw>Dm@be`=0~oT> zw$f+F(h_9qqu)Pf|3*~)lK%_)!-GLs=^y0kdl(U)B@PFKpluKw!M{=tGUsK!!}R@! z{d`^+DE!C+0U(446~o+H>9d4V9S&Y&}iA6Wi1OABR6pb;n^%Jl!q(gHV( zV1O3{!cz(NU-&}@D0C_no-rgki-@ICNK`DqU^1`_3X4LffMx)TMg2p6K5jdIzdwvW z&4WJ)y(~KxQ|0%0V}e5VN15<(wk?`~p3l4g4c?#T-CygO?*s6gdH1))X}(##Z#}sG z>`L$N?cbB>C@a(X(MtQR{_|He5uUX)cm^y^h5u9kUcl%7w{u{zOMi5L`p~%HQ<>~? z@i++IEFLI99$c?N__&z9dDIbsP^CND+j>R(Fp*y+T;;qXH8M38v1P0_#m#Y>!O==v zUp6DqF;tX?vIaOxfV@w>Qaq&Vv1k8xQBP2 z^oa)_q;GXPwt=c|+^kTvc1X`E>VCOtQ0G2>KfiZD2M!RZkCk1kGm0ZSLx4)B;Pn`!hEl*442l$zkp8v&CiFM?NF=iL z?%kb98=B%k&`?f(JSPH?X`dL-y@%K^eIO&+z(aYBH!4-#?o1PbwbWFRGFl*~oLB@@ zDoy&fprTMQYt6f=XS|J{N4`z3Sg(a>^KU~S%!s`#tMmjc@=;e~&}7oEbx>Dpa=2jyI_l= zk(^+?3%Ix5{S#|>SEjbK%t(6*1RyKXr1+NHD5 zrf^?%#GP`arpdZXq9>h(zP`RoRbMAXPWtq@7r6AL9c3TQeOFNUwywJRl#&YfyP7ng zj8}dBx9rOpYW~fHXRA{(zr8#+G{<4e<@$X=Y(huu&3Lw~1m}0{IET+K3H!0_#0yJx zT9U%8pRLF?UJ4ewzcI4iwNEmJib3!i4>hTon3u?_ zDrZcgUuZ3<3!BJA<`1dlUcy2ci9`L5V4Q(mpnI}Aq$5;N+U;LD?)?QFp{!S!e8Is~ z56YRkPdeYfE<#(?QIDcHwwA)XU*B|;dKnR+t*7)aJT$%J-Wb_3O&!vy$+IfZb~iAN zc2Qa4nNBu|IqroxoOrmHyo0D!yuVrAQlY25YUcH1kL{$RxPPjVQEqjB9YL1oVL%vyW9v1h%e%60JFCqovYVSX3vrlqiiUDaOo=wqA5eW?F z@L23;lKlJcEG6NS1EqPrB7|DcxyJI6#w!|b`oXH(%J;hR2C8$mraaR_#ogIoa!>B_ z2B*6d6B9aLO{E_GqM!;QL?fSeuc*y`K(DK)$j;8um3p7P=Td$T3r*>6JU;yVkRMN3 zzJAD_Y;(rP|8)a-ouFpFk$UZkQ!8q(CUkF>+@F1Dtu$y7@4=f`S(*Qm<>NK2Vxt~o zJk+hiNm*<1l?YlHGe-XUJR1pqfce{7n0k1m71W z+7bBOukcNV631c9oc^e%KbI=>lTWh-miEcjXb#>U#V-GMf^(bl5Eo5ox#r7`mE={S)xoO2ZyB%$jw_4w+ z4eqwQ8^f+0dhL4l)80>F8Z`gbw=}zH?!`}@$F5q%NzE1KMw&BUNT2pxG?BtVK0P@? zBh5CYsXO19Xh>dq_D61|(U!WnceJRECtZbK!kz1-Q4EJaSUa&-^2om?>cLv5E_No{ z*a9`%RcLcB{_P1xo8vl5nq~?PdP`a!VX7`erQ<`ogLUy2tx9mij2X!kqo*Nlxa?7Z zW#ruesOZh30_)fxLZOM+0-N}O00@>WWLcSsr+A&xGVnLlnPgTUb|MHqIa{$V@bB5#X#!Z zn?BRfSzws4W#ndJC8pzQVf^%{>s(V>%9m$}OZUBPTvInWY&S`jgf(q2#wbKZMGoIM zteFFGPv7g5>ruPrb9!Seu>SUI2ngF7urWrpqCKwVX!h~)e_$j@xc}MPZ`qzx%lw#t7g3i4=mX{Z}%V) z^8IW=Iqqb`1N(mX&$R7m{1A3`MWDmRiNW6<@h}b*%U4UtT_!hf&+Su3tO7wY4?(%lq+436~g&muxp#Ov@FdiX`@W>pR9@ zwu{@`JfXvCmBq!yp{G|TH}nYf%#nWf*z|z};i^>sEX@SB`pjKK{6>{yORYyD;M2@R zKgZx7-5U#Bzpt3}$S$^Mw|;27u9rX{WGO8%?0x$-YJbZ{UtC$yg`>9v-Op7zGCQuD z>=Mql0Q$slaLr)yln6h76mDxWg)BFuDUR*JRFp~>eA-+p7MX`Q`{jxHN&Uc+ce z@gtAd`tMN-FdECs%F4am>^;5GU}N5q3f#WBsVJx2-A==vVb8Da(v|4PyPPCfeE+q< zNU6QgNHiXIG*Sh`UJOs2O_OW+Qcts1r=tvm>V*UKOfTtbpd8J3+D@XIUj4Xj$I8jj zi%-74siJA^7~b{f_MzE>kM@J!pWJw%i@GIV;&klx&6_uWRs}Cn)DDK=eMXnxB#af@ zC~y}I<1m=Ytm(E^{pWXD0-uKVJ$x8w>&p;S7vwycZY;R-PnXml0-NrTh>T~mKMidR z8^$9KF=qkH1+?W)z$*>2CH3P*G5a)Fe%Yf}i?ON*>17r9fT_Kt=_-#=#rm~xe3x4v zxm0x)XDsFdoG}MHM$nD!M zaX4qVn_ID@NjL5q^xEb)EB>EV92bL-?$VYhYYPRwVRJJ7rP=OKl1751q=K0``B-TX zJz*m4=;&Bq%|3aU+uy%k; zX-}l;Wl)PcqaiM$(T88$J2>7*uT)bgyd<`(&4DNT3q*GIMA9U6aI@s{IPS{IUR5bX zv8>DHW~@q8FIKfZe<6%al$$~oG`6M%9bcPtBV68clqjkcyG*ya8~Y8Eaj3rHpA1w_ z=@<;l--ktv;TH$VA8(C#qQ(h7ks18~ZY$tYc>EGsDctkQh#Vh zjUJXn0AY4zKr})q8w~*HBWR%*Y%rdx;EVSUBpN8qH#93L1mX;oT(xZ>wxLLTK%iw5 z8SflrhsH()W8pX@grR~yO^>aBfTv;e_I!66tfcUl2sPM1>2FeQ zwhjtN5*e?c4T1r&8d};4I&hE%45|f(A6L+XXy}3=x?l|`Py?o?1<}*gRQTsnVp}8Q z{Pdhm&Hu5*UKuC_P^qDMU~oi41SkRuB9Z;U8gMuq4ABH@Y6963KuRQ$ilG6C6y-k} zOz{*fIWUwONFpliYQ*@G!l?#IY^Hy^KnS(9{Z}!O@=u`HAp_Gepp~$=KOi2a>kIUQYe9j&a0m{lH;B9h_4O|0@L=@)mHikkNc1K{avT*9kw5# zf9U8zcL5MxJkSq@(*a`fS~@@s1P%k@+3MgJZ74=p8><9nQv~mp&VQ8BpDlKM?oR)0 z4EEyR*1{9n{X}Lr&Z0xYU3N3KpiGU?wBcD#_d9m(VqRxI{rr^YFP2g z(wZ(Nyu@@eMTx+bgq^4vwA5BbCt9_&TIuYV6N9UckV{D4_G|F&-uk}y0Q$Rb(j&N% z)qSeOg>{uQvg<1M@^iWYW`)O(yN22mD`;A^z{99Co5-K?btEvx+B9!o=N~u zm&$h5S1mrD8Zw%gn26mR=-Y5#B^0bIug{ONgk@l1qpmV? zvO3)KEv~A#!7Slxmojax3&FJW-zNFyU$Y6nS!rwlI3TlDw?{AVDhw-Lk;)A?ftFg<>iGs)~o)Hz}y9M+<#WRixfGpPql=T13U}d$URzupVb&> zpjn>9c9_txFvs*@bqS~NRod$GNq$k>!`pP!r`IEKBg?;c&f@KNoIiH8tb?WJMhoxt zUE$8EmlHBEd#)JkxUc2x`p-idxkg!D@%!qp;2I!r%qAQ9;wHyeeK@0_j2=-Rfk0e% zO5#zApuKBq-c|O63_s?!_{aU0obM3U_VfebMyb(4wTgE5FxO_`QdHKZcL|SP=&ScU zCg}bgs=2-XYje4!*0H^lWfe`c$>l4T+H=a#BDj#e;s0BNC<>EplK_N#X)qq(-k`p? z9Nsq@lxk}(^^Rw1^`r&UaAshv&izSH8KkJix7juq7AFlmFKkzQU>b@}&;(otB~tE4 zw$F;I&Gg<*;bcv8W);P!*r3fcAeZ%Iqhc4BFZgX9%QSy(k7Txa8RuF&L`CqH4x^@s z<&L-aN!Hy`r`3iTDWdktt&-_`18>kjOg`nysAw`;f|E>uO~;_!TwBxRstu;O&oQ+KLnhMp^J>M1et8;|74?lbC(5##E` z3#v2~7b`g&TZy(=JbK7ldBZ{RL+Xzg;9f2!Vg=uOE_JLu{9B^AMjVf?VNJ$1W$P}! zGQnBKHOr!L)6Eex{ax^A!qiv~Z29Qe!q+y&+0(Tlr(6WbR%Zq>6H=t0s%p6qj7ey>#7N=+eQ6hi=$4*y z86!`pe?jE62jpzR!=FSff43#QNmU&ATt`uk4~8jTr;fcABK>$@WHoGDVt#E&PM^lq z*3uGt+E`i`n8qkp=ZOHk^84=GPXEGgMxxSXpX>n z5N{FP2QiH0mr0`hrBYD8(pyM39nc|zD0D^s*S1T?R^xY&m-bbt;p^qlb}c%#v~lFl zkH?fryE5smwYgj;FK_RMF(UOhOcmxw8iS8FlP4}a84MO)%r`hIajUbx<=8!DZuG}! z*wSD%wu=E#J8w&GHxcILDo3TORzSci!=~)J&biqE;ed?l(|n8UklCnoLC7aK&VRh; znwyDTiCUXIMe0a9d|9gD%-mAG;koGtUX7mV4Uge z?}rt1JQBJQ@-{JQO5JV+A~@*5^?)T|Gbh&itvzp{TLN0F8nYB<7FcxE)@1m~BR;Mr zYdj_zARZ} zem#$$w7oVLH^Ai@KGXkzA@rrjKjkU=+WRK`RpRpZw>c#qR--2z(v@yW4n2>gFjV;H z?Ja^|$9M!J?l7fPQII>sj{}|e5A^U&1oz+PqmMR3kT7imuUY|sc$%QcD7&8aOau>9 zo>b(NS}#DvHr4-biQ|gPDDn5fT_Gn_*gnRz@qR4nEvfO^+1STv-()aDnBEyaC3kx&` z|AS>=IsI(1U^s*{qEBM|-m!Yfg|>p5KT8dOxAL?sY`Z=~X{%wf zQ|KkgTtZckZIW#Y+m|O+L5tB@sgF80L#|()9Uc+tLg|lw)c%zjPvW^Uxhzwfzz>M2 zrs=V)7gh(_L>bB(ufF-IGLK|c!;XgHnY4s|?{)NQZE!Sd&59`q8iS3wA5 zM9-z&$>aW&pvf)Y1QgBH?3Jq_Sq!Ck8}ocUmE(`z+Ez>1K43DOCR}wr|Hj);j%Sir zqv|*g=A4b5$oWBLXWs;^^PoD>lRPRWP}Xa{DXo|w^sthh0zLdWI#p6; zdnbBmKVWol@Q&AH`3mbY=-%7nMAxaFnH&}SrWEN2JC!xu<$P5DJj44r?K;`;i(t(w zq9|P??U`4@86Zz+&MC<4w0FTd*HTeCi;Fis0$VfrKtn#u50+O`0Cm|MO=IUPZ^sOX zelB~k?0LlbnVLXNkn;}HSq=i=P3rV|gH9!faei_U)bmbxtI0B;zjg(>wZ>0e4Jtn& zBEG#GYe|1Ri{mxK(SNq{3%n^yp?bVUsMkDTJT0xqvJp(Z(jPh@?{j{9WP`|2 zh(*HFB06WkPW{*xTkt$Ae61)ZU5GbM{XGlP>ahZl5nXq_JQ#3pNF}$^&$>*`qAOv7 z?*n4o=QU}sn5#eZ(Ts_tiAQ``A_S zs1;Z?Ii9g><4CgZ28z~Nom9&LCS5@d#xlkW)$OvvH#6GLU^f@@qAkBu`ma^#!y?6( z+zc;G{XX!r%06{vNH-l!B1?Eo6L}4f!|P9}21eQn!SD+LGoG^swWQ*eQp=OSK^gjZ^4eHtLWM%!S5?()x>Y-rJcpl!Z?SCFg;I^G5|71}LoKTx zB$a{34M|q-iiGJ~(f^|(0 zlkA{JJk_PSl79NO*6BYSJ9UFJ`BNZ8gj#gEoLuU)E6@Ysjor1fi6bXg#4T+*FJ`+` z^$HO)hHYGds81bFaD$y;A*XHC4p)`iC;l)R|7QEW>e7=7a>ZoK>qf(a9J+AMWRK@9 z5!x&hOQXt=5=6A2mvV{#8Xcnc32^CE`S@k&4;y3+sOJO^bKv90E@R$(=ijXskaL*B zW+t}g@XD1-JPYI(vUT8t0sS>t9wzp1z*NqgO!_0C=nR3thS%cv)%@x{Bhpi!1eOIH z|FJgSk$ymV1EC-H$-%(G=*wfYH~J}M$V2%mtRuqF*l~3@dF-*l)lH`WOlW6kC#&}L zGHDy_?d?5OW}UT~U6LVa89`4&J$-^|vbJYjFm1=AdR&#l$fyvaHWt1H9NQ=z9v((S ze`(GSu9qPDD$9pYo`*Z(+mc~gS{VuZ9#MHWRDGI9x$frPycyG`!nsF2EP71$D3T?= zS}s@m?K8bgB=rnKYpD;b6V>2R(oi1BncPyOUD%}fvL%gGasR$4sKckVK_xQlQE0|< iP&S>#Dvjlq1UzZ-@Bf{$_-*$O3d+pRw9>@q{Qm)OLL>$N literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumPlus.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/NumPlus.png new file mode 100644 index 0000000000000000000000000000000000000000..268410cf2afebf2147169a3c120235e828604390 GIT binary patch literal 4636 zcmcIo2UJtpx(*;EgsK86FbTnVh?q(UBtTHA=ukwO!V^LoQAk1(LV!pUP=Nta^p4U6 z8_0+tB1NioR8&-?C~X885s5NL)ByJcka6ysd*7`0*2_BQ?0xqB_xFE)+xx5>_H=hq zS6!zH0)fo+OZ4hubsVD)@o!(D6fdEu_jmh& zNMVN~$y9a-4Ji!g0Ma0kjh&D~rtG8fVIedIlVuB^Y-onVm{eQ1pM@LRjpINIWp0h( z(sstUdsAZeQ3zDH9SLS5Bmw~8G(H(73=d=Rh(cTV0xl8g%Z5>K*n$XupDlcgOd-tQ z%@gLp=F(smNIZgq!CAm82}lgy97iB*f??4ZD-_xag)v89@I)M%h{eK|esDk=mr5sk zIXW-t0^V%lp?p4vh(bk0MIocik!&slg&`0KC^Qy@#UcO+1TUJ!CkqiQp7B=%M;ed9 zWpemTHVY<0B!{pg`L=L?>7ohYoMl)RZ^=!7!%#vp2ZceRWhN~MQYp)FoJelif^sSa zMGK>a(^z~SAd6X+<%F{NY+fk)-#{-<|49MhS~s_49e>FsJbYONkMAS^%vf^BUrO`5 zqd7E`7mde`jQ>Rx$Qmk{ zPyQc;sT3le%?&35HZ#M?3>u2VV!&a`o+LW3!`NIvF~H9J+i_P12Tv}W&I|)4cwR2{ zFjprBJcfYBBd|!!0$n#ZqAQEXC$lItS4Ueo;2$KDNhOjka9ArEmWCi$S>g~ObQ~E$ zwz9ND5G+FoKqAxVAtCgy>mAvYNLd!h)-M(Wl}!OK{-8%Trgm0$&96581owkF37l(!vQ~;ee1x5aT$ng z90jaI$*O1(1ody!ETl4VE0YH#S@e>!owSHQ)GlN%kxY?Qr7fHyOGg?N4qF^%{zWwY zmfcJ1qe5u_=zqx3MKwG&ogYQ!(zY;w$o-u%kQpzt9dO&9`SZwv|IGgH<Dj~i`@|r z!G3vNK*phFE=C$t%%}SPa%y5=a`sYLsTb{)UUqi2X>{3!G*c#SWpYG9{CF3_PZLVA zx$t~^{_Weht7qQ5H0$c>I=XxJ?l+G9DesCO?+cTeiovImf7&z-xsFK@~sHq-c~`_!o! zd!h4rtrIEW))P4)?$z>CE5prl+OseE`;mgED9DPnnP0wqQCu^4r$s@yLiKIc)uZ6v z+ZF}tF0IVqlj>0W(ss17vazD(Xtst*Vlm~K@?^jr-5AxT$UKutf-j-)+=DUwJh>u+ zGkj36@zL<74lBZT4MyvdT=bG(+r<1HiULF1SF|f;H`mlW%k;I$(N>_4H|W!p+s3YH zv|fK3?DKTEAg3+I_xP}lHar2Ff~LVfKaR3@$sL2{tLkdyr#4|i#r1Cc)jR`B)GOWE zT$-vJAj6(#wGV|s3ba{I)EZx|V>ykVym`#TBaQK}pf2X~@4tO-8z;SHMItq=w}E`< zuimTZ;e}9fHF|c%IgUBs-@oU#^}j#P{LY#1neBp5c+f!*8on0#t|p~Amk-TfWXPRz zILu6S7jp@zW*KpF(&&honB8w~rt6JF>hP_=Wk~~7yg_^G%BfecO0OK8DvXrxI5~N8 zsy!q4^|p-lR2@B1s-k|2gMUQ#UB&0P1dUe0y0$|`V!um!>K=g$iokvH9<2}M{B%CO zv`R2m$F~YfjnS3AJv(cddwLAicKh{_uG86?k__P}F1La3zH{yGr0-N8vHKgD2M%fx zFv>!0C~58lp%;DuuaCMx)?OB?P++4h!P1jDB8Xv}s#^b9|6}ld9;_D}(jYI7d?E*vvVP zLZa>-BT+zV?}VlvX`ghBh?wBg*r5U%TqDgB6++^Fif&e&yPXBK_WhWb(0;v)Giho) zk({oQroqJL-t4PoZ$E$Mi(g7%z=T?#97dv2pPrt+-K?Ku{`eRKT3%bpQXlH`L1g~u zT(ZgBR&sgUxqs|s1P=acyJCvViR*83hv7F_!Z5^ag?&qSF)Z+s? zJGKr{vX7ew1o=sP2=N=3CW`$ek=Ib)YMRqJ`?Wf|2b<{Awo9{4}LFKlAh1!7LThHn$O}c3W+b(hHoVZeSpjpZ&~C)S@fB zKampG?)S>%h{wD2LO1cCC6M-~t#ew5@v5y9eec`f7)PJUG)N`UIEsdg(4t{+~Ng zhy=q3bdmTvq%_ypZD z78Iz?6&cI;12I^9#AAmpRaAiIu1!vq4hD#mp~T?MpY6Z+ zwbw;_TWv0~T(AN_h#wQz75!9Dfc!W!vwe)gV1$b=IGs?myC5b{9#Gay1M)f(nw<#7 zt(I7Ym}`{pUK3KBHKqD|ZexYMgbyNR#gU)J1}YT@w5G2`u~II&#FTo z2bDkT6%%?!+b+r5xr?*8k5Ed5>h{j_o1-iylJD(P+p;-H!SmCN7LRQmnv;pZem5I( zq^fi16L8oLHs2jCZR^SJ@ZYtIsef1Mp{ymiuiXVM$rL4=>eMH0bO5#T?1KlFO%iT@BtsRO%yC%F_XVl)m+djKJTgQ6u zbItzxB)CmETJh}MnY;3LFK2xe?w_vOtVZnP4N=NrN?1j^uC)-PLD`UaI+ZISZUOS5 z_NF#vMA3OuxS+3@Gk;6p@WT15Hb(D-b-q4>yt$J|i`pAS#>3%hRl~7IUf(H8s482R zUp!l^P}Z3R8R!@_y=jvRX@2v`NC?p_+L;Y)n+f(-^z%6)ycBC}g7>&4#x%sh zxbDGmveW8&GoG6|!3JCG5lEy!g;r^)nH-BYjXoBkR)5a_OAaJHHnwj%&(D3dG>i3L z0qpKuqe_t8w2t@A^u4cAj7$1(Yx{2(9oA7qN?*Qw*{Nck+`i$?VQKk>i?GJ0?PDfk zRtb+iB-czb>b*OljzMFfZi<4^)!~}ZSGmGVs}R z?JT*2#;EV9e&_PEdP1wwjqsf)mre0;L1~;%VsEE+yR$0QFT6~N=ksytmJ@=@6%Aj& zb~Uu@W8>w6udN2l-0vI~b>x4H%^I*)*|`Ha%_f50rWctD?&YM8hS~AW*xHPpK{`SR zG)+gXPGijH{-+--^Ag6VKiln)2o?6?bK}Vn9m5b@_nkF3DW?NG)u=o`gau9u^k=WL zHl=>qTnP@ae3hH*p&Y!T@`}M~(L+gGYnD@dhdUJ|ZXXa!`>&q-B~=rnZsgbV;@JcF z8+}4mJ!rvCEEU}Wb#Y$b{h=<*$nipaWOR5B7auil%+Jd=CM#4aCv{_ONu;^<6qI^U h5=@eWQr|VNP+EN9{Y+akT=xHstCPFq&-TGd{{+1a&B6cx literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/O.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/O.png new file mode 100644 index 0000000000000000000000000000000000000000..31cdb61d0224c48881b812608f58882fc3a454f4 GIT binary patch literal 3967 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/P.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/P.png new file mode 100644 index 0000000000000000000000000000000000000000..b8549ee863dfb4b58c2a129c481e9729be376d6d GIT binary patch literal 3758 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageUp.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PageUp.png new file mode 100644 index 0000000000000000000000000000000000000000..7165692b81ac1247792fd006ad508cf55f162f37 GIT binary patch literal 4298 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 PcL8_C%&_$Im9YN+wSTi$ literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PauseBreak.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PauseBreak.png new file mode 100644 index 0000000000000000000000000000000000000000..0126780889847b6d7b3c2a8ce89bcde707c6e268 GIT binary patch literal 4815 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 Rdi0A4X>eJ;MAtd;{{Z@UvkCwJ literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PrintScreen.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/PrintScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..172ff12c96b1bb2100a7184f49d6aa327b316991 GIT binary patch literal 4575 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/QuestionMark_Slash.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/QuestionMark_Slash.png new file mode 100644 index 0000000000000000000000000000000000000000..96bfa9058bd366667c06508d8cb48b0a49191d9d GIT binary patch literal 4114 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 G*C#rMnM$3 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 R`+wd5V|}zvle*ir9Gk*X8 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ScrollLock.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/ScrollLock.png new file mode 100644 index 0000000000000000000000000000000000000000..0bb90635bc6f43e9e711007a8ee1825bacc420bf GIT binary patch literal 4883 zcmaJ_c{r5q_a8>GghH>an5L{X3u9)?WbBlEPs!4l84SkA%rIo-${S^W4jGKIfeKoX@%M=X$PKS)39QkQM*{07Ay6 z4Qx2A>#v)Sm-9?AlUe07Qgp+!bX%%BJrM6t0_YN{ZX}Q~1@A$!A>oNZ7u!gh001zC zY zk|+6eus_K**ustw>`lNB!P;6NO(vG3fI_03&!kEHE$-8i;^W{XJl+7z_pmSA(gkK{yf+T97Xt&xH8W zj{eqQK%x=+$$oS))fe11CbzZfJrk0j-Wg5Q)F_{5QNR z3XV3=GelzaQEIBHhI)FshDbvVlm^BKg;G~XV}4_eeQ9*OFM;&iHko7lAFTTS#A5aR zNq9Qd-;PT4`ON|=Pb!^C^Q8KL^!0yb9RpHwAo~)jfi&e`Y5IHB1|)xS0EuYiPo;qV ziZhn{Uwpu8sAE(yXc7daLBd1S;OZy{UX`E$fg|8Bg7j^!FO24N#{QTAZ zw=g(^e@lzx%c&=SPT^=N9&-Z#MC6SPbnTc!^UmiI4jM|7N$vIH(lt2HtdbzgBup8Zh@P?5VQK5<1I$iN?Zb%h%n zk?#{8zPh{`?rY8nT+ObI3{B};I6vy_yq#_9@nG?Oz6{#8IOeYLP~ zZjZ>Gi_0-q)P^XEF6PI#(g7-~_`0j>Q}@m^W<>pG9<5@=+=t1EiV7UewXT%fW%Mm} z{pNcWE^<#^{MHEX;*4*LwV{)LCVS9gI2Gq2% z%JtEHws6ICHEPq=lieYE%_G14$jpEuJLOx5h1z`6pMo0qYV_lT%kAv!PCTC7${M}* z78s`b!t`dNjLq0xGZS?g9o}(fZ;?5&<(*(Fz(M&YW3VfcTO+>F8VB@B8+Vh_V}5-v zUyn9j^>_;7$z9-amw>s%s5s7VS41y4kBpqW2+}azHuP%?+G^2KIW;i=;co|uXyz@x zoP&-sxHKE#TtYx}{Op6Y{G_|v8haPw0Hc?dYNa*dpV!91E%8zFtKx9-@W9EQOFKX3 zU=+(*{p#6>rEI&Y(Yz|wRi5;hvO;=>HAlj&g&WRScul4c>!iCx^S``GtcJH5PFJ%c zr@w4m;0{K#zZ1J4NG6(JyR34`i|>b$<)gs-cI^12gEz%ab9Y}YRMfeW{xQMB>KSW7 zav?IrDyXibxj#;=QB(QdGs^nd6Ot+8$NagmO6!&mZ+WdP%Pjt)bI~WR-JP_;)MQ9B zQJP|RAMF7QulV*LxwM=g=_THB7JAaDG*Jbr&6#D7dMt-%1~$hEAr-{W&W{C6XV*zr zMu}MDi_RkKV$=Zf(948k$=$)@RzKLyBHrxoTx~h&5Y{Psaqhdt&3D%1LRYMX6owLA z7bi5>`0~8YyZuBg&}N~4jy}&Ka~nbXC2I0CK)J`FPdz;Z(z_*}x3Uq<(|#rwwvjNR z)K_GkI>{rL!)0%SD%4cj-alzvNUMKDNS;?PzqO8vbZkiVaWfKWGpiLhm9Y3ZuP|Q8 zYn^Ub6`pCug+lJHkbB)gmjYg)j=roYKQps2@ZDY^?MwymAXwTJG-KT&mBt+09TTuzD@E9}Ybu-|ZMT580SZpS^oc>;0~x#qDCF z1WD_?G3E6;ju4lcv$>YiSbDLv8u7Ag|6@W6>%RR1*3S0kw#UF@Lfp&E#p=G+>ql+N zg*e-qS+5uQuQQlhU`49n0ZyjOqDvh zuSD^UI@kmSRi&8$;#>gHLM7=Rg>A;Sf3EgMyxb4AgdbS@Is2g8CMix+``@rMnJ^A_H=u_Q##*z0Y ze((pxvEWj(z6h?MBN_deLC(@jQ{lA{QQ)>JLi#Ww2SKln;%8Y%h;Fl2k%;8z@H{Y) zlGm8{-Fo7Ef)s+~U0z!xe`pvz7IOE)!}HS*?)2=fNNp58-F%5Xu3K@Tk=p|nTZTVk z{Wvqe)9w+_691v}+|YpU;1k1pau?`|W*Ot}%jd)wKGqJSD{USQ&`T1NvBv1hWCpu= zYvP4^*cKB>8B$+ZjYxx>FLDW8wSTA(DqO=tA<&xPk>D==>H^{v*6Yx9GM$wQKk zOd}bT4_~R=MZk7&PgnNI3Ww!aVwS8D!9{2W2~n9TP@^VL*XfYhds@;7AQ;HuZqmzr zDFWp{osi9i=RYO#8vUBa6l=e|kr@&MH=wu)fPkfswaA8ILDE1jnwk^-ahO{FuolGY zV||@gCS@(!KU>|?c0;jmuDrf1=h7nP;k0p_@L`+dXG+;Psp6wdrRcpPXPVbvR z?}Hkc!ft##juUSZdm~x5klu9X%YOCip9Qs>_8_D_nQ$u4wmrP~m4plP$jZ7YtTuI! z8F}GSN>DWK3A4V_>4J;k5zQpuHrdZVwUQ2%^4(}KQ|xxiKQpWaEafEMv*^9)m#cfM zE1PMdSM{7b;rc`%+If^bN6GY~O#mo6Q-;&i6H`zZBRk8|rO@cbT)`9Z%OoFBHJ4O# zNh_VOFckmw#T?uvx&ZhxmN8pUE5AN7fbtzFUdAfCdmWSBER<=(iwAxAY7G?&;Dm(j z^H%Z>2s{#UAmWs$u(}sZDcdn(NhFZ^{Y#s2Lo;OIec{z4iR6~JOII@7cD6Pm2dxY8 zug4nIM5woNsxa4;EqI0NsYmyR#y=z*UW_-3XtQ=uqCTl!>l*+`sb0D8E$j5gJqCvw zRDtI$gO)qd3_$F7LjU9~n>Rw82i8MOaJFxzjxS1zHK-;8bE)4KM5K4?9xMqaei7sa zW$62*mFH0Fl(LZh&?M903U7z)O-`CVVBQ>){wNEK7|6p$ecvsz>%NV#eQ?a6-ZUKw z*%zI4yvt)&i-}f0td~@x)$g%qtGGKi9K09E|GFA{7dVB?WlCMqEMxii2Ue~y1m{unfU7^e^+Q9kp)@|L5r+e@v!`mVk7og?(hR0pYHD@WMJJ49U z`cQYQ%%K%u&okdQ%E~@1+z#nDua!Fnl26^s7JS{i;Sfcwlg+UbZiF2}Be=Bhj6}*I zmvr^c@o3*Uud~qF7Vk63FJI=KA0TQ{lWp)_%!D2W-r$!SAM*mvJO|z+sx?&zC5eBg zLsySr6}HOGbUn;0&Ni4Fsz?fyh9j3R+BUcAeL`|Aqx*dA5 zJ#0i+g|E9k$f&UX+V>Z*BL$ERfJ|?1iWC$e5oK-Z0AL=DXc@uXv&^-~tUI2)PuGV% z$(m$#O52X`b{;u%In_dD(mQ59$_%pHA{SmzDv~TrAk^o=WVpw@y}eh5U#0F0za!nG zb$qf9UJ2%t{g!;g<=&pUxj(1S_8I!;y0oPNWn-Ocd9wJqjWS-XvOhH|M|5QFd8)FZ znf~;EzfHK=bFjlLKT=eO&!egj8&ff|PHzFZMSA_V^;u#gg%6jV_u9Tt67=XR`q}u* z`2t{{XnJk3ZB|DnIl5A>XT#k+ZFvmn8N%O2Z9J>M2y;@oBB*st$1y++DAuaGM#wP@ zG5xcATVuE2HpRY9h?3=;SzowoT`2Oim+t#Q1$I$R zx=MfHLq^d?eD8LrNf1q4ycUo}e#8_pNpK3}Nl2lxyuv6MExs?zHl2W!Y8J}!T5!E&1e!uj0>6i-ii-tJ6) zjuC`1`nlxN4vn5D>p~W``aGiW)<63A`lHy2c`8OQ|LUe!)>&)<28EPgNV^(0{dU3^bz{V7Bq*VNFYTLYT0&G3yn0V30Fu79|hvqM%OGYhHyswIAr5}iYzk#Pg zt6$!~Sd#)jNK_kn!y{w$m1$H~n}BPn=?ZX_<3D!w#di;^u1U|Wvr~F5Hc#G?t`nb& zsJ)z0|7xw$6EdSTtROM|I7rVrCtYynOtiN}>k@ZZvafrz^S-JoxL$^rfQg$iTJL_Gz0C-v1W49Jc9dLlZrSr( zu3{!?LanT;?wA1&rDdfY_c}e%@%pXV&FN@Yd;3*6vur(f)sC%#;)^711*K`X8#5a3 z<pYMb`T9oIGOHYnpsC6C{AYR#iLHO9N8b!^YwcvAULJaNycmzP(3 z>G;?RPm=zs9~WcTCe(Vgi$v>$^BUJ(6^Or&o(aEQ8K>$h0NLluInU|^-%iV|&8&Rw zEnMS#gJ~vMoA4IM{6!!5srx5&NQS)nmN-$oZy7sljxc`x zI1+S9XGr<{7xI+v+kh(fK*|J9Lc<+oUfq#b4JrMpX=!eI1^@uaSsgWZ z6t1VXZYiMfnPRK9AY4@W7Os3J4wD~D;V}RvbPkmPvSL%b7>*1IJ@iZq<1hdqc8=xj z%6GN1HKcLa29zxugAg`Xhz0--8;5WyG+zcEL}hrf{EfiV)lb177TpN!g0_R%am^Us ztfOH(hEv!vXIhvq4NnIf6F`SU421-22A={7Vf*<97={>u|Kv3k?zfJiV9=i?d|xB* zU!q*?NFXx~j{!m(U?4O&3Jt>I4d56g3Xj(ZAz*ME6o!Mskq|h>5CtPSK%J@g?0OwFH1M0{K-~{q$!g?^Zeu9O$`~Qx%425b8?RhL=Q7C@q99kfo;m@}+ zHv$X47|>aCLnIoFL&A_u2m^zoLYR0I5<F`#`v=zK|6&czcnk`k!*k|v z{C;);$(zIH1bB0}ATzVAs^dZXU0D8fPH=$UR+;{a+MK~-1u^JE9)}J3GtY*sf6zd| zq401#mI1-w7!(KshQdH7a2gH*L&B(73=D&&;?Uq9c>4e3@2@@;o(SXM{*+^g+ycOG z3y8v0st~iR^}$oA-!Kb@RxqKR=lkmf3_-4(OXHhEKwjx+#xNky`GTJd|BhE z$foGgkwi<|a_vNcI7DgW0?tL&)LphU;&4=CcqIDq=+|sd}UPp4o+G55obsTr_TLovpz`V6A(>N+9a(($z5h-&zs5(36EQzfIisMHY_+}T^!-`wluIG3 z7x&&g0WJWJ>c1a*MmT*lLgdYv^VeaX0*Stu;rGN-Wwk+5y}5P8ZWW#>0OP&lgjXXY zBVUGwhRUF)>KYZia+Z%2=~P%BIZ^6)3w71~p7fCDtEL_TH^T6ux*b=VaEa4j2^VoM zAwvaC@I|#L9Vg}RloDet5%KGh%QK&hf>TM z4{#}Q&fV@Why^>`jknEYxkIZ?CG9$#X&Z~SJiKat+3dG6yFr~#J@(39o+l_&GK0Qv zZjA3W3gh=&U5SeC;ES*8kkY}i3b{2+@Rm+LfV5!Vt=#XtUW&sJ(Q~}QqShzxBp+O= zue&S)x8at_?Q=hQ(wg||_NcT-&1FAb*xK@}mU(BMcQ?@ZN$6SrCl)Db?!sW|-1{cX z0n1^WzVxg1TZayP?k>HQU?9-ly@#}`vJO$?I(N%*?TlQn0*C)a=&})gs_# z2YcX^C&@WtIpg!=9c6^%V;|gsk^D~nH^G#nfwKFnFqG7e*=YA+9AKdKY%s51)Z?Vw zo^Oin@|vW?Hibg5jgbYAC=r=L(>}7xvBl>?BG}SeD&=lsnHOmkF_V+Tl-7VE{pD^AA$R`yRR=|T9x706F?g!?ZRo~oV0PdB;n7;?l3_O=oZkBcaN74X&`f3Ujrje~MR;dTH*3`m(IsNG7CdudVPfe9+LvnE z{NTN3g}(~@CkBm6%l}sFDO7CZH zqT(M;+Tb#gSl;6kNprY{7{-yy&f4i~{R#w|10D13GtTXr5rqk4luas`d=) zI(G$A4ea+(WMp)#tHnt@XcTbzEbD8|i8R?CJGPG+mv(8iw9EAdRT6A|K>5RIUbQ-* zGNHVP6LeCNY%F7QVYlM_M}%`1U*6_0GfrguB75#5R_1F3(S%%IO~+LkvNeXqGm$Ro zQ1d6-E5~xF*W1xkaq?cPT_a-?-GkNF^L1~X%yJ5dDgKv@CgNRchlPDj65!M-XN0bw zoTWdrrW`JPy^b8yW<4<+{iWkoEy3aVc9Y!4%;JcPlK$QD#G$4t$GiR0n5Z0*dkJal&HYw{&Z#8BgT z_m1M!-L;Bql_{f}8*8_`I&Qz{a~-G(DBvMczN%d4vHu#Xrn?P??g{7IQEjgwW7Q^NC1e$$@-J1j(uB8?J;d3_#Ul8%_YMi3M*~U0tlaQk`>eo_MNSdfT^e|vw&(DCts2(<5#p)7 z{Gre}`uNPJ=d+7#ZMHN<Qk*1fy%7xEvU zV_v`88>n|vM6zGjA}aL6l4Ay~*a{K#Wgj_|u;lxqU21Cm-&wf!_KH`H^50E-Y$OIt z`8EZPGYjLN*m_Fq*Zi5~gBAHqH*3kKEQ>l~<6@HHA%yGYz?vf7`tmG&?e{{b;zBaB z>gk9}vmP99>D$ubpz&_{Wr>n~#m>TC;t>s5WRt$X!jUCJl- zcs-QuvRLKC;+~{iC&nti#+3o1iuz^k)=aAcp>)!-;E1*W9ez^4d%F0Ugj7R8U@r;J_ ztkziL)>H>FQv#Ot931}{Igv}_D7yX0KV zPPG36KG_h`Xa=lpmx!E5Ud=qvNQ#^vdtJX$qs07Nq9Ra=sU(EVoCa`J$qz{Fx-IXu>j^sEU{QUS=E zXF=)vkE*`aV;9D@b>Akxd@A{ytgP%A83m037v%JXyOAem8blm_y|Q~*N%i4g)t!nq zdo#3mM>!JRuAMR~h;uE90U%g%$nO9Z@g?F>xFAKMNvXz-sL-J`Em^NHdKeWyXNTD> zVIIAnpv>$N)8E!_Z$Qln?9D}8fk3W??Su~}spQgt@FDE(q@I{uE4#tRzodh)xy7xU z#5TlwU|u+GPm+Vc;-EeuR$Xg8ML>Ee7gmh?Hi2<1GZ_tyzuVp57MLWjr?KMxxkvMQ z<<~!2t(?*{)lxT_b{N_!o93gtq8fZ7PLp@=PAxvaICS6$p8@IO4C}jnMC>%3^aK)6 z_;~W|2Q?)?H$2cI=R%Gy#Ix?84E4r}k3?FKQj@ZiBPY()TXXe3G(nrD<#joy#M#C` z=juD}jc`bqDb8B5zdie47eA%EpYMK5_1(v?^0#T?;rU8)E#WS0qa-Kvh2ulYCN~Cm zD(T;ub0ucwT-350@G`=hh_-{7n{7xdtJd>*Dxp^GU98I^5A2QY=8!hUe<_+#JQLloipjs=rVuM;Lj~?05 z_uX+2n?`EBDUp_FwJiGgxWe$ma)gCeR$ps6w0hrilzucmQDYye!f|0G-lJK0l43i& zuBbF}AImnj>GNnzx0Q`M1c#r2zRfh=bxk;8h3vj^kH$mRRssZ4-!-L}^g=zX=4eLg z72I=nEZwjp(>U{(MCR!1aMLbuPt;|+$Nlg!2jT|{Mav|=iO#sVxRQX>JZZ&3K~%O9 zH-N?Z1LO(j&Ru?iX$K>|MO?kvYxN>nj1@2V-RWJM)0#iO+O)R%-C5E0dQCK_uA#9$ zb;;JwPV;r>+_UOFqI_w|qfFWI!P2(5Qh*phDxZ~+0wqar{YY9_95XL5JstBOxK|yo2{Hv(&%keqz;t0o`E~Y!JqXGgR zn#mFbfM^L1g1HqGR@g`&CJ+pY5dmNzhfhNemsKDU92O1fMRdYCL3UseXHB>ebPIQO z2f~8^3JYmtjaVU}!UA}pn2C_^xO@>+LPL(rrNV3ZHU^0pXAuX}kUz>5BIr&o2s?og zL=e#=6o4ZT5o8J)N3tMLDCP(}7H5gUT4Hb(C>)7Oz*6ye#N-DFYZJ2AR9E{|le*wH z8Zt;MhNu`!SXdZ3%mOVC24Zj&3I&73WAJzs%z+YZ;ft9P6koLPiv)X61PD2hm?PjL z^Dq zU|!r5FBBvY3q(PJZ-|~E|49KHS|_I|9e-&Hk2j@4Bz6de-Ixr>Uvi7ww?H7q6%+|V zgaGIe3Y)p`i#H;%EBHq||G{yXed@57!~VuuIpt4IffCL)Sml%{R)}gR1es!i&|M(l ze!-5*mnb6a?BrOXAeMM>_$)z~XsO(d$upomQw-9Ocq|@=!V*weoI8$4#Sy4P;&LpW zip5T_Itf@D_Le`h;w;=@*b!lF?4MX+AhVca=69J{0F^Be@|bWMI6P(`h=KTlNW@ff zsdfUcKnN>_t+V)g-_g#_MJQl%xG+KFy4n`u=wL^}QAi{d9*r9}*U5?M$QOy3d;oN` zry*fq(HstoY6;-+Y!U#X2mwR@g(ndxC`*bZ2}J?|EO3AY(Gmb)MdLW4+6#aXIWXnt zCu)=>0ALw^n8yYI5X&YJP)rgWHwuYhfnqZ86cmn4WMav9GL{H3zermzvhdXc$-mM&6btgkip+ZX%~^I3l=2woEE@12_Mne!Lw}nZQI80eLZjEF@xL zoAVb~`e#|2I3E@S!uk4}3Y%aP3E1K=rV#uw5Ki(xDPp;M!NPXJMtI0}Hm!WC<2iM7B3c*5WL^QUI{zxN0DE)KqvdO13#pz`gw zu|Of`DK$7EHE=};? z-eprg`>WCNOB;vhRrzviP=;ToMs1J}SFaErq~G2!YlP?XU`P8O-6g*crj;I=?Km@b zOKhYiSF??4{mt=Oxln?ntlF6Lx^{B-cR_WhmK&ip_Y8V;oG+kFUDNlkXNB&Og%E# zRbkUs9ub!DqO}0nb*H{Q@1Sp4Xm6pYzhUdKNOoXg(O_Fi{y|<_aVg%y!ou}YA^4LQ zNzi#^ZP1hEJfE`nqYb1kkuSrdWxq~t=jp?=h&QZ=--qhKuB(wbr#twcw>-YSrz<5n znZ07;E@;P=4{t}jRv-AGo_T-HypqjNYI9#k6f>)1xlLJ4W2E%gX&>*D*&F8Z1{0vY zF1DaIh`b0M(H#(bMy)xkJm=uuCzUa(MPp-QS_^wV-b`FLm)hqWJB?1Iw(vq0q=~i_ zQ%J@;oE39!L$l12V$c14Zn4n6ToY2;sR@{DE18LUfRq&jlE=np9namjem1>B(a3)^ zKuK$z`MnJ&WRz#i{Kl%Ju$7h#=iJWf7*^HX!G)Rser?Az-{2=FpC=NMW1pYC9Ceq9 zg5Eq-PWD!Qujlx5^jI?Xx&*mK;c!CIPc`B9@=gk!o~}<*@m=^_@2PXziD6#Q!5szl z6n`%@!|iY$9+ z6!$B*N>}pf2g~X4Wf}MS8`B%5jM77OH3^0<2l3frrPEscvuOZ^p&BlOdTh6q-xip& zte1B#>x=!Nsn1rTbVaIZSk$a;xf}0k)c(kG+Vta%$JG)H@7ASY%3PE^5z0+UsOU0- zYe&5K#@9ye85Wl-eKP^0&Rm~jG$TqmrJ{OpHOf#{NFUp3WR*l$FAg_URsQYuKuekb ztZ=s0g}{OZPcNyJXl?C?yjV{>WppKd#VK=7q`{ja2I0=`*Jy^T@LHnf5+k>@2eMmQ zC3hTK<7#PJ-$Kd{I6HlAY|4AR$>?s_aOdELeC_Q@dp`|I(s`!P&oX+t@r_4{WjcDb ze%4Ld!7b8WgNSGM&!D@h5UQ24V?e!SkMmvAaMcTDAxB)i6SNnvQ5dWOKY%yZhwcUz zXi9TaYZ>L?moTzh!q0ID=(|RqYK*zbWFxksW}#+E!J+Wg+)efGBAnOlEp~L*mpOO~ zwWO-W<^^+iN;Vfd-*<0`PGV%tzz11X8}4@vcwA+gRIGaVfLE4Tw!u(Um2K$DzWVu_ zFc4f5$09#}q7~(v*lc4Bcb1D3KYti2D)URce>L)bbI0(#%+(#keihp~KAvcNcOvrq z)s0sqi6!|%2^Hs*ynttIC4&6a#A^JYeca*;@wM%DZHc@f#pTUHq)KntQ2VU~&AW_j zwf$CZgRAU8Wv_90XT|pIHP=_Ewdfpv@hV%>3uvFiP;9p9%866NssN{#-<)uqF?`IPzgKTY4d zc{8qT^OIFN`(!@KLouo|F0WNcHWb)IzI)Ko|1ihPP1P{7G-ROp{M;M}S3BDfU9_-A zwrpo`;2DXaq-_j)GsdXyNIET|*+a?TMWu3fNMMsnN>}Pkjk95cVwM{HUzs>^UlZ+R zpoyvb#^U)gJ~cw%H7*rDcbL?&!DUFMPb_u)8Qckxtt( zx~S6FjA8bvJc_0zqhoFzii{i^H8q*%vCHQ*@g}$QW=C>qZ(+g<9HOvKu1H%ByPh+n6(>2HQuEkp+b? z9zwPUj`-`Em)zVGr;}3Jo7HU{`A+=MvL!+>+|@v5l}?Fz$$V-5uaA}u#1pmFLN}K5 zy$MgKmvxn_aFyk1n962rq-40b;mDQ7ij1;3$Gb@p5d*)ZUVmzc#?Ee!?WxT&QPn1U z52}%C^P{a4A@9-UK0`l2swud$smIL8HSN>G_G#@pfS#eXLsw$~=ZM3LAZkp`1@IL!!%KQRGS| zXmv~0$M;`M7xSl}T}OoH`(W2xb>a>caJ`^(_>t+>i2$j)uz0>C#PO3m)uS znSP|T$TaHJ$(I@XMXz%sOEsStE9ti!?@NA<8H?4q37ih}nRP|u*i`|~W3HYzX2x4R zhN)ZmgOLRNMJEhoGS(}zCk3k(4H&N|(x7>VYR|wW&r!nWN{QI<3lD z=bgT^n*7QNr}u!@8{E0nJbTr$PZ}5eYgc;Zh11lNjhZ!n`{m3u+srGc%pWEbOy0Td zc0EBN8ghN|Pt@v?=j1T!i&KHQ-HuU4bvr$5JyfEc-Dl1nUTl2+2rs)oqv-cV^*-16bP+t9RR|EtrL&?+eR+9my!H+nbqtIHD^e*(9L}%_uCP_q?ayIp-R)L|ou7 zVz9^iyq@!7?pk;N@=~i_iP4D@U2}MB>VwNZalOHhUbOLms(Fmh!}4awtQ94*6Y4$h zImJ^``b*Kc*q~6WT!8lK%R^n?7 zG*2xrYe}DuotM(O2yWcjyscjJI?P_&yvb**)sW@|s zQi#O53~C#Elg`+?Z;Ju+&|}ZG9s}>eCEc-6<*DQ~GLJ&uzGYmMMyo+_Pw1y5C7sy5 zX93T1m+Dk)3K^Q2+f7QNt4sHV735wrxduXm2WNHc*5oa`co~upX>aeL`yXxYNAwst zaXj~3%G~Lr4CNopp-Y7e%cP&Ww4PjE(!Oigu8O1N-hdZ}4$s>Fh8IdDhZm6ud*|iu zO1Q4ua6an2ehs4(Fs0{t4&*OkY+GqyX!zM*JzmpQP(%~7Le;6mHIK4-HeBn;_3#}S z3}c!dkIQmeXPn@-fT36$O?)-ifRR7)M2XBU_wW?H+hNpM{h{mP$Ypq@E9Go0eLWbW z(%pGIEXiX|DX=v85;L+Hf6{lGQC1LV{bTI|+^7GN*68$~cP@`LuI^iTQE@na)&_Q6 pU0p>fba>r~MW%~njO?*x(YPPsGh-S=L;@8q1b_u8xcYyE5Q?|iq; zceUP(c{5Nbl%D4r_Wgch#DAbHNcF-pA zCLeDagU_`EnEY_iHij!eq){j*dW-;IM1o>WI2gg^Ia|KGTxW@4Go39r+WFvp1a9Cq z_L?{$7#Qap#E6SzP??r=7mQO34N<@a#Q-LT%i)P=G0v8gdTGeBau{ccnG_L6I$OFb z4PrL=ti!nRg&@YxmV#vv$aWZesx5&+B2%f$F+@DU0f%?M5lC19g+|8Hh(yfP&l0gF zWU^=h?jBRNkT++`ZDO&2hQmciN83h|Z27_n9Dz!u;_yTqk%&bku%cL=7>L30L{^_P zxPu~wkS!3i`8%q0vy2>uMBBYkja>q6G()d zN#jfg4&;DbkS7))vV>__!8X2_FWScc6V=nx|6%}v*2ibs#vl5^kO8iWLfo|a6pct60RD>S-&l@_Pc9bF+=L(?<_m-Pe9osVulp1) z#?4KcRVv12Bb&$MM~jv!4Nk2A-2pM^Y)Qlu30OQCOCSXi@RM1`FT)dQc>G6EA3l@K ziv7JPg+_3o5lR0dij*7^5CeZH%w*75d?6P=0Aq832oNXWMOb2{(?E0MbNE8UFybBQ z^Knl%w{=23i_JkML;)rVbiL!*0>p!xI$!8!sesvE3 z9GDcm9T_1I3Ba=K$RHLV5J0RQnF%=9vFu3%7UPpPKOq|-G{E^>tI{hbq7lRs5#}*K zER_l}vG!y#9!m|!BfJF3?KqV51O4|HtIS7mqdjqkcP&CEIl|aPQ6Nmj7fRi%5 z02je2aE+%&(B~jd&M6grn!_O)a7rqEREGN#bCZ0atznChVvC(J8VG*86igEDw!>b0Ki43L;CJFEi>w8PpF$l+Lk1=?dN_GCOBq%c?n$~4NqN6C(6=RhOdeWL0A5Tz+> z7~23|1c>ZPxc?v?qJslSCJ-rD5(8lm$Rv}o00=rDtVBX1IXK`M1p7}_^ZR&y({}#v z<6-<|9sEV=mDMp_Du0d}6BM#PtAx+1ZQ2FQWZnJm*!#=6`+Gg}V*>tv^EBD4KDHj* zZ@bdRclVEAdMIf+xwX>%sQ>)kN<{Wr8nOpW?+X8|{yk-%|DWyy(_Q+r1JtL+jhxDq zkJHCN5^mS9!Lf7t$lSTx?Pr_ee%Y#fcLqT(GvbmyYJ;Wz0Ks@#4kYwmdo=6Iz#=n);~f zLbK>fTBN?YTtiXjy+6Y%!xqfIg|$hZv>sNe>>8{a85wzBQ&&fSc`j7TWkvVHhwl>J zjSbHilhOMe<3~6h@8YALUe6kMa8WcWa(Ws$LU^$>mz*aG(Hhs9QyV;TBju*?>8#z> z%a)r`nC)w}ej*ARQ78w&+|~i9xYwY7GWA_t$f) zc4<{VF&wXeDmF^X@=xcE$zIa|F*HKex@spw&pL;*uVkbIoY^ zwYhgsuK8i#fus31Z^v26le4N)DH_2R4`#-M^2@F!tL`#XLx&QAA4?*uGc$+gH={aJ zp+>8Fwi@9kO&*y1kmp(VN-A9oB$u;_FSif0O^-?A1POwi5N zCm;J#t3*#t{`$r9lQ*A_zkM0um+SQ7Fx=BP5o-!-8J^Oe;5nXHYJ8S3Hx`Cm+f+DhA0pW#!?TMlo$@{9Jgh=1M=;yB74s0ad@}+Emx- zG7~8df3&20Zt1y3Kc$|W+%lM@cW2pFP&g}KoJ)+Pgf!b=EBP~+G>3AkmukY_HjSud=&uuWE42Bxyitr0G zEP}f_!Ut2-qi2t8ck;;BH!yhZ{o(noeDjI*^6Hy93DTF^y2&O2^kNnI5=ZKV$}E>- z^W6+DK>0hriu}IHo2`}%k;d~0et9knW+Z?Kr)_$T5(KIz(`!^*jLPl3I6V<4MEKE< zE#LW2Lkv>Y7~Weo&o6~c){DZS_?sDe1qDN=cgyI!r_WZH6n}r4u~8%Ca8qU|?EmVV zV?O`!sVsR298$7j1YzKO1+Csy!LSl;-80OQiy=fB7BlCE7MP1xg|RhGIyCw^ zLP~dq_j6=vX=s+Pan=6ZP?$h6?(lGf2RYamU4v0uTHnZJ>%}`y_x-F=t1&k@z6&*C z=q{z3!bA4nhjv~A2WIUwOhkM9+}oURpp(1ROrKYC#@AHQ@iYaB-*anm*3dOo4`}1- zv2){d6;V{3!OAZicoCvKvxgPxb-H8z$^4BBeddHJ+;0OmbcTG3#7LJwvZ4a2H_BT* zVL9J^@pb7OnnCTc}%bm86^6N~T84{24Oh$_+l zeiWGpaD*^;hKeV2~D>t8669g2J7?RC=Sd6w`JKys8^rhx%W55o5XPEHOz8Oq*r zYyZjl3B_%*6}PWTWx}V$aS80E`szKS8nr(cR4R<}OD2k(yN2;DHa)r{RGrN$ZKCYjR4z8t$id- z&7~e%37+O*kXMD1Xc>IsG&=0s0qfueQrwL=rKl=0^AkF;FM=1l!l?=>e2-6&XZSLk zOcV#?$W@#s&rq+GXD}t|wToblTJbCwM2mIFouw+>EB#obm3QTA9o?>c;*<|fUfUHEeI=DuYM35JS!Bi}SN?D^r*?ky;5Kdl;9 z(+Sn25sq#t>7dnt#WD50`}Xa7;Gd4$6qzmHs-7M8Vo(q49FPvy&&(<+DvCAy{>}Nz zm$P;Db0W)~{5R|nG~_xzK5DUy?|3?R_waM?tq{QH<4QZy_vhr~T-mC6cmI!U_R5as zyEY7H4E%FLK$F1-LeN0+(sFD6T$HcAziyA?*uuT`$R{-|itb9YTTeW1%q-O_HT_4w z*0@*C*yGJsOE<^VwC;UUtotVDxmOVlgyQvvs+NtJE?ky-D#rqTs%KLh8$g=9`O)#b z^m6>kGFM}#Hm7GZ)pDCf_06xonfs4bP_u8-O0y_`p!$gf=;=?$H!(3ef&Q+>t|mIu zkU_clMMzKF{L+m!tt0+0The;zAn|!%qQlv3%V(;YXFa-adD`@`M0!Pi!;v*5t@B-5 ze6^CYo_t+jZS~CZ>hUk;Oq9Rdb+gOfn18;ULn0+=)oO+Z2VlL@9`$dL%``K)05KK~ z+PMVvb$%O?WV|6U{Jr^ZFsAmF*1FTw&0Ds#r4p;3jW^oat$Ky7B|y$s)BG+%rKP2p z{d*5D4_xkbSX$Eg<<%zDk$p#wE?jKgt~Yyl1dy$}W4x=25Zr`@Y!%tr*|Aof&N&`i z*EZ498g5;Rh|U}yWsy(?KkkNl$5QT9we)t@&+J(p&pGbip3-^TG;dFvlcL6dYklj zt(~}b{kMl*L)Z<@_kY>Z{jSidf0udol0fj`YnyUs*#d;Ac4eG4=m->&w4ms$u3D0* zqH2*ouVwjt^s<*b>X1XFjDFv`x$3OTT6oV9*Mhis*G_LZ5Tf%?1x-*9B*bFfTZu?Qlpr_mVSR-Z!PkZd3ip%U}dkY%q#m|S>Upw4=c<CLY1{ zt9D0Tk<&+^=JLeW-K~J!ppNk@4|FIzP`_*2c1Ttnc7|9FVHd3p9$LMp(cU<6d^FSR z@E~y$Tljbu)8@?t;NNh$ttvF<(jjZzd5-3*%%Dx_SFr7xnwlSk^%(`h2Og<=LSDCv bpMQA2b5?9Up>nqJ>$K-8U-z>sx9<2a!(E!s literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Slash.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Slash.png new file mode 100644 index 0000000000000000000000000000000000000000..93a46e6c2a1255773c4cb01c7a4e39a41eef0dee GIT binary patch literal 3836 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 NI@mZ{*I4<+{RelG%kTgI literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Space.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Space.png new file mode 100644 index 0000000000000000000000000000000000000000..3c5fab49a0e24e44646ec5b23298b3db6088c1bd GIT binary patch literal 16702 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 NQcmr~C)qb4{~rd0@3Q~^ literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketLeft_CurlyBracketLeft.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/SquareBracketLeft_CurlyBracketLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..f242b6896389cf05d4207828049e69159afe2941 GIT binary patch literal 3871 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/T.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/T.png new file mode 100644 index 0000000000000000000000000000000000000000..bf3abb57b815b8d1e3240a3c5f575385c5b827ff GIT binary patch literal 3617 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 BJ|6%8 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Tab.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Tab.png new file mode 100644 index 0000000000000000000000000000000000000000..deb103414042806e2429fe48a285169aa8616a97 GIT binary patch literal 4832 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/V.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/V.png new file mode 100644 index 0000000000000000000000000000000000000000..c4aded6a2cff212e65d9c4d22ba74907e9b8b6da GIT binary patch literal 3944 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/X.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/X.png new file mode 100644 index 0000000000000000000000000000000000000000..d457eeb800f98987c724f125e428a688c02e5e13 GIT binary patch literal 4022 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Y.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Y.png new file mode 100644 index 0000000000000000000000000000000000000000..f12dd786c9fbcf7effa918d6193d62ce2b574cae GIT binary patch literal 3836 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/XL.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/XL.png new file mode 100644 index 0000000000000000000000000000000000000000..9f999d4070767a2d5a2d353eb53d82dcd7d3efa8 GIT binary patch literal 24099 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

a<` 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 Jd*$x^{|`Nvzy<&S literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/Models/Profile/AdaptionHints/DeviceAdaptionHint.cs b/src/Artemis.Core/Models/Profile/AdaptionHints/DeviceAdaptionHint.cs index 41f59e4f9..b51e68547 100644 --- a/src/Artemis.Core/Models/Profile/AdaptionHints/DeviceAdaptionHint.cs +++ b/src/Artemis.Core/Models/Profile/AdaptionHints/DeviceAdaptionHint.cs @@ -48,7 +48,7 @@ namespace Artemis.Core public void Apply(Layer layer, List devices) { IEnumerable matches = devices - .Where(d => DeviceType == RGBDeviceType.All || d.RgbDevice.DeviceInfo.DeviceType == DeviceType) + .Where(d => DeviceType == RGBDeviceType.All || d.DeviceType == DeviceType) .OrderBy(d => d.Rectangle.Top) .ThenBy(d => d.Rectangle.Left) .Skip(Skip); diff --git a/src/Artemis.Core/Models/Profile/AdaptionHints/KeyboardSectionAdaptionHint.cs b/src/Artemis.Core/Models/Profile/AdaptionHints/KeyboardSectionAdaptionHint.cs index e8c6f09ba..2a68be352 100644 --- a/src/Artemis.Core/Models/Profile/AdaptionHints/KeyboardSectionAdaptionHint.cs +++ b/src/Artemis.Core/Models/Profile/AdaptionHints/KeyboardSectionAdaptionHint.cs @@ -38,7 +38,7 @@ namespace Artemis.Core public void Apply(Layer layer, List devices) { // Only keyboards should have the LEDs we care about - foreach (ArtemisDevice keyboard in devices.Where(d => d.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard)) + foreach (ArtemisDevice keyboard in devices.Where(d => d.DeviceType == RGBDeviceType.Keyboard)) { List ledIds = RegionLedIds[Section]; layer.AddLeds(keyboard.Leds.Where(l => ledIds.Contains(l.RgbLed.Id))); diff --git a/src/Artemis.Core/Models/Profile/Layer.cs b/src/Artemis.Core/Models/Profile/Layer.cs index 5e910dfe9..01754e172 100644 --- a/src/Artemis.Core/Models/Profile/Layer.cs +++ b/src/Artemis.Core/Models/Profile/Layer.cs @@ -272,7 +272,7 @@ namespace Artemis.Core { DeviceIdentifier = artemisLed.Device.Identifier, LedName = artemisLed.RgbLed.Id.ToString(), - PhysicalLayout = artemisLed.Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard ? (int) artemisLed.Device.PhysicalLayout : null + PhysicalLayout = artemisLed.Device.DeviceType == RGBDeviceType.Keyboard ? (int) artemisLed.Device.PhysicalLayout : null }; LayerEntity.Leds.Add(ledEntity); } diff --git a/src/Artemis.Core/Models/Profile/LayerAdapter.cs b/src/Artemis.Core/Models/Profile/LayerAdapter.cs index 77717340f..b60d901f9 100644 --- a/src/Artemis.Core/Models/Profile/LayerAdapter.cs +++ b/src/Artemis.Core/Models/Profile/LayerAdapter.cs @@ -83,11 +83,11 @@ namespace Artemis.Core { ArtemisDevice device = deviceLeds.Key; // If there is already an adaption hint for this type, don't add another - if (AdaptionHints.Any(h => h is DeviceAdaptionHint d && d.DeviceType == device.RgbDevice.DeviceInfo.DeviceType)) + if (AdaptionHints.Any(h => h is DeviceAdaptionHint d && d.DeviceType == device.DeviceType)) continue; if (DoesLayerCoverDevice(device)) { - DeviceAdaptionHint hint = new() {DeviceType = device.RgbDevice.DeviceInfo.DeviceType}; + DeviceAdaptionHint hint = new() {DeviceType = device.DeviceType}; AdaptionHints.Add(hint); newHints.Add(hint); } diff --git a/src/Artemis.Core/Models/Surface/ArtemisDevice.cs b/src/Artemis.Core/Models/Surface/ArtemisDevice.cs index 488efdd8c..7f4e8dc3d 100644 --- a/src/Artemis.Core/Models/Surface/ArtemisDevice.cs +++ b/src/Artemis.Core/Models/Surface/ArtemisDevice.cs @@ -6,7 +6,6 @@ using Artemis.Core.DeviceProviders; using Artemis.Core.Services; using Artemis.Storage.Entities.Surface; using RGB.NET.Core; -using RGB.NET.Layout; using SkiaSharp; namespace Artemis.Core @@ -91,6 +90,11 @@ namespace Artemis.Core /// public IRGBDevice RgbDevice { get; } + ///

+ /// Gets the device type of the ArtemisDevice + /// + public RGBDeviceType DeviceType => RgbDevice.DeviceInfo.DeviceType; + /// /// Gets the device provider that provided this device /// @@ -351,6 +355,46 @@ namespace Artemis.Core /// public event EventHandler? DeviceUpdated; + /// + /// Applies the default categories for this device to the list + /// + public void ApplyDefaultCategories() + { + switch (RgbDevice.DeviceInfo.DeviceType) + { + case RGBDeviceType.Keyboard: + case RGBDeviceType.Mouse: + case RGBDeviceType.Headset: + case RGBDeviceType.Mousepad: + case RGBDeviceType.HeadsetStand: + case RGBDeviceType.Keypad: + if (!Categories.Contains(DeviceCategory.Peripherals)) + Categories.Add(DeviceCategory.Peripherals); + break; + case RGBDeviceType.Mainboard: + case RGBDeviceType.GraphicsCard: + case RGBDeviceType.DRAM: + case RGBDeviceType.Fan: + case RGBDeviceType.LedStripe: + case RGBDeviceType.Cooler: + if (!Categories.Contains(DeviceCategory.Case)) + Categories.Add(DeviceCategory.Case); + break; + case RGBDeviceType.Speaker: + if (!Categories.Contains(DeviceCategory.Desk)) + Categories.Add(DeviceCategory.Desk); + break; + case RGBDeviceType.Monitor: + if (!Categories.Contains(DeviceCategory.Monitor)) + Categories.Add(DeviceCategory.Monitor); + break; + case RGBDeviceType.LedMatrix: + if (!Categories.Contains(DeviceCategory.Room)) + Categories.Add(DeviceCategory.Room); + break; + } + } + /// /// Invokes the event /// @@ -392,46 +436,6 @@ namespace Artemis.Core OnDeviceUpdated(); } - /// - /// Applies the default categories for this device to the list - /// - public void ApplyDefaultCategories() - { - switch (RgbDevice.DeviceInfo.DeviceType) - { - case RGBDeviceType.Keyboard: - case RGBDeviceType.Mouse: - case RGBDeviceType.Headset: - case RGBDeviceType.Mousepad: - case RGBDeviceType.HeadsetStand: - case RGBDeviceType.Keypad: - if (!Categories.Contains(DeviceCategory.Peripherals)) - Categories.Add(DeviceCategory.Peripherals); - break; - case RGBDeviceType.Mainboard: - case RGBDeviceType.GraphicsCard: - case RGBDeviceType.DRAM: - case RGBDeviceType.Fan: - case RGBDeviceType.LedStripe: - case RGBDeviceType.Cooler: - if (!Categories.Contains(DeviceCategory.Case)) - Categories.Add(DeviceCategory.Case); - break; - case RGBDeviceType.Speaker: - if (!Categories.Contains(DeviceCategory.Desk)) - Categories.Add(DeviceCategory.Desk); - break; - case RGBDeviceType.Monitor: - if (!Categories.Contains(DeviceCategory.Monitor)) - Categories.Add(DeviceCategory.Monitor); - break; - case RGBDeviceType.LedMatrix: - if (!Categories.Contains(DeviceCategory.Room)) - Categories.Add(DeviceCategory.Room); - break; - } - } - internal void ApplyToEntity() { // Other properties are computed @@ -439,13 +443,11 @@ namespace Artemis.Core DeviceEntity.InputIdentifiers.Clear(); foreach (ArtemisDeviceInputIdentifier identifier in InputIdentifiers) - { DeviceEntity.InputIdentifiers.Add(new DeviceInputIdentifierEntity { InputProvider = identifier.InputProvider, Identifier = identifier.Identifier }); - } DeviceEntity.InputMappings.Clear(); foreach (var (original, mapped) in InputMappings) @@ -472,9 +474,9 @@ namespace Artemis.Core if (!RgbDevice.ColorCorrections.Any()) RgbDevice.ColorCorrections.Add(new ScaleColorCorrection(this)); - + Categories.Clear(); - foreach (int deviceEntityCategory in DeviceEntity.Categories) + foreach (int deviceEntityCategory in DeviceEntity.Categories) Categories.Add((DeviceCategory) deviceEntityCategory); if (!Categories.Any()) ApplyDefaultCategories(); @@ -532,12 +534,34 @@ namespace Artemis.Core } } + /// + /// Represents a device category + /// public enum DeviceCategory { + /// + /// A device used to light up (part of) the desk + /// Desk, + + /// + /// A device attached or embedded into the monitor + /// Monitor, + + /// + /// A device placed or embedded into the case + /// Case, + + /// + /// A device used to light up (part of) the room + /// Room, + + /// + /// A peripheral + /// Peripherals } } \ No newline at end of file diff --git a/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs b/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs index 130b8cba7..2df270e5b 100644 --- a/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs +++ b/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs @@ -146,6 +146,58 @@ namespace Artemis.Core else Image = null; } + + internal static ArtemisLayout? GetDefaultLayout(ArtemisDevice device) + { + string layoutFolder = Path.Combine(Constants.ApplicationFolder, "DefaultLayouts\\Artemis"); + if (device.DeviceType == RGBDeviceType.Keyboard) + { + // XL layout is defined by its programmable macro keys + if (device.Leds.Any(l => l.RgbLed.Id >= LedId.Keyboard_Programmable1 && l.RgbLed.Id <= LedId.Keyboard_Programmable32)) + { + if (device.PhysicalLayout == KeyboardLayoutType.ANSI) + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis XL keyboard-ANSI.xml", LayoutSource.Default); + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis XL keyboard-ISO.xml", LayoutSource.Default); + } + + // L layout is defined by its numpad + if (device.Leds.Any(l => l.RgbLed.Id >= LedId.Keyboard_NumLock && l.RgbLed.Id <= LedId.Keyboard_NumPeriodAndDelete)) + { + if (device.PhysicalLayout == KeyboardLayoutType.ANSI) + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis L keyboard-ANSI.xml", LayoutSource.Default); + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis L keyboard-ISO.xml", LayoutSource.Default); + } + + // No numpad will result in TKL + if (device.PhysicalLayout == KeyboardLayoutType.ANSI) + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis TKL keyboard-ANSI.xml", LayoutSource.Default); + return new ArtemisLayout(layoutFolder + "\\Keyboard\\Artemis TKL keyboard-ISO.xml", LayoutSource.Default); + } + + // if (device.DeviceType == RGBDeviceType.Mouse) + // { + // if (device.Leds.Count == 1) + // { + // if (device.Leds.Any(l => l.RgbLed.Id == LedId.Logo)) + // return new ArtemisLayout(layoutFolder + "\\Mouse\\1 LED mouse logo.xml", LayoutSource.Default); + // return new ArtemisLayout(layoutFolder + "\\Mouse\\1 LED mouse.xml", LayoutSource.Default); + // } + // if (device.Leds.Any(l => l.RgbLed.Id == LedId.Logo)) + // return new ArtemisLayout(layoutFolder + "\\Mouse\\4 LED mouse logo.xml", LayoutSource.Default); + // return new ArtemisLayout(layoutFolder + "\\Mouse\\4 LED mouse.xml", LayoutSource.Default); + // } + + if (device.DeviceType == RGBDeviceType.Headset) + { + if (device.Leds.Count == 1) + return new ArtemisLayout(layoutFolder + "\\Headset\\Artemis 1 LED headset.xml", LayoutSource.Default); + if (device.Leds.Count == 2) + return new ArtemisLayout(layoutFolder + "\\Headset\\Artemis 2 LED headset.xml", LayoutSource.Default); + return new ArtemisLayout(layoutFolder + "\\Headset\\Artemis 4 LED headset.xml", LayoutSource.Default); + } + + return null; + } } /// diff --git a/src/Artemis.Core/Plugins/DeviceProviders/DeviceProvider.cs b/src/Artemis.Core/Plugins/DeviceProviders/DeviceProvider.cs index f41e9c145..fc540ff96 100644 --- a/src/Artemis.Core/Plugins/DeviceProviders/DeviceProvider.cs +++ b/src/Artemis.Core/Plugins/DeviceProviders/DeviceProvider.cs @@ -74,7 +74,7 @@ namespace Artemis.Core.DeviceProviders string filePath = Path.Combine( layoutDir, device.RgbDevice.DeviceInfo.Manufacturer, - device.RgbDevice.DeviceInfo.DeviceType.ToString(), + device.DeviceType.ToString(), device.GetLayoutFileName() ); return new ArtemisLayout(filePath, LayoutSource.Plugin); @@ -91,7 +91,7 @@ namespace Artemis.Core.DeviceProviders string filePath = Path.Combine( layoutDir, device.RgbDevice.DeviceInfo.Manufacturer, - device.RgbDevice.DeviceInfo.DeviceType.ToString(), + device.DeviceType.ToString(), device.GetLayoutFileName() ); return new ArtemisLayout(filePath, LayoutSource.User); diff --git a/src/Artemis.Core/Services/Input/InputService.cs b/src/Artemis.Core/Services/Input/InputService.cs index bed2d47de..abb7ef643 100644 --- a/src/Artemis.Core/Services/Input/InputService.cs +++ b/src/Artemis.Core/Services/Input/InputService.cs @@ -76,8 +76,8 @@ namespace Artemis.Core.Services public void IdentifyDevice(ArtemisDevice device) { - if (device.RgbDevice.DeviceInfo.DeviceType != RGBDeviceType.Keyboard && device.RgbDevice.DeviceInfo.DeviceType != RGBDeviceType.Mouse) - throw new ArtemisCoreException($"Cannot initialize input-identification for a device of type {device.RgbDevice.DeviceInfo.DeviceType}. \r\n" + + if (device.DeviceType != RGBDeviceType.Keyboard && device.DeviceType != RGBDeviceType.Mouse) + throw new ArtemisCoreException($"Cannot initialize input-identification for a device of type {device.DeviceType}. \r\n" + "Only keyboard and mouse is supported."); _identifyingDevice = device; @@ -121,7 +121,7 @@ namespace Artemis.Core.Services { if (_cachedFallbackKeyboard != null) return _cachedFallbackKeyboard; - _cachedFallbackKeyboard = _rgbService.EnabledDevices.FirstOrDefault(d => d.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard); + _cachedFallbackKeyboard = _rgbService.EnabledDevices.FirstOrDefault(d => d.DeviceType == RGBDeviceType.Keyboard); return _cachedFallbackKeyboard; } @@ -129,7 +129,7 @@ namespace Artemis.Core.Services { if (_cachedFallbackMouse != null) return _cachedFallbackMouse; - _cachedFallbackMouse = _rgbService.EnabledDevices.FirstOrDefault(d => d.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse); + _cachedFallbackMouse = _rgbService.EnabledDevices.FirstOrDefault(d => d.DeviceType == RGBDeviceType.Mouse); return _cachedFallbackMouse; } @@ -165,8 +165,8 @@ namespace Artemis.Core.Services { // Don't match if there is no device or if the device type differs from the event device type if (_identifyingDevice == null || - _identifyingDevice.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard && e.DeviceType == InputDeviceType.Mouse || - _identifyingDevice.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse && e.DeviceType == InputDeviceType.Keyboard) + _identifyingDevice.DeviceType == RGBDeviceType.Keyboard && e.DeviceType == InputDeviceType.Mouse || + _identifyingDevice.DeviceType == RGBDeviceType.Mouse && e.DeviceType == InputDeviceType.Keyboard) return; if (!(sender is InputProvider inputProvider)) return; diff --git a/src/Artemis.Core/Services/Interfaces/IRgbService.cs b/src/Artemis.Core/Services/Interfaces/IRgbService.cs index cfcb5ffb0..10ec9fa1b 100644 --- a/src/Artemis.Core/Services/Interfaces/IRgbService.cs +++ b/src/Artemis.Core/Services/Interfaces/IRgbService.cs @@ -83,7 +83,7 @@ namespace Artemis.Core.Services /// /// The device to apply the best available layout to /// The layout that was applied to the device - ArtemisLayout ApplyBestDeviceLayout(ArtemisDevice device); + ArtemisLayout? ApplyBestDeviceLayout(ArtemisDevice device); /// /// Apples the provided to the provided diff --git a/src/Artemis.Core/Services/RgbService.cs b/src/Artemis.Core/Services/RgbService.cs index f5bb3fb5b..ae1ea1fc9 100644 --- a/src/Artemis.Core/Services/RgbService.cs +++ b/src/Artemis.Core/Services/RgbService.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.IO; using System.Linq; using Artemis.Core.DeviceProviders; using Artemis.Core.Services.Models; @@ -149,6 +150,7 @@ namespace Artemis.Core.Services RemoveDevice(device); List providerExceptions = new(); + void DeviceProviderOnException(object? sender, ExceptionEventArgs e) { if (e.IsCritical) @@ -314,15 +316,15 @@ namespace Artemis.Core.Services { SurfaceArrangement surfaceArrangement = SurfaceArrangement.GetDefaultArrangement(); surfaceArrangement.Arrange(_devices); - foreach (ArtemisDevice artemisDevice in _devices) + foreach (ArtemisDevice artemisDevice in _devices) artemisDevice.ApplyDefaultCategories(); SaveDevices(); } - public ArtemisLayout ApplyBestDeviceLayout(ArtemisDevice device) + public ArtemisLayout? ApplyBestDeviceLayout(ArtemisDevice device) { - ArtemisLayout layout; + ArtemisLayout? layout; // Configured layout path takes precedence over all other options if (device.CustomLayoutPath != null) @@ -352,19 +354,19 @@ namespace Artemis.Core.Services } // Finally fall back to a default layout - layout = LoadDefaultLayout(device); - ApplyDeviceLayout(device, layout); + layout = ArtemisLayout.GetDefaultLayout(device); + if (layout != null) + ApplyDeviceLayout(device, layout); return layout; } - private ArtemisLayout LoadDefaultLayout(ArtemisDevice device) - { - return new("NYI", LayoutSource.Default); - } - public void ApplyDeviceLayout(ArtemisDevice device, ArtemisLayout layout) { - device.ApplyLayout(layout, device.DeviceProvider.CreateMissingLedsSupported, device.DeviceProvider.RemoveExcessiveLedsSupported); + if (layout.Source == LayoutSource.Default) + device.ApplyLayout(layout, false, false); + else + device.ApplyLayout(layout, device.DeviceProvider.CreateMissingLedsSupported, device.DeviceProvider.RemoveExcessiveLedsSupported); + UpdateLedGroup(); } diff --git a/src/Artemis.Core/Services/Storage/Models/SurfaceArrangementType.cs b/src/Artemis.Core/Services/Storage/Models/SurfaceArrangementType.cs index 5f25fe5f2..146f89bc1 100644 --- a/src/Artemis.Core/Services/Storage/Models/SurfaceArrangementType.cs +++ b/src/Artemis.Core/Services/Storage/Models/SurfaceArrangementType.cs @@ -23,12 +23,12 @@ namespace Artemis.Core.Services.Models public bool HasDevices(List devices) { - return devices.Any(d => d.RgbDevice.DeviceInfo.DeviceType == DeviceType); + return devices.Any(d => d.DeviceType == DeviceType); } public void Arrange(List devices) { - devices = devices.Where(d => d.RgbDevice.DeviceInfo.DeviceType == DeviceType).ToList(); + devices = devices.Where(d => d.DeviceType == DeviceType).ToList(); if (!devices.Any()) return; @@ -58,7 +58,7 @@ namespace Artemis.Core.Services.Models public Point GetEdge(HorizontalArrangementPosition horizontalPosition, VerticalArrangementPosition verticalPosition) { - List devices = SurfaceArrangement.ArrangedDevices.Where(d => d.RgbDevice.DeviceInfo.DeviceType == DeviceType || DeviceType == RGBDeviceType.All).ToList(); + List devices = SurfaceArrangement.ArrangedDevices.Where(d => d.DeviceType == DeviceType || DeviceType == RGBDeviceType.All).ToList(); if (!devices.Any()) return new Point(); diff --git a/src/Artemis.Core/Services/Storage/ProfileService.cs b/src/Artemis.Core/Services/Storage/ProfileService.cs index e405cdfed..95b612d99 100644 --- a/src/Artemis.Core/Services/Storage/ProfileService.cs +++ b/src/Artemis.Core/Services/Storage/ProfileService.cs @@ -152,7 +152,7 @@ namespace Artemis.Core.Services Profile profile = new(profileDescriptor.ProfileModule, profileEntity); InstantiateProfile(profile); - + void ActivatingRgbServiceOnLedsChanged(object? sender, EventArgs e) { profile.PopulateLeds(_rgbService.EnabledDevices); @@ -220,12 +220,8 @@ namespace Artemis.Core.Services public void UpdateProfile(Profile profile, bool includeChildren) { - _logger.Debug("Updating profile " + profile); string memento = JsonConvert.SerializeObject(profile.ProfileEntity, MementoSettings); - profile.RedoStack.Clear(); - profile.UndoStack.Push(memento); - profile.IsFreshImport = false; profile.Save(); if (includeChildren) { @@ -235,6 +231,22 @@ namespace Artemis.Core.Services layer.Save(); } + // If there are no changes, don't bother saving + string updatedMemento = JsonConvert.SerializeObject(profile.ProfileEntity, MementoSettings); + if (memento.Equals(updatedMemento)) + { + _logger.Debug("Updating profile - Skipping save, no changes"); + return; + } + + _logger.Debug("Updating profile - Saving " + profile); + profile.RedoStack.Clear(); + profile.UndoStack.Push(memento); + + // At this point the user made actual changes, save that + profile.IsFreshImport = false; + profile.ProfileEntity.IsFreshImport = false; + _profileRepository.Save(profile.ProfileEntity); } @@ -321,9 +333,24 @@ namespace Artemis.Core.Services /// public void AdaptProfile(Profile profile) { + string memento = JsonConvert.SerializeObject(profile.ProfileEntity, MementoSettings); + List devices = _rgbService.EnabledDevices.ToList(); foreach (Layer layer in profile.GetAllLayers()) layer.Adapter.Adapt(devices); + + profile.Save(); + + foreach (Folder folder in profile.GetAllFolders()) + folder.Save(); + foreach (Layer layer in profile.GetAllLayers()) + layer.Save(); + + _logger.Debug("Adapt profile - Saving " + profile); + profile.RedoStack.Clear(); + profile.UndoStack.Push(memento); + + _profileRepository.Save(profile.ProfileEntity); } #region Event handlers diff --git a/src/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs index 7e9662b5e..af4afaba1 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/ProfileEditorViewModel.cs @@ -216,7 +216,7 @@ namespace Artemis.UI.Screens.ProfileEditor if (!await DialogService.ShowConfirmDialog( "Adapt profile", "Are you sure you want to adapt the profile to your current surface? Layer assignments may change." - )) + )) return; _profileService.AdaptProfile(_profileEditorService.SelectedProfile); diff --git a/src/Artemis.UI/Screens/Settings/Device/DeviceDialogViewModel.cs b/src/Artemis.UI/Screens/Settings/Device/DeviceDialogViewModel.cs index 62ec00072..0cd156be7 100644 --- a/src/Artemis.UI/Screens/Settings/Device/DeviceDialogViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Device/DeviceDialogViewModel.cs @@ -46,7 +46,7 @@ namespace Artemis.UI.Screens.Settings.Device SelectedLeds = new BindableCollection(); Items.Add(factory.DevicePropertiesTabViewModel(device)); - if (device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard) + if (device.DeviceType == RGBDeviceType.Keyboard) Items.Add(factory.InputMappingsTabViewModel(device)); Items.Add(factory.DeviceInfoTabViewModel(device)); Items.Add(factory.DeviceLedsTabViewModel(device)); @@ -178,7 +178,7 @@ namespace Artemis.UI.Screens.Settings.Device string directory = Path.Combine( dialog.SelectedPath, Device.RgbDevice.DeviceInfo.Manufacturer, - Device.RgbDevice.DeviceInfo.DeviceType.ToString() + Device.DeviceType.ToString() ); string filePath = Path.Combine(directory, Device.GetLayoutFileName()); Core.Utilities.CreateAccessibleDirectory(directory); diff --git a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabView.xaml b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabView.xaml index 3f5047fb9..18362412e 100644 --- a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabView.xaml +++ b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabView.xaml @@ -40,7 +40,7 @@ + Text="{Binding Device.DeviceType}" /> diff --git a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabViewModel.cs index bf97b4e21..1305a1d24 100644 --- a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceInfoTabViewModel.cs @@ -15,7 +15,7 @@ namespace Artemis.UI.Screens.Settings.Device.Tabs DisplayName = "INFO"; } - public bool IsKeyboard => Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard; + public bool IsKeyboard => Device.DeviceType == RGBDeviceType.Keyboard; public ArtemisDevice Device { get; } public string DefaultLayoutPath diff --git a/src/Artemis.UI/Screens/Settings/Device/Tabs/InputMappingsTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Device/Tabs/InputMappingsTabViewModel.cs index 9ffbe769b..2935bcfe6 100644 --- a/src/Artemis.UI/Screens/Settings/Device/Tabs/InputMappingsTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Device/Tabs/InputMappingsTabViewModel.cs @@ -17,7 +17,7 @@ namespace Artemis.UI.Screens.Settings.Device.Tabs public InputMappingsTabViewModel(ArtemisDevice device, IRgbService rgbService, IInputService inputService) { - if (device.RgbDevice.DeviceInfo.DeviceType != RGBDeviceType.Keyboard) + if (device.DeviceType != RGBDeviceType.Keyboard) throw new ArtemisUIException("The input mappings tab only supports keyboards"); _rgbService = rgbService; _inputService = inputService; diff --git a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsView.xaml b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsView.xaml index e3f3676bf..018ed9f28 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsView.xaml +++ b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsView.xaml @@ -50,7 +50,7 @@ - - + diff --git a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsViewModel.cs b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsViewModel.cs index 2005b6753..3b6616a35 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Tabs/Devices/DeviceSettingsViewModel.cs @@ -35,7 +35,7 @@ namespace Artemis.UI.Screens.Settings.Tabs.Devices _rgbService = rgbService; Device = device; - Type = Device.RgbDevice.DeviceInfo.DeviceType.ToString().Humanize(); + Type = Device.DeviceType.ToString().Humanize(); Name = Device.RgbDevice.DeviceInfo.Model; Manufacturer = Device.RgbDevice.DeviceInfo.Manufacturer; } @@ -46,8 +46,8 @@ namespace Artemis.UI.Screens.Settings.Tabs.Devices public string Name { get; } public string Manufacturer { get; } - public bool CanDetectInput => Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard || - Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse; + public bool CanDetectInput => Device.DeviceType == RGBDeviceType.Keyboard || + Device.DeviceType == RGBDeviceType.Mouse; public bool IsDeviceEnabled { diff --git a/src/Artemis.UI/Screens/SurfaceEditor/Dialogs/SurfaceDeviceDetectInputViewModel.cs b/src/Artemis.UI/Screens/SurfaceEditor/Dialogs/SurfaceDeviceDetectInputViewModel.cs index cd35e79f1..13e02d9b9 100644 --- a/src/Artemis.UI/Screens/SurfaceEditor/Dialogs/SurfaceDeviceDetectInputViewModel.cs +++ b/src/Artemis.UI/Screens/SurfaceEditor/Dialogs/SurfaceDeviceDetectInputViewModel.cs @@ -19,7 +19,7 @@ namespace Artemis.UI.Screens.SurfaceEditor.Dialogs { Device = device; Title = $"{Device.RgbDevice.DeviceInfo.DeviceName} - Detect input"; - IsMouse = Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse; + IsMouse = Device.DeviceType == RGBDeviceType.Mouse; _inputService = inputService; _messageService = messageService; diff --git a/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceDeviceViewModel.cs b/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceDeviceViewModel.cs index a1c31e961..50b3bcec1 100644 --- a/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceDeviceViewModel.cs +++ b/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceDeviceViewModel.cs @@ -33,8 +33,8 @@ namespace Artemis.UI.Screens.SurfaceEditor.Visualization set => SetAndNotify(ref _selectionStatus, value); } - public bool CanDetectInput => Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard || - Device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Mouse; + public bool CanDetectInput => Device.DeviceType == RGBDeviceType.Keyboard || + Device.DeviceType == RGBDeviceType.Mouse; public Cursor Cursor { diff --git a/src/Artemis.UI/Services/DeviceLayoutService.cs b/src/Artemis.UI/Services/DeviceLayoutService.cs index d224ae36b..536763729 100644 --- a/src/Artemis.UI/Services/DeviceLayoutService.cs +++ b/src/Artemis.UI/Services/DeviceLayoutService.cs @@ -52,7 +52,7 @@ namespace Artemis.UI.Services private bool DeviceNeedsLayout(ArtemisDevice d) { - return d.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard && + return d.DeviceType == RGBDeviceType.Keyboard && (d.LogicalLayout == null || d.PhysicalLayout == KeyboardLayoutType.Unknown) && (!d.DeviceProvider.CanDetectLogicalLayout || !d.DeviceProvider.CanDetectPhysicalLayout); } From a6602626a3486d4dd3d684b0832a2461a20bb963 Mon Sep 17 00:00:00 2001 From: Robert Date: Tue, 18 May 2021 22:36:40 +0200 Subject: [PATCH 3/7] Plugins - Added author, website and repository properties to plugin info --- src/Artemis.Core/Plugins/PluginInfo.cs | 57 ++++- .../Behaviors/HighlightTermBehavior.cs | 2 +- .../Tabs/Plugins/PluginSettingsView.xaml | 200 ++++++++++-------- .../Tabs/Plugins/PluginSettingsViewModel.cs | 5 + 4 files changed, 168 insertions(+), 96 deletions(-) diff --git a/src/Artemis.Core/Plugins/PluginInfo.cs b/src/Artemis.Core/Plugins/PluginInfo.cs index 2773a51c3..5037b186b 100644 --- a/src/Artemis.Core/Plugins/PluginInfo.cs +++ b/src/Artemis.Core/Plugins/PluginInfo.cs @@ -12,15 +12,19 @@ namespace Artemis.Core [JsonObject(MemberSerialization.OptIn)] public class PluginInfo : CorePropertyChanged, IPrerequisitesSubject { - private bool _autoEnableFeatures = true; - private string? _description; private Guid _guid; + private string? _description; + private string? _author; + private Uri? _website; + private Uri? _repository; private string? _icon; private string _main = null!; + private bool _autoEnableFeatures = true; private string _name = null!; private Plugin _plugin = null!; - private bool _requiresAdmin; private Version _version = null!; + private bool _requiresAdmin; + internal PluginInfo() { @@ -56,6 +60,36 @@ namespace Artemis.Core set => SetAndNotify(ref _description, value); } + /// + /// Gets or sets the author of this plugin + /// + [JsonProperty] + public string? Author + { + get => _author; + set => SetAndNotify(ref _author, value); + } + + /// + /// Gets or sets the website of this plugin or its author + /// + [JsonProperty] + public Uri? Website + { + get => _website; + set => SetAndNotify(ref _website, value); + } + + /// + /// Gets or sets the repository of this plugin + /// + [JsonProperty] + public Uri? Repository + { + get => _repository; + set => SetAndNotify(ref _repository, value); + } + /// /// The plugins display icon that's shown in the settings see for /// available icons @@ -108,7 +142,7 @@ namespace Artemis.Core get => _requiresAdmin; internal set => SetAndNotify(ref _requiresAdmin, value); } - + /// /// Gets the plugin this info is associated with /// @@ -118,12 +152,6 @@ namespace Artemis.Core internal set => SetAndNotify(ref _plugin, value); } - /// - public List Prerequisites { get; } = new(); - - /// - public bool ArePrerequisitesMet() => Prerequisites.All(p => p.IsMet()); - internal string PreferredPluginDirectory => $"{Main.Split(".dll")[0].Replace("/", "").Replace("\\", "")}-{Guid.ToString().Substring(0, 8)}"; /// @@ -131,5 +159,14 @@ namespace Artemis.Core { return $"{Name} v{Version} - {Guid}"; } + + /// + public List Prerequisites { get; } = new(); + + /// + public bool ArePrerequisitesMet() + { + return Prerequisites.All(p => p.IsMet()); + } } } \ No newline at end of file diff --git a/src/Artemis.UI/Behaviors/HighlightTermBehavior.cs b/src/Artemis.UI/Behaviors/HighlightTermBehavior.cs index 2d30ae887..53277b426 100644 --- a/src/Artemis.UI/Behaviors/HighlightTermBehavior.cs +++ b/src/Artemis.UI/Behaviors/HighlightTermBehavior.cs @@ -115,7 +115,7 @@ namespace Artemis.UI.Behaviors private static bool TextIsEmpty(string text) { - return text.Length == 0; + return string.IsNullOrEmpty(text); } private static bool TextIsNotContainingTermToBeHighlighted(string text, string termToBeHighlighted) diff --git a/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsView.xaml b/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsView.xaml index 85d0783ab..82cad706c 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsView.xaml +++ b/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsView.xaml @@ -15,29 +15,29 @@ - + + - - - + + - + + @@ -47,7 +47,7 @@ Height="48" Margin="0 5 0 0" Grid.Row="0" - Grid.RowSpan="2" + Grid.RowSpan="3" HorizontalAlignment="Center" VerticalAlignment="Top" /> @@ -59,6 +59,12 @@ + + + + + + + + + - - + + + + + + + + + + + + - - - - - - - - - - - - - + - - - - Plugin enabled - + - - + + + Plugin enabled + + + - + + + + diff --git a/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsViewModel.cs b/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsViewModel.cs index cb4dcc8ab..f25606309 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Tabs/Plugins/PluginSettingsViewModel.cs @@ -219,6 +219,11 @@ namespace Artemis.UI.Screens.Settings.Tabs.Plugins } } + public void OpenUri(Uri uri) + { + Core.Utilities.OpenUrl(uri.ToString()); + } + private void PluginManagementServiceOnPluginToggled(object? sender, PluginEventArgs e) { NotifyOfPropertyChange(nameof(IsEnabled)); From 87dce788d7a348faebca497055dec66260532811 Mon Sep 17 00:00:00 2001 From: Robert Date: Wed, 19 May 2021 17:31:36 +0200 Subject: [PATCH 4/7] UI - Added --disable-forced-shutdown which does just that UI - Don't kill new instances of Artemis launched within 8 seconds after shutdown UI - Updated About tab --- .../Services/Storage/ProfileService.cs | 7 +- .../Artemis.UI.Shared.csproj | 1 - src/Artemis.UI.Shared/packages.lock.json | 6 - src/Artemis.UI/ApplicationStateManager.cs | 17 +- src/Artemis.UI/Properties/launchSettings.json | 2 +- .../Dialogs/ProfileExportView.xaml | 69 ++- .../Dialogs/ProfileExportViewModel.cs | 18 +- .../Dialogs/LayerHintsDialogView.xaml | 175 +++---- .../Dialogs/LayerHintsDialogViewModel.cs | 13 + .../Settings/Tabs/About/AboutTabView.xaml | 446 ++++++++++++++++-- .../Settings/Tabs/About/AboutTabViewModel.cs | 11 + src/Artemis.UI/packages.lock.json | 8 +- 12 files changed, 586 insertions(+), 187 deletions(-) diff --git a/src/Artemis.Core/Services/Storage/ProfileService.cs b/src/Artemis.Core/Services/Storage/ProfileService.cs index 95b612d99..e75eec263 100644 --- a/src/Artemis.Core/Services/Storage/ProfileService.cs +++ b/src/Artemis.Core/Services/Storage/ProfileService.cs @@ -67,9 +67,12 @@ namespace Artemis.Core.Services foreach (ProfileModule profileModule in profileModules) { // Avoid race condition, make the check here - if (profileModule.ActiveProfile != null) + if (profileModule.ActiveProfile == null) + continue; + + profileModule.ActiveProfile.PopulateLeds(_rgbService.EnabledDevices); + if (profileModule.ActiveProfile.IsFreshImport) { - profileModule.ActiveProfile.PopulateLeds(_rgbService.EnabledDevices); _logger.Debug("Profile is a fresh import, adapting to surface - {profile}", profileModule.ActiveProfile); AdaptProfile(profileModule.ActiveProfile); } diff --git a/src/Artemis.UI.Shared/Artemis.UI.Shared.csproj b/src/Artemis.UI.Shared/Artemis.UI.Shared.csproj index 893ff97d3..52563d5ef 100644 --- a/src/Artemis.UI.Shared/Artemis.UI.Shared.csproj +++ b/src/Artemis.UI.Shared/Artemis.UI.Shared.csproj @@ -50,7 +50,6 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - diff --git a/src/Artemis.UI.Shared/packages.lock.json b/src/Artemis.UI.Shared/packages.lock.json index 27b93fa8d..88e8b3b52 100644 --- a/src/Artemis.UI.Shared/packages.lock.json +++ b/src/Artemis.UI.Shared/packages.lock.json @@ -113,12 +113,6 @@ "resolved": "0.4.0", "contentHash": "2Tzz6qoQNciyO4uT6wxByMiyvbve+u4eFIiDewDUbeHuxr/rKuba3/EhhXDsEH9WoKzYlpzqxDfQGPE/bIe5Rw==" }, - "WriteableBitmapEx": { - "type": "Direct", - "requested": "[1.6.7, )", - "resolved": "1.6.7", - "contentHash": "GoPhIdYzG/DWJq/MADb8gFzRN5PsxM+1DSJFS8Jzupg4DXqFSnlejYEjJw4ffPEUyELL07O4XIGUZydE4jQK0Q==" - }, "Castle.Core": { "type": "Transitive", "resolved": "4.2.0", diff --git a/src/Artemis.UI/ApplicationStateManager.cs b/src/Artemis.UI/ApplicationStateManager.cs index 1bc5d5c3a..2a08b4a3a 100644 --- a/src/Artemis.UI/ApplicationStateManager.cs +++ b/src/Artemis.UI/ApplicationStateManager.cs @@ -119,14 +119,17 @@ namespace Artemis.UI private void UtilitiesOnShutdownRequested(object sender, EventArgs e) { // Use PowerShell to kill the process after 8 sec just in case - ProcessStartInfo info = new() + if (!StartupArguments.Contains("--disable-forced-shutdown")) { - Arguments = "-Command \"& {Start-Sleep -s 8; (Get-Process 'Artemis.UI').kill()}", - WindowStyle = ProcessWindowStyle.Hidden, - CreateNoWindow = true, - FileName = "PowerShell.exe" - }; - Process.Start(info); + ProcessStartInfo info = new() + { + Arguments = "-Command \"& {Start-Sleep -s 8; (Get-Process -Id " + Process.GetCurrentProcess().Id + ").kill()}", + WindowStyle = ProcessWindowStyle.Hidden, + CreateNoWindow = true, + FileName = "PowerShell.exe" + }; + Process.Start(info); + } Execute.OnUIThread(() => Application.Current.Shutdown()); } diff --git a/src/Artemis.UI/Properties/launchSettings.json b/src/Artemis.UI/Properties/launchSettings.json index 1268340dc..ff7efa8ab 100644 --- a/src/Artemis.UI/Properties/launchSettings.json +++ b/src/Artemis.UI/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "Artemis.UI": { "commandName": "Project", - "commandLineArgs": "--force-elevation --pcmr" + "commandLineArgs": "--force-elevation --disable-forced-shutdown --pcmr" } } } \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/Dialogs/ProfileExportView.xaml b/src/Artemis.UI/Screens/ProfileEditor/Dialogs/ProfileExportView.xaml index 7e67d06c8..4db9dc873 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/Dialogs/ProfileExportView.xaml +++ b/src/Artemis.UI/Screens/ProfileEditor/Dialogs/ProfileExportView.xaml @@ -4,44 +4,41 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:s="https://github.com/canton7/Stylet" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> - - - - - - - - - Export current profile - + + + + + + + + Export current profile + - - Please note that exporting profiles like this is placeholder functionality. The idea is that this will eventually happen via the workshop. - + + It looks like you have not set up any profile adaption hints. This means Artemis can't do much to make your profile look good on a different surface other than try finding the same LEDs as you have. + + To configure adaption hints, right-click on a layer and choose View Adaption Hints. + + To learn more about profile adaption, check out + + this wiki article + . + - - The workshop will include tools to make profiles convert easily and look good on different layouts. - That means right now when someone imports this export unless they have the exact same setup as - you, they'll have to select LEDs for each layer in the profile. - - - - - - - + + + + + \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/Dialogs/ProfileExportViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/Dialogs/ProfileExportViewModel.cs index 7ab085f39..7b6758ee9 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/Dialogs/ProfileExportViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/Dialogs/ProfileExportViewModel.cs @@ -1,8 +1,8 @@ using System.Windows; +using System.Windows.Navigation; using Artemis.Core; using Artemis.Core.Services; using Artemis.UI.Shared.Services; -using MaterialDesignThemes.Wpf; namespace Artemis.UI.Screens.ProfileEditor.Dialogs { @@ -21,6 +21,22 @@ namespace Artemis.UI.Screens.ProfileEditor.Dialogs public ProfileDescriptor ProfileDescriptor { get; } + #region Overrides of Screen + + /// + protected override void OnActivate() + { + // TODO: If the profile has hints on all layers, call Accept + base.OnActivate(); + } + + #endregion + + public void OpenHyperlink(object sender, RequestNavigateEventArgs e) + { + Core.Utilities.OpenUrl(e.Uri.AbsoluteUri); + } + public void Accept() { string encoded = _profileService.ExportProfile(ProfileDescriptor); diff --git a/src/Artemis.UI/Screens/ProfileEditor/ProfileTree/Dialogs/LayerHintsDialogView.xaml b/src/Artemis.UI/Screens/ProfileEditor/ProfileTree/Dialogs/LayerHintsDialogView.xaml index c20cb440c..2e82fc085 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/ProfileTree/Dialogs/LayerHintsDialogView.xaml +++ b/src/Artemis.UI/Screens/ProfileEditor/ProfileTree/Dialogs/LayerHintsDialogView.xaml @@ -22,91 +22,104 @@ d:DesignHeight="800" d:DesignWidth="800" d:DataContext="{d:DesignInstance dialogs:LayerHintsDialogViewModel}" Icon="/Resources/Images/Logo/bow.ico"> - - - - - + + + + + - - + + - - - - - - - + + + + + + + - - - - - - - - - - Introduction - - - In this window you can tell Artemis how this layer should be adapted when the profile is applied to a different set of devices by providing so-called adaption hints. - - When sharing your profile with other people good hints help them import your profile without the need for manual adjustments. - + + + + + + + + + + Introduction + + + In this window you can tell Artemis how this layer should be adapted when the profile is applied to a different set of devices by providing so-called adaption hints. + This is useful when sharing your profile with others, avoiding the need for manual adjustments. + + To learn more about profile adaption, check out + + this wiki article + + . + - - Adaption hints - - - - - - - - - - - - + + Adaption hints + + + + You haven't set up any adaption hints + Artemis will attempt to directly map the LEDs of this layer to different surfaces but results may vary. + + + + + + + + + + + + - - - - - - - + + + + + + + - - - + + - + + + + + PolyForm Noncommercial License 1.0.0 + + + + + + + + + + + + + + + + + + + + + + + Robert 'Spoinky' Beekman + + + Project owner, main contributor + + + + + + + + + + + + + + + + + + + + + + + + + Darth Affe + + + + RGB.NET + developer, main contributor + + + + + + + + + + + + + + + + + + + + + + + + + Diogo 'DrMeteor' Trindade + + + Main contributor + + + + + + + + + + + + + + + + + + + + + + + + + Kai Werling + + + Graphics design + + + + + + + + + + + + Special thanks + + + + - The various people creating PRs to Artemis.Plugins and the main repository + - All the people on Discord providing feedback and testing + + + + + + External libraries + + + + - Ben.Demystifier + + https://github.com/benaadams/Ben.Demystifier + + - EmbedIO + + https://unosquare.github.io/embedio/ + + - FluentValidation + + https://fluentvalidation.net/ + + - Furl.Http + + https://flurl.dev/ + + - gong-wpf-dragdrop + + https://github.com/punker76/gong-wpf-dragdrop + + - Hardcodet.NotifyIcon.Wpf.NetCore + + https://github.com/HavenDV/H.NotifyIcon.WPF + + - Humanizer + + https://github.com/Humanizr/Humanizer + + - LiteDB + + https://www.litedb.org/ + + - MaterialDesignThemes + + https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit + + - MaterialDesignExtensions + + https://spiegelp.github.io/MaterialDesignExtensions/ + + - McMaster.NETCore.Plugins + + https://github.com/natemcmaster/DotNetCorePlugins + + - Newtonsoft.Json + + https://www.newtonsoft.com/json + + - Ninject + + http://www.ninject.org/ + + - Ookii.Dialogs.Wpf + + https://github.com/ookii-dialogs/ookii-dialogs-wpf + + - RawInput.Sharp + + https://github.com/mfakane/rawinput-sharp + + - RGB.NET + + https://github.com/DarthAffe/RGB.NET + + - Serilog + + https://serilog.net/ + + - SkiaSharp + + https://github.com/mono/SkiaSharp + + - Stylet + + https://github.com/canton7/Stylet + + - Unclassified.NetRevisionTask + + https://unclassified.software/en/apps/netrevisiontask + + + + + + \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Settings/Tabs/About/AboutTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Tabs/About/AboutTabViewModel.cs index cbf2c00ae..0f03ebc7d 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/About/AboutTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Tabs/About/AboutTabViewModel.cs @@ -1,4 +1,5 @@ using System.Reflection; +using System.Windows.Navigation; using Artemis.Core; using Stylet; @@ -19,6 +20,16 @@ namespace Artemis.UI.Screens.Settings.Tabs.About set => SetAndNotify(ref _version, value); } + public void OpenHyperlink(object sender, RequestNavigateEventArgs e) + { + Core.Utilities.OpenUrl(e.Uri.AbsoluteUri); + } + + public void OpenUrl(string url) + { + Core.Utilities.OpenUrl(url); + } + #region Overrides of Screen /// diff --git a/src/Artemis.UI/packages.lock.json b/src/Artemis.UI/packages.lock.json index 9a607f014..6df570a98 100644 --- a/src/Artemis.UI/packages.lock.json +++ b/src/Artemis.UI/packages.lock.json @@ -1448,11 +1448,6 @@ "resolved": "3.0.0", "contentHash": "noPwJJl1Q9uparXy1ogtkmyAPGNfSGb0BLT1292nFH1jdMKje6o2kvvrQUvF9Xklj+IoiAI0UzF6Aqxlvo10lw==" }, - "WriteableBitmapEx": { - "type": "Transitive", - "resolved": "1.6.7", - "contentHash": "GoPhIdYzG/DWJq/MADb8gFzRN5PsxM+1DSJFS8Jzupg4DXqFSnlejYEjJw4ffPEUyELL07O4XIGUZydE4jQK0Q==" - }, "artemis.core": { "type": "Project", "dependencies": { @@ -1503,8 +1498,7 @@ "SkiaSharp.Views.WPF": "2.80.2", "Stylet": "1.3.6", "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "WriteableBitmapEx": "1.6.7" + "System.Numerics.Vectors": "4.5.0" } } } From 3825c34be115b2eb304d4c3377a754d8e65c9864 Mon Sep 17 00:00:00 2001 From: Robert Date: Fri, 21 May 2021 18:24:47 +0200 Subject: [PATCH 5/7] Layer properties - Implement INotifyPropertyChanged on BaseValue Profile editor - Don't show expand button on property groups without children Profile editor - Alert user about extra options on brushes --- .../Profile/LayerProperties/LayerProperty.cs | 3 +- .../LayerPropertyGroupViewModel.cs | 9 ++++ .../LayerProperties/Tree/TreeGroupView.xaml | 45 ++++++++++++++----- 3 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/Artemis.Core/Models/Profile/LayerProperties/LayerProperty.cs b/src/Artemis.Core/Models/Profile/LayerProperties/LayerProperty.cs index e5733c8e2..d9ad40690 100644 --- a/src/Artemis.Core/Models/Profile/LayerProperties/LayerProperty.cs +++ b/src/Artemis.Core/Models/Profile/LayerProperties/LayerProperty.cs @@ -15,7 +15,7 @@ namespace Artemis.Core /// /// /// The type of property encapsulated in this layer property - public class LayerProperty : ILayerProperty + public class LayerProperty : CorePropertyChanged, ILayerProperty { private bool _disposed; @@ -265,6 +265,7 @@ namespace Artemis.Core _baseValue = value; ReapplyUpdate(); + OnPropertyChanged(nameof(BaseValue)); } } diff --git a/src/Artemis.UI/Screens/ProfileEditor/LayerProperties/LayerPropertyGroupViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/LayerProperties/LayerPropertyGroupViewModel.cs index f0cb27d88..84e28c8a3 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/LayerProperties/LayerPropertyGroupViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/LayerProperties/LayerPropertyGroupViewModel.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Reflection; using Artemis.Core; using Artemis.UI.Ninject.Factories; @@ -17,6 +18,7 @@ namespace Artemis.UI.Screens.ProfileEditor.LayerProperties private bool _isVisible; private TreeGroupViewModel _treeGroupViewModel; private TimelineGroupViewModel _timelineGroupViewModel; + private bool _hasChildren; public LayerPropertyGroupViewModel(LayerPropertyGroup layerPropertyGroup, IProfileEditorService profileEditorService, ILayerPropertyVmFactory layerPropertyVmFactory) { @@ -62,6 +64,11 @@ namespace Artemis.UI.Screens.ProfileEditor.LayerProperties } } + public bool HasChildren + { + get => _hasChildren; + set => SetAndNotify(ref _hasChildren, value); + } protected override void OnInitialActivate() { @@ -169,6 +176,8 @@ namespace Artemis.UI.Screens.ProfileEditor.LayerProperties Items.Add(_layerPropertyVmFactory.LayerPropertyGroupViewModel(value)); } } + + HasChildren = Items.Any(i => i is LayerPropertyViewModel {IsVisible: true} || i is LayerPropertyGroupViewModel {IsVisible: true}); } } } \ No newline at end of file diff --git a/src/Artemis.UI/Screens/ProfileEditor/LayerProperties/Tree/TreeGroupView.xaml b/src/Artemis.UI/Screens/ProfileEditor/LayerProperties/Tree/TreeGroupView.xaml index e80ebe39e..2ab3fc453 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/LayerProperties/Tree/TreeGroupView.xaml +++ b/src/Artemis.UI/Screens/ProfileEditor/LayerProperties/Tree/TreeGroupView.xaml @@ -33,6 +33,7 @@ Foreground="{DynamicResource MaterialDesignBody}" Style="{StaticResource MaterialDesignExpandCollapseToggleStyle}" IsChecked="{Binding Path=LayerPropertyGroupViewModel.IsExpanded}" + Visibility="{Binding Path=LayerPropertyGroupViewModel.HasChildren, Converter={x:Static s:BoolToVisibilityConverter.Instance}, Mode=OneWay}" ClickMode="Press" /> @@ -121,17 +122,39 @@ ToolTip="{Binding LayerPropertyGroup.LayerBrush.Descriptor.Description}" Margin="0 5 0 0" /> - + + Extra options available! + + + + + + + + + + + + + + + + + + + + + From 9e8a02a4f6482085ae7ebd26c3451ffa0c764d6c Mon Sep 17 00:00:00 2001 From: Cheerpipe Date: Fri, 21 May 2021 22:43:13 -0400 Subject: [PATCH 6/7] Grain of sand --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9a8868c6e..0b8789f37 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ A few people have already started working on plugins! If you want your plugins t - https://github.com/diogotr7/Artemis.Plugins - https://github.com/Wibble199/Artemis.Plugins - https://github.com/F-Lehmann/MyArtemisPlugins +- https://github.com/Cheerpipe/Artemis.Plugins.Public ## Work in progress screenshots **Note:** Video tutorials and written guides on many of the features displayed below are planned for when Artemis 2 nears feature-completion. From 1b6802bad7bc38062f72803d55fff1c762f9e4d5 Mon Sep 17 00:00:00 2001 From: Robert Date: Sat, 22 May 2021 14:31:14 +0200 Subject: [PATCH 7/7] Plugins - Add Get method to plugin to get service without a Ninject ref --- src/Artemis.Core/Plugins/Plugin.cs | 13 ++++++++++++ src/Artemis.Core/Plugins/PluginFeatureInfo.cs | 20 +++++++++++-------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/Artemis.Core/Plugins/Plugin.cs b/src/Artemis.Core/Plugins/Plugin.cs index bb6235ac0..ca8645a44 100644 --- a/src/Artemis.Core/Plugins/Plugin.cs +++ b/src/Artemis.Core/Plugins/Plugin.cs @@ -155,6 +155,19 @@ namespace Artemis.Core _profilers.Remove(profiler); } + /// + /// Gets an instance of the specified service using the plugins dependency injection container. + /// Note: To use parameters reference Ninject and use directly. + /// + /// The service to resolve. + /// An instance of the service. + public T Get() + { + if (Kernel == null) + throw new ArtemisPluginException("Cannot use Get before the plugin finished loading"); + return Kernel.Get(); + } + /// public override string ToString() { diff --git a/src/Artemis.Core/Plugins/PluginFeatureInfo.cs b/src/Artemis.Core/Plugins/PluginFeatureInfo.cs index 6806db862..507abacfa 100644 --- a/src/Artemis.Core/Plugins/PluginFeatureInfo.cs +++ b/src/Artemis.Core/Plugins/PluginFeatureInfo.cs @@ -50,7 +50,7 @@ namespace Artemis.Core else Icon = "Plugin"; } - + internal PluginFeatureInfo(Plugin plugin, PluginFeatureAttribute? attribute, PluginFeature instance) { if (instance == null) throw new ArgumentNullException(nameof(instance)); @@ -124,12 +124,13 @@ namespace Artemis.Core public bool AlwaysEnabled { get; } /// - /// Gets a boolean indicating whether the feature is enabled in persistent storage + /// Gets a boolean indicating whether the feature is enabled in persistent storage /// public bool EnabledInStorage => Entity.IsEnabled; /// /// Gets the feature this info is associated with + /// Note: if the associated is disabled /// public PluginFeature? Instance { @@ -137,12 +138,6 @@ namespace Artemis.Core internal set => SetAndNotify(ref _instance, value); } - /// - public List Prerequisites { get; } = new(); - - /// - public bool ArePrerequisitesMet() => Prerequisites.All(p => p.IsMet()); - internal PluginFeatureEntity Entity { get; } /// @@ -150,5 +145,14 @@ namespace Artemis.Core { return Instance?.Id ?? "Uninitialized feature"; } + + /// + public List Prerequisites { get; } = new(); + + /// + public bool ArePrerequisitesMet() + { + return Prerequisites.All(p => p.IsMet()); + } } } \ No newline at end of file

n2Xt&f%nY>>&9pAr@a zcby^%Y*%oH%_c>fWCiJm4LZsdU>ivv?wfb$y%I6) z|F*n*)MT~?Id@x4YbG!E&IYNBRIccX8x@?9R-er^4l4iTU+peYapN?rqdG`pPFhi` zJs#S6?}RW}CLv}MH2FJ#D2djf-k4b%781F%8i~HKIVXb|)kKTRY8eRhg(zOFyGE}UFjKby(8k+(W z?1sq9*H!ulr9$IYeyjI0*3;7qZJ&%$vYhUP)tf?WS$VxGcX)} z6%_Newr;s`i?qAEa`@wOp3}8_o8r`?t7Gn;f+6EU+B09*;#KLzO?@7E!fVf$DlO;6<-dMJ)ov(R`e^^q z)_C)Zn}(!zEmR^4*{xN;TApq;&jat>GZMcqQhT|Lf7aQ3K@8K-L*A+b3OaM3;uh%f zrh477k=|Yx&#&dbq9lt18ToCS+2T4(PekLRN*8*;3RWRiA^P@UU8GlrcHRYV`^a3F zrufk2F~!YmC9Co;fwTj^eAFj~5}(GkbV&n)ajE>w>)#K?Y;9$|eSFjS7`h?gLBFK; zS#Y_cwn>?UhqY?J&G!o)*19z3NXf4mnR@0iN?R1}4`f$Jgu*k$8r05AwagOgJ%JaB z5t$8z2JyEXzJ)B!1A3sXJ8nF=ln(|t;=*o)>A&N#$Zn31b|B`fy45Z%5av0v$p=E?IQg6g!*98;b6 zSZ+`lt$i!Rf8&w^X6puXvF}f1P?KV+QXh&{D_;^A$!!2Ph77YnS)Dx1YX@7e#F`_H zUgF)9ef&Peu3Cq2ds4ZT7wM_bN{qd(Hi2tKUXw;!zuz96N7MXN@uI7s-@8dFty%s0 zTa{5q>zFi`-9724O@$Lz@h8z1H37D6hQfrg+}TkJWX@eo1E+uf*U|gon@|@@L6y6+ zukbbfmgdv%Dv`fzo1?V6?6`Gy40`-G6+uNwQ0140!(&ss&+B|BRdIV{i&J&5t5F%w zk9k#bbvijd!6Vk@A{nZpuH#zpc@_QntbgjJhn~+4KMY7*e6!MhKidJ4&x?xs=KH^z^|9 zYW|Mt()-w}3hb9}Qrk;(5@0Er^wu^(Zg%#He14a#$pYyfvOe&9>=EngvPCtAp?l^y zj;Ef#ug_ilkgjsor~Nd&JYR`fu8!yU+0$dnho7%%X5P7vw9?J*FLkX5-9Ps|SbQW; zOV9ZM`Sa2v&*xhRPba!pl;q}rpL%WBvj}--Ulb#lnVPDZ%I?&5YU}Oo9g0=Zw4O^O z%jNwED!R;^>R!2&(<_%?s0+@FSMR~t-dY%Lx~Q}3tAVnzvKsk=HpNlsSo_M~X5h9` zVqw6mmy?r|ISpp%s;0-q*X+XTJ2Epfp9II%3vAQ}A8rIDrk-boCSRD9@<@!TI@tI8 zVCTTZshAfZj?Bv9#HCL})#f+WCksUvKcv)gt)XTY-~Ny4EhM%0A=r!g3XlXS(n;_~ Ucf^UL_1{uED@V(6bMMpt0XS63WB>pF literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/B.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/B.png new file mode 100644 index 0000000000000000000000000000000000000000..e9fb3235681c727df01a35ab9afdfc93bff21cf4 GIT binary patch literal 3839 zcmaJ^c{o&iA0JC7Wr;{)rXfof%6S5nbvES;|%@TPj=P zDjC}BOG2VTSC%XxDr0@ey>;LBkNdpmdCvK5pU-#y{+{PtvbR05ZOg7LAP{Jqr3J}B zIC^ZnQWC;%oQ>*N;h@4bcjh`Wy}3aYHUKiEGCcu^C7t2}H~rA#GcrodElnsntFr6i2gFuER!7PfGAHaop0zNc`5p<@y77C$JjiAS|WCWQ-1bk^0 zA#A`g#Ma3x#Lo*)g_;;c41)yP`LH{<& znQRXsGT8tGtA~SmAu(8pK3)%rLu2rGT?h(+G=L)v;7BwKi6dYT1QZJL!*u}u zYsSB#IZkI-0NerKFay|L!hCpZ{3Huw_x}}b0EN~N?ASD6QYii;rdI$RU~nx-Mo{62 z9+gHVps`p3Gy?4n18@eOFmF5t4fDh!s4#s`eJ`Y!J_d)TQh&<%H$DP|MdQr%iFhIo zg+!X0nc+>%iRL7dnHidBe%KuKlWWP~a48Hg;HPeyQ1=h6+5hDdh-`quWwM=^O#h!% zVDHQ1GC96X7KBLL$T}Xf?>LP?Wd?C{Hq!LB*Cc>V3k0Z#*-Sd*uQ(HE|6&8h0E0*3 z^#K^p0HDB72n-HJL3$a$5NL#_J`RDydKzG%Kls%DiQnIKD%=tJ!TMF1WPJ~yWSG=^~TPip}TVL!2j zjT47{It&6y%UhC6or3$P+${YRT@;HSOz-v~C12ck*!6DeRfekotRBH|tqC6*sM_wT zb=H(O12+s}xbD3;Zj1PH=Pl_1-|NxGJ&bBY3hX{Rxw*OZ%&G5tRPXW!A3fmGGq!bg zMS#BKBwGO$|N2YDfwSMHkeQ{-L4J}4pO z0By=oFgdrv8t`!UIi2&K5%f-BHL2zI9R~=NfQxhRy9NL34SS+8he%4T zzjB=yI7@Xk&we}abT6C?6027?3`XQU>1bZEmh-IBq86xJnTh(IVRVKel)OH6ODv)JN8wlr9E{|~%DKi5#&+uJmzkgN> zTb%un+&Q}LkX5F*Xvs>^iqy}oX)xC5oC2wY4`<-$%?2_sh?rTPQzby?l`M^aV%!#< zwztYTT24<-Z?s>xEvuM7g9ut}6{upaCr)glmY|d&rNe8})B0vhYGfl6)Z$MVgSuUmr^=y zChSp#4ag-iLH3uGE75Rb&8f^}-zA*?%$qWeGlDO`=eNGYBNf}hj4q!DTD|G9=1yAb zZueGcc^u^ljwe$0x^tV8!Vp^AZ{jw-dr!u7RHpQ+jPy7|-s`d9hsTRfUZt3wf3cK~ z^<$&`#lhD}8V`JYrItbaoa7o_A}R}ay!pegw|MJ{umBHAf&m+Ig`MWAGSy*2b?3L* zEU4DHHvBq7EXwZi>duW6p#>7U+b|Q|;R!9klk!-x2~B)(_p%5y_k?J3>Y$c={x^2h zSYxb1(T!X0>`LWSUTPlI8R37D^w8{STXk)K^r_d%35_)3Erf!L}1HKiO;DDY$aB0$kQ)3B;n(s6Z0{&DAJ|tO59Y1iJ=sex9oso)Wk%(Eo9g@c z@+PtG+e6M+;=!QL&e-g!s@$=}!Mmj;niMdj*mxih1bZ(S9#WA zoxPQ`S>#1=TJ72I#q;E2IduLxu|dVBE1^B-P1Pa_Op@JRUD_{kqUFW&ZP(l4>s0H$ zufErI*iD7m&CaO@+Iz0vxjiWQW{-e;nY(0JLB406;gQq#X_Qmz8yK>4Ec*7J?7-HF zG_^HJ9fxg0>z@;Bi-smUo@soQUl}xNy*$)lk9HV*5|06SAJIC1nvPc_w)qA^U-)WU zoy+x|&-r-7VW=TRXSE;@exxdYW;!FaJ#Q-#@nQWmzz_m&wZ$tw0V~c9`|w)qzYM3a zI;Tjp8dt@^WiW*dRF`@=b9tqKjW7*9HmY)U&iI@1s?<%tCdoGzcGlh(K<~s028uwl z1W^2gI1Y!S7A7;}9hHq(LnPk zMNMQ@T3Y%<2-|9%z4ZjpFUGTyEs7qJmrYxEbYPYU?_Mu7lL68k?)s`nx%)&GC5Fo< zR{iM_znztKqST>j>|yKS#@w~V>Y95P`Q{5({7Y9W1%#WDF)ENyq`%R0wJoc+qD?k5 z?ddJu);r|+`4z$ZWf7Kz?%6$#870y$R#r!nA1mvDz`SsFaD9)+ ztMVk3#v0kT@mr)D^Wv?xx0>jb7d4mM3~+BdM>fgW35j`K`b8FD%4U9?6B&0d1vga# z-)0$8p^}R?6QkQ-@|$EL>lELF8Bmmr>YhGdO@;=ZOd;R@&A-xV!o2lz``yuImFJfS z<@OzuPTYe%-y7(j{_YB2&vO1KX*D3{F`lpmR(DHHX~y(YLco!_eSMOvcMmL#8>g}( zn}=PW(MGypcmA@q zoZHcug|`Ndy38#~X8rD>#)kOrdp0NC9iz!AE3W|Pmeo#(v&$i-d0OR zSEOLi!z%KuQ2K27gA@BJKC;a!Z6}xgx)h+lJUZqj??IWz6WHZ@KUThf+nutTcTN6F zAMbek$V>YQ3#UI(rs*HFv{J(-v`|}mP^aVg?cBlLn{AZJzWC@zD!Pz$-5RZ}uGu2? z_Y9131Jb!!o4aMF=jr!B@jBbTn7i-ER#hvuZ3K(*+i>O2_Qbg=A7-U#z16(7Rl%*j z%PF1IaZ(AHWNheaR-NmVl&Svmj5e_cw_xakmn%|xBwASLf3Yy)Mqrh3d0)|qM1E2Q z_4ddc+);&zROc=@2_tuu*EAL4{I)w1uI$}8e>XKeN#m5uT*Ngg?0S82xNdJQm=DfM zP~Oz6uixz#?#6Mve=Ca1*Y(aPyUVO4Y1^$Ga<_`;Sh72+RV9;PpX8{wf3@qW{mM$$3S3G6Ii?p2`eK4)X^-`>@>CRY?XV75G}37+$8lv*pXIHi;y zy{Vg=x5PWGeE&i_qF>YGxwxReg0B3jI!55&`+*f59qn^(UQn*n*47rw=(|4x9r(pc zf_w0gPEIARNwzb0zvd&UNGj6X<}IXSzTBsy{@zfMx={!wp?@vr-lvmeF|p?!xNYL( zHbsGNWMzTbGWRiJ4$8B~?}+p&D=U8=-YY5zHuoHcY7sq-R2OO&E;8zrq%2H;U1ug9 zs=hCI+2`hR1E$1^5=6;~S-YbNgx^tP0_mBXi!dNm(M0+3(0b-V2}lft54#7QcXgHC P_$9S8w2rKBiRDlOD#Gex|Qw%<9w&w1bXeBSwd?s@L#zP|VO`rg-d-Pa#aiif+Cs`4sj z5D28|;_QG2o=w0AR8j!`y~E-ffX5=1vmXZpQqfo#U{HR676>H&IoQjW>+7}+Lt@fR z2xKOaViHYf0ca4&8W+tXkU}Y32$4byW?&88Ty8di1e37_J}5U+H_1njXgBV4|@GUwJXWd|?@80Qm~xhGGqD7aT%--8>-n zOg06AGBJme;7An20&M~}H$$S)#t?)l+!AJL34@zK;pP~mDF%UneE%5$-q>U+2Jhhb z-52nNH3;HzSr`~BDk{n(%FKkxrorH7G#X}#fFTf200HI1Ft~(hD1)>12ZIBJLt+QB zxWP;YWPy=DWJYkY27uCUN1(HQ(lR*T!vq8j7ENHm;3lRENBRmRlYZh@5$v$9&dDSg zC5%F+Ft{853;&5_1u?lyP7w3oQ2#Xl#Q_jnH@BZY{#FZ}{?i4AyCo7h#`l2yEt=yM z!=k|O6b>_jO`>dx1Z1vVI1LM9&!!N#Otu%38TKPl9zP^Q?Clp4gNAJI31*O)Q5>T` z?V&gjxD>1b!W03Anj)d5a4$Ft14m*|s7_U3T3xj7VJ0{<%4%?;zi;BW~H62-*>c@TuCMjZ}3KsT%yAWh13E=oYd1$gJi9|#ZphPqR zAOg6dL`wt_ia?v06A%;>6^*9;VB5|P2JR#w?9Z$Vs>lGN8N$MXWKN|*;V6nF)YKAC zWr;*kpk`!15)ol)4oF_8{IA7?aSrAHX^#1Rmpm!q-)CXLkgxTFA&?gC1=fJHP!JTd z!T06hzlp~`^89^&R1gIq{SQ_0%{zxli=0bzsdTm z`oAgM|55$-;E;j{3>pP!wJ?K)^S~CG(zn#W{(siK+WyqQe!zjQxG??Mj)9k-4V}UO zsM$cfzBqi{9|T%_*~P)uEBgLqp$mI;r*=|=g5G8g8s2Pu#$!lEJ}o8R93yz(Bhls^ zXiD(TUi-(*tuOl>L+|}@CA`cYiZ7sDxRLW(aef=sdxcVhF(`d0?2NLp*9wo(`SEU? zhN#-mCCvq2*~(^e(oIXQuGv&{c+-+S42d_{(D??o4IZWR#8nX z!}C3Tz55bp{OG&!KC55rSp=b@qa$BePj7y#t<53yx2Ikb@aN~xp9h)*Hcf2qxF&w= zUSyp&F^5BkKXzchylqr>IKqZ{xB8Uy#HF4%eVx{vdFnk2jjI=(uX!2!`GHx6R-(lT zExt@9^VaC75ORr#wzSMmz!~SUz}RJmx#tUxI2Gs(Tbc{xz_MwaeQNrxV^_8EQt>*u zu2U%z_KdRMv9KDiP zyHP!jGkO1FqL<{Rb#dP2_Ga!2ypiizajN$&W0Pa+pQ=b|8dMb~x;1mN;ODpJ^H#50 z;neiIY6?h}dVl5p<>WY)lQ_J&Wu>gLj@@D{)-`fUN7Vx&vE95EeAcri+3A9ta@#Md znu)255*oE`P$8ps_=e%-j%|#Q`izl=h)re3EtszdKD@e{+1c3{ceT2>fBqCP$RhZ3 zh^EM^<>5qwYDcd~l%S$6p#-Q>qt4R`Wi%=$N#gLzG2b1Mn}!ob(d~{aAT$lT&{mLA zOcc_y{`qhnbG@3bHLGFo^x5HF8C|dpC9!#LAzoHxS}S$r5~rhD)O1=ER5>s@Fg9b- z_R;mGK-4MM;=~bYh#{4gL%njfG2q1tm17P;MoKeZW~TRvG-B=C`=JxTVwF_lrcGlx zvbcaK35c;LQ6#)LF!<6pz(KmmrbuzqiXJIQm{(-e6&n%B)>cZj)>(c8$Dgg2!|pFT z+@ja@p0BPn+pc_&J^jf1HLgDKWO4VN)1}wTe=VH^_dO2)M7&V)IC=7F5!`jV`r59~ z@da`-;>Ww2`BxO96Jcv^zZ|OUqsz4%(u8gG8@*4zs%Advt5$n2FHMkMNe``#+$>Oh z`^9E3d`G%2mYp~E@XFqG(r)mm9ZVw6cisbPOfWNDBt;K(_Ez=0pA%~dAWAkNWwi<+ z-N(#9N;Wk(lV^`wlUF33ONIST;R)2-MawT(h-h|84lfIkYJ+SgJKm6=v>hm@O1_$M zbN%@>_pQaHJ2^yga&g~FXP4wsHgDF}3}@A_M?Oo}YLn<3vVFOn-a5U#rk{WLn7^n| zK0YXDL(J#*<+4rL;!R@~ju%Vu612Bu;$98*r1bjp$RnE!Svnu2eCoKDtP1W5)_uQi z@_3)nN~9*kFRL_?9IrW%smL>K83C^L$HgI^#KZW~Li|!WA!=4jx?kvO-TPd21TJ|e zooN)S%srcY;x7qo;$5QEf~+pjHNxUeb}%Z&)RuWHK2Tj<{iHK<{gNQ*>^_08?u@6J zr0>QJvFgf3l#E_yWJpNJsPkEz5#kg?s-^ud^rVe6@{g6>85v7`x)vwuRXq2?-!Vc+ z=jZOee?443`A5waqv%jMo4Mpfe0)P{;Z<>KpXj&P+1%~QsMSNsg~J{@*Q@YCIXsDd z=FNl3bK7xWjQj!v!bS6+Kj1nCpE+KrZ7`1ZY~+V&%Z|F!O0Lv;4owCz@=xdr#WdSM zRmo)7jW}(b{H#G1f<|jv-`ShJkIy0X(9apeE^U?$4>y}rTxyPjESE{(oyNCq%TUq} zK@m-HGudHGW=_I9d2zIYda4%Ur@RA(IZo*6K zh1FFZm^q*?ZC$fX8W#OADM`N0;ZX5gN+B5#_>P|>=bq}v*1ELr{ZoOEcH10jaoO1- zEH<`bIY=`1>eZ`Nm#XU6RP<;e9x7Q)xV=&^p8V$F(2z&_Ib!WOv^2M3tz?tNZk*L| znT9kGPPt;hS?mc^>C*lWGIKj(W*y}M&#aZetvto9Zi+Ttd2gk7PXTlNI~88JGiNHD z2dcnJzzw1tWm$e$m)*q{pY|MOd7JSuz+Ns&zcVG@bh}?n@@EeoBLf}7k>aEq2;8-9 zz@8Y`@pM}vY(>}0Hql*B_U(Rcz2;T=l65h>L>TJb^(s-$s#QEU*KBfxT+{7|1?Zv$ z%PMIMj?=9{d>{}`C+o{KdF5yaid|)ZaRDO}xJ)V&c=XOv=~0oU6p!US^A@}2S7d^l zl8VGL5*6NyV)472o+*;y$LagCqcn}LxCQJ{(Yf6_ofdd@u5l5o@D@h-oM=1&%y%HN zSpDGiz?om(2g~}-rCR|O9Z5@9)+V2$<>lqrK!$>Di9J})bz4|#5Y(hi=3GXA(W~KG zU0|VP?9(1)_qA>0o~k7mupjB6p`7zXr93_Caw#5VW>eeQGBlJ+s;a1{c!If3ED~0q zDN9p>kJ-!0$}Wi>TGMkUBZLsKL6T^*PWx0xUpM_)AnewyTX-2gKcID$$=O)d#a19JpbVZFGzN-ZnJOyX4C$qS4?9v&6*Y zsi|J@Ok2YECxMvs*>>?`q=W=(w|ix= zgI}{EB+0im%>oPK*4`%>7acj0zbcK)^Lg6$QVcM8b1!tvy>Tc4M~ z#ThTEphpktKh)fCOmtyc`OfUMl6zB+`Yu@8O6YxPx9YMk75?B<-1EuRhb;X4YIC(m z6>)MzZ+y?zw2}^csAFZIx||;NMgO&#t{K$hLE)z?VQzCWQM-tVl=0e_hOx3L^mw-9 z6F=VFE#Gd; z8}6>0nSuMYW5l+SnVFdfTZT?|r;Dt$=OJ(RzS6(kTG?lD91K}grDXFuT}U6W=0hzF zX6tp2Z@7tgR2|eleyT=&wq$qY#ggfky8Zx({H`fc^6cW{cUr3CrB4o!9JU?vRTJP4 zh__}2t+8P$@ej3GSps49q&&a+ky^||h(K7nv8}7P3Q0(LwOG(RW0>tL@A?FgmTkY&3&+zM!8>Rd8@`O*j{S);Xq7wt>#T^&;McP?e32)*%dfyDN(w-{l zo%oQ5yTC6m03YagIALuz7ZfgSCo*t%(L3+C@5@SaFAyyLR5S|Py8m?z)Mvb~>#^eD z$@Iso#J)!wp?#T|nej>jm`ji0l|@HIIj5*MBg3B@2$j3`xbGMPYxWMUF}S3zA7R zM2rUo2p`6WilwNvhK8k0s1$?(U|EGiCifg_7|-Pm%(ep zSGhvr0T3X-+E`;OLs_T;F{}VFq2fS^oE2(?9rnvY@70e9Sj@1ABESl}Tn&hE=el6n zhz!Qi@N^tRqS7!708gS*r~t4OLne}#1R|3_qTon$7L~{%lQAQISQJer5VCl74kK9T zFDtCSLLp@l2q7UM_z(&nk@*ow000n(WCEFtLoIOfFo^;T#YyDzzj&~N<&aDyRfrG? zM(q*gBS8u)EE?(O6vWa|w-WgXO(>DX zoB&jSe`_p&SVBZ522sL9V$csJNF{z)%xD={Y$Onop}=T#l&_z2*lZUWA`}IpFXTK& zTMWmZO(y|#I*yDd4TsC+vN#gC0+c{7$Ic3i=86}I1T2`&6!57OK8{S}^KlG1m5c+a zOb92WK@*#oKC`2yJLE@N2K?s064-3XR635Gg_&8Xg}f1gI1oA0P^F3_b%Q zK@2LLA`qzC<~L+lI8@;bhQTuVNI%+wej|5*qOS-Xwpj&=QJ&OGzUFZFmHMF-)*BOv zC7{a*>OTDJiSQR#pQ%|PlA}rs8$nzPZ~hH?SpO^#QunnL7E)^x7GN=-AB+B^B>yP+ zk@X?|FzWO_2=z0J91$u)KpDK;4=vw6=>>K2>fBN8eiuI?35I1~WgrD*D4PnDcq^<> zhKMnvy2U6E3@DWbiXc#(J0Vyi7@1n5R1TB;r#Nyj_&>7*GN}LwV8A#!69!TBQt3F5 z1Tk?$3X#vC6X`TQllFz>Ke9w+QE4m^^-GWbA6XjV2J#0belWTv5&nyO009UvgfsxB zmN$-1p@KMoNe9piNEI^3d@7$0|8+jUn>qjce4xM8!QYf#t&UNt{55X^SSI>P316#i zGz84B?*4!9{#JMYY+!yaz#nz@zpT^nu=+fD2*007BLn<1nGWhU9o|=2e>Q*qsS?qR zmW6Hrf3qb})U8NlqPqcIz`#K;m4O3^038RTjS7G?3dp2EYF(?nA^+``FgmlpI!k>S z%DmL zr09UKF+?hTUp6LU!m6rqMYEE>X?nFgZa2w<4)LG#xF!1%SQcdSl^6Cpaoh4kd7`uj z{a7-Yyudy%{lX@%J#{PMh+|asIY`Ls2m8%K@ZL9+m4_*Q7gEetuXju~;Xb&%bsXc~ zN%nU7y*=|CHvy3I)L;k5= zStY4bzTuf&z5l6>gU=%0J-yPVdjIO$G3I7|%2EPhDC$$!Ynw|OZe4GB?_50Y(5rM?yZqtJH3m*wVS414mFK{$ zNgldpwfP29v`#^J+n?YBdRE$vODgm`E!WGeFVU+R`!rp4^A>A7b$ebV&WN{<&eHlNB3YCmAkKpLK#KDp$3X}y~pL#M?y?@306@oHY}JX3AAtJYoZ z9|?GTtQbqzL`yCn!qHcvN zo0j9yLS0Ng`u!=>(>jCU77<37Y>Uq4H`nGkcBih>N`Bq>x|^N6vBk+@nontb<>e}E z=1%M+i<{Dnu`A|TzOhZ5p;;I+RG_z^N!#->PHE6TTgpAq=%6`El)dx%tE7z^U!(_F z)Y@}2w^X)B1J;y}D_H7d{isjE&Eq9xS8_B5P$f(a9aFw@anV(k%hXpz2+z5`xAhRc zD%c^%A#bS^o8aQ2Av*)hKM$$#a@v9>PUad8@^;|H%z(I3&m`d4fr);_1rJZ{H zF(G4yitLQg#DfX7tDCJ#TVyu2@f##c{%-S=`O8uW9SgLw z%vD6)#GQJnF85A2TRT&3e($APxpHMq^|{pntx?6D#a;Cd79^GDO3RqR$dYf3%dhK^ zR&Sj7;nT_Z0I#AY%L-2DU0D?N{-yoIu-Ph~dxy6Sy)HlKl#_!r2AjP7xv1qtbYb*B zcuBGOHl)Pm)o4+*%|5^f{heBKV&29pll`NRQCkLa+)I=>yq>u%le&*~?k(%ss9 zYwzKb9N)415~aMb@c3J708dqfS5k6}aua-)+FVKXZJNBOf}lK?edc-g@w}Sm`W@#~ z{V%)q`f>W3rsq^^MWfy{t%r^+QjUAmy?sJqWnm}XKpVQrLY zjG|FpJ--C+Yul9= zt^uW8yfk(Dq?p;|Zg_ZGo~-Af!Ckuc*=hD4X0@0fJd|J@)*P4AUiYBTJ*CRw4Y2vL zAwl+(+h0BP3~Aqo6b-hLR+p3#F>n7<$#~^vpl4;7-)@)M#$Ro!#MW@q%q`1!w(X+R z5r>7dLe3!Pe91g}R=D%5pBoDAKR(Sjca*N?`_XuVzPeN19m2}e9h^(LN^HkvbHsOO z0Y8;L7T-^5U~_qU>Z_a{T>ilGUmCr~{m_paQ#LRbZ=9us_9XJM%VYho>P{!-);ONY znhf*|vOO;GY(qC^Y<*z4Xv=qrtR>@X1+U;B*QwLyeDvP`aYx3TZ<~Hj!h3xe+mmNU z+GM63Fy2%n(`n{Bf8)2II_X|5yreV1iDy2D&FS6~%i}N?OwL^hRJnQW;a*G6Xr-BE zvgdX2B}?7*RTh_siXQ#IJkb z9qLiN!ngfCkEZHb!=HRQ_D*p~*-V?sSsVB0ET=BM@|}r!-n8yC0AR9>_IC9y>3Qvu z8(Z(W1MILXZgK}|XFPYwyU!f^BE=PW>i@`KV4zSZI`db5N?mvfoz8Ht@)__(1ZN$5 znB-@<_mxpT8+_6e{nHj2dMCyUfCDy3q4v{wAI`eUA5147FxI_@f8G6S>n?-uA19D! z7{;u8!?n1@Bq6lTlx5t1K$y}v4&9mmP>+y|7*00^yB~%7`>fU>C z?WjTYgElMGNiECN`UU;R{5flm?k;k@K=9O=)jl~YlT|IO%+*WJfw{QQcA2HBwz2Go zB#uGVn8t*M*GS!9atjtJrx$!{7NN<`)LLlxDe|T{!19FTdlQ?}Gdee2)p$=oQCzy+OvcbE5BVlML;ObC?*1}9 zwKgd1Nmg^<{9 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Blackslash_Pipe_Wide.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Blackslash_Pipe_Wide.png new file mode 100644 index 0000000000000000000000000000000000000000..9759ff65f0384542d13ba1100e62543702d4591b GIT binary patch literal 4693 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CapsLock.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CapsLock.png new file mode 100644 index 0000000000000000000000000000000000000000..cf2bc9435c8545effa39a68de2b1b52f67e7be61 GIT binary patch literal 6423 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 XnH2YV*0^TwuL~!8SGyV;Qu2QR26kFp literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretDown.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretDown.png new file mode 100644 index 0000000000000000000000000000000000000000..1b340b639058e7a0aa1a657c47ef36c8d9e84ed5 GIT binary patch literal 4605 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 B?yLX+ literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretRight.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretRight.png new file mode 100644 index 0000000000000000000000000000000000000000..e0b8b45747a9d7470863c717daccd497c76f5fe1 GIT binary patch literal 4614 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 RXYQXGmo08i_csT`{Tr_DCJF!m literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretUp.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/CaretUp.png new file mode 100644 index 0000000000000000000000000000000000000000..d1852b4b0ef3f62fb54de5019d1f1f164703be55 GIT binary patch literal 4652 zcmbVQ2{@E%-?v1TERkfNrm|GC8p{l0X-H@gvLwrxd4|E5F*6vl6{Su@br78_Nzo!9 zOV&8Qd2_a#g};>_gX5tZJ&d3n-)+r`5putKqSVmaZDVu&;< zlt7|+0#G)U&PDU^=o_->1fnm%0(k;n6n`vurlJN6qL8p)M=d-YPsah?lp~=Gz%JCv zo*3#&M3caV1|WSlhD$&NSOgH8>gUhIu(9B;ycq6ya~cK)eTA@mv0&p(gCHlo4G2eL z03a=>HiU>kX@PXmP=vN73XMJpLc$TcFt{!Zp$S1~V^DAm5()Z#fw|TgBr?X<E)SWMRQvrQckj(tpzWGrxz48!#A~K!+iq@J*M#0!hT5IC>z%@2hbV5eE1H zRKTCba}M)UiTD4QRWK{(uIV$dLUM~Xj*7R=Q6%O1dl zzyh#fBpiu=z)=u5!XBZ8L7*^NS_j}r3>^Lqil>n%3WbCr610(8oEpLSb^#9P<4v*#QCHM}8F0*ZRQ_h@0mE3np$B#HNC8 z)0BUR$A4w{`~F~WfJ^!xs^ps)CXLJrCNKbFFK+Dqn?i*BJN-;T(0^9{-(~ZgtiP-O zhr<1Ts{bAwqBp_c3*fd|7f6P9q{K; zGq~-#SSbd{{W<6~H!-$ncTc-E`R_2_*}PwN=`=4fhVA?zOYpgJs*LDPW#J3fMr*u~ z!jNQnK7DDM66CH3SqO@(Zy6g<%YTS1=M>q?}qOXM4AB zZo6E_r+6l<_f_Swp5ETLyS7L393^)+%AZ6Be27_ydV9y(-Py(Ex>nPlD=VSxK96k= zw6FR;K5?gbiW-t#KViDlF`>7!^GH>-ev5-ycI$YVYPVWSR#w)fjY8$?UJE}HDno>6E&x!3_;^~PB%jxp#U-~@l67%AIy{NyU?3Sn%!A_(5P1oz1 zEwUN}d*rQ$mSV>Cmtd&%naVsD1g1{1C7i~pj3&xUMT^^OlyDZ|~i^H~XSX-A%H_)@2{4B52w|-U9ND&z%3|oh}15~>y{AY$C%A8`QpfH$Pm2+E0bG2kxiS)Jb-ZV7J7YPVw3V zWo(*X>1k+{pjha6a;%Vg%sg(gHhhjP#9JlT(<<#DN+CTqGkJM=+f!v=$EsoOoE`^n zI=|&g?L28h*ydx74sn~s{e@1mQy`kXvI=9q?^ib=YabL!|dG2 z3lbY|$%ni#N7A&6||roj58bJRZI?g09koZv_ra<)Yg`J#olSqTRl^djc{R zX3J*!DuU~;*$^HXAdy$z6v%`fkxEKzvDse2Yr``B1NUO7#qBh;{*uzgryHCh+~i=k z!d>;~%!Z-CFGXH0bsjhSmPRn2`BgrPbnA!WyX6v#-?sMoWm}2u%ISr$^8<`7n~Ezh z1Vsr^lcU;BWOk|DcKwWhwihOISV&IhJ-WoTXsCdD!DFfb7nQf>DAD{hMGNA?~?4-Ij3%yK9 z$`Mv{-gM#WpyEnlbt^@#tXejGCj#V^W!#{^Hq&M7~IL?)d0vq0ssFo|n_JF{!oUScP_m4>n%xHUFZQ04zQ~EU>RS zTyLkrw)H>$@XL1_U0GPrm3L4w7#!~pNoS|p8lq92uTg%JKUzOZ;RE&5&_U1rDMFmwq{ao|AqrSPLmha0z2`$r7uU`$2KLqOk{?`_e7vAvjvaKiPOo^~jQykgo#K|A3x%_p z(6N?`1c!KIsqi!~QPV9!N%1S8(_qv{@las*bi6MhC;*Jj0bz$NK z#^``8+TC%F!(H{Gy$x}P!@{3!t6Z-NuU)L-M~^eUtSpQ-T;797_;^81&|aY~w}ay$ zZ(N)ECA6Qc_{L{ZP)K-6vUYg*^mxYu_mZtkz%L=0Co6&=!cOs*;_K3z8#qT49cs^H zo~UeI6PK8|B!EIZGL+Y>FBwSfJx?Z+EyN<8X)mci@qjN3H(tGVcxffQS?|hB2Yi21 z?tyKZH{;HSlHg6c``+|uz0sj#Jzqkb=so_bY1U8G{jCotre>Se#O+L^wvFQzw5qF@=wtn`+z z1>ln*GErl^>@e~#54}h$`TE<>yc%q3A6Wt`4je6KoKJc*OvzqL6MT8@c}Ipp_~bPe zP=beMO$JPXZ!je}`NMsc_H~t3AgO$WvmYCZ-I2g@`Vr6T8OFfiRND}54yibZQmc0=vNRu8g}DNbVl+A7k4^# z*;TEqsd+g|!cJF1w8-abM1N(7v}k5|QnKmoU)obCu9kAT?q=lF4P_%36sp>oT!v>v zbhI^y7#Ko3emD9QPB*+_4N5VnmhxIRPo*BO7Nc60BZVd(2^(3Rc$OMD=~5mBC-558 zpP4>VySpfMY-m-SgVU0T-(Axvm~Es!7`cmJ6&iK+!fKwWUvav2<49q-ZJt+FYO%gC z#!FH&0+*%hlE}&vt{e?9FW*h2j`J6?B3(6Lm(Jak^=K8m_&&3)A;b)%-X-|up4WIQ zwO~XrX*Km`f6}m(s$Y`5`W;B)FXr87F|_x~HULN7Ft=1v71(`8tIhqX?8J$)y- zUs+nV1u>vkn_`84qSx$ZcI z!?d;N-~vvU;cE5fzVrjtL87YnL~287RH#^G%UPC^v`DhG)9&{(swC=l4S5aqf$DIV zqBAuk!ukRWbiTkI`|xUi*}|B^yIj*$4jEU6x^5H|WARJ26au}zzJ7yIH=mJKSWrM8 ztv$_O^Fc0WhfzPTg-%~b&hl<-o{IbpQzHhF977dX*56eX@nz+vbXc-1%RM9IKKobHuEf|;zWtZ!cQK?o0#Z}g}HySTD)O4F}+S=eS9hEqp{P8V?sslzIgBDabz zDlwNtRv{}YOYUM3J13p`JyWOC`TfrC_dl=yUax1*_j$gb@B97!+`iwvcF1Sb#zks| zY7huyk(;ZFFL+M_uMia_@cVI4#%=JX%68qxg+SDG6|4Hh|*q$e;_Z=%acfE zMOpzARw&hqAIS!-ArR6!J{us1Q+cpZDxJZ!hfh@3z+nuEJ$x(H3+2UjriL+G<2h8n z_)Y%g_;50T0$;ZlM&c7efJiD2fbkW$Y=}}W=pU_<7_Ylf+frvg~lUMcqG~efyNOrD5AAB?CS>(vT-OhqOZ$_ zuUz1hJv@xZV-u0c*w|RBSQ{%AhmJ%O2m~a`8fk5f04)&QI3^F^BbZ#1KM-7~Tr!8j z<}p}Im>dxZWkvJs;h@qlE=01w!7{mD!vqEl$p_d-v=vJ3(wrfM{LPLX&54*Jr;w4< z2x=si$>V~y=x?^{Fcy!+4P*Tm=x@`1Apk?`<@Jr@Z?!~5exu;>*2jQud=1FoT66v5 z*i@u1mCK6ekg4lqK$#|TZ`ed<4i(_BIQ}eF#2<_VB%4Wx!@fn5=*)^>aX?~Foz3^}-JG3$I4l|?0-WIbZghgV zt#`(u2{;_W+6p}<*UO9O#^mwa>(rhu`)Od3kU{3-O-=oS^Q9wj2mVyI9F(?F%V1oi7Fjzz=4F`&}Mo}m@ zTP&7fiyh$a`T~XgFJyBCO>|{&!BUI+O6f<9`jdRFhKT@K-kbJtvb-p%6gce5YsTN?Y=4zoZ8F?^&Bm^mm)+AGrs2X8G{jkpMn?J5;Dl5SjxX8U47Z z`{0o@bhi3EZsPw6hd=vw@weA$r%> zlz%I#ukrWF%E}r81A`+iCy@q&qBCV3Jv}{%1A~Lgyz!o!zUu1g{Rvg4a&r+h8chjf zZ@;{=qr<-}dZ6``eeT*l@n_0wpIxQPs`^jKemM4`d`(qDV^uI^O5MOp*8mx889n@@ zV9)lDkk8@a;iIp*ySx3+P;<$=tkl$0QCDe@1#k|fJN~BmM8mkO;gF8$VZXvnnG$>1(Td>5=qrXNS%X zpWw8G;0l?Es<1cx3$)66-7a@ID%3w+HG5ThzuI_)J2mjI-<{9)yJ0~RWm;^VxxK(n z@11Ve{*kl9eUGXG&x!*~1G`4V7u*5Yv0v)6R-AxARFYxIMz=MiO~cBUPMerr@>n@^ zaT#{|+Uw{1H1^Ak=HtvI#xJ*ZrMz+9qCz^dU?a3KWlh+N=-7twwMV+IvkYPx2rW?AQvGxOwa=529Mz@KlshMHFPx^|xoddq z;mu!jy2dP2HA@+?d!MgT6b|n^RhI!f+;4ruLv7E*%R8^Zj2A#je4o2z2bAvnEGJd> z^Ey@RfWcYW#K{@|PrHp@S57YPCjl-MH?0ImFX|>MUq3&;TxXge!D&d)b8vWfdcLGW zu{D2VTHYfSqkZr|OVk#rQS#xkDUuiDcwyrOv4Fi{`SbU6DTrmS71Mhqu}KZ*2j@ZK zj2c{isWyw!_slz)tMK3|T{LsgG5w5!*+7(2`Y|{udKdP^hKUN}DpR6a=>0y|qVU=6 z#tT>9ugsG^Dww}e+m_lrq7C27m@?L=!|9IyJ}aC52v1U8R&`nSIKd$v%#lD=F?3ihbDE{+(rmM$(dU(lV zL@yCzR-E)KK8Fp_PS2B~*6x~>RjD(LwMmmsx&zH8OigP01ceDA6Mi{%dcVOuC?Q20 zR<*!YYrW(g68XW`xeo{B?BcBaW#!;Kzs?r-TAlfYRu!a$hx^xf9e;fR>e_5Gb3vI# zhtvi0+&A-w4nNCXqhzjQfYBFpc6PpQIAX906I9nH7^L;R3{ZonuDTOHy?a+ZR1~VL zP2QhOY14^c;$;z-m@&$RDHR0Q>l2-TN`{huN7Dl@%d1dl5BPyFY#W z?P}PEU*8Y={nkD4s%9%w*4LEw8f@#?2Tk-U&mh?~POs!te1dHJ#l3rgO4{4T?%@+= zB*Q+pT9d^0t%L9-4!+ViZ|o}G3B-_d3+@MajsO;yJ^1f?mju>g7x-MG6m?9e`#qo=7BiN<884D!ZV?3M+3MCwQ9= zH1rsBn*qnBt44Y&jEhxCPe=W?{4}kEzV|%IloWhYY9@2DFYK*oU*~Q+wh9%~anrpy zXQQ-ZU%L`1M*of~sR}MUk8icTh{7=WyxUgxB9~fWJEWM~S0SBsrX51dcHELHC-K(%$S0wefU&0-^Rm@aYA63$5 zQcBYv(8Wlw^%|ny{87g`z^O~zD|z14k!GqY$O-PaQJ0l`AhL0R_k(VuB_y>S(Oaj| z)V#+|_pg?s^iXbh5TmNXJw{7K`AGy>nXys!scjpw7i{w5pWfMG(jRdDMq^yjZPCvo zMYg|%Y~CTo3M881u2Y3wHwLS;cGZKc z_7B49o}#2ldQZcQ z_PV7A`+$~c*IOgtoP0w0$3<6zVq5A?Bydd+4yq)`IimPRP|Y1y;OJd>KWHO|Y51{o zIrJcX=w^vI-x9yyl>S!rApHmFkcPA;qvhoR>)V6p=kVrW-|Go*@jK+p%t)lEAS=4b`6qv_QUjOzx$6f-Z|UPvn-|3R*HH41KoP3 zK9knIAj37v(0TO}mkjbYTn@I=+_ByKxL(vHcFL{jrA0!UIKe^Ll~tp4z9C#LcfQBj z@N;)JHN{=iFX(w8-{2RWYZi$TkCv3FSz5^5}kC}@J9_PCpJD!{rvHHKMA_ZTUOm1WS9=BUaw6N3*vu1;p6R5 zR(RpUt(xOLZkboOwb#na%eT7ruTyX>Kkslwi$HpNSqo@e_ixBmQgd{hxn*skyz>iE+~^~Glv z8|!V}u#JlC1XTDc=#!&R)3@EDJPR6tLZ6cYnEwM%ygMHdG;`i55>jWU>=?BR z?}VsaKH6oPyvCsu@q0w_fOzZ7(atTFhy4+U+U|nKKxewbIW<8?v-q%P5OruRxfJtp zXNo`|7*Bl@RT8?$CKHD#Im7;BK9D<-wV`a`j%a3yMo!KzKtO-MnlLFIS3m7WwABrF zjb8M;sIB_ojOM%|^^nc{2wZT1?x~y7j<@R+n+)}xWzVLPr1j=kOQX85PsD?0QRaga zdD8UUCbbpjGJQ+j(-iwF{&x@f3N|PyPu>lSiHUJoc%XjrEL)?Pvc0EQwxF+{dXReg-0Vv1v21$TWY0PJ?$fK2x-UJxaQuTA$-~2gYJ6FJ(VDh* zB%#^Zyn3gTx6_U;uX-*ti(64EB&3wwH6I+#vr^RRuUM3IWpdk-sjxg7B_B&JYgvvK zRQ*_Tp=NJ=uOr}5=5e|@abr~%KF83qEMI!Ltn70`vp7enkYP7UG$(BdE=-dqK^i#6 zaFXWXl1p9T35g`XHZxN7I`cc;+1w$@>77%LQ@S2kII|VKUun~8$y2HRWpv#{aMyNT zEe@XE^vpFfPa45udA}>T(^Ge>`kJbDXU0ZmX*-?Iff(xN8Hw_Hx`MAyix$>btRxi| z7k{P(C!eVBn=ub-d%xbVLCH9BXv_|;56u`Uf1`jY%9t|Sxn^JRjvcdhs+u8ZA3l8e z8I>$jJw)?}>5?W9wpxmYmyz_(vO8{Gk}Zu6waZb?_w)=pl;+M?)PlMOO_lZ@(t9Z( z>=@p|q1A2NXZlgIYh8Ol(-n!M8o8dhZ1(g*hlbTJIkZ!HrIf(ZMNh(mE&#|7eCv|} z1K-QDOy}6vfEc_6n0pXj&nH0s;>C;i>&I{i_%9Kj9|7{W zQO>r9z+^Uu0XBqTpk7D=LogNxLt@YdIGjEhg+Lm?5k_z%8j8f=4G?$~3jFheh_!L( z-gqj-{HHGQ8v(-P@dEL1cyMqqEEo-Ab9~@P91aIZpx`JJR4f7Ih6M0vd}si7$1es7 zgX_id4dnT<1HkKyG*5OAj{p%{`nL({HrwAF(i-yr!u(gAdZ(fAKp8DfyJ@=--^}+#n#{ta(u-}q4`tTUO_BI0MCj- zfQY}q=)QD3+R)GljX--t85ko^s5j044fVt!=uoUD)(h!{HNc?h^j|#xhBwFJC|IO8 z{A3IgiQI1{CLo(*C>R_HgD^EU#r(or1#o$^058Tb-M(VoKe0yt6N@Kv7&IQ6{ z0Efh38BmN7g9b$*3@}g{(#r^nKqEY{7zD=9)5s9=6HouI`2Ag{;uEnSfxpbbqt^il zBL>tPL&rkB7zS7<4S~Zz8Dcsd%@9p9GW3GL#U{enOXt5z>DQ6CKG(PZG=}))pVndo zi2I2nZXDH@zAgZOyu1~~)REse>55ByHxlS zvPtKDhoB^t);zE~+#s@G6SSlb#604P}={g&93o7QpMbr#nD`PAaHbyeTk?5xv# z=|t+_VKOOl^#H_>d|TF(`{u*TuG_~i?eZV0jriV@23PrrTKKWDIMRQY-42|e$;->L z3%I-b9&4WErqgRak_aMYEv9v+_c8DGYb{dNMyi;d`2tq2n%Z_OL4(QXFHOy5HS_NC zNV*Z)r>hjN!$>v zxJ^qdJ1aX|Yh~`E!zu2m3)qH=D@WvBynB9eRzS5jB)ga_>-5W%cbv7)mxI-ht)}jE z`ViIPE|eesBeCPsDpgO8XwhA9833G&oF1;f0wg)@+eeLQD84ixGYuk!zbHr*nF2Zy z3$tgpI8Qd2mHU-=7PI1J%K)G~^VDyJq4hs@8!U~UYeL(PD)DZq@SFL>UFr*82KQy5 z@3Z=aUWy>1G5gJO-Pw-StxMct*kK^sG9od8n%^sd0yK5sI+}7)^G4Jr*;H!p)sHTq zCq&?iIq;2s{d0U=U_by2)JFZ0J}F=CLyGQQS)9td&|aA7J^lKkg-E5Te)j}C#-`m% z;}cUe`+cR3o(9I>@+#atN5K_v5Mgi~78v1p7`iODv1TOmBOY+u?J-_TF@Zn(!B$3P zRPN{odA-co}fqaz_~fQmR>^ZIn-~UzM?Kmm;y4$tGL)Zu$fX z>qm3m)YxPzf}nHz3z^ihc;j%@3E*r2<+YF&_P+5_v$*QG{pMQmiqxgROpM9_v|SZd zU}rWu?dc|aS596?lLrVF0uTlgMAypG*@p4k=qdJ%T+>j8KQBM*_!e%wn5=7qI-pnS z>@M^_T7LG@aBK=Q?%O5>8VK-QsR3z_z!Gen?0*!(1+ISTuEM$yev*UbvFJGF|cTi(X{ zjkkRBEemrpfN=qi9QEJfLG1PUU)bcnsVBm$n#)j)- zYt#n=>}}#b!w9{|80G7$2U^6o&TXP0}z@;bBeEgU3Z$1mU zaHZ2iD^ZzK#kaoqzL_qzP8Kz_)ot<@5KmQQc8k9B^f=cFx+97ZvAd1Iks2xAck1M8 zrgNQuA$oFpCbAR>daaNs?^9&|+||<;mn4M150O zkLk?(r+hbgkNAG%06$tRxx#v;7k!GpmC znY&fA^)}TWa1}&`?09|~8t+V^rW0RAzBcJe>e;4lM~{d?B|yJN)K1Dq6jclg_63zn749y z7I=To-YRB!7ejb>*|2)|s5RU%@w`M8Q(^BKKt*S8jwzSlu$bbAUS@0 zr9Oe}r72yL{Gqs`HDAX0+Pz$AgWabpD@ zVUwyM>J}37UQBmi`ubs9&s;){RmoShPPnyC(!7~C?(Ujru~>ga!*RRMh0x>4`_d~9 zmzo_F7U=CP_v_<`9O*C4IdP^ILLk2g;0?J@xXw=0vI5 zjJ3-iOY}g4w8|ld@r_sZjhAm!pa-!QlJ$@ytNLiGKmKeGoq1G1|5#FG}>*HkZ; zWD4UKdND_%nnvW7jVqL1T>?7o8c~!OD$4AAt3)oB-*L||1$s_*kdiiIkh-(ez6EkZ z6d!NH97{bRdMnX;AA;_DH9J>XQ?f1l>!2g1!Li;>!zH&*zwBzkXF60}!12#4l?#&Y znv+*nplG?H9&Yba3!NT)svmk^}x?n4a(uxTI~!INIaCed(q& zl%R4{?qtWLkM zEG6e(L|CeMnfCxk$vK2D;m}6nNAYM=DfvQb%P6<4?HS+SAB3qN*K=(u)OyXhqSe4@3U{vjeJYkT36^VcsCZK{Cy~8Rn-IVPCj`l?-_X0`p>Ab^43#wdWXwz_vTH4XR7($CBY)kGH_y@V0f}Z$$2w~cgzw8nO`wcMy0{%;d<*N<( zo0OA%VUQS47=Xo5V4nCR7#IbQq{6f)S{^75ts__rmHNxhzu{4OhKBkm z11&rei$;%eLND6F+^iY21F$47uJLx#3Iu@fM3380^dKe*#CW(xzl@S_rXroMjM@<3(X(0gBFp%L7{wvP}+P`oh zYXFhF1qPu9ecahe_wgn%MqqjmnLm41l?{kgIIXD|eZe?|+S z3+5?MFgW$lR}vu5R;CF_&o1o6$5STBvK?|g8eRADI-N~PHmw!L{GE1viRZx!$9Kn< zb3W~I4XzTkX@j#Wcqd6>dhbj3ej6^~+FC=CuCZR*o$Mh_vgg>*pGtSiXN1;k2xngQ zkbEVtik`ewiM;`D$Q}UFFt%z^y6j&@F4X z`KhUr>mif6U(U5nTgb6VG5oI;)zK??_C}75js};fu8bcr&#?}G&OUlNJ2Gm0zp-)M ze16)hq5RvxwJP1HWuBYgs9wBu^@((?=pSn<&C0ql=GDdgv2$mN^gt!zE!!w=+Y}Nm zk}{O)307~G&rfPN^!h1~|!5w|F>GR=x_QL3ZH*F7!-q~8DL#{^U&53Zl9zW|B zWpfwT1VIM1yhqH6@o?<{Ma@*xc&q7E6$x<5D*xO3dU0#-a8Kv$xVM9*pM;h}=O=)1 z(@)^Il0B1SS4HI}Ycggom59hG?eAS|#QIWef_U_eo^=(S*%RD#P;e=F6uhL}W0LAAZVYn0qUq~k7+@?UA=6o0 z3!go$+@d4QR}=Bc=2Dc+acFd=S)E;McC^a!$Aid7{#Te?zw&gURLm;VD&p+{>kF&N z+{^{sQymSXN%d?|K#<^$q0$qWeleaXQRJj(Wz|qwb`+;Sc0A!n!Wqw=yxcS5`VS(O z%HlWM&UCmB)Y}li+ViiPdq2`5rf1Z7gO^8cN_{bYXv{2~?N_mD+q9Cr2#Wgr=E+L< zR@StpcOMaV^z3mJg6{QgDOukVHm7^$C8@Q@4LtKnJFj8nv)RX9qZ`7?Tm7P zzsYN>J^V6o=oD_c&bOsvn+!Q9-zn^s4w>hkw$(bbZqm9bU2F>AQ7hmoOT z2iiIf`ebMy2QXcbp8l=gnc&L6@2gAiMr%CAetdr0o<&UBw*R1Io-zE?{UclAij30a zLL4IHS|{4Zp4R4PK66w4nH-2s(14F9d8&3 zeu&4;x*#L%^{Oda9(Oe4<8mqIHGYr{*D7|y6rHZcwz6l3biO6K&n6bjTzK^$9Fu!A zlwKP&*>le7u7X69YjZ{xin9#kHL5LV`mB;A(1%|uNV8%~P>&(9o!1PKw=4lg5~}Ua zo|?PHD|hetO?lF^6%hhuc1=}8SWvO_@f?4s)A<**fZ3s{_kv!NZQl)dHMT4`=3HiF z#)fyNR6)hJDH_xNygz)Gb3V}X<%Jy-X0%}+z>J<wV=5 zJ|ENvY|DEOxFSva&N|h3T0G77>dB)e??3AR_s!wD_{FCTjN0+7!9T(rv@6_?eJ}KT?Aqwic-v;u=p`j#p5JH%4an5Q zwzfx(e*QG8by?^zuDRc>z##45%-YuzN1Jqu4DJlN>*|trwbzpAxi4PFrc-D_%K`Rv ziQL)V#~w7u^4mYVQ@BQsnCu$~%3W4hL#Wk|*(hlLaEi~t?5R0YPul*OwP!0e>b$pI ze|%t9M)WW%=I36b^2}g~sS@iTxQDOdot?ok(Cuqi#MYMOU+sCfw!Gif?&$V4Cm&Je zCYZ=&^uWF%2LEHbleONS!*5eeW0fbnV$ND?PKx-Qy}2Ky52A|~ora0<@SwEn)P#ft z+1HI_&MN9sO_HZlul8&Xn7yDfl3IL8r!#giZcJu$b!nC(yCPJk;x|3N2pECZcs!=u zp7?QHxl<1E2HUR;5NBG$+K5Jbpi(hY39GvH=L^@~JW0MVJ8YQaA9@*-BGb0ilYdk; zuIpL6)cdH3F7LCFGiji8^dL!nyMmHwxk7%GNCYxhNVr^|bE0_`6ly=a*2g|%-ubBH zg`Mu^mtw*#VANcqq}U^OSIT> zVO~;?b#uqIqB!-wb>t)Sh`8U+@H-4X-nP8_E^y4XaHy*!_Zm)*;3=aTlTergGrm70 zdU`gzG?2JT(0J}B|Cw{KHh{IuHqK%%v|cYYBi!h?`k46la?F=09j6+-_rd2%8X%O< z;bS-aI6g;3v#xm=J{gvj9ZRovHQ4U4Uxj*7^*bWWUm9AazppF6Y0gY0`O$CF4FTB* z27aqbaGJ1kwj#yBVe-B{$i<`u>NtF<$z_N7y}ovPgN*Ib8P7DI5xz#-C}Mr-GS?S# zL*Q*dEosEo#lY~{FzwGK2W=I_Vi7vKMizd#NLx#ylC{Ux-zB=E)k{I;N)O_~J;j-_ z?9Zkb?9vb1H4xoe;&ZIX`cToksmWU*L2A`bZO^X^o7=kLYgiCOhcf||xhs<0e=*bM z4^X$J_Z9yvi7=?uv&rzpIJ$zXQo62a6r1juM3lT|nPPqYl54WlfCUs?;NY|4p^vkn z#VSvo^1`O{(wBv}RE)Alec?A+O>n6~{+S`uy%eB&a1-YyRxq~%A!xQ_v0}Rew(vrt z=68LPNdI|6Zt|wtlM%cpkD!sUs&d?Sk~tHZPpeMcy%b9^Iex=;Ac67J>m6`rp+ahS zFZbG=L%B9Y1-Ap3K@EiXdVi78x*kC_zIV;)_bp7N&cbXPc-MD>tzo}|Q^(m7mvTq_ zb}c^>g=z21l_;5L;kz1hvmb`EW^|@2M-lKB|tqN|1#`mI;NS;d>Ki12V<#0`nAAuh(1tE#FV{=DN%RvNk~K>lLkm7`ebjWHX$ze9I-3OB8Hp#dZUY7QBwj^D!f-1y@) MF|Z_6>buAP2YM$HS^xk5 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Dot_Del.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Dot_Del.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f8191b75798a65347bb004eaf6e9b3fe1067c8 GIT binary patch literal 5501 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 J%5m75@GrX2=lB2s literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/E.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/E.png new file mode 100644 index 0000000000000000000000000000000000000000..b5eb03c7109cc1d224e3bcd00e76513e7c68f8f9 GIT binary patch literal 3647 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/End.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/End.png new file mode 100644 index 0000000000000000000000000000000000000000..cb970aa0458a422fd05b5594d2f4f107fa1ad1f0 GIT binary patch literal 3911 zcmaJ^c|4SB8y>RDQj$a&22sY$7&BwWzHc)Kok)u@3nMeb82gs(NMy|}Qb;FMNXas! z%^t}z6sOIeCCY?+o;Z-2ar4tADeA_qkP0Dzdam6;=V zJ-2fU32>h&Sh+RsBFi*)VLH*t%pg321TZGjJxD-nD&CXiNWv3C{5nW_0Kl#|in9yT z1&75D=u}Poj*Vt8)t8F~0Q3xlees0zBqq><Of#{Fbs*&hGMj|fIlxKt~Ume zjBzxx`00!Lrmy71Wcp$tkf5L-%^d@z{i5BkMm zM)D^xD85Vzod(=t#Cy;KnEFawrGJM&^~K@-A*T8NOcXa|kYKzo1f~gvP^mj{{blXX zbR_*(#=lzoJBRp^AdVz|dH{pKtp^$O3(U>k|97-w$W?=}XHd9B!TXre2?10RjcIMB zuf+YLNu&@la0EgJ4uzA!B&3c9n2gqjgFVntA{ga?BESeJZ6usX{KfNcc$kTa85C}6 zj5bAT!C>YlCTO^sDN@@U2GfE<5$4*zu+}txCZ0wh{qjxW`u>SU|6eS|ltIEX=?rH& z-RD;qIC#;Sbbl|pFVNIEf)H|-{>W~=JI87+G^2h8ct zHJ?~4ELxmk9ZAQS-WM{Ss_4!7*p(w^@6y2dIAmXJu$8CDirV^);H-R1sx^*ix_R^F ziv@Pn=I_sD%rkHxR>a1qCRS7Lphfdp$hg#2W>=|orpQut1WRQ;_a%kh*7F!P9guda>y>)n1lA2WRv9vUcEB&t5-E8g(z zEzH}c88xbT;kkhU>bq@;^7>%4LOwvCk`=Z6BS0*Y7Wi8kU!uKSgW%*ub6Ae`v9ege zb^QF4n9ALe)cDiGj!*5zgr-ou;T40nGdZ95zukN}nR77J^LmHkw9ApDjOB1Ut@)k; zl#ZwG(@W9`hxLM??sXi)LC*-0&2y8QI03p3T={{+NSVB44Go(c+tRCC0qg zlOgw#`P7!R@~scqsIKW)L;)3?ixgItE<3<;kErCgh>a!f2ip`GMip%!*})-IPZGvf z^W5|O(y|y#N!0|IFD7v~m%C!;0CxkJyI%9H?{0e(FepEphO?9Hh@eYHjwlZ0aFe%m-kwf7iTQ>qjLo)P? z5Kk+&Pi3;Xv$DT5YVmDz8R|ivENj73Lab7o-x@4JyU?qoT==vu6kL5ZX1%aRYVREi@UVMP1mSn z^(tFiTV>Uae(x=wJ&f4+irC#!$V!ie6&QuI1vQUfyV6zQn<7}xs$6~4opq<`%T%9d z{r1wI?PZ@6(FY~VjaTa|rtA0)-7YeioPN8S%&h+{VJ_*o8{%UB-da*uwokfa3zyYI zLGxToq0h)&Mb}y~PW9=5yzOM?S5Eg94$pg?7!;RjEtnp>P2qqxYql) zzT})AuI^DPs`czc228$oUc%k;e&F5uG)X4b#0e_Gn(DoJELZ+y+<^BVb8}QsmJddJ3R7m*r5Zb3;}B_3?W?_usIr-9x+aKBJtY8*?@Ahpw|@Q0Kloj!yd_ zXA9%0;f*Q?<<&5GPR(PL=$;}yQQ7jKJT11U~r`WFy_xvP9bt4=*9>-mM4-vqGoe`U-!tDs?z~0+p7Ifj+)G zsJaB&h4K0lMSAs0xb2lfXT3(<9MejU8o3H4FGWOsOWY^uDkT-(l(6-huoWokZoJ~Q z_0css_|B<*GNCPrRIZQQ`W{eXU?lx4`-j1~K)%-0loaylHMK1%7%|Ir-?F-X-QgHZ zJ>tNe&1AyaifyNO`A*2$CN=px`S|*=2wtek-r=zabQwTS9>3dBj$Y2FP~MhM?W zY}#E;C^?(6$fG?FTM{Su&HuOB*`$h4*Cj=sf!a*j7fXU;sUo5;%2I9ib{neKR(0Mf z!Kt5Q<3q8#)6CDia0GLK4X71K9;U`f>W4R4VZqX2=KzMzD=%f)s8PIRF7JlKk?!k) zF1Zhj9iQ0E)mYc3^<>*LC+GQn6dpjw<}SrWP%1j{pJ*{AJZ3{fJYsG%mx zHb=%a-yicau(YJ@JuM3z`AnU)6*uS-;`p>2n__rXoKijNmj~?em6F05ok&bJxu2YW z;|}}{%91zJymHf(l;&|eu}n0?x?_NpUdkRTtRCEbl1F>YbR)b#qm^(eEM9k(lB&& zTH?xM;CkiuU?<PAXVIxPFSWGNvo7R|H9_L)u1bky zr@AVBqZ2#X&guvG-xTSG4H5XZEtP#G$`kkpab@4by=7|RdZBD(!zX+k_I+y3Ok)zq z(d$p&u&}T@Zc|?t%e3|M#trFjn+U;{>aq?27X~h}xz=Wxrxg212b7aw1h#;=RFPgt z&07%zikH`P-{4mT0&du@WyH&Jtjaw_dvxgr2n5paHO?j*&GP=RLrl(&jEo#@GMk*d zf%Q54j5s~#g<4aVo)8=1<(avO1=;Hd-Pn-EG@id*`;@mAIw9%d-f{l>#>VkadQpGA okz$q2%RlYo2d%SIw~n;}3fx9JBR>x`?flwWo705v66iDrhm>FkpV3PKpXHxXaM+9pH`WgBC5(*U`ACHW;L^9b?C=8KEM4_=LEEWMuAUJ#mmz;oLa7;gIZ~-_J zb_|Of!(_nZ8p#pNIIbNWwDgk;bk>|&24|KgkT6sNnT5h2(Q=n&1gVrcIaVB-HUmzj zpa2>`2N+xqD2thsWkoZ&OincOFI3M>{|f*}t(Vsv#-G|kr_VufxUM|VjafqeRGJgW zX8|aGfWwSqQvg>UXr}3BZ#Z0k;5R=1!E#W1W-*K8%m&C@COeSHq#`1 z1QLcwLRU~7GMD_f!c+<=lF6o%LBe9_4Pv17ISo z2@wDS8wpSlR16M45F;r>1eQRF#Nq*KD~c86^LiI1B~Bhf^7WsxiOQsaI({>cjG+Kz z3aE{WMdJ|^Ya9^~K_*fW0LBW3vBKif6ui}EZ9eQ6Frmq`FSW|8qJkO$G#1P}3TO)v zpdzerI5dJ7fd=yuz~LeyBQZoQ7AsGi-;e`=1nxRAA7FE4^U;YMHTy)1`GUY18E-Nj z2u7V?8-m#e|CL*Gyp37H?jH&hQo~H#*^8AV-&c9|0Esc&dYrV>HD4i zOa>2Nf8ha(%mxYNg52A|BiT$kY%X+RTqcanV$otKWV!Ds9)mhtxaO#Y|0NEG%=`B& zVX!!|B{dR{u#N=q2s{QCfgnc$RtSO>4vhxD0LBpJSpFkRcoN>4gu{PM)Bhn$v)oXk z$&4rfJe5%Yfj`&zbiZc z_x@1+HV*z~>*dig7b<_v8x>&3d=Uv>M%$bTu$j2~-@*I)xcf&n^Z#R?W{TCP(u4Ya zRr>Vq@`+40d791~t)xGzKmRlm!LybGo&j^G!hfrN&*C%x({o_1N`KKneJ+r@(>cmf2X8S3HU7?{vLlwHZwTe~=&zv}~JT@F3cr}Z|r_1-}R zOS81^rc5TP4Qy*ZLR_e}5MrBFhT8PLqe~Z#kG@GNZ}FQ5j4#6K(wvH1CFa5oG2*Io!CZ_oGQCPMk=-P*k+&2r3-enClRJERe+b5R~&b2u+6!4;>59IeYCx?PwTs_ zdnF2+Qnc?b;#aa>IBk2|b<_U{ax*DEsBn~@l=Q*D#>VF1vb%>RO1~Bt7k}J*J+VyL zIMcD)JJ){mSGM6lkmAl;b6&0EL(3O_dglOK%I&x(1hMa)lkO?XdRcn!GP=9%$1=TlEKu5iux7W; zizf8gx-tL3qfgQt()5{{9TL7qg-VsWpd-eX|Ka<0zIQ53Q4)1y1@uEh9bwA;`HVa} zmkPx0)?Ag`JoU7xrxn{M#R~#C%$jrQ((cT%844lK`B=y<2q z;;Kmt`0;_8$HdCZmviQ$x16D$@^XBn8n3*pcPZ_XbED+RIoeq6%*j8NT=wq`a^4p!;4aymv7H^(bcK44Bb?oMjyt*F|A3y$G z3F>x|_Z??d$DjOFAwlY6uf+62gGI%~hmDm5ZGJnOj0Z!`iXpKaP22q)ts52zG}Tm9 zr|*tgtZp<(YuRNi9(l9m%!AigI;h+j|yUGh3_z#RrBel>wd|3iIvr9E?U}Z@Y8E8*Usq54W#THQ%D%v{YgVOZw@C zfshATEO=zo#)$}MY;k@ezO6=cI-w|Bk2jxJrMi7H+)T^IOEBqY>Y%r|WQV6{v%XG{ z5rtjj-cbK$U)7!v%hYlSlSW(gOOD;wsnF%Jsr|C&RolPzM?H(J5>6R)j)NIW>e&AN z*K>lwdJ)w1;a%|hp*d*y-PDJ1?~Yv|Lw)*!Mt$4l>1(kDP~A>%Hea#cPXu-2A@L>B zhaKIkk8%^stcD)u{url+S*9ec|1%Qs&vxVJC8tVu^;6S{XGsBnE2)=o;% z&kj3Js!Y|6hBQ^AYPS_QcuTs8>kjR@3k)vYr6c6+E2tMuEN8Zg3F{cw&wCroT3)3| zlJ+*S6{{_pjNPSmjW*F2p;z~(GLQW9Agse|kVh!@^b`3=2Tp?4@bIrrWrQmT9XyX2 z?9+zYFE9RDja(`bTlH!RWzU{fZSUYO8_vr$yB|gpuMyY7Em4k3aI(BBq*dz|YOfH# zG5dL^^2Y*tu_t49NDIw>)X+$FRP5QXPo*k+>+;o=so`<0GX#r&2}3 zHn+mQkrswiOm4ALekdeW3#U9uZ%U%JxzDpN_U^RmO;UOOVgFFYPNrUGpbf@C%E^3h zs+8M6@Ap|F5eJ*?J{Icqe9`2gkWeO_$B;O$SyZne$lx~=0GxjfYe# zHN}dDEoB7l29y2`t{+l&ipod_=L5qxtlHIF& z)rAbd0Shr`#q%k```_5cfte8fzOd(#xAT_Uz`zpgA~ zGA}A^f2uppF->PUIT*({Sc&WPj`Dk~fMAt}NR&lGAaIfXGi9y2sr=D@uSuM(f zTG5l8tE{y|4XL5VE=e>SOUr=TZ&y);qrQ^0Q~P8UJ`381cn$5fwNCYM-`zY^eX0N4 zer-&bb8Kv^nY6@aW1*>5ZNINXiD+h+U+>d%r8jr+vE#@4Q$z*Tmo7Ca4I$nDKr1M`J}R4iyBQ;M|Q9iv+}8`_DiLpAG~+!<^-KJmj)c{sI08K zuyCP`BD7BUAUFZ@C={c9@}(LXSFkf&;**p4f*;9pd7zA{xL#W7Pf~xU5=&RQpe0tC zY6^~Q{?4w%&N}f`S64)vnr~uzd%Hz?4lTA+kXNMqLMv%3BUV^+Z7BcRqNPoSVsYKr z7%!yQ#1w39fEwiz(*qBi(~3eC6kDseHWcS)K&#M!gDI;@&HSnqt`UEYm|xwbZSp)t z(g$lr&!^w`&b-GoXK9XQMz8MJk=luym2SS5rHO|P?}iw^KKI~BP+Y%w+^CDbVbsbg zNRY=9iceUbl)doaue^M1eXfO~McSM$>t=qTU^%9#u?6p;&a?P=jvml3tf( zm6k3V*_o4_eHgpYJvMO|4ZB5S2VAKgwSHFMt3Q+{dD#C*%RKJE*~x92)+2S5mVN)M z9llEY?X}fmkV1|8pt$`os(D&<^Q(<@&PjE*ina^(6x>%z-XvW_tZJWf^tg9 zJ~IhYR#;dFm<~SB9}^$SNM4lQ_H$JHlF!Hf-Y0#ldsS8c@ zmhE*DAW0*V@zOz|Gjs>@RJlZ>Vp6=jc7Es)$pS?IyN(E-=lPUZ!z|mF+hkc(e?@xs zLdt;tDere=kdG?^m2!v@-nL&ajug`qx@zVTL=dP(?W6PDN5>m8ps+*pZ zj$0%OHh#6@s=SeQtEt!Xz1lgA%G%MTb;-Ovj2JDg`>JkaR1xVTt806D#;^K`%7GU@ zFT1R^cH3>9nJf+ZeQwWP$JAkbm_+0tyHt={db)J6wC;K9M7&|+9;(!2BUENOaOC(p zbb`hn|DegHF6qvj?ZRiT{DG^QK}OjX%7*H8$-#%DjXxnaoJ9g^HktR`o90;?C^PSl sym|8mij*C|d4N5?n!w}uqA9KS1JlvDPwMx`|I+qw^>(@7v}MPC0jH?BhX4Qo literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterIso.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/EnterIso.png new file mode 100644 index 0000000000000000000000000000000000000000..4b7b9da00bbdc153b9c28da4211d2c9dae309260 GIT binary patch literal 9115 zcmcI~2UL^Wwk`?+Qr#d(Cv*`)AS954&_O_|ND%}yBmqJTgch1qMO3cQZ!vmo?Y?*8FB$|34CKVx+^&z{5aAMa8VA zt7S?##!)(ulIh`*FT4){jn($0EK}r9YrMQov48RTA55o+|CsE7&?I0{-gtr;9`E|6 zmree(7oe$mDJgZJ~2JOcbV2djnh#wrVgWx;YlSqM;8&P)!9kb@wgP$^k3 zLRR(@AvgIHBAV32b?Qqz{^xe1E8m^sUQbePym8uKbGM2Gaofjjz7;_aepK5hl~-*jlz?*k(svX-%0#2cBJUfF%U%q=qMHc zPzL%Ja6j?^p^NjP1e^a)&`Vg)zu&LtMVhMkB6^?Qd27_aOShOM(V(%bNu@(An?D?zg{O{X?{a|5?ra!vX&y?*5nj^rKk)QF=iCwJQB_t@Q_)=a16# zM{7m=v-Sn~TRa?Egls!nW>I%sOJ`!(kaxXMdc7%ydhVkZh zT$PpDcbKKAUMIxoiq$^LIPp|1B_}_n(P035jXO|X#6N8K)`@<$B1MHK4s4o^R>@0= zY#dMEQf(K&{G@MLQ#(_F_}vy>@LF>A!PY_Gy0FoB;Fp+NyfI~EWsR+Qyts{?1Q8uy z%!zSA7qI0Cwc$hdXCgD(-`5)A_T#?S&Di~}z!O83x7%(y-1OSI-pP;3!n?b7uK0{o zH|QMl^YZYFt;W7sSve#NBzz|9Jor61i?r^4(a5fA|3%vb>9*43?s7?aO4731_3J85 zKk&QhtYjXjqlE1zbV?`2N!5%2x5 zaL%6R!2fhxmSK*CKV_Np)%nPq{)895|!9KqTU z6BBdd(xppH?d|mSDoefJR;sJ3{Rj~x@=Qy}XP)ncU%qOFiXM-BxsHj`R=+44bY5s4 z&*SvUA+acXeq}#-)Csp>%x*j7|3Gk6Gp8N=+b|V#uX@Hb6;WJ5;>zmH&G9vSOl<7I z*Cb<=Z=-bCFTSj(Z3dQG#BnaggcATNa_5wlEOVZe<&!Fvxqyl@TMV&P zhpEichGJ0_0P&O!ByyPkO= zIVM1wLk9W2gDp-r%*%YUd^TPErDo-zRjBMl=BsA?#Iw(t7|)K(wYF+K^;?@vLELLM zs{DY9c~CG~B11V?sQNcjt7otwiE%5BVw`}Y5{ZX&EGa1|2ZJ+n?+T5wb{#=P&NF8Y zY0roeF>@W^Z#k?L#2I{6pTD~qnv3vmbWM}ttV!+E{~p}$knh@@r7eo1Z3s)5Aq^E8 z)4Ad^b$En(c>ICAp0Pu!h`uc}=|=FtvF!Er^(l#HvBHF+d+w#;ofSeRjcI9Vk~>>fDj$a=-9&t5e6|_OUZg3}Z~< zOguNobzeSb`k*zi?Mr?o$TJ(MFs-}!W(`Wr2@AET2@)UStV$AT61vPHfP7DQw=}K0 z#yCdz{?@~R7?$SloNI|u96S8(o%h3V*}I`pdvp%bqFDnAXWtHOyw`=-PB(4m`RdKl z^O&efn{;z&jKIUf3I`Y#*+$pg2VsxT=|@^*Yi4}Fmu+^-_tE%G_*fQr ztyPn<$=e?sAGqz4Cj6$D?Sj^|*S^K69uPea_jjV!u7>PyPsb=u(%bnjBu_79;Cs#A zk{*Pp5GkV(r0hT$FRQis?_bE!Rn@jQLDozcz7)4pwNcreP$rd@@b-&TSkIdXSe({9 zR#-r17)yvgua#Jt*IL~Ut>PpR?FMaKeK{q7+#|OL6@4%BcgjA?H1LW06v2Q^ur4zy z^jei%hgdS&E)gmJS(#p)^>8|Zm2kLLT$s)9+<9hySLY2^!$XAY-g6= zBsX%sm7NR0uohRb&8`Jj(ZQ#A3gT=}(<17Ck7dRXeGd?3*#aAJH`nFqJ|xCo?=)1L zIF0-|9icwqV0e9Ry-kQLxijH+^=d>WlYl98)Az(jQ~?$@Mv-=v&-oX^=mhAa43@k@{7H#WLJbf8+Y#@B-c9f6b8T4~t) zjBIhy?t43vf#uST#2$;GodsX^&=ZS{>!*o8R^_dJwOR298opU`Y_e6_6C?64N;mh4 zCI7~tKInwsxTj8guv+$%KPf9L6k|)@4KQLo{9C~hl^1sIPOfYJzk4U z@Q8Pe??cd6u|BMi7*)YdU$k!LMX~r^7>uyI8vK0Ztoa$e&v!;u2t~&=xwv5b+}!H{ zSKK12Z>wD(V1>Au_y%cQ;I$aU<{MtP^sv$a<2G5Nv34CKVVnkMh7BAftR~j#U zLmtVJ7i-B=1#B30a3w0lN^GU`w&jf_zNz@?biQ+vVBuLtp~~dxNVajI20#c#hkOK3TvtzC@R7H~5%U`(4QjJPF7=qXO)=53A8 z_LCO+uWWNBRfio%TMO3tKb-DPdff1JLt1-fH&H$!?HzVDqfg*s2C+Hw%_A_?DiSEV z6vK*qrmjKV)jNW;u1#-qoMKWFPpd6!Op5vt9_jG7s$KM28s+3|cjPxdDG+hc;C@H% z021+eb_6M^0k%j=xg+6zNpXsHjVJR(N{LN^Th!gFgiF>RjP8GYW25|Dg`nGg`g5nN zn9#6;kUQ(vkEM$|-`47oA&)htPtOr&aF6a7-V%5VhRey}>ygf@o`rA6fcRL|K zhnnT`nD!7+4=tI9+-w`4w^Vrr)j{6~WJ($Byszd`?#p@0*Zg%jAy9xUp=_)>hPlJM z-PSc*zg&cV!CcSF%ggvtZP7aX+8kSzlp+Y{T$#*))K!Y(ZRe#HeQ&tfohIKDMonk^ zm{n2YY!Dio_;jWQ?CJfIXF&9I;pfdNvHN*G>bzckWe%Ao*_wF4G8J5sY)ex0E z0s6_hK)(#e_Rq74JzbX0=ae5^bdXf6d>`VK&+5eeqJ*hUYjx;YwoN)6U|`{GGJ;*er!RlDs3o4ZPkW~Vw9+F+m!Jq( z6Dmxg5;5_n&jd7w5q~?7my;V9yf#?H?Lph-CmI^0uDQhFLeBJRt4C(X_%`8EaE3hGgC)+D!gzofC3U z=!pA^aXr$OL!Q5IBEqOYj*7E~tD`FINz;0EsZ8xwcU0s_L?1nf4mKzAM1A)AXQ?8P zS`i(3;f0~B+gZjyI>Y=hN7-?m7x_#q%YEJ>3q~Og50&`e!8`#2ilbBC6$-b3s{;ZY zjZ9=Jt;F?=t*a}oF**7hd`hy*wHYC4nVCpNOKx8oy?k8gSF;TKRR+P(E&Q&$-$?R0 z{}3`_1X0g@18nj>*PoM<(;~BD7v5e3x#F*W+OcNPAcYln_q@JwPaaq5M4^AA*L+su zI_sCq#&b$Me7HsF4%atnpwJTz_nNf08^KF)A2!lt1or`SF$>7}J7+*Ld@zscGUdSE z=S{uz1TH6*84fyUvi5Mrd1lQT-Zz#K!wIxrysn_EJaH2uSbTx7lqj5Zm;3Aa5wT`C zFyfN@JW6djZV_c$X&9u*ZmKV5L6Qy+0lyy~9}l5CR4Fg2ZCy!cp42iLy-=A!bBk}Y zbJ-^!Cnj&ZKo&xA>}~o3rh<1S`r-tXca2%7LKYi0NU>VR5xR38Q-;-#xNVurFEw)- z)ttEt{p=Z|Iw#Vu_hDvE_eD$&EA1(qlJ!a$&Xeg)I2~9?>5jz#)_Xp&xVX5^NNK;b zZa*Rq7K_gtH+_At#C*`+uY#Yhq8sJuxgIX>6S5pzzHKuPD@!~Lft)grlGZ7Y2@9jE zsIA@060xM}*WkN6d;FHCx@OWWG|@fc)A!u4aEU>+!@0&ykuv29Q3gfH^IaHE4Tz#W z*>}2RlP~o8lKWS@)mHlq1QMp7MG@KZxkXRC29iQYvCfC&0 z3#f{rO*-3N83l_9u{*DO3WQEHUILNx@&|zio3QPdIQ8ZLXMsKw(`T7&$J)A6ep{Th z@k!c!wOB6(OMpvpB4hLM-+bHUiWP|VwX@Alm1z*}?!20GonwVWG9;tNFil*H5j7XC znr3lkO5P4Lm?3K^y2FB^cuZn=YluKE--+!p2lXV8gDK!Hi2yg*N=k3ZOlj-S(~$>kY_@;i zJ2h1UTeQ)zDMB{@hmhiKF&u_$Nn`X=+Bo0aC;Ao-?_lN25*!j=!#ca&DHZ(0|B(qbRn)dsGjAqs8i!6(rB*{$K zkB!l3WBAF5L8`&&ymtdumrbNleH z!7Z|^xhF-mz99H9Fx~!Zq7ujX`_Hz-``n=_PcNIU%{D!n>N2a*4sYAo9OhEHt#zi{ zAH(9%b^I!`2H!i{yWb-L(S+Y+mu;Nb@a=nhdyDPuy6-aE@(|ag&^+hdYm&`dKE2mS zu|tDlN%_llL~?0)Io?N~=#~`-?Y?4_))bEXV!@`%q_*IcV+v)hh)4+a**tZ=sA~v$ z!+ms-9TT>*n(dNV=&N?_hAe&=D^Pa|mNXmfg-drtqtQ}r)%@c6y>fC(X(2baj_Kpb zorsi-uJ)%4bI1XB{{1o!kKsi55j$QE)@(rM8`sSI>x&oUfWueHmG=d4Zf?N$ul?|sUxFRkR#N*K ztIac4E-|1M$ux>6{SupMD_#M5Kr{6;3TvV-E_VDCRc3|Gm!aAYh{qP<=G~gXv50FL z!L$2czY;HBm6DQbT3&X({F3HY_SYxjx86iZw5JWTv4%4=wmeLo4zrRRyfLg?$}lKJ z41lf{fr@eD+q?JFjuXlI`TD6EWh#_@py1X2vdw8Yt;=(yShB(_7D<;J78RL(!=cGB zUG?$hbU7z+cvi*jL8({ZVV{!g5W}3CZO%0mg8mTYcV2MU(M%_IgYK53I!DU7@ z>JA~mJD^@V6Uxh%mfMsz$|PtPJLnazAmO(&xEUzcTIZZ?2als+;%6Z6_?{mYgs|Fr zggfqhnV77&?ZQ#+A3qE>Ug*>qvYSJl;p7Z&iDHdn4Hpmzyl;cOh{a2l-K`7fEy##5 zq#&`xw4^b7?grn{ltcPMou2*4c?gVxJG&Z($w8;P!!FD za0DH1f6SB(8R{=_c=Te%C+B$+yJvr3{!6j9rDMJ|>tX;PcI{+3P}sI+u)Z{7LkRXV zN}0ML_jqq6oZaS?hfrzgz`y`G`AcoBxYR`p2OeTaMv&xI@Mgfa-^Ome*Yt!aF0Cq% zibk(trP_ps9l^Owx1Ha{ZAChJrK;SbQF*Z6t|)2n{7A0vmUMGzMxL`!q5286uIc#X zwzor)Wd8>cqr6n5723peb`M0F&d{-x`6muC74A>bK_K`G>%@w7cx415!3n_7f? z3JQ!(2dv!cGfU@1GUXVzFZEatTKg-UPxo!tzqLuutSYV@_~iGovVXl_yhE`(Gt6=| zKbbZgFt%DQ_>oH2;}ic<1w<=-F?!RtYO#Y5EZAN_%+Tx0ZOSma?r(hEn2kS4BR__^ zBga(|ep000HDSLH>OQt6*O9L@95C(^z#rJjmdBeX^}uJ1MOiRyhDo{3EZx6&0IPh< z=&DhsjuHN|1UP$hNNsGY0pVC zmpYRCUN=Ot*x)pz-L5y-xRs646dPD=q zTnvx-VuhRTT;9(6?Er};);n(Oi>Hb$94i@yIG1)R`DmttMvUG>IASoEq)pf9Ro$4T z=9LR83b#@$s&R*X)SvRaDyd{-xKdB=EMeKXdIKMR|H8-%V2KQsUQUQ8;#1@k5RiFe zuG%Hd4Q83S)AxS)cGLOVg&@gdTa1=!8W|c!ovCtxIxSd#FWLRNH&Vbg(N|&o2g`(u=Ta`V`4MseyNvbx5huV_UX&D(x zlz&oulb;%7ajQ>cp*}BS$uAZ>%5PCaCieNy3=q}}Rla|&EHiDS_M|_ErtbGT8*g(W zVdOb<$<~`R(#vSb-F+IuQVWv6^Q&IpdspUi?;@F9!pPP3mB);gWsc5-rfWQ@eW6S| zVh-skZeYCB=ol(7h*zj6mOV}19VmXwC#gy&%JL38lo4VTouiSJWE-xg92 zCwy7$rrQ%llpdZz;91$d+XkyL@WZwiNVGtDh$z(F)XXMAQu6qhG-suSdY8pxg$Cn2 zYC?`KH9Lilj*h9ONYYeTTdSxdzT%whlEndQlay5JZL4PkM}MEu(>Bt2qH!(!{{Wl6 B_2K{k literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Equals_Plus.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Equals_Plus.png new file mode 100644 index 0000000000000000000000000000000000000000..586c04aef512988a1b027dc40800628773922cc9 GIT binary patch literal 3689 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 hhhR9Syk)f_N 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F1.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F1.png new file mode 100644 index 0000000000000000000000000000000000000000..4baea9a7af0a0e9053d290c7e2b994e5d80335ca GIT binary patch literal 3752 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F2.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F2.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ad5e5627428c5b3dc25ac198e4ca89a6d78125 GIT binary patch literal 3893 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 TKq1i8A6YwVl2wuAiMam*tNs4M literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F3.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F3.png new file mode 100644 index 0000000000000000000000000000000000000000..d34d22ec37373435c29a1733c93491e38f117198 GIT binary patch literal 4009 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 aAqE<=?ATl((4)5hPp!=COm7=|#r+3M3E1}l literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F5.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F5.png new file mode 100644 index 0000000000000000000000000000000000000000..80ad70b92a6af714b48e118547dc0b3ee40b5d16 GIT binary patch literal 3963 zcmaJ^c{r47{~t@3kg{fJ62w zbu5L-lCp1E$8Vfd=lA|`uJ^gF=ef7<=kwjK>we;_Elqe2iya040K8_VhFIq4eDHE{ zFu#cw;_J*olx}2Cx1o~g{x}*Dphuv(5qpJhb3P3XnC`39A6hQIx@<9h^%lyTQX3h_`p)#PqMCcycGJhLokFf?B zP-#Sv8UzW(!&TKl>L>^tiBLtMPJ>ina1AI-0}4lg;YhS946UL9`t`^#wb2M9G}h4g zmoDZ?TgIJE_eMjZ{{H?De*}a|bA!TBC=?W?0##7~GbO-2fnIc60NBe%_BVqe(Fac> zd(+8OFVF!a&Xwv**Op;g`nL-dZw%%iVlSUxfntUX8i4bL!XYpyg>vB6U(!BwEb;%% z_*ZEk+dyw36if7>`qJ>se2`>+gPF1W---?dnbx4KXk=zmaGr)#yf205MK?3lmSLVi z2xI~pp{AyRfFVd=B2vQ@OhTz5z^*750j%z-j)&vbRgnk+;Wy8};SKdQU`P#PBa{IW z4u>1*>#G~0jNu4%q=p{c7^$N18*Ap}L&tgHiNAG|nYw>r4gV(=Z9pU9=v105mFoGs z3as6!bgGX#)f;4BaFBHrNXd@uMWFiooIFU=-(DLMX=Fbl!I(y+fc}azn*1*|;51ZG zaFjX`jMO0Fz$!3RBp3(BYk*-0n5#MxhE#LaP?PzEC;V6Z{;pHz4$}|s-{znZ2LPA` z5lli7)WLY7syY}4Lm|OLCLIc=hQMj4;bovq6QKvC^IxU(dy8402h)EVgSq&pwTNEK zexflOC!(Nx3IO0vFf-J%4H%hoL{Ww81f_JPnunh!#wVYPS8_k2wAMS3$A7*2jA@rN zAg=gcfrT8q&>^!!LPicCv2qC(el^fr*ZAlm9+I=l_;o66EYLrvq1$C4#TY@&)bwwu z9n)NWH@mYkWzJtAQE9~Wx(Ka~^c-^0!hL;}@M3YibzjXfbbD>qW@Y)SiCffmfU~o+ zY=g)Cvbb28h#4|rcXz9Hm9c`h5nm5__Brocz5}WI&ikdy_0iECm>!Pri;Mfp+HR_j z#$F}GN#oD1{S5OQ(u?GKWRo1L8@#!++U&o`e|pxhexm)V0iawuT=Hdou)Ed+!p*ry z6|02Aq(G!f9U09z4=_DFH2vJI4ViyPze8T=xhIS89QOuZyyxb8qtDFrJlL^mElF_6 zIkJtDmxm|b5`)=W+n67no1PP--l$8z0PLI_u3b&Uo>en&II|@;%30MDd#(@&X`f+4 zbBj!ezfl`Kv^3N)V;pueojreK{k%Y1xMTx$oM94`pOY(X6Zx_%;UnwPAI`1siZlB4 z0DZ8H)fj&Jxeom*j|$f^%JtPz79HE~C2QuZkvlf-k4j&C&3318q3eN930nDSJlD2X zR6B@M4Hyih2LU3NB zU4CX+eAHbcx9AdodWN!{!s<*ZOLw)TEy9s_T~(HrWXlUChN`H3ed{7@J3}0UjL1i-o&^E5 zpqVKEc_(8;g+W)bRL3{I$*9+>22w4O-`Q7-4F?)N|NQ>`eww0H-egMx(#c7A`7?Ff z0@kh3c@~8}oc7{Y;ECr7r#E?>0grs?Z134OdD<({SC060DwM^~M6Q*V%JSu}Zv`x% ze5MIm)-Kfto_ypHZ|79($G)~)AmRFa>Ck zeVsL~U|qUF>ze6Iz&^|^{Al&)sA#X8ug&X_0lpT~%8Z@HM7dO`AvRUNHu$Qf_EZkeQWuk|A+)Gne(}v{Wq=;k2io) z#g0}me%-{3Nawk%Hr|l?gK>KCna8DTJ;myRw^ls0QK;b!r3O3OKW(a?NzDl!dO_ET z;G_)K$fNuh99sB%;35zQ_nR~{d1ZuSTuA!15tk(8^Vjw$&a@nLDrqz-Dr$?-oujS} zpKgm_8;<`GC!lz$HnDL;dAAur;N2;Sr5EFM}bnLwS{ok-xObe+)N#B3C>)e>`KFQ zz;_N8ay zpH)+%CP`A5n3$NF`T5ZX#n>Z~uag{Gf*Y}WRkvs7HD_&?(E`i6+v`8l2Fk3&Wfetd zZ4U>Jt0$jVjCYaN3C@a68?C3j`RUvmsx2xiS|PENO)hF2Zu0$cyUZ$|Ba9nJdU&x` zp|+uv8mQl*bL8ri6CIjD(T!s_%%mfLkA;*k$l3kj)XgRoYCQV_x~>_5L5{0ViB^~# z@mI*o^DC;tN>+vH^*+?QFbInp&aU9U5V#Z)_A^e9^CChZ_-X83o}`y3>kw$`6JzDH zu~y%-UC-R(l}2Y(P09FG1KX<#n$!JnkL*VYRG^$v(GYp*R*fiq${boEeUE9WVLRY=#9zWKM&6}*L>M_ zJq&QWQLSh=4ylV}-@nYF8~RF}OEe0x-o!?_gFq1%-5<%8{X zVddai>8VyS$kVhm)&YjmZaqDe2*UnS5N?&Y(+_i0hona2b zA&S^d;!TE?5KZYTw0I@pz9{Mbf+}$j`U>kNkzp6fGU>n* z!!Fk-tG@bt!iY1hyhA}F{<#xX#2o2um1v`jS?6=6XZngvMA;^i?KkvGBh$0V6mucZ zmb`2t;~GF44o`7|PU?_XZ(%>T?i;WcyD1`)uSwTS3kfHaj%CPYg<(mTGn@@Zv8OZJ z0T&;~WQ2tSQ?JRMKYpeoa?f-OTpQcqx+vbpm!UD-uvWVG-%9xIji zV0q&Yk}O38>9tFC-}*veQydu`*@a`7la|w)>7~}0;FCAatRYjq>hMyuQawSaY7m!t ztmZ)qL*(fOXKA@UBeMtB)XLtMK`>}dK>TN=)a69+yu#Awt^(4-;wfL>AzOTJiQ}Nu z)}$(_2I4eIt55U@B?$1fUvMO4ki*{zA1 z$gXh9eycV^@8&~=Ovt3Xy!maT)GJh>>dydIc4lQwdbFcrYs>BX+|pxNA=N_{4p|N!q)D8Gk&h zWn#D}n7n&MW^k9=hPB2aEp*c<*w{%>Y5b#g8H-;xrt79y|5i;_HZl;k`E%jZ=&iT+ z+4I-)o3baEH+YO?WBFRM!ctSaL?f766*1*4uvyLymKC@NEFWmw(Kj7M6}W6=3DNfb zN*`b{3eWXYXtbIhF2u7y3Q&VC+K$F}?mj(7_ztNk0dxg>%G;}ULV z@q|dum*y3JX=b?$0_~-fCo5*W=&ky0{+LCe25ap5@U57mZ01e~Rn_Y%Gh5t?Et_Cs lprEcu{6tv(+8+Qm!1$Bz<6-}KK|lB%HZ!s`tkQRh{6FJk{nY>f literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F6.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F6.png new file mode 100644 index 0000000000000000000000000000000000000000..92636fca7cae78ee391b4dba84bdfd9ad0c08fae GIT binary patch literal 4008 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F7.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F7.png new file mode 100644 index 0000000000000000000000000000000000000000..a154bad308dbd74e35b62c4035606e481fa81566 GIT binary patch literal 3898 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F9.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/F9.png new file mode 100644 index 0000000000000000000000000000000000000000..f0724beef2cbabed03e605606b32fafd6d341ddb GIT binary patch literal 4015 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/G.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/G.png new file mode 100644 index 0000000000000000000000000000000000000000..7fcd7312f2e821c7466805b724e63167b2612dd6 GIT binary patch literal 3934 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Gui.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Gui.png new file mode 100644 index 0000000000000000000000000000000000000000..03129b609b568b8c1138d09b9fdf842308743a50 GIT binary patch literal 6984 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/H.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/H.png new file mode 100644 index 0000000000000000000000000000000000000000..142fc4e584b7a030de06780bbf3dbed77f7a4cc2 GIT binary patch literal 3638 zcmaJ^c{r478y`!;vE~TbrYTg+W(+eE!dSD05tU`kyvBr?F*Cws85~+f8%efGvLxA( zk%J_CmdakVO>yi+vSrCP&Z+aAKhE{N*Y&>7^W4w<``!B=?->^-8)?ZMk{}RB+RoO} zRj~SQzT#qnZ>odpf?!c$TY0kG=mG3-A`<|alj;5d*e--f0bBthIWn{jFb07{extg3 zvOOIga3p#NjJT--iwI!|&>)cUfd~eX6a=ur{s4taGl9%JY=nTRWE03?v?Icifd>Mq zwj3tl#&L2dae_!#GUR|M*f;_wAP522L~uk%FpY(aFoFEZixccO#c&AtPZf5M3FI%Q zJRM!YcsdgRqhW?n64C$-Hp0S?hA0CpRu8O?Kw{ts3>=AqA`Ni{2%Nq?_{RegSYwg{ zaITitKWqt3CXhfjn}LJF!^6X2;V2lLNr5A=SS%c&57*a+3N)asNE(|M0j05a{baBN zSR^Ku!KTt_;7vxNKRt|X0ugxnR|p{tN5{X3X{;ZK5~K_sL1e&@Fa$g#WHYWmwOMRe z;D2uXt2WC$k^#V70Tw-sNfOi}VAoHuAb0=Y(59lm8=NzfDkusu*pf~P3jt_sJ4+LY z;08vfl5r?B8iPWh0-%5)#vdAhH9$fAu?RBM$lr*BBpDePqR8Z*JpYEb##&iecjWX(ZsMZK}Zb4=nQkVsUsTKxEUI?sR(a z&n|EYq_gR)Ksp1A$8T003*K{>N+Z+5S$j9j^jFlD0F!zGAX_u(A>cprjHCXG4@8Us z7Kt?ipoSQL2-Qaz7($6i5(bJuA^eRD5r$}g3>xwSPyR>#{_0bKL=Xq#r#m>*CIEo} zpaF(tBPad41~RTQ{D9)^7lTU-8;zqGy@PETCnG``m?T;w0%;6Ki5C)-0}zpqV% z_?lAsk!mtehb%WnYDiC0D@a~ShCUBklPb&08T%hn(62w20#?4UEAtZ@ugVidHT@`H z-|vf`UisOa?e^8zdQ`|> zzalE9fnYnpz1O4h~7s1mQbHvJ)gFeSr$?<73lzI|AEwMZ=|-*a2q@YC~4i=W?S zCBwKn$~#;%Yj5b^JtFCCvk@x0A}fZAnDvv<5dR{m0uo|dtdn5(+IoUJAGI>S_d(%c z!F~lk#Rv*WtEF=;@?Br%|3EhIzVxNb&AATj3X{3Utg;Gu}A_xG>9}qK8DVE|IaF z{KCCe;M|eGAw#u1Oz6#}$^JXdHHV&dP_#^qZ$A_5?zHo;?j{tenRagdU`Tw73>In{ zcqeVC!0+8MHCc)s03Wqh85Uj&D9LB!Evzdqm3cp8I{c^n)%z-n^Nl3OS#vvgi|C}Y z3>mJ4XsEQ}@Kx71R-sc)`=i*eqbcEY$drg@gkB%EHv|$x86i z)uqpGJI;Fp20IpLZ|ewZzQ1$sFU@{*QmFY)OUiXw#cda3HQj7A^#u*StP7&IuYwI5MIW^~~N8vseWdRDFQlrlb zrd?G!^PS&gXYudNZuc}x8KoyRIg19i_1~H-UX2bOtgNiu7Lq*MKHF1ZpAzAX+UnZ~ zE(*GozPnT_Cy#5?B)k4rC*7cJD3?EMGF`vA;)voakA*+$rPfu~lwV=TBp)wqAB(a3 z)YyE?O&61-3R67d7zJq`o?PH9!%iBc$k&hwR|hyGuzvdHrm0sf;u*Jaut@u%Dml${Gizc1V6iV;*vls zZljQ!XFB{kDLb#>H~Zr{ae3`&{KpRfKR4?k()_0j>#t>eC&EEw z3N)hsqFmF+-ZCFV9ki2bd3WlwP12T@9vf|m*1WWCk3U{^mB}TC$eC&1C5~$P z#q;0UdV;ztJ{ZS`cZ`1^%&#jiS7e`h?$X#Mlh57LwSj1M;BZsoR@xY|`JKGn z!A0|pNhy;$S&v|s$ef*%VY41NH}NGlH9_~)6VA+Jo~gZ70a3lY{!|I)u+8E&x@RN) zAJGGtEnB=-!MU{6>W1-;4oXXC_g<-2l7Frl-GPT~V9<{-#i*MM+ zoKyzh9e+J(FJ#&)p2%*1k1|W|9BI}4QVe!vB#Uo%AsFX-?#&+=A1gia%kFZ|md-qa z_TI8=Pu#_f5xt!4c4vR@7(duHt7XQL#*tr>g*7@9BqM#0*R#Y9Zyh-=^u8c#@PjhG zOkvlu`{f{c`?@ox!_)%p?mJh2KC-y1X0Ow&<2@ZBl`J6OX2lY(CoXWJOU3qX^-d45 z{UHqe@v4#|mufEa$b0_4)Kp5OKuaf-AUjUu8ptwQQsRK*oXXg%)hSQzWt1Psen(>* z15GE{ncWWRNuYm3%~hHu4kQIgm(xQI2J~HM&1mbaZr5#!U7Q|Fk6v9=fcO3Z_wd%xkp_pZ&XxcL{w{^;c?Yug^}1dt&#d^`8*R(dtBZwRl{NZSyKcPh z$bheEFE^URp^G%MT^_hDB(}f;lD&!S(3o?QlKoRSSZ}!I7p>lAK1@&VO?cVZJphP~ zj%JVi=b~bLewt{Y{^R)j<%&U9NiSX&e+}D4(R;17|3vB1+PAM-I?H;_xyD}4*&C9q zx|(nP`Df~;z^U$o<@u_rs?jsM?G?Z%p;*c`1|=wHO3eqtm^;*J1k2Z-XZ2-qE}oqc zJC@3=b{pt)yZ3fH=1JM-BQp{hky8WQ6)^=7dsEbolnbNv5g*<jN6w{_9szT+5mutwm${udYM26x)9un-kP$Db&aw>B3@J025AO0qv#Vn zh(>`_f@R=&E7!owu4ufhwiZysAHy<0BG7R_f0CCs4dbsV`=?zDYrek?kp=!KLcgpj z`xhu%Gb~V_OeFx3$|$fa41olyqLpDN6$Bcs1cXCjY7nRz1f~Lpp)d$21`Y@Q{m8Ps zQSojV3xl(N`(mv$Wj*M03I+o4^Yc^oQ&A>U-61eE8V!NMA#gaDB>|=dc++wIU~k%q zUlt4qG*>E-LMM{Ff%_J5E@U6NrYsBTUm=hvW@i5w_NM)vC|1fK{x}K*rVNFUNc(a9 zDNUnW5dI6}U!`eQ0TcqnfBa_{vaAzjJQ0skK_b;upek-)0!qyV?1o0DfL+i~JXqC5)fMKdia@F0@xSc+n?6j< z0F6fI>!bBia2V{2o*oRPX8_lO=^{{SXH-?r{?aw}rqOZUu7qE{i7elL>+1bqU5q}J zfTNSCR%Ei*FBV`u$aFHzgG>SH>+e?`4OFxtdgIA{G|+yT{)*awKqdMT@Mo!H67bJF zV~GEP0jGvQ!_cY(FiMSp1H+*R6c`6{RRcp+pf0K?C<^JKhLrtVAOAo3`-`Wn9abEa zUvMxg`wCDs0@w|OR|UHg5UOAt6paECSmw|;qzXfQt3;#{+P+kr%_}8(VWBf>--<4Ds*OQ zB25ZKotvwiwX43Dd{`K+Ces_U^sn!Vv+ouQuPesI#ep+2GPFb1mvk?7oh{cZ$*VHa z30zw^j!d+Bz;{wWG2Lyr>B$Dv6VWWU{!yDU+QdVtoeE*oSp8nx>v&48xxiqAACGNa%Hj~+D#y+~wJz^9=A0H|uP+`r zH=pt|e6t8)+xO+WX|7Z_lf(|;?4HhT`dl9nL9>%Ly|Xm8v$eK|pzaDTr;4%fap#_U z?Hn}`^zF7pCl?l=riE`4lDlHd#yR>R?}uYPjRY9x@T%bNQEF~MC6*NzpMLCSd{ur= zZ)xzn^XlsS@7P|Mu?s5eV=V$>(Wil+A7agU6W=9=YtRyg6(7&7@c*A^d{iZu!I zAMZg>NO@Sh$Hxt~t{fT?}mPUG7EwOmfR-G_D`Q(VqZhm)UPi#gBHXD3j%CUp*Fbda9UT0@KG*pF} zF}j6H?1DN=4-HNvez))Wd=rzsbV*yL`%}RMnW%#zqQg6zD={7)c(hJNr{C#z{lSImo}jlmo6C(GtM7p)@hw~dYNwBJ@Z4ej+Vsf`g7qfK`?e|qZU z88p%m(#$$@@j)SxoQ6y(^Wo{P48B8BYC;{UDuxfuCdXb}Z=UK*e`sw~a*JcuCC(?X z8*WDX$%X*kv{36Ce-+PtfQz4J_1mEE$NB&j+b5nE%Y5broLghXn^{PxT~3uA=7-kb zB!kb@Hwt_$`Hgtw{qL`q2We)KdA!_CrBEnSAw?n9MC^xCDz_-Kr^m&C-eWGhGU{JBJ8c9$KxaB>K#@L{vb!kTHu zXU2kGJkZ(MS-x}hC5t+)Tf;*`;jAFIFAtPNuZB663BLM6ph2oJA*1|c)Z_4btJDZP z<kd>tycI~^+Penql&s?%yj-|qz`QhrMYY^Kq;7~Pv=IvKoJDxiP z+i>PZ87=3<&p%`7Rndpui{^+{C^s%vZh6IUJjB+hj^>K4@AGyLs^dPGl3?)L(29 zajC+MQxfHcW$5!@YK#w6V;hq$6!}EQzj3(##P@hsd~s}Wp*a( zmOj1NyvpKke<2>$8e+oLFcW21G^6m)zA@C{;rmBUGQ-+It6onUeCO@FwArrdbFDbD z3FzMV7H7Sgdbde6t~RAEfm=}8s*-_CV6g6QjBUMtIs3}XXyMkmQv2HMfv+-*YxZ0n zr{r!tEpcqTOJEiE!S%YUd%G{COC5XKhZ;hH4D^YdT2o(IV$eHLNvCa+-6s;AuQO-W zO|9PZTh^PL6W0u^3=C?i{yp&L*bhx+@TG+Ouoh_zns_^cR1tx6dC4Op0yCMo&WRf7 z9U8K`E#aA;T6FMZFtHs^n*4%CYXIMijBT4(EgT_yP%7^Uygduy7Jbq`x)S7B^f0-s z*f4^;#q~CY_a`L;B)skj5SiG{G}TPPYV7C_-iq=~Iz-f*4jOUc8d>#|aSB!_4hoN7 zE7Q~*fK;=$A{yU0Wp3PfMGIZ&WxkmX&Ga=nHeGke#m~1xB{$@wsbhi;a=XmE+B8c{)pnhvDTQ zm3i1!Rp(VYH}CTbcz0p!TDkU|Ay2?%t){bqcDye*M?ERC8>aw|4lEhv_I~~>eQqSF zn@87ei7-o@0O|ZOoGazhZ~KFov#lzSC?I~`u`%>`x(raJ*=<+L3B}Rm=j;36rT)9! zg=3FjEB&#aC~e)H8vtL?9q^M)b;|#`SEP4nQVinwk~y7@s~QSnhw2@%nFzSec+(Ls z*B_ku#w*fvHlAaTnt#ydw;Fr|Sao{tpr%?X8{8>uu6;2uysjQSvO?fhAmFS?Z@XD{ zMiOB3rrLazDJMv!PafRgw6WQyv^;XaV}kVJsPxBf^Uh!=gMI?1j08|qJu2+u)@W!) z8KW}hj&b;g0-@^S2C@<~X@V|%brOIk3b^mG$r~-iX&3;G^R1o;sP2%?6dZZgvQc>s-|)`Uc2mWnq5Lm@SbkUR#zI(jZ0W&>R=xWY}(z+G9*WUR0}n_j;`d#+SWS` zfaZ|>^WnxrNOS$Z65f1Ua3L0efn!cI)@Dxzp+pH(2=liVx-sId&#sxq*dpU zq+Iix%9PteraF_t;?USB%=SyH-YGF1q|@bbYSdOzq9QK?Sq}QJg4z zUrw{Kv%3ADziGlv@DD26r>~Ti$Zh3Og)1tO-@df1L?3=z2qFrdyB1CC>O&x-wLDX! zKSlnA9aGiw|)C$*p1hO)>S&4;sQ9o%D62LDHO??ayoY8W*>4!(23dIR>4k? zlstuMBDz{q&kD>0qf=AQ2OM4}kx1GnmQl^q+ZXaoDf8J`@&$Jejx@!*5>ZMov!8|F+lCO92zh$Yj|tNIX1qgwOVNBpV?gmcu<`^y?X?7=)NIT$(-4S%bWjQCW#PQF0Ld;yR^&OD;V82 zZwYb1GwFo#f?!bOm^pInm>!%!G7A71QJL-l*pg261Z)8^HTYaBpa%kp#M0~?IgX?g zL<*A*BX7#Ug6Mt%Gzg?;801H$_y8QRJK#xU=tE{|>LFknRUhJjA?cF*OaL$1(GV73 z7h+{k3Gty2s1QQ~uwD>RKtKmLWN;AOm%%0m=|leHB?{)7+i(c@PZ5rfKIFSmjwBnf z36lkYF)%EYfgTWMFQ&==V z4vonGZ!(hInf@Goh``eCF3|l*q`!$7?7spf2pK$x><34{bm4URreA+bvpKfF|IPSU zX|{c^9{{%n*i3&GMUW2&ehsm;MGJStkfsGfF z!(@9g{lF$Bn^`A-wH;^-Dl?F+vzeyvUYi0eS^z*bXEEvEKjTcK{fiA`Jeq(Y-~cEV z50IfqT{IR-Mo{ojU6ign4y%jBxZ?#re8*G&5x?(sD%cVD;rGKFB5D($iwB?{SSk)m z0nj)oS(ku?0s=Y$8G|C@F%$?~U?P08bpBCFKehz*xjFs2F$9ahTMJ+a`iUiI9GT>{ zL=Z?y*V5F;K4|c>OIuRUF*%ZPkStSOR7o;wk3rNc?wHyDx0(-9UKU%9YlEK&_Y+!2IuCJ(g$m-d!c>de-Uzj6|>Z$I|T*FYq2)@LryXR+?)^2t0y% zxq9{?RJK`6Us`OX|6b~%F#@;@EZ6kmQVRzx?4GXtwd~^DFK~Iax%~fENIE zTlu!W=H^x(F-2ytHD5>?y8yBYjFf4r`-~0}+uGWEoSmK1>%vxShqDsj z%6!pzbW*q?bZNRGztft&g{6-!Cob;J zGL)RX=LCP`*1dJwy0AgZLT}adx%!6zty$aI&st)OZyL8`aRa7@t3Fxh=v7fz-*Vq@ zCnM`+KBgdpOy=~HEE7FMv_brccP+`rZ}*7pI#QhWy!t+y0(vH@qO6#AI{Heu_M64U z07B-z_0x-SqugxX=dov3^9qKhOJwS5mVZ6`MM~4`8|2qiy*i58&$rI0q=~+N*LuBn zeQim>M1i+cTEF|A?1+ceg0oa_DJSRM-5< z{KRiL)w$D&Q8QLf{y01=IC(VXQy192NqKJPGoj^=Jw7YJjY%KNUsz6D zJQ84^liR&w`5Yaqg~@y@Gh&@h>|-gQT_$q%`R-v8cX{O~&lkH!>%-Tu_?3*<1Jz({7Cva>ZSxhe3@@BP)zy(G zSqm}x-rD_B(nkjs6&d~a?L^FVtfg|8dtZ7aU$+QX0UO`km-lrgTngxO@HX&d^m@~G zy+0Q%))|@Fdpqq}nwoo#efC;hM2v?Tk#o0Fk}CAzRa3&=6xR^NqY755pOySdjNVmb ztl?y&%Dljj)pnkBX*e>Lo}PZ(DSv|Uz=3v%G$<5z)TBW91U}kzCbnp0(A1{U3*| zLh~AL)N!f^tC(f=Ld6!d2fg>!|pAVfXBOxSyB)3CBW?+i7p*=Zm@t-+`xr zxjRa~M6Q*1GZTt4cf^0~zu%eh)@W!!SmVps8J(4eBr(RMT_J6c;RA$z)iSwKok}S_ zq!XAgyx z!m3g(_|Tc%FSlSuCf>JGJ|0uMST0Vg$=4|fFHb3WbGTs);nHDaf^l1Q4Jn4iUo#v| zO*^$PuUwRkMHftp%+N}A$4whum1fN>UetKXZ`Cf(r1!J%SuT{_NqY>R*$jtrod zK|Te+UiGzCUO&DVP%%D{LNN4+fJyQBy1*iU?@%mVs0&wUtU6))A!Al{6#3ZWPImiB zm3={WsRCd2)6+y{%L&(-fCoz-x^89PT3Nx=5qkMFMQ8q!{E(jFO#6x=Upk^9w~cov zq4L>>A;cO&HZ`ga`Qq-^rE^avk4rqlsGZf&gT^Hb`za)ZxQLDVgZ7eDaagSRZ-ITM z)$dBzNxLNFy^uI}*mAV$bUKlqx^X9}LcMHZZE410PNa9c@B5{Bzy!qa??1IYCu`8~ zDy$@-Al~64VlqFd$wa)iR4igLZq@K)d_I4?<7V>6C-aP{Y7)p?;_d3}o5t-tfZAY= z$(=wdsmH8p@ao&q$p>Ony~?=bVX7}fkLp{W04+sM_(+~Qy_=@k-o zkC?I0MxzAkqYzenx=6mfi%3uD1m@#x9~z_b@kT@sIgJRD{0!*P>RwUT`6suBQy(Xp zWfmj({)JBnN|%3%Bq<+y9iyZ%pLE2gLT1&@^FtTC%suA$h+@HOg?Cm@ms9Pvd(!Ni zH8~xQXF7V-Z>Fqk?INC#GQNZ9-iZEvkvDhXUEnL(Pv3Sl+4Mu!(J$uSLp{|CrxCN{ zRz&+`?0Xr^z;nbNB^MR_x}cSO?RbNwKB+^hJCe-ox*3H*UOJ0D+7~q`8V+x|Y>Er7 zZJ)z9jkwuaUpD_3IdsxDu5;Y0lN5bWReYrO!Q<3XRH9A7ya^)R&ZX~wt7Uw2B@e3Z zc%<)3f~|$3MN-|1YUU+T`70SK+!vb7={t{W&81`(_CQ+6GpK47HFihd3Q?6yM+#ki zFWId3aMw#xOo_-`QRK{+2NvIa?NgJ4y7wH^-4chO>OJVy4C$+oB0Zgz(3x^9-e0Q+ zR(1gPXNKg!Rpa-n5=HL)jBR>;wn&DNfc?~+QkmVpukoj(nN!&O^wIgi&yf>2PfBAxwc~$Y^MfurGxuoHA$;=xAzS3dT=(L9AX}+RR;yQae#~?hU=iCN#oI{^)czS4(VT@0yAY0&YxU~k$H2FxB(D|C} ze$3F&HQ~Jwzqy~9aizwJtHilGuD9QEg>p5(Q>mEwULRbw%e|7Cezx!nUV~B|QyWqC z4s-C}!J}+fgW2hcyU|lW^Q+H_pGUOS3rmAqLbNlA@@lx7e{7a!R;H!KXQTfIRh(Lu literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/I.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/I.png new file mode 100644 index 0000000000000000000000000000000000000000..1ffd1a1cea4f35065b7e6c2387e5f16df862d3ec GIT binary patch literal 3601 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Insert.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Insert.png new file mode 100644 index 0000000000000000000000000000000000000000..74d2da7d9c901741027d8e0aa94c144d733432be GIT binary patch literal 4185 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 Bc(nik literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/J.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/J.png new file mode 100644 index 0000000000000000000000000000000000000000..e2cd8f1505ad52d8db7db1fcd0018fb203121992 GIT binary patch literal 3762 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/K.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/K.png new file mode 100644 index 0000000000000000000000000000000000000000..6052850dffad8ddc0b6ca86710674dcc4d795d2f GIT binary patch literal 3890 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 S6xsd>23Z`lH7zvpi1|Mv68o?K literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/L.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/L.png new file mode 100644 index 0000000000000000000000000000000000000000..fe858d8698dd5e5b2f492c36e7dfde7affe8fffb GIT binary patch literal 3623 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/LessThan_Comma.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/LessThan_Comma.png new file mode 100644 index 0000000000000000000000000000000000000000..3c2cd0146e94a8693754f0a6a4bea360ed4613bf GIT binary patch literal 3936 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 Lad=eL~a`#j&@vwY5TF1Wea%WhWN3;+OR9roII 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M2.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M2.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd6ec16a4e5ed180eefb40c50b76352b0b6213a GIT binary patch literal 4187 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M3.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M3.png new file mode 100644 index 0000000000000000000000000000000000000000..3a7e684342fafa44ffd314278e85895abc942ded GIT binary patch literal 4252 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 NU}bsCf@9_#_kRGfj~)O3 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M4.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M4.png new file mode 100644 index 0000000000000000000000000000000000000000..ea1c7989d1a9252da72f8b5b813ada3d3c775022 GIT binary patch literal 4082 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 IY~U90fA@NXSpWb4 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M6.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/M6.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf0dd173a19b115d91c2216bb3b0e85d54657c4 GIT binary patch literal 4242 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 a=A^u<6@5&E6qAJyC=Rw;Y(!Q*G5-SaF0PpX literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Minus.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Minus.png new file mode 100644 index 0000000000000000000000000000000000000000..86cc37aea80fdac8c6b54208ac3997cb6c1f2ec3 GIT binary patch literal 3592 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/N.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/N.png new file mode 100644 index 0000000000000000000000000000000000000000..34bf833f1abd8a12bbfd2800b1ba31542e7b211e GIT binary patch literal 3860 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 W5`?Zx-=X~1+r`1%zF^a?l>Y%izUI0B literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num1.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num1.png new file mode 100644 index 0000000000000000000000000000000000000000..c14017561ce8c4b472ea836b85b9fa546fc03ee6 GIT binary patch literal 3666 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 GnEwI4#g~Tw literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num2.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num2.png new file mode 100644 index 0000000000000000000000000000000000000000..29043d8d5ca2540285b0bfbda9b5d9aef13a9c2f GIT binary patch literal 3939 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 IN%x5V01j69e*gdg literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num3.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num3.png new file mode 100644 index 0000000000000000000000000000000000000000..e0e2a4c3b31f0b894277f12ceb231930a0afa7ec GIT binary patch literal 3946 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num7.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num7.png new file mode 100644 index 0000000000000000000000000000000000000000..ba2ef84e10af85b212f5a0e4140abeb8007c7151 GIT binary patch literal 3823 zcmaJ^c{r5o`yWf>L@1JMW0cY{W;J65V_&m{4l0c?GZ-~SGh@pVN|v(kdotFNGAL9; zC&?BmG0BL;mr5qt^Bd>X`F;O5*Y~}y_kEuCc|V`~{@mLiZ@hz@g~V?Meggmi5>}R` zj{FtBeeV?EKa*?}miUW2)6A9WMDt<>5$I%q5sBtW23k=G-egBIffRDSi>wC#2wkQ) zyE0vEZLmZdRg18V(F&&e^VtA^o`f{Qolk70qxC@h3wZ$qZTmoyf0;m)b8fKX?Dz(Ke8;25V2J@QXq?XG$XmP|1Ew zD^q$CDSQ^WRf|ZMg{(rXDsDk zG!S%<7#Idk2BUPy1TY+mM1ct~q7E2}fO?`)P?WZ(jyC8gpY&h(`@2v1C;T}4f62ij zwh2%jGS~}6LW7B9BpOVBVo+c*-yDXZjUeb~6G0HZM96mQ{8uaeI^y@|_V%B_;J^Gc zT4X=|Jkj}s<7v9u3;^sBurf7r4j!F%@A8#BCG#+T823Hyh`{kPPase=>GLchX+@p* z;)M+X(Yz>w>&09K*U|_oBx__LEnO&Pe$IsHA(t4=^L@p5#c5zPS2qXH#)45Y_ePy6 zUiYOjfD+GTy4IFw`k3 zBC_~ac_VrJh0a6EI?7aku|eT-_Hgc~&pl34=#7hXw|bxBey18^VmfX6MGhP|fXyyI z21l4&%;4((O!vee=7%6P5ZCmdcK0dwr^LZ~1N` zxN;Y`VARpkk;?3I#pz;%6(n&S~Ne4>vn zG+q4gJX4;#nEgpGcz%*m+A3omZU1SlM$DsarXyC8Mp;0xc`n8&E38xvz}DBvPUn*v zO2SeSL<8E9s6Qh#r<${l29BERwEnhG;s`0j=gGY-Hok=S)hmiukG)PTY&-Uphv~Yr z{AGNypo_|BR0{nzGaz5uyH$fL6t3rkP#$w*W{H)cWbMb%o7hxZ?Fkh_no_RR|G9Jp9;>4!<=AGK!+qeaah zgs-DIg{ziiptGDxr58o^#kjH`NDLAtxiQ5Wm=c*Qb3b^$erZPPzZVIBtu!%v*gEXK zZLwInyr`R)#bE+H7zQzYb9o16VF%!p1=_(jvR~>}Rq3=t>^b`LU@c3UC$?_EtvLDP znL3hHg4m9IbKP0s?w&i+Vg7p(Ulf(7&I?_4Fj6$>cvJp|$9NX_l;gtqgOEwZFlU&o zt%nR%XZ}Z$lCC3kfVM$b>Wq?Xh{h!!Pv0%V8tJOarwmmIsAb=b_Er%6mNvyb{zWt{ z#Y^l6F(ThEceMLpu^QUCAuxe%@YtASnC@JWv0kncmg=0l-jrli=TdVrb5;1H0C?od zHR-gX3-TGN1=mKjx#hbDvR2z$?Q#I=@(VTV`(3kODJv5b6Fs+}i?Ci7ie{phsJbb3 z<hF#aZQahwE!Jw&uo;!*&HepWZ!eao|+g75cij1lHW?ka%V6Ne;atMOFNks7X!i zx@$NSV4KXWUJ!2|JGirFkNvpF)@)m=TdtHj6C^y zsO@Im$beJnCU8>$b?zBUdE&ze+k2PQ{jBfRstiikJu{4Lxtc{1X)YUr|2%U429Y~F zHeg4QW&LQ25*qow%KNB59WV6iM7hGN%ImWmlZz6d?Xr@b(U_rH*SjG1))1c8gwcrs zoz}pvFEOSv;S;uA^J6V&PSEUN+2C@+SgV4o_-pc+|FB9elFPkBnOi?LUw`7toEm%+z3f%()HPndWsddrp^mGNwM8|u9w_bu(NySGL>eAS;J)H*A! z!<=zIMO`sEk-AV9pAkx{9B)G>YMpuDnx8ux!=05R*Oa&)7IoY7e7~=tH@QurZFzI- zu%jXgY_srHxe@QV*<8sH%t_x+x4`ZiP%+CN7iK$6Gg^HDvHL&9R=zh5?9oT)Zb&+^ zlq0t)EU@}J@E4VptFCglW(i)x23PV@n|DXBa8O;iTPo!uYrn5Kd#{GM?(s!6vwW39 z25Eu@k8Eaf4Z4_i?Qq)o6QB(@M@pd%HbyLecE61?lz+PK2M!-7+}7XM zS3cXNvAGLI%53_uprK!{9BrXT8k}?F#-6F%a*9!WUW;$-Q-b6Z8fS3=`&HxT9)>Q{ zBfEQ|8?15tWR$V`l121IHwq|2Om)Pgg~|&smfVLhT=RT$VKk_ad%M0@GCa5ahGtK- zEsyv9&#M^%{+61ds!sXc%%sLLF%-VP2fn2rS(KY=bu8H5z+1cfQJk;b4wXGXecjxs zx9fK{EAK>}UaLI#cq1Losopp+n&o*{PCUiztm~?14zLM5C=Ot1zDb@MgNFvohZYMN zI4{1CA4QK4q;dq;B@g%95OvMDU+nnAZm!O%F{L-l`e9t|`43`)m`gcd6$JnEHG;F$ z7e@Pzr7H{$H{wd-*5=GZ7)+Uyk!HG@?=J08n@fs3UMIQc;xaQ34*ejK*_nIeUDlM{ z^h!p#Ll#&gA$~3|Bt+Zf1d6qm{ChwS>9Xco*4B>N%_xoP6wV^XW;q+!T)l7h-uZIZ zcQTrn>-8nWg6WlRx%Cfj@6PuXZ?3;OO6<=5@;usS7v46$%)JMet1)}e7*sE{^(yOV z*V|`i^OZM;(z?Y)ur*(5ZSCVsXHO=Yg~jxKoO#xpmBI<6IpN_8ZsyOtdG45O6O&h< zl;9)i_2B$;aRkYact;;N4NRo7K^5Ae@F_8ya4OiL^423a-S!?+i!k9i9& znXHH9Yqk*+E{CPM?3^)=y}5TWHj>8fo%fGZ8;+4aUEYO?Kh$BG%|m9Y53sY$dRUT@ z*)RHjf5oa0C4Ee|W@^&U&J-FLE%`kq@A;LSqi-m&bBKI$Z`!xQTZc@*osCs_4t}1t ztx^MqLthWEYds=s9aFk7u|@b!;Q~bg#L2-Gi3A6pV!1G>Nquu+Y~|X6BMy(6O6-K@ z^YYVVwOKqe3_)FlFBId#u~)v`7cO2Z{*R5n5~xJI;X4F<{a%3icj?3R!itLyt{e+a3suV3dk)_nd!X@>X_UBjvyji@fk z0T%XP^Ug~on3oL)DD;{4vEQPGo33mS5eC1zIeBY#v|CPL%%^4dv}L-40TzKka1}`u zk%L;?VpAdY>FMbo?ZjX;yH40h=Fd#m#|yPmxUFh zI(*y0OyZ&r)ym7u8|CumW0nm!vg(3l4CJnHw{pML0)zmq>#?cr5GB>^Ur;MEJJZ|7 H9?|~?(VW6J literal 0 HcmV?d00001 diff --git a/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num8.png b/src/Artemis.Core/DefaultLayouts/Artemis/Keyboard/Keycaps/Num8.png new file mode 100644 index 0000000000000000000000000000000000000000..2d3cbb3bf2b1563b8d2074a163a05542370f5b78 GIT binary patch literal 3959 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�fdgxMQcQJRaQ={(kworsC+?T z8WP&MWagMC2pu%Hq!o zZnF-Iw5HVFkH)c%ss&Io(<1E6eAcWpyyO7$zGb|0N5FZe&Kg=(MA>v|V zA9$7qyi4QS8*1ziiEO*v-L3b<{(64GFl2q=i(~{nW_^WAs@cZ?nY5|Cx|pc0nUzLC z!6#nPyG!Nw{jQ=v3dJ3_S!xF!ZjApn!lIX@V3BT?CXO z3KpaZ2pXz{CLKbNUT)acz4ymHcb;eFoH_Ho@ArP~$J{hC(LKT?$OQs{j_B)YSuj_} zgZnU;`HVLb`p#Sg$l5k!OQH*zf+GPSbv)4tfanu&u7CxA!v|b#29!V`wrF=N8?ueD z5!RVVkj5R@Nc$6fm}n44N!8y6=j;iPAx?m+ySFlQvGx@d;*M8_UPK!sjD0i#H+Q{2 z5?~o8yZLiSXK{w>PJ z*bJgcBmoe#GzR93ltn}26r_ zT4?F~@Wp&nhPsi-K3F)MLZL`gP|`$_D;%kypa4h6z-44$ObeKAfHxWE5A*gF`^lgM z_&Sr^eaP-aZ^!{7&WY$pR)#W_{v86r$JqEEVsGCciDIS5JJa_MtnB~AVl_zsj!Yz3 z5s6+uyTHtiNGAHa5q%(-^fc$>Z-5XD&_?|r|)8A2R0VMZp0A7bgBtZVkGuHiI zG~ncA6_5&Y01P7!;9xQcSquz^be4x9PzWbE3<868l1D>-;PL;HzrXvGdBTjt=cgPj z>HvU{2VgE3yd2CKkd=es5DFL=z@$^ap;0(_v@;aWln6g)o&Ra2pGVC8JlOs-7|fS{ zMhoy}&J&3_I4PG$AA>;LA^KYCR{s5S_J*Fn8XmhZoUpi|qkS`mB(}i*>oZcW(9qe# z-X)&eh|7G?Gu->(d~a_JJ|RS_Q;u0 zDC@&Z3Ytr#d3B?$jj^VL{iYj7#5X{S;DAM1sbfOO-i|`!iBd^!Z2TcswILSFvDxzO zsUm!=SJ{&#e0*F0MrNp+{L2Cx}ys_`5B>bhPtw{vSxB}vZ6}JR*F)_?NPR+^ZC}SGC^x|6%SG@+7p$s?ULqMX~3J` zyV$98-~Gnx+?KB=;EUY!rwO|{L1$CgvvOx?dLXtf5tU&1q6X8?A4QSsqhskxAcm+) zuwLHXPwJqn&U2G&5@o#!*X?K)?{o$ZPtsWHN_z~asWTiMk2>j8F_Dm*mfxmqBpFFd zbCLpU3qy(-s0!Sh8+*D5BD+A(=Bpc~jyyX8KGbtjNAv2NRL*vJfdsX&7VC2x%$lA;FQp$)n6PJ{opuv zi0=8NNPj(Djp`5u9?~rj;UCXk30a5;T@FUDsm?m?$iJ5 zew{#+)q-#;!T-Dul5hw_JyqAw6KQfgir1akRLLy8KGUFdwyT2B>+mwrZ*_U1wWrFw zsnt_LW$@Zy(3JjUUsd`0%I?e*Y3d`cHwk647Y zSih8&5ZaN7l5B`(jr$(3@-5$^_pplm&2+P@5uM&cYDo60JaX?bx*Ti8_O%$6{qM81 z>f{7lD{VzYELJ!$toxxc=RG&M(CYZH*MHqAycQ++BENW0SB~}* zKyIhqwYkFVlruX2BJJY>!eDIu+ zk&)GmuV2635F83LxBkN^UAYe#`CzT<(cZ6Mq{GTw-!pQ^=K|~Nqg%x}u?b;=9vW>o z*(*n(S-$-^Ei1f#14nQnKN5>gD=EGFTzcs{8ku4L_DhfFsP#pLF>?I^=7cCqXLe+~ zsH({P*O!VzBErILMm4couob10hY^dO-!E%lEOlu2SCur$i18k(xhtheS!m1H-q~D< zkIA`Uccg%#*;-I;NR`&6EDSysq1NxceXBJvy>7=KBugl3wsH&K1+*N5wY~;jxdN&2 z8POQ^Ht0l-2nq=3uis8c;0wK0{A@MNuKj|N9e6G{!LiOCd1+OA?!z6i>9zTR=bqQl z=@Hub<}>-JJ;TFU2oU>c@!P(NmY;c_%<^IbSKWGOH0q12jBxw<;A-c7$M%(#fjjgI z9*Z}~dpn!rU%Ic-DM@cVBh&6QRK>Hu>gEUS#&hxycADhf`bZCDh5_xF%iDsDhqH^Mxr|!9KolT