[vdr-plugin-skinflatplus] 02/15: Imported Upstream version 0.4.3+git20141202

Tobias Grimm tiber-guest at moszumanska.debian.org
Wed Feb 11 20:44:21 UTC 2015


This is an automated email from the git hooks/post-receive script.

tiber-guest pushed a commit to branch master
in repository vdr-plugin-skinflatplus.

commit 16e3178f3b90dae9a76eade13f9d5d933800dce2
Author: etobi <git at e-tobi.net>
Date:   Wed Feb 11 19:21:23 2015 +0100

    Imported Upstream version 0.4.3+git20141202
---
 COPYING                                            |  340 ++
 HISTORY                                            |  254 +
 MV_Themes.HISTORY                                  |  112 +
 MV_Themes.INFO                                     |   76 +
 Makefile                                           |  165 +
 README                                             |  110 +
 baserender.c                                       | 1655 +++++++
 baserender.h                                       |  183 +
 complexcontent.c                                   |  301 ++
 complexcontent.h                                   |  172 +
 config.c                                           |  861 ++++
 config.h                                           |  319 ++
 configs/MV_default                                 |  145 +
 configs/default                                    |  102 +
 configs/fnu_default                                |  102 +
 configs/skin flat                                  |  102 +
 contrib/eventsview-flatplus.sql                    |   11 +
 contrib/flatPlus-MVFonts-info.txt                  |    6 +
 contrib/flatPlus_MV_Update.sh                      |  125 +
 decors/10_rect_sml.decor                           |   73 +
 decors/11_rect_mid.decor                           |   73 +
 decors/12_rect_big.decor                           |   73 +
 decors/20_round_sml.decor                          |   73 +
 decors/21_round_mid.decor                          |   73 +
 decors/22_round_big.decor                          |   73 +
 decors/30_invert-round_sml.decor                   |   73 +
 decors/31_invert-round_mid.decor                   |   73 +
 decors/32_invert-round_big.decor                   |   73 +
 decors/40_rect-alpha_sml.decor                     |   73 +
 decors/41_rect-alpha_mid.decor                     |   73 +
 decors/42_rect-alpha_big.decor                     |   73 +
 decors/50_round-alpha_sml.decor                    |   73 +
 decors/51_round-alpha_mid.decor                    |   73 +
 decors/52_round-alpha_big.decor                    |   73 +
 decors/60_invert-round-alpha_sml.decor             |   73 +
 decors/61_invert-round-alpha_mid.decor             |   73 +
 decors/62_invert-round-alpha_big.decor             |   73 +
 decors/70_MV_rect_sml.decor                        |   73 +
 decors/99_none.decor                               |   73 +
 displaychannel.c                                   |  724 +++
 displaychannel.h                                   |   63 +
 displaymenu.c                                      | 4924 ++++++++++++++++++++
 displaymenu.h                                      |  134 +
 displaymessage.c                                   |   22 +
 displaymessage.h                                   |   12 +
 displayreplay.c                                    |  625 +++
 displayreplay.h                                    |   48 +
 displaytracks.c                                    |  115 +
 displaytracks.h                                    |   25 +
 displayvolume.c                                    |   76 +
 displayvolume.h                                    |   21 +
 femonreceiver.c                                    |  189 +
 femonreceiver.h                                    |   62 +
 flat.c                                             |   84 +
 flat.h                                             |  223 +
 fnu_anthra_themes.HISTORY                          |    9 +
 fnu_anthra_themes.INFO                             |   42 +
 icons/COPYRIGHT                                    |   17 +
 icons/MVBeige/1280x720.png                         |    1 +
 icons/MVBeige/1440x1080.png                        |    1 +
 icons/MVBeige/169.png                              |    1 +
 icons/MVBeige/169w.png                             |    1 +
 icons/MVBeige/1920x1080.png                        |    1 +
 icons/MVBeige/221.png                              |    1 +
 icons/MVBeige/352x576.png                          |    1 +
 icons/MVBeige/43.png                               |    1 +
 icons/MVBeige/480x576.png                          |    1 +
 icons/MVBeige/528x576.png                          |    1 +
 icons/MVBeige/544x576.png                          |    1 +
 icons/MVBeige/704x576.png                          |    1 +
 icons/MVBeige/720x576.png                          |    1 +
 icons/MVBeige/960x720.png                          |    1 +
 icons/MVBeige/blank.png                            |    1 +
 icons/MVBeige/changroup.png                        |  Bin 0 -> 749 bytes
 icons/MVBeige/chart1b.png                          |    1 +
 icons/MVBeige/chart2b.png                          |    1 +
 icons/MVBeige/chart3b.png                          |    1 +
 icons/MVBeige/chart4b.png                          |    1 +
 icons/MVBeige/chart5b.png                          |    1 +
 icons/MVBeige/chart6b.png                          |    1 +
 icons/MVBeige/chart7.png                           |    1 +
 icons/MVBeige/chart7b.png                          |    1 +
 icons/MVBeige/crypted.png                          |    1 +
 icons/MVBeige/forward.png                          |    1 +
 icons/MVBeige/forward_sel.png                      |  Bin 0 -> 3273 bytes
 icons/MVBeige/hd.png                               |    1 +
 icons/MVBeige/message_error.png                    |    1 +
 icons/MVBeige/message_info.png                     |    1 +
 icons/MVBeige/message_status.png                   |    1 +
 icons/MVBeige/message_warning.png                  |    1 +
 icons/MVBeige/pause.png                            |    1 +
 icons/MVBeige/pause_sel.png                        |  Bin 0 -> 3119 bytes
 icons/MVBeige/play.png                             |    1 +
 icons/MVBeige/play_sel.png                         |  Bin 0 -> 4044 bytes
 icons/MVBeige/prev.png                             |    1 +
 icons/MVBeige/prev_sel.png                         |  Bin 0 -> 4806 bytes
 icons/MVBeige/radio.png                            |    1 +
 icons/MVBeige/recording.png                        |    1 +
 icons/MVBeige/recording_cutted.png                 |  Bin 0 -> 2063 bytes
 icons/MVBeige/recording_cutted_cur.png             |    1 +
 icons/MVBeige/recording_cutted_extra.png           |  Bin 0 -> 2140 bytes
 icons/MVBeige/recording_new.png                    |  Bin 0 -> 8134 bytes
 icons/MVBeige/recording_new_cur.png                |    1 +
 icons/MVBeige/rewind.png                           |    1 +
 icons/MVBeige/rewind_sel.png                       |  Bin 0 -> 3427 bytes
 icons/MVBeige/sd.png                               |    1 +
 icons/MVBeige/skip.png                             |    1 +
 icons/MVBeige/skip_sel.png                         |  Bin 0 -> 4715 bytes
 icons/MVBeige/text_arrowturn.png                   |    1 +
 icons/MVBeige/text_arrowturn_cur.png               |    1 +
 icons/MVBeige/text_arrowturn_sel.png               |    1 +
 icons/MVBeige/text_new.png                         |    1 +
 icons/MVBeige/text_new_cur.png                     |    1 +
 icons/MVBeige/text_new_sel.png                     |    1 +
 icons/MVBeige/text_rec.png                         |    1 +
 icons/MVBeige/text_rec_cur.png                     |    1 +
 icons/MVBeige/text_rec_sel.png                     |    1 +
 icons/MVBeige/text_timer_full.png                  |    1 +
 icons/MVBeige/text_timer_full_cur.png              |    1 +
 icons/MVBeige/text_timer_full_sel.png              |    1 +
 icons/MVBeige/text_timer_partial.png               |    1 +
 icons/MVBeige/text_timer_partial_cur.png           |    1 +
 icons/MVBeige/text_timer_partial_sel.png           |    1 +
 icons/MVBeige/text_vps.png                         |    1 +
 icons/MVBeige/text_vps_cur.png                     |    1 +
 icons/MVBeige/text_vps_sel.png                     |    1 +
 icons/MVBeige/timerActive.png                      |    1 +
 icons/MVBeige/timerInactive.png                    |    1 +
 icons/MVBeige/timerRecording.png                   |    1 +
 icons/MVBeige/timer_full.png                       |  Bin 0 -> 4797 bytes
 icons/MVBeige/timer_full_cur.png                   |    1 +
 icons/MVBeige/timer_partial.png                    |  Bin 0 -> 2598 bytes
 icons/MVBeige/timer_partial_cur.png                |    1 +
 icons/MVBeige/topbar_timer.png                     |    1 +
 icons/MVBeige/topbar_timerconflict_high.png        |    1 +
 icons/MVBeige/topbar_timerconflict_low.png         |    1 +
 icons/MVBeige/tv.png                               |    1 +
 icons/MVBeige/uncrypted.png                        |    1 +
 icons/MVBeige/unknown_asp.png                      |    1 +
 icons/MVBeige/unknown_res.png                      |    1 +
 icons/MVBeige/vps.png                              |  Bin 0 -> 5446 bytes
 icons/MVBeige/vps_cur.png                          |    1 +
 icons/MVBerry/1280x720.png                         |    1 +
 icons/MVBerry/1440x1080.png                        |    1 +
 icons/MVBerry/169.png                              |    1 +
 icons/MVBerry/169w.png                             |    1 +
 icons/MVBerry/1920x1080.png                        |    1 +
 icons/MVBerry/221.png                              |    1 +
 icons/MVBerry/352x576.png                          |    1 +
 icons/MVBerry/43.png                               |    1 +
 icons/MVBerry/480x576.png                          |    1 +
 icons/MVBerry/528x576.png                          |    1 +
 icons/MVBerry/544x576.png                          |    1 +
 icons/MVBerry/704x576.png                          |    1 +
 icons/MVBerry/720x576.png                          |    1 +
 icons/MVBerry/960x720.png                          |    1 +
 icons/MVBerry/blank.png                            |    1 +
 icons/MVBerry/changroup.png                        |  Bin 0 -> 750 bytes
 icons/MVBerry/chart1b.png                          |    1 +
 icons/MVBerry/chart2b.png                          |    1 +
 icons/MVBerry/chart3b.png                          |    1 +
 icons/MVBerry/chart4b.png                          |    1 +
 icons/MVBerry/chart5b.png                          |    1 +
 icons/MVBerry/chart6b.png                          |    1 +
 icons/MVBerry/chart7.png                           |    1 +
 icons/MVBerry/chart7b.png                          |    1 +
 icons/MVBerry/crypted.png                          |    1 +
 icons/MVBerry/forward.png                          |    1 +
 icons/MVBerry/forward_sel.png                      |  Bin 0 -> 3015 bytes
 icons/MVBerry/hd.png                               |    1 +
 icons/MVBerry/message_error.png                    |    1 +
 icons/MVBerry/message_info.png                     |    1 +
 icons/MVBerry/message_status.png                   |    1 +
 icons/MVBerry/message_warning.png                  |    1 +
 icons/MVBerry/pause.png                            |    1 +
 icons/MVBerry/pause_sel.png                        |  Bin 0 -> 2739 bytes
 icons/MVBerry/play.png                             |    1 +
 icons/MVBerry/play_sel.png                         |  Bin 0 -> 3585 bytes
 icons/MVBerry/prev.png                             |    1 +
 icons/MVBerry/prev_sel.png                         |  Bin 0 -> 4141 bytes
 icons/MVBerry/radio.png                            |    1 +
 icons/MVBerry/recording.png                        |    1 +
 icons/MVBerry/recording_cutted.png                 |  Bin 0 -> 2069 bytes
 icons/MVBerry/recording_cutted_cur.png             |    1 +
 icons/MVBerry/recording_cutted_extra.png           |  Bin 0 -> 2143 bytes
 icons/MVBerry/recording_new.png                    |  Bin 0 -> 7411 bytes
 icons/MVBerry/recording_new_cur.png                |    1 +
 icons/MVBerry/rewind.png                           |    1 +
 icons/MVBerry/rewind_sel.png                       |  Bin 0 -> 3082 bytes
 icons/MVBerry/sd.png                               |    1 +
 icons/MVBerry/skip.png                             |    1 +
 icons/MVBerry/skip_sel.png                         |  Bin 0 -> 4158 bytes
 icons/MVBerry/text_arrowturn.png                   |    1 +
 icons/MVBerry/text_arrowturn_cur.png               |    1 +
 icons/MVBerry/text_arrowturn_sel.png               |    1 +
 icons/MVBerry/text_new.png                         |    1 +
 icons/MVBerry/text_new_cur.png                     |    1 +
 icons/MVBerry/text_new_sel.png                     |    1 +
 icons/MVBerry/text_rec.png                         |    1 +
 icons/MVBerry/text_rec_cur.png                     |    1 +
 icons/MVBerry/text_rec_sel.png                     |    1 +
 icons/MVBerry/text_timer_full.png                  |    1 +
 icons/MVBerry/text_timer_full_cur.png              |    1 +
 icons/MVBerry/text_timer_full_sel.png              |    1 +
 icons/MVBerry/text_timer_partial.png               |    1 +
 icons/MVBerry/text_timer_partial_cur.png           |    1 +
 icons/MVBerry/text_timer_partial_sel.png           |    1 +
 icons/MVBerry/text_vps.png                         |    1 +
 icons/MVBerry/text_vps_cur.png                     |    1 +
 icons/MVBerry/text_vps_sel.png                     |    1 +
 icons/MVBerry/timerActive.png                      |    1 +
 icons/MVBerry/timerInactive.png                    |    1 +
 icons/MVBerry/timerRecording.png                   |    1 +
 icons/MVBerry/timer_full.png                       |  Bin 0 -> 4789 bytes
 icons/MVBerry/timer_full_cur.png                   |    1 +
 icons/MVBerry/timer_partial.png                    |  Bin 0 -> 2486 bytes
 icons/MVBerry/timer_partial_cur.png                |    1 +
 icons/MVBerry/topbar_timer.png                     |    1 +
 icons/MVBerry/topbar_timerconflict_high.png        |    1 +
 icons/MVBerry/topbar_timerconflict_low.png         |    1 +
 icons/MVBerry/tv.png                               |    1 +
 icons/MVBerry/uncrypted.png                        |    1 +
 icons/MVBerry/unknown_asp.png                      |    1 +
 icons/MVBerry/unknown_res.png                      |    1 +
 icons/MVBerry/vps.png                              |  Bin 0 -> 5313 bytes
 icons/MVBerry/vps_cur.png                          |    1 +
 icons/MVBlood/1280x720.png                         |    1 +
 icons/MVBlood/1440x1080.png                        |    1 +
 icons/MVBlood/169.png                              |    1 +
 icons/MVBlood/169w.png                             |    1 +
 icons/MVBlood/1920x1080.png                        |    1 +
 icons/MVBlood/221.png                              |    1 +
 icons/MVBlood/352x576.png                          |    1 +
 icons/MVBlood/43.png                               |    1 +
 icons/MVBlood/480x576.png                          |    1 +
 icons/MVBlood/528x576.png                          |    1 +
 icons/MVBlood/544x576.png                          |    1 +
 icons/MVBlood/704x576.png                          |    1 +
 icons/MVBlood/720x576.png                          |    1 +
 icons/MVBlood/960x720.png                          |    1 +
 icons/MVBlood/blank.png                            |    1 +
 icons/MVBlood/changroup.png                        |  Bin 0 -> 746 bytes
 icons/MVBlood/chart1b.png                          |    1 +
 icons/MVBlood/chart2b.png                          |    1 +
 icons/MVBlood/chart3b.png                          |    1 +
 icons/MVBlood/chart4b.png                          |    1 +
 icons/MVBlood/chart5b.png                          |    1 +
 icons/MVBlood/chart6b.png                          |    1 +
 icons/MVBlood/chart7.png                           |    1 +
 icons/MVBlood/chart7b.png                          |    1 +
 icons/MVBlood/crypted.png                          |    1 +
 icons/MVBlood/forward.png                          |    1 +
 icons/MVBlood/forward_sel.png                      |  Bin 0 -> 2817 bytes
 icons/MVBlood/hd.png                               |    1 +
 icons/MVBlood/message_error.png                    |    1 +
 icons/MVBlood/message_info.png                     |    1 +
 icons/MVBlood/message_status.png                   |    1 +
 icons/MVBlood/message_warning.png                  |    1 +
 icons/MVBlood/pause.png                            |    1 +
 icons/MVBlood/pause_sel.png                        |  Bin 0 -> 2439 bytes
 icons/MVBlood/play.png                             |    1 +
 icons/MVBlood/play_sel.png                         |  Bin 0 -> 3333 bytes
 icons/MVBlood/prev.png                             |    1 +
 icons/MVBlood/prev_sel.png                         |  Bin 0 -> 3724 bytes
 icons/MVBlood/radio.png                            |    1 +
 icons/MVBlood/recording.png                        |    1 +
 icons/MVBlood/recording_cutted.png                 |  Bin 0 -> 2067 bytes
 icons/MVBlood/recording_cutted_cur.png             |  Bin 0 -> 2080 bytes
 icons/MVBlood/recording_cutted_extra.png           |  Bin 0 -> 2136 bytes
 icons/MVBlood/recording_new.png                    |  Bin 0 -> 6880 bytes
 icons/MVBlood/recording_new_cur.png                |  Bin 0 -> 5775 bytes
 icons/MVBlood/rewind.png                           |    1 +
 icons/MVBlood/rewind_sel.png                       |  Bin 0 -> 2847 bytes
 icons/MVBlood/sd.png                               |    1 +
 icons/MVBlood/skip.png                             |    1 +
 icons/MVBlood/skip_sel.png                         |  Bin 0 -> 3785 bytes
 icons/MVBlood/text_arrowturn.png                   |    1 +
 icons/MVBlood/text_arrowturn_cur.png               |    1 +
 icons/MVBlood/text_arrowturn_sel.png               |    1 +
 icons/MVBlood/text_new.png                         |    1 +
 icons/MVBlood/text_new_cur.png                     |    1 +
 icons/MVBlood/text_new_sel.png                     |    1 +
 icons/MVBlood/text_rec.png                         |    1 +
 icons/MVBlood/text_rec_cur.png                     |    1 +
 icons/MVBlood/text_rec_sel.png                     |    1 +
 icons/MVBlood/text_timer_full.png                  |    1 +
 icons/MVBlood/text_timer_full_cur.png              |    1 +
 icons/MVBlood/text_timer_full_sel.png              |    1 +
 icons/MVBlood/text_timer_partial.png               |    1 +
 icons/MVBlood/text_timer_partial_cur.png           |    1 +
 icons/MVBlood/text_timer_partial_sel.png           |    1 +
 icons/MVBlood/text_vps.png                         |    1 +
 icons/MVBlood/text_vps_cur.png                     |    1 +
 icons/MVBlood/text_vps_sel.png                     |    1 +
 icons/MVBlood/timerActive.png                      |    1 +
 icons/MVBlood/timerInactive.png                    |    1 +
 icons/MVBlood/timerRecording.png                   |    1 +
 icons/MVBlood/timer_full.png                       |  Bin 0 -> 4833 bytes
 icons/MVBlood/timer_full_cur.png                   |  Bin 0 -> 4864 bytes
 icons/MVBlood/timer_partial.png                    |  Bin 0 -> 2395 bytes
 icons/MVBlood/timer_partial_cur.png                |  Bin 0 -> 2218 bytes
 icons/MVBlood/topbar_timer.png                     |    1 +
 icons/MVBlood/topbar_timerconflict_high.png        |    1 +
 icons/MVBlood/topbar_timerconflict_low.png         |    1 +
 icons/MVBlood/tv.png                               |    1 +
 icons/MVBlood/uncrypted.png                        |    1 +
 icons/MVBlood/unknown_asp.png                      |    1 +
 icons/MVBlood/unknown_res.png                      |    1 +
 icons/MVBlood/vps.png                              |  Bin 0 -> 5172 bytes
 icons/MVBlood/vps_cur.png                          |  Bin 0 -> 4920 bytes
 icons/MVBlue/1280x720.png                          |    1 +
 icons/MVBlue/1440x1080.png                         |    1 +
 icons/MVBlue/169.png                               |    1 +
 icons/MVBlue/169w.png                              |    1 +
 icons/MVBlue/1920x1080.png                         |    1 +
 icons/MVBlue/221.png                               |    1 +
 icons/MVBlue/352x576.png                           |    1 +
 icons/MVBlue/43.png                                |    1 +
 icons/MVBlue/480x576.png                           |    1 +
 icons/MVBlue/528x576.png                           |    1 +
 icons/MVBlue/544x576.png                           |    1 +
 icons/MVBlue/704x576.png                           |    1 +
 icons/MVBlue/720x576.png                           |    1 +
 icons/MVBlue/960x720.png                           |    1 +
 icons/MVBlue/blank.png                             |    1 +
 icons/MVBlue/changroup.png                         |  Bin 0 -> 743 bytes
 icons/MVBlue/chart1b.png                           |    1 +
 icons/MVBlue/chart2b.png                           |    1 +
 icons/MVBlue/chart3b.png                           |    1 +
 icons/MVBlue/chart4b.png                           |    1 +
 icons/MVBlue/chart5b.png                           |    1 +
 icons/MVBlue/chart6b.png                           |    1 +
 icons/MVBlue/chart7.png                            |    1 +
 icons/MVBlue/chart7b.png                           |    1 +
 icons/MVBlue/crypted.png                           |    1 +
 icons/MVBlue/forward.png                           |    1 +
 icons/MVBlue/forward_sel.png                       |  Bin 0 -> 2916 bytes
 icons/MVBlue/hd.png                                |    1 +
 icons/MVBlue/message_error.png                     |    1 +
 icons/MVBlue/message_info.png                      |    1 +
 icons/MVBlue/message_status.png                    |    1 +
 icons/MVBlue/message_warning.png                   |    1 +
 icons/MVBlue/pause.png                             |    1 +
 icons/MVBlue/pause_sel.png                         |  Bin 0 -> 2720 bytes
 icons/MVBlue/play.png                              |    1 +
 icons/MVBlue/play_sel.png                          |  Bin 0 -> 3450 bytes
 icons/MVBlue/prev.png                              |    1 +
 icons/MVBlue/prev_sel.png                          |  Bin 0 -> 4049 bytes
 icons/MVBlue/radio.png                             |    1 +
 icons/MVBlue/recording.png                         |    1 +
 icons/MVBlue/recording_cutted.png                  |  Bin 0 -> 2019 bytes
 icons/MVBlue/recording_cutted_cur.png              |    1 +
 icons/MVBlue/recording_cutted_extra.png            |  Bin 0 -> 2054 bytes
 icons/MVBlue/recording_new.png                     |  Bin 0 -> 7310 bytes
 icons/MVBlue/recording_new_cur.png                 |    1 +
 icons/MVBlue/rewind.png                            |    1 +
 icons/MVBlue/rewind_sel.png                        |  Bin 0 -> 2950 bytes
 icons/MVBlue/sd.png                                |    1 +
 icons/MVBlue/skip.png                              |    1 +
 icons/MVBlue/skip_sel.png                          |  Bin 0 -> 3994 bytes
 icons/MVBlue/text_arrowturn.png                    |    1 +
 icons/MVBlue/text_arrowturn_cur.png                |    1 +
 icons/MVBlue/text_arrowturn_sel.png                |    1 +
 icons/MVBlue/text_new.png                          |    1 +
 icons/MVBlue/text_new_cur.png                      |    1 +
 icons/MVBlue/text_new_sel.png                      |    1 +
 icons/MVBlue/text_rec.png                          |    1 +
 icons/MVBlue/text_rec_cur.png                      |    1 +
 icons/MVBlue/text_rec_sel.png                      |    1 +
 icons/MVBlue/text_timer_full.png                   |    1 +
 icons/MVBlue/text_timer_full_cur.png               |    1 +
 icons/MVBlue/text_timer_full_sel.png               |    1 +
 icons/MVBlue/text_timer_partial.png                |    1 +
 icons/MVBlue/text_timer_partial_cur.png            |    1 +
 icons/MVBlue/text_timer_partial_sel.png            |    1 +
 icons/MVBlue/text_vps.png                          |    1 +
 icons/MVBlue/text_vps_cur.png                      |    1 +
 icons/MVBlue/text_vps_sel.png                      |    1 +
 icons/MVBlue/timerActive.png                       |    1 +
 icons/MVBlue/timerInactive.png                     |    1 +
 icons/MVBlue/timerRecording.png                    |    1 +
 icons/MVBlue/timer_full.png                        |  Bin 0 -> 4662 bytes
 icons/MVBlue/timer_full_cur.png                    |    1 +
 icons/MVBlue/timer_partial.png                     |  Bin 0 -> 2329 bytes
 icons/MVBlue/timer_partial_cur.png                 |    1 +
 icons/MVBlue/topbar_timer.png                      |    1 +
 icons/MVBlue/topbar_timerconflict_high.png         |    1 +
 icons/MVBlue/topbar_timerconflict_low.png          |    1 +
 icons/MVBlue/tv.png                                |    1 +
 icons/MVBlue/uncrypted.png                         |    1 +
 icons/MVBlue/unknown_asp.png                       |    1 +
 icons/MVBlue/unknown_res.png                       |    1 +
 icons/MVBlue/vps.png                               |  Bin 0 -> 4967 bytes
 icons/MVBlue/vps_cur.png                           |    1 +
 icons/MVCappuchino/1280x720.png                    |    1 +
 icons/MVCappuchino/1440x1080.png                   |    1 +
 icons/MVCappuchino/169.png                         |    1 +
 icons/MVCappuchino/169w.png                        |    1 +
 icons/MVCappuchino/1920x1080.png                   |    1 +
 icons/MVCappuchino/221.png                         |    1 +
 icons/MVCappuchino/352x576.png                     |    1 +
 icons/MVCappuchino/43.png                          |    1 +
 icons/MVCappuchino/480x576.png                     |    1 +
 icons/MVCappuchino/528x576.png                     |    1 +
 icons/MVCappuchino/544x576.png                     |    1 +
 icons/MVCappuchino/704x576.png                     |    1 +
 icons/MVCappuchino/720x576.png                     |    1 +
 icons/MVCappuchino/960x720.png                     |    1 +
 icons/MVCappuchino/blank.png                       |    1 +
 icons/MVCappuchino/changroup.png                   |  Bin 0 -> 764 bytes
 icons/MVCappuchino/chart1b.png                     |    1 +
 icons/MVCappuchino/chart2b.png                     |    1 +
 icons/MVCappuchino/chart3b.png                     |    1 +
 icons/MVCappuchino/chart4b.png                     |    1 +
 icons/MVCappuchino/chart5b.png                     |    1 +
 icons/MVCappuchino/chart6b.png                     |    1 +
 icons/MVCappuchino/chart7.png                      |    1 +
 icons/MVCappuchino/chart7b.png                     |    1 +
 icons/MVCappuchino/crypted.png                     |    1 +
 icons/MVCappuchino/forward.png                     |    1 +
 icons/MVCappuchino/forward_sel.png                 |  Bin 0 -> 3147 bytes
 icons/MVCappuchino/hd.png                          |    1 +
 icons/MVCappuchino/message_error.png               |    1 +
 icons/MVCappuchino/message_info.png                |    1 +
 icons/MVCappuchino/message_status.png              |    1 +
 icons/MVCappuchino/message_warning.png             |    1 +
 icons/MVCappuchino/pause.png                       |    1 +
 icons/MVCappuchino/pause_sel.png                   |  Bin 0 -> 2911 bytes
 icons/MVCappuchino/play.png                        |    1 +
 icons/MVCappuchino/play_sel.png                    |  Bin 0 -> 3805 bytes
 icons/MVCappuchino/prev.png                        |    1 +
 icons/MVCappuchino/prev_sel.png                    |  Bin 0 -> 4469 bytes
 icons/MVCappuchino/radio.png                       |    1 +
 icons/MVCappuchino/recording.png                   |    1 +
 icons/MVCappuchino/recording_cutted.png            |  Bin 0 -> 2047 bytes
 icons/MVCappuchino/recording_cutted_cur.png        |    1 +
 icons/MVCappuchino/recording_cutted_extra.png      |  Bin 0 -> 2116 bytes
 icons/MVCappuchino/recording_new.png               |  Bin 0 -> 7731 bytes
 icons/MVCappuchino/recording_new_cur.png           |    1 +
 icons/MVCappuchino/rewind.png                      |    1 +
 icons/MVCappuchino/rewind_sel.png                  |  Bin 0 -> 3217 bytes
 icons/MVCappuchino/sd.png                          |    1 +
 icons/MVCappuchino/skip.png                        |    1 +
 icons/MVCappuchino/skip_sel.png                    |  Bin 0 -> 4401 bytes
 icons/MVCappuchino/text_arrowturn.png              |    1 +
 icons/MVCappuchino/text_arrowturn_cur.png          |    1 +
 icons/MVCappuchino/text_arrowturn_sel.png          |    1 +
 icons/MVCappuchino/text_new.png                    |    1 +
 icons/MVCappuchino/text_new_cur.png                |    1 +
 icons/MVCappuchino/text_new_sel.png                |    1 +
 icons/MVCappuchino/text_rec.png                    |    1 +
 icons/MVCappuchino/text_rec_cur.png                |    1 +
 icons/MVCappuchino/text_rec_sel.png                |    1 +
 icons/MVCappuchino/text_timer_full.png             |    1 +
 icons/MVCappuchino/text_timer_full_cur.png         |    1 +
 icons/MVCappuchino/text_timer_full_sel.png         |    1 +
 icons/MVCappuchino/text_timer_partial.png          |    1 +
 icons/MVCappuchino/text_timer_partial_cur.png      |    1 +
 icons/MVCappuchino/text_timer_partial_sel.png      |    1 +
 icons/MVCappuchino/text_vps.png                    |    1 +
 icons/MVCappuchino/text_vps_cur.png                |    1 +
 icons/MVCappuchino/text_vps_sel.png                |    1 +
 icons/MVCappuchino/timerActive.png                 |    1 +
 icons/MVCappuchino/timerInactive.png               |    1 +
 icons/MVCappuchino/timerRecording.png              |    1 +
 icons/MVCappuchino/timer_full.png                  |  Bin 0 -> 4842 bytes
 icons/MVCappuchino/timer_full_cur.png              |    1 +
 icons/MVCappuchino/timer_partial.png               |  Bin 0 -> 2568 bytes
 icons/MVCappuchino/timer_partial_cur.png           |    1 +
 icons/MVCappuchino/topbar_timer.png                |    1 +
 icons/MVCappuchino/topbar_timerconflict_high.png   |    1 +
 icons/MVCappuchino/topbar_timerconflict_low.png    |    1 +
 icons/MVCappuchino/tv.png                          |    1 +
 icons/MVCappuchino/uncrypted.png                   |    1 +
 icons/MVCappuchino/unknown_asp.png                 |    1 +
 icons/MVCappuchino/unknown_res.png                 |    1 +
 icons/MVCappuchino/vps.png                         |  Bin 0 -> 5461 bytes
 icons/MVCappuchino/vps_cur.png                     |    1 +
 icons/MVChocolate/1280x720.png                     |    1 +
 icons/MVChocolate/1440x1080.png                    |    1 +
 icons/MVChocolate/169.png                          |    1 +
 icons/MVChocolate/169w.png                         |    1 +
 icons/MVChocolate/1920x1080.png                    |    1 +
 icons/MVChocolate/221.png                          |    1 +
 icons/MVChocolate/352x576.png                      |    1 +
 icons/MVChocolate/43.png                           |    1 +
 icons/MVChocolate/480x576.png                      |    1 +
 icons/MVChocolate/528x576.png                      |    1 +
 icons/MVChocolate/544x576.png                      |    1 +
 icons/MVChocolate/704x576.png                      |    1 +
 icons/MVChocolate/720x576.png                      |    1 +
 icons/MVChocolate/960x720.png                      |    1 +
 icons/MVChocolate/blank.png                        |    1 +
 icons/MVChocolate/changroup.png                    |  Bin 0 -> 761 bytes
 icons/MVChocolate/chart1b.png                      |    1 +
 icons/MVChocolate/chart2b.png                      |    1 +
 icons/MVChocolate/chart3b.png                      |    1 +
 icons/MVChocolate/chart4b.png                      |    1 +
 icons/MVChocolate/chart5b.png                      |    1 +
 icons/MVChocolate/chart6b.png                      |    1 +
 icons/MVChocolate/chart7.png                       |    1 +
 icons/MVChocolate/chart7b.png                      |    1 +
 icons/MVChocolate/crypted.png                      |    1 +
 icons/MVChocolate/forward.png                      |    1 +
 icons/MVChocolate/forward_sel.png                  |  Bin 0 -> 2978 bytes
 icons/MVChocolate/hd.png                           |    1 +
 icons/MVChocolate/message_error.png                |    1 +
 icons/MVChocolate/message_info.png                 |    1 +
 icons/MVChocolate/message_status.png               |    1 +
 icons/MVChocolate/message_warning.png              |    1 +
 icons/MVChocolate/pause.png                        |    1 +
 icons/MVChocolate/pause_sel.png                    |  Bin 0 -> 2700 bytes
 icons/MVChocolate/play.png                         |    1 +
 icons/MVChocolate/play_sel.png                     |  Bin 0 -> 3608 bytes
 icons/MVChocolate/prev.png                         |    1 +
 icons/MVChocolate/prev_sel.png                     |  Bin 0 -> 4156 bytes
 icons/MVChocolate/radio.png                        |    1 +
 icons/MVChocolate/recording.png                    |    1 +
 icons/MVChocolate/recording_cutted.png             |  Bin 0 -> 2065 bytes
 icons/MVChocolate/recording_cutted_cur.png         |    1 +
 icons/MVChocolate/recording_cutted_extra.png       |  Bin 0 -> 2142 bytes
 icons/MVChocolate/recording_new.png                |  Bin 0 -> 7425 bytes
 icons/MVChocolate/recording_new_cur.png            |    1 +
 icons/MVChocolate/rewind.png                       |    1 +
 icons/MVChocolate/rewind_sel.png                   |  Bin 0 -> 3057 bytes
 icons/MVChocolate/sd.png                           |    1 +
 icons/MVChocolate/skip.png                         |    1 +
 icons/MVChocolate/skip_sel.png                     |  Bin 0 -> 4127 bytes
 icons/MVChocolate/text_arrowturn.png               |    1 +
 icons/MVChocolate/text_arrowturn_cur.png           |    1 +
 icons/MVChocolate/text_arrowturn_sel.png           |    1 +
 icons/MVChocolate/text_new.png                     |    1 +
 icons/MVChocolate/text_new_cur.png                 |    1 +
 icons/MVChocolate/text_new_sel.png                 |    1 +
 icons/MVChocolate/text_rec.png                     |    1 +
 icons/MVChocolate/text_rec_cur.png                 |    1 +
 icons/MVChocolate/text_rec_sel.png                 |    1 +
 icons/MVChocolate/text_timer_full.png              |    1 +
 icons/MVChocolate/text_timer_full_cur.png          |    1 +
 icons/MVChocolate/text_timer_full_sel.png          |    1 +
 icons/MVChocolate/text_timer_partial.png           |    1 +
 icons/MVChocolate/text_timer_partial_cur.png       |    1 +
 icons/MVChocolate/text_timer_partial_sel.png       |    1 +
 icons/MVChocolate/text_vps.png                     |    1 +
 icons/MVChocolate/text_vps_cur.png                 |    1 +
 icons/MVChocolate/text_vps_sel.png                 |    1 +
 icons/MVChocolate/timerActive.png                  |    1 +
 icons/MVChocolate/timerInactive.png                |    1 +
 icons/MVChocolate/timerRecording.png               |    1 +
 icons/MVChocolate/timer_full.png                   |  Bin 0 -> 4884 bytes
 icons/MVChocolate/timer_full_cur.png               |    1 +
 icons/MVChocolate/timer_partial.png                |  Bin 0 -> 2516 bytes
 icons/MVChocolate/timer_partial_cur.png            |    1 +
 icons/MVChocolate/topbar_timer.png                 |    1 +
 icons/MVChocolate/topbar_timerconflict_high.png    |    1 +
 icons/MVChocolate/topbar_timerconflict_low.png     |    1 +
 icons/MVChocolate/tv.png                           |    1 +
 icons/MVChocolate/uncrypted.png                    |    1 +
 icons/MVChocolate/unknown_asp.png                  |    1 +
 icons/MVChocolate/unknown_res.png                  |    1 +
 icons/MVChocolate/vps.png                          |  Bin 0 -> 5432 bytes
 icons/MVChocolate/vps_cur.png                      |    1 +
 icons/MVCyan/1280x720.png                          |    1 +
 icons/MVCyan/1440x1080.png                         |    1 +
 icons/MVCyan/169.png                               |    1 +
 icons/MVCyan/169w.png                              |    1 +
 icons/MVCyan/1920x1080.png                         |    1 +
 icons/MVCyan/221.png                               |    1 +
 icons/MVCyan/352x576.png                           |    1 +
 icons/MVCyan/43.png                                |    1 +
 icons/MVCyan/480x576.png                           |    1 +
 icons/MVCyan/528x576.png                           |    1 +
 icons/MVCyan/544x576.png                           |    1 +
 icons/MVCyan/704x576.png                           |    1 +
 icons/MVCyan/720x576.png                           |    1 +
 icons/MVCyan/960x720.png                           |    1 +
 icons/MVCyan/blank.png                             |    1 +
 icons/MVCyan/changroup.png                         |  Bin 0 -> 760 bytes
 icons/MVCyan/chart1b.png                           |    1 +
 icons/MVCyan/chart2b.png                           |    1 +
 icons/MVCyan/chart3b.png                           |    1 +
 icons/MVCyan/chart4b.png                           |    1 +
 icons/MVCyan/chart5b.png                           |    1 +
 icons/MVCyan/chart6b.png                           |    1 +
 icons/MVCyan/chart7.png                            |    1 +
 icons/MVCyan/chart7b.png                           |    1 +
 icons/MVCyan/crypted.png                           |    1 +
 icons/MVCyan/forward.png                           |    1 +
 icons/MVCyan/forward_sel.png                       |  Bin 0 -> 3116 bytes
 icons/MVCyan/hd.png                                |    1 +
 icons/MVCyan/message_error.png                     |    1 +
 icons/MVCyan/message_info.png                      |    1 +
 icons/MVCyan/message_status.png                    |    1 +
 icons/MVCyan/message_warning.png                   |    1 +
 icons/MVCyan/pause.png                             |    1 +
 icons/MVCyan/pause_sel.png                         |  Bin 0 -> 2912 bytes
 icons/MVCyan/play.png                              |    1 +
 icons/MVCyan/play_sel.png                          |  Bin 0 -> 3777 bytes
 icons/MVCyan/prev.png                              |    1 +
 icons/MVCyan/prev_sel.png                          |  Bin 0 -> 4369 bytes
 icons/MVCyan/radio.png                             |    1 +
 icons/MVCyan/recording.png                         |    1 +
 icons/MVCyan/recording_cutted.png                  |  Bin 0 -> 2065 bytes
 icons/MVCyan/recording_cutted_cur.png              |    1 +
 icons/MVCyan/recording_cutted_extra.png            |  Bin 0 -> 2140 bytes
 icons/MVCyan/recording_new.png                     |  Bin 0 -> 7667 bytes
 icons/MVCyan/recording_new_cur.png                 |    1 +
 icons/MVCyan/rewind.png                            |    1 +
 icons/MVCyan/rewind_sel.png                        |  Bin 0 -> 3220 bytes
 icons/MVCyan/sd.png                                |    1 +
 icons/MVCyan/skip.png                              |    1 +
 icons/MVCyan/skip_sel.png                          |  Bin 0 -> 4382 bytes
 icons/MVCyan/text_arrowturn.png                    |    1 +
 icons/MVCyan/text_arrowturn_cur.png                |    1 +
 icons/MVCyan/text_arrowturn_sel.png                |    1 +
 icons/MVCyan/text_new.png                          |    1 +
 icons/MVCyan/text_new_cur.png                      |    1 +
 icons/MVCyan/text_new_sel.png                      |    1 +
 icons/MVCyan/text_rec.png                          |    1 +
 icons/MVCyan/text_rec_cur.png                      |    1 +
 icons/MVCyan/text_rec_sel.png                      |    1 +
 icons/MVCyan/text_timer_full.png                   |    1 +
 icons/MVCyan/text_timer_full_cur.png               |    1 +
 icons/MVCyan/text_timer_full_sel.png               |    1 +
 icons/MVCyan/text_timer_partial.png                |    1 +
 icons/MVCyan/text_timer_partial_cur.png            |    1 +
 icons/MVCyan/text_timer_partial_sel.png            |    1 +
 icons/MVCyan/text_vps.png                          |    1 +
 icons/MVCyan/text_vps_cur.png                      |    1 +
 icons/MVCyan/text_vps_sel.png                      |    1 +
 icons/MVCyan/timerActive.png                       |    1 +
 icons/MVCyan/timerInactive.png                     |    1 +
 icons/MVCyan/timerRecording.png                    |    1 +
 icons/MVCyan/timer_full.png                        |  Bin 0 -> 4795 bytes
 icons/MVCyan/timer_full_cur.png                    |    1 +
 icons/MVCyan/timer_partial.png                     |  Bin 0 -> 2520 bytes
 icons/MVCyan/timer_partial_cur.png                 |    1 +
 icons/MVCyan/topbar_timer.png                      |    1 +
 icons/MVCyan/topbar_timerconflict_high.png         |    1 +
 icons/MVCyan/topbar_timerconflict_low.png          |    1 +
 icons/MVCyan/tv.png                                |    1 +
 icons/MVCyan/uncrypted.png                         |    1 +
 icons/MVCyan/unknown_asp.png                       |    1 +
 icons/MVCyan/unknown_res.png                       |    1 +
 icons/MVCyan/vps.png                               |  Bin 0 -> 5263 bytes
 icons/MVCyan/vps_cur.png                           |    1 +
 icons/MVDeepBlue/1280x720.png                      |    1 +
 icons/MVDeepBlue/1440x1080.png                     |    1 +
 icons/MVDeepBlue/169.png                           |    1 +
 icons/MVDeepBlue/169w.png                          |    1 +
 icons/MVDeepBlue/1920x1080.png                     |    1 +
 icons/MVDeepBlue/221.png                           |    1 +
 icons/MVDeepBlue/352x576.png                       |    1 +
 icons/MVDeepBlue/43.png                            |    1 +
 icons/MVDeepBlue/480x576.png                       |    1 +
 icons/MVDeepBlue/528x576.png                       |    1 +
 icons/MVDeepBlue/544x576.png                       |    1 +
 icons/MVDeepBlue/704x576.png                       |    1 +
 icons/MVDeepBlue/720x576.png                       |    1 +
 icons/MVDeepBlue/960x720.png                       |    1 +
 icons/MVDeepBlue/blank.png                         |    1 +
 icons/MVDeepBlue/changroup.png                     |  Bin 0 -> 746 bytes
 icons/MVDeepBlue/chart1b.png                       |    1 +
 icons/MVDeepBlue/chart2b.png                       |    1 +
 icons/MVDeepBlue/chart3b.png                       |    1 +
 icons/MVDeepBlue/chart4b.png                       |    1 +
 icons/MVDeepBlue/chart5b.png                       |    1 +
 icons/MVDeepBlue/chart6b.png                       |    1 +
 icons/MVDeepBlue/chart7.png                        |    1 +
 icons/MVDeepBlue/chart7b.png                       |    1 +
 icons/MVDeepBlue/crypted.png                       |    1 +
 icons/MVDeepBlue/forward.png                       |    1 +
 icons/MVDeepBlue/forward_sel.png                   |  Bin 0 -> 2923 bytes
 icons/MVDeepBlue/hd.png                            |    1 +
 icons/MVDeepBlue/message_error.png                 |    1 +
 icons/MVDeepBlue/message_info.png                  |    1 +
 icons/MVDeepBlue/message_status.png                |    1 +
 icons/MVDeepBlue/message_warning.png               |    1 +
 icons/MVDeepBlue/pause.png                         |    1 +
 icons/MVDeepBlue/pause_sel.png                     |  Bin 0 -> 2685 bytes
 icons/MVDeepBlue/play.png                          |    1 +
 icons/MVDeepBlue/play_sel.png                      |  Bin 0 -> 3534 bytes
 icons/MVDeepBlue/prev.png                          |    1 +
 icons/MVDeepBlue/prev_sel.png                      |  Bin 0 -> 4047 bytes
 icons/MVDeepBlue/radio.png                         |    1 +
 icons/MVDeepBlue/recording.png                     |    1 +
 icons/MVDeepBlue/recording_cutted.png              |  Bin 0 -> 2072 bytes
 icons/MVDeepBlue/recording_cutted_cur.png          |  Bin 0 -> 2070 bytes
 icons/MVDeepBlue/recording_cutted_extra.png        |  Bin 0 -> 2108 bytes
 icons/MVDeepBlue/recording_new.png                 |  Bin 0 -> 7313 bytes
 icons/MVDeepBlue/recording_new_cur.png             |  Bin 0 -> 5780 bytes
 icons/MVDeepBlue/rewind.png                        |    1 +
 icons/MVDeepBlue/rewind_sel.png                    |  Bin 0 -> 3032 bytes
 icons/MVDeepBlue/sd.png                            |    1 +
 icons/MVDeepBlue/skip.png                          |    1 +
 icons/MVDeepBlue/skip_sel.png                      |  Bin 0 -> 4012 bytes
 icons/MVDeepBlue/text_arrowturn.png                |    1 +
 icons/MVDeepBlue/text_arrowturn_cur.png            |    1 +
 icons/MVDeepBlue/text_arrowturn_sel.png            |    1 +
 icons/MVDeepBlue/text_new.png                      |    1 +
 icons/MVDeepBlue/text_new_cur.png                  |    1 +
 icons/MVDeepBlue/text_new_sel.png                  |    1 +
 icons/MVDeepBlue/text_rec.png                      |    1 +
 icons/MVDeepBlue/text_rec_cur.png                  |    1 +
 icons/MVDeepBlue/text_rec_sel.png                  |    1 +
 icons/MVDeepBlue/text_timer_full.png               |    1 +
 icons/MVDeepBlue/text_timer_full_cur.png           |    1 +
 icons/MVDeepBlue/text_timer_full_sel.png           |    1 +
 icons/MVDeepBlue/text_timer_partial.png            |    1 +
 icons/MVDeepBlue/text_timer_partial_cur.png        |    1 +
 icons/MVDeepBlue/text_timer_partial_sel.png        |    1 +
 icons/MVDeepBlue/text_vps.png                      |    1 +
 icons/MVDeepBlue/text_vps_cur.png                  |    1 +
 icons/MVDeepBlue/text_vps_sel.png                  |    1 +
 icons/MVDeepBlue/timerActive.png                   |    1 +
 icons/MVDeepBlue/timerInactive.png                 |    1 +
 icons/MVDeepBlue/timerRecording.png                |    1 +
 icons/MVDeepBlue/timer_full.png                    |  Bin 0 -> 4783 bytes
 icons/MVDeepBlue/timer_full_cur.png                |  Bin 0 -> 4885 bytes
 icons/MVDeepBlue/timer_partial.png                 |  Bin 0 -> 2376 bytes
 icons/MVDeepBlue/timer_partial_cur.png             |  Bin 0 -> 2189 bytes
 icons/MVDeepBlue/topbar_timer.png                  |    1 +
 icons/MVDeepBlue/topbar_timerconflict_high.png     |    1 +
 icons/MVDeepBlue/topbar_timerconflict_low.png      |    1 +
 icons/MVDeepBlue/tv.png                            |    1 +
 icons/MVDeepBlue/uncrypted.png                     |    1 +
 icons/MVDeepBlue/unknown_asp.png                   |    1 +
 icons/MVDeepBlue/unknown_res.png                   |    1 +
 icons/MVDeepBlue/vps.png                           |  Bin 0 -> 5076 bytes
 icons/MVDeepBlue/vps_cur.png                       |  Bin 0 -> 4956 bytes
 icons/MVFog/1280x720.png                           |    1 +
 icons/MVFog/1440x1080.png                          |    1 +
 icons/MVFog/169.png                                |    1 +
 icons/MVFog/169w.png                               |    1 +
 icons/MVFog/1920x1080.png                          |    1 +
 icons/MVFog/221.png                                |    1 +
 icons/MVFog/352x576.png                            |    1 +
 icons/MVFog/43.png                                 |    1 +
 icons/MVFog/480x576.png                            |    1 +
 icons/MVFog/528x576.png                            |    1 +
 icons/MVFog/544x576.png                            |    1 +
 icons/MVFog/704x576.png                            |    1 +
 icons/MVFog/720x576.png                            |    1 +
 icons/MVFog/960x720.png                            |    1 +
 icons/MVFog/blank.png                              |    1 +
 icons/MVFog/changroup.png                          |  Bin 0 -> 763 bytes
 icons/MVFog/chart1b.png                            |    1 +
 icons/MVFog/chart2b.png                            |    1 +
 icons/MVFog/chart3b.png                            |    1 +
 icons/MVFog/chart4b.png                            |    1 +
 icons/MVFog/chart5b.png                            |    1 +
 icons/MVFog/chart6b.png                            |    1 +
 icons/MVFog/chart7.png                             |    1 +
 icons/MVFog/chart7b.png                            |    1 +
 icons/MVFog/crypted.png                            |    1 +
 icons/MVFog/forward.png                            |    1 +
 icons/MVFog/forward_sel.png                        |  Bin 0 -> 2313 bytes
 icons/MVFog/hd.png                                 |    1 +
 icons/MVFog/message_error.png                      |    1 +
 icons/MVFog/message_info.png                       |    1 +
 icons/MVFog/message_status.png                     |    1 +
 icons/MVFog/message_warning.png                    |    1 +
 icons/MVFog/pause.png                              |    1 +
 icons/MVFog/pause_sel.png                          |  Bin 0 -> 1791 bytes
 icons/MVFog/play.png                               |    1 +
 icons/MVFog/play_sel.png                           |  Bin 0 -> 2532 bytes
 icons/MVFog/prev.png                               |    1 +
 icons/MVFog/prev_sel.png                           |  Bin 0 -> 2828 bytes
 icons/MVFog/radio.png                              |    1 +
 icons/MVFog/recording.png                          |    1 +
 icons/MVFog/recording_cutted.png                   |  Bin 0 -> 2056 bytes
 icons/MVFog/recording_cutted_cur.png               |  Bin 0 -> 2033 bytes
 icons/MVFog/recording_cutted_extra.png             |  Bin 0 -> 2090 bytes
 icons/MVFog/recording_new.png                      |  Bin 0 -> 5148 bytes
 icons/MVFog/recording_new_cur.png                  |  Bin 0 -> 7909 bytes
 icons/MVFog/rewind.png                             |    1 +
 icons/MVFog/rewind_sel.png                         |  Bin 0 -> 2380 bytes
 icons/MVFog/sd.png                                 |    1 +
 icons/MVFog/skip.png                               |    1 +
 icons/MVFog/skip_sel.png                           |  Bin 0 -> 2872 bytes
 icons/MVFog/text_arrowturn.png                     |    1 +
 icons/MVFog/text_arrowturn_cur.png                 |    1 +
 icons/MVFog/text_arrowturn_sel.png                 |    1 +
 icons/MVFog/text_new.png                           |    1 +
 icons/MVFog/text_new_cur.png                       |    1 +
 icons/MVFog/text_new_sel.png                       |    1 +
 icons/MVFog/text_rec.png                           |    1 +
 icons/MVFog/text_rec_cur.png                       |    1 +
 icons/MVFog/text_rec_sel.png                       |    1 +
 icons/MVFog/text_timer_full.png                    |    1 +
 icons/MVFog/text_timer_full_cur.png                |    1 +
 icons/MVFog/text_timer_full_sel.png                |    1 +
 icons/MVFog/text_timer_partial.png                 |    1 +
 icons/MVFog/text_timer_partial_cur.png             |    1 +
 icons/MVFog/text_timer_partial_sel.png             |    1 +
 icons/MVFog/text_vps.png                           |    1 +
 icons/MVFog/text_vps_cur.png                       |    1 +
 icons/MVFog/text_vps_sel.png                       |    1 +
 icons/MVFog/timerActive.png                        |    1 +
 icons/MVFog/timerInactive.png                      |    1 +
 icons/MVFog/timerRecording.png                     |    1 +
 icons/MVFog/timer_full.png                         |  Bin 0 -> 4828 bytes
 icons/MVFog/timer_full_cur.png                     |  Bin 0 -> 4692 bytes
 icons/MVFog/timer_partial.png                      |  Bin 0 -> 2150 bytes
 icons/MVFog/timer_partial_cur.png                  |  Bin 0 -> 2582 bytes
 icons/MVFog/topbar_timer.png                       |    1 +
 icons/MVFog/topbar_timerconflict_high.png          |    1 +
 icons/MVFog/topbar_timerconflict_low.png           |    1 +
 icons/MVFog/tv.png                                 |    1 +
 icons/MVFog/uncrypted.png                          |    1 +
 icons/MVFog/unknown_asp.png                        |    1 +
 icons/MVFog/unknown_res.png                        |    1 +
 icons/MVFog/vps.png                                |  Bin 0 -> 4803 bytes
 icons/MVFog/vps_cur.png                            |  Bin 0 -> 5464 bytes
 icons/MVGrapefruit/1280x720.png                    |    1 +
 icons/MVGrapefruit/1440x1080.png                   |    1 +
 icons/MVGrapefruit/169.png                         |    1 +
 icons/MVGrapefruit/169w.png                        |    1 +
 icons/MVGrapefruit/1920x1080.png                   |    1 +
 icons/MVGrapefruit/221.png                         |    1 +
 icons/MVGrapefruit/352x576.png                     |    1 +
 icons/MVGrapefruit/43.png                          |    1 +
 icons/MVGrapefruit/480x576.png                     |    1 +
 icons/MVGrapefruit/528x576.png                     |    1 +
 icons/MVGrapefruit/544x576.png                     |    1 +
 icons/MVGrapefruit/704x576.png                     |    1 +
 icons/MVGrapefruit/720x576.png                     |    1 +
 icons/MVGrapefruit/960x720.png                     |    1 +
 icons/MVGrapefruit/blank.png                       |    1 +
 icons/MVGrapefruit/changroup.png                   |  Bin 0 -> 746 bytes
 icons/MVGrapefruit/chart1b.png                     |    1 +
 icons/MVGrapefruit/chart2b.png                     |    1 +
 icons/MVGrapefruit/chart3b.png                     |    1 +
 icons/MVGrapefruit/chart4b.png                     |    1 +
 icons/MVGrapefruit/chart5b.png                     |    1 +
 icons/MVGrapefruit/chart6b.png                     |    1 +
 icons/MVGrapefruit/chart7.png                      |    1 +
 icons/MVGrapefruit/chart7b.png                     |    1 +
 icons/MVGrapefruit/crypted.png                     |    1 +
 icons/MVGrapefruit/forward.png                     |    1 +
 icons/MVGrapefruit/forward_sel.png                 |  Bin 0 -> 2995 bytes
 icons/MVGrapefruit/hd.png                          |    1 +
 icons/MVGrapefruit/message_error.png               |    1 +
 icons/MVGrapefruit/message_info.png                |    1 +
 icons/MVGrapefruit/message_status.png              |    1 +
 icons/MVGrapefruit/message_warning.png             |    1 +
 icons/MVGrapefruit/pause.png                       |    1 +
 icons/MVGrapefruit/pause_sel.png                   |  Bin 0 -> 2758 bytes
 icons/MVGrapefruit/play.png                        |    1 +
 icons/MVGrapefruit/play_sel.png                    |  Bin 0 -> 3665 bytes
 icons/MVGrapefruit/prev.png                        |    1 +
 icons/MVGrapefruit/prev_sel.png                    |  Bin 0 -> 4187 bytes
 icons/MVGrapefruit/radio.png                       |    1 +
 icons/MVGrapefruit/recording.png                   |    1 +
 icons/MVGrapefruit/recording_cutted.png            |  Bin 0 -> 2066 bytes
 icons/MVGrapefruit/recording_cutted_cur.png        |    1 +
 icons/MVGrapefruit/recording_cutted_extra.png      |  Bin 0 -> 2134 bytes
 icons/MVGrapefruit/recording_new.png               |  Bin 0 -> 7504 bytes
 icons/MVGrapefruit/recording_new_cur.png           |    1 +
 icons/MVGrapefruit/rewind.png                      |    1 +
 icons/MVGrapefruit/rewind_sel.png                  |  Bin 0 -> 3105 bytes
 icons/MVGrapefruit/sd.png                          |    1 +
 icons/MVGrapefruit/skip.png                        |    1 +
 icons/MVGrapefruit/skip_sel.png                    |  Bin 0 -> 4140 bytes
 icons/MVGrapefruit/text_arrowturn.png              |    1 +
 icons/MVGrapefruit/text_arrowturn_cur.png          |    1 +
 icons/MVGrapefruit/text_arrowturn_sel.png          |    1 +
 icons/MVGrapefruit/text_new.png                    |    1 +
 icons/MVGrapefruit/text_new_cur.png                |    1 +
 icons/MVGrapefruit/text_new_sel.png                |    1 +
 icons/MVGrapefruit/text_rec.png                    |    1 +
 icons/MVGrapefruit/text_rec_cur.png                |    1 +
 icons/MVGrapefruit/text_rec_sel.png                |    1 +
 icons/MVGrapefruit/text_timer_full.png             |    1 +
 icons/MVGrapefruit/text_timer_full_cur.png         |    1 +
 icons/MVGrapefruit/text_timer_full_sel.png         |    1 +
 icons/MVGrapefruit/text_timer_partial.png          |    1 +
 icons/MVGrapefruit/text_timer_partial_cur.png      |    1 +
 icons/MVGrapefruit/text_timer_partial_sel.png      |    1 +
 icons/MVGrapefruit/text_vps.png                    |    1 +
 icons/MVGrapefruit/text_vps_cur.png                |    1 +
 icons/MVGrapefruit/text_vps_sel.png                |    1 +
 icons/MVGrapefruit/timerActive.png                 |    1 +
 icons/MVGrapefruit/timerInactive.png               |    1 +
 icons/MVGrapefruit/timerRecording.png              |    1 +
 icons/MVGrapefruit/timer_full.png                  |  Bin 0 -> 4796 bytes
 icons/MVGrapefruit/timer_full_cur.png              |    1 +
 icons/MVGrapefruit/timer_partial.png               |  Bin 0 -> 2469 bytes
 icons/MVGrapefruit/timer_partial_cur.png           |    1 +
 icons/MVGrapefruit/topbar_timer.png                |    1 +
 icons/MVGrapefruit/topbar_timerconflict_high.png   |    1 +
 icons/MVGrapefruit/topbar_timerconflict_low.png    |    1 +
 icons/MVGrapefruit/tv.png                          |    1 +
 icons/MVGrapefruit/uncrypted.png                   |    1 +
 icons/MVGrapefruit/unknown_asp.png                 |    1 +
 icons/MVGrapefruit/unknown_res.png                 |    1 +
 icons/MVGrapefruit/vps.png                         |  Bin 0 -> 5264 bytes
 icons/MVGrapefruit/vps_cur.png                     |    1 +
 icons/MVGreen/1280x720.png                         |    1 +
 icons/MVGreen/1440x1080.png                        |    1 +
 icons/MVGreen/169.png                              |    1 +
 icons/MVGreen/169w.png                             |    1 +
 icons/MVGreen/1920x1080.png                        |    1 +
 icons/MVGreen/221.png                              |    1 +
 icons/MVGreen/352x576.png                          |    1 +
 icons/MVGreen/43.png                               |    1 +
 icons/MVGreen/480x576.png                          |    1 +
 icons/MVGreen/528x576.png                          |    1 +
 icons/MVGreen/544x576.png                          |    1 +
 icons/MVGreen/704x576.png                          |    1 +
 icons/MVGreen/720x576.png                          |    1 +
 icons/MVGreen/960x720.png                          |    1 +
 icons/MVGreen/blank.png                            |    1 +
 icons/MVGreen/changroup.png                        |  Bin 0 -> 742 bytes
 icons/MVGreen/chart1b.png                          |    1 +
 icons/MVGreen/chart2b.png                          |    1 +
 icons/MVGreen/chart3b.png                          |    1 +
 icons/MVGreen/chart4b.png                          |    1 +
 icons/MVGreen/chart5b.png                          |    1 +
 icons/MVGreen/chart6b.png                          |    1 +
 icons/MVGreen/chart7.png                           |    1 +
 icons/MVGreen/chart7b.png                          |    1 +
 icons/MVGreen/crypted.png                          |    1 +
 icons/MVGreen/forward.png                          |    1 +
 icons/MVGreen/forward_sel.png                      |  Bin 0 -> 2428 bytes
 icons/MVGreen/hd.png                               |    1 +
 icons/MVGreen/message_error.png                    |    1 +
 icons/MVGreen/message_info.png                     |    1 +
 icons/MVGreen/message_status.png                   |    1 +
 icons/MVGreen/message_warning.png                  |    1 +
 icons/MVGreen/pause.png                            |    1 +
 icons/MVGreen/pause_sel.png                        |  Bin 0 -> 2210 bytes
 icons/MVGreen/play.png                             |    1 +
 icons/MVGreen/play_sel.png                         |  Bin 0 -> 2844 bytes
 icons/MVGreen/prev.png                             |    1 +
 icons/MVGreen/prev_sel.png                         |  Bin 0 -> 3202 bytes
 icons/MVGreen/radio.png                            |    1 +
 icons/MVGreen/recording.png                        |    1 +
 icons/MVGreen/recording_cutted.png                 |  Bin 0 -> 1972 bytes
 icons/MVGreen/recording_cutted_cur.png             |    1 +
 icons/MVGreen/recording_cutted_extra.png           |  Bin 0 -> 2004 bytes
 icons/MVGreen/recording_new.png                    |  Bin 0 -> 6017 bytes
 icons/MVGreen/recording_new_cur.png                |    1 +
 icons/MVGreen/rewind.png                           |    1 +
 icons/MVGreen/rewind_sel.png                       |  Bin 0 -> 2490 bytes
 icons/MVGreen/sd.png                               |    1 +
 icons/MVGreen/skip.png                             |    1 +
 icons/MVGreen/skip_sel.png                         |  Bin 0 -> 3260 bytes
 icons/MVGreen/text_arrowturn.png                   |    1 +
 icons/MVGreen/text_arrowturn_cur.png               |    1 +
 icons/MVGreen/text_arrowturn_sel.png               |    1 +
 icons/MVGreen/text_new.png                         |    1 +
 icons/MVGreen/text_new_cur.png                     |    1 +
 icons/MVGreen/text_new_sel.png                     |    1 +
 icons/MVGreen/text_rec.png                         |    1 +
 icons/MVGreen/text_rec_cur.png                     |    1 +
 icons/MVGreen/text_rec_sel.png                     |    1 +
 icons/MVGreen/text_timer_full.png                  |    1 +
 icons/MVGreen/text_timer_full_cur.png              |    1 +
 icons/MVGreen/text_timer_full_sel.png              |    1 +
 icons/MVGreen/text_timer_partial.png               |    1 +
 icons/MVGreen/text_timer_partial_cur.png           |    1 +
 icons/MVGreen/text_timer_partial_sel.png           |    1 +
 icons/MVGreen/text_vps.png                         |    1 +
 icons/MVGreen/text_vps_cur.png                     |    1 +
 icons/MVGreen/text_vps_sel.png                     |    1 +
 icons/MVGreen/timerActive.png                      |    1 +
 icons/MVGreen/timerInactive.png                    |    1 +
 icons/MVGreen/timerRecording.png                   |    1 +
 icons/MVGreen/timer_full.png                       |  Bin 0 -> 4625 bytes
 icons/MVGreen/timer_full_cur.png                   |    1 +
 icons/MVGreen/timer_partial.png                    |  Bin 0 -> 2100 bytes
 icons/MVGreen/timer_partial_cur.png                |    1 +
 icons/MVGreen/topbar_timer.png                     |    1 +
 icons/MVGreen/topbar_timerconflict_high.png        |    1 +
 icons/MVGreen/topbar_timerconflict_low.png         |    1 +
 icons/MVGreen/tv.png                               |    1 +
 icons/MVGreen/uncrypted.png                        |    1 +
 icons/MVGreen/unknown_asp.png                      |    1 +
 icons/MVGreen/unknown_res.png                      |    1 +
 icons/MVGreen/vps.png                              |  Bin 0 -> 4651 bytes
 icons/MVGreen/vps_cur.png                          |    1 +
 icons/MVGreen2/1280x720.png                        |    1 +
 icons/MVGreen2/1440x1080.png                       |    1 +
 icons/MVGreen2/169.png                             |    1 +
 icons/MVGreen2/169w.png                            |    1 +
 icons/MVGreen2/1920x1080.png                       |    1 +
 icons/MVGreen2/221.png                             |    1 +
 icons/MVGreen2/352x576.png                         |    1 +
 icons/MVGreen2/43.png                              |    1 +
 icons/MVGreen2/480x576.png                         |    1 +
 icons/MVGreen2/528x576.png                         |    1 +
 icons/MVGreen2/544x576.png                         |    1 +
 icons/MVGreen2/704x576.png                         |    1 +
 icons/MVGreen2/720x576.png                         |    1 +
 icons/MVGreen2/960x720.png                         |    1 +
 icons/MVGreen2/blank.png                           |    1 +
 icons/MVGreen2/changroup.png                       |  Bin 0 -> 742 bytes
 icons/MVGreen2/chart1b.png                         |    1 +
 icons/MVGreen2/chart2b.png                         |    1 +
 icons/MVGreen2/chart3b.png                         |    1 +
 icons/MVGreen2/chart4b.png                         |    1 +
 icons/MVGreen2/chart5b.png                         |    1 +
 icons/MVGreen2/chart6b.png                         |    1 +
 icons/MVGreen2/chart7.png                          |    1 +
 icons/MVGreen2/chart7b.png                         |    1 +
 icons/MVGreen2/crypted.png                         |    1 +
 icons/MVGreen2/forward.png                         |    1 +
 icons/MVGreen2/forward_sel.png                     |  Bin 0 -> 2428 bytes
 icons/MVGreen2/hd.png                              |    1 +
 icons/MVGreen2/message_error.png                   |    1 +
 icons/MVGreen2/message_info.png                    |    1 +
 icons/MVGreen2/message_status.png                  |    1 +
 icons/MVGreen2/message_warning.png                 |    1 +
 icons/MVGreen2/pause.png                           |    1 +
 icons/MVGreen2/pause_sel.png                       |  Bin 0 -> 2210 bytes
 icons/MVGreen2/play.png                            |    1 +
 icons/MVGreen2/play_sel.png                        |  Bin 0 -> 2844 bytes
 icons/MVGreen2/prev.png                            |    1 +
 icons/MVGreen2/prev_sel.png                        |  Bin 0 -> 3202 bytes
 icons/MVGreen2/radio.png                           |    1 +
 icons/MVGreen2/recording.png                       |    1 +
 icons/MVGreen2/recording_cutted.png                |  Bin 0 -> 1972 bytes
 icons/MVGreen2/recording_cutted_cur.png            |  Bin 0 -> 2080 bytes
 icons/MVGreen2/recording_cutted_extra.png          |  Bin 0 -> 2004 bytes
 icons/MVGreen2/recording_new.png                   |  Bin 0 -> 6017 bytes
 icons/MVGreen2/recording_new_cur.png               |  Bin 0 -> 5806 bytes
 icons/MVGreen2/rewind.png                          |    1 +
 icons/MVGreen2/rewind_sel.png                      |  Bin 0 -> 2490 bytes
 icons/MVGreen2/sd.png                              |    1 +
 icons/MVGreen2/skip.png                            |    1 +
 icons/MVGreen2/skip_sel.png                        |  Bin 0 -> 3260 bytes
 icons/MVGreen2/text_arrowturn.png                  |    1 +
 icons/MVGreen2/text_arrowturn_cur.png              |    1 +
 icons/MVGreen2/text_arrowturn_sel.png              |    1 +
 icons/MVGreen2/text_new.png                        |    1 +
 icons/MVGreen2/text_new_cur.png                    |    1 +
 icons/MVGreen2/text_new_sel.png                    |    1 +
 icons/MVGreen2/text_rec.png                        |    1 +
 icons/MVGreen2/text_rec_cur.png                    |    1 +
 icons/MVGreen2/text_rec_sel.png                    |    1 +
 icons/MVGreen2/text_timer_full.png                 |    1 +
 icons/MVGreen2/text_timer_full_cur.png             |    1 +
 icons/MVGreen2/text_timer_full_sel.png             |    1 +
 icons/MVGreen2/text_timer_partial.png              |    1 +
 icons/MVGreen2/text_timer_partial_cur.png          |    1 +
 icons/MVGreen2/text_timer_partial_sel.png          |    1 +
 icons/MVGreen2/text_vps.png                        |    1 +
 icons/MVGreen2/text_vps_cur.png                    |    1 +
 icons/MVGreen2/text_vps_sel.png                    |    1 +
 icons/MVGreen2/timerActive.png                     |    1 +
 icons/MVGreen2/timerInactive.png                   |    1 +
 icons/MVGreen2/timerRecording.png                  |    1 +
 icons/MVGreen2/timer_full.png                      |  Bin 0 -> 4625 bytes
 icons/MVGreen2/timer_full_cur.png                  |  Bin 0 -> 4864 bytes
 icons/MVGreen2/timer_partial.png                   |  Bin 0 -> 2100 bytes
 icons/MVGreen2/timer_partial_cur.png               |  Bin 0 -> 2218 bytes
 icons/MVGreen2/topbar_timer.png                    |    1 +
 icons/MVGreen2/topbar_timerconflict_high.png       |    1 +
 icons/MVGreen2/topbar_timerconflict_low.png        |    1 +
 icons/MVGreen2/tv.png                              |    1 +
 icons/MVGreen2/uncrypted.png                       |    1 +
 icons/MVGreen2/unknown_asp.png                     |    1 +
 icons/MVGreen2/unknown_res.png                     |    1 +
 icons/MVGreen2/vps.png                             |  Bin 0 -> 4651 bytes
 icons/MVGreen2/vps_cur.png                         |  Bin 0 -> 4920 bytes
 icons/MVGrey/1280x720.png                          |    1 +
 icons/MVGrey/1440x1080.png                         |    1 +
 icons/MVGrey/169.png                               |    1 +
 icons/MVGrey/169w.png                              |    1 +
 icons/MVGrey/1920x1080.png                         |    1 +
 icons/MVGrey/221.png                               |    1 +
 icons/MVGrey/352x576.png                           |    1 +
 icons/MVGrey/43.png                                |    1 +
 icons/MVGrey/480x576.png                           |    1 +
 icons/MVGrey/528x576.png                           |    1 +
 icons/MVGrey/544x576.png                           |    1 +
 icons/MVGrey/704x576.png                           |    1 +
 icons/MVGrey/720x576.png                           |    1 +
 icons/MVGrey/960x720.png                           |    1 +
 icons/MVGrey/blank.png                             |    1 +
 icons/MVGrey/changroup.png                         |  Bin 0 -> 764 bytes
 icons/MVGrey/chart1b.png                           |    1 +
 icons/MVGrey/chart2b.png                           |    1 +
 icons/MVGrey/chart3b.png                           |    1 +
 icons/MVGrey/chart4b.png                           |    1 +
 icons/MVGrey/chart5b.png                           |    1 +
 icons/MVGrey/chart6b.png                           |    1 +
 icons/MVGrey/chart7.png                            |    1 +
 icons/MVGrey/chart7b.png                           |    1 +
 icons/MVGrey/crypted.png                           |    1 +
 icons/MVGrey/forward.png                           |    1 +
 icons/MVGrey/forward_sel.png                       |  Bin 0 -> 3180 bytes
 icons/MVGrey/hd.png                                |    1 +
 icons/MVGrey/message_error.png                     |    1 +
 icons/MVGrey/message_info.png                      |    1 +
 icons/MVGrey/message_status.png                    |    1 +
 icons/MVGrey/message_warning.png                   |    1 +
 icons/MVGrey/pause.png                             |    1 +
 icons/MVGrey/pause_sel.png                         |  Bin 0 -> 2901 bytes
 icons/MVGrey/play.png                              |    1 +
 icons/MVGrey/play_sel.png                          |  Bin 0 -> 3847 bytes
 icons/MVGrey/prev.png                              |    1 +
 icons/MVGrey/prev_sel.png                          |  Bin 0 -> 4513 bytes
 icons/MVGrey/radio.png                             |    1 +
 icons/MVGrey/recording.png                         |    1 +
 icons/MVGrey/recording_cutted.png                  |  Bin 0 -> 2068 bytes
 icons/MVGrey/recording_cutted_cur.png              |    1 +
 icons/MVGrey/recording_cutted_extra.png            |  Bin 0 -> 2138 bytes
 icons/MVGrey/recording_new.png                     |  Bin 0 -> 7733 bytes
 icons/MVGrey/recording_new_cur.png                 |    1 +
 icons/MVGrey/rewind.png                            |    1 +
 icons/MVGrey/rewind_sel.png                        |  Bin 0 -> 3254 bytes
 icons/MVGrey/sd.png                                |    1 +
 icons/MVGrey/skip.png                              |    1 +
 icons/MVGrey/skip_sel.png                          |  Bin 0 -> 4454 bytes
 icons/MVGrey/text_arrowturn.png                    |    1 +
 icons/MVGrey/text_arrowturn_cur.png                |    1 +
 icons/MVGrey/text_arrowturn_sel.png                |    1 +
 icons/MVGrey/text_new.png                          |    1 +
 icons/MVGrey/text_new_cur.png                      |    1 +
 icons/MVGrey/text_new_sel.png                      |    1 +
 icons/MVGrey/text_rec.png                          |    1 +
 icons/MVGrey/text_rec_cur.png                      |    1 +
 icons/MVGrey/text_rec_sel.png                      |    1 +
 icons/MVGrey/text_timer_full.png                   |    1 +
 icons/MVGrey/text_timer_full_cur.png               |    1 +
 icons/MVGrey/text_timer_full_sel.png               |    1 +
 icons/MVGrey/text_timer_partial.png                |    1 +
 icons/MVGrey/text_timer_partial_cur.png            |    1 +
 icons/MVGrey/text_timer_partial_sel.png            |    1 +
 icons/MVGrey/text_vps.png                          |    1 +
 icons/MVGrey/text_vps_cur.png                      |    1 +
 icons/MVGrey/text_vps_sel.png                      |    1 +
 icons/MVGrey/timerActive.png                       |    1 +
 icons/MVGrey/timerInactive.png                     |    1 +
 icons/MVGrey/timerRecording.png                    |    1 +
 icons/MVGrey/timer_full.png                        |  Bin 0 -> 4877 bytes
 icons/MVGrey/timer_full_cur.png                    |    1 +
 icons/MVGrey/timer_partial.png                     |  Bin 0 -> 2540 bytes
 icons/MVGrey/timer_partial_cur.png                 |    1 +
 icons/MVGrey/topbar_timer.png                      |    1 +
 icons/MVGrey/topbar_timerconflict_high.png         |    1 +
 icons/MVGrey/topbar_timerconflict_low.png          |    1 +
 icons/MVGrey/tv.png                                |    1 +
 icons/MVGrey/uncrypted.png                         |    1 +
 icons/MVGrey/unknown_asp.png                       |    1 +
 icons/MVGrey/unknown_res.png                       |    1 +
 icons/MVGrey/vps.png                               |  Bin 0 -> 5397 bytes
 icons/MVGrey/vps_cur.png                           |    1 +
 icons/MVHelloKitty/1280x720.png                    |    1 +
 icons/MVHelloKitty/1440x1080.png                   |    1 +
 icons/MVHelloKitty/169.png                         |    1 +
 icons/MVHelloKitty/169w.png                        |    1 +
 icons/MVHelloKitty/1920x1080.png                   |    1 +
 icons/MVHelloKitty/221.png                         |    1 +
 icons/MVHelloKitty/352x576.png                     |    1 +
 icons/MVHelloKitty/43.png                          |    1 +
 icons/MVHelloKitty/480x576.png                     |    1 +
 icons/MVHelloKitty/528x576.png                     |    1 +
 icons/MVHelloKitty/544x576.png                     |    1 +
 icons/MVHelloKitty/704x576.png                     |    1 +
 icons/MVHelloKitty/720x576.png                     |    1 +
 icons/MVHelloKitty/960x720.png                     |    1 +
 icons/MVHelloKitty/blank.png                       |    1 +
 icons/MVHelloKitty/changroup.png                   |  Bin 0 -> 750 bytes
 icons/MVHelloKitty/chart1b.png                     |    1 +
 icons/MVHelloKitty/chart2b.png                     |    1 +
 icons/MVHelloKitty/chart3b.png                     |    1 +
 icons/MVHelloKitty/chart4b.png                     |    1 +
 icons/MVHelloKitty/chart5b.png                     |    1 +
 icons/MVHelloKitty/chart6b.png                     |    1 +
 icons/MVHelloKitty/chart7.png                      |    1 +
 icons/MVHelloKitty/chart7b.png                     |    1 +
 icons/MVHelloKitty/crypted.png                     |    1 +
 icons/MVHelloKitty/forward.png                     |    1 +
 icons/MVHelloKitty/forward_sel.png                 |  Bin 0 -> 3392 bytes
 icons/MVHelloKitty/hd.png                          |    1 +
 icons/MVHelloKitty/message_error.png               |    1 +
 icons/MVHelloKitty/message_info.png                |    1 +
 icons/MVHelloKitty/message_status.png              |    1 +
 icons/MVHelloKitty/message_warning.png             |    1 +
 icons/MVHelloKitty/pause.png                       |    1 +
 icons/MVHelloKitty/pause_sel.png                   |  Bin 0 -> 3332 bytes
 icons/MVHelloKitty/play.png                        |    1 +
 icons/MVHelloKitty/play_sel.png                    |  Bin 0 -> 4204 bytes
 icons/MVHelloKitty/prev.png                        |    1 +
 icons/MVHelloKitty/prev_sel.png                    |  Bin 0 -> 5088 bytes
 icons/MVHelloKitty/radio.png                       |    1 +
 icons/MVHelloKitty/recording.png                   |    1 +
 icons/MVHelloKitty/recording_cutted.png            |  Bin 0 -> 2070 bytes
 icons/MVHelloKitty/recording_cutted_cur.png        |    1 +
 icons/MVHelloKitty/recording_cutted_extra.png      |  Bin 0 -> 2132 bytes
 icons/MVHelloKitty/recording_new.png               |  Bin 0 -> 8359 bytes
 icons/MVHelloKitty/recording_new_cur.png           |    1 +
 icons/MVHelloKitty/rewind.png                      |    1 +
 icons/MVHelloKitty/rewind_sel.png                  |  Bin 0 -> 3551 bytes
 icons/MVHelloKitty/sd.png                          |    1 +
 icons/MVHelloKitty/skip.png                        |    1 +
 icons/MVHelloKitty/skip_sel.png                    |  Bin 0 -> 4983 bytes
 icons/MVHelloKitty/text_arrowturn.png              |    1 +
 icons/MVHelloKitty/text_arrowturn_cur.png          |    1 +
 icons/MVHelloKitty/text_arrowturn_sel.png          |    1 +
 icons/MVHelloKitty/text_new.png                    |    1 +
 icons/MVHelloKitty/text_new_cur.png                |    1 +
 icons/MVHelloKitty/text_new_sel.png                |    1 +
 icons/MVHelloKitty/text_rec.png                    |    1 +
 icons/MVHelloKitty/text_rec_cur.png                |    1 +
 icons/MVHelloKitty/text_rec_sel.png                |    1 +
 icons/MVHelloKitty/text_timer_full.png             |    1 +
 icons/MVHelloKitty/text_timer_full_cur.png         |    1 +
 icons/MVHelloKitty/text_timer_full_sel.png         |    1 +
 icons/MVHelloKitty/text_timer_partial.png          |    1 +
 icons/MVHelloKitty/text_timer_partial_cur.png      |    1 +
 icons/MVHelloKitty/text_timer_partial_sel.png      |    1 +
 icons/MVHelloKitty/text_vps.png                    |    1 +
 icons/MVHelloKitty/text_vps_cur.png                |    1 +
 icons/MVHelloKitty/text_vps_sel.png                |    1 +
 icons/MVHelloKitty/timerActive.png                 |    1 +
 icons/MVHelloKitty/timerInactive.png               |    1 +
 icons/MVHelloKitty/timerRecording.png              |    1 +
 icons/MVHelloKitty/timer_full.png                  |  Bin 0 -> 4800 bytes
 icons/MVHelloKitty/timer_full_cur.png              |    1 +
 icons/MVHelloKitty/timer_partial.png               |  Bin 0 -> 2611 bytes
 icons/MVHelloKitty/timer_partial_cur.png           |    1 +
 icons/MVHelloKitty/topbar_timer.png                |    1 +
 icons/MVHelloKitty/topbar_timerconflict_high.png   |    1 +
 icons/MVHelloKitty/topbar_timerconflict_low.png    |    1 +
 icons/MVHelloKitty/tv.png                          |    1 +
 icons/MVHelloKitty/uncrypted.png                   |    1 +
 icons/MVHelloKitty/unknown_asp.png                 |    1 +
 icons/MVHelloKitty/unknown_res.png                 |    1 +
 icons/MVHelloKitty/vps.png                         |  Bin 0 -> 5504 bytes
 icons/MVHelloKitty/vps_cur.png                     |    1 +
 icons/MVHelloKitty2/1280x720.png                   |    1 +
 icons/MVHelloKitty2/1440x1080.png                  |    1 +
 icons/MVHelloKitty2/169.png                        |    1 +
 icons/MVHelloKitty2/169w.png                       |    1 +
 icons/MVHelloKitty2/1920x1080.png                  |    1 +
 icons/MVHelloKitty2/221.png                        |    1 +
 icons/MVHelloKitty2/352x576.png                    |    1 +
 icons/MVHelloKitty2/43.png                         |    1 +
 icons/MVHelloKitty2/480x576.png                    |    1 +
 icons/MVHelloKitty2/528x576.png                    |    1 +
 icons/MVHelloKitty2/544x576.png                    |    1 +
 icons/MVHelloKitty2/704x576.png                    |    1 +
 icons/MVHelloKitty2/720x576.png                    |    1 +
 icons/MVHelloKitty2/960x720.png                    |    1 +
 icons/MVHelloKitty2/blank.png                      |    1 +
 icons/MVHelloKitty2/changroup.png                  |  Bin 0 -> 750 bytes
 icons/MVHelloKitty2/chart1b.png                    |    1 +
 icons/MVHelloKitty2/chart2b.png                    |    1 +
 icons/MVHelloKitty2/chart3b.png                    |    1 +
 icons/MVHelloKitty2/chart4b.png                    |    1 +
 icons/MVHelloKitty2/chart5b.png                    |    1 +
 icons/MVHelloKitty2/chart6b.png                    |    1 +
 icons/MVHelloKitty2/chart7.png                     |    1 +
 icons/MVHelloKitty2/chart7b.png                    |    1 +
 icons/MVHelloKitty2/crypted.png                    |    1 +
 icons/MVHelloKitty2/forward.png                    |    1 +
 icons/MVHelloKitty2/forward_sel.png                |  Bin 0 -> 3392 bytes
 icons/MVHelloKitty2/hd.png                         |    1 +
 icons/MVHelloKitty2/message_error.png              |    1 +
 icons/MVHelloKitty2/message_info.png               |    1 +
 icons/MVHelloKitty2/message_status.png             |    1 +
 icons/MVHelloKitty2/message_warning.png            |    1 +
 icons/MVHelloKitty2/pause.png                      |    1 +
 icons/MVHelloKitty2/pause_sel.png                  |  Bin 0 -> 3332 bytes
 icons/MVHelloKitty2/play.png                       |    1 +
 icons/MVHelloKitty2/play_sel.png                   |  Bin 0 -> 4204 bytes
 icons/MVHelloKitty2/prev.png                       |    1 +
 icons/MVHelloKitty2/prev_sel.png                   |  Bin 0 -> 5088 bytes
 icons/MVHelloKitty2/radio.png                      |    1 +
 icons/MVHelloKitty2/recording.png                  |    1 +
 icons/MVHelloKitty2/recording_cutted.png           |  Bin 0 -> 2070 bytes
 icons/MVHelloKitty2/recording_cutted_cur.png       |  Bin 0 -> 2047 bytes
 icons/MVHelloKitty2/recording_cutted_extra.png     |  Bin 0 -> 2132 bytes
 icons/MVHelloKitty2/recording_new.png              |  Bin 0 -> 8359 bytes
 icons/MVHelloKitty2/recording_new_cur.png          |  Bin 0 -> 8339 bytes
 icons/MVHelloKitty2/rewind.png                     |    1 +
 icons/MVHelloKitty2/rewind_sel.png                 |  Bin 0 -> 3551 bytes
 icons/MVHelloKitty2/sd.png                         |    1 +
 icons/MVHelloKitty2/skip.png                       |    1 +
 icons/MVHelloKitty2/skip_sel.png                   |  Bin 0 -> 4983 bytes
 icons/MVHelloKitty2/text_arrowturn.png             |    1 +
 icons/MVHelloKitty2/text_arrowturn_cur.png         |    1 +
 icons/MVHelloKitty2/text_arrowturn_sel.png         |    1 +
 icons/MVHelloKitty2/text_new.png                   |    1 +
 icons/MVHelloKitty2/text_new_cur.png               |    1 +
 icons/MVHelloKitty2/text_new_sel.png               |    1 +
 icons/MVHelloKitty2/text_rec.png                   |    1 +
 icons/MVHelloKitty2/text_rec_cur.png               |    1 +
 icons/MVHelloKitty2/text_rec_sel.png               |    1 +
 icons/MVHelloKitty2/text_timer_full.png            |    1 +
 icons/MVHelloKitty2/text_timer_full_cur.png        |    1 +
 icons/MVHelloKitty2/text_timer_full_sel.png        |    1 +
 icons/MVHelloKitty2/text_timer_partial.png         |    1 +
 icons/MVHelloKitty2/text_timer_partial_cur.png     |    1 +
 icons/MVHelloKitty2/text_timer_partial_sel.png     |    1 +
 icons/MVHelloKitty2/text_vps.png                   |    1 +
 icons/MVHelloKitty2/text_vps_cur.png               |    1 +
 icons/MVHelloKitty2/text_vps_sel.png               |    1 +
 icons/MVHelloKitty2/timerActive.png                |    1 +
 icons/MVHelloKitty2/timerInactive.png              |    1 +
 icons/MVHelloKitty2/timerRecording.png             |    1 +
 icons/MVHelloKitty2/timer_full.png                 |  Bin 0 -> 4800 bytes
 icons/MVHelloKitty2/timer_full_cur.png             |  Bin 0 -> 4778 bytes
 icons/MVHelloKitty2/timer_partial.png              |  Bin 0 -> 2611 bytes
 icons/MVHelloKitty2/timer_partial_cur.png          |  Bin 0 -> 2625 bytes
 icons/MVHelloKitty2/topbar_timer.png               |    1 +
 icons/MVHelloKitty2/topbar_timerconflict_high.png  |    1 +
 icons/MVHelloKitty2/topbar_timerconflict_low.png   |    1 +
 icons/MVHelloKitty2/tv.png                         |    1 +
 icons/MVHelloKitty2/uncrypted.png                  |    1 +
 icons/MVHelloKitty2/unknown_asp.png                |    1 +
 icons/MVHelloKitty2/unknown_res.png                |    1 +
 icons/MVHelloKitty2/vps.png                        |  Bin 0 -> 5504 bytes
 icons/MVHelloKitty2/vps_cur.png                    |  Bin 0 -> 5507 bytes
 icons/MVIndigo/1280x720.png                        |    1 +
 icons/MVIndigo/1440x1080.png                       |    1 +
 icons/MVIndigo/169.png                             |    1 +
 icons/MVIndigo/169w.png                            |    1 +
 icons/MVIndigo/1920x1080.png                       |    1 +
 icons/MVIndigo/221.png                             |    1 +
 icons/MVIndigo/352x576.png                         |    1 +
 icons/MVIndigo/43.png                              |    1 +
 icons/MVIndigo/480x576.png                         |    1 +
 icons/MVIndigo/528x576.png                         |    1 +
 icons/MVIndigo/544x576.png                         |    1 +
 icons/MVIndigo/704x576.png                         |    1 +
 icons/MVIndigo/720x576.png                         |    1 +
 icons/MVIndigo/960x720.png                         |    1 +
 icons/MVIndigo/blank.png                           |    1 +
 icons/MVIndigo/changroup.png                       |  Bin 0 -> 750 bytes
 icons/MVIndigo/chart1b.png                         |    1 +
 icons/MVIndigo/chart2b.png                         |    1 +
 icons/MVIndigo/chart3b.png                         |    1 +
 icons/MVIndigo/chart4b.png                         |    1 +
 icons/MVIndigo/chart5b.png                         |    1 +
 icons/MVIndigo/chart6b.png                         |    1 +
 icons/MVIndigo/chart7.png                          |    1 +
 icons/MVIndigo/chart7b.png                         |    1 +
 icons/MVIndigo/crypted.png                         |    1 +
 icons/MVIndigo/forward.png                         |    1 +
 icons/MVIndigo/forward_sel.png                     |  Bin 0 -> 3115 bytes
 icons/MVIndigo/hd.png                              |    1 +
 icons/MVIndigo/message_error.png                   |    1 +
 icons/MVIndigo/message_info.png                    |    1 +
 icons/MVIndigo/message_status.png                  |    1 +
 icons/MVIndigo/message_warning.png                 |    1 +
 icons/MVIndigo/pause.png                           |    1 +
 icons/MVIndigo/pause_sel.png                       |  Bin 0 -> 2816 bytes
 icons/MVIndigo/play.png                            |    1 +
 icons/MVIndigo/play_sel.png                        |  Bin 0 -> 3792 bytes
 icons/MVIndigo/prev.png                            |    1 +
 icons/MVIndigo/prev_sel.png                        |  Bin 0 -> 4377 bytes
 icons/MVIndigo/radio.png                           |    1 +
 icons/MVIndigo/recording.png                       |    1 +
 icons/MVIndigo/recording_cutted.png                |  Bin 0 -> 2067 bytes
 icons/MVIndigo/recording_cutted_cur.png            |    1 +
 icons/MVIndigo/recording_cutted_extra.png          |  Bin 0 -> 2139 bytes
 icons/MVIndigo/recording_new.png                   |  Bin 0 -> 7708 bytes
 icons/MVIndigo/recording_new_cur.png               |    1 +
 icons/MVIndigo/rewind.png                          |    1 +
 icons/MVIndigo/rewind_sel.png                      |  Bin 0 -> 3231 bytes
 icons/MVIndigo/sd.png                              |    1 +
 icons/MVIndigo/skip.png                            |    1 +
 icons/MVIndigo/skip_sel.png                        |  Bin 0 -> 4331 bytes
 icons/MVIndigo/text_arrowturn.png                  |    1 +
 icons/MVIndigo/text_arrowturn_cur.png              |    1 +
 icons/MVIndigo/text_arrowturn_sel.png              |    1 +
 icons/MVIndigo/text_new.png                        |    1 +
 icons/MVIndigo/text_new_cur.png                    |    1 +
 icons/MVIndigo/text_new_sel.png                    |    1 +
 icons/MVIndigo/text_rec.png                        |    1 +
 icons/MVIndigo/text_rec_cur.png                    |    1 +
 icons/MVIndigo/text_rec_sel.png                    |    1 +
 icons/MVIndigo/text_timer_full.png                 |    1 +
 icons/MVIndigo/text_timer_full_cur.png             |    1 +
 icons/MVIndigo/text_timer_full_sel.png             |    1 +
 icons/MVIndigo/text_timer_partial.png              |    1 +
 icons/MVIndigo/text_timer_partial_cur.png          |    1 +
 icons/MVIndigo/text_timer_partial_sel.png          |    1 +
 icons/MVIndigo/text_vps.png                        |    1 +
 icons/MVIndigo/text_vps_cur.png                    |    1 +
 icons/MVIndigo/text_vps_sel.png                    |    1 +
 icons/MVIndigo/timerActive.png                     |    1 +
 icons/MVIndigo/timerInactive.png                   |    1 +
 icons/MVIndigo/timerRecording.png                  |    1 +
 icons/MVIndigo/timer_full.png                      |  Bin 0 -> 4797 bytes
 icons/MVIndigo/timer_full_cur.png                  |    1 +
 icons/MVIndigo/timer_partial.png                   |  Bin 0 -> 2476 bytes
 icons/MVIndigo/timer_partial_cur.png               |    1 +
 icons/MVIndigo/topbar_timer.png                    |    1 +
 icons/MVIndigo/topbar_timerconflict_high.png       |    1 +
 icons/MVIndigo/topbar_timerconflict_low.png        |    1 +
 icons/MVIndigo/tv.png                              |    1 +
 icons/MVIndigo/uncrypted.png                       |    1 +
 icons/MVIndigo/unknown_asp.png                     |    1 +
 icons/MVIndigo/unknown_res.png                     |    1 +
 icons/MVIndigo/vps.png                             |  Bin 0 -> 5255 bytes
 icons/MVIndigo/vps_cur.png                         |    1 +
 icons/MVLightBlue/1280x720.png                     |    1 +
 icons/MVLightBlue/1440x1080.png                    |    1 +
 icons/MVLightBlue/169.png                          |    1 +
 icons/MVLightBlue/169w.png                         |    1 +
 icons/MVLightBlue/1920x1080.png                    |    1 +
 icons/MVLightBlue/221.png                          |    1 +
 icons/MVLightBlue/352x576.png                      |    1 +
 icons/MVLightBlue/43.png                           |    1 +
 icons/MVLightBlue/480x576.png                      |    1 +
 icons/MVLightBlue/528x576.png                      |    1 +
 icons/MVLightBlue/544x576.png                      |    1 +
 icons/MVLightBlue/704x576.png                      |    1 +
 icons/MVLightBlue/720x576.png                      |    1 +
 icons/MVLightBlue/960x720.png                      |    1 +
 icons/MVLightBlue/blank.png                        |    1 +
 icons/MVLightBlue/changroup.png                    |  Bin 0 -> 745 bytes
 icons/MVLightBlue/chart1b.png                      |    1 +
 icons/MVLightBlue/chart2b.png                      |    1 +
 icons/MVLightBlue/chart3b.png                      |    1 +
 icons/MVLightBlue/chart4b.png                      |    1 +
 icons/MVLightBlue/chart5b.png                      |    1 +
 icons/MVLightBlue/chart6b.png                      |    1 +
 icons/MVLightBlue/chart7.png                       |    1 +
 icons/MVLightBlue/chart7b.png                      |    1 +
 icons/MVLightBlue/crypted.png                      |    1 +
 icons/MVLightBlue/forward.png                      |    1 +
 icons/MVLightBlue/forward_sel.png                  |  Bin 0 -> 3165 bytes
 icons/MVLightBlue/hd.png                           |    1 +
 icons/MVLightBlue/message_error.png                |    1 +
 icons/MVLightBlue/message_info.png                 |    1 +
 icons/MVLightBlue/message_status.png               |    1 +
 icons/MVLightBlue/message_warning.png              |    1 +
 icons/MVLightBlue/pause.png                        |    1 +
 icons/MVLightBlue/pause_sel.png                    |  Bin 0 -> 3028 bytes
 icons/MVLightBlue/play.png                         |    1 +
 icons/MVLightBlue/play_sel.png                     |  Bin 0 -> 3900 bytes
 icons/MVLightBlue/prev.png                         |    1 +
 icons/MVLightBlue/prev_sel.png                     |  Bin 0 -> 4538 bytes
 icons/MVLightBlue/radio.png                        |    1 +
 icons/MVLightBlue/recording.png                    |    1 +
 icons/MVLightBlue/recording_cutted.png             |  Bin 0 -> 2069 bytes
 icons/MVLightBlue/recording_cutted_cur.png         |    1 +
 icons/MVLightBlue/recording_cutted_extra.png       |  Bin 0 -> 2127 bytes
 icons/MVLightBlue/recording_new.png                |  Bin 0 -> 7912 bytes
 icons/MVLightBlue/recording_new_cur.png            |    1 +
 icons/MVLightBlue/rewind.png                       |    1 +
 icons/MVLightBlue/rewind_sel.png                   |  Bin 0 -> 3299 bytes
 icons/MVLightBlue/sd.png                           |    1 +
 icons/MVLightBlue/skip.png                         |    1 +
 icons/MVLightBlue/skip_sel.png                     |  Bin 0 -> 4551 bytes
 icons/MVLightBlue/text_arrowturn.png               |    1 +
 icons/MVLightBlue/text_arrowturn_cur.png           |    1 +
 icons/MVLightBlue/text_arrowturn_sel.png           |    1 +
 icons/MVLightBlue/text_new.png                     |    1 +
 icons/MVLightBlue/text_new_cur.png                 |    1 +
 icons/MVLightBlue/text_new_sel.png                 |    1 +
 icons/MVLightBlue/text_rec.png                     |    1 +
 icons/MVLightBlue/text_rec_cur.png                 |    1 +
 icons/MVLightBlue/text_rec_sel.png                 |    1 +
 icons/MVLightBlue/text_timer_full.png              |    1 +
 icons/MVLightBlue/text_timer_full_cur.png          |    1 +
 icons/MVLightBlue/text_timer_full_sel.png          |    1 +
 icons/MVLightBlue/text_timer_partial.png           |    1 +
 icons/MVLightBlue/text_timer_partial_cur.png       |    1 +
 icons/MVLightBlue/text_timer_partial_sel.png       |    1 +
 icons/MVLightBlue/text_vps.png                     |    1 +
 icons/MVLightBlue/text_vps_cur.png                 |    1 +
 icons/MVLightBlue/text_vps_sel.png                 |    1 +
 icons/MVLightBlue/timerActive.png                  |    1 +
 icons/MVLightBlue/timerInactive.png                |    1 +
 icons/MVLightBlue/timerRecording.png               |    1 +
 icons/MVLightBlue/timer_full.png                   |  Bin 0 -> 4803 bytes
 icons/MVLightBlue/timer_full_cur.png               |    1 +
 icons/MVLightBlue/timer_partial.png                |  Bin 0 -> 2521 bytes
 icons/MVLightBlue/timer_partial_cur.png            |    1 +
 icons/MVLightBlue/topbar_timer.png                 |    1 +
 icons/MVLightBlue/topbar_timerconflict_high.png    |    1 +
 icons/MVLightBlue/topbar_timerconflict_low.png     |    1 +
 icons/MVLightBlue/tv.png                           |    1 +
 icons/MVLightBlue/uncrypted.png                    |    1 +
 icons/MVLightBlue/unknown_asp.png                  |    1 +
 icons/MVLightBlue/unknown_res.png                  |    1 +
 icons/MVLightBlue/vps.png                          |  Bin 0 -> 5331 bytes
 icons/MVLightBlue/vps_cur.png                      |    1 +
 icons/MVLightGreen/1280x720.png                    |    1 +
 icons/MVLightGreen/1440x1080.png                   |    1 +
 icons/MVLightGreen/169.png                         |    1 +
 icons/MVLightGreen/169w.png                        |    1 +
 icons/MVLightGreen/1920x1080.png                   |    1 +
 icons/MVLightGreen/221.png                         |    1 +
 icons/MVLightGreen/352x576.png                     |    1 +
 icons/MVLightGreen/43.png                          |    1 +
 icons/MVLightGreen/480x576.png                     |    1 +
 icons/MVLightGreen/528x576.png                     |    1 +
 icons/MVLightGreen/544x576.png                     |    1 +
 icons/MVLightGreen/704x576.png                     |    1 +
 icons/MVLightGreen/720x576.png                     |    1 +
 icons/MVLightGreen/960x720.png                     |    1 +
 icons/MVLightGreen/blank.png                       |    1 +
 icons/MVLightGreen/changroup.png                   |  Bin 0 -> 750 bytes
 icons/MVLightGreen/chart1b.png                     |    1 +
 icons/MVLightGreen/chart2b.png                     |    1 +
 icons/MVLightGreen/chart3b.png                     |    1 +
 icons/MVLightGreen/chart4b.png                     |    1 +
 icons/MVLightGreen/chart5b.png                     |    1 +
 icons/MVLightGreen/chart6b.png                     |    1 +
 icons/MVLightGreen/chart7.png                      |    1 +
 icons/MVLightGreen/chart7b.png                     |    1 +
 icons/MVLightGreen/crypted.png                     |    1 +
 icons/MVLightGreen/forward.png                     |    1 +
 icons/MVLightGreen/forward_sel.png                 |  Bin 0 -> 2999 bytes
 icons/MVLightGreen/hd.png                          |    1 +
 icons/MVLightGreen/message_error.png               |    1 +
 icons/MVLightGreen/message_info.png                |    1 +
 icons/MVLightGreen/message_status.png              |    1 +
 icons/MVLightGreen/message_warning.png             |    1 +
 icons/MVLightGreen/pause.png                       |    1 +
 icons/MVLightGreen/pause_sel.png                   |  Bin 0 -> 2792 bytes
 icons/MVLightGreen/play.png                        |    1 +
 icons/MVLightGreen/play_sel.png                    |  Bin 0 -> 3694 bytes
 icons/MVLightGreen/prev.png                        |    1 +
 icons/MVLightGreen/prev_sel.png                    |  Bin 0 -> 4258 bytes
 icons/MVLightGreen/radio.png                       |    1 +
 icons/MVLightGreen/recording.png                   |    1 +
 icons/MVLightGreen/recording_cutted.png            |  Bin 0 -> 2066 bytes
 icons/MVLightGreen/recording_cutted_cur.png        |    1 +
 icons/MVLightGreen/recording_cutted_extra.png      |  Bin 0 -> 2138 bytes
 icons/MVLightGreen/recording_new.png               |  Bin 0 -> 7479 bytes
 icons/MVLightGreen/recording_new_cur.png           |    1 +
 icons/MVLightGreen/rewind.png                      |    1 +
 icons/MVLightGreen/rewind_sel.png                  |  Bin 0 -> 3127 bytes
 icons/MVLightGreen/sd.png                          |    1 +
 icons/MVLightGreen/skip.png                        |    1 +
 icons/MVLightGreen/skip_sel.png                    |  Bin 0 -> 4206 bytes
 icons/MVLightGreen/text_arrowturn.png              |    1 +
 icons/MVLightGreen/text_arrowturn_cur.png          |    1 +
 icons/MVLightGreen/text_arrowturn_sel.png          |    1 +
 icons/MVLightGreen/text_new.png                    |    1 +
 icons/MVLightGreen/text_new_cur.png                |    1 +
 icons/MVLightGreen/text_new_sel.png                |    1 +
 icons/MVLightGreen/text_rec.png                    |    1 +
 icons/MVLightGreen/text_rec_cur.png                |    1 +
 icons/MVLightGreen/text_rec_sel.png                |    1 +
 icons/MVLightGreen/text_timer_full.png             |    1 +
 icons/MVLightGreen/text_timer_full_cur.png         |    1 +
 icons/MVLightGreen/text_timer_full_sel.png         |    1 +
 icons/MVLightGreen/text_timer_partial.png          |    1 +
 icons/MVLightGreen/text_timer_partial_cur.png      |    1 +
 icons/MVLightGreen/text_timer_partial_sel.png      |    1 +
 icons/MVLightGreen/text_vps.png                    |    1 +
 icons/MVLightGreen/text_vps_cur.png                |    1 +
 icons/MVLightGreen/text_vps_sel.png                |    1 +
 icons/MVLightGreen/timerActive.png                 |    1 +
 icons/MVLightGreen/timerInactive.png               |    1 +
 icons/MVLightGreen/timerRecording.png              |    1 +
 icons/MVLightGreen/timer_full.png                  |  Bin 0 -> 4796 bytes
 icons/MVLightGreen/timer_full_cur.png              |    1 +
 icons/MVLightGreen/timer_partial.png               |  Bin 0 -> 2495 bytes
 icons/MVLightGreen/timer_partial_cur.png           |    1 +
 icons/MVLightGreen/topbar_timer.png                |    1 +
 icons/MVLightGreen/topbar_timerconflict_high.png   |    1 +
 icons/MVLightGreen/topbar_timerconflict_low.png    |    1 +
 icons/MVLightGreen/tv.png                          |    1 +
 icons/MVLightGreen/uncrypted.png                   |    1 +
 icons/MVLightGreen/unknown_asp.png                 |    1 +
 icons/MVLightGreen/unknown_res.png                 |    1 +
 icons/MVLightGreen/vps.png                         |  Bin 0 -> 5287 bytes
 icons/MVLightGreen/vps_cur.png                     |    1 +
 icons/MVMint/1280x720.png                          |    1 +
 icons/MVMint/1440x1080.png                         |    1 +
 icons/MVMint/169.png                               |    1 +
 icons/MVMint/169w.png                              |    1 +
 icons/MVMint/1920x1080.png                         |    1 +
 icons/MVMint/221.png                               |    1 +
 icons/MVMint/352x576.png                           |    1 +
 icons/MVMint/43.png                                |    1 +
 icons/MVMint/480x576.png                           |    1 +
 icons/MVMint/528x576.png                           |    1 +
 icons/MVMint/544x576.png                           |    1 +
 icons/MVMint/704x576.png                           |    1 +
 icons/MVMint/720x576.png                           |    1 +
 icons/MVMint/960x720.png                           |    1 +
 icons/MVMint/blank.png                             |    1 +
 icons/MVMint/changroup.png                         |  Bin 0 -> 743 bytes
 icons/MVMint/chart1b.png                           |    1 +
 icons/MVMint/chart2b.png                           |    1 +
 icons/MVMint/chart3b.png                           |    1 +
 icons/MVMint/chart4b.png                           |    1 +
 icons/MVMint/chart5b.png                           |    1 +
 icons/MVMint/chart6b.png                           |    1 +
 icons/MVMint/chart7.png                            |    1 +
 icons/MVMint/chart7b.png                           |    1 +
 icons/MVMint/crypted.png                           |    1 +
 icons/MVMint/forward.png                           |    1 +
 icons/MVMint/forward_sel.png                       |  Bin 0 -> 2990 bytes
 icons/MVMint/hd.png                                |    1 +
 icons/MVMint/message_error.png                     |    1 +
 icons/MVMint/message_info.png                      |    1 +
 icons/MVMint/message_status.png                    |    1 +
 icons/MVMint/message_warning.png                   |    1 +
 icons/MVMint/pause.png                             |    1 +
 icons/MVMint/pause_sel.png                         |  Bin 0 -> 2883 bytes
 icons/MVMint/play.png                              |    1 +
 icons/MVMint/play_sel.png                          |  Bin 0 -> 3619 bytes
 icons/MVMint/prev.png                              |    1 +
 icons/MVMint/prev_sel.png                          |  Bin 0 -> 4321 bytes
 icons/MVMint/radio.png                             |    1 +
 icons/MVMint/recording.png                         |    1 +
 icons/MVMint/recording_cutted.png                  |  Bin 0 -> 2022 bytes
 icons/MVMint/recording_cutted_cur.png              |    1 +
 icons/MVMint/recording_cutted_extra.png            |  Bin 0 -> 2072 bytes
 icons/MVMint/recording_new.png                     |  Bin 0 -> 7442 bytes
 icons/MVMint/recording_new_cur.png                 |    1 +
 icons/MVMint/rewind.png                            |    1 +
 icons/MVMint/rewind_sel.png                        |  Bin 0 -> 3100 bytes
 icons/MVMint/sd.png                                |    1 +
 icons/MVMint/skip.png                              |    1 +
 icons/MVMint/skip_sel.png                          |  Bin 0 -> 4251 bytes
 icons/MVMint/text_arrowturn.png                    |    1 +
 icons/MVMint/text_arrowturn_cur.png                |    1 +
 icons/MVMint/text_arrowturn_sel.png                |    1 +
 icons/MVMint/text_new.png                          |    1 +
 icons/MVMint/text_new_cur.png                      |    1 +
 icons/MVMint/text_new_sel.png                      |    1 +
 icons/MVMint/text_rec.png                          |    1 +
 icons/MVMint/text_rec_cur.png                      |    1 +
 icons/MVMint/text_rec_sel.png                      |    1 +
 icons/MVMint/text_timer_full.png                   |    1 +
 icons/MVMint/text_timer_full_cur.png               |    1 +
 icons/MVMint/text_timer_full_sel.png               |    1 +
 icons/MVMint/text_timer_partial.png                |    1 +
 icons/MVMint/text_timer_partial_cur.png            |    1 +
 icons/MVMint/text_timer_partial_sel.png            |    1 +
 icons/MVMint/text_vps.png                          |    1 +
 icons/MVMint/text_vps_cur.png                      |    1 +
 icons/MVMint/text_vps_sel.png                      |    1 +
 icons/MVMint/timerActive.png                       |    1 +
 icons/MVMint/timerInactive.png                     |    1 +
 icons/MVMint/timerRecording.png                    |    1 +
 icons/MVMint/timer_full.png                        |  Bin 0 -> 4710 bytes
 icons/MVMint/timer_full_cur.png                    |    1 +
 icons/MVMint/timer_partial.png                     |  Bin 0 -> 2375 bytes
 icons/MVMint/timer_partial_cur.png                 |    1 +
 icons/MVMint/topbar_timer.png                      |    1 +
 icons/MVMint/topbar_timerconflict_high.png         |    1 +
 icons/MVMint/topbar_timerconflict_low.png          |    1 +
 icons/MVMint/tv.png                                |    1 +
 icons/MVMint/uncrypted.png                         |    1 +
 icons/MVMint/unknown_asp.png                       |    1 +
 icons/MVMint/unknown_res.png                       |    1 +
 icons/MVMint/vps.png                               |  Bin 0 -> 5122 bytes
 icons/MVMint/vps_cur.png                           |    1 +
 icons/MVNuts/1280x720.png                          |    1 +
 icons/MVNuts/1440x1080.png                         |    1 +
 icons/MVNuts/169.png                               |    1 +
 icons/MVNuts/169w.png                              |    1 +
 icons/MVNuts/1920x1080.png                         |    1 +
 icons/MVNuts/221.png                               |    1 +
 icons/MVNuts/352x576.png                           |    1 +
 icons/MVNuts/43.png                                |    1 +
 icons/MVNuts/480x576.png                           |    1 +
 icons/MVNuts/528x576.png                           |    1 +
 icons/MVNuts/544x576.png                           |    1 +
 icons/MVNuts/704x576.png                           |    1 +
 icons/MVNuts/720x576.png                           |    1 +
 icons/MVNuts/960x720.png                           |    1 +
 icons/MVNuts/blank.png                             |    1 +
 icons/MVNuts/changroup.png                         |  Bin 0 -> 760 bytes
 icons/MVNuts/chart1b.png                           |    1 +
 icons/MVNuts/chart2b.png                           |    1 +
 icons/MVNuts/chart3b.png                           |    1 +
 icons/MVNuts/chart4b.png                           |    1 +
 icons/MVNuts/chart5b.png                           |    1 +
 icons/MVNuts/chart6b.png                           |    1 +
 icons/MVNuts/chart7.png                            |    1 +
 icons/MVNuts/chart7b.png                           |    1 +
 icons/MVNuts/crypted.png                           |    1 +
 icons/MVNuts/forward.png                           |    1 +
 icons/MVNuts/forward_sel.png                       |  Bin 0 -> 3114 bytes
 icons/MVNuts/hd.png                                |    1 +
 icons/MVNuts/message_error.png                     |    1 +
 icons/MVNuts/message_info.png                      |    1 +
 icons/MVNuts/message_status.png                    |    1 +
 icons/MVNuts/message_warning.png                   |    1 +
 icons/MVNuts/pause.png                             |    1 +
 icons/MVNuts/pause_sel.png                         |  Bin 0 -> 2947 bytes
 icons/MVNuts/play.png                              |    1 +
 icons/MVNuts/play_sel.png                          |  Bin 0 -> 3773 bytes
 icons/MVNuts/prev.png                              |    1 +
 icons/MVNuts/prev_sel.png                          |  Bin 0 -> 4446 bytes
 icons/MVNuts/radio.png                             |    1 +
 icons/MVNuts/recording.png                         |    1 +
 icons/MVNuts/recording_cutted.png                  |  Bin 0 -> 2069 bytes
 icons/MVNuts/recording_cutted_cur.png              |    1 +
 icons/MVNuts/recording_cutted_extra.png            |  Bin 0 -> 2140 bytes
 icons/MVNuts/recording_new.png                     |  Bin 0 -> 7699 bytes
 icons/MVNuts/recording_new_cur.png                 |    1 +
 icons/MVNuts/rewind.png                            |    1 +
 icons/MVNuts/rewind_sel.png                        |  Bin 0 -> 3211 bytes
 icons/MVNuts/sd.png                                |    1 +
 icons/MVNuts/skip.png                              |    1 +
 icons/MVNuts/skip_sel.png                          |  Bin 0 -> 4426 bytes
 icons/MVNuts/text_arrowturn.png                    |    1 +
 icons/MVNuts/text_arrowturn_cur.png                |    1 +
 icons/MVNuts/text_arrowturn_sel.png                |    1 +
 icons/MVNuts/text_new.png                          |    1 +
 icons/MVNuts/text_new_cur.png                      |    1 +
 icons/MVNuts/text_new_sel.png                      |    1 +
 icons/MVNuts/text_rec.png                          |    1 +
 icons/MVNuts/text_rec_cur.png                      |    1 +
 icons/MVNuts/text_rec_sel.png                      |    1 +
 icons/MVNuts/text_timer_full.png                   |    1 +
 icons/MVNuts/text_timer_full_cur.png               |    1 +
 icons/MVNuts/text_timer_full_sel.png               |    1 +
 icons/MVNuts/text_timer_partial.png                |    1 +
 icons/MVNuts/text_timer_partial_cur.png            |    1 +
 icons/MVNuts/text_timer_partial_sel.png            |    1 +
 icons/MVNuts/text_vps.png                          |    1 +
 icons/MVNuts/text_vps_cur.png                      |    1 +
 icons/MVNuts/text_vps_sel.png                      |    1 +
 icons/MVNuts/timerActive.png                       |    1 +
 icons/MVNuts/timerInactive.png                     |    1 +
 icons/MVNuts/timerRecording.png                    |    1 +
 icons/MVNuts/timer_full.png                        |  Bin 0 -> 4793 bytes
 icons/MVNuts/timer_full_cur.png                    |    1 +
 icons/MVNuts/timer_partial.png                     |  Bin 0 -> 2517 bytes
 icons/MVNuts/timer_partial_cur.png                 |    1 +
 icons/MVNuts/topbar_timer.png                      |    1 +
 icons/MVNuts/topbar_timerconflict_high.png         |    1 +
 icons/MVNuts/topbar_timerconflict_low.png          |    1 +
 icons/MVNuts/tv.png                                |    1 +
 icons/MVNuts/uncrypted.png                         |    1 +
 icons/MVNuts/unknown_asp.png                       |    1 +
 icons/MVNuts/unknown_res.png                       |    1 +
 icons/MVNuts/vps.png                               |  Bin 0 -> 5304 bytes
 icons/MVNuts/vps_cur.png                           |    1 +
 icons/MVOlive/1280x720.png                         |    1 +
 icons/MVOlive/1440x1080.png                        |    1 +
 icons/MVOlive/169.png                              |    1 +
 icons/MVOlive/169w.png                             |    1 +
 icons/MVOlive/1920x1080.png                        |    1 +
 icons/MVOlive/221.png                              |    1 +
 icons/MVOlive/352x576.png                          |    1 +
 icons/MVOlive/43.png                               |    1 +
 icons/MVOlive/480x576.png                          |    1 +
 icons/MVOlive/528x576.png                          |    1 +
 icons/MVOlive/544x576.png                          |    1 +
 icons/MVOlive/704x576.png                          |    1 +
 icons/MVOlive/720x576.png                          |    1 +
 icons/MVOlive/960x720.png                          |    1 +
 icons/MVOlive/blank.png                            |    1 +
 icons/MVOlive/changroup.png                        |  Bin 0 -> 764 bytes
 icons/MVOlive/chart1b.png                          |    1 +
 icons/MVOlive/chart2b.png                          |    1 +
 icons/MVOlive/chart3b.png                          |    1 +
 icons/MVOlive/chart4b.png                          |    1 +
 icons/MVOlive/chart5b.png                          |    1 +
 icons/MVOlive/chart6b.png                          |    1 +
 icons/MVOlive/chart7.png                           |    1 +
 icons/MVOlive/chart7b.png                          |    1 +
 icons/MVOlive/crypted.png                          |    1 +
 icons/MVOlive/forward.png                          |    1 +
 icons/MVOlive/forward_sel.png                      |  Bin 0 -> 3163 bytes
 icons/MVOlive/hd.png                               |    1 +
 icons/MVOlive/message_error.png                    |    1 +
 icons/MVOlive/message_info.png                     |    1 +
 icons/MVOlive/message_status.png                   |    1 +
 icons/MVOlive/message_warning.png                  |    1 +
 icons/MVOlive/pause.png                            |    1 +
 icons/MVOlive/pause_sel.png                        |  Bin 0 -> 2900 bytes
 icons/MVOlive/play.png                             |    1 +
 icons/MVOlive/play_sel.png                         |  Bin 0 -> 3833 bytes
 icons/MVOlive/prev.png                             |    1 +
 icons/MVOlive/prev_sel.png                         |  Bin 0 -> 4493 bytes
 icons/MVOlive/radio.png                            |    1 +
 icons/MVOlive/recording.png                        |    1 +
 icons/MVOlive/recording_cutted.png                 |  Bin 0 -> 2067 bytes
 icons/MVOlive/recording_cutted_cur.png             |    1 +
 icons/MVOlive/recording_cutted_extra.png           |  Bin 0 -> 2140 bytes
 icons/MVOlive/recording_new.png                    |  Bin 0 -> 7739 bytes
 icons/MVOlive/recording_new_cur.png                |    1 +
 icons/MVOlive/rewind.png                           |    1 +
 icons/MVOlive/rewind_sel.png                       |  Bin 0 -> 3265 bytes
 icons/MVOlive/sd.png                               |    1 +
 icons/MVOlive/skip.png                             |    1 +
 icons/MVOlive/skip_sel.png                         |  Bin 0 -> 4405 bytes
 icons/MVOlive/text_arrowturn.png                   |    1 +
 icons/MVOlive/text_arrowturn_cur.png               |    1 +
 icons/MVOlive/text_arrowturn_sel.png               |    1 +
 icons/MVOlive/text_new.png                         |    1 +
 icons/MVOlive/text_new_cur.png                     |    1 +
 icons/MVOlive/text_new_sel.png                     |    1 +
 icons/MVOlive/text_rec.png                         |    1 +
 icons/MVOlive/text_rec_cur.png                     |    1 +
 icons/MVOlive/text_rec_sel.png                     |    1 +
 icons/MVOlive/text_timer_full.png                  |    1 +
 icons/MVOlive/text_timer_full_cur.png              |    1 +
 icons/MVOlive/text_timer_full_sel.png              |    1 +
 icons/MVOlive/text_timer_partial.png               |    1 +
 icons/MVOlive/text_timer_partial_cur.png           |    1 +
 icons/MVOlive/text_timer_partial_sel.png           |    1 +
 icons/MVOlive/text_vps.png                         |    1 +
 icons/MVOlive/text_vps_cur.png                     |    1 +
 icons/MVOlive/text_vps_sel.png                     |    1 +
 icons/MVOlive/timerActive.png                      |    1 +
 icons/MVOlive/timerInactive.png                    |    1 +
 icons/MVOlive/timerRecording.png                   |    1 +
 icons/MVOlive/timer_full.png                       |  Bin 0 -> 4881 bytes
 icons/MVOlive/timer_full_cur.png                   |    1 +
 icons/MVOlive/timer_partial.png                    |  Bin 0 -> 2549 bytes
 icons/MVOlive/timer_partial_cur.png                |    1 +
 icons/MVOlive/topbar_timer.png                     |    1 +
 icons/MVOlive/topbar_timerconflict_high.png        |    1 +
 icons/MVOlive/topbar_timerconflict_low.png         |    1 +
 icons/MVOlive/tv.png                               |    1 +
 icons/MVOlive/uncrypted.png                        |    1 +
 icons/MVOlive/unknown_asp.png                      |    1 +
 icons/MVOlive/unknown_res.png                      |    1 +
 icons/MVOlive/vps.png                              |  Bin 0 -> 5439 bytes
 icons/MVOlive/vps_cur.png                          |    1 +
 icons/MVOrange/1280x720.png                        |    1 +
 icons/MVOrange/1440x1080.png                       |    1 +
 icons/MVOrange/169.png                             |    1 +
 icons/MVOrange/169w.png                            |    1 +
 icons/MVOrange/1920x1080.png                       |    1 +
 icons/MVOrange/221.png                             |    1 +
 icons/MVOrange/352x576.png                         |    1 +
 icons/MVOrange/43.png                              |    1 +
 icons/MVOrange/480x576.png                         |    1 +
 icons/MVOrange/528x576.png                         |    1 +
 icons/MVOrange/544x576.png                         |    1 +
 icons/MVOrange/704x576.png                         |    1 +
 icons/MVOrange/720x576.png                         |    1 +
 icons/MVOrange/960x720.png                         |    1 +
 icons/MVOrange/blank.png                           |    1 +
 icons/MVOrange/changroup.png                       |  Bin 0 -> 744 bytes
 icons/MVOrange/chart1b.png                         |    1 +
 icons/MVOrange/chart2b.png                         |    1 +
 icons/MVOrange/chart3b.png                         |    1 +
 icons/MVOrange/chart4b.png                         |    1 +
 icons/MVOrange/chart5b.png                         |    1 +
 icons/MVOrange/chart6b.png                         |    1 +
 icons/MVOrange/chart7.png                          |    1 +
 icons/MVOrange/chart7b.png                         |    1 +
 icons/MVOrange/crypted.png                         |    1 +
 icons/MVOrange/forward.png                         |    1 +
 icons/MVOrange/forward_sel.png                     |  Bin 0 -> 3165 bytes
 icons/MVOrange/hd.png                              |    1 +
 icons/MVOrange/message_error.png                   |    1 +
 icons/MVOrange/message_info.png                    |    1 +
 icons/MVOrange/message_status.png                  |    1 +
 icons/MVOrange/message_warning.png                 |    1 +
 icons/MVOrange/pause.png                           |    1 +
 icons/MVOrange/pause_sel.png                       |  Bin 0 -> 3013 bytes
 icons/MVOrange/play.png                            |    1 +
 icons/MVOrange/play_sel.png                        |  Bin 0 -> 3829 bytes
 icons/MVOrange/prev.png                            |    1 +
 icons/MVOrange/prev_sel.png                        |  Bin 0 -> 4530 bytes
 icons/MVOrange/radio.png                           |    1 +
 icons/MVOrange/recording.png                       |    1 +
 icons/MVOrange/recording_cutted.png                |  Bin 0 -> 2074 bytes
 icons/MVOrange/recording_cutted_cur.png            |    1 +
 icons/MVOrange/recording_cutted_extra.png          |  Bin 0 -> 2112 bytes
 icons/MVOrange/recording_new.png                   |  Bin 0 -> 7773 bytes
 icons/MVOrange/recording_new_cur.png               |    1 +
 icons/MVOrange/rewind.png                          |    1 +
 icons/MVOrange/rewind_sel.png                      |  Bin 0 -> 3224 bytes
 icons/MVOrange/sd.png                              |    1 +
 icons/MVOrange/skip.png                            |    1 +
 icons/MVOrange/skip_sel.png                        |  Bin 0 -> 4521 bytes
 icons/MVOrange/text_arrowturn.png                  |    1 +
 icons/MVOrange/text_arrowturn_cur.png              |    1 +
 icons/MVOrange/text_arrowturn_sel.png              |    1 +
 icons/MVOrange/text_new.png                        |    1 +
 icons/MVOrange/text_new_cur.png                    |    1 +
 icons/MVOrange/text_new_sel.png                    |    1 +
 icons/MVOrange/text_rec.png                        |    1 +
 icons/MVOrange/text_rec_cur.png                    |    1 +
 icons/MVOrange/text_rec_sel.png                    |    1 +
 icons/MVOrange/text_timer_full.png                 |    1 +
 icons/MVOrange/text_timer_full_cur.png             |    1 +
 icons/MVOrange/text_timer_full_sel.png             |    1 +
 icons/MVOrange/text_timer_partial.png              |    1 +
 icons/MVOrange/text_timer_partial_cur.png          |    1 +
 icons/MVOrange/text_timer_partial_sel.png          |    1 +
 icons/MVOrange/text_vps.png                        |    1 +
 icons/MVOrange/text_vps_cur.png                    |    1 +
 icons/MVOrange/text_vps_sel.png                    |    1 +
 icons/MVOrange/timerActive.png                     |    1 +
 icons/MVOrange/timerInactive.png                   |    1 +
 icons/MVOrange/timerRecording.png                  |    1 +
 icons/MVOrange/timer_full.png                      |  Bin 0 -> 4792 bytes
 icons/MVOrange/timer_full_cur.png                  |    1 +
 icons/MVOrange/timer_partial.png                   |  Bin 0 -> 2483 bytes
 icons/MVOrange/timer_partial_cur.png               |    1 +
 icons/MVOrange/topbar_timer.png                    |    1 +
 icons/MVOrange/topbar_timerconflict_high.png       |    1 +
 icons/MVOrange/topbar_timerconflict_low.png        |    1 +
 icons/MVOrange/tv.png                              |    1 +
 icons/MVOrange/uncrypted.png                       |    1 +
 icons/MVOrange/unknown_asp.png                     |    1 +
 icons/MVOrange/unknown_res.png                     |    1 +
 icons/MVOrange/vps.png                             |  Bin 0 -> 5326 bytes
 icons/MVOrange/vps_cur.png                         |    1 +
 icons/MVPflaume/1280x720.png                       |    1 +
 icons/MVPflaume/1440x1080.png                      |    1 +
 icons/MVPflaume/169.png                            |    1 +
 icons/MVPflaume/169w.png                           |    1 +
 icons/MVPflaume/1920x1080.png                      |    1 +
 icons/MVPflaume/221.png                            |    1 +
 icons/MVPflaume/352x576.png                        |    1 +
 icons/MVPflaume/43.png                             |    1 +
 icons/MVPflaume/480x576.png                        |    1 +
 icons/MVPflaume/528x576.png                        |    1 +
 icons/MVPflaume/544x576.png                        |    1 +
 icons/MVPflaume/704x576.png                        |    1 +
 icons/MVPflaume/720x576.png                        |    1 +
 icons/MVPflaume/960x720.png                        |    1 +
 icons/MVPflaume/blank.png                          |    1 +
 icons/MVPflaume/changroup.png                      |  Bin 0 -> 741 bytes
 icons/MVPflaume/chart1b.png                        |    1 +
 icons/MVPflaume/chart2b.png                        |    1 +
 icons/MVPflaume/chart3b.png                        |    1 +
 icons/MVPflaume/chart4b.png                        |    1 +
 icons/MVPflaume/chart5b.png                        |    1 +
 icons/MVPflaume/chart6b.png                        |    1 +
 icons/MVPflaume/chart7.png                         |    1 +
 icons/MVPflaume/chart7b.png                        |    1 +
 icons/MVPflaume/crypted.png                        |    1 +
 icons/MVPflaume/forward.png                        |    1 +
 icons/MVPflaume/forward_sel.png                    |  Bin 0 -> 2953 bytes
 icons/MVPflaume/hd.png                             |    1 +
 icons/MVPflaume/message_error.png                  |    1 +
 icons/MVPflaume/message_info.png                   |    1 +
 icons/MVPflaume/message_status.png                 |    1 +
 icons/MVPflaume/message_warning.png                |    1 +
 icons/MVPflaume/pause.png                          |    1 +
 icons/MVPflaume/pause_sel.png                      |  Bin 0 -> 2779 bytes
 icons/MVPflaume/play.png                           |    1 +
 icons/MVPflaume/play_sel.png                       |  Bin 0 -> 3561 bytes
 icons/MVPflaume/prev.png                           |    1 +
 icons/MVPflaume/prev_sel.png                       |  Bin 0 -> 4119 bytes
 icons/MVPflaume/radio.png                          |    1 +
 icons/MVPflaume/recording.png                      |    1 +
 icons/MVPflaume/recording_cutted.png               |  Bin 0 -> 2013 bytes
 icons/MVPflaume/recording_cutted_cur.png           |    1 +
 icons/MVPflaume/recording_cutted_extra.png         |  Bin 0 -> 2051 bytes
 icons/MVPflaume/recording_new.png                  |  Bin 0 -> 7381 bytes
 icons/MVPflaume/recording_new_cur.png              |    1 +
 icons/MVPflaume/rewind.png                         |    1 +
 icons/MVPflaume/rewind_sel.png                     |  Bin 0 -> 3044 bytes
 icons/MVPflaume/sd.png                             |    1 +
 icons/MVPflaume/skip.png                           |    1 +
 icons/MVPflaume/skip_sel.png                       |  Bin 0 -> 4115 bytes
 icons/MVPflaume/text_arrowturn.png                 |    1 +
 icons/MVPflaume/text_arrowturn_cur.png             |    1 +
 icons/MVPflaume/text_arrowturn_sel.png             |    1 +
 icons/MVPflaume/text_new.png                       |    1 +
 icons/MVPflaume/text_new_cur.png                   |    1 +
 icons/MVPflaume/text_new_sel.png                   |    1 +
 icons/MVPflaume/text_rec.png                       |    1 +
 icons/MVPflaume/text_rec_cur.png                   |    1 +
 icons/MVPflaume/text_rec_sel.png                   |    1 +
 icons/MVPflaume/text_timer_full.png                |    1 +
 icons/MVPflaume/text_timer_full_cur.png            |    1 +
 icons/MVPflaume/text_timer_full_sel.png            |    1 +
 icons/MVPflaume/text_timer_partial.png             |    1 +
 icons/MVPflaume/text_timer_partial_cur.png         |    1 +
 icons/MVPflaume/text_timer_partial_sel.png         |    1 +
 icons/MVPflaume/text_vps.png                       |    1 +
 icons/MVPflaume/text_vps_cur.png                   |    1 +
 icons/MVPflaume/text_vps_sel.png                   |    1 +
 icons/MVPflaume/timerActive.png                    |    1 +
 icons/MVPflaume/timerInactive.png                  |    1 +
 icons/MVPflaume/timerRecording.png                 |    1 +
 icons/MVPflaume/timer_full.png                     |  Bin 0 -> 4685 bytes
 icons/MVPflaume/timer_full_cur.png                 |    1 +
 icons/MVPflaume/timer_partial.png                  |  Bin 0 -> 2334 bytes
 icons/MVPflaume/timer_partial_cur.png              |    1 +
 icons/MVPflaume/topbar_timer.png                   |    1 +
 icons/MVPflaume/topbar_timerconflict_high.png      |    1 +
 icons/MVPflaume/topbar_timerconflict_low.png       |    1 +
 icons/MVPflaume/tv.png                             |    1 +
 icons/MVPflaume/uncrypted.png                      |    1 +
 icons/MVPflaume/unknown_asp.png                    |    1 +
 icons/MVPflaume/unknown_res.png                    |    1 +
 icons/MVPflaume/vps.png                            |  Bin 0 -> 5011 bytes
 icons/MVPflaume/vps_cur.png                        |    1 +
 icons/MVPumpkin/1280x720.png                       |    1 +
 icons/MVPumpkin/1440x1080.png                      |    1 +
 icons/MVPumpkin/169.png                            |    1 +
 icons/MVPumpkin/169w.png                           |    1 +
 icons/MVPumpkin/1920x1080.png                      |    1 +
 icons/MVPumpkin/221.png                            |    1 +
 icons/MVPumpkin/352x576.png                        |    1 +
 icons/MVPumpkin/43.png                             |    1 +
 icons/MVPumpkin/480x576.png                        |    1 +
 icons/MVPumpkin/528x576.png                        |    1 +
 icons/MVPumpkin/544x576.png                        |    1 +
 icons/MVPumpkin/704x576.png                        |    1 +
 icons/MVPumpkin/720x576.png                        |    1 +
 icons/MVPumpkin/960x720.png                        |    1 +
 icons/MVPumpkin/blank.png                          |    1 +
 icons/MVPumpkin/changroup.png                      |  Bin 0 -> 744 bytes
 icons/MVPumpkin/chart1b.png                        |    1 +
 icons/MVPumpkin/chart2b.png                        |    1 +
 icons/MVPumpkin/chart3b.png                        |    1 +
 icons/MVPumpkin/chart4b.png                        |    1 +
 icons/MVPumpkin/chart5b.png                        |    1 +
 icons/MVPumpkin/chart6b.png                        |    1 +
 icons/MVPumpkin/chart7.png                         |    1 +
 icons/MVPumpkin/chart7b.png                        |    1 +
 icons/MVPumpkin/crypted.png                        |    1 +
 icons/MVPumpkin/forward.png                        |    1 +
 icons/MVPumpkin/forward_sel.png                    |  Bin 0 -> 3165 bytes
 icons/MVPumpkin/hd.png                             |    1 +
 icons/MVPumpkin/message_error.png                  |    1 +
 icons/MVPumpkin/message_info.png                   |    1 +
 icons/MVPumpkin/message_status.png                 |    1 +
 icons/MVPumpkin/message_warning.png                |    1 +
 icons/MVPumpkin/pause.png                          |    1 +
 icons/MVPumpkin/pause_sel.png                      |  Bin 0 -> 3013 bytes
 icons/MVPumpkin/play.png                           |    1 +
 icons/MVPumpkin/play_sel.png                       |  Bin 0 -> 3829 bytes
 icons/MVPumpkin/prev.png                           |    1 +
 icons/MVPumpkin/prev_sel.png                       |  Bin 0 -> 4530 bytes
 icons/MVPumpkin/radio.png                          |    1 +
 icons/MVPumpkin/recording.png                      |    1 +
 icons/MVPumpkin/recording_cutted.png               |  Bin 0 -> 2074 bytes
 icons/MVPumpkin/recording_cutted_cur.png           |    1 +
 icons/MVPumpkin/recording_cutted_extra.png         |  Bin 0 -> 2112 bytes
 icons/MVPumpkin/recording_new.png                  |  Bin 0 -> 7773 bytes
 icons/MVPumpkin/recording_new_cur.png              |    1 +
 icons/MVPumpkin/rewind.png                         |    1 +
 icons/MVPumpkin/rewind_sel.png                     |  Bin 0 -> 3224 bytes
 icons/MVPumpkin/sd.png                             |    1 +
 icons/MVPumpkin/skip.png                           |    1 +
 icons/MVPumpkin/skip_sel.png                       |  Bin 0 -> 4521 bytes
 icons/MVPumpkin/text_arrowturn.png                 |    1 +
 icons/MVPumpkin/text_arrowturn_cur.png             |    1 +
 icons/MVPumpkin/text_arrowturn_sel.png             |    1 +
 icons/MVPumpkin/text_new.png                       |    1 +
 icons/MVPumpkin/text_new_cur.png                   |    1 +
 icons/MVPumpkin/text_new_sel.png                   |    1 +
 icons/MVPumpkin/text_rec.png                       |    1 +
 icons/MVPumpkin/text_rec_cur.png                   |    1 +
 icons/MVPumpkin/text_rec_sel.png                   |    1 +
 icons/MVPumpkin/text_timer_full.png                |    1 +
 icons/MVPumpkin/text_timer_full_cur.png            |    1 +
 icons/MVPumpkin/text_timer_full_sel.png            |    1 +
 icons/MVPumpkin/text_timer_partial.png             |    1 +
 icons/MVPumpkin/text_timer_partial_cur.png         |    1 +
 icons/MVPumpkin/text_timer_partial_sel.png         |    1 +
 icons/MVPumpkin/text_vps.png                       |    1 +
 icons/MVPumpkin/text_vps_cur.png                   |    1 +
 icons/MVPumpkin/text_vps_sel.png                   |    1 +
 icons/MVPumpkin/timerActive.png                    |    1 +
 icons/MVPumpkin/timerInactive.png                  |    1 +
 icons/MVPumpkin/timerRecording.png                 |    1 +
 icons/MVPumpkin/timer_full.png                     |  Bin 0 -> 4792 bytes
 icons/MVPumpkin/timer_full_cur.png                 |    1 +
 icons/MVPumpkin/timer_partial.png                  |  Bin 0 -> 2483 bytes
 icons/MVPumpkin/timer_partial_cur.png              |    1 +
 icons/MVPumpkin/topbar_timer.png                   |    1 +
 icons/MVPumpkin/topbar_timerconflict_high.png      |    1 +
 icons/MVPumpkin/topbar_timerconflict_low.png       |    1 +
 icons/MVPumpkin/tv.png                             |    1 +
 icons/MVPumpkin/uncrypted.png                      |    1 +
 icons/MVPumpkin/unknown_asp.png                    |    1 +
 icons/MVPumpkin/unknown_res.png                    |    1 +
 icons/MVPumpkin/vps.png                            |  Bin 0 -> 5326 bytes
 icons/MVPumpkin/vps_cur.png                        |    1 +
 icons/MVPurple/1280x720.png                        |    1 +
 icons/MVPurple/1440x1080.png                       |    1 +
 icons/MVPurple/169.png                             |    1 +
 icons/MVPurple/169w.png                            |    1 +
 icons/MVPurple/1920x1080.png                       |    1 +
 icons/MVPurple/221.png                             |    1 +
 icons/MVPurple/352x576.png                         |    1 +
 icons/MVPurple/43.png                              |    1 +
 icons/MVPurple/480x576.png                         |    1 +
 icons/MVPurple/528x576.png                         |    1 +
 icons/MVPurple/544x576.png                         |    1 +
 icons/MVPurple/704x576.png                         |    1 +
 icons/MVPurple/720x576.png                         |    1 +
 icons/MVPurple/960x720.png                         |    1 +
 icons/MVPurple/blank.png                           |    1 +
 icons/MVPurple/changroup.png                       |  Bin 0 -> 759 bytes
 icons/MVPurple/chart1b.png                         |    1 +
 icons/MVPurple/chart2b.png                         |    1 +
 icons/MVPurple/chart3b.png                         |    1 +
 icons/MVPurple/chart4b.png                         |    1 +
 icons/MVPurple/chart5b.png                         |    1 +
 icons/MVPurple/chart6b.png                         |    1 +
 icons/MVPurple/chart7.png                          |    1 +
 icons/MVPurple/chart7b.png                         |    1 +
 icons/MVPurple/crypted.png                         |    1 +
 icons/MVPurple/forward.png                         |    1 +
 icons/MVPurple/forward_sel.png                     |  Bin 0 -> 2980 bytes
 icons/MVPurple/hd.png                              |    1 +
 icons/MVPurple/message_error.png                   |    1 +
 icons/MVPurple/message_info.png                    |    1 +
 icons/MVPurple/message_status.png                  |    1 +
 icons/MVPurple/message_warning.png                 |    1 +
 icons/MVPurple/pause.png                           |    1 +
 icons/MVPurple/pause_sel.png                       |  Bin 0 -> 2676 bytes
 icons/MVPurple/play.png                            |    1 +
 icons/MVPurple/play_sel.png                        |  Bin 0 -> 3595 bytes
 icons/MVPurple/prev.png                            |    1 +
 icons/MVPurple/prev_sel.png                        |  Bin 0 -> 4133 bytes
 icons/MVPurple/radio.png                           |    1 +
 icons/MVPurple/recording.png                       |    1 +
 icons/MVPurple/recording_cutted.png                |  Bin 0 -> 2066 bytes
 icons/MVPurple/recording_cutted_cur.png            |    1 +
 icons/MVPurple/recording_cutted_extra.png          |  Bin 0 -> 2138 bytes
 icons/MVPurple/recording_new.png                   |  Bin 0 -> 7396 bytes
 icons/MVPurple/recording_new_cur.png               |    1 +
 icons/MVPurple/rewind.png                          |    1 +
 icons/MVPurple/rewind_sel.png                      |  Bin 0 -> 3088 bytes
 icons/MVPurple/sd.png                              |    1 +
 icons/MVPurple/skip.png                            |    1 +
 icons/MVPurple/skip_sel.png                        |  Bin 0 -> 4083 bytes
 icons/MVPurple/text_arrowturn.png                  |    1 +
 icons/MVPurple/text_arrowturn_cur.png              |    1 +
 icons/MVPurple/text_arrowturn_sel.png              |    1 +
 icons/MVPurple/text_new.png                        |    1 +
 icons/MVPurple/text_new_cur.png                    |    1 +
 icons/MVPurple/text_new_sel.png                    |    1 +
 icons/MVPurple/text_rec.png                        |    1 +
 icons/MVPurple/text_rec_cur.png                    |    1 +
 icons/MVPurple/text_rec_sel.png                    |    1 +
 icons/MVPurple/text_timer_full.png                 |    1 +
 icons/MVPurple/text_timer_full_cur.png             |    1 +
 icons/MVPurple/text_timer_full_sel.png             |    1 +
 icons/MVPurple/text_timer_partial.png              |    1 +
 icons/MVPurple/text_timer_partial_cur.png          |    1 +
 icons/MVPurple/text_timer_partial_sel.png          |    1 +
 icons/MVPurple/text_vps.png                        |    1 +
 icons/MVPurple/text_vps_cur.png                    |    1 +
 icons/MVPurple/text_vps_sel.png                    |    1 +
 icons/MVPurple/timerActive.png                     |    1 +
 icons/MVPurple/timerInactive.png                   |    1 +
 icons/MVPurple/timerRecording.png                  |    1 +
 icons/MVPurple/timer_full.png                      |  Bin 0 -> 4788 bytes
 icons/MVPurple/timer_full_cur.png                  |    1 +
 icons/MVPurple/timer_partial.png                   |  Bin 0 -> 2440 bytes
 icons/MVPurple/timer_partial_cur.png               |    1 +
 icons/MVPurple/topbar_timer.png                    |    1 +
 icons/MVPurple/topbar_timerconflict_high.png       |    1 +
 icons/MVPurple/topbar_timerconflict_low.png        |    1 +
 icons/MVPurple/tv.png                              |    1 +
 icons/MVPurple/uncrypted.png                       |    1 +
 icons/MVPurple/unknown_asp.png                     |    1 +
 icons/MVPurple/unknown_res.png                     |    1 +
 icons/MVPurple/vps.png                             |  Bin 0 -> 5195 bytes
 icons/MVPurple/vps_cur.png                         |    1 +
 icons/MVPurpleGrey/1280x720.png                    |    1 +
 icons/MVPurpleGrey/1440x1080.png                   |    1 +
 icons/MVPurpleGrey/169.png                         |    1 +
 icons/MVPurpleGrey/169w.png                        |    1 +
 icons/MVPurpleGrey/1920x1080.png                   |    1 +
 icons/MVPurpleGrey/221.png                         |    1 +
 icons/MVPurpleGrey/352x576.png                     |    1 +
 icons/MVPurpleGrey/43.png                          |    1 +
 icons/MVPurpleGrey/480x576.png                     |    1 +
 icons/MVPurpleGrey/528x576.png                     |    1 +
 icons/MVPurpleGrey/544x576.png                     |    1 +
 icons/MVPurpleGrey/704x576.png                     |    1 +
 icons/MVPurpleGrey/720x576.png                     |    1 +
 icons/MVPurpleGrey/960x720.png                     |    1 +
 icons/MVPurpleGrey/blank.png                       |    1 +
 icons/MVPurpleGrey/changroup.png                   |  Bin 0 -> 764 bytes
 icons/MVPurpleGrey/chart1b.png                     |    1 +
 icons/MVPurpleGrey/chart2b.png                     |    1 +
 icons/MVPurpleGrey/chart3b.png                     |    1 +
 icons/MVPurpleGrey/chart4b.png                     |    1 +
 icons/MVPurpleGrey/chart5b.png                     |    1 +
 icons/MVPurpleGrey/chart6b.png                     |    1 +
 icons/MVPurpleGrey/chart7.png                      |    1 +
 icons/MVPurpleGrey/chart7b.png                     |    1 +
 icons/MVPurpleGrey/crypted.png                     |    1 +
 icons/MVPurpleGrey/forward.png                     |    1 +
 icons/MVPurpleGrey/forward_sel.png                 |  Bin 0 -> 3155 bytes
 icons/MVPurpleGrey/hd.png                          |    1 +
 icons/MVPurpleGrey/message_error.png               |    1 +
 icons/MVPurpleGrey/message_info.png                |    1 +
 icons/MVPurpleGrey/message_status.png              |    1 +
 icons/MVPurpleGrey/message_warning.png             |    1 +
 icons/MVPurpleGrey/pause.png                       |    1 +
 icons/MVPurpleGrey/pause_sel.png                   |  Bin 0 -> 2948 bytes
 icons/MVPurpleGrey/play.png                        |    1 +
 icons/MVPurpleGrey/play_sel.png                    |  Bin 0 -> 3853 bytes
 icons/MVPurpleGrey/prev.png                        |    1 +
 icons/MVPurpleGrey/prev_sel.png                    |  Bin 0 -> 4531 bytes
 icons/MVPurpleGrey/radio.png                       |    1 +
 icons/MVPurpleGrey/recording.png                   |    1 +
 icons/MVPurpleGrey/recording_cutted.png            |  Bin 0 -> 2050 bytes
 icons/MVPurpleGrey/recording_cutted_cur.png        |    1 +
 icons/MVPurpleGrey/recording_cutted_extra.png      |  Bin 0 -> 2116 bytes
 icons/MVPurpleGrey/recording_new.png               |  Bin 0 -> 7854 bytes
 icons/MVPurpleGrey/recording_new_cur.png           |    1 +
 icons/MVPurpleGrey/rewind.png                      |    1 +
 icons/MVPurpleGrey/rewind_sel.png                  |  Bin 0 -> 3281 bytes
 icons/MVPurpleGrey/sd.png                          |    1 +
 icons/MVPurpleGrey/skip.png                        |    1 +
 icons/MVPurpleGrey/skip_sel.png                    |  Bin 0 -> 4460 bytes
 icons/MVPurpleGrey/text_arrowturn.png              |    1 +
 icons/MVPurpleGrey/text_arrowturn_cur.png          |    1 +
 icons/MVPurpleGrey/text_arrowturn_sel.png          |    1 +
 icons/MVPurpleGrey/text_new.png                    |    1 +
 icons/MVPurpleGrey/text_new_cur.png                |    1 +
 icons/MVPurpleGrey/text_new_sel.png                |    1 +
 icons/MVPurpleGrey/text_rec.png                    |    1 +
 icons/MVPurpleGrey/text_rec_cur.png                |    1 +
 icons/MVPurpleGrey/text_rec_sel.png                |    1 +
 icons/MVPurpleGrey/text_timer_full.png             |    1 +
 icons/MVPurpleGrey/text_timer_full_cur.png         |    1 +
 icons/MVPurpleGrey/text_timer_full_sel.png         |    1 +
 icons/MVPurpleGrey/text_timer_partial.png          |    1 +
 icons/MVPurpleGrey/text_timer_partial_cur.png      |    1 +
 icons/MVPurpleGrey/text_timer_partial_sel.png      |    1 +
 icons/MVPurpleGrey/text_vps.png                    |    1 +
 icons/MVPurpleGrey/text_vps_cur.png                |    1 +
 icons/MVPurpleGrey/text_vps_sel.png                |    1 +
 icons/MVPurpleGrey/timerActive.png                 |    1 +
 icons/MVPurpleGrey/timerInactive.png               |    1 +
 icons/MVPurpleGrey/timerRecording.png              |    1 +
 icons/MVPurpleGrey/timer_full.png                  |  Bin 0 -> 4808 bytes
 icons/MVPurpleGrey/timer_full_cur.png              |    1 +
 icons/MVPurpleGrey/timer_partial.png               |  Bin 0 -> 2547 bytes
 icons/MVPurpleGrey/timer_partial_cur.png           |    1 +
 icons/MVPurpleGrey/topbar_timer.png                |    1 +
 icons/MVPurpleGrey/topbar_timerconflict_high.png   |    1 +
 icons/MVPurpleGrey/topbar_timerconflict_low.png    |    1 +
 icons/MVPurpleGrey/tv.png                          |    1 +
 icons/MVPurpleGrey/uncrypted.png                   |    1 +
 icons/MVPurpleGrey/unknown_asp.png                 |    1 +
 icons/MVPurpleGrey/unknown_res.png                 |    1 +
 icons/MVPurpleGrey/vps.png                         |  Bin 0 -> 5401 bytes
 icons/MVPurpleGrey/vps_cur.png                     |    1 +
 icons/MVRauchglas/1280x720.png                     |    1 +
 icons/MVRauchglas/1440x1080.png                    |    1 +
 icons/MVRauchglas/169.png                          |    1 +
 icons/MVRauchglas/169w.png                         |    1 +
 icons/MVRauchglas/1920x1080.png                    |    1 +
 icons/MVRauchglas/221.png                          |    1 +
 icons/MVRauchglas/352x576.png                      |    1 +
 icons/MVRauchglas/43.png                           |    1 +
 icons/MVRauchglas/480x576.png                      |    1 +
 icons/MVRauchglas/528x576.png                      |    1 +
 icons/MVRauchglas/544x576.png                      |    1 +
 icons/MVRauchglas/704x576.png                      |    1 +
 icons/MVRauchglas/720x576.png                      |    1 +
 icons/MVRauchglas/960x720.png                      |    1 +
 icons/MVRauchglas/blank.png                        |    1 +
 icons/MVRauchglas/changroup.png                    |  Bin 0 -> 761 bytes
 icons/MVRauchglas/chart1b.png                      |    1 +
 icons/MVRauchglas/chart2b.png                      |    1 +
 icons/MVRauchglas/chart3b.png                      |    1 +
 icons/MVRauchglas/chart4b.png                      |    1 +
 icons/MVRauchglas/chart5b.png                      |    1 +
 icons/MVRauchglas/chart6b.png                      |    1 +
 icons/MVRauchglas/chart7.png                       |    1 +
 icons/MVRauchglas/chart7b.png                      |    1 +
 icons/MVRauchglas/crypted.png                      |    1 +
 icons/MVRauchglas/forward.png                      |    1 +
 icons/MVRauchglas/forward_sel.png                  |  Bin 0 -> 2978 bytes
 icons/MVRauchglas/hd.png                           |    1 +
 icons/MVRauchglas/message_error.png                |    1 +
 icons/MVRauchglas/message_info.png                 |    1 +
 icons/MVRauchglas/message_status.png               |    1 +
 icons/MVRauchglas/message_warning.png              |    1 +
 icons/MVRauchglas/pause.png                        |    1 +
 icons/MVRauchglas/pause_sel.png                    |  Bin 0 -> 2700 bytes
 icons/MVRauchglas/play.png                         |    1 +
 icons/MVRauchglas/play_sel.png                     |  Bin 0 -> 3608 bytes
 icons/MVRauchglas/prev.png                         |    1 +
 icons/MVRauchglas/prev_sel.png                     |  Bin 0 -> 4156 bytes
 icons/MVRauchglas/radio.png                        |    1 +
 icons/MVRauchglas/recording.png                    |    1 +
 icons/MVRauchglas/recording_cutted.png             |  Bin 0 -> 2065 bytes
 icons/MVRauchglas/recording_cutted_cur.png         |  Bin 0 -> 2094 bytes
 icons/MVRauchglas/recording_cutted_extra.png       |  Bin 0 -> 2142 bytes
 icons/MVRauchglas/recording_new.png                |  Bin 0 -> 7425 bytes
 icons/MVRauchglas/recording_new_cur.png            |  Bin 0 -> 5512 bytes
 icons/MVRauchglas/rewind.png                       |    1 +
 icons/MVRauchglas/rewind_sel.png                   |  Bin 0 -> 3057 bytes
 icons/MVRauchglas/sd.png                           |    1 +
 icons/MVRauchglas/skip.png                         |    1 +
 icons/MVRauchglas/skip_sel.png                     |  Bin 0 -> 4127 bytes
 icons/MVRauchglas/text_arrowturn.png               |    1 +
 icons/MVRauchglas/text_arrowturn_cur.png           |    1 +
 icons/MVRauchglas/text_arrowturn_sel.png           |    1 +
 icons/MVRauchglas/text_new.png                     |    1 +
 icons/MVRauchglas/text_new_cur.png                 |    1 +
 icons/MVRauchglas/text_new_sel.png                 |    1 +
 icons/MVRauchglas/text_rec.png                     |    1 +
 icons/MVRauchglas/text_rec_cur.png                 |    1 +
 icons/MVRauchglas/text_rec_sel.png                 |    1 +
 icons/MVRauchglas/text_timer_full.png              |    1 +
 icons/MVRauchglas/text_timer_full_cur.png          |    1 +
 icons/MVRauchglas/text_timer_full_sel.png          |    1 +
 icons/MVRauchglas/text_timer_partial.png           |    1 +
 icons/MVRauchglas/text_timer_partial_cur.png       |    1 +
 icons/MVRauchglas/text_timer_partial_sel.png       |    1 +
 icons/MVRauchglas/text_vps.png                     |    1 +
 icons/MVRauchglas/text_vps_cur.png                 |    1 +
 icons/MVRauchglas/text_vps_sel.png                 |    1 +
 icons/MVRauchglas/timerActive.png                  |    1 +
 icons/MVRauchglas/timerInactive.png                |    1 +
 icons/MVRauchglas/timerRecording.png               |    1 +
 icons/MVRauchglas/timer_full.png                   |  Bin 0 -> 4884 bytes
 icons/MVRauchglas/timer_full_cur.png               |  Bin 0 -> 4913 bytes
 icons/MVRauchglas/timer_partial.png                |  Bin 0 -> 2516 bytes
 icons/MVRauchglas/timer_partial_cur.png            |  Bin 0 -> 2193 bytes
 icons/MVRauchglas/topbar_timer.png                 |    1 +
 icons/MVRauchglas/topbar_timerconflict_high.png    |    1 +
 icons/MVRauchglas/topbar_timerconflict_low.png     |    1 +
 icons/MVRauchglas/tv.png                           |    1 +
 icons/MVRauchglas/uncrypted.png                    |    1 +
 icons/MVRauchglas/unknown_asp.png                  |    1 +
 icons/MVRauchglas/unknown_res.png                  |    1 +
 icons/MVRauchglas/vps.png                          |  Bin 0 -> 5432 bytes
 icons/MVRauchglas/vps_cur.png                      |  Bin 0 -> 4830 bytes
 icons/MVRed/1280x720.png                           |    1 +
 icons/MVRed/1440x1080.png                          |    1 +
 icons/MVRed/169.png                                |    1 +
 icons/MVRed/169w.png                               |    1 +
 icons/MVRed/1920x1080.png                          |    1 +
 icons/MVRed/221.png                                |    1 +
 icons/MVRed/352x576.png                            |    1 +
 icons/MVRed/43.png                                 |    1 +
 icons/MVRed/480x576.png                            |    1 +
 icons/MVRed/528x576.png                            |    1 +
 icons/MVRed/544x576.png                            |    1 +
 icons/MVRed/704x576.png                            |    1 +
 icons/MVRed/720x576.png                            |    1 +
 icons/MVRed/960x720.png                            |    1 +
 icons/MVRed/blank.png                              |    1 +
 icons/MVRed/changroup.png                          |  Bin 0 -> 751 bytes
 icons/MVRed/chart1b.png                            |    1 +
 icons/MVRed/chart2b.png                            |    1 +
 icons/MVRed/chart3b.png                            |    1 +
 icons/MVRed/chart4b.png                            |    1 +
 icons/MVRed/chart5b.png                            |    1 +
 icons/MVRed/chart6b.png                            |    1 +
 icons/MVRed/chart7.png                             |    1 +
 icons/MVRed/chart7b.png                            |    1 +
 icons/MVRed/crypted.png                            |    1 +
 icons/MVRed/forward.png                            |    1 +
 icons/MVRed/forward_sel.png                        |  Bin 0 -> 2730 bytes
 icons/MVRed/hd.png                                 |    1 +
 icons/MVRed/message_error.png                      |    1 +
 icons/MVRed/message_info.png                       |    1 +
 icons/MVRed/message_status.png                     |    1 +
 icons/MVRed/message_warning.png                    |    1 +
 icons/MVRed/pause.png                              |    1 +
 icons/MVRed/pause_sel.png                          |  Bin 0 -> 2531 bytes
 icons/MVRed/play.png                               |    1 +
 icons/MVRed/play_sel.png                           |  Bin 0 -> 3268 bytes
 icons/MVRed/prev.png                               |    1 +
 icons/MVRed/prev_sel.png                           |  Bin 0 -> 3760 bytes
 icons/MVRed/radio.png                              |    1 +
 icons/MVRed/recording.png                          |    1 +
 icons/MVRed/recording_cutted.png                   |  Bin 0 -> 2033 bytes
 icons/MVRed/recording_cutted_cur.png               |    1 +
 icons/MVRed/recording_cutted_extra.png             |  Bin 0 -> 2058 bytes
 icons/MVRed/recording_new.png                      |  Bin 0 -> 6821 bytes
 icons/MVRed/recording_new_cur.png                  |    1 +
 icons/MVRed/rewind.png                             |    1 +
 icons/MVRed/rewind_sel.png                         |  Bin 0 -> 2821 bytes
 icons/MVRed/sd.png                                 |    1 +
 icons/MVRed/skip.png                               |    1 +
 icons/MVRed/skip_sel.png                           |  Bin 0 -> 3718 bytes
 icons/MVRed/text_arrowturn.png                     |    1 +
 icons/MVRed/text_arrowturn_cur.png                 |    1 +
 icons/MVRed/text_arrowturn_sel.png                 |    1 +
 icons/MVRed/text_new.png                           |    1 +
 icons/MVRed/text_new_cur.png                       |    1 +
 icons/MVRed/text_new_sel.png                       |    1 +
 icons/MVRed/text_rec.png                           |    1 +
 icons/MVRed/text_rec_cur.png                       |    1 +
 icons/MVRed/text_rec_sel.png                       |    1 +
 icons/MVRed/text_timer_full.png                    |    1 +
 icons/MVRed/text_timer_full_cur.png                |    1 +
 icons/MVRed/text_timer_full_sel.png                |    1 +
 icons/MVRed/text_timer_partial.png                 |    1 +
 icons/MVRed/text_timer_partial_cur.png             |    1 +
 icons/MVRed/text_timer_partial_sel.png             |    1 +
 icons/MVRed/text_vps.png                           |    1 +
 icons/MVRed/text_vps_cur.png                       |    1 +
 icons/MVRed/text_vps_sel.png                       |    1 +
 icons/MVRed/timerActive.png                        |    1 +
 icons/MVRed/timerInactive.png                      |    1 +
 icons/MVRed/timerRecording.png                     |    1 +
 icons/MVRed/timer_full.png                         |  Bin 0 -> 4690 bytes
 icons/MVRed/timer_full_cur.png                     |    1 +
 icons/MVRed/timer_partial.png                      |  Bin 0 -> 2268 bytes
 icons/MVRed/timer_partial_cur.png                  |    1 +
 icons/MVRed/topbar_timer.png                       |    1 +
 icons/MVRed/topbar_timerconflict_high.png          |    1 +
 icons/MVRed/topbar_timerconflict_low.png           |    1 +
 icons/MVRed/tv.png                                 |    1 +
 icons/MVRed/uncrypted.png                          |    1 +
 icons/MVRed/unknown_asp.png                        |    1 +
 icons/MVRed/unknown_res.png                        |    1 +
 icons/MVRed/vps.png                                |  Bin 0 -> 4947 bytes
 icons/MVRed/vps_cur.png                            |    1 +
 icons/MVTerra/1280x720.png                         |    1 +
 icons/MVTerra/1440x1080.png                        |    1 +
 icons/MVTerra/169.png                              |    1 +
 icons/MVTerra/169w.png                             |    1 +
 icons/MVTerra/1920x1080.png                        |    1 +
 icons/MVTerra/221.png                              |    1 +
 icons/MVTerra/352x576.png                          |    1 +
 icons/MVTerra/43.png                               |    1 +
 icons/MVTerra/480x576.png                          |    1 +
 icons/MVTerra/528x576.png                          |    1 +
 icons/MVTerra/544x576.png                          |    1 +
 icons/MVTerra/704x576.png                          |    1 +
 icons/MVTerra/720x576.png                          |    1 +
 icons/MVTerra/960x720.png                          |    1 +
 icons/MVTerra/blank.png                            |    1 +
 icons/MVTerra/changroup.png                        |  Bin 0 -> 765 bytes
 icons/MVTerra/chart1b.png                          |    1 +
 icons/MVTerra/chart2b.png                          |    1 +
 icons/MVTerra/chart3b.png                          |    1 +
 icons/MVTerra/chart4b.png                          |    1 +
 icons/MVTerra/chart5b.png                          |    1 +
 icons/MVTerra/chart6b.png                          |    1 +
 icons/MVTerra/chart7.png                           |    1 +
 icons/MVTerra/chart7b.png                          |    1 +
 icons/MVTerra/crypted.png                          |    1 +
 icons/MVTerra/forward.png                          |    1 +
 icons/MVTerra/forward_sel.png                      |  Bin 0 -> 2972 bytes
 icons/MVTerra/hd.png                               |    1 +
 icons/MVTerra/message_error.png                    |    1 +
 icons/MVTerra/message_info.png                     |    1 +
 icons/MVTerra/message_status.png                   |    1 +
 icons/MVTerra/message_warning.png                  |    1 +
 icons/MVTerra/pause.png                            |    1 +
 icons/MVTerra/pause_sel.png                        |  Bin 0 -> 2648 bytes
 icons/MVTerra/play.png                             |    1 +
 icons/MVTerra/play_sel.png                         |  Bin 0 -> 3577 bytes
 icons/MVTerra/prev.png                             |    1 +
 icons/MVTerra/prev_sel.png                         |  Bin 0 -> 4106 bytes
 icons/MVTerra/radio.png                            |    1 +
 icons/MVTerra/recording.png                        |    1 +
 icons/MVTerra/recording_cutted.png                 |  Bin 0 -> 2068 bytes
 icons/MVTerra/recording_cutted_cur.png             |    1 +
 icons/MVTerra/recording_cutted_extra.png           |  Bin 0 -> 2142 bytes
 icons/MVTerra/recording_new.png                    |  Bin 0 -> 7222 bytes
 icons/MVTerra/recording_new_cur.png                |    1 +
 icons/MVTerra/rewind.png                           |    1 +
 icons/MVTerra/rewind_sel.png                       |  Bin 0 -> 3052 bytes
 icons/MVTerra/sd.png                               |    1 +
 icons/MVTerra/skip.png                             |    1 +
 icons/MVTerra/skip_sel.png                         |  Bin 0 -> 4124 bytes
 icons/MVTerra/text_arrowturn.png                   |    1 +
 icons/MVTerra/text_arrowturn_cur.png               |    1 +
 icons/MVTerra/text_arrowturn_sel.png               |    1 +
 icons/MVTerra/text_new.png                         |    1 +
 icons/MVTerra/text_new_cur.png                     |    1 +
 icons/MVTerra/text_new_sel.png                     |    1 +
 icons/MVTerra/text_rec.png                         |    1 +
 icons/MVTerra/text_rec_cur.png                     |    1 +
 icons/MVTerra/text_rec_sel.png                     |    1 +
 icons/MVTerra/text_timer_full.png                  |    1 +
 icons/MVTerra/text_timer_full_cur.png              |    1 +
 icons/MVTerra/text_timer_full_sel.png              |    1 +
 icons/MVTerra/text_timer_partial.png               |    1 +
 icons/MVTerra/text_timer_partial_cur.png           |    1 +
 icons/MVTerra/text_timer_partial_sel.png           |    1 +
 icons/MVTerra/text_vps.png                         |    1 +
 icons/MVTerra/text_vps_cur.png                     |    1 +
 icons/MVTerra/text_vps_sel.png                     |    1 +
 icons/MVTerra/timerActive.png                      |    1 +
 icons/MVTerra/timerInactive.png                    |    1 +
 icons/MVTerra/timerRecording.png                   |    1 +
 icons/MVTerra/timer_full.png                       |  Bin 0 -> 4877 bytes
 icons/MVTerra/timer_full_cur.png                   |    1 +
 icons/MVTerra/timer_partial.png                    |  Bin 0 -> 2507 bytes
 icons/MVTerra/timer_partial_cur.png                |    1 +
 icons/MVTerra/topbar_timer.png                     |    1 +
 icons/MVTerra/topbar_timerconflict_high.png        |    1 +
 icons/MVTerra/topbar_timerconflict_low.png         |    1 +
 icons/MVTerra/tv.png                               |    1 +
 icons/MVTerra/uncrypted.png                        |    1 +
 icons/MVTerra/unknown_asp.png                      |    1 +
 icons/MVTerra/unknown_res.png                      |    1 +
 icons/MVTerra/vps.png                              |  Bin 0 -> 5251 bytes
 icons/MVTerra/vps_cur.png                          |    1 +
 icons/MVWhite/1280x720.png                         |    1 +
 icons/MVWhite/1440x1080.png                        |    1 +
 icons/MVWhite/169.png                              |    1 +
 icons/MVWhite/169w.png                             |    1 +
 icons/MVWhite/1920x1080.png                        |    1 +
 icons/MVWhite/221.png                              |    1 +
 icons/MVWhite/352x576.png                          |    1 +
 icons/MVWhite/43.png                               |    1 +
 icons/MVWhite/480x576.png                          |    1 +
 icons/MVWhite/528x576.png                          |    1 +
 icons/MVWhite/544x576.png                          |    1 +
 icons/MVWhite/704x576.png                          |    1 +
 icons/MVWhite/720x576.png                          |    1 +
 icons/MVWhite/960x720.png                          |    1 +
 icons/MVWhite/blank.png                            |    1 +
 icons/MVWhite/changroup.png                        |  Bin 0 -> 748 bytes
 icons/MVWhite/chart1b.png                          |    1 +
 icons/MVWhite/chart2b.png                          |    1 +
 icons/MVWhite/chart3b.png                          |    1 +
 icons/MVWhite/chart4b.png                          |    1 +
 icons/MVWhite/chart5b.png                          |    1 +
 icons/MVWhite/chart6b.png                          |    1 +
 icons/MVWhite/chart7.png                           |    1 +
 icons/MVWhite/chart7b.png                          |    1 +
 icons/MVWhite/crypted.png                          |    1 +
 icons/MVWhite/forward.png                          |    1 +
 icons/MVWhite/forward_sel.png                      |  Bin 0 -> 3493 bytes
 icons/MVWhite/hd.png                               |    1 +
 icons/MVWhite/message_error.png                    |    1 +
 icons/MVWhite/message_info.png                     |    1 +
 icons/MVWhite/message_status.png                   |    1 +
 icons/MVWhite/message_warning.png                  |    1 +
 icons/MVWhite/pause.png                            |    1 +
 icons/MVWhite/pause_sel.png                        |  Bin 0 -> 3522 bytes
 icons/MVWhite/play.png                             |    1 +
 icons/MVWhite/play_sel.png                         |  Bin 0 -> 4247 bytes
 icons/MVWhite/prev.png                             |    1 +
 icons/MVWhite/prev_sel.png                         |  Bin 0 -> 5416 bytes
 icons/MVWhite/radio.png                            |    1 +
 icons/MVWhite/recording.png                        |    1 +
 icons/MVWhite/recording_cutted.png                 |  Bin 0 -> 1852 bytes
 icons/MVWhite/recording_cutted_cur.png             |    1 +
 icons/MVWhite/recording_cutted_extra.png           |  Bin 0 -> 1935 bytes
 icons/MVWhite/recording_new.png                    |  Bin 0 -> 8072 bytes
 icons/MVWhite/recording_new_cur.png                |    1 +
 icons/MVWhite/rewind.png                           |    1 +
 icons/MVWhite/rewind_sel.png                       |  Bin 0 -> 3680 bytes
 icons/MVWhite/sd.png                               |    1 +
 icons/MVWhite/skip.png                             |    1 +
 icons/MVWhite/skip_sel.png                         |  Bin 0 -> 5241 bytes
 icons/MVWhite/text_arrowturn.png                   |    1 +
 icons/MVWhite/text_arrowturn_cur.png               |    1 +
 icons/MVWhite/text_arrowturn_sel.png               |    1 +
 icons/MVWhite/text_new.png                         |    1 +
 icons/MVWhite/text_new_cur.png                     |    1 +
 icons/MVWhite/text_new_sel.png                     |    1 +
 icons/MVWhite/text_rec.png                         |    1 +
 icons/MVWhite/text_rec_cur.png                     |    1 +
 icons/MVWhite/text_rec_sel.png                     |    1 +
 icons/MVWhite/text_timer_full.png                  |    1 +
 icons/MVWhite/text_timer_full_cur.png              |    1 +
 icons/MVWhite/text_timer_full_sel.png              |    1 +
 icons/MVWhite/text_timer_partial.png               |    1 +
 icons/MVWhite/text_timer_partial_cur.png           |    1 +
 icons/MVWhite/text_timer_partial_sel.png           |    1 +
 icons/MVWhite/text_vps.png                         |    1 +
 icons/MVWhite/text_vps_cur.png                     |    1 +
 icons/MVWhite/text_vps_sel.png                     |    1 +
 icons/MVWhite/timerActive.png                      |    1 +
 icons/MVWhite/timerInactive.png                    |    1 +
 icons/MVWhite/timerRecording.png                   |    1 +
 icons/MVWhite/timer_full.png                       |  Bin 0 -> 4105 bytes
 icons/MVWhite/timer_full_cur.png                   |    1 +
 icons/MVWhite/timer_partial.png                    |  Bin 0 -> 2559 bytes
 icons/MVWhite/timer_partial_cur.png                |    1 +
 icons/MVWhite/topbar_timer.png                     |    1 +
 icons/MVWhite/topbar_timerconflict_high.png        |    1 +
 icons/MVWhite/topbar_timerconflict_low.png         |    1 +
 icons/MVWhite/tv.png                               |    1 +
 icons/MVWhite/uncrypted.png                        |    1 +
 icons/MVWhite/unknown_asp.png                      |    1 +
 icons/MVWhite/unknown_res.png                      |    1 +
 icons/MVWhite/vps.png                              |  Bin 0 -> 4631 bytes
 icons/MVWhite/vps_cur.png                          |    1 +
 icons/MVXMAS/1280x720.png                          |    1 +
 icons/MVXMAS/1440x1080.png                         |    1 +
 icons/MVXMAS/169.png                               |    1 +
 icons/MVXMAS/169w.png                              |    1 +
 icons/MVXMAS/1920x1080.png                         |    1 +
 icons/MVXMAS/221.png                               |    1 +
 icons/MVXMAS/352x576.png                           |    1 +
 icons/MVXMAS/43.png                                |    1 +
 icons/MVXMAS/480x576.png                           |    1 +
 icons/MVXMAS/528x576.png                           |    1 +
 icons/MVXMAS/544x576.png                           |    1 +
 icons/MVXMAS/704x576.png                           |    1 +
 icons/MVXMAS/720x576.png                           |    1 +
 icons/MVXMAS/960x720.png                           |    1 +
 icons/MVXMAS/blank.png                             |    1 +
 icons/MVXMAS/changroup.png                         |  Bin 0 -> 748 bytes
 icons/MVXMAS/chart1b.png                           |    1 +
 icons/MVXMAS/chart2b.png                           |    1 +
 icons/MVXMAS/chart3b.png                           |    1 +
 icons/MVXMAS/chart4b.png                           |    1 +
 icons/MVXMAS/chart5b.png                           |    1 +
 icons/MVXMAS/chart6b.png                           |    1 +
 icons/MVXMAS/chart7.png                            |    1 +
 icons/MVXMAS/chart7b.png                           |    1 +
 icons/MVXMAS/crypted.png                           |    1 +
 icons/MVXMAS/forward.png                           |    1 +
 icons/MVXMAS/forward_sel.png                       |  Bin 0 -> 2853 bytes
 icons/MVXMAS/hd.png                                |    1 +
 icons/MVXMAS/message_error.png                     |    1 +
 icons/MVXMAS/message_info.png                      |    1 +
 icons/MVXMAS/message_status.png                    |    1 +
 icons/MVXMAS/message_warning.png                   |    1 +
 icons/MVXMAS/pause.png                             |    1 +
 icons/MVXMAS/pause_sel.png                         |  Bin 0 -> 2580 bytes
 icons/MVXMAS/play.png                              |    1 +
 icons/MVXMAS/play_sel.png                          |  Bin 0 -> 3391 bytes
 icons/MVXMAS/prev.png                              |    1 +
 icons/MVXMAS/prev_sel.png                          |  Bin 0 -> 3884 bytes
 icons/MVXMAS/radio.png                             |    1 +
 icons/MVXMAS/recording.png                         |    1 +
 icons/MVXMAS/recording_cutted.png                  |  Bin 0 -> 2072 bytes
 icons/MVXMAS/recording_cutted_cur.png              |  Bin 0 -> 2061 bytes
 icons/MVXMAS/recording_cutted_extra.png            |  Bin 0 -> 2092 bytes
 icons/MVXMAS/recording_new.png                     |  Bin 0 -> 6990 bytes
 icons/MVXMAS/recording_new_cur.png                 |  Bin 0 -> 6144 bytes
 icons/MVXMAS/rewind.png                            |    1 +
 icons/MVXMAS/rewind_sel.png                        |  Bin 0 -> 2916 bytes
 icons/MVXMAS/sd.png                                |    1 +
 icons/MVXMAS/skip.png                              |    1 +
 icons/MVXMAS/skip_sel.png                          |  Bin 0 -> 3889 bytes
 icons/MVXMAS/text_arrowturn.png                    |    1 +
 icons/MVXMAS/text_arrowturn_cur.png                |    1 +
 icons/MVXMAS/text_arrowturn_sel.png                |    1 +
 icons/MVXMAS/text_new.png                          |    1 +
 icons/MVXMAS/text_new_cur.png                      |    1 +
 icons/MVXMAS/text_new_sel.png                      |    1 +
 icons/MVXMAS/text_rec.png                          |    1 +
 icons/MVXMAS/text_rec_cur.png                      |    1 +
 icons/MVXMAS/text_rec_sel.png                      |    1 +
 icons/MVXMAS/text_timer_full.png                   |    1 +
 icons/MVXMAS/text_timer_full_cur.png               |    1 +
 icons/MVXMAS/text_timer_full_sel.png               |    1 +
 icons/MVXMAS/text_timer_partial.png                |    1 +
 icons/MVXMAS/text_timer_partial_cur.png            |    1 +
 icons/MVXMAS/text_timer_partial_sel.png            |    1 +
 icons/MVXMAS/text_vps.png                          |    1 +
 icons/MVXMAS/text_vps_cur.png                      |    1 +
 icons/MVXMAS/text_vps_sel.png                      |    1 +
 icons/MVXMAS/timerActive.png                       |    1 +
 icons/MVXMAS/timerInactive.png                     |    1 +
 icons/MVXMAS/timerRecording.png                    |    1 +
 icons/MVXMAS/timer_full.png                        |  Bin 0 -> 4743 bytes
 icons/MVXMAS/timer_full_cur.png                    |  Bin 0 -> 4834 bytes
 icons/MVXMAS/timer_partial.png                     |  Bin 0 -> 2373 bytes
 icons/MVXMAS/timer_partial_cur.png                 |  Bin 0 -> 2303 bytes
 icons/MVXMAS/topbar_timer.png                      |    1 +
 icons/MVXMAS/topbar_timerconflict_high.png         |    1 +
 icons/MVXMAS/topbar_timerconflict_low.png          |    1 +
 icons/MVXMAS/tv.png                                |    1 +
 icons/MVXMAS/uncrypted.png                         |    1 +
 icons/MVXMAS/unknown_asp.png                       |    1 +
 icons/MVXMAS/unknown_res.png                       |    1 +
 icons/MVXMAS/vps.png                               |  Bin 0 -> 5091 bytes
 icons/MVXMAS/vps_cur.png                           |  Bin 0 -> 5002 bytes
 icons/MVZitrone/1280x720.png                       |    1 +
 icons/MVZitrone/1440x1080.png                      |    1 +
 icons/MVZitrone/169.png                            |    1 +
 icons/MVZitrone/169w.png                           |    1 +
 icons/MVZitrone/1920x1080.png                      |    1 +
 icons/MVZitrone/221.png                            |    1 +
 icons/MVZitrone/352x576.png                        |    1 +
 icons/MVZitrone/43.png                             |    1 +
 icons/MVZitrone/480x576.png                        |    1 +
 icons/MVZitrone/528x576.png                        |    1 +
 icons/MVZitrone/544x576.png                        |    1 +
 icons/MVZitrone/704x576.png                        |    1 +
 icons/MVZitrone/720x576.png                        |    1 +
 icons/MVZitrone/960x720.png                        |    1 +
 icons/MVZitrone/blank.png                          |    1 +
 icons/MVZitrone/changroup.png                      |  Bin 0 -> 753 bytes
 icons/MVZitrone/chart1b.png                        |    1 +
 icons/MVZitrone/chart2b.png                        |    1 +
 icons/MVZitrone/chart3b.png                        |    1 +
 icons/MVZitrone/chart4b.png                        |    1 +
 icons/MVZitrone/chart5b.png                        |    1 +
 icons/MVZitrone/chart6b.png                        |    1 +
 icons/MVZitrone/chart7.png                         |    1 +
 icons/MVZitrone/chart7b.png                        |    1 +
 icons/MVZitrone/crypted.png                        |    1 +
 icons/MVZitrone/forward.png                        |    1 +
 icons/MVZitrone/forward_sel.png                    |  Bin 0 -> 3180 bytes
 icons/MVZitrone/hd.png                             |    1 +
 icons/MVZitrone/message_error.png                  |    1 +
 icons/MVZitrone/message_info.png                   |    1 +
 icons/MVZitrone/message_status.png                 |    1 +
 icons/MVZitrone/message_warning.png                |    1 +
 icons/MVZitrone/pause.png                          |    1 +
 icons/MVZitrone/pause_sel.png                      |  Bin 0 -> 3052 bytes
 icons/MVZitrone/play.png                           |    1 +
 icons/MVZitrone/play_sel.png                       |  Bin 0 -> 3852 bytes
 icons/MVZitrone/prev.png                           |    1 +
 icons/MVZitrone/prev_sel.png                       |  Bin 0 -> 4628 bytes
 icons/MVZitrone/radio.png                          |    1 +
 icons/MVZitrone/recording.png                      |    1 +
 icons/MVZitrone/recording_cutted.png               |  Bin 0 -> 2071 bytes
 icons/MVZitrone/recording_cutted_cur.png           |  Bin 0 -> 2047 bytes
 icons/MVZitrone/recording_cutted_extra.png         |  Bin 0 -> 2097 bytes
 icons/MVZitrone/recording_new.png                  |  Bin 0 -> 7621 bytes
 icons/MVZitrone/recording_new_cur.png              |  Bin 0 -> 7128 bytes
 icons/MVZitrone/rewind.png                         |    1 +
 icons/MVZitrone/rewind_sel.png                     |  Bin 0 -> 3301 bytes
 icons/MVZitrone/sd.png                             |    1 +
 icons/MVZitrone/skip.png                           |    1 +
 icons/MVZitrone/skip_sel.png                       |  Bin 0 -> 4580 bytes
 icons/MVZitrone/text_arrowturn.png                 |    1 +
 icons/MVZitrone/text_arrowturn_cur.png             |    1 +
 icons/MVZitrone/text_arrowturn_sel.png             |    1 +
 icons/MVZitrone/text_new.png                       |    1 +
 icons/MVZitrone/text_new_cur.png                   |    1 +
 icons/MVZitrone/text_new_sel.png                   |    1 +
 icons/MVZitrone/text_rec.png                       |    1 +
 icons/MVZitrone/text_rec_cur.png                   |    1 +
 icons/MVZitrone/text_rec_sel.png                   |    1 +
 icons/MVZitrone/text_timer_full.png                |    1 +
 icons/MVZitrone/text_timer_full_cur.png            |    1 +
 icons/MVZitrone/text_timer_full_sel.png            |    1 +
 icons/MVZitrone/text_timer_partial.png             |    1 +
 icons/MVZitrone/text_timer_partial_cur.png         |    1 +
 icons/MVZitrone/text_timer_partial_sel.png         |    1 +
 icons/MVZitrone/text_vps.png                       |    1 +
 icons/MVZitrone/text_vps_cur.png                   |    1 +
 icons/MVZitrone/text_vps_sel.png                   |    1 +
 icons/MVZitrone/timerActive.png                    |    1 +
 icons/MVZitrone/timerInactive.png                  |    1 +
 icons/MVZitrone/timerRecording.png                 |    1 +
 icons/MVZitrone/timer_full.png                     |  Bin 0 -> 4745 bytes
 icons/MVZitrone/timer_full_cur.png                 |  Bin 0 -> 4798 bytes
 icons/MVZitrone/timer_partial.png                  |  Bin 0 -> 2471 bytes
 icons/MVZitrone/timer_partial_cur.png              |  Bin 0 -> 2464 bytes
 icons/MVZitrone/topbar_timer.png                   |    1 +
 icons/MVZitrone/topbar_timerconflict_high.png      |    1 +
 icons/MVZitrone/topbar_timerconflict_low.png       |    1 +
 icons/MVZitrone/tv.png                             |    1 +
 icons/MVZitrone/uncrypted.png                      |    1 +
 icons/MVZitrone/unknown_asp.png                    |    1 +
 icons/MVZitrone/unknown_res.png                    |    1 +
 icons/MVZitrone/vps.png                            |  Bin 0 -> 5367 bytes
 icons/MVZitrone/vps_cur.png                        |  Bin 0 -> 5309 bytes
 icons/MVdefault/1280x720.png                       |  Bin 0 -> 2245 bytes
 icons/MVdefault/1440x1080.png                      |  Bin 0 -> 1773 bytes
 icons/MVdefault/169.png                            |  Bin 0 -> 1436 bytes
 icons/MVdefault/169w.png                           |  Bin 0 -> 2164 bytes
 icons/MVdefault/1920x1080.png                      |  Bin 0 -> 2192 bytes
 icons/MVdefault/221.png                            |  Bin 0 -> 1060 bytes
 icons/MVdefault/352x576.png                        |  Bin 0 -> 2358 bytes
 icons/MVdefault/43.png                             |  Bin 0 -> 1181 bytes
 icons/MVdefault/480x576.png                        |  Bin 0 -> 2321 bytes
 icons/MVdefault/528x576.png                        |  Bin 0 -> 2442 bytes
 icons/MVdefault/544x576.png                        |  Bin 0 -> 1597 bytes
 icons/MVdefault/704x576.png                        |  Bin 0 -> 1930 bytes
 icons/MVdefault/720x576.png                        |  Bin 0 -> 1694 bytes
 icons/MVdefault/960x720.png                        |  Bin 0 -> 2668 bytes
 icons/MVdefault/blank.png                          |  Bin 0 -> 142 bytes
 icons/MVdefault/changroup.png                      |  Bin 0 -> 444 bytes
 icons/MVdefault/chart1b.png                        |    1 +
 icons/MVdefault/chart2b.png                        |    1 +
 icons/MVdefault/chart3b.png                        |    1 +
 icons/MVdefault/chart4b.png                        |    1 +
 icons/MVdefault/chart5b.png                        |    1 +
 icons/MVdefault/chart6b.png                        |    1 +
 icons/MVdefault/chart7.png                         |  Bin 0 -> 1580 bytes
 icons/MVdefault/chart7b.png                        |    1 +
 icons/MVdefault/crypted.png                        |  Bin 0 -> 490 bytes
 icons/MVdefault/forward.png                        |  Bin 0 -> 2122 bytes
 icons/MVdefault/forward_sel.png                    |  Bin 0 -> 3360 bytes
 icons/MVdefault/hd.png                             |  Bin 0 -> 1510 bytes
 icons/MVdefault/message_error.png                  |  Bin 0 -> 820 bytes
 icons/MVdefault/message_info.png                   |  Bin 0 -> 2038 bytes
 icons/MVdefault/message_status.png                 |  Bin 0 -> 2006 bytes
 icons/MVdefault/message_warning.png                |  Bin 0 -> 1916 bytes
 icons/MVdefault/pause.png                          |  Bin 0 -> 2463 bytes
 icons/MVdefault/pause_sel.png                      |  Bin 0 -> 3391 bytes
 icons/MVdefault/play.png                           |  Bin 0 -> 2393 bytes
 icons/MVdefault/play_sel.png                       |  Bin 0 -> 4123 bytes
 icons/MVdefault/prev.png                           |  Bin 0 -> 3161 bytes
 icons/MVdefault/prev_sel.png                       |  Bin 0 -> 5373 bytes
 icons/MVdefault/radio.png                          |  Bin 0 -> 15309 bytes
 icons/MVdefault/recording.png                      |  Bin 0 -> 1207 bytes
 icons/MVdefault/recording_cutted.png               |  Bin 0 -> 1600 bytes
 icons/MVdefault/recording_cutted_cur.png           |  Bin 0 -> 2053 bytes
 icons/MVdefault/recording_cutted_extra.png         |  Bin 0 -> 1659 bytes
 icons/MVdefault/recording_new.png                  |  Bin 0 -> 7614 bytes
 icons/MVdefault/recording_new_cur.png              |  Bin 0 -> 5109 bytes
 icons/MVdefault/rewind.png                         |  Bin 0 -> 2137 bytes
 icons/MVdefault/rewind_sel.png                     |  Bin 0 -> 3543 bytes
 icons/MVdefault/sd.png                             |  Bin 0 -> 1922 bytes
 icons/MVdefault/skip.png                           |  Bin 0 -> 3119 bytes
 icons/MVdefault/skip_sel.png                       |  Bin 0 -> 5208 bytes
 icons/MVdefault/text_arrowturn.png                 |  Bin 0 -> 929 bytes
 icons/MVdefault/text_arrowturn_cur.png             |    1 +
 icons/MVdefault/text_arrowturn_sel.png             |    1 +
 icons/MVdefault/text_new.png                       |    1 +
 icons/MVdefault/text_new_cur.png                   |    1 +
 icons/MVdefault/text_new_sel.png                   |    1 +
 icons/MVdefault/text_rec.png                       |    1 +
 icons/MVdefault/text_rec_cur.png                   |    1 +
 icons/MVdefault/text_rec_sel.png                   |    1 +
 icons/MVdefault/text_timer_full.png                |  Bin 0 -> 6078 bytes
 icons/MVdefault/text_timer_full_cur.png            |    1 +
 icons/MVdefault/text_timer_full_sel.png            |    1 +
 icons/MVdefault/text_timer_partial.png             |    1 +
 icons/MVdefault/text_timer_partial_cur.png         |    1 +
 icons/MVdefault/text_timer_partial_sel.png         |    1 +
 icons/MVdefault/text_vps.png                       |    1 +
 icons/MVdefault/text_vps_cur.png                   |    1 +
 icons/MVdefault/text_vps_sel.png                   |    1 +
 icons/MVdefault/timerActive.png                    |  Bin 0 -> 4642 bytes
 icons/MVdefault/timerInactive.png                  |  Bin 0 -> 3538 bytes
 icons/MVdefault/timerRecording.png                 |  Bin 0 -> 3150 bytes
 icons/MVdefault/timer_full.png                     |  Bin 0 -> 2889 bytes
 icons/MVdefault/timer_full_cur.png                 |  Bin 0 -> 4827 bytes
 icons/MVdefault/timer_partial.png                  |  Bin 0 -> 1510 bytes
 icons/MVdefault/timer_partial_cur.png              |  Bin 0 -> 2105 bytes
 icons/MVdefault/topbar_timer.png                   |  Bin 0 -> 658 bytes
 icons/MVdefault/topbar_timerconflict_high.png      |  Bin 0 -> 12082 bytes
 icons/MVdefault/topbar_timerconflict_low.png       |  Bin 0 -> 11715 bytes
 icons/MVdefault/tv.png                             |  Bin 0 -> 1531 bytes
 icons/MVdefault/uncrypted.png                      |  Bin 0 -> 1824 bytes
 icons/MVdefault/unknown_asp.png                    |  Bin 0 -> 1350 bytes
 icons/MVdefault/unknown_res.png                    |  Bin 0 -> 1192 bytes
 icons/MVdefault/vps.png                            |  Bin 0 -> 4084 bytes
 icons/MVdefault/vps_cur.png                        |  Bin 0 -> 4795 bytes
 icons/default/1280x720.png                         |  Bin 0 -> 1675 bytes
 icons/default/1440x1080.png                        |  Bin 0 -> 1146 bytes
 icons/default/169.png                              |  Bin 0 -> 1065 bytes
 icons/default/169w.png                             |  Bin 0 -> 1355 bytes
 icons/default/1920x1080.png                        |  Bin 0 -> 1649 bytes
 icons/default/221.png                              |  Bin 0 -> 841 bytes
 icons/default/352x576.png                          |  Bin 0 -> 1390 bytes
 icons/default/43.png                               |  Bin 0 -> 896 bytes
 icons/default/480x576.png                          |  Bin 0 -> 1402 bytes
 icons/default/528x576.png                          |  Bin 0 -> 1382 bytes
 icons/default/544x576.png                          |  Bin 0 -> 958 bytes
 icons/default/704x576.png                          |  Bin 0 -> 1200 bytes
 icons/default/720x576.png                          |  Bin 0 -> 1311 bytes
 icons/default/960x720.png                          |  Bin 0 -> 1447 bytes
 icons/default/EPGInfo/FSK/FSK_0.png                |  Bin 0 -> 18438 bytes
 icons/default/EPGInfo/FSK/ab 12.png                |  Bin 0 -> 18705 bytes
 icons/default/EPGInfo/FSK/ab 16.png                |  Bin 0 -> 20091 bytes
 icons/default/EPGInfo/FSK/ab 18.png                |  Bin 0 -> 15851 bytes
 icons/default/EPGInfo/FSK/ab 6.png                 |  Bin 0 -> 18809 bytes
 icons/default/EPGInfo/FSK/unknown.png              |  Bin 0 -> 8328 bytes
 icons/default/EPGInfo/FSK/unknown2.png             |  Bin 0 -> 7892 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Abenteuer.png   |  Bin 0 -> 4724 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Action.png      |  Bin 0 -> 4656 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Action2.png     |  Bin 0 -> 4036 bytes
 .../EPGInfo/Genre/A0A0A0/Administrator2.png        |  Bin 0 -> 2111 bytes
 .../EPGInfo/Genre/A0A0A0/Adventure_Western_War.png |  Bin 0 -> 7016 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Applouse.png    |  Bin 0 -> 2359 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Archeology.png  |  Bin 0 -> 2781 bytes
 .../default/EPGInfo/Genre/A0A0A0/Arts_Culture.png  |  Bin 0 -> 2218 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Assistant.png   |  Bin 0 -> 3154 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Audience.png    |  Bin 0 -> 1799 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Baby.png        |  Bin 0 -> 1641 bytes
 .../default/EPGInfo/Genre/A0A0A0/Ballet_Shoes.png  |  Bin 0 -> 2457 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Beach.png       |  Bin 0 -> 4430 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Binoculars.png  |  Bin 0 -> 2212 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Black_White.png |  Bin 0 -> 3545 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Books.png       |  Bin 0 -> 1901 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Bowling.png     |  Bin 0 -> 2523 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Boxing.png      |  Bin 0 -> 1641 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Brain.png       |  Bin 0 -> 2512 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Breast.png      |  Bin 0 -> 2198 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Brick.png       |  Bin 0 -> 2327 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Brick2.png      |  Bin 0 -> 2305 bytes
 .../default/EPGInfo/Genre/A0A0A0/Broadcasting.png  |  Bin 0 -> 2650 bytes
 .../default/EPGInfo/Genre/A0A0A0/Bunch_Flowers.png |  Bin 0 -> 2666 bytes
 .../EPGInfo/Genre/A0A0A0/Bunch_Ingredients.png     |  Bin 0 -> 1771 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Camcoder.png    |  Bin 0 -> 1609 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Cannon.png      |  Bin 0 -> 1891 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Carousel.png    |  Bin 0 -> 2229 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Children.png    |  Bin 0 -> 2670 bytes
 .../EPGInfo/Genre/A0A0A0/Children_10-16.png        |  Bin 0 -> 5534 bytes
 .../default/EPGInfo/Genre/A0A0A0/Children_6-14.png |  Bin 0 -> 5238 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Choir.png       |  Bin 0 -> 3352 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Church.png      |  Bin 0 -> 1394 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Conference.png  |  Bin 0 -> 3736 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Courses.png     |  Bin 0 -> 890 bytes
 icons/default/EPGInfo/Genre/A0A0A0/DNA_Helix.png   |  Bin 0 -> 2748 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Dancing.png     |  Bin 0 -> 1698 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Detektiv.png    |  Bin 0 -> 4656 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Diploma2.png    |  Bin 0 -> 3554 bytes
 .../default/EPGInfo/Genre/A0A0A0/Dokumentation.png |  Bin 0 -> 2447 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Drama.png       |  Bin 0 -> 3366 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Engine.png      |  Bin 0 -> 1314 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Engineering.png |  Bin 0 -> 2155 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Erotik.png      |  Bin 0 -> 3325 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Erotik2.png     |  Bin 0 -> 3213 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Fantasie.png    |  Bin 0 -> 3416 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Film.png        |  Bin 0 -> 1715 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Finish_Flag.png |  Bin 0 -> 4590 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Football.png    |  Bin 0 -> 1612 bytes
 icons/default/EPGInfo/Genre/A0A0A0/German_Hat.png  |  Bin 0 -> 2426 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Globe_Earth.png |  Bin 0 -> 4349 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Guitar.png      |  Bin 0 -> 2083 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Guru.png        |  Bin 0 -> 2772 bytes
 .../default/EPGInfo/Genre/A0A0A0/Hand_Planting.png |  Bin 0 -> 1974 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Health.png      |  Bin 0 -> 1947 bytes
 .../default/EPGInfo/Genre/A0A0A0/Heart_Monitor.png |  Bin 0 -> 1419 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Historisch.png  |  Bin 0 -> 3479 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Horror.png      |  Bin 0 -> 2997 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Horse.png       |  Bin 0 -> 1843 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Kitchen.png     |  Bin 0 -> 1273 bytes
 .../EPGInfo/Genre/A0A0A0/Kom\303\266die.png"       |  Bin 0 -> 3201 bytes
 .../EPGInfo/Genre/A0A0A0/Kom\303\266die2.png"      |  Bin 0 -> 3979 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Krimi.png       |  Bin 0 -> 2022 bytes
 icons/default/EPGInfo/Genre/A0A0A0/LCD.png         |  Bin 0 -> 1694 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Law.png         |  Bin 0 -> 1645 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Literature.png  |  Bin 0 -> 1978 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Magazine.png    |  Bin 0 -> 4233 bytes
 .../EPGInfo/Genre/A0A0A0/Medical_Doctor.png        |  Bin 0 -> 1660 bytes
 .../default/EPGInfo/Genre/A0A0A0/Mickey-Mouse.png  |  Bin 0 -> 5563 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Modern_Art.png  |  Bin 0 -> 1450 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Movie_Drama.png |  Bin 0 -> 4302 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Music.png       |  Bin 0 -> 1289 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Musik.png       |  Bin 0 -> 1893 bytes
 .../EPGInfo/Genre/A0A0A0/M\303\244rchen.png"       |  Bin 0 -> 3108 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Newspaper.png   |  Bin 0 -> 2821 bytes
 .../EPGInfo/Genre/A0A0A0/North_Direction.png       |  Bin 0 -> 3251 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Online.png      |  Bin 0 -> 1882 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Pacifier.png    |  Bin 0 -> 1988 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Palm-Tree.png   |  Bin 0 -> 3922 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Parliament.png  |  Bin 0 -> 1560 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Percentage2.png |  Bin 0 -> 1624 bytes
 .../EPGInfo/Genre/A0A0A0/Performing Arts.png       |  Bin 0 -> 3341 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Physics.png     |  Bin 0 -> 2796 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Pie_Chart.png   |  Bin 0 -> 3025 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Playground.png  |  Bin 0 -> 1735 bytes
 .../A0A0A0/Popular Culture_Traditional Arts.png    |  Bin 0 -> 4015 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Processor.png   |  Bin 0 -> 1220 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Rattle.png      |  Bin 0 -> 1679 bytes
 .../EPGInfo/Genre/A0A0A0/Regular_Biking.png        |  Bin 0 -> 2090 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Research.png    |  Bin 0 -> 1819 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Restaurant.png  |  Bin 0 -> 2583 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Rock.png        |  Bin 0 -> 5962 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Roman.png       |  Bin 0 -> 3142 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Running.png     |  Bin 0 -> 2197 bytes
 .../Genre/A0A0A0/Satellite_Sending_Signal.png      |  Bin 0 -> 2293 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Saxophone.png   |  Bin 0 -> 3960 bytes
 .../EPGInfo/Genre/A0A0A0/SciFi_Fantasy_Horror.png  |  Bin 0 -> 7240 bytes
 .../EPGInfo/Genre/A0A0A0/Science-Fiction.png       |  Bin 0 -> 3616 bytes
 ..._Classical_Religious_Historical Movie_Drama.png |  Bin 0 -> 6454 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Server.png      |  Bin 0 -> 1344 bytes
 .../EPGInfo/Genre/A0A0A0/Sheet_Of_Paper.png        |  Bin 0 -> 1844 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Shoe_Woman.png  |  Bin 0 -> 1222 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Shopping.png    |  Bin 0 -> 2913 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Skiing.png      |  Bin 0 -> 4146 bytes
 .../Genre/A0A0A0/Social_Political_Economics.png    |  Bin 0 -> 4019 bytes
 .../default/EPGInfo/Genre/A0A0A0/Special Event.png |  Bin 0 -> 6257 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Spiel.png       |  Bin 0 -> 3044 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Sport.png       |  Bin 0 -> 3986 bytes
 .../default/EPGInfo/Genre/A0A0A0/Sport_Magazin.png |  Bin 0 -> 8287 bytes
 .../default/EPGInfo/Genre/A0A0A0/Stanley_Knife.png |  Bin 0 -> 1491 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Strikes.png     |  Bin 0 -> 3079 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Stroller.png    |  Bin 0 -> 1875 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Student.png     |  Bin 0 -> 4458 bytes
 .../EPGInfo/Genre/A0A0A0/Student_Filled.png        |  Bin 0 -> 2308 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Students2.png   |  Bin 0 -> 2464 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Suitcase.png    |  Bin 0 -> 1634 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Swimming.png    |  Bin 0 -> 3012 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Talk.png        |  Bin 0 -> 3464 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Teams.png       |  Bin 0 -> 3170 bytes
 .../EPGInfo/Genre/A0A0A0/Technology_Science.png    |  Bin 0 -> 2372 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Teddybear.png   |  Bin 0 -> 3017 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Temperature.png |  Bin 0 -> 1338 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Tennis.png      |  Bin 0 -> 4074 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Test_Tube.png   |  Bin 0 -> 1729 bytes
 .../default/EPGInfo/Genre/A0A0A0/Theatre_Masks.png |  Bin 0 -> 4132 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Thriller.png    |  Bin 0 -> 4475 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Ticket.png      |  Bin 0 -> 1210 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Treble_Clef.png |  Bin 0 -> 1786 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Tricycle.png    |  Bin 0 -> 3278 bytes
 icons/default/EPGInfo/Genre/A0A0A0/University.png  |  Bin 0 -> 1058 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Unpublished.png |  Bin 0 -> 6303 bytes
 .../default/EPGInfo/Genre/A0A0A0/Waypoint_Map.png  |  Bin 0 -> 3295 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Weather.png     |  Bin 0 -> 4001 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Western.png     |  Bin 0 -> 2434 bytes
 icons/default/EPGInfo/Genre/A0A0A0/World_Map.png   |  Bin 0 -> 2641 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Yoga.png        |  Bin 0 -> 1449 bytes
 icons/default/EPGInfo/Genre/A0A0A0/Zombie.png      |  Bin 0 -> 4531 bytes
 icons/default/EPGInfo/Genre/A0A0A0/unknown.png     |  Bin 0 -> 2202 bytes
 icons/default/EPGInfo/Genre/Adult Movie_Drama.png  |    1 +
 .../EPGInfo/Genre/Adventure_Western_War.png        |    1 +
 .../EPGInfo/Genre/Advertisement_Shopping.png       |    1 +
 .../EPGInfo/Genre/Arts_Culture Magazine.png        |    1 +
 icons/default/EPGInfo/Genre/Arts_Culture.png       |    1 +
 icons/default/EPGInfo/Genre/Athletics.png          |    1 +
 icons/default/EPGInfo/Genre/Ballet.png             |    1 +
 icons/default/EPGInfo/Genre/Black_White.png        |    1 +
 icons/default/EPGInfo/Genre/Broadcasting_Press.png |    1 +
 icons/default/EPGInfo/Genre/Cartoons_Puppets.png   |    1 +
 .../EPGInfo/Genre/Childrens_Youth Programme.png    |    1 +
 icons/default/EPGInfo/Genre/Comedy.png             |    1 +
 icons/default/EPGInfo/Genre/Cooking.png            |    1 +
 icons/default/EPGInfo/Genre/Detective_Thriller.png |    1 +
 .../EPGInfo/Genre/Discussion_Inverview_Debate.png  |    1 +
 icons/default/EPGInfo/Genre/Documentary.png        |    1 +
 .../EPGInfo/Genre/Education_Science_Factual.png    |    1 +
 .../Genre/Entertainment Programme for 10 to 16.png |    1 +
 .../Genre/Entertainment Programme for 6 to 14.png  |    1 +
 icons/default/EPGInfo/Genre/Equestrian.png         |    1 +
 .../EPGInfo/Genre/Experimental Film_Video.png      |    1 +
 icons/default/EPGInfo/Genre/FFFFFF/Abenteuer.png   |  Bin 0 -> 4480 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Action.png      |  Bin 0 -> 4503 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Action2.png     |  Bin 0 -> 3893 bytes
 .../EPGInfo/Genre/FFFFFF/Administrator2.png        |  Bin 0 -> 2063 bytes
 .../EPGInfo/Genre/FFFFFF/Adventure_Western_War.png |  Bin 0 -> 6925 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Applouse.png    |  Bin 0 -> 2204 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Archeology.png  |  Bin 0 -> 2876 bytes
 .../default/EPGInfo/Genre/FFFFFF/Arts_Culture.png  |  Bin 0 -> 2168 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Assistant.png   |  Bin 0 -> 3061 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Audience.png    |  Bin 0 -> 1699 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Baby.png        |  Bin 0 -> 1623 bytes
 .../default/EPGInfo/Genre/FFFFFF/Ballet_Shoes.png  |  Bin 0 -> 2430 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Beach.png       |  Bin 0 -> 4331 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Binoculars.png  |  Bin 0 -> 2040 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Black_White.png |  Bin 0 -> 3527 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Books.png       |  Bin 0 -> 1792 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Bowling.png     |  Bin 0 -> 2453 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Boxing.png      |  Bin 0 -> 1605 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Brain.png       |  Bin 0 -> 2351 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Breast.png      |  Bin 0 -> 2126 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Brick.png       |  Bin 0 -> 2141 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Brick2.png      |  Bin 0 -> 2110 bytes
 .../default/EPGInfo/Genre/FFFFFF/Broadcasting.png  |  Bin 0 -> 2298 bytes
 .../default/EPGInfo/Genre/FFFFFF/Bunch_Flowers.png |  Bin 0 -> 2485 bytes
 .../EPGInfo/Genre/FFFFFF/Bunch_Ingredients.png     |  Bin 0 -> 1665 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Camcoder.png    |  Bin 0 -> 1564 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Cannon.png      |  Bin 0 -> 1781 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Carousel.png    |  Bin 0 -> 2196 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Children.png    |  Bin 0 -> 2681 bytes
 .../EPGInfo/Genre/FFFFFF/Children_10-16.png        |  Bin 0 -> 5441 bytes
 .../default/EPGInfo/Genre/FFFFFF/Children_6-14.png |  Bin 0 -> 5190 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Choir.png       |  Bin 0 -> 3195 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Church.png      |  Bin 0 -> 1396 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Conference.png  |  Bin 0 -> 3747 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Courses.png     |  Bin 0 -> 879 bytes
 icons/default/EPGInfo/Genre/FFFFFF/DNA_Helix.png   |  Bin 0 -> 2395 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Dancing.png     |  Bin 0 -> 1717 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Detektiv.png    |  Bin 0 -> 4492 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Diploma2.png    |  Bin 0 -> 3268 bytes
 .../default/EPGInfo/Genre/FFFFFF/Dokumentation.png |  Bin 0 -> 2417 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Drama.png       |  Bin 0 -> 3306 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Engine.png      |  Bin 0 -> 1304 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Engineering.png |  Bin 0 -> 1798 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Erotik.png      |  Bin 0 -> 3297 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Erotik2.png     |  Bin 0 -> 3106 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Fantasie.png    |  Bin 0 -> 3311 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Film.png        |  Bin 0 -> 1681 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Finish_Flag.png |  Bin 0 -> 4489 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Football.png    |  Bin 0 -> 1569 bytes
 icons/default/EPGInfo/Genre/FFFFFF/German_Hat.png  |  Bin 0 -> 2338 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Globe_Earth.png |  Bin 0 -> 3932 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Guitar.png      |  Bin 0 -> 1900 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Guru.png        |  Bin 0 -> 2662 bytes
 .../default/EPGInfo/Genre/FFFFFF/Hand_Planting.png |  Bin 0 -> 1823 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Health.png      |  Bin 0 -> 1936 bytes
 .../default/EPGInfo/Genre/FFFFFF/Heart_Monitor.png |  Bin 0 -> 1437 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Historisch.png  |  Bin 0 -> 3520 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Horror.png      |  Bin 0 -> 3017 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Horse.png       |  Bin 0 -> 1836 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Kitchen.png     |  Bin 0 -> 1248 bytes
 .../EPGInfo/Genre/FFFFFF/Kom\303\266die.png"       |  Bin 0 -> 3135 bytes
 .../EPGInfo/Genre/FFFFFF/Kom\303\266die2.png"      |  Bin 0 -> 3825 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Krimi.png       |  Bin 0 -> 2007 bytes
 icons/default/EPGInfo/Genre/FFFFFF/LCD.png         |  Bin 0 -> 1689 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Law.png         |  Bin 0 -> 1493 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Literature.png  |  Bin 0 -> 1939 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Magazine.png    |  Bin 0 -> 4150 bytes
 .../EPGInfo/Genre/FFFFFF/Medical_Doctor.png        |  Bin 0 -> 1610 bytes
 .../default/EPGInfo/Genre/FFFFFF/Mickey-Mouse.png  |  Bin 0 -> 5363 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Modern_Art.png  |  Bin 0 -> 1411 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Movie_Drama.png |  Bin 0 -> 4242 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Music.png       |  Bin 0 -> 1305 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Musik.png       |  Bin 0 -> 1899 bytes
 .../EPGInfo/Genre/FFFFFF/M\303\244rchen.png"       |  Bin 0 -> 3021 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Newspaper.png   |  Bin 0 -> 2801 bytes
 .../EPGInfo/Genre/FFFFFF/North_Direction.png       |  Bin 0 -> 3083 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Online.png      |  Bin 0 -> 1826 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Pacifier.png    |  Bin 0 -> 1870 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Palm-Tree.png   |  Bin 0 -> 3889 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Parliament.png  |  Bin 0 -> 1514 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Percentage2.png |  Bin 0 -> 1533 bytes
 .../EPGInfo/Genre/FFFFFF/Performing Arts.png       |  Bin 0 -> 3292 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Physics.png     |  Bin 0 -> 2134 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Pie_Chart.png   |  Bin 0 -> 2953 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Playground.png  |  Bin 0 -> 1760 bytes
 .../FFFFFF/Popular Culture_Traditional Arts.png    |  Bin 0 -> 3972 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Processor.png   |  Bin 0 -> 1208 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Rattle.png      |  Bin 0 -> 1639 bytes
 .../EPGInfo/Genre/FFFFFF/Regular_Biking.png        |  Bin 0 -> 1914 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Research.png    |  Bin 0 -> 1757 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Restaurant.png  |  Bin 0 -> 2584 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Rock.png        |  Bin 0 -> 5840 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Roman.png       |  Bin 0 -> 3052 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Running.png     |  Bin 0 -> 2167 bytes
 .../Genre/FFFFFF/Satellite_Sending_Signal.png      |  Bin 0 -> 2148 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Saxophone.png   |  Bin 0 -> 3946 bytes
 .../EPGInfo/Genre/FFFFFF/SciFi_Fantasy_Horror.png  |  Bin 0 -> 7108 bytes
 .../EPGInfo/Genre/FFFFFF/Science-Fiction.png       |  Bin 0 -> 3525 bytes
 ..._Classical_Religious_Historical Movie_Drama.png |  Bin 0 -> 6313 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Server.png      |  Bin 0 -> 1249 bytes
 .../EPGInfo/Genre/FFFFFF/Sheet_Of_Paper.png        |  Bin 0 -> 1778 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Shoe_Woman.png  |  Bin 0 -> 1262 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Shopping.png    |  Bin 0 -> 2894 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Skiing.png      |  Bin 0 -> 4079 bytes
 .../Genre/FFFFFF/Social_Political_Economics.png    |  Bin 0 -> 4022 bytes
 .../default/EPGInfo/Genre/FFFFFF/Special Event.png |  Bin 0 -> 6176 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Spiel.png       |  Bin 0 -> 3020 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Sport.png       |  Bin 0 -> 3914 bytes
 .../default/EPGInfo/Genre/FFFFFF/Sport_Magazin.png |  Bin 0 -> 8251 bytes
 .../default/EPGInfo/Genre/FFFFFF/Stanley_Knife.png |  Bin 0 -> 1368 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Strikes.png     |  Bin 0 -> 3045 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Stroller.png    |  Bin 0 -> 1803 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Student.png     |  Bin 0 -> 4262 bytes
 .../EPGInfo/Genre/FFFFFF/Student_Filled.png        |  Bin 0 -> 2216 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Students2.png   |  Bin 0 -> 2279 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Suitcase.png    |  Bin 0 -> 1582 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Swimming.png    |  Bin 0 -> 2891 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Talk.png        |  Bin 0 -> 3383 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Teams.png       |  Bin 0 -> 3128 bytes
 .../EPGInfo/Genre/FFFFFF/Technology_Science.png    |  Bin 0 -> 2362 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Teddybear.png   |  Bin 0 -> 2796 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Temperature.png |  Bin 0 -> 1354 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Tennis.png      |  Bin 0 -> 4020 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Test_Tube.png   |  Bin 0 -> 1598 bytes
 .../default/EPGInfo/Genre/FFFFFF/Theatre_Masks.png |  Bin 0 -> 4122 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Thriller.png    |  Bin 0 -> 4419 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Ticket.png      |  Bin 0 -> 1223 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Treble_Clef.png |  Bin 0 -> 1749 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Tricycle.png    |  Bin 0 -> 3070 bytes
 icons/default/EPGInfo/Genre/FFFFFF/University.png  |  Bin 0 -> 1004 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Unpublished.png |  Bin 0 -> 5890 bytes
 .../default/EPGInfo/Genre/FFFFFF/Waypoint_Map.png  |  Bin 0 -> 3132 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Weather.png     |  Bin 0 -> 3903 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Western.png     |  Bin 0 -> 2396 bytes
 icons/default/EPGInfo/Genre/FFFFFF/World_Map.png   |  Bin 0 -> 2334 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Yoga.png        |  Bin 0 -> 1410 bytes
 icons/default/EPGInfo/Genre/FFFFFF/Zombie.png      |  Bin 0 -> 4436 bytes
 icons/default/EPGInfo/Genre/FFFFFF/unknown.png     |  Bin 0 -> 2154 bytes
 icons/default/EPGInfo/Genre/Fashion.png            |    1 +
 icons/default/EPGInfo/Genre/Film_Cinema.png        |    1 +
 icons/default/EPGInfo/Genre/Fine Arts.png          |    1 +
 icons/default/EPGInfo/Genre/Fitness_Health.png     |    1 +
 .../default/EPGInfo/Genre/Folk_Tradional Music.png |    1 +
 icons/default/EPGInfo/Genre/Football_Soccer.png    |    1 +
 .../Genre/Foreign Countries_Expeditions.png        |    1 +
 icons/default/EPGInfo/Genre/Further Education.png  |    1 +
 .../EPGInfo/Genre/Game Show_Quiz_Contest.png       |    1 +
 icons/default/EPGInfo/Genre/Gardening.png          |    1 +
 icons/default/EPGInfo/Genre/Handicraft.png         |    1 +
 .../Informational_Educational_School Programme.png |    1 +
 icons/default/EPGInfo/Genre/Jazz.png               |    1 +
 icons/default/EPGInfo/Genre/Languages.png          |    1 +
 icons/default/EPGInfo/Genre/Leisure_Hobbies.png    |    1 +
 icons/default/EPGInfo/Genre/Literature.png         |    1 +
 icons/default/EPGInfo/Genre/Live Broadcast.png     |    1 +
 .../EPGInfo/Genre/Magazine_Report_Documentary.png  |    1 +
 icons/default/EPGInfo/Genre/Martial Sports.png     |    1 +
 .../Genre/Medicine_Physiology_Psychology.png       |    1 +
 icons/default/EPGInfo/Genre/Motor Sport.png        |    1 +
 icons/default/EPGInfo/Genre/Motoring.png           |    1 +
 icons/default/EPGInfo/Genre/Movie_Drama.png        |    1 +
 icons/default/EPGInfo/Genre/Music_Ballet_Dance.png |    1 +
 icons/default/EPGInfo/Genre/Musical_Opera.png      |    1 +
 .../EPGInfo/Genre/Nature_Animals_Environment.png   |    1 +
 icons/default/EPGInfo/Genre/New Media.png          |    1 +
 icons/default/EPGInfo/Genre/News Magazine.png      |    1 +
 .../default/EPGInfo/Genre/News_Current Affairs.png |    1 +
 .../default/EPGInfo/Genre/News_Weather Report.png  |    1 +
 icons/default/EPGInfo/Genre/Original Language.png  |    1 +
 icons/default/EPGInfo/Genre/Performing Arts.png    |    1 +
 .../Genre/Popular Culture_Traditional Arts.png     |    1 +
 .../Genre/Pre-school Childrens Programme.png       |    1 +
 icons/default/EPGInfo/Genre/Religion.png           |    1 +
 icons/default/EPGInfo/Genre/Remarkable People.png  |    1 +
 icons/default/EPGInfo/Genre/Rock_Pop.png           |    1 +
 icons/default/EPGInfo/Genre/Romance.png            |    1 +
 .../Genre/Science Fiction_Fantasy_Horror.png       |    1 +
 .../EPGInfo/Genre/Serious_Classical Music.png      |    1 +
 ..._Classical_Religious_Historical Movie_Drama.png |    1 +
 icons/default/EPGInfo/Genre/Show_Game Show.png     |    1 +
 .../EPGInfo/Genre/Soap_Melodrama_Folkloric.png     |    1 +
 .../EPGInfo/Genre/Social_Political_Economics.png   |    1 +
 .../EPGInfo/Genre/Social_Spiritual Sciences.png    |    1 +
 icons/default/EPGInfo/Genre/Special Event.png      |    1 +
 icons/default/EPGInfo/Genre/Sport Magazine.png     |    1 +
 icons/default/EPGInfo/Genre/Sports.png             |    1 +
 icons/default/EPGInfo/Genre/Talk Show.png          |    1 +
 icons/default/EPGInfo/Genre/Team Sports.png        |    1 +
 .../EPGInfo/Genre/Technology_Natural Sciences.png  |    1 +
 icons/default/EPGInfo/Genre/Tennis_Squash.png      |    1 +
 icons/default/EPGInfo/Genre/Tourism_Travel.png     |    1 +
 icons/default/EPGInfo/Genre/Unpublished.png        |    1 +
 icons/default/EPGInfo/Genre/Variety Show.png       |    1 +
 icons/default/EPGInfo/Genre/Water Sport.png        |    1 +
 icons/default/EPGInfo/Genre/Winter Sports.png      |    1 +
 icons/default/EPGInfo/Genre/unknown.png            |    1 +
 icons/default/changroup.png                        |  Bin 0 -> 1017 bytes
 icons/default/chart1.png                           |  Bin 0 -> 1446 bytes
 icons/default/chart1b.png                          |    1 +
 icons/default/chart2.png                           |  Bin 0 -> 1322 bytes
 icons/default/chart2b.png                          |    1 +
 icons/default/chart3.png                           |  Bin 0 -> 1315 bytes
 icons/default/chart3b.png                          |    1 +
 icons/default/chart4.png                           |  Bin 0 -> 1164 bytes
 icons/default/chart4b.png                          |    1 +
 icons/default/chart5.png                           |  Bin 0 -> 1265 bytes
 icons/default/chart5b.png                          |    1 +
 icons/default/chart6.png                           |  Bin 0 -> 1056 bytes
 icons/default/chart6b.png                          |    1 +
 icons/default/chart7.png                           |  Bin 0 -> 1075 bytes
 icons/default/chart7b.png                          |    1 +
 icons/default/crypted.png                          |  Bin 0 -> 1874 bytes
 icons/default/data.png                             |  Bin 0 -> 19480 bytes
 icons/default/extraIcons/Audio.png                 |  Bin 0 -> 1209 bytes
 icons/default/extraIcons/AudioVideo.png            |  Bin 0 -> 1623 bytes
 icons/default/extraIcons/Ausschalten.png           |  Bin 0 -> 2277 bytes
 icons/default/extraIcons/Info.png                  |  Bin 0 -> 1993 bytes
 icons/default/extraIcons/PlayInfo.png              |  Bin 0 -> 6255 bytes
 icons/default/extraIcons/Playing.png               |  Bin 0 -> 1991 bytes
 icons/default/folder.png                           |  Bin 0 -> 991 bytes
 icons/default/forward.png                          |  Bin 0 -> 1086 bytes
 icons/default/forward_sel.png                      |  Bin 0 -> 1257 bytes
 icons/default/hd.png                               |  Bin 0 -> 1347 bytes
 icons/default/logo_background.png                  |  Bin 0 -> 13631 bytes
 icons/default/menuIcons/CAM.png                    |  Bin 0 -> 1890 bytes
 icons/default/menuIcons/Channels.png               |  Bin 0 -> 456 bytes
 icons/default/menuIcons/Commands.png               |  Bin 0 -> 1901 bytes
 icons/default/menuIcons/DVB.png                    |  Bin 0 -> 966 bytes
 icons/default/menuIcons/EPG.png                    |  Bin 0 -> 3071 bytes
 icons/default/menuIcons/LNB.png                    |  Bin 0 -> 2502 bytes
 icons/default/menuIcons/Miscellaneous.png          |  Bin 0 -> 784 bytes
 icons/default/menuIcons/OSD.png                    |  Bin 0 -> 936 bytes
 icons/default/menuIcons/Plugins.png                |  Bin 0 -> 1949 bytes
 icons/default/menuIcons/Recording.png              |  Bin 0 -> 797 bytes
 icons/default/menuIcons/Recordings.png             |  Bin 0 -> 1263 bytes
 icons/default/menuIcons/RecsSortDate.png           |  Bin 0 -> 3010 bytes
 icons/default/menuIcons/RecsSortName.png           |  Bin 0 -> 2664 bytes
 icons/default/menuIcons/Replay.png                 |  Bin 0 -> 1199 bytes
 icons/default/menuIcons/Restart.png                |  Bin 0 -> 2312 bytes
 icons/default/menuIcons/Schedule.png               |  Bin 0 -> 2981 bytes
 icons/default/menuIcons/Setup.png                  |  Bin 0 -> 2607 bytes
 icons/default/menuIcons/StopRecording.png          |  Bin 0 -> 7095 bytes
 icons/default/menuIcons/StopReplay.png             |  Bin 0 -> 7088 bytes
 icons/default/menuIcons/Timers.png                 |  Bin 0 -> 3699 bytes
 icons/default/menuIcons/blank.png                  |  Bin 0 -> 429 bytes
 icons/default/menuIcons/vdrlogo_debian.png         |  Bin 0 -> 7327 bytes
 icons/default/menuIcons/vdrlogo_default.png        |  Bin 0 -> 4122 bytes
 icons/default/menuIcons/vdrlogo_easyvdr.png        |  Bin 0 -> 57281 bytes
 icons/default/menuIcons/vdrlogo_gen2vdr.png        |  Bin 0 -> 11376 bytes
 icons/default/menuIcons/vdrlogo_shine.png          |  Bin 0 -> 8938 bytes
 icons/default/menuIcons/vdrlogo_xubuntu.png        |  Bin 0 -> 35530 bytes
 icons/default/menuIcons/vdrlogo_xubuntu2.png       |  Bin 0 -> 9217 bytes
 icons/default/menuIcons/vdrlogo_yavdr.png          |  Bin 0 -> 4366 bytes
 icons/default/message_error.png                    |  Bin 0 -> 2236 bytes
 icons/default/message_info.png                     |  Bin 0 -> 2906 bytes
 icons/default/message_status.png                   |  Bin 0 -> 2923 bytes
 icons/default/message_warning.png                  |  Bin 0 -> 1327 bytes
 icons/default/mute.png                             |  Bin 0 -> 2284 bytes
 icons/default/pause.png                            |  Bin 0 -> 436 bytes
 icons/default/pause_sel.png                        |  Bin 0 -> 535 bytes
 icons/default/play.png                             |  Bin 0 -> 835 bytes
 icons/default/play_sel.png                         |  Bin 0 -> 1000 bytes
 icons/default/pluginIcons/admin.png                |  Bin 0 -> 1908 bytes
 icons/default/pluginIcons/arghdirector.png         |  Bin 0 -> 4211 bytes
 icons/default/pluginIcons/autostart.png            |  Bin 0 -> 2969 bytes
 icons/default/pluginIcons/avahi4vdr.png            |  Bin 0 -> 2895 bytes
 icons/default/pluginIcons/avards.png               |  Bin 0 -> 631 bytes
 icons/default/pluginIcons/block.png                |  Bin 0 -> 1010 bytes
 icons/default/pluginIcons/burn.png                 |  Bin 0 -> 3303 bytes
 icons/default/pluginIcons/cdplayer.png             |  Bin 0 -> 1246 bytes
 icons/default/pluginIcons/chanman.png              |  Bin 0 -> 2544 bytes
 icons/default/pluginIcons/check.png                |  Bin 0 -> 1955 bytes
 icons/default/pluginIcons/conflictcheckonly.png    |  Bin 0 -> 2597 bytes
 icons/default/pluginIcons/ddci.png                 |  Bin 0 -> 2778 bytes
 icons/default/pluginIcons/devstatus.png            |  Bin 0 -> 2976 bytes
 icons/default/pluginIcons/dummydevice.png          |  Bin 0 -> 1864 bytes
 icons/default/pluginIcons/duplicates.png           |  Bin 0 -> 2182 bytes
 icons/default/pluginIcons/dvbapi.png               |  Bin 0 -> 2769 bytes
 icons/default/pluginIcons/dvbhddevice.png          |  Bin 0 -> 3091 bytes
 icons/default/pluginIcons/dvbsddevice.png          |  Bin 0 -> 3445 bytes
 icons/default/pluginIcons/dvd.png                  |  Bin 0 -> 5493 bytes
 icons/default/pluginIcons/dvdswitch.png            |  Bin 0 -> 7113 bytes
 icons/default/pluginIcons/dynamite.png             |  Bin 0 -> 3304 bytes
 icons/default/pluginIcons/eepg.png                 |  Bin 0 -> 2851 bytes
 icons/default/pluginIcons/epg2vdr.png              |  Bin 0 -> 3268 bytes
 icons/default/pluginIcons/epgsearch.png            |  Bin 0 -> 2279 bytes
 icons/default/pluginIcons/epgsearchonly.png        |  Bin 0 -> 2279 bytes
 icons/default/pluginIcons/epgsync.png              |  Bin 0 -> 3131 bytes
 icons/default/pluginIcons/externalplayer.png       |  Bin 0 -> 2267 bytes
 icons/default/pluginIcons/extrecmenu.png           |  Bin 0 -> 2075 bytes
 icons/default/pluginIcons/favorites.png            |  Bin 0 -> 1292 bytes
 icons/default/pluginIcons/femon.png                |  Bin 0 -> 2825 bytes
 icons/default/pluginIcons/fepg.png                 |  Bin 0 -> 2150 bytes
 icons/default/pluginIcons/filebrowser.png          |  Bin 0 -> 3977 bytes
 icons/default/pluginIcons/fritzbox.png             |  Bin 0 -> 3922 bytes
 icons/default/pluginIcons/graphlcd.png             |  Bin 0 -> 1392 bytes
 icons/default/pluginIcons/graphtft.png             |  Bin 0 -> 1392 bytes
 icons/default/pluginIcons/image.png                |  Bin 0 -> 2278 bytes
 icons/default/pluginIcons/imonlcd.png              |  Bin 0 -> 1392 bytes
 icons/default/pluginIcons/iptv.png                 |  Bin 0 -> 2313 bytes
 icons/default/pluginIcons/lcdproc.png              |  Bin 0 -> 1392 bytes
 icons/default/pluginIcons/mailbox.png              |  Bin 0 -> 1619 bytes
 icons/default/pluginIcons/makemkv.png              |  Bin 0 -> 1567 bytes
 icons/default/pluginIcons/markad.png               |  Bin 0 -> 5396 bytes
 icons/default/pluginIcons/mlist.png                |  Bin 0 -> 2106 bytes
 icons/default/pluginIcons/music.png                |  Bin 0 -> 5962 bytes
 icons/default/pluginIcons/noepg.png                |  Bin 0 -> 2638 bytes
 icons/default/pluginIcons/nordlichtsepg.png        |  Bin 0 -> 2468 bytes
 icons/default/pluginIcons/osdteletext.png          |  Bin 0 -> 2499 bytes
 icons/default/pluginIcons/peer.png                 |  Bin 0 -> 2891 bytes
 icons/default/pluginIcons/play.png                 |  Bin 0 -> 990 bytes
 icons/default/pluginIcons/pvrinput.png             |  Bin 0 -> 1571 bytes
 icons/default/pluginIcons/quickepgsearch.png       |  Bin 0 -> 3402 bytes
 icons/default/pluginIcons/radio.png                |  Bin 0 -> 1905 bytes
 icons/default/pluginIcons/remote.png               |  Bin 0 -> 2626 bytes
 icons/default/pluginIcons/remotetimers.png         |  Bin 0 -> 3566 bytes
 icons/default/pluginIcons/rssreader.png            |  Bin 0 -> 2473 bytes
 icons/default/pluginIcons/sc.png                   |  Bin 0 -> 2050 bytes
 icons/default/pluginIcons/screenshot.png           |  Bin 0 -> 2179 bytes
 icons/default/pluginIcons/seduatmo.png             |  Bin 0 -> 1123 bytes
 icons/default/pluginIcons/skyselectfeeds.png       |  Bin 0 -> 2200 bytes
 icons/default/pluginIcons/sleeptimer.png           |  Bin 0 -> 3243 bytes
 icons/default/pluginIcons/softhddevice.png         |  Bin 0 -> 3880 bytes
 icons/default/pluginIcons/streamdev-server.png     |  Bin 0 -> 2478 bytes
 icons/default/pluginIcons/systeminfo.png           |  Bin 0 -> 1701 bytes
 icons/default/pluginIcons/targavfd.png             |  Bin 0 -> 1392 bytes
 icons/default/pluginIcons/trayopenng.png           |  Bin 0 -> 915 bytes
 icons/default/pluginIcons/tvguide.png              |  Bin 0 -> 1878 bytes
 icons/default/pluginIcons/tvm2vdr.png              |  Bin 0 -> 2344 bytes
 icons/default/pluginIcons/tvscraper.png            |  Bin 0 -> 2377 bytes
 icons/default/pluginIcons/undelete.png             |  Bin 0 -> 2584 bytes
 icons/default/pluginIcons/weatherng.png            |  Bin 0 -> 1401 bytes
 icons/default/pluginIcons/xmltv2vdr.png            |  Bin 0 -> 2684 bytes
 icons/default/pluginIcons/yaepghg.png              |  Bin 0 -> 1878 bytes
 icons/default/prev.png                             |  Bin 0 -> 1017 bytes
 icons/default/prev_sel.png                         |  Bin 0 -> 1134 bytes
 icons/default/radio.png                            |  Bin 0 -> 2119 bytes
 icons/default/recording.png                        |  Bin 0 -> 482 bytes
 icons/default/recording_cutted.png                 |  Bin 0 -> 2537 bytes
 icons/default/recording_cutted_extra.png           |  Bin 0 -> 3606 bytes
 icons/default/recording_new.png                    |  Bin 0 -> 2106 bytes
 icons/default/rewind.png                           |  Bin 0 -> 1088 bytes
 icons/default/rewind_sel.png                       |  Bin 0 -> 1351 bytes
 icons/default/sd.png                               |  Bin 0 -> 1752 bytes
 icons/default/skip.png                             |  Bin 0 -> 1007 bytes
 icons/default/skip_sel.png                         |  Bin 0 -> 1016 bytes
 icons/default/text_arrowturn.png                   |  Bin 0 -> 972 bytes
 icons/default/text_arrowturn_cur.png               |  Bin 0 -> 972 bytes
 icons/default/text_arrowturn_sel.png               |  Bin 0 -> 972 bytes
 icons/default/text_new.png                         |  Bin 0 -> 7004 bytes
 icons/default/text_new_cur.png                     |  Bin 0 -> 7004 bytes
 icons/default/text_new_sel.png                     |  Bin 0 -> 7004 bytes
 icons/default/text_rec.png                         |  Bin 0 -> 9537 bytes
 icons/default/text_rec_cur.png                     |  Bin 0 -> 9537 bytes
 icons/default/text_rec_sel.png                     |  Bin 0 -> 9537 bytes
 icons/default/text_timer_full.png                  |  Bin 0 -> 3699 bytes
 icons/default/text_timer_full_cur.png              |  Bin 0 -> 3699 bytes
 icons/default/text_timer_full_sel.png              |  Bin 0 -> 3699 bytes
 icons/default/text_timer_partial.png               |  Bin 0 -> 3929 bytes
 icons/default/text_timer_partial_cur.png           |  Bin 0 -> 3929 bytes
 icons/default/text_timer_partial_sel.png           |  Bin 0 -> 3929 bytes
 icons/default/text_vps.png                         |  Bin 0 -> 9908 bytes
 icons/default/text_vps_cur.png                     |  Bin 0 -> 9908 bytes
 icons/default/text_vps_sel.png                     |  Bin 0 -> 9908 bytes
 icons/default/timerActive.png                      |  Bin 0 -> 1040 bytes
 icons/default/timerInactive.png                    |  Bin 0 -> 1467 bytes
 icons/default/timerInactiveBig.png                 |  Bin 0 -> 9016 bytes
 icons/default/timerRecording.png                   |  Bin 0 -> 428 bytes
 icons/default/timer_full.png                       |  Bin 0 -> 3699 bytes
 icons/default/timer_partial.png                    |  Bin 0 -> 5770 bytes
 icons/default/topbar_timer.png                     |  Bin 0 -> 2817 bytes
 icons/default/topbar_timerconflict_high.png        |  Bin 0 -> 7713 bytes
 icons/default/topbar_timerconflict_low.png         |  Bin 0 -> 8300 bytes
 icons/default/tracks_ac3.png                       |  Bin 0 -> 8972 bytes
 icons/default/tracks_stereo.png                    |  Bin 0 -> 3757 bytes
 icons/default/tv.png                               |  Bin 0 -> 933 bytes
 icons/default/uncrypted.png                        |  Bin 0 -> 1872 bytes
 icons/default/unknown_asp.png                      |  Bin 0 -> 1104 bytes
 icons/default/unknown_res.png                      |  Bin 0 -> 1006 bytes
 icons/default/vps.png                              |  Bin 0 -> 3263 bytes
 icons/default/widgets/active_timers.png            |  Bin 0 -> 3004 bytes
 icons/default/widgets/clear-day.png                |  Bin 0 -> 4980 bytes
 icons/default/widgets/clear-night.png              |  Bin 0 -> 3115 bytes
 icons/default/widgets/cloudy.png                   |  Bin 0 -> 6433 bytes
 icons/default/widgets/command_output.png           |  Bin 0 -> 793 bytes
 icons/default/widgets/dvb_devices.png              |  Bin 0 -> 966 bytes
 icons/default/widgets/fog.png                      |  Bin 0 -> 3652 bytes
 icons/default/widgets/last_recordings.png          |  Bin 0 -> 1263 bytes
 icons/default/widgets/partly-cloudy-day.png        |  Bin 0 -> 7028 bytes
 icons/default/widgets/partly-cloudy-night.png      |  Bin 0 -> 6409 bytes
 icons/default/widgets/rain.png                     |  Bin 0 -> 6000 bytes
 icons/default/widgets/sleet.png                    |  Bin 0 -> 6021 bytes
 icons/default/widgets/snow.png                     |  Bin 0 -> 7660 bytes
 icons/default/widgets/system_information.png       |  Bin 0 -> 884 bytes
 icons/default/widgets/system_updates.png           |  Bin 0 -> 1878 bytes
 icons/default/widgets/temperatures.png             |  Bin 0 -> 5229 bytes
 icons/default/widgets/thunderstorm.png             |  Bin 0 -> 6644 bytes
 icons/default/widgets/timer_conflicts.png          |  Bin 0 -> 3421 bytes
 icons/default/widgets/umbrella.png                 |  Bin 0 -> 2290 bytes
 icons/default/widgets/weather.png                  |  Bin 0 -> 5404 bytes
 icons/default/widgets/wind.png                     |  Bin 0 -> 2568 bytes
 icons/fnuanthraamber/logo_background.png           |    1 +
 icons/fnuanthraamber/recording_new.png             |    1 +
 icons/fnuanthraamber/recording_new_amber.png       |  Bin 0 -> 8842 bytes
 icons/fnuanthracutis/logo_background.png           |    1 +
 icons/fnuanthracutis/recording_new.png             |    1 +
 icons/fnuanthracutis/recording_new_cutis.png       |  Bin 0 -> 9625 bytes
 icons/fnuanthragreen/logo_background.png           |    1 +
 icons/fnuanthragreen/recording_new.png             |    1 +
 icons/fnuanthragreen/recording_new_green.png       |  Bin 0 -> 7239 bytes
 icons/fnuanthraivory/logo_background.png           |    1 +
 icons/fnuanthraivory/recording_new.png             |    1 +
 icons/fnuanthraivory/recording_new_ivory.png       |  Bin 0 -> 9952 bytes
 icons/fnuanthralilac/logo_background.png           |    1 +
 icons/fnuanthralilac/recording_new.png             |    1 +
 icons/fnuanthralilac/recording_new_lilac.png       |  Bin 0 -> 9805 bytes
 icons/fnuanthrared/logo_background.png             |    1 +
 icons/fnuanthrared/logo_background_white.png       |  Bin 0 -> 35772 bytes
 icons/fnuanthrared/recording_new.png               |    1 +
 icons/fnuanthrared/recording_new_red.png           |  Bin 0 -> 7210 bytes
 icons/fnuanthrayablue/logo_background.png          |    1 +
 icons/fnuanthrayablue/recording_new.png            |    1 +
 icons/fnuanthrayablue/recording_new_yablue.png     |  Bin 0 -> 9324 bytes
 imagecache.c                                       |   83 +
 imagecache.h                                       |   34 +
 imageloader.c                                      |  246 +
 imageloader.h                                      |   30 +
 imagemagickwrapper.c                               |   87 +
 imagemagickwrapper.h                               |   23 +
 imagescaler.c                                      |  149 +
 imagescaler.h                                      |   97 +
 po/de_DE.po                                        |  886 ++++
 preview/Beige.png                                  |  Bin 0 -> 31539 bytes
 preview/Berry.png                                  |  Bin 0 -> 30914 bytes
 preview/Blood.png                                  |  Bin 0 -> 30425 bytes
 preview/Blue.png                                   |  Bin 0 -> 30816 bytes
 preview/Cappuchino.png                             |  Bin 0 -> 31848 bytes
 preview/Chocolate.png                              |  Bin 0 -> 31518 bytes
 preview/Cyan.png                                   |  Bin 0 -> 31274 bytes
 preview/DeepBlue.png                               |  Bin 0 -> 31432 bytes
 preview/Fog.png                                    |  Bin 0 -> 31429 bytes
 preview/Grapefruit.png                             |  Bin 0 -> 31317 bytes
 preview/Green.png                                  |  Bin 0 -> 30817 bytes
 preview/Green2.png                                 |  Bin 0 -> 31005 bytes
 preview/Grey.png                                   |  Bin 0 -> 31370 bytes
 preview/HelloKitty.png                             |  Bin 0 -> 29808 bytes
 preview/HelloKitty2.png                            |  Bin 0 -> 29936 bytes
 preview/Indigo.png                                 |  Bin 0 -> 31146 bytes
 preview/LightBlue.png                              |  Bin 0 -> 31360 bytes
 preview/LightGreen.png                             |  Bin 0 -> 31425 bytes
 preview/Mint.png                                   |  Bin 0 -> 30750 bytes
 preview/Nuts.png                                   |  Bin 0 -> 30818 bytes
 preview/Olive.png                                  |  Bin 0 -> 31264 bytes
 preview/Orange.png                                 |  Bin 0 -> 31274 bytes
 preview/Pflaume.png                                |  Bin 0 -> 31130 bytes
 preview/Pumpkin.png                                |  Bin 0 -> 31001 bytes
 preview/Purple.png                                 |  Bin 0 -> 30983 bytes
 preview/PurpleGrey.png                             |  Bin 0 -> 31879 bytes
 preview/Rauchglas.png                              |  Bin 0 -> 31669 bytes
 preview/Red.png                                    |  Bin 0 -> 30506 bytes
 preview/Terra.png                                  |  Bin 0 -> 30904 bytes
 preview/White.png                                  |  Bin 0 -> 32706 bytes
 preview/XMAS.png                                   |  Bin 0 -> 31106 bytes
 preview/Zitrone.png                                |  Bin 0 -> 30930 bytes
 services/epgsearch.h                               |  167 +
 services/scraper2vdr.h                             |  194 +
 setup.c                                            | 1370 ++++++
 setup.h                                            |   98 +
 skinflatplus.c                                     |  140 +
 textscroller.c                                     |  196 +
 textscroller.h                                     |   90 +
 themes/flatPlus-MVBeige.theme                      |  118 +
 themes/flatPlus-MVBerry.theme                      |  118 +
 themes/flatPlus-MVBlood.theme                      |  118 +
 themes/flatPlus-MVBlue.theme                       |  118 +
 themes/flatPlus-MVCappuchino.theme                 |  118 +
 themes/flatPlus-MVChocolate.theme                  |  118 +
 themes/flatPlus-MVCyan.theme                       |  118 +
 themes/flatPlus-MVDeepBlue.theme                   |  118 +
 themes/flatPlus-MVFog.theme                        |  118 +
 themes/flatPlus-MVGrapefruit.theme                 |  118 +
 themes/flatPlus-MVGreen.theme                      |  118 +
 themes/flatPlus-MVGreen2.theme                     |  118 +
 themes/flatPlus-MVGrey.theme                       |  118 +
 themes/flatPlus-MVHelloKitty.theme                 |  118 +
 themes/flatPlus-MVHelloKitty2.theme                |  118 +
 themes/flatPlus-MVIndigo.theme                     |  118 +
 themes/flatPlus-MVLightBlue.theme                  |  118 +
 themes/flatPlus-MVLightGreen.theme                 |  118 +
 themes/flatPlus-MVMint.theme                       |  118 +
 themes/flatPlus-MVNuts.theme                       |  118 +
 themes/flatPlus-MVOlive.theme                      |  118 +
 themes/flatPlus-MVOrange.theme                     |  118 +
 themes/flatPlus-MVPflaume.theme                    |  118 +
 themes/flatPlus-MVPumpkin.theme                    |  118 +
 themes/flatPlus-MVPurple.theme                     |  118 +
 themes/flatPlus-MVPurpleGrey.theme                 |  118 +
 themes/flatPlus-MVRauchglas.theme                  |  118 +
 themes/flatPlus-MVRed.theme                        |  118 +
 themes/flatPlus-MVTerra.theme                      |  118 +
 themes/flatPlus-MVWhite.theme                      |  118 +
 themes/flatPlus-MVXMAS.theme                       |  118 +
 themes/flatPlus-MVZitrone.theme                    |  118 +
 themes/flatPlus-default.theme                      |  118 +
 themes/flatPlus-default_DeepOrange.theme           |  118 +
 themes/flatPlus-default_DeepPurple.theme           |  118 +
 themes/flatPlus-default_Indigo.theme               |  118 +
 themes/flatPlus-default_Red.theme                  |  118 +
 themes/flatPlus-default_Teal.theme                 |  118 +
 themes/flatPlus-fnuanthraamber.theme               |  118 +
 themes/flatPlus-fnuanthracutis.theme               |  118 +
 themes/flatPlus-fnuanthragreen.theme               |  118 +
 themes/flatPlus-fnuanthraivory.theme               |  118 +
 themes/flatPlus-fnuanthralilac.theme               |  118 +
 themes/flatPlus-fnuanthrared.theme                 |  118 +
 themes/flatPlus-fnuanthrayablue.theme              |  118 +
 widgets/command_output/README                      |    6 +
 widgets/command_output/command.example             |    9 +
 widgets/system_information/README                  |   15 +
 widgets/system_information/system_information.g2v  |  182 +
 .../system_information/system_information.ubuntu   |  172 +
 widgets/system_updatestatus/README                 |    8 +
 .../system_update_status.ubuntu                    |   20 +
 widgets/temperatures/README                        |   10 +
 widgets/temperatures/temperatures.default          |   28 +
 widgets/temperatures/temperatures.g2v              |   37 +
 widgets/weather/GetLatLangFromCity.php             |   25 +
 widgets/weather/README                             |   13 +
 widgets/weather/lib/forecast.io.php                |  431 ++
 widgets/weather/update_weather.config.sample       |   23 +
 widgets/weather/update_weather.php                 |  110 +
 3541 files changed, 26660 insertions(+)

diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..f90922e
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/HISTORY b/HISTORY
new file mode 100644
index 0000000..f906d70
--- /dev/null
+++ b/HISTORY
@@ -0,0 +1,254 @@
+VDR Plugin 'skinflatplus' Revision History
+---------------------------------------
+
+2014-MM-DD: Version 0.5.0
+- [fix] femon receiver - do not get data from previous channel
+- [fix] display replay jump text position
+- [add] main menu widgets
+    - there are several widgets that can be displayed in the main menu
+        - Widget weather
+        - Widget dvb devices
+        - Widget active timer
+        - Widget timer conflicts
+        - Widget last recordings
+        - Widget system information
+        - Widget system updates
+        - Widget temperatures
+        - Widget custom command
+    - please see the example scripts and README-files
+- [add] weather widget in channelinfo and replayinfo
+- [add] option Weather widget font size
+- [add] poster/banner image in replay info
+- [add] dimm on pause feature
+    you can set a timeout and the opaque value. If You press pause while replaying the display will be dimmed after the timeout
+- [update] default themes
+    - background transparency slightly reduced
+    - use color palette of android material design
+    - default accent color is "Light Blue"
+    - add more default themes: DeepOrange, DeepPurple, Indigo, Red, Teal
+- [update] icons
+    - update many icons with android material design icons
+- [update] MV-Themes
+    - see MV_Themes.HISTORY
+- [update] display replay, in mode only only show small version
+- [update] remove fonts from contrib folder
+    they waste to much space, if you need them, grab it from previous version
+- [update] Makefile
+    rename VDRLOGO to SKINFLATPLUS_VDRLOGO
+    new variable SKINFLATPLUS_WIDGETDIR for specify the path to the widgets
+
+2014-10-29: Version 0.4.3
+- [add] option to draw the menu background over the entire height
+- [add] sort icon in recordings menu
+- [add] options to show the number of recordings in title in recording menu
+- [add] hidden options "ShortRecordingCount" to show number of recordings in short format
+- [add] options to show the number of timers in title in timer menu
+- [add] options to show the number of channels in title in channel menu
+- [add] inactive timer icon in short view with epg
+- [add] fsk, genre text in epg/recording info (show additional epg info must be set) (thanks to MegaV0lt)
+- [add] fsk, genre icon in epg/recording info head (show additional epg info must be set) (thanks to MegaV0lt)
+- [update] german translation (thanks to MegaV0lt)
+
+2014-08-10: Version 0.4.2
+- [update] change direcotry of config-files
+
+2014-08-10: Version 0.4.1
+- [add] option to hide "clock" text
+- [add] option to set program past/remaining time format (past/remaining, past, remaining)
+- [update] plugin settings column width from 30 to 35
+- [update] fnu anthra themes (thanks to Frank [fnu at vdr-portal])
+
+2014-08-09: Version 0.4.0
+- [update] topbar position of text
+- [update] MVThemes
+        new preview images in "preview" folder
+- [add] Textscroller support
+        - text in displaychannel for epg-text and epgshort-text
+        - messages
+        - menu item channel
+        - menu item timer
+        - menu item recording
+        - menu item event
+- [add] new plugin icons
+- [add] new icon 169w screen resolution icon
+- [add] options to save and load settings
+        You can save the current settings in a config file, the config file will be named with current date & time.
+        You can then rename the file manually.
+        Also You can load a specific config file.
+        So You can save your preferred config and test others.
+- [add] new options in general settings for textscroller
+- [add] new option "Diskusage free/occupied" to show free or occupied percantage and hours
+- [add] new option "Diskusage short display" for only show percantage and free/occupied hours
+- [add] new option "TopBar clock font scale" to scale the clock font
+- [add] new option "Time seconds font scale" to scale the seconds in recording view (thanks MegaV0lt + Lars for help)
+- [add] new option "Show video/audio bitrate" to show the bitrate of audio/video in display channel (lent code from femon, thanks!)
+        new hidden config "ChannelBitrateShowCalcInterval" to set the interval of the video/audio bitrate calculation
+- [add] image _cur version for recording_cutted, recording_new, timer_full, timer_partial, vps
+        if it is the current/selected menu item the cur version of the image will be loaded
+- [add] Support for scrollbar type and size like border and progressbar
+        You can specify the scrollbar type and size in the decor file (ScrollBarType & ScrollBarSize)
+        You can also override the type and size in the setup
+        8 Types:
+            * 0 = left line + rect bar
+            * 1 = left line + round bar
+            * 2 = middle line + rect bar
+            * 3 = middle line + round bar
+            * 4 = outline + rect bar
+            * 5 = outline + round bar
+            * 6 = rect bar
+            * 7 = round bar
+- [update] decor-files for new scrollbar options
+- [fix] position in menu item event
+- [fix] wrong margin of folder icon in recordings menu
+
+2014-06-19: Version 0.3.1
+- [fix] epg image position on channel info
+- [fix] Bug #1847 - SetRecording border with deleteresume.patch
+- [fix] test if decor-files are installed in setup
+- [fix] correct cut text on tab size
+- [update] tvscraper service api. ! Use only with new TVScraper Version 0.2.0 or greater !
+- [update] crypted.png
+- [update] use 10_rect_sml.decor as default
+- [update] MV-Themes
+- [update] left align number recordings of folders in recording view
+- [update] Makefile, add --remove-destination to install icons, to override symlinks
+- [update] use icons instead of xpm-symbols (new icons are text_???)
+- [add] theme colors clrMenuEventTitleLine and clrMenuRecTitleLine for the line under title in event and recording
+- [add] theme color clrChannelEPGBorderFg and clrChannelEPGBorderBg for border color of epg image in chanel info
+- [add] decor option ChannelEPGBorderType and ChannelEPGBorderSize for border of epg image in chanel info
+- [add] patch - load epg image cover_vdr.jpg in recordings folder (thanks to Saman at vdr-portal.de)
+- [add] new option message color position (vertical, horizontal)
+- [add] message icons
+
+2014-05-11: Version 0.3.0
+- [fix] use only current Event in extraevent display in displaychannel
+- [fix] SetRecording border with deleteresume.patch
+- [fix] recording menu with cutted recordings an %
+- [fix] all around some small fixes
+- [update] channel logo in wide format (like 3PO or Copperhead logos)
+- [update] complete rewrite multiline content
+- [update] draw timer menu with a straight table
+- [update] README, teile vom Wiki in README-Datei übernommen
+- [add] show reruns in epg info (lent code from nopacity, thanks!)
+- [add] TVScraper support
+        - show poster images of movies and series
+        - show actor images
+- [add] scraper2vdr support
+        - show poster images of movies and series
+        - show actor images
+        - show movies and series information
+- [add] plugin settings for TVScraper/scraper2vdr
+- [add] more options to show disk usage (not show; timer & recording menu; always on the menu; always show)
+- [add] horizontal line and group icon in SetItemEvent for group channels
+- [add] new fnu_anthra_themes (thank You fnu/Frank)
+- [add] eventsview-flatplus.sql for epgd to prevent double information in epg-text, please see wiki for more information
+- [add] parse tilde in timer menu and draw text after tilde with clrMenuItemExtraTextFont
+
+2014-03-25: Version 0.2.1
+- [fix] epgsearch progessbar in SetItemEvent, if epg start time is after now (2 minutes tolerance)
+- [fix] channel logo in topbar in program menu
+- [fix] reply info background color
+- [fix] display channel progressbar while zapping
+- [update] imagecache, pre load images after skin is loaded
+           new menu item under general to show the amount of cached images
+           debug syslog message if cache is overflow
+- [update] display signal quality in displaychannel one above the other (before side by side)
+- [update] you can configure to use colors for signal quality (works only with ProgresType big line + outline)
+- [update] only update signal quality if the values for STR or SNR changed
+- [add] theme color clrMenuItemExtraTextCurrentFont
+- [add] logo background for channel logos (filename: logo_background.png)
+- [add] show cutted length of recording in replay info
+- [add] update script to update MV-Themes (contrib/flatPlus_MV_Update.sh)
+- [add] timer conflicts in TopBar, active epgsearch is needed, configurable via menu settings
+        you can configure a min value at which it will shown in red (otherwise yellow)
+- [add] display audio channel icons in audio tracks menu
+
+2014-02-22: Version 0.2.0
+- [fix] load user decor settings
+- [fix] menu scrollbar size and margin
+- [fix] no scrollbar in some situations
+- [fix] remove button border if button is not shown
+- [fix] menuitem progressbar overlay itemtext
+- [fix] fixes in TopBar while icon set
+- [fix] setup, wrong init stringlist
+- [fix] more small fixes
+- [update] add Patch from MegaV0lt, support for simple aspect & format, new icons
+- [update] only log not loaded images
+- [update] MV-Themes, thanks MegaV0lt!
+- [add] theme colors clrMenuTextFixedFont, clrMenuTimerItemDisabledFont, clrMenuTimerItemRecordingFont,
+    clrMenuItemExtraTextFont
+- [add] add support for menu SetItemChannel
+- [add] add support for menu SetItemTimer
+- [add] add support for menu SetItemEvent (program menu)
+- [add] add support for menu SetItemRecording
+- [add] imagescaler from skin nopacity (thank you!)
+- [add] imagecache for faster image loading
+- [add] option MenuItemRecordingClearPercent set to 1 to clear the '%' in recording names (you have an cut icon to detect cutted recordings)
+- [add] option MenuItemRecordingShowFolderDate to show the date in the folder item from the newest/oldest recording in that folder (0 = disable, 1 = newest recording date, 2 = oldest recording date)
+- [add] option MenuItemParseTilde for parse the tilde (of epgsearch) and draw the text after the tilde in clrMenuItemExtraTextFont color
+- [add] define DEBUGIMAGELOADTIME for debug output of imageloader time (search in cache, load from disk, scale)
+
+
+2013-11-24: Version 0.1.0 - MegaV0lt Version
+Special thanks to MegaV0lt at VDR-Portal for
+detailed bug reports, feature requests, testing and themes + icons
+
+!!!
+Please delete previous themes and icons!
+!!!
+
+- [fix] many small fixes
+- [fix] marker position
+- [fix] borders displaced
+- [fix] icon size in channel display
+- [update] menu has full width if no scrollbar is needed
+- [update] TopBar date align right
+- [update] channel display icons
+- [update] show recording in display channel for present and following
+- [update] do not DisplayChannel for the first time
+- [update] remove decor settings from themes and add separately decor files.
+           You can select decor file from plugin settings.
+           WARNING: Please delete all old themes!
+- [add] free minutes in disk usage TopBar
+- [add] TopBar font size option (select individual font size for TopBar)
+- [add] message bottom offset option (select the offset of bottom screen for messages)
+- [add] menu items symbols for rec, timer, etc. Lent code from skin elchi (thank you!)
+- [add] option menu content full size background (draw menu background for full menu size
+        or only for content size)
+- [add] option to display resolution & aspect in display channel
+- [add] option do display format (hd/sd) in display channel
+- [add] option to display resolution & aspect in replay
+- [add] option do display format (hd/sd) in replay
+- [add] default logo for channels without channel logo (logo for tv and radio)
+- [add] use icon from default theme if current theme does not have the icon
+- [add] option to show additional info in epg menu. Lent code from skin elchi (thank you!)
+- [add] option to show additional info in recording menu. Lent code from skin elchi (thank you!)
+- [add] option to show active recording in TopBar
+- [add] menu icons (lent some code from skin nopacity, thanks!)
+- [add] TopBar menu icons
+- [add] many themes, icons, etc. - many thanks for MegaV0lt!
+
+
+2013-09-23: Version 0.0.1
+difference to skinflat
+- [add] configurable borders
+        - any window have its own border with separate size and type
+        - 6 border types:
+            rect, round, invert round,
+            rect + alpha blend, round + alpha blend, invert round + alpha blend
+        - configurable by theme or user
+- [add] configurable progressbar
+        - any progressbar have its own size and type
+        - 10 progressbar types:
+            small line + big line, big line, big line + outline,
+            small line + big line + dot, big line + dot, big line + outline + dot,
+            small line + dot, outline + dot, small line + big line + alpha blend,
+            big line + alpha blend
+        - configurable by theme or user
+- [add] channel icons for resolution, recording, encrypted (configurable)
+- [add] show disk usage in topbar @ menu recordings & timer
+- [add] show disk usage pie graph
+- [add] show signal strength and quality (configurable)
+- [add] hide empty color buttons (configurable)
+- [add] configure menu item padding
+- [add] configure osd margin
diff --git a/MV_Themes.HISTORY b/MV_Themes.HISTORY
new file mode 100644
index 0000000..88f788f
--- /dev/null
+++ b/MV_Themes.HISTORY
@@ -0,0 +1,112 @@
+MV-Themen fuer Skin flatPlus
+
+Download: https://dl.dropboxusercontent.com/u/1490505/VDR/skinflatplus/MV_Themes.tar.xz
+
+HISTORY
+ [...] Erste Version
+ [18.11.2013] - Themen ueberarbeitet. Farben angepasst und .decor erstellt
+ [24.11.2013] - Widergabestatus: Symbole passend zu den Themen eingefaerbt
+              - Formatsymbole: von 100% Weiss nach 95%
+ [25.11.2013] - Wiedergabe-Info: Eigenes Symbol (extraIcons/playing.png)
+ [26.11.2013] - Wiedergabe-Info: Symbolname korrigiert (extraIcons/Playing.png)
+              - Themen "Blood" und "Rauchglas" nur noch mit geaendertem Hintergrund
+                => Bitte alte Themen und Icon-Ordner loeschen <=
+              - Neu: Thema "Fog"
+ [27.11.2013] - Farben angepasst (Tasten und Nachrichten)
+              - Thema "Fog" Schriftfarbe geaendert
+ [29.11.2013] - Thema "Fog", "Mint", "Pumpkin" Schriftfarbe bei ausgewaehlt Invertiert
+              - Formatsymbole in Farbe #D5D5D5
+ [06.12.2013] - Neu: Thema "XMAS"
+ [07.12.2013] - Thema "Fog" Schriftfarbe geaendert
+ [08.12.2013] - Thema "XMAS" Farben getauscht
+              - Wiedergabe Balken in Hintergrund-Farbe #959595 und #505050
+              - Lautstaerke: Rand 15, Leiste 25
+              - Inaktive Widergabesymbole #909090
+ [09.12.2013] - Hintergrundtransparenz C0 -> C5
+              - Thema "XMAS" Farben angepasst
+ [27.01.2014] - Formatsymbole geaendert: 1920x1080.png, ...
+ [29.01.2014] - Symbol 'Chart7.png' in rot (Platte fast voll)
+ [02.02.2014] - Sparaufloesungen mit Warn-Symbol
+ [10.02.2014] - Symbol changroup (Marker in Kanalliste) in Skinfarbe
+ [11.02.2014] - Symbol changroup (Marker in Kanalliste) geaendert
+              - Wiedergabe Balken in Hintergrund-Farbe #757575 und #303030
+ [12.02.2014] - Aktive Timer in Rot
+              - Symbole für Timer-Ansicht eingefaerbt
+              - Dritte Farbe Balken von #303030 -> #555555
+              - Festbreitenschrift in #CCBB22
+ [15.02.2014] - Neue Sysmbole fuer timer_full.png, timer_partial.png und vps.png
+              - Symbol tv.png und radio.png verkleinert
+              - Neues Thema "DeepBlue"
+ [19.02.2014] - Neues Symbol fuer "Neu"
+ [20.02.2014] - Symbole 'timerActive.png', 'timerInactive.png' und 'timerRecording.png'
+                mit Schatten
+              - 'timer_full.png' verkleinert, 'timer_partial.png' geaendert
+ [10.03.2014] - ExtraTextFont in Themenfarbe
+              - ExtraTextCurrentFont in Hintergrundfarbe
+ [11.03.2014] - 'logo_background.png' fuer Kanallogos mit 30% Deckkraft und in #FFFFFF
+ [12.03.2014] - 'logo_background.png' mit runden Ecken und leichtem Verlauf
+              - 'vps.png' Schrift vergroessert
+ [14.03.2014] - Verlinkung von Themenuebergreifenden Symbolen mit symbolischen Links
+ [15.03.2014] - 'recording_cutted_extra.png' kleiner und in Themenfarbe
+              - Fehler in 'vps.png' korrigiert
+ [16.03.2014] - Schriftfarbe bei Nachrichten #AAAAAA
+ [21.03.2014] - Schriftfarbe bei Nachrichten #BBBBBB
+              - Farbe Statusmeldung und Knopf 'Blau' in #2222CC
+ [22.03.2014] - Timerkonflikt: Neu 'clrTopBarConflictLowFg', 'clrTopBarConflictLowBg',
+                'clrTopBarConflictHighFg' und 'clrTopBarConflictHighBg'
+              - Audio: Neu 'clrTrackItemSelableBg', 'clrTrackItemSelableFont',
+                'clrTrackItemBorderFg', 'clrTrackItemBorderBg',
+                'clrTrackItemSelableBorderFg' und 'clrTrackItemSelableBorderBg'
+              - Farbe der Symbole 'topbar_timer.png', 'topbar_timerconflict_low.png'
+                und 'topbar_timerconflict_high.png' angepasst
+              - Hinweis auf 'make install' im Skript 'flatPlus_MV_Update.sh'
+              - Option für 'Silent Update' (-u) im Skript 'flatPlus_MV_Update.sh'
+ [03.04.2014] - 'logo_background.png' entfernt. Nutzt nun das default Logo
+ [10.04.2014] - Logos 'radio.png' und 'tv.png' angepasst
+ [30.05.2014] - '70_MV_rect_sml.decor' angepast
+              - Neue Farben 'clrMenuEventTitleLine', 'clrMenuRecTitleLine'
+                'clrChannelEPGBorderFg' und 'clrChannelEPGBorderBg' eingefuegt
+ [31.05.2014] - Hellere Farbe (+35) bei den Bereichstrennern
+              - Update der empfohlenen Einstellungen in der MV_Themes.INFO
+              - Alle Themen, Decor und *.png ohne Execute-Flag (chmod -x)
+ [01.06.2014] - Textfarbe bei Bereichstrennern heller
+              - Skript 'flatPlus_MV_Update.sh' mit Installation der Themen
+              - Timer- und VPS-Symbol (EPG) in Themenfarbe und mit Schlagschatten
+              - Stern-Symbol (Aufnahmeliste) in Themenfarbe und mit Schlagschatten
+ [02.06.2014] - Farbe fuer Laufende Timer auf #FF5050 (Helles Rot) geaendert
+ [15.06.2014] - Symbole fuer Nachrichten in Farbe (Info, Status, Warnung und Fehler)
+ [16.06.2014] - Symbole 'mesasge_info.png', 'mesasge_status.png' und
+                'mesasge_warning.png' durch "volle" Versionen ersetzt
+ [28.06.2014] - Neue Symbole fuer 'text_arrow_turn*.png' und 'text_timer_full*.png'
+              - Symbole 'text_new*.png', 'text_rec*.png', 'text_timer_partial*.png'
+                und 'text_vps*.png' mit vorhandenen Symbolen verlinkt
+ [11.07.2014] - Symbol fuer geschnittene Aufnahmen ('recording_cutted.png') in Farbe
+ [12.07.2014] - Symbole 'recording_cutted.png', 'recording_new.png', 'timer_full.png',
+                'timer_partial.png' und 'vps.png' Schatten entfernt und ein dazu
+                passendes '_cur.png' erstellt
+              - '70_MV_rect_sml.decor' angepasst
+              - Empfohlene Einstellungen aktualisiert
+ [14.07.2014] - Symbol 'chart1b.png' mit 'chart7.png' verlinkt; Symbole 'chart2b.png'
+                bis 'chart7b.png' mit den default Symbolen 'chart6.png' bis 
+                'chart1.png' verlinkt
+ [02.08.2014] - Vorschaubilder fuer alle Themen im Ordner 'preview'
+              - Icons auch fuer MVGreen erstellt
+ [04.08.2014] - Symbol fuer Seitenverhaeltnis bei SD-Sender mit H.264 Codec (20:11)
+                erstellt (16:9 mit Warnsymbol)
+ [09.08.2014] - Konfiguration 'MV_default' hinzugefuegt
+ [28.10.2014] - Konfiguration 'MV_default' aktualisiert fuer Version 0.4.3
+ [31.10.2014] - Neues Thema "Zitrone"
+ [02.11.2014] - Neues 'uncrypted.png' Symbol
+              - Hintergrundtransparenz bei den Themen "Fog" und "Zirtone"
+                auf 'A0' geaendert
+ [03.11.2014] - Farben 'FontTitle' und 'FontTitleLine' getauscht (Linie ist heller)
+ [11.11.2014] - Symbol 'changroup.png' aus dem default-Theme uebernommen; in Skinfarbe
+ [14.11.2014] - Neues Thema "Indigo" vom Default_Indigo abgeleitet
+              - Schriftfarbe beim Thema "Fog" angepasst
+ [17.11.2014] - Konfiguration 'MV_default' wegen der neuen Widgets aktualisiert
+              - Vier neue Themen: "Beige", "Orange", "Terra" und "White"
+ [01.12.2014] - Transparenz der Rahmen bei Ausgewaehlt von "C5" auf "E1" gesetzt
+ [02.12.2014] - Konfiguration 'MV_default' aktualisiert fuer Version 0.5.0
+              - Neu: Installationshinweis für 'configs'
+              - Empfohlene Einstellungen aktualisiert
+              - Hinweis auf Schriften geaendert
diff --git a/MV_Themes.INFO b/MV_Themes.INFO
new file mode 100644
index 0000000..575852f
--- /dev/null
+++ b/MV_Themes.INFO
@@ -0,0 +1,76 @@
+flatPlus-MV_Themen erstellt am 02.12.2014 08:52
+Basisthema: flatPlus-MVGreen.theme, Basisicons: MVdefault
+
+=> Installationshimnweise am Ende der Datei! <=
+
+Thema: Beige, Farbe: CCA550 
+Thema: Berry, Farbe: A61D4D 
+Thema: Blue, Farbe: 0050EF 
+Thema: Cappuchino, Farbe: 87794E 
+Thema: Chocolate, Farbe: 825A2C 
+Thema: Cyan, Farbe: 149BAF 
+Thema: Grapefruit, Farbe: C3461B 
+Thema: Grey, Farbe: 647687 
+Thema: Indigo, Farbe: 3F51B5 
+Thema: LightBlue, Farbe: 1BA1E2 
+Thema: LightGreen, Farbe: 70AD11 
+Thema: Mint, Farbe: A4C400 
+Thema: Nuts, Farbe: BF9217 
+Thema: Olive, Farbe: 6D8764 
+Thema: Orange, Farbe: F0A30A 
+Thema: Pflaume, Farbe: 6A00FF 
+Thema: Pumpkin, Farbe: F0A30A 
+Thema: Purple, Farbe: 6C0AAB 
+Thema: PurpleGrey, Farbe: 76608A 
+Thema: Red, Farbe: E51400 
+Thema: Terra, Farbe: 7A3B3F 
+Thema: Blood, Farbe: 911D10, Hintergrund: 221111 
+Thema: DeepBlue, Farbe: 0545DF, Hintergrund: 101030 Schriftfarbe: DDDDEE
+Thema: Fog, Farbe: 111111, Hintergrund: DEDEDE Schriftfarbe: 445867
+Thema: Green 2, Farbe: 008A00, Hintergrund: 112211 
+Thema: HelloKitty 2, Farbe: F472D0, Hintergrund: FF80F0 
+Thema: HelloKitty, Farbe: F472D0 
+Thema: Rauchglas, Farbe: 825A2C, Hintergrund: 200F02 
+Thema: White, Farbe: FFFFFF Schriftfarbe: A5A5A5
+Thema: XMAS, Farbe: CC1111, Hintergrund: 114511 
+Thema: Zitrone, Farbe: EEEE0F, Hintergrund: 88881A Schriftfarbe: FFFFAA
+31 Themen erstellt. 8 davon mit Hintergrund.
+Insgesamt 32 Icon-Ordner erstellt
+
+Installationshinweise:
+ - Alle *.theme aus dem Ordner themes nach <vdrconfigdir>/themes kopieren.
+ - Alle *.decor aus dem Ordner decors nach <vdrconfigdir>/plugins/skinflatplus/decors kopieren.
+ - Alle MV* aus dem Ordner configs nach <vdrconfigdir>/plugins/skinflatplus/configs kopieren.
+ - Alle MV* Ordner aus dem Ordner icons nach <vdrconfigdir>/plugins/skinflatplus/icons kopieren.
+
+Optional (Pfade evtl. Anpassen!):
+ - Schrift(en) aus dem Archiv https://db.tt/QCyK0I8s entpacken und nach
+   /usr/share/fonts kopieren. Die Schriften enthalten auch die VDR-Symbole.
+
+Empfohlene Einstellungen (setup.conf) im skin-flatplus-Plugin:
+Laden mit "Menue - Einstellungen - Plugins - SkinFlatPlus - Allgemeine Einstellungen:"
+"OK druecken um die Konfigdatei zu laden: MV_default - OK"
+
+Empfohlene Einstellungen (setup.conf) im VDR (Menue - Einstellungen - OSD):
+FontFix = Courier:Bold
+FontFixSize = 33
+FontFixSizeP = 0.031000
+FontOsd = Droid Sans:Regular
+FontOsdSize = 44
+FontOsdSizeP = 0.041000
+FontSml = Droid Sans:Regular
+FontSmlSize = 35
+FontSmlSizeP = 0.032000
+OSDAspect = 1.000000
+OSDHeight = 1080
+OSDHeightP = 1.000000
+OSDLanguage = de_DE
+OSDLeft = 0
+OSDLeftP = 0.000000
+OSDMessageTime = 6
+OSDSkin = flatPlus
+OSDTheme = MVIndigo
+OSDTop = 0
+OSDTopP = 0.000000
+OSDWidth = 1920
+OSDWidthP = 1.000000
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..168e4db
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,165 @@
+#
+# Makefile for a Video Disk Recorder plugin
+#
+# $Id$
+
+# The official name of this plugin.
+# This name will be used in the '-P...' option of VDR to load the plugin.
+# By default the main source file also carries this name.
+# IMPORTANT: the presence of this macro is important for the Make.config
+# file. So it must be defined, even if it is not used here!
+#
+PLUGIN = skinflatplus
+
+# define vdrlogo for menu topbar
+# if not defined vdrlogo_default will be used
+# define here or use make VDRLOGO=\"vdrlogo_default\"
+# available logos are
+#   vdrlogo_debian
+#   vdrlogo_default
+#   vdrlogo_easyvdr
+#   vdrlogo_gen2vdr
+#   vdrlogo_shine
+#   vdrlogo_xubuntu
+#   vdrlogo_xubuntu2
+#   vdrlogo_yavdr
+SKINFLATPLUS_VDRLOGO = vdrlogo_default
+
+#DEFINES += -DDEBUGIMAGELOADTIME
+#DEFINES += -DDEBUGEPGTIME
+
+### The version number of this plugin (taken from the main source file):
+
+VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
+
+### The directory environment:
+
+# Use package data if installed...otherwise assume we're under the VDR source directory:
+PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
+LIBDIR = $(call PKGCFG,libdir)
+LOCDIR = $(call PKGCFG,locdir)
+PLGCFG  = $(call PKGCFG,plgcfg)
+VDRCONFDIR = $(call PKGCFG,configdir)
+PLGRESDIR = $(call PKGCFG,resdir)/plugins/$(PLUGIN)
+TMPDIR ?= /tmp
+SKINFLATPLUS_WIDGETDIR ?= $(LIBDIR)/$(PLUGIN)/widgets
+
+### The compiler options:
+export CFLAGS   = $(call PKGCFG,cflags)
+export CXXFLAGS = $(call PKGCFG,cxxflags)
+
+### Allow user defined options to overwrite defaults:
+
+-include $(PLGCFG)
+
+### The version number of VDR's plugin API:
+APIVERSION = $(call PKGCFG,apiversion)
+
+### The name of the distribution archive:
+
+ARCHIVE = $(PLUGIN)-$(VERSION)
+PACKAGE = vdr-$(ARCHIVE)
+
+### The name of the shared object file:
+
+SOFILE = libvdr-$(PLUGIN).so
+
+### Includes and Defines and Dependencies (add further entries here):
+
+INCLUDES += $(shell pkg-config --cflags Magick++ freetype2 fontconfig)
+
+DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' -DVDRLOGO=\"$(SKINFLATPLUS_VDRLOGO)\"
+DEFINES += -DWIDGETFOLDER='"$(SKINFLATPLUS_WIDGETDIR)"'
+
+LIBS += $(shell pkg-config --libs Magick++)
+
+### The object files (add further files here):
+
+OBJS = config.o setup.o imagecache.o imagescaler.o imagemagickwrapper.o imageloader.o baserender.o complexcontent.o textscroller.o femonreceiver.o displaychannel.o displaymenu.o displaymessage.o \
+	   displayreplay.o displaytracks.o displayvolume.o flat.o $(PLUGIN).o
+
+### The main target:
+
+all: $(SOFILE) i18n
+
+### Implicit rules:
+
+%.o: %.c
+	$(CXX) -Wall $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
+
+### Dependencies:
+
+MAKEDEP = $(CXX) -MM -MG
+DEPFILE = .dependencies
+$(DEPFILE): Makefile
+	@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
+
+-include $(DEPFILE)
+
+### Internationalization (I18N):
+
+PODIR     = po
+I18Npo    = $(wildcard $(PODIR)/*.po)
+I18Nmo    = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
+I18Nmsgs  = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
+I18Npot   = $(PODIR)/$(PLUGIN).pot
+
+%.mo: %.po
+	msgfmt -c -o $@ $<
+
+$(I18Npot): $(wildcard *.c)
+	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
+
+%.po: $(I18Npot)
+	msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
+	@touch $@
+
+$(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+	install -D -m644 $< $@
+
+.PHONY: i18n
+i18n: $(I18Nmo) $(I18Npot)
+
+install-i18n: $(I18Nmsgs)
+
+### Targets:
+
+$(SOFILE): $(OBJS)
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@
+
+install-lib: $(SOFILE)
+	install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
+
+install-themes:
+	mkdir -p $(DESTDIR)$(VDRCONFDIR)/themes
+	cp themes/* $(DESTDIR)$(VDRCONFDIR)/themes
+
+install-decors:
+	mkdir -p $(DESTDIR)$(PLGRESDIR)/decors
+	cp decors/* $(DESTDIR)$(PLGRESDIR)/decors
+
+install-icons:
+	mkdir -p $(DESTDIR)$(PLGRESDIR)/icons
+	cp -r --remove-destination icons/* $(DESTDIR)$(PLGRESDIR)/icons
+
+install-configs:
+	mkdir -p $(DESTDIR)$(VDRCONFDIR)/plugins/$(PLUGIN)/configs
+	cp configs/* $(DESTDIR)$(VDRCONFDIR)/plugins/$(PLUGIN)/configs
+
+install-widgets:
+	mkdir -p $(DESTDIR)$(SKINFLATPLUS_WIDGETDIR)
+	cp -r widgets/* $(DESTDIR)$(SKINFLATPLUS_WIDGETDIR)
+
+install: install-lib install-i18n install-themes install-icons install-decors install-configs install-widgets
+
+dist: $(I18Npo) clean
+	@-rm -rf $(TMPDIR)/$(ARCHIVE)
+	@mkdir $(TMPDIR)/$(ARCHIVE)
+	@cp -a * $(TMPDIR)/$(ARCHIVE)
+	@tar czf $(PACKAGE).tgz --exclude .git* --exclude *.o --exclude *.rej --exclude *.orig -C $(TMPDIR) $(ARCHIVE)
+	@-rm -rf $(TMPDIR)/$(ARCHIVE)
+	@echo Distribution package created as $(PACKAGE).tgz
+
+clean:
+	@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
+	@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~
diff --git a/README b/README
new file mode 100644
index 0000000..b794461
--- /dev/null
+++ b/README
@@ -0,0 +1,110 @@
+This is a "plugin" for the Video Disk Recorder (VDR).
+
+Written by:                  Martin Schirrmacher <vdr.skinflatplus at schirrmacher.eu>
+
+Project's homepage:          http://projects.vdr-developer.org/projects/plg-skinflatplus/
+
+Projekt Wiki                 http://projects.vdr-developer.org/projects/plg-skinflatplus/wiki
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+See the file COPYING for more information.
+
+
+Anforderungen
+-------------------------------
+- VDR Version >= 1.7.34
+- ImageMagick zur Anzeige von png/jpg Icons, Kanal Logos and EPG Bilder
+
+
+Beschreibung
+-------------------------------
+Skin flatPlus ist ein moderner und aktueller Skin f�r VDR.
+Das Design ist flach und geradlinig (keine glossy oder 3D-Effekte)
+
+
+git-Zugriff
+-------------------------------
+Auf das git kann mittels
+
+git clone http://projects.vdr-developer.org/git/skin-flatplus.git/
+
+zugegriffen werden.
+Da im git nat�rlich aktiv entwickelt wird k�nnen Fehler nicht ausgeschlossen werden (ich empfehle es nicht f�r produktiv Systeme)
+
+
+Installation
+-------------------------------
+Installation wie bei allen VDR Plugins.
+    make
+    make install
+
+F�r die Kanallogos empfehle ich die Logos von Copperhead: http://creimer.net/channellogos/
+Ich nutze "nopacity-logos-white"
+Die Logos m�ssen im folgenden Ordner zur Verf�gung gestellt werden:
+    <vdrconfigdir>/plugins/skinflat/logos/
+
+Der Skin muss im Men� unter Einstellungen -> OSD ausgew�hlt werden.
+
+
+Versteckte Einstellungen
+-------------------------------
+Versteckte Einstellungen sind Einstellungen die in der VDR setup.conf konfiguriert werden k�nnen, wozu es aber keine Einstellungen im OSD -> Einstellungen -> Plugins -> skinflatplus gibt.
+
+* MenuItemRecordingClearPercent - Wenn die Einstellung auf 1 gesetzt ist, wird vom Aufnahmetext das Prozentzeichen am Anfang des Strings entfernt.
+* MenuItemRecordingShowFolderDate - Wenn die Einstellung auf 1 gesetzt ist, wird bei einem Ordner von der neuesten Aufzeichnung das Datum angezeigt, Wenn die Einstellung auf 2 gesetzt ist, wird bei einem Ordner von der �ltesten Aufzeichnung das Datum angezeigt.
+* MenuItemParseTilde - Wenn die Einstellung auf 1 gesetzt ist, wird beim Men�-Item-Text auf den Buchstaben Tilde '~' gepr�ft und wenn eine Tilde gefunden wurde, wird die Tilde entfernt und alles was nach der Tilde steht in einer anderen Farbe dargestellt. Dies ist z.B. interessant wenn man epgsearch hat.
+* ChannelBitrateShowCalcInterval - In welchen Intervall soll die Bitrate (Kanalanzeige) aktualisiert werden (default 20)
+
+TVScraper & scraper2vdr
+-------------------------------
+Since version 0.3.0 the skin support TVScraper & scraper2vdr.
+With both plugins you'll get poster, banner and actor images for recordings and epg info.
+If You use scraper2vdr, which I recommend, you'll also get movie and series information.
+
+
+epgd & doppelte Informationen in EPG-Text
+-------------------------------
+Wenn epgd + epg2vdr verwendet wird, wird der angezeigte EPG-Text �ber die eventsview.sql festgelegt (in der epgd.conf Option: EpgView).
+Mit der default eventsview.sql ist im EPG-Text die Schauspieler, Serien- und Filminformationen mit enthalten. Da diese dann doppelt angezeigt werden w�rden (im EPG-Text und in den extra Bereichen �ber scraper2vdr) existiert im contrib-Ordner von flatPlus eine eigene "eventsview-flatplus.sql". Mit dieser wird im EPG-Text wirklich nur der EPG-Text ausgeben und keine weiteren Informationen.
+Ich empfehle diese zu verwenden. Daf�r einfach die Datei aus den contrib Ordner nach /etc/epgd/ kopieren und in der epgd.conf folgenden Eintrag verwenden:
+
+EpgView = eventsview-flatplus.sql
+
+
+Themes und Theme spezifische Icons
+-------------------------------
+Der Skin ist weitestgehend �ber Themes anpassbar.
+Die Decorations (Border, ProgressBar) sind �ber das Theme einstellbar. Dabei kann jeweils der Typ und
+die Gr��e (in Pixeln) eingestellt werden. Dabei wird von dem ARGB im Theme nur B verwendet. Es muss darauf geachtet werden
+das die Werte in Hex angegeben werden. Wenn man also z.B. eine Gr��e von 20 Pixeln angeben m�chte hei�t der Wert: 00000014
+Siehe dazu die Beispiele.
+
+Borders:
+    0 = none
+    1 = rect
+    2 = round
+    3 = invert round
+    4 = rect + alpha blend
+    5 = round + alpha blend
+    6 = invert round + alpha blend
+Beispiel:
+    clrChannelBorderType = 00000004
+    clrChannelBorderSize = 0000000F
+
+ProgressBar:
+    0 = small line + big line
+    1 = big line
+    2 = big line + outline
+    3 = small line + big line + dot
+    4 = big line + dot
+    5 = big line + outline + dot
+    6 = small line + dot
+    7 = outline + dot
+    8 = small line + big line + alpha blend
+    9 = big line + alpha blend
+Beispiel
+    clrChannelProgressType = 00000008
+    clrChannelProgressSize = 0000000F
diff --git a/baserender.c b/baserender.c
new file mode 100644
index 0000000..64667b8
--- /dev/null
+++ b/baserender.c
@@ -0,0 +1,1655 @@
+#include "baserender.h"
+#include "flat.h"
+#include <vdr/menu.h>
+#include "services/epgsearch.h"
+#include <utility>
+#include <fstream>
+#include <iostream>
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+cFlatBaseRender::cFlatBaseRender(void) {
+    font = cFont::CreateFont(Setup.FontOsd, Setup.FontOsdSize );
+    fontSml = cFont::CreateFont(Setup.FontSml, Setup.FontSmlSize);
+    fontFixed = cFont::CreateFont(Setup.FontFix, Setup.FontFixSize);
+    topBarFontClock = NULL;
+
+    fontHeight = font->Height();
+    fontSmlHeight = fontSml->Height();
+    fontFixedHeight = fontFixed->Height();
+
+    topBarTitle = "";
+    tobBarTitleExtra1 = "";
+    tobBarTitleExtra2 = "";
+    topBarLastDate = "";
+    topBarUpdateTitle = false;
+    topBarHeight = 0;
+    topBarExtraIconSet = false;
+    topBarMenuIcon = "";
+    topBarMenuIconSet = false;
+    topBarMenuIconRight = "";
+    topBarMenuIconRightSet = false;
+    topBarMenuLogo = "";
+    topBarMenuLogoSet = false;
+
+    marginItem = 5;
+
+    scrollBarWidth = Config.decorScrollBarSize;
+
+    buttonsHeight = 0;
+    buttonsDrawn = false;
+
+    osd = NULL;
+    topBarPixmap = NULL;
+    buttonsPixmap = NULL;
+    messagePixmap = NULL;
+    messageIconPixmap = NULL;
+    contentPixmap = NULL;
+    contentEpgImagePixmap = NULL;
+    progressBarPixmap = NULL;
+    progressBarPixmapBg = NULL;
+    decorPixmap = NULL;
+
+    Config.ThemeCheckAndInit();
+    Config.DecorCheckAndInit();
+}
+
+cFlatBaseRender::~cFlatBaseRender(void) {
+    delete font;
+    delete fontSml;
+    delete fontFixed;
+    if( topBarFontClock != NULL )
+        delete topBarFontClock;
+
+    if( osd ) {
+        messageScroller.Clear();
+        if( topBarPixmap )
+            osd->DestroyPixmap(topBarPixmap);
+        if( buttonsPixmap )
+            osd->DestroyPixmap(buttonsPixmap);
+        if( messagePixmap )
+            osd->DestroyPixmap(messagePixmap);
+        if( messageIconPixmap )
+            osd->DestroyPixmap(messageIconPixmap);
+        if( contentPixmap )
+            osd->DestroyPixmap(contentPixmap);
+        if( progressBarPixmap )
+            osd->DestroyPixmap(progressBarPixmap);
+        if( progressBarPixmapBg )
+            osd->DestroyPixmap(progressBarPixmapBg);
+        if( decorPixmap )
+            osd->DestroyPixmap(decorPixmap);
+        if( topBarIconPixmap )
+            osd->DestroyPixmap(topBarIconPixmap);
+        if( topBarIconBGPixmap )
+            osd->DestroyPixmap(topBarIconBGPixmap);
+        if( contentEpgImagePixmap )
+            osd->DestroyPixmap(contentEpgImagePixmap);
+
+        delete osd;
+    }
+}
+
+void cFlatBaseRender::CreateFullOsd(void) {
+    CreateOsd(cOsd::OsdLeft() + Config.marginOsdHor, cOsd::OsdTop() + Config.marginOsdVer, cOsd::OsdWidth() - Config.marginOsdHor*2, cOsd::OsdHeight() - Config.marginOsdVer*2);
+}
+
+void cFlatBaseRender::CreateOsd(int left, int top, int width, int height) {
+    osdLeft = left;
+    osdTop = top;
+    osdWidth = width;
+    osdHeight = height;
+
+    osd = cOsdProvider::NewOsd(left, top);
+    if (osd) {
+        tArea Area = { 0, 0, width, height,  32 };
+        if (osd->SetAreas(&Area, 1) == oeOk) {
+            dsyslog("skinflatplus: create osd SUCCESS left: %d top: %d width: %d height: %d", left, top, width, height);
+            return;
+        }
+    }
+    esyslog("skinflatplus: create osd FAILED left: %d top: %d width: %d height: %d", left, top, width, height);
+    return;
+}
+
+void cFlatBaseRender::TopBarCreate(void) {
+    int fs = int(round(cOsd::OsdHeight() * Config.TopBarFontSize));
+    topBarFont = cFont::CreateFont(Setup.FontOsd, fs);
+    topBarFontClock = cFont::CreateFont(Setup.FontOsd, fs * Config.TopBarFontClockScale * 100.0);
+    topBarFontSml = cFont::CreateFont(Setup.FontOsd, fs / 2);
+    topBarFontHeight = topBarFont->Height();
+    topBarFontSmlHeight = topBarFontSml->Height();
+    topBarFontClockHeight = topBarFontClock->Height();
+
+    if( topBarFontHeight > topBarFontSmlHeight*2 )
+        topBarHeight = topBarFontHeight;
+    else
+        topBarHeight = topBarFontSmlHeight * 2;
+
+    topBarPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight));
+    //dsyslog("skinflatplus: topBarPixmap left: %d top: %d width: %d height: %d", Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight);
+    topBarIconBGPixmap = osd->CreatePixmap(2, cRect(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight));
+    //dsyslog("skinflatplus: topBarIconBGPixmap left: %d top: %d width: %d height: %d", Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight);
+    topBarIconPixmap = osd->CreatePixmap(3, cRect(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight));
+    //dsyslog("skinflatplus: topBarIconPixmap left: %d top: %d width: %d height: %d", Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight);
+    topBarPixmap->Fill(clrTransparent);
+    topBarIconBGPixmap->Fill(clrTransparent);
+    topBarIconPixmap->Fill(clrTransparent);
+
+    if( Config.DiskUsageShow == 3)
+        TopBarEnableDiskUsage();
+}
+
+void cFlatBaseRender::TopBarSetTitle(cString title) {
+    topBarTitle = title;
+    tobBarTitleExtra1 = "";
+    tobBarTitleExtra2 = "";
+    topBarExtraIcon = "";
+    topBarMenuIcon = "";
+    topBarMenuIconRight = "";
+    topBarMenuIconRightSet = false;
+    topBarUpdateTitle = true;
+    topBarExtraIconSet = false;
+    topBarMenuIconSet = false;
+    topBarMenuLogo = "";
+    topBarMenuLogoSet = false;
+    if( Config.DiskUsageShow == 3)
+        TopBarEnableDiskUsage();
+}
+
+void cFlatBaseRender::TopBarSetTitleWithoutClear(cString title) {
+    topBarTitle = title;
+    topBarUpdateTitle = true;
+    if( Config.DiskUsageShow == 3)
+        TopBarEnableDiskUsage();
+}
+
+void cFlatBaseRender::TopBarSetTitleExtra(cString extra1, cString extra2) {
+    tobBarTitleExtra1 = extra1;
+    tobBarTitleExtra2 = extra2;
+    topBarUpdateTitle = true;
+}
+
+void cFlatBaseRender::TopBarSetExtraIcon(cString icon) {
+    if( !strcmp(*icon, "") )
+        return;
+    topBarExtraIcon = icon;
+    topBarExtraIconSet = true;
+    topBarUpdateTitle = true;
+}
+
+void cFlatBaseRender::TopBarSetMenuIcon(cString icon) {
+    if( !strcmp(*icon, "") )
+        return;
+    topBarMenuIcon = icon;
+    topBarMenuIconSet = true;
+    topBarUpdateTitle = true;
+}
+
+void cFlatBaseRender::TopBarSetMenuIconRight(cString icon) {
+    if( !strcmp(*icon, "") )
+        return;
+    topBarMenuIconRight = icon;
+    topBarMenuIconRightSet = true;
+    topBarUpdateTitle = true;
+}
+
+void cFlatBaseRender::TopBarSetMenuLogo(cString icon) {
+    if( !strcmp(*icon, "") )
+        return;
+    topBarMenuLogo = icon;
+    topBarMenuLogoSet = true;
+    topBarUpdateTitle = true;
+}
+
+void cFlatBaseRender::TopBarEnableDiskUsage(void) {
+    cVideoDiskUsage::HasChanged(VideoDiskUsageState);
+    int DiskUsage = cVideoDiskUsage::UsedPercent();
+    double FreeGB = cVideoDiskUsage::FreeMB() / 1024.0;
+    double AllGB = FreeGB / (double)((double)(100 - DiskUsage) / 100.0);
+    int FreeMinutes = cVideoDiskUsage::FreeMinutes();
+    double AllMinutes = FreeMinutes / (double)((100 - DiskUsage) / 100.0);
+    double OccupiedGB = AllGB - FreeGB;
+    int OccupiedMinutes = AllMinutes - FreeMinutes;
+
+    cString extra1;
+    cString extra2;
+    // show in free mode
+    if( Config.DiskUsageFree == 1 ) {
+        if( Config.DiskUsageShort == false ) {
+            extra1 = cString::sprintf("%s: %d%% %s", tr("Disk"), 100 - DiskUsage, tr("free") );
+            extra2 = cString::sprintf("%.1f GB ~ %02d:%02d", FreeGB, FreeMinutes / 60, FreeMinutes % 60);
+        } else {
+            extra1 = cString::sprintf("%d%% %s", 100 - DiskUsage, tr("free") );
+            extra2 = cString::sprintf("~ %02d:%02d", FreeMinutes / 60, FreeMinutes % 60);
+        }
+    } else {
+        if( Config.DiskUsageShort == false ) {
+            extra1 = cString::sprintf("%s: %d%% %s", tr("Disk"), DiskUsage, tr("occupied") );
+            extra2 = cString::sprintf("%.1f GB ~ %02d:%02d", OccupiedGB, OccupiedMinutes / 60, OccupiedMinutes % 60);
+        } else {
+            extra1 = cString::sprintf("%d%% %s", 100 - DiskUsage, tr("occupied") );
+            extra2 = cString::sprintf("~ %02d:%02d", OccupiedMinutes / 60, OccupiedMinutes % 60);
+        }
+    }
+
+    int ChartDiskUsage = DiskUsage;
+    cString iconName("chart1");
+    if( Config.DiskUsageFree == 1 ) {
+        ChartDiskUsage = 100 - DiskUsage;
+
+        iconName = "chart1b";
+        if( ChartDiskUsage > 14 )
+            iconName = "chart2b";
+        if( ChartDiskUsage > 28 )
+            iconName = "chart3b";
+        if( ChartDiskUsage > 42 )
+            iconName = "chart4b";
+        if( ChartDiskUsage > 56 )
+            iconName = "chart5b";
+        if( ChartDiskUsage > 70 )
+            iconName = "chart6b";
+        if( ChartDiskUsage > 84 )
+            iconName = "chart7b";
+    } else {
+        if( ChartDiskUsage > 14 )
+            iconName = "chart2";
+        if( ChartDiskUsage > 28 )
+            iconName = "chart3";
+        if( ChartDiskUsage > 42 )
+            iconName = "chart4";
+        if( ChartDiskUsage > 56 )
+            iconName = "chart5";
+        if( ChartDiskUsage > 70 )
+            iconName = "chart6";
+        if( ChartDiskUsage > 84 )
+            iconName = "chart7";
+    }
+    TopBarSetTitleExtra(extra1, extra2);
+    TopBarSetExtraIcon(iconName);
+}
+// sollte bei jedum "Flush" aufgerufen werden!
+void cFlatBaseRender::TopBarUpdate(void) {
+    cString curDate = DayDateTime();
+    int TopBarWidth = osdWidth - Config.decorBorderTopBarSize*2;
+    int MenuIconWidth = 0;
+    cImage *imgCon = NULL;
+    cImage *imgRec = NULL;
+
+    if ( strcmp(curDate, topBarLastDate) || topBarUpdateTitle ) {
+        topBarUpdateTitle = false;
+        topBarLastDate = curDate;
+
+        int fontTop = (topBarHeight - topBarFontHeight) / 2;
+        int fontSmlTop = (topBarHeight - topBarFontSmlHeight*2) / 2;
+        int fontClockTop = (topBarHeight - topBarFontClockHeight) / 2;
+
+        topBarPixmap->Fill(Theme.Color(clrTopBarBg));
+        topBarIconPixmap->Fill(clrTransparent);
+        topBarIconBGPixmap->Fill(clrTransparent);
+
+        int titleWitdh = topBarFont->Width(topBarTitle);
+
+        if( topBarMenuIconSet && Config.TopBarMenuIconShow ) {
+            int IconLeft = marginItem;
+            cImage *img = imgLoader.LoadIcon(*topBarMenuIcon, 999, topBarHeight - marginItem*2);
+            if( img ) {
+                int iconTop = (topBarHeight / 2 - img->Height()/2);
+                topBarIconPixmap->DrawImage(cPoint(IconLeft, iconTop), *img);
+                MenuIconWidth = img->Width()+marginItem*2;
+            }
+        }
+
+        if( topBarMenuLogoSet && Config.TopBarMenuIconShow ) {
+            topBarIconPixmap->Fill(clrTransparent);
+            int IconLeft = marginItem;
+            int imageBGHeight = topBarHeight - marginItem*2;
+            int imageBGWidth = imageBGHeight*1.34;
+            int iconTop = 0;
+
+            cImage *imgBG = imgLoader.LoadIcon("logo_background", imageBGWidth, imageBGHeight);
+            if( imgBG ) {
+                imageBGHeight = imgBG->Height();
+                imageBGWidth = imgBG->Width();
+                iconTop = (topBarHeight / 2 - imgBG->Height()/2);
+                topBarIconBGPixmap->DrawImage( cPoint(IconLeft, iconTop), *imgBG );
+            }
+
+            cImage *img = imgLoader.LoadLogo(*topBarMenuLogo, imageBGWidth - 4, imageBGHeight - 4);
+            if( img ) {
+                iconTop += (imageBGHeight - img->Height())/2;
+                IconLeft += (imageBGWidth - img->Width())/2;
+                topBarIconPixmap->DrawImage(cPoint(IconLeft, iconTop), *img);
+            }
+            MenuIconWidth = imageBGWidth+marginItem*2;
+        }
+        int titleLeft = MenuIconWidth + marginItem*2;
+
+        time_t t;
+        time(&t);
+
+        cString time = TimeString(t);
+        cString time2 = cString::sprintf("%s %s", *time, tr("clock"));
+        if( Config.TopBarHideClockText )
+            time2 = cString::sprintf("%s", *time);
+
+        int timeWidth = topBarFontClock->Width(*time2) + marginItem*2;
+        int Right = TopBarWidth - timeWidth;
+        topBarPixmap->DrawText(cPoint(Right, fontClockTop), time2, Theme.Color(clrTopBarTimeFont), Theme.Color(clrTopBarBg), topBarFontClock);
+
+        cString weekday = WeekDayNameFull(t);
+        int weekdayWidth = topBarFontSml->Width(*weekday);
+
+        cString date = ShortDateString(t);
+        int dateWidth = topBarFontSml->Width(*date);
+
+        Right = TopBarWidth - timeWidth - max(weekdayWidth, dateWidth) - marginItem;
+        topBarPixmap->DrawText(cPoint(Right, fontSmlTop), weekday, Theme.Color(clrTopBarDateFont), Theme.Color(clrTopBarBg), topBarFontSml, max(weekdayWidth, dateWidth), 0, taRight);
+        topBarPixmap->DrawText(cPoint(Right, fontSmlTop + topBarFontSmlHeight), date, Theme.Color(clrTopBarDateFont), Theme.Color(clrTopBarBg), topBarFontSml, max(weekdayWidth, dateWidth), 0, taRight);
+
+        int middleWidth = 0;
+        int numConflicts = 0;
+        if( Config.TopBarRecConflictsShow ) {
+            cPlugin *p = cPluginManager::GetPlugin("epgsearch");
+            if (p) {
+                Epgsearch_lastconflictinfo_v1_0 *serviceData = new Epgsearch_lastconflictinfo_v1_0;
+                if (serviceData) {
+                    serviceData->nextConflict = 0;
+                    serviceData->relevantConflicts = 0;
+                    serviceData->totalConflicts = 0;
+                    p->Service("Epgsearch-lastconflictinfo-v1.0", serviceData);
+                    if (serviceData->relevantConflicts > 0) {
+                        numConflicts = serviceData->relevantConflicts;
+                    }
+                    delete serviceData;
+                }
+            }
+            if( numConflicts ) {
+                if( numConflicts < Config.TopBarRecConflictsHigh )
+                    imgCon = imgLoader.LoadIcon("topbar_timerconflict_low", topBarFontHeight - marginItem*2, topBarFontHeight - marginItem*2);
+                else
+                    imgCon = imgLoader.LoadIcon("topbar_timerconflict_high", topBarFontHeight - marginItem*2, topBarFontHeight - marginItem*2);
+
+                if( imgCon ) {
+                    cString Con = cString::sprintf("%d", numConflicts);
+                    Right -= imgCon->Width() + topBarFontSml->Width(*Con) + marginItem;
+                    middleWidth += imgCon->Width() + topBarFontSml->Width(*Con) + marginItem;
+                }
+            }
+        }
+
+        int numRec = 0;
+        if( Config.TopBarRecordingShow ) {
+            // look for timers
+            for(cTimer *ti = Timers.First(); ti; ti = Timers.Next(ti)) {
+                if( ti->Matches(t) ) {
+                    numRec++;
+                }
+            }
+            if( numRec ) {
+                imgRec = imgLoader.LoadIcon("topbar_timer", topBarFontHeight - marginItem*2, topBarFontHeight - marginItem*2);
+                if( imgRec ) {
+                    cString Rec = cString::sprintf("%d", numRec);
+                    Right -= imgRec->Width() + topBarFontSml->Width(*Rec) + marginItem;
+                    middleWidth += imgRec->Width() + topBarFontSml->Width(*Rec) + marginItem;
+                }
+            }
+        }
+
+        if( topBarExtraIconSet ) {
+            cImage *img = imgLoader.LoadIcon(*topBarExtraIcon, 999, topBarHeight);
+            if( img ) {
+                Right -= img->Width() + marginItem;
+                middleWidth += img->Width() + marginItem;
+            }
+        }
+        int topBarMenuIconRightWidth = 0;
+        int topBarMenuIconRightLeft = 0;
+        if( topBarMenuIconRightSet ) {
+            cImage *img = imgLoader.LoadIcon(*topBarMenuIconRight, 999, topBarHeight);
+            if( img ) {
+                topBarMenuIconRightWidth = img->Width() + marginItem*3;
+                titleWitdh += topBarMenuIconRightWidth;
+            }
+        }
+
+        int extra1Width = topBarFontSml->Width(tobBarTitleExtra1);
+        int extra2Width = topBarFontSml->Width(tobBarTitleExtra2);
+        int extraMaxWidth = max(extra1Width, extra2Width);
+        middleWidth += extraMaxWidth;
+        Right -= extraMaxWidth + marginItem;
+
+        if( (titleLeft + titleWitdh) < (TopBarWidth/2 - middleWidth/2) ) {
+            Right = TopBarWidth/2 - middleWidth/2;
+        } else if( (titleLeft + titleWitdh) < Right ) {
+            Right = titleLeft + titleWitdh + marginItem;
+        }
+
+        int titleMaxWidth = Right - titleLeft - marginItem;
+
+        if( topBarFont->Width(topBarTitle) + topBarMenuIconRightWidth > titleMaxWidth ) {
+            topBarMenuIconRightLeft = titleMaxWidth + marginItem*2;
+            titleMaxWidth -= topBarMenuIconRightWidth;
+        } else {
+            topBarMenuIconRightLeft = titleLeft + topBarFont->Width(topBarTitle) + marginItem*2;
+        }
+
+        topBarPixmap->DrawText(cPoint(Right, fontSmlTop), tobBarTitleExtra1, Theme.Color(clrTopBarDateFont), Theme.Color(clrTopBarBg), topBarFontSml, extraMaxWidth, 0, taRight);
+        topBarPixmap->DrawText(cPoint(Right, fontSmlTop + topBarFontSmlHeight), tobBarTitleExtra2, Theme.Color(clrTopBarDateFont), Theme.Color(clrTopBarBg), topBarFontSml, extraMaxWidth, 0, taRight);
+        Right += extraMaxWidth + marginItem;
+
+        if( topBarExtraIconSet ) {
+            cImage *img = imgLoader.LoadIcon(*topBarExtraIcon, 999, topBarHeight);
+            if( img ) {
+                int iconTop = 0;
+                topBarIconPixmap->DrawImage(cPoint(Right, iconTop), *img);
+                Right += img->Width() + marginItem;
+            }
+        }
+
+        if( numRec && imgRec ) {
+            int iconTop = (topBarFontHeight - imgRec->Height()) / 2;
+            topBarIconPixmap->DrawImage( cPoint(Right, iconTop), *imgRec );
+            Right += imgRec->Width();
+            cString RecNum = cString::sprintf("%d", numRec);
+            topBarPixmap->DrawText(cPoint(Right, fontSmlTop), RecNum, Theme.Color(clrTopBarRecordingActiveFg), Theme.Color(clrTopBarRecordingActiveBg), topBarFontSml);
+            Right += topBarFontSml->Width(*RecNum) + marginItem;
+        }
+
+        if( numConflicts && imgCon ) {
+            int iconTop = (topBarFontHeight - imgCon->Height()) / 2;
+            topBarIconPixmap->DrawImage( cPoint(Right, iconTop), *imgCon );
+            Right += imgCon->Width();
+
+            cString ConNum = cString::sprintf("%d", numConflicts);
+            if( numConflicts < Config.TopBarRecConflictsHigh )
+                topBarPixmap->DrawText(cPoint(Right, fontSmlTop), ConNum, Theme.Color(clrTopBarConflictLowFg), Theme.Color(clrTopBarConflictLowBg), topBarFontSml);
+            else
+                topBarPixmap->DrawText(cPoint(Right, fontSmlTop), ConNum, Theme.Color(clrTopBarConflictHighFg), Theme.Color(clrTopBarConflictHighBg), topBarFontSml);
+            Right += topBarFontSml->Width(*ConNum) + marginItem;
+        }
+
+        if( topBarMenuIconRightSet ) {
+            cImage *img = imgLoader.LoadIcon(*topBarMenuIconRight, 999, topBarHeight);
+            if( img ) {
+                int iconTop = (topBarHeight / 2 - img->Height()/2);
+                topBarIconPixmap->DrawImage(cPoint(topBarMenuIconRightLeft, iconTop), *img);
+            }
+        }
+        topBarPixmap->DrawText(cPoint(titleLeft, fontTop), topBarTitle, Theme.Color(clrTopBarFont), Theme.Color(clrTopBarBg), topBarFont, titleMaxWidth);
+
+        DecorBorderDraw(Config.decorBorderTopBarSize, Config.decorBorderTopBarSize, osdWidth - Config.decorBorderTopBarSize*2, topBarHeight, Config.decorBorderTopBarSize, Config.decorBorderTopBarType, Config.decorBorderTopBarFg, Config.decorBorderTopBarBg);
+    }
+}
+
+void cFlatBaseRender::ButtonsCreate(void) {
+    marginButtonColor = 10;
+    buttonColorHeight = 8;
+    buttonsHeight = fontHeight + marginButtonColor + buttonColorHeight;
+    buttonsWidth = osdWidth;
+    buttonsTop = osdHeight - buttonsHeight - Config.decorBorderButtonSize;
+
+    buttonsPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderButtonSize,
+        buttonsTop, buttonsWidth - Config.decorBorderButtonSize*2, buttonsHeight));
+    buttonsPixmap->Fill(clrTransparent);
+    //dsyslog("skinflatplus: buttonsPixmap left: %d top: %d width: %d height: %d", Config.decorBorderButtonSize, buttonsTop, buttonsWidth - Config.decorBorderButtonSize*2, buttonsHeight);
+}
+
+void cFlatBaseRender::ButtonsSet(const char *Red, const char *Green, const char *Yellow, const char *Blue) {
+    int WidthMargin = buttonsWidth - marginItem*3;
+    int buttonWidth = (WidthMargin / 4) - Config.decorBorderButtonSize*2;
+
+    buttonsPixmap->Fill(clrTransparent);
+    DecorBorderClearByFrom(BorderButton);
+
+    buttonsDrawn = false;
+
+    int x = 0;
+    if( !(!Config.ButtonsShowEmpty && !Red) ) {
+        buttonsPixmap->DrawText(cPoint(x, 0), Red, Theme.Color(clrButtonFont), Theme.Color(clrButtonBg), font, buttonWidth, fontHeight + marginButtonColor, taCenter);
+        buttonsPixmap->DrawRectangle(cRect(x, fontHeight + marginButtonColor, buttonWidth, buttonColorHeight), Theme.Color(clrButtonRed));
+        DecorBorderDraw(x + Config.decorBorderButtonSize, buttonsTop, buttonWidth, buttonsHeight, Config.decorBorderButtonSize, Config.decorBorderButtonType,
+            Config.decorBorderButtonFg, Config.decorBorderButtonBg, BorderButton);
+        buttonsDrawn = true;
+    }
+
+    x += buttonWidth + marginItem + Config.decorBorderButtonSize*2;
+    if( !(!Config.ButtonsShowEmpty && !Green) ) {
+        buttonsPixmap->DrawText(cPoint(x, 0), Green, Theme.Color(clrButtonFont), Theme.Color(clrButtonBg), font, buttonWidth, fontHeight + marginButtonColor, taCenter);
+        buttonsPixmap->DrawRectangle(cRect(x, fontHeight + marginButtonColor, buttonWidth, buttonColorHeight), Theme.Color(clrButtonGreen));
+        DecorBorderDraw(x + Config.decorBorderButtonSize, buttonsTop, buttonWidth, buttonsHeight, Config.decorBorderButtonSize, Config.decorBorderButtonType,
+            Config.decorBorderButtonFg, Config.decorBorderButtonBg, BorderButton);
+        buttonsDrawn = true;
+    }
+
+    x += buttonWidth + marginItem + Config.decorBorderButtonSize*2;
+    if( !(!Config.ButtonsShowEmpty && !Yellow) ) {
+        buttonsPixmap->DrawText(cPoint(x, 0), Yellow, Theme.Color(clrButtonFont), Theme.Color(clrButtonBg), font, buttonWidth, fontHeight + marginButtonColor, taCenter);
+        buttonsPixmap->DrawRectangle(cRect(x, fontHeight + marginButtonColor, buttonWidth, buttonColorHeight), Theme.Color(clrButtonYellow));
+        DecorBorderDraw(x + Config.decorBorderButtonSize, buttonsTop, buttonWidth, buttonsHeight, Config.decorBorderButtonSize, Config.decorBorderButtonType,
+            Config.decorBorderButtonFg, Config.decorBorderButtonBg, BorderButton);
+        buttonsDrawn = true;
+    }
+
+    x += buttonWidth + marginItem + Config.decorBorderButtonSize*2;
+    if( x + buttonWidth + Config.decorBorderButtonSize*2 < buttonsWidth )
+        buttonWidth += buttonsWidth - (x + buttonWidth + Config.decorBorderButtonSize*2);
+    if( !(!Config.ButtonsShowEmpty && !Blue) ) {
+        buttonsPixmap->DrawText(cPoint(x, 0), Blue, Theme.Color(clrButtonFont), Theme.Color(clrButtonBg), font, buttonWidth, fontHeight + marginButtonColor, taCenter);
+        buttonsPixmap->DrawRectangle(cRect(x, fontHeight + marginButtonColor, buttonWidth, buttonColorHeight), Theme.Color(clrButtonBlue));
+        DecorBorderDraw(x + Config.decorBorderButtonSize, buttonsTop, buttonWidth, buttonsHeight, Config.decorBorderButtonSize, Config.decorBorderButtonType,
+            Config.decorBorderButtonFg, Config.decorBorderButtonBg, BorderButton);
+        buttonsDrawn = true;
+    }
+}
+
+bool cFlatBaseRender::ButtonsDrawn(void) {
+    return buttonsDrawn;
+}
+
+void cFlatBaseRender::MessageCreate(void) {
+    messageHeight = fontHeight + marginItem*2;
+    if( Config.MessageColorPosition == 1 )
+        messageHeight += 8;
+    int top = osdHeight - Config.MessageOffset - messageHeight - Config.decorBorderMessageSize;
+    messagePixmap = osd->CreatePixmap(5, cRect(Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight));
+    messagePixmap->Fill(clrTransparent);
+    messageIconPixmap = osd->CreatePixmap(5, cRect(Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight));
+    messageIconPixmap->Fill(clrTransparent);
+
+    //dsyslog("skinflatplus: messagePixmap left: %d top: %d width: %d height: %d", Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight);
+    //dsyslog("skinflatplus: messageIconPixmap left: %d top: %d width: %d height: %d", Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight);
+
+    messageScroller.SetOsd(osd);
+    messageScroller.SetScrollStep( Config.ScrollerStep );
+    messageScroller.SetScrollDelay( Config.ScrollerDelay );
+    messageScroller.SetScrollType( Config.ScrollerType );
+    messageScroller.SetPixmapLayer( 5 );
+}
+
+void cFlatBaseRender::MessageSet(eMessageType Type, const char *Text) {
+    tColor col = Theme.Color(clrMessageStatus);
+    cString icon;
+    switch (Type) {
+        case mtStatus:
+            col = Theme.Color(clrMessageStatus);
+            icon = "message_status";
+            break;
+        case mtInfo:
+            col = Theme.Color(clrMessageInfo);
+            icon = "message_info";
+            break;
+        case mtWarning:
+            col = Theme.Color(clrMessageWarning);
+            icon = "message_warning";
+            break;
+        case mtError:
+            col = Theme.Color(clrMessageError);
+            icon = "message_error";
+            break;
+    }
+    messagePixmap->Fill(Theme.Color(clrMessageBg));
+    messageScroller.Clear();
+
+    cImage *img = imgLoader.LoadIcon(icon, fontHeight, fontHeight);
+    if( img ) {
+        messageIconPixmap->DrawImage( cPoint(marginItem + 10, marginItem), *img );
+    }
+
+    if( Config.MessageColorPosition == 0 ) {
+        messagePixmap->DrawRectangle(cRect( 0, 0, 8, messageHeight), col);
+        messagePixmap->DrawRectangle(cRect( osdWidth - 8 - Config.decorBorderMessageSize*2, 0, 8, messageHeight), col);
+    } else {
+        messagePixmap->DrawRectangle(cRect( 0, messageHeight - 8, osdWidth, 8), col);
+    }
+
+    int textWidth = font->Width(Text);
+    int maxWidth = osdWidth - Config.decorBorderMessageSize*2 - fontHeight - marginItem*3 - 10;
+
+    if( Config.MenuItemParseTilde ) {
+        std::string tilde = Text;
+        size_t found = tilde.find(" ~ ");
+        size_t found2 = tilde.find("~");
+        if( found != std::string::npos ) {
+            std::string first = tilde.substr(0, found);
+            std::string second = tilde.substr(found +2, tilde.length() );
+
+            messagePixmap->DrawText(cPoint((osdWidth - textWidth) / 2, marginItem), first.c_str(), Theme.Color(clrMessageFont), Theme.Color(clrMessageBg), font);
+            int l = font->Width( first.c_str() );
+            messagePixmap->DrawText(cPoint((osdWidth - textWidth) / 2 + l, marginItem), second.c_str(), Theme.Color(clrMenuItemExtraTextFont), Theme.Color(clrMessageBg), font);
+        } else if ( found2 != std::string::npos ) {
+            std::string first = tilde.substr(0, found2);
+            std::string second = tilde.substr(found2 +1, tilde.length() );
+
+            messagePixmap->DrawText(cPoint((osdWidth - textWidth) / 2, marginItem), first.c_str(), Theme.Color(clrMessageFont), Theme.Color(clrMessageBg), font);
+            int l = font->Width( first.c_str() );
+            l += font->Width("X");
+            messagePixmap->DrawText(cPoint((osdWidth - textWidth) / 2 + l, marginItem), second.c_str(), Theme.Color(clrMenuItemExtraTextFont), Theme.Color(clrMessageBg), font);
+        } else {
+            if( (textWidth > maxWidth) && Config.ScrollerEnable)
+                messageScroller.AddScroller(Text, cRect(Config.decorBorderMessageSize + fontHeight + marginItem*3+10, osdHeight - Config.MessageOffset - messageHeight - Config.decorBorderMessageSize, maxWidth, fontHeight), Theme.Color(clrMessageFont), clrTransparent, font);
+            else
+                messagePixmap->DrawText(cPoint((osdWidth - textWidth) / 2, marginItem), Text, Theme.Color(clrMessageFont), Theme.Color(clrMessageBg), font);
+        }
+    } else {
+        if( (textWidth > maxWidth) && Config.ScrollerEnable )
+            messageScroller.AddScroller(Text, cRect(Config.decorBorderMessageSize + fontHeight + marginItem*3 + 10, osdHeight - Config.MessageOffset - messageHeight - Config.decorBorderMessageSize, maxWidth, fontHeight), Theme.Color(clrMessageFont), clrTransparent, font);
+        else
+            messagePixmap->DrawText(cPoint((osdWidth - textWidth) / 2, marginItem), Text, Theme.Color(clrMessageFont), Theme.Color(clrMessageBg), font);
+    }
+
+    int top = osdHeight - Config.MessageOffset - messageHeight - Config.decorBorderMessageSize;
+    DecorBorderDraw(Config.decorBorderMessageSize, top, osdWidth - Config.decorBorderMessageSize*2, messageHeight, Config.decorBorderMessageSize, Config.decorBorderMessageType, Config.decorBorderMessageFg, Config.decorBorderMessageBg, BorderMessage);
+}
+
+void cFlatBaseRender::MessageClear(void) {
+    messagePixmap->Fill(clrTransparent);
+    messageIconPixmap->Fill(clrTransparent);
+    DecorBorderClearByFrom(BorderMessage);
+    DecorBorderRedrawAll();
+    messageScroller.Clear();
+}
+
+void cFlatBaseRender::ProgressBarCreate(int Left, int Top, int Width, int Height, int MarginHor, int MarginVer, tColor ColorFg, tColor ColorBarFg, tColor ColorBg, int Type, bool SetBackground, bool isSignal) {
+    progressBarTop = Top;
+    progressBarWidth = Width;
+    progressBarHeight = Height;
+    ProgressType = Type;
+    progressBarMarginHor = MarginHor;
+    progressBarMarginVer = MarginVer;
+
+    progressBarColorFg = ColorFg;
+    progressBarColorBarFg = ColorBarFg;
+    progressBarColorBg = ColorBg;
+
+    progressBarSetBackground = SetBackground;
+    progressBarIsSignal = isSignal;
+
+    progressBarColorBarCurFg = Theme.Color(clrReplayProgressBarCurFg);
+
+    progressBarPixmap = osd->CreatePixmap(3, cRect(Left, Top, Width, progressBarHeight));
+    progressBarPixmapBg = osd->CreatePixmap(2, cRect(Left - progressBarMarginVer, Top - progressBarMarginHor, Width + progressBarMarginVer*2, progressBarHeight + progressBarMarginHor*2));
+    progressBarPixmap->Fill(clrTransparent);
+    progressBarPixmapBg->Fill(clrTransparent);
+}
+
+void cFlatBaseRender::ProgressBarDraw(int Current, int Total) {
+    ProgressBarDrawRaw(progressBarPixmap, progressBarPixmapBg, cRect(0, 0, progressBarWidth, progressBarHeight),
+        cRect(0, 0, progressBarWidth+progressBarMarginVer*2, progressBarHeight+progressBarMarginHor*2),
+        Current, Total, progressBarColorFg, progressBarColorBarFg, progressBarColorBg, ProgressType, progressBarSetBackground, progressBarIsSignal);
+}
+
+void cFlatBaseRender::ProgressBarDrawBgColor(void) {
+    progressBarPixmapBg->Fill(progressBarColorBg);
+}
+
+void cFlatBaseRender::ProgressBarDrawRaw(cPixmap *Pixmap, cPixmap *PixmapBg, cRect rect, cRect rectBg, int Current, int Total, tColor ColorFg, tColor ColorBarFg, tColor ColorBg, int Type, bool SetBackground, bool isSignal) {
+    int Middle = rect.Height()/2;
+
+    double percentLeft = ((double)Current) / (double)Total;
+
+    if( PixmapBg && SetBackground )
+        PixmapBg->DrawRectangle(cRect( rectBg.Left(), rectBg.Top(), rectBg.Width(), rectBg.Height()), ColorBg);
+
+    if( SetBackground ) {
+        if( PixmapBg == Pixmap )
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top(), rect.Width(), rect.Height()), ColorBg);
+        else
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top(), rect.Width(), rect.Height()), clrTransparent);
+    }
+
+    switch( Type ) {
+        case 0: // small line + big line
+        {
+            int sml = rect.Height() / 10 * 2;
+            if( sml <= 1 )
+                sml = 2;
+            int big = rect.Height();
+
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + Middle - (sml/2), rect.Width(), sml), ColorFg);
+
+            if (Current > 0)
+                Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + Middle - (big/2), (rect.Width() * percentLeft), big), ColorBarFg);
+            break;
+        }
+        case 1: // big line
+        {
+            int big = rect.Height();
+
+            if (Current > 0)
+                Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + Middle - (big/2), (rect.Width() * percentLeft), big), ColorBarFg);
+            break;
+        }
+        case 2: // big line + outline
+        {
+            int big = rect.Height();
+            int out = 1;
+            if( rect.Height() > 10 )
+                out = 2;
+            // outline
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top(), rect.Width(), out), ColorFg);
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + rect.Height() - out, rect.Width(), out), ColorFg);
+
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top(), out, rect.Height()), ColorFg);
+            Pixmap->DrawRectangle(cRect( rect.Left() + rect.Width() - out, rect.Top(), out, rect.Height()), ColorFg);
+
+            if (Current > 0) {
+                if( isSignal ) {
+                    double perc = 100.0 / (double) Total * (double) Current / 100.0;
+                    if( perc > 0.666 ) {
+                        Pixmap->DrawRectangle(cRect( rect.Left() + out, rect.Top() + Middle - (big/2) + out, (rect.Width() * percentLeft) - out*2, big - out*2), Theme.Color(clrButtonGreen));
+                        Pixmap->DrawRectangle(cRect( rect.Left() + out, rect.Top() + Middle - (big/2) + out, (rect.Width() * 0.666) - out*2, big - out*2), Theme.Color(clrButtonYellow));
+                        Pixmap->DrawRectangle(cRect( rect.Left() + out, rect.Top() + Middle - (big/2) + out, (rect.Width() * 0.333) - out*2, big - out*2), Theme.Color(clrButtonRed));
+                    } else if( perc > 0.333 ) {
+                        Pixmap->DrawRectangle(cRect( rect.Left() + out, rect.Top() + Middle - (big/2) + out, (rect.Width() * percentLeft) - out*2, big - out*2), Theme.Color(clrButtonYellow));
+                        Pixmap->DrawRectangle(cRect( rect.Left() + out, rect.Top() + Middle - (big/2) + out, (rect.Width() * 0.333) - out*2, big - out*2), Theme.Color(clrButtonRed));
+                    } else
+                        Pixmap->DrawRectangle(cRect( rect.Left() + out, rect.Top() + Middle - (big/2) + out, (rect.Width() * percentLeft) - out*2, big - out*2), Theme.Color(clrButtonRed));
+
+                } else
+                    Pixmap->DrawRectangle(cRect( rect.Left() + out, rect.Top() + Middle - (big/2) + out, (rect.Width() * percentLeft) - out*2, big - out*2), ColorBarFg);
+            }
+            break;
+        }
+        case 3: // small line + big line + dot
+        {
+            int sml = rect.Height() / 10 * 2;
+            if( sml <= 1 )
+                sml = 2;
+            int big = rect.Height();
+
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + Middle - (sml/2), rect.Width(), sml), ColorFg);
+
+            if (Current > 0) {
+                Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + Middle - (big/2), (rect.Width() * percentLeft), big), ColorBarFg);
+                // dot
+                Pixmap->DrawEllipse(cRect( rect.Left() + (rect.Width() * percentLeft) - (big/2), rect.Top() + Middle - (big/2), big, big), ColorBarFg, 0);
+            }
+            break;
+        }
+        case 4: // big line + dot
+        {
+            int big = rect.Height();
+
+            if (Current > 0) {
+                Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + Middle - (big/2), (rect.Width() * percentLeft), big), ColorBarFg);
+                // dot
+                Pixmap->DrawEllipse(cRect( rect.Left() + (rect.Width() * percentLeft) - (big/2), rect.Top() + Middle - (big/2), big, big), ColorBarFg, 0);
+            }
+            break;
+        }
+        case 5: // big line + outline + dot
+        {
+            int big = rect.Height();
+            int out = 1;
+            if( rect.Height() > 10 )
+                out = 2;
+            // outline
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top(), rect.Width(), out), ColorFg);
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + rect.Height() - out, rect.Width(), out), ColorFg);
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top(), out, rect.Height()), ColorFg);
+            Pixmap->DrawRectangle(cRect( rect.Left() + rect.Width() - out, rect.Top(), out, rect.Height()), ColorFg);
+
+            if (Current > 0) {
+                Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + Middle - (big/2), (rect.Width() * percentLeft), big), ColorBarFg);
+                // dot
+                Pixmap->DrawEllipse(cRect( rect.Left() + (rect.Width() * percentLeft) - (big/2), rect.Top() + Middle - (big/2), big, big), ColorBarFg, 0);
+            }
+            break;
+        }
+        case 6: // small line + dot
+        {
+            int sml = rect.Height() / 10 * 2;
+            if( sml <= 1 )
+                sml = 2;
+            int big = rect.Height();
+
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + Middle - (sml/2), rect.Width(), sml), ColorFg);
+
+            if (Current > 0) {
+                // dot
+                Pixmap->DrawEllipse(cRect( rect.Left() + (rect.Width() * percentLeft) - (big/2), rect.Top() + Middle - (big/2), big, big), ColorBarFg, 0);
+            }
+            break;
+        }
+        case 7: // outline + dot
+        {
+            int big = rect.Height();
+            int out = 1;
+            if( rect.Height() > 10 )
+                out = 2;
+            // outline
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top(), rect.Width(), out), ColorFg);
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + rect.Height() - out, rect.Width(), out), ColorFg);
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top(), out, rect.Height()), ColorFg);
+            Pixmap->DrawRectangle(cRect( rect.Left() + rect.Width() - out, rect.Top(), out, rect.Height()), ColorFg);
+
+            if (Current > 0) {
+                // dot
+                Pixmap->DrawEllipse(cRect( rect.Left() + (rect.Width() * percentLeft) - (big/2), rect.Top() + Middle - (big/2), big, big), ColorBarFg, 0);
+            }
+            break;
+        }
+        case 8: // small line + big line + alpha blend
+        {
+            int sml = rect.Height() / 10 * 2;
+            if( sml <= 1 )
+                sml = 2;
+            int big = rect.Height()/2 - sml/2;
+
+            Pixmap->DrawRectangle(cRect( rect.Left(), rect.Top() + Middle - (sml/2), rect.Width(), sml), ColorFg);
+
+            if (Current > 0) {
+                DecorDrawGlowRectHor(Pixmap, rect.Left(), rect.Top(), (rect.Width() * percentLeft), big, ColorBarFg);
+                DecorDrawGlowRectHor(Pixmap, rect.Left(), rect.Top() + Middle + sml/2, (rect.Width() * percentLeft), big*-1, ColorBarFg);
+            }
+            break;
+        }
+        case 9: // big line + alpha blend
+        {
+            int big = rect.Height();
+
+            if (Current > 0) {
+                DecorDrawGlowRectHor(Pixmap, rect.Left(), rect.Top() + Middle - big/2, (rect.Width() * percentLeft), big/2, ColorBarFg);
+                DecorDrawGlowRectHor(Pixmap, rect.Left(), rect.Top() + Middle, (rect.Width() * percentLeft), big/-2, ColorBarFg);
+            }
+            break;
+        }
+    }
+}
+
+void cFlatBaseRender::ProgressBarDrawMarks(int Current, int Total, const cMarks *Marks, tColor Color, tColor ColorCurrent) {
+    progressBarColorMark = Color;
+    progressBarColorMarkCurrent = ColorCurrent;
+    int posMark = 0, posMarkLast = 0, posCurrent = 0;
+
+    int top = progressBarHeight / 2;
+    if( progressBarPixmapBg )
+        progressBarPixmapBg->DrawRectangle(cRect( 0, progressBarMarginHor + progressBarHeight, progressBarWidth, progressBarMarginHor), progressBarColorBg);
+
+    progressBarPixmap->Fill( progressBarColorBg );
+
+    int sml = Config.decorProgressReplaySize / 10 * 2;
+    if( sml <= 4 )
+        sml = 4;
+    int big = Config.decorProgressReplaySize - sml*2 - 2;
+
+    if( !Marks ) {
+        progressBarColorFg = progressBarColorBarCurFg;
+        progressBarColorBarFg = progressBarColorBarCurFg;
+
+        ProgressBarDraw(Current, Total);
+        return;
+    }
+    if( !Marks->First() ) {
+        progressBarColorFg = progressBarColorBarCurFg;
+        progressBarColorBarFg = progressBarColorBarCurFg;
+
+        ProgressBarDraw(Current, Total);
+        return;
+    }
+
+    // the small line
+    progressBarPixmap->DrawRectangle(cRect( 0, top - sml/2, progressBarWidth, sml), progressBarColorFg);
+
+    bool Start = true;
+
+    for( const cMark *m = Marks->First(); m; m = Marks->Next(m) ) {
+        posMark = ProgressBarMarkPos( m->Position(), Total );
+        posCurrent = ProgressBarMarkPos( Current, Total );
+
+        ProgressBarDrawMark(posMark, posMarkLast, posCurrent, Start, m->Position() == Current);
+        posMarkLast = posMark;
+        Start = !Start;
+    }
+
+    // draw last marker vertical line
+    if( posCurrent == posMark )
+        progressBarPixmap->DrawRectangle(cRect( posMark - sml, 0, sml*2, progressBarHeight), progressBarColorMarkCurrent);
+    else
+        progressBarPixmap->DrawRectangle(cRect( posMark - sml/2, 0, sml, progressBarHeight), progressBarColorMark);
+
+    if( !Start ) {
+        //progressBarPixmap->DrawRectangle(cRect( posMarkLast + sml/2, top - big/2, progressBarWidth - posMarkLast, big), progressBarColorBarFg);
+        if( posCurrent > posMarkLast )
+            progressBarPixmap->DrawRectangle(cRect( posMarkLast + sml/2, top - big/2, posCurrent - posMarkLast, big), progressBarColorBarCurFg);
+    } else {
+        // marker
+        progressBarPixmap->DrawRectangle(cRect( posMarkLast, top - sml/2, posCurrent - posMarkLast, sml), progressBarColorBarCurFg);
+        progressBarPixmap->DrawRectangle(cRect( posCurrent - big/2, top - big/2, big, big), progressBarColorBarCurFg);
+
+        if( posCurrent > posMarkLast + sml/2 )
+            progressBarPixmap->DrawRectangle(cRect( posMarkLast - sml/2, 0, sml, progressBarHeight), progressBarColorMark);
+    }
+}
+
+int cFlatBaseRender::ProgressBarMarkPos(int P, int Total) {
+    return (int64_t)P * progressBarWidth / Total;
+}
+
+void cFlatBaseRender::ProgressBarDrawMark(int posMark, int posMarkLast, int posCurrent, bool Start, bool isCurrent)
+{
+    int top = progressBarHeight / 2;
+    int sml = Config.decorProgressReplaySize / 10 * 2;
+    if( sml <= 4 )
+        sml = 4;
+    int big = Config.decorProgressReplaySize - sml*2 - 2;
+
+    int mbig = Config.decorProgressReplaySize*2;
+    if( Config.decorProgressReplaySize > 15 )
+        mbig = Config.decorProgressReplaySize;
+
+    // marker vertical line
+    if( posCurrent == posMark )
+        progressBarPixmap->DrawRectangle(cRect( posMark - sml, 0, sml*2, progressBarHeight), progressBarColorMarkCurrent);
+    else
+        progressBarPixmap->DrawRectangle(cRect( posMark - sml/2, 0, sml, progressBarHeight), progressBarColorMark);
+
+    if( Start ) {
+        if( posCurrent > posMark )
+            progressBarPixmap->DrawRectangle(cRect( posMarkLast, top - sml/2, posMark - posMarkLast, sml), progressBarColorBarCurFg);
+        else {
+            // marker
+            progressBarPixmap->DrawRectangle(cRect( posCurrent - big/2, top - big/2, big, big), progressBarColorBarCurFg);
+            if( posCurrent > posMarkLast )
+                progressBarPixmap->DrawRectangle(cRect( posMarkLast, top - sml/2, posCurrent - posMarkLast, sml), progressBarColorBarCurFg);
+        }
+        // marker top
+        if( isCurrent )
+            progressBarPixmap->DrawRectangle(cRect( posMark - mbig/2, 0, mbig, sml), progressBarColorMarkCurrent);
+        else
+            progressBarPixmap->DrawRectangle(cRect( posMark - mbig/2, 0, mbig, sml), progressBarColorMark);
+    } else {
+        // big line
+        if( posCurrent > posMark ) {
+            progressBarPixmap->DrawRectangle(cRect( posMarkLast, top - big/2, posMark - posMarkLast, big), progressBarColorBarCurFg);
+            // draw last marker top
+            progressBarPixmap->DrawRectangle(cRect( posMarkLast - mbig/2, 0, mbig, marginItem/2), progressBarColorMark);
+        } else {
+            progressBarPixmap->DrawRectangle(cRect( posMarkLast, top - big/2, posMark - posMarkLast, big), progressBarColorBarFg);
+            if( posCurrent > posMarkLast ) {
+                progressBarPixmap->DrawRectangle(cRect( posMarkLast, top - big/2, posCurrent - posMarkLast, big), progressBarColorBarCurFg);
+                // draw last marker top
+                progressBarPixmap->DrawRectangle(cRect( posMarkLast - mbig/2, 0, mbig, marginItem/2), progressBarColorMark);
+            }
+        }
+        // marker bottom
+        if( isCurrent )
+            progressBarPixmap->DrawRectangle(cRect( posMark - mbig/2, progressBarHeight - sml, mbig, sml), progressBarColorMarkCurrent);
+        else
+            progressBarPixmap->DrawRectangle(cRect( posMark - mbig/2, progressBarHeight - sml, mbig, sml), progressBarColorMark);
+    }
+
+    if( posCurrent == posMarkLast && posMarkLast != 0 )
+        progressBarPixmap->DrawRectangle(cRect( posMarkLast - sml, 0, sml*2, progressBarHeight), progressBarColorMarkCurrent);
+    else if( posMarkLast != 0 )
+        progressBarPixmap->DrawRectangle(cRect( posMarkLast - sml/2, 0, sml, progressBarHeight), progressBarColorMark);
+
+}
+
+void cFlatBaseRender::ScrollbarDraw(cPixmap *Pixmap, int Left, int Top, int Height, int Total, int Offset, int Shown, bool CanScrollUp, bool CanScrollDown) {
+    if( !Pixmap )
+        return;
+
+    int scrollHeight = max(int((Height) * double(Shown) / Total + 0.5), 5);
+    int scrollTop = min(int(Top + (Height) * double(Offset) / Total + 0.5), Top + Height - scrollHeight);
+
+    /* Types
+     * 0 = left line + rect bar
+     * 1 = left line + round bar
+     * 2 = middle line + rect bar
+     * 3 = middle line + round bar
+     * 4 = outline + rect bar
+     * 5 = outline + round bar
+     * 6 = rect bar
+     * 7 = round bar
+     */
+    int Type = Config.decorScrollBarType;
+
+    if (Total > 0 && Total > Shown) {
+        Pixmap->Fill(clrTransparent);
+        Pixmap->DrawRectangle(cRect(Left, Top, scrollBarWidth, Height), Config.decorScrollBarBg);
+        switch( Type ) {
+            default:
+            case 0:
+            {
+                int lineWidth = 6;
+                if( scrollBarWidth <= 10 )
+                    lineWidth = 2;
+                else if( scrollBarWidth <= 20 )
+                    lineWidth = 4;
+                Pixmap->DrawRectangle(cRect(Left, Top, lineWidth, Height), Config.decorScrollBarFg);
+
+                // Bar
+                Pixmap->DrawRectangle(cRect(Left + lineWidth, scrollTop, scrollBarWidth - lineWidth, scrollHeight), Config.decorScrollBarBarFg);
+                break;
+            }
+            case 1:
+            {
+                int dotHeight = scrollBarWidth / 2;
+                int lineWidth = 6;
+                if( scrollBarWidth <= 10 )
+                    lineWidth = 2;
+                else if( scrollBarWidth <= 20 )
+                    lineWidth = 4;
+                Pixmap->DrawRectangle(cRect(Left, Top, lineWidth, Height), Config.decorScrollBarFg);
+
+                // Bar
+                Pixmap->DrawRectangle(cRect(Left + lineWidth, scrollTop + dotHeight, scrollBarWidth - lineWidth, scrollHeight - dotHeight*2), Config.decorScrollBarBarFg);
+                // dot
+                Pixmap->DrawEllipse(cRect( Left + lineWidth, scrollTop, scrollBarWidth - lineWidth, scrollBarWidth - lineWidth), Config.decorScrollBarBarFg, 0);
+                Pixmap->DrawEllipse(cRect( Left + lineWidth, scrollTop + scrollHeight - dotHeight*2, scrollBarWidth - lineWidth, scrollBarWidth - lineWidth), Config.decorScrollBarBarFg, 0);
+                break;
+            }
+            case 2:
+            {
+                int Middle = Left + scrollBarWidth / 2;
+                int lineWidth = 6;
+                if( scrollBarWidth <= 10 )
+                    lineWidth = 2;
+                else if( scrollBarWidth <= 20 )
+                    lineWidth = 4;
+
+                Pixmap->DrawRectangle(cRect(Middle - lineWidth/2, Top, lineWidth, Height), Config.decorScrollBarFg);
+                // Bar
+                Pixmap->DrawRectangle(cRect(Left, scrollTop, scrollBarWidth, scrollHeight), Config.decorScrollBarBarFg);
+                break;
+            }
+            case 3:
+            {
+                int dotHeight = scrollBarWidth / 2;
+                int Middle = Left + scrollBarWidth / 2;
+                int lineWidth = 6;
+                if( scrollBarWidth <= 10 )
+                    lineWidth = 2;
+                else if( scrollBarWidth <= 20 )
+                    lineWidth = 4;
+
+                Pixmap->DrawRectangle(cRect(Middle - lineWidth/2, Top, lineWidth, Height), Config.decorScrollBarFg);
+
+                // Bar
+                Pixmap->DrawRectangle(cRect(Left, scrollTop + dotHeight, scrollBarWidth, scrollHeight - dotHeight*2), Config.decorScrollBarBarFg);
+                // dot
+                Pixmap->DrawEllipse(cRect( Left, scrollTop, scrollBarWidth, scrollBarWidth), Config.decorScrollBarBarFg, 0);
+                Pixmap->DrawEllipse(cRect( Left, scrollTop + scrollHeight - dotHeight*2, scrollBarWidth, scrollBarWidth), Config.decorScrollBarBarFg, 0);
+                break;
+            }
+            case 4:
+            {
+                int out = 1;
+                if( scrollBarWidth > 10 )
+                    out = 2;
+                // outline
+                Pixmap->DrawRectangle(cRect( Left, Top, scrollBarWidth, out), Config.decorScrollBarFg);
+                Pixmap->DrawRectangle(cRect( Left, Top + Height - out, scrollBarWidth, out), Config.decorScrollBarFg);
+                Pixmap->DrawRectangle(cRect( Left, Top, out, Height), Config.decorScrollBarFg);
+                Pixmap->DrawRectangle(cRect( Left + scrollBarWidth - out, Top, out, Height), Config.decorScrollBarFg);
+
+                // bar
+                Pixmap->DrawRectangle(cRect(Left + out, scrollTop + out, scrollBarWidth - out*2, scrollHeight - out*2), Config.decorScrollBarBarFg);
+                break;
+            }
+            case 5:
+            {
+                int dotHeight = scrollBarWidth / 2;
+                int out = 1;
+                if( scrollBarWidth > 10 )
+                    out = 2;
+                // outline
+                Pixmap->DrawRectangle(cRect( Left, Top, scrollBarWidth, out), Config.decorScrollBarFg);
+                Pixmap->DrawRectangle(cRect( Left, Top + Height - out, scrollBarWidth, out), Config.decorScrollBarFg);
+                Pixmap->DrawRectangle(cRect( Left, Top, out, Height), Config.decorScrollBarFg);
+                Pixmap->DrawRectangle(cRect( Left + scrollBarWidth - out, Top, out, Height), Config.decorScrollBarFg);
+
+                // bar
+                Pixmap->DrawRectangle(cRect(Left + out, scrollTop + dotHeight + out, scrollBarWidth - out*2, scrollHeight - dotHeight*2 - out*2), Config.decorScrollBarBarFg);
+                // dot
+                Pixmap->DrawEllipse(cRect( Left + out, scrollTop + out, scrollBarWidth - out*2, scrollBarWidth - out*2), Config.decorScrollBarBarFg, 0);
+                Pixmap->DrawEllipse(cRect( Left + out, scrollTop + scrollHeight - dotHeight*2 + out, scrollBarWidth - out*2, scrollBarWidth - out*2), Config.decorScrollBarBarFg, 0);
+                break;
+            }
+            case 6:
+            {
+                Pixmap->DrawRectangle(cRect(Left, scrollTop, scrollBarWidth, scrollHeight), Config.decorScrollBarBarFg);
+                break;
+            }
+            case 7:
+            {
+                int dotHeight = scrollBarWidth / 2;
+
+                Pixmap->DrawRectangle(cRect(Left, scrollTop + dotHeight, scrollBarWidth, scrollHeight - dotHeight*2), Config.decorScrollBarBarFg);
+                // dot
+                Pixmap->DrawEllipse(cRect( Left, scrollTop, scrollBarWidth, scrollBarWidth), Config.decorScrollBarBarFg, 0);
+                Pixmap->DrawEllipse(cRect( Left, scrollTop + scrollHeight - dotHeight*2, scrollBarWidth, scrollBarWidth), Config.decorScrollBarBarFg, 0);
+
+                break;
+            }
+        }
+
+    }
+}
+
+int cFlatBaseRender::ScrollBarWidth(void) {
+    return scrollBarWidth;
+}
+
+void cFlatBaseRender::DecorBorderClear(int Left, int Top, int Width, int Height, int Size) {
+    int LeftDecor = Left - Size;
+    int TopDecor = Top - Size;
+    int WidthDecor = Width + Size*2;
+    int HeightDecor = Height + Size*2;
+    int BottomDecor = Height + Size;
+
+    if( decorPixmap ) {
+        // top
+        decorPixmap->DrawRectangle(cRect( LeftDecor, TopDecor, WidthDecor, Size), clrTransparent);
+        // right
+        decorPixmap->DrawRectangle(cRect( LeftDecor + Size + Width, TopDecor, Size, HeightDecor), clrTransparent);
+        // bottom
+        decorPixmap->DrawRectangle(cRect( LeftDecor, TopDecor + BottomDecor, WidthDecor, Size), clrTransparent);
+        // left
+        decorPixmap->DrawRectangle(cRect( LeftDecor, TopDecor, Size, HeightDecor), clrTransparent);
+    }
+}
+
+void cFlatBaseRender::DecorBorderClearByFrom(int From) {
+    std::list<sDecorBorder>::iterator it;
+    for( it = Borders.begin(); it != Borders.end(); ) {
+        if( (*it).From == From ) {
+            DecorBorderClear((*it).Left, (*it).Top, (*it).Width, (*it).Height, (*it).Size);
+            it = Borders.erase(it);
+        } else
+            ++it;
+    }
+}
+
+void cFlatBaseRender::DecorBorderRedrawAll(void) {
+    std::list<sDecorBorder>::iterator it;
+    for( it = Borders.begin(); it != Borders.end(); it++) {
+        DecorBorderDraw((*it).Left, (*it).Top, (*it).Width, (*it).Height, (*it).Size, (*it).Type, (*it).ColorFg, (*it).ColorBg, (*it).From, false);
+    }
+}
+
+void cFlatBaseRender::DecorBorderClearAll(void) {
+    if( decorPixmap )
+        decorPixmap->Fill(clrTransparent);
+}
+
+void cFlatBaseRender::DecorBorderDraw(int Left, int Top, int Width, int Height, int Size, int Type, tColor ColorFg, tColor ColorBg, int From, bool Store) {
+    if( Size == 0 || Type <= 0 )
+        return;
+
+    if( Store ) {
+        sDecorBorder f;
+        f.Left = Left;
+        f.Top = Top;
+        f.Width = Width;
+        f.Height = Height;
+        f.Size = Size;
+        f.Type = Type;
+        f.ColorFg = ColorFg;
+        f.ColorBg = ColorBg;
+        f.From = From;
+
+        Borders.push_back(f);
+    }
+
+    int LeftDecor = Left - Size;
+    int TopDecor = Top - Size;
+    int WidthDecor = Width + Size*2;
+    int HeightDecor = Height + Size*2;
+    int BottomDecor = Height + Size;
+
+    if( !decorPixmap ) {
+        decorPixmap = osd->CreatePixmap(4, cRect(0, 0, cOsd::OsdWidth(), cOsd::OsdHeight()));
+        decorPixmap->Fill(clrTransparent);
+    }
+
+    switch( Type ) {
+        case 1: // rect
+            // top
+            decorPixmap->DrawRectangle(cRect( LeftDecor, TopDecor, WidthDecor, Size), ColorBg);
+            // right
+            decorPixmap->DrawRectangle(cRect( LeftDecor + Size + Width, TopDecor, Size, HeightDecor), ColorBg);
+            // bottom
+            decorPixmap->DrawRectangle(cRect( LeftDecor, TopDecor + BottomDecor, WidthDecor, Size), ColorBg);
+            // left
+            decorPixmap->DrawRectangle(cRect( LeftDecor, TopDecor, Size, HeightDecor), ColorBg);
+            break;
+        case 2: // round
+            // top
+            decorPixmap->DrawRectangle(cRect( LeftDecor + Size, TopDecor, Width, Size), ColorBg);
+            // right
+            decorPixmap->DrawRectangle(cRect( LeftDecor + Size + Width, TopDecor + Size, Size, Height), ColorBg);
+            // bottom
+            decorPixmap->DrawRectangle(cRect( LeftDecor + Size, TopDecor + BottomDecor, Width, Size), ColorBg);
+            // left
+            decorPixmap->DrawRectangle(cRect( LeftDecor, TopDecor + Size, Size, Height), ColorBg);
+
+            // top,left corner
+            decorPixmap->DrawEllipse(cRect( LeftDecor, TopDecor, Size, Size), ColorBg, 2);
+            // top,right corner
+            decorPixmap->DrawEllipse(cRect( LeftDecor + Size + Width, TopDecor, Size, Size), ColorBg, 1);
+            // bottom,left corner
+            decorPixmap->DrawEllipse(cRect( LeftDecor, TopDecor + BottomDecor, Size, Size), ColorBg, 3);
+            // bottom,right corner
+            decorPixmap->DrawEllipse(cRect( LeftDecor + Size + Width, TopDecor + BottomDecor, Size, Size), ColorBg, 4);
+            break;
+        case 3: // invert round
+            // top
+            decorPixmap->DrawRectangle(cRect( LeftDecor + Size, TopDecor, Width, Size), ColorBg);
+            // right
+            decorPixmap->DrawRectangle(cRect( LeftDecor+ Size + Width, TopDecor + Size, Size, Height), ColorBg);
+            // bottom
+            decorPixmap->DrawRectangle(cRect( LeftDecor + Size, TopDecor + BottomDecor, Width, Size), ColorBg);
+            // left
+            decorPixmap->DrawRectangle(cRect( LeftDecor, TopDecor + Size, Size, Height), ColorBg);
+
+            // top,left corner
+            decorPixmap->DrawEllipse(cRect( LeftDecor, TopDecor, Size, Size), ColorBg, -4);
+            // top,right corner
+            decorPixmap->DrawEllipse(cRect( LeftDecor + Size + Width, TopDecor, Size, Size), ColorBg, -3);
+            // bottom,left corner
+            decorPixmap->DrawEllipse(cRect( LeftDecor, TopDecor + BottomDecor, Size, Size), ColorBg, -1);
+            // bottom,right corner
+            decorPixmap->DrawEllipse(cRect( LeftDecor + Size + Width, TopDecor + BottomDecor, Size, Size), ColorBg, -2);
+            break;
+        case 4: // rect + alpha blend
+            // top
+            DecorDrawGlowRectHor(decorPixmap, LeftDecor + Size, TopDecor, WidthDecor - Size*2, Size, ColorBg);
+            // bottom
+            DecorDrawGlowRectHor(decorPixmap, LeftDecor + Size, TopDecor + BottomDecor, WidthDecor - Size*2, -1*Size, ColorBg);
+            // left
+            DecorDrawGlowRectVer(decorPixmap, LeftDecor, TopDecor + Size, Size, HeightDecor - Size*2, ColorBg);
+            // right
+            DecorDrawGlowRectVer(decorPixmap, LeftDecor + Size + Width, TopDecor + Size, -1*Size, HeightDecor - Size*2, ColorBg);
+
+            DecorDrawGlowRectTL(decorPixmap, LeftDecor, TopDecor, Size, Size, ColorBg);
+            DecorDrawGlowRectTR(decorPixmap, LeftDecor + Size + Width, TopDecor, Size, Size, ColorBg);
+            DecorDrawGlowRectBL(decorPixmap, LeftDecor, TopDecor + Size + Height, Size, Size, ColorBg);
+            DecorDrawGlowRectBR(decorPixmap, LeftDecor + Size + Width, TopDecor + Size + Height, Size, Size, ColorBg);
+            break;
+        case 5: // round + alpha blend
+            // top
+            DecorDrawGlowRectHor(decorPixmap, LeftDecor + Size, TopDecor, WidthDecor - Size*2, Size, ColorBg);
+            // bottom
+            DecorDrawGlowRectHor(decorPixmap, LeftDecor + Size, TopDecor + BottomDecor, WidthDecor - Size*2, -1*Size, ColorBg);
+            // left
+            DecorDrawGlowRectVer(decorPixmap, LeftDecor, TopDecor + Size, Size, HeightDecor - Size*2, ColorBg);
+            // right
+            DecorDrawGlowRectVer(decorPixmap, LeftDecor + Size + Width, TopDecor + Size, -1*Size, HeightDecor - Size*2, ColorBg);
+
+            DecorDrawGlowEllipseTL(decorPixmap, LeftDecor, TopDecor, Size, Size, ColorBg, 2);
+            DecorDrawGlowEllipseTR(decorPixmap, LeftDecor + Size + Width, TopDecor, Size, Size, ColorBg, 1);
+            DecorDrawGlowEllipseBL(decorPixmap, LeftDecor, TopDecor + Size + Height, Size, Size, ColorBg, 3);
+            DecorDrawGlowEllipseBR(decorPixmap, LeftDecor + Size + Width, TopDecor + Size + Height, Size, Size, ColorBg, 4);
+            break;
+        case 6: // invert round + alpha blend
+            // top
+            DecorDrawGlowRectHor(decorPixmap, LeftDecor + Size, TopDecor, WidthDecor - Size*2, Size, ColorBg);
+            // bottom
+            DecorDrawGlowRectHor(decorPixmap, LeftDecor + Size, TopDecor + BottomDecor, WidthDecor - Size*2, -1*Size, ColorBg);
+            // left
+            DecorDrawGlowRectVer(decorPixmap, LeftDecor, TopDecor + Size, Size, HeightDecor - Size*2, ColorBg);
+            // right
+            DecorDrawGlowRectVer(decorPixmap, LeftDecor + Size + Width, TopDecor + Size, -1*Size, HeightDecor - Size*2, ColorBg);
+
+            DecorDrawGlowEllipseTL(decorPixmap, LeftDecor, TopDecor, Size, Size, ColorBg, -4);
+            DecorDrawGlowEllipseTR(decorPixmap, LeftDecor + Size + Width, TopDecor, Size, Size, ColorBg, -3);
+            DecorDrawGlowEllipseBL(decorPixmap, LeftDecor, TopDecor + Size + Height, Size, Size, ColorBg, -1);
+            DecorDrawGlowEllipseBR(decorPixmap, LeftDecor + Size + Width, TopDecor + Size + Height, Size, Size, ColorBg, -2);
+            break;
+    }
+}
+
+/*
+tColor cFlatBaseRender::Multiply(tColor Color, uint8_t Alpha)
+{
+  tColor RB = (Color & 0x00FF00FF) * Alpha;
+  RB = ((RB + ((RB >> 8) & 0x00FF00FF) + 0x00800080) >> 8) & 0x00FF00FF;
+  tColor AG = ((Color >> 8) & 0x00FF00FF) * Alpha;
+  AG = ((AG + ((AG >> 8) & 0x00FF00FF) + 0x00800080)) & 0xFF00FF00;
+  return AG | RB;
+}
+*/
+
+tColor cFlatBaseRender::SetAlpha(tColor Color, double am)
+{
+    uint8_t A = (Color & 0xFF000000) >> 24;
+    uint8_t R = (Color & 0x00FF0000) >> 16;
+    uint8_t G = (Color & 0x0000FF00) >> 8;
+    uint8_t B = (Color & 0x000000FF);
+
+    A = A * am;
+    return ArgbToColor(A, R, G, B);
+}
+
+void cFlatBaseRender::DecorDrawGlowRectHor(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg) {
+    double Alpha;
+    if( Height < 0 ) {
+        Height *= -1;
+        for(int i = Height, j = 0; i >= 0; i--, j++) {
+            Alpha = 255.0 / Height * j;
+            tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+            pixmap->DrawRectangle(cRect( Left, Top + i, Width, 1), col);
+        }
+    } else {
+        for(int i = 0; i < Height; i++) {
+            Alpha = 255.0 / Height * i;
+            tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+            pixmap->DrawRectangle(cRect( Left, Top + i, Width, 1), col);
+        }
+    }
+}
+
+void cFlatBaseRender::DecorDrawGlowRectVer(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg) {
+    double Alpha;
+    if( Width < 0 ) {
+        Width *= -1;
+        for(int i = Width, j = 0; i >= 0; i--, j++) {
+            Alpha = 255.0 / Width * j;
+            tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+            pixmap->DrawRectangle(cRect( Left + i, Top, 1, Height), col);
+        }
+    } else {
+        for(int i = 0; i < Width; i++) {
+            Alpha = 255.0 / Width * i;
+            tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+            pixmap->DrawRectangle(cRect( Left + i, Top, 1, Height), col);
+        }
+    }
+}
+
+void cFlatBaseRender::DecorDrawGlowRectTL(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg) {
+    double Alpha;
+
+    for(int i = 0; i < Width; i++) {
+        Alpha = 255.0 / Width * i;
+        tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+        pixmap->DrawRectangle(cRect( Left + i, Top + i, Width-i, Height-i), col);
+    }
+}
+
+void cFlatBaseRender::DecorDrawGlowRectTR(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg) {
+    double Alpha;
+
+    for(int i = 0, j = Width; i < Width; i++, j--) {
+        Alpha = 255.0 / Width * i;
+        tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+        pixmap->DrawRectangle(cRect( Left, Top + Height-j, j, j), col);
+    }
+}
+
+void cFlatBaseRender::DecorDrawGlowRectBL(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg) {
+    double Alpha;
+
+    for(int i = 0, j = Width; i < Width; i++, j--) {
+        Alpha = 255.0 / Width * i;
+        tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+        pixmap->DrawRectangle(cRect( Left + Width - j, Top, j, j), col);
+    }
+}
+
+void cFlatBaseRender::DecorDrawGlowRectBR(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg) {
+    double Alpha;
+
+    for(int i = 0, j = Width; i < Width; i++, j--) {
+        Alpha = 255 / Width * i;
+        tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+        pixmap->DrawRectangle(cRect( Left, Top, j, j), col);
+    }
+}
+
+void cFlatBaseRender::DecorDrawGlowEllipseTL(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg, int type) {
+    double Alpha;
+
+    for(int i = 0, j = Width; i < Width; i++, j--) {
+        if( VDRVERSNUM < 20002 && j == 1 ) // in VDR Version < 2.0.2 osd breaks if width & height == 1
+            continue;
+        Alpha = 255 / Width * i;
+        tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+        pixmap->DrawEllipse(cRect( Left + i, Top + i, j, j), col, type);
+    }
+}
+
+void cFlatBaseRender::DecorDrawGlowEllipseTR(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg, int type) {
+    double Alpha;
+
+    for(int i = 0, j = Width; i < Width; i++, j--) {
+        if( VDRVERSNUM < 20002 && j == 1 ) // in VDR Version < 2.0.2 osd breaks if width & height == 1
+            continue;
+        Alpha = 255 / Width * i;
+        tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+        pixmap->DrawEllipse(cRect( Left, Top + Height-j, j, j), col, type);
+    }
+}
+
+void cFlatBaseRender::DecorDrawGlowEllipseBL(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg, int type) {
+    double Alpha;
+
+    for(int i = 0, j = Width; i < Width; i++, j--) {
+        if( VDRVERSNUM < 20002 && j == 1 ) // in VDR Version < 2.0.2 osd breaks if width & height == 1
+            continue;
+        Alpha = 255 / Width * i;
+        tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+        pixmap->DrawEllipse(cRect( Left + Width - j, Top, j, j), col, type);
+    }
+}
+
+void cFlatBaseRender::DecorDrawGlowEllipseBR(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg, int type) {
+    double Alpha;
+
+    for(int i = 0, j = Width; i < Width; i++, j--) {
+        if( VDRVERSNUM < 20002 && j == 1 ) // in VDR Version < 2.0.2 osd breaks if width & height == 1
+            continue;
+        Alpha = 255 / Width * i;
+        tColor col = SetAlpha(ColorBg, 100.0/255.0*Alpha/100.0);
+        pixmap->DrawEllipse(cRect( Left, Top, j, j), col, type);
+    }
+}
+
+int cFlatBaseRender::GetFontAscender(const char *Name, int CharHeight, int CharWidth) {
+    FT_Library library;
+    FT_Face face;
+    cString fontFileName = cFont::GetFontFileName(Name);
+    int Ascender = CharHeight;
+    int error = FT_Init_FreeType(&library);
+    if (!error) {
+        error = FT_New_Face(library, fontFileName, 0, &face);
+        if (!error) {
+            if (face->num_fixed_sizes && face->available_sizes) { // fixed font
+                // TODO what exactly does all this mean?
+                Ascender = face->available_sizes->height;
+            } else {
+                error = FT_Set_Char_Size(face, CharWidth * 64, CharHeight * 64, 0, 0);
+                if (!error) {
+                    Ascender = face->size->metrics.ascender/64;
+                }
+                else
+                    esyslog("ERROR: FreeType: error %d during FT_Set_Char_Size (font = %s)\n", error, *fontFileName);
+            }
+        }
+        else
+            esyslog("ERROR: FreeType: load error %d (font = %s)", error, *fontFileName);
+    }
+    else
+        esyslog("ERROR: FreeType: initialization error %d (font = %s)", error, *fontFileName);
+
+    FT_Done_Face(face);
+    FT_Done_FreeType(library);
+
+    return Ascender;
+}
+
+void cFlatBaseRender::DrawWidgetWeather(void) {
+    int fs = int(round(cOsd::OsdHeight() * Config.WeatherFontSize));
+    cFont *weatherFont = cFont::CreateFont(Setup.FontOsd, fs);
+    cFont *weatherFontSml = cFont::CreateFont(Setup.FontOsd, fs/2.0 );
+    cFont *weatherFontSign = cFont::CreateFont(Setup.FontOsd, fs/2.5 );
+
+    std::string tempToday = "", tempTodaySign = "";
+    std::string iconToday, iconTomorrow;
+    std::string tempMaxToday, tempMaxTomorrow;
+    std::string tempMinToday, tempMinTomorrow;
+    std::string precToday, precTomorrow;
+
+    std::ifstream file;
+    cString filename;
+
+    filename = cString::sprintf("%s/weather/weather.0.temp", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, tempToday);
+        file.close();
+        std::size_t found = tempToday.find("°");
+        if( found != std::string::npos) {
+            tempTodaySign = tempToday.substr(found);
+            tempToday = tempToday.substr(0, found);
+        }
+    } else
+        return;
+
+    filename = cString::sprintf("%s/weather/weather.0.icon", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, iconToday);
+        file.close();
+    } else
+        return;
+
+    filename = cString::sprintf("%s/weather/weather.1.icon", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, iconTomorrow);
+        file.close();
+    } else
+        return;
+
+    filename = cString::sprintf("%s/weather/weather.0.tempMax", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, tempMaxToday);
+        file.close();
+    } else
+        return;
+
+    filename = cString::sprintf("%s/weather/weather.1.tempMax", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, tempMaxTomorrow);
+        file.close();
+    } else
+        return;
+
+    filename = cString::sprintf("%s/weather/weather.0.tempMin", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, tempMinToday);
+        file.close();
+    } else
+        return;
+
+    filename = cString::sprintf("%s/weather/weather.1.tempMin", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, tempMinTomorrow);
+        file.close();
+    } else
+        return;
+
+    double p = 0.0;
+    filename = cString::sprintf("%s/weather/weather.0.precipitation", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, precToday);
+        std::replace( precToday.begin(), precToday.end(), '.', ',');
+        file.close();
+        p = atof(precToday.c_str()) * 100.0;
+        p = roundUp(p, 10);
+        precToday = cString::sprintf("%.0f%%", p);
+    }
+
+    filename = cString::sprintf("%s/weather/weather.1.precipitation", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, precTomorrow);
+        std::replace( precTomorrow.begin(), precTomorrow.end(), '.', ',');
+        file.close();
+        p = atof(precTomorrow.c_str()) * 100.0;
+        p = roundUp(p, 10);
+        precTomorrow = cString::sprintf("%.0f%%", p);
+    }
+
+    int left = marginItem;
+
+    int widthTempToday = max(weatherFontSml->Width(tempMaxToday.c_str()), weatherFontSml->Width(tempMinToday.c_str()) );
+    int widthTempTomorrow = max(weatherFontSml->Width(tempMaxTomorrow.c_str()), weatherFontSml->Width(tempMinTomorrow.c_str()) );
+
+    int wTop = topBarHeight + Config.decorBorderTopBarSize*2 + 20 + Config.decorBorderChannelEPGSize;
+    int wWidth = marginItem + weatherFont->Width(tempToday.c_str()) + weatherFontSign->Width(tempTodaySign.c_str()) + marginItem*2 + weatherFont->Height() + marginItem \
+        + widthTempToday + marginItem + weatherFont->Height() - marginItem*2 \
+        + weatherFontSml->Width(precToday.c_str()) + marginItem*4 + weatherFont->Height() + marginItem \
+        + widthTempTomorrow + marginItem + weatherFont->Height() - marginItem*2 \
+        + weatherFontSml->Width(precTomorrow.c_str()) + marginItem*2;
+    int wLeft = osdWidth - wWidth - 20;
+
+    weatherWidget.Clear();
+    weatherWidget.SetOsd(osd);
+    weatherWidget.SetPosition(cRect(wLeft, wTop, wWidth, weatherFont->Height()));
+    weatherWidget.SetBGColor(Theme.Color(clrItemCurrentBg));
+    weatherWidget.SetScrollingActive(false);
+
+    weatherWidget.AddText(tempToday.c_str(), false, cRect(left, 0, 0, 0), Theme.Color(clrChannelFontEpg), Theme.Color(clrItemCurrentBg), weatherFont);
+    left += weatherFont->Width(tempToday.c_str());
+
+    int fontAscender = GetFontAscender(Setup.FontOsd, fs);
+    int fontAscender2 = GetFontAscender(Setup.FontOsd, fs / 2.5);
+    int t = (weatherFont->Height() - fontAscender) - (weatherFontSign->Height() - fontAscender2);
+
+    weatherWidget.AddText(tempTodaySign.c_str(), false, cRect(left, t, 0, 0), Theme.Color(clrChannelFontEpg), Theme.Color(clrItemCurrentBg), weatherFontSign);
+    left += weatherFontSign->Width(tempTodaySign.c_str()) + marginItem*2;
+
+    cString weatherIcon = cString::sprintf("widgets/%s", iconToday.c_str());
+    cImage *img = imgLoader.LoadIcon(*weatherIcon, weatherFont->Height(), weatherFont->Height() - marginItem*2);
+    if( img ) {
+        weatherWidget.AddImage(img, cRect(left, 0 + marginItem, weatherFont->Height(), weatherFont->Height()));
+        left += weatherFont->Height() + marginItem;
+    }
+    weatherWidget.AddText(tempMaxToday.c_str(), false, cRect(left, 0, 0, 0), Theme.Color(clrChannelFontEpg), Theme.Color(clrItemCurrentBg), weatherFontSml, widthTempToday, weatherFontSml->Height(), taRight);
+    weatherWidget.AddText(tempMinToday.c_str(), false, cRect(left, 0 + weatherFontSml->Height(), 0, 0), Theme.Color(clrChannelFontEpg), Theme.Color(clrItemCurrentBg), weatherFontSml, widthTempToday, weatherFontSml->Height(), taRight);
+    left += widthTempToday + marginItem;
+
+    img = imgLoader.LoadIcon("widgets/umbrella", weatherFont->Height(), weatherFont->Height() - marginItem*2);
+    if( img ) {
+        weatherWidget.AddImage(img, cRect(left, 0 + marginItem, weatherFont->Height(), weatherFont->Height()));
+        left += weatherFont->Height() - marginItem*2;
+    }
+    weatherWidget.AddText(precToday.c_str(), false, cRect(left, 0 + (weatherFont->Height()/2 - weatherFontSml->Height()/2), 0, 0), Theme.Color(clrChannelFontEpg), Theme.Color(clrItemCurrentBg), weatherFontSml);
+    left += weatherFontSml->Width(precToday.c_str()) + marginItem*4;
+
+    weatherWidget.AddRect(cRect(left - marginItem*2, 0, wWidth - left + marginItem*2, weatherFont->Height()), Theme.Color(clrChannelBg));
+
+    weatherIcon = cString::sprintf("widgets/%s", iconTomorrow.c_str());
+    img = imgLoader.LoadIcon(*weatherIcon, weatherFont->Height(), weatherFont->Height() - marginItem*2);
+    if( img ) {
+        weatherWidget.AddImage(img, cRect(left, 0 + marginItem, weatherFont->Height(), weatherFont->Height()));
+        left += weatherFont->Height() + marginItem;
+    }
+    weatherWidget.AddText(tempMaxTomorrow.c_str(), false, cRect(left, 0, 0, 0), Theme.Color(clrChannelFontEpg), Theme.Color(clrChannelBg), weatherFontSml, widthTempTomorrow, weatherFontSml->Height(), taRight);
+    weatherWidget.AddText(tempMinTomorrow.c_str(), false, cRect(left, 0 + weatherFontSml->Height(), 0, 0), Theme.Color(clrChannelFontEpg), Theme.Color(clrChannelBg), weatherFontSml, widthTempTomorrow, weatherFontSml->Height(), taRight);
+    left += widthTempTomorrow + marginItem;
+
+    img = imgLoader.LoadIcon("widgets/umbrella", weatherFont->Height(), weatherFont->Height() - marginItem*2);
+    if( img ) {
+        weatherWidget.AddImage(img, cRect(left, 0 + marginItem, weatherFont->Height(), weatherFont->Height()));
+        left += weatherFont->Height() - marginItem*2;
+    }
+    weatherWidget.AddText(precTomorrow.c_str(), false, cRect(left, 0 + (weatherFont->Height()/2 - weatherFontSml->Height()/2), 0, 0), Theme.Color(clrChannelFontEpg), Theme.Color(clrChannelBg), weatherFontSml);
+    left += weatherFontSml->Width(precTomorrow.c_str());
+
+    //weatherWidget.AddRect(cRect(left, 0, wWidth - left, fontHeight), clrTransparent);
+
+    weatherWidget.CreatePixmaps(false);
+    weatherWidget.Draw();
+}
diff --git a/baserender.h b/baserender.h
new file mode 100644
index 0000000..9a63f73
--- /dev/null
+++ b/baserender.h
@@ -0,0 +1,183 @@
+#pragma once
+
+#include "imageloader.h"
+#include <list>
+#include "flat.h"
+#include "textscroller.h"
+#include "complexcontent.h"
+
+enum eBorder {
+    BorderMenuItem,
+    BorderRecordJump,
+    BorderMenuRecord,
+    BorderMessage,
+    BorderButton,
+    BorderContent,
+    BorderTVSPoster,
+    BorderSetRecording,
+    BorderMMWidget
+};
+
+struct sDecorBorder {
+    int Left, Top, Width, Height, Size, Type;
+    tColor ColorFg, ColorBg;
+    int From;
+};
+
+template<class T> inline T myMax(T a, T b) { return a >= b ? a : b; }
+
+class cFlatBaseRender
+{
+    protected:
+        cOsd *osd;
+
+        int osdLeft, osdTop, osdWidth, osdHeight;
+        int marginItem;
+
+        // Standard fonts
+        cFont *font;
+        cFont *fontSml;
+        cFont *fontFixed;
+        int fontHeight;
+        int fontSmlHeight;
+        int fontFixedHeight;
+
+        // TopBar
+        cPixmap *topBarPixmap;
+        cPixmap *topBarIconPixmap;
+        cPixmap *topBarIconBGPixmap;
+        cFont *topBarFont, *topBarFontSml, *topBarFontClock;
+        int topBarFontHeight, topBarFontSmlHeight, topBarFontClockHeight;
+
+        cString topBarTitle;
+        cString tobBarTitleExtra1, tobBarTitleExtra2;
+        cString topBarExtraIcon;
+        bool topBarExtraIconSet;
+        cString topBarMenuIcon;
+        bool topBarMenuIconSet;
+        cString topBarMenuIconRight;
+        bool topBarMenuIconRightSet;
+        cString topBarMenuLogo;
+        bool topBarMenuLogoSet;
+
+        bool topBarUpdateTitle;
+        cString topBarLastDate;
+        int topBarHeight;
+        int VideoDiskUsageState;
+
+        // Progressbar
+        cPixmap *progressBarPixmap;
+        cPixmap *progressBarPixmapBg;
+        int progressBarHeight, progressBarTop, progressBarWidth, progressBarMarginHor, progressBarMarginVer;
+        int ProgressType;
+        bool progressBarSetBackground;
+        bool progressBarIsSignal;
+        tColor progressBarColorFg, progressBarColorBarFg, progressBarColorBarCurFg, progressBarColorBg;
+        tColor progressBarColorMark, progressBarColorMarkCurrent;
+
+        // Scrollbar
+        int scrollBarWidth;
+
+        // Buttons rot, grün, gelb, blau
+        cPixmap *buttonsPixmap;
+        int buttonsWidth, buttonsHeight, buttonsTop;
+        int marginButtonColor, buttonColorHeight;
+        bool buttonsDrawn;
+
+        // Nachricht
+        cPixmap *messagePixmap, *messageIconPixmap;
+        int messageWidth, messageHeight;
+        cTextScrollers messageScroller;
+
+        // Mehrzeiliger Content mit Scrollbalken
+        cPixmap *contentPixmap;
+        cPixmap *contentEpgImagePixmap;
+        int contentLeft, contentTop, contentHeight, contentWidth;
+        int contentDrawPortHeight; // gesamth�he des Textes
+        int contentTextHeight;
+        bool contentHasScrollbar;
+        bool contentShown;
+        int contentFontType;
+        int contentEventType;
+        int contentEventHeight;
+        int contentEventPosterWidth, contentEventPosterHeight;
+
+        tColor contentColorFg, contentColorBg;
+        cTextWrapper contentWrapper;
+        cTextWrapper contentWrapperPoster;
+        const cEvent *contentEvent;
+
+        cComplexContent weatherWidget;
+
+        cPixmap *decorPixmap;
+        std::list<sDecorBorder> Borders; // for clear specific Borders (clear only MenuItems and not TopBar)
+
+        void contentDraw(void);
+        void contentEventDraw(void);
+        double ScrollbarSize(void);
+
+        void ProgressBarDrawMark(int posMark, int posMarkLast, int posCurrent, bool Start, bool isCurrent);
+        int ProgressBarMarkPos(int P, int Total);
+
+        void DecorDrawGlowRectHor(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg);
+        void DecorDrawGlowRectVer(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg);
+
+        void DecorDrawGlowRectTL(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg);
+        void DecorDrawGlowRectTR(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg);
+        void DecorDrawGlowRectBL(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg);
+        void DecorDrawGlowRectBR(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg);
+
+        void DecorDrawGlowEllipseTL(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg, int type);
+        void DecorDrawGlowEllipseTR(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg, int type);
+        void DecorDrawGlowEllipseBL(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg, int type);
+        void DecorDrawGlowEllipseBR(cPixmap *pixmap, int Left, int Top, int Width, int Height, tColor ColorBg, int type);
+
+        void TopBarEnableDiskUsage(void);
+        //tColor Multiply(tColor Color, uint8_t Alpha);
+        tColor SetAlpha(tColor Color, double am);
+    public:
+        cImageLoader imgLoader;
+
+        cFlatBaseRender(void);
+        ~cFlatBaseRender(void);
+
+        void CreateFullOsd(void);
+        void CreateOsd(int Left, int Top, int Width, int Height);
+
+        void TopBarCreate(void);
+        void TopBarSetTitle(cString title);
+        void TopBarSetTitleWithoutClear(cString title);
+        void TopBarSetTitleExtra(cString extra1, cString extra2);
+        void TopBarSetMenuIcon(cString icon);
+        void TopBarSetMenuIconRight(cString icon);
+        void TopBarSetMenuLogo(cString icon);
+        void TopBarSetExtraIcon(cString icon);
+        void TopBarUpdate(void);
+
+        void ButtonsCreate(void);
+        void ButtonsSet(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL);
+        bool ButtonsDrawn(void);
+
+        void MessageCreate(void);
+        void MessageSet(eMessageType Type, const char *Text);
+        void MessageClear(void);
+
+        void ProgressBarDrawRaw(cPixmap *Pixmap, cPixmap *PixmapBg, cRect rec, cRect recBg, int Current, int Total, tColor ColorFg, tColor ColorBarFg, tColor ColorBg, int Type, bool SetBackground, bool isSignal = false);
+        void ProgressBarCreate(int Left, int Top, int Width, int Height, int MarginHor, int MarginVer, tColor ColorFg, tColor ColorBarFg, tColor ColorBg, int Type, bool SetBackground = false, bool isSignal = false);
+        void ProgressBarDrawBgColor(void);
+        void ProgressBarDraw(int Current, int Total);
+        void ProgressBarDrawMarks(int Current, int Total, const cMarks *Marks, tColor Color, tColor ColorCurrent);
+
+        void ScrollbarDraw(cPixmap *Pixmap, int Left, int Top, int Height, int Total, int Offset, int Shown, bool CanScrollUp, bool CanScrollDown);
+        int ScrollBarWidth(void);
+
+        void DecorBorderDraw(int Left, int Top, int Width, int Height, int Size, int Type, tColor ColorFg, tColor ColorBg, int From = 0, bool Store = true);
+        void DecorBorderClear(int Left, int Top, int Width, int Height, int Size);
+        void DecorBorderClearAll(void);
+        void DecorBorderRedrawAll(void);
+        void DecorBorderClearByFrom(int From);
+
+        int GetFontAscender(const char *Name, int CharHeight, int CharWidth = 0);
+
+        void DrawWidgetWeather(void);
+};
diff --git a/complexcontent.c b/complexcontent.c
new file mode 100644
index 0000000..7c26541
--- /dev/null
+++ b/complexcontent.c
@@ -0,0 +1,301 @@
+#include "complexcontent.h"
+
+cComplexContent::cComplexContent() {
+    Osd = NULL;
+    Pixmap = NULL;
+    PixmapImage = NULL;
+    isShown = false;
+    isScrollingActive = true;
+}
+
+cComplexContent::cComplexContent(cOsd *osd, int scrollSize) {
+    Osd = osd;
+    ScrollSize = scrollSize;
+
+    Pixmap = NULL;
+    PixmapImage = NULL;
+    isShown = false;
+    isScrollingActive = true;
+}
+
+cComplexContent::~cComplexContent() {
+}
+
+void cComplexContent::Clear(void) {
+    isShown = false;
+    Contents.clear();
+    if( Osd ) {
+        if( Pixmap != NULL ) {
+            Osd->DestroyPixmap(Pixmap);
+            Pixmap = NULL;
+        }
+        if( PixmapImage != NULL ) {
+            Osd->DestroyPixmap(PixmapImage);
+            PixmapImage = NULL;
+        }
+    }
+}
+
+void cComplexContent::CreatePixmaps(bool fullFillBackground) {
+    CalculateDrawPortHeight();
+    FullFillBackground = fullFillBackground;
+
+    if( !Osd )
+        return;
+    if( Pixmap != NULL ) {
+        Osd->DestroyPixmap(Pixmap);
+        Pixmap = NULL;
+    }
+    if( PixmapImage != NULL ) {
+        Osd->DestroyPixmap(PixmapImage);
+        PixmapImage = NULL;
+    }
+
+    cRect PositionDraw;
+    PositionDraw.SetLeft(0);
+    PositionDraw.SetTop(0);
+    PositionDraw.SetWidth(Position.Width());
+    if( FullFillBackground && DrawPortHeight < Position.Height() )
+        PositionDraw.SetHeight(Position.Height());
+    else
+        PositionDraw.SetHeight(DrawPortHeight);
+
+    Pixmap = Osd->CreatePixmap(1, Position, PositionDraw);
+    PixmapImage = Osd->CreatePixmap(2, Position, PositionDraw);
+    //dsyslog("skinflatplus: ComplexContentPixmap left: %d top: %d width: %d height: %d", Position.Left(), Position.Top(), Position.Width(), Position.Height() );
+    //dsyslog("skinflatplus: ComplexContentPixmap drawport left: %d top: %d width: %d height: %d", PositionDraw.Left(), PositionDraw.Top(), PositionDraw.Width(), PositionDraw.Height() );
+
+    if( FullFillBackground ) {
+        Pixmap->Fill(ColorBg);
+    } else {
+        Pixmap->DrawRectangle(cRect(0, 0, Position.Width(), ContentHeight(false)), ColorBg);
+    }
+
+    PixmapImage->Fill(clrTransparent);
+}
+
+void cComplexContent::CalculateDrawPortHeight(void) {
+    DrawPortHeight = 0;
+    std::vector<cSimpleContent>::iterator it;
+    for( it = Contents.begin(); it != Contents.end(); it++) {
+        if( (*it).GetBottom() > DrawPortHeight )
+            DrawPortHeight = (*it).GetBottom();
+    }
+    if( isScrollingActive )
+        DrawPortHeight = ScrollTotal() * ScrollSize;
+}
+
+int cComplexContent::BottomContent(void) {
+    int bottom = 0;
+    std::vector<cSimpleContent>::iterator it;
+    for( it = Contents.begin(); it != Contents.end(); it++) {
+        if( (*it).GetBottom() > bottom )
+            bottom = (*it).GetBottom();
+    }
+    return bottom;
+}
+
+int cComplexContent::ContentHeight( bool Full ) {
+    if( Full )
+        return Height();
+    CalculateDrawPortHeight();
+    if( DrawPortHeight > Height() )
+        return Height();
+
+    return DrawPortHeight;
+}
+
+bool cComplexContent::Scrollable(int height) {
+    CalculateDrawPortHeight();
+
+    int total, shown;
+    total = ScrollTotal();
+    if( height == 0 )
+        height = Position.Height();
+    shown = ceil( (double)height / (double)ScrollSize);
+    if( total > shown )
+        return true;
+
+    return false;
+}
+
+void cComplexContent::AddText(const char *text, bool multiline, cRect position, tColor colorFg, tColor colorBg, cFont *font, int textWidth, int textHeight, int textAlignment ) {
+    Contents.push_back( cSimpleContent() );
+    Contents.back().SetText(text, multiline, position, colorFg, colorBg, font, textWidth, textHeight, textAlignment);
+}
+
+void cComplexContent::AddImage(cImage *image, cRect position) {
+    Contents.push_back( cSimpleContent() );
+    Contents.back().SetImage(image, position);
+}
+
+void cComplexContent::AddImageWithFloatedText(cImage *image, int imageAlignment, const char *text, cRect textPos, tColor colorFg, tColor colorBg, cFont *font, int textWidth, int textHeight, int textAlignment) {
+    int TextWidthLeft = Position.Width() - image->Width() - 10 - textPos.Left();
+
+    cTextWrapper WrapperFloat;
+    WrapperFloat.Set(text, font, TextWidthLeft);
+    int FloatLines = ceil((double)image->Height() / (double)ScrollSize);
+    int Lines = WrapperFloat.Lines();
+
+    if( Lines < FloatLines ) {
+        cRect FloatedTextPos;
+        FloatedTextPos.SetLeft(textPos.Left());
+        FloatedTextPos.SetTop(textPos.Top());
+        FloatedTextPos.SetWidth( TextWidthLeft );
+        FloatedTextPos.SetHeight(textPos.Height());
+
+        AddText(text, true, FloatedTextPos, colorFg, colorBg, font, textWidth, textHeight, textAlignment);
+
+        cRect ImagePos;
+        ImagePos.SetLeft(textPos.Left() + TextWidthLeft + 5);
+        ImagePos.SetTop(textPos.Top());
+        ImagePos.SetWidth( image->Width() );
+        ImagePos.SetHeight( image->Height() );
+
+        AddImage(image, ImagePos);
+    } else {
+        int NumChars = 0;
+        for( int i = 0; i < Lines && i < FloatLines; i++) {
+            NumChars += strlen(WrapperFloat.GetLine(i));
+        }
+        // detect end of last word
+        for(; text[NumChars] != ' ' && text[NumChars] != '\0' && text[NumChars] != '\r' && text[NumChars] != '\n'; NumChars++)
+            ;
+        char *FloatedText;
+        FloatedText = new char[NumChars+1];
+        memset(FloatedText, '\0', NumChars+1);
+        strncpy(FloatedText, text, NumChars);
+
+        NumChars++;
+        char *SecondText;
+        SecondText = new char[strlen(text) - NumChars + 2];
+        memset(SecondText, '\0', strlen(text) - NumChars + 2);
+        strncpy(SecondText, text+NumChars, strlen(text) - NumChars);
+
+        cRect FloatedTextPos;
+        FloatedTextPos.SetLeft(textPos.Left());
+        FloatedTextPos.SetTop(textPos.Top());
+        FloatedTextPos.SetWidth( TextWidthLeft );
+        FloatedTextPos.SetHeight(textPos.Height());
+
+        cRect SecondTextPos;
+        SecondTextPos.SetLeft(textPos.Left());
+        SecondTextPos.SetTop(textPos.Top() + FloatLines * ScrollSize );
+        SecondTextPos.SetWidth( textPos.Width() );
+        SecondTextPos.SetHeight( textPos.Height() );
+
+        AddText(FloatedText, true, FloatedTextPos, colorFg, colorBg, font, textWidth, textHeight, textAlignment);
+        AddText(SecondText, true, SecondTextPos, colorFg, colorBg, font, textWidth, textHeight, textAlignment);
+
+        cRect ImagePos;
+        ImagePos.SetLeft(textPos.Left() + TextWidthLeft + 5);
+        ImagePos.SetTop(textPos.Top());
+        ImagePos.SetWidth( image->Width() );
+        ImagePos.SetHeight( image->Height() );
+
+        AddImage(image, ImagePos);
+
+        delete[] FloatedText;
+        delete[] SecondText;
+    }
+}
+
+void cComplexContent::AddRect(cRect position, tColor colorBg) {
+    Contents.push_back( cSimpleContent() );
+    Contents.back().SetRect(position, colorBg);
+}
+
+void cComplexContent::Draw() {
+    isShown = true;
+    std::vector<cSimpleContent>::iterator it;
+    for( it = Contents.begin(); it != Contents.end(); it++) {
+        if( (*it).GetContentType() == CT_Image )
+            (*it).Draw(PixmapImage);
+        else
+            (*it).Draw(Pixmap);
+    }
+}
+
+double cComplexContent::ScrollbarSize(void) {
+    double barSize = (double)Position.Height() / (double)DrawPortHeight;
+    return barSize;
+}
+
+int cComplexContent::ScrollTotal(void) {
+    int total = ceil( (double)DrawPortHeight / (double)ScrollSize);
+    return total;
+}
+
+int cComplexContent::ScrollShown(void) {
+    //int shown = ceil( (double)Position.Height() / (double)ScrollSize);
+    int shown = Position.Height() / ScrollSize;
+    return shown;
+}
+
+int cComplexContent::ScrollOffset(void) {
+    double offset;
+
+    int y = Pixmap->DrawPort().Point().Y()*-1;
+    if( y + Position.Height() + ScrollSize > DrawPortHeight ) {
+        if( y == DrawPortHeight - Position.Height() ) {
+            y += ScrollSize;
+        } else {
+            y = DrawPortHeight - Position.Height() - 1;
+        }
+    }
+    offset = (double)y / (double)DrawPortHeight;
+    return ScrollTotal() * offset;
+}
+
+bool cComplexContent::Scroll(bool Up, bool Page) {
+    int aktHeight = Pixmap->DrawPort().Point().Y();
+    int totalHeight = Pixmap->DrawPort().Height();
+    int screenHeight = Pixmap->ViewPort().Height();
+    int lineHeight = ScrollSize;
+
+    bool scrolled = false;
+    if (Up) {
+        if (Page) {
+            int newY = aktHeight + screenHeight;
+            if (newY > 0)
+                newY = 0;
+            Pixmap->SetDrawPortPoint(cPoint(0, newY));
+            PixmapImage->SetDrawPortPoint(cPoint(0, newY));
+            scrolled = true;
+        } else {
+            if (aktHeight < 0) {
+                if( aktHeight + lineHeight < 0 ) {
+                    Pixmap->SetDrawPortPoint(cPoint(0, aktHeight + lineHeight));
+                    PixmapImage->SetDrawPortPoint(cPoint(0, aktHeight + lineHeight));
+                } else {
+                    Pixmap->SetDrawPortPoint(cPoint(0, 0));
+                    PixmapImage->SetDrawPortPoint(cPoint(0, 0));
+                }
+                scrolled = true;
+            }
+        }
+    } else {
+        if (Page) {
+            int newY = aktHeight - screenHeight;
+            if ((-1)*newY > totalHeight - screenHeight)
+                newY = (-1)*(totalHeight - screenHeight);
+            Pixmap->SetDrawPortPoint(cPoint(0, newY));
+            PixmapImage->SetDrawPortPoint(cPoint(0, newY));
+            scrolled = true;
+        } else {
+            if (totalHeight - ((-1)*aktHeight + lineHeight) > screenHeight) {
+                Pixmap->SetDrawPortPoint(cPoint(0, aktHeight - lineHeight));
+                PixmapImage->SetDrawPortPoint(cPoint(0, aktHeight - lineHeight));
+            } else {
+                int newY = aktHeight - screenHeight;
+                if ((-1)*newY > totalHeight - screenHeight)
+                    newY = (-1)*(totalHeight - screenHeight);
+                Pixmap->SetDrawPortPoint(cPoint(0, newY));
+                PixmapImage->SetDrawPortPoint(cPoint(0, newY));
+            }
+            scrolled = true;
+        }
+    }
+
+    return scrolled;
+}
diff --git a/complexcontent.h b/complexcontent.h
new file mode 100644
index 0000000..c84704f
--- /dev/null
+++ b/complexcontent.h
@@ -0,0 +1,172 @@
+#pragma once
+
+#include "imageloader.h"
+#include <list>
+#include "flat.h"
+#include <string.h>
+
+enum eContentType {
+    CT_Text,
+    CT_TextMultiline,
+    CT_Image,
+    CT_Rect
+};
+
+enum eContentImageAlignment {
+    CIP_Right
+};
+
+class cSimpleContent
+{
+private:
+    int ContentType;
+    cRect Position;
+
+    int TextWidth, TextHeight, TextAlignment;
+    tColor ColorFg, ColorBg;
+    std::string Text;
+    cImage *Image;
+    cFont *Font;
+
+public:
+    cSimpleContent(void) {
+        Image = NULL;
+        Font = NULL;
+    }
+
+    ~cSimpleContent() {
+    }
+
+    cSimpleContent& operator=(const cSimpleContent& other) {
+        if( this != &other ) {
+            this->ContentType = other.ContentType;
+            this->Position = other.Position;
+            this->Text = other.Text;
+            this->TextWidth = other.TextWidth;
+            this->TextHeight = other.TextHeight;
+            this->TextAlignment = other.TextAlignment;
+            this->ColorFg = other.ColorFg;
+            this->ColorBg = other.ColorBg;
+            this->Image = other.Image;
+            this->Font = other.Font;
+        }
+        return *this;
+    }
+
+    void SetText(const char *text, bool Multiline, cRect position, tColor colorFg, tColor colorBg, cFont *font, int textWidth = 0, int textHeight = 0, int textAlignment = taDefault) {
+        ContentType = CT_Text;
+        Text = text;
+
+        Font = font;
+        Position = position;
+
+        if( Multiline ) {
+            ContentType = CT_TextMultiline;
+        }
+        ColorFg = colorFg; ColorBg = colorBg;
+        TextWidth = textWidth; TextHeight = textHeight; TextAlignment = textAlignment;
+    }
+
+    void SetImage(cImage *image, cRect position) {
+        ContentType = CT_Image;
+        Image = image;
+        Position = position;
+    }
+
+    void SetRect(cRect position, tColor colorBg) {
+        ContentType = CT_Rect;
+        Position = position;
+        ColorBg = colorBg;
+    }
+
+    int GetContentType(void) { return ContentType; }
+    int GetBottom(void) {
+        if( ContentType == CT_Text )
+            return Position.Top() + Font->Height();
+        else if( ContentType == CT_TextMultiline ) {
+            cTextWrapper Wrapper;
+            Wrapper.Set(Text.c_str(), Font, Position.Width());
+            return Position.Top() + (Wrapper.Lines() * Font->Height());
+        } else if( ContentType == CT_Image ) {
+            return Position.Top() + Image->Height();
+        } else if( ContentType == CT_Rect )
+            return Position.Top() + Position.Height();
+
+        return 0;
+    }
+
+    void Draw(cPixmap *Pixmap) {
+        if( !Pixmap )
+            return;
+        if( ContentType == CT_Text ) {
+            Pixmap->DrawText(cPoint(Position.Left(), Position.Top()), Text.c_str(), ColorFg, ColorBg, Font, TextWidth, TextHeight, TextAlignment);
+        } else if( ContentType == CT_TextMultiline ) {
+            cTextWrapper Wrapper;
+            Wrapper.Set(Text.c_str(), Font, Position.Width());
+            int Lines = Wrapper.Lines();
+            for( int i = 0; i < Lines; i++) {
+                Pixmap->DrawText(cPoint(Position.Left(), Position.Top() + (i * Font->Height())), Wrapper.GetLine(i), ColorFg, ColorBg, Font, TextWidth, TextHeight, TextAlignment);
+            }
+        } else if( ContentType == CT_Rect ) {
+            Pixmap->DrawRectangle(Position, ColorBg);
+        } else if( ContentType == CT_Image ) {
+            Pixmap->DrawImage(cPoint(Position.Left(), Position.Top()), *Image);
+        }
+    }
+};
+
+class cComplexContent
+{
+private:
+    std::vector<cSimpleContent> Contents;
+
+    cPixmap *Pixmap, *PixmapImage;
+    cRect Position;
+
+    tColor ColorBg;
+
+    bool FullFillBackground;
+    int DrawPortHeight;
+    int ScrollSize;
+    bool isShown;
+    bool isScrollingActive;
+
+    cOsd *Osd;
+
+    void CalculateDrawPortHeight(void);
+
+public:
+    cComplexContent(void);
+    cComplexContent(cOsd *osd, int scrollSize);
+    ~cComplexContent();
+
+    void SetOsd(cOsd *osd) { Osd = osd; }
+    void SetPosition(cRect position) { Position = position; }
+    void SetScrollSize(int scrollSize) { ScrollSize = scrollSize; }
+    void SetBGColor(tColor colorBg) { ColorBg = colorBg; }
+    void CreatePixmaps(bool fullFillBackground);
+
+    void Clear(void);
+
+    void AddText(const char *text, bool multiline, cRect position, tColor colorFg, tColor colorBg, cFont *font, int textWidth = 0, int textHeight = 0, int textAlignment = taDefault );
+    void AddImage(cImage *image, cRect position);
+    void AddImageWithFloatedText(cImage *image, int imageAlignment, const char *text, cRect textPos, tColor colorFg, tColor colorBg, cFont *font, int textWidth = 0, int textHeight = 0, int textAlignment = taDefault);
+    void AddRect(cRect position, tColor colorBg);
+    bool Scrollable(int height = 0);
+     int ScrollTotal(void);
+     int ScrollOffset(void);
+     int ScrollShown(void);
+    bool Scroll(bool Up, bool Page);
+    double ScrollbarSize(void);
+    void SetScrollingActive(bool active) { isScrollingActive = active; }
+
+    int Height(void){ return Position.Height(); }
+    int ContentHeight( bool Full );
+
+    int BottomContent(void);
+
+    int Top(void) { return Position.Top(); }
+    void Draw();
+    bool IsShown(void) { return isShown; }
+    bool IsScrollingActive(void) { return isScrollingActive; }
+};
diff --git a/config.c b/config.c
new file mode 100644
index 0000000..1018fab
--- /dev/null
+++ b/config.c
@@ -0,0 +1,861 @@
+#include "config.h"
+
+#include <vector>
+#include <algorithm>
+cFlatConfig::cFlatConfig(void) {
+    logoPath = "";
+    iconPath = "";
+
+    DecorCurrent = -1;
+    DecorIndex = 0;
+
+    ButtonsShowEmpty = true;
+
+    ChannelIconsShow = true;
+    SignalQualityShow = true;
+    SignalQualityUseColors = false;
+
+    DiskUsageShow = true;
+    DiskUsageShort = false;
+    DiskUsageFree = 1;
+
+    MenuContentFullSize = true;
+
+    ChannelFormatShow = true;
+    ChannelResolutionAspectShow = true;
+    ChannelSimpleAspectFormat = true;
+    ChannelBitrateShow = false;
+    ChannelBitrateShowCalcInterval = 20;
+    ChannelTimeLeft = 0;
+
+    RecordingResolutionAspectShow = true;
+    RecordingFormatShow = true;
+    RecordingSimpleAspectFormat = true;
+    TimeSecsScale = 1.0;
+
+    RecordingDimmOnPause = true;
+    RecordingDimmOnPauseDelay = 20;
+    RecordingDimmOnPauseOpaque = 240;
+
+    RecordingAdditionalInfoShow = true;
+    EpgAdditionalInfoShow = true;
+    EpgRerunsShow = true;
+
+    TopBarRecordingShow = true;
+    TopBarRecConflictsShow = true;
+    TopBarRecConflictsHigh = 2;
+
+    MenuItemIconsShow = true;
+    TopBarMenuIconShow = true;
+
+    MenuItemPadding = 3;
+    marginOsdVer = 5;
+    marginOsdHor = 5;
+    TopBarFontSize = 0.05;
+    MessageOffset = 50;
+
+    MessageColorPosition = 1;
+
+    MenuChannelView = 1;
+    MenuTimerView = 1;
+    MenuEventView = 1;
+    MenuRecordingView = 1;
+
+    MenuRecordingShowCount = 1;
+    MenuTimerShowCount = 1;
+    MenuChannelShowCount = 1;
+
+    MenuFullOsd = 0;
+
+    ShortRecordingCount = 0;
+
+    MenuItemRecordingClearPercent = 1;
+    MenuItemRecordingShowFolderDate = 1;
+    MenuItemParseTilde = 1;
+
+    ScrollerEnable = 1;
+    ScrollerStep = 2;
+    ScrollerDelay = 40;
+    ScrollerType = 0;
+
+    // Widgets
+    MainMenuWidgetsEnable = 1;
+    MainMenuItemScale = 0.5;
+
+    MainMenuWidgetDVBDevicesShow = true;
+    MainMenuWidgetDVBDevicesPosition = 2;
+    MainMenuWidgetDVBDevicesDiscardUnknown = true;
+    MainMenuWidgetDVBDevicesDiscardNotUsed = false;
+
+    MainMenuWidgetActiveTimerShow = true;
+    MainMenuWidgetActiveTimerPosition = 3;
+    MainMenuWidgetActiveTimerMaxCount = 2;
+    MainMenuWidgetActiveTimerHideEmpty = false;
+
+    MainMenuWidgetLastRecShow = false;
+    MainMenuWidgetLastRecPosition = 4;
+    MainMenuWidgetLastRecMaxCount = 3;
+
+    MainMenuWidgetTimerConflictsShow = false;
+    MainMenuWidgetTimerConflictsPosition = 5;
+    MainMenuWidgetTimerConflictsHideEmpty = false;
+
+    MainMenuWidgetSystemInfoShow = true;
+    MainMenuWidgetSystemInfoPosition = 6;
+
+    MainMenuWidgetSystemUpdatesShow = true;
+    MainMenuWidgetSystemUpdatesPosition = 7;
+    MainMenuWidgetSystemUpdatesHideIfZero = 0;
+
+    MainMenuWidgetTemperaturesShow = true;
+    MainMenuWidgetTemperaturesPosition = 8;
+
+    MainMenuWidgetCommandShow = true;
+    MainMenuWidgetCommandPosition = 9;
+
+    MainMenuWidgetWeatherShow = true;
+    MainMenuWidgetWeatherPosition = 1;
+    MainMenuWidgetWeatherDays = 5;
+    MainMenuWidgetWeatherType = 0;
+
+    ChannelWeatherShow = 1;
+    PlaybackWeatherShow = 1;
+    WeatherFontSize = 0.05;
+
+    TopBarFontClockScale = 0.01;
+    TopBarHideClockText = 0;
+
+    TVScraperChanInfoShowPoster = 1;
+    TVScraperChanInfoPosterSize = 0.01;
+
+    TVScraperReplayInfoShowPoster = 1;
+    TVScraperReplayInfoPosterSize = 0.01;
+
+    TVScraperEPGInfoShowPoster = 1;
+    TVScraperRecInfoShowPoster = 1;
+
+    TVScraperEPGInfoShowActors = 1;
+    TVScraperRecInfoShowActors = 1;
+
+    decorBorderChannelByTheme = 1;
+    decorBorderChannelTypeUser = 0;
+    decorBorderChannelSizeUser = 0;
+
+    decorBorderChannelEPGByTheme = 1;
+    decorBorderChannelEPGTypeUser = 0;
+    decorBorderChannelEPGSizeUser = 0;
+
+    decorBorderTopBarByTheme = 1;
+    decorBorderTopBarTypeUser = 0;
+    decorBorderTopBarSizeUser = 0;
+
+    decorBorderMessageByTheme = 1;
+    decorBorderMessageTypeUser = 0;
+    decorBorderMessageSizeUser = 0;
+
+    decorBorderVolumeByTheme = 1;
+    decorBorderVolumeTypeUser = 0;
+    decorBorderVolumeSizeUser = 0;
+
+    decorBorderTrackByTheme = 1;
+    decorBorderTrackTypeUser = 0;
+    decorBorderTrackSizeUser = 0;
+
+    decorBorderReplayByTheme = 1;
+    decorBorderReplayTypeUser = 0;
+    decorBorderReplaySizeUser = 0;
+
+    decorBorderMenuItemByTheme = 1;
+    decorBorderMenuItemTypeUser = 0;
+    decorBorderMenuItemSizeUser = 0;
+
+    decorBorderMenuContentHeadByTheme = 1;
+    decorBorderMenuContentHeadTypeUser = 0;
+    decorBorderMenuContentHeadSizeUser = 0;
+
+    decorBorderMenuContentByTheme = 1;
+    decorBorderMenuContentTypeUser = 0;
+    decorBorderMenuContentSizeUser = 0;
+
+    decorBorderButtonByTheme = 1;
+    decorBorderButtonTypeUser = 0;
+    decorBorderButtonSizeUser = 0;
+
+    decorProgressChannelByTheme = 1;
+    decorProgressChannelTypeUser = 0;
+    decorProgressChannelSizeUser = 20;
+
+    decorProgressVolumeByTheme = 1;
+    decorProgressVolumeTypeUser = 0;
+    decorProgressVolumeSizeUser = 20;
+
+    decorProgressMenuItemByTheme = 1;
+    decorProgressMenuItemTypeUser = 0;
+    decorProgressMenuItemSizeUser = 20;
+
+    decorProgressReplayByTheme = 1;
+    decorProgressReplayTypeUser = 0;
+    decorProgressReplaySizeUser = 40;
+
+    decorProgressSignalByTheme = 1;
+    decorProgressSignalTypeUser = 0;
+    decorProgressSignalSizeUser = 20;
+
+    decorScrollBarByTheme = 0;
+    decorScrollBarTypeTheme = 0;
+    decorScrollBarSizeTheme = 20;
+    decorScrollBarTypeUser = 0;
+    decorScrollBarSizeUser = 20;
+
+    ThemeCurrent = "";
+}
+
+cFlatConfig::~cFlatConfig(void) {
+}
+
+bool cFlatConfig::SetupParse(const char *Name, const char *Value) {
+    if      (strcmp(Name, "decorBorderChannelByTheme") == 0)            decorBorderChannelByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelTypeUser") == 0)           decorBorderChannelTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelSizeUser") == 0)           decorBorderChannelSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelEPGByTheme") == 0)         decorBorderChannelEPGByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelEPGTypeUser") == 0)        decorBorderChannelEPGTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelEPGSizeUser") == 0)        decorBorderChannelEPGSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderTopBarByTheme") == 0)             decorBorderTopBarByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderTopBarTypeUser") == 0)            decorBorderTopBarTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderTopBarSizeUser") == 0)            decorBorderTopBarSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMessageByTheme") == 0)            decorBorderMessageByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderMessageTypeUser") == 0)           decorBorderMessageTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMessageSizeUser") == 0)           decorBorderMessageSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderVolumeByTheme") == 0)             decorBorderVolumeByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderVolumeTypeUser") == 0)            decorBorderVolumeTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderVolumeSizeUser") == 0)            decorBorderVolumeSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderTrackByTheme") == 0)              decorBorderTrackByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderTrackTypeUser") == 0)             decorBorderTrackTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderTrackSizeUser") == 0)             decorBorderTrackSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderReplayByTheme") == 0)             decorBorderReplayByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderReplayTypeUser") == 0)            decorBorderReplayTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderReplaySizeUser") == 0)            decorBorderReplaySizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuItemByTheme") == 0)           decorBorderMenuItemByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuItemTypeUser") == 0)          decorBorderMenuItemTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuItemSizeUser") == 0)          decorBorderMenuItemSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentHeadByTheme") == 0)    decorBorderMenuContentHeadByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentHeadTypeUser") == 0)   decorBorderMenuContentHeadTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentHeadSizeUser") == 0)   decorBorderMenuContentHeadSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentByTheme") == 0)        decorBorderMenuContentByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentTypeUser") == 0)       decorBorderMenuContentTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentSizeUser") == 0)       decorBorderMenuContentSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderButtonByTheme") == 0)             decorBorderButtonByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderButtonTypeUser") == 0)            decorBorderButtonTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderButtonSizeUser") == 0)            decorBorderButtonSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressChannelByTheme") == 0)          decorProgressChannelByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressChannelTypeUser") == 0)         decorProgressChannelTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressChannelSizeUser") == 0)         decorProgressChannelSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressVolumeByTheme") == 0)           decorProgressVolumeByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressVolumeTypeUser") == 0)          decorProgressVolumeTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressVolumeSizeUser") == 0)          decorProgressVolumeSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressMenuItemByTheme") == 0)         decorProgressMenuItemByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressMenuItemTypeUser") == 0)        decorProgressMenuItemTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressMenuItemSizeUser") == 0)        decorProgressMenuItemSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressReplayByTheme") == 0)           decorProgressReplayByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressReplayTypeUser") == 0)          decorProgressReplayTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressReplaySizeUser") == 0)          decorProgressReplaySizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressSignalByTheme") == 0)           decorProgressSignalByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressSignalTypeUser") == 0)          decorProgressSignalTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressSignalSizeUser") == 0)          decorProgressSignalSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorScrollBarByTheme") == 0)                decorScrollBarByTheme = atoi(Value);
+    else if (strcmp(Name, "decorScrollBarTypeUser") == 0)               decorScrollBarTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorScrollBarSizeUser") == 0)               decorScrollBarSizeUser = atoi(Value);
+    else if (strcmp(Name, "ButtonsShowEmpty") == 0)                     ButtonsShowEmpty = atoi(Value);
+    else if (strcmp(Name, "ChannelIconsShow") == 0)                     ChannelIconsShow = atoi(Value);
+    else if (strcmp(Name, "SignalQualityShow") == 0)                    SignalQualityShow = atoi(Value);
+    else if (strcmp(Name, "DiskUsageShow") == 0)                        DiskUsageShow = atoi(Value);
+    else if (strcmp(Name, "MenuItemPadding") == 0)                      MenuItemPadding = atoi(Value);
+    else if (strcmp(Name, "marginOsdVer") == 0)                         marginOsdVer = atoi(Value);
+    else if (strcmp(Name, "marginOsdHor") == 0)                         marginOsdHor = atoi(Value);
+    else if (strcmp(Name, "MessageOffset") == 0)                        MessageOffset = atoi(Value);
+    else if (strcmp(Name, "TopBarFontSize") == 0)                       TopBarFontSize = atod(Value);
+    else if (strcmp(Name, "MenuContentFullSize") == 0)                  MenuContentFullSize = atoi(Value);
+    else if (strcmp(Name, "ChannelResolutionAspectShow") == 0)          ChannelResolutionAspectShow = atoi(Value);
+    else if (strcmp(Name, "ChannelFormatShow") == 0)                    ChannelFormatShow = atoi(Value);
+    else if (strcmp(Name, "RecordingResolutionAspectShow") == 0)        RecordingResolutionAspectShow = atoi(Value);
+    else if (strcmp(Name, "RecordingFormatShow") == 0)                  RecordingFormatShow = atoi(Value);
+    else if (strcmp(Name, "RecordingAdditionalInfoShow") == 0)          RecordingAdditionalInfoShow = atoi(Value);
+    else if (strcmp(Name, "EpgAdditionalInfoShow") == 0)                EpgAdditionalInfoShow = atoi(Value);
+    else if (strcmp(Name, "TopBarRecordingShow") == 0)                  TopBarRecordingShow = atoi(Value);
+    else if (strcmp(Name, "MenuItemIconsShow") == 0)                    MenuItemIconsShow = atoi(Value);
+    else if (strcmp(Name, "TopBarMenuIconShow") == 0)                   TopBarMenuIconShow = atoi(Value);
+    else if (strcmp(Name, "DecorIndex") == 0)                           DecorIndex = atoi(Value);
+    else if (strcmp(Name, "MainMenuItemScale") == 0)                    MainMenuItemScale = atod(Value);
+    else if (strcmp(Name, "MenuChannelView") == 0)                      MenuChannelView = atoi(Value);
+    else if (strcmp(Name, "MenuTimerView") == 0)                        MenuTimerView = atoi(Value);
+    else if (strcmp(Name, "MenuEventView") == 0)                        MenuEventView = atoi(Value);
+    else if (strcmp(Name, "MenuRecordingView") == 0)                    MenuRecordingView = atoi(Value);
+    else if (strcmp(Name, "ChannelSimpleAspectFormat") == 0)            ChannelSimpleAspectFormat = atoi(Value);
+    else if (strcmp(Name, "RecordingSimpleAspectFormat") == 0)          RecordingSimpleAspectFormat = atoi(Value);
+    else if (strcmp(Name, "MenuItemRecordingClearPercent") == 0)        MenuItemRecordingClearPercent = atoi(Value);
+    else if (strcmp(Name, "MenuItemRecordingShowFolderDate") == 0)      MenuItemRecordingShowFolderDate = atoi(Value);
+    else if (strcmp(Name, "MenuItemParseTilde") == 0)                   MenuItemParseTilde = atoi(Value);
+    else if (strcmp(Name, "TopBarRecConflictsShow") == 0)               TopBarRecConflictsShow = atoi(Value);
+    else if (strcmp(Name, "TopBarRecConflictsHigh") == 0)               TopBarRecConflictsHigh = atoi(Value);
+    else if (strcmp(Name, "SignalQualityUseColors") == 0)               SignalQualityUseColors = atoi(Value);
+    else if (strcmp(Name, "TVScraperChanInfoShowPoster") == 0)          TVScraperChanInfoShowPoster = atoi(Value);
+    else if (strcmp(Name, "TVScraperChanInfoPosterSize") == 0)          TVScraperChanInfoPosterSize = atod(Value);
+    else if (strcmp(Name, "TVScraperEPGInfoShowPoster") == 0)           TVScraperEPGInfoShowPoster = atoi(Value);
+    else if (strcmp(Name, "TVScraperRecInfoShowPoster") == 0)           TVScraperRecInfoShowPoster = atoi(Value);
+    else if (strcmp(Name, "EpgRerunsShow") == 0)                        EpgRerunsShow = atoi(Value);
+    else if (strcmp(Name, "TVScraperEPGInfoShowActors") == 0)           TVScraperEPGInfoShowActors = atoi(Value);
+    else if (strcmp(Name, "TVScraperRecInfoShowActors") == 0)           TVScraperRecInfoShowActors = atoi(Value);
+    else if (strcmp(Name, "MessageColorPosition") == 0)                 MessageColorPosition = atoi(Value);
+    else if (strcmp(Name, "ScrollerEnable") == 0)                       ScrollerEnable = atoi(Value);
+    else if (strcmp(Name, "ScrollerStep") == 0)                         ScrollerStep = atoi(Value);
+    else if (strcmp(Name, "ScrollerDelay") == 0)                        ScrollerDelay = atoi(Value);
+    else if (strcmp(Name, "ScrollerType") == 0)                         ScrollerType = atoi(Value);
+    else if (strcmp(Name, "DiskUsageShort") == 0)                       DiskUsageShort = atoi(Value);
+    else if (strcmp(Name, "DiskUsageFree") == 0)                        DiskUsageFree = atoi(Value);
+    else if (strcmp(Name, "ChannelBitrateShow") == 0)                   ChannelBitrateShow = atoi(Value);
+    else if (strcmp(Name, "TopBarFontClockScale") == 0)                 TopBarFontClockScale = atod(Value);
+    else if (strcmp(Name, "TimeSecsScale") == 0)                        TimeSecsScale = atod(Value);
+    else if (strcmp(Name, "ChannelBitrateShowCalcInterval") == 0)       ChannelBitrateShowCalcInterval = atoi(Value);
+    else if (strcmp(Name, "TopBarHideClockText") == 0)                  TopBarHideClockText = atoi(Value);
+    else if (strcmp(Name, "ChannelTimeLeft") == 0)                      ChannelTimeLeft = atoi(Value);
+    else if (strcmp(Name, "MenuFullOsd") == 0)                          MenuFullOsd = atoi(Value);
+    else if (strcmp(Name, "MenuRecordingShowCount") == 0)               MenuRecordingShowCount = atoi(Value);
+    else if (strcmp(Name, "MenuTimerShowCount") == 0)                   MenuTimerShowCount = atoi(Value);
+    else if (strcmp(Name, "MenuChannelShowCount") == 0)                 MenuChannelShowCount = atoi(Value);
+    else if (strcmp(Name, "ShortRecordingCount") == 0)                  ShortRecordingCount = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetsEnable") == 0)                MainMenuWidgetsEnable = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetDVBDevicesShow") == 0)         MainMenuWidgetDVBDevicesShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetDVBDevicesPosition") == 0)     MainMenuWidgetDVBDevicesPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetActiveTimerShow") == 0)        MainMenuWidgetActiveTimerShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetActiveTimerPosition") == 0)    MainMenuWidgetActiveTimerPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetActiveTimerMaxCount") == 0)    MainMenuWidgetActiveTimerMaxCount = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetActiveTimerHideEmpty") == 0)   MainMenuWidgetActiveTimerHideEmpty = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetLastRecShow") == 0)            MainMenuWidgetLastRecShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetLastRecPosition") == 0)        MainMenuWidgetLastRecPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetLastRecMaxCount") == 0)        MainMenuWidgetLastRecMaxCount = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTimerConflictsShow") == 0)     MainMenuWidgetTimerConflictsShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTimerConflictsPosition") == 0) MainMenuWidgetTimerConflictsPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTimerConflictsHideEmpty") == 0)MainMenuWidgetTimerConflictsHideEmpty = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemInfoShow") == 0)         MainMenuWidgetSystemInfoShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemInfoPosition") == 0)     MainMenuWidgetSystemInfoPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemUpdatesShow") == 0)      MainMenuWidgetSystemUpdatesShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemUpdatesPosition") == 0)  MainMenuWidgetSystemUpdatesPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemUpdatesHideIfZero") == 0)MainMenuWidgetSystemUpdatesHideIfZero = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTemperaturesShow") == 0)       MainMenuWidgetTemperaturesShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTemperaturesPosition") == 0)   MainMenuWidgetTemperaturesPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetCommandShow") == 0)            MainMenuWidgetCommandShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetCommandPosition") == 0)        MainMenuWidgetCommandPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetWeatherShow") == 0)            MainMenuWidgetWeatherShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetWeatherPosition") == 0)        MainMenuWidgetWeatherPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetWeatherDays") == 0)            MainMenuWidgetWeatherDays = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetWeatherType") == 0)            MainMenuWidgetWeatherType = atoi(Value);
+    else if (strcmp(Name, "ChannelWeatherShow") == 0)                   ChannelWeatherShow = atoi(Value);
+    else if (strcmp(Name, "PlaybackWeatherShow") == 0)                  PlaybackWeatherShow = atoi(Value);
+    else if (strcmp(Name, "WeatherFontSize") == 0)                      WeatherFontSize = atod(Value);
+    else if (strcmp(Name, "TVScraperReplayInfoShowPoster") == 0)        TVScraperReplayInfoShowPoster = atoi(Value);
+    else if (strcmp(Name, "TVScraperReplayInfoPosterSize") == 0)        TVScraperReplayInfoPosterSize = atod(Value);
+    else if (strcmp(Name, "MainMenuWidgetDVBDevicesDiscardUnknown") == 0)  MainMenuWidgetDVBDevicesDiscardUnknown = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetDVBDevicesDiscardNotUsed") == 0)  MainMenuWidgetDVBDevicesDiscardNotUsed = atoi(Value);
+    else if (strcmp(Name, "RecordingDimmOnPause") == 0)                 RecordingDimmOnPause = atoi(Value);
+    else if (strcmp(Name, "RecordingDimmOnPauseDelay") == 0)            RecordingDimmOnPauseDelay = atoi(Value);
+    else if (strcmp(Name, "RecordingDimmOnPauseOpaque") == 0)           RecordingDimmOnPauseOpaque = atoi(Value);
+
+    else return false;
+
+    return true;
+}
+
+void cFlatConfig::ThemeCheckAndInit(void) {
+    if( strcmp(Theme.Name(), *ThemeCurrent) != 0 ) {
+        dsyslog("skinflatplus: load theme: %s", *ThemeCurrent);
+        ThemeCurrent = Theme.Name();
+        ThemeInit();
+    }
+}
+
+void cFlatConfig::DecorCheckAndInit(void) {
+    if( DecorCurrent != DecorIndex ) {
+        DecorCurrent = DecorIndex;
+        DecorLoadCurrent();
+    }
+    if( decorBorderChannelByTheme ) {
+        decorBorderChannelType = decorBorderChannelTypeTheme;
+        decorBorderChannelSize = decorBorderChannelSizeTheme;
+    } else {
+        decorBorderChannelType = decorBorderChannelTypeUser;
+        decorBorderChannelSize = decorBorderChannelSizeUser;
+    }
+
+    if( decorBorderChannelEPGByTheme ) {
+        decorBorderChannelEPGType = decorBorderChannelEPGTypeTheme;
+        decorBorderChannelEPGSize = decorBorderChannelEPGSizeTheme;
+    } else {
+        decorBorderChannelEPGType = decorBorderChannelEPGTypeUser;
+        decorBorderChannelEPGSize = decorBorderChannelEPGSizeUser;
+    }
+
+    if( decorBorderTopBarByTheme ) {
+        decorBorderTopBarType = decorBorderTopBarTypeTheme;
+        decorBorderTopBarSize = decorBorderTopBarSizeTheme;
+    } else {
+        decorBorderTopBarType = decorBorderTopBarTypeUser;
+        decorBorderTopBarSize = decorBorderTopBarSizeUser;
+    }
+
+    if( decorBorderMessageByTheme ) {
+        decorBorderMessageType = decorBorderMessageTypeTheme;
+        decorBorderMessageSize = decorBorderMessageSizeTheme;
+    } else {
+        decorBorderMessageType = decorBorderMessageTypeUser;
+        decorBorderMessageSize = decorBorderMessageSizeUser;
+    }
+
+    if( decorBorderVolumeByTheme ) {
+        decorBorderVolumeType = decorBorderVolumeTypeTheme;
+        decorBorderVolumeSize = decorBorderVolumeSizeTheme;
+    } else {
+        decorBorderVolumeType = decorBorderVolumeTypeUser;
+        decorBorderVolumeSize = decorBorderVolumeSizeUser;
+    }
+
+    if( decorBorderTrackByTheme ) {
+        decorBorderTrackType = decorBorderTrackTypeTheme;
+        decorBorderTrackSize = decorBorderTrackSizeTheme;
+    } else {
+        decorBorderTrackType = decorBorderTrackTypeUser;
+        decorBorderTrackSize = decorBorderTrackSizeUser;
+    }
+
+    if( decorBorderReplayByTheme ) {
+        decorBorderReplayType = decorBorderReplayTypeTheme;
+        decorBorderReplaySize = decorBorderReplaySizeTheme;
+    } else {
+        decorBorderReplayType = decorBorderReplayTypeUser;
+        decorBorderReplaySize = decorBorderReplaySizeUser;
+    }
+
+    if( decorBorderMenuItemByTheme ) {
+        decorBorderMenuItemType = decorBorderMenuItemTypeTheme;
+        decorBorderMenuItemSize = decorBorderMenuItemSizeTheme;
+    } else {
+        decorBorderMenuItemType = decorBorderMenuItemTypeUser;
+        decorBorderMenuItemSize = decorBorderMenuItemSizeUser;
+    }
+
+    if( decorBorderMenuContentHeadByTheme ) {
+        decorBorderMenuContentHeadType = decorBorderMenuContentHeadTypeTheme;
+        decorBorderMenuContentHeadSize = decorBorderMenuContentHeadSizeTheme;
+    } else {
+        decorBorderMenuContentHeadType = decorBorderMenuContentHeadTypeUser;
+        decorBorderMenuContentHeadSize = decorBorderMenuContentHeadSizeUser;
+    }
+
+    if( decorBorderMenuContentByTheme ) {
+        decorBorderMenuContentType = decorBorderMenuContentTypeTheme;
+        decorBorderMenuContentSize = decorBorderMenuContentSizeTheme;
+    } else {
+        decorBorderMenuContentType = decorBorderMenuContentTypeUser;
+        decorBorderMenuContentSize = decorBorderMenuContentSizeUser;
+    }
+
+    if( decorBorderButtonByTheme ) {
+        decorBorderButtonType = decorBorderButtonTypeTheme;
+        decorBorderButtonSize = decorBorderButtonSizeTheme;
+    } else {
+        decorBorderButtonType = decorBorderButtonTypeUser;
+        decorBorderButtonSize = decorBorderButtonSizeUser;
+    }
+
+    if( decorProgressChannelByTheme ) {
+        decorProgressChannelType = decorProgressChannelTypeTheme;
+        decorProgressChannelSize = decorProgressChannelSizeTheme;
+    } else {
+        decorProgressChannelType = decorProgressChannelTypeUser;
+        decorProgressChannelSize = decorProgressChannelSizeUser;
+    }
+
+    if( decorProgressVolumeByTheme ) {
+        decorProgressVolumeType = decorProgressVolumeTypeTheme;
+        decorProgressVolumeSize = decorProgressVolumeSizeTheme;
+    } else {
+        decorProgressVolumeType = decorProgressVolumeTypeUser;
+        decorProgressVolumeSize = decorProgressVolumeSizeUser;
+    }
+
+    if( decorProgressMenuItemByTheme ) {
+        decorProgressMenuItemType = decorProgressMenuItemTypeTheme;
+        decorProgressMenuItemSize = decorProgressMenuItemSizeTheme;
+    } else {
+        decorProgressMenuItemType = decorProgressMenuItemTypeUser;
+        decorProgressMenuItemSize = decorProgressMenuItemSizeUser;
+    }
+
+    if( decorProgressReplayByTheme ) {
+        decorProgressReplayType = decorProgressReplayTypeTheme;
+        decorProgressReplaySize = decorProgressReplaySizeTheme;
+    } else {
+        decorProgressReplayType = decorProgressReplayTypeUser;
+        decorProgressReplaySize = decorProgressReplaySizeUser;
+    }
+
+    if( decorProgressSignalByTheme ) {
+        decorProgressSignalType = decorProgressSignalTypeTheme;
+        decorProgressSignalSize = decorProgressSignalSizeTheme;
+    } else {
+        decorProgressSignalType = decorProgressSignalTypeUser;
+        decorProgressSignalSize = decorProgressSignalSizeUser;
+    }
+
+    if( decorScrollBarByTheme ) {
+        decorScrollBarType = decorScrollBarTypeTheme;
+        decorScrollBarSize = decorScrollBarSizeTheme;
+    } else {
+        decorScrollBarType = decorScrollBarTypeUser;
+        decorScrollBarSize = decorScrollBarSizeUser;
+    }
+
+    if( decorBorderChannelType == 0 )
+        decorBorderChannelSize = 0;
+    if( decorBorderTopBarType == 0 )
+        decorBorderTopBarSize = 0;
+    if( decorBorderMessageType == 0 )
+        decorBorderMessageSize = 0;
+    if( decorBorderVolumeType == 0 )
+        decorBorderVolumeSize = 0;
+    if( decorBorderTrackType == 0 )
+        decorBorderTrackSize = 0;
+    if( decorBorderReplayType == 0 )
+        decorBorderReplaySize = 0;
+    if( decorBorderMenuItemType == 0 )
+        decorBorderMenuItemSize = 0;
+    if( decorBorderMenuContentHeadType == 0 )
+        decorBorderMenuContentHeadSize = 0;
+    if( decorBorderMenuContentType == 0 )
+        decorBorderMenuContentSize = 0;
+    if( decorBorderButtonType == 0 )
+        decorBorderButtonSize = 0;
+}
+
+void cFlatConfig::ThemeInit(void) {
+    decorBorderChannelFg = Theme.Color(clrChannelBorderFg);
+    decorBorderChannelBg = Theme.Color(clrChannelBorderBg);
+
+    decorBorderChannelEPGFg = Theme.Color(clrChannelEPGBorderFg);
+    decorBorderChannelEPGBg = Theme.Color(clrChannelEPGBorderBg);
+
+    decorBorderTopBarFg = Theme.Color(clrTopBarBorderFg);
+    decorBorderTopBarBg = Theme.Color(clrTopBarBorderBg);
+
+    decorBorderMessageFg = Theme.Color(clrMessageBorderFg);
+    decorBorderMessageBg = Theme.Color(clrMessageBorderBg);
+
+    decorBorderVolumeFg = Theme.Color(clrVolumeBorderFg);
+    decorBorderVolumeBg = Theme.Color(clrVolumeBorderBg);
+
+    decorBorderTrackFg = Theme.Color(clrTrackItemBorderFg);
+    decorBorderTrackBg = Theme.Color(clrTrackItemBorderBg);
+    decorBorderTrackCurFg = Theme.Color(clrTrackItemCurrentBorderFg);
+    decorBorderTrackCurBg = Theme.Color(clrTrackItemCurrentBorderBg);
+    decorBorderTrackSelFg = Theme.Color(clrTrackItemSelableBorderFg);
+    decorBorderTrackSelBg = Theme.Color(clrTrackItemSelableBorderBg);
+
+    decorBorderReplayFg = Theme.Color(clrReplayBorderFg);
+    decorBorderReplayBg = Theme.Color(clrReplayBorderBg);
+
+    decorBorderMenuItemFg = Theme.Color(clrMenuItemBorderFg);
+    decorBorderMenuItemBg = Theme.Color(clrMenuItemBorderBg);
+    decorBorderMenuItemSelFg = Theme.Color(clrMenuItemSelableBorderFg);
+    decorBorderMenuItemSelBg = Theme.Color(clrMenuItemSelableBorderBg);
+    decorBorderMenuItemCurFg = Theme.Color(clrMenuItemCurrentBorderFg);
+    decorBorderMenuItemCurBg = Theme.Color(clrMenuItemCurrentBorderBg);
+
+    decorBorderMenuContentHeadFg = Theme.Color(clrMenuContentHeadBorderFg);
+    decorBorderMenuContentHeadBg = Theme.Color(clrMenuContentHeadBorderBg);
+
+    decorBorderMenuContentFg = Theme.Color(clrMenuContentBorderFg);
+    decorBorderMenuContentBg = Theme.Color(clrMenuContentBorderBg);
+
+    decorBorderButtonFg = Theme.Color(clrButtonBorderFg);
+    decorBorderButtonBg = Theme.Color(clrButtonBorderBg);
+
+    decorProgressChannelFg = Theme.Color(clrChannelProgressFg);
+    decorProgressChannelBarFg = Theme.Color(clrChannelProgressBarFg);
+    decorProgressChannelBg = Theme.Color(clrChannelProgressBg);
+
+    decorProgressVolumeFg = Theme.Color(clrVolumeProgressFg);
+    decorProgressVolumeBarFg = Theme.Color(clrVolumeProgressBarFg);
+    decorProgressVolumeBg = Theme.Color(clrVolumeProgressBg);
+
+    decorProgressMenuItemFg = Theme.Color(clrMenuItemProgressFg);
+    decorProgressMenuItemBarFg = Theme.Color(clrMenuItemProgressBarFg);
+    decorProgressMenuItemBg = Theme.Color(clrMenuItemProgressBg);
+    decorProgressMenuItemCurFg = Theme.Color(clrMenuItemCurProgressFg);
+    decorProgressMenuItemCurBarFg = Theme.Color(clrMenuItemCurProgressBarFg);
+    decorProgressMenuItemCurBg = Theme.Color(clrMenuItemCurProgressBg);
+
+    decorProgressReplayFg = Theme.Color(clrReplayProgressFg);
+    decorProgressReplayBarFg = Theme.Color(clrReplayProgressBarFg);
+    decorProgressReplayBg = Theme.Color(clrReplayProgressBg);
+
+    decorProgressSignalFg = Theme.Color(clrChannelSignalProgressFg);
+    decorProgressSignalBarFg = Theme.Color(clrChannelSignalProgressBarFg);
+    decorProgressSignalBg = Theme.Color(clrChannelSignalProgressBg);
+
+    decorScrollBarFg = Theme.Color(clrScrollbarFg);
+    decorScrollBarBarFg = Theme.Color(clrScrollbarBarFg);
+    decorScrollBarBg = Theme.Color(clrScrollbarBg);
+}
+
+void cFlatConfig::Init(void) {
+    if( !strcmp(logoPath, "") ) {
+        logoPath = cString::sprintf("%s/logos/", PLUGINRESOURCEPATH);
+        dsyslog("skinflatplus: logoPath: %s", *logoPath);
+    }
+    if( !strcmp(iconPath, "") ) {
+        iconPath = cString::sprintf("%s/icons/", PLUGINRESOURCEPATH);
+        dsyslog("skinflatplus: iconPath: %s", *iconPath);
+    }
+
+    ThemeInit();
+    DecorCheckAndInit();
+}
+
+bool stringCompare( const std::string &left, const std::string &right ) {
+   for( std::string::const_iterator lit = left.begin(), rit = right.begin(); lit != left.end() && rit != right.end(); ++lit, ++rit )
+      if( tolower( *lit ) < tolower( *rit ) )
+         return true;
+      else if( tolower( *lit ) > tolower( *rit ) )
+         return false;
+   if( left.size() < right.size() )
+      return true;
+   return false;
+}
+
+bool pairCompareTimeStringDesc(const std::pair<time_t, std::string>&i, const std::pair<time_t, std::string>&j) {
+    return i.first < j.first;
+}
+
+bool pairCompareIntString(const std::pair<int, std::string>&i, const std::pair<int, std::string>&j) {
+    return i.first > j.first;
+}
+
+int roundUp(int numToRound, int multiple)
+{
+    if(multiple == 0)
+        return numToRound;
+    int remainder = numToRound % multiple;
+    if (remainder == 0)
+        return numToRound;
+    return numToRound + multiple - remainder;
+}
+
+void cFlatConfig::DecorDescriptions(cStringList &Decors) {
+    cString decorPath = cString::sprintf("%s/decors", PLUGINRESOURCEPATH);
+    std::vector<std::string> files;
+    Decors.Clear();
+
+    cReadDir d(decorPath);
+    struct dirent *e;
+    while ((e = d.Next()) != NULL) {
+        cString FileName = AddDirectory(decorPath, e->d_name);
+        files.push_back(*FileName);
+    }
+
+    std::sort(files.begin(), files.end(), stringCompare);
+    for (unsigned i = 0; i < files.size(); i++) {
+        std::string FileName = files.at(i);
+        cString Desc = DecorDescription(FileName.c_str());
+        Decors.Append(strdup(*Desc));
+    }
+}
+
+cString cFlatConfig::DecorDescription(cString File) {
+    cString description;
+    FILE *f = fopen(File, "r");
+    if( f ) {
+        int line = 0;
+        char *s;
+        cReadLine ReadLine;
+        while( (s = ReadLine.Read(f)) != NULL ) {
+            line++;
+            char *p = strchr(s, '#');
+            if (p)
+                *p = 0;
+            s = stripspace(skipspace(s));
+            if (!isempty(s)) {
+                char *n = s;
+                char *v = strchr(s, '=');
+                if (v) {
+                    *v++ = 0;
+                    n = stripspace(skipspace(n));
+                    v = stripspace(skipspace(v));
+                    if (strstr(n, "Description") == n) {
+                        description = strdup(v);
+                        break;
+                    }
+                }
+            }
+        }
+    }
+    return description;
+}
+
+void cFlatConfig::DecorLoadCurrent(void) {
+    cString decorPath = cString::sprintf("%s/decors", PLUGINRESOURCEPATH);
+    std::vector<std::string> files;
+
+    cReadDir d(decorPath);
+    struct dirent *e;
+    while ((e = d.Next()) != NULL) {
+        cString FileName = AddDirectory(decorPath, e->d_name);
+        files.push_back(*FileName);
+    }
+
+    std::sort(files.begin(), files.end(), stringCompare);
+    if( DecorIndex >= 0 && DecorIndex < (int)files.size() ) {
+        std::string FileName = files.at(DecorIndex);
+        DecorLoadFile( FileName.c_str() );
+    }
+}
+
+void cFlatConfig::DecorLoadFile(cString File) {
+    dsyslog("skinflatplus: load decor file: %s", *File);
+
+    FILE *f = fopen(File, "r");
+    if( f ) {
+        int line = 0;
+        char *s;
+        cReadLine ReadLine;
+        while( (s = ReadLine.Read(f)) != NULL ) {
+            line++;
+            char *p = strchr(s, '#');
+            if (p)
+                *p = 0;
+            s = stripspace(skipspace(s));
+            if (!isempty(s)) {
+                char *n = s;
+                char *v = strchr(s, '=');
+                if (v) {
+                    *v++ = 0;
+                    n = stripspace(skipspace(n));
+                    v = stripspace(skipspace(v));
+                    int value = atoi( v );
+                    if( strstr(n, "ChannelBorderType") == n ) {
+                        decorBorderChannelTypeTheme = value; continue; }
+                    if( strstr(n, "ChannelBorderSize") == n ) {
+                        decorBorderChannelSizeTheme = value; continue; }
+                    if( strstr(n, "ChannelEPGBorderType") == n ) {
+                        decorBorderChannelEPGTypeTheme = value; continue; }
+                    if( strstr(n, "ChannelEPGBorderSize") == n ) {
+                        decorBorderChannelEPGSizeTheme = value; continue; }
+                    if( strstr(n, "TopBarBorderType") == n ) {
+                        decorBorderTopBarTypeTheme = value; continue; }
+                    if( strstr(n, "TopBarBorderSize") == n ) {
+                        decorBorderTopBarSizeTheme = value; continue; }
+                    if( strstr(n, "MessageBorderType") == n ) {
+                        decorBorderMessageTypeTheme = value; continue; }
+                    if( strstr(n, "MessageBorderSize") == n ) {
+                        decorBorderMessageSizeTheme = value; continue; }
+                    if( strstr(n, "VolumeBorderType") == n ) {
+                        decorBorderVolumeTypeTheme = value; continue; }
+                    if( strstr(n, "VolumeBorderSize") == n ) {
+                        decorBorderVolumeSizeTheme = value; continue; }
+                    if( strstr(n, "TrackItemBorderType") == n ) {
+                        decorBorderTrackTypeTheme = value; continue; }
+                    if( strstr(n, "TrackItemBorderSize") == n ) {
+                        decorBorderTrackSizeTheme = value; continue; }
+                    if( strstr(n, "ReplayBorderType") == n ) {
+                        decorBorderReplayTypeTheme = value; continue; }
+                    if( strstr(n, "ReplayBorderSize") == n ) {
+                        decorBorderReplaySizeTheme = value; continue; }
+                    if( strstr(n, "MenuItemBorderType") == n ) {
+                        decorBorderMenuItemTypeTheme = value; continue; }
+                    if( strstr(n, "MenuItemBorderSize") == n ) {
+                        decorBorderMenuItemSizeTheme = value; continue; }
+                    if( strstr(n, "MenuContentHeadBorderType") == n ) {
+                        decorBorderMenuContentHeadTypeTheme = value; continue; }
+                    if( strstr(n, "MenuContentHeadBorderSize") == n ) {
+                        decorBorderMenuContentHeadSizeTheme = value; continue; }
+                    if( strstr(n, "MenuContentBorderType") == n ) {
+                        decorBorderMenuContentTypeTheme = value; continue; }
+                    if( strstr(n, "MenuContentBorderSize") == n ) {
+                        decorBorderMenuContentSizeTheme = value; continue; }
+                    if( strstr(n, "ButtonBorderType") == n ) {
+                        decorBorderButtonTypeTheme = value; continue; }
+                    if( strstr(n, "ButtonBorderSize") == n ) {
+                        decorBorderButtonSizeTheme = value; continue; }
+                    if( strstr(n, "ChannelProgressType") == n ) {
+                        decorProgressChannelTypeTheme = value; continue; }
+                    if( strstr(n, "ChannelProgressSize") == n ) {
+                        decorProgressChannelSizeTheme = value; continue; }
+                    if( strstr(n, "VolumeProgressType") == n ) {
+                        decorProgressVolumeTypeTheme = value; continue; }
+                    if( strstr(n, "VolumeProgressSize") == n ) {
+                        decorProgressVolumeSizeTheme = value; continue; }
+                    if( strstr(n, "MenuItemProgressType") == n ) {
+                        decorProgressMenuItemTypeTheme = value; continue; }
+                    if( strstr(n, "MenuItemProgressSize") == n ) {
+                        decorProgressMenuItemSizeTheme = value; continue; }
+                    if( strstr(n, "ReplayProgressType") == n ) {
+                        decorProgressReplayTypeTheme = value; continue; }
+                    if( strstr(n, "ReplayProgressSize") == n ) {
+                        decorProgressReplaySizeTheme = value; continue; }
+                    if( strstr(n, "ChannelSignalProgressType") == n ) {
+                        decorProgressSignalTypeTheme = value; continue; }
+                    if( strstr(n, "ChannelSignalProgressSize") == n ) {
+                        decorProgressSignalSizeTheme = value; continue; }
+                    if( strstr(n, "ScrollBarType") == n ) {
+                        decorScrollBarTypeTheme = value; continue; }
+                    if( strstr(n, "ScrollBarSize") == n ) {
+                        decorScrollBarSizeTheme = value; continue; }
+                }
+            }
+        }
+    }
+}
+
+void cFlatConfig::SetLogoPath(cString path) {
+    logoPath = checkSlashAtEnd(*path);
+}
+
+cString cFlatConfig::checkSlashAtEnd(std::string path) {
+    try {
+        if (!(path.at(path.size()-1) == '/'))
+            return cString::sprintf("%s/", path.c_str());
+    } catch (...) {return path.c_str();}
+    return path.c_str();
+}
+
+void cFlatConfig::Store(const char *Name, int Value, const char *Filename) {
+    Store(Name, cString::sprintf("%d", Value), Filename);
+}
+
+void cFlatConfig::Store(const char *Name, double &Value, const char *Filename) {
+    Store(Name, dtoa(Value), Filename);
+}
+
+void cFlatConfig::Store(const char *Name, const char *Value, const char *Filename) {
+    FILE *f = fopen(Filename, "a");
+    if(f == NULL)
+        return;
+    fprintf(f, "%s = %s\n", Name, Value);
+    fclose(f);
+}
+
+void cFlatConfig::GetConfigFiles(cStringList &Files) {
+    cString configsPath = cString::sprintf("%s/configs", cPlugin::ConfigDirectory(PLUGIN_NAME_I18N));
+    std::vector<std::string> files;
+    Files.Clear();
+
+    cReadDir d(configsPath);
+    struct dirent *e;
+    while ((e = d.Next()) != NULL) {
+        files.push_back(e->d_name);
+    }
+
+    std::sort(files.begin(), files.end(), stringCompare);
+    for (unsigned i = 0; i < files.size(); i++) {
+        std::string FileName = files.at(i);
+        Files.Append(strdup(FileName.c_str()));
+    }
+}
diff --git a/config.h b/config.h
new file mode 100644
index 0000000..0e3381e
--- /dev/null
+++ b/config.h
@@ -0,0 +1,319 @@
+#pragma once
+
+#include <string>
+#include <vector>
+
+#include <vdr/plugin.h>
+#include "flat.h"
+
+#define PLUGINCONFIGPATH (cPlugin::ConfigDirectory(PLUGIN_NAME_I18N))
+#define PLUGINRESOURCEPATH (cPlugin::ResourceDirectory(PLUGIN_NAME_I18N))
+#define WIDGETOUTPUTPATH "/tmp/skinflatplus/widgets"
+
+
+bool stringCompare( const std::string &left, const std::string &right );
+bool pairCompareTimeStringDesc(const std::pair<time_t, std::string>&i, const std::pair<time_t, std::string>&j);
+bool pairCompareIntString(const std::pair<int, std::string>&i, const std::pair<int, std::string>&j);
+int roundUp(int numToRound, int multiple);
+
+class cFlatConfig
+{
+    private:
+        cString checkSlashAtEnd(std::string path);
+
+        int DecorCurrent;
+    public:
+        cFlatConfig(void);
+        ~cFlatConfig(void);
+
+        void Init(void);
+        void SetLogoPath(cString path);
+        bool SetupParse(const char *Name, const char *Value);
+
+        void ThemeCheckAndInit(void);
+        void ThemeInit(void);
+        void DecorDescriptions(cStringList &Decors);
+        cString DecorDescription(cString File);
+        void DecorLoadFile(cString File);
+        void DecorLoadCurrent(void);
+        void DecorCheckAndInit(void);
+
+        void GetConfigFiles(cStringList &Files);
+    public:
+
+        cString ThemeCurrent;
+        cString logoPath;
+        cString iconPath;
+
+        // BORDER TYPES
+        // 0 = none
+        // 1 = rect
+        // 2 = round
+        // 3 = invert round
+        // 4 = rect + alpha blend
+        // 5 = round + alpha blend
+        // 6 = invert round + alpha blend
+
+        int decorBorderChannelByTheme;
+        int decorBorderChannelTypeTheme, decorBorderChannelSizeTheme;
+        int decorBorderChannelTypeUser, decorBorderChannelSizeUser;
+        int decorBorderChannelType, decorBorderChannelSize;
+        tColor decorBorderChannelFg, decorBorderChannelBg;
+
+        int decorBorderChannelEPGByTheme;
+        int decorBorderChannelEPGTypeTheme, decorBorderChannelEPGSizeTheme;
+        int decorBorderChannelEPGTypeUser, decorBorderChannelEPGSizeUser;
+        int decorBorderChannelEPGType, decorBorderChannelEPGSize;
+        tColor decorBorderChannelEPGFg, decorBorderChannelEPGBg;
+
+        int decorBorderTopBarByTheme;
+        int decorBorderTopBarTypeTheme, decorBorderTopBarSizeTheme;
+        int decorBorderTopBarTypeUser, decorBorderTopBarSizeUser;
+        int decorBorderTopBarType, decorBorderTopBarSize;
+        tColor decorBorderTopBarFg, decorBorderTopBarBg;
+
+        int decorBorderMessageByTheme;
+        int decorBorderMessageTypeTheme, decorBorderMessageSizeTheme;
+        int decorBorderMessageTypeUser, decorBorderMessageSizeUser;
+        int decorBorderMessageType, decorBorderMessageSize;
+        tColor decorBorderMessageFg, decorBorderMessageBg;
+
+        int decorBorderVolumeByTheme;
+        int decorBorderVolumeTypeTheme, decorBorderVolumeSizeTheme;
+        int decorBorderVolumeTypeUser, decorBorderVolumeSizeUser;
+        int decorBorderVolumeType, decorBorderVolumeSize;
+        tColor decorBorderVolumeFg, decorBorderVolumeBg;
+
+        int decorBorderTrackByTheme;
+        int decorBorderTrackTypeTheme, decorBorderTrackSizeTheme;
+        int decorBorderTrackTypeUser, decorBorderTrackSizeUser;
+        int decorBorderTrackType, decorBorderTrackSize;
+        tColor decorBorderTrackFg, decorBorderTrackBg;
+        tColor decorBorderTrackSelFg, decorBorderTrackSelBg;
+        tColor decorBorderTrackCurFg, decorBorderTrackCurBg;
+
+        int decorBorderReplayByTheme;
+        int decorBorderReplayTypeTheme, decorBorderReplaySizeTheme;
+        int decorBorderReplayTypeUser, decorBorderReplaySizeUser;
+        int decorBorderReplayType, decorBorderReplaySize;
+        tColor decorBorderReplayFg, decorBorderReplayBg;
+
+        int decorBorderMenuItemByTheme;
+        int decorBorderMenuItemTypeTheme, decorBorderMenuItemSizeTheme;
+        int decorBorderMenuItemTypeUser, decorBorderMenuItemSizeUser;
+        int decorBorderMenuItemType, decorBorderMenuItemSize;
+        tColor decorBorderMenuItemFg, decorBorderMenuItemBg;
+        tColor decorBorderMenuItemSelFg, decorBorderMenuItemSelBg;
+        tColor decorBorderMenuItemCurFg, decorBorderMenuItemCurBg;
+
+        int decorBorderMenuContentHeadByTheme;
+        int decorBorderMenuContentHeadTypeTheme, decorBorderMenuContentHeadSizeTheme;
+        int decorBorderMenuContentHeadTypeUser, decorBorderMenuContentHeadSizeUser;
+        int decorBorderMenuContentHeadType, decorBorderMenuContentHeadSize;
+        tColor decorBorderMenuContentHeadFg, decorBorderMenuContentHeadBg;
+
+        int decorBorderMenuContentByTheme;
+        int decorBorderMenuContentTypeTheme, decorBorderMenuContentSizeTheme;
+        int decorBorderMenuContentTypeUser, decorBorderMenuContentSizeUser;
+        int decorBorderMenuContentType, decorBorderMenuContentSize;
+        tColor decorBorderMenuContentFg, decorBorderMenuContentBg;
+
+        int decorBorderButtonByTheme;
+        int decorBorderButtonTypeTheme, decorBorderButtonSizeTheme;
+        int decorBorderButtonTypeUser, decorBorderButtonSizeUser;
+        int decorBorderButtonType, decorBorderButtonSize;
+        tColor decorBorderButtonFg, decorBorderButtonBg;
+
+        // PROGRESS TYPES
+        // 0 = small line + big line
+        // 1 = big line
+        // 2 = big line + outline
+        // 3 = small line + big line + dot
+        // 4 = big line + dot
+        // 5 = big line + outline + dot
+        // 6 = small line + dot
+        // 7 = outline + dot
+        // 8 = small line + big line + alpha blend
+        // 9 = big line + alpha blend
+        int decorProgressChannelByTheme;
+        int decorProgressChannelTypeTheme, decorProgressChannelSizeTheme;
+        int decorProgressChannelTypeUser, decorProgressChannelSizeUser;
+        int decorProgressChannelType, decorProgressChannelSize;
+        tColor decorProgressChannelFg, decorProgressChannelBarFg, decorProgressChannelBg;
+
+        int decorProgressVolumeByTheme;
+        int decorProgressVolumeTypeTheme, decorProgressVolumeSizeTheme;
+        int decorProgressVolumeTypeUser, decorProgressVolumeSizeUser;
+        int decorProgressVolumeType, decorProgressVolumeSize;
+        tColor decorProgressVolumeFg, decorProgressVolumeBarFg, decorProgressVolumeBg;
+
+        int decorProgressMenuItemByTheme;
+        int decorProgressMenuItemTypeTheme, decorProgressMenuItemSizeTheme;
+        int decorProgressMenuItemTypeUser, decorProgressMenuItemSizeUser;
+        int decorProgressMenuItemType, decorProgressMenuItemSize;
+        tColor decorProgressMenuItemFg, decorProgressMenuItemBarFg, decorProgressMenuItemBg;
+        tColor decorProgressMenuItemCurFg, decorProgressMenuItemCurBarFg, decorProgressMenuItemCurBg;
+
+        int decorProgressReplayByTheme;
+        int decorProgressReplayTypeTheme, decorProgressReplaySizeTheme;
+        int decorProgressReplayTypeUser, decorProgressReplaySizeUser;
+        int decorProgressReplayType, decorProgressReplaySize;
+        tColor decorProgressReplayFg, decorProgressReplayBarFg, decorProgressReplayBg;
+
+        int decorProgressSignalByTheme;
+        int decorProgressSignalTypeTheme, decorProgressSignalSizeTheme;
+        int decorProgressSignalTypeUser, decorProgressSignalSizeUser;
+        int decorProgressSignalType, decorProgressSignalSize;
+        tColor decorProgressSignalFg, decorProgressSignalBarFg, decorProgressSignalBg;
+
+        /* Types
+        * 0 = left line + rect bar
+        * 1 = left line + round bar
+        * 2 = middle line + rect bar
+        * 3 = middle line + round bar
+        * 4 = outline + rect bar
+        * 5 = outline + round bar
+        * 6 = rect bar
+        * 7 = round bar
+        */
+        int decorScrollBarByTheme;
+        int decorScrollBarTypeTheme, decorScrollBarSizeTheme;
+        int decorScrollBarTypeUser, decorScrollBarSizeUser;
+        int decorScrollBarType, decorScrollBarSize;
+        tColor decorScrollBarFg, decorScrollBarBarFg, decorScrollBarBg;
+
+        // General Config
+        int ButtonsShowEmpty;
+        int ChannelIconsShow;
+        int SignalQualityShow;
+        int SignalQualityUseColors;
+        int DiskUsageShow;
+        int DiskUsageShort;
+        // 0 = occupied
+        // 1 = free
+        int DiskUsageFree;
+
+        int MenuItemPadding;
+        int marginOsdVer, marginOsdHor;
+        int MessageOffset;
+
+        int MenuContentFullSize;
+        double TopBarFontSize;
+        double TopBarFontClockScale;
+
+        int ChannelResolutionAspectShow;
+        int ChannelFormatShow;
+        int ChannelSimpleAspectFormat;
+        int ChannelBitrateShow;
+        int ChannelBitrateShowCalcInterval; // hidden config
+        int ChannelTimeLeft;
+
+        int ChannelWeatherShow;
+        int PlaybackWeatherShow;
+        double WeatherFontSize;
+
+        int RecordingResolutionAspectShow;
+        int RecordingFormatShow;
+        int RecordingSimpleAspectFormat;
+        int RecordingAdditionalInfoShow;
+        double TimeSecsScale;
+
+        int RecordingDimmOnPause;
+        int RecordingDimmOnPauseDelay;
+        int RecordingDimmOnPauseOpaque;
+
+        int EpgRerunsShow;
+        int EpgAdditionalInfoShow;
+        int TopBarRecordingShow;
+        int TopBarRecConflictsShow;
+        int TopBarRecConflictsHigh;
+        int MenuItemIconsShow;
+        int TopBarMenuIconShow;
+        int TopBarHideClockText;
+
+        int MenuChannelView;
+        int MenuTimerView;
+        int MenuEventView;
+        int MenuRecordingView;
+        int MenuFullOsd;
+
+        int MenuRecordingShowCount;
+        int MenuTimerShowCount;
+        int MenuChannelShowCount;
+
+        // 0 = vertikal
+        // 1 = horizontal
+        int MessageColorPosition;
+
+        /* hidden configs (only in setup.conf, no osd menu) */
+        int MenuItemRecordingClearPercent;
+        int MenuItemRecordingShowFolderDate;    // 0 = disable, 1 = newest recording date, 2 = oldest recording date
+        int MenuItemParseTilde;
+        int ShortRecordingCount;
+        /* hidden configs (only in setup.conf, no osd menu) */
+
+        // Text Scroller
+        int ScrollerEnable;
+        int ScrollerStep;
+        int ScrollerDelay;
+        int ScrollerType;
+
+        // mainmenu widgets
+        int MainMenuWidgetsEnable;
+        double MainMenuItemScale;
+
+        int MainMenuWidgetDVBDevicesShow;
+        int MainMenuWidgetDVBDevicesPosition;
+        int MainMenuWidgetDVBDevicesDiscardUnknown;
+        int MainMenuWidgetDVBDevicesDiscardNotUsed;
+
+        int MainMenuWidgetActiveTimerShow;
+        int MainMenuWidgetActiveTimerPosition;
+        int MainMenuWidgetActiveTimerMaxCount;
+        int MainMenuWidgetActiveTimerHideEmpty;
+
+        int MainMenuWidgetLastRecShow;
+        int MainMenuWidgetLastRecPosition;
+        int MainMenuWidgetLastRecMaxCount;
+
+        int MainMenuWidgetTimerConflictsShow;
+        int MainMenuWidgetTimerConflictsPosition;
+        int MainMenuWidgetTimerConflictsHideEmpty;
+
+        int MainMenuWidgetSystemInfoShow;
+        int MainMenuWidgetSystemInfoPosition;
+
+        int MainMenuWidgetSystemUpdatesShow;
+        int MainMenuWidgetSystemUpdatesPosition;
+        int MainMenuWidgetSystemUpdatesHideIfZero;
+
+        int MainMenuWidgetTemperaturesShow;
+        int MainMenuWidgetTemperaturesPosition;
+
+        int MainMenuWidgetCommandShow;
+        int MainMenuWidgetCommandPosition;
+
+        int MainMenuWidgetWeatherShow;
+        int MainMenuWidgetWeatherPosition;
+        int MainMenuWidgetWeatherType;
+        int MainMenuWidgetWeatherDays;
+
+        // TVScraper
+        int TVScraperChanInfoShowPoster;
+        double TVScraperChanInfoPosterSize;
+
+        int TVScraperReplayInfoShowPoster;
+        double TVScraperReplayInfoPosterSize;
+
+        int TVScraperEPGInfoShowPoster;
+        int TVScraperRecInfoShowPoster;
+
+        int TVScraperEPGInfoShowActors;
+        int TVScraperRecInfoShowActors;
+
+        int DecorIndex;
+
+        void Store(const char *Name, const char *Value, const char *Filename);
+        void Store(const char *Name, int Value, const char *Filename);
+        void Store(const char *Name, double &Value, const char *Filename);
+};
diff --git a/configs/MV_default b/configs/MV_default
new file mode 100644
index 0000000..c4b59a5
--- /dev/null
+++ b/configs/MV_default
@@ -0,0 +1,145 @@
+decorBorderChannelByTheme = 1
+decorBorderChannelTypeUser = 1
+decorBorderChannelSizeUser = 5
+decorBorderChannelEPGByTheme = 1
+decorBorderChannelEPGTypeUser = 0
+decorBorderChannelEPGSizeUser = 0
+decorBorderTopBarByTheme = 1
+decorBorderTopBarTypeUser = 1
+decorBorderTopBarSizeUser = 5
+decorBorderMessageByTheme = 1
+decorBorderMessageTypeUser = 0
+decorBorderMessageSizeUser = 0
+decorBorderVolumeByTheme = 1
+decorBorderVolumeTypeUser = 0
+decorBorderVolumeSizeUser = 0
+decorBorderTrackByTheme = 1
+decorBorderTrackTypeUser = 0
+decorBorderTrackSizeUser = 0
+decorBorderReplayByTheme = 1
+decorBorderReplayTypeUser = 1
+decorBorderReplaySizeUser = 0
+decorBorderMenuItemByTheme = 1
+decorBorderMenuItemTypeUser = 1
+decorBorderMenuItemSizeUser = 2
+decorBorderMenuContentHeadByTheme = 1
+decorBorderMenuContentHeadTypeUser = 0
+decorBorderMenuContentHeadSizeUser = 0
+decorBorderMenuContentByTheme = 1
+decorBorderMenuContentTypeUser = 0
+decorBorderMenuContentSizeUser = 0
+decorBorderButtonByTheme = 1
+decorBorderButtonTypeUser = 0
+decorBorderButtonSizeUser = 5
+decorProgressChannelByTheme = 1
+decorProgressChannelTypeUser = 0
+decorProgressChannelSizeUser = 20
+decorProgressVolumeByTheme = 1
+decorProgressVolumeTypeUser = 0
+decorProgressVolumeSizeUser = 20
+decorProgressMenuItemByTheme = 1
+decorProgressMenuItemTypeUser = 0
+decorProgressMenuItemSizeUser = 20
+decorProgressReplayByTheme = 1
+decorProgressReplayTypeUser = 0
+decorProgressReplaySizeUser = 20
+decorProgressSignalByTheme = 1
+decorProgressSignalTypeUser = 0
+decorProgressSignalSizeUser = 20
+decorScrollBarByTheme = 1
+decorScrollBarTypeUser = 0
+decorScrollBarSizeUser = 15
+ButtonsShowEmpty = 0
+ChannelIconsShow = 1
+SignalQualityShow = 1
+DiskUsageShow = 2
+MenuItemPadding = 0
+marginOsdVer = 0
+marginOsdHor = 0
+TopBarFontSize = 0.050000
+MessageOffset = 0
+MenuContentFullSize = 0
+ChannelResolutionAspectShow = 1
+ChannelFormatShow = 1
+RecordingResolutionAspectShow = 1
+RecordingFormatShow = 1
+RecordingAdditionalInfoShow = 1
+EpgAdditionalInfoShow = 1
+TopBarRecordingShow = 1
+MenuItemIconsShow = 1
+TopBarMenuIconShow = 1
+DecorIndex = 18
+MainMenuItemScale = 0.550000
+MenuChannelView = 1
+MenuTimerView = 3
+MenuEventView = 1
+MenuRecordingView = 1
+ChannelSimpleAspectFormat = 1
+RecordingSimpleAspectFormat = 1
+MenuItemRecordingClearPercent = 1
+MenuItemRecordingShowFolderDate = 1
+MenuItemParseTilde = 1
+TopBarRecConflictsShow = 1
+TopBarRecConflictsHigh = 3
+SignalQualityUseColors = 1
+TVScraperChanInfoShowPoster = 1
+TVScraperChanInfoPosterSize = 0.010000
+TVScraperEPGInfoShowPoster = 1
+TVScraperRecInfoShowPoster = 1
+EpgRerunsShow = 0
+TVScraperEPGInfoShowActors = 1
+TVScraperRecInfoShowActors = 1
+MessageColorPosition = 1
+ScrollerEnable = 1
+ScrollerStep = 4
+ScrollerDelay = 25
+ScrollerType = 1
+DiskUsageShort = 0
+DiskUsageFree = 1
+TopBarFontClockScale = 0.012000
+TimeSecsScale = 0.007000
+ChannelBitrateShow = 0
+ChannelBitrateShowCalcInterval = 10
+TopBarHideClockText = 1
+ChannelTimeLeft = 0
+MenuFullOsd = 0
+MenuRecordingShowCount = 1
+MenuTimerShowCount = 1
+MenuChannelShowCount = 1
+ShortRecordingCount = 1
+MainMenuWidgetsEnable = 1
+MainMenuWidgetDVBDevicesShow = 1
+MainMenuWidgetDVBDevicesPosition = 2
+MainMenuWidgetActiveTimerShow = 0
+MainMenuWidgetActiveTimerPosition = 3
+MainMenuWidgetActiveTimerMaxCount = 2
+MainMenuWidgetActiveTimerHideEmpty = 1
+MainMenuWidgetLastRecShow = 0
+MainMenuWidgetLastRecPosition = 4
+MainMenuWidgetLastRecMaxCount = 3
+MainMenuWidgetTimerConflictsShow = 0
+MainMenuWidgetTimerConflictsPosition = 6
+MainMenuWidgetTimerConflictsHideEmpty = 0
+MainMenuWidgetSystemInfoShow = 1
+MainMenuWidgetSystemInfoPosition = 6
+MainMenuWidgetSystemUpdatesShow = 0
+MainMenuWidgetSystemUpdatesPosition = 7
+MainMenuWidgetSystemUpdatesHideIfZero = 0
+MainMenuWidgetTemperaturesShow = 1
+MainMenuWidgetTemperaturesPosition = 8
+MainMenuWidgetCommandShow = 0
+MainMenuWidgetCommandPosition = 9
+MainMenuWidgetWeatherShow = 1
+MainMenuWidgetWeatherPosition = 1
+MainMenuWidgetWeatherDays = 2
+MainMenuWidgetWeatherType = 1
+ChannelWeatherShow = 1
+PlaybackWeatherShow = 1
+WeatherFontSize = 0.055000
+TVScraperReplayInfoShowPoster = 1
+TVScraperReplayInfoPosterSize = 0.010000
+MainMenuWidgetDVBDevicesDiscardUnknown = 0
+MainMenuWidgetDVBDevicesDiscardNotUsed = 0
+RecordingDimmOnPause = 1
+RecordingDimmOnPauseDelay = 5
+RecordingDimmOnPauseOpaque = 200
diff --git a/configs/default b/configs/default
new file mode 100644
index 0000000..3285cce
--- /dev/null
+++ b/configs/default
@@ -0,0 +1,102 @@
+decorBorderChannelByTheme = 1
+decorBorderChannelTypeUser = 0
+decorBorderChannelSizeUser = 0
+decorBorderChannelEPGByTheme = 1
+decorBorderChannelEPGTypeUser = 0
+decorBorderChannelEPGSizeUser = 0
+decorBorderTopBarByTheme = 1
+decorBorderTopBarTypeUser = 0
+decorBorderTopBarSizeUser = 0
+decorBorderMessageByTheme = 1
+decorBorderMessageTypeUser = 0
+decorBorderMessageSizeUser = 0
+decorBorderVolumeByTheme = 1
+decorBorderVolumeTypeUser = 0
+decorBorderVolumeSizeUser = 0
+decorBorderTrackByTheme = 1
+decorBorderTrackTypeUser = 0
+decorBorderTrackSizeUser = 0
+decorBorderReplayByTheme = 1
+decorBorderReplayTypeUser = 0
+decorBorderReplaySizeUser = 0
+decorBorderMenuItemByTheme = 1
+decorBorderMenuItemTypeUser = 0
+decorBorderMenuItemSizeUser = 0
+decorBorderMenuContentHeadByTheme = 1
+decorBorderMenuContentHeadTypeUser = 0
+decorBorderMenuContentHeadSizeUser = 0
+decorBorderMenuContentByTheme = 1
+decorBorderMenuContentTypeUser = 0
+decorBorderMenuContentSizeUser = 0
+decorBorderButtonByTheme = 1
+decorBorderButtonTypeUser = 0
+decorBorderButtonSizeUser = 0
+decorProgressChannelByTheme = 1
+decorProgressChannelTypeUser = 0
+decorProgressChannelSizeUser = 20
+decorProgressVolumeByTheme = 1
+decorProgressVolumeTypeUser = 0
+decorProgressVolumeSizeUser = 20
+decorProgressMenuItemByTheme = 1
+decorProgressMenuItemTypeUser = 0
+decorProgressMenuItemSizeUser = 20
+decorProgressReplayByTheme = 1
+decorProgressReplayTypeUser = 0
+decorProgressReplaySizeUser = 40
+decorProgressSignalByTheme = 1
+decorProgressSignalTypeUser = 0
+decorProgressSignalSizeUser = 20
+decorScrollBarByTheme = 0
+decorScrollBarTypeUser = 0
+decorScrollBarSizeUser = 20
+ButtonsShowEmpty = 1
+ChannelIconsShow = 1
+SignalQualityShow = 1
+DiskUsageShow = 1
+MenuItemPadding = 3
+marginOsdVer = 5
+marginOsdHor = 5
+TopBarFontSize = 0.050000
+MessageOffset = 50
+MenuContentFullSize = 1
+ChannelResolutionAspectShow = 1
+ChannelFormatShow = 1
+RecordingResolutionAspectShow = 1
+RecordingFormatShow = 1
+RecordingAdditionalInfoShow = 1
+EpgAdditionalInfoShow = 1
+TopBarRecordingShow = 1
+MenuItemIconsShow = 1
+TopBarMenuIconShow = 1
+DecorIndex = 0
+MainMenuItemScale = 1.000000
+MenuChannelView = 1
+MenuTimerView = 1
+MenuEventView = 1
+MenuRecordingView = 1
+ChannelSimpleAspectFormat = 1
+RecordingSimpleAspectFormat = 1
+MenuItemRecordingClearPercent = 1
+MenuItemRecordingShowFolderDate = 1
+MenuItemParseTilde = 1
+TopBarRecConflictsShow = 1
+TopBarRecConflictsHigh = 2
+SignalQualityUseColors = 0
+TVScraperChanInfoShowPoster = 1
+TVScraperChanInfoPosterSize = 0.010000
+TVScraperEPGInfoShowPoster = 1
+TVScraperRecInfoShowPoster = 1
+EpgRerunsShow = 1
+TVScraperEPGInfoShowActors = 1
+TVScraperRecInfoShowActors = 1
+MessageColorPosition = 1
+ScrollerEnable = 1
+ScrollerStep = 2
+ScrollerDelay = 40
+ScrollerType = 0
+DiskUsageShort = 0
+DiskUsageFree = 1
+TopBarFontClockScale = 0.010000
+TimeSecsScale = 1.000000
+ChannelBitrateShow = 0
+ChannelBitrateShowCalcInterval = 20
diff --git a/configs/fnu_default b/configs/fnu_default
new file mode 100644
index 0000000..c2d60a2
--- /dev/null
+++ b/configs/fnu_default
@@ -0,0 +1,102 @@
+decorBorderChannelByTheme = 1
+decorBorderChannelTypeUser = 0
+decorBorderChannelSizeUser = 0
+decorBorderChannelEPGByTheme = 1
+decorBorderChannelEPGTypeUser = 0
+decorBorderChannelEPGSizeUser = 0
+decorBorderTopBarByTheme = 1
+decorBorderTopBarTypeUser = 0
+decorBorderTopBarSizeUser = 0
+decorBorderMessageByTheme = 1
+decorBorderMessageTypeUser = 0
+decorBorderMessageSizeUser = 0
+decorBorderVolumeByTheme = 1
+decorBorderVolumeTypeUser = 0
+decorBorderVolumeSizeUser = 0
+decorBorderTrackByTheme = 1
+decorBorderTrackTypeUser = 0
+decorBorderTrackSizeUser = 0
+decorBorderReplayByTheme = 1
+decorBorderReplayTypeUser = 0
+decorBorderReplaySizeUser = 0
+decorBorderMenuItemByTheme = 1
+decorBorderMenuItemTypeUser = 0
+decorBorderMenuItemSizeUser = 0
+decorBorderMenuContentHeadByTheme = 1
+decorBorderMenuContentHeadTypeUser = 0
+decorBorderMenuContentHeadSizeUser = 0
+decorBorderMenuContentByTheme = 1
+decorBorderMenuContentTypeUser = 0
+decorBorderMenuContentSizeUser = 0
+decorBorderButtonByTheme = 1
+decorBorderButtonTypeUser = 0
+decorBorderButtonSizeUser = 0
+decorProgressChannelByTheme = 1
+decorProgressChannelTypeUser = 0
+decorProgressChannelSizeUser = 20
+decorProgressVolumeByTheme = 1
+decorProgressVolumeTypeUser = 0
+decorProgressVolumeSizeUser = 20
+decorProgressMenuItemByTheme = 1
+decorProgressMenuItemTypeUser = 0
+decorProgressMenuItemSizeUser = 20
+decorProgressReplayByTheme = 1
+decorProgressReplayTypeUser = 0
+decorProgressReplaySizeUser = 40
+decorProgressSignalByTheme = 1
+decorProgressSignalTypeUser = 0
+decorProgressSignalSizeUser = 20
+decorScrollBarByTheme = 0
+decorScrollBarTypeUser = 7
+decorScrollBarSizeUser = 12
+ButtonsShowEmpty = 0
+ChannelIconsShow = 1
+SignalQualityShow = 1
+DiskUsageShow = 2
+MenuItemPadding = 3
+marginOsdVer = 5
+marginOsdHor = 5
+TopBarFontSize = 0.040000
+MessageOffset = 50
+MenuContentFullSize = 1
+ChannelResolutionAspectShow = 1
+ChannelFormatShow = 1
+RecordingResolutionAspectShow = 1
+RecordingFormatShow = 1
+RecordingAdditionalInfoShow = 1
+EpgAdditionalInfoShow = 1
+TopBarRecordingShow = 1
+MenuItemIconsShow = 1
+TopBarMenuIconShow = 1
+DecorIndex = 5
+MainMenuItemScale = 1.000000
+MenuChannelView = 2
+MenuTimerView = 1
+MenuEventView = 3
+MenuRecordingView = 3
+ChannelSimpleAspectFormat = 1
+RecordingSimpleAspectFormat = 1
+MenuItemRecordingClearPercent = 1
+MenuItemRecordingShowFolderDate = 1
+MenuItemParseTilde = 1
+TopBarRecConflictsShow = 1
+TopBarRecConflictsHigh = 2
+SignalQualityUseColors = 0
+TVScraperChanInfoShowPoster = 1
+TVScraperChanInfoPosterSize = 0.010000
+TVScraperEPGInfoShowPoster = 1
+TVScraperRecInfoShowPoster = 1
+EpgRerunsShow = 1
+TVScraperEPGInfoShowActors = 1
+TVScraperRecInfoShowActors = 1
+MessageColorPosition = 1
+ScrollerEnable = 1
+ScrollerStep = 2
+ScrollerDelay = 40
+ScrollerType = 0
+DiskUsageShort = 0
+DiskUsageFree = 1
+TopBarFontClockScale = 0.010000
+TimeSecsScale = 0.010000
+ChannelBitrateShow = 0
+ChannelBitrateShowCalcInterval = 20
diff --git a/configs/skin flat b/configs/skin flat
new file mode 100644
index 0000000..f3fac0c
--- /dev/null
+++ b/configs/skin flat	
@@ -0,0 +1,102 @@
+decorBorderChannelByTheme = 0
+decorBorderChannelTypeUser = 0
+decorBorderChannelSizeUser = 0
+decorBorderChannelEPGByTheme = 0
+decorBorderChannelEPGTypeUser = 0
+decorBorderChannelEPGSizeUser = 0
+decorBorderTopBarByTheme = 0
+decorBorderTopBarTypeUser = 0
+decorBorderTopBarSizeUser = 0
+decorBorderMessageByTheme = 0
+decorBorderMessageTypeUser = 0
+decorBorderMessageSizeUser = 0
+decorBorderVolumeByTheme = 0
+decorBorderVolumeTypeUser = 0
+decorBorderVolumeSizeUser = 0
+decorBorderTrackByTheme = 0
+decorBorderTrackTypeUser = 0
+decorBorderTrackSizeUser = 0
+decorBorderReplayByTheme = 0
+decorBorderReplayTypeUser = 0
+decorBorderReplaySizeUser = 0
+decorBorderMenuItemByTheme = 0
+decorBorderMenuItemTypeUser = 0
+decorBorderMenuItemSizeUser = 0
+decorBorderMenuContentHeadByTheme = 0
+decorBorderMenuContentHeadTypeUser = 0
+decorBorderMenuContentHeadSizeUser = 0
+decorBorderMenuContentByTheme = 0
+decorBorderMenuContentTypeUser = 0
+decorBorderMenuContentSizeUser = 0
+decorBorderButtonByTheme = 0
+decorBorderButtonTypeUser = 0
+decorBorderButtonSizeUser = 0
+decorProgressChannelByTheme = 0
+decorProgressChannelTypeUser = 0
+decorProgressChannelSizeUser = 20
+decorProgressVolumeByTheme = 0
+decorProgressVolumeTypeUser = 2
+decorProgressVolumeSizeUser = 20
+decorProgressMenuItemByTheme = 0
+decorProgressMenuItemTypeUser = 0
+decorProgressMenuItemSizeUser = 20
+decorProgressReplayByTheme = 1
+decorProgressReplayTypeUser = 0
+decorProgressReplaySizeUser = 40
+decorProgressSignalByTheme = 0
+decorProgressSignalTypeUser = 0
+decorProgressSignalSizeUser = 20
+decorScrollBarByTheme = 0
+decorScrollBarTypeUser = 0
+decorScrollBarSizeUser = 20
+ButtonsShowEmpty = 1
+ChannelIconsShow = 1
+SignalQualityShow = 0
+DiskUsageShow = 1
+MenuItemPadding = 3
+marginOsdVer = 5
+marginOsdHor = 5
+TopBarFontSize = 0.050000
+MessageOffset = 50
+MenuContentFullSize = 1
+ChannelResolutionAspectShow = 0
+ChannelFormatShow = 0
+RecordingResolutionAspectShow = 0
+RecordingFormatShow = 0
+RecordingAdditionalInfoShow = 0
+EpgAdditionalInfoShow = 0
+TopBarRecordingShow = 0
+MenuItemIconsShow = 0
+TopBarMenuIconShow = 0
+DecorIndex = 21
+MainMenuItemScale = 1.000000
+MenuChannelView = 0
+MenuTimerView = 0
+MenuEventView = 0
+MenuRecordingView = 0
+ChannelSimpleAspectFormat = 0
+RecordingSimpleAspectFormat = 0
+MenuItemRecordingClearPercent = 1
+MenuItemRecordingShowFolderDate = 1
+MenuItemParseTilde = 1
+TopBarRecConflictsShow = 0
+TopBarRecConflictsHigh = 2
+SignalQualityUseColors = 0
+TVScraperChanInfoShowPoster = 1
+TVScraperChanInfoPosterSize = 0.010000
+TVScraperEPGInfoShowPoster = 1
+TVScraperRecInfoShowPoster = 1
+EpgRerunsShow = 0
+TVScraperEPGInfoShowActors = 1
+TVScraperRecInfoShowActors = 1
+MessageColorPosition = 1
+ScrollerEnable = 0
+ScrollerStep = 2
+ScrollerDelay = 40
+ScrollerType = 0
+DiskUsageShort = 0
+DiskUsageFree = 1
+TopBarFontClockScale = 0.010000
+TimeSecsScale = 0.010000
+ChannelBitrateShow = 0
+ChannelBitrateShowCalcInterval = 20
diff --git a/contrib/eventsview-flatplus.sql b/contrib/eventsview-flatplus.sql
new file mode 100644
index 0000000..5d385a6
--- /dev/null
+++ b/contrib/eventsview-flatplus.sql
@@ -0,0 +1,11 @@
+CREATE VIEW eventsview as select sub.masterid as useid, cnt.eventid, cnt.channelid, cnt.source, GREATEST(cnt.updsp,sub.updsp,IFNULL(epi.updsp,0)) updsp, cnt.updflg, cnt.delflg, cnt.fileref, cnt.tableid, cnt.version, sub.title,
+case
+ when sub.shorttext is null then
+  case when sub.genre is null then '' else concat(sub.genre,' (', sub.country, ' ',sub.year, ')') end
+ else sub.shorttext
+end shorttext,
+cnt.starttime, cnt.duration, cnt.parentalrating, cnt.vps, sub.longdescription as description
+from
+ events cnt
+ inner join events sub on (case when cnt.useid = 0 then cnt.masterid else cnt.useid end = sub.masterid)
+ left outer join episodes epi on (sub.episode = epi.compname and sub.episodepart = epi.comppartname and sub.episodelang = epi.lang);
diff --git a/contrib/flatPlus-MVFonts-info.txt b/contrib/flatPlus-MVFonts-info.txt
new file mode 100644
index 0000000..5c08caa
--- /dev/null
+++ b/contrib/flatPlus-MVFonts-info.txt
@@ -0,0 +1,6 @@
+Schriften für flatPlus-MV_Themen
+
+Installationshinweise (Pfade evtl. Anpassen!):
+ - Schrift(en) VDR* nach /usr/share/fonts kopieren.
+   Die Schriften enthalten auch die VDR-Symbole.
+
diff --git a/contrib/flatPlus_MV_Update.sh b/contrib/flatPlus_MV_Update.sh
new file mode 100755
index 0000000..575512a
--- /dev/null
+++ b/contrib/flatPlus_MV_Update.sh
@@ -0,0 +1,125 @@
+#!/bin/bash
+
+# flatPlus_MV_Update.sh
+# Skript zum Updaten der MV-Themen
+
+# Ordner und Dateien
+ICONS="icons" ; THEMES="themes" ; DECORS="decors" ; CONFIGS="configs" ; PREVIEWS="previews"
+INFO=MV_Themes.INFO ; HIST=MV_Themes.HISTORY
+
+# Ordner für Direktupdate (Im aktuellem Filesystem); Beispiel für Gen2VDR
+THEMEDIR="/etc/vdr/themes"
+PLUGINDIR="/etc/vdr/plugins/skinflatplus"
+ICONDIR="${PLUGINDIR}/icons"
+DECORDIR="${PLUGINDIR}/decors"
+CONFIGSDIR="${PLUGINDIR}/configs"
+PREVIEWDIR="${PLUGINDIR}/previews"
+
+timedout_read() {
+  timeout=$1 ; varname=$2 ; old_tty_settings=`stty -g`
+  stty -icanon min 0 time ${timeout}0
+  read $varname
+  stty "$old_tty_settings"           # See man page for "stty."
+}
+
+_help() {
+  echo "-------------------------------"
+  echo "Falscher Parameter: $1"
+  echo "Aufruf mit $(basename $0)"
+  echo "Parameter -Silent    Keine Abfragen (Silent Update)."
+  echo "Parameter -Direct    Direktes Update der Daten im Filesysten (/etc/vdr)."
+  echo "                     !!! Speziell für Gen2VDR angepasst !!!"
+  exit
+}
+### Start
+# In Skriptordner wechseln (contrib)
+cd $(dirname $0)  # Skript im contrib-Ordner
+
+if [ ! -d "../$ICONS" -o ! -d "../$THEMES" -o ! -d "../$DECORS" ] ; then
+  echo "Falsches Verzeichnis! Skript muss im ./contrib-Ordner ausgeführt werden"
+  exit 1
+fi
+
+if [ -n "$1" ] ; then         # Parameter wurde übergeben
+  case $1 in
+    -Silent) SILENTUPDATE=1 ; echo "Silent Update! ($1)" ;;
+    -Direct) DIRECTUPDATE=1 ; echo "Direct Update! ($1)" ; unset SILENTUPDATE ;;
+    *)       _help
+  esac
+fi
+
+# MV_Themes Löschen!
+if [ -z "$SILENTUPDATE" ] ; then
+  echo "-------------------------------"
+  [ -n "$DIRECTUPDATE" ] && echo "ACHTUNG: Dateien in /etc werden gelöscht!"
+  echo "MV_Themen löschen? (J/n)"
+  timedout_read 5 TASTE
+  if [ "$TASTE" = "n" -o "$TASTE" = "N" ] ; then
+    echo "Skript abgebrochen. Es wurde nichts gelöscht!"
+    exit
+  fi
+fi
+
+if [ -n "$DIRECTUPDATE" ] ; then # Löschen im Dateisystem (/etc)
+  [ -d $ICONDIR ] && rm -rf $ICONDIR/MV*
+  [ -d $THEMEDIR ] && rm -f $THEMEDIR/flatPlus-MV*
+  [ -d $DECORDIR ] && rm -f $DECORDIR/*MV*
+  [ -d $CONFIGSDIR ] && rm -f $CONFIGSDIR/*MV*
+  [ -d $PREVIEWDIR ] && rm -f $PREVIEWDIR/*MV*
+else                             # Löschen im Source-Dir von skinflatPlus
+  rm -rf ../$ICONS/MV*
+  rm -f ../$THEMES/flatPlus-MV*
+  rm -f ../$DECORS/*MV*
+  rm -f ../$INFO ../$HIST
+  rm -f ../$CONFIGSDIR/*MV*
+  rm -f ../$PREVIEWDIR/*MV*
+fi
+
+echo "MV-Themen wurden entfernt."
+
+# MV_Themes neu laden
+if [ -z "$SILENTUPDATE" ] ; then
+  echo "-------------------------------"
+  echo "MV_Themes neu herunterladen und entpacken? (J/n)"
+  timedout_read 5 TASTE
+  [ "$TASTE" = "n" -o "$TASTE" = "N" ] && exit
+fi
+
+cd ..        # In das Source-Verzeichnis von SkinFlatPlus
+
+# Download
+[ -n "$DIRECTUPDATE" ] && cd /tmp
+wget https://dl.dropboxusercontent.com/u/1490505/VDR/skinflatplus/MV_Themes.tar.xz
+tar -xJf MV_Themes.tar.xz    # Entpacken
+rm -f MV_Themes.tar.xz       # Archiv entfernen
+
+if [ -n "$DIRECTUPDATE" ] ; then
+  cp -f ${THEMES}/flatPlus-MV* $THEMEDIR
+  cp -f ${DECORS}/*MV* $DECORDIR
+  cp -rf ${ICONS}/MV* $ICONDIR
+  cp -f ${CONFIGS}/*MV* $CONFIGSDIR
+  cp -f ${PREVIEWDIR}/*MV* $PREVIEWDIR
+fi
+
+echo "-------------------------------"
+echo "MV-Themen wurden aktualisiert."
+
+[ -n "$DIRECTUPDATE" ] && exit
+
+if [ -z "$SILENTUPDATE" ] ; then
+  echo "-------------------------------"
+  echo "MV_Themen installieren (make install)? (j/N)"
+  timedout_read 5 TASTE
+  if [ "$TASTE" = "j" -o "$TASTE" = "J" ] ; then
+    #cd ..
+    make install
+    echo "-------------------------------"
+    echo "MV-Themen wurden installiert."
+  fi
+else     # Silentupdate - Themen instalieren
+  make install
+fi
+
+echo "-------------------------------"
+
+exit
diff --git a/decors/10_rect_sml.decor b/decors/10_rect_sml.decor
new file mode 100644
index 0000000..6d3fdfe
--- /dev/null
+++ b/decors/10_rect_sml.decor
@@ -0,0 +1,73 @@
+Description = rect sml
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 1
+TopBarBorderSize = 5
+
+# Buttons
+ButtonBorderType = 1
+ButtonBorderSize = 5
+
+# Messages
+MessageBorderType = 1
+MessageBorderSize = 5
+
+# Display Channel
+ChannelBorderType = 1
+ChannelBorderSize = 5
+ChannelEPGBorderType = 1
+ChannelEPGBorderSize = 5
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuItemBorderType = 1
+MenuItemBorderSize = 5
+MenuContentHeadBorderType = 1
+MenuContentHeadBorderSize = 5
+MenuContentBorderType = 1
+MenuContentBorderSize = 5
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 1
+ReplayBorderSize = 5
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 1
+TrackItemBorderSize = 5
+
+# Display Volume
+VolumeBorderType = 1
+VolumeBorderSize = 5
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10
\ No newline at end of file
diff --git a/decors/11_rect_mid.decor b/decors/11_rect_mid.decor
new file mode 100644
index 0000000..2dc8c7b
--- /dev/null
+++ b/decors/11_rect_mid.decor
@@ -0,0 +1,73 @@
+Description = rect mid
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 1
+TopBarBorderSize = 10
+
+# Buttons
+ButtonBorderType = 1
+ButtonBorderSize = 10
+
+# Messages
+MessageBorderType = 1
+MessageBorderSize = 10
+
+# Display Channel
+ChannelBorderType = 1
+ChannelBorderSize = 10
+ChannelEPGBorderType = 1
+ChannelEPGBorderSize = 10
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 1
+MenuContentHeadBorderSize = 10
+MenuContentBorderType = 1
+MenuContentBorderSize = 10
+MenuItemBorderType = 1
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 1
+ReplayBorderSize = 10
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 1
+TrackItemBorderSize = 10
+
+# Display Volume
+VolumeBorderType = 1
+VolumeBorderSize = 10
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 15
\ No newline at end of file
diff --git a/decors/12_rect_big.decor b/decors/12_rect_big.decor
new file mode 100644
index 0000000..b6af43d
--- /dev/null
+++ b/decors/12_rect_big.decor
@@ -0,0 +1,73 @@
+Description = rect big
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 1
+TopBarBorderSize = 20
+
+# Buttons
+ButtonBorderType = 1
+ButtonBorderSize = 20
+
+# Messages
+MessageBorderType = 1
+MessageBorderSize = 20
+
+# Display Channel
+ChannelBorderType = 1
+ChannelBorderSize = 20
+ChannelEPGBorderType = 1
+ChannelEPGBorderSize = 20
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 1
+MenuContentHeadBorderSize = 20
+MenuContentBorderType = 1
+MenuContentBorderSize = 20
+MenuItemBorderType = 1
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 1
+ReplayBorderSize = 20
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 1
+TrackItemBorderSize = 20
+
+# Display Volume
+VolumeBorderType = 1
+VolumeBorderSize = 20
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 20
\ No newline at end of file
diff --git a/decors/20_round_sml.decor b/decors/20_round_sml.decor
new file mode 100644
index 0000000..bb753cf
--- /dev/null
+++ b/decors/20_round_sml.decor
@@ -0,0 +1,73 @@
+Description = round sml
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 2
+TopBarBorderSize = 5
+
+# Buttons
+ButtonBorderType = 2
+ButtonBorderSize = 5
+
+# Messages
+MessageBorderType = 2
+MessageBorderSize = 5
+
+# Display Channel
+ChannelBorderType = 2
+ChannelBorderSize = 5
+ChannelEPGBorderType = 2
+ChannelEPGBorderSize = 5
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 2
+MenuContentHeadBorderSize = 5
+MenuContentBorderType = 2
+MenuContentBorderSize = 5
+MenuItemBorderType = 2
+MenuItemBorderSize = 5
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 2
+ReplayBorderSize = 5
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 2
+TrackItemBorderSize = 5
+
+# Display Volume
+VolumeBorderType = 2
+VolumeBorderSize = 5
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 10
\ No newline at end of file
diff --git a/decors/21_round_mid.decor b/decors/21_round_mid.decor
new file mode 100644
index 0000000..c5fa200
--- /dev/null
+++ b/decors/21_round_mid.decor
@@ -0,0 +1,73 @@
+Description = round mid
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 2
+TopBarBorderSize = 10
+
+# Buttons
+ButtonBorderType = 2
+ButtonBorderSize = 10
+
+# Messages
+MessageBorderType = 2
+MessageBorderSize = 10
+
+# Display Channel
+ChannelBorderType = 2
+ChannelBorderSize = 10
+ChannelEPGBorderType = 2
+ChannelEPGBorderSize = 10
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 2
+MenuContentHeadBorderSize = 10
+MenuContentBorderType = 2
+MenuContentBorderSize = 10
+MenuItemBorderType = 2
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 2
+ReplayBorderSize = 10
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 2
+TrackItemBorderSize = 10
+
+# Display Volume
+VolumeBorderType = 2
+VolumeBorderSize = 10
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 15
\ No newline at end of file
diff --git a/decors/22_round_big.decor b/decors/22_round_big.decor
new file mode 100644
index 0000000..7ce7bbd
--- /dev/null
+++ b/decors/22_round_big.decor
@@ -0,0 +1,73 @@
+Description = round big
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 2
+TopBarBorderSize = 20
+
+# Buttons
+ButtonBorderType = 2
+ButtonBorderSize = 20
+
+# Messages
+MessageBorderType = 2
+MessageBorderSize = 20
+
+# Display Channel
+ChannelBorderType = 2
+ChannelBorderSize = 20
+ChannelEPGBorderType = 2
+ChannelEPGBorderSize = 20
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 2
+MenuContentHeadBorderSize = 20
+MenuContentBorderType = 2
+MenuContentBorderSize = 20
+MenuItemBorderType = 2
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 2
+ReplayBorderSize = 20
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 2
+TrackItemBorderSize = 20
+
+# Display Volume
+VolumeBorderType = 2
+VolumeBorderSize = 20
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 20
\ No newline at end of file
diff --git a/decors/30_invert-round_sml.decor b/decors/30_invert-round_sml.decor
new file mode 100644
index 0000000..4830553
--- /dev/null
+++ b/decors/30_invert-round_sml.decor
@@ -0,0 +1,73 @@
+Description = invert round sml
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 3
+TopBarBorderSize = 5
+
+# Buttons
+ButtonBorderType = 3
+ButtonBorderSize = 5
+
+# Messages
+MessageBorderType = 3
+MessageBorderSize = 5
+
+# Display Channel
+ChannelBorderType = 3
+ChannelBorderSize = 5
+ChannelEPGBorderType = 3
+ChannelEPGBorderSize = 5
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 3
+MenuContentHeadBorderSize = 5
+MenuContentBorderType = 3
+MenuContentBorderSize = 5
+MenuItemBorderType = 3
+MenuItemBorderSize = 5
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 3
+ReplayBorderSize = 5
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 3
+TrackItemBorderSize = 5
+
+# Display Volume
+VolumeBorderType = 3
+VolumeBorderSize = 5
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10
\ No newline at end of file
diff --git a/decors/31_invert-round_mid.decor b/decors/31_invert-round_mid.decor
new file mode 100644
index 0000000..f61d178
--- /dev/null
+++ b/decors/31_invert-round_mid.decor
@@ -0,0 +1,73 @@
+Description = invert round mid
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 3
+TopBarBorderSize = 10
+
+# Buttons
+ButtonBorderType = 3
+ButtonBorderSize = 10
+
+# Messages
+MessageBorderType = 3
+MessageBorderSize = 10
+
+# Display Channel
+ChannelBorderType = 3
+ChannelBorderSize = 10
+ChannelEPGBorderType = 3
+ChannelEPGBorderSize = 10
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 3
+MenuContentHeadBorderSize = 10
+MenuContentBorderType = 3
+MenuContentBorderSize = 10
+MenuItemBorderType = 3
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 3
+ReplayBorderSize = 10
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 3
+TrackItemBorderSize = 10
+
+# Display Volume
+VolumeBorderType = 3
+VolumeBorderSize = 10
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 15
\ No newline at end of file
diff --git a/decors/32_invert-round_big.decor b/decors/32_invert-round_big.decor
new file mode 100644
index 0000000..aa5db8d
--- /dev/null
+++ b/decors/32_invert-round_big.decor
@@ -0,0 +1,73 @@
+Description = invert round big
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 3
+TopBarBorderSize = 20
+
+# Buttons
+ButtonBorderType = 3
+ButtonBorderSize = 20
+
+# Messages
+MessageBorderType = 3
+MessageBorderSize = 20
+
+# Display Channel
+ChannelBorderType = 3
+ChannelBorderSize = 20
+ChannelEPGBorderType = 3
+ChannelEPGBorderSize = 20
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 3
+MenuContentHeadBorderSize = 20
+MenuContentBorderType = 3
+MenuContentBorderSize = 20
+MenuItemBorderType = 3
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 3
+ReplayBorderSize = 20
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 3
+TrackItemBorderSize = 20
+
+# Display Volume
+VolumeBorderType = 3
+VolumeBorderSize = 20
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 20
\ No newline at end of file
diff --git a/decors/40_rect-alpha_sml.decor b/decors/40_rect-alpha_sml.decor
new file mode 100644
index 0000000..832d2c6
--- /dev/null
+++ b/decors/40_rect-alpha_sml.decor
@@ -0,0 +1,73 @@
+Description = rect alpha sml
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 4
+TopBarBorderSize = 5
+
+# Buttons
+ButtonBorderType = 4
+ButtonBorderSize = 5
+
+# Messages
+MessageBorderType = 4
+MessageBorderSize = 5
+
+# Display Channel
+ChannelBorderType = 4
+ChannelBorderSize = 5
+ChannelEPGBorderType = 4
+ChannelEPGBorderSize = 5
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 4
+MenuContentHeadBorderSize = 5
+MenuContentBorderType = 4
+MenuContentBorderSize = 5
+MenuItemBorderType = 4
+MenuItemBorderSize = 5
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 4
+ReplayBorderSize = 5
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 4
+TrackItemBorderSize = 5
+
+# Display Volume
+VolumeBorderType = 4
+VolumeBorderSize = 5
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10
\ No newline at end of file
diff --git a/decors/41_rect-alpha_mid.decor b/decors/41_rect-alpha_mid.decor
new file mode 100644
index 0000000..92fd1bb
--- /dev/null
+++ b/decors/41_rect-alpha_mid.decor
@@ -0,0 +1,73 @@
+Description = rect alpha mid
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 4
+TopBarBorderSize = 10
+
+# Buttons
+ButtonBorderType = 4
+ButtonBorderSize = 10
+
+# Messages
+MessageBorderType = 4
+MessageBorderSize = 10
+
+# Display Channel
+ChannelBorderType = 4
+ChannelBorderSize = 10
+ChannelEPGBorderType = 4
+ChannelEPGBorderSize = 10
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 4
+MenuContentHeadBorderSize = 10
+MenuContentBorderType = 4
+MenuContentBorderSize = 10
+MenuItemBorderType = 4
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 4
+ReplayBorderSize = 10
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 4
+TrackItemBorderSize = 10
+
+# Display Volume
+VolumeBorderType = 4
+VolumeBorderSize = 10
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 15
\ No newline at end of file
diff --git a/decors/42_rect-alpha_big.decor b/decors/42_rect-alpha_big.decor
new file mode 100644
index 0000000..523fad2
--- /dev/null
+++ b/decors/42_rect-alpha_big.decor
@@ -0,0 +1,73 @@
+Description = rect alpha big
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 4
+TopBarBorderSize = 20
+
+# Buttons
+ButtonBorderType = 4
+ButtonBorderSize = 20
+
+# Messages
+MessageBorderType = 4
+MessageBorderSize = 20
+
+# Display Channel
+ChannelBorderType = 4
+ChannelBorderSize = 20
+ChannelEPGBorderType = 4
+ChannelEPGBorderSize = 20
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 4
+MenuContentHeadBorderSize = 20
+MenuContentBorderType = 4
+MenuContentBorderSize = 20
+MenuItemBorderType = 4
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 4
+ReplayBorderSize = 20
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 4
+TrackItemBorderSize = 20
+
+# Display Volume
+VolumeBorderType = 4
+VolumeBorderSize = 20
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 20
\ No newline at end of file
diff --git a/decors/50_round-alpha_sml.decor b/decors/50_round-alpha_sml.decor
new file mode 100644
index 0000000..396bad6
--- /dev/null
+++ b/decors/50_round-alpha_sml.decor
@@ -0,0 +1,73 @@
+Description = round alpha sml
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 5
+TopBarBorderSize = 5
+
+# Buttons
+ButtonBorderType = 5
+ButtonBorderSize = 5
+
+# Messages
+MessageBorderType = 5
+MessageBorderSize = 5
+
+# Display Channel
+ChannelBorderType = 5
+ChannelBorderSize = 5
+ChannelEPGBorderType = 5
+ChannelEPGBorderSize = 5
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 5
+MenuContentHeadBorderSize = 5
+MenuContentBorderType = 5
+MenuContentBorderSize = 5
+MenuItemBorderType = 5
+MenuItemBorderSize = 5
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 5
+ReplayBorderSize = 5
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 5
+TrackItemBorderSize = 5
+
+# Display Volume
+VolumeBorderType = 5
+VolumeBorderSize = 5
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 10
\ No newline at end of file
diff --git a/decors/51_round-alpha_mid.decor b/decors/51_round-alpha_mid.decor
new file mode 100644
index 0000000..73406ac
--- /dev/null
+++ b/decors/51_round-alpha_mid.decor
@@ -0,0 +1,73 @@
+Description = round alpha mid
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 5
+TopBarBorderSize = 10
+
+# Buttons
+ButtonBorderType = 5
+ButtonBorderSize = 10
+
+# Messages
+MessageBorderType = 5
+MessageBorderSize = 10
+
+# Display Channel
+ChannelBorderType = 5
+ChannelBorderSize = 10
+ChannelEPGBorderType = 5
+ChannelEPGBorderSize = 10
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 5
+MenuContentHeadBorderSize = 10
+MenuContentBorderType = 5
+MenuContentBorderSize = 10
+MenuItemBorderType = 5
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 5
+ReplayBorderSize = 10
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 5
+TrackItemBorderSize = 10
+
+# Display Volume
+VolumeBorderType = 5
+VolumeBorderSize = 10
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 15
\ No newline at end of file
diff --git a/decors/52_round-alpha_big.decor b/decors/52_round-alpha_big.decor
new file mode 100644
index 0000000..7735159
--- /dev/null
+++ b/decors/52_round-alpha_big.decor
@@ -0,0 +1,73 @@
+Description = round alpha big
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 5
+TopBarBorderSize = 20
+
+# Buttons
+ButtonBorderType = 5
+ButtonBorderSize = 20
+
+# Messages
+MessageBorderType = 5
+MessageBorderSize = 20
+
+# Display Channel
+ChannelBorderType = 5
+ChannelBorderSize = 20
+ChannelEPGBorderType = 5
+ChannelEPGBorderSize = 20
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 5
+MenuContentHeadBorderSize = 20
+MenuContentBorderType = 5
+MenuContentBorderSize = 20
+MenuItemBorderType = 5
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 5
+ReplayBorderSize = 20
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 5
+TrackItemBorderSize = 20
+
+# Display Volume
+VolumeBorderType = 5
+VolumeBorderSize = 20
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 3
+ScrollBarSize = 20
\ No newline at end of file
diff --git a/decors/60_invert-round-alpha_sml.decor b/decors/60_invert-round-alpha_sml.decor
new file mode 100644
index 0000000..9eb7470
--- /dev/null
+++ b/decors/60_invert-round-alpha_sml.decor
@@ -0,0 +1,73 @@
+Description = invert round alpha sml
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 6
+TopBarBorderSize = 5
+
+# Buttons
+ButtonBorderType = 6
+ButtonBorderSize = 5
+
+# Messages
+MessageBorderType = 6
+MessageBorderSize = 5
+
+# Display Channel
+ChannelBorderType = 6
+ChannelBorderSize = 5
+ChannelEPGBorderType = 6
+ChannelEPGBorderSize = 5
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 6
+MenuContentHeadBorderSize = 5
+MenuContentBorderType = 6
+MenuContentBorderSize = 5
+MenuItemBorderType = 6
+MenuItemBorderSize = 5
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 6
+ReplayBorderSize = 5
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 6
+TrackItemBorderSize = 5
+
+# Display Volume
+VolumeBorderType = 6
+VolumeBorderSize = 5
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10
\ No newline at end of file
diff --git a/decors/61_invert-round-alpha_mid.decor b/decors/61_invert-round-alpha_mid.decor
new file mode 100644
index 0000000..37fd729
--- /dev/null
+++ b/decors/61_invert-round-alpha_mid.decor
@@ -0,0 +1,73 @@
+Description = invert round alpha mid
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 6
+TopBarBorderSize = 10
+
+# Buttons
+ButtonBorderType = 6
+ButtonBorderSize = 10
+
+# Messages
+MessageBorderType = 6
+MessageBorderSize = 10
+
+# Display Channel
+ChannelBorderType = 6
+ChannelBorderSize = 10
+ChannelEPGBorderType = 6
+ChannelEPGBorderSize = 10
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 6
+MenuContentHeadBorderSize = 10
+MenuContentBorderType = 6
+MenuContentBorderSize = 10
+MenuItemBorderType = 6
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 6
+ReplayBorderSize = 10
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 6
+TrackItemBorderSize = 10
+
+# Display Volume
+VolumeBorderType = 6
+VolumeBorderSize = 10
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 15
\ No newline at end of file
diff --git a/decors/62_invert-round-alpha_big.decor b/decors/62_invert-round-alpha_big.decor
new file mode 100644
index 0000000..ea71a59
--- /dev/null
+++ b/decors/62_invert-round-alpha_big.decor
@@ -0,0 +1,73 @@
+Description = invert round alpha big
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 6
+TopBarBorderSize = 20
+
+# Buttons
+ButtonBorderType = 6
+ButtonBorderSize = 20
+
+# Messages
+MessageBorderType = 6
+MessageBorderSize = 20
+
+# Display Channel
+ChannelBorderType = 6
+ChannelBorderSize = 20
+ChannelEPGBorderType = 6
+ChannelEPGBorderSize = 20
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 6
+MenuContentHeadBorderSize = 20
+MenuContentBorderType = 6
+MenuContentBorderSize = 20
+MenuItemBorderType = 6
+MenuItemBorderSize = 10
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 6
+ReplayBorderSize = 20
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 6
+TrackItemBorderSize = 20
+
+# Display Volume
+VolumeBorderType = 6
+VolumeBorderSize = 20
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 20
\ No newline at end of file
diff --git a/decors/70_MV_rect_sml.decor b/decors/70_MV_rect_sml.decor
new file mode 100644
index 0000000..5a37bb3
--- /dev/null
+++ b/decors/70_MV_rect_sml.decor
@@ -0,0 +1,73 @@
+Description = MV rect sml
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 1
+TopBarBorderSize = 2
+
+# Buttons
+ButtonBorderType = 0
+ButtonBorderSize = 2
+
+# Messages
+MessageBorderType = 0
+MessageBorderSize = 2
+
+# Display Channel
+ChannelBorderType = 1
+ChannelBorderSize = 5
+ChannelEPGBorderType = 1
+ChannelEPGBorderSize = 5
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuItemBorderType = 1
+MenuItemBorderSize = 2
+MenuContentHeadBorderType = 1
+MenuContentHeadBorderSize = 2
+MenuContentBorderType = 1
+MenuContentBorderSize = 5
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 1
+ReplayBorderSize = 10
+ReplayProgressType = 0
+ReplayProgressSize = 20
+
+# Display Tracks
+TrackItemBorderType = 1
+TrackItemBorderSize = 5
+
+# Display Volume
+VolumeBorderType = 1
+VolumeBorderSize = 15
+VolumeProgressType = 0
+VolumeProgressSize = 25
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 15
diff --git a/decors/99_none.decor b/decors/99_none.decor
new file mode 100644
index 0000000..99143ec
--- /dev/null
+++ b/decors/99_none.decor
@@ -0,0 +1,73 @@
+Description = no borders
+# BORDER TYPES
+#   0 = none
+#   1 = rect
+#   2 = round
+#   3 = invert round
+#   4 = rect + alpha blend
+#   5 = round + alpha blend
+#   6 = invert round + alpha blend
+
+# PROGRESS TYPES
+#   0 = small line + big line
+#   1 = big line
+#   2 = big line + outline
+#   3 = small line + big line + dot
+#   4 = big line + dot
+#   5 = big line + outline + dot
+#   6 = small line + dot
+#   7 = outline + dot
+#   8 = small line + big line + alpha blend
+#   9 = big line + alpha blend
+
+# TopBar
+TopBarBorderType = 0
+TopBarBorderSize = 0
+
+# Buttons
+ButtonBorderType = 0
+ButtonBorderSize = 0
+
+# Messages
+MessageBorderType = 0
+MessageBorderSize = 0
+
+# Display Channel
+ChannelBorderType = 0
+ChannelBorderSize = 0
+ChannelEPGBorderType = 0
+ChannelEPGBorderSize = 0
+ChannelProgressType = 0
+ChannelProgressSize = 10
+ChannelSignalProgressType = 2
+ChannelSignalProgressSize = 10
+
+# Display Menu
+MenuContentHeadBorderType = 0
+MenuContentHeadBorderSize = 0
+MenuContentBorderType = 0
+MenuContentBorderSize = 0
+MenuItemBorderType = 0
+MenuItemBorderSize = 0
+MenuItemProgressType = 2
+MenuItemProgressSize = 20
+
+# Display Replay
+ReplayBorderType = 0
+ReplayBorderSize = 0
+ReplayProgressType = 0
+ReplayProgressSize = 32
+
+# Display Tracks
+TrackItemBorderType = 0
+TrackItemBorderSize = 0
+
+# Display Volume
+VolumeBorderType = 0
+VolumeBorderSize = 0
+VolumeProgressType = 3
+VolumeProgressSize = 10
+
+# Scrollbar
+ScrollBarType = 0
+ScrollBarSize = 10
\ No newline at end of file
diff --git a/displaychannel.c b/displaychannel.c
new file mode 100644
index 0000000..ee4ce3e
--- /dev/null
+++ b/displaychannel.c
@@ -0,0 +1,724 @@
+#include "displaychannel.h"
+#include "flat.h"
+
+cFlatDisplayChannel::cFlatDisplayChannel(bool WithInfo) : m_Receiver(NULL) {
+    if (firstDisplay) {
+        firstDisplay = false;
+        doOutput = false;
+        return;
+    } else
+        doOutput = true;
+
+    present = NULL;
+    channelName = "";
+    chanInfoTopPixmap = NULL;
+    chanInfoBottomPixmap = NULL;
+    chanLogoPixmap = NULL;
+    chanLogoBGPixmap = NULL;
+    chanIconsPixmap = NULL;
+    chanEpgImagesPixmap = NULL;
+
+    isGroup = false;
+    isRecording = false,
+    isRadioChannel = false;
+
+    screenWidth = lastScreenWidth = -1;
+    LastSignalStrength = -1;
+    LastSignalQuality = -1;
+
+    CreateFullOsd();
+    if ( !osd )
+        return;
+    TopBarCreate();
+    MessageCreate();
+
+    channelWidth = osdWidth - Config.decorBorderChannelSize*2;
+    channelHeight = osdHeight - Config.decorBorderChannelSize*2;
+    // von unten noch oben
+    // 2*EPG + 2*EPGsml
+    heightBottom = (fontHeight*2) + (fontSmlHeight*2) + marginItem; // Top, Buttom, Between
+    heightImageLogo = heightBottom;
+    if( Config.SignalQualityShow )
+        heightBottom += max(fontSmlHeight, (Config.decorProgressSignalSize*2) + marginItem) + marginItem;
+    else if( Config.ChannelIconsShow )
+        heightBottom += fontSmlHeight + marginItem;
+
+    int heightTop = fontHeight;
+
+    int height = heightBottom;
+    chanInfoBottomPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderChannelSize,
+        Config.decorBorderChannelSize+channelHeight - height, channelWidth, heightBottom));
+    chanInfoBottomPixmap->Fill( Theme.Color(clrChannelBg) );
+
+    chanIconsPixmap = osd->CreatePixmap(2, cRect(Config.decorBorderChannelSize,
+        Config.decorBorderChannelSize+channelHeight - height, channelWidth, heightBottom));
+    chanIconsPixmap->Fill( clrTransparent );
+
+    TVSLeft = 20 + Config.decorBorderChannelEPGSize;
+    TVSTop = topBarHeight + Config.decorBorderTopBarSize*2 + 20 + Config.decorBorderChannelEPGSize;
+    TVSWidth = osdWidth - 40 - Config.decorBorderChannelEPGSize*2;
+    TVSHeight = osdHeight - topBarHeight - heightBottom - 40 - Config.decorBorderChannelEPGSize*2;
+
+    chanEpgImagesPixmap = osd->CreatePixmap(2, cRect(TVSLeft, TVSTop, TVSWidth, TVSHeight));
+    chanEpgImagesPixmap->Fill( clrTransparent );
+
+    chanLogoBGPixmap = osd->CreatePixmap(2, cRect(Config.decorBorderChannelSize,
+        Config.decorBorderChannelSize+channelHeight - height, heightBottom*2, heightBottom*2));
+    chanLogoBGPixmap->Fill( clrTransparent );
+
+    chanLogoPixmap = osd->CreatePixmap(3, cRect(Config.decorBorderChannelSize,
+        Config.decorBorderChannelSize+channelHeight - height, heightBottom*2, heightBottom*2));
+    chanLogoPixmap->Fill( clrTransparent );
+
+    height += Config.decorProgressChannelSize + marginItem*2;
+    ProgressBarCreate(Config.decorBorderChannelSize, Config.decorBorderChannelSize+channelHeight - height + marginItem,
+        channelWidth, Config.decorProgressChannelSize, marginItem, 0,
+        Config.decorProgressChannelFg, Config.decorProgressChannelBarFg, Config.decorProgressChannelBg, Config.decorProgressChannelType, true);
+
+    ProgressBarDrawBgColor();
+
+    height += heightTop;
+    chanInfoTopPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderChannelSize,
+        Config.decorBorderChannelSize+channelHeight - height, channelWidth, heightTop));
+    chanInfoTopPixmap->Fill( clrTransparent );
+
+    scrollers.SetOsd(osd);
+    scrollers.SetScrollStep( Config.ScrollerStep );
+    scrollers.SetScrollDelay( Config.ScrollerDelay );
+    scrollers.SetScrollType( Config.ScrollerType );
+
+    bitrateVideo = bitrateAudio = bitrateDolby = 0.0;
+    m_Receiver = NULL;
+    /*
+    if( Config.ChannelBitrateShow ) {
+        const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
+        eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
+        if( channel ) {
+            m_Receiver = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0);
+            cDevice::ActualDevice()->AttachReceiver(m_Receiver);
+        }
+    }
+    */
+    if( Config.ChannelWeatherShow )
+        DrawWidgetWeather();
+
+    DecorBorderDraw(Config.decorBorderChannelSize, Config.decorBorderChannelSize+channelHeight - height,
+        channelWidth, heightTop + heightBottom + Config.decorProgressChannelSize+marginItem*2,
+        Config.decorBorderChannelSize, Config.decorBorderChannelType, Config.decorBorderChannelFg, Config.decorBorderChannelBg);
+}
+
+cFlatDisplayChannel::~cFlatDisplayChannel() {
+
+    if (m_Receiver != NULL ) {
+        m_Receiver->Deactivate();
+        delete m_Receiver;
+    }
+    if( !doOutput )
+        return;
+    if (osd) {
+        scrollers.Clear();
+
+        if( chanInfoTopPixmap )
+            osd->DestroyPixmap(chanInfoTopPixmap);
+        if( chanInfoBottomPixmap )
+            osd->DestroyPixmap(chanInfoBottomPixmap);
+        if( chanLogoPixmap )
+            osd->DestroyPixmap(chanLogoPixmap);
+        if( chanLogoBGPixmap )
+            osd->DestroyPixmap(chanLogoBGPixmap);
+        if( chanIconsPixmap )
+            osd->DestroyPixmap(chanIconsPixmap);
+        if( chanEpgImagesPixmap )
+            osd->DestroyPixmap(chanEpgImagesPixmap);
+    }
+}
+
+void cFlatDisplayChannel::SetChannel(const cChannel *Channel, int Number) {
+    if( !doOutput )
+        return;
+    cString channelNumber("");
+    isRecording = false;
+    chanIconsPixmap->Fill( clrTransparent );
+    lastScreenWidth = -1;
+
+    if (Channel) {
+        isRadioChannel = ((!Channel->Vpid())&&(Channel->Apid(0))) ? true : false;
+        isGroup = Channel->GroupSep();
+
+        channelName = Channel->Name();
+        if (!Channel->GroupSep())
+            channelNumber = cString::sprintf("%d%s", Channel->Number(), Number ? "-" : "");
+        else if (Number)
+            channelNumber = cString::sprintf("%d-", Number);
+
+        CurChannel = Channel;
+    } else
+        channelName = ChannelString(NULL, 0);
+
+    cString channelString = cString::sprintf("%s  %s", *channelNumber, *channelName);
+
+    chanInfoTopPixmap->Fill(Theme.Color(clrChannelBg));
+    chanInfoTopPixmap->DrawText(cPoint(50, 0), channelString, Theme.Color(clrChannelFontTitle), Theme.Color(clrChannelBg), font);
+
+    chanLogoPixmap->Fill(clrTransparent);
+    chanLogoBGPixmap->Fill(clrTransparent);
+    int imageHeight = heightImageLogo - marginItem*2;
+    int imageBGHeight = imageHeight;
+    int imageBGWidth = imageHeight;
+    int imageLeft = marginItem*2;
+    int imageTop = marginItem;
+    cImage *imgBG = imgLoader.LoadIcon("logo_background", imageHeight*1.34, imageHeight);
+    if( imgBG ) {
+        imageBGHeight = imgBG->Height();
+        imageBGWidth = imgBG->Width();
+        chanLogoBGPixmap->DrawImage( cPoint(imageLeft, imageTop), *imgBG );
+    }
+
+    cImage *img = imgLoader.LoadLogo(*channelName, imageBGWidth - 4, imageBGHeight - 4);
+    if( img ) {
+        imageTop = marginItem + (imageBGHeight - img->Height()) / 2;
+        imageLeft = marginItem*2 + (imageBGWidth - img->Width()) / 2;
+        chanLogoPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+    } else if( !isGroup ) { // draw default logo
+        if( isRadioChannel ) {
+            img = imgLoader.LoadIcon("radio", imageBGWidth - 10, imageBGHeight - 10);
+            if( img ) {
+                imageTop = marginItem + (imageHeight - img->Height()) / 2;
+                imageLeft = marginItem*2 + (imageBGWidth - img->Width()) / 2;
+                chanLogoPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+            }
+        } else {
+            img = imgLoader.LoadIcon("tv", imageBGWidth - 10, imageBGHeight - 10);
+            if( img ) {
+                imageTop = marginItem + (imageHeight - img->Height()) / 2;
+                imageLeft = marginItem*2 + (imageBGWidth - img->Width()) / 2;
+                chanLogoPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+            }
+        }
+    }
+}
+
+void cFlatDisplayChannel::ChannelIconsDraw(const cChannel *Channel, bool Resolution) {
+    if( !Resolution ) {
+        chanIconsPixmap->Fill( clrTransparent );
+    }
+
+    int width = fontSmlHeight;
+    int height = fontSmlHeight;
+    int top = heightBottom - height - marginItem;
+    int imageTop = 0;
+    cImage *img = NULL;
+
+    int left = channelWidth - width - marginItem*2;
+
+    if( Channel ) {
+        if (Channel->Ca()) {
+            img = imgLoader.LoadIcon("crypted", 999, height);
+            if( img ) {
+                imageTop = top + (height - img->Height())/2;
+                chanIconsPixmap->DrawImage(cPoint(left, imageTop), *img);
+                left -= marginItem*2;
+            }
+        } else {
+             img = imgLoader.LoadIcon("uncrypted", 999, height);
+            if( img ) {
+                imageTop = top + (height - img->Height())/2;
+                chanIconsPixmap->DrawImage(cPoint(left, imageTop), *img);
+                left -= marginItem*2;
+            }
+        }
+    }
+
+    if( Resolution && !isRadioChannel && screenWidth > 0 ) {
+        if( Config.ChannelResolutionAspectShow ) {     // Show Aspect
+            cString asp = "unknown_asp";                 // ???
+            if(Config.ChannelSimpleAspectFormat && screenWidth > 720) {
+                asp = "hd";                                // No aspect for HD
+            } else {
+                if( screenAspect == 4.0/3.0 )
+                    asp = "43";
+                else if( screenAspect == 16.0/9.0 )
+                    asp = "169";
+                else if( screenAspect == 20.0/11.0 )
+                    asp = "169w";
+                else if( screenAspect == 2.21 )
+                    asp = "221";
+            }
+            img = imgLoader.LoadIcon(*asp, 999, height);
+            if( img ) {
+                imageTop = top + (height - img->Height())/2;
+                left -= img->Width();
+                chanIconsPixmap->DrawImage(cPoint(left, imageTop), *img);
+                left -= marginItem*2;
+            }
+        }
+
+        if( Config.ChannelResolutionAspectShow ) {    // Show Resolution
+            cString res = "";
+
+            switch (screenWidth) {
+            case 1920:                        // 1920x1080 (HD1080 Full HDTV)
+                res = "1920x1080";
+                break;
+            case 1440:                        // 1440x1080 (HD1080 DV)
+                res = "1440x1080";
+                break;
+            case 1280:                        // 1280x720 (HD720)
+                res = "1280x720";
+                break;
+            case 960:                         // 960x720 (HD720 DV)
+                res = "960x720";
+                break;
+            case 704:                         // 704x576 (PAL)
+                res = "704x576";
+                break;
+            case 720:                         // 720x576 (PAL)
+                res = "720x576";
+                break;
+            case 544:                         // 544x576 (PAL)
+                res = "544x576";
+                break;
+            case 528:                         // 528x576 (PAL)
+                res = "528x576";
+                break;
+            case 480:                         // 480x576 (PAL SVCD)
+                res = "480x576";
+                break;
+            case 352:                         // 352x576 (PAL CVD)
+                res = "352x576";
+                break;
+            default:
+                res = "unknown_res";         // TODO: Add Log line of resolution
+                dsyslog("unkown resolution Width: %d Height: %d Aspect: %.2f\n", screenWidth, screenHeight, screenAspect);
+                break;
+            }
+
+            img = imgLoader.LoadIcon(*res, 999, height);
+            if( img ) {
+                imageTop = top + (height - img->Height())/2;
+                left -= img->Width();
+                chanIconsPixmap->DrawImage(cPoint(left, imageTop), *img);
+                left -= marginItem*2;
+            }
+        }
+        if( Config.ChannelFormatShow && !Config.ChannelSimpleAspectFormat) {
+            cString iconName("");      // Show Format
+            switch (screenWidth) {
+                case 1920:
+                case 1440:
+                case 1280:
+                    iconName = "hd";
+                    break;
+                case 720:
+                    iconName = "sd";
+                    break;
+                default:
+                    iconName = "sd";
+                    break;
+            }
+
+            img = imgLoader.LoadIcon(*iconName, 999, height);
+            if( img ) {
+                imageTop = top + (height - img->Height())/2;
+                left -= img->Width();
+                chanIconsPixmap->DrawImage(cPoint(left, imageTop), *img);
+                left -= marginItem*2;
+            }
+        }
+    }
+}
+
+void cFlatDisplayChannel::SetEvents(const cEvent *Present, const cEvent *Following) {
+    if( !doOutput )
+        return;
+
+    present = Present;
+    cString epgShort("");
+    cString epg("");
+
+    scrollers.Clear();
+
+    chanInfoBottomPixmap->Fill(Theme.Color(clrChannelBg));
+    chanIconsPixmap->Fill( clrTransparent );
+
+    bool isRec = false;
+    int RecWidth = fontSml->Width("REC");
+
+    int left = heightBottom * 1.34 + marginItem;
+
+    if( Present ) {
+        cString startTime = Present->GetTimeString();
+        cString endTime = Present->GetEndTimeString();
+
+        cString timeString = cString::sprintf("%s - %s", *startTime, *endTime);
+        int timeStringWidth = fontSml->Width(*timeString) + fontSml->Width("  ");
+
+        int epgWidth = font->Width(Present->Title()) + marginItem*2;
+        int epgShortWidth = fontSml->Width(Present->ShortText()) + marginItem*2;
+
+        if( Present->HasTimer() ) {
+            isRec = true;
+            epgWidth += marginItem + RecWidth;
+        }
+
+        int s = (int)(time(NULL) - Present->StartTime()) / 60;
+        int sleft = (Present->Duration() / 60) - s;
+
+        cString seen;
+        if( Config.ChannelTimeLeft == 0 )
+            seen = cString::sprintf("%d-/%d+ %d min", s, sleft, Present->Duration() / 60);
+        else if( Config.ChannelTimeLeft == 1 )
+            seen = cString::sprintf("%d- %d min", s, Present->Duration() / 60);
+        else if( Config.ChannelTimeLeft == 2 )
+            seen = cString::sprintf("%d+ %d min", sleft, Present->Duration() / 60);
+
+        int seenWidth = fontSml->Width(*seen) + fontSml->Width("  ");
+
+        epg = Present->Title();
+        epgShort = Present->ShortText();
+        int maxWidth = max(timeStringWidth, seenWidth);
+
+        chanInfoBottomPixmap->DrawText(cPoint(channelWidth - timeStringWidth - marginItem * 2, 0), *timeString,
+            Theme.Color(clrChannelFontEpg), Theme.Color(clrChannelBg), fontSml, timeStringWidth, 0, taRight);
+        chanInfoBottomPixmap->DrawText(cPoint(channelWidth - seenWidth - marginItem * 2, fontSmlHeight), *seen,
+                Theme.Color(clrChannelFontEpg), Theme.Color(clrChannelBg), fontSml, seenWidth, 0, taRight);
+
+        if( (epgWidth > channelWidth - left - maxWidth) && Config.ScrollerEnable ) {
+            scrollers.AddScroller(*epg, cRect(Config.decorBorderChannelSize + left, Config.decorBorderChannelSize+channelHeight - heightBottom, channelWidth - left - maxWidth, fontHeight), Theme.Color(clrChannelFontEpg), clrTransparent, font);
+        } else {
+            chanInfoBottomPixmap->DrawText(cPoint(left, 0), *epg, Theme.Color(clrChannelFontEpg), Theme.Color(clrChannelBg), font, channelWidth - left - maxWidth);
+        }
+
+        if( (epgShortWidth > channelWidth - left - maxWidth) && Config.ScrollerEnable ) {
+            scrollers.AddScroller(*epgShort, cRect(Config.decorBorderChannelSize + left, Config.decorBorderChannelSize+channelHeight - heightBottom + fontHeight, channelWidth - left - maxWidth, fontSmlHeight), Theme.Color(clrChannelFontEpg), clrTransparent, fontSml);
+        } else {
+            chanInfoBottomPixmap->DrawText(cPoint(left, fontHeight), *epgShort, Theme.Color(clrChannelFontEpg), Theme.Color(clrChannelBg), fontSml, channelWidth - left - maxWidth);
+        }
+
+        if( isRec ) {
+            chanInfoBottomPixmap->DrawText(cPoint(left + epgWidth + marginItem - RecWidth, 0), "REC",
+                Theme.Color(clrChannelRecordingPresentFg), Theme.Color(clrChannelRecordingPresentBg), fontSml);
+        }
+    }
+
+    if( Following ) {
+        isRec = false;
+        cString startTime = Following->GetTimeString();
+        cString endTime = Following->GetEndTimeString();
+
+        cString timeString = cString::sprintf("%s - %s", *startTime, *endTime);
+        int timeStringWidth = fontSml->Width(*timeString) + fontSml->Width("  ");
+
+        int epgWidth = font->Width(Following->Title()) + marginItem*2;
+        int epgShortWidth = fontSml->Width(Following->ShortText()) + marginItem*2;
+
+        if( Following->HasTimer() ) {
+            epgWidth += marginItem + RecWidth;
+            isRec = true;
+        }
+
+        cString dur = cString::sprintf("%d min", Following->Duration() / 60);
+        int durWidth = fontSml->Width(*dur) + fontSml->Width("  ");
+
+        int maxWidth = max(timeStringWidth, durWidth);
+
+        epg = Following->Title();
+        epgShort = Following->ShortText();
+
+        chanInfoBottomPixmap->DrawText(cPoint(channelWidth - timeStringWidth - marginItem * 2, fontHeight + fontSmlHeight), *timeString,
+                Theme.Color(clrChannelFontEpgFollow), Theme.Color(clrChannelBg), fontSml, timeStringWidth, 0, taRight);
+        chanInfoBottomPixmap->DrawText(cPoint(channelWidth - durWidth - marginItem * 2, fontHeight + fontSmlHeight*2), *dur,
+                Theme.Color(clrChannelFontEpgFollow), Theme.Color(clrChannelBg), fontSml, durWidth, 0, taRight);
+
+        if( (epgWidth > channelWidth - left - maxWidth) && Config.ScrollerEnable ) {
+            scrollers.AddScroller(*epg, cRect(Config.decorBorderChannelSize + left, Config.decorBorderChannelSize+channelHeight - heightBottom + fontHeight + fontSmlHeight, channelWidth - left - maxWidth, fontHeight), Theme.Color(clrChannelFontEpgFollow), clrTransparent, font);
+        } else {
+            chanInfoBottomPixmap->DrawText(cPoint(left, fontHeight + fontSmlHeight), *epg,
+                Theme.Color(clrChannelFontEpgFollow), Theme.Color(clrChannelBg), font, channelWidth - left - maxWidth);
+        }
+
+        if( (epgShortWidth > channelWidth - left - maxWidth) && Config.ScrollerEnable ) {
+            scrollers.AddScroller(*epgShort, cRect(Config.decorBorderChannelSize + left, Config.decorBorderChannelSize+channelHeight - heightBottom + fontHeight*2 + fontSmlHeight, channelWidth - left - maxWidth, fontSmlHeight), Theme.Color(clrChannelFontEpgFollow), clrTransparent, fontSml);
+        } else {
+            chanInfoBottomPixmap->DrawText(cPoint(left, fontHeight*2 + fontSmlHeight), *epgShort,
+                Theme.Color(clrChannelFontEpgFollow), Theme.Color(clrChannelBg), fontSml, channelWidth - left - maxWidth);
+        }
+
+        if( isRec ) {
+            chanInfoBottomPixmap->DrawText(cPoint(left + epgWidth + marginItem - RecWidth, fontHeight + fontSmlHeight), "REC",
+                Theme.Color(clrChannelRecordingFollowFg), Theme.Color(clrChannelRecordingFollowBg), fontSml);
+        }
+    }
+
+    if( Config.ChannelIconsShow && CurChannel ) {
+        ChannelIconsDraw(CurChannel, false);
+    }
+
+    std::string mediaPath;
+    int mediaWidth = 0;
+    int mediaHeight = 0;
+
+    // TVScraper
+    // first try scraper2vdr
+    static cPlugin *pScraper = cPluginManager::GetPlugin("scraper2vdr");
+    if( !pScraper ) // if it doesn't exit, try tvscraper
+        pScraper = cPluginManager::GetPlugin("tvscraper");
+    if( Config.TVScraperChanInfoShowPoster && pScraper ) {
+        ScraperGetPosterBanner call;
+        call.event = Present;
+        if (pScraper->Service("GetPosterBanner", &call)) {
+            if ((call.type == tSeries) && call.banner.path.size() > 0) {
+                mediaWidth = call.banner.width * Config.TVScraperChanInfoPosterSize*100;
+                mediaHeight = call.banner.height * Config.TVScraperChanInfoPosterSize*100;
+                mediaPath = call.banner.path;
+            } else if (call.type == tMovie && call.poster.path.size() > 0) {
+                mediaWidth = call.poster.width * 0.5 * Config.TVScraperChanInfoPosterSize*100;
+                mediaHeight = call.poster.height * 0.5 * Config.TVScraperChanInfoPosterSize*100;
+                mediaPath = call.poster.path;
+            }
+        }
+    }
+
+    chanEpgImagesPixmap->Fill(clrTransparent);
+    DecorBorderClearByFrom(BorderTVSPoster);
+    if( mediaPath.length() > 0 ) {
+        cImage *img = imgLoader.LoadFile(mediaPath.c_str(), mediaWidth, mediaHeight);
+        if( img ) {
+            chanEpgImagesPixmap->DrawImage(cPoint(0, 0), *img);
+
+            DecorBorderDraw(20 + Config.decorBorderChannelEPGSize, topBarHeight + Config.decorBorderTopBarSize*2 + 20 + Config.decorBorderChannelEPGSize, img->Width(), img->Height(),
+                Config.decorBorderChannelEPGSize, Config.decorBorderChannelEPGType, Config.decorBorderChannelEPGFg, Config.decorBorderChannelEPGBg, BorderTVSPoster);
+        }
+    }
+}
+
+void cFlatDisplayChannel::SetMessage(eMessageType Type, const char *Text) {
+    if( !doOutput )
+        return;
+
+    // Wenn es einen Text gibt, diesen Anzeigen ansonsten Message ausblenden
+    if( Text )
+        MessageSet(Type, Text);
+    else
+        MessageClear();
+}
+
+void cFlatDisplayChannel::SignalQualityDraw(void) {
+    int SignalStrength = cDevice::ActualDevice()->SignalStrength();
+    int SignalQuality = cDevice::ActualDevice()->SignalQuality();
+    int signalWidth = channelWidth / 2;
+
+    if( LastSignalStrength == SignalStrength && LastSignalQuality == SignalQuality )
+        return;
+    LastSignalStrength = SignalStrength;
+    LastSignalQuality = SignalQuality;
+
+    cFont *SignalFont = cFont::CreateFont(Setup.FontOsd, Config.decorProgressSignalSize);
+
+    int top = fontHeight*2 + fontSmlHeight*2 + marginItem;
+    top += max(fontSmlHeight, Config.decorProgressSignalSize) - (Config.decorProgressSignalSize*2) - marginItem;
+    int left = marginItem * 2;
+    int progressTop = fontHeight*2 + fontSmlHeight*2 + marginItem;
+    progressTop += max(fontSmlHeight, Config.decorProgressSignalSize) / 2 - Config.decorProgressSignalSize / 2;
+
+    progressTop = top;
+
+    chanInfoBottomPixmap->DrawText(cPoint(left, top), "STR",
+        Theme.Color(clrChannelSignalFont), Theme.Color(clrChannelBg), SignalFont);
+    int progressLeft = left + SignalFont->Width("STR") + SignalFont->Width(" ") + marginItem;
+    int progressWidth = signalWidth / 2 - progressLeft - marginItem;
+    ProgressBarDrawRaw(chanInfoBottomPixmap, chanInfoBottomPixmap, cRect(progressLeft, progressTop, progressWidth, Config.decorProgressSignalSize),
+        cRect(progressLeft, progressTop, progressWidth, Config.decorProgressSignalSize), SignalStrength, 100,
+        Config.decorProgressSignalFg, Config.decorProgressSignalBarFg, Config.decorProgressSignalBg, Config.decorProgressSignalType, false, Config.SignalQualityUseColors);
+
+    //left = signalWidth / 2 + marginItem;
+    top += Config.decorProgressSignalSize + marginItem;
+    progressTop = top;
+
+    chanInfoBottomPixmap->DrawText(cPoint(left, top), "SNR",
+        Theme.Color(clrChannelSignalFont), Theme.Color(clrChannelBg), SignalFont);
+    progressLeft = left + SignalFont->Width("STR") + SignalFont->Width(" ") + marginItem;
+    //progressWidth = signalWidth - progressLeft - marginItem;
+
+    ProgressBarDrawRaw(chanInfoBottomPixmap, chanInfoBottomPixmap, cRect(progressLeft, progressTop, progressWidth, Config.decorProgressSignalSize),
+        cRect(progressLeft, progressTop, progressWidth, Config.decorProgressSignalSize), SignalQuality, 100,
+        Config.decorProgressSignalFg, Config.decorProgressSignalBarFg, Config.decorProgressSignalBg, Config.decorProgressSignalType, false, Config.SignalQualityUseColors);
+
+    delete SignalFont;
+}
+
+void cFlatDisplayChannel::BitrateDraw(void) {
+    int top = fontHeight*2 + fontSmlHeight*2 + marginItem;
+    top += max(fontSmlHeight, Config.decorProgressSignalSize) - (Config.decorProgressSignalSize*2) - marginItem;
+    int left = marginItem * 2;
+    cFont *SignalFont = cFont::CreateFont(Setup.FontOsd, Config.decorProgressSignalSize);
+    cFont *BitrateFont = cFont::CreateFont(Setup.FontOsd, (Config.decorProgressSignalSize*2));
+
+    if( Config.SignalQualityShow ) {
+        int signalWidth = channelWidth / 2;
+        int progressLeft = left + SignalFont->Width("STR") + SignalFont->Width(" ") + marginItem;
+        int progressWidth = signalWidth / 2 - progressLeft - marginItem;
+
+        left = progressLeft + progressWidth + marginItem * 4;
+    }
+
+    cString bitrateText;
+    if( bitrateAudio > 0.0 || bitrateDolby == 0.0 )
+        bitrateText = cString::sprintf("Video: %.2f Mbit/s | Audio: %.2f kbit/s", bitrateVideo / 1000000.0, bitrateAudio / 1000.0 );
+    else
+        bitrateText = cString::sprintf("Video: %.2f Mbit/s | Dolby: %.2f kbit/s", bitrateVideo / 1000000.0, bitrateDolby / 1000.0 );
+
+    chanInfoBottomPixmap->DrawText(cPoint(left, top), bitrateText, Theme.Color(clrChannelSignalFont), Theme.Color(clrChannelBg), BitrateFont, BitrateFont->Width(bitrateText) * 2);
+
+    delete SignalFont;
+    delete BitrateFont;
+}
+
+// Indicates a channel switch on the given DVB device.
+// If ChannelNumber is 0, this is before the channel is being switched,
+// otherwise ChannelNumber is the number of the channel that has been switched to.
+// LiveView tells whether this channel switch is for live viewing.
+void cFlatDisplayChannel::ChannelSwitch(const cDevice * device, int channelNumber, bool liveView)
+{
+    if( liveView == false) // ChannelSwitch from EPG-Scan, streamdev or other?
+        return;
+    if( channelNumber == 0 ) { // before the channel is being switched -> remove receiver
+        if (m_Receiver) {
+            //dsyslog("ChannelSwitch: Receiver REMOVE");
+            m_Receiver->Deactivate();
+            DELETENULL(m_Receiver);
+        }
+        return;
+    }
+
+    // at this point we finally switch to a new channel on liveView
+    bitrateVideo = bitrateAudio = bitrateDolby = 0.0;
+    eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
+    const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
+
+    if( channel && Config.ChannelBitrateShow && doOutput ) {
+        if ( m_Receiver ) { // this should not be happen!!!
+            //dsyslog("ChannelSwitch: Receiver is still Active -> remove it!");
+            m_Receiver->Deactivate();
+            DELETENULL(m_Receiver);
+        }
+        //dsyslog("ChannelSwitch: Receiver ATTACH %d - %s", cDevice::PrimaryDevice()->DeviceNumber(), channel->Name());
+
+        m_Receiver = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0);
+        cDevice::ActualDevice()->AttachReceiver(m_Receiver);
+    }
+}
+
+void cFlatDisplayChannel::SetAudioTrack(int Index, const char * const *Tracks)
+{
+    bitrateVideo = bitrateAudio = bitrateDolby = 0.0;
+    eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
+    if( m_Receiver ) {
+        dsyslog("SetAudioTrack: Receiver remove");
+        m_Receiver->Deactivate();
+        DELETENULL(m_Receiver);
+    }
+
+    if( !Config.ChannelBitrateShow )
+        return;
+
+    const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
+    if( channel && doOutput ) {
+        dsyslog("SetAudioTrack: Receiver attach - %s", channel->Name());
+        m_Receiver = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0);
+        cDevice::ActualDevice()->AttachReceiver(m_Receiver);
+    }
+}
+
+void cFlatDisplayChannel::Flush(void) {
+    if( !doOutput )
+        return;
+
+    int Current = 0;
+    int Total = 0;
+    if( present ) {
+        time_t t = time(NULL);
+        if (t > present->StartTime())
+            Current = t - present->StartTime();
+        Total = present->Duration();
+        ProgressBarDraw(Current, Total);
+    }
+    if( Config.SignalQualityShow )
+        SignalQualityDraw();
+
+    if( Config.ChannelIconsShow ) {
+        cDevice::PrimaryDevice()->GetVideoSize(screenWidth, screenHeight, screenAspect);
+        if (screenWidth != lastScreenWidth) {
+            lastScreenWidth = screenWidth;
+            ChannelIconsDraw(CurChannel, true);
+        }
+    }
+
+    if( Config.ChannelBitrateShow && doOutput && !m_Receiver ) {
+        const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
+        eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
+        if( channel ) {
+            //dsyslog("ChannelSwitch: Receiver ATTACH %d - %s FLUSH", cDevice::PrimaryDevice()->DeviceNumber(), channel->Name());
+            m_Receiver = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0);
+            cDevice::ActualDevice()->AttachReceiver(m_Receiver);
+        }
+    }
+
+    if( Config.ChannelBitrateShow && m_Receiver ) {
+        bitrateVideo = m_Receiver->VideoBitrate();
+        bitrateAudio = m_Receiver->AudioBitrate();
+        bitrateDolby = m_Receiver->AC3Bitrate();
+
+        BitrateDraw();
+    }
+
+    TopBarUpdate();
+    osd->Flush();
+}
+
+void cFlatDisplayChannel::PreLoadImages(void) {
+    int height = (fontHeight*2) + (fontSmlHeight*2) + marginItem - marginItem*2;
+    imgLoader.LoadIcon("logo_background", height, height);
+    int imageBGHeight, imageBGWidth;
+    imageBGHeight = imageBGWidth = height;
+
+    cImage *imgBG = imgLoader.LoadIcon("logo_background", height*1.34, height);
+    if( imgBG ) {
+        imageBGHeight = imgBG->Height();
+        imageBGWidth = imgBG->Width();
+    }
+    imgLoader.LoadIcon("radio", imageBGWidth - 10, imageBGHeight - 10);
+    imgLoader.LoadIcon("tv", imageBGWidth - 10, imageBGHeight - 10);
+
+    int index = 0;
+    height = ((fontHeight*2) + (fontSmlHeight*2) + marginItem) - marginItem*2;
+    cImage *img = NULL;
+    for(cChannel *Channel = Channels.First(); Channel && index < LOGO_PRE_CACHE; Channel = Channels.Next(Channel) )
+    {
+        img = imgLoader.LoadLogo(Channel->Name(), imageBGWidth - 4, imageBGHeight - 4);
+        if( img )
+            index++;
+    }
+
+    height = max(fontSmlHeight, Config.decorProgressSignalSize);
+    imgLoader.LoadIcon("crypted", 999, height);
+    imgLoader.LoadIcon("uncrypted", 999, height);
+    imgLoader.LoadIcon("unknown_asp", 999, height);
+    imgLoader.LoadIcon("43", 999, height);
+    imgLoader.LoadIcon("169", 999, height);
+    imgLoader.LoadIcon("169w", 999, height);
+    imgLoader.LoadIcon("221", 999, height);
+    imgLoader.LoadIcon("1920x1080", 999, height);
+    imgLoader.LoadIcon("1440x1080", 999, height);
+    imgLoader.LoadIcon("1280x720", 999, height);
+    imgLoader.LoadIcon("960x720", 999, height);
+    imgLoader.LoadIcon("704x576", 999, height);
+    imgLoader.LoadIcon("720x576", 999, height);
+    imgLoader.LoadIcon("544x576", 999, height);
+    imgLoader.LoadIcon("528x576", 999, height);
+    imgLoader.LoadIcon("480x576", 999, height);
+    imgLoader.LoadIcon("352x576", 999, height);
+    imgLoader.LoadIcon("unknown_res", 999, height);
+    imgLoader.LoadIcon("hd", 999, height);
+    imgLoader.LoadIcon("sd", 999, height);
+}
diff --git a/displaychannel.h b/displaychannel.h
new file mode 100644
index 0000000..a83b0e5
--- /dev/null
+++ b/displaychannel.h
@@ -0,0 +1,63 @@
+#pragma once
+
+#include <vdr/status.h>
+#include "baserender.h"
+#include "flat.h"
+#include "services/scraper2vdr.h"
+#include "femonreceiver.h"
+
+class cFlatDisplayChannel : public cFlatBaseRender, public cSkinDisplayChannel, public cStatus {
+    private:
+        bool doOutput;
+        const cEvent *present;
+
+        int channelWidth, channelHeight;
+
+        cString channelName;
+        const cChannel *CurChannel;
+
+        cPixmap *chanInfoTopPixmap;
+        cPixmap *chanInfoBottomPixmap;
+        cPixmap *chanLogoPixmap;
+        cPixmap *chanLogoBGPixmap;
+        cPixmap *chanIconsPixmap;
+        cPixmap *chanEpgImagesPixmap;
+
+        int screenWidth, lastScreenWidth;
+        int screenHeight;
+        double screenAspect;
+        int heightBottom, heightImageLogo;
+
+        int LastSignalStrength, LastSignalQuality;
+
+        // femon
+        cFemonReceiver *m_Receiver;
+        double bitrateVideo, bitrateAudio, bitrateDolby;
+
+        // TVScraper
+        int TVSLeft, TVSTop, TVSWidth, TVSHeight;
+
+        // TextScroller
+        cTextScrollers scrollers;
+
+        bool isRecording;
+        bool isRadioChannel;
+        bool isGroup;
+
+        void SignalQualityDraw(void);
+        void BitrateDraw(void);
+        void ChannelIconsDraw(const cChannel *Channel, bool Resolution);
+
+    public:
+        cFlatDisplayChannel(bool WithInfo);
+        virtual ~cFlatDisplayChannel();
+        virtual void SetChannel(const cChannel *Channel, int Number);
+        virtual void SetEvents(const cEvent *Present, const cEvent *Following);
+        virtual void SetMessage(eMessageType Type, const char *Text);
+        virtual void Flush(void);
+
+        void PreLoadImages(void);
+    protected:
+        virtual void ChannelSwitch(const cDevice *device, int channelNumber, bool liveView);
+        virtual void SetAudioTrack(int Index, const char * const *Tracks);
+};
diff --git a/displaymenu.c b/displaymenu.c
new file mode 100644
index 0000000..b034c41
--- /dev/null
+++ b/displaymenu.c
@@ -0,0 +1,4924 @@
+#include "displaymenu.h"
+#include "services/scraper2vdr.h"
+#include "services/epgsearch.h"
+#include <utility>
+#include <fstream>
+#include <iostream>
+
+#ifndef VDRLOGO
+    #define VDRLOGO "vdrlogo_default"
+#endif
+
+#include "flat.h"
+#include "locale"
+
+/* Possible values of the stream content descriptor according to ETSI EN 300 468 */
+enum stream_content
+{
+	sc_reserved       = 0x00,
+	sc_video_MPEG2    = 0x01,
+	sc_audio_MP2      = 0x02, // MPEG 1 Layer 2 audio
+	sc_subtitle       = 0x03,
+	sc_audio_AC3      = 0x04,
+	sc_video_H264_AVC = 0x05,
+	sc_audio_HEAAC    = 0x06,
+};
+
+cFlatDisplayMenu::cFlatDisplayMenu(void) {
+    CreateFullOsd();
+    TopBarCreate();
+    ButtonsCreate();
+    MessageCreate();
+
+    VideoDiskUsageState = -1;
+
+    itemHeight = fontHeight + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+    itemChannelHeight = fontHeight + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+    itemTimerHeight = fontHeight + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+
+    scrollBarWidth = ScrollBarWidth() + marginItem;
+    scrollBarHeight = osdHeight - (topBarHeight + Config.decorBorderTopBarSize*2 + marginItem*3 + buttonsHeight + Config.decorBorderButtonSize*2);
+
+    scrollBarTop = topBarHeight + marginItem + Config.decorBorderTopBarSize*2;
+    isScrolling = false;
+    ShowEvent = false;
+    ShowRecording = false;
+    ShowText = false;
+
+    ItemEventLastChannelName = "";
+    RecFolder = "";
+    LastRecFolder = "";
+
+    menuItemLastHeight = 0;
+    MenuFullOsdIsDrawn = false;
+
+    menuWidth = osdWidth;
+    menuTop = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuItemSize;
+    menuPixmap = osd->CreatePixmap(1, cRect(0, menuTop, menuWidth, scrollBarHeight ));
+    //dsyslog("skinflatplus: menuPixmap left: %d top: %d width: %d height: %d", 0, menuTop, menuWidth, scrollBarHeight );
+
+    menuIconsBGPixmap = osd->CreatePixmap(2, cRect(0, menuTop, menuWidth, scrollBarHeight ));
+    //dsyslog("skinflatplus: menuIconsBGPixmap left: %d top: %d width: %d height: %d", 0, menuTop, menuWidth, scrollBarHeight );
+    menuIconsPixmap = osd->CreatePixmap(3, cRect(0, menuTop, menuWidth, scrollBarHeight ));
+    //dsyslog("skinflatplus: menuIconsPixmap left: %d top: %d width: %d height: %d", 0, menuTop, menuWidth, scrollBarHeight );
+
+    chLeft = Config.decorBorderMenuContentHeadSize;
+    chTop = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuContentHeadSize;
+    chWidth = menuWidth - Config.decorBorderMenuContentHeadSize*2;
+    chHeight = fontHeight + fontSmlHeight*2 + marginItem*2;
+    contentHeadPixmap = osd->CreatePixmap(1, cRect(chLeft, chTop, chWidth, chHeight));
+    //dsyslog("skinflatplus: contentHeadPixmap left: %d top: %d width: %d height: %d", chLeft, chTop, chWidth, chHeight );
+    contentHeadIconsPixmap = osd->CreatePixmap(2, cRect(chLeft, chTop, chWidth, chHeight));
+
+    scrollbarPixmap = osd->CreatePixmap(2, cRect(0, scrollBarTop, menuWidth, scrollBarHeight + buttonsHeight + Config.decorBorderButtonSize*2));
+    //dsyslog("skinflatplus: scrollbarPixmap left: %d top: %d width: %d height: %d", 0, scrollBarTop, menuWidth, scrollBarHeight + buttonsHeight + Config.decorBorderButtonSize*2 );
+
+    menuPixmap->Fill(clrTransparent);
+    menuIconsPixmap->Fill(clrTransparent);
+    menuIconsBGPixmap->Fill(clrTransparent);
+    scrollbarPixmap->Fill(clrTransparent);
+    contentHeadIconsPixmap->Fill(clrTransparent);
+
+    menuCategory = mcUndefined;
+
+    menuItemScroller.SetOsd(osd);
+    menuItemScroller.SetScrollStep( Config.ScrollerStep );
+    menuItemScroller.SetScrollDelay( Config.ScrollerDelay );
+    menuItemScroller.SetScrollType( Config.ScrollerType );
+
+}
+
+cFlatDisplayMenu::~cFlatDisplayMenu() {
+    menuItemScroller.Clear();
+
+    osd->DestroyPixmap(menuPixmap);
+    osd->DestroyPixmap(menuIconsPixmap);
+    osd->DestroyPixmap(menuIconsBGPixmap);
+    osd->DestroyPixmap(scrollbarPixmap);
+    osd->DestroyPixmap(contentHeadPixmap);
+    osd->DestroyPixmap(contentHeadIconsPixmap);
+}
+
+void cFlatDisplayMenu::SetMenuCategory(eMenuCategory MenuCategory) {
+    menuItemScroller.Clear();
+
+    ItemBorderClear();
+    isScrolling = false;
+    ShowRecording = ShowEvent = ShowText = false;
+
+    menuCategory = MenuCategory;
+
+    if( menuCategory == mcChannel ) {
+        if( Config.MenuChannelView == 0 || Config.MenuChannelView == 1 || Config.MenuChannelView == 2 )
+            itemChannelHeight = fontHeight + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+        else if( Config.MenuChannelView == 3 || Config.MenuChannelView == 4 )
+            itemChannelHeight = fontHeight + fontSmlHeight + marginItem + Config.decorProgressMenuItemSize + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+    } else if( menuCategory == mcTimer ) {
+        if( Config.MenuTimerView == 0 || Config.MenuTimerView == 1 )
+            itemTimerHeight = fontHeight + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+        else if( Config.MenuTimerView == 2 || Config.MenuTimerView == 3 )
+            itemTimerHeight = fontHeight + fontSmlHeight + marginItem + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+    } else if( menuCategory == mcSchedule || menuCategory == mcScheduleNow || menuCategory == mcScheduleNext ) {
+        if( Config.MenuEventView == 0 || Config.MenuEventView == 1 )
+            itemEventHeight = fontHeight + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+        else if( Config.MenuEventView == 2 || Config.MenuEventView == 3 )
+            itemEventHeight = fontHeight + fontSmlHeight + marginItem*2 + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2 + Config.decorProgressMenuItemSize/2;
+    } else if( menuCategory == mcRecording ) {
+        if( Config.MenuRecordingView == 0 || Config.MenuRecordingView == 1 )
+            itemRecordingHeight = fontHeight + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+        else if( Config.MenuRecordingView == 2 || Config.MenuRecordingView == 3 )
+            itemRecordingHeight = fontHeight + fontSmlHeight + marginItem + Config.MenuItemPadding + Config.decorBorderMenuItemSize*2;
+    } else if( menuCategory == mcMain ) {
+        DrawMainMenuWidgets();
+    }
+}
+
+void cFlatDisplayMenu::SetScrollbar(int Total, int Offset) {
+    DrawScrollbar(Total, Offset, MaxItems(), 0, ItemsHeight(), Offset > 0, Offset + MaxItems() < Total);
+}
+
+void cFlatDisplayMenu::DrawScrollbar(int Total, int Offset, int Shown, int Top, int Height, bool CanScrollUp, bool CanScrollDown, bool isContent) {
+    //dsyslog("Total: %d Offset: %d Shown: %d Top: %d Height: %d", Total, Offset, Shown, Top, Height);
+
+    if( Total > 0 && Total > Shown ) {
+        if( isScrolling == false && ShowEvent == false && ShowRecording == false && ShowText == false ) {
+            isScrolling = true;
+            DecorBorderClearByFrom(BorderMenuItem);
+            ItemBorderDrawAllWithScrollbar();
+            ItemBorderClear();
+
+            menuItemScroller.UpdateViewPortWidth(scrollBarWidth);
+
+            if( isContent )
+                menuPixmap->DrawRectangle(cRect(menuItemWidth - scrollBarWidth + Config.decorBorderMenuContentSize, 0, scrollBarWidth + marginItem, scrollBarHeight), clrTransparent);
+            else
+                menuPixmap->DrawRectangle(cRect(menuItemWidth - scrollBarWidth + Config.decorBorderMenuItemSize, 0, scrollBarWidth + marginItem, scrollBarHeight), clrTransparent);
+        }
+    } else if( ShowEvent == false && ShowRecording == false && ShowText == false ) {
+        isScrolling = false;
+    }
+
+    if( isContent )
+        ScrollbarDraw(scrollbarPixmap, menuItemWidth - scrollBarWidth + Config.decorBorderMenuContentSize*2 + marginItem, Top, Height, Total, Offset, Shown, CanScrollUp, CanScrollDown);
+    else
+        ScrollbarDraw(scrollbarPixmap, menuItemWidth - scrollBarWidth + Config.decorBorderMenuItemSize*2 + marginItem, Top, Height, Total, Offset, Shown, CanScrollUp, CanScrollDown);
+
+}
+
+void cFlatDisplayMenu::Scroll(bool Up, bool Page) {
+    // Wird das Men� gescrollt oder Content?
+    if( ComplexContent.IsShown() && ComplexContent.IsScrollingActive() && ComplexContent.Scrollable() ) {
+        bool scrolled = ComplexContent.Scroll(Up, Page);
+        if( scrolled ) {
+            DrawScrollbar(ComplexContent.ScrollTotal(), ComplexContent.ScrollOffset(), ComplexContent.ScrollShown(), ComplexContent.Top() - scrollBarTop, ComplexContent.Height(), ComplexContent.ScrollOffset() > 0, ComplexContent.ScrollOffset() + ComplexContent.ScrollShown() < ComplexContent.ScrollTotal(), true);
+        }
+    } else {
+        cSkinDisplayMenu::Scroll(Up, Page);
+    }
+}
+
+int cFlatDisplayMenu::MaxItems(void) {
+    if( menuCategory == mcChannel )
+        return scrollBarHeight / itemChannelHeight;
+    else if( menuCategory == mcTimer )
+        return scrollBarHeight / itemTimerHeight;
+    else if( menuCategory == mcSchedule || menuCategory == mcScheduleNow || menuCategory == mcScheduleNext )
+        return scrollBarHeight / itemEventHeight;
+    else if( menuCategory == mcRecording )
+        return scrollBarHeight / itemRecordingHeight;
+
+    return scrollBarHeight / itemHeight;
+}
+
+int cFlatDisplayMenu::ItemsHeight(void) {
+    if( menuCategory == mcChannel )
+        return MaxItems() * itemChannelHeight - Config.MenuItemPadding;
+    else if( menuCategory == mcTimer )
+        return MaxItems() * itemTimerHeight - Config.MenuItemPadding;
+    else if( menuCategory == mcSchedule || menuCategory == mcScheduleNow || menuCategory == mcScheduleNext )
+        return MaxItems() * itemEventHeight - Config.MenuItemPadding;
+    else if( menuCategory == mcRecording )
+        return MaxItems() * itemRecordingHeight - Config.MenuItemPadding;
+
+    return MaxItems() * itemHeight - Config.MenuItemPadding;
+}
+
+void cFlatDisplayMenu::Clear(void) {
+    menuItemScroller.Clear();
+    menuPixmap->Fill(clrTransparent);
+    menuIconsPixmap->Fill(clrTransparent);
+    menuIconsBGPixmap->Fill(clrTransparent);
+    scrollbarPixmap->Fill(clrTransparent);
+    contentHeadPixmap->Fill(clrTransparent);
+    contentHeadIconsPixmap->Fill(clrTransparent);
+    DecorBorderClearByFrom(BorderMenuItem);
+    DecorBorderClearByFrom(BorderContent);
+    DecorBorderClearByFrom(BorderMMWidget);
+    DecorBorderClearAll();
+    isScrolling = false;
+
+    menuItemLastHeight = 0;
+    MenuFullOsdIsDrawn = false;
+
+    ComplexContent.Clear();
+
+    contentWidget.Clear();
+
+    ShowRecording = ShowEvent = ShowText = false;
+}
+
+void cFlatDisplayMenu::SetTitle(const char *Title) {
+    TopBarSetTitle(Title);
+    LastTitle = Title;
+
+    if( Config.TopBarMenuIconShow ) {
+        cString icon = "";
+        switch( menuCategory ) {
+            case mcMain:
+                TopBarSetTitle("");
+                icon = cString::sprintf("menuIcons/%s", VDRLOGO);
+                break;
+            case mcSchedule:
+            case mcScheduleNow:
+            case mcScheduleNext:
+                icon = "menuIcons/Schedule";
+                break;
+            case mcChannel:
+                icon = "menuIcons/Channels";
+                if( Config.MenuChannelShowCount ) {
+                    int chanCount = 0;
+                    for(cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
+                        if( !Channel->GroupSep() )
+                            chanCount++;
+                    }
+                    cString newTitle = cString::sprintf("%s (%d)", Title, chanCount);
+                    TopBarSetTitle(*newTitle);
+                }
+                break;
+            case mcTimer:
+                icon = "menuIcons/Timers";
+                if( Config.MenuTimerShowCount ) {
+                    int timerCount = 0, timerActiveCount = 0;
+                    for(cTimer *Timer = Timers.First(); Timer; Timer = Timers.Next(Timer)) {
+                        timerCount++;
+                        if( Timer->HasFlags(tfActive) )
+                            timerActiveCount++;
+                    }
+                    LastTimerCount = timerCount;
+                    LastTimerActiveCount = timerActiveCount;
+                    cString newTitle = cString::sprintf("%s (%d/%d)", Title, timerActiveCount, timerCount);
+                    TopBarSetTitle(*newTitle);
+                }
+                break;
+            case mcRecording:
+                if( Config.MenuRecordingShowCount ) {
+                    int recCount = 0, recNewCount = 0;
+                    LastRecFolder = RecFolder;
+                    if( RecFolder != "" && LastItemRecordingLevel > 0 ) {
+                        for(cRecording *Rec = Recordings.First(); Rec; Rec = Recordings.Next(Rec)) {
+                            std::string RecFolder2 = GetRecordingName(Rec, LastItemRecordingLevel-1, true);
+                            if( RecFolder == RecFolder2 ) {
+                                recCount++;
+                                if( Rec->IsNew() )
+                                    recNewCount++;
+                            }
+                        }
+                    } else {
+                        for(cRecording *Rec = Recordings.First(); Rec; Rec = Recordings.Next(Rec)) {
+                            recCount++;
+                            if( Rec->IsNew() )
+                                recNewCount++;
+                        }
+                    }
+                    cString newTitle = cString::sprintf("%s (%d*/%d)", Title, recNewCount, recCount);
+                    if( Config.ShortRecordingCount ) {
+                        if( recNewCount == 0 ) // 0 neue Aufnahmen
+                            newTitle = cString::sprintf("%s (%d)", Title, recCount);
+                        else if( recNewCount == recCount ) //Nur neue Aufnahmen
+                            newTitle = cString::sprintf("%s (%d*)", Title, recNewCount);
+                        else // Anzeige (35*/56)
+                            newTitle = cString::sprintf("%s (%d*/%d)", Title, recNewCount, recCount);
+                    }
+                    TopBarSetTitle(*newTitle);
+                }
+                if( RecordingsSortMode == rsmName )
+                    TopBarSetMenuIconRight("menuIcons/RecsSortName");
+                else if( RecordingsSortMode == rsmTime )
+                    TopBarSetMenuIconRight("menuIcons/RecsSortDate");
+                icon = "menuIcons/Recordings";
+                break;
+            case mcSetup:
+                icon = "menuIcons/Setup";
+                break;
+            case mcCommand:
+                icon = "menuIcons/Commands";
+                break;
+            case mcEvent:
+                icon = "extraIcons/Info";
+                break;
+            case mcRecordingInfo:
+                icon = "extraIcons/PlayInfo";
+                break;
+            default:
+                icon = "";
+        }
+        TopBarSetMenuIcon(icon);
+
+        if( (menuCategory == mcRecording || menuCategory == mcTimer) && Config.DiskUsageShow == 1 || Config.DiskUsageShow == 2 | Config.DiskUsageShow == 3) {
+            TopBarEnableDiskUsage();
+        }
+    }
+}
+
+void cFlatDisplayMenu::SetButtons(const char *Red, const char *Green, const char *Yellow, const char *Blue) {
+    ButtonsSet(Red, Green, Yellow, Blue);
+}
+
+void cFlatDisplayMenu::SetMessage(eMessageType Type, const char *Text) {
+    if (Text)
+        MessageSet(Type, Text);
+    else
+        MessageClear();
+}
+
+void cFlatDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable) {
+    ShowEvent = false;
+    ShowRecording = false;
+    ShowText = false;
+
+    int y = Index * itemHeight;
+    menuItemWidth = menuWidth - Config.decorBorderMenuItemSize*2;
+
+    if( menuCategory == mcMain && Config.MainMenuWidgetsEnable )
+        menuItemWidth *= Config.MainMenuItemScale;
+
+    int AvailableTextWidth = menuItemWidth - scrollBarWidth;
+    if( isScrolling )
+        menuItemWidth -= scrollBarWidth;
+
+    tColor ColorFg, ColorBg, ColorExtraTextFg;
+    ColorExtraTextFg = Theme.Color(clrMenuItemExtraTextFont);
+    if (Current) {
+        ColorFg = Theme.Color(clrItemCurrentFont);
+        ColorBg = Theme.Color(clrItemCurrentBg);
+        ColorExtraTextFg = Theme.Color(clrMenuItemExtraTextCurrentFont);
+
+        iconTimerFull = imgLoader.LoadIcon("text_timer_full_cur", fontHeight, fontHeight);
+        iconTimerPartial = imgLoader.LoadIcon("text_timer_partial_cur", fontHeight, fontHeight);
+        iconArrowTurn = imgLoader.LoadIcon("text_arrowturn_cur", fontHeight, fontHeight);
+        iconRec = imgLoader.LoadIcon("text_rec_cur", fontHeight, fontHeight);
+        iconVps = imgLoader.LoadIcon("text_vps_cur", fontHeight, fontHeight);
+        iconNew = imgLoader.LoadIcon("text_new_cur", fontHeight, fontHeight);
+    }
+    else {
+        if( Selectable ) {
+            ColorFg = Theme.Color(clrItemSelableFont);
+            ColorBg = Theme.Color(clrItemSelableBg);
+
+            iconTimerFull = imgLoader.LoadIcon("text_timer_full_sel", fontHeight, fontHeight);
+            iconTimerPartial = imgLoader.LoadIcon("text_timer_partial_sel", fontHeight, fontHeight);
+            iconArrowTurn = imgLoader.LoadIcon("text_arrowturn_sel", fontHeight, fontHeight);
+            iconRec = imgLoader.LoadIcon("text_rec_sel", fontHeight, fontHeight);
+            iconVps = imgLoader.LoadIcon("text_vps_sel", fontHeight, fontHeight);
+            iconNew = imgLoader.LoadIcon("text_new_sel", fontHeight, fontHeight);
+        } else {
+            ColorFg = Theme.Color(clrItemFont);
+            ColorBg = Theme.Color(clrItemBg);
+
+            iconTimerFull = imgLoader.LoadIcon("text_timer_full", fontHeight, fontHeight);
+            iconTimerPartial = imgLoader.LoadIcon("text_timer_partial", fontHeight, fontHeight);
+            iconArrowTurn = imgLoader.LoadIcon("text_arrowturn", fontHeight, fontHeight);
+            iconRec = imgLoader.LoadIcon("text_rec", fontHeight, fontHeight);
+            iconVps = imgLoader.LoadIcon("text_vps", fontHeight, fontHeight);
+            iconNew = imgLoader.LoadIcon("text_new", fontHeight, fontHeight);
+        }
+    }
+
+    if( y + itemHeight > menuItemLastHeight )
+        menuItemLastHeight = y + itemHeight;
+
+    menuPixmap->DrawRectangle(cRect(Config.decorBorderMenuItemSize, y, menuItemWidth, fontHeight), ColorBg);
+    int lh = fontHeight;
+    int xOff = 0;
+    for (int i = 0; i < MaxTabs; i++) {
+        const char *s = GetTabbedText(Text, i);
+        if( s ) {
+            // from skinelchi
+            char buffer[9];
+            bool istimer = false;
+            bool isnewrecording = false;
+            bool hasEventtimer = false;
+            bool haspartEventtimer = false;
+            bool isRecording = false;
+            bool hasVPS = false;
+            bool isRunning = false;
+
+            int xt = Tab(i);
+
+            if( true ) {
+                // check if timer info symbols: " !#>"
+                if (i == 0 && strlen(s) == 1 && strchr(" !#>", s[0])) {
+                    istimer = true; // update status
+                } else if (  (strlen(s) == 6 && s[5] == '*' && s[2] == ':' && isdigit(*s)
+                    && isdigit(*(s + 1)) && isdigit(*(s + 3)) && isdigit(*(s + 4)))
+                    || (strlen(s) == 5 && s[4] == '*' && s[1] == ':' && isdigit(*s)
+                    && isdigit(*(s + 2)) && isdigit(*(s + 3)))
+                    || (strlen(s) == 9 && s[8] == '*' && s[5] == '.' && s[2] == '.'
+                    && isdigit(*s) && isdigit(*(s + 1)) && isdigit(*(s + 3))
+                    && isdigit(*(s + 4)) && isdigit(*(s + 6)) && isdigit(*(s + 7)))) {
+                    // check if new recording: "10:10*", "1:10*", "01.01.06*"
+
+                    isnewrecording = true;  // update status
+                    strncpy(buffer, s, strlen(s));   // make a copy
+                    buffer[strlen(s) - 1] = '\0';  // remove the '*' character
+                } else if ( (strlen(s) == 3) && ( i == 2 || i == 3 || i == 4) ) {
+                     if (s[0] == 'R') isRecording = true;
+                     if (s[0] == 'T') hasEventtimer = true;
+                     if (s[0] == 't') haspartEventtimer = true;
+                     if (s[1] == 'V') hasVPS = true;
+                     if (s[2] == '*') isRunning = true;
+                } else if ( (strlen(s) == 4) && ( i == 3 ) ) { //epgsearch What's on now default
+                        if (s[1] == 'R') isRecording = true;
+                        if (s[1] == 'T') hasEventtimer = true;
+                        if (s[1] == 't') haspartEventtimer = true;
+                        if (s[2] == 'V') hasVPS = true;
+                        if (s[3] == '*') isRunning = true;
+                }
+            }
+            xOff = Tab(i) + Config.decorBorderMenuItemSize;
+
+            if( istimer ) {
+                // timer menu
+                switch( s[0] ) {
+                    case '!':
+                        if( iconArrowTurn )
+                            menuIconsPixmap->DrawImage( cPoint(xOff, y + (lh - iconArrowTurn->Height()) / 2), *iconArrowTurn );
+                        break;
+                    case '#':
+                        if( iconRec )
+                            menuIconsPixmap->DrawImage( cPoint(xOff, y + (lh - iconRec->Height()) / 2), *iconRec );
+                        break;
+                    case '>':
+                        if( iconTimerFull )
+                            menuIconsPixmap->DrawImage( cPoint(xOff, y + (lh - iconTimerFull->Height()) / 2), *iconTimerFull );
+                        break;
+                    case ' ':
+                    default:
+                       break;
+                }
+            } else if( isRecording || hasEventtimer || haspartEventtimer || hasVPS || isRunning ) {
+                // program schedule menu
+                if( isRecording && iconRec )
+                    menuIconsPixmap->DrawImage( cPoint(xOff, y + (lh - iconRec->Height()) / 2), *iconRec );
+                else {
+                    if( hasEventtimer && iconTimerFull )
+                        menuIconsPixmap->DrawImage( cPoint(xOff, y + (lh - iconTimerFull->Height()) / 2), *iconTimerFull );
+                    if( haspartEventtimer && iconTimerPartial )
+                        menuIconsPixmap->DrawImage( cPoint(xOff, y + (lh - iconTimerPartial->Height()) / 2), *iconTimerPartial );
+                }
+                xOff += iconTimerFull->Width(); // clock is wider than rec
+
+                if( hasVPS && iconVps ) {
+                    menuIconsPixmap->DrawImage( cPoint(xOff, y + (lh - iconVps->Height()) / 2), *iconVps );
+                    xOff += iconVps->Width();
+                }
+
+                if( isRunning )
+                    menuPixmap->DrawText(cPoint(xOff, y), "*", ColorFg, ColorBg, font, AvailableTextWidth - xOff);
+
+            } else if( isnewrecording ) {
+                // recordings menu
+                menuPixmap->DrawText(cPoint(xOff, y), buffer, ColorFg, ColorBg, font, AvailableTextWidth - xOff);
+
+                // draw symbol "new" centered
+                if( iconNew ) {
+                    int gap = std::max(0, (Tab(i+1)-Tab(i)- font->Width(buffer) - iconNew->Width()) / 2);
+                    menuIconsPixmap->DrawImage( cPoint(xOff + font->Width(buffer) + gap, y + (lh - iconNew->Height()) / 2), *iconNew );
+                }
+            } else if( CheckProgressBar( s ) ) {
+                int colWidth = Tab(i+1) - Tab(i);
+
+                tColor ColorFg = Config.decorProgressMenuItemFg;
+                tColor ColorBarFg = Config.decorProgressMenuItemBarFg;
+                tColor ColorBg = Config.decorProgressMenuItemBg;
+                if( Current ) {
+                    ColorFg = Config.decorProgressMenuItemCurFg;
+                    ColorBarFg = Config.decorProgressMenuItemCurBarFg;
+                    ColorBg = Config.decorProgressMenuItemCurBg;
+                }
+                cRect rec = cRect(xt + Config.decorBorderMenuItemSize,
+                    y + (itemHeight-Config.MenuItemPadding)/2 - Config.decorProgressMenuItemSize/2 - Config.decorBorderMenuItemSize,
+                    colWidth, Config.decorProgressMenuItemSize);
+                cRect recBG = cRect(xt + Config.decorBorderMenuItemSize - marginItem, y,
+                    colWidth + marginItem*2, fontHeight);
+
+                DrawProgressBarFromText(rec, recBG, s, ColorFg, ColorBarFg, ColorBg);
+            } else {
+                if( (menuCategory == mcMain || menuCategory == mcSetup) && Config.MenuItemIconsShow) {
+                    cString cIcon = GetIconName( MainMenuText(s) );
+                    cImageLoader imgLoader;
+                    cImage *img = imgLoader.LoadIcon(*cIcon, fontHeight - marginItem*2, fontHeight - marginItem*2);
+                    if( img ) {
+                        menuIconsPixmap->DrawImage(cPoint(xt + Config.decorBorderMenuItemSize + marginItem, y + marginItem), *img);
+                    } else {
+                        img = imgLoader.LoadIcon("menuIcons/blank", fontHeight - marginItem*2, fontHeight - marginItem*2);
+                        if( img ) {
+                            menuIconsPixmap->DrawImage(cPoint(xt + Config.decorBorderMenuItemSize + marginItem, y + marginItem), *img);
+                        }
+                    }
+                    menuPixmap->DrawText(cPoint(fontHeight + marginItem*2 + xt + Config.decorBorderMenuItemSize, y), s, ColorFg, ColorBg, font,
+                        AvailableTextWidth - xt - marginItem*2 - fontHeight);
+                } else {
+                    if( Config.MenuItemParseTilde ) {
+                        std::string tilde = s;
+                        size_t found = tilde.find(" ~ ");
+                        size_t found2 = tilde.find("~");
+                        if( found != string::npos ) {
+                            std::string first = tilde.substr(0, found);
+                            std::string second = tilde.substr(found +2, tilde.length() );
+
+                            menuPixmap->DrawText(cPoint(xt + Config.decorBorderMenuItemSize, y), first.c_str(), ColorFg, ColorBg, font, menuItemWidth - xt - Config.decorBorderMenuItemSize);
+                            int l = font->Width( first.c_str() );
+                            menuPixmap->DrawText(cPoint(xt + Config.decorBorderMenuItemSize + l, y), second.c_str(), ColorExtraTextFg, ColorBg, font, menuItemWidth - xt - Config.decorBorderMenuItemSize - l);
+                        } else if ( found2 != string::npos ) {
+                            std::string first = tilde.substr(0, found2);
+                            std::string second = tilde.substr(found2 +1, tilde.length() );
+
+                            menuPixmap->DrawText(cPoint(xt + Config.decorBorderMenuItemSize, y), first.c_str(), ColorFg, ColorBg, font, menuItemWidth - xt - Config.decorBorderMenuItemSize);
+                            int l = font->Width( first.c_str() );
+                            l += font->Width("X");
+                            menuPixmap->DrawText(cPoint(xt + Config.decorBorderMenuItemSize + l, y), second.c_str(), ColorExtraTextFg, ColorBg, font, menuItemWidth - xt - Config.decorBorderMenuItemSize -l);
+                        } else
+                            menuPixmap->DrawText(cPoint(xt + Config.decorBorderMenuItemSize, y), s, ColorFg, ColorBg, font, menuItemWidth - xt - Config.decorBorderMenuItemSize);
+                    } else
+                        menuPixmap->DrawText(cPoint(xt + Config.decorBorderMenuItemSize, y), s, ColorFg, ColorBg, font, menuItemWidth - xt - Config.decorBorderMenuItemSize);
+                }
+            }
+        }
+        if (!Tab(i + 1))
+            break;
+    }
+
+    sDecorBorder ib;
+    ib.Left = Config.decorBorderMenuItemSize;
+    ib.Top = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuItemSize + y;
+
+    ib.Width = menuWidth - Config.decorBorderMenuItemSize*2;
+    if( isScrolling ) {
+        ib.Width -= scrollBarWidth;
+    }
+
+    ib.Width = menuItemWidth;
+
+    ib.Height = fontHeight;
+    ib.Size = Config.decorBorderMenuItemSize;
+    ib.Type = Config.decorBorderMenuItemType;
+
+    if( Current ) {
+        ib.ColorFg = Config.decorBorderMenuItemCurFg;
+        ib.ColorBg = Config.decorBorderMenuItemCurBg;
+    } else {
+        if( Selectable ) {
+            ib.ColorFg = Config.decorBorderMenuItemSelFg;
+            ib.ColorBg = Config.decorBorderMenuItemSelBg;
+        } else {
+            ib.ColorFg = Config.decorBorderMenuItemFg;
+            ib.ColorBg = Config.decorBorderMenuItemBg;
+        }
+    }
+
+    DecorBorderDraw(ib.Left, ib.Top, ib.Width, ib.Height,
+        ib.Size, ib.Type, ib.ColorFg, ib.ColorBg, BorderMenuItem);
+
+    if( !isScrolling ) {
+        ItemBorderInsertUnique(ib);
+    }
+
+    SetEditableWidth(menuWidth - Tab(1));
+}
+
+std::string cFlatDisplayMenu::items[16] = { "Schedule", "Channels", "Timers", "Recordings", "Setup", "Commands",
+                                                "OSD", "EPG", "DVB", "LNB", "CAM", "Recording", "Replay", "Miscellaneous", "Plugins", "Restart"};
+
+std::string cFlatDisplayMenu::MainMenuText(std::string Text) {
+    std::string text = skipspace(Text.c_str());
+    std::string menuEntry;
+    std::string menuNumber;
+    bool found = false;
+    bool doBreak = false;
+    size_t i = 0;
+    for (; i < text.length(); i++) {
+        char s = text.at(i);
+        if (i==0) {
+            //if text directly starts with nonnumeric, break
+            if (!(s >= '0' && s <= '9')) {
+                break;
+            }
+        }
+        if (found) {
+            if (!(s >= '0' && s <= '9')) {
+                doBreak = true;
+            }
+        }
+        if (s >= '0' && s <= '9') {
+            found = true;
+        }
+        if (doBreak)
+            break;
+        if (i>4)
+            break;
+    }
+    if (found) {
+        menuNumber = skipspace(text.substr(0,i).c_str());
+        menuEntry = skipspace(text.substr(i).c_str());
+    } else {
+        menuNumber = "";
+        menuEntry = text.c_str();
+    }
+    return menuEntry;
+}
+
+cString cFlatDisplayMenu::GetIconName(std::string element) {
+    //check for standard menu entries
+    for (int i=0; i<16; i++) {
+        std::string s = trVDR(items[i].c_str());
+        if (s == element) {
+            cString menuIcon = cString::sprintf("menuIcons/%s", items[i].c_str());
+            return menuIcon;
+        }
+    }
+    //check for special main menu entries "stop recording", "stop replay"
+    std::string stopRecording = skipspace(trVDR(" Stop recording "));
+    std::string stopReplay = skipspace(trVDR(" Stop replaying"));
+    try {
+        if (element.substr(0, stopRecording.size()) == stopRecording)
+            return "menuIcons/StopRecording";
+        if (element.substr(0, stopReplay.size()) == stopReplay)
+            return "menuIcons/StopReplay";
+    } catch (...) {}
+    //check for Plugins
+    for (int i = 0; ; i++) {
+        cPlugin *p = cPluginManager::GetPlugin(i);
+        if (p) {
+            const char *mainMenuEntry = p->MainMenuEntry();
+            if (mainMenuEntry) {
+                std::string plugMainEntry = mainMenuEntry;
+                try {
+                    if (element.substr(0, plugMainEntry.size()) == plugMainEntry) {
+                        return cString::sprintf("pluginIcons/%s", p->Name());
+                    }
+                } catch (...) {}
+            }
+        } else
+            break;
+    }
+    return cString::sprintf("extraIcons/%s", element.c_str());
+}
+
+bool cFlatDisplayMenu::CheckProgressBar(const char *text) {
+    if (strlen(text) > 5
+        && text[0] == '['
+        && ((text[1] == '|')||(text[1] == ' '))
+        && ((text[2] == '|')||(text[2] == ' '))
+        && text[strlen(text) - 1] == ']')
+        return true;
+    return false;
+}
+
+void cFlatDisplayMenu::DrawProgressBarFromText(cRect rec, cRect recBg, const char *bar, tColor ColorFg, tColor ColorBarFg, tColor ColorBg) {
+    const char *p = bar + 1;
+    bool isProgressbar = true;
+    int total = 0;
+    int now = 0;
+    for (; *p != ']'; ++p) {
+        if (*p == ' ' || *p == '|') {
+            ++total;
+            if (*p == '|')
+                ++now;
+        } else {
+            isProgressbar = false;
+            break;
+        }
+    }
+    if (isProgressbar) {
+        double progress = (double)now / (double)total;
+        ProgressBarDrawRaw(menuPixmap, menuPixmap, rec, recBg, progress*total, total,
+            ColorFg, ColorBarFg, ColorBg, Config.decorProgressMenuItemType, true);
+    }
+}
+
+bool cFlatDisplayMenu::SetItemChannel(const cChannel *Channel, int Index, bool Current, bool Selectable, bool WithProvider) {
+    if( Config.MenuChannelView == 0 || !Channel )
+        return false;
+
+    cSchedulesLock schedulesLock;
+    const cSchedules *schedules = cSchedules::Schedules(schedulesLock);
+    const cEvent *Event = NULL;
+
+    bool DrawProgress = true;
+    cString buffer;
+    int y = Index * itemChannelHeight;
+
+    if( Current )
+        menuItemScroller.Clear();
+
+    int Height = fontHeight;
+    if( Config.MenuChannelView == 3 || Config.MenuChannelView == 4 )
+        Height = fontHeight + fontSmlHeight + marginItem + Config.decorProgressMenuItemSize;
+
+    menuItemWidth = menuWidth - Config.decorBorderMenuItemSize*2;
+    if( Config.MenuChannelView == 3 || Config.MenuChannelView == 4 )
+        menuItemWidth *= 0.5;
+
+    if( isScrolling )
+        menuItemWidth -= scrollBarWidth;
+
+    tColor ColorFg, ColorBg;
+    if (Current) {
+        ColorFg = Theme.Color(clrItemCurrentFont);
+        ColorBg = Theme.Color(clrItemCurrentBg);
+    }
+    else {
+        if( Selectable ) {
+            ColorFg = Theme.Color(clrItemSelableFont);
+            ColorBg = Theme.Color(clrItemSelableBg);
+        } else {
+            ColorFg = Theme.Color(clrItemFont);
+            ColorBg = Theme.Color(clrItemBg);
+        }
+    }
+
+    if( y + itemChannelHeight > menuItemLastHeight )
+        menuItemLastHeight = y + itemChannelHeight;
+
+    menuPixmap->DrawRectangle(cRect(Config.decorBorderMenuItemSize, y, menuItemWidth, Height), ColorBg);
+
+    int Left, Top, Width;
+    int LeftName;
+    Left = Config.decorBorderMenuItemSize + marginItem;
+    Top = y;
+
+    if( Channel->GroupSep() )
+        DrawProgress = false;
+    float progress = 0.0;
+    cString EventTitle = "";
+
+    cString ws = cString::sprintf("%d", Channels.MaxNumber());
+    int w = font->Width(ws);
+    if( !Channel->GroupSep() )
+        buffer = cString::sprintf("%d", Channel->Number());
+    else
+        buffer = "";
+    Width = font->Width(buffer);
+    if( Width < w )
+        Width = w;
+    menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, font, Width, fontHeight, taRight);
+    Left += Width + marginItem;
+
+    int imageHeight = fontHeight;
+    int imageLeft = Left;
+    int imageTop = Top;
+    int imageBGHeight = imageHeight;
+    int imageBGWidth = imageHeight*1.34;
+
+    if( !Channel->GroupSep() ) {
+        cImage *imgBG = imgLoader.LoadIcon("logo_background", imageHeight*1.34, imageHeight);
+        if( imgBG ) {
+            imageBGHeight = imgBG->Height();
+            imageBGWidth = imgBG->Width();
+            imageTop = Top + (fontHeight - imgBG->Height()) / 2;
+            menuIconsBGPixmap->DrawImage( cPoint(imageLeft, imageTop), *imgBG );
+        }
+    }
+    cImage *img = imgLoader.LoadLogo(Channel->Name(), imageBGWidth - 4, imageBGHeight - 4);
+    if( img ) {
+        imageTop = Top + (imageBGHeight - img->Height()) / 2;
+        imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+
+        menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+        Left += imageBGWidth + marginItem * 2;
+    } else {
+        bool isRadioChannel = ((!Channel->Vpid())&&(Channel->Apid(0))) ? true : false;
+
+        if( isRadioChannel ) {
+            img = imgLoader.LoadIcon("radio", imageBGWidth - 10, imageBGHeight - 10);
+            if( img ) {
+                imageTop = Top + (imageBGHeight - img->Height()) / 2;
+                imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+                menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+                Left += imageBGWidth + marginItem * 2;
+            }
+        } else if( Channel->GroupSep() ) {
+            img = imgLoader.LoadIcon("changroup", imageBGWidth - 10, imageBGHeight - 10);
+            if( img ) {
+                imageTop = Top + (imageBGHeight - img->Height()) / 2;
+                imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+                menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+                Left += imageBGWidth + marginItem * 2;
+            }
+        } else {
+            img = imgLoader.LoadIcon("tv", imageBGWidth - 10, imageBGHeight - 10);
+            if( img ) {
+                imageTop = Top + (imageBGHeight - img->Height()) / 2;
+                imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+                menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+                Left += imageBGWidth + marginItem * 2;
+            }
+        }
+    }
+
+    LeftName = Left;
+
+    // event from channel
+    const cSchedule *Schedule = schedules->GetSchedule( Channel->GetChannelID() );
+    if( Schedule ) {
+        Event = Schedule->GetPresentEvent();
+        if( Event ) {
+            // calculate progress bar
+            progress = (int)roundf( (float)(time(NULL) - Event->StartTime()) / (float) (Event->Duration()) * 100.0);
+            if(progress < 0)
+                progress = 0.;
+            else if(progress > 100)
+                progress = 100;
+
+            EventTitle = Event->Title();
+        }
+    }
+
+    if( WithProvider )
+        buffer = cString::sprintf("%s - %s", Channel->Provider(), Channel->Name());
+    else
+        buffer = cString::sprintf("%s", Channel->Name());
+
+    if( Config.MenuChannelView == 1 ) {
+        Width = menuItemWidth - LeftName;
+        if( Channel->GroupSep() ) {
+            int lineTop = Top + (fontHeight - 3) / 2;
+            menuPixmap->DrawRectangle(cRect( Left, lineTop, menuItemWidth - Left, 3), ColorFg);
+            cString groupname = cString::sprintf(" %s ", *buffer);
+            menuPixmap->DrawText(cPoint(Left + (menuItemWidth / 10 * 2), Top), groupname, ColorFg, ColorBg, font, 0, 0, taCenter);
+        } else {
+            if( Current && font->Width(buffer) > (Width) && Config.ScrollerEnable ) {
+                menuItemScroller.AddScroller(buffer, cRect(LeftName, Top + menuTop, Width, fontHeight), ColorFg, clrTransparent, font);
+            } else {
+                menuPixmap->DrawText(cPoint(LeftName, Top), buffer, ColorFg, ColorBg, font, Width);
+            }
+        }
+    } else {
+        Width = menuItemWidth / 10*2;
+        if( isScrolling )
+            Width = (menuItemWidth + scrollBarWidth) / 10*2;
+
+        if( Config.MenuChannelView == 3 || Config.MenuChannelView == 4 )
+            Width = menuItemWidth - LeftName;
+
+        if( Channel->GroupSep() ) {
+            int lineTop = Top + (fontHeight - 3) / 2;
+            menuPixmap->DrawRectangle(cRect( Left, lineTop, menuItemWidth - Left, 3), ColorFg);
+            cString groupname = cString::sprintf(" %s ", *buffer);
+            menuPixmap->DrawText(cPoint(Left + (menuItemWidth / 10 * 2), Top), groupname, ColorFg, ColorBg, font, 0, 0, taCenter);
+        } else {
+            if( Current && font->Width(buffer) > (Width) && Config.ScrollerEnable ) {
+                menuItemScroller.AddScroller(buffer, cRect(LeftName, Top + menuTop, Width, fontHeight), ColorFg, clrTransparent, font);
+            } else {
+                menuPixmap->DrawText(cPoint(LeftName, Top), buffer, ColorFg, ColorBg, font, Width);
+            }
+
+            Left += Width + marginItem;
+
+            if( DrawProgress ) {
+                int PBTop = y + (itemChannelHeight-Config.MenuItemPadding)/2 - Config.decorProgressMenuItemSize/2 - Config.decorBorderMenuItemSize;
+                int PBLeft = Left;
+                int PBWidth = menuItemWidth/10;
+                if( Config.MenuChannelView == 3 || Config.MenuChannelView == 4 ) {
+                    PBTop = Top + fontHeight + fontSmlHeight;
+                    PBLeft = Left - Width - marginItem;
+                    PBWidth = menuItemWidth - LeftName - marginItem*2 - Config.decorBorderMenuItemSize - scrollBarWidth;
+
+                    if( isScrolling )
+                        PBWidth += scrollBarWidth;
+                }
+
+                Width = menuItemWidth/10;
+                if( isScrolling )
+                    Width = (menuItemWidth + scrollBarWidth) / 10;
+                if( Current )
+                    ProgressBarDrawRaw(menuPixmap, menuPixmap, cRect( PBLeft, PBTop, PBWidth, Config.decorProgressMenuItemSize),
+                        cRect( PBLeft, PBTop, PBWidth, Config.decorProgressMenuItemSize), progress, 100,
+                        Config.decorProgressMenuItemCurFg, Config.decorProgressMenuItemCurBarFg, Config.decorProgressMenuItemCurBg, Config.decorProgressMenuItemType, false);
+                else
+                    ProgressBarDrawRaw(menuPixmap, menuPixmap, cRect( PBLeft, PBTop, PBWidth, Config.decorProgressMenuItemSize),
+                        cRect( PBLeft, PBTop, PBWidth, Config.decorProgressMenuItemSize), progress, 100,
+                        Config.decorProgressMenuItemFg, Config.decorProgressMenuItemBarFg, Config.decorProgressMenuItemBg, Config.decorProgressMenuItemType, false);
+                Left += Width + marginItem;
+            }
+
+            if( Config.MenuChannelView == 3 || Config.MenuChannelView == 4 ) {
+                Left = LeftName;
+                Top += fontHeight;
+
+                if( Current && fontSml->Width(EventTitle) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                    menuItemScroller.AddScroller(EventTitle, cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontSmlHeight), ColorFg, clrTransparent, fontSml);
+                } else {
+                    menuPixmap->DrawText(cPoint(Left, Top), EventTitle, ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem );
+                }
+            } else {
+                if( Current && font->Width(EventTitle) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                    menuItemScroller.AddScroller(EventTitle, cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorFg, clrTransparent, font);
+                } else {
+                    menuPixmap->DrawText(cPoint(Left, Top), EventTitle, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem );
+                }
+            }
+        }
+    }
+
+    sDecorBorder ib;
+    ib.Left = Config.decorBorderMenuItemSize;
+    ib.Top = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuItemSize + y;
+
+    ib.Width = menuItemWidth - Config.decorBorderMenuItemSize*2;
+
+    if( isScrolling ) {
+        ib.Width -= scrollBarWidth;
+    }
+
+    ib.Width = menuItemWidth;
+
+    ib.Height = Height;
+    ib.Size = Config.decorBorderMenuItemSize;
+    ib.Type = Config.decorBorderMenuItemType;
+
+    if( Current ) {
+        ib.ColorFg = Config.decorBorderMenuItemCurFg;
+        ib.ColorBg = Config.decorBorderMenuItemCurBg;
+    } else {
+        if( Selectable ) {
+            ib.ColorFg = Config.decorBorderMenuItemSelFg;
+            ib.ColorBg = Config.decorBorderMenuItemSelBg;
+        } else {
+            ib.ColorFg = Config.decorBorderMenuItemFg;
+            ib.ColorBg = Config.decorBorderMenuItemBg;
+        }
+    }
+
+    DecorBorderDraw(ib.Left, ib.Top, ib.Width, ib.Height,
+        ib.Size, ib.Type, ib.ColorFg, ib.ColorBg, BorderMenuItem);
+
+    if( !isScrolling ) {
+        ItemBorderInsertUnique(ib);
+    }
+
+    if( Config.MenuChannelView == 4 && Current ) {
+        DrawItemExtraEvent(Event, "");
+    }
+
+    return true;
+}
+
+void cFlatDisplayMenu::DrawItemExtraEvent(const cEvent *Event, cString EmptyText) {
+    cLeft = menuItemWidth + Config.decorBorderMenuItemSize*2 + Config.decorBorderMenuContentSize + marginItem;
+    if( isScrolling )
+        cLeft += scrollBarWidth;
+    cTop = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuContentSize;
+    cWidth = menuWidth - cLeft - Config.decorBorderMenuContentSize;
+    cHeight = osdHeight - (topBarHeight + Config.decorBorderTopBarSize*2 +
+        buttonsHeight + Config.decorBorderButtonSize*2 + marginItem*3 + Config.decorBorderMenuContentSize*2);
+
+    bool isEmpty = false;
+    // Description
+    ostringstream text;
+    if( Event ) {
+        if( !isempty(Event->Description()) ) {
+            text << Event->Description();
+        }
+
+        if( Config.EpgAdditionalInfoShow ) {
+            text << endl;
+            // Genre
+            bool firstContent = true;
+            for (int i = 0; Event->Contents(i); i++) {
+                if (!isempty(Event->ContentToString(Event->Contents(i)))) { // skip empty (user defined) content
+                    if (!firstContent)
+                        text << ", ";
+                    else
+                        text << endl << tr("Genre") << ": ";
+                    text << Event->ContentToString(Event->Contents(i));
+                    firstContent = false;
+                }
+            }
+            // FSK
+            if( Event->ParentalRating() ) {
+                text << endl << tr("FSK") << ": ";
+                text << *Event->GetParentalRatingString();
+            }
+            const cComponents *Components = Event->Components();
+            if (Components) {
+                ostringstream audio;
+                bool firstAudio = true;
+                const char *audio_type = NULL;
+                ostringstream subtitle;
+                bool firstSubtitle = true;
+                for (int i = 0; i < Components->NumComponents(); i++) {
+                    const tComponent *p = Components->Component(i);
+                    switch (p->stream) {
+                        case sc_video_MPEG2:
+                            if (p->description)
+                                text << endl << tr("Video") << ": " <<  p->description << " (MPEG2)";
+                            else
+                                text << endl << tr("Video") << ": MPEG2";
+                            break;
+                        case sc_video_H264_AVC:
+                            if (p->description)
+                                text << endl << tr("Video") << ": " <<  p->description << " (H.264)";
+                            else
+                                text << endl << tr("Video") << ": H.264";
+                            break;
+
+                        case sc_audio_MP2:
+                        case sc_audio_AC3:
+                        case sc_audio_HEAAC:
+                            if (firstAudio)
+                                firstAudio = false;
+                            else
+                                audio << ", ";
+                            switch (p->stream) {
+                                case sc_audio_MP2:
+                                    // workaround for wrongfully used stream type X 02 05 for AC3
+                                    if (p->type == 5)
+                                        audio_type = "AC3";
+                                    else
+                                        audio_type = "MP2";
+                                    break;
+                                case sc_audio_AC3:
+                                    audio_type = "AC3"; break;
+                                case sc_audio_HEAAC:
+                                    audio_type = "HEAAC"; break;
+                            }
+                            if (p->description)
+                                audio << p->description << " (" << audio_type << ", " << p->language << ")";
+                            else
+                                audio << p->language << " (" << audio_type << ")";
+                            break;
+                        case sc_subtitle:
+                            if (firstSubtitle)
+                                firstSubtitle = false;
+                            else
+                                subtitle << ", ";
+                            if (p->description)
+                                subtitle << p->description << " (" << p->language << ")";
+                            else
+                                subtitle << p->language;
+                            break;
+                    }
+                }
+                if (audio.str().length() > 0)
+                    text << endl << tr("Audio") << ": "<< audio.str();
+                if (subtitle.str().length() > 0)
+                    text << endl << tr("Subtitle") << ": "<< subtitle.str();
+            }
+        }
+    } else {
+        text << *EmptyText;
+        isEmpty = true;
+    }
+
+    ComplexContent.Clear();
+    ComplexContent.SetScrollSize(fontSmlHeight);
+    ComplexContent.SetScrollingActive(false);
+    ComplexContent.SetOsd(osd);
+    ComplexContent.SetPosition(cRect(cLeft, cTop, cWidth, cHeight));
+    ComplexContent.SetBGColor(Theme.Color(clrMenuEventBg));
+
+    if( isEmpty ) {
+        cImage *img = imgLoader.LoadIcon("timerInactiveBig", 256, 256);
+        if( img ) {
+            ComplexContent.AddImage(img, cRect(marginItem, marginItem, img->Width(), img->Height()) );
+            ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, marginItem + img->Height(), cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml);
+        }
+    } else {
+        std::string mediaPath;
+        int mediaWidth = 0;
+        int mediaHeight = 0;
+        int mediaType = 0;
+
+        // first try scraper2vdr
+        static cPlugin *pScraper = cPluginManager::GetPlugin("scraper2vdr");
+        if( !pScraper ) // if it doesn't exit, try tvscraper
+            pScraper = cPluginManager::GetPlugin("tvscraper");
+
+        if( Config.TVScraperEPGInfoShowPoster && pScraper ) {
+            ScraperGetPosterBanner call;
+            call.event = Event;
+            if (pScraper->Service("GetPosterBanner", &call)) {
+                if ((call.type == tSeries) && call.banner.path.size() > 0) {
+                    mediaWidth = cWidth - marginItem*2;
+                    mediaHeight = 999;
+                    mediaPath = call.banner.path;
+                    mediaType = 1;
+                } else if (call.type == tMovie && call.poster.path.size() > 0) {
+                    mediaWidth = cWidth/2 - marginItem*3;
+                    mediaHeight = 999;
+                    mediaPath = call.poster.path;
+                    mediaType = 2;
+                }
+            }
+        }
+
+        if( mediaPath.length() > 0 ) {
+            cImage *img = imgLoader.LoadFile(mediaPath.c_str(), mediaWidth, mediaHeight);
+            if( img && mediaType == 2 ) {
+                ComplexContent.AddImageWithFloatedText(img, CIP_Right, text.str().c_str(), cRect(marginItem, marginItem, cWidth - marginItem*2, cHeight - marginItem*2),
+                    Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml);
+            } else if( img && mediaType == 1 ) {
+                ComplexContent.AddImage(img, cRect(marginItem, marginItem, img->Width(), img->Height()) );
+                ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, marginItem + img->Height(), cWidth - marginItem*2, cHeight - marginItem*2),
+                    Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml);
+            } else {
+                ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, marginItem, cWidth - marginItem*2, cHeight - marginItem*2),
+                    Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml);
+            }
+        } else {
+            ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, marginItem, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml);
+        }
+    }
+    ComplexContent.CreatePixmaps(Config.MenuContentFullSize);
+
+    ComplexContent.Draw();
+
+    DecorBorderClearByFrom(BorderContent);
+    if( Config.MenuContentFullSize )
+        DecorBorderDraw(cLeft, cTop, cWidth, ComplexContent.ContentHeight(true), Config.decorBorderMenuContentSize, Config.decorBorderMenuContentType,
+            Config.decorBorderMenuContentFg, Config.decorBorderMenuContentBg, BorderContent);
+    else
+        DecorBorderDraw(cLeft, cTop, cWidth, ComplexContent.ContentHeight(false), Config.decorBorderMenuContentSize, Config.decorBorderMenuContentType,
+            Config.decorBorderMenuContentFg, Config.decorBorderMenuContentBg, BorderContent);
+}
+
+bool cFlatDisplayMenu::SetItemTimer(const cTimer *Timer, int Index, bool Current, bool Selectable) {
+    if( Config.MenuTimerView == 0 || !Timer )
+        return false;
+    const cChannel *Channel = Timer->Channel();
+    const cEvent *Event = Timer->Event();
+
+    cString buffer;
+    int y = Index * itemTimerHeight;
+
+    if( Current )
+        menuItemScroller.Clear();
+
+    int Height = fontHeight;
+    if( Config.MenuTimerView == 2 || Config.MenuTimerView == 3 )
+        Height = fontHeight + fontSmlHeight + marginItem;
+
+    menuItemWidth = menuWidth - Config.decorBorderMenuItemSize*2;
+    if( Config.MenuTimerView == 2 || Config.MenuTimerView == 3 )
+        menuItemWidth *= 0.5;
+
+    if( isScrolling )
+        menuItemWidth -= scrollBarWidth;
+
+    tColor ColorFg, ColorBg, ColorExtraTextFg;
+    ColorExtraTextFg = Theme.Color(clrMenuItemExtraTextFont);
+    if (Current) {
+        ColorFg = Theme.Color(clrItemCurrentFont);
+        ColorBg = Theme.Color(clrItemCurrentBg);
+        ColorExtraTextFg = Theme.Color(clrMenuItemExtraTextCurrentFont);
+    }
+    else {
+        if( Selectable ) {
+            ColorFg = Theme.Color(clrItemSelableFont);
+            ColorBg = Theme.Color(clrItemSelableBg);
+        } else {
+            ColorFg = Theme.Color(clrItemFont);
+            ColorBg = Theme.Color(clrItemBg);
+        }
+    }
+
+    if( y + itemTimerHeight > menuItemLastHeight )
+        menuItemLastHeight = y + itemTimerHeight;
+
+    menuPixmap->DrawRectangle(cRect(Config.decorBorderMenuItemSize, y, menuItemWidth, Height), ColorBg);
+    cImage *img = NULL;
+    int Left, Top;
+    Left = Config.decorBorderMenuItemSize + marginItem;
+    Top = y;
+
+    int imageHeight = fontHeight;
+    int imageLeft = Left;
+    int imageTop = Top;
+
+    cString TimerIconName("");
+    if (!(Timer->HasFlags(tfActive))) {
+        TimerIconName = "timerInactive";
+        ColorFg = Theme.Color( clrMenuTimerItemDisabledFont );
+    } else if (Timer->Recording()) {
+        TimerIconName = "timerRecording";
+        ColorFg = Theme.Color( clrMenuTimerItemRecordingFont );
+    } else
+        TimerIconName = "timerActive";
+
+    img = imgLoader.LoadIcon(TimerIconName, imageHeight, imageHeight);
+    if( img ) {
+        imageTop = Top + (fontHeight - img->Height()) / 2;
+        menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+        Left += imageHeight + marginItem * 2;
+    }
+
+    cString ws = cString::sprintf("%d", Channels.MaxNumber());
+    int w = font->Width(ws);
+    buffer = cString::sprintf("%d", Channel->Number());
+    int Width = font->Width(buffer);
+    if( Width < w )
+        Width = w;
+    menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, font, Width, fontHeight, taRight);
+    Left += Width + marginItem;
+
+    imageLeft = Left;
+
+    int imageBGHeight = imageHeight;
+    int imageBGWidth = imageHeight*1.34;
+
+    cImage *imgBG = imgLoader.LoadIcon("logo_background", imageBGWidth, imageBGHeight);
+    if( imgBG ) {
+        imageBGHeight = imgBG->Height();
+        imageBGWidth = imgBG->Width();
+        imageTop = Top + (fontHeight - imgBG->Height()) / 2;
+        menuIconsBGPixmap->DrawImage( cPoint(imageLeft, imageTop), *imgBG );
+    }
+
+    img = imgLoader.LoadLogo(Channel->Name(), imageBGWidth - 4, imageBGHeight - 4);
+    if( img ) {
+        imageTop = Top + (imageBGHeight - img->Height()) / 2;
+        imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+        menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+    } else {
+        bool isRadioChannel = ((!Channel->Vpid())&&(Channel->Apid(0))) ? true : false;
+
+        if( isRadioChannel ) {
+            img = imgLoader.LoadIcon("radio", imageBGWidth - 10, imageBGHeight - 10);
+            if( img ) {
+                imageTop = Top + (imageBGHeight - img->Height()) / 2;
+                imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+                menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+            }
+        } else if( Channel->GroupSep() ) {
+            img = imgLoader.LoadIcon("changroup", imageBGWidth - 10, imageBGHeight - 10);
+            if( img ) {
+                imageTop = Top + (imageBGHeight - img->Height()) / 2;
+                imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+                menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+            }
+        } else {
+            img = imgLoader.LoadIcon("tv", imageBGWidth - 10, imageBGHeight - 10);
+            if( img ) {
+                imageTop = Top + (imageBGHeight - img->Height()) / 2;
+                imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+                menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+            }
+        }
+    }
+    Left += imageBGWidth + marginItem * 2;
+
+    cString day, name("");
+    if (Timer->WeekDays())
+        day = Timer->PrintDay(0, Timer->WeekDays(), false);
+    else if (Timer->Day() - time(NULL) < 28 * SECSINDAY) {
+        day = itoa(Timer->GetMDay(Timer->Day()));
+        name = WeekDayName(Timer->Day());
+    } else {
+        struct tm tm_r;
+        time_t Day = Timer->Day();
+        localtime_r(&Day, &tm_r);
+        char buffer[16];
+        strftime(buffer, sizeof(buffer), "%Y%m%d", &tm_r);
+        day = buffer;
+    }
+    const char *File = Setup.FoldersInTimerMenu ? NULL : strrchr(Timer->File(), FOLDERDELIMCHAR);
+    if (File && strcmp(File + 1, TIMERMACRO_TITLE) && strcmp(File + 1, TIMERMACRO_EPISODE))
+        File++;
+    else
+        File = Timer->File();
+
+    if( Config.MenuTimerView == 1 ) {
+        buffer = cString::sprintf("%s%s%s.", *name, *name && **name ? " " : "", *day);
+        menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+        Left += font->Width("XXX 99.  ");
+        buffer = cString::sprintf("%02d:%02d - %02d:%02d",Timer->Start() / 100, Timer->Start() % 100, Timer->Stop() / 100, Timer->Stop() % 100);
+        menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+        Left += font->Width("99:99 - 99:99  ");
+
+        if( Current && font->Width(File) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+            menuItemScroller.AddScroller(File, cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorFg, clrTransparent, font, ColorExtraTextFg);
+        } else {
+            if( Config.MenuItemParseTilde ) {
+                std::string tilde = File;
+                size_t found = tilde.find(" ~ ");
+                size_t found2 = tilde.find("~");
+                if( found != string::npos ) {
+                    std::string first = tilde.substr(0, found);
+                    std::string second = tilde.substr(found +2, tilde.length() );
+
+                    menuPixmap->DrawText(cPoint(Left, Top), first.c_str(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+                    int l = font->Width( first.c_str() );
+                    menuPixmap->DrawText(cPoint(Left + l, Top), second.c_str(), ColorExtraTextFg, ColorBg, font, menuItemWidth - Left - l - marginItem);
+                } else if ( found2 != string::npos ) {
+                    std::string first = tilde.substr(0, found2);
+                    std::string second = tilde.substr(found2 +1, tilde.length() );
+
+                    menuPixmap->DrawText(cPoint(Left, Top), first.c_str(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+                    int l = font->Width( first.c_str() );
+                    l += font->Width("X");
+                    menuPixmap->DrawText(cPoint(Left + l, Top), second.c_str(), ColorExtraTextFg, ColorBg, font, menuItemWidth - Left - l - marginItem);
+                } else
+                    menuPixmap->DrawText(cPoint(Left, Top), File, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top), File, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            }
+        }
+    } else if( Config.MenuTimerView == 2 || Config.MenuTimerView == 3 ) {
+        buffer = cString::sprintf("%s%s%s.  %02d:%02d - %02d:%02d",
+                    *name, *name && **name ? " " : "", *day,
+                    Timer->Start() / 100, Timer->Start() % 100,
+                    Timer->Stop() / 100, Timer->Stop() % 100);
+        menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+
+        if( Current && fontSml->Width(File) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+            menuItemScroller.AddScroller(File, cRect(Left, Top + fontHeight + menuTop, menuItemWidth - Left - marginItem - scrollBarWidth, fontSmlHeight), ColorFg, clrTransparent, fontSml, ColorExtraTextFg);
+        } else {
+            if( Config.MenuItemParseTilde ) {
+                std::string tilde = File;
+                size_t found = tilde.find(" ~ ");
+                size_t found2 = tilde.find("~");
+                if( found != string::npos ) {
+                    std::string first = tilde.substr(0, found);
+                    std::string second = tilde.substr(found +2, tilde.length() );
+
+                    menuPixmap->DrawText(cPoint(Left, Top + fontHeight), first.c_str(), ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+                    int l = fontSml->Width( first.c_str() );
+                    menuPixmap->DrawText(cPoint(Left + l, Top + fontHeight), second.c_str(), ColorExtraTextFg, ColorBg, fontSml, menuItemWidth - Left - l - marginItem);
+                } else if ( found2 != string::npos ) {
+                    std::string first = tilde.substr(0, found2);
+                    std::string second = tilde.substr(found2 +1, tilde.length() );
+
+                    menuPixmap->DrawText(cPoint(Left, Top + fontHeight), first.c_str(), ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+                    int l = fontSml->Width( first.c_str() );
+                    l += fontSml->Width("X");
+                    menuPixmap->DrawText(cPoint(Left + l, Top + fontHeight), second.c_str(), ColorExtraTextFg, ColorBg, fontSml, menuItemWidth - Left - l - marginItem);
+                } else
+                    menuPixmap->DrawText(cPoint(Left, Top + fontHeight), File, ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top + fontHeight), File, ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+            }
+        }
+    }
+
+    sDecorBorder ib;
+    ib.Left = Config.decorBorderMenuItemSize;
+    ib.Top = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuItemSize + y;
+
+    ib.Width = menuItemWidth - Config.decorBorderMenuItemSize*2;
+
+    if( isScrolling ) {
+        ib.Width -= scrollBarWidth;
+    }
+
+    ib.Width = menuItemWidth;
+
+    ib.Height = Height;
+    ib.Size = Config.decorBorderMenuItemSize;
+    ib.Type = Config.decorBorderMenuItemType;
+
+    if( Current ) {
+        ib.ColorFg = Config.decorBorderMenuItemCurFg;
+        ib.ColorBg = Config.decorBorderMenuItemCurBg;
+    } else {
+        if( Selectable ) {
+            ib.ColorFg = Config.decorBorderMenuItemSelFg;
+            ib.ColorBg = Config.decorBorderMenuItemSelBg;
+        } else {
+            ib.ColorFg = Config.decorBorderMenuItemFg;
+            ib.ColorBg = Config.decorBorderMenuItemBg;
+        }
+    }
+
+    DecorBorderDraw(ib.Left, ib.Top, ib.Width, ib.Height,
+        ib.Size, ib.Type, ib.ColorFg, ib.ColorBg, BorderMenuItem);
+
+    if( !isScrolling ) {
+        ItemBorderInsertUnique(ib);
+    }
+
+    if( Config.MenuTimerView == 3 && Current ) {
+        DrawItemExtraEvent(Event, tr("timer not enabled"));
+    }
+
+    return true;
+}
+
+bool cFlatDisplayMenu::SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch) {
+    if( Config.MenuEventView == 0 )
+        return false;
+
+    cImage *img = NULL;
+    cString buffer;
+    int y = Index * itemEventHeight;
+
+    if( Current )
+        menuItemScroller.Clear();
+
+    int Height = fontHeight;
+    if( Config.MenuEventView == 2 || Config.MenuEventView == 3 )
+        Height = fontHeight + fontSmlHeight + marginItem*2 + Config.decorProgressMenuItemSize/2;
+
+    menuItemWidth = menuWidth - Config.decorBorderMenuItemSize*2;
+    if( Config.MenuEventView == 2 || Config.MenuEventView == 3 )
+        menuItemWidth *= 0.6;
+
+    if( isScrolling )
+        menuItemWidth -= scrollBarWidth;
+
+    tColor ColorFg, ColorBg, ColorExtraTextFg;
+    ColorExtraTextFg = Theme.Color(clrMenuItemExtraTextFont);
+    if (Current) {
+        ColorFg = Theme.Color(clrItemCurrentFont);
+        ColorBg = Theme.Color(clrItemCurrentBg);
+        ColorExtraTextFg = Theme.Color(clrMenuItemExtraTextCurrentFont);
+    }
+    else {
+        if( Selectable ) {
+            ColorFg = Theme.Color(clrItemSelableFont);
+            ColorBg = Theme.Color(clrItemSelableBg);
+        } else {
+            ColorFg = Theme.Color(clrItemFont);
+            ColorBg = Theme.Color(clrItemBg);
+        }
+    }
+
+    if( y + itemEventHeight > menuItemLastHeight )
+        menuItemLastHeight = y + itemEventHeight;
+
+    menuPixmap->DrawRectangle(cRect(Config.decorBorderMenuItemSize, y, menuItemWidth, Height), ColorBg);
+
+    int Left = 0, Top = 0, LeftSecond = 0;
+    LeftSecond = Left = Config.decorBorderMenuItemSize + marginItem;
+    Top = y;
+    int imageTop = Top;
+    int w = 0;
+
+    if( !Channel ) {
+        TopBarSetMenuLogo( ItemEventLastChannelName );
+    }
+
+    if( Channel ) {
+        ItemEventLastChannelName = Channel->Name();
+        cString ws = cString::sprintf("%d", Channels.MaxNumber());
+        w = font->Width(ws);
+        if( !Channel->GroupSep() ) {
+            buffer = cString::sprintf("%d", Channel->Number());
+            int Width = font->Width(buffer);
+            if( Width < w )
+                Width = w;
+            menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, font, Width, fontHeight, taRight);
+        }
+        Left += w + marginItem;
+
+        int imageLeft = Left;
+        int imageBGHeight = fontHeight;
+        int imageBGWidth = fontHeight*1.34;
+        cImage *imgBG = imgLoader.LoadIcon("logo_background", imageBGWidth, imageBGHeight);
+        if( imgBG && !Channel->GroupSep() ) {
+            imageBGHeight = imgBG->Height();
+            imageBGWidth = imgBG->Width();
+            imageTop = Top + (fontHeight - imgBG->Height()) / 2;
+            menuIconsBGPixmap->DrawImage( cPoint(imageLeft, imageTop), *imgBG );
+        }
+        img = imgLoader.LoadLogo(Channel->Name(), imageBGWidth - 4, imageBGHeight - 4);
+        if( img ) {
+            imageTop = Top + (imageBGHeight - img->Height()) / 2;
+            imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+            menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+        } else {
+            bool isRadioChannel = ((!Channel->Vpid())&&(Channel->Apid(0))) ? true : false;
+
+            if( isRadioChannel ) {
+                img = imgLoader.LoadIcon("radio", imageBGWidth - 10, imageBGHeight - 10);
+                if( img ) {
+                    imageTop = Top + (imageBGHeight - img->Height()) / 2;
+                    imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+                    menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+                }
+            } else if( Channel->GroupSep() ) {
+                img = imgLoader.LoadIcon("changroup", imageBGWidth - 10, imageBGHeight - 10);
+                if( img ) {
+                    imageTop = Top + (imageBGHeight - img->Height()) / 2;
+                    imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+                    menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+                }
+            } else {
+                img = imgLoader.LoadIcon("tv", imageBGWidth - 10, imageBGHeight - 10);
+                if( img ) {
+                    imageTop = Top + (imageBGHeight - img->Height()) / 2;
+                    imageLeft = Left + (imageBGWidth - img->Width()) / 2;
+                    menuIconsPixmap->DrawImage( cPoint(imageLeft, imageTop), *img );
+                }
+            }
+        }
+        Left += imageBGWidth + marginItem * 2;
+        LeftSecond = Left;
+
+        cString channame;
+
+        w = menuItemWidth / 10 * 2;
+        if( !isScrolling )
+            w = (menuItemWidth - scrollBarWidth)/ 10 * 2;
+
+        if( Config.MenuEventView == 2 || Config.MenuEventView == 3 ) {
+            channame = Channel->Name();
+            w = font->Width(channame);
+        } else
+            channame = Channel->ShortName(true);
+
+        if( Channel->GroupSep() ) {
+            int lineTop = Top + (fontHeight - 3) / 2;
+            menuPixmap->DrawRectangle(cRect( Left, lineTop, menuItemWidth - Left, 3), ColorFg);
+            Left += w / 2;
+            cString groupname = cString::sprintf(" %s ", *channame);
+            menuPixmap->DrawText(cPoint(Left, Top), groupname, ColorFg, ColorBg, font, 0, 0, taCenter);
+        } else
+            menuPixmap->DrawText(cPoint(Left, Top), channame, ColorFg, ColorBg, font, w);
+
+        Left += w + marginItem * 2;
+
+        if( Event ) {
+            int PBWidth = menuItemWidth / 20;
+
+            if( !isScrolling )
+                PBWidth = (menuItemWidth - scrollBarWidth) / 20;
+            time_t now = time(NULL);
+
+            if( (now >= (Event->StartTime() - 2*60) ) ) {
+                int total = Event->EndTime() - Event->StartTime();
+                if( total >= 0 ) {
+                    // calculate progress bar
+                    double progress = (int)roundf( (float)(time(NULL) - Event->StartTime()) / (float) (Event->Duration()) * 100.0);
+                    if(progress < 0)
+                        progress = 0.;
+                    else if(progress > 100)
+                        progress = 100;
+                    int PBTop =  y + (itemEventHeight - Config.MenuItemPadding)/2 - Config.decorProgressMenuItemSize/2 - Config.decorBorderMenuItemSize;
+                    int PBLeft = Left;
+                    int PBHeight = Config.decorProgressMenuItemSize;
+
+
+                    if( (Config.MenuEventView == 2 || Config.MenuEventView == 3) ) {
+                        PBTop =  y + fontHeight + fontSmlHeight + marginItem;
+                        PBWidth = menuItemWidth - LeftSecond - scrollBarWidth - marginItem * 2;
+                        if( isScrolling )
+                            PBWidth += scrollBarWidth;
+
+                        PBLeft = LeftSecond;
+                        PBHeight = Config.decorProgressMenuItemSize / 2;
+                    }
+
+                    if( Current )
+                        ProgressBarDrawRaw(menuPixmap, menuPixmap, cRect( PBLeft, PBTop, PBWidth, PBHeight),
+                            cRect( PBLeft, PBTop, PBWidth, PBHeight), progress, 100,
+                            Config.decorProgressMenuItemCurFg, Config.decorProgressMenuItemCurBarFg, Config.decorProgressMenuItemCurBg, Config.decorProgressMenuItemType, false);
+                    else
+                        ProgressBarDrawRaw(menuPixmap, menuPixmap, cRect( PBLeft, PBTop, PBWidth, PBHeight),
+                            cRect( PBLeft, PBTop, PBWidth, PBHeight), progress, 100,
+                            Config.decorProgressMenuItemFg, Config.decorProgressMenuItemBarFg, Config.decorProgressMenuItemBg, Config.decorProgressMenuItemType, false);
+                }
+            }
+            Left += PBWidth + marginItem*2;
+        }
+    }
+
+    if( WithDate && Event && Selectable ) {
+        if( (Config.MenuEventView == 2 || Config.MenuEventView == 3) && Channel )
+            w = fontSml->Width("XXX 99. ") + marginItem;
+        else
+            w = font->Width("XXX 99. ") + marginItem;
+
+        struct tm tm_r;
+        time_t Day = Event->StartTime();
+        localtime_r(&Day, &tm_r);
+        char buf[8];
+        strftime(buf, sizeof(buf), "%2d", &tm_r);
+
+        cString DateString = cString::sprintf("%s %s. ", *WeekDayName( (time_t)Event->StartTime()), buf );
+        if( (Config.MenuEventView == 2 || Config.MenuEventView == 3) && Channel ) {
+            menuPixmap->DrawText(cPoint(LeftSecond, Top + fontHeight), DateString, ColorFg, ColorBg, fontSml, w);
+            LeftSecond += w + marginItem;
+        } else
+            menuPixmap->DrawText(cPoint(Left, Top), DateString, ColorFg, ColorBg, font, w, fontHeight, taRight);
+
+        Left += w + marginItem;
+    }
+
+    int imageHeight = fontHeight;
+    if( (Config.MenuEventView == 2 || Config.MenuEventView == 3) && Channel && Event && Selectable ) {
+        Top += fontHeight;
+        Left = LeftSecond;
+        imageHeight = fontSmlHeight;
+        menuPixmap->DrawText(cPoint(Left, Top), Event->GetTimeString(), ColorFg, ColorBg, fontSml);
+        Left += fontSml->Width( Event->GetTimeString() ) + marginItem;
+    } else if( (Config.MenuEventView == 2 || Config.MenuEventView == 3) && Event && Selectable ){
+        imageHeight = fontHeight;
+        menuPixmap->DrawText(cPoint(Left, Top), Event->GetTimeString(), ColorFg, ColorBg, font);
+        Left += font->Width( Event->GetTimeString() ) + marginItem;
+    } else if( Event && Selectable ){
+        menuPixmap->DrawText(cPoint(Left, Top), Event->GetTimeString(), ColorFg, ColorBg, font);
+        Left += font->Width( Event->GetTimeString() ) + marginItem;
+    }
+
+    if( TimerMatch == tmFull ) {
+        img = NULL;
+        if( Current )
+            img = imgLoader.LoadIcon("timer_full_cur", imageHeight, imageHeight);
+        if( img == NULL )
+            img = imgLoader.LoadIcon("timer_full", imageHeight, imageHeight);
+
+        if( img ) {
+            imageTop = Top;
+            menuIconsPixmap->DrawImage( cPoint(Left, imageTop), *img );
+        }
+    } else if( TimerMatch == tmPartial ) {
+        img = NULL;
+        if( Current )
+            img = imgLoader.LoadIcon("timer_partial_cur", imageHeight, imageHeight);
+        if( img == NULL )
+            img = imgLoader.LoadIcon("timer_partial", imageHeight, imageHeight);
+
+        if( img ) {
+            imageTop = Top;
+            menuIconsPixmap->DrawImage( cPoint(Left, imageTop), *img );
+        }
+    }
+    Left += imageHeight + marginItem;
+    if( Event && Selectable ) {
+        if( Event->Vps() && (Event->Vps() - Event->StartTime()) ) {
+            img = NULL;
+            if( Current )
+                img = imgLoader.LoadIcon("vps_cur", imageHeight, imageHeight);
+            if( img == NULL )
+                img = imgLoader.LoadIcon("vps", imageHeight, imageHeight);
+
+            if( img ) {
+                imageTop = Top;
+                menuIconsPixmap->DrawImage( cPoint(Left, imageTop), *img );
+            }
+        }
+        Left += imageHeight + marginItem;
+
+        if( (Config.MenuEventView == 2 || Config.MenuEventView == 3) && Channel ) {
+            if( Current ) {
+                if( Event->ShortText() ) {
+                    cString t = cString::sprintf("%s~%s", Event->Title(), Event->ShortText() );
+                    if( fontSml->Width(t) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                        menuItemScroller.AddScroller(*t, cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontSmlHeight), ColorFg, clrTransparent, fontSml, ColorExtraTextFg);
+                    } else {
+                        menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+                        Left += fontSml->Width( Event->Title() ) + fontSml->Width("~");
+                        cString ShortText = cString::sprintf("%s", Event->ShortText());
+                        menuPixmap->DrawText(cPoint(Left, Top), ShortText, ColorExtraTextFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+                    }
+                } else {
+                    if( fontSml->Width(Event->Title()) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                        menuItemScroller.AddScroller(Event->Title(), cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontSmlHeight), ColorFg, clrTransparent, fontSml, ColorExtraTextFg);
+                    } else {
+                        menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+                    }
+                }
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+                if( Event->ShortText() ) {
+                    Left += fontSml->Width( Event->Title() ) + font->Width("~");
+                    cString ShortText = cString::sprintf("%s", Event->ShortText());
+                    menuPixmap->DrawText(cPoint(Left, Top), ShortText, ColorExtraTextFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+                }
+            }
+        } else if( (Config.MenuEventView == 2 || Config.MenuEventView == 3) ) {
+            if( Current && font->Width(Event->Title()) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                menuItemScroller.AddScroller(Event->Title(), cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorFg, clrTransparent, font);
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            }
+            if( Event->ShortText() ) {
+                Top += fontHeight;
+                if( Current && fontSml->Width(Event->ShortText()) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                    menuItemScroller.AddScroller(Event->ShortText(), cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorExtraTextFg, clrTransparent, fontSml);
+                } else {
+                    menuPixmap->DrawText(cPoint(Left, Top), Event->ShortText(), ColorExtraTextFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+                }
+            }
+        } else {
+            if( Current ) {
+                if( Event->ShortText() ) {
+                    cString t = cString::sprintf("%s~%s", Event->Title(), Event->ShortText() );
+                    if( font->Width(t) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                        menuItemScroller.AddScroller(*t, cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorFg, clrTransparent, font, ColorExtraTextFg);
+                    } else {
+                        menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+                        Left += font->Width(Event->Title()) + font->Width("~");
+                        cString ShortText = cString::sprintf("%s", Event->ShortText());
+                        menuPixmap->DrawText(cPoint(Left, Top), ShortText, ColorExtraTextFg, ColorBg, font, menuItemWidth - Left - marginItem);
+                    }
+                } else {
+                    if( font->Width(Event->Title()) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                        menuItemScroller.AddScroller(Event->Title(), cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorFg, clrTransparent, font, ColorExtraTextFg);
+                    } else {
+                        menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+                    }
+                }
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+                if( Event->ShortText() ) {
+                    Left += font->Width(Event->Title()) + font->Width("~");
+                    cString ShortText = cString::sprintf("%s", Event->ShortText());
+                    menuPixmap->DrawText(cPoint(Left, Top), ShortText, ColorExtraTextFg, ColorBg, font, menuItemWidth - Left - marginItem);
+                }
+            }
+        }
+    } else if( Event ) {
+        try {
+            // extract date from Separator
+            std::string sep = Event->Title();
+            if( sep.size() > 12 ) {
+                std::size_t found = sep.find(" -");
+                if( found >= 10 ) {
+                    std::string date = sep.substr(found - 10, 10);
+                    int lineTop = Top + (fontHeight - 3) / 2;
+                    menuPixmap->DrawRectangle(cRect( 0, lineTop, menuItemWidth, 3), ColorFg);
+                    cString datespace = cString::sprintf(" %s ", date.c_str());
+                    menuPixmap->DrawText(cPoint(LeftSecond + menuWidth / 10 * 2, Top), datespace, ColorFg, ColorBg, font, 0, 0, taCenter);
+                } else
+                    menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            } else
+                menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+        }
+        catch( ... ) {
+            menuPixmap->DrawText(cPoint(Left, Top), Event->Title(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+        }
+    }
+
+    sDecorBorder ib;
+    ib.Left = Config.decorBorderMenuItemSize;
+    ib.Top = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuItemSize + y;
+
+    ib.Width = menuItemWidth - Config.decorBorderMenuItemSize*2;
+
+    if( isScrolling ) {
+        ib.Width -= scrollBarWidth;
+    }
+
+    ib.Width = menuItemWidth;
+
+    ib.Height = Height;
+    ib.Size = Config.decorBorderMenuItemSize;
+    ib.Type = Config.decorBorderMenuItemType;
+
+    if( Current ) {
+        ib.ColorFg = Config.decorBorderMenuItemCurFg;
+        ib.ColorBg = Config.decorBorderMenuItemCurBg;
+    } else {
+        if( Selectable ) {
+            ib.ColorFg = Config.decorBorderMenuItemSelFg;
+            ib.ColorBg = Config.decorBorderMenuItemSelBg;
+        } else {
+            ib.ColorFg = Config.decorBorderMenuItemFg;
+            ib.ColorBg = Config.decorBorderMenuItemBg;
+        }
+    }
+
+    DecorBorderDraw(ib.Left, ib.Top, ib.Width, ib.Height,
+        ib.Size, ib.Type, ib.ColorFg, ib.ColorBg, BorderMenuItem);
+
+    if( !isScrolling ) {
+        ItemBorderInsertUnique(ib);
+    }
+
+    if( Config.MenuEventView == 3  && Current ) {
+        DrawItemExtraEvent(Event, "");
+    }
+
+    return true;
+}
+
+bool cFlatDisplayMenu::SetItemRecording(const cRecording *Recording, int Index, bool Current, bool Selectable, int Level, int Total, int New) {
+    if( Config.MenuRecordingView == 0 )
+        return false;
+
+    cString buffer;
+    cString RecName = GetRecordingName(Recording, Level, Total == 0);
+
+    if( Level > 0 ) {
+        RecFolder = GetRecordingName(Recording, Level-1, true);
+    } else {
+        RecFolder = "";
+    }
+    LastItemRecordingLevel = Level;
+
+    if( LastRecFolder != RecFolder ) {
+        int recCount = 0, recNewCount = 0;
+        LastRecFolder = RecFolder;
+        if( RecFolder != "" && LastItemRecordingLevel > 0 ) {
+            for(cRecording *Rec = Recordings.First(); Rec; Rec = Recordings.Next(Rec)) {
+                std::string RecFolder2 = GetRecordingName(Rec, LastItemRecordingLevel-1, true);
+                if( RecFolder == RecFolder2 ) {
+                    recCount++;
+                    if( Rec->IsNew() )
+                        recNewCount++;
+                }
+            }
+        } else {
+            for(cRecording *Rec = Recordings.First(); Rec; Rec = Recordings.Next(Rec)) {
+                recCount++;
+                if( Rec->IsNew() )
+                    recNewCount++;
+            }
+        }
+        cString newTitle = cString::sprintf("%s (%d*/%d)", *LastTitle, recNewCount, recCount);
+        TopBarSetTitleWithoutClear(*newTitle);
+    }
+
+    if( Current )
+        menuItemScroller.Clear();
+
+    int y = Index * itemRecordingHeight;
+
+    int Height = fontHeight;
+    if( Config.MenuRecordingView == 2 || Config.MenuRecordingView == 3 )
+        Height = fontHeight + fontSmlHeight + marginItem;
+
+    menuItemWidth = menuWidth - Config.decorBorderMenuItemSize*2;
+    if( Config.MenuRecordingView == 2 || Config.MenuRecordingView == 3 )
+        menuItemWidth *= 0.5;
+
+    if( isScrolling )
+        menuItemWidth -= scrollBarWidth;
+
+    tColor ColorFg, ColorBg, ColorExtraTextFg;
+    ColorExtraTextFg = Theme.Color(clrMenuItemExtraTextFont);
+    if (Current) {
+        ColorFg = Theme.Color(clrItemCurrentFont);
+        ColorBg = Theme.Color(clrItemCurrentBg);
+        ColorExtraTextFg = Theme.Color(clrMenuItemExtraTextCurrentFont);
+    }
+    else {
+        if( Selectable ) {
+            ColorFg = Theme.Color(clrItemSelableFont);
+            ColorBg = Theme.Color(clrItemSelableBg);
+        } else {
+            ColorFg = Theme.Color(clrItemFont);
+            ColorBg = Theme.Color(clrItemBg);
+        }
+    }
+
+    if( y + itemRecordingHeight > menuItemLastHeight )
+        menuItemLastHeight = y + itemRecordingHeight;
+
+    menuPixmap->DrawRectangle(cRect(Config.decorBorderMenuItemSize, y, menuItemWidth, Height), ColorBg);
+    cImage *img = NULL;
+    cImage *imgRecNew = NULL;
+    if( Current )
+        imgRecNew = imgLoader.LoadIcon("recording_new_cur", fontHeight, fontHeight);
+    if( imgRecNew == NULL )
+        imgRecNew = imgLoader.LoadIcon("recording_new", fontHeight, fontHeight);
+
+    cImage *imgRecNewSml = NULL;
+    if( Current )
+        imgRecNewSml = imgLoader.LoadIcon("recording_new_cur", fontSmlHeight, fontSmlHeight);
+    if( imgRecNewSml == NULL )
+        imgRecNewSml = imgLoader.LoadIcon("recording_new", fontSmlHeight, fontSmlHeight);
+
+    cImage *imgRecCut = NULL;
+    if( Current )
+        imgRecCut = imgLoader.LoadIcon("recording_cutted_cur", fontHeight, fontHeight);
+    if( imgRecCut == NULL )
+        imgRecCut = imgLoader.LoadIcon("recording_cutted", fontHeight, fontHeight);
+
+    int Left, Top;
+    Left = Config.decorBorderMenuItemSize + marginItem;
+    Top = y;
+
+    if( Config.MenuRecordingView == 1 ) {
+        int LeftWidth = Left + fontHeight + imgRecNew->Width() + imgRecCut->Width() +
+            marginItem * 3 + font->Width("99.99.99  99:99  99:99 ");
+
+        if( Total == 0 ) {
+            img = imgLoader.LoadIcon("recording", fontHeight, fontHeight);
+            if( img ) {
+                menuIconsPixmap->DrawImage( cPoint(Left, Top), *img );
+                Left += fontHeight + marginItem;
+            }
+
+            //int Minutes = max(0, (Recording->LengthInSeconds() + 30) / 60);
+            int Minutes = (Recording->LengthInSeconds() + 30) / 60;
+            cString Length = cString::sprintf("%02d:%02d", Minutes / 60, Minutes % 60);
+            buffer = cString::sprintf("%s  %s  %s ", *ShortDateString(Recording->Start()), *TimeString(Recording->Start()), *Length);
+
+            menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+
+            Left += font->Width( buffer );
+            if( Recording->IsNew() ) {
+                if( imgRecNew ) {
+                    menuIconsPixmap->DrawImage( cPoint(Left, Top), *imgRecNew );
+                }
+            }
+            Left += imgRecNew->Width() + marginItem;
+            if (Recording->IsEdited()) {
+                if( imgRecCut ) {
+                    menuIconsPixmap->DrawImage( cPoint(Left, Top), *imgRecCut );
+                }
+            }
+            Left += imgRecCut->Width() + marginItem;
+
+            if( Current && font->Width(RecName) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                menuItemScroller.AddScroller(RecName, cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorFg, clrTransparent, font);
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top), RecName, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            }
+        } else if( Total > 0 ) {
+            img = imgLoader.LoadIcon("folder", fontHeight, fontHeight);
+            if( img ) {
+                menuIconsPixmap->DrawImage( cPoint(Left, Top), *img );
+                Left += img->Width() + marginItem;
+            }
+
+            buffer = cString::sprintf("%d  ", Total);
+            menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, font, font->Width("  999"), fontHeight, taLeft);
+            Left += font->Width("  999 ");
+
+            if( imgRecNew )
+                menuIconsPixmap->DrawImage( cPoint(Left, Top), *imgRecNew );
+            Left += imgRecNew->Width() + marginItem;
+            buffer = cString::sprintf("%d", New);
+            menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            Left += font->Width(" 999 ");
+            if( Config.MenuItemRecordingShowFolderDate != 0 ) {
+                buffer = cString::sprintf("  (%s)", *ShortDateString(GetLastRecTimeFromFolder(Recording, Level)));
+                menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorExtraTextFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            }
+
+            if( Current && font->Width(RecName) > (menuItemWidth - LeftWidth - marginItem) && Config.ScrollerEnable ) {
+                menuItemScroller.AddScroller(RecName, cRect(LeftWidth, Top + menuTop, menuItemWidth - LeftWidth - marginItem, fontHeight), ColorFg, clrTransparent, font);
+            } else {
+                menuPixmap->DrawText(cPoint(LeftWidth, Top), RecName, ColorFg, ColorBg, font, menuItemWidth - LeftWidth - marginItem);
+            }
+            LeftWidth += font->Width(RecName) + marginItem*2;
+        } else if( Total == -1 ) {
+            img = imgLoader.LoadIcon("folder", fontHeight, fontHeight);
+            if( img ) {
+                menuIconsPixmap->DrawImage( cPoint(Left, Top), *img );
+                Left += img->Width() + marginItem;
+            }
+
+            if( Current && font->Width(Recording->FileName()) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                menuItemScroller.AddScroller(Recording->FileName(), cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorFg, clrTransparent, font);
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top), Recording->FileName(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            }
+        }
+    } else {
+        if( Total == 0 ) {
+            img = imgLoader.LoadIcon("recording", fontHeight, fontHeight);
+            if( img ) {
+                menuIconsPixmap->DrawImage( cPoint(Left, Top), *img );
+                Left += fontHeight + marginItem;
+            }
+            int ImagesWidth = imgRecNew->Width() + imgRecCut->Width() + marginItem*2 + scrollBarWidth;
+            if( isScrolling )
+                ImagesWidth -= scrollBarWidth;
+
+            if( Current && font->Width(RecName) > (menuItemWidth - Left - marginItem - ImagesWidth) && Config.ScrollerEnable ) {
+                menuItemScroller.AddScroller(RecName, cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem - ImagesWidth, fontHeight), ColorFg, clrTransparent, font);
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top), RecName, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem - ImagesWidth);
+            }
+
+            Top += fontHeight;
+
+            int Minutes = (Recording->LengthInSeconds() + 30) / 60;
+            cString Length = cString::sprintf("%02d:%02d", Minutes / 60, Minutes % 60);
+            buffer = cString::sprintf("%s  %s  %s ", *ShortDateString(Recording->Start()), *TimeString(Recording->Start()), *Length);
+
+            menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+
+            Top -= fontHeight;
+            Left = menuItemWidth - ImagesWidth;
+            if( Recording->IsNew() ) {
+                if( imgRecNew ) {
+                    menuIconsPixmap->DrawImage( cPoint(Left, Top), *imgRecNew );
+                }
+            }
+            Left += imgRecNew->Width() + marginItem;
+            if (Recording->IsEdited()) {
+                if( imgRecCut ) {
+                    menuIconsPixmap->DrawImage( cPoint(Left, Top), *imgRecCut );
+                }
+            }
+            Left += imgRecCut->Width() + marginItem;
+
+        } else if( Total > 0 ) {
+            img = imgLoader.LoadIcon("folder", fontHeight, fontHeight);
+            if( img ) {
+                menuIconsPixmap->DrawImage( cPoint(Left, Top), *img );
+                Left += img->Width() + marginItem;
+            }
+
+            if( Current && font->Width(RecName) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                menuItemScroller.AddScroller(RecName, cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorFg, clrTransparent, font);
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top), RecName, ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            }
+
+            Top += fontHeight;
+            buffer = cString::sprintf("  %d", Total);
+            menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, fontSml, fontSml->Width("  999"), fontSmlHeight, taRight);
+            Left += fontSml->Width("  999 ");
+
+            if( imgRecNewSml )
+                menuIconsPixmap->DrawImage( cPoint(Left, Top), *imgRecNewSml );
+            Left += imgRecNewSml->Width() + marginItem;
+            buffer = cString::sprintf("%d", New);
+            menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+            Left += fontSml->Width(" 999 ");
+
+            if( Config.MenuItemRecordingShowFolderDate != 0 ) {
+                buffer = cString::sprintf("  (%s)", *ShortDateString(GetLastRecTimeFromFolder(Recording, Level)));
+                menuPixmap->DrawText(cPoint(Left, Top), buffer, ColorExtraTextFg, ColorBg, fontSml, menuItemWidth - Left - marginItem);
+            }
+        } else if( Total == -1 ) {
+            img = imgLoader.LoadIcon("folder", fontHeight, fontHeight);
+            if( img ) {
+                menuIconsPixmap->DrawImage( cPoint(Left, Top), *img );
+                Left += img->Width() + marginItem;
+            }
+            if( Current && font->Width(Recording->FileName()) > (menuItemWidth - Left - marginItem) && Config.ScrollerEnable ) {
+                menuItemScroller.AddScroller(Recording->FileName(), cRect(Left, Top + menuTop, menuItemWidth - Left - marginItem, fontHeight), ColorFg, clrTransparent, font);
+            } else {
+                menuPixmap->DrawText(cPoint(Left, Top), Recording->FileName(), ColorFg, ColorBg, font, menuItemWidth - Left - marginItem);
+            }
+        }
+    }
+
+    sDecorBorder ib;
+    ib.Left = Config.decorBorderMenuItemSize;
+    ib.Top = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuItemSize + y;
+
+    ib.Width = menuItemWidth - Config.decorBorderMenuItemSize*2;
+
+    if( isScrolling ) {
+        ib.Width -= scrollBarWidth;
+    }
+
+    ib.Width = menuItemWidth;
+
+    ib.Height = Height;
+    ib.Size = Config.decorBorderMenuItemSize;
+    ib.Type = Config.decorBorderMenuItemType;
+
+    if( Current ) {
+        ib.ColorFg = Config.decorBorderMenuItemCurFg;
+        ib.ColorBg = Config.decorBorderMenuItemCurBg;
+    } else {
+        if( Selectable ) {
+            ib.ColorFg = Config.decorBorderMenuItemSelFg;
+            ib.ColorBg = Config.decorBorderMenuItemSelBg;
+        } else {
+            ib.ColorFg = Config.decorBorderMenuItemFg;
+            ib.ColorBg = Config.decorBorderMenuItemBg;
+        }
+    }
+
+    DecorBorderDraw(ib.Left, ib.Top, ib.Width, ib.Height,
+        ib.Size, ib.Type, ib.ColorFg, ib.ColorBg, BorderMenuItem);
+
+    if( !isScrolling ) {
+        ItemBorderInsertUnique(ib);
+    }
+
+    if( Config.MenuRecordingView == 3 && Current ) {
+        DrawItemExtraRecording(Recording, tr("no recording info"));
+    }
+
+    return true;
+}
+
+void cFlatDisplayMenu::SetEvent(const cEvent *Event) {
+    if( !Event )
+        return;
+
+    #ifdef DEBUGEPGTIME
+        uint32_t tick0 = GetMsTicks();
+    #endif
+
+    ShowEvent = true;
+    ShowRecording = false;
+    ShowText = false;
+    ItemBorderClear();
+
+    cLeft = Config.decorBorderMenuContentSize;
+    cTop = chTop + marginItem*3 + fontHeight + fontSmlHeight*2 +
+        Config.decorBorderMenuContentSize + Config.decorBorderMenuContentHeadSize;
+    cWidth = menuWidth - Config.decorBorderMenuContentSize*2;
+    cHeight = osdHeight - (topBarHeight + Config.decorBorderTopBarSize*2 +
+        buttonsHeight + Config.decorBorderButtonSize*2 + marginItem*3 +
+        chHeight + Config.decorBorderMenuContentHeadSize*2 + Config.decorBorderMenuContentSize*2);
+
+    if( !ButtonsDrawn() )
+        cHeight += buttonsHeight + Config.decorBorderButtonSize*2;
+
+    menuItemWidth = cWidth;
+
+    contentHeadPixmap->Fill(clrTransparent);
+    contentHeadPixmap->DrawRectangle(cRect(0, 0, menuWidth, fontHeight + fontSmlHeight*2 + marginItem*2), Theme.Color(clrScrollbarBg));
+    contentHeadIconsPixmap->Fill(clrTransparent);
+
+    cString date = Event->GetDateString();
+    cString startTime = Event->GetTimeString();
+    cString endTime = Event->GetEndTimeString();
+
+    cString timeString = cString::sprintf("%s %s - %s", *date, *startTime, *endTime);
+
+    cString title = Event->Title();
+    cString shortText = Event->ShortText();
+
+    contentHeadPixmap->DrawText(cPoint(marginItem, marginItem), timeString, Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, menuWidth - marginItem*2);
+    contentHeadPixmap->DrawText(cPoint(marginItem, marginItem + fontSmlHeight), title, Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font, menuWidth - marginItem*2);
+    contentHeadPixmap->DrawText(cPoint(marginItem, marginItem + fontSmlHeight + fontHeight), shortText, Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, menuWidth - marginItem*2);
+
+    DecorBorderDraw(chLeft, chTop, chWidth, chHeight, Config.decorBorderMenuContentHeadSize, Config.decorBorderMenuContentHeadType,
+        Config.decorBorderMenuContentHeadFg, Config.decorBorderMenuContentHeadBg);
+
+    // Description
+    ostringstream text, textAdditional;
+    std::string Fsk;
+    std::list<std::string> GenreIcons;
+
+    if( !isempty(Event->Description()) ) {
+        text << Event->Description();
+    }
+
+    if( Config.EpgAdditionalInfoShow ) {
+        text << endl;
+        // Genre
+        bool firstContent = true;
+        for (int i = 0; Event->Contents(i); i++) {
+            if (!isempty(Event->ContentToString(Event->Contents(i)))) { // skip empty (user defined) content
+                if (!firstContent) {
+                    text << ", ";
+                } else {
+                    text << endl << tr("Genre") << ": ";
+                }
+                text << Event->ContentToString(Event->Contents(i));
+                firstContent = false;
+                GenreIcons.push_back(GetGenreIcon(Event->Contents(i)));
+            }
+        }
+        // FSK
+        if( Event->ParentalRating() ) {
+            text << endl << tr("FSK") << ": ";
+            text << *Event->GetParentalRatingString();
+            Fsk = *Event->GetParentalRatingString();
+        }
+        const cComponents *Components = Event->Components();
+        if (Components) {
+            ostringstream audio;
+            bool firstAudio = true;
+            const char *audio_type = NULL;
+            ostringstream subtitle;
+            bool firstSubtitle = true;
+            for (int i = 0; i < Components->NumComponents(); i++) {
+                const tComponent *p = Components->Component(i);
+                switch (p->stream) {
+                    case sc_video_MPEG2:
+                        if (p->description)
+                            textAdditional << tr("Video") << ": " <<  p->description << " (MPEG2)";
+                        else
+                            textAdditional << tr("Video") << ": MPEG2";
+                        break;
+                    case sc_video_H264_AVC:
+                        if (p->description)
+                            textAdditional << tr("Video") << ": " <<  p->description << " (H.264)";
+                        else
+                            textAdditional << tr("Video") << ": H.264";
+                        break;
+
+                    case sc_audio_MP2:
+                    case sc_audio_AC3:
+                    case sc_audio_HEAAC:
+                        if (firstAudio)
+                            firstAudio = false;
+                        else
+                            audio << ", ";
+                        switch (p->stream) {
+                            case sc_audio_MP2:
+                                // workaround for wrongfully used stream type X 02 05 for AC3
+                                if (p->type == 5)
+                                    audio_type = "AC3";
+                                else
+                                    audio_type = "MP2";
+                                break;
+                            case sc_audio_AC3:
+                                audio_type = "AC3"; break;
+                            case sc_audio_HEAAC:
+                                audio_type = "HEAAC"; break;
+                        }
+                        if (p->description)
+                            audio << p->description << " (" << audio_type << ", " << p->language << ")";
+                        else
+                            audio << p->language << " (" << audio_type << ")";
+                        break;
+                    case sc_subtitle:
+                        if (firstSubtitle)
+                            firstSubtitle = false;
+                        else
+                            subtitle << ", ";
+                        if (p->description)
+                            subtitle << p->description << " (" << p->language << ")";
+                        else
+                            subtitle << p->language;
+                        break;
+                }
+            }
+            if (audio.str().length() > 0) {
+                if( textAdditional.str().length() > 0 )
+                    textAdditional << endl;
+                textAdditional << tr("Audio") << ": "<< audio.str();
+            } if (subtitle.str().length() > 0) {
+                if( textAdditional.str().length() > 0 )
+                    textAdditional << endl;
+                textAdditional << endl << tr("Subtitle") << ": "<< subtitle.str();
+            }
+        }
+    }
+
+    int headIconTop = chHeight - fontHeight - marginItem;
+    int headIconLeft = chWidth - fontHeight - marginItem;
+
+    if( Fsk.length() > 0 ) {
+        cString iconName = cString::sprintf("EPGInfo/FSK/%s", Fsk.c_str());
+        cImage *img = imgLoader.LoadIcon(*iconName, fontHeight, fontHeight);
+        if( img ) {
+            contentHeadIconsPixmap->DrawImage(cPoint(headIconLeft, headIconTop), *img);
+            headIconLeft -= fontHeight + marginItem;
+        } else {
+            isyslog("skinflatplus: FSK icon not found: %s", *iconName);
+            img = imgLoader.LoadIcon("EPGInfo/FSK/unknown", fontHeight, fontHeight);
+            if( img ) {
+                contentHeadIconsPixmap->DrawImage(cPoint(headIconLeft, headIconTop), *img);
+                headIconLeft -= fontHeight + marginItem;
+            }
+        }
+    }
+    while( !GenreIcons.empty() ) {
+        GenreIcons.sort();
+        GenreIcons.unique();
+        cString iconName = cString::sprintf("EPGInfo/Genre/%s", GenreIcons.back().c_str());
+        cImage *img = imgLoader.LoadIcon(*iconName, fontHeight, fontHeight);
+        bool isUnknownDrawn = false;
+        if( img ) {
+            contentHeadIconsPixmap->DrawImage(cPoint(headIconLeft, headIconTop), *img);
+            headIconLeft -= fontHeight + marginItem;
+        } else {
+            isyslog("skinflatplus: Genre icon not found: %s", *iconName);
+            if( !isUnknownDrawn ) {
+                img = imgLoader.LoadIcon("EPGInfo/Genre/unknown", fontHeight, fontHeight);
+                if( img ) {
+                    contentHeadIconsPixmap->DrawImage(cPoint(headIconLeft, headIconTop), *img);
+                    headIconLeft -= fontHeight + marginItem;
+                    isUnknownDrawn = true;
+                }
+            }
+        }
+        GenreIcons.pop_back();
+    }
+
+    #ifdef DEBUGEPGTIME
+        uint32_t tick1 = GetMsTicks();
+        dsyslog("SetEvent info-text time: %d ms", tick1 - tick0);
+    #endif
+
+    std::ostringstream sstrReruns;
+    if( Config.EpgRerunsShow ) {
+        // lent from nopacity
+        cPlugin *epgSearchPlugin = cPluginManager::GetPlugin("epgsearch");
+        if (epgSearchPlugin && !isempty(Event->Title())) {
+            Epgsearch_searchresults_v1_0 data;
+            std::string strQuery = Event->Title();
+            data.useSubTitle = false;
+
+            data.query = (char *)strQuery.c_str();
+            data.mode = 0;
+            data.channelNr = 0;
+            data.useTitle = true;
+            data.useDescription = false;
+
+            if (epgSearchPlugin->Service("Epgsearch-searchresults-v1.0", &data)) {
+                cList<Epgsearch_searchresults_v1_0::cServiceSearchResult>* list = data.pResultList;
+                if (list && (list->Count() > 1)) {
+                    int i = 0;
+                    for (Epgsearch_searchresults_v1_0::cServiceSearchResult *r = list->First(); r && i < 5; r = list->Next(r)) {
+                        if ((Event->ChannelID() == r->event->ChannelID()) && (Event->StartTime() == r->event->StartTime()))
+                            continue;
+                        i++;
+                        sstrReruns << *DayDateTime(r->event->StartTime());
+                        cChannel *channel = Channels.GetByChannelID(r->event->ChannelID(), true, true);
+                        if (channel) {
+                            sstrReruns << ", " << channel->Number() << " -";
+                            sstrReruns << " " << channel->ShortName(true);
+                        }
+                        sstrReruns << ":  " << r->event->Title();
+                        //if (!isempty(r->event->ShortText()))
+                        //    sstrReruns << "~" << r->event->ShortText();
+                        sstrReruns << std::endl;
+                    }
+                    delete list;
+                }
+            }
+        }
+    }
+    #ifdef DEBUGEPGTIME
+        uint32_t tick2 = GetMsTicks();
+        dsyslog("SetEvent reruns time: %d ms", tick2 - tick1);
+    #endif
+
+    bool Scrollable = false;
+    bool FirstRun = true;
+
+    do {
+        if( Scrollable ) {
+            FirstRun = false;
+            cWidth -= scrollBarWidth;
+        }
+
+        ComplexContent.Clear();
+        ComplexContent.SetOsd(osd);
+        ComplexContent.SetPosition(cRect(cLeft, cTop, cWidth, cHeight));
+        ComplexContent.SetBGColor(Theme.Color(clrMenuRecBg));
+        ComplexContent.SetScrollSize(fontHeight);
+        ComplexContent.SetScrollingActive(true);
+
+        int ContentTop = marginItem;
+
+        ostringstream series_info, movie_info;
+
+        std::vector<std::string> actors_path;
+        std::vector<std::string> actors_name;
+        std::vector<std::string> actors_role;
+
+        std::string mediaPath;
+        int mediaWidth = 0;
+        int mediaHeight = 0;
+
+        #ifdef DEBUGEPGTIME
+            uint32_t tick3 = GetMsTicks();
+        #endif
+
+        // first try scraper2vdr
+        static cPlugin *pScraper = cPluginManager::GetPlugin("scraper2vdr");
+        if( !pScraper ) // if it doesn't exit, try tvscraper
+            pScraper = cPluginManager::GetPlugin("tvscraper");
+        if( (Config.TVScraperEPGInfoShowPoster || Config.TVScraperEPGInfoShowActors) && pScraper ) {
+            ScraperGetEventType call;
+            call.event = Event;
+            int seriesId = 0;
+            int episodeId = 0;
+            int movieId = 0;
+
+            if (pScraper->Service("GetEventType", &call)) {
+                seriesId = call.seriesId;
+                episodeId = call.episodeId;
+                movieId = call.movieId;
+            }
+            if( seriesId > 0 ) {
+                cSeries series;
+                series.seriesId = seriesId;
+                series.episodeId = episodeId;
+                if (pScraper->Service("GetSeries", &series)) {
+                    if( series.banners.size() > 0 )
+                        mediaPath = series.banners[0].path;
+                    mediaWidth = cWidth/2 - marginItem*2;
+                    mediaHeight = cHeight - marginItem*2 - fontHeight - 6;
+                    if( Config.TVScraperEPGInfoShowActors ) {
+                        for( unsigned int i = 0; i < series.actors.size(); i++ ) {
+                            if( imgLoader.FileExits(series.actors[i].actorThumb.path) ) {
+                                actors_path.push_back(series.actors[i].actorThumb.path);
+                                actors_name.push_back(series.actors[i].name);
+                                actors_role.push_back(series.actors[i].role);
+                            }
+                        }
+                    }
+                    if( series.name.length() > 0 )
+                        series_info << tr("name: ") << series.name << endl;
+                    if( series.firstAired.length() > 0 )
+                        series_info << tr("first aired: ") << series.firstAired << endl;
+                    if( series.network.length() > 0 )
+                        series_info << tr("network: ") << series.network << endl;
+                    if( series.genre.length() > 0 )
+                        series_info << tr("genre: ") << series.genre << endl;
+                    if( series.rating > 0 )
+                        series_info << tr("rating: ") << series.rating << endl;
+                    if( series.status.length() > 0 )
+                        series_info << tr("status: ") << series.status << endl;
+                    if( series.episode.season > 0 )
+                        series_info << tr("season number: ") << series.episode.season << endl;
+                    if( series.episode.number > 0 )
+                        series_info << tr("episode number: ") << series.episode.number << endl;
+                }
+            } else if (movieId > 0) {
+                cMovie movie;
+                movie.movieId = movieId;
+                if (pScraper->Service("GetMovie", &movie)) {
+                    mediaPath = movie.poster.path;
+                    mediaWidth = cWidth/2 - marginItem*3;
+                    mediaHeight = cHeight - marginItem*2 - fontHeight - 6;
+                    if( Config.TVScraperEPGInfoShowActors ) {
+                        for( unsigned int i = 0; i < movie.actors.size(); i++ ) {
+                            if( imgLoader.FileExits(movie.actors[i].actorThumb.path) ) {
+                                actors_path.push_back(movie.actors[i].actorThumb.path);
+                                actors_name.push_back(movie.actors[i].name);
+                                actors_role.push_back(movie.actors[i].role);
+                            }
+                        }
+                    }
+                    if( movie.title.length() > 0 )
+                        movie_info << tr("title: ") << movie.title << endl;
+                    if( movie.originalTitle.length() > 0 )
+                        movie_info << tr("original title: ") << movie.originalTitle << endl;
+                    if( movie.collectionName.length() > 0 )
+                        movie_info << tr("collection name: ") << movie.collectionName << endl;
+                    if( movie.genres.length() > 0 )
+                        movie_info << tr("genre: ") << movie.genres << endl;
+                    if( movie.releaseDate.length() > 0 )
+                        movie_info << tr("release date: ") << movie.releaseDate << endl;
+                    if( movie.popularity > 0 )
+                        movie_info << tr("popularity: ") << movie.popularity << endl;
+                    if( movie.voteAverage > 0 )
+                        movie_info << tr("vote average: ") << movie.voteAverage << endl;
+                }
+            }
+        }
+
+        #ifdef DEBUGEPGTIME
+            uint32_t tick4 = GetMsTicks();
+            dsyslog("SetEvent tvscraper time: %d ms", tick4 - tick3);
+        #endif
+
+        if( mediaPath.length() > 0 ) {
+            cImage *img = imgLoader.LoadFile(mediaPath.c_str(), mediaWidth, mediaHeight);
+            if( img ) {
+                ComplexContent.AddText(tr("Description"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+                ContentTop += fontHeight;
+                ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuEventTitleLine));
+                ContentTop += 6;
+                ComplexContent.AddImageWithFloatedText(img, CIP_Right, text.str().c_str(), cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                    Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), font);
+            } else if( text.str().length() > 0 ) {
+                ComplexContent.AddText(tr("Description"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+                ContentTop += fontHeight;
+                ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuEventTitleLine));
+                ContentTop += 6;
+                ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                    Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), font);
+            }
+        } else if( text.str().length() > 0 ) {
+            ComplexContent.AddText(tr("Description"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuEventTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), font);
+        }
+
+        if( movie_info.str().length() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Movie information"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuEventTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(movie_info.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), font);
+        }
+
+        if( series_info.str().length() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Series information"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuEventTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(series_info.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), font);
+        }
+        #ifdef DEBUGEPGTIME
+            uint32_t tick5 = GetMsTicks();
+            dsyslog("SetEvent epg-text time: %d ms", tick5 - tick4);
+        #endif
+
+        if( Config.TVScraperEPGInfoShowActors && actors_path.size() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Actors"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuEventTitleLine));
+            ContentTop += 6;
+
+            int actorsPerLine = 6;
+            int numActors = actors_path.size();
+            int actorWidth = cWidth / actorsPerLine - marginItem*4;
+            int picsPerLine = (cWidth - marginItem*2) / actorWidth;
+            int picLines = numActors / picsPerLine;
+            if( numActors%picsPerLine != 0 )
+                picLines++;
+            int actorMargin = ((cWidth - marginItem*2) - actorWidth*actorsPerLine) / (actorsPerLine-1);
+            int x = marginItem;
+            int y = ContentTop;
+            int actor = 0;
+            for (int row = 0; row < picLines; row++) {
+                for (int col = 0; col < picsPerLine; col++) {
+                    if (actor == numActors)
+                        break;
+                    std::string path = actors_path[actor];
+                    cImage *img = imgLoader.LoadFile(path.c_str(), actorWidth, 999);
+                    if( img ) {
+                        ComplexContent.AddImage(img, cRect(x, y, 0, 0));
+                        std::string name = actors_name[actor];
+                        std::stringstream sstrRole;
+                        if( actors_role[actor].length() > 0 )
+                            sstrRole << "\"" << actors_role[actor] << "\"";
+                        std::string role = sstrRole.str();
+                        ComplexContent.AddText(name.c_str(), false, cRect(x, y + img->Height() + marginItem, actorWidth, 0), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, actorWidth, fontSmlHeight, taCenter);
+                        ComplexContent.AddText(role.c_str(), false, cRect(x, y + img->Height() + marginItem + fontSmlHeight, actorWidth, 0), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, actorWidth, fontSmlHeight, taCenter);
+                    }
+                    x += actorWidth + actorMargin;
+                    actor++;
+                }
+                x = marginItem;
+                y = ComplexContent.BottomContent() + fontHeight;
+            }
+        }
+        #ifdef DEBUGEPGTIME
+            uint32_t tick6 = GetMsTicks();
+            dsyslog("SetEvent actor time: %d ms", tick6 - tick5);
+        #endif
+
+        if( sstrReruns.str().length() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Reruns"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuEventTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(sstrReruns.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), font);
+        }
+
+        if( textAdditional.str().length() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Video information"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuEventTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(textAdditional.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), font);
+        }
+        Scrollable = ComplexContent.Scrollable(cHeight - marginItem*2);
+    } while( Scrollable && FirstRun );
+
+    if( Config.MenuContentFullSize || Scrollable ) {
+        ComplexContent.CreatePixmaps(true);
+    } else
+        ComplexContent.CreatePixmaps(false);
+
+    ComplexContent.Draw();
+
+    if( Scrollable )
+        DrawScrollbar(ComplexContent.ScrollTotal(), ComplexContent.ScrollOffset(), ComplexContent.ScrollShown(), ComplexContent.Top() - scrollBarTop, ComplexContent.Height(), ComplexContent.ScrollOffset() > 0, ComplexContent.ScrollOffset() + ComplexContent.ScrollShown() < ComplexContent.ScrollTotal(), true);
+
+    if( Config.MenuContentFullSize || Scrollable )
+        DecorBorderDraw(cLeft, cTop, cWidth, ComplexContent.ContentHeight(true), Config.decorBorderMenuContentSize, Config.decorBorderMenuContentType,
+            Config.decorBorderMenuContentFg, Config.decorBorderMenuContentBg);
+    else
+        DecorBorderDraw(cLeft, cTop, cWidth, ComplexContent.ContentHeight(false), Config.decorBorderMenuContentSize, Config.decorBorderMenuContentType,
+            Config.decorBorderMenuContentFg, Config.decorBorderMenuContentBg);
+
+    #ifdef DEBUGEPGTIME
+        uint32_t tick7 = GetMsTicks();
+        dsyslog("SetEvent total time: %d ms", tick7 - tick0);
+        //dsyslog("SetEvent time: %d", tick7);
+    #endif
+}
+
+void cFlatDisplayMenu::DrawItemExtraRecording(const cRecording *Recording, cString EmptyText) {
+    cLeft = menuItemWidth + Config.decorBorderMenuItemSize*2 + Config.decorBorderMenuContentSize + marginItem;
+    if( isScrolling )
+        cLeft += scrollBarWidth;
+    cTop = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuContentSize;
+    cWidth = menuWidth - cLeft - Config.decorBorderMenuContentSize;
+    cHeight = osdHeight - (topBarHeight + Config.decorBorderTopBarSize*2 +
+        buttonsHeight + Config.decorBorderButtonSize*2 + marginItem*3 + Config.decorBorderMenuContentSize*2);
+
+    ostringstream text;
+    if( Recording ) {
+        const cRecordingInfo *recInfo = Recording->Info();
+        text.imbue(std::locale(""));
+
+        if (!isempty(recInfo->Description()))
+            text << recInfo->Description() << endl << endl;
+
+        // lent from skinelchi
+        if( Config.RecordingAdditionalInfoShow ) {
+            cChannel *channel = Channels.GetByChannelID(((cRecordingInfo *)recInfo)->ChannelID());
+            if (channel)
+                text << trVDR("Channel") << ": " << channel->Number() << " - " << channel->Name() << endl;
+
+            const cEvent *Event = recInfo->GetEvent();
+            if( Event ) {
+                // Genre
+                bool firstContent = true;
+                for (int i = 0; Event->Contents(i); i++) {
+                    if (!isempty(Event->ContentToString(Event->Contents(i)))) { // skip empty (user defined) content
+                        if (!firstContent)
+                            text << ", ";
+                        else
+                            text << tr("Genre") << ": ";
+                        text << Event->ContentToString(Event->Contents(i));
+                        firstContent = false;
+                    }
+                }
+                if( Event->Contents(0) )
+                    text << endl;
+                // FSK
+                if( Event->ParentalRating() ) {
+                    text << tr("FSK") << ": ";
+                    text << *Event->GetParentalRatingString() << endl;
+                }
+            }
+
+            cMarks marks;
+            bool hasMarks = marks.Load(Recording->FileName(), Recording->FramesPerSecond(), Recording->IsPesRecording()) && marks.Count();
+            cIndexFile *index = new cIndexFile(Recording->FileName(), false, Recording->IsPesRecording());
+
+            int lastIndex = 0;
+
+            int cuttedLength = 0;
+            long cutinframe = 0;
+            unsigned long long recsize = 0;
+            unsigned long long recsizecutted = 0;
+            unsigned long long cutinoffset = 0;
+            unsigned long long filesize[100000];
+            filesize[0] = 0;
+
+            int i = 0;
+            int imax = 999;
+            struct stat filebuf;
+            cString filename;
+            int rc = 0;
+
+            do {
+                if (Recording->IsPesRecording())
+                    filename = cString::sprintf("%s/%03d.vdr", Recording->FileName(), ++i);
+                else {
+                    filename = cString::sprintf("%s/%05d.ts", Recording->FileName(), ++i);
+                    imax = 99999;
+                }
+                rc=stat(filename, &filebuf);
+                if (rc == 0)
+                    filesize[i] = filesize[i-1] + filebuf.st_size;
+                else {
+                    if (ENOENT != errno) {
+                        esyslog ("skinflatplus: error determining file size of \"%s\" %d (%s)", (const char *)filename, errno, strerror(errno));
+                        recsize = 0;
+                    }
+                }
+            } while( i <= imax && !rc );
+            recsize = filesize[i-1];
+
+            if (hasMarks && index) {
+                uint16_t FileNumber;
+                off_t FileOffset;
+
+                bool cutin = true;
+                cMark *mark = marks.First();
+                while (mark) {
+                    long position = mark->Position();
+                    index->Get(position, &FileNumber, &FileOffset);
+                    if (cutin) {
+                        cutinframe = position;
+                        cutin = false;
+                        cutinoffset = filesize[FileNumber-1] + FileOffset;
+                    } else {
+                        cuttedLength += position - cutinframe;
+                        cutin = true;
+                        recsizecutted += filesize[FileNumber-1] + FileOffset - cutinoffset;
+                    }
+                    cMark *nextmark = marks.Next(mark);
+                    mark = nextmark;
+                }
+                if( !cutin ) {
+                    cuttedLength += index->Last() - cutinframe;
+                    index->Get(index->Last() - 1, &FileNumber, &FileOffset);
+                    recsizecutted += filesize[FileNumber-1] + FileOffset - cutinoffset;
+                }
+            }
+            if (index) {
+                lastIndex = index->Last();
+                text << tr("Length") << ": " << *IndexToHMSF(lastIndex, false, Recording->FramesPerSecond());
+                if (hasMarks)
+                    text << " (" << tr("cutted") << ": " << *IndexToHMSF(cuttedLength, false, Recording->FramesPerSecond()) << ")";
+                text << endl;
+            }
+            delete index;
+
+            if (recsize > MEGABYTE(1023))
+                text << tr("Size") << ": " << fixed << setprecision(2) << (float)recsize / MEGABYTE(1024) << " GB";
+            else
+                text << tr("Size") << ": " << recsize / MEGABYTE(1) << " MB";
+            if( hasMarks )
+                if (recsize > MEGABYTE(1023))
+                    text << " (" <<  tr("cutted") << ": " << fixed << setprecision(2) <<  (float)recsizecutted/MEGABYTE(1024) << " GB)";
+                else
+                    text << " (" << tr("cutted") << ": " <<  recsizecutted/MEGABYTE(1) << " MB)";
+
+            text << endl << trVDR("Priority") << ": " << Recording->Priority() << ", " << trVDR("Lifetime") << ": " << Recording->Lifetime() << endl;
+
+            if( lastIndex ) {
+                text << tr("format") << ": " << (Recording->IsPesRecording() ? "PES" : "TS") << ", " << tr("bit rate") << ": ~ " << fixed << setprecision (2) << (float)recsize/lastIndex*Recording->FramesPerSecond()*8/MEGABYTE(1) << " MBit/s (Video + Audio)";
+            }
+            const cComponents *Components = recInfo->Components();
+            if( Components ) {
+                ostringstream audio;
+                bool firstAudio = true;
+                const char *audio_type = NULL;
+                ostringstream subtitle;
+                bool firstSubtitle = true;
+                for (int i = 0; i < Components->NumComponents(); i++) {
+                    const tComponent *p = Components->Component(i);
+
+                    switch (p->stream) {
+                        case sc_video_MPEG2:
+                            text << endl << tr("Video") << ": " <<  p->description << " (MPEG2)";
+                            break;
+                        case sc_video_H264_AVC:
+                            text << endl << tr("Video") << ": " <<  p->description << " (H.264)";
+                            break;
+                        case sc_audio_MP2:
+                        case sc_audio_AC3:
+                        case sc_audio_HEAAC:
+                            if (firstAudio)
+                                firstAudio = false;
+                            else
+                                audio << ", ";
+                            switch (p->stream) {
+                                case sc_audio_MP2:
+                                    // workaround for wrongfully used stream type X 02 05 for AC3
+                                    if (p->type == 5)
+                                        audio_type = "AC3";
+                                    else
+                                        audio_type = "MP2";
+                                    break;
+                                case sc_audio_AC3:
+                                    audio_type = "AC3"; break;
+                                case sc_audio_HEAAC:
+                                    audio_type = "HEAAC"; break;
+                            }
+                            if (p->description)
+                                audio << p->description << " (" << audio_type << ", " << p->language << ")";
+                            else
+                                audio << p->language << " (" << audio_type << ")";
+                            break;
+                        case sc_subtitle:
+                            if (firstSubtitle)
+                                firstSubtitle = false;
+                            else
+                                subtitle << ", ";
+                            if (p->description)
+                                subtitle << p->description << " (" << p->language << ")";
+                            else
+                                subtitle << p->language;
+                            break;
+                    }
+                }
+                if (audio.str().length() > 0)
+                    text << endl << tr("Audio") << ": "<< audio.str();
+                if (subtitle.str().length() > 0)
+                    text << endl << tr("Subtitle") << ": "<< subtitle.str();
+            }
+            if (recInfo->Aux()) {
+                string str_epgsearch = xml_substring(recInfo->Aux(), "<epgsearch>", "</epgsearch>");
+                string channel, searchtimer, pattern;
+
+                if (!str_epgsearch.empty()) {
+                    channel = xml_substring(str_epgsearch, "<channel>", "</channel>");
+                    searchtimer = xml_substring(str_epgsearch, "<searchtimer>", "</searchtimer>");
+                    if (searchtimer.empty())
+                        searchtimer = xml_substring(str_epgsearch, "<Search timer>", "</Search timer>");
+                }
+
+                string str_vdradmin = xml_substring(recInfo->Aux(), "<vdradmin-am>", "</vdradmin-am>");
+                if (!str_vdradmin.empty()) {
+                    pattern = xml_substring(str_vdradmin, "<pattern>", "</pattern>");
+                }
+
+                if ((!channel.empty() && !searchtimer.empty()) || !pattern.empty())  {
+                    text << endl << endl << tr("additional information") << ":" << endl;
+                    if (!channel.empty() && !searchtimer.empty()) {
+                        text << "EPGsearch: " << tr("channel") << ": " << channel << ", " << tr("search pattern") << ": " << searchtimer;
+                    }
+                    if (!pattern.empty()) {
+                        text << "VDRadmin-AM: " << tr("search pattern") << ": " << pattern;
+                    }
+                }
+            }
+        }
+    } else
+        text << *EmptyText;
+
+    ComplexContent.Clear();
+    ComplexContent.SetScrollSize(fontSmlHeight);
+    ComplexContent.SetScrollingActive(false);
+    ComplexContent.SetOsd(osd);
+    ComplexContent.SetPosition(cRect(cLeft, cTop, cWidth, cHeight));
+    ComplexContent.SetBGColor(Theme.Color(clrMenuRecBg));
+
+    std::string mediaPath;
+    int mediaWidth = 0;
+    int mediaHeight = 0;
+    int mediaType = 0;
+
+    // first try scraper2vdr
+    static cPlugin *pScraper = cPluginManager::GetPlugin("scraper2vdr");
+    if( !pScraper ) // if it doesn't exit, try tvscraper
+        pScraper = cPluginManager::GetPlugin("tvscraper");
+    if( Config.TVScraperRecInfoShowPoster && pScraper ) {
+        ScraperGetEventType call;
+        call.recording = Recording;
+        int seriesId = 0;
+        int episodeId = 0;
+        int movieId = 0;
+
+        if (pScraper->Service("GetEventType", &call)) {
+            seriesId = call.seriesId;
+            episodeId = call.episodeId;
+            movieId = call.movieId;
+        }
+        if( seriesId > 0 ) {
+            cSeries series;
+            series.seriesId = seriesId;
+            series.episodeId = episodeId;
+            if (pScraper->Service("GetSeries", &series)) {
+                if( series.banners.size() > 0 )
+                    mediaPath = series.banners[0].path;
+                mediaWidth = cWidth - marginItem*2;
+                mediaHeight = 999;
+                mediaType = 1;
+            }
+        } else if (movieId > 0) {
+            cMovie movie;
+            movie.movieId = movieId;
+            if (pScraper->Service("GetMovie", &movie)) {
+                mediaPath = movie.poster.path;
+                mediaWidth = cWidth/2 - marginItem*3;
+                mediaHeight = 999;
+                mediaType = 2;
+            }
+        }
+    }
+
+    cString recPath = cString::sprintf("%s", Recording->FileName());
+    cString recImage;
+    if( imgLoader.SearchRecordingPoster(recPath, recImage) ) {
+        mediaWidth = cWidth/2 - marginItem*3;
+        mediaHeight = 999;
+        mediaType = 2;
+        mediaPath = recImage;
+    }
+
+    if( mediaPath.length() > 0 ) {
+        cImage *img = imgLoader.LoadFile(mediaPath.c_str(), mediaWidth, mediaHeight);
+        if( img && mediaType == 2 ) {
+            ComplexContent.AddImageWithFloatedText(img, CIP_Right, text.str().c_str(), cRect(marginItem, marginItem, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), fontSml);
+        } else if( img && mediaType == 1 ) {
+            ComplexContent.AddImage(img, cRect(marginItem, marginItem, img->Width(), img->Height()) );
+            ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, marginItem + img->Height(), cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), fontSml);
+        } else {
+            ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, marginItem, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), fontSml);
+        }
+    } else {
+        ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, marginItem, cWidth - marginItem*2, cHeight - marginItem*2),
+            Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), fontSml);
+    }
+
+    ComplexContent.CreatePixmaps(Config.MenuContentFullSize);
+    ComplexContent.Draw();
+
+    DecorBorderClearByFrom(BorderContent);
+    if( Config.MenuContentFullSize )
+        DecorBorderDraw(cLeft, cTop, cWidth, ComplexContent.ContentHeight(true), Config.decorBorderMenuContentSize, Config.decorBorderMenuContentType,
+            Config.decorBorderMenuContentFg, Config.decorBorderMenuContentBg, BorderContent);
+    else
+        DecorBorderDraw(cLeft, cTop, cWidth, ComplexContent.ContentHeight(false), Config.decorBorderMenuContentSize, Config.decorBorderMenuContentType,
+            Config.decorBorderMenuContentFg, Config.decorBorderMenuContentBg, BorderContent);
+}
+
+void cFlatDisplayMenu::SetRecording(const cRecording *Recording) {
+    if( !Recording )
+        return;
+
+    #ifdef DEBUGEPGTIME
+        uint32_t tick0 = GetMsTicks();
+    #endif
+
+    ShowEvent = false;
+    ShowRecording = true;
+    ShowText = false;
+    ItemBorderClear();
+
+    const cRecordingInfo *recInfo = Recording->Info();
+
+    chLeft = Config.decorBorderMenuContentHeadSize;
+    chTop = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuContentHeadSize;
+    chWidth = menuWidth - Config.decorBorderMenuContentHeadSize*2;
+    chHeight = fontHeight + fontSmlHeight*2 + marginItem*2;
+    contentHeadPixmap = osd->CreatePixmap(1, cRect(chLeft, chTop, chWidth, chHeight));
+    //dsyslog("skinflatplus: contentHeadPixmap left: %d top: %d width: %d height: %d", chLeft, chTop, chWidth, chHeight );
+
+    contentHeadIconsPixmap->Fill(clrTransparent);
+
+    cLeft = Config.decorBorderMenuContentSize;
+    cTop = chTop + marginItem*3 + fontHeight + fontSmlHeight*2 +
+        Config.decorBorderMenuContentSize + Config.decorBorderMenuContentHeadSize;
+    cWidth = menuWidth - Config.decorBorderMenuContentSize*2;
+    cHeight = osdHeight - (topBarHeight + Config.decorBorderTopBarSize*2 +
+        buttonsHeight + Config.decorBorderButtonSize*2 + marginItem*3 +
+        chHeight + Config.decorBorderMenuContentHeadSize*2 + Config.decorBorderMenuContentSize*2);
+
+    if( !ButtonsDrawn() )
+        cHeight += buttonsHeight + Config.decorBorderButtonSize*2;
+
+    menuItemWidth = cWidth;
+
+    ostringstream text, textAdditional, recAdditional;
+    text.imbue(std::locale(""));
+    textAdditional.imbue(std::locale(""));
+    recAdditional.imbue(std::locale(""));
+
+    std::string Fsk;
+    std::list<std::string> GenreIcons;
+
+    if (!isempty(recInfo->Description()))
+        text << recInfo->Description() << endl << endl;
+
+    // lent from skinelchi
+    if( Config.RecordingAdditionalInfoShow ) {
+        cChannel *channel = Channels.GetByChannelID(((cRecordingInfo *)recInfo)->ChannelID());
+        if (channel)
+            recAdditional << trVDR("Channel") << ": " << channel->Number() << " - " << channel->Name() << endl;
+
+        const cEvent *Event = recInfo->GetEvent();
+        if( Event ) {
+            // Genre
+            bool firstContent = true;
+            for (int i = 0; Event->Contents(i); i++) {
+                if (!isempty(Event->ContentToString(Event->Contents(i)))) { // skip empty (user defined) content
+                    if (!firstContent) {
+                        text << ", ";
+                    } else {
+                        text << tr("Genre") << ": ";
+                    }
+                    text << Event->ContentToString(Event->Contents(i));
+                    firstContent = false;
+                    GenreIcons.push_back(GetGenreIcon(Event->Contents(i)));
+                }
+            }
+            if( Event->Contents(0) )
+                text << endl;
+            // FSK
+            if( Event->ParentalRating() ) {
+                text << tr("FSK") << ": ";
+                text << *Event->GetParentalRatingString() << endl;
+                Fsk = *Event->GetParentalRatingString();
+            }
+        }
+        cMarks marks;
+        bool hasMarks = marks.Load(Recording->FileName(), Recording->FramesPerSecond(), Recording->IsPesRecording()) && marks.Count();
+        cIndexFile *index = new cIndexFile(Recording->FileName(), false, Recording->IsPesRecording());
+
+        int lastIndex = 0;
+
+        int cuttedLength = 0;
+        long cutinframe = 0;
+        unsigned long long recsize = 0;
+        unsigned long long recsizecutted = 0;
+        unsigned long long cutinoffset = 0;
+        unsigned long long filesize[100000];
+        filesize[0] = 0;
+
+        int i = 0;
+        int imax = 999;
+        struct stat filebuf;
+        cString filename;
+        int rc = 0;
+
+        do {
+            if (Recording->IsPesRecording())
+                filename = cString::sprintf("%s/%03d.vdr", Recording->FileName(), ++i);
+            else {
+                filename = cString::sprintf("%s/%05d.ts", Recording->FileName(), ++i);
+                imax = 99999;
+            }
+            rc=stat(filename, &filebuf);
+            if (rc == 0)
+                filesize[i] = filesize[i-1] + filebuf.st_size;
+            else {
+                if (ENOENT != errno) {
+                    esyslog ("skinflatplus: error determining file size of \"%s\" %d (%s)", (const char *)filename, errno, strerror(errno));
+                    recsize = 0;
+                }
+            }
+        } while( i <= imax && !rc );
+        recsize = filesize[i-1];
+
+        if (hasMarks && index) {
+            uint16_t FileNumber;
+            off_t FileOffset;
+
+            bool cutin = true;
+            cMark *mark = marks.First();
+            while (mark) {
+                long position = mark->Position();
+                index->Get(position, &FileNumber, &FileOffset);
+                if (cutin) {
+                    cutinframe = position;
+                    cutin = false;
+                    cutinoffset = filesize[FileNumber-1] + FileOffset;
+                } else {
+                    cuttedLength += position - cutinframe;
+                    cutin = true;
+                    recsizecutted += filesize[FileNumber-1] + FileOffset - cutinoffset;
+                }
+                cMark *nextmark = marks.Next(mark);
+                mark = nextmark;
+            }
+            if( !cutin ) {
+                cuttedLength += index->Last() - cutinframe;
+                index->Get(index->Last() - 1, &FileNumber, &FileOffset);
+                recsizecutted += filesize[FileNumber-1] + FileOffset - cutinoffset;
+            }
+        }
+        if (index) {
+            lastIndex = index->Last();
+            recAdditional << tr("Length") << ": " << *IndexToHMSF(lastIndex, false, Recording->FramesPerSecond());
+            if (hasMarks)
+                recAdditional << " (" << tr("cutted") << ": " << *IndexToHMSF(cuttedLength, false, Recording->FramesPerSecond()) << ")";
+            recAdditional << endl;
+        }
+        delete index;
+
+        if (recsize > MEGABYTE(1023))
+            recAdditional << tr("Size") << ": " << fixed << setprecision(2) << (float)recsize / MEGABYTE(1024) << " GB";
+        else
+            recAdditional << tr("Size") << ": " << recsize / MEGABYTE(1) << " MB";
+        if( hasMarks )
+            if (recsize > MEGABYTE(1023))
+                recAdditional << " (" <<  tr("cutted") << ": " << fixed << setprecision(2) <<  (float)recsizecutted/MEGABYTE(1024) << " GB)";
+            else
+                recAdditional << " (" << tr("cutted") << ": " <<  recsizecutted/MEGABYTE(1) << " MB)";
+
+        recAdditional << endl << trVDR("Priority") << ": " << Recording->Priority() << ", " << trVDR("Lifetime") << ": " << Recording->Lifetime() << endl;
+
+        if( lastIndex ) {
+            recAdditional << tr("format") << ": " << (Recording->IsPesRecording() ? "PES" : "TS") << ", " << tr("bit rate") << ": ~ " << fixed << setprecision (2) << (float)recsize/lastIndex*Recording->FramesPerSecond()*8/MEGABYTE(1) << " MBit/s (Video + Audio)";
+        }
+        const cComponents *Components = recInfo->Components();
+        if( Components ) {
+            ostringstream audio;
+            bool firstAudio = true;
+            const char *audio_type = NULL;
+            ostringstream subtitle;
+            bool firstSubtitle = true;
+            for (int i = 0; i < Components->NumComponents(); i++) {
+                const tComponent *p = Components->Component(i);
+
+                switch (p->stream) {
+                    case sc_video_MPEG2:
+                        textAdditional << tr("Video") << ": " <<  p->description << " (MPEG2)";
+                        break;
+                    case sc_video_H264_AVC:
+                        textAdditional << tr("Video") << ": " <<  p->description << " (H.264)";
+                        break;
+                    case sc_audio_MP2:
+                    case sc_audio_AC3:
+                    case sc_audio_HEAAC:
+                        if (firstAudio)
+                            firstAudio = false;
+                        else
+                            audio << ", ";
+                        switch (p->stream) {
+                            case sc_audio_MP2:
+                                // workaround for wrongfully used stream type X 02 05 for AC3
+                                if (p->type == 5)
+                                    audio_type = "AC3";
+                                else
+                                    audio_type = "MP2";
+                                break;
+                            case sc_audio_AC3:
+                                audio_type = "AC3"; break;
+                            case sc_audio_HEAAC:
+                                audio_type = "HEAAC"; break;
+                        }
+                        if (p->description)
+                            audio << p->description << " (" << audio_type << ", " << p->language << ")";
+                        else
+                            audio << p->language << " (" << audio_type << ")";
+                        break;
+                    case sc_subtitle:
+                        if (firstSubtitle)
+                            firstSubtitle = false;
+                        else
+                            subtitle << ", ";
+                        if (p->description)
+                            subtitle << p->description << " (" << p->language << ")";
+                        else
+                            subtitle << p->language;
+                        break;
+                }
+            }
+            if (audio.str().length() > 0) {
+                if( textAdditional.str().length() > 0 )
+                    textAdditional << endl;
+                textAdditional << tr("Audio") << ": "<< audio.str();
+            } if (subtitle.str().length() > 0) {
+                if( textAdditional.str().length() > 0 )
+                    textAdditional << endl;
+                textAdditional << tr("Subtitle") << ": "<< subtitle.str();
+            }
+        }
+        if (recInfo->Aux()) {
+            string str_epgsearch = xml_substring(recInfo->Aux(), "<epgsearch>", "</epgsearch>");
+            string channel, searchtimer, pattern;
+
+            if (!str_epgsearch.empty()) {
+                channel = xml_substring(str_epgsearch, "<channel>", "</channel>");
+                searchtimer = xml_substring(str_epgsearch, "<searchtimer>", "</searchtimer>");
+                if (searchtimer.empty())
+                    searchtimer = xml_substring(str_epgsearch, "<Search timer>", "</Search timer>");
+            }
+
+            string str_vdradmin = xml_substring(recInfo->Aux(), "<vdradmin-am>", "</vdradmin-am>");
+            if (!str_vdradmin.empty()) {
+                pattern = xml_substring(str_vdradmin, "<pattern>", "</pattern>");
+            }
+
+            if ((!channel.empty() && !searchtimer.empty()) || !pattern.empty())  {
+                recAdditional << endl;
+                if (!channel.empty() && !searchtimer.empty()) {
+                    recAdditional << "EPGsearch: " << tr("channel") << ": " << channel << ", " << tr("search pattern") << ": " << searchtimer;
+                }
+                if (!pattern.empty()) {
+                    recAdditional << "VDRadmin-AM: " << tr("search pattern") << ": " << pattern;
+                }
+            }
+        }
+    }
+
+    int headIconTop = chHeight - fontHeight - marginItem;
+    int headIconLeft = chWidth - fontHeight - marginItem;
+    if( Fsk.length() > 0 ) {
+        cString iconName = cString::sprintf("EPGInfo/FSK/%s", Fsk.c_str());
+        cImage *img = imgLoader.LoadIcon(*iconName, fontHeight, fontHeight);
+        if( img ) {
+            contentHeadIconsPixmap->DrawImage(cPoint(headIconLeft, headIconTop), *img);
+            headIconLeft -= fontHeight + marginItem;
+        } else {
+            isyslog("skinflatplus: FSK icon not found: %s", *iconName);
+            img = imgLoader.LoadIcon("EPGInfo/FSK/unknown", fontHeight, fontHeight);
+            if( img ) {
+                contentHeadIconsPixmap->DrawImage(cPoint(headIconLeft, headIconTop), *img);
+                headIconLeft -= fontHeight + marginItem;
+            }
+        }
+    }
+    while( !GenreIcons.empty() ) {
+        GenreIcons.sort();
+        GenreIcons.unique();
+        cString iconName = cString::sprintf("EPGInfo/Genre/%s", GenreIcons.back().c_str());
+        cImage *img = imgLoader.LoadIcon(*iconName, fontHeight, fontHeight);
+        bool isUnknownDrawn = false;
+        if( img ) {
+            contentHeadIconsPixmap->DrawImage(cPoint(headIconLeft, headIconTop), *img);
+            headIconLeft -= fontHeight + marginItem;
+        } else {
+            isyslog("skinflatplus: Genre icon not found: %s", *iconName);
+            if( !isUnknownDrawn ) {
+                img = imgLoader.LoadIcon("EPGInfo/Genre/unknown", fontHeight, fontHeight);
+                if( img ) {
+                    contentHeadIconsPixmap->DrawImage(cPoint(headIconLeft, headIconTop), *img);
+                    headIconLeft -= fontHeight + marginItem;
+                    isUnknownDrawn = true;
+                }
+            }
+        }
+        GenreIcons.pop_back();
+    }
+
+    #ifdef DEBUGEPGTIME
+        uint32_t tick1 = GetMsTicks();
+        dsyslog("SetRecording info-text time: %d ms", tick1 - tick0);
+    #endif
+
+    bool Scrollable = false;
+    bool FirstRun = true;
+
+    do {
+        if( Scrollable ) {
+            FirstRun = false;
+            cWidth -= scrollBarWidth;
+        }
+
+        ComplexContent.Clear();
+        ComplexContent.SetOsd(osd);
+        ComplexContent.SetPosition(cRect(cLeft, cTop, cWidth, cHeight));
+        ComplexContent.SetBGColor(Theme.Color(clrMenuRecBg));
+        ComplexContent.SetScrollSize(fontHeight);
+        ComplexContent.SetScrollingActive(true);
+
+        int ContentTop = marginItem;
+
+        ostringstream series_info, movie_info;
+
+        std::vector<std::string> actors_path;
+        std::vector<std::string> actors_name;
+        std::vector<std::string> actors_role;
+
+        std::string mediaPath;
+        int mediaWidth = 0;
+        int mediaHeight = 0;
+
+        #ifdef DEBUGEPGTIME
+            uint32_t tick2 = GetMsTicks();
+        #endif
+
+        // first try scraper2vdr
+        static cPlugin *pScraper = cPluginManager::GetPlugin("scraper2vdr");
+        if( !pScraper ) // if it doesn't exit, try tvscraper
+            pScraper = cPluginManager::GetPlugin("tvscraper");
+        if( (Config.TVScraperRecInfoShowPoster || Config.TVScraperRecInfoShowActors) && pScraper ) {
+            ScraperGetEventType call;
+            call.recording = Recording;
+            int seriesId = 0;
+            int episodeId = 0;
+            int movieId = 0;
+
+            if (pScraper->Service("GetEventType", &call)) {
+                seriesId = call.seriesId;
+                episodeId = call.episodeId;
+                movieId = call.movieId;
+            }
+            if( seriesId > 0 ) {
+                cSeries series;
+                series.seriesId = seriesId;
+                series.episodeId = episodeId;
+                if (pScraper->Service("GetSeries", &series)) {
+                    if( series.banners.size() > 0 )
+                        mediaPath = series.banners[0].path;
+                    mediaWidth = cWidth/2 - marginItem*2;
+                    mediaHeight = cHeight - marginItem*2 - fontHeight - 6;
+                    if( Config.TVScraperRecInfoShowActors ) {
+                        for( unsigned int i = 0; i < series.actors.size(); i++ ) {
+                            if( imgLoader.FileExits( series.actors[i].actorThumb.path ) ) {
+                                actors_path.push_back(series.actors[i].actorThumb.path);
+                                actors_name.push_back(series.actors[i].name);
+                                actors_role.push_back(series.actors[i].role);
+                            }
+                        }
+                    }
+                    if( series.name.length() > 0 )
+                        series_info << tr("name: ") << series.name << endl;
+                    if( series.firstAired.length() > 0 )
+                        series_info << tr("first aired: ") << series.firstAired << endl;
+                    if( series.network.length() > 0 )
+                        series_info << tr("network: ") << series.network << endl;
+                    if( series.genre.length() > 0 )
+                        series_info << tr("genre: ") << series.genre << endl;
+                    if( series.rating > 0 )
+                        series_info << tr("rating: ") << series.rating << endl;
+                    if( series.status.length() > 0 )
+                        series_info << tr("status: ") << series.status << endl;
+                    if( series.episode.season > 0 )
+                        series_info << tr("season number: ") << series.episode.season << endl;
+                    if( series.episode.number > 0 )
+                        series_info << tr("episode number: ") << series.episode.number << endl;
+                }
+            } else if (movieId > 0) {
+                cMovie movie;
+                movie.movieId = movieId;
+                if (pScraper->Service("GetMovie", &movie)) {
+                    mediaPath = movie.poster.path;
+                    mediaWidth = cWidth/2 - marginItem*3;
+                    mediaHeight = cHeight - marginItem*2 - fontHeight - 6;
+                    if( Config.TVScraperRecInfoShowActors ) {
+                        for( unsigned int i = 0; i < movie.actors.size(); i++ ) {
+                            if( imgLoader.FileExits( movie.actors[i].actorThumb.path ) ) {
+                                actors_path.push_back(movie.actors[i].actorThumb.path);
+                                actors_name.push_back(movie.actors[i].name);
+                                actors_role.push_back(movie.actors[i].role);
+                            }
+                        }
+                    }
+                    if( movie.title.length() > 0 )
+                        movie_info << tr("title: ") << movie.title << endl;
+                    if( movie.originalTitle.length() > 0 )
+                        movie_info << tr("original title: ") << movie.originalTitle << endl;
+                    if( movie.collectionName.length() > 0 )
+                        movie_info << tr("collection name: ") << movie.collectionName << endl;
+                    if( movie.genres.length() > 0 )
+                        movie_info << tr("genre: ") << movie.genres << endl;
+                    if( movie.releaseDate.length() > 0 )
+                        movie_info << tr("release date: ") << movie.releaseDate << endl;
+                    if( movie.popularity > 0 )
+                        movie_info << tr("popularity: ") << movie.popularity << endl;
+                    if( movie.voteAverage > 0 )
+                        movie_info << tr("vote average: ") << movie.voteAverage << endl;
+                }
+            }
+        }
+
+        #ifdef DEBUGEPGTIME
+            uint32_t tick3 = GetMsTicks();
+            dsyslog("SetRecording tvscraper time: %d ms", tick3 - tick2);
+        #endif
+
+        cString recPath = cString::sprintf("%s", Recording->FileName());
+        cString recImage;
+        if( imgLoader.SearchRecordingPoster(recPath, recImage) ) {
+            mediaWidth = cWidth/2 - marginItem*2;
+            mediaHeight = cHeight - marginItem*2 - fontHeight - 6;
+            mediaPath = recImage;
+        }
+        if( mediaPath.length() > 0 ) {
+            cImage *img = imgLoader.LoadFile(mediaPath.c_str(), mediaWidth, mediaHeight);
+            if( img ) {
+                ComplexContent.AddText(tr("Description"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuRecFontTitle), Theme.Color(clrMenuRecBg), font);
+                ContentTop += fontHeight;
+                ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuRecTitleLine));
+                ContentTop += 6;
+                ComplexContent.AddImageWithFloatedText(img, CIP_Right, text.str().c_str(), cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                    Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), font);
+            } else if( text.str().length() > 0 ) {
+                ComplexContent.AddText(tr("Description"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuRecFontTitle), Theme.Color(clrMenuRecBg), font);
+                ContentTop += fontHeight;
+                ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuRecTitleLine));
+                ContentTop += 6;
+                ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                    Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), font);
+            }
+        } else if( text.str().length() > 0 ) {
+            ComplexContent.AddText(tr("Description"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuRecFontTitle), Theme.Color(clrMenuRecBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuRecTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(text.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), font);
+        }
+
+        if( movie_info.str().length() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Movie information"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuRecFontTitle), Theme.Color(clrMenuRecBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuRecTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(movie_info.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), font);
+        }
+
+        if( series_info.str().length() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Series information"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuRecFontTitle), Theme.Color(clrMenuRecBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuRecTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(series_info.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), font);
+        }
+        #ifdef DEBUGEPGTIME
+            uint32_t tick4 = GetMsTicks();
+            dsyslog("SetRecording epg-text time: %d ms", tick4 - tick3);
+        #endif
+
+        if( Config.TVScraperRecInfoShowActors && actors_path.size() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Actors"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuRecFontTitle), Theme.Color(clrMenuRecBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuRecTitleLine));
+            ContentTop += 6;
+
+            int actorsPerLine = 6;
+            int numActors = actors_path.size();
+            int actorWidth = cWidth / actorsPerLine - marginItem*4;
+            int picsPerLine = (cWidth - marginItem*2) / actorWidth;
+            int picLines = numActors / picsPerLine;
+            if( numActors%picsPerLine != 0 )
+                picLines++;
+            int actorMargin = ((cWidth - marginItem*2) - actorWidth*actorsPerLine) / (actorsPerLine-1);
+            int x = marginItem;
+            int y = ContentTop;
+            int actor = 0;
+            for (int row = 0; row < picLines; row++) {
+                for (int col = 0; col < picsPerLine; col++) {
+                    if (actor == numActors)
+                        break;
+                    std::string path = actors_path[actor];
+                    cImage *img = imgLoader.LoadFile(path.c_str(), actorWidth, 999);
+                    if( img ) {
+                        ComplexContent.AddImage(img, cRect(x, y, 0, 0));
+                        std::string name = actors_name[actor];
+                        std::stringstream sstrRole;
+                        sstrRole << "\"" << actors_role[actor] << "\"";
+                        std::string role = sstrRole.str();
+                        ComplexContent.AddText(name.c_str(), false, cRect(x, y + img->Height() + marginItem, actorWidth, 0), Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), fontSml, actorWidth, fontSmlHeight, taCenter);
+                        ComplexContent.AddText(role.c_str(), false, cRect(x, y + img->Height() + marginItem + fontSmlHeight, actorWidth, 0), Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), fontSml, actorWidth, fontSmlHeight, taCenter);
+                        }
+                    x += actorWidth + actorMargin;
+                    actor++;
+                }
+                x = marginItem;
+                y = ComplexContent.BottomContent() + fontHeight;
+            }
+        }
+        #ifdef DEBUGEPGTIME
+            uint32_t tick5 = GetMsTicks();
+            dsyslog("SetRecording actor time: %d ms", tick5 - tick4);
+        #endif
+
+        if( recAdditional.str().length() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Recording information"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuRecFontTitle), Theme.Color(clrMenuRecBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuRecTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(recAdditional.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), font);
+        }
+
+        if( textAdditional.str().length() > 0 ) {
+            ContentTop = ComplexContent.BottomContent() + fontHeight;
+            ComplexContent.AddText(tr("Video information"), false, cRect(marginItem*10, ContentTop, 0, 0), Theme.Color(clrMenuRecFontTitle), Theme.Color(clrMenuRecBg), font);
+            ContentTop += fontHeight;
+            ComplexContent.AddRect(cRect(0, ContentTop, cWidth, 3), Theme.Color(clrMenuRecTitleLine));
+            ContentTop += 6;
+            ComplexContent.AddText(textAdditional.str().c_str(), true, cRect(marginItem, ContentTop, cWidth - marginItem*2, cHeight - marginItem*2),
+                Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), font);
+        }
+
+        Scrollable = ComplexContent.Scrollable(cHeight - marginItem*2);
+    } while( Scrollable && FirstRun );
+
+    if( Config.MenuContentFullSize || Scrollable ) {
+        ComplexContent.CreatePixmaps(true);
+    } else
+        ComplexContent.CreatePixmaps(false);
+
+    ComplexContent.Draw();
+
+    contentHeadPixmap->Fill(clrTransparent);
+    contentHeadPixmap->DrawRectangle(cRect(0, 0, menuWidth, fontHeight + fontSmlHeight*2 + marginItem*2), Theme.Color(clrScrollbarBg));
+
+    cString timeString = cString::sprintf("%s  %s  %s", *DateString(Recording->Start()), *TimeString(Recording->Start()), recInfo->ChannelName() ? recInfo->ChannelName() : "");
+
+    cString title = recInfo->Title();
+    if( isempty(title) )
+        title = Recording->Name();
+    cString shortText = recInfo->ShortText();
+
+    contentHeadPixmap->DrawText(cPoint(marginItem, marginItem), timeString, Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), fontSml, menuWidth - marginItem*2);
+    contentHeadPixmap->DrawText(cPoint(marginItem, marginItem + fontSmlHeight), title, Theme.Color(clrMenuRecFontTitle), Theme.Color(clrMenuRecBg), font, menuWidth - marginItem*2);
+    contentHeadPixmap->DrawText(cPoint(marginItem, marginItem + fontSmlHeight + fontHeight), shortText, Theme.Color(clrMenuRecFontInfo), Theme.Color(clrMenuRecBg), fontSml, menuWidth - marginItem*2);
+
+    DecorBorderDraw(chLeft, chTop, chWidth, chHeight, Config.decorBorderMenuContentHeadSize, Config.decorBorderMenuContentHeadType,
+        Config.decorBorderMenuContentHeadFg, Config.decorBorderMenuContentHeadBg, BorderSetRecording, false);
+
+    if( Scrollable )
+        DrawScrollbar(ComplexContent.ScrollTotal(), ComplexContent.ScrollOffset(), ComplexContent.ScrollShown(), ComplexContent.Top() - scrollBarTop, ComplexContent.Height(), ComplexContent.ScrollOffset() > 0, ComplexContent.ScrollOffset() + ComplexContent.ScrollShown() < ComplexContent.ScrollTotal(), true);
+
+    RecordingBorder.Left = cLeft;
+    RecordingBorder.Top = cTop;
+    RecordingBorder.Width = cWidth;
+    RecordingBorder.Height = ComplexContent.Height();
+    RecordingBorder.Size = Config.decorBorderMenuContentSize;
+    RecordingBorder.Type = Config.decorBorderMenuContentType;
+    RecordingBorder.ColorFg = Config.decorBorderMenuContentFg;
+    RecordingBorder.ColorBg = Config.decorBorderMenuContentBg;
+    RecordingBorder.From = BorderMenuRecord;
+
+    if( Config.MenuContentFullSize || Scrollable )
+        DecorBorderDraw(RecordingBorder.Left, RecordingBorder.Top, RecordingBorder.Width, ComplexContent.ContentHeight(true),
+            RecordingBorder.Size, RecordingBorder.Type,
+            RecordingBorder.ColorFg, RecordingBorder.ColorBg, RecordingBorder.From, false);
+    else
+        DecorBorderDraw(RecordingBorder.Left, RecordingBorder.Top, RecordingBorder.Width, ComplexContent.ContentHeight(false),
+            RecordingBorder.Size, RecordingBorder.Type,
+            RecordingBorder.ColorFg, RecordingBorder.ColorBg, RecordingBorder.From, false);
+
+    #ifdef DEBUGEPGTIME
+        uint32_t tick6 = GetMsTicks();
+        dsyslog("SetRecording total time: %d ms", tick6 - tick0);
+    #endif
+}
+
+void cFlatDisplayMenu::SetText(const char *Text, bool FixedFont) {
+    if( !Text )
+        return;
+
+    ShowEvent = false;
+    ShowRecording = false;
+    ShowText = true;
+    ItemBorderClear();
+
+    contentHeadPixmap->Fill(clrTransparent);
+
+    int Left = Config.decorBorderMenuContentSize;
+    int Top = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuContentSize;
+    int Width = menuWidth - Config.decorBorderMenuContentSize*2;
+    int Height = osdHeight - (topBarHeight + Config.decorBorderTopBarSize*2 +
+        buttonsHeight + Config.decorBorderButtonSize*2 + Config.decorBorderMenuContentSize*2 + marginItem);
+
+    if( !ButtonsDrawn() )
+        Height += buttonsHeight + Config.decorBorderButtonSize*2;
+
+    ComplexContent.Clear();
+
+    menuItemWidth = Width;
+    bool Scrollable = false;
+    if( FixedFont ) {
+        ComplexContent.AddText(Text, true, cRect(marginItem, marginItem, Width - marginItem*2, Height - marginItem*2),
+            Theme.Color(clrMenuTextFixedFont), Theme.Color(clrMenuTextBg), fontFixed);
+        ComplexContent.SetScrollSize(fontFixedHeight);
+    } else {
+        ComplexContent.AddText(Text, true, cRect(marginItem, marginItem, Width - marginItem*2, Height - marginItem*2),
+            Theme.Color(clrMenuTextFixedFont), Theme.Color(clrMenuTextBg), font);
+        ComplexContent.SetScrollSize(fontHeight);
+    }
+
+    Scrollable = ComplexContent.Scrollable(Height - marginItem*2);
+    if( Scrollable ) {
+        Width -= scrollBarWidth;
+        ComplexContent.Clear();
+        if( FixedFont ) {
+            ComplexContent.AddText(Text, true, cRect(marginItem, marginItem, Width - marginItem*2, Height - marginItem*2),
+                Theme.Color(clrMenuTextFixedFont), Theme.Color(clrMenuTextBg), fontFixed);
+            ComplexContent.SetScrollSize(fontFixedHeight);
+        } else {
+            ComplexContent.AddText(Text, true, cRect(marginItem, marginItem, Width - marginItem*2, Height - marginItem*2),
+                Theme.Color(clrMenuTextFixedFont), Theme.Color(clrMenuTextBg), font);
+            ComplexContent.SetScrollSize(fontHeight);
+        }
+    }
+
+    ComplexContent.SetOsd(osd);
+    ComplexContent.SetPosition(cRect(Left, Top, Width, Height));
+    ComplexContent.SetBGColor(Theme.Color(clrMenuTextBg));
+    ComplexContent.SetScrollingActive(true);
+
+    if( Config.MenuContentFullSize || Scrollable ) {
+        ComplexContent.CreatePixmaps(true);
+    } else
+        ComplexContent.CreatePixmaps(false);
+
+    ComplexContent.Draw();
+
+    if( Scrollable )
+        DrawScrollbar(ComplexContent.ScrollTotal(), ComplexContent.ScrollOffset(), ComplexContent.ScrollShown(), ComplexContent.Top() - scrollBarTop, ComplexContent.Height(), ComplexContent.ScrollOffset() > 0, ComplexContent.ScrollOffset() + ComplexContent.ScrollShown() < ComplexContent.ScrollTotal(), true);
+
+    if( Config.MenuContentFullSize || Scrollable )
+        DecorBorderDraw(Left, Top, Width, ComplexContent.ContentHeight(true), Config.decorBorderMenuContentSize, Config.decorBorderMenuContentType,
+            Config.decorBorderMenuContentFg, Config.decorBorderMenuContentBg);
+    else
+        DecorBorderDraw(Left, Top, Width, ComplexContent.ContentHeight(false), Config.decorBorderMenuContentSize, Config.decorBorderMenuContentType,
+            Config.decorBorderMenuContentFg, Config.decorBorderMenuContentBg);
+}
+
+int cFlatDisplayMenu::GetTextAreaWidth(void) const {
+    return menuWidth - (marginItem*2);
+}
+
+const cFont *cFlatDisplayMenu::GetTextAreaFont(bool FixedFont) const {
+    const cFont *rfont = FixedFont ? fontFixed : font;
+    return rfont;
+}
+
+void cFlatDisplayMenu::Flush(void) {
+    TopBarUpdate();
+
+    if( Config.MenuFullOsd && !MenuFullOsdIsDrawn ) {
+        menuPixmap->DrawRectangle(cRect(0, menuItemLastHeight - Config.decorBorderMenuItemSize, menuItemWidth + Config.decorBorderMenuItemSize*2, menuPixmap->ViewPort().Height() - menuItemLastHeight + marginItem), Theme.Color(clrItemSelableBg));
+        //menuPixmap->DrawRectangle(cRect(0, menuPixmap->ViewPort().Height() - 5, menuItemWidth + Config.decorBorderMenuItemSize*2, 5), Theme.Color(clrItemSelableBg));
+        MenuFullOsdIsDrawn = true;
+    }
+
+    if( Config.MenuTimerShowCount && menuCategory == mcTimer ) {
+        int timerCount = 0, timerActiveCount = 0;
+        for(cTimer *Timer = Timers.First(); Timer; Timer = Timers.Next(Timer)) {
+            timerCount++;
+            if( Timer->HasFlags(tfActive) )
+                timerActiveCount++;
+        }
+        if( LastTimerCount != timerCount || LastTimerActiveCount != timerActiveCount ) {
+            LastTimerCount = timerCount;
+            LastTimerActiveCount = timerActiveCount;
+            cString newTitle = cString::sprintf("%s (%d/%d)", *LastTitle, timerActiveCount, timerCount);
+            TopBarSetTitleWithoutClear(*newTitle);
+        }
+    }
+
+    osd->Flush();
+}
+
+void cFlatDisplayMenu::ItemBorderInsertUnique(sDecorBorder ib) {
+    std::list<sDecorBorder>::iterator it;
+    for( it = ItemsBorder.begin(); it != ItemsBorder.end(); it++ ) {
+        if( (*it).Left == ib.Left && (*it).Top == ib.Top ) {
+            (*it).Left = ib.Left;
+            (*it).Top = ib.Top;
+            (*it).Width = ib.Width;
+            (*it).Height = ib.Height;
+            (*it).Size = ib.Size;
+            (*it).Type = ib.Type;
+            (*it).ColorFg = ib.ColorFg;
+            (*it).ColorBg = ib.ColorBg;
+            (*it).From = ib.From;
+            return;
+        }
+    }
+
+    ItemsBorder.push_back(ib);
+}
+
+void cFlatDisplayMenu::ItemBorderDrawAllWithScrollbar(void) {
+    std::list<sDecorBorder>::iterator it;
+    for( it = ItemsBorder.begin(); it != ItemsBorder.end(); it++ ) {
+        DecorBorderDraw((*it).Left, (*it).Top, (*it).Width - scrollBarWidth, (*it).Height, (*it).Size, (*it).Type,
+            (*it).ColorFg, (*it).ColorBg, BorderMenuItem);
+    }
+}
+
+void cFlatDisplayMenu::ItemBorderDrawAllWithoutScrollbar(void) {
+    std::list<sDecorBorder>::iterator it;
+    for( it = ItemsBorder.begin(); it != ItemsBorder.end(); it++ ) {
+        DecorBorderDraw((*it).Left, (*it).Top, (*it).Width + scrollBarWidth, (*it).Height, (*it).Size, (*it).Type,
+            (*it).ColorFg, (*it).ColorBg, BorderMenuItem);
+    }
+}
+
+void cFlatDisplayMenu::ItemBorderClear(void) {
+    ItemsBorder.clear();
+}
+
+time_t cFlatDisplayMenu::GetLastRecTimeFromFolder(const cRecording *Recording, int Level) {
+    std::string RecFolder = GetRecordingName(Recording, Level, true);
+    time_t RecStart = Recording->Start();
+
+    for(cRecording *rec = Recordings.First(); rec; rec = Recordings.Next(rec)) {
+        std::string RecFolder2 = GetRecordingName(rec, Level, true);
+        if( RecFolder == RecFolder2 ) { // recordings must be in the same folder
+            time_t RecStart2 = rec->Start();
+            if( Config.MenuItemRecordingShowFolderDate == 1) { // newest
+                if( RecStart2 > RecStart )
+                    RecStart = RecStart2;
+            } else if( Config.MenuItemRecordingShowFolderDate == 2 ) // oldest
+                if( RecStart2 < RecStart )
+                    RecStart = RecStart2;
+        }
+    }
+
+    return RecStart;
+}
+
+// returns the string between start and end or an empty string if not found
+string cFlatDisplayMenu::xml_substring(string source, const char* str_start, const char* str_end) {
+    size_t start = source.find(str_start);
+    size_t end   = source.find(str_end);
+
+    if (string::npos != start && string::npos != end) {
+        return (source.substr(start + strlen(str_start), end - start - strlen(str_start)));
+    }
+
+    return string();
+}
+
+const char * cFlatDisplayMenu::GetRecordingName(const cRecording *Recording, int Level, bool isFolder) {
+    if( !Recording )
+        return "";
+    std::string recNamePart;
+    std::string recName = Recording->Name();
+    try {
+        std::vector<std::string> tokens;
+        std::istringstream f(recName.c_str());
+        std::string s;
+        while (std::getline(f, s, FOLDERDELIMCHAR)) {
+            tokens.push_back(s);
+        }
+        recNamePart = tokens.at(Level);
+    } catch (...) {
+        recNamePart = recName.c_str();
+    }
+
+    if( Config.MenuItemRecordingClearPercent && isFolder ) {
+        if( recNamePart[0] == '%' ) {
+            recNamePart.erase(0, 1);
+        }
+    }
+    return recNamePart.c_str();
+}
+
+const char* cFlatDisplayMenu::GetGenreIcon(uchar genre) {
+    switch (genre & 0xF0) {
+        case ecgMovieDrama:
+            switch (genre & 0x0F) {
+                case 0x00: return "Movie_Drama";
+                case 0x01: return "Detective_Thriller";
+                case 0x02: return "Adventure_Western_War";
+                case 0x03: return "Science Fiction_Fantasy_Horror";
+                case 0x04: return "Comedy";
+                case 0x05: return "Soap_Melodrama_Folkloric";
+                case 0x06: return "Romance";
+                case 0x07: return "Serious_Classical_Religious_Historical Movie_Drama";
+                case 0x08: return "Adult Movie_Drama";
+                default:   return "Movie_Drama";
+            }
+            break;
+        case ecgNewsCurrentAffairs:
+            switch (genre & 0x0F) {
+                case 0x00: return "News_Current Affairs";
+                case 0x01: return "News_Weather Report";
+                case 0x02: return "News Magazine";
+                case 0x03: return "Documentary";
+                case 0x04: return "Discussion_Inverview_Debate";
+                default:   return "News_Current Affairs";
+            }
+            break;
+        case ecgShow:
+            switch (genre & 0x0F) {
+                case 0x00: return "Show_Game Show";
+                case 0x01: return "Game Show_Quiz_Contest";
+                case 0x02: return "Variety Show";
+                case 0x03: return "Talk Show";
+                default:   return "Show_Game Show";
+            }
+            break;
+        case ecgSports:
+            switch (genre & 0x0F) {
+                case 0x00: return "Sports";
+                case 0x01: return "Special Event";
+                case 0x02: return "Sport Magazine";
+                case 0x03: return "Football_Soccer";
+                case 0x04: return "Tennis_Squash";
+                case 0x05: return "Team Sports";
+                case 0x06: return "Athletics";
+                case 0x07: return "Motor Sport";
+                case 0x08: return "Water Sport";
+                case 0x09: return "Winter Sports";
+                case 0x0A: return "Equestrian";
+                case 0x0B: return "Martial Sports";
+                default:   return "Sports";
+            }
+            break;
+        case ecgChildrenYouth:
+            switch (genre & 0x0F) {
+                case 0x00: return "Childrens_Youth Programme";
+                case 0x01: return "Pre-school Childrens Programme";
+                case 0x02: return "Entertainment Programme for 6 to 14";
+                case 0x03: return "Entertainment Programme for 10 to 16";
+                case 0x04: return "Informational_Educational_School Programme";
+                case 0x05: return "Cartoons_Puppets";
+                default:   return "Childrens_Youth Programme";
+            }
+            break;
+        case ecgMusicBalletDance:
+            switch (genre & 0x0F) {
+                case 0x00: return "Music_Ballet_Dance";
+                case 0x01: return "Rock_Pop";
+                case 0x02: return "Serious_Classical Music";
+                case 0x03: return "Folk_Tradional Music";
+                case 0x04: return "Jazz";
+                case 0x05: return "Musical_Opera";
+                case 0x06: return "Ballet";
+                default:   return "Music_Ballet_Dance";
+            }
+            break;
+        case ecgArtsCulture:
+            switch (genre & 0x0F) {
+                case 0x00: return "Arts_Culture";
+                case 0x01: return "Performing Arts";
+                case 0x02: return "Fine Arts";
+                case 0x03: return "Religion";
+                case 0x04: return "Popular Culture_Traditional Arts";
+                case 0x05: return "Literature";
+                case 0x06: return "Film_Cinema";
+                case 0x07: return "Experimental Film_Video";
+                case 0x08: return "Broadcasting_Press";
+                case 0x09: return "New Media";
+                case 0x0A: return "Arts_Culture Magazine";
+                case 0x0B: return "Fashion";
+                default:   return "Arts_Culture";
+            }
+            break;
+        case ecgSocialPoliticalEconomics:
+            switch (genre & 0x0F) {
+                case 0x00: return "Social_Political_Economics";
+                case 0x01: return "Magazine_Report_Documentary";
+                case 0x02: return "Economics_Social Advisory";
+                case 0x03: return "Remarkable People";
+                default:   return "Social_Political_Economics";
+            }
+            break;
+        case ecgEducationalScience:
+            switch (genre & 0x0F) {
+                case 0x00: return "Education_Science_Factual";
+                case 0x01: return "Nature_Animals_Environment";
+                case 0x02: return "Technology_Natural Sciences";
+                case 0x03: return "Medicine_Physiology_Psychology";
+                case 0x04: return "Foreign Countries_Expeditions";
+                case 0x05: return "Social_Spiritual Sciences";
+                case 0x06: return "Further Education";
+                case 0x07: return "Languages";
+                default:   return "Education_Science_Factual";
+            }
+            break;
+        case ecgLeisureHobbies:
+            switch (genre & 0x0F) {
+                case 0x00: return "Leisure_Hobbies";
+                case 0x01: return "Tourism_Travel";
+                case 0x02: return "Handicraft";
+                case 0x03: return "Motoring";
+                case 0x04: return "Fitness_Health";
+                case 0x05: return "Cooking";
+                case 0x06: return "Advertisement_Shopping";
+                case 0x07: return "Gardening";
+                default:   return "Leisure_Hobbies";
+            }
+            break;
+        case ecgSpecial:
+            switch (genre & 0x0F) {
+                case 0x00: return "Original Language";
+                case 0x01: return "Black & White";
+                case 0x02: return "Unpublished";
+                case 0x03: return "Live Broadcast";
+                default:   return "Original Language";
+            }
+            break;
+        default: isyslog("skinflatplus: Genre not found: %x", genre);
+    }
+    return "";
+}
+
+void cFlatDisplayMenu::DrawMainMenuWidgets(void) {
+    int wLeft = osdWidth * Config.MainMenuItemScale + marginItem + Config.decorBorderMenuContentSize;
+    int wTop = topBarHeight + marginItem + Config.decorBorderTopBarSize*2 + Config.decorBorderMenuContentSize;
+
+    int wWidth = osdWidth - wLeft - Config.decorBorderMenuContentSize;
+    int wHeight = menuPixmap->ViewPort().Height() - marginItem*2;
+    int ContentTop = 0;
+
+    contentWidget.Clear();
+    contentWidget.SetOsd(osd);
+    contentWidget.SetPosition(cRect(wLeft, wTop, wWidth, wHeight));
+    contentWidget.SetBGColor(Theme.Color(clrMenuRecBg));
+    contentWidget.SetScrollingActive(false);
+
+    std::vector<std::pair<int, std::string> > widgets;
+
+    if( Config.MainMenuWidgetDVBDevicesShow )
+        widgets.push_back(std::make_pair(Config.MainMenuWidgetDVBDevicesPosition, "dvb_devices"));
+    if( Config.MainMenuWidgetActiveTimerShow )
+        widgets.push_back(std::make_pair(Config.MainMenuWidgetActiveTimerPosition, "active_timer"));
+    if( Config.MainMenuWidgetLastRecShow )
+        widgets.push_back(std::make_pair(Config.MainMenuWidgetDVBDevicesPosition, "last_recordings"));
+    if( Config.MainMenuWidgetSystemInfoShow )
+        widgets.push_back(std::make_pair(Config.MainMenuWidgetSystemInfoPosition, "system_information"));
+    if( Config.MainMenuWidgetSystemUpdatesShow )
+        widgets.push_back(std::make_pair(Config.MainMenuWidgetSystemUpdatesPosition, "system_updates"));
+    if( Config.MainMenuWidgetTemperaturesShow )
+        widgets.push_back(std::make_pair(Config.MainMenuWidgetTemperaturesPosition, "temperatures"));
+    if( Config.MainMenuWidgetTimerConflictsShow )
+        widgets.push_back(std::make_pair(Config.MainMenuWidgetTimerConflictsPosition, "timer_conflicts"));
+    if( Config.MainMenuWidgetCommandShow )
+        widgets.push_back(std::make_pair(Config.MainMenuWidgetCommandPosition, "custom_command"));
+    if( Config.MainMenuWidgetWeatherShow )
+        widgets.push_back(std::make_pair(Config.MainMenuWidgetWeatherPosition, "weather"));
+
+    std::sort(widgets.begin(), widgets.end(), pairCompareIntString);
+
+    while( !widgets.empty() ) {
+        std::pair<int, std::string> pairWidget = widgets.back();
+        widgets.pop_back();
+        std::string widget = pairWidget.second;
+
+        if( widget.compare("dvb_devices") == 0 ) {
+            int addHeight = DrawMainMenuWidgetDVBDevices(wLeft, wWidth, ContentTop);
+            if( addHeight > 0 )
+                ContentTop = addHeight + marginItem;
+        } else if( widget.compare("active_timer") == 0 ) {
+            int addHeight = DrawMainMenuWidgetActiveTimers(wLeft, wWidth, ContentTop);
+            if( addHeight > 0 )
+                ContentTop = addHeight + marginItem;
+        } else if( widget.compare("last_recordings") == 0 ) {
+            int addHeight = DrawMainMenuWidgetLastRecordings(wLeft, wWidth, ContentTop);
+            if( addHeight > 0 )
+                ContentTop = addHeight + marginItem;
+        } else if( widget.compare("system_information") == 0 ) {
+            int addHeight = DrawMainMenuWidgetSystemInformation(wLeft, wWidth, ContentTop);
+            if( addHeight > 0 )
+                ContentTop = addHeight + marginItem;
+        } else if( widget.compare("system_updates") == 0 ) {
+            int addHeight = DrawMainMenuWidgetSystemUpdates(wLeft, wWidth, ContentTop);
+            if( addHeight > 0 )
+                ContentTop = addHeight + marginItem;
+        } else if( widget.compare("temperatures") == 0 ) {
+            int addHeight = DrawMainMenuWidgetTemperaturs(wLeft, wWidth, ContentTop);
+            if( addHeight > 0 )
+                ContentTop = addHeight + marginItem;
+        } else if( widget.compare("timer_conflicts") == 0 ) {
+            int addHeight = DrawMainMenuWidgetTimerConflicts(wLeft, wWidth, ContentTop);
+            if( addHeight > 0 )
+                ContentTop = addHeight + marginItem;
+        } else if( widget.compare("custom_command") == 0 ) {
+            int addHeight = DrawMainMenuWidgetCommand(wLeft, wWidth, ContentTop);
+            if( addHeight > 0 )
+                ContentTop = addHeight + marginItem;
+        } else if( widget.compare("weather") == 0 ) {
+            int addHeight = DrawMainMenuWidgetWeather(wLeft, wWidth, ContentTop);
+            if( addHeight > 0 )
+                ContentTop = addHeight + marginItem;
+        }
+
+    }
+
+    contentWidget.CreatePixmaps(false);
+    contentWidget.Draw();
+
+    DecorBorderDraw(wLeft, wTop, wWidth, contentWidget.ContentHeight(false), Config.decorBorderMenuContentSize, Config.decorBorderMenuContentType,
+        Config.decorBorderMenuContentFg, Config.decorBorderMenuContentBg, BorderMMWidget);
+}
+
+int cFlatDisplayMenu::DrawMainMenuWidgetDVBDevices(int wLeft, int wWidth, int ContentTop) {
+    int numDevices = cDevice::NumDevices();
+
+    if( ContentTop + fontHeight + 6 + fontSmlHeight > menuPixmap->ViewPort().Height() )
+        return -1;
+
+    cImage *img = imgLoader.LoadIcon("widgets/dvb_devices", fontHeight, fontHeight - marginItem*2);
+    if( img ) {
+        contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight));
+    }
+    contentWidget.AddText(tr("DVB Devices"), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+    ContentTop += fontHeight;
+    contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine));
+    ContentTop += 6;
+
+    // check device which currently displays live tv
+    int deviceLiveTV = -1;
+    cDevice *primaryDevice = cDevice::PrimaryDevice();
+    if (primaryDevice) {
+        if (!primaryDevice->Replaying() || primaryDevice->Transferring())
+            deviceLiveTV = cDevice::ActualDevice()->DeviceNumber();
+        else
+            deviceLiveTV = primaryDevice->DeviceNumber();
+    }
+
+    // check currently recording devices
+    bool *recDevices = new bool[numDevices];
+    for( int i=0; i < numDevices; i++ )
+        recDevices[i] = false;
+    for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer)) {
+        if (!timer->Recording()) {
+            continue;
+        }
+        if (cRecordControl *RecordControl = cRecordControls::GetRecordControl(timer)) {
+            const cDevice *recDevice = RecordControl->Device();
+            if (recDevice) {
+                recDevices[recDevice->DeviceNumber()] = true;
+            }
+        }
+    }
+    int actualNumDevices = 0;
+    for (int i = 0; i < numDevices; i++) {
+        if( ContentTop + marginItem > menuPixmap->ViewPort().Height() )
+            continue;
+        const cDevice *device = cDevice::GetDevice(i);
+        if (!device || !device->NumProvidedSystems()) {
+            continue;
+        }
+        actualNumDevices++;
+        std::stringstream strDevice;
+
+        cString channelName;
+
+        const cChannel *channel = device->GetCurrentlyTunedTransponder();
+        if( i == deviceLiveTV ) {
+            strDevice << tr("LiveTV") << " (";
+            cString chanName;
+            if (channel && channel->Number() > 0) {
+                chanName = channel->Name();
+            } else {
+                chanName = tr("Unknown");
+            }
+            strDevice << *chanName;
+            strDevice << ")";
+        }
+        else if( recDevices[i] ) {
+            strDevice << tr("recording") << " (";
+            cString chanName;
+            if (channel && channel->Number() > 0) {
+                chanName = channel->Name();
+            } else {
+                chanName = tr("Unknown");
+            }
+            strDevice << *chanName;
+            strDevice << ")";
+        } else {
+            if( channel ) {
+                cString chanName = channel->Name();
+                if( !strcmp(*chanName, "") )
+                    strDevice << tr("not used");
+                else {
+                    if( Config.MainMenuWidgetDVBDevicesDiscardUnknown )
+                        continue;
+                    strDevice << tr("Unknown") << " (" << *chanName << ")";
+                }
+            } else {
+                if( Config.MainMenuWidgetDVBDevicesDiscardNotUsed )
+                    continue;
+                strDevice << tr("not used");
+            }
+        }
+        channelName = strDevice.str().c_str();
+        cString str = cString::sprintf("%d", i);
+        int left = marginItem;
+        if( numDevices <= 9 ) {
+            contentWidget.AddText(*str, false, cRect(left, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml);
+
+            left += fontSml->Width("XX");
+        } else {
+            contentWidget.AddText(*str, false, cRect(left, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, fontSml->Width("XX"), fontSmlHeight, taRight);
+
+            left += fontSml->Width("XXX");
+        }
+        str = *(device->DeviceType());
+        contentWidget.AddText(*str, false, cRect(left, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, fontSml->Width("XXXXXXX"), fontSmlHeight, taLeft);
+
+        left += fontSml->Width("XXXXXXXX");
+        str = *channelName;
+        contentWidget.AddText(*str, false, cRect(left, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml);
+
+        ContentTop += fontSmlHeight;
+    }
+
+    delete[] recDevices;
+
+    return contentWidget.ContentHeight(false);
+}
+
+int cFlatDisplayMenu::DrawMainMenuWidgetActiveTimers(int wLeft, int wWidth, int ContentTop) {
+    if( ContentTop + fontHeight + 6 + fontSmlHeight > menuPixmap->ViewPort().Height() )
+        return -1;
+
+    cImage *img = imgLoader.LoadIcon("widgets/active_timers", fontHeight, fontHeight - marginItem*2);
+    if( img ) {
+        contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight));
+    }
+    contentWidget.AddText(tr("Active Timer"), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+    ContentTop += fontHeight;
+    contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine));
+    ContentTop += 6;
+
+    // look for timers
+    time_t t;
+    time(&t);
+    int index = 0, numRec = 0;
+    for(cTimer *ti = Timers.First(); ti && index < Config.MainMenuWidgetActiveTimerMaxCount; ti = Timers.Next(ti), index++) {
+        if( ti->Matches(t) && ti->HasFlags(tfActive) ) {
+            numRec++;
+        }
+    }
+    if( numRec == 0 && Config.MainMenuWidgetActiveTimerHideEmpty )
+        return 0;
+    else if( numRec == 0 ) {
+        contentWidget.AddText(tr("no active timer"), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+    } else {
+        index = 0;
+        for(cTimer *ti = Timers.First(); ti && index < Config.MainMenuWidgetActiveTimerMaxCount; ti = Timers.Next(ti), index++) {
+            if( ti->Matches(t) && ti->HasFlags(tfActive) ) {
+                if( ContentTop + marginItem > menuPixmap->ViewPort().Height() )
+                    continue;
+
+                const cChannel *Channel = ti->Channel();
+                //const cEvent *Event = Timer->Event();
+                std::stringstream strTimer;
+                strTimer << index+1 << ": ";
+                if( Channel )
+                    strTimer << Channel->Name() << " - ";
+                else
+                    strTimer << tr("Unknown") << " - ";
+                strTimer << ti->File();
+
+                contentWidget.AddText(strTimer.str().c_str(), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                    Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+
+                ContentTop += fontSmlHeight;
+            }
+        }
+    }
+
+    return contentWidget.ContentHeight(false);
+}
+
+int cFlatDisplayMenu::DrawMainMenuWidgetLastRecordings(int wLeft, int wWidth, int ContentTop) {
+    if( ContentTop + fontHeight + 6 + fontSmlHeight > menuPixmap->ViewPort().Height() )
+        return -1;
+
+    cImage *img = imgLoader.LoadIcon("widgets/last_recordings", fontHeight, fontHeight - marginItem*2);
+    if( img ) {
+        contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight));
+    }
+    contentWidget.AddText(tr("Last Recordings"), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+    ContentTop += fontHeight;
+    contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine));
+    ContentTop += 6;
+
+    std::vector<std::pair<time_t, std::string> > Recs;
+    for(cRecording *rec = Recordings.First(); rec; rec = Recordings.Next(rec)) {
+        time_t RecStart = rec->Start();
+
+        int Minutes = (rec->LengthInSeconds() + 30) / 60;
+        cString Length = cString::sprintf("%02d:%02d", Minutes / 60, Minutes % 60);
+        cString DateTime = cString::sprintf("%s  %s  %s", *ShortDateString(rec->Start()), *TimeString(rec->Start()), *Length);
+
+        std::string strRec = *(cString::sprintf("%s - %s", *DateTime, rec->Name()));
+        Recs.push_back(std::make_pair(RecStart, strRec));
+    }
+    // Sort by RecStart
+    std::sort(Recs.begin(), Recs.end(), pairCompareTimeStringDesc);
+    int index = 0;
+    while( !Recs.empty() && index < Config.MainMenuWidgetLastRecMaxCount ) {
+        if( ContentTop + marginItem > menuPixmap->ViewPort().Height() )
+            continue;
+
+        std::pair<time_t, std::string> pairRec = Recs.back();
+        Recs.pop_back();
+        std::string Rec = pairRec.second;
+
+        std::stringstream strRec;
+        strRec << Rec;
+
+        contentWidget.AddText(strRec.str().c_str(), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+        ContentTop += fontSmlHeight;
+        index++;
+    }
+    return contentWidget.ContentHeight(false);
+}
+
+int cFlatDisplayMenu::DrawMainMenuWidgetTimerConflicts(int wLeft, int wWidth, int ContentTop) {
+    if( ContentTop + fontHeight + 6 + fontSmlHeight > menuPixmap->ViewPort().Height() )
+        return -1;
+
+    cImage *img = imgLoader.LoadIcon("widgets/timer_conflicts", fontHeight, fontHeight - marginItem*2);
+    if( img ) {
+        contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight));
+    }
+    contentWidget.AddText(tr("Timer Conflicts"), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+    ContentTop += fontHeight;
+    contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine));
+    ContentTop += 6;
+
+    int numConflicts = 0;
+    cPlugin *p = cPluginManager::GetPlugin("epgsearch");
+    if (p) {
+        Epgsearch_lastconflictinfo_v1_0 *serviceData = new Epgsearch_lastconflictinfo_v1_0;
+        if (serviceData) {
+            serviceData->nextConflict = 0;
+            serviceData->relevantConflicts = 0;
+            serviceData->totalConflicts = 0;
+            p->Service("Epgsearch-lastconflictinfo-v1.0", serviceData);
+            if (serviceData->relevantConflicts > 0) {
+                numConflicts = serviceData->relevantConflicts;
+            }
+            delete serviceData;
+        }
+    }
+    if( numConflicts == 0 && Config.MainMenuWidgetTimerConflictsHideEmpty ) {
+        return 0;
+    } else if( numConflicts == 0 ) {
+        contentWidget.AddText(tr("no timer conflicts"), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+    } else {
+        cString str = cString::sprintf("%s: %d", tr("timer conflicts"), numConflicts);
+        contentWidget.AddText(*str, false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+    }
+
+    return contentWidget.ContentHeight(false);
+}
+
+int cFlatDisplayMenu::DrawMainMenuWidgetSystemInformation(int wLeft, int wWidth, int ContentTop) {
+    if( ContentTop + fontHeight + 6 + fontSmlHeight > menuPixmap->ViewPort().Height() )
+        return -1;
+
+    cImage *img = imgLoader.LoadIcon("widgets/system_information", fontHeight, fontHeight - marginItem*2);
+    if( img ) {
+        contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight));
+    }
+    contentWidget.AddText(tr("System Information"), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+    ContentTop += fontHeight;
+    contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine));
+    ContentTop += 6;
+
+    cString execFile = cString::sprintf("\"%s/system_information/system_information\"", WIDGETFOLDER);
+    int r = system(*execFile);
+    r += 0; // prevent Warning for unused variable
+
+    cString configsPath = cString::sprintf("%s/system_information/", WIDGETOUTPUTPATH);
+
+    std::vector<std::string> files;
+
+    cReadDir d(configsPath);
+    struct dirent *e;
+    while ((e = d.Next()) != NULL) {
+        std::string fname = e->d_name;
+        std::size_t found = fname.find("_");
+        if( found != std::string::npos ) {
+            std::string num = fname.substr(0, found);
+            if( atoi( num.c_str() ) > 0 ) {
+                files.push_back(e->d_name);
+            }
+        }
+    }
+    int Column = 1;
+    int ContentLeft = marginItem;
+    std::sort(files.begin(), files.end(), stringCompare);
+    if( files.size() == 0 ) {
+        cString str = cString::sprintf("%s - %s", tr("no information available please check the script"), *execFile);
+        contentWidget.AddText(*str, false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+    } else {
+        for(unsigned i = 0; i < files.size(); i++) {
+            // check for height
+            if( ContentTop + marginItem > menuPixmap->ViewPort().Height() )
+                break;
+            std::string fname = files[i];
+            std::size_t found = fname.find("_");
+            if( found != std::string::npos ) {
+                std::string num = fname.substr(0, found);
+                if( atoi( num.c_str() ) > 0 ) {
+                    std::string item = fname.substr(found + 1, fname.length() - found);
+                    cString itemFilename = cString::sprintf("%s/system_information/%s", WIDGETOUTPUTPATH, fname.c_str() );
+                    std::ifstream file(*itemFilename, std::ifstream::in);
+                    if( file.is_open() ) {
+                        std::string item_content;
+                        std::getline(file, item_content);
+
+                        if( !strcmp(item.c_str(), "sys_version") ) {
+                            if( Column == 2 ) {
+                                Column = 1;
+                                ContentTop += fontSmlHeight;
+                                ContentLeft = marginItem;
+                            }
+                            cString str = cString::sprintf("%s: %s", tr("System Version"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            ContentTop += fontSmlHeight;
+                        } else if( ! item.compare("kernel_version") ) {
+                            if( Column == 2 ) {
+                                Column = 1;
+                                ContentTop += fontSmlHeight;
+                                ContentLeft = marginItem;
+                            }
+                            cString str = cString::sprintf("%s: %s", tr("Kernel Version"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            ContentTop += fontSmlHeight;
+                        } else if( ! item.compare("uptime") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Uptime"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("load") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Load"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("processes") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Processes"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("mem_usage") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Memory Usage"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("swap_usage") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Swap Usage"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("root_usage") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Root Usage"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("video_usage") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Video Usage"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("vdr_cpu_usage") ) {
+                            cString str = cString::sprintf("%s: %s", tr("VDR CPU Usage"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("vdr_mem_usage") ) {
+                            cString str = cString::sprintf("%s: %s", tr("VDR MEM Usage"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("cpu") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Temp CPU"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("gpu") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Temp GPU"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("pccase") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Temp PC-Case"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("motherboard") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Temp MB"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("updates") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Updates"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        } else if( ! item.compare("security_updates") ) {
+                            cString str = cString::sprintf("%s: %s", tr("Security Updates"), item_content.c_str());
+                            contentWidget.AddText(*str, false, cRect(ContentLeft, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+                            if( Column == 1 ) {
+                                Column = 2;
+                                ContentLeft = wWidth / 2;
+                            } else {
+                                Column = 1;
+                                ContentLeft = marginItem;
+                                ContentTop += fontSmlHeight;
+                            }
+                        }
+                        file.close();
+                    }
+                }
+            }
+        }
+    }
+
+    return contentWidget.ContentHeight(false);
+}
+
+int cFlatDisplayMenu::DrawMainMenuWidgetSystemUpdates(int wLeft, int wWidth, int ContentTop) {
+    if( ContentTop + fontHeight + 6 + fontSmlHeight > menuPixmap->ViewPort().Height() )
+        return -1;
+
+    cImage *img = imgLoader.LoadIcon("widgets/system_updates", fontHeight, fontHeight - marginItem*2);
+    if( img ) {
+        contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight));
+    }
+    contentWidget.AddText(tr("System Updates"), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+    ContentTop += fontHeight;
+    contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine));
+    ContentTop += 6;
+
+    int updates = 0, securityUpdates = 0;
+    cString itemFilename = cString::sprintf("%s/system_updatestatus/updates", WIDGETOUTPUTPATH );
+    std::ifstream file(*itemFilename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::string cont;
+        std::getline(file, cont);
+        updates = atoi(cont.c_str());
+        file.close();
+    } else {
+        updates = -1;
+    }
+
+    itemFilename = cString::sprintf("%s/system_updatestatus/security_updates", WIDGETOUTPUTPATH );
+    std::ifstream file2(*itemFilename, std::ifstream::in);
+    if( file2.is_open() ) {
+        std::string cont;
+        std::getline(file2, cont);
+        securityUpdates = atoi(cont.c_str());
+        file2.close();
+    } else {
+        securityUpdates = -1;
+    }
+
+    if(updates == -1 || securityUpdates == -1) {
+        contentWidget.AddText(tr("Updatestatus not available please check the widget"), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+    } else if( updates == 0 && securityUpdates == 0 && Config.MainMenuWidgetSystemUpdatesHideIfZero ) {
+        return 0;
+    } else {
+        cString str = cString::sprintf("%s: %d", tr("Updates"), updates);
+        contentWidget.AddText(*str, false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+        str = cString::sprintf("%s: %d", tr("Security Updates"), securityUpdates);
+        contentWidget.AddText(*str, false, cRect(wWidth/2 + marginItem, ContentTop, wWidth/2 - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+    }
+
+    return contentWidget.ContentHeight(false);
+}
+
+int cFlatDisplayMenu::DrawMainMenuWidgetTemperaturs(int wLeft, int wWidth, int ContentTop) {
+    if( ContentTop + fontHeight + 6 + fontSmlHeight > menuPixmap->ViewPort().Height() )
+        return -1;
+
+    cImage *img = imgLoader.LoadIcon("widgets/temperatures", fontHeight, fontHeight - marginItem*2);
+    if( img ) {
+        contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight));
+    }
+    contentWidget.AddText(tr("Temperatures"), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+    ContentTop += fontHeight;
+    contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine));
+    ContentTop += 6;
+
+    cString execFile = cString::sprintf("cd \"%s/temperatures\"; \"%s/temperatures/temperatures\"", WIDGETFOLDER, WIDGETFOLDER);
+    int r = system(*execFile);
+    r += 0; // prevent Warning for unused variable
+
+    int countTemps = 0;
+
+    std::string tempCPU, tempCase, tempMB, tempGPU;
+    cString itemFilename = cString::sprintf("%s/temperatures/cpu", WIDGETOUTPUTPATH );
+    std::ifstream file(*itemFilename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, tempCPU);
+        file.close();
+        countTemps++;
+    } else {
+        tempCPU = "-1";
+    }
+
+    itemFilename = cString::sprintf("%s/temperatures/pccase", WIDGETOUTPUTPATH );
+    std::ifstream file2(*itemFilename, std::ifstream::in);
+    if( file2.is_open() ) {
+        std::string cont;
+        std::getline(file2, tempCase);
+        file2.close();
+        countTemps++;
+    } else {
+        tempCase = "-1";
+    }
+
+    itemFilename = cString::sprintf("%s/temperatures/motherboard", WIDGETOUTPUTPATH );
+    std::ifstream file3(*itemFilename, std::ifstream::in);
+    if( file3.is_open() ) {
+        std::string cont;
+        std::getline(file3, tempMB);
+        file3.close();
+        countTemps++;
+    } else {
+        tempMB = "-1";
+    }
+    itemFilename = cString::sprintf("%s/temperatures/gpu", WIDGETOUTPUTPATH );
+    std::ifstream file4(*itemFilename, std::ifstream::in);
+    if( file4.is_open() ) {
+        std::string cont;
+        std::getline(file4, tempGPU);
+        file4.close();
+        countTemps++;
+    } else {
+        tempGPU = "-1";
+    }
+
+    if( !strcmp(tempCPU.c_str(), "-1") && !strcmp(tempCase.c_str(), "-1") && !strcmp(tempMB.c_str(), "-1") && !strcmp(tempGPU.c_str(), "-1") ) {
+        contentWidget.AddText(tr("Temperatures not available please check the widget"), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+    } else {
+        int Left = marginItem;
+        int addLeft = wWidth / (countTemps);
+        if( strcmp(tempCPU.c_str(), "-1") ) {
+            cString str = cString::sprintf("%s: %s", tr("CPU"), tempCPU.c_str());
+            contentWidget.AddText(*str, false, cRect(Left, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+            Left += addLeft;
+        }
+        if( strcmp(tempCase.c_str(), "-1") ) {
+            cString str = cString::sprintf("%s: %s", tr("PC-Case"), tempCase.c_str());
+            contentWidget.AddText(*str, false, cRect(Left, ContentTop, wWidth/3 - marginItem*2, fontSmlHeight),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+            Left += addLeft;
+        }
+        if( strcmp(tempMB.c_str(), "-1") ) {
+            cString str = cString::sprintf("%s: %s", tr("MB"), tempMB.c_str());
+            contentWidget.AddText(*str, false, cRect(Left, ContentTop, wWidth/3*2 - marginItem*2, fontSmlHeight),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+            Left += addLeft;
+        }
+        if( strcmp(tempGPU.c_str(), "-1") ) {
+            cString str = cString::sprintf("%s: %s", tr("GPU"), tempGPU.c_str());
+            contentWidget.AddText(*str, false, cRect(Left, ContentTop, wWidth/3*2 - marginItem*2, fontSmlHeight),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+       }
+    }
+
+    return contentWidget.ContentHeight(false);
+}
+
+int cFlatDisplayMenu::DrawMainMenuWidgetCommand(int wLeft, int wWidth, int ContentTop) {
+    if( ContentTop + fontHeight + 6 + fontSmlHeight > menuPixmap->ViewPort().Height() )
+        return -1;
+
+    cString execFile = cString::sprintf("\"%s/command_output/command\"", WIDGETFOLDER);
+    int r = system(*execFile);
+    r += 0; // prevent Warning for unused variable
+
+    std::string Title;
+    cString itemFilename = cString::sprintf("%s/command_output/title", WIDGETOUTPUTPATH );
+    std::ifstream file(*itemFilename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, Title);
+        file.close();
+    } else {
+        Title = tr("no title available");
+    }
+
+    cImage *img = imgLoader.LoadIcon("widgets/command_output", fontHeight, fontHeight - marginItem*2);
+    if( img ) {
+        contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight));
+    }
+    contentWidget.AddText(Title.c_str(), false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+    ContentTop += fontHeight;
+    contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine));
+    ContentTop += 6;
+
+    std::string Output;
+    itemFilename = cString::sprintf("%s/command_output/output", WIDGETOUTPUTPATH );
+    std::ifstream file2(*itemFilename, std::ifstream::in);
+    if( file2.is_open() ) {
+        for (; std::getline(file2, Output); ) {
+            if( ContentTop + marginItem > menuPixmap->ViewPort().Height() )
+                break;
+            contentWidget.AddText(Output.c_str(), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+                Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+            ContentTop += fontSmlHeight;
+        }
+        file2.close();
+    } else {
+        contentWidget.AddText(tr("no output available"), false, cRect(marginItem, ContentTop, wWidth - marginItem*2, fontSmlHeight),
+            Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontSml, wWidth - marginItem*2);
+    }
+
+    return contentWidget.ContentHeight(false);
+}
+
+int cFlatDisplayMenu::DrawMainMenuWidgetWeather(int wLeft, int wWidth, int ContentTop) {
+    if( ContentTop + fontHeight + 6 + fontSmlHeight > menuPixmap->ViewPort().Height() )
+        return -1;
+
+    cFont *fontTempSml = cFont::CreateFont(Setup.FontOsd, Setup.FontOsdSize/2.0 );
+
+    std::string Location;
+    cString locationFilename = cString::sprintf("%s/weather/weather.location", WIDGETOUTPUTPATH );
+    std::ifstream file(*locationFilename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, Location);
+        file.close();
+    } else {
+        Location = tr("Unknown");
+    }
+
+    std::string tempToday = "";
+    cString filename;
+    filename = cString::sprintf("%s/weather/weather.0.temp", WIDGETOUTPUTPATH );
+    file.open(*filename, std::ifstream::in);
+    if( file.is_open() ) {
+        std::getline(file, tempToday);
+        file.close();
+    }
+
+    cString Title = cString::sprintf("%s - %s %s", tr("Weather"), Location.c_str(), tempToday.c_str() );
+
+    cImage *img = imgLoader.LoadIcon("widgets/weather", fontHeight, fontHeight - marginItem*2);
+    if( img ) {
+        contentWidget.AddImage(img, cRect(marginItem, ContentTop + marginItem, fontHeight, fontHeight));
+    }
+    contentWidget.AddText(*Title, false, cRect(marginItem*2 + fontHeight, ContentTop, 0, 0), Theme.Color(clrMenuEventFontTitle), Theme.Color(clrMenuEventBg), font);
+    ContentTop += fontHeight;
+    contentWidget.AddRect(cRect(0, ContentTop, wWidth, 3), Theme.Color(clrMenuEventTitleLine));
+    ContentTop += 6;
+
+    int left = marginItem;
+    for( int index = 0; index < Config.MainMenuWidgetWeatherDays; index++ ) {
+        std::string icon;
+        cString iconFilename = cString::sprintf("%s/weather/weather.%d.icon", WIDGETOUTPUTPATH, index );
+        std::ifstream file(*iconFilename, std::ifstream::in);
+        if( file.is_open() ) {
+            std::getline(file, icon);
+            file.close();
+        } else
+           continue;
+
+        std::string summary;
+        cString summaryFilename = cString::sprintf("%s/weather/weather.%d.summary", WIDGETOUTPUTPATH, index );
+        std::ifstream file2(*summaryFilename, std::ifstream::in);
+        if( file2.is_open() ) {
+            std::getline(file2, summary);
+            file2.close();
+        } else
+           continue;
+
+        std::string tempMax;
+        cString tempMaxFilename = cString::sprintf("%s/weather/weather.%d.tempMax", WIDGETOUTPUTPATH, index );
+        std::ifstream file3(*tempMaxFilename, std::ifstream::in);
+        if( file3.is_open() ) {
+            std::getline(file3, tempMax);
+            file3.close();
+        } else
+           continue;
+
+        std::string tempMin;
+        cString tempMinFilename = cString::sprintf("%s/weather/weather.%d.tempMin", WIDGETOUTPUTPATH, index );
+        std::ifstream file4(*tempMinFilename, std::ifstream::in);
+        if( file4.is_open() ) {
+            std::getline(file4, tempMin);
+            file4.close();
+        } else
+           continue;
+
+        std::string prec;
+        double p = 0.0;
+        cString precString = "0%";
+        cString precFilename = cString::sprintf("%s/weather/weather.%d.precipitation", WIDGETOUTPUTPATH, index );
+        std::ifstream file5(*precFilename, std::ifstream::in);
+        if( file5.is_open() ) {
+            std::getline(file5, prec);
+            std::replace( prec.begin(), prec.end(), '.', ',');
+            file5.close();
+            p = atof(prec.c_str()) * 100.0;
+            p = roundUp(p, 10);
+            precString = cString::sprintf("%.0f%%", p);
+        } else
+           continue;
+
+        std::string precType;
+        cString precTypeFilename = cString::sprintf("%s/weather/weather.%d.precipitationType", WIDGETOUTPUTPATH, index );
+        std::ifstream file6(*precTypeFilename, std::ifstream::in);
+        if( file6.is_open() ) {
+            std::getline(file6, precType);
+            file6.close();
+        } else
+           continue;
+
+        cString weekDayName = "";
+        time_t t;
+        time(&t);
+        struct tm* tm = localtime(&t);
+        tm->tm_mday += index;
+        time_t t2 = mktime(tm);
+        weekDayName = WeekDayName(t2);
+
+        if( Config.MainMenuWidgetWeatherType == 0 ) { // short
+            if( left + fontHeight*2 + fontTempSml->Width("XXXXX") + fontTempSml->Width("XXXX") + marginItem*6 > wWidth )
+                break;
+            if( index > 0 ) {
+                contentWidget.AddText("|", false, cRect(left, ContentTop, 0, 0), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), font);
+                left += font->Width("|") + marginItem*2;
+            }
+
+            cString weatherIcon = cString::sprintf("widgets/%s", icon.c_str());
+            cImage *img = imgLoader.LoadIcon(*weatherIcon, fontHeight, fontHeight - marginItem*2);
+            if( img ) {
+                contentWidget.AddImage(img, cRect(left, ContentTop + marginItem, fontHeight, fontHeight));
+                left += fontHeight + marginItem;
+            }
+            int wtemp = myMax(fontTempSml->Width(tempMax.c_str()), fontTempSml->Width(tempMin.c_str()) );
+            contentWidget.AddText(tempMax.c_str(), false, cRect(left, ContentTop, 0, 0), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontTempSml, wtemp, fontTempSml->Height(), taRight);
+            contentWidget.AddText(tempMin.c_str(), false, cRect(left, ContentTop + fontTempSml->Height(), 0, 0), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontTempSml, wtemp, fontTempSml->Height(), taRight);
+
+            left += wtemp + marginItem;
+
+            img = imgLoader.LoadIcon("widgets/umbrella", fontHeight, fontHeight - marginItem*2);
+            if( img ) {
+                contentWidget.AddImage(img, cRect(left, ContentTop + marginItem, fontHeight, fontHeight));
+                left += fontHeight - marginItem;
+            }
+            contentWidget.AddText(*precString, false, cRect(left, ContentTop + (fontHeight/2 - fontTempSml->Height()/2), 0, 0), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontTempSml);
+            left += fontTempSml->Width(*precString) + marginItem*2;
+        } else { // long
+            if( ContentTop + marginItem > menuPixmap->ViewPort().Height() )
+                break;
+
+            left = marginItem;
+
+            cString dayname = cString::sprintf("%s ", *weekDayName);
+            contentWidget.AddText(*dayname, false, cRect(left, ContentTop, wWidth - marginItem*2, fontHeight), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), font, wWidth - marginItem*2);
+            left += font->Width("XXXX") + marginItem;
+
+            cString weatherIcon = cString::sprintf("widgets/%s", icon.c_str());
+            cImage *img = imgLoader.LoadIcon(*weatherIcon, fontHeight, fontHeight - marginItem*2);
+            if( img ) {
+                contentWidget.AddImage(img, cRect(left, ContentTop + marginItem, fontHeight, fontHeight));
+                left += fontHeight + marginItem;
+            }
+            contentWidget.AddText(tempMax.c_str(), false, cRect(left, ContentTop, 0, 0), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontTempSml, fontTempSml->Width("XXXXX"), fontTempSml->Height(), taRight);
+            contentWidget.AddText(tempMin.c_str(), false, cRect(left, ContentTop + fontTempSml->Height(), 0, 0), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontTempSml, fontTempSml->Width("XXXXX"), fontTempSml->Height(), taRight);
+
+            left += fontTempSml->Width("XXXXXX") + marginItem;
+
+            img = imgLoader.LoadIcon("widgets/umbrella", fontHeight, fontHeight - marginItem*2);
+            if( img ) {
+                contentWidget.AddImage(img, cRect(left, ContentTop + marginItem, fontHeight, fontHeight));
+                left += fontHeight - marginItem;
+            }
+            contentWidget.AddText(*precString, false, cRect(left, ContentTop + (fontHeight/2 - fontTempSml->Height()/2), 0, 0), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontTempSml, fontTempSml->Width("XXXX"), fontTempSml->Height(), taRight);
+            left += fontTempSml->Width("XXXXX") + marginItem;
+
+            contentWidget.AddText(summary.c_str(), false, cRect(left, ContentTop + (fontHeight/2 - fontTempSml->Height()/2), wWidth - left, fontHeight), Theme.Color(clrMenuEventFontInfo), Theme.Color(clrMenuEventBg), fontTempSml, wWidth - left);
+
+            ContentTop += fontHeight;
+        }
+
+    }
+    return contentWidget.ContentHeight(false);
+}
+
+void cFlatDisplayMenu::PreLoadImages(void) {
+    // menu icons
+    cString Path = cString::sprintf("%s%s/menuIcons", *Config.iconPath, Setup.OSDTheme);
+    cReadDir d(Path);
+    struct dirent *e;
+    while ((e = d.Next()) != NULL) {
+        cString FileName = cString::sprintf("menuIcons/%s", GetFilenameWithoutext(e->d_name));
+        imgLoader.LoadIcon(*FileName, fontHeight - marginItem*2, fontHeight - marginItem*2);
+    }
+
+    imgLoader.LoadIcon("menuIcons/blank", fontHeight - marginItem*2, fontHeight - marginItem*2);
+
+    int imageHeight = fontHeight;
+    int imageBGHeight = imageHeight;
+    int imageBGWidth = imageHeight*1.34;
+    cImage *imgBG = imgLoader.LoadIcon("logo_background", imageBGWidth, imageBGHeight);
+    if( imgBG ) {
+        imageBGHeight = imgBG->Height();
+        imageBGWidth = imgBG->Width();
+    }
+
+    imgLoader.LoadIcon("radio", imageBGWidth - 10, imageBGHeight - 10);
+    imgLoader.LoadIcon("changroup", imageBGWidth - 10, imageBGHeight - 10);
+    imgLoader.LoadIcon("tv", imageBGWidth - 10, imageBGHeight - 10);
+    imgLoader.LoadIcon("timerInactive", imageHeight, imageHeight);
+    imgLoader.LoadIcon("timerRecording", imageHeight, imageHeight);
+    imgLoader.LoadIcon("timerActive", imageHeight, imageHeight);
+
+    int index = 0;
+    cImage *img = NULL;
+    for(cChannel *Channel = Channels.First(); Channel && index < LOGO_PRE_CACHE; Channel = Channels.Next(Channel))
+    {
+        img = imgLoader.LoadLogo(Channel->Name(), imageBGWidth - 4, imageBGHeight - 4);
+        if( img )
+            index++;
+    }
+
+    imgLoader.LoadIcon("radio", 999, topBarHeight - marginItem*2);
+    imgLoader.LoadIcon("changroup", 999, topBarHeight - marginItem*2);
+    imgLoader.LoadIcon("tv", 999, topBarHeight - marginItem*2);
+
+    imgLoader.LoadIcon("timer_full", imageHeight, imageHeight);
+    imgLoader.LoadIcon("timer_full_cur", imageHeight, imageHeight);
+    imgLoader.LoadIcon("timer_partial", imageHeight, imageHeight);
+    imgLoader.LoadIcon("vps", imageHeight, imageHeight);
+    imgLoader.LoadIcon("vps_cur", imageHeight, imageHeight);
+
+    imgLoader.LoadIcon("recording_new", fontHeight, fontHeight);
+    imgLoader.LoadIcon("recording_new", fontSmlHeight, fontSmlHeight);
+    imgLoader.LoadIcon("recording_cutted", fontHeight, fontHeight);
+    imgLoader.LoadIcon("recording_new_cur", fontHeight, fontHeight);
+    imgLoader.LoadIcon("recording_new_cur", fontSmlHeight, fontSmlHeight);
+    imgLoader.LoadIcon("recording_cutted_cur", fontHeight, fontHeight);
+    imgLoader.LoadIcon("recording", fontHeight, fontHeight);
+    imgLoader.LoadIcon("folder", fontHeight, fontHeight);
+}
diff --git a/displaymenu.h b/displaymenu.h
new file mode 100644
index 0000000..ef0257c
--- /dev/null
+++ b/displaymenu.h
@@ -0,0 +1,134 @@
+#pragma once
+
+#include "baserender.h"
+#include "complexcontent.h"
+#include <vdr/menu.h>
+#include <vdr/tools.h>
+#include <list>
+#include <ctype.h>
+#include <iostream>
+#include <sstream>
+#include <iomanip>
+using namespace std;
+
+class cFlatDisplayMenu : public cFlatBaseRender,  public cSkinDisplayMenu {
+    private:
+        cPixmap *menuPixmap;
+        cPixmap *menuIconsPixmap;
+        cPixmap *menuIconsBGPixmap;
+
+        int menuTop, menuWidth;
+        int menuItemWidth;
+        int menuItemLastHeight;
+        bool MenuFullOsdIsDrawn;
+
+        eMenuCategory menuCategory;
+        int VideoDiskUsageState;
+
+        int LastTimerCount, LastTimerActiveCount;
+        cString LastTitle;
+
+        int chLeft, chTop, chWidth, chHeight;
+        cPixmap *contentHeadPixmap;
+        cPixmap *contentHeadIconsPixmap;
+
+        int cLeft, cTop, cWidth, cHeight;
+
+        cPixmap *scrollbarPixmap;
+        int scrollBarTop, scrollBarWidth, scrollBarHeight;
+
+        int itemHeight, itemChannelHeight, itemTimerHeight, itemEventHeight, itemRecordingHeight;
+
+        std::list<sDecorBorder> ItemsBorder;
+        sDecorBorder EventBorder, RecordingBorder, TextBorder;
+
+        bool isScrolling;
+        bool ShowEvent, ShowRecording, ShowText;
+
+        cComplexContent ComplexContent;
+
+        // Content for Widgets
+        cComplexContent contentWidget;
+
+        // TextScroller
+        cTextScrollers menuItemScroller;
+
+        cString ItemEventLastChannelName;
+
+        std::string RecFolder, LastRecFolder;
+        int LastItemRecordingLevel;
+
+        // Icons
+        cImage *iconTimerFull;
+        cImage *iconTimerPartial;
+        cImage *iconArrowTurn;
+        cImage *iconRec;
+        cImage *iconVps;
+        cImage *iconNew;
+        // Icons
+
+        void ItemBorderInsertUnique(sDecorBorder ib);
+        void ItemBorderDrawAllWithScrollbar(void);
+        void ItemBorderDrawAllWithoutScrollbar(void);
+        void ItemBorderClear(void);
+
+        static std::string items[16];
+        std::string MainMenuText(std::string Text);
+        cString GetIconName(std::string element);
+
+        const char * GetRecordingName(const cRecording *Recording, int Level, bool isFolder);
+        string xml_substring(string source, const char* str_start, const char* str_end);
+
+        const char* GetGenreIcon(uchar genre);
+
+        time_t GetLastRecTimeFromFolder(const cRecording *Recording, int Level);
+
+        void DrawScrollbar(int Total, int Offset, int Shown, int Top, int Height, bool CanScrollUp, bool CanScrollDown, bool isContent = false);
+        int ItemsHeight(void);
+        bool CheckProgressBar(const char *text);
+        void DrawProgressBarFromText(cRect rec, cRect recBg, const char *bar, tColor ColorFg, tColor ColorBarFg, tColor ColorBg);
+
+        static cBitmap bmCNew, bmCRec, bmCArrowTurn, bmCHD, bmCVPS;
+        void DrawItemExtraEvent(const cEvent *Event, cString EmptyText);
+        void DrawItemExtraRecording(const cRecording *Recording, cString EmptyText);
+        void DrawMainMenuWidgets(void);
+        int DrawMainMenuWidgetDVBDevices(int wLeft, int wWidth, int ContentTop);
+        int DrawMainMenuWidgetActiveTimers(int wLeft, int wWidth, int ContentTop);
+        int DrawMainMenuWidgetLastRecordings(int wLeft, int wWidth, int ContentTop);
+        int DrawMainMenuWidgetTimerConflicts(int wLeft, int wWidth, int ContentTop);
+        int DrawMainMenuWidgetSystemInformation(int wLeft, int wWidth, int ContentTop);
+        int DrawMainMenuWidgetSystemUpdates(int wLeft, int wWidth, int ContentTop);
+        int DrawMainMenuWidgetTemperaturs(int wLeft, int wWidth, int ContentTop);
+        int DrawMainMenuWidgetCommand(int wLeft, int wWidth, int ContentTop);
+        int DrawMainMenuWidgetWeather(int wLeft, int wWidth, int ContentTop);
+
+    public:
+        cFlatDisplayMenu(void);
+        virtual ~cFlatDisplayMenu();
+        virtual void Scroll(bool Up, bool Page);
+        virtual int MaxItems(void);
+        virtual void Clear(void);
+
+        virtual void SetMenuCategory(eMenuCategory MenuCategory);
+        //virtual void SetTabs(int Tab1, int Tab2 = 0, int Tab3 = 0, int Tab4 = 0, int Tab5 = 0);
+
+        virtual void SetTitle(const char *Title);
+        virtual void SetButtons(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL);
+        virtual void SetMessage(eMessageType Type, const char *Text);
+        virtual void SetItem(const char *Text, int Index, bool Current, bool Selectable);
+
+        virtual bool SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch);
+        virtual bool SetItemTimer(const cTimer *Timer, int Index, bool Current, bool Selectable);
+        virtual bool SetItemChannel(const cChannel *Channel, int Index, bool Current, bool Selectable, bool WithProvider);
+        virtual bool SetItemRecording(const cRecording *Recording, int Index, bool Current, bool Selectable, int Level, int Total, int New);
+
+        virtual void SetScrollbar(int Total, int Offset);
+        virtual void SetEvent(const cEvent *Event);
+        virtual void SetRecording(const cRecording *Recording);
+        virtual void SetText(const char *Text, bool FixedFont);
+        virtual int GetTextAreaWidth(void) const;
+        virtual const cFont *GetTextAreaFont(bool FixedFont) const;
+        virtual void Flush(void);
+
+        void PreLoadImages(void);
+};
diff --git a/displaymessage.c b/displaymessage.c
new file mode 100644
index 0000000..ec23f23
--- /dev/null
+++ b/displaymessage.c
@@ -0,0 +1,22 @@
+#include "displaymessage.h"
+
+cFlatDisplayMessage::cFlatDisplayMessage(void) {
+    CreateFullOsd();
+    TopBarCreate();
+    MessageCreate();
+}
+
+cFlatDisplayMessage::~cFlatDisplayMessage() {
+}
+
+void cFlatDisplayMessage::SetMessage(eMessageType Type, const char *Text) {
+    if (Text)
+        MessageSet(Type, Text);
+    else
+        MessageClear();
+}
+
+void cFlatDisplayMessage::Flush(void) {
+    TopBarUpdate();
+    osd->Flush();
+}
diff --git a/displaymessage.h b/displaymessage.h
new file mode 100644
index 0000000..2b1145a
--- /dev/null
+++ b/displaymessage.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "baserender.h"
+
+class cFlatDisplayMessage : public cFlatBaseRender, public cSkinDisplayMessage {
+    private:
+    public:
+        cFlatDisplayMessage(void);
+        virtual ~cFlatDisplayMessage();
+        virtual void SetMessage(eMessageType Type, const char *Text);
+        virtual void Flush(void);
+};
diff --git a/displayreplay.c b/displayreplay.c
new file mode 100644
index 0000000..479afe6
--- /dev/null
+++ b/displayreplay.c
@@ -0,0 +1,625 @@
+#include "displayreplay.h"
+#include "flat.h"
+
+cFlatDisplayReplay::cFlatDisplayReplay(bool ModeOnly) {
+    labelHeight = fontHeight + fontSmlHeight;
+    current = "";
+    total = "";
+
+    modeOnly = ModeOnly;
+    dimmActive = false;
+
+    ProgressShown = false;
+    CreateFullOsd();
+    TopBarCreate();
+    MessageCreate();
+
+    screenWidth = lastScreenWidth = -1;
+
+    int TVSLeft = 20 + Config.decorBorderChannelEPGSize;
+    int TVSTop = topBarHeight + Config.decorBorderTopBarSize*2 + 20 + Config.decorBorderChannelEPGSize;
+    int TVSWidth = osdWidth - 40 - Config.decorBorderChannelEPGSize*2;
+    int TVSHeight = osdHeight - topBarHeight - labelHeight - 40 - Config.decorBorderChannelEPGSize*2;
+
+    chanEpgImagesPixmap = osd->CreatePixmap(2, cRect(TVSLeft, TVSTop, TVSWidth, TVSHeight));
+    chanEpgImagesPixmap->Fill( clrTransparent );
+
+    labelPixmap = osd->CreatePixmap(1, cRect(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorBorderReplaySize,
+        osdWidth - Config.decorBorderReplaySize*2, labelHeight));
+    iconsPixmap = osd->CreatePixmap(2, cRect(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorBorderReplaySize,
+        osdWidth - Config.decorBorderReplaySize*2, labelHeight));
+
+    ProgressBarCreate(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorProgressReplaySize - Config.decorBorderReplaySize - marginItem,
+        osdWidth - Config.decorBorderReplaySize*2, Config.decorProgressReplaySize, marginItem, 0,
+        Config.decorProgressReplayFg, Config.decorProgressReplayBarFg, Config.decorProgressReplayBg, Config.decorProgressReplayType);
+
+    labelJump = osd->CreatePixmap(1, cRect(Config.decorBorderReplaySize,
+        osdHeight - labelHeight - Config.decorProgressReplaySize*2 - marginItem*3 - fontHeight - Config.decorBorderReplaySize*2,
+        osdWidth - Config.decorBorderReplaySize*2, fontHeight));
+
+    dimmPixmap = osd->CreatePixmap(MAXPIXMAPLAYERS-1, cRect(0, 0, osdWidth, osdHeight));
+
+    labelPixmap->Fill(Theme.Color(clrReplayBg));
+    labelJump->Fill(clrTransparent);
+    iconsPixmap->Fill(clrTransparent);
+    dimmPixmap->Fill(clrTransparent);
+
+    fontSecs = cFont::CreateFont(Setup.FontOsd, Setup.FontOsdSize * Config.TimeSecsScale * 100.0);
+
+    if( Config.PlaybackWeatherShow )
+        DrawWidgetWeather();
+}
+
+cFlatDisplayReplay::~cFlatDisplayReplay() {
+    if( fontSecs != NULL )
+        delete fontSecs;
+
+    if( labelPixmap )
+        osd->DestroyPixmap(labelPixmap);
+    if( labelJump )
+        osd->DestroyPixmap(labelJump);
+    if( iconsPixmap )
+        osd->DestroyPixmap(iconsPixmap);
+    if( chanEpgImagesPixmap )
+        osd->DestroyPixmap(chanEpgImagesPixmap);
+    if( dimmPixmap )
+        osd->DestroyPixmap(dimmPixmap);
+}
+
+void cFlatDisplayReplay::SetRecording(const cRecording *Recording) {
+    if( modeOnly )
+        return;
+    const cRecordingInfo *recInfo = Recording->Info();
+    recording = Recording;
+
+    SetTitle( recInfo->Title() );
+    cString info = "";
+    if (recInfo->ShortText())
+        info = cString::sprintf("%s - %s %s", recInfo->ShortText(), *ShortDateString(Recording->Start()), *TimeString(Recording->Start()));
+    else
+        info = cString::sprintf("%s %s", *ShortDateString(Recording->Start()), *TimeString(Recording->Start()));
+
+    labelPixmap->DrawText(cPoint(marginItem, fontHeight), info, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), fontSml, osdWidth - Config.decorBorderReplaySize*2);
+}
+
+void cFlatDisplayReplay::SetTitle(const char *Title) {
+    TopBarSetTitle(Title);
+    TopBarSetMenuIcon("extraIcons/Playing");
+}
+
+void cFlatDisplayReplay::Action(void) {
+    time_t curTime;
+    while( Running() ) {
+        time(&curTime);
+        if( (curTime - dimmStartTime) > Config.RecordingDimmOnPauseDelay ) {
+            dimmActive = true;
+            for(int alpha = 0; (alpha <= Config.RecordingDimmOnPauseOpaque) && Running(); alpha+=2) {
+                dimmPixmap->Fill(ArgbToColor(alpha, 0, 0, 0));
+                Flush();
+            }
+            Cancel(-1);
+            return;
+        }
+        cCondWait::SleepMs(100);
+    }
+}
+
+void cFlatDisplayReplay::SetMode(bool Play, bool Forward, int Speed) {
+    int left = 0;
+    if( Play == false && Config.RecordingDimmOnPause ) {
+        time(&dimmStartTime);
+        Start();
+    } else if( Play == true && Config.RecordingDimmOnPause ) {
+        Cancel(-1);
+        while( Active() )
+            cCondWait::SleepMs(10);
+        if( dimmActive ) {
+            dimmPixmap->Fill(clrTransparent);
+            Flush();
+        }
+    }
+    if( Setup.ShowReplayMode ) {
+        left = osdWidth - Config.decorBorderReplaySize*2 - (fontHeight * 4 + marginItem * 3);
+        left /= 2;
+
+        if( modeOnly )
+            labelPixmap->Fill(clrTransparent);
+
+        iconsPixmap->Fill(clrTransparent);
+        labelPixmap->DrawRectangle(cRect( left - font->Width("33") - marginItem, 0, fontHeight*4 + marginItem*6 + font->Width("33")*2, fontHeight), Theme.Color(clrReplayBg) );
+
+        cString rewind, pause, play, forward;
+        cString speed;
+
+        if( Speed == -1 ) {
+            if( Play ) {
+                rewind = "rewind";
+                pause = "pause";
+                play = "play_sel";
+                forward = "forward";
+            } else {
+                rewind = "rewind";
+                pause = "pause_sel";
+                play = "play";
+                forward = "forward";
+            }
+        } else {
+            speed = cString::sprintf("%d", Speed);
+            if( Forward ) {
+                rewind = "rewind";
+                pause = "pause";
+                play = "play";
+                forward = "forward_sel";
+                labelPixmap->DrawText(cPoint(left + fontHeight*4 + marginItem*4, 0), speed, Theme.Color(clrReplayFontSpeed), Theme.Color(clrReplayBg), font);
+            } else {
+                rewind = "rewind_sel";
+                pause = "pause";
+                play = "play";
+                forward = "forward";
+                labelPixmap->DrawText(cPoint(left - font->Width(speed) - marginItem, 0), speed, Theme.Color(clrReplayFontSpeed), Theme.Color(clrReplayBg), font);
+            }
+        }
+        cImage *img = imgLoader.LoadIcon(*rewind, fontHeight, fontHeight);
+        if( img )
+            iconsPixmap->DrawImage( cPoint(left, 0), *img );
+
+        img = imgLoader.LoadIcon(*pause, fontHeight, fontHeight);
+        if( img )
+            iconsPixmap->DrawImage( cPoint(left + fontHeight + marginItem, 0), *img );
+
+        img = imgLoader.LoadIcon(*play, fontHeight, fontHeight);
+        if( img )
+            iconsPixmap->DrawImage( cPoint(left + fontHeight*2 + marginItem*2, 0), *img );
+
+        img = imgLoader.LoadIcon(*forward, fontHeight, fontHeight);
+        if( img )
+            iconsPixmap->DrawImage( cPoint(left + fontHeight*3 + marginItem*3, 0), *img );
+
+    }
+
+    if( ProgressShown ) {
+        DecorBorderDraw(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorProgressReplaySize - Config.decorBorderReplaySize - marginItem,
+            osdWidth - Config.decorBorderReplaySize*2, labelHeight + Config.decorProgressReplaySize + marginItem,
+            Config.decorBorderReplaySize, Config.decorBorderReplayType, Config.decorBorderReplayFg, Config.decorBorderReplayBg);
+    } else {
+        if( modeOnly ) {
+            DecorBorderDraw(left - font->Width("33") - marginItem + Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorBorderReplaySize,
+                fontHeight*4 + marginItem*6 + font->Width("33")*2, fontHeight,
+                Config.decorBorderReplaySize, Config.decorBorderReplayType, Config.decorBorderReplayFg, Config.decorBorderReplayBg);
+        } else {
+            DecorBorderDraw(Config.decorBorderReplaySize, osdHeight - labelHeight - Config.decorBorderReplaySize,
+                osdWidth - Config.decorBorderReplaySize*2, labelHeight,
+                Config.decorBorderReplaySize, Config.decorBorderReplayType, Config.decorBorderReplayFg, Config.decorBorderReplayBg);
+        }
+    }
+
+    ResolutionAspectDraw();
+}
+
+void cFlatDisplayReplay::SetProgress(int Current, int Total) {
+    if( modeOnly )
+        return;
+    ProgressShown = true;
+    ProgressBarDrawMarks(Current, Total, marks, Theme.Color(clrReplayMarkFg), Theme.Color(clrReplayMarkCurrentFg));
+}
+
+void cFlatDisplayReplay::SetCurrent(const char *Current) {
+    if( modeOnly )
+        return;
+    current = Current;
+    UpdateInfo();
+}
+
+void cFlatDisplayReplay::SetTotal(const char *Total) {
+    if( modeOnly )
+        return;
+    total = Total;
+    UpdateInfo();
+}
+
+void cFlatDisplayReplay::UpdateInfo(void) {
+    if( modeOnly )
+        return;
+    cString cutted;
+    bool iscutted = false;
+
+    int fontAscender = GetFontAscender(Setup.FontOsd, Setup.FontOsdSize);
+    int fontSecsAscender = GetFontAscender(Setup.FontOsd, Setup.FontOsdSize * Config.TimeSecsScale * 100.0);
+    int topSecs = fontAscender - fontSecsAscender;
+
+    if( Config.TimeSecsScale == 1.0 )
+        labelPixmap->DrawText(cPoint(marginItem, 0), current, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(current), fontHeight);
+    else {
+        std::string cur = *current;
+        size_t found = cur.find_last_of(':');
+        if( found != std::string::npos ) {
+            std::string hm = cur.substr(0, found);
+            std::string secs = cur.substr(found, cur.length() - found);
+
+            labelPixmap->DrawText(cPoint(marginItem, 0), hm.c_str(), Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(hm.c_str()), fontHeight);
+            labelPixmap->DrawText(cPoint(marginItem + font->Width(hm.c_str()), topSecs), secs.c_str(), Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), fontSecs, fontSecs->Width(secs.c_str()), fontSecs->Height());
+        } else {
+            labelPixmap->DrawText(cPoint(marginItem, 0), current, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(current), fontHeight);
+        }
+    }
+
+    if( recording ) {
+        cMarks marks;
+        bool hasMarks = marks.Load(recording->FileName(), recording->FramesPerSecond(), recording->IsPesRecording()) && marks.Count();
+        cIndexFile *index = new cIndexFile(recording->FileName(), false, recording->IsPesRecording());
+        int cuttedLength = 0;
+        long cutinframe = 0;
+        unsigned long long recsizecutted = 0;
+        unsigned long long cutinoffset = 0;
+        unsigned long long filesize[100000];
+        filesize[0] = 0;
+
+        int i = 0;
+        int imax = 999;
+        struct stat filebuf;
+        cString filename;
+        int rc = 0;
+
+        do {
+            if (recording->IsPesRecording())
+                filename = cString::sprintf("%s/%03d.vdr", recording->FileName(), ++i);
+            else {
+                filename = cString::sprintf("%s/%05d.ts", recording->FileName(), ++i);
+                imax = 99999;
+            }
+            rc=stat(filename, &filebuf);
+            if (rc == 0)
+                filesize[i] = filesize[i-1] + filebuf.st_size;
+            else {
+                if (ENOENT != errno) {
+                    esyslog ("skinflatplus: error determining file size of \"%s\" %d (%s)", (const char *)filename, errno, strerror(errno));
+                }
+            }
+        } while( i <= imax && !rc );
+
+        if (hasMarks && index) {
+            uint16_t FileNumber;
+            off_t FileOffset;
+
+            bool cutin = true;
+            cMark *mark = marks.First();
+            while (mark) {
+                long position = mark->Position();
+                index->Get(position, &FileNumber, &FileOffset);
+                if (cutin) {
+                    cutinframe = position;
+                    cutin = false;
+                    cutinoffset = filesize[FileNumber-1] + FileOffset;
+                } else {
+                    cuttedLength += position - cutinframe;
+                    cutin = true;
+                    recsizecutted += filesize[FileNumber-1] + FileOffset - cutinoffset;
+                }
+                cMark *nextmark = marks.Next(mark);
+                mark = nextmark;
+            }
+            if( !cutin ) {
+                cuttedLength += index->Last() - cutinframe;
+                index->Get(index->Last() - 1, &FileNumber, &FileOffset);
+                recsizecutted += filesize[FileNumber-1] + FileOffset - cutinoffset;
+            }
+        }
+        if (index) {
+            if (hasMarks) {
+                cutted = IndexToHMSF(cuttedLength, false, recording->FramesPerSecond());
+                iscutted = true;
+            }
+        }
+        delete index;
+
+        std::string mediaPath;
+        int mediaWidth = 0;
+        int mediaHeight = 0;
+        // TVScraper
+        // first try scraper2vdr
+        static cPlugin *pScraper = cPluginManager::GetPlugin("scraper2vdr");
+        if( !pScraper ) // if it doesn't exit, try tvscraper
+            pScraper = cPluginManager::GetPlugin("tvscraper");
+        if( Config.TVScraperReplayInfoShowPoster && pScraper ) {
+            ScraperGetEventType call;
+            call.recording = recording;
+            int seriesId = 0;
+            int episodeId = 0;
+            int movieId = 0;
+
+            if (pScraper->Service("GetEventType", &call)) {
+                seriesId = call.seriesId;
+                episodeId = call.episodeId;
+                movieId = call.movieId;
+            }
+            if( seriesId > 0 ) {
+                cSeries series;
+                series.seriesId = seriesId;
+                series.episodeId = episodeId;
+                if (pScraper->Service("GetSeries", &series)) {
+                    if( series.banners.size() > 0 )
+                        mediaPath = series.banners[0].path;
+                    mediaWidth = series.banners[0].width * Config.TVScraperReplayInfoPosterSize*100;
+                    mediaHeight = series.banners[0].height * Config.TVScraperReplayInfoPosterSize*100;
+                }
+            } else if (movieId > 0) {
+                cMovie movie;
+                movie.movieId = movieId;
+                if (pScraper->Service("GetMovie", &movie)) {
+                    mediaPath = movie.poster.path;
+                    mediaWidth = movie.poster.width * 0.5 * Config.TVScraperReplayInfoPosterSize*100;
+                    mediaHeight = movie.poster.height * 0.5 * Config.TVScraperReplayInfoPosterSize*100;
+                }
+            }
+        }
+
+        chanEpgImagesPixmap->Fill(clrTransparent);
+        DecorBorderClearByFrom(BorderTVSPoster);
+        if( mediaPath.length() > 0 ) {
+            cImage *img = imgLoader.LoadFile(mediaPath.c_str(), mediaWidth, mediaHeight);
+            if( img ) {
+                chanEpgImagesPixmap->DrawImage(cPoint(0, 0), *img);
+
+                DecorBorderDraw(20 + Config.decorBorderChannelEPGSize, topBarHeight + Config.decorBorderTopBarSize*2 + 20 + Config.decorBorderChannelEPGSize, img->Width(), img->Height(),
+                    Config.decorBorderChannelEPGSize, Config.decorBorderChannelEPGType, Config.decorBorderChannelEPGFg, Config.decorBorderChannelEPGBg, BorderTVSPoster);
+            }
+        }
+
+    }
+
+    if( iscutted ) {
+        cImage *imgRecCut = imgLoader.LoadIcon("recording_cutted_extra", fontHeight, fontHeight);
+        int imgWidth = 0;
+        if( imgRecCut )
+            imgWidth = imgRecCut->Width();
+
+        int right = osdWidth - Config.decorBorderReplaySize*2 - font->Width(total) - marginItem - imgWidth - font->Width(" ") - font->Width(cutted);
+        if( Config.TimeSecsScale < 1.0 ) {
+            std::string tot = *total;
+            size_t found = tot.find_last_of(':');
+            if( found != std::string::npos ) {
+                std::string hm = tot.substr(0, found);
+                std::string secs = tot.substr(found, tot.length() - found);
+
+                std::string cutt = *cutted;
+                size_t found2 = cutt.find_last_of(':');
+                if( found2 != std::string::npos ) {
+                    std::string hm2 = cutt.substr(0, found);
+                    std::string secs2 = cutt.substr(found, cutt.length() - found);
+
+                    right = osdWidth - Config.decorBorderReplaySize*2 - font->Width(hm.c_str()) - fontSecs->Width(secs.c_str()) - marginItem - imgWidth - font->Width(" ") - font->Width(hm2.c_str()) - fontSecs->Width(secs2.c_str());
+                } else
+                    right = osdWidth - Config.decorBorderReplaySize*2 - font->Width(hm.c_str()) - fontSecs->Width(secs.c_str()) - marginItem - imgWidth - font->Width(" ") - font->Width(cutted);
+
+                labelPixmap->DrawText(cPoint(right - marginItem, 0), hm.c_str(), Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(hm.c_str()), fontHeight);
+                labelPixmap->DrawText(cPoint(right - marginItem + font->Width(hm.c_str()), topSecs), secs.c_str(), Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), fontSecs, fontSecs->Width(secs.c_str()), fontSecs->Height());
+                right += font->Width(hm.c_str()) + fontSecs->Width(secs.c_str());
+                right += font->Width(" ");
+            } else {
+                labelPixmap->DrawText(cPoint(right - marginItem, 0), total, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(total), fontHeight);
+                right += font->Width(total);
+                right += font->Width(" ");
+            }
+        } else {
+            labelPixmap->DrawText(cPoint(right - marginItem, 0), total, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(total), fontHeight);
+            right += font->Width(total);
+            right += font->Width(" ");
+        }
+
+        if( imgRecCut ) {
+            iconsPixmap->DrawImage( cPoint(right, 0), *imgRecCut );
+            right += imgRecCut->Width() + marginItem*2;
+        }
+
+        if( Config.TimeSecsScale < 1.0 ) {
+            std::string cutt = *cutted;
+            size_t found = cutt.find_last_of(':');
+            if( found != std::string::npos ) {
+                std::string hm = cutt.substr(0, found);
+                std::string secs = cutt.substr(found, cutt.length() - found);
+
+                labelPixmap->DrawText(cPoint(right - marginItem, 0), hm.c_str(), Theme.Color(clrMenuItemExtraTextFont), Theme.Color(clrReplayBg), font, font->Width(hm.c_str()), fontHeight);
+                labelPixmap->DrawText(cPoint(right - marginItem + font->Width(hm.c_str()), topSecs), secs.c_str(), Theme.Color(clrMenuItemExtraTextFont), Theme.Color(clrReplayBg), fontSecs, fontSecs->Width(secs.c_str()), fontSecs->Height());
+            } else {
+                labelPixmap->DrawText(cPoint(right - marginItem, 0), cutted, Theme.Color(clrMenuItemExtraTextFont), Theme.Color(clrReplayBg), font, font->Width(cutted), fontHeight);
+            }
+        } else {
+            labelPixmap->DrawText(cPoint(right - marginItem, 0), cutted, Theme.Color(clrMenuItemExtraTextFont), Theme.Color(clrReplayBg), font, font->Width(cutted), fontHeight);
+        }
+    } else {
+        int right = osdWidth - Config.decorBorderReplaySize*2 - font->Width(total);
+        if( Config.TimeSecsScale < 1.0 ) {
+            std::string tot = *total;
+            size_t found = tot.find_last_of(':');
+            if( found != std::string::npos ) {
+                std::string hm = tot.substr(0, found);
+                std::string secs = tot.substr(found, tot.length() - found);
+
+                right = osdWidth - Config.decorBorderReplaySize*2 - font->Width(hm.c_str()) - fontSecs->Width(secs.c_str());
+                labelPixmap->DrawText(cPoint(right - marginItem, 0), hm.c_str(), Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(hm.c_str()), fontHeight);
+                labelPixmap->DrawText(cPoint(right - marginItem + font->Width(hm.c_str()), topSecs), secs.c_str(), Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), fontSecs, fontSecs->Width(secs.c_str()), fontSecs->Height());
+            } else {
+                labelPixmap->DrawText(cPoint(right - marginItem, 0), total, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(total), fontHeight);
+            }
+        } else {
+            labelPixmap->DrawText(cPoint(right - marginItem, 0), total, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(total), fontHeight);
+        }
+    }
+}
+
+void cFlatDisplayReplay::SetJump(const char *Jump) {
+    DecorBorderClearByFrom(BorderRecordJump);
+
+    if( !Jump )
+    {
+        labelJump->Fill(clrTransparent);
+        return;
+    }
+    int left = osdWidth - Config.decorBorderReplaySize*2 - font->Width(Jump);
+    left /= 2;
+
+    labelJump->DrawText(cPoint(left, 0), Jump, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(Jump), fontHeight, taCenter);
+
+    DecorBorderDraw(left + Config.decorBorderReplaySize,
+    osdHeight - labelHeight - Config.decorProgressReplaySize*2 - marginItem*3 - fontHeight - Config.decorBorderReplaySize*2,
+        font->Width(Jump), fontHeight,
+        Config.decorBorderReplaySize, Config.decorBorderReplayType, Config.decorBorderReplayFg, Config.decorBorderReplayBg, BorderRecordJump);
+}
+
+void cFlatDisplayReplay::ResolutionAspectDraw(void) {
+    if( modeOnly )
+        return;
+    int left = osdWidth - Config.decorBorderReplaySize*2;
+    int imageTop = 0;
+    cImage *img = NULL;
+
+    if( screenWidth > 0 ) {
+    if( Config.RecordingResolutionAspectShow ) {         // Show Aspect
+        cString asp = "unknown_asp";                     // ???
+        if(Config.RecordingSimpleAspectFormat && screenWidth > 720) {
+            asp = "hd";                                   // No aspect for HD
+        } else {
+            if( screenAspect == 4.0/3.0 )
+                asp = "43";
+            else if( screenAspect == 16.0/9.0 )
+                asp = "169";
+            else if( screenAspect == 20.0/11.0 )
+                asp = "169w";
+            else if( screenAspect == 2.21 )
+                asp = "221";
+        }
+        img = imgLoader.LoadIcon(*asp, 999, fontSmlHeight);
+        if( img ) {
+            imageTop = fontHeight + (fontSmlHeight - img->Height())/2;
+            left -= img->Width();
+            iconsPixmap->DrawImage(cPoint(left, imageTop), *img);
+            left -= marginItem*2;
+        }
+    }
+
+    if( Config.RecordingResolutionAspectShow ) {         // Show Resolution
+        cString res = "";
+        switch (screenWidth) {
+            case 1920:                        // 1920x1080 (HD1080 Full HDTV)
+                res = "1920x1080";
+                break;
+            case 1440:                        // 1440x1080 (HD1080 DV)
+                res = "1440x1080";
+                break;
+            case 1280:                        // 1280x720 (HD720)
+                res = "1280x720";
+                break;
+            case 960:                         // 960x720 (HD720 DV)
+                res = "960x720";
+                break;
+            case 704:                         // 704x576 (PAL)
+                res = "704x576";
+                break;
+            case 720:                         // 720x576 (PAL)
+                res = "720x576";
+                break;
+            case 544:                         // 544x576 (PAL)
+                res = "544x576";
+                break;
+            case 528:                         // 528x576 (PAL)
+                res = "528x576";
+                break;
+            case 480:                         // 480x576 (PAL SVCD)
+                res = "480x576";
+                break;
+            case 352:                         // 352x576 (PAL CVD)
+                res = "352x576";
+                break;
+            default:
+                res = "unknown_res";         // TODO: Log resolution
+                dsyslog("unkown resolution Width: %d Height: %d Aspect: %.2f\n", screenWidth, screenHeight, screenAspect);
+                break;
+            }
+
+            //printf("Width: %d Height: %d Aspect: %.2f\n", screenWidth, screenHeight, screenAspect);
+
+            img = imgLoader.LoadIcon(*res, 999, fontSmlHeight);
+            if (img) {
+                imageTop = fontHeight + (fontSmlHeight - img->Height())/2;
+                left -= img->Width();
+                iconsPixmap->DrawImage(cPoint(left, imageTop), *img);
+                left -= marginItem*2;
+            }
+        }
+        if( Config.RecordingFormatShow && !Config.RecordingSimpleAspectFormat) {
+            cString iconName("");        // Show Format
+            switch (screenWidth) {
+                case 1920:
+                case 1440:
+                case 1280:
+                    iconName = "hd";
+                    break;
+                case 720:
+                    iconName = "sd";
+                    break;
+                default:
+                    iconName = "sd";
+                    break;
+            }
+
+            img = imgLoader.LoadIcon(*iconName, 999, fontSmlHeight);
+            if( img ) {
+                imageTop = fontHeight + (fontSmlHeight - img->Height())/2;
+                left -= img->Width();
+                iconsPixmap->DrawImage(cPoint(left, imageTop), *img);
+                left -= marginItem*2 ;
+            }
+        }
+    }
+}
+
+void cFlatDisplayReplay::SetMessage(eMessageType Type, const char *Text) {
+    if (Text)
+        MessageSet(Type, Text);
+    else
+        MessageClear();
+}
+
+void cFlatDisplayReplay::Flush(void) {
+    TopBarUpdate();
+
+    if( Config.RecordingResolutionAspectShow ) {
+        cDevice::PrimaryDevice()->GetVideoSize(screenWidth, screenHeight, screenAspect);
+        if (screenWidth != lastScreenWidth) {
+            lastScreenWidth = screenWidth;
+            ResolutionAspectDraw();
+        }
+    }
+
+    osd->Flush();
+}
+
+void cFlatDisplayReplay::PreLoadImages(void) {
+    imgLoader.LoadIcon("rewind", fontHeight, fontHeight);
+    imgLoader.LoadIcon("pause", fontHeight, fontHeight);
+    imgLoader.LoadIcon("play_sel", fontHeight, fontHeight);
+    imgLoader.LoadIcon("forward", fontHeight, fontHeight);
+    imgLoader.LoadIcon("pause_sel", fontHeight, fontHeight);
+    imgLoader.LoadIcon("forward_sel", fontHeight, fontHeight);
+    imgLoader.LoadIcon("rewind_sel", fontHeight, fontHeight);
+    imgLoader.LoadIcon("pause_sel", fontHeight, fontHeight);
+    imgLoader.LoadIcon("recording_cutted_extra", fontHeight, fontHeight);
+
+    imgLoader.LoadIcon("43", 999, fontSmlHeight);
+    imgLoader.LoadIcon("169", 999, fontSmlHeight);
+    imgLoader.LoadIcon("169w", 999, fontSmlHeight);
+    imgLoader.LoadIcon("221", 999, fontSmlHeight);
+    imgLoader.LoadIcon("1920x1080", 999, fontSmlHeight);
+    imgLoader.LoadIcon("1440x1080", 999, fontSmlHeight);
+    imgLoader.LoadIcon("1280x720", 999, fontSmlHeight);
+    imgLoader.LoadIcon("960x720", 999, fontSmlHeight);
+    imgLoader.LoadIcon("704x576", 999, fontSmlHeight);
+    imgLoader.LoadIcon("720x576", 999, fontSmlHeight);
+    imgLoader.LoadIcon("544x576", 999, fontSmlHeight);
+    imgLoader.LoadIcon("528x576", 999, fontSmlHeight);
+    imgLoader.LoadIcon("480x576", 999, fontSmlHeight);
+    imgLoader.LoadIcon("352x576", 999, fontSmlHeight);
+    imgLoader.LoadIcon("unknown_res", 999, fontSmlHeight);
+    imgLoader.LoadIcon("hd", 999, fontSmlHeight);
+    imgLoader.LoadIcon("sd", 999, fontSmlHeight);
+}
diff --git a/displayreplay.h b/displayreplay.h
new file mode 100644
index 0000000..1cdd1eb
--- /dev/null
+++ b/displayreplay.h
@@ -0,0 +1,48 @@
+#pragma once
+
+#include "baserender.h"
+#include "services/scraper2vdr.h"
+
+class cFlatDisplayReplay : public cFlatBaseRender, public cSkinDisplayReplay, public cThread {
+    private:
+        cString current, total;
+
+        int labelHeight;
+        cPixmap *labelPixmap;
+        cPixmap *labelJump;
+        cPixmap *iconsPixmap;
+        cPixmap *chanEpgImagesPixmap;
+        cPixmap *dimmPixmap;
+
+        cFont *fontSecs;
+        const cRecording *recording;
+
+        int screenWidth, lastScreenWidth;
+        int screenHeight;
+        double screenAspect;
+
+        // dimm on pause
+        bool dimmActive;
+        time_t dimmStartTime;
+
+        bool ProgressShown;
+        bool modeOnly;
+        void UpdateInfo(void);
+        void ResolutionAspectDraw(void);
+
+        virtual void Action(void);
+    public:
+        cFlatDisplayReplay(bool ModeOnly);
+        virtual ~cFlatDisplayReplay();
+        virtual void SetRecording(const cRecording *Recording);
+        virtual void SetTitle(const char *Title);
+        virtual void SetMode(bool Play, bool Forward, int Speed);
+        virtual void SetProgress(int Current, int Total);
+        virtual void SetCurrent(const char *Current);
+        virtual void SetTotal(const char *Total);
+        virtual void SetJump(const char *Jump);
+        virtual void SetMessage(eMessageType Type, const char *Text);
+        virtual void Flush(void);
+
+        void PreLoadImages(void);
+};
diff --git a/displaytracks.c b/displaytracks.c
new file mode 100644
index 0000000..655ef14
--- /dev/null
+++ b/displaytracks.c
@@ -0,0 +1,115 @@
+#include "displaytracks.h"
+#include "flat.h"
+
+cFlatDisplayTracks::cFlatDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks) {
+
+    CreateFullOsd();
+    TopBarCreate();
+
+    img_ac3 = imgLoader.LoadIcon("tracks_ac3", 999, fontHeight);
+    img_stereo = imgLoader.LoadIcon("tracks_stereo", 999, fontHeight);
+
+    ac3Width = stereoWidth = 0;
+    if( img_ac3 )
+        ac3Width = img_ac3->Width();
+    if( img_stereo )
+        stereoWidth = img_stereo->Width();
+        
+    int imgWidthMax = max(ac3Width, stereoWidth);
+    itemHeight = fontHeight + Config.MenuItemPadding + Config.decorBorderTrackSize*2;
+    currentIndex = -1;
+    maxItemWidth = font->Width(Title) + marginItem*2;
+    for (int i = 0; i < NumTracks; i++)
+        maxItemWidth = max(maxItemWidth, font->Width(Tracks[i]) + marginItem*2);
+    
+    int headerWidth = font->Width(tr("Audio Tracks")) + font->Width(" ") + imgWidthMax;
+    maxItemWidth = max(maxItemWidth, headerWidth);
+    
+    itemsHeight = (NumTracks+1) * itemHeight;
+    int left = osdWidth - maxItemWidth;
+    left /= 2;
+    TopBarSetTitle(Title);
+
+    tracksPixmap = osd->CreatePixmap(1, cRect(left, osdHeight - itemsHeight - marginItem, maxItemWidth, itemsHeight));
+    tracksPixmap->Fill(clrTransparent);
+
+    tracksLogoPixmap = osd->CreatePixmap(1, cRect(left, osdHeight - itemsHeight - marginItem, maxItemWidth, itemsHeight));
+    tracksLogoPixmap->Fill(clrTransparent);
+
+    SetItem(tr("Audio Tracks"), -1, false);
+    
+    for (int i = 0; i < NumTracks; i++)
+        SetItem(Tracks[i], i, false);
+}
+
+cFlatDisplayTracks::~cFlatDisplayTracks() {
+    osd->DestroyPixmap(tracksPixmap);
+    osd->DestroyPixmap(tracksLogoPixmap);
+}
+
+void cFlatDisplayTracks::SetItem(const char *Text, int Index, bool Current) {
+    int y = (Index+1) * itemHeight;
+    tColor ColorFg, ColorBg;
+    if (Current) {
+        ColorFg = Theme.Color(clrTrackItemCurrentFont);
+        ColorBg = Theme.Color(clrTrackItemCurrentBg);
+        currentIndex = Index;
+    }
+    else {
+        if( Index >= 0 ) {
+            ColorFg = Theme.Color(clrTrackItemSelableFont);
+            ColorBg = Theme.Color(clrTrackItemSelableBg);
+        } else {
+            ColorFg = Theme.Color(clrTrackItemFont);
+            ColorBg = Theme.Color(clrTrackItemBg);
+        }
+    }
+
+    if( Index == -1 )
+        tracksPixmap->DrawText(cPoint(0, y), Text, ColorFg, ColorBg, font, maxItemWidth, itemHeight - Config.MenuItemPadding - Config.decorBorderTrackSize*2, taLeft);
+    else
+        tracksPixmap->DrawText(cPoint(0, y), Text, ColorFg, ColorBg, font, maxItemWidth, itemHeight - Config.MenuItemPadding - Config.decorBorderTrackSize*2, taCenter);
+
+    int left = osdWidth - maxItemWidth;
+    left /= 2;
+    
+    int top = osdHeight - itemsHeight - marginItem + y;
+
+    if( Current )
+        DecorBorderDraw(left, top, maxItemWidth, fontHeight,
+            Config.decorBorderTrackSize, Config.decorBorderTrackType, Config.decorBorderTrackCurFg, Config.decorBorderTrackCurBg);
+    else if( Index >= 0 )
+        DecorBorderDraw(left, top, maxItemWidth, fontHeight,
+            Config.decorBorderTrackSize, Config.decorBorderTrackType, Config.decorBorderTrackSelFg, Config.decorBorderTrackSelBg);
+    else
+        DecorBorderDraw(left, top, maxItemWidth, fontHeight,
+            Config.decorBorderTrackSize, Config.decorBorderTrackType, Config.decorBorderTrackFg, Config.decorBorderTrackBg);
+    
+}
+
+void cFlatDisplayTracks::SetTrack(int Index, const char * const *Tracks) {
+    if (currentIndex >= 0)
+        SetItem(Tracks[currentIndex], currentIndex, false);
+    SetItem(Tracks[Index], Index, true);
+}
+
+void cFlatDisplayTracks::SetAudioChannel(int AudioChannel) {
+    // from vdr 0=stereo, 1=left, 2=right, -1=don't display the audio channel indicator.
+    // from skinnopacity -1 ac3, else stero
+    tracksLogoPixmap->Fill(clrTransparent);
+    if( AudioChannel == -1 && img_ac3 ) {
+        int IconLeft = maxItemWidth - img_ac3->Width() - marginItem;
+        int IconTop = (fontHeight - img_ac3->Height()) / 2;
+        tracksLogoPixmap->DrawImage( cPoint(IconLeft, IconTop), *img_ac3 );
+    } else if( img_stereo ){
+        int IconLeft = maxItemWidth - img_stereo->Width() - marginItem;
+        int IconTop = (fontHeight - img_stereo->Height()) / 2;
+        tracksLogoPixmap->DrawImage( cPoint(IconLeft, IconTop), *img_stereo );
+    }
+    return;
+}
+
+void cFlatDisplayTracks::Flush(void) {
+    TopBarUpdate();
+    osd->Flush();
+}
diff --git a/displaytracks.h b/displaytracks.h
new file mode 100644
index 0000000..a194158
--- /dev/null
+++ b/displaytracks.h
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "baserender.h"
+
+class cFlatDisplayTracks : public cFlatBaseRender, public cSkinDisplayTracks {
+    private:
+        cPixmap *tracksPixmap;
+        cPixmap *tracksLogoPixmap;
+
+        cImage *img_ac3;
+        cImage *img_stereo;
+        int ac3Width, stereoWidth;
+        
+        int itemHeight, itemsHeight;
+        int maxItemWidth;
+        int currentIndex;
+        
+        void SetItem(const char *Text, int Index, bool Current);
+    public:
+        cFlatDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
+        virtual ~cFlatDisplayTracks();
+        virtual void SetTrack(int Index, const char * const *Tracks);
+        virtual void SetAudioChannel(int AudioChannel);
+        virtual void Flush(void);
+};
diff --git a/displayvolume.c b/displayvolume.c
new file mode 100644
index 0000000..1db4329
--- /dev/null
+++ b/displayvolume.c
@@ -0,0 +1,76 @@
+#include "displayvolume.h"
+#include "flat.h"
+
+cFlatDisplayVolume::cFlatDisplayVolume(void) {
+    muted = false;
+
+    labelHeight = fontHeight + marginItem*2;
+
+    CreateFullOsd();
+    TopBarCreate();
+    int width = osdWidth / 4 * 3;
+    
+    int top = osdHeight - 50 - Config.decorProgressVolumeSize - labelHeight - marginItem - Config.decorBorderVolumeSize*2;
+    int left = osdWidth - width - Config.decorBorderVolumeSize;
+    left /= 2;
+    
+    labelPixmap = osd->CreatePixmap(1, cRect(0, top, osdWidth, labelHeight));
+    muteLogoPixmap = osd->CreatePixmap(2, cRect(0, top, osdWidth, labelHeight));
+
+    ProgressBarCreate(left, osdHeight - 50 - Config.decorProgressVolumeSize, width, Config.decorProgressVolumeSize, marginItem, marginItem,
+        Config.decorProgressVolumeFg, Config.decorProgressVolumeBarFg, Config.decorProgressVolumeBg, Config.decorProgressVolumeType, true);
+}
+
+cFlatDisplayVolume::~cFlatDisplayVolume() {
+    osd->DestroyPixmap(labelPixmap);
+    osd->DestroyPixmap(muteLogoPixmap);
+}
+
+void cFlatDisplayVolume::SetVolume(int Current, int Total, bool Mute) {
+    labelPixmap->Fill(clrTransparent);
+    muteLogoPixmap->Fill(clrTransparent);
+    
+    cString label = cString::sprintf("%s: %d", tr("Volume"), Current);
+    cString maxLabel = cString::sprintf("%s: %d", tr("Volume"), 555);
+    int maxlabelWidth = font->Width(maxLabel) + marginItem;
+    int left = osdWidth / 2 - maxlabelWidth / 2;
+
+    int DecorTop = osdHeight - 50 - Config.decorProgressVolumeSize - labelHeight - Config.decorBorderVolumeSize*2;
+
+    labelPixmap->DrawRectangle(cRect(left - marginItem, marginItem, marginItem, fontHeight), Theme.Color(clrVolumeBg));
+    
+    DecorBorderClear(left - marginItem, DecorTop, maxlabelWidth + marginItem*4 + fontHeight, fontHeight, Config.decorBorderVolumeSize);
+    DecorBorderClear(left - marginItem, DecorTop, maxlabelWidth + marginItem, fontHeight, Config.decorBorderVolumeSize);
+
+    if (Mute) {
+        labelPixmap->DrawText(cPoint(left, marginItem), *label, Theme.Color(clrVolumeFont), Theme.Color(clrVolumeBg),
+            font, maxlabelWidth + marginItem + labelHeight, fontHeight, taLeft);
+        cImage *img = imgLoader.LoadIcon("mute", fontHeight, fontHeight);
+        if( img ) {
+            muteLogoPixmap->DrawImage( cPoint(left + maxlabelWidth + marginItem, marginItem), *img );
+        }
+        DecorBorderDraw(left - marginItem, DecorTop, maxlabelWidth + marginItem*4 + fontHeight, fontHeight,
+            Config.decorBorderVolumeSize, Config.decorBorderVolumeType, Config.decorBorderVolumeFg, Config.decorBorderVolumeBg);
+    } else {
+        labelPixmap->DrawText(cPoint(left, marginItem), *label, Theme.Color(clrVolumeFont), Theme.Color(clrVolumeBg),
+            font, maxlabelWidth, fontHeight, taLeft);
+        DecorBorderDraw(left - marginItem, DecorTop, maxlabelWidth + marginItem, fontHeight,
+            Config.decorBorderVolumeSize, Config.decorBorderVolumeType, Config.decorBorderVolumeFg, Config.decorBorderVolumeBg);
+    }
+
+    ProgressBarDraw(Current, Total);
+    
+    int width = (osdWidth / 4 * 3);
+    left = osdWidth - width - Config.decorBorderVolumeSize;
+    left /= 2;
+    DecorBorderDraw(left - marginItem, osdHeight - 50 - Config.decorProgressVolumeSize - marginItem, width + marginItem*2, Config.decorProgressVolumeSize + marginItem*2, Config.decorBorderVolumeSize, Config.decorBorderVolumeType, Theme.Color(clrTopBarBg), Theme.Color(clrTopBarBg));
+}
+
+void cFlatDisplayVolume::Flush(void) {
+    TopBarUpdate();
+    osd->Flush();
+}
+
+void cFlatDisplayVolume::PreLoadImages(void) {
+    imgLoader.LoadIcon("mute", fontHeight, fontHeight);
+}
diff --git a/displayvolume.h b/displayvolume.h
new file mode 100644
index 0000000..5ccbefc
--- /dev/null
+++ b/displayvolume.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include "baserender.h"
+
+class cFlatDisplayVolume : public cFlatBaseRender, public cSkinDisplayVolume {
+    private:
+        bool muted;
+
+        cPixmap *labelPixmap;
+        cPixmap *muteLogoPixmap;
+    
+        int labelHeight;
+    public:
+        cFlatDisplayVolume(void);
+        virtual ~cFlatDisplayVolume();
+        virtual void SetVolume(int Current, int Total, bool Mute);
+        //virtual void SetAudioChannel(int AudioChannel);
+        virtual void Flush(void);
+
+        void PreLoadImages(void);
+};
diff --git a/femonreceiver.c b/femonreceiver.c
new file mode 100644
index 0000000..dc1b7d2
--- /dev/null
+++ b/femonreceiver.c
@@ -0,0 +1,189 @@
+/*
+ * Frontend Status Monitor plugin for the Video Disk Recorder
+ *
+ * See the README file for copyright information and how to reach the author.
+ *
+ */
+
+#include <unistd.h>
+#include "femonreceiver.h"
+
+cFemonReceiver::cFemonReceiver(const cChannel *Channel, int ATrack, int DTrack)
+    : cReceiver(Channel, MINPRIORITY+5),
+    cThread("flatPlus receiver"),
+    m_Mutex(),
+    m_Sleep(),
+    m_Active(false),
+    m_VideoBuffer(KILOBYTE(512), TS_SIZE, false, "Femon video"),
+    m_VideoType(Channel ? Channel->Vtype(): 0),
+    m_VideoPid(Channel ? Channel->Vpid() : 0),
+    m_VideoPacketCount(0),
+    m_AudioBuffer(KILOBYTE(256), TS_SIZE, false, "Femon audio"),
+    m_AudioPid(Channel ? Channel->Apid(ATrack) : 0),
+    m_AudioPacketCount(0),
+    m_AC3Buffer(KILOBYTE(256), TS_SIZE, false, "Femon AC3"),
+    m_AC3Pid(Channel ? Channel->Dpid(DTrack) : 0),
+    m_AC3PacketCount(0)
+{
+    SetPids(NULL);
+    AddPid(m_VideoPid);
+    AddPid(m_AudioPid);
+    AddPid(m_AC3Pid);
+
+    m_VideoBuffer.SetTimeouts(0, 100);
+    m_AudioBuffer.SetTimeouts(0, 100);
+    m_AC3Buffer.SetTimeouts(0, 100);
+
+    m_VideoBitrate = 0.0;
+    m_AudioBitrate = 0.0;
+    m_AC3Bitrate = 0.0;
+}
+
+cFemonReceiver::~cFemonReceiver(void)
+{
+    Deactivate();
+}
+
+void cFemonReceiver::Deactivate(void)
+{
+    Detach();
+    if (m_Active) {
+        m_Active = false;
+        m_Sleep.Signal();
+        if (Running())
+            Cancel(3);
+    }
+}
+
+void cFemonReceiver::Activate(bool On)
+{
+    if (On)
+        Start();
+    else
+        Deactivate();
+}
+
+void cFemonReceiver::Receive(uchar *Data, int Length)
+{
+    // TS packet length: TS_SIZE
+    if (Running() && (*Data == TS_SYNC_BYTE) && (Length == TS_SIZE)) {
+        int len, pid = TsPid(Data);
+        if (pid == m_VideoPid) {
+            ++m_VideoPacketCount;
+            len = m_VideoBuffer.Put(Data, Length);
+            if (len != Length) {
+                m_VideoBuffer.ReportOverflow(Length - len);
+                m_VideoBuffer.Clear();
+            }
+        }
+        else if (pid == m_AudioPid) {
+            ++m_AudioPacketCount;
+            len = m_AudioBuffer.Put(Data, Length);
+            if (len != Length) {
+                m_AudioBuffer.ReportOverflow(Length - len);
+                m_AudioBuffer.Clear();
+            }
+        }
+        else if (pid == m_AC3Pid) {
+            ++m_AC3PacketCount;
+            len = m_AC3Buffer.Put(Data, Length);
+            if (len != Length) {
+                m_AC3Buffer.ReportOverflow(Length - len);
+                m_AC3Buffer.Clear();
+            }
+        }
+    }
+}
+
+void cFemonReceiver::Action(void)
+{
+    cTimeMs calcPeriod(0);
+    m_Active = true;
+
+    while (Running() && m_Active) {
+        uint8_t *Data;
+        double timeout;
+        int Length;
+        bool processed = false;
+
+        // process available video data
+        while ((Data = m_VideoBuffer.Get(Length))) {
+            if (!m_Active || (Length < TS_SIZE))
+                break;
+            Length = TS_SIZE;
+            if (*Data != TS_SYNC_BYTE) {
+                for (int i = 1; i < Length; ++i) {
+                    if (Data[i] == TS_SYNC_BYTE) {
+                        Length = i;
+                        break;
+                    }
+                }
+                m_VideoBuffer.Del(Length);
+                continue;
+            }
+            processed = true;
+            if (TsPayloadStart(Data)) {
+                m_VideoAssembler.Reset();
+            }
+            m_VideoAssembler.PutTs(Data, Length);
+            m_VideoBuffer.Del(Length);
+        }
+
+        // process available audio data
+        while ((Data = m_AudioBuffer.Get(Length))) {
+            if (!m_Active || (Length < TS_SIZE))
+                break;
+            Length = TS_SIZE;
+            if (*Data != TS_SYNC_BYTE) {
+                for (int i = 1; i < Length; ++i) {
+                    if (Data[i] == TS_SYNC_BYTE) {
+                        Length = i;
+                        break;
+                    }
+                }
+                m_AudioBuffer.Del(Length);
+                continue;
+            }
+            processed = true;
+            m_AudioAssembler.PutTs(Data, Length);
+            m_AudioBuffer.Del(Length);
+        }
+
+        // process available dolby data
+        while ((Data = m_AC3Buffer.Get(Length))) {
+            if (!m_Active || (Length < TS_SIZE))
+                break;
+            Length = TS_SIZE;
+            if (*Data != TS_SYNC_BYTE) {
+                for (int i = 1; i < Length; ++i) {
+                    if (Data[i] == TS_SYNC_BYTE) {
+                        Length = i;
+                        break;
+                    }
+                }
+                m_AC3Buffer.Del(Length);
+                continue;
+            }
+            processed = true;
+            m_AC3Assembler.PutTs(Data, Length);
+            m_AC3Buffer.Del(Length);
+        }
+
+        // calculate bitrates
+        timeout = double(calcPeriod.Elapsed());
+        if (m_Active && (timeout >= (100.0 * Config.ChannelBitrateShowCalcInterval ))) {
+            // TS packet 188 bytes - 4 byte header; MPEG standard defines 1Mbit = 1000000bit
+            // PES headers should be compensated!
+            m_VideoBitrate     = (1000.0 * 8.0 * 184.0 * m_VideoPacketCount) / timeout;
+            m_VideoPacketCount = 0;
+            m_AudioBitrate     = (1000.0 * 8.0 * 184.0 * m_AudioPacketCount) / timeout;
+            m_AudioPacketCount = 0;
+            m_AC3Bitrate       = (1000.0 * 8.0 * 184.0 * m_AC3PacketCount)   / timeout;
+            m_AC3PacketCount   = 0;
+            calcPeriod.Set(0);
+        }
+
+        if (!processed)
+            m_Sleep.Wait(10); // to avoid busy loop and reduce cpu load
+    }
+}
diff --git a/femonreceiver.h b/femonreceiver.h
new file mode 100644
index 0000000..4d768ef
--- /dev/null
+++ b/femonreceiver.h
@@ -0,0 +1,62 @@
+/*
+ * Frontend Status Monitor plugin for the Video Disk Recorder
+ *
+ * See the README file for copyright information and how to reach the author.
+ *
+ */
+
+#ifndef __FEMONRECEIVER_H
+#define __FEMONRECEIVER_H
+
+#include <vdr/thread.h>
+#include <vdr/receiver.h>
+#include "baserender.h"
+
+class cFemonReceiver : public cFlatBaseRender, public cReceiver, public cThread {
+    private:
+        cMutex            m_Mutex;
+        cCondWait         m_Sleep;
+        bool              m_Active;
+
+
+        cRingBufferLinear m_VideoBuffer;
+        cTsToPes          m_VideoAssembler;
+        int               m_VideoType;
+        int               m_VideoPid;
+        int               m_VideoPacketCount;
+        double            m_VideoBitrate;
+
+        cRingBufferLinear m_AudioBuffer;
+        cTsToPes          m_AudioAssembler;
+        int               m_AudioPid;
+        int               m_AudioPacketCount;
+        double            m_AudioBitrate;
+        bool              m_AudioValid;
+
+        cRingBufferLinear m_AC3Buffer;
+        cTsToPes          m_AC3Assembler;
+        int               m_AC3Pid;
+        int               m_AC3PacketCount;
+        double            m_AC3Bitrate;
+        bool              m_AC3Valid;
+
+    protected:
+        virtual void Activate(bool On);
+        virtual void Receive(uchar *Data, int Length);
+        virtual void Action(void);
+
+    public:
+        cFemonReceiver(const cChannel* Channel, int ATrack, int DTrack);
+        virtual ~cFemonReceiver();
+        void Deactivate(void);
+
+        double VideoBitrate(void)         { cMutexLock MutexLock(&m_Mutex);
+            return m_VideoBitrate; };                // bit/s
+        double AudioBitrate(void)         { cMutexLock MutexLock(&m_Mutex);
+            return m_AudioBitrate; };                // bit/s
+        double AC3Bitrate(void)           { cMutexLock MutexLock(&m_Mutex);
+            return m_AC3Bitrate; };                  // bit/s
+};
+
+#endif //__FEMONRECEIVER_H
+
diff --git a/flat.c b/flat.c
new file mode 100644
index 0000000..72172f1
--- /dev/null
+++ b/flat.c
@@ -0,0 +1,84 @@
+#include <vdr/osd.h>
+#include <vdr/menu.h>
+
+#include "flat.h"
+
+#include "displaychannel.h"
+#include "displaymenu.h"
+#include "displaymessage.h"
+#include "displayreplay.h"
+#include "displaytracks.h"
+#include "displayvolume.h"
+
+class cFlatConfig Config;
+class cImageCache imgCache;
+
+cTheme Theme;
+static bool menuActive = false;
+bool firstDisplay = true;
+
+cFlat::cFlat(void) : cSkin("flatPlus", &::Theme) {
+    displayMenu = NULL;
+}
+
+const char *cFlat::Description(void) {
+    return "flatPlus";
+}
+
+cSkinDisplayChannel *cFlat::DisplayChannel(bool WithInfo) {
+    return new cFlatDisplayChannel(WithInfo);
+}
+
+cSkinDisplayMenu *cFlat::DisplayMenu(void) {
+    cFlatDisplayMenu *menu = new cFlatDisplayMenu;
+    displayMenu = menu;
+    menuActive = true;
+    return menu;
+}
+
+cSkinDisplayReplay *cFlat::DisplayReplay(bool ModeOnly) {
+    return new cFlatDisplayReplay(ModeOnly);
+}
+
+cSkinDisplayVolume *cFlat::DisplayVolume(void) {
+    return new cFlatDisplayVolume;
+}
+
+cSkinDisplayTracks *cFlat::DisplayTracks(const char *Title, int NumTracks, const char * const *Tracks) {
+    return new cFlatDisplayTracks(Title, NumTracks, Tracks);
+}
+
+cSkinDisplayMessage *cFlat::DisplayMessage(void) {
+    return new cFlatDisplayMessage;
+}
+
+
+char * substr(char * string, int start, int end)
+{
+    char * p = &string[start];
+    char * buf = (char*) malloc(strlen(p) + 1);
+    char * ptr = buf;
+    if(!buf) return NULL;
+
+    while(*p != '\0' && start < end) {
+        *ptr ++ = *p++;
+        start ++;
+    }
+    *ptr++ = '\0';
+
+    return buf;
+}
+
+char *GetFilenameWithoutext(char * fullfilename)
+{
+    int i, size;
+    i = size = 0;
+
+    while(fullfilename[i] != '\0') {
+        if(fullfilename[i] == '.') {
+            size = i;
+        }
+        i++;
+    }
+    return substr(fullfilename, 0, size);
+}
diff --git a/flat.h b/flat.h
new file mode 100644
index 0000000..27fbd25
--- /dev/null
+++ b/flat.h
@@ -0,0 +1,223 @@
+#pragma once
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <string.h>
+
+#include <vdr/skins.h>
+#include <vdr/videodir.h>
+
+#include "config.h"
+#include "imagecache.h"
+
+extern class cFlatConfig Config;
+extern class cImageCache imgCache;
+extern bool firstDisplay;
+
+class cFlatDisplayMenu;
+extern cTheme Theme;
+
+// BUTTONS
+#define CLR_BUTTONRED                       0xFFBB0000
+#define CLR_BUTTONGREEN                     0xFF00BB00
+#define CLR_BUTTONYELLOW                    0xFFBBBB00
+#define CLR_BUTTONBLUE                      0xFF0000BB
+
+// MESSAGES
+#define CLR_MESSAGESTATUS                   0xFF0000FF
+#define CLR_MESSAGEINFO                     0xFF009900
+#define CLR_MESSAGEWARNING                  0xFFBBBB00
+#define CLR_MESSAGEERROR                    0xFFBB0000
+
+// TopBar
+THEME_CLR(Theme, clrTopBarBg,               0xF0202020);
+THEME_CLR(Theme, clrTopBarFont,             0xFFEEEEEE);
+THEME_CLR(Theme, clrTopBarTimeFont,         0xFFEEEEEE);
+THEME_CLR(Theme, clrTopBarDateFont,         0xFF909090);
+THEME_CLR(Theme, clrTopBarBorderFg,         0xF0202020);
+THEME_CLR(Theme, clrTopBarBorderBg,         0xF0202020);
+
+THEME_CLR(Theme, clrTopBarRecordingActiveFg,  0xFF880000);
+THEME_CLR(Theme, clrTopBarRecordingActiveBg,  0xF0202020);
+
+THEME_CLR(Theme, clrTopBarConflictLowFg,      0xFFBBBB00);
+THEME_CLR(Theme, clrTopBarConflictLowBg,      0xF0202020);
+THEME_CLR(Theme, clrTopBarConflictHighFg,     0xFF880000);
+THEME_CLR(Theme, clrTopBarConflictHighBg,    0xF0202020);
+
+// Buttons
+THEME_CLR(Theme, clrButtonBg,               0xF0202020);
+THEME_CLR(Theme, clrButtonFont,             0xFFEEEEEE);
+THEME_CLR(Theme, clrButtonRed,              CLR_BUTTONRED);
+THEME_CLR(Theme, clrButtonGreen,            CLR_BUTTONGREEN);
+THEME_CLR(Theme, clrButtonYellow,           CLR_BUTTONYELLOW);
+THEME_CLR(Theme, clrButtonBlue,             CLR_BUTTONBLUE);
+
+THEME_CLR(Theme, clrButtonBorderFg,        0xF0202020);
+THEME_CLR(Theme, clrButtonBorderBg,        0xF0202020);
+
+// Messages
+THEME_CLR(Theme, clrMessageBg,              0xF0202020);
+THEME_CLR(Theme, clrMessageFont,            0xFFEEEEEE);
+
+THEME_CLR(Theme, clrMessageStatus,          CLR_MESSAGESTATUS);
+THEME_CLR(Theme, clrMessageInfo,            CLR_MESSAGEINFO);
+THEME_CLR(Theme, clrMessageWarning,         CLR_MESSAGEWARNING);
+THEME_CLR(Theme, clrMessageError,           CLR_MESSAGEERROR);
+
+THEME_CLR(Theme, clrMessageBorderFg,        0xF0202020);
+THEME_CLR(Theme, clrMessageBorderBg,        0xF0202020);
+
+// Channel
+THEME_CLR(Theme, clrChannelBg,              0xF0202020);
+THEME_CLR(Theme, clrChannelFontTitle,       0xFF03A9F4);
+THEME_CLR(Theme, clrChannelFontEpg,         0xFFEEEEEE);
+THEME_CLR(Theme, clrChannelFontEpgFollow,   0xFF909090);
+THEME_CLR(Theme, clrChannelProgressFg,      0xFF03A9F4);
+THEME_CLR(Theme, clrChannelProgressBarFg,   0xFF03A9F4);
+THEME_CLR(Theme, clrChannelProgressBg,      0xF0202020);
+
+THEME_CLR(Theme, clrChannelBorderFg,        0xF003A9F4);
+THEME_CLR(Theme, clrChannelBorderBg,        0xF003A9F4);
+
+THEME_CLR(Theme, clrChannelEPGBorderFg,        0xF003A9F4);
+THEME_CLR(Theme, clrChannelEPGBorderBg,        0xF003A9F4);
+
+THEME_CLR(Theme, clrChannelSignalFont,            0xFF909090);
+THEME_CLR(Theme, clrChannelSignalProgressFg,      0xFF909090);
+THEME_CLR(Theme, clrChannelSignalProgressBarFg,   0xFF909090);
+THEME_CLR(Theme, clrChannelSignalProgressBg,      0xF0202020);
+
+THEME_CLR(Theme, clrChannelRecordingPresentFg,    0xFFAA0000);
+THEME_CLR(Theme, clrChannelRecordingPresentBg,    0xF0202020);
+THEME_CLR(Theme, clrChannelRecordingFollowFg,     0xFF909090);
+THEME_CLR(Theme, clrChannelRecordingFollowBg,     0xF0202020);
+
+// Menu
+THEME_CLR(Theme, clrItemBg,                 0xF0909090);
+THEME_CLR(Theme, clrItemFont,               0xFFEEEEEE);
+THEME_CLR(Theme, clrItemCurrentBg,          0xF003A9F4);
+THEME_CLR(Theme, clrItemCurrentFont,        0xFFEEEEEE);
+THEME_CLR(Theme, clrItemSelableBg,          0xF0202020);
+THEME_CLR(Theme, clrItemSelableFont,        0xFFEEEEEE);
+THEME_CLR(Theme, clrScrollbarFg,            0xFF03A9F4);
+THEME_CLR(Theme, clrScrollbarBarFg,         0xFF03A9F4);
+THEME_CLR(Theme, clrScrollbarBg,            0xF0202020);
+// Menu Event
+THEME_CLR(Theme, clrMenuEventBg,            0xF0202020);
+THEME_CLR(Theme, clrMenuEventFontTitle,     0xFF03A9F4);
+THEME_CLR(Theme, clrMenuEventTitleLine,     0xFF03A9F4);
+THEME_CLR(Theme, clrMenuEventFontInfo,      0xFFEEEEEE);
+// Menu Recording
+THEME_CLR(Theme, clrMenuRecBg,              0xF0202020);
+THEME_CLR(Theme, clrMenuRecFontTitle,       0xFF03A9F4);
+THEME_CLR(Theme, clrMenuRecTitleLine,       0xFF03A9F4);
+THEME_CLR(Theme, clrMenuRecFontInfo,        0xFFEEEEEE);
+// Menu Text (Multiline)
+THEME_CLR(Theme, clrMenuTextBg,             0xF0202020);
+THEME_CLR(Theme, clrMenuTextFont,           0xFFEEEEEE);
+THEME_CLR(Theme, clrMenuTextFixedFont,      0xFFEEEEEE);
+
+THEME_CLR(Theme, clrMenuContentHeadBorderFg,        0xF003A9F4);
+THEME_CLR(Theme, clrMenuContentHeadBorderBg,        0xF003A9F4);
+
+THEME_CLR(Theme, clrMenuContentBorderFg,        0xF003A9F4);
+THEME_CLR(Theme, clrMenuContentBorderBg,        0xF003A9F4);
+
+// Menu Items
+THEME_CLR(Theme, clrMenuItemProgressFg,      0xFFEEEEEE);
+THEME_CLR(Theme, clrMenuItemProgressBarFg,   0xFFEEEEEE);
+THEME_CLR(Theme, clrMenuItemProgressBg,      0xF0202020);
+THEME_CLR(Theme, clrMenuItemCurProgressFg,      0xFFEEEEEE);
+THEME_CLR(Theme, clrMenuItemCurProgressBarFg,   0xFFEEEEEE);
+THEME_CLR(Theme, clrMenuItemCurProgressBg,      0xF003A9F4);
+
+THEME_CLR(Theme, clrMenuItemBorderFg,      0xF0909090);
+THEME_CLR(Theme, clrMenuItemBorderBg,      0xF0909090);
+THEME_CLR(Theme, clrMenuItemSelableBorderFg,      0xF0202020);
+THEME_CLR(Theme, clrMenuItemSelableBorderBg,      0xF0202020);
+THEME_CLR(Theme, clrMenuItemCurrentBorderFg,      0xF003A9F4);
+THEME_CLR(Theme, clrMenuItemCurrentBorderBg,      0xF003A9F4);
+
+// Menu Timer Item
+THEME_CLR(Theme, clrMenuTimerItemDisabledFont,       0xFF909090);
+THEME_CLR(Theme, clrMenuTimerItemRecordingFont,      0xFFEEEEEE);
+
+// For Tilde, Timer Extra, Program Short Text
+THEME_CLR(Theme, clrMenuItemExtraTextFont,    0xFF909090);
+THEME_CLR(Theme, clrMenuItemExtraTextCurrentFont,    0xFF909090);
+
+// Replay
+THEME_CLR(Theme, clrReplayBg,               0xF0202020);
+THEME_CLR(Theme, clrReplayFont,             0xFFEEEEEE);
+THEME_CLR(Theme, clrReplayFontSpeed,        0xFF03A9F4);
+THEME_CLR(Theme, clrReplayProgressFg,       0xFFEEEEEE);
+THEME_CLR(Theme, clrReplayProgressBarFg,    0xFFEEEEEE);
+THEME_CLR(Theme, clrReplayProgressBarCurFg, 0xFF03A9F4);
+THEME_CLR(Theme, clrReplayProgressBg,       0xF0202020);
+THEME_CLR(Theme, clrReplayMarkFg,           0xFFEEEEEE);
+THEME_CLR(Theme, clrReplayMarkCurrentFg,    0xFF03A9F4);
+
+THEME_CLR(Theme, clrReplayBorderFg,         0xF0202020);
+THEME_CLR(Theme, clrReplayBorderBg,         0xF0202020);
+
+// Tracks
+THEME_CLR(Theme, clrTrackItemBg,            0xF0909090);
+THEME_CLR(Theme, clrTrackItemFont,          0xFFEEEEEE);
+THEME_CLR(Theme, clrTrackItemSelableBg,     0xF0202020);
+THEME_CLR(Theme, clrTrackItemSelableFont,   0xFFEEEEEE);
+THEME_CLR(Theme, clrTrackItemCurrentBg,     0xF003A9F4);
+THEME_CLR(Theme, clrTrackItemCurrentFont,   0xFFEEEEEE);
+
+THEME_CLR(Theme, clrTrackItemBorderFg,      0xF0909090);
+THEME_CLR(Theme, clrTrackItemBorderBg,      0xF0909090);
+THEME_CLR(Theme, clrTrackItemSelableBorderFg,      0xF0202020);
+THEME_CLR(Theme, clrTrackItemSelableBorderBg,      0xF0202020);
+THEME_CLR(Theme, clrTrackItemCurrentBorderFg,      0xF003A9F4);
+THEME_CLR(Theme, clrTrackItemCurrentBorderBg,      0xF003A9F4);
+
+// Volume
+THEME_CLR(Theme, clrVolumeBg,               0xF0202020);
+THEME_CLR(Theme, clrVolumeFont,             0xFFEEEEEE);
+THEME_CLR(Theme, clrVolumeProgressFg,       0xFF03A9F4);
+THEME_CLR(Theme, clrVolumeProgressBarFg,    0xFF03A9F4);
+THEME_CLR(Theme, clrVolumeProgressBg,       0xF0202020);
+
+THEME_CLR(Theme, clrVolumeBorderFg,         0xF0202020);
+THEME_CLR(Theme, clrVolumeBorderBg,         0xF0202020);
+
+class cFlat : public cSkin {
+    private:
+        cFlatDisplayMenu *displayMenu;
+    public:
+        cFlat(void);
+        virtual const char *Description(void);
+        virtual cSkinDisplayChannel *DisplayChannel(bool WithInfo);
+        virtual cSkinDisplayMenu *DisplayMenu(void);
+        virtual cSkinDisplayReplay *DisplayReplay(bool ModeOnly);
+        virtual cSkinDisplayVolume *DisplayVolume(void);
+        virtual cSkinDisplayTracks *DisplayTracks(const char *Title, int NumTracks, const char * const *Tracks);
+        virtual cSkinDisplayMessage *DisplayMessage(void);
+};
+
+char * substr(char * string, int start, int end);
+char *GetFilenameWithoutext(char * fullfilename);
+
+static inline uint32_t GetMsTicks(void)
+{
+#ifdef CLOCK_MONOTONIC
+    struct timespec tspec;
+
+    clock_gettime(CLOCK_MONOTONIC, &tspec);
+    return (tspec.tv_sec * 1000) + (tspec.tv_nsec / (1000 * 1000));
+#else
+    struct timeval tval;
+
+    if (gettimeofday(&tval, NULL) < 0)
+        eturn 0;
+    return (tval.tv_sec * 1000) + (tval.tv_usec / 1000);
+#endif
+}
diff --git a/fnu_anthra_themes.HISTORY b/fnu_anthra_themes.HISTORY
new file mode 100644
index 0000000..d79cd56
--- /dev/null
+++ b/fnu_anthra_themes.HISTORY
@@ -0,0 +1,9 @@
+flat anthra style themes for skin-flatplus by fnu
+
+HISTORY
+ 12.04.2014	first version
+ 25.04.2014	polishing themes, add green accent
+ 10.08.2014	add missing colors, polishing themes
+           	add cutis, ivory & lilac accent
+
+(C) 2014 Frank Neumann <fnu at yavdr.org>
diff --git a/fnu_anthra_themes.INFO b/fnu_anthra_themes.INFO
new file mode 100644
index 0000000..23597e2
--- /dev/null
+++ b/fnu_anthra_themes.INFO
@@ -0,0 +1,42 @@
+flatPlus-fnuanthra*.themes created on 12.04.2014
+
+base theme: flatPlus-fnuanthrared.theme, base icons: fnuanthrared
+
+theme: red, highlights: #BC0000, background: #000000, foreground: #404040
+theme: amber, highlights: #FFBF00, background: #000000, foreground: #404040
+theme: ivory, highlights: #DED09F, background: #000000, foreground: #404040
+theme: cutis, highlights: #F89168, background: #000000, foreground: #404040
+theme: green, highlights: #00CD00, background: #000000, foreground: #404040
+theme: lilac, highlights: #CA90CB, background: #000000, foreground: #404040
+theme: yablue, highlights: #4E78B1, background: #000000, foreground: #404040
+
+These are flat anthra style themes following good old anthra packages from Tomas Saxer
+for vdr-plugin-text2skin. As with the originals, base theme is red highlighted. Authors
+favorit is amber highlighted, one for yaVDR family is yablue highlighted and some more.
+
+Themes are black, anthrazit, grey style with some accents in given colors and like the
+original themes with a white logo base. All kept flat to fit into strenght of skinflatplus.
+
+Author does recommend to use "round big" decor and nopacity-default logos from Copperhead,
+because of the white logo base:
+
+- http://creimer.net/channellogos/
+
+vdr-plugin-femon does fit with this settings to these anthra style themes:
+
+femon.AnalStream = 1
+femon.CalcInterval = 20
+femon.DisplayMode = 0
+femon.Downscale = 1
+femon.GreenLimit = 66
+femon.HideMenu = 0
+femon.Position = 1
+femon.RedLimit = 33
+femon.ServerIp = 0.0.0.0
+femon.ServerPort = 6419
+femon.Skin = 1
+femon.Theme = 9
+femon.UpdateInterval = 5
+femon.UseSvdrp = 0
+
+(C) 2014 Frank Neumann <fnu at yavdr.org>
diff --git a/icons/COPYRIGHT b/icons/COPYRIGHT
new file mode 100644
index 0000000..420e8a1
--- /dev/null
+++ b/icons/COPYRIGHT
@@ -0,0 +1,17 @@
+Symbols from
+Alexander Moore
+paket Snowish
+under GNU/GPL
+http://findicons.com/pack/2152/snowish
+
+mute & unmute from
+brsev
+paket vrsev
+Creative Commons Attribution
+http://findicons.com/pack/949/token
+
+iconsweet2
+http://www.iconsweets2.com/
+
+Default Radio, TV, Data
+http://icons8.com/download-huge-windows8-set/
\ No newline at end of file
diff --git a/icons/MVBeige/1280x720.png b/icons/MVBeige/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVBeige/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVBeige/1440x1080.png b/icons/MVBeige/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVBeige/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVBeige/169.png b/icons/MVBeige/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVBeige/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVBeige/169w.png b/icons/MVBeige/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVBeige/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVBeige/1920x1080.png b/icons/MVBeige/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVBeige/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVBeige/221.png b/icons/MVBeige/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVBeige/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVBeige/352x576.png b/icons/MVBeige/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVBeige/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVBeige/43.png b/icons/MVBeige/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVBeige/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVBeige/480x576.png b/icons/MVBeige/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVBeige/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVBeige/528x576.png b/icons/MVBeige/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVBeige/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVBeige/544x576.png b/icons/MVBeige/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVBeige/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVBeige/704x576.png b/icons/MVBeige/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVBeige/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVBeige/720x576.png b/icons/MVBeige/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVBeige/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVBeige/960x720.png b/icons/MVBeige/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVBeige/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVBeige/blank.png b/icons/MVBeige/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVBeige/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVBeige/changroup.png b/icons/MVBeige/changroup.png
new file mode 100644
index 0000000..631044d
Binary files /dev/null and b/icons/MVBeige/changroup.png differ
diff --git a/icons/MVBeige/chart1b.png b/icons/MVBeige/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVBeige/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVBeige/chart2b.png b/icons/MVBeige/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVBeige/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVBeige/chart3b.png b/icons/MVBeige/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVBeige/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVBeige/chart4b.png b/icons/MVBeige/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVBeige/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVBeige/chart5b.png b/icons/MVBeige/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVBeige/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVBeige/chart6b.png b/icons/MVBeige/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVBeige/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVBeige/chart7.png b/icons/MVBeige/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVBeige/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVBeige/chart7b.png b/icons/MVBeige/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVBeige/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVBeige/crypted.png b/icons/MVBeige/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVBeige/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVBeige/forward.png b/icons/MVBeige/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVBeige/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVBeige/forward_sel.png b/icons/MVBeige/forward_sel.png
new file mode 100644
index 0000000..7a02216
Binary files /dev/null and b/icons/MVBeige/forward_sel.png differ
diff --git a/icons/MVBeige/hd.png b/icons/MVBeige/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVBeige/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVBeige/message_error.png b/icons/MVBeige/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVBeige/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVBeige/message_info.png b/icons/MVBeige/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVBeige/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVBeige/message_status.png b/icons/MVBeige/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVBeige/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVBeige/message_warning.png b/icons/MVBeige/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVBeige/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVBeige/pause.png b/icons/MVBeige/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVBeige/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVBeige/pause_sel.png b/icons/MVBeige/pause_sel.png
new file mode 100644
index 0000000..9963631
Binary files /dev/null and b/icons/MVBeige/pause_sel.png differ
diff --git a/icons/MVBeige/play.png b/icons/MVBeige/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVBeige/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVBeige/play_sel.png b/icons/MVBeige/play_sel.png
new file mode 100644
index 0000000..677a8c1
Binary files /dev/null and b/icons/MVBeige/play_sel.png differ
diff --git a/icons/MVBeige/prev.png b/icons/MVBeige/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVBeige/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVBeige/prev_sel.png b/icons/MVBeige/prev_sel.png
new file mode 100644
index 0000000..bc140e3
Binary files /dev/null and b/icons/MVBeige/prev_sel.png differ
diff --git a/icons/MVBeige/radio.png b/icons/MVBeige/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVBeige/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVBeige/recording.png b/icons/MVBeige/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVBeige/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVBeige/recording_cutted.png b/icons/MVBeige/recording_cutted.png
new file mode 100644
index 0000000..df8275f
Binary files /dev/null and b/icons/MVBeige/recording_cutted.png differ
diff --git a/icons/MVBeige/recording_cutted_cur.png b/icons/MVBeige/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVBeige/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/recording_cutted_extra.png b/icons/MVBeige/recording_cutted_extra.png
new file mode 100644
index 0000000..06437d4
Binary files /dev/null and b/icons/MVBeige/recording_cutted_extra.png differ
diff --git a/icons/MVBeige/recording_new.png b/icons/MVBeige/recording_new.png
new file mode 100644
index 0000000..45876a7
Binary files /dev/null and b/icons/MVBeige/recording_new.png differ
diff --git a/icons/MVBeige/recording_new_cur.png b/icons/MVBeige/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVBeige/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/rewind.png b/icons/MVBeige/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVBeige/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVBeige/rewind_sel.png b/icons/MVBeige/rewind_sel.png
new file mode 100644
index 0000000..058c5a8
Binary files /dev/null and b/icons/MVBeige/rewind_sel.png differ
diff --git a/icons/MVBeige/sd.png b/icons/MVBeige/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVBeige/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVBeige/skip.png b/icons/MVBeige/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVBeige/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVBeige/skip_sel.png b/icons/MVBeige/skip_sel.png
new file mode 100644
index 0000000..888e8bd
Binary files /dev/null and b/icons/MVBeige/skip_sel.png differ
diff --git a/icons/MVBeige/text_arrowturn.png b/icons/MVBeige/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVBeige/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_arrowturn_cur.png b/icons/MVBeige/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVBeige/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_arrowturn_sel.png b/icons/MVBeige/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVBeige/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_new.png b/icons/MVBeige/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVBeige/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_new_cur.png b/icons/MVBeige/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVBeige/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_new_sel.png b/icons/MVBeige/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVBeige/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_rec.png b/icons/MVBeige/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVBeige/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_rec_cur.png b/icons/MVBeige/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVBeige/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_rec_sel.png b/icons/MVBeige/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVBeige/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_timer_full.png b/icons/MVBeige/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVBeige/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_timer_full_cur.png b/icons/MVBeige/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVBeige/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_timer_full_sel.png b/icons/MVBeige/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVBeige/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_timer_partial.png b/icons/MVBeige/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVBeige/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_timer_partial_cur.png b/icons/MVBeige/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVBeige/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_timer_partial_sel.png b/icons/MVBeige/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVBeige/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_vps.png b/icons/MVBeige/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVBeige/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_vps_cur.png b/icons/MVBeige/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVBeige/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/text_vps_sel.png b/icons/MVBeige/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVBeige/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVBeige/timerActive.png b/icons/MVBeige/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVBeige/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVBeige/timerInactive.png b/icons/MVBeige/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVBeige/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVBeige/timerRecording.png b/icons/MVBeige/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVBeige/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVBeige/timer_full.png b/icons/MVBeige/timer_full.png
new file mode 100644
index 0000000..3037dd7
Binary files /dev/null and b/icons/MVBeige/timer_full.png differ
diff --git a/icons/MVBeige/timer_full_cur.png b/icons/MVBeige/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVBeige/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/timer_partial.png b/icons/MVBeige/timer_partial.png
new file mode 100644
index 0000000..0572238
Binary files /dev/null and b/icons/MVBeige/timer_partial.png differ
diff --git a/icons/MVBeige/timer_partial_cur.png b/icons/MVBeige/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVBeige/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVBeige/topbar_timer.png b/icons/MVBeige/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVBeige/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVBeige/topbar_timerconflict_high.png b/icons/MVBeige/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVBeige/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVBeige/topbar_timerconflict_low.png b/icons/MVBeige/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVBeige/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVBeige/tv.png b/icons/MVBeige/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVBeige/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVBeige/uncrypted.png b/icons/MVBeige/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVBeige/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVBeige/unknown_asp.png b/icons/MVBeige/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVBeige/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVBeige/unknown_res.png b/icons/MVBeige/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVBeige/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVBeige/vps.png b/icons/MVBeige/vps.png
new file mode 100644
index 0000000..a7b2ae3
Binary files /dev/null and b/icons/MVBeige/vps.png differ
diff --git a/icons/MVBeige/vps_cur.png b/icons/MVBeige/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVBeige/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/1280x720.png b/icons/MVBerry/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVBerry/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVBerry/1440x1080.png b/icons/MVBerry/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVBerry/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVBerry/169.png b/icons/MVBerry/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVBerry/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVBerry/169w.png b/icons/MVBerry/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVBerry/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVBerry/1920x1080.png b/icons/MVBerry/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVBerry/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVBerry/221.png b/icons/MVBerry/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVBerry/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVBerry/352x576.png b/icons/MVBerry/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVBerry/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVBerry/43.png b/icons/MVBerry/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVBerry/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVBerry/480x576.png b/icons/MVBerry/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVBerry/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVBerry/528x576.png b/icons/MVBerry/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVBerry/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVBerry/544x576.png b/icons/MVBerry/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVBerry/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVBerry/704x576.png b/icons/MVBerry/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVBerry/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVBerry/720x576.png b/icons/MVBerry/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVBerry/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVBerry/960x720.png b/icons/MVBerry/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVBerry/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVBerry/blank.png b/icons/MVBerry/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVBerry/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVBerry/changroup.png b/icons/MVBerry/changroup.png
new file mode 100644
index 0000000..334ed6a
Binary files /dev/null and b/icons/MVBerry/changroup.png differ
diff --git a/icons/MVBerry/chart1b.png b/icons/MVBerry/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVBerry/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVBerry/chart2b.png b/icons/MVBerry/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVBerry/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVBerry/chart3b.png b/icons/MVBerry/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVBerry/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVBerry/chart4b.png b/icons/MVBerry/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVBerry/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVBerry/chart5b.png b/icons/MVBerry/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVBerry/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVBerry/chart6b.png b/icons/MVBerry/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVBerry/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVBerry/chart7.png b/icons/MVBerry/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVBerry/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVBerry/chart7b.png b/icons/MVBerry/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVBerry/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVBerry/crypted.png b/icons/MVBerry/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVBerry/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVBerry/forward.png b/icons/MVBerry/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVBerry/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVBerry/forward_sel.png b/icons/MVBerry/forward_sel.png
new file mode 100644
index 0000000..399f044
Binary files /dev/null and b/icons/MVBerry/forward_sel.png differ
diff --git a/icons/MVBerry/hd.png b/icons/MVBerry/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVBerry/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVBerry/message_error.png b/icons/MVBerry/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVBerry/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVBerry/message_info.png b/icons/MVBerry/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVBerry/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVBerry/message_status.png b/icons/MVBerry/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVBerry/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVBerry/message_warning.png b/icons/MVBerry/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVBerry/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVBerry/pause.png b/icons/MVBerry/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVBerry/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVBerry/pause_sel.png b/icons/MVBerry/pause_sel.png
new file mode 100644
index 0000000..2bb0c2a
Binary files /dev/null and b/icons/MVBerry/pause_sel.png differ
diff --git a/icons/MVBerry/play.png b/icons/MVBerry/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVBerry/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVBerry/play_sel.png b/icons/MVBerry/play_sel.png
new file mode 100644
index 0000000..2378326
Binary files /dev/null and b/icons/MVBerry/play_sel.png differ
diff --git a/icons/MVBerry/prev.png b/icons/MVBerry/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVBerry/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVBerry/prev_sel.png b/icons/MVBerry/prev_sel.png
new file mode 100644
index 0000000..e04cbfd
Binary files /dev/null and b/icons/MVBerry/prev_sel.png differ
diff --git a/icons/MVBerry/radio.png b/icons/MVBerry/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVBerry/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVBerry/recording.png b/icons/MVBerry/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVBerry/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVBerry/recording_cutted.png b/icons/MVBerry/recording_cutted.png
new file mode 100644
index 0000000..5652aa7
Binary files /dev/null and b/icons/MVBerry/recording_cutted.png differ
diff --git a/icons/MVBerry/recording_cutted_cur.png b/icons/MVBerry/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVBerry/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/recording_cutted_extra.png b/icons/MVBerry/recording_cutted_extra.png
new file mode 100644
index 0000000..8581226
Binary files /dev/null and b/icons/MVBerry/recording_cutted_extra.png differ
diff --git a/icons/MVBerry/recording_new.png b/icons/MVBerry/recording_new.png
new file mode 100644
index 0000000..55547d4
Binary files /dev/null and b/icons/MVBerry/recording_new.png differ
diff --git a/icons/MVBerry/recording_new_cur.png b/icons/MVBerry/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVBerry/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/rewind.png b/icons/MVBerry/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVBerry/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVBerry/rewind_sel.png b/icons/MVBerry/rewind_sel.png
new file mode 100644
index 0000000..899689b
Binary files /dev/null and b/icons/MVBerry/rewind_sel.png differ
diff --git a/icons/MVBerry/sd.png b/icons/MVBerry/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVBerry/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVBerry/skip.png b/icons/MVBerry/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVBerry/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVBerry/skip_sel.png b/icons/MVBerry/skip_sel.png
new file mode 100644
index 0000000..0b00df2
Binary files /dev/null and b/icons/MVBerry/skip_sel.png differ
diff --git a/icons/MVBerry/text_arrowturn.png b/icons/MVBerry/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVBerry/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_arrowturn_cur.png b/icons/MVBerry/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVBerry/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_arrowturn_sel.png b/icons/MVBerry/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVBerry/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_new.png b/icons/MVBerry/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVBerry/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_new_cur.png b/icons/MVBerry/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVBerry/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_new_sel.png b/icons/MVBerry/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVBerry/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_rec.png b/icons/MVBerry/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVBerry/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_rec_cur.png b/icons/MVBerry/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVBerry/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_rec_sel.png b/icons/MVBerry/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVBerry/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_timer_full.png b/icons/MVBerry/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVBerry/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_timer_full_cur.png b/icons/MVBerry/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVBerry/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_timer_full_sel.png b/icons/MVBerry/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVBerry/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_timer_partial.png b/icons/MVBerry/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVBerry/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_timer_partial_cur.png b/icons/MVBerry/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVBerry/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_timer_partial_sel.png b/icons/MVBerry/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVBerry/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_vps.png b/icons/MVBerry/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVBerry/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_vps_cur.png b/icons/MVBerry/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVBerry/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/text_vps_sel.png b/icons/MVBerry/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVBerry/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVBerry/timerActive.png b/icons/MVBerry/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVBerry/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVBerry/timerInactive.png b/icons/MVBerry/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVBerry/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVBerry/timerRecording.png b/icons/MVBerry/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVBerry/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVBerry/timer_full.png b/icons/MVBerry/timer_full.png
new file mode 100644
index 0000000..c83c5db
Binary files /dev/null and b/icons/MVBerry/timer_full.png differ
diff --git a/icons/MVBerry/timer_full_cur.png b/icons/MVBerry/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVBerry/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/timer_partial.png b/icons/MVBerry/timer_partial.png
new file mode 100644
index 0000000..b9fb0a2
Binary files /dev/null and b/icons/MVBerry/timer_partial.png differ
diff --git a/icons/MVBerry/timer_partial_cur.png b/icons/MVBerry/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVBerry/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVBerry/topbar_timer.png b/icons/MVBerry/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVBerry/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVBerry/topbar_timerconflict_high.png b/icons/MVBerry/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVBerry/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVBerry/topbar_timerconflict_low.png b/icons/MVBerry/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVBerry/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVBerry/tv.png b/icons/MVBerry/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVBerry/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVBerry/uncrypted.png b/icons/MVBerry/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVBerry/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVBerry/unknown_asp.png b/icons/MVBerry/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVBerry/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVBerry/unknown_res.png b/icons/MVBerry/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVBerry/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVBerry/vps.png b/icons/MVBerry/vps.png
new file mode 100644
index 0000000..b18f75d
Binary files /dev/null and b/icons/MVBerry/vps.png differ
diff --git a/icons/MVBerry/vps_cur.png b/icons/MVBerry/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVBerry/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVBlood/1280x720.png b/icons/MVBlood/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVBlood/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVBlood/1440x1080.png b/icons/MVBlood/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVBlood/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVBlood/169.png b/icons/MVBlood/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVBlood/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVBlood/169w.png b/icons/MVBlood/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVBlood/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVBlood/1920x1080.png b/icons/MVBlood/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVBlood/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVBlood/221.png b/icons/MVBlood/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVBlood/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVBlood/352x576.png b/icons/MVBlood/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVBlood/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVBlood/43.png b/icons/MVBlood/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVBlood/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVBlood/480x576.png b/icons/MVBlood/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVBlood/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVBlood/528x576.png b/icons/MVBlood/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVBlood/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVBlood/544x576.png b/icons/MVBlood/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVBlood/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVBlood/704x576.png b/icons/MVBlood/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVBlood/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVBlood/720x576.png b/icons/MVBlood/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVBlood/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVBlood/960x720.png b/icons/MVBlood/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVBlood/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVBlood/blank.png b/icons/MVBlood/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVBlood/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVBlood/changroup.png b/icons/MVBlood/changroup.png
new file mode 100644
index 0000000..4f86974
Binary files /dev/null and b/icons/MVBlood/changroup.png differ
diff --git a/icons/MVBlood/chart1b.png b/icons/MVBlood/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVBlood/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVBlood/chart2b.png b/icons/MVBlood/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVBlood/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVBlood/chart3b.png b/icons/MVBlood/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVBlood/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVBlood/chart4b.png b/icons/MVBlood/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVBlood/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVBlood/chart5b.png b/icons/MVBlood/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVBlood/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVBlood/chart6b.png b/icons/MVBlood/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVBlood/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVBlood/chart7.png b/icons/MVBlood/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVBlood/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVBlood/chart7b.png b/icons/MVBlood/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVBlood/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVBlood/crypted.png b/icons/MVBlood/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVBlood/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVBlood/forward.png b/icons/MVBlood/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVBlood/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVBlood/forward_sel.png b/icons/MVBlood/forward_sel.png
new file mode 100644
index 0000000..c1bfa3c
Binary files /dev/null and b/icons/MVBlood/forward_sel.png differ
diff --git a/icons/MVBlood/hd.png b/icons/MVBlood/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVBlood/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVBlood/message_error.png b/icons/MVBlood/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVBlood/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVBlood/message_info.png b/icons/MVBlood/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVBlood/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVBlood/message_status.png b/icons/MVBlood/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVBlood/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVBlood/message_warning.png b/icons/MVBlood/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVBlood/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVBlood/pause.png b/icons/MVBlood/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVBlood/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVBlood/pause_sel.png b/icons/MVBlood/pause_sel.png
new file mode 100644
index 0000000..6846889
Binary files /dev/null and b/icons/MVBlood/pause_sel.png differ
diff --git a/icons/MVBlood/play.png b/icons/MVBlood/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVBlood/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVBlood/play_sel.png b/icons/MVBlood/play_sel.png
new file mode 100644
index 0000000..f196a2f
Binary files /dev/null and b/icons/MVBlood/play_sel.png differ
diff --git a/icons/MVBlood/prev.png b/icons/MVBlood/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVBlood/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVBlood/prev_sel.png b/icons/MVBlood/prev_sel.png
new file mode 100644
index 0000000..b2c4ffb
Binary files /dev/null and b/icons/MVBlood/prev_sel.png differ
diff --git a/icons/MVBlood/radio.png b/icons/MVBlood/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVBlood/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVBlood/recording.png b/icons/MVBlood/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVBlood/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVBlood/recording_cutted.png b/icons/MVBlood/recording_cutted.png
new file mode 100644
index 0000000..b616b1a
Binary files /dev/null and b/icons/MVBlood/recording_cutted.png differ
diff --git a/icons/MVBlood/recording_cutted_cur.png b/icons/MVBlood/recording_cutted_cur.png
new file mode 100644
index 0000000..9cc3155
Binary files /dev/null and b/icons/MVBlood/recording_cutted_cur.png differ
diff --git a/icons/MVBlood/recording_cutted_extra.png b/icons/MVBlood/recording_cutted_extra.png
new file mode 100644
index 0000000..eaba3cf
Binary files /dev/null and b/icons/MVBlood/recording_cutted_extra.png differ
diff --git a/icons/MVBlood/recording_new.png b/icons/MVBlood/recording_new.png
new file mode 100644
index 0000000..0adfbc6
Binary files /dev/null and b/icons/MVBlood/recording_new.png differ
diff --git a/icons/MVBlood/recording_new_cur.png b/icons/MVBlood/recording_new_cur.png
new file mode 100644
index 0000000..3377f23
Binary files /dev/null and b/icons/MVBlood/recording_new_cur.png differ
diff --git a/icons/MVBlood/rewind.png b/icons/MVBlood/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVBlood/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVBlood/rewind_sel.png b/icons/MVBlood/rewind_sel.png
new file mode 100644
index 0000000..c359b5e
Binary files /dev/null and b/icons/MVBlood/rewind_sel.png differ
diff --git a/icons/MVBlood/sd.png b/icons/MVBlood/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVBlood/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVBlood/skip.png b/icons/MVBlood/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVBlood/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVBlood/skip_sel.png b/icons/MVBlood/skip_sel.png
new file mode 100644
index 0000000..6a386a5
Binary files /dev/null and b/icons/MVBlood/skip_sel.png differ
diff --git a/icons/MVBlood/text_arrowturn.png b/icons/MVBlood/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVBlood/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_arrowturn_cur.png b/icons/MVBlood/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVBlood/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_arrowturn_sel.png b/icons/MVBlood/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVBlood/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_new.png b/icons/MVBlood/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVBlood/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_new_cur.png b/icons/MVBlood/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVBlood/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_new_sel.png b/icons/MVBlood/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVBlood/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_rec.png b/icons/MVBlood/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVBlood/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_rec_cur.png b/icons/MVBlood/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVBlood/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_rec_sel.png b/icons/MVBlood/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVBlood/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_timer_full.png b/icons/MVBlood/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVBlood/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_timer_full_cur.png b/icons/MVBlood/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVBlood/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_timer_full_sel.png b/icons/MVBlood/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVBlood/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_timer_partial.png b/icons/MVBlood/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVBlood/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_timer_partial_cur.png b/icons/MVBlood/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVBlood/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_timer_partial_sel.png b/icons/MVBlood/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVBlood/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_vps.png b/icons/MVBlood/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVBlood/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_vps_cur.png b/icons/MVBlood/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVBlood/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVBlood/text_vps_sel.png b/icons/MVBlood/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVBlood/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVBlood/timerActive.png b/icons/MVBlood/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVBlood/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVBlood/timerInactive.png b/icons/MVBlood/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVBlood/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVBlood/timerRecording.png b/icons/MVBlood/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVBlood/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVBlood/timer_full.png b/icons/MVBlood/timer_full.png
new file mode 100644
index 0000000..ce85d0f
Binary files /dev/null and b/icons/MVBlood/timer_full.png differ
diff --git a/icons/MVBlood/timer_full_cur.png b/icons/MVBlood/timer_full_cur.png
new file mode 100644
index 0000000..6a4ff86
Binary files /dev/null and b/icons/MVBlood/timer_full_cur.png differ
diff --git a/icons/MVBlood/timer_partial.png b/icons/MVBlood/timer_partial.png
new file mode 100644
index 0000000..99f616c
Binary files /dev/null and b/icons/MVBlood/timer_partial.png differ
diff --git a/icons/MVBlood/timer_partial_cur.png b/icons/MVBlood/timer_partial_cur.png
new file mode 100644
index 0000000..6f008e2
Binary files /dev/null and b/icons/MVBlood/timer_partial_cur.png differ
diff --git a/icons/MVBlood/topbar_timer.png b/icons/MVBlood/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVBlood/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVBlood/topbar_timerconflict_high.png b/icons/MVBlood/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVBlood/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVBlood/topbar_timerconflict_low.png b/icons/MVBlood/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVBlood/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVBlood/tv.png b/icons/MVBlood/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVBlood/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVBlood/uncrypted.png b/icons/MVBlood/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVBlood/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVBlood/unknown_asp.png b/icons/MVBlood/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVBlood/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVBlood/unknown_res.png b/icons/MVBlood/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVBlood/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVBlood/vps.png b/icons/MVBlood/vps.png
new file mode 100644
index 0000000..28832e8
Binary files /dev/null and b/icons/MVBlood/vps.png differ
diff --git a/icons/MVBlood/vps_cur.png b/icons/MVBlood/vps_cur.png
new file mode 100644
index 0000000..e128e7a
Binary files /dev/null and b/icons/MVBlood/vps_cur.png differ
diff --git a/icons/MVBlue/1280x720.png b/icons/MVBlue/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVBlue/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVBlue/1440x1080.png b/icons/MVBlue/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVBlue/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVBlue/169.png b/icons/MVBlue/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVBlue/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVBlue/169w.png b/icons/MVBlue/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVBlue/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVBlue/1920x1080.png b/icons/MVBlue/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVBlue/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVBlue/221.png b/icons/MVBlue/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVBlue/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVBlue/352x576.png b/icons/MVBlue/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVBlue/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVBlue/43.png b/icons/MVBlue/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVBlue/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVBlue/480x576.png b/icons/MVBlue/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVBlue/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVBlue/528x576.png b/icons/MVBlue/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVBlue/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVBlue/544x576.png b/icons/MVBlue/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVBlue/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVBlue/704x576.png b/icons/MVBlue/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVBlue/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVBlue/720x576.png b/icons/MVBlue/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVBlue/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVBlue/960x720.png b/icons/MVBlue/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVBlue/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVBlue/blank.png b/icons/MVBlue/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVBlue/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVBlue/changroup.png b/icons/MVBlue/changroup.png
new file mode 100644
index 0000000..5403f3c
Binary files /dev/null and b/icons/MVBlue/changroup.png differ
diff --git a/icons/MVBlue/chart1b.png b/icons/MVBlue/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVBlue/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVBlue/chart2b.png b/icons/MVBlue/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVBlue/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVBlue/chart3b.png b/icons/MVBlue/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVBlue/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVBlue/chart4b.png b/icons/MVBlue/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVBlue/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVBlue/chart5b.png b/icons/MVBlue/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVBlue/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVBlue/chart6b.png b/icons/MVBlue/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVBlue/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVBlue/chart7.png b/icons/MVBlue/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVBlue/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVBlue/chart7b.png b/icons/MVBlue/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVBlue/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVBlue/crypted.png b/icons/MVBlue/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVBlue/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVBlue/forward.png b/icons/MVBlue/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVBlue/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVBlue/forward_sel.png b/icons/MVBlue/forward_sel.png
new file mode 100644
index 0000000..3677f3d
Binary files /dev/null and b/icons/MVBlue/forward_sel.png differ
diff --git a/icons/MVBlue/hd.png b/icons/MVBlue/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVBlue/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVBlue/message_error.png b/icons/MVBlue/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVBlue/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVBlue/message_info.png b/icons/MVBlue/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVBlue/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVBlue/message_status.png b/icons/MVBlue/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVBlue/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVBlue/message_warning.png b/icons/MVBlue/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVBlue/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVBlue/pause.png b/icons/MVBlue/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVBlue/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVBlue/pause_sel.png b/icons/MVBlue/pause_sel.png
new file mode 100644
index 0000000..7067d95
Binary files /dev/null and b/icons/MVBlue/pause_sel.png differ
diff --git a/icons/MVBlue/play.png b/icons/MVBlue/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVBlue/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVBlue/play_sel.png b/icons/MVBlue/play_sel.png
new file mode 100644
index 0000000..231ad4d
Binary files /dev/null and b/icons/MVBlue/play_sel.png differ
diff --git a/icons/MVBlue/prev.png b/icons/MVBlue/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVBlue/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVBlue/prev_sel.png b/icons/MVBlue/prev_sel.png
new file mode 100644
index 0000000..d9d2a5f
Binary files /dev/null and b/icons/MVBlue/prev_sel.png differ
diff --git a/icons/MVBlue/radio.png b/icons/MVBlue/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVBlue/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVBlue/recording.png b/icons/MVBlue/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVBlue/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVBlue/recording_cutted.png b/icons/MVBlue/recording_cutted.png
new file mode 100644
index 0000000..a3a7cc1
Binary files /dev/null and b/icons/MVBlue/recording_cutted.png differ
diff --git a/icons/MVBlue/recording_cutted_cur.png b/icons/MVBlue/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVBlue/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/recording_cutted_extra.png b/icons/MVBlue/recording_cutted_extra.png
new file mode 100644
index 0000000..96a8ea9
Binary files /dev/null and b/icons/MVBlue/recording_cutted_extra.png differ
diff --git a/icons/MVBlue/recording_new.png b/icons/MVBlue/recording_new.png
new file mode 100644
index 0000000..61139fd
Binary files /dev/null and b/icons/MVBlue/recording_new.png differ
diff --git a/icons/MVBlue/recording_new_cur.png b/icons/MVBlue/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVBlue/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/rewind.png b/icons/MVBlue/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVBlue/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVBlue/rewind_sel.png b/icons/MVBlue/rewind_sel.png
new file mode 100644
index 0000000..2645c11
Binary files /dev/null and b/icons/MVBlue/rewind_sel.png differ
diff --git a/icons/MVBlue/sd.png b/icons/MVBlue/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVBlue/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVBlue/skip.png b/icons/MVBlue/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVBlue/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVBlue/skip_sel.png b/icons/MVBlue/skip_sel.png
new file mode 100644
index 0000000..0589acd
Binary files /dev/null and b/icons/MVBlue/skip_sel.png differ
diff --git a/icons/MVBlue/text_arrowturn.png b/icons/MVBlue/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVBlue/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_arrowturn_cur.png b/icons/MVBlue/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVBlue/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_arrowturn_sel.png b/icons/MVBlue/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVBlue/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_new.png b/icons/MVBlue/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVBlue/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_new_cur.png b/icons/MVBlue/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVBlue/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_new_sel.png b/icons/MVBlue/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVBlue/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_rec.png b/icons/MVBlue/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVBlue/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_rec_cur.png b/icons/MVBlue/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVBlue/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_rec_sel.png b/icons/MVBlue/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVBlue/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_timer_full.png b/icons/MVBlue/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVBlue/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_timer_full_cur.png b/icons/MVBlue/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVBlue/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_timer_full_sel.png b/icons/MVBlue/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVBlue/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_timer_partial.png b/icons/MVBlue/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVBlue/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_timer_partial_cur.png b/icons/MVBlue/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVBlue/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_timer_partial_sel.png b/icons/MVBlue/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVBlue/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_vps.png b/icons/MVBlue/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVBlue/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_vps_cur.png b/icons/MVBlue/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVBlue/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/text_vps_sel.png b/icons/MVBlue/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVBlue/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVBlue/timerActive.png b/icons/MVBlue/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVBlue/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVBlue/timerInactive.png b/icons/MVBlue/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVBlue/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVBlue/timerRecording.png b/icons/MVBlue/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVBlue/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVBlue/timer_full.png b/icons/MVBlue/timer_full.png
new file mode 100644
index 0000000..0489cb6
Binary files /dev/null and b/icons/MVBlue/timer_full.png differ
diff --git a/icons/MVBlue/timer_full_cur.png b/icons/MVBlue/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVBlue/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/timer_partial.png b/icons/MVBlue/timer_partial.png
new file mode 100644
index 0000000..ab160d5
Binary files /dev/null and b/icons/MVBlue/timer_partial.png differ
diff --git a/icons/MVBlue/timer_partial_cur.png b/icons/MVBlue/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVBlue/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVBlue/topbar_timer.png b/icons/MVBlue/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVBlue/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVBlue/topbar_timerconflict_high.png b/icons/MVBlue/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVBlue/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVBlue/topbar_timerconflict_low.png b/icons/MVBlue/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVBlue/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVBlue/tv.png b/icons/MVBlue/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVBlue/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVBlue/uncrypted.png b/icons/MVBlue/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVBlue/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVBlue/unknown_asp.png b/icons/MVBlue/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVBlue/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVBlue/unknown_res.png b/icons/MVBlue/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVBlue/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVBlue/vps.png b/icons/MVBlue/vps.png
new file mode 100644
index 0000000..4fe3549
Binary files /dev/null and b/icons/MVBlue/vps.png differ
diff --git a/icons/MVBlue/vps_cur.png b/icons/MVBlue/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVBlue/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/1280x720.png b/icons/MVCappuchino/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVCappuchino/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/1440x1080.png b/icons/MVCappuchino/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVCappuchino/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/169.png b/icons/MVCappuchino/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVCappuchino/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/169w.png b/icons/MVCappuchino/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVCappuchino/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/1920x1080.png b/icons/MVCappuchino/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVCappuchino/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/221.png b/icons/MVCappuchino/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVCappuchino/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/352x576.png b/icons/MVCappuchino/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVCappuchino/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/43.png b/icons/MVCappuchino/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVCappuchino/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/480x576.png b/icons/MVCappuchino/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVCappuchino/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/528x576.png b/icons/MVCappuchino/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVCappuchino/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/544x576.png b/icons/MVCappuchino/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVCappuchino/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/704x576.png b/icons/MVCappuchino/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVCappuchino/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/720x576.png b/icons/MVCappuchino/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVCappuchino/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/960x720.png b/icons/MVCappuchino/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVCappuchino/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/blank.png b/icons/MVCappuchino/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVCappuchino/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/changroup.png b/icons/MVCappuchino/changroup.png
new file mode 100644
index 0000000..3f89097
Binary files /dev/null and b/icons/MVCappuchino/changroup.png differ
diff --git a/icons/MVCappuchino/chart1b.png b/icons/MVCappuchino/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVCappuchino/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/chart2b.png b/icons/MVCappuchino/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVCappuchino/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/chart3b.png b/icons/MVCappuchino/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVCappuchino/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/chart4b.png b/icons/MVCappuchino/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVCappuchino/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/chart5b.png b/icons/MVCappuchino/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVCappuchino/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/chart6b.png b/icons/MVCappuchino/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVCappuchino/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/chart7.png b/icons/MVCappuchino/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVCappuchino/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/chart7b.png b/icons/MVCappuchino/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVCappuchino/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/crypted.png b/icons/MVCappuchino/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVCappuchino/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/forward.png b/icons/MVCappuchino/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVCappuchino/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/forward_sel.png b/icons/MVCappuchino/forward_sel.png
new file mode 100644
index 0000000..35c3924
Binary files /dev/null and b/icons/MVCappuchino/forward_sel.png differ
diff --git a/icons/MVCappuchino/hd.png b/icons/MVCappuchino/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVCappuchino/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/message_error.png b/icons/MVCappuchino/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVCappuchino/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/message_info.png b/icons/MVCappuchino/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVCappuchino/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/message_status.png b/icons/MVCappuchino/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVCappuchino/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/message_warning.png b/icons/MVCappuchino/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVCappuchino/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/pause.png b/icons/MVCappuchino/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVCappuchino/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/pause_sel.png b/icons/MVCappuchino/pause_sel.png
new file mode 100644
index 0000000..9be7129
Binary files /dev/null and b/icons/MVCappuchino/pause_sel.png differ
diff --git a/icons/MVCappuchino/play.png b/icons/MVCappuchino/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVCappuchino/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/play_sel.png b/icons/MVCappuchino/play_sel.png
new file mode 100644
index 0000000..62bc72a
Binary files /dev/null and b/icons/MVCappuchino/play_sel.png differ
diff --git a/icons/MVCappuchino/prev.png b/icons/MVCappuchino/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVCappuchino/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/prev_sel.png b/icons/MVCappuchino/prev_sel.png
new file mode 100644
index 0000000..7201a06
Binary files /dev/null and b/icons/MVCappuchino/prev_sel.png differ
diff --git a/icons/MVCappuchino/radio.png b/icons/MVCappuchino/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVCappuchino/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/recording.png b/icons/MVCappuchino/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVCappuchino/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/recording_cutted.png b/icons/MVCappuchino/recording_cutted.png
new file mode 100644
index 0000000..71df280
Binary files /dev/null and b/icons/MVCappuchino/recording_cutted.png differ
diff --git a/icons/MVCappuchino/recording_cutted_cur.png b/icons/MVCappuchino/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVCappuchino/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/recording_cutted_extra.png b/icons/MVCappuchino/recording_cutted_extra.png
new file mode 100644
index 0000000..5e78c36
Binary files /dev/null and b/icons/MVCappuchino/recording_cutted_extra.png differ
diff --git a/icons/MVCappuchino/recording_new.png b/icons/MVCappuchino/recording_new.png
new file mode 100644
index 0000000..3b8c46a
Binary files /dev/null and b/icons/MVCappuchino/recording_new.png differ
diff --git a/icons/MVCappuchino/recording_new_cur.png b/icons/MVCappuchino/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVCappuchino/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/rewind.png b/icons/MVCappuchino/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVCappuchino/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/rewind_sel.png b/icons/MVCappuchino/rewind_sel.png
new file mode 100644
index 0000000..719f88e
Binary files /dev/null and b/icons/MVCappuchino/rewind_sel.png differ
diff --git a/icons/MVCappuchino/sd.png b/icons/MVCappuchino/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVCappuchino/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/skip.png b/icons/MVCappuchino/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVCappuchino/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/skip_sel.png b/icons/MVCappuchino/skip_sel.png
new file mode 100644
index 0000000..68bfbbd
Binary files /dev/null and b/icons/MVCappuchino/skip_sel.png differ
diff --git a/icons/MVCappuchino/text_arrowturn.png b/icons/MVCappuchino/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVCappuchino/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_arrowturn_cur.png b/icons/MVCappuchino/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVCappuchino/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_arrowturn_sel.png b/icons/MVCappuchino/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVCappuchino/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_new.png b/icons/MVCappuchino/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVCappuchino/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_new_cur.png b/icons/MVCappuchino/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVCappuchino/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_new_sel.png b/icons/MVCappuchino/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVCappuchino/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_rec.png b/icons/MVCappuchino/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVCappuchino/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_rec_cur.png b/icons/MVCappuchino/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVCappuchino/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_rec_sel.png b/icons/MVCappuchino/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVCappuchino/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_timer_full.png b/icons/MVCappuchino/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVCappuchino/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_timer_full_cur.png b/icons/MVCappuchino/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVCappuchino/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_timer_full_sel.png b/icons/MVCappuchino/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVCappuchino/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_timer_partial.png b/icons/MVCappuchino/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVCappuchino/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_timer_partial_cur.png b/icons/MVCappuchino/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVCappuchino/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_timer_partial_sel.png b/icons/MVCappuchino/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVCappuchino/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_vps.png b/icons/MVCappuchino/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVCappuchino/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_vps_cur.png b/icons/MVCappuchino/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVCappuchino/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/text_vps_sel.png b/icons/MVCappuchino/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVCappuchino/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/timerActive.png b/icons/MVCappuchino/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVCappuchino/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/timerInactive.png b/icons/MVCappuchino/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVCappuchino/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/timerRecording.png b/icons/MVCappuchino/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVCappuchino/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/timer_full.png b/icons/MVCappuchino/timer_full.png
new file mode 100644
index 0000000..8c6f5cb
Binary files /dev/null and b/icons/MVCappuchino/timer_full.png differ
diff --git a/icons/MVCappuchino/timer_full_cur.png b/icons/MVCappuchino/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVCappuchino/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/timer_partial.png b/icons/MVCappuchino/timer_partial.png
new file mode 100644
index 0000000..f4e7b01
Binary files /dev/null and b/icons/MVCappuchino/timer_partial.png differ
diff --git a/icons/MVCappuchino/timer_partial_cur.png b/icons/MVCappuchino/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVCappuchino/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/topbar_timer.png b/icons/MVCappuchino/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVCappuchino/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/topbar_timerconflict_high.png b/icons/MVCappuchino/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVCappuchino/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/topbar_timerconflict_low.png b/icons/MVCappuchino/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVCappuchino/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/tv.png b/icons/MVCappuchino/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVCappuchino/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/uncrypted.png b/icons/MVCappuchino/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVCappuchino/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/unknown_asp.png b/icons/MVCappuchino/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVCappuchino/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/unknown_res.png b/icons/MVCappuchino/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVCappuchino/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVCappuchino/vps.png b/icons/MVCappuchino/vps.png
new file mode 100644
index 0000000..1fff2c9
Binary files /dev/null and b/icons/MVCappuchino/vps.png differ
diff --git a/icons/MVCappuchino/vps_cur.png b/icons/MVCappuchino/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVCappuchino/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/1280x720.png b/icons/MVChocolate/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVChocolate/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVChocolate/1440x1080.png b/icons/MVChocolate/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVChocolate/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVChocolate/169.png b/icons/MVChocolate/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVChocolate/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVChocolate/169w.png b/icons/MVChocolate/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVChocolate/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVChocolate/1920x1080.png b/icons/MVChocolate/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVChocolate/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVChocolate/221.png b/icons/MVChocolate/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVChocolate/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVChocolate/352x576.png b/icons/MVChocolate/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVChocolate/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVChocolate/43.png b/icons/MVChocolate/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVChocolate/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVChocolate/480x576.png b/icons/MVChocolate/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVChocolate/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVChocolate/528x576.png b/icons/MVChocolate/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVChocolate/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVChocolate/544x576.png b/icons/MVChocolate/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVChocolate/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVChocolate/704x576.png b/icons/MVChocolate/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVChocolate/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVChocolate/720x576.png b/icons/MVChocolate/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVChocolate/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVChocolate/960x720.png b/icons/MVChocolate/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVChocolate/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVChocolate/blank.png b/icons/MVChocolate/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVChocolate/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVChocolate/changroup.png b/icons/MVChocolate/changroup.png
new file mode 100644
index 0000000..3f41e9e
Binary files /dev/null and b/icons/MVChocolate/changroup.png differ
diff --git a/icons/MVChocolate/chart1b.png b/icons/MVChocolate/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVChocolate/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVChocolate/chart2b.png b/icons/MVChocolate/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVChocolate/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVChocolate/chart3b.png b/icons/MVChocolate/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVChocolate/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVChocolate/chart4b.png b/icons/MVChocolate/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVChocolate/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVChocolate/chart5b.png b/icons/MVChocolate/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVChocolate/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVChocolate/chart6b.png b/icons/MVChocolate/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVChocolate/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVChocolate/chart7.png b/icons/MVChocolate/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVChocolate/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVChocolate/chart7b.png b/icons/MVChocolate/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVChocolate/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVChocolate/crypted.png b/icons/MVChocolate/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVChocolate/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVChocolate/forward.png b/icons/MVChocolate/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVChocolate/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVChocolate/forward_sel.png b/icons/MVChocolate/forward_sel.png
new file mode 100644
index 0000000..2b0f3ab
Binary files /dev/null and b/icons/MVChocolate/forward_sel.png differ
diff --git a/icons/MVChocolate/hd.png b/icons/MVChocolate/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVChocolate/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVChocolate/message_error.png b/icons/MVChocolate/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVChocolate/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVChocolate/message_info.png b/icons/MVChocolate/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVChocolate/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVChocolate/message_status.png b/icons/MVChocolate/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVChocolate/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVChocolate/message_warning.png b/icons/MVChocolate/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVChocolate/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVChocolate/pause.png b/icons/MVChocolate/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVChocolate/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVChocolate/pause_sel.png b/icons/MVChocolate/pause_sel.png
new file mode 100644
index 0000000..e3e5542
Binary files /dev/null and b/icons/MVChocolate/pause_sel.png differ
diff --git a/icons/MVChocolate/play.png b/icons/MVChocolate/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVChocolate/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVChocolate/play_sel.png b/icons/MVChocolate/play_sel.png
new file mode 100644
index 0000000..c129249
Binary files /dev/null and b/icons/MVChocolate/play_sel.png differ
diff --git a/icons/MVChocolate/prev.png b/icons/MVChocolate/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVChocolate/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVChocolate/prev_sel.png b/icons/MVChocolate/prev_sel.png
new file mode 100644
index 0000000..b6c9c97
Binary files /dev/null and b/icons/MVChocolate/prev_sel.png differ
diff --git a/icons/MVChocolate/radio.png b/icons/MVChocolate/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVChocolate/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVChocolate/recording.png b/icons/MVChocolate/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVChocolate/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVChocolate/recording_cutted.png b/icons/MVChocolate/recording_cutted.png
new file mode 100644
index 0000000..ca992ab
Binary files /dev/null and b/icons/MVChocolate/recording_cutted.png differ
diff --git a/icons/MVChocolate/recording_cutted_cur.png b/icons/MVChocolate/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVChocolate/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/recording_cutted_extra.png b/icons/MVChocolate/recording_cutted_extra.png
new file mode 100644
index 0000000..995cc80
Binary files /dev/null and b/icons/MVChocolate/recording_cutted_extra.png differ
diff --git a/icons/MVChocolate/recording_new.png b/icons/MVChocolate/recording_new.png
new file mode 100644
index 0000000..233dd6f
Binary files /dev/null and b/icons/MVChocolate/recording_new.png differ
diff --git a/icons/MVChocolate/recording_new_cur.png b/icons/MVChocolate/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVChocolate/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/rewind.png b/icons/MVChocolate/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVChocolate/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVChocolate/rewind_sel.png b/icons/MVChocolate/rewind_sel.png
new file mode 100644
index 0000000..6e2c6bf
Binary files /dev/null and b/icons/MVChocolate/rewind_sel.png differ
diff --git a/icons/MVChocolate/sd.png b/icons/MVChocolate/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVChocolate/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVChocolate/skip.png b/icons/MVChocolate/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVChocolate/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVChocolate/skip_sel.png b/icons/MVChocolate/skip_sel.png
new file mode 100644
index 0000000..608c45f
Binary files /dev/null and b/icons/MVChocolate/skip_sel.png differ
diff --git a/icons/MVChocolate/text_arrowturn.png b/icons/MVChocolate/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVChocolate/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_arrowturn_cur.png b/icons/MVChocolate/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVChocolate/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_arrowturn_sel.png b/icons/MVChocolate/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVChocolate/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_new.png b/icons/MVChocolate/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVChocolate/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_new_cur.png b/icons/MVChocolate/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVChocolate/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_new_sel.png b/icons/MVChocolate/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVChocolate/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_rec.png b/icons/MVChocolate/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVChocolate/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_rec_cur.png b/icons/MVChocolate/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVChocolate/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_rec_sel.png b/icons/MVChocolate/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVChocolate/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_timer_full.png b/icons/MVChocolate/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVChocolate/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_timer_full_cur.png b/icons/MVChocolate/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVChocolate/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_timer_full_sel.png b/icons/MVChocolate/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVChocolate/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_timer_partial.png b/icons/MVChocolate/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVChocolate/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_timer_partial_cur.png b/icons/MVChocolate/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVChocolate/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_timer_partial_sel.png b/icons/MVChocolate/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVChocolate/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_vps.png b/icons/MVChocolate/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVChocolate/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_vps_cur.png b/icons/MVChocolate/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVChocolate/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/text_vps_sel.png b/icons/MVChocolate/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVChocolate/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVChocolate/timerActive.png b/icons/MVChocolate/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVChocolate/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVChocolate/timerInactive.png b/icons/MVChocolate/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVChocolate/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVChocolate/timerRecording.png b/icons/MVChocolate/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVChocolate/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVChocolate/timer_full.png b/icons/MVChocolate/timer_full.png
new file mode 100644
index 0000000..cf895c8
Binary files /dev/null and b/icons/MVChocolate/timer_full.png differ
diff --git a/icons/MVChocolate/timer_full_cur.png b/icons/MVChocolate/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVChocolate/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/timer_partial.png b/icons/MVChocolate/timer_partial.png
new file mode 100644
index 0000000..c705bf0
Binary files /dev/null and b/icons/MVChocolate/timer_partial.png differ
diff --git a/icons/MVChocolate/timer_partial_cur.png b/icons/MVChocolate/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVChocolate/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVChocolate/topbar_timer.png b/icons/MVChocolate/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVChocolate/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVChocolate/topbar_timerconflict_high.png b/icons/MVChocolate/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVChocolate/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVChocolate/topbar_timerconflict_low.png b/icons/MVChocolate/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVChocolate/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVChocolate/tv.png b/icons/MVChocolate/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVChocolate/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVChocolate/uncrypted.png b/icons/MVChocolate/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVChocolate/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVChocolate/unknown_asp.png b/icons/MVChocolate/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVChocolate/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVChocolate/unknown_res.png b/icons/MVChocolate/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVChocolate/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVChocolate/vps.png b/icons/MVChocolate/vps.png
new file mode 100644
index 0000000..dd3fef0
Binary files /dev/null and b/icons/MVChocolate/vps.png differ
diff --git a/icons/MVChocolate/vps_cur.png b/icons/MVChocolate/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVChocolate/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/1280x720.png b/icons/MVCyan/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVCyan/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVCyan/1440x1080.png b/icons/MVCyan/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVCyan/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVCyan/169.png b/icons/MVCyan/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVCyan/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVCyan/169w.png b/icons/MVCyan/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVCyan/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVCyan/1920x1080.png b/icons/MVCyan/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVCyan/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVCyan/221.png b/icons/MVCyan/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVCyan/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVCyan/352x576.png b/icons/MVCyan/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVCyan/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVCyan/43.png b/icons/MVCyan/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVCyan/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVCyan/480x576.png b/icons/MVCyan/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVCyan/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVCyan/528x576.png b/icons/MVCyan/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVCyan/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVCyan/544x576.png b/icons/MVCyan/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVCyan/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVCyan/704x576.png b/icons/MVCyan/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVCyan/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVCyan/720x576.png b/icons/MVCyan/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVCyan/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVCyan/960x720.png b/icons/MVCyan/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVCyan/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVCyan/blank.png b/icons/MVCyan/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVCyan/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVCyan/changroup.png b/icons/MVCyan/changroup.png
new file mode 100644
index 0000000..f7f8e1e
Binary files /dev/null and b/icons/MVCyan/changroup.png differ
diff --git a/icons/MVCyan/chart1b.png b/icons/MVCyan/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVCyan/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVCyan/chart2b.png b/icons/MVCyan/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVCyan/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVCyan/chart3b.png b/icons/MVCyan/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVCyan/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVCyan/chart4b.png b/icons/MVCyan/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVCyan/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVCyan/chart5b.png b/icons/MVCyan/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVCyan/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVCyan/chart6b.png b/icons/MVCyan/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVCyan/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVCyan/chart7.png b/icons/MVCyan/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVCyan/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVCyan/chart7b.png b/icons/MVCyan/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVCyan/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVCyan/crypted.png b/icons/MVCyan/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVCyan/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVCyan/forward.png b/icons/MVCyan/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVCyan/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVCyan/forward_sel.png b/icons/MVCyan/forward_sel.png
new file mode 100644
index 0000000..6c92813
Binary files /dev/null and b/icons/MVCyan/forward_sel.png differ
diff --git a/icons/MVCyan/hd.png b/icons/MVCyan/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVCyan/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVCyan/message_error.png b/icons/MVCyan/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVCyan/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVCyan/message_info.png b/icons/MVCyan/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVCyan/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVCyan/message_status.png b/icons/MVCyan/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVCyan/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVCyan/message_warning.png b/icons/MVCyan/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVCyan/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVCyan/pause.png b/icons/MVCyan/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVCyan/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVCyan/pause_sel.png b/icons/MVCyan/pause_sel.png
new file mode 100644
index 0000000..151dbed
Binary files /dev/null and b/icons/MVCyan/pause_sel.png differ
diff --git a/icons/MVCyan/play.png b/icons/MVCyan/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVCyan/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVCyan/play_sel.png b/icons/MVCyan/play_sel.png
new file mode 100644
index 0000000..5405387
Binary files /dev/null and b/icons/MVCyan/play_sel.png differ
diff --git a/icons/MVCyan/prev.png b/icons/MVCyan/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVCyan/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVCyan/prev_sel.png b/icons/MVCyan/prev_sel.png
new file mode 100644
index 0000000..48b3661
Binary files /dev/null and b/icons/MVCyan/prev_sel.png differ
diff --git a/icons/MVCyan/radio.png b/icons/MVCyan/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVCyan/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVCyan/recording.png b/icons/MVCyan/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVCyan/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVCyan/recording_cutted.png b/icons/MVCyan/recording_cutted.png
new file mode 100644
index 0000000..c4eea18
Binary files /dev/null and b/icons/MVCyan/recording_cutted.png differ
diff --git a/icons/MVCyan/recording_cutted_cur.png b/icons/MVCyan/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVCyan/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/recording_cutted_extra.png b/icons/MVCyan/recording_cutted_extra.png
new file mode 100644
index 0000000..b089cba
Binary files /dev/null and b/icons/MVCyan/recording_cutted_extra.png differ
diff --git a/icons/MVCyan/recording_new.png b/icons/MVCyan/recording_new.png
new file mode 100644
index 0000000..c446d8c
Binary files /dev/null and b/icons/MVCyan/recording_new.png differ
diff --git a/icons/MVCyan/recording_new_cur.png b/icons/MVCyan/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVCyan/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/rewind.png b/icons/MVCyan/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVCyan/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVCyan/rewind_sel.png b/icons/MVCyan/rewind_sel.png
new file mode 100644
index 0000000..1f8b88c
Binary files /dev/null and b/icons/MVCyan/rewind_sel.png differ
diff --git a/icons/MVCyan/sd.png b/icons/MVCyan/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVCyan/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVCyan/skip.png b/icons/MVCyan/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVCyan/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVCyan/skip_sel.png b/icons/MVCyan/skip_sel.png
new file mode 100644
index 0000000..7ccc1b6
Binary files /dev/null and b/icons/MVCyan/skip_sel.png differ
diff --git a/icons/MVCyan/text_arrowturn.png b/icons/MVCyan/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVCyan/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_arrowturn_cur.png b/icons/MVCyan/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVCyan/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_arrowturn_sel.png b/icons/MVCyan/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVCyan/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_new.png b/icons/MVCyan/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVCyan/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_new_cur.png b/icons/MVCyan/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVCyan/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_new_sel.png b/icons/MVCyan/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVCyan/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_rec.png b/icons/MVCyan/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVCyan/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_rec_cur.png b/icons/MVCyan/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVCyan/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_rec_sel.png b/icons/MVCyan/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVCyan/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_timer_full.png b/icons/MVCyan/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVCyan/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_timer_full_cur.png b/icons/MVCyan/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVCyan/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_timer_full_sel.png b/icons/MVCyan/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVCyan/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_timer_partial.png b/icons/MVCyan/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVCyan/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_timer_partial_cur.png b/icons/MVCyan/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVCyan/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_timer_partial_sel.png b/icons/MVCyan/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVCyan/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_vps.png b/icons/MVCyan/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVCyan/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_vps_cur.png b/icons/MVCyan/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVCyan/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/text_vps_sel.png b/icons/MVCyan/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVCyan/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVCyan/timerActive.png b/icons/MVCyan/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVCyan/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVCyan/timerInactive.png b/icons/MVCyan/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVCyan/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVCyan/timerRecording.png b/icons/MVCyan/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVCyan/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVCyan/timer_full.png b/icons/MVCyan/timer_full.png
new file mode 100644
index 0000000..fd56a85
Binary files /dev/null and b/icons/MVCyan/timer_full.png differ
diff --git a/icons/MVCyan/timer_full_cur.png b/icons/MVCyan/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVCyan/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/timer_partial.png b/icons/MVCyan/timer_partial.png
new file mode 100644
index 0000000..41fd05a
Binary files /dev/null and b/icons/MVCyan/timer_partial.png differ
diff --git a/icons/MVCyan/timer_partial_cur.png b/icons/MVCyan/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVCyan/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVCyan/topbar_timer.png b/icons/MVCyan/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVCyan/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVCyan/topbar_timerconflict_high.png b/icons/MVCyan/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVCyan/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVCyan/topbar_timerconflict_low.png b/icons/MVCyan/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVCyan/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVCyan/tv.png b/icons/MVCyan/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVCyan/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVCyan/uncrypted.png b/icons/MVCyan/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVCyan/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVCyan/unknown_asp.png b/icons/MVCyan/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVCyan/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVCyan/unknown_res.png b/icons/MVCyan/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVCyan/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVCyan/vps.png b/icons/MVCyan/vps.png
new file mode 100644
index 0000000..d79cee4
Binary files /dev/null and b/icons/MVCyan/vps.png differ
diff --git a/icons/MVCyan/vps_cur.png b/icons/MVCyan/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVCyan/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/1280x720.png b/icons/MVDeepBlue/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVDeepBlue/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/1440x1080.png b/icons/MVDeepBlue/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVDeepBlue/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/169.png b/icons/MVDeepBlue/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVDeepBlue/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/169w.png b/icons/MVDeepBlue/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVDeepBlue/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/1920x1080.png b/icons/MVDeepBlue/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVDeepBlue/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/221.png b/icons/MVDeepBlue/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVDeepBlue/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/352x576.png b/icons/MVDeepBlue/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVDeepBlue/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/43.png b/icons/MVDeepBlue/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVDeepBlue/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/480x576.png b/icons/MVDeepBlue/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVDeepBlue/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/528x576.png b/icons/MVDeepBlue/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVDeepBlue/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/544x576.png b/icons/MVDeepBlue/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVDeepBlue/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/704x576.png b/icons/MVDeepBlue/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVDeepBlue/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/720x576.png b/icons/MVDeepBlue/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVDeepBlue/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/960x720.png b/icons/MVDeepBlue/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVDeepBlue/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/blank.png b/icons/MVDeepBlue/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVDeepBlue/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/changroup.png b/icons/MVDeepBlue/changroup.png
new file mode 100644
index 0000000..c2954a0
Binary files /dev/null and b/icons/MVDeepBlue/changroup.png differ
diff --git a/icons/MVDeepBlue/chart1b.png b/icons/MVDeepBlue/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVDeepBlue/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/chart2b.png b/icons/MVDeepBlue/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVDeepBlue/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/chart3b.png b/icons/MVDeepBlue/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVDeepBlue/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/chart4b.png b/icons/MVDeepBlue/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVDeepBlue/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/chart5b.png b/icons/MVDeepBlue/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVDeepBlue/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/chart6b.png b/icons/MVDeepBlue/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVDeepBlue/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/chart7.png b/icons/MVDeepBlue/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVDeepBlue/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/chart7b.png b/icons/MVDeepBlue/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVDeepBlue/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/crypted.png b/icons/MVDeepBlue/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVDeepBlue/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/forward.png b/icons/MVDeepBlue/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVDeepBlue/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/forward_sel.png b/icons/MVDeepBlue/forward_sel.png
new file mode 100644
index 0000000..81676e5
Binary files /dev/null and b/icons/MVDeepBlue/forward_sel.png differ
diff --git a/icons/MVDeepBlue/hd.png b/icons/MVDeepBlue/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVDeepBlue/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/message_error.png b/icons/MVDeepBlue/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVDeepBlue/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/message_info.png b/icons/MVDeepBlue/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVDeepBlue/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/message_status.png b/icons/MVDeepBlue/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVDeepBlue/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/message_warning.png b/icons/MVDeepBlue/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVDeepBlue/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/pause.png b/icons/MVDeepBlue/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVDeepBlue/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/pause_sel.png b/icons/MVDeepBlue/pause_sel.png
new file mode 100644
index 0000000..3c3002a
Binary files /dev/null and b/icons/MVDeepBlue/pause_sel.png differ
diff --git a/icons/MVDeepBlue/play.png b/icons/MVDeepBlue/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVDeepBlue/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/play_sel.png b/icons/MVDeepBlue/play_sel.png
new file mode 100644
index 0000000..9fd289f
Binary files /dev/null and b/icons/MVDeepBlue/play_sel.png differ
diff --git a/icons/MVDeepBlue/prev.png b/icons/MVDeepBlue/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVDeepBlue/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/prev_sel.png b/icons/MVDeepBlue/prev_sel.png
new file mode 100644
index 0000000..071334f
Binary files /dev/null and b/icons/MVDeepBlue/prev_sel.png differ
diff --git a/icons/MVDeepBlue/radio.png b/icons/MVDeepBlue/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVDeepBlue/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/recording.png b/icons/MVDeepBlue/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVDeepBlue/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/recording_cutted.png b/icons/MVDeepBlue/recording_cutted.png
new file mode 100644
index 0000000..51a53ec
Binary files /dev/null and b/icons/MVDeepBlue/recording_cutted.png differ
diff --git a/icons/MVDeepBlue/recording_cutted_cur.png b/icons/MVDeepBlue/recording_cutted_cur.png
new file mode 100644
index 0000000..e15075f
Binary files /dev/null and b/icons/MVDeepBlue/recording_cutted_cur.png differ
diff --git a/icons/MVDeepBlue/recording_cutted_extra.png b/icons/MVDeepBlue/recording_cutted_extra.png
new file mode 100644
index 0000000..d3ce629
Binary files /dev/null and b/icons/MVDeepBlue/recording_cutted_extra.png differ
diff --git a/icons/MVDeepBlue/recording_new.png b/icons/MVDeepBlue/recording_new.png
new file mode 100644
index 0000000..d118704
Binary files /dev/null and b/icons/MVDeepBlue/recording_new.png differ
diff --git a/icons/MVDeepBlue/recording_new_cur.png b/icons/MVDeepBlue/recording_new_cur.png
new file mode 100644
index 0000000..3f53e0d
Binary files /dev/null and b/icons/MVDeepBlue/recording_new_cur.png differ
diff --git a/icons/MVDeepBlue/rewind.png b/icons/MVDeepBlue/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVDeepBlue/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/rewind_sel.png b/icons/MVDeepBlue/rewind_sel.png
new file mode 100644
index 0000000..29e7756
Binary files /dev/null and b/icons/MVDeepBlue/rewind_sel.png differ
diff --git a/icons/MVDeepBlue/sd.png b/icons/MVDeepBlue/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVDeepBlue/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/skip.png b/icons/MVDeepBlue/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVDeepBlue/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/skip_sel.png b/icons/MVDeepBlue/skip_sel.png
new file mode 100644
index 0000000..251f0f3
Binary files /dev/null and b/icons/MVDeepBlue/skip_sel.png differ
diff --git a/icons/MVDeepBlue/text_arrowturn.png b/icons/MVDeepBlue/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVDeepBlue/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_arrowturn_cur.png b/icons/MVDeepBlue/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVDeepBlue/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_arrowturn_sel.png b/icons/MVDeepBlue/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVDeepBlue/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_new.png b/icons/MVDeepBlue/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVDeepBlue/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_new_cur.png b/icons/MVDeepBlue/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVDeepBlue/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_new_sel.png b/icons/MVDeepBlue/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVDeepBlue/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_rec.png b/icons/MVDeepBlue/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVDeepBlue/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_rec_cur.png b/icons/MVDeepBlue/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVDeepBlue/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_rec_sel.png b/icons/MVDeepBlue/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVDeepBlue/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_timer_full.png b/icons/MVDeepBlue/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVDeepBlue/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_timer_full_cur.png b/icons/MVDeepBlue/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVDeepBlue/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_timer_full_sel.png b/icons/MVDeepBlue/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVDeepBlue/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_timer_partial.png b/icons/MVDeepBlue/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVDeepBlue/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_timer_partial_cur.png b/icons/MVDeepBlue/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVDeepBlue/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_timer_partial_sel.png b/icons/MVDeepBlue/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVDeepBlue/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_vps.png b/icons/MVDeepBlue/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVDeepBlue/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_vps_cur.png b/icons/MVDeepBlue/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVDeepBlue/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/text_vps_sel.png b/icons/MVDeepBlue/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVDeepBlue/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/timerActive.png b/icons/MVDeepBlue/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVDeepBlue/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/timerInactive.png b/icons/MVDeepBlue/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVDeepBlue/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/timerRecording.png b/icons/MVDeepBlue/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVDeepBlue/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/timer_full.png b/icons/MVDeepBlue/timer_full.png
new file mode 100644
index 0000000..a352048
Binary files /dev/null and b/icons/MVDeepBlue/timer_full.png differ
diff --git a/icons/MVDeepBlue/timer_full_cur.png b/icons/MVDeepBlue/timer_full_cur.png
new file mode 100644
index 0000000..44ffc44
Binary files /dev/null and b/icons/MVDeepBlue/timer_full_cur.png differ
diff --git a/icons/MVDeepBlue/timer_partial.png b/icons/MVDeepBlue/timer_partial.png
new file mode 100644
index 0000000..5e82f89
Binary files /dev/null and b/icons/MVDeepBlue/timer_partial.png differ
diff --git a/icons/MVDeepBlue/timer_partial_cur.png b/icons/MVDeepBlue/timer_partial_cur.png
new file mode 100644
index 0000000..c3a1d00
Binary files /dev/null and b/icons/MVDeepBlue/timer_partial_cur.png differ
diff --git a/icons/MVDeepBlue/topbar_timer.png b/icons/MVDeepBlue/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVDeepBlue/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/topbar_timerconflict_high.png b/icons/MVDeepBlue/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVDeepBlue/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/topbar_timerconflict_low.png b/icons/MVDeepBlue/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVDeepBlue/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/tv.png b/icons/MVDeepBlue/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVDeepBlue/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/uncrypted.png b/icons/MVDeepBlue/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVDeepBlue/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/unknown_asp.png b/icons/MVDeepBlue/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVDeepBlue/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/unknown_res.png b/icons/MVDeepBlue/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVDeepBlue/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVDeepBlue/vps.png b/icons/MVDeepBlue/vps.png
new file mode 100644
index 0000000..633e090
Binary files /dev/null and b/icons/MVDeepBlue/vps.png differ
diff --git a/icons/MVDeepBlue/vps_cur.png b/icons/MVDeepBlue/vps_cur.png
new file mode 100644
index 0000000..b822ba8
Binary files /dev/null and b/icons/MVDeepBlue/vps_cur.png differ
diff --git a/icons/MVFog/1280x720.png b/icons/MVFog/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVFog/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVFog/1440x1080.png b/icons/MVFog/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVFog/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVFog/169.png b/icons/MVFog/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVFog/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVFog/169w.png b/icons/MVFog/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVFog/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVFog/1920x1080.png b/icons/MVFog/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVFog/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVFog/221.png b/icons/MVFog/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVFog/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVFog/352x576.png b/icons/MVFog/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVFog/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVFog/43.png b/icons/MVFog/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVFog/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVFog/480x576.png b/icons/MVFog/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVFog/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVFog/528x576.png b/icons/MVFog/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVFog/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVFog/544x576.png b/icons/MVFog/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVFog/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVFog/704x576.png b/icons/MVFog/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVFog/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVFog/720x576.png b/icons/MVFog/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVFog/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVFog/960x720.png b/icons/MVFog/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVFog/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVFog/blank.png b/icons/MVFog/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVFog/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVFog/changroup.png b/icons/MVFog/changroup.png
new file mode 100644
index 0000000..915f2c7
Binary files /dev/null and b/icons/MVFog/changroup.png differ
diff --git a/icons/MVFog/chart1b.png b/icons/MVFog/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVFog/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVFog/chart2b.png b/icons/MVFog/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVFog/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVFog/chart3b.png b/icons/MVFog/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVFog/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVFog/chart4b.png b/icons/MVFog/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVFog/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVFog/chart5b.png b/icons/MVFog/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVFog/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVFog/chart6b.png b/icons/MVFog/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVFog/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVFog/chart7.png b/icons/MVFog/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVFog/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVFog/chart7b.png b/icons/MVFog/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVFog/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVFog/crypted.png b/icons/MVFog/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVFog/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVFog/forward.png b/icons/MVFog/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVFog/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVFog/forward_sel.png b/icons/MVFog/forward_sel.png
new file mode 100644
index 0000000..6695459
Binary files /dev/null and b/icons/MVFog/forward_sel.png differ
diff --git a/icons/MVFog/hd.png b/icons/MVFog/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVFog/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVFog/message_error.png b/icons/MVFog/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVFog/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVFog/message_info.png b/icons/MVFog/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVFog/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVFog/message_status.png b/icons/MVFog/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVFog/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVFog/message_warning.png b/icons/MVFog/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVFog/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVFog/pause.png b/icons/MVFog/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVFog/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVFog/pause_sel.png b/icons/MVFog/pause_sel.png
new file mode 100644
index 0000000..f7853c1
Binary files /dev/null and b/icons/MVFog/pause_sel.png differ
diff --git a/icons/MVFog/play.png b/icons/MVFog/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVFog/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVFog/play_sel.png b/icons/MVFog/play_sel.png
new file mode 100644
index 0000000..428906e
Binary files /dev/null and b/icons/MVFog/play_sel.png differ
diff --git a/icons/MVFog/prev.png b/icons/MVFog/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVFog/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVFog/prev_sel.png b/icons/MVFog/prev_sel.png
new file mode 100644
index 0000000..5c1a390
Binary files /dev/null and b/icons/MVFog/prev_sel.png differ
diff --git a/icons/MVFog/radio.png b/icons/MVFog/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVFog/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVFog/recording.png b/icons/MVFog/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVFog/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVFog/recording_cutted.png b/icons/MVFog/recording_cutted.png
new file mode 100644
index 0000000..15ffe0a
Binary files /dev/null and b/icons/MVFog/recording_cutted.png differ
diff --git a/icons/MVFog/recording_cutted_cur.png b/icons/MVFog/recording_cutted_cur.png
new file mode 100644
index 0000000..9171d5c
Binary files /dev/null and b/icons/MVFog/recording_cutted_cur.png differ
diff --git a/icons/MVFog/recording_cutted_extra.png b/icons/MVFog/recording_cutted_extra.png
new file mode 100644
index 0000000..9f5e394
Binary files /dev/null and b/icons/MVFog/recording_cutted_extra.png differ
diff --git a/icons/MVFog/recording_new.png b/icons/MVFog/recording_new.png
new file mode 100644
index 0000000..4051afd
Binary files /dev/null and b/icons/MVFog/recording_new.png differ
diff --git a/icons/MVFog/recording_new_cur.png b/icons/MVFog/recording_new_cur.png
new file mode 100644
index 0000000..9ba1f79
Binary files /dev/null and b/icons/MVFog/recording_new_cur.png differ
diff --git a/icons/MVFog/rewind.png b/icons/MVFog/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVFog/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVFog/rewind_sel.png b/icons/MVFog/rewind_sel.png
new file mode 100644
index 0000000..cd0f46f
Binary files /dev/null and b/icons/MVFog/rewind_sel.png differ
diff --git a/icons/MVFog/sd.png b/icons/MVFog/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVFog/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVFog/skip.png b/icons/MVFog/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVFog/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVFog/skip_sel.png b/icons/MVFog/skip_sel.png
new file mode 100644
index 0000000..b14717f
Binary files /dev/null and b/icons/MVFog/skip_sel.png differ
diff --git a/icons/MVFog/text_arrowturn.png b/icons/MVFog/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVFog/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVFog/text_arrowturn_cur.png b/icons/MVFog/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVFog/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVFog/text_arrowturn_sel.png b/icons/MVFog/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVFog/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVFog/text_new.png b/icons/MVFog/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVFog/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVFog/text_new_cur.png b/icons/MVFog/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVFog/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVFog/text_new_sel.png b/icons/MVFog/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVFog/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVFog/text_rec.png b/icons/MVFog/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVFog/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVFog/text_rec_cur.png b/icons/MVFog/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVFog/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVFog/text_rec_sel.png b/icons/MVFog/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVFog/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVFog/text_timer_full.png b/icons/MVFog/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVFog/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVFog/text_timer_full_cur.png b/icons/MVFog/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVFog/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVFog/text_timer_full_sel.png b/icons/MVFog/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVFog/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVFog/text_timer_partial.png b/icons/MVFog/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVFog/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVFog/text_timer_partial_cur.png b/icons/MVFog/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVFog/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVFog/text_timer_partial_sel.png b/icons/MVFog/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVFog/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVFog/text_vps.png b/icons/MVFog/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVFog/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVFog/text_vps_cur.png b/icons/MVFog/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVFog/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVFog/text_vps_sel.png b/icons/MVFog/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVFog/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVFog/timerActive.png b/icons/MVFog/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVFog/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVFog/timerInactive.png b/icons/MVFog/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVFog/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVFog/timerRecording.png b/icons/MVFog/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVFog/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVFog/timer_full.png b/icons/MVFog/timer_full.png
new file mode 100644
index 0000000..3a62e79
Binary files /dev/null and b/icons/MVFog/timer_full.png differ
diff --git a/icons/MVFog/timer_full_cur.png b/icons/MVFog/timer_full_cur.png
new file mode 100644
index 0000000..7612be4
Binary files /dev/null and b/icons/MVFog/timer_full_cur.png differ
diff --git a/icons/MVFog/timer_partial.png b/icons/MVFog/timer_partial.png
new file mode 100644
index 0000000..39538a7
Binary files /dev/null and b/icons/MVFog/timer_partial.png differ
diff --git a/icons/MVFog/timer_partial_cur.png b/icons/MVFog/timer_partial_cur.png
new file mode 100644
index 0000000..7692638
Binary files /dev/null and b/icons/MVFog/timer_partial_cur.png differ
diff --git a/icons/MVFog/topbar_timer.png b/icons/MVFog/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVFog/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVFog/topbar_timerconflict_high.png b/icons/MVFog/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVFog/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVFog/topbar_timerconflict_low.png b/icons/MVFog/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVFog/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVFog/tv.png b/icons/MVFog/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVFog/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVFog/uncrypted.png b/icons/MVFog/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVFog/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVFog/unknown_asp.png b/icons/MVFog/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVFog/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVFog/unknown_res.png b/icons/MVFog/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVFog/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVFog/vps.png b/icons/MVFog/vps.png
new file mode 100644
index 0000000..409c4f8
Binary files /dev/null and b/icons/MVFog/vps.png differ
diff --git a/icons/MVFog/vps_cur.png b/icons/MVFog/vps_cur.png
new file mode 100644
index 0000000..55c7261
Binary files /dev/null and b/icons/MVFog/vps_cur.png differ
diff --git a/icons/MVGrapefruit/1280x720.png b/icons/MVGrapefruit/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVGrapefruit/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/1440x1080.png b/icons/MVGrapefruit/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVGrapefruit/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/169.png b/icons/MVGrapefruit/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVGrapefruit/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/169w.png b/icons/MVGrapefruit/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVGrapefruit/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/1920x1080.png b/icons/MVGrapefruit/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVGrapefruit/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/221.png b/icons/MVGrapefruit/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVGrapefruit/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/352x576.png b/icons/MVGrapefruit/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVGrapefruit/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/43.png b/icons/MVGrapefruit/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVGrapefruit/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/480x576.png b/icons/MVGrapefruit/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVGrapefruit/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/528x576.png b/icons/MVGrapefruit/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVGrapefruit/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/544x576.png b/icons/MVGrapefruit/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVGrapefruit/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/704x576.png b/icons/MVGrapefruit/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVGrapefruit/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/720x576.png b/icons/MVGrapefruit/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVGrapefruit/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/960x720.png b/icons/MVGrapefruit/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVGrapefruit/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/blank.png b/icons/MVGrapefruit/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVGrapefruit/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/changroup.png b/icons/MVGrapefruit/changroup.png
new file mode 100644
index 0000000..ab21403
Binary files /dev/null and b/icons/MVGrapefruit/changroup.png differ
diff --git a/icons/MVGrapefruit/chart1b.png b/icons/MVGrapefruit/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVGrapefruit/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/chart2b.png b/icons/MVGrapefruit/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVGrapefruit/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/chart3b.png b/icons/MVGrapefruit/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVGrapefruit/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/chart4b.png b/icons/MVGrapefruit/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVGrapefruit/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/chart5b.png b/icons/MVGrapefruit/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVGrapefruit/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/chart6b.png b/icons/MVGrapefruit/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVGrapefruit/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/chart7.png b/icons/MVGrapefruit/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVGrapefruit/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/chart7b.png b/icons/MVGrapefruit/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVGrapefruit/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/crypted.png b/icons/MVGrapefruit/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVGrapefruit/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/forward.png b/icons/MVGrapefruit/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVGrapefruit/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/forward_sel.png b/icons/MVGrapefruit/forward_sel.png
new file mode 100644
index 0000000..4234659
Binary files /dev/null and b/icons/MVGrapefruit/forward_sel.png differ
diff --git a/icons/MVGrapefruit/hd.png b/icons/MVGrapefruit/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVGrapefruit/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/message_error.png b/icons/MVGrapefruit/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVGrapefruit/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/message_info.png b/icons/MVGrapefruit/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVGrapefruit/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/message_status.png b/icons/MVGrapefruit/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVGrapefruit/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/message_warning.png b/icons/MVGrapefruit/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVGrapefruit/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/pause.png b/icons/MVGrapefruit/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVGrapefruit/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/pause_sel.png b/icons/MVGrapefruit/pause_sel.png
new file mode 100644
index 0000000..d6508d4
Binary files /dev/null and b/icons/MVGrapefruit/pause_sel.png differ
diff --git a/icons/MVGrapefruit/play.png b/icons/MVGrapefruit/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVGrapefruit/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/play_sel.png b/icons/MVGrapefruit/play_sel.png
new file mode 100644
index 0000000..9b2fc35
Binary files /dev/null and b/icons/MVGrapefruit/play_sel.png differ
diff --git a/icons/MVGrapefruit/prev.png b/icons/MVGrapefruit/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVGrapefruit/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/prev_sel.png b/icons/MVGrapefruit/prev_sel.png
new file mode 100644
index 0000000..4b1c3ba
Binary files /dev/null and b/icons/MVGrapefruit/prev_sel.png differ
diff --git a/icons/MVGrapefruit/radio.png b/icons/MVGrapefruit/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVGrapefruit/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/recording.png b/icons/MVGrapefruit/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVGrapefruit/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/recording_cutted.png b/icons/MVGrapefruit/recording_cutted.png
new file mode 100644
index 0000000..e7b9293
Binary files /dev/null and b/icons/MVGrapefruit/recording_cutted.png differ
diff --git a/icons/MVGrapefruit/recording_cutted_cur.png b/icons/MVGrapefruit/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVGrapefruit/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/recording_cutted_extra.png b/icons/MVGrapefruit/recording_cutted_extra.png
new file mode 100644
index 0000000..a653eee
Binary files /dev/null and b/icons/MVGrapefruit/recording_cutted_extra.png differ
diff --git a/icons/MVGrapefruit/recording_new.png b/icons/MVGrapefruit/recording_new.png
new file mode 100644
index 0000000..171e33e
Binary files /dev/null and b/icons/MVGrapefruit/recording_new.png differ
diff --git a/icons/MVGrapefruit/recording_new_cur.png b/icons/MVGrapefruit/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVGrapefruit/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/rewind.png b/icons/MVGrapefruit/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVGrapefruit/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/rewind_sel.png b/icons/MVGrapefruit/rewind_sel.png
new file mode 100644
index 0000000..8827977
Binary files /dev/null and b/icons/MVGrapefruit/rewind_sel.png differ
diff --git a/icons/MVGrapefruit/sd.png b/icons/MVGrapefruit/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVGrapefruit/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/skip.png b/icons/MVGrapefruit/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVGrapefruit/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/skip_sel.png b/icons/MVGrapefruit/skip_sel.png
new file mode 100644
index 0000000..c789bbe
Binary files /dev/null and b/icons/MVGrapefruit/skip_sel.png differ
diff --git a/icons/MVGrapefruit/text_arrowturn.png b/icons/MVGrapefruit/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVGrapefruit/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_arrowturn_cur.png b/icons/MVGrapefruit/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVGrapefruit/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_arrowturn_sel.png b/icons/MVGrapefruit/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVGrapefruit/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_new.png b/icons/MVGrapefruit/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVGrapefruit/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_new_cur.png b/icons/MVGrapefruit/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVGrapefruit/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_new_sel.png b/icons/MVGrapefruit/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVGrapefruit/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_rec.png b/icons/MVGrapefruit/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVGrapefruit/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_rec_cur.png b/icons/MVGrapefruit/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVGrapefruit/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_rec_sel.png b/icons/MVGrapefruit/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVGrapefruit/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_timer_full.png b/icons/MVGrapefruit/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVGrapefruit/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_timer_full_cur.png b/icons/MVGrapefruit/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVGrapefruit/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_timer_full_sel.png b/icons/MVGrapefruit/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVGrapefruit/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_timer_partial.png b/icons/MVGrapefruit/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVGrapefruit/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_timer_partial_cur.png b/icons/MVGrapefruit/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVGrapefruit/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_timer_partial_sel.png b/icons/MVGrapefruit/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVGrapefruit/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_vps.png b/icons/MVGrapefruit/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVGrapefruit/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_vps_cur.png b/icons/MVGrapefruit/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVGrapefruit/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/text_vps_sel.png b/icons/MVGrapefruit/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVGrapefruit/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/timerActive.png b/icons/MVGrapefruit/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVGrapefruit/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/timerInactive.png b/icons/MVGrapefruit/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVGrapefruit/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/timerRecording.png b/icons/MVGrapefruit/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVGrapefruit/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/timer_full.png b/icons/MVGrapefruit/timer_full.png
new file mode 100644
index 0000000..028c023
Binary files /dev/null and b/icons/MVGrapefruit/timer_full.png differ
diff --git a/icons/MVGrapefruit/timer_full_cur.png b/icons/MVGrapefruit/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVGrapefruit/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/timer_partial.png b/icons/MVGrapefruit/timer_partial.png
new file mode 100644
index 0000000..2542a56
Binary files /dev/null and b/icons/MVGrapefruit/timer_partial.png differ
diff --git a/icons/MVGrapefruit/timer_partial_cur.png b/icons/MVGrapefruit/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVGrapefruit/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/topbar_timer.png b/icons/MVGrapefruit/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVGrapefruit/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/topbar_timerconflict_high.png b/icons/MVGrapefruit/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVGrapefruit/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/topbar_timerconflict_low.png b/icons/MVGrapefruit/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVGrapefruit/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/tv.png b/icons/MVGrapefruit/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVGrapefruit/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/uncrypted.png b/icons/MVGrapefruit/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVGrapefruit/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/unknown_asp.png b/icons/MVGrapefruit/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVGrapefruit/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/unknown_res.png b/icons/MVGrapefruit/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVGrapefruit/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVGrapefruit/vps.png b/icons/MVGrapefruit/vps.png
new file mode 100644
index 0000000..708aa2c
Binary files /dev/null and b/icons/MVGrapefruit/vps.png differ
diff --git a/icons/MVGrapefruit/vps_cur.png b/icons/MVGrapefruit/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVGrapefruit/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/1280x720.png b/icons/MVGreen/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVGreen/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVGreen/1440x1080.png b/icons/MVGreen/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVGreen/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVGreen/169.png b/icons/MVGreen/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVGreen/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVGreen/169w.png b/icons/MVGreen/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVGreen/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVGreen/1920x1080.png b/icons/MVGreen/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVGreen/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVGreen/221.png b/icons/MVGreen/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVGreen/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVGreen/352x576.png b/icons/MVGreen/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVGreen/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVGreen/43.png b/icons/MVGreen/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVGreen/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVGreen/480x576.png b/icons/MVGreen/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVGreen/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVGreen/528x576.png b/icons/MVGreen/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVGreen/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVGreen/544x576.png b/icons/MVGreen/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVGreen/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVGreen/704x576.png b/icons/MVGreen/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVGreen/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVGreen/720x576.png b/icons/MVGreen/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVGreen/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVGreen/960x720.png b/icons/MVGreen/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVGreen/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVGreen/blank.png b/icons/MVGreen/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVGreen/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVGreen/changroup.png b/icons/MVGreen/changroup.png
new file mode 100644
index 0000000..626b974
Binary files /dev/null and b/icons/MVGreen/changroup.png differ
diff --git a/icons/MVGreen/chart1b.png b/icons/MVGreen/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVGreen/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVGreen/chart2b.png b/icons/MVGreen/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVGreen/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVGreen/chart3b.png b/icons/MVGreen/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVGreen/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVGreen/chart4b.png b/icons/MVGreen/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVGreen/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVGreen/chart5b.png b/icons/MVGreen/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVGreen/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVGreen/chart6b.png b/icons/MVGreen/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVGreen/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVGreen/chart7.png b/icons/MVGreen/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVGreen/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVGreen/chart7b.png b/icons/MVGreen/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVGreen/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVGreen/crypted.png b/icons/MVGreen/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVGreen/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVGreen/forward.png b/icons/MVGreen/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVGreen/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVGreen/forward_sel.png b/icons/MVGreen/forward_sel.png
new file mode 100644
index 0000000..5601e3f
Binary files /dev/null and b/icons/MVGreen/forward_sel.png differ
diff --git a/icons/MVGreen/hd.png b/icons/MVGreen/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVGreen/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVGreen/message_error.png b/icons/MVGreen/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVGreen/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVGreen/message_info.png b/icons/MVGreen/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVGreen/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVGreen/message_status.png b/icons/MVGreen/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVGreen/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVGreen/message_warning.png b/icons/MVGreen/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVGreen/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVGreen/pause.png b/icons/MVGreen/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVGreen/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVGreen/pause_sel.png b/icons/MVGreen/pause_sel.png
new file mode 100644
index 0000000..efec03a
Binary files /dev/null and b/icons/MVGreen/pause_sel.png differ
diff --git a/icons/MVGreen/play.png b/icons/MVGreen/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVGreen/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVGreen/play_sel.png b/icons/MVGreen/play_sel.png
new file mode 100644
index 0000000..d23ea70
Binary files /dev/null and b/icons/MVGreen/play_sel.png differ
diff --git a/icons/MVGreen/prev.png b/icons/MVGreen/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVGreen/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVGreen/prev_sel.png b/icons/MVGreen/prev_sel.png
new file mode 100644
index 0000000..e004d9e
Binary files /dev/null and b/icons/MVGreen/prev_sel.png differ
diff --git a/icons/MVGreen/radio.png b/icons/MVGreen/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVGreen/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVGreen/recording.png b/icons/MVGreen/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVGreen/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVGreen/recording_cutted.png b/icons/MVGreen/recording_cutted.png
new file mode 100644
index 0000000..0b03d0f
Binary files /dev/null and b/icons/MVGreen/recording_cutted.png differ
diff --git a/icons/MVGreen/recording_cutted_cur.png b/icons/MVGreen/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVGreen/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/recording_cutted_extra.png b/icons/MVGreen/recording_cutted_extra.png
new file mode 100644
index 0000000..1c953e7
Binary files /dev/null and b/icons/MVGreen/recording_cutted_extra.png differ
diff --git a/icons/MVGreen/recording_new.png b/icons/MVGreen/recording_new.png
new file mode 100644
index 0000000..ce992e8
Binary files /dev/null and b/icons/MVGreen/recording_new.png differ
diff --git a/icons/MVGreen/recording_new_cur.png b/icons/MVGreen/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVGreen/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/rewind.png b/icons/MVGreen/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVGreen/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVGreen/rewind_sel.png b/icons/MVGreen/rewind_sel.png
new file mode 100644
index 0000000..598bf21
Binary files /dev/null and b/icons/MVGreen/rewind_sel.png differ
diff --git a/icons/MVGreen/sd.png b/icons/MVGreen/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVGreen/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVGreen/skip.png b/icons/MVGreen/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVGreen/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVGreen/skip_sel.png b/icons/MVGreen/skip_sel.png
new file mode 100644
index 0000000..14e5388
Binary files /dev/null and b/icons/MVGreen/skip_sel.png differ
diff --git a/icons/MVGreen/text_arrowturn.png b/icons/MVGreen/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVGreen/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_arrowturn_cur.png b/icons/MVGreen/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVGreen/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_arrowturn_sel.png b/icons/MVGreen/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVGreen/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_new.png b/icons/MVGreen/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVGreen/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_new_cur.png b/icons/MVGreen/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVGreen/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_new_sel.png b/icons/MVGreen/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVGreen/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_rec.png b/icons/MVGreen/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVGreen/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_rec_cur.png b/icons/MVGreen/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVGreen/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_rec_sel.png b/icons/MVGreen/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVGreen/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_timer_full.png b/icons/MVGreen/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVGreen/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_timer_full_cur.png b/icons/MVGreen/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVGreen/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_timer_full_sel.png b/icons/MVGreen/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVGreen/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_timer_partial.png b/icons/MVGreen/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVGreen/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_timer_partial_cur.png b/icons/MVGreen/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVGreen/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_timer_partial_sel.png b/icons/MVGreen/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVGreen/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_vps.png b/icons/MVGreen/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVGreen/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_vps_cur.png b/icons/MVGreen/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVGreen/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/text_vps_sel.png b/icons/MVGreen/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVGreen/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen/timerActive.png b/icons/MVGreen/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVGreen/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVGreen/timerInactive.png b/icons/MVGreen/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVGreen/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVGreen/timerRecording.png b/icons/MVGreen/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVGreen/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVGreen/timer_full.png b/icons/MVGreen/timer_full.png
new file mode 100644
index 0000000..fa850a3
Binary files /dev/null and b/icons/MVGreen/timer_full.png differ
diff --git a/icons/MVGreen/timer_full_cur.png b/icons/MVGreen/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVGreen/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/timer_partial.png b/icons/MVGreen/timer_partial.png
new file mode 100644
index 0000000..179f727
Binary files /dev/null and b/icons/MVGreen/timer_partial.png differ
diff --git a/icons/MVGreen/timer_partial_cur.png b/icons/MVGreen/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVGreen/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen/topbar_timer.png b/icons/MVGreen/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVGreen/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVGreen/topbar_timerconflict_high.png b/icons/MVGreen/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVGreen/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVGreen/topbar_timerconflict_low.png b/icons/MVGreen/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVGreen/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVGreen/tv.png b/icons/MVGreen/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVGreen/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVGreen/uncrypted.png b/icons/MVGreen/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVGreen/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVGreen/unknown_asp.png b/icons/MVGreen/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVGreen/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVGreen/unknown_res.png b/icons/MVGreen/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVGreen/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVGreen/vps.png b/icons/MVGreen/vps.png
new file mode 100644
index 0000000..611abdc
Binary files /dev/null and b/icons/MVGreen/vps.png differ
diff --git a/icons/MVGreen/vps_cur.png b/icons/MVGreen/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVGreen/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen2/1280x720.png b/icons/MVGreen2/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVGreen2/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVGreen2/1440x1080.png b/icons/MVGreen2/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVGreen2/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVGreen2/169.png b/icons/MVGreen2/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVGreen2/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVGreen2/169w.png b/icons/MVGreen2/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVGreen2/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVGreen2/1920x1080.png b/icons/MVGreen2/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVGreen2/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVGreen2/221.png b/icons/MVGreen2/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVGreen2/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVGreen2/352x576.png b/icons/MVGreen2/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVGreen2/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVGreen2/43.png b/icons/MVGreen2/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVGreen2/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVGreen2/480x576.png b/icons/MVGreen2/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVGreen2/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVGreen2/528x576.png b/icons/MVGreen2/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVGreen2/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVGreen2/544x576.png b/icons/MVGreen2/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVGreen2/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVGreen2/704x576.png b/icons/MVGreen2/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVGreen2/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVGreen2/720x576.png b/icons/MVGreen2/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVGreen2/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVGreen2/960x720.png b/icons/MVGreen2/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVGreen2/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVGreen2/blank.png b/icons/MVGreen2/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVGreen2/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVGreen2/changroup.png b/icons/MVGreen2/changroup.png
new file mode 100644
index 0000000..626b974
Binary files /dev/null and b/icons/MVGreen2/changroup.png differ
diff --git a/icons/MVGreen2/chart1b.png b/icons/MVGreen2/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVGreen2/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVGreen2/chart2b.png b/icons/MVGreen2/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVGreen2/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVGreen2/chart3b.png b/icons/MVGreen2/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVGreen2/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVGreen2/chart4b.png b/icons/MVGreen2/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVGreen2/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVGreen2/chart5b.png b/icons/MVGreen2/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVGreen2/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVGreen2/chart6b.png b/icons/MVGreen2/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVGreen2/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVGreen2/chart7.png b/icons/MVGreen2/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVGreen2/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVGreen2/chart7b.png b/icons/MVGreen2/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVGreen2/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVGreen2/crypted.png b/icons/MVGreen2/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVGreen2/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVGreen2/forward.png b/icons/MVGreen2/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVGreen2/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVGreen2/forward_sel.png b/icons/MVGreen2/forward_sel.png
new file mode 100644
index 0000000..5601e3f
Binary files /dev/null and b/icons/MVGreen2/forward_sel.png differ
diff --git a/icons/MVGreen2/hd.png b/icons/MVGreen2/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVGreen2/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVGreen2/message_error.png b/icons/MVGreen2/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVGreen2/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVGreen2/message_info.png b/icons/MVGreen2/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVGreen2/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVGreen2/message_status.png b/icons/MVGreen2/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVGreen2/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVGreen2/message_warning.png b/icons/MVGreen2/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVGreen2/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVGreen2/pause.png b/icons/MVGreen2/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVGreen2/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVGreen2/pause_sel.png b/icons/MVGreen2/pause_sel.png
new file mode 100644
index 0000000..efec03a
Binary files /dev/null and b/icons/MVGreen2/pause_sel.png differ
diff --git a/icons/MVGreen2/play.png b/icons/MVGreen2/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVGreen2/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVGreen2/play_sel.png b/icons/MVGreen2/play_sel.png
new file mode 100644
index 0000000..d23ea70
Binary files /dev/null and b/icons/MVGreen2/play_sel.png differ
diff --git a/icons/MVGreen2/prev.png b/icons/MVGreen2/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVGreen2/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVGreen2/prev_sel.png b/icons/MVGreen2/prev_sel.png
new file mode 100644
index 0000000..e004d9e
Binary files /dev/null and b/icons/MVGreen2/prev_sel.png differ
diff --git a/icons/MVGreen2/radio.png b/icons/MVGreen2/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVGreen2/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVGreen2/recording.png b/icons/MVGreen2/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVGreen2/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVGreen2/recording_cutted.png b/icons/MVGreen2/recording_cutted.png
new file mode 100644
index 0000000..0b03d0f
Binary files /dev/null and b/icons/MVGreen2/recording_cutted.png differ
diff --git a/icons/MVGreen2/recording_cutted_cur.png b/icons/MVGreen2/recording_cutted_cur.png
new file mode 100644
index 0000000..889ebbd
Binary files /dev/null and b/icons/MVGreen2/recording_cutted_cur.png differ
diff --git a/icons/MVGreen2/recording_cutted_extra.png b/icons/MVGreen2/recording_cutted_extra.png
new file mode 100644
index 0000000..1c953e7
Binary files /dev/null and b/icons/MVGreen2/recording_cutted_extra.png differ
diff --git a/icons/MVGreen2/recording_new.png b/icons/MVGreen2/recording_new.png
new file mode 100644
index 0000000..ce992e8
Binary files /dev/null and b/icons/MVGreen2/recording_new.png differ
diff --git a/icons/MVGreen2/recording_new_cur.png b/icons/MVGreen2/recording_new_cur.png
new file mode 100644
index 0000000..3cde27e
Binary files /dev/null and b/icons/MVGreen2/recording_new_cur.png differ
diff --git a/icons/MVGreen2/rewind.png b/icons/MVGreen2/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVGreen2/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVGreen2/rewind_sel.png b/icons/MVGreen2/rewind_sel.png
new file mode 100644
index 0000000..598bf21
Binary files /dev/null and b/icons/MVGreen2/rewind_sel.png differ
diff --git a/icons/MVGreen2/sd.png b/icons/MVGreen2/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVGreen2/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVGreen2/skip.png b/icons/MVGreen2/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVGreen2/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVGreen2/skip_sel.png b/icons/MVGreen2/skip_sel.png
new file mode 100644
index 0000000..14e5388
Binary files /dev/null and b/icons/MVGreen2/skip_sel.png differ
diff --git a/icons/MVGreen2/text_arrowturn.png b/icons/MVGreen2/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVGreen2/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_arrowturn_cur.png b/icons/MVGreen2/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVGreen2/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_arrowturn_sel.png b/icons/MVGreen2/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVGreen2/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_new.png b/icons/MVGreen2/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVGreen2/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_new_cur.png b/icons/MVGreen2/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVGreen2/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_new_sel.png b/icons/MVGreen2/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVGreen2/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_rec.png b/icons/MVGreen2/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVGreen2/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_rec_cur.png b/icons/MVGreen2/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVGreen2/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_rec_sel.png b/icons/MVGreen2/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVGreen2/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_timer_full.png b/icons/MVGreen2/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVGreen2/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_timer_full_cur.png b/icons/MVGreen2/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVGreen2/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_timer_full_sel.png b/icons/MVGreen2/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVGreen2/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_timer_partial.png b/icons/MVGreen2/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVGreen2/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_timer_partial_cur.png b/icons/MVGreen2/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVGreen2/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_timer_partial_sel.png b/icons/MVGreen2/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVGreen2/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_vps.png b/icons/MVGreen2/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVGreen2/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_vps_cur.png b/icons/MVGreen2/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVGreen2/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVGreen2/text_vps_sel.png b/icons/MVGreen2/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVGreen2/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVGreen2/timerActive.png b/icons/MVGreen2/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVGreen2/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVGreen2/timerInactive.png b/icons/MVGreen2/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVGreen2/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVGreen2/timerRecording.png b/icons/MVGreen2/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVGreen2/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVGreen2/timer_full.png b/icons/MVGreen2/timer_full.png
new file mode 100644
index 0000000..fa850a3
Binary files /dev/null and b/icons/MVGreen2/timer_full.png differ
diff --git a/icons/MVGreen2/timer_full_cur.png b/icons/MVGreen2/timer_full_cur.png
new file mode 100644
index 0000000..0f254c1
Binary files /dev/null and b/icons/MVGreen2/timer_full_cur.png differ
diff --git a/icons/MVGreen2/timer_partial.png b/icons/MVGreen2/timer_partial.png
new file mode 100644
index 0000000..179f727
Binary files /dev/null and b/icons/MVGreen2/timer_partial.png differ
diff --git a/icons/MVGreen2/timer_partial_cur.png b/icons/MVGreen2/timer_partial_cur.png
new file mode 100644
index 0000000..69d9c02
Binary files /dev/null and b/icons/MVGreen2/timer_partial_cur.png differ
diff --git a/icons/MVGreen2/topbar_timer.png b/icons/MVGreen2/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVGreen2/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVGreen2/topbar_timerconflict_high.png b/icons/MVGreen2/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVGreen2/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVGreen2/topbar_timerconflict_low.png b/icons/MVGreen2/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVGreen2/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVGreen2/tv.png b/icons/MVGreen2/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVGreen2/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVGreen2/uncrypted.png b/icons/MVGreen2/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVGreen2/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVGreen2/unknown_asp.png b/icons/MVGreen2/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVGreen2/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVGreen2/unknown_res.png b/icons/MVGreen2/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVGreen2/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVGreen2/vps.png b/icons/MVGreen2/vps.png
new file mode 100644
index 0000000..611abdc
Binary files /dev/null and b/icons/MVGreen2/vps.png differ
diff --git a/icons/MVGreen2/vps_cur.png b/icons/MVGreen2/vps_cur.png
new file mode 100644
index 0000000..a4793fc
Binary files /dev/null and b/icons/MVGreen2/vps_cur.png differ
diff --git a/icons/MVGrey/1280x720.png b/icons/MVGrey/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVGrey/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVGrey/1440x1080.png b/icons/MVGrey/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVGrey/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVGrey/169.png b/icons/MVGrey/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVGrey/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVGrey/169w.png b/icons/MVGrey/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVGrey/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVGrey/1920x1080.png b/icons/MVGrey/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVGrey/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVGrey/221.png b/icons/MVGrey/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVGrey/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVGrey/352x576.png b/icons/MVGrey/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVGrey/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVGrey/43.png b/icons/MVGrey/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVGrey/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVGrey/480x576.png b/icons/MVGrey/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVGrey/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVGrey/528x576.png b/icons/MVGrey/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVGrey/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVGrey/544x576.png b/icons/MVGrey/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVGrey/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVGrey/704x576.png b/icons/MVGrey/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVGrey/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVGrey/720x576.png b/icons/MVGrey/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVGrey/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVGrey/960x720.png b/icons/MVGrey/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVGrey/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVGrey/blank.png b/icons/MVGrey/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVGrey/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVGrey/changroup.png b/icons/MVGrey/changroup.png
new file mode 100644
index 0000000..b84d1cc
Binary files /dev/null and b/icons/MVGrey/changroup.png differ
diff --git a/icons/MVGrey/chart1b.png b/icons/MVGrey/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVGrey/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVGrey/chart2b.png b/icons/MVGrey/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVGrey/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVGrey/chart3b.png b/icons/MVGrey/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVGrey/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVGrey/chart4b.png b/icons/MVGrey/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVGrey/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVGrey/chart5b.png b/icons/MVGrey/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVGrey/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVGrey/chart6b.png b/icons/MVGrey/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVGrey/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVGrey/chart7.png b/icons/MVGrey/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVGrey/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVGrey/chart7b.png b/icons/MVGrey/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVGrey/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVGrey/crypted.png b/icons/MVGrey/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVGrey/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVGrey/forward.png b/icons/MVGrey/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVGrey/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVGrey/forward_sel.png b/icons/MVGrey/forward_sel.png
new file mode 100644
index 0000000..1119042
Binary files /dev/null and b/icons/MVGrey/forward_sel.png differ
diff --git a/icons/MVGrey/hd.png b/icons/MVGrey/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVGrey/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVGrey/message_error.png b/icons/MVGrey/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVGrey/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVGrey/message_info.png b/icons/MVGrey/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVGrey/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVGrey/message_status.png b/icons/MVGrey/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVGrey/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVGrey/message_warning.png b/icons/MVGrey/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVGrey/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVGrey/pause.png b/icons/MVGrey/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVGrey/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVGrey/pause_sel.png b/icons/MVGrey/pause_sel.png
new file mode 100644
index 0000000..316a4c2
Binary files /dev/null and b/icons/MVGrey/pause_sel.png differ
diff --git a/icons/MVGrey/play.png b/icons/MVGrey/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVGrey/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVGrey/play_sel.png b/icons/MVGrey/play_sel.png
new file mode 100644
index 0000000..c4d103f
Binary files /dev/null and b/icons/MVGrey/play_sel.png differ
diff --git a/icons/MVGrey/prev.png b/icons/MVGrey/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVGrey/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVGrey/prev_sel.png b/icons/MVGrey/prev_sel.png
new file mode 100644
index 0000000..3451580
Binary files /dev/null and b/icons/MVGrey/prev_sel.png differ
diff --git a/icons/MVGrey/radio.png b/icons/MVGrey/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVGrey/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVGrey/recording.png b/icons/MVGrey/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVGrey/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVGrey/recording_cutted.png b/icons/MVGrey/recording_cutted.png
new file mode 100644
index 0000000..7bef541
Binary files /dev/null and b/icons/MVGrey/recording_cutted.png differ
diff --git a/icons/MVGrey/recording_cutted_cur.png b/icons/MVGrey/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVGrey/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/recording_cutted_extra.png b/icons/MVGrey/recording_cutted_extra.png
new file mode 100644
index 0000000..e1ccd6a
Binary files /dev/null and b/icons/MVGrey/recording_cutted_extra.png differ
diff --git a/icons/MVGrey/recording_new.png b/icons/MVGrey/recording_new.png
new file mode 100644
index 0000000..262059e
Binary files /dev/null and b/icons/MVGrey/recording_new.png differ
diff --git a/icons/MVGrey/recording_new_cur.png b/icons/MVGrey/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVGrey/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/rewind.png b/icons/MVGrey/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVGrey/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVGrey/rewind_sel.png b/icons/MVGrey/rewind_sel.png
new file mode 100644
index 0000000..ef3ab07
Binary files /dev/null and b/icons/MVGrey/rewind_sel.png differ
diff --git a/icons/MVGrey/sd.png b/icons/MVGrey/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVGrey/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVGrey/skip.png b/icons/MVGrey/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVGrey/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVGrey/skip_sel.png b/icons/MVGrey/skip_sel.png
new file mode 100644
index 0000000..146a341
Binary files /dev/null and b/icons/MVGrey/skip_sel.png differ
diff --git a/icons/MVGrey/text_arrowturn.png b/icons/MVGrey/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVGrey/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_arrowturn_cur.png b/icons/MVGrey/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVGrey/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_arrowturn_sel.png b/icons/MVGrey/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVGrey/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_new.png b/icons/MVGrey/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVGrey/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_new_cur.png b/icons/MVGrey/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVGrey/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_new_sel.png b/icons/MVGrey/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVGrey/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_rec.png b/icons/MVGrey/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVGrey/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_rec_cur.png b/icons/MVGrey/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVGrey/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_rec_sel.png b/icons/MVGrey/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVGrey/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_timer_full.png b/icons/MVGrey/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVGrey/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_timer_full_cur.png b/icons/MVGrey/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVGrey/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_timer_full_sel.png b/icons/MVGrey/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVGrey/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_timer_partial.png b/icons/MVGrey/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVGrey/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_timer_partial_cur.png b/icons/MVGrey/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVGrey/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_timer_partial_sel.png b/icons/MVGrey/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVGrey/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_vps.png b/icons/MVGrey/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVGrey/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_vps_cur.png b/icons/MVGrey/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVGrey/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/text_vps_sel.png b/icons/MVGrey/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVGrey/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVGrey/timerActive.png b/icons/MVGrey/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVGrey/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVGrey/timerInactive.png b/icons/MVGrey/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVGrey/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVGrey/timerRecording.png b/icons/MVGrey/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVGrey/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVGrey/timer_full.png b/icons/MVGrey/timer_full.png
new file mode 100644
index 0000000..ffcc08c
Binary files /dev/null and b/icons/MVGrey/timer_full.png differ
diff --git a/icons/MVGrey/timer_full_cur.png b/icons/MVGrey/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVGrey/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/timer_partial.png b/icons/MVGrey/timer_partial.png
new file mode 100644
index 0000000..101aaba
Binary files /dev/null and b/icons/MVGrey/timer_partial.png differ
diff --git a/icons/MVGrey/timer_partial_cur.png b/icons/MVGrey/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVGrey/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVGrey/topbar_timer.png b/icons/MVGrey/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVGrey/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVGrey/topbar_timerconflict_high.png b/icons/MVGrey/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVGrey/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVGrey/topbar_timerconflict_low.png b/icons/MVGrey/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVGrey/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVGrey/tv.png b/icons/MVGrey/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVGrey/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVGrey/uncrypted.png b/icons/MVGrey/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVGrey/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVGrey/unknown_asp.png b/icons/MVGrey/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVGrey/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVGrey/unknown_res.png b/icons/MVGrey/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVGrey/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVGrey/vps.png b/icons/MVGrey/vps.png
new file mode 100644
index 0000000..d76d5c4
Binary files /dev/null and b/icons/MVGrey/vps.png differ
diff --git a/icons/MVGrey/vps_cur.png b/icons/MVGrey/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVGrey/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/1280x720.png b/icons/MVHelloKitty/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVHelloKitty/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/1440x1080.png b/icons/MVHelloKitty/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVHelloKitty/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/169.png b/icons/MVHelloKitty/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVHelloKitty/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/169w.png b/icons/MVHelloKitty/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVHelloKitty/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/1920x1080.png b/icons/MVHelloKitty/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVHelloKitty/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/221.png b/icons/MVHelloKitty/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVHelloKitty/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/352x576.png b/icons/MVHelloKitty/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVHelloKitty/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/43.png b/icons/MVHelloKitty/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVHelloKitty/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/480x576.png b/icons/MVHelloKitty/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVHelloKitty/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/528x576.png b/icons/MVHelloKitty/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVHelloKitty/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/544x576.png b/icons/MVHelloKitty/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVHelloKitty/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/704x576.png b/icons/MVHelloKitty/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVHelloKitty/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/720x576.png b/icons/MVHelloKitty/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVHelloKitty/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/960x720.png b/icons/MVHelloKitty/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVHelloKitty/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/blank.png b/icons/MVHelloKitty/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVHelloKitty/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/changroup.png b/icons/MVHelloKitty/changroup.png
new file mode 100644
index 0000000..36e3dc9
Binary files /dev/null and b/icons/MVHelloKitty/changroup.png differ
diff --git a/icons/MVHelloKitty/chart1b.png b/icons/MVHelloKitty/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVHelloKitty/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/chart2b.png b/icons/MVHelloKitty/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVHelloKitty/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/chart3b.png b/icons/MVHelloKitty/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVHelloKitty/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/chart4b.png b/icons/MVHelloKitty/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVHelloKitty/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/chart5b.png b/icons/MVHelloKitty/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVHelloKitty/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/chart6b.png b/icons/MVHelloKitty/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVHelloKitty/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/chart7.png b/icons/MVHelloKitty/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVHelloKitty/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/chart7b.png b/icons/MVHelloKitty/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVHelloKitty/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/crypted.png b/icons/MVHelloKitty/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVHelloKitty/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/forward.png b/icons/MVHelloKitty/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVHelloKitty/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/forward_sel.png b/icons/MVHelloKitty/forward_sel.png
new file mode 100644
index 0000000..1471bef
Binary files /dev/null and b/icons/MVHelloKitty/forward_sel.png differ
diff --git a/icons/MVHelloKitty/hd.png b/icons/MVHelloKitty/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVHelloKitty/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/message_error.png b/icons/MVHelloKitty/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVHelloKitty/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/message_info.png b/icons/MVHelloKitty/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVHelloKitty/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/message_status.png b/icons/MVHelloKitty/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVHelloKitty/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/message_warning.png b/icons/MVHelloKitty/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVHelloKitty/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/pause.png b/icons/MVHelloKitty/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVHelloKitty/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/pause_sel.png b/icons/MVHelloKitty/pause_sel.png
new file mode 100644
index 0000000..26c6bf6
Binary files /dev/null and b/icons/MVHelloKitty/pause_sel.png differ
diff --git a/icons/MVHelloKitty/play.png b/icons/MVHelloKitty/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVHelloKitty/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/play_sel.png b/icons/MVHelloKitty/play_sel.png
new file mode 100644
index 0000000..6def288
Binary files /dev/null and b/icons/MVHelloKitty/play_sel.png differ
diff --git a/icons/MVHelloKitty/prev.png b/icons/MVHelloKitty/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVHelloKitty/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/prev_sel.png b/icons/MVHelloKitty/prev_sel.png
new file mode 100644
index 0000000..08bbb70
Binary files /dev/null and b/icons/MVHelloKitty/prev_sel.png differ
diff --git a/icons/MVHelloKitty/radio.png b/icons/MVHelloKitty/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVHelloKitty/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/recording.png b/icons/MVHelloKitty/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVHelloKitty/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/recording_cutted.png b/icons/MVHelloKitty/recording_cutted.png
new file mode 100644
index 0000000..82966c9
Binary files /dev/null and b/icons/MVHelloKitty/recording_cutted.png differ
diff --git a/icons/MVHelloKitty/recording_cutted_cur.png b/icons/MVHelloKitty/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVHelloKitty/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/recording_cutted_extra.png b/icons/MVHelloKitty/recording_cutted_extra.png
new file mode 100644
index 0000000..43499cb
Binary files /dev/null and b/icons/MVHelloKitty/recording_cutted_extra.png differ
diff --git a/icons/MVHelloKitty/recording_new.png b/icons/MVHelloKitty/recording_new.png
new file mode 100644
index 0000000..a36a023
Binary files /dev/null and b/icons/MVHelloKitty/recording_new.png differ
diff --git a/icons/MVHelloKitty/recording_new_cur.png b/icons/MVHelloKitty/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVHelloKitty/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/rewind.png b/icons/MVHelloKitty/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVHelloKitty/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/rewind_sel.png b/icons/MVHelloKitty/rewind_sel.png
new file mode 100644
index 0000000..0ed1999
Binary files /dev/null and b/icons/MVHelloKitty/rewind_sel.png differ
diff --git a/icons/MVHelloKitty/sd.png b/icons/MVHelloKitty/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVHelloKitty/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/skip.png b/icons/MVHelloKitty/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVHelloKitty/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/skip_sel.png b/icons/MVHelloKitty/skip_sel.png
new file mode 100644
index 0000000..39a7141
Binary files /dev/null and b/icons/MVHelloKitty/skip_sel.png differ
diff --git a/icons/MVHelloKitty/text_arrowturn.png b/icons/MVHelloKitty/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVHelloKitty/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_arrowturn_cur.png b/icons/MVHelloKitty/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVHelloKitty/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_arrowturn_sel.png b/icons/MVHelloKitty/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVHelloKitty/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_new.png b/icons/MVHelloKitty/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVHelloKitty/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_new_cur.png b/icons/MVHelloKitty/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVHelloKitty/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_new_sel.png b/icons/MVHelloKitty/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVHelloKitty/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_rec.png b/icons/MVHelloKitty/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVHelloKitty/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_rec_cur.png b/icons/MVHelloKitty/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVHelloKitty/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_rec_sel.png b/icons/MVHelloKitty/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVHelloKitty/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_timer_full.png b/icons/MVHelloKitty/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVHelloKitty/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_timer_full_cur.png b/icons/MVHelloKitty/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVHelloKitty/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_timer_full_sel.png b/icons/MVHelloKitty/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVHelloKitty/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_timer_partial.png b/icons/MVHelloKitty/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVHelloKitty/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_timer_partial_cur.png b/icons/MVHelloKitty/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVHelloKitty/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_timer_partial_sel.png b/icons/MVHelloKitty/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVHelloKitty/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_vps.png b/icons/MVHelloKitty/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVHelloKitty/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_vps_cur.png b/icons/MVHelloKitty/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVHelloKitty/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/text_vps_sel.png b/icons/MVHelloKitty/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVHelloKitty/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/timerActive.png b/icons/MVHelloKitty/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVHelloKitty/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/timerInactive.png b/icons/MVHelloKitty/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVHelloKitty/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/timerRecording.png b/icons/MVHelloKitty/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVHelloKitty/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/timer_full.png b/icons/MVHelloKitty/timer_full.png
new file mode 100644
index 0000000..ec078bb
Binary files /dev/null and b/icons/MVHelloKitty/timer_full.png differ
diff --git a/icons/MVHelloKitty/timer_full_cur.png b/icons/MVHelloKitty/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVHelloKitty/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/timer_partial.png b/icons/MVHelloKitty/timer_partial.png
new file mode 100644
index 0000000..144e6ff
Binary files /dev/null and b/icons/MVHelloKitty/timer_partial.png differ
diff --git a/icons/MVHelloKitty/timer_partial_cur.png b/icons/MVHelloKitty/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVHelloKitty/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/topbar_timer.png b/icons/MVHelloKitty/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVHelloKitty/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/topbar_timerconflict_high.png b/icons/MVHelloKitty/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVHelloKitty/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/topbar_timerconflict_low.png b/icons/MVHelloKitty/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVHelloKitty/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/tv.png b/icons/MVHelloKitty/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVHelloKitty/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/uncrypted.png b/icons/MVHelloKitty/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVHelloKitty/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/unknown_asp.png b/icons/MVHelloKitty/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVHelloKitty/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/unknown_res.png b/icons/MVHelloKitty/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVHelloKitty/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty/vps.png b/icons/MVHelloKitty/vps.png
new file mode 100644
index 0000000..430ca4d
Binary files /dev/null and b/icons/MVHelloKitty/vps.png differ
diff --git a/icons/MVHelloKitty/vps_cur.png b/icons/MVHelloKitty/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVHelloKitty/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/1280x720.png b/icons/MVHelloKitty2/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVHelloKitty2/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/1440x1080.png b/icons/MVHelloKitty2/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVHelloKitty2/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/169.png b/icons/MVHelloKitty2/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVHelloKitty2/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/169w.png b/icons/MVHelloKitty2/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVHelloKitty2/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/1920x1080.png b/icons/MVHelloKitty2/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVHelloKitty2/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/221.png b/icons/MVHelloKitty2/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVHelloKitty2/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/352x576.png b/icons/MVHelloKitty2/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVHelloKitty2/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/43.png b/icons/MVHelloKitty2/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVHelloKitty2/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/480x576.png b/icons/MVHelloKitty2/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVHelloKitty2/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/528x576.png b/icons/MVHelloKitty2/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVHelloKitty2/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/544x576.png b/icons/MVHelloKitty2/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVHelloKitty2/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/704x576.png b/icons/MVHelloKitty2/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVHelloKitty2/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/720x576.png b/icons/MVHelloKitty2/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVHelloKitty2/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/960x720.png b/icons/MVHelloKitty2/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVHelloKitty2/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/blank.png b/icons/MVHelloKitty2/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVHelloKitty2/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/changroup.png b/icons/MVHelloKitty2/changroup.png
new file mode 100644
index 0000000..36e3dc9
Binary files /dev/null and b/icons/MVHelloKitty2/changroup.png differ
diff --git a/icons/MVHelloKitty2/chart1b.png b/icons/MVHelloKitty2/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVHelloKitty2/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/chart2b.png b/icons/MVHelloKitty2/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVHelloKitty2/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/chart3b.png b/icons/MVHelloKitty2/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVHelloKitty2/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/chart4b.png b/icons/MVHelloKitty2/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVHelloKitty2/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/chart5b.png b/icons/MVHelloKitty2/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVHelloKitty2/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/chart6b.png b/icons/MVHelloKitty2/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVHelloKitty2/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/chart7.png b/icons/MVHelloKitty2/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVHelloKitty2/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/chart7b.png b/icons/MVHelloKitty2/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVHelloKitty2/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/crypted.png b/icons/MVHelloKitty2/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVHelloKitty2/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/forward.png b/icons/MVHelloKitty2/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVHelloKitty2/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/forward_sel.png b/icons/MVHelloKitty2/forward_sel.png
new file mode 100644
index 0000000..1471bef
Binary files /dev/null and b/icons/MVHelloKitty2/forward_sel.png differ
diff --git a/icons/MVHelloKitty2/hd.png b/icons/MVHelloKitty2/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVHelloKitty2/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/message_error.png b/icons/MVHelloKitty2/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVHelloKitty2/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/message_info.png b/icons/MVHelloKitty2/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVHelloKitty2/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/message_status.png b/icons/MVHelloKitty2/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVHelloKitty2/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/message_warning.png b/icons/MVHelloKitty2/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVHelloKitty2/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/pause.png b/icons/MVHelloKitty2/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVHelloKitty2/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/pause_sel.png b/icons/MVHelloKitty2/pause_sel.png
new file mode 100644
index 0000000..26c6bf6
Binary files /dev/null and b/icons/MVHelloKitty2/pause_sel.png differ
diff --git a/icons/MVHelloKitty2/play.png b/icons/MVHelloKitty2/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVHelloKitty2/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/play_sel.png b/icons/MVHelloKitty2/play_sel.png
new file mode 100644
index 0000000..6def288
Binary files /dev/null and b/icons/MVHelloKitty2/play_sel.png differ
diff --git a/icons/MVHelloKitty2/prev.png b/icons/MVHelloKitty2/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVHelloKitty2/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/prev_sel.png b/icons/MVHelloKitty2/prev_sel.png
new file mode 100644
index 0000000..08bbb70
Binary files /dev/null and b/icons/MVHelloKitty2/prev_sel.png differ
diff --git a/icons/MVHelloKitty2/radio.png b/icons/MVHelloKitty2/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVHelloKitty2/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/recording.png b/icons/MVHelloKitty2/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVHelloKitty2/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/recording_cutted.png b/icons/MVHelloKitty2/recording_cutted.png
new file mode 100644
index 0000000..82966c9
Binary files /dev/null and b/icons/MVHelloKitty2/recording_cutted.png differ
diff --git a/icons/MVHelloKitty2/recording_cutted_cur.png b/icons/MVHelloKitty2/recording_cutted_cur.png
new file mode 100644
index 0000000..1781920
Binary files /dev/null and b/icons/MVHelloKitty2/recording_cutted_cur.png differ
diff --git a/icons/MVHelloKitty2/recording_cutted_extra.png b/icons/MVHelloKitty2/recording_cutted_extra.png
new file mode 100644
index 0000000..43499cb
Binary files /dev/null and b/icons/MVHelloKitty2/recording_cutted_extra.png differ
diff --git a/icons/MVHelloKitty2/recording_new.png b/icons/MVHelloKitty2/recording_new.png
new file mode 100644
index 0000000..a36a023
Binary files /dev/null and b/icons/MVHelloKitty2/recording_new.png differ
diff --git a/icons/MVHelloKitty2/recording_new_cur.png b/icons/MVHelloKitty2/recording_new_cur.png
new file mode 100644
index 0000000..10f7e7b
Binary files /dev/null and b/icons/MVHelloKitty2/recording_new_cur.png differ
diff --git a/icons/MVHelloKitty2/rewind.png b/icons/MVHelloKitty2/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVHelloKitty2/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/rewind_sel.png b/icons/MVHelloKitty2/rewind_sel.png
new file mode 100644
index 0000000..0ed1999
Binary files /dev/null and b/icons/MVHelloKitty2/rewind_sel.png differ
diff --git a/icons/MVHelloKitty2/sd.png b/icons/MVHelloKitty2/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVHelloKitty2/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/skip.png b/icons/MVHelloKitty2/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVHelloKitty2/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/skip_sel.png b/icons/MVHelloKitty2/skip_sel.png
new file mode 100644
index 0000000..39a7141
Binary files /dev/null and b/icons/MVHelloKitty2/skip_sel.png differ
diff --git a/icons/MVHelloKitty2/text_arrowturn.png b/icons/MVHelloKitty2/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVHelloKitty2/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_arrowturn_cur.png b/icons/MVHelloKitty2/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVHelloKitty2/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_arrowturn_sel.png b/icons/MVHelloKitty2/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVHelloKitty2/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_new.png b/icons/MVHelloKitty2/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVHelloKitty2/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_new_cur.png b/icons/MVHelloKitty2/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVHelloKitty2/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_new_sel.png b/icons/MVHelloKitty2/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVHelloKitty2/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_rec.png b/icons/MVHelloKitty2/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVHelloKitty2/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_rec_cur.png b/icons/MVHelloKitty2/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVHelloKitty2/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_rec_sel.png b/icons/MVHelloKitty2/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVHelloKitty2/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_timer_full.png b/icons/MVHelloKitty2/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVHelloKitty2/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_timer_full_cur.png b/icons/MVHelloKitty2/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVHelloKitty2/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_timer_full_sel.png b/icons/MVHelloKitty2/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVHelloKitty2/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_timer_partial.png b/icons/MVHelloKitty2/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVHelloKitty2/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_timer_partial_cur.png b/icons/MVHelloKitty2/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVHelloKitty2/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_timer_partial_sel.png b/icons/MVHelloKitty2/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVHelloKitty2/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_vps.png b/icons/MVHelloKitty2/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVHelloKitty2/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_vps_cur.png b/icons/MVHelloKitty2/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVHelloKitty2/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/text_vps_sel.png b/icons/MVHelloKitty2/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVHelloKitty2/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/timerActive.png b/icons/MVHelloKitty2/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVHelloKitty2/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/timerInactive.png b/icons/MVHelloKitty2/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVHelloKitty2/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/timerRecording.png b/icons/MVHelloKitty2/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVHelloKitty2/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/timer_full.png b/icons/MVHelloKitty2/timer_full.png
new file mode 100644
index 0000000..ec078bb
Binary files /dev/null and b/icons/MVHelloKitty2/timer_full.png differ
diff --git a/icons/MVHelloKitty2/timer_full_cur.png b/icons/MVHelloKitty2/timer_full_cur.png
new file mode 100644
index 0000000..dd16b8b
Binary files /dev/null and b/icons/MVHelloKitty2/timer_full_cur.png differ
diff --git a/icons/MVHelloKitty2/timer_partial.png b/icons/MVHelloKitty2/timer_partial.png
new file mode 100644
index 0000000..144e6ff
Binary files /dev/null and b/icons/MVHelloKitty2/timer_partial.png differ
diff --git a/icons/MVHelloKitty2/timer_partial_cur.png b/icons/MVHelloKitty2/timer_partial_cur.png
new file mode 100644
index 0000000..5247325
Binary files /dev/null and b/icons/MVHelloKitty2/timer_partial_cur.png differ
diff --git a/icons/MVHelloKitty2/topbar_timer.png b/icons/MVHelloKitty2/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVHelloKitty2/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/topbar_timerconflict_high.png b/icons/MVHelloKitty2/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVHelloKitty2/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/topbar_timerconflict_low.png b/icons/MVHelloKitty2/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVHelloKitty2/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/tv.png b/icons/MVHelloKitty2/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVHelloKitty2/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/uncrypted.png b/icons/MVHelloKitty2/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVHelloKitty2/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/unknown_asp.png b/icons/MVHelloKitty2/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVHelloKitty2/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/unknown_res.png b/icons/MVHelloKitty2/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVHelloKitty2/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVHelloKitty2/vps.png b/icons/MVHelloKitty2/vps.png
new file mode 100644
index 0000000..430ca4d
Binary files /dev/null and b/icons/MVHelloKitty2/vps.png differ
diff --git a/icons/MVHelloKitty2/vps_cur.png b/icons/MVHelloKitty2/vps_cur.png
new file mode 100644
index 0000000..2b6127b
Binary files /dev/null and b/icons/MVHelloKitty2/vps_cur.png differ
diff --git a/icons/MVIndigo/1280x720.png b/icons/MVIndigo/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVIndigo/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVIndigo/1440x1080.png b/icons/MVIndigo/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVIndigo/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVIndigo/169.png b/icons/MVIndigo/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVIndigo/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVIndigo/169w.png b/icons/MVIndigo/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVIndigo/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVIndigo/1920x1080.png b/icons/MVIndigo/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVIndigo/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVIndigo/221.png b/icons/MVIndigo/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVIndigo/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVIndigo/352x576.png b/icons/MVIndigo/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVIndigo/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVIndigo/43.png b/icons/MVIndigo/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVIndigo/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVIndigo/480x576.png b/icons/MVIndigo/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVIndigo/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVIndigo/528x576.png b/icons/MVIndigo/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVIndigo/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVIndigo/544x576.png b/icons/MVIndigo/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVIndigo/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVIndigo/704x576.png b/icons/MVIndigo/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVIndigo/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVIndigo/720x576.png b/icons/MVIndigo/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVIndigo/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVIndigo/960x720.png b/icons/MVIndigo/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVIndigo/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVIndigo/blank.png b/icons/MVIndigo/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVIndigo/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVIndigo/changroup.png b/icons/MVIndigo/changroup.png
new file mode 100644
index 0000000..de7dffa
Binary files /dev/null and b/icons/MVIndigo/changroup.png differ
diff --git a/icons/MVIndigo/chart1b.png b/icons/MVIndigo/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVIndigo/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVIndigo/chart2b.png b/icons/MVIndigo/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVIndigo/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVIndigo/chart3b.png b/icons/MVIndigo/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVIndigo/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVIndigo/chart4b.png b/icons/MVIndigo/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVIndigo/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVIndigo/chart5b.png b/icons/MVIndigo/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVIndigo/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVIndigo/chart6b.png b/icons/MVIndigo/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVIndigo/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVIndigo/chart7.png b/icons/MVIndigo/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVIndigo/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVIndigo/chart7b.png b/icons/MVIndigo/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVIndigo/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVIndigo/crypted.png b/icons/MVIndigo/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVIndigo/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVIndigo/forward.png b/icons/MVIndigo/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVIndigo/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVIndigo/forward_sel.png b/icons/MVIndigo/forward_sel.png
new file mode 100644
index 0000000..bb368e4
Binary files /dev/null and b/icons/MVIndigo/forward_sel.png differ
diff --git a/icons/MVIndigo/hd.png b/icons/MVIndigo/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVIndigo/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVIndigo/message_error.png b/icons/MVIndigo/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVIndigo/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVIndigo/message_info.png b/icons/MVIndigo/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVIndigo/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVIndigo/message_status.png b/icons/MVIndigo/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVIndigo/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVIndigo/message_warning.png b/icons/MVIndigo/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVIndigo/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVIndigo/pause.png b/icons/MVIndigo/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVIndigo/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVIndigo/pause_sel.png b/icons/MVIndigo/pause_sel.png
new file mode 100644
index 0000000..be41b54
Binary files /dev/null and b/icons/MVIndigo/pause_sel.png differ
diff --git a/icons/MVIndigo/play.png b/icons/MVIndigo/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVIndigo/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVIndigo/play_sel.png b/icons/MVIndigo/play_sel.png
new file mode 100644
index 0000000..9d266d7
Binary files /dev/null and b/icons/MVIndigo/play_sel.png differ
diff --git a/icons/MVIndigo/prev.png b/icons/MVIndigo/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVIndigo/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVIndigo/prev_sel.png b/icons/MVIndigo/prev_sel.png
new file mode 100644
index 0000000..3f3f993
Binary files /dev/null and b/icons/MVIndigo/prev_sel.png differ
diff --git a/icons/MVIndigo/radio.png b/icons/MVIndigo/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVIndigo/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVIndigo/recording.png b/icons/MVIndigo/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVIndigo/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVIndigo/recording_cutted.png b/icons/MVIndigo/recording_cutted.png
new file mode 100644
index 0000000..d542500
Binary files /dev/null and b/icons/MVIndigo/recording_cutted.png differ
diff --git a/icons/MVIndigo/recording_cutted_cur.png b/icons/MVIndigo/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVIndigo/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/recording_cutted_extra.png b/icons/MVIndigo/recording_cutted_extra.png
new file mode 100644
index 0000000..ce1669e
Binary files /dev/null and b/icons/MVIndigo/recording_cutted_extra.png differ
diff --git a/icons/MVIndigo/recording_new.png b/icons/MVIndigo/recording_new.png
new file mode 100644
index 0000000..11e3d98
Binary files /dev/null and b/icons/MVIndigo/recording_new.png differ
diff --git a/icons/MVIndigo/recording_new_cur.png b/icons/MVIndigo/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVIndigo/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/rewind.png b/icons/MVIndigo/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVIndigo/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVIndigo/rewind_sel.png b/icons/MVIndigo/rewind_sel.png
new file mode 100644
index 0000000..ce0eb03
Binary files /dev/null and b/icons/MVIndigo/rewind_sel.png differ
diff --git a/icons/MVIndigo/sd.png b/icons/MVIndigo/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVIndigo/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVIndigo/skip.png b/icons/MVIndigo/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVIndigo/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVIndigo/skip_sel.png b/icons/MVIndigo/skip_sel.png
new file mode 100644
index 0000000..5ab9325
Binary files /dev/null and b/icons/MVIndigo/skip_sel.png differ
diff --git a/icons/MVIndigo/text_arrowturn.png b/icons/MVIndigo/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVIndigo/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_arrowturn_cur.png b/icons/MVIndigo/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVIndigo/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_arrowturn_sel.png b/icons/MVIndigo/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVIndigo/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_new.png b/icons/MVIndigo/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVIndigo/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_new_cur.png b/icons/MVIndigo/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVIndigo/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_new_sel.png b/icons/MVIndigo/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVIndigo/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_rec.png b/icons/MVIndigo/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVIndigo/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_rec_cur.png b/icons/MVIndigo/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVIndigo/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_rec_sel.png b/icons/MVIndigo/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVIndigo/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_timer_full.png b/icons/MVIndigo/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVIndigo/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_timer_full_cur.png b/icons/MVIndigo/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVIndigo/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_timer_full_sel.png b/icons/MVIndigo/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVIndigo/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_timer_partial.png b/icons/MVIndigo/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVIndigo/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_timer_partial_cur.png b/icons/MVIndigo/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVIndigo/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_timer_partial_sel.png b/icons/MVIndigo/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVIndigo/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_vps.png b/icons/MVIndigo/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVIndigo/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_vps_cur.png b/icons/MVIndigo/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVIndigo/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/text_vps_sel.png b/icons/MVIndigo/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVIndigo/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVIndigo/timerActive.png b/icons/MVIndigo/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVIndigo/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVIndigo/timerInactive.png b/icons/MVIndigo/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVIndigo/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVIndigo/timerRecording.png b/icons/MVIndigo/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVIndigo/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVIndigo/timer_full.png b/icons/MVIndigo/timer_full.png
new file mode 100644
index 0000000..3436080
Binary files /dev/null and b/icons/MVIndigo/timer_full.png differ
diff --git a/icons/MVIndigo/timer_full_cur.png b/icons/MVIndigo/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVIndigo/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/timer_partial.png b/icons/MVIndigo/timer_partial.png
new file mode 100644
index 0000000..a49673d
Binary files /dev/null and b/icons/MVIndigo/timer_partial.png differ
diff --git a/icons/MVIndigo/timer_partial_cur.png b/icons/MVIndigo/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVIndigo/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVIndigo/topbar_timer.png b/icons/MVIndigo/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVIndigo/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVIndigo/topbar_timerconflict_high.png b/icons/MVIndigo/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVIndigo/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVIndigo/topbar_timerconflict_low.png b/icons/MVIndigo/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVIndigo/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVIndigo/tv.png b/icons/MVIndigo/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVIndigo/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVIndigo/uncrypted.png b/icons/MVIndigo/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVIndigo/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVIndigo/unknown_asp.png b/icons/MVIndigo/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVIndigo/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVIndigo/unknown_res.png b/icons/MVIndigo/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVIndigo/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVIndigo/vps.png b/icons/MVIndigo/vps.png
new file mode 100644
index 0000000..7ee594e
Binary files /dev/null and b/icons/MVIndigo/vps.png differ
diff --git a/icons/MVIndigo/vps_cur.png b/icons/MVIndigo/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVIndigo/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/1280x720.png b/icons/MVLightBlue/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVLightBlue/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/1440x1080.png b/icons/MVLightBlue/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVLightBlue/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/169.png b/icons/MVLightBlue/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVLightBlue/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/169w.png b/icons/MVLightBlue/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVLightBlue/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/1920x1080.png b/icons/MVLightBlue/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVLightBlue/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/221.png b/icons/MVLightBlue/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVLightBlue/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/352x576.png b/icons/MVLightBlue/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVLightBlue/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/43.png b/icons/MVLightBlue/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVLightBlue/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/480x576.png b/icons/MVLightBlue/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVLightBlue/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/528x576.png b/icons/MVLightBlue/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVLightBlue/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/544x576.png b/icons/MVLightBlue/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVLightBlue/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/704x576.png b/icons/MVLightBlue/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVLightBlue/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/720x576.png b/icons/MVLightBlue/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVLightBlue/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/960x720.png b/icons/MVLightBlue/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVLightBlue/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/blank.png b/icons/MVLightBlue/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVLightBlue/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/changroup.png b/icons/MVLightBlue/changroup.png
new file mode 100644
index 0000000..26e4ded
Binary files /dev/null and b/icons/MVLightBlue/changroup.png differ
diff --git a/icons/MVLightBlue/chart1b.png b/icons/MVLightBlue/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVLightBlue/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/chart2b.png b/icons/MVLightBlue/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVLightBlue/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/chart3b.png b/icons/MVLightBlue/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVLightBlue/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/chart4b.png b/icons/MVLightBlue/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVLightBlue/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/chart5b.png b/icons/MVLightBlue/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVLightBlue/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/chart6b.png b/icons/MVLightBlue/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVLightBlue/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/chart7.png b/icons/MVLightBlue/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVLightBlue/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/chart7b.png b/icons/MVLightBlue/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVLightBlue/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/crypted.png b/icons/MVLightBlue/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVLightBlue/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/forward.png b/icons/MVLightBlue/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVLightBlue/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/forward_sel.png b/icons/MVLightBlue/forward_sel.png
new file mode 100644
index 0000000..6735e18
Binary files /dev/null and b/icons/MVLightBlue/forward_sel.png differ
diff --git a/icons/MVLightBlue/hd.png b/icons/MVLightBlue/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVLightBlue/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/message_error.png b/icons/MVLightBlue/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVLightBlue/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/message_info.png b/icons/MVLightBlue/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVLightBlue/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/message_status.png b/icons/MVLightBlue/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVLightBlue/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/message_warning.png b/icons/MVLightBlue/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVLightBlue/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/pause.png b/icons/MVLightBlue/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVLightBlue/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/pause_sel.png b/icons/MVLightBlue/pause_sel.png
new file mode 100644
index 0000000..07f7d60
Binary files /dev/null and b/icons/MVLightBlue/pause_sel.png differ
diff --git a/icons/MVLightBlue/play.png b/icons/MVLightBlue/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVLightBlue/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/play_sel.png b/icons/MVLightBlue/play_sel.png
new file mode 100644
index 0000000..d41cdee
Binary files /dev/null and b/icons/MVLightBlue/play_sel.png differ
diff --git a/icons/MVLightBlue/prev.png b/icons/MVLightBlue/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVLightBlue/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/prev_sel.png b/icons/MVLightBlue/prev_sel.png
new file mode 100644
index 0000000..68f6e4f
Binary files /dev/null and b/icons/MVLightBlue/prev_sel.png differ
diff --git a/icons/MVLightBlue/radio.png b/icons/MVLightBlue/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVLightBlue/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/recording.png b/icons/MVLightBlue/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVLightBlue/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/recording_cutted.png b/icons/MVLightBlue/recording_cutted.png
new file mode 100644
index 0000000..dc02923
Binary files /dev/null and b/icons/MVLightBlue/recording_cutted.png differ
diff --git a/icons/MVLightBlue/recording_cutted_cur.png b/icons/MVLightBlue/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVLightBlue/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/recording_cutted_extra.png b/icons/MVLightBlue/recording_cutted_extra.png
new file mode 100644
index 0000000..03fca68
Binary files /dev/null and b/icons/MVLightBlue/recording_cutted_extra.png differ
diff --git a/icons/MVLightBlue/recording_new.png b/icons/MVLightBlue/recording_new.png
new file mode 100644
index 0000000..3831478
Binary files /dev/null and b/icons/MVLightBlue/recording_new.png differ
diff --git a/icons/MVLightBlue/recording_new_cur.png b/icons/MVLightBlue/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVLightBlue/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/rewind.png b/icons/MVLightBlue/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVLightBlue/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/rewind_sel.png b/icons/MVLightBlue/rewind_sel.png
new file mode 100644
index 0000000..69c27ce
Binary files /dev/null and b/icons/MVLightBlue/rewind_sel.png differ
diff --git a/icons/MVLightBlue/sd.png b/icons/MVLightBlue/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVLightBlue/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/skip.png b/icons/MVLightBlue/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVLightBlue/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/skip_sel.png b/icons/MVLightBlue/skip_sel.png
new file mode 100644
index 0000000..5c6540d
Binary files /dev/null and b/icons/MVLightBlue/skip_sel.png differ
diff --git a/icons/MVLightBlue/text_arrowturn.png b/icons/MVLightBlue/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVLightBlue/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_arrowturn_cur.png b/icons/MVLightBlue/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVLightBlue/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_arrowturn_sel.png b/icons/MVLightBlue/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVLightBlue/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_new.png b/icons/MVLightBlue/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVLightBlue/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_new_cur.png b/icons/MVLightBlue/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVLightBlue/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_new_sel.png b/icons/MVLightBlue/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVLightBlue/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_rec.png b/icons/MVLightBlue/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVLightBlue/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_rec_cur.png b/icons/MVLightBlue/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVLightBlue/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_rec_sel.png b/icons/MVLightBlue/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVLightBlue/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_timer_full.png b/icons/MVLightBlue/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVLightBlue/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_timer_full_cur.png b/icons/MVLightBlue/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVLightBlue/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_timer_full_sel.png b/icons/MVLightBlue/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVLightBlue/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_timer_partial.png b/icons/MVLightBlue/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVLightBlue/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_timer_partial_cur.png b/icons/MVLightBlue/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVLightBlue/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_timer_partial_sel.png b/icons/MVLightBlue/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVLightBlue/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_vps.png b/icons/MVLightBlue/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVLightBlue/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_vps_cur.png b/icons/MVLightBlue/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVLightBlue/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/text_vps_sel.png b/icons/MVLightBlue/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVLightBlue/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/timerActive.png b/icons/MVLightBlue/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVLightBlue/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/timerInactive.png b/icons/MVLightBlue/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVLightBlue/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/timerRecording.png b/icons/MVLightBlue/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVLightBlue/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/timer_full.png b/icons/MVLightBlue/timer_full.png
new file mode 100644
index 0000000..b3c5533
Binary files /dev/null and b/icons/MVLightBlue/timer_full.png differ
diff --git a/icons/MVLightBlue/timer_full_cur.png b/icons/MVLightBlue/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVLightBlue/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/timer_partial.png b/icons/MVLightBlue/timer_partial.png
new file mode 100644
index 0000000..b600bdb
Binary files /dev/null and b/icons/MVLightBlue/timer_partial.png differ
diff --git a/icons/MVLightBlue/timer_partial_cur.png b/icons/MVLightBlue/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVLightBlue/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/topbar_timer.png b/icons/MVLightBlue/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVLightBlue/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/topbar_timerconflict_high.png b/icons/MVLightBlue/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVLightBlue/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/topbar_timerconflict_low.png b/icons/MVLightBlue/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVLightBlue/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/tv.png b/icons/MVLightBlue/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVLightBlue/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/uncrypted.png b/icons/MVLightBlue/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVLightBlue/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/unknown_asp.png b/icons/MVLightBlue/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVLightBlue/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/unknown_res.png b/icons/MVLightBlue/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVLightBlue/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVLightBlue/vps.png b/icons/MVLightBlue/vps.png
new file mode 100644
index 0000000..ff540a6
Binary files /dev/null and b/icons/MVLightBlue/vps.png differ
diff --git a/icons/MVLightBlue/vps_cur.png b/icons/MVLightBlue/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVLightBlue/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/1280x720.png b/icons/MVLightGreen/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVLightGreen/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/1440x1080.png b/icons/MVLightGreen/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVLightGreen/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/169.png b/icons/MVLightGreen/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVLightGreen/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/169w.png b/icons/MVLightGreen/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVLightGreen/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/1920x1080.png b/icons/MVLightGreen/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVLightGreen/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/221.png b/icons/MVLightGreen/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVLightGreen/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/352x576.png b/icons/MVLightGreen/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVLightGreen/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/43.png b/icons/MVLightGreen/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVLightGreen/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/480x576.png b/icons/MVLightGreen/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVLightGreen/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/528x576.png b/icons/MVLightGreen/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVLightGreen/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/544x576.png b/icons/MVLightGreen/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVLightGreen/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/704x576.png b/icons/MVLightGreen/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVLightGreen/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/720x576.png b/icons/MVLightGreen/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVLightGreen/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/960x720.png b/icons/MVLightGreen/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVLightGreen/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/blank.png b/icons/MVLightGreen/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVLightGreen/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/changroup.png b/icons/MVLightGreen/changroup.png
new file mode 100644
index 0000000..ed78a46
Binary files /dev/null and b/icons/MVLightGreen/changroup.png differ
diff --git a/icons/MVLightGreen/chart1b.png b/icons/MVLightGreen/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVLightGreen/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/chart2b.png b/icons/MVLightGreen/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVLightGreen/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/chart3b.png b/icons/MVLightGreen/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVLightGreen/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/chart4b.png b/icons/MVLightGreen/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVLightGreen/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/chart5b.png b/icons/MVLightGreen/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVLightGreen/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/chart6b.png b/icons/MVLightGreen/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVLightGreen/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/chart7.png b/icons/MVLightGreen/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVLightGreen/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/chart7b.png b/icons/MVLightGreen/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVLightGreen/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/crypted.png b/icons/MVLightGreen/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVLightGreen/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/forward.png b/icons/MVLightGreen/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVLightGreen/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/forward_sel.png b/icons/MVLightGreen/forward_sel.png
new file mode 100644
index 0000000..004f3ed
Binary files /dev/null and b/icons/MVLightGreen/forward_sel.png differ
diff --git a/icons/MVLightGreen/hd.png b/icons/MVLightGreen/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVLightGreen/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/message_error.png b/icons/MVLightGreen/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVLightGreen/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/message_info.png b/icons/MVLightGreen/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVLightGreen/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/message_status.png b/icons/MVLightGreen/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVLightGreen/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/message_warning.png b/icons/MVLightGreen/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVLightGreen/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/pause.png b/icons/MVLightGreen/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVLightGreen/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/pause_sel.png b/icons/MVLightGreen/pause_sel.png
new file mode 100644
index 0000000..b1d248a
Binary files /dev/null and b/icons/MVLightGreen/pause_sel.png differ
diff --git a/icons/MVLightGreen/play.png b/icons/MVLightGreen/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVLightGreen/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/play_sel.png b/icons/MVLightGreen/play_sel.png
new file mode 100644
index 0000000..8c186e5
Binary files /dev/null and b/icons/MVLightGreen/play_sel.png differ
diff --git a/icons/MVLightGreen/prev.png b/icons/MVLightGreen/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVLightGreen/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/prev_sel.png b/icons/MVLightGreen/prev_sel.png
new file mode 100644
index 0000000..88faa98
Binary files /dev/null and b/icons/MVLightGreen/prev_sel.png differ
diff --git a/icons/MVLightGreen/radio.png b/icons/MVLightGreen/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVLightGreen/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/recording.png b/icons/MVLightGreen/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVLightGreen/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/recording_cutted.png b/icons/MVLightGreen/recording_cutted.png
new file mode 100644
index 0000000..29d6188
Binary files /dev/null and b/icons/MVLightGreen/recording_cutted.png differ
diff --git a/icons/MVLightGreen/recording_cutted_cur.png b/icons/MVLightGreen/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVLightGreen/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/recording_cutted_extra.png b/icons/MVLightGreen/recording_cutted_extra.png
new file mode 100644
index 0000000..8619668
Binary files /dev/null and b/icons/MVLightGreen/recording_cutted_extra.png differ
diff --git a/icons/MVLightGreen/recording_new.png b/icons/MVLightGreen/recording_new.png
new file mode 100644
index 0000000..2038c67
Binary files /dev/null and b/icons/MVLightGreen/recording_new.png differ
diff --git a/icons/MVLightGreen/recording_new_cur.png b/icons/MVLightGreen/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVLightGreen/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/rewind.png b/icons/MVLightGreen/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVLightGreen/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/rewind_sel.png b/icons/MVLightGreen/rewind_sel.png
new file mode 100644
index 0000000..8452ebd
Binary files /dev/null and b/icons/MVLightGreen/rewind_sel.png differ
diff --git a/icons/MVLightGreen/sd.png b/icons/MVLightGreen/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVLightGreen/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/skip.png b/icons/MVLightGreen/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVLightGreen/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/skip_sel.png b/icons/MVLightGreen/skip_sel.png
new file mode 100644
index 0000000..eb952ff
Binary files /dev/null and b/icons/MVLightGreen/skip_sel.png differ
diff --git a/icons/MVLightGreen/text_arrowturn.png b/icons/MVLightGreen/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVLightGreen/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_arrowturn_cur.png b/icons/MVLightGreen/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVLightGreen/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_arrowturn_sel.png b/icons/MVLightGreen/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVLightGreen/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_new.png b/icons/MVLightGreen/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVLightGreen/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_new_cur.png b/icons/MVLightGreen/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVLightGreen/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_new_sel.png b/icons/MVLightGreen/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVLightGreen/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_rec.png b/icons/MVLightGreen/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVLightGreen/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_rec_cur.png b/icons/MVLightGreen/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVLightGreen/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_rec_sel.png b/icons/MVLightGreen/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVLightGreen/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_timer_full.png b/icons/MVLightGreen/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVLightGreen/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_timer_full_cur.png b/icons/MVLightGreen/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVLightGreen/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_timer_full_sel.png b/icons/MVLightGreen/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVLightGreen/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_timer_partial.png b/icons/MVLightGreen/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVLightGreen/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_timer_partial_cur.png b/icons/MVLightGreen/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVLightGreen/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_timer_partial_sel.png b/icons/MVLightGreen/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVLightGreen/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_vps.png b/icons/MVLightGreen/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVLightGreen/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_vps_cur.png b/icons/MVLightGreen/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVLightGreen/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/text_vps_sel.png b/icons/MVLightGreen/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVLightGreen/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/timerActive.png b/icons/MVLightGreen/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVLightGreen/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/timerInactive.png b/icons/MVLightGreen/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVLightGreen/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/timerRecording.png b/icons/MVLightGreen/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVLightGreen/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/timer_full.png b/icons/MVLightGreen/timer_full.png
new file mode 100644
index 0000000..a638a2f
Binary files /dev/null and b/icons/MVLightGreen/timer_full.png differ
diff --git a/icons/MVLightGreen/timer_full_cur.png b/icons/MVLightGreen/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVLightGreen/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/timer_partial.png b/icons/MVLightGreen/timer_partial.png
new file mode 100644
index 0000000..5c44ecd
Binary files /dev/null and b/icons/MVLightGreen/timer_partial.png differ
diff --git a/icons/MVLightGreen/timer_partial_cur.png b/icons/MVLightGreen/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVLightGreen/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/topbar_timer.png b/icons/MVLightGreen/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVLightGreen/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/topbar_timerconflict_high.png b/icons/MVLightGreen/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVLightGreen/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/topbar_timerconflict_low.png b/icons/MVLightGreen/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVLightGreen/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/tv.png b/icons/MVLightGreen/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVLightGreen/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/uncrypted.png b/icons/MVLightGreen/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVLightGreen/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/unknown_asp.png b/icons/MVLightGreen/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVLightGreen/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/unknown_res.png b/icons/MVLightGreen/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVLightGreen/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVLightGreen/vps.png b/icons/MVLightGreen/vps.png
new file mode 100644
index 0000000..47f87b7
Binary files /dev/null and b/icons/MVLightGreen/vps.png differ
diff --git a/icons/MVLightGreen/vps_cur.png b/icons/MVLightGreen/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVLightGreen/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/1280x720.png b/icons/MVMint/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVMint/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVMint/1440x1080.png b/icons/MVMint/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVMint/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVMint/169.png b/icons/MVMint/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVMint/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVMint/169w.png b/icons/MVMint/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVMint/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVMint/1920x1080.png b/icons/MVMint/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVMint/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVMint/221.png b/icons/MVMint/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVMint/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVMint/352x576.png b/icons/MVMint/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVMint/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVMint/43.png b/icons/MVMint/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVMint/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVMint/480x576.png b/icons/MVMint/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVMint/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVMint/528x576.png b/icons/MVMint/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVMint/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVMint/544x576.png b/icons/MVMint/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVMint/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVMint/704x576.png b/icons/MVMint/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVMint/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVMint/720x576.png b/icons/MVMint/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVMint/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVMint/960x720.png b/icons/MVMint/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVMint/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVMint/blank.png b/icons/MVMint/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVMint/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVMint/changroup.png b/icons/MVMint/changroup.png
new file mode 100644
index 0000000..8e9ac25
Binary files /dev/null and b/icons/MVMint/changroup.png differ
diff --git a/icons/MVMint/chart1b.png b/icons/MVMint/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVMint/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVMint/chart2b.png b/icons/MVMint/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVMint/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVMint/chart3b.png b/icons/MVMint/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVMint/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVMint/chart4b.png b/icons/MVMint/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVMint/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVMint/chart5b.png b/icons/MVMint/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVMint/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVMint/chart6b.png b/icons/MVMint/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVMint/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVMint/chart7.png b/icons/MVMint/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVMint/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVMint/chart7b.png b/icons/MVMint/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVMint/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVMint/crypted.png b/icons/MVMint/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVMint/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVMint/forward.png b/icons/MVMint/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVMint/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVMint/forward_sel.png b/icons/MVMint/forward_sel.png
new file mode 100644
index 0000000..e5f8914
Binary files /dev/null and b/icons/MVMint/forward_sel.png differ
diff --git a/icons/MVMint/hd.png b/icons/MVMint/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVMint/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVMint/message_error.png b/icons/MVMint/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVMint/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVMint/message_info.png b/icons/MVMint/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVMint/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVMint/message_status.png b/icons/MVMint/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVMint/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVMint/message_warning.png b/icons/MVMint/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVMint/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVMint/pause.png b/icons/MVMint/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVMint/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVMint/pause_sel.png b/icons/MVMint/pause_sel.png
new file mode 100644
index 0000000..7e56a33
Binary files /dev/null and b/icons/MVMint/pause_sel.png differ
diff --git a/icons/MVMint/play.png b/icons/MVMint/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVMint/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVMint/play_sel.png b/icons/MVMint/play_sel.png
new file mode 100644
index 0000000..b383656
Binary files /dev/null and b/icons/MVMint/play_sel.png differ
diff --git a/icons/MVMint/prev.png b/icons/MVMint/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVMint/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVMint/prev_sel.png b/icons/MVMint/prev_sel.png
new file mode 100644
index 0000000..77bfcac
Binary files /dev/null and b/icons/MVMint/prev_sel.png differ
diff --git a/icons/MVMint/radio.png b/icons/MVMint/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVMint/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVMint/recording.png b/icons/MVMint/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVMint/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVMint/recording_cutted.png b/icons/MVMint/recording_cutted.png
new file mode 100644
index 0000000..1c0c391
Binary files /dev/null and b/icons/MVMint/recording_cutted.png differ
diff --git a/icons/MVMint/recording_cutted_cur.png b/icons/MVMint/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVMint/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/recording_cutted_extra.png b/icons/MVMint/recording_cutted_extra.png
new file mode 100644
index 0000000..d8ca9c1
Binary files /dev/null and b/icons/MVMint/recording_cutted_extra.png differ
diff --git a/icons/MVMint/recording_new.png b/icons/MVMint/recording_new.png
new file mode 100644
index 0000000..41fd6d1
Binary files /dev/null and b/icons/MVMint/recording_new.png differ
diff --git a/icons/MVMint/recording_new_cur.png b/icons/MVMint/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVMint/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/rewind.png b/icons/MVMint/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVMint/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVMint/rewind_sel.png b/icons/MVMint/rewind_sel.png
new file mode 100644
index 0000000..9c1fd93
Binary files /dev/null and b/icons/MVMint/rewind_sel.png differ
diff --git a/icons/MVMint/sd.png b/icons/MVMint/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVMint/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVMint/skip.png b/icons/MVMint/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVMint/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVMint/skip_sel.png b/icons/MVMint/skip_sel.png
new file mode 100644
index 0000000..6298857
Binary files /dev/null and b/icons/MVMint/skip_sel.png differ
diff --git a/icons/MVMint/text_arrowturn.png b/icons/MVMint/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVMint/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVMint/text_arrowturn_cur.png b/icons/MVMint/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVMint/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/text_arrowturn_sel.png b/icons/MVMint/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVMint/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVMint/text_new.png b/icons/MVMint/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVMint/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVMint/text_new_cur.png b/icons/MVMint/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVMint/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/text_new_sel.png b/icons/MVMint/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVMint/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVMint/text_rec.png b/icons/MVMint/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVMint/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVMint/text_rec_cur.png b/icons/MVMint/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVMint/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/text_rec_sel.png b/icons/MVMint/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVMint/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVMint/text_timer_full.png b/icons/MVMint/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVMint/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVMint/text_timer_full_cur.png b/icons/MVMint/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVMint/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/text_timer_full_sel.png b/icons/MVMint/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVMint/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVMint/text_timer_partial.png b/icons/MVMint/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVMint/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVMint/text_timer_partial_cur.png b/icons/MVMint/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVMint/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/text_timer_partial_sel.png b/icons/MVMint/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVMint/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVMint/text_vps.png b/icons/MVMint/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVMint/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVMint/text_vps_cur.png b/icons/MVMint/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVMint/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/text_vps_sel.png b/icons/MVMint/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVMint/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVMint/timerActive.png b/icons/MVMint/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVMint/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVMint/timerInactive.png b/icons/MVMint/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVMint/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVMint/timerRecording.png b/icons/MVMint/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVMint/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVMint/timer_full.png b/icons/MVMint/timer_full.png
new file mode 100644
index 0000000..acab193
Binary files /dev/null and b/icons/MVMint/timer_full.png differ
diff --git a/icons/MVMint/timer_full_cur.png b/icons/MVMint/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVMint/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/timer_partial.png b/icons/MVMint/timer_partial.png
new file mode 100644
index 0000000..2a22fe8
Binary files /dev/null and b/icons/MVMint/timer_partial.png differ
diff --git a/icons/MVMint/timer_partial_cur.png b/icons/MVMint/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVMint/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVMint/topbar_timer.png b/icons/MVMint/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVMint/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVMint/topbar_timerconflict_high.png b/icons/MVMint/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVMint/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVMint/topbar_timerconflict_low.png b/icons/MVMint/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVMint/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVMint/tv.png b/icons/MVMint/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVMint/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVMint/uncrypted.png b/icons/MVMint/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVMint/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVMint/unknown_asp.png b/icons/MVMint/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVMint/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVMint/unknown_res.png b/icons/MVMint/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVMint/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVMint/vps.png b/icons/MVMint/vps.png
new file mode 100644
index 0000000..7972d36
Binary files /dev/null and b/icons/MVMint/vps.png differ
diff --git a/icons/MVMint/vps_cur.png b/icons/MVMint/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVMint/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/1280x720.png b/icons/MVNuts/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVNuts/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVNuts/1440x1080.png b/icons/MVNuts/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVNuts/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVNuts/169.png b/icons/MVNuts/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVNuts/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVNuts/169w.png b/icons/MVNuts/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVNuts/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVNuts/1920x1080.png b/icons/MVNuts/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVNuts/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVNuts/221.png b/icons/MVNuts/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVNuts/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVNuts/352x576.png b/icons/MVNuts/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVNuts/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVNuts/43.png b/icons/MVNuts/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVNuts/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVNuts/480x576.png b/icons/MVNuts/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVNuts/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVNuts/528x576.png b/icons/MVNuts/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVNuts/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVNuts/544x576.png b/icons/MVNuts/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVNuts/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVNuts/704x576.png b/icons/MVNuts/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVNuts/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVNuts/720x576.png b/icons/MVNuts/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVNuts/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVNuts/960x720.png b/icons/MVNuts/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVNuts/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVNuts/blank.png b/icons/MVNuts/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVNuts/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVNuts/changroup.png b/icons/MVNuts/changroup.png
new file mode 100644
index 0000000..7e179f2
Binary files /dev/null and b/icons/MVNuts/changroup.png differ
diff --git a/icons/MVNuts/chart1b.png b/icons/MVNuts/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVNuts/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVNuts/chart2b.png b/icons/MVNuts/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVNuts/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVNuts/chart3b.png b/icons/MVNuts/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVNuts/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVNuts/chart4b.png b/icons/MVNuts/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVNuts/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVNuts/chart5b.png b/icons/MVNuts/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVNuts/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVNuts/chart6b.png b/icons/MVNuts/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVNuts/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVNuts/chart7.png b/icons/MVNuts/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVNuts/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVNuts/chart7b.png b/icons/MVNuts/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVNuts/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVNuts/crypted.png b/icons/MVNuts/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVNuts/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVNuts/forward.png b/icons/MVNuts/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVNuts/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVNuts/forward_sel.png b/icons/MVNuts/forward_sel.png
new file mode 100644
index 0000000..6701b91
Binary files /dev/null and b/icons/MVNuts/forward_sel.png differ
diff --git a/icons/MVNuts/hd.png b/icons/MVNuts/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVNuts/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVNuts/message_error.png b/icons/MVNuts/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVNuts/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVNuts/message_info.png b/icons/MVNuts/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVNuts/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVNuts/message_status.png b/icons/MVNuts/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVNuts/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVNuts/message_warning.png b/icons/MVNuts/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVNuts/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVNuts/pause.png b/icons/MVNuts/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVNuts/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVNuts/pause_sel.png b/icons/MVNuts/pause_sel.png
new file mode 100644
index 0000000..c5ca9cc
Binary files /dev/null and b/icons/MVNuts/pause_sel.png differ
diff --git a/icons/MVNuts/play.png b/icons/MVNuts/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVNuts/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVNuts/play_sel.png b/icons/MVNuts/play_sel.png
new file mode 100644
index 0000000..913f81c
Binary files /dev/null and b/icons/MVNuts/play_sel.png differ
diff --git a/icons/MVNuts/prev.png b/icons/MVNuts/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVNuts/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVNuts/prev_sel.png b/icons/MVNuts/prev_sel.png
new file mode 100644
index 0000000..063ffc9
Binary files /dev/null and b/icons/MVNuts/prev_sel.png differ
diff --git a/icons/MVNuts/radio.png b/icons/MVNuts/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVNuts/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVNuts/recording.png b/icons/MVNuts/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVNuts/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVNuts/recording_cutted.png b/icons/MVNuts/recording_cutted.png
new file mode 100644
index 0000000..245355b
Binary files /dev/null and b/icons/MVNuts/recording_cutted.png differ
diff --git a/icons/MVNuts/recording_cutted_cur.png b/icons/MVNuts/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVNuts/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/recording_cutted_extra.png b/icons/MVNuts/recording_cutted_extra.png
new file mode 100644
index 0000000..8f367a6
Binary files /dev/null and b/icons/MVNuts/recording_cutted_extra.png differ
diff --git a/icons/MVNuts/recording_new.png b/icons/MVNuts/recording_new.png
new file mode 100644
index 0000000..19bf094
Binary files /dev/null and b/icons/MVNuts/recording_new.png differ
diff --git a/icons/MVNuts/recording_new_cur.png b/icons/MVNuts/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVNuts/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/rewind.png b/icons/MVNuts/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVNuts/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVNuts/rewind_sel.png b/icons/MVNuts/rewind_sel.png
new file mode 100644
index 0000000..e0c94cc
Binary files /dev/null and b/icons/MVNuts/rewind_sel.png differ
diff --git a/icons/MVNuts/sd.png b/icons/MVNuts/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVNuts/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVNuts/skip.png b/icons/MVNuts/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVNuts/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVNuts/skip_sel.png b/icons/MVNuts/skip_sel.png
new file mode 100644
index 0000000..bf23fec
Binary files /dev/null and b/icons/MVNuts/skip_sel.png differ
diff --git a/icons/MVNuts/text_arrowturn.png b/icons/MVNuts/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVNuts/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_arrowturn_cur.png b/icons/MVNuts/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVNuts/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_arrowturn_sel.png b/icons/MVNuts/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVNuts/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_new.png b/icons/MVNuts/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVNuts/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_new_cur.png b/icons/MVNuts/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVNuts/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_new_sel.png b/icons/MVNuts/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVNuts/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_rec.png b/icons/MVNuts/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVNuts/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_rec_cur.png b/icons/MVNuts/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVNuts/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_rec_sel.png b/icons/MVNuts/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVNuts/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_timer_full.png b/icons/MVNuts/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVNuts/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_timer_full_cur.png b/icons/MVNuts/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVNuts/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_timer_full_sel.png b/icons/MVNuts/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVNuts/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_timer_partial.png b/icons/MVNuts/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVNuts/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_timer_partial_cur.png b/icons/MVNuts/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVNuts/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_timer_partial_sel.png b/icons/MVNuts/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVNuts/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_vps.png b/icons/MVNuts/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVNuts/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_vps_cur.png b/icons/MVNuts/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVNuts/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/text_vps_sel.png b/icons/MVNuts/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVNuts/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVNuts/timerActive.png b/icons/MVNuts/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVNuts/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVNuts/timerInactive.png b/icons/MVNuts/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVNuts/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVNuts/timerRecording.png b/icons/MVNuts/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVNuts/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVNuts/timer_full.png b/icons/MVNuts/timer_full.png
new file mode 100644
index 0000000..a8b951c
Binary files /dev/null and b/icons/MVNuts/timer_full.png differ
diff --git a/icons/MVNuts/timer_full_cur.png b/icons/MVNuts/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVNuts/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/timer_partial.png b/icons/MVNuts/timer_partial.png
new file mode 100644
index 0000000..6016a77
Binary files /dev/null and b/icons/MVNuts/timer_partial.png differ
diff --git a/icons/MVNuts/timer_partial_cur.png b/icons/MVNuts/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVNuts/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVNuts/topbar_timer.png b/icons/MVNuts/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVNuts/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVNuts/topbar_timerconflict_high.png b/icons/MVNuts/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVNuts/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVNuts/topbar_timerconflict_low.png b/icons/MVNuts/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVNuts/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVNuts/tv.png b/icons/MVNuts/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVNuts/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVNuts/uncrypted.png b/icons/MVNuts/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVNuts/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVNuts/unknown_asp.png b/icons/MVNuts/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVNuts/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVNuts/unknown_res.png b/icons/MVNuts/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVNuts/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVNuts/vps.png b/icons/MVNuts/vps.png
new file mode 100644
index 0000000..de85afe
Binary files /dev/null and b/icons/MVNuts/vps.png differ
diff --git a/icons/MVNuts/vps_cur.png b/icons/MVNuts/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVNuts/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/1280x720.png b/icons/MVOlive/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVOlive/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVOlive/1440x1080.png b/icons/MVOlive/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVOlive/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVOlive/169.png b/icons/MVOlive/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVOlive/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVOlive/169w.png b/icons/MVOlive/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVOlive/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVOlive/1920x1080.png b/icons/MVOlive/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVOlive/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVOlive/221.png b/icons/MVOlive/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVOlive/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVOlive/352x576.png b/icons/MVOlive/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVOlive/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVOlive/43.png b/icons/MVOlive/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVOlive/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVOlive/480x576.png b/icons/MVOlive/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVOlive/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVOlive/528x576.png b/icons/MVOlive/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVOlive/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVOlive/544x576.png b/icons/MVOlive/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVOlive/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVOlive/704x576.png b/icons/MVOlive/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVOlive/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVOlive/720x576.png b/icons/MVOlive/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVOlive/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVOlive/960x720.png b/icons/MVOlive/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVOlive/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVOlive/blank.png b/icons/MVOlive/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVOlive/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVOlive/changroup.png b/icons/MVOlive/changroup.png
new file mode 100644
index 0000000..50a28fc
Binary files /dev/null and b/icons/MVOlive/changroup.png differ
diff --git a/icons/MVOlive/chart1b.png b/icons/MVOlive/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVOlive/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVOlive/chart2b.png b/icons/MVOlive/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVOlive/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVOlive/chart3b.png b/icons/MVOlive/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVOlive/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVOlive/chart4b.png b/icons/MVOlive/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVOlive/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVOlive/chart5b.png b/icons/MVOlive/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVOlive/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVOlive/chart6b.png b/icons/MVOlive/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVOlive/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVOlive/chart7.png b/icons/MVOlive/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVOlive/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVOlive/chart7b.png b/icons/MVOlive/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVOlive/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVOlive/crypted.png b/icons/MVOlive/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVOlive/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVOlive/forward.png b/icons/MVOlive/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVOlive/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVOlive/forward_sel.png b/icons/MVOlive/forward_sel.png
new file mode 100644
index 0000000..e93f662
Binary files /dev/null and b/icons/MVOlive/forward_sel.png differ
diff --git a/icons/MVOlive/hd.png b/icons/MVOlive/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVOlive/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVOlive/message_error.png b/icons/MVOlive/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVOlive/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVOlive/message_info.png b/icons/MVOlive/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVOlive/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVOlive/message_status.png b/icons/MVOlive/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVOlive/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVOlive/message_warning.png b/icons/MVOlive/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVOlive/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVOlive/pause.png b/icons/MVOlive/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVOlive/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVOlive/pause_sel.png b/icons/MVOlive/pause_sel.png
new file mode 100644
index 0000000..6ac95c1
Binary files /dev/null and b/icons/MVOlive/pause_sel.png differ
diff --git a/icons/MVOlive/play.png b/icons/MVOlive/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVOlive/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVOlive/play_sel.png b/icons/MVOlive/play_sel.png
new file mode 100644
index 0000000..7aecda3
Binary files /dev/null and b/icons/MVOlive/play_sel.png differ
diff --git a/icons/MVOlive/prev.png b/icons/MVOlive/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVOlive/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVOlive/prev_sel.png b/icons/MVOlive/prev_sel.png
new file mode 100644
index 0000000..169ca42
Binary files /dev/null and b/icons/MVOlive/prev_sel.png differ
diff --git a/icons/MVOlive/radio.png b/icons/MVOlive/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVOlive/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVOlive/recording.png b/icons/MVOlive/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVOlive/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVOlive/recording_cutted.png b/icons/MVOlive/recording_cutted.png
new file mode 100644
index 0000000..4f61f53
Binary files /dev/null and b/icons/MVOlive/recording_cutted.png differ
diff --git a/icons/MVOlive/recording_cutted_cur.png b/icons/MVOlive/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVOlive/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/recording_cutted_extra.png b/icons/MVOlive/recording_cutted_extra.png
new file mode 100644
index 0000000..dcb5823
Binary files /dev/null and b/icons/MVOlive/recording_cutted_extra.png differ
diff --git a/icons/MVOlive/recording_new.png b/icons/MVOlive/recording_new.png
new file mode 100644
index 0000000..04899dd
Binary files /dev/null and b/icons/MVOlive/recording_new.png differ
diff --git a/icons/MVOlive/recording_new_cur.png b/icons/MVOlive/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVOlive/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/rewind.png b/icons/MVOlive/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVOlive/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVOlive/rewind_sel.png b/icons/MVOlive/rewind_sel.png
new file mode 100644
index 0000000..5bbddf9
Binary files /dev/null and b/icons/MVOlive/rewind_sel.png differ
diff --git a/icons/MVOlive/sd.png b/icons/MVOlive/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVOlive/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVOlive/skip.png b/icons/MVOlive/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVOlive/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVOlive/skip_sel.png b/icons/MVOlive/skip_sel.png
new file mode 100644
index 0000000..527db9f
Binary files /dev/null and b/icons/MVOlive/skip_sel.png differ
diff --git a/icons/MVOlive/text_arrowturn.png b/icons/MVOlive/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVOlive/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_arrowturn_cur.png b/icons/MVOlive/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVOlive/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_arrowturn_sel.png b/icons/MVOlive/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVOlive/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_new.png b/icons/MVOlive/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVOlive/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_new_cur.png b/icons/MVOlive/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVOlive/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_new_sel.png b/icons/MVOlive/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVOlive/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_rec.png b/icons/MVOlive/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVOlive/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_rec_cur.png b/icons/MVOlive/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVOlive/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_rec_sel.png b/icons/MVOlive/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVOlive/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_timer_full.png b/icons/MVOlive/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVOlive/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_timer_full_cur.png b/icons/MVOlive/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVOlive/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_timer_full_sel.png b/icons/MVOlive/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVOlive/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_timer_partial.png b/icons/MVOlive/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVOlive/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_timer_partial_cur.png b/icons/MVOlive/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVOlive/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_timer_partial_sel.png b/icons/MVOlive/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVOlive/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_vps.png b/icons/MVOlive/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVOlive/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_vps_cur.png b/icons/MVOlive/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVOlive/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/text_vps_sel.png b/icons/MVOlive/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVOlive/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVOlive/timerActive.png b/icons/MVOlive/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVOlive/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVOlive/timerInactive.png b/icons/MVOlive/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVOlive/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVOlive/timerRecording.png b/icons/MVOlive/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVOlive/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVOlive/timer_full.png b/icons/MVOlive/timer_full.png
new file mode 100644
index 0000000..b68bac3
Binary files /dev/null and b/icons/MVOlive/timer_full.png differ
diff --git a/icons/MVOlive/timer_full_cur.png b/icons/MVOlive/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVOlive/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/timer_partial.png b/icons/MVOlive/timer_partial.png
new file mode 100644
index 0000000..80da049
Binary files /dev/null and b/icons/MVOlive/timer_partial.png differ
diff --git a/icons/MVOlive/timer_partial_cur.png b/icons/MVOlive/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVOlive/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVOlive/topbar_timer.png b/icons/MVOlive/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVOlive/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVOlive/topbar_timerconflict_high.png b/icons/MVOlive/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVOlive/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVOlive/topbar_timerconflict_low.png b/icons/MVOlive/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVOlive/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVOlive/tv.png b/icons/MVOlive/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVOlive/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVOlive/uncrypted.png b/icons/MVOlive/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVOlive/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVOlive/unknown_asp.png b/icons/MVOlive/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVOlive/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVOlive/unknown_res.png b/icons/MVOlive/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVOlive/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVOlive/vps.png b/icons/MVOlive/vps.png
new file mode 100644
index 0000000..c968ff2
Binary files /dev/null and b/icons/MVOlive/vps.png differ
diff --git a/icons/MVOlive/vps_cur.png b/icons/MVOlive/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVOlive/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/1280x720.png b/icons/MVOrange/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVOrange/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVOrange/1440x1080.png b/icons/MVOrange/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVOrange/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVOrange/169.png b/icons/MVOrange/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVOrange/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVOrange/169w.png b/icons/MVOrange/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVOrange/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVOrange/1920x1080.png b/icons/MVOrange/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVOrange/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVOrange/221.png b/icons/MVOrange/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVOrange/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVOrange/352x576.png b/icons/MVOrange/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVOrange/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVOrange/43.png b/icons/MVOrange/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVOrange/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVOrange/480x576.png b/icons/MVOrange/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVOrange/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVOrange/528x576.png b/icons/MVOrange/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVOrange/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVOrange/544x576.png b/icons/MVOrange/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVOrange/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVOrange/704x576.png b/icons/MVOrange/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVOrange/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVOrange/720x576.png b/icons/MVOrange/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVOrange/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVOrange/960x720.png b/icons/MVOrange/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVOrange/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVOrange/blank.png b/icons/MVOrange/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVOrange/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVOrange/changroup.png b/icons/MVOrange/changroup.png
new file mode 100644
index 0000000..987e2c5
Binary files /dev/null and b/icons/MVOrange/changroup.png differ
diff --git a/icons/MVOrange/chart1b.png b/icons/MVOrange/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVOrange/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVOrange/chart2b.png b/icons/MVOrange/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVOrange/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVOrange/chart3b.png b/icons/MVOrange/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVOrange/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVOrange/chart4b.png b/icons/MVOrange/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVOrange/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVOrange/chart5b.png b/icons/MVOrange/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVOrange/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVOrange/chart6b.png b/icons/MVOrange/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVOrange/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVOrange/chart7.png b/icons/MVOrange/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVOrange/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVOrange/chart7b.png b/icons/MVOrange/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVOrange/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVOrange/crypted.png b/icons/MVOrange/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVOrange/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVOrange/forward.png b/icons/MVOrange/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVOrange/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVOrange/forward_sel.png b/icons/MVOrange/forward_sel.png
new file mode 100644
index 0000000..45711a1
Binary files /dev/null and b/icons/MVOrange/forward_sel.png differ
diff --git a/icons/MVOrange/hd.png b/icons/MVOrange/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVOrange/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVOrange/message_error.png b/icons/MVOrange/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVOrange/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVOrange/message_info.png b/icons/MVOrange/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVOrange/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVOrange/message_status.png b/icons/MVOrange/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVOrange/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVOrange/message_warning.png b/icons/MVOrange/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVOrange/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVOrange/pause.png b/icons/MVOrange/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVOrange/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVOrange/pause_sel.png b/icons/MVOrange/pause_sel.png
new file mode 100644
index 0000000..42f11b3
Binary files /dev/null and b/icons/MVOrange/pause_sel.png differ
diff --git a/icons/MVOrange/play.png b/icons/MVOrange/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVOrange/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVOrange/play_sel.png b/icons/MVOrange/play_sel.png
new file mode 100644
index 0000000..e00cce6
Binary files /dev/null and b/icons/MVOrange/play_sel.png differ
diff --git a/icons/MVOrange/prev.png b/icons/MVOrange/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVOrange/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVOrange/prev_sel.png b/icons/MVOrange/prev_sel.png
new file mode 100644
index 0000000..3b70d36
Binary files /dev/null and b/icons/MVOrange/prev_sel.png differ
diff --git a/icons/MVOrange/radio.png b/icons/MVOrange/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVOrange/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVOrange/recording.png b/icons/MVOrange/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVOrange/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVOrange/recording_cutted.png b/icons/MVOrange/recording_cutted.png
new file mode 100644
index 0000000..c89ff9f
Binary files /dev/null and b/icons/MVOrange/recording_cutted.png differ
diff --git a/icons/MVOrange/recording_cutted_cur.png b/icons/MVOrange/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVOrange/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/recording_cutted_extra.png b/icons/MVOrange/recording_cutted_extra.png
new file mode 100644
index 0000000..ed681d7
Binary files /dev/null and b/icons/MVOrange/recording_cutted_extra.png differ
diff --git a/icons/MVOrange/recording_new.png b/icons/MVOrange/recording_new.png
new file mode 100644
index 0000000..f9def4b
Binary files /dev/null and b/icons/MVOrange/recording_new.png differ
diff --git a/icons/MVOrange/recording_new_cur.png b/icons/MVOrange/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVOrange/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/rewind.png b/icons/MVOrange/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVOrange/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVOrange/rewind_sel.png b/icons/MVOrange/rewind_sel.png
new file mode 100644
index 0000000..330d2fd
Binary files /dev/null and b/icons/MVOrange/rewind_sel.png differ
diff --git a/icons/MVOrange/sd.png b/icons/MVOrange/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVOrange/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVOrange/skip.png b/icons/MVOrange/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVOrange/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVOrange/skip_sel.png b/icons/MVOrange/skip_sel.png
new file mode 100644
index 0000000..9e06793
Binary files /dev/null and b/icons/MVOrange/skip_sel.png differ
diff --git a/icons/MVOrange/text_arrowturn.png b/icons/MVOrange/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVOrange/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_arrowturn_cur.png b/icons/MVOrange/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVOrange/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_arrowturn_sel.png b/icons/MVOrange/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVOrange/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_new.png b/icons/MVOrange/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVOrange/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_new_cur.png b/icons/MVOrange/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVOrange/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_new_sel.png b/icons/MVOrange/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVOrange/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_rec.png b/icons/MVOrange/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVOrange/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_rec_cur.png b/icons/MVOrange/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVOrange/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_rec_sel.png b/icons/MVOrange/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVOrange/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_timer_full.png b/icons/MVOrange/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVOrange/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_timer_full_cur.png b/icons/MVOrange/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVOrange/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_timer_full_sel.png b/icons/MVOrange/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVOrange/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_timer_partial.png b/icons/MVOrange/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVOrange/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_timer_partial_cur.png b/icons/MVOrange/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVOrange/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_timer_partial_sel.png b/icons/MVOrange/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVOrange/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_vps.png b/icons/MVOrange/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVOrange/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_vps_cur.png b/icons/MVOrange/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVOrange/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/text_vps_sel.png b/icons/MVOrange/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVOrange/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVOrange/timerActive.png b/icons/MVOrange/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVOrange/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVOrange/timerInactive.png b/icons/MVOrange/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVOrange/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVOrange/timerRecording.png b/icons/MVOrange/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVOrange/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVOrange/timer_full.png b/icons/MVOrange/timer_full.png
new file mode 100644
index 0000000..d7c54a8
Binary files /dev/null and b/icons/MVOrange/timer_full.png differ
diff --git a/icons/MVOrange/timer_full_cur.png b/icons/MVOrange/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVOrange/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/timer_partial.png b/icons/MVOrange/timer_partial.png
new file mode 100644
index 0000000..fd7363e
Binary files /dev/null and b/icons/MVOrange/timer_partial.png differ
diff --git a/icons/MVOrange/timer_partial_cur.png b/icons/MVOrange/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVOrange/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVOrange/topbar_timer.png b/icons/MVOrange/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVOrange/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVOrange/topbar_timerconflict_high.png b/icons/MVOrange/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVOrange/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVOrange/topbar_timerconflict_low.png b/icons/MVOrange/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVOrange/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVOrange/tv.png b/icons/MVOrange/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVOrange/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVOrange/uncrypted.png b/icons/MVOrange/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVOrange/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVOrange/unknown_asp.png b/icons/MVOrange/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVOrange/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVOrange/unknown_res.png b/icons/MVOrange/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVOrange/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVOrange/vps.png b/icons/MVOrange/vps.png
new file mode 100644
index 0000000..b527705
Binary files /dev/null and b/icons/MVOrange/vps.png differ
diff --git a/icons/MVOrange/vps_cur.png b/icons/MVOrange/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVOrange/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/1280x720.png b/icons/MVPflaume/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVPflaume/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVPflaume/1440x1080.png b/icons/MVPflaume/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVPflaume/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVPflaume/169.png b/icons/MVPflaume/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVPflaume/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVPflaume/169w.png b/icons/MVPflaume/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVPflaume/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVPflaume/1920x1080.png b/icons/MVPflaume/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVPflaume/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVPflaume/221.png b/icons/MVPflaume/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVPflaume/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVPflaume/352x576.png b/icons/MVPflaume/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVPflaume/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVPflaume/43.png b/icons/MVPflaume/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVPflaume/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVPflaume/480x576.png b/icons/MVPflaume/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVPflaume/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVPflaume/528x576.png b/icons/MVPflaume/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVPflaume/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVPflaume/544x576.png b/icons/MVPflaume/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVPflaume/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVPflaume/704x576.png b/icons/MVPflaume/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVPflaume/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVPflaume/720x576.png b/icons/MVPflaume/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVPflaume/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVPflaume/960x720.png b/icons/MVPflaume/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVPflaume/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVPflaume/blank.png b/icons/MVPflaume/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVPflaume/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVPflaume/changroup.png b/icons/MVPflaume/changroup.png
new file mode 100644
index 0000000..6390c73
Binary files /dev/null and b/icons/MVPflaume/changroup.png differ
diff --git a/icons/MVPflaume/chart1b.png b/icons/MVPflaume/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVPflaume/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVPflaume/chart2b.png b/icons/MVPflaume/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVPflaume/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVPflaume/chart3b.png b/icons/MVPflaume/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVPflaume/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVPflaume/chart4b.png b/icons/MVPflaume/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVPflaume/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVPflaume/chart5b.png b/icons/MVPflaume/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVPflaume/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVPflaume/chart6b.png b/icons/MVPflaume/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVPflaume/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVPflaume/chart7.png b/icons/MVPflaume/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVPflaume/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVPflaume/chart7b.png b/icons/MVPflaume/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVPflaume/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVPflaume/crypted.png b/icons/MVPflaume/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVPflaume/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVPflaume/forward.png b/icons/MVPflaume/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVPflaume/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVPflaume/forward_sel.png b/icons/MVPflaume/forward_sel.png
new file mode 100644
index 0000000..af0e81e
Binary files /dev/null and b/icons/MVPflaume/forward_sel.png differ
diff --git a/icons/MVPflaume/hd.png b/icons/MVPflaume/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVPflaume/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVPflaume/message_error.png b/icons/MVPflaume/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVPflaume/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVPflaume/message_info.png b/icons/MVPflaume/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVPflaume/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVPflaume/message_status.png b/icons/MVPflaume/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVPflaume/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVPflaume/message_warning.png b/icons/MVPflaume/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVPflaume/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVPflaume/pause.png b/icons/MVPflaume/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVPflaume/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVPflaume/pause_sel.png b/icons/MVPflaume/pause_sel.png
new file mode 100644
index 0000000..ba3cc9c
Binary files /dev/null and b/icons/MVPflaume/pause_sel.png differ
diff --git a/icons/MVPflaume/play.png b/icons/MVPflaume/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVPflaume/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVPflaume/play_sel.png b/icons/MVPflaume/play_sel.png
new file mode 100644
index 0000000..b7e0af6
Binary files /dev/null and b/icons/MVPflaume/play_sel.png differ
diff --git a/icons/MVPflaume/prev.png b/icons/MVPflaume/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVPflaume/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVPflaume/prev_sel.png b/icons/MVPflaume/prev_sel.png
new file mode 100644
index 0000000..548c7cb
Binary files /dev/null and b/icons/MVPflaume/prev_sel.png differ
diff --git a/icons/MVPflaume/radio.png b/icons/MVPflaume/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVPflaume/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVPflaume/recording.png b/icons/MVPflaume/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVPflaume/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVPflaume/recording_cutted.png b/icons/MVPflaume/recording_cutted.png
new file mode 100644
index 0000000..e87d2bd
Binary files /dev/null and b/icons/MVPflaume/recording_cutted.png differ
diff --git a/icons/MVPflaume/recording_cutted_cur.png b/icons/MVPflaume/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVPflaume/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/recording_cutted_extra.png b/icons/MVPflaume/recording_cutted_extra.png
new file mode 100644
index 0000000..c734de2
Binary files /dev/null and b/icons/MVPflaume/recording_cutted_extra.png differ
diff --git a/icons/MVPflaume/recording_new.png b/icons/MVPflaume/recording_new.png
new file mode 100644
index 0000000..ee2738a
Binary files /dev/null and b/icons/MVPflaume/recording_new.png differ
diff --git a/icons/MVPflaume/recording_new_cur.png b/icons/MVPflaume/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVPflaume/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/rewind.png b/icons/MVPflaume/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVPflaume/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVPflaume/rewind_sel.png b/icons/MVPflaume/rewind_sel.png
new file mode 100644
index 0000000..558e4b4
Binary files /dev/null and b/icons/MVPflaume/rewind_sel.png differ
diff --git a/icons/MVPflaume/sd.png b/icons/MVPflaume/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVPflaume/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVPflaume/skip.png b/icons/MVPflaume/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVPflaume/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVPflaume/skip_sel.png b/icons/MVPflaume/skip_sel.png
new file mode 100644
index 0000000..c689d2c
Binary files /dev/null and b/icons/MVPflaume/skip_sel.png differ
diff --git a/icons/MVPflaume/text_arrowturn.png b/icons/MVPflaume/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVPflaume/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_arrowturn_cur.png b/icons/MVPflaume/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVPflaume/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_arrowturn_sel.png b/icons/MVPflaume/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVPflaume/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_new.png b/icons/MVPflaume/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVPflaume/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_new_cur.png b/icons/MVPflaume/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVPflaume/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_new_sel.png b/icons/MVPflaume/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVPflaume/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_rec.png b/icons/MVPflaume/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVPflaume/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_rec_cur.png b/icons/MVPflaume/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVPflaume/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_rec_sel.png b/icons/MVPflaume/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVPflaume/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_timer_full.png b/icons/MVPflaume/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVPflaume/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_timer_full_cur.png b/icons/MVPflaume/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVPflaume/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_timer_full_sel.png b/icons/MVPflaume/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVPflaume/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_timer_partial.png b/icons/MVPflaume/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVPflaume/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_timer_partial_cur.png b/icons/MVPflaume/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVPflaume/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_timer_partial_sel.png b/icons/MVPflaume/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVPflaume/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_vps.png b/icons/MVPflaume/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVPflaume/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_vps_cur.png b/icons/MVPflaume/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVPflaume/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/text_vps_sel.png b/icons/MVPflaume/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVPflaume/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVPflaume/timerActive.png b/icons/MVPflaume/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVPflaume/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVPflaume/timerInactive.png b/icons/MVPflaume/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVPflaume/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVPflaume/timerRecording.png b/icons/MVPflaume/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVPflaume/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVPflaume/timer_full.png b/icons/MVPflaume/timer_full.png
new file mode 100644
index 0000000..2ca5481
Binary files /dev/null and b/icons/MVPflaume/timer_full.png differ
diff --git a/icons/MVPflaume/timer_full_cur.png b/icons/MVPflaume/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVPflaume/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/timer_partial.png b/icons/MVPflaume/timer_partial.png
new file mode 100644
index 0000000..457a859
Binary files /dev/null and b/icons/MVPflaume/timer_partial.png differ
diff --git a/icons/MVPflaume/timer_partial_cur.png b/icons/MVPflaume/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVPflaume/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVPflaume/topbar_timer.png b/icons/MVPflaume/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVPflaume/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVPflaume/topbar_timerconflict_high.png b/icons/MVPflaume/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVPflaume/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVPflaume/topbar_timerconflict_low.png b/icons/MVPflaume/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVPflaume/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVPflaume/tv.png b/icons/MVPflaume/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVPflaume/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVPflaume/uncrypted.png b/icons/MVPflaume/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVPflaume/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVPflaume/unknown_asp.png b/icons/MVPflaume/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVPflaume/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVPflaume/unknown_res.png b/icons/MVPflaume/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVPflaume/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVPflaume/vps.png b/icons/MVPflaume/vps.png
new file mode 100644
index 0000000..12e5733
Binary files /dev/null and b/icons/MVPflaume/vps.png differ
diff --git a/icons/MVPflaume/vps_cur.png b/icons/MVPflaume/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVPflaume/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/1280x720.png b/icons/MVPumpkin/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVPumpkin/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/1440x1080.png b/icons/MVPumpkin/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVPumpkin/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/169.png b/icons/MVPumpkin/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVPumpkin/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/169w.png b/icons/MVPumpkin/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVPumpkin/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/1920x1080.png b/icons/MVPumpkin/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVPumpkin/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/221.png b/icons/MVPumpkin/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVPumpkin/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/352x576.png b/icons/MVPumpkin/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVPumpkin/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/43.png b/icons/MVPumpkin/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVPumpkin/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/480x576.png b/icons/MVPumpkin/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVPumpkin/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/528x576.png b/icons/MVPumpkin/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVPumpkin/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/544x576.png b/icons/MVPumpkin/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVPumpkin/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/704x576.png b/icons/MVPumpkin/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVPumpkin/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/720x576.png b/icons/MVPumpkin/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVPumpkin/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/960x720.png b/icons/MVPumpkin/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVPumpkin/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/blank.png b/icons/MVPumpkin/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVPumpkin/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/changroup.png b/icons/MVPumpkin/changroup.png
new file mode 100644
index 0000000..987e2c5
Binary files /dev/null and b/icons/MVPumpkin/changroup.png differ
diff --git a/icons/MVPumpkin/chart1b.png b/icons/MVPumpkin/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVPumpkin/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/chart2b.png b/icons/MVPumpkin/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVPumpkin/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/chart3b.png b/icons/MVPumpkin/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVPumpkin/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/chart4b.png b/icons/MVPumpkin/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVPumpkin/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/chart5b.png b/icons/MVPumpkin/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVPumpkin/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/chart6b.png b/icons/MVPumpkin/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVPumpkin/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/chart7.png b/icons/MVPumpkin/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVPumpkin/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/chart7b.png b/icons/MVPumpkin/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVPumpkin/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/crypted.png b/icons/MVPumpkin/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVPumpkin/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/forward.png b/icons/MVPumpkin/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVPumpkin/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/forward_sel.png b/icons/MVPumpkin/forward_sel.png
new file mode 100644
index 0000000..45711a1
Binary files /dev/null and b/icons/MVPumpkin/forward_sel.png differ
diff --git a/icons/MVPumpkin/hd.png b/icons/MVPumpkin/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVPumpkin/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/message_error.png b/icons/MVPumpkin/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVPumpkin/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/message_info.png b/icons/MVPumpkin/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVPumpkin/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/message_status.png b/icons/MVPumpkin/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVPumpkin/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/message_warning.png b/icons/MVPumpkin/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVPumpkin/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/pause.png b/icons/MVPumpkin/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVPumpkin/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/pause_sel.png b/icons/MVPumpkin/pause_sel.png
new file mode 100644
index 0000000..42f11b3
Binary files /dev/null and b/icons/MVPumpkin/pause_sel.png differ
diff --git a/icons/MVPumpkin/play.png b/icons/MVPumpkin/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVPumpkin/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/play_sel.png b/icons/MVPumpkin/play_sel.png
new file mode 100644
index 0000000..e00cce6
Binary files /dev/null and b/icons/MVPumpkin/play_sel.png differ
diff --git a/icons/MVPumpkin/prev.png b/icons/MVPumpkin/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVPumpkin/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/prev_sel.png b/icons/MVPumpkin/prev_sel.png
new file mode 100644
index 0000000..3b70d36
Binary files /dev/null and b/icons/MVPumpkin/prev_sel.png differ
diff --git a/icons/MVPumpkin/radio.png b/icons/MVPumpkin/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVPumpkin/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/recording.png b/icons/MVPumpkin/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVPumpkin/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/recording_cutted.png b/icons/MVPumpkin/recording_cutted.png
new file mode 100644
index 0000000..c89ff9f
Binary files /dev/null and b/icons/MVPumpkin/recording_cutted.png differ
diff --git a/icons/MVPumpkin/recording_cutted_cur.png b/icons/MVPumpkin/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVPumpkin/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/recording_cutted_extra.png b/icons/MVPumpkin/recording_cutted_extra.png
new file mode 100644
index 0000000..ed681d7
Binary files /dev/null and b/icons/MVPumpkin/recording_cutted_extra.png differ
diff --git a/icons/MVPumpkin/recording_new.png b/icons/MVPumpkin/recording_new.png
new file mode 100644
index 0000000..f9def4b
Binary files /dev/null and b/icons/MVPumpkin/recording_new.png differ
diff --git a/icons/MVPumpkin/recording_new_cur.png b/icons/MVPumpkin/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVPumpkin/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/rewind.png b/icons/MVPumpkin/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVPumpkin/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/rewind_sel.png b/icons/MVPumpkin/rewind_sel.png
new file mode 100644
index 0000000..330d2fd
Binary files /dev/null and b/icons/MVPumpkin/rewind_sel.png differ
diff --git a/icons/MVPumpkin/sd.png b/icons/MVPumpkin/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVPumpkin/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/skip.png b/icons/MVPumpkin/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVPumpkin/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/skip_sel.png b/icons/MVPumpkin/skip_sel.png
new file mode 100644
index 0000000..9e06793
Binary files /dev/null and b/icons/MVPumpkin/skip_sel.png differ
diff --git a/icons/MVPumpkin/text_arrowturn.png b/icons/MVPumpkin/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVPumpkin/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_arrowturn_cur.png b/icons/MVPumpkin/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVPumpkin/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_arrowturn_sel.png b/icons/MVPumpkin/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVPumpkin/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_new.png b/icons/MVPumpkin/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVPumpkin/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_new_cur.png b/icons/MVPumpkin/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVPumpkin/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_new_sel.png b/icons/MVPumpkin/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVPumpkin/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_rec.png b/icons/MVPumpkin/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVPumpkin/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_rec_cur.png b/icons/MVPumpkin/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVPumpkin/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_rec_sel.png b/icons/MVPumpkin/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVPumpkin/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_timer_full.png b/icons/MVPumpkin/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVPumpkin/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_timer_full_cur.png b/icons/MVPumpkin/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVPumpkin/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_timer_full_sel.png b/icons/MVPumpkin/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVPumpkin/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_timer_partial.png b/icons/MVPumpkin/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVPumpkin/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_timer_partial_cur.png b/icons/MVPumpkin/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVPumpkin/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_timer_partial_sel.png b/icons/MVPumpkin/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVPumpkin/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_vps.png b/icons/MVPumpkin/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVPumpkin/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_vps_cur.png b/icons/MVPumpkin/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVPumpkin/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/text_vps_sel.png b/icons/MVPumpkin/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVPumpkin/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/timerActive.png b/icons/MVPumpkin/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVPumpkin/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/timerInactive.png b/icons/MVPumpkin/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVPumpkin/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/timerRecording.png b/icons/MVPumpkin/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVPumpkin/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/timer_full.png b/icons/MVPumpkin/timer_full.png
new file mode 100644
index 0000000..d7c54a8
Binary files /dev/null and b/icons/MVPumpkin/timer_full.png differ
diff --git a/icons/MVPumpkin/timer_full_cur.png b/icons/MVPumpkin/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVPumpkin/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/timer_partial.png b/icons/MVPumpkin/timer_partial.png
new file mode 100644
index 0000000..fd7363e
Binary files /dev/null and b/icons/MVPumpkin/timer_partial.png differ
diff --git a/icons/MVPumpkin/timer_partial_cur.png b/icons/MVPumpkin/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVPumpkin/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/topbar_timer.png b/icons/MVPumpkin/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVPumpkin/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/topbar_timerconflict_high.png b/icons/MVPumpkin/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVPumpkin/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/topbar_timerconflict_low.png b/icons/MVPumpkin/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVPumpkin/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/tv.png b/icons/MVPumpkin/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVPumpkin/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/uncrypted.png b/icons/MVPumpkin/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVPumpkin/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/unknown_asp.png b/icons/MVPumpkin/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVPumpkin/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/unknown_res.png b/icons/MVPumpkin/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVPumpkin/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVPumpkin/vps.png b/icons/MVPumpkin/vps.png
new file mode 100644
index 0000000..b527705
Binary files /dev/null and b/icons/MVPumpkin/vps.png differ
diff --git a/icons/MVPumpkin/vps_cur.png b/icons/MVPumpkin/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVPumpkin/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/1280x720.png b/icons/MVPurple/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVPurple/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVPurple/1440x1080.png b/icons/MVPurple/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVPurple/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVPurple/169.png b/icons/MVPurple/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVPurple/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVPurple/169w.png b/icons/MVPurple/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVPurple/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVPurple/1920x1080.png b/icons/MVPurple/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVPurple/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVPurple/221.png b/icons/MVPurple/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVPurple/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVPurple/352x576.png b/icons/MVPurple/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVPurple/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVPurple/43.png b/icons/MVPurple/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVPurple/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVPurple/480x576.png b/icons/MVPurple/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVPurple/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVPurple/528x576.png b/icons/MVPurple/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVPurple/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVPurple/544x576.png b/icons/MVPurple/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVPurple/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVPurple/704x576.png b/icons/MVPurple/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVPurple/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVPurple/720x576.png b/icons/MVPurple/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVPurple/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVPurple/960x720.png b/icons/MVPurple/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVPurple/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVPurple/blank.png b/icons/MVPurple/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVPurple/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVPurple/changroup.png b/icons/MVPurple/changroup.png
new file mode 100644
index 0000000..4856e6e
Binary files /dev/null and b/icons/MVPurple/changroup.png differ
diff --git a/icons/MVPurple/chart1b.png b/icons/MVPurple/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVPurple/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVPurple/chart2b.png b/icons/MVPurple/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVPurple/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVPurple/chart3b.png b/icons/MVPurple/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVPurple/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVPurple/chart4b.png b/icons/MVPurple/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVPurple/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVPurple/chart5b.png b/icons/MVPurple/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVPurple/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVPurple/chart6b.png b/icons/MVPurple/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVPurple/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVPurple/chart7.png b/icons/MVPurple/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVPurple/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVPurple/chart7b.png b/icons/MVPurple/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVPurple/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVPurple/crypted.png b/icons/MVPurple/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVPurple/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVPurple/forward.png b/icons/MVPurple/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVPurple/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVPurple/forward_sel.png b/icons/MVPurple/forward_sel.png
new file mode 100644
index 0000000..2383f28
Binary files /dev/null and b/icons/MVPurple/forward_sel.png differ
diff --git a/icons/MVPurple/hd.png b/icons/MVPurple/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVPurple/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVPurple/message_error.png b/icons/MVPurple/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVPurple/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVPurple/message_info.png b/icons/MVPurple/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVPurple/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVPurple/message_status.png b/icons/MVPurple/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVPurple/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVPurple/message_warning.png b/icons/MVPurple/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVPurple/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVPurple/pause.png b/icons/MVPurple/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVPurple/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVPurple/pause_sel.png b/icons/MVPurple/pause_sel.png
new file mode 100644
index 0000000..ecd41e32
Binary files /dev/null and b/icons/MVPurple/pause_sel.png differ
diff --git a/icons/MVPurple/play.png b/icons/MVPurple/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVPurple/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVPurple/play_sel.png b/icons/MVPurple/play_sel.png
new file mode 100644
index 0000000..4626847
Binary files /dev/null and b/icons/MVPurple/play_sel.png differ
diff --git a/icons/MVPurple/prev.png b/icons/MVPurple/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVPurple/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVPurple/prev_sel.png b/icons/MVPurple/prev_sel.png
new file mode 100644
index 0000000..51c4f2f
Binary files /dev/null and b/icons/MVPurple/prev_sel.png differ
diff --git a/icons/MVPurple/radio.png b/icons/MVPurple/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVPurple/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVPurple/recording.png b/icons/MVPurple/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVPurple/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVPurple/recording_cutted.png b/icons/MVPurple/recording_cutted.png
new file mode 100644
index 0000000..b140a9f
Binary files /dev/null and b/icons/MVPurple/recording_cutted.png differ
diff --git a/icons/MVPurple/recording_cutted_cur.png b/icons/MVPurple/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVPurple/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/recording_cutted_extra.png b/icons/MVPurple/recording_cutted_extra.png
new file mode 100644
index 0000000..df0ee80
Binary files /dev/null and b/icons/MVPurple/recording_cutted_extra.png differ
diff --git a/icons/MVPurple/recording_new.png b/icons/MVPurple/recording_new.png
new file mode 100644
index 0000000..1661de0
Binary files /dev/null and b/icons/MVPurple/recording_new.png differ
diff --git a/icons/MVPurple/recording_new_cur.png b/icons/MVPurple/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVPurple/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/rewind.png b/icons/MVPurple/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVPurple/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVPurple/rewind_sel.png b/icons/MVPurple/rewind_sel.png
new file mode 100644
index 0000000..77157b5
Binary files /dev/null and b/icons/MVPurple/rewind_sel.png differ
diff --git a/icons/MVPurple/sd.png b/icons/MVPurple/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVPurple/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVPurple/skip.png b/icons/MVPurple/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVPurple/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVPurple/skip_sel.png b/icons/MVPurple/skip_sel.png
new file mode 100644
index 0000000..427b058
Binary files /dev/null and b/icons/MVPurple/skip_sel.png differ
diff --git a/icons/MVPurple/text_arrowturn.png b/icons/MVPurple/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVPurple/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_arrowturn_cur.png b/icons/MVPurple/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVPurple/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_arrowturn_sel.png b/icons/MVPurple/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVPurple/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_new.png b/icons/MVPurple/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVPurple/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_new_cur.png b/icons/MVPurple/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVPurple/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_new_sel.png b/icons/MVPurple/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVPurple/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_rec.png b/icons/MVPurple/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVPurple/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_rec_cur.png b/icons/MVPurple/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVPurple/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_rec_sel.png b/icons/MVPurple/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVPurple/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_timer_full.png b/icons/MVPurple/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVPurple/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_timer_full_cur.png b/icons/MVPurple/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVPurple/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_timer_full_sel.png b/icons/MVPurple/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVPurple/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_timer_partial.png b/icons/MVPurple/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVPurple/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_timer_partial_cur.png b/icons/MVPurple/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVPurple/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_timer_partial_sel.png b/icons/MVPurple/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVPurple/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_vps.png b/icons/MVPurple/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVPurple/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_vps_cur.png b/icons/MVPurple/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVPurple/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/text_vps_sel.png b/icons/MVPurple/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVPurple/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVPurple/timerActive.png b/icons/MVPurple/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVPurple/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVPurple/timerInactive.png b/icons/MVPurple/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVPurple/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVPurple/timerRecording.png b/icons/MVPurple/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVPurple/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVPurple/timer_full.png b/icons/MVPurple/timer_full.png
new file mode 100644
index 0000000..cdbfa65
Binary files /dev/null and b/icons/MVPurple/timer_full.png differ
diff --git a/icons/MVPurple/timer_full_cur.png b/icons/MVPurple/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVPurple/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/timer_partial.png b/icons/MVPurple/timer_partial.png
new file mode 100644
index 0000000..90c6a26
Binary files /dev/null and b/icons/MVPurple/timer_partial.png differ
diff --git a/icons/MVPurple/timer_partial_cur.png b/icons/MVPurple/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVPurple/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVPurple/topbar_timer.png b/icons/MVPurple/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVPurple/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVPurple/topbar_timerconflict_high.png b/icons/MVPurple/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVPurple/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVPurple/topbar_timerconflict_low.png b/icons/MVPurple/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVPurple/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVPurple/tv.png b/icons/MVPurple/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVPurple/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVPurple/uncrypted.png b/icons/MVPurple/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVPurple/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVPurple/unknown_asp.png b/icons/MVPurple/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVPurple/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVPurple/unknown_res.png b/icons/MVPurple/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVPurple/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVPurple/vps.png b/icons/MVPurple/vps.png
new file mode 100644
index 0000000..fb162b5
Binary files /dev/null and b/icons/MVPurple/vps.png differ
diff --git a/icons/MVPurple/vps_cur.png b/icons/MVPurple/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVPurple/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/1280x720.png b/icons/MVPurpleGrey/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVPurpleGrey/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/1440x1080.png b/icons/MVPurpleGrey/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVPurpleGrey/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/169.png b/icons/MVPurpleGrey/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVPurpleGrey/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/169w.png b/icons/MVPurpleGrey/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVPurpleGrey/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/1920x1080.png b/icons/MVPurpleGrey/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVPurpleGrey/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/221.png b/icons/MVPurpleGrey/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVPurpleGrey/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/352x576.png b/icons/MVPurpleGrey/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVPurpleGrey/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/43.png b/icons/MVPurpleGrey/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVPurpleGrey/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/480x576.png b/icons/MVPurpleGrey/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVPurpleGrey/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/528x576.png b/icons/MVPurpleGrey/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVPurpleGrey/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/544x576.png b/icons/MVPurpleGrey/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVPurpleGrey/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/704x576.png b/icons/MVPurpleGrey/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVPurpleGrey/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/720x576.png b/icons/MVPurpleGrey/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVPurpleGrey/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/960x720.png b/icons/MVPurpleGrey/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVPurpleGrey/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/blank.png b/icons/MVPurpleGrey/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVPurpleGrey/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/changroup.png b/icons/MVPurpleGrey/changroup.png
new file mode 100644
index 0000000..5515a57
Binary files /dev/null and b/icons/MVPurpleGrey/changroup.png differ
diff --git a/icons/MVPurpleGrey/chart1b.png b/icons/MVPurpleGrey/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVPurpleGrey/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/chart2b.png b/icons/MVPurpleGrey/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVPurpleGrey/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/chart3b.png b/icons/MVPurpleGrey/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVPurpleGrey/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/chart4b.png b/icons/MVPurpleGrey/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVPurpleGrey/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/chart5b.png b/icons/MVPurpleGrey/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVPurpleGrey/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/chart6b.png b/icons/MVPurpleGrey/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVPurpleGrey/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/chart7.png b/icons/MVPurpleGrey/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVPurpleGrey/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/chart7b.png b/icons/MVPurpleGrey/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVPurpleGrey/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/crypted.png b/icons/MVPurpleGrey/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVPurpleGrey/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/forward.png b/icons/MVPurpleGrey/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVPurpleGrey/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/forward_sel.png b/icons/MVPurpleGrey/forward_sel.png
new file mode 100644
index 0000000..ab5add7
Binary files /dev/null and b/icons/MVPurpleGrey/forward_sel.png differ
diff --git a/icons/MVPurpleGrey/hd.png b/icons/MVPurpleGrey/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVPurpleGrey/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/message_error.png b/icons/MVPurpleGrey/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVPurpleGrey/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/message_info.png b/icons/MVPurpleGrey/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVPurpleGrey/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/message_status.png b/icons/MVPurpleGrey/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVPurpleGrey/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/message_warning.png b/icons/MVPurpleGrey/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVPurpleGrey/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/pause.png b/icons/MVPurpleGrey/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVPurpleGrey/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/pause_sel.png b/icons/MVPurpleGrey/pause_sel.png
new file mode 100644
index 0000000..cc182b6
Binary files /dev/null and b/icons/MVPurpleGrey/pause_sel.png differ
diff --git a/icons/MVPurpleGrey/play.png b/icons/MVPurpleGrey/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVPurpleGrey/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/play_sel.png b/icons/MVPurpleGrey/play_sel.png
new file mode 100644
index 0000000..43e6218
Binary files /dev/null and b/icons/MVPurpleGrey/play_sel.png differ
diff --git a/icons/MVPurpleGrey/prev.png b/icons/MVPurpleGrey/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVPurpleGrey/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/prev_sel.png b/icons/MVPurpleGrey/prev_sel.png
new file mode 100644
index 0000000..e73198c
Binary files /dev/null and b/icons/MVPurpleGrey/prev_sel.png differ
diff --git a/icons/MVPurpleGrey/radio.png b/icons/MVPurpleGrey/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVPurpleGrey/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/recording.png b/icons/MVPurpleGrey/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVPurpleGrey/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/recording_cutted.png b/icons/MVPurpleGrey/recording_cutted.png
new file mode 100644
index 0000000..ce3119a
Binary files /dev/null and b/icons/MVPurpleGrey/recording_cutted.png differ
diff --git a/icons/MVPurpleGrey/recording_cutted_cur.png b/icons/MVPurpleGrey/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVPurpleGrey/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/recording_cutted_extra.png b/icons/MVPurpleGrey/recording_cutted_extra.png
new file mode 100644
index 0000000..272daed
Binary files /dev/null and b/icons/MVPurpleGrey/recording_cutted_extra.png differ
diff --git a/icons/MVPurpleGrey/recording_new.png b/icons/MVPurpleGrey/recording_new.png
new file mode 100644
index 0000000..fcfaef6
Binary files /dev/null and b/icons/MVPurpleGrey/recording_new.png differ
diff --git a/icons/MVPurpleGrey/recording_new_cur.png b/icons/MVPurpleGrey/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVPurpleGrey/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/rewind.png b/icons/MVPurpleGrey/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVPurpleGrey/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/rewind_sel.png b/icons/MVPurpleGrey/rewind_sel.png
new file mode 100644
index 0000000..dd0b8d0
Binary files /dev/null and b/icons/MVPurpleGrey/rewind_sel.png differ
diff --git a/icons/MVPurpleGrey/sd.png b/icons/MVPurpleGrey/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVPurpleGrey/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/skip.png b/icons/MVPurpleGrey/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVPurpleGrey/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/skip_sel.png b/icons/MVPurpleGrey/skip_sel.png
new file mode 100644
index 0000000..5162080
Binary files /dev/null and b/icons/MVPurpleGrey/skip_sel.png differ
diff --git a/icons/MVPurpleGrey/text_arrowturn.png b/icons/MVPurpleGrey/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVPurpleGrey/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_arrowturn_cur.png b/icons/MVPurpleGrey/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVPurpleGrey/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_arrowturn_sel.png b/icons/MVPurpleGrey/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVPurpleGrey/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_new.png b/icons/MVPurpleGrey/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVPurpleGrey/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_new_cur.png b/icons/MVPurpleGrey/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVPurpleGrey/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_new_sel.png b/icons/MVPurpleGrey/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVPurpleGrey/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_rec.png b/icons/MVPurpleGrey/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVPurpleGrey/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_rec_cur.png b/icons/MVPurpleGrey/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVPurpleGrey/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_rec_sel.png b/icons/MVPurpleGrey/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVPurpleGrey/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_timer_full.png b/icons/MVPurpleGrey/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVPurpleGrey/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_timer_full_cur.png b/icons/MVPurpleGrey/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVPurpleGrey/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_timer_full_sel.png b/icons/MVPurpleGrey/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVPurpleGrey/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_timer_partial.png b/icons/MVPurpleGrey/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVPurpleGrey/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_timer_partial_cur.png b/icons/MVPurpleGrey/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVPurpleGrey/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_timer_partial_sel.png b/icons/MVPurpleGrey/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVPurpleGrey/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_vps.png b/icons/MVPurpleGrey/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVPurpleGrey/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_vps_cur.png b/icons/MVPurpleGrey/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVPurpleGrey/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/text_vps_sel.png b/icons/MVPurpleGrey/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVPurpleGrey/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/timerActive.png b/icons/MVPurpleGrey/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVPurpleGrey/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/timerInactive.png b/icons/MVPurpleGrey/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVPurpleGrey/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/timerRecording.png b/icons/MVPurpleGrey/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVPurpleGrey/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/timer_full.png b/icons/MVPurpleGrey/timer_full.png
new file mode 100644
index 0000000..feb4438
Binary files /dev/null and b/icons/MVPurpleGrey/timer_full.png differ
diff --git a/icons/MVPurpleGrey/timer_full_cur.png b/icons/MVPurpleGrey/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVPurpleGrey/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/timer_partial.png b/icons/MVPurpleGrey/timer_partial.png
new file mode 100644
index 0000000..68ad4b7
Binary files /dev/null and b/icons/MVPurpleGrey/timer_partial.png differ
diff --git a/icons/MVPurpleGrey/timer_partial_cur.png b/icons/MVPurpleGrey/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVPurpleGrey/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/topbar_timer.png b/icons/MVPurpleGrey/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVPurpleGrey/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/topbar_timerconflict_high.png b/icons/MVPurpleGrey/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVPurpleGrey/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/topbar_timerconflict_low.png b/icons/MVPurpleGrey/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVPurpleGrey/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/tv.png b/icons/MVPurpleGrey/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVPurpleGrey/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/uncrypted.png b/icons/MVPurpleGrey/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVPurpleGrey/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/unknown_asp.png b/icons/MVPurpleGrey/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVPurpleGrey/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/unknown_res.png b/icons/MVPurpleGrey/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVPurpleGrey/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVPurpleGrey/vps.png b/icons/MVPurpleGrey/vps.png
new file mode 100644
index 0000000..ab5358e
Binary files /dev/null and b/icons/MVPurpleGrey/vps.png differ
diff --git a/icons/MVPurpleGrey/vps_cur.png b/icons/MVPurpleGrey/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVPurpleGrey/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/1280x720.png b/icons/MVRauchglas/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVRauchglas/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/1440x1080.png b/icons/MVRauchglas/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVRauchglas/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/169.png b/icons/MVRauchglas/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVRauchglas/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/169w.png b/icons/MVRauchglas/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVRauchglas/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/1920x1080.png b/icons/MVRauchglas/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVRauchglas/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/221.png b/icons/MVRauchglas/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVRauchglas/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/352x576.png b/icons/MVRauchglas/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVRauchglas/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/43.png b/icons/MVRauchglas/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVRauchglas/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/480x576.png b/icons/MVRauchglas/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVRauchglas/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/528x576.png b/icons/MVRauchglas/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVRauchglas/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/544x576.png b/icons/MVRauchglas/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVRauchglas/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/704x576.png b/icons/MVRauchglas/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVRauchglas/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/720x576.png b/icons/MVRauchglas/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVRauchglas/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/960x720.png b/icons/MVRauchglas/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVRauchglas/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/blank.png b/icons/MVRauchglas/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVRauchglas/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/changroup.png b/icons/MVRauchglas/changroup.png
new file mode 100644
index 0000000..3f41e9e
Binary files /dev/null and b/icons/MVRauchglas/changroup.png differ
diff --git a/icons/MVRauchglas/chart1b.png b/icons/MVRauchglas/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVRauchglas/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/chart2b.png b/icons/MVRauchglas/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVRauchglas/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/chart3b.png b/icons/MVRauchglas/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVRauchglas/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/chart4b.png b/icons/MVRauchglas/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVRauchglas/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/chart5b.png b/icons/MVRauchglas/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVRauchglas/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/chart6b.png b/icons/MVRauchglas/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVRauchglas/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/chart7.png b/icons/MVRauchglas/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVRauchglas/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/chart7b.png b/icons/MVRauchglas/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVRauchglas/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/crypted.png b/icons/MVRauchglas/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVRauchglas/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/forward.png b/icons/MVRauchglas/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVRauchglas/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/forward_sel.png b/icons/MVRauchglas/forward_sel.png
new file mode 100644
index 0000000..2b0f3ab
Binary files /dev/null and b/icons/MVRauchglas/forward_sel.png differ
diff --git a/icons/MVRauchglas/hd.png b/icons/MVRauchglas/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVRauchglas/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/message_error.png b/icons/MVRauchglas/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVRauchglas/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/message_info.png b/icons/MVRauchglas/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVRauchglas/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/message_status.png b/icons/MVRauchglas/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVRauchglas/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/message_warning.png b/icons/MVRauchglas/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVRauchglas/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/pause.png b/icons/MVRauchglas/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVRauchglas/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/pause_sel.png b/icons/MVRauchglas/pause_sel.png
new file mode 100644
index 0000000..e3e5542
Binary files /dev/null and b/icons/MVRauchglas/pause_sel.png differ
diff --git a/icons/MVRauchglas/play.png b/icons/MVRauchglas/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVRauchglas/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/play_sel.png b/icons/MVRauchglas/play_sel.png
new file mode 100644
index 0000000..c129249
Binary files /dev/null and b/icons/MVRauchglas/play_sel.png differ
diff --git a/icons/MVRauchglas/prev.png b/icons/MVRauchglas/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVRauchglas/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/prev_sel.png b/icons/MVRauchglas/prev_sel.png
new file mode 100644
index 0000000..b6c9c97
Binary files /dev/null and b/icons/MVRauchglas/prev_sel.png differ
diff --git a/icons/MVRauchglas/radio.png b/icons/MVRauchglas/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVRauchglas/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/recording.png b/icons/MVRauchglas/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVRauchglas/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/recording_cutted.png b/icons/MVRauchglas/recording_cutted.png
new file mode 100644
index 0000000..ca992ab
Binary files /dev/null and b/icons/MVRauchglas/recording_cutted.png differ
diff --git a/icons/MVRauchglas/recording_cutted_cur.png b/icons/MVRauchglas/recording_cutted_cur.png
new file mode 100644
index 0000000..beb8aa2
Binary files /dev/null and b/icons/MVRauchglas/recording_cutted_cur.png differ
diff --git a/icons/MVRauchglas/recording_cutted_extra.png b/icons/MVRauchglas/recording_cutted_extra.png
new file mode 100644
index 0000000..995cc80
Binary files /dev/null and b/icons/MVRauchglas/recording_cutted_extra.png differ
diff --git a/icons/MVRauchglas/recording_new.png b/icons/MVRauchglas/recording_new.png
new file mode 100644
index 0000000..233dd6f
Binary files /dev/null and b/icons/MVRauchglas/recording_new.png differ
diff --git a/icons/MVRauchglas/recording_new_cur.png b/icons/MVRauchglas/recording_new_cur.png
new file mode 100644
index 0000000..1b56e87
Binary files /dev/null and b/icons/MVRauchglas/recording_new_cur.png differ
diff --git a/icons/MVRauchglas/rewind.png b/icons/MVRauchglas/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVRauchglas/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/rewind_sel.png b/icons/MVRauchglas/rewind_sel.png
new file mode 100644
index 0000000..6e2c6bf
Binary files /dev/null and b/icons/MVRauchglas/rewind_sel.png differ
diff --git a/icons/MVRauchglas/sd.png b/icons/MVRauchglas/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVRauchglas/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/skip.png b/icons/MVRauchglas/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVRauchglas/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/skip_sel.png b/icons/MVRauchglas/skip_sel.png
new file mode 100644
index 0000000..608c45f
Binary files /dev/null and b/icons/MVRauchglas/skip_sel.png differ
diff --git a/icons/MVRauchglas/text_arrowturn.png b/icons/MVRauchglas/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVRauchglas/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_arrowturn_cur.png b/icons/MVRauchglas/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVRauchglas/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_arrowturn_sel.png b/icons/MVRauchglas/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVRauchglas/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_new.png b/icons/MVRauchglas/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVRauchglas/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_new_cur.png b/icons/MVRauchglas/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVRauchglas/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_new_sel.png b/icons/MVRauchglas/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVRauchglas/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_rec.png b/icons/MVRauchglas/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVRauchglas/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_rec_cur.png b/icons/MVRauchglas/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVRauchglas/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_rec_sel.png b/icons/MVRauchglas/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVRauchglas/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_timer_full.png b/icons/MVRauchglas/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVRauchglas/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_timer_full_cur.png b/icons/MVRauchglas/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVRauchglas/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_timer_full_sel.png b/icons/MVRauchglas/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVRauchglas/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_timer_partial.png b/icons/MVRauchglas/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVRauchglas/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_timer_partial_cur.png b/icons/MVRauchglas/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVRauchglas/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_timer_partial_sel.png b/icons/MVRauchglas/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVRauchglas/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_vps.png b/icons/MVRauchglas/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVRauchglas/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_vps_cur.png b/icons/MVRauchglas/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVRauchglas/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/text_vps_sel.png b/icons/MVRauchglas/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVRauchglas/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/timerActive.png b/icons/MVRauchglas/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVRauchglas/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/timerInactive.png b/icons/MVRauchglas/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVRauchglas/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/timerRecording.png b/icons/MVRauchglas/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVRauchglas/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/timer_full.png b/icons/MVRauchglas/timer_full.png
new file mode 100644
index 0000000..cf895c8
Binary files /dev/null and b/icons/MVRauchglas/timer_full.png differ
diff --git a/icons/MVRauchglas/timer_full_cur.png b/icons/MVRauchglas/timer_full_cur.png
new file mode 100644
index 0000000..cd3c65b
Binary files /dev/null and b/icons/MVRauchglas/timer_full_cur.png differ
diff --git a/icons/MVRauchglas/timer_partial.png b/icons/MVRauchglas/timer_partial.png
new file mode 100644
index 0000000..c705bf0
Binary files /dev/null and b/icons/MVRauchglas/timer_partial.png differ
diff --git a/icons/MVRauchglas/timer_partial_cur.png b/icons/MVRauchglas/timer_partial_cur.png
new file mode 100644
index 0000000..7e868d9
Binary files /dev/null and b/icons/MVRauchglas/timer_partial_cur.png differ
diff --git a/icons/MVRauchglas/topbar_timer.png b/icons/MVRauchglas/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVRauchglas/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/topbar_timerconflict_high.png b/icons/MVRauchglas/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVRauchglas/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/topbar_timerconflict_low.png b/icons/MVRauchglas/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVRauchglas/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/tv.png b/icons/MVRauchglas/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVRauchglas/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/uncrypted.png b/icons/MVRauchglas/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVRauchglas/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/unknown_asp.png b/icons/MVRauchglas/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVRauchglas/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/unknown_res.png b/icons/MVRauchglas/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVRauchglas/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVRauchglas/vps.png b/icons/MVRauchglas/vps.png
new file mode 100644
index 0000000..dd3fef0
Binary files /dev/null and b/icons/MVRauchglas/vps.png differ
diff --git a/icons/MVRauchglas/vps_cur.png b/icons/MVRauchglas/vps_cur.png
new file mode 100644
index 0000000..5882820
Binary files /dev/null and b/icons/MVRauchglas/vps_cur.png differ
diff --git a/icons/MVRed/1280x720.png b/icons/MVRed/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVRed/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVRed/1440x1080.png b/icons/MVRed/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVRed/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVRed/169.png b/icons/MVRed/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVRed/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVRed/169w.png b/icons/MVRed/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVRed/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVRed/1920x1080.png b/icons/MVRed/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVRed/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVRed/221.png b/icons/MVRed/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVRed/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVRed/352x576.png b/icons/MVRed/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVRed/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVRed/43.png b/icons/MVRed/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVRed/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVRed/480x576.png b/icons/MVRed/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVRed/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVRed/528x576.png b/icons/MVRed/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVRed/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVRed/544x576.png b/icons/MVRed/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVRed/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVRed/704x576.png b/icons/MVRed/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVRed/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVRed/720x576.png b/icons/MVRed/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVRed/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVRed/960x720.png b/icons/MVRed/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVRed/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVRed/blank.png b/icons/MVRed/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVRed/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVRed/changroup.png b/icons/MVRed/changroup.png
new file mode 100644
index 0000000..d657250
Binary files /dev/null and b/icons/MVRed/changroup.png differ
diff --git a/icons/MVRed/chart1b.png b/icons/MVRed/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVRed/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVRed/chart2b.png b/icons/MVRed/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVRed/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVRed/chart3b.png b/icons/MVRed/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVRed/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVRed/chart4b.png b/icons/MVRed/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVRed/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVRed/chart5b.png b/icons/MVRed/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVRed/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVRed/chart6b.png b/icons/MVRed/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVRed/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVRed/chart7.png b/icons/MVRed/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVRed/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVRed/chart7b.png b/icons/MVRed/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVRed/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVRed/crypted.png b/icons/MVRed/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVRed/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVRed/forward.png b/icons/MVRed/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVRed/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVRed/forward_sel.png b/icons/MVRed/forward_sel.png
new file mode 100644
index 0000000..a537d3a
Binary files /dev/null and b/icons/MVRed/forward_sel.png differ
diff --git a/icons/MVRed/hd.png b/icons/MVRed/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVRed/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVRed/message_error.png b/icons/MVRed/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVRed/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVRed/message_info.png b/icons/MVRed/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVRed/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVRed/message_status.png b/icons/MVRed/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVRed/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVRed/message_warning.png b/icons/MVRed/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVRed/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVRed/pause.png b/icons/MVRed/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVRed/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVRed/pause_sel.png b/icons/MVRed/pause_sel.png
new file mode 100644
index 0000000..c2a1973
Binary files /dev/null and b/icons/MVRed/pause_sel.png differ
diff --git a/icons/MVRed/play.png b/icons/MVRed/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVRed/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVRed/play_sel.png b/icons/MVRed/play_sel.png
new file mode 100644
index 0000000..cc867c6
Binary files /dev/null and b/icons/MVRed/play_sel.png differ
diff --git a/icons/MVRed/prev.png b/icons/MVRed/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVRed/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVRed/prev_sel.png b/icons/MVRed/prev_sel.png
new file mode 100644
index 0000000..ef30db4
Binary files /dev/null and b/icons/MVRed/prev_sel.png differ
diff --git a/icons/MVRed/radio.png b/icons/MVRed/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVRed/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVRed/recording.png b/icons/MVRed/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVRed/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVRed/recording_cutted.png b/icons/MVRed/recording_cutted.png
new file mode 100644
index 0000000..7d3c029
Binary files /dev/null and b/icons/MVRed/recording_cutted.png differ
diff --git a/icons/MVRed/recording_cutted_cur.png b/icons/MVRed/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVRed/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/recording_cutted_extra.png b/icons/MVRed/recording_cutted_extra.png
new file mode 100644
index 0000000..a70f2a6
Binary files /dev/null and b/icons/MVRed/recording_cutted_extra.png differ
diff --git a/icons/MVRed/recording_new.png b/icons/MVRed/recording_new.png
new file mode 100644
index 0000000..1a8d256
Binary files /dev/null and b/icons/MVRed/recording_new.png differ
diff --git a/icons/MVRed/recording_new_cur.png b/icons/MVRed/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVRed/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/rewind.png b/icons/MVRed/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVRed/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVRed/rewind_sel.png b/icons/MVRed/rewind_sel.png
new file mode 100644
index 0000000..cde89b1
Binary files /dev/null and b/icons/MVRed/rewind_sel.png differ
diff --git a/icons/MVRed/sd.png b/icons/MVRed/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVRed/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVRed/skip.png b/icons/MVRed/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVRed/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVRed/skip_sel.png b/icons/MVRed/skip_sel.png
new file mode 100644
index 0000000..db2f1e9
Binary files /dev/null and b/icons/MVRed/skip_sel.png differ
diff --git a/icons/MVRed/text_arrowturn.png b/icons/MVRed/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVRed/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVRed/text_arrowturn_cur.png b/icons/MVRed/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVRed/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/text_arrowturn_sel.png b/icons/MVRed/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVRed/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVRed/text_new.png b/icons/MVRed/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVRed/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVRed/text_new_cur.png b/icons/MVRed/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVRed/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/text_new_sel.png b/icons/MVRed/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVRed/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVRed/text_rec.png b/icons/MVRed/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVRed/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVRed/text_rec_cur.png b/icons/MVRed/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVRed/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/text_rec_sel.png b/icons/MVRed/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVRed/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVRed/text_timer_full.png b/icons/MVRed/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVRed/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVRed/text_timer_full_cur.png b/icons/MVRed/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVRed/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/text_timer_full_sel.png b/icons/MVRed/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVRed/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVRed/text_timer_partial.png b/icons/MVRed/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVRed/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVRed/text_timer_partial_cur.png b/icons/MVRed/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVRed/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/text_timer_partial_sel.png b/icons/MVRed/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVRed/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVRed/text_vps.png b/icons/MVRed/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVRed/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVRed/text_vps_cur.png b/icons/MVRed/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVRed/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/text_vps_sel.png b/icons/MVRed/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVRed/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVRed/timerActive.png b/icons/MVRed/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVRed/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVRed/timerInactive.png b/icons/MVRed/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVRed/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVRed/timerRecording.png b/icons/MVRed/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVRed/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVRed/timer_full.png b/icons/MVRed/timer_full.png
new file mode 100644
index 0000000..1e1e0e1
Binary files /dev/null and b/icons/MVRed/timer_full.png differ
diff --git a/icons/MVRed/timer_full_cur.png b/icons/MVRed/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVRed/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/timer_partial.png b/icons/MVRed/timer_partial.png
new file mode 100644
index 0000000..81f55fe
Binary files /dev/null and b/icons/MVRed/timer_partial.png differ
diff --git a/icons/MVRed/timer_partial_cur.png b/icons/MVRed/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVRed/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVRed/topbar_timer.png b/icons/MVRed/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVRed/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVRed/topbar_timerconflict_high.png b/icons/MVRed/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVRed/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVRed/topbar_timerconflict_low.png b/icons/MVRed/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVRed/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVRed/tv.png b/icons/MVRed/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVRed/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVRed/uncrypted.png b/icons/MVRed/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVRed/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVRed/unknown_asp.png b/icons/MVRed/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVRed/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVRed/unknown_res.png b/icons/MVRed/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVRed/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVRed/vps.png b/icons/MVRed/vps.png
new file mode 100644
index 0000000..f315d0f
Binary files /dev/null and b/icons/MVRed/vps.png differ
diff --git a/icons/MVRed/vps_cur.png b/icons/MVRed/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVRed/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/1280x720.png b/icons/MVTerra/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVTerra/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVTerra/1440x1080.png b/icons/MVTerra/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVTerra/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVTerra/169.png b/icons/MVTerra/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVTerra/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVTerra/169w.png b/icons/MVTerra/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVTerra/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVTerra/1920x1080.png b/icons/MVTerra/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVTerra/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVTerra/221.png b/icons/MVTerra/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVTerra/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVTerra/352x576.png b/icons/MVTerra/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVTerra/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVTerra/43.png b/icons/MVTerra/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVTerra/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVTerra/480x576.png b/icons/MVTerra/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVTerra/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVTerra/528x576.png b/icons/MVTerra/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVTerra/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVTerra/544x576.png b/icons/MVTerra/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVTerra/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVTerra/704x576.png b/icons/MVTerra/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVTerra/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVTerra/720x576.png b/icons/MVTerra/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVTerra/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVTerra/960x720.png b/icons/MVTerra/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVTerra/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVTerra/blank.png b/icons/MVTerra/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVTerra/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVTerra/changroup.png b/icons/MVTerra/changroup.png
new file mode 100644
index 0000000..563bfb4
Binary files /dev/null and b/icons/MVTerra/changroup.png differ
diff --git a/icons/MVTerra/chart1b.png b/icons/MVTerra/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVTerra/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVTerra/chart2b.png b/icons/MVTerra/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVTerra/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVTerra/chart3b.png b/icons/MVTerra/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVTerra/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVTerra/chart4b.png b/icons/MVTerra/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVTerra/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVTerra/chart5b.png b/icons/MVTerra/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVTerra/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVTerra/chart6b.png b/icons/MVTerra/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVTerra/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVTerra/chart7.png b/icons/MVTerra/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVTerra/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVTerra/chart7b.png b/icons/MVTerra/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVTerra/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVTerra/crypted.png b/icons/MVTerra/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVTerra/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVTerra/forward.png b/icons/MVTerra/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVTerra/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVTerra/forward_sel.png b/icons/MVTerra/forward_sel.png
new file mode 100644
index 0000000..4721a01
Binary files /dev/null and b/icons/MVTerra/forward_sel.png differ
diff --git a/icons/MVTerra/hd.png b/icons/MVTerra/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVTerra/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVTerra/message_error.png b/icons/MVTerra/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVTerra/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVTerra/message_info.png b/icons/MVTerra/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVTerra/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVTerra/message_status.png b/icons/MVTerra/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVTerra/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVTerra/message_warning.png b/icons/MVTerra/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVTerra/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVTerra/pause.png b/icons/MVTerra/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVTerra/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVTerra/pause_sel.png b/icons/MVTerra/pause_sel.png
new file mode 100644
index 0000000..5e7cb5f
Binary files /dev/null and b/icons/MVTerra/pause_sel.png differ
diff --git a/icons/MVTerra/play.png b/icons/MVTerra/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVTerra/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVTerra/play_sel.png b/icons/MVTerra/play_sel.png
new file mode 100644
index 0000000..ca864fc
Binary files /dev/null and b/icons/MVTerra/play_sel.png differ
diff --git a/icons/MVTerra/prev.png b/icons/MVTerra/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVTerra/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVTerra/prev_sel.png b/icons/MVTerra/prev_sel.png
new file mode 100644
index 0000000..17b6454
Binary files /dev/null and b/icons/MVTerra/prev_sel.png differ
diff --git a/icons/MVTerra/radio.png b/icons/MVTerra/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVTerra/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVTerra/recording.png b/icons/MVTerra/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVTerra/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVTerra/recording_cutted.png b/icons/MVTerra/recording_cutted.png
new file mode 100644
index 0000000..483268f
Binary files /dev/null and b/icons/MVTerra/recording_cutted.png differ
diff --git a/icons/MVTerra/recording_cutted_cur.png b/icons/MVTerra/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVTerra/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/recording_cutted_extra.png b/icons/MVTerra/recording_cutted_extra.png
new file mode 100644
index 0000000..d08d3e7
Binary files /dev/null and b/icons/MVTerra/recording_cutted_extra.png differ
diff --git a/icons/MVTerra/recording_new.png b/icons/MVTerra/recording_new.png
new file mode 100644
index 0000000..5506320
Binary files /dev/null and b/icons/MVTerra/recording_new.png differ
diff --git a/icons/MVTerra/recording_new_cur.png b/icons/MVTerra/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVTerra/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/rewind.png b/icons/MVTerra/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVTerra/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVTerra/rewind_sel.png b/icons/MVTerra/rewind_sel.png
new file mode 100644
index 0000000..21cd9fc
Binary files /dev/null and b/icons/MVTerra/rewind_sel.png differ
diff --git a/icons/MVTerra/sd.png b/icons/MVTerra/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVTerra/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVTerra/skip.png b/icons/MVTerra/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVTerra/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVTerra/skip_sel.png b/icons/MVTerra/skip_sel.png
new file mode 100644
index 0000000..c05dd0e
Binary files /dev/null and b/icons/MVTerra/skip_sel.png differ
diff --git a/icons/MVTerra/text_arrowturn.png b/icons/MVTerra/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVTerra/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_arrowturn_cur.png b/icons/MVTerra/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVTerra/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_arrowturn_sel.png b/icons/MVTerra/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVTerra/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_new.png b/icons/MVTerra/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVTerra/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_new_cur.png b/icons/MVTerra/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVTerra/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_new_sel.png b/icons/MVTerra/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVTerra/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_rec.png b/icons/MVTerra/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVTerra/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_rec_cur.png b/icons/MVTerra/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVTerra/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_rec_sel.png b/icons/MVTerra/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVTerra/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_timer_full.png b/icons/MVTerra/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVTerra/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_timer_full_cur.png b/icons/MVTerra/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVTerra/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_timer_full_sel.png b/icons/MVTerra/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVTerra/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_timer_partial.png b/icons/MVTerra/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVTerra/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_timer_partial_cur.png b/icons/MVTerra/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVTerra/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_timer_partial_sel.png b/icons/MVTerra/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVTerra/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_vps.png b/icons/MVTerra/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVTerra/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_vps_cur.png b/icons/MVTerra/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVTerra/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/text_vps_sel.png b/icons/MVTerra/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVTerra/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVTerra/timerActive.png b/icons/MVTerra/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVTerra/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVTerra/timerInactive.png b/icons/MVTerra/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVTerra/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVTerra/timerRecording.png b/icons/MVTerra/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVTerra/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVTerra/timer_full.png b/icons/MVTerra/timer_full.png
new file mode 100644
index 0000000..b0ed0fe
Binary files /dev/null and b/icons/MVTerra/timer_full.png differ
diff --git a/icons/MVTerra/timer_full_cur.png b/icons/MVTerra/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVTerra/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/timer_partial.png b/icons/MVTerra/timer_partial.png
new file mode 100644
index 0000000..e412b5c
Binary files /dev/null and b/icons/MVTerra/timer_partial.png differ
diff --git a/icons/MVTerra/timer_partial_cur.png b/icons/MVTerra/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVTerra/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVTerra/topbar_timer.png b/icons/MVTerra/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVTerra/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVTerra/topbar_timerconflict_high.png b/icons/MVTerra/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVTerra/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVTerra/topbar_timerconflict_low.png b/icons/MVTerra/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVTerra/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVTerra/tv.png b/icons/MVTerra/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVTerra/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVTerra/uncrypted.png b/icons/MVTerra/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVTerra/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVTerra/unknown_asp.png b/icons/MVTerra/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVTerra/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVTerra/unknown_res.png b/icons/MVTerra/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVTerra/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVTerra/vps.png b/icons/MVTerra/vps.png
new file mode 100644
index 0000000..7c7b20f
Binary files /dev/null and b/icons/MVTerra/vps.png differ
diff --git a/icons/MVTerra/vps_cur.png b/icons/MVTerra/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVTerra/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/1280x720.png b/icons/MVWhite/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVWhite/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVWhite/1440x1080.png b/icons/MVWhite/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVWhite/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVWhite/169.png b/icons/MVWhite/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVWhite/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVWhite/169w.png b/icons/MVWhite/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVWhite/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVWhite/1920x1080.png b/icons/MVWhite/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVWhite/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVWhite/221.png b/icons/MVWhite/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVWhite/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVWhite/352x576.png b/icons/MVWhite/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVWhite/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVWhite/43.png b/icons/MVWhite/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVWhite/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVWhite/480x576.png b/icons/MVWhite/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVWhite/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVWhite/528x576.png b/icons/MVWhite/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVWhite/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVWhite/544x576.png b/icons/MVWhite/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVWhite/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVWhite/704x576.png b/icons/MVWhite/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVWhite/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVWhite/720x576.png b/icons/MVWhite/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVWhite/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVWhite/960x720.png b/icons/MVWhite/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVWhite/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVWhite/blank.png b/icons/MVWhite/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVWhite/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVWhite/changroup.png b/icons/MVWhite/changroup.png
new file mode 100644
index 0000000..e8eb87f
Binary files /dev/null and b/icons/MVWhite/changroup.png differ
diff --git a/icons/MVWhite/chart1b.png b/icons/MVWhite/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVWhite/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVWhite/chart2b.png b/icons/MVWhite/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVWhite/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVWhite/chart3b.png b/icons/MVWhite/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVWhite/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVWhite/chart4b.png b/icons/MVWhite/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVWhite/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVWhite/chart5b.png b/icons/MVWhite/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVWhite/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVWhite/chart6b.png b/icons/MVWhite/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVWhite/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVWhite/chart7.png b/icons/MVWhite/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVWhite/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVWhite/chart7b.png b/icons/MVWhite/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVWhite/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVWhite/crypted.png b/icons/MVWhite/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVWhite/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVWhite/forward.png b/icons/MVWhite/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVWhite/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVWhite/forward_sel.png b/icons/MVWhite/forward_sel.png
new file mode 100644
index 0000000..08f0036
Binary files /dev/null and b/icons/MVWhite/forward_sel.png differ
diff --git a/icons/MVWhite/hd.png b/icons/MVWhite/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVWhite/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVWhite/message_error.png b/icons/MVWhite/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVWhite/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVWhite/message_info.png b/icons/MVWhite/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVWhite/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVWhite/message_status.png b/icons/MVWhite/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVWhite/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVWhite/message_warning.png b/icons/MVWhite/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVWhite/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVWhite/pause.png b/icons/MVWhite/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVWhite/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVWhite/pause_sel.png b/icons/MVWhite/pause_sel.png
new file mode 100644
index 0000000..af6dbfb
Binary files /dev/null and b/icons/MVWhite/pause_sel.png differ
diff --git a/icons/MVWhite/play.png b/icons/MVWhite/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVWhite/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVWhite/play_sel.png b/icons/MVWhite/play_sel.png
new file mode 100644
index 0000000..14b6aeb
Binary files /dev/null and b/icons/MVWhite/play_sel.png differ
diff --git a/icons/MVWhite/prev.png b/icons/MVWhite/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVWhite/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVWhite/prev_sel.png b/icons/MVWhite/prev_sel.png
new file mode 100644
index 0000000..55940bd
Binary files /dev/null and b/icons/MVWhite/prev_sel.png differ
diff --git a/icons/MVWhite/radio.png b/icons/MVWhite/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVWhite/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVWhite/recording.png b/icons/MVWhite/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVWhite/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVWhite/recording_cutted.png b/icons/MVWhite/recording_cutted.png
new file mode 100644
index 0000000..7b22722
Binary files /dev/null and b/icons/MVWhite/recording_cutted.png differ
diff --git a/icons/MVWhite/recording_cutted_cur.png b/icons/MVWhite/recording_cutted_cur.png
new file mode 120000
index 0000000..e270866
--- /dev/null
+++ b/icons/MVWhite/recording_cutted_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_cutted_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/recording_cutted_extra.png b/icons/MVWhite/recording_cutted_extra.png
new file mode 100644
index 0000000..cf9ef69
Binary files /dev/null and b/icons/MVWhite/recording_cutted_extra.png differ
diff --git a/icons/MVWhite/recording_new.png b/icons/MVWhite/recording_new.png
new file mode 100644
index 0000000..d005f95
Binary files /dev/null and b/icons/MVWhite/recording_new.png differ
diff --git a/icons/MVWhite/recording_new_cur.png b/icons/MVWhite/recording_new_cur.png
new file mode 120000
index 0000000..7d08eda
--- /dev/null
+++ b/icons/MVWhite/recording_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/recording_new_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/rewind.png b/icons/MVWhite/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVWhite/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVWhite/rewind_sel.png b/icons/MVWhite/rewind_sel.png
new file mode 100644
index 0000000..1f2b489
Binary files /dev/null and b/icons/MVWhite/rewind_sel.png differ
diff --git a/icons/MVWhite/sd.png b/icons/MVWhite/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVWhite/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVWhite/skip.png b/icons/MVWhite/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVWhite/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVWhite/skip_sel.png b/icons/MVWhite/skip_sel.png
new file mode 100644
index 0000000..2e984d0
Binary files /dev/null and b/icons/MVWhite/skip_sel.png differ
diff --git a/icons/MVWhite/text_arrowturn.png b/icons/MVWhite/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVWhite/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_arrowturn_cur.png b/icons/MVWhite/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVWhite/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_arrowturn_sel.png b/icons/MVWhite/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVWhite/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_new.png b/icons/MVWhite/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVWhite/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_new_cur.png b/icons/MVWhite/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVWhite/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_new_sel.png b/icons/MVWhite/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVWhite/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_rec.png b/icons/MVWhite/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVWhite/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_rec_cur.png b/icons/MVWhite/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVWhite/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_rec_sel.png b/icons/MVWhite/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVWhite/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_timer_full.png b/icons/MVWhite/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVWhite/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_timer_full_cur.png b/icons/MVWhite/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVWhite/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_timer_full_sel.png b/icons/MVWhite/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVWhite/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_timer_partial.png b/icons/MVWhite/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVWhite/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_timer_partial_cur.png b/icons/MVWhite/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVWhite/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_timer_partial_sel.png b/icons/MVWhite/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVWhite/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_vps.png b/icons/MVWhite/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVWhite/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_vps_cur.png b/icons/MVWhite/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVWhite/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/text_vps_sel.png b/icons/MVWhite/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVWhite/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVWhite/timerActive.png b/icons/MVWhite/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVWhite/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVWhite/timerInactive.png b/icons/MVWhite/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVWhite/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVWhite/timerRecording.png b/icons/MVWhite/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVWhite/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVWhite/timer_full.png b/icons/MVWhite/timer_full.png
new file mode 100644
index 0000000..a746376
Binary files /dev/null and b/icons/MVWhite/timer_full.png differ
diff --git a/icons/MVWhite/timer_full_cur.png b/icons/MVWhite/timer_full_cur.png
new file mode 120000
index 0000000..e0225f1
--- /dev/null
+++ b/icons/MVWhite/timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/timer_partial.png b/icons/MVWhite/timer_partial.png
new file mode 100644
index 0000000..6e69759
Binary files /dev/null and b/icons/MVWhite/timer_partial.png differ
diff --git a/icons/MVWhite/timer_partial_cur.png b/icons/MVWhite/timer_partial_cur.png
new file mode 120000
index 0000000..db9e5d7
--- /dev/null
+++ b/icons/MVWhite/timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVWhite/topbar_timer.png b/icons/MVWhite/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVWhite/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVWhite/topbar_timerconflict_high.png b/icons/MVWhite/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVWhite/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVWhite/topbar_timerconflict_low.png b/icons/MVWhite/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVWhite/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVWhite/tv.png b/icons/MVWhite/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVWhite/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVWhite/uncrypted.png b/icons/MVWhite/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVWhite/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVWhite/unknown_asp.png b/icons/MVWhite/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVWhite/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVWhite/unknown_res.png b/icons/MVWhite/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVWhite/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVWhite/vps.png b/icons/MVWhite/vps.png
new file mode 100644
index 0000000..d9ff76a
Binary files /dev/null and b/icons/MVWhite/vps.png differ
diff --git a/icons/MVWhite/vps_cur.png b/icons/MVWhite/vps_cur.png
new file mode 120000
index 0000000..923472f
--- /dev/null
+++ b/icons/MVWhite/vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/vps_cur.png
\ No newline at end of file
diff --git a/icons/MVXMAS/1280x720.png b/icons/MVXMAS/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVXMAS/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVXMAS/1440x1080.png b/icons/MVXMAS/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVXMAS/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVXMAS/169.png b/icons/MVXMAS/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVXMAS/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVXMAS/169w.png b/icons/MVXMAS/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVXMAS/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVXMAS/1920x1080.png b/icons/MVXMAS/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVXMAS/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVXMAS/221.png b/icons/MVXMAS/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVXMAS/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVXMAS/352x576.png b/icons/MVXMAS/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVXMAS/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVXMAS/43.png b/icons/MVXMAS/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVXMAS/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVXMAS/480x576.png b/icons/MVXMAS/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVXMAS/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVXMAS/528x576.png b/icons/MVXMAS/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVXMAS/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVXMAS/544x576.png b/icons/MVXMAS/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVXMAS/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVXMAS/704x576.png b/icons/MVXMAS/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVXMAS/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVXMAS/720x576.png b/icons/MVXMAS/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVXMAS/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVXMAS/960x720.png b/icons/MVXMAS/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVXMAS/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVXMAS/blank.png b/icons/MVXMAS/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVXMAS/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVXMAS/changroup.png b/icons/MVXMAS/changroup.png
new file mode 100644
index 0000000..2c6b89a
Binary files /dev/null and b/icons/MVXMAS/changroup.png differ
diff --git a/icons/MVXMAS/chart1b.png b/icons/MVXMAS/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVXMAS/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVXMAS/chart2b.png b/icons/MVXMAS/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVXMAS/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVXMAS/chart3b.png b/icons/MVXMAS/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVXMAS/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVXMAS/chart4b.png b/icons/MVXMAS/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVXMAS/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVXMAS/chart5b.png b/icons/MVXMAS/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVXMAS/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVXMAS/chart6b.png b/icons/MVXMAS/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVXMAS/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVXMAS/chart7.png b/icons/MVXMAS/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVXMAS/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVXMAS/chart7b.png b/icons/MVXMAS/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVXMAS/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVXMAS/crypted.png b/icons/MVXMAS/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVXMAS/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVXMAS/forward.png b/icons/MVXMAS/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVXMAS/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVXMAS/forward_sel.png b/icons/MVXMAS/forward_sel.png
new file mode 100644
index 0000000..f7c7139
Binary files /dev/null and b/icons/MVXMAS/forward_sel.png differ
diff --git a/icons/MVXMAS/hd.png b/icons/MVXMAS/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVXMAS/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVXMAS/message_error.png b/icons/MVXMAS/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVXMAS/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVXMAS/message_info.png b/icons/MVXMAS/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVXMAS/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVXMAS/message_status.png b/icons/MVXMAS/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVXMAS/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVXMAS/message_warning.png b/icons/MVXMAS/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVXMAS/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVXMAS/pause.png b/icons/MVXMAS/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVXMAS/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVXMAS/pause_sel.png b/icons/MVXMAS/pause_sel.png
new file mode 100644
index 0000000..d9092c3
Binary files /dev/null and b/icons/MVXMAS/pause_sel.png differ
diff --git a/icons/MVXMAS/play.png b/icons/MVXMAS/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVXMAS/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVXMAS/play_sel.png b/icons/MVXMAS/play_sel.png
new file mode 100644
index 0000000..185ceeb
Binary files /dev/null and b/icons/MVXMAS/play_sel.png differ
diff --git a/icons/MVXMAS/prev.png b/icons/MVXMAS/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVXMAS/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVXMAS/prev_sel.png b/icons/MVXMAS/prev_sel.png
new file mode 100644
index 0000000..d71445f
Binary files /dev/null and b/icons/MVXMAS/prev_sel.png differ
diff --git a/icons/MVXMAS/radio.png b/icons/MVXMAS/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVXMAS/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVXMAS/recording.png b/icons/MVXMAS/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVXMAS/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVXMAS/recording_cutted.png b/icons/MVXMAS/recording_cutted.png
new file mode 100644
index 0000000..4fa6a88
Binary files /dev/null and b/icons/MVXMAS/recording_cutted.png differ
diff --git a/icons/MVXMAS/recording_cutted_cur.png b/icons/MVXMAS/recording_cutted_cur.png
new file mode 100644
index 0000000..72be960
Binary files /dev/null and b/icons/MVXMAS/recording_cutted_cur.png differ
diff --git a/icons/MVXMAS/recording_cutted_extra.png b/icons/MVXMAS/recording_cutted_extra.png
new file mode 100644
index 0000000..f897e93
Binary files /dev/null and b/icons/MVXMAS/recording_cutted_extra.png differ
diff --git a/icons/MVXMAS/recording_new.png b/icons/MVXMAS/recording_new.png
new file mode 100644
index 0000000..ccdc1ca
Binary files /dev/null and b/icons/MVXMAS/recording_new.png differ
diff --git a/icons/MVXMAS/recording_new_cur.png b/icons/MVXMAS/recording_new_cur.png
new file mode 100644
index 0000000..b53149a
Binary files /dev/null and b/icons/MVXMAS/recording_new_cur.png differ
diff --git a/icons/MVXMAS/rewind.png b/icons/MVXMAS/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVXMAS/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVXMAS/rewind_sel.png b/icons/MVXMAS/rewind_sel.png
new file mode 100644
index 0000000..93b3f8e
Binary files /dev/null and b/icons/MVXMAS/rewind_sel.png differ
diff --git a/icons/MVXMAS/sd.png b/icons/MVXMAS/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVXMAS/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVXMAS/skip.png b/icons/MVXMAS/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVXMAS/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVXMAS/skip_sel.png b/icons/MVXMAS/skip_sel.png
new file mode 100644
index 0000000..643447e
Binary files /dev/null and b/icons/MVXMAS/skip_sel.png differ
diff --git a/icons/MVXMAS/text_arrowturn.png b/icons/MVXMAS/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVXMAS/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_arrowturn_cur.png b/icons/MVXMAS/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVXMAS/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_arrowturn_sel.png b/icons/MVXMAS/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVXMAS/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_new.png b/icons/MVXMAS/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVXMAS/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_new_cur.png b/icons/MVXMAS/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVXMAS/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_new_sel.png b/icons/MVXMAS/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVXMAS/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_rec.png b/icons/MVXMAS/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVXMAS/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_rec_cur.png b/icons/MVXMAS/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVXMAS/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_rec_sel.png b/icons/MVXMAS/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVXMAS/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_timer_full.png b/icons/MVXMAS/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVXMAS/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_timer_full_cur.png b/icons/MVXMAS/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVXMAS/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_timer_full_sel.png b/icons/MVXMAS/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVXMAS/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_timer_partial.png b/icons/MVXMAS/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVXMAS/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_timer_partial_cur.png b/icons/MVXMAS/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVXMAS/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_timer_partial_sel.png b/icons/MVXMAS/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVXMAS/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_vps.png b/icons/MVXMAS/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVXMAS/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_vps_cur.png b/icons/MVXMAS/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVXMAS/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVXMAS/text_vps_sel.png b/icons/MVXMAS/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVXMAS/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVXMAS/timerActive.png b/icons/MVXMAS/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVXMAS/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVXMAS/timerInactive.png b/icons/MVXMAS/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVXMAS/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVXMAS/timerRecording.png b/icons/MVXMAS/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVXMAS/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVXMAS/timer_full.png b/icons/MVXMAS/timer_full.png
new file mode 100644
index 0000000..fcd7a09
Binary files /dev/null and b/icons/MVXMAS/timer_full.png differ
diff --git a/icons/MVXMAS/timer_full_cur.png b/icons/MVXMAS/timer_full_cur.png
new file mode 100644
index 0000000..a31c34a
Binary files /dev/null and b/icons/MVXMAS/timer_full_cur.png differ
diff --git a/icons/MVXMAS/timer_partial.png b/icons/MVXMAS/timer_partial.png
new file mode 100644
index 0000000..b0bc56c
Binary files /dev/null and b/icons/MVXMAS/timer_partial.png differ
diff --git a/icons/MVXMAS/timer_partial_cur.png b/icons/MVXMAS/timer_partial_cur.png
new file mode 100644
index 0000000..2950eb9
Binary files /dev/null and b/icons/MVXMAS/timer_partial_cur.png differ
diff --git a/icons/MVXMAS/topbar_timer.png b/icons/MVXMAS/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVXMAS/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVXMAS/topbar_timerconflict_high.png b/icons/MVXMAS/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVXMAS/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVXMAS/topbar_timerconflict_low.png b/icons/MVXMAS/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVXMAS/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVXMAS/tv.png b/icons/MVXMAS/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVXMAS/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVXMAS/uncrypted.png b/icons/MVXMAS/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVXMAS/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVXMAS/unknown_asp.png b/icons/MVXMAS/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVXMAS/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVXMAS/unknown_res.png b/icons/MVXMAS/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVXMAS/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVXMAS/vps.png b/icons/MVXMAS/vps.png
new file mode 100644
index 0000000..7c16cf0
Binary files /dev/null and b/icons/MVXMAS/vps.png differ
diff --git a/icons/MVXMAS/vps_cur.png b/icons/MVXMAS/vps_cur.png
new file mode 100644
index 0000000..703b910
Binary files /dev/null and b/icons/MVXMAS/vps_cur.png differ
diff --git a/icons/MVZitrone/1280x720.png b/icons/MVZitrone/1280x720.png
new file mode 120000
index 0000000..430aa32
--- /dev/null
+++ b/icons/MVZitrone/1280x720.png
@@ -0,0 +1 @@
+../MVdefault/1280x720.png
\ No newline at end of file
diff --git a/icons/MVZitrone/1440x1080.png b/icons/MVZitrone/1440x1080.png
new file mode 120000
index 0000000..41a1815
--- /dev/null
+++ b/icons/MVZitrone/1440x1080.png
@@ -0,0 +1 @@
+../MVdefault/1440x1080.png
\ No newline at end of file
diff --git a/icons/MVZitrone/169.png b/icons/MVZitrone/169.png
new file mode 120000
index 0000000..7508375
--- /dev/null
+++ b/icons/MVZitrone/169.png
@@ -0,0 +1 @@
+../MVdefault/169.png
\ No newline at end of file
diff --git a/icons/MVZitrone/169w.png b/icons/MVZitrone/169w.png
new file mode 120000
index 0000000..9e2ec75
--- /dev/null
+++ b/icons/MVZitrone/169w.png
@@ -0,0 +1 @@
+../MVdefault/169w.png
\ No newline at end of file
diff --git a/icons/MVZitrone/1920x1080.png b/icons/MVZitrone/1920x1080.png
new file mode 120000
index 0000000..3c50167
--- /dev/null
+++ b/icons/MVZitrone/1920x1080.png
@@ -0,0 +1 @@
+../MVdefault/1920x1080.png
\ No newline at end of file
diff --git a/icons/MVZitrone/221.png b/icons/MVZitrone/221.png
new file mode 120000
index 0000000..23aa284
--- /dev/null
+++ b/icons/MVZitrone/221.png
@@ -0,0 +1 @@
+../MVdefault/221.png
\ No newline at end of file
diff --git a/icons/MVZitrone/352x576.png b/icons/MVZitrone/352x576.png
new file mode 120000
index 0000000..94f37ef
--- /dev/null
+++ b/icons/MVZitrone/352x576.png
@@ -0,0 +1 @@
+../MVdefault/352x576.png
\ No newline at end of file
diff --git a/icons/MVZitrone/43.png b/icons/MVZitrone/43.png
new file mode 120000
index 0000000..279f6b8
--- /dev/null
+++ b/icons/MVZitrone/43.png
@@ -0,0 +1 @@
+../MVdefault/43.png
\ No newline at end of file
diff --git a/icons/MVZitrone/480x576.png b/icons/MVZitrone/480x576.png
new file mode 120000
index 0000000..45c0fd6
--- /dev/null
+++ b/icons/MVZitrone/480x576.png
@@ -0,0 +1 @@
+../MVdefault/480x576.png
\ No newline at end of file
diff --git a/icons/MVZitrone/528x576.png b/icons/MVZitrone/528x576.png
new file mode 120000
index 0000000..fb5e3ba
--- /dev/null
+++ b/icons/MVZitrone/528x576.png
@@ -0,0 +1 @@
+../MVdefault/528x576.png
\ No newline at end of file
diff --git a/icons/MVZitrone/544x576.png b/icons/MVZitrone/544x576.png
new file mode 120000
index 0000000..899b0ac
--- /dev/null
+++ b/icons/MVZitrone/544x576.png
@@ -0,0 +1 @@
+../MVdefault/544x576.png
\ No newline at end of file
diff --git a/icons/MVZitrone/704x576.png b/icons/MVZitrone/704x576.png
new file mode 120000
index 0000000..e533b6e
--- /dev/null
+++ b/icons/MVZitrone/704x576.png
@@ -0,0 +1 @@
+../MVdefault/704x576.png
\ No newline at end of file
diff --git a/icons/MVZitrone/720x576.png b/icons/MVZitrone/720x576.png
new file mode 120000
index 0000000..e7cf52e
--- /dev/null
+++ b/icons/MVZitrone/720x576.png
@@ -0,0 +1 @@
+../MVdefault/720x576.png
\ No newline at end of file
diff --git a/icons/MVZitrone/960x720.png b/icons/MVZitrone/960x720.png
new file mode 120000
index 0000000..b419e04
--- /dev/null
+++ b/icons/MVZitrone/960x720.png
@@ -0,0 +1 @@
+../MVdefault/960x720.png
\ No newline at end of file
diff --git a/icons/MVZitrone/blank.png b/icons/MVZitrone/blank.png
new file mode 120000
index 0000000..c0c0911
--- /dev/null
+++ b/icons/MVZitrone/blank.png
@@ -0,0 +1 @@
+../MVdefault/blank.png
\ No newline at end of file
diff --git a/icons/MVZitrone/changroup.png b/icons/MVZitrone/changroup.png
new file mode 100644
index 0000000..a3a5be9
Binary files /dev/null and b/icons/MVZitrone/changroup.png differ
diff --git a/icons/MVZitrone/chart1b.png b/icons/MVZitrone/chart1b.png
new file mode 120000
index 0000000..e1f43c4
--- /dev/null
+++ b/icons/MVZitrone/chart1b.png
@@ -0,0 +1 @@
+../MVdefault/chart1b.png
\ No newline at end of file
diff --git a/icons/MVZitrone/chart2b.png b/icons/MVZitrone/chart2b.png
new file mode 120000
index 0000000..8184251
--- /dev/null
+++ b/icons/MVZitrone/chart2b.png
@@ -0,0 +1 @@
+../MVdefault/chart2b.png
\ No newline at end of file
diff --git a/icons/MVZitrone/chart3b.png b/icons/MVZitrone/chart3b.png
new file mode 120000
index 0000000..d84f26c
--- /dev/null
+++ b/icons/MVZitrone/chart3b.png
@@ -0,0 +1 @@
+../MVdefault/chart3b.png
\ No newline at end of file
diff --git a/icons/MVZitrone/chart4b.png b/icons/MVZitrone/chart4b.png
new file mode 120000
index 0000000..3a67244
--- /dev/null
+++ b/icons/MVZitrone/chart4b.png
@@ -0,0 +1 @@
+../MVdefault/chart4b.png
\ No newline at end of file
diff --git a/icons/MVZitrone/chart5b.png b/icons/MVZitrone/chart5b.png
new file mode 120000
index 0000000..0687cb8
--- /dev/null
+++ b/icons/MVZitrone/chart5b.png
@@ -0,0 +1 @@
+../MVdefault/chart5b.png
\ No newline at end of file
diff --git a/icons/MVZitrone/chart6b.png b/icons/MVZitrone/chart6b.png
new file mode 120000
index 0000000..16ef384
--- /dev/null
+++ b/icons/MVZitrone/chart6b.png
@@ -0,0 +1 @@
+../MVdefault/chart6b.png
\ No newline at end of file
diff --git a/icons/MVZitrone/chart7.png b/icons/MVZitrone/chart7.png
new file mode 120000
index 0000000..a7702b0
--- /dev/null
+++ b/icons/MVZitrone/chart7.png
@@ -0,0 +1 @@
+../MVdefault/chart7.png
\ No newline at end of file
diff --git a/icons/MVZitrone/chart7b.png b/icons/MVZitrone/chart7b.png
new file mode 120000
index 0000000..101813e
--- /dev/null
+++ b/icons/MVZitrone/chart7b.png
@@ -0,0 +1 @@
+../MVdefault/chart7b.png
\ No newline at end of file
diff --git a/icons/MVZitrone/crypted.png b/icons/MVZitrone/crypted.png
new file mode 120000
index 0000000..948eccf
--- /dev/null
+++ b/icons/MVZitrone/crypted.png
@@ -0,0 +1 @@
+../MVdefault/crypted.png
\ No newline at end of file
diff --git a/icons/MVZitrone/forward.png b/icons/MVZitrone/forward.png
new file mode 120000
index 0000000..2fb6b73
--- /dev/null
+++ b/icons/MVZitrone/forward.png
@@ -0,0 +1 @@
+../MVdefault/forward.png
\ No newline at end of file
diff --git a/icons/MVZitrone/forward_sel.png b/icons/MVZitrone/forward_sel.png
new file mode 100644
index 0000000..cde2574
Binary files /dev/null and b/icons/MVZitrone/forward_sel.png differ
diff --git a/icons/MVZitrone/hd.png b/icons/MVZitrone/hd.png
new file mode 120000
index 0000000..da281f8
--- /dev/null
+++ b/icons/MVZitrone/hd.png
@@ -0,0 +1 @@
+../MVdefault/hd.png
\ No newline at end of file
diff --git a/icons/MVZitrone/message_error.png b/icons/MVZitrone/message_error.png
new file mode 120000
index 0000000..60a2753
--- /dev/null
+++ b/icons/MVZitrone/message_error.png
@@ -0,0 +1 @@
+../MVdefault/message_error.png
\ No newline at end of file
diff --git a/icons/MVZitrone/message_info.png b/icons/MVZitrone/message_info.png
new file mode 120000
index 0000000..78bb166
--- /dev/null
+++ b/icons/MVZitrone/message_info.png
@@ -0,0 +1 @@
+../MVdefault/message_info.png
\ No newline at end of file
diff --git a/icons/MVZitrone/message_status.png b/icons/MVZitrone/message_status.png
new file mode 120000
index 0000000..9cdb268
--- /dev/null
+++ b/icons/MVZitrone/message_status.png
@@ -0,0 +1 @@
+../MVdefault/message_status.png
\ No newline at end of file
diff --git a/icons/MVZitrone/message_warning.png b/icons/MVZitrone/message_warning.png
new file mode 120000
index 0000000..8426ee8
--- /dev/null
+++ b/icons/MVZitrone/message_warning.png
@@ -0,0 +1 @@
+../MVdefault/message_warning.png
\ No newline at end of file
diff --git a/icons/MVZitrone/pause.png b/icons/MVZitrone/pause.png
new file mode 120000
index 0000000..99223ef
--- /dev/null
+++ b/icons/MVZitrone/pause.png
@@ -0,0 +1 @@
+../MVdefault/pause.png
\ No newline at end of file
diff --git a/icons/MVZitrone/pause_sel.png b/icons/MVZitrone/pause_sel.png
new file mode 100644
index 0000000..6f8e389
Binary files /dev/null and b/icons/MVZitrone/pause_sel.png differ
diff --git a/icons/MVZitrone/play.png b/icons/MVZitrone/play.png
new file mode 120000
index 0000000..430b019
--- /dev/null
+++ b/icons/MVZitrone/play.png
@@ -0,0 +1 @@
+../MVdefault/play.png
\ No newline at end of file
diff --git a/icons/MVZitrone/play_sel.png b/icons/MVZitrone/play_sel.png
new file mode 100644
index 0000000..f4a07f5
Binary files /dev/null and b/icons/MVZitrone/play_sel.png differ
diff --git a/icons/MVZitrone/prev.png b/icons/MVZitrone/prev.png
new file mode 120000
index 0000000..769c803
--- /dev/null
+++ b/icons/MVZitrone/prev.png
@@ -0,0 +1 @@
+../MVdefault/prev.png
\ No newline at end of file
diff --git a/icons/MVZitrone/prev_sel.png b/icons/MVZitrone/prev_sel.png
new file mode 100644
index 0000000..fedcfbd
Binary files /dev/null and b/icons/MVZitrone/prev_sel.png differ
diff --git a/icons/MVZitrone/radio.png b/icons/MVZitrone/radio.png
new file mode 120000
index 0000000..c33eb66
--- /dev/null
+++ b/icons/MVZitrone/radio.png
@@ -0,0 +1 @@
+../MVdefault/radio.png
\ No newline at end of file
diff --git a/icons/MVZitrone/recording.png b/icons/MVZitrone/recording.png
new file mode 120000
index 0000000..91f539a
--- /dev/null
+++ b/icons/MVZitrone/recording.png
@@ -0,0 +1 @@
+../MVdefault/recording.png
\ No newline at end of file
diff --git a/icons/MVZitrone/recording_cutted.png b/icons/MVZitrone/recording_cutted.png
new file mode 100644
index 0000000..7c4e1d6
Binary files /dev/null and b/icons/MVZitrone/recording_cutted.png differ
diff --git a/icons/MVZitrone/recording_cutted_cur.png b/icons/MVZitrone/recording_cutted_cur.png
new file mode 100644
index 0000000..92f37cb
Binary files /dev/null and b/icons/MVZitrone/recording_cutted_cur.png differ
diff --git a/icons/MVZitrone/recording_cutted_extra.png b/icons/MVZitrone/recording_cutted_extra.png
new file mode 100644
index 0000000..a5ff21d
Binary files /dev/null and b/icons/MVZitrone/recording_cutted_extra.png differ
diff --git a/icons/MVZitrone/recording_new.png b/icons/MVZitrone/recording_new.png
new file mode 100644
index 0000000..19bfc45
Binary files /dev/null and b/icons/MVZitrone/recording_new.png differ
diff --git a/icons/MVZitrone/recording_new_cur.png b/icons/MVZitrone/recording_new_cur.png
new file mode 100644
index 0000000..5f6bc42
Binary files /dev/null and b/icons/MVZitrone/recording_new_cur.png differ
diff --git a/icons/MVZitrone/rewind.png b/icons/MVZitrone/rewind.png
new file mode 120000
index 0000000..e68ea2b
--- /dev/null
+++ b/icons/MVZitrone/rewind.png
@@ -0,0 +1 @@
+../MVdefault/rewind.png
\ No newline at end of file
diff --git a/icons/MVZitrone/rewind_sel.png b/icons/MVZitrone/rewind_sel.png
new file mode 100644
index 0000000..ba2f219
Binary files /dev/null and b/icons/MVZitrone/rewind_sel.png differ
diff --git a/icons/MVZitrone/sd.png b/icons/MVZitrone/sd.png
new file mode 120000
index 0000000..abbf57c
--- /dev/null
+++ b/icons/MVZitrone/sd.png
@@ -0,0 +1 @@
+../MVdefault/sd.png
\ No newline at end of file
diff --git a/icons/MVZitrone/skip.png b/icons/MVZitrone/skip.png
new file mode 120000
index 0000000..6c05a7b
--- /dev/null
+++ b/icons/MVZitrone/skip.png
@@ -0,0 +1 @@
+../MVdefault/skip.png
\ No newline at end of file
diff --git a/icons/MVZitrone/skip_sel.png b/icons/MVZitrone/skip_sel.png
new file mode 100644
index 0000000..c77c374
Binary files /dev/null and b/icons/MVZitrone/skip_sel.png differ
diff --git a/icons/MVZitrone/text_arrowturn.png b/icons/MVZitrone/text_arrowturn.png
new file mode 120000
index 0000000..9a442d6
--- /dev/null
+++ b/icons/MVZitrone/text_arrowturn.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_arrowturn_cur.png b/icons/MVZitrone/text_arrowturn_cur.png
new file mode 120000
index 0000000..bf042ec
--- /dev/null
+++ b/icons/MVZitrone/text_arrowturn_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_cur.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_arrowturn_sel.png b/icons/MVZitrone/text_arrowturn_sel.png
new file mode 120000
index 0000000..94d2bdb
--- /dev/null
+++ b/icons/MVZitrone/text_arrowturn_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_arrowturn_sel.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_new.png b/icons/MVZitrone/text_new.png
new file mode 120000
index 0000000..d32fc45
--- /dev/null
+++ b/icons/MVZitrone/text_new.png
@@ -0,0 +1 @@
+../MVdefault/text_new.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_new_cur.png b/icons/MVZitrone/text_new_cur.png
new file mode 120000
index 0000000..3ac2804
--- /dev/null
+++ b/icons/MVZitrone/text_new_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_new_cur.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_new_sel.png b/icons/MVZitrone/text_new_sel.png
new file mode 120000
index 0000000..a573144
--- /dev/null
+++ b/icons/MVZitrone/text_new_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_new_sel.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_rec.png b/icons/MVZitrone/text_rec.png
new file mode 120000
index 0000000..cbdeaa0
--- /dev/null
+++ b/icons/MVZitrone/text_rec.png
@@ -0,0 +1 @@
+../MVdefault/text_rec.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_rec_cur.png b/icons/MVZitrone/text_rec_cur.png
new file mode 120000
index 0000000..bf59c48
--- /dev/null
+++ b/icons/MVZitrone/text_rec_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_cur.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_rec_sel.png b/icons/MVZitrone/text_rec_sel.png
new file mode 120000
index 0000000..49413a1
--- /dev/null
+++ b/icons/MVZitrone/text_rec_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_rec_sel.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_timer_full.png b/icons/MVZitrone/text_timer_full.png
new file mode 120000
index 0000000..626bd59
--- /dev/null
+++ b/icons/MVZitrone/text_timer_full.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_timer_full_cur.png b/icons/MVZitrone/text_timer_full_cur.png
new file mode 120000
index 0000000..4d23147
--- /dev/null
+++ b/icons/MVZitrone/text_timer_full_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_cur.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_timer_full_sel.png b/icons/MVZitrone/text_timer_full_sel.png
new file mode 120000
index 0000000..cbf4652
--- /dev/null
+++ b/icons/MVZitrone/text_timer_full_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_full_sel.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_timer_partial.png b/icons/MVZitrone/text_timer_partial.png
new file mode 120000
index 0000000..46c0a4d
--- /dev/null
+++ b/icons/MVZitrone/text_timer_partial.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_timer_partial_cur.png b/icons/MVZitrone/text_timer_partial_cur.png
new file mode 120000
index 0000000..1c921c6
--- /dev/null
+++ b/icons/MVZitrone/text_timer_partial_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_cur.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_timer_partial_sel.png b/icons/MVZitrone/text_timer_partial_sel.png
new file mode 120000
index 0000000..3e91ad5
--- /dev/null
+++ b/icons/MVZitrone/text_timer_partial_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_timer_partial_sel.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_vps.png b/icons/MVZitrone/text_vps.png
new file mode 120000
index 0000000..11bfc96
--- /dev/null
+++ b/icons/MVZitrone/text_vps.png
@@ -0,0 +1 @@
+../MVdefault/text_vps.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_vps_cur.png b/icons/MVZitrone/text_vps_cur.png
new file mode 120000
index 0000000..04e7ca2
--- /dev/null
+++ b/icons/MVZitrone/text_vps_cur.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_cur.png
\ No newline at end of file
diff --git a/icons/MVZitrone/text_vps_sel.png b/icons/MVZitrone/text_vps_sel.png
new file mode 120000
index 0000000..5ddf6a3
--- /dev/null
+++ b/icons/MVZitrone/text_vps_sel.png
@@ -0,0 +1 @@
+../MVdefault/text_vps_sel.png
\ No newline at end of file
diff --git a/icons/MVZitrone/timerActive.png b/icons/MVZitrone/timerActive.png
new file mode 120000
index 0000000..1d7e9a4
--- /dev/null
+++ b/icons/MVZitrone/timerActive.png
@@ -0,0 +1 @@
+../MVdefault/timerActive.png
\ No newline at end of file
diff --git a/icons/MVZitrone/timerInactive.png b/icons/MVZitrone/timerInactive.png
new file mode 120000
index 0000000..d78c031
--- /dev/null
+++ b/icons/MVZitrone/timerInactive.png
@@ -0,0 +1 @@
+../MVdefault/timerInactive.png
\ No newline at end of file
diff --git a/icons/MVZitrone/timerRecording.png b/icons/MVZitrone/timerRecording.png
new file mode 120000
index 0000000..b8a89b1
--- /dev/null
+++ b/icons/MVZitrone/timerRecording.png
@@ -0,0 +1 @@
+../MVdefault/timerRecording.png
\ No newline at end of file
diff --git a/icons/MVZitrone/timer_full.png b/icons/MVZitrone/timer_full.png
new file mode 100644
index 0000000..ed7bf54
Binary files /dev/null and b/icons/MVZitrone/timer_full.png differ
diff --git a/icons/MVZitrone/timer_full_cur.png b/icons/MVZitrone/timer_full_cur.png
new file mode 100644
index 0000000..3263392
Binary files /dev/null and b/icons/MVZitrone/timer_full_cur.png differ
diff --git a/icons/MVZitrone/timer_partial.png b/icons/MVZitrone/timer_partial.png
new file mode 100644
index 0000000..ddb28b4
Binary files /dev/null and b/icons/MVZitrone/timer_partial.png differ
diff --git a/icons/MVZitrone/timer_partial_cur.png b/icons/MVZitrone/timer_partial_cur.png
new file mode 100644
index 0000000..aaccbf9
Binary files /dev/null and b/icons/MVZitrone/timer_partial_cur.png differ
diff --git a/icons/MVZitrone/topbar_timer.png b/icons/MVZitrone/topbar_timer.png
new file mode 120000
index 0000000..f94bc90
--- /dev/null
+++ b/icons/MVZitrone/topbar_timer.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timer.png
\ No newline at end of file
diff --git a/icons/MVZitrone/topbar_timerconflict_high.png b/icons/MVZitrone/topbar_timerconflict_high.png
new file mode 120000
index 0000000..c28186c
--- /dev/null
+++ b/icons/MVZitrone/topbar_timerconflict_high.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_high.png
\ No newline at end of file
diff --git a/icons/MVZitrone/topbar_timerconflict_low.png b/icons/MVZitrone/topbar_timerconflict_low.png
new file mode 120000
index 0000000..edaf7f5
--- /dev/null
+++ b/icons/MVZitrone/topbar_timerconflict_low.png
@@ -0,0 +1 @@
+../MVdefault/topbar_timerconflict_low.png
\ No newline at end of file
diff --git a/icons/MVZitrone/tv.png b/icons/MVZitrone/tv.png
new file mode 120000
index 0000000..34743b4
--- /dev/null
+++ b/icons/MVZitrone/tv.png
@@ -0,0 +1 @@
+../MVdefault/tv.png
\ No newline at end of file
diff --git a/icons/MVZitrone/uncrypted.png b/icons/MVZitrone/uncrypted.png
new file mode 120000
index 0000000..aef34df
--- /dev/null
+++ b/icons/MVZitrone/uncrypted.png
@@ -0,0 +1 @@
+../MVdefault/uncrypted.png
\ No newline at end of file
diff --git a/icons/MVZitrone/unknown_asp.png b/icons/MVZitrone/unknown_asp.png
new file mode 120000
index 0000000..38df818
--- /dev/null
+++ b/icons/MVZitrone/unknown_asp.png
@@ -0,0 +1 @@
+../MVdefault/unknown_asp.png
\ No newline at end of file
diff --git a/icons/MVZitrone/unknown_res.png b/icons/MVZitrone/unknown_res.png
new file mode 120000
index 0000000..3aa9b58
--- /dev/null
+++ b/icons/MVZitrone/unknown_res.png
@@ -0,0 +1 @@
+../MVdefault/unknown_res.png
\ No newline at end of file
diff --git a/icons/MVZitrone/vps.png b/icons/MVZitrone/vps.png
new file mode 100644
index 0000000..28587e3
Binary files /dev/null and b/icons/MVZitrone/vps.png differ
diff --git a/icons/MVZitrone/vps_cur.png b/icons/MVZitrone/vps_cur.png
new file mode 100644
index 0000000..8d5c5d7
Binary files /dev/null and b/icons/MVZitrone/vps_cur.png differ
diff --git a/icons/MVdefault/1280x720.png b/icons/MVdefault/1280x720.png
new file mode 100644
index 0000000..94e6ad7
Binary files /dev/null and b/icons/MVdefault/1280x720.png differ
diff --git a/icons/MVdefault/1440x1080.png b/icons/MVdefault/1440x1080.png
new file mode 100644
index 0000000..257fa60
Binary files /dev/null and b/icons/MVdefault/1440x1080.png differ
diff --git a/icons/MVdefault/169.png b/icons/MVdefault/169.png
new file mode 100644
index 0000000..0d9ad98
Binary files /dev/null and b/icons/MVdefault/169.png differ
diff --git a/icons/MVdefault/169w.png b/icons/MVdefault/169w.png
new file mode 100644
index 0000000..0f858c1
Binary files /dev/null and b/icons/MVdefault/169w.png differ
diff --git a/icons/MVdefault/1920x1080.png b/icons/MVdefault/1920x1080.png
new file mode 100644
index 0000000..12259c6
Binary files /dev/null and b/icons/MVdefault/1920x1080.png differ
diff --git a/icons/MVdefault/221.png b/icons/MVdefault/221.png
new file mode 100644
index 0000000..8b43485
Binary files /dev/null and b/icons/MVdefault/221.png differ
diff --git a/icons/MVdefault/352x576.png b/icons/MVdefault/352x576.png
new file mode 100644
index 0000000..d48451d
Binary files /dev/null and b/icons/MVdefault/352x576.png differ
diff --git a/icons/MVdefault/43.png b/icons/MVdefault/43.png
new file mode 100644
index 0000000..82371d7
Binary files /dev/null and b/icons/MVdefault/43.png differ
diff --git a/icons/MVdefault/480x576.png b/icons/MVdefault/480x576.png
new file mode 100644
index 0000000..236cb31
Binary files /dev/null and b/icons/MVdefault/480x576.png differ
diff --git a/icons/MVdefault/528x576.png b/icons/MVdefault/528x576.png
new file mode 100644
index 0000000..b1e6c84
Binary files /dev/null and b/icons/MVdefault/528x576.png differ
diff --git a/icons/MVdefault/544x576.png b/icons/MVdefault/544x576.png
new file mode 100644
index 0000000..8e3f286
Binary files /dev/null and b/icons/MVdefault/544x576.png differ
diff --git a/icons/MVdefault/704x576.png b/icons/MVdefault/704x576.png
new file mode 100644
index 0000000..bbab373
Binary files /dev/null and b/icons/MVdefault/704x576.png differ
diff --git a/icons/MVdefault/720x576.png b/icons/MVdefault/720x576.png
new file mode 100644
index 0000000..2d75b69
Binary files /dev/null and b/icons/MVdefault/720x576.png differ
diff --git a/icons/MVdefault/960x720.png b/icons/MVdefault/960x720.png
new file mode 100644
index 0000000..1239a2b
Binary files /dev/null and b/icons/MVdefault/960x720.png differ
diff --git a/icons/MVdefault/blank.png b/icons/MVdefault/blank.png
new file mode 100644
index 0000000..f6cc88e
Binary files /dev/null and b/icons/MVdefault/blank.png differ
diff --git a/icons/MVdefault/changroup.png b/icons/MVdefault/changroup.png
new file mode 100644
index 0000000..9871a49
Binary files /dev/null and b/icons/MVdefault/changroup.png differ
diff --git a/icons/MVdefault/chart1b.png b/icons/MVdefault/chart1b.png
new file mode 120000
index 0000000..a5db2d5
--- /dev/null
+++ b/icons/MVdefault/chart1b.png
@@ -0,0 +1 @@
+chart7.png
\ No newline at end of file
diff --git a/icons/MVdefault/chart2b.png b/icons/MVdefault/chart2b.png
new file mode 120000
index 0000000..c1261f5
--- /dev/null
+++ b/icons/MVdefault/chart2b.png
@@ -0,0 +1 @@
+../default/chart6.png
\ No newline at end of file
diff --git a/icons/MVdefault/chart3b.png b/icons/MVdefault/chart3b.png
new file mode 120000
index 0000000..cc57e90
--- /dev/null
+++ b/icons/MVdefault/chart3b.png
@@ -0,0 +1 @@
+../default/chart5.png
\ No newline at end of file
diff --git a/icons/MVdefault/chart4b.png b/icons/MVdefault/chart4b.png
new file mode 120000
index 0000000..6703851
--- /dev/null
+++ b/icons/MVdefault/chart4b.png
@@ -0,0 +1 @@
+../default/chart4.png
\ No newline at end of file
diff --git a/icons/MVdefault/chart5b.png b/icons/MVdefault/chart5b.png
new file mode 120000
index 0000000..c033e16
--- /dev/null
+++ b/icons/MVdefault/chart5b.png
@@ -0,0 +1 @@
+../default/chart3.png
\ No newline at end of file
diff --git a/icons/MVdefault/chart6b.png b/icons/MVdefault/chart6b.png
new file mode 120000
index 0000000..32089c8
--- /dev/null
+++ b/icons/MVdefault/chart6b.png
@@ -0,0 +1 @@
+../default/chart2.png
\ No newline at end of file
diff --git a/icons/MVdefault/chart7.png b/icons/MVdefault/chart7.png
new file mode 100644
index 0000000..d4a764e
Binary files /dev/null and b/icons/MVdefault/chart7.png differ
diff --git a/icons/MVdefault/chart7b.png b/icons/MVdefault/chart7b.png
new file mode 120000
index 0000000..bff412a
--- /dev/null
+++ b/icons/MVdefault/chart7b.png
@@ -0,0 +1 @@
+../default/chart1.png
\ No newline at end of file
diff --git a/icons/MVdefault/crypted.png b/icons/MVdefault/crypted.png
new file mode 100644
index 0000000..86c9d09
Binary files /dev/null and b/icons/MVdefault/crypted.png differ
diff --git a/icons/MVdefault/forward.png b/icons/MVdefault/forward.png
new file mode 100644
index 0000000..bbefa1c
Binary files /dev/null and b/icons/MVdefault/forward.png differ
diff --git a/icons/MVdefault/forward_sel.png b/icons/MVdefault/forward_sel.png
new file mode 100644
index 0000000..b7464a8
Binary files /dev/null and b/icons/MVdefault/forward_sel.png differ
diff --git a/icons/MVdefault/hd.png b/icons/MVdefault/hd.png
new file mode 100644
index 0000000..eb9f961
Binary files /dev/null and b/icons/MVdefault/hd.png differ
diff --git a/icons/MVdefault/message_error.png b/icons/MVdefault/message_error.png
new file mode 100644
index 0000000..f1f8a41
Binary files /dev/null and b/icons/MVdefault/message_error.png differ
diff --git a/icons/MVdefault/message_info.png b/icons/MVdefault/message_info.png
new file mode 100644
index 0000000..40cc2d6
Binary files /dev/null and b/icons/MVdefault/message_info.png differ
diff --git a/icons/MVdefault/message_status.png b/icons/MVdefault/message_status.png
new file mode 100644
index 0000000..4b011d3
Binary files /dev/null and b/icons/MVdefault/message_status.png differ
diff --git a/icons/MVdefault/message_warning.png b/icons/MVdefault/message_warning.png
new file mode 100644
index 0000000..c909d0f
Binary files /dev/null and b/icons/MVdefault/message_warning.png differ
diff --git a/icons/MVdefault/pause.png b/icons/MVdefault/pause.png
new file mode 100644
index 0000000..df4062c
Binary files /dev/null and b/icons/MVdefault/pause.png differ
diff --git a/icons/MVdefault/pause_sel.png b/icons/MVdefault/pause_sel.png
new file mode 100644
index 0000000..1755f16
Binary files /dev/null and b/icons/MVdefault/pause_sel.png differ
diff --git a/icons/MVdefault/play.png b/icons/MVdefault/play.png
new file mode 100644
index 0000000..8c00f5f
Binary files /dev/null and b/icons/MVdefault/play.png differ
diff --git a/icons/MVdefault/play_sel.png b/icons/MVdefault/play_sel.png
new file mode 100644
index 0000000..84e8a6e
Binary files /dev/null and b/icons/MVdefault/play_sel.png differ
diff --git a/icons/MVdefault/prev.png b/icons/MVdefault/prev.png
new file mode 100644
index 0000000..473b4f7
Binary files /dev/null and b/icons/MVdefault/prev.png differ
diff --git a/icons/MVdefault/prev_sel.png b/icons/MVdefault/prev_sel.png
new file mode 100644
index 0000000..4a7f813
Binary files /dev/null and b/icons/MVdefault/prev_sel.png differ
diff --git a/icons/MVdefault/radio.png b/icons/MVdefault/radio.png
new file mode 100644
index 0000000..2c3e928
Binary files /dev/null and b/icons/MVdefault/radio.png differ
diff --git a/icons/MVdefault/recording.png b/icons/MVdefault/recording.png
new file mode 100644
index 0000000..35d2187
Binary files /dev/null and b/icons/MVdefault/recording.png differ
diff --git a/icons/MVdefault/recording_cutted.png b/icons/MVdefault/recording_cutted.png
new file mode 100644
index 0000000..fa59d25
Binary files /dev/null and b/icons/MVdefault/recording_cutted.png differ
diff --git a/icons/MVdefault/recording_cutted_cur.png b/icons/MVdefault/recording_cutted_cur.png
new file mode 100644
index 0000000..2258230
Binary files /dev/null and b/icons/MVdefault/recording_cutted_cur.png differ
diff --git a/icons/MVdefault/recording_cutted_extra.png b/icons/MVdefault/recording_cutted_extra.png
new file mode 100644
index 0000000..c61e9f5
Binary files /dev/null and b/icons/MVdefault/recording_cutted_extra.png differ
diff --git a/icons/MVdefault/recording_new.png b/icons/MVdefault/recording_new.png
new file mode 100644
index 0000000..9b9a519
Binary files /dev/null and b/icons/MVdefault/recording_new.png differ
diff --git a/icons/MVdefault/recording_new_cur.png b/icons/MVdefault/recording_new_cur.png
new file mode 100644
index 0000000..53dfe00
Binary files /dev/null and b/icons/MVdefault/recording_new_cur.png differ
diff --git a/icons/MVdefault/rewind.png b/icons/MVdefault/rewind.png
new file mode 100644
index 0000000..92e120f
Binary files /dev/null and b/icons/MVdefault/rewind.png differ
diff --git a/icons/MVdefault/rewind_sel.png b/icons/MVdefault/rewind_sel.png
new file mode 100644
index 0000000..393e1bc
Binary files /dev/null and b/icons/MVdefault/rewind_sel.png differ
diff --git a/icons/MVdefault/sd.png b/icons/MVdefault/sd.png
new file mode 100644
index 0000000..5c63fed
Binary files /dev/null and b/icons/MVdefault/sd.png differ
diff --git a/icons/MVdefault/skip.png b/icons/MVdefault/skip.png
new file mode 100644
index 0000000..650ea8b
Binary files /dev/null and b/icons/MVdefault/skip.png differ
diff --git a/icons/MVdefault/skip_sel.png b/icons/MVdefault/skip_sel.png
new file mode 100644
index 0000000..1ef72ba
Binary files /dev/null and b/icons/MVdefault/skip_sel.png differ
diff --git a/icons/MVdefault/text_arrowturn.png b/icons/MVdefault/text_arrowturn.png
new file mode 100644
index 0000000..b4af6fd
Binary files /dev/null and b/icons/MVdefault/text_arrowturn.png differ
diff --git a/icons/MVdefault/text_arrowturn_cur.png b/icons/MVdefault/text_arrowturn_cur.png
new file mode 120000
index 0000000..59ec676
--- /dev/null
+++ b/icons/MVdefault/text_arrowturn_cur.png
@@ -0,0 +1 @@
+text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_arrowturn_sel.png b/icons/MVdefault/text_arrowturn_sel.png
new file mode 120000
index 0000000..59ec676
--- /dev/null
+++ b/icons/MVdefault/text_arrowturn_sel.png
@@ -0,0 +1 @@
+text_arrowturn.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_new.png b/icons/MVdefault/text_new.png
new file mode 120000
index 0000000..5c63109
--- /dev/null
+++ b/icons/MVdefault/text_new.png
@@ -0,0 +1 @@
+recording_new.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_new_cur.png b/icons/MVdefault/text_new_cur.png
new file mode 120000
index 0000000..5c63109
--- /dev/null
+++ b/icons/MVdefault/text_new_cur.png
@@ -0,0 +1 @@
+recording_new.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_new_sel.png b/icons/MVdefault/text_new_sel.png
new file mode 120000
index 0000000..5c63109
--- /dev/null
+++ b/icons/MVdefault/text_new_sel.png
@@ -0,0 +1 @@
+recording_new.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_rec.png b/icons/MVdefault/text_rec.png
new file mode 120000
index 0000000..9f1f56d
--- /dev/null
+++ b/icons/MVdefault/text_rec.png
@@ -0,0 +1 @@
+timerRecording.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_rec_cur.png b/icons/MVdefault/text_rec_cur.png
new file mode 120000
index 0000000..9f1f56d
--- /dev/null
+++ b/icons/MVdefault/text_rec_cur.png
@@ -0,0 +1 @@
+timerRecording.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_rec_sel.png b/icons/MVdefault/text_rec_sel.png
new file mode 120000
index 0000000..9f1f56d
--- /dev/null
+++ b/icons/MVdefault/text_rec_sel.png
@@ -0,0 +1 @@
+timerRecording.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_timer_full.png b/icons/MVdefault/text_timer_full.png
new file mode 100644
index 0000000..273549b
Binary files /dev/null and b/icons/MVdefault/text_timer_full.png differ
diff --git a/icons/MVdefault/text_timer_full_cur.png b/icons/MVdefault/text_timer_full_cur.png
new file mode 120000
index 0000000..a3ba4fd
--- /dev/null
+++ b/icons/MVdefault/text_timer_full_cur.png
@@ -0,0 +1 @@
+text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_timer_full_sel.png b/icons/MVdefault/text_timer_full_sel.png
new file mode 120000
index 0000000..a3ba4fd
--- /dev/null
+++ b/icons/MVdefault/text_timer_full_sel.png
@@ -0,0 +1 @@
+text_timer_full.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_timer_partial.png b/icons/MVdefault/text_timer_partial.png
new file mode 120000
index 0000000..161653e
--- /dev/null
+++ b/icons/MVdefault/text_timer_partial.png
@@ -0,0 +1 @@
+timer_partial.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_timer_partial_cur.png b/icons/MVdefault/text_timer_partial_cur.png
new file mode 120000
index 0000000..161653e
--- /dev/null
+++ b/icons/MVdefault/text_timer_partial_cur.png
@@ -0,0 +1 @@
+timer_partial.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_timer_partial_sel.png b/icons/MVdefault/text_timer_partial_sel.png
new file mode 120000
index 0000000..161653e
--- /dev/null
+++ b/icons/MVdefault/text_timer_partial_sel.png
@@ -0,0 +1 @@
+timer_partial.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_vps.png b/icons/MVdefault/text_vps.png
new file mode 120000
index 0000000..c4c9fd0
--- /dev/null
+++ b/icons/MVdefault/text_vps.png
@@ -0,0 +1 @@
+vps.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_vps_cur.png b/icons/MVdefault/text_vps_cur.png
new file mode 120000
index 0000000..c4c9fd0
--- /dev/null
+++ b/icons/MVdefault/text_vps_cur.png
@@ -0,0 +1 @@
+vps.png
\ No newline at end of file
diff --git a/icons/MVdefault/text_vps_sel.png b/icons/MVdefault/text_vps_sel.png
new file mode 120000
index 0000000..c4c9fd0
--- /dev/null
+++ b/icons/MVdefault/text_vps_sel.png
@@ -0,0 +1 @@
+vps.png
\ No newline at end of file
diff --git a/icons/MVdefault/timerActive.png b/icons/MVdefault/timerActive.png
new file mode 100644
index 0000000..cee0194
Binary files /dev/null and b/icons/MVdefault/timerActive.png differ
diff --git a/icons/MVdefault/timerInactive.png b/icons/MVdefault/timerInactive.png
new file mode 100644
index 0000000..fb1b0b7
Binary files /dev/null and b/icons/MVdefault/timerInactive.png differ
diff --git a/icons/MVdefault/timerRecording.png b/icons/MVdefault/timerRecording.png
new file mode 100644
index 0000000..dc65aa5
Binary files /dev/null and b/icons/MVdefault/timerRecording.png differ
diff --git a/icons/MVdefault/timer_full.png b/icons/MVdefault/timer_full.png
new file mode 100644
index 0000000..8169dbb
Binary files /dev/null and b/icons/MVdefault/timer_full.png differ
diff --git a/icons/MVdefault/timer_full_cur.png b/icons/MVdefault/timer_full_cur.png
new file mode 100644
index 0000000..abe1161
Binary files /dev/null and b/icons/MVdefault/timer_full_cur.png differ
diff --git a/icons/MVdefault/timer_partial.png b/icons/MVdefault/timer_partial.png
new file mode 100644
index 0000000..2c89ffe
Binary files /dev/null and b/icons/MVdefault/timer_partial.png differ
diff --git a/icons/MVdefault/timer_partial_cur.png b/icons/MVdefault/timer_partial_cur.png
new file mode 100644
index 0000000..8d1d497
Binary files /dev/null and b/icons/MVdefault/timer_partial_cur.png differ
diff --git a/icons/MVdefault/topbar_timer.png b/icons/MVdefault/topbar_timer.png
new file mode 100644
index 0000000..d0d727f
Binary files /dev/null and b/icons/MVdefault/topbar_timer.png differ
diff --git a/icons/MVdefault/topbar_timerconflict_high.png b/icons/MVdefault/topbar_timerconflict_high.png
new file mode 100644
index 0000000..237af9f
Binary files /dev/null and b/icons/MVdefault/topbar_timerconflict_high.png differ
diff --git a/icons/MVdefault/topbar_timerconflict_low.png b/icons/MVdefault/topbar_timerconflict_low.png
new file mode 100644
index 0000000..36f1cdf
Binary files /dev/null and b/icons/MVdefault/topbar_timerconflict_low.png differ
diff --git a/icons/MVdefault/tv.png b/icons/MVdefault/tv.png
new file mode 100644
index 0000000..9043dab
Binary files /dev/null and b/icons/MVdefault/tv.png differ
diff --git a/icons/MVdefault/uncrypted.png b/icons/MVdefault/uncrypted.png
new file mode 100644
index 0000000..47b0948
Binary files /dev/null and b/icons/MVdefault/uncrypted.png differ
diff --git a/icons/MVdefault/unknown_asp.png b/icons/MVdefault/unknown_asp.png
new file mode 100644
index 0000000..2f3b8a2
Binary files /dev/null and b/icons/MVdefault/unknown_asp.png differ
diff --git a/icons/MVdefault/unknown_res.png b/icons/MVdefault/unknown_res.png
new file mode 100644
index 0000000..a3ad97f
Binary files /dev/null and b/icons/MVdefault/unknown_res.png differ
diff --git a/icons/MVdefault/vps.png b/icons/MVdefault/vps.png
new file mode 100644
index 0000000..94734d0
Binary files /dev/null and b/icons/MVdefault/vps.png differ
diff --git a/icons/MVdefault/vps_cur.png b/icons/MVdefault/vps_cur.png
new file mode 100644
index 0000000..47d4aea
Binary files /dev/null and b/icons/MVdefault/vps_cur.png differ
diff --git a/icons/default/1280x720.png b/icons/default/1280x720.png
new file mode 100644
index 0000000..6153267
Binary files /dev/null and b/icons/default/1280x720.png differ
diff --git a/icons/default/1440x1080.png b/icons/default/1440x1080.png
new file mode 100644
index 0000000..d8cdcd4
Binary files /dev/null and b/icons/default/1440x1080.png differ
diff --git a/icons/default/169.png b/icons/default/169.png
new file mode 100644
index 0000000..b92771c
Binary files /dev/null and b/icons/default/169.png differ
diff --git a/icons/default/169w.png b/icons/default/169w.png
new file mode 100644
index 0000000..a48589c
Binary files /dev/null and b/icons/default/169w.png differ
diff --git a/icons/default/1920x1080.png b/icons/default/1920x1080.png
new file mode 100644
index 0000000..4da119e
Binary files /dev/null and b/icons/default/1920x1080.png differ
diff --git a/icons/default/221.png b/icons/default/221.png
new file mode 100644
index 0000000..f7490c9
Binary files /dev/null and b/icons/default/221.png differ
diff --git a/icons/default/352x576.png b/icons/default/352x576.png
new file mode 100644
index 0000000..e490b95
Binary files /dev/null and b/icons/default/352x576.png differ
diff --git a/icons/default/43.png b/icons/default/43.png
new file mode 100644
index 0000000..f181a9b
Binary files /dev/null and b/icons/default/43.png differ
diff --git a/icons/default/480x576.png b/icons/default/480x576.png
new file mode 100644
index 0000000..10dad84
Binary files /dev/null and b/icons/default/480x576.png differ
diff --git a/icons/default/528x576.png b/icons/default/528x576.png
new file mode 100644
index 0000000..b36cc98
Binary files /dev/null and b/icons/default/528x576.png differ
diff --git a/icons/default/544x576.png b/icons/default/544x576.png
new file mode 100644
index 0000000..0da26e1
Binary files /dev/null and b/icons/default/544x576.png differ
diff --git a/icons/default/704x576.png b/icons/default/704x576.png
new file mode 100644
index 0000000..1f20468
Binary files /dev/null and b/icons/default/704x576.png differ
diff --git a/icons/default/720x576.png b/icons/default/720x576.png
new file mode 100644
index 0000000..2862299
Binary files /dev/null and b/icons/default/720x576.png differ
diff --git a/icons/default/960x720.png b/icons/default/960x720.png
new file mode 100644
index 0000000..5b5ac65
Binary files /dev/null and b/icons/default/960x720.png differ
diff --git a/icons/default/EPGInfo/FSK/FSK_0.png b/icons/default/EPGInfo/FSK/FSK_0.png
new file mode 100644
index 0000000..661f500
Binary files /dev/null and b/icons/default/EPGInfo/FSK/FSK_0.png differ
diff --git a/icons/default/EPGInfo/FSK/ab 12.png b/icons/default/EPGInfo/FSK/ab 12.png
new file mode 100644
index 0000000..6f1f01d
Binary files /dev/null and b/icons/default/EPGInfo/FSK/ab 12.png differ
diff --git a/icons/default/EPGInfo/FSK/ab 16.png b/icons/default/EPGInfo/FSK/ab 16.png
new file mode 100644
index 0000000..b53ffbd
Binary files /dev/null and b/icons/default/EPGInfo/FSK/ab 16.png differ
diff --git a/icons/default/EPGInfo/FSK/ab 18.png b/icons/default/EPGInfo/FSK/ab 18.png
new file mode 100644
index 0000000..550a3b9
Binary files /dev/null and b/icons/default/EPGInfo/FSK/ab 18.png differ
diff --git a/icons/default/EPGInfo/FSK/ab 6.png b/icons/default/EPGInfo/FSK/ab 6.png
new file mode 100644
index 0000000..2dcd5a6
Binary files /dev/null and b/icons/default/EPGInfo/FSK/ab 6.png differ
diff --git a/icons/default/EPGInfo/FSK/unknown.png b/icons/default/EPGInfo/FSK/unknown.png
new file mode 100644
index 0000000..645b77c
Binary files /dev/null and b/icons/default/EPGInfo/FSK/unknown.png differ
diff --git a/icons/default/EPGInfo/FSK/unknown2.png b/icons/default/EPGInfo/FSK/unknown2.png
new file mode 100644
index 0000000..5a0706e
Binary files /dev/null and b/icons/default/EPGInfo/FSK/unknown2.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Abenteuer.png b/icons/default/EPGInfo/Genre/A0A0A0/Abenteuer.png
new file mode 100644
index 0000000..c34a879
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Abenteuer.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Action.png b/icons/default/EPGInfo/Genre/A0A0A0/Action.png
new file mode 100644
index 0000000..ce6581c
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Action.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Action2.png b/icons/default/EPGInfo/Genre/A0A0A0/Action2.png
new file mode 100644
index 0000000..13eaea7
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Action2.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Administrator2.png b/icons/default/EPGInfo/Genre/A0A0A0/Administrator2.png
new file mode 100644
index 0000000..cdc3f28
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Administrator2.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Adventure_Western_War.png b/icons/default/EPGInfo/Genre/A0A0A0/Adventure_Western_War.png
new file mode 100644
index 0000000..78e0042
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Adventure_Western_War.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Applouse.png b/icons/default/EPGInfo/Genre/A0A0A0/Applouse.png
new file mode 100644
index 0000000..3bff454
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Applouse.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Archeology.png b/icons/default/EPGInfo/Genre/A0A0A0/Archeology.png
new file mode 100644
index 0000000..8542fbf
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Archeology.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Arts_Culture.png b/icons/default/EPGInfo/Genre/A0A0A0/Arts_Culture.png
new file mode 100644
index 0000000..6869168
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Arts_Culture.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Assistant.png b/icons/default/EPGInfo/Genre/A0A0A0/Assistant.png
new file mode 100644
index 0000000..588afdf
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Assistant.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Audience.png b/icons/default/EPGInfo/Genre/A0A0A0/Audience.png
new file mode 100644
index 0000000..4f0590e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Audience.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Baby.png b/icons/default/EPGInfo/Genre/A0A0A0/Baby.png
new file mode 100644
index 0000000..e93522e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Baby.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Ballet_Shoes.png b/icons/default/EPGInfo/Genre/A0A0A0/Ballet_Shoes.png
new file mode 100644
index 0000000..aaf772e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Ballet_Shoes.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Beach.png b/icons/default/EPGInfo/Genre/A0A0A0/Beach.png
new file mode 100644
index 0000000..097acf1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Beach.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Binoculars.png b/icons/default/EPGInfo/Genre/A0A0A0/Binoculars.png
new file mode 100644
index 0000000..12bd009
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Binoculars.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Black_White.png b/icons/default/EPGInfo/Genre/A0A0A0/Black_White.png
new file mode 100644
index 0000000..f37786e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Black_White.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Books.png b/icons/default/EPGInfo/Genre/A0A0A0/Books.png
new file mode 100644
index 0000000..ca25837
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Books.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Bowling.png b/icons/default/EPGInfo/Genre/A0A0A0/Bowling.png
new file mode 100644
index 0000000..1e015e1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Bowling.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Boxing.png b/icons/default/EPGInfo/Genre/A0A0A0/Boxing.png
new file mode 100644
index 0000000..5cfeeca
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Boxing.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Brain.png b/icons/default/EPGInfo/Genre/A0A0A0/Brain.png
new file mode 100644
index 0000000..1cb657c
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Brain.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Breast.png b/icons/default/EPGInfo/Genre/A0A0A0/Breast.png
new file mode 100644
index 0000000..ab46c2c
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Breast.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Brick.png b/icons/default/EPGInfo/Genre/A0A0A0/Brick.png
new file mode 100644
index 0000000..f2402ba
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Brick.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Brick2.png b/icons/default/EPGInfo/Genre/A0A0A0/Brick2.png
new file mode 100644
index 0000000..e849b88
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Brick2.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Broadcasting.png b/icons/default/EPGInfo/Genre/A0A0A0/Broadcasting.png
new file mode 100644
index 0000000..6f48108
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Broadcasting.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Bunch_Flowers.png b/icons/default/EPGInfo/Genre/A0A0A0/Bunch_Flowers.png
new file mode 100644
index 0000000..72e964b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Bunch_Flowers.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Bunch_Ingredients.png b/icons/default/EPGInfo/Genre/A0A0A0/Bunch_Ingredients.png
new file mode 100644
index 0000000..10825c8
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Bunch_Ingredients.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Camcoder.png b/icons/default/EPGInfo/Genre/A0A0A0/Camcoder.png
new file mode 100644
index 0000000..79699fd
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Camcoder.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Cannon.png b/icons/default/EPGInfo/Genre/A0A0A0/Cannon.png
new file mode 100644
index 0000000..b95a2d3
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Cannon.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Carousel.png b/icons/default/EPGInfo/Genre/A0A0A0/Carousel.png
new file mode 100644
index 0000000..3edf83b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Carousel.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Children.png b/icons/default/EPGInfo/Genre/A0A0A0/Children.png
new file mode 100644
index 0000000..856eba6
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Children.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Children_10-16.png b/icons/default/EPGInfo/Genre/A0A0A0/Children_10-16.png
new file mode 100644
index 0000000..605078e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Children_10-16.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Children_6-14.png b/icons/default/EPGInfo/Genre/A0A0A0/Children_6-14.png
new file mode 100644
index 0000000..9de2245
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Children_6-14.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Choir.png b/icons/default/EPGInfo/Genre/A0A0A0/Choir.png
new file mode 100644
index 0000000..9a14a64
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Choir.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Church.png b/icons/default/EPGInfo/Genre/A0A0A0/Church.png
new file mode 100644
index 0000000..57822dc
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Church.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Conference.png b/icons/default/EPGInfo/Genre/A0A0A0/Conference.png
new file mode 100644
index 0000000..6145bb1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Conference.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Courses.png b/icons/default/EPGInfo/Genre/A0A0A0/Courses.png
new file mode 100644
index 0000000..107692e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Courses.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/DNA_Helix.png b/icons/default/EPGInfo/Genre/A0A0A0/DNA_Helix.png
new file mode 100644
index 0000000..9fcd109
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/DNA_Helix.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Dancing.png b/icons/default/EPGInfo/Genre/A0A0A0/Dancing.png
new file mode 100644
index 0000000..1d80f74
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Dancing.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Detektiv.png b/icons/default/EPGInfo/Genre/A0A0A0/Detektiv.png
new file mode 100644
index 0000000..5776313
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Detektiv.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Diploma2.png b/icons/default/EPGInfo/Genre/A0A0A0/Diploma2.png
new file mode 100644
index 0000000..8110d76
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Diploma2.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Dokumentation.png b/icons/default/EPGInfo/Genre/A0A0A0/Dokumentation.png
new file mode 100644
index 0000000..0c648d8
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Dokumentation.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Drama.png b/icons/default/EPGInfo/Genre/A0A0A0/Drama.png
new file mode 100644
index 0000000..27cb9c0
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Drama.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Engine.png b/icons/default/EPGInfo/Genre/A0A0A0/Engine.png
new file mode 100644
index 0000000..a660794
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Engine.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Engineering.png b/icons/default/EPGInfo/Genre/A0A0A0/Engineering.png
new file mode 100644
index 0000000..3b44708
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Engineering.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Erotik.png b/icons/default/EPGInfo/Genre/A0A0A0/Erotik.png
new file mode 100644
index 0000000..9e64d27
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Erotik.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Erotik2.png b/icons/default/EPGInfo/Genre/A0A0A0/Erotik2.png
new file mode 100644
index 0000000..f95135d
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Erotik2.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Fantasie.png b/icons/default/EPGInfo/Genre/A0A0A0/Fantasie.png
new file mode 100644
index 0000000..5bc2b95
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Fantasie.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Film.png b/icons/default/EPGInfo/Genre/A0A0A0/Film.png
new file mode 100644
index 0000000..642f518
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Film.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Finish_Flag.png b/icons/default/EPGInfo/Genre/A0A0A0/Finish_Flag.png
new file mode 100644
index 0000000..5caef6a
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Finish_Flag.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Football.png b/icons/default/EPGInfo/Genre/A0A0A0/Football.png
new file mode 100644
index 0000000..f4f4db8
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Football.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/German_Hat.png b/icons/default/EPGInfo/Genre/A0A0A0/German_Hat.png
new file mode 100644
index 0000000..03f3f18
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/German_Hat.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Globe_Earth.png b/icons/default/EPGInfo/Genre/A0A0A0/Globe_Earth.png
new file mode 100644
index 0000000..fdf28ca
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Globe_Earth.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Guitar.png b/icons/default/EPGInfo/Genre/A0A0A0/Guitar.png
new file mode 100644
index 0000000..5507397
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Guitar.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Guru.png b/icons/default/EPGInfo/Genre/A0A0A0/Guru.png
new file mode 100644
index 0000000..b7db752
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Guru.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Hand_Planting.png b/icons/default/EPGInfo/Genre/A0A0A0/Hand_Planting.png
new file mode 100644
index 0000000..c334b06
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Hand_Planting.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Health.png b/icons/default/EPGInfo/Genre/A0A0A0/Health.png
new file mode 100644
index 0000000..ec67bb6
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Health.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Heart_Monitor.png b/icons/default/EPGInfo/Genre/A0A0A0/Heart_Monitor.png
new file mode 100644
index 0000000..bb6a487
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Heart_Monitor.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Historisch.png b/icons/default/EPGInfo/Genre/A0A0A0/Historisch.png
new file mode 100644
index 0000000..1f9dd38
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Historisch.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Horror.png b/icons/default/EPGInfo/Genre/A0A0A0/Horror.png
new file mode 100644
index 0000000..1e40bd8
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Horror.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Horse.png b/icons/default/EPGInfo/Genre/A0A0A0/Horse.png
new file mode 100644
index 0000000..ad80658
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Horse.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Kitchen.png b/icons/default/EPGInfo/Genre/A0A0A0/Kitchen.png
new file mode 100644
index 0000000..6be0c71
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Kitchen.png differ
diff --git "a/icons/default/EPGInfo/Genre/A0A0A0/Kom\303\266die.png" "b/icons/default/EPGInfo/Genre/A0A0A0/Kom\303\266die.png"
new file mode 100644
index 0000000..4cdf89a
Binary files /dev/null and "b/icons/default/EPGInfo/Genre/A0A0A0/Kom\303\266die.png" differ
diff --git "a/icons/default/EPGInfo/Genre/A0A0A0/Kom\303\266die2.png" "b/icons/default/EPGInfo/Genre/A0A0A0/Kom\303\266die2.png"
new file mode 100644
index 0000000..a9df48d
Binary files /dev/null and "b/icons/default/EPGInfo/Genre/A0A0A0/Kom\303\266die2.png" differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Krimi.png b/icons/default/EPGInfo/Genre/A0A0A0/Krimi.png
new file mode 100644
index 0000000..88081ee
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Krimi.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/LCD.png b/icons/default/EPGInfo/Genre/A0A0A0/LCD.png
new file mode 100644
index 0000000..2706505
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/LCD.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Law.png b/icons/default/EPGInfo/Genre/A0A0A0/Law.png
new file mode 100644
index 0000000..c842b99
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Law.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Literature.png b/icons/default/EPGInfo/Genre/A0A0A0/Literature.png
new file mode 100644
index 0000000..585585c
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Literature.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Magazine.png b/icons/default/EPGInfo/Genre/A0A0A0/Magazine.png
new file mode 100644
index 0000000..072ea2a
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Magazine.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Medical_Doctor.png b/icons/default/EPGInfo/Genre/A0A0A0/Medical_Doctor.png
new file mode 100644
index 0000000..6f0549d
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Medical_Doctor.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Mickey-Mouse.png b/icons/default/EPGInfo/Genre/A0A0A0/Mickey-Mouse.png
new file mode 100644
index 0000000..ce8ba05
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Mickey-Mouse.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Modern_Art.png b/icons/default/EPGInfo/Genre/A0A0A0/Modern_Art.png
new file mode 100644
index 0000000..b9f04f1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Modern_Art.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Movie_Drama.png b/icons/default/EPGInfo/Genre/A0A0A0/Movie_Drama.png
new file mode 100644
index 0000000..0d3be22
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Movie_Drama.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Music.png b/icons/default/EPGInfo/Genre/A0A0A0/Music.png
new file mode 100644
index 0000000..77e7c61
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Music.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Musik.png b/icons/default/EPGInfo/Genre/A0A0A0/Musik.png
new file mode 100644
index 0000000..c38ab02
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Musik.png differ
diff --git "a/icons/default/EPGInfo/Genre/A0A0A0/M\303\244rchen.png" "b/icons/default/EPGInfo/Genre/A0A0A0/M\303\244rchen.png"
new file mode 100644
index 0000000..7867459
Binary files /dev/null and "b/icons/default/EPGInfo/Genre/A0A0A0/M\303\244rchen.png" differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Newspaper.png b/icons/default/EPGInfo/Genre/A0A0A0/Newspaper.png
new file mode 100644
index 0000000..d22a45a
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Newspaper.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/North_Direction.png b/icons/default/EPGInfo/Genre/A0A0A0/North_Direction.png
new file mode 100644
index 0000000..aca8eec
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/North_Direction.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Online.png b/icons/default/EPGInfo/Genre/A0A0A0/Online.png
new file mode 100644
index 0000000..72943f5
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Online.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Pacifier.png b/icons/default/EPGInfo/Genre/A0A0A0/Pacifier.png
new file mode 100644
index 0000000..2ac1291
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Pacifier.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Palm-Tree.png b/icons/default/EPGInfo/Genre/A0A0A0/Palm-Tree.png
new file mode 100644
index 0000000..2f767b9
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Palm-Tree.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Parliament.png b/icons/default/EPGInfo/Genre/A0A0A0/Parliament.png
new file mode 100644
index 0000000..c31013b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Parliament.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Percentage2.png b/icons/default/EPGInfo/Genre/A0A0A0/Percentage2.png
new file mode 100644
index 0000000..c036405
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Percentage2.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Performing Arts.png b/icons/default/EPGInfo/Genre/A0A0A0/Performing Arts.png
new file mode 100644
index 0000000..76c94e1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Performing Arts.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Physics.png b/icons/default/EPGInfo/Genre/A0A0A0/Physics.png
new file mode 100644
index 0000000..c1dfe01
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Physics.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Pie_Chart.png b/icons/default/EPGInfo/Genre/A0A0A0/Pie_Chart.png
new file mode 100644
index 0000000..6951ae1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Pie_Chart.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Playground.png b/icons/default/EPGInfo/Genre/A0A0A0/Playground.png
new file mode 100644
index 0000000..d9c01bd
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Playground.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Popular Culture_Traditional Arts.png b/icons/default/EPGInfo/Genre/A0A0A0/Popular Culture_Traditional Arts.png
new file mode 100644
index 0000000..805e88d
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Popular Culture_Traditional Arts.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Processor.png b/icons/default/EPGInfo/Genre/A0A0A0/Processor.png
new file mode 100644
index 0000000..1016f62
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Processor.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Rattle.png b/icons/default/EPGInfo/Genre/A0A0A0/Rattle.png
new file mode 100644
index 0000000..0fe25d4
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Rattle.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Regular_Biking.png b/icons/default/EPGInfo/Genre/A0A0A0/Regular_Biking.png
new file mode 100644
index 0000000..b128984
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Regular_Biking.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Research.png b/icons/default/EPGInfo/Genre/A0A0A0/Research.png
new file mode 100644
index 0000000..6c8aac2
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Research.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Restaurant.png b/icons/default/EPGInfo/Genre/A0A0A0/Restaurant.png
new file mode 100644
index 0000000..e9b02b6
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Restaurant.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Rock.png b/icons/default/EPGInfo/Genre/A0A0A0/Rock.png
new file mode 100644
index 0000000..171d665
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Rock.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Roman.png b/icons/default/EPGInfo/Genre/A0A0A0/Roman.png
new file mode 100644
index 0000000..681dc08
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Roman.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Running.png b/icons/default/EPGInfo/Genre/A0A0A0/Running.png
new file mode 100644
index 0000000..930c1fd
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Running.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Satellite_Sending_Signal.png b/icons/default/EPGInfo/Genre/A0A0A0/Satellite_Sending_Signal.png
new file mode 100644
index 0000000..f415269
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Satellite_Sending_Signal.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Saxophone.png b/icons/default/EPGInfo/Genre/A0A0A0/Saxophone.png
new file mode 100644
index 0000000..6c0b3e9
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Saxophone.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/SciFi_Fantasy_Horror.png b/icons/default/EPGInfo/Genre/A0A0A0/SciFi_Fantasy_Horror.png
new file mode 100644
index 0000000..5194dbb
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/SciFi_Fantasy_Horror.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Science-Fiction.png b/icons/default/EPGInfo/Genre/A0A0A0/Science-Fiction.png
new file mode 100644
index 0000000..e7d1eb7
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Science-Fiction.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Serious_Classical_Religious_Historical Movie_Drama.png b/icons/default/EPGInfo/Genre/A0A0A0/Serious_Classical_Religious_Historical Movie_Drama.png
new file mode 100644
index 0000000..18cf868
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Serious_Classical_Religious_Historical Movie_Drama.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Server.png b/icons/default/EPGInfo/Genre/A0A0A0/Server.png
new file mode 100644
index 0000000..316e8fc
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Server.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Sheet_Of_Paper.png b/icons/default/EPGInfo/Genre/A0A0A0/Sheet_Of_Paper.png
new file mode 100644
index 0000000..917252c
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Sheet_Of_Paper.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Shoe_Woman.png b/icons/default/EPGInfo/Genre/A0A0A0/Shoe_Woman.png
new file mode 100644
index 0000000..eff2028
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Shoe_Woman.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Shopping.png b/icons/default/EPGInfo/Genre/A0A0A0/Shopping.png
new file mode 100644
index 0000000..7a109de
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Shopping.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Skiing.png b/icons/default/EPGInfo/Genre/A0A0A0/Skiing.png
new file mode 100644
index 0000000..7cead32
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Skiing.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Social_Political_Economics.png b/icons/default/EPGInfo/Genre/A0A0A0/Social_Political_Economics.png
new file mode 100644
index 0000000..e28747b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Social_Political_Economics.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Special Event.png b/icons/default/EPGInfo/Genre/A0A0A0/Special Event.png
new file mode 100644
index 0000000..58a6553
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Special Event.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Spiel.png b/icons/default/EPGInfo/Genre/A0A0A0/Spiel.png
new file mode 100644
index 0000000..ce11c36
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Spiel.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Sport.png b/icons/default/EPGInfo/Genre/A0A0A0/Sport.png
new file mode 100644
index 0000000..8faf68b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Sport.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Sport_Magazin.png b/icons/default/EPGInfo/Genre/A0A0A0/Sport_Magazin.png
new file mode 100644
index 0000000..30f993d
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Sport_Magazin.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Stanley_Knife.png b/icons/default/EPGInfo/Genre/A0A0A0/Stanley_Knife.png
new file mode 100644
index 0000000..8a13d36
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Stanley_Knife.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Strikes.png b/icons/default/EPGInfo/Genre/A0A0A0/Strikes.png
new file mode 100644
index 0000000..99bf166
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Strikes.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Stroller.png b/icons/default/EPGInfo/Genre/A0A0A0/Stroller.png
new file mode 100644
index 0000000..3abf873
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Stroller.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Student.png b/icons/default/EPGInfo/Genre/A0A0A0/Student.png
new file mode 100644
index 0000000..fe04b41
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Student.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Student_Filled.png b/icons/default/EPGInfo/Genre/A0A0A0/Student_Filled.png
new file mode 100644
index 0000000..8161cdb
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Student_Filled.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Students2.png b/icons/default/EPGInfo/Genre/A0A0A0/Students2.png
new file mode 100644
index 0000000..c8e75ac
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Students2.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Suitcase.png b/icons/default/EPGInfo/Genre/A0A0A0/Suitcase.png
new file mode 100644
index 0000000..b2e4372
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Suitcase.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Swimming.png b/icons/default/EPGInfo/Genre/A0A0A0/Swimming.png
new file mode 100644
index 0000000..a580a9a
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Swimming.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Talk.png b/icons/default/EPGInfo/Genre/A0A0A0/Talk.png
new file mode 100644
index 0000000..3af2936
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Talk.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Teams.png b/icons/default/EPGInfo/Genre/A0A0A0/Teams.png
new file mode 100644
index 0000000..e0d3cdb
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Teams.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Technology_Science.png b/icons/default/EPGInfo/Genre/A0A0A0/Technology_Science.png
new file mode 100644
index 0000000..e714891
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Technology_Science.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Teddybear.png b/icons/default/EPGInfo/Genre/A0A0A0/Teddybear.png
new file mode 100644
index 0000000..f70dbc3
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Teddybear.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Temperature.png b/icons/default/EPGInfo/Genre/A0A0A0/Temperature.png
new file mode 100644
index 0000000..c40ac24
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Temperature.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Tennis.png b/icons/default/EPGInfo/Genre/A0A0A0/Tennis.png
new file mode 100644
index 0000000..43841b6
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Tennis.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Test_Tube.png b/icons/default/EPGInfo/Genre/A0A0A0/Test_Tube.png
new file mode 100644
index 0000000..99bed82
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Test_Tube.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Theatre_Masks.png b/icons/default/EPGInfo/Genre/A0A0A0/Theatre_Masks.png
new file mode 100644
index 0000000..8275bbc
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Theatre_Masks.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Thriller.png b/icons/default/EPGInfo/Genre/A0A0A0/Thriller.png
new file mode 100644
index 0000000..7ec4747
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Thriller.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Ticket.png b/icons/default/EPGInfo/Genre/A0A0A0/Ticket.png
new file mode 100644
index 0000000..fa69f43
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Ticket.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Treble_Clef.png b/icons/default/EPGInfo/Genre/A0A0A0/Treble_Clef.png
new file mode 100644
index 0000000..3970f18
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Treble_Clef.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Tricycle.png b/icons/default/EPGInfo/Genre/A0A0A0/Tricycle.png
new file mode 100644
index 0000000..38c634c
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Tricycle.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/University.png b/icons/default/EPGInfo/Genre/A0A0A0/University.png
new file mode 100644
index 0000000..75e3181
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/University.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Unpublished.png b/icons/default/EPGInfo/Genre/A0A0A0/Unpublished.png
new file mode 100644
index 0000000..2a9d8ab
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Unpublished.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Waypoint_Map.png b/icons/default/EPGInfo/Genre/A0A0A0/Waypoint_Map.png
new file mode 100644
index 0000000..b7ef30b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Waypoint_Map.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Weather.png b/icons/default/EPGInfo/Genre/A0A0A0/Weather.png
new file mode 100644
index 0000000..bb35ab3
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Weather.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Western.png b/icons/default/EPGInfo/Genre/A0A0A0/Western.png
new file mode 100644
index 0000000..d963f16
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Western.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/World_Map.png b/icons/default/EPGInfo/Genre/A0A0A0/World_Map.png
new file mode 100644
index 0000000..42dbb99
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/World_Map.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Yoga.png b/icons/default/EPGInfo/Genre/A0A0A0/Yoga.png
new file mode 100644
index 0000000..b7c32dc
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Yoga.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/Zombie.png b/icons/default/EPGInfo/Genre/A0A0A0/Zombie.png
new file mode 100644
index 0000000..ee41b78
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/Zombie.png differ
diff --git a/icons/default/EPGInfo/Genre/A0A0A0/unknown.png b/icons/default/EPGInfo/Genre/A0A0A0/unknown.png
new file mode 100644
index 0000000..2e62fb1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/A0A0A0/unknown.png differ
diff --git a/icons/default/EPGInfo/Genre/Adult Movie_Drama.png b/icons/default/EPGInfo/Genre/Adult Movie_Drama.png
new file mode 120000
index 0000000..7583eab
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Adult Movie_Drama.png	
@@ -0,0 +1 @@
+A0A0A0/Breast.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Adventure_Western_War.png b/icons/default/EPGInfo/Genre/Adventure_Western_War.png
new file mode 120000
index 0000000..3d8a291
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Adventure_Western_War.png
@@ -0,0 +1 @@
+A0A0A0/Adventure_Western_War.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Advertisement_Shopping.png b/icons/default/EPGInfo/Genre/Advertisement_Shopping.png
new file mode 120000
index 0000000..3af3e91
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Advertisement_Shopping.png
@@ -0,0 +1 @@
+A0A0A0/Shopping.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Arts_Culture Magazine.png b/icons/default/EPGInfo/Genre/Arts_Culture Magazine.png
new file mode 120000
index 0000000..19dd1c1
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Arts_Culture Magazine.png	
@@ -0,0 +1 @@
+A0A0A0/Magazine.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Arts_Culture.png b/icons/default/EPGInfo/Genre/Arts_Culture.png
new file mode 120000
index 0000000..b759ee4
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Arts_Culture.png
@@ -0,0 +1 @@
+A0A0A0/Arts_Culture.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Athletics.png b/icons/default/EPGInfo/Genre/Athletics.png
new file mode 120000
index 0000000..98d09b9
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Athletics.png
@@ -0,0 +1 @@
+A0A0A0/Running.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Ballet.png b/icons/default/EPGInfo/Genre/Ballet.png
new file mode 120000
index 0000000..80e1f80
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Ballet.png
@@ -0,0 +1 @@
+A0A0A0/Ballet_Shoes.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Black_White.png b/icons/default/EPGInfo/Genre/Black_White.png
new file mode 120000
index 0000000..a04cce2
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Black_White.png
@@ -0,0 +1 @@
+A0A0A0/Black_White.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Broadcasting_Press.png b/icons/default/EPGInfo/Genre/Broadcasting_Press.png
new file mode 120000
index 0000000..daf13a1
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Broadcasting_Press.png
@@ -0,0 +1 @@
+A0A0A0/Broadcasting.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Cartoons_Puppets.png b/icons/default/EPGInfo/Genre/Cartoons_Puppets.png
new file mode 120000
index 0000000..92f0985
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Cartoons_Puppets.png
@@ -0,0 +1 @@
+A0A0A0/Mickey-Mouse.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Childrens_Youth Programme.png b/icons/default/EPGInfo/Genre/Childrens_Youth Programme.png
new file mode 120000
index 0000000..494369d
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Childrens_Youth Programme.png	
@@ -0,0 +1 @@
+A0A0A0/Children.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Comedy.png b/icons/default/EPGInfo/Genre/Comedy.png
new file mode 120000
index 0000000..b6b60bf
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Comedy.png
@@ -0,0 +1 @@
+A0A0A0/Komödie2.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Cooking.png b/icons/default/EPGInfo/Genre/Cooking.png
new file mode 120000
index 0000000..80ed61f
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Cooking.png
@@ -0,0 +1 @@
+A0A0A0/Kitchen.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Detective_Thriller.png b/icons/default/EPGInfo/Genre/Detective_Thriller.png
new file mode 120000
index 0000000..a04d6f6
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Detective_Thriller.png
@@ -0,0 +1 @@
+A0A0A0/Detektiv.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Discussion_Inverview_Debate.png b/icons/default/EPGInfo/Genre/Discussion_Inverview_Debate.png
new file mode 120000
index 0000000..7b9d578
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Discussion_Inverview_Debate.png
@@ -0,0 +1 @@
+A0A0A0/Conference.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Documentary.png b/icons/default/EPGInfo/Genre/Documentary.png
new file mode 120000
index 0000000..dff07a9
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Documentary.png
@@ -0,0 +1 @@
+A0A0A0/Dokumentation.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Education_Science_Factual.png b/icons/default/EPGInfo/Genre/Education_Science_Factual.png
new file mode 120000
index 0000000..86cb0a3
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Education_Science_Factual.png
@@ -0,0 +1 @@
+A0A0A0/Test_Tube.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Entertainment Programme for 10 to 16.png b/icons/default/EPGInfo/Genre/Entertainment Programme for 10 to 16.png
new file mode 120000
index 0000000..c0d55d4
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Entertainment Programme for 10 to 16.png	
@@ -0,0 +1 @@
+A0A0A0/Children_10-16.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Entertainment Programme for 6 to 14.png b/icons/default/EPGInfo/Genre/Entertainment Programme for 6 to 14.png
new file mode 120000
index 0000000..902249a
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Entertainment Programme for 6 to 14.png	
@@ -0,0 +1 @@
+A0A0A0/Children_6-14.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Equestrian.png b/icons/default/EPGInfo/Genre/Equestrian.png
new file mode 120000
index 0000000..0bf2147
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Equestrian.png
@@ -0,0 +1 @@
+A0A0A0/Horse.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Experimental Film_Video.png b/icons/default/EPGInfo/Genre/Experimental Film_Video.png
new file mode 120000
index 0000000..c97bf3a
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Experimental Film_Video.png	
@@ -0,0 +1 @@
+A0A0A0/Camcoder.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Abenteuer.png b/icons/default/EPGInfo/Genre/FFFFFF/Abenteuer.png
new file mode 100644
index 0000000..785399b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Abenteuer.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Action.png b/icons/default/EPGInfo/Genre/FFFFFF/Action.png
new file mode 100644
index 0000000..e0ee080
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Action.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Action2.png b/icons/default/EPGInfo/Genre/FFFFFF/Action2.png
new file mode 100644
index 0000000..23d30f6
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Action2.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Administrator2.png b/icons/default/EPGInfo/Genre/FFFFFF/Administrator2.png
new file mode 100644
index 0000000..9d0ab5d
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Administrator2.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Adventure_Western_War.png b/icons/default/EPGInfo/Genre/FFFFFF/Adventure_Western_War.png
new file mode 100644
index 0000000..6c2e0b6
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Adventure_Western_War.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Applouse.png b/icons/default/EPGInfo/Genre/FFFFFF/Applouse.png
new file mode 100644
index 0000000..28e9971
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Applouse.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Archeology.png b/icons/default/EPGInfo/Genre/FFFFFF/Archeology.png
new file mode 100644
index 0000000..12fc4e2
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Archeology.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Arts_Culture.png b/icons/default/EPGInfo/Genre/FFFFFF/Arts_Culture.png
new file mode 100644
index 0000000..5de4b10
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Arts_Culture.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Assistant.png b/icons/default/EPGInfo/Genre/FFFFFF/Assistant.png
new file mode 100644
index 0000000..6105e5e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Assistant.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Audience.png b/icons/default/EPGInfo/Genre/FFFFFF/Audience.png
new file mode 100644
index 0000000..475489b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Audience.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Baby.png b/icons/default/EPGInfo/Genre/FFFFFF/Baby.png
new file mode 100644
index 0000000..d1ea7ff
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Baby.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Ballet_Shoes.png b/icons/default/EPGInfo/Genre/FFFFFF/Ballet_Shoes.png
new file mode 100644
index 0000000..2f64a59
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Ballet_Shoes.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Beach.png b/icons/default/EPGInfo/Genre/FFFFFF/Beach.png
new file mode 100644
index 0000000..7a27f1c
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Beach.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Binoculars.png b/icons/default/EPGInfo/Genre/FFFFFF/Binoculars.png
new file mode 100644
index 0000000..73a3be9
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Binoculars.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Black_White.png b/icons/default/EPGInfo/Genre/FFFFFF/Black_White.png
new file mode 100644
index 0000000..406ce17
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Black_White.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Books.png b/icons/default/EPGInfo/Genre/FFFFFF/Books.png
new file mode 100644
index 0000000..6f7c391
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Books.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Bowling.png b/icons/default/EPGInfo/Genre/FFFFFF/Bowling.png
new file mode 100644
index 0000000..a8b2b06
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Bowling.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Boxing.png b/icons/default/EPGInfo/Genre/FFFFFF/Boxing.png
new file mode 100644
index 0000000..525e251
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Boxing.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Brain.png b/icons/default/EPGInfo/Genre/FFFFFF/Brain.png
new file mode 100644
index 0000000..9f7db54
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Brain.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Breast.png b/icons/default/EPGInfo/Genre/FFFFFF/Breast.png
new file mode 100644
index 0000000..3776a01
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Breast.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Brick.png b/icons/default/EPGInfo/Genre/FFFFFF/Brick.png
new file mode 100644
index 0000000..ce2fbc9
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Brick.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Brick2.png b/icons/default/EPGInfo/Genre/FFFFFF/Brick2.png
new file mode 100644
index 0000000..7b08c02
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Brick2.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Broadcasting.png b/icons/default/EPGInfo/Genre/FFFFFF/Broadcasting.png
new file mode 100644
index 0000000..cdbf834
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Broadcasting.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Bunch_Flowers.png b/icons/default/EPGInfo/Genre/FFFFFF/Bunch_Flowers.png
new file mode 100644
index 0000000..34f0efe
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Bunch_Flowers.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Bunch_Ingredients.png b/icons/default/EPGInfo/Genre/FFFFFF/Bunch_Ingredients.png
new file mode 100644
index 0000000..ad43a5f
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Bunch_Ingredients.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Camcoder.png b/icons/default/EPGInfo/Genre/FFFFFF/Camcoder.png
new file mode 100644
index 0000000..e4398c0
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Camcoder.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Cannon.png b/icons/default/EPGInfo/Genre/FFFFFF/Cannon.png
new file mode 100644
index 0000000..d30acb2
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Cannon.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Carousel.png b/icons/default/EPGInfo/Genre/FFFFFF/Carousel.png
new file mode 100644
index 0000000..956c5ed
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Carousel.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Children.png b/icons/default/EPGInfo/Genre/FFFFFF/Children.png
new file mode 100644
index 0000000..c5b911f
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Children.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Children_10-16.png b/icons/default/EPGInfo/Genre/FFFFFF/Children_10-16.png
new file mode 100644
index 0000000..8ac9783
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Children_10-16.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Children_6-14.png b/icons/default/EPGInfo/Genre/FFFFFF/Children_6-14.png
new file mode 100644
index 0000000..e5ac5da
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Children_6-14.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Choir.png b/icons/default/EPGInfo/Genre/FFFFFF/Choir.png
new file mode 100644
index 0000000..0a015e5
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Choir.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Church.png b/icons/default/EPGInfo/Genre/FFFFFF/Church.png
new file mode 100644
index 0000000..ae0a5db
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Church.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Conference.png b/icons/default/EPGInfo/Genre/FFFFFF/Conference.png
new file mode 100644
index 0000000..e7dc0e4
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Conference.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Courses.png b/icons/default/EPGInfo/Genre/FFFFFF/Courses.png
new file mode 100644
index 0000000..d91ad03
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Courses.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/DNA_Helix.png b/icons/default/EPGInfo/Genre/FFFFFF/DNA_Helix.png
new file mode 100644
index 0000000..8baeeb0
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/DNA_Helix.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Dancing.png b/icons/default/EPGInfo/Genre/FFFFFF/Dancing.png
new file mode 100644
index 0000000..a3f2137
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Dancing.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Detektiv.png b/icons/default/EPGInfo/Genre/FFFFFF/Detektiv.png
new file mode 100644
index 0000000..35b681e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Detektiv.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Diploma2.png b/icons/default/EPGInfo/Genre/FFFFFF/Diploma2.png
new file mode 100644
index 0000000..b2131c9
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Diploma2.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Dokumentation.png b/icons/default/EPGInfo/Genre/FFFFFF/Dokumentation.png
new file mode 100644
index 0000000..7b3fd5e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Dokumentation.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Drama.png b/icons/default/EPGInfo/Genre/FFFFFF/Drama.png
new file mode 100644
index 0000000..4e63569
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Drama.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Engine.png b/icons/default/EPGInfo/Genre/FFFFFF/Engine.png
new file mode 100644
index 0000000..8d14f75
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Engine.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Engineering.png b/icons/default/EPGInfo/Genre/FFFFFF/Engineering.png
new file mode 100644
index 0000000..a88ca76
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Engineering.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Erotik.png b/icons/default/EPGInfo/Genre/FFFFFF/Erotik.png
new file mode 100644
index 0000000..b8d017b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Erotik.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Erotik2.png b/icons/default/EPGInfo/Genre/FFFFFF/Erotik2.png
new file mode 100644
index 0000000..e239854
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Erotik2.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Fantasie.png b/icons/default/EPGInfo/Genre/FFFFFF/Fantasie.png
new file mode 100644
index 0000000..d4fbc2d
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Fantasie.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Film.png b/icons/default/EPGInfo/Genre/FFFFFF/Film.png
new file mode 100644
index 0000000..0f3a79c
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Film.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Finish_Flag.png b/icons/default/EPGInfo/Genre/FFFFFF/Finish_Flag.png
new file mode 100644
index 0000000..ac42017
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Finish_Flag.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Football.png b/icons/default/EPGInfo/Genre/FFFFFF/Football.png
new file mode 100644
index 0000000..cf52ef7
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Football.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/German_Hat.png b/icons/default/EPGInfo/Genre/FFFFFF/German_Hat.png
new file mode 100644
index 0000000..6dd2a86
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/German_Hat.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Globe_Earth.png b/icons/default/EPGInfo/Genre/FFFFFF/Globe_Earth.png
new file mode 100644
index 0000000..dd36ad4
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Globe_Earth.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Guitar.png b/icons/default/EPGInfo/Genre/FFFFFF/Guitar.png
new file mode 100644
index 0000000..ed1af71
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Guitar.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Guru.png b/icons/default/EPGInfo/Genre/FFFFFF/Guru.png
new file mode 100644
index 0000000..ff7e128
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Guru.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Hand_Planting.png b/icons/default/EPGInfo/Genre/FFFFFF/Hand_Planting.png
new file mode 100644
index 0000000..3c0b484
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Hand_Planting.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Health.png b/icons/default/EPGInfo/Genre/FFFFFF/Health.png
new file mode 100644
index 0000000..734fef9
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Health.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Heart_Monitor.png b/icons/default/EPGInfo/Genre/FFFFFF/Heart_Monitor.png
new file mode 100644
index 0000000..300d8b0
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Heart_Monitor.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Historisch.png b/icons/default/EPGInfo/Genre/FFFFFF/Historisch.png
new file mode 100644
index 0000000..5b29af0
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Historisch.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Horror.png b/icons/default/EPGInfo/Genre/FFFFFF/Horror.png
new file mode 100644
index 0000000..32dfe9b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Horror.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Horse.png b/icons/default/EPGInfo/Genre/FFFFFF/Horse.png
new file mode 100644
index 0000000..662c8ed
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Horse.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Kitchen.png b/icons/default/EPGInfo/Genre/FFFFFF/Kitchen.png
new file mode 100644
index 0000000..fccdda0
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Kitchen.png differ
diff --git "a/icons/default/EPGInfo/Genre/FFFFFF/Kom\303\266die.png" "b/icons/default/EPGInfo/Genre/FFFFFF/Kom\303\266die.png"
new file mode 100644
index 0000000..dcbd218
Binary files /dev/null and "b/icons/default/EPGInfo/Genre/FFFFFF/Kom\303\266die.png" differ
diff --git "a/icons/default/EPGInfo/Genre/FFFFFF/Kom\303\266die2.png" "b/icons/default/EPGInfo/Genre/FFFFFF/Kom\303\266die2.png"
new file mode 100644
index 0000000..e14bf41
Binary files /dev/null and "b/icons/default/EPGInfo/Genre/FFFFFF/Kom\303\266die2.png" differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Krimi.png b/icons/default/EPGInfo/Genre/FFFFFF/Krimi.png
new file mode 100644
index 0000000..17da2d4
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Krimi.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/LCD.png b/icons/default/EPGInfo/Genre/FFFFFF/LCD.png
new file mode 100644
index 0000000..07f3023
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/LCD.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Law.png b/icons/default/EPGInfo/Genre/FFFFFF/Law.png
new file mode 100644
index 0000000..64d815e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Law.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Literature.png b/icons/default/EPGInfo/Genre/FFFFFF/Literature.png
new file mode 100644
index 0000000..5baf6de
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Literature.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Magazine.png b/icons/default/EPGInfo/Genre/FFFFFF/Magazine.png
new file mode 100644
index 0000000..e7fc81f
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Magazine.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Medical_Doctor.png b/icons/default/EPGInfo/Genre/FFFFFF/Medical_Doctor.png
new file mode 100644
index 0000000..6f714c6
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Medical_Doctor.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Mickey-Mouse.png b/icons/default/EPGInfo/Genre/FFFFFF/Mickey-Mouse.png
new file mode 100644
index 0000000..e399d61
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Mickey-Mouse.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Modern_Art.png b/icons/default/EPGInfo/Genre/FFFFFF/Modern_Art.png
new file mode 100644
index 0000000..4ecd8ff
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Modern_Art.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Movie_Drama.png b/icons/default/EPGInfo/Genre/FFFFFF/Movie_Drama.png
new file mode 100644
index 0000000..725afdf
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Movie_Drama.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Music.png b/icons/default/EPGInfo/Genre/FFFFFF/Music.png
new file mode 100644
index 0000000..33c8dfd
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Music.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Musik.png b/icons/default/EPGInfo/Genre/FFFFFF/Musik.png
new file mode 100644
index 0000000..7d1f696
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Musik.png differ
diff --git "a/icons/default/EPGInfo/Genre/FFFFFF/M\303\244rchen.png" "b/icons/default/EPGInfo/Genre/FFFFFF/M\303\244rchen.png"
new file mode 100644
index 0000000..1839c78
Binary files /dev/null and "b/icons/default/EPGInfo/Genre/FFFFFF/M\303\244rchen.png" differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Newspaper.png b/icons/default/EPGInfo/Genre/FFFFFF/Newspaper.png
new file mode 100644
index 0000000..dc7c75f
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Newspaper.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/North_Direction.png b/icons/default/EPGInfo/Genre/FFFFFF/North_Direction.png
new file mode 100644
index 0000000..d61a212
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/North_Direction.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Online.png b/icons/default/EPGInfo/Genre/FFFFFF/Online.png
new file mode 100644
index 0000000..1efc4ca
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Online.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Pacifier.png b/icons/default/EPGInfo/Genre/FFFFFF/Pacifier.png
new file mode 100644
index 0000000..3259a90
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Pacifier.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Palm-Tree.png b/icons/default/EPGInfo/Genre/FFFFFF/Palm-Tree.png
new file mode 100644
index 0000000..c1655ed
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Palm-Tree.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Parliament.png b/icons/default/EPGInfo/Genre/FFFFFF/Parliament.png
new file mode 100644
index 0000000..57353dd
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Parliament.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Percentage2.png b/icons/default/EPGInfo/Genre/FFFFFF/Percentage2.png
new file mode 100644
index 0000000..24571f5
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Percentage2.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Performing Arts.png b/icons/default/EPGInfo/Genre/FFFFFF/Performing Arts.png
new file mode 100644
index 0000000..87fe092
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Performing Arts.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Physics.png b/icons/default/EPGInfo/Genre/FFFFFF/Physics.png
new file mode 100644
index 0000000..a741de5
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Physics.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Pie_Chart.png b/icons/default/EPGInfo/Genre/FFFFFF/Pie_Chart.png
new file mode 100644
index 0000000..c6ddbcd
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Pie_Chart.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Playground.png b/icons/default/EPGInfo/Genre/FFFFFF/Playground.png
new file mode 100644
index 0000000..0a4f985
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Playground.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Popular Culture_Traditional Arts.png b/icons/default/EPGInfo/Genre/FFFFFF/Popular Culture_Traditional Arts.png
new file mode 100644
index 0000000..f9d502b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Popular Culture_Traditional Arts.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Processor.png b/icons/default/EPGInfo/Genre/FFFFFF/Processor.png
new file mode 100644
index 0000000..6736d49
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Processor.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Rattle.png b/icons/default/EPGInfo/Genre/FFFFFF/Rattle.png
new file mode 100644
index 0000000..a3692bd
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Rattle.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Regular_Biking.png b/icons/default/EPGInfo/Genre/FFFFFF/Regular_Biking.png
new file mode 100644
index 0000000..88bb053
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Regular_Biking.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Research.png b/icons/default/EPGInfo/Genre/FFFFFF/Research.png
new file mode 100644
index 0000000..30dbb1a
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Research.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Restaurant.png b/icons/default/EPGInfo/Genre/FFFFFF/Restaurant.png
new file mode 100644
index 0000000..63c6ba3
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Restaurant.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Rock.png b/icons/default/EPGInfo/Genre/FFFFFF/Rock.png
new file mode 100644
index 0000000..c61d6b4
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Rock.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Roman.png b/icons/default/EPGInfo/Genre/FFFFFF/Roman.png
new file mode 100644
index 0000000..f7e1672
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Roman.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Running.png b/icons/default/EPGInfo/Genre/FFFFFF/Running.png
new file mode 100644
index 0000000..d14d525
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Running.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Satellite_Sending_Signal.png b/icons/default/EPGInfo/Genre/FFFFFF/Satellite_Sending_Signal.png
new file mode 100644
index 0000000..9880573
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Satellite_Sending_Signal.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Saxophone.png b/icons/default/EPGInfo/Genre/FFFFFF/Saxophone.png
new file mode 100644
index 0000000..e1617f4
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Saxophone.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/SciFi_Fantasy_Horror.png b/icons/default/EPGInfo/Genre/FFFFFF/SciFi_Fantasy_Horror.png
new file mode 100644
index 0000000..ec7ee0a
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/SciFi_Fantasy_Horror.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Science-Fiction.png b/icons/default/EPGInfo/Genre/FFFFFF/Science-Fiction.png
new file mode 100644
index 0000000..ecbccb1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Science-Fiction.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Serious_Classical_Religious_Historical Movie_Drama.png b/icons/default/EPGInfo/Genre/FFFFFF/Serious_Classical_Religious_Historical Movie_Drama.png
new file mode 100644
index 0000000..57b4ff5
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Serious_Classical_Religious_Historical Movie_Drama.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Server.png b/icons/default/EPGInfo/Genre/FFFFFF/Server.png
new file mode 100644
index 0000000..bfec7e0
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Server.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Sheet_Of_Paper.png b/icons/default/EPGInfo/Genre/FFFFFF/Sheet_Of_Paper.png
new file mode 100644
index 0000000..27003b5
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Sheet_Of_Paper.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Shoe_Woman.png b/icons/default/EPGInfo/Genre/FFFFFF/Shoe_Woman.png
new file mode 100644
index 0000000..ae87040
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Shoe_Woman.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Shopping.png b/icons/default/EPGInfo/Genre/FFFFFF/Shopping.png
new file mode 100644
index 0000000..6519d79
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Shopping.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Skiing.png b/icons/default/EPGInfo/Genre/FFFFFF/Skiing.png
new file mode 100644
index 0000000..46152ad
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Skiing.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Social_Political_Economics.png b/icons/default/EPGInfo/Genre/FFFFFF/Social_Political_Economics.png
new file mode 100644
index 0000000..e0a9809
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Social_Political_Economics.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Special Event.png b/icons/default/EPGInfo/Genre/FFFFFF/Special Event.png
new file mode 100644
index 0000000..bff666b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Special Event.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Spiel.png b/icons/default/EPGInfo/Genre/FFFFFF/Spiel.png
new file mode 100644
index 0000000..6b7f12b
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Spiel.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Sport.png b/icons/default/EPGInfo/Genre/FFFFFF/Sport.png
new file mode 100644
index 0000000..a14e6b7
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Sport.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Sport_Magazin.png b/icons/default/EPGInfo/Genre/FFFFFF/Sport_Magazin.png
new file mode 100644
index 0000000..02e5ee4
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Sport_Magazin.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Stanley_Knife.png b/icons/default/EPGInfo/Genre/FFFFFF/Stanley_Knife.png
new file mode 100644
index 0000000..acf09cf
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Stanley_Knife.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Strikes.png b/icons/default/EPGInfo/Genre/FFFFFF/Strikes.png
new file mode 100644
index 0000000..e7d7659
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Strikes.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Stroller.png b/icons/default/EPGInfo/Genre/FFFFFF/Stroller.png
new file mode 100644
index 0000000..915e259
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Stroller.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Student.png b/icons/default/EPGInfo/Genre/FFFFFF/Student.png
new file mode 100644
index 0000000..d13f915
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Student.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Student_Filled.png b/icons/default/EPGInfo/Genre/FFFFFF/Student_Filled.png
new file mode 100644
index 0000000..c9d1b11
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Student_Filled.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Students2.png b/icons/default/EPGInfo/Genre/FFFFFF/Students2.png
new file mode 100644
index 0000000..5baaf28
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Students2.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Suitcase.png b/icons/default/EPGInfo/Genre/FFFFFF/Suitcase.png
new file mode 100644
index 0000000..00e2207
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Suitcase.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Swimming.png b/icons/default/EPGInfo/Genre/FFFFFF/Swimming.png
new file mode 100644
index 0000000..87fedf0
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Swimming.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Talk.png b/icons/default/EPGInfo/Genre/FFFFFF/Talk.png
new file mode 100644
index 0000000..c9f4120
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Talk.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Teams.png b/icons/default/EPGInfo/Genre/FFFFFF/Teams.png
new file mode 100644
index 0000000..f9ae9a1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Teams.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Technology_Science.png b/icons/default/EPGInfo/Genre/FFFFFF/Technology_Science.png
new file mode 100644
index 0000000..5a8e067
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Technology_Science.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Teddybear.png b/icons/default/EPGInfo/Genre/FFFFFF/Teddybear.png
new file mode 100644
index 0000000..07b2d65
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Teddybear.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Temperature.png b/icons/default/EPGInfo/Genre/FFFFFF/Temperature.png
new file mode 100644
index 0000000..ed1da80
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Temperature.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Tennis.png b/icons/default/EPGInfo/Genre/FFFFFF/Tennis.png
new file mode 100644
index 0000000..533ad4c
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Tennis.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Test_Tube.png b/icons/default/EPGInfo/Genre/FFFFFF/Test_Tube.png
new file mode 100644
index 0000000..593def9
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Test_Tube.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Theatre_Masks.png b/icons/default/EPGInfo/Genre/FFFFFF/Theatre_Masks.png
new file mode 100644
index 0000000..3efe74e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Theatre_Masks.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Thriller.png b/icons/default/EPGInfo/Genre/FFFFFF/Thriller.png
new file mode 100644
index 0000000..404f5a2
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Thriller.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Ticket.png b/icons/default/EPGInfo/Genre/FFFFFF/Ticket.png
new file mode 100644
index 0000000..dfd5ac2
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Ticket.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Treble_Clef.png b/icons/default/EPGInfo/Genre/FFFFFF/Treble_Clef.png
new file mode 100644
index 0000000..07a21d1
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Treble_Clef.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Tricycle.png b/icons/default/EPGInfo/Genre/FFFFFF/Tricycle.png
new file mode 100644
index 0000000..317a2b8
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Tricycle.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/University.png b/icons/default/EPGInfo/Genre/FFFFFF/University.png
new file mode 100644
index 0000000..12b0852
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/University.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Unpublished.png b/icons/default/EPGInfo/Genre/FFFFFF/Unpublished.png
new file mode 100644
index 0000000..165783a
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Unpublished.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Waypoint_Map.png b/icons/default/EPGInfo/Genre/FFFFFF/Waypoint_Map.png
new file mode 100644
index 0000000..7b564ba
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Waypoint_Map.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Weather.png b/icons/default/EPGInfo/Genre/FFFFFF/Weather.png
new file mode 100644
index 0000000..98877f6
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Weather.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Western.png b/icons/default/EPGInfo/Genre/FFFFFF/Western.png
new file mode 100644
index 0000000..e6c5351
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Western.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/World_Map.png b/icons/default/EPGInfo/Genre/FFFFFF/World_Map.png
new file mode 100644
index 0000000..d7b146e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/World_Map.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Yoga.png b/icons/default/EPGInfo/Genre/FFFFFF/Yoga.png
new file mode 100644
index 0000000..bf277da
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Yoga.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/Zombie.png b/icons/default/EPGInfo/Genre/FFFFFF/Zombie.png
new file mode 100644
index 0000000..a6ac35e
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/Zombie.png differ
diff --git a/icons/default/EPGInfo/Genre/FFFFFF/unknown.png b/icons/default/EPGInfo/Genre/FFFFFF/unknown.png
new file mode 100644
index 0000000..eae9fba
Binary files /dev/null and b/icons/default/EPGInfo/Genre/FFFFFF/unknown.png differ
diff --git a/icons/default/EPGInfo/Genre/Fashion.png b/icons/default/EPGInfo/Genre/Fashion.png
new file mode 120000
index 0000000..de79b51
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Fashion.png
@@ -0,0 +1 @@
+A0A0A0/Shoe_Woman.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Film_Cinema.png b/icons/default/EPGInfo/Genre/Film_Cinema.png
new file mode 120000
index 0000000..4cdda5e
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Film_Cinema.png
@@ -0,0 +1 @@
+A0A0A0/Film.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Fine Arts.png b/icons/default/EPGInfo/Genre/Fine Arts.png
new file mode 120000
index 0000000..93d1aa6
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Fine Arts.png	
@@ -0,0 +1 @@
+A0A0A0/Modern_Art.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Fitness_Health.png b/icons/default/EPGInfo/Genre/Fitness_Health.png
new file mode 120000
index 0000000..57c8b78
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Fitness_Health.png
@@ -0,0 +1 @@
+A0A0A0/Yoga.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Folk_Tradional Music.png b/icons/default/EPGInfo/Genre/Folk_Tradional Music.png
new file mode 120000
index 0000000..68540e1
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Folk_Tradional Music.png	
@@ -0,0 +1 @@
+A0A0A0/Guitar.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Football_Soccer.png b/icons/default/EPGInfo/Genre/Football_Soccer.png
new file mode 120000
index 0000000..546b487
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Football_Soccer.png
@@ -0,0 +1 @@
+A0A0A0/Football.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Foreign Countries_Expeditions.png b/icons/default/EPGInfo/Genre/Foreign Countries_Expeditions.png
new file mode 120000
index 0000000..4a799e5
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Foreign Countries_Expeditions.png	
@@ -0,0 +1 @@
+A0A0A0/World_Map.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Further Education.png b/icons/default/EPGInfo/Genre/Further Education.png
new file mode 120000
index 0000000..5fdd5d3
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Further Education.png	
@@ -0,0 +1 @@
+A0A0A0/Diploma2.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Game Show_Quiz_Contest.png b/icons/default/EPGInfo/Genre/Game Show_Quiz_Contest.png
new file mode 120000
index 0000000..2909df8
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Game Show_Quiz_Contest.png	
@@ -0,0 +1 @@
+A0A0A0/Spiel.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Gardening.png b/icons/default/EPGInfo/Genre/Gardening.png
new file mode 120000
index 0000000..28e0459
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Gardening.png
@@ -0,0 +1 @@
+A0A0A0/Bunch_Flowers.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Handicraft.png b/icons/default/EPGInfo/Genre/Handicraft.png
new file mode 120000
index 0000000..829eb70
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Handicraft.png
@@ -0,0 +1 @@
+A0A0A0/Stanley_Knife.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Informational_Educational_School Programme.png b/icons/default/EPGInfo/Genre/Informational_Educational_School Programme.png
new file mode 120000
index 0000000..aa50fc7
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Informational_Educational_School Programme.png	
@@ -0,0 +1 @@
+A0A0A0/Student.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Jazz.png b/icons/default/EPGInfo/Genre/Jazz.png
new file mode 120000
index 0000000..732b6e4
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Jazz.png
@@ -0,0 +1 @@
+A0A0A0/Saxophone.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Languages.png b/icons/default/EPGInfo/Genre/Languages.png
new file mode 120000
index 0000000..3b83e82
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Languages.png
@@ -0,0 +1 @@
+A0A0A0/Literature.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Leisure_Hobbies.png b/icons/default/EPGInfo/Genre/Leisure_Hobbies.png
new file mode 120000
index 0000000..d3e4296
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Leisure_Hobbies.png
@@ -0,0 +1 @@
+A0A0A0/Bowling.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Literature.png b/icons/default/EPGInfo/Genre/Literature.png
new file mode 120000
index 0000000..c04d68f
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Literature.png
@@ -0,0 +1 @@
+A0A0A0/Books.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Live Broadcast.png b/icons/default/EPGInfo/Genre/Live Broadcast.png
new file mode 120000
index 0000000..9db3f5b
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Live Broadcast.png	
@@ -0,0 +1 @@
+A0A0A0/Satellite_Sending_Signal.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Magazine_Report_Documentary.png b/icons/default/EPGInfo/Genre/Magazine_Report_Documentary.png
new file mode 120000
index 0000000..dff07a9
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Magazine_Report_Documentary.png
@@ -0,0 +1 @@
+A0A0A0/Dokumentation.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Martial Sports.png b/icons/default/EPGInfo/Genre/Martial Sports.png
new file mode 120000
index 0000000..a31371c
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Martial Sports.png	
@@ -0,0 +1 @@
+A0A0A0/Boxing.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Medicine_Physiology_Psychology.png b/icons/default/EPGInfo/Genre/Medicine_Physiology_Psychology.png
new file mode 120000
index 0000000..cb43c52
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Medicine_Physiology_Psychology.png
@@ -0,0 +1 @@
+A0A0A0/Medical_Doctor.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Motor Sport.png b/icons/default/EPGInfo/Genre/Motor Sport.png
new file mode 120000
index 0000000..1666c41
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Motor Sport.png	
@@ -0,0 +1 @@
+A0A0A0/Finish_Flag.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Motoring.png b/icons/default/EPGInfo/Genre/Motoring.png
new file mode 120000
index 0000000..5b333c0
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Motoring.png
@@ -0,0 +1 @@
+A0A0A0/Engine.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Movie_Drama.png b/icons/default/EPGInfo/Genre/Movie_Drama.png
new file mode 120000
index 0000000..5c89dcf
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Movie_Drama.png
@@ -0,0 +1 @@
+A0A0A0/Movie_Drama.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Music_Ballet_Dance.png b/icons/default/EPGInfo/Genre/Music_Ballet_Dance.png
new file mode 120000
index 0000000..9fa9ff8
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Music_Ballet_Dance.png
@@ -0,0 +1 @@
+A0A0A0/Music.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Musical_Opera.png b/icons/default/EPGInfo/Genre/Musical_Opera.png
new file mode 120000
index 0000000..a298b7e
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Musical_Opera.png
@@ -0,0 +1 @@
+A0A0A0/Theatre_Masks.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Nature_Animals_Environment.png b/icons/default/EPGInfo/Genre/Nature_Animals_Environment.png
new file mode 120000
index 0000000..089a2ea
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Nature_Animals_Environment.png
@@ -0,0 +1 @@
+A0A0A0/Hand_Planting.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/New Media.png b/icons/default/EPGInfo/Genre/New Media.png
new file mode 120000
index 0000000..7a31cf6
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/New Media.png	
@@ -0,0 +1 @@
+A0A0A0/Online.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/News Magazine.png b/icons/default/EPGInfo/Genre/News Magazine.png
new file mode 120000
index 0000000..19dd1c1
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/News Magazine.png	
@@ -0,0 +1 @@
+A0A0A0/Magazine.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/News_Current Affairs.png b/icons/default/EPGInfo/Genre/News_Current Affairs.png
new file mode 120000
index 0000000..62c4504
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/News_Current Affairs.png	
@@ -0,0 +1 @@
+A0A0A0/Newspaper.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/News_Weather Report.png b/icons/default/EPGInfo/Genre/News_Weather Report.png
new file mode 120000
index 0000000..25b3ad8
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/News_Weather Report.png	
@@ -0,0 +1 @@
+A0A0A0/Weather.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Original Language.png b/icons/default/EPGInfo/Genre/Original Language.png
new file mode 120000
index 0000000..3b83e82
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Original Language.png	
@@ -0,0 +1 @@
+A0A0A0/Literature.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Performing Arts.png b/icons/default/EPGInfo/Genre/Performing Arts.png
new file mode 120000
index 0000000..8e28923
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Performing Arts.png	
@@ -0,0 +1 @@
+A0A0A0/Performing Arts.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Popular Culture_Traditional Arts.png b/icons/default/EPGInfo/Genre/Popular Culture_Traditional Arts.png
new file mode 120000
index 0000000..9c1eb77
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Popular Culture_Traditional Arts.png	
@@ -0,0 +1 @@
+A0A0A0/Popular Culture_Traditional Arts.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Pre-school Childrens Programme.png b/icons/default/EPGInfo/Genre/Pre-school Childrens Programme.png
new file mode 120000
index 0000000..95fb5d3
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Pre-school Childrens Programme.png	
@@ -0,0 +1 @@
+A0A0A0/Teddybear.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Religion.png b/icons/default/EPGInfo/Genre/Religion.png
new file mode 120000
index 0000000..0d656f1
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Religion.png
@@ -0,0 +1 @@
+A0A0A0/Church.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Remarkable People.png b/icons/default/EPGInfo/Genre/Remarkable People.png
new file mode 120000
index 0000000..e07f474
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Remarkable People.png	
@@ -0,0 +1 @@
+A0A0A0/Administrator2.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Rock_Pop.png b/icons/default/EPGInfo/Genre/Rock_Pop.png
new file mode 120000
index 0000000..0b1d7a0
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Rock_Pop.png
@@ -0,0 +1 @@
+A0A0A0/Rock.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Romance.png b/icons/default/EPGInfo/Genre/Romance.png
new file mode 120000
index 0000000..59ae1a7
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Romance.png
@@ -0,0 +1 @@
+A0A0A0/Roman.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Science Fiction_Fantasy_Horror.png b/icons/default/EPGInfo/Genre/Science Fiction_Fantasy_Horror.png
new file mode 120000
index 0000000..09098a2
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Science Fiction_Fantasy_Horror.png	
@@ -0,0 +1 @@
+A0A0A0/SciFi_Fantasy_Horror.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Serious_Classical Music.png b/icons/default/EPGInfo/Genre/Serious_Classical Music.png
new file mode 120000
index 0000000..b2955b2
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Serious_Classical Music.png	
@@ -0,0 +1 @@
+A0A0A0/Treble_Clef.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Serious_Classical_Religious_Historical Movie_Drama.png b/icons/default/EPGInfo/Genre/Serious_Classical_Religious_Historical Movie_Drama.png
new file mode 120000
index 0000000..81ea682
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Serious_Classical_Religious_Historical Movie_Drama.png	
@@ -0,0 +1 @@
+A0A0A0/Serious_Classical_Religious_Historical Movie_Drama.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Show_Game Show.png b/icons/default/EPGInfo/Genre/Show_Game Show.png
new file mode 120000
index 0000000..2909df8
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Show_Game Show.png	
@@ -0,0 +1 @@
+A0A0A0/Spiel.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Soap_Melodrama_Folkloric.png b/icons/default/EPGInfo/Genre/Soap_Melodrama_Folkloric.png
new file mode 120000
index 0000000..59ae1a7
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Soap_Melodrama_Folkloric.png
@@ -0,0 +1 @@
+A0A0A0/Roman.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Social_Political_Economics.png b/icons/default/EPGInfo/Genre/Social_Political_Economics.png
new file mode 120000
index 0000000..f95195c
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Social_Political_Economics.png
@@ -0,0 +1 @@
+A0A0A0/Social_Political_Economics.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Social_Spiritual Sciences.png b/icons/default/EPGInfo/Genre/Social_Spiritual Sciences.png
new file mode 120000
index 0000000..d38fcc7
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Social_Spiritual Sciences.png	
@@ -0,0 +1 @@
+A0A0A0/Guru.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Special Event.png b/icons/default/EPGInfo/Genre/Special Event.png
new file mode 120000
index 0000000..4094abc
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Special Event.png	
@@ -0,0 +1 @@
+A0A0A0/Special Event.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Sport Magazine.png b/icons/default/EPGInfo/Genre/Sport Magazine.png
new file mode 120000
index 0000000..d38ec4e
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Sport Magazine.png	
@@ -0,0 +1 @@
+A0A0A0/Sport_Magazin.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Sports.png b/icons/default/EPGInfo/Genre/Sports.png
new file mode 120000
index 0000000..136bad3
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Sports.png
@@ -0,0 +1 @@
+A0A0A0/Sport.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Talk Show.png b/icons/default/EPGInfo/Genre/Talk Show.png
new file mode 120000
index 0000000..d9fbb43
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Talk Show.png	
@@ -0,0 +1 @@
+A0A0A0/Talk.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Team Sports.png b/icons/default/EPGInfo/Genre/Team Sports.png
new file mode 120000
index 0000000..391f2a4
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Team Sports.png	
@@ -0,0 +1 @@
+A0A0A0/Teams.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Technology_Natural Sciences.png b/icons/default/EPGInfo/Genre/Technology_Natural Sciences.png
new file mode 120000
index 0000000..f2a4c77
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Technology_Natural Sciences.png	
@@ -0,0 +1 @@
+A0A0A0/Technology_Science.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Tennis_Squash.png b/icons/default/EPGInfo/Genre/Tennis_Squash.png
new file mode 120000
index 0000000..c64ee7d
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Tennis_Squash.png
@@ -0,0 +1 @@
+A0A0A0/Tennis.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Tourism_Travel.png b/icons/default/EPGInfo/Genre/Tourism_Travel.png
new file mode 120000
index 0000000..7a523b3
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Tourism_Travel.png
@@ -0,0 +1 @@
+A0A0A0/Suitcase.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Unpublished.png b/icons/default/EPGInfo/Genre/Unpublished.png
new file mode 120000
index 0000000..2549150
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Unpublished.png
@@ -0,0 +1 @@
+A0A0A0/Unpublished.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Variety Show.png b/icons/default/EPGInfo/Genre/Variety Show.png
new file mode 120000
index 0000000..0630b0b
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Variety Show.png	
@@ -0,0 +1 @@
+A0A0A0/Komödie.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Water Sport.png b/icons/default/EPGInfo/Genre/Water Sport.png
new file mode 120000
index 0000000..7b7b40d
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Water Sport.png	
@@ -0,0 +1 @@
+A0A0A0/Swimming.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/Winter Sports.png b/icons/default/EPGInfo/Genre/Winter Sports.png
new file mode 120000
index 0000000..eabf304
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/Winter Sports.png	
@@ -0,0 +1 @@
+A0A0A0/Skiing.png
\ No newline at end of file
diff --git a/icons/default/EPGInfo/Genre/unknown.png b/icons/default/EPGInfo/Genre/unknown.png
new file mode 120000
index 0000000..4af8dee
--- /dev/null
+++ b/icons/default/EPGInfo/Genre/unknown.png
@@ -0,0 +1 @@
+A0A0A0/unknown.png
\ No newline at end of file
diff --git a/icons/default/changroup.png b/icons/default/changroup.png
new file mode 100644
index 0000000..27ba4ba
Binary files /dev/null and b/icons/default/changroup.png differ
diff --git a/icons/default/chart1.png b/icons/default/chart1.png
new file mode 100644
index 0000000..48d5d31
Binary files /dev/null and b/icons/default/chart1.png differ
diff --git a/icons/default/chart1b.png b/icons/default/chart1b.png
new file mode 120000
index 0000000..f68ee71
--- /dev/null
+++ b/icons/default/chart1b.png
@@ -0,0 +1 @@
+chart1.png
\ No newline at end of file
diff --git a/icons/default/chart2.png b/icons/default/chart2.png
new file mode 100644
index 0000000..b5182b0
Binary files /dev/null and b/icons/default/chart2.png differ
diff --git a/icons/default/chart2b.png b/icons/default/chart2b.png
new file mode 120000
index 0000000..5988e40
--- /dev/null
+++ b/icons/default/chart2b.png
@@ -0,0 +1 @@
+chart2.png
\ No newline at end of file
diff --git a/icons/default/chart3.png b/icons/default/chart3.png
new file mode 100644
index 0000000..9f31d64
Binary files /dev/null and b/icons/default/chart3.png differ
diff --git a/icons/default/chart3b.png b/icons/default/chart3b.png
new file mode 120000
index 0000000..7231b5e
--- /dev/null
+++ b/icons/default/chart3b.png
@@ -0,0 +1 @@
+chart3.png
\ No newline at end of file
diff --git a/icons/default/chart4.png b/icons/default/chart4.png
new file mode 100644
index 0000000..93dd130
Binary files /dev/null and b/icons/default/chart4.png differ
diff --git a/icons/default/chart4b.png b/icons/default/chart4b.png
new file mode 120000
index 0000000..53e4016
--- /dev/null
+++ b/icons/default/chart4b.png
@@ -0,0 +1 @@
+chart4.png
\ No newline at end of file
diff --git a/icons/default/chart5.png b/icons/default/chart5.png
new file mode 100644
index 0000000..3c6cce8
Binary files /dev/null and b/icons/default/chart5.png differ
diff --git a/icons/default/chart5b.png b/icons/default/chart5b.png
new file mode 120000
index 0000000..cc71490
--- /dev/null
+++ b/icons/default/chart5b.png
@@ -0,0 +1 @@
+chart5.png
\ No newline at end of file
diff --git a/icons/default/chart6.png b/icons/default/chart6.png
new file mode 100644
index 0000000..b040777
Binary files /dev/null and b/icons/default/chart6.png differ
diff --git a/icons/default/chart6b.png b/icons/default/chart6b.png
new file mode 120000
index 0000000..a6b217b
--- /dev/null
+++ b/icons/default/chart6b.png
@@ -0,0 +1 @@
+chart6.png
\ No newline at end of file
diff --git a/icons/default/chart7.png b/icons/default/chart7.png
new file mode 100644
index 0000000..d1882dc
Binary files /dev/null and b/icons/default/chart7.png differ
diff --git a/icons/default/chart7b.png b/icons/default/chart7b.png
new file mode 120000
index 0000000..a5db2d5
--- /dev/null
+++ b/icons/default/chart7b.png
@@ -0,0 +1 @@
+chart7.png
\ No newline at end of file
diff --git a/icons/default/crypted.png b/icons/default/crypted.png
new file mode 100644
index 0000000..440070a
Binary files /dev/null and b/icons/default/crypted.png differ
diff --git a/icons/default/data.png b/icons/default/data.png
new file mode 100644
index 0000000..e7009b5
Binary files /dev/null and b/icons/default/data.png differ
diff --git a/icons/default/extraIcons/Audio.png b/icons/default/extraIcons/Audio.png
new file mode 100644
index 0000000..fe638f8
Binary files /dev/null and b/icons/default/extraIcons/Audio.png differ
diff --git a/icons/default/extraIcons/AudioVideo.png b/icons/default/extraIcons/AudioVideo.png
new file mode 100644
index 0000000..cde79c4
Binary files /dev/null and b/icons/default/extraIcons/AudioVideo.png differ
diff --git a/icons/default/extraIcons/Ausschalten.png b/icons/default/extraIcons/Ausschalten.png
new file mode 100644
index 0000000..3cc99d6
Binary files /dev/null and b/icons/default/extraIcons/Ausschalten.png differ
diff --git a/icons/default/extraIcons/Info.png b/icons/default/extraIcons/Info.png
new file mode 100644
index 0000000..00fc89c
Binary files /dev/null and b/icons/default/extraIcons/Info.png differ
diff --git a/icons/default/extraIcons/PlayInfo.png b/icons/default/extraIcons/PlayInfo.png
new file mode 100644
index 0000000..2b8eb8d
Binary files /dev/null and b/icons/default/extraIcons/PlayInfo.png differ
diff --git a/icons/default/extraIcons/Playing.png b/icons/default/extraIcons/Playing.png
new file mode 100644
index 0000000..dda0751
Binary files /dev/null and b/icons/default/extraIcons/Playing.png differ
diff --git a/icons/default/folder.png b/icons/default/folder.png
new file mode 100644
index 0000000..ad0b65c
Binary files /dev/null and b/icons/default/folder.png differ
diff --git a/icons/default/forward.png b/icons/default/forward.png
new file mode 100644
index 0000000..a9082df
Binary files /dev/null and b/icons/default/forward.png differ
diff --git a/icons/default/forward_sel.png b/icons/default/forward_sel.png
new file mode 100644
index 0000000..90ea61c
Binary files /dev/null and b/icons/default/forward_sel.png differ
diff --git a/icons/default/hd.png b/icons/default/hd.png
new file mode 100644
index 0000000..4f9d502
Binary files /dev/null and b/icons/default/hd.png differ
diff --git a/icons/default/logo_background.png b/icons/default/logo_background.png
new file mode 100755
index 0000000..c407d97
Binary files /dev/null and b/icons/default/logo_background.png differ
diff --git a/icons/default/menuIcons/CAM.png b/icons/default/menuIcons/CAM.png
new file mode 100644
index 0000000..479b5e7
Binary files /dev/null and b/icons/default/menuIcons/CAM.png differ
diff --git a/icons/default/menuIcons/Channels.png b/icons/default/menuIcons/Channels.png
new file mode 100644
index 0000000..fc0e0e6
Binary files /dev/null and b/icons/default/menuIcons/Channels.png differ
diff --git a/icons/default/menuIcons/Commands.png b/icons/default/menuIcons/Commands.png
new file mode 100644
index 0000000..5046029
Binary files /dev/null and b/icons/default/menuIcons/Commands.png differ
diff --git a/icons/default/menuIcons/DVB.png b/icons/default/menuIcons/DVB.png
new file mode 100644
index 0000000..575f5a0
Binary files /dev/null and b/icons/default/menuIcons/DVB.png differ
diff --git a/icons/default/menuIcons/EPG.png b/icons/default/menuIcons/EPG.png
new file mode 100644
index 0000000..fb26278
Binary files /dev/null and b/icons/default/menuIcons/EPG.png differ
diff --git a/icons/default/menuIcons/LNB.png b/icons/default/menuIcons/LNB.png
new file mode 100644
index 0000000..e42523e
Binary files /dev/null and b/icons/default/menuIcons/LNB.png differ
diff --git a/icons/default/menuIcons/Miscellaneous.png b/icons/default/menuIcons/Miscellaneous.png
new file mode 100644
index 0000000..5685700
Binary files /dev/null and b/icons/default/menuIcons/Miscellaneous.png differ
diff --git a/icons/default/menuIcons/OSD.png b/icons/default/menuIcons/OSD.png
new file mode 100644
index 0000000..3dd6e0c
Binary files /dev/null and b/icons/default/menuIcons/OSD.png differ
diff --git a/icons/default/menuIcons/Plugins.png b/icons/default/menuIcons/Plugins.png
new file mode 100644
index 0000000..466ce92
Binary files /dev/null and b/icons/default/menuIcons/Plugins.png differ
diff --git a/icons/default/menuIcons/Recording.png b/icons/default/menuIcons/Recording.png
new file mode 100644
index 0000000..39bf4c5
Binary files /dev/null and b/icons/default/menuIcons/Recording.png differ
diff --git a/icons/default/menuIcons/Recordings.png b/icons/default/menuIcons/Recordings.png
new file mode 100644
index 0000000..fde8879
Binary files /dev/null and b/icons/default/menuIcons/Recordings.png differ
diff --git a/icons/default/menuIcons/RecsSortDate.png b/icons/default/menuIcons/RecsSortDate.png
new file mode 100644
index 0000000..d563cd9
Binary files /dev/null and b/icons/default/menuIcons/RecsSortDate.png differ
diff --git a/icons/default/menuIcons/RecsSortName.png b/icons/default/menuIcons/RecsSortName.png
new file mode 100644
index 0000000..daaf425
Binary files /dev/null and b/icons/default/menuIcons/RecsSortName.png differ
diff --git a/icons/default/menuIcons/Replay.png b/icons/default/menuIcons/Replay.png
new file mode 100644
index 0000000..f512fbe
Binary files /dev/null and b/icons/default/menuIcons/Replay.png differ
diff --git a/icons/default/menuIcons/Restart.png b/icons/default/menuIcons/Restart.png
new file mode 100644
index 0000000..fe0ae13
Binary files /dev/null and b/icons/default/menuIcons/Restart.png differ
diff --git a/icons/default/menuIcons/Schedule.png b/icons/default/menuIcons/Schedule.png
new file mode 100644
index 0000000..f3de8d7
Binary files /dev/null and b/icons/default/menuIcons/Schedule.png differ
diff --git a/icons/default/menuIcons/Setup.png b/icons/default/menuIcons/Setup.png
new file mode 100644
index 0000000..4d36a01
Binary files /dev/null and b/icons/default/menuIcons/Setup.png differ
diff --git a/icons/default/menuIcons/StopRecording.png b/icons/default/menuIcons/StopRecording.png
new file mode 100644
index 0000000..df5d125
Binary files /dev/null and b/icons/default/menuIcons/StopRecording.png differ
diff --git a/icons/default/menuIcons/StopReplay.png b/icons/default/menuIcons/StopReplay.png
new file mode 100644
index 0000000..117ceae
Binary files /dev/null and b/icons/default/menuIcons/StopReplay.png differ
diff --git a/icons/default/menuIcons/Timers.png b/icons/default/menuIcons/Timers.png
new file mode 100644
index 0000000..9c01dbd
Binary files /dev/null and b/icons/default/menuIcons/Timers.png differ
diff --git a/icons/default/menuIcons/blank.png b/icons/default/menuIcons/blank.png
new file mode 100644
index 0000000..d32037f
Binary files /dev/null and b/icons/default/menuIcons/blank.png differ
diff --git a/icons/default/menuIcons/vdrlogo_debian.png b/icons/default/menuIcons/vdrlogo_debian.png
new file mode 100644
index 0000000..eaf4745
Binary files /dev/null and b/icons/default/menuIcons/vdrlogo_debian.png differ
diff --git a/icons/default/menuIcons/vdrlogo_default.png b/icons/default/menuIcons/vdrlogo_default.png
new file mode 100644
index 0000000..ff68769
Binary files /dev/null and b/icons/default/menuIcons/vdrlogo_default.png differ
diff --git a/icons/default/menuIcons/vdrlogo_easyvdr.png b/icons/default/menuIcons/vdrlogo_easyvdr.png
new file mode 100644
index 0000000..6ea8718
Binary files /dev/null and b/icons/default/menuIcons/vdrlogo_easyvdr.png differ
diff --git a/icons/default/menuIcons/vdrlogo_gen2vdr.png b/icons/default/menuIcons/vdrlogo_gen2vdr.png
new file mode 100644
index 0000000..d0870e9
Binary files /dev/null and b/icons/default/menuIcons/vdrlogo_gen2vdr.png differ
diff --git a/icons/default/menuIcons/vdrlogo_shine.png b/icons/default/menuIcons/vdrlogo_shine.png
new file mode 100644
index 0000000..c6bb110
Binary files /dev/null and b/icons/default/menuIcons/vdrlogo_shine.png differ
diff --git a/icons/default/menuIcons/vdrlogo_xubuntu.png b/icons/default/menuIcons/vdrlogo_xubuntu.png
new file mode 100644
index 0000000..89f4eab
Binary files /dev/null and b/icons/default/menuIcons/vdrlogo_xubuntu.png differ
diff --git a/icons/default/menuIcons/vdrlogo_xubuntu2.png b/icons/default/menuIcons/vdrlogo_xubuntu2.png
new file mode 100644
index 0000000..e474e04
Binary files /dev/null and b/icons/default/menuIcons/vdrlogo_xubuntu2.png differ
diff --git a/icons/default/menuIcons/vdrlogo_yavdr.png b/icons/default/menuIcons/vdrlogo_yavdr.png
new file mode 100644
index 0000000..c26993d
Binary files /dev/null and b/icons/default/menuIcons/vdrlogo_yavdr.png differ
diff --git a/icons/default/message_error.png b/icons/default/message_error.png
new file mode 100644
index 0000000..2a35993
Binary files /dev/null and b/icons/default/message_error.png differ
diff --git a/icons/default/message_info.png b/icons/default/message_info.png
new file mode 100644
index 0000000..25c0074
Binary files /dev/null and b/icons/default/message_info.png differ
diff --git a/icons/default/message_status.png b/icons/default/message_status.png
new file mode 100644
index 0000000..675d90b
Binary files /dev/null and b/icons/default/message_status.png differ
diff --git a/icons/default/message_warning.png b/icons/default/message_warning.png
new file mode 100644
index 0000000..dc12925
Binary files /dev/null and b/icons/default/message_warning.png differ
diff --git a/icons/default/mute.png b/icons/default/mute.png
new file mode 100644
index 0000000..a5ef12d
Binary files /dev/null and b/icons/default/mute.png differ
diff --git a/icons/default/pause.png b/icons/default/pause.png
new file mode 100644
index 0000000..903bd9a
Binary files /dev/null and b/icons/default/pause.png differ
diff --git a/icons/default/pause_sel.png b/icons/default/pause_sel.png
new file mode 100644
index 0000000..dfea32b
Binary files /dev/null and b/icons/default/pause_sel.png differ
diff --git a/icons/default/play.png b/icons/default/play.png
new file mode 100644
index 0000000..f4f713e
Binary files /dev/null and b/icons/default/play.png differ
diff --git a/icons/default/play_sel.png b/icons/default/play_sel.png
new file mode 100644
index 0000000..814cf3a
Binary files /dev/null and b/icons/default/play_sel.png differ
diff --git a/icons/default/pluginIcons/admin.png b/icons/default/pluginIcons/admin.png
new file mode 100644
index 0000000..3fb7819
Binary files /dev/null and b/icons/default/pluginIcons/admin.png differ
diff --git a/icons/default/pluginIcons/arghdirector.png b/icons/default/pluginIcons/arghdirector.png
new file mode 100644
index 0000000..060d104
Binary files /dev/null and b/icons/default/pluginIcons/arghdirector.png differ
diff --git a/icons/default/pluginIcons/autostart.png b/icons/default/pluginIcons/autostart.png
new file mode 100644
index 0000000..76aed86
Binary files /dev/null and b/icons/default/pluginIcons/autostart.png differ
diff --git a/icons/default/pluginIcons/avahi4vdr.png b/icons/default/pluginIcons/avahi4vdr.png
new file mode 100644
index 0000000..2376c04
Binary files /dev/null and b/icons/default/pluginIcons/avahi4vdr.png differ
diff --git a/icons/default/pluginIcons/avards.png b/icons/default/pluginIcons/avards.png
new file mode 100644
index 0000000..3313af2
Binary files /dev/null and b/icons/default/pluginIcons/avards.png differ
diff --git a/icons/default/pluginIcons/block.png b/icons/default/pluginIcons/block.png
new file mode 100644
index 0000000..3f883b6
Binary files /dev/null and b/icons/default/pluginIcons/block.png differ
diff --git a/icons/default/pluginIcons/burn.png b/icons/default/pluginIcons/burn.png
new file mode 100644
index 0000000..4b4f71e
Binary files /dev/null and b/icons/default/pluginIcons/burn.png differ
diff --git a/icons/default/pluginIcons/cdplayer.png b/icons/default/pluginIcons/cdplayer.png
new file mode 100644
index 0000000..8f93bbf
Binary files /dev/null and b/icons/default/pluginIcons/cdplayer.png differ
diff --git a/icons/default/pluginIcons/chanman.png b/icons/default/pluginIcons/chanman.png
new file mode 100644
index 0000000..74467ba
Binary files /dev/null and b/icons/default/pluginIcons/chanman.png differ
diff --git a/icons/default/pluginIcons/check.png b/icons/default/pluginIcons/check.png
new file mode 100644
index 0000000..ace6f55
Binary files /dev/null and b/icons/default/pluginIcons/check.png differ
diff --git a/icons/default/pluginIcons/conflictcheckonly.png b/icons/default/pluginIcons/conflictcheckonly.png
new file mode 100644
index 0000000..2d22335
Binary files /dev/null and b/icons/default/pluginIcons/conflictcheckonly.png differ
diff --git a/icons/default/pluginIcons/ddci.png b/icons/default/pluginIcons/ddci.png
new file mode 100644
index 0000000..2990b99
Binary files /dev/null and b/icons/default/pluginIcons/ddci.png differ
diff --git a/icons/default/pluginIcons/devstatus.png b/icons/default/pluginIcons/devstatus.png
new file mode 100644
index 0000000..f6022ea
Binary files /dev/null and b/icons/default/pluginIcons/devstatus.png differ
diff --git a/icons/default/pluginIcons/dummydevice.png b/icons/default/pluginIcons/dummydevice.png
new file mode 100644
index 0000000..3a11a9a
Binary files /dev/null and b/icons/default/pluginIcons/dummydevice.png differ
diff --git a/icons/default/pluginIcons/duplicates.png b/icons/default/pluginIcons/duplicates.png
new file mode 100644
index 0000000..ae2f5a7
Binary files /dev/null and b/icons/default/pluginIcons/duplicates.png differ
diff --git a/icons/default/pluginIcons/dvbapi.png b/icons/default/pluginIcons/dvbapi.png
new file mode 100644
index 0000000..1f28a8b
Binary files /dev/null and b/icons/default/pluginIcons/dvbapi.png differ
diff --git a/icons/default/pluginIcons/dvbhddevice.png b/icons/default/pluginIcons/dvbhddevice.png
new file mode 100644
index 0000000..9bf7a56
Binary files /dev/null and b/icons/default/pluginIcons/dvbhddevice.png differ
diff --git a/icons/default/pluginIcons/dvbsddevice.png b/icons/default/pluginIcons/dvbsddevice.png
new file mode 100644
index 0000000..4664809
Binary files /dev/null and b/icons/default/pluginIcons/dvbsddevice.png differ
diff --git a/icons/default/pluginIcons/dvd.png b/icons/default/pluginIcons/dvd.png
new file mode 100644
index 0000000..22e70c1
Binary files /dev/null and b/icons/default/pluginIcons/dvd.png differ
diff --git a/icons/default/pluginIcons/dvdswitch.png b/icons/default/pluginIcons/dvdswitch.png
new file mode 100644
index 0000000..b938f41
Binary files /dev/null and b/icons/default/pluginIcons/dvdswitch.png differ
diff --git a/icons/default/pluginIcons/dynamite.png b/icons/default/pluginIcons/dynamite.png
new file mode 100644
index 0000000..bb14026
Binary files /dev/null and b/icons/default/pluginIcons/dynamite.png differ
diff --git a/icons/default/pluginIcons/eepg.png b/icons/default/pluginIcons/eepg.png
new file mode 100644
index 0000000..ef21b64
Binary files /dev/null and b/icons/default/pluginIcons/eepg.png differ
diff --git a/icons/default/pluginIcons/epg2vdr.png b/icons/default/pluginIcons/epg2vdr.png
new file mode 100644
index 0000000..6c9d1b2
Binary files /dev/null and b/icons/default/pluginIcons/epg2vdr.png differ
diff --git a/icons/default/pluginIcons/epgsearch.png b/icons/default/pluginIcons/epgsearch.png
new file mode 100644
index 0000000..7caf6c9
Binary files /dev/null and b/icons/default/pluginIcons/epgsearch.png differ
diff --git a/icons/default/pluginIcons/epgsearchonly.png b/icons/default/pluginIcons/epgsearchonly.png
new file mode 100644
index 0000000..7caf6c9
Binary files /dev/null and b/icons/default/pluginIcons/epgsearchonly.png differ
diff --git a/icons/default/pluginIcons/epgsync.png b/icons/default/pluginIcons/epgsync.png
new file mode 100644
index 0000000..ede3522
Binary files /dev/null and b/icons/default/pluginIcons/epgsync.png differ
diff --git a/icons/default/pluginIcons/externalplayer.png b/icons/default/pluginIcons/externalplayer.png
new file mode 100644
index 0000000..b818cb4
Binary files /dev/null and b/icons/default/pluginIcons/externalplayer.png differ
diff --git a/icons/default/pluginIcons/extrecmenu.png b/icons/default/pluginIcons/extrecmenu.png
new file mode 100644
index 0000000..97c03a5
Binary files /dev/null and b/icons/default/pluginIcons/extrecmenu.png differ
diff --git a/icons/default/pluginIcons/favorites.png b/icons/default/pluginIcons/favorites.png
new file mode 100644
index 0000000..d0d88ab
Binary files /dev/null and b/icons/default/pluginIcons/favorites.png differ
diff --git a/icons/default/pluginIcons/femon.png b/icons/default/pluginIcons/femon.png
new file mode 100644
index 0000000..51d55ea
Binary files /dev/null and b/icons/default/pluginIcons/femon.png differ
diff --git a/icons/default/pluginIcons/fepg.png b/icons/default/pluginIcons/fepg.png
new file mode 100644
index 0000000..e09a535
Binary files /dev/null and b/icons/default/pluginIcons/fepg.png differ
diff --git a/icons/default/pluginIcons/filebrowser.png b/icons/default/pluginIcons/filebrowser.png
new file mode 100644
index 0000000..e699c44
Binary files /dev/null and b/icons/default/pluginIcons/filebrowser.png differ
diff --git a/icons/default/pluginIcons/fritzbox.png b/icons/default/pluginIcons/fritzbox.png
new file mode 100644
index 0000000..21b84c1
Binary files /dev/null and b/icons/default/pluginIcons/fritzbox.png differ
diff --git a/icons/default/pluginIcons/graphlcd.png b/icons/default/pluginIcons/graphlcd.png
new file mode 100644
index 0000000..20f63a1
Binary files /dev/null and b/icons/default/pluginIcons/graphlcd.png differ
diff --git a/icons/default/pluginIcons/graphtft.png b/icons/default/pluginIcons/graphtft.png
new file mode 100644
index 0000000..84358ef
Binary files /dev/null and b/icons/default/pluginIcons/graphtft.png differ
diff --git a/icons/default/pluginIcons/image.png b/icons/default/pluginIcons/image.png
new file mode 100644
index 0000000..854c9ad
Binary files /dev/null and b/icons/default/pluginIcons/image.png differ
diff --git a/icons/default/pluginIcons/imonlcd.png b/icons/default/pluginIcons/imonlcd.png
new file mode 100644
index 0000000..ec27ce2
Binary files /dev/null and b/icons/default/pluginIcons/imonlcd.png differ
diff --git a/icons/default/pluginIcons/iptv.png b/icons/default/pluginIcons/iptv.png
new file mode 100644
index 0000000..ba03ba8
Binary files /dev/null and b/icons/default/pluginIcons/iptv.png differ
diff --git a/icons/default/pluginIcons/lcdproc.png b/icons/default/pluginIcons/lcdproc.png
new file mode 100644
index 0000000..36c7c62
Binary files /dev/null and b/icons/default/pluginIcons/lcdproc.png differ
diff --git a/icons/default/pluginIcons/mailbox.png b/icons/default/pluginIcons/mailbox.png
new file mode 100644
index 0000000..6296ea4
Binary files /dev/null and b/icons/default/pluginIcons/mailbox.png differ
diff --git a/icons/default/pluginIcons/makemkv.png b/icons/default/pluginIcons/makemkv.png
new file mode 100644
index 0000000..46db250
Binary files /dev/null and b/icons/default/pluginIcons/makemkv.png differ
diff --git a/icons/default/pluginIcons/markad.png b/icons/default/pluginIcons/markad.png
new file mode 100644
index 0000000..afded9f
Binary files /dev/null and b/icons/default/pluginIcons/markad.png differ
diff --git a/icons/default/pluginIcons/mlist.png b/icons/default/pluginIcons/mlist.png
new file mode 100644
index 0000000..aa912f4
Binary files /dev/null and b/icons/default/pluginIcons/mlist.png differ
diff --git a/icons/default/pluginIcons/music.png b/icons/default/pluginIcons/music.png
new file mode 100644
index 0000000..768102f
Binary files /dev/null and b/icons/default/pluginIcons/music.png differ
diff --git a/icons/default/pluginIcons/noepg.png b/icons/default/pluginIcons/noepg.png
new file mode 100644
index 0000000..50b83f6
Binary files /dev/null and b/icons/default/pluginIcons/noepg.png differ
diff --git a/icons/default/pluginIcons/nordlichtsepg.png b/icons/default/pluginIcons/nordlichtsepg.png
new file mode 100644
index 0000000..4189087
Binary files /dev/null and b/icons/default/pluginIcons/nordlichtsepg.png differ
diff --git a/icons/default/pluginIcons/osdteletext.png b/icons/default/pluginIcons/osdteletext.png
new file mode 100644
index 0000000..949c817
Binary files /dev/null and b/icons/default/pluginIcons/osdteletext.png differ
diff --git a/icons/default/pluginIcons/peer.png b/icons/default/pluginIcons/peer.png
new file mode 100644
index 0000000..e71dba3
Binary files /dev/null and b/icons/default/pluginIcons/peer.png differ
diff --git a/icons/default/pluginIcons/play.png b/icons/default/pluginIcons/play.png
new file mode 100644
index 0000000..09e219f
Binary files /dev/null and b/icons/default/pluginIcons/play.png differ
diff --git a/icons/default/pluginIcons/pvrinput.png b/icons/default/pluginIcons/pvrinput.png
new file mode 100644
index 0000000..0a0c8c0
Binary files /dev/null and b/icons/default/pluginIcons/pvrinput.png differ
diff --git a/icons/default/pluginIcons/quickepgsearch.png b/icons/default/pluginIcons/quickepgsearch.png
new file mode 100644
index 0000000..cb4188b
Binary files /dev/null and b/icons/default/pluginIcons/quickepgsearch.png differ
diff --git a/icons/default/pluginIcons/radio.png b/icons/default/pluginIcons/radio.png
new file mode 100644
index 0000000..8436b27
Binary files /dev/null and b/icons/default/pluginIcons/radio.png differ
diff --git a/icons/default/pluginIcons/remote.png b/icons/default/pluginIcons/remote.png
new file mode 100644
index 0000000..2cedc43
Binary files /dev/null and b/icons/default/pluginIcons/remote.png differ
diff --git a/icons/default/pluginIcons/remotetimers.png b/icons/default/pluginIcons/remotetimers.png
new file mode 100644
index 0000000..41a39ee
Binary files /dev/null and b/icons/default/pluginIcons/remotetimers.png differ
diff --git a/icons/default/pluginIcons/rssreader.png b/icons/default/pluginIcons/rssreader.png
new file mode 100644
index 0000000..d47b83c
Binary files /dev/null and b/icons/default/pluginIcons/rssreader.png differ
diff --git a/icons/default/pluginIcons/sc.png b/icons/default/pluginIcons/sc.png
new file mode 100644
index 0000000..712aa75
Binary files /dev/null and b/icons/default/pluginIcons/sc.png differ
diff --git a/icons/default/pluginIcons/screenshot.png b/icons/default/pluginIcons/screenshot.png
new file mode 100644
index 0000000..1afa67c
Binary files /dev/null and b/icons/default/pluginIcons/screenshot.png differ
diff --git a/icons/default/pluginIcons/seduatmo.png b/icons/default/pluginIcons/seduatmo.png
new file mode 100644
index 0000000..06fb76b
Binary files /dev/null and b/icons/default/pluginIcons/seduatmo.png differ
diff --git a/icons/default/pluginIcons/skyselectfeeds.png b/icons/default/pluginIcons/skyselectfeeds.png
new file mode 100644
index 0000000..c6c99ec
Binary files /dev/null and b/icons/default/pluginIcons/skyselectfeeds.png differ
diff --git a/icons/default/pluginIcons/sleeptimer.png b/icons/default/pluginIcons/sleeptimer.png
new file mode 100644
index 0000000..cb98c75
Binary files /dev/null and b/icons/default/pluginIcons/sleeptimer.png differ
diff --git a/icons/default/pluginIcons/softhddevice.png b/icons/default/pluginIcons/softhddevice.png
new file mode 100644
index 0000000..e3660a6
Binary files /dev/null and b/icons/default/pluginIcons/softhddevice.png differ
diff --git a/icons/default/pluginIcons/streamdev-server.png b/icons/default/pluginIcons/streamdev-server.png
new file mode 100644
index 0000000..b1cbfbb
Binary files /dev/null and b/icons/default/pluginIcons/streamdev-server.png differ
diff --git a/icons/default/pluginIcons/systeminfo.png b/icons/default/pluginIcons/systeminfo.png
new file mode 100644
index 0000000..e8e8be5
Binary files /dev/null and b/icons/default/pluginIcons/systeminfo.png differ
diff --git a/icons/default/pluginIcons/targavfd.png b/icons/default/pluginIcons/targavfd.png
new file mode 100644
index 0000000..ff09459
Binary files /dev/null and b/icons/default/pluginIcons/targavfd.png differ
diff --git a/icons/default/pluginIcons/trayopenng.png b/icons/default/pluginIcons/trayopenng.png
new file mode 100644
index 0000000..c73ae64
Binary files /dev/null and b/icons/default/pluginIcons/trayopenng.png differ
diff --git a/icons/default/pluginIcons/tvguide.png b/icons/default/pluginIcons/tvguide.png
new file mode 100644
index 0000000..d1d121f
Binary files /dev/null and b/icons/default/pluginIcons/tvguide.png differ
diff --git a/icons/default/pluginIcons/tvm2vdr.png b/icons/default/pluginIcons/tvm2vdr.png
new file mode 100644
index 0000000..3972def
Binary files /dev/null and b/icons/default/pluginIcons/tvm2vdr.png differ
diff --git a/icons/default/pluginIcons/tvscraper.png b/icons/default/pluginIcons/tvscraper.png
new file mode 100644
index 0000000..f21059d
Binary files /dev/null and b/icons/default/pluginIcons/tvscraper.png differ
diff --git a/icons/default/pluginIcons/undelete.png b/icons/default/pluginIcons/undelete.png
new file mode 100644
index 0000000..f6766fc
Binary files /dev/null and b/icons/default/pluginIcons/undelete.png differ
diff --git a/icons/default/pluginIcons/weatherng.png b/icons/default/pluginIcons/weatherng.png
new file mode 100644
index 0000000..c53431a
Binary files /dev/null and b/icons/default/pluginIcons/weatherng.png differ
diff --git a/icons/default/pluginIcons/xmltv2vdr.png b/icons/default/pluginIcons/xmltv2vdr.png
new file mode 100644
index 0000000..49c07c0
Binary files /dev/null and b/icons/default/pluginIcons/xmltv2vdr.png differ
diff --git a/icons/default/pluginIcons/yaepghg.png b/icons/default/pluginIcons/yaepghg.png
new file mode 100644
index 0000000..e2d17a1
Binary files /dev/null and b/icons/default/pluginIcons/yaepghg.png differ
diff --git a/icons/default/prev.png b/icons/default/prev.png
new file mode 100644
index 0000000..33c0bea
Binary files /dev/null and b/icons/default/prev.png differ
diff --git a/icons/default/prev_sel.png b/icons/default/prev_sel.png
new file mode 100644
index 0000000..9da51e0
Binary files /dev/null and b/icons/default/prev_sel.png differ
diff --git a/icons/default/radio.png b/icons/default/radio.png
new file mode 100644
index 0000000..1cede75
Binary files /dev/null and b/icons/default/radio.png differ
diff --git a/icons/default/recording.png b/icons/default/recording.png
new file mode 100644
index 0000000..a5323b5
Binary files /dev/null and b/icons/default/recording.png differ
diff --git a/icons/default/recording_cutted.png b/icons/default/recording_cutted.png
new file mode 100644
index 0000000..da59a9b
Binary files /dev/null and b/icons/default/recording_cutted.png differ
diff --git a/icons/default/recording_cutted_extra.png b/icons/default/recording_cutted_extra.png
new file mode 100644
index 0000000..e36c512
Binary files /dev/null and b/icons/default/recording_cutted_extra.png differ
diff --git a/icons/default/recording_new.png b/icons/default/recording_new.png
new file mode 100644
index 0000000..c19d019
Binary files /dev/null and b/icons/default/recording_new.png differ
diff --git a/icons/default/rewind.png b/icons/default/rewind.png
new file mode 100644
index 0000000..9bb2a6f
Binary files /dev/null and b/icons/default/rewind.png differ
diff --git a/icons/default/rewind_sel.png b/icons/default/rewind_sel.png
new file mode 100644
index 0000000..79e489d
Binary files /dev/null and b/icons/default/rewind_sel.png differ
diff --git a/icons/default/sd.png b/icons/default/sd.png
new file mode 100644
index 0000000..f778c1e
Binary files /dev/null and b/icons/default/sd.png differ
diff --git a/icons/default/skip.png b/icons/default/skip.png
new file mode 100644
index 0000000..47dcc94
Binary files /dev/null and b/icons/default/skip.png differ
diff --git a/icons/default/skip_sel.png b/icons/default/skip_sel.png
new file mode 100644
index 0000000..a25ec3d
Binary files /dev/null and b/icons/default/skip_sel.png differ
diff --git a/icons/default/text_arrowturn.png b/icons/default/text_arrowturn.png
new file mode 100644
index 0000000..ff60c83
Binary files /dev/null and b/icons/default/text_arrowturn.png differ
diff --git a/icons/default/text_arrowturn_cur.png b/icons/default/text_arrowturn_cur.png
new file mode 100644
index 0000000..ff60c83
Binary files /dev/null and b/icons/default/text_arrowturn_cur.png differ
diff --git a/icons/default/text_arrowturn_sel.png b/icons/default/text_arrowturn_sel.png
new file mode 100644
index 0000000..ff60c83
Binary files /dev/null and b/icons/default/text_arrowturn_sel.png differ
diff --git a/icons/default/text_new.png b/icons/default/text_new.png
new file mode 100644
index 0000000..b073dcb
Binary files /dev/null and b/icons/default/text_new.png differ
diff --git a/icons/default/text_new_cur.png b/icons/default/text_new_cur.png
new file mode 100644
index 0000000..b073dcb
Binary files /dev/null and b/icons/default/text_new_cur.png differ
diff --git a/icons/default/text_new_sel.png b/icons/default/text_new_sel.png
new file mode 100644
index 0000000..b073dcb
Binary files /dev/null and b/icons/default/text_new_sel.png differ
diff --git a/icons/default/text_rec.png b/icons/default/text_rec.png
new file mode 100644
index 0000000..123978f
Binary files /dev/null and b/icons/default/text_rec.png differ
diff --git a/icons/default/text_rec_cur.png b/icons/default/text_rec_cur.png
new file mode 100644
index 0000000..123978f
Binary files /dev/null and b/icons/default/text_rec_cur.png differ
diff --git a/icons/default/text_rec_sel.png b/icons/default/text_rec_sel.png
new file mode 100644
index 0000000..123978f
Binary files /dev/null and b/icons/default/text_rec_sel.png differ
diff --git a/icons/default/text_timer_full.png b/icons/default/text_timer_full.png
new file mode 100644
index 0000000..9c01dbd
Binary files /dev/null and b/icons/default/text_timer_full.png differ
diff --git a/icons/default/text_timer_full_cur.png b/icons/default/text_timer_full_cur.png
new file mode 100644
index 0000000..9c01dbd
Binary files /dev/null and b/icons/default/text_timer_full_cur.png differ
diff --git a/icons/default/text_timer_full_sel.png b/icons/default/text_timer_full_sel.png
new file mode 100644
index 0000000..9c01dbd
Binary files /dev/null and b/icons/default/text_timer_full_sel.png differ
diff --git a/icons/default/text_timer_partial.png b/icons/default/text_timer_partial.png
new file mode 100644
index 0000000..0c49eb6
Binary files /dev/null and b/icons/default/text_timer_partial.png differ
diff --git a/icons/default/text_timer_partial_cur.png b/icons/default/text_timer_partial_cur.png
new file mode 100644
index 0000000..0c49eb6
Binary files /dev/null and b/icons/default/text_timer_partial_cur.png differ
diff --git a/icons/default/text_timer_partial_sel.png b/icons/default/text_timer_partial_sel.png
new file mode 100644
index 0000000..0c49eb6
Binary files /dev/null and b/icons/default/text_timer_partial_sel.png differ
diff --git a/icons/default/text_vps.png b/icons/default/text_vps.png
new file mode 100644
index 0000000..7ec5a98
Binary files /dev/null and b/icons/default/text_vps.png differ
diff --git a/icons/default/text_vps_cur.png b/icons/default/text_vps_cur.png
new file mode 100644
index 0000000..7ec5a98
Binary files /dev/null and b/icons/default/text_vps_cur.png differ
diff --git a/icons/default/text_vps_sel.png b/icons/default/text_vps_sel.png
new file mode 100644
index 0000000..7ec5a98
Binary files /dev/null and b/icons/default/text_vps_sel.png differ
diff --git a/icons/default/timerActive.png b/icons/default/timerActive.png
new file mode 100644
index 0000000..0973e0c
Binary files /dev/null and b/icons/default/timerActive.png differ
diff --git a/icons/default/timerInactive.png b/icons/default/timerInactive.png
new file mode 100644
index 0000000..cafccb6
Binary files /dev/null and b/icons/default/timerInactive.png differ
diff --git a/icons/default/timerInactiveBig.png b/icons/default/timerInactiveBig.png
new file mode 100644
index 0000000..94d9b93
Binary files /dev/null and b/icons/default/timerInactiveBig.png differ
diff --git a/icons/default/timerRecording.png b/icons/default/timerRecording.png
new file mode 100644
index 0000000..b3ea838
Binary files /dev/null and b/icons/default/timerRecording.png differ
diff --git a/icons/default/timer_full.png b/icons/default/timer_full.png
new file mode 100644
index 0000000..9c01dbd
Binary files /dev/null and b/icons/default/timer_full.png differ
diff --git a/icons/default/timer_partial.png b/icons/default/timer_partial.png
new file mode 100644
index 0000000..d7374fc
Binary files /dev/null and b/icons/default/timer_partial.png differ
diff --git a/icons/default/topbar_timer.png b/icons/default/topbar_timer.png
new file mode 100644
index 0000000..b25c480
Binary files /dev/null and b/icons/default/topbar_timer.png differ
diff --git a/icons/default/topbar_timerconflict_high.png b/icons/default/topbar_timerconflict_high.png
new file mode 100644
index 0000000..956050f
Binary files /dev/null and b/icons/default/topbar_timerconflict_high.png differ
diff --git a/icons/default/topbar_timerconflict_low.png b/icons/default/topbar_timerconflict_low.png
new file mode 100644
index 0000000..695ae9f
Binary files /dev/null and b/icons/default/topbar_timerconflict_low.png differ
diff --git a/icons/default/tracks_ac3.png b/icons/default/tracks_ac3.png
new file mode 100644
index 0000000..78da703
Binary files /dev/null and b/icons/default/tracks_ac3.png differ
diff --git a/icons/default/tracks_stereo.png b/icons/default/tracks_stereo.png
new file mode 100644
index 0000000..9c3e3d9
Binary files /dev/null and b/icons/default/tracks_stereo.png differ
diff --git a/icons/default/tv.png b/icons/default/tv.png
new file mode 100644
index 0000000..9436a27
Binary files /dev/null and b/icons/default/tv.png differ
diff --git a/icons/default/uncrypted.png b/icons/default/uncrypted.png
new file mode 100644
index 0000000..f7652e6
Binary files /dev/null and b/icons/default/uncrypted.png differ
diff --git a/icons/default/unknown_asp.png b/icons/default/unknown_asp.png
new file mode 100644
index 0000000..426d951
Binary files /dev/null and b/icons/default/unknown_asp.png differ
diff --git a/icons/default/unknown_res.png b/icons/default/unknown_res.png
new file mode 100644
index 0000000..166115f
Binary files /dev/null and b/icons/default/unknown_res.png differ
diff --git a/icons/default/vps.png b/icons/default/vps.png
new file mode 100644
index 0000000..697697c
Binary files /dev/null and b/icons/default/vps.png differ
diff --git a/icons/default/widgets/active_timers.png b/icons/default/widgets/active_timers.png
new file mode 100644
index 0000000..8f31913
Binary files /dev/null and b/icons/default/widgets/active_timers.png differ
diff --git a/icons/default/widgets/clear-day.png b/icons/default/widgets/clear-day.png
new file mode 100644
index 0000000..2b06a14
Binary files /dev/null and b/icons/default/widgets/clear-day.png differ
diff --git a/icons/default/widgets/clear-night.png b/icons/default/widgets/clear-night.png
new file mode 100644
index 0000000..9bbe49f
Binary files /dev/null and b/icons/default/widgets/clear-night.png differ
diff --git a/icons/default/widgets/cloudy.png b/icons/default/widgets/cloudy.png
new file mode 100644
index 0000000..9870c7f
Binary files /dev/null and b/icons/default/widgets/cloudy.png differ
diff --git a/icons/default/widgets/command_output.png b/icons/default/widgets/command_output.png
new file mode 100644
index 0000000..2f36a18
Binary files /dev/null and b/icons/default/widgets/command_output.png differ
diff --git a/icons/default/widgets/dvb_devices.png b/icons/default/widgets/dvb_devices.png
new file mode 100644
index 0000000..575f5a0
Binary files /dev/null and b/icons/default/widgets/dvb_devices.png differ
diff --git a/icons/default/widgets/fog.png b/icons/default/widgets/fog.png
new file mode 100644
index 0000000..9bc88d2
Binary files /dev/null and b/icons/default/widgets/fog.png differ
diff --git a/icons/default/widgets/last_recordings.png b/icons/default/widgets/last_recordings.png
new file mode 100644
index 0000000..fde8879
Binary files /dev/null and b/icons/default/widgets/last_recordings.png differ
diff --git a/icons/default/widgets/partly-cloudy-day.png b/icons/default/widgets/partly-cloudy-day.png
new file mode 100644
index 0000000..b6df179
Binary files /dev/null and b/icons/default/widgets/partly-cloudy-day.png differ
diff --git a/icons/default/widgets/partly-cloudy-night.png b/icons/default/widgets/partly-cloudy-night.png
new file mode 100644
index 0000000..aa358fb
Binary files /dev/null and b/icons/default/widgets/partly-cloudy-night.png differ
diff --git a/icons/default/widgets/rain.png b/icons/default/widgets/rain.png
new file mode 100644
index 0000000..8275003
Binary files /dev/null and b/icons/default/widgets/rain.png differ
diff --git a/icons/default/widgets/sleet.png b/icons/default/widgets/sleet.png
new file mode 100644
index 0000000..1d99ae0
Binary files /dev/null and b/icons/default/widgets/sleet.png differ
diff --git a/icons/default/widgets/snow.png b/icons/default/widgets/snow.png
new file mode 100644
index 0000000..939e22f
Binary files /dev/null and b/icons/default/widgets/snow.png differ
diff --git a/icons/default/widgets/system_information.png b/icons/default/widgets/system_information.png
new file mode 100644
index 0000000..9a0dec4
Binary files /dev/null and b/icons/default/widgets/system_information.png differ
diff --git a/icons/default/widgets/system_updates.png b/icons/default/widgets/system_updates.png
new file mode 100644
index 0000000..02a424d
Binary files /dev/null and b/icons/default/widgets/system_updates.png differ
diff --git a/icons/default/widgets/temperatures.png b/icons/default/widgets/temperatures.png
new file mode 100644
index 0000000..a0c05fd
Binary files /dev/null and b/icons/default/widgets/temperatures.png differ
diff --git a/icons/default/widgets/thunderstorm.png b/icons/default/widgets/thunderstorm.png
new file mode 100644
index 0000000..4abf371
Binary files /dev/null and b/icons/default/widgets/thunderstorm.png differ
diff --git a/icons/default/widgets/timer_conflicts.png b/icons/default/widgets/timer_conflicts.png
new file mode 100644
index 0000000..c4d17d2
Binary files /dev/null and b/icons/default/widgets/timer_conflicts.png differ
diff --git a/icons/default/widgets/umbrella.png b/icons/default/widgets/umbrella.png
new file mode 100644
index 0000000..18deac1
Binary files /dev/null and b/icons/default/widgets/umbrella.png differ
diff --git a/icons/default/widgets/weather.png b/icons/default/widgets/weather.png
new file mode 100644
index 0000000..2898738
Binary files /dev/null and b/icons/default/widgets/weather.png differ
diff --git a/icons/default/widgets/wind.png b/icons/default/widgets/wind.png
new file mode 100644
index 0000000..d92ec15
Binary files /dev/null and b/icons/default/widgets/wind.png differ
diff --git a/icons/fnuanthraamber/logo_background.png b/icons/fnuanthraamber/logo_background.png
new file mode 120000
index 0000000..43b52e9
--- /dev/null
+++ b/icons/fnuanthraamber/logo_background.png
@@ -0,0 +1 @@
+../fnuanthrared/logo_background_white.png
\ No newline at end of file
diff --git a/icons/fnuanthraamber/recording_new.png b/icons/fnuanthraamber/recording_new.png
new file mode 120000
index 0000000..2622a95
--- /dev/null
+++ b/icons/fnuanthraamber/recording_new.png
@@ -0,0 +1 @@
+recording_new_amber.png
\ No newline at end of file
diff --git a/icons/fnuanthraamber/recording_new_amber.png b/icons/fnuanthraamber/recording_new_amber.png
new file mode 100644
index 0000000..2623c04
Binary files /dev/null and b/icons/fnuanthraamber/recording_new_amber.png differ
diff --git a/icons/fnuanthracutis/logo_background.png b/icons/fnuanthracutis/logo_background.png
new file mode 120000
index 0000000..43b52e9
--- /dev/null
+++ b/icons/fnuanthracutis/logo_background.png
@@ -0,0 +1 @@
+../fnuanthrared/logo_background_white.png
\ No newline at end of file
diff --git a/icons/fnuanthracutis/recording_new.png b/icons/fnuanthracutis/recording_new.png
new file mode 120000
index 0000000..5be82ac
--- /dev/null
+++ b/icons/fnuanthracutis/recording_new.png
@@ -0,0 +1 @@
+recording_new_cutis.png
\ No newline at end of file
diff --git a/icons/fnuanthracutis/recording_new_cutis.png b/icons/fnuanthracutis/recording_new_cutis.png
new file mode 100644
index 0000000..c95d406
Binary files /dev/null and b/icons/fnuanthracutis/recording_new_cutis.png differ
diff --git a/icons/fnuanthragreen/logo_background.png b/icons/fnuanthragreen/logo_background.png
new file mode 120000
index 0000000..43b52e9
--- /dev/null
+++ b/icons/fnuanthragreen/logo_background.png
@@ -0,0 +1 @@
+../fnuanthrared/logo_background_white.png
\ No newline at end of file
diff --git a/icons/fnuanthragreen/recording_new.png b/icons/fnuanthragreen/recording_new.png
new file mode 120000
index 0000000..43389c5
--- /dev/null
+++ b/icons/fnuanthragreen/recording_new.png
@@ -0,0 +1 @@
+recording_new_green.png
\ No newline at end of file
diff --git a/icons/fnuanthragreen/recording_new_green.png b/icons/fnuanthragreen/recording_new_green.png
new file mode 100644
index 0000000..4592f0f
Binary files /dev/null and b/icons/fnuanthragreen/recording_new_green.png differ
diff --git a/icons/fnuanthraivory/logo_background.png b/icons/fnuanthraivory/logo_background.png
new file mode 120000
index 0000000..43b52e9
--- /dev/null
+++ b/icons/fnuanthraivory/logo_background.png
@@ -0,0 +1 @@
+../fnuanthrared/logo_background_white.png
\ No newline at end of file
diff --git a/icons/fnuanthraivory/recording_new.png b/icons/fnuanthraivory/recording_new.png
new file mode 120000
index 0000000..aa6b50f
--- /dev/null
+++ b/icons/fnuanthraivory/recording_new.png
@@ -0,0 +1 @@
+recording_new_ivory.png
\ No newline at end of file
diff --git a/icons/fnuanthraivory/recording_new_ivory.png b/icons/fnuanthraivory/recording_new_ivory.png
new file mode 100644
index 0000000..8dce76f
Binary files /dev/null and b/icons/fnuanthraivory/recording_new_ivory.png differ
diff --git a/icons/fnuanthralilac/logo_background.png b/icons/fnuanthralilac/logo_background.png
new file mode 120000
index 0000000..43b52e9
--- /dev/null
+++ b/icons/fnuanthralilac/logo_background.png
@@ -0,0 +1 @@
+../fnuanthrared/logo_background_white.png
\ No newline at end of file
diff --git a/icons/fnuanthralilac/recording_new.png b/icons/fnuanthralilac/recording_new.png
new file mode 120000
index 0000000..49ba35a
--- /dev/null
+++ b/icons/fnuanthralilac/recording_new.png
@@ -0,0 +1 @@
+recording_new_lilac.png
\ No newline at end of file
diff --git a/icons/fnuanthralilac/recording_new_lilac.png b/icons/fnuanthralilac/recording_new_lilac.png
new file mode 100644
index 0000000..3f7cd34
Binary files /dev/null and b/icons/fnuanthralilac/recording_new_lilac.png differ
diff --git a/icons/fnuanthrared/logo_background.png b/icons/fnuanthrared/logo_background.png
new file mode 120000
index 0000000..e01df1c
--- /dev/null
+++ b/icons/fnuanthrared/logo_background.png
@@ -0,0 +1 @@
+logo_background_white.png
\ No newline at end of file
diff --git a/icons/fnuanthrared/logo_background_white.png b/icons/fnuanthrared/logo_background_white.png
new file mode 100644
index 0000000..c916321
Binary files /dev/null and b/icons/fnuanthrared/logo_background_white.png differ
diff --git a/icons/fnuanthrared/recording_new.png b/icons/fnuanthrared/recording_new.png
new file mode 120000
index 0000000..6a40fcb
--- /dev/null
+++ b/icons/fnuanthrared/recording_new.png
@@ -0,0 +1 @@
+recording_new_red.png
\ No newline at end of file
diff --git a/icons/fnuanthrared/recording_new_red.png b/icons/fnuanthrared/recording_new_red.png
new file mode 100644
index 0000000..90483de
Binary files /dev/null and b/icons/fnuanthrared/recording_new_red.png differ
diff --git a/icons/fnuanthrayablue/logo_background.png b/icons/fnuanthrayablue/logo_background.png
new file mode 120000
index 0000000..43b52e9
--- /dev/null
+++ b/icons/fnuanthrayablue/logo_background.png
@@ -0,0 +1 @@
+../fnuanthrared/logo_background_white.png
\ No newline at end of file
diff --git a/icons/fnuanthrayablue/recording_new.png b/icons/fnuanthrayablue/recording_new.png
new file mode 120000
index 0000000..90256f5
--- /dev/null
+++ b/icons/fnuanthrayablue/recording_new.png
@@ -0,0 +1 @@
+recording_new_yablue.png
\ No newline at end of file
diff --git a/icons/fnuanthrayablue/recording_new_yablue.png b/icons/fnuanthrayablue/recording_new_yablue.png
new file mode 100644
index 0000000..98f11df
Binary files /dev/null and b/icons/fnuanthrayablue/recording_new_yablue.png differ
diff --git a/imagecache.c b/imagecache.c
new file mode 100644
index 0000000..6160647
--- /dev/null
+++ b/imagecache.c
@@ -0,0 +1,83 @@
+#include "imagecache.h"
+#include "config.h"
+
+
+#include "displaychannel.h"
+#include "displaymenu.h"
+#include "displaymessage.h"
+#include "displayreplay.h"
+#include "displaytracks.h"
+#include "displayvolume.h"
+
+
+cImageCache::cImageCache() {
+    Overflow = false;
+}
+
+cImageCache::~cImageCache() {
+    
+}
+
+void cImageCache::Create(void) {
+    for(int i = 0; i < MAX_IMAGE_CACHE; i++) {
+        CacheImage[i] = NULL;
+        CacheName[i] = "";
+        CacheWidth[i] = -1;
+        CacheHeight[i] = -1;
+    }
+
+    InsertIndex = 0;
+}
+
+void cImageCache::Clear(void) {
+    for(int i = 0; i < MAX_IMAGE_CACHE; i++) {
+        if( CacheImage[i] != NULL )
+            delete CacheImage[i];
+    }
+
+    InsertIndex = 0;
+}
+
+cImage* cImageCache::GetImage(std::string Name, int Width, int Height) {
+    //dsyslog("imagecache search for image %s Width %d Height %d", Name.c_str(), Width, Height);
+    for(int index = 0; index < MAX_IMAGE_CACHE; index++ ) {
+        //dsyslog("imagecache index %d image %s Width %d Height %d", index, CacheName[index].c_str(), CacheWidth[index], CacheHeight[index]);
+        if( CacheName[index] == Name && CacheWidth[index] == Width && CacheHeight[index] == Height )
+            return CacheImage[index];
+    }
+    return NULL;
+}
+
+void cImageCache::InsertImage(cImage *Image, std::string Name, int Width, int Height) {
+    CacheImage[InsertIndex] = Image;
+    CacheName[InsertIndex] = Name;
+    CacheWidth[InsertIndex] = Width;
+    CacheHeight[InsertIndex] = Height;
+
+    InsertIndex++;
+    if( InsertIndex >= MAX_IMAGE_CACHE ) {
+        isyslog("skinflatplus: imagecache overflow, increase MAX_IMAGE_CACHE");
+        InsertIndex = 0;
+        Overflow = true;
+    }
+}
+
+void cImageCache::PreLoadImage(void) {
+    uint32_t tick1 = GetMsTicks();
+
+    cFlatDisplayChannel DisplayChannel(false);
+    DisplayChannel.PreLoadImages();
+
+    cFlatDisplayMenu DisplayMenu;
+    DisplayMenu.PreLoadImages();
+
+    cFlatDisplayReplay DisplayReplay(false);
+    DisplayReplay.PreLoadImages();
+
+    cFlatDisplayVolume DisplayVolume;
+    DisplayVolume.PreLoadImages();
+
+    uint32_t tick2 = GetMsTicks();
+    dsyslog("skinflatplus imagecache pre load images time: %d ms", tick2 - tick1);
+    dsyslog("skinflatplus imagecache pre loaded images %d / %d", getCacheCount(), MAX_IMAGE_CACHE);
+}
diff --git a/imagecache.h b/imagecache.h
new file mode 100644
index 0000000..1cd03a5
--- /dev/null
+++ b/imagecache.h
@@ -0,0 +1,34 @@
+#pragma once
+#include <vdr/osd.h>
+#include <vdr/skins.h>
+#include <string>
+
+#define MAX_IMAGE_CACHE     999
+#define LOGO_PRE_CACHE      200
+// note MAX_LOGO_PRE_CACHE is used twice
+// one for displaychannel and one for menu
+// you must double the value for the real amount of pre cached logos
+
+class cImageCache {
+private:
+    cImage *CacheImage[MAX_IMAGE_CACHE];
+    std::string CacheName[MAX_IMAGE_CACHE];
+    int CacheWidth[MAX_IMAGE_CACHE];
+    int CacheHeight[MAX_IMAGE_CACHE];
+
+    int InsertIndex;
+    bool Overflow;
+public:
+    cImageCache();
+    ~cImageCache();
+
+    void Create(void);
+    void Clear(void);
+
+    int getCacheCount(void) { if(Overflow) return MAX_IMAGE_CACHE; return InsertIndex+1; }
+
+    cImage *GetImage(std::string Name, int Width, int Height);
+    void InsertImage(cImage *Image, std::string Name, int Width, int Height);
+
+    void PreLoadImage(void);
+};
diff --git a/imageloader.c b/imageloader.c
new file mode 100644
index 0000000..a5e3a91
--- /dev/null
+++ b/imageloader.c
@@ -0,0 +1,246 @@
+#include "imageloader.h"
+#include <math.h>
+#include <string>
+#include <dirent.h>
+#include <iostream>
+#include "flat.h"
+
+using namespace Magick;
+
+cImageLoader::cImageLoader() {
+    InitializeMagick(NULL);
+    logoExtension = "png";
+}
+
+cImageLoader::~cImageLoader() {
+}
+
+cImage* cImageLoader::LoadLogo(const char *logo, int width, int height) {
+    if( (width == 0) || (height==0) )
+        return NULL;
+    std::string logoLower = logo;
+    toLowerCase(logoLower);
+    cString File = cString::sprintf("%s/%s.%s", *Config.logoPath, logoLower.c_str(), *logoExtension);
+    #ifdef DEBUGIMAGELOADTIME
+        dsyslog("imageloader load logo %s", *File);
+    #endif
+
+    cImage *img;
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick1 = GetMsTicks();
+    #endif
+
+    img = imgCache.GetImage( *File, width, height );
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick2 = GetMsTicks();
+        dsyslog("   search in cache: %d ms", tick2 - tick1);
+    #endif
+    if( img != NULL )
+        return img;
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick3 = GetMsTicks();
+    #endif
+
+    bool success = LoadImage(File);
+
+    if( !success ) {
+        dsyslog("imageloader LoadLogo: %s could not be loaded", *File);
+        return NULL;
+    }
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick4 = GetMsTicks();
+        dsyslog("   load file from disk: %d ms", tick4 - tick3);
+    #endif
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick5 = GetMsTicks();
+    #endif
+
+    img = CreateImage(width, height);
+
+    if( img == NULL )
+        return NULL;
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick6 = GetMsTicks();
+        dsyslog("   scale logo: %d ms", tick6 - tick5);
+    #endif
+
+    imgCache.InsertImage(img, *File, width, height);
+    return img;
+}
+
+cImage* cImageLoader::LoadIcon(const char *cIcon, int width, int height, bool preserveAspect) {
+    if ((width == 0)||(height==0))
+        return NULL;
+
+    cString File = cString::sprintf("%s%s/%s.%s", *Config.iconPath, Setup.OSDTheme, cIcon, *logoExtension);
+
+    #ifdef DEBUGIMAGELOADTIME
+        dsyslog("imageloader load icon %s", *File);
+    #endif
+
+    cImage *img;
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick1 = GetMsTicks();
+    #endif
+
+    img = imgCache.GetImage( *File, width, height );
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick2 = GetMsTicks();
+        dsyslog("   search in cache: %d ms", tick2 - tick1);
+    #endif
+    if( img != NULL )
+        return img;
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick3 = GetMsTicks();
+    #endif
+
+    bool success = LoadImage(File);
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick4 = GetMsTicks();
+        dsyslog("   load file from disk: %d ms", tick4 - tick3);
+    #endif
+
+    if( !success ) {
+        File = cString::sprintf("%s%s/%s.%s", *Config.iconPath, "default", cIcon, *logoExtension);
+        #ifdef DEBUGIMAGELOADTIME
+            dsyslog("imageloader load icon %s", *File);
+            uint32_t tick5 = GetMsTicks();
+        #endif
+
+        img = imgCache.GetImage( *File, width, height );
+
+        #ifdef DEBUGIMAGELOADTIME
+            uint32_t tick6 = GetMsTicks();
+            dsyslog("   search in cache: %d ms", tick6 - tick5);
+        #endif
+        if( img != NULL )
+            return img;
+
+        #ifdef DEBUGIMAGELOADTIME
+            uint32_t tick7 = GetMsTicks();
+        #endif
+
+        success = LoadImage(File);
+
+        #ifdef DEBUGIMAGELOADTIME
+            uint32_t tick8 = GetMsTicks();
+            dsyslog("   load file from disk: %d ms", tick8 - tick7);
+        #endif
+
+        if( !success ) {
+            dsyslog("imageloader LoadIcon: %s could not be loaded", *File);
+            return NULL;
+        }
+    }
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick9 = GetMsTicks();
+    #endif
+
+    img = CreateImage(width, height);
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick10 = GetMsTicks();
+        dsyslog("   scale logo: %d ms", tick10 - tick9);
+    #endif
+    if( img == NULL )
+        return NULL;
+    imgCache.InsertImage(img, *File, width, height);
+    return img;
+}
+
+cImage* cImageLoader::LoadFile(const char *cFile, int width, int height, bool preserveAspect) {
+    if( (width == 0) || (height==0) )
+        return NULL;
+    cString File = cFile;
+    #ifdef DEBUGIMAGELOADTIME
+        dsyslog("imageloader load file %s", *File);
+    #endif
+
+    cImage *img;
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick1 = GetMsTicks();
+    #endif
+
+    img = imgCache.GetImage( *File, width, height );
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick2 = GetMsTicks();
+        dsyslog("   search in cache: %d ms", tick2 - tick1);
+    #endif
+    if( img != NULL )
+        return img;
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick3 = GetMsTicks();
+    #endif
+
+    bool success = LoadImage(File);
+
+    if( !success ) {
+        dsyslog("imageloader LoadFile: %s could not be loaded", *File);
+        return NULL;
+    }
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick4 = GetMsTicks();
+        dsyslog("   load file from disk: %d ms", tick4 - tick3);
+    #endif
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick5 = GetMsTicks();
+    #endif
+
+    img = CreateImage(width, height);
+
+    if( img == NULL )
+        return NULL;
+
+    #ifdef DEBUGIMAGELOADTIME
+        uint32_t tick6 = GetMsTicks();
+        dsyslog("   scale logo: %d ms", tick6 - tick5);
+    #endif
+
+    imgCache.InsertImage(img, *File, width, height);
+    return img;
+}
+
+void cImageLoader::toLowerCase(std::string &str) {
+    const int length = str.length();
+    for(int i=0; i < length; ++i) {
+        str[i] = std::tolower(str[i]);
+    }
+}
+
+bool cImageLoader::FileExits(const std::string& name) {
+    struct stat buffer;
+    return (stat (name.c_str(), &buffer) == 0);
+}
+
+bool cImageLoader::SearchRecordingPoster(cString recPath, cString &found) {
+    cString manualPoster = cString::sprintf("%s/cover_vdr.jpg", *recPath);
+    if (FileSize(*manualPoster) != -1) {
+        dsyslog("Poster found in %s/cover_vdr.jpg", *recPath);
+        found = manualPoster;
+        return true;
+    }
+    manualPoster = cString::sprintf("%s/../../../cover_vdr.jpg", *recPath);
+    if (FileSize(*manualPoster) != -1) {
+        dsyslog("Poster found in %s/../../../cover_vdr.jpg", *recPath);
+        found = manualPoster;
+        return true;
+    }
+    manualPoster = cString::sprintf("%s/../../cover_vdr.jpg", *recPath);
+    if (FileSize(*manualPoster) != -1) {
+        dsyslog("Poster found in %s/../../cover_vdr.jpg", *recPath);
+        found = manualPoster;
+        return true;
+    }
+    return false;
+}
diff --git a/imageloader.h b/imageloader.h
new file mode 100644
index 0000000..b340f9a
--- /dev/null
+++ b/imageloader.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#define X_DISPLAY_MISSING
+
+
+#include <vdr/osd.h>
+#include <vdr/skins.h>
+
+#include <Magick++.h>
+#include "imagemagickwrapper.h"
+
+using namespace Magick;
+
+class cImageLoader : public cImageMagickWrapper {
+public:
+    cImageLoader();
+    ~cImageLoader();
+
+    cImage* LoadLogo(const char *logo, int width, int height);
+    cImage* LoadIcon(const char *cIcon, int width, int height, bool preserveAspect = true);
+    cImage* LoadFile(const char *cFile, int width, int height, bool preserveAspect = true);
+    bool FileExits(const std::string& name);
+    bool SearchRecordingPoster(cString recPath, cString &found);
+private:
+    int epgImageWidthLarge, epgImageHeightLarge;
+    int epgImageWidth, epgImageHeight;
+    cString logoExtension;
+
+    void toLowerCase(std::string &str);
+};
diff --git a/imagemagickwrapper.c b/imagemagickwrapper.c
new file mode 100644
index 0000000..22532b3
--- /dev/null
+++ b/imagemagickwrapper.c
@@ -0,0 +1,87 @@
+#include <string>
+#include <sstream>
+#include "imagemagickwrapper.h"
+#include "imagescaler.h"
+
+cImageMagickWrapper::cImageMagickWrapper() {
+    InitializeMagick(NULL);
+}
+
+cImageMagickWrapper::~cImageMagickWrapper() {
+}
+
+cImage *cImageMagickWrapper::CreateImage(int width, int height, bool preserveAspect) {
+    int w, h;
+    w = buffer.columns();
+    h = buffer.rows();
+    if (width == 0)
+        width = w;
+    if (height == 0)
+        height = h;
+    if (preserveAspect) {
+        unsigned scale_w = 1000 * width / w;
+        unsigned scale_h = 1000 * height / h;
+        if (scale_w > scale_h)
+          width = w * height / h;
+        else
+          height = h * width / w;
+    }
+    const PixelPacket *pixels = buffer.getConstPixels(0, 0, w, h);
+    cImage *image = new cImage(cSize(width, height));
+    tColor *imgData = (tColor *)image->Data();
+    if (w != width || h != height) {
+        ImageScaler scaler;
+        scaler.SetImageParameters(imgData, width, width, height, w, h);
+        for (const void *pixels_end = &pixels[w*h]; pixels < pixels_end; ++pixels)
+            scaler.PutSourcePixel(pixels->blue / ((MaxRGB + 1) / 256),
+                                  pixels->green / ((MaxRGB + 1) / 256),
+                                  pixels->red / ((MaxRGB + 1) / 256),
+                                  ~((unsigned char)(pixels->opacity / ((MaxRGB + 1) / 256))));
+        return image;
+    }
+    for (const void *pixels_end = &pixels[width*height]; pixels < pixels_end; ++pixels)
+        *imgData++ = ((~int(pixels->opacity / ((MaxRGB + 1) / 256)) << 24) |
+                      (int(pixels->green / ((MaxRGB + 1) / 256)) << 8) |
+                      (int(pixels->red / ((MaxRGB + 1) / 256)) << 16) |
+                      (int(pixels->blue / ((MaxRGB + 1) / 256)) ));
+    return image;
+}
+
+cImage cImageMagickWrapper::CreateImageCopy() {
+    int w, h;
+    w = buffer.columns();
+    h = buffer.rows();
+    cImage image (cSize(w, h));
+    const PixelPacket *pixels = buffer.getConstPixels(0, 0, w, h);
+    for (int iy = 0; iy < h; ++iy) {
+        for (int ix = 0; ix < w; ++ix) {
+            tColor col = (~int(pixels->opacity * 255 / MaxRGB) << 24)
+            | (int(pixels->green * 255 / MaxRGB) << 8)
+            | (int(pixels->red * 255 / MaxRGB) << 16)
+            | (int(pixels->blue * 255 / MaxRGB) );
+            image.SetPixel(cPoint(ix, iy), col);
+            ++pixels;
+        }
+    }
+    return image;
+}
+
+bool cImageMagickWrapper::LoadImage(const char *fullpath) {
+    if ((fullpath == NULL) || (strlen(fullpath) < 5))
+        return false;
+    try {
+        buffer.read(fullpath);
+    } catch(...) {
+        return false;
+    }
+    return true;
+}
+
+Color cImageMagickWrapper::Argb2Color(tColor col) {
+    tIndex alpha = (col & 0xFF000000) >> 24;
+    tIndex red = (col & 0x00FF0000) >> 16;
+    tIndex green = (col & 0x0000FF00) >> 8;
+    tIndex blue = (col & 0x000000FF);
+    Color color(MaxRGB*red/255, MaxRGB*green/255, MaxRGB*blue/255, MaxRGB*(0xFF-alpha)/255);
+    return color;
+}
diff --git a/imagemagickwrapper.h b/imagemagickwrapper.h
new file mode 100644
index 0000000..9750a88
--- /dev/null
+++ b/imagemagickwrapper.h
@@ -0,0 +1,23 @@
+#ifndef __NOPACITY_IMAGEMAGICKWRAPPER_H
+#define __NOPACITY_IMAGEMAGICKWRAPPER_H
+
+#define X_DISPLAY_MISSING
+
+#include <Magick++.h>
+#include <vdr/osd.h>
+
+using namespace Magick;
+
+class cImageMagickWrapper {
+public:
+    cImageMagickWrapper();
+    ~cImageMagickWrapper();
+protected:
+    Image buffer;
+    Color Argb2Color(tColor col);
+    cImage *CreateImage(int width, int height, bool preserveAspect = true);
+    cImage CreateImageCopy(void);
+    bool LoadImage(const char *fullpath);
+};
+
+#endif
diff --git a/imagescaler.c b/imagescaler.c
new file mode 100644
index 0000000..cebe912
--- /dev/null
+++ b/imagescaler.c
@@ -0,0 +1,149 @@
+
+#include "imagescaler.h"
+
+#include <cstdlib>
+#include <cmath>
+
+ImageScaler::ImageScaler() :
+	m_memory(NULL),
+	m_hor_filters(NULL),
+	m_ver_filters(NULL),
+	m_buffer(NULL),
+	m_dst_image(NULL),
+	m_dst_stride(0),
+	m_dst_width(0),
+	m_dst_height(0),
+	m_src_width(0),
+	m_src_height(0),
+	m_src_x(0),
+	m_src_y(0),
+	m_dst_x(0),
+	m_dst_y(0) {
+}
+
+ImageScaler::~ImageScaler() {
+	if ( m_memory ) free( m_memory );
+}
+
+// sin(x)/(x)
+static float sincf( float x ) {
+	if ( fabsf(x) < 0.05f ) return 1.0f - (1.0f/6.0f)*x*x;  // taylor series approximation to avoid 0/0
+	return sin(x)/x;
+}
+
+static void CalculateFilters( ImageScaler::Filter *filters, int dst_size, int src_size ) {
+	const float fc = dst_size >= src_size ? 1.0f : ((float) dst_size)/((float) src_size);
+
+	for (int i = 0; i < dst_size; i++) {
+		const int    d          = 2*dst_size;                     // sample position denominator
+		const int    e          = (2*i+1) * src_size - dst_size;  // sample position enumerator
+		int          offset     =  e / d;                         // truncated sample position
+		const float  sub_offset = ((float) (e - offset*d)) / ((float) d);  // exact sample position is (float) e/d = offset + sub_offset
+
+		// calculate filter coefficients
+		float  h[4];
+		for (int j=0; j<4; j++) {
+			const float t = 3.14159265359f * (sub_offset+(1-j));
+			h[j] = sincf( fc * t ) * cosf( 0.25f * t );             // sinc-lowpass and cos-window
+		}
+
+		// ensure that filter does not reach out off image bounds:
+		while ( offset < 1 ) {
+			h[0] += h[1];
+			h[1] = h[2];
+			h[2] = h[3];
+			h[3] = 0.0f;
+			offset++;
+		}
+
+		while ( offset+3 > src_size ) {
+			h[3] += h[2];
+			h[2] = h[1];
+			h[1] = h[0];
+			h[0] = 0.0f;
+			offset--;
+		}
+
+		// coefficients are normalized to sum up to 2048
+		const float  norm = 2048.0f / ( h[0] + h[1] + h[2] + h[3] );
+
+		offset--;  // offset of fist used pixel
+
+		filters[i].m_offset = offset + 4;  // store offset of first unused pixel
+
+		for (int j=0; j<4; j++) {
+			const float t = norm * h[j];
+			filters[i].m_coeff[(offset+j) & 3] = (int) ((t > 0.0f) ?  (t+0.5f) : (t-0.5f));  // consider ring buffer index permutations
+		}
+	}
+
+	// set end marker
+	filters[dst_size].m_offset = (unsigned) -1;
+
+}
+
+void ImageScaler::SetImageParameters( unsigned *dst_image, unsigned dst_stride, unsigned dst_width, unsigned dst_height, unsigned src_width, unsigned src_height ) {
+	m_src_x = 0;
+	m_src_y = 0;
+	m_dst_x = 0;
+	m_dst_y = 0;
+
+	m_dst_image  = dst_image;
+	m_dst_stride = dst_stride;
+
+	// if image dimensions do not change we can keep the old filter coefficients
+	if ( (src_width == m_src_width) && (src_height == m_src_height) && (dst_width == m_dst_width) && (dst_height == m_dst_height) ) return;
+
+	m_dst_width  = dst_width;
+	m_dst_height = dst_height;
+	m_src_width  = src_width;
+	m_src_height = src_height;
+
+	if ( m_memory ) free( m_memory );
+
+	const unsigned  hor_filters_size = (m_dst_width  + 1) * sizeof(Filter);  // reserve one extra position for end marker
+	const unsigned  ver_filters_size = (m_dst_height + 1) * sizeof(Filter);
+	const unsigned  buffer_size      = 4 * m_dst_width * sizeof(TmpPixel);
+
+	char *p = (char *) malloc( hor_filters_size + ver_filters_size + buffer_size );
+
+	m_memory = p;
+
+	m_hor_filters = (Filter   *) p;  p += hor_filters_size;
+	m_ver_filters = (Filter   *) p;  p += ver_filters_size;
+	m_buffer      = (TmpPixel *) p;
+
+	CalculateFilters( m_hor_filters, m_dst_width , m_src_width  );
+	CalculateFilters( m_ver_filters, m_dst_height, m_src_height );
+}
+
+// shift range to 0..255 and clamp overflows
+static unsigned shift_clamp( int x ) {
+	x = ( x + (1<<21) ) >> 22;
+	if ( x <   0 ) return   0;
+	if ( x > 255 ) return 255;
+	return x;
+}
+
+void ImageScaler::NextSourceLine() {
+	m_dst_x = 0;
+	m_src_x = 0;
+	m_src_y++;
+
+	while ( m_ver_filters[m_dst_y].m_offset == m_src_y ) {
+		const int        h0  = m_ver_filters[m_dst_y].m_coeff[0];
+		const int        h1  = m_ver_filters[m_dst_y].m_coeff[1];
+		const int        h2  = m_ver_filters[m_dst_y].m_coeff[2];
+		const int        h3  = m_ver_filters[m_dst_y].m_coeff[3];
+		const TmpPixel  *src = m_buffer;
+		unsigned        *dst = m_dst_image + m_dst_stride * m_dst_y;
+
+		for (unsigned i=0; i<m_dst_width; i++) {
+			const ImageScaler::TmpPixel t( src[0]*h0 + src[1]*h1 + src[2]*h2 + src[3]*h3 );
+			src += 4;
+			dst[i] = shift_clamp(t[0]) | (shift_clamp(t[1])<<8) | (shift_clamp(t[2])<<16) | (shift_clamp(t[3])<<24);
+		}
+
+		m_dst_y++;
+	}
+}
diff --git a/imagescaler.h b/imagescaler.h
new file mode 100644
index 0000000..f2de6ba
--- /dev/null
+++ b/imagescaler.h
@@ -0,0 +1,97 @@
+#ifndef _ImageScaler_h
+#define _ImageScaler_h
+
+/*!
+ * this class scales images consisting of 4 components (RGBA)
+ * to an arbitrary size using a 4-tap filter
+ */
+class ImageScaler {
+public:
+
+	struct Filter {
+		unsigned  m_offset;
+		short     m_coeff[4];
+	};
+
+	ImageScaler();
+	~ImageScaler();
+
+	//! set destination image and source image size
+	void SetImageParameters( unsigned *dst_image, unsigned dst_stride, unsigned dst_width, unsigned dst_height, unsigned src_width, unsigned src_height );
+
+	/*! process one pixel of source image; destination image is written while input is processed
+	 * SetImageParameters() must be called first
+	 */
+	void PutSourcePixel( unsigned char c0, unsigned char c1, unsigned char c2, unsigned char c3 ) {
+		m_hbuf[ (m_src_x++) & 3 ].Set( c0, c1, c2, c3 );
+
+		TmpPixel      *bp = m_buffer + 4 * m_dst_x + (m_src_y & 3);
+		const Filter  *fh;
+
+		while ( (fh=m_hor_filters+m_dst_x)->m_offset == m_src_x ) {
+			*bp = m_hbuf[0]*fh->m_coeff[0] + m_hbuf[1]*fh->m_coeff[1] + m_hbuf[2]*fh->m_coeff[2] + m_hbuf[3]*fh->m_coeff[3];
+			m_dst_x++;
+			bp += 4;
+		}
+
+		if ( m_src_x == m_src_width ) NextSourceLine();
+	}
+
+private:
+
+	//! temporary image pixel class - a 4-element integer vector
+	class TmpPixel {
+	public:
+		TmpPixel() {
+		}
+
+		TmpPixel( int c0, int c1, int c2, int c3 ) {
+			Set(c0,c1,c2,c3);
+		}
+
+		void Set( int c0, int c1, int c2, int c3 ) {
+			m_comp[0] = c0;
+			m_comp[1] = c1;
+			m_comp[2] = c2;
+			m_comp[3] = c3;
+		}
+
+		TmpPixel operator*( int s ) const {
+			return TmpPixel( m_comp[0]*s, m_comp[1]*s, m_comp[2]*s, m_comp[3]*s );
+		}
+
+		TmpPixel operator+( const TmpPixel &x ) const {
+			return TmpPixel( m_comp[0] + x[0], m_comp[1] + x[1], m_comp[2] + x[2], m_comp[3] + x[3] );
+		}
+
+		// return component i=[0..3] - No range check!
+		int operator[](unsigned i) const {
+			return m_comp[i];
+		}
+
+	private:
+		int  m_comp[4];
+	};
+
+	//! this is called whenever one input line is processed completely
+	void NextSourceLine();
+
+	TmpPixel   m_hbuf[4];      //! ring buffer for 4 input pixels
+	char      *m_memory;       //! buffer container
+	Filter    *m_hor_filters;  //! buffer for horizontal filters (one for each output image column)
+	Filter    *m_ver_filters;  //! buffer for vertical   filters (one for each output image row)
+	TmpPixel  *m_buffer;       //! buffer contains 4 horizontally filtered input lines, multiplexed
+	unsigned  *m_dst_image;    //! pointer to destination image
+	unsigned   m_dst_stride;   //! destination image stride
+	unsigned   m_dst_width;    //! destination image width
+	unsigned   m_dst_height;   //! destination image height
+	unsigned   m_src_width;    //! source image width
+	unsigned   m_src_height;   //! source image height
+	unsigned   m_src_x;        //! x position of next source image pixel
+	unsigned   m_src_y;        //! y position of source image line currently beeing processed
+	unsigned   m_dst_x;        //! x position of next destination image pixel
+	unsigned   m_dst_y;        //! x position of next destination image line
+};
+
+#endif  // _ImageScaler_h
+
diff --git a/po/de_DE.po b/po/de_DE.po
new file mode 100644
index 0000000..0a1859d
--- /dev/null
+++ b/po/de_DE.po
@@ -0,0 +1,886 @@
+# VDR plugin language source file.
+# Copyright (C) 2008 Martin Schirrmacher <vdr.skinflat at schirrmacher.eu>
+# This file is distributed under the same license as the skinflat package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: vdr-skinflat 0.4.3\n"
+"Report-Msgid-Bugs-To: <see README>\n"
+"POT-Creation-Date: 2014-11-30 16:17+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"Language: de_DE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Disk"
+msgstr "Platte"
+
+msgid "free"
+msgstr "frei"
+
+msgid "occupied"
+msgstr "belegt"
+
+msgid "clock"
+msgstr "Uhr"
+
+msgid "Genre"
+msgstr "Kategorie"
+
+msgid "FSK"
+msgstr ""
+
+msgid "Video"
+msgstr "Video"
+
+msgid "Audio"
+msgstr "Audio"
+
+msgid "Subtitle"
+msgstr "Untertitel"
+
+msgid "timer not enabled"
+msgstr "Timer nicht aktiv"
+
+msgid "no recording info"
+msgstr "keine Aufnahme Informationen"
+
+msgid "name: "
+msgstr "Name: "
+
+msgid "first aired: "
+msgstr "Erstausstrahlung: "
+
+msgid "network: "
+msgstr "Sender: "
+
+msgid "genre: "
+msgstr "Genre: "
+
+msgid "rating: "
+msgstr "Wertung: "
+
+msgid "status: "
+msgstr "Status: "
+
+msgid "season number: "
+msgstr "Staffel: "
+
+msgid "episode number: "
+msgstr "Folge: "
+
+msgid "title: "
+msgstr "Titel: "
+
+msgid "original title: "
+msgstr "Originaltitel: "
+
+msgid "collection name: "
+msgstr "Sammlung Name:"
+
+msgid "release date: "
+msgstr "Erscheinungsdatum: "
+
+msgid "popularity: "
+msgstr "Beliebtheit: "
+
+msgid "vote average: "
+msgstr "durchsch. Wertung: "
+
+msgid "Description"
+msgstr "Beschreibung"
+
+msgid "Movie information"
+msgstr "Film Informationen"
+
+msgid "Series information"
+msgstr "Serien Informationen"
+
+msgid "Actors"
+msgstr "Schauspieler"
+
+msgid "Reruns"
+msgstr "Wiederholungen"
+
+msgid "Video information"
+msgstr "Video Informationen"
+
+msgid "Length"
+msgstr "L�nge"
+
+msgid "cutted"
+msgstr "geschnitten"
+
+msgid "Size"
+msgstr "Gr��e"
+
+msgid "format"
+msgstr "Format"
+
+msgid "bit rate"
+msgstr "Bitrate"
+
+msgid "additional information"
+msgstr "Zusatzinformationen"
+
+msgid "channel"
+msgstr "Kanal"
+
+msgid "search pattern"
+msgstr "Suchmuster"
+
+msgid "Recording information"
+msgstr "Aufnahme Informationen"
+
+msgid "DVB Devices"
+msgstr "DVB Ger�te"
+
+msgid "LiveTV"
+msgstr ""
+
+msgid "Unknown"
+msgstr "Unbekannt"
+
+msgid "recording"
+msgstr "Nimmt auf"
+
+msgid "not used"
+msgstr "Nicht verwendet"
+
+msgid "Active Timer"
+msgstr "Aktive Timer"
+
+msgid "no active timer"
+msgstr "Keine aktiven Timer"
+
+msgid "Last Recordings"
+msgstr "Letzte Aufnahmen"
+
+msgid "Timer Conflicts"
+msgstr "Timerkonflikte"
+
+msgid "no timer conflicts"
+msgstr "Keine Timerkonflikte"
+
+msgid "timer conflicts"
+msgstr "timerkonflikte"
+
+msgid "System Information"
+msgstr "Systeminformation"
+
+msgid "no information available please check the script"
+msgstr "Keine Informationen verf�gbar; Bitte Skript pr�fen"
+
+msgid "System Version"
+msgstr ""
+
+msgid "Kernel Version"
+msgstr ""
+
+msgid "Uptime"
+msgstr "L�uft"
+
+msgid "Load"
+msgstr "Last"
+
+msgid "Processes"
+msgstr "Prozesse"
+
+msgid "Memory Usage"
+msgstr "RAM-Nutzung"
+
+msgid "Swap Usage"
+msgstr "Swap-Nutzung"
+
+msgid "Root Usage"
+msgstr "Root-Nutzung"
+
+msgid "Video Usage"
+msgstr "Video-Nutzung"
+
+msgid "VDR CPU Usage"
+msgstr "VDR CPU"
+
+msgid "VDR MEM Usage"
+msgstr "VDR RAM-Nutzung"
+
+msgid "Temp CPU"
+msgstr "CPU-Temperatur"
+
+msgid "Temp GPU"
+msgstr "GPU-Temperatur"
+
+msgid "Temp PC-Case"
+msgstr "Geh�use-Temperatur"
+
+msgid "Temp MB"
+msgstr "MB-Temperatur"
+
+msgid "Updates"
+msgstr "Aktualisierungen"
+
+msgid "Security Updates"
+msgstr "Sicherheitsupdates"
+
+msgid "System Updates"
+msgstr "Systemupdates"
+
+msgid "Updatestatus not available please check the widget"
+msgstr "Updatestatus nicht vorhanden; Bitte Widget pr�fen"
+
+msgid "Temperatures"
+msgstr "Temperaturen"
+
+msgid "Temperatures not available please check the widget"
+msgstr "Temperaturen nicht vorhanden; Bitte Widget pr�fen"
+
+msgid "CPU"
+msgstr ""
+
+msgid "PC-Case"
+msgstr "Geh�use"
+
+msgid "MB"
+msgstr ""
+
+msgid "GPU"
+msgstr ""
+
+msgid "no title available"
+msgstr "Kein Titel vorhanden"
+
+msgid "no output available"
+msgstr "Keine Ausgabe vorhanden"
+
+msgid "Weather"
+msgstr "Wetter"
+
+msgid "Audio Tracks"
+msgstr "Tonspuren"
+
+msgid "Volume"
+msgstr "Lautst�rke"
+
+msgid "none"
+msgstr "keine"
+
+msgid "rect"
+msgstr "Eckig"
+
+msgid "round"
+msgstr "Rund"
+
+msgid "invert round"
+msgstr "Rund invertiert"
+
+msgid "rect + alpha blend"
+msgstr "Eckig + Transparent"
+
+msgid "round + alpha blend"
+msgstr "Rund + Transparent"
+
+msgid "invert round + alpha blend"
+msgstr "Rund invertiert + Transparent"
+
+msgid "small line + big line"
+msgstr "D�nne Linie + Dicke Linie"
+
+msgid "big line"
+msgstr "Dicke Linie"
+
+msgid "big line + outline"
+msgstr "Dicke Linie + Outline"
+
+msgid "small line + big line + dot"
+msgstr "D�nne Linie + Dicke Linie + Punkt"
+
+msgid "big line + dot"
+msgstr "Dicke Linie + Punkt"
+
+msgid "big line + outline + dot"
+msgstr "Dicke Linie + Outline + Punkt"
+
+msgid "small line + dot"
+msgstr "D�nne Linie + Punkt"
+
+msgid "outline + dot"
+msgstr "Outline + Punkt"
+
+msgid "small line + big line + alpha blend"
+msgstr "D�nne Linie + Dicke Linie + Transparenz"
+
+msgid "big line + alpha blend"
+msgstr "Dicke Linie + Transparenz"
+
+msgid "do not show"
+msgstr "nicht anzeigen"
+
+msgid "timer & recording menu"
+msgstr "Timer & Aufnahme Men�"
+
+msgid "always on the menu"
+msgstr "immer im Men�"
+
+msgid "always show"
+msgstr "immer anzeigen"
+
+msgid "VDR default"
+msgstr "VDR Standard"
+
+msgid "flatPlus long"
+msgstr "flatPlus Lang"
+
+msgid "flatPlus long + EPG"
+msgstr "flatPlus Lang + EPG"
+
+msgid "flatPlus short"
+msgstr "flatPlus Kurz"
+
+msgid "flatPlus short + EPG"
+msgstr "flatPlus Kurz + EPG"
+
+msgid "flatPlus short + Info"
+msgstr "flatPlus Kurz + Info"
+
+msgid "vertical"
+msgstr "vertikal"
+
+msgid "hoizontal"
+msgstr "horizontal"
+
+msgid "carriage return"
+msgstr "carriage return"
+
+msgid "left-right-left"
+msgstr "links-rechts-links"
+
+msgid "left line + rect bar"
+msgstr "Linie Links + Eckige Leiste"
+
+msgid "left line + round bar"
+msgstr "Linie Links + Runde Leiste"
+
+msgid "middle line + rect bar"
+msgstr "Mittellinie + Eckige Leiste"
+
+msgid "middle line + round bar"
+msgstr "Mittellinie + Runde Leiste"
+
+msgid "outline + rect bar"
+msgstr "Outline + Eckige Leiste"
+
+msgid "outline + round bar"
+msgstr "Outline + Runde Leiste"
+
+msgid "rect bar"
+msgstr "Eckige Leiste"
+
+msgid "round bar"
+msgstr "Runde Leiste"
+
+msgid "past / remaining"
+msgstr "vergangen / verbleibend"
+
+msgid "past"
+msgstr "vergangen"
+
+msgid "remaining"
+msgstr "verbleibend"
+
+msgid "short"
+msgstr "Kurz"
+
+msgid "long"
+msgstr "Lang"
+
+msgid "General settings"
+msgstr "Allgemeine Einstellungen"
+
+msgid "Channelinfo settings"
+msgstr "Kanalinfo Einstellungen"
+
+msgid "Menu settings"
+msgstr "Men� Einstellungen"
+
+msgid "Replay settings"
+msgstr "Wiedergabe Einstellungen"
+
+msgid "Volume settings"
+msgstr "Lautst�rke Einstellungen"
+
+msgid "Tracks settings"
+msgstr "Tonspur Einstellungen"
+
+msgid "TVScraper / scraper2vdr settings"
+msgstr "TVScraper / scraper2vdr Einstellungen"
+
+msgid "TVScraper / scraper2vdr not installed"
+msgstr "TVScraper / scraper2vdr nicht installiert"
+
+msgid "Main menu widgets settings"
+msgstr "Hauptmen�: Widget Einstellungen"
+
+msgid "configfile"
+msgstr "Konfigdatei"
+
+msgid "loaded"
+msgstr "geladen"
+
+msgid "saved settings in file:"
+msgstr "Einstellungen gespeichert in Datei:"
+
+msgid "no decorfiles found, check install"
+msgstr "keine Dekordateien gefunden, pr�fe Installation"
+
+msgid "Decorfile"
+msgstr "Dekordatei"
+
+msgid "no config-files found, check install"
+msgstr "keine Konfigdateien gefunden, pr�fe Installation"
+
+msgid "Press ok to load config file"
+msgstr "OK dr�cken um die Konfigdatei zu laden"
+
+msgid "Save current settings"
+msgstr "aktuelle Einstellungen abspeichern"
+
+msgid "press ok to save current settings"
+msgstr "OK dr�cken um die Einstellungen zu speichern"
+
+msgid "Show empty color-buttons"
+msgstr "Zeige leere Farbtasten"
+
+msgid "Show TopBar menu icons"
+msgstr "Zeige Men�symbole in Titelleiste"
+
+msgid "Diskusage show"
+msgstr "Plattenverbrauch anzeigen"
+
+msgid "Diskusage short display"
+msgstr "Plattenverbrauch: Kurze Anzeige"
+
+msgid "Diskusage free/occupied"
+msgstr "Plattenverbrauch: frei/belegt"
+
+msgid "OSD vertical margin"
+msgstr "OSD vertikaler Rand"
+
+msgid "OSD horizontal margin"
+msgstr "OSD horizontaler Rand"
+
+msgid "TopBar font size"
+msgstr "Titelleiste: Font Gr��e"
+
+msgid "TopBar show recording"
+msgstr "Titelleiste: Zeige Aufnahme"
+
+msgid "TopBar show conflicts"
+msgstr "Titelleiste: Zeige Konflikte"
+
+msgid "TopBar hide clock text"
+msgstr "Titelleiste: Verstecke Uhr Text"
+
+msgid "TopBar clock font scale"
+msgstr "Titelleiste: Uhr Skalierung"
+
+msgid "Conflicts min value for red"
+msgstr "Konflikte min. Wert f�r Rot"
+
+msgid "Message bottom offset"
+msgstr "Meldung unterer Abstand"
+
+msgid "Message color position"
+msgstr "Meldungsfarbe Position"
+
+msgid "Use Textscroller?"
+msgstr "Nutze Laufschrift?"
+
+msgid "Scroller step (in pixel)"
+msgstr "Laufschrift: Schrittweite (Pixel)"
+
+msgid "Scroller delay (in ms)"
+msgstr "Laufschrift: Verz�gerung (ms)"
+
+msgid "Scroller type"
+msgstr "Laufschrift: Typ"
+
+msgid "TopBar border by decor-file?"
+msgstr "Titelleiste: Rand aus Dekordatei?"
+
+msgid "TopBar border type"
+msgstr "Titelleiste: Rand Typ"
+
+msgid "TopBar border size"
+msgstr "Titelleiste: Rand Gr��e"
+
+msgid "Message border by decor-file?"
+msgstr "Meldung: Rand aus Dekordatei?"
+
+msgid "Message border type"
+msgstr "Meldung: Rand Typ"
+
+msgid "Message border size"
+msgstr "Meldung: Rand Gr��e"
+
+msgid "Button border by decor-file?"
+msgstr "Tasten: Rand aus Dekordatei?"
+
+msgid "Button border type"
+msgstr "Tasten: Rand Typ"
+
+msgid "Button border size"
+msgstr "Tasten: Rand Gr��e"
+
+msgid "Imagecache entries"
+msgstr "Bildercache Eintr�ge"
+
+msgid "Show Channelinfo icons"
+msgstr "Zeige Kanalinfo Logos"
+
+msgid "Show signal quality"
+msgstr "Zeige Signalqualit�t"
+
+msgid "Show weather widget"
+msgstr "Zeige Wetter Widget"
+
+msgid "Weather widget font size"
+msgstr "Wetter Widget Schriftgr��e"
+
+msgid "Colors for signal quality"
+msgstr "Farben f�r Signalqualit�t"
+
+msgid "Show resolution & aspect"
+msgstr "Zeige Aufl�sung & Bildformat"
+
+msgid "Show format (hd/sd)"
+msgstr "Zeige Format (HD/SD)"
+
+msgid "Show video/audio bitrate"
+msgstr "Zeige Video/Audio Bitrate"
+
+msgid "Simple aspect & format"
+msgstr "Aufl�sung & Bildformat Einfache Anzeige"
+
+msgid "program past/remaining time format"
+msgstr "Programm vergangen/verbleibend Format"
+
+msgid "Channelinfo border by decor-file?"
+msgstr "Kanalinfo: Rand aus Dekordatei?"
+
+msgid "Channelinfo border type"
+msgstr "Kanalinfo: Rand Typ"
+
+msgid "Channelinfo border size"
+msgstr "Kanalinfo: Rand Gr��e"
+
+msgid "Channelinfo EPG border by decor-file?"
+msgstr "Kanalinfo: EPG Rand aus Dekordatei?"
+
+msgid "Channelinfo EPG border type"
+msgstr "Kanalinfo: EPG Rand Typ"
+
+msgid "Channelinfo EPG border size"
+msgstr "Kanalinfo: EPG Rand Gr��e"
+
+msgid "Channelinfo progress by decor-file?"
+msgstr "Kanalinfo: Fortschritt aus Dekordatei?"
+
+msgid "Channelinfo progress type"
+msgstr "Kanalinfo: Fortschritt Typ"
+
+msgid "Channelinfo progress size"
+msgstr "Kanalinfo: Fortschritt Gr��e"
+
+msgid "Signalquality progress by decor-file?"
+msgstr "Signalpegelanzeige aus Dekordatei?"
+
+msgid "Signalquality progress type"
+msgstr "Signalpegelanzeige: Typ"
+
+msgid "Signalquality progress size"
+msgstr "Signalpegelanzeige: Gr��e"
+
+msgid "Menuitem padding"
+msgstr "Men�punkt Abstand"
+
+msgid "Show mainmenu item icons"
+msgstr "Zeige Symbole f�r Hauptmen�eintr�ge"
+
+msgid "Menu content fullsize background"
+msgstr "Men�: Inhalt voller Hintergrund"
+
+msgid "Show additional recording info"
+msgstr "Zeige Zusatzinfo bei Aufnahmen"
+
+msgid "Show additional EPG info"
+msgstr "Zeige Zusatzinfo bei EPG"
+
+msgid "Show reruns in EPG info"
+msgstr "Zeige Wiederholungen bei EPG"
+
+msgid "Menu draw background over the entire height"
+msgstr "Men�: Zeichne Hintergrund �ber gesamte H�he"
+
+msgid "Recording menu show recording count in title"
+msgstr "Aufnahmen: Anzahl der Aufnahmen in Titelleiste"
+
+msgid "Timer menu show timer count in title"
+msgstr "Timer: Anzahl der Timer in Titelleiste"
+
+msgid "Channel menu show channel count in title"
+msgstr "Kan�le: Anzahl der Kan�le in Titelleiste"
+
+msgid "Menu channel view"
+msgstr "Men�: Kanal Ansicht"
+
+msgid "Menu timer view"
+msgstr "Men�: Timer Ansicht"
+
+msgid "Menu event view"
+msgstr "Men�: Programm Ansicht"
+
+msgid "Menu recording view"
+msgstr "Men�: Aufzeichnungen Ansicht"
+
+msgid "Scrollbar by decor-file?"
+msgstr "Scrollbar aus Dekordatei?"
+
+msgid "Scrollbar type"
+msgstr "Scrollbar: Typ"
+
+msgid "Scrollbar size"
+msgstr "Scrollbar: Gr��e"
+
+msgid "Menuitem border by decor-file?"
+msgstr "Men�punkt: Rand aus Dekordatei?"
+
+msgid "Menuitem border type"
+msgstr "Men�punkt: Rand Typ"
+
+msgid "Menuitem border size"
+msgstr "Men�punkt: Rand Gr��e"
+
+msgid "Menucont. border by decor-file?"
+msgstr "Men�inhalt: Rand aus Dekordatei?"
+
+msgid "Menucont. border type"
+msgstr "Men�inhalt: Rand Typ"
+
+msgid "Menucont. border size"
+msgstr "Men�inhalt: Rand Gr��e"
+
+msgid "Menucont. head border by decor-file?"
+msgstr "Men�kopf: Rand aus Dekordatei?"
+
+msgid "Menucont. head border type"
+msgstr "Men�kopf: Rand Typ"
+
+msgid "Menucont. head border size"
+msgstr "Men�kopf: Rand Gr��e"
+
+msgid "Menuitem progress by decor-file?"
+msgstr "Men�punkt: Fortschritt aus Dekordatei?"
+
+msgid "Menuitem progress type"
+msgstr "Men�punkt: Fortschritt Typ"
+
+msgid "Menuitem progress size"
+msgstr "Men�item: Fortschritt Gr��e"
+
+msgid "Time seconds font scale"
+msgstr "Uhrzeit: Sekunden Skalierung"
+
+msgid "Dimm on pause?"
+msgstr "Dimmen bei Pause?"
+
+msgid "Dimm on pause delay"
+msgstr "Dimmen bei Pause Verz�gerung"
+
+msgid "Dimm on pause opaque"
+msgstr "Dimmen bei Pause Undurchsichtigkeit"
+
+msgid "Replay border by decor-file?"
+msgstr "Wiedergabe: Rand aus Dekordatei?"
+
+msgid "Replay border type"
+msgstr "Wiedergabe: Rand Typ"
+
+msgid "Replay border size"
+msgstr "Wiedergabe: Rand Gr��e"
+
+msgid "Replay progress by decor-file?"
+msgstr "Wiedergabe: Fortschritt aus Dekordatei?"
+
+msgid "Replay progress size"
+msgstr "Wiedergabe: Fortschritt Gr��e"
+
+msgid "Volume border by decor-file?"
+msgstr "Lautst�rke: Rand aus Dekordatei?"
+
+msgid "Volume border type"
+msgstr "Lautst�rke: Rand Typ"
+
+msgid "Volume border size"
+msgstr "Lautst�rke: Rand Gr��e"
+
+msgid "Volume progress by decor-file?"
+msgstr "Lautst�rke: Fortschritt aus Dekordatei?"
+
+msgid "Volume progress type"
+msgstr "Lautst�rke: Fortschritt Typ"
+
+msgid "Volume progress size"
+msgstr "Lautst�rke: Fortschritt Gr��e"
+
+msgid "Tracks border by decor-file?"
+msgstr "Tonspur: Rand aus Dekordatei?"
+
+msgid "Tracks border type"
+msgstr "Tonspur: Rand Typ"
+
+msgid "Tracks border size"
+msgstr "Tonspur: Rand Gr��e"
+
+msgid "TVScraper settings"
+msgstr "TVScraper: Einstellungen"
+
+msgid "Channelinfo show poster?"
+msgstr "Kanalinfo zeige Poster?"
+
+msgid "Channelinfo poster size"
+msgstr "Kanalinfo Poster Gr��e"
+
+msgid "Replayinfo show poster?"
+msgstr "Wiedergabeinfo: zeige Poster?"
+
+msgid "Replayinfo poster size"
+msgstr "Wiedergabeinfo: Poster Gr��e"
+
+msgid "EPG info show poster?"
+msgstr "EPG-Info: zeige Poster?"
+
+msgid "recording info show poster?"
+msgstr "Aufnahmeinfo: zeige Poster?"
+
+msgid "EPG info show actors?"
+msgstr "EPG-Info: Zeige Schauspieler?"
+
+msgid "recording info show actors?"
+msgstr "Aufnahmeinfo: Zeige Schauspieler?"
+
+msgid "Enable main menu widgets"
+msgstr "Hauptmen�-Widgets anzeigen"
+
+msgid "Main menu item scale"
+msgstr "Hauptmen� Widgets: Breite (%)"
+
+msgid "Widget weather"
+msgstr "Wetter-Widget"
+
+msgid "Widget weather: enable"
+msgstr "Wetter-Widget anzeigen"
+
+msgid "Widget weather: position"
+msgstr "Wetter-Widget: Position"
+
+msgid "Widget weather: show days"
+msgstr "Wetter-Widget: Zeige Tage"
+
+msgid "Widget weather: type"
+msgstr "Wetter-Widget: Typ"
+
+msgid "Widget DVB devices"
+msgstr "DVB Ger�te-Widget"
+
+msgid "Widget DVB devices: enable"
+msgstr "DVB Ger�te-Widget: Anzeigen"
+
+msgid "Widget DVB devices: position"
+msgstr "DVB Ger�te-Widget: Position"
+
+msgid "Widget DVB devices: don't show unknown"
+msgstr "DVB Ger�te-Widget: Unbekannt ausblenden"
+
+msgid "Widget DVB devices: don't show not used"
+msgstr "DVB Ger�te-Widget: Nicht verw. ausblenden"
+
+msgid "Widget active timer"
+msgstr "Aktive Timer-Widget"
+
+msgid "Widget active timer: enable"
+msgstr "Aktive Timer-Widget: Anzeigen"
+
+msgid "Widget active timer: position"
+msgstr "Aktive Timer-Widget: Position"
+
+msgid "Widget active timer: max show"
+msgstr "Aktive Timer-Widget: Zeige max."
+
+msgid "Widget active timer: hide if empty"
+msgstr "Aktive Timer-Widget: Verstecken wenn Leer"
+
+msgid "Widget last recordings"
+msgstr "Letzte Aufnahmen-Widget"
+
+msgid "Widget last recordings: enable"
+msgstr "Letzte Aufnahmen-Widget: Anzeigen"
+
+msgid "Widget last recordings: position"
+msgstr "Letzte Aufnahmen-Widget: Position"
+
+msgid "Widget last recordings: max show"
+msgstr "Letzte Aufnahmen-Widget: Zeige max."
+
+msgid "Widget timer conflicts"
+msgstr "Timerkonflikte-Widget"
+
+msgid "Widget timer conflicts: enable"
+msgstr "Timerkonflikte-Widget: Anzeigen"
+
+msgid "Widget timer conflicts: position"
+msgstr "Timerkonflikte-Widget: Position"
+
+msgid "Widget timer conflicts: hide if empty"
+msgstr "Timerkonflikte-Widget: Verstecken wenn Leer"
+
+msgid "Widget system information"
+msgstr "Systeminformation-Widget"
+
+msgid "Widget system information: enable"
+msgstr "Systeminformation-Widget: Anzeigen"
+
+msgid "Widget system information: position"
+msgstr "Systeminformation-Widget: Position"
+
+msgid "Widget system updates"
+msgstr "Systemupdates-Widget"
+
+msgid "Widget system updates: enable"
+msgstr "Systemupdates-Widget: Anzeigen"
+
+msgid "Widget system updates: position"
+msgstr "Systemupdates-Widget: Position"
+
+msgid "Widget system updates: hide if empty"
+msgstr "Systemupdates-Widget: Verstecken wenn Leer"
+
+msgid "Widget temperatures"
+msgstr "Temperaturen-Widget"
+
+msgid "Widget temperatures: enable"
+msgstr "Temperaturen-Widget: Anzeigen"
+
+msgid "Widget temperatures: position"
+msgstr "Temperaturen-Widget: Position"
+
+msgid "Widget custom commands"
+msgstr "Eigene Befehle-Widget"
+
+msgid "Widget custom commands: enable"
+msgstr "Eigene Befehle-Widget: Anzeigen"
+
+msgid "Widget custom commands: position"
+msgstr "Eigene Befehle-Widget: Position"
diff --git a/preview/Beige.png b/preview/Beige.png
new file mode 100644
index 0000000..bef0f65
Binary files /dev/null and b/preview/Beige.png differ
diff --git a/preview/Berry.png b/preview/Berry.png
new file mode 100644
index 0000000..55c2fc3
Binary files /dev/null and b/preview/Berry.png differ
diff --git a/preview/Blood.png b/preview/Blood.png
new file mode 100644
index 0000000..44b6018
Binary files /dev/null and b/preview/Blood.png differ
diff --git a/preview/Blue.png b/preview/Blue.png
new file mode 100644
index 0000000..bebac69
Binary files /dev/null and b/preview/Blue.png differ
diff --git a/preview/Cappuchino.png b/preview/Cappuchino.png
new file mode 100644
index 0000000..b043da9
Binary files /dev/null and b/preview/Cappuchino.png differ
diff --git a/preview/Chocolate.png b/preview/Chocolate.png
new file mode 100644
index 0000000..2adbbc3
Binary files /dev/null and b/preview/Chocolate.png differ
diff --git a/preview/Cyan.png b/preview/Cyan.png
new file mode 100644
index 0000000..010620d
Binary files /dev/null and b/preview/Cyan.png differ
diff --git a/preview/DeepBlue.png b/preview/DeepBlue.png
new file mode 100644
index 0000000..12b36c0
Binary files /dev/null and b/preview/DeepBlue.png differ
diff --git a/preview/Fog.png b/preview/Fog.png
new file mode 100644
index 0000000..b9c0b48
Binary files /dev/null and b/preview/Fog.png differ
diff --git a/preview/Grapefruit.png b/preview/Grapefruit.png
new file mode 100644
index 0000000..c2647b6
Binary files /dev/null and b/preview/Grapefruit.png differ
diff --git a/preview/Green.png b/preview/Green.png
new file mode 100644
index 0000000..ed3a2b8
Binary files /dev/null and b/preview/Green.png differ
diff --git a/preview/Green2.png b/preview/Green2.png
new file mode 100644
index 0000000..dd2e601
Binary files /dev/null and b/preview/Green2.png differ
diff --git a/preview/Grey.png b/preview/Grey.png
new file mode 100644
index 0000000..0841a90
Binary files /dev/null and b/preview/Grey.png differ
diff --git a/preview/HelloKitty.png b/preview/HelloKitty.png
new file mode 100644
index 0000000..5c54295
Binary files /dev/null and b/preview/HelloKitty.png differ
diff --git a/preview/HelloKitty2.png b/preview/HelloKitty2.png
new file mode 100644
index 0000000..547692b
Binary files /dev/null and b/preview/HelloKitty2.png differ
diff --git a/preview/Indigo.png b/preview/Indigo.png
new file mode 100644
index 0000000..3cc2df3
Binary files /dev/null and b/preview/Indigo.png differ
diff --git a/preview/LightBlue.png b/preview/LightBlue.png
new file mode 100644
index 0000000..07e8e60
Binary files /dev/null and b/preview/LightBlue.png differ
diff --git a/preview/LightGreen.png b/preview/LightGreen.png
new file mode 100644
index 0000000..661febb
Binary files /dev/null and b/preview/LightGreen.png differ
diff --git a/preview/Mint.png b/preview/Mint.png
new file mode 100644
index 0000000..f986135
Binary files /dev/null and b/preview/Mint.png differ
diff --git a/preview/Nuts.png b/preview/Nuts.png
new file mode 100644
index 0000000..20adbe7
Binary files /dev/null and b/preview/Nuts.png differ
diff --git a/preview/Olive.png b/preview/Olive.png
new file mode 100644
index 0000000..bdaedcf
Binary files /dev/null and b/preview/Olive.png differ
diff --git a/preview/Orange.png b/preview/Orange.png
new file mode 100644
index 0000000..3786a0c
Binary files /dev/null and b/preview/Orange.png differ
diff --git a/preview/Pflaume.png b/preview/Pflaume.png
new file mode 100644
index 0000000..c7febd5
Binary files /dev/null and b/preview/Pflaume.png differ
diff --git a/preview/Pumpkin.png b/preview/Pumpkin.png
new file mode 100644
index 0000000..016ee83
Binary files /dev/null and b/preview/Pumpkin.png differ
diff --git a/preview/Purple.png b/preview/Purple.png
new file mode 100644
index 0000000..21ff7d9
Binary files /dev/null and b/preview/Purple.png differ
diff --git a/preview/PurpleGrey.png b/preview/PurpleGrey.png
new file mode 100644
index 0000000..aed53ca
Binary files /dev/null and b/preview/PurpleGrey.png differ
diff --git a/preview/Rauchglas.png b/preview/Rauchglas.png
new file mode 100644
index 0000000..9b39cba
Binary files /dev/null and b/preview/Rauchglas.png differ
diff --git a/preview/Red.png b/preview/Red.png
new file mode 100644
index 0000000..1829c5c
Binary files /dev/null and b/preview/Red.png differ
diff --git a/preview/Terra.png b/preview/Terra.png
new file mode 100644
index 0000000..22c3168
Binary files /dev/null and b/preview/Terra.png differ
diff --git a/preview/White.png b/preview/White.png
new file mode 100644
index 0000000..d2bc1c2
Binary files /dev/null and b/preview/White.png differ
diff --git a/preview/XMAS.png b/preview/XMAS.png
new file mode 100644
index 0000000..3083f68
Binary files /dev/null and b/preview/XMAS.png differ
diff --git a/preview/Zitrone.png b/preview/Zitrone.png
new file mode 100644
index 0000000..5130336
Binary files /dev/null and b/preview/Zitrone.png differ
diff --git a/services/epgsearch.h b/services/epgsearch.h
new file mode 100644
index 0000000..de29299
--- /dev/null
+++ b/services/epgsearch.h
@@ -0,0 +1,167 @@
+/*
+Copyright (C) 2004-2007 Christian Wieninger
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Or, point your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+
+The author can be reached at cwieninger at gmx.de
+
+The project's page is at http://winni.vdr-developer.org/epgsearch
+*/
+
+#ifndef EPGSEARCHSERVICES_INC
+#define EPGSEARCHSERVICES_INC
+
+// Added by Andreas Mair (mail _AT_ andreas _DOT_ vdr-developer _DOT_ org)
+#define EPGSEARCH_SEARCHRESULTS_SERVICE_STRING_ID "Epgsearch-searchresults-v1.0"
+#define EPGSEARCH_LASTCONFLICTINFO_SERVICE_STRING_ID "Epgsearch-lastconflictinfo-v1.0"
+
+#include <string>
+#include <list>
+#include <memory>
+#include <set>
+#include <vdr/osdbase.h>
+
+// Data structure for service "Epgsearch-search-v1.0"
+struct Epgsearch_search_v1_0
+{
+// in
+      char* query;               // search term
+      int mode;                  // search mode (0=phrase, 1=and, 2=or, 3=regular expression)
+      int channelNr;             // channel number to search in (0=any)
+      bool useTitle;             // search in title
+      bool useSubTitle;          // search in subtitle
+      bool useDescription;       // search in description
+// out
+      cOsdMenu* pResultMenu;   // pointer to the menu of results
+};
+
+// Data structure for service "Epgsearch-exttimeredit-v1.0"
+struct Epgsearch_exttimeredit_v1_0
+{
+// in
+      cTimer* timer;             // pointer to the timer to edit
+      bool bNew;                 // flag that indicates, if this is a new timer or an existing one
+      const cEvent* event;             // pointer to the event corresponding to this timer (may be NULL)
+// out
+      cOsdMenu* pTimerMenu;   // pointer to the menu of results
+};
+
+// Data structure for service "Epgsearch-updatesearchtimers-v1.0"
+struct Epgsearch_updatesearchtimers_v1_0
+{
+// in
+      bool showMessage;           // inform via osd when finished?
+};
+
+// Data structure for service "Epgsearch-osdmessage-v1.0"
+struct Epgsearch_osdmessage_v1_0
+{
+// in
+      char* message;             // the message to display
+      eMessageType type;
+};
+
+// Data structure for service "EpgsearchMenu-v1.0"
+struct EpgSearchMenu_v1_0
+{
+// in
+// out
+      cOsdMenu* Menu;   // pointer to the menu
+};
+
+// Data structure for service "Epgsearch-lastconflictinfo-v1.0"
+struct Epgsearch_lastconflictinfo_v1_0
+{
+// in
+// out
+      time_t nextConflict;       // next conflict date, 0 if none
+      int relevantConflicts;     // number of relevant conflicts
+      int totalConflicts;        // total number of conflicts
+};
+
+// Data structure for service "Epgsearch-searchresults-v1.0"
+struct Epgsearch_searchresults_v1_0
+{
+// in
+      char* query;               // search term
+      int mode;                  // search mode (0=phrase, 1=and, 2=or, 3=regular expression)
+      int channelNr;             // channel number to search in (0=any)
+      bool useTitle;             // search in title
+      bool useSubTitle;          // search in subtitle
+      bool useDescription;       // search in description
+// out
+
+      class cServiceSearchResult : public cListObject 
+      {
+        public:
+         const cEvent* event;
+         cServiceSearchResult(const cEvent* Event) : event(Event) {}
+      };
+
+      cList<cServiceSearchResult>* pResultList;   // pointer to the results
+};
+
+// Data structure for service "Epgsearch-switchtimer-v1.0"
+struct Epgsearch_switchtimer_v1_0
+{
+// in
+      const cEvent* event;
+      int mode;                  // mode (0=query existance, 1=add/modify, 2=delete)
+// in/out
+      int switchMinsBefore;
+      int announceOnly;
+// out   		
+      bool success;              // result
+};
+
+// Data structures for service "Epgsearch-services-v1.0"
+class cServiceHandler
+{
+  public:
+   virtual std::list<std::string> SearchTimerList() = 0;
+   // returns a list of search timer entries in the same format as used in epgsearch.conf 
+   virtual int AddSearchTimer(const std::string&) = 0;
+   // adds a new search timer and returns its ID (-1 on error)
+   virtual bool ModSearchTimer(const std::string&) = 0;
+   // edits an existing search timer and returns success
+   virtual bool DelSearchTimer(int) = 0;
+   // deletes search timer with given ID and returns success
+   virtual std::list<std::string> QuerySearchTimer(int) = 0;
+   // returns the search result of the searchtimer with given ID in the same format as used in SVDRP command 'QRYS' (->MANUAL)        
+   virtual std::list<std::string> QuerySearch(std::string) = 0;
+   // returns the search result of the searchtimer with given settings in the same format as used in SVDRP command 'QRYS' (->MANUAL)        
+   virtual std::list<std::string> ExtEPGInfoList() = 0;
+   // returns a list of extended EPG categories in the same format as used in epgsearchcats.conf 
+   virtual std::list<std::string> ChanGrpList() = 0;
+   // returns a list of channel groups maintained by epgsearch
+   virtual std::list<std::string> BlackList() = 0;
+   // returns a list of blacklists in the same format as used in epgsearchblacklists.conf
+   virtual std::set<std::string> DirectoryList() = 0;
+   // List of all recording directories used in recordings, timers, search timers or in epgsearchdirs.conf
+   virtual ~cServiceHandler() {}
+   // Read a setup value
+   virtual std::string ReadSetupValue(const std::string& entry) = 0;
+   // Write a setup value
+   virtual bool WriteSetupValue(const std::string& entry, const std::string& value) = 0;
+};
+
+struct Epgsearch_services_v1_0
+{
+// in/out
+      std::auto_ptr<cServiceHandler> handler;
+};
+
+#endif
diff --git a/services/scraper2vdr.h b/services/scraper2vdr.h
new file mode 100644
index 0000000..703d077
--- /dev/null
+++ b/services/scraper2vdr.h
@@ -0,0 +1,194 @@
+#ifndef __SCRAPER2VDRSERVICES_H
+#define __SCRAPER2VDRSERVICES_H
+
+#include <vdr/epg.h>
+#include <vdr/recording.h>
+
+enum tvType {
+    tSeries,
+    tMovie,
+    tNone,
+};
+
+/*********************************************************************
+* Helper Structures
+*********************************************************************/
+class cTvMedia {
+public:
+	cTvMedia(void) {
+		path = "";
+		width = height = 0;
+	};
+    std::string path;
+    int width;
+    int height;
+};
+
+class cEpisode {
+public:
+    cEpisode(void) {
+        number = 0;
+        season = 0;
+        name = "";
+        firstAired = "";
+        guestStars = "";
+        overview = "";
+        rating = 0.0;
+    };
+    int number;
+    int season;
+    std::string name;
+    std::string firstAired;
+    std::string guestStars;
+    std::string overview;
+    float rating;
+    cTvMedia episodeImage;
+};
+
+class cActor {
+public:
+    cActor(void) {
+        name = "";
+        role = "";
+    };
+    std::string name;
+    std::string role;
+    cTvMedia actorThumb;
+};
+
+/*********************************************************************
+* Data Structures for Service Calls
+*********************************************************************/
+
+// Data structure for service "GetEventType"
+class ScraperGetEventType {
+public:
+	ScraperGetEventType(void) {
+		event = NULL;
+        recording = NULL;
+		type = tNone;
+		movieId = 0;
+		seriesId = 0;
+		episodeId = 0;
+	};
+// in
+    const cEvent *event;             // check type for this event 
+    const cRecording *recording;     // or for this recording
+//out
+    tvType type;                	 //typeSeries or typeMovie
+    int movieId;
+    int seriesId;
+    int episodeId;
+};
+
+//Data structure for full series and episode information
+class cMovie {
+public:
+    cMovie(void) {
+        title = "";
+        originalTitle = "";
+        tagline = "";    
+        overview = "";
+        adult = false;
+        collectionName = "";
+        budget = 0;
+        revenue = 0;
+        genres = "";
+        homepage = "";
+        releaseDate = "";
+        runtime = 0;
+        popularity = 0.0;
+        voteAverage = 0.0;
+    };
+//IN
+    int movieId;                    // movieId fetched from ScraperGetEventType
+//OUT    
+    std::string title;
+    std::string originalTitle;
+    std::string tagline;    
+    std::string overview;
+    bool adult;
+    std::string collectionName;
+    int budget;
+    int revenue;
+    std::string genres;
+    std::string homepage;
+    std::string releaseDate;
+    int runtime;
+    float popularity;
+    float voteAverage;
+    cTvMedia poster;
+    cTvMedia fanart;
+    cTvMedia collectionPoster;
+    cTvMedia collectionFanart;
+    std::vector<cActor> actors;
+};
+
+//Data structure for full series and episode information
+class cSeries {
+public:
+    cSeries(void) {
+        seriesId = 0;
+        episodeId = 0;
+        name = "";
+        overview = "";
+        firstAired = "";
+        network = "";
+        genre = "";
+        rating = 0.0;
+        status = "";
+    };
+//IN
+    int seriesId;                   // seriesId fetched from ScraperGetEventType
+    int episodeId;                  // episodeId fetched from ScraperGetEventType
+//OUT
+    std::string name;
+    std::string overview;
+    std::string firstAired;
+    std::string network;
+    std::string genre;
+    float rating;
+    std::string status;
+    cEpisode episode;
+    std::vector<cActor> actors;
+    std::vector<cTvMedia> posters;
+    std::vector<cTvMedia> banners;
+    std::vector<cTvMedia> fanarts;
+    cTvMedia seasonPoster;
+};
+
+// Data structure for service "GetPosterBanner"
+class ScraperGetPosterBanner {
+public:
+	ScraperGetPosterBanner(void) {
+		type = tNone;
+	};
+// in
+    const cEvent *event;             // check type for this event 
+//out
+    tvType type;                	 //typeSeries or typeMovie
+    cTvMedia poster;
+    cTvMedia banner;
+};
+
+// Data structure for service "GetPoster"
+class ScraperGetPoster {
+public:
+// in
+    const cEvent *event;             // check type for this event
+    const cRecording *recording;     // or for this recording
+//out
+    cTvMedia poster;
+};
+
+// Data structure for service "GetPosterThumb"
+class ScraperGetPosterThumb {
+public:
+// in
+    const cEvent *event;             // check type for this event
+    const cRecording *recording;     // or for this recording
+//out
+    cTvMedia poster;
+};
+
+#endif //__SCRAPER2VDRSERVICES_H
\ No newline at end of file
diff --git a/setup.c b/setup.c
new file mode 100644
index 0000000..b9f8f58
--- /dev/null
+++ b/setup.c
@@ -0,0 +1,1370 @@
+#include "setup.h"
+
+cStringList Bordertypes;
+cStringList DiskUsages;
+cStringList Progresstypes;
+cStringList MenuChannelViews;
+cStringList MenuTimerViews;
+cStringList MenuEventViews;
+cStringList MenuRecordingViews;
+cStringList DecorDescriptions;
+cStringList ConfigFiles;
+cStringList MessageColorPositions;
+cStringList ScrollerTypes;
+cStringList ScrollBarTypes;
+cStringList DiskUsageFree;
+cStringList ChannelTimeLefts;
+cStringList WeatherTypes;
+
+int ConfigFileSelection;
+
+cFlatSetup::cFlatSetup(void) {
+    SetupConfig = Config;
+    ItemLastSel = -1;
+    Setup();
+}
+
+cFlatSetup::~cFlatSetup() {
+
+}
+
+void cFlatSetup::Setup(void) {
+    Clear();
+    Bordertypes.Clear();
+    Progresstypes.Clear();
+
+    Bordertypes.Clear();
+    Bordertypes.Append( strdup(tr("none")) );
+    Bordertypes.Append( strdup(tr("rect")) );
+    Bordertypes.Append( strdup(tr("round")) );
+    Bordertypes.Append( strdup(tr("invert round")) );
+    Bordertypes.Append( strdup(tr("rect + alpha blend")) );
+    Bordertypes.Append( strdup(tr("round + alpha blend")) );
+    Bordertypes.Append( strdup(tr("invert round + alpha blend")) );
+
+    Progresstypes.Clear();
+    Progresstypes.Append( strdup(tr("small line + big line")) );
+    Progresstypes.Append( strdup(tr("big line")) );
+    Progresstypes.Append( strdup(tr("big line + outline")) );
+    Progresstypes.Append( strdup(tr("small line + big line + dot")) );
+    Progresstypes.Append( strdup(tr("big line + dot")) );
+    Progresstypes.Append( strdup(tr("big line + outline + dot")) );
+    Progresstypes.Append( strdup(tr("small line + dot")) );
+    Progresstypes.Append( strdup(tr("outline + dot")) );
+    Progresstypes.Append( strdup(tr("small line + big line + alpha blend")) );
+    Progresstypes.Append( strdup(tr("big line + alpha blend")) );
+
+    DiskUsages.Clear();
+    DiskUsages.Append( strdup(tr("do not show")) );
+    DiskUsages.Append( strdup(tr("timer & recording menu")) );
+    DiskUsages.Append( strdup(tr("always on the menu")) );
+    DiskUsages.Append( strdup(tr("always show")) );
+
+    DiskUsageFree.Clear();
+    DiskUsageFree.Append( strdup(tr("occupied")) );
+    DiskUsageFree.Append( strdup(tr("free")) );
+
+    MenuChannelViews.Clear();
+    MenuChannelViews.Append( strdup(tr("VDR default")) );
+    MenuChannelViews.Append( strdup(tr("flatPlus long")) );
+    MenuChannelViews.Append( strdup(tr("flatPlus long + EPG")) );
+    MenuChannelViews.Append( strdup(tr("flatPlus short")) );
+    MenuChannelViews.Append( strdup(tr("flatPlus short + EPG")) );
+
+    MenuTimerViews.Clear();
+    MenuTimerViews.Append( strdup(tr("VDR default")) );
+    MenuTimerViews.Append( strdup(tr("flatPlus long")) );
+    MenuTimerViews.Append( strdup(tr("flatPlus short")) );
+    MenuTimerViews.Append( strdup(tr("flatPlus short + EPG")) );
+
+    MenuEventViews.Clear();
+    MenuEventViews.Append( strdup(tr("VDR default")) );
+    MenuEventViews.Append( strdup(tr("flatPlus long")) );
+    MenuEventViews.Append( strdup(tr("flatPlus short")) );
+    MenuEventViews.Append( strdup(tr("flatPlus short + EPG")) );
+
+    MenuRecordingViews.Clear();
+    MenuRecordingViews.Append( strdup(tr("VDR default")) );
+    MenuRecordingViews.Append( strdup(tr("flatPlus long")) );
+    MenuRecordingViews.Append( strdup(tr("flatPlus short")) );
+    MenuRecordingViews.Append( strdup(tr("flatPlus short + Info")) );
+
+    MessageColorPositions.Clear();
+    MessageColorPositions.Append( strdup(tr("vertical")) );
+    MessageColorPositions.Append( strdup(tr("hoizontal")) );
+
+    ScrollerTypes.Clear();
+    ScrollerTypes.Append( strdup( tr("carriage return")) );
+    ScrollerTypes.Append( strdup( tr("left-right-left")) );
+
+    ScrollBarTypes.Clear();
+    ScrollBarTypes.Append( strdup( tr("left line + rect bar")) );
+    ScrollBarTypes.Append( strdup( tr("left line + round bar")) );
+    ScrollBarTypes.Append( strdup( tr("middle line + rect bar")) );
+    ScrollBarTypes.Append( strdup( tr("middle line + round bar")) );
+    ScrollBarTypes.Append( strdup( tr("outline + rect bar")) );
+    ScrollBarTypes.Append( strdup( tr("outline + round bar")) );
+    ScrollBarTypes.Append( strdup( tr("rect bar")) );
+    ScrollBarTypes.Append( strdup( tr("round bar")) );
+
+    ChannelTimeLefts.Clear();
+    ChannelTimeLefts.Append( strdup( tr("past / remaining")) );
+    ChannelTimeLefts.Append( strdup( tr("past")) );
+    ChannelTimeLefts.Append( strdup( tr("remaining")) );
+
+    WeatherTypes.Clear();
+    WeatherTypes.Append( strdup( tr("short")) );
+    WeatherTypes.Append( strdup( tr("long")) );
+
+    Add(new cOsdItem(tr("General settings"), osUnknown, true));
+    Add(new cOsdItem(tr("Channelinfo settings"), osUnknown, true));
+    Add(new cOsdItem(tr("Menu settings"), osUnknown, true));
+    Add(new cOsdItem(tr("Replay settings"), osUnknown, true));
+    Add(new cOsdItem(tr("Volume settings"), osUnknown, true));
+    Add(new cOsdItem(tr("Tracks settings"), osUnknown, true));
+
+    // first try scraper2vdr
+    static cPlugin *pScraper = cPluginManager::GetPlugin("scraper2vdr");
+    if( !pScraper ) // if it doesn't exit, try tvscraper
+        pScraper = cPluginManager::GetPlugin("tvscraper");
+    if( pScraper )
+        Add(new cOsdItem(tr("TVScraper / scraper2vdr settings"), osUnknown, true));
+    else
+        Add(new cOsdItem(tr("TVScraper / scraper2vdr not installed"), osUnknown, false));
+
+    Add(new cOsdItem(tr("Main menu widgets settings"), osUnknown, true));
+
+    if( ItemLastSel >= 0 ) {
+        SetCurrent(Get(ItemLastSel));
+        ItemLastSel = -1;
+    }
+
+    Display();
+}
+
+eOSState cFlatSetup::ProcessKey(eKeys Key) {
+    bool hadSubMenu = HasSubMenu();
+    eOSState state = cMenuSetupPage::ProcessKey(Key);
+    if (hadSubMenu && Key == kOk)
+        Store();
+    if (!hadSubMenu && (state == osUnknown || Key == kOk)) {
+        if ((Key == kOk && !hadSubMenu)) {
+            const char* ItemText = Get(Current())->Text();
+            if (strcmp(ItemText, tr("General settings")) == 0)
+                state = AddSubMenu(new cFlatSetupGeneral(&SetupConfig));
+            if (strcmp(ItemText, tr("Channelinfo settings")) == 0)
+                state = AddSubMenu(new cFlatSetupChannelInfo(&SetupConfig));
+            if (strcmp(ItemText, tr("Menu settings")) == 0)
+                state = AddSubMenu(new cFlatSetupMenu(&SetupConfig));
+            if (strcmp(ItemText, tr("Replay settings")) == 0)
+                state = AddSubMenu(new cFlatSetupReplay(&SetupConfig));
+            if (strcmp(ItemText, tr("Volume settings")) == 0)
+                state = AddSubMenu(new cFlatSetupVolume(&SetupConfig));
+            if (strcmp(ItemText, tr("Tracks settings")) == 0)
+                state = AddSubMenu(new cFlatSetupTracks(&SetupConfig));
+            if (strcmp(ItemText, tr("TVScraper / scraper2vdr settings")) == 0)
+                state = AddSubMenu(new cFlatSetupTvsraper(&SetupConfig));
+            if (strcmp(ItemText, tr("Main menu widgets settings")) == 0)
+                state = AddSubMenu(new cFlatSetupMMWidget(&SetupConfig));
+        }
+    }
+    return state;
+}
+
+void cFlatSetup::Store(void) {
+    Config = SetupConfig;
+    SetupStore("decorBorderChannelByTheme", Config.decorBorderChannelByTheme);
+    SetupStore("decorBorderChannelTypeUser", Config.decorBorderChannelTypeUser);
+    SetupStore("decorBorderChannelSizeUser", Config.decorBorderChannelSizeUser);
+    SetupStore("decorBorderChannelEPGByTheme", Config.decorBorderChannelEPGByTheme);
+    SetupStore("decorBorderChannelEPGTypeUser", Config.decorBorderChannelEPGTypeUser);
+    SetupStore("decorBorderChannelEPGSizeUser", Config.decorBorderChannelEPGSizeUser);
+    SetupStore("decorBorderTopBarByTheme", Config.decorBorderTopBarByTheme);
+    SetupStore("decorBorderTopBarTypeUser", Config.decorBorderTopBarTypeUser);
+    SetupStore("decorBorderTopBarSizeUser", Config.decorBorderTopBarSizeUser);
+    SetupStore("decorBorderMessageByTheme", Config.decorBorderMessageByTheme);
+    SetupStore("decorBorderMessageTypeUser", Config.decorBorderMessageTypeUser);
+    SetupStore("decorBorderMessageSizeUser", Config.decorBorderMessageSizeUser);
+    SetupStore("decorBorderVolumeByTheme", Config.decorBorderVolumeByTheme);
+    SetupStore("decorBorderVolumeTypeUser", Config.decorBorderVolumeTypeUser);
+    SetupStore("decorBorderVolumeSizeUser", Config.decorBorderVolumeSizeUser);
+    SetupStore("decorBorderTrackByTheme", Config.decorBorderTrackByTheme);
+    SetupStore("decorBorderTrackTypeUser", Config.decorBorderTrackTypeUser);
+    SetupStore("decorBorderTrackSizeUser", Config.decorBorderTrackSizeUser);
+    SetupStore("decorBorderReplayByTheme", Config.decorBorderReplayByTheme);
+    SetupStore("decorBorderReplayTypeUser", Config.decorBorderReplayTypeUser);
+    SetupStore("decorBorderReplaySizeUser", Config.decorBorderReplaySizeUser);
+    SetupStore("decorBorderMenuItemByTheme", Config.decorBorderMenuItemByTheme);
+    SetupStore("decorBorderMenuItemTypeUser", Config.decorBorderMenuItemTypeUser);
+    SetupStore("decorBorderMenuItemSizeUser", Config.decorBorderMenuItemSizeUser);
+    SetupStore("decorBorderMenuContentHeadByTheme", Config.decorBorderMenuContentHeadByTheme);
+    SetupStore("decorBorderMenuContentHeadTypeUser", Config.decorBorderMenuContentHeadTypeUser);
+    SetupStore("decorBorderMenuContentHeadSizeUser", Config.decorBorderMenuContentHeadSizeUser);
+    SetupStore("decorBorderMenuContentByTheme", Config.decorBorderMenuContentByTheme);
+    SetupStore("decorBorderMenuContentTypeUser", Config.decorBorderMenuContentTypeUser);
+    SetupStore("decorBorderMenuContentSizeUser", Config.decorBorderMenuContentSizeUser);
+    SetupStore("decorBorderButtonByTheme", Config.decorBorderButtonByTheme);
+    SetupStore("decorBorderButtonTypeUser", Config.decorBorderButtonTypeUser);
+    SetupStore("decorBorderButtonSizeUser", Config.decorBorderButtonSizeUser);
+    SetupStore("decorProgressChannelByTheme", Config.decorProgressChannelByTheme);
+    SetupStore("decorProgressChannelTypeUser", Config.decorProgressChannelTypeUser);
+    SetupStore("decorProgressChannelSizeUser", Config.decorProgressChannelSizeUser);
+    SetupStore("decorProgressVolumeByTheme", Config.decorProgressVolumeByTheme);
+    SetupStore("decorProgressVolumeTypeUser", Config.decorProgressVolumeTypeUser);
+    SetupStore("decorProgressVolumeSizeUser", Config.decorProgressVolumeSizeUser);
+    SetupStore("decorProgressMenuItemByTheme", Config.decorProgressMenuItemByTheme);
+    SetupStore("decorProgressMenuItemTypeUser", Config.decorProgressMenuItemTypeUser);
+    SetupStore("decorProgressMenuItemSizeUser", Config.decorProgressMenuItemSizeUser);
+    SetupStore("decorProgressReplayByTheme", Config.decorProgressReplayByTheme);
+    SetupStore("decorProgressReplayTypeUser", Config.decorProgressReplayTypeUser);
+    SetupStore("decorProgressReplaySizeUser", Config.decorProgressReplaySizeUser);
+    SetupStore("decorProgressSignalByTheme", Config.decorProgressSignalByTheme);
+    SetupStore("decorProgressSignalTypeUser", Config.decorProgressSignalTypeUser);
+    SetupStore("decorProgressSignalSizeUser", Config.decorProgressSignalSizeUser);
+    SetupStore("decorScrollBarByTheme", Config.decorScrollBarByTheme);
+    SetupStore("decorScrollBarTypeUser", Config.decorScrollBarTypeUser);
+    SetupStore("decorScrollBarSizeUser", Config.decorScrollBarSizeUser);
+    SetupStore("ButtonsShowEmpty", Config.ButtonsShowEmpty);
+    SetupStore("ChannelIconsShow", Config.ChannelIconsShow);
+    SetupStore("SignalQualityShow", Config.SignalQualityShow);
+    SetupStore("DiskUsageShow", Config.DiskUsageShow);
+    SetupStore("MenuItemPadding", Config.MenuItemPadding);
+    SetupStore("marginOsdVer", Config.marginOsdVer);
+    SetupStore("marginOsdHor", Config.marginOsdHor);
+    SetupStore("TopBarFontSize", dtoa(Config.TopBarFontSize));
+    SetupStore("MessageOffset", Config.MessageOffset);
+    SetupStore("MenuContentFullSize", Config.MenuContentFullSize);
+    SetupStore("ChannelResolutionAspectShow", Config.ChannelResolutionAspectShow);
+    SetupStore("ChannelFormatShow", Config.ChannelFormatShow);
+    SetupStore("RecordingResolutionAspectShow", Config.RecordingResolutionAspectShow);
+    SetupStore("RecordingFormatShow", Config.RecordingFormatShow);
+    SetupStore("RecordingAdditionalInfoShow", Config.RecordingAdditionalInfoShow);
+    SetupStore("EpgAdditionalInfoShow", Config.EpgAdditionalInfoShow);
+    SetupStore("TopBarRecordingShow", Config.TopBarRecordingShow);
+    SetupStore("MenuItemIconsShow", Config.MenuItemIconsShow);
+    SetupStore("TopBarMenuIconShow", Config.TopBarMenuIconShow);
+    SetupStore("DecorIndex", Config.DecorIndex);
+    SetupStore("MainMenuItemScale", dtoa(Config.MainMenuItemScale));
+    SetupStore("MenuChannelView", Config.MenuChannelView);
+    SetupStore("MenuTimerView", Config.MenuTimerView);
+    SetupStore("MenuEventView", Config.MenuEventView);
+    SetupStore("MenuRecordingView", Config.MenuRecordingView);
+    SetupStore("ChannelSimpleAspectFormat", Config.ChannelSimpleAspectFormat);
+    SetupStore("RecordingSimpleAspectFormat", Config.RecordingSimpleAspectFormat);
+    SetupStore("MenuItemRecordingClearPercent", Config.MenuItemRecordingClearPercent);
+    SetupStore("MenuItemRecordingShowFolderDate", Config.MenuItemRecordingShowFolderDate);
+    SetupStore("MenuItemParseTilde", Config.MenuItemParseTilde);
+    SetupStore("TopBarRecConflictsShow", Config.TopBarRecConflictsShow);
+    SetupStore("TopBarRecConflictsHigh", Config.TopBarRecConflictsHigh);
+    SetupStore("SignalQualityUseColors", Config.SignalQualityUseColors);
+    SetupStore("TVScraperChanInfoShowPoster", Config.TVScraperChanInfoShowPoster);
+    SetupStore("TVScraperChanInfoPosterSize", dtoa(Config.TVScraperChanInfoPosterSize));
+    SetupStore("TVScraperEPGInfoShowPoster", Config.TVScraperEPGInfoShowPoster);
+    SetupStore("TVScraperRecInfoShowPoster", Config.TVScraperEPGInfoShowPoster);
+    SetupStore("EpgRerunsShow", Config.EpgRerunsShow);
+    SetupStore("TVScraperEPGInfoShowActors", Config.TVScraperEPGInfoShowActors);
+    SetupStore("TVScraperRecInfoShowActors", Config.TVScraperRecInfoShowActors);
+    SetupStore("MessageColorPosition", Config.MessageColorPosition);
+    SetupStore("ScrollerEnable", Config.ScrollerEnable);
+    SetupStore("ScrollerStep", Config.ScrollerStep);
+    SetupStore("ScrollerDelay", Config.ScrollerDelay);
+    SetupStore("ScrollerType", Config.ScrollerType);
+    SetupStore("DiskUsageShort", Config.DiskUsageShort);
+    SetupStore("DiskUsageFree", Config.DiskUsageFree);
+    SetupStore("TopBarFontClockScale", dtoa(Config.TopBarFontClockScale));
+    SetupStore("TimeSecsScale", dtoa(Config.TimeSecsScale));
+    SetupStore("ChannelBitrateShow", Config.ChannelBitrateShow);
+    SetupStore("ChannelBitrateShowCalcInterval", Config.ChannelBitrateShowCalcInterval);
+    SetupStore("TopBarHideClockText", Config.TopBarHideClockText);
+    SetupStore("ChannelTimeLeft", Config.ChannelTimeLeft);
+    SetupStore("MenuFullOsd", Config.MenuFullOsd);
+    SetupStore("MenuRecordingShowCount", Config.MenuRecordingShowCount);
+    SetupStore("MenuTimerShowCount", Config.MenuTimerShowCount);
+    SetupStore("MenuChannelShowCount", Config.MenuChannelShowCount);
+    SetupStore("ShortRecordingCount", Config.ShortRecordingCount);
+    SetupStore("MainMenuWidgetsEnable", Config.MainMenuWidgetsEnable);
+    SetupStore("MainMenuWidgetDVBDevicesShow", Config.MainMenuWidgetDVBDevicesShow);
+    SetupStore("MainMenuWidgetDVBDevicesPosition", Config.MainMenuWidgetDVBDevicesPosition);
+    SetupStore("MainMenuWidgetActiveTimerShow", Config.MainMenuWidgetActiveTimerShow);
+    SetupStore("MainMenuWidgetActiveTimerPosition", Config.MainMenuWidgetActiveTimerPosition);
+    SetupStore("MainMenuWidgetActiveTimerMaxCount", Config.MainMenuWidgetActiveTimerMaxCount);
+    SetupStore("MainMenuWidgetActiveTimerHideEmpty", Config.MainMenuWidgetActiveTimerHideEmpty);
+    SetupStore("MainMenuWidgetLastRecShow", Config.MainMenuWidgetLastRecShow);
+    SetupStore("MainMenuWidgetLastRecPosition", Config.MainMenuWidgetLastRecPosition);
+    SetupStore("MainMenuWidgetLastRecMaxCount", Config.MainMenuWidgetLastRecMaxCount);
+    SetupStore("MainMenuWidgetTimerConflictsShow", Config.MainMenuWidgetTimerConflictsShow);
+    SetupStore("MainMenuWidgetTimerConflictsPosition", Config.MainMenuWidgetTimerConflictsPosition);
+    SetupStore("MainMenuWidgetTimerConflictsHideEmpty", Config.MainMenuWidgetTimerConflictsHideEmpty);
+    SetupStore("MainMenuWidgetSystemInfoShow", Config.MainMenuWidgetSystemInfoShow);
+    SetupStore("MainMenuWidgetSystemInfoPosition", Config.MainMenuWidgetSystemInfoPosition);
+    SetupStore("MainMenuWidgetSystemUpdatesShow", Config.MainMenuWidgetSystemUpdatesShow);
+    SetupStore("MainMenuWidgetSystemUpdatesPosition", Config.MainMenuWidgetSystemUpdatesPosition);
+    SetupStore("MainMenuWidgetSystemUpdatesHideIfZero", Config.MainMenuWidgetSystemUpdatesHideIfZero);
+    SetupStore("MainMenuWidgetTemperaturesShow", Config.MainMenuWidgetTemperaturesShow);
+    SetupStore("MainMenuWidgetTemperaturesPosition", Config.MainMenuWidgetTemperaturesPosition);
+    SetupStore("MainMenuWidgetCommandShow", Config.MainMenuWidgetCommandShow);
+    SetupStore("MainMenuWidgetCommandPosition", Config.MainMenuWidgetCommandPosition);
+    SetupStore("MainMenuWidgetWeatherShow", Config.MainMenuWidgetWeatherShow);
+    SetupStore("MainMenuWidgetWeatherPosition", Config.MainMenuWidgetWeatherPosition);
+    SetupStore("MainMenuWidgetWeatherDays", Config.MainMenuWidgetWeatherDays);
+    SetupStore("MainMenuWidgetWeatherType", Config.MainMenuWidgetWeatherType);
+    SetupStore("ChannelWeatherShow", Config.ChannelWeatherShow);
+    SetupStore("PlaybackWeatherShow", Config.PlaybackWeatherShow);
+    SetupStore("WeatherFontSize", dtoa(Config.WeatherFontSize));
+    SetupStore("TVScraperReplayInfoShowPoster", Config.TVScraperReplayInfoShowPoster);
+    SetupStore("TVScraperReplayInfoPosterSize", dtoa(Config.TVScraperReplayInfoPosterSize));
+    SetupStore("MainMenuWidgetDVBDevicesDiscardUnknown", Config.MainMenuWidgetDVBDevicesDiscardUnknown);
+    SetupStore("MainMenuWidgetDVBDevicesDiscardNotUsed", Config.MainMenuWidgetDVBDevicesDiscardNotUsed);
+    SetupStore("RecordingDimmOnPause", Config.RecordingDimmOnPause);
+    SetupStore("RecordingDimmOnPauseDelay", Config.RecordingDimmOnPauseDelay);
+    SetupStore("RecordingDimmOnPauseOpaque", Config.RecordingDimmOnPauseOpaque);
+
+    Config.Init();
+}
+
+void cFlatSetupGeneral::LoadConfigFile(void) {
+    cString Filename = cString::sprintf("%s/configs/%s", cPlugin::ConfigDirectory(PLUGIN_NAME_I18N), ConfigFiles[ConfigFileSelection]);
+
+    FILE *f = fopen(Filename, "r");
+    if( f ) {
+        int line = 0;
+        char *s;
+        cReadLine ReadLine;
+        while( (s = ReadLine.Read(f)) != NULL ) {
+            line++;
+            char *p = strchr(s, '#');
+            if (p)
+                *p = 0;
+            s = stripspace(skipspace(s));
+            if (!isempty(s)) {
+                char *n = s;
+                char *v = strchr(s, '=');
+                if (v) {
+                    *v++ = 0;
+                    n = stripspace(skipspace(n));
+                    v = stripspace(skipspace(v));
+                    bool success = SetupParse(n, v);
+                    if( !success )
+                        dsyslog("flatplus: failed to load config: %s with value: %s", n, v);
+                }
+            }
+        }
+    } else
+        dsyslog("flatplus: failed to load config: file <%s> not found", *Filename);
+    cString msg = cString::sprintf("%s %s %s", tr("configfile"), ConfigFiles[ConfigFileSelection], tr("loaded"));
+    Skins.Message(mtInfo, msg);
+}
+
+bool cFlatSetupGeneral::SetupParse(const char *Name, const char *Value) {
+    if      (strcmp(Name, "decorBorderChannelByTheme") == 0)            SetupConfig->decorBorderChannelByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelTypeUser") == 0)           SetupConfig->decorBorderChannelTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelSizeUser") == 0)           SetupConfig->decorBorderChannelSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelEPGByTheme") == 0)         SetupConfig->decorBorderChannelEPGByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelEPGTypeUser") == 0)        SetupConfig->decorBorderChannelEPGTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderChannelEPGSizeUser") == 0)        SetupConfig->decorBorderChannelEPGSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderTopBarByTheme") == 0)             SetupConfig->decorBorderTopBarByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderTopBarTypeUser") == 0)            SetupConfig->decorBorderTopBarTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderTopBarSizeUser") == 0)            SetupConfig->decorBorderTopBarSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMessageByTheme") == 0)            SetupConfig->decorBorderMessageByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderMessageTypeUser") == 0)           SetupConfig->decorBorderMessageTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMessageSizeUser") == 0)           SetupConfig->decorBorderMessageSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderVolumeByTheme") == 0)             SetupConfig->decorBorderVolumeByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderVolumeTypeUser") == 0)            SetupConfig->decorBorderVolumeTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderVolumeSizeUser") == 0)            SetupConfig->decorBorderVolumeSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderTrackByTheme") == 0)              SetupConfig->decorBorderTrackByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderTrackTypeUser") == 0)             SetupConfig->decorBorderTrackTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderTrackSizeUser") == 0)             SetupConfig->decorBorderTrackSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderReplayByTheme") == 0)             SetupConfig->decorBorderReplayByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderReplayTypeUser") == 0)            SetupConfig->decorBorderReplayTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderReplaySizeUser") == 0)            SetupConfig->decorBorderReplaySizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuItemByTheme") == 0)           SetupConfig->decorBorderMenuItemByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuItemTypeUser") == 0)          SetupConfig->decorBorderMenuItemTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuItemSizeUser") == 0)          SetupConfig->decorBorderMenuItemSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentHeadByTheme") == 0)    SetupConfig->decorBorderMenuContentHeadByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentHeadTypeUser") == 0)   SetupConfig->decorBorderMenuContentHeadTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentHeadSizeUser") == 0)   SetupConfig->decorBorderMenuContentHeadSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentByTheme") == 0)        SetupConfig->decorBorderMenuContentByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentTypeUser") == 0)       SetupConfig->decorBorderMenuContentTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderMenuContentSizeUser") == 0)       SetupConfig->decorBorderMenuContentSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderButtonByTheme") == 0)             SetupConfig->decorBorderButtonByTheme = atoi(Value);
+    else if (strcmp(Name, "decorBorderButtonTypeUser") == 0)            SetupConfig->decorBorderButtonTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorBorderButtonSizeUser") == 0)            SetupConfig->decorBorderButtonSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressChannelByTheme") == 0)          SetupConfig->decorProgressChannelByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressChannelTypeUser") == 0)         SetupConfig->decorProgressChannelTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressChannelSizeUser") == 0)         SetupConfig->decorProgressChannelSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressVolumeByTheme") == 0)           SetupConfig->decorProgressVolumeByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressVolumeTypeUser") == 0)          SetupConfig->decorProgressVolumeTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressVolumeSizeUser") == 0)          SetupConfig->decorProgressVolumeSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressMenuItemByTheme") == 0)         SetupConfig->decorProgressMenuItemByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressMenuItemTypeUser") == 0)        SetupConfig->decorProgressMenuItemTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressMenuItemSizeUser") == 0)        SetupConfig->decorProgressMenuItemSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressReplayByTheme") == 0)           SetupConfig->decorProgressReplayByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressReplayTypeUser") == 0)          SetupConfig->decorProgressReplayTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressReplaySizeUser") == 0)          SetupConfig->decorProgressReplaySizeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressSignalByTheme") == 0)           SetupConfig->decorProgressSignalByTheme = atoi(Value);
+    else if (strcmp(Name, "decorProgressSignalTypeUser") == 0)          SetupConfig->decorProgressSignalTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorProgressSignalSizeUser") == 0)          SetupConfig->decorProgressSignalSizeUser = atoi(Value);
+    else if (strcmp(Name, "decorScrollBarByTheme") == 0)                SetupConfig->decorScrollBarByTheme = atoi(Value);
+    else if (strcmp(Name, "decorScrollBarTypeUser") == 0)               SetupConfig->decorScrollBarTypeUser = atoi(Value);
+    else if (strcmp(Name, "decorScrollBarSizeUser") == 0)               SetupConfig->decorScrollBarSizeUser = atoi(Value);
+    else if (strcmp(Name, "ButtonsShowEmpty") == 0)                     SetupConfig->ButtonsShowEmpty = atoi(Value);
+    else if (strcmp(Name, "ChannelIconsShow") == 0)                     SetupConfig->ChannelIconsShow = atoi(Value);
+    else if (strcmp(Name, "SignalQualityShow") == 0)                    SetupConfig->SignalQualityShow = atoi(Value);
+    else if (strcmp(Name, "DiskUsageShow") == 0)                        SetupConfig->DiskUsageShow = atoi(Value);
+    else if (strcmp(Name, "MenuItemPadding") == 0)                      SetupConfig->MenuItemPadding = atoi(Value);
+    else if (strcmp(Name, "marginOsdVer") == 0)                         SetupConfig->marginOsdVer = atoi(Value);
+    else if (strcmp(Name, "marginOsdHor") == 0)                         SetupConfig->marginOsdHor = atoi(Value);
+    else if (strcmp(Name, "MessageOffset") == 0)                        SetupConfig->MessageOffset = atoi(Value);
+    else if (strcmp(Name, "TopBarFontSize") == 0)                       SetupConfig->TopBarFontSize = atod(Value);
+    else if (strcmp(Name, "MenuContentFullSize") == 0)                  SetupConfig->MenuContentFullSize = atoi(Value);
+    else if (strcmp(Name, "ChannelResolutionAspectShow") == 0)          SetupConfig->ChannelResolutionAspectShow = atoi(Value);
+    else if (strcmp(Name, "ChannelFormatShow") == 0)                    SetupConfig->ChannelFormatShow = atoi(Value);
+    else if (strcmp(Name, "RecordingResolutionAspectShow") == 0)        SetupConfig->RecordingResolutionAspectShow = atoi(Value);
+    else if (strcmp(Name, "RecordingFormatShow") == 0)                  SetupConfig->RecordingFormatShow = atoi(Value);
+    else if (strcmp(Name, "RecordingAdditionalInfoShow") == 0)          SetupConfig->RecordingAdditionalInfoShow = atoi(Value);
+    else if (strcmp(Name, "EpgAdditionalInfoShow") == 0)                SetupConfig->EpgAdditionalInfoShow = atoi(Value);
+    else if (strcmp(Name, "TopBarRecordingShow") == 0)                  SetupConfig->TopBarRecordingShow = atoi(Value);
+    else if (strcmp(Name, "MenuItemIconsShow") == 0)                    SetupConfig->MenuItemIconsShow = atoi(Value);
+    else if (strcmp(Name, "TopBarMenuIconShow") == 0)                   SetupConfig->TopBarMenuIconShow = atoi(Value);
+    else if (strcmp(Name, "DecorIndex") == 0)                           SetupConfig->DecorIndex = atoi(Value);
+    else if (strcmp(Name, "MainMenuItemScale") == 0)                    SetupConfig->MainMenuItemScale = atod(Value);
+    else if (strcmp(Name, "MenuChannelView") == 0)                      SetupConfig->MenuChannelView = atoi(Value);
+    else if (strcmp(Name, "MenuTimerView") == 0)                        SetupConfig->MenuTimerView = atoi(Value);
+    else if (strcmp(Name, "MenuEventView") == 0)                        SetupConfig->MenuEventView = atoi(Value);
+    else if (strcmp(Name, "MenuRecordingView") == 0)                    SetupConfig->MenuRecordingView = atoi(Value);
+    else if (strcmp(Name, "ChannelSimpleAspectFormat") == 0)            SetupConfig->ChannelSimpleAspectFormat = atoi(Value);
+    else if (strcmp(Name, "RecordingSimpleAspectFormat") == 0)          SetupConfig->RecordingSimpleAspectFormat = atoi(Value);
+    else if (strcmp(Name, "MenuItemRecordingClearPercent") == 0)        SetupConfig->MenuItemRecordingClearPercent = atoi(Value);
+    else if (strcmp(Name, "MenuItemRecordingShowFolderDate") == 0)      SetupConfig->MenuItemRecordingShowFolderDate = atoi(Value);
+    else if (strcmp(Name, "MenuItemParseTilde") == 0)                   SetupConfig->MenuItemParseTilde = atoi(Value);
+    else if (strcmp(Name, "TopBarRecConflictsShow") == 0)               SetupConfig->TopBarRecConflictsShow = atoi(Value);
+    else if (strcmp(Name, "TopBarRecConflictsHigh") == 0)               SetupConfig->TopBarRecConflictsHigh = atoi(Value);
+    else if (strcmp(Name, "SignalQualityUseColors") == 0)               SetupConfig->SignalQualityUseColors = atoi(Value);
+    else if (strcmp(Name, "TVScraperChanInfoShowPoster") == 0)          SetupConfig->TVScraperChanInfoShowPoster = atoi(Value);
+    else if (strcmp(Name, "TVScraperChanInfoPosterSize") == 0)          SetupConfig->TVScraperChanInfoPosterSize = atod(Value);
+    else if (strcmp(Name, "TVScraperEPGInfoShowPoster") == 0)           SetupConfig->TVScraperEPGInfoShowPoster = atoi(Value);
+    else if (strcmp(Name, "TVScraperRecInfoShowPoster") == 0)           SetupConfig->TVScraperRecInfoShowPoster = atoi(Value);
+    else if (strcmp(Name, "EpgRerunsShow") == 0)                        SetupConfig->EpgRerunsShow = atoi(Value);
+    else if (strcmp(Name, "TVScraperEPGInfoShowActors") == 0)           SetupConfig->TVScraperEPGInfoShowActors = atoi(Value);
+    else if (strcmp(Name, "TVScraperRecInfoShowActors") == 0)           SetupConfig->TVScraperRecInfoShowActors = atoi(Value);
+    else if (strcmp(Name, "MessageColorPosition") == 0)                 SetupConfig->MessageColorPosition = atoi(Value);
+    else if (strcmp(Name, "ScrollerEnable") == 0)                       SetupConfig->ScrollerEnable = atoi(Value);
+    else if (strcmp(Name, "ScrollerStep") == 0)                         SetupConfig->ScrollerStep = atoi(Value);
+    else if (strcmp(Name, "ScrollerDelay") == 0)                        SetupConfig->ScrollerDelay = atoi(Value);
+    else if (strcmp(Name, "ScrollerType") == 0)                         SetupConfig->ScrollerType = atoi(Value);
+    else if (strcmp(Name, "DiskUsageShort") == 0)                       SetupConfig->DiskUsageShort = atoi(Value);
+    else if (strcmp(Name, "DiskUsageFree") == 0)                        SetupConfig->DiskUsageFree = atoi(Value);
+    else if (strcmp(Name, "ChannelBitrateShow") == 0)                   SetupConfig->ChannelBitrateShow = atoi(Value);
+    else if (strcmp(Name, "TopBarFontClockScale") == 0)                 SetupConfig->TopBarFontClockScale = atod(Value);
+    else if (strcmp(Name, "TimeSecsScale") == 0)                        SetupConfig->TimeSecsScale = atod(Value);
+    else if (strcmp(Name, "ChannelBitrateShowCalcInterval") == 0)       SetupConfig->ChannelBitrateShowCalcInterval = atoi(Value);
+    else if (strcmp(Name, "TopBarHideClockText") == 0)                  SetupConfig->TopBarHideClockText = atoi(Value);
+    else if (strcmp(Name, "ChannelTimeLeft") == 0)                      SetupConfig->ChannelTimeLeft = atoi(Value);
+    else if (strcmp(Name, "MenuFullOsd") == 0)                          SetupConfig->MenuFullOsd = atoi(Value);
+    else if (strcmp(Name, "MenuRecordingShowCount") == 0)               SetupConfig->MenuRecordingShowCount = atoi(Value);
+    else if (strcmp(Name, "MenuTimerShowCount") == 0)                   SetupConfig->MenuTimerShowCount = atoi(Value);
+    else if (strcmp(Name, "MenuChannelShowCount") == 0)                 SetupConfig->MenuChannelShowCount = atoi(Value);
+    else if (strcmp(Name, "ShortRecordingCount") == 0)                  SetupConfig->ShortRecordingCount = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetsEnable") == 0)                SetupConfig->MainMenuWidgetsEnable = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetDVBDevicesShow") == 0)         SetupConfig->MainMenuWidgetDVBDevicesShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetDVBDevicesPosition") == 0)     SetupConfig->MainMenuWidgetDVBDevicesPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetActiveTimerShow") == 0)        SetupConfig->MainMenuWidgetActiveTimerShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetActiveTimerPosition") == 0)    SetupConfig->MainMenuWidgetActiveTimerPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetActiveTimerMaxCount") == 0)    SetupConfig->MainMenuWidgetActiveTimerMaxCount = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetActiveTimerHideEmpty") == 0)   SetupConfig->MainMenuWidgetActiveTimerHideEmpty = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetLastRecShow") == 0)            SetupConfig->MainMenuWidgetLastRecShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetLastRecPosition") == 0)        SetupConfig->MainMenuWidgetLastRecPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetLastRecMaxCount") == 0)        SetupConfig->MainMenuWidgetLastRecMaxCount = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTimerConflictsShow") == 0)     SetupConfig->MainMenuWidgetTimerConflictsShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTimerConflictsPosition") == 0) SetupConfig->MainMenuWidgetTimerConflictsPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTimerConflictsHideEmpty") == 0)SetupConfig->MainMenuWidgetTimerConflictsHideEmpty = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemInfoShow") == 0)         SetupConfig->MainMenuWidgetSystemInfoShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemInfoPosition") == 0)     SetupConfig->MainMenuWidgetSystemInfoPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemUpdatesShow") == 0)      SetupConfig->MainMenuWidgetSystemUpdatesShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemUpdatesPosition") == 0)  SetupConfig->MainMenuWidgetSystemUpdatesPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetSystemUpdatesHideIfZero") == 0)SetupConfig->MainMenuWidgetSystemUpdatesHideIfZero = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTemperaturesShow") == 0)       SetupConfig->MainMenuWidgetTemperaturesShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetTemperaturesPosition") == 0)   SetupConfig->MainMenuWidgetTemperaturesPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetCommandShow") == 0)            SetupConfig->MainMenuWidgetCommandShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetCommandPosition") == 0)        SetupConfig->MainMenuWidgetCommandPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetWeatherShow") == 0)            SetupConfig->MainMenuWidgetWeatherShow = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetWeatherPosition") == 0)        SetupConfig->MainMenuWidgetWeatherPosition = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetWeatherDays") == 0)            SetupConfig->MainMenuWidgetWeatherDays = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetWeatherType") == 0)            SetupConfig->MainMenuWidgetWeatherType = atoi(Value);
+    else if (strcmp(Name, "ChannelWeatherShow") == 0)                   SetupConfig->ChannelWeatherShow = atoi(Value);
+    else if (strcmp(Name, "PlaybackWeatherShow") == 0)                  SetupConfig->PlaybackWeatherShow = atoi(Value);
+    else if (strcmp(Name, "WeatherFontSize") == 0)                      SetupConfig->WeatherFontSize = atod(Value);
+    else if (strcmp(Name, "TVScraperReplayInfoShowPoster") == 0)        SetupConfig->TVScraperReplayInfoShowPoster = atoi(Value);
+    else if (strcmp(Name, "TVScraperReplayInfoPosterSize") == 0)        SetupConfig->TVScraperReplayInfoPosterSize = atod(Value);
+    else if (strcmp(Name, "MainMenuWidgetDVBDevicesDiscardUnknown") == 0) SetupConfig->MainMenuWidgetDVBDevicesDiscardUnknown = atoi(Value);
+    else if (strcmp(Name, "MainMenuWidgetDVBDevicesDiscardNotUsed") == 0) SetupConfig->MainMenuWidgetDVBDevicesDiscardNotUsed = atoi(Value);
+    else if (strcmp(Name, "RecordingDimmOnPause") == 0)                 SetupConfig->RecordingDimmOnPause = atoi(Value);
+    else if (strcmp(Name, "RecordingDimmOnPauseDelay") == 0)            SetupConfig->RecordingDimmOnPauseDelay = atoi(Value);
+    else if (strcmp(Name, "RecordingDimmOnPauseOpaque") == 0)           SetupConfig->RecordingDimmOnPauseOpaque = atoi(Value);
+    else return false;
+
+    return true;
+}
+
+void cFlatSetupGeneral::SaveCurrentSettings(void) {
+    time_t t;
+    time(&t);
+    tm *tm = localtime(&t);
+    char time[32];
+    strftime(time, sizeof(time)-1, "%d.%m.%Y_%H:%M", tm);
+    cString File = time;
+    cString Filename = cString::sprintf("%s/configs/%s", PLUGINRESOURCEPATH, *File);
+
+    // if file exist remove it
+    if( access( Filename, F_OK ) != -1 ) {
+        remove(Filename);
+    }
+
+    Config.Store("decorBorderChannelByTheme", SetupConfig->decorBorderChannelByTheme, *Filename);
+    Config.Store("decorBorderChannelTypeUser", SetupConfig->decorBorderChannelTypeUser, *Filename);
+    Config.Store("decorBorderChannelSizeUser", SetupConfig->decorBorderChannelSizeUser, *Filename);
+    Config.Store("decorBorderChannelEPGByTheme", SetupConfig->decorBorderChannelEPGByTheme, *Filename);
+    Config.Store("decorBorderChannelEPGTypeUser", SetupConfig->decorBorderChannelEPGTypeUser, *Filename);
+    Config.Store("decorBorderChannelEPGSizeUser", SetupConfig->decorBorderChannelEPGSizeUser, *Filename);
+    Config.Store("decorBorderTopBarByTheme", SetupConfig->decorBorderTopBarByTheme, *Filename);
+    Config.Store("decorBorderTopBarTypeUser", SetupConfig->decorBorderTopBarTypeUser, *Filename);
+    Config.Store("decorBorderTopBarSizeUser", SetupConfig->decorBorderTopBarSizeUser, *Filename);
+    Config.Store("decorBorderMessageByTheme", SetupConfig->decorBorderMessageByTheme, *Filename);
+    Config.Store("decorBorderMessageTypeUser", SetupConfig->decorBorderMessageTypeUser, *Filename);
+    Config.Store("decorBorderMessageSizeUser", SetupConfig->decorBorderMessageSizeUser, *Filename);
+    Config.Store("decorBorderVolumeByTheme", SetupConfig->decorBorderVolumeByTheme, *Filename);
+    Config.Store("decorBorderVolumeTypeUser", SetupConfig->decorBorderVolumeTypeUser, *Filename);
+    Config.Store("decorBorderVolumeSizeUser", SetupConfig->decorBorderVolumeSizeUser, *Filename);
+    Config.Store("decorBorderTrackByTheme", SetupConfig->decorBorderTrackByTheme, *Filename);
+    Config.Store("decorBorderTrackTypeUser", SetupConfig->decorBorderTrackTypeUser, *Filename);
+    Config.Store("decorBorderTrackSizeUser", SetupConfig->decorBorderTrackSizeUser, *Filename);
+    Config.Store("decorBorderReplayByTheme", SetupConfig->decorBorderReplayByTheme, *Filename);
+    Config.Store("decorBorderReplayTypeUser", SetupConfig->decorBorderReplayTypeUser, *Filename);
+    Config.Store("decorBorderReplaySizeUser", SetupConfig->decorBorderReplaySizeUser, *Filename);
+    Config.Store("decorBorderMenuItemByTheme", SetupConfig->decorBorderMenuItemByTheme, *Filename);
+    Config.Store("decorBorderMenuItemTypeUser", SetupConfig->decorBorderMenuItemTypeUser, *Filename);
+    Config.Store("decorBorderMenuItemSizeUser", SetupConfig->decorBorderMenuItemSizeUser, *Filename);
+    Config.Store("decorBorderMenuContentHeadByTheme", SetupConfig->decorBorderMenuContentHeadByTheme, *Filename);
+    Config.Store("decorBorderMenuContentHeadTypeUser", SetupConfig->decorBorderMenuContentHeadTypeUser, *Filename);
+    Config.Store("decorBorderMenuContentHeadSizeUser", SetupConfig->decorBorderMenuContentHeadSizeUser, *Filename);
+    Config.Store("decorBorderMenuContentByTheme", SetupConfig->decorBorderMenuContentByTheme, *Filename);
+    Config.Store("decorBorderMenuContentTypeUser", SetupConfig->decorBorderMenuContentTypeUser, *Filename);
+    Config.Store("decorBorderMenuContentSizeUser", SetupConfig->decorBorderMenuContentSizeUser, *Filename);
+    Config.Store("decorBorderButtonByTheme", SetupConfig->decorBorderButtonByTheme, *Filename);
+    Config.Store("decorBorderButtonTypeUser", SetupConfig->decorBorderButtonTypeUser, *Filename);
+    Config.Store("decorBorderButtonSizeUser", SetupConfig->decorBorderButtonSizeUser, *Filename);
+    Config.Store("decorProgressChannelByTheme", SetupConfig->decorProgressChannelByTheme, *Filename);
+    Config.Store("decorProgressChannelTypeUser", SetupConfig->decorProgressChannelTypeUser, *Filename);
+    Config.Store("decorProgressChannelSizeUser", SetupConfig->decorProgressChannelSizeUser, *Filename);
+    Config.Store("decorProgressVolumeByTheme", SetupConfig->decorProgressVolumeByTheme, *Filename);
+    Config.Store("decorProgressVolumeTypeUser", SetupConfig->decorProgressVolumeTypeUser, *Filename);
+    Config.Store("decorProgressVolumeSizeUser", SetupConfig->decorProgressVolumeSizeUser, *Filename);
+    Config.Store("decorProgressMenuItemByTheme", SetupConfig->decorProgressMenuItemByTheme, *Filename);
+    Config.Store("decorProgressMenuItemTypeUser", SetupConfig->decorProgressMenuItemTypeUser, *Filename);
+    Config.Store("decorProgressMenuItemSizeUser", SetupConfig->decorProgressMenuItemSizeUser, *Filename);
+    Config.Store("decorProgressReplayByTheme", SetupConfig->decorProgressReplayByTheme, *Filename);
+    Config.Store("decorProgressReplayTypeUser", SetupConfig->decorProgressReplayTypeUser, *Filename);
+    Config.Store("decorProgressReplaySizeUser", SetupConfig->decorProgressReplaySizeUser, *Filename);
+    Config.Store("decorProgressSignalByTheme", SetupConfig->decorProgressSignalByTheme, *Filename);
+    Config.Store("decorProgressSignalTypeUser", SetupConfig->decorProgressSignalTypeUser, *Filename);
+    Config.Store("decorProgressSignalSizeUser", SetupConfig->decorProgressSignalSizeUser, *Filename);
+    Config.Store("decorScrollBarByTheme", SetupConfig->decorScrollBarByTheme, *Filename);
+    Config.Store("decorScrollBarTypeUser", SetupConfig->decorScrollBarTypeUser, *Filename);
+    Config.Store("decorScrollBarSizeUser", SetupConfig->decorScrollBarSizeUser, *Filename);
+    Config.Store("ButtonsShowEmpty", SetupConfig->ButtonsShowEmpty, *Filename);
+    Config.Store("ChannelIconsShow", SetupConfig->ChannelIconsShow, *Filename);
+    Config.Store("SignalQualityShow", SetupConfig->SignalQualityShow, *Filename);
+    Config.Store("DiskUsageShow", SetupConfig->DiskUsageShow, *Filename);
+    Config.Store("MenuItemPadding", SetupConfig->MenuItemPadding, *Filename);
+    Config.Store("marginOsdVer", SetupConfig->marginOsdVer, *Filename);
+    Config.Store("marginOsdHor", SetupConfig->marginOsdHor, *Filename);
+    Config.Store("TopBarFontSize", dtoa(Config.TopBarFontSize), *Filename);
+    Config.Store("MessageOffset", SetupConfig->MessageOffset, *Filename);
+    Config.Store("MenuContentFullSize", SetupConfig->MenuContentFullSize, *Filename);
+    Config.Store("ChannelResolutionAspectShow", SetupConfig->ChannelResolutionAspectShow, *Filename);
+    Config.Store("ChannelFormatShow", SetupConfig->ChannelFormatShow, *Filename);
+    Config.Store("RecordingResolutionAspectShow", SetupConfig->RecordingResolutionAspectShow, *Filename);
+    Config.Store("RecordingFormatShow", SetupConfig->RecordingFormatShow, *Filename);
+    Config.Store("RecordingAdditionalInfoShow", SetupConfig->RecordingAdditionalInfoShow, *Filename);
+    Config.Store("EpgAdditionalInfoShow", SetupConfig->EpgAdditionalInfoShow, *Filename);
+    Config.Store("TopBarRecordingShow", SetupConfig->TopBarRecordingShow, *Filename);
+    Config.Store("MenuItemIconsShow", SetupConfig->MenuItemIconsShow, *Filename);
+    Config.Store("TopBarMenuIconShow", SetupConfig->TopBarMenuIconShow, *Filename);
+    Config.Store("DecorIndex", SetupConfig->DecorIndex, *Filename);
+    Config.Store("MainMenuItemScale", dtoa(Config.MainMenuItemScale), *Filename);
+    Config.Store("MenuChannelView", SetupConfig->MenuChannelView, *Filename);
+    Config.Store("MenuTimerView", SetupConfig->MenuTimerView, *Filename);
+    Config.Store("MenuEventView", SetupConfig->MenuEventView, *Filename);
+    Config.Store("MenuRecordingView", SetupConfig->MenuRecordingView, *Filename);
+    Config.Store("ChannelSimpleAspectFormat", SetupConfig->ChannelSimpleAspectFormat, *Filename);
+    Config.Store("RecordingSimpleAspectFormat", SetupConfig->RecordingSimpleAspectFormat, *Filename);
+    Config.Store("MenuItemRecordingClearPercent", SetupConfig->MenuItemRecordingClearPercent, *Filename);
+    Config.Store("MenuItemRecordingShowFolderDate", SetupConfig->MenuItemRecordingShowFolderDate, *Filename);
+    Config.Store("MenuItemParseTilde", SetupConfig->MenuItemParseTilde, *Filename);
+    Config.Store("TopBarRecConflictsShow", SetupConfig->TopBarRecConflictsShow, *Filename);
+    Config.Store("TopBarRecConflictsHigh", SetupConfig->TopBarRecConflictsHigh, *Filename);
+    Config.Store("SignalQualityUseColors", SetupConfig->SignalQualityUseColors, *Filename);
+    Config.Store("TVScraperChanInfoShowPoster", SetupConfig->TVScraperChanInfoShowPoster, *Filename);
+    Config.Store("TVScraperChanInfoPosterSize", dtoa(Config.TVScraperChanInfoPosterSize), *Filename);
+    Config.Store("TVScraperEPGInfoShowPoster", SetupConfig->TVScraperEPGInfoShowPoster, *Filename);
+    Config.Store("TVScraperRecInfoShowPoster", SetupConfig->TVScraperEPGInfoShowPoster, *Filename);
+    Config.Store("EpgRerunsShow", SetupConfig->EpgRerunsShow, *Filename);
+    Config.Store("TVScraperEPGInfoShowActors", SetupConfig->TVScraperEPGInfoShowActors, *Filename);
+    Config.Store("TVScraperRecInfoShowActors", SetupConfig->TVScraperRecInfoShowActors, *Filename);
+    Config.Store("MessageColorPosition", SetupConfig->MessageColorPosition, *Filename);
+    Config.Store("ScrollerEnable", SetupConfig->ScrollerEnable, *Filename);
+    Config.Store("ScrollerStep", SetupConfig->ScrollerStep, *Filename);
+    Config.Store("ScrollerDelay", SetupConfig->ScrollerDelay, *Filename);
+    Config.Store("ScrollerType", SetupConfig->ScrollerType, *Filename);
+    Config.Store("DiskUsageShort", SetupConfig->DiskUsageShort, *Filename);
+    Config.Store("DiskUsageFree", SetupConfig->DiskUsageFree, *Filename);
+    Config.Store("TopBarFontClockScale", dtoa(Config.TopBarFontClockScale), *Filename);
+    Config.Store("TimeSecsScale", dtoa(Config.TimeSecsScale), *Filename);
+    Config.Store("ChannelBitrateShow", SetupConfig->ChannelBitrateShow, *Filename);
+    Config.Store("ChannelBitrateShowCalcInterval", SetupConfig->ChannelBitrateShowCalcInterval, *Filename);
+    Config.Store("TopBarHideClockText", SetupConfig->TopBarHideClockText, *Filename);
+    Config.Store("ChannelTimeLeft", SetupConfig->ChannelTimeLeft, *Filename);
+    Config.Store("MenuFullOsd", SetupConfig->MenuFullOsd, *Filename);
+    Config.Store("MenuRecordingShowCount", SetupConfig->MenuRecordingShowCount, *Filename);
+    Config.Store("MenuTimerShowCount", SetupConfig->MenuTimerShowCount, *Filename);
+    Config.Store("MenuChannelShowCount", SetupConfig->MenuChannelShowCount, *Filename);
+    Config.Store("ShortRecordingCount", SetupConfig->ShortRecordingCount, *Filename);
+
+    Config.Store("MainMenuWidgetsEnable", SetupConfig->MainMenuWidgetsEnable, *Filename);
+    Config.Store("MainMenuWidgetDVBDevicesShow", SetupConfig->MainMenuWidgetDVBDevicesShow, *Filename);
+    Config.Store("MainMenuWidgetDVBDevicesPosition", SetupConfig->MainMenuWidgetDVBDevicesPosition, *Filename);
+    Config.Store("MainMenuWidgetActiveTimerShow", SetupConfig->MainMenuWidgetActiveTimerShow, *Filename);
+    Config.Store("MainMenuWidgetActiveTimerPosition", SetupConfig->MainMenuWidgetActiveTimerPosition, *Filename);
+    Config.Store("MainMenuWidgetActiveTimerMaxCount", SetupConfig->MainMenuWidgetActiveTimerMaxCount, *Filename);
+    Config.Store("MainMenuWidgetActiveTimerHideEmpty", SetupConfig->MainMenuWidgetActiveTimerHideEmpty, *Filename);
+    Config.Store("MainMenuWidgetLastRecShow", SetupConfig->MainMenuWidgetLastRecShow, *Filename);
+    Config.Store("MainMenuWidgetLastRecPosition", SetupConfig->MainMenuWidgetLastRecPosition, *Filename);
+    Config.Store("MainMenuWidgetLastRecMaxCount", SetupConfig->MainMenuWidgetLastRecMaxCount, *Filename);
+    Config.Store("MainMenuWidgetTimerConflictsShow", SetupConfig->MainMenuWidgetTimerConflictsShow, *Filename);
+    Config.Store("MainMenuWidgetTimerConflictsPosition", SetupConfig->MainMenuWidgetTimerConflictsPosition, *Filename);
+    Config.Store("MainMenuWidgetTimerConflictsHideEmpty", SetupConfig->MainMenuWidgetTimerConflictsHideEmpty, *Filename);
+    Config.Store("MainMenuWidgetSystemInfoShow", SetupConfig->MainMenuWidgetSystemInfoShow, *Filename);
+    Config.Store("MainMenuWidgetSystemInfoPosition", SetupConfig->MainMenuWidgetSystemInfoPosition, *Filename);
+    Config.Store("MainMenuWidgetSystemUpdatesShow", SetupConfig->MainMenuWidgetSystemUpdatesShow, *Filename);
+    Config.Store("MainMenuWidgetSystemUpdatesPosition", SetupConfig->MainMenuWidgetSystemUpdatesPosition, *Filename);
+    Config.Store("MainMenuWidgetSystemUpdatesHideIfZero", SetupConfig->MainMenuWidgetSystemUpdatesHideIfZero, *Filename);
+    Config.Store("MainMenuWidgetTemperaturesShow", SetupConfig->MainMenuWidgetTemperaturesShow, *Filename);
+    Config.Store("MainMenuWidgetTemperaturesPosition", SetupConfig->MainMenuWidgetTemperaturesPosition, *Filename);
+    Config.Store("MainMenuWidgetCommandShow", SetupConfig->MainMenuWidgetCommandShow, *Filename);
+    Config.Store("MainMenuWidgetCommandPosition", SetupConfig->MainMenuWidgetCommandPosition, *Filename);
+    Config.Store("MainMenuWidgetWeatherShow", SetupConfig->MainMenuWidgetWeatherShow, *Filename);
+    Config.Store("MainMenuWidgetWeatherPosition", SetupConfig->MainMenuWidgetWeatherPosition, *Filename);
+    Config.Store("MainMenuWidgetWeatherDays", SetupConfig->MainMenuWidgetWeatherDays, *Filename);
+    Config.Store("MainMenuWidgetWeatherType", SetupConfig->MainMenuWidgetWeatherType, *Filename);
+    Config.Store("ChannelWeatherShow", SetupConfig->ChannelWeatherShow, *Filename);
+    Config.Store("PlaybackWeatherShow", SetupConfig->PlaybackWeatherShow, *Filename);
+    Config.Store("WeatherFontSize", dtoa(Config.WeatherFontSize), *Filename);
+    Config.Store("TVScraperReplayInfoShowPoster", SetupConfig->TVScraperReplayInfoShowPoster, *Filename);
+    Config.Store("TVScraperReplayInfoPosterSize", dtoa(Config.TVScraperReplayInfoPosterSize), *Filename);
+    Config.Store("MainMenuWidgetDVBDevicesDiscardUnknown", SetupConfig->MainMenuWidgetDVBDevicesDiscardUnknown, *Filename);
+    Config.Store("MainMenuWidgetDVBDevicesDiscardNotUsed", SetupConfig->MainMenuWidgetDVBDevicesDiscardNotUsed, *Filename);
+    Config.Store("RecordingDimmOnPause", SetupConfig->RecordingDimmOnPause, *Filename);
+    Config.Store("RecordingDimmOnPauseDelay", SetupConfig->RecordingDimmOnPauseDelay, *Filename);
+    Config.Store("RecordingDimmOnPauseOpaque", SetupConfig->RecordingDimmOnPauseOpaque, *Filename);
+
+    cString msg = cString::sprintf("%s %s", tr("saved settings in file:"), *File);
+    Skins.Message(mtInfo, msg);
+}
+//------------------------------------------------------------------------------------------------------------------
+
+cMenuSetupSubMenu::cMenuSetupSubMenu(const char* Title, cFlatConfig* data) : cOsdMenu(Title, 35) {
+    SetupConfig = data;
+    ItemLastSel = -1;
+}
+
+cOsdItem *cMenuSetupSubMenu::InfoItem(const char *label, const char *value) {
+    cOsdItem *item;
+    item = new cOsdItem(cString::sprintf("%s: %s", label, value));
+    item->SetSelectable(false);
+    return item;
+}
+
+// General Settings
+cFlatSetupGeneral::cFlatSetupGeneral(cFlatConfig* data)  : cMenuSetupSubMenu(tr("General settings"), data) {
+    Setup();
+}
+
+void cFlatSetupGeneral::Setup(void) {
+    Clear();
+
+    DecorDescriptions.Clear();
+    SetupConfig->DecorDescriptions( DecorDescriptions );
+    if( SetupConfig->DecorIndex < 0 || SetupConfig->DecorIndex > DecorDescriptions.Size() )
+        SetupConfig->DecorIndex = 0;
+
+    if( DecorDescriptions.Size() == 0 ) {
+        esyslog("skinflatplus: no decor files found, please check your installation!");
+        Add(new cOsdItem(tr("no decorfiles found, check install"), osUnknown, false));
+    } else
+        Add(new cMenuEditStraItem(tr("Decorfile"), &SetupConfig->DecorIndex, DecorDescriptions.Size(), &DecorDescriptions[0]));
+
+    ConfigFiles.Clear();
+    SetupConfig->GetConfigFiles( ConfigFiles );
+    for(int i = 0; i < ConfigFiles.Size(); i++)
+        dsyslog("ConfigFile: %s", ConfigFiles[i]);
+
+    ConfigFileSelection = 0;
+    if( ConfigFiles.Size() == 0 ) {
+        esyslog("skinflatplus: no config files found, please check your installation!");
+        Add(new cOsdItem(tr("no config-files found, check install"), osUnknown, false));
+    } else
+        Add(new cMenuEditStraItem(tr("Press ok to load config file"), &ConfigFileSelection, ConfigFiles.Size(), &ConfigFiles[0]));
+
+    cString saveSettings = cString::sprintf("%s:\t%s", tr("Save current settings"), tr("press ok to save current settings"));
+    Add(new cOsdItem(saveSettings, osUnknown, true));
+
+    Add(new cMenuEditBoolItem(tr("Show empty color-buttons"), &SetupConfig->ButtonsShowEmpty));
+    Add(new cMenuEditBoolItem(tr("Show TopBar menu icons"), &SetupConfig->TopBarMenuIconShow));
+    Add(new cMenuEditStraItem(tr("Diskusage show"), &SetupConfig->DiskUsageShow, DiskUsages.Size(), &DiskUsages[0]));
+    Add(new cMenuEditBoolItem(tr("Diskusage short display"), &SetupConfig->DiskUsageShort));
+    Add(new cMenuEditStraItem(tr("Diskusage free/occupied"), &SetupConfig->DiskUsageFree, DiskUsageFree.Size(), &DiskUsageFree[0]));
+    Add(new cMenuEditIntItem(tr("OSD vertical margin"), &SetupConfig->marginOsdVer));
+    Add(new cMenuEditIntItem(tr("OSD horizontal margin"), &SetupConfig->marginOsdHor));
+    Add(new cMenuEditPrcItem(tr("TopBar font size"), &SetupConfig->TopBarFontSize, 0.01, 0.2, 1));
+    Add(new cMenuEditBoolItem(tr("TopBar show recording"), &SetupConfig->TopBarRecordingShow));
+    Add(new cMenuEditBoolItem(tr("TopBar show conflicts"), &SetupConfig->TopBarRecConflictsShow));
+    Add(new cMenuEditBoolItem(tr("TopBar hide clock text"), &SetupConfig->TopBarHideClockText));
+    Add(new cMenuEditPrcItem(tr("TopBar clock font scale"), &SetupConfig->TopBarFontClockScale, 0.005, 0.02, 1));
+    Add(new cMenuEditIntItem(tr("Conflicts min value for red"), &SetupConfig->TopBarRecConflictsHigh));
+    Add(new cMenuEditIntItem(tr("Message bottom offset"), &SetupConfig->MessageOffset));
+    Add(new cMenuEditStraItem(tr("Message color position"), &SetupConfig->MessageColorPosition, MessageColorPositions.Size(), &MessageColorPositions[0]));
+
+    Add(new cMenuEditBoolItem(tr("Use Textscroller?"), &SetupConfig->ScrollerEnable));
+    if( SetupConfig->ScrollerEnable ) {
+        Add(new cMenuEditIntItem(tr("Scroller step (in pixel)"), &SetupConfig->ScrollerStep));
+        Add(new cMenuEditIntItem(tr("Scroller delay (in ms)"), &SetupConfig->ScrollerDelay));
+        Add(new cMenuEditStraItem(tr("Scroller type"), &SetupConfig->ScrollerType, ScrollerTypes.Size(), &ScrollerTypes[0]));
+    } else {
+        cString step = cString::sprintf("%s:\t%d", tr("Scroller step (in pixel)"), SetupConfig->ScrollerStep);
+        Add(new cOsdItem(step, osUnknown, false));
+        cString delay = cString::sprintf("%s:\t%d", tr("Scroller delay (in ms)"), SetupConfig->ScrollerDelay);
+        Add(new cOsdItem(delay, osUnknown, false));
+        cString type = cString::sprintf("%s:\t%s", tr("Scroller type"), ScrollerTypes[SetupConfig->ScrollerType]);
+        Add(new cOsdItem(type, osUnknown, false));
+    }
+
+    Add(new cMenuEditBoolItem(tr("TopBar border by decor-file?"), &SetupConfig->decorBorderTopBarByTheme));
+    if( SetupConfig->decorBorderTopBarByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("TopBar border type"), Bordertypes[SetupConfig->decorBorderTopBarTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("TopBar border size"), SetupConfig->decorBorderTopBarSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("TopBar border type"), &SetupConfig->decorBorderTopBarTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("TopBar border size"), &SetupConfig->decorBorderTopBarSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Message border by decor-file?"), &SetupConfig->decorBorderMessageByTheme));
+    if( SetupConfig->decorBorderMessageByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Message border type"), Bordertypes[SetupConfig->decorBorderMessageTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Message border size"), SetupConfig->decorBorderMessageSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Message border type"), &SetupConfig->decorBorderMessageTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Message border size"), &SetupConfig->decorBorderMessageSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Button border by decor-file?"), &SetupConfig->decorBorderButtonByTheme));
+    if( SetupConfig->decorBorderButtonByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Button border type"), Bordertypes[SetupConfig->decorBorderButtonTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Button border size"), SetupConfig->decorBorderButtonSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Button border type"), &SetupConfig->decorBorderButtonTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Button border size"), &SetupConfig->decorBorderButtonSizeUser));
+    }
+
+    cString ImageCache = cString::sprintf("%s:\t%d / %d", tr("Imagecache entries"), imgCache.getCacheCount(), MAX_IMAGE_CACHE);
+    Add(new cOsdItem(ImageCache, osUnknown, true));
+
+    if( ItemLastSel >= 0 ) {
+        SetCurrent(Get(ItemLastSel));
+        ItemLastSel = -1;
+    }
+
+    Display();
+}
+
+eOSState cFlatSetupGeneral::ProcessKey(eKeys Key) {
+    eOSState state = cOsdMenu::ProcessKey(Key);
+    if (state == osUnknown) {
+        switch (Key) {
+            case kOk:
+            {
+                const char* ItemText = Get(Current())->Text();
+                if( strstr(ItemText, tr("Save current settings")) != NULL ) {
+                    SaveCurrentSettings();
+                    return osUnknown;
+                } else if( strstr(ItemText, tr("Press ok to load config file")) != NULL ) {
+                    LoadConfigFile();
+                    return osBack;
+                } else {
+                    return osBack;
+                }
+            }
+            default:
+                break;
+        }
+    }
+    if( Key == kLeft || Key == kRight ) {
+        const char* ItemText = Get(Current())->Text();
+        if( strstr(ItemText, tr("TopBar border by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Message border by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Use Textscroller?")) != NULL ||
+            strstr(ItemText, tr("Button border by decor-file?")) != NULL
+        ) {
+            ItemLastSel = Current();
+            Setup();
+        }
+    }
+    return state;
+}
+
+// Channel Info Settings
+cFlatSetupChannelInfo::cFlatSetupChannelInfo(cFlatConfig* data)  : cMenuSetupSubMenu(tr("Channelinfo settings"), data) {
+    Setup();
+}
+
+void cFlatSetupChannelInfo::Setup(void) {
+    Clear();
+
+    Add(new cMenuEditBoolItem(tr("Show Channelinfo icons"), &SetupConfig->ChannelIconsShow));
+    Add(new cMenuEditBoolItem(tr("Show signal quality"), &SetupConfig->SignalQualityShow));
+    Add(new cMenuEditBoolItem(tr("Show weather widget"), &SetupConfig->ChannelWeatherShow));
+    Add(new cMenuEditPrcItem(tr("Weather widget font size"), &SetupConfig->WeatherFontSize, 0.01, 0.2, 1));
+    Add(new cMenuEditBoolItem(tr("Colors for signal quality"), &SetupConfig->SignalQualityUseColors));
+    Add(new cMenuEditBoolItem(tr("Show resolution & aspect"), &SetupConfig->ChannelResolutionAspectShow));
+    Add(new cMenuEditBoolItem(tr("Show format (hd/sd)"), &SetupConfig->ChannelFormatShow));
+    Add(new cMenuEditBoolItem(tr("Show video/audio bitrate"), &SetupConfig->ChannelBitrateShow));
+    Add(new cMenuEditBoolItem(tr("Simple aspect & format"), &SetupConfig->ChannelSimpleAspectFormat));
+    Add(new cMenuEditStraItem(tr("program past/remaining time format"), &SetupConfig->ChannelTimeLeft, ChannelTimeLefts.Size(), &ChannelTimeLefts[0]));
+
+    Add(new cMenuEditBoolItem(tr("Channelinfo border by decor-file?"), &SetupConfig->decorBorderChannelByTheme));
+    if( SetupConfig->decorBorderChannelByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Channelinfo border type"), Bordertypes[SetupConfig->decorBorderChannelTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Channelinfo border size"), SetupConfig->decorBorderChannelSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Channelinfo border type"), &SetupConfig->decorBorderChannelTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Channelinfo border size"), &SetupConfig->decorBorderChannelSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Channelinfo EPG border by decor-file?"), &SetupConfig->decorBorderChannelEPGByTheme));
+    if( SetupConfig->decorBorderChannelEPGByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Channelinfo EPG border type"), Bordertypes[SetupConfig->decorBorderChannelEPGTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Channelinfo EPG border size"), SetupConfig->decorBorderChannelEPGSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Channelinfo EPG border type"), &SetupConfig->decorBorderChannelEPGTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Channelinfo EPG border size"), &SetupConfig->decorBorderChannelEPGSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Channelinfo progress by decor-file?"), &SetupConfig->decorProgressChannelByTheme));
+    if( SetupConfig->decorProgressChannelByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Channelinfo progress type"), Progresstypes[SetupConfig->decorProgressChannelTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Channelinfo progress size"), SetupConfig->decorProgressChannelSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Channelinfo progress type"), &SetupConfig->decorProgressChannelTypeUser, Progresstypes.Size(), &Progresstypes[0]));
+        Add(new cMenuEditIntItem(tr("Channelinfo progress size"), &SetupConfig->decorProgressChannelSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Signalquality progress by decor-file?"), &SetupConfig->decorProgressSignalByTheme));
+    if( SetupConfig->decorProgressSignalByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Signalquality progress type"), Progresstypes[SetupConfig->decorProgressSignalTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Signalquality progress size"), SetupConfig->decorProgressSignalSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Signalquality progress type"), &SetupConfig->decorProgressSignalTypeUser, Progresstypes.Size(), &Progresstypes[0]));
+        Add(new cMenuEditIntItem(tr("Signalquality progress size"), &SetupConfig->decorProgressSignalSizeUser));
+    }
+
+    if( ItemLastSel >= 0 ) {
+        SetCurrent(Get(ItemLastSel));
+        ItemLastSel = -1;
+    }
+
+    Display();
+}
+
+eOSState cFlatSetupChannelInfo::ProcessKey(eKeys Key) {
+    eOSState state = cOsdMenu::ProcessKey(Key);
+    if (state == osUnknown) {
+        switch (Key) {
+            case kOk:
+                return osBack;
+            default:
+                break;
+        }
+    }
+    if( Key == kLeft || Key == kRight ) {
+        const char* ItemText = Get(Current())->Text();
+        if( strstr(ItemText, tr("Channelinfo border by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Channelinfo EPG border by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Channelinfo progress by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Signalquality progress by decor-file?")) != NULL
+        ) {
+            ItemLastSel = Current();
+            Setup();
+        }
+    }
+    return state;
+}
+
+// Menu Settings
+cFlatSetupMenu::cFlatSetupMenu(cFlatConfig* data)  : cMenuSetupSubMenu(tr("Menu settings"), data) {
+    Setup();
+}
+
+void cFlatSetupMenu::Setup(void) {
+    Clear();
+
+    Add(new cMenuEditIntItem(tr("Menuitem padding"), &SetupConfig->MenuItemPadding));
+    Add(new cMenuEditBoolItem(tr("Show mainmenu item icons"), &SetupConfig->MenuItemIconsShow));
+    Add(new cMenuEditBoolItem(tr("Menu content fullsize background"), &SetupConfig->MenuContentFullSize));
+    Add(new cMenuEditBoolItem(tr("Show additional recording info"), &SetupConfig->RecordingAdditionalInfoShow));
+    Add(new cMenuEditBoolItem(tr("Show additional EPG info"), &SetupConfig->EpgAdditionalInfoShow));
+    Add(new cMenuEditBoolItem(tr("Show reruns in EPG info"), &SetupConfig->EpgRerunsShow));
+    Add(new cMenuEditBoolItem(tr("Menu draw background over the entire height"), &SetupConfig->MenuFullOsd));
+
+    Add(new cMenuEditBoolItem(tr("Recording menu show recording count in title"), &SetupConfig->MenuRecordingShowCount));
+    Add(new cMenuEditBoolItem(tr("Timer menu show timer count in title"), &SetupConfig->MenuTimerShowCount));
+    Add(new cMenuEditBoolItem(tr("Channel menu show channel count in title"), &SetupConfig->MenuChannelShowCount));
+
+    Add(new cMenuEditStraItem(tr("Menu channel view"), &SetupConfig->MenuChannelView, MenuChannelViews.Size(), &MenuChannelViews[0]));
+    Add(new cMenuEditStraItem(tr("Menu timer view"), &SetupConfig->MenuTimerView, MenuTimerViews.Size(), &MenuTimerViews[0]));
+    Add(new cMenuEditStraItem(tr("Menu event view"), &SetupConfig->MenuEventView, MenuEventViews.Size(), &MenuEventViews[0]));
+    Add(new cMenuEditStraItem(tr("Menu recording view"), &SetupConfig->MenuRecordingView, MenuRecordingViews.Size(), &MenuRecordingViews[0]));
+
+    Add(new cMenuEditBoolItem(tr("Scrollbar by decor-file?"), &SetupConfig->decorScrollBarByTheme));
+    if( SetupConfig->decorScrollBarByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Scrollbar type"), ScrollBarTypes[SetupConfig->decorScrollBarTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Scrollbar size"), SetupConfig->decorScrollBarSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Scrollbar type"), &SetupConfig->decorScrollBarTypeUser, ScrollBarTypes.Size(), &ScrollBarTypes[0]));
+        Add(new cMenuEditIntItem(tr("Scrollbar size"), &SetupConfig->decorScrollBarSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Menuitem border by decor-file?"), &SetupConfig->decorBorderMenuItemByTheme));
+    if( SetupConfig->decorBorderMenuItemByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Menuitem border type"), Bordertypes[SetupConfig->decorBorderMenuItemTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Menuitem border size"), SetupConfig->decorBorderMenuItemSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Menuitem border type"), &SetupConfig->decorBorderMenuItemTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Menuitem border size"), &SetupConfig->decorBorderMenuItemSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Menucont. border by decor-file?"), &SetupConfig->decorBorderMenuContentByTheme));
+    if( SetupConfig->decorBorderMenuContentByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Menucont. border type"), Bordertypes[SetupConfig->decorBorderMenuContentTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Menucont. border size"), SetupConfig->decorBorderMenuContentSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Menucont. border type"), &SetupConfig->decorBorderMenuContentTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Menucont. border size"), &SetupConfig->decorBorderMenuContentSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Menucont. head border by decor-file?"), &SetupConfig->decorBorderMenuContentHeadByTheme));
+    if( SetupConfig->decorBorderMenuContentHeadByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Menucont. head border type"), Bordertypes[SetupConfig->decorBorderMenuContentHeadTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Menucont. head border size"), SetupConfig->decorBorderMenuContentHeadSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Menucont. head border type"), &SetupConfig->decorBorderMenuContentHeadTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Menucont. head border size"), &SetupConfig->decorBorderMenuContentHeadSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Menuitem progress by decor-file?"), &SetupConfig->decorProgressMenuItemByTheme));
+    if( SetupConfig->decorProgressMenuItemByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Menuitem progress type"), Progresstypes[SetupConfig->decorProgressMenuItemTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Menuitem progress size"), SetupConfig->decorProgressMenuItemSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Menuitem progress type"), &SetupConfig->decorProgressMenuItemTypeUser, Progresstypes.Size(), &Progresstypes[0]));
+        Add(new cMenuEditIntItem(tr("Menuitem progress size"), &SetupConfig->decorProgressMenuItemSizeUser));
+    }
+
+    if( ItemLastSel >= 0 ) {
+        SetCurrent(Get(ItemLastSel));
+        ItemLastSel = -1;
+    }
+
+    Display();
+}
+
+eOSState cFlatSetupMenu::ProcessKey(eKeys Key) {
+    eOSState state = cOsdMenu::ProcessKey(Key);
+    if (state == osUnknown) {
+        switch (Key) {
+            case kOk:
+                return osBack;
+            default:
+                break;
+        }
+    }
+    if( Key == kLeft || Key == kRight ) {
+        const char* ItemText = Get(Current())->Text();
+        if( strstr(ItemText, tr("Menuitem border by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Menucont. border by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Menucont. head border by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Menuitem progress by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Scrollbar by decor-file?")) != NULL
+        ) {
+            ItemLastSel = Current();
+            Setup();
+        }
+    }
+    return state;
+}
+
+// Replay Settings
+cFlatSetupReplay::cFlatSetupReplay(cFlatConfig* data)  : cMenuSetupSubMenu(tr("Replay settings"), data) {
+    Setup();
+}
+
+void cFlatSetupReplay::Setup(void) {
+    Clear();
+
+    Add(new cMenuEditBoolItem(tr("Show resolution & aspect"), &SetupConfig->RecordingResolutionAspectShow));
+    Add(new cMenuEditBoolItem(tr("Show format (hd/sd)"), &SetupConfig->RecordingFormatShow));
+    Add(new cMenuEditBoolItem(tr("Simple aspect & format"), &SetupConfig->RecordingSimpleAspectFormat));
+    Add(new cMenuEditPrcItem(tr("Time seconds font scale"), &SetupConfig->TimeSecsScale, 0.003, 0.01, 1));
+    Add(new cMenuEditBoolItem(tr("Show weather widget"), &SetupConfig->PlaybackWeatherShow));
+
+    Add(new cMenuEditBoolItem(tr("Dimm on pause?"), &SetupConfig->RecordingDimmOnPause));
+    if( SetupConfig->RecordingDimmOnPause ) {
+        Add(new cMenuEditIntItem(tr("Dimm on pause delay"), &SetupConfig->RecordingDimmOnPauseDelay));
+        Add(new cMenuEditIntItem(tr("Dimm on pause opaque"), &SetupConfig->RecordingDimmOnPauseOpaque));
+    } else {
+        cString type = cString::sprintf("%s:\t%d", tr("Dimm on pause delay"), SetupConfig->RecordingDimmOnPauseDelay);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Dimm on pause opaque"), SetupConfig->RecordingDimmOnPauseOpaque);
+        Add(new cOsdItem(size, osUnknown, false));
+    }
+    Add(new cMenuEditBoolItem(tr("Replay border by decor-file?"), &SetupConfig->decorBorderReplayByTheme));
+    if( SetupConfig->decorBorderReplayByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Replay border type"), Bordertypes[SetupConfig->decorBorderReplayTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Replay border size"), SetupConfig->decorBorderReplaySizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Replay border type"), &SetupConfig->decorBorderReplayTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Replay border size"), &SetupConfig->decorBorderReplaySizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Replay progress by decor-file?"), &SetupConfig->decorProgressReplayByTheme));
+    if( SetupConfig->decorProgressReplayByTheme ) {
+        cString size = cString::sprintf("%s:\t%d", tr("Replay progress size"), SetupConfig->decorProgressReplaySizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditIntItem(tr("Replay progress size"), &SetupConfig->decorProgressReplaySizeUser));
+    }
+
+    if( ItemLastSel >= 0 ) {
+        SetCurrent(Get(ItemLastSel));
+        ItemLastSel = -1;
+    }
+
+    Display();
+}
+
+eOSState cFlatSetupReplay::ProcessKey(eKeys Key) {
+    eOSState state = cOsdMenu::ProcessKey(Key);
+    if (state == osUnknown) {
+        switch (Key) {
+            case kOk:
+                return osBack;
+            default:
+                break;
+        }
+    }
+    if( Key == kLeft || Key == kRight ) {
+        const char* ItemText = Get(Current())->Text();
+        if( strstr(ItemText, tr("Replay border by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Replay progress by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Dimm on pause?")) != NULL
+        ) {
+            ItemLastSel = Current();
+            Setup();
+        }
+    }
+    return state;
+}
+
+// Volume Settings
+cFlatSetupVolume::cFlatSetupVolume(cFlatConfig* data)  : cMenuSetupSubMenu(tr("Volume settings"), data) {
+    Setup();
+}
+
+void cFlatSetupVolume::Setup(void) {
+    Clear();
+
+    Add(new cMenuEditBoolItem(tr("Volume border by decor-file?"), &SetupConfig->decorBorderVolumeByTheme));
+    if( SetupConfig->decorBorderVolumeByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Volume border type"), Bordertypes[SetupConfig->decorBorderVolumeTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Volume border size"), SetupConfig->decorBorderVolumeSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Volume border type"), &SetupConfig->decorBorderVolumeTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Volume border size"), &SetupConfig->decorBorderVolumeSizeUser));
+    }
+
+    Add(new cMenuEditBoolItem(tr("Volume progress by decor-file?"), &SetupConfig->decorProgressVolumeByTheme));
+    if( SetupConfig->decorProgressVolumeByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Volume progress type"), Progresstypes[SetupConfig->decorProgressVolumeTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Volume progress size"), SetupConfig->decorProgressVolumeSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Volume progress type"), &SetupConfig->decorProgressVolumeTypeUser, Progresstypes.Size(), &Progresstypes[0]));
+        Add(new cMenuEditIntItem(tr("Volume progress size"), &SetupConfig->decorProgressVolumeSizeUser));
+    }
+
+    if( ItemLastSel >= 0 ) {
+        SetCurrent(Get(ItemLastSel));
+        ItemLastSel = -1;
+    }
+
+    Display();
+}
+
+eOSState cFlatSetupVolume::ProcessKey(eKeys Key) {
+    eOSState state = cOsdMenu::ProcessKey(Key);
+    if (state == osUnknown) {
+        switch (Key) {
+            case kOk:
+                return osBack;
+            default:
+                break;
+        }
+    }
+    if( Key == kLeft || Key == kRight ) {
+        const char* ItemText = Get(Current())->Text();
+        if( strstr(ItemText, tr("Volume border by decor-file?")) != NULL ||
+            strstr(ItemText, tr("Volume progress by decor-file?")) != NULL
+        ) {
+            ItemLastSel = Current();
+            Setup();
+        }
+    }
+    return state;
+}
+
+// Tracks Settings
+cFlatSetupTracks::cFlatSetupTracks(cFlatConfig* data)  : cMenuSetupSubMenu(tr("Tracks settings"), data) {
+    Setup();
+}
+
+void cFlatSetupTracks::Setup(void) {
+    Clear();
+
+    Add(new cMenuEditBoolItem(tr("Tracks border by decor-file?"), &SetupConfig->decorBorderTrackByTheme));
+    if( SetupConfig->decorBorderTrackByTheme ) {
+        cString type = cString::sprintf("%s:\t%s", tr("Tracks border type"), Bordertypes[SetupConfig->decorBorderTrackTypeTheme]);
+        Add(new cOsdItem(type, osUnknown, false));
+        cString size = cString::sprintf("%s:\t%d", tr("Tracks border size"), SetupConfig->decorBorderTrackSizeTheme);
+        Add(new cOsdItem(size, osUnknown, false));
+    } else {
+        Add(new cMenuEditStraItem(tr("Tracks border type"), &SetupConfig->decorBorderTrackTypeUser, Bordertypes.Size(), &Bordertypes[0]));
+        Add(new cMenuEditIntItem(tr("Tracks border size"), &SetupConfig->decorBorderTrackSizeUser));
+    }
+
+    if( ItemLastSel >= 0 ) {
+        SetCurrent(Get(ItemLastSel));
+        ItemLastSel = -1;
+    }
+
+    Display();
+}
+
+eOSState cFlatSetupTracks::ProcessKey(eKeys Key) {
+    eOSState state = cOsdMenu::ProcessKey(Key);
+    if (state == osUnknown) {
+        switch (Key) {
+            case kOk:
+                return osBack;
+            default:
+                break;
+        }
+    }
+    if( Key == kLeft || Key == kRight ) {
+        const char* ItemText = Get(Current())->Text();
+        if( strstr(ItemText, tr("Tracks border by decor-file?")) != NULL
+        ) {
+            ItemLastSel = Current();
+            Setup();
+        }
+    }
+    return state;
+}
+
+// TVScraper Settings
+cFlatSetupTvsraper::cFlatSetupTvsraper(cFlatConfig* data)  : cMenuSetupSubMenu(tr("TVScraper settings"), data) {
+    Setup();
+}
+
+void cFlatSetupTvsraper::Setup(void) {
+    Clear();
+
+    Add(new cMenuEditBoolItem(tr("Channelinfo show poster?"), &SetupConfig->TVScraperChanInfoShowPoster));
+    Add(new cMenuEditPrcItem(tr("Channelinfo poster size"), &SetupConfig->TVScraperChanInfoPosterSize, 0.004, 0.015, 2));
+    Add(new cMenuEditBoolItem(tr("Replayinfo show poster?"), &SetupConfig->TVScraperReplayInfoShowPoster));
+    Add(new cMenuEditPrcItem(tr("Replayinfo poster size"), &SetupConfig->TVScraperReplayInfoPosterSize, 0.004, 0.015, 2));
+    Add(new cMenuEditBoolItem(tr("EPG info show poster?"), &SetupConfig->TVScraperEPGInfoShowPoster));
+    Add(new cMenuEditBoolItem(tr("recording info show poster?"), &SetupConfig->TVScraperRecInfoShowPoster));
+    Add(new cMenuEditBoolItem(tr("EPG info show actors?"), &SetupConfig->TVScraperEPGInfoShowActors));
+    Add(new cMenuEditBoolItem(tr("recording info show actors?"), &SetupConfig->TVScraperRecInfoShowActors));
+
+    if( ItemLastSel >= 0 ) {
+        SetCurrent(Get(ItemLastSel));
+        ItemLastSel = -1;
+    }
+
+    Display();
+}
+
+eOSState cFlatSetupTvsraper::ProcessKey(eKeys Key) {
+    eOSState state = cOsdMenu::ProcessKey(Key);
+    if (state == osUnknown) {
+        switch (Key) {
+            case kOk:
+                return osBack;
+            default:
+                break;
+        }
+    }
+    return state;
+}
+
+// Main Menu Widgets Settings
+cFlatSetupMMWidget::cFlatSetupMMWidget(cFlatConfig* data)  : cMenuSetupSubMenu(tr("Main menu widgets settings"), data) {
+    Setup();
+}
+
+void cFlatSetupMMWidget::Setup(void) {
+    Clear();
+
+    Add(new cMenuEditBoolItem(tr("Enable main menu widgets"), &SetupConfig->MainMenuWidgetsEnable));
+    if( SetupConfig->MainMenuWidgetsEnable ) {
+        Add(new cMenuEditPrcItem(tr("Main menu item scale"), &SetupConfig->MainMenuItemScale, 0.3, 0.7, 0));
+
+        Add(new cOsdItem(tr("Widget weather"), osUnknown, false));
+        Add(new cMenuEditBoolItem(tr("Widget weather: enable"), &SetupConfig->MainMenuWidgetWeatherShow));
+        if( SetupConfig->MainMenuWidgetWeatherShow ) {
+            Add(new cMenuEditIntItem(tr("Widget weather: position"), &SetupConfig->MainMenuWidgetWeatherPosition));
+            Add(new cMenuEditIntItem(tr("Widget weather: show days"), &SetupConfig->MainMenuWidgetWeatherDays));
+            Add(new cMenuEditStraItem(tr("Widget weather: type"), &SetupConfig->MainMenuWidgetWeatherType, WeatherTypes.Size(), &WeatherTypes[0]));
+        }
+
+        Add(new cOsdItem(tr("Widget DVB devices"), osUnknown, false));
+        Add(new cMenuEditBoolItem(tr("Widget DVB devices: enable"), &SetupConfig->MainMenuWidgetDVBDevicesShow));
+        if( SetupConfig->MainMenuWidgetDVBDevicesShow ) {
+            Add(new cMenuEditIntItem(tr("Widget DVB devices: position"), &SetupConfig->MainMenuWidgetDVBDevicesPosition));
+            Add(new cMenuEditBoolItem(tr("Widget DVB devices: don't show unknown"), &SetupConfig->MainMenuWidgetDVBDevicesDiscardUnknown));
+            Add(new cMenuEditBoolItem(tr("Widget DVB devices: don't show not used"), &SetupConfig->MainMenuWidgetDVBDevicesDiscardNotUsed));
+        }
+
+        Add(new cOsdItem(tr("Widget active timer"), osUnknown, false));
+        Add(new cMenuEditBoolItem(tr("Widget active timer: enable"), &SetupConfig->MainMenuWidgetActiveTimerShow));
+        if( SetupConfig->MainMenuWidgetActiveTimerShow ) {
+            Add(new cMenuEditIntItem(tr("Widget active timer: position"), &SetupConfig->MainMenuWidgetActiveTimerPosition));
+            Add(new cMenuEditIntItem(tr("Widget active timer: max show"), &SetupConfig->MainMenuWidgetActiveTimerMaxCount));
+            Add(new cMenuEditBoolItem(tr("Widget active timer: hide if empty"), &SetupConfig->MainMenuWidgetActiveTimerHideEmpty));
+        }
+
+        Add(new cOsdItem(tr("Widget last recordings"), osUnknown, false));
+        Add(new cMenuEditBoolItem(tr("Widget last recordings: enable"), &SetupConfig->MainMenuWidgetLastRecShow));
+        if( SetupConfig->MainMenuWidgetLastRecShow ) {
+            Add(new cMenuEditIntItem(tr("Widget last recordings: position"), &SetupConfig->MainMenuWidgetLastRecPosition));
+            Add(new cMenuEditIntItem(tr("Widget last recordings: max show"), &SetupConfig->MainMenuWidgetLastRecMaxCount));
+        }
+
+        Add(new cOsdItem(tr("Widget timer conflicts"), osUnknown, false));
+        Add(new cMenuEditBoolItem(tr("Widget timer conflicts: enable"), &SetupConfig->MainMenuWidgetTimerConflictsShow));
+        if( SetupConfig->MainMenuWidgetTimerConflictsShow ) {
+            Add(new cMenuEditIntItem(tr("Widget timer conflicts: position"), &SetupConfig->MainMenuWidgetTimerConflictsPosition));
+            Add(new cMenuEditBoolItem(tr("Widget timer conflicts: hide if empty"), &SetupConfig->MainMenuWidgetTimerConflictsHideEmpty));
+        }
+
+        Add(new cOsdItem(tr("Widget system information"), osUnknown, false));
+        Add(new cMenuEditBoolItem(tr("Widget system information: enable"), &SetupConfig->MainMenuWidgetSystemInfoShow));
+        if( SetupConfig->MainMenuWidgetSystemInfoShow ) {
+            Add(new cMenuEditIntItem(tr("Widget system information: position"), &SetupConfig->MainMenuWidgetSystemInfoPosition));
+        }
+
+        Add(new cOsdItem(tr("Widget system updates"), osUnknown, false));
+        Add(new cMenuEditBoolItem(tr("Widget system updates: enable"), &SetupConfig->MainMenuWidgetSystemUpdatesShow));
+        if( SetupConfig->MainMenuWidgetSystemUpdatesShow ) {
+            Add(new cMenuEditIntItem(tr("Widget system updates: position"), &SetupConfig->MainMenuWidgetSystemUpdatesPosition));
+            Add(new cMenuEditBoolItem(tr("Widget system updates: hide if empty"), &SetupConfig->MainMenuWidgetSystemUpdatesHideIfZero));
+        }
+
+        Add(new cOsdItem(tr("Widget temperatures"), osUnknown, false));
+        Add(new cMenuEditBoolItem(tr("Widget temperatures: enable"), &SetupConfig->MainMenuWidgetTemperaturesShow));
+        if( SetupConfig->MainMenuWidgetTemperaturesShow ) {
+            Add(new cMenuEditIntItem(tr("Widget temperatures: position"), &SetupConfig->MainMenuWidgetTemperaturesPosition));
+        }
+
+        Add(new cOsdItem(tr("Widget custom commands"), osUnknown, false));
+        Add(new cMenuEditBoolItem(tr("Widget custom commands: enable"), &SetupConfig->MainMenuWidgetCommandShow));
+        if( SetupConfig->MainMenuWidgetCommandShow ) {
+            Add(new cMenuEditIntItem(tr("Widget custom commands: position"), &SetupConfig->MainMenuWidgetCommandPosition));
+        }
+    }
+
+    if( ItemLastSel >= 0 ) {
+        SetCurrent(Get(ItemLastSel));
+        ItemLastSel = -1;
+    }
+
+    Display();
+}
+
+eOSState cFlatSetupMMWidget::ProcessKey(eKeys Key) {
+    eOSState state = cOsdMenu::ProcessKey(Key);
+    if (state == osUnknown) {
+        switch (Key) {
+            case kOk:
+                return osBack;
+            default:
+                break;
+        }
+    }
+    if( Key == kLeft || Key == kRight ) {
+        const char* ItemText = Get(Current())->Text();
+        if( strstr(ItemText, tr("Enable main menu widgets")) != NULL ||
+            strstr(ItemText, tr("Widget weather: enable")) != NULL ||
+            strstr(ItemText, tr("Widget DVB devices: enable")) != NULL ||
+            strstr(ItemText, tr("Widget active timer: enable")) != NULL ||
+            strstr(ItemText, tr("Widget last recordings: enable")) != NULL ||
+            strstr(ItemText, tr("Widget timer conflicts: enable")) != NULL ||
+            strstr(ItemText, tr("Widget system information: enable")) != NULL ||
+            strstr(ItemText, tr("Widget system updates: enable")) != NULL ||
+            strstr(ItemText, tr("Widget temperatures: enable")) != NULL ||
+            strstr(ItemText, tr("Widget custom commands: enable")) != NULL
+        ) {
+            ItemLastSel = Current();
+            Setup();
+        }
+    }
+    return state;
+}
diff --git a/setup.h b/setup.h
new file mode 100644
index 0000000..042a62c
--- /dev/null
+++ b/setup.h
@@ -0,0 +1,98 @@
+#pragma once
+
+#include <vdr/menu.h>
+#include <vdr/tools.h>
+#include "config.h"
+#include "services/scraper2vdr.h"
+
+class cFlatSetup : public cMenuSetupPage {
+    public:
+        cFlatSetup(void);
+        virtual ~cFlatSetup();
+    private:
+        cFlatConfig SetupConfig;
+
+        int ItemLastSel;
+        void Setup(void);
+    protected:
+        virtual void Store(void);
+        virtual eOSState ProcessKey(eKeys Key);
+};
+
+class cMenuSetupSubMenu : public cOsdMenu {
+    protected:
+        cFlatConfig *SetupConfig;
+        virtual void Setup(void) = 0;
+        cOsdItem *InfoItem(const char *label, const char *value);
+        int ItemLastSel;
+    public:
+        cMenuSetupSubMenu(const char *Title, cFlatConfig *data);
+};
+
+class cFlatSetupGeneral : public cMenuSetupSubMenu {
+    private:
+    protected:
+        void Setup(void);
+        void SaveCurrentSettings(void);
+        void LoadConfigFile(void);
+        bool SetupParse(const char *Name, const char *Value);
+    public:
+        cFlatSetupGeneral(cFlatConfig *data);
+        virtual eOSState ProcessKey(eKeys Key);
+};
+
+class cFlatSetupChannelInfo : public cMenuSetupSubMenu {
+    protected:
+        void Setup(void);
+    public:
+        cFlatSetupChannelInfo(cFlatConfig *data);
+        virtual eOSState ProcessKey(eKeys Key);
+};
+
+class cFlatSetupMenu : public cMenuSetupSubMenu {
+    protected:
+        void Setup(void);
+    public:
+        cFlatSetupMenu(cFlatConfig *data);
+        virtual eOSState ProcessKey(eKeys Key);
+};
+
+class cFlatSetupReplay : public cMenuSetupSubMenu {
+    protected:
+        void Setup(void);
+    public:
+        cFlatSetupReplay(cFlatConfig *data);
+        virtual eOSState ProcessKey(eKeys Key);
+};
+
+class cFlatSetupVolume : public cMenuSetupSubMenu {
+    protected:
+        void Setup(void);
+    public:
+        cFlatSetupVolume(cFlatConfig *data);
+        virtual eOSState ProcessKey(eKeys Key);
+};
+
+class cFlatSetupTracks : public cMenuSetupSubMenu {
+    protected:
+        void Setup(void);
+    public:
+        cFlatSetupTracks(cFlatConfig *data);
+        virtual eOSState ProcessKey(eKeys Key);
+};
+
+class cFlatSetupTvsraper : public cMenuSetupSubMenu {
+    protected:
+        void Setup(void);
+    public:
+        cFlatSetupTvsraper(cFlatConfig *data);
+        virtual eOSState ProcessKey(eKeys Key);
+};
+
+class cFlatSetupMMWidget : public cMenuSetupSubMenu {
+    protected:
+        void Setup(void);
+    public:
+        cFlatSetupMMWidget(cFlatConfig *data);
+        virtual eOSState ProcessKey(eKeys Key);
+};
diff --git a/skinflatplus.c b/skinflatplus.c
new file mode 100644
index 0000000..cfd2a6c
--- /dev/null
+++ b/skinflatplus.c
@@ -0,0 +1,140 @@
+/*
+ * skinflat.c: A plugin for the Video Disk Recorder
+ *
+ * See the README file for copyright information and how to reach the author.
+ *
+ * $Id$
+ */
+#include <getopt.h>
+#include <vdr/plugin.h>
+
+#if defined(APIVERSNUM) && APIVERSNUM < 10734
+#error "VDR-1.7.34 API version or greater is required!"
+#endif
+
+#include "flat.h"
+#include "setup.h"
+#include "imageloader.h"
+
+static const char *VERSION        = "0.4.3";
+static const char *DESCRIPTION    = "skin flatplus";
+
+class cPluginFlat : public cPlugin {
+    private:
+        cFlat *flat;
+    public:
+        cPluginFlat(void);
+        virtual ~cPluginFlat();
+        virtual const char *Version(void) { return VERSION; }
+        virtual const char *Description(void) { return DESCRIPTION; }
+        virtual const char *CommandLineHelp(void);
+        virtual bool ProcessArgs(int argc, char *argv[]);
+        virtual bool Initialize(void);
+        virtual bool Start(void);
+        virtual void Stop(void);
+        virtual void Housekeeping(void);
+        virtual void MainThreadHook(void);
+        virtual cString Active(void);
+        virtual time_t WakeupTime(void);
+        virtual const char *MainMenuEntry(void) {return NULL;}
+        virtual cOsdObject *MainMenuAction(void);
+        virtual cMenuSetupPage *SetupMenu(void);
+        virtual bool SetupParse(const char *Name, const char *Value);
+        virtual bool Service(const char *Id, void *Data = NULL);
+        virtual const char **SVDRPHelpPages(void);
+        virtual cString SVDRPCommand(const char *Command, const char *Option, int &ReplyCode);
+};
+
+cPluginFlat::cPluginFlat(void) {
+    flat = NULL;
+}
+
+cPluginFlat::~cPluginFlat() {
+}
+
+const char *cPluginFlat::CommandLineHelp(void) {
+    return "  -l <LOGOPATH>, --logopath=<LOGOPATH>       Set directory where Channel Logos are stored.\n";
+}
+
+bool cPluginFlat::ProcessArgs(int argc, char *argv[]) {
+    // Implement command line argument processing here if applicable.
+    static const struct option long_options[] = {
+        { "logopath", required_argument, NULL, 'l' },
+        { NULL }
+    };
+
+    int c;
+    while ((c = getopt_long(argc, argv, "l:", long_options, NULL)) != -1) {
+        switch (c) {
+            case 'l':
+                Config.SetLogoPath(cString(optarg));
+                break;
+            default:
+                return false;
+        }
+    }
+    return true;
+}
+
+bool cPluginFlat::Initialize(void) {
+    Config.Init();
+    return true;
+}
+
+bool cPluginFlat::Start(void) {
+    if (!cOsdProvider::SupportsTrueColor()) {
+        esyslog("skinflatplus: No TrueColor OSD found! Aborting!");
+        return false;
+    } else
+        dsyslog("skinflatplus: TrueColor OSD found");
+
+    imgCache.Create();
+    imgCache.PreLoadImage();
+
+    flat = new cFlat;
+    return flat;
+}
+
+void cPluginFlat::Stop(void) {
+    imgCache.Clear();
+}
+
+void cPluginFlat::Housekeeping(void) {
+}
+
+void cPluginFlat::MainThreadHook(void) {
+}
+
+cString cPluginFlat::Active(void) {
+    return NULL;
+}
+
+time_t cPluginFlat::WakeupTime(void) {
+    return 0;
+}
+
+cOsdObject *cPluginFlat::MainMenuAction(void) {
+    return NULL;
+}
+
+cMenuSetupPage *cPluginFlat::SetupMenu(void) {
+    return new cFlatSetup();
+}
+
+bool cPluginFlat::SetupParse(const char *Name, const char *Value) {
+    return Config.SetupParse(Name, Value);
+}
+
+bool cPluginFlat::Service(const char *Id, void *Data) {
+    return false;
+}
+
+const char **cPluginFlat::SVDRPHelpPages(void) {
+    return NULL;
+}
+
+cString cPluginFlat::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) {
+    return NULL;
+}
+
+VDRPLUGINCREATOR(cPluginFlat); // Don't touch this!
diff --git a/textscroller.c b/textscroller.c
new file mode 100644
index 0000000..37cf31f
--- /dev/null
+++ b/textscroller.c
@@ -0,0 +1,196 @@
+#include "textscroller.h"
+
+void cTextScroll::SetText(const char *text, cRect position, tColor colorFg, tColor colorBg, cFont *font, tColor colorExtraTextFg) {
+    if( Osd == NULL )
+        return;
+
+    Text = text;
+
+    Font = font;
+    Position = position;
+
+    ColorFg = colorFg; ColorBg = colorBg; ColorExtraTextFg = colorExtraTextFg;
+    cRect drawPort(0, 0, font->Width(Text.c_str()), Position.Height());
+
+    if( Osd && Pixmap )
+        Osd->DestroyPixmap(Pixmap);
+
+    Pixmap = Osd->CreatePixmap(Layer, Position, drawPort);
+    dsyslog("skinflatplus: TextScrollerPixmap left: %d top: %d width: %d height: %d", Position.Left(), Position.Top(), Position.Width(), Position.Height());
+    dsyslog("skinflatplus: TextScrollerPixmap drawPort left: %d top: %d width: %d height: %d", drawPort.Left(), drawPort.Top(), drawPort.Width(), drawPort.Height());
+    Pixmap->Fill( colorBg );
+    Draw();
+}
+
+void cTextScroll::UpdateViewPortWidth(int w) {
+    cRect viewPort = Pixmap->ViewPort();
+    viewPort.SetWidth(viewPort.Width() - w);
+    Pixmap->SetViewPort(viewPort);
+}
+
+void cTextScroll::Reset(void) {
+    if( !Pixmap )
+        return;
+
+    Pixmap->SetDrawPortPoint(cPoint(0, 0));
+    waitSteps = WAITSTEPS;
+}
+
+void cTextScroll::Draw(void) {
+    if( !Pixmap )
+        return;
+
+    if( ColorExtraTextFg ) {
+        std::string tilde = Text;
+        size_t found = tilde.find(" ~ ");
+        size_t found2 = tilde.find("~");
+        if( found != std::string::npos ) {
+            std::string first = tilde.substr(0, found);
+            std::string second = tilde.substr(found +2, tilde.length() );
+
+            Pixmap->DrawText(cPoint(0, 0), first.c_str(), ColorFg, ColorBg, Font);
+            int l = Font->Width( first.c_str() );
+            Pixmap->DrawText(cPoint(l, 0), second.c_str(), ColorExtraTextFg, ColorBg, Font);
+        } else if ( found2 != std::string::npos ) {
+            std::string first = tilde.substr(0, found2);
+            std::string second = tilde.substr(found2 +1, tilde.length() );
+
+            Pixmap->DrawText(cPoint(0, 0), first.c_str(), ColorFg, ColorBg, Font);
+            int l = Font->Width( first.c_str() );
+            l += Font->Width("X");
+            Pixmap->DrawText(cPoint(l, 0), second.c_str(), ColorExtraTextFg, ColorBg, Font);
+        } else
+            Pixmap->DrawText(cPoint(0, 0), Text.c_str(), ColorFg, ColorBg, Font);
+    } else {
+        Pixmap->DrawText(cPoint(0, 0), Text.c_str(), ColorFg, ColorBg, Font);
+    }
+}
+
+void cTextScroll::DoStep(void) {
+    if( !Pixmap )
+        return;
+
+    // wait at the beginning for better read
+    if( waitSteps > 0 ) {
+        waitSteps--;
+        return;
+    }
+    // wait after return to the front
+    if( ResetX ) {
+        ResetX = false;
+        Pixmap->SetDrawPortPoint(cPoint(0, 0));
+        waitSteps = WAITSTEPS;
+        return;
+    }
+
+    int drawPortX = Pixmap->DrawPort().X();
+
+    if( isReserveStep )
+        drawPortX += PixelsPerStep;
+    else
+        drawPortX -= PixelsPerStep;
+
+    int maxX = Pixmap->DrawPort().Width() - Pixmap->ViewPort().Width();
+    maxX *= -1;
+
+    if( ScrollType == 0 ) {
+        if( drawPortX <= maxX ) {
+            drawPortX += PixelsPerStep;
+            ResetX = true;
+            waitSteps = WAITSTEPS;
+        }
+    } else if( ScrollType == 1 ) {
+        if( drawPortX <= maxX ) {
+            isReserveStep = true;
+            waitSteps = WAITSTEPS;
+        } else if( drawPortX > 0 ) {
+            isReserveStep = false;
+            waitSteps = WAITSTEPS;
+        }
+    }
+
+    Pixmap->SetDrawPortPoint(cPoint(drawPortX, 0));
+}
+
+cTextScrollers::cTextScrollers() {
+    Layer = 2;
+}
+
+cTextScrollers::~cTextScrollers() {
+}
+
+void cTextScrollers::Clear(void) {
+    Cancel(-1);
+    while( Active() )
+        cCondWait::SleepMs(10);
+
+    std::vector<cTextScroll *>::iterator it;
+    for( it = Scrollers.begin(); it != Scrollers.end(); it++) {
+        delete *it;
+    }
+
+    Scrollers.clear();
+}
+
+void cTextScrollers::AddScroller(const char *text, cRect position, tColor colorFg, tColor colorBg, cFont *font, tColor ColorExtraTextFg) {
+    Cancel(-1);
+    while( Active() )
+        cCondWait::SleepMs(10);
+
+    Scrollers.push_back( new cTextScroll(Osd, scrollType, scrollStep, (int)((double)WAITDELAY / (double)scrollDelay), Layer) );
+    Scrollers.back()->SetText(text, position, colorFg, colorBg, font, ColorExtraTextFg);
+
+    StartScrolling();
+}
+
+void cTextScrollers::UpdateViewPortWidth(int w) {
+    std::vector<cTextScroll *>::iterator it;
+    for( it = Scrollers.begin(); it != Scrollers.end(); it++) {
+        cPixmap::Lock();
+        (*it)->UpdateViewPortWidth(w);
+        cPixmap::Unlock();
+    }
+}
+
+void cTextScrollers::StartScrolling(void) {
+    if( !Running() && Scrollers.size() > 0 ) {
+        Start();
+    }
+}
+
+void cTextScrollers::Action(void) {
+    // wait 1 second so the osd is finished
+    for(int i = 0; i < 100 && Running(); i++ ) {
+        cCondWait::SleepMs(10);
+    }
+
+    if( !Running() )
+        return;
+
+    std::vector<cTextScroll *>::iterator it;
+    for( it = Scrollers.begin(); it != Scrollers.end(); it++) {
+        if( !Running() )
+            return;
+        cPixmap::Lock();
+        (*it)->Reset();
+        cPixmap::Unlock();
+    }
+
+    while( Running() ) {
+        if (Running())
+            cCondWait::SleepMs(scrollDelay);
+
+        std::vector<cTextScroll *>::iterator it;
+        for( it = Scrollers.begin(); it != Scrollers.end(); it++) {
+            if( !Running() )
+                return;
+            cPixmap::Lock();
+            (*it)->DoStep();
+            cPixmap::Unlock();
+        }
+
+        if( Running() )
+            Osd->Flush();
+    }
+}
+
diff --git a/textscroller.h b/textscroller.h
new file mode 100644
index 0000000..f3cab67
--- /dev/null
+++ b/textscroller.h
@@ -0,0 +1,90 @@
+#pragma once
+
+#include <list>
+#include "flat.h"
+#include <string.h>
+#include <vdr/thread.h>
+
+#define WAITDELAY 1000 // in ms
+
+class cTextScroll
+{
+private:
+    cRect Position;
+
+    tColor ColorFg, ColorExtraTextFg, ColorBg;
+    std::string Text;
+    cFont *Font;
+    cPixmap *Pixmap;
+    cOsd *Osd;
+    int Layer;
+    int PixelsPerStep;
+    int WAITSTEPS, waitSteps;
+    bool isReserveStep;
+    bool ResetX;
+    int ScrollType;
+public:
+    cTextScroll(cOsd *osd, int type, int pixels, int waitsteps, int layer) {
+        Font = NULL;
+        Pixmap = NULL;
+        Osd = osd;
+        Layer = layer;
+        PixelsPerStep = pixels;
+        ScrollType = type;
+        isReserveStep = false;
+        WAITSTEPS = waitsteps;
+        ResetX = false;
+    }
+    cTextScroll(cOsd *osd, int type, int pixels, int waitsteps) {
+        Font = NULL;
+        Pixmap = NULL;
+        Osd = osd;
+        Layer = 2;
+        PixelsPerStep = pixels;
+        ScrollType = type;
+        isReserveStep = false;
+        WAITSTEPS = waitsteps;
+        ResetX = false;
+    }
+
+    ~cTextScroll() {
+        if( Pixmap ) {
+            Osd->DestroyPixmap(Pixmap);
+            Pixmap = NULL;
+        }
+    }
+
+    void UpdateViewPortWidth(int w);
+    void Reset(void);
+
+    void SetText(const char *text, cRect position, tColor colorFg, tColor colorBg, cFont *font, tColor ColorExtraTextFg = 0);
+    void DoStep(void);
+    void Draw(void);
+
+};
+
+class cTextScrollers : public cThread
+{
+private:
+    std::vector<cTextScroll *> Scrollers;
+
+    cOsd *Osd;
+    int scrollStep, scrollDelay;
+    int scrollType;
+    int Layer;
+    virtual void Action(void);
+    void StartScrolling(void);
+public:
+    cTextScrollers();
+    ~cTextScrollers();
+
+    void Clear(void);
+    void SetOsd(cOsd *osd) { Osd = osd;}
+    void SetPixmapLayer(int layer) { Layer = layer; }
+    void SetScrollStep(int step) { scrollStep = step; }
+    void SetScrollDelay(int delay) { scrollDelay = delay; }
+    void SetScrollType(int type) { scrollType = type; }
+    void AddScroller(const char *text, cRect position, tColor colorFg, tColor colorBg, cFont *font, tColor ColorExtraTextFg = 0);
+    void UpdateViewPortWidth(int w);
+    bool isActive(void) { return Active(); }
+};
diff --git a/themes/flatPlus-MVBeige.theme b/themes/flatPlus-MVBeige.theme
new file mode 100644
index 0000000..0e78815
--- /dev/null
+++ b/themes/flatPlus-MVBeige.theme
@@ -0,0 +1,118 @@
+Description = MV Beige
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFCCA550
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFCCA550
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFCCA550
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFCCA550
+clrItemCurrentBg = E0CCA550
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFCCA550
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFCCA550
+clrMenuEventTitleLine = FFEFC873
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFCCA550
+clrMenuRecTitleLine = FFEFC873
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5CCA550
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1CCA550
+clrMenuItemCurrentBorderBg = E1CCA550
+clrMenuItemExtraTextFont = FFCCA550
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFCCA550
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFCCA550
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFCCA550
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0CCA550
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1CCA550
+clrTrackItemCurrentBorderBg = E1CCA550
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFCCA550
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVBerry.theme b/themes/flatPlus-MVBerry.theme
new file mode 100644
index 0000000..1c4d372
--- /dev/null
+++ b/themes/flatPlus-MVBerry.theme
@@ -0,0 +1,118 @@
+Description = MV Berry
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFA61D4D
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFA61D4D
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFA61D4D
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFA61D4D
+clrItemCurrentBg = E0A61D4D
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFA61D4D
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFA61D4D
+clrMenuEventTitleLine = FFC94070
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFA61D4D
+clrMenuRecTitleLine = FFC94070
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5A61D4D
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1A61D4D
+clrMenuItemCurrentBorderBg = E1A61D4D
+clrMenuItemExtraTextFont = FFA61D4D
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFA61D4D
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFA61D4D
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFA61D4D
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0A61D4D
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1A61D4D
+clrTrackItemCurrentBorderBg = E1A61D4D
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFA61D4D
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVBlood.theme b/themes/flatPlus-MVBlood.theme
new file mode 100644
index 0000000..21e82b4
--- /dev/null
+++ b/themes/flatPlus-MVBlood.theme
@@ -0,0 +1,118 @@
+Description = MV Blood
+clrTopBarBg = C5221111
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF911D10
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5221111
+clrTopBarBorderFg = C5221111
+clrTopBarBorderBg = C5221111
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5221111
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5221111
+clrButtonBg = C5221111
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5221111
+clrButtonBorderBg = C5221111
+clrMessageBg = C5221111
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5221111
+clrMessageBorderBg = C5221111
+clrChannelBg = C5221111
+clrChannelFontTitle = FF911D10
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF911D10
+clrChannelProgressBg = C5221111
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5221111
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5221111
+clrChannelBorderFg = C5221111
+clrChannelBorderBg = C5221111
+clrChannelEPGBorderFg = C5221111
+clrChannelEPGBorderBg = C5221111
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5221111
+clrItemBg = C5221111
+clrItemFont = FF911D10
+clrItemCurrentBg = E0911D10
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5221111
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF911D10
+clrScrollbarBg = C5221111
+clrMenuEventBg = C5221111
+clrMenuEventFontTitle = FF911D10
+clrMenuEventTitleLine = FFB44033
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5221111
+clrMenuRecFontTitle = FF911D10
+clrMenuRecTitleLine = FFB44033
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5221111
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5221111
+clrMenuContentHeadBorderBg = C5221111
+clrMenuContentBorderFg = C5221111
+clrMenuContentBorderBg = C5221111
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5221111
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5911D10
+clrMenuItemBorderFg = C5221111
+clrMenuItemBorderBg = C5221111
+clrMenuItemSelableBorderFg = C5221111
+clrMenuItemSelableBorderBg = C5221111
+clrMenuItemCurrentBorderFg = E1911D10
+clrMenuItemCurrentBorderBg = E1911D10
+clrMenuItemExtraTextFont = FF911D10
+clrMenuItemExtraTextCurrentFont = FF221111
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5221111
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF911D10
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF911D10
+clrReplayProgressBg = C5221111
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF911D10
+clrReplayBorderFg = C5221111
+clrReplayBorderBg = C5221111
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5221111
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5221111
+clrTrackItemSelableBorderBg = C5221111
+clrTrackItemCurrentBg = E0911D10
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1911D10
+clrTrackItemCurrentBorderBg = E1911D10
+clrVolumeBg = C5221111
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF911D10
+clrVolumeProgressBg = C5221111
+clrVolumeBorderFg = C5221111
+clrVolumeBorderBg = C5221111
diff --git a/themes/flatPlus-MVBlue.theme b/themes/flatPlus-MVBlue.theme
new file mode 100644
index 0000000..b4f2aad
--- /dev/null
+++ b/themes/flatPlus-MVBlue.theme
@@ -0,0 +1,118 @@
+Description = MV Blue
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF0050EF
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF0050EF
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF0050EF
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF0050EF
+clrItemCurrentBg = E00050EF
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF0050EF
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF0050EF
+clrMenuEventTitleLine = FF1060FF
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF0050EF
+clrMenuRecTitleLine = FF1060FF
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C50050EF
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E10050EF
+clrMenuItemCurrentBorderBg = E10050EF
+clrMenuItemExtraTextFont = FF0050EF
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF0050EF
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF0050EF
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF0050EF
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E00050EF
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E10050EF
+clrTrackItemCurrentBorderBg = E10050EF
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF0050EF
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVCappuchino.theme b/themes/flatPlus-MVCappuchino.theme
new file mode 100644
index 0000000..6ebb9c7
--- /dev/null
+++ b/themes/flatPlus-MVCappuchino.theme
@@ -0,0 +1,118 @@
+Description = MV Cappuchino
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF87794E
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF87794E
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF87794E
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF87794E
+clrItemCurrentBg = E087794E
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF87794E
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF87794E
+clrMenuEventTitleLine = FFAA9C71
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF87794E
+clrMenuRecTitleLine = FFAA9C71
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C587794E
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E187794E
+clrMenuItemCurrentBorderBg = E187794E
+clrMenuItemExtraTextFont = FF87794E
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF87794E
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF87794E
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF87794E
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E087794E
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E187794E
+clrTrackItemCurrentBorderBg = E187794E
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF87794E
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVChocolate.theme b/themes/flatPlus-MVChocolate.theme
new file mode 100644
index 0000000..ac48160
--- /dev/null
+++ b/themes/flatPlus-MVChocolate.theme
@@ -0,0 +1,118 @@
+Description = MV Chocolate
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF825A2C
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF825A2C
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF825A2C
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF825A2C
+clrItemCurrentBg = E0825A2C
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF825A2C
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF825A2C
+clrMenuEventTitleLine = FFA57D4F
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF825A2C
+clrMenuRecTitleLine = FFA57D4F
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5825A2C
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1825A2C
+clrMenuItemCurrentBorderBg = E1825A2C
+clrMenuItemExtraTextFont = FF825A2C
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF825A2C
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF825A2C
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF825A2C
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0825A2C
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1825A2C
+clrTrackItemCurrentBorderBg = E1825A2C
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF825A2C
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVCyan.theme b/themes/flatPlus-MVCyan.theme
new file mode 100644
index 0000000..8bcbd52
--- /dev/null
+++ b/themes/flatPlus-MVCyan.theme
@@ -0,0 +1,118 @@
+Description = MV Cyan
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF149BAF
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF149BAF
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF149BAF
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF149BAF
+clrItemCurrentBg = E0149BAF
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF149BAF
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF149BAF
+clrMenuEventTitleLine = FF37BED2
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF149BAF
+clrMenuRecTitleLine = FF37BED2
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5149BAF
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1149BAF
+clrMenuItemCurrentBorderBg = E1149BAF
+clrMenuItemExtraTextFont = FF149BAF
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF149BAF
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF149BAF
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF149BAF
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0149BAF
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1149BAF
+clrTrackItemCurrentBorderBg = E1149BAF
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF149BAF
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVDeepBlue.theme b/themes/flatPlus-MVDeepBlue.theme
new file mode 100644
index 0000000..98fcaab
--- /dev/null
+++ b/themes/flatPlus-MVDeepBlue.theme
@@ -0,0 +1,118 @@
+Description = MV DeepBlue
+clrTopBarBg = C5101030
+clrTopBarFont = FFDDDDEE
+clrTopBarTimeFont = FF0545DF
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101030
+clrTopBarBorderFg = C5101030
+clrTopBarBorderBg = C5101030
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101030
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101030
+clrButtonBg = C5101030
+clrButtonFont = FFDDDDEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101030
+clrButtonBorderBg = C5101030
+clrMessageBg = C5101030
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101030
+clrMessageBorderBg = C5101030
+clrChannelBg = C5101030
+clrChannelFontTitle = FF0545DF
+clrChannelFontEpg = FFDDDDEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF0545DF
+clrChannelProgressBg = C5101030
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101030
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101030
+clrChannelBorderFg = C5101030
+clrChannelBorderBg = C5101030
+clrChannelEPGBorderFg = C5101030
+clrChannelEPGBorderBg = C5101030
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101030
+clrItemBg = C5101030
+clrItemFont = FF0545DF
+clrItemCurrentBg = E00545DF
+clrItemCurrentFont = FFDDDDEE
+clrItemSelableBg = C5101030
+clrItemSelableFont = FFDDDDEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF0545DF
+clrScrollbarBg = C5101030
+clrMenuEventBg = C5101030
+clrMenuEventFontTitle = FF0545DF
+clrMenuEventTitleLine = FF2565FF
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101030
+clrMenuRecFontTitle = FF0545DF
+clrMenuRecTitleLine = FF2565FF
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101030
+clrMenuTextFont = FFDDDDEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101030
+clrMenuContentHeadBorderBg = C5101030
+clrMenuContentBorderFg = C5101030
+clrMenuContentBorderBg = C5101030
+clrMenuItemProgressFg = FFDDDDEE
+clrMenuItemProgressBarFg = FFDDDDEE
+clrMenuItemProgressBg = C5101030
+clrMenuItemCurProgressFg = FFDDDDEE
+clrMenuItemCurProgressBarFg = FFDDDDEE
+clrMenuItemCurProgressBg = C50545DF
+clrMenuItemBorderFg = C5101030
+clrMenuItemBorderBg = C5101030
+clrMenuItemSelableBorderFg = C5101030
+clrMenuItemSelableBorderBg = C5101030
+clrMenuItemCurrentBorderFg = E10545DF
+clrMenuItemCurrentBorderBg = E10545DF
+clrMenuItemExtraTextFont = FF0545DF
+clrMenuItemExtraTextCurrentFont = FF101030
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101030
+clrReplayFont = FFDDDDEE
+clrReplayFontSpeed = FF0545DF
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF0545DF
+clrReplayProgressBg = C5101030
+clrReplayMarkFg = FFDDDDEE
+clrReplayMarkCurrentFg = FF0545DF
+clrReplayBorderFg = C5101030
+clrReplayBorderBg = C5101030
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFDDDDEE
+clrTrackItemSelableBg = C5101030
+clrTrackItemSelableFont = FFDDDDEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101030
+clrTrackItemSelableBorderBg = C5101030
+clrTrackItemCurrentBg = E00545DF
+clrTrackItemCurrentFont = FFDDDDEE
+clrTrackItemCurrentBorderFg = E10545DF
+clrTrackItemCurrentBorderBg = E10545DF
+clrVolumeBg = C5101030
+clrVolumeFont = FFDDDDEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF0545DF
+clrVolumeProgressBg = C5101030
+clrVolumeBorderFg = C5101030
+clrVolumeBorderBg = C5101030
diff --git a/themes/flatPlus-MVFog.theme b/themes/flatPlus-MVFog.theme
new file mode 100644
index 0000000..e4c5f78
--- /dev/null
+++ b/themes/flatPlus-MVFog.theme
@@ -0,0 +1,118 @@
+Description = MV Fog
+clrTopBarBg = A0DEDEDE
+clrTopBarFont = FF445867
+clrTopBarTimeFont = FFDEDEDE
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = A0DEDEDE
+clrTopBarBorderFg = C5DEDEDE
+clrTopBarBorderBg = A0DEDEDE
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = A0DEDEDE
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = A0DEDEDE
+clrButtonBg = A0DEDEDE
+clrButtonFont = FF445867
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5DEDEDE
+clrButtonBorderBg = A0DEDEDE
+clrMessageBg = A0DEDEDE
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5DEDEDE
+clrMessageBorderBg = A0DEDEDE
+clrChannelBg = A0DEDEDE
+clrChannelFontTitle = FFDEDEDE
+clrChannelFontEpg = FF445867
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFDEDEDE
+clrChannelProgressBg = A0DEDEDE
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = A0DEDEDE
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = A0DEDEDE
+clrChannelBorderFg = C5DEDEDE
+clrChannelBorderBg = A0DEDEDE
+clrChannelEPGBorderFg = C5DEDEDE
+clrChannelEPGBorderBg = A0DEDEDE
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = A0DEDEDE
+clrItemBg = A0DEDEDE
+clrItemFont = FFDEDEDE
+clrItemCurrentBg = E0DEDEDE
+clrItemCurrentFont = FFDEDEDE
+clrItemSelableBg = A0DEDEDE
+clrItemSelableFont = FF445867
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFDEDEDE
+clrScrollbarBg = A0DEDEDE
+clrMenuEventBg = A0DEDEDE
+clrMenuEventFontTitle = FF111111
+clrMenuEventTitleLine = FF343434
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = A0DEDEDE
+clrMenuRecFontTitle = FF111111
+clrMenuRecTitleLine = FF343434
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = A0DEDEDE
+clrMenuTextFont = FF445867
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5DEDEDE
+clrMenuContentHeadBorderBg = A0DEDEDE
+clrMenuContentBorderFg = C5DEDEDE
+clrMenuContentBorderBg = A0DEDEDE
+clrMenuItemProgressFg = FF445867
+clrMenuItemProgressBarFg = FF445867
+clrMenuItemProgressBg = A0DEDEDE
+clrMenuItemCurProgressFg = FF445867
+clrMenuItemCurProgressBarFg = FF445867
+clrMenuItemCurProgressBg = A0DEDEDE
+clrMenuItemBorderFg = C5DEDEDE
+clrMenuItemBorderBg = A0DEDEDE
+clrMenuItemSelableBorderFg = C5DEDEDE
+clrMenuItemSelableBorderBg = A0DEDEDE
+clrMenuItemCurrentBorderFg = EDEDEDE1
+clrMenuItemCurrentBorderBg = EDEDEDE1
+clrMenuItemExtraTextFont = FFDEDEDE
+clrMenuItemExtraTextCurrentFont = FFDEDEDE
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = A0DEDEDE
+clrReplayFont = FF445867
+clrReplayFontSpeed = FFDEDEDE
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFDEDEDE
+clrReplayProgressBg = A0DEDEDE
+clrReplayMarkFg = FF445867
+clrReplayMarkCurrentFg = FFDEDEDE
+clrReplayBorderFg = C5DEDEDE
+clrReplayBorderBg = A0DEDEDE
+clrTrackItemBg = A0555555
+clrTrackItemFont = FF445867
+clrTrackItemSelableBg = A0DEDEDE
+clrTrackItemSelableFont = FF445867
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = A0555555
+clrTrackItemSelableBorderFg = C5DEDEDE
+clrTrackItemSelableBorderBg = A0DEDEDE
+clrTrackItemCurrentBg = E0DEDEDE
+clrTrackItemCurrentFont = FF445867
+clrTrackItemCurrentBorderFg = EDEDEDE1
+clrTrackItemCurrentBorderBg = EDEDEDE1
+clrVolumeBg = A0DEDEDE
+clrVolumeFont = FF445867
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFDEDEDE
+clrVolumeProgressBg = A0DEDEDE
+clrVolumeBorderFg = C5DEDEDE
+clrVolumeBorderBg = A0DEDEDE
diff --git a/themes/flatPlus-MVGrapefruit.theme b/themes/flatPlus-MVGrapefruit.theme
new file mode 100644
index 0000000..e160ebd
--- /dev/null
+++ b/themes/flatPlus-MVGrapefruit.theme
@@ -0,0 +1,118 @@
+Description = MV Grapefruit
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFC3461B
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFC3461B
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFC3461B
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFC3461B
+clrItemCurrentBg = E0C3461B
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFC3461B
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFC3461B
+clrMenuEventTitleLine = FFE6693E
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFC3461B
+clrMenuRecTitleLine = FFE6693E
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5C3461B
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1C3461B
+clrMenuItemCurrentBorderBg = E1C3461B
+clrMenuItemExtraTextFont = FFC3461B
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFC3461B
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFC3461B
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFC3461B
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0C3461B
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1C3461B
+clrTrackItemCurrentBorderBg = E1C3461B
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFC3461B
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVGreen.theme b/themes/flatPlus-MVGreen.theme
new file mode 100644
index 0000000..29516de
--- /dev/null
+++ b/themes/flatPlus-MVGreen.theme
@@ -0,0 +1,118 @@
+Description = MV Green
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF008A00
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF008A00
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF008A00
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF008A00
+clrItemCurrentBg = E0008A00
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF008A00
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF018A01
+clrMenuEventTitleLine = FF23C323
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF018A01
+clrMenuRecTitleLine = FF23C323
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5008A00
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1008A00
+clrMenuItemCurrentBorderBg = E1008A00
+clrMenuItemExtraTextFont = FF008B00
+clrMenuItemExtraTextCurrentFont = FF111111
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF008A00
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF008A00
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF008A00
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0008A00
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1008A00
+clrTrackItemCurrentBorderBg = E1008A00
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF008A00
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVGreen2.theme b/themes/flatPlus-MVGreen2.theme
new file mode 100644
index 0000000..6673008
--- /dev/null
+++ b/themes/flatPlus-MVGreen2.theme
@@ -0,0 +1,118 @@
+Description = MV Green 2
+clrTopBarBg = C5112211
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF008A00
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5112211
+clrTopBarBorderFg = C5112211
+clrTopBarBorderBg = C5112211
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5112211
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5112211
+clrButtonBg = C5112211
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5112211
+clrButtonBorderBg = C5112211
+clrMessageBg = C5112211
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5112211
+clrMessageBorderBg = C5112211
+clrChannelBg = C5112211
+clrChannelFontTitle = FF008A00
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF008A00
+clrChannelProgressBg = C5112211
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5112211
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5112211
+clrChannelBorderFg = C5112211
+clrChannelBorderBg = C5112211
+clrChannelEPGBorderFg = C5112211
+clrChannelEPGBorderBg = C5112211
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5112211
+clrItemBg = C5112211
+clrItemFont = FF008A00
+clrItemCurrentBg = E0008A00
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5112211
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF008A00
+clrScrollbarBg = C5112211
+clrMenuEventBg = C5112211
+clrMenuEventFontTitle = FF008A00
+clrMenuEventTitleLine = FF23AD23
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5112211
+clrMenuRecFontTitle = FF008A00
+clrMenuRecTitleLine = FF23AD23
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5112211
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5112211
+clrMenuContentHeadBorderBg = C5112211
+clrMenuContentBorderFg = C5112211
+clrMenuContentBorderBg = C5112211
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5112211
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5008A00
+clrMenuItemBorderFg = C5112211
+clrMenuItemBorderBg = C5112211
+clrMenuItemSelableBorderFg = C5112211
+clrMenuItemSelableBorderBg = C5112211
+clrMenuItemCurrentBorderFg = E1008A00
+clrMenuItemCurrentBorderBg = E1008A00
+clrMenuItemExtraTextFont = FF008A00
+clrMenuItemExtraTextCurrentFont = FF112211
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5112211
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF008A00
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF008A00
+clrReplayProgressBg = C5112211
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF008A00
+clrReplayBorderFg = C5112211
+clrReplayBorderBg = C5112211
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5112211
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5112211
+clrTrackItemSelableBorderBg = C5112211
+clrTrackItemCurrentBg = E0008A00
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1008A00
+clrTrackItemCurrentBorderBg = E1008A00
+clrVolumeBg = C5112211
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF008A00
+clrVolumeProgressBg = C5112211
+clrVolumeBorderFg = C5112211
+clrVolumeBorderBg = C5112211
diff --git a/themes/flatPlus-MVGrey.theme b/themes/flatPlus-MVGrey.theme
new file mode 100644
index 0000000..30506e5
--- /dev/null
+++ b/themes/flatPlus-MVGrey.theme
@@ -0,0 +1,118 @@
+Description = MV Grey
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF647687
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF647687
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF647687
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF647687
+clrItemCurrentBg = E0647687
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF647687
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF647687
+clrMenuEventTitleLine = FF8799AA
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF647687
+clrMenuRecTitleLine = FF8799AA
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5647687
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1647687
+clrMenuItemCurrentBorderBg = E1647687
+clrMenuItemExtraTextFont = FF647687
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF647687
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF647687
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF647687
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0647687
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1647687
+clrTrackItemCurrentBorderBg = E1647687
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF647687
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVHelloKitty.theme b/themes/flatPlus-MVHelloKitty.theme
new file mode 100644
index 0000000..c68da83
--- /dev/null
+++ b/themes/flatPlus-MVHelloKitty.theme
@@ -0,0 +1,118 @@
+Description = MV HelloKitty
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFF472D0
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFF472D0
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFF472D0
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFF472D0
+clrItemCurrentBg = E0F472D0
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFF472D0
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFF472D0
+clrMenuEventTitleLine = FFFF7DDB
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFF472D0
+clrMenuRecTitleLine = FFFF7DDB
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5F472D0
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1F472D0
+clrMenuItemCurrentBorderBg = E1F472D0
+clrMenuItemExtraTextFont = FFF472D0
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFF472D0
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFF472D0
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFF472D0
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0F472D0
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1F472D0
+clrTrackItemCurrentBorderBg = E1F472D0
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFF472D0
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVHelloKitty2.theme b/themes/flatPlus-MVHelloKitty2.theme
new file mode 100644
index 0000000..9dcc59c
--- /dev/null
+++ b/themes/flatPlus-MVHelloKitty2.theme
@@ -0,0 +1,118 @@
+Description = MV HelloKitty 2
+clrTopBarBg = C5FF80F0
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFF472D0
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5FF80F0
+clrTopBarBorderFg = C5FF80F0
+clrTopBarBorderBg = C5FF80F0
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5FF80F0
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5FF80F0
+clrButtonBg = C5FF80F0
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5FF80F0
+clrButtonBorderBg = C5FF80F0
+clrMessageBg = C5FF80F0
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5FF80F0
+clrMessageBorderBg = C5FF80F0
+clrChannelBg = C5FF80F0
+clrChannelFontTitle = FFF472D0
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFF472D0
+clrChannelProgressBg = C5FF80F0
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5FF80F0
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5FF80F0
+clrChannelBorderFg = C5FF80F0
+clrChannelBorderBg = C5FF80F0
+clrChannelEPGBorderFg = C5FF80F0
+clrChannelEPGBorderBg = C5FF80F0
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5FF80F0
+clrItemBg = C5FF80F0
+clrItemFont = FFF472D0
+clrItemCurrentBg = E0F472D0
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5FF80F0
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFF472D0
+clrScrollbarBg = C5FF80F0
+clrMenuEventBg = C5FF80F0
+clrMenuEventFontTitle = FFF472D0
+clrMenuEventTitleLine = FFFF7DDB
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5FF80F0
+clrMenuRecFontTitle = FFF472D0
+clrMenuRecTitleLine = FFFF7DDB
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5FF80F0
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5FF80F0
+clrMenuContentHeadBorderBg = C5FF80F0
+clrMenuContentBorderFg = C5FF80F0
+clrMenuContentBorderBg = C5FF80F0
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5FF80F0
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5F472D0
+clrMenuItemBorderFg = C5FF80F0
+clrMenuItemBorderBg = C5FF80F0
+clrMenuItemSelableBorderFg = C5FF80F0
+clrMenuItemSelableBorderBg = C5FF80F0
+clrMenuItemCurrentBorderFg = E1F472D0
+clrMenuItemCurrentBorderBg = E1F472D0
+clrMenuItemExtraTextFont = FFF472D0
+clrMenuItemExtraTextCurrentFont = FFFF80F0
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5FF80F0
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFF472D0
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFF472D0
+clrReplayProgressBg = C5FF80F0
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFF472D0
+clrReplayBorderFg = C5FF80F0
+clrReplayBorderBg = C5FF80F0
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5FF80F0
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5FF80F0
+clrTrackItemSelableBorderBg = C5FF80F0
+clrTrackItemCurrentBg = E0F472D0
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1F472D0
+clrTrackItemCurrentBorderBg = E1F472D0
+clrVolumeBg = C5FF80F0
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFF472D0
+clrVolumeProgressBg = C5FF80F0
+clrVolumeBorderFg = C5FF80F0
+clrVolumeBorderBg = C5FF80F0
diff --git a/themes/flatPlus-MVIndigo.theme b/themes/flatPlus-MVIndigo.theme
new file mode 100644
index 0000000..ea3dd39
--- /dev/null
+++ b/themes/flatPlus-MVIndigo.theme
@@ -0,0 +1,118 @@
+Description = MV Indigo
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF3F51B5
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF3F51B5
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF3F51B5
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF3F51B5
+clrItemCurrentBg = E03F51B5
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF3F51B5
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF3F51B5
+clrMenuEventTitleLine = FF6274D8
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF3F51B5
+clrMenuRecTitleLine = FF6274D8
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C53F51B5
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E13F51B5
+clrMenuItemCurrentBorderBg = E13F51B5
+clrMenuItemExtraTextFont = FF3F51B5
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF3F51B5
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF3F51B5
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF3F51B5
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E03F51B5
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E13F51B5
+clrTrackItemCurrentBorderBg = E13F51B5
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF3F51B5
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVLightBlue.theme b/themes/flatPlus-MVLightBlue.theme
new file mode 100644
index 0000000..9549758
--- /dev/null
+++ b/themes/flatPlus-MVLightBlue.theme
@@ -0,0 +1,118 @@
+Description = MV LightBlue
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF1BA1E2
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF1BA1E2
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF1BA1E2
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF1BA1E2
+clrItemCurrentBg = E01BA1E2
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF1BA1E2
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF1BA1E2
+clrMenuEventTitleLine = FF38BEFF
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF1BA1E2
+clrMenuRecTitleLine = FF38BEFF
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C51BA1E2
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E11BA1E2
+clrMenuItemCurrentBorderBg = E11BA1E2
+clrMenuItemExtraTextFont = FF1BA1E2
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF1BA1E2
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF1BA1E2
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF1BA1E2
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E01BA1E2
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E11BA1E2
+clrTrackItemCurrentBorderBg = E11BA1E2
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF1BA1E2
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVLightGreen.theme b/themes/flatPlus-MVLightGreen.theme
new file mode 100644
index 0000000..dc69340
--- /dev/null
+++ b/themes/flatPlus-MVLightGreen.theme
@@ -0,0 +1,118 @@
+Description = MV LightGreen
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF70AD11
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF70AD11
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF70AD11
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF70AD11
+clrItemCurrentBg = E070AD11
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF70AD11
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF70AD11
+clrMenuEventTitleLine = FF93D034
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF70AD11
+clrMenuRecTitleLine = FF93D034
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C570AD11
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E170AD11
+clrMenuItemCurrentBorderBg = E170AD11
+clrMenuItemExtraTextFont = FF70AD11
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF70AD11
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF70AD11
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF70AD11
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E070AD11
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E170AD11
+clrTrackItemCurrentBorderBg = E170AD11
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF70AD11
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVMint.theme b/themes/flatPlus-MVMint.theme
new file mode 100644
index 0000000..907bbb3
--- /dev/null
+++ b/themes/flatPlus-MVMint.theme
@@ -0,0 +1,118 @@
+Description = MV Mint
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFA4C400
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFA4C400
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFA4C400
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFA4C400
+clrItemCurrentBg = E0A4C400
+clrItemCurrentFont = FF101010
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFA4C400
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFA4C400
+clrMenuEventTitleLine = FFC7E723
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFA4C400
+clrMenuRecTitleLine = FFC7E723
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5A4C400
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1A4C400
+clrMenuItemCurrentBorderBg = E1A4C400
+clrMenuItemExtraTextFont = FFA4C400
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFA4C400
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFA4C400
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFA4C400
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0A4C400
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1A4C400
+clrTrackItemCurrentBorderBg = E1A4C400
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFA4C400
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVNuts.theme b/themes/flatPlus-MVNuts.theme
new file mode 100644
index 0000000..822d111
--- /dev/null
+++ b/themes/flatPlus-MVNuts.theme
@@ -0,0 +1,118 @@
+Description = MV Nuts
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFBF9217
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFBF9217
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFBF9217
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFBF9217
+clrItemCurrentBg = E0BF9217
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFBF9217
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFBF9217
+clrMenuEventTitleLine = FFE2B53A
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFBF9217
+clrMenuRecTitleLine = FFE2B53A
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5BF9217
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1BF9217
+clrMenuItemCurrentBorderBg = E1BF9217
+clrMenuItemExtraTextFont = FFBF9217
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFBF9217
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFBF9217
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFBF9217
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0BF9217
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1BF9217
+clrTrackItemCurrentBorderBg = E1BF9217
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFBF9217
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVOlive.theme b/themes/flatPlus-MVOlive.theme
new file mode 100644
index 0000000..dd4ff69
--- /dev/null
+++ b/themes/flatPlus-MVOlive.theme
@@ -0,0 +1,118 @@
+Description = MV Olive
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF6D8764
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF6D8764
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF6D8764
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF6D8764
+clrItemCurrentBg = E06D8764
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF6D8764
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF6D8764
+clrMenuEventTitleLine = FF90AA87
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF6D8764
+clrMenuRecTitleLine = FF90AA87
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C56D8764
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E16D8764
+clrMenuItemCurrentBorderBg = E16D8764
+clrMenuItemExtraTextFont = FF6D8764
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF6D8764
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF6D8764
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF6D8764
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E06D8764
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E16D8764
+clrTrackItemCurrentBorderBg = E16D8764
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF6D8764
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVOrange.theme b/themes/flatPlus-MVOrange.theme
new file mode 100644
index 0000000..3a547f9
--- /dev/null
+++ b/themes/flatPlus-MVOrange.theme
@@ -0,0 +1,118 @@
+Description = MV Orange
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFF0A30A
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFF0A30A
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFF0A30A
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFF0A30A
+clrItemCurrentBg = E0F0A30A
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFF0A30A
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFF0A30A
+clrMenuEventTitleLine = FFFFB219
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFF0A30A
+clrMenuRecTitleLine = FFFFB219
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5F0A30A
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1F0A30A
+clrMenuItemCurrentBorderBg = E1F0A30A
+clrMenuItemExtraTextFont = FFF0A30A
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFF0A30A
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFF0A30A
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFF0A30A
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0F0A30A
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1F0A30A
+clrTrackItemCurrentBorderBg = E1F0A30A
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFF0A30A
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVPflaume.theme b/themes/flatPlus-MVPflaume.theme
new file mode 100644
index 0000000..ae1021d
--- /dev/null
+++ b/themes/flatPlus-MVPflaume.theme
@@ -0,0 +1,118 @@
+Description = MV Pflaume
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF6A00FF
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF6A00FF
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF6A00FF
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF6A00FF
+clrItemCurrentBg = E06A00FF
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF6A00FF
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF6A00FF
+clrMenuEventTitleLine = FF6A00FF
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF6A00FF
+clrMenuRecTitleLine = FF6A00FF
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C56A00FF
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E16A00FF
+clrMenuItemCurrentBorderBg = E16A00FF
+clrMenuItemExtraTextFont = FF6A00FF
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF6A00FF
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF6A00FF
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF6A00FF
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E06A00FF
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E16A00FF
+clrTrackItemCurrentBorderBg = E16A00FF
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF6A00FF
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVPumpkin.theme b/themes/flatPlus-MVPumpkin.theme
new file mode 100644
index 0000000..efb322e
--- /dev/null
+++ b/themes/flatPlus-MVPumpkin.theme
@@ -0,0 +1,118 @@
+Description = MV Pumpkin
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFF0A30A
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFF0A30A
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFF0A30A
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFF0A30A
+clrItemCurrentBg = E0F0A30A
+clrItemCurrentFont = FF101010
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFF0A30A
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFF0A30A
+clrMenuEventTitleLine = FFFFB219
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFF0A30A
+clrMenuRecTitleLine = FFFFB219
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5F0A30A
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1F0A30A
+clrMenuItemCurrentBorderBg = E1F0A30A
+clrMenuItemExtraTextFont = FFF0A30A
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFF0A30A
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFF0A30A
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFF0A30A
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0F0A30A
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1F0A30A
+clrTrackItemCurrentBorderBg = E1F0A30A
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFF0A30A
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVPurple.theme b/themes/flatPlus-MVPurple.theme
new file mode 100644
index 0000000..f12ce5f
--- /dev/null
+++ b/themes/flatPlus-MVPurple.theme
@@ -0,0 +1,118 @@
+Description = MV Purple
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF6C0AAB
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF6C0AAB
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF6C0AAB
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF6C0AAB
+clrItemCurrentBg = E06C0AAB
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF6C0AAB
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF6C0AAB
+clrMenuEventTitleLine = FF8F2DCE
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF6C0AAB
+clrMenuRecTitleLine = FF8F2DCE
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C56C0AAB
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E16C0AAB
+clrMenuItemCurrentBorderBg = E16C0AAB
+clrMenuItemExtraTextFont = FF6C0AAB
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF6C0AAB
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF6C0AAB
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF6C0AAB
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E06C0AAB
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E16C0AAB
+clrTrackItemCurrentBorderBg = E16C0AAB
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF6C0AAB
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVPurpleGrey.theme b/themes/flatPlus-MVPurpleGrey.theme
new file mode 100644
index 0000000..f0b25a9
--- /dev/null
+++ b/themes/flatPlus-MVPurpleGrey.theme
@@ -0,0 +1,118 @@
+Description = MV PurpleGrey
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF76608A
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF76608A
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF76608A
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF76608A
+clrItemCurrentBg = E076608A
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF76608A
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF76608A
+clrMenuEventTitleLine = FF9983AD
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF76608A
+clrMenuRecTitleLine = FF9983AD
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C576608A
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E176608A
+clrMenuItemCurrentBorderBg = E176608A
+clrMenuItemExtraTextFont = FF76608A
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF76608A
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF76608A
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF76608A
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E076608A
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E176608A
+clrTrackItemCurrentBorderBg = E176608A
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF76608A
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVRauchglas.theme b/themes/flatPlus-MVRauchglas.theme
new file mode 100644
index 0000000..e872e70
--- /dev/null
+++ b/themes/flatPlus-MVRauchglas.theme
@@ -0,0 +1,118 @@
+Description = MV Rauchglas
+clrTopBarBg = C5200F02
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF825A2C
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5200F02
+clrTopBarBorderFg = C5200F02
+clrTopBarBorderBg = C5200F02
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5200F02
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5200F02
+clrButtonBg = C5200F02
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5200F02
+clrButtonBorderBg = C5200F02
+clrMessageBg = C5200F02
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5200F02
+clrMessageBorderBg = C5200F02
+clrChannelBg = C5200F02
+clrChannelFontTitle = FF825A2C
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF825A2C
+clrChannelProgressBg = C5200F02
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5200F02
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5200F02
+clrChannelBorderFg = C5200F02
+clrChannelBorderBg = C5200F02
+clrChannelEPGBorderFg = C5200F02
+clrChannelEPGBorderBg = C5200F02
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5200F02
+clrItemBg = C5200F02
+clrItemFont = FF825A2C
+clrItemCurrentBg = E0825A2C
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5200F02
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF825A2C
+clrScrollbarBg = C5200F02
+clrMenuEventBg = C5200F02
+clrMenuEventFontTitle = FF825A2C
+clrMenuEventTitleLine = FFA57D4F
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5200F02
+clrMenuRecFontTitle = FF825A2C
+clrMenuRecTitleLine = FFA57D4F
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5200F02
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5200F02
+clrMenuContentHeadBorderBg = C5200F02
+clrMenuContentBorderFg = C5200F02
+clrMenuContentBorderBg = C5200F02
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5200F02
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5825A2C
+clrMenuItemBorderFg = C5200F02
+clrMenuItemBorderBg = C5200F02
+clrMenuItemSelableBorderFg = C5200F02
+clrMenuItemSelableBorderBg = C5200F02
+clrMenuItemCurrentBorderFg = E1825A2C
+clrMenuItemCurrentBorderBg = E1825A2C
+clrMenuItemExtraTextFont = FF825A2C
+clrMenuItemExtraTextCurrentFont = FF200F02
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5200F02
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF825A2C
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF825A2C
+clrReplayProgressBg = C5200F02
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF825A2C
+clrReplayBorderFg = C5200F02
+clrReplayBorderBg = C5200F02
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5200F02
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5200F02
+clrTrackItemSelableBorderBg = C5200F02
+clrTrackItemCurrentBg = E0825A2C
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1825A2C
+clrTrackItemCurrentBorderBg = E1825A2C
+clrVolumeBg = C5200F02
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF825A2C
+clrVolumeProgressBg = C5200F02
+clrVolumeBorderFg = C5200F02
+clrVolumeBorderBg = C5200F02
diff --git a/themes/flatPlus-MVRed.theme b/themes/flatPlus-MVRed.theme
new file mode 100644
index 0000000..d00644f
--- /dev/null
+++ b/themes/flatPlus-MVRed.theme
@@ -0,0 +1,118 @@
+Description = MV Red
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFE51400
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFE51400
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFE51400
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFE51400
+clrItemCurrentBg = E0E51400
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFE51400
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFE51400
+clrMenuEventTitleLine = FFFF2E1A
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFE51400
+clrMenuRecTitleLine = FFFF2E1A
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5E51400
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1E51400
+clrMenuItemCurrentBorderBg = E1E51400
+clrMenuItemExtraTextFont = FFE51400
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFE51400
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFE51400
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFE51400
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E0E51400
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1E51400
+clrTrackItemCurrentBorderBg = E1E51400
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFE51400
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVTerra.theme b/themes/flatPlus-MVTerra.theme
new file mode 100644
index 0000000..5aca9c1
--- /dev/null
+++ b/themes/flatPlus-MVTerra.theme
@@ -0,0 +1,118 @@
+Description = MV Terra
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FF7A3B3F
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FF7A3B3F
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF7A3B3F
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FF7A3B3F
+clrItemCurrentBg = E07A3B3F
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FF7A3B3F
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FF7A3B3F
+clrMenuEventTitleLine = FF9D5E62
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FF7A3B3F
+clrMenuRecTitleLine = FF9D5E62
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C57A3B3F
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E17A3B3F
+clrMenuItemCurrentBorderBg = E17A3B3F
+clrMenuItemExtraTextFont = FF7A3B3F
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF7A3B3F
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF7A3B3F
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF7A3B3F
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = E07A3B3F
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E17A3B3F
+clrTrackItemCurrentBorderBg = E17A3B3F
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF7A3B3F
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVWhite.theme b/themes/flatPlus-MVWhite.theme
new file mode 100644
index 0000000..be7405d
--- /dev/null
+++ b/themes/flatPlus-MVWhite.theme
@@ -0,0 +1,118 @@
+Description = MV White
+clrTopBarBg = C5101010
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFFFFFFF
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5101010
+clrTopBarBorderFg = C5101010
+clrTopBarBorderBg = C5101010
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5101010
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5101010
+clrButtonBg = C5101010
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5101010
+clrButtonBorderBg = C5101010
+clrMessageBg = C5101010
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5101010
+clrMessageBorderBg = C5101010
+clrChannelBg = C5101010
+clrChannelFontTitle = FFFFFFFF
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFFFFFFF
+clrChannelProgressBg = C5101010
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5101010
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5101010
+clrChannelBorderFg = C5101010
+clrChannelBorderBg = C5101010
+clrChannelEPGBorderFg = C5101010
+clrChannelEPGBorderBg = C5101010
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5101010
+clrItemBg = C5101010
+clrItemFont = FFFFFFFF
+clrItemCurrentBg = B0FFFFFF
+clrItemCurrentFont = FF404040
+clrItemSelableBg = C5101010
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFFFFFFF
+clrScrollbarBg = C5101010
+clrMenuEventBg = C5101010
+clrMenuEventFontTitle = FFFFFFFF
+clrMenuEventTitleLine = FFFFFFFF
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5101010
+clrMenuRecFontTitle = FFFFFFFF
+clrMenuRecTitleLine = FFFFFFFF
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5101010
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5101010
+clrMenuContentHeadBorderBg = C5101010
+clrMenuContentBorderFg = C5101010
+clrMenuContentBorderBg = C5101010
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5101010
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5FFFFFF
+clrMenuItemBorderFg = C5101010
+clrMenuItemBorderBg = C5101010
+clrMenuItemSelableBorderFg = C5101010
+clrMenuItemSelableBorderBg = C5101010
+clrMenuItemCurrentBorderFg = E1FFFFFF
+clrMenuItemCurrentBorderBg = E1FFFFFF
+clrMenuItemExtraTextFont = FFFFFFFF
+clrMenuItemExtraTextCurrentFont = FF101010
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5101010
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFFFFFFF
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFFFFFFF
+clrReplayProgressBg = C5101010
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFFFFFFF
+clrReplayBorderFg = C5101010
+clrReplayBorderBg = C5101010
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5101010
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5101010
+clrTrackItemSelableBorderBg = C5101010
+clrTrackItemCurrentBg = B0FFFFFF
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1FFFFFF
+clrTrackItemCurrentBorderBg = E1FFFFFF
+clrVolumeBg = C5101010
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFFFFFFF
+clrVolumeProgressBg = C5101010
+clrVolumeBorderFg = C5101010
+clrVolumeBorderBg = C5101010
diff --git a/themes/flatPlus-MVXMAS.theme b/themes/flatPlus-MVXMAS.theme
new file mode 100644
index 0000000..eb32bb2
--- /dev/null
+++ b/themes/flatPlus-MVXMAS.theme
@@ -0,0 +1,118 @@
+Description = MV XMAS
+clrTopBarBg = C5114511
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFCC1111
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = C5114511
+clrTopBarBorderFg = C5114511
+clrTopBarBorderBg = C5114511
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = C5114511
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = C5114511
+clrButtonBg = C5114511
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C5114511
+clrButtonBorderBg = C5114511
+clrMessageBg = C5114511
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C5114511
+clrMessageBorderBg = C5114511
+clrChannelBg = C5114511
+clrChannelFontTitle = FFCC1111
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFCC1111
+clrChannelProgressBg = C5114511
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = C5114511
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = C5114511
+clrChannelBorderFg = C5114511
+clrChannelBorderBg = C5114511
+clrChannelEPGBorderFg = C5114511
+clrChannelEPGBorderBg = C5114511
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = C5114511
+clrItemBg = C5114511
+clrItemFont = FFCC1111
+clrItemCurrentBg = E0CC1111
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = C5114511
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFCC1111
+clrScrollbarBg = C5114511
+clrMenuEventBg = C5114511
+clrMenuEventFontTitle = FFCC1111
+clrMenuEventTitleLine = FFEF3434
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = C5114511
+clrMenuRecFontTitle = FFCC1111
+clrMenuRecTitleLine = FFEF3434
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = C5114511
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C5114511
+clrMenuContentHeadBorderBg = C5114511
+clrMenuContentBorderFg = C5114511
+clrMenuContentBorderBg = C5114511
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = C5114511
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = C5CC1111
+clrMenuItemBorderFg = C5114511
+clrMenuItemBorderBg = C5114511
+clrMenuItemSelableBorderFg = C5114511
+clrMenuItemSelableBorderBg = C5114511
+clrMenuItemCurrentBorderFg = E1CC1111
+clrMenuItemCurrentBorderBg = E1CC1111
+clrMenuItemExtraTextFont = FFCC1111
+clrMenuItemExtraTextCurrentFont = FF114511
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = C5114511
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFCC1111
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFCC1111
+clrReplayProgressBg = C5114511
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFCC1111
+clrReplayBorderFg = C5114511
+clrReplayBorderBg = C5114511
+clrTrackItemBg = C5555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = C5114511
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = C5555555
+clrTrackItemSelableBorderFg = C5114511
+clrTrackItemSelableBorderBg = C5114511
+clrTrackItemCurrentBg = E0CC1111
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = E1CC1111
+clrTrackItemCurrentBorderBg = E1CC1111
+clrVolumeBg = C5114511
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFCC1111
+clrVolumeProgressBg = C5114511
+clrVolumeBorderFg = C5114511
+clrVolumeBorderBg = C5114511
diff --git a/themes/flatPlus-MVZitrone.theme b/themes/flatPlus-MVZitrone.theme
new file mode 100644
index 0000000..c1839cc
--- /dev/null
+++ b/themes/flatPlus-MVZitrone.theme
@@ -0,0 +1,118 @@
+Description = MV Zitrone
+clrTopBarBg = A088881A
+clrTopBarFont = FFFFFFAA
+clrTopBarTimeFont = FFEEEE0F
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFCC1111
+clrTopBarRecordingActiveBg = A088881A
+clrTopBarBorderFg = C588881A
+clrTopBarBorderBg = A088881A
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = A088881A
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = A088881A
+clrButtonBg = A088881A
+clrButtonFont = FFFFFFAA
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = C588881A
+clrButtonBorderBg = A088881A
+clrMessageBg = A088881A
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = C588881A
+clrMessageBorderBg = A088881A
+clrChannelBg = A088881A
+clrChannelFontTitle = FFEEEE0F
+clrChannelFontEpg = FFFFFFAA
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFEEEE0F
+clrChannelProgressBg = A088881A
+clrChannelRecordingPresentFg = FFCC1111
+clrChannelRecordingPresentBg = A088881A
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = A088881A
+clrChannelBorderFg = C588881A
+clrChannelBorderBg = A088881A
+clrChannelEPGBorderFg = C588881A
+clrChannelEPGBorderBg = A088881A
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFA0A0A0
+clrChannelSignalProgressBg = A088881A
+clrItemBg = A088881A
+clrItemFont = FFEEEE0F
+clrItemCurrentBg = E0EEEE0F
+clrItemCurrentFont = FFFFFFAA
+clrItemSelableBg = A088881A
+clrItemSelableFont = FFFFFFAA
+clrScrollbarFg = C5A0A0A0
+clrScrollbarBarFg = FFEEEE0F
+clrScrollbarBg = A088881A
+clrMenuEventBg = A088881A
+clrMenuEventFontTitle = FFEEEE0F
+clrMenuEventTitleLine = FFFFFF20
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = A088881A
+clrMenuRecFontTitle = FFEEEE0F
+clrMenuRecTitleLine = FFFFFF20
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = A088881A
+clrMenuTextFont = FFFFFFAA
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = C588881A
+clrMenuContentHeadBorderBg = A088881A
+clrMenuContentBorderFg = C588881A
+clrMenuContentBorderBg = A088881A
+clrMenuItemProgressFg = FFFFFFAA
+clrMenuItemProgressBarFg = FFFFFFAA
+clrMenuItemProgressBg = A088881A
+clrMenuItemCurProgressFg = FFFFFFAA
+clrMenuItemCurProgressBarFg = FFFFFFAA
+clrMenuItemCurProgressBg = A0EEEE0F
+clrMenuItemBorderFg = C588881A
+clrMenuItemBorderBg = A088881A
+clrMenuItemSelableBorderFg = C588881A
+clrMenuItemSelableBorderBg = A088881A
+clrMenuItemCurrentBorderFg = E1EEEE0F
+clrMenuItemCurrentBorderBg = E1EEEE0F
+clrMenuItemExtraTextFont = FFEEEE0F
+clrMenuItemExtraTextCurrentFont = FF88881A
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFF5050
+clrReplayBg = A088881A
+clrReplayFont = FFFFFFAA
+clrReplayFontSpeed = FFEEEE0F
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFEEEE0F
+clrReplayProgressBg = A088881A
+clrReplayMarkFg = FFFFFFAA
+clrReplayMarkCurrentFg = FFEEEE0F
+clrReplayBorderFg = C588881A
+clrReplayBorderBg = A088881A
+clrTrackItemBg = A0555555
+clrTrackItemFont = FFFFFFAA
+clrTrackItemSelableBg = A088881A
+clrTrackItemSelableFont = FFFFFFAA
+clrTrackItemBorderFg = C5555555
+clrTrackItemBorderBg = A0555555
+clrTrackItemSelableBorderFg = C588881A
+clrTrackItemSelableBorderBg = A088881A
+clrTrackItemCurrentBg = E0EEEE0F
+clrTrackItemCurrentFont = FFFFFFAA
+clrTrackItemCurrentBorderFg = E1EEEE0F
+clrTrackItemCurrentBorderBg = E1EEEE0F
+clrVolumeBg = A088881A
+clrVolumeFont = FFFFFFAA
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FFEEEE0F
+clrVolumeProgressBg = A088881A
+clrVolumeBorderFg = C588881A
+clrVolumeBorderBg = A088881A
diff --git a/themes/flatPlus-default.theme b/themes/flatPlus-default.theme
new file mode 100644
index 0000000..1a70dd9
--- /dev/null
+++ b/themes/flatPlus-default.theme
@@ -0,0 +1,118 @@
+Description = Default
+clrTopBarBg = F0202020
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FF909090
+clrTopBarBorderFg = F0202020
+clrTopBarBorderBg = F0202020
+clrTopBarRecordingActiveFg = FF880000
+clrTopBarRecordingActiveBg = F0202020
+clrTopBarConflictLowFg = FFBBBB00
+clrTopBarConflictLowBg = F0202020
+clrTopBarConflictHighFg = FF880000
+clrTopBarConflictHighBg = F0202020
+clrButtonBg = F0202020
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFBB0000
+clrButtonGreen = FF00BB00
+clrButtonYellow = FFBBBB00
+clrButtonBlue = FF0000BB
+clrButtonBorderFg = F0202020
+clrButtonBorderBg = F0202020
+clrMessageBg = F0202020
+clrMessageFont = FFEEEEEE
+clrMessageStatus = FF0000FF
+clrMessageInfo = FF009900
+clrMessageWarning = FFBBBB00
+clrMessageError = FFBB0000
+clrMessageBorderFg = F0202020
+clrMessageBorderBg = F0202020
+clrChannelBg = F0202020
+clrChannelFontTitle = FF03A9F4
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FF909090
+clrChannelProgressFg = FF03A9F4
+clrChannelProgressBarFg = FF03A9F4
+clrChannelProgressBg = F0202020
+clrChannelBorderFg = F003A9F4
+clrChannelBorderBg = F003A9F4
+clrChannelEPGBorderFg = F003A9F4
+clrChannelEPGBorderBg = F003A9F4
+clrChannelSignalFont = FF909090
+clrChannelSignalProgressFg = FF909090
+clrChannelSignalProgressBarFg = FF909090
+clrChannelSignalProgressBg = F0202020
+clrChannelRecordingPresentFg = FFAA0000
+clrChannelRecordingPresentBg = F0202020
+clrChannelRecordingFollowFg = FF909090
+clrChannelRecordingFollowBg = F0202020
+clrItemBg = F0909090
+clrItemFont = FFEEEEEE
+clrItemCurrentBg = F003A9F4
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = F0202020
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = FF03A9F4
+clrScrollbarBarFg = FF03A9F4
+clrScrollbarBg = F0202020
+clrMenuEventBg = F0202020
+clrMenuEventFontTitle = FF03A9F4
+clrMenuEventTitleLine = FF03A9F4
+clrMenuEventFontInfo = FFEEEEEE
+clrMenuRecBg = F0202020
+clrMenuRecFontTitle = FF03A9F4
+clrMenuRecTitleLine = FF03A9F4
+clrMenuRecFontInfo = FFEEEEEE
+clrMenuTextBg = F0202020
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFEEEEEE
+clrMenuContentHeadBorderFg = F003A9F4
+clrMenuContentHeadBorderBg = F003A9F4
+clrMenuContentBorderFg = F003A9F4
+clrMenuContentBorderBg = F003A9F4
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = F0202020
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = F003A9F4
+clrMenuItemBorderFg = F0909090
+clrMenuItemBorderBg = F0909090
+clrMenuItemSelableBorderFg = F0202020
+clrMenuItemSelableBorderBg = F0202020
+clrMenuItemCurrentBorderFg = F003A9F4
+clrMenuItemCurrentBorderBg = F003A9F4
+clrMenuTimerItemDisabledFont = FF909090
+clrMenuTimerItemRecordingFont = FFEEEEEE
+clrMenuItemExtraTextFont = FF909090
+clrMenuItemExtraTextCurrentFont = FF909090
+clrReplayBg = F0202020
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF03A9F4
+clrReplayProgressFg = FFEEEEEE
+clrReplayProgressBarFg = FFEEEEEE
+clrReplayProgressBarCurFg = FF03A9F4
+clrReplayProgressBg = F0202020
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF03A9F4
+clrReplayBorderFg = F0202020
+clrReplayBorderBg = F0202020
+clrTrackItemBg = F0909090
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = F0202020
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemCurrentBg = F003A9F4
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemBorderFg = F0909090
+clrTrackItemBorderBg = F0909090
+clrTrackItemSelableBorderFg = F0202020
+clrTrackItemSelableBorderBg = F0202020
+clrTrackItemCurrentBorderFg = F003A9F4
+clrTrackItemCurrentBorderBg = F003A9F4
+clrVolumeBg = F0202020
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF03A9F4
+clrVolumeProgressBarFg = FF03A9F4
+clrVolumeProgressBg = F0202020
+clrVolumeBorderFg = F0202020
+clrVolumeBorderBg = F0202020
diff --git a/themes/flatPlus-default_DeepOrange.theme b/themes/flatPlus-default_DeepOrange.theme
new file mode 100644
index 0000000..4c371b9
--- /dev/null
+++ b/themes/flatPlus-default_DeepOrange.theme
@@ -0,0 +1,118 @@
+Description = Default - DeepOrange
+clrTopBarBg = F0202020
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FF909090
+clrTopBarBorderFg = F0202020
+clrTopBarBorderBg = F0202020
+clrTopBarRecordingActiveFg = FF880000
+clrTopBarRecordingActiveBg = F0202020
+clrTopBarConflictLowFg = FFBBBB00
+clrTopBarConflictLowBg = F0202020
+clrTopBarConflictHighFg = FF880000
+clrTopBarConflictHighBg = F0202020
+clrButtonBg = F0202020
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFBB0000
+clrButtonGreen = FF00BB00
+clrButtonYellow = FFBBBB00
+clrButtonBlue = FF0000BB
+clrButtonBorderFg = F0202020
+clrButtonBorderBg = F0202020
+clrMessageBg = F0202020
+clrMessageFont = FFEEEEEE
+clrMessageStatus = FF0000FF
+clrMessageInfo = FF009900
+clrMessageWarning = FFBBBB00
+clrMessageError = FFBB0000
+clrMessageBorderFg = F0202020
+clrMessageBorderBg = F0202020
+clrChannelBg = F0202020
+clrChannelFontTitle = FFFF5722
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FF909090
+clrChannelProgressFg = FFFF5722
+clrChannelProgressBarFg = FFFF5722
+clrChannelProgressBg = F0202020
+clrChannelBorderFg = F0FF5722
+clrChannelBorderBg = F0FF5722
+clrChannelEPGBorderFg = F0FF5722
+clrChannelEPGBorderBg = F0FF5722
+clrChannelSignalFont = FF909090
+clrChannelSignalProgressFg = FF909090
+clrChannelSignalProgressBarFg = FF909090
+clrChannelSignalProgressBg = F0202020
+clrChannelRecordingPresentFg = FFAA0000
+clrChannelRecordingPresentBg = F0202020
+clrChannelRecordingFollowFg = FF909090
+clrChannelRecordingFollowBg = F0202020
+clrItemBg = F0909090
+clrItemFont = FFEEEEEE
+clrItemCurrentBg = F0FF5722
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = F0202020
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = FFFF5722
+clrScrollbarBarFg = FFFF5722
+clrScrollbarBg = F0202020
+clrMenuEventBg = F0202020
+clrMenuEventFontTitle = FFFF5722
+clrMenuEventTitleLine = FFFF5722
+clrMenuEventFontInfo = FFEEEEEE
+clrMenuRecBg = F0202020
+clrMenuRecFontTitle = FFFF5722
+clrMenuRecTitleLine = FFFF5722
+clrMenuRecFontInfo = FFEEEEEE
+clrMenuTextBg = F0202020
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFEEEEEE
+clrMenuContentHeadBorderFg = F0FF5722
+clrMenuContentHeadBorderBg = F0FF5722
+clrMenuContentBorderFg = F0FF5722
+clrMenuContentBorderBg = F0FF5722
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = F0202020
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = F0FF5722
+clrMenuItemBorderFg = F0909090
+clrMenuItemBorderBg = F0909090
+clrMenuItemSelableBorderFg = F0202020
+clrMenuItemSelableBorderBg = F0202020
+clrMenuItemCurrentBorderFg = F0FF5722
+clrMenuItemCurrentBorderBg = F0FF5722
+clrMenuTimerItemDisabledFont = FF909090
+clrMenuTimerItemRecordingFont = FFEEEEEE
+clrMenuItemExtraTextFont = FF909090
+clrMenuItemExtraTextCurrentFont = FF909090
+clrReplayBg = F0202020
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFFF5722
+clrReplayProgressFg = FFEEEEEE
+clrReplayProgressBarFg = FFEEEEEE
+clrReplayProgressBarCurFg = FFFF5722
+clrReplayProgressBg = F0202020
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFFF5722
+clrReplayBorderFg = F0202020
+clrReplayBorderBg = F0202020
+clrTrackItemBg = F0909090
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = F0202020
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemCurrentBg = F0FF5722
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemBorderFg = F0909090
+clrTrackItemBorderBg = F0909090
+clrTrackItemSelableBorderFg = F0202020
+clrTrackItemSelableBorderBg = F0202020
+clrTrackItemCurrentBorderFg = F0FF5722
+clrTrackItemCurrentBorderBg = F0FF5722
+clrVolumeBg = F0202020
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FFFF5722
+clrVolumeProgressBarFg = FFFF5722
+clrVolumeProgressBg = F0202020
+clrVolumeBorderFg = F0202020
+clrVolumeBorderBg = F0202020
diff --git a/themes/flatPlus-default_DeepPurple.theme b/themes/flatPlus-default_DeepPurple.theme
new file mode 100644
index 0000000..b21c529
--- /dev/null
+++ b/themes/flatPlus-default_DeepPurple.theme
@@ -0,0 +1,118 @@
+Description = Default - DeepPurple
+clrTopBarBg = F0202020
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FF909090
+clrTopBarBorderFg = F0202020
+clrTopBarBorderBg = F0202020
+clrTopBarRecordingActiveFg = FF880000
+clrTopBarRecordingActiveBg = F0202020
+clrTopBarConflictLowFg = FFBBBB00
+clrTopBarConflictLowBg = F0202020
+clrTopBarConflictHighFg = FF880000
+clrTopBarConflictHighBg = F0202020
+clrButtonBg = F0202020
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFBB0000
+clrButtonGreen = FF00BB00
+clrButtonYellow = FFBBBB00
+clrButtonBlue = FF0000BB
+clrButtonBorderFg = F0202020
+clrButtonBorderBg = F0202020
+clrMessageBg = F0202020
+clrMessageFont = FFEEEEEE
+clrMessageStatus = FF0000FF
+clrMessageInfo = FF009900
+clrMessageWarning = FFBBBB00
+clrMessageError = FFBB0000
+clrMessageBorderFg = F0202020
+clrMessageBorderBg = F0202020
+clrChannelBg = F0202020
+clrChannelFontTitle = FF673ab7
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FF909090
+clrChannelProgressFg = FF673ab7
+clrChannelProgressBarFg = FF673ab7
+clrChannelProgressBg = F0202020
+clrChannelBorderFg = F0673ab7
+clrChannelBorderBg = F0673ab7
+clrChannelEPGBorderFg = F0673ab7
+clrChannelEPGBorderBg = F0673ab7
+clrChannelSignalFont = FF909090
+clrChannelSignalProgressFg = FF909090
+clrChannelSignalProgressBarFg = FF909090
+clrChannelSignalProgressBg = F0202020
+clrChannelRecordingPresentFg = FFAA0000
+clrChannelRecordingPresentBg = F0202020
+clrChannelRecordingFollowFg = FF909090
+clrChannelRecordingFollowBg = F0202020
+clrItemBg = F0909090
+clrItemFont = FFEEEEEE
+clrItemCurrentBg = F0673ab7
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = F0202020
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = FF673ab7
+clrScrollbarBarFg = FF673ab7
+clrScrollbarBg = F0202020
+clrMenuEventBg = F0202020
+clrMenuEventFontTitle = FF673ab7
+clrMenuEventTitleLine = FF673ab7
+clrMenuEventFontInfo = FFEEEEEE
+clrMenuRecBg = F0202020
+clrMenuRecFontTitle = FF673ab7
+clrMenuRecTitleLine = FF673ab7
+clrMenuRecFontInfo = FFEEEEEE
+clrMenuTextBg = F0202020
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFEEEEEE
+clrMenuContentHeadBorderFg = F0673ab7
+clrMenuContentHeadBorderBg = F0673ab7
+clrMenuContentBorderFg = F0673ab7
+clrMenuContentBorderBg = F0673ab7
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = F0202020
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = F0673ab7
+clrMenuItemBorderFg = F0909090
+clrMenuItemBorderBg = F0909090
+clrMenuItemSelableBorderFg = F0202020
+clrMenuItemSelableBorderBg = F0202020
+clrMenuItemCurrentBorderFg = F0673ab7
+clrMenuItemCurrentBorderBg = F0673ab7
+clrMenuTimerItemDisabledFont = FF909090
+clrMenuTimerItemRecordingFont = FFEEEEEE
+clrMenuItemExtraTextFont = FF909090
+clrMenuItemExtraTextCurrentFont = FF909090
+clrReplayBg = F0202020
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF673ab7
+clrReplayProgressFg = FFEEEEEE
+clrReplayProgressBarFg = FFEEEEEE
+clrReplayProgressBarCurFg = FF673ab7
+clrReplayProgressBg = F0202020
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF673ab7
+clrReplayBorderFg = F0202020
+clrReplayBorderBg = F0202020
+clrTrackItemBg = F0909090
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = F0202020
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemCurrentBg = F0673ab7
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemBorderFg = F0909090
+clrTrackItemBorderBg = F0909090
+clrTrackItemSelableBorderFg = F0202020
+clrTrackItemSelableBorderBg = F0202020
+clrTrackItemCurrentBorderFg = F0673ab7
+clrTrackItemCurrentBorderBg = F0673ab7
+clrVolumeBg = F0202020
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF673ab7
+clrVolumeProgressBarFg = FF673ab7
+clrVolumeProgressBg = F0202020
+clrVolumeBorderFg = F0202020
+clrVolumeBorderBg = F0202020
diff --git a/themes/flatPlus-default_Indigo.theme b/themes/flatPlus-default_Indigo.theme
new file mode 100644
index 0000000..db5b73f
--- /dev/null
+++ b/themes/flatPlus-default_Indigo.theme
@@ -0,0 +1,118 @@
+Description = Default - Indigo
+clrTopBarBg = F0202020
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FF909090
+clrTopBarBorderFg = F0202020
+clrTopBarBorderBg = F0202020
+clrTopBarRecordingActiveFg = FF880000
+clrTopBarRecordingActiveBg = F0202020
+clrTopBarConflictLowFg = FFBBBB00
+clrTopBarConflictLowBg = F0202020
+clrTopBarConflictHighFg = FF880000
+clrTopBarConflictHighBg = F0202020
+clrButtonBg = F0202020
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFBB0000
+clrButtonGreen = FF00BB00
+clrButtonYellow = FFBBBB00
+clrButtonBlue = FF0000BB
+clrButtonBorderFg = F0202020
+clrButtonBorderBg = F0202020
+clrMessageBg = F0202020
+clrMessageFont = FFEEEEEE
+clrMessageStatus = FF0000FF
+clrMessageInfo = FF009900
+clrMessageWarning = FFBBBB00
+clrMessageError = FFBB0000
+clrMessageBorderFg = F0202020
+clrMessageBorderBg = F0202020
+clrChannelBg = F0202020
+clrChannelFontTitle = FF3f51b5
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FF909090
+clrChannelProgressFg = FF3f51b5
+clrChannelProgressBarFg = FF3f51b5
+clrChannelProgressBg = F0202020
+clrChannelBorderFg = F03f51b5
+clrChannelBorderBg = F03f51b5
+clrChannelEPGBorderFg = F03f51b5
+clrChannelEPGBorderBg = F03f51b5
+clrChannelSignalFont = FF909090
+clrChannelSignalProgressFg = FF909090
+clrChannelSignalProgressBarFg = FF909090
+clrChannelSignalProgressBg = F0202020
+clrChannelRecordingPresentFg = FFAA0000
+clrChannelRecordingPresentBg = F0202020
+clrChannelRecordingFollowFg = FF909090
+clrChannelRecordingFollowBg = F0202020
+clrItemBg = F0909090
+clrItemFont = FFEEEEEE
+clrItemCurrentBg = F03f51b5
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = F0202020
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = FF3f51b5
+clrScrollbarBarFg = FF3f51b5
+clrScrollbarBg = F0202020
+clrMenuEventBg = F0202020
+clrMenuEventFontTitle = FF3f51b5
+clrMenuEventTitleLine = FF3f51b5
+clrMenuEventFontInfo = FFEEEEEE
+clrMenuRecBg = F0202020
+clrMenuRecFontTitle = FF3f51b5
+clrMenuRecTitleLine = FF3f51b5
+clrMenuRecFontInfo = FFEEEEEE
+clrMenuTextBg = F0202020
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFEEEEEE
+clrMenuContentHeadBorderFg = F03f51b5
+clrMenuContentHeadBorderBg = F03f51b5
+clrMenuContentBorderFg = F03f51b5
+clrMenuContentBorderBg = F03f51b5
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = F0202020
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = F03f51b5
+clrMenuItemBorderFg = F0909090
+clrMenuItemBorderBg = F0909090
+clrMenuItemSelableBorderFg = F0202020
+clrMenuItemSelableBorderBg = F0202020
+clrMenuItemCurrentBorderFg = F03f51b5
+clrMenuItemCurrentBorderBg = F03f51b5
+clrMenuTimerItemDisabledFont = FF909090
+clrMenuTimerItemRecordingFont = FFEEEEEE
+clrMenuItemExtraTextFont = FF909090
+clrMenuItemExtraTextCurrentFont = FF909090
+clrReplayBg = F0202020
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF3f51b5
+clrReplayProgressFg = FFEEEEEE
+clrReplayProgressBarFg = FFEEEEEE
+clrReplayProgressBarCurFg = FF3f51b5
+clrReplayProgressBg = F0202020
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF3f51b5
+clrReplayBorderFg = F0202020
+clrReplayBorderBg = F0202020
+clrTrackItemBg = F0909090
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = F0202020
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemCurrentBg = F03f51b5
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemBorderFg = F0909090
+clrTrackItemBorderBg = F0909090
+clrTrackItemSelableBorderFg = F0202020
+clrTrackItemSelableBorderBg = F0202020
+clrTrackItemCurrentBorderFg = F03f51b5
+clrTrackItemCurrentBorderBg = F03f51b5
+clrVolumeBg = F0202020
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF3f51b5
+clrVolumeProgressBarFg = FF3f51b5
+clrVolumeProgressBg = F0202020
+clrVolumeBorderFg = F0202020
+clrVolumeBorderBg = F0202020
diff --git a/themes/flatPlus-default_Red.theme b/themes/flatPlus-default_Red.theme
new file mode 100644
index 0000000..7dc52a8
--- /dev/null
+++ b/themes/flatPlus-default_Red.theme
@@ -0,0 +1,118 @@
+Description = Default - Red
+clrTopBarBg = F0202020
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FF909090
+clrTopBarBorderFg = F0202020
+clrTopBarBorderBg = F0202020
+clrTopBarRecordingActiveFg = FF880000
+clrTopBarRecordingActiveBg = F0202020
+clrTopBarConflictLowFg = FFBBBB00
+clrTopBarConflictLowBg = F0202020
+clrTopBarConflictHighFg = FF880000
+clrTopBarConflictHighBg = F0202020
+clrButtonBg = F0202020
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFBB0000
+clrButtonGreen = FF00BB00
+clrButtonYellow = FFBBBB00
+clrButtonBlue = FF0000BB
+clrButtonBorderFg = F0202020
+clrButtonBorderBg = F0202020
+clrMessageBg = F0202020
+clrMessageFont = FFEEEEEE
+clrMessageStatus = FF0000FF
+clrMessageInfo = FF009900
+clrMessageWarning = FFBBBB00
+clrMessageError = FFBB0000
+clrMessageBorderFg = F0202020
+clrMessageBorderBg = F0202020
+clrChannelBg = F0202020
+clrChannelFontTitle = FFf44336
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FF909090
+clrChannelProgressFg = FFf44336
+clrChannelProgressBarFg = FFf44336
+clrChannelProgressBg = F0202020
+clrChannelBorderFg = F0f44336
+clrChannelBorderBg = F0f44336
+clrChannelEPGBorderFg = F0f44336
+clrChannelEPGBorderBg = F0f44336
+clrChannelSignalFont = FF909090
+clrChannelSignalProgressFg = FF909090
+clrChannelSignalProgressBarFg = FF909090
+clrChannelSignalProgressBg = F0202020
+clrChannelRecordingPresentFg = FFAA0000
+clrChannelRecordingPresentBg = F0202020
+clrChannelRecordingFollowFg = FF909090
+clrChannelRecordingFollowBg = F0202020
+clrItemBg = F0909090
+clrItemFont = FFEEEEEE
+clrItemCurrentBg = F0f44336
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = F0202020
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = FFf44336
+clrScrollbarBarFg = FFf44336
+clrScrollbarBg = F0202020
+clrMenuEventBg = F0202020
+clrMenuEventFontTitle = FFf44336
+clrMenuEventTitleLine = FFf44336
+clrMenuEventFontInfo = FFEEEEEE
+clrMenuRecBg = F0202020
+clrMenuRecFontTitle = FFf44336
+clrMenuRecTitleLine = FFf44336
+clrMenuRecFontInfo = FFEEEEEE
+clrMenuTextBg = F0202020
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFEEEEEE
+clrMenuContentHeadBorderFg = F0f44336
+clrMenuContentHeadBorderBg = F0f44336
+clrMenuContentBorderFg = F0f44336
+clrMenuContentBorderBg = F0f44336
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = F0202020
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = F0f44336
+clrMenuItemBorderFg = F0909090
+clrMenuItemBorderBg = F0909090
+clrMenuItemSelableBorderFg = F0202020
+clrMenuItemSelableBorderBg = F0202020
+clrMenuItemCurrentBorderFg = F0f44336
+clrMenuItemCurrentBorderBg = F0f44336
+clrMenuTimerItemDisabledFont = FF909090
+clrMenuTimerItemRecordingFont = FFEEEEEE
+clrMenuItemExtraTextFont = FF909090
+clrMenuItemExtraTextCurrentFont = FF909090
+clrReplayBg = F0202020
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FFf44336
+clrReplayProgressFg = FFEEEEEE
+clrReplayProgressBarFg = FFEEEEEE
+clrReplayProgressBarCurFg = FFf44336
+clrReplayProgressBg = F0202020
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FFf44336
+clrReplayBorderFg = F0202020
+clrReplayBorderBg = F0202020
+clrTrackItemBg = F0909090
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = F0202020
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemCurrentBg = F0f44336
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemBorderFg = F0909090
+clrTrackItemBorderBg = F0909090
+clrTrackItemSelableBorderFg = F0202020
+clrTrackItemSelableBorderBg = F0202020
+clrTrackItemCurrentBorderFg = F0f44336
+clrTrackItemCurrentBorderBg = F0f44336
+clrVolumeBg = F0202020
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FFf44336
+clrVolumeProgressBarFg = FFf44336
+clrVolumeProgressBg = F0202020
+clrVolumeBorderFg = F0202020
+clrVolumeBorderBg = F0202020
diff --git a/themes/flatPlus-default_Teal.theme b/themes/flatPlus-default_Teal.theme
new file mode 100644
index 0000000..e6ee4b1
--- /dev/null
+++ b/themes/flatPlus-default_Teal.theme
@@ -0,0 +1,118 @@
+Description = Default - Teal
+clrTopBarBg = F0202020
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FF909090
+clrTopBarBorderFg = F0202020
+clrTopBarBorderBg = F0202020
+clrTopBarRecordingActiveFg = FF880000
+clrTopBarRecordingActiveBg = F0202020
+clrTopBarConflictLowFg = FFBBBB00
+clrTopBarConflictLowBg = F0202020
+clrTopBarConflictHighFg = FF880000
+clrTopBarConflictHighBg = F0202020
+clrButtonBg = F0202020
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFBB0000
+clrButtonGreen = FF00BB00
+clrButtonYellow = FFBBBB00
+clrButtonBlue = FF0000BB
+clrButtonBorderFg = F0202020
+clrButtonBorderBg = F0202020
+clrMessageBg = F0202020
+clrMessageFont = FFEEEEEE
+clrMessageStatus = FF0000FF
+clrMessageInfo = FF009900
+clrMessageWarning = FFBBBB00
+clrMessageError = FFBB0000
+clrMessageBorderFg = F0202020
+clrMessageBorderBg = F0202020
+clrChannelBg = F0202020
+clrChannelFontTitle = FF009688
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FF909090
+clrChannelProgressFg = FF009688
+clrChannelProgressBarFg = FF009688
+clrChannelProgressBg = F0202020
+clrChannelBorderFg = F0009688
+clrChannelBorderBg = F0009688
+clrChannelEPGBorderFg = F0009688
+clrChannelEPGBorderBg = F0009688
+clrChannelSignalFont = FF909090
+clrChannelSignalProgressFg = FF909090
+clrChannelSignalProgressBarFg = FF909090
+clrChannelSignalProgressBg = F0202020
+clrChannelRecordingPresentFg = FFAA0000
+clrChannelRecordingPresentBg = F0202020
+clrChannelRecordingFollowFg = FF909090
+clrChannelRecordingFollowBg = F0202020
+clrItemBg = F0909090
+clrItemFont = FFEEEEEE
+clrItemCurrentBg = F0009688
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = F0202020
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = FF009688
+clrScrollbarBarFg = FF009688
+clrScrollbarBg = F0202020
+clrMenuEventBg = F0202020
+clrMenuEventFontTitle = FF009688
+clrMenuEventTitleLine = FF009688
+clrMenuEventFontInfo = FFEEEEEE
+clrMenuRecBg = F0202020
+clrMenuRecFontTitle = FF009688
+clrMenuRecTitleLine = FF009688
+clrMenuRecFontInfo = FFEEEEEE
+clrMenuTextBg = F0202020
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFEEEEEE
+clrMenuContentHeadBorderFg = F0009688
+clrMenuContentHeadBorderBg = F0009688
+clrMenuContentBorderFg = F0009688
+clrMenuContentBorderBg = F0009688
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = F0202020
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = F0009688
+clrMenuItemBorderFg = F0909090
+clrMenuItemBorderBg = F0909090
+clrMenuItemSelableBorderFg = F0202020
+clrMenuItemSelableBorderBg = F0202020
+clrMenuItemCurrentBorderFg = F0009688
+clrMenuItemCurrentBorderBg = F0009688
+clrMenuTimerItemDisabledFont = FF909090
+clrMenuTimerItemRecordingFont = FFEEEEEE
+clrMenuItemExtraTextFont = FF909090
+clrMenuItemExtraTextCurrentFont = FF909090
+clrReplayBg = F0202020
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF009688
+clrReplayProgressFg = FFEEEEEE
+clrReplayProgressBarFg = FFEEEEEE
+clrReplayProgressBarCurFg = FF009688
+clrReplayProgressBg = F0202020
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF009688
+clrReplayBorderFg = F0202020
+clrReplayBorderBg = F0202020
+clrTrackItemBg = F0909090
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = F0202020
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemCurrentBg = F0009688
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemBorderFg = F0909090
+clrTrackItemBorderBg = F0909090
+clrTrackItemSelableBorderFg = F0202020
+clrTrackItemSelableBorderBg = F0202020
+clrTrackItemCurrentBorderFg = F0009688
+clrTrackItemCurrentBorderBg = F0009688
+clrVolumeBg = F0202020
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF009688
+clrVolumeProgressBarFg = FF009688
+clrVolumeProgressBg = F0202020
+clrVolumeBorderFg = F0202020
+clrVolumeBorderBg = F0202020
diff --git a/themes/flatPlus-fnuanthraamber.theme b/themes/flatPlus-fnuanthraamber.theme
new file mode 100644
index 0000000..f4956f7
--- /dev/null
+++ b/themes/flatPlus-fnuanthraamber.theme
@@ -0,0 +1,118 @@
+Description = fnu anthra.amber
+clrTopBarBg = BF000000
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFBC0000
+clrTopBarRecordingActiveBg = BF000000
+clrTopBarBorderFg = BF000000
+clrTopBarBorderBg = BF000000
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = BF000000
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = BF000000
+clrButtonBg = BF000000
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = BF000000
+clrButtonBorderBg = BF000000
+clrMessageBg = BF000000
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = BF000000
+clrMessageBorderBg = BF000000
+clrChannelBg = BF000000
+clrChannelFontTitle = FFEEEEEE
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFFFBF00
+clrChannelProgressBg = BF000000
+clrChannelRecordingPresentFg = FFFFBF00
+clrChannelRecordingPresentBg = BF000000
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = BF000000
+clrChannelBorderFg = BF000000
+clrChannelBorderBg = BF000000
+clrChannelEPGBorderFg = BF000000
+clrChannelEPGBorderBg = BF000000
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFb89c50
+clrChannelSignalProgressBg = BF000000
+clrItemBg = BF000000
+clrItemFont = FF404040
+clrItemCurrentBg = BF404040
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = BF000000
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = D8A0A0A0
+clrScrollbarBarFg = FFFFBF00
+clrScrollbarBg = BF000000
+clrMenuEventBg = BF000000
+clrMenuEventFontTitle = FFFFBF00
+clrMenuEventTitleLine = FF808080
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = BF000000
+clrMenuRecFontTitle = FFFFBF00
+clrMenuRecTitleLine = FF808080
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = BF000000
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = BF000000
+clrMenuContentHeadBorderBg = BF000000
+clrMenuContentBorderFg = BF000000
+clrMenuContentBorderBg = BF000000
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = BF000000
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = BF404040
+clrMenuItemBorderFg = BF000000
+clrMenuItemBorderBg = BF000000
+clrMenuItemSelableBorderFg = BF000000
+clrMenuItemSelableBorderBg = BF000000
+clrMenuItemCurrentBorderFg = BF404040
+clrMenuItemCurrentBorderBg = BF404040
+clrMenuItemExtraTextFont = FFA0A0A0
+clrMenuItemExtraTextCurrentFont = FFA0A0A0
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFFFBF00
+clrReplayBg = BF000000
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF404040
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFFFBF00
+clrReplayProgressBg = BF000000
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF404040
+clrReplayBorderFg = BF000000
+clrReplayBorderBg = BF000000
+clrTrackItemBg = D8555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = BF000000
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = D8555555
+clrTrackItemBorderBg = D8555555
+clrTrackItemSelableBorderFg = BF000000
+clrTrackItemSelableBorderBg = BF000000
+clrTrackItemCurrentBg = BF404040
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = BF404040
+clrTrackItemCurrentBorderBg = BF404040
+clrVolumeBg = BF000000
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF404040
+clrVolumeProgressBg = BF000000
+clrVolumeBorderFg = BF000000
+clrVolumeBorderBg = BF000000
diff --git a/themes/flatPlus-fnuanthracutis.theme b/themes/flatPlus-fnuanthracutis.theme
new file mode 100644
index 0000000..6bb8147
--- /dev/null
+++ b/themes/flatPlus-fnuanthracutis.theme
@@ -0,0 +1,118 @@
+Description = fnu anthra.cutis
+clrTopBarBg = BF000000
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFBC0000
+clrTopBarRecordingActiveBg = BF000000
+clrTopBarBorderFg = BF000000
+clrTopBarBorderBg = BF000000
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = BF000000
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = BF000000
+clrButtonBg = BF000000
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = BF000000
+clrButtonBorderBg = BF000000
+clrMessageBg = BF000000
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = BF000000
+clrMessageBorderBg = BF000000
+clrChannelBg = BF000000
+clrChannelFontTitle = FFEEEEEE
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFF88F68
+clrChannelProgressBg = BF000000
+clrChannelRecordingPresentFg = FFF88F68
+clrChannelRecordingPresentBg = BF000000
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = BF000000
+clrChannelBorderFg = BF000000
+clrChannelBorderBg = BF000000
+clrChannelEPGBorderFg = BF000000
+clrChannelEPGBorderBg = BF000000
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFD57A59
+clrChannelSignalProgressBg = BF000000
+clrItemBg = BF000000
+clrItemFont = FF404040
+clrItemCurrentBg = BF404040
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = BF000000
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = D8A0A0A0
+clrScrollbarBarFg = FFF88F68
+clrScrollbarBg = BF000000
+clrMenuEventBg = BF000000
+clrMenuEventFontTitle = FFF88F68
+clrMenuEventTitleLine = FF808080
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = BF000000
+clrMenuRecFontTitle = FFF88F68
+clrMenuRecTitleLine = FF808080
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = BF000000
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = BF000000
+clrMenuContentHeadBorderBg = BF000000
+clrMenuContentBorderFg = BF000000
+clrMenuContentBorderBg = BF000000
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = BF000000
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = BF404040
+clrMenuItemBorderFg = BF000000
+clrMenuItemBorderBg = BF000000
+clrMenuItemSelableBorderFg = BF000000
+clrMenuItemSelableBorderBg = BF000000
+clrMenuItemCurrentBorderFg = BF404040
+clrMenuItemCurrentBorderBg = BF404040
+clrMenuItemExtraTextFont = FFA0A0A0
+clrMenuItemExtraTextCurrentFont = FFA0A0A0
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFF88F68
+clrReplayBg = BF000000
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF404040
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFF88F68
+clrReplayProgressBg = BF000000
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF404040
+clrReplayBorderFg = BF000000
+clrReplayBorderBg = BF000000
+clrTrackItemBg = D8555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = BF000000
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = D8555555
+clrTrackItemBorderBg = D8555555
+clrTrackItemSelableBorderFg = BF000000
+clrTrackItemSelableBorderBg = BF000000
+clrTrackItemCurrentBg = BF404040
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = BF404040
+clrTrackItemCurrentBorderBg = BF404040
+clrVolumeBg = BF000000
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF404040
+clrVolumeProgressBg = BF000000
+clrVolumeBorderFg = BF000000
+clrVolumeBorderBg = BF000000
diff --git a/themes/flatPlus-fnuanthragreen.theme b/themes/flatPlus-fnuanthragreen.theme
new file mode 100644
index 0000000..bd00905
--- /dev/null
+++ b/themes/flatPlus-fnuanthragreen.theme
@@ -0,0 +1,118 @@
+Description = fnu anthra.green
+clrTopBarBg = BF000000
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFBC0000
+clrTopBarRecordingActiveBg = BF000000
+clrTopBarBorderFg = BF000000
+clrTopBarBorderBg = BF000000
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = BF000000
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = BF000000
+clrButtonBg = BF000000
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = BF000000
+clrButtonBorderBg = BF000000
+clrMessageBg = BF000000
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = BF000000
+clrMessageBorderBg = BF000000
+clrChannelBg = BF000000
+clrChannelFontTitle = FFEEEEEE
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF00CD00
+clrChannelProgressBg = BF000000
+clrChannelRecordingPresentFg = FF00CD00
+clrChannelRecordingPresentBg = BF000000
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = BF000000
+clrChannelBorderFg = BF000000
+clrChannelBorderBg = BF000000
+clrChannelEPGBorderFg = BF000000
+clrChannelEPGBorderBg = BF000000
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FF4b9b3e
+clrChannelSignalProgressBg = BF000000
+clrItemBg = BF000000
+clrItemFont = FF404040
+clrItemCurrentBg = BF404040
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = BF000000
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = D8A0A0A0
+clrScrollbarBarFg = FF00CD00
+clrScrollbarBg = BF000000
+clrMenuEventBg = BF000000
+clrMenuEventFontTitle = FF00CD00
+clrMenuEventTitleLine = FF808080
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = BF000000
+clrMenuRecFontTitle = FF00CD00
+clrMenuRecTitleLine = FF808080
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = BF000000
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = BF000000
+clrMenuContentHeadBorderBg = BF000000
+clrMenuContentBorderFg = BF000000
+clrMenuContentBorderBg = BF000000
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = BF000000
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = BF404040
+clrMenuItemBorderFg = BF000000
+clrMenuItemBorderBg = BF000000
+clrMenuItemSelableBorderFg = BF000000
+clrMenuItemSelableBorderBg = BF000000
+clrMenuItemCurrentBorderFg = BF404040
+clrMenuItemCurrentBorderBg = BF404040
+clrMenuItemExtraTextFont = FFA0A0A0
+clrMenuItemExtraTextCurrentFont = FFA0A0A0
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FF00CD00
+clrReplayBg = BF000000
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF404040
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF00CD00
+clrReplayProgressBg = BF000000
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF404040
+clrReplayBorderFg = BF000000
+clrReplayBorderBg = BF000000
+clrTrackItemBg = D8555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = BF000000
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = D8555555
+clrTrackItemBorderBg = D8555555
+clrTrackItemSelableBorderFg = BF000000
+clrTrackItemSelableBorderBg = BF000000
+clrTrackItemCurrentBg = BF404040
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = BF404040
+clrTrackItemCurrentBorderBg = BF404040
+clrVolumeBg = BF000000
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF404040
+clrVolumeProgressBg = BF000000
+clrVolumeBorderFg = BF000000
+clrVolumeBorderBg = BF000000
diff --git a/themes/flatPlus-fnuanthraivory.theme b/themes/flatPlus-fnuanthraivory.theme
new file mode 100644
index 0000000..1dad55c
--- /dev/null
+++ b/themes/flatPlus-fnuanthraivory.theme
@@ -0,0 +1,118 @@
+Description = fnu anthra.ivory
+clrTopBarBg = BF000000
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFBC0000
+clrTopBarRecordingActiveBg = BF000000
+clrTopBarBorderFg = BF000000
+clrTopBarBorderBg = BF000000
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = BF000000
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = BF000000
+clrButtonBg = BF000000
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = BF000000
+clrButtonBorderBg = BF000000
+clrMessageBg = BF000000
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = BF000000
+clrMessageBorderBg = BF000000
+clrChannelBg = BF000000
+clrChannelFontTitle = FFEEEEEE
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFDED09F
+clrChannelProgressBg = BF000000
+clrChannelRecordingPresentFg = FFDED09F
+clrChannelRecordingPresentBg = BF000000
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = BF000000
+clrChannelBorderFg = BF000000
+clrChannelBorderBg = BF000000
+clrChannelEPGBorderFg = BF000000
+clrChannelEPGBorderBg = BF000000
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FFB8AD85
+clrChannelSignalProgressBg = BF000000
+clrItemBg = BF000000
+clrItemFont = FF404040
+clrItemCurrentBg = BF404040
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = BF000000
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = D8A0A0A0
+clrScrollbarBarFg = FFDED09F
+clrScrollbarBg = BF000000
+clrMenuEventBg = BF000000
+clrMenuEventFontTitle = FFDED09F
+clrMenuEventTitleLine = FF808080
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = BF000000
+clrMenuRecFontTitle = FFDED09F
+clrMenuRecTitleLine = FF808080
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = BF000000
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = BF000000
+clrMenuContentHeadBorderBg = BF000000
+clrMenuContentBorderFg = BF000000
+clrMenuContentBorderBg = BF000000
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = BF000000
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = BF404040
+clrMenuItemBorderFg = BF000000
+clrMenuItemBorderBg = BF000000
+clrMenuItemSelableBorderFg = BF000000
+clrMenuItemSelableBorderBg = BF000000
+clrMenuItemCurrentBorderFg = BF404040
+clrMenuItemCurrentBorderBg = BF404040
+clrMenuItemExtraTextFont = FFA0A0A0
+clrMenuItemExtraTextCurrentFont = FFA0A0A0
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFDED09F
+clrReplayBg = BF000000
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF404040
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFDED09F
+clrReplayProgressBg = BF000000
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF404040
+clrReplayBorderFg = BF000000
+clrReplayBorderBg = BF000000
+clrTrackItemBg = D8555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = BF000000
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = D8555555
+clrTrackItemBorderBg = D8555555
+clrTrackItemSelableBorderFg = BF000000
+clrTrackItemSelableBorderBg = BF000000
+clrTrackItemCurrentBg = BF404040
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = BF404040
+clrTrackItemCurrentBorderBg = BF404040
+clrVolumeBg = BF000000
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF404040
+clrVolumeProgressBg = BF000000
+clrVolumeBorderFg = BF000000
+clrVolumeBorderBg = BF000000
diff --git a/themes/flatPlus-fnuanthralilac.theme b/themes/flatPlus-fnuanthralilac.theme
new file mode 100644
index 0000000..ac15221
--- /dev/null
+++ b/themes/flatPlus-fnuanthralilac.theme
@@ -0,0 +1,118 @@
+Description = fnu anthra.lilac
+clrTopBarBg = BF000000
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFBC0000
+clrTopBarRecordingActiveBg = BF000000
+clrTopBarBorderFg = BF000000
+clrTopBarBorderBg = BF000000
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = BF000000
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = BF000000
+clrButtonBg = BF000000
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = BF000000
+clrButtonBorderBg = BF000000
+clrMessageBg = BF000000
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = BF000000
+clrMessageBorderBg = BF000000
+clrChannelBg = BF000000
+clrChannelFontTitle = FFEEEEEE
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFCA90CB
+clrChannelProgressBg = BF000000
+clrChannelRecordingPresentFg = FFCA90CB
+clrChannelRecordingPresentBg = BF000000
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = BF000000
+clrChannelBorderFg = BF000000
+clrChannelBorderBg = BF000000
+clrChannelEPGBorderFg = BF000000
+clrChannelEPGBorderBg = BF000000
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FF956A96
+clrChannelSignalProgressBg = BF000000
+clrItemBg = BF000000
+clrItemFont = FF404040
+clrItemCurrentBg = BF404040
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = BF000000
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = D8A0A0A0
+clrScrollbarBarFg = FFCA90CB
+clrScrollbarBg = BF000000
+clrMenuEventBg = BF000000
+clrMenuEventFontTitle = FFCA90CB
+clrMenuEventTitleLine = FF808080
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = BF000000
+clrMenuRecFontTitle = FFCA90CB
+clrMenuRecTitleLine = FF808080
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = BF000000
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = BF000000
+clrMenuContentHeadBorderBg = BF000000
+clrMenuContentBorderFg = BF000000
+clrMenuContentBorderBg = BF000000
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = BF000000
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = BF404040
+clrMenuItemBorderFg = BF000000
+clrMenuItemBorderBg = BF000000
+clrMenuItemSelableBorderFg = BF000000
+clrMenuItemSelableBorderBg = BF000000
+clrMenuItemCurrentBorderFg = BF404040
+clrMenuItemCurrentBorderBg = BF404040
+clrMenuItemExtraTextFont = FFA0A0A0
+clrMenuItemExtraTextCurrentFont = FFA0A0A0
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFCA90CB
+clrReplayBg = BF000000
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF404040
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFCA90CB
+clrReplayProgressBg = BF000000
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF404040
+clrReplayBorderFg = BF000000
+clrReplayBorderBg = BF000000
+clrTrackItemBg = D8555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = BF000000
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = D8555555
+clrTrackItemBorderBg = D8555555
+clrTrackItemSelableBorderFg = BF000000
+clrTrackItemSelableBorderBg = BF000000
+clrTrackItemCurrentBg = BF404040
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = BF404040
+clrTrackItemCurrentBorderBg = BF404040
+clrVolumeBg = BF000000
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF404040
+clrVolumeProgressBg = BF000000
+clrVolumeBorderFg = BF000000
+clrVolumeBorderBg = BF000000
diff --git a/themes/flatPlus-fnuanthrared.theme b/themes/flatPlus-fnuanthrared.theme
new file mode 100644
index 0000000..434b774
--- /dev/null
+++ b/themes/flatPlus-fnuanthrared.theme
@@ -0,0 +1,118 @@
+Description = fnu anthra.red
+clrTopBarBg = BF000000
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFBC0000
+clrTopBarRecordingActiveBg = BF000000
+clrTopBarBorderFg = BF000000
+clrTopBarBorderBg = BF000000
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = BF000000
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = BF000000
+clrButtonBg = BF000000
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = BF000000
+clrButtonBorderBg = BF000000
+clrMessageBg = BF000000
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = BF000000
+clrMessageBorderBg = BF000000
+clrChannelBg = BF000000
+clrChannelFontTitle = FFEEEEEE
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FFBC0000
+clrChannelProgressBg = BF000000
+clrChannelRecordingPresentFg = FFBC0000
+clrChannelRecordingPresentBg = BF000000
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = BF000000
+clrChannelBorderFg = BF000000
+clrChannelBorderBg = BF000000
+clrChannelEPGBorderFg = BF000000
+clrChannelEPGBorderBg = BF000000
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FF8a3342
+clrChannelSignalProgressBg = BF000000
+clrItemBg = BF000000
+clrItemFont = FF404040
+clrItemCurrentBg = BF404040
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = BF000000
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = D8A0A0A0
+clrScrollbarBarFg = FFBC0000
+clrScrollbarBg = BF000000
+clrMenuEventBg = BF000000
+clrMenuEventFontTitle = FFBC0000
+clrMenuEventTitleLine = FF808080
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = BF000000
+clrMenuRecFontTitle = FFBC0000
+clrMenuRecTitleLine = FF808080
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = BF000000
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = BF000000
+clrMenuContentHeadBorderBg = BF000000
+clrMenuContentBorderFg = BF000000
+clrMenuContentBorderBg = BF000000
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = BF000000
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = BF404040
+clrMenuItemBorderFg = BF000000
+clrMenuItemBorderBg = BF000000
+clrMenuItemSelableBorderFg = BF000000
+clrMenuItemSelableBorderBg = BF000000
+clrMenuItemCurrentBorderFg = BF404040
+clrMenuItemCurrentBorderBg = BF404040
+clrMenuItemExtraTextFont = FFA0A0A0
+clrMenuItemExtraTextCurrentFont = FFA0A0A0
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FFBC0000
+clrReplayBg = BF000000
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF404040
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FFBC0000
+clrReplayProgressBg = BF000000
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF404040
+clrReplayBorderFg = BF000000
+clrReplayBorderBg = BF000000
+clrTrackItemBg = D8555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = BF000000
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = D8555555
+clrTrackItemBorderBg = D8555555
+clrTrackItemSelableBorderFg = BF000000
+clrTrackItemSelableBorderBg = BF000000
+clrTrackItemCurrentBg = BF404040
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = BF404040
+clrTrackItemCurrentBorderBg = BF404040
+clrVolumeBg = BF000000
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF404040
+clrVolumeProgressBg = BF000000
+clrVolumeBorderFg = BF000000
+clrVolumeBorderBg = BF000000
diff --git a/themes/flatPlus-fnuanthrayablue.theme b/themes/flatPlus-fnuanthrayablue.theme
new file mode 100644
index 0000000..10e36a2
--- /dev/null
+++ b/themes/flatPlus-fnuanthrayablue.theme
@@ -0,0 +1,118 @@
+Description = fnu anthra.yablue
+clrTopBarBg = BF000000
+clrTopBarFont = FFEEEEEE
+clrTopBarTimeFont = FFEEEEEE
+clrTopBarDateFont = FFA0A0A0
+clrTopBarRecordingActiveFg = FFBC0000
+clrTopBarRecordingActiveBg = BF000000
+clrTopBarBorderFg = BF000000
+clrTopBarBorderBg = BF000000
+clrTopBarConflictLowFg = FFCCBB33
+clrTopBarConflictLowBg = BF000000
+clrTopBarConflictHighFg =  FFCC2222
+clrTopBarConflictHighBg = BF000000
+clrButtonBg = BF000000
+clrButtonFont = FFEEEEEE
+clrButtonRed = FFCC2222
+clrButtonGreen = FF40A040
+clrButtonYellow = FFCCBB22
+clrButtonBlue = FF2222CC
+clrButtonBorderFg = BF000000
+clrButtonBorderBg = BF000000
+clrMessageBg = BF000000
+clrMessageFont = FFAAAAAA
+clrMessageStatus = FF2222CC
+clrMessageInfo = FF337633
+clrMessageWarning = FFCCBB33
+clrMessageError = FFCC2222
+clrMessageBorderFg = BF000000
+clrMessageBorderBg = BF000000
+clrChannelBg = BF000000
+clrChannelFontTitle = FFEEEEEE
+clrChannelFontEpg = FFEEEEEE
+clrChannelFontEpgFollow = FFA0A0A0
+clrChannelProgressFg = FFA0A0A0
+clrChannelProgressBarFg = FF4e78b1
+clrChannelProgressBg = BF000000
+clrChannelRecordingPresentFg = FF4e78b1
+clrChannelRecordingPresentBg = BF000000
+clrChannelRecordingFollowFg = FFA0A0A0
+clrChannelRecordingFollowBg = BF000000
+clrChannelBorderFg = BF000000
+clrChannelBorderBg = BF000000
+clrChannelEPGBorderFg = BF000000
+clrChannelEPGBorderBg = BF000000
+clrChannelSignalFont = FFA0A0A0
+clrChannelSignalProgressFg = FFA0A0A0
+clrChannelSignalProgressBarFg = FF38618c
+clrChannelSignalProgressBg = BF000000
+clrItemBg = BF000000
+clrItemFont = FF404040
+clrItemCurrentBg = BF404040
+clrItemCurrentFont = FFEEEEEE
+clrItemSelableBg = BF000000
+clrItemSelableFont = FFEEEEEE
+clrScrollbarFg = D8A0A0A0
+clrScrollbarBarFg = FF4e78b1
+clrScrollbarBg = BF000000
+clrMenuEventBg = BF000000
+clrMenuEventFontTitle = FF4e78b1
+clrMenuEventTitleLine = FF808080
+clrMenuEventFontInfo = FFD0D0D0
+clrMenuRecBg = BF000000
+clrMenuRecFontTitle = FF4e78b1
+clrMenuRecTitleLine = FF808080
+clrMenuRecFontInfo = FFD0D0D0
+clrMenuTextBg = BF000000
+clrMenuTextFont = FFEEEEEE
+clrMenuTextFixedFont = FFCCBB22
+clrMenuContentHeadBorderFg = BF000000
+clrMenuContentHeadBorderBg = BF000000
+clrMenuContentBorderFg = BF000000
+clrMenuContentBorderBg = BF000000
+clrMenuItemProgressFg = FFEEEEEE
+clrMenuItemProgressBarFg = FFEEEEEE
+clrMenuItemProgressBg = BF000000
+clrMenuItemCurProgressFg = FFEEEEEE
+clrMenuItemCurProgressBarFg = FFEEEEEE
+clrMenuItemCurProgressBg = BF404040
+clrMenuItemBorderFg = BF000000
+clrMenuItemBorderBg = BF000000
+clrMenuItemSelableBorderFg = BF000000
+clrMenuItemSelableBorderBg = BF000000
+clrMenuItemCurrentBorderFg = BF404040
+clrMenuItemCurrentBorderBg = BF404040
+clrMenuItemExtraTextFont = FFA0A0A0
+clrMenuItemExtraTextCurrentFont = FFA0A0A0
+clrMenuTimerItemDisabledFont = FFA0A0A0
+clrMenuTimerItemRecordingFont = FF4e78b1
+clrReplayBg = BF000000
+clrReplayFont = FFEEEEEE
+clrReplayFontSpeed = FF404040
+clrReplayProgressFg = FF555555
+clrReplayProgressBarFg = FF757575
+clrReplayProgressBarCurFg = FF4e78b1
+clrReplayProgressBg = BF000000
+clrReplayMarkFg = FFEEEEEE
+clrReplayMarkCurrentFg = FF404040
+clrReplayBorderFg = BF000000
+clrReplayBorderBg = BF000000
+clrTrackItemBg = D8555555
+clrTrackItemFont = FFEEEEEE
+clrTrackItemSelableBg = BF000000
+clrTrackItemSelableFont = FFEEEEEE
+clrTrackItemBorderFg = D8555555
+clrTrackItemBorderBg = D8555555
+clrTrackItemSelableBorderFg = BF000000
+clrTrackItemSelableBorderBg = BF000000
+clrTrackItemCurrentBg = BF404040
+clrTrackItemCurrentFont = FFEEEEEE
+clrTrackItemCurrentBorderFg = BF404040
+clrTrackItemCurrentBorderBg = BF404040
+clrVolumeBg = BF000000
+clrVolumeFont = FFEEEEEE
+clrVolumeProgressFg = FF555555
+clrVolumeProgressBarFg = FF404040
+clrVolumeProgressBg = BF000000
+clrVolumeBorderFg = BF000000
+clrVolumeBorderBg = BF000000
diff --git a/widgets/command_output/README b/widgets/command_output/README
new file mode 100644
index 0000000..1e949b0
--- /dev/null
+++ b/widgets/command_output/README
@@ -0,0 +1,6 @@
+This widget is for an own command
+
+The command "command" will be executed every time the widget is drawn, so please keep it short and fast.
+The command have to provide two output files: "title" and "output".
+"title" is the title for the widget.
+The "output" file is read line by line. And every line is drawn without wrap the line if it is to long.
diff --git a/widgets/command_output/command.example b/widgets/command_output/command.example
new file mode 100755
index 0000000..25eab1b
--- /dev/null
+++ b/widgets/command_output/command.example
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+OUTPUTFLDR="/tmp/skinflatplus/widgets/command_output"
+mkdir -p ${OUTPUTFLDR}
+
+echo "MyTitle" > ${OUTPUTFLDR}/title
+
+echo "output line 1" > ${OUTPUTFLDR}/output
+echo "output line 2" >> ${OUTPUTFLDR}/output
diff --git a/widgets/system_information/README b/widgets/system_information/README
new file mode 100644
index 0000000..9209310
--- /dev/null
+++ b/widgets/system_information/README
@@ -0,0 +1,15 @@
+This widget provides several information about the current system state.
+
+You must manually create a link to the corresponding script, for example:
+ln -s system_information.ubuntu system_information
+
+The command "system_information" will be executed every time the widget is drawn, so please keep it short and fast.
+The command "system_information" must provide several files with the infos.
+The output files must begin with 01_ - 99_ for sort/position the info in the widget. For example "01_uptime", "02_load", etc.The values will be drawn in 2 columns except "system_version" and "kernel_version" they are drawn in a row.
+For example:
+System Version: Ubuntu 14.04.1 LTS
+Load: 0.32      Uptime: 10:24:42 up 88 days
+
+You can include system_updatestatus and temperatures. But do not execute the system_updatestatus script (please read README of system_updatestatus)
+
+Please see the example!
diff --git a/widgets/system_information/system_information.g2v b/widgets/system_information/system_information.g2v
new file mode 100755
index 0000000..727b20c
--- /dev/null
+++ b/widgets/system_information/system_information.g2v
@@ -0,0 +1,182 @@
+#!/bin/bash
+
+# this script will be executed when the widget will be drawn
+# so make it short and fast
+
+OUTPUTFLDR="/tmp/skinflatplus/widgets/system_information"
+mkdir -p ${OUTPUTFLDR}
+
+OUTPUTFLDRTEMP="/tmp/skinflatplus/widgets/temperatures"
+OUTPUTFLDRSUPD="/tmp/skinflatplus/widgets/system_updatestatus"
+
+
+# enable/disable items
+SHOW_SYS_VERSION=1
+SHOW_KERNEL_VERSION=0
+SHOW_UPTIME=1
+SHOW_LOAD=1
+SHOW_PROCESSES=1
+SHOW_MEM_USAGE=1
+SHOW_SWAP_USAGE=1
+SHOW_ROOT_USAGE=1
+SHOW_VIDEO_USAGE=0
+SHOW_VDR_CPU_USAGE=1
+SHOW_VDR_MEM_USAGE=1
+
+SHOW_TEMPERATURES=0
+SHOW_SYSUPDATES=0
+
+# Position of items
+# sys_version & kernel_version are drawn in one line
+# all others will be drawn in two column
+# for example
+# System Version: Ubuntu 14.04.1 LTS
+# Uptime: 1:20 5m       Load: 0.41
+
+# must begin with 01
+SYS_VERSION_POS="01"
+KERNEL_VERSION_POS="02"
+UPTIME_POS="03"
+LOAD_POS="04"
+PROCESSES_POS="05"
+MEM_USAGE_POS="06"
+SWAP_USAGE_POS="07"
+ROOT_USAGE_POS="08"
+VIDEO_USAGE_POS="09"
+VDR_CPU_USAGE_POS="10"
+VDR_MEM_USAGE_POS="11"
+
+TEMP_CPU_POS=15
+TEMP_PCCASE_POS=16
+TEMP_GPU_POS=17
+
+SYSUPD_POS=20
+SYSSECUPD_POS=21
+
+# mount point of vdr video disk
+VIDEO_MOUNT="/video"
+
+# force english output for filters
+LANG=en_EN
+
+# Release-File (PRETTY_NAME & VERSION)
+REL_FILE="/etc/g2v-release"
+
+# delete all files
+rm -f ${OUTPUTFLDR}/[0-99]*
+
+if [ $SHOW_SYS_VERSION = 1 ]; then
+  if [ -e $REL_FILE ] ; then
+    while IFS= read -r; do
+      [[ ${REPLY} =~ PRETTY_NAME ]] && declare "${REPLY}" # locale Variable
+      [[ ${REPLY} =~ VERSION ]] && declare "${REPLY}"     # locale Variable
+    done < $REL_FILE
+    [ -n "$PRETTY_NAME" ] && echo "${PRETTY_NAME//\"/} ${VERSION//\"/}" > ${OUTPUTFLDR}/${SYS_VERSION_POS}_sys_version
+  fi
+fi
+
+if [ $SHOW_KERNEL_VERSION = 1 ]; then
+    uname -r > ${OUTPUTFLDR}/${KERNEL_VERSION_POS}_kernel_version
+fi
+
+if [ $SHOW_UPTIME = 1 ]; then
+  UPTIME=($(cat /proc/uptime))  # UpTime in Array
+  UPTIME[0]=${UPTIME[0]%.*}     # .* entfernen (UpTime in Sekunden)
+  TAGE=$((UPTIME[0] / 86400)) ; STD=$((UPTIME[0] % 86400 / 3600))
+  MIN=$((UPTIME[0] % 3600 / 60)) ; SEK=$((UPTIME[0] % 60))
+  if [ $TAGE -ge 1 ] ; then
+    echo "${TAGE}T ${STD}S ${MIN}M" > ${OUTPUTFLDR}/${UPTIME_POS}_uptime
+  else
+    [ $STD -ge 1 ] && echo -n "${STD} Std. " > ${OUTPUTFLDR}/${UPTIME_POS}_uptime
+    echo "${MIN} Min." >> ${OUTPUTFLDR}/${UPTIME_POS}_uptime
+  fi
+fi
+
+if [ $SHOW_LOAD = 1 ]; then
+  LOADAVG=($(cat /proc/loadavg))   # Zeile in Array
+  echo "${LOADAVG[0]//./,}" > ${OUTPUTFLDR}/${LOAD_POS}_load
+fi
+
+if [ $SHOW_PROCESSES = 1 ]; then
+  PROCS=($(ls -d /proc/[0-9]*/))
+  echo "${#PROCS[@]}" > ${OUTPUTFLDR}/${PROCESSES_POS}_processes
+fi
+
+if [ $SHOW_MEM_USAGE = 1 ]; then
+  mapfile -t < <(free -m)    # Ausgabe von free in Array (Vier Zeilen)
+  MEM=(${MAPFILE[1]})        # 2. Zeile
+  BUF=(${MAPFILE[2]})        # 3. Zeile
+  MEM_USAGE=$((${BUF[2]} * 1000 / ${MEM[1]}))
+  [ $MEM_USAGE -lt 10 ] && MEM_USAGE="0${MEM_USAGE}"
+  MEM_DEC=${MEM_USAGE: -1}
+  echo "${MEM_USAGE:0: -1},${MEM_DEC}%" > ${OUTPUTFLDR}/${MEM_USAGE_POS}_mem_usage
+fi
+
+if [ $SHOW_SWAP_USAGE = 1 ]; then
+  mapfile -t < <(free -m)    # Ausgabe von free in Array (Vier Zeilen)
+  SWAP=(${MAPFILE[3]})       # 4. Zeile
+  if [ ${SWAP[1]} -gt 0 ]; then # Swap Total
+    if [ ${SWAP[2]} -gt 0 ]; then # Swap Used
+      SWP=$((${SWAP[2]} * 1000 / ${SWAP[1]}))
+      [ $SWP -lt 10 ] && SWP="0${SWP}"
+      SWP_DEC=${SWP: -1} ; SWP=${SWP:0: -1},${SWP_DEC}
+      echo "${SWP}%" > ${OUTPUTFLDR}/${SWAP_USAGE_POS}_swap_usage
+    else
+      echo "0,0%" > ${OUTPUTFLDR}/${SWAP_USAGE_POS}_swap_usage
+    fi
+  fi
+fi
+
+if [ $SHOW_ROOT_USAGE = 1 ]; then
+  mapfile -t < <(df -Ph /)    # Ausgabe von df in Array (Zwei Zeilen)
+  ROOTUSAGE=(${MAPFILE[1]})   # 2. Zeile in Array
+  # Beispiel 2. Zeile: tmpfs  128M  30M  99M  23%  /root
+  echo "${ROOTUSAGE[4]}" > ${OUTPUTFLDR}/${ROOT_USAGE_POS}_root_usage
+fi
+
+if [ $SHOW_VIDEO_USAGE = 1 ] && [ -d ${VIDEO_MOUNT} ]; then
+  mapfile -t < <(df -Ph ${VIDEO_MOUNT})    # Ausgabe von df in Array (Zwei Zeilen)
+  VIDEOUSAGE=(${MAPFILE[1]})               # 2. Zeile in Array
+  # Beispiel 2. Zeile: tmpfs  128M  30M  99M  23%  /root
+  echo "${VIDEOUSAGE[4]}" > ${OUTPUTFLDR}/${VIDEO_USAGE_POS}_video_usage
+fi
+
+if [ $SHOW_VDR_CPU_USAGE = 1 ]; then
+  vdr_pid=$(pidof vdr)
+  if [ $? = 0 ]; then
+    mapfile -t < <(ps -p ${vdr_pid} -o %cpu) # Ausgabe von ps in Array (Zwei Zeilen)
+    CPU_USAGE=${MAPFILE[1]/./,}              # 24.2 -> 24,2
+    echo "${CPU_USAGE}%" > ${OUTPUTFLDR}/${VDR_CPU_USAGE_POS}_vdr_cpu_usage
+  fi
+fi
+
+if [ $SHOW_VDR_MEM_USAGE = 1 ]; then
+  vdr_pid=$(pidof vdr)
+  if [ $? = 0 ]; then
+    mapfile -t < <(ps -p ${vdr_pid} -o %mem) # Ausgabe von ps in Array (Zwei Zeilen)
+    VDR_MEM_USAGE=${MAPFILE[1]/./,}          # 24.2 -> 24,2
+    echo "${VDR_MEM_USAGE}%" > ${OUTPUTFLDR}/${VDR_MEM_USAGE_POS}_vdr_mem_usage
+  fi
+fi
+
+if [ $SHOW_TEMPERATURES = 1 ]; then
+    ./../temperatures/temperatures
+    if [ -f ${OUTPUTFLDRTEMP}/cpu ]; then
+        cp ${OUTPUTFLDRTEMP}/cpu ${OUTPUTFLDR}/${TEMP_CPU_POS}_cpu
+    fi
+    if [ -f ${OUTPUTFLDRTEMP}/pccase ]; then
+        cp ${OUTPUTFLDRTEMP}/pccase ${OUTPUTFLDR}/${TEMP_PCCASE_POS}_pccase
+    fi
+    if [ -f ${OUTPUTFLDRTEMP}/gpu ]; then
+        cp ${OUTPUTFLDRTEMP}/gpu ${OUTPUTFLDR}/${TEMP_GPU_POS}_gpu
+    fi
+fi
+
+if [ $SHOW_SYSUPDATES = 1 ]; then
+    if [ -f ${OUTPUTFLDRSUPD}/updates ]; then
+        cp ${OUTPUTFLDRSUPD}/updates ${OUTPUTFLDR}/${SYSUPD_POS}_updates
+    fi
+    if [ -f ${OUTPUTFLDRSUPD}/security_updates ]; then
+        cp ${OUTPUTFLDRSUPD}/security_updates ${OUTPUTFLDR}/${SYSSECUPD_POS}_security_updates
+    fi
+fi
diff --git a/widgets/system_information/system_information.ubuntu b/widgets/system_information/system_information.ubuntu
new file mode 100755
index 0000000..269b0be
--- /dev/null
+++ b/widgets/system_information/system_information.ubuntu
@@ -0,0 +1,172 @@
+#!/bin/bash
+
+# this script will be executed when the widget will be drawn
+# so make it short and fast
+
+OUTPUTFLDR="/tmp/skinflatplus/widgets/system_information"
+mkdir -p ${OUTPUTFLDR}
+
+OUTPUTFLDRTEMP="/tmp/skinflatplus/widgets/temperatures"
+OUTPUTFLDRSUPD="/tmp/skinflatplus/widgets/system_updatestatus"
+
+# enable/disable items
+SHOW_SYS_VERSION=0
+SHOW_KERNEL_VERSION=0
+SHOW_UPTIME=1
+SHOW_LOAD=1
+SHOW_PROCESSES=1
+SHOW_MEM_USAGE=1
+SHOW_SWAP_USAGE=1
+SHOW_ROOT_USAGE=1
+SHOW_VIDEO_USAGE=1
+SHOW_VDR_CPU_USAGE=1
+SHOW_VDR_MEM_USAGE=1
+
+SHOW_TEMPERATURES=0
+SHOW_SYSUPDATES=0
+
+# Position of items
+# sys_version & kernel_version are drawn in one line
+# all others will be drawn in two column
+# for example
+# System Version: Ubuntu 14.04.1 LTS
+# Uptime: 1:20 5m       Load: 0.41
+
+# must begin with 01
+SYS_VERSION_POS="01"
+KERNEL_VERSION_POS="02"
+UPTIME_POS="03"
+LOAD_POS="04"
+PROCESSES_POS="05"
+MEM_USAGE_POS="06"
+SWAP_USAGE_POS="07"
+ROOT_USAGE_POS="08"
+VIDEO_USAGE_POS="09"
+VDR_CPU_USAGE_POS="10"
+VDR_MEM_USAGE_POS="11"
+
+TEMP_CPU_POS=15
+TEMP_PCCASE_POS=16
+TEMP_GPU_POS=17
+
+SYSUPD_POS=20
+SYSSECUPD_POS=21
+
+# mount point of vdr video disk
+VIDEO_MOUNT="/media/video"
+
+
+# force english output for filters
+LANG=en_EN
+
+# Get own Path
+SELF="$(readlink -m /proc/$$/fd/255)" # $0
+MY_DIR="$(dirname $SELF)"             # Path
+
+# delete all files
+rm -f ${OUTPUTFLDR}/[0-99]*
+
+if [ $SHOW_SYS_VERSION = 1 ]; then
+    cat /etc/os-release | grep "PRETTY_NAME=" | cut -d"\"" -f 2 > ${OUTPUTFLDR}/${SYS_VERSION_POS}_sys_version
+fi
+
+if [ $SHOW_KERNEL_VERSION = 1 ]; then
+    uname -r > ${OUTPUTFLDR}/${KERNEL_VERSION_POS}_kernel_version
+fi
+
+if [ $SHOW_UPTIME = 1 ]; then
+  UPTIME=($(cat /proc/uptime))  # UpTime in Array
+  UPTIME[0]=${UPTIME[0]%.*}     # .* entfernen (UpTime in Sekunden)
+  TAGE=$((UPTIME[0] / 86400)) ; STD=$((UPTIME[0] % 86400 / 3600))
+  MIN=$((UPTIME[0] % 3600 / 60)) ; SEK=$((UPTIME[0] % 60))
+  if [ $TAGE -ge 1 ] ; then
+    echo "${TAGE}T ${STD}S ${MIN}M" > ${OUTPUTFLDR}/${UPTIME_POS}_uptime
+  else
+    [ $STD -ge 1 ] && echo -n "${STD} Std. " > ${OUTPUTFLDR}/${UPTIME_POS}_uptime
+    echo "${MIN} Min." >> ${OUTPUTFLDR}/${UPTIME_POS}_uptime
+  fi
+fi
+
+if [ $SHOW_LOAD = 1 ]; then
+  LOADAVG=($(cat /proc/loadavg))   # Zeile in Array
+  echo "${LOADAVG[0]//./,}" > ${OUTPUTFLDR}/${LOAD_POS}_load
+fi
+
+if [ $SHOW_PROCESSES = 1 ]; then
+  PROCS=($(ls -d /proc/[0-9]*/))
+  echo "${#PROCS[@]}" > ${OUTPUTFLDR}/${PROCESSES_POS}_processes
+fi
+
+if [ $SHOW_MEM_USAGE = 1 ]; then
+  mapfile -t < <(free -m)    # Ausgabe von free in Array (Vier Zeilen)
+  MEM=(${MAPFILE[1]})        # 2. Zeile
+  BUF=(${MAPFILE[2]})        # 3. Zeile
+  MEM_USAGE=$((${BUF[2]} * 1000 / ${MEM[1]}))
+  [ $MEM_USAGE -lt 10 ] && MEM_USAGE="0${MEM_USAGE}"
+  MEM_DEC=${MEM_USAGE: -1}
+  echo "${MEM_USAGE:0: -1},${MEM_DEC}%" > ${OUTPUTFLDR}/${MEM_USAGE_POS}_mem_usage
+fi
+
+if [ $SHOW_SWAP_USAGE = 1 ]; then
+  mapfile -t < <(free -m)    # Ausgabe von free in Array (Vier Zeilen)
+  SWAP=(${MAPFILE[3]})       # 4. Zeile
+  if [ ${SWAP[1]} -gt 0 ]; then # Swap Total
+    if [ ${SWAP[2]} -gt 0 ]; then # Swap Used
+      SWP=$((${SWAP[2]} * 1000 / ${SWAP[1]}))
+      [ $SWP -lt 10 ] && SWP="0${SWP}"
+      SWP_DEC=${SWP: -1} ; SWP=${SWP:0: -1},${SWP_DEC}
+      echo "${SWP}%" > ${OUTPUTFLDR}/${SWAP_USAGE_POS}_swap_usage
+    else
+      echo "0,0%" > ${OUTPUTFLDR}/${SWAP_USAGE_POS}_swap_usage
+    fi
+  fi
+fi
+
+if [ $SHOW_ROOT_USAGE = 1 ]; then
+    df -h / | awk '/\// {print $(NF-1)}' > ${OUTPUTFLDR}/${ROOT_USAGE_POS}_root_usage
+fi
+
+if [ $SHOW_VIDEO_USAGE = 1 ] && [ -d ${VIDEO_MOUNT} ]; then
+    df -h ${VIDEO_MOUNT} | awk '/\// {print $(NF-1)}' > ${OUTPUTFLDR}/${VIDEO_USAGE_POS}_video_usage
+fi
+
+if [ $SHOW_VDR_CPU_USAGE = 1 ]; then
+  vdr_pid=$(pidof vdr)
+  if [ $? = 0 ]; then
+    mapfile -t < <(ps -p ${vdr_pid} -o %cpu) # Ausgabe von ps in Array (Zwei Zeilen)
+    CPU_USAGE=${MAPFILE[1]/./,}              # 24.2 -> 24,2
+    echo "${CPU_USAGE}%" > ${OUTPUTFLDR}/${VDR_CPU_USAGE_POS}_vdr_cpu_usage
+  fi
+fi
+
+if [ $SHOW_VDR_MEM_USAGE = 1 ]; then
+  vdr_pid=$(pidof vdr)
+  if [ $? = 0 ]; then
+    mapfile -t < <(ps -p ${vdr_pid} -o %mem) # Ausgabe von ps in Array (Zwei Zeilen)
+    VDR_MEM_USAGE=${MAPFILE[1]/./,}          # 24.2 -> 24,2
+    echo "${VDR_MEM_USAGE}%" > ${OUTPUTFLDR}/${VDR_MEM_USAGE_POS}_vdr_mem_usage
+  fi
+fi
+
+if [ $SHOW_TEMPERATURES = 1 ]; then
+    TEMPERATURES_DIR="$(readlink -m $MY_DIR/../temperatures)"
+    bash $TEMPERATURES_DIR/temperatures
+    if [ -f ${OUTPUTFLDRTEMP}/cpu ]; then
+        cp ${OUTPUTFLDRTEMP}/cpu ${OUTPUTFLDR}/${TEMP_CPU_POS}_cpu
+    fi
+    if [ -f ${OUTPUTFLDRTEMP}/pccase ]; then
+        cp ${OUTPUTFLDRTEMP}/pccase ${OUTPUTFLDR}/${TEMP_PCCASE_POS}_pccase
+    fi
+    if [ -f ${OUTPUTFLDRTEMP}/gpu ]; then
+        cp ${OUTPUTFLDRTEMP}/gpu ${OUTPUTFLDR}/${TEMP_GPU_POS}_gpu
+    fi
+fi
+
+if [ $SHOW_SYSUPDATES = 1 ]; then
+    if [ -f ${OUTPUTFLDRSUPD}/updates ]; then
+        cp ${OUTPUTFLDRSUPD}/updates ${OUTPUTFLDR}/${SYSUPD_POS}_updates
+    fi
+    if [ -f ${OUTPUTFLDRSUPD}/security_updates ]; then
+        cp ${OUTPUTFLDRSUPD}/security_updates ${OUTPUTFLDR}/${SYSSECUPD_POS}_security_updates
+    fi
+fi
diff --git a/widgets/system_updatestatus/README b/widgets/system_updatestatus/README
new file mode 100644
index 0000000..3bcf728
--- /dev/null
+++ b/widgets/system_updatestatus/README
@@ -0,0 +1,8 @@
+This widget provide information about available updates of the system.
+
+Since the command usually needs long time to execute this is not called from skin flatPlus.
+You have to call the command from the system via cron or at system start.
+For example call the command from cron.daily.
+
+The command can provide to output files: "updates" and "security_updates". The file "security_updates" is optional.
+
diff --git a/widgets/system_updatestatus/system_update_status.ubuntu b/widgets/system_updatestatus/system_update_status.ubuntu
new file mode 100755
index 0000000..0097262
--- /dev/null
+++ b/widgets/system_updatestatus/system_update_status.ubuntu
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+OUTPUTFLDR="/tmp/skinflatplus/widgets/system_updatestatus"
+mkdir -p ${OUTPUTFLDR}
+
+APTCHECK=/usr/lib/update-notifier/apt-check
+
+rm -f ${OUTPUTFLDR}/updates ${OUTPUTFLDR}/security_updates
+
+if [ ! -f ${APTCHECK} ]
+then
+    exit
+fi
+
+RET=$(${APTCHECK} 2>&1)
+
+# updates
+echo $RET | cut -d";" -f1 > ${OUTPUTFLDR}/updates
+# security updates
+echo $RET | cut -d";" -f2 > ${OUTPUTFLDR}/security_updates
diff --git a/widgets/temperatures/README b/widgets/temperatures/README
new file mode 100644
index 0000000..5f22c35
--- /dev/null
+++ b/widgets/temperatures/README
@@ -0,0 +1,10 @@
+This Widget provide information about the system temperatures.
+
+You must manually create a link to the corresponding script, for example:
+ln -s temperatures.default temperatures
+
+The command "temperatures" will be executed every time the widget is drawn, so please keep it short and fast.
+The command can provide three temperatures: cpu, pc case and gpu temperature
+The command can also be called from system information widget. So the output files must also begin with 01_ - 99_ for sort/position. 
+
+Please install lm-sensors and configure it for your system. See the default script for an example.
diff --git a/widgets/temperatures/temperatures.default b/widgets/temperatures/temperatures.default
new file mode 100755
index 0000000..5d823b5
--- /dev/null
+++ b/widgets/temperatures/temperatures.default
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+# please update this script to fit your needs
+# this script is call every time the widget will be drawn, so keep it short and fast ;)
+
+OUTPUTFLDR="/tmp/skinflatplus/widgets/temperatures"
+mkdir -p ${OUTPUTFLDR}
+
+# if the script is executed from system_information script set the locale back for "°C"
+LANG=de_DE.UTF-8
+
+# there can be 4 files, cpu, gpu, pccase, motherboard
+
+rm -f ${OUTPUTFLDR}/cpu ${OUTPUTFLDR}/pccase ${OUTPUTFLDR}/gpu ${OUTPUTFLDR}/motherboard
+
+# intel core-i cpu temp
+sensors -A coretemp-isa-0000 | grep "Core 0" | awk '{print $3}' | tr -d "+" > ${OUTPUTFLDR}/cpu
+
+# pc case temp
+#sensors -A acpitz-virtual-0 | grep "temp1" | awk '{print $2}' | tr -d "+" > ${OUTPUTFLDR}/pccase
+
+# motherboard temp
+sensors -A acpitz-virtual-0 | grep "temp1" | awk '{print $2}' | tr -d "+" > ${OUTPUTFLDR}/motherboard
+
+# nvidia gpu temp
+# nvidia-settings must be run as the user of the x server
+GPU=`nvidia-settings -c :0 -t -query GPUCoreTemp | head -n 1`
+echo "${GPU}°C" > ${OUTPUTFLDR}/gpu
diff --git a/widgets/temperatures/temperatures.g2v b/widgets/temperatures/temperatures.g2v
new file mode 100755
index 0000000..cbac970
--- /dev/null
+++ b/widgets/temperatures/temperatures.g2v
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# please update this script to fit your needs
+# this script is call every time the widget will be drawn, so keep it short and fast ;)
+
+OUTPUTFLDR="/tmp/skinflatplus/widgets/temperatures"
+mkdir -p ${OUTPUTFLDR}
+
+# if the script is executed from system_information script set the locale back for "°C"
+LANG=de_DE.UTF-8
+
+# there can be 4 files, cpu, gpu, pccase, motherboard
+
+rm -f ${OUTPUTFLDR}/cpu ${OUTPUTFLDR}/gpu ${OUTPUTFLDR}/pccase ${OUTPUTFLDR}/motherboard
+
+# intel core-i cpu temp
+#sensors -A coretemp-isa-0000 | grep "Core 0" | awk '{print $3}' | tr -d "+" > ./cpu
+
+# cpu temp
+CPUTEMP=($(sensors -A | grep "CPU Temperature"))
+CPUTEMP[2]=${CPUTEMP[2]/+}                      # +36.0°C -> 36.0°C
+#echo "${CPUTEMP[2]/./,}" > ${OUTPUTFLDR}/cpu               # 36,0°C
+echo "${CPUTEMP[2]%.*}°C" > ${OUTPUTFLDR}/cpu               # 36°C
+
+# pc case temp
+#sensors -A acpitz-virtual-0 | grep "temp1" | awk '{print $2}' | tr -d "+" > ${OUTPUTFLDR}/pccase
+
+# motherboard temp
+MBTEMP=($(sensors -A | grep "MB Temperature"))
+MBTEMP[2]=${MBTEMP[2]/+}                        # +36.0°C -> 36.0°C
+#echo "${MBTEMP[2]/./,}" > ${OUTPUTFLDR}/motherboard        # 36,0°C
+echo "${MBTEMP[2]%.*}°C" > ${OUTPUTFLDR}/motherboard        # 36°C
+
+# nvidia gpu temp
+# nvidia-settings must be run as the user of the x server
+GPU=$(nvidia-settings -c :0 -t -query GPUCoreTemp | head -n 1)
+echo "${GPU}°C" > ${OUTPUTFLDR}/gpu
diff --git a/widgets/weather/GetLatLangFromCity.php b/widgets/weather/GetLatLangFromCity.php
new file mode 100644
index 0000000..1ca7d1e
--- /dev/null
+++ b/widgets/weather/GetLatLangFromCity.php
@@ -0,0 +1,25 @@
+<?php
+
+$handle = fopen ("php://stdin","r");
+echo "Country (like DE for Germany): ";
+$country = fgets($handle);
+echo "City (like Berlin): ";
+$city = fgets($handle);
+
+// get lat & long from google maps
+$MAPSURL = "http://maps.googleapis.com/maps/api/geocode/json?address=".$city.",".$country."&sensor=false";
+$json = file_get_contents($MAPSURL);
+$data = json_decode($json, true);
+
+if( !isset($data['results'][0]) ) { 
+    echo "no latitude and longitude find for: ".$city.",".$country." !\n";
+    exit;
+}
+$latitude  = $data['results'][0]['geometry']['location']['lat'];
+$longitude = $data['results'][0]['geometry']['location']['lng'];
+
+echo "Latitude =  ".$latitude."\n";
+echo "Longitude = ".$longitude."\n";
+echo "put these values in update_weather.config\n";
+
+?>
diff --git a/widgets/weather/README b/widgets/weather/README
new file mode 100644
index 0000000..af7f985
--- /dev/null
+++ b/widgets/weather/README
@@ -0,0 +1,13 @@
+This widget provide information about weather for a defined location.
+
+Since the command usually needs long time to execute this is not called from skin flatPlus.
+You have to call the command from the system via cron or at system start.
+For example call the command from cron.daily.
+
+You need php5 with command line support for this widget. For example in Ubuntu you need the package "php5-cli".
+
+Please move update_weather.config to update_weather.config.sample
+
+mv update_weather.config.sample update_weather.config
+
+Configure your location and others in update_weather.config. Use php-script "GetLatLangFromCity.php" to get latitude & longitude from your location.
diff --git a/widgets/weather/lib/forecast.io.php b/widgets/weather/lib/forecast.io.php
new file mode 100644
index 0000000..a3fdd0b
--- /dev/null
+++ b/widgets/weather/lib/forecast.io.php
@@ -0,0 +1,431 @@
+<?php
+/**
+ * Helper Class for forecast.io webservice
+ */
+
+class ForecastIO{
+
+  private $api_key;
+  const API_ENDPOINT = 'https://api.forecast.io/forecast/';
+
+  /**
+   * Create a new instance
+   *
+   * @param String $api_key
+   */
+  function __construct($api_key) {
+
+    $this->api_key = $api_key;
+
+  }
+
+
+  private function requestData($latitude, $longitude, $units, $language = 'en', $timestamp = false, $exclusions = false) {
+
+    $validUnits = array('auto', 'us', 'si', 'ca', 'uk');
+
+    if (in_array($units, $validUnits)) {
+
+      $request_url = self::API_ENDPOINT .
+        $this->api_key . '/' .
+        $latitude . ',' . $longitude .
+        '?units=' . $units . '&lang=' . $language .
+        ( $timestamp ? ',' . $timestamp : '' ) .
+        ( $exclusions ? '&exclude=' . $exclusions : '' );
+      
+      /**
+        * Use Buffer to cache API-requests if initialized
+        * (if not, just get the latest data)
+        * 
+        * More info: http://git.io/FoO2Qw
+        */
+      
+      if(class_exists('Buffer')) {
+        $cache = new Buffer();
+        $content = $cache->data($request_url);
+      } else {
+        $content = file_get_contents($request_url);
+      }
+
+    } else {
+
+      return false;
+
+    }
+
+    if (!empty($content)) {
+
+      return json_decode($content);
+
+    } else {
+
+      return false;
+
+    }
+
+
+  }
+
+  /**
+   * Will return the current conditions
+   *
+   * @param float $latitude
+   * @param float $longitude
+   * @return \ForecastIOConditions|boolean
+   */
+  function getCurrentConditions($latitude, $longitude, $units = 'auto', $language) {
+
+    $data = $this->requestData($latitude, $longitude, $units, $language);
+
+    if ($data !== false) {
+
+      return new ForecastIOConditions($data->currently);
+
+    } else {
+
+      return false;
+
+    }
+
+  }
+
+  /**
+   * Will return historical conditions for day of given timestamp
+   *
+   * @param float $latitude
+   * @param float $longitude
+   * @param int $timestamp
+   * @return \ForecastIOConditions|boolean
+   */
+  function getHistoricalConditions($latitude, $longitude, $units = 'auto', $language, $timestamp) {
+
+    $exclusions = 'currently,minutely,hourly,alerts,flags';
+
+    $data = $this->requestData($latitude, $longitude, $units, $language, $timestamp, $exclusions);
+
+    if ($data !== false) {
+
+      return new ForecastIOConditions($data->daily->data[0]);
+
+    } else {
+
+      return false;
+
+    }
+
+  }
+
+  /**
+   * Will return conditions on hourly basis for today
+   *
+   * @param type $latitude
+   * @param type $longitude
+   * @return \ForecastIOConditions|boolean
+   */
+  function getForecastToday($latitude, $longitude, $units = 'auto', $language) {
+
+    $data = $this->requestData($latitude, $longitude, $units, $language);
+
+    if ($data !== false) {
+
+      $conditions = array();
+
+      $today = date('Y-m-d');
+
+      foreach ($data->hourly->data as $raw_data) {
+
+        if (date('Y-m-d', $raw_data->time) == $today) {
+
+          $conditions[] = new ForecastIOConditions($raw_data);
+
+        }
+
+      }
+
+      return $conditions;
+
+    } else {
+
+      return false;
+
+    }
+
+  }
+
+
+  /**
+   * Will return daily conditions for next seven days
+   *
+   * @param float $latitude
+   * @param float $longitude
+   * @return \ForecastIOConditions|boolean
+   */
+  function getForecastWeek($latitude, $longitude, $units = 'auto', $language) {
+
+    $data = $this->requestData($latitude, $longitude, $units, $language);
+
+    if ($data !== false) {
+
+      $conditions = array();
+
+      foreach ($data->daily->data as $raw_data) {
+
+        $conditions[] = new ForecastIOConditions($raw_data);
+
+      }
+
+      return $conditions;
+
+    } else {
+
+      return false;
+
+    }
+
+  }
+
+
+}
+
+
+/**
+ * Wrapper for get data by getters
+ */
+class ForecastIOConditions{
+
+  private $raw_data;
+
+  function __construct($raw_data) {
+
+    $this->raw_data = $raw_data;
+
+  }
+
+  /**
+   * Will return the temperature
+   *
+   * @return String
+   */
+  function getTemperature() {
+
+    return $this->raw_data->temperature;
+
+  }
+
+  /**
+   * get the min temperature
+   *
+   * only available for week forecast
+   *
+   * @return type
+   */
+  function getMinTemperature() {
+
+    return $this->raw_data->temperatureMin;
+
+  }
+
+  /**
+   * get max temperature
+   *
+   * only available for week forecast
+   *
+   * @return type
+   */
+  function getMaxTemperature() {
+
+    return $this->raw_data->temperatureMax;
+
+  }
+
+  /**
+   * get apparent temperature (heat index/wind chill)
+   *
+   * only available for current conditions
+   *
+   * @return type
+   */
+  function getApparentTemperature() {
+
+    return $this->raw_data->apparentTemperature;
+
+  }
+
+  /**
+   * Get the summary of the conditions
+   *
+   * @return String
+   */
+  function getSummary() {
+
+    return $this->raw_data->summary;
+
+  }
+
+  /**
+   * Get the icon of the conditions
+   *
+   * @return String
+   */
+  function getIcon() {
+
+    return $this->raw_data->icon;
+
+  }
+
+  /**
+   * Get the time, when $format not set timestamp else formatted time
+   *
+   * @param String $format
+   * @return String
+   */
+  function getTime($format = null) {
+
+    if (!isset($format)) {
+
+      return $this->raw_data->time;
+
+    } else {
+
+      return date($format, $this->raw_data->time);
+
+    }
+
+  }
+
+  /**
+   * Get the pressure
+   *
+   * @return String
+   */
+  function getPressure() {
+
+    return $this->raw_data->pressure;
+
+  }
+
+  /**
+   * Get the dew point
+   *
+   * Available in the current conditions
+   *
+   * @return String
+   */
+  function getDewPoint() {
+
+    return $this->raw_data->dewPoint;
+
+  }
+
+  /**
+   * get humidity
+   *
+   * @return String
+   */
+  function getHumidity() {
+
+    return $this->raw_data->humidity;
+
+  }
+
+  /**
+   * Get the wind speed
+   *
+   * @return String
+   */
+  function getWindSpeed() {
+
+    return $this->raw_data->windSpeed;
+
+  }
+
+  /**
+   * Get wind direction
+   *
+   * @return type
+   */
+  function getWindBearing() {
+
+    return $this->raw_data->windBearing;
+
+  }
+
+  /**
+   * get precipitation type
+   *
+   * @return type
+   */
+  function getPrecipitationType() {
+
+    return $this->raw_data->precipType;
+
+  }
+
+  /**
+   * get the probability 0..1 of precipitation type
+   *
+   * @return type
+   */
+  function getPrecipitationProbability() {
+
+    return $this->raw_data->precipProbability;
+
+  }
+
+  /**
+   * Get the cloud cover
+   *
+   * @return type
+   */
+  function getCloudCover() {
+
+    return $this->raw_data->cloudCover;
+
+  }
+
+
+
+  /**
+   * get sunrise time
+   *
+   * only available for week forecast
+   *
+   * @return type
+   */
+  function getSunrise($format=null) {
+
+    if (!isset($format)) {
+
+      return $this->raw_data->sunriseTime;
+
+    } else {
+
+      return date($format, $this->raw_data->sunriseTime);
+
+    }
+
+  }
+
+  /**
+   * get sunset time
+   *
+   * only available for week forecast
+   *
+   * @return type
+   */
+  function getSunset($format=null) {
+
+    if (!isset($format)) {
+
+      return $this->raw_data->sunsetTime;
+
+    } else {
+
+      return date($format, $this->raw_data->sunsetTime);
+
+    }
+
+  }
+
+}
+?>
diff --git a/widgets/weather/update_weather.config.sample b/widgets/weather/update_weather.config.sample
new file mode 100644
index 0000000..f913d89
--- /dev/null
+++ b/widgets/weather/update_weather.config.sample
@@ -0,0 +1,23 @@
+[main]
+
+; use GetLatLangFromCity.php to get latitude/langitude
+Latitude = 52.5200066 
+Longitude = 13.404954 
+
+; location shown in Skin
+LocationSkin = "Berlin"
+
+; Can be set to 'us', 'si', 'ca', 'uk' or 'auto' (see forecast.io API); default is auto
+Units = "si"
+DegreeSign = "°C"
+
+; Can be set to 'en', 'de', 'pl', 'es', 'fr', 'it', 'tet' or 'x-pig-latin' (see forecast.io API); default is 'en'
+Lang = "de"
+
+; convert . to , for german format
+ConvertPoint2Comma = 1
+
+; We have only 1000 api calls per day, so please only do one update per day!
+; Or request an own key for free at forecast.io
+ApiKey = "137f2d85a1f1db5762e5e073103541d2"
+
diff --git a/widgets/weather/update_weather.php b/widgets/weather/update_weather.php
new file mode 100644
index 0000000..a229490
--- /dev/null
+++ b/widgets/weather/update_weather.php
@@ -0,0 +1,110 @@
+<?php
+
+$ini_array = parse_ini_file("./update_weather.config");
+
+$latitude  = $ini_array['Latitude'];
+$longitude = $ini_array['Longitude'];
+$locationSkin = $ini_array['LocationSkin'];
+$units = $ini_array['Units'];
+$degree_sign = $ini_array['DegreeSign'];
+$lang = $ini_array['Lang'];
+$convertPoint = $ini_array['ConvertPoint2Comma'];
+$api_key = $ini_array['ApiKey'];
+
+$OUTPUTFLDRTEMP = "/tmp/skinflatplus/widgets/weather";
+if( !file_exists($OUTPUTFLDRTEMP) )
+    mkdir($OUTPUTFLDRTEMP, 0775, true);
+
+include('lib/forecast.io.php');
+
+// delete old files
+array_map('unlink', glob($OUTPUTFLDRTEMP."/weather.*"));
+
+// forecast query
+$forecast = new ForecastIO($api_key);
+
+$condition = $forecast->getCurrentConditions($latitude, $longitude, $units, $lang);
+if( !$handle = fopen($OUTPUTFLDRTEMP."/weather.0.temp", "w") ) {
+    print "can't create file!\n";
+    continue;
+}
+$temp = round($condition->getTemperature(), 1);
+if( $convertPoint == 1 )
+    $temp = str_replace(".", ",", $temp);
+fwrite($handle, $temp);
+fwrite($handle, $degree_sign);
+fclose($handle);
+
+
+// get daily conditions for next 7 days
+$conditions_week = $forecast->getForecastWeek($latitude, $longitude, $units, $lang);
+
+if( !$handle = fopen($OUTPUTFLDRTEMP."/weather.location", "w") ) {
+    print "can't create file!\n";
+} else {
+    fwrite($handle, $locationSkin);
+    fclose($handle);
+}
+
+
+$index = -1;
+foreach($conditions_week as $conditions) {
+    $index++;
+
+    if( !$handle = fopen($OUTPUTFLDRTEMP."/weather.".$index.".summary", "w") ) {
+        print "can't create file!\n";
+        continue;
+    }
+    fwrite($handle, $conditions->getSummary());
+    fclose($handle);
+
+    if( !$handle = fopen($OUTPUTFLDRTEMP."/weather.".$index.".tempMin", "w") ) {
+        print "can't create file!\n";
+        continue;
+    }
+    // we only have min & max so we must calc
+    $temp = round($conditions->getMinTemperature(), 1);
+    if( $convertPoint == 1 )
+        $temp = str_replace(".", ",", $temp);
+    fwrite($handle, $temp);
+    fwrite($handle, $degree_sign);
+    fclose($handle);
+
+    if( !$handle = fopen($OUTPUTFLDRTEMP."/weather.".$index.".tempMax", "w") ) {
+        print "can't create file!\n";
+        continue;
+    }
+    // we only have min & max so we must calc
+    $temp = round($conditions->getMaxTemperature(), 1);
+    if( $convertPoint == 1 )
+        $temp = str_replace(".", ",", $temp);
+    fwrite($handle, $temp);
+    fwrite($handle, $degree_sign);
+    fclose($handle);
+
+
+    if( !$handle = fopen($OUTPUTFLDRTEMP."/weather.".$index.".precipitation", "w") ) {
+        print "can't create file!\n";
+        continue;
+    }
+    fwrite($handle, $conditions->getPrecipitationProbability());
+    fclose($handle);
+
+    if( !$handle = fopen($OUTPUTFLDRTEMP."/weather.".$index.".precipitationType", "w") ) {
+        print "can't create file!\n";
+        continue;
+    }
+    if( $conditions->getPrecipitationProbability() > 0 )
+        fwrite($handle, $conditions->getPrecipitationType());
+    else
+        fwrite($handle, "none");
+    fclose($handle);
+
+    if( !$handle = fopen($OUTPUTFLDRTEMP."/weather.".$index.".icon", "w") ) {
+        print "can't create file!\n";
+        continue;
+    }
+    fwrite($handle, $conditions->getIcon());
+    fclose($handle);
+}
+?>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vdr-dvb/vdr-plugin-skinflatplus.git



More information about the pkg-vdr-dvb-changes mailing list