Revert incorrect RCL_3 drop: RCL_3 PDK_3.0.2
authorPat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:30:40 +0100
branchRCL_3
changeset 23 e8d784ac1a4b
parent 22 aaeeca1f15af
child 24 fc25e03508fd
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035
CenRep/keys_screensaver.xls
aif/screensaver_reg.rss
aif/screensaveraif.rss
animations/balloons.gif
animations/bird.swf
animations/butterfly0.svg
animations/hypnose.swf
conf/screensaver.confml
conf/screensaver_101F8770.crml
group/ScreensaverConfig.hrh
group/backup_registration.xml
group/bld.inf
group/screensaver.mmp
inc/ScreensaverUtils.h
inc/screensaver.h
inc/screensaver.hrh
inc/screensaveractivitymanager.h
inc/screensaverappui.h
inc/screensaverbase.h
inc/screensaverctrlmovingtext.h
inc/screensaverctrlnone.h
inc/screensaverctrlplugin.h
inc/screensaverengine.h
inc/screensaverindicator.h
inc/screensaverindicatorarray.h
inc/screensaverindicatoricon.h
inc/screensaverindicatornumberandicon.h
inc/screensaverindicatortext.h
inc/screensaverrepositorywatcher.h
inc/screensavershareddatai.h
inc/screensavershareddatamonitor.h
inc/screensaversubscriber.h
inc/screensaverutility.h
inc/screensaverview.h
layers.sysdef.xml
rom/screensaver.iby
scrsaver/screensaveraiwplugin/group/bld.inf
scrsaver/screensaveraiwplugin/group/screensaveraiwplugin.mmp
scrsaver/screensaveraiwplugin/inc/screensaveraiwplugin.h
scrsaver/screensaveraiwplugin/inc/screensaveraiwplugin.rh
scrsaver/screensaveraiwplugin/loc/screensaveraiwplugin.loc
scrsaver/screensaveraiwplugin/rom/screensaveraiwplugin.iby
scrsaver/screensaveraiwplugin/rom/screensaveraiwpluginresources.iby
scrsaver/screensaveraiwplugin/src/10282921.rss
scrsaver/screensaveraiwplugin/src/screensaveraiwplugin.cpp
scrsaver/screensaveraiwplugin/src/screensaveraiwplugin.rss
scrsaver/scrsaverplugins/BmpAnimScrPlugin/EABI/bmpanimscrplugin_ecomU.def
scrsaver/scrsaverplugins/BmpAnimScrPlugin/bmarm/BMPANIMSCRPLUGINU.DEF
scrsaver/scrsaverplugins/BmpAnimScrPlugin/bmarm/BMPANIMSCRPLUGIN_ECOMU.DEF
scrsaver/scrsaverplugins/BmpAnimScrPlugin/bwins/BMPANIMSCRPLUGIN_ECOMU.DEF
scrsaver/scrsaverplugins/BmpAnimScrPlugin/bwins/bmpanimscrpluginu.def
scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/ABLD.BAT
scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimConfig.hrh
scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimScrPlugin.ini
scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimScrPlugin.mmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimScrPlugin.pkg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/bld.inf
scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/makesis_3x.bat
scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/BmpAnimUtils.h
scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimIniData.h
scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimItem.h
scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimModel.h
scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimScrPlugin.h
scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimSettings.h
scrsaver/scrsaverplugins/BmpAnimScrPlugin/rom/bmpanimscrplugin.iby
scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/101F86FF.rss
scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/BmpAnimScrPluginDll.cpp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimIniData.cpp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimItem.cpp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimModel.cpp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimScrPlugin.cpp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimSettings.cpp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/animation.mk
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.mk
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.s60.mk
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.series60.mk
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.series60_lowcolor.mk
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim01.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim02.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim03.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim04.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim05.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim06.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim07.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim08.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim09.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim10.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim11.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim12.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim13.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim14.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim15.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim16.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim17.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim18.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim19.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim20.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim21.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim22.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim23.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim24.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim25.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim26.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim27.svg
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10000.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10001.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10002.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10003.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10004.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10005.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10006.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10007.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10008.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10009.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10010.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10011.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10012.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10013.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10014.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10015.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10016.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10017.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10018.bmp
scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10019.bmp
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/cenrep/1020744E.txt
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/cenrep/keys_screensaveranimplugin.xls
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/conf/screensaveranimplugin.confml
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/conf/screensaveranimplugin_1020744E.crml
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/data/10207447.rss
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/data/ScreenSaverAnimPlugin.rss
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/group/ScreenSaverAnimPlugin.mmp
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/group/bld.inf
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/NpnImplementation.h
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimCustControl.rh
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPlugin.h
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPlugin.hrh
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginConst.h
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginContainer.h
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginHelper.h
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginImplementationUid.hrh
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginInternalCRKeys.h
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimSettingDialog.h
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/screensaver.hlp.hrh
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/loc/screensaveranimplugin.loc
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/rom/ScreenSaverAnimPlugin.iby
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/rom/ScreenSaverAnimPluginResources.iby
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/NpnImplementation.cpp
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPlugin.cpp
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginContainer.cpp
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginHelper.cpp
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginProxy.cpp
scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimSettingDialog.cpp
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/BWINSCW/ScreenSaverGifAnimPluginU.def
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/EABI/ScreenSaverGifAnimPluginU.def
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/group/ScreenSaverGifAnimPluginEcom.mmp
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/group/bld.inf
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/inc/GifAnimationPlugin.h
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/inc/GifAnimationUtils.h
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/resource/102750B5.rss
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/rom/ScreenSaverGifAnimPlugin.iby
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPlugin.cpp
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPluginControl.cpp
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPluginDllApi.cpp
scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPluginMain.cpp
scrsaver/scrsaverplugins/SlideshowPlugin/data/102823EC.rss
scrsaver/scrsaverplugins/SlideshowPlugin/data/SlideshowPlugin.rss
scrsaver/scrsaverplugins/SlideshowPlugin/group/ABLD.BAT
scrsaver/scrsaverplugins/SlideshowPlugin/group/SlideshowPlugin.mmp
scrsaver/scrsaverplugins/SlideshowPlugin/group/bld.inf
scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowModel.h
scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPlugin.h
scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPluginImpUID.hrh
scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPluginUtils.h
scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowSlide.h
scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowSlideLoader.h
scrsaver/scrsaverplugins/SlideshowPlugin/loc/slideshowplugin.loc
scrsaver/scrsaverplugins/SlideshowPlugin/rom/SlideshowPlugin.iby
scrsaver/scrsaverplugins/SlideshowPlugin/rom/SlideshowPluginResources.iby
scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowModel.cpp
scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPlugin.cpp
scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPluginProxy.cpp
scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPluginUtils.cpp
scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowSlide.cpp
scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowSlideLoader.cpp
scrsaver/scrsaverplugins/group/bld.inf
src/Screensaver.cpp
src/screensaver.rss
src/screensaveractivitymanager.cpp
src/screensaverappui.cpp
src/screensaverbase.cpp
src/screensaverctrlmovingtext.cpp
src/screensaverctrlnone.cpp
src/screensaverctrlplugin.cpp
src/screensaverengine.cpp
src/screensaverindicator.cpp
src/screensaverindicatorarray.cpp
src/screensaverindicatoricon.cpp
src/screensaverindicatornumberandicon.cpp
src/screensaverindicatortext.cpp
src/screensaverrepositorywatcher.cpp
src/screensavershareddatai.cpp
src/screensavershareddatamonitor.cpp
src/screensaversubscriber.cpp
src/screensaverutility.cpp
src/screensaverview.cpp
sysdef_1_4_0.dtd
systemDefinition.xml
systemDefinitionLayer.xml
Binary file CenRep/keys_screensaver.xls has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/aif/screensaver_reg.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     
+* resource definition.
+*
+*/
+
+
+
+
+#include <appinfo.rh>
+#include <screensaver.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x100056CF  // Screensaver UID
+
+RESOURCE APP_REGISTRATION_INFO
+    {
+    app_file = "screensaver";
+    hidden = KAppIsHidden;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/aif/screensaveraif.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Resource for screensaver
+*
+*/
+
+
+
+
+#include <aiftool.rh>
+
+RESOURCE AIF_DATA
+	{
+	app_uid=0x100056CF;
+	hidden=KAppIsHidden;
+	}
Binary file animations/balloons.gif has changed
Binary file animations/bird.swf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/animations/butterfly0.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,335 @@
+<svg width="100%" height="100%" viewBox="0 0 352 352" preserveAspectRatio="none" xmlns:a="http://www.adobe.com/svg10-extensions" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
+<defs>
+<radialGradient id="shape14grad" gradientUnits="userSpaceOnUse" r="38.014" cx="257.431" cy="44.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape15grad" gradientUnits="userSpaceOnUse" r="47.802" cx="287.578" cy="46.388">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape16grad" gradientUnits="userSpaceOnUse" r="26.08" cx="310.265" cy="58.231">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape17grad" gradientUnits="userSpaceOnUse" r="45.221" cx="317.432" cy="97.185">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape18grad" gradientUnits="userSpaceOnUse" r="47.708" cx="294.431" cy="133.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.20s" dur="2.41s" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.20s" dur="2.41s" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="2.20s" dur="2.41s" />
+</stop>
+</radialGradient>
+<radialGradient id="shape19grad" gradientUnits="userSpaceOnUse" r="44.72" cx="313.382" cy="110.537">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape20grad" gradientUnits="userSpaceOnUse" r="32.894" cx="285.431" cy="97.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.084;0.171;0.25;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape21grad" gradientUnits="userSpaceOnUse" r="52.346" cx="249.431" cy="129.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape22grad" gradientUnits="userSpaceOnUse" r="46.641" cx="214.281" cy="146.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape23grad" gradientUnits="userSpaceOnUse" r="69.355" cx="147.431" cy="189.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape24grad" gradientUnits="userSpaceOnUse" r="76.008" cx="102.43" cy="256.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape25grad" gradientUnits="userSpaceOnUse" r="109.402" cx="102.431" cy="251.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape26grad" gradientUnits="userSpaceOnUse" r="96.318" cx="75.431" cy="144.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape27grad" gradientUnits="userSpaceOnUse" r="68.861" cx="111.455" cy="147.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;#FEFEFE;#007176;#007176;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;#7CFFFF;#00FFFF;#00FFFF;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;#00FFFF;#1038B6;#1038B6;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape28grad" gradientUnits="userSpaceOnUse" r="130.385" cx="154.431" cy="227.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;#007176;black;#FEFEFE;#007176;black;#007176" fill="freeze" keyTimes="0;0.083;0.088;0.171;0.249;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;#00FFFF;black;#7CFFFF;#00FFFF;black;#00FFFF" fill="freeze" keyTimes="0;0.083;0.088;0.171;0.249;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;#1038B6;black;#00FFFF;#1038B6;black;#1038B6" fill="freeze" keyTimes="0;0.083;0.088;0.171;0.249;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape29grad" gradientUnits="userSpaceOnUse" r="208.195" cx="246.431" cy="414.786">
+<stop offset="0.441" stop-color="#007176">
+<animate attributeName="stop-color" values="#007176;black;#FEFEFE;#007176;black;#007176" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.787" stop-color="#00FFFF">
+<animate attributeName="stop-color" values="#00FFFF;black;#7CFFFF;#00FFFF;black;#00FFFF" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="#1038B6">
+<animate attributeName="stop-color" values="#1038B6;black;#00FFFF;#1038B6;black;#1038B6" fill="freeze" keyTimes="0;0.083;0.171;0.249;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" />
+</stop>
+</radialGradient>
+<radialGradient id="shape31grad" gradientUnits="userSpaceOnUse" r="10" cx="0" cy="0">
+<stop offset="0.055" stop-color="#F0EB8A">
+<animate attributeName="offset" values="0.055;0;0.055" fill="freeze" keyTimes="0;0.513;1" begin="0s" dur="0.80s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.232" stop-color="#7F802A">
+<animate attributeName="offset" values="0.232;0.096;0.232" fill="freeze" keyTimes="0;0.513;1" begin="0s" dur="0.80s" repeatCount="indefinite" />
+</stop>
+<stop offset="0.614" stop-color="#2F1300">
+<animate attributeName="offset" values="0.614;0.369;0.614" fill="freeze" keyTimes="0;0.513;1" begin="0s" dur="0.80s" repeatCount="indefinite" />
+</stop>
+<stop offset="1" stop-color="black" />
+</radialGradient>
+<circle transform="translate(78,158)" id="shape31" fill="url(#shape31grad)" fill-rule="evenodd" cx="0" cy="0" r="10">
+</circle>
+</defs>
+<g>
+<rect transform="translate(176.408,175.674) scale(1.5)" fill="black" fill-rule="evenodd" x="-176" y="-176" width="352" height="352" />
+<g transform="translate(0,-14)">
+<use transform="translate(76.801,-205.199) scale(0.401)" xlink:href="#shape31">
+<animateTransform attributeName="transform" type="translate" additive="replace" values="108.001,-142;4.001,568.001" fill="freeze" keyTimes="0;1" begin="0.41s" dur="1s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="scale" additive="sum" values="0.401,0.401;1.201,1.201" fill="freeze" keyTimes="0;1" begin="0.41s" dur="1s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.41s" />
+</use>
+<use transform="translate(189.4,-262.599) scale(0.7)" xlink:href="#shape31">
+<animateTransform attributeName="transform" type="translate" additive="replace" values="244,-151.999;306.001,606" fill="freeze" keyTimes="0;1" begin="0.20s" dur="1.80s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="scale" additive="sum" values="0.7,0.7;1.201,1.201" fill="freeze" keyTimes="0;1" begin="0.20s" dur="1.80s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.20s" />
+</use>
+<use transform="translate(102,-320)" xlink:href="#shape31">
+<animateTransform attributeName="transform" type="translate" additive="replace" values="180,-161.999;212.001,594" fill="freeze" keyTimes="0;1" begin="0s" dur="1.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="scale" additive="sum" values="1,1;1.201,1.201" fill="freeze" keyTimes="0;1" begin="0s" dur="1.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0s" />
+</use>
+<use transform="translate(169.001,-208.999) scale(0.5)" xlink:href="#shape31">
+<animateTransform attributeName="transform" type="translate" additive="replace" values="208.001,-129.999;226.001,552.001" fill="freeze" keyTimes="0;1" begin="1s" dur="3.01s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="scale" additive="sum" values="0.5,0.5;1.201,1.201" fill="freeze" keyTimes="0;1" begin="1s" dur="3.01s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="1s" />
+</use>
+<use transform="translate(104,-236) scale(0.5)" xlink:href="#shape31">
+<animateTransform attributeName="transform" type="translate" additive="replace" values="144,-155.999;124,582" fill="freeze" keyTimes="0;1" begin="0s" dur="5.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="scale" additive="sum" values="0.5,0.5;1,1" fill="freeze" keyTimes="0;1" begin="0s" dur="5.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-79.999,-160;-79.999,-160" begin="0s" />
+</use>
+<use transform="translate(138.001,-313.999)" xlink:href="#shape31">
+<animateTransform attributeName="transform" type="translate" additive="replace" values="216.001,-155.999;298,580" fill="freeze" keyTimes="0;1" begin="0.20s" dur="3.80s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="scale" additive="sum" values="1,1;1.201,1.201" fill="freeze" keyTimes="0;1" begin="0.20s" dur="3.80s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.20s" />
+</use>
+<use transform="translate(28.4,460.4) scale(0.7)" xlink:href="#shape31">
+<animateTransform attributeName="transform" type="translate" additive="replace" values="83.001,571;83.001,571" fill="freeze" keyTimes="0;1" begin="0.40s" dur="4.20s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="scale" additive="sum" values="0.7,0.7;1,1" fill="freeze" keyTimes="0;1" begin="0.40s" dur="4.20s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.40s" />
+</use>
+<use transform="translate(99.4,-240.6) scale(0.7)" xlink:href="#shape31">
+<animateTransform attributeName="transform" type="translate" additive="replace" values="154,-130;83.001,571" fill="freeze" keyTimes="0;1" begin="0.81s" dur="3.19s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="scale" additive="sum" values="0.7,0.7;1,1" fill="freeze" keyTimes="0;1" begin="0.81s" dur="3.19s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-78,-158;-78,-158" begin="0.81s" />
+</use>
+</g>
+<g id="Layer_1">
+<path transform="translate(-17,0)" fill-opacity="0" display="none" fill="url(#shape14grad)" fill-rule="evenodd" d="M287.352,24.92C286.872,23.718,287.086,22.351,286.662,21.381C286.238,20.409,284.829,18.988,284.313,18.866C283.796,18.744,283.779,17.433,282.661,16.625C281.544,15.818,276.387,26.148,276.387,26.148C276.387,26.148,280.549,16.345,279.193,11.015C278.287,7.466,274.017,2.932,274.017,2.932C274.017,2.932,273.698,0.133,273.18,0.011C272.663,-0.111,272.264,0.665,271.109,6.494C270.185,11.149,269.821,15.722,269.683,19.077C269.293,18.282,268.732,17.388,268.176,17.16C268.374,15.148,268.475,13.286,268.229,12.242C267.922,10.949,265.382,7.213,265.293,6.212C265.201,5.21,265.336,3.718,264.54,3.858C262.84,4.155,263.025,11.507,264.057,15.616C264.659,18.015,266.394,22.9,267.179,24.825C267.251,26.52,267.729,28.833,269.057,31.827C270.873,35.917,276.138,38.831,276.936,38.151C277.095,38.014,277.131,37.704,277.077,37.271C277.747,37.791,278.384,38.045,278.94,37.97C280.403,37.77,282.886,36.939,284.745,35.526C286.602,34.113,287.898,30.932,288.117,30.003C288.334,29.073,287.831,26.122,287.352,24.92M274.7,29.847C274.685,29.799,274.671,29.75,274.658,29.705C274.767,29.525,274.873,29.344,274.976,29.157C274.878,29.393,274.784,29.625,274.7,29.847">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="3s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.084;0.171;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="258.72,19.126;258.72,19.126;258.72,40.126;258.72,40.126" fill="freeze" keyTimes="0;0.084;0.417;1" begin="3s" dur="2.40s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-275.719,-19.125;-275.719,-19.125" begin="3s" />
+</path>
+<path transform="translate(-17,0)" fill-opacity="0" display="none" fill="url(#shape15grad)" fill-rule="evenodd" d="M300.964,73.274C296.739,70.927,287.821,66,287.821,66L287.955,66.375C286.03,65.608,283.998,65.101,283.833,65.764C283.833,65.764,283.964,66.327,284.296,67.06C281.163,67.504,272.303,69.493,264.353,78.2C254.497,88.996,256.843,90.403,257.547,91.342C258.252,92.28,261.773,91.575,262.711,91.575C263.649,91.575,268.107,92.045,270.691,91.107C271.722,90.732,274.586,87.774,277.655,84.118C276.491,88.351,277.003,91.016,278.2,91.813C279.607,92.75,283.128,92.048,284.537,91.813C285.945,91.578,291.107,88.996,293.924,84.538C296.671,80.187,295.618,74.283,293.603,71.6C293.644,71.591,293.688,71.582,293.726,71.57C295.527,72.497,297.428,73.555,298.619,74.448C301.434,76.558,309.413,81.958,309.413,80.314C309.412,78.67,305.188,75.622,300.964,73.274z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="266.103,78.875;266.103,78.875;266.103,99.875;266.103,99.875" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.80s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-283.102,-78.874;-283.102,-78.874" begin="2.80s" />
+</path>
+<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape16grad)" fill-rule="evenodd" d="M339.739,51.13C339.073,49.846,333.471,54.219,327.012,59.371C321.369,63.873,318.253,67.092,317.556,67.833C317.551,67.83,317.546,67.827,317.542,67.823C318.330,66.853,322.653,61.601,326.389,58.279C330.51,54.612,335.836,47.862,336.96,44.393C338.084,40.924,335.588,39.602,335.391,37.617C335.195,35.631,334.995,33.644,333.903,33.257C332.812,32.869,326.242,41.489,321.078,52.056C316.454,61.515,316.415,66.302,316.457,67.203C316.063,67.013,315.749,66.911,315.57,66.948C314.967,67.07,314.567,67.301,314.332,67.467C310.747,66.274,298.369,62.256,291.097,61.145C282.523,59.835,277.805,57.544,278.238,59.687C278.670,61.829,280.228,61.516,281.712,62.836C283.194,64.157,290.368,67.575,296.797,68.304C301.863,68.879,310.967,68.89,314.599,68.869C314.670,68.981,314.745,69.096,314.827,69.212C312.157,69.285,306.998,69.452,302.761,69.735C296.763,70.134,293.140,70.258,293.375,71.425C293.610,72.593,298.365,74.066,301.096,75.541C303.826,77.017,308.815,78.644,315.397,77.114C320.8,75.857,320.792,74.192,320.162,73.054C320.890,72.782,321.57,72.179,321.712,71.667C325.986,73.773,333.259,69.426,336.806,65.703C341.823,60.435,341.074,55.724,340.838,54.555C340.598,53.388,340.403,52.415,339.739,51.13z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="292.626,55.49;292.626,55.49;292.626,76.49;292.626,76.49" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.60s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-309.625,-55.489;-309.625,-55.489" begin="2.60s" />
+</path>
+<path transform="translate(-17,0)" fill-opacity="0" display="none" fill="url(#shape17grad)" fill-rule="evenodd" d="M354.278,68.531C352.749,66.567,353.403,64.6,350.783,64.381C348.165,64.162,344.452,71.805,341.612,75.736C341.342,76.112,341.05,76.550,340.753,77.013C343.162,71.041,345.461,64.692,345.981,62.198C347.073,56.957,343.581,51.062,342.27,49.533C340.959,48.004,340.085,44.51,338.121,44.51C336.155,44.51,333.753,55.865,332.443,65.691C331.441,73.212,331.334,82.005,331.339,85.72C330.695,84.991,330.039,84.211,329.388,83.379C325.991,79.039,316.066,70.931,316.941,73.116C318.32,76.569,327.639,85.781,331.353,88.401C335.064,91.021,337.465,91.675,337.465,91.675C337.465,91.675,336.452,90.875,334.956,89.463C334.968,89.45,334.98,89.43,334.992,89.416C335.514,89.687,336.24,90.127,337.029,90.803C341.538,94.669,352.969,87.091,355.37,82.506C357.77,77.919,355.805,70.497,354.278,68.531z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.40s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.084;0.171;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="319.711,68.147;319.711,68.147;319.711,89.147;319.711,89.147" fill="freeze" keyTimes="0;0.084;0.417;1" begin="2.40s" dur="2.40s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-336.71,-68.146;-336.71,-68.146" begin="2.40s" />
+</path>
+<path transform="translate(-17,0.001)" fill-opacity="0" display="none" fill="url(#shape18grad)" fill-rule="evenodd" d="M335.174,101.739C333.413,99.475,334.168,97.212,331.15,96.96C328.132,96.709,323.858,105.512,320.589,110.038C320.276,110.471,319.945,110.96,319.603,111.494C322.375,104.621,325.020,97.318,325.618,94.448C326.875,88.412,322.853,81.622,321.344,79.863C319.835,78.102,318.828,74.078,316.566,74.078C314.302,74.078,311.538,87.155,310.028,98.471C308.874,107.133,308.751,117.26,308.756,121.538C308.015,120.698,307.259,119.8,306.509,118.841C302.596,113.842,291.167,104.507,292.175,107.021C293.765,110.997,304.496,121.606,308.772,124.624C313.046,127.642,315.812,128.396,315.812,128.396C315.812,128.396,314.402,126.611,315.31,127.39C320.503,131.843,333.667,123.115,336.433,117.834C339.196,112.552,336.934,104.001,335.174,101.739z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.20s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="2.20s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="297.944,101.298;297.944,101.298;297.944,122.298;297.944,122.298" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2.20s" dur="2.41s" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-314.943,-101.297;-314.943,-101.297" begin="2.20s" />
+</path>
+<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape19grad)" fill-rule="evenodd" d="M339.938,142.321C338.507,133.573,332.484,125.423,328.606,123.674C327.135,122.2,324.415,120.467,322.566,120.227C319.908,119.881,314.211,118.471,313.106,121.254C312.888,121.8,313.351,122.326,314.178,122.816C312.469,125.88,308.482,133.788,307.468,142.474C306.167,153.618,308.585,163.633,310.866,163.260C313.149,162.887,321.097,158.984,325.241,157.265C325.618,157.109,325.967,156.864,326.303,156.579C326.523,156.66,326.744,156.719,326.977,156.723C329.847,156.773,341.512,151.954,339.938,142.321z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="2s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.084;0.171;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="306.54,141.414;306.54,141.414;306.54,162.414;306.54,162.414" fill="freeze" keyTimes="0;0.084;0.417;1" begin="2s" dur="2.40s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-323.539,-141.413;-323.539,-141.413" begin="2s" />
+</path>
+<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape20grad)" fill-rule="evenodd" d="M321.998,98.458C321.478,96.639,313.163,100.794,303.547,105.733C295.15,110.046,290.322,113.366,289.235,114.137C289.230,114.133,289.224,114.127,289.219,114.123C290.485,113.081,297.385,107.465,303.028,104.173C309.264,100.535,317.841,93.258,320.18,89.101C322.519,84.943,319.659,82.604,319.918,80.005C320.18,77.406,320.439,74.807,319.140,74.028C317.84,73.249,307.187,82.604,297.829,94.819C289.459,105.745,288.167,111.873,287.986,113.046C287.531,112.7,287.153,112.489,286.916,112.489C286.127,112.489,285.533,112.68,285.187,112.83C280.882,110.365,266.064,102.02,257.034,98.716C246.377,94.818,240.92,90.659,240.92,93.518C240.92,96.377,243.002,96.377,244.561,98.456C246.12,100.534,254.434,106.772,262.492,109.371C268.84,111.419,280.51,113.788,285.173,114.701C285.235,114.864,285.301,115.029,285.376,115.2C281.928,114.603,275.267,113.481,269.767,112.749C261.972,111.709,257.293,110.93,257.293,112.489C257.293,114.048,263.011,117.166,266.129,119.765C269.247,122.363,275.224,125.741,284.06,125.482C291.294,125.269,291.734,123.141,291.228,121.52C292.226,121.361,293.254,120.749,293.573,120.133C298.511,123.934,308.954,120.244,314.464,116.387C322.261,110.929,322.522,104.693,322.522,103.134C322.519,101.574,322.519,100.276,321.998,98.458z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.80s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.084;0.171;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="264.721,99.755;264.721,99.755;264.721,120.755;264.721,120.755" fill="freeze" keyTimes="0;0.084;0.417;1" begin="1.80s" dur="2.40s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-281.72,-99.754;-281.72,-99.754" begin="1.80s" />
+</path>
+<path transform="translate(-17)" fill-opacity="0" fill="url(#shape21grad)" fill-rule="evenodd" d="M284.684,156.974C275.628,152.010,260.178,147.911,255.268,146.680C254.376,145.512,253.282,144.709,252.149,145.254C251.643,145.496,251.496,146.172,251.66,147.046C247.306,149.794,237.292,156.489,229.173,164.733C218.48,175.589,216.673,181.845,217.523,182.99C218.374,184.135,220.234,182.137,221.119,183.491C222.004,184.842,223.106,184.881,224.498,184.023C225.893,183.164,234.972,172.191,239.27,166.398C242.45,162.104,248.916,152.825,252.059,148.294C252.186,148.588,252.33,148.888,252.507,149.193C250.649,152.112,245.254,160.594,241.019,167.339C235.822,175.622,230.833,185.152,231.964,186.68C233.099,188.205,239.812,183.735,246.875,172.171C252.974,162.188,254.835,155.267,254.985,152.088C255.423,152.446,255.901,152.778,256.416,153.071C258.301,154.141,257.640,152.221,257.338,150.92C260.229,153.638,267.989,160.815,272.352,163.72C277.787,167.342,290.717,175.108,292.148,173.175C292.919,172.137,280.396,164.582,275.426,161.104C271.426,158.304,260.651,151.472,256.588,148.907C256.404,148.517,256.194,148.112,255.958,147.711C259.462,149.918,266.469,154.338,272.608,158.243C281.202,163.708,292.82,170.188,294.317,169.952C295.813,169.716,295.751,168.019,295.751,168.019C295.751,168.019,296.964,167.402,297.679,166.435C298.395,165.471,295.558,162.935,284.684,156.974z">
+<animate attributeName="display" values="inline;none;none" fill="freeze" keyTimes="0;0.362;1" begin="1.80s" dur="2.21s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="240.557,166.025;240.557,166.025;240.557,187.025;240.557,187.025" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.60s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-257.556,-166.024;-257.556,-166.024" begin="1.60s" />
+</path>
+<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape22grad)" fill-rule="evenodd" d="M204.655,152.633C209.582,136.8,207.386,113.728,205.828,114.336C204.269,114.945,205.048,127.709,203.488,135.915C201.529,146.208,198.416,157.06,198.061,158.288C195.326,153.563,188.238,141.053,183.599,130.445C177.749,117.072,173.071,95.492,171.512,94.581C169.95,93.668,171.249,98.179,168.78,99.14C161.762,101.876,166.754,126.048,174.24,136.221C185.559,151.604,192.125,157.555,195.547,159.844C195.528,159.869,195.508,159.891,195.489,159.917C192.181,157.64,183.478,151.368,176.969,144.122C168.78,135.005,163.712,120.415,160.592,120.415C157.473,120.415,157.473,131.661,158.253,139.867C159.033,148.074,178.141,167.222,187.499,167.222C189.885,167.222,191.605,167.063,192.854,166.827C192.871,166.99,192.9,167.131,192.958,167.222C193.739,168.438,196.078,169.043,198.418,166.916C200.167,165.327,201.693,162.043,200.404,159.976C201.792,158.922,203.357,156.805,204.655,152.633z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="165.75,131.399;165.75,131.399;165.75,152.399;165.75,152.399" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.40s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-182.749,-131.398;-182.749,-131.398" begin="1.40s" />
+</path>
+<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape23grad)" fill-rule="evenodd" d="M185.788,225.131C169.144,217.941,156.801,215.978,154.696,215.681C153.969,214.976,152.350,215.053,151.664,215.865C150.811,216.873,149.669,218.334,148.651,219.844C145.011,222.327,134.085,229.944,129.968,234.622C124.996,240.27,119.347,247.954,120.476,252.248C121.606,256.543,130.872,244.113,134.036,239.368C136.312,235.953,142.799,228.795,146.259,225.047C146.259,225.667,146.507,226.111,147.144,226.258C147.848,226.421,148.683,226.008,149.541,225.275C150.040,227.124,152.153,231.239,159.346,237.107C167.933,244.114,179.91,247.728,182.171,244.564C184.174,241.758,179.068,237.707,173.788,233.2C180.594,237.076,186.669,240.527,188.046,241.629C191.436,244.34,196.859,243.211,199.347,242.984C201.832,242.758,207.031,243.663,208.384,242.081C209.741,240.499,204.092,233.042,185.788,225.131z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="147.454,234.163;147.454,234.163;147.454,255.163;147.454,255.163" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1.20s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-164.453,-234.162;-164.453,-234.162" begin="1.20s" />
+</path>
+<path transform="translate(-16.999)" fill-opacity="0" display="none" fill="url(#shape24grad)" fill-rule="evenodd" d="M136.084,208.571C135,208.028,127.951,211.824,121.989,215.62C116.252,219.271,102.492,224.926,101.456,225.349C101.658,224.999,101.77,224.742,101.77,224.613C101.77,223.58,99.466,222.414,98.411,223.58C98.338,223.66,98.252,223.757,98.173,223.845C95.839,217.487,88.546,205.975,76.993,198.272C57.476,185.26,53.681,183.635,50.429,185.26C47.177,186.887,49.345,189.057,47.718,191.766C46.092,194.477,40.728,197.774,41.213,200.44C42.297,206.405,55.309,211.825,65.609,216.706C70.463,219.005,77.604,221.665,83.798,223.835C77.44,222.005,69.867,219.866,63.983,218.331C51.513,215.077,38.608,207.927,33.624,212.909C29.288,217.247,30.691,224.399,35.25,228.089C46.635,237.305,75.910,239.474,87.293,235.138C88.999,234.488,90.395,233.864,91.545,233.269C91.516,233.716,91.663,234.042,92.082,234.174C93.968,234.769,98.136,230.8,98.136,230.8C98.136,230.8,103.015,228.089,108.979,225.378C114.941,222.668,137.168,209.114,136.084,208.571z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="66.558,211.01;66.558,211.01;66.558,232.01;66.558,232.01" fill="freeze" keyTimes="0;0.083;0.415;1" begin="1s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-83.557,-211.009;-83.557,-211.009" begin="1s" />
+</path>
+<path transform="translate(-16.999,0)" fill-opacity="0" display="none" fill="url(#shape25grad)" fill-rule="evenodd" d="M123.513,141.868C120.346,141.868,119.819,151.898,116.652,154.010C113.485,156.12,111.902,160.344,109.791,164.567C109.192,165.763,106.22,170.479,102.208,176.693C93.879,177.317,82.958,193.273,79.443,197.292C78.331,198.563,75.848,201.901,72.905,206.11C71.897,206.514,70.947,207.105,70.202,207.849C70.082,207.969,69.954,208.104,69.831,208.23C68.543,202.301,64.094,182.551,59.644,171.428C54.367,158.232,51.746,143.98,44.337,143.98C39.059,143.98,40.240,147.861,38.003,149.258C33.781,151.898,25.335,163.510,25.335,170.37C25.335,173.719,30.228,184.724,36.589,195.796C27.786,186.619,18.782,178.516,14.252,178.29C3.697,177.762,0,195.181,0,202.571C0,209.961,17.948,237.407,31.143,238.465C44.34,239.519,52.257,231.603,52.257,231.603L58.375,223.736C57.052,226.103,55.849,228.571,54.875,231.076C53.345,235.012,54.084,239.785,57.25,239.785C57.8,239.785,58.831,239.046,60.146,237.814C66.291,234.68,77.332,222.099,77.332,222.099C78.137,220.489,83.358,213.655,89.04,205.76C97.389,198.03,109.648,185.771,114.012,176.707C120.875,162.454,126.681,141.868,123.513,141.868z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="45.165,190.827;45.165,190.827;45.165,211.827;45.165,211.827" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.80s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-62.164,-190.826;-62.164,-190.826" begin="0.80s" />
+</path>
+<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape26grad)" fill-rule="evenodd" d="M89.128,218.588C84.436,202.172,74.262,188.196,70.005,182.833C71.445,181.629,72.17,180.471,71.579,179.486C68.571,174.471,58.043,178.984,53.031,180.488C49.578,181.524,44.937,185.65,42.546,188.938C35.536,193.397,25.96,210.752,25.96,228.115C25.96,247.165,50.526,253.181,56.041,252.178C56.474,252.099,56.883,251.943,57.273,251.726C58.013,252.169,58.772,252.497,59.548,252.68C68.07,254.685,84.616,259.698,89.128,259.698C93.639,259.698,95.144,239.646,89.128,218.588z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="42.518,218.451;42.518,218.451;42.518,239.451;42.518,239.451" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.60s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-59.517,-218.45;-59.517,-218.45" begin="0.60s" />
+</path>
+<path transform="translate(-17)" fill-opacity="0" display="none" fill="url(#shape27grad)" fill-rule="evenodd" d="M195.321,108.811C194.831,106.353,165.333,130.443,152.06,139.292C140.519,146.987,120.438,162.849,115.39,166.861C114.51,165.532,113.187,164.59,111.256,164.364C110.407,164.264,109.579,164.812,108.822,165.766C103.921,158.744,92.788,144.701,74.877,132.409C49.805,115.202,40.956,109.795,37.023,110.777C33.089,111.76,36.531,116.676,36.04,119.135C35.548,121.593,31.615,125.526,33.09,128.967C34.564,132.408,58.162,149.124,72.910,154.531C83.764,158.511,99.667,165.149,107.314,168.38C107.101,168.862,106.902,169.373,106.716,169.899C99.049,167.347,76.176,159.747,66.028,156.5C53.737,152.566,30.633,143.226,28.174,145.685C25.716,148.143,31.122,161.416,33.09,164.366C35.057,167.316,64.555,184.03,79.303,184.03C90.765,184.03,100.427,181.952,105.556,179.871C105.636,180.142,105.733,180.384,105.849,180.589C107.816,184.03,113.714,183.539,115.189,181.573C115.395,181.299,115.629,180.778,115.858,180.094C123.72,179.992,142.522,167.179,146.653,163.874C151.570,159.942,173.693,147.651,172.709,144.702C171.726,141.753,158.943,151.093,151.570,154.534C145.295,157.462,123.016,166.792,116.506,169.511C116.293,168.653,115.989,167.848,115.57,167.142C121.986,164.004,149.581,150.406,163.859,141.752C168.78,138.77,188.931,120.612,190.407,117.663C191.879,114.711,195.814,111.269,195.321,108.811z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animate attributeName="fill-opacity" values="0;0;1;0;0" fill="freeze" keyTimes="0;0.083;0.171;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="94.46,146.421;94.46,146.421;94.46,167.421;94.46,167.421" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.40s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-111.459,-146.42;-111.459,-146.42" begin="0.40s" />
+</path>
+<path transform="translate(-17)" display="none" fill="url(#shape28grad)" fill-rule="evenodd" d="M230.463,308.050C211.309,292.726,173.62,275.792,160.803,270.245C159.696,267.796,158.049,266.092,155.642,266.387C154.188,266.566,153.267,268.244,152.999,270.713C144.493,274.32,114.633,287.612,89.603,306.494C60.085,328.765,53.352,343.264,54.905,346.369C56.459,349.477,61.638,345.335,63.193,348.959C64.744,352.584,67.334,353.102,70.96,351.549C74.585,349.994,98.924,325.655,111.354,313.227C121.694,302.889,152.918,272.56,152.924,272.775C145.644,281.943,128.487,303.424,116.532,317.373C100.996,335.498,85.46,356.73,87.531,360.873C89.602,365.016,107.209,356.73,128.442,331.355C148.867,306.943,155.392,289.727,155.859,283.382C156.687,284.953,157.697,286.49,158.91,287.915C162.368,291.973,162.362,286.693,162.764,283.442C162.874,282.558,162.891,280.832,162.726,278.805C164.269,280.906,184.297,308.082,195.247,318.537C206.639,329.413,234.087,353.232,238.23,349.091C240.458,346.862,213.89,323.716,203.533,313.357C190.325,300.151,161.724,272.846,161.659,272.619C170.392,279.72,188.257,294.424,201.461,306.495C219.588,323.067,244.446,343.264,248.068,343.264C251.693,343.264,252.213,339.121,252.213,339.121C252.213,339.121,255.318,338.085,257.391,336.014C259.464,333.942,253.769,326.692,230.463,308.050z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="139.263,314.101;139.263,314.101;139.263,335.101;139.263,335.101" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0.20s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-156.262,-314.1;-156.262,-314.1" begin="0.20s" />
+</path>
+<path transform="translate(-34,-9)" display="none" fill="url(#shape29grad)" fill-rule="evenodd" d="M412.385,306C408.991,299.709,409.299,292.079,406.354,287.018C403.408,281.953,394.783,275.050,391.875,274.709C388.966,274.368,388.038,267.185,381.399,263.461C374.787,259.753,353.191,319.164,353.006,319.672C353.155,319.165,369.581,263.133,358.803,234.872C351.596,215.972,325.291,193.806,325.291,193.806C325.291,193.806,321.76,178.653,318.849,178.312C315.938,177.971,314.235,182.486,311.583,215.194C309.47,241.292,310.361,266.641,311.731,285.133C309.096,281.029,305.443,276.390,302.253,275.483C302.063,264.352,301.435,254.114,299.425,248.556C296.927,241.656,280.624,222.771,279.494,217.332C278.360,211.893,278.155,203.617,273.875,204.883C264.734,207.593,270.405,247.815,278.665,269.708C283.477,282.458,296.066,308.097,301.609,318.207C303.076,327.465,307.187,339.884,316.379,355.486C328.929,376.777,359.66,389.432,363.608,385.189C364.396,384.343,364.425,382.644,363.853,380.3C367.849,382.715,371.489,383.691,374.485,382.925C382.386,380.902,395.487,374.772,404.786,365.837C414.085,356.9,419.174,338.632,419.786,333.397C420.4,328.165,415.776,312.293,412.385,306z">
+<animate attributeName="display" values="none;inline;none;none" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" calcMode="discrete" />
+<animateTransform attributeName="transform" type="translate" additive="replace" values="312.443,272.37;312.443,272.37;312.443,293.37;312.443,293.37" fill="freeze" keyTimes="0;0.083;0.415;1" begin="0s" dur="2.41s" repeatCount="indefinite" />
+<animateTransform attributeName="transform" type="translate" additive="sum" fill="freeze" values="-346.442,-281.369;-346.442,-281.369" begin="0s" />
+</path>
+</g>
+</g>
+</svg>
Binary file animations/hypnose.swf has changed
Binary file conf/screensaver.confml has changed
Binary file conf/screensaver_101F8770.crml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/group/ScreensaverConfig.hrh	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*     configurations macros for screensaver
+*
+*/
+
+#ifndef SCREENSAVERCONFIG_HRH
+#define SCREENSAVERCONFIG_HRH
+
+// Enable logging
+// #define LOGGING_ENABLED
+
+// Log layout rects
+// #define LAYOUT_TRACING
+
+// Test content (faster activation, partial mode test line,
+// some indicators on by default, layout area borders drawn)
+// #define TEST_CONTENT
+
+// For devices with a twist display. This will cause Screensaver to
+// stop slightly faster than with user activity created by the display
+// position change
+// NOTE that if screensaver is running on device default orientation (ie not
+// forced), and there is an application that changes screen orientation,
+// screensaver will commit suicide if it is activated on top of that
+// application and this flag is defined.
+#define FAST_STOP_ON_SCREENDEVICE_CHANGE
+
+// ONLY ONE OF THE POWERSAVE CONFIGURATIONS CAN BE ON AT A TIME
+// 
+// Power save area should always be based on width of the bar, not height
+// (for landscape displays with portrait power save)
+// #define POWERSAVE_BASED_ON_WIDTH
+//
+// Power save area should be based on width of the bar, if display
+// has been rotated (for rotatable displays with power save in original
+// orientation only)
+// #define POWERSAVE_BASED_ON_WIDTH_ROTATED
+
+
+// DEFAULT ORIENTATION (not defined = device default)
+//
+// Always stay in portrait (overrides landscape if both defined)
+// defining this attribute as lead HW for 3.2 supports screensaver only in portrait mode
+ #define ALWAYS_PORTRAIT
+//
+// Always stay in landscape
+//#define ALWAYS_LANDSCAPE
+
+#endif // SCREENSAVERCONFIG_HRH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/group/backup_registration.xml	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration version="1.0">
+    <proxy_data_manager sid = "0x10202BE9" />
+    <restore requires_reboot = "no"/>
+</backup_registration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/group/bld.inf	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*     Screensaver build information
+*
+*/
+
+#include <platform_paths.hrh>
+
+#ifndef TOOLS
+// Plugins
+// Not compiled on 3.0, also only if S60 browser is used (media plugins present)
+#ifndef __SERIES60_30__
+#ifdef __SERIES60_NATIVE_BROWSER
+#include "../scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/group/bld.inf"
+#include "../scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/group/bld.inf"
+#endif
+#endif
+
+// Slideshow screensaver can be feature-variated 
+#ifdef __SLIDESHOW_SCREENSAVER 
+#include "../scrsaver/scrsaverplugins/SlideshowPlugin/group/bld.inf"
+#endif
+
+// Screen saver AIW plugin for the time being a R&D feature only 
+#ifdef RD_SCREENSAVERAIWPLUGIN 
+#include "../scrsaver/screensaveraiwplugin/group/bld.inf"
+#endif
+
+#endif // TOOLS
+
+PRJ_PLATFORMS
+DEFAULT
+
+
+PRJ_EXPORTS
+// Backup
+backup_registration.xml z:/private/100056CF/backup_registration.xml
+
+../rom/screensaver.iby CORE_MW_LAYER_IBY_EXPORT_PATH(screensaver.iby)
+
+// Generic configuration interface for component cenrep settings  
+../conf/screensaver.confml                APP_LAYER_CONFML(screensaver.confml)
+../conf/screensaver_101F8770.crml         APP_LAYER_CRML(screensaver_101F8770.crml)
+
+PRJ_MMPFILES
+
+#ifndef TOOLS
+
+// Screensaver
+screensaver.mmp
+
+#endif // TOOLS
+
+PRJ_TESTMMPFILES
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/group/screensaver.mmp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*     Project definition file
+*
+*/
+
+
+#include <bldvariant.hrh>
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+#include "ScreensaverConfig.hrh"
+
+TARGET        screensaver.exe
+TARGETTYPE    exe
+UID           0x100039CE 0x100056CF
+
+VENDORID    VID_DEFAULT
+CAPABILITY  CAP_APPLICATION PowerMgmt
+
+#ifdef LOGGING_ENABLED
+MACRO USE_LOGGER
+#endif
+
+#ifdef ALWAYS_PORTRAIT
+MACRO SS_ALWAYSPORTRAIT
+#endif
+
+#ifdef ALWAYS_LANDSCAPE
+MACRO SS_ALWAYSLANDSCAPE
+#endif
+
+#ifdef FAST_STOP_ON_SCREENDEVICE_CHANGE
+MACRO SS_FASTSTOPONSCREENDEVICECHANGE
+#endif
+
+SOURCEPATH  ../src
+
+SOURCE      Screensaver.cpp
+SOURCE      screensaverview.cpp
+SOURCE      screensaverappui.cpp
+SOURCE      screensaverbase.cpp
+SOURCE      screensaverctrlnone.cpp
+SOURCE      screensaverctrlplugin.cpp
+SOURCE      screensaverctrlmovingtext.cpp
+SOURCE      screensavershareddatai.cpp
+SOURCE      screensaverutility.cpp
+SOURCE      screensaverindicator.cpp
+SOURCE      screensaverindicatorarray.cpp
+SOURCE      screensaverindicatoricon.cpp
+SOURCE      screensaverindicatornumberandicon.cpp
+SOURCE      screensaverindicatortext.cpp
+SOURCE      screensaversubscriber.cpp
+SOURCE      screensaverrepositorywatcher.cpp 
+SOURCE      screensavershareddatamonitor.cpp 
+SOURCE      screensaverengine.cpp
+SOURCE      screensaveractivitymanager.cpp
+
+START RESOURCE screensaver.rss
+HEADER
+TARGETPATH APP_RESOURCE_DIR
+LANGUAGE_IDS
+END  // RESOURCE
+
+
+START RESOURCE ../aif/screensaver_reg.rss
+// DEPENDS screensaver.rsg
+// Do not change the UID below.
+TARGETPATH /private/10003a3f/apps
+END
+
+USERINCLUDE ../inc
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+APP_LAYER_SYSTEMINCLUDE
+
+SYSTEMINCLUDE   /epoc32/include/ecom
+
+LIBRARY     euser.lib
+LIBRARY     cone.lib
+LIBRARY     eikcore.lib
+LIBRARY     avkon.lib
+LIBRARY     apparc.lib
+LIBRARY     apgrfx.lib
+LIBRARY     ws32.lib
+LIBRARY     CommonEngine.lib
+LIBRARY     aknlayout.lib
+LIBRARY     AknLayout2Scalable.lib
+LIBRARY     fbscli.lib
+LIBRARY     egul.lib
+LIBRARY     msgs.lib
+LIBRARY     bafl.lib
+LIBRARY     power_save_display_mode.lib
+LIBRARY     gdi.lib
+LIBRARY     profileeng.lib
+LIBRARY     hal.lib
+LIBRARY     aknskins.lib
+LIBRARY     featmgr.lib // Feature Manager API
+LIBRARY     aknicon.lib
+LIBRARY     aknpictograph.lib
+LIBRARY     ecom.lib
+LIBRARY     centralrepository.lib
+LIBRARY     cenrepnotifhandler.lib
+LIBRARY     efsrv.lib
+LIBRARY     flogger.lib
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+LIBRARY     gfxtrans.lib
+LIBRARY     akntransitionutils.lib
+LIBRARY     akncapserverclient.lib
+#endif
+
+EPOCHEAPSIZE 0x5000 0x2000000
+
+// End of file.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/ScreensaverUtils.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Screensaver utilities collection
+*
+*/
+
+
+#ifndef C_SCREENSAVERUTILS_H
+#define C_SCREENSAVERUTILS_H
+
+// ========== LOGGING MACROS ===============================
+
+#ifdef USE_LOGGER
+
+#include <e32std.h>
+#include <e32def.h>
+#include <eikenv.h>
+#include <flogger.h>
+
+
+/* logging macros usage:
+
+// set logging on in mmp file...
+MACRO USE_LOGGER
+#ifdef WINS
+MACRO USE_RDEBUG
+#endif
+
+
+void CTestAppUi::ConstructL()
+{
+// creates log directory and log file on app startup.
+// prints starting banner...
+SCRLOGGER_CREATE;
+
+// entering to function...
+SCRLOGGER_ENTERFN("ConstructL()");
+
+TInt number = 42;
+TFileName file;
+file = "something" ....
+
+// print variable number of parameters...
+// Note: use _L macro for format string!
+SCRLOGGER_WRITEF(_L("SCR: number = %d, file = %S"), number, &file);
+
+// print just a string (no _L macro here!)
+SCRLOGGER_WRITE("Hello world!");
+
+// leave from function...
+SCRLOGGER_LEAVEFN("ConstructL()");
+}
+
+CTestAppUi::~CTestAppUi()
+{
+// print app exit banner when application exits.
+SCRLOGGER_DELETE;
+}
+
+*/
+
+#ifdef USE_RDEBUG
+
+_LIT(KSCRLogBanner, "Screensaver log start");
+_LIT(KSCRLogEnterFn, "SCR: enter --> %S");
+_LIT(KSCRLogLeaveFn, "SCR: leave <-- %S");
+_LIT(KSCRLogWrite, "SCR: %S");
+_LIT(KSCRLogTag, "SCR: ");
+_LIT(KSCRLogExit, "Screensaver log end");
+_LIT(KSCRLogTimeFormatString, "%H:%T:%S:%*C2");
+
+#define SCRLOGGER_CREATE             {RDebug::Print(KSCRLogBanner);}
+#define SCRLOGGER_DELETE             {RDebug::Print(KSCRLogExit);}
+#define SCRLOGGER_ENTERFN(a)         {_LIT(temp, a); RDebug::Print(KSCRLogEnterFn, &temp);}
+#define SCRLOGGER_LEAVEFN(a)         {_LIT(temp, a); RDebug::Print(KSCRLogLeaveFn, &temp);}
+#define SCRLOGGER_WRITE(a)           {_LIT(temp, a); RDebug::Print(KSCRLogWrite, &temp);}
+#define SCRLOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KSCRLogTimeFormatString); buffer.Insert(0, temp); buffer.Insert(0, KSCRLogTag); RDebug::Print(buffer); }
+#define SCRLOGGER_WRITEF             RDebug::Print
+
+#else
+
+_LIT(KSCRLogDir, "SCR");
+_LIT(KSCRLogFile, "SCR.txt");
+_LIT8(KSCRLogBanner, "Screensaver log start");
+_LIT8(KSCRLogEnterFn, "SCR: -> %S");
+_LIT8(KSCRLogLeaveFn, "SCR: <- %S");
+_LIT8(KSCRLogExit, "Screensaver log end");
+_LIT(KSCRLogTimeFormatString, "%H:%T:%S:%*C2");
+
+#define SCRLOGGER_CREATE             {FCreate();}
+#define SCRLOGGER_DELETE             {RFileLogger::Write(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, KSCRLogExit);}
+#define SCRLOGGER_ENTERFN(a)         {_LIT8(temp, a); RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, KSCRLogEnterFn, &temp);}
+#define SCRLOGGER_LEAVEFN(a)         {_LIT8(temp, a); RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, KSCRLogLeaveFn, &temp);}
+#define SCRLOGGER_WRITE(a)           {_LIT(temp, a); RFileLogger::Write(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, temp);}
+#define SCRLOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KSCRLogTimeFormatString); buffer.Insert(0, temp); RFileLogger::Write(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, buffer); }
+#define SCRLOGGER_WRITEF             FPrint
+
+inline void FPrint(const TRefByValue<const TDesC> aFmt, ...)
+    {
+    VA_LIST list;
+    VA_START(list, aFmt);
+    RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, aFmt, list);
+    }
+
+inline void FPrint(const TDesC& aDes)
+    {
+    RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, aDes);
+    }
+
+inline void FHex(const TUint8* aPtr, TInt aLen)
+    {
+    RFileLogger::HexDump(KSCRLogDir, KSCRLogFile, EFileLoggingModeAppend, 0, 0, aPtr, aLen);
+    }
+
+inline void FHex(const TDesC8& aDes)
+    {
+    FHex(aDes.Ptr(), aDes.Length());
+    }
+
+inline void FCreate()
+    {
+    TFileName path(_L("c:\\logs\\"));
+    path.Append(KSCRLogDir);
+    path.Append(_L("\\"));
+    RFs& fs = CEikonEnv::Static()->FsSession();
+    fs.MkDirAll(path);
+    RFileLogger::WriteFormat(KSCRLogDir, KSCRLogFile, EFileLoggingModeOverwrite, KSCRLogBanner);
+    }
+
+#endif // USE_RDEBUG
+
+#else // USE_LOGGER
+
+inline void FPrint(const TRefByValue<const TDesC> /*aFmt*/, ...) { };
+
+#define SCRLOGGER_CREATE
+#define SCRLOGGER_DELETE
+#define SCRLOGGER_ENTERFN(a)
+#define SCRLOGGER_LEAVEFN(a)
+#define SCRLOGGER_WRITE(a)
+#define SCRLOGGER_WRITEF 1 ? ((void)0) : FPrint
+#define SCRLOGGER_WRITE_TIMESTAMP(a)
+
+#endif // USE_LOGGER
+
+#endif // C_SCREENSAVERUTILS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaver.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,86 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Main header file for screensaver application.
+*
+*/
+
+
+
+
+#ifndef C_SCREENSAVER_H
+#define C_SCREENSAVER_H
+
+#include <e32base.h>
+
+//For turning display off
+#include <hal.h>
+
+#include <centralrepository.h>
+
+#include <aknapp.h>
+#include <AknDoc.h>
+#include <apgwgnam.h>
+
+//
+// class CScreensaverEikDocument
+//
+class CScreensaverDocument : public CAknDocument
+	{
+public:
+    /**
+    * ConstructL
+    * 2nd phase constructor.
+    * Perform the second phase construction of a
+    * CScreensaverDocument object.
+    */
+    void ConstructL();
+    /**
+    * CScreensaverDocument.
+    * C++ default constructor.
+    */
+    CScreensaverDocument(CEikApplication& aApp);
+
+    /**
+    * ~CScreensaverDocument 
+    * Destructor.
+    */
+    ~CScreensaverDocument();
+private:
+    // from CEikDocument
+    CEikAppUi* CreateAppUiL();
+    };
+
+//
+// CScreensaverApplication
+//
+
+class CScreensaverApplication : public CAknApplication
+{
+private:
+    // from CApaApplication
+    /**
+    * From CApaApplication, CreateDocumentL.
+    * Creates CScreensaverDocument document object. The returned
+    * pointer in not owned by the CScreensaverApplication object.
+    * @return A pointer to the created document object.
+    */
+    CApaDocument* CreateDocumentL();
+    /**
+    * From CApaApplication, AppDllUid.
+    * @return Application's UID (KUidScreensaverApp).
+    */
+    TUid AppDllUid() const;
+    };
+
+#endif // C_SCREENSAVER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaver.hrh	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,103 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     The enumeration for screensaver
+*
+*/
+
+
+
+
+
+
+#ifndef SCREENSAVER_HRH
+#define SCREENSAVER_HRH
+
+#include <avkon.hrh>
+
+//
+// Screensaver indicator id's.
+//
+enum TScreensaverIndicatorId
+    {
+    ESsNewMessagesInd,
+    ESsMissedCallsInd,
+    ESsKeyLockInd,
+    ESsProfileInd,
+    ESsImInd,           // Instant message (chat)
+    ESsMailInd,         // New email
+    ESsVoicemailInd,    // New voice mail
+    ESsAmPmInd          // AM / PM indicator
+    };
+
+//
+// Indicator types.
+//
+enum TScreensaverIndicatorType
+    {
+    ESsNumericIndicator,
+    ESsIconIndicator,
+    ESsTextIndicator,
+    ESsNumberAndIconIndicator
+    };
+
+//
+// Indicator aligments.
+//
+enum TScreensaverAlignment
+    {
+    ESsAlignLeft,
+    ESsAlignRight
+    };
+
+
+//
+// Indicator drawing priorities.
+//
+enum TScreensaverDrawType
+    {
+    ESsDrawTypeNotDrawn,
+    ESsDrawTypeSecondary,
+    ESsDrawTypePrimary
+    };
+
+
+//
+// Default screensaver bar color modes.
+//
+enum TScreensaverBarColorModel
+    {
+    ESsColorModel3BitMode,
+    ESsColorModelHighColor
+    };
+
+//
+// Factory for display objects
+//
+enum TDisplayObjectType
+    {
+    EDisplayText = 0,
+    EDisplayTime,
+    EDisplayBitmap,
+    EDisplayPlugin,
+    EDisplayNone
+    };
+
+enum TDisplayState
+    {
+    EDisplayOff = 0,
+    EDisplayOn
+    };
+#endif //SCREENSAVER_HRH
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaveractivitymanager.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,60 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// CScreensaverActivityManager class
+// 
+//
+
+#ifndef SCREENSAVERACTIVITYMANAGER_H
+#define SCREENSAVERACTIVITYMANAGER_H
+
+#include <e32base.h>
+
+
+class CScreensaverActivityManager : public CTimer
+	{
+public:
+ 	static CScreensaverActivityManager* NewL(TInt aPriority);
+	~CScreensaverActivityManager();
+	void Start(TTimeIntervalSeconds aInterval,
+	                    TCallBack aInactiveCallback,
+	                    TCallBack aActiveCallback);
+	void SetInactivityTimeout(TTimeIntervalSeconds aInterval);
+	TBool IsMonitoringForActivity();
+private:
+	void RunL();
+	CScreensaverActivityManager(TInt aPriority);
+	void MonitorInactivity();
+private:
+
+    enum TState {
+        EStUndefined = 0,    //< Never used, reserved
+        EStNotActive,        //< Constructed but not started
+        EStMonForInactivity, //< Monitoring user inactivity mode
+        EStMonForActivity    //< Monitoring user activity mode
+    };
+
+    /** Inactivity interval */
+    TTimeIntervalSeconds iInterval;
+    
+    /** Callback to be used in case that user inactivity is detected */
+	TCallBack            iInactiveCallback;
+	
+    /** Callback to be used in case of user activity after inactivity period */
+	TCallBack            iActiveCallback;
+	
+    /** State of object, what form of monitoring is active. */
+	TState                iState;
+	};
+
+#endif // SCREENSAVERACTIVITYMANAGER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverappui.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   The define of appui for screensaver
+*
+*/
+
+
+
+
+#ifndef C_SCREENSAVERAPPUI_H
+#define C_SCREENSAVERAPPUI_H
+
+#include <e32base.h>
+#include <aknViewAppUi.h>
+
+#include "screensaverview.h"
+
+
+class CScreensaverEngine;
+
+// UID of Screensaver application
+const TUid KUidScreensaverApp  = { 0x100056CF };
+
+/**
+ *  'AppUi' class.
+ */
+class CScreensaverAppUi : public CAknViewAppUi
+    {
+public:	
+	/**
+    * ConstructL.
+    * 2nd phase constructor.
+    */
+    void ConstructL();
+
+    /**
+    * ~CScreensaverAppUi.
+    * Destructor.
+    */
+    ~CScreensaverAppUi();
+    
+    /**
+    * Returns the pointer to screensaver model which is owned by AppUi
+    * @return Screensaver Model
+    */
+    CScreensaverEngine& Model() const;
+
+    /**
+    * From CEikAppUi.
+    * Takes care of command handling.
+    * @param aCommand command to be handled
+    */
+    void HandleCommandL(TInt aCommand);
+
+    /**
+    * Returns the pointer to CScreensaverView which is derived from AknView
+    * @return CScreensaverView
+    */
+    CScreensaverView* ScreensaverView();
+
+private:
+    
+    /**
+    * Creates the CScreensaverView object and the Display object   
+    */
+    void CreateViewL();
+
+    /**
+    * From CEikAppUi.
+    * Key event handler.
+    */
+    TKeyResponse HandleKeyEventL(const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/);
+    
+    /**
+    * From @c CCoeAppUiBase.   
+    * Calls CAknViewAppUi::HandleScreenDeviceChangedL().
+    */
+    void HandleScreenDeviceChangedL();
+
+    /**
+    * From AknAppUi. Handles pointer-initiated view switch. Currently this
+    * function does nothing but calls base class function.
+    * @since Series 60 3.0
+    * @param aEvent Window server event.
+    * @param aDestination Pointer to the control which the event is targeted to.
+    */
+    void HandleWsEventL(const TWsEvent& aEvent, CCoeControl* aDestination);
+
+private:
+    
+    /**
+    * Screensaver Model.
+    * Owned.
+    */
+    CScreensaverEngine* iModel;
+    
+    /**
+    * Screensaver view
+    * 
+    * Owned
+    */
+    CScreensaverView* iView;
+    };
+
+#endif // C_SCREENSAVERAPPUI_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverbase.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,219 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Definitions for base class of display object
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERBASE_H
+#define C_SCREENSAVERBASE_H
+
+#include <coeccntx.h>
+#include <coecntrl.h>
+#include <AknPictographDrawerInterface.h>
+
+#include "screensaverplugin.h"
+#include "screensaver.hrh"
+#include "screensaverengine.h"
+#include "screensaverindicator.h"
+#include "screensaverindicatorarray.h"
+
+
+/**
+ *  The base class of all the different display object
+ */
+class CScreensaverBase : public CCoeControl, public MCoeControlContext,
+    public MAknPictographAnimatorCallBack
+    {
+public:
+    /**
+     * Default c++ constructor  
+     */
+    CScreensaverBase();
+    
+    /**
+    * Destructor  
+    */
+    virtual ~CScreensaverBase();
+
+    /**
+    * Show the control and start the refresh timer
+    */
+    virtual void StartDrawObject();
+    
+    /**
+    * Stop display the control and cancel the timers
+    */
+    virtual void StopDrawObject();
+
+    /**
+    * Start the control needed timer
+    */
+    virtual void StartTimer() = 0;
+    
+    /**
+    * Cancels the timer
+    */
+    virtual void CancelTimer() = 0;
+    
+    /**
+    * Show the control
+    */
+    virtual void DrawObject();
+    
+    /**
+    * Clear the screen
+    */
+    virtual void ClearScreen() = 0;
+    
+    /*
+    * Refresh the display 
+    */
+    virtual void Refresh() = 0;
+    
+    /**
+    * Get the screensaver view
+    */
+    CScreensaverView* View() const;
+    
+    /**
+    * Returns the Screensaver Model which is owned by AppUi
+    * 
+    * @return CScreensaverModel
+    */
+    const CScreensaverEngine& Model() const;
+    
+    /**
+    * Returns the Indicator Array which is owned by Screensaver Model
+    * 
+    * @return CScreensaverIndicatorArray
+    */
+    CScreensaverIndicatorArray& Array() const;
+public:
+    //From CCoeControl
+    
+    /** 
+    * Resource change handling  
+    */
+    virtual void HandleResourceChange( TInt aType ) = 0;
+
+    /**
+    * Responds to changes to the size and position of the contents 
+    * of this control.  
+   */
+    virtual void SizeChanged() = 0;
+    
+    // Power save mode related functions
+    
+    /**
+    * Used to define the active area of display in power save mode
+    * 
+    * @param aRect
+    */
+    TInt SetPowerSaveDisplayActiveArea( TRect& aRect );
+    
+    /**
+    * Activates power save display mode
+    * 
+    * @param aFullColors
+    */
+    TInt ActivatePowerSaveDisplay( TBool aFullColors = EFalse ) const;
+
+public:
+    // From MAknPictograpAnimatorCallback
+    /**
+    * This function is called when a redraw is needed for drawing
+    * new frames of animated pictographs. It should
+    *
+    * 1) Draw or clear the background of pictographs
+    * 2) If the pictographs are amongst text, draw the text
+    * 3) Draw the pictographs using MAknPictographDrawer interface
+    *
+    * In many cases, it is sufficient to implement this simply by
+    * calling CCoeControl::DrawNow for the appropriate control.
+    */
+    virtual void DrawPictographArea();
+
+protected:
+    
+    /**
+    * Start capturing timer
+    */
+    void StartCaptureScreenTimer();
+    
+    /**
+    * Initial the initial refresh rate
+    */
+    TInt InitialRefreshRate();
+    
+    /**
+    * Kill the timer
+    * 
+    * @param aTimer the timer you want stop
+    */
+    void DeleteTimer( CPeriodic*& aTimer );
+    
+    /**
+    * for Lcd Partial mode. 
+    */
+    void ConstructAndConnectLCDL();
+    
+    /**
+    * Returns the powersave display mode
+    */
+    CPowerSaveDisplayMode* LcdPartialMode() const;
+    
+    /**
+    * If the timer expired, excute the refresh action 
+    */
+    static TInt HandleRefreshTimerExpiry( TAny* aPtr );
+    
+    /**
+    * Callback fuction. Called when the window server heartbeat tiemr time out
+    */
+    static TInt HandleCaptureTimerExpiry( TAny* aPtr );
+    
+    /**
+    * Capture screen, and get the first pixel address of the bitmap
+    */
+    TInt CaptureScreen();
+
+protected:
+
+    // Area of screen that is displayed when in power save mode 
+    TRect iPowerSaveDisplayActiveArea;
+    
+    /**
+    * The capturing screen timer
+    */
+    CPeriodic* iCaptureScreenTimer;
+    
+    
+    /**
+    * The pointer to the powersaver display mode
+    * 
+    * Owned
+    */
+    CPowerSaveDisplayMode* iPowerSaveDisplayMode;
+
+    /**
+    * store the bitmap data
+    */
+    CFbsBitmap* iOffScrnBmp; 
+    
+    };
+
+#endif // C_SCREENSAVERBASE_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverctrlmovingtext.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,261 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Definitions screensaver moving text display class.
+*
+*/
+
+#ifdef USE_DATE_AND_TEXT
+
+#ifndef C_SCREENSAVERCTRLMOVINGTEXT_H
+#define C_SCREENSAVERCTRLMOVINGTEXT_H
+
+#include <AknPictographInterface.h>
+
+#include "screensaverbase.h"
+
+const TInt KScreensaverDataReconnectingDelay = 50000;
+const TInt KScreensaverBarHeight = 24;
+
+//
+// class CScreensaverCtrlMovingText
+//
+class CScreensaverCtrlMovingText : public CScreensaverBase
+    {
+public:
+    /**
+    * Two-phased constructor
+    * 
+    * @param aType the type of display object  
+    * @return CScreensaverCtrlMovingText the pointer of CScreensaverCtrlMovingText 
+    * object
+    */
+    static CScreensaverCtrlMovingText* NewL( TDisplayObjectType aType );
+
+     /**
+     * Destructor.
+     */
+    ~CScreensaverCtrlMovingText();
+
+public:
+    // From CCoeControl
+    
+    /** 
+    * Resource change handling  
+    */
+    virtual void HandleResourceChange( TInt aType );
+    
+    
+    /**
+    * Responds to changes to the size and position of the contents 
+    * of this control.  
+    */
+    virtual void SizeChanged();
+
+    /**
+    * Drawing (override this to draw)
+    */
+    virtual void Draw( const TRect& aRect ) const;
+
+public:
+    // Implemented here instead of shareddatainterface
+
+    /**
+    * Set moving bar on / off
+    * 
+    * @param aMove a bool type to decide if it can move or not
+    */
+    void SetMoving( TBool aMove = ETrue );
+
+    /**
+    * Start the control needed timer
+    */
+    void StartTimer();
+    
+    /**
+    * Cancels the timer
+    */
+    void CancelTimer();
+    
+    /**
+    * Clear the screen
+    */
+    void ClearScreen();
+    
+    /*
+    * Refresh the display 
+    */
+    void Refresh();
+    
+protected:
+        
+    /**
+    * Constructor
+    * 
+    * @param aType the type of the display object.  
+    */
+    CScreensaverCtrlMovingText( TDisplayObjectType aType );
+    
+    /**
+    * Two-phased constructor  
+    */
+    void ConstructL();
+    
+    /**
+    * Draw the object on the screen of this type  
+    * 
+    * @param aGc the CWindowGc object 
+    * @param aRect
+    */
+    virtual void DrawNew( CWindowGc& aGc, const TRect& aRect ) const;
+    
+    /**
+    * Draw the date on the bar
+    */
+    virtual void DrawText( CWindowGc& aGc ) const;
+
+    /**
+    * Draws text with pictographs  
+    */
+    void DrawPictoText( CWindowGc &aGc ) const;
+
+    /**
+    * Get the current time  
+    */
+    void UpdateCurrentTimeL();
+    
+    /**
+    * Generate the screensaver bar
+    */
+    void GenerateDisplayAttributesForScreensaverBar();
+
+private:
+    /**
+    * Get the random top value  
+    * 
+    * @return TInt the random value
+    */
+    void GetRandomTopValue( TInt aBarHight );
+    
+    /**
+    * Get the random seed
+    */
+    TInt RandomSeed();
+    
+    /**
+    * Get the text and background color
+    */
+    void GetTextAndBgColor();
+    
+    /**
+    * Format the display text
+    */
+    void FormatTextL( TDes& aText, const TDesC& aFormat );
+
+    /**
+    * Set AmPm text payload to indicator
+    */
+    void SetAmPmIndicatorPayloadL();
+    
+    /**
+    * Format the data and time text
+    */
+    void FormatTextFromResourceL( TDes &aDes, TInt aResourceId );
+    
+    /**
+    * Get the clock area and text layout
+    */
+    void GetClockLayout( const TRect& aRect );
+    
+    /**
+    * Get the date area and text layout
+    */
+    void GetDateLayout( const TRect& aRect );
+    
+    /**
+    * Get the indicator area and text layout
+    */
+    void GetIndicatorAreaLayout( const TRect& aRect );
+    
+    /**
+    * Start the indicator bar refresh timer
+    */
+    void StartBarRefreshTimer();
+
+    
+protected://data
+    
+    /**
+    * The layout date and text  
+    */
+    TAknLayoutText iLayoutDateText;
+private://data
+    /**
+    * The top position of the bar 
+    */
+    TInt iTop;
+    
+    /**
+    * The random seed to get the random value   
+    */
+    TInt64 iRandSeed;
+
+    // For new layout    
+    /**
+    * The time string that will be displayed on the bar  
+    */
+    TBuf<15> iTextTime;    
+    
+    /**
+    * The date string that will be displayed on the bar  
+    * or he text will be display the on the bar
+    */
+    TBuf<25> iText;
+    
+    /**
+    * The type of the display text  
+    */
+    TDisplayObjectType iType;
+
+    //Lay out
+    TAknLayoutRect iLayoutBar;
+    TAknLayoutRect iLayoutClock;
+    TAknLayoutRect iLayoutDate; // missing
+    TAknLayoutText iLayoutClockText;
+    TAknLayoutText iLayoutAmPmText;
+    
+    // Moving bar on / off
+    TBool iMoveBar;
+    
+    /**
+    * The color for background and text
+    */
+    TInt iBgColor;
+    TInt iTextColor;
+    TInt iTextBgColor;
+    
+    /**
+    * The indicator bar refresh timer
+    */
+    CPeriodic* iBarRefreshTimer;
+
+    /**
+    * Pictograph drawing interface 
+    */
+    CAknPictographInterface* iPictoI;
+    };
+
+#endif // C_SCREENSAVERCTRLMOVINGTEXT_H
+
+#endif // USE_DATE_AND_TEXT
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverctrlnone.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,113 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Definitions for the display object of none type
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERCTRLNONE_H
+#define C_SCREENSAVERCTRLNONE_H
+
+#include "screensaverbase.h"
+
+/**
+ * The none type of the display object to cut off the screen light  
+ */
+class CScreensaverCtrlNone : public CScreensaverBase
+    {
+public:
+    /**
+    * The symbian c++ constructor
+    */
+    static CScreensaverCtrlNone* NewL();
+    
+    
+    /**
+    * destructor
+    */
+    ~CScreensaverCtrlNone();
+
+    /**
+    * Start the control needed timer
+    */
+    void StartTimer();
+    
+    /**
+    * Cancels the timer
+    */
+    void CancelTimer();
+    
+    /**
+    * Show the control
+    */
+    void DrawObject();
+    
+    /**
+    * Clear the screen
+    */
+    void ClearScreen();
+    
+    /*
+    * Refresh the display 
+    */
+    void Refresh();
+    
+public:
+    // From CCoeControl
+    
+    /** 
+    * Resource change handling  
+    */
+    void HandleResourceChange( TInt aType );
+
+    /**
+    * Responds to changes to the size and position of the contents 
+    * of this control.  
+    */
+    void SizeChanged();
+    
+    /**
+     * Draw
+     * @see CCoeControl::Draw(const TRect& aRect)
+     */
+    void Draw( const TRect& aRect ) const;
+    
+private:
+
+    /**
+    *The Default C++ constructor   
+    */
+    CScreensaverCtrlNone();
+    
+    /**
+    * The two-phased constructor
+    */
+    void ConstructL();
+
+    /**
+    * Switch off light in aSecs
+    * 
+    * @param aSecs after this seconds, screen will switch light
+    */
+    void SwitchLights( TInt aSecs );
+    
+    /**
+    * Switch on/off the screen
+    */
+    void SwitchDisplayState( TInt aState );
+    
+    };
+
+#endif // C_SCREENSAVERCTRLNONE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverctrlplugin.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,218 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Definitions for the display object of plugin type
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERCTRLPLUGIN_H
+#define C_SCREENSAVERCTRLPLUGIN_H
+
+#include <babitflags.h>
+
+#include "screensaverbase.h"
+
+/**
+ * The plugin type of display object which is derived from the 
+ * CScreensaverBase class
+ */
+class CScreensaverCtrlPlugin : public CScreensaverBase,
+    public MScreensaverPluginHost
+    {
+public:
+    enum TScreensaverPluginFlag
+        {
+        // Indicates that plugin module wants to draw indicators
+        EPluginFlagOverrideIndicators = 0,
+        // Indicates that plugin does not use refresh timer and should not get
+        // Draw() calls
+        EPluginFlagTimerNotUsed,
+        EPluginFlagSuspend
+        };
+public:
+    /**
+    * Two-phased constructor.  
+    */
+    static CScreensaverCtrlPlugin* NewL();
+
+    /**
+    * Destructor  
+    */
+    ~CScreensaverCtrlPlugin();
+
+    /**
+    * Start the control needed timer
+    */
+    void StartTimer();
+    
+    /**
+    * Cancels the timer
+    */
+    void CancelTimer();
+    
+    
+    /**
+    * Show the control
+    */
+    void DrawObject();
+    
+    /**
+    * Clear the screen
+    */
+    void ClearScreen();
+    
+    /*
+    * Refresh the display 
+    */
+    void Refresh();
+    
+    /**
+    * Send the event to plugin to deal with
+    * 
+    * @param aEvent the event send to plugin
+    * @return TInt  
+    */
+    TInt SendPluginEvent( TScreensaverEvent aEvent );
+    
+    /**
+    * Returns the implemenataion UID of the plugin
+    * 
+    * @return TUid Implementation UID
+    */
+    TUid PluginImplementationUid() const;
+
+public:
+    // From MScreensaverPluginHost
+    void UseStandardIndicators();
+    void OverrideStandardIndicators();
+    TBool StandardIndicatorsUsed() const;
+    void SetRefreshTimerValue( TInt aValue );
+    TInt RefreshTimerValue() const;
+    TInt GetIndicatorPayload( TScreensaverIndicatorIndex aIndex,
+        TIndicatorPayload& aResult ) const;
+    TInt SetActiveDisplayArea( TRect& aRect,
+        const TScreensaverPartialMode& aMode );
+    TInt SetActiveDisplayArea( TInt aStartRow, TInt aEndRow,
+        const TScreensaverPartialMode& aMode );
+    void ExitPartialMode();
+    const TScreensaverColorModel& GetColorModel() const;
+    void Suspend( TInt aTime );
+    void RequestLights( TInt aSecs );
+    TInt DisplayInfo( TScreensaverDisplayInfo* aDisplayInfo );
+    void UseRefreshTimer( TBool aOn = ETrue );
+    void RequestTimeout( TInt aSecs );
+    void RevertToDefaultSaver();
+    // End MScreensaverPluginHost
+
+protected:
+    /**
+    * The default C++ constuctor
+    * 
+    * @param aType the type of the display object.
+    * @param aPlugin the plugin which the screensaver is setted.  
+    */
+    CScreensaverCtrlPlugin();
+
+    /**
+    * Symbian default constructor.
+    */
+    void ConstructL();
+
+protected:
+    // From CCoeControl
+    
+    /** 
+    * Resource change handling  
+    */
+    virtual void HandleResourceChange( TInt aType );
+    
+    /**
+    * Responds to changes to the size and position of the contents 
+    * of this control.  
+    */
+    virtual void SizeChanged();
+    
+    /**
+    * Drawing (override this to draw)
+    */
+    virtual void Draw( const TRect& aRect ) const;
+    
+private:
+    /*
+    * LoadPluginL()
+    */
+    void LoadPluginL( MScreensaverPluginHost* aPluginHost );
+    
+    /*
+    * Get the poiter of the plugin
+    */
+    void LoadPluginModuleL();
+    
+    /*
+    * Delete the plugin
+    */
+    void DeletePlugin();
+    
+    /**
+    * Starts the plugin refresh timer
+    */
+    void StartPluginRefreshTimer();
+
+    /**
+    * Starts the plugin time out timer
+    */
+    void StartPluginTimeoutTimer( TInt aSecs );
+
+    
+    /**
+    * Callback fuction. Called when the Plugin tiemr time out
+    */
+    static TInt HandlePluginTimeoutTimerExpiry( TAny* aPtr );
+
+
+private://data
+    /**
+    * Plugin interface.
+    */
+    MScreensaverPlugin* iPlugin;
+    
+    /**
+    * The plugin refresh timer
+    */
+    CPeriodic* iPluginRefreshTimer;
+    
+    /**
+    * The plugin timeout timer
+    */
+    CPeriodic* iPluginTimeoutTimer;
+
+    
+    /**
+    * The plugin flag
+    */
+    mutable TBitFlagsT<TUint32> iPluginFlag;
+    
+    /**
+    * The refresh rate of plugin
+    */
+    TInt iPluginRefreshRate;
+    
+    /**
+    * The implementation UID of the plugin
+    */
+    TUid iPluginImplUid;
+    
+    };
+#endif // C_SCREENSAVERCTRLPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverengine.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,351 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Screensaver engine class definition.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERENGINE_H
+#define C_SCREENSAVERENGINE_H
+
+#include <e32base.h>
+#include <AknCapServerClient.h>
+
+#include "screensaverindicator.h"
+#include "screensaverindicatorarray.h"
+#include "screensaverplugin.h"
+
+//delay before wserv timer is turned off
+#define KWSERVHEARTBEATTIMEOUT 15
+
+// Delay after screensaver is stopped and hided.
+const TInt KDefaultScreenSaverTimeout = 2 * 60 * 1000000; // 2 mins
+
+// FORWARD DECLARATIONS
+class CUserActivityManager;
+class CScreensaverSharedDataI;
+class CScreensaverSharedDataMonitor;
+class CScreensaverAppUi;
+class CScreensaverView;
+class CScreensaverActivityManager;
+class CPowerSaveDisplayMode;
+
+/**
+* CScreensaverModel
+*/
+class CScreensaverEngine : public CBase 
+    {
+public:
+    
+    /**
+    * Two-phased constructor
+    * 
+    * @param aAppUi the AppUi of the application
+    */
+    static CScreensaverEngine* NewL();
+    
+    /**
+    * Destructor
+    */
+    ~CScreensaverEngine();
+
+    /**
+    * Return the pointer to the CScreensaverSharedDataI
+    * 
+    * @return CScreensaverSharedDataI*
+    */
+    CScreensaverSharedDataI* SharedDataInterface() const;
+    
+    /**
+    * Reset the time during which the user did not do anything
+    */
+    void ResetInactivityTimeout();
+
+    /**
+    * Returns if the screensaver is on or not
+    */
+    TBool ScreenSaverIsOn() const;
+    
+    /**
+    * Returns if the screensaver is previewing or not
+    */
+    TBool ScreenSaverIsPreviewing() const;
+
+    /**
+    * Starts screensaver
+    */
+    void StartScreenSaver();
+    
+    /**
+    * Stops the screensaver
+    */
+    void StopScreenSaver();
+
+    /**
+    * Starts the preview model
+    */
+    void StartPreviewModeL();
+    
+    /*
+    * Display the Object(); 
+    */
+    void DisplayObject();
+
+    /**
+    * Start the suspend timer
+    */
+    void StartSuspendTimer( TInt aSec );
+
+    /**
+    * Returns the indicator array
+    */
+    CScreensaverIndicatorArray& IndicatorArray() const;
+    
+    /**
+    * Returns the color model
+    */
+    const TScreensaverColorModel& GetColorModel( ) const;
+    
+    /**
+    * Adds the partial model
+    * 
+    * @param aBpp the bits per pixels of the partial model
+    * @param aType the type of the partial type
+    */
+    void AddPartialModeLevel( TInt aBpp, TScreensaverPartialModeType aType );
+
+    /**
+    * Updates the indicator attributes.
+    */
+    void UpdateIndicatorAttributes( );
+
+    /*
+     * Start screensaver expiry timer. When the timer expires the screensaver
+     * will be stopped and hided.
+     * 
+     * @param aTimeout Timeout after the screensaver stops and hides itself in
+     * microseconds. 0 or negative value will disable the timer.
+     */
+    void SetExpiryTimerTimeout( TInt aTimeout );
+    
+    /**
+    * Informs the engine about changes in keyguard state
+    * @param aEnabled whether the keyguard is now on or off 
+    */
+    void HandleKeyguardStateChanged( TBool aEnabled );
+    
+private:
+    
+    /**
+    * C++ default constructor
+    * 
+    * @param aAppUi the AppUi of the application
+    */
+    CScreensaverEngine();
+
+private:
+    
+    /**
+    * Two-phased constructor
+    */
+    void ConstructL();
+    
+    /**
+    * Constructs the shared data member
+    */
+    void EnableSharedDataAndMonitorL();
+    
+    /**
+    * Destruct the shared data member
+    */
+    void DisableSharedDataAndMonitor();
+
+    /**
+    * Starts to monitor the user activity
+    */
+    void StartActivityMonitoringL();
+    
+    /**
+    * Stops monitoring the user activity
+    */
+    void StopActivityMonitoring( CScreensaverActivityManager*& aActivityManager );
+
+    /**
+    * Gets the color model from the resource
+    */
+    void SetupColorModelL();
+
+    /**
+    * Start the preview timer
+    */
+    void StartPreviewTimer();
+    
+    /**
+     * Starts pause timer
+     */
+    void StartPauseTimer();
+    
+    /**
+    * Kill the timer
+    * 
+    * @param aTimer the timer you want stop
+    */
+    void KillTimer( CPeriodic*& aTimer );
+
+    
+    /**
+    * Callback fuction. Called when the preivew tiemr time out
+    */
+    static TInt HandlePreviewTimerExpiry( TAny* aPtr );
+    
+    /**
+    * Called when the time that the user did activity is out.
+    */
+    static TInt HandleActiveEventL(TAny* aPtr);
+    
+    /**
+    * Called when the time that the user did no activity is out.
+    */
+    static TInt HandleInactiveEventL(TAny* aPtr);
+    
+    /**
+    * Callback fuction. Called when the suspension tiemr time out
+    */
+    static TInt HandleSuspendTimerExpiry( TAny* aPtr );
+    
+    /**
+    * Callback function. Called when the pause timer expires
+    */
+    static TInt HandlePauseTimerExpiry( TAny* aPtr );
+
+    /**
+    * Returns the CScreensaverView
+    */
+    CScreensaverView* View() const;
+
+    /**
+    * Returns the timeout.
+    */
+    TInt Timeout();
+    
+    /**
+    * Returns the display flag.
+    */
+    TInt DisplayFlag();
+
+    /**
+    * Callback fuction. Called when the screensaver expiry timer time out.
+    */
+    static TInt HandleExpiryTimerExpiry( TAny* aPtr );
+
+    /**
+     * Callback to do the screensaver starting.
+     */
+    static TInt StartSaverCb( TAny* aPtr );
+
+private:
+    
+    /**
+    * The flag if append alert type indicator
+    */
+    TBool iShowExtendedProfileInd;
+    
+    /**
+    * The flag if the screensaver is on or not
+    */
+    TBool iScreenSaverIsOn;
+    
+    /**
+    * The flag if the screensaver is previewing or not
+    */
+    TBool iScreenSaverIsPreviewing;
+    
+    /**
+    * The trigger for screensaver activation
+    */
+    CScreensaverActivityManager* iActivityManagerScreensaver;
+
+    
+    /**
+    * The pointer to CScreensaverSharedDataI
+    * 
+    * Owned
+    */
+    CScreensaverSharedDataI* iSharedDataI;
+    
+    /*
+    * The pointer to the CScreensaverSharedDataMonitor 
+    */
+    CScreensaverSharedDataMonitor* iSharedDataMonitor;
+    
+    /**
+    * The pointer to the indicator array
+    * 
+    * Owned
+    */
+    CScreensaverIndicatorArray* iIndicatorArray;
+    
+    /**
+    * moved from view class
+    */
+    TScreensaverColorModel iColorModel;
+    
+    
+    /**
+    * The preview timer
+    */
+    CPeriodic* iPreviewTimer;
+    
+    /**
+    * The suspend timer
+    */
+    CPeriodic* iSuspendTimer;
+
+    /**
+    * used to intercept and capture application key event.
+    */
+    RAknUiServer iAknUiServer;
+
+    /**
+    * The screensaver expiry timer. Screensaver will be stoped when this timer
+    * expires.
+    * 
+    * Owned.
+    */
+    CPeriodic* iExpiryTimer;
+    
+    /**
+    * Pause timer. Used to reactivate screensaver after 5s when being 
+	* interrupted and keys are locked
+    */
+    CPeriodic* iPauseTimer;
+    
+    /**
+    * Set if the pause timer was started when preview was stopped
+    */
+    TBool iPauseTimerStartedAfterPreview;
+
+    /**
+     * Asynchronous callback to start screensaver.
+     */
+    CAsyncCallBack iAsyncCb;
+
+    };
+
+
+
+#endif // C_SCREENSAVERENGINE_H
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverindicator.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,270 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Definitions for screensaver indicator array.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERINDICATOR_H
+#define C_SCREENSAVERINDICATOR_H
+
+//#include <aknconsts.h>
+#include <coecntrl.h>
+#include <coeccntx.h>
+#include <e32base.h>
+#include <AknIconArray.h>
+#include <gulicon.h>
+#include <AknsItemID.h>
+#include <AknUtils.h>
+#include <screensaverplugin.h>
+
+#include "screensaver.hrh"
+
+
+/*
+*  Base class for all indicators.
+*/
+class CScreensaverIndicator : public CBase
+    {
+public:
+    
+    /**
+    * Destructor  
+    */
+    virtual ~CScreensaverIndicator();
+    
+    /**
+    * Draw the indicator. it should be implemented by the derived class
+    */
+    virtual void Draw(CWindowGc& aGc) const = 0;
+    
+    /**
+    * two-phased constructor  
+    * 
+    * @param aReader the resource read of the STRUCT 
+    * SCREENSAVER_PARAMETERS_ARRAY defined by ourself
+    * STRUCT SCREENSAVER_PARAMETERS_ARRAY 
+    * {
+    * WORD KIndicatorMargin;
+    * WORD KIndicatorGap;
+    * WORD KIndicatorTopMargin;
+    * WORD KIndicatorTextLevel;
+    * LONG KBackGroundColor;
+    * WORD KHeight;
+    * }
+    * @param aBgColor the background color of display screen
+    * @param aTextColor the text color
+    */
+    virtual void ConstructL(TResourceReader &aReader, TUint32 aBgColor, TUint aTextColor);
+    
+    /**
+    * Set the parameters of drawing
+    * 
+    * @param aCorner the position of the lefttop of the indicator
+    * @param aParentRect
+    */
+    virtual void SetupDrawingParameters(const TPoint& aCorner, const TRect& aParentRect) = 0;
+    
+    /**
+    * Check if indicator is visible or not
+    * 
+    * @return TBool
+    */
+    virtual TBool CheckVisibilityConditions() const = 0;
+    
+    /**
+    * Get the payload through the property
+    * 
+    * @param aPayload the reference to the payload  
+    */
+    virtual void Payload(TIndicatorPayload& aPayload) const = 0;
+    
+    /**
+    * Set the property through the payload
+    * 
+    * @param aPayload
+    */
+    virtual void SetPayload(const TIndicatorPayload& aPayload) = 0;
+    
+    /**
+    * Set the Id by the parameter
+    * 
+    * @param aId the Id value
+    */        
+    void SetId(TScreensaverIndicatorId aId);
+    
+    /**
+    * Check if visible or not
+    * 
+    * @return TBool if visible return ETrue, or EFalse.  
+    */
+    virtual TBool Visible() const;
+    
+    /**
+    * Set the visibility
+    * 
+    * @param aValue
+    */
+    void SetVisibility(TBool aValue);
+    
+    /**
+    * Returns the indicator width
+    * 
+    * @return TInt
+    */
+    TInt Width() const;
+    
+    /**
+    * Returns the indicator Id
+    * 
+    * @return TScreensaverIndicatorId
+    */
+    TScreensaverIndicatorId Id() const;
+    
+    /**
+    * Returns the indicator alighment
+    * enum TScreensaverAlignment
+    * {
+    * ESsAlignLeft,
+    * ESsAlignRight
+    * };
+    * 
+    * @return TScreensaverAlignment
+    */
+    TScreensaverAlignment Alignment() const;
+    
+    /**
+    * Returns the indicator DrawType, DrawType defined as below
+    *  enum TScreensaverDrawType
+    * {
+    * ESsDrawTypeNotDrawn,
+    * ESsDrawTypeSecondary,
+    * ESsDrawTypePrimary
+    * };
+    * 
+    * @return TScreensaverDrawType
+    */
+    TScreensaverDrawType DrawType() const;
+    
+    /**
+    * Makes a skin item ID from skinned bitmap id  
+    * 
+    * @param aSkinBmpId
+    * 
+    * @return TAknsItemID
+    */
+    TAknsItemID MakeSkinItemId(TInt aSkinBmpId);
+    
+    /**
+    * Sets the indicator type
+    * enum TScreensaverIndicatorType
+    * {
+    * ESsNumericIndicator,
+    * ESsIconIndicator,
+    * ESsTextIndicator,
+    * ESsNumberAndIconIndicator
+    * };
+    * 
+    * @param aType the type you want to set
+    */
+    void SetType(TScreensaverIndicatorType aType);
+    
+    /**
+    * Returns the type of indicator
+    * 
+    * @return TScreensaverIndicatorType  
+    */
+    TScreensaverIndicatorType Type();
+    
+    /**
+    * Depending on indicator type these may or may not be implemented
+    * in derived classes. Replaces setupdrawingparameters.
+    * Used for new layout         *   
+    */
+    virtual void SetIconLayout(TAknLayoutRect&, TInt);
+    virtual void SetTextLayout(TAknLayoutText&, TInt);
+    
+    /**
+    * Get the desired width of the indicator (where it fits completely)
+    */
+    virtual TInt PreferredWidth();
+    
+    /**
+    * Get the minimum width of the indicator
+    * (absolute minimum space it can be drawn in)
+    */
+    virtual TInt MinimumWidth();
+    
+    /**
+    * Set the width allowed for the indicator. This has effect only on
+    * indicators that have text, which may then be truncated. Bitmap
+    * widths are not adjusted  
+    */
+    virtual void SetWidth(TInt);
+    
+    /**
+    * Set X-position of indicator  
+    */
+    virtual void SetXPos(TInt);
+    
+protected:
+    
+    /**
+    * The indicator Id  
+    */
+    TScreensaverIndicatorId iId;
+    
+    /**
+    * The topleft position of indicator  
+    */
+    TPoint iTopLeft;
+    
+    /**
+    * The flag indicates the indicator is visible or not  
+    */
+    TBool  iVisible;
+    
+    /**
+    * The area of indicator  
+    */
+    TRect  iRect;
+    
+    /**
+    * The indicator draw type  
+    */
+    TScreensaverDrawType iDrawType;
+    
+    /**
+    * The indicator alignment  
+    */
+    TScreensaverAlignment iAlignment;
+    
+    /**
+    * The indicator type.  
+    */
+    TScreensaverIndicatorType iType;
+    
+    /**
+    * Colors to be used to draw indicators  
+    */
+    TRgb 	iBgColor;
+    TRgb 	iTextColor;
+    
+    };
+
+
+#endif // C_SCREENSAVERINDICATOR_H
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverindicatorarray.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,245 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverIndicatorArray declaration.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERINDICATORARRAY_H
+#define C_SCREENSAVERINDICATORARRAY_H
+
+#include "screensaverindicator.h"
+
+/*
+*   Indicator array class.
+*/
+class CScreensaverIndicatorArray : public CBase
+    {
+    public:
+        
+        /**
+    * Two-phased constructor
+    * 
+    * @param aOldLayout if construct the old layout or the new layout
+    * @param aColorInversionUsed if use the inverted color or the 
+    * normal color
+    */
+    static CScreensaverIndicatorArray* NewL( TBool aColorInversionUsed );
+
+    /**
+    * Destructor
+    */
+    ~CScreensaverIndicatorArray();
+
+    /**
+    * Two-phased constructor
+    */
+    void ConstructL( TBool aColorInversionUsed);
+
+    /**
+    * Creates indicator of given type and pushes it to
+    * cleanup stack.
+    *
+    * @param aId  Indicator to be created.
+    */
+    CScreensaverIndicator *NewIndicatorLC(TScreensaverIndicatorType aType);
+
+    /**
+    * Draws indicator array to given graphics context. Setup function
+    * must be called before calling Draw function.
+    *
+    * @param aGc  Graphics context for drawing indicator array.
+    */
+    void Draw(CWindowGc& aGc) const;
+
+    /**
+    * Sets up indicator array for drawing. Sets positions for
+    * indicators.
+    */
+    void Setup(TAknLayoutRect& aLayoutRect, TAknLayoutText& aLayoutText,
+               TAknLayoutRect& aLayoutInds);
+    
+    /*
+    * Set the attributes of the indicator 
+    */
+    void SetIndicatorsAttribute( 
+        TInt& Ind, 
+        TAknLayoutText& aLayoutText, 
+        TAknLayoutRect& aLayoutInds, 
+        TInt& aCurrentX );
+
+    /**
+    * Checks if there is dependency flag set for given indicator.
+    *
+    * @param
+    * @return ETrue  if there is dependency conflict.
+    *         EFalse if not.
+    */
+    TBool CheckDependencyConflict(TScreensaverIndicatorId aId) const;
+
+    /*
+    * Sets dependency flag to given indicator to given value.
+    * If dependency flag is set then the indicator is not drawn
+    * even when it would be otherwise visible.
+    */
+    void SetDependencyStatus(TScreensaverIndicatorId aId, TBool aValue);
+
+    /**
+    * Queries payload for given indicator.
+    *
+    * @param aId ID of the indicator
+    * @param aPayload Indicator payload to receive the information
+    * @return  KErrNone if payload was set successfully.
+    */
+    TInt GetIndicatorPayload(
+        TScreensaverIndicatorId aId,
+        TIndicatorPayload& aPayload) const;
+
+    /**
+    * Sets payload for given indicator.
+    * NOTE that icon and displayed indication cannot be set
+    *
+    * @param aType
+    * @param aPayload
+    * @return KErrNone if payload was set successfully.
+    */
+    TInt SetIndicatorPayload(
+        TScreensaverIndicatorId aId,
+        const TIndicatorPayload& aPayload);
+
+    /**
+    * Returns value indicating which drawing mode screensaver should select
+    * based on indicator payloads and dependecies. This function aswers to question
+    * "What drawing mode should screensaver select if indicator payloads and
+    * dependencies were the only determining factor?". This doesn't mean
+    * that screensaver will be necessarily drawn in that mode if there is
+    * plugin module present or something happens while setting up indicator array
+    * for drawing. Screensaver needs this information when it prepares itself for
+    * drawing.
+    */
+    TScreensaverDrawType PreferredDrawingMode() const;
+
+    /**
+    * Returns value indicating which drawing mode screensaver should select.
+    * This function is basically same as 'PreferredDrawingMode', but it
+    * returns the final state of indicator array after it has been
+    * set up (which may be different from PreferredDrawingMode).
+    * Screensaver queries this information just before it draws the screen.
+    */
+    TScreensaverDrawType ActualDrawingMode() const;
+
+    /**
+    * Returns the height of indicator.
+    */
+    TInt Height() const;
+
+    /**
+    * To set visibility value for indicators
+    */
+    void SetVisibilityForIndicators();
+    
+private:
+    
+    /**
+    * C++ default constructor
+    */
+    CScreensaverIndicatorArray();
+    
+    /**
+    * Construct the Indicator from the resource file
+    */
+    void ConstructFromResourceL();
+    
+    /*
+    * Constuct the screensaver param from the resource
+    */
+    void ConstructParamFromResourceL();
+    
+    /*
+    * Construct indicator array from resource 
+    */
+    void ConstructIndArrayL();
+    
+    /*
+    * Construct the indicators from resource 
+    */
+    void ConstructIndicatorsL( TInt aResourceId );
+    
+    /**
+    * Returns the dependency record by the index
+    */
+    TBool Dependency(TInt aIndex) const;
+
+private:
+    
+    /**
+    * The count of the indicator
+    */
+    TInt iCount;
+    
+    /**
+    * How many pixels between indicators.
+    */
+    TInt iGap;
+    
+    /** 
+    * Minimum indicator distance to left and right border.
+    */
+    TInt iMargin;
+    
+    /**
+    * Distance from top border of indicator bar to top border of 
+    * indicator icon.
+    */
+    TInt iTopMargin;
+    
+    /**
+    * The level of the text
+    */
+    TInt iTextLevel;
+    
+    /**
+    * The area of the indicator
+    */
+    TRect iRect;
+    
+    /**
+    * The height of the indicator bar
+    */
+    TInt iHeight;
+    
+    /**
+    * The array of indicators
+    */
+    CArrayPtrFlat<CScreensaverIndicator>* iIndicators;
+    
+    /**
+    * The array of dependency record
+    */
+    CArrayFixFlat<TBool>* iDependencyRecord;
+    
+    /**
+    * The flag decised if use the old layout or not.
+    */
+    TBool iOldLayout;
+    
+    /**
+    * Colors to be used for indicator layout
+    */
+    TUint32 iBgColor;
+    TUint32 iTextColor;  
+};
+
+#endif // C_SCREENSAVERINDICATORARRAY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverindicatoricon.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverIndicatorIcon declaration.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERINDICATORICON_H
+#define C_SCREENSAVERINDICATORICON_H
+
+#include "screensaverindicator.h"
+
+/**
+*  Simple icon indicator. Displays icon, but no other information.
+*/
+class CScreensaverIndicatorIcon : public CScreensaverIndicator
+    {
+public:
+
+    /**
+    * Destructor  
+    */
+    ~CScreensaverIndicatorIcon();
+    
+    /**
+    * Draw the indicator. it should be implemented by the derived class
+    */
+    virtual void Draw(CWindowGc& aGc) const;
+    
+    /**
+    * two-phased constructor  
+    * 
+    * @param aReader the resource read of the STRUCT 
+    * SCREENSAVER_PARAMETERS_ARRAY defined by ourself
+    * @param aBgColor the background color of display screen
+    * @param aTextColor the text color
+    */
+    virtual void ConstructL(TResourceReader &aReader, TUint32 aBgColor, TUint aTextColor);
+    
+    /**
+    * Set the parameters of drawing
+    * 
+    * @param aCorner the position of the lefttop of the indicator
+    * @param aParentRect
+    */
+    virtual void SetupDrawingParameters(const TPoint &aCorner, const TRect& aParentRect);
+    
+    /**
+    * Check if indicator is visible or not
+    * 
+    * @return TBool
+    */
+    virtual TBool CheckVisibilityConditions() const;
+    
+    /**
+    * Get the payload through the property
+    * 
+    * @param aPayload the reference to the payload  
+    */
+    virtual void Payload(TIndicatorPayload& aPayload) const;
+    
+    /**
+    * Set the property through the payload
+    * 
+    * @param aPayload
+    */
+    virtual void SetPayload(const TIndicatorPayload& aPayload);
+    
+    /**
+    * Sets icon position and size
+    */
+    virtual void SetIconLayout(TAknLayoutRect& aLayout, TInt aX = -1); 
+
+private:
+
+    /**
+    * The icon will be displayer
+    * 
+    * Owned
+    */
+    CGulIcon* iIcon;
+    };
+
+#endif // C_SCREENSAVERINDICATORICON_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverindicatornumberandicon.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,155 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverIndicatorNumberAndIcon declaration.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERINDICATORNUMBERANDICON_H
+#define C_SCREENSAVERINDICATORNUMBERANDICON_H
+
+#include "screensaverindicator.h"
+
+class CScreensaverIndicatorNumberAndIcon : public CScreensaverIndicator
+    {
+public:
+    ~CScreensaverIndicatorNumberAndIcon();
+    
+    /**
+    * Draw the indicator. it should be implemented by the derived class
+    */
+    virtual void Draw( CWindowGc& aGc ) const;
+    
+    /**
+    * two-phased constructor  
+    * 
+    * @param aReader the resource read of the STRUCT 
+    * SCREENSAVER_PARAMETERS_ARRAY defined by ourself
+    * @param aBgColor the background color of display screen
+    * @param aTextColor the text color
+    */
+    virtual void ConstructL( TResourceReader &aReader, TUint32 aBgColor, TUint aTextColor );
+    
+    /**
+    * Set the parameters of drawing
+    * 
+    * @param aCorner the position of the lefttop of the indicator
+    * @param aParentRect
+    */
+    virtual void SetupDrawingParameters( const TPoint& aCorner, const TRect& aParentRect );
+    
+    /**
+    * Check if indicator is visible or not
+    * 
+    * @return TBool
+    */
+    virtual TBool CheckVisibilityConditions() const;
+    
+    /**
+    * Get the payload through the property
+    * 
+    * @param aPayload the reference to the payload  
+    */
+    virtual void Payload( TIndicatorPayload& aPayload ) const;
+    
+    /**
+    * Set the property through the payload
+    * 
+    * @param aPayload
+    */
+    virtual void SetPayload( const TIndicatorPayload& aPayload );
+    
+    /**
+    * Sets icon position and size
+    */
+    virtual void SetIconLayout( TAknLayoutRect& aLayout, TInt aX = -1 ); 
+
+    /**
+    * Sets text position and font
+    */
+    virtual void SetTextLayout( TAknLayoutText& aLayout, TInt aX = -1 );
+
+    /**
+    * Width function overrides
+    */
+    virtual TInt PreferredWidth();
+    
+    /**
+    * Returns the icon width
+    */
+    virtual TInt MinimumWidth();
+
+    /**
+    * virtual void SetWidth(TInt aWidth);
+    */
+    virtual void SetXPos( TInt aX );
+
+    /**
+    * Initialize layout of graphics;
+    */
+    virtual void InitializeLayout();
+
+    /**
+    * Initialize icon;
+    */
+    virtual void InitializeIconL( TResourceReader &aReader );
+
+    /**
+    * draw icon;
+    */
+    virtual void DrawIcon( CWindowGc& aGc ) const;
+
+private:
+
+    /**
+    * The icon will be displayer
+    * 
+    * Owned
+    */
+    CGulIcon* iIcon;
+    
+    /**
+    *
+    */
+    TInt iValue;
+    
+    /**
+    * The font of the text
+    * Not owned.
+    */
+    const CFont *iFont;
+    
+    /**
+    * The icon alignment
+    */
+    TScreensaverAlignment iIconAlign;
+    
+    /**
+    * Text position for legacy layout
+    */
+    TPoint iTextPos;
+    
+    /**
+    * Rect inside which text is drawn
+    */
+    TRect iTextRect;
+    
+    /**
+    * Text baseline offset from text rect top
+    */
+    TInt iTextOffset;
+};
+
+#endif // C_SCREENSAVERINDICATORNUMBERANDICON_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverindicatortext.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverIndicatorText declaration.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERINDICATORTEXT_H
+#define C_SCREENSAVERINDICATORTEXT_H
+
+#include "screensaverindicator.h"
+
+class CScreensaverIndicatorText : public CScreensaverIndicator
+    {
+public:
+    
+    /**
+    * Draw the indicator. it should be implemented by the derived class
+    */
+    virtual void Draw( CWindowGc& aGc ) const;
+    
+    /**
+    * two-phased constructor  
+    * 
+    * @param aReader the resource read of the STRUCT 
+    * SCREENSAVER_PARAMETERS_ARRAY defined by ourself
+    * @param aBgColor the background color of display screen
+    * @param aTextColor the text color
+    */
+    virtual void ConstructL( TResourceReader &aReader, TUint32 aBgColor, TUint aTextColor );
+            
+    /**
+    * Set the parameters of drawing
+    * 
+    * @param aCorner the position of the lefttop of the indicator
+    * @param aParentRect
+    */
+    virtual void SetupDrawingParameters( const TPoint& aCorner, const TRect& aParentRect );
+            
+    /**
+    * Check if indicator is visible or not
+    * 
+    * @return TBool
+    */
+    virtual TBool CheckVisibilityConditions() const;
+    
+    /**
+    * Get the payload through the property
+    * 
+    * @param aPayload the reference to the payload  
+    */
+    virtual void Payload( TIndicatorPayload& aPayload ) const;
+    
+    /**
+    * Set the property through the payload
+    * 
+    * @param aPayload
+    */
+    virtual void SetPayload( const TIndicatorPayload& aPayload );
+
+    /**
+    * Sets text position and font
+    */
+    virtual void SetTextLayout( TAknLayoutText& aLayout, TInt aX = -1 );
+
+    /**
+    * Returns the width where whole text fits
+    */
+    virtual TInt PreferredWidth();
+
+    /**
+    * Set available width
+    */ 
+    virtual void SetWidth( TInt aWidth );
+
+    /**
+    * Set x-position of indicator
+    */ 
+    virtual void SetXPos( TInt aX );
+    
+private:
+    
+    /**
+    * The text should be displayed
+    */
+    TBuf16<KMaxPayloadTextLength> iText;
+    
+    /**
+    * The font of the text
+    * Not owned.
+    */
+    const CFont *iFont;
+    
+    /**
+    * Rect inside which text is drawn
+    */
+    TRect iTextRect;
+    
+    /**
+    * Text baseline offset from text rect top
+    */
+    TInt iTextOffset; 
+    };
+
+#endif // C_SCREENSAVERINDICATORTEXT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverrepositorywatcher.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverRepositoryWatcher declaration.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERREPOSITORYWATCHER_H
+#define C_SCREENSAVERREPOSITORYWATCHER_H
+
+// INCLUDES
+#include <cenrepnotifyhandler.h>
+
+// CLASS DECLARATION
+class CRepository;
+/**
+* The class used to monitor the change of register value
+*/
+class CScreensaverRepositoryWatcher : public CBase,
+    public MCenRepNotifyHandlerCallback
+    {
+public:
+    
+    /**
+    * Two-phased constructor
+    */
+    static CScreensaverRepositoryWatcher* NewL(const TUid aUid,
+            const TUint32 aKey, CCenRepNotifyHandler::TCenRepKeyType aKeyType,
+            TCallBack aCallBack, CRepository* aRepository);
+
+    /**
+    * Two-phased constructor
+    */
+    static CScreensaverRepositoryWatcher* NewL(const TUid aUid,
+            TCallBack aCallBack, CRepository* aRepository);
+
+    /**
+    * Destructor
+    */
+    ~CScreensaverRepositoryWatcher();
+
+    /**
+    * Returns the changed key
+    */
+    TUint32 ChangedKey();
+
+public:
+    // from MCenRepNotifyHandlerCallback
+    void HandleNotifyInt(TUint32 aKey, TInt aNewValue);
+    void HandleNotifyString(TUint32 aKey, const TDesC16& aNewValue);
+    void HandleNotifyGeneric(TUint32 aKey);
+    void HandleNotifyError(TUint32 aKey, TInt aError,
+            CCenRepNotifyHandler* aHandler);
+
+private:
+    
+    /**
+    * C++ default constructor
+    */
+    CScreensaverRepositoryWatcher(const TUid aUid, const TUint32 aKey,
+            TCallBack aCallBack, CRepository* aRepository);
+
+    /**
+    * Two-phased constructor
+    */
+    void ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType);
+
+    /**
+    * Two-phased constructor
+    */
+    void ConstructL();
+
+private:
+    TUid iUid;
+    TUint32 iKey;
+    TUint32 iChangedKey;
+    TCallBack iCallBack;
+    CRepository* iRepository;
+    CCenRepNotifyHandler* iNotifyHandler;
+
+    };
+
+#endif // C_SCREENSAVERREPOSITORYWATCHER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensavershareddatai.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,409 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Defines screensaver shared data connections.
+*
+*/
+
+
+
+#ifndef _SCREENSAVERSHAREDDATAI_H__
+#define _SCREENSAVERSHAREDDATAI_H__
+
+#include <msvapi.h>         // for MMsvSessionObserver
+#include <cenrepnotifyhandler.h>
+
+#include "screensaverplugin.h"
+#include "ScreensaverUtils.h"
+#include "ScreensaverInternalPSKeys.h"
+#include "ScreensaverInternalCRKeys.h"
+#include "screensaverengine.h"
+
+enum
+    {
+    ESSForceLightsOff = 0,
+    ESSForceLightsOn
+    };
+
+// CLASS DECLARATION
+class CRepository;
+class CScreensaverRepositoryWatcher;
+class CSubscriber;
+class MProfile;
+class MProfileEngine;
+
+class CScreensaverSharedDataI : public CBase, public MMsvEntryObserver,
+    public MMsvSessionObserver
+    {
+public:
+    /**
+    * Two-phased constructor
+    */
+    static CScreensaverSharedDataI* NewL();
+
+    /**
+    * Destructor
+    */
+    ~CScreensaverSharedDataI();
+
+public:
+    /**
+    * Get the screensaver object type
+    */
+    TDisplayObjectType DisplayObjectType() const;
+
+    /*
+    * Change the display object type of screensaver
+    */
+    void SetDisplayObjectType( const TDisplayObjectType aType );
+    
+    /**
+    * Gets the display text
+    */
+    void GetDisplayObjectText( TDes& aDes ) const;
+
+    /*
+    * Get the plug-in name
+    */
+    void GetPluginName( TFileName& aFileName ) const;
+    
+    /*
+    * Get the flag if uses the inversive color 
+    */
+    TBool IsInvertedColors() const;
+    
+    /**
+    * Gets the timeout
+    */
+    TInt ScreensaverTimeout() const;
+    
+    /*
+    * Is the New Contact Note is actived or not
+    */
+    TBool IsNCNActive() const;
+    
+    /*
+    * Get the count of the missed calls 
+    */
+    TInt NewMissedCalls() const;    
+
+    /**
+    * Request screen lights to be turned on or off
+    *
+    * @param sSecs - lights on for aSecs seconds, 0 = off, max 30.
+    */
+    void SetSSForcedLightsOn( const TInt aSecs );
+
+    /**
+    * Publish Screensaver on/off status
+    *
+    * @param aOn ETrue - saver on, EFalse - off
+    */
+    void SetScreensaverStatus(const TBool aOn = ETrue);
+
+    /**
+    * Publish "Screensaver started from Idle" status
+    */
+    void SetSSStartedFromIdleStatus();
+    
+    /*
+    * Get the flag that if the screensaver is allowed or not
+    */
+    TInt IsScreenSaverAllowed() const;
+    
+    /*
+    * Get the Preview mode of screensaver 
+    */
+    TInt ScreensaverPreviewMode() const;
+    
+    /*
+    * Set the preview mode 
+    */
+    void SetScreensaverPreviewMode( const TInt aMode );
+
+    /**
+    * Get preview state
+    */
+    TScreenSaverPreviewState ScreensaverPreviewState() const;
+    
+    /**
+    * Report preview state
+    */
+    void SetScreensaverPreviewState( const TScreenSaverPreviewState aState );
+    
+    /*
+    * Get keyguard status 
+    *
+    * @return ETrue  key guard is active.
+    *         EFalse key guard is inactive.
+    */
+    TBool IsKeyguardOn() const;
+
+    /**
+    * Query power save mode usage
+    *
+    * @return ETrue, if power save mode should be used
+    */
+    TBool IsUsePowerSaveMode() const;
+
+    /**
+    * Query system startup completion status
+    *
+    * @return ETrue, if system startup is complete
+    */
+    TBool IsSystemStartupComplete();
+    
+    /**
+    * Gets the default screensaver type
+    */
+    TDisplayObjectType DefaultScreensaverType() const;
+
+    /**
+    * Returns number of unread messages in inbox.
+    *
+    * @return  Number of unread messages in inbox.
+    */
+    TInt UnreadMessagesNumber();
+
+    /**
+    * Return the name of currently selected profile
+    *
+    * @return Profile name descriptor.
+    */
+    const TDesC& ProfileName();
+
+    /**
+    * Query active profile.
+    *
+    * @return Id of active profile, or system error code.
+    */
+    TInt ActiveProfile();
+
+    /**
+    * Query new email status
+    *
+    * @return ETrue if there is new email
+    */
+    TBool IsHaveNewEmail() const;
+
+    /**
+    * Query new voice mail status
+    *
+    * @return ETrue, if there is new voice mail
+    */
+    TBool IsHaveNewVoicemail() const;
+    
+    /**
+    * Query new instant message status
+    *
+    * @return ETrue, if there are instant messages pending
+    */
+    TBool IsHaveNewInstantMessages() const;
+
+    /**
+    * Query silent mode status
+    *
+    * @return ETrue, if silent mode is on
+    */
+    TBool IsSilentMode();
+
+    /**
+    * Query vibra mode status
+    *
+    * @return ETrue, if vibra mode is on
+    */
+    TBool IsVibraMode();
+    
+    /**
+    * Query call state
+    * 
+    * @return ETrue if a call is ongoing 
+    */
+    TBool IsOngoingCall();
+
+public:
+    /**
+    * From MMsvSessionObserver. Not used.
+    */
+    void HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/,
+            TAny* /*aArg2*/, TAny* /*aArg3*/);
+
+    /**
+    * From MMsvEntryObserver. Callback function. Handles global In-box events.
+    * @param aEvent An entry event.
+    */
+    void HandleEntryEventL(TMsvEntryEvent aEvent, TAny* aArg1, TAny* aArg2,
+            TAny* aArg3);
+
+    /*
+    * Returns the pointer of the screensaver repository 
+    */
+    CRepository* ScreensaverRepository() const;
+    
+public:
+    /*
+    * Get the flag of display changed 
+    */
+    TBool GetDisplayObjChanged() const;
+    /*
+    * Set the flag of display changed 
+    */
+    void SetDisplayObjChanged( TBool aChanged );
+
+private:
+    
+    /**
+    * C++ default constructor
+    */
+    CScreensaverSharedDataI();
+    
+    /**
+    * Two-phased constructor
+    */
+    void ConstructL();
+    
+    /**
+    * Connect to the screensaver central repository
+    */
+    void ConnectToSSCRL();
+    
+    /**
+    * Connect to the Psln Setting central repository
+    */
+    void ConnectToPslnSettingCRL();
+    void ConnectToCommonTsyCRL();
+    void ConnectToInboxL();
+
+    /**
+    * Connects to Profile engine. Returns ETrue if successfully connected
+    * iProfileEngine will then point to a valid MProfileEngine
+    */
+    TBool ConnectToProfileEngine();
+
+    /**
+     * Connects to active profile. Returns ETrue if successfully connected
+     * iActiveProfile will then point to a valid MProfile
+     */
+    TBool ConnectToActiveProfile();
+    
+    /*
+    * Define the screensaver properties 
+    */
+    void DefineScreensaverProperties( TUint32 aKey, const TSecurityPolicy& aWritePolicy );
+
+private:
+    // Shared data key state handlers.
+    
+    /**
+    * Callback fuction. Called when the timeout changed
+    */
+    static TInt HandleTimeoutChanged(TAny* aPtr);
+
+    /**
+    * Resets the inactivity timeout
+    */
+    void ResetInactivityTimeout();
+
+    /**
+    * Callback fuction. Called when the display object changed
+    */
+    static TInt HandleDisplayObjChanged(TAny* aPtr);
+   
+    /*
+    * Get the default type
+    */
+    void GetDefaultType();
+
+    /*
+     * Get the default type string from the CR
+     */
+    TInt GetDefaultTypeString( TDes& DefaultScreenSaver );
+    
+    /*
+    * Get the count of the voice mail 
+    */
+    TInt VoiceMailCount( const TUint32 aKey ) const;
+
+    /**
+    * Invalidate cached active profile
+    */
+    void InvalidateActiveProfile();
+    
+    /**
+    * Returns the AppUi
+    */
+    CScreensaverAppUi *AppUi() const;
+
+private:
+    
+    /*
+    * The type of the display object
+    */
+    TDisplayObjectType iDefaultType;
+    /**
+    * not owned!
+    */
+    CScreensaverAppUi* iAppUi;
+
+    /**
+    * Screensaver specific values.
+    */
+    CRepository* iScreensaverRepository;
+    CScreensaverRepositoryWatcher* iScreensaverRepositoryWatcher;
+
+    /**
+    * General Settings.
+    */
+    CRepository* iSettingsRepository;
+    CScreensaverRepositoryWatcher* iSettingsRepositoryWatcher;
+
+    /**
+    * Common tsy repository (voice message waiting)
+    */
+    CRepository* iCTsyRepository;
+
+
+    /**
+    * Access to the profile engine
+    */
+    MProfileEngine* iProfileEngine;
+    
+    /**
+    * Need to store also the profile, so that it's name
+    * can be used at any time
+    */
+    MProfile* iActiveProfile;
+
+    /**
+    * The Msv session pointer.
+    */
+    CMsvSession* iMsvSession;
+    
+    /**
+    *  In-box folder entry. Note that the entry is not owned by this class.
+    */
+    CMsvEntry* iInboxFolder;
+
+    /**
+    * System startup completion flag
+    */
+    TBool iStartupComplete;
+    
+    /**
+   * Record display changed flag
+   */
+    TBool iDisplayChange;
+    };
+
+#endif  // C_SCREENSAVERSHAREDDATAI_H
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensavershareddatamonitor.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,184 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Defination for screensaver shared data monitoring.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERSHAREDDATAMONITOR_H
+#define C_SCREENSAVERSHAREDDATAMONITOR_H
+
+// INCLUDES
+#include <e32property.h>
+
+// CLASS DECLARATION
+class CScreensaverSharedDataI;
+class CScreensaverRepositoryWatcher;
+class CScreensaverEngine;
+class CScreensaverView;
+class CSubscriber;
+
+
+/**
+ *  Cscreensavershareddatamonitor
+ * 
+ */
+class CScreensaverSharedDataMonitor : public CBase
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * Destructor.
+     */
+    ~CScreensaverSharedDataMonitor( );
+
+    /**
+     * Two-phased constructor.
+     */
+    static CScreensaverSharedDataMonitor* NewL( CScreensaverSharedDataI* aData );
+
+private:
+
+    /**
+     * Constructor for performing 1st stage construction
+     */
+    CScreensaverSharedDataMonitor( CScreensaverSharedDataI* aData );
+
+    /**
+     * EPOC default constructor for performing 2nd stage construction
+     */
+    void ConstructL();
+    
+    /*
+    * Returns the pointer of screensaver appui 
+    */
+    CScreensaverView* View();
+    
+    /*
+    * Returns the refrence of model instance
+    */
+    CScreensaverEngine& Model();
+    
+    /**
+    * detele CSubscriber
+    */
+    void DeleteSubscriber( CSubscriber*& aSubscriber );
+    
+private:
+    
+    /**
+    * Callback fuction. Called when the preview mode changed
+    */
+    static TInt HandlePreviewModeChanged(TAny* aPtr);
+
+    /**
+    * Callback fuction. Called when the MMC state changed
+    */
+    static TInt HandleMMCStateChanged(TAny* aPtr);
+
+    /**
+    * Callback fuction. Called when the USB state changed
+    */
+    static TInt HandleUSBStateChanged(TAny* aPtr);
+
+    /**
+    * Callback fuction. Called when the Keyguard state changed
+    */
+    static TInt HandleKeyguardStateChanged(TAny* aPtr);
+
+    /**
+    * Callback fuction. Called when the Call state changed
+    */
+    static TInt HandleCallStateChanged(TAny* aPtr);
+
+    /**
+    * Callback fuction. Called when the ShuttingDown state changed
+    */
+    static TInt HandleShuttingDownStateChanged(TAny* aPtr);
+
+    /**
+    * Callback function. Called when a start/stop request is received
+    */
+    static TInt HandleActivateSSChanged( TAny* aPtr );
+    
+    /**
+    * Callback function. Called when charger state changes
+    */
+    static TInt HandleChargerStateChanged( TAny* aPtr );
+    
+    /**
+    * Callback function. Called when the message waiting display state changes
+    */
+    static TInt HandleMessageWaitingStateChanged( TAny* aPtr );
+
+private:
+    
+    /*
+    * The data of model class, Not own 
+    */
+    CScreensaverSharedDataI* iData;
+    
+    /*
+    * The Preview mode property and its monitor
+    */
+    RProperty iPreviewModeProperty;
+    CSubscriber* iPreviewModeSubscriber;
+    
+    /*
+    * The MMC property and its monitor
+    */
+    RProperty iMMCWatchProperty;
+    CSubscriber* iMMCWatchSubscriber;
+    
+    /*
+    * The USB property and its monitor 
+    */
+    RProperty iUSBWatchProperty;
+    CSubscriber* iUSBWatchSubscriber;
+    
+    /*
+    * The  KeyGuard state property and its watcher
+    */
+    RProperty iKeyguardStateProperty;
+    CSubscriber* iKeyguardStateSubscriber;
+    
+    /*
+    * The Call state property and its watcher 
+    */
+    RProperty iCallStateProperty;
+    CSubscriber* iCallStateSubscriber;
+    
+    /*
+    * The shutting down property and its watcher 
+    */
+    RProperty iShuttingDownProperty;
+    CSubscriber* iShuttingDownSubscriber;
+
+    RProperty iActivateSSProperty;
+    CSubscriber* iActivateSSSubscriber;
+    
+    /*
+    * Charger state property and subscriber
+    */
+    RProperty iChargerStateProperty;
+    CSubscriber* iChargerStateSubscriber;
+    
+    CRepository* iMessageWaitingRepository;
+    CScreensaverRepositoryWatcher* iMessageWaitingWatcher;
+
+    };
+
+#endif // C_SCREENSAVERSHAREDDATAMONITOR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaversubscriber.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Defines screensaver shared data Subscriber.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERSUBSCRIBER_H
+#define C_SCREENSAVERSUBSCRIBER_H
+
+#include <e32base.h>
+#include <e32property.h>
+
+/**
+* CSubscriber
+*/
+class CSubscriber : public CActive
+    {
+public:
+    CSubscriber(TCallBack aCallBack, RProperty& aProperty);
+    ~CSubscriber();
+
+public:
+    // New functions
+    void SubscribeL();
+    void StopSubscribe();
+
+private:
+    // from CActive
+    void RunL();
+    void DoCancel();
+
+private:
+    TCallBack iCallBack;
+    RProperty& iProperty;
+    };
+
+#endif // C_SCREENSAVERSUBSCRIBER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverutility.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Defines screensaver utility tools.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERUTILITY_H
+#define C_SCREENSAVERUTILITY_H
+
+// INCLUDES
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+/**
+* The uitility class of screensaver
+*/
+class ScreensaverUtility
+    {
+public:
+    
+    /**
+    * Panic
+    */
+    static void Panic( TInt aPanic );
+
+    /**
+    * Flushes the draw buffer (before activating power save) 
+    */
+    static void FlushDrawBuffer();
+    
+    /**
+    * Checks whether screen has been rotated
+    */
+    static TBool ScreenRotated();
+    
+    /**
+    * Query whether 12-hour clock is displayed
+    */
+    static TBool Query12HourClock();
+
+    /**
+    * Brings the application to foreground
+    */
+    static void BringToForeground(); 
+    
+    /**
+    * Sends the application to background
+    */
+    static void SendToBackground();
+    
+    /**
+    * Drive info helpers
+    */
+    static TBool IsDrivePresent(TInt aDrive);
+    
+    /**
+    * Loads the bitmap
+    */
+    static CGulIcon* LoadBitmapL();
+
+    /**
+    * Stop the server heartbeat
+    */
+    static void StopWServHeartBeat();
+    };
+
+#endif // C_SCREENSAVERUTILITY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/screensaverview.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,170 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Screensaver view class defination.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERVIEW_H
+#define C_SCREENSAVERVIEW_H
+
+#include <aknview.h>
+#include <babitflags.h>
+
+#include "screensaver.hrh"
+
+//CLASS DECLARATION
+class CScreensaverBase;
+class CScreensaverEngine;
+
+const TUid KUidScreensaverView ={ 1 };
+//
+// class CScreensaverView
+// an empty place holder for when we are in the background
+class CScreensaverView : public CAknView
+    {
+public:
+    
+    /**
+    * Two-phased constructor
+    */
+    static CScreensaverView* NewL();
+
+    /**
+    * C++ default constructor
+    */
+    CScreensaverView();
+    
+    /**
+    * Destructor
+    */
+    ~CScreensaverView();
+    
+    /**
+    * Two-phased constructor
+    */
+    void ConstructL();
+    
+    /**
+    * Creates the display object by the parameter
+    * 
+    * @param the object factory object, default type is EDisplayNone
+    */
+    void CreateDisplayObjectL( TDisplayObjectType aType );
+    
+    /**
+    * Resets the display object
+    */
+    void SetDisplayObject( TDisplayObjectType aType );
+
+    /**
+    * Creates the preview display object
+    */
+    void CreatePreviewDisplayObjectL();
+    
+    /**
+    * Returns true the screensaver doesn't draw anything
+    */
+    TBool IsContentlessScreensaver() const;
+
+public://From CAknView
+    
+    /**
+    * Returns views id, intended for overriding by sub classes.
+    * @return id for this view.
+    */
+    TUid Id() const;
+
+    /** 
+    * Handles a view activation and passes the message of type 
+    * @c aCustomMessageId. This function is intended for overriding by 
+    * sub classes. This function is called by @c AknViewActivatedL().
+    * Views should not launch waiting or modal notes or dialogs in
+    * @c DoActivateL.
+    * @param aPrevViewId Specifies the view previously active.
+    * @param aCustomMessageId Specifies the message type.
+    * @param aCustomMessage The activation message.
+    */
+    void DoActivateL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId,
+        const TDesC8& aCustomMessage );
+
+    /** 
+    * View deactivation function intended for overriding by sub classes. 
+    * This function is called by @c AknViewDeactivated().
+    */
+    void DoDeactivate();
+    
+    /**
+    * Shows the display object
+    */
+    void ShowDisplayObject();
+    
+    /**
+    * Hides the display object
+    */
+    void HideDisplayObject();
+
+    /**
+    * Update indicator attributes and refresh display
+    */
+    void UpdateAndRefresh();
+
+private:
+    /**
+    * Returns the default type of screensaver
+    */
+    TDisplayObjectType DefaultScreensaverType();
+    
+    /**
+    * Returns the psln setting type of screensaver
+    */
+    TDisplayObjectType PslnSettingScreensaverType();
+    
+    /**
+    * Get the model of appui
+    */
+    CScreensaverEngine& Model() const;
+
+    /**
+    * Delete the display object
+    */
+    void DestroyDisplayObject();
+    
+private:
+    /**
+    * The type of current control
+    */
+    TDisplayObjectType iCurrentControlType;
+
+    /**
+    * The display object of screensaver
+    * 
+    * Owned
+    */
+    CScreensaverBase* iControl;
+
+    /**
+    * The plugin refresh rate
+    */
+    TInt iPluginRefreshRate;
+    
+    /**
+    * True if the active screensaver doesn't draw (e.g None)
+    */
+    TBool iIsContentless;
+
+    };
+
+#endif // C_SCREENSAVERVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/layers.sysdef.xml	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
+  <!ENTITY layer_real_source_path "sf/app/screensaver" >
+]>
+
+<SystemDefinition name="screensaver" schema="1.4.0">
+  <systemModel>
+    <layer name="app_layer">
+      <module name="screensaver">
+        <unit unitID="abs.screensaver" mrp="" bldFile="&layer_real_source_path;/group" name="screensaver" />
+      </module>
+    </layer>
+  </systemModel>
+</SystemDefinition>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rom/screensaver.iby	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Screen saver application IBY
+*
+*/
+
+
+
+
+
+#ifndef SCREENSAVER_IBY
+#define SCREENSAVER_IBY
+
+// Application
+S60_APP_EXE(screensaver)
+
+// Resources (not localised)
+S60_APP_RESOURCE(screensaver)
+
+// Application information files
+S60_APP_AIF_RSC(screensaver)
+
+// Backup registration
+data=ZPRIVATE\100056CF\backup_registration.xml    private\100056CF\backup_registration.xml
+
+#endif // SCREENSAVER_IBY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/group/bld.inf	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Build information file for project screensaveraiwplugin
+*
+*/
+
+
+
+
+
+
+// ============================================================================
+// Platforms
+// ============================================================================
+//
+PRJ_PLATFORMS
+
+// ============================================================================
+// Exports
+// ============================================================================
+//
+PRJ_EXPORTS
+../loc/screensaveraiwplugin.loc MW_LAYER_LOC_EXPORT_PATH(screensaveraiwplugin.loc)
+
+../rom/screensaveraiwplugin.iby          CORE_MW_LAYER_IBY_EXPORT_PATH(screensaveraiwplugin.iby)
+../rom/screensaveraiwpluginresources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(screensaveraiwpluginresources.iby)
+
+
+// ============================================================================
+// MMP Files
+// ============================================================================
+//
+PRJ_MMPFILES
+
+#if defined(TOOLS) || defined(CWTOOLS)
+#else
+screensaveraiwplugin.mmp
+#endif
+
+PRJ_TESTMMPFILES
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/group/screensaveraiwplugin.mmp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Project definition file for project aknswallpaperplugin
+*
+*/
+
+
+
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+
+TARGET          screensaveraiwplugin.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x10282921
+
+CAPABILITY      CAP_ECOM_PLUGIN
+VENDORID        VID_DEFAULT
+
+SOURCEPATH      ../src
+SOURCE          screensaveraiwplugin.cpp
+
+// Published to /resource
+START RESOURCE  screensaveraiwplugin.rss
+HEADER
+TARGET          screensaveraiwplugin.rsc
+TARGETPATH      RESOURCE_FILES_DIR
+LANGUAGE_IDS
+END // RESOURCE
+
+// Published to /resource/plugins
+START RESOURCE  10282921.rss
+TARGET          screensaveraiwplugin.rsc
+END
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../scrsaverplugins/ScreenSaverAnimPlugin/inc
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+SYSTEMINCLUDE   /epoc32/include/ecom
+
+LIBRARY         euser.lib
+LIBRARY         servicehandler.lib
+LIBRARY         CommonEngine.lib        // RConeResourceLoader
+LIBRARY         cone.lib                // CCoeEnv
+LIBRARY         efsrv.lib               // TParse
+LIBRARY         avkon.lib
+LIBRARY         aknskinsrv.lib          // RAknsSrvSession
+LIBRARY         imageconversion.lib     // CImageDecoder
+LIBRARY         centralrepository.lib   // CRepository
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/inc/screensaveraiwplugin.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,122 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Header file for class CScreenSaverAIWPlugin
+*
+*/
+
+
+
+
+#ifndef C_CSCREENSAVERAIWPLUGIN_H
+#define C_CSCREENSAVERAIWPLUGIN_H
+
+#include <AiwServiceIfMenu.h>
+#include <ConeResLoader.h>
+
+#define CSCREENSAVERAIWPLUGIN_TRACES
+
+
+class CRepository;
+
+/**
+ *  CScreenSaverAIWPlugin plugin implementation.
+ *
+ *  This plugin implements an AIW provider for setting image files as slide set
+ *  screen saver or setting a single animated image file as animated screen saver.
+ *  
+ *
+ *  @since S60 v3.2
+ */ 
+class CScreenSaverAIWPlugin : public CAiwServiceIfMenu 
+    {
+    public: 
+        static CScreenSaverAIWPlugin* NewL();
+        virtual ~CScreenSaverAIWPlugin();
+
+    private: 
+    // from base class CAiwServiceIfMenu
+    
+        void InitialiseL(
+            MAiwNotifyCallback& aFrameworkCallback,
+            const RCriteriaArray& aInterest);
+
+        void HandleServiceCmdL(
+            const TInt& aCmdId,
+            const CAiwGenericParamList& aInParamList,
+            CAiwGenericParamList& aOutParamList,
+            TUint aCmdOptions = 0,
+            const MAiwNotifyCallback* aCallback = NULL);
+            
+        void InitializeMenuPaneL(
+            CAiwMenuPane& aMenuPane,
+            TInt aIndex,
+            TInt aCascadeId,
+            const CAiwGenericParamList& aInParamList);
+
+        void HandleMenuCmdL(
+            TInt aMenuCmdId,
+            const CAiwGenericParamList& aInParamList,
+            CAiwGenericParamList& aOutParamList,
+            TUint aCmdOptions = 0,
+            const MAiwNotifyCallback* aCallback = NULL);
+
+    private:
+        CScreenSaverAIWPlugin();
+        void ConstructL();
+
+    private: // New
+    
+        struct TImageFile
+            {
+                TPtrC iFileName;
+                TPtrC iMimeType;
+            };    
+            
+        void DisplayInfoNoteL(TInt aTextResourceId);
+        void ValidateParamListL(const CAiwGenericParamList& aParamList);
+        TBool AnyMimeTypeSupportedL(const CAiwGenericParamList& aParamList);
+        TBool IsMimeTypeSupportedL(const TDesC& aMimeTypeString);
+        TBool IsAnimatedMimeTypeL( const TDesC& aMimeTypeString, TBool& aUseImageDecoder );
+        TPtrC GetAiwParamAsDescriptor(TInt& aIndex,
+                                      const CAiwGenericParamList& aParamList,
+									  TGenericParamId aParamType);
+        void StoreImageListToFileL( const RArray<TImageFile>& aSupportedImageFiles  );
+        void OpenImageFileL( RFile& aImageFile, const TInt aSlideSetType );
+        TBool IsAnimatedImageL( const TDesC& aFileName, const TDesC& aMimeTypeString );
+        TBool IsReallyAnimatedImageL( const TDesC& aFileName );
+									  
+#ifdef CSCREENSAVERAIWPLUGIN_TRACES	
+								  
+        void DumpParamList(const TDesC& aMethod, const CAiwGenericParamList& aParamList);
+        void DumpParamList(const TDesC& aMethod, 
+                           TGenericParamId aParamType,
+                           const CAiwGenericParamList& aParamList);	
+        void DumpSupportedImageFileList(const RArray<TImageFile>& aSupportedImageFiles);                       								  
+#endif    
+
+                                  
+        void GetSupportedImageFilesL(const CAiwGenericParamList& aParamList,
+                             RArray<TImageFile>& aSupportedImageFiles);
+        void SetAnimatedScreenSaverL( const RArray<TImageFile>& aSupportedImageFiles );                             
+        void SetSlideShowScreenSaverL( const RArray<TImageFile>& aSupportedImageFiles );
+        
+    private:
+        RConeResourceLoader iConeResLoader;        
+        RArray<TImageFile> iSupportedImageFiles;
+        CRepository* iScreensaverRepository;
+        CRepository* iAnimationRepository;
+        CRepository* iSlideshowRepository;         
+    };
+    
+#endif // C_CSCREENSAVERAIWPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/inc/screensaveraiwplugin.rh	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Resource header for project screensaveraiwplugin
+*
+*/
+
+
+
+
+#ifndef SCREENSAVERAIWPLUGIN_RH
+#define SCREENSAVERAIWPLUGIN_RH
+
+#define KScreenSaverAIWPluginImplementationUid 0x10282921
+
+// 
+// ---------------------------------------------------------------------------
+// Menu commands for screensaver AIW plugin
+// ---------------------------------------------------------------------------
+//
+enum TScreenSaverAIWPluginCommands
+    {
+    EScreenSaverAIWPluginCmdSetScreenSaver = 1
+    };
+    
+
+enum TScreenSaverAIWPluginNotes
+    { 
+    EScreenSaverAIWPluginGeneralWaitNote = 1
+    };    
+
+#endif // SCREENSAVERAIWPLUGIN_RH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/loc/screensaveraiwplugin.loc	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Localization strings for project screensaveraiwplugin
+*
+*/
+
+
+
+
+
+//d:Menu item text for setting the selected images as screen saver
+//l:list_single_popup_menu_pane_1
+//w:
+//r:3.2
+//
+#define qtn_sanim_set_as_screensaver "Set as screen saver"
+
+//d:Menu item text for setting the selected images as screen saver
+//l:list_single_popup_submenu_pane_t1
+//w:
+//r:3.2
+//
+#define qtn_sanim_submenu_screensaver "Screen saver"
+
+
+//d:Confirmation note text for setting and image as animated
+//d:screen saver.
+//l:popup_note_window_1
+//w:
+//r:3.2
+//
+#define qtn_sanim_image_as_animation "File set as animated screen saver"
+
+//d:Confirmation note text for adding an image to slide set screen saver
+//l:popup_note_window_1
+//w:
+//r:3.2
+//
+#define qtn_sanim_image_added "Image added to slide set screen saver"
+
+//d:Confirmation note text for adding images to slide set screen saver
+//l:popup_note_window_1
+//w:
+//r:3.2
+//
+#define qtn_sanim_images_added "Images added to slide set screen saver"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/rom/screensaveraiwplugin.iby	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   IBY file for screensaveraiwplugin
+*
+*/
+
+
+
+#ifndef __SCREENSAVERAIWPLUGIN_IBY__
+#define __SCREENSAVERAIWPLUGIN_IBY__
+
+
+#ifdef RD_SCREENSAVERAIWPLUGIN
+ECOM_PLUGIN(screensaveraiwplugin.dll,10282921.rsc)
+#endif
+
+#endif // __SCREENSAVERAIWPLUGIN_IBY__
+
+//  End of File 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/rom/screensaveraiwpluginresources.iby	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   IBY file for screensaveraiwpluginresouces
+*
+*/
+
+
+
+#ifndef __SCREENSAVERAIWPLUGINRESOURCES_IBY__
+#define __SCREENSAVERAIWPLUGINRESOURCES_IBY__
+
+#ifdef RD_SCREENSAVERAIWPLUGIN
+//localizable resources
+data=DATAZ_\RESOURCE_FILES_DIR\screensaveraiwplugin.rsc  RESOURCE_FILES_DIR\screensaveraiwplugin.rsc
+#endif
+
+#endif // __SCREENSAVERAIWPLUGINRESOURCES_IBY__
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/src/10282921.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     AIW(ECOM) registration resource file for project screensaveraiwplugin
+*
+*/
+
+
+
+
+#include <registryinfov2.rh>
+#include <AiwCommon.hrh>
+#include "screensaveraiwplugin.rh"
+
+
+// ---------------------------------------------------------------------------
+// Registration info for ECOM framework.
+// Specifies also provider interest for AIW framework.
+// ---------------------------------------------------------------------------
+//
+RESOURCE REGISTRY_INFO theInfo
+    {
+    resource_format_version = RESOURCE_FORMAT_VERSION_2; 
+    dll_uid = KScreenSaverAIWPluginImplementationUid;
+    interfaces = 
+        {
+        INTERFACE_INFO
+            {
+            // Menu service class (offers menu based services)
+            interface_uid = KAiwClassMenu;
+            implementations = 
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = KScreenSaverAIWPluginImplementationUid;
+                    version_no = 1;
+                    display_name = "";
+                    default_data = "*";
+                    opaque_data = KAiwCmdAssignScreenSaverStr;
+                    }
+                };
+            }
+        };
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/src/screensaveraiwplugin.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,657 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Implementation file for class CScreenSaverAIWPlugin
+*
+*/
+
+
+
+#include <eikmenup.h>
+#include <f32file.h>
+#include <e32property.h>
+#include <AiwMenu.h>
+#include <AiwCommon.h>
+#include <AiwCommon.hrh>
+#include <barsread.h>
+#include <eikenv.h>
+#include <implementationproxy.h>
+#include <StringLoader.h>
+#include <aknnotewrappers.h>
+#include <data_caging_path_literals.hrh>
+#include <screensaveraiwplugin.rsg>
+#include <AknsSrvClient.h>
+#include <imageconversion.h>
+#include <centralrepository.h>
+#include <ScreensaverInternalCRKeys.h>
+#include <ScreensaverInternalPSKeys.h>
+#include <pslninternalcrkeys.h> 
+#include "ScreenSaverAnimPluginInternalCRKeys.h"
+#include "screensaveraiwplugin.h"
+#include "screensaveraiwplugin.rh"
+
+_LIT(KResourceFileName, "screensaveraiwplugin.rsc");
+_LIT(KDriveZ, "z:");
+_LIT(KPluginUidAnimation, "[1020744D]25");  // '25' is the drive number (Z = ROM), not 
+_LIT(KPluginUidSlideshow, "[102823ED]25");  // mandatory
+
+
+_LIT(KScreenSaverAIWPluginMimeTypeImage, "image");
+_LIT(KScreenSaverAIWPluginMimeTypeOTABitmap, "image/x-ota-bitmap");
+_LIT(KScreenSaverAIWPluginSeparator, "/");
+
+_LIT(KScreenSaverAIWPluginMimeTypeGIF, "image/gif");
+_LIT(KScreenSaverAIWPluginMimeTypeSVG, "image/svg+xml");
+_LIT(KScreenSaverAIWPluginMimeTypeM3G, "application/m3g");
+_LIT(KScreenSaverAIWPluginMimeTypeSWF, "application/x-shockwave-flash");
+
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAIWPlugin::NewL
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAIWPlugin* CScreenSaverAIWPlugin::NewL()
+    {
+    CScreenSaverAIWPlugin* self = new( ELeave ) CScreenSaverAIWPlugin;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAIWPlugin::CScreenSaverAIWPlugin
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAIWPlugin::CScreenSaverAIWPlugin():
+    iConeResLoader(*CCoeEnv::Static())
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAIWPlugin::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::ConstructL()
+    {
+    TParse parse;
+    parse.Set(KResourceFileName, &KDC_RESOURCE_FILES_DIR, &KDriveZ);
+    TFileName resourceFileName;
+    resourceFileName.Append(parse.FullName());
+    iConeResLoader.OpenL(resourceFileName);  
+    }    
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAIWPlugin::~CScreenSaverAIWPlugin
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAIWPlugin::~CScreenSaverAIWPlugin()
+    {
+    iConeResLoader.Close();
+    iSupportedImageFiles.Close();
+    delete iScreensaverRepository;
+    delete iAnimationRepository;
+    }
+
+// ---------------------------------------------------------------------------
+// From class CAiwServiceIfMenu.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::InitialiseL(MAiwNotifyCallback& /*aFrameworkCallback*/,
+    const RCriteriaArray& /*aInterest*/)
+    {
+    // Not needed.
+    }
+
+// ---------------------------------------------------------------------------
+// From class CAiwServiceIfMenu.
+//
+// Implements setting the passed image(s) as screensaver.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::HandleServiceCmdL(const TInt& aCmdId,
+    const CAiwGenericParamList& aInParamList,
+    CAiwGenericParamList& /*aOutParamList*/,
+    TUint /*aCmdOptions*/,
+    const MAiwNotifyCallback* aCallback)
+    {
+     // Handle only KAiwCmdAssignScreenSaver command.
+    if ( aCmdId == KAiwCmdAssignScreenSaver )
+        {
+#ifdef CSCREENSAVERAIWPLUGIN_TRACES	
+        DumpParamList(_L("HandleServiceCmdL"),aInParamList);
+#endif
+
+        // Leave, if there were not given all the required parameters
+        ValidateParamListL(aInParamList);
+        
+        // Get the supported image files to iSupportedImageFiles
+        GetSupportedImageFilesL(aInParamList,iSupportedImageFiles);
+
+#ifdef CSCREENSAVERAIWPLUGIN_TRACES	
+        DumpSupportedImageFileList(iSupportedImageFiles);
+#endif
+        
+        TInt textResourceId = 0;        
+        if (iSupportedImageFiles.Count() == 1 && IsAnimatedImageL(iSupportedImageFiles[0].iFileName,
+                                                                  iSupportedImageFiles[0].iMimeType))
+            {
+            textResourceId = R_SCREEN_SAVER_AIW_PLUGIN_TEXT_IMAGE_AS_ANIMATION;
+            SetAnimatedScreenSaverL(iSupportedImageFiles);
+            }
+        else
+            {
+            textResourceId = ((iSupportedImageFiles.Count() > 1)?R_SCREEN_SAVER_AIW_PLUGIN_TEXT_IMAGES_ADDED:
+                                                               R_SCREEN_SAVER_AIW_PLUGIN_TEXT_IMAGE_ADDED);           
+            SetSlideShowScreenSaverL(iSupportedImageFiles);
+            }            
+            
+        //  display confirmation note
+        DisplayInfoNoteL(textResourceId);              
+
+        // If aCallback defined inform consumers that we have done with
+        // the operation.
+        if (aCallback)
+            {
+            // Cope with the design problems of AIW framework
+            MAiwNotifyCallback* nonConstCallback =
+            const_cast<MAiwNotifyCallback*> (aCallback);
+        
+            CAiwGenericParamList* eventParamList = CAiwGenericParamList::NewL();
+            CleanupStack::PushL(eventParamList);
+            nonConstCallback->HandleNotifyL(
+        	    KAiwCmdAssignScreenSaver,
+        	    KAiwEventCompleted,
+        	    *eventParamList,
+        	    aInParamList);
+            CleanupStack::PopAndDestroy(eventParamList);
+            }
+        }
+    }
+    
+// ---------------------------------------------------------------------------
+// From class CAiwServiceIfMenu.
+//
+// Inserts plugin's menu items to aMenuPane.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::InitializeMenuPaneL(CAiwMenuPane& aMenuPane,
+    TInt aIndex,
+    TInt /*aCascadeId*/,
+    const CAiwGenericParamList& aInParamList)
+    {        
+#ifdef CSCREENSAVERAIWPLUGIN_TRACES	
+        DumpParamList(_L("InitializeMenuPaneL"),aInParamList);        
+#endif
+    			
+	// Insert menu only if there is at least a single supported MIME type is given
+	if ( AnyMimeTypeSupportedL(aInParamList) )   
+		{
+	    TResourceReader reader;
+	    CCoeEnv::Static()->CreateResourceReaderLC(reader, R_SCREEN_SAVER_AIW_PLUGIN_MENU);
+	    aMenuPane.AddMenuItemsL(reader, KAiwCmdAssignScreenSaver, aIndex);
+	    CleanupStack::PopAndDestroy(); // reader
+		}
+    }
+    
+// ---------------------------------------------------------------------------
+// From class CAiwServiceIfMenu.
+//
+// Implements menu command handling for EScreenSaverAIWPluginCmdSetScreenSaver.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::HandleMenuCmdL(
+	TInt aMenuCmdId,
+    const CAiwGenericParamList& aInParamList,
+    CAiwGenericParamList& aOutParamList,
+    TUint aCmdOptions,
+    const MAiwNotifyCallback* aCallback)
+    {
+    if (aMenuCmdId == EScreenSaverAIWPluginCmdSetScreenSaver)
+        {
+        // Menu commands are handled as service commands.
+        HandleServiceCmdL(
+            KAiwCmdAssignScreenSaver,
+            aInParamList,
+            aOutParamList,
+            aCmdOptions,
+            aCallback );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// Implements showing information note 
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::DisplayInfoNoteL(TInt aTextResourceId)
+    {
+    HBufC* text = StringLoader::LoadLC(aTextResourceId);
+    CAknInformationNote* dlg = new (ELeave) CAknInformationNote(EFalse);
+    dlg->ExecuteLD(*text);
+    CleanupStack::PopAndDestroy(text);
+    }
+
+
+// -----------------------------------------------------------------------------
+// Validates aParamList if it is not valid
+// the method leaves with KErrArgument
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::ValidateParamListL(const CAiwGenericParamList& aParamList)
+    {
+    TBool valid = EFalse;
+    
+    // The parameter list must be dividable by 2 because the number of file name
+    // items must be equal with the number of MIME type items.
+    valid = !(aParamList.Count()%2); 
+    
+    valid = valid && AnyMimeTypeSupportedL(aParamList);
+    
+    if (valid)
+        {
+        TInt index = 0;
+        TPtrC fileName = GetAiwParamAsDescriptor(index, aParamList, EGenericParamFile);
+        
+        // At least one file name parameter should be given
+        valid = !(fileName == KNullDesC);
+        }
+    
+    if (!valid)
+        {
+		User::Leave(KErrArgument);
+        }    
+    }
+    
+// -----------------------------------------------------------------------------
+// Gets supported image file list from generic param list
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::GetSupportedImageFilesL(const CAiwGenericParamList& aParamList,
+                                                    RArray<TImageFile>& aSupportedImageFiles)
+    {    
+    aSupportedImageFiles.Reset();
+    for (TInt i = 0;; i++)
+        {        
+        TImageFile imageFile;
+        TPtrC fileName = GetAiwParamAsDescriptor(i, aParamList, EGenericParamFile);
+        
+        if (fileName == KNullDesC)
+            {
+            // last file item is reached
+            break;    
+            }
+            
+        TPtrC mimeTypeString = GetAiwParamAsDescriptor(i, aParamList, EGenericParamMIMEType);
+        if (mimeTypeString == KNullDesC)
+            {
+            // missing MIME type for file
+            User::Leave(KErrArgument);    
+            break;
+            }
+        else if (IsMimeTypeSupportedL(mimeTypeString))
+            {
+            imageFile.iFileName.Set(fileName);
+            imageFile.iMimeType.Set(mimeTypeString);
+            aSupportedImageFiles.Append(imageFile);
+            }            
+        }
+    }
+    
+
+// -----------------------------------------------------------------------------
+// Returns ETrue if any of the MIME types is supported
+// -----------------------------------------------------------------------------
+//
+TBool CScreenSaverAIWPlugin::AnyMimeTypeSupportedL(const CAiwGenericParamList& aParamList)
+    {
+    TBool ret = EFalse;
+    for (TInt i = 0;; i++)
+        {
+        TPtrC mimeTypeString = GetAiwParamAsDescriptor(i, aParamList, EGenericParamMIMEType);
+        if (mimeTypeString == KNullDesC)
+            {
+            // If no MIME type parameters are passed just leave
+            if (i <= 0)
+                {
+                User::Leave(KErrArgument);    
+                }            
+            break;
+            }
+        else if (IsMimeTypeSupportedL(mimeTypeString))
+            {
+            ret = ETrue;
+            break;
+            }            
+        }
+    return ret;
+    }
+// -----------------------------------------------------------------------------
+// Implements checking if a given MIME type is supported or not
+// -----------------------------------------------------------------------------
+//
+TBool CScreenSaverAIWPlugin::IsMimeTypeSupportedL(const TDesC& aMimeTypeString)
+    {   
+    // Check for a type separator in the string
+    TInt pos = aMimeTypeString.Find(KScreenSaverAIWPluginSeparator);
+
+    // Leave if no separator was found.. the MIME
+    // standard requires it   
+    if (pos == KErrNotFound)
+        {
+        User::Leave(KErrArgument);
+        }
+    
+	// Construct the compare string    
+    TPtrC compareString(aMimeTypeString.Left(pos));
+
+	// Perform the comparison
+    TBool ret = EFalse;
+    
+    // Mime type case:  IMAGE/* except IMAGE/X-OTA-BITMAP
+    if (!compareString.CompareF(KScreenSaverAIWPluginMimeTypeImage) &&
+         aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeOTABitmap))
+        {
+        ret = ETrue;
+        }   
+        
+    if (!ret)         	   		    	
+        {
+        TBool dummy;
+        ret = IsAnimatedMimeTypeL(aMimeTypeString,dummy);
+        }
+    
+	return ret;    
+    }    
+    
+// ---------------------------------------------------------------------------
+// Determines if the MIME type is animated or not and in addition returns
+// in aUseImageDecoder if image decoder should be used to determine if
+// the image is really animated
+// ---------------------------------------------------------------------------
+//
+TBool CScreenSaverAIWPlugin::IsAnimatedMimeTypeL( const TDesC& aMimeTypeString, TBool& aUseImageDecoder )
+    {    
+    TBool ret = EFalse;     
+    aUseImageDecoder = EFalse; 
+    
+    // check if animated an needs image decoder
+    if (!aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeGIF))
+        {
+        aUseImageDecoder = ETrue;
+        ret = ETrue; 
+        }
+    else if (!aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeSVG) ||
+             !aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeM3G) ||
+             !aMimeTypeString.CompareF(KScreenSaverAIWPluginMimeTypeSWF))
+        {
+        ret = ETrue; 
+        }
+    
+    return ret;
+    }
+    
+    
+// -----------------------------------------------------------------------------
+// Implements getting a AIW parameter as descriptor
+// -----------------------------------------------------------------------------
+//    
+TPtrC CScreenSaverAIWPlugin::GetAiwParamAsDescriptor(
+        TInt& aIndex,
+		const CAiwGenericParamList& aParamList,
+		TGenericParamId aParamType)
+	{	
+	const TAiwGenericParam* genericParam = NULL;
+    genericParam = aParamList.FindFirst( 
+        aIndex,
+        aParamType,
+        EVariantTypeDesC);
+        
+    if (aIndex != KErrNotFound && genericParam)
+        {
+        // Get the data
+        return genericParam->Value().AsDes();
+        }
+	else
+    	{
+		return KNullDesC();
+    	}
+	}
+	
+#ifdef CSCREENSAVERAIWPLUGIN_TRACES	
+
+// -----------------------------------------------------------------------------
+// Dump parameters in aParamList
+// -----------------------------------------------------------------------------
+//   
+void CScreenSaverAIWPlugin::DumpParamList(const TDesC& aMethod, const CAiwGenericParamList& aParamList)
+    {
+    DumpParamList(aMethod,EGenericParamFile,aParamList);
+    DumpParamList(aMethod,EGenericParamMIMEType,aParamList);
+    }
+    
+// -----------------------------------------------------------------------------
+// Dump parameters in aParamList for a given aParamType
+// -----------------------------------------------------------------------------
+//   
+void CScreenSaverAIWPlugin::DumpParamList(const TDesC& aMethod,
+                                          TGenericParamId aParamType,
+                                          const CAiwGenericParamList& aParamList)
+	{	
+    for (TInt i = 0 ;; i++)
+        {
+        TPtrC paramString = GetAiwParamAsDescriptor(i, aParamList, aParamType);
+        if (paramString == KNullDesC)
+            {
+            break;
+            }
+        else 
+            {
+            RDebug::Print( _L("ScreenSaverAIWPlugin: %x CScreenSaverAIWPlugin::%S: Index=%d, paramType=%d, paramString=%S"), this, &aMethod, i, aParamType, &paramString);
+            }            
+        }
+	}    
+	
+// -----------------------------------------------------------------------------
+// Dump supported image file list
+// -----------------------------------------------------------------------------
+//   
+void CScreenSaverAIWPlugin::DumpSupportedImageFileList(const RArray<TImageFile>& aSupportedImageFiles)
+	{	
+    for (TInt i = 0 ; i < aSupportedImageFiles.Count() ; i++)
+        {
+        RDebug::Print( _L("ScreenSaverAIWPlugin: %x DumpSupportedImageFileList: Index=%d, file=%S, MIME type=%S"), this, i, &aSupportedImageFiles[i].iFileName, &aSupportedImageFiles[i].iMimeType);
+        }
+	}    
+	
+#endif	    
+
+// ---------------------------------------------------------------------------
+// Determines if an image is animated or not
+// ---------------------------------------------------------------------------
+//
+TBool CScreenSaverAIWPlugin::IsAnimatedImageL( const TDesC& aFileName,
+                                               const TDesC& aMimeTypeString )
+    { 
+    TBool useImageDecoder = EFalse;
+    TBool animated = IsAnimatedMimeTypeL( aMimeTypeString, useImageDecoder );
+    
+    if (useImageDecoder)
+        {
+        animated = IsReallyAnimatedImageL(aFileName);
+        }
+        
+    return animated;
+    }
+
+// ---------------------------------------------------------------------------
+// Determines if an image file is really animated or not
+// ---------------------------------------------------------------------------
+//
+TBool CScreenSaverAIWPlugin::IsReallyAnimatedImageL( const TDesC& aFileName )
+    {    
+    CImageDecoder* decoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(),aFileName);
+    CleanupStack::PushL( decoder );
+    TBool animated = (decoder->FrameCount() > 1);
+    CleanupStack::PopAndDestroy(); // decoder
+    return animated;
+    }
+    
+// ---------------------------------------------------------------------------
+// Set and activate slide-show screen saver.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::SetSlideShowScreenSaverL( const RArray<TImageFile>& aSupportedImageFiles  )
+    {
+    StoreImageListToFileL(aSupportedImageFiles);
+    
+    if (iScreensaverRepository == NULL)
+        {
+        // Setting the screensaver type & plugin name 
+        iScreensaverRepository = CRepository::NewL(KCRUidScreenSaver);
+        }
+    if (iSlideshowRepository == NULL)
+        {
+        iSlideshowRepository = CRepository::NewL(KCRUidThemes);        
+        }
+        
+    // set psln to "not random"
+    iSlideshowRepository->Set(KThemesScreenSaverSlideSetType, 0);        
+        
+    // Slideshow plugin used
+    iScreensaverRepository->Set(KScreenSaverPluginName, KPluginUidSlideshow);
+    
+    // Type 3 = plugin
+    iScreensaverRepository->Set(KScreenSaverObject, EScreensaverTypePlugin);
+    
+    // Inform screensaver that slide set has changed
+    User::LeaveIfError(
+            RProperty::Set(
+                KPSUidScreenSaver,
+                KScreenSaverPluginSettingsChanged,
+                EScreenSaverPluginSettingsChanged ) );
+    }
+    
+// ---------------------------------------------------------------------------
+// Set and activate animated screen saver.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::SetAnimatedScreenSaverL( const RArray<TImageFile>& aSupportedImageFiles  )
+    {
+    if (iScreensaverRepository == NULL)
+        {
+        // Setting the screensaver type & plugin name 
+        iScreensaverRepository = CRepository::NewL(KCRUidScreenSaver);
+        }    
+        
+    if (iAnimationRepository == NULL)
+        {
+        // Setting the screensaver type & plugin name 
+        iAnimationRepository = CRepository::NewL(KCRUidScreenSaverAnimPlugin);
+        }
+        
+    iAnimationRepository->Set(KScreenSaverAnimatedFileName, aSupportedImageFiles[0].iFileName);
+    
+    // Animation plugin used
+    iScreensaverRepository->Set(KScreenSaverPluginName, KPluginUidAnimation);
+    
+    // Type 3 = plugin
+    iScreensaverRepository->Set(KScreenSaverObject, EScreensaverTypePlugin);
+    }
+    
+// ---------------------------------------------------------------------------
+// Stores slide set image file names to file.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::StoreImageListToFileL( const RArray<TImageFile>& aSupportedImageFiles  )
+    {
+    // Get file from server.
+    RFile imgFile;
+    OpenImageFileL( imgFile, EAknsSrvInifileSSSS );
+    CleanupClosePushL( imgFile );    
+
+    // Finally, write image filenames to the file.
+    TFileText textFile;
+    textFile.Set( imgFile );
+    textFile.Seek( ESeekEnd );
+
+    for (TInt i = 0 ; i < aSupportedImageFiles.Count(); i++)
+        {
+        User::LeaveIfError( textFile.Write( aSupportedImageFiles[i].iFileName ) );
+        }
+                
+    imgFile.Flush();
+
+    CleanupStack::PopAndDestroy(); // imgFile
+    }
+
+// ---------------------------------------------------------------------------
+// Open image list file for operations.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAIWPlugin::OpenImageFileL( RFile& aImageFile, const TInt aSlideSetType )
+    {
+    // First, connect to skin server.
+    RAknsSrvSession skinsrv;
+    User::LeaveIfError( skinsrv.Connect() );
+    CleanupClosePushL( skinsrv );
+
+    // Then get file handle.
+    TInt fileserverhandle = 0;
+    TInt filehandle = 0;
+    // Validate type and open image file.
+    if ( aSlideSetType == EAknsSrvInifileSSWP )
+        {
+        fileserverhandle = 
+            skinsrv.OpenImageInifile( EAknsSrvInifileSSWP, filehandle );
+        }
+    else
+        {
+        fileserverhandle = 
+            skinsrv.OpenImageInifile( EAknsSrvInifileSSSS, filehandle );
+
+        }
+    if ( fileserverhandle <= 0 || filehandle == 0 )
+        {
+        User::Leave( fileserverhandle );
+        }
+
+    // Finally adopt file from server.
+    User::LeaveIfError( aImageFile.AdoptFromServer( fileserverhandle, filehandle ) );
+    CleanupStack::PopAndDestroy(); // skinsrv
+    }
+
+
+    
+// ======== ECOM INITIALIZATION ========
+
+// Map the interface UIDs to implementation factory functions
+const TImplementationProxy ImplementationTable[] =
+    {
+    IMPLEMENTATION_PROXY_ENTRY(KScreenSaverAIWPluginImplementationUid, CScreenSaverAIWPlugin::NewL)
+    };
+
+// ---------------------------------------------------------
+// Exported proxy for instantiation method resolution
+// ---------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    return ImplementationTable;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/screensaveraiwplugin/src/screensaveraiwplugin.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Resource file for project aknswallpaperplugin
+*
+*/
+
+
+
+
+
+NAME    SSAP  // screensaveraiwplugin AIW Provider
+
+// Resource types
+#include <eikon.rh>
+
+// Commands etc.
+#include "screensaveraiwplugin.rh"
+
+
+// Localized texts.
+#include <screensaveraiwplugin.loc>
+
+
+RESOURCE RSS_SIGNATURE { }
+
+// ---------------------------------------------------------------------------
+// r_screen_saver_aiw_plugin_menu
+//
+// Menu for setting image(s) as screen saver.
+// ---------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_screen_saver_aiw_plugin_menu
+    {
+    items =
+        {
+        MENU_ITEM { 
+        		   command = EScreenSaverAIWPluginCmdSetScreenSaver;        		   
+        		   txt = qtn_sanim_set_as_screensaver;        		   
+        		   extratxt = qtn_sanim_submenu_screensaver;        		           		   
+        		  }
+        };
+    }    
+    
+RESOURCE TBUF r_screen_saver_aiw_plugin_text_image_added { buf = qtn_sanim_image_added; }
+RESOURCE TBUF r_screen_saver_aiw_plugin_text_images_added { buf = qtn_sanim_images_added; }
+RESOURCE TBUF r_screen_saver_aiw_plugin_text_image_as_animation { buf = qtn_sanim_image_as_animation; }
+
+    
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/EABI/bmpanimscrplugin_ecomU.def	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,13 @@
+EXPORTS
+	_Z24ImplementationGroupProxyRi @ 1 NONAME
+	_ZTI12CBmpAnimItem @ 2 NONAME ; #<TI>#
+	_ZTI13CBmpAnimModel @ 3 NONAME ; #<TI>#
+	_ZTI15CBmpAnimIniData @ 4 NONAME ; #<TI>#
+	_ZTI16CBmpAnimSettings @ 5 NONAME ; #<TI>#
+	_ZTI17CBmpAnimScrPlugin @ 6 NONAME ; #<TI>#
+	_ZTV12CBmpAnimItem @ 7 NONAME ; #<VT>#
+	_ZTV13CBmpAnimModel @ 8 NONAME ; #<VT>#
+	_ZTV15CBmpAnimIniData @ 9 NONAME ; #<VT>#
+	_ZTV16CBmpAnimSettings @ 10 NONAME ; #<VT>#
+	_ZTV17CBmpAnimScrPlugin @ 11 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/bmarm/BMPANIMSCRPLUGINU.DEF	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	CreatePluginModule__Fv @ 1 NONAME R3UNUSED ; CreatePluginModule(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/bmarm/BMPANIMSCRPLUGIN_ECOMU.DEF	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	ImplementationGroupProxy__FRi @ 1 NONAME R3UNUSED ; ImplementationGroupProxy(int &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/bwins/BMPANIMSCRPLUGIN_ECOMU.DEF	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * __cdecl ImplementationGroupProxy(int &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/bwins/bmpanimscrpluginu.def	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	?CreatePluginModule@@YAPAVMScreensaverPlugin@@XZ @ 1 NONAME ; class MScreensaverPlugin * __cdecl CreatePluginModule(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/ABLD.BAT	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\S60\BmpAnimScrPlugin\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimConfig.hrh	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Project definition file
+*
+*/
+
+
+
+#ifndef BMPANIMCONFIG_HRH
+#define BMPANIMCONFIG_HRH
+
+// Compiled at all?
+// #define RD_SCREENSAVER_BMPANIM
+
+// use logging?
+// #define LOGGING_ENABLED
+
+#endif // BMPANIMCONFIG_HRH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimScrPlugin.ini	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,27 @@
+[info]
+; Plugin name
+name=Operator zaver 4.0
+
+; Bitmap file name (on ROM full path is needed)
+mbmfile=\resource\plugins\BmpAnimScrPlugin.mbm
+
+; Landscape bitmap file name (on ROM full path is needed)
+;mbmfilelandscape=\resource\plugins\BmpAnimScrPluginL.mbm
+
+; Should separate landscape graphics be used (file must be defined) (1 = use landscape) 
+uselandscape=0
+
+; Scale bitmaps to screen size (SVG is always scaled) (1 = scale)
+scalebmps=0
+
+; Running time in millis
+runningtime=30000000
+
+; Suspend time in millis (max 2147483647, -1 indefinitely)
+suspendtime=-1
+
+; Time between images in millis
+timing=100000
+
+; Time to keep lights on in seconds
+lights=15
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimScrPlugin.mmp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2003, 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Project definition file
+*
+*/
+
+
+
+
+// Animator configuration (logging flags)
+#include "BmpAnimConfig.hrh"
+
+#include <platform_paths.hrh>
+
+TARGET      BmpAnimScrPlugin.dll
+TARGETTYPE 	PLUGIN
+
+CAPABILITY	CAP_ECOM_PLUGIN
+VENDORID	VID_DEFAULT
+//2nd UID is the ECOM plugin UID, 3rd is screensaver plugin dll's uid
+UID        	0x10009D8D 0x101F86FF
+
+#ifdef LOGGING_ENABLED
+MACRO USE_LOGGER
+MACRO USE_RDEBUG
+#endif
+
+SOURCEPATH ../src
+
+SOURCE BmpAnimScrPluginDll.cpp
+SOURCE CBmpAnimScrPlugin.cpp
+SOURCE CBmpAnimModel.cpp
+SOURCE CBmpAnimItem.cpp
+SOURCE CBmpAnimSettings.cpp
+SOURCE CBmpAnimIniData.cpp
+
+LANG SC
+
+USERINCLUDE ../inc
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+SYSTEMINCLUDE   ../../../../inc
+SYSTEMINCLUDE   /epoc32/include/ecom
+
+LIBRARY ecom.lib
+LIBRARY euser.lib      
+LIBRARY fbscli.lib
+LIBRARY eikcore.lib
+LIBRARY cone.lib
+LIBRARY egul.lib
+LIBRARY efsrv.lib
+LIBRARY avkon.lib
+LIBRARY aknicon.lib
+// LIBRARY bitgdi.lib
+
+#ifdef LOGGING_ENABLED
+LIBRARY flogger.lib
+#endif
+
+// The deffile name has to be changed to be able to build 
+// ecom and non-ecom plugin versions
+DEFFILE bmpanimscrplugin_ecom.def
+
+START RESOURCE 101F86FF.rss
+TARGET BmpAnimScrPlugin.rsc
+END
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/BmpAnimScrPlugin.pkg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,52 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:   The Package file for BmpAnimScrPlugin
+;
+
+;Languages
+&EN
+
+;Header
+ ; {Names},(UID),major,minor,variant
+#{"zippo Zaver"},(0x101F86FF),3,1,0
+
+;Supports Series 60 v3
+;This line indicates that this installation is for the Series 60 platform v3
+;This line must appear _exactly_ as shown below in the sis file
+;If this line is missing or incorrect, the sis file will not be able
+;to be installed on Series 60 v3 platforms
+;(0x10201A7A), 0, 0, 0, {"Series60v3.0"}
+(0x101F7961), 0, 0, 0, {"Series60ProductID"}
+
+;Localised Vendor name
+%{"zippo Zoftware"}
+
+;Unique Vendor name
+:"zippo Zoftware"
+
+;Key and certificate
+;*"rd-key.pem","rd.cer"
+
+; Bitmap Animator
+"\epoc32\release\armv5\urel\BmpAnimScrPlugin.dll"-"!:\sys\bin\BmpAnimScrPlugin.dll"
+"\epoc32\data\z\resource\plugins\BmpAnimScrPlugin.RSC"-"!:\resource\plugins\BmpAnimScrPlugin.RSC"
+
+; Animation images
+; NOTE Switch between MIF or both, depending on which 
+; kind of bitmaps the animation has (bmp - both)
+"\epoc32\data\z\resource\plugins\BmpAnimScrPlugin.mif"-"!:\resource\plugins\BmpAnimScrPlugin.mif"
+"\epoc32\data\z\resource\plugins\BmpAnimScrPlugin.mbm"-"!:\resource\plugins\BmpAnimScrPlugin.mbm"
+
+; Settings file with MBM
+"\epoc32\data\z\resource\plugins\BmpAnimScrPlugin.ini"-"!:\resource\plugins\BmpAnimScrPlugin.ini"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/bld.inf	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    
+*     build information file for BmpAnimScrPlugin
+*
+*/
+
+
+
+
+#include "BmpAnimConfig.hrh"
+
+#ifdef RD_SCREENSAVER_BMPANIM
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+BmpAnimScrPlugin.ini    /epoc32/wins/c/resource/plugins/BmpAnimScrPlugin.ini
+BmpAnimScrPlugin.ini    /epoc32/winscw/c/resource/plugins/BmpAnimScrPlugin.ini
+BmpAnimScrPlugin.ini    /epoc32/data/z/resource/plugins/BmpAnimScrPlugin.ini
+
+PRJ_MMPFILES
+// Plugin
+BmpAnimScrPlugin.mmp
+
+// Animation bitmaps, can be after actual mmp, bitmap header is not used
+gnumakefile ../srcdata/animation.mk
+
+#endif
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/group/makesis_3x.bat	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,23 @@
+@echo off
+rem
+rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:   Makesis command for BmpAnimScrPlugin
+rem
+@echo on
+
+
+
+
+makesis BmpAnimScrPlugin.pkg
+signsis BmpAnimScrPlugin.sis BmpAnimScrPlugin_3x.sisx \S60\AppinstUi\internal\RD_RootCA\rd.cer \S60\AppinstUi\internal\RD_RootCA\rd-key.pem
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/BmpAnimUtils.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   BmpAnimScrPlugin utilities collection
+*
+*/
+
+
+
+#ifndef BMPANIMUTILS_H
+#define BMPANIMUTILS_H
+
+// ========== LOGGING MACROS ===============================
+
+#ifdef USE_LOGGER
+
+#include <e32std.h>
+#include <e32def.h>
+#include <eikenv.h>
+#include <flogger.h>
+
+
+/* logging macros usage:
+
+// set logging on in mmp file...
+MACRO USE_LOGGER
+#ifdef WINS
+MACRO USE_RDEBUG
+#endif
+
+
+void CTestAppUi::ConstructL()
+{
+// creates log directory and log file on app startup.
+// prints starting banner...
+BMALOGGER_CREATE;
+
+// entering to function...
+BMALOGGER_ENTERFN("ConstructL()");
+
+TInt number = 42;
+TFileName file;
+file = "something" ....
+
+// print variable number of parameters...
+// Note: use _L macro for format string!
+BMALOGGER_WRITEF(_L("BMA: number = %d, file = %S"), number, &file);
+
+// print just a string (no _L macro here!)
+BMALOGGER_WRITE("Hello world!");
+
+// leave from function...
+BMALOGGER_LEAVEFN("ConstructL()");
+}
+
+CTestAppUi::~CTestAppUi()
+{
+// print app exit banner when application exits.
+BMALOGGER_DELETE;
+}
+
+*/
+
+#ifdef USE_RDEBUG
+
+_LIT(KBMALogBanner, "BmpAnim log start");
+_LIT(KBMALogEnterFn, "BMA: enter --> %S");
+_LIT(KBMALogLeaveFn, "BMA: leave <-- %S");
+_LIT(KBMALogWrite, "BMA: %S");
+_LIT(KBMALogTag, "BMA: ");
+_LIT(KBMALogExit, "BmpAnim log end");
+_LIT(KBMALogTimeFormatString, "%H:%T:%S:%*C2");
+
+#define BMALOGGER_CREATE             {RDebug::Print(KBMALogBanner);}
+#define BMALOGGER_DELETE             {RDebug::Print(KBMALogExit);}
+#define BMALOGGER_ENTERFN(a)         {_LIT(temp, a); RDebug::Print(KBMALogEnterFn, &temp);}
+#define BMALOGGER_LEAVEFN(a)         {_LIT(temp, a); RDebug::Print(KBMALogLeaveFn, &temp);}
+#define BMALOGGER_WRITE(a)           {_LIT(temp, a); RDebug::Print(KBMALogWrite, &temp);}
+#define BMALOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KBMALogTimeFormatString); buffer.Insert(0, temp); buffer.Insert(0, KBMALogTag); RDebug::Print(buffer); }
+#define BMALOGGER_WRITEF             RDebug::Print
+
+#else // !USE_RDEBUG
+
+_LIT(KBMALogDir, "BMA");
+_LIT(KBMALogFile, "BMA.txt");
+_LIT8(KBMALogBanner, "BmpAnim log start");
+_LIT8(KBMALogEnterFn, "BMA: -> %S");
+_LIT8(KBMALogLeaveFn, "BMA: <- %S");
+_LIT8(KBMALogExit, "BmpAnim log end");
+_LIT(KBMALogTimeFormatString, "%H:%T:%S:%*C2");
+
+#define BMALOGGER_CREATE             {FCreate();}
+#define BMALOGGER_DELETE             {RFileLogger::Write(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, KBMALogExit);}
+#define BMALOGGER_ENTERFN(a)         {_LIT8(temp, a); RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, KBMALogEnterFn, &temp);}
+#define BMALOGGER_LEAVEFN(a)         {_LIT8(temp, a); RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, KBMALogLeaveFn, &temp);}
+#define BMALOGGER_WRITE(a)           {_LIT(temp, a); RFileLogger::Write(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, temp);}
+#define BMALOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KBMALogTimeFormatString); buffer.Insert(0, temp); RFileLogger::Write(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, buffer); }
+#define BMALOGGER_WRITEF             FPrint
+
+inline void FPrint(const TRefByValue<const TDesC> aFmt, ...)
+    {
+    VA_LIST list;
+    VA_START(list, aFmt);
+    RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, aFmt, list);
+    }
+
+inline void FPrint(const TDesC& aDes)
+    {
+    RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, aDes);
+    }
+
+inline void FHex(const TUint8* aPtr, TInt aLen)
+    {
+    RFileLogger::HexDump(KBMALogDir, KBMALogFile, EFileLoggingModeAppend, 0, 0, aPtr, aLen);
+    }
+
+inline void FHex(const TDesC8& aDes)
+    {
+    FHex(aDes.Ptr(), aDes.Length());
+    }
+
+inline void FCreate()
+    {
+#ifdef RD_PF_SEC_APPARC
+    // Use screensaver private dir
+    TFileName path(_L("c:\\private\\100056cf\\"));
+#else
+    TFileName path(_L("c:\\logs\\"));
+#endif
+    path.Append(KBMALogDir);
+    path.Append(_L("\\"));
+    RFs& fs = CEikonEnv::Static()->FsSession();
+    fs.MkDirAll(path);
+    RFileLogger::WriteFormat(KBMALogDir, KBMALogFile, EFileLoggingModeOverwrite, KBMALogBanner);
+    }
+
+#endif // !USE_RDEBUG
+
+#else // !USE_LOGGER
+
+inline void FPrint(const TRefByValue<const TDesC> /*aFmt*/, ...) { };
+
+#define BMALOGGER_CREATE
+#define BMALOGGER_DELETE
+#define BMALOGGER_ENTERFN(a)
+#define BMALOGGER_LEAVEFN(a)
+#define BMALOGGER_WRITE(a)
+#define BMALOGGER_WRITEF 1 ? ((void)0) : FPrint
+#define BMALOGGER_WRITE_TIMESTAMP(a)
+
+#endif // USE_LOGGER
+
+#endif // BMPANIMUTILS_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimIniData.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Bitmap animator INI file handler
+*
+*/
+
+
+
+#ifndef C_CBMPANIMINIDATA_H
+#define C_CBMPANIMINIDATA_H
+
+#include <e32base.h>
+
+class CBmpAnimIniData : public CBase 
+	{
+public:
+	// Constructor, pass in name of ini file to open
+	// Default search path is 'c:\system\data' on target filesystem
+	// ie. 'NewL(_L("c:\\system\\data\\ttools.ini"))' is equivalent 
+	// to 'NewL(_L("ttools.ini"))' 
+	static CBmpAnimIniData* NewL(const TDesC& aName);
+	virtual ~CBmpAnimIniData();
+
+    // Read text value regardless of section
+    // Returns: True(Success) or false(Failure)
+    TBool FindVar(const TDesC8& aKeyName, TDes16& aResult);
+    TBool FindVar(const TDesC8& aKeyName, TPtrC8& aResult);
+
+    // Read integer value regardless of section
+    // Returns: True(Success) or false(Failure)
+    TBool FindVar(const TDesC8& aKeyName, TInt& aResult);
+
+    // Read text value under section
+    // Returns: True(Success) or false(Failure)
+    TBool FindVar(
+        const TDesC8& aSection, const TDesC8& aKeyName, TDes16& aResult);
+    TBool FindVar(
+        const TDesC8& aSection, const TDesC8& aKeyName, TPtrC8& aResult);
+
+    // Read integer value under section
+    // Returns: True(Success) or false(Failure)
+    TBool FindVar(
+        const TDesC8& aSection, const TDesC8& aKeyName, TInt& aResult);
+
+    // Write integer value associated with a token
+    TInt WriteVarL(
+        const TDesC8& aSection, const TDesC8& aKeyName, TInt aValue);
+
+    // Write string associated with a token
+    TInt WriteVarL(
+        const TDesC8& aSection, const TDesC8& aKeyName, const TDesC8& aValue);
+
+    // Commits the changes done. NOTE if not called, the changes will NOT
+    // be saved into file
+    void CommitL();
+
+
+protected:
+    CBmpAnimIniData();
+    void ConstructL(const TDesC& aName);
+
+private:
+    // Tries to locate the given section. EFalse if not found
+    TBool FindSection(const TDesC8& aSection, TInt& aStart, TInt& aEnd);
+    
+private:
+    HBufC* iName;
+    HBufC8* iToken;
+    TPtr8 iPtr;         // Holds the file in memory, written back in CommitL()
+    };
+
+#endif // C_CBMPANIMINIDATA_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimItem.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Stores a single bitmap animation item: image with its
+*               properties (position, timing et al)
+*
+*/
+
+
+
+#ifndef C_CBMPANIMITEM_H
+#define C_CBMPANIMITEM_H
+
+//  INCLUDES
+#include <e32base.h>  // e32def, e32std
+#include <gulicon.h>
+
+//  CONSTANTS  
+
+//  MACROS
+
+// Item flags
+#define BAIF_OWNSICON 0x01
+
+
+//  DATA TYPES  
+
+//  EXTERNAL DATA STRUCTURES  
+
+//  FUNCTION PROTOTYPES
+
+//  FORWARD DECLARATIONS
+
+//  CLASS DEFINITIONS 
+class CBmpAnimItem : public CBase
+    {
+public:
+    // Public constructor, doesn't need a two-phase construction
+    CBmpAnimItem();
+    
+    // Destructor
+    virtual ~CBmpAnimItem();
+    
+    // Set icon. If owned, an icon is deleted by the item
+    void SetIcon(CGulIcon* aIcon, TBool aItemOwnsIcon = ETrue);
+    
+    // Set icon from bitmaps. If owned, an icon is deleted by the item
+    void SetIconL(
+        CFbsBitmap* aBitmap,
+        CFbsBitmap* aMask = NULL,
+        TBool aItemOwnsIcon = ETrue);
+    
+    // Get icon
+    CGulIcon* Icon() const { return iIcon; }
+
+    // Set timing (microsecs to display the image)
+    void SetTiming(TInt aMicros) { iTiming = aMicros; }
+
+    // Get timing
+    TInt Timing() { return iTiming; }
+
+    // Set position
+    void SetPosition(TPoint aPos) { iPosition = aPos; }
+
+    // Get position
+    TPoint Position() { return iPosition; }
+
+    // Get flags
+    TInt Flags() const { return iFlags; }    
+protected:
+private:
+    // Type flags
+    TInt iFlags;
+
+    // Icon
+    CGulIcon* iIcon;
+
+    // Timing
+    TInt iTiming;
+    
+    // Position
+    TPoint iPosition;
+    };
+
+#endif  // C_CBMPANIMITEM_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimModel.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Takes care of storing and serving the bitmaps
+*               to be animated along with their properties
+*
+*/
+
+
+
+#ifndef C_CBMPANIMMODEL_H
+#define C_CBMPANIMMODEL_H
+
+#include "CBmpAnimItem.h"
+#include "CBmpAnimSettings.h"
+
+// 5 seems like a reasonable granularity
+const TInt KBmpAnimItemArrayGranularity = 5;
+
+// BmpAnim model. Contains BmpAnim items, serves the items to BmpAnim plugin
+class CBmpAnimModel : public CBase
+    {
+public:
+    // Default constructor & destructor
+    CBmpAnimModel();
+    virtual ~CBmpAnimModel();
+
+public:
+    // Two-phase constructor, initialises member arrays and stuff
+    virtual void ConstructL(CBmpAnimSettings* aSettings);
+
+public: // Access functions
+    // Number of items query
+    TInt NumberOfItems() const;
+
+    // Add an item to the end of the array
+    void AppendItemL(CBmpAnimItem* aItem);
+
+    // Insert an item at <aIndex>. Space must be reserved.
+    void InsertItemL(TInt aIndex, CBmpAnimItem* aItem);
+
+    // Delete item at <anIndex>.
+    void DeleteItemL(TInt aIndex);
+
+    // Delete all items
+    void DeleteAll();
+
+    // Get item at position <aIndex>
+    CBmpAnimItem* ItemAt(TInt aIndex) const;
+
+    // Get current item index
+    inline TInt CurrentItemIndex() const;
+
+    // Set current item index
+    inline void SetCurrentItemIndex(TInt aIndex);
+
+    // Get next item in animation sequence. aWrapped is ETrue, if the
+    // next item caused a wrap to the beginning of sequence
+    CBmpAnimItem* NextItem(TBool& aWrapped);
+    
+    // Reserve space for <aCount> items
+    void SetReserveL(TInt aCount);
+
+    // Get settings
+    inline CBmpAnimSettings* Settings() const;
+    
+private:  // Utility functions
+
+private:
+    // Item array
+    CArrayPtrFlat<CBmpAnimItem>* iItems;
+
+    // Current item index
+    TInt iCurrentItem;
+
+    CBmpAnimSettings* iSettings;
+    };
+
+
+// --- inlines ---
+
+// Get current item index
+inline TInt CBmpAnimModel::CurrentItemIndex() const
+    { return iCurrentItem; }
+
+
+// Set current item index
+inline void CBmpAnimModel::SetCurrentItemIndex(TInt aIndex)
+    {
+    iCurrentItem = aIndex;
+    }
+
+// Get settings
+inline CBmpAnimSettings* CBmpAnimModel::Settings() const
+   { return iSettings; }
+
+#endif   // C_CBMPANIMMODEL_H
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimScrPlugin.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,178 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Main include file for plugin
+*
+*/
+
+
+
+#ifndef C_CBMPANIMSCRPLUGIN_H
+#define C_CBMPANIMSCRPLUGIN_H
+
+#include <e32base.h>
+#include <fbs.h>
+#include <eikenv.h>
+#include <coecntrl.h>
+#include <coeccntx.h>
+
+#include <ScreensaverpluginIntDef.h>
+
+#include "CBmpAnimModel.h"
+#include "CBmpAnimItem.h"
+#include "CBmpAnimSettings.h"
+
+// The screensaver plugin implementation must inherit from 
+// CScreensaverPluginInterfaceDefinition
+class CBmpAnimScrPlugin : public CScreensaverPluginInterfaceDefinition
+    {
+    enum TPluginState   
+        {
+        EPluginStateLoading = 0,
+        EPluginStateInitializing,
+        EPluginStateAnimation,
+        EPluginStateStoppingAnimation,
+        };
+
+    enum TLoadedAnimation
+        {
+        ENone,
+        EPortrait,
+        ELandscape,
+        EPortraitRotated
+        };
+    
+public:
+    // Class instance creation
+    static CBmpAnimScrPlugin* NewL();
+
+private:
+    // Construction
+    CBmpAnimScrPlugin();
+    
+public:
+    // Destruction
+    ~CBmpAnimScrPlugin();
+
+public: // from MScreensaverPlugin
+    TInt InitializeL(MScreensaverPluginHost *aHost);
+    TInt Draw(CWindowGc& aGc);
+    const TDesC16& Name() const;
+    TInt HandleScreensaverEventL(TScreensaverEvent aEvent, TAny* aData);
+    TInt Capabilities();
+    TInt PluginFunction(TScPluginCaps aFunction, TAny* aParam);
+
+private:
+    // Draws centered items
+    void DrawCentered(CWindowGc& aGc, CBmpAnimItem* aItem);
+
+    // Loads the animation into the model
+    void LoadAnimationL(TBool aLandscape = EFalse, TBool aRotate = EFalse);
+
+    // Re-loads the animation when display changes, if needed
+    void ReloadAnimationL();
+
+    // Starts the display timer
+    void StartDisplayTimer();
+
+    // Stops the display timer
+    void StopDisplayTimer();
+
+    // Display timer callback
+    static TInt DisplayTimerCallback(TAny* aPtr);
+
+    // Starts the lights timer
+    void StartLightsTimer();
+
+    // Stops the lights
+    void StopLightsTimer();
+
+    // Lights timer callback
+    static TInt LightsTimerCallback(TAny* aPtr);
+    
+    // Advances the plugin state
+    void HandlePluginState();
+
+    // Requests a suitable display mode from host
+    void SetDisplayMode();
+
+    void Lights(TInt aSecs);
+
+    // Configures the plugin
+    TInt ConfigureL(TAny* aParam);
+
+    // Sets sizes of bitmaps
+    TInt ScaleBitmap(CFbsBitmap* aBmp, TBool aRotate = EFalse);
+
+    // Returns ETrue if reload of the animation is needed
+    TBool ReloadNeeded();
+
+    // Returns ETrue if display is landscape
+    TBool DisplayIsLandscape();
+    
+    // Returns ETrue if graphics should be rotated
+    TBool RotateNeeded();
+    
+    // Returns ETrue if landscape graphics should be loaded
+    TBool LoadLandscape();
+    
+    // Updates the saved display information
+    void UpdateDisplayInfo();
+
+    // Sets bitmap size and rotation (used instead of AknIconUtils function)
+    // Actually an "Easy Leaving :)" wrapper around the L-version
+    TInt SetSizeAndRotation(CFbsBitmap* aBmp, TSize aSize, TInt aAngle);
+    
+    // Sets bitmap size and rotation (used instead of AknIconUtils function)
+    void SetSizeAndRotationL(CFbsBitmap* aBmp, TSize aSize, TInt aAngle);
+
+    // Rotates and scales a source bitmap into target bitmap
+    void RotateAndScaleBitmapL(
+        const TRect& aTrgRect,
+        CFbsBitmap* aTrgBitmap, 
+        CFbsBitmap* aSrcBitmap,
+        TInt aAngle);
+    
+private:
+    // Plugin host interface
+    MScreensaverPluginHost* iHost;
+    
+    // Plugin state
+    TInt iState;
+
+    // Needed to retrieve bitmaps from files
+    CEikonEnv* iEikEnv;
+
+    // Animator model, stores and serves animation items
+    CBmpAnimModel* iModel;
+
+    // Animator settings. Created and deleted here, but used and managed by
+    // the model. Creating here enables retrieving the plugin name
+    // in non-plugin-host applications (such as Themes)
+    CBmpAnimSettings* iSettings;
+    
+    // Timer to control how long the animation is displayed
+    CPeriodic* iDisplayTimer;
+    
+    // Flag to control animation stop. Changed from display timer callback
+    TInt iStopDisplaying;
+
+    TScreensaverDisplayInfo iDi;
+
+    TLoadedAnimation iLoadedAnimation;
+    };
+
+
+#endif   // C_CBMPANIMSCRPLUGIN_H
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/inc/CBmpAnimSettings.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,183 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Loads and stores the bitmap animator settings
+*
+*/
+
+
+
+#ifndef C_CBMPANIMSETTINGS_H
+#define C_CBMPANIMSETTINGS_H
+
+#include <e32std.h>
+#include "CBmpAnimIniData.h"
+
+// Default plugin name
+_LIT(KPluginName, "BitmapAnimator");
+const TInt KMaxPluginNameLength = 30;
+
+// BmpAnim settings
+class CBmpAnimSettings : public CBase
+    {
+public:
+    // User constructor
+    static CBmpAnimSettings* NewL();
+
+    // Construction & destruction    
+private:
+    CBmpAnimSettings();
+    void ConstructL();
+public:
+    virtual ~CBmpAnimSettings();
+
+public:  // Access functions
+    // Load the current settings from file (may be used from outside,
+    // hence public). Usually just called from ConstructL(), tho
+    TBool LoadSettingsL();
+
+    // Save settings
+    TBool SaveSettingsL();
+    
+    // Get running time (-1 = not defined)
+    inline TInt RunningTime();
+    
+    // Get loop count (-1 = not defined)
+    inline TInt LoopCount();
+    
+    // Get suspend time (-1 = indefinitely)
+    inline TInt SuspendTime();
+    
+    // Get / set default timing
+    inline TInt Timing();
+    inline void SetTiming(TInt aTiming);
+
+    // Get plugin name
+    inline TDesC& PluginName();
+    
+    // Get bitmap file name
+    inline TDesC& BitmapFilename();
+
+    // Get landscape bitmap file name
+    inline TDesC& BitmapFilenameLandscape();
+
+    // Get/set lights on time (secs)
+    inline TInt Lights();
+    inline void SetLights(TInt aSecs);
+
+    // Landscape used?
+    inline TInt UseLandscape();
+
+    // Should bitmaps be scaled to screen
+    inline TInt ScaleBmps();
+    
+private:  // Utility functions
+    // Opens the settings file (initialises the settings reader)
+    TInt OpenSettings();
+    
+    // Figures out the bitmap file name
+    void LoadBitmapFileName(TBool aLandscape = EFalse);
+    
+private:
+    // Settings file handler
+    CBmpAnimIniData* iIniData;
+    
+    // Time to run the animation. Overrides loop count
+    TInt iRunningTime;
+
+    // Number of loops to be run. Used if run time is undefined
+    TInt iLoopCount;
+        
+    // Time to suspend the animation. -1 = indefinitely
+    TInt iSuspendTime;
+    
+    // Time to display each image. Individual image timing overrides this.
+    TInt iTiming;
+
+    // Plugin name
+    TBuf<KMaxPluginNameLength> iPluginName;
+            
+    // Bitmap file name
+    TFileName iMbmFileName;
+
+    // Landscale bitmap file name
+    TFileName iMbmFileNameL;
+
+    // Lights on time (secs)
+    TInt iLights;
+
+    // Landscape images used (0 = no)
+    TInt iUseLandscape;
+    
+    // Bitmaps scaled to screen size (0 = no)
+    TInt iScaleBmps;
+    };
+
+
+// --- inlines ---
+
+// Get run time (-1 = not defined)
+inline TInt CBmpAnimSettings::RunningTime()
+    { return iRunningTime; }
+
+
+// Get loop count (-1 = not defined)
+inline TInt CBmpAnimSettings::LoopCount()
+    { return iLoopCount; }
+
+
+// Get suspend time (-1 = indefinitely)
+inline TInt CBmpAnimSettings::SuspendTime()
+    { return iSuspendTime; }
+
+
+// Get default timing
+inline TInt CBmpAnimSettings::Timing()
+    { return iTiming; }
+
+// Set default timing
+inline void CBmpAnimSettings::SetTiming(TInt aTiming)
+    { iTiming = aTiming; }
+
+
+// Get default bitmap file
+inline TDesC16& CBmpAnimSettings::PluginName()
+    { return iPluginName; }
+    
+    
+// Get default bitmap file
+inline TDesC16& CBmpAnimSettings::BitmapFilename()
+    { return iMbmFileName; }
+    
+// Get landscape bitmap file
+inline TDesC16& CBmpAnimSettings::BitmapFilenameLandscape()
+    { return iMbmFileNameL; }
+
+// Get lights on time (secs)
+inline TInt CBmpAnimSettings::Lights()
+    { return iLights; }
+
+    
+// Set lights on time (secs)
+inline void CBmpAnimSettings::SetLights(TInt aSecs)
+    { iLights = aSecs; }
+
+// Use landscape?
+inline TInt CBmpAnimSettings::UseLandscape()
+    { return iUseLandscape; }
+
+// Scale bitmaps?
+inline TInt CBmpAnimSettings::ScaleBmps()
+    { return iScaleBmps; }
+
+#endif  // C_CBMPANIMSETTINGS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/rom/bmpanimscrplugin.iby	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   IBY file for BmpAnimScrPlugin
+*
+*/
+
+
+
+#ifndef __BMPANIMSCRPLUGIN_IBY__
+#define __BMPANIMSCRPLUGIN_IBY__
+
+REM Bmpanim screensaver plugin
+
+#ifdef RD_SCREENSAVER_BMPANIM
+
+ECOM_PLUGIN(BmpAnimScrPlugin.dll, 101F86FF.rsc)
+
+data=DATAZ_\resource\plugins\BmpAnimScrPlugin.ini	 \resource\plugins\BmpAnimScrPlugin.ini
+data=DATAZ_\resource\plugins\BmpAnimScrPlugin.mif	 \resource\plugins\BmpAnimScrPlugin.mif
+
+// Only present, if using BMP graphics
+data=DATAZ_\resource\plugins\BmpAnimScrPlugin.mbm	 \resource\plugins\BmpAnimScrPlugin.mbm
+
+#endif
+#endif // __BMPANIMSCRPLUGIN_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/101F86FF.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ECOM Resource file for BmpAnimScrPlugin
+*
+*/
+
+
+
+// 101F86FF.RSS
+//
+// Registry file for Bounce-plugin Implementation.
+//
+// Interface(s) : 
+//
+
+#include <RegistryInfo.rh>
+#include <ScreensaverpluginIntDef.hrh>
+
+
+RESOURCE REGISTRY_INFO theInfo
+	{
+	// plugin's UID
+	dll_uid = 0x101F86FF;
+	interfaces = 
+		{
+		INTERFACE_INFO
+			{
+			// ScreenSaver ECOM Plugin interface UID.
+			interface_uid = KCScreensaverPluginInterfaceDefinitionUid;
+			implementations = 
+				{
+				IMPLEMENTATION_INFO
+					{
+					// plugin's UID
+					implementation_uid = 0x101F87F9;
+					version_no = 1;
+                    // This is the displayed name of the plugin.
+                    // It can be localised if needed
+					display_name = "zippo Zaver 3.1";
+					default_data = "";
+                    // This must correspond the value returned by 
+                    // CBmpAnimScrPlugin::Capabilities
+                    opaque_data = KScrPluginCapabilitiesNoneStr;
+					}
+				};
+			}
+		};
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/BmpAnimScrPluginDll.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Plugin DLL export that creates the plugin object itself
+*
+*/
+
+
+
+
+
+#include "CBmpAnimScrPlugin.h"
+
+
+#ifndef EKA2
+// Dll entry point or something
+GLDEF_C TInt E32Dll(TDllReason)
+	{
+	return KErrNone;
+	}
+#endif
+    
+
+#define KCScreensaverPluginInterfaceDefinitionImpUid 0x101F87F9
+
+#include <implementationproxy.h>
+
+// __________________________________________________________________________
+// Exported proxy for instantiation method resolution
+// Use the plugin UID and Implementation factory method
+// as a pair for ECom instantiation.
+const TImplementationProxy ImplementationTable[] =
+	{
+	IMPLEMENTATION_PROXY_ENTRY(KCScreensaverPluginInterfaceDefinitionImpUid, CBmpAnimScrPlugin::NewL)
+	};
+
+// Give the table to the caller
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+	{
+	aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
+	return ImplementationTable;
+	}
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimIniData.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,472 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Bitmap animator INI file handler
+*
+*/
+
+
+
+
+
+#include "CBmpAnimIniData.h"
+
+#include <f32file.h>
+#include <e32std.h>
+
+// Default directory to look for INI file
+_LIT(KIniFileDir,"C:\\private\\100056cf\\");
+
+const TInt KTokenSize=32;
+
+#ifdef _DEBUG
+// Debugging aids
+enum TIniPanic
+	{
+	ESectionNameTooBig,
+	EKeyNameTooBig,
+	};
+
+void Panic(TIniPanic aPanic)
+	{
+	_LIT(CBmpAnimIniData,"CBmpAnimIniData");
+	User::Panic(CBmpAnimIniData,aPanic);
+	}
+#endif  // _DEBUG
+
+// d'tor
+CBmpAnimIniData::~CBmpAnimIniData()
+	{
+	delete (TText*)iPtr.Ptr();
+	delete iToken;
+	delete iName;
+	}
+
+    
+// Public allocation method
+CBmpAnimIniData* CBmpAnimIniData::NewL(const TDesC& aName)
+	{
+	CBmpAnimIniData* p=new(ELeave) CBmpAnimIniData;
+	CleanupStack::PushL(p);
+	p->ConstructL(aName);
+	CleanupStack::Pop();
+	return p;
+	}
+
+
+// Find a key's string) value regardless of section (wide)
+TBool CBmpAnimIniData::FindVar(const TDesC8& aKeyName, TDes16& aResult)
+    {
+    TPtrC8 tmpRes;
+    if (!FindVar(aKeyName, tmpRes))
+        {
+        return EFalse;
+        }
+
+    // Copy the 8-bit result into the 16-bit descriptor
+    aResult.Copy(tmpRes);
+    return ETrue;
+    }
+
+    
+// Find a key's (string) value regardless of section
+TBool CBmpAnimIniData::FindVar(const TDesC8& aKeyName, TPtrC8& aResult)
+    {
+    _LIT8(KDummySection, "");
+    // Call with no section, so starts at beginning
+    if (FindVar(KDummySection, aKeyName, aResult))
+        {
+        return ETrue;
+        }
+    else
+        {
+        return EFalse;
+        }
+    }
+    
+
+// Find a key's (string) value given a section name and a key name (wide)
+TBool CBmpAnimIniData::FindVar(const TDesC8& aSectName,
+                               const TDesC8& aKeyName,
+                               TDes16& aResult)
+    {
+    TPtrC8 tmpRes;
+    if (!FindVar(aSectName, aKeyName, tmpRes))
+        {
+        return EFalse;
+        }
+
+    // Copy the 8-bit result into the 16-bit descriptor
+    aResult.Copy(tmpRes);
+    return ETrue;
+    }
+
+    
+// Find a key's (string) value given a section name and a key name
+TBool CBmpAnimIniData::FindVar(const TDesC8& aSectName,
+                               const TDesC8& aKeyName,
+                               TPtrC8& aResult)
+    {
+    __ASSERT_DEBUG(aSectName.Length() <= KTokenSize, Panic(ESectionNameTooBig));
+    __ASSERT_DEBUG(aKeyName.Length() <= KTokenSize, Panic(EKeyNameTooBig));
+
+    TInt posStartOfSection(0);
+    TInt posEndOfSection(0);
+    TPtrC8 SearchBuf;
+
+    // If we have a section, set pos to section start
+    if (aSectName.Length() > 0)
+        {
+        if (!FindSection(aSectName, posStartOfSection, posEndOfSection))
+            {
+            return EFalse;
+            }
+        }
+
+    // Look for key in ini file data Buffer
+    TInt posI = posStartOfSection; // Position in internal data Buffer
+    TBool FoundKey(EFalse);
+    while (!FoundKey)
+        {
+        // Search for next occurrence of aKeyName
+        SearchBuf.Set(iPtr.Mid(posI));
+        TInt posSB = SearchBuf.Find(aKeyName);
+
+        // If not found, return
+        if (posSB == KErrNotFound)
+            {
+            return EFalse;
+            }
+
+        // Check this is at beginning of line (ie. non-commented)
+        // ie. Check preceding char was CR or LF
+        if(posSB > 0)
+            {
+            // Create a Buffer, starting one char before found subBuf
+            TPtrC8 CharBefore(SearchBuf.Right(SearchBuf.Length() - posSB + 1));
+            // Check first char is end of prev
+            if(CharBefore[0] == '\n')
+                {
+                FoundKey = ETrue;
+                posI = posI + posSB;
+                }
+            else
+                {
+                posI = posI + posSB + 1;
+                }
+            }
+        else
+            {
+            FoundKey = ETrue;
+            }
+
+    }   // while (!FoundKey)
+
+    // Set pos to just after '=' sign
+    SearchBuf.Set(iPtr.Mid(posI));
+    TInt posSB = SearchBuf.Locate('=');
+    if (posSB == KErrNotFound)     // Illegal format, should flag this...
+        {
+        return EFalse;
+        }
+
+    // Identify start and end of data (EOL or EOF)
+    posI = posI + posSB + 1;    // 1 char after '='
+    TInt posValStart = posI;
+    TInt posValEnd;
+    SearchBuf.Set(iPtr.Mid(posI));
+    posSB = SearchBuf.Locate('\r');
+    if (posSB != KErrNotFound)
+        {
+        posValEnd = posI + posSB;
+        }
+    else
+        {
+        posValEnd = iPtr.Length();
+        }
+
+    // Check we are still in the section requested
+    if (aSectName.Length() > 0)
+        {
+        if (posValEnd > posEndOfSection)
+            {
+            return EFalse;
+            }
+        }
+
+    // Parse Buffer from posn of key
+    // Start one space after '='
+    TLex8 lex(iPtr.Mid(posValStart, posValEnd - posValStart));
+    lex.SkipSpaceAndMark();     // Should be at the start of the data
+    aResult.Set(lex.MarkedToken().Ptr(),
+                posValEnd - posValStart - lex.Offset());
+    
+    return ETrue;
+    }
+
+    
+// Find integer value regardless of section
+TBool CBmpAnimIniData::FindVar(const TDesC8& aKeyName, TInt& aResult)
+    {
+    TPtrC8 ptr(NULL, 0);
+    if (FindVar(aKeyName, ptr))
+        {
+        TLex8 lex(ptr);
+        if (lex.Val(aResult) == KErrNone)
+            {
+            return ETrue;
+            }
+        }
+    return EFalse;
+    }
+
+    
+// Find integer value within a given section
+TBool CBmpAnimIniData::FindVar(
+    const TDesC8& aSection, const TDesC8& aKeyName, TInt& aResult)
+    {
+    TPtrC8 ptr(NULL, 0);
+    if (FindVar(aSection, aKeyName, ptr))
+        {
+        TLex8 lex(ptr);
+        if (lex.Val(aResult) == KErrNone)
+            {
+            return ETrue;
+            }
+        }
+    return EFalse;
+    }
+
+
+// Write integer value in given section
+TInt CBmpAnimIniData::WriteVarL(
+    const TDesC8& aSection, const TDesC8& aKeyName, TInt aValue)
+    {
+    TBuf8<32> buf;
+    buf.Num(aValue);
+    return WriteVarL(aSection, aKeyName, buf);
+    }
+
+
+// Write string value in given section
+TInt CBmpAnimIniData::WriteVarL(
+    const TDesC8& aSection, const TDesC8& aKeyName, const TDesC8& aValue)
+    {
+    // First find the variable - this gives us a descriptor into the
+    // ini data giving the bound of the item that has to be replaced
+    TPtrC8 ptr;
+    TInt pos;
+    TBool found = FindVar(aSection, aKeyName, ptr);
+
+    HBufC8* text = HBufC8::NewLC(
+        aSection.Length() + aKeyName.Length() + aValue.Length() + 7); // +7 for '=', '[', ']' and 2*cr+lf.
+    TPtr8 textp = text->Des();
+
+    if (found)
+        {
+        pos = ptr.Ptr() - iPtr.Ptr();
+        textp.Append(aValue);
+        }
+    else
+        {
+        TInt posStartOfSection = 0;
+        TInt posEndOfSection = 0;
+        
+        if (FindSection(aSection, posStartOfSection, posEndOfSection))
+            {
+            pos = posEndOfSection;
+            }
+        else
+            {
+            pos = iPtr.Length();
+            textp.Append('[');
+            textp.Append(aSection);
+            textp.Append(']');
+            textp.Append('\r');
+            textp.Append('\n');
+            }
+        textp.Append(aKeyName);
+        textp.Append('=');
+        textp.Append(aValue);
+        textp.Append('\r');
+        textp.Append('\n');
+        }
+
+    TInt size = (iPtr.Length() + textp.Length() - ptr.Length()) * sizeof(TText8);
+
+    if (size > iPtr.MaxLength())
+        {
+        TText8* newdata = (TText8*) User::ReAllocL((TUint8*)iPtr.Ptr(), size);
+        iPtr.Set(newdata, iPtr.Length(), size/sizeof(TText8));
+        }
+
+    iPtr.Replace(pos, ptr.Length(), textp);
+
+    CleanupStack::PopAndDestroy(text);
+
+    return KErrNone;
+    }
+
+    
+// Commits the changes in variables, ie writes the file data (held in iPtr)
+// into the actual disk file
+void CBmpAnimIniData::CommitL()
+    {
+    TAutoClose<RFs> fs;
+    User::LeaveIfError(fs.iObj.Connect());
+    fs.PushL();
+
+    // Just replace the file with the data, no seeking necessary
+    TAutoClose<RFile> file;
+    file.iObj.Replace(fs.iObj, *iName, EFileStreamText|EFileWrite);
+    file.PushL();
+    
+    TPtrC8 ptrc8((TUint8*)iPtr.Ptr(), iPtr.Size());
+    User::LeaveIfError(file.iObj.Write(ptrc8));
+    
+    file.Pop();
+    fs.Pop();
+    }
+
+
+// --- protected --- 
+
+// c'tor
+CBmpAnimIniData::CBmpAnimIniData() 
+: iPtr(NULL, 0)
+    {
+    __DECLARE_NAME(_S("CBmpAnimIniData"));
+    }
+
+
+// Allocate a buffer and Read file's contents into iPtr
+void CBmpAnimIniData::ConstructL(const TDesC& aName)
+    {
+    // Allocate space for token
+    iToken = HBufC8::NewL(KTokenSize + 2);   // 2 extra chars for [tokenName]
+
+    // Connect to file server
+    TAutoClose<RFs> fs;
+    User::LeaveIfError(fs.iObj.Connect());
+    fs.PushL();
+
+    // Find file, given name
+    TFindFile ff(fs.iObj);
+    TAutoClose<RFile> file;    
+    TInt err = ff.FindByDir(aName, KIniFileDir);
+    
+    // If found - cool, use the found file's name and open it
+    if (err == KErrNone)
+        {
+        iName = ff.File().AllocL();
+        err = file.iObj.Open(fs.iObj, *iName, EFileStreamText | EFileRead);
+        }
+
+    // If not found - create the file using the given name
+    if (err == KErrNotFound)
+        {
+        err = file.iObj.Create(fs.iObj, aName, EFileStreamText);
+        iName = aName.AllocL();
+        }
+
+    file.PushL();
+
+    // Get file size and read in as 8-bit data
+    TInt size = 0;
+    User::LeaveIfError(file.iObj.Size(size));
+    TText8* data = (TText8*) User::AllocL(size);
+    iPtr.Set(data, size, size);
+    TPtr8 dest((TUint8*)data, 0, size);
+    User::LeaveIfError(file.iObj.Read(dest));
+
+    file.Pop();
+    fs.Pop();
+    }
+    
+
+// --- private --- 
+
+
+// Find a section in the INIfile
+TBool CBmpAnimIniData::FindSection(
+    const TDesC8& aSection, TInt& aStart, TInt& aEnd)
+    {
+    TInt posI = 0;  // Position in internal databuffer
+    TBool FoundSection = EFalse;
+    TPtrC8 SearchBuf;
+    
+    while (!FoundSection)
+        {
+        // Move search buffer to next area of interest
+        SearchBuf.Set(iPtr.Mid(posI));
+        
+        // Make up token "[SECTIONNAME]", to search for
+        TPtr8 sectionToken = iToken->Des();
+        _LIT8(sectionTokenFmtString,"[%S]");
+        sectionToken.Format(sectionTokenFmtString, &aSection);
+        
+        // Search for next occurrence of aSection
+        TInt posSB = SearchBuf.Find(sectionToken);
+        
+        // If not found, return
+        if (posSB == KErrNotFound)
+            {
+            return EFalse;
+            }
+        
+        // Check this is at beginning of line (ie. non-commented)
+        // ie. Check preceding char was LF
+        if (posSB > 0)
+            {
+            // Create a Buffer, starting one char before found subBuf
+            TPtrC8 CharBefore(SearchBuf.Right(SearchBuf.Length() - posSB + 1));
+            // Check first char is end of prev
+            if (CharBefore[0] == '\n')
+                {
+                FoundSection = ETrue;       // found
+                posI = posI + posSB;
+                }
+            else
+                {
+                posI = posI + posSB + 1;    // try again
+                }
+            }
+        else
+            {
+            FoundSection = ETrue;
+            }
+        
+        }   // while (!FoundSection)
+    
+    // Set start of section, after section name, (incl '[' and ']')
+    aStart = posI + aSection.Length() + 2;
+    
+    // Set end of section, by finding begin of next section or end
+    SearchBuf.Set(iPtr.Mid(posI));
+    
+    _LIT8(nextSectionBuf,"\n[");
+    
+    TInt posSB = SearchBuf.Find(nextSectionBuf);
+    if (posSB != KErrNotFound)
+        {
+        aEnd = posI + posSB + 1;
+        }
+    else
+        {
+        aEnd = iPtr.Length();
+        }
+    
+    return ETrue;
+    }
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimItem.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Stores a single bitmap animation item: image with its
+*               properties (position, timing et al)
+*
+*/
+
+
+
+
+
+//  INCLUDES
+#include <fbs.h>
+#include <bitdev.h>
+#include <gdi.h>
+
+#include "CBmpAnimItem.h"
+
+// default 0.20 secs
+const TInt KDefaultTiming = 200000;
+
+// Public constructor, doesn't need a two-phase construction
+CBmpAnimItem::CBmpAnimItem()
+    : iFlags(BAIF_OWNSICON),
+      iTiming(KDefaultTiming),
+      iPosition(TPoint(0, 0))
+    {
+    }
+
+    
+// Destructor
+CBmpAnimItem::~CBmpAnimItem()
+    {
+    if (Flags() & BAIF_OWNSICON)
+        {
+        delete iIcon;
+        }
+    }
+
+    
+// Set icon. If owned, an icon is deleted by the item
+void CBmpAnimItem::SetIcon(
+    CGulIcon* aIcon,
+    TBool aItemOwnsIcon /*= ETrue */)
+    {
+    // Get rid of old icon, if any and if owned
+    if ((iIcon) && (Flags() & BAIF_OWNSICON))
+        {
+        delete iIcon;
+        }
+    
+    iIcon = aIcon;
+
+    if (aItemOwnsIcon)
+        {
+        iFlags |= BAIF_OWNSICON;
+        }
+    else
+        {
+        iFlags &= ~BAIF_OWNSICON;
+        }
+    }
+
+
+// Set icon from bitmaps. If owned, an icon is deleted by the item
+void CBmpAnimItem::SetIconL(
+    CFbsBitmap* aBitmap,
+    CFbsBitmap* aMask /* = NULL */,
+    TBool aItemOwnsIcon /* = ETrue */)
+    {
+    // Create a new icon
+    CGulIcon* icon = CGulIcon::NewL();
+
+    // Plug the bitmaps in
+    icon->SetBitmap(aBitmap);
+    icon->SetMask(aMask);
+
+    // Does icon own bitmaps?
+    icon->SetBitmapsOwnedExternally(!aItemOwnsIcon);
+
+    // Store the newly created icon
+    SetIcon(icon, aItemOwnsIcon);
+    }
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimModel.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,170 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Takes care of storing and serving the bitmaps
+*               to be animated along with their properties
+*
+*/
+
+
+
+
+
+#include "CBmpAnimModel.h"
+
+
+// C'tor
+CBmpAnimModel::CBmpAnimModel()
+    {
+    }
+
+    
+// D'tor
+CBmpAnimModel::~CBmpAnimModel()
+    {
+    // Delete item array
+    if (iItems)
+        {
+        iItems->ResetAndDestroy();
+        }
+    delete iItems;
+    }
+
+    
+// Two-phase constructor, initialises member arrays and stuff
+void CBmpAnimModel::ConstructL(CBmpAnimSettings* aSettings)
+    {
+    // Create item array
+    iItems = new(ELeave) CArrayPtrFlat<CBmpAnimItem>(
+        KBmpAnimItemArrayGranularity);
+
+    iSettings = aSettings;
+    }
+
+
+// Number of items query
+TInt CBmpAnimModel::NumberOfItems() const
+    {
+    return iItems ? iItems->Count() : 0;
+    }
+    
+  
+// Add an item to the end of the array
+void CBmpAnimModel::AppendItemL(CBmpAnimItem* aItem)
+    {
+    // Sanity check
+    if (!iItems)
+        {
+        ASSERT(EFalse);
+        return;
+        }
+
+    // Stash it in
+    iItems->AppendL(aItem);
+    }
+
+    
+// Insert an item at <aIndex>. Space must be reserved.
+void CBmpAnimModel::InsertItemL(TInt aIndex, CBmpAnimItem* aItem)
+    {
+    if ((iItems) && (aIndex >= 0) && (aIndex <= NumberOfItems()))
+        {
+        // Squeeze it in
+        iItems->InsertL(aIndex, aItem);
+        }
+    else
+        {
+        ASSERT(EFalse);
+        }
+    }
+    
+
+// Delete item at <aIndex>
+void CBmpAnimModel::DeleteItemL(TInt aIndex)
+    {
+    if ((iItems) && (aIndex >= 0) && (aIndex <= NumberOfItems()))
+        {
+        // Grab hold of the item for deletion, remove from array
+        // and compress the array
+        CBmpAnimItem* ptr = iItems->At(aIndex);
+        iItems->Delete(aIndex);
+        delete ptr;
+        iItems->Compress();
+        }
+    else
+        {
+        ASSERT(EFalse);
+        }
+    }
+
+
+// Delete all Items
+void CBmpAnimModel::DeleteAll()
+    {
+    if (iItems)
+        {
+        iItems->ResetAndDestroy();
+        }
+    }
+
+    
+// Get item at position <aIndex>
+CBmpAnimItem* CBmpAnimModel::ItemAt(TInt aIndex) const
+    {
+    if ((iItems) && (aIndex >= 0) && (aIndex < NumberOfItems()))
+        {
+        return iItems->At(aIndex);
+        }
+    else
+        {
+        return NULL;
+        }
+    }
+
+
+// Get next item in animation sequence. Returns NULL at the end of the
+// sequence (or if there are no items at all), and wraps around to the
+// beginning, so that next call again returns an item.
+CBmpAnimItem* CBmpAnimModel::NextItem(TBool& aWrapped)
+    {
+    CBmpAnimItem* pItem = ItemAt(iCurrentItem++);
+
+    if (pItem)
+        {
+        aWrapped = EFalse;
+        }
+    else
+        {
+        // Apparently there are no more items - wrap around and set indicator
+        iCurrentItem = 0;
+        aWrapped = ETrue;
+
+        pItem = ItemAt(iCurrentItem++);
+        }
+
+    return pItem;
+    }
+
+    
+// Reserve space for <aCount> Items
+void CBmpAnimModel::SetReserveL(TInt aCount)
+    {
+    if ((iItems) && (aCount >= NumberOfItems()))
+        {
+        iItems->SetReserveL(aCount);
+        }
+    }
+
+    
+// --- private functions ---
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimScrPlugin.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,1073 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Main code file for plugin
+*
+*/
+
+
+
+#include <eikenv.h>
+#include <e32math.h>
+#include <bitdev.h>
+#include <aknutils.h>
+#include <akniconutils.h>
+#include <mifconvdefs.h>
+
+#include "CBmpAnimScrPlugin.h"
+#include "BmpAnimUtils.h"
+
+#include <AknQueryDialog.h>
+#include <avkon.rsg>
+// "BmpAnimScrPlugin.rsg"
+
+const TInt KDefaultViewTime = 1000000;
+
+//
+// CBmpAnimSrcPlugin
+//
+
+// Creates and returns a new instance of CBmpAnimScrPlugin
+CBmpAnimScrPlugin* CBmpAnimScrPlugin::NewL()
+    {
+    CBmpAnimScrPlugin *plugin = new (ELeave) CBmpAnimScrPlugin();
+
+    // Initialize settings object so that the plugin name can be retrieved
+    iSettings = CBmpAnimSettings::NewL();
+    
+    return plugin;
+    }
+
+    
+// Default constructor
+CBmpAnimScrPlugin::CBmpAnimScrPlugin()
+    : iState(EPluginStateLoading),
+      iStopDisplaying(EFalse),
+      iLoadedAnimation(ENone)
+    {
+    BMALOGGER_CREATE;
+
+    }
+    
+
+// Destructor
+CBmpAnimScrPlugin::~CBmpAnimScrPlugin()
+    {
+    delete iModel;
+    delete iSettings;
+
+    StopDisplayTimer();
+    delete iDisplayTimer;
+    
+    BMALOGGER_DELETE;
+    }
+
+    
+// --- from Screensaverplugin ---
+
+
+// Initialization function. Must be called before anything but
+// name query can be done
+TInt CBmpAnimScrPlugin::InitializeL(MScreensaverPluginHost *aHost) 
+    {
+    ASSERT(aHost);
+    
+    // Sanity check
+    if (!aHost)
+        {
+        return KErrArgument;
+        }
+    
+    // Save the host interface
+    iHost = aHost;
+
+    // Start state
+    iState = EPluginStateLoading;
+
+    // Initial timing (may be overridden by settings)
+    iHost->SetRefreshTimerValue(KDefaultViewTime);
+
+    // Lie that we'll show indicators so that host does not prevent
+    // plugin to be run if there are any to show. We'll stop after a
+    // while anyway and the indicators are shown by normal Screensaver
+    iHost->OverrideStandardIndicators();
+    
+    // Grab hold of the environment (this could be in the plugin host interface)
+    iEikEnv = CEikonEnv::Static();
+
+    // Create the model to store the animation in
+    iModel = new(ELeave) CBmpAnimModel();
+    iModel->ConstructL(iSettings);
+
+    // Get screen info
+    UpdateDisplayInfo();
+    
+    // Load the animation (Reload figures out which graphics should be used)
+    ReloadAnimationL();
+
+    // Create display timer
+    iDisplayTimer = CPeriodic::NewL(CActive::EPriorityStandard);
+
+    return KErrNone;
+    }
+
+    
+// Draw function being called repeatedly by the host
+TInt CBmpAnimScrPlugin::Draw(CWindowGc& aGc) 
+    {
+    // If initializing, start the timer and move on to animation state
+    if (iState == EPluginStateInitializing)
+        {
+        BMALOGGER_WRITE("First draw, initializing");
+        
+        StartDisplayTimer();
+        HandlePluginState();
+        SetDisplayMode();
+        TInt nLights = iModel->Settings()->Lights();
+
+        if (nLights > 0)
+            {
+            Lights(nLights);
+            }
+
+        // Make sure the animation sequence starts from the beginning
+        iModel->SetCurrentItemIndex(0);
+        }
+
+    // Retrieve the next image in sequence
+    TBool endOfSequence = EFalse;
+    CBmpAnimItem* pItem = iModel->NextItem(endOfSequence);
+
+    if ((endOfSequence) || (!pItem))
+        {
+        // End of sequence reached, see if we've shown enough (1 minute)
+        if (iStopDisplaying)
+            {
+            // Stop the timer
+            StopDisplayTimer();
+
+            // Back to square 1
+            iState = EPluginStateInitializing;
+
+			// Set a lower refresh rate while plugin is suspended.
+            // This allows the Screensaver to stop Window Server heartbeat
+            // and the system is able to sleep normally
+            // NOTE: Not needed anymore, Screensaver now shuts down
+            // WSERV heartbeat for suspended plugins
+            // iHost->SetRefreshTimerValue(KDefaultViewTime);
+
+            TInt suspendTime = iModel->Settings()->SuspendTime();
+            
+            BMALOGGER_WRITEF(_L("BMA: Done drawing, suspending for %d"),
+                             suspendTime);
+            
+            iHost->Suspend(suspendTime);
+
+            return KErrNone;
+            }
+        }
+
+    if (pItem)
+        {
+        // Make sure the window is empty in case the bitmap doesn't
+        // fill the whole screen
+        aGc.Clear();
+
+        DrawCentered(aGc, pItem);
+        }
+
+// Activate code if centering INI-controllable
+#if 0
+        // Retrieve drawing information
+        CGulIcon* pIcon = pItem->Icon();
+        TPoint position = pItem->Position();
+        CFbsBitmap* bitmap = pIcon->Bitmap();
+        CFbsBitmap* mask = pIcon->Mask();
+
+        // Draw the whole bitmap at position
+        TRect rect(position, bitmap->SizeInPixels());
+        
+        if (mask)
+            {
+            // Looks like a real icon - draw masked
+            aGc.BitBltMasked(position, bitmap, rect, mask, ETrue);
+            }
+        else
+            {
+            // Just the bitmap - no masked draw
+            aGc.BitBlt(position, bitmap, rect);
+            }
+
+        // Wait for the specified time until next image
+        //
+        // TODO: The new wk28 Screensaver crashes if the next call
+        // is uncommented. Maybe the timer is not stopped
+        // before starting again? Hmm... doesn't seem to happen
+        // anymore. I wonder what changed. Anyway, I'll have it
+        // commented out for the time being, in order to control
+        // all frames' rate with the single setting
+        // 
+        // NOTE: There was a flaw in Screensaver where it would try to
+        // start refresh timer twice, if plugin changes the value during
+        // the first draw. The fix is released for 2.6_wk40_FB4
+        // iHost->SetRefreshTimerValue(pItem->Timing());
+        }
+/*
+    aGc.SetPenColor(TRgb(255,0,0));
+    aGc.SetPenStyle(CGraphicsContext::ESolidPen);
+    aGc.DrawRect(TRect(30, 30, 100, 100));
+
+    aGc.SetPenColor(TRgb(255,0,0));
+    aGc.SetPenSize(TSize(3,3));
+    aGc.DrawRect(TRect(120, 100, 200, 150));
+*/
+#endif
+    return KErrNone;
+    }
+
+
+// Return the name of the plugin
+const TDesC16& CBmpAnimScrPlugin::Name() const
+    {
+    if (iSettings)
+        {
+        return iSettings->PluginName();
+        }
+
+    return KPluginName;
+    }
+
+
+// Handles events sent by the screensaver
+TInt CBmpAnimScrPlugin::HandleScreensaverEventL(
+    TScreensaverEvent aEvent,
+    TAny* /* aData */)
+    {
+    switch (aEvent)
+        {
+        case EScreensaverEventStarting:
+            BMALOGGER_WRITE("Start event");
+            break;
+        case EScreensaverEventStopping:
+            BMALOGGER_WRITE("Stop event");
+            StopDisplayTimer();
+            iState = EPluginStateInitializing;
+            break;
+        case EScreensaverEventDisplayChanged:
+            BMALOGGER_WRITE("Display changed event");
+            // Grab current screen info
+            UpdateDisplayInfo();
+            // Reload animation, if needed
+            ReloadAnimationL();
+            break;
+        default:
+            break;
+        }
+
+    return KErrNone;
+    }
+
+
+// Return plugin capabilities (configurable)
+TInt CBmpAnimScrPlugin::Capabilities()
+    {
+    return EScpCapsConfigure;
+    }
+
+
+// Perform a plugin function
+TInt CBmpAnimScrPlugin::PluginFunction(TScPluginCaps aFunction, TAny* aParam)
+    {
+    switch (aFunction)
+        {
+        case EScpCapsConfigure:
+            {
+            TRAPD(err, err = ConfigureL(aParam));
+            return err;
+            }
+            break;
+        default:
+            return KErrNotSupported;
+            break;
+        }
+    }
+    
+
+// --- private functions ---
+
+// Draws centered items
+void CBmpAnimScrPlugin::DrawCentered(CWindowGc& aGc, CBmpAnimItem* aItem)
+    {
+    CGulIcon* pIcon = aItem->Icon();
+    CFbsBitmap* bitmap = pIcon->Bitmap();
+    CFbsBitmap* mask = pIcon->Mask();
+
+    if (!bitmap)
+        return;
+
+    // Center the bitmap horizontally and vertically (crop off excess)    
+    TPoint pos;
+    TRect rectToDraw;
+    TSize sizeBmp = bitmap->SizeInPixels();
+    TInt screenWidth = iDi.iRect.Width();
+    TInt screenHeight = iDi.iRect.Height();
+
+    // Horizontally
+    if (sizeBmp.iWidth <= screenWidth)
+        {
+        // Width fits on screen - center xpos
+        pos.iX = (screenWidth - sizeBmp.iWidth) / 2;
+        
+        // Whole width of bmp can be drawn
+        rectToDraw.SetWidth(sizeBmp.iWidth);
+        }
+    else
+        {
+        // Bmp wider than screen - xpos top left
+        pos.iX = 0;
+        
+        // Adjust draw rect position and width
+        rectToDraw.iTl.iX = (sizeBmp.iWidth - screenWidth) / 2;
+        rectToDraw.SetWidth(screenWidth);
+        }
+
+    // Vertically
+    if (sizeBmp.iHeight <= screenHeight)
+        {
+        // Height fits on screen - center ypos
+        pos.iY = (screenHeight - sizeBmp.iHeight) / 2;
+        
+        // Whole height of bmp can be drawn
+        rectToDraw.SetHeight(sizeBmp.iHeight);
+        }
+    else
+        {
+        // Bmp higher than screen - ypos top left
+        pos.iY = 0;
+        
+        // Adjust draw rect position and height
+        rectToDraw.iTl.iY = (sizeBmp.iHeight - screenHeight) / 2;
+        rectToDraw.SetHeight(screenHeight);
+        }
+
+    // Do the drawing
+    if (mask)
+        {
+        // Looks like a real icon - draw masked
+        aGc.BitBltMasked(pos, bitmap, rectToDraw, mask, ETrue);
+        }
+    else
+        {
+        // Just the bitmap - no masked draw
+        aGc.BitBlt(pos, bitmap, rectToDraw);
+        }
+    }
+
+
+// Loads the animation into the model
+void CBmpAnimScrPlugin::LoadAnimationL(TBool aLandscape, TBool aRotate)
+    {
+    // Rotated landscape not supported
+    ASSERT(!(aLandscape && aRotate));
+    
+    // Start by getting rid of a possible loaded animation
+    iModel->DeleteAll();
+    
+    // Bitmap index. If negative, loading is finished.
+    TInt nIndex = KMifIdFirst;
+    
+    TFileName fileName;
+
+    if (aLandscape)
+        {
+        fileName = iModel->Settings()->BitmapFilenameLandscape();
+        }
+    else
+        {
+        fileName = iModel->Settings()->BitmapFilename();
+        }
+
+    BMALOGGER_WRITEF(_L("BMA: Loading from: %S"), &(fileName));
+            
+    while (nIndex > 0)
+        {
+        CFbsBitmap* pBmp = NULL;
+        
+        TRAPD(err, pBmp = AknIconUtils::CreateIconL(fileName, nIndex));
+
+        if ((pBmp) && (err == KErrNone))
+            {
+            // Got bitmap, push and set size
+            CleanupStack::PushL(pBmp);
+            TInt scaleErr = ScaleBitmap(pBmp, aRotate);
+            if (scaleErr == KErrNone)
+                {
+                // Create an item with the bitmap and store it in the model
+                CBmpAnimItem* pItem = new(ELeave) CBmpAnimItem();
+                CleanupStack::PushL(pItem);
+            
+                pItem->SetIconL(pBmp);
+                iModel->AppendItemL(pItem);
+                
+                CleanupStack::Pop(2); // pBmp, pItem
+            
+                BMALOGGER_WRITEF(_L("BMA: Loaded bmp %d"), nIndex);
+                
+                // Try loading next bitmap (skip mask IDs)
+                nIndex += 2;
+                }
+            else
+                {
+                BMALOGGER_WRITEF(_L("BMA: Bmp %d scale err %d"),
+                                 nIndex, scaleErr);
+
+                // Apparently SVG icon was not found, this is not caught
+                // in CreateIconL(). Assume last image was loaded.
+                CleanupStack::PopAndDestroy();  // pBmp
+                nIndex = -1;
+                }
+            }
+        else
+            {
+            // Loading failed - maybe reached end of bitmaps 
+            nIndex = -1;
+            
+            BMALOGGER_WRITEF(_L("BMA: Bmp load failed: %d"), err);
+            }
+        }
+
+    // Save the type of loaded animation
+    if (aLandscape)
+        {
+        iLoadedAnimation = ELandscape;
+        }
+    else if (aRotate)
+        {
+        iLoadedAnimation = EPortraitRotated;
+        }
+    else
+        {
+        iLoadedAnimation = EPortrait;
+        }
+
+    // On to next state
+    HandlePluginState();
+    
+    // Start animating, when appropriate
+    iHost->SetRefreshTimerValue(iModel->Settings()->Timing());
+
+    BMALOGGER_WRITE("BMA: Animation loaded");
+    }
+
+
+// Re-loads the animation into the model, if needed
+void CBmpAnimScrPlugin::ReloadAnimationL()
+    {
+    // Check if the correct graphics are already loaded
+    if (!ReloadNeeded())
+        {
+        // Done! That was easy :)
+        return;
+        }
+
+    // Load correct graphics
+    LoadAnimationL(LoadLandscape(), RotateNeeded());
+    }
+
+    
+// Starts the display timer
+void CBmpAnimScrPlugin::StartDisplayTimer()
+    {
+    ASSERT(iDisplayTimer);
+
+    TInt time = iModel->Settings()->RunningTime();
+
+    BMALOGGER_WRITEF(_L("BMA: Start display timer for %d"), time);
+
+    iStopDisplaying = EFalse;
+    iDisplayTimer->Start(
+        time,
+        time,
+        TCallBack(DisplayTimerCallback, this));
+    }
+
+    
+// Stops the display timer
+void CBmpAnimScrPlugin::StopDisplayTimer()
+    {
+    BMALOGGER_WRITE("BMA: Stop display timer");
+
+    if (iDisplayTimer)
+        {
+        iDisplayTimer->Cancel();
+        }
+    
+    iStopDisplaying = EFalse;
+    }
+
+
+// Display timer callback - sets animation stop flag
+TInt CBmpAnimScrPlugin::DisplayTimerCallback(TAny* aPtr)
+    {
+    BMALOGGER_WRITE("BMA: Display timer timeout");
+
+    CBmpAnimScrPlugin* _this = REINTERPRET_CAST(CBmpAnimScrPlugin*, aPtr);
+    _this->iStopDisplaying = ETrue;
+    return KErrNone;
+    }
+
+    
+// Changes the internal state flag    
+void CBmpAnimScrPlugin::HandlePluginState()
+    {
+    switch (iState)
+        {
+        case EPluginStateLoading:
+            iState = EPluginStateInitializing;
+            break;
+        case EPluginStateInitializing:          
+            iState = EPluginStateAnimation;
+            break;
+        case EPluginStateAnimation:
+             break; 
+        case EPluginStateStoppingAnimation:
+             iHost->SetRefreshTimerValue(KDefaultViewTime);
+             iState = EPluginStateInitializing;
+             break;
+        }
+    }
+
+
+// Requests display mode from host
+void CBmpAnimScrPlugin::SetDisplayMode()
+    {
+    if (!iHost)
+        {
+        return;
+        }
+    
+    // Exit partial mode
+    iHost->ExitPartialMode();
+    }
+
+
+void CBmpAnimScrPlugin::Lights(TInt aSecs)
+    {
+    BMALOGGER_WRITEF(_L("BMA: Request lights for %d secs"), aSecs);
+    iHost->RequestLights(aSecs);
+    }
+
+    
+// Configure the plugin
+TInt CBmpAnimScrPlugin::ConfigureL(TAny* aParam)
+    {
+    if (!iSettings)
+        {
+        return KErrNotFound;
+        }
+    
+    // Grab the parameter (CEikonEnv in this case)
+    CEikonEnv* eikEnv = NULL;
+
+    if (aParam)
+        {
+        // The host was kind enough to provide us with a param - use it
+        eikEnv = REINTERPRET_CAST(CEikonEnv*, aParam);
+        }
+    else if (iEikEnv)
+        {
+        // Use own env, if initialized
+        eikEnv = iEikEnv;
+        }
+
+    TInt setting = iSettings->Lights();
+    
+    CAknNumberQueryDialog* dlg = CAknNumberQueryDialog::NewL(setting);
+    CleanupStack::PushL(dlg);
+    _LIT(KPrompt, "Lights time (sec)");
+    dlg->SetPromptL(KPrompt);
+    dlg->SetMinimumAndMaximum(0, 30);
+    CleanupStack::Pop();
+    
+    if (dlg->ExecuteLD(R_AVKON_DIALOG_QUERY_VALUE_NUMBER))
+        {
+        iSettings->SetLights(setting);
+        iSettings->SaveSettingsL();
+        }
+    
+    // All was swell!
+    return KErrNone;
+    }
+
+
+// Scale bitmap to screen size, set size of SVG bitmaps
+TInt CBmpAnimScrPlugin::ScaleBitmap(CFbsBitmap* aBmp, TBool aRotate)
+    {
+    TInt ret = KErrNone;
+
+    // SVG size always screen size
+    TSize size = iDi.iRect.Size();
+
+    if (!AknIconUtils::IsMifIcon(aBmp))
+        {
+        // Bitmaps maintain their original size, unless scaling requested, in which
+        // case screen size is OK 
+        if (!iSettings->ScaleBmps())
+            {
+            // No scaling, use original size
+            size = aBmp->SizeInPixels();
+
+            if (aRotate)
+                {
+                // Lie the target size, otherwise IconUitls will think
+                // the image needs scaling (this won't work perfectly
+                // either, the image gets clipped a little :(
+                //size.SetSize(size.iHeight, size.iHeight);
+
+                // Flip size for rotation
+                size.SetSize(size.iHeight, size.iWidth);
+                }
+            }
+        }
+    
+    if (aRotate)
+        {
+        // Set image to screen size and rotate 90 deg left (270 right)
+        // ret = SetSizeAndRotation(aBmp, size, 270);
+        ret = AknIconUtils::SetSizeAndRotation(
+            aBmp, size, EAspectRatioPreservedSlice, 270);
+        }
+    else
+        {
+        // Just set image to size
+        ret = AknIconUtils::SetSize(aBmp, size, EAspectRatioPreserved);
+        }
+
+    return ret;
+    }
+
+
+// Returns ETrue if reload of the animation is needed
+TBool CBmpAnimScrPlugin::ReloadNeeded()
+    {
+    // Assume reload needed
+    TBool needed = ETrue;
+
+    switch (iLoadedAnimation)
+        {
+        case EPortrait:
+            // No reload if display portrait
+            if (!DisplayIsLandscape())
+                {
+                needed = EFalse;
+                }
+            break;
+
+        case ELandscape:
+        case EPortraitRotated:
+            // No reload if display landscape
+            if (DisplayIsLandscape())
+                {
+                needed = EFalse;
+                }
+            break;
+            
+        case ENone:
+        default:
+            // Reload
+            break;
+        }
+
+    return needed;
+    }
+
+    
+// Returns ETrue if display in landscape
+TBool CBmpAnimScrPlugin::DisplayIsLandscape()
+    {
+    // Should actually check the rotation and stuff, but what the hey...
+    return (iDi.iRect.Width() > iDi.iRect.Height());
+    }
+
+
+// Returns ETrue if graphics should be rotated
+TBool CBmpAnimScrPlugin::RotateNeeded()
+    {
+    // Rotate needed, if only portrait graphics are used, and
+    // display is landscape
+    return ((!iSettings->UseLandscape()) && (DisplayIsLandscape()));
+    }
+
+
+// Returns ETrue if landscape graphics should be loaded
+TBool CBmpAnimScrPlugin::LoadLandscape()
+    {
+    // Landscape, if only available and display is landscape
+    return ((iSettings->UseLandscape()) && (DisplayIsLandscape()));
+    }
+    
+    
+// Updates the saved information about display
+void CBmpAnimScrPlugin::UpdateDisplayInfo()
+    {
+    iDi.iSize = sizeof(TScreensaverDisplayInfo);
+    iHost->DisplayInfo(&iDi);
+    }
+
+#if 0
+// Rotates and scales a source bitmap into target bitmap (non-leaving wrapper)
+TInt CBmpAnimScrPlugin::SetSizeAndRotation(
+    CFbsBitmap* aBmp, TSize aSize, TInt aAngle)
+    {
+    // Anything to do?
+    if ((aBmp) && (aBmp->SizeInPixels() == aSize) && ((aAngle % 360) == 0))
+        {
+        // Duh, the bitmap is already as requested
+        return KErrNone;
+        }
+
+    // Call the actual workhorse
+    TRAPD(err, SetSizeAndRotationL(aBmp, aSize, aAngle));
+
+    return err;
+    }
+
+
+// Rotates and scales a source bitmap into target bitmap (leaving version)
+void CBmpAnimScrPlugin::SetSizeAndRotationL(
+    CFbsBitmap* aBmp, TSize aSize, TInt aAngle)
+    {
+    // Make a copy of the source bitmap, and use the original source as target
+    CFbsBitmap* tmpBmp = new (ELeave) CFbsBitmap;
+    CleanupStack::PushL(tmpBmp);
+
+    User::LeaveIfError(tmpBmp->Duplicate(aBmp->Handle()));
+    
+    // Discard original bitmap
+    aBmp->Reset();
+
+    // Create new target bitmap in the original object
+    User::LeaveIfError(aBmp->Create(aSize, tmpBmp->DisplayMode()));
+
+    // Let the workhorse do its work
+    RotateAndScaleBitmapL(TRect(aSize), aBmp, tmpBmp, aAngle);
+
+    // Not interested in original anymore
+    CleanupStack::PopAndDestroy(tmpBmp);
+    }
+    
+
+// Rotates and scales a source bitmap into target bitmap
+void CBmpAnimScrPlugin::RotateAndScaleBitmapL(
+    const TRect& aTrgRect,
+    CFbsBitmap* aTrgBitmap, 
+    CFbsBitmap* aSrcBitmap,
+    TInt aAngle)
+    {
+    aAngle = aAngle % 360;
+    if (aAngle < 0)
+        {
+        aAngle+=360;
+        }
+
+    if (!aSrcBitmap) User::Leave(KErrArgument);
+    if (!aTrgBitmap) User::Leave(KErrArgument);
+    if (aSrcBitmap->DisplayMode() != aTrgBitmap->DisplayMode()) 
+        User::Leave(KErrArgument);
+    
+    TSize trgBitmapSize = aTrgBitmap->SizeInPixels();
+    if ((trgBitmapSize.iHeight < aTrgRect.iBr.iY) ||
+        (trgBitmapSize.iWidth < aTrgRect.iBr.iX))
+        {
+        User::Leave(KErrArgument);
+        }
+
+    if (aTrgRect.IsEmpty())
+        return;
+
+    TSize srcSize = aSrcBitmap->SizeInPixels();
+
+    TInt centerX = srcSize.iWidth / 2;
+    TInt centerY = srcSize.iHeight / 2;
+
+    TInt trgWidth = aTrgRect.Width();
+    TInt trgHeight = aTrgRect.Height();
+    
+    TInt scalefactor = 65536;
+    TInt xscalefactor = (srcSize.iWidth << 16) / trgWidth;
+    TInt yscalefactor = (srcSize.iHeight << 16) / trgHeight;
+
+    // Check if rotating 90 left or right, no need to scale
+    if (((aAngle == 270) || (aAngle == 90)) &&
+        (srcSize.iWidth == trgHeight) &&
+        (srcSize.iHeight == trgWidth))
+            {
+            scalefactor = 65535;
+            }
+        else
+            {
+            if (xscalefactor < yscalefactor)
+                {
+                scalefactor = yscalefactor;
+                }
+            else
+                {
+                scalefactor = xscalefactor;
+                }
+            }
+    
+        TBool srcTemporary = EFalse;
+        TBool hardMask = EFalse;
+        if (aSrcBitmap->IsRomBitmap())
+            {
+            srcTemporary = ETrue;
+            }
+        if (aSrcBitmap->IsCompressedInRAM())
+            {
+            srcTemporary = ETrue;
+            }
+
+        TBool fallbackOnly = EFalse;
+        TDisplayMode displayMode = aSrcBitmap->DisplayMode();
+        TUint8 fillColor = 0;
+        
+        switch(displayMode)
+            {
+            case EGray2:
+                srcTemporary = ETrue;
+                hardMask = ETrue;
+                fillColor = 0xff; // white
+                break;
+            case EGray4:
+            case EGray16:
+            case EColor16:
+            case EColor16M:
+            case ERgb:
+                fallbackOnly = ETrue;
+                break;
+            case EColor256:
+                fillColor = 0xff; // should be black in our indexed palette....
+            case EGray256:
+            case EColor4K:
+            case EColor64K:
+
+            case EColor16MU:
+            // These are the supported modes
+                break;
+            default:
+                fallbackOnly = ETrue;
+            }
+
+        if (fallbackOnly)
+            {
+            // Color mode not supported
+            User::Leave(KErrNotSupported);
+            }
+
+        CFbsBitmap* realSource = aSrcBitmap;
+        CFbsBitmap* realTarget = aTrgBitmap;
+        if (srcTemporary)
+            {
+            realSource = new (ELeave) CFbsBitmap();
+            CleanupStack::PushL(realSource);
+            if (hardMask)
+                {
+                realTarget = new (ELeave) CFbsBitmap();
+                CleanupStack::PushL(realTarget);
+                User::LeaveIfError(realSource->Create(srcSize, EGray256));
+                displayMode = EGray256;
+                User::LeaveIfError(realTarget->Create(
+                    aTrgBitmap->SizeInPixels(), EGray256));
+                }
+            else
+                {
+                User::LeaveIfError(realSource->Create(
+                    srcSize, aSrcBitmap->DisplayMode()));
+                }
+
+            CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL(realSource);
+            CleanupStack::PushL(dev);
+            CFbsBitGc* gc = NULL;
+            User::LeaveIfError(dev->CreateContext(gc));
+            CleanupStack::PushL(gc);
+            gc->BitBlt(TPoint(0,0), aSrcBitmap);
+            CleanupStack::PopAndDestroy(2); // dev, gc
+            }
+
+        // Heap lock for FBServ large chunk is only needed with large bitmaps.
+        if (realSource->IsLargeBitmap() || realTarget->IsLargeBitmap())
+            {
+            realTarget->LockHeapLC(ETrue); // fbsheaplock
+            }
+        else
+            {
+            // Bogus push so we can pop() anyway
+            CleanupStack::PushL((TAny*)NULL);
+            }
+
+        TUint32* srcAddress = realSource->DataAddress();
+        TUint32* trgAddress = realTarget->DataAddress();
+
+        TReal realsin;
+        TReal realcos;
+        TInt sin;
+        TInt cos;
+
+        User::LeaveIfError(Math::Sin(realsin, ((2*KPi)/360) * aAngle));
+        User::LeaveIfError(Math::Cos(realcos, ((2*KPi)/360) * aAngle));
+
+        sin = ((TInt)(realsin * scalefactor));
+        cos = ((TInt)(realcos * scalefactor));
+
+        TInt xx = ((trgWidth)/2) - ((srcSize.iWidth/2) - centerX);
+        TInt yy = ((trgHeight)/2) - ((srcSize.iHeight/2) - centerY);
+
+        TInt x = 0;
+        TInt y = 0;
+        TInt u = 0;
+        TInt v = 0;
+
+        if( (displayMode==EGray256) || (displayMode==EColor256) )
+            {
+            TInt srcScanLen8 = CFbsBitmap::ScanLineLength(
+                srcSize.iWidth, displayMode);
+            TInt trgScanLen8 = CFbsBitmap::ScanLineLength(
+                trgBitmapSize.iWidth, displayMode);
+            TUint8* srcAddr8 = reinterpret_cast<TUint8*>(srcAddress);
+            TUint8* trgAddr8 = reinterpret_cast<TUint8*>(trgAddress);
+
+            // skip left and top margins in the beginning
+            trgAddr8 += trgScanLen8 * aTrgRect.iTl.iY + aTrgRect.iTl.iX;
+
+            for (y = 0; y < trgHeight; y++)
+                {
+                u = (-xx) * cos + (y-yy) * sin + (centerX<<16);
+                v = (y-yy) * cos - (-xx) * sin + (centerY<<16);
+                for (x = 0; x < trgWidth; x++)
+                    {
+                    if (((u>>16)>=srcSize.iWidth) ||
+                         ((v>>16)>=srcSize.iHeight) ||
+                         ((u>>16)<0) ||
+                         ((v>>16)<0)) 
+                        {
+                        *trgAddr8++ = fillColor;
+                        }
+                    else
+                        {            	
+                        *trgAddr8++ = srcAddr8[(u>>16)+(((v>>16))*srcScanLen8)];
+                        }
+                    u += cos;
+                    v -= sin;
+                    }
+                trgAddr8 += trgScanLen8 - trgWidth;
+                }
+            }
+        else if( displayMode == EColor64K || displayMode == EColor4K)
+            {
+            TInt srcScanLen16 = CFbsBitmap::ScanLineLength(
+                srcSize.iWidth, displayMode) / 2;
+            TInt trgScanLen16 = CFbsBitmap::ScanLineLength(
+                trgBitmapSize.iWidth, displayMode) / 2;
+            TUint16* srcAddr16 = reinterpret_cast<TUint16*>(srcAddress);
+            TUint16* trgAddr16 = reinterpret_cast<TUint16*>(trgAddress);
+
+            // skip left and top margins in the beginning
+            trgAddr16 += trgScanLen16 * aTrgRect.iTl.iY + aTrgRect.iTl.iX;
+
+            for (y = 0; y < trgHeight; y++)
+                {
+                u = (-xx) * cos + (y-yy) * sin + (centerX<<16);
+                v = (y-yy) * cos - (-xx) * sin + (centerY<<16);
+                for (x = 0; x < trgWidth; x++)
+                    {
+                    if (((u>>16)>=srcSize.iWidth) ||
+                        ((v>>16)>=srcSize.iHeight) ||
+                        ((u>>16)<0) ||
+                        ((v>>16)<0)) 
+                        {
+                        *trgAddr16++ = 0;
+                        }
+                    else
+                        {
+                        *trgAddr16++ =
+                            srcAddr16[(u>>16)+(((v>>16))*srcScanLen16)];
+                        }
+                    u += cos;
+                    v -= sin;
+                    }
+                trgAddr16 += trgScanLen16 - trgWidth;
+                }        
+            }
+        else if(displayMode == EColor16MU)
+            {
+            TInt srcScanLen32 = CFbsBitmap::ScanLineLength(
+                srcSize.iWidth, displayMode) / 4;
+            TInt trgScanLen32 = CFbsBitmap::ScanLineLength(
+                trgBitmapSize.iWidth, displayMode) / 4;
+            TUint32* srcAddr32 = srcAddress;
+            TUint32* trgAddr32 = trgAddress;
+
+            // skip left and top margins in the beginning
+            trgAddr32 += trgScanLen32 * aTrgRect.iTl.iY + aTrgRect.iTl.iX;
+
+            for (y = 0; y < trgHeight; y++)
+                {
+                u = (-xx) * cos + (y-yy) * sin + (centerX<<16);
+                v = (y-yy) * cos - (-xx) * sin + (centerY<<16);
+                for (x = 0; x < trgWidth; x++)
+                    {
+                    if (((u>>16)>=srcSize.iWidth) ||
+                        ((v>>16)>=srcSize.iHeight) ||
+                        ((u>>16)<0) ||
+                        ((v>>16)<0)) 
+                        {
+                        *trgAddr32++ = 0;
+                        }
+                    else
+                        {
+                        *trgAddr32++ =
+                            srcAddr32[(u>>16)+(((v>>16))*srcScanLen32)];
+                        } 
+                    u += cos;
+                    v -= sin;
+                    }
+                trgAddr32 += trgScanLen32 - trgWidth;
+                }
+            }
+        else
+            {
+            // Display mode not supported - but this should've been caught
+            // already earlier
+            User::Leave(KErrUnknown);
+            }
+
+        CleanupStack::PopAndDestroy(); // fbsheaplock
+
+        if (srcTemporary)
+            {
+            if (hardMask)
+                {
+                CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL(aTrgBitmap);
+                CleanupStack::PushL(dev);
+                CFbsBitGc* gc = NULL;
+                User::LeaveIfError(dev->CreateContext(gc));
+                CleanupStack::PushL(gc);  
+                gc->BitBlt(TPoint(0,0), realTarget);
+                CleanupStack::PopAndDestroy(3); // dev, gc, realtarget
+                }
+            CleanupStack::PopAndDestroy(); // realSource
+            }
+        }
+#endif
+    
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/src/CBmpAnimSettings.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,320 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Loads and stores the bitmap animator settings
+*
+*/
+
+
+
+
+
+#include <e32std.h>
+
+#include "CBmpAnimSettings.h"
+
+#include "BmpAnimUtils.h"
+#include <f32file.h>
+
+// Defaults
+const TInt KRunningTime = 1000000 * 60;  // 60 secs
+const TInt KTiming = 200000;  // 5 fps 
+const TInt KSuspendTime = -1; // Max = KMaxTInt, -1 = indefinitely
+const TInt KUndefined = -1;
+
+// Configuration file name
+_LIT(KIniFile, "BmpAnimScrPlugin.ini");
+
+// Default bitmap file name
+_LIT(KMbmFileName, "BmpAnimScrPlugin.mbm");
+
+// Default bitmap file name - lansdscape
+_LIT(KMbmFileNameL, "BmpAnimScrPluginL.mbm");
+
+// Basic info section name
+_LIT8(KIniSectionInfo, "info");
+
+// Info section keys
+_LIT8(KIniKeyName, "name");  // plugin name
+_LIT8(KIniKeyNumImages, "numimages");  // number of images
+_LIT8(KIniKeyMbmFile, "mbmfile");  // name of imagefile
+_LIT8(KIniKeyMbmFileL, "mbmfilelandscape");  // name of landscape imagefile
+_LIT8(KIniKeyRunningTime, "runningtime");  // time to run animation (in millis)
+_LIT8(KIniKeyLoopCount, "loopcount");  // loop count (if time is not defined)
+_LIT8(KIniKeySuspendTime, "suspendtime");  // time to suspend (in millis)
+_LIT8(KIniKeyTiming, "timing");  // time to display each image (RE-USED BELOW)
+_LIT8(KIniKeyLights, "lights");  // lights on for 5 secs. Over 5 = number of secs
+_LIT8(KIniKeyUseLandscape, "uselandscape");  // 1 = landscape image file used
+_LIT8(KIniKeyScaleBmps, "scalebmps");  // 1 = bitmaps scaled to screen size
+
+// Image section base name
+_LIT8(KIniSectionImageBase, "image");  // image information section name
+
+// Image section keys
+_LIT8(KIniKeyType, "type");  // 0 = background, 1 = bitmap, 2 = icon
+_LIT8(KIniKeyIndex, "index");  // index of image in mbm
+_LIT8(KIniKeyMaskIndex, "maskindex");  // index of icon mask in mbm
+_LIT8(KIniKeyFile, "file");  // name of image file (not yet supported)
+_LIT8(KIniKeyPosX, "posx");  // display position X
+_LIT8(KIniKeyPosY, "posy");  // display position Y
+// _LIT8(KIniKeyTiming, "timing");  // time to display this image (NOTE RE-USE!)
+
+
+// User constructor
+CBmpAnimSettings* CBmpAnimSettings::NewL()
+    {
+    CBmpAnimSettings* self = new(ELeave) CBmpAnimSettings();
+    
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+    
+    return self;
+    }
+
+    
+// C'tor, sets defaults
+CBmpAnimSettings::CBmpAnimSettings()
+    : iRunningTime(KRunningTime),
+      iLoopCount(KUndefined),
+      iSuspendTime(KSuspendTime),
+      iTiming(KTiming),
+      iPluginName(KPluginName),
+      iMbmFileName(KMbmFileName),
+      iMbmFileNameL(KMbmFileNameL),
+      iLights(KUndefined),
+      iUseLandscape(0),
+      iScaleBmps(0)
+    {
+    }
+
+
+// Two-phase constructor
+void CBmpAnimSettings::ConstructL()
+    {
+    // Try to open the settings file
+    if (OpenSettings() == KErrNone)
+        {
+        LoadSettingsL();
+        }
+    }
+
+    
+// D'tor
+CBmpAnimSettings::~CBmpAnimSettings()
+    {
+    delete iIniData;
+    }
+
+
+// --- Access functions ---
+    
+    
+// Loads (common) settings from the settings file
+TBool CBmpAnimSettings::LoadSettingsL()
+    {
+    // Sanity check
+    if (!iIniData)
+        {
+        return EFalse;
+        }
+
+    // Running time (never mind the section)
+    if (!(iIniData->FindVar(KIniKeyRunningTime, iRunningTime)))
+        {
+        // Running time not found - try loop count
+        if (!(iIniData->FindVar(KIniKeyLoopCount, iLoopCount)))
+            {
+            // That's not there either - use default running time
+            iRunningTime = KRunningTime;
+            }
+        else
+            {
+            // Loop count found - running time is undefined
+            iRunningTime = KUndefined;
+            }
+        }
+
+    // Suspend time
+    if (!(iIniData->FindVar(KIniKeySuspendTime, iSuspendTime)))
+        {
+        iSuspendTime = KSuspendTime;  // TODO: KUndefined
+        }
+
+    // Default timing (need to use section as well)
+    if (!(iIniData->FindVar(
+              KIniSectionInfo,
+              KIniKeyTiming,
+              iTiming)))
+        {
+        iTiming = KTiming;
+        }
+
+    // Lights time
+    if (!(iIniData->FindVar(KIniKeyLights, iLights)))
+        {
+        iLights = KUndefined;
+        }
+
+    // Use landscape
+    if (!(iIniData->FindVar(KIniKeyUseLandscape, iUseLandscape)))
+        {
+        iUseLandscape = 0;
+        }
+
+    // Scale bmps
+    if (!(iIniData->FindVar(KIniKeyScaleBmps, iScaleBmps)))
+        {
+        iScaleBmps = 0;
+        }
+
+    // Plugin name
+    iPluginName = KNullDesC;
+    if ((!(iIniData->FindVar(KIniKeyName, iPluginName))) ||
+        (iPluginName.Length() <= 0))
+        {
+        // Not found, or empty setting - use default
+        iPluginName = KPluginName;
+        }
+
+    // Load BMP file names
+    LoadBitmapFileName();
+    LoadBitmapFileName(ETrue);
+    
+    BMALOGGER_WRITEF(_L("BMA: Detected settings:"));
+    BMALOGGER_WRITEF(_L(" Name: %S"), &iPluginName);
+    BMALOGGER_WRITEF(_L(" Run for: %d"), RunningTime());
+    BMALOGGER_WRITEF(_L(" Loops: %d"), LoopCount());
+    BMALOGGER_WRITEF(_L(" Suspend: %d"), SuspendTime());
+    BMALOGGER_WRITEF(_L(" Timing: %d"), Timing());
+    BMALOGGER_WRITEF(_L(" Lights: %d"), Lights());
+    BMALOGGER_WRITEF(_L(" Bitmap file: %S"), &iMbmFileName);
+    BMALOGGER_WRITEF(_L(" Lanscape bitmap file: %S"), &iMbmFileNameL);
+    BMALOGGER_WRITEF(_L(" Use landscape: %d"), UseLandscape());
+    BMALOGGER_WRITEF(_L(" Scale bmps: %d"), ScaleBmps());
+    BMALOGGER_WRITEF(_L("BMA: End settings"));
+
+    return ETrue;
+    }
+
+
+// Saves (common) settings
+TBool CBmpAnimSettings::SaveSettingsL()
+    {
+    // Sanity check
+    if (!iIniData)
+        {
+        return EFalse;
+        }
+
+    // Write lights
+    if (iIniData->WriteVarL(
+            KIniSectionInfo, KIniKeyLights, iLights) == KErrNone)
+        {
+        iIniData->CommitL();
+        }
+
+    return ETrue;
+    }
+    
+// --- private ---
+
+    
+// Opens the settings file (initialises the settings reader)
+TInt CBmpAnimSettings::OpenSettings()
+    {
+    // Locate the dll path
+    TFileName dllName;
+//    Dll::FileName(dllName);
+    dllName.Append(_L("\\resource\\plugins\\"));
+
+    // Combine the dll path with the settings file name
+    TParse p;
+    p.SetNoWild(KIniFile, &dllName, NULL);
+
+    BMALOGGER_WRITEF(_L("Searching INI: %S"), &(p.FullName()));
+
+    // Try to open the INI file from plugin directory
+    TRAPD(err, iIniData = CBmpAnimIniData::NewL(p.FullName()));
+
+    if (err != KErrNone)
+        {
+        BMALOGGER_WRITE("INI not in plugin dir, trying \\system\\data");
+        // Try \system\data instead
+        TRAP(err, iIniData = CBmpAnimIniData::NewL(KIniFile));
+        }
+    
+    if (err != KErrNone)
+        {
+        // Make sure the settings are not attempted to be used
+        delete iIniData;
+        iIniData = NULL;
+        BMALOGGER_WRITE("INI not found");
+        }
+    else
+        {
+        BMALOGGER_WRITE("INI found");
+        }
+
+    return err;
+    }
+
+
+// Gets the bitmap file name from settings, or uses default
+void CBmpAnimSettings::LoadBitmapFileName(TBool aLandscape)
+    {
+    // Get the DLL path name. The path is used, if only a file name
+    // is specified.
+    TFileName dllName;
+    Dll::FileName(dllName);
+    
+    // Get whatever's in the settings
+	TFileName fileName;
+    TBool res = ETrue;
+    if (aLandscape)
+        {
+        res = iIniData->FindVar(KIniKeyMbmFileL, fileName);
+        }
+    else
+        {
+        res = iIniData->FindVar(KIniKeyMbmFile, fileName);
+        }
+    
+    if (!res)
+        {
+        // Not found - use the default name with the plugin directory
+        // there's really no need to do anything here (I think)
+        fileName = (_L("\\resource\\plugins\\"));
+        }
+
+    // The combination order should be:
+    // 1. use whatever was defined in the settings (part or full path)
+    // 2. use the default name part
+    // 3. use the DLL path, if no path parts have yet been defined
+    TParse p;
+    if (p.SetNoWild(fileName,
+                    aLandscape ? &KMbmFileNameL : &KMbmFileName,
+                    &dllName) == KErrNone)
+        {
+        if (aLandscape)
+            {
+            iMbmFileNameL = p.FullName();
+            }
+        else
+            {
+            iMbmFileName = p.FullName();
+            }
+        }
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/animation.mk	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,72 @@
+#
+# Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:     Bitmap animation plugin animation makefile
+#
+
+include bitmaps.mk
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=\epoc32\data\z
+endif
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these
+# ----------------------------------------------------------------------------
+
+TARGETDIR=$(ZDIR)\resource\plugins
+ICONTARGETFILENAME=$(TARGETDIR)\bmpanimscrplugin.mif
+
+HEADERDIR=\epoc32\include
+HEADERFILENAME=$(HEADERDIR)\bmpanimscrplugin.mbg
+
+do_nothing :
+	@rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these.
+#
+# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
+# MifConv if the mask detph is defined.
+#
+# NOTE 2: Usually, source paths should not be included in the bitmap
+# definitions. MifConv searches for the icons in all icon directories in a
+# predefined order, which is currently \s60\icons, \s60\bitmaps2, \s60\bitmaps.
+# The directory \s60\icons is included in the search only if the feature flag
+# __SCALABLE_ICONS is defined.
+# ----------------------------------------------------------------------------
+
+RESOURCE :
+	mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) $(ANIMBITMAPS)
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+	@echo $(HEADERFILENAME)&& \
+	@echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.mk	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,51 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: The bitmap files will be used int bitmap animation plugin 
+#
+
+# Do not change the ANIMBITMAPS variable name, remember to
+# add line continuation marks (backslash) until the last line.
+# NOTE that rotation (portrait graphics used in landscape) supports 
+# only color modes c1, c8, c16, c32
+
+BMPDIR = s60
+
+ANIMBITMAPS = \
+/c16 $(BMPDIR)\BmpAnim01.bmp \
+/c16 $(BMPDIR)\BmpAnim02.bmp \
+/c16 $(BMPDIR)\BmpAnim03.bmp \
+/c16 $(BMPDIR)\BmpAnim04.bmp \
+/c16 $(BMPDIR)\BmpAnim05.bmp \
+/c16 $(BMPDIR)\BmpAnim06.bmp \
+/c16 $(BMPDIR)\BmpAnim07.bmp \
+/c16 $(BMPDIR)\BmpAnim08.bmp \
+/c16 $(BMPDIR)\BmpAnim09.bmp \
+/c16 $(BMPDIR)\BmpAnim10.bmp \
+/c16 $(BMPDIR)\BmpAnim11.bmp \
+/c16 $(BMPDIR)\BmpAnim12.bmp \
+/c16 $(BMPDIR)\BmpAnim13.bmp \
+/c16 $(BMPDIR)\BmpAnim14.bmp \
+/c16 $(BMPDIR)\BmpAnim15.bmp \
+/c16 $(BMPDIR)\BmpAnim16.bmp \
+/c16 $(BMPDIR)\BmpAnim17.bmp \
+/c16 $(BMPDIR)\BmpAnim18.bmp \
+/c16 $(BMPDIR)\BmpAnim19.bmp \
+/c16 $(BMPDIR)\BmpAnim20.bmp \
+/c16 $(BMPDIR)\BmpAnim21.bmp \
+/c16 $(BMPDIR)\BmpAnim22.bmp \
+/c16 $(BMPDIR)\BmpAnim23.bmp \
+/c16 $(BMPDIR)\BmpAnim24.bmp \
+/c16 $(BMPDIR)\BmpAnim25.bmp \
+/c16 $(BMPDIR)\BmpAnim26.bmp \
+/c16 $(BMPDIR)\BmpAnim27.bmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.s60.mk	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,51 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: The bitmap files will be used int bitmap animation plugin
+#
+
+# Do not change the ANIMBITMAPS variable name, remember to
+# add line continuation marks (backslash) until the last line.
+# NOTE that rotation (portrait graphics used in landscape) supports 
+# only color modes c1, c8, c16, c32
+
+BMPDIR = s60
+
+ANIMBITMAPS = \
+/c16 $(BMPDIR)\BmpAnim01.bmp \
+/c16 $(BMPDIR)\BmpAnim02.bmp \
+/c16 $(BMPDIR)\BmpAnim03.bmp \
+/c16 $(BMPDIR)\BmpAnim04.bmp \
+/c16 $(BMPDIR)\BmpAnim05.bmp \
+/c16 $(BMPDIR)\BmpAnim06.bmp \
+/c16 $(BMPDIR)\BmpAnim07.bmp \
+/c16 $(BMPDIR)\BmpAnim08.bmp \
+/c16 $(BMPDIR)\BmpAnim09.bmp \
+/c16 $(BMPDIR)\BmpAnim10.bmp \
+/c16 $(BMPDIR)\BmpAnim11.bmp \
+/c16 $(BMPDIR)\BmpAnim12.bmp \
+/c16 $(BMPDIR)\BmpAnim13.bmp \
+/c16 $(BMPDIR)\BmpAnim14.bmp \
+/c16 $(BMPDIR)\BmpAnim15.bmp \
+/c16 $(BMPDIR)\BmpAnim16.bmp \
+/c16 $(BMPDIR)\BmpAnim17.bmp \
+/c16 $(BMPDIR)\BmpAnim18.bmp \
+/c16 $(BMPDIR)\BmpAnim19.bmp \
+/c16 $(BMPDIR)\BmpAnim20.bmp \
+/c16 $(BMPDIR)\BmpAnim21.bmp \
+/c16 $(BMPDIR)\BmpAnim22.bmp \
+/c16 $(BMPDIR)\BmpAnim23.bmp \
+/c16 $(BMPDIR)\BmpAnim24.bmp \
+/c16 $(BMPDIR)\BmpAnim25.bmp \
+/c16 $(BMPDIR)\BmpAnim26.bmp \
+/c16 $(BMPDIR)\BmpAnim27.bmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.series60.mk	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: The bitmap files will be used int bitmap animation plugin
+#
+
+# First image MUST be named BmpAnim_first, and 
+# last image BmpAnim_last. Middle ones don't matter. 
+# Do not change the ANIMBITMAPS variable name, remember to
+# add line continuation marks (backslash) until the last line.
+
+# NOTE that rotation (portrait graphics used in landscape) supports only color
+# modes c1, c8, c16, c32
+
+BMPDIR = series60
+
+ANIMBITMAPS = \
+/c16 $(BMPDIR)\SS10000.bmp \
+/c16 $(BMPDIR)\SS10001.bmp \
+/c16 $(BMPDIR)\SS10002.bmp \
+/c16 $(BMPDIR)\SS10003.bmp \
+/c16 $(BMPDIR)\SS10004.bmp \
+/c16 $(BMPDIR)\SS10005.bmp \
+/c16 $(BMPDIR)\SS10006.bmp \
+/c16 $(BMPDIR)\SS10007.bmp \
+/c16 $(BMPDIR)\SS10008.bmp \
+/c16 $(BMPDIR)\SS10009.bmp \
+/c16 $(BMPDIR)\SS10010.bmp \
+/c16 $(BMPDIR)\SS10011.bmp \
+/c16 $(BMPDIR)\SS10012.bmp \
+/c16 $(BMPDIR)\SS10013.bmp \
+/c16 $(BMPDIR)\SS10014.bmp \
+/c16 $(BMPDIR)\SS10015.bmp \
+/c16 $(BMPDIR)\SS10016.bmp \
+/c16 $(BMPDIR)\SS10017.bmp \
+/c16 $(BMPDIR)\SS10018.bmp \
+/c16 $(BMPDIR)\SS10019.bmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/bitmaps.series60_lowcolor.mk	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: The bitmap files will be used int bitmap animation plugin
+#
+
+# First image MUST be named BmpAnim_first, and 
+# last image BmpAnim_last. Middle ones don't matter. 
+# Do not change the ANIMBITMAPS variable name, remember to
+# add line continuation marks (backslash) until the last line.
+BMPDIR = series60
+
+ANIMBITMAPS = \
+/c4 $(BMPDIR)\SS10000.bmp \
+/c4 $(BMPDIR)\SS10001.bmp \
+/c4 $(BMPDIR)\SS10002.bmp \
+/c4 $(BMPDIR)\SS10003.bmp \
+/c4 $(BMPDIR)\SS10004.bmp \
+/c4 $(BMPDIR)\SS10005.bmp \
+/c4 $(BMPDIR)\SS10006.bmp \
+/c4 $(BMPDIR)\SS10007.bmp \
+/c4 $(BMPDIR)\SS10008.bmp \
+/c4 $(BMPDIR)\SS10009.bmp \
+/c4 $(BMPDIR)\SS10010.bmp \
+/c4 $(BMPDIR)\SS10011.bmp \
+/c4 $(BMPDIR)\SS10012.bmp \
+/c4 $(BMPDIR)\SS10013.bmp \
+/c4 $(BMPDIR)\SS10014.bmp \
+/c4 $(BMPDIR)\SS10015.bmp \
+/c4 $(BMPDIR)\SS10016.bmp \
+/c4 $(BMPDIR)\SS10017.bmp \
+/c4 $(BMPDIR)\SS10018.bmp \
+/c4 $(BMPDIR)\SS10019.bmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim01.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:32:55Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q==
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:03:52Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q==</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim02.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:23:39Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:03:44Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x30_2">
+			<g opacity="0.3">
+				<polygon fill="#FFCC00" points="145.002,104.102 112.421,121.947 149.582,139.471 180.031,118.835 "/>
+				<polygon fill="#FF9900" points="112.421,121.947 116.345,163.209 151.221,181.376 149.582,139.471 "/>
+				
+					<linearGradient id="XMLID_146_" gradientUnits="userSpaceOnUse" x1="-6.1548" y1="435.9668" x2="28.7212" y2="435.9668" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_146_)" points="116.345,163.209 151.221,181.376 149.582,139.471 "/>
+				<polygon fill="#F27C0E" points="180.031,118.835 149.582,139.471 151.221,181.376 180.031,160.096 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim03.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:23:58Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q==
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:03:37Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX//2Q==</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x30_3">
+			<g opacity="0">
+				<polygon fill="#FFCC00" points="145.002,104.102 112.421,121.947 149.582,139.471 180.031,118.835 "/>
+				<polygon fill="#FF9900" points="112.421,121.947 116.345,163.209 151.221,181.376 149.582,139.471 "/>
+				
+					<linearGradient id="XMLID_144_" gradientUnits="userSpaceOnUse" x1="-6.1548" y1="435.9668" x2="28.7212" y2="435.9668" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_144_)" points="116.345,163.209 151.221,181.376 149.582,139.471 "/>
+				<polygon fill="#F27C0E" points="180.031,118.835 149.582,139.471 151.221,181.376 180.031,160.096 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim04.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:25:01Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVOW4jj6mrfyjrlGbUwx8+bOMCVJL5
+CaOOPv1zGx9oRP1CmZwnoiFdWFVII9szozEhYNtRFN5JDsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdiqySWOMVY08B3yrJmjAbllGJPJBy3rtsnwr+OavNrpS2
+jsG+OIDmh8wm12KtqzKaqSD7ZKMzE2DSkWiY75xs45DxGxzOxa+Q+oW0ywjoioZo5VLIagGh9jmy
+x5BMWGmUTHmvyxi7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqk
+987peSUO2xofkM02rj+8Ln4QDALEmU9djmIYsjAqmRYOxVpmVRVjQYQLSBaDmumbZPhXx7nL44wO
+bbGCaaH/ALyP/wAZD+oZtNJ9PxcTVfV8EwzKcZ2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
+xV2KuxV2KuxV2KuxV2KuxVKNVFLqvioP6xmq1o9fwc/TH0oLMRvXLIy9D9GAi0EAqjXXFK8d+3hg
+GOyw4EJJI7mrGvgMvEQG0ClmFKeaH/vI/wDxkP6hmw0n0/FwNV9XwTDMpxnYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUr1cfvYz4qR9xzW64eoFzNKdigACdhmC5S
+8R03PXwyXCx4lKf7I+eGPNlFQybJ2Kp5of8AvI//ABkP6hmw0n0/FwNV9XwTDMpxnYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUDqkLSCIjsTU/OmYWtgTTk6eVWgx
+GqDbr3OYYjTeZWsbIFkFCf7OCPNmEPk2bYBJAAqT0AwgIZBpdvLBbFZBRmYtTwBAG/3ZstPAxju6
+7PMSlsi8vaXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXEAih6
+YqhprJHqUPFvDtmNk0wPLZujlI5pfPBLEfjWg7HtmBkxyjzcmEweSEn+zlQ5twWW9tNcPwjWview
++eXQxmRoLOYiLKe2Wnw2wr9qXu5/hmxxYRD3uBlzGXuRWXNLsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVcQGFCKg9QcBFqCgp9KgkIKkoK/EBv91emYstJ
+Emxs5EdQQioYYoUCRqFUZkxiIig0ykZGyvyTF2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
+V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
+2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
+uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
+xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
+V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
+2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
+uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
+xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
+V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
+2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
+uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
+xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
+V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//Z
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:03:31Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x30_4">
+			<g opacity="0.3">
+				<polygon fill="#FFCC00" points="145.002,104.102 112.421,121.947 149.582,139.471 180.031,118.835 "/>
+				<polygon fill="#FF9900" points="112.421,121.947 116.345,163.209 151.221,181.376 149.582,139.471 "/>
+				
+					<linearGradient id="XMLID_142_" gradientUnits="userSpaceOnUse" x1="-6.1548" y1="435.9668" x2="28.7212" y2="435.9668" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_142_)" points="116.345,163.209 151.221,181.376 149.582,139.471 "/>
+				<polygon fill="#F27C0E" points="180.031,118.835 149.582,139.471 151.221,181.376 180.031,160.096 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim05.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:25:35Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FX/2Q==
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:03:27Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FX/2Q==</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x30_5">
+			<g opacity="0.6">
+				<polygon fill="#FFCC00" points="145.002,104.102 112.421,121.947 149.582,139.471 180.031,118.835 "/>
+				<polygon fill="#FF9900" points="112.421,121.947 116.345,163.209 151.221,181.376 149.582,139.471 "/>
+				
+					<linearGradient id="XMLID_140_" gradientUnits="userSpaceOnUse" x1="-6.1548" y1="435.9668" x2="28.7212" y2="435.9668" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_140_)" points="116.345,163.209 151.221,181.376 149.582,139.471 "/>
+				<polygon fill="#F27C0E" points="180.031,118.835 149.582,139.471 151.221,181.376 180.031,160.096 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim06.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:25:56Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVG7vbW0j9S4kEa9q9T8h1OYms12HT
+Q4sshEfjkOrZjxSmaiLSy382aXLKUfnCK0V3Gx+dK0zQab2v0mSfDLih3Ejb7LpzJ9m5Iixum8cs
+cqB43DoejKQQfpGdNiywyR4oESieo3cCUSDRXZYh2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
+KuxV2KuxV2KuxV2KuxV2KuxV2KuxVZNNDDGZJnEaDqzGgyrNnhiiZTIjEdSyjAyNAWWOal5vArHY
+LU/7+cbf7Ff65w/antkB6dMP84/oH6/k7XB2Z1n8mNz3E9xIZZ5GkkPVmNc4TUanJmlx5JGUu8u3
+hCMRQFBTylkrWt7d2r87eVoz3odj8x0OZWl12bTy4sUjE+X6RyLXkxRmKkLT+x84uKLexch/vyPY
+/SpzstB7aSG2ojf9KP6v2j3OszdljnA/NkNlqNleoWtpRJxpzUbMtelQdxnbaLtDDqocWKXEPudX
+lwTxmpCkRmY1OxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvPPP
+l/d2uuqnIvA0KOsTHYVLKaeH2c839rYGWpAJNcII+0foep7HwxnhvrZSm31K2m2J9N/5W/gc4+eC
+Q5budPBKPmi8paHYq0SFBJNANyT0xAtUh1PzIq1isviboZj0H+qO+bPT6DrP5Odh0l7yZX+UUjyQ
+6q8jFnZ4izHcnZ89C9mABGYHl+l0vtCADADuP6HoWdS827FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq88/M2Kmo2cv88JWv+q1f+Ns4L2uh+9hLvjXyP7XqewJfu5D
+zYZnIvQIi3v7mCgVuS/ytuMhLGJc2qeGMkcdctkgaSVWUr+yN6n2OUx0kpGg4p0sroMe1LWLq9JU
+n04O0Q6fT45tsGmjj5c+9zcWCMPegMyG96b+T/8AvNqf+vD+p8672Z+mfvH6XlfaP6ofH9D0POoe
+bdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVYP+Z8VYtPlp9lpV
+J/1gp/41zjPbCHpxy/rfoej9n5bzHu/SwHOHelREVm5HKT4V7DucujiPMtUso5BDaooFsQNgCP15
+bi2kzxHdJsynIdir038n/wDebU/9eH9T513sz9M/eP0vK+0f1Q+P6HoedQ827FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqxX8xLSW40m29JeUi3AFNuhRq/qGcx7VY
+TPBGufH+gu67DyiOWV8uH9IYdb6XHbjlJR5fwHyzjselENzuXfT1BlsOS2fvkciYJPqg/wBGf6P1
+jKIfWHMxc0kzLcl2KvVvyp0y+tNOu7i5haKK6aNoC2xZVDVNOtN9s7T2d084Y5SkKEqp5Dt/PCc4
+xibMbtnWdE6B2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVp40k
+QpIodG2ZWFQfoORlESFEWEgkGwx/VPKUMwZ7J/Rk6+m1Sh+R6r+OaDW9gwnviPCe7p+z7XZ6ftIx
+2mLH2sL1TTr2yfhdQtGT9kndT8mGxzj9ZpMuE1OJH473oNPnhkFxNpDqP+88nyzXw+sOxxpPa2lz
+d3CW9tE008hokaCpJzPx45TkIxFkt2TJGEeKRoB6l5S/La2sOF7q4W4vB8SW/WKM+/8AOw+759c7
+Ds3sKOOp5fVPu6D9Z+x5PtDtqWS449o9/U/qZznROgdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdiqye3guIjFPGssbdUcAg/QcryYo5I8MgCPNlCcom4miw
+7Xfy4guwTp0/1bnQNFJVlA7lT9r6D9+cxq/ZiEpCWE8Pkdx8Dz/HMO90vbko7ZBxeYTzy55V0vQb
+fhapzuHFJrpx8b/80r7DN5oezsemjUfq6nq63W6/JqJXLl0CcZnuE7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q//Z
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:03:22Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;q//Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x30_6">
+			<g>
+				<polygon fill="#FFCC00" points="146.102,105.201 113.521,123.046 150.682,140.57 181.131,119.935 "/>
+				<polygon fill="#FF9900" points="113.521,123.046 117.445,164.31 152.321,182.479 150.682,140.57 "/>
+				
+					<linearGradient id="XMLID_138_" gradientUnits="userSpaceOnUse" x1="-5.0552" y1="434.8662" x2="29.8208" y2="434.8662" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_138_)" points="117.445,164.31 152.321,182.479 150.682,140.57 "/>
+				<polygon fill="#F27C0E" points="181.131,119.935 150.682,140.57 152.321,182.479 181.131,161.195 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim07.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:26:11Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+7FX/2Q==
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:03:16Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;/9k=</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x30_7">
+			<g>
+				<polygon fill="#FFCC00" points="157.502,110.602 124.922,128.448 162.083,145.971 192.529,125.336 "/>
+				<polygon fill="#FF9900" points="124.922,128.448 128.846,169.707 163.721,187.874 162.083,145.971 "/>
+				
+					<linearGradient id="XMLID_136_" gradientUnits="userSpaceOnUse" x1="6.3462" y1="429.4688" x2="41.2212" y2="429.4688" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_136_)" points="128.846,169.707 163.721,187.874 162.083,145.971 "/>
+				<polygon fill="#F27C0E" points="192.529,125.336 162.083,145.971 163.721,187.874 192.529,166.596 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim08.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:26:27Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+ftD2YjP1YTwnuPL58x9ru9J2yY7ZBY7xzY9ov5ZXt1qDz6x/o9ojbQqwLyU91qFX365i9m+z2Q/3
+3pA6dT+xz9X25CMaxeqXf0D0qzs7WytktrWJYYIxRI0FAM7HFijjiIxFAPLZMkpy4pGyVbLGDsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
+sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
+dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
+sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
+dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
+sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
+dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVf/Z
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:03:05Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;0XZ+TUyqI26noHE1mux6eNy59B1eweW/Kml6Db8bZfUuWFJrpwObew/lX2GdzoezsemjUd5dT1eM&#xA;1vaGTUS9W0egTnM9wXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FVk0MM0ZimRZI2+0jgEH6DkMmOMxwyAI82UZmJsGixPWvIME4Mmmyei/wDviQkofk27D8c5&#xA;ftD2YjP1YTwnuPL58x9ru9J2yY7ZBY7xzY9ov5ZXt1qDz6x/o9ojbQqwLyU91qFX365i9m+z2Q/3&#xA;3pA6dT+xz9X25CMaxeqXf0D0qzs7WytktrWJYYIxRI0FAM7HFijjiIxFAPLZMkpy4pGyVbLGDsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVf/Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x30_8">
+			<g>
+				<polygon fill="#FFCC00" points="172.506,118.298 139.926,136.144 177.086,153.667 207.514,133.032 "/>
+				<polygon fill="#FF9900" points="139.926,136.144 143.85,177.421 178.725,195.591 177.086,153.667 "/>
+				
+					<linearGradient id="XMLID_134_" gradientUnits="userSpaceOnUse" x1="21.3501" y1="421.7617" x2="56.2246" y2="421.7617" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_134_)" points="143.85,177.421 178.725,195.591 177.086,153.667 "/>
+				<polygon fill="#F27C0E" points="207.514,133.032 177.086,153.667 178.725,195.591 207.514,174.307 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim09.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:26:45Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:02:59Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x30_9">
+			<g opacity="0.2">
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="186.506,127.103 153.92,144.948 191.086,162.472 221.537,141.836 "/>
+				<polygon fill="#FF9900" points="153.92,144.948 157.844,186.202 192.725,204.372 191.086,162.472 "/>
+				
+					<linearGradient id="XMLID_132_" gradientUnits="userSpaceOnUse" x1="35.3438" y1="412.9688" x2="70.2246" y2="412.9688" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_132_)" points="157.844,186.202 192.725,204.372 191.086,162.472 "/>
+				<polygon fill="#F27C0E" points="221.537,141.836 191.086,162.472 192.725,204.372 221.537,183.086 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim10.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:27:02Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9k=
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:02:54Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;XSY8EOGAoff72Op1U80uKZtHZkOO7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9k=</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_0">
+			<g>
+				<polygon fill="#FFCC00" points="202.904,113.501 170.324,131.347 207.484,148.864 237.936,128.235 "/>
+				<polygon fill="#FF9900" points="170.324,131.347 174.248,172.605 209.123,190.777 207.484,148.864 "/>
+				
+					<linearGradient id="XMLID_130_" gradientUnits="userSpaceOnUse" x1="51.748" y1="426.5703" x2="86.623" y2="426.5703" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_130_)" points="174.248,172.605 209.123,190.777 207.484,148.864 "/>
+				<polygon fill="#F27C0E" points="237.936,128.235 207.484,148.864 209.123,190.777 237.936,169.488 "/>
+			</g>
+			<g opacity="0.5">
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim11.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:27:16Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:02:49Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_1">
+			<g>
+				<polygon fill="#FFCC00" points="217.904,101.501 185.324,119.347 222.484,136.864 252.936,116.235 "/>
+				<polygon fill="#FF9900" points="185.324,119.347 189.248,160.605 224.123,178.777 222.484,136.864 "/>
+				
+					<linearGradient id="XMLID_128_" gradientUnits="userSpaceOnUse" x1="66.748" y1="438.5703" x2="101.623" y2="438.5703" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_128_)" points="189.248,160.605 224.123,178.777 222.484,136.864 "/>
+				<polygon fill="#F27C0E" points="252.936,116.235 222.484,136.864 224.123,178.777 252.936,157.488 "/>
+			</g>
+			<g opacity="0.65">
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g opacity="0.2">
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim12.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:27:28Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+7FXYq7FXYq7FXYq7FXYq7FX/2Q==
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:02:42Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FX/2Q==</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_2">
+			<g>
+				<polygon fill="#FFCC00" points="217.904,101.501 185.324,119.347 222.484,136.864 252.936,116.235 "/>
+				<polygon fill="#FF9900" points="185.324,119.347 189.248,160.605 224.123,178.777 222.484,136.864 "/>
+				
+					<linearGradient id="XMLID_126_" gradientUnits="userSpaceOnUse" x1="66.748" y1="438.5703" x2="101.623" y2="438.5703" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_126_)" points="189.248,160.605 224.123,178.777 222.484,136.864 "/>
+				<polygon fill="#F27C0E" points="252.936,116.235 222.484,136.864 224.123,178.777 252.936,157.488 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g opacity="0.4">
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim13.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:27:40Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+TC/tpfgFrOyxzR8/h+2aI6rWpOx9jlgyd73uk9ssWXGYagcE65jeJr7R9qcaF5Uj0CIW0xWa/hHo
+zTL9mqfCQlf2ajON1P8AeS/rH73zbX6s5skiNo8R+9NsocF2KoS96p9OZun+n4teRDZe1o/R9FvN
+VuvRtxRRvLKfsoPf38BluLEZmgzhjMjs9ZzduzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
+sVdirsVdirsVdirsVdirsVdiqVap5b0+/wCUgHo3B39VB1P+UvfMLUaCGTflLva5YwWI6noOoaeS
+0ic4e0ybr9Ph9OaLUaPJi5jbvaJQIS7MVghL3qn05m6f6fi15EXoPl+71e44p8FuhHrTnoPYeLZm
+4cJmfJceMyL0vT9OtNPtVtrVOEa9T3Y92Y9zm3hARFB2EYiIoInJsnYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXEAggioOxBxVItU8p2VzWS1pbTHegHwE/L
+t9Ga3UdmwnvH0n7GqWIHkx+DyZqFxfiK6Ho20e8kqkHkD0Ce5/DMfTaGYNS2aPAJO/JnFpaW9pbp
+b26COKMUVR/n1zcRiIig5cYgCgq5JLsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
+dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
+sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
+dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirTMqirGgHfBKQAspAtRN0K7CozEOr32GzYMapHMklQp3HU
+ZkY8onyYSiQvyxi7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
+FXYq7FXYqp3IrA49v45XmFxLPGfUlrl0XrTNfwuVsVfTK8pD8t8y9P1as/RH5kuO7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVGW0ik8R40yqWGJL
+ZHIQqoiooVRRR0GWAUwJtvCh2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
+uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
+xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
+V2KuxV2KuxV//9k=
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:02:33Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirTMqirGgHfBKQAspAtRN0K7CozEOr32GzYMapHMklQp3HU&#xA;ZkY8onyYSiQvyxi7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYqp3IrA49v45XmFxLPGfUlrl0XrTNfwuVsVfTK8pD8t8y9P1as/RH5kuO7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVGW0ik8R40yqWGJL&#xA;ZHIQqoiooVRRR0GWAUwJtvCh2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV//9k=</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_3">
+			<g opacity="0.2">
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_123_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_123_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="199.904,92.501 167.324,110.347 204.484,127.864 234.936,107.235 "/>
+				<polygon fill="#FF9900" points="167.324,110.347 171.248,151.605 206.123,169.778 204.484,127.864 "/>
+				
+					<linearGradient id="XMLID_124_" gradientUnits="userSpaceOnUse" x1="48.748" y1="447.5703" x2="83.623" y2="447.5703" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_124_)" points="171.248,151.605 206.123,169.778 204.484,127.864 "/>
+				<polygon fill="#F27C0E" points="234.936,107.235 204.484,127.864 206.123,169.778 234.936,148.488 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g opacity="0.65">
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim14.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:27:56Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+e+U6vIJ5pyHWRP2t5jOO7FUu1X7UfyP8M2mi+g+9oy80BmW0px5Z8r6l5hvxa2a8UXee4avCNfE+
+JPYd8v0+nlllQbcWEzNB9EKqr0FK51EYCPJ3xLeSQ7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FXYq7FXYq7FXYq7FXYqx7X/JGj6tylC/Vbxqn14gPiJ7uvRv1++arW9kYs+/0z7x+lqnhE
+ve8513yjrOjsWmi9W27XMXxJ/su6/TnKazszLg3IuPePxs4c8Rikua9rS7VftR/I/wAM2mi+g+9o
+y80x8o+TtQ8x3nCL91ZREfWbojZR/Kv8zHw+/NrptLLKduXenDgOQ+T3PRtF0/RrCOxsI/ThTck7
+szHqznuTnR4sUcceGLuMeMQFBHZYzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVcyhgVYAqRQg7gg4kWrEte/LvS77lNYUsrk78VH7pj7qPs/7H7s0es7Dx5N
+4eiX2fs+DRPADy2Yfa/lhrN7rC29+Pq1jBvNcKQ3MHosXuadxt38Mw9D2VkiTGewvn+pxPyspS35
+PVdO06y06zis7KIQ28IoiL+s+JPc50sICAocnYRiIigiMmydirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
+dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
+sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
+dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVWySJGhdzxUdSchOYiLPJMYkmggn1
+QB/gSqdydic1U+1hxbD0uQNPtuUTb3kM5KofjWhZT1Fc2Gn1McosNU8ZjzVsyGt2KuxV2KuxV2Ku
+xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVDamhexlUCpoCB8iDmNq
+43iLdpzUwxyVpooj8VD4eGaAYxe7tBRKP8shi9wxrQhd/ffNtoBzcXXcgnubJ17sVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVQV1pFrcEE1TerBehz
+EyaOEjfJyIamUUVFDFDGI4lCIvQDMmMREUGmUiTZX5Ji7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9k=
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:02:24Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVWySJGhdzxUdSchOYiLPJMYkmggn1&#xA;QB/gSqdydic1U+1hxbD0uQNPtuUTb3kM5KofjWhZT1Fc2Gn1McosNU8ZjzVsyGt2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVDamhexlUCpoCB8iDmNq&#xA;43iLdpzUwxyVpooj8VD4eGaAYxe7tBRKP8shi9wxrQhd/ffNtoBzcXXcgnubJ17sVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVQV1pFrcEE1TerBehz&#xA;EyaOEjfJyIamUUVFDFDGI4lCIvQDMmMREUGmUiTZX5Ji7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9k=</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_4">
+			<g opacity="0.4">
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_119_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_119_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="181.004,83.198 148.42,101.043 185.584,118.561 216.035,97.932 "/>
+				<polygon fill="#FF9900" points="148.42,101.043 152.344,142.302 187.223,160.488 185.584,118.561 "/>
+				
+					<linearGradient id="XMLID_120_" gradientUnits="userSpaceOnUse" x1="29.8438" y1="456.8662" x2="64.7227" y2="456.8662" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_120_)" points="152.344,142.302 187.223,160.488 185.584,118.561 "/>
+				<polygon fill="#F27C0E" points="216.035,97.932 185.584,118.561 187.223,160.488 216.035,139.185 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g opacity="0.2">
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim15.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:28:12Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+V2KuxV2KuxV2KuxV2KuxV//Z
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:02:17Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVk08UERllYJGvVj77ZXlyxxxMpGgGUIGRoc0qk8wqJ&#xA;aRxcoh1JNCflnOZfaMCfpjcPPm5sdFtud0dZana3hZIm/eRgF0PUV6ZutFr4aiNxv4uNlwShz5Ir&#xA;M1pQ73bh5FWIsIqciCOhFemKq0brIiuvRhUYquxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KoDXozJpFygFTxBAHswP8Mwe04cWnkPxzcrRyrLEsHuXura3Pxl&#xA;SdqdaZxgwC/UHoIiMim/kIOZb1yCQQg5Hxqe+dJ2MN5fB1/a1VEe9mGb10qBCTPcXKRlVDcQxNSa&#xA;EHpiqMijEcaoOiimKrsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVSnUPLWnXjAnlFuC6oaAgHpQ9PozW5uy8U5cXL3Obh12SArmmVtbW9tCsNvGI4k+yq5n&#xA;48cYCoig4s5mRsmyqZNg0qIrMwFGb7R8aYq3irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdir/9k=</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_5">
+			<path opacity="0.2" enable-background="new    " d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279
+				c2.772,0.754,5.231,1.131,7.378,1.131c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738
+				c-0.945-0.904-2.7-2.086-5.263-3.545c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442
+				c0-3.237,1.085-5.668,3.257-7.295c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183
+				c-2.259-0.514-4.358-0.771-6.297-0.771c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462
+				c0,1.426,0.46,2.567,1.382,3.425c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975
+				c1.041,1.603,1.562,3.404,1.562,5.408c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path opacity="0.2" fill="#808080" enable-background="new    " d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316
+				c0.857,0.876,1.286,2.284,1.286,4.223c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479
+				h-2.584L112.728,302.891L112.728,302.891z M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931
+				c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"
+				/>
+			<g opacity="0.65">
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_115_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_115_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="176.004,61.198 143.42,79.043 180.584,96.561 211.035,75.932 "/>
+				<polygon fill="#FF9900" points="143.42,79.043 147.344,120.302 182.223,138.488 180.584,96.561 "/>
+				
+					<linearGradient id="XMLID_116_" gradientUnits="userSpaceOnUse" x1="24.8438" y1="478.8662" x2="59.7227" y2="478.8662" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_116_)" points="147.344,120.302 182.223,138.488 180.584,96.561 "/>
+				<polygon fill="#F27C0E" points="211.035,75.932 180.584,96.561 182.223,138.488 211.035,117.185 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g opacity="0.4">
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim16.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:28:25Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqhb7U7KxTlcSBSfsoN2PyGa7X9q6fSRvLKj3dT8PwG7Dp5
+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
+7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9k=
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:02:09Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqhb7U7KxTlcSBSfsoN2PyGa7X9q6fSRvLKj3dT8PwG7Dp5&#xA;5D6Q6z1OxvBW3mV27p0Yf7E74dF2rp9UP3UwT3dflzXLp54/qCKzYNLsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVUbq8trWIy3EgjTxPU/IdTmNq9Zi08O&#xA;PLIRj+OXf8GzHilM1EWxnUvN00lY7FfTTp6rbsfkOgzge1PbGc7jpxwj+cefwHIfb8Hb4OzAN57+&#xA;TH5JJJHLyMXdt2ZjUn784vJklORlIkyPUu0jEAUGlZlIZSQw3BGxyMZEGxsUkWm9j5o1K2oshFxG&#xA;O0n2v+C6/fXOl0HtXqsG0z4kf6XP/Tfrtwc3Z+OfL0lkNj5l0y6orP6Eh/Zk2H0N0ztdB7UaTUbE&#xA;+HLul+vl9zqs2gyQ8x5JqCCKjcHoc6IG3CdhV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuYEggGhpsfDAeSh5G3mG4uJi2oFml6F+tPanb6M8U1ssueZlORlLz/AEd3&#xA;ue4GijEejki45Y5F5RsGHiM10okc2mUSOa/AxdiqyWaKGMySsERerHYZKEDI0OaYxJNBjmp+Y5Ja&#xA;xWdY4+hl6Mfl4ZttPoRHeW5dhh0gG8nr3lIk+WdLJ6m2jqf9jnrPZv8Ai8P6oeK7Q/v5/wBYptma&#xA;4bsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirxLVIvS1O7ipT05&#xA;pFp0+y5GeO6yHDmnHulL730PTy4scT3xH3KEcskbco2Kt4jMUi2yUQeaY2+sMKLOtR/OvX6RlEtO&#xA;DycWel/mr73XbO2iBU+rKwqsY/428McOjnM77BqhppE77MYvtRur2TlM3wj7KDZR8hm4xYY4xUXY&#xA;48UYDZDZa2vevKP/ACjGl/8AMNH/AMRGek9m/wCLw/qh897Q/wAYn/WKbZmuG7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8e80xel5i1BelZmf/g/i/jnk/bMOHV5&#xA;B/SJ+e73nZ0rwQ9yVAEmgFSegGawBzEStqVFZOv8uXDFXNqOS+SUaoP9JH+qP1nMnByb8fJB5c2O&#xA;xV715R/5RjS/+YaP/iIz0ns3/F4f1Q+e9of4xP8ArFNszXDdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVeYecdOnm803XpLRXEbFjso/dgfwzzbt/TSlrZ114fuD2P&#xA;ZeeMdNG/P70HHYxWy/D8T93PX6MwY4RAebfLMZoa475RNtgkOq/3qfL+OSwcnNx8kDlzY2qszBVB&#xA;LE0AG5JOEC9ggkAWXvvlm3mt/L2nQToY5o7eNZI22KkKKgjPStBAxwQBFERD55rpiWaZG4MimWZb&#xA;iuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVKtd8zaRosXK8l/ekV&#xA;jt0+KRvo7D3O2Lm6Ps/LqD6Bt39GDy+fdN1Kci+sjbLUhJ4m5MF7cxQV/HMDWdn48/1DfvHN30ux&#xA;s+EXikJd8T+hdLarPCbiylW7g7tGasP9Zeozk9d2Pmxbj1R8ufy/tYY9WIy4MgOOfn+gpNcd85yb&#xA;tYJDq394nyOHB1c3HyU9O0291C4EFrGXf9o/sqPFj2GZ+m0uTNLhgLLVqtXjwR4pmh9/ueh+X/Kl&#xA;npYEr0mvCN5SNl9kHb59c6HFixaT6fXl7+g934/U8Xru08mq2+nH3d/vZgJ5gxYOanrkY6vKJcQk&#xA;bcXhCIjvu0i/SP6ZtMPa/SY+IYHH3IlJY3FVYHNtizwyD0m2BFLstQ7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FVG8vbSzt2uLqVYYU+1I5oMWzFilklwxFl575j/M6WTlb6Kvpp0N&#xA;44+I/wCop6fM/cMXqND7PgerNuf5v6ywOaaaeVpZnaSVzV5HJZifEk4vSxgIigKCzFkq211c20ol&#xA;t5WikHRkJBwNWXDDJHhmBIeacJ5jiuQE1ODk/wDy1wUWT5sv2W/DNTruxsOo3I4Zd4/T3urPZssW&#xA;+GW382W4+B5j7V9p5eh1ucTWl4kunxM0c06bMHWhMZU9G337DObh7OzxTPiSAxDfi/Z+A4mq7X/L&#xA;x4ZQPin+Hp777vt9zN9O0yz0+3EFrGEQbk9Sx8WPc5nS1EYR8PCOGH2l5bNlnmnx5DcvsHuRY6jM&#xA;Nijsk2OxVsEg1BofHCCQbCqlrqLPdJbA8615N4UBObPs/tOc8wxE8XP7kzwVHiTLOjcZ2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV5D/AM5D3F5aWWh3ttIY2jmnjanQ81RqEdD9jvk4&#xA;C3uvYiEJzywkLuMT8r/W8x0vznby0jv19F+nqrUofmOownH3PX6jsqUd4bju6sjjkjkQPGwdG3Vl&#xA;NQcrdVKJBorsUKdxcwW0LT3EixRIKs7GgGKgWxcajr/mu7fTvLkbQ2Y+G51B6qAD/lfs17AfEcxt&#xA;brsOljxZDv0HUtWr1eHSx4sp36R6n8fJ6h5Q0MeWtFj0y2uHlCu00sp+HlI4AY0HQfCNs4DtDtnN&#xA;qZE3wx/mj9Pe+edo6+WqzeIRXQe5ktvq7rtKKj+Zf6ZrsWecORccZb5pnb3cM1CjA/L+mbLFron6&#xA;tmYF8k0zPBB5M3EgAkmgHUnEmlAtL7q+L1SLZe7dzmBm1N7R5ObiwVuea/RBXUF9lY/hmb2EL1I9&#xA;xXV/QyTO6dS7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8s/5yKtxJ5Ks5h9qHUI/&#xA;+BaKUH8aZPHzez9h51rJDvxn74vnPLn1VGafqt/YPytpSoP2ozuh+YwEAtGbTQyj1Bkaee7RLJ5b&#xA;mBhOgFETdWJNNiemVnG6LVdnHHuDcSiNF8l6/wCbJo9R8wM9lpIPKCyWqu47bH7IP8x3PbOc7U9o&#xA;MeC4YfVk7+g/WXlu0u38enuGH15O/oP1l6hp+nWOnWkdnYwrb20QokaCg+Z8Se5OcJnzzyyM5nik&#xA;Xhs+eeWRnM8UiicqanYq2rMrBlJVh0I2OKg0jh5p+oQmW9YGFer9G+XucyNPLJxVDm2nVCI9fJNL&#xA;m5eYjeiUBC/MV3zJnnlMbu2wQAFhQytvTLQRW++SH+Gbv2fH+Ef5p/Q4us+j4shzt3VOxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KsA/PS39X8uL9/wDfEtvJ98yp/wAb5OHN6b2QnXaE&#xA;B/OEh/sSf0Pl/Ln2J2KqV05S3dgaMOPE+4YHARezhdoR4sddHt9pqt1bUWvqRD9hvD2PbPJJYwX5&#xA;0hmITq01S1uaKG4SfyNsT8vHMeWMhyY5BJGZW2OxVB6nqlrp8HqTGrH+7jH2mPtl+DTyymg1Zcog&#xA;LLBtT1W61Cf1JjRR/dxD7Kj/AD750ODTxxCg6rLlMzZexfsr/qr/AMRGaOnuMP0BrC2Jp5fB+uOe&#xA;3pn/AIkM3/s4P38j/Q/SHD1v0D3p/nZusdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVYp+att9Y/LzXI6V42/qdv91Osnf/VyUebu/ZzJw6/Ef6VfMU+S8vfbXYqoXw/0Z/an6xi42s/u&#xA;y9htzWCM1rVVNfozynIPUfe/N+UVM+9UyDWj7PWLiCiSfvYx2J+IfI5XLEC3RzEc0TqPma1trUPE&#xA;C871CRkUAI7sclp9FLId/pZZNSIjbmw27u7i7naedy8jdz2HgPbN9jxxgKjydZOZkbKjk2L29lK0&#xA;VtiqqCPcAZzxe9xD0hUt7eW4lEUQqx+4DxOX6bTTzTEIDdM5iIsslsLCK0jou8h+2/c/2Z3fZ/Z8&#xA;NNChvI8z+Ojqc2YzPkic2DS7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqo3lna3tp&#xA;NZ3cSzW1wjRzROKqyMKEHFsxZZY5CcTUomwXjHnX/nHtW9S88qTcTux0y4bb5RSn9T/8Flgyd73/&#xA;AGV7bEVDVD/PH6R+r5PGdU0nU9KvHstStZLS6j+1FKpU/MV6jwI2y0F77T6nHmgJ45CUT1CAnUGC&#xA;QEV+Fj9wrix1n90fh971jTWDadasNwYYyD81GeWakVkl/WP3vznrBWaY/pH70TlLjuxVL9V/3V/s&#xA;v4Zs9F9J97RmS/Mxpdir3hbWW5vGjjG/duwHic0+j0k88hGH9j3ZyCELLIrOyhtYuCCrH7b9yc7z&#xA;RaGGnhwx59T3ury5TM2VfM1qdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;qV+YPLGg+YbM2esWcd1FvwZhR0J7xuKMp+Rwg05mi7Qz6WfHikYn7D7xyLxHzl/zj3rNszy+WJhf&#xA;20vwC1nZY5o+fw/bNEdVrUnY+xywZO973Se2WLLjMNQOCdcxvE19o+1y6dNpgGmzsrTWI+rSsleJ&#xA;aL4GK1oaVXPM9YKzT/rS+98p1eQTzTkOsiftbzGcd2Kpdqv2o/kf4ZtNF9B97Rl5oDMtpTjyz5X1&#xA;LzDfi1s14ou89w1eEa+J8Sew75fp9PLLKg24sJmaD6GigiiBEaheRqfc50en02PCOGAoO/lMy5r8&#xA;vYuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kse1/yRo+rcpQv1&#xA;W8ap9eID4ie7r0b9fvmq1vZGLPv9M+8fpap4RL3vOdd8o6zo7FpovVtu1zF8Sf7Luv05yms7My4N&#xA;yLj3j8bOHPEYpLmva0u1X7UfyP8ADNpovoPvaMvNMfKPk7UPMd5wi/dWURH1m6I2Ufyr/Mx8Pvza&#xA;6bSyynbl3pw4DkPk9z0bRdP0awjsbCP04U3JO7Mx6s57k50eLFHHHhi7jHjEBQR2WM3Yq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXMoYFWAKkUIO4IOJFqxLX&#xA;vy70u+5TWFLK5O/FR+6Y+6j7P+x+7NHrOw8eTeHol9n7Pg0TwA8tmH2v5Yaze6wtvfj6tYwbzXCk&#xA;NzB6LF7mncbd/DMPQ9lZIkxnsL5/qcT8rKUt+T1XTtOstOs4rOyiENvCKIi/rPiT3OdLCAgKHJ2E&#xA;YiIoIjJsnYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUs8zapJ&#xA;pehXl9GAZYkAjruObsEUn5FsVee+WPLM3msXOoapfysI39MUIZyxAY/aqFXfYAYqznyz5Vt9ANyI&#xA;LiSaO44UWSnwlOXSlOvLwxVMbzVrGzbjNJRzvwUEn8OmKustVsbxisElXG5Qgg0+nFUXirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqE1fTYtT0y4sJTxS4Q&#xA;ryG9D1VvoIrirynj5p8l35YDjC5oWoXt5gOnhv8AccVeh+WfN1nrllJIq+ldW61ntya0H8ynuDiq&#xA;XaRcWsmpSXN+67gsOe45Ej9QxVu8ntItainsmX06qx4bCtaMPpGKsuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVTubq2tYWnuZVhhWnKWQhVHIhRUnYbnF&#xA;Uu1XVPLrabN9euYJbRkPNOatyHgoB3PhTFWAfldazS6veSCogW2aORu1ZGXiP+FJ+jFWR6OtpFqD&#xA;wX6LShT95SiuD74qyL6roaso4QBmICD4aknpTFUfirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdiqG1PTbTUrGWyu1L281OaglT8LBhuPcYqxsflj5ZD8v35Ff&#xA;sGQU/wCI1/HFWR6bpWn6ZbC2sYVghBqQu5J8WJ3J+eKrL3R7C8bnKlJOnNTQ/T44qpW/l7TYJVlU&#xA;OzoQy8m6EbjpTFUyxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxVSurq3tYGnuHEcSU5Ofc0H45TqNRDDAzmaiGePHKcuGIssfn85oJwIbfnAOrMaMfl1pnE5&#xA;/baIyVjx3j8zRPu7vxydpDso8O53TXS9d0/Umkjt3PrRANLEw3UNWlabb0zqOy+18WtjxQsEcwR+&#xA;AXC1Gknioy5HqmGbRxUul1eVZrmOO1Mq2tDKwYDYitQD8sVRtvOk8CTR/YkUMK9d8VaErG5MVBQJ&#xA;yr360xVVxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVJ/N8DT&#xA;+XL6NQWYorADckq6t2+WantzHx6PIPL7iC5/Zk+HURP45PKb2XULGyb96VY0HHrxB988yjpRxDiG&#xA;72URDJLkyT8oFkM+qSsGKlYhzNaFqsaV8c7b2ZjvPu2/S6b2iIqA9/6HpWda8ukSw3k2o6nFbuiL&#xA;J6ays4JIBUj4aYqnNtAlvbxwJusahQT1NMVU1/3vb/jGP14qiMVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVcQCKHcHqMVY7rHkbRdTZWYPAOQaRYiArAGpFDXj9G&#xA;aTU9gafLMSFx765H9Xwdppu1suIVz96d2NjZ2NslrZxLDBGKJGooP7T7nNviwxxxEYCoh1+XLLJL&#xA;ikbJV8sa1iQQpJJIihXlp6jDqadK4qvxVrgvPnT4iKV9sVbxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV//2Q==</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_6">
+			<path opacity="0.4" enable-background="new    " d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279
+				c2.772,0.754,5.231,1.131,7.378,1.131c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738
+				c-0.945-0.904-2.7-2.086-5.263-3.545c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442
+				c0-3.237,1.085-5.668,3.257-7.295c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183
+				c-2.259-0.514-4.358-0.771-6.297-0.771c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462
+				c0,1.426,0.46,2.567,1.382,3.425c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975
+				c1.041,1.603,1.562,3.404,1.562,5.408c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path opacity="0.2" enable-background="new    " d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
+				c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395
+				c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309
+				c0,3.012,0.577,5.271,1.73,6.776s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z
+				 M105.184,273.04h8.892c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path opacity="0.4" fill="#808080" enable-background="new    " d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316
+				c0.857,0.876,1.286,2.284,1.286,4.223c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479
+				h-2.584L112.728,302.891L112.728,302.891z M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931
+				c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"
+				/>
+			<rect x="135.898" y="301.786" opacity="0.2" fill="#808080" enable-background="new    " width="2.56" height="19.022"/> 
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_111_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_111_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g opacity="0.2">
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g opacity="0.65">
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="175.4,40.401 142.82,58.247 179.986,75.764 210.438,55.135 "/>
+				<polygon fill="#FF9900" points="142.82,58.247 146.744,99.505 181.625,117.675 179.986,75.764 "/>
+				
+					<linearGradient id="XMLID_112_" gradientUnits="userSpaceOnUse" x1="24.2441" y1="499.6719" x2="59.125" y2="499.6719" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_112_)" points="146.744,99.505 181.625,117.675 179.986,75.764 "/>
+				<polygon fill="#F27C0E" points="210.438,55.135 179.986,75.764 181.625,117.675 210.438,96.388 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim17.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,275 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:28:37Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
+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
+rsVdirsVdirsVdirsVdirsVdirsVdirsVf/Z
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:02:05Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_7">
+			<path opacity="0.65" enable-background="new    " d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279
+				c2.772,0.754,5.231,1.131,7.378,1.131c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738
+				c-0.945-0.904-2.7-2.086-5.263-3.545c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442
+				c0-3.237,1.085-5.668,3.257-7.295c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183
+				c-2.259-0.514-4.358-0.771-6.297-0.771c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462
+				c0,1.426,0.46,2.567,1.382,3.425c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975
+				c1.041,1.603,1.562,3.404,1.562,5.408c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path opacity="0.4" enable-background="new    " d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
+				c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395
+				c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309
+				c0,3.012,0.577,5.271,1.73,6.776s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z
+				 M105.184,273.04h8.892c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path opacity="0.2" enable-background="new    " d="M125.805,289.238v-28.096h3.797l1.273,4.662
+				c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236c0.513,0,0.889,0.016,1.129,0.049v5.383
+				c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z
+				"/>
+			<path opacity="0.65" fill="#808080" enable-background="new    " d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316
+				c0.857,0.876,1.286,2.284,1.286,4.223c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479
+				h-2.584L112.728,302.891L112.728,302.891z M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931
+				c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"
+				/>
+			<rect x="135.898" y="301.786" opacity="0.4" fill="#808080" enable-background="new    " width="2.56" height="19.022"/> 
+			<path opacity="0.2" fill="#808080" enable-background="new    " d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212
+				c-1.273,0-2.265-0.359-2.974-1.074c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975
+				c0.729-0.653,1.602-1.063,2.62-1.226c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438
+				c-1.001,0-2.223,0.214-3.665,0.638v-1.791c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112
+				c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727
+				c-0.573,0.485-0.859,1.209-0.859,2.17c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582
+				c0.881,0,1.564-0.28,2.049-0.842c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_107_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_107_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g opacity="0.4">
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="195.4,51.401 162.82,69.247 199.986,86.764 230.438,66.135 "/>
+				<polygon fill="#FF9900" points="162.82,69.247 166.744,110.505 201.625,128.675 199.986,86.764 "/>
+				
+					<linearGradient id="XMLID_108_" gradientUnits="userSpaceOnUse" x1="44.2441" y1="488.6719" x2="79.125" y2="488.6719" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_108_)" points="166.744,110.505 201.625,128.675 199.986,86.764 "/>
+				<polygon fill="#F27C0E" points="230.438,66.135 199.986,86.764 201.625,128.675 230.438,107.388 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim18.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:28:51Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXAg9DXADa27CrsVdirsVdirsVdirsVdirsVdirsVdir
+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
+xV2KuxV2KuxV2KuxV2KuxV2Kse1/yRo+rcpQv1W8ap9eID4ie7r0b9fvmq1vZGLPv9M+8fpap4RL
+3vOdd8o6zo7FpovVtu1zF8Sf7Luv05yms7My4NyLj3j8bOHPEYpLmva0u1X7UfyP8M2mi+g+9oy8
+0x8o+TtQ8x3nCL91ZREfWbojZR/Kv8zHw+/NrptLLKduXenDgOQ+T3PRtF0/RrCOxsI/ThTck7sz
+HqznuTnR4sUcceGLuMeMQFBHZYzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVcyhgVYAqRQg7gg4kWrEte/LvS77lNYUsrk78VH7pj7qPs/7H7s0es7Dx5N4e
+iX2fs+DRPADy2Yfa/lhrN7rC29+Pq1jBvNcKQ3MHosXuadxt38Mw9D2VkiTGewvn+pxPyspS35PV
+dO06y06zis7KIQ28IoiL+s+JPc50sICAocnYRiIigiMmydirsVdirsVdirsVdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
+sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqkLu1M/1cSr63++6jl49MVVcVdirsVdir
+sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirD/AM3vOVz5M/LbXfMloqteWMCr
+a8hVRNPIkETMO4V5QxHfFXy3+Tv5Q3/52DVvNHnLzJeyLbXH1ZArCSdpSqyMay8ljjAYBVVflSmK
+vo78oPyW0z8sm1dNN1W61C11T6txhuglYTb+rUqU4g8/W3+EdO+Ksh80fmN5R8szC31W9C3bAMLW
+JWlkCnoWCii+3IiuKu8rfmL5S8zytBpV5zu0Xm1rKrRycR3AYUYf6pOKprea/pdnqNvp1xKUurqn
+orxJBqSo+LoNxiqEXzn5dk1AWEVz6055bxqzJ8Klj8VKHYdsVU7Y6JPq63EU0jTuxZYyCF5U8aYq
+n+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVIvPXlKy83+UNV8t
+XrGODU4DF6oFTG4IaOQDvwkVWp7Yq+KBD+c3/OPvmZ5lQx2Ny4RpaGbTL5UqVBPw0YAmn2ZB8sVf
+U/5SfnpoH5h+Xby9hhNlrGlRGTUtLZuRAoSJInoOaNxp0qDsexKrzP8ALTWfL9556vdd843MNWjk
+niNyOSNcO6gbHl9lC3EdvoxVvzTq3lzTvzTsNX8qyxfURJbzSfVhxjDlysyAAbBk6gDvir0j81iV
+1qzINCLcEEdQfUbFWXaB5M0LT4LWcW/O9RAzXDMxJZlo3w14036UxVQhVU80cVAVRI1ABQD4TirK
+cVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqD1fWNJ0bT5NR1a8h
+0/T4Sgmu7mRYok9RxGnN3IVauwG5xVi3nPzn+VM3lHUD5h1fTLzQpoHE8PrwzestK8YkViXkqPg4
+716Yq+YP+cN9Ev7/AM76/cIWTTk0eW0upQKrzupY/SQ+5EbsP9XFWa/ljD5c07zrc6V5xtYOBSS2
+H1xVMcVyjj7RbZahWFcVe2Hy/wDlJDPAn1XR1nmkSO2QehzeRmAVUWtSST2xVIvzX/47Nn/zDf8A
+G7Yq9Mtv954v9Rf1YqxuP/lKj/xkb/iJxVlGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
+KuxV2KuxV2KuxV2KuxVJ/N/lPRPN3l288va5E0+l3wQXEaO0bH0pFlQh0IIo8anFXk6f84d/k+tw
+JT+kmStfQN0vCnhURh6f7LFXq3lHyX5X8oaQuk+XNPj0+xU82SOpZ3oAXkdizu1B1Yk4ql/mr8sf
+J/ma4+tajaFb0gKbuBjHIQBQcqVVqf5QOKpbon5J+RtJ1C31CKK4nubWRJ7czTGiyRsGRqII60YV
+3xVket+UtH1q4jnvlcyRp6a8HKjjUn+OKpwihEVB0UAD5DFUINJsxe/XAG9epatdqkU6YqjMVdir
+sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqldXVvawNPcOI4kpyc+5oP
+xynUaiGGBnM1EM8eOU5cMRZY/P5zQTgQ2/OAdWY0Y/LrTOJz+20RkrHjvH5mifd3fjk7SHZR4dzu
+mul67p+pNJHbufWiAaWJhuoatK023pnUdl9r4tbHihYI5gj8AuFqNJPFRlyPVMM2jisTvvPF7DqG
+rW1ro73kOjcGvJkmRSEdC/IIwqaBTsMVZHpmo2+padb39sSYLmNZI67EBhWh9x0OKqCalK2vSacV
+X0kt1nD78uRfjTwpiqPZlVSzEKo3JOwAxVZDdW0xIhlSQjqEYNT7sVXsyqpZjRRuTiqyGeOZeSH5
+juPniqpirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqT+b4Gn8uX0agsxRWA
+G5JV1bt8s1PbmPj0eQeX3EFz+zJ8OoifxyeU3suoWNk370qxoOPXiD755lHSjiHEN3soiGSXJkn5
+QLIZ9UlYMVKxDma0LVY0r4523szHefdt+l03tERUB7/0PSs615d5vFYa7qHmrzhZaZPb28VybaK8
+mmV3cI8Lr+6CkCtCeuKs90jTIdL0u10+AlorWNY1Zup4jcmnj1xVL4f+UyuP+YFP+TmKpnqFwlvZ
+yzOnqKi7p2NdqHriqWWxk/TUBcRK7QMSsNaUO45YqnMorG467HFVGwC/VUIAqQan6TiqIxV2KuxV
+2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVxAIodweoxVjuseRtF1NlZg8A5BpFiIC
+sAakUNeP0ZpNT2Bp8sxIXHvrkf1fB2mm7Wy4hXP3p3Y2NnY2yWtnEsMEYokaig/tPuc2+LDHHERg
+KiHX5csskuKRslXyxrQ1vptjbXVzdwQrHc3hU3Mo6uUBC1+QOKonFVIWtuLk3QjH1hkEZk7lQa0+
+/FVR0R1KOoZWFGUioIxVRhsLKBg0MKowrRgKHfriqviqyOGKMkooWvWmKr8VdirsVdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
+sVdirsVdirsVdirsVdirsVdirsVf/9k=
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:59Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXAg9DXADa27CrsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqx5lXbqfDK5ZAGJmAoPIzdTt4ZRKZLUZErQSD&#xA;UGmRBpFqizsOu+WDKerMTKqsyN3offLhkBZiYK/JsnYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYqhbyd42VR9kjfKcsi1zKisyN3ofA5jtSpirsVWSyxxIXkYIg6&#xA;sTQZDJkjCJlIgRHUsoxMjQFlIdQ8zDeOzFf+LW/gM4/tL2sjG46ccR/nHl8B1/HN3Om7JJ3ybeST&#xA;fpG/EwmE7iQbBgxFB4fLORPampOTxfElx99/Z7vLk7gafGI8NCk5sfOFzHRbyMTL/vxKK33dD+Gd&#xA;NoPbPLDbPHjHeNj8uR+xwc3ZkTvA0yGx1fT72gglBf8A323wt9x/hna6HtnTar+7mOL+adj8v1Or&#xA;zabJj+oIzNo47sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqB1H7SfI5&#xA;Rm6NWRB5Q1rlldeh28DiqD1nzFFpsUZdKvMSEJ+wCKdab981HbHaZ0kAYx4pS5d3xdh2foDqJHfa&#xA;PzY5dajcXrepLJzX9kD7I+QGeaa7tHPqZXlPw6D4fgvR4dLDEKiK+9QzBbnYq7FVryJEpkdgiruW&#xA;JoBhiCTtzSBeyZeT/N91f66mmLIZbX03YvJuaqNuNd6fPPRPZnVanxBjyTMo1yO9fHm4PafZ8ceL&#xA;xKqVs+zuXnHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqgtSG8Z+f8Mozd&#xA;GrIgsoa1ks0cScpGCr74CQOaCaYv5znt7jTYHjarJLQqdiAVP9M5n2mqWCJHSX6C9B7N5Ac0h/R/&#xA;SGJQ3E0JrGxXxHY/RnDyiDzewnjEuaZW+sI1FnXif5xuPuzHnp+5xJ6U9EwSRHUMjBlPcZjmJHNx&#xA;SCOaE1DVbWyX4zylP2Yl6n5+GX4NLLJy5d7biwyny5MWv9Uur16yNSMfZjX7I/rm6w6eOMbOyxYY&#xA;w5Mh/K//AJSuP/jDL+rOh9n/APGR7i6zt3/Fz7w9jzu3inYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYqgtS/3X/sv4ZRm6NWRJLrVIo6rF+8fx/ZH9cw55QOTjyyVySmaaWZ+U&#xA;jFj+r5ZjGRPNpJtK9eWtgT/KwP8ADNN25G9OfIh3ns7KtUB3g/rY3nEvoDqV2GKFUevAjOrFGodh&#xA;8u+WDGCRxNZqWyQu7uxZyWY7ljuTmxApyQKaxSy38r/+Urj/AOMMv6s3fs//AIyPcXTdu/4ufeHs&#xA;ed28U7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqlWu+ZtI0WLleS/vSKx26f&#xA;FI30dh7nbFzdH2fl1B9A27+jAr/8ybi9dUNsIrcFuScuXIH7NTQUIyjNAyGzsdb7NZeEHFISPUHb&#xA;5H9avaarp14B6cgjc/sOdvobNfLFTyefBPFLhyRMJef6O9FsjKdxTKiKaaQOsLysJR7V+41zW9rR&#xA;vTTHl9ztexZcOqgfP7xTHLe2mnbjGtfFuw+ecLjxmZ2fRJ5BEbo9bOOBf5n7sf4ZmDCI+9xjlMkJ&#xA;dfZb5HKZc26DHMzHMdirLfyv/wCUrj/4wy/qzd+z/wDjI9xdN27/AIufeHsed28U7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqo3l7aWdu1xdSrDCn2pHNBi2YsUskuGIsvPfMf5nSycr&#xA;fRV9NOhvHHxH/UU9PmfuGL1Gh9nwPVm3P839ZYHNNNPK0sztJK5q8jksxPiScXpYwERQFBZiybV2&#xA;U1UkHxGRMQebTnwQyx4ZgSj5prp/mO+taIx9SLujbj7v6Zjz0w6PLa32Vid8EuH+jLcfPmPtTCTz&#xA;NZ6hCILOH155HMDorjiG2qtf5vi+jNZrcEBjkMh4Y8Js/peTyRzaLURjKP7ywQL57/pTp9OmtrZP&#xA;3IjTiCwQ8gpPif45xlwG0eT1+HV+Lufq7ksn75RN2EEtuBUEZhzcuDG8zXMROn6deahcrb2kZkkP&#xA;WnQDxY9hi05s8MUeKRoPSPJGi2Ok6nGgIub+RWEs+4WMBSSqDvuNyc2fYGtiNYMcQCZXZ7qBOzzP&#xA;aepnmxk/TAch3+9n+ehvOuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvIf+ch7i8t&#xA;LLQ722kMbRzTxtToeao1COh+x3ycBb3XsRCE55YSF3GJ+V/reY6X5zt5aR36+i/T1VqUPzHUYTj7&#xA;nr9R2VKO8Nx3dWRxyRyIHjYOjbqymoOVuqlEg0V2KFO5ube2hee4kWKFBVnY0AxUBiw1DzB5su30&#xA;7y5G0NkNrnUHqoA/1v2a9gPiOYut12HSx4sh36DqWrV6vDpY8WU79I9T+Pk9J8p+VLLy7psVpC5n&#xA;mRzK9w4AJkNKlRvxG2efdpdrZdXI36YHbhHd597532jrDqs/jEAHYDyAZZb6u6bSCo/mX+Iznhp5&#xA;498Uq8jyRHVA/WPivnsdOv1LRn0pP50G3+yTLI64DbIOA/Y7PT6yUeR4x9rHdV0e+tAWdOcP+/U3&#xA;X6fD6cumLFjcO802rhk2Bo9xSnRPK13qbmZz9XsFJ5Tt3AO4QHr8+mZZIAst2r7Qji2Hqn3frZZG&#xA;bOxtvqemp6UP+7Jf25D4k5qdTrTL0w5OqEJTlx5Dcu7oEx8qrXWIz4K5/CmbT2Sjeuj5Rl9zR2if&#xA;3R+DN89ZeddirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVeWf8AORVuJPJVnMPtQ6hH&#xA;/wAC0UoP40yePm9n7DzrWSHfjP3xfOeXPqqM0/Vb+wflbSlQftRndD8xgIBaM2mhlHqDI18+Wkdk&#xA;8tzAwnQbIm6sTt1P2crON0Wq7POPcG4lEaL5L1/zZNHqPmFnstJB5QWS1V3HbY/ZB/mO57Zznant&#xA;BjwXDD6snf0H6y8t2l29j09ww+vJ39B+t6hp+nWOnWkdnYwrb20QokaCg+Z8Se5OcJnzzyyM5nik&#xA;Xhs+eeWRnM8UiicqanYq2rMpBUkEdCMEogiioJG4V28wLYwNLdsPRXqT1PtTvmPDQy4v3JMSenRy&#xA;RreEevl9q++u3kIiWiQKBwjUUFKA9BmBl1U8go/Y9DpsYA4upQuUOSnXlEA6sT4RMR94GdV7HC9Z&#xA;/mH9Dr+0/wC6+LNM9UefdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVYB+elv6v5cX&#xA;7/74lt5PvmVP+N8nDm9N7ITrtCA/nCQ/2JP6Hy/lz7E7FVK6cpbuwNGHHifcMDgIvZwu0I8WOuj2&#xA;+01W6tqLX1Ih+w3h7HtnkksYL86QzEJ1aapa3NFDcJP5G2J+XjmPLGQ5McgkjMrbHYqg9T1S10+D&#xA;1JjVj/dxj7TH2y/Bp5ZTQasuUQFlg2p6rdahP6kxoo/u4x9lR/n3zoMGnjiFB1WXKZmy9Jm+3/sV&#xA;/wCIjPOap9H0/wDdj3LMW5PvJoP6SlPYQkfey52HsUP8Kkf9rP8Auout7UP7sf1v0FmGenOhdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVYp+att9Y/LzXI6V42/qdv8AdTrJ3/1clHm7&#xA;v2cycOvxH+lXzFPkvL3212KqF8P9Gf2p+sYuNrP7svYbc1gjNa1VTX6M8pyD1H3vzflFTPvVMg1o&#xA;+z1i4gokn72MdifiHyOVzxAt0cxHNE6j5mtba1DxAvO9QkZFACO7H+mS0+ilkO/0ssmpERtzYbd3&#xA;dxdztPO5eRu57DwHgM32PHGAqPJ1s5mRsqOTYPV7hSspU7EBQR7gDPM5Gzb6ZgFQC+ysri8uFggX&#xA;k7d+wHiT4ZlaLQ5dTkGPGLkfs8z5MsuWOOPFJnGk6Rb6dBxT4pmH72XufYe2et9j9jYtFjqO8z9U&#xA;u/8AY85qdTLKd+Xcj83DjOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KqN5Z2t7aTW&#xA;d3Es1tcI0c0TiqsjChBxbMWWWOQnE1KJsF4x51/5x7VvUvPKk3E7sdMuG2+UUp/U/wDwWWDJ3vf9&#xA;le2xFQ1Q/wA8fpH6vk8Z1TSdT0q8ey1K1ktLqP7UUqlT8xXqPAjbLQXvtPqceaAnjkJRPUICdQYJ&#xA;ARX4WP3CuLHWf3R+H3vWNNYNp1qw3BhjIPzUZ5ZqRWSX9Y/e/OesFZpj+kfvROUuO7FUv1X/AHV/&#xA;sv4Zs9F9J97RmS/Mxpdir2NNPuL7UnhgG9asx6KKdTnn/ZvZ2XV5BjxjoLPQDvL6Qc0ceOyzLTNL&#xA;ttPtxFEKuf7yU9WP9PbPXuyuysWix8EPq6y6n9ncHQajUSyysozNm0OxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVK/MHljQfMNmbPWLOO6i34Mwo6E943FGU/I4QaczRdoZ9L&#xA;PjxSMT9h945F4j5y/wCce9ZtmeXyxML+2l+AWs7LHNHz+H7Zojqtak7H2OWDJ3ve6T2yxZcZhqBw&#xA;TrmN4mvtH2uXTptMA02dlaaxH1aVkrxLRfAxWtDSq55nrBWaf9aX3vlOryCeach1kT9reYzjuxVL&#xA;tV+1H8j/AAzaaL6D72jLzQGZbSnHlnyvqXmG/FrZrxRd57hq8I18T4k9h3y/T6eWWVBtxYTM0H0J&#xA;b2tvbhhCgQOeTU7nN/o9Dh00eHFERD0E8kpcyq5lsHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FWPa/wCSNH1blKF+q3jVPrxAfET3dejfr981Wt7IxZ9/pn3j9LVP&#xA;CJe95zrvlHWdHYtNF6tt2uYviT/Zd1+nOU1nZmXBuRce8fjZw54jFJc17Wl2q/aj+R/hm00X0H3t&#xA;GXmmPlHydqHmO84RfurKIj6zdEbKP5V/mY+H35tdNpZZTty704cByHye56Noun6NYR2NhH6cKbkn&#xA;dmY9Wc9yc6PFijjjwxdxjxiAoI7LGbsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirmUMCrAFSKEHcEHEi1Ylr35d6XfcprCllcnfio/dMfdR9n/Y/dmj1nYePJ&#xA;vD0S+z9nwaJ4AeWzD7X8sNZvdYW3vx9WsYN5rhSG5g9Fi9zTuNu/hmHoeyskSYz2F8/1OJ+VlKW/&#xA;J6rp2nWWnWcVnZRCG3hFERf1nxJ7nOlhAQFDk7CMREUERk2TsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVUhd2pn+riVfW/33UcvHpiqrirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVYf8Am95yufJn5ba75ktFVryx&#xA;gVbXkKqJp5EgiZh3CvKGI74q+W/yd/KG/wDzsGreaPOXmS9kW2uPqyBWEk7SlVkY1l5LHGAwCqq/&#xA;KlMVfR35Qfktpn5ZNq6abqt1qFrqn1bjDdBKwm39WpUpxB5+tv8ACOnfFWQ+aPzG8o+WZhb6rehb&#xA;tgGFrErSyBT0LBRRfbkRXFXeVvzF8peZ5Wg0q853aLza1lVo5OI7gMKMP9UnFU1vNf0uz1G3064l&#xA;KXV1T0V4kg1JUfF0G4xVCL5z8uyagLCK59ac8t41Zk+FSx+KlDsO2KqdsdEn1dbiKaRp3YssZBC8&#xA;qeNMVT/FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqkXnrylZeb/&#xA;AChqvlq9YxwanAYvVAqY3BDRyAd+Eiq1PbFXxQIfzm/5x98zPMqGOxuXCNLQzaZfKlSoJ+GjAE0+&#xA;zIPlir6n/KT89NA/MPy7eXsMJstY0qIyalpbNyIFCRJE9BzRuNOlQdj2JVeZ/lprPl+889Xuu+cb&#xA;mGrRyTxG5HJGuHdQNjy+yhbiO30Yqu80at5c07809P1fyrLF9RElvNL9WHGMOXKzIABsGTqAO+Kv&#xA;R/zWJXWrMg0ItwQR1B9RsVZdoHkzQtPgtZxb871EDNcMzElmWjfDXjTfpTFVCFVTzRxUBVEjUAFA&#xA;PhOKspxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KoPV9Y0nRtPk&#xA;1HVryHT9PhKCa7uZFiiT1HEac3chVq7AbnFWLedPOf5Uy+UtQ/xFq2mXmhTQOLiD14ZvVABPGJFY&#xA;lpKj4OO/Lpir5g/5w30S/v8Azvr9whZNOTR5bS6lAqvO6lj9JD7kRuw/1cVZr+WMPlzTvOtzpXnG&#xA;1g4FJLYfXFUxxXKOPtFtlqFYVxV7YfL/AOUkM8CfVdHWeaRI7ZB6HN5GYBVRa1JJPbFUi/Nf/js2&#xA;f/MN/wAbtir0y2/3ni/1F/VirG4/+UqP/GRv+InFWUYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FUn83+U9E83eXbzy9rkTT6XfBBcRo7RsfSkWVCHQgijxqcVeTp/z&#xA;h3+T63AlP6SZK19A3S8KeFRGHp/ssVereUfJflfyhpC6T5c0+PT7FTzZI6lnegBeR2LO7UHViTiq&#xA;X+avyx8n+Zrj61qNoVvSApu4GMchAFBypVWp/lA4qluifkn5G0nULfUIorie5tZEntzNMaLJGwZG&#xA;ogjrRhXfFWR635S0fWriOe+VzJGnprwcqONSf44qnCKERUHRQAPkMVQg0mzF79cAb16lq12qRTpi&#xA;qMxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KqV1dW9rA09w4jiS&#xA;nJz7mg/HKdRqIYYGczUQzx45TlwxFlj8/nNBOBDb84B1ZjRj8utM4nP7bRGSseO8fmaJ93d+OTtI&#xA;dlHh3O6a6Xrun6k0kdu59aIBpYmG6hq0rTbemdR2X2vi1seKFgjmCPwC4Wo0k8VGXI9UwzaOKxO+&#xA;88XsOoatbWujveQ6Nwa8mSZFIR0L8gjCpoFOwxVkemajb6lp1vf2xJguY1kjrsQGFaH3HQ4qoJqU&#xA;ra9JpxVfSS3WcPvy5F+NPCmKo9mVVLMQqjck7ADFVkN1bTEiGVJCOoRg1PuxVezKqlmNFG5OKrIZ&#xA;45l5IfmO4+eKqmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpP5vgafy5fR&#xA;qCzFFYAbklXVu3yzU9uY+PR5B5fcQXP7Mnw6iJ/HJ5Tey6hY2TfvSrGg49eIPvnmUdKOIcQ3eyiI&#xA;ZJcmSflAshn1SVgxUrEOZrQtVjSvjnbezMd59236XTe0RFQHv/Q9KzrXl3m8VhruoeavOFlpk9vb&#xA;xXJtoryaZXdwjwuv7oKQK0J64qz3SNMh0vS7XT4CWitY1jVm6niNyaePXFUvh/5TK4/5gU/5OYqm&#xA;eoXCW9nLM6eoqLunY12oeuKpZbGT9NQFxErtAxKw1pQ7jliqcyisbjrscVUbAL9VQgCpBqfpOKoj&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXEAih3B6jFWO6x5G0XU2VmDwD&#xA;kGkWIgKwBqRQ14/Rmk1PYGnyzEhce+uR/V8HaabtbLiFc/endjY2djbJa2cSwwRiiRqKD+0+5zb4&#xA;sMccRGAqIdflyyyS4pGyVfLGtDW+m2NtdXN3BCsdzeFTcyjq5QELX5A4qicVUha24uTdCMfWGQRm&#xA;TuVBrT78VVHRHUo6hlYUZSKgjFVGGwsoGDQwqjCtGAod+uKq+KrI4YoySiha9aYqvxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//2Q==</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_8">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path opacity="0.65" enable-background="new    " d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
+				c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395
+				c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309
+				c0,3.012,0.577,5.271,1.73,6.776s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z
+				 M105.184,273.04h8.892c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path opacity="0.4" enable-background="new    " d="M125.805,289.238v-28.096h3.797l1.273,4.662
+				c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236c0.513,0,0.889,0.016,1.129,0.049v5.383
+				c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z
+				"/>
+			<path opacity="0.2" enable-background="new    " d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238
+				z M148.348,257.635c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355
+				s1.526-0.889,2.583-0.889c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" opacity="0.65" fill="#808080" enable-background="new    " width="2.56" height="19.022"/> 
+			<path opacity="0.4" fill="#808080" enable-background="new    " d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212
+				c-1.273,0-2.265-0.359-2.974-1.074c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975
+				c0.729-0.653,1.602-1.063,2.62-1.226c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438
+				c-1.001,0-2.223,0.214-3.665,0.638v-1.791c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112
+				c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727
+				c-0.573,0.485-0.859,1.209-0.859,2.17c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582
+				c0.881,0,1.564-0.28,2.049-0.842c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path opacity="0.2" fill="#808080" enable-background="new    " d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434
+				c-1.09,0-1.887-0.256-2.392-0.764c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67
+				h-3.4v8.882c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566
+				L181.83,320.566z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_103_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_103_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g opacity="0.65">
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g opacity="0.2">
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="214.502,55.302 181.922,73.147 219.082,90.665 249.533,70.036 "/>
+				<polygon fill="#FF9900" points="181.922,73.147 185.846,114.406 220.721,132.576 219.082,90.665 "/>
+				
+					<linearGradient id="XMLID_104_" gradientUnits="userSpaceOnUse" x1="63.3457" y1="484.7695" x2="98.2207" y2="484.7695" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_104_)" points="185.846,114.406 220.721,132.576 219.082,90.665 "/>
+				<polygon fill="#F27C0E" points="249.533,70.036 219.082,90.665 220.721,132.576 249.533,111.289 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim19.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:29:06Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq4kAVOwxVpWVhVSCPEYBIHkgEFvCl2KuxV2KuxV2KuxV2K
+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
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:53Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x31_9">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
+				s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
+				c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path opacity="0.65" enable-background="new    " d="M125.805,289.238v-28.096h3.797l1.273,4.662
+				c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236c0.513,0,0.889,0.016,1.129,0.049v5.383
+				c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z
+				"/>
+			<path opacity="0.4" enable-background="new    " d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238
+				z M148.348,257.635c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355
+				s1.526-0.889,2.583-0.889c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path opacity="0.2" enable-background="new    " d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
+				c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395
+				c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31
+				c0,3.012,0.577,5.271,1.73,6.776c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z
+				 M164.018,273.04h8.893c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
+				C164.555,267.705,164.114,269.932,164.018,273.04z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/> 
+			<path opacity="0.65" fill="#808080" enable-background="new    " d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212
+				c-1.273,0-2.265-0.359-2.974-1.074c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975
+				c0.729-0.653,1.602-1.063,2.62-1.226c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438
+				c-1.001,0-2.223,0.214-3.665,0.638v-1.791c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112
+				c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727
+				c-0.573,0.485-0.859,1.209-0.859,2.17c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582
+				c0.881,0,1.564-0.28,2.049-0.842c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path opacity="0.4" fill="#808080" enable-background="new    " d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434
+				c-1.09,0-1.887-0.256-2.392-0.764c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67
+				h-3.4v8.882c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566
+				L181.83,320.566z"/>
+			<path opacity="0.2" fill="#808080" enable-background="new    " d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742
+				c-0.753-0.24-1.382-0.359-1.887-0.359c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561
+				v12.306h-2.561v-12.306h-1.693v-1.67h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594
+				L198.402,301.594z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_99_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_99_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g opacity="0.4">
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="198.502,67.302 165.922,85.147 203.082,102.665 233.533,82.036 "/>
+				<polygon fill="#FF9900" points="165.922,85.147 169.846,126.406 204.721,144.576 203.082,102.665 "/>
+				
+					<linearGradient id="XMLID_100_" gradientUnits="userSpaceOnUse" x1="47.3462" y1="472.7695" x2="82.2207" y2="472.7695" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_100_)" points="169.846,126.406 204.721,144.576 203.082,102.665 "/>
+				<polygon fill="#F27C0E" points="233.533,82.036 203.082,102.665 204.721,144.576 233.533,123.289 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim20.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,333 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:29:28Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq4kAEk0A6k4CaW1qSRuOSMGHiDXBGYkLBtAkDyXZJLsVdi
+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
+q7FXYq//2Q==
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:48Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;KuxV/9k=</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x32_0">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
+				s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
+				c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
+				c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
+				s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
+			<path opacity="0.65" enable-background="new    " d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104
+				L145.104,289.238z M148.348,257.635c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355
+				s1.526-0.889,2.583-0.889c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path opacity="0.4" enable-background="new    " d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
+				c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395
+				c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31
+				c0,3.012,0.577,5.271,1.73,6.776c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z
+				 M164.018,273.04h8.893c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
+				C164.555,267.705,164.114,269.932,164.018,273.04z"/>
+			<path opacity="0.2" enable-background="new    " d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184
+				c2.739,0.834,4.998,1.25,6.776,1.25c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92
+				c0-0.769-0.231-1.484-0.697-2.149c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079
+				c-0.873-0.634-1.599-1.454-2.175-2.464c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864
+				c1.843-1.41,4.205-2.115,7.09-2.115c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033
+				c-1.488,0-2.604,0.305-3.34,0.913s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379
+				c2.916,1.427,4.768,2.82,5.553,4.183c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319
+				C196.688,288.91,194.092,289.623,190.693,289.623z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/> 
+			<path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
+				c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
+				c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
+				c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
+				L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
+				c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
+				c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path opacity="0.65" fill="#808080" enable-background="new    " d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434
+				c-1.09,0-1.887-0.256-2.392-0.764c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67
+				h-3.4v8.882c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566
+				L181.83,320.566z"/>
+			<path opacity="0.4" fill="#808080" enable-background="new    " d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742
+				c-0.753-0.24-1.382-0.359-1.887-0.359c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561
+				v12.306h-2.561v-12.306h-1.693v-1.67h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594
+				L198.402,301.594z"/>
+			<path opacity="0.2" fill="#808080" enable-background="new    " d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852
+				c-0.938-1.233-1.405-3.084-1.405-5.551c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874
+				c1.826,0,3.222,0.616,4.187,1.852c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385
+				C219.994,320.344,218.566,321,216.611,321z M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488
+				c0-1.481-0.256-2.726-0.769-3.731c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357
+				c-0.506,0.904-0.758,2.199-0.758,3.881c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_95_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_95_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g opacity="0.65">
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g opacity="0.2">
+				<polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
+				<polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
+				<polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="184.563,79.017 151.989,96.863 189.143,114.38 219.594,93.751 "/>
+				<polygon fill="#FF9900" points="151.989,96.863 155.913,138.121 190.781,156.291 189.143,114.38 "/>
+				
+					<linearGradient id="XMLID_96_" gradientUnits="userSpaceOnUse" x1="33.4131" y1="461.0547" x2="68.2813" y2="461.0547" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_96_)" points="155.913,138.121 190.781,156.291 189.143,114.38 "/>
+				<polygon fill="#F27C0E" points="219.594,93.751 189.143,114.38 190.781,156.291 219.594,135.004 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim21.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:29:42Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq5mVQWYgKNyTsMBIAsoJpZFNFKvKJ1dfFSCPwyMMkZi4kE
+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
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:43Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x32_1">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
+				s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
+				c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
+				c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
+				s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
+			<path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
+				c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
+				c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path opacity="0.65" enable-background="new    " d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227
+				c-4.198,0-7.346-1.21-9.445-3.629c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395
+				c2.059-2.65,4.931-3.979,8.616-3.979c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31
+				c0,3.012,0.577,5.271,1.73,6.776c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z
+				 M164.018,273.04h8.893c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
+				C164.555,267.705,164.114,269.932,164.018,273.04z"/>
+			<path opacity="0.4" enable-background="new    " d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184
+				c2.739,0.834,4.998,1.25,6.776,1.25c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92
+				c0-0.769-0.231-1.484-0.697-2.149c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079
+				c-0.873-0.634-1.599-1.454-2.175-2.464c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864
+				c1.843-1.41,4.205-2.115,7.09-2.115c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033
+				c-1.488,0-2.604,0.305-3.34,0.913s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379
+				c2.916,1.427,4.768,2.82,5.553,4.183c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319
+				C196.688,288.91,194.092,289.623,190.693,289.623z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/> 
+			<path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
+				c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
+				c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
+				c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
+				L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
+				c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
+				c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
+				c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
+				c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
+				/>
+			<path opacity="0.65" fill="#808080" enable-background="new    " d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742
+				c-0.753-0.24-1.382-0.359-1.887-0.359c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561
+				v12.306h-2.561v-12.306h-1.693v-1.67h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594
+				L198.402,301.594z"/>
+			<path opacity="0.4" fill="#808080" enable-background="new    " d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852
+				c-0.938-1.233-1.405-3.084-1.405-5.551c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874
+				c1.826,0,3.222,0.616,4.187,1.852c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385
+				C219.994,320.344,218.566,321,216.611,321z M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488
+				c0-1.481-0.256-2.726-0.769-3.731c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357
+				c-0.506,0.904-0.758,2.199-0.758,3.881c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
+			<path opacity="0.2" fill="#808080" enable-background="new    " d="M236.909,306.832l0.589,2.331
+				c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035v2.332c-0.201-0.016-0.501-0.023-0.9-0.023
+				c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561v-13.977H236.909z"/>
+			<path opacity="0.2" fill="#0F3AAC" enable-background="new    " d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576
+				c-1.942-0.428-4.047-0.642-6.313-0.642c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623
+				c2.072-2.009,4.935-3.013,8.588-3.013c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185
+				c0,5.362-1.309,9.544-3.926,12.546c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255
+				c-2.51-3.504-3.765-9.313-3.765-17.433c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369
+				L228.208,242.369z M223.594,285.854c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053
+				c0-3.291-0.502-5.764-1.506-7.418c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371
+				c-1.102,1.581-1.65,3.76-1.65,6.536c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766
+				S222.248,285.854,223.594,285.854z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_91_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_91_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g>
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g opacity="0.4">
+				<polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
+				<polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
+				<polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="167.563,71.017 134.989,88.863 172.143,106.38 202.594,85.751 "/>
+				<polygon fill="#FF9900" points="134.989,88.863 138.913,130.121 173.781,148.291 172.143,106.38 "/>
+				
+					<linearGradient id="XMLID_92_" gradientUnits="userSpaceOnUse" x1="16.4131" y1="469.0547" x2="51.2813" y2="469.0547" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_92_)" points="138.913,130.121 173.781,148.291 172.143,106.38 "/>
+				<polygon fill="#F27C0E" points="202.594,85.751 172.143,106.38 173.781,148.291 202.594,127.004 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim22.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,397 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:29:58Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq5mVQWYgKNyTsMBIAsoJpZFNFKvKJ1dfFSCPwyMMkZi4kE
+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
+xV2KuxV2KuxV/9k=
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:36Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;/9k=</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x32_2">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
+				s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
+				c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
+				c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
+				s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
+			<path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
+				c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
+				c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
+				c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
+				c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
+				C164.555,267.705,164.114,269.932,164.018,273.04z"/>
+			<path opacity="0.65" enable-background="new    " d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184
+				c2.739,0.834,4.998,1.25,6.776,1.25c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92
+				c0-0.769-0.231-1.484-0.697-2.149c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079
+				c-0.873-0.634-1.599-1.454-2.175-2.464c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864
+				c1.843-1.41,4.205-2.115,7.09-2.115c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033
+				c-1.488,0-2.604,0.305-3.34,0.913s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379
+				c2.916,1.427,4.768,2.82,5.553,4.183c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319
+				C196.688,288.91,194.092,289.623,190.693,289.623z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/> 
+			<path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
+				c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
+				c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
+				c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
+				L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
+				c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
+				c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
+				c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
+				c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
+				/>
+			<path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
+				c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
+				h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
+			<path opacity="0.65" fill="#808080" enable-background="new    " d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852
+				c-0.938-1.233-1.405-3.084-1.405-5.551c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874
+				c1.826,0,3.222,0.616,4.187,1.852c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385
+				C219.994,320.344,218.566,321,216.611,321z M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488
+				c0-1.481-0.256-2.726-0.769-3.731c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357
+				c-0.506,0.904-0.758,2.199-0.758,3.881c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
+			<path opacity="0.4" fill="#808080" enable-background="new    " d="M236.909,306.832l0.589,2.331
+				c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035v2.332c-0.201-0.016-0.501-0.023-0.9-0.023
+				c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561v-13.977H236.909z"/>
+			<path opacity="0.2" fill="#808080" enable-background="new    " d="M272.073,320.809h-2.56v-9.627
+				c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704c-0.896,0-1.588,0.353-2.072,1.058
+				s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096c-0.356-0.471-0.891-0.704-1.604-0.704
+				c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43l0.517,2.065
+				c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
+				c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
+				"/>
+			<path opacity="0.4" fill="#0F3AAC" enable-background="new    " d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576
+				c-1.942-0.428-4.047-0.642-6.313-0.642c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623
+				c2.072-2.009,4.935-3.013,8.588-3.013c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185
+				c0,5.362-1.309,9.544-3.926,12.546c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255
+				c-2.51-3.504-3.765-9.313-3.765-17.433c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369
+				L228.208,242.369z M223.594,285.854c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053
+				c0-3.291-0.502-5.764-1.506-7.418c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371
+				c-1.102,1.581-1.65,3.76-1.65,6.536c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766
+				S222.248,285.854,223.594,285.854z"/>
+			<path opacity="0.2" fill="#0F3AAC" enable-background="new    " d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255
+				c2.521,3.504,3.781,9.688,3.781,18.554c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206
+				c-4.358,0-7.647-1.153-9.87-3.461c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786
+				c0-8.693,1.291-14.836,3.877-18.425C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854
+				c2.18,0,3.776-1.223,4.791-3.668c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173
+				s-2.628-3.315-4.743-3.315c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024
+				c-0.225,2.478-0.336,5.863-0.336,10.156c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_87_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_87_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g>
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g opacity="0.65">
+				<polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
+				<polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
+				<polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="143.801,59.9 111.221,77.746 148.382,95.263 178.832,74.634 "/>
+				<polygon fill="#FF9900" points="111.221,77.746 115.145,119.004 150.02,137.174 148.382,95.263 "/>
+				
+					<linearGradient id="XMLID_88_" gradientUnits="userSpaceOnUse" x1="-7.355" y1="480.1719" x2="27.52" y2="480.1719" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_88_)" points="115.145,119.004 150.02,137.174 148.382,95.263 "/>
+				<polygon fill="#F27C0E" points="178.832,74.634 148.382,95.263 150.02,137.174 178.832,115.888 "/>
+			</g>
+			<g opacity="0.2">
+				<polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
+				<polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
+				<polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim23.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:30:16Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
+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
+sVdirsVdir//2Q==
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:29Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;irsVdirsVdirsVdir//Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x32_3">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
+				s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
+				c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
+				c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
+				s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
+			<path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
+				c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
+				c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
+				c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
+				c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
+				C164.555,267.705,164.114,269.932,164.018,273.04z"/>
+			<path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
+				c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
+				c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
+				c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
+				c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
+				s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
+				c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/> 
+			<path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
+				c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
+				c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
+				c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
+				L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
+				c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
+				c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
+				c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
+				c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
+				/>
+			<path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
+				c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
+				h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
+			<path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
+				c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
+				c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
+				 M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
+				c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
+				c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
+			<path opacity="0.65" fill="#808080" enable-background="new    " d="M236.909,306.832l0.589,2.331
+				c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035v2.332c-0.201-0.016-0.501-0.023-0.9-0.023
+				c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561v-13.977H236.909z"/>
+			<path opacity="0.4" fill="#808080" enable-background="new    " d="M272.073,320.809h-2.56v-9.627
+				c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704c-0.896,0-1.588,0.353-2.072,1.058
+				s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096c-0.356-0.471-0.891-0.704-1.604-0.704
+				c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43l0.517,2.065
+				c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
+				c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
+				"/>
+			<path opacity="0.65" fill="#0F3AAC" enable-background="new    " d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576
+				c-1.942-0.428-4.047-0.642-6.313-0.642c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623
+				c2.072-2.009,4.935-3.013,8.588-3.013c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185
+				c0,5.362-1.309,9.544-3.926,12.546c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255
+				c-2.51-3.504-3.765-9.313-3.765-17.433c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369
+				L228.208,242.369z M223.594,285.854c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053
+				c0-3.291-0.502-5.764-1.506-7.418c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371
+				c-1.102,1.581-1.65,3.76-1.65,6.536c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766
+				S222.248,285.854,223.594,285.854z"/>
+			<path opacity="0.4" fill="#0F3AAC" enable-background="new    " d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255
+				c2.521,3.504,3.781,9.688,3.781,18.554c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206
+				c-4.358,0-7.647-1.153-9.87-3.461c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786
+				c0-8.693,1.291-14.836,3.877-18.425C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854
+				c2.18,0,3.776-1.223,4.791-3.668c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173
+				s-2.628-3.315-4.743-3.315c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024
+				c-0.225,2.478-0.336,5.863-0.336,10.156c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_83_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_83_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g>
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g>
+				<polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
+				<polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
+				<polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
+				<polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				
+					<linearGradient id="XMLID_84_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_84_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				<polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
+			</g>
+			<g opacity="0.4">
+				<polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
+				<polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
+				<polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim24.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:30:28Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
+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
+FXYq7FXYq7FXYq7FX//Z
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:23Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSVPO3k9/MZ8srrNm3mBRyOlieP6xs&#xA;vMj068uXD4uPXjv0xVOsVdirsVdirsVeKfnr+c975dn/AMNeXZBHqrIHv72gYwK4qsaAinqMp5cv&#xA;2RSm5233ZPZgyjxJ/T0He4Oq1Jj6Y82FeXvyR/M3zXYprmray1m14okhF5LNLcOjbqzAfZBBqATX&#xA;2zPzdq6fCeCMbruqnHhpckxZL2f8pfIes+TNFvNO1TUF1Bprn1oJELkKhRV40fp8QJ2zRdo6uGeY&#xA;lEcOznafEYCiba/NDzrc6DaQ2OnME1C8BYy9TFENqgH9pjsD7HHQaUZCTL6QufLwihzYbov5f+av&#xA;MWkHWZNSKyzhmt0neR3k4kirNX4akbdczsusx4pcHDyaI4ZSF2rfl7541jTtdj0TV5pJrWaT6txm&#xA;JZ4ZuXFaManjy+Ej6cGs0sZQ448+fvThykGi9mzROc7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqw/8A&#xA;N7zlc+TPy213zJaKrXljAq2vIVUTTyJBEzDuFeUMR3xV8t/k7+UN/wDnYNW80ecvMl7IttcfVkCs&#xA;JJ2lKrIxrLyWOMBgFVV+VKYq+jvyg/JbTPyybV003VbrULXVPq3GG6CVhNv6tSpTiDz9bf4R074q&#xA;jPP352flx5EuVs/MGqBNRdQ40+3R55wp6M6oCEB7cyK9sVb8gfnV+XXny4ktPL2p+pqESmR7CeN4&#xA;J+ANCyq4AcDvwJp3xVMNf/M3ydoHmvSvKuqXjQazrQU6fD6blH9RzGtZAOC1dabnFUgk/wCch/ym&#xA;/T7aFb6z9cvY0meV7WGWWFRbRPNJ+9C8GokZ+wTiryvyjJ/zjx5j/PO18z6NrmpXHmPULl7m10t4&#xA;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&#xA;irsVdirsVdirsVdirsVdirsVdirsVf/Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x32_4">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
+				s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
+				c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
+				c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
+				s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
+			<path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
+				c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
+				c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
+				c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
+				c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
+				C164.555,267.705,164.114,269.932,164.018,273.04z"/>
+			<path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
+				c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
+				c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
+				c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
+				c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
+				s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
+				c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/> 
+			<path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
+				c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
+				c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
+				c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
+				L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
+				c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
+				c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
+				c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
+				c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
+				/>
+			<path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
+				c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
+				h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
+			<path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
+				c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
+				c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
+				 M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
+				c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
+				c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
+			<path fill="#808080" d="M236.909,306.832l0.589,2.331c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035
+				v2.332c-0.201-0.016-0.501-0.023-0.9-0.023c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561
+				v-13.977H236.909z"/>
+			<path opacity="0.65" fill="#808080" enable-background="new    " d="M272.073,320.809h-2.56v-9.627
+				c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704c-0.896,0-1.588,0.353-2.072,1.058
+				s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096c-0.356-0.471-0.891-0.704-1.604-0.704
+				c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43l0.517,2.065
+				c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
+				c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
+				"/>
+			<path fill="#0F3AAC" d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576c-1.942-0.428-4.047-0.642-6.313-0.642
+				c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623c2.072-2.009,4.935-3.013,8.588-3.013
+				c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185c0,5.362-1.309,9.544-3.926,12.546
+				c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255c-2.51-3.504-3.765-9.313-3.765-17.433
+				c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369L228.208,242.369z M223.594,285.854
+				c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053c0-3.291-0.502-5.764-1.506-7.418
+				c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371c-1.102,1.581-1.65,3.76-1.65,6.536
+				c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766S222.248,285.854,223.594,285.854z"/>
+			<path opacity="0.65" fill="#0F3AAC" enable-background="new    " d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255
+				c2.521,3.504,3.781,9.688,3.781,18.554c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206
+				c-4.358,0-7.647-1.153-9.87-3.461c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786
+				c0-8.693,1.291-14.836,3.877-18.425C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854
+				c2.18,0,3.776-1.223,4.791-3.668c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173
+				s-2.628-3.315-4.743-3.315c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024
+				c-0.225,2.478-0.336,5.863-0.336,10.156c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_79_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_79_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g>
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g>
+				<polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
+				<polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
+				<polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
+				<polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				
+					<linearGradient id="XMLID_80_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_80_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				<polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
+			</g>
+			<g opacity="0.65">
+				<polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
+				<polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
+				<polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim25.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:30:40Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
+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
+V2KuxV2KuxV2Kv8A/9k=
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:18Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;KuxV2KuxV2KuxV2Kv//Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x32_5">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
+				s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
+				c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
+				c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
+				s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
+			<path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
+				c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
+				c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
+				c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
+				c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
+				C164.555,267.705,164.114,269.932,164.018,273.04z"/>
+			<path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
+				c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
+				c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
+				c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
+				c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
+				s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
+				c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/> 
+			<path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
+				c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
+				c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
+				c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
+				L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
+				c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
+				c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
+				c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
+				c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
+				/>
+			<path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
+				c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
+				h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
+			<path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
+				c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
+				c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
+				 M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
+				c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
+				c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
+			<path fill="#808080" d="M236.909,306.832l0.589,2.331c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035
+				v2.332c-0.201-0.016-0.501-0.023-0.9-0.023c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561
+				v-13.977H236.909z"/>
+			<path fill="#808080" d="M272.073,320.809h-2.56v-9.627c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704
+				c-0.896,0-1.588,0.353-2.072,1.058s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096
+				c-0.356-0.471-0.891-0.704-1.604-0.704c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43
+				l0.517,2.065c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
+				c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
+				"/>
+			<path fill="#0F3AAC" d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576c-1.942-0.428-4.047-0.642-6.313-0.642
+				c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623c2.072-2.009,4.935-3.013,8.588-3.013
+				c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185c0,5.362-1.309,9.544-3.926,12.546
+				c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255c-2.51-3.504-3.765-9.313-3.765-17.433
+				c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369L228.208,242.369z M223.594,285.854
+				c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053c0-3.291-0.502-5.764-1.506-7.418
+				c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371c-1.102,1.581-1.65,3.76-1.65,6.536
+				c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766S222.248,285.854,223.594,285.854z"/>
+			<path fill="#0F3AAC" d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255c2.521,3.504,3.781,9.688,3.781,18.554
+				c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206c-4.358,0-7.647-1.153-9.87-3.461
+				c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786c0-8.693,1.291-14.836,3.877-18.425
+				C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854c2.18,0,3.776-1.223,4.791-3.668
+				c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173s-2.628-3.315-4.743-3.315
+				c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024c-0.225,2.478-0.336,5.863-0.336,10.156
+				c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_75_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_75_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g>
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g>
+				<polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
+				<polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
+				<polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
+				<polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				
+					<linearGradient id="XMLID_76_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_76_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				<polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
+			</g>
+			<g>
+				<polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
+				<polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
+				<polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim26.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:30:56Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
+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
+V2KuxV2KuxV2Kv8A/9k=
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:12Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;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&#xA;KuxV2KuxV2KuxV2Kv//Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x32_6">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
+				s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
+				c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
+				c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
+				s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
+			<path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
+				c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
+				c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
+				c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
+				c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
+				C164.555,267.705,164.114,269.932,164.018,273.04z"/>
+			<path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
+				c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
+				c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
+				c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
+				c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
+				s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
+				c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/> 
+			<path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
+				c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
+				c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
+				c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
+				L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
+				c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
+				c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
+				c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
+				c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
+				/>
+			<path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
+				c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
+				h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
+			<path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
+				c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
+				c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
+				 M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
+				c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
+				c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
+			<path fill="#808080" d="M236.909,306.832l0.589,2.331c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035
+				v2.332c-0.201-0.016-0.501-0.023-0.9-0.023c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561
+				v-13.977H236.909z"/>
+			<path fill="#808080" d="M272.073,320.809h-2.56v-9.627c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704
+				c-0.896,0-1.588,0.353-2.072,1.058s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096
+				c-0.356-0.471-0.891-0.704-1.604-0.704c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43
+				l0.517,2.065c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
+				c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
+				"/>
+			<path fill="#0F3AAC" d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576c-1.942-0.428-4.047-0.642-6.313-0.642
+				c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623c2.072-2.009,4.935-3.013,8.588-3.013
+				c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185c0,5.362-1.309,9.544-3.926,12.546
+				c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255c-2.51-3.504-3.765-9.313-3.765-17.433
+				c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369L228.208,242.369z M223.594,285.854
+				c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053c0-3.291-0.502-5.764-1.506-7.418
+				c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371c-1.102,1.581-1.65,3.76-1.65,6.536
+				c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766S222.248,285.854,223.594,285.854z"/>
+			<path fill="#0F3AAC" d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255c2.521,3.504,3.781,9.688,3.781,18.554
+				c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206c-4.358,0-7.647-1.153-9.87-3.461
+				c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786c0-8.693,1.291-14.836,3.877-18.425
+				C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854c2.18,0,3.776-1.223,4.791-3.668
+				c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173s-2.628-3.315-4.743-3.315
+				c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024c-0.225,2.478-0.336,5.863-0.336,10.156
+				c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_71_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_71_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g>
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g>
+				<polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
+				<polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
+				<polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
+				<polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				
+					<linearGradient id="XMLID_72_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_72_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				<polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
+			</g>
+			<g>
+				<polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
+				<polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
+				<polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
+			</g>
+		</g>
+	</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/s60/BmpAnim27.svg	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In . SVG Version: 6.0.0 Build 78)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
+	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+	 width="352" height="352" viewBox="0 0 352 352" overflow="visible" enable-background="new 0 0 352 352" xml:space="preserve">
+	<metadata>
+		<x:xmpmeta  x:xmptk="XMP toolkit 3.0-29, framework 1.6" xmlns:x="adobe:ns:meta/">
+			<rdf:RDF  xmlns:iX="http://ns.adobe.com/iX/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+				<rdf:Description  rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:tiff="http://ns.adobe.com/tiff/1.0/"></rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:xap="http://ns.adobe.com/xap/1.0/">
+					<xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+					<xap:ModifyDate>2005-04-04T09:32:40Z</xap:ModifyDate>
+					<xap:CreatorTool>Illustrator</xap:CreatorTool>
+					<xap:Thumbnails>
+						<rdf:Alt>
+							<rdf:li  rdf:parseType="Resource">
+								<xapGImg:format>JPEG</xapGImg:format>
+								<xapGImg:width>256</xapGImg:width>
+								<xapGImg:height>256</xapGImg:height>
+								<xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN
+LIpopV5ROrr4qQR+GRhkjMXEghEZiQsG1+TZOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
+uxV2KuxV2KuxV2KuxVZNPDBGZJnEca9WY0GU588MUTOZEYjqWUIGRoCyxvUvN43jsF9vXcf8RX+u
+cN2p7Zc46Yf5x/QP1/J22DszrP5McmubiaUyyyM8h35k7/RnD59Tkyz45yMpd7tY44xFAbJlY+Zt
+TtqK7fWIx+zJufobr9+bzQe1OrwbSPiR7pc/9Nz+duJm7Pxz5ek+TIbHzPptzRZG+ryH9mT7P0N0
+++mdtoParS59pHw5f0uX+m5fOnV5uz8kOXqHkq32vWdsOKH1peyodvpbNjqu1cWMek8UvL9bpdRr
+I49ucmOX2qXl4f3r0j7Rrso/r9Oc3qtdkzH1Hbu6OnzameTmdu5DxTTQvzidkbxUkH8MxseSUDcS
+QWmMzE2DSa2vmW8joJ1Ey+P2W+8bfhm3wdtZI7THEPkXOxdozH1bpxa67p9xQc/Sc/sybfj0zc4O
+1MOTrwnz/FOxxa3HPrR80wBBFRuD0ObEFy3Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXYq7FUq8y602j6eLpY/ULSCPfovIE8iO/TNR232hPSYOOABkTW/Ic93N0Gk8fJw3W1sKm1aXU
+m9WSf1fAdAtfBe2eTa/W6jUT4s0jL7h7uj0MNMMQoClPMFk7FXYqslliijMkrBEXqx2GGMTI0OaQ
+CdglUPmT1tSgt7f4LdnAeRv2h7A9M3/Z+CeMiz8Ojg9tdmYzpZ5JxHHGO39rJs3T5g7FVG7vLWzg
+ae6lWGFersaD5fPG2UYmRoMQ1XzXe31YtP5WlqdjcH+9cf5I/YHv1zrOxvZPNqqnlvHi/wBkfcOn
+vPyL0fZ/YMp1LJsHaV5s8w6WI0tb1/RjAVYZDzSg/wAlq0r3I3z0mHY+mhjGOMajH5/Pq9R+RxcP
+DTMdK/NlDxTVbPie81uaj/gGP/G2a/P2F1xy+B/W4mTsz+afmzHS/MuhaoALK8jkkP8AuonhJ/wD
+UbNPn0eXF9UT+h1+TTzh9QTPMZpdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirHfP0XP
+y1O1P7p42+9wv/G2aD2mhejke4xP21+l2vY0q1A8wfueWI7IwZSVYdCNs8zezIB5o+31iVaCYcx/
+MNjlE8APLZxZ6UHkmcF1BOKxuCe46H7sxp4zHm4k8co80LqOr2tktGPOb9mIdfp8MuwaWWTflHvZ
+4sEp+5i1/qV1eycpm+EfZjH2Rm6w4I4xQdnjwxhyQ8X94vzzJx/UHW9vf4ll/qpvZ6vf2lBFISg/
+3W/xL/Z9GZ744jL/AM9xWdl6j2/78ninxfu6nux65fpdNPPljjxi5y5OVpNKc8xAMdmu59SkF3dz
+i5b/AHWFP7pP9RRt9PXPU+xfZTDpankrJl/2MfcP0n4U9xoOyceAWd5N51rtnYq7FWwSDUdcVR2h
+/mprFr5i0vQ7W8N2L27gtZRMfUSNZZVjNGPxVAboDmj7QwYDEkR9QHTZ1uqx4qNDd77nLuldirsV
+dirsVdirsVdirsVdirsVdirsVdirsVdirsVSjzbF6vlu/Xwj5f8AAEN/DNV23Di0eQf0fu3c7s2V
+aiHveQZ5S924Ak0G5PbFCsIWT4iaMOlO2WcFc2BkCkLli7ciWapqx6k5sacgLcUrov7xfnlmP6g6
+jt7/ABLL/VRDyBfc+Gdf2P7OZ9aeL6MX84/70dfu83wrXdqY8G31T7v19yhJSQFXAZT1Uioz1Tsz
+sfT6KHDjG/WR5n8d3J5LP2jmyTE+IgjlW1e5Ln0aNHMtlI1pKevDdD80O2bOnqey/bvWaeo5f30P
+PaX+m6/EFr6/qNrtewerGP8Aj4g3/wCCTrgfR+y/a7Q6ygJcE/5s9vkeR+d+SNtr21ul5QSK47gd
+R8x1wvTrrm5gtoWmncRxL9pm6ZGUgBZQSBzYRrvm64vOVvZ1httwz9Hcf8ajNfm1JlsOTiZMxOw5
+Kv5ZQ+t+YPl9Ntr2J9/8huf/ABrmu1J/dy9ziZvoL7CznnVOxV2KuxV2KuxV2KuxV2KuxV2KuxV2
+KuxV2KuxV2KoTWIvV0i9i/nglX70IzE18OLBkj3wl9zfpZcOWJ/pD73jVtaTXDUjGw+0x6DPI8eK
+Uzs99kyCI3TFbOO3Xb4n7sczBhEB5uIcpkhZ++UTb4Mak/vG+Z/XmYHMHJaSB1y3DhnlmIQFykaA
+as+eGGByTPDCIsnuC5QQa989T7C9iIYqyar1z/mfwj3/AM77ve+Ie1X/AAQ5aqMtPpBw4jsZn6pe
+4fwj/Zf1W89BAAFDk+Wk27CrsVdiqU6ymk28f1i4rDMa+m8R4yMfanX6ctxYZZDQen7E9oO0NORH
+FPigP4Zbx/WP80hhGr6leXkyieVnRAPTViNqj2A3981WuFZDG+T7Rh1Es2KE5bGUQfmLQGYbNmv5
+MQ+t+ZuhpttJM+/T4LeR/wDjXMbWH90WrP8AQX1pmgdW7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq06h0ZT0YEH5HBIWKSDRtiN/5TmtY/wDQB6sC9Ixs4/5q/X7ZyGr7BnjH7r1R7uv7fxs7
+zD2kJn17H7P2MXulZGZWBVlNGUihBHiM5vLEg0ebuMZB3CWz98wZuZBjc396/wDrH9eZceQcwIe6
+WtrN7Ix+4ZvvZrHOXaGExF1khfkOIW6j2ghxdn5x/tU/siSk9vf3MGytyT+Rtxn0ZPDGT8yTxRlz
+TO31W3k2f923v0+/MaWGQ83DnppDlujAQRUbg9DlLj03iqUaz5ht7AGKKkt1/J+yv+t/TMzT6Q5N
+ztFz9LoZZNztH72F3V3cXUxmncvI3c9h4Adhm4hjERQd9jxxgKiKCDuf74/Jf+IjOL7Q/v5+99b0
+P+L4/wDhcP8AchSzDcp6H+QkPqfmVYvQfuYbh9+u8TJt7/HmHrj+6LRqfofU2aN1rsVdirsVdirs
+VdirsVdirsVdirsVdirsVdirsVdirsVdiqV69ZaHLavPqZSFEFPrJIRl8KN39hvmFrOz8OoHrG/f
+1/H2OZo8uYSAx2T3PJ768003ckdpK8kAP7uWReHL6Kn8c4vtH2dzYvVj/eR/2Xy6/D5PbYcWThBk
+Kl3DdIZYy08h7cjv9OHsvsfJnAMvTDv/AFOZEbLbhQLWUAbcG/VnoPZWmhgyQjAUOKP3uF2xEHRZ
+h/tU/wDcli2ervy67FVaC7uIP7tyB/Kdx92QljjLmwljjLmFHWfMd2kKwwqInkB5TDrT/J8Mlp9J
+EmzvTbpdBAniO47mLkkkkmpO5JzaO2diqleAC4IH8qH70GcLrDeaX9Yvrel/uYf1I/7kL9M0y/1S
+9isbCBri6mNI4kFSfc+AHcnpmBqNRDDAzyHhiOreTT6C/KXyDY+WNSjmuGF3rc8bpNKpPpQKVqUj
+/mJIoWP0Z5+Pa06zWjBjH7rf37An8Bq1GKRxmR2D13N86t2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
+2KuxV2KuxV2KuxV5D/zkPcXlpZaHe20hjaOaeNqdDzVGoR0P2O+TgLe69iIQnPLCQu4xPyv9bzHS
+/OdvLSO/X0X6eqtSh+Y6jCcfc9fqOypR3huO7qyOOSORA8bB0bdWU1Byt1UokGi6UVicD+U/qy3A
+anH3hxNdEnBMD+ZL7mJ56m/KrsVdiqVa31h/2X8MyNNzPw/S5+l+n4pZmW5LsVTbQ/KOseZdWa3s
+I+MMaxm5u5Nool4Ddm8T2UbnPMO3e18OjMp5T1NDqfx3vrmAVjgP6Mfue0+XfLmj+WrI2ulqWmkA
+F3qDiksp8B/Ingozwvt72lza6fOoDkPx9/3Oxw6brLmyfyqtdYjPgrn8KYPZKN66PlGX3Me0T+6P
+wZvnrLzrsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiryz/AJyKtxJ5Ks5h9qHUI/8A
+gWilB/GmTx83s/YedayQ78Z++L5zy59VRmn6rf2D8raUqD9qM7ofmMBALRm00Mo9QZF/ju0Sxkku
+YHE6igRN1YnbqemQEKILz+u7MMYkA7S2+xa0MyJG8kTxLKoeP1EZCynoQGAz0jSa7BqYmWKcZgbG
+jdHuPc/I+s0WXTZDjyx4ZD4/IjY/BbmW4rsVSrW/tQ/Jv4Zkabmfh+lz9L9PxSzMtyU00TQLnVJG
+fl6FlEf9Iu2FVX2UftOeyjOe9oPaPB2bjuXqyy+mA5y/4mPfI/Czs5el0ksp7ojmfx1e9Q21vY2s
+djZxrDaxgHgihOTFRV2A6sc+Se0+1s+tynJlO5L7Fo8EYQHU03mtcxOvKIB1YnwiYj7wM6r2OF6z
+/MP6HX9p/wB18WaZ6o8+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwD89Lf1fy4v
+3/3xLbyffMqf8b5OHN6b2QnXaEB/OEh/sSf0Pl/Ln2J2KqV05S3dgaMOPE+4YHARezhdoR4sddHt
+K3PKH6vcRrc23++ZBUD/AFT1XPLtNqcunn4mGUsc++Jr59/xfm+YjkjwzAlHzSy78rW1xV9Kl4yf
+8scxAJ/1H6H6c9K7G/4IpFQ1sf8AkpAf7qP6Y/6V57V+zwPqwH/NP6D+v5sdubW5tZjDcRtFKvVW
+FDnp2k1mHU4xkxSE4HqHmc2GeOXDMGJSXW/tQ/Jv4ZsdNzPw/S5Wl+n4o7QvK5uIl1DUi0GnH+7Q
+bSzkdo69F8Wzkfab2yhorwaesmp6/wA2H9bz7o/Ouu70mgMxxz2h9p9362QzTh0SGKNYLWEUgt02
+VB/EnuTuc8fy5Z5chyZJGeSXOR5n9Q7hyDtyRVAVEdHqE32/9iv/ABEZ5fVPpWn/ALse5Zi3J95N
+B/SUp7CEj72XOw9ih/hUj/tZ/wB1F1vah/dj+t+gswz050LsVdirsVdirsVdirsVdirsVdirsVdi
+rsVdirsVdirsVdirFPzVtvrH5ea5HSvG39Tt/up1k7/6uSjzd37OZOHX4j/Sr5inyXl77a7FVC+H
++jP7U/WMXG1n92XsNuawRmtaqpr9GeU5B6j735vyipn3qmQa1c3EU8P1e+iW6g7B/tr/AKr9RmXo
+dfn0mTxMEzjl5cj7xyPxY5scMseHIBIfjkUkvtA8u29zHesXu1UH0LGUUUP4yMPtKPDv3zuD7ea/
+PpziiI48h2lkj3f0R0kepvbpRdZj7KwYZWCZDpE/p8lC5uZrmUyytyY7AdAAOgA7AZzMYCI2cqUj
+I2VLJMXq9wpWUqdiAoI9wBnmcjZt9MwCoBfZWVxeXCwQLydu/YDxJ8MytFocupyDHjFyP2eZ8mWX
+LHHHikzjSdIt9Og4p8UzD97L3PsPbPW+x+xsWix1HeZ+qXf+x5zU6mWU78u5H5uHGdirsVdirsVd
+irsVdirsVdirsVdirsVdirsVdirsVdirsVUbyztb20ms7uJZra4Ro5onFVZGFCDi2YssschOJqUT
+YLxjzr/zj2repeeVJuJ3Y6ZcNt8opT+p/wDgssGTve/7K9tiKhqh/nj9I/V8njOqaTqelXj2WpWs
+lpdR/ailUqfmK9R4EbZaC99p9TjzQE8chKJ6hATqDBICK/Cx+4VxY6z+6Pw+96xprBtOtWG4MMZB
++ajPLNSKyS/rH735z1grNMf0j96Jylx3Yql+q/7q/wBl/DNnovpPvaMyX5mNLsVexpp9xfak8MA3
+rVmPRRTqc8/7N7Oy6vIMeMdBZ6Ad5fSDmjjx2WZaZpdtp9uIohVz/eSnqx/p7Z692V2Vi0WPgh9X
+WXU/s7g6DUaiWWVlGZs2h2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpX5
+g8saD5hszZ6xZx3UW/BmFHQnvG4oyn5HCDTmaLtDPpZ8eKRifsPvHIvEfOX/ADj3rNszy+WJhf20
+vwC1nZY5o+fw/bNEdVrUnY+xywZO973Se2WLLjMNQOCdcxvE19o+1y6dNpgGmzsrTWI+rSsleJaL
+4GK1oaVXPM9YKzT/AK0vvfKdXkE805DrIn7W8xnHdiqXar9qP5H+GbTRfQfe0ZeaAzLaU48s+V9S
+8w34tbNeKLvPcNXhGvifEnsO+X6fTyyyoNuLCZmg+hLe1t7cMIUCBzyanc5v9HocOmjw4oiIegnk
+lLmVXMtg7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqx7X/ACRo
++rcpQv1W8ap9eID4ie7r0b9fvmq1vZGLPv8ATPvH6WqeES97znXfKOs6OxaaL1bbtcxfEn+y7r9O
+cprOzMuDci494/GzhzxGKS5r2tLtV+1H8j/DNpovoPvaMvNMfKPk7UPMd5wi/dWURH1m6I2Ufyr/
+ADMfD782um0ssp25d6cOA5D5Pc9G0XT9GsI7Gwj9OFNyTuzMerOe5OdHixRxx4Yu4x4xAUEdljN2
+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVzKGBVgCpFCDu
+CDiRasS178u9LvuU1hSyuTvxUfumPuo+z/sfuzR6zsPHk3h6JfZ+z4NE8APLZh9r+WGs3usLb34+
+rWMG81wpDcweixe5p3G3fwzD0PZWSJMZ7C+f6nE/KylLfk9V07TrLTrOKzsohDbwiiIv6z4k9znS
+wgIChydhGIiKCIybJ2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
+V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
+2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
+uxV2KuxV2KuxV2KpKnnbye/mM+WV1mzbzAo5HSxPH9Y2XmR6deXLh8XHrx36YqnWKuxV2KuxV2Kv
+FPz1/Oe98uz/AOGvLsgj1VkD397QMYFcVWNART1GU8uX7IpTc7b7snswZR4k/p6DvcHVakx9MebC
+vL35I/mb5rsU1zVtZaza8USQi8lmluHRt1ZgPsgg1AJr7Zn5u1dPhPBGN13VTjw0uSYsl7P+UvkP
+WfJmi3mnapqC6g01z60EiFyFQoq8aP0+IE7Zou0dXDPMSiOHZztPiMBRNsf/AD7/ADSvvKOn2ula
+M4j1nUlZ2uKAtBAvw8lB25O2yntQ96Zk9kaAZpGU/pj9pa9XnMBQ5l5l5Y/Jz8wfOnlw+Z5tdZJ7
+sO9lFdSTSSTBSVq8lTwDMDTr45ts/aWHBPwxHYc6rZxcemnOPFaJ/Jr81vMui+bIfKvmO5mubC5n
++pBLli8trc8uCgO1Tx5/Cy1oOo6bw7T7PxzxnJjFEC9uoTptRKMuGXJ9O5ybtXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FWH/m95yufJn5ba75ktFVryxgVbXkKqJp5EgiZh3CvKGI74q+W/wAnfyhv/wA7
+Bq3mjzl5kvZFtrj6sgVhJO0pVZGNZeSxxgMAqqvypTFX0d+UH5LaZ+WTaumm6rdaha6p9W4w3QSs
+Jt/VqVKcQefrb/COnfFUZ5+/Oz8uPIlytn5g1QJqLqHGn26PPOFPRnVAQgPbmRXtirfkD86vy68+
+XElp5e1P1NQiUyPYTxvBPwBoWVXADgd+BNO+Kphr/wCZvk7QPNeleVdUvGg1nWgp0+H03KP6jmNa
+yAcFq603OKpBJ/zkP+U36fbQrfWfrl7GkzyvawyywqLaJ5pP3oXg1EjP2CcVeV+UZP8AnHjzH+ed
+r5n0bXNSuPMeoXL3NrpbwyR2xuvSYs5dolYLQFgpf7Xt8OKvofzP5q8veVtHl1jzBfR6fpsNA88t
+d2PRUVQzux7KoJxV51pX/OU/5MajqKWI1eS1aRgkdxdW8sUJJNBWQghB7vQYq9Tu9QsbOxlv7u4j
+t7GCMzTXUjBYkjUci7OTQKBvXFXkt5/zlh+S1tetbLqdxcKrcWuYbWYxdaEgsFYgeIX5VxV6b5d8
+z6J5j0C11/SLn6xpN4jSQXJV46qrFWJWQKwoykbjFXxiuuafq/5gDW9fY/o661H63frxLkwerzaM
+KP8AI+AZ3/hShh4IfUI0Pe6HiEp3Llb26X/nKzQFueEOg3TWlaCVpY0kp/xjAZf+HzQj2fnW8hbn
+fnx3PUvI/n3y75z0s6ho0rH0iEurWUBZoWIqA6gnr2IJB+g5qNVpJ4JcM/7XLxZYzFh80f8AORl+
+9z+aN7CzVFjb20CDwDRCan3zE51XYsK04PeT+r9Dq9abyF9OeQoEt/I/l6FPsx6baLWlK/uEqdvH
+OT1ZvNM/0j97tcQ9A9z5H/NKth+aWvyWx4PHqDzodtnZhITtT9o52mg9Wnhf8102fbIfe+0oJVmg
+jlUELIocA9aMK5whFGnehfgV2KuxV2KuxV2KuxV2KuxV2KuxV2KpF568pWXm/wAoar5avWMcGpwG
+L1QKmNwQ0cgHfhIqtT2xV8UCH85v+cffMzzKhjsblwjS0M2mXypUqCfhowBNPsyD5Yq+pPyq/Pny
+/wCfvK+oalFA1nq+jwNPqelFuRCqpYPE9BzRuNOlQdj2JVfMn5GeZvJ2pfmzqfm38zL62q8M11A1
+8OcTXksiKtFIYfu4y3BabbU6Yqu8/wDmLyVov5/6R5k/L64t/wBFLNZ3U/1EcIRI0hS5jVQBxEkf
+2gB+0cVZD/zms7x/mFoEkbFHTS1ZHU0IIuZSCCMVe5flr/zj5+WnlvS9Hv8A9Erda9HbK1zqE8kr
+l5ZoeM37ov6XAh2XjxpTxO+KvBdAs7Oy/wCcyBaWcEdtaw6pcLFBCixxov1R9lVQAB8sVXf85ceZ
+ptW/NXTvK9zcG30bSYoBJv8ACsl2Q8sx+URQfR74qmv/ADkNqP5C6h+XVpD5Mn0w61pc0EdmtigS
+Y21GV0duKl135HkSa7+OKq93eeZfNH/OGtstn6tzNpU4g1BUBZmsrKdiuw/ZiT0ifZa4ql//ADjJ
+56/Jiw0OXy15tsbODWry6ZhqWo28UsE8bhQkRmdW9ILx+y9E71qcVfV8Ol6Vpfl57HSbaGz06GCT
+6vbWyLHCiuGc8FSigEsTtkofUES5Pi38vNAt/MHnbRtHuQTbXdyouFU0JiSryAHtVVIrnfazMceK
+UhzAdDhhxTAfUn5n/l75XvPy91WG20u2t5tPtJbmwkgiSN43t0LhVZQNmCcSM5HQazJHPEmRPEaP
+xdtnwxMDtyeIf8416rdWn5jLZRsfQ1G1mjnSu1Yl9VGp4gpT6Tm/7cxg4L6xI/U4GilU670t/wCc
+gY3T82daZhtItqy/L6pEv61y3sc/4NH4/eWOr/vD+Oj6p8lkHydoJBqDp1oQR/xgTOQ1X97L+sfv
+dvi+ke58h/nD/wCTO8xf8xbf8RGdr2b/AIvD3Ol1P94X2dYKy2NurAqyxIGU7EEKNjnCz5l3g5K+
+RS7FXYq7FXYq7FXYq7FXYq7FXYq7FUHq+saTo2nyajq15Dp+nwlBNd3MixRJ6jiNObuQq1dgNzir
+FvOfnP8AKmbyjqB8w6vpl5oU0DieH14ZvWWleMSKxLyVHwcd69MVfLn/ADh95fv9U84+Y3QvHpx0
+Seyu5lFRzu5IxEu/ekbsP9XFUj/Ie28laL+aN95e/MuwtBE0U1iP0mqGGC9ilUjmZPhTkEZQx9vH
+FX1M3k//AJxztru0iOn+Wo7u5mjhsoh9V9WSd2CxpEoPJmLEUAxV4H/zm1/yn+hf9sof9RMuKvsD
+Sf8AjlWX/GCL/iAxV8f6Z/62k/8A21bj/qDfFUJ/zlvoc+j/AJv2XmC5t/rGmapb28yhh8EjWhEU
+0Jr/AJCoT7Nir3rR9A/5xl1bRoNYtNP8tixnjEgaVbWJkBFSsiuQUZejA9MVZlot/wDln5e8tWkm
+kXelaZ5avpmjsZYZYIrOad+XJYnqI3ZvSbod6HFXzV/zlZ5E/KfStLsvMHlqS1stevbpY5dOsJIz
+DNC0bM03ooaR8Sq/EgANdxU1xV7P/wA4vXurXv5K6I+pM0nptcQWjvuTbRTukY37LQoPYDFXg9jF
+/gH83II9QUpb6PqQEhIJP1YvtIO5rCwcZ3Uz+Y0x4eco/b/a6Mfu8m/QvpD80fPnluz/AC51a4g1
+O2uH1G0ltdPEEySGV50MQMfAmvDlyJ7Uzl9BpMks8QYkcJs7dztM+WIgd+bxf/nGXQLq889S6uEI
+tNLtn5y9vVnHponzK8z9Gb3t3MI4eHrI/c4Ohhc77kR/zlB5fuLXzfZa2qH6pqNqsRkA29a3JDAn
+/UZafTkOwcwOIw6xP2FOuhUge961+U3nzy7c/lnpk9xqEFu2j2iWt+krqjRfVl4AsCejIoIPf55p
+u0dJMaiQAJ4jY+LmafLE4xvyfOMcL+e/zXYWqM0Os6o8gFCSts0pdmav8kIqc6gn8vpt/wCGP2/2
+usrxMnvL7TzhHeOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpP5v8p6J5u8u3nl7XImn0u+CC4jR2jY+
+lIsqEOhBFHjU4q8nT/nDv8n1uBKf0kyVr6Bul4U8KiMPT/ZYq9W8o+S/K/lDSF0ny5p8en2KnmyR
+1LO9AC8jsWd2oOrEnFWMfmB+RH5a+e7z9Ia3pzJqhUI2o2kjQTMoFBzpVHoBQF1JHTpiqR+Vv+cW
+vyn8u6zZ6xbwXt3fafPHdWbXNyxVJoWDxvxiEXLiyg0ao8a4qn35ifkf5D/MDVLbU/MUVxJdWkH1
+aEwTGJfT5s+4ANTVzirPIIUggjhj+xEoRa7miigxVgcP5H+Q4fzCPn5Irj/EJne5MhmPpeo8ZjP7
+ulKcWxVknm/yV5X84aQ2keZNPj1CxZg6o/JWRxsHjkQq6NvSqkbbdMVeVj/nDz8nxceqRqRjqT9X
+N0OHyqI+f/DYqzbWfyW/L7V/I9h5JubKRfL+lyiexgjnlDxygSDl6hZmb+/fZqjf5Yqw3Tv+cQvy
+dtLtLiWC/vkU1+rXF0fTPz9JYn/4bFXsljY2VhZQWNjAltZ2yLFb28ShEREFFVVGwAGKsP8AzD/K
+Pyt534T3yva6nEvCLULegfj1CyKQVdQfHfwIzP0faOTT7DePcWjNp45OfN5/af8AOKOkLcBrvzDc
+TW9d44rdInpTpzZ5R/wubKXtBKtoC/e4w7PHUvX/ACr5T0LytpEelaLbC3tUPJyTyeRyADJIx3Zj
+T+A2zS6jUTzS4pmy5uPGICgu80eVtE80aPLpOs24ntJaEdnjcfZkjbqrDx+jpg0+onilxQNFcmMT
+FF47c/8AOKOlNccrXzDPFb1NI5bdJHpTYc1eMf8AC5vI+0Eq3gL97hHs8d70L8vfyk8reSA89gJL
+rUpl4S6hcEGTgSCUQKAqKSPn4nNZrO0cmo2ltHuDk4dPHHy5s2zAb3Yq7FXYq7FXYq7FXYq7FXYq
+7FXYq7FVK6ure1gae4cRxJTk59zQfjlOo1EMMDOZqIZ48cpy4Yiyx+fzmgnAht+cA6sxox+XWmcT
+n9tojJWPHePzNE+7u/HJ2kOyjw7ndNdL13T9SaSO3c+tEA0sTDdQ1aVptvTOo7L7Xxa2PFCwRzBH
+4BcLUaSeKjLkeqYZtHFYnfeeL2HUNWtrXR3vIdG4NeTJMikI6F+QRhU0CnYYqyPTNRt9S063v7Yk
+wXMayR12IDCtD7jocVS+LW7h/N0+imNPq8Vkt0JN+ZZpOFOtKUxVN5ZooYmlmdY4kBZ5HIVVA6kk
+7DFUNY6xpN+zLYXtvdsgq4glSQqD0rwJpiqteXltZ2st1dSLDbwqXlkY0AAxVAaB5k0nXbQXFhMr
+HcvAWUyoORVS6Akry41FcVQvnHzTF5e05Jh6b3dxIIraGVwgJJHJz34pX4sVTLR57y40+Ka7e3kl
+kBYSWbM8DKT8JRm3NRirrzWdIspVhvb63tpXFUjmlSNmFaVAYgnFUYCCKjcHocVQ13qmmWdRd3cN
+txUO3qyIlFJ4hjyI2J2xVEghgCDUHcEdCMVQMmu6HHKsMmo2ySs5jWNpowxdW4soBNahtiPHFV9t
+rGk3Vy9rbXtvPcx19SCOVHdeJoaqpJFDiqLxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVJ/N8DT+XL
+6NQWYorADckq6t2+WantzHx6PIPL7iC5/Zk+HURP45PKb2XULGyb96VY0HHrxB988yjpRxDiG72U
+RDJLkyT8oFkM+qSsGKlYhzNaFqsaV8c7b2ZjvPu2/S6b2iIqA9/6HpWda8u83isNd1DzV5wstMnt
+7eK5NtFeTTK7uEeF1/dBSBWhPXFWe6RpkOl6Xa6fAS0VrGsas3U8RuTTx64qkFv/AOTNu/8AtlR/
+8n8VTbzPqcGl6Be389uLqKGP4rciofkQoVtm2q2+3TFWHaQ1yfzA017hLKGebTpHeKwDBQjHkokJ
+2Y4qznWIll0m8RkDhoJPhIrU8TTb54qkX5ZxW6+TdOkjRBK6P6jqByakrj4iNzTFUN+aMUT6Pp7M
+isw1G3UEgE0atR9NMVZiiJGgSNQiKKKqigA8ABirziODR7nUfOx1lYXu4yfTM/HmkAiPpmPluP2f
+s96e2Ksp8gtct5O0k3FfU9AAcuvAEiP/AISmKpVrGmWGo/mTYQ30CXMMemvIIpQGQsJSoJU7H7Xf
+FWaABQABQDYAdAMVeTyadYzaD57upYEe5TUbkRzMoLqEkDDi3UbnFU5j0uw0/wAy+SPqcKwmW2uk
+mKAKX4WqsC9KcjyYmpxVn+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuIBFDuD1GKsd1jyNoupsrMH
+gHINIsRAVgDUihrx+jNJqewNPlmJC499cj+r4O003a2XEK5+9O7Gxs7G2S1s4lhgjFEjUUH9p9zm
+3xYY44iMBUQ6/LllklxSNkq+WNaGt9Nsba6ubuCFY7m8Km5lHVygIWvyBxVE4qh10+yW+a/EKi8e
+MQtP+0YweQX5VxVVngguIXgnjWWGQFZI3AZWU9QQdiMVS/T/ACzoGnSrNY2ENvKvLjJGoDfGAG36
+9sVTPFUBpug6Npbyvp9nFatPT1TEvHlStP14qrX+m2N/EkV5Cs8cbrKit0Dr9lvoxVE4qlmo+WfL
++pXC3N/YQ3M6AASOoJoOgPiPniqZKqqoVQFVRRVGwAHYYqoNp9k18t+YVN4kZhWf9oRk8ivyriqI
+xVAfoLR/QvLf6qno37tLeJvSR3NWZvniqq2l6e09pO0CmaxDLZv3jDqEYL81FMVRWKuxV2KuxV2K
+uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
+xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
+V2KuxV2KuxV2Kv8A/9k=
+									</xapGImg:image>
+							</rdf:li>
+						</rdf:Alt>
+					</xap:Thumbnails>
+				</rdf:Description>
+				<rdf:Description  rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+					<dc:format>image/svg+xml</dc:format>
+				</rdf:Description>
+			</rdf:RDF>
+		</x:xmpmeta>
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about=''
+  xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:xap='http://ns.adobe.com/xap/1.0/'
+  xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
+  <xap:CreateDate>2005-04-04T07:58:17Z</xap:CreateDate>
+  <xap:ModifyDate>2005-04-20T12:01:04Z</xap:ModifyDate>
+  <xap:CreatorTool>Illustrator</xap:CreatorTool>
+  <xap:Thumbnails>
+   <rdf:Alt>
+    <rdf:li rdf:parseType='Resource'>
+     <xapGImg:format>JPEG</xapGImg:format>
+     <xapGImg:width>256</xapGImg:width>
+     <xapGImg:height>256</xapGImg:height>
+     <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq0XQMFLAM32VJ3NPDImcQQCdymjzbySHYq7FXMyqCzEBRuSdhgJAFlBN&#xA;LIpopV5ROrr4qQR+GRhkjMXEghEZiQsG1+TZOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxVZNPDBGZJnEca9WY0GU588MUTOZEYjqWUIGRoCyxvUvN43jsF9vXcf8RX+u&#xA;cN2p7Zc46Yf5x/QP1/J22DszrP5McmubiaUyyyM8h35k7/RnD59Tkyz45yMpd7tY44xFAbJlY+Zt&#xA;TtqK7fWIx+zJufobr9+bzQe1OrwbSPiR7pc/9Nz+duJm7Pxz5ek+TIbHzPptzRZG+ryH9mT7P0N0&#xA;++mdtoParS59pHw5f0uX+m5fOnV5uz8kOXqHkq32vWdsOKH1peyodvpbNjqu1cWMek8UvL9bpdRr&#xA;I49ucmOX2qXl4f3r0j7Rrso/r9Oc3qtdkzH1Hbu6OnzameTmdu5DxTTQvzidkbxUkH8MxseSUDcS&#xA;QWmMzE2DSa2vmW8joJ1Ey+P2W+8bfhm3wdtZI7THEPkXOxdozH1bpxa67p9xQc/Sc/sybfj0zc4O&#xA;1MOTrwnz/FOxxa3HPrR80wBBFRuD0ObEFy3Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FUq8y602j6eLpY/ULSCPfovIE8iO/TNR232hPSYOOABkTW/Ic93N0Gk8fJw3W1sKm1aXU&#xA;m9WSf1fAdAtfBe2eTa/W6jUT4s0jL7h7uj0MNMMQoClPMFk7FXYqslliijMkrBEXqx2GGMTI0OaQ&#xA;CdglUPmT1tSgt7f4LdnAeRv2h7A9M3/Z+CeMiz8Ojg9tdmYzpZ5JxHHGO39rJs3T5g7FVG7vLWzg&#xA;ae6lWGFersaD5fPG2UYmRoMQ1XzXe31YtP5WlqdjcH+9cf5I/YHv1zrOxvZPNqqnlvHi/wBkfcOn&#xA;vPyL0fZ/YMp1LJsHaV5s8w6WI0tb1/RjAVYZDzSg/wAlq0r3I3z0mHY+mhjGOMajH5/Pq9R+RxcP&#xA;DTMdK/NlDxTVbPie81uaj/gGP/G2a/P2F1xy+B/W4mTsz+afmzHS/MuhaoALK8jkkP8AuonhJ/wD&#xA;UbNPn0eXF9UT+h1+TTzh9QTPMZpdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirHfP0XP&#xA;y1O1P7p42+9wv/G2aD2mhejke4xP21+l2vY0q1A8wfueWI7IwZSVYdCNs8zezIB5o+31iVaCYcx/&#xA;MNjlE8APLZxZ6UHkmcF1BOKxuCe46H7sxp4zHm4k8co80LqOr2tktGPOb9mIdfp8MuwaWWTflHvZ&#xA;4sEp+5i1/qV1eycpm+EfZjH2Rm6w4I4xQdnjwxhyQ8X94vzzJx/UHW9vf4ll/qpvZ6vf2lBFISg/&#xA;3W/xL/Z9GZ744jL/AM9xWdl6j2/78ninxfu6nux65fpdNPPljjxi5y5OVpNKc8xAMdmu59SkF3dz&#xA;i5b/AHWFP7pP9RRt9PXPU+xfZTDpankrJl/2MfcP0n4U9xoOyceAWd5N51rtnYq7FWwSDUdcVR2h&#xA;/mprFr5i0vQ7W8N2L27gtZRMfUSNZZVjNGPxVAboDmj7QwYDEkR9QHTZ1uqx4qNDd77nLuldirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVSjzbF6vlu/Xwj5f8AAEN/DNV23Di0eQf0fu3c7s2V&#xA;aiHveQZ5S924Ak0G5PbFCsIWT4iaMOlO2WcFc2BkCkLli7ciWapqx6k5sacgLcUrov7xfnlmP6g6&#xA;jt7/ABLL/VRDyBfc+Gdf2P7OZ9aeL6MX84/70dfu83wrXdqY8G31T7v19yhJSQFXAZT1Uioz1Tsz&#xA;sfT6KHDjG/WR5n8d3J5LP2jmyTE+IgjlW1e5Ln0aNHMtlI1pKevDdD80O2bOnqey/bvWaeo5f30P&#xA;PaX+m6/EFr6/qNrtewerGP8Aj4g3/wCCTrgfR+y/a7Q6ygJcE/5s9vkeR+d+SNtr21ul5QSK47gd&#xA;R8x1wvTrrm5gtoWmncRxL9pm6ZGUgBZQSBzYRrvm64vOVvZ1httwz9Hcf8ajNfm1JlsOTiZMxOw5&#xA;Kv5ZQ+t+YPl9Ntr2J9/8huf/ABrmu1J/dy9ziZvoL7CznnVOxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KoTWIvV0i9i/nglX70IzE18OLBkj3wl9zfpZcOWJ/pD73jVtaTXDUjGw+0x6DPI8eK&#xA;Uzs99kyCI3TFbOO3Xb4n7sczBhEB5uIcpkhZ++UTb4Mak/vG+Z/XmYHMHJaSB1y3DhnlmIQFykaA&#xA;as+eGGByTPDCIsnuC5RQ1756n2F7EQxVk1Xrn/M/hHv/AJ33e98Q9qv+CHLVRlp9IOHEdjM/VL3D&#xA;+Ef7L+q3noIAAocny0m3YVdirsVSnWU0m3j+sXFYZjX03iPGRj7U6/TluLDLIaD0/YntB2hpyI4p&#xA;8UB/DLeP6x/mkMI1fUry8mUTys6IB6asRtUewG/vmq1wrIY3yfaMOolmxQnLYyiD8xaAzDZs1/Ji&#xA;H1vzN0NNtpJn36fBbyP/AMa5jaw/ui1Z/oL60zQOrdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVadQ6Mp6MCD8jgkLFJBo2xG/8pzWsf8AoA9WBekY2cf81fr9s5DV9gzxj916o93X9v42d5h7&#xA;SEz69j9n7GL3SsjMrAqymjKRQgjxGc3liQaPN3GMg7hLZ++YM3Mgxub+9f8A1j+vMuPIOYEPdLW1&#xA;m9kY/cM33s1jnLtDCYi6yQvyHELdR7QQ4uz84/2qf2RJSe3v7mDZW5J/I24z6MnhjJ+ZJ4oy5pnb&#xA;6rbybP8Au29+n35jSwyHm4c9NIct0YCCKjcHocpcem8VSjWfMNvYAxRUluv5P2V/1v6ZmafSHJud&#xA;oufpdDLJudo/ewu6u7i6mM07l5G7nsPADsM3EMYiKDvseOMBURQQdz/fH5L/AMRGcX2h/fz9763o&#xA;f8Xx/wDC4f7kKWYblPQ/yEh9T8yrF6D9zDcPv13iZNvf48w9cf3RaNT9D6mzRutdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVSvXrLQ5bV59TKQogp9ZJCMvhRu/sN8wtZ2fh1A9Y37+v&#xA;4+xzNHlzCQGOye55PfXmmm7kjtJXkgB/dyyLw5fRU/jnF9o+zubF6sf7yP8Asvl1+Hye2w4snCDI&#xA;VLuG6Qyxlp5D25Hf6cPZfY+TOAZemHf+pzIjZbcKBaygDbg36s9B7K00MGSEYChxR+9wu2Ig6LMP&#xA;9qn/ALksWz1d+XXYqrQXdxB/duQP5TuPuyEscZc2EscZcwo6z5ju0hWGFRE8gPKYdaf5PhktPpIk&#xA;2d6bdLoIE8R3Hcxckkkk1J3JObR2zsVUrwAXBA/lQ/egzhdYbzS/rF9b0v8Acw/qR/3IX6Zpl/ql&#xA;7FY2EDXF1MaRxIKk+58AO5PTMDUaiGGBnkPDEdW8mn0H+UvkGx8salHNcMt3rc8bpNKpPpQLxqUj&#xA;/mJIoWP0Z5+Pa06zWjBjH7rf37An8Bq1GKRxmR2D1zN86t2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV5D/zkPcXlpZaHe20hjaOaeNqdDzVGoR0P2O+TgLe69iIQnPLCQu4xPyv9bzHS&#xA;/OdvLSO/X0X6eqtSh+Y6jCcfc9fqOypR3huO7qyOOSORA8bB0bdWU1Byt1UokGi6UVicD+U/qy3A&#xA;anH3hxNdEnBMD+ZL7mJ56m/KrsVdiqVa31h/2X8MyNNzPw/S5+l+n4pZmW5LsVTbQ/KOseZdWa3s&#xA;I+MMaxm5u5Nool4Ddm8T2UbnPMO3e18OjMp5T1NDqfx3vrmAVjgP6Mfue0+XfLmj+WrI2ulqWmkA&#xA;F3qDiksp8B/Ingozwvt72lza6fOoDkPx9/3Oxw6brLmyfyqtdYjPgrn8KYPZKN66PlGX3Me0T+6P&#xA;wZvnrLzrsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiryz/AJyKtxJ5Ks5h9qHUI/8A&#xA;gWilB/GmTx83s/YedayQ78Z++L5zy59VRmn6rf2D8raUqD9qM7ofmMBALRm00Mo9QZF/ju0Sxkku&#xA;YHE6igRN1YnbqemQEKILz+u7MMYkA7S2+xa0MyJG8kTxLKoeP1EZCynoQGAz0jSa7BqYmWKcZgbG&#xA;jdHuPc/I+s0WXTZDjyx4ZD4/IjY/BbmW4rsVSrW/tQ/Jv4Zkabmfh+lz9L9PxSzMtyU00TQLnVJG&#xA;fl6FlEf9Iu2FVX2UftOeyjOe9oPaPB2bjuXqyy+mA5y/4mPfI/Czs5el0ksp7ojmfx1e9Q21vY2s&#xA;djZxrDaxgHgihOTFRV2A6sc+Se0+1s+tynJlO5L7Fo8EYQHU03mtcxOvKIB1YnwiYj7wM6r2OF6z&#xA;/MP6HX9p/wB18WaZ6o8+7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwD89Lf1fy4v&#xA;3/3xLbyffMqf8b5OHN6b2QnXaEB/OEh/sSf0Pl/Ln2J2KqV05S3dgaMOPE+4YHARezhdoR4sddHt&#xA;K3PKH6vcRrc23++ZBUD/AFT1XPLtNqcunn4mGUsc++Jr59/xfm+YjkjwzAlHzSy78rW1xV9Kl4yf&#xA;8scxAJ/1H6H6c9K7G/4IpFQ1sf8AkpAf7qP6Y/6V57V+zwPqwH/NP6D+v5sdubW5tZjDcRtFKvVW&#xA;FDnp2k1mHU4xkxSE4HqHmc2GeOXDMGJSXW/tQ/Jv4ZsdNzPw/S5Wl+n4o7QvK5uIl1DUi0GnH+7Q&#xA;bSzkdo69F8Wzkfab2yhorwaesmp6/wA2H9bz7o/Ouu70mgMxxz2h9p9362QzTh0SGKNYLWEUgt02&#xA;VB/EnuTuc8fy5Z5chyZJGeSXOR5n9Q7hyDtyRVAVEdHqE32/9iv/ABEZ5fVPpWn/ALse5Zi3J95N&#xA;B/SUp7CEj72XOw9ih/hUj/tZ/wB1F1vah/dj+t+gswz050LsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirFPzVtvrH5ea5HSvG39Tt/up1k7/6uSjzd37OZOHX4j/Sr5inyXl77a7FVC+H&#xA;+jP7U/WMXG1n92XsNuawRmtaqpr9GeU5B6j735vyipn3qmQa1c3EU8P1e+iW6g7B/tr/AKr9RmXo&#xA;dfn0mTxMEzjl5cj7xyPxY5scMseHIBIfjkUkvtA8u29zHesXu1UH0LGUUUP4yMPtKPDv3zuD7ea/&#xA;PpziiI48h2lkj3f0R0kepvbpRdZj7KwYZWCZDpE/p8lC5uZrmUyytyY7AdAAOgA7AZzMYCI2cqUj&#xA;I2VLJMXq9wpWUqdiAoI9wBnmcjZt9MwCoBfZWVxeXCwQLydu/YDxJ8MytFocupyDHjFyP2eZ8mWX&#xA;LHHHikzjSdIt9Og4p8UzD97L3PsPbPW+x+xsWix1HeZ+qXf+x5zU6mWU78u5H5uHGdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVUbyztb20ms7uJZra4Ro5onFVZGFCDi2YssschOJqUT&#xA;YLxjzr/zj2repeeVJuJ3Y6ZcNt8opT+p/wDgssGTve/7K9tiKhqh/nj9I/V8njOqaTqelXj2WpWs&#xA;lpdR/ailUqfmK9R4EbZaC99p9TjzQE8chKJ6hATqDBICK/Cx+4VxY6z+6Pw+96xprBtOtWG4MMZB&#xA;+ajPLNSKyS/rH735z1grNMf0j96Jylx3Yql+q/7q/wBl/DNnovpPvaMyX5mNLsVexpp9xfak8MA3&#xA;rVmPRRTqc8/7N7Oy6vIMeMdBZ6Ad5fSDmjjx2WZaZpdtp9uIohVz/eSnqx/p7Z692V2Vi0WPgh9X&#xA;WXU/s7g6DUaiWWVlGZs2h2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpX5&#xA;g8saD5hszZ6xZx3UW/BmFHQnvG4oyn5HCDTmaLtDPpZ8eKRifsPvHIvEfOX/ADj3rNszy+WJhf20&#xA;vwC1nZY5o+fw/bNEdVrUnY+xywZO973Se2WLLjMNQOCdcxvE19o+1y6dNpgGmzsrTWI+rSsleJaL&#xA;4GK1oaVXPM9YKzT/AK0vvfKdXkE805DrIn7W8xnHdiqXar9qP5H+GbTRfQfe0ZeaAzLaU48s+V9S&#xA;8w34tbNeKLvPcNXhGvifEnsO+X6fTyyyoNuLCZmg+hLe1t7cMIUCBzyanc5v9HocOmjw4oiIegnk&#xA;lLmVXMtg7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqx7X/ACRo&#xA;+rcpQv1W8ap9eID4ie7r0b9fvmq1vZGLPv8ATPvH6WqeES97znXfKOs6OxaaL1bbtcxfEn+y7r9O&#xA;cprOzMuDci494/GzhzxGKS5r2tLtV+1H8j/DNpovoPvaMvNMfKPk7UPMd5wi/dWURH1m6I2Ufyr/&#xA;ADMfD782um0ssp25d6cOA5D5Pc9G0XT9GsI7Gwj9OFNyTuzMerOe5OdHixRxx4Yu4x4xAUEdljN2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVzKGBVgCpFCDu&#xA;CDiRasS178u9LvuU1hSyuTvxUfumPuo+z/sfuzR6zsPHk3h6JfZ+z4NE8APLZh9r+WGs3usLb34+&#xA;rWMG81wpDcweixe5p3G3fwzD0PZWSJMZ7C+f6nE/KylLfk9V07TrLTrOKzsohDbwiiIv6z4k9znS&#xA;wgIChydhGIiKCIybJ2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KpKnnbye/mM+WV1mzbzAo5HSxPH9Y2XmR6deXLh8XHrx36YqnWKuxV2KuxV2Kv&#xA;FPz1/Oe98uz/AOGvLsgj1VkD397QMYFcVWNART1GU8uX7IpTc7b7snswZR4k/p6DvcHVakx9MebC&#xA;vL35I/mb5rsU1zVtZaza8USQi8lmluHRt1ZgPsgg1AJr7Zn5u1dPhPBGN13VTjw0uSYsl7P+UvkP&#xA;WfJmi3mnapqC6g01z60EiFyFQoq8aP0+IE7Zou0dXDPMSiOHZztPiMBRNsf/AD7/ADSvvKOn2ula&#xA;M4j1nUlZ2uKAtBAvw8lB25O2yntQ96Zk9kaAZpGU/pj9pa9XnMBQ5l5l5Y/Jz8wfOnlw+Z5tdZJ7&#xA;sO9lFdSTSSTBSVq8lTwDMDTr45ts/aWHBPwxHYc6rZxcemnOPFaJ/Jr81vMui+bIfKvmO5mubC5n&#xA;+pBLli8trc8uCgO1Tx5/Cy1oOo6bw7T7PxzxnJjFEC9uoTptRKMuGXJ9O5ybtXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FWH/m95yufJn5ba75ktFVryxgVbXkKqJp5EgiZh3CvKGI74q+W/wAnfyhv/wA7&#xA;Bq3mjzl5kvZFtrj6sgVhJO0pVZGNZeSxxgMAqqvypTFX0d+UH5LaZ+WTaumm6rdaha6p9W4w3QSs&#xA;Jt/VqVKcQefrb/COnfFUZ5+/Oz8uPIlytn5g1QJqLqHGn26PPOFPRnVAQgPbmRXtirfkD86vy68+&#xA;XElp5e1P1NQiUyPYTxvBPwBoWVXADgd+BNO+Kphr/wCZvk7QPNeleVdUvGg1nWgp0+H03KP6jmNa&#xA;yAcFq603OKpBJ/zkP+U36fbQrfWfrl7GkzyvawyywqLaJ5pP3oXg1EjP2CcVeV+UZP8AnHjzH+ed&#xA;r5n0bXNSuPMeoXL3NrpbwyR2xuvSYs5dolYLQFgpf7Xt8OKvofzP5q8veVtHl1jzBfR6fpsNA88t&#xA;d2PRUVQzux7KoJxV5zpP/OU/5MalqKWI1eS0aRuEdxdW8sUJJNBWShCA+L0Hjir1S71Cxs7GW/u7&#xA;iO3sYIzNNdSMFiSNRyLs5NAoG9cVeS3n/OWH5LW161sup3Fwqtxa5htZjF1oSCwViB4hflXFXpvl&#xA;3zPonmPQLXX9IufrGk3iNJBclXjqqsVYlZArCjKRuMVfGK65p+r/AJgDW9fY/o661H63frxLkwer&#xA;zaMKP8j4Bnf+FKGHgh9QjQ97oeISncuVvbpf+crNAW54Q6DdNaVoJWljSSn/ABjAZf8Ah80I9n51&#xA;vIW5358dz1LyP598u+c9LOoaNKx9IhLq1lAWaFiKgOoJ69iCQfoOajVaSeCXDP8AtcvFljMWHzR/&#xA;zkZfvc/mjews1RY29tAg8A0Qmp98xOdV2LCtOD3k/q/Q6vWm8hfTnkKBLfyP5ehT7Mem2i1pSv7h&#xA;Knbxzk9WbzTP9I/e7XEPQPc+R/zSrYfmlr8lseDx6g86HbZ2YSE7U/aOdpoPVp4X/NdNn2yH3vtK&#xA;CVZoI5VBCyKHAPWjCucIRRp3oX4FdirsVdirsVdirsVdirsVdirsVdiqReevKVl5v8oar5avWMcG&#xA;pwGL1QKmNwQ0cgHfhIqtT2xV8UCH85v+cffMzzKhjsblwjS0M2mXypUqCfhowBNPsyD5Yq+pPyq/&#xA;Pny/5+8r6hqUUDWer6PA0+p6UW5EKqlg8T0HNG406VB2PYlV8yfkZ5m8nal+bOp+bfzMvrarwzXU&#xA;DXw5xNeSyIq0Uhh+7jLcFpttTpiq7z95i8laL/zkBo/mP8vri3GlLNZ3M5sQUgEjSFLmMKoFBJH9&#xA;oAftHFWQ/wDOazvH+YWgSRsUdNLVkdTQgi5lIIIxV7l+Wv8Azj5+WnlvS9Hv/wBErda9HbK1zqE8&#xA;krl5ZoeM37ov6XAh2XjxpTxO+KvBdAs7Oy/5zIFpZwR21rDqlwsUEKLHGi/VH2VVAAHyxVd/zlx5&#xA;mm1b81dO8r3NwbfRtJigEm/wrJdkPLMflEUH0e+Kpr/zkNqP5C6h+XVpD5Mn0w61pc0EdmtigSY2&#xA;1GV0duKl135HkSa7+OKq93eeZfNH/OGtstn6tzNpU4g1BUBZmsrKdiuw/ZiT0ifZa4ql/wDzjJ56&#xA;/Jiw0OXy15tsbODWry6ZhqWo28UsE8bhQkRmdW9ILx+y9E71qcVfV8Ol6Vpfl57HSbaGz06GCT6v&#xA;bWyLHCiuGc8FSigEsTtkofUES5Pi38vNAt/MHnbRtHuQTbXdyouFU0JiSryAHtVVIrnfazMceKUh&#xA;zAdDhhxTAfUn5nfl75WvPy91WG30u2tptPs5bmwkgiSN43t0LqqsoXZuHEjOR0GsyRzxJkTxGj8X&#xA;bZ8MTA7cniH/ADjXqt1afmMtlGx9DUbWaOdK7ViX1UaniClPpOb/ALcxg4L6xI/U4GilU670t/5y&#xA;BjdPzZ1pmG0i2rL8vqkS/rXLexz/AINH4/eWOr/vD+Oj6p8lkHydoJBqDp1oQR/xgTOQ1X97L+sf&#xA;vdvi+ke58h/nD/5M7zF/zFt/xEZ2vZv+Lw9zpdT/AHhfZ1grLY26sCrLEgZTsQQo2OcLPmXeDkr5&#xA;FLsVdirsVdirsVdirsVdirsVdirsVQer6xpOjafJqOrXkOn6fCUE13cyLFEnqOI05u5CrV2A3OKs&#xA;W86ec/ypl8pah/iLVtMvNCmgcXEHrwzeqACeMSKxLSVHwcd+XTFXy5/zh95fv9U84+Y3QvHpx0Se&#xA;yu5lFRzu5IxEu/ekbsP9XFUj/Ie28laL+aN95e/MuwtBE0U1iP0mqGGC9ilUjmZPhTkEZQx9vHFX&#xA;1M3k/wD5xztru0iOn+Wo7u5mjhsoh9V9WSd2CxpEoPJmLEUAxV4H/wA5tf8AKf6F/wBsof8AUTLi&#xA;r7A0n/jlWX/GCL/iAxV8f6Z/62k//bVuP+oN8VQn/OW+hz6P+b9l5gubf6xpmqW9vMoYfBI1oRFN&#xA;Ca/5CoT7Nir3rR9A/wCcZdW0aDWLTT/LYsZ4xIGlW1iZARUrIrkFGXowPTFWY6LqH5Z+X/LNpJpF&#xA;3pWmeWr6Zo7GWGWGGzmmflyWN6iN2b0m6HehxV81/wDOVnkT8p9K0uy8weWpLWy169uljl06wkjM&#xA;M0LRszTeihpHxKr8SAA13FTXFXs//OL17q17+SuiPqTNJ6bXEFo77k20U7pGN+y0KD2AxV4PYxf4&#xA;B/NyCPUFKW+j6kBISCT9WL7SDuawsHGd1M/mNMeHnKP2/wBrox+7yb9C+kPzR8+eW7P8udWuINTt&#xA;rh9RtJbXTxBMkhledDEDHwJrw5cie1M5fQaTJLPEGJHCbO3c7TPliIHfm8X/AOcZdAurzz1Lq4Qi&#xA;00u2fnL29WcemifMrzP0Zve3cwjh4esj9zg6GFzvuRH/ADlB5fuLXzfZa2qH6pqNqsRkA29a3JDA&#xA;n/UZafTkOwcwOIw6xP2FOuhUge961+U3nzy7c/lnpk9xqEFu2j2iWt+krqjRfVl4AsCejIoIPf55&#xA;pu0dJMaiQAJ4jY+LmafLE4xvyfOMcL+e/wA12FqjNDrOqPIBQkrbNKXZmr/JCKnOoJ/L6bf+GP2/&#xA;2usrxMnvL7TzhHeOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpP5v8p6J5u8u3nl7XImn0u+CC4jR2jY&#xA;+lIsqEOhBFHjU4q8nT/nDv8AJ9bgSn9JMla+gbpeFPCojD0/2WKvVvKPkvyv5Q0hdJ8uafHp9ip5&#xA;skdSzvQAvI7FndqDqxJxVjH5gfkR+Wvnu8/SGt6cyaoVCNqNpI0EzKBQc6VR6AUBdSR06Yqkflb/&#xA;AJxa/Kfy7rNnrFvBe3d9p88d1Ztc3LFUmhYPG/GIRcuLKDRqjxriqffmJ+R/kP8AMDVLbU/MUVxJ&#xA;dWkH1aEwTGJfT5s+4ANTVzirPIIUggjhj+xEoRa7miigxVgcP5H+Q4fzCPn5Irj/ABCZ3uTIZj6X&#xA;qPGYz+7pSnFsVZJ5v8leV/OGkNpHmTT49QsWYOqPyVkcbB45EKujb0qpG23TFXlY/wCcPPyfFx6p&#xA;GpGOpP1c3Q4fKoj5/wDDYqzbWfyW/L7V/I9h5JubKRfL+lyiexgjnlDxygSDl6hZmb+/fZqjf5Yq&#xA;w3Tv+cQvydtLtLiWC/vkU1+rXF0fTPz9JYn/AOGxV7JY2NlYWUFjYwJbWdsixW9vEoRERBRVVRsA&#xA;BirD/wAw/wAo/K3nfhPfK9rqcS8ItQt6B+PULIpBV1B8d/AjM/R9o5NPsN49xaM2njk583n9p/zi&#xA;jpC3Aa78w3E1vXeOK3SJ6U6c2eUf8Lmyl7QSraAv3uMOzx1L1/yr5T0LytpEelaLbC3tUPJyTyeR&#xA;yADJIx3ZjT+A2zS6jUTzS4pmy5uPGICgu80eVtE80aPLpOs24ntJaEdnjcfZkjbqrDx+jpg0+oni&#xA;lxQNFcmMTFF47c/84o6U1wWtvMM8VvU0jlt0kenb41eMf8Lm8j7QSreAv3uEezx3vQvy9/KTyt5I&#xA;Dz2AkutSmXhLqFwQZOBIJRAoCopI+fic1ms7RyajaW0e4OTh08cfLmzbMBvdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVUrq6t7WBp7hxHElOTn3NB+OU6jUQwwM5mohnjxynLhiLLH5/OaCcCG35wDqzGjH&#xA;5daZxOf22iMlY8d4/M0T7u78cnaQ7KPDud010vXdP1JpI7dz60QDSxMN1DVpWm29M6jsvtfFrY8U&#xA;LBHMEfgFwtRpJ4qMuR6phm0cVid954vYdQ1a2tdHe8h0bg15MkyKQjoX5BGFTQKdhirI9M1G31LT&#xA;re/tiTBcxrJHXYgMK0PuOhxVL4tbuH83T6KY0+rxWS3Qk35lmk4U60pTFU3lmihiaWZ1jiQFnkch&#xA;VUDqSTsMVQ1jrGk37Mthe292yCriCVJCoPSvAmmKq15eW1nay3V1IsNvCpeWRjQADFUBoHmTSddt&#xA;BcWEysdy8BZTKg5FVLoCSvLjUVxVC+cfNMXl7TkmHpvd3EgitoZXCAkkcnPfilfixVMtHnvLjT4p&#xA;rt7eSWQFhJZszwMpPwlGbc1GKuvNZ0iylWG9vre2lcVSOaVI2YVpUBiCcVRgIIqNwehxVDXeqaZZ&#xA;1F3dw23FQ7erIiUUniGPIjYnbFUSCGAINQdwR0IxVAya7occqwyajbJKzmNY2mjDF1biygE1qG2I&#xA;8cVX22saTdXL2tte289zHX1II5Ud14mhqqkkUOKovFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUn83&#xA;wNP5cvo1BZiisANySrq3b5Zqe3MfHo8g8vuILn9mT4dRE/jk8pvZdQsbJv3pVjQcevEH3zzKOlHE&#xA;OIbvZREMkuTJPygWQz6pKwYqViHM1oWqxpXxztvZmO8+7b9LpvaIioD3/oelZ1ry7zeKw13UPNXn&#xA;Cy0ye3t4rk20V5NMru4R4XX90FIFaE9cVZ7pGmQ6Xpdrp8BLRWsaxqzdTxG5NPHriqQW/wD5M27/&#xA;AO2VH/yfxVNvM+pwaXoF7fz24uooY/ityKh+RChW2barb7dMVYdpDXJ/MDTXuEsoZ5tOkd4rAMFC&#xA;MeSiQnZjirOdYiWXSbxGQOGgk+EitTxNNvniqRflnFbr5N06SNEEro/qOoHJqSuPiI3NMVQ35oxR&#xA;Po+nsyKzDUbdQSATRq1H00xVmKIkaBI1CIooqqKADwAGKvOI4NHudR87HWVhe7jJ9Mz8eaQCI+mY&#xA;+W4/Z+z3p7YqynyC1y3k7STcV9T0ABy68ASI/wDhKYqlWsaZYaj+ZNhDfQJcwx6a8gilAZCwlKgl&#xA;Tsftd8VZoAFAAFANgB0AxV5PJp1jNoPnu6lgR7lNRuRHMyguoSQMOLdRucVTmPS7DT/Mvkj6nCsJ&#xA;ltrpJigCl+FqrAvSnI8mJqcVZ/irsVdirsVdirsVdirsVdirsVdirsVdiriARQ7g9RirHdY8jaLq&#xA;bKzB4ByDSLEQFYA1Ioa8fozSansDT5ZiQuPfXI/q+DtNN2tlxCufvTuxsbOxtktbOJYYIxRI1FB/&#xA;afc5t8WGOOIjAVEOvy5ZZJcUjZKvljWhrfTbG2urm7ghWO5vCpuZR1coCFr8gcVROKoddPslvmvx&#xA;CovHjELT/tGMHkF+VcVVZ4ILiF4J41lhkBWSNwGVlPUEHYjFUv0/yzoGnSrNY2ENvKvLjJGoDfGA&#xA;G369sVTPFUBpug6Npbyvp9nFatPT1TEvHlStP14qrX+m2N/EkV5Cs8cbrKit0Dr9lvoxVE4qlmo+&#xA;WfL+pXC3N/YQ3M6AASOoJoOgPiPniqZKqqoVQFVRRVGwAHYYqoNp9k18t+YVN4kZhWf9oRk8ivyr&#xA;iqIxVAfoLR/QvLf6qno37tLeJvSR3NWZvniqq2l6e09pO0CmaxDLZv3jDqEYL81FMVRWKuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2Kv//Z</xapGImg:image>
+    </rdf:li>
+   </rdf:Alt>
+  </xap:Thumbnails>
+ </rdf:Description>
+
+ <rdf:Description rdf:about=''
+  xmlns:dc='http://purl.org/dc/elements/1.1/'>
+  <dc:format>image/svg+xml</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <?xpacket end='w'?>
+			</metadata>
+		<g id="_x30_1">
+			<rect fill="none" width="352" height="352"/> 
+		</g>
+		<g id="_x32_7">
+			<path d="M82.136,289.623c-2.612,0-5.184-0.329-7.715-0.984v-4.279c2.772,0.754,5.231,1.131,7.378,1.131
+				c2.035,0,3.625-0.457,4.771-1.37s1.718-2.211,1.718-3.894c0-1.586-0.473-2.832-1.418-3.738c-0.945-0.904-2.7-2.086-5.263-3.545
+				c-2.804-1.569-4.695-3.151-5.672-4.746c-0.978-1.594-1.466-3.408-1.466-5.442c0-3.237,1.085-5.668,3.257-7.295
+				c2.171-1.626,5.003-2.438,8.496-2.438c2.532,0,4.863,0.24,6.994,0.722v4.183c-2.259-0.514-4.358-0.771-6.297-0.771
+				c-1.762,0-3.172,0.418-4.229,1.25c-1.058,0.834-1.586,1.988-1.586,3.462c0,1.426,0.46,2.567,1.382,3.425
+				c0.922,0.857,2.496,1.902,4.723,3.137c3.076,1.715,5.135,3.373,6.177,4.975c1.041,1.603,1.562,3.404,1.562,5.408
+				c0,3.604-1.069,6.309-3.208,8.11C89.601,288.723,86.398,289.623,82.136,289.623z"/>
+			<path d="M119.364,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.03-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.77,2.252,2.656,6.414,2.656,12.486h-15.309c0,3.012,0.577,5.271,1.73,6.776
+				s2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227L119.364,288.396L119.364,288.396z M105.184,273.04h8.892
+				c0-3.302-0.353-5.576-1.057-6.826c-0.705-1.249-1.73-1.874-3.077-1.874c-1.506,0-2.651,0.674-3.437,2.02
+				C105.719,267.705,105.28,269.932,105.184,273.04z"/>
+			<path d="M125.805,289.238v-28.096h3.797l1.273,4.662c0.785-1.634,1.867-2.863,3.245-3.689c1.378-0.824,3.052-1.236,5.023-1.236
+				c0.513,0,0.889,0.016,1.129,0.049v5.383c-0.897-0.063-1.554-0.097-1.971-0.097c-2.163,0-3.701,0.478-4.614,1.431
+				s-1.37,2.527-1.37,4.724v16.87H125.805L125.805,289.238z"/>
+			<path d="M145.104,289.238v-24.273h-3.101v-3.82h9.589v28.094H145.104L145.104,289.238z M148.348,257.635
+				c-1.057,0-1.918-0.297-2.583-0.89s-0.997-1.378-0.997-2.354c0-0.978,0.332-1.764,0.997-2.355s1.526-0.889,2.583-0.889
+				c1.025,0,1.883,0.305,2.572,0.912c0.689,0.608,1.033,1.387,1.033,2.332c0,0.992-0.336,1.781-1.009,2.366
+				C150.271,257.342,149.405,257.635,148.348,257.635z"/>
+			<path d="M178.197,288.396c-2.692,0.816-5.488,1.227-8.388,1.227c-4.198,0-7.346-1.21-9.445-3.629
+				c-2.099-2.42-3.148-6.049-3.148-10.889c0-4.276,1.029-7.742,3.088-10.395c2.059-2.65,4.931-3.979,8.616-3.979
+				c3.396,0,5.98,1.127,7.75,3.377c1.771,2.252,2.656,6.414,2.656,12.486h-15.31c0,3.012,0.577,5.271,1.73,6.776
+				c1.153,1.506,2.884,2.259,5.191,2.259c1.923,0,4.342-0.408,7.258-1.227v3.992H178.197z M164.018,273.04h8.893
+				c0-3.302-0.353-5.576-1.058-6.826c-0.705-1.249-1.73-1.874-3.076-1.874c-1.506,0-2.652,0.674-3.437,2.02
+				C164.555,267.705,164.114,269.932,164.018,273.04z"/>
+			<path d="M190.693,289.623c-2.402,0-4.989-0.329-7.762-0.984v-4.184c2.739,0.834,4.998,1.25,6.776,1.25
+				c1.649,0,2.894-0.324,3.726-0.975c0.834-0.647,1.25-1.621,1.25-2.92c0-0.769-0.231-1.484-0.697-2.149
+				c-0.465-0.665-1.777-1.542-3.94-2.632c-1.458-0.754-2.624-1.446-3.497-2.079c-0.873-0.634-1.599-1.454-2.175-2.464
+				c-0.577-1.01-0.865-2.268-0.865-3.772c0-2.5,0.921-4.454,2.765-5.864c1.843-1.41,4.205-2.115,7.09-2.115
+				c2.498,0,4.773,0.313,6.824,0.938v3.989c-2.002-0.688-3.916-1.033-5.744-1.033c-1.488,0-2.604,0.305-3.34,0.913
+				s-1.104,1.522-1.104,2.739c0,0.642,0.22,1.242,0.66,1.804s1.702,1.354,3.784,2.379c2.916,1.427,4.768,2.82,5.553,4.183
+				c0.785,1.361,1.178,2.867,1.178,4.519c0,2.788-0.896,4.896-2.691,6.319C196.688,288.91,194.092,289.623,190.693,289.623z"/>
+			<path fill="#808080" d="M112.728,302.891h4.747c1.875,0,3.24,0.438,4.098,1.316c0.857,0.876,1.286,2.284,1.286,4.223
+				c0,1.899-0.515,3.357-1.544,4.375c-1.029,1.018-2.497,1.525-4.404,1.525h-1.598v6.479h-2.584L112.728,302.891L112.728,302.891z
+				 M115.312,304.607v7.979h1.454c1.169,0,2.031-0.312,2.583-0.931c0.553-0.622,0.829-1.674,0.829-3.155s-0.254-2.501-0.763-3.06
+				c-0.509-0.555-1.304-0.834-2.385-0.834H115.312L115.312,304.607z"/>
+			<rect x="135.898" y="301.786" fill="#808080" width="2.56" height="19.022"/> 
+			<path fill="#808080" d="M159.537,318.788c-0.865,1.476-2.211,2.212-4.038,2.212c-1.273,0-2.265-0.359-2.974-1.074
+				c-0.709-0.72-1.063-1.722-1.063-3.012c0-1.33,0.365-2.322,1.094-2.975c0.729-0.653,1.602-1.063,2.62-1.226
+				c1.017-0.166,2.255-0.247,3.713-0.247v-1.646c0-1.625-0.869-2.438-2.607-2.438c-1.001,0-2.223,0.214-3.665,0.638v-1.791
+				c1.45-0.399,2.828-0.601,4.134-0.601c1.538,0,2.706,0.369,3.503,1.112c0.797,0.738,1.195,1.83,1.195,3.273v9.793h-1.394
+				L159.537,318.788z M158.888,313.994h-1.43c-1.146,0-2.005,0.242-2.578,0.727c-0.573,0.485-0.859,1.209-0.859,2.17
+				c0,0.785,0.174,1.371,0.523,1.762c0.348,0.387,0.871,0.582,1.568,0.582c0.881,0,1.564-0.28,2.049-0.842
+				c0.485-0.562,0.727-1.322,0.727-2.283V313.994z"/>
+			<path fill="#808080" d="M181.83,320.566c-1.074,0.289-2.083,0.434-3.028,0.434c-1.09,0-1.887-0.256-2.392-0.764
+				c-0.505-0.51-0.757-1.319-0.757-2.434v-9.302h-1.838v-0.961l3.737-3.81h0.661v3.101h3.4v1.67h-3.4v8.882
+				c0,0.76,0.124,1.262,0.372,1.508c0.248,0.244,0.625,0.365,1.13,0.365c0.521,0,1.227-0.115,2.115-0.349V320.566L181.83,320.566z"
+				/>
+			<path fill="#808080" d="M198.402,301.594c0.81,0,1.595,0.096,2.354,0.287v1.742c-0.753-0.24-1.382-0.359-1.887-0.359
+				c-0.802,0-1.306,0.254-1.515,0.762c-0.209,0.511-0.313,1.445-0.313,2.808h2.561v1.67h-2.561v12.306h-2.561v-12.306h-1.693v-1.67
+				h1.693c0-2.123,0.324-3.526,0.975-4.211C196.107,301.936,197.089,301.594,198.402,301.594L198.402,301.594z"/>
+			<path fill="#808080" d="M216.611,321c-1.883,0-3.293-0.617-4.229-1.852c-0.938-1.233-1.405-3.084-1.405-5.551
+				c0-2.148,0.485-3.847,1.459-5.097c0.975-1.249,2.367-1.874,4.178-1.874c1.826,0,3.222,0.616,4.187,1.852
+				c0.966,1.232,1.449,2.955,1.449,5.166c0,2.275-0.451,4.069-1.353,5.385C219.994,320.344,218.566,321,216.611,321z
+				 M216.611,319.354c0.986,0,1.729-0.445,2.229-1.34c0.501-0.893,0.752-2.39,0.752-4.488c0-1.481-0.256-2.726-0.769-3.731
+				c-0.513-1.004-1.25-1.507-2.212-1.507c-0.978,0-1.719,0.451-2.223,1.357c-0.506,0.904-0.758,2.199-0.758,3.881
+				c0,1.892,0.252,3.334,0.758,4.332C214.895,318.854,215.635,319.354,216.611,319.354z"/>
+			<path fill="#808080" d="M236.909,306.832l0.589,2.331c0.777-1.644,2.131-2.464,4.063-2.464c0.256,0,0.444,0.013,0.564,0.035
+				v2.332c-0.201-0.016-0.501-0.023-0.9-0.023c-1.099,0-1.904,0.262-2.416,0.788c-0.514,0.522-0.77,1.343-0.77,2.456v8.521h-2.561
+				v-13.977H236.909z"/>
+			<path fill="#808080" d="M272.073,320.809h-2.56v-9.627c0-0.929-0.177-1.629-0.523-2.096c-0.35-0.471-0.871-0.704-1.568-0.704
+				c-0.896,0-1.588,0.353-2.072,1.058s-0.728,1.623-0.728,2.752v8.617h-2.56v-9.627c0-0.929-0.18-1.629-0.535-2.096
+				c-0.356-0.471-0.891-0.704-1.604-0.704c-0.881,0-1.563,0.356-2.043,1.069s-0.721,1.627-0.721,2.74v8.615h-2.56v-13.976h1.43
+				l0.517,2.065c0.856-1.514,2.163-2.271,3.918-2.271c0.929,0,1.699,0.177,2.313,0.528c0.611,0.353,1.063,0.881,1.353,1.586
+				c0.793-1.409,2.063-2.114,3.81-2.114c1.379,0,2.412,0.372,3.101,1.117s1.034,1.858,1.034,3.341L272.073,320.809L272.073,320.809z
+				"/>
+			<path fill="#0F3AAC" d="M228.208,242.369c2.563,0,4.944,0.191,7.146,0.576v5.576c-1.942-0.428-4.047-0.642-6.313-0.642
+				c-3.354,0-5.977,1.181-7.867,3.541c-1.89,2.36-3.049,5.901-3.477,10.623c2.072-2.009,4.935-3.013,8.588-3.013
+				c4.102,0,7.221,1.303,9.357,3.908c2.135,2.606,3.203,6.334,3.203,11.185c0,5.362-1.309,9.544-3.926,12.546
+				c-2.615,3.001-6.393,4.502-11.327,4.502c-4.934,0-8.657-1.752-11.168-5.255c-2.51-3.504-3.765-9.313-3.765-17.433
+				c0-7.989,1.677-14.34,5.029-19.051C217.046,244.725,221.885,242.369,228.208,242.369L228.208,242.369z M223.594,285.854
+				c2.157,0,3.771-0.828,4.84-2.482c1.066-1.655,1.602-4.674,1.602-9.053c0-3.291-0.502-5.764-1.506-7.418
+				c-1.004-1.656-2.51-2.483-4.52-2.483c-2.093,0-3.689,0.79-4.789,2.371c-1.102,1.581-1.65,3.76-1.65,6.536
+				c0,3.332,0.225,5.849,0.673,7.547c0.448,1.699,1.116,2.953,2.003,3.766S222.248,285.854,223.594,285.854z"/>
+			<path fill="#0F3AAC" d="M260.316,242.369c4.935,0,8.662,1.752,11.184,5.255c2.521,3.504,3.781,9.688,3.781,18.554
+				c0,9.721-1.276,16.316-3.829,19.789c-2.554,3.471-6.318,5.206-11.296,5.206c-4.358,0-7.647-1.153-9.87-3.461
+				c-2.222-2.308-3.669-5.224-4.343-8.748c-0.672-3.524-1.008-7.786-1.008-12.786c0-8.693,1.291-14.836,3.877-18.425
+				C251.396,244.164,255.232,242.369,260.316,242.369z M260.092,285.854c2.18,0,3.776-1.223,4.791-3.668
+				c1.016-2.447,1.521-7.781,1.521-16.008c0-7.904-0.522-12.962-1.569-15.173s-2.628-3.315-4.743-3.315
+				c-1.922,0-3.338,0.77-4.244,2.308c-0.908,1.538-1.476,3.546-1.699,6.024c-0.225,2.478-0.336,5.863-0.336,10.156
+				c0,8.461,0.502,13.854,1.506,16.184C256.32,284.689,257.913,285.854,260.092,285.854z"/>
+			<g>
+				<polygon fill="#FFCC00" points="83.551,301.553 74.234,306.654 84.862,311.665 93.57,305.768 "/>
+				<polygon fill="#FF9900" points="74.234,306.654 75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				
+					<linearGradient id="XMLID_67_" gradientUnits="userSpaceOnUse" x1="-47.1431" y1="278.7324" x2="-37.1689" y2="278.7324" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_67_)" points="75.357,318.456 85.331,323.65 84.862,311.665 "/>
+				<polygon fill="#F27C0E" points="93.57,305.768 84.862,311.665 85.331,323.65 93.57,317.564 "/>
+			</g>
+			<g>
+				<polygon fill="#ABDD99" points="176.811,84.505 148.321,102.182 181.396,117.244 208.896,97.272 "/>
+				<polygon fill="#46AB48" points="148.321,102.182 150.291,142.135 181.721,157.521 181.396,117.244 "/>
+				<polygon fill="#16923B" points="208.896,97.272 181.396,117.244 181.721,157.521 208.245,134.602 "/>
+			</g>
+			<g>
+				<polygon fill="#FF6699" points="145.842,103.821 115.717,121.831 150.423,140.17 179.566,119.212 "/>
+				<polygon fill="#FF0066" points="150.423,140.17 115.717,121.831 119.646,166.366 152.395,184.371 "/>
+				<polygon fill="#BE0151" points="179.566,119.212 150.423,140.17 152.395,184.371 179.896,159.818 "/>
+			</g>
+			<g>
+				<polygon fill="#F5F661" points="250.023,114.932 212.693,99.54 185.518,119.518 222.518,136.871 "/>
+				<polygon fill="#FFF500" points="185.518,119.518 185.846,160.119 222.193,178.786 222.518,136.871 "/>
+				<polygon fill="#FFCC00" points="222.518,136.871 222.193,178.786 248.391,154.223 250.023,114.932 "/>
+			</g>
+			<g>
+				<polygon fill="#BFE230" points="153.919,143.233 183.227,122.111 220.314,139.299 191.896,163.205 "/>
+				<polygon fill="#84C322" points="153.919,143.233 155.552,187.436 191.572,207.083 191.896,163.205 "/>
+				<polygon fill="#5DAA3B" points="191.896,163.205 191.572,207.083 219.734,181.211 220.314,139.299 "/>
+			</g>
+			<g>
+				<polygon fill="#99FF66" points="147.897,58.767 176.792,42.482 210.77,55.167 182.688,73.26 "/>
+				<polygon fill="#66CC33" points="147.897,58.767 148.881,99.045 182.277,114.76 182.688,73.26 "/>
+				<polygon fill="#669900" points="182.688,73.26 182.277,114.76 209.783,94.787 210.77,55.167 "/>
+			</g>
+			<g>
+				<polygon fill="#CC66FF" points="185.191,74.515 222.688,91.457 251.824,70.171 212.861,56.423 "/>
+				<polygon fill="#6F348E" points="222.927,91.133 221.895,133.763 249.195,111.758 251.742,70.171 "/>
+				<polygon fill="#9933CC" points="184.781,74.515 184.287,116.015 221.895,133.763 222.927,91.133 "/>
+			</g>
+			<g>
+				<polygon fill="#FFCC00" points="127.601,43.202 95.021,61.047 132.182,78.564 162.633,57.936 "/>
+				<polygon fill="#FF9900" points="95.021,61.047 98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				
+					<linearGradient id="XMLID_68_" gradientUnits="userSpaceOnUse" x1="-23.5552" y1="496.8701" x2="11.3198" y2="496.8701" gradientTransform="matrix(1 0 0 -1 122.5 596.3906)">
+					<stop  offset="0" style="stop-color:#FFCC66"/>
+					<stop  offset="1" style="stop-color:#FF9900"/>
+					<a:midPointStop  offset="0" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="0.5" style="stop-color:#FFCC66"/>
+					<a:midPointStop  offset="1" style="stop-color:#FF9900"/>
+				</linearGradient>
+				<polygon fill="url(#XMLID_68_)" points="98.945,102.306 133.82,120.476 132.182,78.564 "/>
+				<polygon fill="#F27C0E" points="162.633,57.936 132.182,78.564 133.82,120.476 162.633,99.189 "/>
+			</g>
+			<g>
+				<polygon fill="#0099FF" points="152.426,97.736 154.061,139.652 192.048,159.625 192.048,116.076 "/>
+				<polygon fill="#00CCFF" points="152.426,97.736 183.527,77.107 221.434,93.402 192.048,116.076 "/>
+				<polygon fill="#0066FF" points="192.048,116.076 192.048,159.625 220.443,136.396 221.434,93.402 "/>
+			</g>
+		</g>
+	</svg>
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10000.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10001.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10002.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10003.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10004.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10005.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10006.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10007.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10008.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10009.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10010.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10011.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10012.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10013.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10014.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10015.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10016.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10017.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10018.bmp has changed
Binary file scrsaver/scrsaverplugins/BmpAnimScrPlugin/srcdata/series60/SS10019.bmp has changed
Binary file scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/cenrep/1020744E.txt has changed
Binary file scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/cenrep/keys_screensaveranimplugin.xls has changed
Binary file scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/conf/screensaveranimplugin.confml has changed
Binary file scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/conf/screensaveranimplugin_1020744E.crml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/data/10207447.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     ECOM Resource file for ScreenSaverAnimPlugin
+*
+*/
+
+
+
+
+
+//  INCLUDES
+#include <ecom/registryinfo.rh>
+
+#include "ScreensaverpluginIntDef.hrh"
+#include "ScreenSaverAnimPluginImplementationUid.hrh"
+#include "screensaveranimplugin.loc"
+
+//  RESOURCE DEFINITIONS 
+// -----------------------------------------------------------------------------
+//   
+// theInfo
+// ECOM DLL interface & implementation description resource.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE REGISTRY_INFO theInfo
+    {
+    dll_uid = 0x10207447;
+    interfaces =
+        {
+        INTERFACE_INFO
+            {
+            interface_uid = KCScreensaverPluginInterfaceDefinitionUid;
+            implementations =
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid =KScreenSaverAnimPluginImplementationUID;
+                    version_no = 1;
+                    display_name = qtn_sanim_screensaver_name;
+                    default_data = "";
+                    opaque_data = "07";
+                    }
+                };
+            }
+        };
+    }
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/data/ScreenSaverAnimPlugin.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,378 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Resource file for ScreenSaverAnimPlugin
+*
+*/
+
+
+
+
+
+//  RESOURCE IDENTIFIER
+
+NAME ANSS
+
+#include <eikon.rh>
+#include <avkon.rh>
+#include <avkon.mbg>
+#include <avkon.hrh>
+#include <avkon.rsg>
+#include <aknsconstants.hrh>
+#include <pathconfiguration.hrh>
+#include <avkon.loc>
+#include "ScreenSaverAnimCustControl.rh"
+#include <screensaveranimplugin.loc>
+#include "ScreenSaverAnimPlugin.hrh"
+
+// ---------------------------------------------------------
+//
+// Define the resource file signature
+// This resource should be empty.
+//
+// ---------------------------------------------------------
+//
+RESOURCE RSS_SIGNATURE
+    {
+    }
+
+RESOURCE TBUF
+    {
+    buf = "AnimScreenSaver";
+    }
+
+STRUCT MIMETYPE_SPECIFIC_PLUGIN_ARRAY
+    {
+    STRUCT pairs[]; // array of mimetype and implementation uid pair
+    }
+// -----------------------------------------------------------------------------
+// SCREENSAVER_MIMETYPE_PLUGIN_PAIR
+// One mapping between file name extension and MIME type.
+// -----------------------------------------------------------------------------
+//
+STRUCT SCREENSAVER_MIMETYPE_PLUGIN_PAIR
+    {    
+    LTEXT mimetype;
+    LONG  implementation_uid;
+    }
+    
+RESOURCE MIMETYPE_SPECIFIC_PLUGIN_ARRAY r_mimetype_specific_plugin_array
+    {
+    pairs =
+        {
+        SCREENSAVER_MIMETYPE_PLUGIN_PAIR
+            {
+            mimetype = "image/svg+xml";
+            implementation_uid = 0x102071E6;
+            },
+        SCREENSAVER_MIMETYPE_PLUGIN_PAIR
+            {
+            mimetype = "image/gif";
+            implementation_uid = 0x102750B4;
+            },
+        SCREENSAVER_MIMETYPE_PLUGIN_PAIR
+            {
+            mimetype = "application/m3g";
+            implementation_uid = 0x102750B3;
+            }
+#ifdef RD_FLASHLITE_SCREENSAVER            
+            ,
+        SCREENSAVER_MIMETYPE_PLUGIN_PAIR
+            {
+            mimetype = "application/x-shockwave-flash";
+            implementation_uid = 0x101f4e5d;
+            }
+#endif          
+                                               
+        };
+    }
+
+//----------------------------------------------------
+//    
+//    r_anim_timeout_slider    
+//    Duration slider.
+//
+//----------------------------------------------------
+//
+RESOURCE SLIDER r_anim_timeout_slider 
+    {
+    layout = EAknSettingsItemSliderLayout;
+    minvalue = 5;
+    maxvalue = 60;
+    step = 1;
+    valuetype = EAknSliderValueBareFigure;
+    singular_valuelabel = qtn_sanim_duration_slider_ykcur;
+    minlabel = qtn_sanim_duration_slider_min;
+    maxlabel = qtn_sanim_duration_slider_max;
+    valuelabel = qtn_sanim_duration_slider_cur;
+    }
+    
+//----------------------------------------------------
+//    
+//    r_light_timeout_slider    
+//    Backlight slider.
+//
+//----------------------------------------------------
+//
+RESOURCE SLIDER r_light_timeout_slider 
+    {
+    layout = EAknSettingsItemSliderLayout;
+    minvalue = 0;
+    maxvalue = 30;
+    step = 1;
+    valuetype = EAknSliderValueBareFigure;
+    singular_valuelabel = qtn_sanim_duration_slider_ykcur;
+    minlabel = qtn_sanim_slider_off;
+    maxlabel = qtn_sanim_slider_max_secs;
+    valuelabel = qtn_sanim_slider_context_value_secs;
+    }
+    
+// -----------------------------------------------------------------------------
+//    
+//  r_anim_timeout_setting_page   
+//  Screen saver setting page.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE AVKON_SETTING_PAGE r_anim_timeout_setting_page
+    { 
+    number = EAknSettingPageNoOrdinalDisplayed;
+    label = qtn_sanim_list_anim_timeout;
+    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
+    type = EAknCtSlider;//0xffff;
+    editor_resource_id = r_anim_timeout_slider;
+    }
+    
+// -----------------------------------------------------------------------------
+//    
+//  r_light_timeout_setting_page   
+//  Screen saver setting page.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE AVKON_SETTING_PAGE r_light_timeout_setting_page
+    { 
+    number = EAknSettingPageNoOrdinalDisplayed;
+    label = qtn_sanim_list_light_timeout;
+    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
+    type = EAknCtSlider;//0xffff;
+    editor_resource_id = r_light_timeout_slider;
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+//  r_sanim_setting_lbx  
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE LISTBOX r_sanim_setting_lbx
+    {
+    array_id = r_sanim_setting_lbx_items;
+    flags = EEikListBoxMultipleSelection;
+    }
+
+// -----------------------------------------------------------------------------
+//
+//  r_sanim_setting_lbx_items  
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE ARRAY r_sanim_setting_lbx_items  
+    {
+    items =
+        {
+        LBUF
+            {
+            txt = "\t"qtn_sanim_list_anim_file"\t\t";
+            },
+        LBUF
+            {
+            txt = "\t"qtn_sanim_list_anim_timeout"\t\t";
+            },
+        LBUF
+            {
+            txt = "\t"qtn_sanim_list_light_timeout"\t\t";
+            }
+
+        };  
+    }
+
+// ---------------------------------------------------------
+//
+//   r_sanim_setting_dialog
+//   SVG-T Dialog
+//
+// ---------------------------------------------------------
+//
+
+RESOURCE DIALOG r_sanim_setting_dialog
+    {
+    flags = EAknDialogSelectionList;
+    title = "SANIM Dialog";
+    buttons = R_AVKON_SOFTKEYS_SELECTION_LIST;
+    items =
+        {
+        DLG_LINE
+            {
+            type = ESanimCustControl;
+            id = ESanimDialogCustControlIdData;
+            control = SANIM_CUST_CONTROL
+                {
+                };
+            }
+        };
+    }
+// -----------------------------------------------------------------------------
+//
+// r_sanim_dialog_menubar
+// Resource for Dialog "Options" Menu Bar
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_BAR r_sanim_dialog_menubar
+    {
+    titles =
+        {
+        MENU_TITLE
+            {
+            menu_pane = r_sanim_dialog_menu;
+            }
+        };
+    }
+
+// -----------------------------------------------------------------------------
+//
+// r_sanim_dialog_menu
+// Resource for Screen saver setting Dialog "Options" Menu Pane
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_sanim_dialog_menu
+    {
+    items =
+        {
+        MENU_ITEM
+            {
+            command = ESanimDlgChangeCommand;
+            txt = qtn_sanim_option_change;
+            flags = EEikMenuItemAction; // add this line to list item action commands
+            },        
+#ifdef __SERIES60_HELP            
+        MENU_ITEM
+            {
+            command = ESanimDlgHelpCommand;
+            txt = qtn_options_help;
+            },
+#endif // __SERIES60_HELP            
+        MENU_ITEM
+            {
+            command = EAknCmdExit;
+            txt = qtn_options_exit;
+            }
+        };
+    }
+    
+// ---------------------------------------------------
+//
+//    r_sanim_title_settings
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_title_settings
+    {
+    buf = qtn_sanim_title_settings;
+    }
+    
+// ---------------------------------------------------
+//
+//    r_sanim_title_settings
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_not_supported
+    {
+    buf = qtn_err_not_supp;
+    }
+    
+// ---------------------------------------------------
+//
+//    r_sanim_title_settings
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_error_wrong_format
+    {
+    buf = qtn_sanim_error_wrong_format;
+    }  
+    
+
+// ---------------------------------------------------
+//
+//    r_sanim_err_failure
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_err_failure
+    {
+    buf = qtn_err_failure;
+    } 
+    
+// ---------------------------------------------------
+//
+//    r_sanim_slider_off
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_slider_off
+    {
+    buf = qtn_sanim_slider_off;
+    }             
+        
+// ---------------------------------------------------
+//
+//    r_drm_prev_rights_set
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_drm_prev_rights_set
+    {
+    buf = qtn_drm_prev_rights_set;
+    }             
+        
+
+// ---------------------------------------------------
+//
+//    r_sanim_screensaver_name
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_screensaver_name
+    {
+    buf = qtn_sanim_screensaver_name;
+    }
+
+
+// -----------------------------------------------------------------------------
+//   
+//  r_sanim_msk_change
+//  Middle softkey label: change. From Avkon resources (avkon.loc)
+// -----------------------------------------------------------------------------
+//
+RESOURCE TBUF r_sanim_msk_change
+    {
+    buf = qtn_msk_change;
+    }
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/group/ScreenSaverAnimPlugin.mmp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     This is the .mmp for building the Screen Saver Anim Plugin 
+*
+*/
+
+
+
+
+
+#include <bldvariant.hrh>
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+TARGET          ScreenSaverAnimPlugin.dll
+
+
+TARGETTYPE      PLUGIN 
+
+UID             0x10009D8D 0x10207447
+
+CAPABILITY      CAP_ECOM_PLUGIN
+VENDORID        VID_DEFAULT
+
+START RESOURCE ../data/10207447.rss 
+TARGET      ScreenSaverAnimPlugin.rsc
+END
+
+START RESOURCE  ../data/ScreenSaverAnimPlugin.rss
+HEADER
+TARGETPATH      RESOURCE_FILES_DIR
+LANGUAGE_IDS
+END  // RESOURCE
+
+
+/* exportunfrozen */ 
+
+SOURCEPATH      ../src
+SOURCE          ScreenSaverAnimPlugin.cpp
+SOURCE          ScreenSaverAnimPluginProxy.cpp
+SOURCE          NpnImplementation.cpp
+SOURCE          ScreenSaverAnimPluginContainer.cpp
+SOURCE          ScreenSaverAnimSettingDialog.cpp
+SOURCE          ScreenSaverAnimPluginHelper.cpp
+
+
+
+USERINCLUDE     ../inc
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+APP_LAYER_SYSTEMINCLUDE
+
+
+LIBRARY         ecom.lib 
+LIBRARY         euser.lib
+LIBRARY         eikcore.lib
+LIBRARY         cone.lib 
+LIBRARY         efsrv.lib 
+LIBRARY         bafl.lib
+LIBRARY         centralrepository.lib
+LIBRARY         cenrepnotifhandler.lib
+LIBRARY         DrmHelper.lib
+LIBRARY         aknicon.lib              // AknIconUtils
+LIBRARY         aknlayout2.lib           // Scalable UI
+LIBRARY         AknLayout2Scalable.lib   // Scalable UI
+LIBRARY         aknskins.lib
+LIBRARY         CdlEngine.lib            // Scalable UI 
+LIBRARY         avkon.lib 
+LIBRARY         apgrfx.lib
+LIBRARY         apmime.lib 
+LIBRARY         mgfetch.lib
+LIBRARY         eikcoctl.lib
+LIBRARY         CommonEngine.lib 
+LIBRARY         eikdlg.lib
+LIBRARY         flogger.lib
+LIBRARY         caf.lib
+LIBRARY         cafutils.lib
+#ifdef __SERIES60_HELP
+LIBRARY         hlplch.lib               // for "Help" options menu
+#endif // __SERIES60_HELP
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/group/bld.inf	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Build information file for ScreenSaverAnimPlugin
+*
+*/
+
+
+
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS 
+// Defaults
+
+
+
+PRJ_MMPFILES
+
+ScreenSaverAnimPlugin.mmp
+PRJ_EXPORTS
+//../inc/NPNExtensions.h MW_LAYER_PLATFORM_EXPORT_PATH(NPNExtensions.h)
+../loc/screensaveranimplugin.loc MW_LAYER_LOC_EXPORT_PATH(screensaveranimplugin.loc)
+
+../rom/ScreenSaverAnimPlugin.iby          CORE_MW_LAYER_IBY_EXPORT_PATH(ScreenSaverAnimPlugin.iby)
+../rom/ScreenSaverAnimPluginResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(ScreenSaverAnimPluginResources.iby)	
+
+// Generic configuration interface for component cenrep settings  
+../conf/screensaveranimplugin.confml                APP_LAYER_CONFML(screensaveranimplugin.confml)
+../conf/screensaveranimplugin_1020744E.crml         APP_LAYER_CRML(screensaveranimplugin_1020744E.crml)
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/NpnImplementation.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,140 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Thin wrapper around plugin's function table.
+*
+*/
+
+
+
+
+
+#ifndef NPNIMPLEMENTATION_H
+#define NPNIMPLEMENTATION_H
+
+ // INCLUDE FILES
+#include <e32std.h>
+#include <e32base.h>
+#include <eikenv.h>
+#include <npupp.h>
+#include <sysutil.h>
+
+
+NPError NpnGetUrl( NPP aInstance, const TDesC& aUrl, 
+        const TDesC* aWindowType );
+
+
+NPError NpnPostUrl( NPP aInstance, const TDesC& aUrl, 
+        const TDesC* aWindowType, const TDesC& aBuf, NPBool aFile );
+
+
+NPError NpnRequestRead( NPStream* /*aStream*/, 
+        NPByteRange* /*aRangeList*/ );
+
+
+NPError NpnNewStream( NPP /*aInstance*/, NPMIMEType /*aType*/, 
+        const TDesC* /*aWindowType*/, NPStream** /*aStream*/ );
+
+
+TInt32 NpnWrite( NPP /*aInstance*/, NPStream* /*aStream*/, 
+        TInt32 /*aLen*/, void* /*aBuffer*/ );
+
+
+NPError NpnDestroyStream( NPP /*aInstance*/, 
+        NPStream* /*aStream*/, NPReason /*aReason*/ );
+
+
+void NpnStatus( NPP /*aInstance*/, const TDesC& aMessage );
+
+
+const TDesC* NpnUAgent( NPP /*aInstance*/ );
+
+
+void* NpnMemAlloc( uint32 aSize );
+
+
+void NpnMemFree( void* aPtr );
+
+
+uint32 NpnMemFlush( uint32 /*aSize*/ );
+
+
+void NpnReloadPlugins( NPBool aReloadPages );
+
+
+JRIEnv* NpnGetJavaEnv();
+
+
+jref NpnGetJavaPeer( NPP /*aInstance*/ );
+
+
+NPError NpnGetUrlNotify( NPP aInstance, const TDesC& aUrl, 
+        const TDesC* aWindowType, void* aNotifyData );
+
+
+NPError NpnPostUrlNotify( NPP aInstance, const TDesC& aUrl, 
+        const TDesC* aWindowType, const TDesC& aBuf, NPBool aFile, void* aNotifyData );
+
+
+NPError NpnGetValue( NPP aInstance, NPNVariable aVariable, void *aRetValue );
+
+
+NPError NpnSetValue( NPP aInstance, NPPVariable aVariable, void *aSetValue );
+
+
+void NpnInvalidateRect( NPP /*aInstance*/, NPRect * /*aRect*/ );
+
+
+void NpnInvalidateRegion( NPP /*aInstance*/, NPRegion /*aRegion*/ );
+
+
+void NpnForceRedraw( NPP /*aInstance*/ );
+
+
+   
+// -----------------------------------------------------------------------------
+// PluginNpnFuncs
+//
+// A const global variable used to hold the browser callback functions.
+// -----------------------------------------------------------------------------
+//
+const NPNetscapeFuncs NpnImplementationFuncs =
+    {
+    sizeof( NPNetscapeFuncs ),
+    1, // Version
+    NpnGetUrl,
+    NpnPostUrl,
+    NpnRequestRead,
+    NpnNewStream,
+    NpnWrite,
+    NpnDestroyStream,
+    NpnStatus,
+    NpnUAgent,
+    NpnMemAlloc,
+    NpnMemFree,
+    NpnMemFlush,
+    NpnReloadPlugins,
+    NpnGetJavaEnv,
+    NpnGetJavaPeer,
+    NpnGetUrlNotify,
+    NpnPostUrlNotify,
+    NpnGetValue,
+    NpnSetValue,
+    NpnInvalidateRect,
+    NpnInvalidateRegion,
+    NpnForceRedraw
+    };
+
+
+#endif // NPNIMPLEMENTATION_H
+// End Of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimCustControl.rh	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2004,2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Resource Header for SVGT Custom Control Structure
+*
+*/
+
+
+
+
+
+#ifndef SCREENSAVERANIMCUSTCONTROL_RH 
+#define SCREENSAVERANIMCUSTCONTROL_RH 
+//  INCLUDES
+
+//  MACROS
+
+//  STRUCTURE DEFINITIONS
+
+// -----------------------------------------------------------------------------
+// SANIM_CUST_CONTROL
+// Defines the resource structure for SVGT Custom Control.
+// -----------------------------------------------------------------------------
+//
+
+STRUCT SANIM_CUST_CONTROL
+    {
+    }
+#endif //  SCREENSAVERANIMCUSTCONTROL_RH 
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPlugin.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,576 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ScreenSaverAnimPlugin provides an implementation of 
+*                MScreensaverPlugin for animation files.
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERANIMPLUGIN_H
+#define C_SCREENSAVERANIMPLUGIN_H
+
+#include <gdi.h>
+#include <ScreensaverpluginIntDef.h>
+#include <coecntrl.h>
+#include <e32cmn.h>
+#include <screensaverplugin.h>
+#include <coecobs.h>
+#include <npupp.h>
+#include <ecom/implementationinformation.h>    
+#include <cecombrowserplugininterface.h>
+#include <pluginadapterinterface.h>
+#include <flogger.h>
+
+
+class CEikonEnv;
+class CDRMHelper;
+class CScreensaverRepositoryWatcher;
+class CRepository;
+
+
+_LIT( KFileLoggingDir, "ScreenSaver" );
+_LIT( KFileLog, "SaveLog.txt" );
+_LIT( KEmptyString, "" );
+
+#ifdef SCREENSAVER_LOG_ENABLED
+
+inline void PrintDebugMsg( const TDesC& aMsg ) 
+    {    
+    RDebug::Print( aMsg );
+#if 0
+    RFileLogger::Write( KFileLoggingDir, 
+                        KFileLog, EFileLoggingModeAppend, aMsg );
+#endif
+    }
+#else
+
+inline void PrintDebugMsg( const TDesC& /*aMsg*/ ) 
+    {
+    }
+
+#endif
+
+/**
+*  Encapsulates the Settings that are written into the central repository
+*  @lib ScreenSaverAnimPlugin.lib
+*  @since 3.1
+*/
+class CScreenSaverAnimSettingObject : public CBase
+    {
+
+    public:
+        CScreenSaverAnimSettingObject();
+
+    public:
+
+        // Name of the file to be set as screensaver
+        TFileName iFileName;   
+
+        // Animation Timeout
+        TInt iAnimationTimeout;  
+
+        // Lights Timeout
+        TInt iLightsTimeout;  
+    };
+
+/**
+*  Provides the Animated ScreenSaverPlugin functionality which implements
+*  ScreenSaver Interface and gives a Netscape Browser Plugin Interface
+*  to the format specific plugins like SVG, Flash, M3G etc.
+*  @lib ScreenSaverAnimPlugin.lib
+*  @since 3.1
+*/
+ 
+class CScreenSaverAnimPlugin: public CScreensaverPluginInterfaceDefinition,
+                              public MPluginAdapter,
+                              public MCoeControlObserver
+    {
+
+    public: 
+
+        /**
+        * Two-phased constructor.
+        * @since 3.1
+        */
+        static CScreenSaverAnimPlugin* NewL();
+
+        /**
+        * Destructor.
+        */
+        virtual ~CScreenSaverAnimPlugin();
+
+    public: // Functions From CScreensaverPluginInterfaceDefinition        
+
+        /**
+        * From MScreensaverPlugin, Method called by ScreenSaver Application
+        * when an animation file is configured as a Screen Saver.
+        * @param aHost  Screen saver plugin host.
+        * @since 3.1
+        */
+        virtual TInt InitializeL( MScreensaverPluginHost *aHost );
+            
+        /**
+        * From MScreensaverPlugin, Method called by ScreenSaver Application
+        * when Screen Saver is activated.
+        * @since 3.1
+        */
+        virtual TInt Draw( CWindowGc& aGc );
+
+        /**
+        * From MScreensaverPlugin, Method called by ScreenSaver Application
+        * before the InitializeL.
+        * @since 3.1
+        */
+        virtual const TDesC16& Name() const;
+
+        /**
+        * From MScreensaverPlugin, Method called by ScreenSaver Application
+        * to get the capabilities of Screensaver plugin.
+        * @since 3.1
+        */
+        virtual TInt Capabilities();
+
+        /**
+        * From MScreensaverPlugin, Method called by Psln Application
+        * when the user selects Animated ScreenSaver 
+        * @since 3.1
+        */
+        virtual TInt PluginFunction(
+                TScPluginCaps /*aFunction*/,
+                TAny* /*aParam*/ );
+
+        /**
+        * From MScreensaverPlugin, Method called by ScreenSaver Application
+        * when there are Screen Saver events.
+        * @since 3.1
+        */
+        virtual TInt HandleScreensaverEventL(
+                TScreensaverEvent aEvent,
+                TAny* aData );
+
+    public: // New Functions
+
+        /**
+        * Reads the animation settings from the central repository
+        * @since 3.1
+        * @return System wide Error value
+        */
+        TInt GetAnimSettings();
+
+        /**
+        * Writes the animation settings to the central repository
+        * @since 3.1
+        * @return System wide Error value
+        */
+        TInt SetAnimSettings() const;
+
+        /**
+        * This method registers for expiry of drm content
+        * @since 3.1
+        * @return System wide Error value   
+        */
+        TInt RegisterForDrmExpiry();
+
+        /**
+        * This method unregisters for expiry of drm content
+        * @since 3.1
+        * @return System wide Error value   
+        */
+        TInt UnregisterForDrmExpiry();
+
+        /**
+        * This method reads and parses the central repository key 
+        * for drm expiry
+        * @since 3.1
+        * @return System wide Error value
+        */
+        TInt ReadDrmNotification( TDes8& aString );
+
+        /**
+        * Called when there is a drm expiry notification
+        * @since 3.1
+        */
+        void ProcessDrmNotificationL();
+
+        /**
+        * This method pops the settings dialog
+        * @since 3.1
+        */
+        void PopSettingsDialogL();
+
+        /**
+        * This method checks whether the set file exists currently
+        * if not, it updates the filename string
+        * This also checks if the rights are valid if the content is drm 
+        * if not, it updates the filename with the empty file name
+        * returns True, if the Filename is updated
+        *         False, otherwise
+        * @since 3.1
+        */
+        TBool UpdateFileName();
+
+        /**
+        * Called when HandleScreenSaverEventL is called with EDisplayChanged
+        * Used to set the parent control for the animation plugins
+        * returns KErrGeneral when SetWindow does not go through
+        * @since 3.1
+        */
+        TInt SetWindow( CCoeControl* aParent );
+
+        /**
+        * Called to set the filename for the animation plugins
+        * @since 3.1
+        */
+        void AsFile();
+
+        /**
+        * Called when there is a central repository settings change
+        * @since 3.1
+        */
+        void HandleSettingsChange( TAny* aPtr );
+
+        /**
+        * Called by the repository watcher when there is a central 
+        * repository settings change
+        * @since 3.1
+        */
+        static TInt HandleRepositoryCallBack( TAny* aPtr );
+
+        /**
+        * Called by the repository watcher when there is a 
+        * drm expiry notification
+        * @since 3.1
+        */
+        static TInt HandleDrmNotification( TAny* aPtr );
+
+        /**
+        * Sends an event to the plugins to check for the file's validity 
+        * repository settings change
+        * returns KErrNone if the file is valid
+        * @since 3.1
+        */
+        TInt CheckFileValidityL( const TDesC& aFileName );
+
+        /**
+        * Parses the mime description and checks whether the given mime type
+        * is present in the mime description
+        * @since 3.1
+        * @param aMIMEDescription mime Description which has mimetype, 
+        *                extension and description
+        * @param aDataType mimetype to be searched
+        * @return TBool ETrue if aDataType is present in aMIMEDescription
+        *               EFalse otherwise
+        */
+        static TBool ParseMimeStringL( const TDesC& aMIMEDescription,
+                                const TDesC& aDataType );
+
+        /**
+        * Given the mimetype searches and returns the browser plugin which 
+        * handles the given mimetype
+        * @since 3.1
+        * @param aDataType 
+        * @return TUid uid of the plugin which handles the mimetype
+        */
+        TUid FindAnimPluginL( const TDesC& aDataType );
+
+
+    public: // From MPluginAdapter
+        
+        /**
+        * Gets the pointer to the minor version number of the plug-in version 
+        * number of the Browser Plug-in API. 
+        * @since 3.1
+        * @return Series 60 returns 1. Series 80 and 
+        * the Nokia 7710 smartphone return 101.
+        */
+        virtual TUint16 GetVersion();
+
+        /**
+        * Called when the plug-in has completed its creation.
+        * This function is called from the constructL function of the plug-in.
+        * @since 3.1
+        * @param aPluginControl A pointer to the plug-in control window
+        */
+        virtual void PluginConstructedL( CCoeControl* aPluginControl );
+
+        /**
+        * Called after the plug-in has been deleted.
+        * This function is called from the destructor of the plug-in.
+        * @since 3.1        
+        */
+        virtual void PluginFinishedL();
+
+#ifndef __SERIES60_30__
+
+        /**
+        * Called by the plug-in to open a URL in the parent frame.
+        * This function is not implemented in Series 60. 
+        * It is supported in Series 80 and in the Nokia 7710 smartphone.
+        * @since 3.1
+        * @param aUrl Name of the URL to open
+        */
+        virtual void OpenUrlL( const TDesC& aUrl );
+
+        /**
+        * Called by the plug-in to open a URL in a named window or frame.
+        * This function is not implemented in Series 60. 
+        * It is supported in Series 80 and in the Nokia 7710 smartphone.
+        * @since 3.1
+        * @param aUrl Name of the URL to open
+        * @param aNewTargetWindowName The name of the target window or frame   
+        */
+        virtual void OpenUrlInTargetWindowL( const TDesC& aUrl, 
+                                           const TDesC& aNewTargetWindowName );
+
+        /**
+        * Specifies whether or not the frame has a previous navigation 
+        * history item.
+        * This function is not implemented in Series 60. 
+        * It is supported in Series 80 and in the Nokia 7710 smartphone.
+        * @since 3.1
+        * @return true if the frame has a previous navigation 
+        * history item false otherwise
+        */
+        virtual TBool HasNavigationHistoryPrevious() const;
+
+        /**
+        * Informs the browser to load the next navigation history URL 
+        * in its parent frame.
+        * This function is not implemented in Series 60. 
+        * It is supported in Series 80 and in the Nokia 7710 smartphone.
+        * @since 3.1
+        */
+        virtual void LoadNavigationHistoryPreviousL();
+
+        /**
+        * Returns whether the frame has a next navigation history item. 
+        * This function is not implemented in Series 60.
+        * It is supported in Series 80 and in the Nokia 7710 smartphone.
+        * @since 3.1
+        * @return Returns whether the frame has a next navigation history item. 
+        */
+        virtual TBool HasNavigationHistoryNext() const;
+
+        /**
+        * Informs the browser to load the next navigation history URL 
+        * in its parent frame.
+        * This function is not implemented in Series 60. It is supported in
+        * Series 80 and in the Nokia 7710 smartphone.
+        * @since 3.1        
+        */
+        virtual void LoadNavigationHistoryNextL();
+
+#endif
+        /**
+        * Returns the window system level control object for the plug-in.
+        * @since 3.1
+        * @return A pointer to the parent control window.
+        */
+        virtual CCoeControl* GetParentControl();
+
+        /**
+        * Returns the observer for the plug-in control.
+        * @since 3.1
+        * @return Observer that the plug-in can use to send events 
+        * to the browser.
+        */
+        virtual MCoeControlObserver* GetParentControlObserver();
+
+        /**
+        * Sets the plug-in notifier allowing the plug-in to control 
+        * portions of the browser.
+        * @since 3.1
+        * @param aNotifier Pointer to an interface that the browser can 
+        * use to send events to the plug-in.        
+        */
+        virtual void SetPluginNotifier( MPluginNotifier *aNotifier );
+
+        /**
+        * Tells the plugin adapter if plugin content can accept user interaction.  This function
+        * is called from the plugin.
+        * @since Series 60 3nd Edition
+        * @param None
+        * @return None
+        */
+        virtual void SetContentInteractive( TBool /*aInteractive*/ );
+
+    public: //MCoeControlObserver
+        /** 
+        * Handles an event from an observed control.
+        * This function is called when a control for which this control
+        * is the observer calls CCoeControl::ReportEventL(). It should be
+        * implemented by the observer control, and should handle all events 
+        * sent by controls it observes.     
+        * @param aControl The control that sent the event.
+        * @param aEventType The event type. 
+        */
+        virtual void HandleControlEventL( CCoeControl* aControl,
+                          TCoeEvent aEventType );
+
+    private: // New functions
+        
+        /**
+        * Finds the mime type of the file, searches the corresponding 
+        * browser plugin which handles the mime type and starts the same.
+        * @since 3.1                
+        */
+        void FindAndStartPluginL( const TDesC& aFileName, 
+                                  TBool aCheckFileMode = EFalse );
+
+        /**
+        * Makes use of ecom api to find out whether an implementation with uid
+        * aImpUid is present which implements the interface aInterfaceUid.
+        * @since 3.1
+        */
+        TBool CheckIfPluginPresentL( TUid aInterfaceUid, 
+                                    TUid aImpUid );
+
+        /**
+        * Finds the mime type of the file, searches the corresponding 
+        * browser plugin which handles the mime type
+        * @since 3.1
+        */
+        void FindPluginL( const TDesC& aFileName );
+        
+        /**
+        * Creates the format specific plugin
+        * @since 3.1
+        */
+        void CreatePluginL( TBool aCheckFileMode = EFalse );
+
+        /**
+        * Deletes the browser plugin.
+        * @since 3.1
+        */
+        void DeletePlugin();  
+
+        /**
+        * Deletes and Sets the browser plugin members to NULL
+        * @since 3.1
+        */
+        void SetPluginDeleted();
+
+        /**
+        * Connects the central repository session
+        * @since 3.1
+        */
+        void InitializeCenRepL();
+
+        /**
+        * Registers for central repository key changes
+        * @since 3.1
+        */
+        void NotifyCenrepChangeL();
+
+        /**
+        * Cancels registration for central repository key changes
+        * @since 3.1
+        */
+        void NotifyCenrepChangeCancel();
+
+        /**
+        * Disconnects the central repository session
+        * @since 3.1
+        */
+        void UnInitializeCenRep();
+
+        /**
+        * Sends an animation end event to the plugins
+        * @since 3.1
+        */
+        TInt SendEndEvent();
+
+        /**
+        * Checks whether the given content id matches the content id of the
+        * file name given
+        * @return ETrue if the content id matches
+        * EFalse if not
+        * @since 3.1
+        */
+        TBool CheckContentIdL( const TDesC& aFileName, TDesC8& aContentUri );
+
+    private:
+
+        /**
+        * Default Constructor
+        * @since 3.1
+        */  
+        CScreenSaverAnimPlugin();
+
+        /**
+        * 2nd phase constructor
+        * @since 3.1
+        */
+        void ConstructL();
+
+    public: 
+
+        // Pointer to the screen saver host
+        MScreensaverPluginHost* iScreenSaverHost;
+
+    private:
+
+        // Resource file offset
+        TInt iResourceOffset;
+
+        // Handle to the central repository session
+        CRepository* iAnimPluginSession;
+
+         // Handle to the central repository session
+        CRepository* iDrmSession;
+
+        // Environment pointer
+        CEikonEnv* iEikEnv;
+
+        // Format specific Netscape plugin UID
+        TUid iPluginUID;
+
+        // Netscape plugin functions.
+        NPPluginFuncs* iPluginFuncs;
+
+        // Netscape ECOM plugin interface.
+        CEcomBrowserPluginInterface* iPluginInterface;
+
+        // Netscape plugin instance.
+        NPP iNPPinstance;
+
+        // Plugin Type
+        HBufC8* iPluginType;
+
+        // Parent control given by the screen saver application
+        CCoeControl* iParentControl;
+
+        // Pointer to the Settings object
+        CScreenSaverAnimSettingObject* iSettingObject;
+
+        // Pointer to Drm Helper
+        CDRMHelper* iDrmHelper;
+
+        // Cenrep Watcher for settings change
+        CScreensaverRepositoryWatcher* iScreensaverRepositoryWatcher;
+
+        // Cenrep Watcher for drm expiry
+        CScreensaverRepositoryWatcher* iDrmExpiryWatcher;
+
+        // To save the error encountered by the plugin
+        TInt iPluginError;
+
+        // Screensaver plugin name
+        HBufC* iScreensaverName;
+    };
+
+
+#endif // C_SCREENSAVERANIMPLUGIN_H
+// End Of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPlugin.hrh	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   The enumeration will be used in the animation plugin
+*
+*/
+
+
+
+#ifndef SCREENSAVERANIMPLUGIN_HRH
+#define SCREENSAVERANIMPLUGIN_HRH
+
+#include <avkon.hrh>
+
+
+// Screen Animation Plugin's Setting List Items.
+enum TSanimSettingListItemIds
+    {
+    ESanimAnimFileNameId,
+    ESanimAnimTimeoutId,
+    ESanimLightsTimeoutId
+    };
+
+enum TSAnimDialogMenuCommands
+    {
+    ESanimDlgChangeCommand = 1,  // Must not start with 0 - dialog ignores it
+    ESanimDlgHelpCommand
+    };
+
+enum { ESanimDialogCustControlIdData = 1 };
+enum { ESanimCustControl = 1020 };
+
+
+#endif
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginConst.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Constant definitions for Screen Saver Anim Plugin 
+*
+*/
+
+
+
+
+
+#ifndef SCREENSAVERANIMPLUGINCONST_H
+#define SCREENSAVERANIMPLUGINCONST_H
+
+// Feature IDs.
+enum 
+    {
+    // Remove Back Light Setting
+    EAnimPluginBacklightRemoved,
+
+    /*Insert new item here*/
+
+    // last feature should be max value
+    KAnimPluginMaxFeatureID
+    };
+
+/**
+*******************************************************************************
+* Following constants are shared between PLSN. The three constants need to be 
+* sychronized in both PLSN and Screensaver Animation plugin projects when each
+* has changes. 
+*******************************************************************************
+*/
+// Same definition as in PslnVariationPrivateCRKeys.h 
+const TUid KCRUidThemesVariation = { 0x102818EB };
+
+
+/**
+* Specifies the bitmask for Themes applications locally variated features.
+* 
+* Possible values are defined in PslnVariant.hrh.
+*/
+const TUint32 KThemesLocalVariation       = 0x00000001;
+
+
+// Same definition as in pslnvariant.hrh
+// Removes screensaver animation plugin's timeout setting. 
+// Bitmask value in decimals: 256.
+#define KScreenSaverRemoveAnimPluginTimeout 0x00000100
+
+
+#endif // SCREENSAVERANIMPLUGINCONST_H
+// End Of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginContainer.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   This header defines the container for the settings list
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERANIMPLUGINCONTAINER_H
+#define C_SCREENSAVERANIMPLUGINCONTAINER_H
+
+// INCLUDES
+#include    <coeccntx.h>
+#include    <eikclb.h>
+#include    <eiklbo.h>
+
+// CLASS DECLARATION
+
+/**
+* CScreenSaverAnimPluginContainer container class
+*
+*/
+class CScreenSaverAnimPluginContainer : public CCoeControl,
+                                        public MEikListBoxObserver
+    {
+    public: // Constructors and destructor
+
+        static CScreenSaverAnimPluginContainer* NewLC(
+                           CScreenSaverAnimPlugin* aCaller, 
+                           const CCoeControl* aParent,
+                           CScreenSaverAnimSettingObject* aSettingObject );
+
+        static CScreenSaverAnimPluginContainer* NewL( 
+                              CScreenSaverAnimPlugin* aCaller,
+                              const CCoeControl* aParent,
+                              CScreenSaverAnimSettingObject* aSettingObject );
+
+        CScreenSaverAnimPluginContainer(
+                          CScreenSaverAnimPlugin* aCaller,
+                          CScreenSaverAnimSettingObject* aSettingObject );
+
+        virtual void ConstructL( const CCoeControl* aParent,
+                                const TRect& aRect );
+
+        /**
+        * Constructs all common parts of the container.
+        * @param aRect Listbox control's rect.
+        * @param aResTitleId Resource id for title.
+        * @param aResLbxId Resource id for listbox.
+        * @return void
+        */
+        void BaseConstructL( const TRect& aRect, TInt aResTitleId, 
+                    TInt aResLbxId = 0 );
+
+        /**
+        * Destructor.
+        */
+        ~CScreenSaverAnimPluginContainer();
+
+    public: //new
+
+        /**
+        * Updates listbox's item's value.
+        * @param aItemId An item which is updated.
+        * @return void.
+        */
+        void UpdateListBoxL( TInt aItemId );
+
+        void HandleListBoxSelectionL();
+
+        /**
+        * Sets feature support - see screensaveranimpluginconst.h for feature list.
+        * @param aFeatureBitFlags feature support bitflags.
+        */
+        void GetFeatureSupportL( TBitFlags& aFeatureBitFlags ) const;
+
+        /**
+        * Checks if feature is supported.
+        * @param aFeatureID feature ID.
+        * @return ETrue if feature is supported, EFalse otherwise.
+        */
+        TBool IsFeatureSupported( TInt aFeatureID );
+
+    public: //MEikListBoxObserver 
+
+        virtual void HandleListBoxEventL( CEikListBox* aListBox, 
+                TListBoxEvent aEventType );
+
+    public: //From CCoeControl
+
+        virtual void HandleResourceChange( TInt aType );
+
+        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, 
+                TEventCode aType ); // this processes key events
+
+        virtual void SetContainerWindowL( const CCoeControl& aContainer );
+
+        // Focus change handler
+        void FocusChanged( TDrawNow aDrawNow );
+
+    protected: // New methods
+
+        /**
+        * Constructs listbox.
+        * @param aResLbxId Resource id for listbox.
+        * @return void
+        */
+        virtual void ConstructListBoxL( TInt aResLbxId );
+
+    private: // new
+        void CreateListBoxItemsL();
+        void MakeAnimTimeOutItemL();
+        void MakeLightsTimeOutItemL();
+        void MakeFileNameItem();
+        void ShowFileNameItemL();
+        void ShowAnimTimeOutItemL();
+        void ShowLightsTimeOutItemL();
+
+    private: // from CCoeControl
+
+        void SizeChanged();
+
+        TInt CountComponentControls() const;
+
+        CCoeControl* ComponentControl( TInt /*aIndex*/ ) const;
+        
+        void GetNormalScreenLayoutRect( TRect& aRect )  const;
+
+    protected: // Data
+        CEikTextListBox* iListBox;
+        
+    private: // new
+        CDesCArrayFlat* iItems;
+        CDesCArray* iItemArray;
+        TBuf<128> iItem;
+        CScreenSaverAnimSettingObject* iSettingObject;
+        CScreenSaverAnimPlugin* iCaller;
+        TBool iInShowFileItem;
+
+        /**
+        * Defines which features are supported.
+        */
+        TBitFlags iFeaturesSupport;
+
+    };
+
+#endif // C_SCREENSAVERANIMPLUGINCONTAINER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginHelper.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,144 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   This file declares all helper classes 
+*                for ScreenSaverAnimPlugin
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERANIMPLUGINHELPER_H
+#define C_SCREENSAVERANIMPLUGINHELPER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <MMGFetchVerifier.h>
+#include <cenrepnotifyhandler.h>
+
+// FORWARD DECLARATIONS
+class CDRMHelper;
+class CCoeEnv;
+class CScreenSaverAnimPlugin;
+class CRepository;
+
+// CLASS DECLARATION
+
+/**
+* Implementation for File Validity Check.
+* @since 3.1
+* @internal
+*/
+class CScreenSaverAnimPluginVerifier : public CBase, public MMGFetchVerifier
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CScreenSaverAnimPluginVerifier* NewL( 
+                             CScreenSaverAnimPlugin* aFileVerify );
+
+        /**
+        * Destructor.
+        */
+        ~CScreenSaverAnimPluginVerifier();
+
+    public: // Functions from base classes
+
+        /**
+        * From MFLDFileObserver.
+        */
+        TBool VerifySelectionL( const MDesCArray* aSelectedFiles );
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CScreenSaverAnimPluginVerifier( CScreenSaverAnimPlugin* aFileVerify );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+        void ShowErrorNoteL( TInt  aResourceId  ) const;
+
+    private:    // Data
+        // Own: DRM helper
+        CDRMHelper* iDRMHelper;
+        
+        // Environment pointer
+        CCoeEnv* iCoeEnv;
+
+        CScreenSaverAnimPlugin* iFileVerify;
+
+    };
+    
+    
+// CLASS DECLARATION
+
+/**
+* Helper Class to watch Central Repository Changes.
+* @since 3.1
+* @internal
+*/    
+class CScreensaverRepositoryWatcher : public CBase, public MCenRepNotifyHandlerCallback
+    {
+public:
+    static CScreensaverRepositoryWatcher* NewL(
+        const TUid aUid,
+        const TUint32 aKey,
+        CCenRepNotifyHandler::TCenRepKeyType aKeyType,
+        TCallBack aCallBack,
+        CRepository* aRepository );
+
+    static CScreensaverRepositoryWatcher* NewL(
+        const TUid aUid,
+        TCallBack aCallBack,
+        CRepository* aRepository );
+
+    ~CScreensaverRepositoryWatcher();
+
+    TUint32 ChangedKey();
+
+public: // from MCenRepNotifyHandlerCallback
+    void HandleNotifyInt    ( TUint32 aKey, TInt aNewValue );
+    void HandleNotifyString ( TUint32 aKey, const TDesC16& aNewValue );
+    void HandleNotifyGeneric( TUint32 aKey );
+    void HandleNotifyError  ( TUint32 aKey, TInt aError, CCenRepNotifyHandler* aHandler );
+
+private:
+    CScreensaverRepositoryWatcher(
+        const TUid aUid,
+        const TUint32 aKey,
+        TCallBack aCallBack,
+        CRepository* aRepository );
+
+    void ConstructL( CCenRepNotifyHandler::TCenRepKeyType aKeyType );
+
+    void ConstructL();
+
+private:
+    TUid                    iUid;
+    TUint32                 iKey;
+    TUint32                 iChangedKey;
+    TCallBack               iCallBack;
+    CRepository*            iRepository;
+    CCenRepNotifyHandler*   iNotifyHandler;
+
+    };
+
+#endif // C_SCREENSAVERANIMPLUGINHELPER_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginImplementationUid.hrh	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Defines the ECOM Implementation UIDs. 
+*
+*/
+
+
+
+
+
+#ifndef SCREENSAVERANIMPLUGINIMPLEMENTATIONUID_HRH
+#define SCREENSAVERANIMPLUGINIMPLEMENTATIONUID_HRH
+
+#define KScreenSaverAnimPluginImplementationUID 0x1020744D
+
+#endif // SCREENSAVERANIMPLUGINIMPLEMENTATIONUID_HRH
+// End of File 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimPluginInternalCRKeys.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:      This header file gives the central repository key 
+*                 enumerations
+*
+*/
+
+
+
+
+#ifndef SCREENSAVERANIMPLUGININTERNALCRKEYS_H
+#define SCREENSAVERANIMPLUGININTERNALCRKEYS_H
+
+const TUid KCRUidScreenSaverAnimPlugin = { 0x1020744E };
+
+const TUint32 KScreenSaverAnimatedFileName = 0x00000001;
+
+const TUint32 KScreenSaverAnimationTimeOut = 0x00000002;
+
+const TUint32 KScreenSaverLightsTimeOut    = 0x00000003;
+
+#endif      // SCREENSAVERANIMPLUGININTERNALCRKEYS_H
+// End of File
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/ScreenSaverAnimSettingDialog.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,192 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ScreenSaverAnimPlugin Settings Dialog
+*
+*/
+
+
+
+#ifndef C_SCREENSAVERANIMSETTINGDIALOH_H
+#define C_SCREENSAVERANIMSETTINGDIALOH_H
+
+
+// FORWARD DECLARATIONS
+class CAknDialog;
+class CScreenSaverAnimPluginContainer;
+class CScreenSaverAnimSettingObject;
+
+/**
+*  Provides the dialog functionality for viewing Settings.
+*  @lib ScreenSaverAnimPlugin.dll
+*  @since 3.1
+*/
+ 
+class CScreenSaverAnimSettingDialog : public CAknDialog
+    {
+    public:  // Constructors and destructor
+        /**
+        * Two-phased constructor.
+        */
+        static CScreenSaverAnimSettingDialog* NewL(
+                              CScreenSaverAnimPlugin* aCaller,
+                              CScreenSaverAnimSettingObject* aSettingObject );
+
+        /**
+        * Two-phased constructor.
+        */
+        static CScreenSaverAnimSettingDialog* NewLC(
+                              CScreenSaverAnimPlugin* aCaller,
+                              CScreenSaverAnimSettingObject* aSettingObject );
+
+        // Destructor
+        virtual ~CScreenSaverAnimSettingDialog();
+
+    public: // New functions
+    public: // Functions from base classes
+
+        /**
+        * From CAknDialog Executes the dialog and deletes the dialog on exit.
+        * @since 3.1
+        * @param aFileHandle File handle to the SVGT content.
+        * @param aAppObs Implementation Class provided by application that
+        *   uses this dialog
+        * Note: The ownership of the file handle is not transferred. 
+        *       It is the responsibility of the caller to close this file 
+        *       after deleting this dialog.        
+        * @return Integer - Indicates Exit Reason.
+        */
+        virtual TInt ExecuteLD();
+        /**
+        * From CAknDialog - Called by framework to process commands invoked by
+        *  the user.
+        */
+        virtual void ProcessCommandL( TInt aCommandId );
+
+#ifdef __SERIES60_HELP
+        /**
+        * From CCoeControl Context Sensitive Help ID retrieving function.
+        * @since 3.0
+        * @see CCoeControl
+        */
+        void GetHelpContext( TCoeHelpContext& aContext ) const;
+#endif
+
+    public:
+
+        /**
+        * Function used by the application to handle background/foreground
+        * events. When the application goes to background the presentation
+        * needs to be paused. When application comes back to foreground,
+        * the user would need to start the paused presentation. 
+        * @param aForeground: ETrue: Foreground event, 
+        *                     EFalse: Background event.
+        * @since 3.1
+        */
+        virtual void HandleApplicationForegroundEvent( TBool aForeground );
+
+    protected: // Functions from base classes
+        // From CEikDialog
+        // From CAknDialog
+
+        /**
+        * From CAknDialog - Called by framework to dynamically manipulate
+        *  the menu for the dialog.
+        */
+        void  DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+        /**
+        * From CEikDialog. Prelayouts the dialog.
+        */
+        void PreLayoutDynInitL();
+
+        /**
+        * From CAknDialog - Framework method to determine if it OK
+        *  to exit the dialog.
+        */
+        TBool OkToExitL( TInt aButtonId );
+
+        /**
+        * From CAknDialog - Called by framework to add custom control to the
+        *  dialog when specified in resource.
+        */
+        SEikControlInfo CreateCustomControlL( TInt aControlType );
+
+        /**
+        * From CAknDialog - Called by framework to notify resize of dialog.
+        */
+        void SizeChanged();
+
+        /**
+        * From CCoeControl Key Handling Method for control.
+        * @since 3.1
+        * @param aKeyEvent Key Event.
+        * @param aType Type of Key Event.
+        * @return TKeyResponse - EKeyWasConsumed/EKeyWasNotConsumed.
+        */
+        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+                                     TEventCode aType );
+
+        /**
+        * From CCoeControl 
+        * @see CCoeControl::HandleResourceChange
+        */
+        void HandleResourceChange( TInt aType );
+
+        /**
+        * From CCoeControl 
+        * @see CCoeControl::FocusChanged
+        */
+        void FocusChanged( TDrawNow aDrawNow );
+
+        /**
+         * Sets middle softkey label.
+         * @param aResourceId resource ID of label text to use.
+         * @param aCommandId command to place to middle softkey.
+         */
+        void SetMiddleSoftKeyLabelL( const TInt aResourceId,
+                                     const TInt aCommandId );
+
+    private:
+        /**
+        * C++ default constructor.
+        */
+        CScreenSaverAnimSettingDialog( 
+                 CScreenSaverAnimPlugin* aCaller,
+                 CScreenSaverAnimSettingObject* aSettingObject );
+        /**
+        * Second Phase constructor.
+        */
+        void ConstructL();
+
+    private:    // Data
+
+        // Pointer to Custom CCoeControl.
+        CScreenSaverAnimPluginContainer* iCustControl;
+
+        // Application Title Text
+        HBufC* iAppTitleText;
+
+        // Text to be displayed in the title pane
+        HBufC* iTitlePaneString;
+
+        // Setting Object
+        CScreenSaverAnimSettingObject* iSettingObject ;
+
+        // Caller's reference
+        CScreenSaverAnimPlugin* iCaller;
+
+    };
+
+#endif // C_SCREENSAVERANIMSETTINGDIALOH_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/inc/screensaver.hlp.hrh	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   The string to be used in the animation plugin
+*
+*/
+
+
+
+//
+// screensaver.hlp.hrh
+//
+
+//
+// File generated by cshlpcmp Version 011
+//
+
+#ifndef SCREENSAVER_HLP_HRH
+#define SCREENSAVER_HLP_HRH
+
+
+_LIT( KSCREENSAVER_HLP_ANIM_SETTINGS, "SCREENSAVER_HLP_ANIM_SETTINGS" ); //ScreenSaver animation settings
+_LIT( KSCREENSAVER_HLP_SLIDE_SET, "SCREENSAVER_HLP_SLIDE_SET" ); //Slide set screen saver settings
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/loc/screensaveranimplugin.loc	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Localization strings for ScreenSaverAnimPlugin
+*
+*/
+
+
+
+
+
+//d: Screensaver name
+//d: Displayed in Themes application screensaver list
+//l: list_set_graphic_pane_t1
+//w:
+//r:3.1
+#define qtn_sanim_screensaver_name "Animation"
+
+//d: Title Pane String
+//d: Displayed in the title Pane when settings dialog is displayed.
+//l: title_pane_1 
+//w:
+//r:3.1
+#define qtn_sanim_title_settings "Settings" 
+
+//d: Text in the setting list item.
+//d: Displayed in the setting page to select backlight timer value
+//l: list_setting_pane_1
+//w:
+//r:3.1
+#define qtn_sanim_list_light_timeout "BackLight"
+
+//d: Text in the setting list item
+//d: Displayed in the setting page to select animation duration
+//l: list_setting_pane_t1
+//w:
+//r:3.1
+#define qtn_sanim_list_anim_timeout "Duration"
+
+//d: Text in the setting list item
+//d: Displayed in the setting page to select animation file
+//l: list_setting_pane_t1
+//w:
+//r:3.1
+#define qtn_sanim_list_anim_file "Animation file"
+
+//d:Text in slider control
+//d:Screen saver animation duration setting page
+//d:Minimum value
+//l:setting_slider_pane_t2
+//r:3.1
+#define qtn_sanim_duration_slider_min "5 sec."
+
+//d:Text in slider control
+//d:Screen saver animation duration setting page
+//d:Maximum value
+//l:setting_slider_pane_t3
+//r:3.1
+#define qtn_sanim_duration_slider_max "60 sec."
+
+//d:Text in slider control / setting list item value
+//d:Screen saver animation duration setting page
+//d:Context specific text
+//l:setting_slider_pane_t1 / list_set_graphic_pane_t1
+//r:3.1
+#define  qtn_sanim_duration_slider_cur "%U seconds"
+
+//d:Text in slider control / setting list item value
+//d:Screen saver animation duration / backlight timeout setting page
+//d:Context specific text for singular value
+//l:setting_slider_pane_t1 / list_set_graphic_pane_t1
+//r:3.1
+#define  qtn_sanim_duration_slider_ykcur "%U second"
+
+//d:Text in slider control
+//d:Screen saver backlight time-out setting page
+//d:Minimum value
+//l:slider_set_pane_2
+//r:3.1
+#define qtn_sanim_slider_off "Off"
+
+//d:Text in slider control
+//d:Screen saver backlight time-out setting page
+//d:Maximum value
+//l:slider_set_pane_2
+//r:3.1
+#define qtn_sanim_slider_max_secs "30 secs."
+
+//d:Text in slider control / setting list item value
+//d:Screen saver backlight time-out setting page
+//d:Context specific text
+//l:setting_slider_pane_t1 / list_set_graphic_pane_t1
+//r:3.1
+#define qtn_sanim_slider_context_value_secs "%U seconds"
+
+//d: Option in the Options menu.
+//d: Option used to change the settings
+//l: list_single_popup_menu_pane_1
+//w:
+//r:3.1
+#define qtn_sanim_option_change "Change"
+
+// Taken from errorres.loc 
+// d: Generic error note to be displayed when user tries to  
+// d: use some feature which is not supported 
+// l: popup_note_window_1_four_rows
+// w: Errorres
+// 
+#define qtn_err_not_supp "Feature is not supported"
+
+// d: error note to be displayed when user tries to  
+// d: select some file which is corrupted 
+// l: popup_note_window/opt2
+// w:
+// r:3.1
+#define qtn_sanim_error_wrong_format "File is corrupted or wrong format"
+
+// d: error note to be displayed when animation couldnot 
+// d: be played as a screensaver
+// l: popup_note_window_1_four_rows
+// w:
+// r:3.1
+#define qtn_err_failure "Unable to perform operation"
+
+// d: error note to be displayed when animation couldnot 
+// d: be set as a screensaver
+// l: popup_note_window_1_four_rows
+// w:
+// r:3.1
+#define qtn_drm_prev_rights_set "Unable to select.Object can only be viewed"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/rom/ScreenSaverAnimPlugin.iby	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     IBY file for ScreenSaverAnimPlugin
+*
+*/
+
+
+
+
+#ifndef __SCREENSAVERANIMPLUGIN_IBY
+#define __SCREENSAVERANIMPLUGIN_IBY
+
+// File empty on 3.0, or if S60 native browser is not used
+#ifndef __SERIES60_30__
+#ifdef __SERIES60_NATIVE_BROWSER
+ECOM_PLUGIN(ScreenSaverAnimPlugin.dll,10207447.rsc)
+#endif
+#endif
+
+#endif // __SCREENSAVERANIMPLUGIN_IBY
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/rom/ScreenSaverAnimPluginResources.iby	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     IBY file for ScreenSaverAnimPlugin
+*
+*/
+
+
+
+
+#ifndef __SCREENSAVERANIMPLUGINRESOURCES_IBY
+#define __SCREENSAVERANIMPLUGINRESOURCES_IBY
+
+// File empty on 3.0, also if S60 browser is not used (media plugins not present)
+#ifndef __SERIES60_30__
+#ifdef __SERIES60_NATIVE_BROWSER
+data=DATAZ_\RESOURCE_FILES_DIR\ScreenSaverAnimPlugin.rsc    RESOURCE_FILES_DIR\ScreenSaverAnimPlugin.rsc
+#endif
+#endif
+
+#endif // __SCREENSAVERANIMPLUGINRESOURCES_IBY
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/NpnImplementation.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,286 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     This file defines the functions 
+*                _NPNetscapeFuncs of Browser's Netscape API
+*
+*/
+
+
+
+
+
+#include "NpnImplementation.h"
+
+
+// -----------------------------------------------------------------------------
+// NpnGetUrl
+//
+// Requests the associated pluginInst to load the given url.
+// -----------------------------------------------------------------------------
+//
+ NPError NpnGetUrl( NPP /*aInstance*/, const TDesC& /*aUrl*/,
+                   const TDesC* /*aWindowType*/ )
+    {
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnPostUrl
+//
+// Requests the associated pluginInst to POST to the given url.
+// -----------------------------------------------------------------------------
+//
+ NPError NpnPostUrl( NPP /*aInstance*/, const TDesC& /*aUrl*/, 
+                    const TDesC* /*aWindowType*/,
+                    const TDesC& /*aBuf*/, NPBool /*aFile*/ )
+    {
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnRequestRead
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ NPError NpnRequestRead( NPStream* /*aStream*/, NPByteRange* /*aRangeList*/ )
+    {
+    // This function is not supported
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnNewStream
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ NPError NpnNewStream( NPP /*aInstance*/, NPMIMEType /*aType*/,
+                      const TDesC* /*aWindowType*/, NPStream** /*aStream*/ )
+    {
+    // This function is not supported.
+    // It is specifically intended to create a new Browser window
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnWrite
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ TInt32 NpnWrite( NPP /*aInstance*/, NPStream* /*aStream*/,
+                 TInt32 /*aLen*/, void* /*aBuffer*/ )
+    {
+    // This function is not supported.
+    // It is specifically intended to create a new Browser window
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnDestroyStream
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ NPError NpnDestroyStream( NPP /*aInstance*/, NPStream* /*aStream*/,
+                          NPReason /*aReason*/ )
+    {
+    // This function is not supported.
+    // It is specifically intended to create a new Browser window
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnStatus
+//
+// Allows a plugin to report its current status to the associated PluginInst.
+// -----------------------------------------------------------------------------
+//
+ void NpnStatus( NPP /*aInstance*/, const TDesC& /*aMessage*/ )
+    {   
+    }
+
+// -----------------------------------------------------------------------------
+// NpnUAgent
+//
+// Returns the user agent of the Series 60 Browser.
+// -----------------------------------------------------------------------------
+//
+ const TDesC* NpnUAgent( NPP /*aInstance*/ )
+    {
+    return NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnMemAlloc
+//
+// Allocates a chunk of memory on the behalf of the plugin.
+// -----------------------------------------------------------------------------
+//
+ void* NpnMemAlloc( uint32 aSize )
+    {
+    if ( aSize )
+        {
+        return User::Alloc( aSize );
+        }
+    return NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnMemFree
+//
+// Deallocates a chunk of memory on the behalf of the plugin.
+// -----------------------------------------------------------------------------
+//
+ void NpnMemFree( void* aPtr )
+    {
+    User::Free( aPtr );
+    }
+
+// -----------------------------------------------------------------------------
+// NpnMemFlush
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ uint32 NpnMemFlush( uint32 /*aSize*/ )
+    {
+    // This function is not supported
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnReloadPlugins
+//
+// Causes the PluginHandler to scan for new plugins and reloads the current
+// page if aReloadPages is true.
+// -----------------------------------------------------------------------------
+//
+ void NpnReloadPlugins( NPBool /*aReloadPages*/ )
+    {
+    //This is currently not supported since CPluginHandler is non static
+    }
+
+// -----------------------------------------------------------------------------
+// NpnGetJavaEnv
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ JRIEnv* NpnGetJavaEnv()
+    {
+    // This function is not supported
+    return NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnGetJavaPeer
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ jref NpnGetJavaPeer( NPP /*aInstance*/ )
+    {
+    // This function is not supported
+    return NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnGetUrlNotify
+//
+// Requests the associated PluginInst to load the given url.  The plugin is
+// notified when the request completes.
+// -----------------------------------------------------------------------------
+//
+ NPError NpnGetUrlNotify( NPP /*aInstance*/, const TDesC& /*aUrl*/,
+                         const TDesC* /*aWindowType*/, void* /*aNotifyData*/ )
+    {
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnPostUrlNotify
+//
+// Requests the associated PluginInst to POST to the given url.  The plugin is
+// notified when the request completes.
+// -----------------------------------------------------------------------------
+//
+ NPError NpnPostUrlNotify( NPP /*aInstance*/, const TDesC& /*aUrl*/,
+                          const TDesC* /*aWindowType*/, const TDesC& /*aBuf*/,
+                          NPBool /*aFile*/, void* /*aNotifyData*/ )
+    {
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnGetValue
+//
+// Query the associated PluginInst for information.
+// -----------------------------------------------------------------------------
+//
+ NPError NpnGetValue( NPP /*aInstance*/, NPNVariable /*aVariable*/, 
+                     void* /*aRetValue*/ )
+    {   
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnSetValue
+//
+// Set a value on the associated PluginInst
+// -----------------------------------------------------------------------------
+//
+ NPError NpnSetValue( NPP /*aInstance*/, NPPVariable /*aVariable*/, 
+                                        void* /*aSetValue*/ )
+    {   
+    return NPERR_GENERIC_ERROR;
+    }
+
+// -----------------------------------------------------------------------------
+// NpnInvalidateRect
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ void NpnInvalidateRect( NPP /*aInstance*/, NPRect * /*aRect*/ )
+    {
+    // This function is not supported
+    }
+
+// -----------------------------------------------------------------------------
+// NpnInvalidateRegion
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ void NpnInvalidateRegion( NPP /*aInstance*/, NPRegion /*aRegion*/ )
+    {
+    // This function is not supported
+    }
+
+// -----------------------------------------------------------------------------
+// NpnForceRedraw
+//
+// Unsupported.
+// -----------------------------------------------------------------------------
+//
+ void NpnForceRedraw( NPP /*aInstance*/ )
+    {
+    // This function is not supported
+    }
+
+
+// End Of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPlugin.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,1570 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     This file implements the Screen Saver Animation Plugin which
+*                is used by Screen Saver application to load animation 
+*                screen savers.
+*
+*/
+
+
+
+
+
+#include <eikenv.h>
+#include <bautils.h>
+#include <apgcli.h>
+#include <data_caging_path_literals.hrh>
+#include <centralrepository.h>
+#include <DRMHelper.h>
+#include <aknnotewrappers.h> 
+#include <aknnavi.h>
+#include <aknnavide.h>
+#include <npupp.h>
+#include <cecombrowserplugininterface.h>
+#include <browserplugininterface.h>
+#include <mmf/common/mmfcontrollerpluginresolver.h>
+#include <DRMHelperServerInternalCRKeys.h>
+#include <NPNExtensions.h>
+#include <screensaveranimplugin.rsg>
+#include <coecntrl.h>
+#include "ScreenSaverAnimPluginInternalCRKeys.h"
+#include "ScreenSaverAnimPlugin.h"
+#include "ScreenSaverAnimPluginContainer.h"
+#include "ScreenSaverAnimSettingDialog.h"
+#include "NpnImplementation.h"
+#include "ScreenSaverAnimPluginHelper.h"
+
+// Constants
+#ifdef SCREENSAVER_LOG_ENABLED         
+const TInt KMaxBufLen = 64;
+#endif
+const TInt KSixteenBytes = 128;
+const TInt KUrlMaxLen = 1024;
+
+// Animation Timeout values
+const TInt KMinDurationValue = 5;
+const TInt KMaxDurationValue = 60;
+const TInt KDefaultDurationValue = 5;
+
+// Backlight Values
+const TInt KMinBackLightValue = 0;
+const TInt KMaxBackLightValue = 30;
+const TInt KDefaultBackLightValue = 0;
+
+const TInt KScreensaverAnimPluginInterfaceUid = 0x102750CB;  
+
+
+_LIT( KResourceFileName, "Z:ScreenSaverAnimPlugin.rsc" );
+
+
+CScreenSaverAnimSettingObject::CScreenSaverAnimSettingObject()
+    {
+    iAnimationTimeout = KDefaultDurationValue;
+    iLightsTimeout = KDefaultBackLightValue;
+    }
+// ============================ MEMBER FUNCTIONS =============================
+
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::NewL
+// ---------------------------------------------------------------------------
+//
+CScreenSaverAnimPlugin* CScreenSaverAnimPlugin::NewL()
+    {
+    CScreenSaverAnimPlugin* self = new ( ELeave ) CScreenSaverAnimPlugin;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::~CScreenSaverAnimPlugin
+// ----------------------------------------------------------------------------
+//   
+CScreenSaverAnimPlugin::~CScreenSaverAnimPlugin()
+    {    
+    if ( iResourceOffset != 0 )
+        {
+        iEikEnv->DeleteResourceFile( iResourceOffset );
+        }        
+    UnregisterForDrmExpiry();       
+    NotifyCenrepChangeCancel();     
+    UnInitializeCenRep();
+
+    // Final place to delete plug-in. Plug-in is deleted here
+    // if plug-in notices runtime error.
+    SetPluginDeleted();
+
+    delete iDrmHelper;
+    delete iSettingObject;
+    delete iScreensaverName;
+    }
+    
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::InitializeL
+// -----------------------------------------------------------------------------
+//  
+TInt CScreenSaverAnimPlugin::InitializeL( MScreensaverPluginHost *aHost )
+    {     
+    
+    if ( !aHost )
+        {
+        return KErrCancel;
+        }
+#ifdef SCREENSAVER_LOG_ENABLED                 
+    _LIT( msg, "InitializeL called " );    
+    PrintDebugMsg( msg );
+#endif    
+    
+    iScreenSaverHost = aHost;   
+    iScreenSaverHost->UseRefreshTimer( EFalse );
+    
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( cenrepmsg, "before NotifyCenrepChangeL" );    
+    PrintDebugMsg( cenrepmsg );    
+#endif    
+         
+    NotifyCenrepChangeL();
+    
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( cenrepmsg1, "After NotifyCenrepChangeL" );    
+    PrintDebugMsg( cenrepmsg1 );    
+#endif    
+            
+    iScreenSaverHost->OverrideStandardIndicators();    
+    
+    iScreenSaverHost->ExitPartialMode(); 
+    
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( FindPluginLmsg, "before FindPluginL" );    
+    PrintDebugMsg( FindPluginLmsg );    
+#endif    
+    
+    TRAPD( err, FindPluginL( iSettingObject->iFileName ) )
+    
+    if ( err != KErrNone )
+        {
+        return err;
+        }
+    
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( FindPluginLmsg1, "After FindPluginL" );    
+    PrintDebugMsg( FindPluginLmsg1 );        
+#endif    
+    
+    return KErrNone;
+    
+    }
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::Draw
+// -----------------------------------------------------------------------------
+// 
+TInt CScreenSaverAnimPlugin::Draw(CWindowGc& /*aGc*/)
+    {     
+    return KErrNone;    
+    }
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::SetWindow
+// -----------------------------------------------------------------------------
+//    
+TInt CScreenSaverAnimPlugin::SetWindow( CCoeControl* aParent )
+    {
+        
+    iParentControl = aParent;
+    NPWindow window;
+    TInt ret = KErrNone;
+    
+    window.window = STATIC_CAST( MPluginAdapter*, this ); 
+    iNPPinstance->ndata = STATIC_CAST( MPluginAdapter*, this ); 
+    window.x = 0;   /* Position of top left corner relative */
+    window.y = 0;   /* to a netscape page.*/
+    
+    if ( aParent )
+        {
+        window.width = aParent->Rect().Width(); /* Max window size */
+        window.height = aParent->Rect().Height();
+        window.type = NPWindowTypeDrawable;                
+        }
+    
+    if ( iPluginFuncs && !iPluginFuncs->setwindow( iNPPinstance, &window ) )
+        {
+        ret = KErrNone;
+        }  
+    else
+        {
+        ret = KErrGeneral;   
+        }
+    return ret;
+    }
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::Name
+// -----------------------------------------------------------------------------
+//     
+const TDesC16& CScreenSaverAnimPlugin::Name() const
+    {
+    if ( iScreensaverName )
+        {
+        return *iScreensaverName;
+        }
+    else
+        {
+        return KNullDesC;
+        }
+    }
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::Capabilities
+// -----------------------------------------------------------------------------
+//    
+TInt CScreenSaverAnimPlugin::Capabilities()
+    {
+    return EScpCapsConfigure;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::PluginFunction
+// -----------------------------------------------------------------------------
+// 
+TInt CScreenSaverAnimPlugin::PluginFunction(
+            TScPluginCaps aFunction,
+            TAny* /*aParam*/)
+    { 
+    if ( aFunction == EScpCapsSelectionNotification  
+		|| aFunction == EScpCapsPreviewNotification )
+        {
+        _LIT( msg, "Plugin function called Sel Notify" );    
+        PrintDebugMsg( msg );
+    
+        if ( iSettingObject->iFileName.Length() == 0  || UpdateFileName() )
+            {
+            // File is not configured yet or deleted/renamed,
+            // pop the settings dialog
+            TInt err = KErrNone;
+            TRAP( err, PopSettingsDialogL() );
+            return err;
+            }            
+        else
+            {
+            return KErrNone;
+            }      
+        }
+    if ( aFunction == EScpCapsConfigure )
+        {
+        _LIT( msg, "Plugin function called Configure" );    
+        PrintDebugMsg( msg );   
+        UpdateFileName();           
+        TInt err = KErrNone;
+        TRAP( err, PopSettingsDialogL() );
+        return err;
+        }    
+    return KErrNone;                                                
+    }  
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::HandleScreensaverEventL
+// -----------------------------------------------------------------------------
+//  
+TInt CScreenSaverAnimPlugin::HandleScreensaverEventL(
+            TScreensaverEvent aEvent,
+            TAny* /*aData*/ )
+    {
+
+    if ( aEvent == EScreensaverEventDisplayChanged )
+        {
+        // Display Changed is called when there is a change in the size
+        // of the window and when the parent control is set for the 
+        // first time.        
+        TScreensaverDisplayInfo* displayInfo = new( ELeave ) 
+                               TScreensaverDisplayInfo;
+        displayInfo->iSize = sizeof( TScreensaverDisplayInfo );
+        iScreenSaverHost->DisplayInfo( displayInfo );
+        iParentControl = displayInfo->iParent;
+        delete displayInfo;
+        }
+
+    if ( aEvent == EScreensaverEventStopping )
+        {
+#ifdef SCREENSAVER_LOG_ENABLED                     
+        _LIT( KStopEventMsg, "Stop Event" );
+        PrintDebugMsg( KStopEventMsg );
+#endif          
+
+        // Delete the Plugin
+        SendEndEvent();
+        DeletePlugin();
+        }
+
+    if ( aEvent == EScreensaverEventStarting )
+        {
+#ifdef SCREENSAVER_LOG_ENABLED                     
+        _LIT( KStartEventMsg, "Start Event" );
+        PrintDebugMsg( KStartEventMsg );
+#endif          
+        // Check for drm rights
+        // If the file is not valid, suspend and return
+        if ( iDrmHelper )
+            {
+            TBool yes = EFalse;   
+            iDrmHelper->CanSetAutomated( 
+                     iSettingObject->iFileName, yes );
+            if ( !yes )
+                {
+                iScreenSaverHost->RevertToDefaultSaver();
+                return KErrNotFound;
+                }
+            } 
+
+        if ( iScreenSaverHost )
+            {
+            iScreenSaverHost->RequestTimeout(
+                iSettingObject->iAnimationTimeout );
+            }        
+            
+#ifdef SCREENSAVER_LOG_ENABLED                     
+        _LIT( KStartMsg, "Starting" );
+        PrintDebugMsg( KStartMsg );
+#endif        
+        
+        // Reset plugin creation error
+        // The plugin cannot leave or return error
+        // The plugin sets the error using pluginFinishedL
+        iPluginError = KErrNone;
+        // Create the plugin 
+        TRAPD( err,CreatePluginL() );
+        if ( err != KErrNone )
+            {
+            DeletePlugin();
+            return err;
+            }
+
+        // Check whether the plugin has 
+        // reported any error using PluginFinishedL    
+        if ( iPluginError )
+            {
+            SetPluginDeleted();
+            return iPluginError;
+            }
+
+#ifdef SCREENSAVER_LOG_ENABLED
+        _LIT( KStartedMsg, "Started" );
+        PrintDebugMsg( KStartedMsg );
+#endif        
+        
+        // send an event to plugins       
+        if ( iPluginFuncs )
+            {
+            NPAnimationEvent event;
+            event = NPStartAnimation;
+            iPluginFuncs->setvalue( iNPPinstance, 
+                                    ( NPNVariable )NPNScreenSaverAnimationEvent, 
+                                    &event );     
+            }
+
+        // Request lights only if set - otherwise it will turn off lights
+        // (e.g. in preview). Not nice.
+        TInt nLights = iSettingObject->iLightsTimeout;
+
+        if ( nLights > 0 )
+            {
+            iScreenSaverHost->RequestLights( nLights );
+            }
+        }
+
+    if ( aEvent == EScreensaverEventTimeout )
+        {
+#ifdef SCREENSAVER_LOG_ENABLED
+        _LIT( KTimeoutEventMsg, "Timeout Event" );
+        PrintDebugMsg( KTimeoutEventMsg );
+#endif          
+        // Delete the Plugin
+        SendEndEvent();
+        DeletePlugin();
+        iScreenSaverHost->Suspend( -1) ;
+        }
+
+    return KErrNone;
+    }  
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::GetAnimSettings
+// -----------------------------------------------------------------------------
+//  
+TInt CScreenSaverAnimPlugin::GetAnimSettings()
+    {   
+    // Read the file last, since if it is missing the reading will be
+    // stopped and settings all wrong
+    TInt err = iAnimPluginSession->Get( KScreenSaverAnimationTimeOut,
+                                        iSettingObject->iAnimationTimeout );
+
+    if ( iSettingObject->iAnimationTimeout < KMinDurationValue ||
+         iSettingObject->iAnimationTimeout > KMaxDurationValue )
+        {
+        // Out of range set it to default
+        iSettingObject->iAnimationTimeout = KDefaultDurationValue;
+        }
+
+    if ( err != KErrNone )
+        {
+        return err;
+        }
+
+    err = iAnimPluginSession->Get( KScreenSaverLightsTimeOut,
+                                   iSettingObject->iLightsTimeout );
+
+    if ( iSettingObject->iLightsTimeout < KMinBackLightValue ||
+         iSettingObject->iLightsTimeout > KMaxBackLightValue )
+        {
+        // Out of range set it to default
+        iSettingObject->iLightsTimeout = KDefaultBackLightValue;
+        }
+
+    if ( err != KErrNone )
+        {
+        return err;
+        }
+
+    // read the file from central repository and return
+    err = iAnimPluginSession->Get( KScreenSaverAnimatedFileName,
+                           iSettingObject->iFileName );
+                           
+    if ( err != KErrNone )
+        {
+        return err;
+        }
+
+    if ( !BaflUtils::FileExists( iEikEnv->FsSession(), 
+                                iSettingObject->iFileName ) )
+        {
+        return KErrNotFound;
+        }
+
+    TBool yes = EFalse;
+    if ( iDrmHelper )
+        {
+        TInt err = iDrmHelper->CanSetAutomated( 
+                 iSettingObject->iFileName, yes );
+        if ( !yes )
+            {
+            return KErrNotFound;
+            }
+        }
+
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::SetAnimSettings
+// -----------------------------------------------------------------------------
+//
+TInt CScreenSaverAnimPlugin::SetAnimSettings() const
+    {
+    
+    TInt err = KErrNone;
+    err = iAnimPluginSession->Set( KScreenSaverAnimatedFileName, 
+                          iSettingObject->iFileName );
+    if ( err != KErrNone )                          
+        {
+        return err;
+        }
+    err = iAnimPluginSession->Set( KScreenSaverAnimationTimeOut,
+                          iSettingObject->iAnimationTimeout );
+
+    if ( err != KErrNone )
+        {
+        return err;
+        }
+
+    err = iAnimPluginSession->Set( KScreenSaverLightsTimeOut,
+                          iSettingObject->iLightsTimeout );
+
+    return err;
+
+    } 
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::RegisterForDrmExpiry
+// -----------------------------------------------------------------------------
+//
+TInt CScreenSaverAnimPlugin::RegisterForDrmExpiry()
+    {
+    TInt err = iDrmHelper->SetAutomatedType( 
+             CDRMHelper::EAutomatedTypeScreenSaver );
+    if ( err == KErrNone )
+        {
+        return iDrmHelper->SetAutomatedSilent( iSettingObject->iFileName,
+                            ETrue ); 
+        }
+    else
+        {
+        return err;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::UnregisterForDrmExpiry
+// -----------------------------------------------------------------------------
+//
+TInt CScreenSaverAnimPlugin::UnregisterForDrmExpiry()
+    {   
+    if ( iDrmHelper )
+        {
+        iDrmHelper->SetAutomatedType( 
+             CDRMHelper::EAutomatedTypeScreenSaver );
+        return iDrmHelper->RemoveAutomated( iSettingObject->iFileName );    
+        }
+    else
+        {
+        return KErrNone;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::ReadDrmNotification
+// -----------------------------------------------------------------------------
+//  
+TInt CScreenSaverAnimPlugin::ReadDrmNotification( TDes8& aString )
+    {
+    return iDrmSession->Get( KDRMHelperServerNotification, aString );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::ProcessDrmNotificationL
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPlugin::ProcessDrmNotificationL()      
+    {
+         
+    TInt size = KSixteenBytes;
+    HBufC8* buf = HBufC8::NewLC( size );
+    TPtr8 bufPtr = buf->Des();
+
+    TInt error = ReadDrmNotification( bufPtr );
+    while ( error == KErrTooBig )
+        {
+        size += KSixteenBytes;
+        CleanupStack::PopAndDestroy( buf ); // buf
+        buf = HBufC8::NewLC( size );
+        bufPtr = buf->Des();
+        error = ReadDrmNotification( bufPtr );
+        }
+
+    TUint8 count = ( TUint8 )( *( buf->Ptr() ) );
+    TChar type = ( TUint8 )( *( buf->Ptr() + 1 ) );
+
+    TUint8 permType = ( TUint8 )( *( buf->Ptr() + 2 ) );
+    TUint8 autoType = ( TUint8 )( *( buf->Ptr() + 3 ) );
+
+    TPtr8 ptr( ( TUint8* ) ( buf->Ptr() + 4 ) , buf->Length() - 5 , buf->Length() - 5 );
+    HBufC8* content = HBufC8::NewLC( ptr.Length() );
+    *content = ptr;
+
+    TBool matched = CheckContentIdL( iSettingObject->iFileName, *content );
+
+    CleanupStack::PopAndDestroy( content ); 
+    CleanupStack::PopAndDestroy( buf ); 
+
+    if ( !matched )
+        {
+        return;
+        }
+
+    if ( type == 'E')
+        {
+        if ( count == 0 )
+            {
+#ifdef SCREENSAVER_LOG_ENABLED
+            _LIT( msg, "First Notification" );
+            PrintDebugMsg( msg );    
+#endif
+
+            // Expire screen saver here..., no note       
+            if ( iScreenSaverHost )
+                {
+                SendEndEvent();
+                // Delete the Plugin
+                DeletePlugin();
+                iScreenSaverHost->Suspend(-1);
+                }
+            }
+        else
+            {
+#ifdef SCREENSAVER_LOG_ENABLED
+            _LIT( msg, "Second Notification" );
+            PrintDebugMsg( msg );    
+#endif
+
+            // Show expiration notes...  
+            iDrmHelper->SetAutomatedType( 
+                CDRMHelper::EAutomatedTypeScreenSaver );
+            iDrmHelper->CheckRightsAmountL( iSettingObject->iFileName );
+            UnregisterForDrmExpiry();
+            }
+        }
+    } 
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::FindAndStartPluginL
+// -----------------------------------------------------------------------------
+//   
+void CScreenSaverAnimPlugin::FindAndStartPluginL( const TDesC& aFileName,
+                                                  TBool aCheckFileMode )
+    {
+    FindPluginL( aFileName );
+    CreatePluginL( aCheckFileMode );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::FindPluginL
+// -----------------------------------------------------------------------------
+//   
+void CScreenSaverAnimPlugin::FindPluginL( const TDesC& aFileName )
+    {
+
+    RApaLsSession ls;
+    CleanupClosePushL( ls );
+    TUid dummyUid( KNullUid );
+    TDataType dataType;
+    User::LeaveIfError( ls.Connect() );
+    User::LeaveIfError( ls.AppForDocument( aFileName, 
+                dummyUid, dataType ) );
+    CleanupStack::PopAndDestroy( &ls );
+
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( msg, "before FindAnimPluginL" );
+    PrintDebugMsg( msg );    
+#endif
+
+    iPluginUID = FindAnimPluginL( dataType.Des() );
+
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( msg1, "After FindAnimPluginL" );
+    PrintDebugMsg( msg1 );
+#endif
+
+    if ( iPluginUID == KNullUid )
+        {
+        User::Leave( KErrNotFound );
+        }
+
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( registermsg, "Before RegisterForDrmExpiry" );
+    PrintDebugMsg( registermsg );
+#endif    
+    
+    RegisterForDrmExpiry(); 
+
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( registermsg1, "After RegisterForDrmExpiry" );
+    PrintDebugMsg( registermsg1 );
+#endif
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::CreatePluginL
+// -----------------------------------------------------------------------------
+//   
+void CScreenSaverAnimPlugin::CreatePluginL( TBool aCheckFileMode )
+    {    
+    
+    /* Create the Netscape plugin for the animation format.
+    * Allocate memory for the plugin functions array. This
+    * would be filled by the netscape plugin.
+    * Initialize the plugin.
+    */
+
+    iPluginFuncs = 
+         ( NPPluginFuncs* ) User::AllocL( sizeof( NPPluginFuncs ) );
+    Mem::FillZ( ( void* )iPluginFuncs, sizeof( NPPluginFuncs ) );
+
+    iNPPinstance = ( NPP ) User::AllocL( sizeof( NPP_t ) );
+    Mem::FillZ( ( void* )iNPPinstance, sizeof( NPP_t ) );
+
+    iPluginType = ( HBufC8* )User::AllocL( sizeof( NPMIMEType ) );
+    Mem::FillZ( ( void* )iPluginType, sizeof( NPMIMEType ) );
+
+    TRAPD( err, iPluginInterface = 
+    CEcomBrowserPluginInterface::CreatePluginL( iPluginUID,
+          ( NPNetscapeFuncs* ) ( &NpnImplementationFuncs ), 
+          iPluginFuncs ) );
+
+    if ( err != KErrNone )
+        {
+        SetPluginDeleted();
+        User::Leave( err );
+        }
+
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( newpmsg, "Before newp" );
+    PrintDebugMsg( newpmsg );
+#endif
+
+    // Create an instance.
+    // Flash Plugin needs the NPInteractionMode in the newp
+
+    CDesCArrayFlat* attributeNames = new( ELeave ) CDesCArrayFlat( 1 );
+    CDesCArrayFlat* attributeValues = new( ELeave ) CDesCArrayFlat( 1 );
+    attributeNames->AppendL( KAttributeInteractionMode );
+    attributeValues->AppendL( KValueScreensaver );
+
+    User::LeaveIfError( iPluginFuncs->newp( *iPluginType, iNPPinstance, 
+    0 /*mode*/, 
+    attributeNames /*argn*/, 
+    attributeValues /*argv*/, 
+    NULL /*saved*/ ) );
+
+    delete attributeNames;
+    delete attributeValues;
+
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( newpmsg1, "After newp" );
+    PrintDebugMsg( newpmsg1 );
+#endif
+
+    // Set ScreenSaver Mode
+    if ( iPluginFuncs )
+        {
+        NPInteractionMode mode;
+        mode = NPScreenSaverMode;
+        iPluginFuncs->setvalue( iNPPinstance, 
+                                ( NPNVariable )NPNInteractionMode, 
+                                &mode );
+        }
+
+    if ( !aCheckFileMode )
+        {
+        SetWindow( iParentControl );
+        AsFile();
+        }
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::FindAnimPluginL
+// -----------------------------------------------------------------------------
+//     
+TUid CScreenSaverAnimPlugin::FindAnimPluginL( const TDesC& aDataType )
+    {    
+
+    TUid impUid = KNullUid;    
+
+    TResourceReader reader;
+    iEikEnv->CreateResourceReaderLC( reader, R_MIMETYPE_SPECIFIC_PLUGIN_ARRAY );
+    TInt countResource = reader.ReadInt16();
+    
+    for ( TInt i = 0; i < countResource; i++ )
+        {        
+        HBufC* newMimeTypeEntry = reader.ReadHBufCL();            
+        TPtr mimePtr( newMimeTypeEntry->Des() );
+        impUid.iUid = reader.ReadInt32();
+        if ( newMimeTypeEntry->Compare( aDataType ) == 0 )
+            {     
+            delete newMimeTypeEntry;                                                
+            break;
+            }
+        else
+            {
+            delete newMimeTypeEntry;                                    
+            }
+        }
+    CleanupStack::PopAndDestroy(); // reader      
+
+    if ( CheckIfPluginPresentL( KBrowserPluginInterfaceUid, impUid ) ||        
+         CheckIfPluginPresentL( TUid::Uid( KScreensaverAnimPluginInterfaceUid ),impUid ) )
+        {
+        return impUid;
+        }               
+
+    return KNullUid;   
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::CheckIfPluginPresentL
+// -----------------------------------------------------------------------------
+//     
+TBool CScreenSaverAnimPlugin::CheckIfPluginPresentL( TUid aInterfaceUid , 
+                                                    TUid aImpUid )
+    {
+    TBool ret( EFalse );
+    RImplInfoPtrArray animPluginList;   
+
+    REComSession::ListImplementationsL( aInterfaceUid, animPluginList );
+                                        
+    const TInt count = animPluginList.Count();
+
+    for ( TInt i = 0; i < count; i++ )
+        {      
+        CImplementationInformation* implInfo = animPluginList[i];
+        if ( aImpUid == implInfo->ImplementationUid() )
+            {          
+            ret = ETrue;
+            break;         
+            }
+        }
+    animPluginList.ResetAndDestroy();          
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::ParseMimeStringL
+// -----------------------------------------------------------------------------
+// 
+TBool CScreenSaverAnimPlugin::ParseMimeStringL( const TDesC& aMIMEDescription,
+                                               const TDesC& aDataType )    
+    {
+    
+    if ( aMIMEDescription.Length() == 0 ||
+         aDataType.Length() == 0 )
+        {
+        return EFalse;
+        }
+
+    _LIT( KPattern1Ptr, ",;|" );
+    _LIT( KPattern2Ptr, ";|" );
+
+    TUint    end( aMIMEDescription.Length() );
+    TUint    i( 0 );
+    TUint    marker( 0 );
+    TUint16  mimeSeparator( '|' );
+    TUint    fieldSeparator( ';' );
+    HBufC*   newMimeTypeEntry = NULL;
+
+    // Parse the aMIMEDescription string to populate the mimeTypes
+    for ( ; i < end; )    // outer for loop
+        {
+        // Search until end of buffer or match one of the delimiters ';' or '|'.
+        // We are looking for the mimeType, ie "text/html", 
+        // "application/pdf", etc.
+        for ( ; ( i < end ) && ( KPattern2Ptr().Locate( ( aMIMEDescription )[i] ) ==
+                             KErrNotFound ); i++ )
+            {
+            // Walking the aMIMEDescription string
+            }
+
+        if ( i > marker )
+            {
+            // Create new mimeType entry, the first entry is mimeType
+            newMimeTypeEntry = HBufC::NewLC( i - marker );          
+            TPtr mimePtr( newMimeTypeEntry->Des() );
+            mimePtr.Copy( aMIMEDescription.Mid( marker, i - marker ) );
+            if ( newMimeTypeEntry->Compare( aDataType ) == 0 )
+                {
+                CleanupStack::PopAndDestroy( newMimeTypeEntry ); //newMimeTypeEntry
+                return ETrue;
+                }
+            CleanupStack::PopAndDestroy( newMimeTypeEntry ); //newMimeTypeEntry
+            }
+
+        // Are we at the end of the supported mime string
+        if ( i == end )
+            {
+            // This break with i=end means we leave outer for loop
+            break;
+            }
+
+        marker = ++i;
+        if ( ( aMIMEDescription )[i - 1] == mimeSeparator )
+            {
+            // Found a mime separator '|', get next supported mime
+            continue;
+            }
+
+        // There can be multiple mimeFileExtentions per mimeType
+        for ( ; ( i < end ); )  // inner for loop
+            {
+            // Search until end of buffer or match one of the delimiters 
+            // ';' or ',' or '|'.
+            for ( ; (i < end) && ( KPattern1Ptr().Locate( ( aMIMEDescription )[i] ) ==
+                                    KErrNotFound ); i++ )
+                {
+                // Walking the aMIMEDescription string
+                }
+
+            // Are we at the end of the supported mime string
+            if ( i == end )
+                {
+                // This break means we leave the inner loop, 
+                // and with i=end means
+                // we leave the outer loop
+                break;
+                }
+
+            marker = ++i;
+            if ( ( aMIMEDescription )[i - 1] == mimeSeparator )
+                {
+                // Found a mime separator '|', get next supported mime
+                break;
+                }
+
+            if ( ( aMIMEDescription )[i - 1] == fieldSeparator )
+                {
+                // Found a field separator ';', get the mimeDescription.
+                // Search until end of buffer or match one of the 
+                // delimiters ';' or '|'.
+                for ( ; (i < end) && 
+                    ( KPattern2Ptr().Locate( ( aMIMEDescription )[i] ) ==
+                                     KErrNotFound ); i++ )
+                    {
+                    // Walking the aMIMEDescription string
+                    }
+          
+
+                // Are we at the end of the supported mime string
+                if ( i == end )
+                    {
+                    // This break means we leave the inner loop, 
+                    // and with i=end means
+                    // we leave the outer loop
+                    break;
+                    }
+
+                marker = ++i;
+                // Make sure we start at the next mime, 
+                // after we found the mimeDescription.
+                // We are handling a mime string with an extra semi-colon(s),
+                // ie "...mimeDescription1;|mimeType2
+                for (; (i < end) && 
+                    ((aMIMEDescription)[i-1] != mimeSeparator); i++)
+                    {
+                    // Walking the aMIMEDescription string
+                    }
+
+                // Leave the inner loop and look for the next mime
+                break;
+                }   // end of if fieldSeparator aka get mimeDescription
+
+            // If we get here, we have another mimeFileExtension. 
+            // Continue on the
+            // inner loop to find additional mimeFileExtensions.
+
+            }   // end of inner for (;i<end;)
+        }   // end of outer for (;i<end;)        
+
+        return EFalse;  
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::DeletePlugin
+// -----------------------------------------------------------------------------
+//      
+void CScreenSaverAnimPlugin::DeletePlugin()    
+    {    
+#ifdef SCREENSAVER_LOG_ENABLED                 
+    _LIT( msg, "delete called " );    
+    PrintDebugMsg( msg );
+#endif  
+    if ( iPluginFuncs )
+        {
+        iPluginFuncs->destroy( iNPPinstance, NULL );  
+        }    
+    SetPluginDeleted();
+    }
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::SetPluginDeleted
+// -----------------------------------------------------------------------------
+//      
+void CScreenSaverAnimPlugin::SetPluginDeleted()    
+    {
+
+    delete iPluginType;
+    iPluginType = NULL;
+
+    delete iPluginFuncs;
+    iPluginFuncs = NULL;
+
+    delete iNPPinstance;
+    iNPPinstance = NULL;
+
+    delete iPluginInterface;
+    iPluginInterface = NULL;    
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::AsFile
+// -----------------------------------------------------------------------------
+//    
+void CScreenSaverAnimPlugin::AsFile()
+    {
+    
+    // Set the File-name to the plugin.
+    // Note that the SVG-T plugin atleast wants setwindow
+    // to be called first
+    iPluginFuncs->asfile( iNPPinstance, NULL, iSettingObject->iFileName );
+    } 
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::UpdateFileName
+// -----------------------------------------------------------------------------
+//      
+TBool CScreenSaverAnimPlugin::UpdateFileName()
+    {
+    if ( !BaflUtils::FileExists( iEikEnv->FsSession(), 
+                                iSettingObject->iFileName ) )
+        {
+        // File is deleted now, Show empty string
+        iSettingObject->iFileName.Copy( KEmptyString );        
+        return ETrue;
+        }
+
+    TBool canbeautomated( EFalse );   
+
+    TInt res = 0;
+    iDrmHelper->SetAutomatedType( 
+                   CDRMHelper::EAutomatedTypeScreenSaver );
+    res = iDrmHelper->CanSetAutomated( iSettingObject->iFileName, 
+                                       canbeautomated );
+
+    if ( res || !canbeautomated )
+        {
+        iSettingObject->iFileName.Copy( KEmptyString );
+        return ETrue;
+        }
+    return EFalse;
+    }
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::PopSettingsDialogL
+// -----------------------------------------------------------------------------
+//      
+void CScreenSaverAnimPlugin::PopSettingsDialogL()
+    {
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( msg, "Pop Settings Dialog" );    
+    PrintDebugMsg( msg );
+#endif    
+
+    // Get the Status Pane Control
+    CEikStatusPane* sp = iEikEnv->AppUiFactory()->StatusPane();
+
+    // Fetch pointer to the default navi pane control
+    CAknNavigationControlContainer* NaviPane = 
+        ( CAknNavigationControlContainer* )sp->ControlL(
+        TUid::Uid( EEikStatusPaneUidNavi ) );
+       
+    NaviPane->PushDefaultL( ETrue );                   
+
+    CScreenSaverAnimSettingDialog* dlg = 
+       CScreenSaverAnimSettingDialog::NewL( this, iSettingObject );
+
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( msg1, "dlg created Call executeld" );    
+    PrintDebugMsg( msg1 );
+#endif    
+
+    dlg->ExecuteLD();
+
+    NaviPane->Pop();
+
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( msg2, "Executed dlg, write to cenrep" );    
+    PrintDebugMsg( msg2 );
+#endif    
+    
+    User::LeaveIfError( SetAnimSettings() );
+    
+    // Check if a file is selected        
+    if ( iSettingObject->iFileName.Length() == 0 )
+        {
+        // Don't Pop an error note
+        // Just leave
+        User::Leave( KErrCancel ) ;           
+        }   
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::HandleRepositoryCallBack
+// -----------------------------------------------------------------------------
+//                
+TInt CScreenSaverAnimPlugin::HandleRepositoryCallBack( TAny* aPtr )    
+    {
+    STATIC_CAST( CScreenSaverAnimPlugin*, aPtr )->HandleSettingsChange( aPtr );
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::HandleRepositoryCallBack
+// -----------------------------------------------------------------------------
+//                
+TInt CScreenSaverAnimPlugin::HandleDrmNotification( TAny* aPtr )    
+    {
+    TRAPD( err, STATIC_CAST( CScreenSaverAnimPlugin*, aPtr )
+                        ->ProcessDrmNotificationL() );   
+    return err;
+    }    
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::HandleSettingsChange
+// -----------------------------------------------------------------------------
+//                
+void CScreenSaverAnimPlugin::HandleSettingsChange( TAny* /*aPtr*/ )    
+    {    
+    if ( iScreensaverRepositoryWatcher )
+        {
+        if ( iScreensaverRepositoryWatcher->ChangedKey() == 
+                             KScreenSaverAnimationTimeOut )
+            {
+            // Update the iSettingObject
+            iAnimPluginSession->Get( KScreenSaverAnimationTimeOut,
+                          iSettingObject->iAnimationTimeout );            
+            } 
+        if ( iScreensaverRepositoryWatcher->ChangedKey() ==                  
+                             KScreenSaverLightsTimeOut )
+            {
+            // Update the iSettingObject 
+            iAnimPluginSession->Get( KScreenSaverLightsTimeOut,  
+                      iSettingObject->iLightsTimeout );
+            } 
+        
+        if ( iScreensaverRepositoryWatcher->ChangedKey() ==                  
+                             KScreenSaverAnimatedFileName )
+            {
+            UnregisterForDrmExpiry();
+            iAnimPluginSession->Get( KScreenSaverAnimatedFileName,
+                           iSettingObject->iFileName );
+            // Find the Plugin for the new file
+            TInt err;
+            TRAP( err, FindPluginL( iSettingObject->iFileName ) );
+            if ( err != KErrNone )
+                {
+                NotifyCenrepChangeCancel();
+                iScreenSaverHost->RevertToDefaultSaver();
+                return;
+                }
+            }
+        }
+    }
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::InitializeCenRepL
+// -----------------------------------------------------------------------------
+//  
+void CScreenSaverAnimPlugin::InitializeCenRepL()
+    {
+    
+    TRAPD( err, iAnimPluginSession = 
+         CRepository::NewL( KCRUidScreenSaverAnimPlugin ) );
+#ifdef SCREENSAVER_LOG_ENABLED         
+    TBuf<KMaxBufLen> buffer;
+    _LIT( msg, "After SS Cenrep Init : %d" );
+    buffer.Format( msg, err );
+    PrintDebugMsg( buffer );      
+#endif    
+    User::LeaveIfError( err );
+
+    TRAPD( err1, iDrmSession = CRepository::NewL( KCRUidDRMHelperServer ) );
+#ifdef SCREENSAVER_LOG_ENABLED             
+    TBuf<KMaxBufLen> buffer1;
+    _LIT( msg1, "After DRM Cenrep Init : %d" );
+    buffer1.Format( msg1, err1 );
+    PrintDebugMsg( buffer1 );     
+#endif    
+    User::LeaveIfError( err1 );       
+
+    }
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::NotifyCenrepChangeL
+// -----------------------------------------------------------------------------
+//  
+void CScreenSaverAnimPlugin::NotifyCenrepChangeL()
+    { 
+    
+    iScreensaverRepositoryWatcher = CScreensaverRepositoryWatcher::NewL(
+            KCRUidScreenSaverAnimPlugin,
+            TCallBack( HandleRepositoryCallBack, this ),
+            iAnimPluginSession );
+
+    iDrmExpiryWatcher = CScreensaverRepositoryWatcher::NewL(
+            KCRUidDRMHelperServer,
+            KDRMHelperServerNotification,
+            CCenRepNotifyHandler::EIntKey,
+            TCallBack( HandleDrmNotification, this ),
+            iDrmSession );                             
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::NotifyCenrepChangeCancel
+// -----------------------------------------------------------------------------
+//   
+void CScreenSaverAnimPlugin::NotifyCenrepChangeCancel()
+    {
+
+    delete iScreensaverRepositoryWatcher;
+    iScreensaverRepositoryWatcher = NULL;
+
+    delete iDrmExpiryWatcher;     
+    iDrmExpiryWatcher = NULL;
+
+    }
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::UnInitializeCenRep
+// -----------------------------------------------------------------------------
+//   
+void CScreenSaverAnimPlugin::UnInitializeCenRep()
+    {       
+    if ( iAnimPluginSession )
+        {
+        delete iAnimPluginSession;
+        iAnimPluginSession = NULL;  
+        } 
+     if ( iDrmSession )
+        {
+        delete iDrmSession;
+        iDrmSession = NULL; 
+        } 
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::CScreenSaverAnimPlugin
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAnimPlugin::CScreenSaverAnimPlugin():
+    iParentControl( NULL ),iPluginError( KErrNone )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::ConstructL
+// -----------------------------------------------------------------------------
+//    
+void CScreenSaverAnimPlugin::ConstructL()
+    {   
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( msg, "ConstructL of ScreenSaverAnimPlugin" );    
+    PrintDebugMsg( msg );
+#endif    
+    
+    // Find which drive this DLL is installed.
+    TFileName fileName;
+
+    // Get the full resource file
+    TParse lParse;
+    
+    // Add the resource dir
+    lParse.Set( KResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL );
+
+    // Get the filename with full path
+    fileName = lParse.FullName();
+
+    iEikEnv = CEikonEnv::Static();
+
+    BaflUtils::NearestLanguageFile( iEikEnv->FsSession(), fileName ); //for
+                                                               // localization
+
+    iDrmHelper = CDRMHelper::NewL( *iEikEnv );
+    
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( msg1, "Before Cenrep Init " );    
+    PrintDebugMsg( msg1 );
+#endif    
+
+    InitializeCenRepL();
+
+#ifdef SCREENSAVER_LOG_ENABLED 
+    _LIT( msg2, "After Cenrep Init " );
+    PrintDebugMsg( msg2 );
+#endif    
+
+    iSettingObject = new( ELeave ) CScreenSaverAnimSettingObject;
+
+    GetAnimSettings();
+
+    iResourceOffset = iEikEnv->AddResourceFileL( fileName );  
+    
+#ifdef SCREENSAVER_LOG_ENABLED             
+    _LIT( msg3, "ConstructL end " );    
+    PrintDebugMsg( msg3 );
+#endif
+
+    // Load localised name of screensaver to be returned for
+    // Themes app in Name() query
+    iScreensaverName = iEikEnv->AllocReadResourceL( R_SANIM_SCREENSAVER_NAME );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::SendEndEvent
+// -----------------------------------------------------------------------------
+//       
+TInt CScreenSaverAnimPlugin::SendEndEvent()
+    { 
+    NPAnimationEvent event;
+    event = NPEndAnimation;
+    if ( iPluginFuncs )
+        {
+        return iPluginFuncs->setvalue( iNPPinstance, 
+                                ( NPNVariable )NPNScreenSaverAnimationEvent,
+                                &event );
+        }
+    return KErrNone;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::CheckFileValidity
+// -----------------------------------------------------------------------------
+//       
+TInt CScreenSaverAnimPlugin::CheckFileValidityL( const TDesC& aFileName )
+    {
+    FindAndStartPluginL( aFileName , ETrue /* Check File Mode */); 
+    NPCheckFile checkFile;
+    checkFile.fileValidityCheckError = KErrNone;
+    checkFile.fileName = HBufC::NewL( aFileName.Length() );
+    checkFile.fileName->Des().Copy( aFileName );
+    
+    if ( iPluginFuncs )
+        {
+        iPluginFuncs->getvalue( iNPPinstance, 
+                                ( NPPVariable )NPPCheckFileIsValid,
+                                &checkFile );
+        } 
+    delete checkFile.fileName; 
+    DeletePlugin();
+    return checkFile.fileValidityCheckError;
+
+    }
+
+/* MPluginAdapter Interface functions, The plugins call 
+ * these back
+ */    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::GetVersion
+// -----------------------------------------------------------------------------
+//
+TUint16 CScreenSaverAnimPlugin::GetVersion()
+    {
+    return 0;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::PluginConstructedL
+// Called when the plug-in has completed its creation.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPlugin::PluginConstructedL( CCoeControl* 
+                                                 /*aPluginControl*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::PluginFinishedL
+// Called when the plug-in has completed its creation.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPlugin::PluginFinishedL()
+    {
+    TInt error;
+    iPluginFuncs->getvalue( iNPPinstance, 
+                            ( NPPVariable )NPPScreenSaverGetLastError,
+                            &error );
+
+#ifdef SCREENSAVER_LOG_ENABLED
+    TBuf<KMaxBufLen> buffer1;
+    _LIT( msg, "Plugin finishedL Error: %d" ); 
+    buffer1.Format( msg, error ); 
+    PrintDebugMsg( buffer1 );
+#endif    
+
+    if ( iScreenSaverHost )
+        {
+        if ( error != KErrNone )
+            {
+            iPluginError = error;
+            // Plugin has encountered an error
+            iScreenSaverHost->RevertToDefaultSaver();       
+            }
+        }
+    }
+
+#ifndef __SERIES60_30__
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::OpenUrlL
+// Called by the plug-in to open a URL in the parent frame.
+// This function is not implemented in Series 60. It is supported 
+// in Series 80 and in the Nokia 7710 smartphone
+// -----------------------------------------------------------------------------
+//
+       
+void CScreenSaverAnimPlugin::OpenUrlL( const TDesC& /* aUrl */ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::OpenUrlInTargetWindowL
+// Called by the plug-in to open a URL in a named window or frame.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPlugin::OpenUrlInTargetWindowL( const TDesC& /* aUrl */, 
+    const TDesC& /* aNewTargetWindowName */ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::HasNavigationHistoryPrevious
+// Specifies whether or not the frame has a previous navigation history item.
+// -----------------------------------------------------------------------------
+//
+TBool CScreenSaverAnimPlugin::HasNavigationHistoryPrevious() const
+    {
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::LoadNavigationHistoryPreviousL
+// Informs the browser to load the next navigation history URL in its parent 
+// frame.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPlugin::LoadNavigationHistoryPreviousL()
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::HasNavigationHistoryNext
+// Returns whether the frame has a next navigation history item. 
+// -----------------------------------------------------------------------------
+//
+TBool CScreenSaverAnimPlugin::HasNavigationHistoryNext() const
+    {
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::LoadNavigationHistoryNextL
+// Informs the browser to load the next navigation history URL in its parent 
+// frame.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPlugin::LoadNavigationHistoryNextL()
+    {
+    }
+
+#endif
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::GetParentControl
+// Returns the window system level control object for the plug-in.
+// -----------------------------------------------------------------------------
+//
+CCoeControl* CScreenSaverAnimPlugin::GetParentControl()
+    {
+    return iParentControl;
+    }
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::GetParentControlObserver
+// Returns the observer for the plug-in control.
+// -----------------------------------------------------------------------------
+//
+MCoeControlObserver* CScreenSaverAnimPlugin::GetParentControlObserver()
+    {
+    return this;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::GetParentControlObserver
+// Sets the plug-in notifier allowing the plug-in to control 
+// portions of the browser.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPlugin::SetPluginNotifier( MPluginNotifier* /*aNotifier*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::SetContentInteractive
+// Tells the plugin adapter if plugin content can accept user interaction.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPlugin::SetContentInteractive( TBool /*aInteractive*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::HandleControlEventL
+// Handles an event from an observed control.This function is called 
+// when a control for which this control is the observer calls 
+// CCoeControl::ReportEventL(). It should be implemented by the observer 
+// control, and should handle all events sent by controls it observes.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPlugin::HandleControlEventL( CCoeControl* /*aControl*/,
+    TCoeEvent /*aEventType*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPlugin::CheckContentIdL
+// -----------------------------------------------------------------------------
+//    
+TBool CScreenSaverAnimPlugin::CheckContentIdL( const TDesC& aFileName, 
+                                               TDesC8& aContentUri )
+    {
+
+    TBool matched = EFalse;
+    HBufC* contentURI = NULL;
+    HBufC8* contentURI8 = NULL;
+
+    RFile fileHandle;
+    
+    TInt error = fileHandle.Open( iEikEnv->FsSession(), 
+                                aFileName, 
+                                EFileRead | EFileShareReadersOnly );   
+    if ( error != KErrNone )
+        {
+        return matched;
+        }
+
+    CleanupClosePushL( fileHandle ); 
+    CData* content = CData::NewL( fileHandle, KDefaultContentObject, EPeek );
+    CleanupStack::PopAndDestroy( &fileHandle );
+
+    CleanupStack::PushL( content );
+
+    contentURI = HBufC::NewLC( KUrlMaxLen );
+
+    // create attribute set
+    RStringAttributeSet stringAttributeSet;
+    CleanupClosePushL( stringAttributeSet );
+    // add the attributes we are interested in
+    stringAttributeSet.AddL( EContentID );
+
+    User::LeaveIfError( content->GetStringAttributeSet( stringAttributeSet ) );
+
+    // pass on values of string attributes
+    TPtr ptr = contentURI->Des();
+    error = stringAttributeSet.GetValue( EContentID, ptr );
+    if ( error == KErrNone )
+        {
+        contentURI8 = HBufC8::NewLC( contentURI->Length() );
+        contentURI8->Des().Copy( contentURI->Des() );
+        if ( contentURI8->Compare( aContentUri ) == 0 )
+            {
+            matched = ETrue;
+            }
+        CleanupStack::PopAndDestroy( contentURI8 ); 
+        }
+
+    CleanupStack::PopAndDestroy( 2, contentURI ); // stringAttributeSet.Close()
+    CleanupStack::PopAndDestroy( content );
+
+    return matched;
+    }
+
+// End Of file.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginContainer.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,614 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*       Provides  ScreenSaverAnimPlugin edit list view container methods.
+*
+*
+*/
+
+
+
+// INCLUDE FILES
+
+#include <aknlists.h>
+#include <akntitle.h>
+#include <aknslider.h> 
+#include <aknsettingpage.h> 
+#include <aknslidersettingpage.h> 
+#include <CFLDFileListContainer.h>
+#include <MGFetch.h>
+#include <DRMHelper.h>
+#include <screensaveranimplugin.rsg>
+#include <barsread.h>
+#include <centralrepository.h>
+
+#include "ScreenSaverAnimPlugin.h"
+#include "ScreenSaverAnimPluginConst.h"
+#include "ScreenSaverAnimPluginHelper.h"
+#include "ScreenSaverAnimPluginContainer.h"
+#include "ScreenSaverAnimPlugin.hrh"
+
+// ========================= MEMBER FUNCTIONS ================================
+ CScreenSaverAnimPluginContainer* CScreenSaverAnimPluginContainer::NewLC(
+                               CScreenSaverAnimPlugin* aCaller,
+                               const CCoeControl* aParent, 
+                               CScreenSaverAnimSettingObject* aSettingObject )
+    {
+    CScreenSaverAnimPluginContainer* self = 
+      new ( ELeave )  CScreenSaverAnimPluginContainer( aCaller, 
+                                                       aSettingObject );
+    CleanupStack::PushL( self );    
+    TRect rect;
+    self->GetNormalScreenLayoutRect( rect );
+    self->ConstructL(aParent, rect );
+    return self;
+
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::NewL 
+// ---------------------------------------------------------------------------
+//
+    
+CScreenSaverAnimPluginContainer* CScreenSaverAnimPluginContainer::NewL(
+                               CScreenSaverAnimPlugin* aCaller,
+                               const CCoeControl* aParent, 
+                               CScreenSaverAnimSettingObject* aSettingObject )
+    {
+    CScreenSaverAnimPluginContainer* self = 
+       CScreenSaverAnimPluginContainer::NewLC( aCaller,
+                                               aParent,
+                                               aSettingObject );
+    CleanupStack::Pop( self );
+    return self;  
+
+    }
+
+// ---------------------------------------------------------------------------
+// Constructor
+// 
+// ---------------------------------------------------------------------------
+//
+CScreenSaverAnimPluginContainer::CScreenSaverAnimPluginContainer(
+                               CScreenSaverAnimPlugin* aCaller, 
+                               CScreenSaverAnimSettingObject* aSettingObject )
+    :
+    iSettingObject( aSettingObject ),
+    iCaller( aCaller )    
+    {
+    }
+
+ 
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::ConstructL(const TRect& aRect)
+// EPOC two phased constructor
+// 
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::ConstructL( const CCoeControl* aParent,
+                                                  const TRect& aRect )
+    {
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( msg, "In ConstructL of container" );
+    PrintDebugMsg( msg );
+#endif    
+
+    CreateWindowL( aParent ); 
+
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( msg1, "Window Created" );
+    PrintDebugMsg( msg1 );
+#endif
+
+    BaseConstructL( aRect, NULL, R_SANIM_SETTING_LBX_ITEMS );
+
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( msg2, "Base ConstructL called" );
+    PrintDebugMsg( msg2 );
+#endif
+
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::BaseConstructL
+
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::BaseConstructL( 
+    const TRect& aRect, TInt /* aTitleId */, TInt aResLbxId )
+    {
+    // Feature support should only be read once. It should not change run-time.
+    GetFeatureSupportL( iFeaturesSupport );
+    CEikStatusPane* sp = static_cast< CAknAppUi* >( 
+        CEikonEnv::Static()->EikAppUi() )->StatusPane();
+    CAknTitlePane* title = static_cast<CAknTitlePane*>( 
+        sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle) ) );
+
+    iListBox = new( ELeave ) CAknSettingStyleListBox; 
+
+    ConstructListBoxL( aResLbxId );
+    iListBox->SetContainerWindowL( *this );
+    iListBox->SetRect( aRect );
+
+    iListBox->CreateScrollBarFrameL( ETrue );
+    iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( 
+        CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
+
+    SetRect( aRect );
+    ActivateL();
+
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::~CScreenSaverAnimPluginContainer()
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CScreenSaverAnimPluginContainer::~CScreenSaverAnimPluginContainer()
+    {
+    delete iItems;
+    delete iListBox;
+    // delete iItemArray;
+    }
+
+// ---------------------------------------------------------------------------
+// Sets feature support - see screensaveranimpluginconst.h for feature list.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::GetFeatureSupportL( 
+    TBitFlags& aFeatureBitFlags ) const
+    {
+    CRepository* featureRep = CRepository::NewLC( KCRUidThemesVariation );
+    TInt value = KErrNone;
+    featureRep->Get( KThemesLocalVariation, value );
+
+    aFeatureBitFlags.ClearAll();
+
+    //map value to feature flags
+    if ( value & KScreenSaverRemoveAnimPluginTimeout )
+        {
+        aFeatureBitFlags.Set( EAnimPluginBacklightRemoved );
+        }
+
+    CleanupStack::PopAndDestroy( featureRep );
+    }
+
+// ---------------------------------------------------------------------------
+// Checks if feature is supported.
+// ---------------------------------------------------------------------------
+//
+TBool CScreenSaverAnimPluginContainer::IsFeatureSupported( TInt aFeatureID )
+    {
+    if ( ( aFeatureID >= 0 ) && ( aFeatureID < KAnimPluginMaxFeatureID ) )
+        {
+        return iFeaturesSupport.IsSet( aFeatureID );
+        }
+    else
+        {
+        // invalid feature value.
+        return EFalse;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::HandleListBoxEventL
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::HandleListBoxEventL( 
+    CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
+    {
+    switch ( aEventType )
+        {
+        case EEventEnterKeyPressed:
+        case EEventItemDoubleClicked:
+        case EEventItemSingleClicked:
+            HandleListBoxSelectionL();
+            break;
+        default:
+           break;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::HandleListBoxSelectionL()  
+// ---------------------------------------------------------------------------
+//   
+void CScreenSaverAnimPluginContainer::HandleListBoxSelectionL()
+    {
+     TInt index = iListBox->CurrentItemIndex();
+     
+     switch ( index )
+        {
+        case ESanimAnimFileNameId:
+            if ( !iInShowFileItem )
+                {                               
+                iInShowFileItem = ETrue;
+                TRAPD( err,ShowFileNameItemL() );
+                iInShowFileItem = EFalse;
+                User::LeaveIfError( err );
+                }
+            break;
+        case ESanimAnimTimeoutId:
+            ShowAnimTimeOutItemL();
+            break;
+        case ESanimLightsTimeoutId:
+            ShowLightsTimeOutItemL();
+            break;
+        default:
+            break;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::ConstructListBoxL( TInt aResLbxId )
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::ConstructListBoxL( TInt aResLbxId )
+    {
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( msg, "In Construct ListBoxL" );
+    PrintDebugMsg( msg );
+#endif
+  
+    iListBox->ConstructL( this, EAknListBoxSelectionList );
+    iItems = iCoeEnv->ReadDesC16ArrayResourceL( aResLbxId );
+    iItemArray = static_cast< CDesCArray* >( iListBox->Model()->ItemTextArray() );
+    iListBox->SetListBoxObserver( this );
+    CreateListBoxItemsL();
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::CreateListBoxItemsL()
+// 
+//  
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::CreateListBoxItemsL()
+    {
+#ifdef SCREENSAVER_LOG_ENABLED 
+    _LIT( msg, "Make FileName" );
+    PrintDebugMsg( msg );
+#endif
+
+    MakeFileNameItem();
+    iItemArray->InsertL( ESanimAnimFileNameId, iItem );
+    
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( msg1, "Make Duration" );
+    PrintDebugMsg( msg1 );
+#endif
+
+    MakeAnimTimeOutItemL();
+    iItemArray->InsertL( ESanimAnimTimeoutId, iItem );
+
+    if ( !IsFeatureSupported( EAnimPluginBacklightRemoved ) )
+        {
+        #ifdef SCREENSAVER_LOG_ENABLED
+        _LIT( msg2, "Make Backlight" );
+        PrintDebugMsg( msg2 );
+        #endif
+
+        MakeLightsTimeOutItemL();
+        iItemArray->InsertL( ESanimLightsTimeoutId, iItem );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::UpdateListBoxL( TInt aItemId )
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::UpdateListBoxL( TInt aItemId )
+    {   
+    switch ( aItemId )
+        {
+        case ESanimAnimFileNameId:
+            MakeFileNameItem();
+            break;
+        case ESanimAnimTimeoutId:
+            MakeAnimTimeOutItemL();
+            break;
+        case ESanimLightsTimeoutId:
+            MakeLightsTimeOutItemL();
+            break;
+        default:
+            break;
+        }
+
+    iItemArray->Delete( aItemId );
+    iItemArray->InsertL( aItemId, iItem );
+    iListBox->HandleItemAdditionL();
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::HandleResourceChange( TInt aType )
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::HandleResourceChange( TInt aType )
+    {
+    CCoeControl::HandleResourceChange( aType );
+    if( aType == KEikDynamicLayoutVariantSwitch )
+        {
+        TRect mainPaneRect;
+        GetNormalScreenLayoutRect( mainPaneRect );
+        SetRect(mainPaneRect);
+
+        DrawNow();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::MakeFileNameItem() 
+//  
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::MakeFileNameItem()
+    {
+    iItem = ( *iItems )[ESanimAnimFileNameId];    
+    TParsePtrC fileParser( iSettingObject->iFileName );
+    TPtrC ptr( fileParser.NameAndExt() );
+
+    // Filename may be quite long - copy only the amount there's space left
+    iItem += ptr.Left( iItem.MaxLength() - iItem.Length() - 1 );
+    }
+    
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::MakeAnimTimeOutItemL() 
+//  
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::MakeAnimTimeOutItemL()
+    {
+    iItem = ( *iItems )[ESanimAnimTimeoutId]; 
+    
+    HBufC* animText = CAknSlider::CreateValueTextInHBufCL( 
+                  iSettingObject->iAnimationTimeout, 
+                  R_ANIM_TIMEOUT_SLIDER );
+
+    // for A&H number conversion
+    TPtr bufPtr = animText->Des();
+    if( AknTextUtils::DigitModeQuery( AknTextUtils::EDigitModeShownToUser ) )
+        {
+        AknTextUtils::LanguageSpecificNumberConversion( bufPtr );
+        }
+    iItem  += bufPtr;
+    delete animText;
+
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::MakeLightTimeOutItemL() 
+//  
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::MakeLightsTimeOutItemL()
+    {
+    iItem = ( *iItems )[ESanimLightsTimeoutId];
+
+    HBufC* animText = NULL;
+
+    if ( iSettingObject->iLightsTimeout == 0 )
+        {
+        animText = iCoeEnv->AllocReadResourceL( R_SANIM_SLIDER_OFF );
+        }
+    else
+        {
+        animText = CAknSlider::CreateValueTextInHBufCL( 
+                           iSettingObject->iLightsTimeout, 
+                           R_LIGHT_TIMEOUT_SLIDER );
+        }
+
+    // for A&H number conversion
+    TPtr bufPtr = animText->Des();
+    if( AknTextUtils::DigitModeQuery( AknTextUtils::EDigitModeShownToUser ) )
+        {
+        AknTextUtils::LanguageSpecificNumberConversion( bufPtr );
+        }
+    iItem  += bufPtr;
+    delete animText;
+
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::ShowFileNameItemL() 
+//  
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::ShowFileNameItemL()
+    {    
+        
+    CDesCArrayFlat* selectedFile = new( ELeave )CDesCArrayFlat( 1 );
+    CleanupStack::PushL( selectedFile );
+
+    TResourceReader reader;
+    iCoeEnv->CreateResourceReaderLC( reader, 
+                             R_MIMETYPE_SPECIFIC_PLUGIN_ARRAY );
+    TInt countResource = reader.ReadInt16();
+
+    CDesCArrayFlat* mimetypesList = new( ELeave ) 
+                                    CDesCArrayFlat( countResource );
+
+    CleanupStack::PushL( mimetypesList );
+
+    for ( TInt i = 0; i < countResource; i++ )
+        {
+        HBufC* mimeType = reader.ReadHBufCL();
+
+        // Check plugin availability before appending mimetype
+        TUid uid = iCaller->FindAnimPluginL( *mimeType );
+        if ( uid != KNullUid )
+            {
+            mimetypesList->AppendL( *mimeType );
+            }
+        delete mimeType;
+        reader.ReadInt32();
+        }
+
+    CScreenSaverAnimPluginVerifier* verifier = 
+                       CScreenSaverAnimPluginVerifier::NewL( iCaller );
+    CleanupStack::PushL( verifier );
+    TBool fileSelected = MGFetch::RunL( *selectedFile,
+                                  EAnyMediaFile,
+                                  EFalse,
+                                  KNullDesC,
+                                  KNullDesC,
+                                  mimetypesList,
+                                  verifier );
+
+    CleanupStack::PopAndDestroy( verifier ); 
+    CleanupStack::PopAndDestroy( mimetypesList );
+    CleanupStack::PopAndDestroy(); // reader
+
+    if ( fileSelected )
+        {
+        TPtrC fileNamePtr = selectedFile->MdcaPoint( 0 );
+        TFileName tempFileName;
+        tempFileName.Copy( fileNamePtr );
+        iSettingObject->iFileName.Copy( tempFileName ); 
+        // Write the new setting into the central repository
+        iCaller->SetAnimSettings();
+        UpdateListBoxL( ESanimAnimFileNameId );
+        }   
+
+    CleanupStack::PopAndDestroy( selectedFile );
+
+    }
+
+// ----------------------------------------------------
+// CScreenSaverAnimPluginContainer::ShowAnimTimeOutItemL() 
+// Display the animation time-out setting page.
+// ----------------------------------------------------
+//    
+void CScreenSaverAnimPluginContainer::ShowAnimTimeOutItemL()
+    {
+    
+    CAknSettingPage* dlg = new( ELeave ) CAknSliderSettingPage(
+                   R_ANIM_TIMEOUT_SETTING_PAGE, 
+                   iSettingObject->iAnimationTimeout );
+    if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
+        {
+        // Write the new setting into the central repository
+        iCaller->SetAnimSettings();
+        UpdateListBoxL( ESanimAnimTimeoutId );
+        }
+    }
+
+// ----------------------------------------------------
+// CScreenSaverAnimPluginContainer::ShowLightsTimeOutItemL() 
+// Display the animation time-out setting page.
+// ----------------------------------------------------
+//    
+void CScreenSaverAnimPluginContainer::ShowLightsTimeOutItemL()
+    {
+     CAknSettingPage* dlg = 
+        new( ELeave ) CAknSliderSettingPage( R_LIGHT_TIMEOUT_SETTING_PAGE, 
+                                          iSettingObject->iLightsTimeout );
+    if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
+        {    
+        // Write the new setting into the central repository
+        iCaller->SetAnimSettings();
+        UpdateListBoxL( ESanimLightsTimeoutId );
+        }
+    }
+
+void CScreenSaverAnimPluginContainer::SizeChanged()
+    {
+    if (iListBox)
+        {
+        // Get size from main pane, place from this rect
+        TRect mainPaneRect;
+        AknLayoutUtils::LayoutMetricsRect( 
+            AknLayoutUtils::EMainPane, 
+            mainPaneRect );
+
+        iListBox->SetExtent( Rect().iTl, mainPaneRect.Size() );
+        }
+    }
+
+TInt CScreenSaverAnimPluginContainer::CountComponentControls() const
+    {
+    if ( iListBox )
+        {
+        return 1;
+        }
+    else
+        {
+        return 0;
+        }
+    }
+
+CCoeControl* CScreenSaverAnimPluginContainer::
+                   ComponentControl( TInt /*aIndex*/ ) const
+    {
+    if ( iListBox )
+        {
+        return iListBox;
+        }
+    else
+        {
+        return NULL;
+        } 
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::OfferKeyEventL
+// Called when a key is pressed.
+//  
+// ---------------------------------------------------------------------------
+TKeyResponse CScreenSaverAnimPluginContainer::OfferKeyEventL(
+    const TKeyEvent& aKeyEvent, TEventCode aType )
+    {
+    switch (aKeyEvent.iCode)
+        {
+        case EKeyLeftArrow:
+        case EKeyRightArrow:
+            // Listbox takes all event even if it doesn't use them
+            return EKeyWasNotConsumed;
+        default:
+            break;
+        }
+    return iListBox->OfferKeyEventL( aKeyEvent, aType );
+    }
+
+void CScreenSaverAnimPluginContainer::SetContainerWindowL( const CCoeControl& 
+                                   /* aContainer*/ )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimPluginContainer::FocusChanged
+// ---------------------------------------------------------------------------
+void CScreenSaverAnimPluginContainer::FocusChanged( TDrawNow aDrawNow )
+    {
+    // Pass focus changed event to listbox.
+    if ( iListBox )
+        {
+        iListBox->SetFocus( IsFocused(), aDrawNow );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CSvgRenderFrameControl::GetNormalScreenLayoutRect
+// Gets the normal screen layout rectangle for control from LAF.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginContainer::GetNormalScreenLayoutRect(
+    TRect& aRect )  const // Rectangle specifying extent of control
+    {
+    AknLayoutUtils::LayoutMetricsRect(
+            AknLayoutUtils::EMainPane, 
+            aRect );
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginHelper.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,361 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   This file implements all helper classes 
+*                for ScreenSaverAnimPlugin
+*
+*/
+
+
+
+// INCLUDE FILES
+
+#include    <DRMHelper.h>
+#include    <coemain.h>
+#include    <apgcli.h>
+#include    <barsread.h>
+#include    <aknnotewrappers.h>
+#include    <centralrepository.h>
+
+#include    <screensaveranimplugin.rsg>
+
+#include    "ScreenSaverAnimPluginHelper.h"
+#include    "ScreenSaverAnimPlugin.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPluginVerifier::CScreenSaverAnimPluginVerifier
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAnimPluginVerifier::CScreenSaverAnimPluginVerifier(
+             CScreenSaverAnimPlugin* aFileVerify ) :
+             iFileVerify( aFileVerify )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPluginVerifier::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginVerifier::ConstructL()
+    {
+    iCoeEnv = CCoeEnv::Static();
+    iDRMHelper = CDRMHelper::NewL( *iCoeEnv );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPluginVerifier::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAnimPluginVerifier* CScreenSaverAnimPluginVerifier::NewL(
+                                CScreenSaverAnimPlugin* aFileVerify )
+    {
+    CScreenSaverAnimPluginVerifier* self = new( ELeave ) 
+                            CScreenSaverAnimPluginVerifier( aFileVerify );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+    
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPluginVerifier::~CScreenSaverAnimPluginVerifier
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAnimPluginVerifier::~CScreenSaverAnimPluginVerifier()
+    {
+    delete iDRMHelper;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPluginVerifier::IsFileValidL
+// Empty implementation.
+// -----------------------------------------------------------------------------
+//
+TBool CScreenSaverAnimPluginVerifier::VerifySelectionL( const MDesCArray* 
+                                                        aSelectedFiles )
+    {    
+
+    TBool canbeautomated( EFalse );
+
+    if( aSelectedFiles->MdcaCount()<1 )
+        {
+        // Download item
+        return ETrue;
+        }
+
+    // 1. Check whether the drm rights are ok
+    TInt res = 0;
+    iDRMHelper->SetAutomatedType( 
+                   CDRMHelper::EAutomatedTypeScreenSaver );
+    res = iDRMHelper->CanSetAutomated( aSelectedFiles->MdcaPoint( 0 ), canbeautomated );
+    if ( KErrUnderflow == res )
+        {
+        TInt resourceId = R_SANIM_ERROR_WRONG_FORMAT;
+        // Show information note
+        ShowErrorNoteL( resourceId );    
+        return EFalse;        
+        }
+    if ( res )
+        {
+        iDRMHelper->HandleErrorL( res, aSelectedFiles->MdcaPoint( 0 ) );        
+        return canbeautomated;
+        }   
+    else if ( !canbeautomated )
+        {
+        ShowErrorNoteL( R_DRM_PREV_RIGHTS_SET );
+        return canbeautomated;
+        }
+
+    // 2. Check whether the file is supported
+    RApaLsSession ls;
+    CleanupClosePushL( ls );
+    TUid dummyUid( KNullUid );
+    TDataType dataType;
+    User::LeaveIfError( ls.Connect() );
+    // find the mimetype
+    User::LeaveIfError( ls.AppForDocument( aSelectedFiles->MdcaPoint( 0 ), 
+                dummyUid, dataType ) );               
+                    
+    CleanupStack::PopAndDestroy( &ls );
+
+    TResourceReader reader;
+    TBool valid( EFalse );
+    iCoeEnv->CreateResourceReaderLC( reader, 
+                             R_MIMETYPE_SPECIFIC_PLUGIN_ARRAY );
+    TInt countResource = reader.ReadInt16();
+
+    for ( TInt i = 0; i < countResource; i++ )
+        {
+        HBufC* newMimeTypeEntry = reader.ReadHBufCL();        
+        TPtr mimePtr( newMimeTypeEntry->Des() );
+        reader.ReadInt32();
+        if ( newMimeTypeEntry->Compare( dataType.Des() ) == 0 )
+            {            
+            valid =  ETrue;
+            }
+        delete newMimeTypeEntry;        
+        }
+    CleanupStack::PopAndDestroy(); // reader  
+
+    if ( !valid )
+        {
+        // Pop a not supported error message             
+        ShowErrorNoteL( R_SANIM_NOT_SUPPORTED );    
+        return EFalse;
+        }
+
+    //3. Check file for Validity
+    
+    //Display the confirmation query when setting 
+    //a DRM protected image as screensaver in General settings.
+    TInt isCancel;
+    isCancel = iDRMHelper->ShowAutomatedNote( aSelectedFiles->MdcaPoint( 0 ) ); 
+    if ( KErrCancel == isCancel )
+        {
+        return EFalse;
+        }
+
+    
+    TInt validity = KErrNone;
+    TRAPD( err, 
+       validity = iFileVerify->CheckFileValidityL( aSelectedFiles->MdcaPoint( 0 ) ));     
+
+    if ( err )
+        {
+        // Dll may not be present
+        ShowErrorNoteL( R_SANIM_NOT_SUPPORTED );
+        return EFalse;
+        }           
+
+    if ( validity == KErrNoMemory )
+        {
+        // Pop up a Corrupted File message
+        CEikonEnv::Static()->HandleError( validity );
+        return EFalse;        
+        }   
+    else  if ( validity != KErrNone )
+        {
+        TInt resourceId = R_SANIM_ERROR_WRONG_FORMAT;
+        // Show information note
+        ShowErrorNoteL( resourceId );    
+        return EFalse;        
+        }
+
+    return valid;
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimPluginVerifier::ShowErrorNoteL
+// Displays the error note
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimPluginVerifier::ShowErrorNoteL( TInt  aResourceId  ) const
+    {
+    HBufC* errorText = 
+        iCoeEnv->AllocReadResourceLC( aResourceId );
+    CAknInformationNote* note = new( ELeave ) CAknInformationNote( EFalse );
+    note->ExecuteLD( *errorText );
+    CleanupStack::PopAndDestroy( errorText ); // errorText
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
+    const TUid aUid,
+    const TUint32 aKey,
+    CCenRepNotifyHandler::TCenRepKeyType aKeyType,
+    TCallBack aCallBack,
+    CRepository* aRepository )
+    {
+    CScreensaverRepositoryWatcher* self = new( ELeave ) 
+          CScreensaverRepositoryWatcher( aUid, aKey, aCallBack, aRepository );
+
+    CleanupStack::PushL( self );
+    self->ConstructL( aKeyType );
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
+    const TUid aUid,
+    TCallBack aCallBack,
+    CRepository* aRepository )
+    {
+    CScreensaverRepositoryWatcher* self = new( ELeave ) CScreensaverRepositoryWatcher(
+        aUid, NCentralRepositoryConstants::KInvalidNotificationId, aCallBack, aRepository );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::~CScreensaverRepositoryWatcher
+// -----------------------------------------------------------------------------
+//
+CScreensaverRepositoryWatcher::~CScreensaverRepositoryWatcher()
+    {
+    if ( iNotifyHandler )
+        {
+        iNotifyHandler->StopListening();
+        delete iNotifyHandler;      
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher
+// -----------------------------------------------------------------------------
+//
+CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher(
+    const TUid aUid,
+    const TUint32 aKey,
+    TCallBack aCallBack,
+    CRepository* aRepository )
+    :
+    iUid( aUid ), iKey( aKey ), iCallBack( aCallBack ), iRepository( aRepository )
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType)
+    {
+    iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository, aKeyType, iKey );
+    iNotifyHandler->StartListeningL();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::ConstructL()
+    {
+    iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository );
+    iNotifyHandler->StartListeningL();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::ChangedKey
+// -----------------------------------------------------------------------------
+//
+TUint32 CScreensaverRepositoryWatcher::ChangedKey()
+    {
+    return iChangedKey;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::HandleNotifyInt
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::HandleNotifyInt( 
+                                    TUint32 aKey, TInt /*aNewValue*/ )
+    {
+    iChangedKey = aKey;
+    iCallBack.CallBack();
+    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::HandleNotifyString
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::HandleNotifyString( TUint32 aKey, 
+                                                     const TDesC16& /*aNewValue*/ )
+    {  
+    iChangedKey = aKey;
+    iCallBack.CallBack();
+    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::HandleNotifyGeneric
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::HandleNotifyGeneric(TUint32 aKey)
+    {
+    iChangedKey = aKey;
+    iCallBack.CallBack();
+    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::HandleNotifyError
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/)
+    {
+    }     
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginProxy.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     ECOM Implementation Array.
+*
+*/
+
+
+
+
+
+// INCLUDE FILES
+#include    <e32std.h>
+#include    <ecom/implementationproxy.h>
+#include    <coecntrl.h>
+#include    "ScreenSaverAnimPluginImplementationUid.hrh"
+#include    "ScreenSaverAnimPlugin.h"
+
+// CONSTANTS
+const TImplementationProxy ImplementationTable[] =
+    {
+    IMPLEMENTATION_PROXY_ENTRY( KScreenSaverAnimPluginImplementationUID, 
+                    CScreenSaverAnimPlugin::NewL )
+    };
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// ImplementationProxy
+// ECOM implementation table entry.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+    aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
+
+    return ImplementationTable;
+    }
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimSettingDialog.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,470 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     This file implements the Setting Dialog which
+*                is used to display Settings container
+*
+*/
+
+
+
+
+
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <uikon/eikctrlstatus.h>
+#endif
+#include <e32std.h>
+#include <AknDialog.h>
+#include <coeaui.h>
+#include <eikenv.h>
+#include <bautils.h>
+#include <eikdialg.h>
+#include <eikmenup.h>
+#include <eikspane.h>
+
+#ifdef __SERIES60_HELP
+#include <hlplch.h>
+#endif // __SERIES60_HELP
+
+#ifdef __SERIES60_HELP
+// Help Context UID = DLL UID3
+const TUid KScreenSaverAnimPluginHelpContextUid = { 0x10207447 };
+#endif // __SERIES60_HELP
+
+#include <coeaui.h>
+#include <AknWaitNoteWrapper.h>
+#include <aknnotewrappers.h>
+#include <akntitle.h>
+#include <data_caging_path_literals.hrh>
+#include <StringLoader.h>
+#include <screensaveranimplugin.rsg>
+//-----------
+// USER INCLUDES
+#include "ScreenSaverAnimPlugin.h"
+#include "ScreenSaverAnimPlugin.hrh"
+#include "ScreenSaverAnimSettingDialog.h"
+#include "ScreenSaverAnimPluginContainer.h"
+#include "screensaver.hlp.hrh"
+
+// Middle softkey control ID
+const TInt KSanimMSKControlID = 3;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::CScreenSaverAnimSettingDialog
+// Default Constructor. Initialises Dialog State Variables.
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAnimSettingDialog::CScreenSaverAnimSettingDialog( 
+                               CScreenSaverAnimPlugin* aCaller, 
+                               CScreenSaverAnimSettingObject* aSettingObject )
+    :iSettingObject( aSettingObject ),
+    iCaller( aCaller )
+    {
+    iCustControl = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::ConstructL
+// Second Phase Constructor for CScreenSaverAnimSettingDialog. Opens resource file, reads the
+// dialog menu resource and calls CAknDialog::ConstructL with the resource as
+// param.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::ConstructL()
+    {  
+    CAknDialog::ConstructL( R_SANIM_DIALOG_MENUBAR );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::NewL
+// Factory function for creating CScreenSaverAnimSettingDialog objects.
+// Returns: CScreenSaverAnimSettingDialog* ; Pointer to the created object.
+//          Leaves if error occurs during creation.
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAnimSettingDialog* CScreenSaverAnimSettingDialog::NewL( 
+                                 CScreenSaverAnimPlugin* aCaller,
+                                 CScreenSaverAnimSettingObject* aSettingObject )
+    {
+    CScreenSaverAnimSettingDialog* self = CScreenSaverAnimSettingDialog::NewLC(
+                                             aCaller,
+                                             aSettingObject );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::NewLC
+// Factory function for creating CScreenSaverAnimSettingDialog objects.
+// It also pushes the created dialog object onto the cleanup stack.
+// Returns: CScreenSaverAnimSettingDialog* ; Pointer to the created object.
+//          Leaves if error occurs during creation.
+// -----------------------------------------------------------------------------
+//
+CScreenSaverAnimSettingDialog* CScreenSaverAnimSettingDialog::NewLC(
+                                CScreenSaverAnimPlugin* aCaller,
+                                CScreenSaverAnimSettingObject* aSettingObject )
+    {
+    CScreenSaverAnimSettingDialog* self = new ( ELeave ) 
+                     CScreenSaverAnimSettingDialog( aCaller, aSettingObject );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+// Destructor
+CScreenSaverAnimSettingDialog::~CScreenSaverAnimSettingDialog()
+    {
+    if (this->IsFocused())
+        {
+        CEikDialog::ButtonGroupContainer().RemoveCommandObserver(
+            KSanimMSKControlID );
+        }
+
+    // Custom Control will be automatically destroyed by dialog framework
+    iCustControl = NULL;
+
+    // Set the text in status pane to the stored one            
+    if (iAppTitleText)
+        {
+        // Get the Status Pane Control
+        CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
+        // Get the title pane 
+        CAknTitlePane* tp = NULL;
+        TRAPD( errGetControl, 
+            tp = static_cast< CAknTitlePane* >( sp->ControlL( 
+            TUid::Uid( EEikStatusPaneUidTitle ) ) ) );
+        if ( errGetControl == KErrNone && tp )
+            {
+            //set application name in the title pane
+            TRAPD( errSetText, 
+                tp->SetTextL( *iAppTitleText ) );
+            if ( errSetText != KErrNone )
+                {
+                // No error handling here
+                }
+            }
+
+        delete iAppTitleText;
+        iAppTitleText = NULL;
+        }
+
+        delete iTitlePaneString;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::ExecuteLD
+// Reimplements CAknDialog::ExecuteLD. It initialises the member variables of
+// the class and calls CAknDialog::ExecuteLD() with the dialog resource.
+// -----------------------------------------------------------------------------
+//
+TInt CScreenSaverAnimSettingDialog::ExecuteLD()
+    {
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( msg, "In Executeld dlg" );
+    PrintDebugMsg( msg );
+#endif
+
+    // Save this pointer since there are leaving functions in the flow
+    CleanupStack::PushL( this );    
+
+    // Get the Status Pane Control
+    CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
+
+    // Get the Title Pane Control
+    CAknTitlePane* tp = static_cast< CAknTitlePane* >( sp->ControlL(
+            TUid::Uid( EEikStatusPaneUidTitle ) ) );
+
+    // Store the Application's title text
+    iAppTitleText = HBufC::NewL( tp->Text()->Length() );
+    *iAppTitleText = *tp->Text();
+
+    // Display Settings in the title pane of application
+    iTitlePaneString = NULL;
+    iTitlePaneString = StringLoader::LoadL( R_SANIM_TITLE_SETTINGS,
+                                          iEikonEnv );
+    // SetTextL also ensures that if the length exceeds the layout space
+    // available the text is truncated from the end.
+    tp->SetTextL( iTitlePaneString->Des() );
+
+    // ExecuteLD will delete this, so we have to Pop it...
+    CleanupStack::Pop( this ); // this
+
+    return CAknDialog::ExecuteLD( R_SANIM_SETTING_DIALOG );
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::DynInitMenuPaneL
+// Reimplements CAknDialog::DynInitMenuPaneL inorder to support dynamic hiding
+// of menu items based on current state of the viewer.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::DynInitMenuPaneL(
+    TInt aResourceId,           // Resource Id for which this func is called
+    CEikMenuPane* aMenuPane )   // Menupane object pointer for manipulation
+    {
+    if ( ( aResourceId == R_SANIM_DIALOG_MENU ) && ( aMenuPane ) )
+        {
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// Layouts dialog before showing it.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::PreLayoutDynInitL()
+    {
+    // Set middle softkey as Change. 
+    SetMiddleSoftKeyLabelL( R_SANIM_MSK_CHANGE, ESanimDlgChangeCommand );
+
+    CAknDialog::PreLayoutDynInitL();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::OkToExitL
+// Reimplements CAknDialog::OkToExitL inorder to display custom menu and
+// trap the back softkey to provide restore view functionality/exit.
+// -----------------------------------------------------------------------------
+//
+TBool CScreenSaverAnimSettingDialog::OkToExitL( TInt aButtonId ) // ButtonId of button pressed
+    {
+    if ( aButtonId == EAknSoftkeyOptions )
+        {
+        DisplayMenuL();
+        return EFalse;
+        }
+    else
+        {
+        if ( aButtonId == EAknSoftkeyBack )
+            {
+            }
+        else
+            {
+            // Especially handle Select Key
+            if ( ( aButtonId == EAknSoftkeySelect ) ||
+                 ( aButtonId == EEikBidOk ) ||
+                 ( aButtonId == ESanimDlgChangeCommand ) )
+                {
+                // Select button pressed, handle, do not leave dialog
+                ProcessCommandL( ESanimDlgChangeCommand );
+                return EFalse;
+                }
+            if ( aButtonId == EEikCmdExit )
+                {
+                }
+            }
+        }
+
+    return ETrue;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::HandleApplicationForegroundEvent
+// This API is used by the application to give background/foreground events
+// to the Dialog. The dialog inturn passes the events to custom control.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::HandleApplicationForegroundEvent( TBool 
+                                                 /*aForeground*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::ProcessCommandL
+// Reimplements CAknDialog::ProcessCommandL inorder to handle dialog menu
+// commands.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::ProcessCommandL( TInt aCommandId )  // Command Id
+    {
+    // The Commands are handled by the custom CCoe Control and
+    // a boolean varialble is used inorder to keep track whether
+    // the control command processing needs to be invoked or not.
+    CAknDialog::ProcessCommandL( aCommandId );
+    switch ( aCommandId )
+        {
+        case ESanimDlgChangeCommand:
+        if ( iCustControl )
+            {
+            iCustControl->HandleListBoxSelectionL();
+            }
+            break;
+        case ESanimDlgHelpCommand:
+            {
+#ifdef __SERIES60_HELP
+            HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
+                iEikonEnv->EikAppUi()->AppHelpContextL() );
+#endif
+            }
+            break;
+        case EAknSoftkeyBack: // Fall Through
+        case EEikCmdExit:
+        case EAknCmdExit:
+            // Close this dialog
+            TryExitL( aCommandId );
+            iAvkonAppUi->ProcessCommandL( aCommandId );
+            break;
+        default:
+            break;
+        }
+    }
+
+#ifdef __SERIES60_HELP
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::OfferKeyEventL
+// Handles Key events by reimplementing CCoeControl::OfferKeyEventL.
+// Returns:
+//      EKeyWasConsumed: If this control uses this key.
+//      EKeyWasNotConsumed: Otherwise.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::GetHelpContext( TCoeHelpContext& 
+                                                    aContext ) const
+    {
+    aContext.iMajor = KScreenSaverAnimPluginHelpContextUid;
+    aContext.iContext = KSCREENSAVER_HLP_ANIM_SETTINGS;
+    }
+#endif // __SERIES60_HELP
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::CreateCustomControlL
+// Reimplements CAknDialog::CreateCustomControlL inorder to add the 
+// custom control as part of the dialog in the UI framework.
+// Returns: SEikControlInfo which contains the Cust Control, if
+//                          aControlType == ESanimCustControl
+//                     else,
+//                           the structure does not contain any control.
+// -----------------------------------------------------------------------------
+//
+SEikControlInfo CScreenSaverAnimSettingDialog::CreateCustomControlL(
+        TInt aControlType ) // Control Type
+    {
+#ifdef SCREENSAVER_LOG_ENABLED
+    _LIT( msg, "In Create Custom Control" );
+    PrintDebugMsg( msg );
+#endif
+
+    SEikControlInfo controlInfo;
+    controlInfo.iControl = NULL;
+    controlInfo.iTrailerTextId = 0;
+    controlInfo.iFlags = EEikControlIsNonFocusing;
+
+    switch ( aControlType )
+        {
+        case ESanimCustControl:
+            iCustControl = CScreenSaverAnimPluginContainer::NewL( 
+                                              iCaller,
+                                              this,
+                                              iSettingObject );
+            controlInfo.iControl = iCustControl;
+            break;
+        default:
+            break;
+        }
+    return controlInfo;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::SizeChanged
+// Reimplements CAknDialog::SizeChanged inorder to support the resize of the
+// dialog when functions such as SetRect, SetExtent are called on the dialog.
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::SizeChanged()
+    {
+    CAknDialog::SizeChanged();
+    iCustControl->SetExtent( Rect().iTl, Rect().Size() );
+    DrawNow();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::OfferKeyEventL
+// Handles Key events by reimplementing CCoeControl::OfferKeyEventL.
+// Returns:
+//      EKeyWasConsumed: If this control uses this key.
+//      EKeyWasNotConsumed: Otherwise.
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CScreenSaverAnimSettingDialog::OfferKeyEventL(
+    const TKeyEvent& aKeyEvent, // Key Event
+    TEventCode aType )           // Event Code
+    {
+    if ( iCustControl )
+        {
+        TKeyResponse lCcRetVal = iCustControl->OfferKeyEventL( aKeyEvent, aType );
+        if ( lCcRetVal == EKeyWasConsumed )
+            {
+            // Key was consumed, UNLESS it was the End key, which should be
+            // passed to base class. For some reason listboxes like to eat
+            // end keys
+            if ( aKeyEvent.iCode != EKeyEscape )
+                {
+                return EKeyWasConsumed;
+                }
+            }
+        }
+    return CAknDialog::OfferKeyEventL( aKeyEvent, aType );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::HandleResourceChange
+// Handles change of skin/Layout
+// -----------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::HandleResourceChange( TInt aType )
+    {
+    if ( iCustControl )
+        {
+        iCustControl->HandleResourceChange( aType );
+        }
+    CAknDialog::HandleResourceChange( aType );
+    }
+
+// ---------------------------------------------------------------------------
+// CScreenSaverAnimSettingDialog::FocusChanged
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::FocusChanged( TDrawNow aDrawNow )
+    {
+    // Pass focus changed event to listbox.
+    if ( iCustControl )
+        {
+        iCustControl->SetFocus( IsFocused(), aDrawNow );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// Sets middle softkey label.
+// ---------------------------------------------------------------------------
+//
+void CScreenSaverAnimSettingDialog::SetMiddleSoftKeyLabelL( 
+    const TInt aResourceId, const TInt aCommandId )
+    {
+    HBufC* middleSKText = StringLoader::LoadLC( aResourceId );
+    TPtr mskPtr = middleSKText->Des();
+    CEikDialog::ButtonGroupContainer().AddCommandToStackL( 
+        KSanimMSKControlID, 
+        aCommandId, 
+        mskPtr );
+    CEikDialog::ButtonGroupContainer().UpdateCommandObserverL( 
+        KSanimMSKControlID, 
+        *this );
+    CleanupStack::PopAndDestroy( middleSKText );
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/BWINSCW/ScreenSaverGifAnimPluginU.def	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/EABI/ScreenSaverGifAnimPluginU.def	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,9 @@
+EXPORTS
+	_Z24ImplementationGroupProxyRi @ 1 NONAME
+	_ZTI19CGifAnimationPlugin @ 2 NONAME ; #<TI>#
+	_ZTI26CGifAnimationPluginControl @ 3 NONAME ; #<TI>#
+	_ZTI27CGifAnimationPluginEcomMain @ 4 NONAME ; #<TI>#
+	_ZTV19CGifAnimationPlugin @ 5 NONAME ; #<VT>#
+	_ZTV26CGifAnimationPluginControl @ 6 NONAME ; #<VT>#
+	_ZTV27CGifAnimationPluginEcomMain @ 7 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/group/ScreenSaverGifAnimPluginEcom.mmp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Project definition file for project GifAnimation plug-in
+*
+*/
+
+
+
+
+
+#include <platform_paths.hrh>
+
+TARGET                  ScreenSaverGifAnimPlugin.dll
+TARGETTYPE              PLUGIN
+UID                     0x10009D8D 0x102750B5
+
+CAPABILITY              CAP_ECOM_PLUGIN
+VENDORID                VID_DEFAULT
+
+SOURCEPATH              ../src
+SOURCE                  GifAnimationPluginMain.cpp
+SOURCE                  GifAnimationPlugin.cpp
+SOURCE                  GifAnimationPluginDllApi.cpp
+SOURCE                  GifAnimationPluginControl.cpp
+
+
+USERINCLUDE             ../inc
+USERINCLUDE             ../../ScreenSaverAnimPlugin/inc
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+APP_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH              ../resource
+START RESOURCE          102750B5.rss
+TARGET                  ScreenSaverGifAnimPlugin.rsc
+END // RESOURCE
+
+
+//deffile generation
+#if defined( ARMCC )
+DEFFILE ../EABI/ScreenSaverGifAnimPlugin.def
+#else
+DEFFILE ../BWINSCW/ScreenSaverGifAnimPlugin.def
+#endif
+
+LIBRARY           euser.lib cone.lib
+LIBRARY           eikcore.lib fbscli.lib gdi.lib
+LIBRARY           bitgdi.lib // CFbsBitmapDevice
+LIBRARY           ecom.lib
+LIBRARY           IHL.lib   // MIHLFileImage
+LIBRARY           efsrv.lib // RFs
+LIBRARY           bafl.lib  // baflutils
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/group/bld.inf	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     This is a build file that builds ScreenSaverGifAnimPlugin alone
+*
+*/
+
+
+
+
+
+#ifdef RD_SCREENSAVER_GIFANIMATION
+
+//Platforms listed are not built by ScreenSaver GifAnimPlugin
+PRJ_PLATFORMS
+DEFAULT -ARMI -ARM4
+
+PRJ_EXPORTS
+../rom/ScreenSaverGifAnimPlugin.iby CORE_MW_LAYER_IBY_EXPORT_PATH(ScreenSaverGifAnimPlugin.iby)
+
+PRJ_MMPFILES
+ScreenSaverGifAnimPluginEcom.mmp
+     
+#endif // RD_SCREENSAVER_GIFANIMATION
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/inc/GifAnimationPlugin.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,434 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Screensaver GifAnimation plug-in implementation header file
+*
+*/
+
+
+
+#ifndef C_GIFANIMATIONPLUGIN_H
+#define C_GIFANIMATIONPLUGIN_H
+
+#include <e32std.h>
+#include <coecntrl.h>
+#include <coemain.h>
+#include <fbs.h>
+#include <barsread.h>
+
+#include <npupp.h>
+#include <pluginadapterinterface.h>
+#include <cecombrowserplugininterface.h>
+#include <MIHLViewerObserver.h>
+
+
+// FORWARD DECLARATIONS
+class MIHLFileImage;
+class MIHLBitmap;
+class MIHLImageViewer;
+
+class CCoeControl;
+class CGifAnimationPlugin;
+
+// CONSTANTS
+/** implementation id GifAnim Ecom Plugin */
+const TInt KGifAnimationPluginImplementationValue = 0x102750B4; 
+
+/******************************************
+* This class is specific to ECom Style Plugin.
+* This is used for passing plugin specific initialization information 
+* to and from browser.
+*******************************************/
+
+class CGifAnimationPluginEcomMain :  public CEcomBrowserPluginInterface
+    {
+    public: // Functions from base classes
+
+        /**
+        * Instance factory 
+        * @param aInitParam an optional parameter
+        */
+        static CGifAnimationPluginEcomMain* NewL(TAny* aInitParam);
+
+        /**
+        * Destructor.
+        */
+        virtual ~CGifAnimationPluginEcomMain();
+
+        /**
+        * @return pointer to functions struct.
+        */
+        NPNetscapeFuncs* Funcs() { return iNpf; }
+
+    private: // Constructors
+        CGifAnimationPluginEcomMain( NPNetscapeFuncs* aNpf );
+        void Construct( NPPluginFuncs* aPluginFuncs );
+    private: // new functions
+        /**
+         * Sets pointers to interface functions
+         * @param aPpf structure to fill
+         */
+        NPError InitializeFuncs( NPPluginFuncs* aPpf );
+
+    private: // Data
+        // pointer to plug-in function pointers struct
+        NPNetscapeFuncs* iNpf;
+    };
+
+/****************************************
+Class CGifAnimationPluginControl
+Class to Handle UI related actions
+****************************************/
+class CGifAnimationPluginControl : public CCoeControl, 
+                                   public MIHLViewerObserver
+
+    {
+public: // Constructor and Destructor
+
+    /**
+     * Function:    NewL
+     *
+     * Description: Get instance of a CGifAnimationPluginControl object.
+     * @param aParentControl a parent class to register to
+     * @param aPluginAdapter pointer to plugin adapter
+     */
+    static CGifAnimationPluginControl* NewL( CCoeControl* aParentControl,
+										     MPluginAdapter* aPluginAdapter);
+
+    /**
+    * Destructor.
+    */
+    ~CGifAnimationPluginControl();
+
+public: // From MIHLViewerObserver
+    /**
+    * From MIHLViewerObserver Notifies client 
+    * when viewer bitmap content is changed.
+    * Leave situation is handled in ViewerError() callback.
+    */
+    void ViewerBitmapChangedL();
+
+    /**
+    * From MIHLViewerObserver Notifies client if error occurs in viewer.
+    * @param aError     IN  System wide error code.
+    */
+    void ViewerError( TInt aError );
+
+public: // new methods
+    /**
+     * Loads the image into display.
+     * @param aImageFileName image file name - expected to be valid image
+     */
+    void LoadImageL( const TDesC& aImageFileName );
+    
+    /**
+     * @return last error, if any
+     */
+    TInt GetLastError() const;
+    
+    /**
+     * Start animation.
+     */
+    void StartAnimationL();
+    
+    /**
+     * Stop animation.
+     */
+    void StopAnimation();
+    
+    /**
+     * Checks that the file is a valid image file.
+     * Will leave otherwise
+     *
+     * @param aImageFileName image file name - expected to be valid image
+     */
+    static void CheckFileIsValidL( const TDesC& aImageFileName );
+   
+   
+private: // new methods
+
+    /**
+     * @return ETrue if loaded image is animation.
+     */
+    TBool IsAnimation() const;
+    
+    /**
+     * Cancel animation.
+     */
+    void CancelAnimation();
+
+    /**
+     * Performs image loading steps.
+     * Uses file name stored in LoadImageL()
+     */                   
+    void DoImageLoadingL();
+    
+    /**
+     * Frees resources allocated with LoadImageL()
+     */                   
+    void DeleteAnimation();
+    
+    /**
+     * If loading content fails, non-leaving HandleCallback
+     * must be call always that parent can update its state
+     * properly.
+     */
+    void HandleCallback( TInt aError );
+    
+    /** 
+     * Informes that the plug-in wants to terminate
+     */
+    void InformPluginFinished();
+    
+    /**
+     * Informs that DRM rights should not be consumed
+     */
+    void SetPreviewMode();
+
+private: // from CCoeControl
+    void Draw(const TRect& aRect) const;
+    void SizeChanged();
+
+private: // Constructor
+    /**
+     * Constructor.
+     */
+    CGifAnimationPluginControl();
+    
+    /**
+     * ConstructL
+     *
+     * 2nd phase constructor.
+     * @param aParentControl a parent class to register to
+     * @param aPluginAdapter pointer to plugin adapter
+     */
+    void ConstructL( CCoeControl *aParentControl,
+                     MPluginAdapter* aPluginAdapter );
+
+private: // Data
+
+    /**
+     * Possible animation states
+     */
+    enum TAnimationState
+        {
+        EAnimationNotReady=1, // the file was not loaded yet or corrupt
+        EAnimationLoading=2,
+        EAnimationPlaying=3
+        };
+        
+        // Source image
+        MIHLFileImage*      iSourceImage;
+        
+        // Destination bitmap
+        MIHLBitmap*         iDrawingBitmap;
+
+        // the bitmap is used for scaling our way, IHL will not do scaling
+        CFbsBitmap*         iScalingBitmap;
+
+        // the mask for scaled bitmap 
+        CFbsBitmap*         iScalingBitmapMask; 
+
+        // size of target bitmap
+        TSize               iTargetSize;
+        
+        // new size of target bitmap
+        TSize               iTargetNewSize;
+        
+        // Image viewer used as engine
+        MIHLImageViewer*    iEngine;
+                
+        // Internal animation state.
+        TAnimationState     iAnimationState;
+
+        // path and name of file being loaded
+        TFileName           iFileName;
+        
+        // code of last loading error occured
+        TInt                iLastError;        
+
+        // pointer to adapter, we do not own the instance
+        MPluginAdapter*             iPluginAdapter;
+        
+        // if true, no DRM rights are consumed
+        TBool               isPreviewMode;
+        
+        // a flag to make sure the first ViewerBitmapChangedL is finished,
+        // then we could draw image on screen
+        TBool               isViewerBitmapChangedL;
+    };
+
+
+/*******************************************************
+Class CGifAnimationPlugin
+********************************************************/
+
+class CGifAnimationPlugin : public CBase
+    {
+public: // Constructor and Destructor
+    /** 
+     * Instance factory 
+     */
+    static CGifAnimationPlugin* NewL( NPP anInstance );
+    /**
+     * Destructor
+     */
+    ~CGifAnimationPlugin();
+
+    /**
+     * Notifies host that plug-in has finished.
+     */
+    void PrepareToExitL();
+
+    /**
+     * @return ref of <code>CGifAnimationPluginControl</code>
+     */
+    CGifAnimationPluginControl* Control();
+
+    /**
+     * @return pointer on NPP instance
+     */
+    NPP Instance();
+
+    /**
+     * Sets the parent window to plug-in. If already set, only updates size.
+     * @param aWindow a parent window
+     * @param aRect a parent window rectangle
+     */
+    void SetWindowL( const NPWindow  *aWindow, const TRect& aRect );
+
+private:
+    /**
+     * Construct.
+     *
+     * 2nd phase constructor.
+     * @param anInstance NPP structure
+     */
+    void Construct( NPP anInstance );
+
+private:
+    // pointer to adapter
+    MPluginAdapter*             iPluginAdapter;
+
+    // pointer to Container
+    CGifAnimationPluginControl* iControl;
+
+    // structure with pointers
+    NPP                         iInstance;
+    };
+
+/****************************************************************************
+*
+*    Plugin API methods
+*
+*/
+
+/**
+  * Create a plugin.
+  */
+NPError GifAnimationPluginNewp( NPMIMEType pluginType, 
+                                NPP instance, 
+                                uint16 mode, 
+                                CDesCArray* argn, 
+                                CDesCArray* argv, 
+                                NPSavedData* saved );
+
+/**
+  * Destroy a plugin.
+  */
+NPError GifAnimationPluginDestroy(NPP instance, NPSavedData** save);
+
+/**
+  * This is the parent window of a plugin.
+  */
+NPError GifAnimationPluginSetWindow(NPP instance, NPWindow* window);
+
+/**
+  * A new data stream has been created for sending data to the plugin.
+  */
+NPError GifAnimationPluginNewStream( NPP instance, 
+                                     NPMIMEType type, 
+                                     NPStream* stream, 
+                                     NPBool seekable, 
+                                     uint16* stype );
+
+/**
+  * A data stream has been terminated.
+  */
+NPError GifAnimationPluginDestroyStream( NPP instance, 
+                                         NPStream* stream, 
+                                         NPReason reason );
+
+/**
+  * A data stream has been fully saved to a file.
+  */
+void GifAnimationPluginAsFile( NPP instance, 
+                               NPStream* stream, 
+                               const TDesC& fname );
+
+/**
+  * Return the maximum number of bytes this plugin can accept from the stream.
+  * @param instance  - the plug-in instance
+  * @param stream -  the stream to use
+  */
+int32 GifAnimationPluginWriteReady( NPP instance, NPStream* stream );
+
+/**
+  * Receive more data - return number of bytes processed.
+  *
+  * @param instance  - the plug-in instance
+  * @param stream -  the stream to read from
+  * @param buffer - contains the data.
+  * @param len    - the number of bytes in buffer.
+  * @param offset - the number of bytes already sent/processed.
+  * @return TInt number of bytes processed.
+  */
+int32 GifAnimationPluginWrite( NPP instance, 
+                               NPStream* stream, 
+                               int32 offset, 
+                               int32 len, 
+                               void* buffer );
+
+/**
+  * Generic hook to retrieve values/attributes from the plugin.
+  */
+NPError GifAnimationPluginGetValue( NPP instance, 
+                                    NPPVariable variable, 
+                                    void *ret_value );
+
+/**
+  * Generic hook to set values/attributes within the plugin.
+  */
+NPError GifAnimationPluginSetValue( NPP instance, 
+                                    NPNVariable variable, 
+                                    void *ret_value );
+
+/**
+  * Event
+  */
+int16 GifAnimationPluginEvent( NPP instance, void* event );
+
+/**
+ * Notify
+ */
+void GifAnimationPluginURLNotify( NPP instance, 
+                                  const TDesC& url, 
+                                  NPReason reason, 
+                                  void* notifyData );
+
+/**
+ * Print
+ */
+void GifAnimationPluginPrint( NPP instance, NPPrint* platformPrint );
+
+#endif // C_GIFANIMATIONPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/inc/GifAnimationUtils.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Screensaver GifAnimation plug-in utility file header
+*
+*/
+
+
+
+
+
+#ifndef GIFANIMPLUGINUTIL_H
+#define GIFANIMPLUGINUTIL_H
+
+// INCLUDES
+#include <e32base.h>
+#include <aknnotewrappers.h>
+
+#ifdef _DEBUG
+
+// MACROS
+#define DBG_TRACE( str ) \
+    RDebug::Printf( "GifAnimation plug-in: %s:%s:%d %s", \
+                    __FILE__, __FUNCTION__, __LINE__, (str) );
+#define DBG_TRACE_FN_BEGIN \
+    RDebug::Printf("GifAnimation plug-in: %s:%s begin", \
+                   __FILE__, __FUNCTION__);
+#define DBG_TRACE_FN_END \
+    RDebug::Printf("GifAnimation plug-in: %s:%s end", \
+                   __FILE__, __FUNCTION__);
+
+#define DBG_ERR_DLG( strDesC, code ) \
+        CAknErrorNote* informationNote = \
+            new ( ELeave ) CAknErrorNote(ETrue); \
+        TBuf<256> message; \
+        _LIT(KErrorFormat, "Error: %S, code: %d"); \
+        message.Format(KErrorFormat, &strDesC, code); \
+        informationNote->ExecuteLD( message );
+#else
+
+#define DBG_TRACE( str )
+#define DBG_TRACE_FN_BEGIN
+#define DBG_TRACE_FN_END
+#define DBG_ERR_DLG( strDesC, code )
+
+#endif // _DEBUG
+
+#endif // GIFANIMPLUGINUTIL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/resource/102750B5.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Registry file for Ecom style Screensaver GifAnimation plug-in
+*
+*/
+
+
+
+
+
+#include <ecom/registryinfo.rh>
+
+
+
+//  RESOURCE DEFINITIONS 
+// -----------------------------------------------------------------------------
+//   
+// Registry info
+// The UIDs for the filters implemented in this DLL
+//
+// -----------------------------------------------------------------------------
+//
+
+RESOURCE REGISTRY_INFO theInfo
+    {
+    dll_uid = 0x102750B5; // should match the name of the file. 
+                          // 3-d Uid of associeted plugin dll (declared in the dll mmp file)
+                          
+    interfaces=
+        {
+        INTERFACE_INFO
+            {
+            interface_uid =  0x102750CB; // KScreenSaverPluginInterfaceUid, identifies plugin type (used by ECom)
+            implementations = 
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = 0x102750B4;  // specify specific implementation (must
+                                                      // match an implementation entry in the dll
+                    version_no = 1;
+                    display_name = "ScreenSaverGifAnimPlugin.dll;Gif Animation Plugin"; // file name; plugin's name
+                    default_data = "image/gif";
+                                    // suppored mime types  
+                                    // mime Extensions
+                                    // and mime descriptions
+                    opaque_data = "Gif Animation Plugin"; // plugin's description
+                    }
+                };
+            }
+        };
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/rom/ScreenSaverGifAnimPlugin.iby	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     IBY file for ScreenSaverAnimPlugin
+*
+*/
+
+
+
+
+#ifndef __SCREENSAVERGIFANIMPLUGIN_IBY
+#define __SCREENSAVERGIFANIMPLUGIN_IBY
+
+// Not on ROM in 3.0, and only if S60 browser is used
+#ifdef RD_SCREENSAVER_GIFANIMATION
+#ifdef __SERIES60_NATIVE_BROWSER
+ECOM_PLUGIN(ScreenSaverGifAnimPlugin.dll,102750B5.rss)
+#endif
+#endif // RD_SCREENSAVER_GIFANIMATION
+
+#endif // __SCREENSAVERGIFANIMPLUGIN_IBY
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPlugin.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,145 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Screensaver GifAnimation plug-in implementation source file
+*
+*/
+
+
+
+
+
+#include <e32std.h>
+#include <eikenv.h>
+#include <barsread.h>
+#include <fbs.h>
+#include <gdi.h>
+#include <f32file.h>
+#include <cecombrowserplugininterface.h>
+
+#include "GifAnimationPlugin.h"
+#include "GifAnimationUtils.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Instance factory.
+// ---------------------------------------------------------------------------
+//
+CGifAnimationPlugin* CGifAnimationPlugin::NewL( NPP anInstance )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    CGifAnimationPlugin *self = new (ELeave) CGifAnimationPlugin;
+    CleanupStack::PushL( self );
+    self->Construct( anInstance );
+
+    CleanupStack::Pop();
+    DBG_TRACE_FN_END;
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CGifAnimationPlugin::~CGifAnimationPlugin()
+    {
+    DBG_TRACE_FN_BEGIN;        
+    if ( iControl )
+        {
+        delete iControl;
+        iControl=NULL;
+        }
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// Notifies host that plug-in has finished.
+// ---------------------------------------------------------------------------
+//
+void CGifAnimationPlugin::PrepareToExitL()
+    {
+    DBG_TRACE_FN_BEGIN;        
+
+    if ( iPluginAdapter )
+        {
+        CCoeControl* aParentControl = iPluginAdapter->GetParentControl();
+        if ( iControl != NULL )
+            {
+            // will free resources, if file was loaded but was not stopped
+            iControl->StopAnimation();
+            }
+        iPluginAdapter->PluginFinishedL();
+        }
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// 2nd phase constructor.
+// ---------------------------------------------------------------------------
+//
+void CGifAnimationPlugin::Construct( NPP anInstance )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    iInstance=anInstance;
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// Sets the parent window to plug-in. If already set, only updates size.
+// ---------------------------------------------------------------------------
+//
+void CGifAnimationPlugin::SetWindowL( const NPWindow *aWindow, 
+                                      const TRect& aRect )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    iPluginAdapter = static_cast<MPluginAdapter*>( aWindow->window );
+    CCoeControl* aParentControl = iPluginAdapter->GetParentControl();
+    if ( iControl == NULL )
+        {
+        iControl = CGifAnimationPluginControl::NewL( aParentControl, 
+													 iPluginAdapter );
+        iPluginAdapter->PluginConstructedL( iControl );
+        }
+
+    if ( iControl != NULL )
+        {
+        iControl->SetRect( aRect );
+        }
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// Returns pointer on instance of CGifAnimationPluginControl
+// ---------------------------------------------------------------------------
+//
+CGifAnimationPluginControl* CGifAnimationPlugin::Control()
+    {
+    DBG_TRACE_FN_BEGIN;        
+    ASSERT( iControl );
+    DBG_TRACE_FN_END;
+    return iControl;
+    }
+
+// ---------------------------------------------------------------------------
+// Returns pointer on NPP instance
+// ---------------------------------------------------------------------------
+//
+NPP CGifAnimationPlugin::Instance()
+    {
+    DBG_TRACE_FN_BEGIN;        
+    ASSERT( iInstance );
+    DBG_TRACE_FN_END;
+    return iInstance;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPluginControl.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,603 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Screensaver GifAnimation plug-in container source file
+*
+*/
+
+
+
+
+
+#include <eikenv.h>
+#include <w32std.h>
+#include <e32base.h>
+#include <e32std.h>
+
+#include <IHLImageFactory.h>        // IHLImageFactory
+#include <IHLViewerFactory.h>       // IHLViewerFactory
+#include <MIHLImageViewer.h>        // MIHLImageViewer
+#include <MIHLFileImage.h>          // MIHLFileImage
+#include <MIHLBitmap.h>             // MIHLBitmap
+#include <MIHLImageViewer.h>        // MIHLImageViewer
+#include <MIHLViewerObserver.h>
+#include <bautils.h>
+
+#include "GifAnimationPlugin.h"
+#include "GifAnimationUtils.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Instance factory
+// ---------------------------------------------------------------------------
+//
+CGifAnimationPluginControl* CGifAnimationPluginControl::NewL( 
+                                        CCoeControl *aParentControl, 
+                                        MPluginAdapter* aPluginAdapter )
+    {
+    ASSERT( aPluginAdapter );
+    DBG_TRACE_FN_BEGIN;        
+    CGifAnimationPluginControl* tmp = 
+        new ( ELeave )CGifAnimationPluginControl();
+    CleanupStack::PushL( tmp );
+    tmp->ConstructL( aParentControl, aPluginAdapter );
+    CleanupStack::Pop();
+    DBG_TRACE_FN_END;
+    return tmp;
+    }
+
+// ---------------------------------------------------------------------------
+// 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CGifAnimationPluginControl::ConstructL( CCoeControl* aParentControl,
+                                             MPluginAdapter* aPluginAdapter )
+    {
+    DBG_TRACE_FN_BEGIN;
+
+    iPluginAdapter = aPluginAdapter;
+    isViewerBitmapChangedL = EFalse;
+    
+    if ( aParentControl != NULL )
+        {
+        CreateWindowL( aParentControl );
+        }
+    else 
+        {
+        CreateWindowL();
+        }
+    ActivateL();
+    
+    MakeVisible( ETrue ); // make it invisible for now
+    
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// Constructor
+// ---------------------------------------------------------------------------
+//
+CGifAnimationPluginControl::CGifAnimationPluginControl() 
+    : iSourceImage( NULL ),
+      iDrawingBitmap( NULL ), 
+      iScalingBitmap( NULL ), 
+      iScalingBitmapMask( NULL ),
+      iEngine( NULL ), 
+      iAnimationState( EAnimationNotReady ), 
+      iLastError( KErrNone )
+    {
+    DBG_TRACE_FN_BEGIN;
+    // nothing goes here
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+CGifAnimationPluginControl::~CGifAnimationPluginControl()
+    {
+    DBG_TRACE_FN_BEGIN;        
+
+    DeleteAnimation();
+
+    iPluginAdapter = NULL;    
+
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------
+// Loads the image into display.
+// Param aImageFileName image file name - expected to be valid image
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::LoadImageL( const TDesC& aImageFileName )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    iFileName.Copy( aImageFileName );
+
+	iLastError = KErrNotReady; // if asked before loading is complete+Draw()
+    TRAPD( error, DoImageLoadingL() );
+    if ( error )    
+        {
+        iLastError = error; 
+        DeleteAnimation();
+        DBG_TRACE_FN_END;
+        User::Leave( error ); // re-throw it
+        }
+    else
+        {
+        DBG_TRACE( "Animation loaded" );
+        iAnimationState = EAnimationLoading;
+        iLastError = KErrNone;
+        }    
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------
+// Return ETrue if loaded image is animation.
+// ---------------------------------------------------------
+//
+TBool CGifAnimationPluginControl::IsAnimation() const
+    {
+    DBG_TRACE_FN_BEGIN;        
+    if ( iSourceImage 
+      && iLastError == KErrNone ) // we did not have any error loading picture
+        {
+        DBG_TRACE_FN_END;
+        return iSourceImage->IsAnimation(); 
+        }
+    DBG_TRACE_FN_END;
+    return EFalse;
+    }
+
+
+// ---------------------------------------------------------
+// Return TInt with image loading error.
+// ---------------------------------------------------------
+//
+TBool CGifAnimationPluginControl::GetLastError() const
+    {
+    DBG_TRACE_FN_BEGIN;        
+    // 
+    DBG_TRACE_FN_END;
+    return iLastError;
+    }
+
+// ---------------------------------------------------------
+// Start animation.
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::StartAnimationL()
+    {
+    DBG_TRACE_FN_BEGIN;        
+    
+    if ( iEngine == NULL ) // animation was stopped, 
+        {                  // need to re-load animation file
+        DoImageLoadingL();
+        }
+        
+    // start animation    
+    if ( iEngine && IsAnimation() )
+        {
+        iEngine->Play();
+        iAnimationState = EAnimationPlaying;
+        }
+
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------
+// Stop animation.
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::StopAnimation()
+    {
+    DBG_TRACE_FN_BEGIN;        
+    
+    // bugfix for JPYO-6KXHRW
+    MakeVisible( EFalse );
+    
+    
+    // instead of just stopping player, we delete it. 
+    // This is because of stability issues with the start-stop-destroy cycle
+    DeleteAnimation();
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------
+// Called when size is changed.
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::SizeChanged()
+    {
+    DBG_TRACE_FN_BEGIN;        
+    if ( iEngine )
+        {
+        iEngine->SetViewerSize( Size() );
+        }
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// Overriden CCoeControl::Draw()
+// ---------------------------------------------------------------------------
+//
+void CGifAnimationPluginControl::Draw( const TRect& /*aRect*/ ) const
+    {
+    //DBG_TRACE_FN_BEGIN;        
+    CWindowGc& gc = SystemGc();
+    TRect rect( Rect() );
+
+    DBG_TRACE( "Draw: Clearing background" );
+    gc.Clear( Rect() );
+    gc.SetBrushColor( KRgbBlack );
+    gc.SetBrushStyle( CGraphicsContext::ESolidBrush); 
+    gc.DrawRect( rect );
+        
+    if ( iDrawingBitmap 
+      && iEngine 
+      && iLastError == KErrNone // loading was successful
+      && isViewerBitmapChangedL ) // need to check whether first ViewerBitmapChangedL
+                                  // has been called; 
+        {
+        TSize screenSize( rect.Size() );
+        TPoint destinationPoint( 
+                ( screenSize.iWidth-iTargetNewSize.iWidth ) / 2, 
+                ( screenSize.iHeight-iTargetNewSize.iHeight ) / 2 );
+        
+        TSize drawingBitmapSize( iDrawingBitmap->Bitmap().SizeInPixels() );
+        if ( drawingBitmapSize.iHeight == iTargetNewSize.iHeight
+          && drawingBitmapSize.iWidth == iTargetNewSize.iWidth )
+            {
+            // we use unscaled version as size is Ok
+            iDrawingBitmap->Draw( gc, 
+                                  destinationPoint,
+                                  iTargetNewSize );
+            }
+        else
+            {
+            // we use scaled version 
+            if ( iDrawingBitmap->HasMask() )                
+                {
+                gc.BitBltMasked( destinationPoint, 
+                                 iScalingBitmap, 
+                                 iTargetNewSize,
+                                 iScalingBitmapMask, 
+                                 EFalse );
+                }
+            else
+                {
+                gc.BitBlt( destinationPoint, 
+                           iScalingBitmap );
+                }
+            }
+        }
+        else // image is not ready or broken
+        {
+        DBG_TRACE( "image is not ready or broken" );
+        }
+    //DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------
+// CGifAnimationPluginControl::DoImageLoadingL
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::DoImageLoadingL()
+    {
+    DBG_TRACE_FN_BEGIN;        
+    
+    RFs& fs = CEikonEnv::Static()->FsSession();
+    TBool fileExists = BaflUtils::FileExists( fs, iFileName );
+    if ( !fileExists )
+        {
+        DBG_TRACE_FN_END;
+        User::Leave( KErrPathNotFound );
+        }
+        
+    
+    RFile fileHandle;
+    CleanupClosePushL( fileHandle );
+    iLastError = fileHandle.Open( fs, iFileName, EFileRead | EFileShareReadersOnly );
+    User::LeaveIfError(iLastError);
+    
+    // delete old instances, if any
+    DeleteAnimation();
+
+    // create new objects
+    if ( iDrawingBitmap == NULL )
+        {
+        iDrawingBitmap = IHLBitmap::CreateL();        
+        }
+    
+    TInt drmOption( 0 );
+    if ( isPreviewMode )
+        {
+        drmOption = MIHLFileImage::EOptionNoDRMConsume;    
+        }
+    iSourceImage = IHLImageFactory::OpenFileImageL( fileHandle, 
+                                                    0,  // image index
+                                                    drmOption );
+
+    // calculate target size so that picture fits the screen and centered
+    TSize sourceSize( iSourceImage->Size() );
+    TSize maxSize = Size();
+    
+    iTargetSize = TSize( Min( sourceSize.iWidth, maxSize.iWidth ),
+                         Min( sourceSize.iHeight, maxSize.iHeight ) );
+
+    if ( sourceSize.iWidth < maxSize.iWidth 
+      && sourceSize.iHeight < maxSize.iHeight )
+        {
+        // scale up N-times
+        TInt upScale = Min( maxSize.iWidth  / sourceSize.iWidth, 
+                            maxSize.iHeight / sourceSize.iHeight );
+        iTargetSize = TSize( sourceSize.iWidth * upScale, 
+                             sourceSize.iHeight * upScale );
+        const TUint32 options( 0 ); // no flags set
+        // we do not want IHL do scaling, so targetSize= sourceSize
+        iEngine = IHLViewerFactory::CreateImageViewerL( sourceSize, 
+                                                        *iSourceImage, 
+                                                        *iDrawingBitmap, 
+                                                        *this, 
+                                                        options ); 
+        iTargetNewSize = iTargetSize;                                                
+    	}
+    else 
+    	{
+    	//The image needs to be scaled down. We pass the target size to 
+    	//IHL so that it doesn't come back with an OOM situation in case
+    	//the resolution is too high.
+    	// scale up N-times
+        TReal downScale = Min( TReal(maxSize.iWidth) / TReal(sourceSize.iWidth), 
+        		               TReal(maxSize.iHeight) / TReal(sourceSize.iHeight) );
+        iTargetSize = TSize( sourceSize.iWidth * downScale, 
+                             sourceSize.iHeight * downScale );
+        const TUint32 options( 0 ); // no flags set
+        TReal widthRatio( TReal( iTargetSize.iWidth ) / TReal( sourceSize.iWidth ) );
+        TReal heightRatio( TReal( iTargetSize.iHeight ) / TReal( sourceSize.iHeight ) );
+        if( options & MIHLImageViewer::EOptionIgnoreAspectRatio )
+            {
+            downScale = ( widthRatio > heightRatio ) ? widthRatio : heightRatio;
+            }
+        else
+            {
+            downScale = ( widthRatio < heightRatio ) ? widthRatio : heightRatio;
+            }
+        TReal widthZoomRatio( downScale );
+        TReal heightZoomRatio( downScale );
+        if( options & MIHLImageViewer::EOptionIgnoreAspectRatio )
+            {
+            TReal widthRatio( TReal( iTargetSize.iWidth ) / TReal( sourceSize.iWidth ) );
+            TReal heightRatio( TReal( iTargetSize.iHeight ) / TReal( sourceSize.iHeight ) );
+            if( widthRatio < heightRatio )
+                {
+                widthZoomRatio = widthZoomRatio * widthRatio / heightRatio;
+                }
+            else
+                {
+                heightZoomRatio = heightZoomRatio * heightRatio / widthRatio;
+                }
+            }
+        iTargetNewSize = TSize( sourceSize.iWidth * widthZoomRatio, 
+                             sourceSize.iHeight * heightZoomRatio );
+        // we do not want IHL do scaling, so targetSize= sourceSize
+        iEngine = IHLViewerFactory::CreateImageViewerL( iTargetSize, 
+                                                        *iSourceImage, 
+                                                        *iDrawingBitmap, 
+                                                        *this, 
+                                                        options ); 
+     	}
+
+    // create bitmaps needed for manual scaling    
+    TDisplayMode dMode = CEikonEnv::Static()->DefaultDisplayMode();
+    if ( iScalingBitmap == NULL )
+        {
+        iScalingBitmap = new( ELeave ) CFbsBitmap;
+        iScalingBitmap->Create( iTargetSize, dMode ); 
+        }
+
+    if ( iScalingBitmapMask == NULL )
+        {
+        iScalingBitmapMask = new( ELeave ) CFbsBitmap;
+        iScalingBitmapMask->Create( iTargetSize, EGray256 ); 
+        }
+
+    CleanupStack::PopAndDestroy( &fileHandle );
+    DBG_TRACE_FN_END;
+    }
+    
+// ---------------------------------------------------------
+// CGifAnimationPluginControl::CheckFileIsValidL
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::CheckFileIsValidL( 
+                                        const TDesC& aImageFileName )
+    {
+    DBG_TRACE_FN_BEGIN;        
+
+    ASSERT( aImageFileName.Size() ); 
+    CGifAnimationPluginControl* temp = 
+                new ( ELeave )CGifAnimationPluginControl();
+    CleanupStack::PushL( temp );
+    temp->SetSize( TSize( 100, 100 ) );
+    temp->SetPreviewMode();
+    temp->LoadImageL( aImageFileName );
+    temp->DeleteAnimation();
+    CleanupStack::PopAndDestroy( temp );
+    
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------
+// CGifAnimationPluginControl::DeleteAnimation
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::DeleteAnimation()
+    {
+    DBG_TRACE_FN_BEGIN; 
+    if ( iEngine )
+        {
+        iAnimationState = EAnimationNotReady;
+        iEngine->Stop();
+        delete iEngine;
+        iEngine = NULL; 
+        }
+        
+    if ( iSourceImage )       
+        {
+        delete iSourceImage;            
+        iSourceImage = NULL;
+        }
+        
+    if ( iDrawingBitmap ) 
+        {
+        delete iDrawingBitmap;
+        iDrawingBitmap = NULL; 
+        }
+
+    if ( iScalingBitmap )
+        {
+        delete iScalingBitmap;
+        iScalingBitmap = NULL;    
+        }
+
+    if ( iScalingBitmapMask )
+        {
+        delete iScalingBitmapMask;
+        iScalingBitmapMask = NULL;    
+        }
+        
+        
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------
+// Handle bitmap change notifications. State is changed accordingly
+// if this is the first frame. 
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::ViewerBitmapChangedL()
+    {   
+    switch ( iAnimationState )
+        {
+        case EAnimationLoading:
+            {
+            iAnimationState = EAnimationPlaying;
+            break;
+            }
+        case EAnimationPlaying:
+            {
+            // do nothing 
+            break;
+            }
+        case EAnimationNotReady:
+        default:
+            {
+            break;
+            }
+        }
+    
+    if( iAnimationState == EAnimationPlaying )
+        {
+        if ( iDrawingBitmap 
+          && iEngine 
+          && iLastError == KErrNone ) // loading was successful
+            {
+            TSize drawingBitmapSize( iDrawingBitmap->Bitmap().SizeInPixels() );
+            if ( drawingBitmapSize.iHeight == iTargetNewSize.iHeight
+              && drawingBitmapSize.iWidth == iTargetNewSize.iWidth )
+                {
+                // we do not need to do scaling
+                }
+            else
+                {
+                // we need to do scaling
+                CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL( iScalingBitmap );
+                CleanupStack::PushL(bitmapDevice);
+                CFbsBitGc* graphicsContext = NULL; 
+                User::LeaveIfError( bitmapDevice->CreateContext( graphicsContext ) ); 
+                CleanupStack::PushL( graphicsContext ); 
+                TRect srcRect( iSourceImage->Size() );
+                graphicsContext->DrawBitmap( iTargetSize, &iDrawingBitmap->Bitmap(), srcRect ); 
+                CleanupStack::PopAndDestroy( 2 );//graphicsContext,bitmapDevice
+                
+                if ( iDrawingBitmap->HasMask() )                
+                    {
+                    CFbsBitmapDevice* bitmapMaskDevice = CFbsBitmapDevice::NewL( iScalingBitmapMask );
+                    CleanupStack::PushL(bitmapMaskDevice);
+                    CFbsBitGc* graphicsMaskContext = NULL; 
+                    User::LeaveIfError( bitmapMaskDevice->CreateContext( graphicsMaskContext ) ); 
+                    CleanupStack::PushL( graphicsMaskContext ); 
+                    graphicsMaskContext->DrawBitmap( iTargetSize, &iDrawingBitmap->Mask(), srcRect ); 
+                    CleanupStack::PopAndDestroy( 2 );//graphicsContext,bitmapDevice
+                    }
+                }
+            }
+        isViewerBitmapChangedL = ETrue;
+        MakeVisible( ETrue );
+        DrawNow();
+        }
+    }
+
+// ---------------------------------------------------------
+// Handles engine errors.
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::ViewerError( TInt aError )
+    {
+    DBG_TRACE_FN_BEGIN;      
+    iLastError = aError;  
+    HandleCallback( aError );
+    DBG_TRACE_FN_END;
+    }
+
+
+// ---------------------------------------------------------
+// Handles error codes; stores the error
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::HandleCallback( TInt aError )
+    {
+    DBG_TRACE_FN_BEGIN;        
+
+    if ( aError )
+        {
+        InformPluginFinished();   
+        }
+
+    DBG_TRACE_FN_END;
+    }
+
+
+// ---------------------------------------------------------
+// Informs that plug-in wants to terminate
+// ---------------------------------------------------------
+//
+void CGifAnimationPluginControl::InformPluginFinished()
+    {
+    
+    ASSERT( iPluginAdapter );
+
+    StopAnimation();
+    
+    TRAP_IGNORE(iPluginAdapter->PluginFinishedL());    
+    }
+    
+void CGifAnimationPluginControl::SetPreviewMode()    
+    {
+    isPreviewMode = ETrue;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPluginDllApi.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,278 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Screensaver GifAnimation plug-in API file
+*
+*/
+
+
+
+
+
+#include <IHLImageFactory.h>        // IHLImageFactory
+
+#include "GifAnimationPlugin.h"
+#include "NPNExtensions.h"
+#include "GifAnimationUtils.h"
+
+// ======== Ecom interface functions implementation ========
+
+NPError GifAnimationPluginNewp( NPMIMEType /*pluginType*/, 
+                                NPP instance, 
+                                uint16 /*mode*/, 
+                                CDesCArray* /*argn*/, 
+                                CDesCArray* /*argv*/, 
+                                NPSavedData* /*saved*/ )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    CGifAnimationPlugin* lGifAnimationPlugin=NULL;
+    TRAPD(err,lGifAnimationPlugin=CGifAnimationPlugin::NewL( instance ) );
+
+    if ( err == KErrNoMemory )
+        {
+        DBG_TRACE_FN_END;
+        return NPERR_OUT_OF_MEMORY_ERROR;
+        }
+    if ( err != KErrNone )
+        {
+        DBG_TRACE_FN_END;
+        return NPERR_MODULE_LOAD_FAILED_ERROR;
+        }
+    instance->pdata = (void *) lGifAnimationPlugin;
+    DBG_TRACE_FN_END;
+    return NPERR_NO_ERROR;
+    }
+
+NPError GifAnimationPluginDestroy( NPP instance, NPSavedData** /*save*/ )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    CGifAnimationPlugin* lGifAnimationPlugin = 
+                ( CGifAnimationPlugin * )instance->pdata;
+    if ( lGifAnimationPlugin )
+        {
+        TRAPD( err, lGifAnimationPlugin->PrepareToExitL() );
+        if ( err != KErrNone )
+            {
+            DBG_TRACE( 
+                "GifAnimationPluginDestroy Error when PrepareToExitL()" );
+            }
+        /**Ignoring the error*/
+        delete lGifAnimationPlugin;
+        lGifAnimationPlugin = NULL;
+        }
+    DBG_TRACE_FN_END;
+    return NPERR_NO_ERROR;
+    }
+
+NPError GifAnimationPluginSetWindow( NPP instance, NPWindow *window )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    CGifAnimationPlugin* lGifAnimationPlugin = 
+                (CGifAnimationPlugin *) instance->pdata;
+    TUint lWidth = window->width;
+    TUint lHeight = window->height;
+    TRAPD( err, 
+          lGifAnimationPlugin->SetWindowL( window, 
+                                      TRect( TSize( lWidth, lHeight ) ) ) );
+
+    if ( err == KErrNoMemory )
+        {
+        DBG_TRACE_FN_END;
+        return NPERR_OUT_OF_MEMORY_ERROR;
+        }
+    if ( err != KErrNone )
+        {
+        DBG_TRACE_FN_END;
+        return NPERR_GENERIC_ERROR;
+        }
+    DBG_TRACE_FN_END;
+    return NPERR_NO_ERROR;
+    }
+
+NPError GifAnimationPluginNewStream( NPP /*instance*/, 
+                                     NPMIMEType /*type*/, 
+                                     NPStream* /*stream*/, 
+                                     NPBool /*seekable*/, 
+                                     uint16* stype )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    *stype = NP_ASFILEONLY;
+    DBG_TRACE_FN_END;
+    return NPERR_NO_ERROR;
+    }
+
+NPError GifAnimationPluginDestroyStream( NPP /*instance*/, 
+                                         NPStream* /*stream*/, 
+                                         NPReason /*reason*/ )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    //
+    DBG_TRACE_FN_END;
+    return NPERR_NO_ERROR;
+    }
+
+void GifAnimationPluginAsFile( NPP instance, 
+                               NPStream* /*stream*/, 
+                               const TDesC& fname )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    CGifAnimationPlugin* lGifAnimationPlugin = 
+                ( CGifAnimationPlugin* )instance->pdata;
+    TRAP_IGNORE( lGifAnimationPlugin->Control()->LoadImageL( fname ) );
+    DBG_TRACE_FN_END;
+    }
+
+int32 GifAnimationPluginWriteReady( NPP /*instance*/, NPStream* /*stream*/ )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    //
+    DBG_TRACE_FN_END;
+    return 65536;
+    }
+
+int32 GifAnimationPluginWrite( NPP /*instance*/, 
+                               NPStream* /*stream*/, 
+                               int32 /*offset*/, 
+                               int32 len, 
+                               void* /*buffer*/ )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    //
+    DBG_TRACE_FN_END;
+    return len;
+    }
+
+int16 GifAnimationPluginEvent( NPP /*instance*/, void* /*event*/ )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    //
+    DBG_TRACE_FN_END;
+    return 0;
+    }
+
+
+NPError GifAnimationPluginGetValue( NPP instance, 
+                                    NPPVariable variable, 
+                                    void* ret_value )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    if ( variable == NPPCheckFileIsValid )
+        {
+        NPCheckFile* checkFile = (NPCheckFile*)ret_value;
+        TRAPD( err, 
+               CGifAnimationPluginControl::CheckFileIsValidL(
+                                             checkFile->fileName->Des() ) );
+
+        checkFile->fileValidityCheckError = err;
+        DBG_TRACE_FN_END;
+        return NPERR_NO_ERROR;
+        }
+        
+    if ( variable == NPPScreenSaverGetLastError )
+        {
+        DBG_TRACE( "GetLastError" );
+        TInt* retValue = (TInt*)ret_value;
+        CGifAnimationPlugin* lGifAnimationPlugin = 
+                    ( CGifAnimationPlugin* )instance->pdata;
+        *retValue = lGifAnimationPlugin->Control()->GetLastError();
+        DBG_TRACE_FN_END;
+        return NPERR_NO_ERROR;
+        }
+        
+    // new command, panic 
+    _LIT( KErrGetMsg, 
+          "CGifAnimationPluginDllApi::GifAnimationPluginGetValue" );
+    User::Panic( KErrGetMsg, KErrNotSupported );
+    return NPERR_GENERIC_ERROR;
+    }
+
+NPError GifAnimationPluginSetValue( NPP instance, 
+                                    NPNVariable variable, 
+                                    void* value )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    CGifAnimationPlugin* lGifAnimationPlugin = 
+                ( CGifAnimationPlugin* )instance->pdata;
+
+    if ( variable == NPNScreenSaverAnimationEvent )
+        {
+        NPAnimationEvent* event = (NPAnimationEvent*)value;
+        switch ( *event )
+            {
+            case NPStartAnimation:
+                DBG_TRACE( "StartAnimationL" );
+                TRAPD( errStart, 
+                       lGifAnimationPlugin->Control()->StartAnimationL() ); 
+                if ( errStart != KErrNone )     
+                    {
+                    DBG_TRACE( "StartAnimation failed!" );
+                    return NPERR_GENERIC_ERROR;
+                    }
+                return NPERR_NO_ERROR;
+            case NPEndAnimation:
+                DBG_TRACE( "StopAnimation" );
+                TRAPD( errEnd, 
+                       lGifAnimationPlugin->Control()->StopAnimation() );
+                if (errEnd != KErrNone)     
+                    {
+                    DBG_TRACE( "StopAnimation failed!" );
+                    return NPERR_GENERIC_ERROR;
+                    }
+                DBG_TRACE_FN_END;
+                return NPERR_NO_ERROR;
+            default: 
+                // new command, panic 
+                _LIT( KErrSet1Msg, 
+                  "CGifAnimationPluginDllApi::GifAnimationPluginSetValue1" );
+                User::Panic( KErrSet1Msg, KErrNotSupported );
+                return NPERR_GENERIC_ERROR;
+            }
+        }
+
+    if ( variable == NPScreenSaverMode )
+        {
+        // we do not need the event
+        DBG_TRACE_FN_END;
+        return NPERR_NO_ERROR;
+        }
+
+    if ( variable == NPNInteractionMode )
+        {
+        // we do not need the event
+        DBG_TRACE_FN_END;
+        return NPERR_NO_ERROR;
+        }
+
+    // new command, panic 
+    _LIT( KErrSet2Msg, 
+          "CGifAnimationPluginDllApi::GifAnimationPluginSetValue2" );
+    User::Panic( KErrSet2Msg, KErrNotSupported );
+    return NPERR_GENERIC_ERROR;
+    }
+
+void GifAnimationPluginURLNotify( NPP /*instance*/, 
+                                  const TDesC& /*url*/, 
+                                  NPReason /*reason*/, 
+                                  void* /*notifyData*/ )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    //
+    DBG_TRACE_FN_END;
+    }
+
+void GifAnimationPluginPrint( NPP /*instance*/, NPPrint* /*platformPrint*/ )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    //
+    DBG_TRACE_FN_END;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/ScreenSaverGifAnimPlugin/src/GifAnimationPluginMain.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,155 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Screensaver GifAnimation plug-in API file
+*
+*/
+
+
+
+
+
+#include <ecom/implementationproxy.h>
+#include <cecombrowserplugininterface.h>
+
+
+#include "GifAnimationPlugin.h"
+#include "GifAnimationUtils.h"
+
+// ---------------------------------------------------------------------------
+// Table of implementation UID / implementation class factory
+// ---------------------------------------------------------------------------
+//
+const TImplementationProxy KImplementationTable[] =
+    {
+        { { KGifAnimationPluginImplementationValue }, 
+          (TProxyNewLPtr) CGifAnimationPluginEcomMain::NewL
+        }
+    };
+
+
+/************************************************************************/
+/**********ECOM STYLE Screensaver GifAnimation plug-in ENTRY POINTS******/
+/************************************************************************/
+
+// ---------------------------------------------------------------------------
+// Instance factory.
+// ---------------------------------------------------------------------------
+//
+CGifAnimationPluginEcomMain* CGifAnimationPluginEcomMain::NewL( 
+                                                    TAny* aInitParam )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    TFuncs* funcs = REINTERPRET_CAST( TFuncs*, aInitParam);
+    CGifAnimationPluginEcomMain* self = 
+           new( ELeave )CGifAnimationPluginEcomMain( funcs->iNetscapeFuncs );
+    CleanupStack::PushL(self);
+    self->Construct( funcs->iPluginFuncs );
+    CleanupStack::Pop();
+    DBG_TRACE_FN_END;
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+CGifAnimationPluginEcomMain::~CGifAnimationPluginEcomMain()
+    {
+    DBG_TRACE_FN_BEGIN;        
+    // nothing here
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// 2nd phase constructor.
+// ---------------------------------------------------------------------------
+//
+void CGifAnimationPluginEcomMain::Construct( NPPluginFuncs* aPluginFuncs )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    InitializeFuncs( aPluginFuncs );
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// Initializes NPP with pointers to implementing functions.
+// ---------------------------------------------------------------------------
+//
+NPError CGifAnimationPluginEcomMain::InitializeFuncs( NPPluginFuncs* aPpf )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    aPpf->size          = sizeof(NPPluginFuncs);
+    aPpf->version       = 1;
+    aPpf->newp          = NewNPP_NewProc( GifAnimationPluginNewp );
+    aPpf->destroy       = NewNPP_DestroyProc( GifAnimationPluginDestroy );
+    aPpf->setwindow     = NewNPP_SetWindowProc( GifAnimationPluginSetWindow );
+    aPpf->newstream     = NewNPP_NewStreamProc( GifAnimationPluginNewStream );
+    aPpf->destroystream = NewNPP_DestroyStreamProc( 
+                                    GifAnimationPluginDestroyStream );
+    aPpf->asfile        = NewNPP_StreamAsFileProc( GifAnimationPluginAsFile );
+    aPpf->writeready    = NewNPP_WriteReadyProc( 
+                                    GifAnimationPluginWriteReady );
+    aPpf->write         = NewNPP_WriteProc( GifAnimationPluginWrite );
+    aPpf->print         = NewNPP_PrintProc( GifAnimationPluginPrint );
+    aPpf->event         = NewNPP_HandleEventProc( GifAnimationPluginEvent );
+    aPpf->urlnotify     = NewNPP_URLNotifyProc( GifAnimationPluginURLNotify );
+    aPpf->javaClass     = NULL;
+    aPpf->getvalue      = NewNPP_GetValueProc( GifAnimationPluginGetValue );
+    aPpf->setvalue      = NewNPP_SetValueProc( GifAnimationPluginSetValue );
+
+    DBG_TRACE_FN_END;
+    return NPERR_NO_ERROR;
+    }
+
+// ---------------------------------------------------------------------------
+// Constructor.
+// ---------------------------------------------------------------------------
+//
+CGifAnimationPluginEcomMain::CGifAnimationPluginEcomMain( 
+                                    NPNetscapeFuncs* aNpf ) 
+    : CEcomBrowserPluginInterface(), iNpf( aNpf )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    //
+    DBG_TRACE_FN_END;
+    }
+
+// ---------------------------------------------------------------------------
+// Returns the filters implemented in this DLL
+// Returns: The filters implemented in this DLL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( 
+                                                    TInt& aTableCount )
+    {
+    DBG_TRACE_FN_BEGIN;        
+    aTableCount = sizeof( KImplementationTable ) 
+                        / sizeof( TImplementationProxy );
+    DBG_TRACE_FN_END;
+    return KImplementationTable;
+    }
+
+#ifndef EKA2
+// ---------------------------------------------------------------------------
+// The E32Dll() entry point function. Deprecated.
+// ---------------------------------------------------------------------------
+//
+GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
+    {
+    DBG_TRACE_FN_BEGIN;        
+    //
+    DBG_TRACE_FN_END;
+    return KErrNone;
+    }
+#endif // EKA2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/data/102823EC.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     ECOM Resource file for slideshowplugin
+*
+*/
+
+
+
+
+
+//  INCLUDES
+#include <ecom/registryinfo.rh>
+
+#include "ScreensaverpluginIntDef.hrh"
+#include "SlideshowPluginImpUID.hrh"
+
+//  RESOURCE DEFINITIONS 
+// -----------------------------------------------------------------------------
+//   
+// theInfo
+// ECOM DLL interface & implementation description resource.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE REGISTRY_INFO theInfo
+    {
+    dll_uid = 0x102823EC;
+    interfaces =
+        {
+        INTERFACE_INFO
+            {
+            interface_uid = KCScreensaverPluginInterfaceDefinitionUid;
+            implementations =
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = KSlideshowPluginImpUID;
+                    version_no = 1;
+                    display_name = "Slideshow";
+                    default_data = "";
+                    opaque_data = "07";  // Conf, sel notif, preview notif
+                    }
+                };
+            }
+        };
+    }
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/data/SlideshowPlugin.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,128 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Localisable resources of SlideshowPlugin
+*
+*/
+
+
+
+
+
+//  RESOURCE IDENTIFIER
+
+NAME SSSS
+
+#include <eikon.rh>
+#include <avkon.rh>
+#include <avkon.mbg>
+#include <avkon.hrh>
+#include <avkon.rsg>
+#include <aknsconstants.hrh>
+#include <pathconfiguration.hrh>
+#include <avkon.loc>
+#include <slideshowplugin.loc>
+
+// ---------------------------------------------------------
+//
+// Define the resource file signature
+// This resource should be empty.
+//
+// ---------------------------------------------------------
+//
+RESOURCE RSS_SIGNATURE
+    {
+    }
+
+
+RESOURCE TBUF
+    {
+    buf = "SlideshowScreensaver";
+    }
+
+
+// ---------------------------------------------------
+//
+//    r_slideshow_screensaver_name
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_slideshow_screensaver_name
+    {
+    buf = qtn_slideshow_screensaver_name;
+    }
+    
+
+// ---------------------------------------------------
+//
+//    r_sanim_title_settings
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_not_supported
+    {
+    buf = qtn_err_not_supp;
+    }
+    
+
+// ---------------------------------------------------
+//
+//    r_sanim_title_settings
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_error_wrong_format
+    {
+    buf = qtn_sanim_error_wrong_format;
+    }  
+    
+
+// ---------------------------------------------------
+//
+//    r_sanim_file_not_selected
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_file_not_selected
+    {
+    buf = qtn_sanim_file_not_selected;
+    }     
+    
+    
+// ---------------------------------------------------
+//
+//    r_sanim_err_failure
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_sanim_err_failure
+    {
+    buf = qtn_err_failure;
+    } 
+    
+
+// ---------------------------------------------------
+//
+//    r_drm_prev_rights_set
+//
+// ---------------------------------------------------
+//
+RESOURCE TBUF r_drm_prev_rights_set
+    {
+    buf = qtn_drm_prev_rights_set;
+    }             
+        
+
+// End of File
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/group/ABLD.BAT	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\S60\screensaver\plugins\SlideshowPlugin\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/group/SlideshowPlugin.mmp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,97 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Makefile for Screensaver Slideshow plugin 
+*
+*/
+
+
+
+
+
+#include <bldvariant.hrh>
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+TARGET     slideshowplugin.dll
+TARGETTYPE PLUGIN 
+UID        0x10009D8D 0x102823EC
+
+CAPABILITY CAP_ECOM_PLUGIN
+VENDORID   VID_DEFAULT
+
+START RESOURCE ../data/102823EC.rss 
+TARGET      slideshowplugin.rsc
+END
+
+START RESOURCE  ../data/SlideshowPlugin.rss
+HEADER
+TARGETPATH      RESOURCE_FILES_DIR
+LANGUAGE_IDS
+END  // RESOURCE
+
+
+/* exportunfrozen */ 
+
+SOURCEPATH      ../src
+SOURCE          SlideshowPlugin.cpp
+SOURCE          SlideshowModel.cpp
+SOURCE          SlideshowSlide.cpp
+SOURCE          SlideshowSlideLoader.cpp
+SOURCE          SlideshowPluginUtils.cpp
+SOURCE          SlideshowPluginProxy.cpp
+
+USERINCLUDE     ../inc
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+APP_LAYER_SYSTEMINCLUDE
+
+
+LIBRARY ecom.lib 
+LIBRARY euser.lib
+LIBRARY fbscli.lib
+LIBRARY bitgdi.lib
+LIBRARY cone.lib 
+LIBRARY efsrv.lib 
+LIBRARY bafl.lib
+LIBRARY ws32.lib
+LIBRARY imageconversion.lib
+LIBRARY centralrepository.lib
+LIBRARY cenrepnotifhandler.lib
+LIBRARY DrmHelper.lib
+LIBRARY platformenv.lib
+LIBRARY aknskinsrv.lib
+LIBRARY ContentListingFramework.lib
+LIBRARY avkon.lib 
+LIBRARY eikdlg.lib
+LIBRARY eikcore.lib
+LIBRARY eikcoctl.lib
+LIBRARY mdeclient.lib
+
+// LIBRARY         AknLayout2.lib           // Scalable UI
+// LIBRARY         AknLayout2Scalable.lib   // Scalable UI
+// LIBRARY         CdlEngine.lib            // Scalable UI 
+// LIBRARY         apgrfx.lib
+// LIBRARY         apmime.lib 
+// LIBRARY         MGFetch.lib
+// LIBRARY         CommonEngine.lib 
+// LIBRARY         flogger.lib
+// LIBRARY         caf.lib
+// LIBRARY         cafutils.lib
+#ifdef __SERIES60_HELP
+// LIBRARY         hlplch.lib               // for "Help" options menu
+#endif // __SERIES60_HELP
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/group/bld.inf	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Build information file for slideshowplugin
+*
+*/
+
+
+
+
+PRJ_PLATFORMS 
+// Defaults
+
+PRJ_MMPFILES
+#ifdef __SLIDESHOW_SCREENSAVER
+SlideshowPlugin.mmp
+#endif
+
+PRJ_EXPORTS
+../loc/slideshowplugin.loc MW_LAYER_LOC_EXPORT_PATH(slideshowplugin.loc)
+
+../rom/SlideshowPlugin.iby          CORE_MW_LAYER_IBY_EXPORT_PATH(SlideshowPlugin.iby)
+../rom/SlideshowPluginResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(SlideshowPluginResources.iby)
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowModel.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,258 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Takes care of storing and serving the slides
+*               to Slideshow plugin
+*
+*/
+
+
+
+#ifndef C_SLIDESHOWMODEL_H
+#define C_SLIDESHOWMODEL_H
+
+#include <e32base.h>
+
+class CSlideshowSlide;
+
+// Slide Array's size. 5 seems like a reasonable granularity
+const TInt KSlideshowSlideArrayGranularity = 5;
+
+//Slide status
+//this is only called in startplugin, Dont call it anywhere
+//Get next slide status
+const TInt KStatusNoSlide = 0;                //no side
+const TInt KStatusSlideDecoded = 1;           //already decoded
+const TInt KStatusDecodingInProgress  =2;     //decoding in progress
+const TInt KStatusSlideNotDecoding = 3;       //slide is there but not decoded
+const TInt KStatusSlideDecodeingFailed = 4;   //could not decode the file
+
+// Slideshow model. 
+// Contains slideshow slides, serves the slides to Slideshow plugin
+class CSlideshowModel : public CBase
+    {
+    
+public:
+	/**
+	 *  Return a new CSlideshowModel object
+	 */
+    static CSlideshowModel* NewL();
+    
+    /**
+     * Desconstructor
+     */
+    virtual ~CSlideshowModel();
+
+private:
+    /**
+     * Default constructor
+     */
+    CSlideshowModel();
+    
+    /*
+     *  Two-phase constructor, initialises member arrays and stuff
+     */
+    virtual void ConstructL();
+
+public: // Access functions
+    /*
+     *  Number of slides query.
+     */
+    TInt NumberOfSlides() const;
+
+    /*
+     *  Add a slide to the end of the array.
+     * 
+     *  @param aSlide The new slide which will be added to the silde array.
+     */
+    void AppendSlideL(CSlideshowSlide* aSlide);
+
+    /*
+     *  Insert a slide at <aIndex>. Space must be reserved.
+     * 
+     *  @param aIndex The postion index which the new slide will be insert to.
+     *  @param aSilde The new slide which will be insert.
+     */
+    void InsertSlideL(TInt aIndex, CSlideshowSlide* aSlide);
+
+    /*
+     * Delete slide at <aIndex>.
+     * 
+     * @param aIndex The slide at <aIndex> will be delete. 
+     */
+    void DeleteSlide(TInt aIndex);
+
+    /*
+     *  Delete all slides.
+     */
+    void DeleteAll();
+
+    /*
+     *  Get slide at position <aIndex>.
+     * 
+     *  @return a slide at position <aIndex>.
+     */
+    CSlideshowSlide* SlideAt(TInt aIndex) const;
+
+    /*
+     *  Get current slide index.
+     * 
+     *  @return the current slide index.
+     */
+    inline TInt CurrentSlideIndex() const;
+
+    /*
+     *  Set current slide index.
+     * 
+     *  @param aIndex The  slide index, which will be show.
+     */
+    inline void SetCurrentSlideIndex(TInt aIndex);
+
+    /*
+     *  Get next slide in sequence
+     * 
+     *  @param aRandom No used now.
+     *  @return the next slide.
+     */
+    CSlideshowSlide* NextSlide(TBool aRandom);
+    
+    /*
+     *  Get slide status: decoded, decoding ,not started,decoding failed,no slide.
+     *  
+     *  @param  aSlide the slide which status will be detected.
+     *  @return status of aSlide.
+     */
+    TInt SlideStatus(CSlideshowSlide* aSlide); 
+
+    /*
+     *  Prepare next slide.
+     *  @param aRandom Whether select next slide random.( ETrue is random, EFalse is sequential)
+     *  @param aTargetSize The slide Size.
+     */
+    void PrepareNextSlide(TBool aRandom, const TSize& aTargetSize);
+
+    /*
+     *  Release next slide.
+     */
+    void ReleaseNextSlide();
+    
+    /*
+     *  Release Current slide.
+     */
+    void ReleaseCurrentSlide();
+    
+    /*
+     *  Get next slide index.
+     *
+     *  @return the position index which slide will be on.
+     */
+    inline TInt NextSlideIndex() const;
+
+    /*
+     *  Reserve space for <aCount> slides.
+     * 
+     *  @param aCount The slide number.
+     */
+    void SetReserveL(TInt aCount);
+
+    /*
+     *  Query if model is busy (decoding a slide).
+     * 
+     *  @return status whether the model is ready.(ETrue is ready, EFalse is not)
+     */
+    TBool Busy();
+
+    /*
+     *  Reset slide sequence, note that this will not release current image
+     */
+    inline void ResetSlideSequence();
+    
+private:  // Utility functions
+    /*
+     *  Get a random number in the range aMin - aMax (inclusive)
+     * 
+     *  @param aMax The upper limited.
+     *  @param aMin The lower limited.
+     *  @return an random number which is between aMax and aMin.
+     */
+    TInt Random(TInt aMax, TInt aMin = 0);
+    
+private:
+    /*
+     *  Slide array
+     */
+    CArrayPtrFlat<CSlideshowSlide>* iSlides;
+
+    /*
+     *  Current slide index
+     */
+    TInt iCurrentSlide;
+    
+    /*
+     *  Next slide index
+     */
+    TInt iNextSlide;
+
+    /* 
+     *  Random seed
+     */
+    TInt64 iRandSeed;
+
+    /*
+     *  Busy flag
+     */
+    TBool iBusy;
+    };
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::CurrentSlideIndex
+//------------------------------------------------------------------------------
+//
+TInt CSlideshowModel::CurrentSlideIndex() const
+    {
+    return iCurrentSlide;
+    }
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::SetCurrentSlideIndex
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::SetCurrentSlideIndex(TInt aIndex)
+    {
+    iCurrentSlide = aIndex;
+    }
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::NextSlideIndex
+//------------------------------------------------------------------------------
+//
+TInt CSlideshowModel::NextSlideIndex() const
+    {
+    return iNextSlide;
+    }
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::ResetSlideSequence
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::ResetSlideSequence()
+    {
+    iCurrentSlide = 0;
+    iNextSlide = -1;
+    }
+
+#endif   // C_CSLIDESHOWMODEL_H
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPlugin.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,361 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Implements the Slideshow plugin beef, especially
+*                MScreensaverPlugin interface
+*
+*/
+
+
+
+#ifndef C_SLIDESHOWPLUGIN_H
+#define C_SLIDESHOWPLUGIN_H
+
+#include <gdi.h>
+#include <coecntrl.h>
+#include <e32cmn.h>
+#include <coecobs.h>
+#include <AknsSrvClient.h>
+#include <ScreensaverpluginIntDef.h>
+#include <screensaverplugin.h>
+#include <ScreensaverInternalPSKeys.h>
+
+#include <MCLFOperationObserver.h>
+#include <MCLFContentListingEngine.h>
+#include <MCLFItemListModel.h>
+#include <mdesession.h>
+#include <mdequery.h>
+
+#include "SlideshowModel.h"
+#include "SlideshowSlide.h"
+#include "SlideshowPluginUtils.h"
+
+class CEikonEnv;
+class CDRMHelper;
+class CRepositoryWatcher;
+class CRepository;
+
+/**
+*  Encapsulates the Settings that are written into the central repository
+*  @lib ScreenSaverAnimPlugin.lib
+*  @since 3.1
+*/
+class CSlideshowSettings : public CBase
+    {
+public:
+    CSlideshowSettings();
+        
+public:
+    // Slideshow time
+    TInt iSlideshowTime;  
+    
+    // Lights time
+    TInt iLightsTime;
+
+    // Time a slide is displayed
+    TInt iSlideTime;
+
+    // Slideshow type
+    TInt iSlideshowType;
+    };
+       
+    
+/**
+*  Provides the Animated ScreenSaverPlugin functionality which implements
+*  ScreenSaver Interface and gives a Netscape Browser Plugin Interface
+*  to the format specific plugins like SVG, Flash, M3G etc.
+*  @lib ScreenSaverAnimPlugin.lib
+*  @since 3.1
+*/
+class CSlideshowPlugin: public CScreensaverPluginInterfaceDefinition,
+                        public MMdESessionObserver,
+                        public MMdEQueryObserver
+    {
+    enum TPluginState   
+        {
+        EPluginStateLoading = 0,
+        EPluginStateInitializing,
+        EPluginStateRunning,
+        EPluginStateStopping
+        };
+
+public: 
+    
+    /**
+     * Creator
+     * @since 3.1
+     */
+    static CSlideshowPlugin* NewL();
+    
+    /**
+     * Destructor
+     */
+    virtual ~CSlideshowPlugin();     
+
+private:
+    /**
+     * 2nd phase constructor
+     * @since 3.1
+     */
+    void ConstructL();
+
+    /**
+     * Default Constructor
+     * @since 3.1
+     */  
+    CSlideshowPlugin();
+
+public: // Functions From CScreensaverPluginInterfaceDefinition        
+        
+    /**
+     * From MScreensaverPlugin, Method called by Screensaver
+     * when plugin is being loaded into use
+     * @param aHost  Plugin host (Screensaver).
+     * @since 3.1
+     */
+    virtual TInt InitializeL(MScreensaverPluginHost *aHost);
+    
+    /**
+     * From MScreensaverPlugin, Method called by Screensaver 
+     * when plugin is allowed to draw
+     * @since 3.1
+     */
+    virtual TInt Draw( CWindowGc& aGc );
+    
+    /**
+     * From MScreensaverPlugin, Method called by Themes application
+     * to get localised name
+     * @since 3.1
+     */
+    virtual const TDesC16& Name() const;
+    
+    /**
+     * From MScreensaverPlugin, Method called by Screensaver
+     * to get the capabilities of screensaver plugin
+     * @since 3.1
+     */
+    virtual TInt Capabilities();
+    
+    /**
+     * From MScreensaverPlugin, Method called by Themes application
+     * to configure the plugin or to pass e.g. selection notifications
+     * to plugin
+     * @since 3.1
+     */
+    virtual TInt PluginFunction(
+        TScPluginCaps /* aFunction */,
+        TAny* /* aParam */ );
+
+    /**
+     * From MScreensaverPlugin, Method called by Screensaver
+     * when there are screensaver events, such as starting and stopping
+     * @since 3.1
+     */
+    virtual TInt HandleScreensaverEventL(
+        TScreensaverEvent aEvent,
+        TAny* aData );                           
+
+public: // from MMdESessionObserver
+    /**
+     * Called to notify the observer that opening the session has been 
+     * completed and, if the opening succeeded, the session is ready for use.
+     *
+     * @param aSession session
+     * @param aError   <code>KErrNone</code>, if opening the session succeeded;
+     *                 or one of the system-wide error codes, if opening the 
+     *                 session failed
+     */
+    void HandleSessionOpened(CMdESession& aSession, TInt aError);
+
+    /**
+     * Called to notify the observer about errors, which are not a direct 
+     * consequence of the operations initiated by the client but caused by 
+     * some external source (e.g., other clients). The error cannot be 
+     * recovered and all on-going operations initiated by the client have been 
+     * aborted. Any attempts to continue using the session will cause a panic. 
+     * The client should close the session immediately and try to open a new 
+     * session, if it needs to continue using the metadata engine.
+     *
+     * @param aSession session
+     * @param aError one of the system-wide error codes
+     */
+    void HandleSessionError(CMdESession& aSession, TInt aError);
+    
+public: // from MMdEQueryObserver
+    /**
+     * Called to notify the observer that new results have been received 
+     * in the query.
+     *
+     * @param aQuery              Query instance that received new results.
+     * @param aFirstNewItemIndex  Index of the first new item that was added
+     *                            to the result item array.
+     * @param aNewItemCount       Number of items added to the result item 
+     *                            array.
+     */
+    void HandleQueryNewResults(CMdEQuery& aQuery,
+                               TInt aFirstNewItemIndex,
+                               TInt aNewItemCount);
+
+    /**
+     * Called to notify the observer that the query has been completed,
+     * or that an error has occured.
+     *
+     * @param aQuery  Query instance.
+     * @param aError  <code>KErrNone</code>, if the query was completed
+     *                successfully. Otherwise one of the system-wide error 
+     *                codes.
+     */
+    void HandleQueryCompleted(CMdEQuery& aQuery, TInt aError);
+    
+public: // New Functions
+    
+    /**
+     * Reads the settings from the central repository
+     * @since 3.1
+     * @return System wide Error value
+     */
+    TInt ReadSettings();  
+
+#if 0
+    /**
+     * This method checks whether the set file exists currently
+     * if not, it updates the filename string
+     * This also checks if the rights are valid if the content is drm 
+     * if not, it updates the filename with the empty file name
+     * returns True, if the Filename is updated
+     *         False, otherwise
+     * @since 3.2
+     */
+     TBool UpdateFileName();
+#endif
+                
+    /**
+     * Called when there is a central repository settings change
+     * @since 3.2
+     */        
+    void HandleCRSettingsChange(TAny* aPtr);
+    
+    /**
+     * Called by the repository watcher when there is a central 
+     * repository settings change
+     * @since 3.2
+     */        
+    static TInt HandleRepositoryCallBack(TAny* aPtr);
+        
+    /**
+     * Called by the P & S subscriber when the subscribed key value changes
+     * @since 3.2
+     */  
+    static TInt HandleSettingsChanged(TAny* aPtr);
+    
+private: // New functions
+    
+    /**
+     * Connects the central repository session
+     * @since 3.1                
+     */
+    void InitializeCenRepL();      
+    
+    /**
+     * Registers for central repository key changes
+     * @since 3.1             
+     */
+    void NotifyCenrepChangeL();
+    
+    /**
+     * Cancels registration for central repository key changes
+     * @since 3.1               
+     */
+    void NotifyCenrepChangeCancel();
+        
+    /**
+     * Disconnects the central repository session
+     * @since 3.1            
+     */
+    void UnInitializeCenRep();
+
+    void StartPlugin();
+    void StopPlugin();
+    void DrawCentered(CWindowGc& aGc, CSlideshowSlide* aSlide);
+    void LoadSlidesL();
+    void LoadSlideSetL();
+    void LoadRandomSlidesL();
+    void SetDisplayMode();
+    void Lights(TInt aSecs);
+    void ConfigureL(TAny* aParam);
+    void UpdateDisplayInfo();
+    void FlushDrawBuffer();
+
+    TInt SettingsChanged();
+
+    void ConnectToMDSSessionL();
+    void WaitForMDS();
+    void EndWaitForMDS();
+    void LoadImagesToModel(const CMdEQuery& aQuery,
+                           TInt aFirstNewItemIndex = 0,
+                           TInt aNewItemCount = 0);
+    void AppendSlideToModelL(TDesC& aFileName, TBool aIsOnMC);
+    void OpenQueryL();
+    
+private:
+    // Pointer to the screensaver host
+    MScreensaverPluginHost* iHost;
+
+    // Display info
+    TScreensaverDisplayInfo iDi;
+
+    // Resource file offset
+    TInt iResourceOffset;   
+
+    // Handle to the central repository session
+    CRepository* iSlideshowRepository;        
+        
+    // Environment pointer                
+    CEikonEnv* iEikEnv;
+        
+    // Pointer to settings
+    CSlideshowSettings* iSettings;
+
+    // Slideshow model
+    CSlideshowModel* iModel;
+    
+    // Pointer to Drm Helper
+    CDRMHelper* iDrmHelper;
+        
+    // Cenrep watcher for settings change
+    CRepositoryWatcher* iSlideshowCRWatcher;
+    
+    RProperty iSettingsChangedProperty;
+    CPSSubscriber* iSettingsChangedSubscriber;
+            
+    // Localised name
+    HBufC* iScreensaverName;
+
+    // Waiter
+    CActiveSchedulerWait iWaiter;
+    TBool iWaitActive;
+
+    // Draw count
+    TInt iDrawCount;
+    TBool iTimerUpdated;
+
+    //loading state
+    TBool iIsLoadFinished;
+
+    // MDS session
+    CMdESession* iMdESession;
+    };  
+
+
+#endif // C_SLIDESHOWPLUGIN_H
+// End Of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPluginImpUID.hrh	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Defines the ECOM Implementation UIDs. 
+*
+*/
+
+
+
+
+
+#ifndef SLIDESHOWPLUGINIMPUID_HRH
+#define SLIDESHOWPLUGINIMPUID_HRH
+
+#define KSlideshowPluginImpUID 0x102823ED
+
+#endif // SLIDESHOWPLUGINIMPUID_HRH
+// End of File 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowPluginUtils.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,283 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   SlideshowPlugin utilities collection
+*
+*/
+
+
+
+#ifndef C_SLIDESHOWPLUGINUTILS_H
+#define C_SLIDESHOWPLUGINUTILS_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <cenrepnotifyhandler.h>
+#include <e32property.h>
+
+#include "SlideshowSlide.h"
+
+// FORWARD DECLARATIONS
+class CDRMHelper;
+class CCoeEnv;
+class CRepository;
+
+// CLASS DECLARATION
+
+/**
+* Central Repository Change watcher
+* @since 3.2
+* @internal
+*/    
+class CRepositoryWatcher : public CBase, public MCenRepNotifyHandlerCallback
+    {
+public:
+    static CRepositoryWatcher* NewL(
+        const TUid aUid,
+        const TUint32 aKey,
+        CCenRepNotifyHandler::TCenRepKeyType aKeyType,
+        TCallBack aCallBack,
+        CRepository* aRepository);
+
+    static CRepositoryWatcher* NewL(
+        const TUid aUid,
+        TCallBack aCallBack,
+        CRepository* aRepository);
+
+    ~CRepositoryWatcher();
+
+    TUint32 ChangedKey();
+
+public: // from MCenRepNotifyHandlerCallback
+    void HandleNotifyInt(TUint32 aKey, TInt aNewValue);
+    void HandleNotifyString(TUint32 aKey, const TDesC16& aNewValue);
+    void HandleNotifyGeneric(TUint32 aKey);
+    void HandleNotifyError(
+        TUint32 aKey, TInt aError, CCenRepNotifyHandler* aHandler);
+
+private:
+    CRepositoryWatcher(
+        const TUid aUid,
+        const TUint32 aKey,
+        TCallBack aCallBack,
+        CRepository* aRepository);
+
+    void ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType);
+
+    void ConstructL();
+
+private:
+    TUid iUid;
+    TUint32 iKey;
+    TUint32 iChangedKey;
+    TCallBack iCallBack;
+    CRepository* iRepository;
+    CCenRepNotifyHandler* iNotifyHandler;
+};    
+
+
+/**
+* Publish & Subscribe change subscriber
+* @since 3.2
+* @internal
+*/    
+class CPSSubscriber : public CActive
+    {
+public:
+    CPSSubscriber(TCallBack aCallBack, RProperty& aProperty);
+    ~CPSSubscriber();
+    
+public: // New functions
+    void SubscribeL();
+    void StopSubscribe();
+
+private: // from CActive
+    void RunL();
+    void DoCancel();
+
+private:
+    TCallBack   iCallBack;
+    RProperty&  iProperty;
+};
+
+
+// ========== UTILITIES CLASS =============================
+
+class SlideshowUtil
+    {
+public:
+    // Checks if memory card is present
+    static TBool IsMCPresent();
+
+    // Checks if the given file is on memory card
+    static TBool IsOnMC(TFileName aFile);
+
+    // Checks that the file has enough DRM rights to be displayed
+    static TBool DRMCheck(CDRMHelper *aDRMHelper, TDesC& aFileName);
+
+    // Checks that the slide has enough DRM rights to be displayed
+    static TBool DRMCheck(CDRMHelper *aDRMHelper, CSlideshowSlide* aSlide);
+
+    // Consumes the slide's DRM rights
+    static void DRMConsume(CDRMHelper* aDRMHelper, CSlideshowSlide* aSlide);
+    
+private:
+    /**
+     * Static class can not be instantiated.
+     */
+    SlideshowUtil();
+    //lint -esym(1526, SlideshowUtil::SlideshowUtil) Intentionally undefined
+
+    /**
+     * Static class can not be instantiated.
+     */
+    ~SlideshowUtil();
+    };
+
+
+// ========== LOGGING MACROS ===============================
+
+#ifdef USE_LOGGER
+
+#include <e32std.h>
+#include <e32def.h>
+#include <eikenv.h>
+#include <flogger.h>
+
+
+/* logging macros usage:
+
+// set logging on in mmp file...
+MACRO USE_LOGGER
+#ifdef WINS
+MACRO USE_RDEBUG
+#endif
+
+
+void CTestAppUi::ConstructL()
+{
+// creates log directory and log file on app startup.
+// prints starting banner...
+SCRLOGGER_CREATE;
+
+// entering to function...
+SCRLOGGER_ENTERFN("ConstructL()");
+
+TInt number = 42;
+TFileName file;
+file = "something" ....
+
+// print variable number of parameters...
+// Note: use _L macro for format string!
+SCRLOGGER_WRITEF(_L("SCR: number = %d, file = %S"), number, &file);
+
+// print just a string (no _L macro here!)
+SCRLOGGER_WRITE("Hello world!");
+
+// leave from function...
+SCRLOGGER_LEAVEFN("ConstructL()");
+}
+
+CTestAppUi::~CTestAppUi()
+{
+// print app exit banner when application exits.
+SCRLOGGER_DELETE;
+}
+
+*/
+
+#ifdef USE_RDEBUG
+
+_LIT(KSSPLogBanner, "SlideshowPlugin log start");
+_LIT(KSSPLogEnterFn, "SSP: enter --> %S");
+_LIT(KSSPLogLeaveFn, "SSP: leave <-- %S");
+_LIT(KSSPLogWrite, "SSP: %S");
+_LIT(KSSPLogTag, "SSP: ");
+_LIT(KSSPLogExit, "SlideshowPlugin log end");
+_LIT(KSSPLogTimeFormatString, "%H:%T:%S:%*C2");
+
+#define SSPLOGGER_CREATE             {RDebug::Print(KSSPLogBanner);}
+#define SSPLOGGER_DELETE             {RDebug::Print(KSSPLogExit);}
+#define SSPLOGGER_ENTERFN(a)         {_LIT(temp, a); RDebug::Print(KSSPLogEnterFn, &temp);}
+#define SSPLOGGER_LEAVEFN(a)         {_LIT(temp, a); RDebug::Print(KSSPLogLeaveFn, &temp);}
+#define SSPLOGGER_WRITE(a)           {_LIT(temp, a); RDebug::Print(KSSPLogWrite, &temp);}
+#define SSPLOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KSSPLogTimeFormatString); buffer.Insert(0, temp); buffer.Insert(0, KSSPLogTag); RDebug::Print(buffer); }
+#define SSPLOGGER_WRITEF             RDebug::Print
+
+#else
+
+_LIT(KSSPLogDir, "SSP");
+_LIT(KSSPLogFile, "SSP.txt");
+_LIT8(KSSPLogBanner, "SlideshowPlugin log start");
+_LIT8(KSSPLogEnterFn, "SSP: -> %S");
+_LIT8(KSSPLogLeaveFn, "SSP: <- %S");
+_LIT8(KSSPLogExit, "SlideshowPlugin log end");
+_LIT(KSSPLogTimeFormatString, "%H:%T:%S:%*C2");
+
+#define SSPLOGGER_CREATE             {FCreate();}
+#define SSPLOGGER_DELETE             {RFileLogger::Write(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, KSSPLogExit);}
+#define SSPLOGGER_ENTERFN(a)         {_LIT8(temp, a); RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, KSSPLogEnterFn, &temp);}
+#define SSPLOGGER_LEAVEFN(a)         {_LIT8(temp, a); RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, KSSPLogLeaveFn, &temp);}
+#define SSPLOGGER_WRITE(a)           {_LIT(temp, a); RFileLogger::Write(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, temp);}
+#define SSPLOGGER_WRITE_TIMESTAMP(a) {_LIT(temp, a); TTime time; time.HomeTime(); TBuf<256> buffer; time.FormatL(buffer, KSSPLogTimeFormatString); buffer.Insert(0, temp); RFileLogger::Write(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, buffer); }
+#define SSPLOGGER_WRITEF             FPrint
+
+inline void FPrint(const TRefByValue<const TDesC> aFmt, ...)
+    {
+    VA_LIST list;
+    VA_START(list, aFmt);
+    RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, aFmt, list);
+    }
+
+inline void FPrint(const TDesC& aDes)
+    {
+    RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, aDes);
+    }
+
+inline void FHex(const TUint8* aPtr, TInt aLen)
+    {
+    RFileLogger::HexDump(KSSPLogDir, KSSPLogFile, EFileLoggingModeAppend, 0, 0, aPtr, aLen);
+    }
+
+inline void FHex(const TDesC8& aDes)
+    {
+    FHex(aDes.Ptr(), aDes.Length());
+    }
+
+inline void FCreate()
+    {
+    TFileName path(_L("c:\\logs\\"));
+    path.Append(KSSPLogDir);
+    path.Append(_L("\\"));
+    RFs& fs = CEikonEnv::Static()->FsSession();
+    fs.MkDirAll(path);
+    RFileLogger::WriteFormat(KSSPLogDir, KSSPLogFile, EFileLoggingModeOverwrite, KSSPLogBanner);
+    }
+
+#endif // USE_RDEBUG
+
+#else // USE_LOGGER
+
+inline void FPrint(const TRefByValue<const TDesC> /*aFmt*/, ...) { };
+
+#define SSPLOGGER_CREATE
+#define SSPLOGGER_DELETE
+#define SSPLOGGER_ENTERFN(a)
+#define SSPLOGGER_LEAVEFN(a)
+#define SSPLOGGER_WRITE(a)
+#define SSPLOGGER_WRITEF 1 ? ((void)0) : FPrint
+#define SSPLOGGER_WRITE_TIMESTAMP(a)
+
+#endif // USE_LOGGER
+
+#endif // C_SLIDESHOWPLUGINUTILS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowSlide.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,112 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Stores a single slide
+*
+*/
+
+
+
+#ifndef C_SLIDESHOWSLIDE_H
+#define C_SLIDESHOWSLIDE_H
+
+//  INCLUDES
+#include <e32base.h>  // e32def, e32std
+#include <e32cmn.h>
+#include <fbs.h>
+
+#include "SlideshowSlideLoader.h"
+
+//  CONSTANTS
+
+// Leave code when a slide is on memory card and the card is not present
+const TInt KSSTryLater = (-100);
+
+//  MACROS
+
+// Item flags
+#define SSS_NONE        	0x00
+#define SSS_IMAGELOADED 	0x01
+#define SSS_ISONMC      	0x02
+#define SSS_DECODEFAILED    0x04
+
+
+//  DATA TYPES  
+
+//  EXTERNAL DATA STRUCTURES  
+
+//  FUNCTION PROTOTYPES
+
+//  FORWARD DECLARATIONS
+
+//  CLASS DEFINITIONS 
+class CSlideshowSlide : public CBase
+    {
+public:
+    // Creator
+    static CSlideshowSlide* NewL(TDesC& aFileName, TBool aIsOnMC = EFalse);
+
+    // Destructor
+    virtual ~CSlideshowSlide();
+      
+    // Is decoding is in progress
+    TBool IsDecodingInProgress();
+    
+    // Could not decode the file
+    TBool CouldNotDecodeFile();
+    
+    //
+    friend class CSlideshowSlideLoader;
+private:
+
+    // Default constructor
+    CSlideshowSlide(TBool aIsOnMC);
+
+    // 2-phase
+    void ConstructL(TDesC& aFileName);
+
+public:
+
+    // Prepares slide (loads image)
+    void PrepareSlideL(const TSize& aTargetSize);
+
+    // Get image
+    CFbsBitmap* Image() const { return iImage; }
+
+    // Get filename
+    HBufC* FileName() const { return iFileName; }
+    
+    // Release image
+    void ReleaseImage();
+    
+    // Get flags
+    TInt Flags() const { return iFlags; }
+    
+    // Is slide decoded completely
+    TBool IsSlideDecoded();
+    
+protected:
+	//Empty
+private:
+    // Type flags
+    TInt iFlags;
+
+    // Image
+    CFbsBitmap* iImage; 
+
+    // Filename
+    HBufC* iFileName;
+    CSlideshowSlideLoader *iSlideLoader;
+    };
+
+#endif  // C_SLIDESHOWSLIDE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/inc/SlideshowSlideLoader.h	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Loads a slide from file
+*
+*/
+
+
+
+#ifndef C_SLIDESHOWSLIDELOADER_H
+#define C_SLIDESHOWSLIDELOADER_H
+
+#include <e32std.h>
+#include <fbs.h>
+#include <f32file.h>
+#include <bautils.h>
+#include <coemain.h>
+#include <e32base.h>
+#include <bitstd.h>
+#include <imageconversion.h>
+
+class CSlideshowSlide;
+class CSlideshowSlideLoader : public CActive
+    {
+public: 
+	// Creator
+	static CSlideshowSlideLoader* NewL(CSlideshowSlide *aSlide);
+	
+	// Called when image decoding done
+	void RunL();
+	
+	// Called if user calls Cancel() on active object
+	void DoCancel();
+	
+	//virtual distructor
+	virtual ~CSlideshowSlideLoader();
+	
+	//start decoding the slide
+	void LoadSlideL(const TDesC& aFilename, const TSize& aTargetSize);
+	
+private:
+	
+	// Default constructor
+	CSlideshowSlideLoader(CSlideshowSlide *aSlide);
+	
+	//Two Phase constructor
+	void ConstructL();
+	
+	//Delete the Decoder object
+	void DeleteDecoder();
+	
+	//From CActive
+	TInt RunError(TInt aError);
+	
+private:
+   
+	// Target size (Phone screen size)
+    TSize iTargetSize;
+    //Bitmap size
+    TSize iBitmapsize;
+    //Decoder
+    CImageDecoder * iDecoder;
+    //Slide
+    CSlideshowSlide * iSlide;
+   
+    };
+
+#endif  // C_SLIDESHOWSLIDELOADER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/loc/slideshowplugin.loc	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Localization strings for Slideshow screensaver
+*
+*/
+
+
+
+
+
+//d: Screensaver name
+//d: Displayed in Themes application screensaver list
+//l: list_set_graphic_pane_t1
+//w:
+//r:3.2
+#define qtn_slideshow_screensaver_name "Slideshow"
+
+//d: Title Pane String
+//d: Displayed in the title Pane when settings dialog is displayed.
+//l: title_pane_1 
+//w:
+//r:3.2
+#define qtn_sanim_title_settings "Settings" 
+
+// Taken from errorres.loc 
+// d: Generic error note to be displayed when user tries to  
+// d: use some feature which is not supported 
+// l: popup_note_window_1_four_rows
+// w: Errorres
+// r: 3.2
+#define qtn_err_not_supp "Feature is not supported"
+
+// d: error note to be displayed when user tries to  
+// d: select some file which is corrupted 
+// l: popup_note_window/opt2
+// w:
+// r:3.2
+#define qtn_sanim_error_wrong_format "File is corrupted or wrong format"
+
+// d: error note to be displayed when user hasnt  
+// d: selected a file
+// l: popup_note_window/opt2
+// w:
+// r:3.2
+#define qtn_sanim_file_not_selected "File not Selected"
+
+// d: error note to be displayed when animation couldnot 
+// d: be played as a screensaver
+// l: popup_note_window_1_four_rows
+// w:
+// r:3.2
+#define qtn_err_failure "Unable to perform operation"
+
+// d: error note to be displayed when animation couldnot 
+// d: be set as a screensaver
+// l: popup_note_window_1_four_rows
+// w:
+// r:3.2
+#define qtn_drm_prev_rights_set "Unable to select.Object can only be viewed"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/rom/SlideshowPlugin.iby	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     IBY file for Slideshowplugin.dll
+*
+*/
+
+
+
+
+#ifndef SLIDESHOWPLUGIN_IBY
+#define SLIDESHOWPLUGIN_IBY
+
+#ifdef __SLIDESHOW_SCREENSAVER
+ECOM_PLUGIN(SlideshowPlugin.dll, 102823EC.rsc)
+#endif
+
+#endif // SLIDESHOWPLUGIN_IBY
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/rom/SlideshowPluginResources.iby	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     IBY file for SlideshowPlugin resources
+*
+*/
+
+
+
+
+#ifndef SLIDESHOWPLUGINRESOURCES_IBY
+#define SLIDESHOWPLUGINRESOURCES_IBY
+
+#ifdef __SLIDESHOW_SCREENSAVER
+data=DATAZ_\RESOURCE_FILES_DIR\SlideshowPlugin.rsc    RESOURCE_FILES_DIR\SlideshowPlugin.rsc
+#endif
+
+#endif // SLIDESHOWPLUGINRESOURCES_IBY
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowModel.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,441 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Takes care of storing and serving the slides
+*               to Slideshow plugin
+*
+*/
+
+
+#include <e32math.h>
+#include <eikenv.h>
+#include <bautils.h>
+
+#include "SlideshowModel.h"
+#include "SlideshowPluginUtils.h"
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::NewL
+//------------------------------------------------------------------------------
+//
+CSlideshowModel* CSlideshowModel::NewL()
+    {
+    CSlideshowModel* self = new (ELeave) CSlideshowModel();
+    
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    
+    return self;
+    }
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::~CSlideshowModel
+//------------------------------------------------------------------------------
+//
+CSlideshowModel::~CSlideshowModel()
+    {
+    // Delete slide array
+    if (iSlides)
+        {
+        iSlides->ResetAndDestroy();
+        }
+    delete iSlides;
+    }
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::CSlideshowModel
+//------------------------------------------------------------------------------
+//
+CSlideshowModel::CSlideshowModel()
+    : iNextSlide(-1)
+    {
+    }
+
+    
+//------------------------------------------------------------------------------
+// CSlideshowModel::ConstructL
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::ConstructL()
+    {
+    // Create slide array
+    iSlides = new(ELeave) CArrayPtrFlat<CSlideshowSlide>(
+        KSlideshowSlideArrayGranularity);
+
+    //Get random seed
+    TTime time;
+    time.HomeTime();
+    iRandSeed = time.Int64();
+    }
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::NumberOfSlides
+//------------------------------------------------------------------------------
+//
+TInt CSlideshowModel::NumberOfSlides() const
+    {
+    //if the slide array is not NULL, return it's size
+    return iSlides ? iSlides->Count() : 0;
+    }
+    
+  
+//------------------------------------------------------------------------------
+// CSlideshowModel::AppendSlideL
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::AppendSlideL(CSlideshowSlide* aSlide)
+    {
+    // Sanity check
+    if (!iSlides)
+        {
+        ASSERT(EFalse);
+        return;
+        }
+
+    // Stash it in
+    iSlides->AppendL(aSlide);
+    }
+
+    
+//------------------------------------------------------------------------------
+// CSlideshowModel::InsertSlideL
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::InsertSlideL(TInt aIndex, CSlideshowSlide* aSlide)
+    {
+    if ((iSlides) && (aIndex >= 0) && (aIndex <= NumberOfSlides()))
+        {
+        // Squeeze it in
+        iSlides->InsertL(aIndex, aSlide);
+        }
+    else
+        {
+        ASSERT(EFalse);
+        }
+    }
+    
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::DeleteSlide
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::DeleteSlide(TInt aIndex)
+    {
+    //Sanity check
+    if ((iSlides) && (aIndex >= 0) && (aIndex <= NumberOfSlides()))
+        {
+        // Grab hold of the slide for deletion, remove from array
+        // and compress the array
+        CSlideshowSlide* ptr = iSlides->At(aIndex);
+        
+        iSlides->Delete(aIndex);
+        delete ptr;
+        iSlides->Compress();
+        
+        }
+    else
+        {
+        ASSERT(EFalse);
+        }
+    }
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::DeleteAll
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::DeleteAll()
+    {
+    //Sanity check
+    if (iSlides)
+        {
+        iSlides->ResetAndDestroy();
+        }
+    
+    iCurrentSlide = 0;
+    iNextSlide = -1;
+    }
+
+    
+//------------------------------------------------------------------------------
+// CSlideshowModel::SlideAt
+//------------------------------------------------------------------------------
+//
+CSlideshowSlide* CSlideshowModel::SlideAt(TInt aIndex) const
+    {
+    if ((iSlides) && (aIndex >= 0) && (aIndex < NumberOfSlides()))
+        {
+        //return the postion object
+        return iSlides->At(aIndex);
+        }
+    else
+        {
+        return NULL;
+        }
+    }
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::NextSlide
+//------------------------------------------------------------------------------
+//
+CSlideshowSlide* CSlideshowModel::NextSlide(TBool /*aRandom */)
+    {
+    if (iNextSlide < 0)
+        {
+        // Next slide could not be prepared, or preparenextslide not called
+        return NULL;
+        }
+    
+    CSlideshowSlide* pSlide = SlideAt(iNextSlide);
+
+    if (!pSlide)
+        {
+        // Apparently there are no more slides - wrap around
+        iCurrentSlide = -1;
+        iNextSlide = 0;
+        pSlide = SlideAt(iNextSlide);
+        }
+
+    iCurrentSlide = iNextSlide;
+    return pSlide;
+    }
+
+    
+//------------------------------------------------------------------------------
+// CSlideshowModel::PrepareNextSlide
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::PrepareNextSlide(TBool aRandom, const TSize& aTargetSize)
+    {
+    SSPLOGGER_WRITE("Model::PrepareNextSlide(), model busy");
+    
+    SSPLOGGER_WRITEF(_L("SPP: iCurrentSlide %d, iNextSlide %d"),
+                     iCurrentSlide, iNextSlide);
+    
+    TBool slideOK = EFalse;
+    while (!slideOK)
+        {
+        TInt nSlides = NumberOfSlides();
+        // Any point in continuing?
+        if (nSlides == 0)
+            {
+            iNextSlide = -1;
+            break;
+            }
+
+        // Special cases, 1 or 2 slides only
+        if (nSlides == 1)
+            {
+            iNextSlide = 0;
+            SSPLOGGER_WRITEF(_L("SPP: One slide, next slide %d"), iNextSlide);
+            }
+        else if (nSlides == 2)
+            {
+            // Switch between slides even if random
+            iNextSlide = (iNextSlide == 0 ? 1 : 0);
+            SSPLOGGER_WRITEF(_L("SPP: 2 slides, next slide %d"), iNextSlide);            
+            }
+        else
+            {
+            // We got at least 3 slides, and can also do random
+            if (aRandom)
+                {
+                // Make sure we won't pick the same slide  
+                do
+                    {
+                    iNextSlide = Random(nSlides - 1);                    
+                    }
+                while (iNextSlide == iCurrentSlide);
+
+                SSPLOGGER_WRITEF(_L("SPP: Random, next slide %d"), iNextSlide);
+                }
+            else
+                {
+                iNextSlide++;
+
+                // Wrap?
+                if (iNextSlide >= nSlides)
+                    {
+                    SSPLOGGER_WRITE("Wrapping...");
+                    iNextSlide = 0;
+                    }
+                SSPLOGGER_WRITEF(_L("SPP: Continuous, next slide %d"),
+                                 iNextSlide);
+                }
+            }
+
+        // Get the slide
+        CSlideshowSlide* pSlide = SlideAt(iNextSlide);
+
+        if (!pSlide)
+            {
+            // Should not have happened - start from beginning
+            iNextSlide = 0;
+            SSPLOGGER_WRITEF(_L("SPP: Wrapping, next slide %d"),
+                    	iNextSlide);
+            pSlide = SlideAt(iNextSlide);
+            }
+
+        if (pSlide)
+            {
+            // Try loading the image, if image does not already exist
+            if (!pSlide->IsSlideDecoded())
+                {
+                SSPLOGGER_WRITE("Preparing next slide");
+               	if(iCurrentSlide != iNextSlide)
+                	{
+                	// relese currently deleted image from RAM.( We dont have caching)
+                	ReleaseCurrentSlide();
+               	    }
+               	if ((TInt)ETrue == pSlide->CouldNotDecodeFile())
+               		{
+               		// could not decode this file last time. so delete this slide from the 
+               		// list of slide and go to the next one.
+               		DeleteSlide(iNextSlide);
+                    iNextSlide--;
+                    continue;
+               		}
+                TRAPD(err, pSlide->PrepareSlideL(aTargetSize));
+                if (err == KErrNone)
+                	{
+                    //wait for slide to load.
+                	iCurrentSlide = iNextSlide;
+                    SSPLOGGER_WRITE("Started Decoding Wait");                    
+                    break;
+                    }
+                else
+                    {
+                    // Apparently the file was not a loadable image -
+                    // remove from slideset and try again
+                    SSPLOGGER_WRITEF(_L("SSP: Deleting slide %d"), iNextSlide);                    
+                    DeleteSlide(iNextSlide);
+                    iNextSlide--;
+                    continue; // can not load this image, go to the next one.
+                    }
+                }
+             else
+                {
+                // Slide is already decoded. This is cool, if the file is
+                // still there. Otherwise lose image and go on.
+                // should not come here as we dont any caching 
+                SSPLOGGER_WRITEF(_L("Slide %d already has image"), iNextSlide);
+
+                if (!BaflUtils::FileExists(CEikonEnv::Static()->FsSession(), 
+                    *(pSlide->FileName())))
+                    {
+                    SSPLOGGER_WRITE("Slide image file gone, dropping image");
+                    pSlide->ReleaseImage();
+                    continue; // continue with next image
+                    }
+                else
+                	{
+                	if(iCurrentSlide != iNextSlide)
+                		{
+                		ReleaseCurrentSlide();
+               	     	}
+                     break;
+                	}
+               }
+           }
+        }
+    SSPLOGGER_WRITE("Model::PrepareNextSlide() end, model no longer busy");    
+    }
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::ReleaseCurrentSlide
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::ReleaseCurrentSlide()
+	{
+	CSlideshowSlide* pSlide = SlideAt(iCurrentSlide);
+	if(pSlide)
+		{
+		pSlide->ReleaseImage();
+		}
+	}
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::ReleaseNextSlide
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::ReleaseNextSlide()
+    {
+    CSlideshowSlide* pSlide = SlideAt(iNextSlide);
+    if(pSlide)
+		{
+		pSlide->ReleaseImage();
+		}
+    iNextSlide --;
+    }
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::SetReserveL
+//------------------------------------------------------------------------------
+//
+void CSlideshowModel::SetReserveL(TInt aCount)
+    {
+    if ((iSlides) && (aCount >= NumberOfSlides()))
+        {
+        iSlides->SetReserveL(aCount);
+        }
+    }
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::SlideStatus
+//------------------------------------------------------------------------------
+//
+TInt CSlideshowModel::SlideStatus(CSlideshowSlide* aSlide)
+	{
+	 if(!aSlide)
+		 {
+		 return KStatusNoSlide;
+		 }
+	 else if(aSlide->IsSlideDecoded())
+		 {
+		 return KStatusSlideDecoded;
+		 }
+	 else if(aSlide->IsDecodingInProgress())
+		 {
+		 return KStatusDecodingInProgress;
+		 }
+	 else if (aSlide->CouldNotDecodeFile())
+		 {
+		 return KStatusSlideDecodeingFailed;
+		 }
+		 
+	 return KStatusSlideNotDecoding;
+	}
+    
+
+
+//------------------------------------------------------------------------------
+// CSlideshowModel::Random
+//------------------------------------------------------------------------------
+//
+TInt CSlideshowModel::Random(TInt aMax, TInt aMin /* = 0 */)
+    {
+    TInt range = aMax - aMin;
+    TInt rand = Math::Rand(iRandSeed);  
+    return (rand % range);
+    }
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPlugin.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,1124 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   This file implements the Slideshow Screensaver plugin.
+*
+*/
+
+
+
+#include <eikenv.h>
+#include <bautils.h>
+#include <data_caging_path_literals.hrh>
+#include <centralrepository.h>
+#include <DRMHelper.h>
+
+// #include <aknnotewrappers.h> AppendSlideL
+// #include <aknnavi.h>
+// #include <aknnavide.h>
+// #include <mmfcontrollerpluginresolver.h>
+#include <DRMHelperServerInternalCRKeys.h>
+#include <mmf/common/mmfcontrollerpluginresolver.h> // For CleanupResetAndDestroyPushL
+#include <pslninternalcrkeys.h>
+#include <pslnslidesetdialoginterface.h>
+
+// #include <NPNExtensions.h>
+#include <coecntrl.h>
+#include <ecom/ecom.h>
+
+#include <ContentListingFactory.h>
+#include <mdeobjectdef.h>
+#include <mdelogiccondition.h>
+#include <mdenamespacedef.h>
+#include <mdeconstants.h>
+#include <mdeobjectquery.h>
+
+#include <slideshowplugin.rsg>
+
+#include "SlideshowPlugin.h"
+#include "SlideshowSlide.h"
+#include "SlideshowPluginUtils.h"
+
+// Constants
+const TInt KSecsToMicros = 1000000;
+const TUint KDefaultRandomLoadingNumber = 100;
+
+// Slideshow duration times (secs)
+const TInt KMinSlideshowTime = 1;
+const TInt KMaxSlideshowTime = 60;
+const TInt KDefaultSlideshowTime = 5;
+
+// Backlight times (secs)
+const TInt KMinLightsTime = 0;
+const TInt KMaxLightsTime = 30;
+const TInt KDefaultLightsTime = 0;
+
+// Slide times 
+// const TInt KMinSlideTime = 1;
+// const TInt KMaxSlideTime = 30;
+const TInt KDefaultSlideTime = 5;
+
+// Refresh interval (Draw() call frequency) in secs.
+// For better resolution kept smaller than slide time
+const TInt KRefreshInterval = 1;
+
+// Slideshow type
+const TInt KSlideshowTypeContinuous = 0;
+const TInt KSlideshowTypeRandom = 1;
+
+// const TInt KScreensaverAnimPluginInterfaceUid = 0x102750CB;
+
+_LIT(KResourceFileName, "Z:SlideshowPlugin.rsc");
+
+
+CSlideshowSettings::CSlideshowSettings()
+    {
+    iSlideshowTime = KDefaultSlideshowTime;
+    iLightsTime = KDefaultLightsTime;
+    iSlideTime = KDefaultSlideTime;
+    iSlideshowType = KSlideshowTypeContinuous;
+    }
+
+// ============================ MEMBER FUNCTIONS =============================
+
+
+// ---------------------------------------------------------------------------
+// CSlideshowPlugin::NewL
+// ---------------------------------------------------------------------------
+//
+CSlideshowPlugin* CSlideshowPlugin::NewL()
+    {
+    CSlideshowPlugin* self = new (ELeave) CSlideshowPlugin;
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+
+// ----------------------------------------------------------------------------
+// CSlideshowPlugin::~CSlideshowPlugin
+// ----------------------------------------------------------------------------
+//   
+CSlideshowPlugin::~CSlideshowPlugin()
+    {    
+    if (iResourceOffset != 0)
+        {
+        iEikEnv->DeleteResourceFile(iResourceOffset);
+        }
+
+    // Close and delete CR handlers
+    NotifyCenrepChangeCancel();
+    UnInitializeCenRep();
+
+    // Close and delete P&S handlers
+    if (iSettingsChangedSubscriber)
+        {
+        iSettingsChangedSubscriber->StopSubscribe();
+        }
+    iSettingsChangedProperty.Close();
+    delete iSettingsChangedSubscriber;
+    
+    delete iScreensaverName;
+    delete iSettings;
+    delete iDrmHelper;
+    delete iModel;
+
+    // First model, then engine, otherwise bad things happen
+    delete iMdESession;
+    
+    // Logging done
+    SSPLOGGER_DELETE;
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::ConstructL
+// -----------------------------------------------------------------------------
+//    
+void CSlideshowPlugin::ConstructL()
+    {
+    // Start logging
+    SSPLOGGER_CREATE;
+    
+    iModel = CSlideshowModel::NewL();
+    iSettings = new (ELeave) CSlideshowSettings();
+
+    // Get nearest language resource file and add it to the
+    // eikon environment for the duration of the plugin life
+    TFileName fileName;
+    TParse lParse;
+    
+    // Add the resource dir
+    lParse.Set(KResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL);
+    
+    // Get the filename with full path
+    fileName = lParse.FullName();
+
+    iEikEnv = CEikonEnv::Static();
+
+    BaflUtils::NearestLanguageFile(iEikEnv->FsSession(), fileName);
+        
+    iResourceOffset = iEikEnv->AddResourceFileL(fileName);
+
+    // Load localised name of screensaver to be returned 
+    // to Themes app in Name() query
+    iScreensaverName = iEikEnv->AllocReadResourceL(R_SLIDESHOW_SCREENSAVER_NAME);
+
+    InitializeCenRepL();
+
+    // Read settings
+    ReadSettings();
+ 
+    iTimerUpdated = EFalse;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::CSlideshowPlugin
+// -----------------------------------------------------------------------------
+CSlideshowPlugin::CSlideshowPlugin()
+    {
+    }
+
+
+// --- MScreensaverPlugin ---
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::InitializeL
+// -----------------------------------------------------------------------------
+TInt CSlideshowPlugin::InitializeL(MScreensaverPluginHost *aHost)
+    {
+    SSPLOGGER_ENTERFN("InitializeL()");
+
+    iWaitActive = EFalse;
+    iDrawCount = 0;
+
+    if (!aHost)
+        {
+        return KErrArgument;
+        }
+
+    iHost = aHost;   
+    // iHost->UseRefreshTimer( EFalse );
+
+    NotifyCenrepChangeL();
+
+    // No indicators while plugin running
+    iHost->OverrideStandardIndicators();    
+    
+    // Get display info
+    UpdateDisplayInfo();
+
+    // Attach and start watching settings changed key
+    User::LeaveIfError(iSettingsChangedProperty.Attach(
+        KPSUidScreenSaver, KScreenSaverPluginSettingsChanged));
+
+    iSettingsChangedSubscriber = new (ELeave) CPSSubscriber(
+        TCallBack(HandleSettingsChanged, this), iSettingsChangedProperty);
+    iSettingsChangedSubscriber->SubscribeL();
+    
+    iDrmHelper = CDRMHelper::NewL(*iEikEnv);
+    
+    // Load slides on start rather than here
+    // LoadSlidesL();
+
+    SSPLOGGER_LEAVEFN("InitializeL()");
+    
+    return KErrNone;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::Draw
+// -----------------------------------------------------------------------------
+TInt CSlideshowPlugin::Draw(CWindowGc& aGc)
+    {
+    SSPLOGGER_ENTERFN("Draw()");
+    
+    // Clear the screen on the very first draw call after starting
+    if (iDrawCount < 0)
+        {
+        iDrawCount = 0;
+        aGc.SetBrushColor(KRgbBlack);
+        aGc.Clear();
+        }
+    
+    // If still waiting for CLF, bail out
+    if (iWaitActive)
+        {
+        SSPLOGGER_WRITE("Draw(): Waiting for CLF, bail out");
+        SSPLOGGER_LEAVEFN("Draw()");
+        return KErrNone;
+        }
+    // Make sure we have something to display
+    if (iModel->NumberOfSlides() == 0 && iIsLoadFinished ) 
+    	{
+    	iHost->RevertToDefaultSaver();
+        SSPLOGGER_WRITE("Draw(): Nothing to display, suspending");
+        SSPLOGGER_LEAVEFN("Draw()");
+//        iHost->Suspend( -1 ); // This place will be crashed when transform to default type
+        return KErrNone;
+        }
+    
+    CSlideshowSlide* pSlide = iModel->NextSlide(EFalse);
+   // get the status of the slide
+    TInt status = iModel->SlideStatus(pSlide); // TInt   decoded(1), decoding(2), not decoding(3),no slide (0)
+    											// 4 could not decode the slide
+    if(KStatusDecodingInProgress == status) 
+    	{
+    	// decoding in progress... return
+    	// when ever decoding is going on.. call draw method every 1 second to check the status of the decoding
+    	// and draw the image as soon as it is available ( otherwise Draw is called every 5 secods, very bad user responce)
+    	if(iTimerUpdated)
+    		{
+    		iHost->SetRefreshTimerValue(KSecsToMicros);
+    		iTimerUpdated = EFalse;
+    		}
+    	return KErrNone;
+      	}
+    else if (KStatusSlideDecoded == status)
+    	{
+    	// File was decoded properly and available
+    	SSPLOGGER_WRITEF(_L("SSP: Draw(): Got slide (%x), drawing"), pSlide);
+
+    	// Consume slide's DRM rights
+    	SlideshowUtil::DRMConsume(iDrmHelper, pSlide);
+          
+    	// Make sure the window is empty in case the bitmap doesn't
+    	// fill the whole screen. Draw background black
+    	aGc.SetBrushColor(KRgbBlack);
+    	// aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+    	aGc.Clear();
+    	// Draw image centered
+    	DrawCentered(aGc, pSlide);
+    	if(iHost && !iTimerUpdated)
+        	{
+        	iHost->SetRefreshTimerValue(iSettings->iSlideTime * KSecsToMicros);
+        	iTimerUpdated = ETrue;
+        	}
+    	// Flush draw buffer so that the new image is displayed immediately
+    	FlushDrawBuffer();
+    	SSPLOGGER_WRITE("Draw(): Prepare next slide");
+
+    	SSPLOGGER_LEAVEFN("Draw()");
+    	}
+    
+    // Prefetch image for the next slide
+    iModel->PrepareNextSlide(
+            (iSettings->iSlideshowType == KSlideshowTypeRandom), iDi.iRect.Size());
+    
+    SSPLOGGER_LEAVEFN("Draw()");
+
+    return KErrNone;
+    	
+  }
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::Name
+// -----------------------------------------------------------------------------
+const TDesC16& CSlideshowPlugin::Name() const
+    {
+    if (iScreensaverName)
+        {
+        return *iScreensaverName;
+        }
+    else
+        {
+        return KNullDesC;
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::Capabilities
+// -----------------------------------------------------------------------------
+TInt CSlideshowPlugin::Capabilities()
+    {
+    return (EScpCapsConfigure | EScpCapsSelectionNotification);
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::PluginFunction
+// -----------------------------------------------------------------------------
+TInt CSlideshowPlugin::PluginFunction(
+    TScPluginCaps aFunction,
+    TAny* aParam)
+    {
+    TInt ret = KErrNone;
+    
+    switch (aFunction)
+        {
+        case EScpCapsSelectionNotification:
+        case EScpCapsPreviewNotification:
+        // Peek into the slideset
+        TRAP(ret, LoadSlidesL());
+	    if (ret!=KErrNone || iModel->NumberOfSlides() == 0)
+            {
+            SSPLOGGER_WRITE("No slides selected - launching settings");
+            TRAP(ret, ConfigureL(aParam));
+            // Check if at least one file is selected    
+            ReadSettings();// update the key value of KThemesScreenSaverSlideSetType
+            TRAP(ret, LoadSlidesL());
+            if ( ret == KErrNone && iModel->NumberOfSlides() == 0)
+                {
+                // Don't Pop an error note, just return error
+                return KErrCancel;          
+                }   
+            }
+            break;      
+        case EScpCapsConfigure:
+            // Configure command
+            TRAP(ret, ConfigureL(aParam));
+            break;
+        default:
+            break;
+        }
+    
+    return ret;
+    }  
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::HandleScreensaverEventL
+// -----------------------------------------------------------------------------
+TInt CSlideshowPlugin::HandleScreensaverEventL(
+    TScreensaverEvent aEvent,
+    TAny* /*aData*/ )
+    {
+    switch (aEvent)
+        {
+        case EScreensaverEventStopping:
+            StopPlugin();
+            break;
+            
+        case EScreensaverEventStarting:
+            StartPlugin();
+            break;
+            
+        case EScreensaverEventDisplayChanged:
+            UpdateDisplayInfo();
+            break;
+
+        case EScreensaverEventTimeout:
+            StopPlugin();
+            iHost->Suspend(-1);
+            break;
+        
+        default:
+            break;
+        }
+    return KErrNone;
+    }  
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::ReadSettings
+// -----------------------------------------------------------------------------
+TInt CSlideshowPlugin::ReadSettings()
+    {
+    
+    TInt err = KErrNone;
+    
+    err = iSlideshowRepository->Get(
+        KThemesScreenSaverSlideSetDuration,
+        iSettings->iSlideshowTime);
+                          
+    if ((iSettings->iSlideshowTime < KMinSlideshowTime) ||
+        (iSettings->iSlideshowTime > KMaxSlideshowTime))
+        {
+        // Out of range, set to default
+        iSettings->iSlideshowTime = KDefaultSlideshowTime;
+        }
+    
+    err = iSlideshowRepository->Get(
+        KThemesScreenSaverSlideSetBacklight,
+        iSettings->iLightsTime);
+
+    if ((iSettings->iLightsTime < KMinLightsTime) ||
+        (iSettings->iLightsTime > KMaxLightsTime))
+        {
+        // Out of range, set to default
+        iSettings->iLightsTime = KDefaultLightsTime;
+        }
+
+    err = iSlideshowRepository->Get(
+        KThemesScreenSaverSlideSetType,
+        iSettings->iSlideshowType);
+
+    // No setting for slide timing
+    iSettings->iSlideTime = KDefaultSlideTime;
+
+    return err;             
+    }
+
+#if 0
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::UpdateFileName
+// -----------------------------------------------------------------------------
+//      
+TBool CSlideshowPlugin::UpdateFileName()
+    {
+    if ( !BaflUtils::FileExists( iEikEnv->FsSession(), 
+                                iSettings->iFileName  ) )
+        {
+        // File is deleted now, Show empty string
+        iSettings->iFileName.Copy( KEmptyString );        
+        return ETrue;
+        }
+    
+    TBool canbeautomated(EFalse);   
+
+    TInt res = 0;
+    iDrmHelper->SetAutomatedType( 
+                   CDRMHelper::EAutomatedTypeScreenSaver );
+    res = iDrmHelper->CanSetAutomated( iSettings->iFileName, 
+                                       canbeautomated );
+
+    if ( res || !canbeautomated)
+        {
+        iSettings->iFileName.Copy( KEmptyString );
+        return ETrue;
+        }
+    return EFalse;
+    }
+
+#endif      
+    
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::HandleRepositoryCallBack
+// -----------------------------------------------------------------------------
+//                
+TInt CSlideshowPlugin::HandleRepositoryCallBack(TAny* aPtr)    
+    {
+    STATIC_CAST(CSlideshowPlugin*, aPtr)->HandleCRSettingsChange(aPtr);
+    return KErrNone;
+    }
+    
+    
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::HandleCRSettingsChange
+// -----------------------------------------------------------------------------
+//                
+void CSlideshowPlugin::HandleCRSettingsChange(TAny* /*aPtr*/)    
+    {    
+    if (iSlideshowCRWatcher)
+        {
+        TInt changedKey = iSlideshowCRWatcher->ChangedKey();
+        
+        switch (changedKey)
+            {
+            case KThemesScreenSaverSlideSetType:
+            case KThemesScreenSaverSlideSetBacklight:
+            case KThemesScreenSaverSlideSetDuration:
+                // Update settings
+                ReadSettings();
+                break;
+                
+            default:
+                // Not interested in other keys
+                break;
+            }
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::HandleSettingsChanged
+// -----------------------------------------------------------------------------
+//                
+TInt CSlideshowPlugin::HandleSettingsChanged(TAny* aPtr)    
+    {    
+    return (STATIC_CAST(CSlideshowPlugin*, aPtr)->SettingsChanged());
+    }
+    
+    
+// --- private functions ---
+
+    
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::InitializeCenRepL
+// Connect Central Repository sessions
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::InitializeCenRepL()
+    {
+    
+    TRAPD(err, iSlideshowRepository = CRepository::NewL(KCRUidThemes));
+    User::LeaveIfError(err);
+    }
+
+    
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::NotifyCenrepChangeL
+// -----------------------------------------------------------------------------
+//  
+void CSlideshowPlugin::NotifyCenrepChangeL()
+    { 
+    iSlideshowCRWatcher = CRepositoryWatcher::NewL(
+            KCRUidThemes,
+            TCallBack(HandleRepositoryCallBack, this),
+            iSlideshowRepository);
+    }
+        
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::NotifyCenrepChangeCancel
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::NotifyCenrepChangeCancel()
+    {
+    delete iSlideshowCRWatcher;
+    iSlideshowCRWatcher = NULL;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::UnInitializeCenRep
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::UnInitializeCenRep()
+    {       
+    if (iSlideshowRepository)
+        {
+        delete iSlideshowRepository;
+        iSlideshowRepository = NULL;  
+        }
+    }
+
+
+// Starts the saver when screensaver starts
+void CSlideshowPlugin::StartPlugin()
+    {
+    // Make sure we start from a clean slate
+    iDrawCount = -1;
+    
+    // (Re-)load slideset. When done on every start this avoids
+    // having to keep track of gallery changes and images on MMC.
+    TRAP_IGNORE(LoadSlidesL());
+
+    if (iModel->NumberOfSlides() == 0)
+        {
+        iHost->RevertToDefaultSaver();
+        return;
+        }
+
+    iModel->PrepareNextSlide(
+        (iSettings->iSlideshowType == KSlideshowTypeRandom),
+        iDi.iRect.Size());
+
+    if (iHost)
+        {
+        // Start animating as per settings
+        iHost->RequestTimeout(iSettings->iSlideshowTime);
+        Lights(iSettings->iLightsTime);
+        // let the draw method be called every 1 second till first image is available
+        iHost->SetRefreshTimerValue(KRefreshInterval * KSecsToMicros);
+        SetDisplayMode();
+        }
+    }
+
+
+// Stops the plugin
+void CSlideshowPlugin::StopPlugin()
+    {
+    // Let go of pre-fetched images
+    iModel->ReleaseNextSlide();
+    iTimerUpdated = EFalse;
+    }
+    
+
+// Draws centered slides
+void CSlideshowPlugin::DrawCentered(CWindowGc& aGc, CSlideshowSlide* aSlide)
+    {
+    CFbsBitmap* bitmap = aSlide->Image();
+    
+    if (!bitmap)
+        return;
+    
+    // Center the bitmap horizontally and vertically (crop off excess)    
+    TPoint pos;
+    TRect rectToDraw;
+    TSize sizeBmp = bitmap->SizeInPixels();
+    TInt screenWidth = iDi.iRect.Width();
+    TInt screenHeight = iDi.iRect.Height();
+    
+    // Horizontally
+    if (sizeBmp.iWidth <= screenWidth)
+        {
+        // Width fits on screen - center xpos
+        pos.iX = (screenWidth - sizeBmp.iWidth) / 2;
+        
+        // Whole width of bmp can be drawn
+        rectToDraw.SetWidth(sizeBmp.iWidth);
+        }
+    else
+        {
+        // Bmp wider than screen - xpos top left
+        pos.iX = 0;
+        
+        // Adjust draw rect position and width
+        rectToDraw.iTl.iX = (sizeBmp.iWidth - screenWidth) / 2;
+        rectToDraw.SetWidth(screenWidth);
+        }
+    
+    // Vertically
+    if (sizeBmp.iHeight <= screenHeight)
+        {
+        // Height fits on screen - center ypos
+        pos.iY = (screenHeight - sizeBmp.iHeight) / 2;
+        
+        // Whole height of bmp can be drawn
+        rectToDraw.SetHeight(sizeBmp.iHeight);
+        }
+    else
+        {
+        // Bmp higher than screen - ypos top left
+        pos.iY = 0;
+        
+        // Adjust draw rect position and height
+        rectToDraw.iTl.iY = (sizeBmp.iHeight - screenHeight) / 2;
+        rectToDraw.SetHeight(screenHeight);
+        }
+    
+    // Do the drawing
+    aGc.BitBlt(pos, bitmap, rectToDraw);
+    }
+
+
+// Loads the slides into the model
+void CSlideshowPlugin::LoadSlidesL()
+    {
+    SSPLOGGER_ENTERFN("LoadSlidesL()");
+    iIsLoadFinished = EFalse;
+    // Based on settings, load predefined set or random slides
+    if (iSettings->iSlideshowType == KSlideshowTypeRandom)
+        {
+        LoadRandomSlidesL();
+        }
+    else
+        {
+        LoadSlideSetL();
+        }
+    iIsLoadFinished = ETrue;
+    SSPLOGGER_LEAVEFN("LoadSlidesL()");
+    }
+    
+
+// Load filenames from settings file stored in skin server directory
+void CSlideshowPlugin::LoadSlideSetL()
+    {
+    SSPLOGGER_ENTERFN("LoadSlideSetL()");
+    
+    // Start by getting rid of possibly loaded slides
+    iModel->DeleteAll();
+
+    // Connect to skin server.
+    RAknsSrvSession skinSrv;
+    TInt error = skinSrv.Connect();
+    User::LeaveIfError(error);
+    CleanupClosePushL(skinSrv);
+
+    // Open images file
+    TInt fileSrvHandle;
+    TInt fileHandle;
+    fileSrvHandle = skinSrv.OpenImageInifile(EAknsSrvInifileSSSS, fileHandle);
+
+    // Adopt the handle to our process
+    RFile imgFile;
+    error = imgFile.AdoptFromServer(fileSrvHandle, fileHandle);
+    User::LeaveIfError(error);
+    CleanupClosePushL(imgFile);
+    
+    // Read image filenames from file (as text)
+    TFileText textFile;
+    textFile.Set(imgFile);
+    textFile.Seek(ESeekStart);
+
+    // Read until EOF
+    TInt count = 0;
+    TFileName fileName;
+    while (textFile.Read(fileName) == KErrNone)
+        {
+        // Check that the file exists. If not, it is still OK, if it is
+        // on the memory card - it may show up later. Omit files from other
+        // drives that do not exist at the time of loading
+        TBool exists = BaflUtils::FileExists(iEikEnv->FsSession(), fileName);
+        TBool isOnMC = SlideshowUtil::IsOnMC(fileName);
+        
+        if (!exists) //  && (!isOnMC))
+            {
+            // Do not add nonexisting files // from other than memory card
+            continue;
+            }
+#if 0
+        // Check that the file's DRM rights allow it to be displayed (if not
+        // missing because not on MMC
+        if (!SlideshowUtil::DRMCheck(fileName))
+            {
+            // No point in adding files that cannot be displayed anyway
+            continue;
+            }
+#endif        
+        // Create a slide with the filename and store it in the model
+        CSlideshowSlide* pSlide = CSlideshowSlide::NewL(fileName, isOnMC);
+        CleanupStack::PushL(pSlide);
+        iModel->AppendSlideL(pSlide);
+        CleanupStack::Pop(pSlide);
+
+        SSPLOGGER_WRITEF(_L("SSP: Slide %d added, file: %S"), count, &fileName);
+        count++;
+        }
+
+    CleanupStack::PopAndDestroy(2); // imgFile, skinSrv
+    
+    SSPLOGGER_LEAVEFN("LoadSlideSetL()");    
+    }
+
+
+// Load filenames from CLF
+void CSlideshowPlugin::LoadRandomSlidesL()
+    {
+    SSPLOGGER_ENTERFN("LoadRandomSlidesL()");
+    // Start by getting rid of possibly loaded slides
+    iModel->DeleteAll();
+    // connect to MDS, load data or not
+    ConnectToMDSSessionL();
+
+    SSPLOGGER_LEAVEFN("LoadRandomSlidesL()");
+    }
+
+
+// Requests display mode from host
+void CSlideshowPlugin::SetDisplayMode()
+    {
+    if (!iHost)
+        {
+        return;
+        }
+    
+    // Exit partial mode
+    iHost->ExitPartialMode();
+    }
+
+
+// Requests lights
+void CSlideshowPlugin::Lights(TInt aSecs)
+    {
+    // Request nothing, if no time set (don't force lights off)
+    if ((iHost) && (aSecs > 0))
+        {
+        SSPLOGGER_WRITEF(_L("SSP: Request lights for %d secs"), aSecs);
+        iHost->RequestLights(aSecs);
+        }
+    }
+
+
+// Configure the plugin
+void CSlideshowPlugin::ConfigureL(TAny* /* aParam */)
+    {
+    // Look for screensaver slideset setting interface
+    RImplInfoPtrArray array;            
+    const TUid slidesetInterface = { 0x102823AD };
+    const TUid slidesetImplUidScreensaver = { 0x102823AF };
+    const TEComResolverParams emptyParams;
+    
+    REComSession::ListImplementationsL(
+        slidesetInterface,
+        emptyParams,
+        KRomOnlyResolverUid,
+        array);
+    CleanupResetAndDestroyPushL(array);
+
+    // Loop through implementations and look for screensaver
+    // slideset implementation (this is not really completely
+    // necessary, because we already know the implementation UID,
+    // but we want to be sure it's there, and on ROM only
+    TInt nCount = array.Count();
+    TUid implUid;
+
+    for (TInt i = 0; i < nCount; i++)
+        {
+        CImplementationInformation* info = array[i];
+        
+        if (info->ImplementationUid() == slidesetImplUidScreensaver)
+            {
+            // Found
+            implUid = info->ImplementationUid();
+            break;
+            }
+        }
+
+    // Did we get it?
+    if (implUid != slidesetImplUidScreensaver)
+        {
+        User::Leave(KErrNotFound);
+        }
+    
+    // Instantiate the interface
+    CPslnSlidesetDialogInterface* plugin = 
+        CPslnSlidesetDialogInterface::NewL(implUid);
+
+    TInt dlgRet = KErrNone;
+    if (plugin)
+        {
+        dlgRet = plugin->ExecuteDialogLD();
+        }
+
+    // Cleanup
+    array.ResetAndDestroy();
+    CleanupStack::PopAndDestroy(); // array
+
+    User::LeaveIfError(dlgRet);
+    }
+
+    
+// Updates the saved information about display
+void CSlideshowPlugin::UpdateDisplayInfo()
+    {
+    iDi.iSize = sizeof(TScreensaverDisplayInfo);
+    iHost->DisplayInfo(&iDi);
+    }
+
+    
+// Flushes pending draws
+void CSlideshowPlugin::FlushDrawBuffer()
+    {
+    iEikEnv->WsSession().Flush();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::SettingsChanged
+// Called when Themes reports a settings change through P & S
+// -----------------------------------------------------------------------------
+TInt CSlideshowPlugin::SettingsChanged()
+    {
+    // If current key value is nonzero, it means the settings
+    // have just changed, otherwise, no action necessary
+    TInt value = 0;
+    iSettingsChangedProperty.Get(value);
+
+    if (value == EScreenSaverPluginSettingsChanged)
+        {
+#if 0
+        // Slide file has changed - re-load images
+        TRAP_IGNORE(LoadSlidesL());
+        // Pre-fetch the fist image to be drawn
+        iModel->PrepareNextSlide(
+            (iSettings->iSlideshowType == KSlideshowTypeRandom),
+            iDi.iRect.Size());
+#endif
+        iSettingsChangedProperty.Set(EScreenSaverPluginSettingsNoChange);
+        }
+
+    return KErrNone;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::ConnectToMDSSessionL
+// Connects to MDS Listing Framework. Can be called many times,
+// connects only once
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::ConnectToMDSSessionL()
+    {
+    if (!iMdESession)
+        {
+        iMdESession = CMdESession::NewL( *this );
+        // Wait for query of MDS to complete before continuing
+        WaitForMDS();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::WaitForMDS
+// Begins wait for MDS session connected 
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::WaitForMDS()
+    {
+    if (iWaitActive)
+        {
+        return;
+        }
+    else
+        {
+        iWaitActive = ETrue;
+        iWaiter.Start();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::WaitForMDS
+// Ends wait for MDS
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::EndWaitForMDS()
+    {
+    if (!iWaitActive)
+        {
+        return;
+        }
+    else
+        {
+        iWaiter.AsyncStop();
+        iWaitActive = EFalse;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::HandleSessionOpened
+// Session is open successfully, then start a query for images
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::HandleSessionOpened(CMdESession& /*aSession*/, TInt aError)
+    {
+    if ( KErrNone != aError )
+        {
+        // Error occurred when opening session. iMdeSession must be deleted and new
+        // session opened if we wish to use MdE.
+        delete iMdESession;
+        iMdESession = NULL;
+        return;
+        }
+    // The session was opened successfully.
+    TRAP(aError, OpenQueryL() );
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::OpenQueryL
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::OpenQueryL()
+    {
+    CMdENamespaceDef& defaultNamespaceDef = iMdESession->GetDefaultNamespaceDefL();
+    CMdEObjectDef& imageObjDef = defaultNamespaceDef.GetObjectDefL( MdeConstants::Image::KImageObject );
+
+    // query objects with object definition "Image"
+    CMdEObjectQuery* query = iMdESession->NewObjectQueryL( defaultNamespaceDef, imageObjDef, this );
+
+    query->FindL( KDefaultRandomLoadingNumber );
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::HandleSessionError
+// error happened when open the session, close session and end the waiting
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::HandleSessionError(CMdESession& /*aSession*/, TInt /*aError*/)
+    {
+    if ( iMdESession )
+        {
+        delete iMdESession;
+        iMdESession = NULL;
+        }
+    // error happened when open the session, so end the waiting for MDS session.
+    EndWaitForMDS();
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::HandleQueryCompleted
+// query completed, load the images
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::HandleQueryCompleted(CMdEQuery& aQuery, TInt aError)
+    {
+    if ( aError == KErrNone )
+        {
+        LoadImagesToModel( aQuery );
+        }
+    EndWaitForMDS();
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::HandleQueryCompleted
+// part of query completed, load the completed images
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::HandleQueryNewResults( CMdEQuery& aQuery,
+                                              TInt aFirstNewItemIndex,
+                                              TInt aNewItemCount)
+    {
+    LoadImagesToModel( aQuery, aFirstNewItemIndex, aNewItemCount );
+    EndWaitForMDS();
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::LoadImagesToModel
+// load the images when query is successfully
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::LoadImagesToModel(const CMdEQuery& aQuery,
+                                         TInt aFirstNewItemIndex,
+                                         TInt aNewItemCount)
+    {
+    CMdEObjectQuery& query= ( CMdEObjectQuery& ) aQuery;
+    // query is completed
+    if( aQuery.Count() > 0 )
+        {
+        // some items were found!
+        // Loop through, add filenames
+        TInt startIndex = aFirstNewItemIndex;
+        TInt nItem = aNewItemCount;
+        if ( aFirstNewItemIndex == 0 && aFirstNewItemIndex == aNewItemCount )
+            {
+            startIndex = 0;
+            nItem = aQuery.Count();
+            }
+        TInt count = 0;
+        for ( ; startIndex < nItem; startIndex++)
+            {
+            // TFileName fileName;
+            TBufC<256> fileName;
+
+            const CMdEObject& obj = query.Result(startIndex);
+            fileName = obj.Uri();
+
+            // Check that the file exists. If not, it is still OK, if it is
+            // on the memory card - it may show up later. Omit files from other
+            // drives that do not exist at the time of loading
+            // TODO: Can be removed, as slides are loaded on every start
+            TBool exists = BaflUtils::FileExists(iEikEnv->FsSession(), fileName);
+            TBool isOnMC = SlideshowUtil::IsOnMC(fileName);
+
+            if (!exists)  // && (!isOnMC))
+                {
+                // Do not add nonexisting files from other than memory card
+                continue;
+                }
+#if 0
+            // Check that the file's DRM rights allow it to be displayed (if not
+            // missing because not on MMC
+            if (!SlideshowUtil::DRMCheck(fileName))
+                {
+                // No point in adding files that cannot be displayed anyway
+                continue;
+                }
+#endif        
+            // Create a slide with the filename and store it in the model
+            TRAPD(err, AppendSlideToModelL( fileName, isOnMC ) );
+            if ( KErrNone != err )
+                {
+                // appending error, go on to append next slide
+                continue;
+                }
+            SSPLOGGER_WRITEF(_L("SSP: Slide %d added, file: %S"), count, &fileName);
+            count++;
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CSlideshowPlugin::AppendSlideToModelL
+// Add slide to model
+// -----------------------------------------------------------------------------
+void CSlideshowPlugin::AppendSlideToModelL(TDesC& aFileName, TBool aIsOnMC)
+    {
+    CSlideshowSlide* pSlide = CSlideshowSlide::NewL(aFileName, aIsOnMC);
+    CleanupStack::PushL(pSlide);
+    iModel->AppendSlideL(pSlide);
+    CleanupStack::Pop(pSlide);
+    }
+// End Of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPluginProxy.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     ECOM implementation array.
+*
+*/
+
+
+
+
+
+
+// INCLUDE FILES
+#include    <e32std.h>
+#include    <ecom/implementationinformation.h>    
+#include    <ecom/implementationproxy.h>
+#include    <coecntrl.h>
+#include    "SlideshowPluginImpUID.hrh"
+#include    "SlideshowPlugin.h"
+
+// CONSTANTS
+const TImplementationProxy ImplementationTable[] =
+    {
+    IMPLEMENTATION_PROXY_ENTRY(KSlideshowPluginImpUID, 
+                    CSlideshowPlugin::NewL)
+    };
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// ImplementationProxy
+// ECOM implementation table entry.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+    return ImplementationTable;
+    }
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowPluginUtils.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,327 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   SlideshowPlugin utility classes and functions
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <centralrepository.h>
+#include <f32fsys.h>
+#include <eikenv.h>
+#include <pathinfo.h>
+#include <DRMHelper.h>
+#include <caf/caftypes.h>
+
+#include "SlideshowPluginUtils.h"
+
+_LIT(KSSPDriveLetterMC, "E");
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// Repository watcher
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::NewL
+// ---------------------------------------------------------------------------
+//
+CRepositoryWatcher* CRepositoryWatcher::NewL(
+    const TUid aUid,
+    const TUint32 aKey,
+    CCenRepNotifyHandler::TCenRepKeyType aKeyType,
+    TCallBack aCallBack,
+    CRepository* aRepository)
+    {
+    CRepositoryWatcher* self = new(ELeave) 
+          CRepositoryWatcher(aUid, aKey, aCallBack, aRepository);
+
+    CleanupStack::PushL(self);
+    self->ConstructL(aKeyType);
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::NewL
+// ---------------------------------------------------------------------------
+//
+CRepositoryWatcher* CRepositoryWatcher::NewL(
+    const TUid aUid,
+    TCallBack aCallBack,
+    CRepository* aRepository)
+    {
+    CRepositoryWatcher* self = new(ELeave) CRepositoryWatcher(
+        aUid, NCentralRepositoryConstants::KInvalidNotificationId, aCallBack, aRepository);
+
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::~CRepositoryWatcher
+// ---------------------------------------------------------------------------
+//
+CRepositoryWatcher::~CRepositoryWatcher()
+    {
+    if ( iNotifyHandler )
+        {
+        iNotifyHandler->StopListening();
+        delete iNotifyHandler;      
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::CRepositoryWatcher
+// ---------------------------------------------------------------------------
+//
+CRepositoryWatcher::CRepositoryWatcher(
+    const TUid aUid,
+    const TUint32 aKey,
+    TCallBack aCallBack,
+    CRepository* aRepository)
+    :
+    iUid(aUid), iKey(aKey), iCallBack(aCallBack), iRepository(aRepository)
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType)
+    {
+    iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository, aKeyType, iKey);
+    iNotifyHandler->StartListeningL();
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CRepositoryWatcher::ConstructL()
+    {
+    iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository);
+    iNotifyHandler->StartListeningL();
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::ChangedKey
+// ---------------------------------------------------------------------------
+//
+TUint32 CRepositoryWatcher::ChangedKey()
+    {
+    return iChangedKey;
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::HandleNotifyInt
+// ---------------------------------------------------------------------------
+//
+void CRepositoryWatcher::HandleNotifyInt( 
+                                    TUint32 aKey, TInt /*aNewValue*/ )
+    {
+    iChangedKey = aKey;
+    iCallBack.CallBack();
+    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::HandleNotifyString
+// ---------------------------------------------------------------------------
+//
+void CRepositoryWatcher::HandleNotifyString( TUint32 aKey, 
+                                                     const TDesC16& /*aNewValue*/ )
+    {  
+    iChangedKey = aKey;
+    iCallBack.CallBack();
+    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::HandleNotifyGeneric
+// ---------------------------------------------------------------------------
+//
+void CRepositoryWatcher::HandleNotifyGeneric(TUint32 aKey)
+    {
+    iChangedKey = aKey;
+    iCallBack.CallBack();
+    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
+    }
+
+// ---------------------------------------------------------------------------
+// CRepositoryWatcher::HandleNotifyError
+// ---------------------------------------------------------------------------
+//
+void CRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/)
+    {
+    }     
+
+
+// P & S subscriber    
+
+// ---------------------------------------------------------------------------
+// CPSSubscriber::CPSSubscriber
+// ---------------------------------------------------------------------------
+//
+CPSSubscriber::CPSSubscriber(TCallBack aCallBack, RProperty& aProperty)
+    : CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty)
+    {
+    CActiveScheduler::Add(this);
+    }
+
+// ---------------------------------------------------------------------------
+// CPSSubscriber::~CPSSubscriber
+// ---------------------------------------------------------------------------
+//
+CPSSubscriber::~CPSSubscriber()
+    {
+    Cancel();
+    }
+
+// ---------------------------------------------------------------------------
+// CPSSubscriber::SubscribeL
+// ---------------------------------------------------------------------------
+//
+void CPSSubscriber::SubscribeL()
+    {
+    if (!IsActive())
+        {
+        iProperty.Subscribe(iStatus);
+        SetActive();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CPSSubscriber::StopSubscribe
+// ---------------------------------------------------------------------------
+//
+void CPSSubscriber::StopSubscribe()
+    {
+    Cancel();
+    }
+
+// ---------------------------------------------------------------------------
+// CPSSubscriber::RunL
+// ---------------------------------------------------------------------------
+//
+void CPSSubscriber::RunL()
+    {
+    if (iStatus.Int() == KErrNone)
+        {
+        iCallBack.CallBack();
+        SubscribeL();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CPSSubscriber::DoCancel
+// ---------------------------------------------------------------------------
+//
+void CPSSubscriber::DoCancel()
+    {
+    iProperty.Cancel();
+    }
+
+
+
+// ========== UTILITIES CLASS ===============================
+
+// Checks if memory card is present
+TBool SlideshowUtil::IsMCPresent()
+    {
+    RFs& fs = CCoeEnv::Static()->FsSession();
+
+    TInt error = KErrNone;
+    TDriveInfo driveInfo;
+    TInt res = 0;
+    TInt err = fs.CharToDrive(PathInfo::MemoryCardRootPath()[0], res);
+    error = fs.Drive(driveInfo, res );
+
+    // Not present, locked or unknown is bad
+    if ((error != KErrNone) ||
+        (driveInfo.iMediaAtt & KMediaAttLocked) ||
+        (driveInfo.iType == EMediaNotPresent) ||
+        (driveInfo.iType == EMediaUnknown))
+        {
+        return EFalse;
+        }
+
+    // Read-only is fine
+    return ETrue;
+    }
+
+
+// Checks if the given file is on memory card
+TBool SlideshowUtil::IsOnMC(TFileName aFile)
+    {
+    // Grab drive letter from path and compare to memory card drive letter
+    TBuf<1> driveLetterBuf;
+    driveLetterBuf.CopyUC(aFile.Left(1));
+
+    if (driveLetterBuf.Compare(KSSPDriveLetterMC) == 0)
+        {
+        return ETrue;
+        }
+    
+    return EFalse;
+    }
+
+
+// Checks that the file has enough DRM rights to be displayed
+TBool SlideshowUtil::DRMCheck(CDRMHelper *aDRMHelper, TDesC& /* aFileName */)
+    {
+    if (!aDRMHelper)
+        {
+        return EFalse;
+        }
+
+    return ETrue;
+    }
+
+    
+// Checks that the slide has enough DRM rights to be displayed
+TBool SlideshowUtil::DRMCheck(CDRMHelper *aDRMHelper, CSlideshowSlide* aSlide)
+    {
+    if (!aDRMHelper || !aSlide)
+        {
+        return EFalse;
+        }
+
+    return (DRMCheck(aDRMHelper, *(aSlide->FileName())));
+    }
+
+    
+// Consumes the slide's DRM rights
+void SlideshowUtil::DRMConsume(CDRMHelper* aDRMHelper, CSlideshowSlide* aSlide)
+    {
+    if (!aDRMHelper || !aSlide)
+        {
+        return;
+        }
+    
+    aDRMHelper->ConsumeFile2(*(aSlide->FileName()),
+                             ContentAccess::EView,
+                             CDRMHelper::EStart);
+    aDRMHelper->ConsumeFile2(*(aSlide->FileName()),
+                             ContentAccess::EView,
+                             CDRMHelper::EFinish);
+    }
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowSlide.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Stores a single slide
+*
+*/
+
+
+
+
+
+//  INCLUDES
+#include "SlideshowSlide.h"
+#include "SlideshowSlideLoader.h"
+#include "SlideshowPluginUtils.h"
+    
+// Creator
+CSlideshowSlide* CSlideshowSlide::NewL(TDesC& aFileName, TBool aIsOnMC)
+    {
+    CSlideshowSlide* self = new (ELeave) CSlideshowSlide(aIsOnMC);
+    CleanupStack::PushL(self);
+    self->ConstructL(aFileName);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// Destructor
+CSlideshowSlide::~CSlideshowSlide()
+    {
+    ReleaseImage();
+    delete iSlideLoader;
+    delete iFileName;
+    }
+
+
+// Default C'tor
+CSlideshowSlide::CSlideshowSlide(TBool aIsOnMC)
+    : iFlags(SSS_NONE)
+    {
+    if (aIsOnMC)
+        {
+        iFlags |= SSS_ISONMC;
+        }
+    }
+
+// is decoding in progress
+TBool CSlideshowSlide::IsDecodingInProgress()
+	{
+	if(iSlideLoader->IsActive())
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+// Could not decode the file
+TBool CSlideshowSlide::CouldNotDecodeFile()
+	{
+	if (iFlags & SSS_DECODEFAILED)
+        {
+        return ETrue;
+        }
+	return EFalse;
+	}
+// Two-phase constructor
+void CSlideshowSlide::ConstructL(TDesC& aFileName)
+    {
+    // Allocate space for the filename and save it
+    iFileName = HBufC::NewL(aFileName.Length());
+    *iFileName = aFileName;
+    iSlideLoader = CSlideshowSlideLoader::NewL(this);
+    }
+// Prepares the slide (loads image)
+void CSlideshowSlide::PrepareSlideL(const TSize& aTargetSize)
+    {
+   	if (iFlags & SSS_IMAGELOADED)
+      {
+      	  return;
+      }
+    if( iSlideLoader->IsActive())
+    	{
+    	// slide is being decoded ... should wait .. dont call LoadSlideL here
+    	// should not come here..
+    	return;
+    	}
+    iSlideLoader->LoadSlideL(*iFileName, aTargetSize);
+    }
+
+// Is slide decoded completely
+TBool CSlideshowSlide::IsSlideDecoded()
+	{
+	if (iFlags & SSS_IMAGELOADED)
+        {
+        return ETrue;
+        }
+	return EFalse;
+	}
+// Releases the slide's image
+void CSlideshowSlide::ReleaseImage()
+    {
+    // if decoding is in progress... at any cost dont delete the image before Canceling the decoding
+    if(IsDecodingInProgress())
+    	{
+    	iSlideLoader->Cancel();
+    	}
+    else if(iImage )
+    	{
+    	delete iImage;
+    	iImage = NULL;
+    	}
+    //image deleted, revert back to not decoded state
+    iFlags &= ~(SSS_IMAGELOADED);
+    }
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/SlideshowPlugin/src/SlideshowSlideLoader.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,286 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Loads a slide from file
+*
+*/
+
+
+
+//  INCLUDES
+#include "SlideshowPluginUtils.h"
+#include "SlideshowSlideLoader.h"
+
+// ---------------------------------------------------------------------------
+// DivAndRoundUp
+// ---------------------------------------------------------------------------
+//
+TInt DivAndRoundUp(const TInt aNumber, const TInt aDivider)
+    {
+    TInt result = aNumber / aDivider;
+
+    if (aNumber % aDivider)
+        {
+        result += 1;
+        }
+    
+    return result;
+    }
+
+// ---------------------------------------------------------------------------
+// CSlideshowSlideLoader::NewL
+// ---------------------------------------------------------------------------
+//
+CSlideshowSlideLoader* CSlideshowSlideLoader::NewL(CSlideshowSlide *aSlide)
+	{
+	CSlideshowSlideLoader * self = new (ELeave)CSlideshowSlideLoader(aSlide);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+// ---------------------------------------------------------------------------
+// CSlideshowSlideLoader::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CSlideshowSlideLoader::ConstructL()
+	{
+	// Add this object to active scheduler
+	CActiveScheduler::Add(this);
+	}
+
+// ---------------------------------------------------------------------------
+// CSlideshowSlideLoader::CSlideshowSlideLoader
+// ---------------------------------------------------------------------------
+//
+CSlideshowSlideLoader::CSlideshowSlideLoader(CSlideshowSlide *aSlide)
+	: CActive(CActive::EPriorityStandard),iSlide(aSlide)
+	{
+	// Empty
+	}
+
+// ---------------------------------------------------------------------------
+// CSlideshowSlideLoader::~CSlideshowSlideLoader
+// ---------------------------------------------------------------------------
+//
+CSlideshowSlideLoader::~CSlideshowSlideLoader()
+	{
+	if(IsActive())
+		{
+		Cancel();
+		}
+	
+	}
+
+// ---------------------------------------------------------------------------
+// CSlideshowSlideLoader::DeleteDecoder
+// ---------------------------------------------------------------------------
+//
+void CSlideshowSlideLoader::DeleteDecoder()
+	{
+	if(iDecoder)
+		{
+		delete iDecoder;
+		iDecoder = NULL;
+		}
+	
+	}
+
+// ---------------------------------------------------------------------------
+// CSlideshowSlideLoader::DoCancel
+// ---------------------------------------------------------------------------
+//
+void CSlideshowSlideLoader::DoCancel()
+	{
+	iDecoder->Cancel();
+	DeleteDecoder();
+	// delete the image
+	if(iSlide->iImage)
+		{
+		delete iSlide->iImage;
+		iSlide->iImage = NULL;
+		}
+	}
+
+// ---------------------------------------------------------------------------
+// CSlideshowSlideLoader::RunL
+// ---------------------------------------------------------------------------
+//
+void CSlideshowSlideLoader::RunL()
+	{
+	// delete the decoder to save some memory.
+	DeleteDecoder();
+	if(iStatus != KErrNone)
+		{
+		iSlide->ReleaseImage();
+		// SSS_DECODEFAILED says that Image could not be decoded. Corrupted image.
+		(iSlide->iFlags) |= SSS_DECODEFAILED;
+		return;
+		}
+	
+	// Image loaded, size scaled down while loading. Find out, if the
+    // image still needs to be scaled smaller to fit the screen
+	
+    TReal aspectRatio = (TReal) iBitmapsize.iWidth / (TReal) iBitmapsize.iHeight;
+
+    if ((iBitmapsize.iWidth <= iTargetSize.iWidth) &&
+        (iBitmapsize.iHeight <= iTargetSize.iHeight))
+        {
+        // Fits completely - finish
+        SSPLOGGER_WRITE("No resize needed");
+        
+        // Compress the heap after imageconversion as
+        // imagedecoder seems to leave heap uncompressed
+        User::Heap().Compress();
+        (iSlide->iFlags) |= SSS_IMAGELOADED;
+    	return;
+        }
+
+    // Figure out which dimension needs most scaling
+    TReal xFactor = (TReal) iTargetSize.iWidth / (TReal) iBitmapsize.iWidth;
+    TReal yFactor = (TReal) iTargetSize.iHeight / (TReal) iBitmapsize.iHeight;
+
+    // Start with target (screen) size
+    TSize finalSize = iTargetSize;
+            
+    if (xFactor <= yFactor)
+        {
+        // X-dimension needs most scaling - fit to x, re-calc y
+        finalSize.iHeight = (TInt) ((TReal) finalSize.iWidth / aspectRatio);
+        }
+    else
+        {
+        // Y-dimension needs most scaling - fit to y, re-calc x
+        finalSize.iWidth = (TInt) ((TReal) finalSize.iHeight * aspectRatio);
+        }
+
+    SSPLOGGER_WRITEF(_L("SSP: Final size (%d, %d)"),
+                     finalSize.iWidth, finalSize.iHeight);
+    
+    // Create a final bitmap with the final size, and draw to it
+    CFbsBitmap* finalBmp = new (ELeave) CFbsBitmap;
+    CleanupStack::PushL(finalBmp);
+    User::LeaveIfError(finalBmp->Create(finalSize, (iSlide->iImage)->DisplayMode()));
+    
+    CFbsBitmapDevice* bmpDev = CFbsBitmapDevice::NewL(finalBmp);
+    CleanupStack::PushL(bmpDev);
+    
+    CFbsBitGc* bmpCxt;
+    User::LeaveIfError(bmpDev->CreateContext(bmpCxt));
+    CleanupStack::PushL(bmpCxt);
+    bmpCxt->DrawBitmap(TRect(0, 0, finalSize.iWidth, finalSize.iHeight),
+    					(iSlide->iImage),
+    					TRect(0, 0, iBitmapsize.iWidth, iBitmapsize.iHeight));
+    
+    CleanupStack::PopAndDestroy(2); // bmpDev, bmpCxt
+    // Return the result in the original bitmap parameter
+    (iSlide->iImage)->Reset();
+    
+    User::LeaveIfError((iSlide->iImage)->Duplicate(finalBmp->Handle()));
+    CleanupStack::PopAndDestroy(finalBmp);
+    // Compress the heap after imageconversion as
+    // imagedecoder seems to leave heap uncompressed
+    User::Heap().Compress();
+    (iSlide->iFlags) |= SSS_IMAGELOADED;
+	return;
+	}
+
+// ---------------------------------------------------------------------------
+// CSlideshowSlideLoader::LoadSlideL
+// ---------------------------------------------------------------------------
+//
+void CSlideshowSlideLoader::LoadSlideL(
+    const TDesC& aFilename, const TSize& aTargetSize)
+    {
+   
+    iTargetSize = aTargetSize;
+    RFs filesys;
+    User::LeaveIfError(filesys.Connect());
+    CleanupClosePushL(filesys);
+    // this line can leave if decoder is not found..need to cacth this.
+    iDecoder = CImageDecoder::FileNewL(filesys, aFilename, ContentAccess::EView,CImageDecoder::EOptionAlwaysThread);
+    if (aTargetSize == TSize(-1,-1))
+        {
+        CleanupStack::PopAndDestroy(&filesys); 
+        iDecoder = NULL;
+        return;
+        }
+
+    // Get image information
+    TFrameInfo frameinfo = iDecoder->FrameInfo();
+    TDisplayMode mode;
+
+    // Tone down colors if possible (saves memory)
+    if (frameinfo.iFlags & TFrameInfo::ECanDither)
+        {
+        mode = EColor64K;
+        }
+    else
+        {
+        mode = frameinfo.iFrameDisplayMode;
+        }
+    
+    // Find out if the image can be downscaled during loading
+    iBitmapsize = frameinfo.iOverallSizeInPixels;
+
+      
+    if ((iBitmapsize.iWidth  >= aTargetSize.iWidth * 2) &&
+        (iBitmapsize.iHeight >= aTargetSize.iHeight * 2))
+        {
+        // 1/2 size
+        iBitmapsize.iWidth = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iWidth, 2);
+        iBitmapsize.iHeight = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iHeight, 2);
+        
+        if ((iBitmapsize.iWidth  >= aTargetSize.iWidth * 2) &&
+            (iBitmapsize.iHeight >= aTargetSize.iHeight * 2))
+            {
+            // 1/4 size
+            iBitmapsize.iWidth = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iWidth, 4);
+            iBitmapsize.iHeight = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iHeight, 4);
+            
+            if ((iBitmapsize.iWidth  >= aTargetSize.iWidth * 2) &&
+                (iBitmapsize.iHeight >= aTargetSize.iHeight * 2))
+                {
+                // 1/8 size
+                iBitmapsize.iWidth = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iWidth, 8);
+                iBitmapsize.iHeight = DivAndRoundUp(frameinfo.iOverallSizeInPixels.iHeight, 8);
+                }
+            }
+        }
+
+    // Create a target bitmap
+    iSlide->iImage = new (ELeave) CFbsBitmap;
+    User::LeaveIfError((iSlide->iImage)->Create(iBitmapsize, mode));
+    // for filesys
+    CleanupStack::PopAndDestroy(&filesys);
+    
+    //Start decoding the image ...
+    // RunL method is called when decoding is done.
+    iDecoder->Convert(&iStatus, *(iSlide->iImage),0);  
+    SetActive();
+ }
+
+// ---------------------------------------------------------------------------
+// CSlideshowSlideLoader::RunError
+// ---------------------------------------------------------------------------
+//
+TInt CSlideshowSlideLoader::RunError(TInt aError)
+	{
+	if (NULL != iSlide->iImage)
+		{
+		delete iSlide->iImage;
+		iSlide->iImage = NULL;
+		}
+	return aError;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scrsaver/scrsaverplugins/group/bld.inf	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Build information file for all plugins
+*
+*/
+
+
+
+
+#include "../BmpAnimScrPlugin/group/bld.inf"
+#include "../ScreenSaverAnimPlugin/group/bld.inf"
+#include "../ScreenSaverGifAnimPlugin/group/bld.inf"
+#include "../SlideshowPlugin/group/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Screensaver.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Document and application class file for screensaver app.
+*
+*/
+
+
+
+#include <eikstart.h>
+#include "screensaver.hrh"
+#include "screensaver.h"
+#include "screensaverappui.h"
+
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverDocument::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverDocument::ConstructL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverDocument::CScreensaverDocument
+// -----------------------------------------------------------------------------
+//
+CScreensaverDocument::CScreensaverDocument(CEikApplication& aApp): CAknDocument(aApp) 
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverDocument::~CScreensaverDocument
+// -----------------------------------------------------------------------------
+//
+CScreensaverDocument::~CScreensaverDocument()
+    {
+    
+    }
+
+//
+// CScreensaverEikDocument
+//
+
+// -----------------------------------------------------------------------------
+// CScreensaverDocument::CreateAppUiL
+// -----------------------------------------------------------------------------
+//
+CEikAppUi* CScreensaverDocument::CreateAppUiL()
+    {
+    return ( new (ELeave) CScreensaverAppUi );
+    }
+
+
+//
+// CScreensaverApplication
+//
+// -----------------------------------------------------------------------------
+// CScreensaverApplication::CreateDocumentL
+// -----------------------------------------------------------------------------
+//
+CApaDocument* CScreensaverApplication::CreateDocumentL()
+    {
+    CScreensaverDocument* document=new(ELeave) CScreensaverDocument(*this);
+    // No need to do ConstructL for document since it is empty.
+    return(document);
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverApplication::AppDllUid
+// -----------------------------------------------------------------------------
+//
+TUid CScreensaverApplication::AppDllUid() const
+    {
+    return KUidScreensaverApp;
+    }
+
+
+//
+// EXPORTed functions
+//
+LOCAL_C CApaApplication* NewApplication()
+    {
+    return new CScreensaverApplication;
+    }
+
+    
+GLDEF_C TInt E32Main()
+    {
+    return EikStart::RunApplication(NewApplication);
+    }
+
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaver.rss	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,405 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:     Screensaver resource file.
+*
+*/
+
+
+
+
+
+NAME SCRE
+
+#include <eikon.rh>
+#include <avkon.rh>
+#include <avkon.mbg>
+#include <avkon.hrh>
+#include <avkon.rsg>
+#include <aknsconstants.hrh>
+   
+#include "screensaver.hrh"
+
+RESOURCE RSS_SIGNATURE { }
+
+RESOURCE TBUF 
+    { 
+    buf= ""; 
+    }
+
+RESOURCE EIK_APP_INFO
+    {
+    status_pane = r_status_pane;
+    }
+
+RESOURCE STATUS_PANE_APP_MODEL r_status_pane
+    {
+    layout= R_AVKON_STATUS_PANE_LAYOUT_EMPTY;   
+    }
+
+
+STRUCT SCREENSAVER_COLOR_MODEL
+    {
+    LONG color_depth;       // Highest color model supported in partial mode.                           
+    WORD colors[8];         // This array is for defining colors for 3-bit mode.
+    LONG dark_gradient[6];  // Darker shades for gradient effect (in high color mode).
+    LONG light_gradient[6]; // Lighter shades for gradient effect (in high color mode).
+    }
+
+
+RESOURCE SCREENSAVER_COLOR_MODEL r_screensaver_color_model
+    {
+    color_depth = ESsColorModel3BitMode; 
+    colors = 
+        {
+        210,
+        35,
+        23,
+        185,
+        105,
+        95,
+        159,
+        221         
+        };
+    dark_gradient =
+        {
+        0x993300,
+        0x990033,
+        0x680069,
+        0x003bce,
+        0x225904,
+        0x090273
+        };
+    light_gradient =
+        {
+        0xfbb100,
+        0xfd9597,
+        0xfe00cb,
+        0x00c8fe,
+        0x33fa95,
+        0xa843fd
+        };
+    }
+
+
+//
+// This struct contains various rendering parameters for screensaver
+// indicator bar. Do not change the order of fields in this struct.
+//
+STRUCT SCREENSAVER_PARAMETERS_ARRAY 
+    {
+    WORD KIndicatorMargin;    // Minimum indicator distance to left and right border.
+    WORD KIndicatorGap;       // How many pixels between indicators.
+    WORD KIndicatorTopMargin; // Distance from top border of indicator bar to top border of indicator icon.
+    WORD KIndicatorTextLevel;
+    LONG KBackGroundColor;    // Background color in TRgb format.
+    WORD KHeight;             // Height of the indicator bar.
+    }
+
+
+RESOURCE SCREENSAVER_PARAMETERS_ARRAY r_screensaver_parameters
+    {
+    KIndicatorMargin    = 5;
+    KIndicatorGap       = 4;
+    KIndicatorTopMargin = 2;
+    KIndicatorTextLevel = 17;
+    KBackGroundColor    = 0x00c8c8c8;
+    KHeight = 14;
+    }
+
+
+//
+// Numeric indicator. Displays number over bitmap background.
+// there can be separate background bitmap for each number of digits
+// displayed. 'Icons' array has following format:
+//  icons =
+//      {
+//      // Backround bitmap for one digit case 
+//      EMbmAvkonQgn_background_for_one_digit_case,
+//      // Mask for one digit case. 
+//      EMbmAvkonQgn_mask_for_one_digit_case,
+//      // X position of numeric value inside of bitmap (value is an example).
+//      23,                                         
+//      // Y position of numeric value inside of bitmap.
+//      17,
+//      // Two digit case starts here...
+//      EMbmAvkonQgn_background_for_two_digit_case, 
+//      EMbmAvkonQgn_mask_for_two_digit_case,         
+//      22,
+//      15
+//      // ... and so on for each number of digits.
+//      };
+// This indicator type is not currently used in standard 2.x screensaver.
+//
+STRUCT SCRN_NUMERIC_INDICTOR
+    {
+    LONG type = ESsNumericIndicator;
+    WORD id;
+    WORD priority = ESsDrawTypeNotDrawn;
+    WORD align;
+    LONG icons[];           
+    }
+
+
+//
+// Icon indicator. Displays bitmap and mask (if specified).
+//
+STRUCT SCRN_ICON_INDICATOR
+    {
+    LONG type = ESsIconIndicator;
+    WORD id;
+    WORD priority = ESsDrawTypeNotDrawn;
+    WORD align;
+    LONG icon[4];  // Bmp id, mask id, skinned bmp id, skinned bmp mask id
+    }
+
+
+//
+// Text indicator. Displays text without background bitmap.
+//
+STRUCT SCRN_TEXT_INDICATOR
+    {
+    LONG type = ESsTextIndicator;
+    WORD id;
+    WORD priority = ESsDrawTypeNotDrawn;
+    WORD align;
+    LONG font_id = ELatinPlain12;
+    }
+
+
+//
+// Number & Icon indicator. Displays numeric information with
+// icon. Number is displayed on left or right side of the
+// icon (depending on icon_align), not over the icon like with 
+// numeric indicator.
+//
+STRUCT SCRN_NUMBER_AND_ICON_INDICATOR
+    {
+    LONG type = ESsNumberAndIconIndicator;
+    WORD id;
+    WORD priority = ESsDrawTypeNotDrawn;
+    WORD align;
+    LONG icon_align;
+    LONG font_id = ELatinPlain12;
+    LONG icon[4];    // Bmp id, mask id, skinned bmp id, skinned bmp mask id
+    }
+
+
+//
+// The screensaver indicator array. Defines indicators for
+// indicator bar in default screensaver view.
+// The order of indicators in this array specifies the order
+// of indicators on screen.
+//
+RESOURCE ARRAY r_screensaver_indicator_array
+    {
+    items = 
+        {
+        SCRN_ICON_INDICATOR                // Voicemail indicator
+            {
+            id = ESsVoicemailInd;
+            align = ESsAlignRight;
+            priority = ESsDrawTypePrimary;
+            icon = 
+                {
+                EMbmAvkonQgn_stat_vm0_uni,
+                EMbmAvkonQgn_stat_vm0_uni,
+                EAknsMinorGenericQgnStatVm0Uni,
+                EAknsMinorGenericQgnStatVm0Uni
+                };
+            },
+        SCRN_ICON_INDICATOR                // E-mail indicator
+            {
+            id = ESsMailInd;
+            align = ESsAlignRight;
+            priority = ESsDrawTypePrimary;
+            icon = 
+                {
+                EMbmAvkonQgn_stat_message_mail_uni,
+                EMbmAvkonQgn_stat_message_mail_uni,
+                EAknsMinorGenericQgnStatMessageMailUni,
+                EAknsMinorGenericQgnStatMessageMailUni
+                };
+            },
+        SCRN_ICON_INDICATOR                // Instant messaging indicator.
+            {
+            id = ESsImInd;
+            align = ESsAlignRight;
+            priority = ESsDrawTypePrimary;
+            icon = 
+                {
+                EMbmAvkonQgn_stat_im_uni,
+                EMbmAvkonQgn_stat_im_uni,
+                EAknsMinorGenericQgnStatImUni,
+                EAknsMinorGenericQgnStatImUni
+                };
+            },
+        SCRN_NUMBER_AND_ICON_INDICATOR     // Unread messages indicator.
+            {
+            id = ESsNewMessagesInd;         
+            align = ESsAlignRight;
+            priority = ESsDrawTypePrimary;
+            icon_align = ESsAlignRight;
+            icon =
+                {
+                EMbmAvkonQgn_stat_message_ps,
+                EMbmAvkonQgn_stat_message_ps,
+                EAknsMinorGenericQgnStatMessagePs,
+                EAknsMinorGenericQgnStatMessagePs
+                };
+            },
+        SCRN_NUMBER_AND_ICON_INDICATOR      // Missed calls indicator.
+            {
+            id = ESsMissedCallsInd;         
+            align = ESsAlignRight;
+            priority = ESsDrawTypePrimary;
+            icon_align = ESsAlignRight;
+            icon =
+                {
+                EMbmAvkonQgn_stat_missed_call_ps,      
+                EMbmAvkonQgn_stat_missed_call_ps,
+                EAknsMinorGenericQgnStatMissedCallPs,
+                EAknsMinorGenericQgnStatMissedCallPs
+                };
+            },
+        SCRN_TEXT_INDICATOR                // Profile name indicator.
+            {
+            id = ESsProfileInd;
+            align = ESsAlignLeft;
+            priority = ESsDrawTypeSecondary;
+            },
+        SCRN_ICON_INDICATOR                // Keyguard indicator.
+            {
+            id = ESsKeyLockInd;
+            align = ESsAlignLeft;
+            priority = ESsDrawTypeSecondary;
+            icon = 
+                {
+                EMbmAvkonQgn_stat_keyguard,
+                EMbmAvkonQgn_stat_keyguard,
+                EAknsMinorGenericQgnStatKeyguard,
+                EAknsMinorGenericQgnStatKeyguard
+                };
+            }
+        };
+    }
+
+
+//
+// The screensaver indicator array. Defines indicators for
+// indicator bar in default screensaver view.
+// The order of indicators in this array specifies the order
+// of indicators on screen.
+RESOURCE ARRAY r_screensaver_indicator_array_new_layout
+    {
+    items = 
+        {
+        SCRN_TEXT_INDICATOR                // Am/Pm indicator.
+            {
+            id = ESsAmPmInd;
+            align = ESsAlignRight;
+            priority = ESsDrawTypePrimary;
+            },
+        SCRN_TEXT_INDICATOR                // Profile name indicator.
+            {
+            id = ESsProfileInd;
+            align = ESsAlignLeft;
+            priority = ESsDrawTypeSecondary;
+            },
+        SCRN_ICON_INDICATOR                // Voicemail indicator
+            {
+            id = ESsVoicemailInd;
+            align = ESsAlignLeft;
+            priority = ESsDrawTypeSecondary;
+            icon = 
+                {
+                EMbmAvkonQgn_stat_vm0_uni,
+                EMbmAvkonQgn_stat_vm0_uni,
+                EAknsMinorGenericQgnStatVm0Uni,
+                EAknsMinorGenericQgnStatVm0Uni
+                };
+            },
+        SCRN_ICON_INDICATOR                // E-mail indicator
+            {
+            id = ESsMailInd;
+            align = ESsAlignLeft;
+            priority = ESsDrawTypeSecondary;
+            icon = 
+                {
+                EMbmAvkonQgn_stat_message_mail_uni,
+                EMbmAvkonQgn_stat_message_mail_uni,
+                EAknsMinorGenericQgnStatMessageMailUni,
+                EAknsMinorGenericQgnStatMessageMailUni
+                };
+            },
+        SCRN_ICON_INDICATOR                // Instant messaging indicator.
+            {
+            id = ESsImInd;
+            align = ESsAlignLeft;
+            priority = ESsDrawTypeSecondary;
+            icon = 
+                {
+                EMbmAvkonQgn_stat_im_uni,
+                EMbmAvkonQgn_stat_im_uni,
+                EAknsMinorGenericQgnStatImUni,
+                EAknsMinorGenericQgnStatImUni
+                };
+            },
+        SCRN_NUMBER_AND_ICON_INDICATOR     // Unread messages indicator.
+            {
+            id = ESsNewMessagesInd;         
+            align = ESsAlignLeft;
+            priority = ESsDrawTypePrimary;
+            icon_align = ESsAlignRight;
+            icon =
+                {
+                EMbmAvkonQgn_stat_message_uni, //ps,
+                EMbmAvkonQgn_stat_message_uni, //ps,
+                EAknsMinorGenericQgnStatMessageUni,
+                EAknsMinorGenericQgnStatMessageUni
+                };
+            },
+        SCRN_NUMBER_AND_ICON_INDICATOR      // Missed calls indicator.
+            {
+            id = ESsMissedCallsInd;         
+            align = ESsAlignLeft;
+            priority = ESsDrawTypePrimary;
+            icon_align = ESsAlignRight;
+            icon =
+                {
+                EMbmAvkonQgn_stat_missed_calls_uni, //_ps,      
+                EMbmAvkonQgn_stat_missed_calls_uni, //_ps,
+                EAknsMinorGenericQgnStatMissedCallsUni,
+                EAknsMinorGenericQgnStatMissedCallsUni
+                };
+            },
+        SCRN_ICON_INDICATOR                // Keyguard indicator.
+            {
+            id = ESsKeyLockInd;
+            align = ESsAlignLeft;
+            priority = ESsDrawTypePrimary;
+            icon = 
+                {
+                EMbmAvkonQgn_stat_keyguard,
+                EMbmAvkonQgn_stat_keyguard,
+                EAknsMinorGenericQgnStatKeyguard,
+                EAknsMinorGenericQgnStatKeyguard
+                };
+            }
+        };
+    }
+
+// 01:20, 1:20, 13:05, 1:05 // separators are locale dependent
+RESOURCE TBUF r_screensaver_time_usual_without_ampm { buf = "%J%:1%T"; }
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaveractivitymanager.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,131 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// CScreensaverActivityManager class
+// 
+//
+
+#include "screensaveractivitymanager.h"
+
+CScreensaverActivityManager* CScreensaverActivityManager::NewL(TInt aPriority)
+	{
+	CScreensaverActivityManager* self = new (ELeave) CScreensaverActivityManager(aPriority);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CActiveScheduler::Add(self);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CScreensaverActivityManager::CScreensaverActivityManager(TInt aPriority)
+	: CTimer(aPriority), iInactiveCallback(0,0), iActiveCallback(0,0), iState(EStNotActive)
+	{
+	}
+
+
+CScreensaverActivityManager::~CScreensaverActivityManager()
+	{
+	}
+
+
+void CScreensaverActivityManager::Start(TTimeIntervalSeconds aInterval,
+		TCallBack aInactiveCallback, TCallBack aActiveCallback) 
+	{  	
+	iInterval = aInterval;
+	iInactiveCallback = aInactiveCallback;
+	iActiveCallback = aActiveCallback;
+			
+	if	(iInterval.Int() < 0)
+		{
+		iInterval = TTimeIntervalSeconds(0);
+		}
+		
+	// Cancel outstanding timer, if any
+	CTimer::Cancel();
+	
+	if (iState == EStNotActive || iState == EStMonForInactivity) 
+		{
+		// Begin or contine monitoring for user inactivity
+		MonitorInactivity();
+		}
+	else 
+		{
+		// Continue monitoring for user activity
+		Inactivity(0); 
+		}
+	}
+
+     
+void CScreensaverActivityManager::SetInactivityTimeout(TTimeIntervalSeconds aInterval)
+	{
+	if (iState <= EStNotActive)
+    	{
+    	}
+	Start(aInterval, iInactiveCallback, iActiveCallback); 
+	}
+
+
+void CScreensaverActivityManager::MonitorInactivity()
+	{
+	if (User::InactivityTime() >= iInterval) 
+		{
+		// Already inactive enough, monitor for activity
+		iState = EStMonForActivity;
+		// Monitor for activity, set timer before callback to avoid missing any
+		// user activity should callback take some time.
+		Inactivity(0); 
+		// Inform client that the inactivity interval has ended.
+        (void) iInactiveCallback.CallBack();
+		}
+	else
+		{
+		// Monitor for Inactivity
+		iState = EStMonForInactivity;
+		Inactivity(iInterval);
+		}
+	}
+
+
+void CScreensaverActivityManager::RunL()
+	{
+	if (iStatus == KErrNone)
+		{
+		if (iState == EStMonForInactivity) 
+			{
+			// Looking for Inactivity, found it
+	   	    // Monitor for activity, set timer before callback to avoid missing 
+		    // any user activity should callback take some time.
+       		iState = EStMonForActivity;
+			Inactivity(0); 
+			// Inform client that the inactivity interval has ended.
+ 			(void) iInactiveCallback.CallBack();
+			}
+		else if (iState == EStMonForActivity)
+			{
+			// Looking for activity, found it
+			// Monitor for activity unless MonitorInactivity overrides it
+    		iState = EStMonForInactivity; 
+			MonitorInactivity();
+	        (void) iActiveCallback.CallBack();
+			}	
+		else
+            { // Must never happen, indicates internal state of object incorrect.
+            
+            }
+		}
+	}
+
+TBool CScreensaverActivityManager::IsMonitoringForActivity()
+    {
+    return ( iState == EStMonForActivity );
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverappui.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,217 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   The AppUi file for screensaver application.
+*
+*/
+
+
+
+#include <eikenv.h>
+
+#include "screensavershareddatai.h"
+#include "screensaverappui.h"
+#include "screensaverengine.h"
+
+//
+// CScreensaverAppUi
+//
+// -----------------------------------------------------------------------------
+// CScreensaverAppUi::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverAppUi::ConstructL()
+    {
+    SCRLOGGER_WRITEF(_L("SCR:CScreensaverAppUi::ConstructL start") );
+    SCRLOGGER_CREATE;
+
+    // Choose orientation based on screensaverconfig
+#if defined(SS_ALWAYSPORTRAIT)
+    BaseConstructL(EAppOrientationPortrait);
+
+#elif defined(SS_ALWAYSLANDSCAPE)
+    BaseConstructL(EAppOrientationLandscape);
+
+#else
+
+    // Not specified - follows device setting
+    BaseConstructL();
+#endif
+
+    SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort | CAknAppUiBase::EDisableSendKeyLong );
+    
+    iModel = CScreensaverEngine::NewL();
+
+    CreateViewL();
+    
+    iEikonEnv->SetSystem( ETrue );
+    HideApplicationFromFSW();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverAppUi::~CScreensaverAppUi
+// -----------------------------------------------------------------------------
+//
+CScreensaverAppUi::~CScreensaverAppUi()
+    {
+
+    delete iModel;
+    iModel = NULL;
+
+    SCRLOGGER_DELETE;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverAppUi::Model
+// -----------------------------------------------------------------------------
+//
+CScreensaverEngine& CScreensaverAppUi::Model() const
+    {
+    return *iModel;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverAppUi::HandleCommandL
+// -----------------------------------------------------------------------------
+// 
+void CScreensaverAppUi::HandleCommandL( TInt aCommand )
+    {
+    switch ( aCommand )
+        {
+        case EEikCmdExit:
+            Exit();
+            break;
+        default:
+            break;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverAppUi::GetView
+// -----------------------------------------------------------------------------
+//
+CScreensaverView* CScreensaverAppUi::ScreensaverView()
+    {
+    return iView;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverAppUi::CreateViewL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverAppUi::CreateViewL()
+    {
+    SCRLOGGER_WRITEF(_L("SCR:CScreensaverAppUi::CreateViewL start") );
+    iView = CScreensaverView::NewL();
+
+    AddViewL( iView ); // transfer ownership to CAknViewAppUi
+
+    SetDefaultViewL( *iView );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverAppUi::HandleKeyEventL
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CScreensaverAppUi::HandleKeyEventL( const TKeyEvent& aKeyEvent,
+    TEventCode aType )
+    {
+    SCRLOGGER_WRITEF(_L("SCR:CScreensaverAppUi::HandleKeyEventL start") );
+    // Stop on keyup instead of keydown, otherwise the underlying
+    // app might get orphaned key up events and soil its pants. EXCEPT
+    // in preview mode stop on keydown, because the keup from starting
+    // the preview might be received here, and preview stopped before
+    // it even properly started
+    TBool stop = EFalse;
+
+    if ( !iView )
+        {
+        return EKeyWasConsumed;
+        }
+
+    if ( aType == EEventKey && aKeyEvent.iCode == EKeyNo )
+        {
+        stop = ETrue;
+        }
+    else
+        {
+        if ( iModel->ScreenSaverIsPreviewing() )
+            {
+            if ( aType == EEventKeyDown )
+                {
+                stop = ETrue;
+                }
+            }
+        else
+            {
+            if ( aType == EEventKeyUp && 
+                 !iModel->SharedDataInterface()->IsKeyguardOn() )
+                {
+                stop = ETrue;
+                }
+            }
+        }
+
+    if ( stop )
+        {
+        iModel->StopScreenSaver();
+        }
+
+    return EKeyWasConsumed;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverAppUi::HandleScreenDeviceChangedL
+// Stops screensaver as soon as screen device changes. Resourcechange
+// about e.g. resulting layout change comes annoyingly late
+// -----------------------------------------------------------------------------
+//
+void CScreensaverAppUi::HandleScreenDeviceChangedL()
+    {
+#if defined(SS_FASTSTOPONSCREENDEVICECHANGE)
+    // Slightly faster stop when screendevice changes. Instead of
+    // letting the created user activity stop, do it here.
+    // NOTE that if forced orientation is not used and there is an
+    // application that changes screen orientation for itself (e.g.
+    // viewfinder), screensaver will die here when activated if fast
+    // stop is used.
+#if !defined(SS_ALWAYSPORTRAIT) && !defined(SS_ALWAYSLANDSCAPE)
+    // Do not stop, if forced orientation is used! 
+    // Screensaver may cause a screen device change when activated,
+    // and will promptly commit suicide here
+    iModel->StopScreenSaver();
+#endif
+#endif
+
+    CAknViewAppUi::HandleScreenDeviceChangedL();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverAppUi::HandleWsEventL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverAppUi::HandleWsEventL( const TWsEvent& aEvent,
+    CCoeControl* aDestination )
+    {
+    SCRLOGGER_WRITEF(_L("SCR:CScreensaverAppUi::HandleWsEventL start") );
+    // First, let parent class handle the event
+    CAknViewAppUi::HandleWsEventL( aEvent, aDestination );
+
+    // In case of a pointer event, also stop screensaver
+    if ( aEvent.Type() == EEventPointer )
+        {
+        iModel->StopScreenSaver();
+        }
+    }
+
+//End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverbase.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,339 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   The control base class of display object.
+*
+*/
+
+
+
+#include <coecntrl.h>
+#include <power_save_display_mode.h>
+
+#include "screensaverbase.h"
+#include "screensaverview.h"
+#include "screensaverappui.h"
+#include "ScreensaverUtils.h"
+#include "screensavershareddatai.h"
+#include "screensaverutility.h"
+
+const TInt KRefreshRate = 60000000; // 60 sec
+
+
+// Time delayed before a wserv heartbeat stop request is issued.
+// Delay is needed, because draw commands may still be handled, if
+// stop request is issued right after screen refresh.
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+const TInt KCaptureDelay  = 2000000; // 2.0 sec, used to delay the capturing operation
+#else
+const TInt KCaptureDelay  = 100000; // 0.1 sec
+#endif
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::CScreensaverBase
+// -----------------------------------------------------------------------------
+//
+CScreensaverBase::CScreensaverBase()
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::~CScreensaverBase
+// -----------------------------------------------------------------------------
+//
+CScreensaverBase::~CScreensaverBase()
+    {
+    DeleteTimer( iCaptureScreenTimer );
+
+    delete iPowerSaveDisplayMode;
+
+    delete iOffScrnBmp;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::StartDrawObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverBase::StartDrawObject()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::StartDrawObject start") );
+    StartTimer();
+    
+    DrawObject();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::StopDrawObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverBase::StopDrawObject()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::StopDrawObject start") );
+    if ( LcdPartialMode() && LcdPartialMode()->Status() )
+        {
+        SCRLOGGER_WRITE("Model: StopScreenSaver(), exit power save");
+        LcdPartialMode()->Exit();
+        }
+    
+    CancelTimer();
+    
+    ClearScreen();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::DrawObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverBase::DrawObject()
+    {    
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::DrawObject start") );
+    SetRect( Rect() );
+    
+    DrawNow();
+    
+    StartCaptureScreenTimer();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::View
+// -----------------------------------------------------------------------------
+//
+CScreensaverView* CScreensaverBase::View() const
+    {
+    return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->ScreensaverView();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::Model
+// -----------------------------------------------------------------------------
+//
+const CScreensaverEngine& CScreensaverBase::Model() const
+    { 
+    return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->Model(); 
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::Array
+// -----------------------------------------------------------------------------
+//
+CScreensaverIndicatorArray& CScreensaverBase::Array() const 
+    { 
+    return Model().IndicatorArray(); 
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::SetPowerSaveDisplayActiveArea
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverBase::SetPowerSaveDisplayActiveArea( TRect& aRect )
+    {
+    // Save the requested area
+    iPowerSaveDisplayActiveArea = aRect;
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::ActivatePowerSaveDisplay
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverBase::ActivatePowerSaveDisplay( TBool aFullColors ) const
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::ActivatePowerSaveDisplay start") );
+    TInt err = KErrNone;
+
+    if ( ( Model().ScreenSaverIsOn()
+        && ( !iPowerSaveDisplayActiveArea.IsEmpty() ) ) )
+        {
+        TInt startLine = 0;
+        TInt endLine = 0;
+
+        // Normal mode - using saver bar height
+        startLine = iPowerSaveDisplayActiveArea.iTl.iY;
+        endLine = iPowerSaveDisplayActiveArea.iBr.iY;
+
+        SCRLOGGER_WRITEF( _L("SCR: Powersave supports %d lines"),
+            LcdPartialMode()->MaxLines() );
+
+        // Check whether power save mode should be used
+        // When local variation added, PS will override if local says
+        // yes, but PS says no
+        if ( Model().SharedDataInterface()->IsUsePowerSaveMode() )
+            {
+            SCRLOGGER_WRITEF( _L("SCR: Requesting powersave, lines: %d, %d"),
+                startLine, endLine );
+            TUint16* addr = ( TUint16* )iOffScrnBmp->DataAddress();
+            err = LcdPartialMode()->Set( startLine, endLine, addr, aFullColors );
+
+            Model().SharedDataInterface()->SetSSForcedLightsOn( 0 );
+            }
+        else
+            {
+            SCRLOGGER_WRITE("Power save mode not in use, not requested");
+            err = KErrCancel;
+            }
+        }
+    else
+        {
+        // Screensaver not on - cannot set power save mode on
+        err = KErrNotReady;
+        }
+
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::DrawPictographArea
+// -----------------------------------------------------------------------------
+//
+void CScreensaverBase::DrawPictographArea()
+    {
+    // Currently animation is not supported - do nothing
+    }
+
+// ----------------------------------------------------------------------------
+// CScreensaverBase::StartCaptureScreenTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverBase::StartCaptureScreenTimer()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::StartCaptureScreenTimer start") );
+    DeleteTimer( iCaptureScreenTimer );
+    
+    TRAP_IGNORE( iCaptureScreenTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
+    
+    iCaptureScreenTimer->Start( KCaptureDelay , KCaptureDelay ,
+        TCallBack( HandleCaptureTimerExpiry, this ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::InitialRefreshRate
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverBase::InitialRefreshRate()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::InitialRefreshRate start") );
+    TTime homeTime, timeTmp;
+    TTimeIntervalSeconds interval;
+    TInt initialRefresh = KRefreshRate;
+    homeTime.HomeTime();
+    timeTmp = homeTime;
+    timeTmp.RoundUpToNextMinute();
+    if ( timeTmp.SecondsFrom( homeTime, interval ) == KErrNone )
+        {
+        initialRefresh = interval.Int() * 1000000;
+        }
+    
+    return initialRefresh;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::DeleteTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverBase::DeleteTimer( CPeriodic*& aTimer )
+    {
+    if ( aTimer )
+        {
+        aTimer->Cancel();
+        delete aTimer;
+        aTimer = NULL;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::ConstructAndConnectLCDL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverBase::ConstructAndConnectLCDL()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::ConstructAndConnectLCD start") );
+    // User side handle object is created
+    TRAPD( err, iPowerSaveDisplayMode = CPowerSaveDisplayMode::NewL() );
+    if ( ( err != KErrNone ) || ( !iPowerSaveDisplayMode ) )
+        {
+        SCRLOGGER_WRITEF( _L("SCR: Model: No power save mode (err = %d)"), err );
+        }
+
+    iOffScrnBmp = new ( ELeave ) CFbsBitmap;
+    User::LeaveIfError( iOffScrnBmp->Create( Size(), EColor64K ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::LcdPartialMode
+// -----------------------------------------------------------------------------
+//
+CPowerSaveDisplayMode* CScreensaverBase::LcdPartialMode() const
+    {
+    return iPowerSaveDisplayMode;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::HandleRefreshTimerExpiry
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverBase::HandleRefreshTimerExpiry( TAny* aPtr )
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::HandleRefreshTimerExpiry start") );
+    CScreensaverBase* control = STATIC_CAST(CScreensaverBase*, aPtr);
+    
+    SCRLOGGER_WRITEF( _L("SCR: Inside CScreensaverView::HandleRefreshTimerExpiry()") );
+    
+    control->DrawObject();
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::HandleCaptureTimerExpiry
+// Handles capture screen timer timeout
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverBase::HandleCaptureTimerExpiry( TAny* aPtr )
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverBase::HandleCaptureTimerExpiry start") );
+    CScreensaverBase *control= STATIC_CAST( CScreensaverBase*, aPtr );
+    
+    SCRLOGGER_WRITEF( _L("SCR: Inside CScreensaverView::HandleWsHbStopTimerTimeout()") );
+    
+    if ( control )
+        {
+        TInt err = control->CaptureScreen();
+        control->DeleteTimer( control->iCaptureScreenTimer );
+        ScreensaverUtility::StopWServHeartBeat();
+        
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+
+        if ( KErrNone == err )
+            {
+            control->ActivatePowerSaveDisplay();
+            }
+
+#endif
+        }
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverBase::CaptureScreen
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverBase::CaptureScreen()
+    {
+    CWsScreenDevice* device = iCoeEnv->ScreenDevice();
+    TInt err = device->CopyScreenToBitmap( iOffScrnBmp, iPowerSaveDisplayActiveArea );
+    return err;
+    }
+
+//End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverctrlmovingtext.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,598 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Implementation of screensaver moving text display class.
+*
+*/
+
+#ifdef USE_DATE_AND_TEXT
+
+#include <e32def.h>
+#include <eikdef.h>
+#include <AknUtils.h>
+#include <e32math.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <screensaver.rsg>
+
+#include "screensaverappui.h"
+#include "screensavershareddatai.h"
+#include "ScreensaverUtils.h"
+#include "screensaverutility.h"
+#include "screensaverctrlmovingtext.h"
+
+const TInt KInvertedColors = 1;
+
+//The color for text and background
+const TInt KInvertedBgColor = 215;
+const TInt KInvertedTextColor = 0;
+const TInt KInvertedTextBgColor = 215;
+
+const TInt KBgColor = 0;
+const TInt KTextColor = 215;
+const TInt KTextBgColor = 210;
+
+// the minimum top value
+const TInt KMinTop = 4;
+
+const TInt KRefreshRate = 60000000; // 60 sec
+//
+// Class CScreensaverCtrlMovingText
+//
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverCtrlMovingText* CScreensaverCtrlMovingText::NewL( TDisplayObjectType aType )
+    {
+    CScreensaverCtrlMovingText* obj = new( ELeave ) CScreensaverCtrlMovingText( aType );
+    CleanupStack::PushL( obj );
+    obj->ConstructL();
+    CleanupStack::Pop();
+    return obj;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::~CScreensaverCtrlMovingText
+// -----------------------------------------------------------------------------
+//
+CScreensaverCtrlMovingText::~CScreensaverCtrlMovingText()
+    {
+    iEikonEnv->RemoveFromStack( this );
+    
+    DeleteTimer( iBarRefreshTimer );
+    DeleteTimer( iCaptureScreenTimer );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::HandleResourceChange
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::HandleResourceChange( TInt aType )
+    {
+    if ( aType == KEikDynamicLayoutVariantSwitch )//&& iType != EDisplayNone)
+        {
+        // Screen layout has changed - resize
+        SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::SizeChanged
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::SizeChanged()
+    {
+    GenerateDisplayAttributesForScreensaverBar();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::Draw
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::Draw( const TRect& aRect ) const
+    {
+    if ( !Model().ScreenSaverIsOn() && !Model().ScreenSaverIsPreviewing() )
+        {
+        return;
+        }
+
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Draw, screensaver is on or previewing") );
+    // Graphics context to draw on.
+    CWindowGc& gc = SystemGc();
+
+    // Fix for error ESMG-74Y4PE - S60 3.2 wk26, Power Saver: 
+    // Flickering when power saver is deactivated.
+    // We now clear the screen with a black brush so the screensaver 
+    // background is changed to black. There will no longer be a white
+    // intermediate screen and this will reduce the "flicker" effect.
+    gc.SetBrushColor( KRgbBlack );
+
+    // Start with a clear screen
+    gc.Clear( aRect );
+    // If there is no plugin module, indicator view overrides plugin module or
+    // plugin drawing is suspended then the standard screensaver bar is shown,
+    // let's draw it.
+
+    DrawNew( gc, aRect );
+
+    // Activate power save display mode after draw, so that
+    // the image is already in screen buffer
+    ScreensaverUtility::FlushDrawBuffer(); 
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Draw, draw finished") );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::SetMoving
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::SetMoving( TBool aMove )
+    {
+    iMoveBar = aMove;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::StartTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::StartTimer()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::StartTimer start") );
+    Model().SharedDataInterface()->SetSSForcedLightsOn( ESSForceLightsOn );
+
+    StartCaptureScreenTimer();
+
+    StartBarRefreshTimer();
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::StartTimer finish") );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::CancelTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::CancelTimer()
+    {
+    DeleteTimer( iBarRefreshTimer );
+    DeleteTimer( iCaptureScreenTimer );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::ClearScreen
+// Date & time saver
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::ClearScreen()
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::Refresh
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::Refresh()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh start") );
+    // Currently only keylock indicator is updated, because
+    // thats the only indicator whose state may change while screensaver
+    // is displaying. Other indicators' state changing also dismisses
+    // screensaver. Once redisplaying, the indicators are updated anyway.
+    // Key lock indicator depends on status of key guard.
+    TIndicatorPayload payload;
+    payload.iType = EPayloadTypeInteger;
+    
+    Array().SetDependencyStatus( ESsKeyLockInd, !Model().SharedDataInterface()->IsKeyguardOn() );
+    payload.iInteger = Model().SharedDataInterface()->UnreadMessagesNumber();
+    Array().SetIndicatorPayload( ESsNewMessagesInd, payload );
+    Array().SetDependencyStatus( ESsNewMessagesInd, ( payload.iInteger <= 0 ) );
+    Array().SetDependencyStatus( ESsVoicemailInd, !Model().SharedDataInterface()->IsHaveNewVoicemail() );
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh move") );
+    // Don't move bar during this refresh
+    SetMoving( EFalse );
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh DrawObject") );
+    // Cause a redraw
+    DrawObject();
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh move") );
+    // Allow moving
+    SetMoving();
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::Refresh finish") );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::CScreensaverCtrlMovingText
+// Date & time saver
+// -----------------------------------------------------------------------------
+//
+CScreensaverCtrlMovingText::CScreensaverCtrlMovingText( TDisplayObjectType aType )
+    :iType( aType )
+    {
+    // No implementation required
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::ConstructL()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::ConstructL start") );
+    
+    if ( iType == EDisplayText )
+        {
+        iPictoI = CAknPictographInterface::NewL( *this, *this );
+        }
+
+    iTop = KMinTop;
+    iRandSeed = RandomSeed();
+    iMoveBar = ETrue;
+
+    GetTextAndBgColor();
+    
+    CreateWindowL();
+
+    // Cannot do this earlier - it'll cause a SizeChanged()
+    SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
+
+    iEikonEnv->EikAppUi()->AddToStackL(
+        this, ECoeStackPriorityEnvironmentFilter, ECoeStackFlagRefusesFocus );
+    ConstructAndConnectLCDL();
+    ActivateL();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::DrawNew
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::DrawNew( CWindowGc& aGc, const TRect& /* aRect */) const
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::DrawNew start") );
+    // Draw bar background
+    iLayoutBar.DrawRect( aGc );
+
+    // Draw clock 
+    iLayoutClock.DrawRect( aGc );
+    iLayoutClockText.DrawText( aGc, iTextTime );
+
+    // Draw date / user text
+    iLayoutDate.DrawRect( aGc );
+
+    DrawText( aGc );
+
+    // Draw indicators
+    Array().Draw( aGc );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::DrawPictoText
+// Draws text with pictographs
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::DrawPictoText( CWindowGc &aGc ) const
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::DrawPictoText start") );
+    // Draw text and possible pictographs
+    MAknPictographDrawer* pictoDrawer = iPictoI->Interface();
+    ASSERT( pictoDrawer );
+
+    if ( ( !pictoDrawer ) || ( !pictoDrawer->ContainsPictographs( iText ) ) )
+        {
+        // Just draw normally
+        iLayoutDateText.DrawText( aGc, iText );
+        return;
+        }
+
+    // Else draw normal text with pictographs
+    aGc.UseFont( iLayoutDateText.Font() );
+    aGc.SetPenColor( iLayoutDateText.Color() );
+
+    // Calculating the offset (unfortunately not public in TAknLayoutText)
+    // copied from AknUtils TAknLayoutText::LayoutText()
+    pictoDrawer->DrawText( aGc, *iLayoutDateText.Font(), iText,
+        iLayoutDateText.TextRect(), iLayoutDateText.Font()->AscentInPixels(), 
+        iLayoutDateText.Align() );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::DrawText
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::DrawText( CWindowGc& aGc ) const
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::DrawText start") );
+    if ( iPictoI )
+        {
+        // Draw text and pictographs in the layout
+        DrawPictoText( aGc );
+        }
+    else
+        {
+        // Draw just text
+        iLayoutDateText.DrawText( aGc, iText );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::UpdateCurrentTimeL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::UpdateCurrentTimeL()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::UpdateCurrentTimeL start") );
+    // AVKON does not have proper format string for just time,
+    // load from own resources
+    FormatTextFromResourceL( iTextTime, R_SCREENSAVER_TIME_USUAL_WITHOUT_AMPM );
+
+    if ( iType == EDisplayTime )
+        {
+        FormatTextFromResourceL( iText, R_QTN_DATE_USUAL_WITH_ZERO );
+        }
+    else
+        {
+        Model().SharedDataInterface()->GetDisplayObjectText( iText );
+        }
+
+    SetAmPmIndicatorPayloadL();
+    // Convert numbers according to language
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::GenerateDisplayAttributesForScreensaverBar
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::GenerateDisplayAttributesForScreensaverBar( )
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GenerateDisplayAttributesForScreensaverBar start") );
+    // Zero out power save area, it should then be set before power save
+    // mode can be activated (also by plugins)
+    iPowerSaveDisplayActiveArea.SetRect( 0, 0, 0, 0 );
+
+    // Cool! We got scalable layouts. Use them.
+    TAknWindowComponentLayout barLayoutComponent = 
+        AknLayoutScalable_Avkon::power_save_pane();
+    iLayoutBar.LayoutRect( Rect(), barLayoutComponent.LayoutLine() );
+
+    // Add bar height from layout to get total bar height
+    TInt barHeight = iLayoutBar.Rect().Height();
+
+    // Plain refresh, no move?
+    if ( iMoveBar )
+        {
+        // Get random values for bar position and color.
+        GetRandomTopValue( iLayoutBar.Rect().Height() );
+        }
+
+    // Create a rect with the new top to be used as layout rect
+    TRect fakeScreen( Rect() );
+    fakeScreen.iTl.iY = iTop;
+
+    // Layout components
+
+    // Bar itself
+    iLayoutBar.LayoutRect( fakeScreen, barLayoutComponent.LayoutLine() );
+    TRect barRect = iLayoutBar.Rect();
+
+    // Clock (area + text)
+    GetClockLayout( barRect );
+
+    // Date (area + text)
+    GetDateLayout( barRect );
+
+    // Indicators (area + text)
+    GetIndicatorAreaLayout( barRect );
+
+    // Update current time
+    TRAP_IGNORE( UpdateCurrentTimeL() );
+
+    // Since it is known for sure at this point that screensaver
+    // bar will be drawn the partial mode can activated for bar area
+    // if it is supported by display hardware.
+    const TScreensaverColorModel& colorModel = Model().GetColorModel();
+
+    if ( colorModel.iNumberOfPartialModes > 0 )
+        {
+        TRect psRect( iLayoutBar.Rect() );
+        SetPowerSaveDisplayActiveArea( psRect );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::GetRandomTopValue
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::GetRandomTopValue( TInt aBarHight )
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetRandomTopValue start") );
+    TInt range( iCoeEnv->ScreenDevice()->SizeInPixels().iHeight - aBarHight - 1 - 4 );
+    TInt rand = Math::Rand( iRandSeed );
+    rand %= range;
+    iTop = ( rand > 3 ) ? ( rand/4 ) * 4 : 4;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::RandomValue
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverCtrlMovingText::RandomSeed()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::RandomSeed start") );
+    TTime time;
+    time.HomeTime();
+    return time.DateTime().MicroSecond();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::GetTextAndBgColor
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::GetTextAndBgColor()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetTextAndBgColor start") );
+    if( Model().SharedDataInterface()->IsInvertedColors() == KInvertedColors )
+        {
+        iBgColor = KInvertedBgColor;
+        iTextColor = KInvertedTextColor;
+        iTextBgColor = KInvertedTextBgColor;
+        }
+    else
+        {
+        iBgColor = KBgColor;
+        iTextColor = KTextColor;
+        iTextBgColor = KTextBgColor;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::FormatTextL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::FormatTextL( TDes& aText, const TDesC& aFormat )
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::FormatTextL start") );
+    TTime curTime;
+    curTime.HomeTime();
+    // Since screensaver is updated on the minute, make sure it displays
+    // the time of the passing minute by adding a few seconds to the
+    // time at the moment of the update.
+    curTime += TTimeIntervalSeconds( 5 );
+    
+    TRAPD( err, curTime.FormatL( aText, aFormat ) );
+    if ( err != KErrNone )
+        {
+        // If time can't be displayed then display an empty text
+        aText = KNullDesC;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::SetAmPmIndicatorPayload
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::SetAmPmIndicatorPayloadL()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::SetAmPmIndicatorPayloadL start") );
+    _LIT(KAmPmFormat, "%*A");
+    TBuf<10> textAmPm;
+    FormatTextL( textAmPm, KAmPmFormat );
+    
+    TIndicatorPayload payload;
+    payload.iType = EPayloadTypeText;
+    payload.iText.Zero();
+    payload.iText.Append( textAmPm );
+    Array().SetIndicatorPayload( ESsAmPmInd, payload );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::FormatTextFromResourceL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::FormatTextFromResourceL( TDes &aText, TInt aResourceId )
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::FormatTextFromResourceL start") );
+    TBuf<30> timeFormat;
+    iCoeEnv->ReadResourceL( timeFormat, aResourceId );
+    FormatTextL( aText, timeFormat );
+    AknTextUtils::DisplayTextLanguageSpecificNumberConversion( aText );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::GetClockLayout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::GetClockLayout( const TRect& aRect )
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetClockLayout start") );
+    TAknWindowComponentLayout clockarea =
+        AknLayoutScalable_Avkon::aid_ps_clock_pane( 0 );
+    TAknWindowLineLayout clockline = clockarea.LayoutLine();
+    clockline.iC = iBgColor;
+    iLayoutClock.LayoutRect( aRect, clockarea.LayoutLine() );
+
+    TAknTextComponentLayout clocktext =
+        AknLayoutScalable_Avkon::power_save_t2( 0 );
+    clocktext.SetC( iTextColor );
+    iLayoutClockText.LayoutText( aRect, clocktext.LayoutLine() );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::GetClockLayout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::GetDateLayout( const TRect& aRect )
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetDateLayout start") );
+    TAknWindowComponentLayout datearea =
+        AknLayoutScalable_Avkon::power_save_pane_g1( 0 );
+    TAknWindowLineLayout dateline = datearea.LayoutLine();
+    dateline.iC = iTextBgColor;
+    iLayoutDate.LayoutRect( aRect, dateline );
+
+    TAknTextComponentLayout datetext =
+        AknLayoutScalable_Avkon::power_save_pane_t1( 0 );
+    TAknTextLineLayout datetextline = datetext.LayoutLine();
+    iLayoutDateText.LayoutText( aRect, datetextline );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::GetClockLayout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::GetIndicatorAreaLayout( const TRect& aRect )
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::GetIndicatorAreaLayout start") );
+    TAknWindowComponentLayout indicatorarea =
+        AknLayoutScalable_Avkon::aid_ps_indicator_pane( 0 );
+    TAknWindowLineLayout indicatorline = indicatorarea.LayoutLine();
+    indicatorline.iC = iBgColor;
+    TAknLayoutRect layoutIndicatorArea;
+    layoutIndicatorArea.LayoutRect( aRect, indicatorline );
+
+    // Indicator texts
+    TAknTextComponentLayout indtext =
+        AknLayoutScalable_Avkon::power_save_pane_t4( 0 );
+    TAknTextLineLayout indline = indtext.LayoutLine();
+    TAknLayoutText layoutIndicatorText;
+    layoutIndicatorText.LayoutText( aRect, indline );
+
+    // Indicator icons
+    TAknWindowComponentLayout inds =
+        AknLayoutScalable_Avkon::indicator_ps_pane( 0 );
+    TAknWindowLineLayout indsline = inds.LayoutLine();
+    TAknLayoutRect layoutInds;
+    layoutInds.LayoutRect( aRect, indsline );
+
+    // Tell indicator array where to draw (this should be moved to
+    // the array itself)
+    Array().Setup( layoutIndicatorArea, layoutIndicatorText, layoutInds );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlMovingText::StartBarRefreshTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlMovingText::StartBarRefreshTimer()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlMovingText::StartBarRefreshTimer start") );
+    DeleteTimer( iBarRefreshTimer );
+    
+    TRAP_IGNORE( iBarRefreshTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
+    
+    TInt initialRefreshRate = InitialRefreshRate();
+    
+    iBarRefreshTimer->Start( initialRefreshRate, KRefreshRate, TCallBack(
+        HandleRefreshTimerExpiry, this ) );
+    
+    SCRLOGGER_WRITEF( _L("SCR: BarRefreshTimer->Start(%d, %d, HandleRefreshTimerExpiry)"),
+        initialRefreshRate, KRefreshRate );
+    }
+
+#endif //USE_DATE_AND_TEXT
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverctrlnone.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,195 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Implementation of screensaver none display object class.
+*
+*/
+
+
+
+#include <screensaverplugin.h>
+#include <hal.h>
+
+#include "screensaverctrlnone.h"
+#include "ScreensaverUtils.h"
+#include "screensaverappui.h"
+#include "screensavershareddatai.h"
+
+//the param to set the display off/on
+const TInt KDisplayOff = 0;
+const TInt KDisplayOn = 1;
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverCtrlNone* CScreensaverCtrlNone::NewL()
+    {
+    CScreensaverCtrlNone* self = new( ELeave ) CScreensaverCtrlNone();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::~CScreensaverCtrlNone
+// -----------------------------------------------------------------------------
+//
+CScreensaverCtrlNone::~CScreensaverCtrlNone()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::StartTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::StartTimer()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::CancelTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::CancelTimer()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::ClearScreen
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::ClearScreen()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlNone::ClearScreen start") );
+    SwitchDisplayState( KDisplayOn );
+    
+    SwitchLights( ESSForceLightsOn );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::Refresh
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::Refresh()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::DrawObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::DrawObject()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlNone::DrawObject start") );
+    SwitchDisplayState( KDisplayOff );
+    SwitchLights( ESSForceLightsOff );
+    DrawNow();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::HandleResourceChange
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::HandleResourceChange(TInt aType)
+    {
+    if ( aType == KEikDynamicLayoutVariantSwitch )//&& iType != EDisplayNone)
+        {
+        // Screen layout has changed - resize
+        SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::SizeChanged
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::SizeChanged()
+    {
+    // Nothing to be implemented
+    }
+
+// ---------------------------------------------------------------------------
+// CScreensaverCtrlNone::Draw
+// ---------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::Draw( const TRect& aRect ) const
+    {
+    if ( !Model().ScreenSaverIsOn() && !Model().ScreenSaverIsPreviewing() )
+        {
+        return;
+        }
+
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlNone::Draw, screensaver is on or previewing") );
+    CWindowGc& gc = SystemGc();
+    gc.SetBrushColor( KRgbBlack );
+    gc.Clear( aRect );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::CScreensaverCtrlNone
+// -----------------------------------------------------------------------------
+//
+CScreensaverCtrlNone::CScreensaverCtrlNone()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::ConstructL()
+    {
+    CreateWindowL();
+    SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
+    ActivateL();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::SwitchLights
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::SwitchLights( TInt aSecs )
+    {
+    Model().SharedDataInterface()->SetSSForcedLightsOn( aSecs );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlNone::SwitchDisplayState
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlNone::SwitchDisplayState( TInt aState )
+    {
+    SCRLOGGER_WRITEF(_L("SCR:CScreensaverCtrlNone::SwitchDisplayState start") );
+    TInt currentState ;
+    //Get the current display state
+    TInt result = KErrNone;
+    TRAP_IGNORE( result = HAL::Get( HALData::EDisplayState, currentState ) );
+    
+    if( KErrNone != result )
+        {
+        //if can't get the state, revert to default type
+        View()->SetDisplayObject( 
+            Model().SharedDataInterface()->DefaultScreensaverType() );
+        return;
+        }
+    
+    if ( aState != currentState ) //display already on/off; nothing to do
+        {
+        TRAP_IGNORE( HAL::Set( HALData::EDisplayState, aState ) );
+        }
+    }
+
+
+//End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverctrlplugin.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,679 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Implementation of screensaver plugin display object class.
+*
+*/
+
+
+
+#include <AknDef.h>
+#include <power_save_display_mode.h>
+
+#include "ScreensaverpluginIntDef.h"
+#include "screensaverctrlplugin.h"
+#include "screensaverview.h"
+#include "screensaverappui.h"
+#include "screensaverutility.h"
+#include "ScreensaverUtils.h"
+#include "screensavershareddatai.h"
+
+// If plugin refresh rate is lower than this threshold, wserv heartbeat
+// is stopped between redraws
+const TInt KStopWsHbPluginRefreshThreshold = 1000000; // 1 sec
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverCtrlPlugin* CScreensaverCtrlPlugin::NewL()
+    {
+    CScreensaverCtrlPlugin* self = new( ELeave ) CScreensaverCtrlPlugin();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::~CScreensaverCtrlPlugin
+// -----------------------------------------------------------------------------
+//
+CScreensaverCtrlPlugin::~CScreensaverCtrlPlugin()
+    {
+    DeleteTimer( iPluginRefreshTimer );
+    DeleteTimer( iPluginTimeoutTimer );
+    DeletePlugin();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::StartTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::StartTimer()
+    {
+    // Notify plugin that screensaver is starting
+    Model().SharedDataInterface()->SetSSForcedLightsOn( ESSForceLightsOn );
+    
+    SendPluginEvent( EScreensaverEventStarting );
+    
+    
+    StartPluginRefreshTimer();
+
+    if ( RefreshTimerValue() >= KStopWsHbPluginRefreshThreshold )
+        {
+        StartCaptureScreenTimer();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::CancelTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::CancelTimer()
+    {
+    DeleteTimer( iPluginRefreshTimer );
+    DeleteTimer( iPluginTimeoutTimer );
+    
+    SendPluginEvent( EScreensaverEventStopping );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::DrawObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::DrawObject()
+    {
+    CScreensaverBase::DrawObject();
+
+    if( iPluginFlag.IsSet( EPluginFlagSuspend ) )
+    	{
+    	Suspend( -1 );
+    	iPluginFlag.Clear( EPluginFlagSuspend );
+    	}
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::ClearScreen
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::ClearScreen()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::Refresh
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::Refresh()
+    {
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlPlugin::Refresh start") );
+    // Currently only keylock indicator is updated, because
+    // thats the only indicator whose state may change while screensaver
+    // is displaying. Other indicators' state changing also dismisses
+    // screensaver. Once redisplaying, the indicators are updated anyway.
+    // Key lock indicator depends on status of key guard.
+    TIndicatorPayload payload;
+    payload.iType = EPayloadTypeInteger;
+    
+    Array().SetDependencyStatus( ESsKeyLockInd, !Model().SharedDataInterface()->IsKeyguardOn() );
+    payload.iInteger = Model().SharedDataInterface()->UnreadMessagesNumber();
+    Array().SetIndicatorPayload( ESsNewMessagesInd, payload );
+    Array().SetDependencyStatus( ESsNewMessagesInd, ( payload.iInteger <= 0 ) );
+    Array().SetDependencyStatus( ESsVoicemailInd, !Model().SharedDataInterface()->IsHaveNewVoicemail() );
+
+    Array().SetVisibilityForIndicators();
+
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlPlugin::Refresh DrawObject") );
+    // Cause a redraw
+    DrawObject();
+
+    SCRLOGGER_WRITEF( _L("SCR:CScreensaverCtrlPlugin::Refresh finish") );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::SendPluginEvent
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverCtrlPlugin::SendPluginEvent( TScreensaverEvent aEvent )
+    {
+    if ( iPlugin )
+        {
+        TRAPD( err, iPlugin->HandleScreensaverEventL( aEvent, NULL ) );
+        return err;
+        }
+
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::PluginImplementationUid()
+// ---------------------------------------------------------------------------
+//
+TUid CScreensaverCtrlPlugin::PluginImplementationUid() const
+    {
+    return iPluginImplUid;
+    }
+
+// From MScreensaverPluginHost
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::UseStandardIndicators
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::UseStandardIndicators()
+    {
+    SCRLOGGER_WRITE("Host: UseStandardIndicators()");
+
+    iPluginFlag.Clear( EPluginFlagOverrideIndicators );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::OverrideStandardIndicators
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::OverrideStandardIndicators()
+    {
+    SCRLOGGER_WRITE("Host: OverrideStandardIndicators()");
+
+    iPluginFlag.Set( EPluginFlagOverrideIndicators );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::StandardIndicatorsUsed
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverCtrlPlugin::StandardIndicatorsUsed() const
+    {
+    SCRLOGGER_WRITE("Host: StandardIndicatorsUsed()");
+
+    return iPluginFlag.IsClear( EPluginFlagOverrideIndicators );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::SetRefreshTimerValue
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::SetRefreshTimerValue( TInt aValue )
+    {
+    SCRLOGGER_WRITEF( _L("SCR: Host: SetRefreshTimerValue(%d)"), aValue );
+
+    iPluginRefreshRate = aValue;
+    iPluginFlag.Clear( EPluginFlagTimerNotUsed );
+    StartPluginRefreshTimer();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::RefreshTimerValue
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverCtrlPlugin::RefreshTimerValue() const
+    {
+    SCRLOGGER_WRITE("Host: RefreshTimerValue()");
+
+    return iPluginRefreshRate;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::GetIndicatorPayload
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverCtrlPlugin::GetIndicatorPayload( 
+    TScreensaverIndicatorIndex aIndex, TIndicatorPayload& aResult ) const
+    {
+    SCRLOGGER_WRITEF( _L("SCR: Host: GetIndicatorPayload(%d, %x)"),
+        aIndex, &aResult );
+
+    return Model().IndicatorArray().GetIndicatorPayload( ( TScreensaverIndicatorId ) aIndex, aResult );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::SetActiveDisplayArea
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverCtrlPlugin::SetActiveDisplayArea( 
+    TRect& aRect, const TScreensaverPartialMode& aMode )
+    {
+    SCRLOGGER_WRITEF( _L("SCR: Host: SetActiveDisplayArea(<rect>, %d)"), aMode );
+    SCRLOGGER_WRITEF( _L("    -> rect: (%d, %d, %d, %d)"),
+        aRect.iTl.iX, aRect.iTl.iY, aRect.iBr.iX, aRect.iBr.iY );
+    // Make sure everything is in display memory
+    ScreensaverUtility::FlushDrawBuffer();
+
+    // Save the active area
+    TInt err = SetPowerSaveDisplayActiveArea( aRect );
+    if ( err == KErrNone )
+        {
+        // And activate power save display. Full mode = full colors
+//        err = ActivatePowerSaveDisplay( aMode.iType
+//            == EPartialModeTypeFull );
+        }
+
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::SetActiveDisplayArea
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverCtrlPlugin::SetActiveDisplayArea( 
+    TInt aStartRow, TInt aEndRow, const TScreensaverPartialMode& aMode )
+    {
+    SCRLOGGER_WRITEF( _L("SCR: Host: SetActiveDisplayArea(%d, %d, %d)"),
+        aStartRow, aEndRow, aMode );
+    
+    TRect psRect( 0, aStartRow, 1, aEndRow);
+    return SetActiveDisplayArea( psRect, aMode );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::ExitPartialMode
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::ExitPartialMode()
+    {
+    SCRLOGGER_WRITE("Host: ExitPartialMode()");
+
+    LcdPartialMode()->Exit();
+    // Make sure the partial area is empty
+    // Make this less idiotic
+    TRect psRect( 0, 0, 0, 0);
+    SetPowerSaveDisplayActiveArea( psRect );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::GetColorModel
+// -----------------------------------------------------------------------------
+//
+const TScreensaverColorModel& CScreensaverCtrlPlugin::GetColorModel() const
+    {
+    SCRLOGGER_WRITE("Host / Own use: GetColorModel()");
+
+    return Model().GetColorModel();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::Suspend
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::Suspend( TInt aTime )
+    {
+    SCRLOGGER_WRITEF( _L("SCR: Host: Suspend(%d)"), aTime );
+
+    View()->SetDisplayObject( Model().SharedDataInterface()->DefaultScreensaverType() );
+
+    CScreensaverEngine& model = MUTABLE_CAST( CScreensaverEngine&, Model() );
+    model.SetExpiryTimerTimeout( KDefaultScreenSaverTimeout );
+
+    View()->ShowDisplayObject();
+    
+    if ( aTime >= 0 )
+        {
+        model.StartSuspendTimer( aTime );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::RequestLights
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::RequestLights( TInt aSecs )
+    {
+    SCRLOGGER_WRITEF( _L("SCR: Host: RequestLights(%d)"), aSecs );
+
+    if ( aSecs <= 0 )
+        {
+        // Turn lights off, kill lights timer
+        Model().SharedDataInterface()->SetSSForcedLightsOn( 0 );
+        }
+    else
+        {
+        // Make sure nobody tries to overextend our hospitality
+        TInt secs = (aSecs > KMaxLightsOnTime) ? KMaxLightsOnTime : aSecs;
+
+        // Turn lights on, start lights timer
+        Model().SharedDataInterface()->SetSSForcedLightsOn( secs );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::DisplayInfo
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverCtrlPlugin::DisplayInfo( TScreensaverDisplayInfo* aInfo )
+    {
+    SCRLOGGER_WRITEF( _L("SCR: Host: DisplayInfo(%x)"), aInfo );
+
+    if ( !aInfo )
+        {
+        return KErrArgument;
+        }
+    // Sanity check: the indicated size of the info struct should be
+    // same or less than the actual size (allows for extensibility)
+    if ( aInfo->iSize > sizeof( TScreensaverDisplayInfo ) )
+        {
+        ASSERT( EFalse );
+        return KErrArgument;
+        }
+
+    // Fill our own perception of the info structure
+    TScreensaverDisplayInfo info;
+
+    info.iSize = aInfo->iSize;
+
+    // Currently whole screen
+    info.iRect = CCoeEnv::Static()->ScreenDevice()->SizeInPixels();
+    info.iParent = this;
+
+    // Copy only the size of the caller struct
+    Mem::Copy( aInfo, &info, aInfo->iSize );
+
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::UseRefreshTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::UseRefreshTimer( TBool aOn )
+    {
+    SCRLOGGER_WRITEF( _L("SCR: Host: UseRefreshTimer(%d)"), aOn );
+
+    if ( aOn )
+        {
+        // Use normal timer, plugin timer allowed
+        iPluginFlag.Clear( EPluginFlagTimerNotUsed );
+        }
+    else
+        {
+        // Plugin does not want Draw() calls, let timer tick the usual way
+        iPluginFlag.Set( EPluginFlagTimerNotUsed );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::RequestTimeout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::RequestTimeout( TInt aSecs )
+    {
+    CScreensaverEngine& model = MUTABLE_CAST( CScreensaverEngine&, Model() );
+    model.SetExpiryTimerTimeout( 0 );
+    StartPluginTimeoutTimer( aSecs );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::RevertToDefaultSaver
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::RevertToDefaultSaver()
+    {
+    SCRLOGGER_WRITE("Host: RevertToDefaultSaver()");
+
+    Model().SharedDataInterface()->SetDisplayObjectType( 
+        Model().SharedDataInterface()->DefaultScreensaverType() );
+    }
+
+// --- end MScreensaverPluginHost ---
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::CScreensaverCtrlPlugin
+// -----------------------------------------------------------------------------
+//
+CScreensaverCtrlPlugin::CScreensaverCtrlPlugin()
+    :iPluginFlag()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::ConstructL()
+    {
+    iPluginFlag.ClearAll();
+
+    
+    CreateWindowL();
+    
+    SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
+    ConstructAndConnectLCDL();
+    LoadPluginL( this );
+    ActivateL();
+    
+    // Notify plugin that display control has changed
+    SendPluginEvent( EScreensaverEventDisplayChanged );
+    
+    if( Model().ScreenSaverIsPreviewing() )
+        {
+        SendPluginEvent( EScreensaverEventPreview );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::HandleResourceChange
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::HandleResourceChange( TInt aType )
+    {
+    if ( aType == KEikDynamicLayoutVariantSwitch )
+        {
+        // Screen layout has changed - resize
+        SetRect( iCoeEnv->ScreenDevice()->SizeInPixels() );
+        // Notify plugin that the display has changed
+        SendPluginEvent( EScreensaverEventDisplayChanged );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::SizeChanged
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::SizeChanged()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::Draw
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::Draw( const TRect& /*aRect*/ ) const
+    {
+    
+    if ( !Model().ScreenSaverIsOn() && !Model().ScreenSaverIsPreviewing() )
+        {
+        return;
+        }
+
+    // Graphics context to draw on.
+    CWindowGc& gc = SystemGc();
+    
+    // Fix for error ESMG-74Y4PE - S60 3.2 wk26, Power Saver: 
+    // Flickering when power saver is deactivated.
+    // We now clear the screen with a black brush so the screensaver 
+    // background is changed to black. There will no longer be a white
+    // intermediate screen and this will reduce the "flicker" effect.
+    gc.SetBrushColor( KRgbBlack );
+
+    // Start with a clear screen
+    // If there is no plugin module, indicator view overrides plugin module or
+    // plugin drawing is suspended then the standard screensaver bar is shown,
+    // let's draw it.
+
+        // Let plugin module handle the drawing, unless not requested
+    
+    TInt err = KErrNone;
+    if ( iPluginFlag.IsClear( EPluginFlagTimerNotUsed ) )
+        {
+        err = iPlugin->Draw( gc );
+        }
+    //Notice:add this code to shield the issue ELWG-7SF3R3.
+    //Prevent screensaver plugin from being called unexpected draw function,
+    //which would cause chosen images are not displayed.
+    //Check the err code return by iPlugin->Draw:
+    //If draw action is correct and iPluginFlag has already been set EPluginFlagSuspend,
+    //then clear this EPluginFlagSuspend
+    if ( KErrNone == err && iPluginFlag.IsSet( EPluginFlagSuspend ) )
+        {
+        iPluginFlag.Clear( EPluginFlagSuspend );
+        }
+
+    if( err != KErrNone )
+        {
+        iPluginFlag.Set( EPluginFlagSuspend );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::LoadPluginL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::LoadPluginL(  MScreensaverPluginHost* /*aPluginHost*/ )
+    {
+    DeletePlugin();
+    LoadPluginModuleL();
+    User::LeaveIfNull( iPlugin );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::LoadPluginModule
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::LoadPluginModuleL()
+    {
+    TFileName pluginName;
+        
+    Model().SharedDataInterface()->GetPluginName( pluginName );
+    
+    // Create plugin object in the DLL
+    // Convert the UID of the given screensaver plugin from text to integer
+    // The string format of the UID: [12345678]
+    // The number inside the brackets in hexadecimal format
+    TLex lex( pluginName );
+    
+    // Skip the first character: '['
+    lex.Get();
+    
+    TUint32 tempUid;
+    
+    // Get the UID
+    TInt err = lex.Val( tempUid, EHex );
+    
+    // Bail out, if the UID is not parseable
+    if ( err != KErrNone )
+        {
+        iPlugin = NULL;
+        }
+    
+    iPluginImplUid = TUid::Uid( tempUid );
+    //codescanner will crib if leaving function inside trap is called
+    //after line break within the macro. Hence the following trap call
+    //is made in a single line
+    TRAP(err, iPlugin = STATIC_CAST( MScreensaverPlugin*, 
+        CScreensaverPluginInterfaceDefinition::NewL( iPluginImplUid ) ) );
+    
+    if( err != KErrNone )
+        return;
+    
+    TRAP( err, err = iPlugin->InitializeL( this ) );
+    
+    if( err != KErrNone )
+        {
+        // Loaded OK, but failed to initialize - cannot use plugin
+        TBool changed = Model().SharedDataInterface()->GetDisplayObjChanged();
+        if( !changed )
+            {
+            //Just activate the screensaver revert to defaultsaver
+            RevertToDefaultSaver();
+            }
+        Model().SharedDataInterface()->SetDisplayObjChanged( EFalse );
+        delete iPlugin;
+        iPlugin = NULL;
+        }
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::DeletePlugin
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::DeletePlugin()
+    {
+    if( iPlugin )
+        {
+        delete iPlugin;
+        iPlugin = NULL;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::StartPluginRefreshTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::StartPluginRefreshTimer()
+    {
+    DeleteTimer( iPluginRefreshTimer );
+
+    if( ( iPluginRefreshRate != 0 ) )
+        {
+        TRAP_IGNORE( iPluginRefreshTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
+        
+        iPluginRefreshTimer->Start( iPluginRefreshRate, iPluginRefreshRate,
+            TCallBack( HandleRefreshTimerExpiry, this ) );
+        SCRLOGGER_WRITEF( _L("SCR: iRefreshTimer->Start(%d, %d, HandleRefreshTimerExpiry)"),
+            iPluginRefreshRate,iPluginRefreshRate );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::StartPluginTimeoutTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverCtrlPlugin::StartPluginTimeoutTimer( TInt aSecs )
+    {
+    // Cancel pending timeouts
+    DeleteTimer( iPluginTimeoutTimer );
+
+    TRAP_IGNORE( iPluginTimeoutTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
+    
+    // Nothing more to do?
+    if( ( aSecs <= 0 ) || ( aSecs > ( 35 * 60 ) ) ) // 35 mins max
+        {
+        return;
+        }
+
+    TInt timeOut = aSecs * 1000000; // uSecs
+
+    iPluginTimeoutTimer->Start( timeOut, timeOut, TCallBack(
+        HandlePluginTimeoutTimerExpiry, this ) );
+    SCRLOGGER_WRITEF( _L("SCR: iPluginTimeoutTimer->Start(%d, %d, HandlePluginTimeoutTimerTimeout)"),
+        timeOut, timeOut );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverCtrlPlugin::HandlePluginTimeoutTimerExpiry
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverCtrlPlugin::HandlePluginTimeoutTimerExpiry( TAny* aPtr )
+    {
+    CScreensaverCtrlPlugin *plugin= STATIC_CAST( CScreensaverCtrlPlugin*, aPtr );
+    SCRLOGGER_WRITEF( _L("SCR: Inside CScreensaverView::HandlePluginTimeoutTimerTimeout()") );
+    if ( plugin )
+        {
+        plugin->DeleteTimer( plugin->iPluginRefreshTimer );
+        plugin->DeleteTimer( plugin->iPluginTimeoutTimer );
+        plugin->SendPluginEvent( EScreensaverEventTimeout );
+        }
+
+    return KErrNone;
+    }
+//End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverengine.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,897 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Screensaver engine class definition.
+*
+*/
+
+
+
+#include <barsread.h>
+#include <featmgr.h>
+#include <PUAcodes.hrh>
+#include <Profile.hrh>
+#include <screensaver.rsg>
+#include <AknUtils.h>
+
+#include "screensaverengine.h"
+#include "screensaverctrlmovingtext.h"
+#include "screensavershareddatai.h"
+#include "screensavershareddatamonitor.h"
+#include "screensaverappui.h"
+#include "ScreensaverUtils.h"
+#include "screensaverutility.h"
+#include "screensaveractivitymanager.h"
+
+// Minimum plugin suspension time
+const TInt KMinPluginSuspensionTime = 500000; // 0.5 sec
+
+// Inactivity timeout in seconds when keys locked
+const TInt KTimeoutShort = 5000000;
+const TInt KTimeoutPreviewLocked = 2000000;
+
+const TInt KNoPreview = 0;
+
+const TInt KPreviewTimeout = 10000000; // 10 sec
+
+const TText KSilentProfileInd= KPuaCodeSilentSymbol;
+const TText KSilentVibraInd= KPuaCodeAprofSilentVibra;
+const TText KSoundVibraInd= KPuaCodeAprofSoundVibra;
+const TText KSoundInd= KPuaCodeAprofSound;
+
+// Class CScreensaverEngine
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverEngine* CScreensaverEngine::NewL()
+    {
+    CScreensaverEngine* self = new (ELeave) CScreensaverEngine();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); //self
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::~CScreensaverEngine
+// -----------------------------------------------------------------------------
+//
+CScreensaverEngine::~CScreensaverEngine( )
+    {
+    iAsyncCb.Cancel();
+    StopActivityMonitoring( iActivityManagerScreensaver );
+    DisableSharedDataAndMonitor();
+    delete iIndicatorArray;
+    KillTimer( iPreviewTimer );
+    KillTimer( iExpiryTimer );
+    iAknUiServer.Close();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::SharedDataInterface
+// -----------------------------------------------------------------------------
+//
+CScreensaverSharedDataI* CScreensaverEngine::SharedDataInterface( ) const
+    {
+    return iSharedDataI;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::ResetInactivityTimeout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::ResetInactivityTimeout()
+    {
+    if ( iActivityManagerScreensaver )
+        {
+        SCRLOGGER_WRITEF(_L("SCR: Model: Setting inac timeout to %d secs"),
+            Timeout());
+        iActivityManagerScreensaver->SetInactivityTimeout( Timeout( ) );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::ScreenSaverIsOn
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverEngine::ScreenSaverIsOn( ) const
+    {
+    return iScreenSaverIsOn;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::ScreenSaverIsPreviewing
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverEngine::ScreenSaverIsPreviewing( ) const
+    {
+    return iScreenSaverIsPreviewing;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::StartScreenSaver
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::StartScreenSaver( )
+    {
+    SCRLOGGER_WRITE("Model: StartScreenSaver()");
+
+    // Stop if previewing. If keylock was activated, the pause timer will
+    // be started and the selected (not necessarily previewed) screensaver
+    // will start
+    if ( iScreenSaverIsPreviewing )
+        {
+        StopScreenSaver();
+        return;
+        }
+
+    // if (DisplayFlag() == 1) then screensaver can be activated
+    // else screensaver can't come during phone call.
+    // Also not OK to start until system startup has been completed
+    if ( ( !DisplayFlag() ) && ( iSharedDataI->IsSystemStartupComplete() ) )
+        {
+        if ( !iScreenSaverIsOn )
+            {
+            // Activating is done asynchronously to prevent screensaver from
+            // flashing quickly in some cases. This flashing happens e.g. when
+            // a call is missed and a note is showed about it.
+            iAsyncCb.CallBack();
+            }
+        else
+            {
+            SCRLOGGER_WRITE("Model: StartScreenSaver(): already on, ignore");
+            }
+        }
+    else
+        {
+        SCRLOGGER_WRITE("Model: SS not displaying, not allowed.");
+        ResetInactivityTimeout( );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::StopScreenSaver
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::StopScreenSaver()
+    {
+    SCRLOGGER_WRITE("Stopping Screensaver");
+    iAsyncCb.Cancel();
+
+    if ( iSharedDataI->IsKeyguardOn() || iScreenSaverIsPreviewing )
+        {
+        StartPauseTimer();
+        }
+
+    if( iScreenSaverIsOn )
+        {
+        // disconnect in StopScreenSaver, It makes sure other applications could  
+        // receive application key event when screensaver is disactivated.
+        iAknUiServer.ConnectAndSendAppsKeySuppress(EFalse);
+        // Indicate we've stopped
+        iSharedDataI->SetScreensaverStatus( EFalse );
+
+        iScreenSaverIsOn = EFalse ;
+
+        KillTimer( iExpiryTimer );
+
+        View()->HideDisplayObject();
+        }
+
+    if( iScreenSaverIsPreviewing )
+        {
+        iSharedDataI->SetScreensaverPreviewMode( KNoPreview );
+
+        iScreenSaverIsPreviewing = EFalse;
+
+        View()->HideDisplayObject();
+
+        // Update preview progress
+        iSharedDataI->SetScreensaverPreviewState( EScreenSaverPreviewEnd );
+        iSharedDataI->SetScreensaverPreviewState( EScreenSaverPreviewNone );
+
+        KillTimer( iPreviewTimer );
+        ResetInactivityTimeout();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::StartPreviewModeL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::StartPreviewModeL( )
+    {
+    SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::StartPreviewModeL()") );
+    
+    iScreenSaverIsPreviewing = ETrue;
+    // Change the display object into what's being previewed
+    View()->CreatePreviewDisplayObjectL();
+
+    if( iSharedDataI->ScreensaverPreviewState() == EScreenSaverPreviewError )
+    	{
+    	iScreenSaverIsPreviewing = EFalse;
+        return;
+    	}
+
+    StartPreviewTimer();
+    
+    UpdateIndicatorAttributes();
+    
+    if ( !View()->IsContentlessScreensaver() )
+         {
+         ScreensaverUtility::BringToForeground();
+         }
+    
+    View()->ShowDisplayObject();
+    
+    iSharedDataI->SetScreensaverPreviewState( EScreenSaverPreviewStart );
+
+    iActivityManagerScreensaver->SetInactivityTimeout(0);
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::DisplayObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::DisplayObject()
+    {
+    SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::DisplayObject()") );
+    //if the display object type is plugin, we should recreate the object
+    //cause when plugin is suspend status, it will be changed to the default
+    //type
+    if ( iSharedDataI->DisplayObjectType() == EDisplayPlugin )
+        {
+        View()->SetDisplayObject( EDisplayPlugin );
+        SetExpiryTimerTimeout( KDefaultScreenSaverTimeout );
+        }
+
+    UpdateIndicatorAttributes();
+
+    View()->ShowDisplayObject();
+
+    iSharedDataI->SetScreensaverStatus( ETrue );
+    }
+
+// ----------------------------------------------------------------------------
+// CScreensaverEngine::StartSuspendTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::StartSuspendTimer( TInt aSec )
+    {
+    KillTimer( iSuspendTimer );
+    
+    // Let's keep this operation reasonable.
+    TInt realTime = ( aSec > KMinPluginSuspensionTime ) 
+        ? aSec : KMinPluginSuspensionTime;
+
+    TRAP_IGNORE( iSuspendTimer = CPeriodic::NewL( CActive::EPriorityStandard ) );
+    
+    iSuspendTimer->Start( realTime, realTime, TCallBack(
+        HandleSuspendTimerExpiry, this ) );
+    
+    SCRLOGGER_WRITEF(_L("SCR: iSuspendTimer->Start(%d, %d, HandleSuspensionTimerTimeout)"),
+        realTime, realTime);
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::IndicatorArray
+// -----------------------------------------------------------------------------
+//
+CScreensaverIndicatorArray& CScreensaverEngine::IndicatorArray() const
+    {
+    return *iIndicatorArray;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::GetColorModel
+// -----------------------------------------------------------------------------
+//
+const TScreensaverColorModel& CScreensaverEngine::GetColorModel() const
+    {
+    SCRLOGGER_WRITE("Host / Own use: GetColorModel()");
+
+    return iColorModel;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::AddPartialModeLevel
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::AddPartialModeLevel( TInt aBpp,
+    TScreensaverPartialModeType aType )
+    {
+    TInt i;
+    for (i = 0; i < iColorModel.iNumberOfPartialModes; i++ )
+        {
+        if ( (iColorModel.iPartialModes[i].iBpp == aBpp)
+            && (iColorModel.iPartialModes[i].iType == aType) )
+            {
+            break;
+            }
+        }
+    if ( i >= iColorModel.iNumberOfPartialModes )
+        {
+        iColorModel.iPartialModes[iColorModel.iNumberOfPartialModes].iBpp
+            = aBpp;
+        iColorModel.iPartialModes[iColorModel.iNumberOfPartialModes].iType
+            = aType;
+        iColorModel.iNumberOfPartialModes++;
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::UpdateIndicatorAttributes
+//  This method is for updating screensaver indicator
+//  attributes (payloads and dependencies). This is where indicator
+//  payload values are connected to real values.
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::UpdateIndicatorAttributes()
+    {
+    SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverView::UpdateIndicatorAttributes()"));
+
+    TIndicatorPayload payload;
+
+    // First integer types.
+    payload.iType = EPayloadTypeInteger;
+
+    // Missed calls.
+    payload.iInteger = iSharedDataI->NewMissedCalls();
+    iIndicatorArray->SetIndicatorPayload( ESsMissedCallsInd, payload );
+    // Missed calls indicator depends on status of new contacts note.
+    iIndicatorArray->SetDependencyStatus( ESsMissedCallsInd,
+        !iSharedDataI->IsNCNActive() );
+
+    // Unread messages
+    payload.iInteger = iSharedDataI->UnreadMessagesNumber();
+    iIndicatorArray->SetIndicatorPayload( ESsNewMessagesInd, payload );
+    iIndicatorArray->SetDependencyStatus( ESsNewMessagesInd, (payload.iInteger > 0
+        ? EFalse : ETrue) );
+
+    // Then string types.
+    payload.iType = EPayloadTypeText;
+
+    // Profile information
+    TBool nameDisplayed = (iSharedDataI->ActiveProfile() == EProfileGeneralId) ? EFalse : ETrue;
+    TBool isSilent = iSharedDataI->IsSilentMode();
+    payload.iText.Zero( );
+
+    if ( nameDisplayed || isSilent || iShowExtendedProfileInd )
+        {
+        // append alert type indicator
+        if ( iShowExtendedProfileInd )
+            {
+            TBool isVibra = iSharedDataI->IsVibraMode( );
+            if ( isSilent )
+                {
+                payload.iText.Append( isVibra ? KSilentVibraInd
+                    : KSilentProfileInd );
+                }
+            else
+                {
+                payload.iText.Append( isVibra ? KSoundVibraInd : KSoundInd );
+                }
+            }
+        else
+            {
+            // Check if this is silent mode and we have to add indicator
+            // character to string.
+            if ( isSilent )
+                {
+                payload.iText.Append( KSilentProfileInd );
+                }
+            }
+
+        if ( nameDisplayed )
+            {
+            const TDesC& profile = iSharedDataI->ProfileName( );
+            // Don't panic if profile name is too long, 'less than' ensures
+            // the 1 free space used for silent/vibra
+            if ( profile.Length( ) < KMaxPayloadTextLength )
+                {
+                // append profile name
+                payload.iText.Append( profile );
+                }
+            }
+
+        // Profile indicator shown
+        iIndicatorArray->SetDependencyStatus( ESsProfileInd, EFalse );
+        }
+    else
+        {
+        // Profile indicator not shown
+        iIndicatorArray->SetDependencyStatus( ESsProfileInd, ETrue );
+        }
+
+    iIndicatorArray->SetIndicatorPayload( ESsProfileInd, payload );
+
+    // AM/PM indicator is text but it is updated with every draw
+    // in screensaver control, so that it changes properly even if
+    // time rolls over between draws. Note that Am/Pm information is
+    // maintained by screensaver display object, not shareddatainterface.
+    if ( AknLayoutUtils::ScalableLayoutInterfaceAvailable() )
+        {
+        // Am/Pm indicator depends on 12-hour clock
+        iIndicatorArray->SetDependencyStatus( ESsAmPmInd, !ScreensaverUtility::Query12HourClock( ) );
+        }
+    else
+        {
+        // Make sure it's not shown
+        iIndicatorArray->SetDependencyStatus( ESsAmPmInd, ETrue );
+        }
+
+
+    // Key lock indicator depends on status of key guard.
+    iIndicatorArray->SetDependencyStatus( ESsKeyLockInd, !iSharedDataI->IsKeyguardOn() );
+
+    // Instant messaging indicator depends on existence of unseen IMs
+    iIndicatorArray->SetDependencyStatus( ESsImInd, !iSharedDataI->IsHaveNewInstantMessages() );
+
+    // Mail indicator depends on existence of unseen mails
+    iIndicatorArray->SetDependencyStatus( ESsMailInd, !iSharedDataI->IsHaveNewEmail() );
+
+    // Voicemail indicator depends on existence of unseen voicemail messages
+    iIndicatorArray->SetDependencyStatus( ESsVoicemailInd, !iSharedDataI->IsHaveNewVoicemail() );
+
+    //Set visibility for indicators if selected screensaver is a plugin 
+    //which overides standard indicators
+    //TODO: Convert the iControlType to the iSettingType 
+//    if ( (iSharedDataI->ScreensaverObjectType() == EDisplayPlugin ) && 
+//        ( AppUi()->ScreensaverView()->PluginFlags() & CScreensaverView::EPluginFlagOverrideIndicators ) )
+//        {
+        iIndicatorArray->SetVisibilityForIndicators();
+//        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// Start screensaver expiry timer. When the timer expires the screensaver will
+// be stopped and hided.
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::SetExpiryTimerTimeout( TInt aTimeout )
+    {
+    SCRLOGGER_WRITEF( _L( "SCR:CScreensaverEngine::SetExpiryTimerTimeout(%d) start" ), aTimeout );
+    KillTimer( iExpiryTimer );
+
+    if ( 0 < aTimeout )
+        {
+        TRAP_IGNORE(
+            iExpiryTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+            iExpiryTimer->Start( aTimeout , aTimeout ,
+                TCallBack( HandleExpiryTimerExpiry, this ) );
+            )
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::CScreensaverEngine
+// -----------------------------------------------------------------------------
+//
+CScreensaverEngine::CScreensaverEngine() : iAsyncCb( CActive::EPriorityLow )
+    {
+    TCallBack callbackFunc( StartSaverCb, this );
+    iAsyncCb.Set( callbackFunc );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::ConstructL( )
+    {
+    SetupColorModelL();
+
+    EnableSharedDataAndMonitorL();
+    
+    iIndicatorArray = CScreensaverIndicatorArray::NewL( iSharedDataI->IsInvertedColors() );
+    
+    StartActivityMonitoringL();
+    
+    FeatureManager::InitializeLibL();
+    iShowExtendedProfileInd
+        = FeatureManager::FeatureSupported( KFeatureIdProtocolCdma );
+    FeatureManager::UnInitializeLib();
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::EnableSharedDataAndMonitorL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::EnableSharedDataAndMonitorL()
+    {
+    iSharedDataI = CScreensaverSharedDataI::NewL();
+    
+    iSharedDataMonitor = CScreensaverSharedDataMonitor::NewL( iSharedDataI );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::DisableSharedDataAndMonitor
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::DisableSharedDataAndMonitor( )
+    {
+    delete iSharedDataMonitor;
+    iSharedDataMonitor = NULL;
+    
+    delete iSharedDataI;
+    iSharedDataI = NULL;
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::StartActivityMonitoringL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::StartActivityMonitoringL( )
+    {
+    // Actually screensaver is the last exe to be launch at the startup,
+    // so when it is being launched the elapsed time(User::InactivityTime()) 
+    // is greater than the interval (15 sec) which screensaver pass to start 
+    // activitymanager for inactivitycallback.
+    // So it has to do to reset inactivitytime (User::ResetInactivityTime() ) 
+    // once in the screensaver constructor so that the inactivity callback 
+    // called after the interval time expired.
+    User::ResetInactivityTime();
+
+    // Start monitoring activity for screensaver
+    iActivityManagerScreensaver
+        = CScreensaverActivityManager::NewL( CActive::EPriorityUserInput );
+        iActivityManagerScreensaver->Start( Timeout(), 
+            TCallBack( HandleInactiveEventL,this ),
+            TCallBack( HandleActiveEventL, this ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::StopActivityMonitoring
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::StopActivityMonitoring( CScreensaverActivityManager*& aActivityManager )
+    {
+    if ( aActivityManager )
+        {
+        aActivityManager->Cancel();
+        delete aActivityManager;
+        aActivityManager = NULL;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::SetupColorModelL
+// THIS IS TEMPORARY VERSION OF SetupColorModelL function. It is used until
+// new version of LcdPartialMode module is integrated. 
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::SetupColorModelL()
+    {
+    SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::SetupColorModelL()") );
+    TResourceReader reader;
+    TInt i, ctmp;
+
+    TInt suggestedDrawingMode;
+
+    CEikonEnv::Static()->CreateResourceReaderLC( reader, R_SCREENSAVER_COLOR_MODEL );
+    suggestedDrawingMode = reader.ReadInt32( );
+
+    //
+    // Let's find out how many partial modes hardware
+    // actually supports.
+    //
+    AddPartialModeLevel( (TInt)3,
+        (TScreensaverPartialModeType)EPartialModeTypeMostPowerSaving );
+    AddPartialModeLevel( (TInt)3,
+        (TScreensaverPartialModeType)EPartialModeTypeDefault );
+    AddPartialModeLevel( (TInt)16,
+        (TScreensaverPartialModeType)EPartialModeTypeFull );
+
+    if ( suggestedDrawingMode == ESsColorModel3BitMode )
+        {
+        // This can always be done, just set default partial mode to
+        // most power saving. First try 'most power saving' and if not supported
+        // then try default. if default isn't supported leave with error code.
+        iColorModel.iSystemPartialMode.iBpp = 3;
+        iColorModel.iSystemPartialMode.iType
+            = EPartialModeTypeMostPowerSaving;
+        }
+
+    // Read color indices for 3-bit mode.
+    reader.Read( iColorModel.iColors, 8 * sizeof(TInt16) );
+
+    // Read rgb values for gradient effect.
+    for (i = 0; i < 6; i++ )
+        {
+        ctmp = reader.ReadInt32( );
+        iColorModel.iDarkGradient[i] = TRgb( ctmp );
+        }
+
+    for (i = 0; i < 6; i++ )
+        {
+        ctmp = reader.ReadInt32( );
+        iColorModel.iLightGradient[i] = TRgb( ctmp );
+        }
+
+    CleanupStack::PopAndDestroy( ); // reader
+    }
+
+// ----------------------------------------------------------------------------
+// CScreensaverEngine::StartPreviewTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::StartPreviewTimer()
+    {
+    SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::StartPreviewTimer()") );
+    
+    KillTimer( iPreviewTimer );
+    
+    TRAP_IGNORE( iPreviewTimer = CPeriodic::NewL( CActive::EPriorityHigh ) );
+    
+    iPreviewTimer->Start( KPreviewTimeout, KPreviewTimeout, TCallBack(
+        HandlePreviewTimerExpiry, this ) );
+    
+    SCRLOGGER_WRITEF(_L("SCR: iPreviewTimer->Start(%d, %d, HandlePreviewTimerTimeout)"),
+        KPreviewTimeout,KPreviewTimeout);
+    }
+
+// ----------------------------------------------------------------------------
+// CScreensaverEngine::StartPauseTimer
+// -----------------------------------------------------------------------------
+//
+void CScreensaverEngine::StartPauseTimer()
+    {
+    if ( iScreenSaverIsPreviewing )
+        {
+        iPauseTimerStartedAfterPreview = ETrue;
+        }
+  
+    TInt timeout = ( iScreenSaverIsPreviewing )? KTimeoutPreviewLocked :
+                                                 KTimeoutShort;
+    
+    KillTimer( iPauseTimer );
+    
+    TRAP_IGNORE( iPauseTimer = CPeriodic::NewL( CActive::EPriorityHigh ) );
+    
+    if ( !iPauseTimer )
+        {
+        HandlePauseTimerExpiry( this );
+        return;
+        }
+    
+    iPauseTimer->Start( timeout, timeout, TCallBack(
+        HandlePauseTimerExpiry, this ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::KillTimer
+// Stops and deletes a timer
+// -----------------------------------------------------------------------------
+//    
+void CScreensaverEngine::KillTimer( CPeriodic*& aTimer )
+    {
+    if ( aTimer )
+        {
+        aTimer->Cancel( );
+        delete aTimer;
+        aTimer = NULL;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::HandlePreviewTimerExpiry
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverEngine::HandlePreviewTimerExpiry( TAny* aPtr )
+    {
+    CScreensaverEngine* Engine = STATIC_CAST(CScreensaverEngine*, aPtr);
+    SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverView::HandlePreviewTimerTimeout()"));
+    
+    Engine->KillTimer( Engine->iPreviewTimer );
+    Engine->StopScreenSaver();
+    
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CScreensaverEngine::HandlePauseTimerExpiry
+// ---------------------------------------------------------------------------
+//
+TInt CScreensaverEngine::HandlePauseTimerExpiry( TAny* aPtr )
+    {
+    CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
+    _this->KillTimer( _this->iPauseTimer );
+    _this->iPauseTimerStartedAfterPreview = EFalse;
+
+    if ( _this->iSharedDataI->IsKeyguardOn() )
+        {
+        SCRLOGGER_WRITE("HandleInactiveEventShortL() starting saver");
+        _this->StartScreenSaver( );
+        }
+
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::HandleActiveEventL
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverEngine::HandleActiveEventL( TAny* aPtr )
+    {
+    SCRLOGGER_WRITE("HandleActiveEventL(), stop if previewing");
+    CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
+    if ( !_this->iSharedDataI->IsKeyguardOn() )
+        {
+        _this->StopScreenSaver();
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::HandleInactiveEventL
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverEngine::HandleInactiveEventL( TAny* aPtr )
+    {
+    SCRLOGGER_WRITE("HandleInactiveEventL(), starting screensaver");
+
+    CScreensaverEngine* _this= STATIC_CAST(CScreensaverEngine*, aPtr);
+    // Inactivity is detected immediately when preview starts
+    if ( _this->iScreenSaverIsPreviewing )
+        {
+        _this->ResetInactivityTimeout();
+        return KErrNone;
+        }
+    // Double-start is OK, it will be checked in StartScreenSaver()
+    // This will be trigged by keylock activation after keyguard
+    // timeout, or if keylock is disabled
+    if ( !_this->iSharedDataI->IsOngoingCall() )
+        {
+        _this->StartScreenSaver( );
+        }
+
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::HandleSuspendTimerExpiry
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverEngine::HandleSuspendTimerExpiry( TAny* aPtr )
+    {
+    CScreensaverEngine* control= STATIC_CAST(CScreensaverEngine*, aPtr);
+    SCRLOGGER_WRITEF(_L("SCR: Inside CScreensaverEngine::HandleSuspendTimerExpiry()"));
+
+    control->KillTimer( control->iSuspendTimer );
+    
+    control->View()->SetDisplayObject( EDisplayPlugin );
+    control->View()->ShowDisplayObject();
+
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CScreensaverEngine::HandleKeyguardStateChanged
+// ---------------------------------------------------------------------------
+//
+void CScreensaverEngine::HandleKeyguardStateChanged( TBool aEnabled )
+    {
+    if ( aEnabled )
+        {
+        // Keys locked - if screensaver is running, this was caused by
+        // automatic keyguard and screensaver should refresh the view
+        // to show the keylock indicator
+        if ( iScreenSaverIsOn && !iScreenSaverIsPreviewing )
+            {
+            View()->UpdateAndRefresh();
+            }
+        if ( !( iPauseTimerStartedAfterPreview && 
+                iPauseTimer && iPauseTimer->IsActive() ) )
+            {
+            StartScreenSaver();
+            }
+        }
+    else
+        {
+        StopScreenSaver();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::View
+// -----------------------------------------------------------------------------
+//
+CScreensaverView* CScreensaverEngine::View() const
+    {
+    return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->ScreensaverView();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::Timeout
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverEngine::Timeout( )
+    {
+    return iSharedDataI->ScreensaverTimeout( );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverEngine::DisplayFlag
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverEngine::DisplayFlag( )
+    {
+    return iSharedDataI->IsScreenSaverAllowed();
+    }
+
+
+// -----------------------------------------------------------------------------
+// Handles expire timer timeout
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverEngine::HandleExpiryTimerExpiry( TAny* aPtr )
+    {
+    SCRLOGGER_WRITEF( _L( "SCR:CScreensaverEngine::HandleExpiryTimerExpiry(%d) start" ), aPtr );
+    CScreensaverEngine *control = STATIC_CAST( CScreensaverEngine*, aPtr );
+
+    if ( control )
+        {
+        control->KillTimer( control->iExpiryTimer );
+        // Revert to default screensaver.
+        control->View()->SetDisplayObject(
+            control->SharedDataInterface()->DefaultScreensaverType() );
+        control->View()->ShowDisplayObject();
+        }
+
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// Callback to do the screensaver starting.
+// ---------------------------------------------------------------------------
+//
+TInt CScreensaverEngine::StartSaverCb( TAny* aPtr )
+    {
+    CScreensaverEngine* self = static_cast<CScreensaverEngine*>( aPtr );
+    // connect in StartScreenSaver, intercept and capture application 
+    // key event. It makes sure this event will not be received 
+    // by other applictions when screensaver is activated.
+    self->iAknUiServer.ConnectAndSendAppsKeySuppress(ETrue);
+    self->iScreenSaverIsOn = ETrue;
+
+    // Report whether started from Idle BEFORE bringing to foreground
+    self->iSharedDataI->SetSSStartedFromIdleStatus();
+
+    if ( !self->View()->IsContentlessScreensaver() )
+        {
+        ScreensaverUtility::BringToForeground();
+        }
+
+    SCRLOGGER_WRITE("Model: SS is displaying (BringToForeground)");
+
+    // Compress heap while displaying. No longer possible to
+    // compress all heaps (User::CompressAllHeaps() is a no-op)
+    User::Heap().Compress();
+
+    self->iSharedDataI->SetDisplayObjChanged( EFalse );
+    
+    self->DisplayObject();
+    
+    return KErrNone;
+    }
+
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverindicator.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,220 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Implementation screensaver indicator array.
+*
+*/
+
+
+
+#include <AknUtils.h>
+#include <barsread.h>
+#include <biditext.h>
+#include <AknsConstants.h>
+#include <AknsUtils.h>
+#include <aknlayout.cdl.h>
+#include <AknLayoutFont.h>
+#include <screensaver.rsg>
+
+#include "screensaverplugin.h"
+#include "screensaverindicator.h"
+#include "ScreensaverUtils.h"
+
+
+
+//
+// CSCreensaverIndicator
+//
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::~CScreensaverIndicator
+// -----------------------------------------------------------------------------
+//
+CScreensaverIndicator::~CScreensaverIndicator()
+    {    
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicator::ConstructL(TResourceReader &aReader,
+        TUint32 aBgColor, TUint aTextColor)
+    {
+    iId = (TScreensaverIndicatorId)aReader.ReadInt16();
+    iDrawType = (TScreensaverDrawType)aReader.ReadInt16();
+    iAlignment = (TScreensaverAlignment)aReader.ReadInt16();
+
+    // Switch left & right alignment of indicators, if layout mirrored
+    if (AknLayoutUtils::LayoutMirrored())
+        {
+        if (iAlignment == ESsAlignLeft)
+            {
+            iAlignment = ESsAlignRight;
+            }
+        else
+            {
+            iAlignment = ESsAlignLeft;
+            }
+        }
+    iBgColor = TRgb(aBgColor);
+    iTextColor = TRgb(aTextColor);
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::SetId
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicator::SetId(TScreensaverIndicatorId aId)
+    {
+    iId = aId;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::Visible
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverIndicator::Visible() const
+    {
+    return iVisible;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::SetVisibility
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicator::SetVisibility(TBool aValue)
+    {
+    iVisible = aValue;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::Width()
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverIndicator::Width() const
+    {
+    return iRect.Width();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::Id
+// -----------------------------------------------------------------------------
+//
+TScreensaverIndicatorId CScreensaverIndicator::Id() const
+    {
+    return iId;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::Alignment
+// -----------------------------------------------------------------------------
+//
+TScreensaverAlignment CScreensaverIndicator::Alignment() const
+    {
+    return iAlignment;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::DrawType
+// -----------------------------------------------------------------------------
+//
+TScreensaverDrawType CScreensaverIndicator::DrawType() const
+    {
+    return iDrawType;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::MakeSkinItemId
+// -----------------------------------------------------------------------------
+//
+TAknsItemID CScreensaverIndicator::MakeSkinItemId(TInt aSkinBmpId)
+    {
+    TAknsItemID id;
+    // All are AVKON generic ids
+    id.Set(EAknsMajorGeneric, aSkinBmpId);
+    return id;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::SetType
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicator::SetType(TScreensaverIndicatorType aType)
+    {
+    iType = aType;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::Type
+// -----------------------------------------------------------------------------
+//
+TScreensaverIndicatorType CScreensaverIndicator::Type()
+    {
+    return iType;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::SetIconLayout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicator::SetIconLayout(TAknLayoutRect&, TInt) 
+    {
+    iVisible = ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::SetTextLayout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicator::SetTextLayout(TAknLayoutText&, TInt) 
+    {
+    iVisible = ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::PreferredWidth
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverIndicator::PreferredWidth() 
+    { 
+    return -1; 
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::MinimumWidth
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverIndicator::MinimumWidth() 
+    { 
+    return 0; 
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::SetWidth
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicator::SetWidth(TInt) 
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicator::SetXPos
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicator::SetXPos(TInt) 
+    {
+    }
+
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverindicatorarray.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,498 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverIndicatorArray implementation.
+*
+*/
+
+
+
+#include <barsread.h>
+#include <screensaver.rsg>
+#include <AknUtils.h>
+
+#include "screensaverindicatorarray.h"
+#include "screensaverindicatornumberandicon.h"
+#include "screensaverindicatortext.h"
+#include "screensaverindicatoricon.h"
+#include "screensaverutility.h"
+
+const TInt KInvertedColors = 1;
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverIndicatorArray* CScreensaverIndicatorArray::NewL( TBool aColorInversionUsed )
+    {
+    CScreensaverIndicatorArray* array = new(ELeave) CScreensaverIndicatorArray();
+    CleanupStack::PushL(array);
+    array->ConstructL( aColorInversionUsed );
+    CleanupStack::Pop(); // array
+
+    return array;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::~CScreensaverIndicatorArray
+// -----------------------------------------------------------------------------
+//
+CScreensaverIndicatorArray::~CScreensaverIndicatorArray()
+    {
+    if (iIndicators)
+        {
+        iIndicators->ResetAndDestroy();
+        }
+    delete iIndicators;
+    delete iDependencyRecord;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::NewIndicatorLC
+// -----------------------------------------------------------------------------
+//
+CScreensaverIndicator *CScreensaverIndicatorArray::NewIndicatorLC(
+        TScreensaverIndicatorType aId)
+    {
+    CScreensaverIndicator *result= NULL;
+
+    switch (aId)
+        {
+        case ESsIconIndicator:
+            result = new( ELeave ) CScreensaverIndicatorIcon();
+            break;
+        case ESsTextIndicator:
+            result = new( ELeave ) CScreensaverIndicatorText();
+            break;
+        case ESsNumberAndIconIndicator:
+            result = new( ELeave ) CScreensaverIndicatorNumberAndIcon();
+            break;
+        default:
+            User::Leave(KErrCorrupt);
+        }
+
+    CleanupStack::PushL( result );
+    result->SetType(aId);
+
+    return result;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::ConstructL( TBool aColorInversionUsed )
+    {
+    if (aColorInversionUsed == KInvertedColors)
+        {
+        iBgColor = TRgb(KRgbBlack).Value();
+        iTextColor = TRgb(KRgbWhite).Value();
+        }
+    else //aColorInversionUsed == KNormalColors
+        {
+        iBgColor = TRgb(KRgbWhite).Value();
+        iTextColor = TRgb(KRgbBlack).Value();
+        }
+    
+    ConstructFromResourceL();
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::ConstructFromResourceL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::ConstructFromResourceL()
+    {
+    ConstructParamFromResourceL();
+
+    ConstructIndArrayL();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::ConstructParamFromResourceL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::ConstructParamFromResourceL()
+    {
+    TResourceReader reader;
+
+    CEikonEnv::Static()->CreateResourceReaderLC( reader, R_SCREENSAVER_PARAMETERS );
+    iMargin = reader.ReadInt16();
+    iGap = reader.ReadInt16();
+    iTopMargin = reader.ReadInt16();
+    iTextLevel = reader.ReadInt16();
+    iHeight = reader.ReadInt16();
+    CleanupStack::PopAndDestroy(); // reader
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::ConstructIndArrayL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::ConstructIndArrayL()
+    {
+    if( AknLayoutUtils::ScalableLayoutInterfaceAvailable() )
+        {//use the new layout
+        ConstructIndicatorsL( R_SCREENSAVER_INDICATOR_ARRAY_NEW_LAYOUT );
+        }
+    else
+        {//use the old layout
+        ConstructIndicatorsL( R_SCREENSAVER_INDICATOR_ARRAY );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::ConstructIndicatorsL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::ConstructIndicatorsL( TInt aResourceId )
+    {
+    TResourceReader reader;
+
+    CEikonEnv::Static()->CreateResourceReaderLC(
+        reader, aResourceId);
+    
+    iCount = reader.ReadInt16();
+
+    iIndicators = new( ELeave ) CArrayPtrFlat<CScreensaverIndicator>( iCount );
+    iDependencyRecord = new( ELeave ) CArrayFixFlat<TBool>( iCount );
+
+    CScreensaverIndicator *nInd;
+    TInt32 type;
+    for (TInt i = 0; i < iCount; i++)
+        {
+        iDependencyRecord->AppendL( ETrue );
+        type = reader.ReadInt32();
+        nInd = NewIndicatorLC( ( TScreensaverIndicatorType ) type );
+        nInd->ConstructL( reader, iBgColor, iTextColor );
+        iIndicators->InsertL( 0, nInd );
+        CleanupStack::Pop(); // nInd
+        }
+
+    CleanupStack::PopAndDestroy(); // reader
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::Dependency
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverIndicatorArray::Dependency(TInt aIndex) const
+    {
+    return (*iDependencyRecord)[aIndex];
+    }
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::Setup
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::Setup( TAknLayoutRect& aLayoutRect,
+        TAknLayoutText& aLayoutText, TAknLayoutRect& aLayoutInds )
+    {
+    // Reset drawing parameters (do not use those defined in resources)
+    iRect = aLayoutRect.Rect();
+
+    TInt rightMargin = 0;
+    // Left margin = indicators left edge - indicator area left edge
+    // Right margin = 0, the AM/PM indicator needs to be on the edge
+    // Except when mirrored the other way around. Right margin can be reduced
+    // by 1 when mirrored, because the icons contain a border on top & right 
+    if ( AknLayoutUtils::LayoutMirrored() )
+        {
+        iMargin = 0;
+        rightMargin = aLayoutInds.Rect().iTl.iX - iRect.iTl.iX - 1;
+        }
+    else
+        {
+        iMargin = aLayoutInds.Rect().iTl.iX - iRect.iTl.iX;
+        rightMargin = 0;
+        }
+
+    TInt currentX = iRect.iBr.iX - rightMargin;
+
+    TInt leftmostRightAlignedBorder = iRect.iBr.iX - rightMargin; // iMargin;
+
+    // This is done in two passes, first we set up right-aligned indicators
+    // and then left-aligned. If any left-aligned indicator overlaps with leftmost
+    // right-aligned indicator the the process is stopped (right-aligned
+    // indicators have higher priority).
+    for ( TInt i = 0; i < iIndicators->Count(); i++ )
+        {
+        if (iIndicators->At(i)->Alignment() != ESsAlignRight)
+            {
+            continue;
+            }
+        
+        SetIndicatorsAttribute( i, aLayoutText, aLayoutInds, currentX );
+
+        if (iIndicators->At(i)->Visible())
+            {
+            currentX -= iIndicators->At(i)->Width() + iGap;
+            leftmostRightAlignedBorder = currentX;
+            if (currentX < iMargin)
+                {
+                break;
+                }
+            }
+        }
+
+    // Start second round from left edge
+    currentX = iRect.iTl.iX + iMargin;
+    for ( TInt i = 0; i < iIndicators->Count(); i++ )
+        {
+        if (iIndicators->At(i)->Alignment() != ESsAlignLeft)
+            {
+            continue;
+            }
+        
+        SetIndicatorsAttribute( i, aLayoutText, aLayoutInds, currentX );
+
+        if (iIndicators->At(i)->Visible())
+            {
+            if (currentX + iIndicators->At(i)->Width() + iGap >= leftmostRightAlignedBorder)
+                {
+                iIndicators->At(i)->SetVisibility(EFalse);
+                break;
+                }
+            currentX += iIndicators->At(i)->Width() + iGap;
+            if (currentX > iRect.Width() - iMargin)
+                {
+                break;
+                }
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::SetIndicatorsAttribute
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::SetIndicatorsAttribute( 
+        TInt& Ind,
+        TAknLayoutText& aLayoutText,
+        TAknLayoutRect& aLayoutInds,
+        TInt& aCurrentX )
+    {
+
+    // Set text layout for text containing indicators
+    iIndicators->At(Ind)->SetTextLayout(aLayoutText, aCurrentX);
+
+    // Set icon layout for icon containing indicators
+    iIndicators->At(Ind)->SetIconLayout(aLayoutInds, aCurrentX);
+
+    // Not visible, if conditions (e.g. there's icon & payload) are not met,
+    // or there's no reason to show the indicator
+    if (!iIndicators->At(Ind)->CheckVisibilityConditions() || Dependency(iIndicators->At(Ind)->Id()))
+        {
+        iIndicators->At(Ind)->SetVisibility(EFalse);        
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::Draw
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::Draw(CWindowGc& aGc) const
+    {
+    aGc.SetBrushColor(iBgColor);
+    aGc.SetPenColor(iTextColor);
+    aGc.Clear(iRect);
+
+    for (TInt i = 0; i < iIndicators->Count(); i++)
+        {
+        if (iIndicators->At(i)->Visible())
+            {
+            iIndicators->At(i)->Draw(aGc);
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::CheckDependencyConflict
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverIndicatorArray::CheckDependencyConflict(
+        TScreensaverIndicatorId aId) const
+    {
+    if ((iDependencyRecord) && (aId < iCount))
+        {
+        return Dependency(aId);
+        }
+
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::SetDependencyStatus
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::SetDependencyStatus(
+        TScreensaverIndicatorId aId, TBool aValue)
+    {
+    if ((iDependencyRecord) && (aId < iCount))
+        {
+        (*iDependencyRecord)[aId] = aValue;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::GetIndicatorPayload
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverIndicatorArray::GetIndicatorPayload(
+        TScreensaverIndicatorId aId, TIndicatorPayload& aPayload) const
+    {
+    if (aId < iCount)
+        {
+        for (TInt i = 0; i < iIndicators->Count(); i++)
+            {
+            if (aId == iIndicators->At(i)->Id())
+                {
+                iIndicators->At(i)->Payload(aPayload);
+                return KErrNone;
+                }
+            }
+        }
+
+    return KErrCorrupt;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::SetIndicatorPayload
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverIndicatorArray::SetIndicatorPayload(
+        TScreensaverIndicatorId aId, const TIndicatorPayload& aPayload)
+    {
+    if (aId < iCount)
+        {
+        for (TInt i = 0; i < iIndicators->Count(); i++)
+            {
+            if (aId == iIndicators->At(i)->Id())
+                {
+                iIndicators->At(i)->SetPayload(aPayload);
+                return KErrNone;
+                }
+            }
+        }
+
+    return KErrCorrupt;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::PreferredDrawingMode
+// -----------------------------------------------------------------------------
+//
+TScreensaverDrawType CScreensaverIndicatorArray::PreferredDrawingMode() const
+    {
+    TScreensaverDrawType result = ESsDrawTypeNotDrawn; // Default mode.
+
+    for (TInt i = 0; i < iIndicators->Count(); i++)
+        {
+        if ((iIndicators->At(i)->CheckVisibilityConditions() == EFalse)
+                || (CheckDependencyConflict(iIndicators->At(i)->Id())))
+            {
+            // This indicator can't be visible or there is 
+            // dependency conflict -> continue.
+            continue;
+            }
+
+        switch (iIndicators->At(i)->DrawType())
+            {
+            case ESsDrawTypePrimary:
+                // Primary draw type overides everything,
+                // so we can return immediately. 
+                return ESsDrawTypePrimary;
+            case ESsDrawTypeSecondary:
+                result = ESsDrawTypeSecondary;
+                break;
+            default:
+                break;
+            }
+        }
+
+    return result;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::ActualDrawingMode
+// -----------------------------------------------------------------------------
+//
+TScreensaverDrawType CScreensaverIndicatorArray::ActualDrawingMode() const
+    {
+    TScreensaverDrawType result = ESsDrawTypeNotDrawn; // Default mode.
+    
+    for (TInt i = 0; i < iIndicators->Count(); i++)
+        {
+        if ((iIndicators->At(i)->CheckVisibilityConditions() == EFalse)
+                || !( iIndicators->At(i)->Visible() ) )
+            {
+            // This indicator can't be visible or it is visible
+            continue;
+            }
+        
+        switch (iIndicators->At(i)->DrawType())
+            {
+            case ESsDrawTypePrimary:
+                return ESsDrawTypePrimary; // Primary draw type overides everything.
+            case ESsDrawTypeSecondary:
+                result = ESsDrawTypeSecondary;
+                break;
+            default:
+                break;
+            }
+        }
+
+    return result;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::Height
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverIndicatorArray::Height() const
+    {
+    return iHeight;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::SetVisibilityForIndicators
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorArray::SetVisibilityForIndicators()
+    {
+    for (int i = 0; i < iIndicators->Count(); i++)
+        {
+        // Not visible, if conditions (e.g. there's icon & payload) are not met,
+        // or there's no reason to show the indicator
+        if (!iIndicators->At(i)->CheckVisibilityConditions() || Dependency(iIndicators->At(i)->Id()))
+            {
+            iIndicators->At(i)->SetVisibility(EFalse);
+            }
+        else
+            iIndicators->At(i)->SetVisibility(ETrue);
+        }
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIndicatorArray::CScreensaverIndicatorArray
+// -----------------------------------------------------------------------------
+//
+CScreensaverIndicatorArray::CScreensaverIndicatorArray()
+    {
+    
+    }
+
+// End of files
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverindicatoricon.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,218 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverIndicatorIcon implementation.
+*
+*/
+
+
+
+#include <AknsUtils.h>
+#include <barsread.h>
+
+#include "screensaverindicatoricon.h"
+
+//
+// CScreensaverIconIndicator
+//
+
+// -----------------------------------------------------------------------------
+// CScreensaverIconIndicator::~CScreensaverIconIndicator
+// -----------------------------------------------------------------------------
+//
+CScreensaverIndicatorIcon::~CScreensaverIndicatorIcon()
+    {
+    delete iIcon;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIconIndicator::Draw
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorIcon::Draw(CWindowGc& aGc) const
+    {
+    aGc.SetPenColor(iTextColor);
+    aGc.SetBrushColor(iBgColor);
+    if (Visible() && iIcon)
+        {
+        if (!iIcon->Mask())
+            {
+            aGc.BitBlt(iTopLeft, iIcon->Bitmap(), iRect);
+            }
+        else
+            {
+            aGc.BitBltMasked(iTopLeft, iIcon->Bitmap(), iRect, iIcon->Mask(),
+                    ETrue);
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIconIndicator::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorIcon::ConstructL(TResourceReader &aReader,
+        TUint32 aBgColor, TUint aTextColor)
+    {
+    CScreensaverIndicator::ConstructL(aReader, aBgColor, aTextColor);
+
+    // Icon & mask ids
+    TInt id = aReader.ReadInt32();
+    TInt maskid = aReader.ReadInt32();
+
+    // Icon & mask skin identifiers
+    TInt skinid = aReader.ReadInt32();
+    TInt skinmaskid = aReader.ReadInt32();
+
+    iIcon = CGulIcon::NewL();
+
+    CFbsBitmap* bmp= NULL;
+    CFbsBitmap* mask= NULL;
+
+    // Load skinned bitmap
+    AknsUtils::CreateColorIconLC(AknsUtils::SkinInstance(),
+            MakeSkinItemId(skinid),
+            KAknsIIDNone, // Lie so that we get default color, not skin color
+            0, // No color group
+            bmp, mask, AknIconUtils::AvkonIconFileName(), id, maskid,
+            iTextColor);
+
+    CleanupStack::Pop(2);
+
+    // Save the icon
+    iIcon->SetBitmap(bmp);
+    iIcon->SetMask(mask);
+
+    // Set initial size for SVG graphics, this is later altered
+    // as the layout is known
+    // Set desired size for SVG graphics (height from LAF, width 3 x height)
+    TAknLayoutRect screenLayout;
+    screenLayout.LayoutRect(TRect(0, 0, 0, 0), AknLayout::screen() );
+    TRect screenRect = screenLayout.Rect();
+    TAknLayoutRect powerSavePaneLayout;
+    powerSavePaneLayout.LayoutRect(screenRect,
+            AknLayout::Power_save_pane_descendants_Line_1() );
+    TRect powerSavePaneRect = powerSavePaneLayout.Rect();
+    TAknLayoutRect rect;
+    rect.LayoutRect(powerSavePaneRect,
+            AknLayout::Power_save_pane_descendants_Line_3() );
+    TInt height = rect.Rect().Height();
+    TSize iconSize(3 * height, height);
+    AknIconUtils::SetSize(iIcon->Bitmap(), iconSize);
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIconIndicator::SetupDrawingParameters
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorIcon::SetupDrawingParameters(const TPoint &aCorner,
+        const TRect& aParentRect)
+    {
+    iVisible = EFalse;
+
+    if (!iIcon)
+        {
+        return;
+        }
+
+    TSize size = iIcon->Bitmap()->SizeInPixels();
+    iTopLeft.iX = aCorner.iX;
+    if (iAlignment == ESsAlignRight)
+        {
+        // Change topright to topleft.      
+        iTopLeft.iX -= size.iWidth;
+        }
+    // Center bitmap in y direction.
+    iTopLeft.iY = aCorner.iY + (aParentRect.Size().iHeight / 2) - (size.iHeight / 2) - 2;
+
+    iRect = TRect(0, 0, size.iWidth, size.iHeight);
+
+    iVisible = ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIconIndicator::CheckVisibilityConditions
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverIndicatorIcon::CheckVisibilityConditions() const
+    {
+    return (iIcon == 0 ? EFalse : ETrue);
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIconIndicator::Payload
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorIcon::Payload(TIndicatorPayload& aPayload) const
+    {
+    aPayload.iType = EPayloadTypeIcon;
+    aPayload.iInteger = -1;
+    aPayload.iText = KNullDesC;
+    aPayload.iIsDisplayed = Visible();
+    aPayload.iIcon = iIcon;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIconIndicator::SetPayload
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorIcon::SetPayload(const TIndicatorPayload& /*aPayload*/)
+    {
+    // Nothing to set, payload is icon and it is created from resources.    
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverIconIndicator::SetIconLayout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorIcon::SetIconLayout(TAknLayoutRect& aLayout, TInt aX)
+    {
+    if (!iIcon)
+        {
+        ASSERT(iIcon);
+        return;
+        }
+
+    // Resize icon according to layout
+    TInt height = aLayout.Rect().Height();
+    TSize iconSize(KMaxTInt, height);
+    AknIconUtils::SetSize(iIcon->Bitmap(), iconSize,
+            EAspectRatioPreservedAndUnusedSpaceRemoved);
+
+    // Set vertical icon position according to layout (this overrides
+    // what's already there. Also set correct width in iRect
+    iTopLeft.iY = aLayout.Rect().iTl.iY;
+    iTopLeft.iX = aX;
+    TSize size = iIcon->Bitmap()->SizeInPixels();
+    iRect = TRect(0, 0, size.iWidth, size.iHeight);
+
+    if (iAlignment == ESsAlignRight)
+        {
+        // Change topright to topleft.
+        iTopLeft.iX -= size.iWidth;
+        }
+
+#ifdef SS_LAYOUTTRACE
+    SCRLOGGER_WRITEF(_L("SCR: Icon indicator (%d):"), iId);
+    SCRLOGGER_WRITEF(_L("SCR:   Rect: (%d,%d,%d,%d)"),
+            iRect.iTl.iX,
+            iRect.iTl.iY,
+            iRect.iBr.iX,
+            iRect.iBr.iY);
+    SCRLOGGER_WRITEF(_L("SCR:   Size: (%d,%d)"), size.iWidth, size.iHeight);
+    SCRLOGGER_WRITEF(_L("SCR:   Pos:  (%d,%d)"), iTopLeft.iX, iTopLeft.iY);
+#endif
+    }
+
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverindicatornumberandicon.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,434 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverIndicatorNumberAndIcon implementation.
+*
+*/
+
+
+
+#include <barsread.h>
+#include <AknsUtils.h>
+#include <AknLayoutFont.h>
+
+#include "screensaverindicatornumberandicon.h"
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::~CScreensaverNumberAndIconIndicator
+// -----------------------------------------------------------------------------
+//
+CScreensaverIndicatorNumberAndIcon::~CScreensaverIndicatorNumberAndIcon()
+    {
+    delete iIcon;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::Draw
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::Draw( CWindowGc& aGc ) const
+    {
+    TBuf<10> nStr;
+    nStr.AppendNum( iValue );
+
+    aGc.SetPenColor( iTextColor );
+    aGc.SetBrushColor( iBgColor );
+
+    if ( iFont )
+        {
+        aGc.UseFont( iFont );
+        }
+    else
+        {
+        ASSERT( iFont != NULL );
+        aGc.UseFont( CEikonEnv::Static()->AnnotationFont() );
+        }
+
+    if ( Visible() && iIcon )
+        {
+        // Convert number according to language
+        AknTextUtils::DisplayTextLanguageSpecificNumberConversion( nStr );
+
+        DrawIcon( aGc );
+
+        // Draw number beside icon
+        if ( ( iTextRect.IsEmpty() ) || ( !iFont ) )
+            {
+            // Draw using text position (old layout)
+            aGc.DrawText( nStr, iTextPos );
+            }
+        else
+            {
+            // Use text rect
+            ASSERT( iTextOffset> 0 );
+            aGc.DrawText( nStr, iTextRect, iTextOffset );
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::ConstructL( TResourceReader &aReader,
+        TUint32 aBgColor, TUint aTextColor )
+    {
+    CScreensaverIndicator::ConstructL( aReader, aBgColor, aTextColor );
+
+    iIconAlign = ( TScreensaverAlignment )aReader.ReadInt32();
+    iFont = AknLayoutUtils::FontFromId( aReader.ReadInt32() );
+    if ( !iFont )
+        {
+        iFont = LatinPlain12();
+        }
+
+    // create icon
+    InitializeIconL( aReader );
+
+    // Set desired size for SVG graphics (height from LAF, width 3 x height)
+    InitializeLayout();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::SetupDrawingParameters
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::SetupDrawingParameters(
+        const TPoint& aCorner, const TRect& aParentRect )
+    {
+    iVisible = EFalse;
+
+    TBuf<10> nStr;
+
+    if ( !iIcon )
+        {
+        return;
+        }
+
+    nStr.AppendNum( iValue );
+
+    TSize bmsize = iIcon->Bitmap()->SizeInPixels();
+    TInt textWidth = iFont ? iFont->TextWidthInPixels( nStr ) + 1 : nStr.Length()
+            * 11; // Should be enough for APAC too
+
+    iTopLeft.iX = aCorner.iX;
+    if ( iAlignment == ESsAlignRight )
+        {
+        // Change topright to topleft.      
+        iTopLeft.iX -= bmsize.iWidth + textWidth;
+        }
+    // Center bitmap in y direction.
+    iTopLeft.iY = aCorner.iY + ( aParentRect.Size().iHeight / 2 ) - ( bmsize.iHeight / 2 ) - 2;
+
+    // Calculate text corner
+    if ( iIconAlign == ESsAlignLeft )
+        {
+        iTextPos.iX = iTopLeft.iX + bmsize.iWidth + 1;
+        }
+    else
+        {
+        iTextPos.iX = iTopLeft.iX;
+        }
+
+    iTextPos.iY = aCorner.iY + iRect.Size().iHeight / 2 + 4;
+
+    iRect = TRect( 0, 0, bmsize.iWidth + textWidth, aParentRect.Size().iHeight );
+
+    // Make sure text rect is not used
+    iTextRect.SetRect( 0, 0, 0, 0 );
+
+    iVisible = ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::CheckVisibilityConditions
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverIndicatorNumberAndIcon::CheckVisibilityConditions() const
+    {
+    if ( ( iIcon ) && ( iValue > 0 ) )
+        {
+        return ETrue;
+        }
+
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::Payload
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::Payload( TIndicatorPayload& aPayload ) const
+    {
+    aPayload.iType = EPayloadTypeInteger;
+    aPayload.iInteger = iValue;
+    aPayload.iText = KNullDesC;
+    aPayload.iIsDisplayed = Visible();
+    aPayload.iIcon = iIcon;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::SetPayload
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::SetPayload(
+        const TIndicatorPayload& aPayload )
+    {
+    if ( aPayload.iType != EPayloadTypeInteger )
+        {
+        return;
+        }
+
+    iValue = aPayload.iInteger;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::SetIconLayout
+// Sets icon position and size
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::SetIconLayout( TAknLayoutRect& aLayout,
+        TInt aX )
+    {
+    if ( !iIcon )
+        {
+        ASSERT( iIcon );
+        return;
+        }
+
+    // Resize icon according to layout
+    TInt height = aLayout.Rect().Height();
+    TSize iconSize(KMaxTInt, height);
+    AknIconUtils::SetSize( iIcon->Bitmap(), iconSize,
+            EAspectRatioPreservedAndUnusedSpaceRemoved );
+
+    // Overrides vertical icon position set earlier
+    iTopLeft.iY = aLayout.Rect().iTl.iY;
+
+    // Set initial rect
+    iRect = TRect( 0, 0, PreferredWidth(), height );
+
+    // Set X-position
+    SetXPos( aX );
+
+#ifdef SS_LAYOUTTRACE
+    SCRLOGGER_WRITEF( _L("SCR: NumberAndIcon indicator (%d):"), iId );
+    SCRLOGGER_WRITEF( _L("SCR:   Icon rect: (%d,%d,%d,%d)"),
+            iRect.iTl.iX,
+            iRect.iTl.iY,
+            iRect.iBr.iX,
+            iRect.iBr.iY );
+    TSize size = iIcon->Bitmap()->SizeInPixels();
+    SCRLOGGER_WRITEF( _L("SCR:   Icon size: (%d,%d)"), size.iWidth, size.iHeight );
+    SCRLOGGER_WRITEF( _L("SCR:   Icon pos:  (%d,%d)"), iTopLeft.iX, iTopLeft.iY );
+#endif
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::SetTextLayout
+// Sets text position and font
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::SetTextLayout( TAknLayoutText& aLayout,
+        TInt /* aX */ )
+    {
+    // Font from layout
+    iFont = aLayout.Font();
+    // Layout MUST have a font
+    ASSERT( iFont != NULL );
+
+    // Vertical dimension of text rect from layout
+    // (x-dims will be set separately)
+    iTextRect = aLayout.TextRect();
+
+    // Calculate text offset from rect top
+    const CAknLayoutFont* layoutFont =
+            CAknLayoutFont::AsCAknLayoutFontOrNull( iFont );
+
+    if ( layoutFont )
+        {
+        iTextOffset = layoutFont->TextPaneTopToBaseline();
+        }
+    else
+        {
+        iTextOffset = iFont->AscentInPixels();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::PreferredWidth
+// Return width where the whole indicator can be drawn
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverIndicatorNumberAndIcon::PreferredWidth()
+    {
+    // Preferred width = icon width + text width + a little gap in between
+    TBuf<10> nStr;
+    nStr.AppendNum( iValue );
+
+    TInt width = iFont ? iFont->TextWidthInPixels( nStr ) : nStr.Length() * 11; // Should be enough for APAC too
+
+    // Add icon width
+    width += MinimumWidth();
+
+    // Add a little gap between text and icon
+    return width + 1;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::MinimumWidth
+// Get minimum width 
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverIndicatorNumberAndIcon::MinimumWidth()
+    {
+    // Minimum width is icon width
+    return ( iIcon ? ( iIcon->Bitmap()->SizeInPixels()).iWidth : 0 );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::SetXPos
+// Sets the x-position for the indicator
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::SetXPos( TInt aX )
+    {
+    iVisible = EFalse;
+
+    if ( !iIcon )
+        {
+        return;
+        }
+
+    TBuf<10> nStr;
+    nStr.AppendNum( iValue );
+
+    TSize bmsize = iIcon->Bitmap()->SizeInPixels();
+    TInt textWidth = iFont ? iFont->TextWidthInPixels( nStr ) + 1 : nStr.Length()
+            * 11; // Should be enough for APAC too
+
+    iTopLeft.iX = aX;
+    if ( iAlignment == ESsAlignRight )
+        {
+        // Change topright to topleft.      
+        iTopLeft.iX -= bmsize.iWidth + textWidth;
+        }
+
+    // Calculate text corner
+    if ( iIconAlign == ESsAlignLeft )
+        {
+        iTextRect.iTl.iX = iTopLeft.iX + bmsize.iWidth;
+        }
+    else
+        {
+        iTextRect.iTl.iX = iTopLeft.iX;
+        }
+
+    iTextRect.SetWidth( textWidth );
+
+    iVisible = ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::InitializeLayout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::InitializeLayout()
+    {
+    // Set desired size for SVG graphics (height from LAF, width 3 x height)
+    TAknLayoutRect screenLayout;
+    screenLayout.LayoutRect( TRect(0, 0, 0, 0), AknLayout::screen() );
+    TRect screenRect = screenLayout.Rect();
+    TAknLayoutRect powerSavePaneLayout;
+    powerSavePaneLayout.LayoutRect( screenRect,
+            AknLayout::Power_save_pane_descendants_Line_1() );
+    TRect powerSavePaneRect = powerSavePaneLayout.Rect();
+    TAknLayoutRect rect;
+    rect.LayoutRect( powerSavePaneRect,
+            AknLayout::Power_save_pane_descendants_Line_3() );
+    TInt height = rect.Rect().Height();
+    TSize iconSize( 2 * height, height );
+    AknIconUtils::SetSize( iIcon->Bitmap(), iconSize );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::InitializeIconL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::InitializeIconL( TResourceReader &aReader )
+    {
+    // Icon & mask ids
+    TInt id = aReader.ReadInt32();
+    TInt maskid = aReader.ReadInt32();
+
+    // Icon & mask skin identifiers 
+    TInt skinid = aReader.ReadInt32();
+    TInt skinmask = aReader.ReadInt32();
+
+    iIcon = CGulIcon::NewL();
+
+    CFbsBitmap* bmp= NULL;
+    CFbsBitmap* mask= NULL;
+
+    // Load skinned bitmap
+    AknsUtils::CreateColorIconLC( AknsUtils::SkinInstance(),
+            MakeSkinItemId( skinid ),
+            KAknsIIDNone, // Lie so that we get default color, not skin color
+            0, // No color group
+            bmp, mask, AknIconUtils::AvkonIconFileName(), id, maskid,
+            iTextColor );
+
+    CleanupStack::Pop( 2 );
+
+    // Save the icon
+    iIcon->SetBitmap( bmp );
+    iIcon->SetMask( mask );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverNumberAndIconIndicator::DrawIcon
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorNumberAndIcon::DrawIcon( CWindowGc& aGc ) const
+    {
+    if ( iIconAlign == ESsAlignLeft )
+        {
+        if ( !iIcon->Mask() )
+            {
+            aGc.BitBlt( iTopLeft, iIcon->Bitmap(), iRect );
+            }
+        else
+            {
+            aGc.BitBltMasked( iTopLeft, iIcon->Bitmap(), iRect,
+                    iIcon->Mask(), ETrue );
+            }
+        }
+    else
+        {
+        // Calculate icon left point (right edge - icon width)
+        TPoint pTmp = TPoint( iTopLeft.iX + iRect.Size().iWidth - iIcon->Bitmap()->SizeInPixels().iWidth, iTopLeft.iY );
+
+        if ( !iIcon->Mask() )
+            {
+            aGc.BitBlt( pTmp, iIcon->Bitmap(), iRect );
+            }
+        else
+            {
+            aGc.BitBltMasked( pTmp, iIcon->Bitmap(), iRect, iIcon->Mask(),
+                    ETrue );
+            }
+        }
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverindicatortext.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,234 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverIndicatorText implementation.
+*
+*/
+
+
+
+#include <AknLayoutFont.h>
+#include <barsread.h>
+
+#include "screensaverindicatortext.h"
+
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::Draw
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorText::Draw( CWindowGc& aGc ) const
+    {
+    if ( iFont )
+        {
+        aGc.UseFont( iFont );
+        }
+    aGc.SetPenColor( iTextColor );
+
+    // Draw normal bidi text
+    TBidiText* bidi= NULL;
+    TRAPD( err, bidi = TBidiText::NewL( iText, 1 ) );
+    if ( err == KErrNone )
+        {
+        bidi->WrapText( Width(), *iFont, NULL );
+        if ( iTextRect.IsEmpty() )
+            {
+            bidi->DrawText( aGc, iTopLeft );
+            }
+        else
+            {
+            TPoint pt = iTextRect.iTl;
+            pt.iY += iTextOffset;
+            bidi->DrawText( aGc, pt );
+            }
+        delete bidi;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorText::ConstructL( TResourceReader &aReader,
+        TUint32 aBgColor, TUint aTextColor )
+    {
+    CScreensaverIndicator::ConstructL( aReader, aBgColor, aTextColor );
+
+    iFont = AknLayoutUtils::FontFromId( aReader.ReadInt32() );
+    if ( !iFont )
+        {
+        iFont = LatinPlain12();
+        }
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::SetupDrawingParameters
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorText::SetupDrawingParameters( const TPoint& aCorner,
+        const TRect& aParentRect )
+    {
+    iVisible = EFalse;
+
+    if ( iText.Length() <= 0 )
+        {
+        return;
+        }
+
+    TInt textWidth = ( iFont ? iFont->TextWidthInPixels(iText) + 1
+            : iText.Length() * 11 ); // Should be enough for APAC too
+
+    iRect = TRect( 0, 0, textWidth, aParentRect.Size().iHeight );
+
+    iTopLeft.iX = aCorner.iX;
+
+    if ( iAlignment == ESsAlignRight )
+        {
+        // Change topright to topleft.      
+        iTopLeft.iX -= iRect.Size().iWidth;
+        }
+
+    iTopLeft.iY = aCorner.iY + ( aParentRect.Size().iHeight / 2 ) + ( ( aParentRect.Size().iHeight - iFont->HeightInPixels() ) / 2 ) + 2;
+
+    // Make sure text rect is not used
+    iTextRect.SetRect( 0, 0, 0, 0 );
+
+    iVisible = ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::ConstructL
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverIndicatorText::CheckVisibilityConditions() const
+    {
+    return ( iText.Length() > 0 ? ETrue : EFalse );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorText::Payload( TIndicatorPayload &aPayload ) const
+    {
+    aPayload.iType = EPayloadTypeText;
+    aPayload.iText = iText;
+    aPayload.iInteger = -1;
+    aPayload.iIsDisplayed = Visible();
+    aPayload.iIcon = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorText::SetPayload( const TIndicatorPayload& aPayload )
+    {
+    if ( aPayload.iType != EPayloadTypeText )
+        {
+        return;
+        }
+
+    if ( aPayload.iText.Length() > iText.MaxLength() )
+        {
+        return; // Don't panic.      
+        }
+
+    iText = aPayload.iText;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::SetTextLayout
+// Sets text position and font
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorText::SetTextLayout( TAknLayoutText& aLayout, TInt aX )
+    {
+    // Font from layout
+    iFont = aLayout.Font();
+    // Layout MUST have a font
+    ASSERT( iFont != NULL );
+
+    // Vertical dimension of text rect from layout
+    iTextRect = aLayout.TextRect();
+
+    // Calculate text offset from rect top
+    const CAknLayoutFont* layoutFont =
+            CAknLayoutFont::AsCAknLayoutFontOrNull( iFont );
+
+    if ( layoutFont )
+        {
+        iTextOffset = layoutFont->TextPaneTopToBaseline();
+        }
+    else
+        {
+        iTextOffset = iFont->AscentInPixels();
+        }
+
+    // X-pos from parameter
+    iTextRect.iTl.iX = aX;
+
+    // Initially set indicator rect (this may later be overridden by SetWidth())
+    iRect = TRect( 0, 0, PreferredWidth(), aLayout.TextRect().Height() );
+
+    // If right-aligned, the X-pos indicates right edge - switch to left
+    if ( iAlignment == ESsAlignRight )
+        {
+        // Change topright to topleft.      
+        iTextRect.iTl.iX -= Width(); // iRect.Size().iWidth;  
+        }
+
+    // Indicator width = text rect width
+    iTextRect.SetWidth( Width() );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::PreferredWidth
+// Gets preferred indicator width
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverIndicatorText::PreferredWidth()
+    {
+    TInt textWidth = ( iFont ? iFont->TextWidthInPixels( iText ) + 1
+            : iText.Length() * 11 ); // Should be enough for APAC too
+    return textWidth;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::SetWidth
+// Sets indicator width
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorText::SetWidth( TInt iWidth )
+    {
+    iRect.SetWidth( iWidth );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverTextIndicator::SetXPos
+// Sets indicator X-position (new layout)
+// -----------------------------------------------------------------------------
+//
+void CScreensaverIndicatorText::SetXPos( TInt aX )
+    {
+    iTopLeft.iX = aX;
+    if ( iAlignment == ESsAlignRight )
+        {
+        // Change topright to topleft.      
+        iTopLeft.iX -= iRect.Size().iWidth;
+        }
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverrepositorywatcher.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,171 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   CScreensaverRepositoryWatcher implementation.
+*
+*/
+
+
+
+#include <centralrepository.h>
+
+#include "screensaverrepositorywatcher.h"
+#include "ScreensaverUtils.h"
+//
+// CScreensaverRepositoryWatcher
+//
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
+    const TUid aUid,
+    const TUint32 aKey,
+    CCenRepNotifyHandler::TCenRepKeyType aKeyType,
+    TCallBack aCallBack,
+    CRepository* aRepository)
+    {
+    CScreensaverRepositoryWatcher* self = new(ELeave) CScreensaverRepositoryWatcher(aUid, aKey, aCallBack, aRepository);
+
+    CleanupStack::PushL(self);
+    self->ConstructL(aKeyType);
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
+    const TUid aUid,
+    TCallBack aCallBack,
+    CRepository* aRepository)
+    {
+    CScreensaverRepositoryWatcher* self = new(ELeave) CScreensaverRepositoryWatcher(
+        aUid, NCentralRepositoryConstants::KInvalidNotificationId, aCallBack, aRepository);
+
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher
+// -----------------------------------------------------------------------------
+//
+CScreensaverRepositoryWatcher::~CScreensaverRepositoryWatcher()
+    {
+    if (iNotifyHandler)
+        {
+        iNotifyHandler->StopListening();
+        delete iNotifyHandler;
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher
+// -----------------------------------------------------------------------------
+//
+CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher(
+    const TUid aUid,
+    const TUint32 aKey,
+    TCallBack aCallBack,
+    CRepository* aRepository)
+    :iUid(aUid), iKey(aKey), iCallBack(aCallBack), iRepository(aRepository)
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType)
+    {
+    iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository, aKeyType, iKey);
+    iNotifyHandler->StartListeningL();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::ConstructL()
+    {
+    iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository);
+    iNotifyHandler->StartListeningL();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::ChangedKey
+// -----------------------------------------------------------------------------
+//
+TUint32 CScreensaverRepositoryWatcher::ChangedKey()
+    {
+    return iChangedKey;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::HandleNotifyInt
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::HandleNotifyInt(TUint32 aKey, TInt aNewValue)
+    {
+    SCRLOGGER_WRITEF(_L("SCR: HandleNotifyInt aKey=%d, aNewValue=%d"), aKey, aNewValue);
+
+    iChangedKey = aKey;
+    iCallBack.CallBack();
+    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::HandleNotifyString
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::HandleNotifyString(TUint32 aKey, const TDesC16& aNewValue)
+    {
+    SCRLOGGER_WRITEF(_L("SCR: HandleNotifyString aKey=%d, aNewValue=%S"), aKey, &aNewValue);
+
+    iChangedKey = aKey;
+    iCallBack.CallBack();
+    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::HandleNotifyGeneric
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::HandleNotifyGeneric(TUint32 aKey)
+    {
+    iChangedKey = aKey;
+    iCallBack.CallBack();
+    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverRepositoryWatcher::HandleNotifyError
+// -----------------------------------------------------------------------------
+//
+void CScreensaverRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/)
+    {
+    }
+
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensavershareddatai.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,969 @@
+/*
+* Copyright (c) 2003-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Implementation for screensaver shared data connections.
+*
+*/
+
+
+
+#include <msvids.h>
+#include <MProfileName.h>  // Profile API, not yet included in .h
+#include <MProfileTones.h>
+#include <TProfileToneSettings.h>
+#include <centralrepository.h>
+#include <coreapplicationuisdomainpskeys.h>  // KCoreAppUIsUipInd, KLightsVTForcedLightsOn
+#include <activeidle2domainpskeys.h>         // KPSUidAiInformation
+#include <settingsinternalcrkeys.h>          // KSettingsScreenSaverPeriod
+#include <LogsDomainCRKeys.h>                // KLogsNewMissedCalls
+#include <ScreensaverInternalCRKeys.h>
+#include <AvkonInternalCRKeys.h>             // KAknNewContactsNoteActive
+#include <avkondomainpskeys.h>               // KAknKeyguardStatus
+#include <ctsydomaincrkeys.h>                // Message (voice) waiting status
+#include <ctsydomainpskeys.h>                // KCTsyCallState
+#include <startupdomainpskeys.h>             // KPSGlobalSystemState
+#include <AknSkinsInternalCRKeys.h>
+#include <MProfileEngine.h> // Profile engine API
+#include <MProfile.h>
+#include <NcnListDomainCRKeys.h>
+
+#include "screensaverappui.h"
+#include "screensaverctrlmovingtext.h"
+#include "screensaverengine.h"
+#include "screensavershareddatai.h"
+#include "ScreensaverInternalPSKeys.h"
+#include "screensaverutility.h"
+#include "screensaverrepositorywatcher.h"
+#include "screensaversubscriber.h"
+
+const TInt KTimeoutDefault = 15;        // seconds (also in GS)
+const TInt KTimeoutMin = 5;             // minimum timeout in seconds (also in GS)
+
+// Screensaver "On/Off" status values
+const TInt KScreensaverOff = 0;
+const TInt KScreensaverOn = 1;
+
+// Screensaver activated from idle status values
+const TInt KScreensaverNotFromIdle = 0;
+const TInt KScreensaverStartedFromIdle = 1;
+
+// Screen saver text type.
+// _LIT( KScreenSaverTypeText, "Text" );
+// Screensaver "None" (Sleep mode)
+// _LIT( KScreenSaverTypeNone, "None" );
+
+// Define security policies for Screensavers property keys
+_LIT_SECURITY_POLICY_PASS(KSSPolicyPass);
+_LIT_SECURITY_POLICY_C1(KSSPolicyWriteUserData, ECapabilityWriteUserData);
+_LIT_SECURITY_POLICY_S0(KSSPolicyWriteSSOnly, 0x100056cf);
+
+//
+// CScreensaverSharedDataI
+//
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverSharedDataI* CScreensaverSharedDataI::NewL()
+    {
+    CScreensaverSharedDataI* self = new (ELeave) CScreensaverSharedDataI();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(); //self
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::~CScreensaverSharedDataI
+// -----------------------------------------------------------------------------
+//
+CScreensaverSharedDataI::~CScreensaverSharedDataI()
+    {
+    // Release the active profile resources
+    InvalidateActiveProfile();
+
+    // Release the profile engine
+    if (iProfileEngine)
+        {
+        // No need to delete pointer, just release resources
+        iProfileEngine->Release();
+        }
+    
+    delete iScreensaverRepositoryWatcher;
+    delete iScreensaverRepository;
+    delete iSettingsRepositoryWatcher;
+    delete iSettingsRepository;
+    delete iCTsyRepository;
+    delete iInboxFolder;
+    delete iMsvSession;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::DisplayObjectType
+// -----------------------------------------------------------------------------
+//
+TDisplayObjectType CScreensaverSharedDataI::DisplayObjectType() const
+    {
+    TInt type = 0;
+    
+    if (iScreensaverRepository)
+        {
+        iScreensaverRepository->Get( KScreenSaverObject, type );
+        }
+    
+    return ( TDisplayObjectType )type;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::SetDisplayObjectType
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::SetDisplayObjectType( const TDisplayObjectType aType )
+    {
+    if( iScreensaverRepository )
+        {
+        iScreensaverRepository->Set(KScreenSaverObject, aType);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::GetDisplayObjectText
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::GetDisplayObjectText( TDes& aDes ) const
+    {
+    CEikonEnv::Static()->ReadResource(aDes, R_SCREEN_SAVER_TEXT);
+    
+    if ( iScreensaverRepository )
+        {
+        iScreensaverRepository->Get( KScreenSaverText, aDes );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::PluginName
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::GetPluginName( TFileName& aFileName ) const
+    {
+    if ( iScreensaverRepository )
+        {
+        iScreensaverRepository->Get( KScreenSaverPluginName, aFileName );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ColorInversionUsed
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverSharedDataI::IsInvertedColors() const
+    {
+    TInt colorInversionUsed(0);
+    
+    if( iScreensaverRepository )
+        {
+        iScreensaverRepository->Get( KScreenSaverInvertedColors, colorInversionUsed );
+        }
+
+    return ( colorInversionUsed != 0 );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ScreensaverTimeout
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataI::ScreensaverTimeout() const
+    {
+    TInt timeout = KTimeoutDefault;
+
+    if (iSettingsRepository)
+        {
+        iSettingsRepository->Get(KSettingsAutomaticKeyguardTime, timeout);
+        }
+    // No less than minimum timeout
+    // Old backed up minutes 1-4 will cause default timeout after
+    // being restored to new sw using seconds
+    if (timeout < KTimeoutMin)
+        {
+        return KTimeoutDefault;
+        }
+
+    return timeout;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsNCNActive
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverSharedDataI::IsNCNActive() const
+    {
+    // Setting the flag here is also needed, because Screensaver should not
+    // display new calls when Ncn note has been cancelled (even if the missed
+    // calls count is still nonzero).
+    // Also, when the phone is (re)started, and there are missed calls,
+    // Ncn will pop a note, This is the only way Screensaver knows about that.
+    
+    CRepository* avkonRepository = NULL;
+    
+    TRAP_IGNORE( avkonRepository = CRepository::NewL( KCRUidAvkon ) );
+
+    TInt value = 0;
+
+    if ( avkonRepository )
+        {
+        avkonRepository->Get( KAknNewContactsNoteActive, value );
+        }
+
+    delete avkonRepository;
+    
+    return ( value != 0 );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::NewMissedCalls
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataI::NewMissedCalls() const
+    {
+    CRepository* logsRepository = NULL;
+    
+    TRAP_IGNORE( logsRepository = CRepository::NewL( KCRUidLogs ) );
+    
+    TInt value = 0;
+    
+    if ( logsRepository )
+        {
+        logsRepository->Get( KLogsNewMissedCalls, value );
+        }
+    
+    delete logsRepository;
+    
+    return value;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::SetSSForcedLightsOn
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::SetSSForcedLightsOn(TInt aSecs)
+    {
+    SCRLOGGER_WRITEF(_L("SCR: RequestLights(%d)"), aSecs);
+
+    RProperty::Set( KPSUidCoreApplicationUIs, KLightsSSForcedLightsOn, aSecs );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::SetScreensaverStatus
+// Indicate whether Screensaver is active or not
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::SetScreensaverStatus( TBool aOn /* = ETrue */ )
+    {
+    //Check if the value is already updated. If so, setting the value again
+    //will cause unnecessary call backs to any subscribers of this property
+    if ( aOn )
+        {
+        RProperty::Set( KPSUidScreenSaver, KScreenSaverOn, KScreensaverOn );
+        //else - no need to re-apply the same value
+        }
+    else //aOn is false
+        {
+        RProperty::Set( KPSUidScreenSaver, KScreenSaverOn, KScreensaverOff );
+        //else - no need to re-apply the same value
+        
+        //if stop from idle, change the status
+        RProperty::Set( KPSUidScreenSaver, KScreenSaverOn, KScreensaverNotFromIdle);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::SetSSStartedFromIdleStatus
+// Set "Screensaver started from Idle" status
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::SetSSStartedFromIdleStatus()
+    {
+    TInt idleState = EPSAiBackground;
+    RProperty::Get(KPSUidAiInformation, KActiveIdleState, idleState);
+
+    if (idleState == EPSAiBackground)
+        {
+        RProperty::Set( KPSUidScreenSaver, KScreenSaverActivatedFromIdle, KScreensaverNotFromIdle );
+        }
+    else
+        {
+        RProperty::Set(  KPSUidScreenSaver, KScreenSaverActivatedFromIdle, KScreensaverStartedFromIdle );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsScreenSaverAllowed
+// Set "Screensaver started from Idle" status
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataI::IsScreenSaverAllowed() const
+    {
+    TInt value = 0;
+    
+    RProperty::Get( KPSUidScreenSaver, KScreenSaverAllowScreenSaver, value );
+    
+    return value;
+    }
+
+TInt CScreensaverSharedDataI::ScreensaverPreviewMode() const
+    {
+    TInt value = 0;
+    
+    RProperty::Get( KPSUidScreenSaver, KScreenSaverPreviewMode, value );
+    
+    return value;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::SetScreensaverPreviewMode
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::SetScreensaverPreviewMode( const TInt aMode )
+    {
+    RProperty::Set( KPSUidScreenSaver, KScreenSaverPreviewMode, aMode );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ScreensaverPreviewState
+// Get preview state
+// -----------------------------------------------------------------------------
+//
+TScreenSaverPreviewState CScreensaverSharedDataI::ScreensaverPreviewState() const
+    {
+    TInt state = EScreenSaverPreviewNone;
+    RProperty::Get( KPSUidScreenSaver, KScreenSaverPreviewState, state );
+
+    return ( TScreenSaverPreviewState ) state;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::SetScreensaverPreviewState
+// Report preview state
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::SetScreensaverPreviewState(
+    const TScreenSaverPreviewState aState )
+    {
+    RProperty::Set( KPSUidScreenSaver, KScreenSaverPreviewState, aState );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsKeyguardOn
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverSharedDataI::IsKeyguardOn() const
+    {
+    // Report preview state
+    TInt state = 0;
+    
+    RProperty::Get( KPSUidAvkonDomain, KAknKeyguardStatus, state );
+    
+    return ( state != 0 );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsUsePowerSaveMode
+// -----------------------------------------------------------------------------
+TBool CScreensaverSharedDataI::IsUsePowerSaveMode() const
+    {
+    TInt state = 0;
+
+    // Check if power save mode has been denied
+    RProperty::Get( KPSUidScreenSaver, KScreenSaverNoPowerSaveMode, state );
+
+    return ( state != 1 );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::SystemStartupComplete
+// Returns whether system startup has been completed
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverSharedDataI::IsSystemStartupComplete()
+    {
+    if ( iStartupComplete == EFalse )
+        {
+        TInt startupState = -1;
+        RProperty::Get( KPSUidStartup, KPSGlobalSystemState, startupState );
+
+        switch (startupState)
+            {
+        case ESwStateNormalRfOn:
+        case ESwStateNormalRfOff:
+        case ESwStateNormalBTSap:
+            iStartupComplete = ETrue;
+            break;
+        default:
+            break;
+            }
+        }
+    return iStartupComplete;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::DefaultScreensaverType
+// -----------------------------------------------------------------------------
+//
+TDisplayObjectType CScreensaverSharedDataI::DefaultScreensaverType() const
+    {
+    return iDefaultType;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::UnreadMessagesNumber
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataI::UnreadMessagesNumber()
+    {
+    TInt numberOfUnreadMessages = 0;
+    // Check how many unread messages there are in the In-box.
+    if( !iInboxFolder )
+        {
+        TRAPD( err, ConnectToInboxL() );
+        if (err != KErrNone)
+            {
+            return numberOfUnreadMessages;
+            }
+        }
+
+    const TInt itemCount = iInboxFolder->Count();
+    for ( TInt index = 0; index < itemCount; index++ )
+        {
+        const TMsvEntry entry = ( *iInboxFolder )[index];
+        if ( entry.iType.iUid == KUidMsvMessageEntryValue && entry.Unread())
+            {
+            if( entry.Visible() )
+                {
+                numberOfUnreadMessages++;
+                }
+            }
+        }
+    return numberOfUnreadMessages;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ProfileName
+// -----------------------------------------------------------------------------
+const TDesC& CScreensaverSharedDataI::ProfileName()
+    {
+    // Get the active profile name from profile engine, not from
+    // shareddata ( may not be up-to-date after phone restart )
+
+    if ( ConnectToActiveProfile() )
+        {
+        // Ectract profile name
+        const MProfileName& profileName = iActiveProfile->ProfileName();
+
+        return ( profileName.Name() );
+        }
+
+    return KNullDesC;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ActiveProfile
+// -----------------------------------------------------------------------------
+TInt CScreensaverSharedDataI::ActiveProfile()
+    {
+    // Return the current profile Id
+    TInt profileId = 0;
+
+    // Connect to profile engine
+    if ( ConnectToProfileEngine() )
+        {
+        profileId = iProfileEngine->ActiveProfileId();
+        }
+
+    return profileId;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsHaveNewEmail
+// -----------------------------------------------------------------------------
+TBool CScreensaverSharedDataI::IsHaveNewEmail() const
+    {
+    TInt state = 0;
+    // Check the new email state from PubSub
+    TInt error = RProperty::Get(
+        KPSUidCoreApplicationUIs, KCoreAppUIsNewEmailStatus, state);
+
+    SCRLOGGER_WRITEF(_L("SCR: QueryNewEmail state=%d error=%d"), state, error);
+
+    if ( ( error == KErrNone ) && ( state == ECoreAppUIsNewEmail ) )
+        {
+        return ETrue;
+        }
+    else
+        {
+        return EFalse;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsHaveNewVoicemail
+// -----------------------------------------------------------------------------
+TBool CScreensaverSharedDataI::IsHaveNewVoicemail() const
+    {
+    // Show the indicator, if either line has messages waiting
+    if ( ( VoiceMailCount( KCtsyMessageWaitingVoiceMailCount ) > 0 ) 
+        || ( VoiceMailCount( KCtsyMessageWaitingAuxLineCount ) > 0 ) )
+        {
+        return ETrue;
+        }
+    else
+        {
+        return EFalse;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsHaveNewInstantMessages
+// -----------------------------------------------------------------------------
+TBool CScreensaverSharedDataI::IsHaveNewInstantMessages() const
+    {
+    TInt showValue = 0;
+    TInt error = RProperty::Get(
+        KPSUidCoreApplicationUIs, KCoreAppUIsUipInd, showValue);
+
+    SCRLOGGER_WRITEF(_L("SCR: QueryNewInstantMessages state=%d error=%d"),
+                     showValue, error);
+
+    return ( ( error == KErrNone ) && ( showValue == ECoreAppUIsShow ) );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsSilentMode
+// -----------------------------------------------------------------------------
+TBool CScreensaverSharedDataI::IsSilentMode()
+    {
+    // Connect to active profile, and return silent mode status
+    if (ConnectToActiveProfile())
+        {
+        return iActiveProfile->IsSilent();
+        }
+
+    return EFalse;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsVibraMode
+// -----------------------------------------------------------------------------
+TBool CScreensaverSharedDataI::IsVibraMode()
+    {
+    // Get the active profile name from profile engine, not from
+    // shareddata (may not be up-to-date after phone restart)
+    if (ConnectToActiveProfile())
+        {
+        // Extract profile vibra setting
+         return iActiveProfile->ProfileTones().ToneSettings().iVibratingAlert;
+        }
+
+    return EFalse;
+    }
+
+// ---------------------------------------------------------------------------
+// CScreensaverSharedDataI::IsOngoingCall()
+// ---------------------------------------------------------------------------
+//
+TBool CScreensaverSharedDataI::IsOngoingCall()
+    {
+    TInt state = EPSCTsyCallStateUninitialized;
+    // Check the call state from PubSub
+    RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, state );
+    
+    return ( state != EPSCTsyCallStateNone && 
+             state != EPSCTsyCallStateUninitialized );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::HandleSessionEventL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::HandleSessionEventL(TMsvSessionEvent aEvent, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
+    {
+    switch (aEvent)
+        {
+        case EMsvEntriesChanged:
+            AppUi()->ScreensaverView()->UpdateAndRefresh();
+            break;
+        case EMsvCloseSession:
+        case EMsvServerTerminated:
+            delete iInboxFolder;
+            iInboxFolder = NULL;
+            delete iMsvSession;
+            iMsvSession = NULL;
+            break;
+        default:
+            break;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::HandleEntryEventL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::HandleEntryEventL(TMsvEntryEvent /*aEvent */, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ScreensaverRepository
+// -----------------------------------------------------------------------------
+//
+CRepository* CScreensaverSharedDataI::ScreensaverRepository() const
+    {
+    return iScreensaverRepository;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::CScreensaverSharedDataI
+// -----------------------------------------------------------------------------
+//
+CScreensaverSharedDataI::CScreensaverSharedDataI()
+    {
+    iStartupComplete = EFalse;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::ConstructL()
+    {
+    GetDefaultType();
+    ConnectToSSCRL();
+    ConnectToPslnSettingCRL();
+    ConnectToCommonTsyCRL();
+
+    // Define and publish "Screensaver is on" property
+    // Read: pass, Write: Screensaver only
+    DefineScreensaverProperties( KScreenSaverOn, KSSPolicyWriteSSOnly );
+    
+    // Define and publish "Screensaver activated from idle" property
+    // Read: pass, Write: Screensaver only
+    DefineScreensaverProperties( KScreenSaverActivatedFromIdle, KSSPolicyWriteSSOnly );
+    
+    // Define and attach "allow screensaver property"
+    // Read: Readuserdata, Write: writeuserdata
+    DefineScreensaverProperties( KScreenSaverAllowScreenSaver, KSSPolicyWriteUserData );
+
+    // Define and attach "screensaver preview property"
+    // Read: Readuserdata, Write: writeuserdata
+    DefineScreensaverProperties( KScreenSaverPreviewMode, KSSPolicyWriteUserData );
+    
+    // Define and attach "screensaver preview state property"
+    // Read: Readuserdata, Write: writeuserdata
+    DefineScreensaverProperties( KScreenSaverPreviewState, KSSPolicyWriteUserData );
+
+    // Define and initialize "current plugin settings changed" property
+    // Read: pass, Write: pass
+    DefineScreensaverProperties( KScreenSaverPluginSettingsChanged, KSSPolicyPass );
+
+    // Define and initialize "no power save mode" property
+    // Read: pass, Write: pass
+    DefineScreensaverProperties( KScreenSaverNoPowerSaveMode, KSSPolicyPass );
+
+    DefineScreensaverProperties( KScreenSaverActivate, KSSPolicyWriteUserData );
+    
+    iDisplayChange = EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ConnectToSSCR
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::ConnectToSSCRL()
+    {
+    iScreensaverRepository = CRepository::NewL( KCRUidScreenSaver );
+    
+    if( iScreensaverRepository )
+    iScreensaverRepositoryWatcher = CScreensaverRepositoryWatcher::NewL(
+        KCRUidScreenSaver,
+        TCallBack( HandleDisplayObjChanged, this ),
+        iScreensaverRepository );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ConnectToPslnSettingCRL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::ConnectToPslnSettingCRL()
+    {
+    TRAPD(ret, iSettingsRepository = CRepository::NewL(KCRUidSecuritySettings));
+    
+    if( ret == KErrNone )
+        {
+        iSettingsRepositoryWatcher = CScreensaverRepositoryWatcher::NewL(
+            KCRUidPersonalizationSettings,
+            KSettingsAutomaticKeyguardTime,
+            CCenRepNotifyHandler::EIntKey,
+            TCallBack(HandleTimeoutChanged, this),
+            iSettingsRepository);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ConnectToCommonTsyCRL
+// Connects to common tsy central repository
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::ConnectToCommonTsyCRL()
+    {
+    iCTsyRepository = CRepository::NewL( KCRUidCtsyMessageWaitingIndicator );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ConnectToInboxL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::ConnectToInboxL()
+    {
+    if (!iMsvSession)
+        {
+        iMsvSession = CMsvSession::OpenSyncL( *this );
+        }
+    iInboxFolder = iMsvSession->GetEntryL( KMsvGlobalInBoxIndexEntryId );
+
+    TMsvSelectionOrdering ordering = iInboxFolder->SortType();
+    ordering.SetShowInvisibleEntries( EFalse );
+    iInboxFolder->SetSortTypeL( ordering );
+
+    iInboxFolder->AddObserverL( *this );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ConnectToProfileEngine
+// Connect to Profile engine. Returns ETrue if successfully connected
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverSharedDataI::ConnectToProfileEngine()
+    {
+    // Check if already connected
+    if ( iProfileEngine )
+        {
+        // Done
+        return ETrue;
+        }
+    // The member variable is also used to indicate successful
+    // connection, hence a pointer instead of just RSystemAgent
+    TRAPD( err, ( iProfileEngine = CreateProfileEngineL() ) );
+
+    if ( err != KErrNone )
+        {
+        // Something went wrong on allocation
+        iProfileEngine = NULL;
+        return EFalse;
+        }
+
+    // Successfully connected
+    return ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ClearPreviewFlag
+// Connect to current active Profile. Returns ETrue if successfully connected
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverSharedDataI::ConnectToActiveProfile()
+    {
+    InvalidateActiveProfile();
+    
+    if ( ConnectToProfileEngine() )
+        {
+        TRAPD( err, ( iActiveProfile = iProfileEngine->ActiveProfileL() ) );
+        if ( ( err == KErrNone ) && ( iActiveProfile ) )
+            {
+            return ETrue;
+            }
+        }
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::DefineScreensaverProperties
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::DefineScreensaverProperties( 
+    TUint32 aKey, const TSecurityPolicy& aWritePolicy )
+    {
+    RProperty::Define(
+            KPSUidScreenSaver,
+            aKey,
+            RProperty::EInt,
+            KSSPolicyPass,
+            aWritePolicy );
+    
+    RProperty::Set( KPSUidScreenSaver, aKey, 0);
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::HandleTimeoutChanged
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataI::HandleTimeoutChanged(TAny* aPtr)
+    {
+    STATIC_CAST(CScreensaverSharedDataI*, aPtr)->ResetInactivityTimeout();
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::ResetInactivityTimeout
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::ResetInactivityTimeout()
+    {
+    AppUi()->Model().ResetInactivityTimeout();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::HandleDisplayObjChanged
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataI::HandleDisplayObjChanged(TAny* aPtr)
+    {
+    CScreensaverSharedDataI* self = STATIC_CAST(CScreensaverSharedDataI*, aPtr);
+    
+    self->SetDisplayObjChanged( ETrue );
+    
+    self->AppUi()->ScreensaverView()->SetDisplayObject( self->DisplayObjectType() );
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::GetDefaultType
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::GetDefaultType()
+    {
+/*
+default type is hardcoded, so commented out below code.
+Remove the comment when default type is read from CenRep.
+    //Store the default screensaver for this device
+    TBuf<16> screensaverName;
+    
+    TInt error = GetDefaultTypeString( screensaverName );
+    
+    if ( KErrNone == error )
+        {
+        if ( screensaverName.CompareF( KScreenSaverTypeNone ) == 0 )
+            {
+            iDefaultType = EDisplayNone;
+            }
+        else if ( screensaverName.CompareF( KScreenSaverTypeText ) == 0 )
+            {
+            iDefaultType = EDisplayText;
+            }
+        else //go back to the "old" option, ie - Date type
+            {
+            iDefaultType = EDisplayTime;
+            }
+        }
+*/  
+      
+#ifdef USE_DATE_AND_TEXT
+    iDefaultType = EDisplayTime;
+#else
+    iDefaultType = EDisplayNone;    
+#endif
+    
+    
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::GetDefaultTypeString
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataI::GetDefaultTypeString( TDes& DefaultScreenSaver )
+    {
+    CRepository* skinsRepository = NULL;
+    TRAP_IGNORE( skinsRepository = CRepository::NewL( KCRUidPersonalisation ) );
+    
+    TInt error = skinsRepository->Get( KPslnSystemDefaultScreenSaver,
+        DefaultScreenSaver );
+    
+    delete skinsRepository;
+    
+    return error;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::VoiceMailCount
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataI::VoiceMailCount( const TUint32 aKey ) const
+    {
+    TInt line(0);
+    TInt error = KErrNone;
+    
+    error = iCTsyRepository->Get( aKey, line );
+    
+    if( error != KErrNone )
+        {
+        line = 0;
+        }
+    
+    return line;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::InvalidateActiveProfile
+// Invalidate the cached active profile, so that next call to ConnectToActiveProfile
+// will use the newest profile data (in case it has changed)
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::InvalidateActiveProfile()
+    {
+    if (iActiveProfile)
+        {
+        iActiveProfile->Release();
+        iActiveProfile = NULL;
+        }
+    }
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::SetDisplayObjChanged
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataI::SetDisplayObjChanged( TBool aChanged )
+    {
+    iDisplayChange = aChanged;
+    }
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::GetDisplayObjChanged
+// -----------------------------------------------------------------------------
+//
+TBool CScreensaverSharedDataI::GetDisplayObjChanged()const
+    {
+    return iDisplayChange;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataI::AppUi
+// -----------------------------------------------------------------------------
+//
+CScreensaverAppUi *CScreensaverSharedDataI::AppUi() const
+    {
+    return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() );
+    }
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensavershareddatamonitor.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,376 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Implementation for screensaver shared data monitoring.
+*
+*/
+
+
+
+#include <coemain.h>
+#include <ScreensaverInternalCRKeys.h>
+#include <UsbWatcherInternalPSKeys.h>
+#include <avkondomainpskeys.h>               // kaknkeyguardstatus
+#include <ctsydomainpskeys.h>                // kpsuidctsycallinformation
+#include <startupdomainpskeys.h>             // kpsglobalsystemstate
+#include <ScreensaverInternalPSKeys.h>
+#include <UikonInternalPSKeys.h>             // kuikmmcinserted
+#include <hwrmpowerstatesdkpskeys.h>
+#include <ctsydomaincrkeys.h>
+#include <centralrepository.h>
+
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+#include <akntransitionutils.h>
+#endif
+
+#include "screensavershareddatamonitor.h"
+#include "screensavershareddatai.h"
+#include "screensaverrepositorywatcher.h"
+#include "screensaverview.h"
+#include "screensaverengine.h"
+#include "screensaverappui.h"
+#include "screensaversubscriber.h"
+#include "screensaverutility.h"
+
+//System shuttingdown value
+const TInt KSystemShuttingdown = 1;
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::~CScreensaverSharedDataMonitor
+// -----------------------------------------------------------------------------
+//
+CScreensaverSharedDataMonitor::~CScreensaverSharedDataMonitor()
+    {
+    DeleteSubscriber( iPreviewModeSubscriber );
+    iPreviewModeProperty.Close();
+    
+    DeleteSubscriber( iMMCWatchSubscriber );
+    iMMCWatchProperty.Close();
+    
+    DeleteSubscriber( iUSBWatchSubscriber );
+    iUSBWatchProperty.Close();
+    
+    DeleteSubscriber( iKeyguardStateSubscriber );
+    iKeyguardStateProperty.Close();
+    
+    DeleteSubscriber( iCallStateSubscriber );
+    iCallStateProperty.Close();
+    
+    DeleteSubscriber( iShuttingDownSubscriber );
+    iShuttingDownProperty.Close();
+
+    DeleteSubscriber( iActivateSSSubscriber );
+    iActivateSSProperty.Close();
+    
+    DeleteSubscriber( iChargerStateSubscriber );
+    iChargerStateProperty.Close();
+    
+    delete iMessageWaitingWatcher;
+    delete iMessageWaitingRepository;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::NewL
+// -----------------------------------------------------------------------------
+//
+CScreensaverSharedDataMonitor* CScreensaverSharedDataMonitor::NewL( CScreensaverSharedDataI* aData )
+    {
+    CScreensaverSharedDataMonitor* self = new( ELeave )CScreensaverSharedDataMonitor( aData );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::CScreensaverSharedDataMonitor
+// -----------------------------------------------------------------------------
+//
+CScreensaverSharedDataMonitor::CScreensaverSharedDataMonitor(
+    CScreensaverSharedDataI* aData )
+    :iData( aData )
+    {
+    // No implementation required
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::ConstructL
+// -----------------------------------------------------------------------------
+// 
+void CScreensaverSharedDataMonitor::ConstructL()
+    {
+    User::LeaveIfError(iPreviewModeProperty.Attach(KPSUidScreenSaver, KScreenSaverPreviewMode));
+    iPreviewModeSubscriber = new (ELeave) CSubscriber(TCallBack(HandlePreviewModeChanged, this), iPreviewModeProperty);
+    iPreviewModeSubscriber->SubscribeL();
+    
+    
+    // MMC watcher
+    User::LeaveIfError(iMMCWatchProperty.Attach(KPSUidUikon, KUikMMCInserted));
+    iMMCWatchSubscriber = new (ELeave) CSubscriber(
+        TCallBack(HandleMMCStateChanged, this), iMMCWatchProperty);
+    iMMCWatchSubscriber->SubscribeL();
+    
+    // USB watcher (MMC dismount)
+    User::LeaveIfError(iUSBWatchProperty.Attach(
+           KPSUidUsbWatcher, KUsbWatcherSelectedPersonality));
+    iUSBWatchSubscriber = new (ELeave) CSubscriber(
+        TCallBack(HandleUSBStateChanged, this), iUSBWatchProperty);
+    iUSBWatchSubscriber->SubscribeL();
+
+    // Keyguard state watcher
+    User::LeaveIfError(iKeyguardStateProperty.Attach(
+        KPSUidAvkonDomain, KAknKeyguardStatus));
+    iKeyguardStateSubscriber = new (ELeave) CSubscriber(
+        TCallBack(HandleKeyguardStateChanged, this), iKeyguardStateProperty);
+    iKeyguardStateSubscriber->SubscribeL();
+
+    // Call state watcher
+    User::LeaveIfError(iCallStateProperty.Attach( KPSUidCtsyCallInformation, KCTsyCallState ) );
+    iCallStateSubscriber = new (ELeave) CSubscriber(
+        TCallBack(HandleCallStateChanged, this), iCallStateProperty);
+    iCallStateSubscriber->SubscribeL();
+
+    // Shutting down state watcher
+    User::LeaveIfError( iShuttingDownProperty.Attach( KPSUidStartup, KPSGlobalSystemState ) );
+    iShuttingDownSubscriber = new (ELeave) CSubscriber(
+        TCallBack(HandleShuttingDownStateChanged, this), iShuttingDownProperty);
+    iShuttingDownSubscriber->SubscribeL();
+
+    User::LeaveIfError( iActivateSSProperty.Attach( KPSUidScreenSaver, KScreenSaverActivate ) );
+    iActivateSSSubscriber = new( ELeave ) CSubscriber( 
+        TCallBack( HandleActivateSSChanged, this ), iActivateSSProperty );
+    iActivateSSSubscriber->SubscribeL();
+    
+    User::LeaveIfError( iChargerStateProperty.Attach( KPSUidHWRMPowerState, KHWRMChargingStatus ) );
+    iChargerStateSubscriber = new (ELeave) CSubscriber( 
+        TCallBack( HandleChargerStateChanged, this ), iChargerStateProperty );
+    iChargerStateSubscriber->SubscribeL();
+    
+    iMessageWaitingRepository = CRepository::NewL( KCRUidCtsyMessageWaitingIndicator );
+    iMessageWaitingWatcher = CScreensaverRepositoryWatcher::NewL( KCRUidCtsyMessageWaitingIndicator,
+                                                                  TCallBack( HandleMessageWaitingStateChanged, this ),
+                                                                  iMessageWaitingRepository );
+
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::View
+// -----------------------------------------------------------------------------
+// 
+CScreensaverView* CScreensaverSharedDataMonitor::View()
+    {
+    return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->ScreensaverView();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::Model
+// -----------------------------------------------------------------------------
+//
+CScreensaverEngine& CScreensaverSharedDataMonitor::Model()
+    {
+    return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->Model();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::DeteleSubscriber
+// -----------------------------------------------------------------------------
+//
+void CScreensaverSharedDataMonitor::DeleteSubscriber( CSubscriber*& aSubscriber )
+    {
+    if ( aSubscriber )
+        {
+        aSubscriber->StopSubscribe();
+        }
+    delete aSubscriber;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::HandlePreviewModeChanged
+// Handles preview mode property key change. If key is changed to 1,
+// preview mode is started
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandlePreviewModeChanged(TAny *aPtr)
+    {
+    CScreensaverSharedDataMonitor *data = STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr);
+
+    if ( data->iData->ScreensaverPreviewMode() == 1)
+        {
+        TRAP_IGNORE( data->Model().StartPreviewModeL() );
+        }
+    
+    return KErrNone;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::HandleMMCStateChanged
+// Handles MMC state change callback. If current plugin is loaded from
+// MMC, screensaver defaults to date & time when MMC removed
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandleMMCStateChanged(TAny* aPtr)
+    {
+    User::ResetInactivityTime();
+    STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::HandleUSBStateChanged
+// Handles USB state change callback. If current plugin is loaded from
+// MMC, screensaver defaults to date & time when USB attached
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandleUSBStateChanged(TAny* aPtr)
+    {
+    // Same handler as in MMC removal, parameter tells it's because of USB
+    User::ResetInactivityTime();
+    STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::HandleKeyguardStateChanged
+// Handles keyguards status change callback.
+// When keys become locked, screensaver timeout is shortened.
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandleKeyguardStateChanged(TAny* aPtr)
+    {
+    // If keyguard just became unlocked, inform model so that
+    // short timeout use is reset. Otherwise there might be a situation
+    // where short timeout was in use, user opened keys, did something
+    // without letting the device idle for short timeout period and
+    // locked keys again. Then short timeout would remain in use without this
+    // notification.
+    // Also inform of keys locked, in case Screensaver is running this
+    // happened because of automatic keyguard fired, and screensaver
+    // should update the display to show the keyguard indicator
+    CScreensaverSharedDataMonitor* _this =
+        STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr);
+
+    _this->Model().HandleKeyguardStateChanged( _this->iData->IsKeyguardOn() );
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::HandleCallStateChanged
+// Handles call state change callback. If call state changes,
+// screensaver is stopped
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandleCallStateChanged(TAny* aPtr)
+    {
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+    // Prevent fullscreen transition from screensaver on incoming call
+    CAknTransitionUtils::SetData( KScreensaverCallStateChange, (TAny*)1 );
+#endif
+    User::ResetInactivityTime();
+    STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::HandleShuttingDownStateChanged
+// -----------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandleShuttingDownStateChanged( TAny* /*aPtr*/ )
+    {
+    TInt startupState = -1;
+    
+    RProperty::Get( KPSUidStartup, KPSGlobalSystemState, startupState );
+    
+    if( startupState == ESwStateShuttingDown )
+        {
+        RProperty::Set( KPSUidScreenSaver, KScreenSaverAllowScreenSaver, KSystemShuttingdown);
+        }
+    
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::HandleActivateSSChanged
+// ---------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandleActivateSSChanged( TAny* aPtr )
+    {
+    TInt activateState = -1;
+
+    RProperty::Get( KPSUidScreenSaver, KScreenSaverActivate, activateState );
+
+    if( activateState && -1 != activateState )
+        {
+        // Enable SS
+        SCRLOGGER_WRITE("SharedDataMonitor: Activate SS");
+        STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StartScreenSaver();
+        }
+    else if ( !activateState )
+        {
+        // Disable SS
+        SCRLOGGER_WRITE("SharedDataMonitor: Stop SS");
+        STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
+        }
+    else
+        {
+        // Unknown state
+        }
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CScreensaverSharedDataMonitor::HandleChargerStateChanged
+// ---------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandleChargerStateChanged( TAny* aPtr )
+    {
+    TInt state = -1;
+    
+    RProperty::Get( KPSUidHWRMPowerState, KHWRMChargingStatus, state );
+    
+    switch ( state )
+        {
+        case EChargingStatusError: // Some error has occurred when charger is connected or charging. 
+        case EChargingStatusNotConnected: // Charger not connected/uninitialized
+        case EChargingStatusCharging: // Device is charging
+            {
+            User::ResetInactivityTime();
+            STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver();
+            }
+            break;
+        case EChargingStatusChargingComplete: // Charging completed
+        case EChargingStatusNotCharging: // Charger is connected, device not charging
+        case EChargingStatusAlmostComplete: // Charging almost completed
+        case EChargingStatusChargingContinued: // Charging continued after brief interruption
+        default:
+            break;
+        }
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TInt CScreensaverSharedDataMonitor::HandleMessageWaitingStateChanged( TAny* aPtr )
+    {
+    CScreensaverSharedDataMonitor* self = STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr);
+    if ( self->iMessageWaitingWatcher->ChangedKey() == KCtsyMessageWaitingDisplayStatus )
+        {
+        self->View()->UpdateAndRefresh();
+        }
+    return KErrNone;
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaversubscriber.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,86 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Implementation of screensaver shared data Subscriber.
+*
+*/
+
+
+
+#include "screensaversubscriber.h"
+
+
+// -----------------------------------------------------------------------------
+// CSubscriber::CSubscriber
+// -----------------------------------------------------------------------------
+//
+CSubscriber::CSubscriber(TCallBack aCallBack, RProperty& aProperty)
+    : CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty)
+    {
+    CActiveScheduler::Add(this);
+    }
+
+// -----------------------------------------------------------------------------
+// CSubscriber::~CSubscriber
+// -----------------------------------------------------------------------------
+//
+CSubscriber::~CSubscriber()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CSubscriber::SubscribeL
+// -----------------------------------------------------------------------------
+//
+void CSubscriber::SubscribeL()
+    {
+    if (!IsActive())
+        {
+        iProperty.Subscribe(iStatus);
+        SetActive();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CSubscriber::StopSubscribe
+// -----------------------------------------------------------------------------
+//
+void CSubscriber::StopSubscribe()
+    {
+    Cancel();
+    }
+
+// -----------------------------------------------------------------------------
+// CSubscriber::RunL
+// -----------------------------------------------------------------------------
+//
+void CSubscriber::RunL()
+    {
+    if (iStatus.Int() == KErrNone)
+        {
+        SubscribeL();
+        iCallBack.CallBack();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CSubscriber::DoCancel
+// -----------------------------------------------------------------------------
+//
+void CSubscriber::DoCancel()
+    {
+    iProperty.Cancel();
+    }
+
+
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverutility.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,225 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Defines screensaver utility tools.
+*
+*/
+
+
+
+#include <coecntrl.h>
+#include <akntranseffect.h>
+#include <data_caging_path_literals.hrh>
+#include <gulicon.h>
+
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+#include <akntransitionutils.h>
+#endif
+
+#include "screensaverutility.h"
+#include "screensaverappui.h"
+#include "ScreensaverUtils.h"
+
+
+// Screensaver window group priority boost (to ensure it's on top)
+const TInt KSSWinPriorityBoost = 2;
+
+_LIT(KSsBitmapName, "\\ssbackground.mbm");
+_LIT(KSsBitmapUserDrive, "c:");
+_LIT(KSsBitmapSystemDrive, "z:");
+
+// -----------------------------------------------------------------------------
+// CScreensaverUtility::Panic( TInt aPanic )
+// -----------------------------------------------------------------------------
+//
+void ScreensaverUtility::Panic( TInt aPanic )
+    {
+    User::Panic( _L("Screensaver"),aPanic );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverUtility::FlushDrawBuffer( TInt aPanic )
+// Flushes pending draw commands. A "must" before activating power save
+// mode, so that the image can be copied to power save memory
+// -----------------------------------------------------------------------------
+//
+void ScreensaverUtility::FlushDrawBuffer()
+    {
+    CCoeEnv::Static()->WsSession().Flush();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverUtility::ScreenRotated( TInt aPanic )
+// Checks if screen has been rotated
+// -----------------------------------------------------------------------------
+//
+TBool ScreensaverUtility::ScreenRotated()
+    {
+    TPixelsAndRotation pxRot;
+    CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(pxRot);
+
+    // Rotated, if 90 or 270 degrees
+    return ((pxRot.iRotation == CFbsBitGc::EGraphicsOrientationRotated90)
+            || (pxRot.iRotation == CFbsBitGc::EGraphicsOrientationRotated270));
+    }
+
+// -----------------------------------------------------------------------------
+// ScreensaverUtility::Query12HourClock
+// Query whether 12-hour clock is displayed
+// -----------------------------------------------------------------------------
+//
+TBool ScreensaverUtility::Query12HourClock( )
+    {
+    TLocale locale;
+    return (locale.TimeFormat() == ETime12);
+    }
+
+
+// -----------------------------------------------------------------------------
+// ScreensaverUtility::BringToForeground
+// -----------------------------------------------------------------------------
+//
+void ScreensaverUtility::BringToForeground()
+    {
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+    const TInt KSsaCustomActivateContextNum = 1002;
+
+    GfxTransEffect::BeginFullScreen( KSsaCustomActivateContextNum, TRect( ),
+        AknTransEffect::EParameterType, AknTransEffect::GfxTransParam(
+            KUidScreensaverApp,
+            AknTransEffect::TParameter::EActivateExplicitContinue ) );
+#endif
+    CEikonEnv::Static()->SetAutoForwarding( ETrue );
+    CEikonEnv::Static()->BringForwards( ETrue, ECoeWinPriorityAlwaysAtFront
+        + KSSWinPriorityBoost );
+    }
+
+// -----------------------------------------------------------------------------
+// ScreensaverUtility::SendToBackground
+// -----------------------------------------------------------------------------
+//
+void ScreensaverUtility::SendToBackground()
+    {
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+
+    // Start the exit effect context even if this is actually application switch. The exit context
+    // makes possible to map effect by using the *previous* application uid (=Screen Saver).
+    // Note: Not allowed to call GfxTransEffect::EndFullScreen() as AVKON takes care of that when
+    // EApplicationExit context is used! 
+    const TInt KSsaCustomDeactivateContextNum = 1001;
+
+    //condition takes care of special case of incomeing call (should not have effect then)
+    if ( CAknTransitionUtils::GetData( KScreensaverCallStateChange ) == NULL )
+        {
+        if ( static_cast<CScreensaverAppUi*>(CCoeEnv::Static()->AppUi())->IsForeground() )
+            {
+            GfxTransEffect::BeginFullScreen( KSsaCustomDeactivateContextNum,
+            TRect( ), AknTransEffect::EParameterType,
+            AknTransEffect::GfxTransParam( KUidScreensaverApp,
+                AknTransEffect::TParameter::EActivateExplicitContinue ) );
+            }
+        }
+    CAknTransitionUtils::RemoveData( KScreensaverCallStateChange );
+#endif
+
+    CEikonEnv::Static()->BringForwards( EFalse );
+    }
+
+// -----------------------------------------------------------------------------
+// ScreensaverUtility::IsDrivePresent
+// -----------------------------------------------------------------------------
+//
+TBool ScreensaverUtility::IsDrivePresent(TInt aDrive)
+    {
+    RFs& fs = CCoeEnv::Static()->FsSession();
+
+    TInt error = KErrNone;
+    TDriveInfo driveInfo;
+    error = fs.Drive(driveInfo, aDrive );
+
+    // Not present, locked or unknown is bad
+    if ((error != KErrNone) ||
+        (driveInfo.iMediaAtt & KMediaAttLocked) ||
+        (driveInfo.iType == EMediaNotPresent) ||
+        (driveInfo.iType == EMediaUnknown))
+        {
+        return EFalse;
+        }
+
+    // Read-only is fine
+    return ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// ScreensaverUtility::LoadBitmapL
+// -----------------------------------------------------------------------------
+//
+CGulIcon* ScreensaverUtility::LoadBitmapL()
+    {
+    CGulIcon *icon = CGulIcon::NewL();
+    CleanupStack::PushL( icon );
+    icon->SetBitmap(new (ELeave) CFbsBitmap());
+    CFbsBitmap* mask = new (ELeave) CFbsBitmap();
+
+    // First try user path and then system path.
+    TInt error;
+    TFileName path;
+    path.Copy(KSsBitmapUserDrive);
+    path.Append(KDC_APP_BITMAP_DIR);
+    path.Append(KSsBitmapName);
+
+    for (TInt i = 0; i < 2; i++)
+        {
+        error = icon->Bitmap()->Load(path, 0);
+        if (error == KErrNone)
+            {
+            error = mask->Load(path, 1);
+            if (error != KErrNone)
+                {
+                delete mask;
+                }
+            else
+                {
+                icon->SetMask( mask );
+                }
+            CleanupStack::Pop(); // icon
+            return icon;
+            }
+            path.Copy(KSsBitmapSystemDrive);
+            path.Append(KDC_APP_BITMAP_DIR);
+            path.Append(KSsBitmapName);
+        }
+
+    CleanupStack::PopAndDestroy(); // icon
+    return NULL;
+    }
+
+
+// -----------------------------------------------------------------------------
+// ScreensaverUtility::StopWServHeartBeat
+// -----------------------------------------------------------------------------
+//
+void ScreensaverUtility::StopWServHeartBeat()
+    {
+    SCRLOGGER_WRITE("Model: Stopping WServ HB, snoozing...");
+    RWsSession ws;
+    TInt err = ws.Connect( );
+    if ( !err )
+        {
+        ws.PrepareForSwitchOff( );
+        ws.Close( );
+        }
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/screensaverview.cpp	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,283 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Screensaver view class implementation.
+*
+*/
+
+
+
+#include <power_save_display_mode.h>
+#include <screensaver.rsg>
+
+#include "ScreensaverUtils.h"
+#include "screensaverview.h"
+#include "screensaverappui.h"
+#include "screensaverplugin.h"
+#include "screensaverutility.h"
+#include "screensaverctrlmovingtext.h"
+#include "screensaverctrlnone.h"
+#include "screensaverctrlplugin.h"
+#include "screensaverengine.h"
+#include "screensavershareddatai.h"
+
+const TUid KBigClockScreensaverPluginImplUid = { 0x2002E6DE };
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::NewLC
+// add this NewLC code called by UI
+// -----------------------------------------------------------------------------
+// 
+CScreensaverView* CScreensaverView::NewL()
+    {
+    CScreensaverView* self = new( ELeave ) CScreensaverView();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::CScreensaverView
+// -----------------------------------------------------------------------------
+//
+CScreensaverView::CScreensaverView()
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::~CScreensaverView
+// -----------------------------------------------------------------------------
+//
+CScreensaverView::~CScreensaverView( )
+    {
+    DestroyDisplayObject();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::ConstructL( )
+    {
+    // Let CAknView do its stuff
+    BaseConstructL();
+    
+    SetDisplayObject( PslnSettingScreensaverType() );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::CreateDisplayObjectL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::CreateDisplayObjectL( TDisplayObjectType aType )
+    {
+    SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::CreateDisplayObjectL "),aType);
+    
+    DestroyDisplayObject();
+    
+    switch( aType )
+        {
+        case EDisplayPlugin:
+            {
+            iControl = CScreensaverCtrlPlugin::NewL();
+            CScreensaverCtrlPlugin* pluginCtrl = 
+                STATIC_CAST( CScreensaverCtrlPlugin*, iControl );
+            if ( pluginCtrl->PluginImplementationUid() ==
+                 KBigClockScreensaverPluginImplUid )
+                {
+                iIsContentless = ETrue;
+                }
+            break;
+            }
+        case EDisplayTime:
+        case EDisplayText:
+#ifdef USE_DATE_AND_TEXT   
+            {
+            iControl = CScreensaverCtrlMovingText::NewL( aType );
+            break;
+            }
+#endif
+        case EDisplayNone:
+            {
+            iControl = CScreensaverCtrlNone::NewL();
+          //  iIsContentless = ETrue;
+            break;
+            }
+            
+        default:
+            {
+            break;
+            }
+        }
+    
+    iCurrentControlType = aType;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::SetDisplayObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::SetDisplayObject( TDisplayObjectType aType )
+    {
+    SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::SetDisplayObject "));
+    
+    TRAPD( error, CreateDisplayObjectL( aType ) );
+
+    if(error == KErrNone)
+        return;
+
+    SCRLOGGER_WRITE("ResetDisplayObject() setting default screensaver");
+
+    TRAP_IGNORE( CreateDisplayObjectL( DefaultScreensaverType() ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::CreatePreviewDisplayObjectL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::CreatePreviewDisplayObjectL()
+    {
+    SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::CreatePreviewDisplayObjectL "));
+    TRAPD( error, CreateDisplayObjectL( PslnSettingScreensaverType() ) );
+
+    if(error == KErrNone)
+        {
+        Model().SharedDataInterface()->SetScreensaverPreviewState(
+            EScreenSaverPreviewLoaded );
+        return;
+        }
+    
+    Model().SharedDataInterface()->SetScreensaverPreviewState(
+        EScreenSaverPreviewError );
+    }
+
+// ---------------------------------------------------------------------------
+// CScreensaverView::IsContentlessScreensaver
+// ---------------------------------------------------------------------------
+//
+TBool CScreensaverView::IsContentlessScreensaver() const
+    {
+    return iIsContentless;
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::Id
+// -----------------------------------------------------------------------------
+//
+TUid CScreensaverView::Id( ) const
+    {
+    return KUidScreensaverView;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::DoActivateL
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::DoActivateL( const TVwsViewId& /*aPrevViewId*/,
+    TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/)
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::DoDeactivate
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::DoDeactivate( )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::ShowDisplayObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::ShowDisplayObject()
+    {
+    SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::ShowDisplayObject "));
+    
+    iControl->StartDrawObject();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::HideDisplayObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::HideDisplayObject()
+    {
+    SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::HideDisplayObject "));
+    iControl->StopDrawObject();
+
+    if ( !IsContentlessScreensaver() )
+        {
+        ScreensaverUtility::SendToBackground();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::UpdateAndRefresh
+// Updates indicators and refreshes the display
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::UpdateAndRefresh( )
+    {
+    SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::UpdateAndRefresh "));
+    iControl->Refresh();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::DefaultScreensaverType
+// -----------------------------------------------------------------------------
+//
+TDisplayObjectType CScreensaverView::DefaultScreensaverType()
+    {
+    return Model().SharedDataInterface()->DefaultScreensaverType();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::PslnSettingScreensaverType
+// -----------------------------------------------------------------------------
+//
+TDisplayObjectType CScreensaverView::PslnSettingScreensaverType()
+    {
+    return Model().SharedDataInterface()->DisplayObjectType();
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::Model
+// -----------------------------------------------------------------------------
+//
+CScreensaverEngine& CScreensaverView::Model() const
+    {
+    return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() )->Model(); 
+    }
+
+// -----------------------------------------------------------------------------
+// CScreensaverView::DestroyDisplayObject
+// -----------------------------------------------------------------------------
+//
+void CScreensaverView::DestroyDisplayObject()
+    {
+    SCRLOGGER_WRITEF(_L("SCR: CScreensaverView::DestroyDisplayObject "));
+    if( iControl )
+        {
+        delete iControl;
+        iControl = NULL;
+        }
+    iIsContentless = EFalse;
+    }
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysdef_1_4_0.dtd	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,86 @@
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset name CDATA #REQUIRED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemDefinition.xml	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition SYSTEM "systemDefinition.dtd"[
+
+ 	<!ENTITY layer_real_source_path "\sf\app\screensaver">
+ 	<!ENTITY layer_name "screensaver">
+
+ 	<!ENTITY layer_file SYSTEM "systemDefinitionLayer.xml">
+ 	<!ENTITY targetDefinition_file SYSTEM "/epoc32/tools/systemDefinition/targetDefinition.xml">
+ 	<!ENTITY defaultbuild_file SYSTEM "/epoc32/tools/systemDefinition/default_build.xml">
+ 	<!ENTITY defaultclean_file SYSTEM "/epoc32/tools/systemDefinition/default_clean.xml">
+]>
+
+<SystemDefinition name="SystemDefinition" schema="1.4.0">
+  <systemModel>
+&layer_file;
+  </systemModel>
+  <build>
+&targetDefinition_file;
+
+		<configuration name="build" description="build layer" filter="">
+    	<layerRef layerName="&layer_name;"/>
+
+&defaultbuild_file;
+    </configuration>
+
+		<configuration name="clean" description="clean layer" filter="">
+    	<layerRef layerName="&layer_name;"/>
+
+&defaultclean_file;
+    </configuration>
+
+  </build>
+</SystemDefinition>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemDefinitionLayer.xml	Wed Sep 01 12:30:40 2010 +0100
@@ -0,0 +1,7 @@
+<layer name="screensaver">
+  <module name="group_screensaver">
+    <component name="group_screensaver">
+      <unit unitID="screensaver" mrp="" bldFile="&layer_real_source_path;\group" name="screensaver" />
+    </component>
+  </module>
+</layer>