Merge william's latest changes before pushing
authorTom Pritchard <tomp@symbian.org>
Wed, 27 Oct 2010 15:25:50 +0100
changeset 92 458d62869c00
parent 91 303d3e345b01 (diff)
parent 83 9b61d901414f (current diff)
child 93 fc883949f25b
Merge william's latest changes before pushing
group/bld.inf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/breakdeps/DRMEngine/DRMClock.cpp	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,403 @@
+/*
+* Copyright (c) 2003-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 the DRM Clock
+*
+*/
+
+
+// INCLUDE FILES
+
+#include <mmtsy_names.h>
+
+#include "DRMClock.h"
+#include "drmlog.h"
+#include "DRMEventTimeChange.h"
+#include "wmdrmfileserverclient.h"
+
+#include <DRMNotifier.h>
+#include <s32strm.h>
+#include <s32file.h>
+#include <e32property.h>
+#include <e32keys.h>
+
+#ifdef RD_MULTIPLE_DRIVE
+#include <driveinfo.h>
+#endif
+
+#include "DRMNitzObserver.h"
+#include "GPSWatcher.h"
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES  
+
+// CONSTANTS
+const TInt KMinuteInMicroseconds = 60000000;
+const TInt KTimeZoneIncrement = 15;
+ 
+// The time zones sanity check values, not sure if -13 hours exists
+// But atleast +13 does in: Nuku'Alofa
+const TInt KTimeZoneLow = -52; // -13 hours
+const TInt KTimeZoneHigh = 55; // +13 hours 45 minutes Some NZ owned island
+
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// CDRMRightsDB::CDRMRightsDB
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//    
+CDRMClock::CDRMClock()
+    {      
+    };
+
+// -----------------------------------------------------------------------------
+// CDRMRightsDB::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CDRMClock::ConstructL()
+    {
+    DRMLOG( _L( "DRM Clock Starting: " ) );
+    TInt error = KErrNone;
+
+    // Create a notifier instance
+    iNotifier = CDRMNotifier::NewL();
+        
+#if 0 //ndef __WINS__
+    ConnectToPhoneL();            
+            
+    iObserver = CDRMNitzObserver::NewL( iPhone, const_cast<CDRMClock*>(this));
+
+    iObserver->Start();
+    
+    TRAP( error, iGpsWatcher = CGPSWatcher::NewL( const_cast<CDRMClock*>(this) ));
+    DRMLOG2( _L("DRMClock: GPS watcher started: %d"), error );    
+#endif
+
+    DRMLOG( _L( "DRM Clock started" ) );		    
+    };
+
+// -----------------------------------------------------------------------------
+// CDRMClock::NewLC
+// Two-phased constructor
+// -----------------------------------------------------------------------------
+//
+CDRMClock* CDRMClock::NewLC()
+    {
+    DRMLOG( _L( "CDRMClock::NewLC" ) );
+    
+    CDRMClock* self = new(ELeave) CDRMClock;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    
+    DRMLOG( _L( "CDRMClock::NewLC ok" ) );
+    
+    return self;
+    };
+
+// -----------------------------------------------------------------------------
+// CDRMClock::NewL
+// Two-phased constructor
+// -----------------------------------------------------------------------------
+//
+CDRMClock* CDRMClock::NewL()
+    {
+    DRMLOG( _L( "CDRMClock::NewL" ) );
+    
+    CDRMClock* self = NewLC();
+    CleanupStack::Pop();
+
+    DRMLOG( _L( "CDRMClock::NewL ok" ) );
+    
+    return self;
+    };
+  
+// ---------------------------------------------------------
+// CDRMClock::~CDRMClock
+// Destructor
+// ---------------------------------------------------------
+//
+CDRMClock::~CDRMClock()
+    { 
+    DRMLOG( _L( "CDRMClock::~CDRMClock" ) );
+       
+    if( iNotifier )
+        {
+        delete iNotifier;
+        iNotifier = 0;
+        }
+        
+#if 0 //ndef __WINS__
+    if(iObserver)            
+        {
+        iObserver->Cancel();
+        delete iObserver;
+        iObserver = 0;
+        }  
+        
+    if( iGpsWatcher )
+        {
+        iGpsWatcher->Cancel();
+        delete iGpsWatcher;
+        iGpsWatcher = 0;
+        }   
+#endif // __WINS__        
+    };
+
+// -----------------------------------------------------------------------------
+// CDRMClock::GetSecureTime
+// returns time and security level
+// -----------------------------------------------------------------------------
+//
+void CDRMClock::GetSecureTime(TTime& aTime, TInt& aTimeZone, 
+                              DRMClock::ESecurityLevel& aSecurityLevel)
+    {
+    DRMLOG( _L( "CDRMClock::GetSecureTime" ) );
+    
+    TTime currentUniversal;
+    TTime currentHome;
+    TInt error = KErrNone;
+    
+    // if there is an error it's not initialized
+    error = aTime.UniversalTimeSecure();
+    
+    if( error == KErrNoSecureTime )
+        {
+        currentHome.HomeTime();               
+        currentUniversal.UniversalTime();         
+        
+        aTimeZone = ( currentHome.Int64() - currentUniversal.Int64() ) / 
+                   ( KMinuteInMicroseconds* KTimeZoneIncrement );
+        
+        
+        aTime.UniversalTime();
+
+        aSecurityLevel = DRMClock::KInsecure; 
+       
+        DRMLOG( _L( "CDRMClock::GetSecureTime: DRMClock is Insecure" ) );        
+        }
+    else 
+        {
+        currentHome.HomeTimeSecure();        
+        currentUniversal.UniversalTimeSecure();
+        
+        aTimeZone = ( currentHome.Int64() - currentUniversal.Int64() ) / 
+                   ( KMinuteInMicroseconds* KTimeZoneIncrement );
+        
+        aSecurityLevel = DRMClock::KSecure;     
+        DRMLOG( _L( "CDRMClock::GetSecureTime: DRMClock is Secure" ) );  
+        }    
+
+    DRMLOG( _L( "CDRMClock::GetSecureTime ok" ) );
+    };
+
+
+// -----------------------------------------------------------------------------
+// CDRMClock::ResetSecureTimeL
+// resets the secure time and recalculates the offsets
+// should not reset to 0
+// -----------------------------------------------------------------------------
+//
+// Do not reset the timezone, use whatever has been set or retrieved from the UI time
+// However check that the timezone is a valid one just in case
+void CDRMClock::ResetSecureTimeL( const TTime& aTime, const TInt& aTimeZone )
+    {
+    DRMLOG( _L( "CDRMClock::ResetSecureTimeL" ) );
+   
+    TRequestStatus status;  
+    TInt error = KErrNone;  
+    CDRMEventTimeChange* change = CDRMEventTimeChange::NewLC();
+	TTime previousTime;
+	TTime previousTimeLocal;
+	TTime newTime;
+	TInt timezone = 0;
+	TDateTime temppi; // Only for logging
+
+    // check for param that the time is even reasonably valid:
+    if( aTime.Int64() == 0 )
+        {
+        DRMLOG( _L("Trying to reset to zero time") );             
+    	User::Leave( KErrArgument );
+        }
+    
+    // Sanity check: Time zone has to be +/- certail hours
+    // for this check -13h to +13.75h
+    if( aTimeZone < KTimeZoneLow || aTimeZone > KTimeZoneHigh )
+        {
+        DRMLOG2( _L("TimeZone invalid, time may be as well, aborting change: %d"), aTimeZone  );
+        User::Leave( KErrArgument );
+        }
+    
+    
+    // Get the current secure time with timezone
+    // Ask the hometime first so that rounding of any divider goes correctly
+    error = previousTimeLocal.HomeTimeSecure(); 
+    
+    // If there is an error, the secure hometime has not been set
+    // Which means that the UI clock has the valid data
+    if( error )
+        {
+        previousTimeLocal.HomeTime();
+        previousTime.UniversalTime();
+        timezone = ( previousTimeLocal.Int64() - previousTime.Int64() ) / 
+                   ( KMinuteInMicroseconds* KTimeZoneIncrement );
+		change->SetOldSecurityLevel( DRMClock::KInsecure );
+		}
+	else
+		{
+		previousTime.UniversalTimeSecure();		                   
+        
+        timezone = ( previousTimeLocal.Int64() - previousTime.Int64() ) / 
+                   ( KMinuteInMicroseconds* KTimeZoneIncrement );
+
+		change->SetOldSecurityLevel( DRMClock::KSecure );
+		change->SetNewSecurityLevel( DRMClock::KSecure );
+		}
+    
+    // Since it's not important to get the timezone we keep what is set or reset it:
+    previousTimeLocal = aTime.Int64() + ( timezone * ( KMinuteInMicroseconds* KTimeZoneIncrement ) );
+
+    // Do the actual updating:
+    // Update using the wmdrm fileserver since it has TCB capability
+    RWmDrmFileServerClient resetclient;
+    User::LeaveIfError( resetclient.Connect() );
+    CleanupClosePushL( resetclient );
+    
+    newTime = aTime;
+    User::LeaveIfError( resetclient.UpdateSecureTime( previousTimeLocal, newTime ) );
+       
+    CleanupStack::PopAndDestroy();
+
+
+    DRMLOG( _L( "CDRMClock::ResetSecureTimeL: AFTER RESET." ));	
+
+    // DRM Notifier data:
+    // send info about the change:
+
+    change->SetNewSecurityLevel( DRMClock::KSecure );
+    
+    change->SetOldTime( previousTime );
+    change->SetOldTimeZone( timezone );
+
+    change->SetNewTime( aTime );
+    change->SetNewTimeZone( timezone );
+    
+    // Notify clients
+
+    iNotifier->SendEventL(*change,status);
+    User::WaitForRequest(status);
+    CleanupStack::PopAndDestroy();    
+    
+    DRMLOG( _L( "CDRMClock::ResetSecureTimeL ok" ) );
+    };
+
+// ---------------------------------------------------------
+// CDRMClock::Notify
+// Notify DRM clock about an event
+// ---------------------------------------------------------
+//
+void CDRMClock::Notify( TInt aNotify )
+    {
+    switch( aNotify )
+        {
+        case ENotifyGPSTimeReceived:
+            // GPS time received, listen again after the next boot, destroy GPS watcher:
+            DRMLOG(_L("Notify: ENotifyGPSTimeReceived, Deleting GPS watcher"));
+            delete iGpsWatcher;
+            iGpsWatcher = NULL;
+            DRMLOG(_L("Notify: GPS Watcher deleted"));
+            break;    
+        case ENotifyNone:
+        default:
+            break;  // Do nothing    
+        }    
+    }
+
+
+
+
+
+// ---------------------------------------------------------
+// CDRMClock::ConnectToPhoneL(const TDateTime& aDateTime)
+// Gets the nitz time from iNitzInfo
+// ---------------------------------------------------------
+//
+void CDRMClock::ConnectToPhoneL()
+    {
+    DRMLOG( _L( "CDRMClock::ConnectToPhoneL" ) );
+#if 0    
+    const TInt KTriesToConnectServer(10);
+    const TInt KTimeBeforeRetryingServerConnection(100000);
+    TInt thisTry(0);
+    TInt err(KErrNone);
+    TInt numPhone;
+    TName tsyName;
+    RTelServer::TPhoneInfo phoneInfo;
+    RMobilePhone::TMobilePhoneSubscriberId imsi;
+    TRequestStatus status;
+    
+
+    while ((err = iEtelServer.Connect()) != KErrNone &&
+                            (thisTry++) <= KTriesToConnectServer)
+        {
+        User::After(KTimeBeforeRetryingServerConnection);
+        }
+    User::LeaveIfError(err);
+
+    User::LeaveIfError(iEtelServer.LoadPhoneModule(KMmTsyModuleName));
+    User::LeaveIfError(iEtelServer.EnumeratePhones(numPhone));
+
+    for (TInt i(0); i < numPhone; i++)
+        {
+        User::LeaveIfError(iEtelServer.GetPhoneInfo(i, phoneInfo));
+        User::LeaveIfError(iEtelServer.GetTsyName(i,tsyName));
+
+        if (tsyName.CompareF(KMmTsyModuleName) == 0)
+            {
+            break;
+            }
+        }
+
+    User::LeaveIfError(iPhone.Open(iEtelServer, phoneInfo.iName));   
+    
+    iPhone.GetSubscriberId( status, imsi );
+    User::WaitForRequest( status );
+	
+    DRMLOG( imsi );    
+ #endif   
+    DRMLOG( _L( "CDRMClock::ConnectToPhoneL ok" ) );
+    };
+
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/breakdeps/DRMEngine/DRMClock.h	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2003-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:  Interface for the DRMClock
+*
+*/
+
+
+#ifndef DRMCLOCK_H
+#define DRMCLOCK_H
+
+// INCLUDES
+
+#include <e32base.h>	// CBase
+#include <e32std.h>
+#include <e32def.h>		// Type definitions
+#include <bacntf.h>
+//#include <etelmm.h>
+#include <DRMTypes.h>
+#include <e32property.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CDRMNitzObserver;
+class CDRMNotifier;
+class CGPSWatcher;
+
+// CLASS DECLARATION
+
+/**
+*  CDRMClock implements the drm clock required by DRM Engine
+*
+*  @lib unipertar.exe
+*  @since 2.8
+*/
+NONSHARABLE_CLASS( CDRMClock )
+    {
+    public:
+        // Notifications:        
+        enum 
+            {
+            ENotifyNone = 0,    
+            ENotifyGPSTimeReceived = 1    
+            };    
+    
+    public:
+
+        /**
+        * NewLC
+        *
+        * Creates an instance of the CDRMClock class and returns a pointer to it
+        * The function leaves the object into the cleanup stack
+        *
+        * @since  2.8
+        * @return Functional CDRMClock object, Function leaves if an error occurs.
+        */
+        static CDRMClock* NewLC();
+
+        /**
+        * NewL
+        *
+        * Creates an instance of the CDRMClock class and returns a pointer to it
+        *
+        * @since  2.8
+        * @return Functional CDRMClock object, Function leaves if an error occurs.
+        */
+        static CDRMClock* NewL();
+  
+        /**
+        * Destructor
+        */
+        virtual ~CDRMClock();
+
+        /**
+        * GetSecureTime
+        * 
+        * Return the current time and the security of the current time
+        *
+        * @since 2.8
+        * @param aTime : return parameter for time in UTC
+        * @param aTimeZone : return parameter for the timezone in +/-15 minutes
+        * @param aSecurityLevel : return parameter for security level
+        * @return none
+        */
+        void GetSecureTime(TTime& aTime, TInt& aTimeZone, 
+                           DRMClock::ESecurityLevel& aSecurityLevel);
+
+        /**
+        * ResetSecureTimeL
+        *
+        * Resets the secure time source and recalculates the offsets
+        *
+        * @since 2.8 
+        * @param aSecureTime, the new secure time in UTC
+        * @param aTimeZone, the time zone of the new secure time in +/- 15 minutes 
+        * @return none, Function leaves with Symbian OS error code if an
+        *         error occurs
+        */
+        void ResetSecureTimeL( const TTime& aSecureTime, const TInt& aTimeZone );
+        
+        
+        /**
+        * Notify
+        *
+        * Notifies about an event to the DRM Clock
+        *
+        * @since 9.2
+        * @param Message The notification event   
+        *
+        */
+        void Notify( TInt aMessage );
+        
+    protected:    
+    private:
+        /**
+        * Default Constructor - First phase
+        */
+        CDRMClock();
+
+         /**
+        * ConstructL
+        *
+        * Second phase constructor
+        *
+        * @since  2.8
+        * @return Leaves if an error occurs
+        */	   
+        void ConstructL();
+ 
+        /**
+        * ConnectToPhoneL
+        *
+        * Connects to the phone services
+        *
+        * @since 2.8
+        * @return Leaves with symbian os error codes if an error occurs
+        */
+        void ConnectToPhoneL();
+        
+        // Variables
+        CDRMNotifier* iNotifier;   
+        
+        // Nitz information handles   
+#if 0		
+        RTelServer iEtelServer;
+        RMobilePhone iPhone;
+        CDRMNitzObserver* iObserver;
+#endif        
+
+        // GPS watcher component, updates DRM time from GPS if available
+        CGPSWatcher* iGpsWatcher;
+    };
+#endif      // DRMCLOCK_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/breakdeps/DRMEngine/DRMRightsServer.cpp	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,1544 @@
+/*
+* Copyright (c) 2003 - 2007 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:  DRM3 Engine manages all DRM related database operations.
+*
+*/
+
+
+// INCLUDE FILES
+#include <e32std.h>
+#include <e32test.h>
+#include <etelmm.h>
+#include <DRMTypes.h>
+#include <starterclient.h>
+#include <featmgr.h>
+
+#ifdef RD_MULTIPLE_DRIVE
+#include <driveinfo.h>
+#endif
+
+#include "DRMRightsServer.h"
+#include "drmrightsdb.h"
+#include "DRMDbSession.h"
+#include "DRMEngineClientServer.h"
+#include "drmlog.h"
+#include "DRMNotifier.h"
+#include "DrmKeyStorage.h"
+#include "DRMNotifierServer.h"
+#include "RoapStorageServer.h"
+#include "drmnotifierclientserver.h"
+#include "drmroapclientserver.h"
+#include "DRMXOma.h"
+#include "DRMBackupObserver.h"
+#include "DRMBackup.h"
+#include "flogger.h"
+#include "DrmRightsParser.h"
+#include "DRMRights.h"
+#include "DRMHelperCommon.h"
+
+#include  "wmdrmclientwrapper.h"
+
+
+
+#ifdef __DRM_CLOCK
+#include "DRMClockServer.h"
+#include "drmclockclientserver.h"
+#endif
+
+#include <utf.h>
+#include <DRMIndividualConstraintExtension.h>
+
+/*
+_LIT( KLogDir, "drm");
+_LIT( KLogName, "backup.log");
+*/
+
+// EXTERNAL DATA STRUCTURES
+// EXTERNAL FUNCTION PROTOTYPES
+// CONSTANTS
+LOCAL_C const TUint KMaxHeapsize = 0x7A120;
+
+_LIT8( KImsiId,"IMSI:");
+
+// MACROS
+#ifdef _DRM_TESTING
+_LIT( KDateTimeFormat, "%F%Y%M%D%H%T%S%C" );
+#endif
+
+// LOCAL CONSTANTS AND MACROS
+const TUint8 KMaxStartTries = 30;
+const TInt KWaitingTime = 2000000; // 2 sec
+_LIT( KRightsServerThread, "RightsServer" );
+
+#ifdef RD_MULTIPLE_DRIVE
+
+_LIT( KDbTempPath, "%c:\\system\\temp\\" );
+_LIT( KIndividualConstraintExtensionDll, "%c:\\sys\\bin\\DRMIndividualConstraintExtension.dll" );
+_LIT( KRightsDir, "%c:\\private\\101F51F2\\rdb\\" );
+_LIT( KTimedReplayCacheFile, "%c:\\private\\101F51F2\\timererc.dat" );
+_LIT( KPlainReplayCacheFile, "%c:\\private\\101F51F2\\plainrc.dat" );
+#ifdef RD_DRM_METERING
+_LIT( KMeteringDataBaseFile, "%c:\\private\\101F51F2\\meterdb.dat" );
+#endif
+
+#define USE_RO_IMPORT
+
+#ifdef USE_RO_IMPORT
+_LIT( KInternalImportDir, "%c:\\private\\101F51F2\\import\\" );
+_LIT( KUserDiskImportDir, "%c:\\import\\" ); // usually embedded MMC
+_LIT( KUserRemovableDiskImportDir, "%c:\\import\\" ); // usually external MMC
+_LIT( KDrSuffix, ".dr" );
+#endif
+
+#else
+
+_LIT( KRightsDir, "c:\\private\\101F51F2\\rdb\\" );
+_LIT( KTimedReplayCacheFile, "c:\\private\\101F51F2\\timererc.dat" );
+_LIT( KPlainReplayCacheFile, "c:\\private\\101F51F2\\plainrc.dat" );
+#ifdef RD_DRM_METERING
+_LIT( KMeteringDataBaseFile, "c:\\private\\101F51F2\\meterdb.dat" );
+#endif
+
+#define USE_RO_IMPORT
+
+#ifdef USE_RO_IMPORT
+_LIT( KInternalImportDir, "c:\\private\\101F51F2\\import\\" );
+_LIT( KUserDiskImportDir, "e:\\import\\" );
+_LIT( KDrSuffix, ".dr" );
+#endif
+
+#endif
+
+_LIT(KWmDrmClientWrapperName, "wmdrmclientwrapper.dll");
+
+// MODULE DATA STRUCTURES
+
+NONSHARABLE_STRUCT( TUnloadModule )
+    {
+    RTelServer* iServer;
+    const TDesC* iName;
+    };
+
+// LOCAL FUNCTION PROTOTYPES
+
+LOCAL_C TInt Startup( void );
+LOCAL_C void SignalClient();
+LOCAL_C TInt StartDBServer( void );
+
+#if 1 //defined( __WINS__ )
+#else
+#define DRM_USE_SERIALNUMBER_URI
+#include <mmtsy_names.h>
+#endif
+
+
+#ifdef DRM_USE_SERIALNUMBER_URI
+LOCAL_C void DoUnloadPhoneModule( TAny* aAny );
+#endif
+
+// #define USE_RO_IMPORT
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+// -----------------------------------------------------------------------------
+// Function Startup().
+// This function starts the actual DRM Rights server after initializing
+// the cleanup stack and active scheduler.
+// Returns: TInt: Symbian OS error code.
+// -----------------------------------------------------------------------------
+//
+LOCAL_C TInt Startup( void )
+    {
+    TInt error = KErrNone;
+    CTrapCleanup* trap = CTrapCleanup::New();
+    CActiveScheduler* scheduler = new CActiveScheduler();
+
+    if ( trap && scheduler )
+        {
+        CActiveScheduler::Install( scheduler );
+
+        error = StartDBServer();
+        }
+    else
+        {
+        error = KErrNoMemory;
+        }
+
+    delete scheduler;
+    scheduler = NULL;
+
+    delete trap;
+    trap = NULL;
+
+    if ( error )
+        {
+        // Something went wrong. Release the client (if any).
+        SignalClient();
+
+        if ( error == KErrAlreadyExists )
+            {
+            error = KErrNone;
+            }
+        }
+
+    return error;
+    }
+
+// -----------------------------------------------------------------------------
+// Function SignalClient().
+// Signal the waiting client (one of them if any exists).
+// -----------------------------------------------------------------------------
+//
+void SignalClient( void )
+    {
+    RSemaphore semaphore;
+    if ( !semaphore.OpenGlobal( DRMEngine::KDRMSemaphore ) )
+        {
+        semaphore.Signal();
+        semaphore.Close();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// Function StartDBServer().
+// This function starts the actual server under TRAP harness and starts
+// waiting for connections. This function returns only if there has been
+// errors during server startup or the server is stopped for some reason.
+//
+// Returns: TInt: Symbian OS error code.
+// -----------------------------------------------------------------------------
+TInt StartDBServer( void )
+    {
+    TInt error = KErrNone;
+    CDRMRightsServer* server = NULL;
+    TUint8 count = 0;
+
+    do
+        {
+        DRMLOG2( _L( "RightsServer.exe: StartDBServer: %d" ), error );
+
+        ++count;
+
+        TRAP( error, ( server = CDRMRightsServer::NewL() ) );
+
+        if ( error )
+            {
+            User::After( TTimeIntervalMicroSeconds32(KWaitingTime) );
+            }
+
+        } while( error && ( count <= KMaxStartTries ) );
+
+    if( error )
+        {
+        DRMLOG2( _L( "RightsServer.exe: CDRMRightsServer::NewL failed: %d " ), error );
+        // Failed
+        return error;
+        }
+
+    // Release the semaphore if necessary.
+    SignalClient();
+
+    // Start waiting for connections
+    CActiveScheduler::Start();
+
+    // Dying...
+    // Delete CDRMRigntsServer
+
+    DRMLOG( _L( "RightsServer.exe: DB server dying..." ) );
+
+    delete server;
+
+    return KErrNone;
+    }
+
+#ifdef DRM_USE_SERIALNUMBER_URI
+// -----------------------------------------------------------------------------
+// Function DoUnloadPhoneModule
+// Unload phone module
+// -----------------------------------------------------------------------------
+//
+void DoUnloadPhoneModule( TAny* aAny )
+    {
+    __ASSERT_DEBUG( aAny, User::Invariant() );
+    TUnloadModule* module = ( TUnloadModule* ) aAny;
+    module->iServer->UnloadPhoneModule( *( module->iName ) );
+    }
+#endif
+
+#ifdef USE_RO_IMPORT
+// -----------------------------------------------------------------------------
+// PointerArrayResetDestroyAndClose
+// Template method used to push RPointerArrays to the cleanup stack. Takes
+// care of deleting all pointers in the array.
+// -----------------------------------------------------------------------------
+//
+template<class S>
+void PointerArrayResetDestroyAndClose(TAny* aPtr)
+    {
+    (reinterpret_cast<RPointerArray<S>*>(aPtr))->ResetAndDestroy();
+    (reinterpret_cast<RPointerArray<S>*>(aPtr))->Close();
+    }
+#endif
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// CUsageUrl:
+
+//--------------------------------------------------------------------------
+// CUsageUrl::CUsageUrl
+// Storage class default constructor
+//--------------------------------------------------------------------------
+//
+CUsageUrl::CUsageUrl()
+    {
+    }
+
+//--------------------------------------------------------------------------
+// CUsageUrl::~CUsageUrl
+// Storage class destructor
+//--------------------------------------------------------------------------
+//
+CUsageUrl::~CUsageUrl()
+    {
+    delete iUrl;    
+    }
+
+// CDRMRightsServer:
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::NewLC
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CDRMRightsServer* CDRMRightsServer::NewL()
+    {
+    CDRMRightsServer* self = new( ELeave ) CDRMRightsServer();
+
+    CleanupStack::PushL( self );
+
+    self->ConstructL();
+
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// Destructor
+// -----------------------------------------------------------------------------
+CDRMRightsServer::~CDRMRightsServer()
+    {
+    DRMLOG( _L( "CDRMRightsServer::~" ) );
+
+    delete iIMEI; iIMEI = NULL;
+
+    delete iIMSI; iIMSI = NULL;
+
+    delete iDb; iDb = NULL;
+
+    iClock.Close();
+    iCache.Close();
+
+    iMeteringDb.Close();
+
+    iFs.Close();
+    iActiveCountConstraints.ResetAndDestroy();
+    iActiveCountConstraints.Close();
+
+    delete iBackupObserver;
+    delete iBackupHandler;
+    delete iActiveBackupClient;
+    delete iDbWatcher;
+
+#if 0
+    // Close and delete the shared data client
+    if( iSharedDataClient )
+        {
+        iSharedDataClient->Close();
+        delete iSharedDataClient;
+        iSharedDataClient = NULL;
+        }
+#endif
+
+    if( iNotifier )
+        {
+        delete iNotifier; iNotifier = NULL;
+        }
+
+    iActiveUrls.ResetAndDestroy();
+
+    //An empty semaphore
+    RSemaphore semaphore;
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::GetSecureTime
+// Fetch the time from (secure) source.
+// -----------------------------------------------------------------------------
+//
+TBool CDRMRightsServer::GetSecureTime( TTime& aTime ) const
+    {
+    DRMClock::ESecurityLevel secLevel = DRMClock::KInsecure;
+
+    TInt timezone( 0 );
+
+    iClock.GetSecureTime( aTime, timezone, secLevel );
+
+    if( secLevel == DRMClock::KSecure )
+        {
+        DRMLOG( _L( "CDRMRightsServer::GetSecureTime: Time is secure\r\n" ) );
+        return ETrue;
+        }
+
+    DRMLOG( _L( "CDRMRightsServer::GetSecureTime: Time is not secure\r\n" ) );
+
+    return EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::Notifier
+// Return a handle to DRM Notifier.
+// -----------------------------------------------------------------------------
+//
+CDRMNotifier& CDRMRightsServer::Notifier()
+    {
+    return *iNotifier;
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::Notifier
+// Return a handle to DRM Notifier.
+// -----------------------------------------------------------------------------
+//
+CDRMRightsDB& CDRMRightsServer::Database()
+    {
+    return *iDb;
+    }
+
+RFs& CDRMRightsServer::FileServerSession()
+    {
+    return iFs;
+    }
+
+
+RDRMReplayCache& CDRMRightsServer::ReplayCache()
+    {
+    return iCache;
+    }
+
+
+RDrmMeteringDb& CDRMRightsServer::MeteringDatabase()
+    {
+    return iMeteringDb;
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::HandleNotifyL
+// Forward the event to the database.
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::HandleNotifyL(const TUid /*aUid*/,
+                                     const TDesC& /*aKey*/,
+                                     const TDesC& /*aValue*/)
+    {
+    /* XXX Backup via Publish/Subscribe
+    __ASSERT_DEBUG( iDb, User::Invariant() );
+    TInt value = -1;
+    TLex16 parser( aValue );
+
+    if ( aUid == KSDUidSystem )
+        {
+        // Check if it's a backup / restore status event
+        if( !aKey.Compare( KBackupRestoreStatus ) )
+            {
+            User::LeaveIfError( parser.Val( value ) );
+            if( value == 3 ) // Complete
+                {
+                iDb->MergeDBL();
+                }
+            }
+        // Check if it's a drm backup restore status event
+        else if ( aUid == KSDUidSystem )
+            {
+            if( !aKey.Compare( KDRMBackupRestoreStatus ) )
+                {
+                User::LeaveIfError( parser.Val( value ) );
+
+                if( value == 1 ) // PrepareForBackup
+                    {
+                    TRAPD( error, iDb->BackupDBL( KNullDesC,
+                                                  KNullDesC8 ) );
+                    // Notify that it's done
+                    User::LeaveIfError( iSharedDataClient->AssignToTemporaryFile(
+                                        KSDUidSystem ) );
+                    User::LeaveIfError( iSharedDataClient->SetInt(
+                                        KDRMBackupRestoreStatus, 0 ) );
+                    iSharedDataClient->Flush();
+                    }
+                }
+            }
+        }
+    */
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::RunErrorL
+// From CActive. Complete the request and restart the scheduler.
+// -----------------------------------------------------------------------------
+//
+TInt CDRMRightsServer::RunError( TInt aError )
+    {
+    DRMLOG2( _L( "CDRMRightsServer::RunError: %d" ), aError );
+
+    // Inform the client.
+    if ( !Message().IsNull() )
+        {
+        Message().Complete( aError );
+        }
+
+    // Restart the scheduler.
+    ReStart();
+
+    // Error handled.
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::NewSessionL
+// Called when a client requires a new instance.
+// -----------------------------------------------------------------------------
+CSession2* CDRMRightsServer::NewSessionL( const TVersion& aVersion,
+                                          const RMessage2& /*aMessage*/ ) const
+    {
+    DRMLOG( _L( "CDRMRightsServer::NewSessionL" ) );
+
+    if ( ! User::QueryVersionSupported( TVersion( DRMEngine::KServerMajorVersion,
+        DRMEngine::KServerMinorVersion,
+        DRMEngine::KServerBuildVersion ),
+        aVersion ) )
+        {
+        // Sorry, no can do.
+        User::Leave( KErrNotSupported );
+        }
+
+    DRMLOG( _L( "CDRMRightsServer::NewSessionL: Creating a new session" ) );
+
+    return CDRMDbSession::NewL();
+    }
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::CDRMRightsServer
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CDRMRightsServer::CDRMRightsServer() :
+    CServer2( EPriorityStandard ),
+    iIMEI( NULL ),
+    iArmed( EFalse ),
+    iIMSI( NULL ),
+    iGetImsi( ETrue )
+    {
+    // Nothing
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::ConstructL()
+    {
+    DRMLOG( _L( "CDRMRightsServer::ConstructL" ) );
+
+    TDRMKey key;
+    RSemaphore semaphore;
+    RProcess currentprocess;
+
+    // Ignore errors
+    User::RenameThread( KRightsServerThread );
+    User::LeaveIfError( iFs.Connect() );
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    // Ignore errors
+    iFs.MkDirAll( KDRMDbTempPath );
+
+#else //RD_MULTIPLE_DRIVE
+
+    TFileName tempPath;
+    TFileName tempPath2;
+    TFileName tempRemovablePath;
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+    TChar driveLetterRemovable;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    tempPath.Format( KDbTempPath, (TUint)driveLetter );
+
+    // Ignore errors
+    iFs.MkDirAll( tempPath );
+
+#endif
+
+    DRMLOG( _L( "CDRMRightsServer::ConstructL: SharedDataClient" ) );
+
+    // Create and instance of the shared data client
+    // iSharedDataClient = new (ELeave) RSharedDataClient(this);
+
+    // Connecting to the shared data server
+    // User::LeaveIfError(iSharedDataClient->Connect());
+
+    /* XXX Backup via Publish/Subscribe
+    User::LeaveIfError(iSharedDataClient->NotifyChange(
+        KSDUidSystem, &KBackupRestoreStatus ) );
+    User::LeaveIfError(iSharedDataClient->NotifyChange(
+        KSDUidSystem, &KDRMBackupRestoreStatus) );
+    */
+
+
+    GetDbKeyL( key );
+
+
+    DRMLOG( _L( "CDRMRightsServer::ConstructL: database" ) );
+
+    GetIMEIL();
+
+    // Create the imsi pointer array:
+    iIMSI = CDRMPointerArray<HBufC8>::NewL();
+    iIMSI->SetAutoCleanup(ETrue);
+
+    GetIMSIL();
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    iDb = CDRMRightsDB::NewL( iFs, KRightsDir, key, *iIMEI, const_cast<CDRMRightsServer*>(this) );
+
+#else //RD_MULTIPLE_DRIVE
+
+    tempPath.Format( KRightsDir, (TUint)driveLetter );
+
+    iDb = CDRMRightsDB::NewL( iFs, tempPath, key, *iIMEI, const_cast<CDRMRightsServer*>(this) );
+
+#endif
+
+    key.FillZ();
+
+    DRMLOG( _L( "CDRMRightsServer::ConstructL: DB started." ) );
+
+    DRMLOG( _L( "CDRMRightsServer::ConstructL: Starting Notifier ." ) );
+
+    User::LeaveIfError( semaphore.CreateGlobal( KDRMEngCommonSemaphore, 0 ) );
+    CleanupClosePushL( semaphore );
+
+    StartThreadL( DRMNotifier::KServerName, StartupNotifier, semaphore );
+    DRMLOG( _L( "CDRMRightsServer::ConstructL: Notifier thread created." ) );
+
+    StartThreadL( Roap::KServerName, StartupRoapStorage, semaphore );
+    DRMLOG( _L( "CDRMRightsServer::ConstructL: ROAP thread created." ) );
+
+#ifdef __DRM_CLOCK
+    StartThreadL( DRMClock::KServerName, StartupClock, semaphore );
+    DRMLOG( _L( "CDRMRightsServer::ConstructL: clock thread created." ) );
+#endif
+
+    CleanupStack::PopAndDestroy(); // semaphore
+
+    iNotifier = CDRMNotifier::NewL();
+
+    iCache.Set( iFs );
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    iCache.InitL( KTimedReplayCacheFile, KPlainReplayCacheFile );
+
+#ifdef RD_DRM_METERING
+    iMeteringDb.Set( iFs );
+    iMeteringDb.InitL( KMeteringDataBaseFile );
+#endif
+
+#else //RD_MULTIPLE_DRIVE
+
+    tempPath.Format( KTimedReplayCacheFile, (TUint)driveLetter );
+    tempPath2.Format( KPlainReplayCacheFile, (TUint)driveLetter );
+
+    iCache.InitL( tempPath, tempPath2 );
+
+#ifdef RD_DRM_METERING
+
+    tempPath.Format( KMeteringDataBaseFile, (TUint)driveLetter );
+
+    iMeteringDb.Set( iFs );
+    iMeteringDb.InitL( tempPath );
+
+#endif
+
+#endif
+
+    User::LeaveIfError( iClock.Connect() );
+
+    // xoma header list creation
+    iXOmaHeaders = new (ELeave) RPointerArray< CDRMXOma >();
+
+    // p/s
+    iBackupObserver = CDRMBackupObserver::NewL( *(const_cast<CDRMRightsServer*>(this)));
+    iBackupObserver->Start();
+
+#ifdef USE_RO_IMPORT
+    // Import any OMA DRM 1.0 RO in the import directory, ignore all errors (except
+    // when checking the default removable mass storage)
+    TInt r = KErrNone;
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    TRAP( r, ImportRightsObjectsL( KInternalImportDir ) );
+    TRAP( r, ImportRightsObjectsL( KUserDiskImportDir ) );
+
+#else //RD_MULTIPLE_DRIVE
+
+    tempPath.Format( KInternalImportDir, (TUint)driveLetter );
+
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    // Default mass storage is usually eMMC
+    tempPath2.Format( KUserDiskImportDir, (TUint)driveLetter );
+
+    // Find out if a removable mass storage also exists
+    r = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetterRemovable );
+
+    // Import is not needed from the default removable mass storage drive if the drive
+    // letter of the default mass storage and the default removable mass storage are
+    // the same or the removable mass storage is not supported
+    if ( ( driveLetter != driveLetterRemovable ) && ( r == KErrNone ) )
+        {
+        tempRemovablePath.Format( KUserRemovableDiskImportDir, (TUint)driveLetterRemovable );
+        TRAP( r, ImportRightsObjectsL( tempRemovablePath ) );
+        }
+
+    TRAP( r, ImportRightsObjectsL( tempPath ) );
+    TRAP( r, ImportRightsObjectsL( tempPath2 ) );
+
+#endif
+
+#endif
+
+    // Add the server to the scheduler.
+    StartL( DRMEngine::KServerName );
+
+    // Start watching our RDB
+    iDbWatcher = CDbWatcher::NewL( *this );
+    iDbWatcher->StartWatching();
+
+    // Start watching the helper server
+    iProcWatcher = CProcWatcher::NewL( *this, _L( "*DcfRepSrv*" ), _L( "DcfRepSrv" ) );
+    iProcWatcher->StartWatching();
+
+    // Ready to watch
+    iArmed = ETrue;
+
+    __UHEAP_MARK;
+    TRAP( r, FeatureManager::InitializeLibL() );
+    if( !r && FeatureManager::FeatureSupported( KFeatureIdWindowsMediaDrm ) )
+        {
+        static const TInt KGateOrdinal = 1;
+        RLibrary library;
+        r = library.Load( KWmDrmClientWrapperName );
+        if( !r )
+            {
+            CWmDrmClientWrapper* wrapper = NULL;
+            TLibraryFunction function = library.Lookup( KGateOrdinal );
+            if( function != NULL )
+                {
+                __UHEAP_MARK;
+                TRAP( r, wrapper = reinterpret_cast<CWmDrmClientWrapper*>( function() ) );
+                if( !r )
+                    {
+                    r = wrapper->Connect();
+                    }
+                delete wrapper;
+                __UHEAP_MARKEND;
+                }
+            }
+        library.Close();
+        }
+    FeatureManager::UnInitializeLib();
+    __UHEAP_MARKEND;
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::StartThreadL
+// Start a new thread.
+// -----------------------------------------------------------------------------
+void CDRMRightsServer::StartThreadL( const TDesC& aThreadName,
+                                     TThreadFunction aFunc,
+                                     RSemaphore& aSemaphore )
+    {
+    RThread thread;
+
+    User::LeaveIfError(
+          thread.Create( aThreadName,
+                         aFunc,
+                         KDefaultStackSize,
+                         KMinHeapSize,
+                         KMaxHeapsize,
+                         NULL ) );
+
+    thread.Resume();
+
+    aSemaphore.Wait();
+
+    thread.Close();
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::GetDbKeyL
+// Fetches the rights database key from Wallet or uses a constant
+// key if Wallet is not supported.
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::GetDbKeyL( TDRMKey& aKey  )
+    {
+    TInt r = KErrNone;
+
+    DRMLOG( _L( "CDRMRightsServer::GetDbKey" ) );
+    MDrmKeyStorage* storage = DrmKeyStorageNewL();
+    TRAP( r, storage->GetDeviceSpecificKeyL( aKey ) );
+    delete storage;
+    DRMLOG2( _L( "CDRMRightsServer::GetDbKey err=%d" ),r );
+    User::LeaveIfError( r );
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::GenerateKeyL
+// Generates the actual key based on the given key seed.
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::GenerateKeyL( HBufC*& aKeySeed,
+                                    TDRMKey& aKey ) const
+    {
+    __ASSERT_ALWAYS( aKeySeed->Size() >= KDRMKeyLength,
+        User::Leave( KErrUnderflow ) );
+
+    TPtrC8 key( reinterpret_cast< TUint8* >( const_cast< TUint16* >( aKeySeed->Ptr() ) ),
+                KDRMKeyLength );
+
+    aKey = key;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::XOmaHeaders()
+// return the pointer of the X-Oma headers list
+// -----------------------------------------------------------------------------
+//
+RPointerArray< CDRMXOma >& CDRMRightsServer::XOmaHeaders( void )
+    {
+    return *iXOmaHeaders;
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::GetIMEIL
+// -----------------------------------------------------------------------------
+//
+const TDesC& CDRMRightsServer::GetIMEIL()
+    {
+    if ( iIMEI )
+        {
+        return *iIMEI;
+        }
+
+#ifdef DRM_USE_SERIALNUMBER_URI
+    TInt error( KErrNone );
+    TInt count( 0 );
+    TInt count2( 0 );
+    TUint32 caps( 0 );
+    TBool found (EFalse);
+
+    RTelServer etelServer;
+    RMobilePhone phone;
+
+    TUint KMaxImeiTries = 5;
+
+    for ( TUint8 i = 0; i < KMaxImeiTries; ++i )
+        {
+        error = etelServer.Connect();
+        if ( error )
+            {
+            User::After( TTimeIntervalMicroSeconds32( KWaitingTime ) );
+            }
+        else
+            {
+            break;
+            }
+        }
+
+    User::LeaveIfError( error );
+    CleanupClosePushL( etelServer );
+
+    User::LeaveIfError( etelServer.LoadPhoneModule( KMmTsyModuleName ) );
+
+    TUnloadModule unload;
+    unload.iServer = &etelServer;
+    unload.iName = &KMmTsyModuleName;
+
+    TCleanupItem item( DoUnloadPhoneModule, &unload );
+    CleanupStack::PushL( item );
+    User::LeaveIfError( etelServer.EnumeratePhones( count ) );
+
+    for ( count2 = 0; count2 < count && !found; ++count2 )
+        {
+        RTelServer::TPhoneInfo phoneInfo;
+        User::LeaveIfError( etelServer.GetTsyName( count2, phoneInfo.iName ) );
+
+        if ( phoneInfo.iName.CompareF(KMmTsyModuleName()) == 0 )
+           {
+            User::LeaveIfError( etelServer.GetPhoneInfo( count2, phoneInfo ) );
+            User::LeaveIfError( phone.Open( etelServer, phoneInfo.iName ) );
+            CleanupClosePushL( phone );
+            found = ETrue;
+            }
+        }
+
+    if ( !found )
+        {
+        // Not found.
+        User::Leave( KErrNotFound );
+        }
+
+    User::LeaveIfError( phone.GetIdentityCaps( caps ) );
+    if ( caps & RMobilePhone::KCapsGetSerialNumber )
+        {
+        RMobilePhone::TMobilePhoneIdentityV1 id;
+        TRequestStatus status;
+
+        phone.GetPhoneId( status, id );
+
+        User::WaitForRequest( status );
+
+        User::LeaveIfError( status.Int() );
+
+        iIMEI = id.iSerialNumber.AllocL();
+
+        CleanupStack::PopAndDestroy( 3 ); // phone, item, etelServer
+
+        HBufC8* buf = HBufC8::NewL( iIMEI->Size() );
+        TPtr8 ptr( buf->Des() );
+        ptr.Copy( *iIMEI );
+
+        DRMLOG(_L("IMEI:"));
+        DRMLOGHEX(ptr);
+        delete buf;
+
+        return *iIMEI;
+        }
+
+    User::Leave( KErrNotFound );
+
+    // Never happens...
+    return *iIMEI;
+
+#else
+    _LIT( KDefaultSerialNumber, "123456789123456789" );
+    iIMEI = KDefaultSerialNumber().AllocL();
+
+    return *iIMEI;
+#endif
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::GetIMSIL
+// -----------------------------------------------------------------------------
+//
+const CDRMPointerArray<HBufC8>& CDRMRightsServer::GetIMSIL()
+    {
+
+    if ( !iGetImsi )
+        {
+        return *iIMSI;
+        }
+
+#if 0 // defined(__WINS__)
+    TInt error( KErrNone );
+    TInt count( 0 );
+    TInt count2( 0 );
+    TUint32 caps( 0 );
+    TBool found (EFalse);
+    HBufC8* imsi = NULL;
+    HBufC8* imsiNumber = NULL;
+
+    RTelServer etelServer;
+    RMobilePhone phone;
+
+    TUint KMaxImeiTries = 5;
+    for ( TUint8 i = 0; i < KMaxImeiTries; ++i )
+        {
+        error = etelServer.Connect();
+        if ( error )
+            {
+            User::After( TTimeIntervalMicroSeconds32( KWaitingTime ) );
+            }
+        else
+            {
+            break;
+            }
+        }
+
+    User::LeaveIfError( error );
+    CleanupClosePushL( etelServer );
+    User::LeaveIfError( etelServer.LoadPhoneModule( KMmTsyModuleName ) );
+
+    TUnloadModule unload;
+    unload.iServer = &etelServer;
+    unload.iName = &KMmTsyModuleName;
+
+    TCleanupItem item( DoUnloadPhoneModule, &unload );
+    CleanupStack::PushL( item );
+
+    User::LeaveIfError( etelServer.EnumeratePhones( count ) );
+
+    for ( count2 = 0; count2 < count && !found; ++count2 )
+        {
+        RTelServer::TPhoneInfo phoneInfo;
+        User::LeaveIfError( etelServer.GetTsyName( count2, phoneInfo.iName ) );
+
+        if ( phoneInfo.iName.CompareF(KMmTsyModuleName()) == 0 )
+           {
+            User::LeaveIfError( etelServer.GetPhoneInfo( count2, phoneInfo ) );
+            User::LeaveIfError( phone.Open( etelServer, phoneInfo.iName ) );
+            CleanupClosePushL( phone );
+            found = ETrue;
+            }
+        }
+
+    if ( !found )
+        {
+        // Not found.
+        User::Leave( KErrNotFound );
+        }
+
+
+    User::LeaveIfError( phone.GetIdentityCaps( caps ) );
+
+    if( caps & RMobilePhone::KCapsGetSubscriberId )
+        {
+        RMobilePhone::TMobilePhoneSubscriberId imsiId;
+        TRequestStatus status;
+
+        phone.GetSubscriberId( status, imsiId );
+
+        User::WaitForRequest( status );
+
+        if( ! status.Int() )
+            {
+            imsi = HBufC8::NewMaxLC( imsiId.Length() + KImsiId().Size() );
+            TPtr8 imsiPtr(const_cast<TUint8*>(imsi->Ptr()), 0, imsi->Size());
+
+            imsiNumber = CnvUtfConverter::ConvertFromUnicodeToUtf8L( imsiId );
+            CleanupStack::PushL( imsiNumber );
+
+            imsiPtr.Copy( KImsiId() );
+            imsiPtr.Append( *imsiNumber );
+            CleanupStack::PopAndDestroy(); // imsiNumber
+            }
+        else
+            {
+            imsi = NULL;
+            }
+        }
+    else
+        {
+        imsi = NULL;
+        }
+
+
+    // Clean up whatever is in there
+    iIMSI->ResetAndDestroy();
+
+    if( imsi )
+        {
+        // if we got it we wont try again
+        iIMSI->AppendL( imsi );
+        CleanupStack::Pop(); // imsi
+        iGetImsi = EFalse;
+        }
+
+    // Check for possible extra IMSI individual constraints
+    AppendExtendedIndividualConstraintsL(&phone);
+
+    CleanupStack::PopAndDestroy(); // phone
+    CleanupStack::PopAndDestroy(); // cleanup item
+    CleanupStack::PopAndDestroy(); // etel server
+
+    return *iIMSI;
+
+#else
+    HBufC8* imsi = NULL;
+
+    if( iGetImsi )
+        {
+        iGetImsi = EFalse;
+        _LIT8( KDefaultSerialNumber, "IMSI:123456789123456789" );
+        imsi = KDefaultSerialNumber().AllocLC();
+        iIMSI->AppendL( imsi );
+        CleanupStack::Pop();
+        AppendExtendedIndividualConstraintsL();
+        }
+
+
+    return *iIMSI;
+#endif // __WINS__
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::AppendExtendedIndividualConstraintsL
+// If the extension DLL exists it is loaded and used to obtain additional
+// valid individual constraints
+// -----------------------------------------------------------------------------
+void CDRMRightsServer::AppendExtendedIndividualConstraintsL(RMobilePhone* aMobilePhone)
+    {
+    // Load the externsion DLL
+    RLibrary lib;
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    if (lib.LoadRomLibrary(KDRMIndividualConstraintExtensionDll,KNullDesC)==KErrNone)
+
+#else //RD_MULTIPLE_DRIVE
+
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRom, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    TFileName individualConstraindExtensionDll;
+    individualConstraindExtensionDll.Format(
+                        KIndividualConstraintExtensionDll, (TUint)driveLetter );
+
+    if ( lib.LoadRomLibrary( individualConstraindExtensionDll, KNullDesC ) == KErrNone )
+
+#endif
+
+        {
+        CleanupClosePushL(lib);
+
+        // Get first exported ordinal - factory method returning
+        // MDRMIndividualConstraintExtension*
+        TLibraryFunction factory = lib.Lookup(1);
+
+        if (factory)
+            {
+            // Instantiate object
+            MDRMIndividualConstraintExtension* extendedConstraints =
+                reinterpret_cast<MDRMIndividualConstraintExtension*>(factory());
+
+            if (extendedConstraints)
+                {
+                CleanupStack::PushL(TCleanupItem(Release,extendedConstraints));
+                extendedConstraints->AppendConstraintsL(*iIMSI,aMobilePhone);
+                CleanupStack::PopAndDestroy(extendedConstraints); //calls Release
+                }
+            }
+
+        // unload library
+        CleanupStack::PopAndDestroy(&lib); //close
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::Release
+// -----------------------------------------------------------------------------
+void CDRMRightsServer::Release(TAny* aIndividualConstraintExtension)
+    {
+    MDRMIndividualConstraintExtension* extendedConstraints =
+        reinterpret_cast<MDRMIndividualConstraintExtension*>(aIndividualConstraintExtension);
+    extendedConstraints->Release(); //free resources
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::HandleBackupEventL
+// Handle Backup Events
+// -----------------------------------------------------------------------------
+//
+
+void CDRMRightsServer::HandleBackupEventL( TInt aBackupEvent )
+    {
+    //RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::BackupCalled\n\r"));
+
+    //conn::TBURPartType eventType;
+    //conn::TBackupIncType incType;
+    TDriveList aDriveList;
+
+    //RFileLogger::WriteFormat(KLogDir, KLogName, EFileLoggingModeAppend, _L8("backupevent: %d"), aBackupEvent);
+
+    // If there is no operation going or state is normal
+    // Delete the client and handler
+
+    if( aBackupEvent == conn::EBURUnset ||
+        aBackupEvent & conn::EBURNormal )
+        {
+        /*
+        if( aBackupEvent == conn::EBURUnset )
+            {
+                        RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::Unset\n\r"));
+            }
+        else
+            {
+            RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::Normal\n\r"));
+            }
+        */
+        if( iActiveBackupClient )
+            {
+            delete iActiveBackupClient;
+            iActiveBackupClient = NULL;
+            }
+
+        if( iBackupHandler )
+            {
+            delete iBackupHandler;
+            iBackupHandler = NULL;
+            }
+        }
+    else if( aBackupEvent & conn::EBURBackupFull ||
+             aBackupEvent & conn::EBURRestoreFull )
+        {
+        //RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::Full\n\r"));
+        // ab handler
+        iBackupHandler = CDRMBackup::NewL( iDb, iFs );
+
+        // ab client
+        iActiveBackupClient = conn::CActiveBackupClient::NewL( iBackupHandler );
+
+        // Confirm that we have done everything if there even was anything to do
+        //RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::Confirm F \n\r"));
+        iActiveBackupClient->ConfirmReadyForBURL( KErrNone );
+        }
+    else if( aBackupEvent & conn::EBURBackupPartial ||
+             aBackupEvent & conn::EBURRestorePartial )
+        {
+        //RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::Partial\n\r"));
+        // ab handler
+        iBackupHandler = CDRMBackup::NewL( iDb, iFs );
+
+        // ab client
+        iActiveBackupClient = conn::CActiveBackupClient::NewL( iBackupHandler );
+
+        if( !iActiveBackupClient->DoesPartialBURAffectMeL() )
+            {
+            //RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::NotMe\n\r"));
+            delete iActiveBackupClient;
+            iActiveBackupClient = NULL;
+
+            delete iBackupHandler;
+            iBackupHandler = NULL;
+            }
+        else
+            {
+            //RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::Confirm P \n\r"));
+            // Confirm that we have done everything if there even was anything to do
+            iActiveBackupClient->ConfirmReadyForBURL( KErrNone );
+            //RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::Confirm P Done \n\r"));
+            }
+        }
+    else
+        {
+        //RFileLogger::Write(KLogDir, KLogName, EFileLoggingModeAppend, _L8("Handle::Argument\n\r"));
+        // Unknown operation
+        User::Leave(KErrArgument);
+        }
+    };
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::WatchedObjectChangedL
+// Handle Backup Events
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::WatchedObjectChangedL( const TDesC& aObject )
+    {
+    DRMLOG( _L( "CDRMRightsServer::WatchedObjectChangedL ->" ) );
+    DRMLOG( aObject );
+
+    if ( aObject.Left( KDirIdentifier().Length() ) == KDirIdentifier &&
+         !iDb->Updating() && iArmed )
+        {
+#ifdef _DEBUG
+        DRMLOG( _L( "RDB modified by outside party (DEBUG mode, not deleting the DB)" ) );
+#else
+        DRMLOG( _L( "RDB modified by outside party, deleting the DB" ) );
+        iDb->MarkAsCorrupted();
+        RStarterSession starter;
+        User::LeaveIfError( starter.Connect() );
+        starter.Reset( RStarterSession::EDRMReset );
+        starter.Close();
+#endif
+        }
+    else if ( aObject.Left( KProcIdentifier().Length() ) == KProcIdentifier && iArmed )
+        {
+#ifdef _DEBUG
+        DRMLOG( _L( "Peer process killed (DEBUG mode, not rebooting)" ) );
+#else
+        DRMLOG( _L( "Peer process killed, rebooting" ) );
+        RStarterSession starter;
+        User::LeaveIfError( starter.Connect() );
+        starter.Reset( RStarterSession::EDRMReset );
+        starter.Close();
+#endif
+        }
+
+    DRMLOG( _L( "CDRMRightsServer::WatchedObjectChangedL <-" ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::HasActiveCountConstraint
+// Check ID for active count constraint
+// -----------------------------------------------------------------------------
+//
+TBool CDRMRightsServer::HasActiveCountConstraint( const TDesC8& aContentId )
+    {
+    TInt i;
+    TBool r = EFalse;
+
+    for ( i = 0; r == EFalse && i < iActiveCountConstraints.Count(); i++ )
+        {
+        if ( iActiveCountConstraints[i]->CompareF( aContentId ) == 0 )
+            {
+            r = ETrue;
+            }
+        }
+    return r;
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::RemoveActiveCountConstraint
+// Remove ID from count constraint list
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::RemoveActiveCountConstraint( const TDesC8& aContentId )
+    {
+    TInt i;
+    TInt r = KErrNotFound;
+    HBufC8* id = NULL;
+
+    for ( i = 0; r == KErrNotFound && i < iActiveCountConstraints.Count(); i++ )
+        {
+        if ( iActiveCountConstraints[i]->CompareF( aContentId ) == 0 )
+            {
+            r = i;
+            }
+        }
+    if ( r != KErrNotFound )
+        {
+        id = iActiveCountConstraints[r];
+        iActiveCountConstraints.Remove( r );
+        delete id;
+        id = NULL;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::AddActiveCountConstraint
+// Add ID to count constraint list
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::AddActiveCountConstraintL( const TDesC8& aContentId )
+    {
+    if ( !HasActiveCountConstraint( aContentId ) )
+        {
+        iActiveCountConstraints.AppendL( aContentId.AllocL() );
+        }
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::IsAccessingUrl
+// Add ID to count constraint list
+// -----------------------------------------------------------------------------
+//
+TInt CDRMRightsServer::IsAccessingUrl( const TDesC8& aContentId )
+    {
+    for( TInt i = 0; i < iActiveUrls.Count(); i++ )
+        {
+        if( !iActiveUrls[i]->iUrl->Compare( aContentId ) ) 
+            {
+            return i;
+            }    
+        }
+    return KErrNotFound;        
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::RemoveAccessingUrl
+// Add ID to count constraint list
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::RemoveAccessingUrl( const TDesC8& aContentId )
+    {
+    CUsageUrl* usage = NULL;    
+    TInt index = KErrNotFound;
+    
+    index = IsAccessingUrl( aContentId );
+    
+    if( index != KErrNotFound )
+        {
+        // If there are negative or 0 values in the list for some reason
+        // remove them    
+        if( iActiveUrls[index]->iRefCounter <= 1 )
+            {
+            usage = iActiveUrls[index];    
+            iActiveUrls.Remove( index );    
+            delete usage;
+            }
+        else
+            {
+            iActiveUrls[index]->iRefCounter--;
+            }           
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::AddAccessingUrlL
+// Add ID to count constraint list
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::AddAccessingUrlL( const TDesC8& aContentId )
+    {
+    CUsageUrl* usage = NULL;
+    TInt index = KErrNotFound;
+    
+    index = IsAccessingUrl( aContentId );
+    
+    if( index == KErrNotFound )
+        {
+        usage = new ( ELeave ) CUsageUrl();
+        CleanupStack::PushL( usage );
+        usage->iUrl = aContentId.AllocL();
+        usage->iRefCounter = 1;
+        iActiveUrls.AppendL( usage );
+        CleanupStack::Pop( usage );
+        }
+    else
+        {
+        usage = iActiveUrls[index];
+        usage->iRefCounter++;    
+        }           
+    }
+
+
+
+
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::StopWatchingL
+// Delete the watchers
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::StopWatchingL()
+    {
+    iArmed = EFalse;
+    }
+
+#ifdef USE_RO_IMPORT
+// -----------------------------------------------------------------------------
+// CDRMRightsServer::ImportRightsObjectsL
+// Open the import directory and add all ROs that can be found there. ROs file
+// names must end with .dr. Only OMA DRM 1.0 ROs in XML format are supported for
+// security reasons
+// -----------------------------------------------------------------------------
+//
+void CDRMRightsServer::ImportRightsObjectsL( const TDesC& aImportDir )
+    {
+    CDrmRightsParser* p;
+    HBufC8* d = NULL;
+    HBufC8* k = NULL;
+    RFs fs;
+    RFile file;
+    TInt size;
+    RPointerArray<CDRMRights> rights;
+    CDir* dir;
+    TFileName name;
+    TPtr8 ptr( NULL, 0 );
+    TInt i;
+    TInt r = KErrNone;
+    TCleanupItem listCleanup(PointerArrayResetDestroyAndClose<CDRMRights>,
+        &rights);
+    TDRMUniqueID id;
+    TTime time;
+
+    DRMLOG( _L( "CDRMRightsServer::ImportRightsObjectsL" ) );
+    DRMLOG( aImportDir );
+    __UHEAP_MARK;
+    GetSecureTime( time );
+    p = CDrmRightsParser::NewL();
+    CleanupStack::PushL( p );
+    User::LeaveIfError( iFs.GetDir( aImportDir, KEntryAttNormal,
+        ESortNone, dir ) );
+    CleanupStack::PushL( dir );
+    for (i = 0; i < dir->Count(); i++)
+        {
+        name.Copy( aImportDir );
+        name.Append( (*dir)[i].iName );
+        if ( ( name.Length() > 3 && name.Right(3).CompareF( KDrSuffix ) == 0 ) )
+            {
+            User::LeaveIfError( file.Open( iFs, name, EFileRead ) );
+            CleanupClosePushL( file );
+            User::LeaveIfError( file.Size( size ) );
+            d = HBufC8::NewLC( size );
+            ptr.Set( d->Des() );
+            User::LeaveIfError( file.Read( ptr ) );
+            p->ParseL( ptr, rights );
+            if ( rights.Count() > 0 )
+                {
+                k = NULL;
+                CleanupStack::PushL( listCleanup );
+                CDRMPermission& permission = rights[0]->GetPermission();
+                CDRMAsset& asset = rights[0]->GetAsset();
+
+                // Add RO only if no rights are available at all for this content
+                TRAP( r, k = iDb->GetDecryptionKeyL( *asset.iUid ) );
+                if (k == NULL )
+                    {
+                    iDb->AddDBEntryL( *asset.iUid, permission, asset.iKey, id );
+                    }
+                else
+                    {
+                    delete k;
+                    }
+                CleanupStack::PopAndDestroy(); // listCleanup
+                }
+            CleanupStack::PopAndDestroy( 2 ); // d, file
+            iFs.Delete( name );
+            }
+        }
+    CleanupStack::PopAndDestroy( 2 ); // dir, p
+    __UHEAP_MARKEND;
+    DRMLOG( _L( "CDRMRightsServer::ImportRightsObjectsL done" ) );
+    }
+#endif
+
+
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+
+TInt E32Main()
+    {
+    return Startup();
+    }
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/breakdeps/DRMEngine/DrmStdKeyStorage.cpp	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,1188 @@
+/*
+* Copyright (c) 2002-2010 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:  OMA DRM 2.0 Key Storage
+*
+*/
+
+
+// INCLUDE FILES
+#include <e32std.h>
+#include <asymmetric.h>
+#include <symmetric.h>
+#include <hash.h>
+#include <asn1dec.h>
+#include <x509cert.h>
+#include <etelmm.h>
+#include <mmtsy_names.h>
+#include <featmgr.h>
+
+#ifdef RD_MULTIPLE_DRIVE
+#include <driveinfo.h>
+#endif
+
+#include "DrmKeyStorage.h"
+#include "DrmStdKeyStorage.h"
+
+#ifdef _DEBUG
+#define LOGGING
+#endif
+
+#ifdef LOGGING
+_LIT(KLogDir, "DRM");
+_LIT(KLogName, "KeyStorage.log");
+#include "flogger.h"
+#define LOG(string) \
+    RFileLogger::Write(KLogDir, KLogName, \
+        EFileLoggingModeAppend, string);
+#define LOGHEX(buffer) \
+    RFileLogger::HexDump(KLogDir, KLogName, \
+        EFileLoggingModeAppend, _S(""), _S(""), \
+        buffer.Ptr(), buffer.Length());
+#else
+#define LOG(string)
+#define LOGHEX(buffer)
+#endif
+
+#pragma message("Compiling DRM Std KeyStorage..")
+
+
+// LOCAL CONSTANTS AND MACROS
+
+const TInt KKeyLength = 128;
+const TInt KWaitingTime = 2000000; // 2 sec
+
+#ifdef RD_MULTIPLE_DRIVE
+_LIT(KKeyStoragePath, "%c:\\private\\101F51F2\\PKI\\");
+_LIT(KRomKeyStoragePath, "%c:\\private\\101F51F2\\PKI\\");
+
+#else
+_LIT(KKeyStoragePath, "c:\\private\\101F51F2\\PKI\\");
+_LIT(KRomKeyStoragePath, "z:\\private\\101F51F2\\PKI\\");
+#endif
+
+_LIT(KDeviceKeyFileName, "DevicePrivateKey.der");
+_LIT(KDeviceCertFileName, "DeviceCert.der");
+_LIT(KSingingCertFmt, "SigningCert%02d.der");
+_LIT(KSingingCertPattern, "SigningCert*");
+_LIT8(KDefaultKey, "0000000000000000");
+
+#ifdef RD_MULTIPLE_DRIVE
+_LIT(KSerialNumberFile, "%c:\\private\\101F51F2\\rdbserial.dat");
+_LIT(KUdtCertFileName, "%c:\\private\\101F51F2\\PKI\\UdtCertificate.der");
+#else
+_LIT(KSerialNumberFile, "c:\\private\\101F51F2\\rdbserial.dat");
+_LIT(KUdtCertFileName, "z:\\private\\101F51F2\\PKI\\UdtCertificate.der");
+#endif
+
+_LIT(KCmla, "CMLA");
+_LIT(KPadding, "\x0");
+
+NONSHARABLE_STRUCT( TUnloadModule )
+    {
+    RTelServer* iServer;
+    const TDesC* iName;
+    };
+
+
+// ============================ LOCAL FUNCTIONS ================================
+LOCAL_C void DoUnloadPhoneModule( TAny* aAny );
+
+LOCAL_C void WriteFileL(RFs& aFs, const TDesC& aName, const TDesC8& aData)
+    {
+    RFile file;
+
+    User::LeaveIfError(file.Replace(aFs, aName, EFileWrite));
+    User::LeaveIfError(file.Write(aData));
+    file.Close();
+    }
+
+LOCAL_C void ReadFileL(RFs& aFs, const TDesC& aName, HBufC8*& aContent)
+    {
+    RFile file;
+    TInt size = 0;
+
+    User::LeaveIfError(file.Open(aFs, aName, EFileRead));
+    CleanupClosePushL(file);
+    User::LeaveIfError(file.Size(size));
+    aContent = HBufC8::NewLC(size);
+    TPtr8 ptr(aContent->Des());
+    User::LeaveIfError(file.Read(ptr, size));
+    CleanupStack::Pop(); //aContent
+    CleanupStack::PopAndDestroy(); // file
+    }
+
+HBufC8* I2OSPL(
+    RInteger& aInt, TInt& aKeySize )
+    {
+    HBufC8* integer = aInt.BufferLC();
+    if (integer->Length() < aKeySize)
+        {
+        HBufC8* r = HBufC8::NewLC(aKeySize);
+        TPtr8 ptr(r->Des());
+        for(TInt i = integer->Length(); i < aKeySize; i++)
+            {
+            ptr.Append(KPadding());
+            }
+        ptr.Append(*integer);
+        CleanupStack::Pop(r);
+        CleanupStack::PopAndDestroy(integer);
+        return r;
+        }
+    else
+        {
+        CleanupStack::Pop(integer);
+        return integer;
+        }
+    }
+
+RInteger OS2IPL(
+    const TDesC8& aOctetStream)
+    {
+    RInteger r;
+    TInt i;
+
+    r = RInteger::NewL(0);
+    for (i = 0; i < aOctetStream.Length(); i++)
+        {
+        r *= 256;
+        r += aOctetStream[i];
+        }
+    return r;
+    }
+
+void DoUnloadPhoneModule( TAny* aAny )
+    {
+    __ASSERT_DEBUG( aAny, User::Invariant() );
+#if 0
+    TUnloadModule* module = ( TUnloadModule* ) aAny;
+    module->iServer->UnloadPhoneModule( *( module->iName ) );
+#endif
+    }
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage* CDrmStdKeyStorage::NewL
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CDrmStdKeyStorage* CDrmStdKeyStorage::NewL(RLibrary aLibrary)
+    {
+    CDrmStdKeyStorage* self = new (ELeave) CDrmStdKeyStorage(aLibrary);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::CDrmStdKeyStorage
+//
+// -----------------------------------------------------------------------------
+//
+CDrmStdKeyStorage::CDrmStdKeyStorage(RLibrary aLibrary):
+    iFileMan(NULL),
+    iRootSelected(EFalse),
+    iKey(NULL),
+    iImei(NULL),
+    iLibrary(aLibrary)
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::ConstructL
+//
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::ConstructL()
+    {
+
+    LOG(_L("CDrmStdKeyStorage::ConstructL ->"));
+    User::LeaveIfError(iFs.Connect());
+    iFileMan = CFileMan::NewL(iFs);
+
+    FeatureManager::InitializeLibL();
+    
+#ifdef __DRM_OMA2 
+    if ( FeatureManager::FeatureSupported( KFeatureIdFfOmadrm2Support ) )
+        {
+        TRAP_IGNORE( SelectDefaultRootL() );
+        }
+#endif
+    
+    FeatureManager::UnInitializeLib();
+    
+    iDeviceSpecificKey.Copy(KDefaultKey);
+
+    LOG(_L("CDrmStdKeyStorage::ConstructL <-"));
+    }
+
+// -----------------------------------------------------------------------------
+// MDrmKeyStorage::~MDrmKeyStorage
+//
+// -----------------------------------------------------------------------------
+//
+
+MDrmKeyStorage::~MDrmKeyStorage()
+    {
+    }
+// -----------------------------------------------------------------------------
+// DrmStdKeyStorage::~CDrmStdKeyStorage
+//
+// -----------------------------------------------------------------------------
+//
+
+CDrmStdKeyStorage::~CDrmStdKeyStorage()
+    {
+    LOG(_L("CDrmStdKeyStorage::~CDrmStdKeyStorage ->"));
+    delete iFileMan;
+    delete iKey;
+    delete iImei; iImei = NULL;
+    iFs.Close();
+    //iLibrary.Close();
+    LOG(_L("CDrmStdKeyStorage::~CDrmStdKeyStorage <-"));
+    }
+
+// -----------------------------------------------------------------------------
+// DrmStdKeyStorage::ModulusSize
+//
+// -----------------------------------------------------------------------------
+//
+
+TInt CDrmStdKeyStorage::ModulusSize()
+    {
+    LOG(_L("CDrmStdKeyStorage::ModulusSize ->"));
+
+    if(iKey == NULL)
+        {
+        return KErrGeneral;
+        }
+    LOG(_L("CDrmStdKeyStorage::ModulusSize <-"));
+    return iKey->N().BitCount();
+    }
+
+// -----------------------------------------------------------------------------
+// DrmStdKeyStorage::SelectTrustedRootL
+//
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::SelectTrustedRootL(
+    const TDesC8& aRootKeyHash)
+    {
+    TFileName fileName;
+    TEntry entry;
+    TInt i;
+
+    LOG(_L("CDrmStdKeyStorage::SelectTrustedRootL ->"));
+    LOG(aRootKeyHash);
+    if (aRootKeyHash.Length() != 0)
+        {
+
+#ifndef RD_MULTIPLE_DRIVE
+
+        fileName.Copy(KKeyStoragePath);
+
+#else //RD_MULTIPLE_DRIVE
+
+        TFileName tempPath;
+        TInt driveNumber( -1 );
+        TChar driveLetter;
+        DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber );
+        iFs.DriveToChar( driveNumber, driveLetter );
+
+        tempPath.Format( KKeyStoragePath, (TUint)driveLetter );
+
+        fileName.Copy(tempPath);
+
+#endif
+
+        for (i = 0; i < SHA1_HASH; i++)
+            {
+            fileName.AppendNumFixedWidth(aRootKeyHash[i], EHex, 2);
+            }
+        fileName.Append('\\');
+        if (iFs.Entry(fileName, entry) != KErrNone)
+            {
+
+#ifndef RD_MULTIPLE_DRIVE
+
+            fileName.Copy(KRomKeyStoragePath);
+
+#else //RD_MULTIPLE_DRIVE
+
+            DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRom, driveNumber );
+            iFs.DriveToChar( driveNumber, driveLetter );
+
+            tempPath.Format( KRomKeyStoragePath, (TUint)driveLetter );
+
+            fileName.Copy(tempPath);
+
+#endif
+
+            for (i = 0; i < SHA1_HASH; i++)
+                {
+                fileName.AppendNumFixedWidth(aRootKeyHash[i], EHex, 2);
+                }
+            fileName.Append('\\');
+            // check that the path exists
+            User::LeaveIfError(iFs.Entry(fileName, entry));
+            }
+        User::LeaveIfError(iFs.SetSessionPath(fileName));
+        InitializeKeyL();
+        CheckRootForCmlaL();
+        iRootSelected = ETrue;
+        }
+    else
+        {
+        SelectDefaultRootL();
+        }
+    LOG(_L("CDrmStdKeyStorage::SelectTrustedRootL <-"));
+    }
+
+// -----------------------------------------------------------------------------
+// DrmStdKeyStorage::SelectDefaultRootL
+//
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::SelectDefaultRootL()
+    {
+    CDir* dir = NULL;
+    TFileName dirName;
+    TBool found = EFalse;
+
+    LOG(_L("CDrmStdKeyStorage::SelectDefaultRootL ->"));
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    if (iFs.GetDir(KKeyStoragePath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#else //RD_MULTIPLE_DRIVE
+
+    TFileName tempPath;
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    tempPath.Format( KKeyStoragePath, (TUint)driveLetter );
+
+    if (iFs.GetDir(tempPath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#endif
+
+        {
+        __UHEAP_MARK;
+        LOG(_L("  Checking keys on C:"));
+        CleanupStack::PushL(dir);
+        if (dir->Count() >= 1)
+            {
+
+#ifndef RD_MULTIPLE_DRIVE
+
+            dirName.Copy(KKeyStoragePath);
+
+#else //RD_MULTIPLE_DRIVE
+
+            dirName.Copy(tempPath);
+
+#endif
+
+            dirName.Append((*dir)[0].iName);
+            dirName.Append('\\');
+            User::LeaveIfError(iFs.SetSessionPath(dirName));
+            found = ETrue;
+            }
+        CleanupStack::PopAndDestroy(dir);
+        __UHEAP_MARKEND;
+        }
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    if (!found && iFs.GetDir(KRomKeyStoragePath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#else //RD_MULTIPLE_DRIVE
+
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRom, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    tempPath.Format( KRomKeyStoragePath, (TUint)driveLetter );
+
+    if (!found && iFs.GetDir(tempPath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#endif
+        {
+        LOG(_L("  Checking keys on Z:"));
+        CleanupStack::PushL(dir);
+        if (dir->Count() < 1)
+            {
+            User::Leave(KErrGeneral);
+            }
+
+#ifndef RD_MULTIPLE_DRIVE
+
+        dirName.Copy(KRomKeyStoragePath);
+
+#else //RD_MULTIPLE_DRIVE
+
+        dirName.Copy(tempPath);
+
+#endif
+
+        dirName.Append((*dir)[0].iName);
+        dirName.Append('\\');
+        User::LeaveIfError(iFs.SetSessionPath(dirName));
+        CleanupStack::PopAndDestroy(dir);
+        found = ETrue;
+        }
+    if (!found)
+        {
+        User::Leave(KErrGeneral);
+        }
+    InitializeKeyL();
+    CheckRootForCmlaL();
+    iRootSelected = ETrue;
+    LOG(_L("CDrmStdKeyStorage::SelectDefaultRootL <-"));
+    }
+
+TBool CDrmStdKeyStorage::SelectedRootIsCmla()
+    {
+    return iRootIsCmla;
+    }
+
+// -----------------------------------------------------------------------------
+// DrmStdKeyStorage::GetTrustedRootsL
+//
+// -----------------------------------------------------------------------------
+//
+
+void CDrmStdKeyStorage::GetTrustedRootsL(
+    RPointerArray<HBufC8>& aRootList)
+    {
+    CDir* dir = NULL;
+    TInt i;
+    TInt j;
+    TBuf8<SHA1_HASH> hash;
+    TEntry entry;
+    TUint8 c;
+    TInt r = KErrNone;
+
+    LOG(_L("CDrmStdKeyStorage::GetTrustedRootsL ->"));
+    aRootList.ResetAndDestroy();
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    if (iFs.GetDir(KKeyStoragePath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#else //RD_MULTIPLE_DRIVE
+
+    TFileName tempPath;
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    tempPath.Format( KKeyStoragePath, (TUint)driveLetter );
+
+    if (iFs.GetDir(tempPath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#endif
+        {
+        LOG(_L("  Getting roots on C:"));
+        CleanupStack::PushL(dir);
+        for (i = 0; i < dir->Count(); i++)
+            {
+            entry = (*dir)[i];
+            hash.SetLength(0);
+            LOG(entry.iName);
+            r = KErrNone;
+            for (j = 0; r == KErrNone && j < SHA1_HASH; j++)
+                {
+                TLex lex(entry.iName.Mid(j * 2, 2));
+                r = lex.Val(c, EHex);
+                hash.Append(c);
+                }
+            if (r == KErrNone)
+                {
+                aRootList.Append(hash.AllocL());
+                }
+            }
+        CleanupStack::PopAndDestroy(dir);
+        }
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    if (iFs.GetDir(KRomKeyStoragePath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#else //RD_MULTIPLE_DRIVE
+
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRom, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    tempPath.Format( KRomKeyStoragePath, (TUint)driveLetter );
+
+    if (iFs.GetDir(tempPath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#endif
+        {
+        LOG(_L("  Getting roots on Z:"));
+        CleanupStack::PushL(dir);
+        for (i = 0; i < dir->Count(); i++)
+            {
+            LOG(entry.iName);
+            entry = (*dir)[i];
+            hash.SetLength(0);
+            r = KErrNone;
+            for (j = 0; r == KErrNone && j < SHA1_HASH; j++)
+                {
+                TLex lex(entry.iName.Mid(j * 2, 2));
+                r = lex.Val(c, EHex);
+                hash.Append(c);
+                }
+            if (r == KErrNone)
+                {
+                aRootList.Append(hash.AllocL());
+                }
+            }
+        CleanupStack::PopAndDestroy(dir);
+        }
+    LOG(_L("CDrmStdKeyStorage::GetTrustedRootsL <-"));
+    }
+
+// -----------------------------------------------------------------------------
+// DrmStdKeyStorage::GetCertificateChainL
+//
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::GetCertificateChainL(
+    RPointerArray<HBufC8>& aCertChain)
+    {
+    TFileName fileName;
+    TInt i;
+    CDir* dir = NULL;
+    HBufC8* cert = NULL;
+
+    LOG(_L("CDrmStdKeyStorage::GetCertificateChainL ->"));
+    if (!iRootSelected)
+        {
+        User::Leave(KErrGeneral);
+        }
+    aCertChain.ResetAndDestroy();
+    ReadFileL(iFs, KDeviceCertFileName, cert);
+    aCertChain.Append(cert);
+    iFs.GetDir(KSingingCertPattern, KEntryAttNormal, ESortByName, dir);
+    CleanupStack::PushL(dir);
+    for (i = 0; i < dir->Count(); i++)
+        {
+        ReadFileL(iFs, (*dir)[i].iName, cert);
+        aCertChain.AppendL(cert);
+        }
+    CleanupStack::PopAndDestroy(); // dir
+    LOG(_L("CDrmStdKeyStorage::GetCertificateChainL <-"));
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::RsaSignL
+// -----------------------------------------------------------------------------
+//
+HBufC8* CDrmStdKeyStorage::RsaSignL(
+    const TDesC8& aInput)
+    {
+    return ModularExponentiateWithKeyL(aInput);
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::RsaDecryptL
+// -----------------------------------------------------------------------------
+//
+HBufC8* CDrmStdKeyStorage::RsaDecryptL(
+    const TDesC8& aInput)
+    {
+    return ModularExponentiateWithKeyL(aInput);
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::ImportDataL
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::ImportDataL(
+    const TDesC8& aPrivateKey,
+    const RArray<TPtrC8>& aCertificateChain)
+    {
+    TInt i;
+    TInt n;
+    HBufC8* publicKey = NULL;
+    CX509Certificate* cert = NULL;
+    CSHA1* hasher = NULL;
+    TBuf8<SHA1_HASH> publicKeyHash;
+    TFileName fileName;
+
+    LOG(_L("CDrmStdKeyStorage::ImportDataL ->"));
+    n = aCertificateChain.Count();
+    cert = CX509Certificate::NewLC(aCertificateChain[n - 1]);
+    publicKey = cert->DataElementEncoding(
+        CX509Certificate::ESubjectPublicKeyInfo)->AllocL();
+    CleanupStack::PushL(publicKey);
+    hasher = CSHA1::NewL();
+    CleanupStack::PushL(hasher);
+    hasher->Update(*publicKey);
+    publicKeyHash.Copy(hasher->Final());
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    fileName.Copy(KKeyStoragePath);
+
+#else //RD_MULTIPLE_DRIVE
+
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    TFileName keyStorageDir;
+    keyStorageDir.Format( KKeyStoragePath, (TUint)driveLetter );
+
+    fileName.Copy(keyStorageDir);
+
+#endif
+
+    for (i = 0; i < SHA1_HASH; i++)
+        {
+        fileName.AppendNumFixedWidth(publicKeyHash[i], EHex, 2);
+        }
+    fileName.Append('\\');
+    iFileMan->Delete(fileName, CFileMan::ERecurse);
+    iFs.MkDirAll(fileName);
+    iFs.SetSessionPath(fileName);
+    WriteFileL(iFs, KDeviceKeyFileName, aPrivateKey);
+    fileName.Copy(fileName);
+    WriteFileL(iFs, KDeviceCertFileName, aCertificateChain[0]);
+    for (i = 1; i < n; i++)
+        {
+        fileName.SetLength(0);
+        fileName.AppendFormat(KSingingCertFmt, i - 1);
+        WriteFileL(iFs, fileName, aCertificateChain[i]);
+        }
+    CleanupStack::PopAndDestroy(3); // hasher, publicKey, cert
+    LOG(_L("CDrmStdKeyStorage::ImportDataL <-"));
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::GetDeviceSpecificKeyL
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::GetDeviceSpecificKeyL(
+    TBuf8<KDeviceSpecificKeyLength>& aKey)
+    {
+
+    HBufC8* key = NULL;
+    TInt n;
+    CSHA1* hasher = NULL;
+    TBuf8<SHA1_HASH> hash;
+
+    if (iDeviceSpecificKey.Compare(KDefaultKey) == 0)
+        {
+
+        GetImeiL();
+
+        HBufC8* buf = HBufC8::NewLC( iImei->Size() + sizeof(VID_DEFAULT) );
+        TPtr8 ptr( buf->Des() );
+        ptr.Copy( *iImei );
+        ptr.Append(VID_DEFAULT);
+
+        hasher = CSHA1::NewL();
+        CleanupStack::PushL(hasher);
+        hasher->Update(ptr);
+        hash.Copy(hasher->Final());
+        key=hash.AllocL();
+        CleanupStack::PopAndDestroy(2,buf); // hasher,buf;
+
+        n = Min(key->Length(), KDeviceSpecificKeyLength);
+        iDeviceSpecificKey.Copy(key->Right(n));
+        delete key;
+        n = KDeviceSpecificKeyLength - n;
+        while (n > 0)
+            {
+            iDeviceSpecificKey.Append(0);
+            n--;
+            }
+        }
+
+    aKey.Copy(iDeviceSpecificKey);
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::InitializeKeyL
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::InitializeKeyL()
+    {
+    HBufC8* key = NULL;
+    TASN1DecInteger encInt;
+    TInt pos = 0;
+
+    LOG(_L("CDrmStdKeyStorage::InitializeKeyL ->"));
+    delete iKey;
+    iKey = NULL;
+    ReadFileL(iFs, KDeviceKeyFileName, key);
+    CleanupStack::PushL(key);
+    TASN1DecGeneric gen(*key);
+    gen.InitL();
+    pos += gen.LengthDERHeader();
+    if (gen.Tag() != EASN1Sequence)
+        {
+        User::Leave(KErrArgument);
+        }
+    encInt.DecodeDERShortL(*key, pos); // version
+    RInteger modulus = encInt.DecodeDERLongL(*key, pos);
+    CleanupStack::PushL(modulus);
+    RInteger publicExponent = encInt.DecodeDERLongL(*key, pos);
+    CleanupStack::PushL(publicExponent);
+    RInteger privateExponent = encInt.DecodeDERLongL(*key, pos);
+    CleanupStack::PushL(privateExponent);
+    iKey = CRSAPrivateKeyStandard::NewL(modulus, privateExponent);
+    CleanupStack::Pop(); // privateExponent
+    CleanupStack::PopAndDestroy();// publicExponent
+    CleanupStack::Pop(); // modulus
+    CleanupStack::PopAndDestroy(); // key
+    LOG(_L("CDrmStdKeyStorage::InitializeKeyL <-"));
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::ModularExponentiateWithKeyL
+// -----------------------------------------------------------------------------
+//
+HBufC8* CDrmStdKeyStorage::ModularExponentiateWithKeyL(
+    const TDesC8& aInput)
+    {
+    RInteger result;
+    RInteger input;
+    HBufC8* output;
+    TInt keyLength = KKeyLength;
+
+    LOG(_L("CDrmStdKeyStorage::ModularExponentiateWithKeyL ->"));
+    input = OS2IPL(aInput);
+    CleanupClosePushL(input);
+    result = TInteger::ModularExponentiateL(input,iKey->D(), iKey->N());
+    CleanupClosePushL(result);
+    output = I2OSPL(result,  keyLength);
+    CleanupStack::PopAndDestroy(2); // result, input
+    LOG(_L("CDrmStdKeyStorage::ModularExponentiateWithKeyL <-"));
+    return output;
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::CheckRootForCmlaL
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::CheckRootForCmlaL()
+    {
+    CDir* dir = NULL;
+    HBufC8* buffer = NULL;
+    HBufC* name = NULL;
+    CX509Certificate* cert = NULL;
+
+    LOG(_L("CDrmStdKeyStorage::CheckRootForCmlaL ->"));
+    __UHEAP_MARK;
+    iFs.GetDir(KSingingCertPattern, KEntryAttNormal, ESortByName, dir);
+    CleanupStack::PushL(dir);
+    ReadFileL(iFs, (*dir)[dir->Count() - 1].iName, buffer);
+    CleanupStack::PushL(buffer);
+    cert = CX509Certificate::NewL(*buffer);
+    CleanupStack::PushL(cert);
+    name = cert->SubjectName().DisplayNameL();
+    CleanupStack::PushL(name);
+    if (name->Find(KCmla) != KErrNotFound)
+        {
+        iRootIsCmla = ETrue;
+        }
+    else
+        {
+        iRootIsCmla = EFalse;
+        }
+    CleanupStack::PopAndDestroy(4); // name, cert, buffer, dir
+    LOG(_L("CDrmStdKeyStorage::CheckRootForCmlaL <-"));
+    __UHEAP_MARKEND;
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::GetRdbSerialNumberL
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::GetRdbSerialNumberL(
+    TBuf8<KRdbSerialNumberLength>& aSerialNumber)
+    {
+    HBufC8* buffer = NULL;
+    TUint att;
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    if (iFs.Att(KSerialNumberFile, att) != KErrNone)
+
+#else //RD_MULTIPLE_DRIVE
+
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    TFileName serialNoFile;
+    serialNoFile.Format( KSerialNumberFile, (TUint)driveLetter );
+
+    if (iFs.Att(serialNoFile, att) != KErrNone)
+
+#endif
+        {
+        GenerateNewRdbSerialNumberL();
+        }
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    ReadFileL(iFs, KSerialNumberFile, buffer);
+
+#else //RD_MULTIPLE_DRIVE
+
+    ReadFileL(iFs, serialNoFile, buffer);
+
+#endif
+
+    aSerialNumber.Copy(*buffer);
+    delete buffer;
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::GenerateNewRdbSerialNumberL
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::GenerateNewRdbSerialNumberL()
+    {
+    TBuf8<KRdbSerialNumberLength> serialNumber;
+    TPtr8 random( const_cast<TUint8*>(serialNumber.Ptr()),
+                  KRdbSerialNumberLength,
+                  KRdbSerialNumberLength );
+
+    RandomDataGetL(random,KRdbSerialNumberLength);
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    WriteFileL(iFs, KSerialNumberFile, random);
+
+#else //RD_MULTIPLE_DRIVE
+
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    TFileName serialNoFile;
+    serialNoFile.Format( KSerialNumberFile, (TUint)driveLetter );
+
+    WriteFileL(iFs, serialNoFile, random);
+
+#endif
+
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::UdtEncryptL
+// -----------------------------------------------------------------------------
+//
+HBufC8* CDrmStdKeyStorage::UdtEncryptL(
+    const TDesC8& aInput)
+    {
+    HBufC8* buffer = NULL;
+    HBufC8* output = HBufC8::NewMaxLC( 256 );
+    CX509Certificate* cert = NULL;
+    CRSAPublicKey* key = NULL;
+    TX509KeyFactory factory;
+    CRSAPKCS1v15Encryptor* encryptor = NULL;
+    TPtr8 result(const_cast<TUint8*>(output->Ptr()), 0, 256);
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    ReadFileL(iFs, KUdtCertFileName, buffer);
+
+#else //RD_MULTIPLE_DRIVE
+
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRom, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    TFileName udtCertFile;
+    udtCertFile.Format( KUdtCertFileName, (TUint)driveLetter );
+
+    ReadFileL(iFs, udtCertFile, buffer);
+
+#endif
+
+    CleanupStack::PushL(buffer);
+    cert = CX509Certificate::NewL(*buffer);
+    CleanupStack::PushL(cert);
+    key = factory.RSAPublicKeyL(cert->PublicKey().KeyData());
+    CleanupStack::PushL(key);
+
+    encryptor = CRSAPKCS1v15Encryptor::NewLC(*key);
+    encryptor->EncryptL(aInput, result);
+
+    CleanupStack::PopAndDestroy(4); // encryptor, key, cert, buffer
+    CleanupStack::Pop();// output
+    return output;
+    };
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::GetRootCertificatesL
+// -----------------------------------------------------------------------------
+//
+void CDrmStdKeyStorage::GetRootCertificatesL(
+          RPointerArray<HBufC8>& aRootCerts)
+    {
+    CDir* dir = NULL;
+    CDir* rootCerts = NULL;
+    TFileName dirName;
+    HBufC8* cert = NULL;
+    TInt i = 0;
+    TBuf<256> path;
+
+    iFs.SessionPath( path );
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    if (iFs.GetDir(KKeyStoragePath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#else //RD_MULTIPLE_DRIVE
+
+    TFileName tempPath;
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    tempPath.Format( KKeyStoragePath, (TUint)driveLetter );
+
+    if (iFs.GetDir(tempPath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#endif
+        {
+        CleanupStack::PushL(dir);
+        for(i = 0; i < dir->Count(); i++)
+            {
+            if ((*dir)[i].IsDir())
+                {
+
+#ifndef RD_MULTIPLE_DRIVE
+
+                dirName.Copy(KKeyStoragePath);
+
+#else //RD_MULTIPLE_DRIVE
+
+                dirName.Copy(tempPath);
+
+#endif
+
+                dirName.Append((*dir)[i].iName);
+                dirName.Append('\\');
+                User::LeaveIfError(iFs.SetSessionPath(dirName));
+                User::LeaveIfError(iFs.GetDir(KSingingCertPattern, KEntryAttNormal, ESortByName, rootCerts));
+                CleanupStack::PushL(rootCerts);
+                ReadFileL(iFs, (*rootCerts)[rootCerts->Count() - 1].iName, cert);
+                CleanupStack::PushL(cert);
+                aRootCerts.AppendL(cert);
+                CleanupStack::Pop(cert);
+                CleanupStack::PopAndDestroy(); // rootCerts
+                }
+            }
+        CleanupStack::PopAndDestroy(dir);
+        }
+
+#ifndef RD_MULTIPLE_DRIVE
+
+    if (iFs.GetDir(KRomKeyStoragePath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#else //RD_MULTIPLE_DRIVE
+
+    DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRom, driveNumber );
+    iFs.DriveToChar( driveNumber, driveLetter );
+
+    tempPath.Format( KRomKeyStoragePath, (TUint)driveLetter );
+
+    if (iFs.GetDir(tempPath, KEntryAttDir, ESortByName, dir) == KErrNone)
+
+#endif
+        {
+        CleanupStack::PushL(dir);
+        for(i = 0; i < dir->Count(); i++)
+            {
+            if ((*dir)[i].IsDir())
+                {
+
+#ifndef RD_MULTIPLE_DRIVE
+
+                dirName.Copy(KRomKeyStoragePath);
+
+#else //RD_MULTIPLE_DRIVE
+
+                dirName.Copy(tempPath);
+
+#endif
+
+                dirName.Append((*dir)[i].iName);
+                dirName.Append('\\');
+                User::LeaveIfError(iFs.SetSessionPath(dirName));
+                User::LeaveIfError(iFs.GetDir(KSingingCertPattern, KEntryAttNormal, ESortByName, rootCerts));
+                CleanupStack::PushL(rootCerts);
+                ReadFileL(iFs, (*rootCerts)[rootCerts->Count() - 1].iName, cert);
+                CleanupStack::PushL(cert);
+                aRootCerts.AppendL(cert);
+                CleanupStack::Pop(cert);
+                CleanupStack::PopAndDestroy(); // rootCerts
+                }
+            }
+        CleanupStack::PopAndDestroy(dir);
+        }
+    iFs.SetSessionPath( path );
+    }
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::GetIMEIL
+// -----------------------------------------------------------------------------
+//
+const TDesC& CDrmStdKeyStorage::GetImeiL()
+    {
+    if ( iImei )
+        {
+        return *iImei;
+        }
+
+#if 1// (defined __WINS__ || defined WINSCW)
+    // Default IMEI used for emulator
+    _LIT( KDefaultSerialNumber, "123456789123456789" );
+    iImei = KDefaultSerialNumber().AllocL();
+
+    return *iImei;
+#else
+
+    TInt error( KErrNone );
+    TInt count( 0 );
+    TInt count2( 0 );
+    TUint32 caps( 0 );
+    TBool found (EFalse);
+
+    RTelServer etelServer;
+    RMobilePhone phone;
+
+    TUint KMaxImeiTries = 5;
+
+    for ( TUint8 i = 0; i < KMaxImeiTries; ++i )
+        {
+        error = etelServer.Connect();
+        if ( error )
+            {
+            User::After( TTimeIntervalMicroSeconds32( KWaitingTime ) );
+            }
+        else
+            {
+            break;
+            }
+        }
+
+    User::LeaveIfError( error );
+    CleanupClosePushL( etelServer );
+
+    User::LeaveIfError( etelServer.LoadPhoneModule( KMmTsyModuleName ) );
+
+    TUnloadModule unload;
+    unload.iServer = &etelServer;
+    unload.iName = &KMmTsyModuleName;
+
+    TCleanupItem item( DoUnloadPhoneModule, &unload );
+    CleanupStack::PushL( item );
+    User::LeaveIfError( etelServer.EnumeratePhones( count ) );
+
+    for ( count2 = 0; count2 < count && !found; ++count2 )
+        {
+        RTelServer::TPhoneInfo phoneInfo;
+        User::LeaveIfError( etelServer.GetTsyName( count2, phoneInfo.iName ) );
+
+        if ( phoneInfo.iName.CompareF(KMmTsyModuleName()) == 0 )
+           {
+            User::LeaveIfError( etelServer.GetPhoneInfo( count2, phoneInfo ) );
+            User::LeaveIfError( phone.Open( etelServer, phoneInfo.iName ) );
+            CleanupClosePushL( phone );
+            found = ETrue;
+            }
+        }
+
+    if ( !found )
+        {
+        // Not found.
+        User::Leave( KErrNotFound );
+        }
+
+    User::LeaveIfError( phone.GetIdentityCaps( caps ) );
+    if (!( caps & RMobilePhone::KCapsGetSerialNumber ))
+        {
+         User::Leave( KErrNotFound );
+        }
+
+    RMobilePhone::TMobilePhoneIdentityV1 id;
+    TRequestStatus status;
+
+    phone.GetPhoneId( status, id );
+
+    User::WaitForRequest( status );
+
+    User::LeaveIfError( status.Int() );
+
+    iImei = id.iSerialNumber.AllocL();
+
+    CleanupStack::PopAndDestroy( 3 ); // phone, item, etelServer
+
+    HBufC8* buf = HBufC8::NewL( iImei->Size() );
+    TPtr8 ptr( buf->Des() );
+    ptr.Copy( *iImei );
+
+    LOG(_L("IMEI:"));
+    LOGHEX(ptr);
+    delete buf;
+
+    return *iImei;
+#endif /* __WINS__ , WINSCW */
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// CDrmStdKeyStorage::RandomDataGetL
+// -----------------------------------------------------------------------------
+//
+
+void CDrmStdKeyStorage::RandomDataGetL( TDes8& aData, const TInt aLength )
+    {
+    if ( aLength <= 0 )
+        {
+         User::Leave(KErrArgument);
+        }
+
+    TInt size = aData.MaxSize();
+
+    if( size < aLength )
+        {
+        User::Leave(KErrOverflow);
+        }
+
+    TRandom::Random( aData );
+    }
+
+// end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/breakdeps/DRMEngine/DrmStdKeyStorage.mmp	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2004-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:  DRM Std Key Storage Module
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+TARGET          stem_DrmStdKeyStorage.dll
+TARGETTYPE      DLL
+UID             0x1000008D 0x10205CAF
+CAPABILITY      CAP_GENERAL_DLL DRM CommDD
+VENDORID        VID_DEFAULT
+
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/keystorage/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/utils/inc
+USERINCLUDE	    /sf/mw/drm/omadrm/drmengine/../../inc   // ADo level inc dir
+
+// Default system include paths for middleware layer modules.
+MW_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/libc
+SYSTEMINCLUDE   /epoc32/include/ecom
+
+SOURCEPATH      ./
+SOURCE          DrmStdKeyStorage.cpp
+
+LIBRARY         euser.lib
+LIBRARY         efsrv.lib    
+LIBRARY         asn1.lib
+LIBRARY         cryptography.lib 
+LIBRARY         crypto.lib 
+LIBRARY         x500.lib
+LIBRARY         x509.lib
+LIBRARY         pkixcert.lib
+LIBRARY         random.lib
+LIBRARY         hash.lib
+//LIBRARY         etel.lib
+//LIBRARY	        etelmm.lib
+LIBRARY         flogger.lib
+LIBRARY		featmgr.lib
+
+#ifdef RD_MULTIPLE_DRIVE
+LIBRARY       platformenv.lib
+#endif
+
+#if defined(ARMCC)
+deffile /sf/mw/drm/omadrm/drmengine/eabi/DrmStdKeyStorage.def
+#elif defined( WINSCW )
+deffile /sf/mw/drm/omadrm/drmengine/bwinscw/DrmStdKeyStorage.def
+#elif defined( WINS )
+deffile /sf/mw/drm/omadrm/drmengine/bwins/DrmStdKeyStorage.def
+#else
+deffile /sf/mw/drm/omadrm/drmengine/bmarm/DrmStdKeyStorage.def
+#endif
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/breakdeps/DRMEngine/ROAPHandler.mmp	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,143 @@
+/*
+* Copyright (c) 2004-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:  ROAP Handler build configuration
+*
+*/
+
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+
+TARGET          stem_ROAPHandler.dll
+TARGETTYPE      DLL
+UID             0x1000008D 0x101F6DB5
+CAPABILITY      CAP_GENERAL_DLL DRM
+VENDORID        VID_DEFAULT
+
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/dcf/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/dm/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/agentv2/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/ro/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/roap/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/utils/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/server/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/roapstorage/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/drmclock/Inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/dcfrepository/client/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/../../inc   // ADo level inc dir
+
+// Default system include paths for middleware layer modules.
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/libc
+SYSTEMINCLUDE   /epoc32/include/ecom
+
+SOURCEPATH  ./
+SOURCE      RoapEng.cpp
+
+SOURCEPATH  /sf/mw/drm/omadrm/drmengine/roap/src
+
+SOURCE      RoapEngBase.cpp
+SOURCE      RoapTrigger.cpp
+SOURCE      RoapHttpHandler.cpp
+SOURCE      RoapConnection.cpp
+SOURCE      RoapResponse.cpp
+SOURCE      RoapSyncWrapper.cpp
+
+SOURCE      RoapSigner.cpp
+
+SOURCE      RoapParser.cpp
+SOURCE      JoinDomainRespParser.cpp
+SOURCE      LeaveDomainRespParser.cpp
+SOURCE      RegistrationRespParser.cpp
+SOURCE      RightsRespParser.cpp
+SOURCE      RIHelloParser.cpp
+SOURCE      RoapTriggerParser.cpp
+
+SOURCE      RoapMessage.cpp
+SOURCE      DeviceHello.cpp
+SOURCE      RIHello.cpp
+SOURCE      RegistrationReq.cpp
+SOURCE      RegistrationResp.cpp
+SOURCE      RightsReq.cpp
+SOURCE      RightsResp.cpp
+SOURCE      JoinDomainReq.cpp
+SOURCE      JoinDomainResp.cpp
+SOURCE      LeaveDomainReq.cpp
+SOURCE      LeaveDomainResp.cpp
+
+#ifdef RD_DRM_METERING
+SOURCE      MeteringReportReq.cpp
+SOURCE      MeteringReportResp.cpp
+SOURCE      MeteringReportRespParser.cpp
+#endif
+
+SOURCEPATH  /sf/mw/drm/omadrm/drmengine/utils/src
+SOURCE      MultipartHandler.cpp
+
+LIBRARY     euser.lib
+LIBRARY     estor.lib
+LIBRARY     efsrv.lib
+LIBRARY     commdb.lib
+LIBRARY     bafl.lib
+LIBRARY     esock.lib
+LIBRARY     http.lib
+LIBRARY     inetprotutil.lib
+LIBRARY     XmlFramework.lib
+LIBRARY     apmime.lib
+LIBRARY     asn1.lib
+LIBRARY     cryptography.lib
+LIBRARY     crypto.lib
+LIBRARY     ecom.lib
+LIBRARY     x509.lib
+LIBRARY     x500.lib
+LIBRARY     pkixcert.lib
+LIBRARY     random.lib
+LIBRARY     hash.lib
+//LIBRARY     etel.lib
+//LIBRARY     etelmm.lib
+LIBRARY     CharConv.lib
+LIBRARY     drmcrypto.lib
+LIBRARY     DrmParsers.lib
+LIBRARY     DrmDcf.lib
+LIBRARY     DrmRights.lib
+LIBRARY     DrmServerInterfaces.lib
+LIBRARY     DcfRep.lib
+LIBRARY     caf.lib                     // Embedding domain ROs
+LIBRARY     cafutils.lib                // Embedding domain ROs
+LIBRARY     centralrepository.lib       // Browser default AP
+LIBRARY     cmmanager.lib
+LIBRARY	    featmgr.lib
+
+LIBRARY     SysUtil.lib
+LIBRARY     HttpFilterCommon.lib
+LIBRARY     CommonUI.lib
+LIBRARY     PlatformEnv.lib
+LIBRARY     drmroapwbxmlparser.lib
+
+
+// Uncomment the following lines to enable internal logging.
+macro      _ROAP_TESTING
+LIBRARY    flogger.lib
+
+#if defined(ARMCC)
+deffile /sf/mw/drm/omadrm/drmengine/eabi/ROAPHandler.def
+#elif defined( WINSCW )
+deffile /sf/mw/drm/omadrm/drmengine/bwinscw/ROAPHandler.def
+#elif defined( WINS )
+deffile /sf/mw/drm/omadrm/drmengine/bwins/ROAPHandler.def
+#else
+deffile /sf/mw/drm/omadrm/drmengine/bmarm/ROAPHandler.def
+#endif
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/breakdeps/DRMEngine/RightsServer.mmp	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,190 @@
+/*
+* Copyright (c) 2003-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:  Makefile of DRM Engine & DRM Rights Database
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+TARGET          stem_RightsServer.exe
+TARGETTYPE      EXE
+
+UID             0x1000008d 0x101F51F2
+CAPABILITY      CAP_SERVER DRM CommDD ProtServ PowerMgmt Location
+VENDORID        VID_DEFAULT
+
+// Default system include paths for middleware layer modules.
+MW_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/libc
+SYSTEMINCLUDE   /epoc32/include/connect
+
+USERINCLUDE		./
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/server/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/agentv2/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/ro/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/dcf/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/notifier/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/utils/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/roap/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/roapstorage/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/drmclock/Inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/keystorage/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/drmbackup/inc
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/../../inc   // ADo level inc dir
+
+SOURCEPATH		./
+SOURCE          DRMRightsServer.cpp
+SOURCE          DRMClock.cpp
+
+SOURCEPATH      /sf/mw/drm/omadrm/drmengine/server/src
+
+// DRM Engine (server side)
+SOURCE          DRMDbSession.cpp
+// SOURCE       drmpermissionlist.cpp
+SOURCE          drmparentstorage.cpp
+// SOURCE       drmpermissionitem.cpp
+SOURCE          DRMReplayCache.cpp
+SOURCE          DRMXOma.cpp
+SOURCE          DRMActiveOperation.cpp
+SOURCE          DRMObsoleteFinder.cpp
+SOURCE          drmconsume.cpp
+
+// DRM Rights Database
+SOURCE          drmrightsdb.cpp
+SOURCE          DRMRightsData.cpp
+SOURCE          DRMCommonData.cpp
+SOURCE          DRMRightsCleaner.cpp
+
+// DRM Metering
+#ifdef RD_DRM_METERING
+SOURCE          drmmeteringdbdata.cpp
+#endif
+SOURCE          drmmeteringdb.cpp
+
+// DRM Backup implementation
+SOURCEPATH      /sf/mw/drm/omadrm/drmengine/drmbackup/src
+SOURCE          DRMBackup.cpp
+SOURCE          DRMBackupObserver.cpp
+
+// DRM Notifier
+SOURCEPATH      /sf/mw/drm/omadrm/drmengine/notifier/src
+
+SOURCE          DRMMessageStorage.cpp
+SOURCE          DRMNotifierServer.cpp
+SOURCE          DRMNotifierSession.cpp
+
+// RoapStorage
+SOURCEPATH      /sf/mw/drm/omadrm/drmengine/roapstorage/src
+
+SOURCE          RoapStorageClient.cpp
+SOURCE          RoapStorageServer.cpp
+SOURCE          RoapStorageSession.cpp
+SOURCE          DRMContextDB.cpp
+// OCSP cert classes
+SOURCE          responsedecoder.cpp
+SOURCE          response.cpp
+SOURCE          responsecertinfo.cpp
+SOURCE          certid.cpp
+
+
+// DRM Clock
+#ifdef __DRM_CLOCK
+SOURCEPATH      /sf/mw/drm/omadrm/drmengine/drmclock/Src
+SOURCE          DRMClockServer.cpp
+SOURCE          DRMClockSession.cpp
+
+//SOURCE          DRMNitzObserver.cpp
+SOURCE          GPSWatcher.cpp
+SOURCE          GPSTimeUpdater.cpp
+
+#else
+#ifdef __DRM_OMA2
+SOURCEPATH      /sf/mw/drm/omadrm/drmengine/DRMClock/src
+SOURCE          OMA2NotSupportedWithoutDRMClock:define__DRM_CLOCKvariation.cpp
+#endif // __DRM_OMA2
+#endif // __DRM_CLOCK
+
+// RDB and Process Watcher
+SOURCEPATH      /sf/mw/drm/omadrm/drmengine/utils/src
+SOURCE          dbwatcher.cpp
+SOURCE          dirwatcher.cpp
+SOURCE          procwatcher.cpp
+
+LIBRARY         drmdcf.lib
+LIBRARY         drmrights.lib
+LIBRARY         drmserverinterfaces.lib
+LIBRARY         euser.lib
+LIBRARY         estor.lib
+LIBRARY         efsrv.lib
+LIBRARY         hash.lib
+LIBRARY         cryptography.lib
+LIBRARY         crypto.lib
+LIBRARY         asn1.lib
+LIBRARY         x509.lib
+LIBRARY         x500.lib
+LIBRARY         pkixcert.lib
+LIBRARY         drmcrypto.lib
+LIBRARY         drmkeystorage.lib
+LIBRARY         edbms.lib
+LIBRARY         bafl.lib
+//LIBRARY         etel.lib
+//LIBRARY         etelmm.lib
+LIBRARY         abclient.lib
+LIBRARY         charconv.lib
+LIBRARY         dcfrep.lib
+LIBRARY         drmparsers.lib              // DRM message parser for RO import
+LIBRARY         centralrepository.lib       // Browser default AP
+LIBRARY         InetProtUtil.lib            // URI parser
+LIBRARY         flogger.lib
+LIBRARY         featmgr.lib                 // Feature Manager
+LIBRARY         wmdrmfileserverclient.lib
+LIBRARY         lbs.lib                     // GPS libraries
+LIBRARY         eposindicator.lib           // GPS positioner indicator lib
+#ifdef RD_DRM_METERING
+LIBRARY         random.lib
+#endif
+
+LIBRARY StarterClient.lib // reset
+
+#ifdef RD_MULTIPLE_DRIVE
+LIBRARY         platformenv.lib
+#endif
+
+LIBRARY         SysUtil.lib
+// LIBRARY      commonengine.lib // Backup
+
+/*
+#if !defined(WINS)
+MACRO           DRM_USE_SERIALNUMBER
+LIBRARY         etel.lib
+#endif
+*/
+// Uncomment the following lines to enable internal logging.
+/*
+macro _DRM_TESTING
+USERINCLUDE     /sf/mw/drm/omadrm/drmengine/internal/tsrc_internal
+SOURCEPATH      /sf/mw/drm/omadrm/drmengine/internal/tsrc_internal
+LIBRARY         drmdebugtools.lib
+LIBRARY         HAL.lib
+LIBRARY         charconv.lib
+*/
+
+#if defined( WINSCW )
+deffile /sf/mw/drm/omadrm/drmengine/bwinscw/RightsServer.def
+#elif defined( WINS )
+deffile /sf/mw/drm/omadrm/drmengine/bwins/RightsServer.def
+#endif
+
+//SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/breakdeps/DRMEngine/RoapEng.cpp	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,2695 @@
+/*
+* Copyright (c) 2002-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:  Roap engine
+ *
+*/
+
+
+// INCLUDE FILES
+
+#include <random.h>
+
+#include <DocumentHandler.h>
+
+#ifdef RD_MULTIPLE_DRIVE
+#include  <pathinfo.h>
+#include  <driveinfo.h>
+#else
+#include  <pathinfo.h>
+#endif
+
+#ifndef __WINS__
+#include <etelmm.h>
+#include <mmtsy_names.h>
+#include <SysUtil.h>
+#endif
+
+#include <flogger.h>
+#include <x509cert.h>
+#include <x509certext.h>
+#include <hash.h>
+#include <utf.h>
+#include <asn1dec.h>
+#include <centralrepository.h>
+#include <e32base.h>  // CleanupResetAndDestroyPushL dependencies
+
+#include "cleanupresetanddestroy.h" // CleanupResetAndDestroyPushL
+#include "DRMRights.h"
+#include "RoapEng.h"
+#include "RoapTrigger.h"
+#include "wbxmlroaptriggerparser.h"
+#include "RoapResponse.h"
+#include "RoapMessage.h"
+#include "RoapParser.h"
+#include "RoapSigner.h"
+#include "DeviceHello.h"
+#include "RIHello.h"
+#include "RegistrationReq.h"
+#include "RegistrationResp.h"
+#include "RightsReq.h"
+#include "RightsResp.h"
+#include "JoinDomainReq.h"
+#include "JoinDomainResp.h"
+#include "LeaveDomainReq.h"
+#include "LeaveDomainResp.h"
+#ifdef RD_DRM_METERING
+#include "MeteringReportReq.h"
+#include "MeteringReportResp.h"
+#endif
+#include "RoapStorageClient.h"
+#include "RoapDef.h"
+#include "RoapLog.h"
+#include "RoapObserver.h"
+#include "CmlaCrypto.h"
+#include "DRMRIContext.h"
+#include "DRMDomainContext.h"
+#include "DRMProtectedRoParser.h"
+#include "DRMClockClient.h"
+#include "DcfRep.h"
+#include "DcfEntry.h"
+#include "Base64.h"
+#include "drmsettingsplugininternalcrkeys.h"
+
+
+#define STUB_C_CLASS_IN_NAMESPACE( n, c ) namespace n { class c: public CBase { private: c(); public: virtual ~c(); }; } n::c::c() {} n::c::~c() {}
+#define STUB_C_CLASS( c ) class c : public CBase { private: c(); public: virtual ~c(); }; c::c() {} c::~c() {}
+// This class does not do anything.
+// It is defined here only to keep binary compatibility,
+// because of unintentional class name leak in
+// armv5 export history.
+// Don't ever use this class for anything.
+STUB_C_CLASS_IN_NAMESPACE( Roap , CWbxmlRoapTriggerToXmlParser )
+
+// Yet another stub classes because of moved classes
+// which have leaked virtual table entries
+STUB_C_CLASS( COCSPResponse )
+STUB_C_CLASS( COCSPResponseCertInfo )
+
+
+using namespace Roap;
+// ================= CONSTANTS =======================
+// For parsing multipart content
+_LIT8(KCmlaIp1, "http://www.cm-la.com/tech/cmlaip/cmlaip#cmlaip-1");
+_LIT8(KLeaveDomainElement, "leaveDomain");
+_LIT8(KSignedInfoElement, "SignedInfo");
+_LIT(KBOM1, "\xFFFE");
+_LIT(KBOM2, "\xFEFF");
+#ifdef RD_DRM_METERING
+_LIT8( KRoapVersion11, "1.1" );
+#endif
+
+static const TInt KDomainGenerationLength( 3 );
+static const TInt KMinCertChainLength( 3 );
+// ================= LOCAL FUNCTIONS =======================
+
+LOCAL_C TBool SortArrays(
+    RPointerArray<HBufC8>& aKeys,
+    RPointerArray<HBufC8>& aMacs,
+    RPointerArray<HBufC8>& aElements,
+    RArray<TInt>& aOrder )
+    {
+    TInt i;
+    TInt j;
+    TInt index;
+    HBufC8* temp1 = NULL;
+    HBufC8* temp2 = NULL;
+    HBufC8* temp3 = NULL;
+    TBool isInOrder = ETrue;
+
+    if ( aOrder.Count() != aKeys.Count() || aKeys.Count() != aMacs.Count()
+        || aMacs.Count() != aElements.Count() )
+        {
+        return EFalse;
+        }
+
+    for ( i = 0; i < aKeys.Count(); i++ )
+        {
+        index = aOrder[i];
+        temp1 = aKeys[i];
+        temp2 = aMacs[i];
+        temp3 = aElements[i];
+        j = i;
+        while ( ( j > 0 ) && ( aOrder[j - 1] > index ) )
+            {
+            isInOrder = EFalse;
+            aOrder[j] = aOrder[j - 1];
+            aKeys[j] = aKeys[j - 1];
+            aMacs[j] = aMacs[j - 1];
+            aElements[j] = aElements[j - 1];
+            j = j - 1;
+            }
+        aOrder[j] = index;
+        aKeys[j] = temp1;
+        aMacs[j] = temp2;
+        aElements[j] = temp3;
+        }
+    return isInOrder;
+    }
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// CRoapEng::NewL()
+// ---------------------------------------------------------
+//
+EXPORT_C CRoapEng* CRoapEng::NewL()
+    {
+    CRoapEng* engine = new ( ELeave ) CRoapEng();
+    CleanupStack::PushL( engine );
+    engine->ConstructL();
+    CleanupStack::Pop( engine );
+    return engine;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::~CRoapEng()
+// ---------------------------------------------------------
+//
+EXPORT_C CRoapEng::~CRoapEng()
+    {
+    if ( iStorageClient )
+        {
+        iStorageClient->Close();
+        }
+    delete iStorageClient;
+    if ( iClockClient )
+        {
+        iClockClient->Close();
+        }
+    delete iClockClient;
+    delete iParser;
+    delete iSigner;
+    delete iDeviceId;
+    delete iRoParser;
+    delete iDcfRep;
+    iRiAlgorithms.ResetAndDestroy();
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::~CRoapEng()
+// ---------------------------------------------------------
+//
+void CRoapEng::ConstructL()
+    {
+    LOGLIT( "CRoapEng::ConstructL" )
+
+    CRoapEngBase::ConstructL();
+    iParser = CRoapParser::NewL();
+    iStorageClient = new ( ELeave ) RRoapStorageClient;
+    User::LeaveIfError( iStorageClient->Connect() );
+    iClockClient = new ( ELeave ) RDRMClockClient;
+    User::LeaveIfError( iClockClient->Connect() );
+    TBuf8<SHA1_HASH> deviceId;
+    iStorageClient->GetDevicePublicKeyHashL( deviceId );
+    iDeviceId = deviceId.AllocL();
+    iSigner = CRoapSigner::NewL( *iStorageClient );
+    iRoParser = CDrmProtectedRoParser::NewL();
+    iDcfRep = CDcfRep::NewL();
+    iCertNeeded = ETrue;
+    iRiSupportsCertCaching = EFalse;
+    iTransStatus = ENotAsked;
+    iSelectedAlgorithms = EOma;
+    iSelectedRoot = KNullDesC8;
+    iStorageClient->SelectTrustedRootL( KNullDesC8 );
+    iDeviceTimeError = EFalse;
+    iDomainId.SetLength( 0 );
+    iSecureTime = ETrue;
+    iZone = 0;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::CRoapEng()
+// ---------------------------------------------------------
+//
+CRoapEng::CRoapEng() :
+    CRoapEngBase()
+    {
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::ParseTriggerL()
+// ---------------------------------------------------------
+//
+CRoapTrigger* CRoapEng::ParseTriggerL( const TDesC8& aTrigger )
+    {
+    LOGLIT( "CRoapEng::ParseTriggerL" )
+
+    CRoapTrigger* trigger( NULL );
+    RBuf8 xmlTrigger;
+    CleanupClosePushL( xmlTrigger );
+    _LIT8( KRoap, "<roap:roapTrigger" );
+    if ( aTrigger.FindF( KRoap ) == KErrNotFound )
+        {
+        DRM::CWbxmlRoapTriggerParser* wbParser(
+            DRM::CWbxmlRoapTriggerParser::NewLC() );
+        HBufC8* b( NULL );
+        TRAPD( parseError, b = wbParser->ParseL( aTrigger ) );
+        if ( parseError == KErrNone )
+            {
+            xmlTrigger.Assign( b );
+            b = NULL;
+            LOGLIT( "  We have a WBXML trigger" )
+            }
+        else
+            { // OMA BCAST: Check if this is an XML trigger after all..
+            LOGLIT( "  We have an XML trigger after all" )
+            xmlTrigger.CreateL( aTrigger );
+            }
+        CleanupStack::PopAndDestroy( wbParser );
+        }
+    else
+        {
+        xmlTrigger.CreateL( aTrigger );
+        }
+    trigger = iParser->ParseRoapTriggerL( xmlTrigger );
+
+    CleanupStack::PushL( trigger );
+    if ( !trigger || !trigger->ValidTrigger() )
+        {
+        User::Leave( KErrRoapGeneral );
+        }
+
+    // check that SilentRightsUrl is on the white list
+    // URL is searched from pre-configured white list
+    TBool fromPreConfiguredWhiteList( ETrue );
+    if ( iStorageClient->WhiteListURLExistsL( *trigger->iRoapUrl, fromPreConfiguredWhiteList ) )
+        {
+        iAllowedToContactRi = ETrue;
+        }
+
+    if ( trigger->iTriggerType == ELeaveDomainTrigger && trigger->iSignature )
+        {
+        if ( !VerifyTriggerSignatureL( xmlTrigger, *trigger ) )
+            {
+            User::Leave( KErrRoapServerFatal );
+            }
+        }
+
+    CleanupStack::Pop( trigger );
+    CleanupStack::PopAndDestroy( &xmlTrigger );
+
+    return trigger;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::GetRIContextL()
+// ---------------------------------------------------------
+//
+void CRoapEng::GetRIContextL( TBool& aRegistered, const TDesC8& aRiId )
+    {
+    LOGLIT( "CRoapEng::GetRIContextL" )
+
+    CDRMRIContext* context = NULL;
+
+    aRegistered = EFalse;
+
+    // delete old RI context and obtain a new one
+    delete iStoredRiContext;
+    iStoredRiContext = NULL;
+    context = iStorageClient->GetRIContextL( aRiId );
+    if ( !context )
+        {
+        return;
+        }
+
+    iStoredRiContext = context;
+    iRiSupportsCertCaching = iStoredRiContext->DeviceCertCached();
+    iSelectedRoot = iStoredRiContext->SelectedDeviceRoot();
+    iStorageClient->SelectTrustedRootL( iSelectedRoot );
+
+    if ( context->CertificateChain().Count() && context->ExpiryTime()
+        > GetDrmTimeL() )
+        {
+        aRegistered = ETrue;
+        iUseRiContextUrl = EFalse;
+        }
+    else
+        {
+        // Received Context was invalid or expired
+        iUseRiContextUrl = EFalse;
+        delete iStoredRiContext;
+        iStoredRiContext = NULL;
+        }
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::GetDomainContextL()
+// ---------------------------------------------------------
+//
+void CRoapEng::GetDomainContextL(
+    TBool& aIsJoined,
+    TBool& aIsValidGeneration,
+    const TDesC8& aDomainId )
+    {
+    LOGLIT( "CRoapEng::GetDomainContextL" )
+
+    TInt generation = 0;
+    CDRMDomainContext* context = NULL;
+
+    aIsJoined = EFalse;
+    aIsValidGeneration = EFalse;
+
+    // last 3 digits are for Domain generation
+    context = iStorageClient->GetDomainContextL( aDomainId );
+
+    if ( !context )
+        {
+        return;
+        }
+
+    if ( context->ExpiryTime() > GetDrmTimeL() || context->ExpiryTime()
+        == Time::NullTTime() )
+        {
+        aIsJoined = ETrue;
+        }
+
+    TLex8 lex( aDomainId.Right( KDomainGenerationLength ) );
+    lex.Val( generation );
+
+    if ( context->DomainGeneration() >= generation )
+        {
+        aIsValidGeneration = ETrue;
+        }
+
+    delete context;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::CreateReqMessageL()
+// ---------------------------------------------------------
+//
+void CRoapEng::CreateReqMessageL()
+    {
+    LOGLIT( "CRoapEng::CreateReqMessageL" )
+
+    __ASSERT_ALWAYS( iTrigger, User::Invariant() );
+    __ASSERT_ALWAYS( !iRequest, User::Invariant() );
+
+    switch ( iReqMessage )
+        {
+        case EDeviceHello:
+            {
+            iRequest = CreateDeviceHelloL();
+            break;
+            }
+        case ERegistration:
+            {
+            iRequest = CreateRegistrationRequestL();
+            break;
+            }
+        case EROAcquisition:
+            {
+            iRequest = CreateRightsRequestL();
+            break;
+            }
+        case EJoinDomain:
+            {
+            iRequest = CreateJoinDomainRequestL();
+            break;
+            }
+        case ELeaveDomain:
+            {
+            iRequest = CreateLeaveDomainRequestL();
+            break;
+            }
+#ifdef RD_DRM_METERING
+        case EMeteringRequest:
+            {
+            iRequest = CreateMeteringReportRequestL();
+            break;
+            }
+#endif
+        default:
+            {
+            User::Leave( KErrArgument );
+            }
+        }
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::CreateDeviceHelloL()
+// ---------------------------------------------------------
+//
+CRoapMessage* CRoapEng::CreateDeviceHelloL()
+    {
+    LOGLIT( "CRoapEng::CreateDeviceHelloL" )
+    PERFORMANCE_LOGLIT( "Registration protocol started" )
+
+    RPointerArray<TDesC8> idArray;
+    CDeviceHello* req = CDeviceHello::NewL();
+    CleanupStack::PushL( req );
+
+    // Multi-PKI addition
+    CleanupResetAndDestroyPushL( idArray );
+    CreateDeviceIdHashArrayL( idArray );
+    for ( TInt i = 0; i < idArray.Count(); i++ )
+        {
+        req->iDeviceIdArray.AppendL( *idArray[i] );
+        }
+    CleanupStack::PopAndDestroy( &idArray );
+    // Multi-PKI
+
+#ifndef RD_DRM_METERING
+    req->iVersion.Copy( KRoapVersion ); // Version 1.0
+#else
+    req->iVersion.Copy( KRoapVersion11 );
+#endif
+    if ( iTrigger->iNonce )
+        {
+        req->iTriggerNonce = iTrigger->iNonce->AllocL();
+        }
+    CmlaCrypto::SupportedAlgorithmsL( req->iAlgorithms );
+    iSelectedAlgorithms = EOma;
+
+    CleanupStack::Pop( req );
+    return req;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::CreateRegistrationRequestL()
+// ---------------------------------------------------------
+//
+CRoapMessage* CRoapEng::CreateRegistrationRequestL()
+    {
+    LOGLIT( "CRoapEng::CreateRegistrationRequestL ->" )
+
+    __ASSERT_ALWAYS( iResponse, User::Invariant() );
+
+    CRegistrationReq* req = NULL;
+    CRIHello* resp = NULL;
+    RPointerArray<HBufC8> trustedRootArray;
+    HBufC8* temp = NULL;
+
+    resp = STATIC_CAST( CRIHello*, iResponse );
+    req = CRegistrationReq::NewL();
+    CleanupStack::PushL( req );
+    if ( resp->iSession )
+        {
+        req->iSession = resp->iSession->AllocL();
+        }
+    else
+        {
+        User::Leave( KErrRoapServerFatal );
+        }
+
+    req->iNonce.SetLength( KDeviceNonceLength );
+    TRandom::Random( req->iNonce );
+
+    req->iTime = GetDrmTimeL();
+
+    // store the nonce for DRM Time sync
+    iRegReqNonce = req->iNonce;
+
+    if ( iCertNeeded )
+        {
+        req->iCertificateChain = GetCertificateChainL();
+        if ( resp->iCertificateCaching )
+            {
+            iCertNeeded = EFalse;
+            }
+        }
+
+    // Send all our trusted roots to the RI
+    CleanupResetAndDestroyPushL( trustedRootArray );
+
+    LOGLIT( "  Getting trusted roots" )
+
+    iStorageClient->GetTrustedRootsL( trustedRootArray );
+
+    if ( !trustedRootArray.Count() )
+        {
+        // No trusted roots found!
+        LOGLIT( "  No trusted roots found!" )
+        User::Leave( KErrRoapDevice );
+        }
+    for ( TInt i = 0; i < trustedRootArray.Count(); i++ )
+        {
+        temp = trustedRootArray[i]->AllocLC();
+        req->iTrustedAuthorities.AppendL( temp );
+        CleanupStack::Pop( temp );
+        }
+
+    LOGLIT( "  Setting server info" )
+    if ( resp->iServerInfo && resp->iServerInfo->Size() )
+        {
+        req->iServerInfo = resp->iServerInfo->AllocL();
+        }
+
+    if ( iStoredRiContext )
+        {
+        LOGLIT( "  RI context available" )
+        req->iPeerKeyIdentifier = iStoredRiContext->RIID();
+
+        if ( iStoredRiContext->OCSPResponse().Count() && !iDeviceTimeError )
+            {
+            req->iOcspInfoStored = ETrue;
+            req->iOcspResponderKeyId = GetOCSPResponderKeyHashL();
+            }
+        }
+    if ( resp->iNeedDeviceDetails )
+        {
+        LOGLIT( "  Getting device details" )
+        GetDeviceDetailsL( req->iDeviceDetailsManufacturer,
+            req->iDeviceDetailsModel, req->iDeviceDetailsVersion );
+        }
+
+    if ( iTrigger->iNonce )
+        {
+        req->iTriggerNonce = iTrigger->iNonce->AllocL();
+        }
+
+    CleanupStack::PopAndDestroy( &trustedRootArray );
+    CleanupStack::Pop( req );
+
+    LOGLIT( "CRoapEng::CreateRegistrationRequestL <-" )
+
+    return req;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::CreateRightsRequestL()
+// ---------------------------------------------------------
+//
+CRoapMessage* CRoapEng::CreateRightsRequestL()
+    {
+    LOGLIT( "CRoapEng::CreateRightsRequestL" )
+    PERFORMANCE_LOGLIT( "RO acquisition protocol started" )
+
+    __ASSERT_ALWAYS( iStoredRiContext, User::Invariant() );
+
+    CRightsReq* req = NULL;
+    RPointerArray<HBufC8> ttIDs;
+    RPointerArray<HBufC8> cids;
+    HBufC8* temp = NULL;
+    TBuf8<SHA1_HASH> deviceId;
+
+    req = CRightsReq::NewL();
+    CleanupStack::PushL( req );
+
+    req->iNonce.SetLength( KDeviceNonceLength );
+    TRandom::Random( req->iNonce );
+
+    req->iTime = GetDrmTimeL();
+
+    iStorageClient->GetDevicePublicKeyHashL( deviceId );
+    delete iDeviceId;
+    iDeviceId = NULL;
+    iDeviceId = deviceId.AllocL();
+    req->iDeviceId = *iDeviceId;
+
+    req->iRiId.Copy( iTrigger->iRiId );
+
+    if ( !iRiSupportsCertCaching )
+        {
+        req->iCertificateChain = GetCertificateChainL();
+        }
+    if ( iTrigger->iDomainId )
+        {
+        req->iDomainId = iTrigger->iDomainId->AllocL();
+        }
+
+    for ( TInt i = 0; i < iTrigger->iRoIdList.Count(); i++ )
+        {
+        temp = iTrigger->iRoIdList[i]->AllocLC();
+        req->iRoIdList.AppendL( temp );
+        CleanupStack::Pop( temp );
+        }
+
+    if ( iStoredRiContext )
+        {
+        req->iPeerKeyIdentifier = iStoredRiContext->RIID();
+
+        if ( iStoredRiContext->OCSPResponse().Count() )
+            {
+            req->iOcspInfoStored = ETrue;
+            req->iOcspResponderKeyId = GetOCSPResponderKeyHashL();
+            }
+        }
+
+    CleanupResetAndDestroyPushL( cids );
+
+    CleanupResetAndDestroyPushL( ttIDs );
+
+    FetchTransactionIDL( ttIDs, cids );
+
+    for ( TInt i = 0; i < ttIDs.Count() && i < cids.Count(); i++ )
+        {
+        temp = ttIDs[i]->AllocLC();
+        req->iTransTrackIDs.AppendL( temp );
+        CleanupStack::Pop( temp );
+        temp = cids[i]->AllocLC();
+        req->iContentIDs.AppendL( temp );
+        CleanupStack::Pop( temp );
+        }
+
+    CleanupStack::PopAndDestroy( &ttIDs );
+    CleanupStack::PopAndDestroy( &cids );
+
+    if ( iTrigger->iNonce )
+        {
+        req->iTriggerNonce = iTrigger->iNonce->AllocL();
+        }
+
+    CleanupStack::Pop( req );
+    return req;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::CreateJoinDomainRequestL()
+// ---------------------------------------------------------
+//
+CRoapMessage* CRoapEng::CreateJoinDomainRequestL()
+    {
+    LOGLIT( "CRoapEng::CreateJoinDomainRequestL" )
+    PERFORMANCE_LOGLIT( "Join domain protocol started" )
+
+    __ASSERT_ALWAYS( iStoredRiContext, User::Invariant() );
+
+    CJoinDomainReq* req = NULL;
+    TBuf8<SHA1_HASH> deviceId;
+
+    req = CJoinDomainReq::NewL();
+    CleanupStack::PushL( req );
+
+    req->iNonce.SetLength( KDeviceNonceLength );
+    TRandom::Random( req->iNonce );
+
+    req->iTime = GetDrmTimeL();
+
+    iStorageClient->GetDevicePublicKeyHashL( deviceId );
+    delete iDeviceId;
+    iDeviceId = NULL;
+    iDeviceId = deviceId.AllocL();
+    req->iDeviceId = *iDeviceId;
+
+    req->iRiId.Copy( iTrigger->iRiId );
+
+    if ( !iRiSupportsCertCaching )
+        {
+        req->iCertificateChain = GetCertificateChainL();
+        }
+    if ( iTrigger->iDomainId )
+        {
+        req->iDomainId = iTrigger->iDomainId->AllocL();
+        iDomainId.Copy( *req->iDomainId );
+        }
+    else if ( iDomainId.Length() && iTrigger->iTriggerType
+        == ERoAcquisitionTrigger )
+        {
+        req->iDomainId = iDomainId.AllocL();
+        }
+    else
+        {
+        User::Leave( KErrRoapServerFatal );
+        }
+
+    if ( iStoredRiContext )
+        {
+        req->iPeerKeyIdentifier = iStoredRiContext->RIID();
+
+        if ( iStoredRiContext->OCSPResponse().Count() )
+            {
+            req->iOcspInfoStored = ETrue;
+            req->iOcspResponderKeyId = GetOCSPResponderKeyHashL();
+            }
+        }
+
+#ifdef _DISABLE_HASH_CHAIN_GENERATION
+    req->iHashChainSupport = EFalse;
+#endif
+
+    if ( iTrigger->iNonce )
+        {
+        req->iTriggerNonce = iTrigger->iNonce->AllocL();
+        }
+
+    CleanupStack::Pop( req );
+    return req;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::CreateLeaveDomainRequestL()
+// ---------------------------------------------------------
+//
+CRoapMessage* CRoapEng::CreateLeaveDomainRequestL()
+    {
+    LOGLIT( "CRoapEng::CreateLeaveDomainRequestL" )
+    PERFORMANCE_LOGLIT( "Leave domain protocol started" )
+
+    __ASSERT_ALWAYS( iStoredRiContext, User::Invariant() );
+
+    if ( !iTrigger->iDomainId )
+        {
+        User::Leave( KErrRoapServerFatal );
+        }
+    // delete Domain context before sending LeaveDomain req
+    TRAPD( ret, iStorageClient->DeleteDomainContextL( *iTrigger->iDomainId ));
+
+    CLeaveDomainReq* req = NULL;
+    TBuf8<SHA1_HASH> deviceId;
+
+    req = CLeaveDomainReq::NewL();
+    CleanupStack::PushL( req );
+
+    if ( ret == KErrNotFound )
+        {
+        req->iNotMember = ETrue;
+        }
+    else
+        {
+        req->iNotMember = EFalse;
+        User::LeaveIfError( ret );
+        }
+
+    req->iNonce.SetLength( KDeviceNonceLength );
+    TRandom::Random( req->iNonce );
+
+    req->iTime = GetDrmTimeL();
+
+    iStorageClient->GetDevicePublicKeyHashL( deviceId );
+    delete iDeviceId;
+    iDeviceId = NULL;
+    iDeviceId = deviceId.AllocL();
+    req->iDeviceId = *iDeviceId;
+
+    req->iRiId.Copy( iTrigger->iRiId );
+
+    if ( !iRiSupportsCertCaching )
+        {
+        req->iCertificateChain = GetCertificateChainL();
+        }
+    if ( iTrigger->iDomainId )
+        {
+        req->iDomainId = iTrigger->iDomainId->AllocL();
+        }
+
+    if ( iTrigger->iNonce )
+        {
+        req->iTriggerNonce = iTrigger->iNonce->AllocL();
+        }
+
+    CleanupStack::Pop( req );
+    return req;
+    }
+// ---------------------------------------------------------
+// CRoapEng::CreateMeteringReportRequestL()
+// ---------------------------------------------------------
+//
+CRoapMessage* CRoapEng::CreateMeteringReportRequestL()
+    {
+#ifndef RD_DRM_METERING
+    return NULL;
+#else
+
+    LOGLIT( "CRoapEng::CreateMeteringReportRequestL" )
+    PERFORMANCE_LOGLIT( "Metering report creation started" )
+
+    CMeteringReportReq* req = NULL;
+    TBuf8<SHA1_HASH> deviceId;
+    TBuf8<OmaCrypto::KMacSize> macKey;
+    TBool registered( EFalse );
+
+    req = CMeteringReportReq::NewL();
+    CleanupStack::PushL( req );
+    req->iAlgorithmInUse = iSelectedAlgorithms;
+    // check if we are not using OMA algorithms
+    // and update selected algorithm accordingly
+    GetRIContextL( registered, iTrigger->iRiId );
+    if ( registered && iStoredRiContext )
+        {
+        for ( TInt i = 0; i < iStoredRiContext->Algorithms().Count(); i++ )
+            {
+            if ( iStoredRiContext->Algorithms()[i]->CompareF( KCmlaIp1() )
+                == KErrNone )
+                {
+                // note currently assumed that only
+                // 1 of 7 ppossible algorithms used
+                req->iAlgorithmInUse = ECmlaIp1;
+                break;
+                }
+            }
+        }
+
+    // generate DeviceNonce
+    req->iNonce.SetLength( KDeviceNonceLength );
+    TRandom::Random( req->iNonce );
+
+    // generate MeteringNonce
+    req->iReportNonce.SetLength( KDeviceNonceLength );
+    TRandom::Random( req->iReportNonce );
+
+    // fetch secure time for request
+    req->iTime = GetDrmTimeL();
+
+    // insert DeviceId
+    iStorageClient->GetDevicePublicKeyHashL( deviceId );
+    delete iDeviceId;
+    iDeviceId = NULL;
+    iDeviceId = deviceId.AllocL();
+    req->iDeviceId = *iDeviceId;
+
+    // insert RiId
+    req->iRiId.Copy( iTrigger->iRiId );
+
+    // insert Certificate chain if needed
+    if ( !iRiSupportsCertCaching )
+        {
+        req->iCertificateChain = GetCertificateChainL();
+        }
+
+    // add trigger Nonce
+    if ( iTrigger->iNonce )
+        {
+        req->iTriggerNonce = iTrigger->iNonce->AllocL();
+        }
+
+    // Get from server encrypted metering report mac key as plain,
+    // MEK and MAC key as encypted, and hash of
+    // PKI public key used in encryition
+    req->iCipherValue = iStorageClient->GetMeteringDataL( req->iRiId, macKey,
+        req->iEncKeyHash, req->iEncryptedMekAndMak );
+
+    // calculate mac over <encryptedMeteringReport>
+    req->InsertMacL( macKey );
+
+    CleanupStack::Pop( req );
+    return req;
+
+#endif //RD_DRM_METERING
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::HandleRoapResponseL()
+// ---------------------------------------------------------
+//
+void CRoapEng::HandleRoapResponseL( const TDesC8& aXmlResponse )
+    {
+    LOGLIT( "CRoapEng::HandleRoapMessageL" )
+
+    delete iResponse;
+    iResponse = NULL;
+
+    switch ( iReqMessage )
+        {
+        case EDeviceHello:
+            {
+            HandleRIHelloPduL( aXmlResponse );
+            break;
+            }
+        case ERegistration:
+            {
+            HandleReqResponsePduL( aXmlResponse );
+            break;
+            }
+        case EROAcquisition:
+            {
+            HandleRightsResponsePduL( aXmlResponse, EFalse );
+            break;
+            }
+        case EJoinDomain:
+            {
+            HandleJoinDomainResponsePduL( aXmlResponse );
+            break;
+            }
+        case ELeaveDomain:
+            {
+            HandleLeaveDomainResponsePduL( aXmlResponse );
+            break;
+            }
+#ifdef RD_DRM_METERING
+        case EMeteringRequest:
+            {
+            HandleMeteringReportResponsePduL( aXmlResponse );
+            break;
+            }
+#endif
+        default:
+            {
+            User::Leave( KErrArgument );
+            }
+        }
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::HandleRIHelloPduL()
+// ---------------------------------------------------------
+//
+void CRoapEng::HandleRIHelloPduL( const TDesC8& aRiHello )
+    {
+    LOGLIT( "CRoapEng::HandleRIHelloPduL" )
+
+    CRIHello* resp = NULL;
+    HBufC8* temp = NULL;
+
+    resp = iParser->ParseRIHelloL( aRiHello );
+    iRoapStatus = resp->iStatus;
+    iResponse = resp;
+    if ( iRoapStatus == ESuccess )
+        {
+        iCertNeeded = ETrue;
+        iRiSupportsCertCaching = EFalse;
+
+        if ( resp->iPeerKeyIdentifier )
+            {
+            iRiSupportsCertCaching = ETrue;
+            if ( resp->iPeerKeyId.Length() )
+                {
+                if ( resp->iPeerKeyId.CompareF( *iDeviceId ) == KErrNone )
+                    {
+                    iCertNeeded = EFalse;
+                    }
+                }
+            else
+                {
+                iCertNeeded = EFalse;
+                }
+            }
+        else if ( resp->iCertificateCaching )
+            {
+            iRiSupportsCertCaching = ETrue;
+            }
+
+        if ( resp->iAlgorithms.Count() )
+            {
+            iRiAlgorithms.ResetAndDestroy();
+            for ( TInt i = 0; i < resp->iAlgorithms.Count(); i++ )
+                {
+                if ( resp->iAlgorithms[i]->CompareF( KCmlaIp1() ) == KErrNone )
+                    {
+                    iSelectedAlgorithms = ECmlaIp1;
+                    }
+                temp = resp->iAlgorithms[i]->AllocLC();
+                iRiAlgorithms.AppendL( temp );
+                CleanupStack::Pop( temp );
+                }
+            }
+        iRiId.Copy( resp->iRiId );
+        iRiVersion.Copy( resp->iSelectedVersion );
+
+        /***
+         This is needed when the multiple PKIs are supported.
+         ***/
+        if ( resp->iTrustedAuthorities.Count() )
+            {
+            // select the first matching root from the list
+            LOGLIT( "Choose the first matching trust anchor" )
+            iStorageClient->SelectTrustedRootL( resp->iTrustedAuthorities,
+                iSelectedRoot );
+            LOGLIT( "The trust anchor selected" )
+            DETAILLOGHEX( iSelectedRoot.Ptr(), iSelectedRoot.Length() )
+            }
+        else
+            {
+            if ( iStoredRiContext && iStoredRiContext->RIID() == iRiId )
+                {
+                if ( iSelectedRoot != iStoredRiContext->SelectedDeviceRoot() )
+                    {
+                    DETAILLOGLIT( "Changing trusted root to that of saved RI context" )
+                    DETAILLOGLIT( "old root" )
+                    DETAILLOGHEX( iSelectedRoot.Ptr(), iSelectedRoot.Length() )
+
+                    iSelectedRoot = iStoredRiContext->SelectedDeviceRoot();
+                    iStorageClient->SelectTrustedRootL( iSelectedRoot );
+                    }
+                DETAILLOGLIT( "Using trusted root of saved RI context" )
+                DETAILLOGHEX( iSelectedRoot.Ptr(), iSelectedRoot.Length() )
+                }
+            else
+                {
+                DETAILLOGLIT( "Using default trusted root" )
+                iSelectedRoot = KNullDesC8;
+                iStorageClient->SelectTrustedRootL( iSelectedRoot );
+                }
+            }
+
+        iSigner->AddRequestL( aRiHello );
+        }
+    else if ( resp->iErrorUrl )
+        {
+        if ( iObserver )
+            {
+            iObserver->ErrorUrlL( *resp->iErrorUrl );
+            }
+        }
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::HandleReqResponsePduL()
+// ---------------------------------------------------------
+//
+void CRoapEng::HandleReqResponsePduL( const TDesC8& aRegResp )
+    {
+    LOGLIT( "CRoapEng::HandleReqResponsePduL" )
+
+    CRegistrationResp* resp = NULL;
+    CDRMRIContext* context = NULL;
+    CX509Certificate* cert = NULL;
+    TTime riExpiry;
+    TBool status = EFalse;
+    TUint8 riCertCaching = EFalse;
+
+    resp = iParser->ParseRegistrationRespL( aRegResp );
+    iRoapStatus = resp->iStatus;
+    iResponse = resp;
+    if ( iRoapStatus == ESuccess )
+        {
+        if ( resp->iOcspResponse.Count() > 0 )
+            {
+            // adjust DRM Time according to OCSP response
+            // All needed verifications done in server side
+            TBool deviceTimeUpdated( EFalse );
+            if ( resp->iCertificateChain.Count() > 0 )
+                {
+                deviceTimeUpdated = iStorageClient->UpdateDrmTimeL(
+                    resp->iCertificateChain, resp->iOcspResponse,
+                    iRegReqNonce );
+                }
+            else if ( iStoredRiContext )
+                {
+                deviceTimeUpdated = iStorageClient->UpdateDrmTimeL(
+                    iStoredRiContext->CertificateChain(),
+                    resp->iOcspResponse, iRegReqNonce );
+                }
+            if ( deviceTimeUpdated )
+                {
+                LOGLIT( "drm time updated" )
+                iDeviceTimeError = EFalse;
+                }
+            }
+
+        if ( !iStoredRiContext || ( resp->iCertificateChain.Count()
+            && resp->iOcspResponse.Count() ) )
+            {
+            status = VerifyCertificateChainL( resp->iCertificateChain,
+                resp->iOcspResponse );
+            if ( !status )
+                {
+                LOGLIT( "Certificate chain validation failed" )
+                User::Leave( KErrRoapServerFatal );
+                }
+            status = ValidateRiIdL( iRiId, *resp->iCertificateChain[0] );
+            if ( !status )
+                {
+                LOGLIT( "RI ID validation failed" )
+                User::Leave( KErrRoapServerFatal );
+                }
+            }
+
+        if ( iStoredRiContext )
+            {
+            // if we have already stored certificates -> use those.
+            status = VerifySignatureL( aRegResp, *resp->iSignature,
+                iStoredRiContext->CertificateChain() );
+            }
+        else
+            {
+            // otherwise use the received certificates
+            status = VerifySignatureL( aRegResp, *resp->iSignature,
+                resp->iCertificateChain );
+            }
+
+        if ( !status )
+            {
+            LOGLIT( "Signature verification failed" )
+            User::Leave( KErrRoapServerFatal );
+            }
+
+        if ( resp->iCertificateChain.Count() )
+            {
+            // Validate RI certificate
+            cert = CX509Certificate::NewLC( *resp->iCertificateChain[0] );
+
+            status = ValidateRiCertificateL( cert );
+            if ( !status )
+                {
+                User::LeaveIfError( KErrRoapServerFatal );
+                }
+
+            riExpiry = cert->ValidityPeriod().Finish();
+
+            iRiSupportsCertCaching ? riCertCaching = ETrue : riCertCaching
+                = EFalse;
+
+            context = CDRMRIContext::NewLC( iRiId, *iRiAlias, iRiVersion,
+                iRiAlgorithms, resp->iWhiteList, *resp->iRiUrl, riExpiry,
+                resp->iCertificateChain, resp->iOcspResponse, riCertCaching,
+                iSelectedRoot, ETrue );
+
+            iStorageClient->AddRIContextL( *context );
+            delete iStoredRiContext;
+            iStoredRiContext = context;
+            CleanupStack::Pop( context );
+            CleanupStack::PopAndDestroy( cert );
+            }
+        }
+    else
+        {
+        if ( resp->iErrorUrl )
+            {
+            if ( iObserver )
+                {
+                iObserver->ErrorUrlL( *resp->iErrorUrl );
+                }
+            }
+        iSigner->ResetResponses();
+        }
+
+    PERFORMANCE_LOGLIT( "Registration protocol completed" )
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::HandleRightsResponseL()
+// ---------------------------------------------------------
+//
+void CRoapEng::HandleRightsResponsePduL(
+    const TDesC8& aRightsResp,
+    TBool aOnePass )
+    {
+    LOGLIT( "CRoapEng::HandleRightsResponsePduL" )
+
+    CRightsResp* resp = NULL;
+    TBool status = EFalse;
+
+    resp = iParser->ParseRightsRespL( aRightsResp );
+
+    CleanupStack::PushL( resp );
+
+    if ( resp->iStatus == ESuccess )
+        {
+        if ( !aOnePass )
+            {
+            // 2-pass protocol
+            __ASSERT_ALWAYS( iStoredRiContext, User::Invariant() );
+
+            CRightsReq* request = NULL;
+            request = STATIC_CAST( CRightsReq*, iRequest );
+            if ( resp->iDeviceId.CompareF( request->iDeviceId ) != KErrNone
+                || resp->iRiId.CompareF( request->iRiId ) != KErrNone
+                || resp->iNonce->CompareF( request->iNonce ) != KErrNone )
+                {
+                User::Leave( KErrRoapServerFatal );
+                }
+            }
+        else
+            {
+            LOGLIT( "1-pass ROAP" )
+            // 1-pass protocol
+            TBool registered = EFalse;
+            GetRIContextL( registered, resp->iRiId );
+            if ( !registered )
+                {
+                // Recoverable error by re-registering the device
+                // (after receiving user consent or iv device belongs to whiteliust)
+                LOGLIT( "Device not registered to RI" )
+                User::Leave( KErrRoapNotRegistered );
+                }
+            if ( resp->iDeviceId.CompareF( *iDeviceId ) != KErrNone )
+                {
+                // Unrecoverable error
+                LOGLIT( "Device ID mismatch!" )
+                User::Leave( KErrRoapServerFatal );
+                }
+            }
+
+        if ( !iStoredRiContext || ( resp->iCertificateChain.Count()
+            && resp->iOcspResponse.Count() ) )
+            {
+            status = VerifyCertificateChainL( resp->iCertificateChain,
+                resp->iOcspResponse );
+            if ( !status )
+                {
+                LOGLIT( "Certificate chain validation failed" )
+                User::Leave( KErrRoapServerFatal );
+                }
+            status = ValidateRiIdL( resp->iRiId, *resp->iCertificateChain[0] );
+            if ( !status )
+                {
+                LOGLIT( "RI ID validation failed" )
+                User::Leave( KErrRoapServerFatal );
+                }
+            }
+
+        status = VerifySignatureL( aRightsResp, *resp->iSignature,
+            iStoredRiContext->CertificateChain() );
+        if ( !status )
+            {
+            LOGLIT( "Signature verification failed" )
+            User::Leave( KErrRoapServerFatal );
+            }
+
+        iReturnedROs.ResetAndDestroy();
+        TRAPD( r, iRoParser->ParseAndStoreL( aRightsResp, iReturnedROs ));
+
+        if ( r == KErrRightsServerDomainNotRegistered )
+            {
+            // perform implicit Join Domain
+            LOGLIT( "Domain RO received - Not joined" )
+            LOGLIT( "Perform impicit Join Domain before storing the RO" )
+
+            HBufC8* domainID = NULL;
+
+            domainID = iRoParser->GetDomainIdL( aRightsResp );
+
+            if ( domainID && domainID->Length() <= KDomainIdLength )
+                {
+                iDomainId.Copy( *domainID );
+                delete domainID;
+                domainID = NULL;
+                }
+            else
+                {
+                LOGLIT( "No Domain ID available!" )
+                User::Leave( KErrRoapServerFatal );
+                }
+
+            delete iDomainRightsResp;
+            iDomainRightsResp = NULL;
+            iDomainRightsResp = aRightsResp.AllocL();
+            iImplicitJoinDomain = ETrue;
+            }
+        else
+            {
+            User::LeaveIfError( r );
+
+            if ( !aOnePass )
+                {
+                if ( iObserver )
+                    {
+                    iObserver->RightsObjectDetailsL( iReturnedROs ); // pass RO details to UI
+                    }
+                }
+            }
+
+            TRAP( r, InsertTransactionIDL( resp->iTransTrackIDs, resp->iContentIDs ) );
+            TRAP( r, InsertDomainRosL() );
+
+        // Device DRM Time is insecure, but server thinks that the time is correct
+        // -> Set DRM Time as secure
+        if ( !iSecureTime )
+            {
+            SetDrmTimeSecureL();
+            }
+        }
+    else
+        {
+        if ( resp->iErrorUrl )
+            {
+            if ( iObserver )
+                {
+                iObserver->ErrorUrlL( *resp->iErrorUrl );
+                }
+            }
+        iSigner->ResetResponses();
+        }
+
+    CleanupStack::Pop( resp );
+
+    if ( !aOnePass )
+        {
+        iRoapStatus = resp->iStatus;
+        iResponse = resp;
+        }
+
+    PERFORMANCE_LOGLIT( "RO acquisition protocol completed" )
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::HandleJoinDomainResponseL()
+// ---------------------------------------------------------
+//
+void CRoapEng::HandleJoinDomainResponsePduL( const TDesC8& aJoinResp )
+    {
+    LOGLIT( "CRoapEng::HandleJoinDomainResponsePduL" )
+
+    __ASSERT_ALWAYS( iStoredRiContext, User::Invariant() );
+
+    CJoinDomainResp* resp = NULL;
+    CDRMDomainContext* context = NULL;
+    RPointerArray<HBufC8> domainKeyElements;
+    TBool status = EFalse;
+
+    CleanupResetAndDestroyPushL( domainKeyElements );
+
+    resp = iParser->ParseJoinDomainRespL( aJoinResp, domainKeyElements );
+
+    iResponse = resp;
+    iRoapStatus = resp->iStatus;
+
+    if ( iRoapStatus == ESuccess )
+        {
+        if ( resp->iDomainKeyRiId != resp->iRiId )
+            {
+            LOGLIT( "resp->iDomainKeyRiId != resp->iRiId" )
+            User::Leave( KErrRoapServerFatal );
+            }
+
+        if ( !iStoredRiContext || ( resp->iCertificateChain.Count()
+            && resp->iOcspResponse.Count() ) )
+            {
+            status = VerifyCertificateChainL( resp->iCertificateChain,
+                resp->iOcspResponse );
+            if ( !status )
+                {
+                LOGLIT( "Certificate chain validation failed" )
+                User::Leave( KErrRoapServerFatal );
+                }
+            status = ValidateRiIdL( resp->iRiId, *resp->iCertificateChain[0] );
+            if ( !status )
+                {
+                LOGLIT( "RI ID validation failed" )
+                User::Leave( KErrRoapServerFatal );
+                }
+            }
+
+        status = VerifySignatureL( aJoinResp, *resp->iSignature,
+            iStoredRiContext->CertificateChain() );
+        if ( !status )
+            {
+            LOGLIT( "Signature verification failed" )
+            User::Leave( KErrRoapServerFatal );
+            }
+
+        if ( resp->iDomainKeys.Count() > 1 && resp->iDomainKeyIDs.Count() > 1
+            && resp->iDomainKeys.Count() == resp->iDomainKeyIDs.Count() )
+            {
+            // Sort domain keys by generation (000 generation is first)
+            TLex8 lex;
+            TInt generation = 0;
+            RArray<TInt> generations;
+            CleanupClosePushL( generations );
+
+            for ( TInt i = 0; i < resp->iDomainKeyIDs.Count(); i++ )
+                {
+                lex = resp->iDomainKeyIDs[i]->Right( KDomainGenerationLength );
+                lex.Val( generation );
+                generations.AppendL( generation );
+                }
+
+            SortArrays( resp->iDomainKeys, resp->iMacs, domainKeyElements,
+                generations );
+
+            CleanupStack::PopAndDestroy( &generations );
+            }
+
+        if ( !resp->iDomainKeys.Count() )
+            {
+            LOGLIT( "No valid domain keys present!" )
+            User::Leave( KErrRoapServerFatal );
+            }
+
+#ifdef _DISABLE_HASH_CHAIN_GENERATION
+        resp->iHashChainSupport = EFalse;
+#endif
+
+        if ( resp->iHashChainSupport )
+            {
+            if ( resp->iDomainKeys.Count() > 1 )
+                {
+                LOGLIT( "More than one Domain key present, hash chain key generation is supported!" )
+                // Might be KErrRoapServerFatal server error
+                }
+            }
+
+        context = CDRMDomainContext::NewLC( iDomainId,
+            resp->iDomainExpiration, resp->iHashChainSupport,
+            resp->iDomainKeys, resp->iRiId,
+            iStoredRiContext->RightsIssuerURL() );
+        iStorageClient->AddDomainContextL( *context, resp->iMacs,
+            domainKeyElements, resp->iTransportScheme );
+        iDomainId.SetLength( 0 );
+        CleanupStack::PopAndDestroy( context );
+
+        if ( iDomainRightsResp )
+            {
+            // It's a implicit Join Domain case
+            // We still need to store the domain RO
+            StoreDomainRightsL();
+            }
+
+        // Device DRM Time is insecure, but server thinks that the time is correct
+        // -> Set DRM Time as secure
+        if ( !iSecureTime )
+            {
+            SetDrmTimeSecureL();
+            }
+        }
+    else
+        {
+        if ( resp->iErrorUrl )
+            {
+            if ( iObserver )
+                {
+                iObserver->ErrorUrlL( *resp->iErrorUrl );
+                }
+            }
+        iSigner->ResetResponses();
+        }
+    CleanupStack::PopAndDestroy( &domainKeyElements );
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::HandleLeaveDomainResponseL()
+// ---------------------------------------------------------
+//
+void CRoapEng::HandleLeaveDomainResponsePduL( const TDesC8& aLeaveResp )
+    {
+    LOGLIT( "CRoapEng::HandleLeaveDomainResponsePduL" )
+
+    __ASSERT_ALWAYS( iStoredRiContext, User::Invariant() );
+
+    CLeaveDomainResp* resp = NULL;
+    resp = iParser->ParseLeaveDomainRespL( aLeaveResp );
+    iRoapStatus = resp->iStatus;
+    iResponse = resp;
+    if ( iRoapStatus == ESuccess )
+        {
+
+        }
+    else if ( resp->iErrorUrl )
+        {
+        if ( iObserver )
+            {
+            iObserver->ErrorUrlL( *resp->iErrorUrl );
+            }
+        }
+
+    PERFORMANCE_LOGLIT( "Leave domain protocol completed" )
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::HandleMeteringReportResponsePduL()
+// ---------------------------------------------------------
+//
+#ifndef RD_DRM_METERING
+void CRoapEng::HandleMeteringReportResponsePduL( const TDesC8& /*aMeteringResp*/)
+    {
+    }
+#else
+void CRoapEng::HandleMeteringReportResponsePduL( const TDesC8& aMeteringResp )
+    {
+    LOGLIT( "CRoapEng::HandleMeteringReportResponsePduL" )
+    __ASSERT_ALWAYS( iStoredRiContext, User::Invariant() );
+
+    CMeteringResp* resp = NULL;
+    CMeteringReportReq* request = NULL;
+
+    resp = iParser->ParseMeteringRespL( aMeteringResp );
+
+    request = static_cast<CMeteringReportReq*> ( iRequest );
+
+    iRoapStatus = resp->iStatus;
+    iResponse = resp;
+    if ( iRoapStatus == ESuccess )
+        {
+        if ( resp->iDeviceId.CompareF( *iDeviceId ) != KErrNone
+            || resp->iDeviceNonce->CompareF( request->iNonce ) != KErrNone )
+            {
+            LOGLIT( "Mismatch in deviceId or in nonce" )
+            LOGLIT( "Observed DeviceId" )
+            LOGHEX( resp->iDeviceId.Ptr(), resp->iDeviceId.Length() )
+            LOGLIT( "Expected DeviceId" )
+            LOGHEX( request->iDeviceId.Ptr(), request->iDeviceId.Length() )
+            LOGLIT( "Observed nonce" )
+            LOGHEX( resp->iDeviceNonce->Ptr(), resp->iDeviceNonce->Length() )
+            LOGLIT( "Expected nonce" )
+            User::Leave( KErrRoapServerFatal );
+            }
+
+        if ( !iStoredRiContext || ( resp->iCertificateChain.Count()
+            && resp->iOcspResponse.Count() ) )
+            {
+            if ( !VerifyCertificateChainL( resp->iCertificateChain,
+                resp->iOcspResponse ) )
+                {
+                LOGLIT( "Certificate chain validation failed" )
+                User::Leave( KErrRoapServerFatal );
+                }
+            if ( !ValidateRiIdL( resp->iRiId, *resp->iCertificateChain[0] ) )
+                {
+                LOGLIT( "RI ID validation failed" )
+                User::Leave( KErrRoapServerFatal );
+                }
+            }
+
+        if ( !VerifySignatureL( aMeteringResp, *resp->iSignature,
+            iStoredRiContext->CertificateChain() ) )
+            {
+            LOGLIT( "Signature verification failed" )
+            User::Leave( KErrRoapServerFatal );
+            }
+
+        // Everything is fine, we can delete metering data
+        iStorageClient->DeleteMeteringDataL( resp->iRiId );
+
+        // notify PostResponseUrl for iObserver
+        if ( resp->iPrUrl )
+            {
+            HBufC8* prUrl( resp->iPrUrl );
+            LOGLIT( "PrUrl" )
+            LOGHEX( prUrl->Ptr(), prUrl->Length() )
+            if ( iObserver )
+                {
+                iObserver->PostResponseUrlL( *prUrl );
+                LOGLIT( "Notified observer with PostResponseUrl" )
+                }
+            else
+                {
+                LOGLIT( "Warning no observer for PostResponseUrl" )
+                }
+            }
+        }
+    return;
+    }
+#endif //RD_DRM_METERING
+// ---------------------------------------------------------
+// CRoapEng::HandleMultipartL()
+// ---------------------------------------------------------
+//
+void CRoapEng::HandleMultipartL()
+    {
+    LOGLIT( "CRoapEng::HandleMultipartL" )
+
+    TInt rightsErr( KErrNone );
+    TInt err( KErrNone );
+    TInt docErr( KErrNone );
+    TDataType type = TDataType();
+    TBool mmcAllowed( EFalse );
+    HBufC* contentName( NULL );
+    RBuf newPath;
+    TUid app_uid;
+    RBuf rootPath;
+
+    TRAP( rightsErr, HandleRoapResponseL( iRoapResp->ProtocolUnit() ) );
+
+    newPath.CreateL( KMaxFileName );
+    CleanupClosePushL( newPath  );
+
+    CDocumentHandler* docHandler( CDocumentHandler::NewLC() );
+
+    if ( iRoapResp->DcfFileName().Left( 1 ).CompareF( _L ("e") ) == 0 )
+        {
+        mmcAllowed = ETrue;
+        }
+
+    RFs fs;
+    User::LeaveIfError( fs.Connect() );
+    CleanupClosePushL( fs );
+
+#ifndef RD_MULTIPLE_DRIVE
+    rootPath.CreateL( mmcAllowed ?
+        PathInfo::MemoryCardRootPath() :
+        PathInfo::PhoneMemoryRootPath() );
+
+#else //RD_MULTIPLE_DRIVE
+    _LIT( KSysDriveRoot, "_:\\Data\\");
+    _LIT( KMassDriveRoot, "_:\\" );
+    TInt driveNumber( -1 );
+    TChar driveLetter;
+
+    if ( mmcAllowed )
+        {
+        // Set root path to memory card root
+        rootPath.CreateL( KMassDriveRoot() );
+        DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, driveNumber );
+        }
+    else
+        {
+        // Set root path to system root
+        rootPath.CreateL( KSysDriveRoot() );
+        DriveInfo::GetDefaultDrive( DriveInfo::EDefaultSystem, driveNumber );
+        }
+    fs.DriveToChar( driveNumber, driveLetter );
+    __ASSERT_ALWAYS( rootPath.Length()>0, User::Invariant() );
+    rootPath[0] = (TUint)driveLetter;
+
+
+#endif
+    CleanupClosePushL( rootPath );
+
+    iRoapResp->GetContentNameLC( contentName );
+
+    if ( contentName && contentName->Length()
+        && fs.IsValidName( *contentName ) )
+        {
+        if ( !rightsErr )
+            {
+            TRAP( err, docErr = docHandler->SilentMoveL( iRoapResp->DcfFileName(),
+                    *contentName, rootPath, type, KEntryAttNormal ) );
+            }
+        else
+            {
+            // when an error occured during RO storing -> show "saved to" note
+            TRAP( err, docErr = docHandler->MoveL( iRoapResp->DcfFileName(),
+                    *contentName, type, KEntryAttNormal ) );
+            }
+
+        }
+    else
+        {
+        if ( !rightsErr )
+            {
+            // use the default name
+            User::LeaveIfError( docHandler->SilentMoveL(
+                iRoapResp->DcfFileName(), KNullDesC(), rootPath, type,
+                KEntryAttNormal ) );
+            }
+        else
+            {
+            // when an error occured during RO storing -> show "saved to" note
+            docHandler->MoveL( iRoapResp->DcfFileName(), KNullDesC(), type,
+                KEntryAttNormal );
+            }
+        }
+
+    if ( err || docErr )
+        {
+        if ( !rightsErr )
+            {
+            // use the default name
+            User::LeaveIfError( docHandler->SilentMoveL(
+                iRoapResp->DcfFileName(), KNullDesC(), rootPath, type,
+                KEntryAttNormal ) );
+            }
+        else
+            {
+            // when an error occured during RO storing -> show "saved to" note
+            docHandler->MoveL( iRoapResp->DcfFileName(), KNullDesC(), type,
+                KEntryAttNormal );
+            }
+        }
+    User::LeaveIfError( rightsErr );
+
+    User::LeaveIfError( docHandler->GetPath( newPath ) );
+    User::LeaveIfError( docHandler->HandlerAppUid( app_uid ) );
+
+    if ( iObserver )
+        {
+        iObserver->ContentDetailsL( newPath, type.Des8(), app_uid );
+        }
+
+    CleanupStack::PopAndDestroy( contentName );
+    CleanupStack::PopAndDestroy( &rootPath );
+
+    CleanupStack::PopAndDestroy( &fs );
+    CleanupStack::PopAndDestroy( docHandler );
+    CleanupStack::PopAndDestroy( &newPath );
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::SignMessageL()
+// ---------------------------------------------------------
+//
+HBufC8* CRoapEng::SignMessageL( const TDesC8& aMessage ) const
+    {
+    LOGLIT( "CRoapEng::SignMessageL" )
+    HBufC8* r = NULL;
+
+    if ( iReqMessage == EDeviceHello )
+        {
+        // Device Hello always resets signing chain!!
+        iSigner->ResetRequests();
+        iSigner->ResetResponses();
+        // Device Hello or RI Hello is not signed
+        iSigner->AddRequestL( aMessage );
+        r = aMessage.AllocL();
+        }
+    else
+        {
+        r = iSigner->SignAndAddRequestL( aMessage );
+        iSigner->ResetRequests();
+
+        if ( iReqMessage == ERegistration )
+            {
+            // Add signed request to the signer for verifying signature on
+            // response (for Registration protocol only).
+            iSigner->AddResponseL( *r );
+            }
+        }
+    return r;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::VerifySignatureL()
+// ---------------------------------------------------------
+//
+TBool CRoapEng::VerifySignatureL(
+    const TDesC8& aMessage,
+    const TDesC8& aSignature,
+    const RPointerArray<HBufC8>& aCertificateChain ) const
+    {
+    LOGLIT( "CRoapEng::VerifySignatureL" )
+
+    TBool isValid = ETrue;
+
+    if ( iReqMessage != EDeviceHello && iReqMessage != ELeaveDomain )
+        {
+        // RI Hello and Leave Domain resp are not signed
+        isValid = iSigner->VerifyAndAddResponseL( aMessage, aSignature,
+            aCertificateChain );
+        iSigner->ResetResponses();
+        }
+
+#ifdef _DISABLE_SIGNATURE_CHECK
+    isValid = ETrue;
+#endif
+    return isValid;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::VerifyTriggerSignatureL()
+// ---------------------------------------------------------
+//
+TBool CRoapEng::VerifyTriggerSignatureL(
+    const TDesC8& aXmlTrigger,
+    const CRoapTrigger& aTrigger ) const
+    {
+    LOGLIT( "CRoapEng::ValidateTriggerSignatureL" )
+
+    TPtrC8 element( KNullDesC8 );
+    TPtrC8 signedInfo( KNullDesC8 );
+    CDRMDomainContext* context( NULL );
+    HBufC8* domainKey( NULL );
+    HBufC8* unwrappedMacKey( NULL );
+    CSHA1* digest( NULL );
+    CMessageDigest* hMac( NULL );
+    TBool result( ETrue );
+    TInt pos( 0 );
+    TInt generation( 0 );
+
+    element.Set( iParser->ExtractElement( aXmlTrigger, KLeaveDomainElement(),
+        pos ) );
+    pos = 0;
+    signedInfo.Set( iParser->ExtractElement( aXmlTrigger,
+        KSignedInfoElement(), pos ) );
+
+    if ( !element.Length() || !signedInfo.Length() || !aTrigger.iEncKey
+        || !aTrigger.iSignature )
+        {
+        User::Leave( KErrRoapServerFatal );
+        }
+
+    context = iStorageClient->GetDomainContextL( *aTrigger.iDomainId );
+
+    if ( !context )
+        {
+        // we are not member of the domain
+        LOGLIT( "No DomainContext for the domain -> Cannot verify Trigger signature" )
+        return ETrue;
+        }
+    CleanupStack::PushL( context );
+
+    TLex8 lex( aTrigger.iDomainId->Right( KDomainGenerationLength ) );
+    lex.Val( generation );
+    domainKey = context->DomainKeyL( generation );
+    User::LeaveIfNull( domainKey );
+    CleanupStack::PushL( domainKey );
+
+    unwrappedMacKey = OmaCrypto::AesUnwrapL( *domainKey, *aTrigger.iEncKey );
+    CleanupStack::PopAndDestroy( domainKey );
+    CleanupStack::PushL( unwrappedMacKey );
+
+    // hash the leaveDomain element
+    digest = CSHA1::NewL();
+    CleanupStack::PushL( digest );
+    digest->Update( element );
+
+    if ( digest->Final().CompareF( *aTrigger.iDigestValue ) )
+        {
+        LOGLIT( "Reference Validation failed!" )
+        result = EFalse;
+        }
+
+    if ( result )
+        {
+        // calculate HMAC signature
+        hMac = CMessageDigestFactory::NewHMACLC( CMessageDigest::ESHA1,
+            *unwrappedMacKey );
+        hMac->Update( signedInfo );
+
+        if ( hMac->Final().CompareF( *aTrigger.iSignature ) != 0 )
+            {
+            LOGLIT( "Signature Validation failed!" )
+            result = EFalse;
+            }
+        CleanupStack::PopAndDestroy( hMac );
+        }
+
+    CleanupStack::PopAndDestroy( digest );
+    CleanupStack::PopAndDestroy( unwrappedMacKey );
+    CleanupStack::PopAndDestroy( context );
+
+    if ( !result )
+        {
+        LOGLIT( "Trigger signature check failed!" )
+        }
+
+#ifdef _DISABLE_SIGNATURE_CHECK
+    result = ETrue;
+#endif
+    return result;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::VerifyCertificateChainL()
+// ---------------------------------------------------------
+//
+TBool CRoapEng::VerifyCertificateChainL(
+    const RPointerArray<HBufC8>& aCertificateChain,
+    const RPointerArray<HBufC8>& aOcspResponses ) const
+    {
+    LOGLIT( "CRoapEng::VerifyCertificateChainL" )
+
+    CX509Certificate* cert = NULL;
+    CX509Certificate* signingCert = NULL;
+    CX509Certificate* riCA = NULL;
+    TBool result = EFalse;
+    RPointerArray<HBufC8> serialNums;
+    CX500DistinguishedName* rootDistName = NULL;
+    HBufC* rootName = NULL;
+    HBufC8* rootCert = NULL;
+    HBufC8* temp = NULL;
+
+    if ( !aCertificateChain.Count() || !aOcspResponses.Count() )
+        {
+        User::Leave( KErrRoapServerFatal );
+        }
+
+    // Get the last cert from the chain. It is signed by some of our trusted anchor
+    riCA = CX509Certificate::NewLC(
+        *( aCertificateChain[aCertificateChain.Count() - 1] ) );
+    rootDistName = CX500DistinguishedName::NewLC( riCA->IssuerName() );
+    rootName = rootDistName->DisplayNameL();
+    CleanupStack::PushL( rootName );
+    // Get the correct root cert for validating the whole chain
+    rootCert = iStorageClient->GetRootCertificateL( *rootName );
+    CleanupStack::PopAndDestroy( rootName );
+    CleanupStack::PopAndDestroy( rootDistName );
+    CleanupStack::PopAndDestroy( riCA );
+
+    if ( !rootCert )
+        {
+        LOGLIT( "No root certificate present!" )
+        LOGLIT( "Certificate chain verification failed." )
+        return EFalse;
+        }
+    CleanupStack::PushL( rootCert );
+
+    CleanupResetAndDestroyPushL( serialNums );
+
+    for ( TInt i = 0; i < aCertificateChain.Count(); i++ )
+        {
+        cert = CX509Certificate::NewLC( *aCertificateChain[i] );
+        temp = cert->SerialNumber().AllocLC();
+        serialNums.AppendL( temp );
+        CleanupStack::Pop( temp );
+        if ( aCertificateChain.Count() - 1 == i )
+            {
+            // signingCert = Trusted root cert
+            signingCert = CX509Certificate::NewLC( *rootCert );
+            }
+        else
+            {
+            signingCert = CX509Certificate::NewLC( *aCertificateChain[i + 1] );
+            }
+        result = cert->VerifySignatureL( signingCert->PublicKey().KeyData() );
+
+#ifdef _DISABLE_CERT_CHECK
+        result = ETrue;
+#endif
+        CleanupStack::PopAndDestroy( signingCert );
+        CleanupStack::PopAndDestroy( cert );
+        if ( !result )
+            {
+            LOGLIT( "Certificate chain verification failed." )
+            CleanupStack::PopAndDestroy( 2, rootCert );
+            return result;
+            }
+        }
+
+    if ( aCertificateChain.Count() >= 2 )
+        {
+        result = VerifyOcspResponsesL( aOcspResponses, *aCertificateChain[1],
+            serialNums );
+
+        if ( !result )
+            {
+            // CoreMedia's OCSP responder cert is signed by the root -> against CMLA spec
+            LOGLIT( "Try to verify OCSP response cert using root cert" )
+            result = VerifyOcspResponsesL( aOcspResponses, *rootCert,
+                serialNums );
+            }
+        }
+    else if ( aCertificateChain.Count() == 1 )
+        {
+        // There is only one cert in the cert chain -> the OCSP response cert is verified with root cert
+        result = VerifyOcspResponsesL( aOcspResponses, *rootCert, serialNums );
+        }
+    else
+        {
+        result = EFalse;
+        }
+
+    if ( iStoredRiContext && aCertificateChain.Count() && result )
+        {
+        cert = CX509Certificate::NewLC( *aCertificateChain[0] );
+        if ( iStoredRiContext->ExpiryTime() < cert->ValidityPeriod().Finish() )
+            {
+            iStoredRiContext->SetCertificateChainL( aCertificateChain );
+            iStoredRiContext->SetOCSPResponseL( aOcspResponses );
+
+            // update RI Context
+            iStorageClient->AddRIContextL( *iStoredRiContext );
+            }
+        CleanupStack::PopAndDestroy( cert );
+        }
+
+    CleanupStack::PopAndDestroy( 2, rootCert ); // serialNums, rootCert
+
+#ifdef _ROAP_TESTING
+    if ( result )
+        {
+        LOGLIT( "Certificate chain verification ok." )
+        }
+    else
+        {
+        LOGLIT( "Certificate chain verification failed." )
+        }
+#endif
+#ifdef _DISABLE_CERT_CHECK
+    result = ETrue;
+#endif
+
+    return result;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::VerifyOcspResponsesL()
+// ---------------------------------------------------------
+//
+TBool CRoapEng::VerifyOcspResponsesL(
+    const RPointerArray<HBufC8>& aOcspResponses,
+    const TDesC8& aRiCaCert,
+    const RPointerArray<HBufC8>& aCertSerialNums ) const
+    {
+    LOGLIT( "CRoapEng::VerifyOcspResponsesL" )
+
+#ifdef _DISABLE_OCSP_CHECK
+    TBool result( ETrue );
+#else
+    // Get verification result from the server
+    TBool result( iStorageClient->VerifyOcspResponsesL( aOcspResponses,
+        aRiCaCert, aCertSerialNums ) );
+#endif
+
+#ifdef _ROAP_TESTING
+    if ( result )
+        {
+        LOGLIT( "OCSP response verification ok." )
+        }
+    else
+        {
+        LOGLIT( "OCSP response verification failed." )
+        }
+#endif
+
+    return result;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::ValidateRiCertificateL()
+// ---------------------------------------------------------
+//
+TBool CRoapEng::ValidateRiCertificateL( const CX509Certificate* aCert )
+    {
+    LOGLIT( "CRoapEng::ValidateRiCertificateL" )
+
+    TBool ret = ETrue;
+    const CX509CertExtension* ext = NULL;
+    CX509KeyUsageExt* keyUsageExt = NULL;
+    CX509ExtendedKeyUsageExt* extendedKeyUsage = NULL;
+    TTime riExpiry;
+    TInt count = 0;
+
+    if ( iSelectedAlgorithms == ECmlaIp1 )
+        {
+        // Check RI certificate extensions only in CMLA case
+        ext = aCert->Extension( KKeyUsage() );
+        if ( !ext || !( ext->Critical() ) )
+            {
+            LOGLIT( "RI cert KeyUsage extension missing or not critical!" )
+            ret = EFalse;
+            }
+
+        if ( ext && ret )
+            {
+            keyUsageExt = CX509KeyUsageExt::NewLC( ext->Data() );
+            if ( !keyUsageExt->IsSet( EX509DigitalSignature ) )
+                {
+                LOGLIT( "DigitalSignature bit is not set in KeyUsageExt of RI cert!" )
+                ret = EFalse;
+                }
+            CleanupStack::PopAndDestroy( keyUsageExt );
+            }
+
+        ext = aCert->Extension( KExtendedKeyUsage() );
+        if ( !ext || !( ext->Critical() ) )
+            {
+            LOGLIT( "RI cert ExtendedKeyUsage extension missing or not critical!" )
+            ret = EFalse;
+            }
+
+        if ( ext && ret )
+            {
+            ret = EFalse;
+            extendedKeyUsage = CX509ExtendedKeyUsageExt::NewLC( ext->Data() );
+            count = extendedKeyUsage->KeyUsages().Count();
+            for ( TInt i = 0; i < count && !ret; i++ )
+                {
+                if ( extendedKeyUsage->KeyUsages().At( i )->CompareF(
+                    KOmaKpRightsIssuerOid() ) == 0 )
+                    {
+                    ret = ETrue;
+                    }
+                }
+            if ( !ret )
+                {
+                LOGLIT( "OmaKpRightsIssuer OID is not set in ExtendedKeyUsageExt of RI cert!" )
+                }
+            CleanupStack::PopAndDestroy( extendedKeyUsage );
+            }
+        }
+
+    riExpiry = aCert->ValidityPeriod().Finish();
+
+    if ( riExpiry < GetDrmTimeL() )
+        {
+        LOGLIT( "RI Context certificate is expired!" )
+        ret = EFalse;
+        }
+#ifdef _DISABLE_CERT_CHECK
+    ret = ETrue;
+#endif
+    return ret;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::GetCertificateChainL()
+// ---------------------------------------------------------
+//
+RPointerArray<HBufC8> CRoapEng::GetCertificateChainL() const
+    {
+    LOGLIT( "CRoapEng::GetCertificateChainL ->" )
+
+    TInt err = KErrNone;
+    RPointerArray<HBufC8> certificateChain;
+    HBufC8* root = NULL;
+
+    CleanupResetAndDestroyPushL( certificateChain );
+
+    err = iStorageClient->GetDeviceCertificateChainL( certificateChain );
+
+    if ( err )
+        {
+        User::Leave( err );
+        }
+
+    if ( certificateChain.Count() < KMinCertChainLength )
+        {
+        // the CMLA chain must always contain:
+        // the device certificate,
+        // at lest one signing certificate (device CA),
+        // and the root certificate
+        DETAILLOGLIT( "Got improper certificate chain!!" )
+        // Leaving in production devices.
+        User::Leave( KErrRoapDevice );
+        __ASSERT_DEBUG( ETrue, User::Invariant() );
+        }
+
+    // delete and remove the root certificate (it's always the last one in the list)
+    root = certificateChain[certificateChain.Count() - 1];
+    delete root;
+    certificateChain.Remove( certificateChain.Count() - 1 );
+
+    CleanupStack::Pop( &certificateChain );
+
+    LOGLIT( "CRoapEng::GetCertificateChainL <-" )
+
+    return certificateChain;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::GetDeviceDetailsL()
+// ---------------------------------------------------------
+//
+void CRoapEng::GetDeviceDetailsL(
+    HBufC8*& aManufacturer,
+    HBufC8*& aModel,
+    HBufC8*& aVersion )
+    {
+    LOGLIT( "-> CRoapEng::GetDeviceDetailsL" )
+
+#if 0
+    TInt numPhone = 0;
+    TUint32 caps = 0;
+    TName tsyName;
+    RMobilePhone phone;
+    RTelServer etelServer;
+    RTelServer::TPhoneInfo phoneInfo;
+    HBufC* version = NULL;
+
+    User::LeaveIfError( etelServer.Connect() );
+
+    CleanupClosePushL( etelServer );
+
+    User::LeaveIfError( etelServer.LoadPhoneModule( KMmTsyModuleName ) );
+    User::LeaveIfError( etelServer.EnumeratePhones( numPhone) );
+
+    for (TInt i(0); i < numPhone; i++)
+        {
+        User::LeaveIfError( etelServer.GetPhoneInfo( i, phoneInfo ) );
+        User::LeaveIfError( etelServer.GetTsyName( i,tsyName ) );
+
+        if ( tsyName.CompareF( KMmTsyModuleName ) == 0)
+            {
+            break;
+            }
+        }
+
+    User::LeaveIfError( phone.Open( etelServer, phoneInfo.iName ) );
+    CleanupClosePushL( phone );
+
+    phone.GetIdentityCaps( caps );
+    if ( !( caps & RMobilePhone::KCapsGetManufacturer ) &&
+        !( caps & RMobilePhone::KCapsGetModel ) )
+        {
+        User::Leave( KErrRoapGeneral );
+        }
+
+    RMobilePhone::TMobilePhoneIdentityV1 details;
+    TRequestStatus status;
+
+    phone.GetPhoneId( status, details );
+    User::WaitForRequest( status );
+
+    User::LeaveIfError( status.Int() );
+
+    HBufC8* manufacturer( HBufC8::NewLC( details.iManufacturer.Length() ) );
+    manufacturer->Des().Copy( details.iManufacturer );
+    HBufC8* model( HBufC8::NewLC( details.iModel.Length() ) );
+    model->Des().Copy( details.iModel );
+
+    version = HBufC::NewLC( KSysUtilVersionTextLength );
+    TPtr ptr( version->Des() );
+    User::LeaveIfError( SysUtil::GetSWVersion( ptr ) );
+
+    // remove possible BOM from the end
+    if ( ptr.Right( KBOM1().Length() ).CompareF( KBOM1 ) == KErrNone )
+        {
+        ptr.Delete( ptr.Length() - KBOM1().Length(), KBOM1().Length() );
+        }
+    if ( ptr.Right( KBOM2().Length() ).CompareF( KBOM2 ) == KErrNone )
+        {
+        ptr.Delete( ptr.Length() - KBOM2().Length(), KBOM2().Length() );
+        }
+
+    aVersion = CnvUtfConverter::ConvertFromUnicodeToUtf8L( ptr );
+
+    CleanupStack::PopAndDestroy( version );
+    CleanupStack::Pop( model );
+    CleanupStack::Pop( manufacturer );
+    aManufacturer = manufacturer;
+    aModel = model;
+    CleanupStack::PopAndDestroy( &phone );
+    CleanupStack::PopAndDestroy( &etelServer );
+#else
+    aManufacturer = _L8("Nokia").AllocL();
+    aModel = _L8("Emulator").AllocL();
+    aVersion = _L8("9.0").AllocL();
+#endif
+
+    LOGLIT( "Device details:" )
+    LOGLIT( "   Manufacturer: " )
+    LOG( aManufacturer->Des() )
+    LOGLIT( "   Model: " )
+    LOG( aModel->Des() )
+    LOGLIT( "   Revision: " )
+    LOG( aVersion->Des() )
+
+    LOGLIT( "<- CRoapEng::GetDeviceDetailsL" )
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::FetchTransactionIDL()
+// ---------------------------------------------------------
+//
+void CRoapEng::FetchTransactionIDL(
+    RPointerArray<HBufC8>& aTransIDs,
+    RPointerArray<HBufC8>& aContentIDs )
+    {
+    LOGLIT( "CRoapEng::FetchTransactionIDL" )
+
+    __ASSERT_ALWAYS( iTrigger, User::Invariant() );
+
+    RArray<TPair> array;
+    TInt err = KErrNone;
+
+    CleanupClosePushL( array );
+
+    if ( !iTrigger->iContentIdList.Count() )
+        {
+        CleanupStack::PopAndDestroy( &array );
+        return;
+        }
+
+    if ( iTransStatus == ENotAsked && iObserver )
+        {
+        UpdateTransactionTrackingStatusL();
+        }
+    if ( iTransStatus == EAllowed )
+        {
+        for ( TInt i = 0; i < iTrigger->iContentIdList.Count(); i++ )
+            {
+            TPair pair;
+            pair.iCid = iTrigger->iContentIdList[i]->Alloc(); // duplicate contentID,
+            pair.iTtid = NULL; // pair.iCid is deleted by iRequest
+            err = array.Append( pair );
+            if ( err )
+                {
+                delete pair.iCid;
+                pair.iCid = NULL;
+                }
+            }
+
+            TRAP_IGNORE(iDcfRep->GetTtidL( array ) );
+
+        for ( TInt i = 0; i < array.Count(); i++ )
+            {
+            if ( array[i].iTtid && array[i].iCid && array[i].iTtid->Length()
+                && array[i].iCid->Length() )
+                {
+                err = aContentIDs.Append( array[i].iCid );
+                if ( !err )
+                    {
+                    aTransIDs.Append( array[i].iTtid );
+                    }
+                else
+                    {
+                    delete array[i].iCid;
+                    array[i].iCid = NULL;
+                    delete array[i].iTtid;
+                    array[i].iTtid = NULL;
+                    }
+                }
+            else if ( array[i].iTtid || array[i].iCid )
+                {
+                delete array[i].iTtid;
+                array[i].iTtid = NULL;
+                delete array[i].iCid;
+                array[i].iCid = NULL;
+                }
+            }
+        }
+    CleanupStack::PopAndDestroy( &array );
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::InsertTransactionIDL()
+// ---------------------------------------------------------
+//
+void CRoapEng::InsertTransactionIDL(
+    RPointerArray<HBufC8>& aTransIDs,
+    RPointerArray<HBufC8>& aContentIDs )
+    {
+    LOGLIT( "CRoapEng::InsertTransactionIDL" )
+
+    RArray<TPair> array;
+    TRequestStatus status;
+
+    CleanupClosePushL( array );
+
+    if ( !aTransIDs.Count() || !aContentIDs.Count() )
+        {
+        LOGLIT( "Insert ttID: Wrong input data" )
+        CleanupStack::PopAndDestroy( &array );
+        return;
+        }
+
+    if ( aTransIDs.Count() != aContentIDs.Count() )
+        {
+        LOGLIT( "Insert ttID: ttID.Count != cid.Count" )
+        CleanupStack::PopAndDestroy( &array );
+        return;
+        }
+
+    if ( iTransStatus == ENotAsked && iObserver )
+        {
+        UpdateTransactionTrackingStatusL();
+        }
+    if ( iTransStatus == EAllowed )
+        {
+        for ( TInt i = 0; i < aContentIDs.Count() && i < aTransIDs.Count(); i++ )
+            {
+            TPair pair;
+            pair.iCid = aContentIDs[i];
+            pair.iTtid = aTransIDs[i];
+            array.Append( pair );
+            }
+
+        iDcfRep->SetTtid( array, status );
+        User::WaitForRequest( status );
+        }
+
+    CleanupStack::PopAndDestroy( &array );
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::GetOCSPResponderKeyHashL()
+// ---------------------------------------------------------
+//
+HBufC8* CRoapEng::GetOCSPResponderKeyHashL() const
+    {
+    LOGLIT( "CRoapEng::GetOCSPResponderKeyHashL" )
+
+    if ( !iStoredRiContext )
+        {
+        User::Leave( KErrRoapNotRegistered );
+        }
+    return iStorageClient->GetOcspResponderIdL( iStoredRiContext->RIID() );
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::GetDrmTimeL()
+// ---------------------------------------------------------
+//
+TTime CRoapEng::GetDrmTimeL()
+    {
+    LOGLIT( "CRoapEng::GetDrmTimeL" )
+
+    TTime drmTime;
+    DRMClock::ESecurityLevel secureTime;
+    TInt zone( 0 );
+
+    User::LeaveIfError( iClockClient->GetSecureTime( drmTime, zone,
+        secureTime ) );
+
+    if ( secureTime == DRMClock::KInsecure )
+        {
+        iSecureTime = EFalse;
+        }
+    else
+        {
+        iSecureTime = ETrue;
+        }
+
+    return drmTime;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::SetDrmTimeSecureL()
+// ---------------------------------------------------------
+//
+void CRoapEng::SetDrmTimeSecureL()
+    {
+    LOGLIT( "CRoapEng::SetDrmTimeSecureL" )
+
+    TTime drmTime;
+    DRMClock::ESecurityLevel secureTime;
+    TInt zone( 0 );
+
+    User::LeaveIfError( iClockClient->GetSecureTime( drmTime, zone,
+        secureTime ) );
+    User::LeaveIfError( iClockClient->UpdateSecureTime( drmTime, zone ) );
+
+    iSecureTime = ETrue;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::AdjustDrmTime()
+// ---------------------------------------------------------
+//
+void CRoapEng::AdjustDrmTimeL(
+    const RPointerArray<HBufC8>& aOcspResponses,
+    TDesC8& aRegReqNonce ) const
+    {
+    // To be removed on next API change.
+    // Replace calls with direct call to RRoapStorageClient.
+    LOGLIT( "CRoapEng::AdjustDrmTime calling server" )
+    if ( aOcspResponses.Count() > 0 )
+        {
+        iStorageClient->UpdateDrmTimeL( iStoredRiContext->CertificateChain(),
+            aOcspResponses, aRegReqNonce );
+        }
+    else
+        {
+        LOGLIT( "No OCSP responses present." )
+        }
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::StoreDomainRightsL()
+// ---------------------------------------------------------
+//
+void CRoapEng::StoreDomainRightsL()
+    {
+    LOGLIT( "CRoapEng::StoreDomainRightsL" )
+
+    RPointerArray<CDRMRights> returnedROs;
+
+    CleanupResetAndDestroyPushL( returnedROs );
+
+    iRoParser->ParseAndStoreL( *iDomainRightsResp, returnedROs );
+
+    if ( iObserver )
+        {
+        iObserver->RightsObjectDetailsL( returnedROs ); // pass RO details to UI
+        }
+
+    delete iDomainRightsResp;
+    iDomainRightsResp = NULL;
+
+    iImplicitJoinDomain = EFalse;
+
+    CleanupStack::PopAndDestroy( &returnedROs );
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::InsertDomainRosL()
+// ---------------------------------------------------------
+//
+void CRoapEng::InsertDomainRosL()
+    {
+    CDcfRep* rep = NULL;
+    CDcfEntry* entry = NULL;
+    CContent* content = NULL;
+    TPtr8 ptr( NULL, 0 );
+    TInt i;
+    RFile file;
+    RFs fs;
+    TInt error( 0 );
+
+    User::LeaveIfError( fs.Connect() );
+    CleanupClosePushL( fs );
+    rep = CDcfRep::NewL();
+    CleanupStack::PushL( rep );
+    for ( i = 0; i < iReturnedROs.Count(); i++ )
+        {
+        if ( iReturnedROs[i]->GetPermission().iDomainID )
+            {
+            rep->OrderListL( *iReturnedROs[i]->GetAsset().iUid );
+            entry = rep->NextL();
+            while ( entry )
+                {
+                CleanupStack::PushL( entry );
+                error = file.Open( fs, entry->FileName(), EFileWrite
+                    | EFileShareReadersOrWriters );
+                if ( !error )
+                    {
+                    CleanupClosePushL( file );
+                    content = CContent::NewLC( file );
+                    content->AgentSpecificCommand( EEmbedDomainRo,
+                        KNullDesC8, ptr );
+                    CleanupStack::PopAndDestroy( 2, &file ); // content, file
+                    }
+                CleanupStack::PopAndDestroy( entry );
+                entry = rep->NextL();
+                }
+            }
+        }
+    CleanupStack::PopAndDestroy( 2, &fs ); // rep, fs
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::MapStatusL()
+// ---------------------------------------------------------
+//
+TInt CRoapEng::MapStatusL()
+    {
+    LOGLIT( "CRoapEng::MapStatusL" )
+
+    if ( iRoapStatus == ESuccess )
+        {
+        LOGLIT( "ROAP Status: success " )
+        return KErrNone;
+        }
+
+    if ( iRoapStatus == ENotRegistered || iRoapStatus == EDeviceTimeError )
+        {
+        // Initiate registration protocol
+        LOG2( _L ( "Not Registered! Status: %d" ), iRoapStatus )
+
+        if ( iRoapStatus == EDeviceTimeError )
+            {
+            iDeviceTimeError = ETrue;
+            }
+
+        return KErrRoapNotRegistered;
+        }
+
+    LOG2( _L ( "ROAP Error! Status: %d" ), iRoapStatus )
+
+    switch ( iRoapStatus )
+        {
+        case EUnknownError:
+        case EAbort:
+            {
+            User::Leave( KErrRoapServer );
+            }
+        case ENotSupported:
+        case EAccessDenied:
+        case ENotFound:
+        case EMalformedRequest:
+        case EUnknownRequest:
+        case EUnknownCriticalExtension:
+        case EUnsupportedVersion:
+        case EUnsupportedAlgorithm:
+        case ESignatureError:
+        case EInvalidDCFHash:
+            {
+            User::Leave( KErrRoapServerFatal );
+            }
+        case ENoCertificateChain:
+        case EInvalidCertificateChain:
+        case ETrustedRootCertificateNotPresent:
+            {
+            User::Leave( KErrRoapDevice );
+            }
+        case EInvalidDomain:
+            {
+            User::Leave( KErrRoapInvalidDomain );
+            }
+        case EDomainFull:
+            {
+            User::Leave( KErrRoapDomainFull );
+            }
+        default:
+            {
+            User::Leave( KErrRoapUnsupported );
+            }
+        }
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::ValidateRiIdL()
+//
+// Validates that RI ID equals to public key hash of RI certificate
+// ---------------------------------------------------------
+//
+TBool CRoapEng::ValidateRiIdL( TDesC8& aRiId, TDesC8& aCertBuf )
+    {
+    TBool valid = EFalse;
+    CX509Certificate* riCert = NULL;
+    CSHA1* hash = NULL;
+    HBufC8* publicKeyHash = NULL;
+
+    riCert = CX509Certificate::NewLC( aCertBuf );
+
+    // hash the SubjectPublicKeyInfo element
+    hash = CSHA1::NewL();
+    CleanupStack::PushL( hash );
+    hash->Hash( *riCert->DataElementEncoding(
+        CX509Certificate::ESubjectPublicKeyInfo ) );
+    publicKeyHash = hash->Final().AllocLC();
+
+    if ( aRiId.Compare( *publicKeyHash ) == KErrNone )
+        {
+        valid = ETrue;
+        }
+
+    CleanupStack::PopAndDestroy( publicKeyHash );
+    CleanupStack::PopAndDestroy( hash );
+    CleanupStack::PopAndDestroy( riCert );
+
+    return valid;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::UpdateTransactionTrackingStatusL()
+//
+// Update the status of transaction tracking variable
+// ---------------------------------------------------------
+//
+void CRoapEng::UpdateTransactionTrackingStatusL()
+    {
+    TInt value = KErrNone;
+    CRepository* repository = CRepository::NewL( KCRUidDRMSettings );
+    repository->Get( KDRMSettingsTransactionTracking, value );
+    delete repository;
+    iTransStatus = value ? EAllowed : EForbidden;
+    }
+
+// ---------------------------------------------------------
+// CRoapEng::CreateDeviceIdHashArrayL()
+// ---------------------------------------------------------
+//
+TInt CRoapEng::CreateDeviceIdHashArrayL( RPointerArray<TDesC8>& aIdArray )
+    {
+    TInt err( KErrNone );
+    RPointerArray<HBufC8> certChain;
+    CSHA1* hasher = NULL;
+    HBufC8* publicKey = NULL;
+    CX509Certificate* cert = NULL;
+
+    err = iStorageClient->GetDeviceCertificateChainL( certChain );
+
+    CleanupResetAndDestroyPushL( certChain );
+
+    hasher = CSHA1::NewL();
+    CleanupStack::PushL( hasher );
+    // take the hash of device certificate
+    if (certChain.Count()<=0)
+        {
+        LOGLIT( "Could get Device id Hash!!!" )
+        User::Leave( KErrGeneral );
+        }
+    cert = CX509Certificate::NewL( *certChain[0] );
+    CleanupStack::PushL( cert );
+    publicKey = cert->DataElementEncoding(
+        CX509Certificate::ESubjectPublicKeyInfo )->AllocLC();
+
+    hasher->Hash( *publicKey );
+
+    HBufC8 *elem( hasher->Final().AllocLC() );
+    aIdArray.AppendL( elem );
+    CleanupStack::Pop( elem );
+
+    CleanupStack::PopAndDestroy( publicKey );
+    CleanupStack::PopAndDestroy( cert );
+
+    CleanupStack::PopAndDestroy( hasher );
+    CleanupStack::PopAndDestroy( &certChain );
+    return err;
+    }
+
+// End of file
--- a/group/bld.inf	Wed Oct 27 09:59:12 2010 +0100
+++ b/group/bld.inf	Wed Oct 27 15:25:50 2010 +0100
@@ -26,6 +26,7 @@
 // based on sf/os/devicesrv
 ../startup/ssmcmdlists.mmp
 ../startup/ssmstartuppolicy.mmp
+../startup/customcmds.mmp
 
 // based on sf/os/ossrv
 ../breakdeps/backend.mmp
@@ -46,3 +47,8 @@
 ../perfopts/openvg.mmp
 ../perfopts/openvgu.mmp
 
+// based on /sf/mw/drm
+../breakdeps/DRMEngine/ROAPHandler.mmp
+../breakdeps/DRMEngine/RightsServer.mmp
+../breakdeps/DRMEngine/DrmStdKeyStorage.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hacks/EComServer.mmp	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,73 @@
+// Copyright (c) 1997-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:
+// ecomserver.exe Plug-in server framework
+// When macro defined trace messages are compiled in and sent to RDebug
+// This line must always be commented before submitting to the MCL. See EComDebug.h
+MACRO ECOM_TRACE
+// EPOCHEAPSIZE
+// Investigations were carried out for defect INC115057. It was found (using RDir rather
+// than CDir) that after a scan of around 1150 plug-ins the committed heap size increased 
+// from 3980 to 618380 bytes. After a re-scan the committed heap size was still 618380.
+// The max is set to 2MB to avoid overflows when the number of plug-ins a licensee has is larger.
+// The min is set to 192K. This is approximately 85% of the techview committed heap after bootup
+// so all devices will need at least this. (In techview environment with 317 plug-ins the committed
+// heap size after bootup was 233K)
+// 
+//
+
+/**
+ @file
+*/
+
+EPOCHEAPSIZE 0x00030000 0x00200000 
+
+TARGET		ecomserver.exe
+
+targettype	EXE
+
+// Dynamic Dll UID followed by the unique UID for this executable
+UID 0x1000008D 0x10009D8F
+VENDORID 0x70000001
+CAPABILITY ProtServ
+SOURCEPATH	../../Framework/frame
+
+// And keep this server side
+SOURCE		EComServerStart.cpp
+SOURCE		EComServer.cpp EComServerSession.cpp resolvercache.cpp
+SOURCE		Registrar.cpp RegistryData.cpp DefaultResolver.cpp 
+SOURCE		RegistryResolveTransaction.cpp
+SOURCE		ParseImplementationData.cpp
+SOURCE		Discoverer.cpp BackupNotifier.cpp
+SOURCE		DowngradePath.cpp
+
+SOURCE		ImplementationInformation.cpp RomOnlyResolver.cpp
+SOURCE		EComEntry.cpp
+SOURCE		clientrequest.cpp
+SOURCE		EComEntryBase.cpp
+SOURCE		ServerStartupManager.cpp
+SOURCE		DriveInfo.cpp
+SOURCE		FileUtils.cpp
+SOURCE		EComPerformance.cpp
+#ifdef __ECOM_SERVER_TESTABILITY__
+SOURCE		TestHarnessDomainMember.cpp
+#endif
+SOURCE		EComPatchDataConstantv2.cpp
+
+USERINCLUDE ../../Framework/inc ../../Test_Bed/inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY euser.lib efsrv.lib estor.lib bafl.lib domaincli.lib
+LIBRARY bsul.lib hal.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hacks/cl_file.cpp	Wed Oct 27 15:25:50 2010 +0100
@@ -0,0 +1,3646 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "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:
+// f32\sfsrv\cl_file.cpp
+// 
+//
+
+#include "cl_std.h"
+
+static _LIT_SECURITY_POLICY_S1(KFileServerPolicy,KFileServerUidValue,ECapabilityTCB);
+
+EFSRV_EXPORT_C TInt RFile::Adopt(RFs& aFs, TInt aHandle)
+/**
+Adopts an already open file.
+
+@param aFs     The file server session.
+@param aHandle The handle number of the already opened file
+            
+@return KErrNone if successful, 
+		KErrBadHandle if the sub-session handle is invalid, 
+		otherwise one of the other system-wide error codes.
+
+@deprecated
+*/
+	{
+
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileAdopt, MODULEUID, aFs.Handle(), aHandle);
+
+	// duplicate the sub-session handle; don't panic if it's invalid.
+	RFile file;
+	TInt r = file.CreateSubSession(aFs, EFsFileDuplicate, TIpcArgs(aHandle, EFalse));
+	if (r == KErrArgument)
+		{
+		TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptReturn, MODULEUID, KErrBadHandle);
+		return KErrBadHandle;
+		}
+	else if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptReturn, MODULEUID, r);
+		return r;
+		}
+	// adopt the duplicated handle
+	r = CreateAutoCloseSubSession(aFs, EFsFileAdopt, TIpcArgs(file.SubSessionHandle(), KFileAdopt32));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptReturn, MODULEUID, r, Session().Handle(), SubSessionHandle());
+
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::AdoptFromServer(TInt aFsHandle, TInt aFileHandle)
+/**
+Allows a client to adopt an already open file from a server.
+
+Assumes that the server's RFs and RFile handles have been sent to the 
+client using TransferToClient().
+
+This RFile will own it's RFs session so that when the sub-session (RFile) 
+is closed so will the RFs session.
+
+@param aFsHandle The file server session (RFs) handle
+@param aFileHandle The file (RFile) handle of the already opened file
+            
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+*/
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServer, MODULEUID, aFsHandle, aFileHandle);
+
+	RFs fs;
+	TInt r = fs.SetReturnedHandle(aFsHandle, KFileServerPolicy);
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServerReturn, MODULEUID, r);
+		return r;
+		}
+	r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(aFileHandle, KFileAdopt32));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServerReturn, MODULEUID, r, Session().Handle(), SubSessionHandle());
+
+	return r;
+	}
+
+
+EFSRV_EXPORT_C TInt RFile::AdoptFromClient(const RMessage2& aMsg, TInt aFsHandleIndex, TInt aFileHandleIndex)
+/**
+Allows a server to adopt an already open file from a client.
+The client's RFs and RFile handles are contained in message slots within aMsg.
+
+Assumes that the client's RFs and RFile handles have been sent to the server
+using TransferToServer().
+
+
+This RFile will own it's RFs session so that when the sub-session (RFile) 
+is closed so will the RFs session.
+
+@param	aMsg		The message received from the client
+@param	aFsHandleIndex	The index that identifies the message slot 
+					of a file server session (RFs) handle
+@param aFileHandleIndex The index that identifies the message slot 
+					of the sub-session (RFile) handle of the already opened file
+            
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+*/
+	{
+	TInt fileHandle = NULL;
+
+	TInt r = KErrNone;
+	if (aFileHandleIndex == 0)
+		fileHandle = aMsg.Int0();
+	else if (aFileHandleIndex == 1)
+   		fileHandle = aMsg.Int1();
+	else if (aFileHandleIndex == 2)
+		fileHandle = aMsg.Int2();
+	else if (aFileHandleIndex == 3)
+		fileHandle = aMsg.Int3();
+	else
+		r = KErrArgument;
+
+#ifdef SYMBIAN_FTRACE_ENABLE
+	TInt handle = NULL;
+	if (aFsHandleIndex == 0)
+		handle = aMsg.Int0();
+	else if (aFsHandleIndex == 1)
+   		handle = aMsg.Int1();
+	else if (aFsHandleIndex == 2)
+		handle = aMsg.Int2();
+	else if (aFsHandleIndex == 3)
+		handle = aMsg.Int3();
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClient, MODULEUID, handle, fileHandle, aFsHandleIndex, aFileHandleIndex);
+#endif
+
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r);
+		return r;
+		}
+
+	// Duplicates the file server (RFs) session handle identified by an 
+	// existing handle contained in the message slot at index aFsHandleIndex
+	RFs fs;
+	r = fs.Open(aMsg, aFsHandleIndex, KFileServerPolicy);
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r);
+		return r;
+		}
+
+	r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle, KFileAdopt32));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r, Session().Handle(), SubSessionHandle());
+
+	return r;
+	}
+
+
+EFSRV_EXPORT_C TInt RFile::AdoptFromCreator(TInt aFsHandleIndex, TInt aFileHandleIndex)
+/**
+Allows a server to adopt an already open file from a client process.
+The client's file-server (RFs) and file (RFile) handles are contained in 
+this process's environment data slots.
+
+Assumes that the client's RFs and RFile handles have been sent to the server process
+using TransferToProcess().
+
+This RFile will own it's RFs session so that when the sub-session (RFile) 
+is closed so will the RFs session.
+
+@param	aFsHandleIndex	An index that identifies the slot in the process
+					environment data that contains the file server session (RFs) handle
+@param	aFileHandleIndex	An index that identifies the slot in the process
+					environment data that contains the sub-session (RFile) handle 
+					of the already opened file
+            
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+*/
+	{
+	TInt fileHandle = NULL;
+
+	TInt r = User::GetTIntParameter(aFileHandleIndex,  fileHandle);
+
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreator, MODULEUID, fileHandle, aFsHandleIndex, aFileHandleIndex);
+
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r);
+		return r;
+		}
+
+
+	// Duplicates the file server (RFs) session handle identified by an 
+	// existing handle contained in the environment slot at index aFsHandleIndex
+	RFs fs;
+	r = fs.Open(aFsHandleIndex, KFileServerPolicy);
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r);
+		return r;
+		}
+
+	r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle, KFileAdopt32));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r, Session().Handle(), SubSessionHandle());
+
+	return r;
+	}
+
+
+
+/**
+Make a duplicate of the passed file handle in the same thread.
+
+By default, any thread in the process can use the duplicated handle to access the 
+file. However, specifying EOwnerThread as the second parameter to this function, 
+means that only the creating thread can use the handle.
+
+@param	aFile	The file handle to duplicate
+@param	aType	An enumeration whose enumerators define the ownership of this 
+				handle. If not explicitly specified, EOwnerProcess is taken
+				as default.
+
+@return	one of the other system-wide error codes.
+*/
+EFSRV_EXPORT_C TInt RFile::Duplicate(const RFile& aFile, TOwnerType aType)
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileDuplicate, MODULEUID, aFile.Session().Handle(), aFile.SubSessionHandle(), aType);
+
+	RFs fs;
+	fs.SetHandle(aFile.Session().Handle());
+
+	// Need to make a duplicate of the session handle in the current thread, 
+	// otherwise closing one session will close both sub-sessions.
+	TInt r = fs.Duplicate(RThread(), aType);
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileDuplicateReturn, MODULEUID, r);
+		return r;
+		}
+	
+	// duplicate the sub-session handle
+	TInt dupSubSessionHandle;
+	r = aFile.DuplicateHandle(dupSubSessionHandle);
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileDuplicateReturn, MODULEUID, r);
+		return r;
+		}
+
+	// adopt the duplicated sub-session handle
+	r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(dupSubSessionHandle, KFileDuplicate));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileDuplicateReturn, MODULEUID, r, Session().Handle(), SubSessionHandle());
+
+	return r;
+	}
+
+
+// Makes a duplicate of this file (RFile) handle in the current thread and 
+// returns it in aSubSessionHandle. 
+// The duplicate file handle will effectively be in limbo (although still 
+// owned by the session) until :
+// (1) the session handle is duplicated into another process - 
+//     this happens in one of : TransferToClient(), TransferToProcess() or 
+//     AdoptFromClient() and
+// (2) the sub-session handle is transferred to the other process - using AdoptXXX()
+// 
+TInt RFile::DuplicateHandle(TInt& aSubSessionHandle) const
+	{
+	RFs fs;
+	fs.SetHandle(Session().Handle());
+	RFile file;
+	
+	// duplicate the sub-session handle; panic if it's invalid.
+	TInt r = file.CreateSubSession(fs, EFsFileDuplicate, TIpcArgs(SubSessionHandle(), ETrue));
+	
+	// return the duplicated handle
+	// Note that this handle needs to be adopted before it can be used
+	aSubSessionHandle = file.SubSessionHandle();
+	
+	return r;
+	}
+
+
+/**
+Transfers an already open file to a server.
+
+Before this function can be called, the file server session which owns this file handle
+must first be marked as shareable by calling RFs::ShareProtected().
+
+This function packages handle details for this file into 2 arguments of a TIpcArgs object.
+When these arguments are sent in an IPC message, the server which receives them may 
+call AdoptFromClient() to open a new RFile object which refers to the same file as this.
+
+@param	aIpcArgs	The IPC message arguments.
+@param	aFsHandleIndex	An index that identifies an argument in aIpcArgs where the
+					file server session handle will be stored.
+					This argument must not be used for anything else otherwise the 
+					results will be unpredictable.
+@param	aFileHandleIndex	An index that identifies an argument in aIpcArgs where the
+					file handle will be stored.
+					This argument must not be used for anything else otherwise the 
+					results will be unpredictable.
+
+@return KErrNone if successful, otherwise one of the other system-wide
+		error codes.
+
+*/
+EFSRV_EXPORT_C TInt RFile::TransferToServer(TIpcArgs& aIpcArgs, TInt aFsHandleIndex, TInt aFileHandleIndex) const
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToServer, MODULEUID, Session().Handle(), SubSessionHandle(), aFsHandleIndex, aFileHandleIndex);
+
+	if ((aFsHandleIndex < 0) || (aFsHandleIndex > (KMaxMessageArguments-2)))
+		{
+		TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToServerReturn, MODULEUID,  (TUint) KErrArgument);
+		return KErrArgument;
+		}
+
+	TInt dupSubSessionHandle;
+	TInt r = DuplicateHandle(dupSubSessionHandle);
+	if (r == KErrNone)
+		{
+		aIpcArgs.Set(aFsHandleIndex, Session());
+		aIpcArgs.Set(aFileHandleIndex, dupSubSessionHandle);
+		}
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToServerReturn, MODULEUID, r);
+	return r;
+	}
+
+/**
+Transfers an already open file from a server to a client.
+
+Before this function can be called, the file server session which owns this file handle
+must first be marked as shareable by calling RFs::ShareProtected().
+
+The file (RFile) handle is written to the client's address space to the package 
+buffer in the message address slot in aMsg identified by aFileHandleIndex.
+
+If no error occurs, then the message is completed with the file-server (RFs) 
+session handle.
+
+When the message completes, the client may call AdoptFromServer() to open 
+a new RFile object which refers to the same file as this.
+
+Note that if an error occurs then the message is not completed.
+
+@param	aMsg		A message received from the client
+@param	aFileHandleIndex	Identifies the message slot that contains a package 
+					buffer pointing to an address in the client's address space 
+					to receive the file (RFile) handle
+  
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+*/
+EFSRV_EXPORT_C TInt RFile::TransferToClient(const RMessage2& aMsg, TInt aFileHandleIndex) const
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToClient, MODULEUID, Session().Handle(), SubSessionHandle(), aFileHandleIndex);
+
+	if (TUint(aFileHandleIndex) >= TUint(KMaxMessageArguments))
+		{
+		TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToClientReturn, MODULEUID,  (TUint) KErrArgument);
+		return KErrArgument;
+		}
+
+	TInt dupSubSessionHandle;
+	TInt r = DuplicateHandle(dupSubSessionHandle);
+	if (r == KErrNone)
+		r = aMsg.Write(aFileHandleIndex, TPckgC<TInt>(dupSubSessionHandle));
+
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToClientReturn, MODULEUID, r);
+		return r;
+		}
+
+	aMsg.Complete(Session());
+	
+	TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToClientReturn, MODULEUID, r);
+
+	return r;
+	}
+
+
+/**
+Transfers an already open file to another process.
+
+Before this function can be called, the file server session which owns this file handle
+must first be marked as shareable by calling RFs::ShareProtected().
+
+This function packages handle details for this file into 2 arguments in another
+process's  environment data slots.
+When the other process runs, it may call AdoptFromCreator() to open a new RFile 
+object which refers to the same file as this.
+
+@param	aProcess	A handle to another process.
+@param	aFsHandleIndex	An index that identifies a slot in the process's
+					environment data which on exit will contain the file server 
+					session (RFs) handle 
+					This slot must not be used for anything else otherwise the 
+					results will be unpredictable.
+@param	aFileHandleIndex	An index that identifies a slot in the process's
+					environment data which on exit will contain the file 
+					(RFile) handle.
+					This slot must not be used for anything else otherwise the 
+					results will be unpredictable.
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+*/
+// NB slot 0 is reserved for the command line
+EFSRV_EXPORT_C TInt RFile::TransferToProcess(RProcess& aProcess, TInt aFsHandleIndex, TInt aFileHandleIndex) const
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToProcess, MODULEUID, Session().Handle(), SubSessionHandle(), aFsHandleIndex, aFileHandleIndex);
+
+	TInt dupSubSessionHandle;
+	TInt r = DuplicateHandle(dupSubSessionHandle);
+
+	if (r == KErrNone)
+		r = aProcess.SetParameter(aFsHandleIndex, RHandleBase(Session()));
+	
+	if (r == KErrNone)
+		r = aProcess.SetParameter(aFileHandleIndex, dupSubSessionHandle);
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToProcessReturn, MODULEUID, r);
+
+	return r;
+	}
+
+
+EFSRV_EXPORT_C TInt RFile::Name(TDes& aName) const
+/**
+Gets the final part of a filename
+
+This is used to retrieve the name and extension of a file that has been 
+passed from one process to another using the RFile::AdoptXXX() methods.
+
+@param	aName	On return, contains the name of the file, including the name and 
+				extension but excluding the drive letter and path.
+
+@return KErrNone if successful, otherwise one of the other
+        system-wide error codes.
+
+*/
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileName, MODULEUID, Session().Handle(), SubSessionHandle());
+
+	TInt r = SendReceive(EFsFileName, TIpcArgs(&aName));
+
+	TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFileNameReturn, MODULEUID, r, aName);
+
+	return r;
+	}
+
+
+EFSRV_EXPORT_C TInt RFile::FullName(TDes& aName) const
+/**
+Gets the full filename
+
+This is used to retrieve the full filename, including drive and path,
+of a file that has been passed from one process to another using the 
+RFile::AdoptXXX() methods.
+
+@param	aName	On return, contains the full name of the file, including drive and path.
+
+@return KErrNone if successful, otherwise one of the other
+        system-wide error codes.
+
+*/
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileFullName, MODULEUID, Session().Handle(), SubSessionHandle());
+
+	TInt r = SendReceive(EFsFileFullName, TIpcArgs(&aName));
+
+	TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFileFullNameReturn, MODULEUID, r, aName);
+
+	return r;
+	}
+
+
+
+EFSRV_EXPORT_C TInt RFile::Open(RFs& aFs,const TDesC& aName,TUint aMode)
+/**
+Opens an existing file for reading or writing.
+
+If the file does not already exist, an error is returned.
+
+Notes:
+
+1. To close the file, use Close()
+
+2. Attempting to open a file with the read-only attribute using the EFileWrite
+   access mode results in an error.
+
+3. Attempting to open a file which is greater than or equal to 2GByte (2,147,483,648 bytes)
+   will fail with KErrTooBig
+
+4. After a file has been opened, the current write position is set to the start
+   of the file.
+   If necessary, use RFile::Seek() to move to a different position within
+   the file.
+
+@param aFs   The file server session.
+@param aName The name of the file. Any path components (i.e. drive letter
+             or directory), which are not specified, are taken from
+             the session path.The file name shall not contain wild cards
+             ('?' or '*' characters) and illegal characters like 
+             '<', '>', ':', '"', '/', '|' and '\000'. Backslash '\\' character 
+             is allowed only as a path delimiter. The filename containing only 
+             white space characters (See TChar::IsSpace()) is also illegal.
+
+@param aMode The mode in which the file is opened. See TFileMode.
+
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+        
+@see TFileMode
+
+@capability Dependent If the path for aName is /Sys and aMode is neither
+					  EFileShareReadersOnly nor EFileRead then Tcb capability is required.
+@capability Dependent If the path for aName is /Sys and aMode is either
+					  EFileShareReadersOnly or EFileRead then Allfiles capability is required.
+@capability Dependent If the path for aName begins with /Private and does not match this process'
+					  SID then AllFiles capability is required.
+@capability Dependent If the path for aName begins with /Resource and aMode is neither
+ 					  EFileShareReadersOrWriters|EFileRead nor EFileShareReadersOnly 
+ 					  nor EFileRead then Tcb capability is required.
+
+*/
+	{
+	TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileOpen, MODULEUID, aFs.Handle(), aMode, aName);
+
+	aMode &= ~EFileBigFile;
+	TInt r = CreateSubSession(aFs,EFsFileOpen,TIpcArgs(&aName,aMode));
+
+	//TomP - temp file logging.
+	RDebug::Print(_L("RFile::Open, file= %S, errorcode=%d"), &aName, r);
+	
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileOpenReturn, MODULEUID, r, SubSessionHandle());
+
+	return r;
+	}
+
+
+EFSRV_EXPORT_C void RFile::Close()
+/**
+Closes the file.
+
+Any open files are closed when the file server session is closed.
+
+Close() is guaranteed to return, and provides no indication whether
+it completed successfully or not. When closing a file you have written to,
+you should ensure that data is committed to the file by invoking RFile::Flush()
+before closing. If Flush() completes successfully, Close() is essentially a
+no-operation.
+*/
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileClose, MODULEUID, Session().Handle(), SubSessionHandle());
+	
+#if defined (SYMBIAN_FTRACE_ENABLE) && defined(__DLL__)
+	// Need to close the handle to the trace LDD if this is an auto-close subsession
+	// as these close their parent session by calling RHandleBase::Close(), i.e. they
+	// bypass RFs::Close() which would normally be responsible for closing the LDD
+	TInt h = Session().Handle() ^ CObjectIx::ENoClose;
+	if ( h != NULL && (!(h & CObjectIx::ENoClose)) ) 
+		{
+		RFTRACE_CLOSE;
+		}
+#endif
+
+	CloseSubSession(EFsFileSubClose);
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileCloseReturn, MODULEUID);
+	}
+
+
+EFSRV_EXPORT_C TInt RFile::Create(RFs& aFs,const TDesC& aName,TUint aMode)
+/**
+Creates and opens a new file for writing.
+
+If the file already exists, an error is returned.
+
+If the resulting path does not exist, then the operation cannot proceed and
+the function returns an error code.
+
+Notes:
+
+1. To close the file, use Close()
+
+2. It automatically sets the file's archive attribute.
+
+@param aFs   The file server session.
+@param aName The name of the file. Any path components (i.e. drive letter
+             or directory), which are not specified, are taken from
+             the session path. The file name shall not contain wild cards
+             ('?' or '*' characters) and illegal characters like 
+             '<', '>', ':', '"', '/', '|' and '\000'. Backslash '\\' character 
+             is allowed only as a path delimiter. The filename containing only 
+             white space characters (See TChar::IsSpace()) is also illegal.
+
+@param aMode The mode in which the file is opened. The access mode is
+             automatically set to EFileWrite. See TFileMode.
+
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+        
+@see TFileMode
+
+@capability Dependent If the path in aName starts with /Sys then capability Tcb is required
+@capability Dependent If the path in aName starts with /Resource then capability Tcb is required
+@capability Dependent If the path in aName starts with /Private and does not match this process'
+					  SID then AllFiles capability is required.
+
+*/
+	{
+	aMode &= ~EFileBigFile;
+
+	TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileCreate, MODULEUID, aFs.Handle(), aMode, aName);
+
+	TInt r = CreateSubSession(aFs,EFsFileCreate,TIpcArgs(&aName,aMode));
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileCreateReturn, MODULEUID, r, SubSessionHandle());
+
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Replace(RFs& aFs,const TDesC& aName,TUint aMode)
+/**
+Opens a file for writing, replacing the content of any existing file of the
+same name if it exists, or creating a new file if it does not exist.
+
+If the resulting path exists, then:
+
+- the length of an existing file with the same filename is re-set to zero 
+
+- a new file is created, if no existing file with the same filename can be found.
+
+If the resulting path does not exist, then the operation cannot proceed and
+the function returns an error code.
+
+Notes:
+
+- To close the file, use Close(), defined in the base class RFsBase.
+
+- It automatically sets the file's archive attribute.
+
+@param aFs   The file server session.
+@param aName The name of the file. Any path components (i.e. drive letter
+             or directory), which are not specified, are taken from
+             the session path. The file name shall not contain wild cards
+             ('?' or '*' characters) and illegal characters like 
+             '<', '>', ':', '"', '/', '|' and '\000'. Backslash '\\' character 
+             is allowed only as a path delimiter. The filename containing only 
+             white space characters (See TChar::IsSpace()) is also illegal.
+
+@param aMode The mode in which the file is opened. The access mode is
+             automatically set to EFileWrite. See TFileMode.
+
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+        
+@see TFileMode
+
+@capability Dependent If the path in aName starts with /Sys then capability Tcb is required
+@capability Dependent If the path in aName starts with /Resource then capability Tcb is required
+@capability Dependent If the path in aName starts with /Private and does not match this process'
+					  SID then AllFiles capability is required.
+
+*/
+	{
+	TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileReplace, MODULEUID, aFs.Handle(), aMode, aName);
+	aMode &= ~EFileBigFile;
+	TInt r = CreateSubSession(aFs,EFsFileReplace,TIpcArgs(&aName,aMode));
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileReplaceReturn, MODULEUID, r, SubSessionHandle());
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Temp(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aMode)
+/**
+Creates and opens a temporary file with a unique name for writing and reading.
+
+Notes:
+
+1. To close the file, use Close()
+
+@param aFs   The file server session.
+@param aPath The directory in which the file is created.
+@param aName On return, contains the full path and file name of the file.
+             The filename is guaranteed to be unique within the directory
+             specified by aPath.
+@param aMode The mode in which the file is opened. The access mode is
+             automatically set to EFileWrite. See TFileMode.
+
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+        
+@see TFileMode
+
+@capability Dependent If aPath starts with /Sys then capability Tcb is required
+@capability Dependent If aPath starts with /Resource then capability Tcb is required
+@capability Dependent If aPath starts with /Private and does not match this process'
+					  SID then AllFiles capability is required.
+*/
+	{
+   	TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileTemp, MODULEUID, aFs.Handle(), aPath, aMode);
+	aMode &= ~EFileBigFile;
+	TInt r = CreateSubSession(aFs,EFsFileTemp,TIpcArgs(&aPath,aMode,&aName));
+	TRACERETMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileTempReturn, MODULEUID, r, SubSessionHandle(), aName);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Read(TDes8& aDes) const
+/**
+Reads from the file at the current position.
+
+This is a synchronous function.
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into 
+it. Therefore, when reading through a file,the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+
+@param aDes Descriptor into which binary data is read. Any existing contents 
+            are overwritten. On return, its length is set to the number of
+            bytes read.
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+
+@see TDesC8::Length
+*/
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileRead1, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.MaxLength());
+
+	TInt r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),I64LOW(KCurrentPosition64)));
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead1Return, MODULEUID, r, aDes.Length());
+
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::Read(TDes8& aDes,TRequestStatus& aStatus) const
+/**
+Reads from the file at the current position.
+
+This is an asynchronous function.
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into 
+it. Therefore, when reading through a file,the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+
+@param aDes    Descriptor into which binary data is read. Any existing contents 
+               are overwritten. On return, its length is set to the number of
+               bytes read.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+               
+@param aStatus Request status. On completion contains:
+       KErrNone, if successful, otherwise one of the other system-wide error codes.
+
+@see TDesC8::Length       
+*/
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileRead2, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.MaxLength(), &aStatus);
+
+    RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),I64LOW(KCurrentPosition64)),aStatus);
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead2Return, MODULEUID);
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Read(TDes8& aDes,TInt aLength) const
+/**
+Reads the specified number of bytes of binary data from the file at the current position.
+
+This is a synchronous function.
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into 
+it. Therefore, when reading through a file,the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+Assuming aLength is less than the maximum length of the descriptor, the only circumstances 
+in which Read() can return fewer bytes than requested, is when the end of 
+file is reached or if an error occurs.
+
+@param aDes    Descriptor into which binary data is read. Any existing
+               contents are overwritten. On return, its length is set to
+               the number of bytes read.
+            
+@param aLength The number of bytes to be read from the file into the descriptor. 
+               If an attempt is made to read more bytes than the descriptor's 
+               maximum length, the function returns KErrOverflow.
+               This value must not be negative, otherwise the function
+               returns KErrArgument.
+               
+@return KErrNone if successful, otherwise one of the other system-wide error
+        codes.
+*/
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileRead1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength);
+
+	if (aLength==0)
+		{
+		aDes.Zero();
+		return(KErrNone);
+		}
+	else if(aLength>aDes.MaxLength())
+		{
+		return(KErrOverflow);
+		}
+	TInt r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,I64LOW(KCurrentPosition64)));
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead1Return, MODULEUID, r, aDes.Length());
+
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::Read(TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const
+/**
+Reads a specified number of bytes of binary data from the file at the current position.
+
+This is an asynchronous function.
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+Assuming aLength is less than the maximum length of the descriptor, the only
+circumstances in which Read() can return fewer bytes than requested is when
+the end of file is reached or if an error has occurred.
+
+@param aDes    Descriptor into which binary data is read. Any existing
+               contents are overwritten. On return, its length is set to the
+               number of bytes read.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+               
+@param aLength The number of bytes to be read from the file into the descriptor. 
+               If an attempt is made to read more bytes than the descriptor's
+               maximum length, then the function updates aStatus parameter with KErrOverflow.
+               It must not be negative otherwise the function updates aStatus with KErrArgument.
+               
+@param aStatus Request status. On completion contains KErrNone if successful, 
+               otherwise one of the other system-wide error codes.
+*/
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileRead2, MODULEUID, Session().Handle(), SubSessionHandle(), aLength, &aStatus);
+
+	if (aLength==0)
+		{
+		aDes.Zero();
+		TRequestStatus* req=(&aStatus);
+		User::RequestComplete(req,KErrNone);
+		return;
+		}
+	else if(aLength>aDes.MaxLength())
+		{
+		TRequestStatus* req=(&aStatus);
+		User::RequestComplete(req,KErrOverflow);
+		return;
+		}
+		
+	RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,I64LOW(KCurrentPosition64)),aStatus);
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead2Return, MODULEUID);
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Read(TInt aPos,TDes8& aDes) const
+/**
+Reads from the file at the specified offset within the file
+
+This is a synchronous function.
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+
+@param aPos Position of first byte to be read.  This is an offset from
+            the start of the file. If no position is specified, reading
+            begins at the current file position. 
+            If aPos is beyond the end of the file, the function returns
+            a zero length descriptor.
+            
+@param aDes The descriptor into which binary data is read. Any existing content
+            is overwritten. On return, its length is set to the number of
+            bytes read.
+            
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+
+@panic FSCLIENT 19 if aPos is negative.        
+*/
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.MaxLength());
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+
+	TInt r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),aPos));
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length());
+
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::Read(TInt aPos,TDes8& aDes,TRequestStatus& aStatus) const
+/**
+Reads from the file at the specified offset within the file.
+
+This is an asynchronous function.
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+
+@param aPos    Position of first byte to be read. This is an offset from
+               the start of the file. If no position is specified, 
+               reading begins at the current file position.
+               If aPos is beyond the end of the file, the function returns
+               a zero length descriptor.
+               
+@param aDes    The descriptor into which binary data is read. Any existing
+               content is overwritten. On return, its length is set to
+               the number of bytes read.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+               
+@param aStatus The request status. On completion, contains an error code of KErrNone 
+               if successful, otherwise one of the other system-wide error codes.
+
+@panic FSCLIENT 19 if aPos is negative.        
+*/
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.MaxLength(), &aStatus);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),aPos),aStatus);
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID);
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Read(TInt aPos,TDes8& aDes,TInt aLength) const
+/**
+Reads the specified number of bytes of binary data from the file at a specified 
+offset within the file.
+
+This is a synchronous function.
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+Assuming aLength is less than the maximum length of the descriptor, the only
+circumstances in which Read() can return fewer bytes than requested is when
+the end of file is reached or if an error has occurred.
+
+@param aPos    Position of first byte to be read. This is an offset from
+               the start of the file. If no position is specified, 
+               reading begins at the current file position.
+               If aPos is beyond the end of the file, the function returns
+               a zero length descriptor.
+               
+@param aDes    The descriptor into which binary data is read. Any existing
+               contents are overwritten. On return, its length is set to
+               the number of bytes read.
+@param aLength The number of bytes to read from the file into the descriptor. 
+               If an attempt is made to read more bytes than the descriptor's
+               maximum length, then the function updates aStatus parameter with KErrOverflow.
+               It must not be negative otherwise the function updates aStatus with KErrArgument.
+               
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+
+@panic FSCLIENT 19 if aPos is negative.        
+*/
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	if (aLength==0)
+		{
+		aDes.Zero();
+		return(KErrNone);
+		}
+	else if(aLength>aDes.MaxLength())
+		{
+		return(KErrOverflow);
+		}
+		
+	TInt r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,aPos));
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length());
+
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::Read(TInt aPos,TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const
+/**
+Reads the specified number of bytes of binary data from the file at a specified 
+offset within the file.
+
+This is an asynchronous function.
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+Assuming aLength is less than the maximum length of the descriptor, the only
+circumstances in which Read() can return fewer bytes than requested is when
+the end of file is reached or if an error has occurred.
+
+@param aPos    Position of first byte to be read. This is an offset from
+               the start of the file. If no position is specified, 
+               reading begins at the current file position.
+               If aPos is beyond the end of the file, the function returns
+               a zero length descriptor.
+               
+@param aDes    The descriptor into which binary data is read. Any existing
+               contents are overwritten. On return, its length is set to
+               the number of bytes read.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aLength The number of bytes to read from the file into the descriptor. 
+               If an attempt is made to read more bytes than the descriptor's
+               maximum length, then the function returns KErrOverflow.
+               It must not be negative otherwise the function returns KErrArgument.
+
+@param aStatus Request status. On completion contains KErrNone if successful, 
+               otherwise one of the other system-wide error codes.
+               
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength, &aStatus);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	if (aLength==0)
+		{
+		aDes.Zero();
+		TRequestStatus* req=(&aStatus);
+		User::RequestComplete(req,KErrNone);
+		return;
+		}
+	else if(aLength>aDes.MaxLength())
+		{
+		TRequestStatus* req=(&aStatus);
+		User::RequestComplete(req,KErrOverflow);
+		return;
+		}
+		
+	RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,aPos),aStatus);
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID);
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::ReadCancel(TRequestStatus& aStatus) const
+/**
+Cancels a specific outstanding asynchronous read request.
+
+The outstanding request completes with KErrCancel.
+
+@param aStat The request status object identified with the original
+			 asynchronous read.
+*/
+	{
+	if(aStatus != KRequestPending)
+		return;
+	SendReceive(EFsFileReadCancel, TIpcArgs(&aStatus));
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::ReadCancel() const
+/**
+Cancels all outstanding asynchronous read requests for this subsession.
+
+All outstanding requests complete with KErrCancel.
+*/
+	{
+	SendReceive(EFsFileReadCancel, TIpcArgs(NULL));
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Write(const TDesC8& aDes)
+/**
+Writes to the file at the current offset within the file.
+
+This is a synchronous function.
+
+NB Attempting to extend the file to 2 GByte or greater will fail with KErrTooBig
+
+@param aDes The descriptor from which binary data is written.
+            The function writes the entire contents of aDes to the file.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+*/
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.Length());
+	TInt r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),I64LOW(KCurrentPosition64)));
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r);
+	return r;
+	}
+
+
+EFSRV_EXPORT_C void RFile::Write(const TDesC8& aDes,TRequestStatus& aStatus)
+/** 
+Writes to the file at the current offset within the file.
+
+This is an asynchronous function.
+
+NB Attempting to extend the file to 2 GByte or greater will fail with KErrTooBig
+
+@param aDes    The descriptor from which binary data is written.
+               The function writes the entire contents of aDes to the file.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+            
+@param aStatus Request status. On completion contains KErrNone if successful, 
+               otherwise one of the other system-wide error codes.
+*/
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.Length(), &aStatus);
+
+	RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),I64LOW(KCurrentPosition64)),aStatus);
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID);
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Write(const TDesC8& aDes,TInt aLength)
+/**
+Writes a portion of a descriptor to the file at the current offset within
+the file.
+
+This is a synchronous function.
+
+NB Attempting to extend the file to 2 GByte or greater will fail with KErrTooBig
+
+@param aDes    The descriptor from which binary data is written.
+@param aLength The number of bytes to be written from the descriptor.
+               This must not be greater than the length of the descriptor.
+               It must not be negative.
+
+@return KErrNone if successful; KErrArgument if aLength is negative;
+		otherwise one of the other system-wide error codes.
+        
+@panic FSCLIENT 27 in debug mode, if aLength is greater than the length
+       of the descriptor aDes.  
+*/
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength);
+
+	__ASSERT_DEBUG(aDes.Length()>=aLength,Panic(EBadLength));
+	TInt r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,I64LOW(KCurrentPosition64)));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::Write(const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus)
+/**
+Writes a portion of a descriptor to the file at the current offset
+within the file.
+
+This is an asynchronous function.
+
+NB Attempting to extend the file to 2 GByte or greater will fail with KErrTooBig
+
+@param aDes    The descriptor from which binary data is written.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aLength The number of bytes to be written from the descriptor.
+               This must not be greater than the length of the descriptor.
+               It must not be negative.
+
+@param aStatus Request status. On completion contains KErrNone if successful; 
+			   KErrArgument if aLength is negative; 
+			   otherwise one of the other system-wide error codes.
+
+*/
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), aLength, &aStatus);
+		
+	RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,I64LOW(KCurrentPosition64)),aStatus);
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID);
+	}
+
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Write(TInt aPos,const TDesC8& aDes)
+/**
+Writes to the file at the specified offset within the file
+
+This is a synchronous function.
+
+NB Attempting to extend the file to 2 GByte or greater will fail with KErrTooBig
+
+@param aPos The offset from the start of the file at which the first
+            byte is written. 
+            If a position beyond the end of the file is specified, then
+            the write operation begins at the end of the file.
+            If the position has been locked, then the write fails.
+            
+@param aDes The descriptor from which binary data is written. The function writes 
+            the entire contents of aDes to the file.
+            
+@return KErrNone if successful, otherwise one of the other system-wide error
+        codes.
+
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.Length());
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	TInt r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),aPos));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3Return, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::Write(TInt aPos,const TDesC8& aDes,TRequestStatus& aStatus)
+/**
+Writes to the file at the specified offset within the file
+
+This is an asynchronous function.
+
+NB Attempting to extend the file to 2 GByte or greater will fail with KErrTooBig
+
+@param aPos    The offset from the start of the file at which the first
+               byte is written. 
+               If a position beyond the end of the file is specified, then
+               the write operation begins at the end of the file.
+               If the position has been locked, then the write fails.
+               
+@param aDes    The descriptor from which binary data is written. The function
+               writes the entire contents of aDes to the file.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aStatus Request status. On completion contains KErrNone if successful, 
+               otherwise one of the other system-wide error codes.
+
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.Length(), &aStatus);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),aPos),aStatus);
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4Return, MODULEUID);
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Write(TInt aPos,const TDesC8& aDes,TInt aLength)
+/**
+Writes the specified number of bytes to the file at the specified offset within the file.
+
+This is a synchronous function.
+
+NB Attempting to extend the file to 2 GByte or greater will fail with KErrTooBig
+
+@param aPos    The offset from the start of the file at which the first
+               byte is written. 
+               If a position beyond the end of the file is specified, then
+               the write operation begins at the end of the file.
+               If the position has been locked, then the write fails.
+                             
+@param aDes    The descriptor from which binary data is written.
+@param aLength The number of bytes to be written from aDes .
+			   It must not be negative.
+
+@return KErrNone if successful; KErrArgument if aLength is negative;
+		otherwise one of the other system-wide error codes.
+        
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	TInt r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,aPos));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::Write(TInt aPos,const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus)
+/**
+Writes the specified number of bytes to the file at the specified offset within the file.
+
+This is an asynchronous function.
+
+NB Attempting to extend the file to 2 GByte or greater will fail with KErrTooBig
+
+@param aPos    The offset from the start of the file at which the first
+               byte is written. 
+               If a position beyond the end of the file is specified, then
+               the write operation begins at the end of the file.
+               If the position has been locked, then the write fails.
+              
+@param aDes    The descriptor from which binary data is written.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aLength The number of bytes to be written from aDes.
+			   It must not be negative.
+			   
+@param aStatus Request status. On completion contains KErrNone if successful; 
+			   KErrArgument if aLength is negative; 
+			   otherwise one of the other system-wide error codes.
+
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength, &aStatus);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,aPos),aStatus);
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID);
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Lock(TInt aPos,TInt aLength) const
+/**
+Locks a region within the file as defined by a range of bytes.
+
+This ensures that those bytes are accessible 
+only through the RFile object which claims the lock. To re-allow access by 
+other programs to the locked region, it must either be unlocked or the file 
+closed. Locking can be used to synchronize operations on a file when more 
+than one program has access to the file in EFileShareAny mode.
+
+More than one distinct region of a file can be locked, but an error is returned 
+if more than one lock is placed on the same region. Different RFile objects 
+can lock different parts of the same file as long as the file is opened in 
+EFileShareAny mode. The locked region may extend beyond the end of a file;
+this prevents the file from being extended by other programs.
+
+@param aPos    Position in file from which to lock; this is the  offset from
+               the beginning of the file.
+@param aLength Number of bytes to lock.
+
+@return KErrNone if successful; KErrArgument if aPos+aLength>2G-1 boundary;
+ 		otherwise one of the other system-wide error codes.
+
+@panic FSCLIENT 17 if aLength is not greater than zero,
+@panic FSCLIENT 19 if aPos is negative. 
+
+*/
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileLock, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+
+	TInt r = SendReceive(EFsFileLock,TIpcArgs(aPos,aLength));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileLockReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::UnLock(TInt aPos,TInt aLength) const
+/**
+Unlocks a region within the file as defined by a range of bytes.
+
+A lock can only be removed by the RFile object which claimed the lock.
+
+A portion of a locked region cannot be unlocked. The entire locked region 
+must be unlocked otherwise an error is returned. If any byte within
+the specified range of bytes to unlock is not locked, an error is returned.
+
+@param aPos    Position in file from which to unlock; this is the  offset from
+               the beginning of the file.
+@param aLength Number of bytes to unlock.
+
+@return KErrNone if successful; KErrArgument if aPos+aLength>2G-1 boundary;
+		otherwise one of the other  system-wide error codes.
+        
+@panic FSCLIENT 18 if aLength is not greater than zero,
+@panic FSCLIENT 19 if aPos is negative. 
+*/
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileUnLock, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	TInt r = SendReceive(EFsFileUnLock,TIpcArgs(aPos,aLength));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileUnLockReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Seek(TSeek aMode,TInt& aPos) const
+/**
+Sets the the current file position.
+
+The function can also be used to get the current file 
+position without changing it. The file position is the position at which
+reading and writing takes place. The start of the file is position zero.
+
+To retrieve the current file position without changing it, specify ESeekCurrent 
+for the seek mode, and zero for the offset.
+
+If the seek mode is ESeekStart, then:
+
+1. the function does not modify the aPos argument,
+
+2. the function returns an error if the offset specified is negative.
+
+If the seek mode is ESeekAddress, an error is returned if:
+
+1. the file is not in ROM, 
+
+2. the offset specified is greater than the size of the file.
+
+@param aMode Seek mode. Controls the destination of the seek operation.
+@param aPos  Offset from location specified in aMode. Can be negative.
+             On return contains the new file position.
+             If the seek mode is either ESeekCurrent or ESeekEnd and the offset
+             specifies a position before the start of the file 
+             or beyond the end of the file, then on return, aPos is set to
+             the new file position (either the start or the end of the file).
+             If the seek mode is ESeekAddress, aPos returns the address of
+             the byte at the specified offset within the file.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+*/
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileSeek, MODULEUID, Session().Handle(), SubSessionHandle(), aMode, aPos, 0);
+
+	TInt64 newPos = aPos;
+	TPckg<TInt64>  pkNewPos(newPos);
+	TInt r = SendReceive(EFsFileSeek|KIpcArgSlot2Desc,TIpcArgs(aPos,aMode,&pkNewPos));
+	if(KErrNone == r)
+		aPos = I64LOW(newPos);
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSeekReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Flush()
+/**
+Commits data to the storage device and flushes internal buffers without closing 
+the file.
+
+Although RFile::Close() also flushes internal buffers, it is often useful 
+to call Flush() before a file is closed. This is because Close() returns no 
+error information, so there is no way of telling whether the final data was 
+written to the file successfully or not. Once data has been flushed, Close() 
+is effectively a no-operation.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+*/
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileFlush, MODULEUID, Session().Handle(), SubSessionHandle(), NULL);
+
+	TInt r = RSubSessionBase::SendReceive(EFsFileFlush);
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileFlushReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C void RFile::Flush(TRequestStatus& aStatus)
+/**
+Commits data to the storage device and flushes internal buffers without closing 
+the file.
+
+Although RFile::Close() also flushes internal buffers, it is often useful 
+to call Flush() before a file is closed. This is because Close() returns no 
+error information, so there is no way of telling whether the final data was 
+written to the file successfully or not. Once data has been flushed, Close() 
+is effectively a no-operation.
+
+@param aStatus Request status. On completion contains KErrNone if successful, 
+               otherwise one of the other system-wide error codes.
+*/
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileFlush, MODULEUID, Session().Handle(), SubSessionHandle(), &aStatus);
+
+	RSubSessionBase::SendReceive(EFsFileFlush, aStatus);
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileFlushReturn, MODULEUID);
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Size(TInt& aSize) const
+/**
+Gets the current file size.
+
+@param aSize On return, the size of the file in bytes.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+*/
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileSize, MODULEUID, Session().Handle(), SubSessionHandle());
+
+	TInt64 size = aSize;
+	TPckg<TInt64> pkSize(size);
+	TInt r = SendReceive(EFsFileSize|KIpcArgSlot0Desc,TIpcArgs(&pkSize));
+	if(KErrNone != r)
+		return r;
+	aSize = I64LOW(size);
+#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+	if (size > KMaxTInt)
+		return (KErrTooBig);
+#endif
+
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileSizeReturn, MODULEUID, r, aSize);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::SetSize(TInt aSize)
+/**
+Sets the file size.
+
+If the size of the file is reduced, data may be lost from 
+the end of the file.
+
+Note:
+
+1. The current file position remains unchanged unless SetSize() reduces the size 
+   of the file in such a way that the current file position is now beyond
+   the end of the file. In this case, the current file position is set to
+   the end of file. 
+
+2. If the file was not opened for writing, an error is returned.
+
+@param aSize The new size of the file, in bytes. This value must not be negative, otherwise the function raises a panic.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+
+@panic FSCLIENT 20 If aSize is negative.
+
+*/
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileSetSize, MODULEUID, Session().Handle(), SubSessionHandle(), aSize, 0);
+
+	TInt r = SendReceive(EFsFileSetSize,TIpcArgs(aSize));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetSizeReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Att(TUint& aVal) const
+/**
+Gets the file's attributes.
+
+@param aVal A bitmask which, on return, contains the file’s attributes.
+            For more information, see KEntryAttNormal and the other
+            file/directory attributes.    
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+        
+@see KEntryAttNormal        
+*/
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileAtt, MODULEUID, Session().Handle(), SubSessionHandle());
+
+	TPtr8 a((TUint8*)&aVal,sizeof(TUint));
+	
+	TInt r = SendReceive(EFsFileAtt,TIpcArgs(&a));
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileAttReturn, MODULEUID, r, aVal);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::SetAtt(TUint aSetAttMask,TUint aClearAttMask)
+/**
+Sets or clears file attributes using two bitmasks.
+
+The first mask controls which attributes are set.
+The second controls which attributes are cleared.
+
+Notes:
+
+1. The file must have been opened for writing, or an error is returned.
+
+2. A panic is raised if any attribute is specified in both bitmasks.
+
+3. An attempt to set or clear the KEntryAttDir, KEntryAttVolume or KEntryAttRemote
+   attributes have no effect.
+
+4. The new attribute values take effect when the file is flushed or closed (which 
+   implies a flush).
+
+@param aSetAttMask   A bitmask indicating the file attributes to be set
+@param aClearAttMask A bitmask indicating the attributes to be cleared. For 
+                     more information see KEntryAttNormal, and the other
+                     file/directory attributes.
+                     
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+        
+@panic FSCLIENT 21 if the same attribute bit is set in both bitmasks.
+*/
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileSetAtt, MODULEUID, Session().Handle(), SubSessionHandle(), aSetAttMask, aClearAttMask);
+
+	__ASSERT_ALWAYS((aSetAttMask&aClearAttMask)==0,Panic(EAttributesIllegal));
+
+	TInt r = SendReceive(EFsFileSetAtt,TIpcArgs(aSetAttMask,aClearAttMask));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetAttReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Modified(TTime& aTime) const
+/**
+Gets local date and time the file was last modified, in universal time.
+
+@param aTime On return, contains the date and time the file was last modified in UTC.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+*/
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileModified, MODULEUID, Session().Handle(), SubSessionHandle());
+
+	TPtr8 t((TUint8*)&aTime,sizeof(TTime));
+	TInt r = SendReceive(EFsFileModified,TIpcArgs(&t));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileModifiedReturn, MODULEUID, r, I64LOW(aTime.Int64()), I64HIGH(aTime.Int64()));
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::SetModified(const TTime& aTime)
+/**
+Sets the date and time the file was last modified. UTC date and time should be used.
+
+Notes:
+
+1. The file must have been opened for writing, or an error is returned.
+
+2. The new modified time takes effect when the file is flushed or closed (which 
+   implies a flush).
+
+@param aTime The new date and time the file was last modified, in universal time.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+*/
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileSetModified, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aTime.Int64()), I64HIGH(aTime.Int64()));
+
+	TPtrC8 t((TUint8*)&aTime,sizeof(TTime));
+	TInt r = SendReceive(EFsFileSetModified,TIpcArgs(&t));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetModifiedReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Set(const TTime& aTime,TUint aMask,TUint aVal)
+/**
+Sets the file’s attributes, and the date and time it was last modified.
+
+It combines the functionality of SetAtt() and SetModified()
+
+An attempt to set or clear the KEntryAttDir, KEntryAttVolume or KEntryAttRemote 
+attributes have no effect. 
+
+@param aTime The new date and time the file was last modified. UTC date and time should be used.
+@param aMask A bitmask indicating the file attributes to be set
+@param aVal  A bitmask indicating the attributes to be cleared. For 
+             more information see KEntryAttNormal, and the other
+             file/directory attributes.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+        
+@panic FSCLIENT 21 if the same attribute bit is set in both bitmasks.
+
+@see RFile::SetModified
+@see RFile::SetAtt
+*/
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileSet, MODULEUID, 
+		Session().Handle(), SubSessionHandle(), I64LOW(aTime.Int64()), I64HIGH(aTime.Int64()), aMask, aVal);
+
+	__ASSERT_ALWAYS((aVal&aMask)==0,Panic(EAttributesIllegal));
+	TPtrC8 t((TUint8*)&aTime,sizeof(TTime));
+	TInt r = SendReceive(EFsFileSet,TIpcArgs(&t,aMask,aVal));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::ChangeMode(TFileMode aNewMode)
+/**
+Switches an open file's access mode between EFileShareExclusive and EFileShareReadersOnly.
+
+This allows or disallows read-only access without having to close and re-open the file.
+
+@param aNewMode The new access mode.
+
+@return KErrNone, if successful;
+        KErrArgument, if aNewMode has any value other than the two specified;
+        KErrAccessDenied, if:
+        a) the function is called when the current file share
+        mode is EFileShareAny;
+        b) the file has multiple readers, and an attempt is made
+        to change the share mode to EFileShareExclusive; 
+        c) the file has been opened for writing in EFileShareExclusive mode, and an 
+        attempt is made to change the access mode to EFileShareReadersOnly.
+
+@capability Dependent If the path starts with /Resource then capability DiskAdmin is required
+
+*/
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileChangeMode, MODULEUID, Session().Handle(), SubSessionHandle(), aNewMode);
+
+	if (aNewMode!=EFileShareExclusive && aNewMode!=EFileShareReadersOnly)
+		return(KErrArgument);
+	TInt r = SendReceive(EFsFileChangeMode,TIpcArgs(aNewMode));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileChangeModeReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Rename(const TDesC& aNewName)
+/**
+Renames a file.
+
+If aNewName specifies a different directory to the one in which 
+the file is currently located, then the file is moved.
+
+No other process may have access to the file, that is, the file must have 
+been opened in EFileShareExclusive share mode, or an error is returned. The 
+file must have been opened for writing (using EFileWrite access mode). An 
+error is returned if a file with the new filename already exists in the target 
+directory.
+
+The file or directory may not be moved to another device by this means, either 
+explicitly (by another drive specified in the name) or implicitly (because 
+the directory has been mapped to another device with RFs::SetSubst()).
+
+Note that the function builds up the new file specification by using all
+of the path components specified
+in aNewName (directory path, filename and extension), 
+then adding any missing components from the current file specification, and 
+finally adding any missing components from the session path. A consequence 
+of this is that you cannot rename a file to remove its extension. An alternative 
+to this function is RFs::Rename() which renames the file using the new name 
+as provided.
+
+@param aNewName The new file name and/or directory path. No part may contain 
+                wildcard characters or an error is returned.
+                
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+
+@capability Dependent If aNewName starts with /Sys then capability Tcb is required
+@capability Dependent If aNewName starts with /Resource then capability Tcb is required
+@capability Dependent If aNewName starts with /Private and does not match this process'
+					  SID then AllFiles capability is required.
+
+*/
+	{
+	TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileRename, MODULEUID, Session().Handle(), SubSessionHandle(), aNewName);
+
+	TInt r = SendReceive(EFsFileRename,TIpcArgs(&aNewName));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileRenameReturn, MODULEUID, r);
+	return r;
+	}
+
+
+
+
+EFSRV_EXPORT_C TInt RFile::Drive(TInt &aDriveNumber, TDriveInfo &aDriveInfo) const
+/**
+Gets information about the drive on which this file resides.
+ 
+@param aDriveNumber On return, the drive number.
+
+@param aDriveInfo   On return, contains information describing the drive
+                    and the medium mounted on it. The value of TDriveInfo::iType
+                    shows whether the drive contains media.
+
+@return       KErrNone, if successful, otherwise one of the other
+              system-wide error codes
+              
+@see RFs::Drive
+*/
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileDrive, MODULEUID, Session().Handle(), SubSessionHandle());
+
+	TPckg<TInt> pki(aDriveNumber);
+	TPckg<TDriveInfo> pkdi(aDriveInfo);
+	TInt r = SendReceive(EFsFileDrive,TIpcArgs(&pki,&pkdi));
+
+	TRACERET4(UTF::EBorder, UTraceModuleEfsrv::EFileDriveReturn, MODULEUID, r, aDriveInfo.iDriveAtt, aDriveInfo.iMediaAtt, aDriveInfo.iType);
+	return r;
+	}
+
+
+TInt RFile::Clamp(RFileClamp& aHandle)
+/**
+Instructs the File Server that the file is not to be modified on storage media.
+ 
+@param aHandle		On return, a handle to the file.
+
+@return				KErrNone, if successful, otherwise one of the other
+					system-wide error codes
+              
+@see RFs::Unclamp
+*/
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileClamp, MODULEUID, Session().Handle(), SubSessionHandle());
+
+	TPckg<RFileClamp> pkHandle(aHandle);
+	TInt r = SendReceive(EFsFileClamp,TIpcArgs(& pkHandle));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileClampReturn, MODULEUID, r);
+	return r;
+	}
+
+/**
+Fetches the Block Map of a file. Each file in the file system will consist of
+a number of groups of blocks. Each group represents a number of contiguous blocks.
+Such a group is represented by the TBlockMapEntry class. The full Block Map representing
+the file may be determined by repeatedly calling RFile::BlockMap until KErrCompletion is
+returned.
+
+Note:
+
+1. If the Block Map for the whole file is not required, then a start and end position 
+   for a section of the file can be specified. Both of these parameters specify offsets
+   from the start of the file in bytes.
+
+@param aInfo		A structure describing a group of block maps.
+
+@param aStartPos	A start position for a desired section of the file.
+
+@param aEndPos		An end position for a desired section of the file. If not passed, then the end of the 
+					file is assumed.
+
+@return				KErrNone until the end of the file or the file section is successfully reached;
+					KErrCompletion if the end of the file is reached;
+					KErrNotSupported if the file system does not support Block Mapping or the media is either removable or not pageable.
+*/
+EFSRV_EXPORT_C TInt RFile::BlockMap(SBlockMapInfo& aInfo, TInt64& aStartPos, TInt64 aEndPos, TInt aBlockMapUsage) const
+	{
+	TRACE7(UTF::EBorder, UTraceModuleEfsrv::EFileBlockMap, MODULEUID, 
+		Session().Handle(), SubSessionHandle(), I64LOW(aStartPos), I64HIGH(aEndPos), I64LOW(aEndPos), I64HIGH(aEndPos), aBlockMapUsage);
+
+	SBlockMapArgs args;
+	args.iStartPos = aStartPos;
+	args.iEndPos = aEndPos;
+	TPckg<SBlockMapInfo> pkInfo(aInfo);
+	TPckg<SBlockMapArgs> pkArgs(args);
+ 	TInt r = SendReceive(EFsBlockMap, TIpcArgs(&pkInfo, &pkArgs, aBlockMapUsage));
+	if(r==KErrNone)
+		aStartPos = args.iStartPos;
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileBlockMapReturn, MODULEUID, r);
+	return r;
+	}
+
+
+#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+/**
+Opens an existing file for reading or writing.
+
+If the file does not already exist, an error is returned.
+
+This is equivalent to calling RFile::Open except that this function 
+can open files of size greater than 2GB - 1 also.
+
+Notes:
+
+1. To close the file, use Close()
+
+2. Attempting to open a file with the read-only attribute using the EFileWrite
+    access mode results in an error.
+
+3. After a file has been opened, the current write position is set to the start
+    of the file.
+    If necessary, use RFile64::Seek() to move to a different position within
+    the file.
+    
+4. It enables big file support to handle files whose size are greater then 2GB-1
+
+@param aFs   The file server session.
+@param aName The name of the file. Any path components (i.e. drive letter
+             or directory), which are not specified, are taken from
+             the session path.
+@param aMode The mode in which the file is opened. See TFileMode.
+
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+    
+@see TFileMode
+@see RFile::Open()
+
+@capability Dependent If the path for aName is /Sys and aMode is neither
+                      EFileShareReadersOnly nor EFileRead then Tcb capability is required.
+@capability Dependent If the path for aName is /Sys and aMode is either
+                      EFileShareReadersOnly or EFileRead then Allfiles capability is required.
+@capability Dependent If the path for aName begins with /Private and does not match this process'
+                      SID then AllFiles capability is required.
+@capability Dependent If the path for aName begins with /Resource and aMode is neither
+                       EFileShareReadersOrWriters|EFileRead nor EFileShareReadersOnly 
+                       nor EFileRead then Tcb capability is required.
+
+*/
+EFSRV_EXPORT_C TInt RFile64::Open(RFs& aFs,const TDesC& aName,TUint aFileMode)
+	{
+	TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileOpen, MODULEUID, aFs.Handle(), aFileMode, aName);
+	
+	TInt r = CreateSubSession(aFs,EFsFileOpen,TIpcArgs(&aName,aFileMode|EFileBigFile));
+	
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileOpenReturn, MODULEUID, r, SubSessionHandle());
+	return r;
+	}
+
+/**
+Creates and opens a new file for writing.
+
+If the file already exists, an error is returned.
+
+If the resulting path does not exist, then the operation cannot proceed and
+the function returns an error code.
+
+This is equivalent to calling RFile::Create except that the file created with 
+this function can grow beyond 2GB - 1 also.
+
+Notes:
+
+1. To close the file, use Close()
+
+2. It automatically sets the file's archive attribute.
+
+3. It enables big file support to handle files whose size are greater then 2GB-1
+
+
+@param aFs   The file server session.
+@param aName The name of the file. Any path components (i.e. drive letter
+             or directory), which are not specified, are taken from
+             the session path.
+@param aMode The mode in which the file is opened. The access mode is
+             automatically set to EFileWrite. See TFileMode.
+
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+        
+@see RFile::Create()
+@see TFileMode
+
+@capability Dependent If the path in aName starts with /Sys then capability Tcb is required
+@capability Dependent If the path in aName starts with /Resource then capability Tcb is required
+@capability Dependent If the path in aName starts with /Private and does not match this process'
+                      SID then AllFiles capability is required.
+
+*/
+EFSRV_EXPORT_C TInt RFile64::Create(RFs& aFs,const TDesC& aName,TUint aFileMode)
+	{
+	TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileCreate, MODULEUID, aFs.Handle(), aFileMode, aName);
+
+	TInt r = CreateSubSession(aFs,EFsFileCreate,TIpcArgs(&aName,aFileMode|EFileBigFile));
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileCreateReturn, MODULEUID, r, SubSessionHandle());
+	return r;
+	}
+
+/**
+Opens a file for writing, replacing the content of any existing file of the
+same name if it exists, or creating a new file if it does not exist.
+
+This is equivalent to calling RFile::Replace except that the file created or replaced 
+with this function can grow beyond 2GB - 1 also.
+
+
+If the resulting path exists, then:
+
+- the length of an existing file with the same filename is re-set to zero 
+
+- a new file is created, if no existing file with the same filename can be found.
+
+If the resulting path does not exist, then the operation cannot proceed and
+the function returns an error code.
+
+Notes:
+
+- To close the file, use Close(), defined in the base class RFsBase.
+
+- It automatically sets the file's archive attribute.
+
+- It enables big file support to handle files whose size are greater then 2GB-1
+
+
+@param aFs   The file server session.
+@param aName The name of the file. Any path components (i.e. drive letter
+             or directory), which are not specified, are taken from
+             the session path.
+@param aMode The mode in which the file is opened. The access mode is
+             automatically set to EFileWrite. See TFileMode.
+
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+        
+@see TFileMode
+@see RFile::Replace()
+
+@capability Dependent If the path in aName starts with /Sys then capability Tcb is required
+@capability Dependent If the path in aName starts with /Resource then capability Tcb is required
+@capability Dependent If the path in aName starts with /Private and does not match this process'
+                      SID then AllFiles capability is required.
+
+*/
+EFSRV_EXPORT_C TInt RFile64::Replace(RFs& aFs,const TDesC& aName,TUint aFileMode)
+	{
+	TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileReplace, MODULEUID, aFs.Handle(), aFileMode, aName);
+
+	TInt r = CreateSubSession(aFs,EFsFileReplace,TIpcArgs(&aName,aFileMode|EFileBigFile));
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileReplaceReturn, MODULEUID, r, SubSessionHandle());
+	return r;
+	}
+
+
+/**
+Creates and opens a temporary file with a unique name for writing and reading.
+This is equivalent to calling RFile::Temp except that the file created 
+with this function can grow beyond 2GB - 1 also.
+
+
+Notes:
+
+1. To close the file, use Close()
+2. It enables big file support to handle files whose size are greater then 2GB-1
+
+@param aFs   The file server session.
+@param aPath The directory in which the file is created.
+@param aName On return, contains the full path and file name of the file.
+             The filename is guaranteed to be unique within the directory
+             specified by aPath.
+@param aMode The mode in which the file is opened. The access mode is
+             automatically set to EFileWrite. See TFileMode.
+
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+        
+@see TFileMode
+@see RFile::Temp()
+
+@capability Dependent If aPath starts with /Sys then capability Tcb is required
+@capability Dependent If aPath starts with /Resource then capability Tcb is required
+@capability Dependent If aPath starts with /Private and does not match this process'
+                      SID then AllFiles capability is required.
+*/
+EFSRV_EXPORT_C TInt RFile64::Temp(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode)
+	{
+   	TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileTemp, MODULEUID, aFs.Handle(), aPath, aFileMode);
+	TInt r = CreateSubSession(aFs,EFsFileTemp,TIpcArgs(&aPath,aFileMode|EFileBigFile,&aName));
+	TRACERETMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileTempReturn, MODULEUID, r, SubSessionHandle(), aName);
+	return r;
+	}
+
+
+/**
+Allows a server to adopt an already open file from a client.
+The client's RFs and RFile or RFile64 handles are contained in message slots within aMsg.
+
+Assumes that the client's RFs and RFile or RFile64 handles have been sent to the server
+using TransferToServer().
+
+This is equivalent to calling RFile::AdoptFromClient
+except that the file adopted can be enlarged to sizes beyond 2GB-1.
+
+Note: 
+If a RFile handle is received from the client then enlarging the file beyond
+2GB-1 might result in inconsistent behaviour by the client, since it(client) would 
+not be able to handle files of size greater than 2GB-1.
+
+If a RFile64 handle is received from the client then enlarging the file beyond
+2GB-1 should not cause any issues since the client would be 
+capable of handling files of size greater than 2GB-1.
+
+This RFile or RFile64 will own it's RFs session so that when the sub-session (RFile or RFile64) 
+is closed so will the RFs session.
+
+@param	aMsg		The message received from the client
+@param	aFsHandleIndex	The index that identifies the message slot 
+					of a file server session (RFs) handle
+@param aFileHandleIndex The index that identifies the message slot 
+					of the sub-session (RFile or RFile64) handle of the already opened file
+            
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+*/
+EFSRV_EXPORT_C TInt RFile64::AdoptFromClient(const RMessage2& aMsg, TInt aFsHandleIndex, TInt aFileHandleIndex)
+	{
+	TInt fileHandle = NULL;
+
+	TInt r = KErrNone;
+	if (aFileHandleIndex == 0)
+		fileHandle = aMsg.Int0();
+	else if (aFileHandleIndex == 1)
+   		fileHandle = aMsg.Int1();
+	else if (aFileHandleIndex == 2)
+		fileHandle = aMsg.Int2();
+	else if (aFileHandleIndex == 3)
+		fileHandle = aMsg.Int3();
+	else
+		r = KErrArgument;
+
+#ifdef SYMBIAN_FTRACE_ENABLE
+	TInt handle = NULL;
+	if (aFsHandleIndex == 0)
+		handle = aMsg.Int0();
+	else if (aFsHandleIndex == 1)
+   		handle = aMsg.Int1();
+	else if (aFsHandleIndex == 2)
+		handle = aMsg.Int2();
+	else if (aFsHandleIndex == 3)
+		handle = aMsg.Int3();
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClient, MODULEUID, handle, fileHandle, aFsHandleIndex, aFileHandleIndex);
+#endif
+
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r);
+		return r;
+		}
+
+	// Duplicates the file server (RFs) session handle identified by an 
+	// existing handle contained in the message slot at index aFsHandleIndex
+	RFs fs;
+	r = fs.Open(aMsg, aFsHandleIndex, KFileServerPolicy);
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r);
+		return r;
+		}
+
+	//return CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle));
+	// Slot 1: Indicate Large File Supportis required.
+	r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle, KFileAdopt64));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r, Session().Handle(), SubSessionHandle());
+
+	return r;
+	}
+
+
+/**
+Allows a client to adopt an already open file from a server.
+
+Assumes that the server's RFs and RFile or RFile64 handles have been sent to the 
+client using TransferToClient().
+
+This is equivalent to calling RFile::AdoptFromServer
+except that the file adopted can be enlarged to sizes beyond 2GB-1.
+
+Note: 
+If a RFile handle is received from the server then enlarging the file beyond
+2GB-1 might result in inconsistent behaviour by the server, since it(server) would 
+not be able to handle files of size greater than 2GB-1.
+
+If a RFile64 handle is received from the server then enlarging the file beyond
+2GB-1 should not cause any issues since the server would be capable of 
+handling files of size greater than 2GB-1.
+
+This RFile or RFile64 will own it's RFs session so that when the sub-session (RFile or RFile64) 
+is closed so will the RFs session.
+
+@param aFsHandle The file server session (RFs) handle
+@param aFileHandle The file (RFile or RFile64) handle of the already opened file
+            
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+*/
+EFSRV_EXPORT_C TInt RFile64::AdoptFromServer(TInt aFsHandle, TInt aFileHandle)
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServer, MODULEUID, aFsHandle, aFileHandle);
+
+	RFs fs;
+	TInt r = fs.SetReturnedHandle(aFsHandle, KFileServerPolicy);
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServerReturn, MODULEUID, r);
+		return r;
+		}
+
+	//return(CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(aFileHandle)));
+	// Slot 1: Indicate Large File Supportis required.
+	r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(aFileHandle, KFileAdopt64));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServerReturn, MODULEUID, r, Session().Handle(), SubSessionHandle());
+
+	return r;
+	}
+
+
+/**
+Allows a server to adopt an already open file from a client process.
+The client's file-server (RFs) and file (RFile or RFile64) handles are contained in 
+this process's environment data slots.
+
+Assumes that the client's RFs and RFile or RFile64 handles have been sent to the server process
+using TransferToProcess().
+
+This is equivalent to calling RFile::AdoptFromCreator
+except that the file adopted can be enlarged to sizes beyond 2GB-1.
+
+Note: 
+If a RFile handle is received from the client then enlarging the file beyond
+2GB-1 might result in inconsistent behaviour by the client, since it(client) would 
+not be able to handle files of size greater than 2GB-1.
+
+If a RFile64 handle is received from the client then enlarging the file beyond
+2GB-1 should not cause any issues since the client would be capable of 
+handling files of size greater than 2GB-1.
+
+This RFile or RFile64 will own it's RFs session so that when the sub-session (RFile or RFile64) 
+is closed so will the RFs session.
+
+@param	aFsHandleIndex	An index that identifies the slot in the process
+					environment data that contains the file server session (RFs) handle
+@param	aFileHandleIndex	An index that identifies the slot in the process
+					environment data that contains the sub-session (RFile or RFile64) handle 
+					of the already opened file
+            
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+*/
+EFSRV_EXPORT_C TInt RFile64::AdoptFromCreator(TInt aFsHandleIndex, TInt aFileHandleIndex)
+	{
+	TInt fileHandle;
+	TInt r = User::GetTIntParameter(aFileHandleIndex,  fileHandle);
+
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreator, MODULEUID, fileHandle, aFsHandleIndex, aFileHandleIndex);
+
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r);
+		return r;
+		}
+
+
+	// Duplicates the file server (RFs) session handle identified by an 
+	// existing handle contained in the environment slot at index aFsHandleIndex
+	RFs fs;
+	r = fs.Open(aFsHandleIndex, KFileServerPolicy);
+	if (r != KErrNone)
+		{
+		TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r);
+		return r;
+		}
+
+	//return(CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle)));
+	// Slot 1: Indicate Large File Supportis required.
+	r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle, KFileAdopt64));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r, Session().Handle(), SubSessionHandle());
+
+	return r;
+	}
+
+
+/**
+Reads from the file at the specified offset within the file
+
+This is a synchronous function.
+
+This is equivalent to calling RFile::Read(TInt, TDes8&) except that this function
+accepts TInt64, instead of TInt, as its first parameter. This allows to specify 
+the read position beyond 2GB-1.
+
+@see RFile::Read(TInt aPos, TDes8& aDes)
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+
+@param aPos Position of first byte to be read.  This is an offset from
+            the start of the file. If no position is specified, reading
+            begins at the current file position. 
+            If aPos is beyond the end of the file, the function returns
+            a zero length descriptor.
+            
+@param aDes The descriptor into which binary data is read. Any existing content
+            is overwritten. On return, its length is set to the number of
+            bytes read.
+            
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+
+@panic FSCLIENT 19 if aPos is negative.        
+*/
+EFSRV_EXPORT_C TInt RFile64::Read(TInt64 aPos, TDes8& aDes) const
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aDes.MaxLength());
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+
+	TInt r;
+	if (!(I64HIGH(aPos+1)))
+		{
+		r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),I64LOW(aPos)));
+		}
+	else
+		{
+		TPckgC<TInt64> pkPos(aPos);
+ 		r = SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.MaxLength(),&pkPos));
+		}
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length());
+
+	return r;
+	}
+
+
+/**
+Reads from the file at the specified offset within the file.
+
+This is an asynchronous function.
+
+This is equivalent to calling RFile::Read(TInt, TDes8&, TRequestStatus&) except 
+that this function accepts TInt64, instead of TInt, as its first parameter. 
+This allows to specify the read position beyond 2GB-1.
+
+@see RFile::Read(TInt aPos, TDes8& aDes, TRequestStatus& aStatus)
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+
+@param aPos    Position of first byte to be read. This is an offset from
+               the start of the file. If no position is specified, 
+               reading begins at the current file position.
+               If aPos is beyond the end of the file, the function returns
+               a zero length descriptor.
+               
+@param aDes    The descriptor into which binary data is read. Any existing
+               content is overwritten. On return, its length is set to
+               the number of bytes read.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+               
+@param aStatus The request status. On completion, contains an error code of KErrNone 
+               if successful, otherwise one of the other system-wide error codes.
+
+@panic FSCLIENT 19 if aPos is negative.        
+*/
+EFSRV_EXPORT_C void RFile64::Read(TInt64 aPos, TDes8& aDes, TRequestStatus& aStatus) const
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aDes.MaxLength(), &aStatus);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	if (!(I64HIGH(aPos+1)))
+		{
+		RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),I64LOW(aPos)),aStatus);
+		}
+	else
+		{
+		TPckgC<TInt64> pkPos(aPos);
+		RSubSessionBase::SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.MaxLength(),&pkPos),aStatus);
+		}
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID);
+	}
+
+
+/**
+Reads the specified number of bytes of binary data from the file at a specified 
+offset within the file.
+
+This is a synchronous function.
+
+This is equivalent to calling RFile::Read(TInt, TDes8&, TInt) except 
+that this function accepts TInt64, instead of TInt, as its first parameter. 
+This allows to specify the read position beyond 2GB-1.
+
+@see RFile::Read(TInt aPos, TDes8& aDes, TInt aLength)
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+Assuming aLength is less than the maximum length of the descriptor, the only
+circumstances in which Read() can return fewer bytes than requested is when
+the end of file is reached or if an error has occurred.
+
+@param aPos    Position of first byte to be read. This is an offset from
+               the start of the file. If no position is specified, 
+               reading begins at the current file position.
+               If aPos is beyond the end of the file, the function returns
+               a zero length descriptor.
+               
+@param aDes    The descriptor into which binary data is read. Any existing
+               contents are overwritten. On return, its length is set to
+               the number of bytes read.
+@param aLength The number of bytes to read from the file into the descriptor. 
+               If an attempt is made to read more bytes than the descriptor's
+               maximum length, then the function updates aStatus parameter with KErrOverflow.
+               It must not be negative otherwise the function updates aStatus with KErrArgument.
+               
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+
+@panic FSCLIENT 19 if aPos is negative.        
+*/    	
+EFSRV_EXPORT_C TInt RFile64::Read(TInt64 aPos, TDes8& aDes, TInt aLength) const
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	if (aLength==0)
+		{
+		aDes.Zero();
+		return(KErrNone);
+		}
+	else if(aLength>aDes.MaxLength())
+		{
+		return(KErrOverflow);
+		}
+
+	TInt r;
+	if (!(I64HIGH(aPos+1)))
+		{
+		r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,I64LOW(aPos)));
+		}
+	else
+		{
+		TPckgC<TInt64> pkPos(aPos);
+		r = SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos));
+		}
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length());
+
+	return r;
+	}
+
+
+/**
+Reads the specified number of bytes of binary data from the file at a specified 
+offset within the file.
+
+This is an asynchronous function.
+
+This is equivalent to calling RFile::Read(TInt, TDes8&, TInt, TRequestStatus&) except 
+that this function accepts TInt64, instead of TInt, as its first parameter. 
+This allows to specify the read position beyond 2GB-1.
+
+@see RFile::Read(TInt aPos, TDes8& aDes,TInt aLength,TRequestStatus& aStatus)
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+Assuming aLength is less than the maximum length of the descriptor, the only
+circumstances in which Read() can return fewer bytes than requested is when
+the end of file is reached or if an error has occurred.
+
+@param aPos    Position of first byte to be read. This is an offset from
+               the start of the file. If no position is specified, 
+               reading begins at the current file position.
+               If aPos is beyond the end of the file, the function returns
+               a zero length descriptor.
+               
+@param aDes    The descriptor into which binary data is read. Any existing
+               contents are overwritten. On return, its length is set to
+               the number of bytes read.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aLength The number of bytes to read from the file into the descriptor. 
+               If an attempt is made to read more bytes than the descriptor's
+               maximum length, then the function returns KErrOverflow.
+               It must not be negative otherwise the function returns KErrArgument.
+
+@param aStatus Request status. On completion contains KErrNone if successful, 
+               otherwise one of the other system-wide error codes.
+               
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+EFSRV_EXPORT_C void RFile64::Read(TInt64 aPos, TDes8& aDes, TInt aLength,TRequestStatus& aStatus) const
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength, &aStatus);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	if (aLength==0)
+		{
+		aDes.Zero();
+		TRequestStatus* req=(&aStatus);
+		User::RequestComplete(req,KErrNone);
+		return;
+		}
+	else if(aLength>aDes.MaxLength())
+		{
+		TRequestStatus* req=(&aStatus);
+		User::RequestComplete(req,KErrOverflow);
+		return;
+		}
+	
+	if (!(I64HIGH(aPos+1)))
+		{
+		RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,I64LOW(aPos)),aStatus);
+		}
+	else
+		{
+		TPckgC<TInt64> pkPos(aPos);
+		RSubSessionBase::SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos),aStatus);
+		}
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID);
+	}
+
+
+/**
+Writes to the file at the specified offset within the file
+
+This is a synchronous function.
+
+This is equivalent to calling RFile::Write(TInt, TDes8&) except 
+that this function accepts TInt64, instead of TInt, as its first parameter. 
+This allows to specify the write position beyond 2GB-1.
+
+@see RFile::Write(TInt aPos, TDes8& aDes)
+
+
+@param aPos The offset from the start of the file at which the first
+            byte is written. 
+            If a position beyond the end of the file is specified, then
+            the write operation begins at the end of the file.
+            If the position has been locked, then the write fails.
+            
+@param aDes The descriptor from which binary data is written. The function writes 
+            the entire contents of aDes to the file.
+            
+@return KErrNone if successful, otherwise one of the other system-wide error
+        codes.
+
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+EFSRV_EXPORT_C TInt RFile64::Write(TInt64 aPos, const TDesC8& aDes)
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aDes.Length());
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+
+	TInt r;
+	if (!(I64HIGH(aPos+1)))
+		{
+		r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),I64LOW(aPos)));
+		}
+	else
+		{
+		TPckgC<TInt64> pkPos(aPos);
+		r = SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.Length(),&pkPos));
+		}
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3Return, MODULEUID, r);
+	return r;
+	}
+
+
+/**
+Writes to the file at the specified offset within the file
+
+This is an asynchronous function.
+
+This is equivalent to calling RFile::Write(TInt, TDes8&, TRequestStatus&) except 
+that this function accepts TInt64, instead of TInt, as its first parameter. 
+This allows to specify the write position beyond 2GB-1.
+
+@see RFile::Write(TInt aPos, TDes8& aDes, TRequestStatus& aStatus)
+
+
+@param aPos    The offset from the start of the file at which the first
+               byte is written. 
+               If a position beyond the end of the file is specified, then
+               the write operation begins at the end of the file.
+               If the position has been locked, then the write fails.
+               
+@param aDes    The descriptor from which binary data is written. The function
+               writes the entire contents of aDes to the file.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aStatus Request status. On completion contains KErrNone if successful, 
+               otherwise one of the other system-wide error codes.
+
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+EFSRV_EXPORT_C void RFile64::Write(TInt64 aPos, const TDesC8& aDes,TRequestStatus& aStatus)
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.Length(), &aStatus);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	
+	if (!(I64HIGH(aPos+1)))
+		{
+		RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),I64LOW(aPos)),aStatus);
+		}
+	else
+		{
+		TPckgC<TInt64> pkPos(aPos);
+		RSubSessionBase::SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.Length(),&pkPos),aStatus);
+		}
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4Return, MODULEUID);
+	}
+
+
+/**
+Writes the specified number of bytes to the file at the specified offset within the file.
+
+This is a synchronous function.
+
+This is equivalent to calling RFile::Write(TInt, TDes8&, TInt) except 
+that this function accepts TInt64, instead of TInt, as its first parameter. 
+This allows to specify the write position beyond 2GB-1.
+
+@see RFile::Write(TInt aPos, TDes8& aDes, TInt aLength)
+
+@param aPos    The offset from the start of the file at which the first
+               byte is written. 
+               If a position beyond the end of the file is specified, then
+               the write operation begins at the end of the file.
+               If the position has been locked, then the write fails.
+                             
+@param aDes    The descriptor from which binary data is written.
+@param aLength The number of bytes to be written from aDes .
+               It must not be negative.
+
+@return KErrNone if successful; KErrArgument if aLength is negative;
+        otherwise one of the other system-wide error codes.
+        
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+EFSRV_EXPORT_C TInt RFile64::Write(TInt64 aPos, const TDesC8& aDes,TInt aLength)
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	
+	TInt r;
+	if (!(I64HIGH(aPos+1)))
+		{
+		r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,I64LOW(aPos)));
+		}
+	else
+		{
+		TPckgC<TInt64> pkPos(aPos);
+		r = SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos));
+		}
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r);
+	return r;
+	}
+
+
+/**
+Writes the specified number of bytes to the file at the specified offset within the file.
+
+This is an asynchronous function.
+
+This is equivalent to calling RFile::Write(TInt, TDes8&, TInt, TRequestStatus&) except 
+that this function accepts TInt64, instead of TInt, as its first parameter. 
+This allows to specify the write position beyond 2GB-1.
+
+@see RFile::Write(TInt aPos, TDes8& aDes, TInt aLength, TRequestStatus &aStatus)
+
+@param aPos    The offset from the start of the file at which the first
+               byte is written. 
+               If a position beyond the end of the file is specified, then
+               the write operation begins at the end of the file.
+               If the position has been locked, then the write fails.
+              
+@param aDes    The descriptor from which binary data is written.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aLength The number of bytes to be written from aDes.
+               It must not be negative.
+               
+@param aStatus Request status. On completion contains KErrNone if successful; 
+               KErrArgument if aLength is negative; 
+               otherwise one of the other system-wide error codes.
+
+@panic FSCLIENT 19 if aPos is negative.                       
+*/
+EFSRV_EXPORT_C void RFile64::Write(TInt64 aPos, const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus)
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength, &aStatus);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	
+	if (!(I64HIGH(aPos+1)))
+		{
+		RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,I64LOW(aPos)),aStatus);
+		}
+	else
+		{
+		TPckgC<TInt64> pkPos(aPos);
+		RSubSessionBase::SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos),aStatus);
+		}
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID);
+	}
+
+
+/**
+Sets the the current file position.
+
+The function can also be used to get the current file 
+position without changing it. The file position is the position at which
+reading and writing takes place. The start of the file is position zero.
+
+To retrieve the current file position without changing it, specify ESeekCurrent 
+for the seek mode, and zero for the offset.
+
+This is equivalent to calling RFile::Seek except that this function accepts
+a reference to TInt64, instead of TInt, as its second parameter. 
+This allows to seek to positions beyond 2GB-1.
+
+@see RFile::Seek()
+
+If the seek mode is ESeekStart, then:
+
+1. the function does not modify the aPos argument,
+
+2. the function returns an error if the offset specified is negative.
+
+If the seek mode is ESeekAddress, an error is returned if:
+
+1. the file is not in ROM, 
+
+2. the offset specified is greater than the size of the file.
+
+@param aMode Seek mode. Controls the destination of the seek operation.
+@param aPos  Offset from location specified in aMode. Can be negative.
+             On return contains the new file position.
+             If the seek mode is either ESeekCurrent or ESeekEnd and the offset
+             specifies a position before the start of the file 
+             or beyond the end of the file, then on return, aPos is set to
+             the new file position (either the start or the end of the file).
+             If the seek mode is ESeekAddress, aPos returns the address of
+             the byte at the specified offset within the file.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+*/
+EFSRV_EXPORT_C TInt RFile64::Seek(TSeek aMode, TInt64& aPos) const
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileSeek, MODULEUID, Session().Handle(), SubSessionHandle(), aMode, aPos, 0);
+
+	TPckgC<TInt64> pkOffset(aPos);
+	TPckg<TInt64> pkNewPos(aPos);
+ 	TInt r = SendReceive(EFsFileSeek|KIpcArgSlot0Desc|KIpcArgSlot2Desc,TIpcArgs(&pkOffset,aMode,&pkNewPos));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSeekReturn, MODULEUID, r);
+	return r;
+	}
+
+
+/**
+Gets the current file size.
+
+This is equivalent to calling RFile::Size except that this function accepts
+a reference to TInt64, instead of TInt, as its first parameter. 
+This allows to query file sizes, which are greater than 2GB-1
+
+@see RFile::Size()
+
+
+@param aSize On return, the size of the file in bytes.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+*/
+EFSRV_EXPORT_C TInt RFile64::Size(TInt64& aSize) const
+	{
+	TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileSize2, MODULEUID, Session().Handle(), SubSessionHandle());
+
+	TPckg<TInt64> pkSize(aSize);
+	TInt r = SendReceive(EFsFileSize|KIpcArgSlot0Desc,TIpcArgs(&pkSize));
+
+	TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileSize2Return, MODULEUID, r, I64LOW(aSize), I64HIGH(aSize));
+	return r;
+	}
+
+
+/**
+Sets the file size.
+
+If the size of the file is reduced, data may be lost from 
+the end of the file.
+
+This is equivalent to calling RFile::SetSize except that this function accepts
+a reference to TInt64, instead of TInt, as its first parameter. 
+This allows to set file sizes to greater than 2GB-1
+
+@see RFile::SetSize()
+
+
+Note:
+
+1. The current file position remains unchanged unless SetSize() reduces the size 
+   of the file in such a way that the current file position is now beyond
+   the end of the file. In this case, the current file position is set to
+   the end of file. 
+
+2. If the file was not opened for writing, an error is returned.
+
+@param aSize The new size of the file, in bytes. This value must not be negative, otherwise the function raises a panic.
+
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+
+@panic FSCLIENT 20 If aSize is negative.
+*/
+EFSRV_EXPORT_C TInt RFile64::SetSize(TInt64 aSize)
+	{
+	TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileSetSize, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aSize), I64HIGH(aSize));
+
+	TPckgC<TInt64> pkSize(aSize);
+	TInt r = SendReceive(EFsFileSetSize|KIpcArgSlot0Desc, TIpcArgs(&pkSize));
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetSizeReturn, MODULEUID, r);
+	return r;
+	}
+
+
+/**
+Locks a region within the file as defined by a range of bytes.
+
+This ensures that those bytes are accessible 
+only through the RFile object which claims the lock. To re-allow access by 
+other programs to the locked region, it must either be unlocked or the file 
+closed. Locking can be used to synchronize operations on a file when more 
+than one program has access to the file in EFileShareAny mode.
+
+More than one distinct region of a file can be locked, but an error is returned 
+if more than one lock is placed on the same region. Different RFile objects 
+can lock different parts of the same file as long as the file is opened in 
+EFileShareAny mode. The locked region may extend beyond the end of a file;
+this prevents the file from being extended by other programs.
+
+This is equivalent to calling RFile::Lock except that this function accepts
+TInt64 parameters instead of TInt parameters. 
+This allows to to lock positions in file beyond 2GB-1.
+
+@see RFile::Lock()
+
+@param aPos    Position in file from which to lock; this is the  offset from
+               the beginning of the file.
+@param aLength Number of bytes to lock.
+
+@return KErrNone if successful, otherwise one of the other  system-wide error 
+        codes.
+
+@panic FSCLIENT 17 if aLength is not greater than zero,
+*/
+EFSRV_EXPORT_C TInt RFile64::Lock(TInt64 aPos, TInt64 aLength) const
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileLock, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	TPckgC<TInt64> pkPos(aPos);
+	TPckgC<TInt64> pkLength(aLength);
+
+	TInt r;
+	
+	if(aPos <= KMaxTInt && aLength <= KMaxTInt)
+		r = SendReceive(EFsFileLock,TIpcArgs(I64LOW(aPos), I64LOW(aLength)));
+	else if(aPos <= KMaxTInt)
+		r = SendReceive(EFsFileLock|KIpcArgSlot1Desc,TIpcArgs(I64LOW(aPos), &pkLength));
+	else if(aLength <= KMaxTInt)
+		r = SendReceive(EFsFileLock|KIpcArgSlot0Desc,TIpcArgs(&pkPos, I64LOW(aLength)));
+	else 
+		r = SendReceive(EFsFileLock|KIpcArgSlot0Desc|KIpcArgSlot1Desc,TIpcArgs(&pkPos, &pkLength));
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileLockReturn, MODULEUID, r);
+	return r;
+	}
+
+
+/**
+Unlocks a region within the file as defined by a range of bytes.
+
+A lock can only be removed by the RFile object which claimed the lock.
+
+A portion of a locked region cannot be unlocked. The entire locked region 
+must be unlocked otherwise an error is returned. If any byte within
+the specified range of bytes to unlock is not locked, an error is returned.
+
+This is equivalent to calling RFile::UnLock except that this function accepts
+TInt64 parameters instead of TInt parameters. 
+This allows to to unlock positions in file beyond 2GB-1.
+
+@see RFile::UnLock()
+
+@param aPos    Position in file from which to unlock; this is the  offset from
+               the beginning of the file.
+@param aLength Number of bytes to unlock.
+
+@return KErrNone if successful, otherwise one of the other  system-wide error 
+        codes.
+        
+@panic FSCLIENT 18 if aLength is not greater than zero,
+*/
+EFSRV_EXPORT_C TInt RFile64::UnLock(TInt64 aPos, TInt64 aLength) const
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileUnLock, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength);
+
+	__ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative));
+	
+	TPckgC<TInt64> pkPos(aPos);
+	TPckgC<TInt64> pkLength(aLength);
+	
+	TInt r;
+	
+	if(aPos <= KMaxTInt && aLength <= KMaxTInt)
+		r = SendReceive(EFsFileUnLock,TIpcArgs(I64LOW(aPos), I64LOW(aLength)));
+	else if(aPos <= KMaxTInt)
+		r = SendReceive(EFsFileUnLock|KIpcArgSlot1Desc,TIpcArgs(I64LOW(aPos), &pkLength));
+	else if(aLength <= KMaxTInt)
+		r = SendReceive(EFsFileUnLock|KIpcArgSlot0Desc,TIpcArgs(&pkPos, I64LOW(aLength)));
+	else 
+		r = SendReceive(EFsFileUnLock|KIpcArgSlot0Desc|KIpcArgSlot1Desc,TIpcArgs(&pkPos, &pkLength));
+	
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileUnLockReturn, MODULEUID, r);
+	return r;
+	}
+
+
+/**
+Reads from the file at the specified offset within the file
+
+This is a synchronous function.
+
+This is equivalent to calling RFile::Read(TInt, TDes8&) or RFile64::Read(TInt64, TDes8&)
+except that this function accepts TUint, instead of TInt or TInt64, as its first parameter.
+
+This function is provided for gradual migration of a client from 32-bit RFile APIs
+to 64-bit RFile64 APIs. It is protected under _F32_STRICT_64_BIT_MIGRATION
+macro. If the macro is defined, then it hides this overload, which would then throw
+compile-time errors for any user code that uses TUint parameter for RFile64::Read.
+
+
+@see RFile::Read(TInt aPos, TDes8& aDes)
+@see RFile64::Read(TInt aPos, TDes8& aDes)
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+
+@param aPos Position of first byte to be read.  This is an offset from
+            the start of the file. If no position is specified, reading
+            begins at the current file position. 
+            If aPos is beyond the end of the file, the function returns
+            a zero length descriptor.
+            
+@param aDes The descriptor into which binary data is read. Any existing content
+            is overwritten. On return, its length is set to the number of
+            bytes read.
+            
+@return KErrNone if successful, otherwise one of the other system-wide error 
+        codes.
+
+*/
+EFSRV_EXPORT_C TInt RFile64::Read(TUint aPos,TDes8& aDes) const
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.MaxLength());
+
+	TInt r;
+	if(!(aPos + 1))
+		{
+		r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),aPos));
+		}
+	else
+		{
+		TInt64 pos = aPos;
+		TPckgC<TInt64> pkPos(pos);
+ 		r = SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.MaxLength(),&pkPos));
+		}
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length());
+
+	return r;
+	}
+
+
+/**
+Reads from the file at the specified offset within the file.
+
+This is an asynchronous function.
+
+This is equivalent to calling RFile::Read(TInt, TDes8&, TRequestStatus&) or 
+RFile64::Read(TInt64, TDes8&, TRequestStatus&) except that this function 
+accepts TUint, instead of TInt or TInt64, as its first parameter.
+
+This function is provided for gradual migration of a client from 32-bit RFile APIs
+to 64-bit RFile64 APIs. It is protected under _F32_STRICT_64_BIT_MIGRATION
+macro. If the macro is defined, then it hides this overload, which would then throw
+compile-time errors for any user code that uses TUint parameter for RFile64::Read.
+
+@see RFile::Read(TInt aPos, TDes8& aDes, TRequestStatus& aStatus)
+@see RFile64::Read(TInt aPos, TDes8& aDes, TRequestStatus& aStatus)
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+
+@param aPos    Position of first byte to be read. This is an offset from
+               the start of the file. If no position is specified, 
+               reading begins at the current file position.
+               If aPos is beyond the end of the file, the function returns
+               a zero length descriptor.
+               
+@param aDes    The descriptor into which binary data is read. Any existing
+               content is overwritten. On return, its length is set to
+               the number of bytes read.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+               
+@param aStatus The request status. On completion, contains an error code of KErrNone 
+               if successful, otherwise one of the other system-wide error codes.
+
+*/
+EFSRV_EXPORT_C void RFile64::Read(TUint aPos,TDes8& aDes,TRequestStatus& aStatus) const
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.MaxLength(), &aStatus);
+
+	if(!(aPos + 1))
+		{
+		RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),aPos),aStatus);
+		}
+	else
+		{
+		TInt64 pos = aPos;
+		TPckgC<TInt64> pkPos(pos);
+		RSubSessionBase::SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.MaxLength(),&pkPos),aStatus);
+		}
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID);
+	}
+
+
+/**
+Reads the specified number of bytes of binary data from the file at a specified 
+offset within the file.
+
+This is a synchronous function.
+
+This is equivalent to calling RFile::Read(TInt, TDes8&, TInt) or 
+RFile64::Read(TInt64, TDes8&, TInt) except that this function 
+accepts TUint, instead of TInt or TInt64, as its first parameter.
+
+This function is provided for gradual migration of a client from 32-bit RFile APIs
+to 64-bit RFile64 APIs. It is protected under _F32_STRICT_64_BIT_MIGRATION
+macro. If the macro is defined, then it hides this overload, which would then throw
+compile-time errors for any user code that uses TUint parameter for RFile64::Read.
+
+
+@see RFile::Read(TInt aPos, TDes8& aDes,TInt aLength)
+@see RFile64::Read(TInt aPos, TDes8& aDes,TInt aLength)
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+Assuming aLength is less than the maximum length of the descriptor, the only
+circumstances in which Read() can return fewer bytes than requested is when
+the end of file is reached or if an error has occurred.
+
+@param aPos    Position of first byte to be read. This is an offset from
+               the start of the file. If no position is specified, 
+               reading begins at the current file position.
+               If aPos is beyond the end of the file, the function returns
+               a zero length descriptor.
+               
+@param aDes    The descriptor into which binary data is read. Any existing
+               contents are overwritten. On return, its length is set to
+               the number of bytes read.
+@param aLength The number of bytes to read from the file into the descriptor. 
+               If an attempt is made to read more bytes than the descriptor's
+               maximum length, then the function updates aStatus parameter with KErrOverflow.
+               It must not be negative otherwise the function updates aStatus with KErrArgument.
+               
+@return KErrNone if successful, otherwise one of the other system-wide
+        error codes.
+
+*/    
+EFSRV_EXPORT_C TInt RFile64::Read(TUint aPos,TDes8& aDes,TInt aLength) const
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength);
+
+	if (aLength==0)
+		{
+		aDes.Zero();
+		return(KErrNone);
+		}
+	else if(aLength>aDes.MaxLength())
+		{
+		return(KErrOverflow);
+		}
+	
+	TInt r;
+	if(!(aPos + 1))
+		{
+		r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,aPos));
+		}
+	else
+		{
+		TInt64 pos = aPos;
+		TPckgC<TInt64> pkPos(pos);
+		r = SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos));
+		}
+
+	TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length());
+
+	return r;
+	}
+
+
+/**
+Reads the specified number of bytes of binary data from the file at a specified 
+offset within the file.
+
+This is an asynchronous function.
+
+This is equivalent to calling RFile::Read(TInt, TDes8&, TInt,TRequestStatus&) or 
+RFile64::Read(TInt64, TDes8&, TInt, TRequestStatus&) except that this function 
+accepts TUint, instead of TInt or TInt64, as its first parameter.
+
+This function is provided for gradual migration of a client from 32-bit RFile APIs
+to 64-bit RFile64 APIs. It is protected under _F32_STRICT_64_BIT_MIGRATION
+macro. If the macro is defined, then it hides this overload, which would then throw
+compile-time errors for any user code that uses TUint parameter for RFile64::Read.
+
+
+@see RFile::Read(TInt aPos, TDes8& aDes,TInt aLength,TRequestStatus& aStatus)
+@see RFile64::Read(TInt aPos, TDes8& aDes,TInt aLength,TRequestStatus& aStatus)
+
+Note that when an attempt is made to read beyond the end of the file,
+no error is returned. 
+The descriptor's length is set to the number of bytes read into it.
+Therefore, when reading through a file, the end of file has been reached 
+when the descriptor length, as returned by TDesC8::Length(), is zero.
+Assuming aLength is less than the maximum length of the descriptor, the only
+circumstances in which Read() can return fewer bytes than requested is when
+the end of file is reached or if an error has occurred.
+
+@param aPos    Position of first byte to be read. This is an offset from
+               the start of the file. If no position is specified, 
+               reading begins at the current file position.
+               If aPos is beyond the end of the file, the function returns
+               a zero length descriptor.
+               
+@param aDes    The descriptor into which binary data is read. Any existing
+               contents are overwritten. On return, its length is set to
+               the number of bytes read.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aLength The number of bytes to read from the file into the descriptor. 
+               If an attempt is made to read more bytes than the descriptor's
+               maximum length, then the function returns KErrOverflow.
+               It must not be negative otherwise the function returns KErrArgument.
+
+@param aStatus Request status. On completion contains KErrNone if successful, 
+               otherwise one of the other system-wide error codes.
+               
+*/
+EFSRV_EXPORT_C void RFile64::Read(TUint aPos,TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength, &aStatus);
+
+	if (aLength==0)
+		{
+		aDes.Zero();
+		TRequestStatus* req=(&aStatus);
+		User::RequestComplete(req,KErrNone);
+		return;
+		}
+	else if(aLength>aDes.MaxLength())
+		{
+		TRequestStatus* req=(&aStatus);
+		User::RequestComplete(req,KErrOverflow);
+		return;
+		}
+	
+	if(!(aPos + 1))
+		{
+		RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,aPos),aStatus);
+		}
+	else
+		{
+		TInt64 pos = aPos;
+		TPckgC<TInt64> pkPos(pos);
+		RSubSessionBase::SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos),aStatus);
+		}
+
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID);
+	}
+
+
+/**
+Writes to the file at the specified offset within the file
+
+This is a synchronous function.
+
+This is equivalent to calling RFile::Write(TInt, TDes8&) or 
+RFile64::Write(TInt64, TDes8&) except that this function 
+accepts TUint, instead of TInt or TInt64, as its first parameter.
+
+This function is provided for gradual migration of a client from 32-bit RFile APIs
+to 64-bit RFile64 APIs. It is protected under _F32_STRICT_64_BIT_MIGRATION
+macro. If the macro is defined, then it hides this overload, which would then throw
+compile-time errors for any user code that uses TUint parameter for RFile64::Read.
+
+
+@see RFile::Write(TInt aPos, TDes8& aDes)
+@see RFile64::Write(TInt aPos, TDes8& aDes)
+
+
+@param aPos The offset from the start of the file at which the first
+            byte is written. 
+            If a position beyond the end of the file is specified, then
+            the write operation begins at the end of the file.
+            If the position has been locked, then the write fails.
+            
+@param aDes The descriptor from which binary data is written. The function writes 
+            the entire contents of aDes to the file.
+            
+@return KErrNone if successful, otherwise one of the other system-wide error
+        codes.
+
+*/
+EFSRV_EXPORT_C TInt RFile64::Write(TUint aPos,const TDesC8& aDes)
+	{
+	TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.Length());
+
+	TInt r;
+	if(!(aPos + 1))
+		{
+		r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),aPos));
+		}
+	else
+		{
+		TInt64 pos = aPos;
+		TPckgC<TInt64> pkPos(pos);
+		r = SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.Length(),&pkPos));
+		}
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3Return, MODULEUID, r);
+	return r;
+	}
+
+
+/**
+Writes to the file at the specified offset within the file
+
+This is an asynchronous function.
+
+This is equivalent to calling RFile::Write(TInt, TDes8&,TRequestStatus&) or 
+RFile64::Write(TInt64, TDes8&,TRequestStatus&) except that this function 
+accepts TUint, instead of TInt or TInt64, as its first parameter.
+
+This function is provided for gradual migration of a client from 32-bit RFile APIs
+to 64-bit RFile64 APIs. It is protected under _F32_STRICT_64_BIT_MIGRATION
+macro. If the macro is defined, then it hides this overload, which would then throw
+compile-time errors for any user code that uses TUint parameter for RFile64::Read.
+
+
+@see RFile::Write(TInt aPos, TDes8& aDes,TRequestStatus& aStatus)
+@see RFile64::Write(TInt aPos, TDes8& aDes,TRequestStatus& aStatus)
+
+
+@param aPos    The offset from the start of the file at which the first
+               byte is written. 
+               If a position beyond the end of the file is specified, then
+               the write operation begins at the end of the file.
+               If the position has been locked, then the write fails.
+               
+@param aDes    The descriptor from which binary data is written. The function
+               writes the entire contents of aDes to the file.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aStatus Request status. On completion contains KErrNone if successful, 
+               otherwise one of the other system-wide error codes.
+
+*/
+EFSRV_EXPORT_C void RFile64::Write(TUint aPos,const TDesC8& aDes,TRequestStatus& aStatus)
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.Length(), &aStatus);
+
+	if(!(aPos + 1))
+		{
+		RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),aPos),aStatus);
+		}
+	else
+		{
+		TInt64 pos = aPos;
+		TPckgC<TInt64> pkPos(pos);
+		RSubSessionBase::SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.Length(),&pkPos),aStatus);
+		}
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4Return, MODULEUID);
+	}
+
+
+/**
+Writes the specified number of bytes to the file at the specified offset within the file.
+
+This is a synchronous function.
+
+This is equivalent to calling RFile::Write(TInt, TDes8&,TInt) or 
+RFile64::Write(TInt64, TDes8&,TInt) except that this function 
+accepts TUint, instead of TInt or TInt64, as its first parameter.
+
+This function is provided for gradual migration of a client from 32-bit RFile APIs
+to 64-bit RFile64 APIs. It is protected under _F32_STRICT_64_BIT_MIGRATION
+macro. If the macro is defined, then it hides this overload, which would then throw
+compile-time errors for any user code that uses TUint parameter for RFile64::Read.
+
+
+@see RFile::Write(TInt aPos, TDes8& aDes,TInt aLength)
+@see RFile64::Write(TInt aPos, TDes8& aDes,TInt aLength)
+
+@param aPos    The offset from the start of the file at which the first
+               byte is written. 
+               If a position beyond the end of the file is specified, then
+               the write operation begins at the end of the file.
+               If the position has been locked, then the write fails.
+                             
+@param aDes    The descriptor from which binary data is written.
+@param aLength The number of bytes to be written from aDes .
+               It must not be negative.
+
+@return KErrNone if successful; KErrArgument if aLength is negative;
+        otherwise one of the other system-wide error codes.
+        
+*/
+EFSRV_EXPORT_C TInt RFile64::Write(TUint aPos,const TDesC8& aDes,TInt aLength)
+	{
+	TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength);
+
+	TInt r;
+	if(!(aPos + 1))
+		{
+		r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,aPos));
+		}
+	else
+		{
+		TInt64 pos = aPos;
+		TPckgC<TInt64> pkPos(pos);
+		r = SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos));
+		}
+
+	TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r);
+	return r;
+	}
+
+
+/**
+Writes the specified number of bytes to the file at the specified offset within the file.
+
+This is an asynchronous function.
+
+This is equivalent to calling RFile::Write(TInt, TDes8&,TInt,TRequestStatus&) or 
+RFile64::Write(TInt64, TDes8&,TInt,TRequestStatus&) except that this function 
+accepts TUint, instead of TInt or TInt64, as its first parameter.
+
+This function is provided for gradual migration of a client from 32-bit RFile APIs
+to 64-bit RFile64 APIs. It is protected under _F32_STRICT_64_BIT_MIGRATION
+macro. If the macro is defined, then it hides this overload, which would then throw
+compile-time errors for any user code that uses TUint parameter for RFile64::Read.
+
+
+@see RFile::Write(TInt aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus)
+@see RFile64::Write(TInt aPos, TDes8& aDes,TInt aLength, TRequestStatus& aStatus)
+
+
+@param aPos    The offset from the start of the file at which the first
+               byte is written. 
+               If a position beyond the end of the file is specified, then
+               the write operation begins at the end of the file.
+               If the position has been locked, then the write fails.
+              
+@param aDes    The descriptor from which binary data is written.
+               NB: this function is asynchronous and the request that it
+               represents may not complete until some time after the call
+               to the function has returned. It is important, therefore, that
+               this descriptor remain valid, or remain in scope, until you have
+               been notified that the request is complete.
+
+@param aLength The number of bytes to be written from aDes.
+               It must not be negative.
+               
+@param aStatus Request status. On completion contains KErrNone if successful; 
+               KErrArgument if aLength is negative; 
+               otherwise one of the other system-wide error codes.
+
+*/
+EFSRV_EXPORT_C void RFile64::Write(TUint aPos,const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus)
+	{
+	TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength, &aStatus);
+
+	if(!(aPos + 1))
+		{
+		RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,aPos),aStatus);
+		}
+	else
+		{
+		TInt64 pos = aPos;
+		TPckgC<TInt64> pkPos(pos);
+		RSubSessionBase::SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos),aStatus);
+		}
+	TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID);
+	}
+#else
+EFSRV_EXPORT_C TInt RFile64::Open(RFs& /*aFs*/,const TDesC& /*aName*/,TUint /*aFileMode*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::Create(RFs& /*aFs*/,const TDesC& /*aName*/,TUint /*aFileMode*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::Replace(RFs& /*aFs*/,const TDesC& /*aName*/,TUint /*aFileMode*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::Temp(RFs& /*aFs*/,const TDesC& /*aPath*/,TFileName& /*aName*/,TUint /*aFileMode*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::AdoptFromClient(const RMessage2& /*aMsg*/, TInt /*aFsHandleIndex*/, TInt /*aFileHandleIndex*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::AdoptFromServer(TInt /*aFsHandle*/, TInt /*aFileHandle*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::AdoptFromCreator(TInt /*aFsHandleIndex*/, TInt /*aFileHandleIndex*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::Read(TInt64 /*aPos*/, TDes8& /*aDes*/) const
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C void RFile64::Read(TInt64 /*aPos*/, TDes8& /*aDes*/, TRequestStatus& /*aStatus*/) const
+	{Panic(ENotImplemented);}
+EFSRV_EXPORT_C TInt RFile64::Read(TInt64 /*aPos*/, TDes8& /*aDes*/, TInt /*aLength*/) const
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C void RFile64::Read(TInt64 /*aPos*/, TDes8& /*aDes*/, TInt /*aLength*/,TRequestStatus& /*aStatus*/) const
+	{Panic(ENotImplemented);}
+EFSRV_EXPORT_C TInt RFile64::Write(TInt64 /*aPos*/, const TDesC8& /*aDes*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C void RFile64::Write(TInt64 /*aPos*/, const TDesC8& /*aDes*/,TRequestStatus& /*aStatus*/)
+	{Panic(ENotImplemented);}
+EFSRV_EXPORT_C TInt RFile64::Write(TInt64 /*aPos*/, const TDesC8& /*aDes*/, TInt /*aLength*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C void RFile64::Write(TInt64 /*aPos*/, const TDesC8& /*aDes*/,TInt /*aLength*/,TRequestStatus& /*aStatus*/)
+	{Panic(ENotImplemented);}
+EFSRV_EXPORT_C TInt RFile64::Seek(TSeek /*aMode*/, TInt64& /*aPos*/) const
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::Size(TInt64& /*aSize*/) const
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::SetSize(TInt64 /*aSize*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::Lock(TInt64 /*aPos*/, TInt64 /*aLength*/) const
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::UnLock(TInt64 /*aPos*/, TInt64 /*aLength*/) const
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C TInt RFile64::Read(TUint /*aPos*/,TDes8& /*aDes*/) const
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C void RFile64::Read(TUint /*aPos*/,TDes8& /*aDes*/,TRequestStatus& /*aStatus*/) const
+	{Panic(ENotImplemented);}
+EFSRV_EXPORT_C TInt RFile64::Read(TUint /*aPos*/,TDes8& /*aDes*/,TInt /*aLength*/) const
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C void RFile64::Read(TUint /*aPos*/,TDes8& /*aDes*/,TInt /*aLength*/,TRequestStatus& /*aStatus*/) const
+	{Panic(ENotImplemented);}
+EFSRV_EXPORT_C TInt RFile64::Write(TUint /*aPos*/,const TDesC8& /*aDes*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C void RFile64::Write(TUint /*aPos*/,const TDesC8& /*aDes*/,TRequestStatus& /*aStatus*/)
+	{Panic(ENotImplemented);}
+EFSRV_EXPORT_C TInt RFile64::Write(TUint /*aPos*/,const TDesC8& /*aDes*/,TInt /*aLength*/)
+	{Panic(ENotImplemented);return (KErrNotSupported);}
+EFSRV_EXPORT_C void RFile64::Write(TUint /*aPos*/, const TDesC8& /*aDes*/,TInt /*aLength*/,TRequestStatus& /*aStatus*/)
+	{Panic(ENotImplemented);}
+#endif
--- a/hacks/readme.txt	Wed Oct 27 09:59:12 2010 +0100
+++ b/hacks/readme.txt	Wed Oct 27 15:25:50 2010 +0100
@@ -8,3 +8,18 @@
 Pressing F10 will cause Kern::Fault("KeyOfDeath", 0x0f100f10), which will drop
 you into the kernel crash debugger if you are using a UDEB version of ekern.exe
 
+
+
+2. cl_file.cpp
+
+Replace K:\sf\os\kernelhwsrv\userlibandfileserver\fileserver\sfsrv\cl_file.cpp with this file
+And rebuild efsrv.mmp from \sf\os\kernelhwsrv\userlibandfileserver\fileserver\group
+
+This will give you debug for every RFile::Open command called.
+
+
+3. EComServer.mmp
+
+In order to get logging out of the EComServer.mmp it must be rebuilt with the logging macro turned on.
+Replace \sf\os\ossrv\lowlevellibsandfws\pluginfw\Framework\MMPFiles\EComServer.mmp
+And rebuild EComServer.mmp from K:\sf\os\ossrv\lowlevellibsandfws\pluginfw\Group
\ No newline at end of file
--- a/startup/ssmcmdlists.mmp	Wed Oct 27 09:59:12 2010 +0100
+++ b/startup/ssmcmdlists.mmp	Wed Oct 27 15:25:50 2010 +0100
@@ -34,33 +34,12 @@
 TARGETPATH      /private/2000d75b/startup/0          // Private directory of sysstatemgr.exe
 END
 
-START RESOURCE  stem_selftestokcmdlist.rss           // Selftest Ok startup state
-TARGETPATH      /private/2000d75b/startup/0          // Private directory of sysstatemgr.exe
-END
-
-START RESOURCE  stem_alarm_charging.rss              // Command lists for alarm, charging and related startup states
-TARGETPATH      /private/2000d75b/startup/0          // Private directory of sysstatemgr.exe
-END
-
-START RESOURCE  stem_securitycheckcmdlist.rss        // Security Check startup state
-TARGETPATH      /private/2000d75b/startup/0          // Private directory of sysstatemgr.exe
-END
-
 START RESOURCE  stem_noncriticalcmdlist.rss          // Non-critical startup state for minimal bootup
 TARGETPATH      /private/2000d75b/startup/0          // Private directory of sysstatemgr.exe
 END
 
-START RESOURCE  stem_emergencycallsonlycmdlist.rss   // Emergency Calls Only startup state
-TARGETPATH      /private/2000d75b/startup/0          // Private directory of sysstatemgr.exe
-END
 
-START RESOURCE  stem_noncriticalcmdlist_ext.rss      // Non-critical startup state for extended bootup
-TARGETPATH      /private/2000d75b/startup/0_ext      // Private directory of sysstatemgr.exe
-END
 
-START RESOURCE  stem_uiservicescmdlist_ext.rss       // Starting UI-Services startup state for extended bootup
-TARGETPATH      /private/2000d75b/startup/0_ext      // Private directory of sysstatemgr.exe
-END
 
 // Command lists specific to HW
 
@@ -68,19 +47,6 @@
 TARGETPATH      /private/2000d75b/hw                 // Private directory of sysstatemgr.exe
 END
 
-START RESOURCE  stem_usbwatcher_hw.rss               // USB Watcher command list
-TARGETPATH      /private/2000d75b/hw                 // Private directory of sysstatemgr.exe
-END
-
-START RESOURCE  stem_noncriticalcmdlist_hw.rss       // Non-critical startup state (HW-specific additions)
-TARGETPATH      /private/2000d75b/hw                 // Private directory of sysstatemgr.exe
-END
-
-// Command lists for fail state
-
-START RESOURCE  stem_failcmdlist.rss                 // Command list for fail state
-TARGETPATH      /private/2000d75b/fail               // Private directory of sysstatemgr.exe
-END
 
 // Command lists for shutdown states
 
@@ -88,19 +54,6 @@
 TARGETPATH      /private/2000d75b/shutdown           // Private directory of sysstatemgr.exe
 END
 
-// Command lists for SWPs
-
-START RESOURCE  stem_rfswpcmdlists.rss               // RF status SWP
-TARGETPATH      /private/2000d75b/rfstatusswpcmdlist // Private directory of sysstatemgr.exe
-END
-
-START RESOURCE  stem_uiswpcmdlists.rss               // UI phase SWP
-TARGETPATH      /private/2000d75b/swpui              // Private directory of sysstatemgr.exe
-END
-
-START RESOURCE  stem_noncriticalswpcmdlists.rss       // noncritical phase SWP
-TARGETPATH      /private/2000d75b/swpnoncritical      // Private directory of sysstatemgr.exe
-END
 
 OS_LAYER_SYSTEMINCLUDE
 
--- a/startup/stem_alarm_charging.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,560 +0,0 @@
-/*
-* Copyright (c) 2009-2010 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:
-* Command list for the following startup states:
-*   - Alarm
-*   - Charging
-*   - Test
-*   - Alarm to Charging
-*   - Charging to Alarm
-*   - Alarm to Normal
-*   - Charging to Normal
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-
-#include "ssmsubstateext.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateTest;
-            resource_id = r_cmds_test;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateAlarm;
-            resource_id = r_cmds_alarm;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateCharging;
-            resource_id = r_cmds_charging;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateAlarmToCharging;
-            resource_id = r_cmds_alarm_to_charging;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateAlarmToNormal;
-            resource_id = r_cmds_alarm_to_normal;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateChargingToAlarm;
-            resource_id = r_cmds_charging_to_alarm;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateChargingToNormal;
-            resource_id = r_cmds_charging_to_normal;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmds_alarm
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds_alarm
-    {
-    commands =
-        {
-        r_cmd_sastate_alarm,            // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,             // prio 0xFFF1
-        r_cmd_psstate_alarm,            // prio 0xFFF0
-        r_cmd_killsplash                // Last command, prio 0x0000
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmds_alarm_to_charging
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds_alarm_to_charging
-    {
-    commands =
-        {
-        r_cmd_sastate_alarmtocharging,  // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,             // prio 0xFFF1
-        r_cmd_psstate_alarmtocharging   // prio 0xFFF0
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmds_alarm_to_normal
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds_alarm_to_normal
-    {
-    commands =
-        {
-        r_cmd_sastate_alarmtonormal,    // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,             // prio 0xFFF1
-        r_cmd_psstate_alarmtonormal,    // prio 0xFFF0
-        r_cmd_splash                    // prio 0xFFE7
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmds_charging
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds_charging
-    {
-    commands =
-        {
-        r_cmd_sastate_charging,         // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,             // prio 0xFFF1
-        r_cmd_psstate_charging,         // prio 0xFFF0
-        r_cmd_locod,                    // prio 0xFFB7
-        r_cmd_killsplash                // Last command, prio 0x0000
-        };
-    }
-
-
-// ---------------------------------------------------------------------------
-// r_cmds_charging_to_alarm
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds_charging_to_alarm
-    {
-    commands =
-        {
-        r_cmd_sastate_chargingtoalarm,  // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,             // prio 0xFFF1
-        r_cmd_psstate_chargingtoalarm   // prio 0xFFF0
-        };
-    }
-
-
-// ---------------------------------------------------------------------------
-// r_cmds_charging_to_normal
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds_charging_to_normal
-    {
-    commands =
-        {
-        r_cmd_sastate_chargingtonormal, // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,             // prio 0xFFF1
-        r_cmd_psstate_chargingtonormal, // prio 0xFFF0
-        r_cmd_splash                    // prio 0xFFE7
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmds_test
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds_test
-    {
-    commands =
-        {
-        r_cmd_sastate_test,             // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,             // prio 0xFFF1
-        r_cmd_psstate_test              // prio 0xFFF0
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmd_killsplash
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_killsplash
-    {
-    priority = 0x0000;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000301; // KPSSplashShutdown
-    value    = 101;        // ESplashShutdown
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_locod
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_locod
-    {
-    priority = 0xFFB7;
-    name = "z:\\sys\\bin\\locod.exe";
-    execution_behaviour = ESsmFireAndForget;
-    monitor_info = r_mon_3_restarts_ignore;
-    conditional_information = r_cond_testatcommand_or_enableisicommunicationinusbchargingmode;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_alarm
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_alarm
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 108;        // ESwStateAlarm
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_alarmtocharging
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_alarmtocharging
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 112;        // ESwStateAlarmToCharging
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_alarmtonormal
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_alarmtonormal
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 115;        // ESwStateAlarmToNormal
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_charging
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_charging
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 107;        // ESwStateCharging
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_chargingtoalarm
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_chargingtoalarm
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 113;        // ESwStateChargingToAlarm
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_chargingtonormal
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_chargingtonormal
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 114;        // ESwStateChargingToNormal
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_test
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_test
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 106;        // ESwStateTest
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_publishstate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_PUBLISH_SYSTEM_STATE r_cmd_publishstate
-    {
-    priority = 0xFFF1;
-    severity = ECmdCriticalSeverity;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_alarm
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_alarm
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_alarm;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_alarmtocharging
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_alarmtocharging
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_alarmtocharging;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_alarmtonormal
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_alarmtonormal
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_alarmtonormal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_charging
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_charging
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_charging;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_chargingtoalarm
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_chargingtoalarm
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_chargingtoalarm;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_chargingtonormal
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_chargingtonormal
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_chargingtonormal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_test
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_test
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_test;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_splash
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_splash
-    {
-    priority = 0xFFE7;
-    name = "z:\\sys\\bin\\splashscreen.exe";
-    }
-
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_alarm
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_alarm
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateAlarm;
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_alarmtocharging
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_alarmtocharging
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateAlarmToCharging;
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_alarmtonormal
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_alarmtonormal
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateAlarmToNormal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_charging
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_charging
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateCharging;
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_chargingtoalarm
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_chargingtoalarm
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateChargingToAlarm;
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_chargingtonormal
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_chargingtonormal
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateChargingToNormal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_test
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_test
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateTest;
-    }
-
-// ===========================================================================
-// Conditional blocks in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_testatcommand
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_testatcommand
-    {
-    feature_id = KFeatureIdTestATCommand;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_enableisicommunicationinusbchargingmode
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_enableisicommunicationinusbchargingmode
-    {
-    feature_id = KFeatureIdEnableIsiCommunicationInUsbChargingMode;
-    }	
-	
-// ---------------------------------------------------------------------------
-// r_cond_testatcommand_or_certtesting
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_OR r_cond_testatcommand_or_enableisicommunicationinusbchargingmode
-    {
-    lhs = r_cond_feat_testatcommand;
-    rhs = r_cond_feat_enableisicommunicationinusbchargingmode;
-    }
-	
-	
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/startup/stem_criticalappscmdlist.rss	Wed Oct 27 09:59:12 2010 +0100
+++ b/startup/stem_criticalappscmdlist.rss	Wed Oct 27 15:25:50 2010 +0100
@@ -69,11 +69,6 @@
         r_cmd_publishstate,     // prio 0xFFF1
         r_cmd_psstate,          // prio 0xFFF0
         // prio 0xFFE7
-    //TomP    r_cmd_selftest,
-    //TomP   r_cmd_cfserver,
-    //TomP    r_cmd_sysap,
-    //TomP    r_cmd_calsrv,
-    //TomP    r_cmd_profmon,
 		r_cmd_menu,	// TomP - moved from the Security command list
         // prio 0xFFE6
         r_cmd_multiwaitforever
@@ -94,34 +89,8 @@
     priority = 0xFFE7;
     name = "z:\\sys\\bin\\matrixmenu.exe";
     execution_behaviour = ESsmDeferredWaitForSignal;
-    //TomP background = 1; // To background
+    //TomP background = 1; // Not to background
     }
-	
-// ---------------------------------------------------------------------------
-// r_cmd_calsrv
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_PROCESS_INFO r_cmd_calsrv
-    {
-    priority = 0xFFE7;
-    name = "calensvr.exe";
-    execution_behaviour = ESsmFireAndForget;
-    monitor_info = r_mon_100_restarts_reset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_cfserver
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_cfserver
-    {
-    priority = 0xFFE7;
-    name = "Z:\\sys\\bin\\cfserver.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    monitor_info = r_mon_100_restarts_reset;
-    }
-*/
 
 // ---------------------------------------------------------------------------
 // r_cmd_multiwaitforever
@@ -132,18 +101,6 @@
     priority = 0xFFE6;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_profmon
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_PROCESS_INFO r_cmd_profmon
-    {
-    priority = 0xFFE7;
-    name = "Z:\\sys\\bin\\profilesettingsmonitor.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    }
-*/
 
 // ---------------------------------------------------------------------------
 // r_cmd_psstate
@@ -184,37 +141,7 @@
     dll_data = r_dlldata_sastate;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_selftest
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_selftest
-    {
-    priority = 0xFFE7;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 2;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sysap
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_sysap
-    {
-    priority = 0xFFE7;
-    name = "Z:\\sys\\bin\\sysap.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    severity = ECmdCriticalSeverity;
-    retries = 2;
-    background = 1; // To background
-    monitor_info = r_mon_reset;
-    }
-*/
+	
 // ===========================================================================
 // DLL data items in alphabetical order
 // ===========================================================================
@@ -232,4 +159,4 @@
 
 // monitoring.rss contains resource definitions, so it may not be included
 // before entry point.
-#include "stem_monitoring.rss"
+// #include "stem_monitoring.rss"
--- a/startup/stem_emergencycallsonlycmdlist.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*
-* 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:
-* Command list for the Emergency Calls Only startup state.
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-
-#include "ssmsubstateext.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateEmergencyCallsOnly;
-            resource_id = r_cmds;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmds
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds
-    {
-    commands =
-        {
-        r_cmd_sastate,          // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,     // prio 0xFFF1
-        r_cmd_psstate,          // prio 0xFFF0
-        r_cmd_killsplash        // Last command, prio 0x0000
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmd_killsplash
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_killsplash
-    {
-    priority = 0x0000;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000301; // KPSSplashShutdown
-    value    = 101;        // ESplashShutdown
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 105;        // ESwStateEmergencyCallsOnly
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_publishstate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_PUBLISH_SYSTEM_STATE r_cmd_publishstate
-    {
-    priority = 0xFFF1;
-    severity = ECmdCriticalSeverity;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate;
-    }
-
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateEmergencyCallsOnly;
-    }
--- a/startup/stem_failcmdlist.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-/*
-* 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:
-* Command list for the Selftest OK startup state.
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-
-#include "ssmsubstateext.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateFail;
-            resource_id = r_cmds;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmds
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds
-    {
-    commands =
-        {
-        r_cmd_sastate,          // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,     // prio 0xFFF1
-        r_cmd_psstate,          // prio 0xFFF0
-        r_cmd_cancelmonitoring,	// prio 0xFFE8
-        // prio 0xFFE7	
-        r_cmd_killsplash,
-        r_cmd_contactservice,
-        r_cmd_sysap,
-        // prio 0xFFE6
-        r_cmd_multiwaitforever
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-// ---------------------------------------------------------------------------
-// r_cmd_cancelmonitoring
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_cancelmonitoring
-	{
-	priority = 0xFFE8;
-	dllname = "cmncustomcmds.dll";
-	ordinal = 3; // Request to the sysmon server to cancel all the outstanding monitors
-	retries = 2;
-	}
-
-// ---------------------------------------------------------------------------
-// r_cmd_contactservice
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_contactservice
-    {
-    priority = 0xFFE7;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    dllname = "syserrcmd.dll";
-    ordinal = 1;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_killsplash
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_killsplash
-    {
-    priority = 0xFFE7;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000301; // KPSSplashShutdown
-    value    = 101;        // ESplashShutdown
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_multiwaitforever
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MULTIPLE_WAIT r_cmd_multiwaitforever
-    {
-    priority = 0xFFE6;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 116;        // ESWStateFatalStartupError
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_publishstate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_PUBLISH_SYSTEM_STATE r_cmd_publishstate
-    {
-    priority = 0xFFF1;
-    severity = ECmdCriticalSeverity;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sysap
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_sysap
-    {
-    priority = 0xFFE7;
-    name = "Z:\\sys\\bin\\sysap.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    severity = ECmdCriticalSeverity;
-    retries = 2;
-    background = 1; // To background
-    monitor_info = r_mon_reset;
-    }
-
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate
-    {
-    mainstate = 3; // ESsmFail
-    substate = 0xFFFF; // KSsmAnySubState, saastateadapataion expects this
-    }
-
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/startup/stem_locod_hw.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/*
-* 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:
-* Command list for the Locod component
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-
-#include "ssmsubstateext.hrh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateCharging;
-            resource_id = r_cmds_charging;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateNonCritical;
-            resource_id = r_cmds_noncritical;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmds_noncritical
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds_noncritical
-    {
-    commands =
-        {
-        r_cmd_connlogger,
-        r_cmd_provisioning,
-#ifndef SYMBIAN_EXCLUDE_SIP
-        r_cmd_sipprofilesrv,
-#endif // defined !SYMBIAN_EXCLUDE_SIP
-        r_cmd_remotelock,
-        r_cmd_hotspotsrv
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmd_connlogger
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_connlogger
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\dataconnectionlogger.exe";
-    execution_behaviour = ESsmFireAndForget;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-
-// ---------------------------------------------------------------------------
-// r_cmd_hotspotsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_hotspotsrv
-    {
-    priority = 0xFFA7;
-    name = "hotspotserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    conditional_information = r_cond_protwlan_and_firstboot_or_deeprfs_or_normalrfs;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_provisioning
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_provisioning
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\provisioningsc.exe";
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    conditional_information = r_cond_feat_smartcardprov;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_remotelock
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_remotelock
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\rlock.exe";
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    conditional_information = r_cond_feat_remotelock;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sipprofilesrv
-// ---------------------------------------------------------------------------
-//
-#ifndef SYMBIAN_EXCLUDE_SIP
-RESOURCE SSM_START_PROCESS_INFO r_cmd_sipprofilesrv
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\sipprofilesrv.exe";
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    }
-#endif // !SYMBIAN_EXCLUDE_SIP
-
-// ===========================================================================
-// Conditional blocks in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_firstboot
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_firstboot
-    {
-    category		  = 0x101F8766; // KPSUidStartup
-    key           = 0x00000013; // KPSStartupFirstBoot
-    value         = 101;        // EPSStartupFirstBoot
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_protocolwlan
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_protocolwlan
-    {
-    feature_id = KFeatureIdProtocolWlan;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_remotelock
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_remotelock
-    {
-    feature_id = KFeatureIdRemoteLock;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_smartcardprov
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_smartcardprov
-    {
-    feature_id = KFeatureIdSmartCardProv;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_firstboot_or_deeprfs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_OR r_cond_firstboot_or_deeprfs
-    {
-    lhs = r_cond_ps_deep_rfs;
-    rhs = r_cond_ps_firstboot;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_firstboot_or_deeprfs_or_normalrfs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_OR r_cond_firstboot_or_deeprfs_or_normalrfs
-    {
-    lhs = r_cond_ps_normal_rfs;
-    rhs = r_cond_firstboot_or_deeprfs;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_normal_rfs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_normal_rfs
-    {
-    category = 0x101F8766; // KPSUidStartup
-    key = 0x00000045;      // KPSStartupReason
-    value = ENormalRFSReset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_deep_rfs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_deep_rfs
-    {
-    category = 0x101F8766; // KPSUidStartup
-    key = 0x00000045;      // KPSStartupReason
-    value = EDeepRFSReset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_protwlan_and_firstboot_or_deeprfs_or_normalrfs
-// ( protocol WLAN ) AND ( first boot OR deep RFS OR normal RFS )
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_AND r_cond_protwlan_and_firstboot_or_deeprfs_or_normalrfs
-    {
-    lhs = r_cond_feat_protocolwlan;
-    rhs = r_cond_firstboot_or_deeprfs_or_normalrfs;
-    }
-
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/startup/stem_monitoring.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* 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:
-* Monitoring information definitions.
-*
-*/
-
-#include <ssm/ssmcmd.rh>
-
-// ===========================================================================
-// Monitoring definitions in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_mon_3_restarts_ignore
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MONITOR_INFO r_mon_3_restarts_ignore
-    {
-    restart_mode = 0;
-    retries = 3;
-    }
-
-// ---------------------------------------------------------------------------
-// r_mon_3_restarts_reset
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MONITOR_INFO r_mon_3_restarts_reset
-    {
-    restart_policy = ESsmRestartOS;
-    restart_mode = 0;
-    retries = 3;
-    }
-
-// ---------------------------------------------------------------------------
-// r_mon_20_restarts_reset
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MONITOR_INFO r_mon_20_restarts_reset
-    {
-    restart_policy = ESsmRestartOS;
-    restart_mode = 0;
-    retries = 20;
-    }
-
-// ---------------------------------------------------------------------------
-// r_mon_100_restarts_reset
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MONITOR_INFO r_mon_100_restarts_reset
-    {
-    restart_policy = ESsmRestartOS;
-    restart_mode = 0;
-    retries = 100;
-    }
-
-// ---------------------------------------------------------------------------
-// r_mon_max_restarts_ignore
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MONITOR_INFO r_mon_max_restarts_ignore
-    {
-    restart_mode = 0;
-    retries = 32767;
-    }
-
-// ---------------------------------------------------------------------------
-// r_mon_reset
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MONITOR_INFO r_mon_reset
-    {
-    restart_policy = ESsmRestartOS;
-    restart_mode = 0;
-    retries = 0;
-    }
--- a/startup/stem_noncriticalcmdlist.rss	Wed Oct 27 09:59:12 2010 +0100
+++ b/startup/stem_noncriticalcmdlist.rss	Wed Oct 27 15:25:50 2010 +0100
@@ -70,18 +70,8 @@
         {
         r_cmd_sastate,          // This needs to be the first command in state, prio 0xFFF2
         r_cmd_publishstate,     // prio 0xFFF1
-        r_cmd_psstate,          // prio 0xFFF0
-        // prio 0xFFE7
-    //TomP    r_cmd_simcheck,
-    //TomP    r_cmd_clearstartupreason,
-    //TomP    r_cmd_createswp_uiphase,
-    //TomP    r_cmd_createswp_rfstatus,
-    //TomP    r_cmd_waitforofflinequery,
-    //TomP    r_cmd_setswp_uistart,   // After offline query has been made // prio 0xFFD7 
-    //TomP    r_cmd_bsengine,					// prio 0xFFD3      
+        r_cmd_psstate,          // prio 0xFFF0  
         // prio 0xFFC7
-    //TomP    r_cmd_setswp_rfon,
-    //TomP    r_cmd_setswp_rfoff,
         r_cmd_startupready      // Last command, prio 0x0000
         };
     }
@@ -90,44 +80,8 @@
 // Command items in alphabetical order
 // ===========================================================================
 //
-// ---------------------------------------------------------------------------
-// r_cmd_bsengine
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_PROCESS_INFO r_cmd_bsengine
-    {
-    priority = 0xFFD3;
-    name = "z:\\sys\\bin\\bsengine.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    }
 
 // ---------------------------------------------------------------------------
-// r_cmd_createswp_rfstatus
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CREATE_SYSTEM_WIDE_PROPERTY r_cmd_createswp_rfstatus
-    {
-    priority = 0xFFE7;
-    severity = ECmdCriticalSeverity;
-    key = SWP_UID_SSM_RF_STATUS;
-    filename = "rfstatusswppolicy.dll";
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_createswp_uiphase
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CREATE_SYSTEM_WIDE_PROPERTY r_cmd_createswp_uiphase
-    {
-    priority = 0xFFE7;
-    severity = ECmdCriticalSeverity;
-    key = SWP_UID_SSM_UI_PHASE;
-    filename = "ssmuiswppolicy.dll";
-    }
-*/
-// ---------------------------------------------------------------------------
 // r_cmd_psstate
 // ---------------------------------------------------------------------------
 //
@@ -166,60 +120,8 @@
     dll_data = r_dlldata_sastate;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_setswp_rfoff
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_REQUEST_SYSTEM_WIDE_PROPERTY r_cmd_setswp_rfoff
-    {
-    priority = 0xFFC7;
-    severity = ECmdCriticalSeverity;
-    key = SWP_UID_SSM_RF_STATUS;
-    value = ESsmRfOff;
-    conditional_information = r_cond_simnotusable_or_bootoffline;
-    }
 
 // ---------------------------------------------------------------------------
-// r_cmd_setswp_rfon
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_REQUEST_SYSTEM_WIDE_PROPERTY r_cmd_setswp_rfon
-    {
-    priority = 0xFFC7;
-    severity = ECmdCriticalSeverity;
-    key = SWP_UID_SSM_RF_STATUS;
-    value = ESsmRfOn;
-    conditional_information = r_cond_simusable_and_bootonline;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_setswp_uistart
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_REQUEST_SYSTEM_WIDE_PROPERTY r_cmd_setswp_uistart
-    {
-    priority = 0xFFD7;
-    severity = ECmdCriticalSeverity;
-    key = SWP_UID_SSM_UI_PHASE;
-    value = ESsmUiPhaseStarted;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_simcheck
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_simcheck
-    {
-    priority = 0xFFE7;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 10;
-    unload_on_finish = ENeverUnload;
-    conditional_information = r_cond_ps_simusable;
-    }
-*/
-// ---------------------------------------------------------------------------
 // r_cmd_startupready
 // ---------------------------------------------------------------------------
 //
@@ -233,53 +135,6 @@
     }
 
 // ---------------------------------------------------------------------------
- 
-// ---------------------------------------------------------------------------
-// r_cmd_waitforofflinequery
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_waitforofflinequery
-    {
-    priority = 0xFFE7;
-    severity = ECmdCriticalSeverity;
-    dllname = "ssmsystemcmds.dll";
-    ordinal = 6; // WaitPsKeyRange
-    dll_data = r_dlldata_waitofflinequery;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    execution_behaviour = ESsmWaitForSignal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_clearstartupreason
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_clearstartupreason
-    {
-    priority = 0xFFE7;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 16; // Clearstartupreason
-    retries = 2;
-    execution_behaviour = ESsmWaitForSignal;
-    }
-*/
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_activitymonitor_timeout
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_TIMEOUT r_dlldata_activitymonitor_timeout
-    {
-    timeout = 2;
-    }
-
-// ---------------------------------------------------------------------------
 // r_dlldata_sastate
 // ---------------------------------------------------------------------------
 //
@@ -289,30 +144,6 @@
     substate = ESsmStateNonCritical;
     }
 
-// ---------------------------------------------------------------------------
-// r_dlldata_waitcleanbootinfo
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_WAIT_PS_2 r_dlldata_waitcleanbootinfo
-    {
-    category = 0x101F8766;  // KPSUidStartup
-    key = 0x00000012;       // KStartupCleanBoot
-    target1 = 101;          // EStartupNormalBoot
-    target2 = 102;          // EStartupCleanBoot
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_waitofflinequery
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_WAIT_PS_2 r_dlldata_waitofflinequery
-    {
-    category = 0x101F8766;  // KPSUidStartup
-    key = 0x00000011;       // KStartupBootIntoOffline
-    target1 = 101;          // EBootIntoOnlineMode
-    target2 = 102;          // EBootIntoOfflineMode
-    }
-
 // ===========================================================================
 // Conditional blocks in alphabetical order
 // ===========================================================================
@@ -488,4 +319,4 @@
 
 // monitoring.rss contains resource definitions, so it may not be included
 // before entry point.
-#include "stem_monitoring.rss"
+//#include "stem_monitoring.rss"
--- a/startup/stem_noncriticalcmdlist_ext.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,892 +0,0 @@
-/*
-* Copyright (c) 2009-2010 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:
-* Command list for the Non-critical startup state in extended startup mode.
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-#include <ssm/startupreason.h>
-#include <ssm/clayerswp.hrh>
-
-#include "ssmswp.hrh"
-#include "ssmsubstateext.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateNonCritical;
-            resource_id = r_cmds;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmds
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds
-    {
-    commands =
-        {
-        r_cmd_waitforphone,     // prio 0xFFD1
-        r_cmd_waitidle,         // prio 0xFFC5
-        // prio 0xFFB7
-#ifdef __JAVA        
-        r_cmd_javacaptain,
-#endif // __JAVA
-        r_cmd_watcher,
-        r_cmd_dmutilsrv,
-        // prio 0xFFA7
-        r_cmd_contentharvester,
-        r_cmd_mdswatchdog,
-        r_cmd_predefinedcontacts,
-        r_cmd_xnthemesrv,
-        r_cmd_ncnlist,
-        r_cmd_satsrv,
-        r_cmd_cbssrv,
-        r_cmd_schedsrv,
-        r_cmd_aosrv,
-        r_cmd_ippushman,
-        r_cmd_remotefe,
-        r_cmd_supllistener,
-        r_cmd_autolock,
-        r_cmd_pocstarter,
-        r_cmd_gsserver,
-        r_cmd_vcommandmgr,
-        r_cmd_dmallreasons,
-        r_cmd_locod,
-#ifdef FF_LBT_ENGINE
-        r_cmd_lbtsrv,
-#endif // FF_LBT_ENGINE
-        r_cmd_emailsrvrmon,
-        r_cmd_taskswitcher,
-        // prio 0xFFA6
-        r_cmd_dmfirstbootreason,
-        r_cmd_fota,
-        // prio 0x7F87
-        r_cmd_waitcleanbootinfo,
-        // prio 0x7F97
-        r_cmd_dcmo,
-        r_cmd_amastart,
-        // prio 0x7F96
-        r_cmd_multiple_wait,
-        // prio 0x7F55
-        r_cmd_createswp_noncriticalphase,
-				// prio 0x7F54
-        r_cmd_setswp_noncriticalstart
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmd_amastart
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_AMA_STARTER r_cmd_amastart
-    {
-    priority = 0x7F97;
-    conditional_information = r_cond_ps_normalboot;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_aosrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_aosrv
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\alwaysonlinestarter.exe";
-    execution_behaviour = ESsmFireAndForget;
-    conditional_information = r_cond_feat_alwaysonline;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_autolock
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_autolock
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\lockapp.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 100000;		//  FCOA-87UBXX
-    background = 1; // To background
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_cbssrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_cbssrv
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\cbsserver.exe";
-    execution_behaviour = ESsmFireAndForget;
-    conditional_information = r_cond_feat_cellbroadcast;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_contentharvester
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_contentharvester
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\contentharvester.exe";
-    execution_behaviour = ESsmFireAndForget;	//behavior changed from ESsmWaitForSignal as part of SCB CR MSOI-7XARNT
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_dcmo
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_dcmo
-    {
-    priority = 0x7F97;
-    execution_behaviour = ESsmFireAndForget;
-    dllname = "dcmostartupcustcmd.dll";
-    ordinal = 1; // DCMO command
-    conditional_information = r_cond_feat_runtime_dcmo;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_dmallreasons
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_dmallreasons
-    {
-    priority = 0xFFA7;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "fotacustcmds.dll";
-    ordinal = 1; // AllReasons command
-    retries = 2;
-    conditional_information = r_cond_syncml_dm_or_pnp_mobile_services;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_dmfirstbootreason
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_dmfirstbootreason
-    {
-    priority = 0xFFA6;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "fotacustcmds.dll";
-    ordinal = 3; // FirstBoot command
-    retries = 2;
-    conditional_information = r_cond_pnp_mobile_services_and_firstboot;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_dmutilsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_dmutilsrv
-    {
-    priority = 0xFFB7;
-    name = "z:\\sys\\bin\\dmutilserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_reset;
-    conditional_information = r_cond_feat_sappolicymgmt;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_fota
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_fota
-    {
-    priority = 0xFFA6;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "fotacustcmds.dll";
-    ordinal = 2; // Fota command
-    retries = 2;
-    conditional_information = r_cond_syncml_dm_fota_and_fotareset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_emailsrvrmon
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_emailsrvrmon
-    {
-    priority = 0xFFA7;
-    name = "emailservermonitor.exe";
-    execution_behaviour = ESsmFireAndForget;
-    conditional_information = r_cond_feat_emailfw;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_gsserver
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_gsserver
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\gsserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    conditional_information = r_cond_feat_tvout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_mdswatchdog
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_mdswatchdog
-    {
-    priority = 0xFFA7;
-    name = "mdswatchdog.exe";
-    execution_behaviour = ESsmFireAndForget;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_loadsup_ippushman
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_ippushman
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\ippushman.exe";
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    conditional_information = r_cond_feat_ippush;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_lbtsrv
-// ---------------------------------------------------------------------------
-//
-#ifdef FF_LBT_ENGINE
-RESOURCE SSM_START_PROCESS_INFO r_cmd_lbtsrv
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\lbtserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    }
-#endif // FF_LBT_ENGINE
-
-// ---------------------------------------------------------------------------
-// r_cmd_locod
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_locod
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\locod.exe";
-    execution_behaviour = ESsmFireAndForget;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_ncnlist
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_ncnlist
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\ncnlist.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_pocstarter
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_pocstarter
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\pocstarter.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    conditional_information = r_cond_feat_omapoc;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_predefinedcontacts
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_predefinedcontacts
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\predefinedcontacts.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    retries = 2;
-    conditional_information = r_cond_firstboot_or_fotareset_or_deeprfsreset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_remotefe
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_remotefe
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\rsfwbootmounter.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    conditional_information = r_cond_feat_remotestoragefw;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_satsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_satsrv
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\satserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    conditional_information = r_cond_feat_simcard;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_schedsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_schedsrv
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\schexe.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_supllistener
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_supllistener
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\epos_omasupllistener.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    conditional_information = r_cond_feat_omasuplplugins;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_javacaptain
-// ---------------------------------------------------------------------------
-//
-#ifdef __JAVA
-RESOURCE SSM_START_PROCESS_INFO r_cmd_javacaptain
-    {
-    priority = 0xFFB7;
-    name = "javacaptain.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    }
-#endif // __JAVA
-// ---------------------------------------------------------------------------
-// r_cmd_vcommandmgr
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_vcommandmgr
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\vcommandmanager.exe";
-    background = 1; // To background
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    conditional_information = r_cond_sind_and_no_sdnd;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_waitcleanbootinfo
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_waitcleanbootinfo
-    {
-    priority = 0x7F87;
-    severity = ECmdCriticalSeverity;
-    dllname = "ssmsystemcmds.dll";
-    ordinal = 6; // WaitPsKeyRange
-    dll_data = r_dlldata_waitcleanbootinfo;
-    retries = 2;
-    execution_behaviour = ESsmWaitForSignal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_waitforidle
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_waitidle
-    {
-    priority = 0xFFC5;
-    severity = ECmdCriticalSeverity;
-    dllname = "ssmsystemcmds.dll";
-    ordinal = 5; // WaitPsKeyExact
-    dll_data = r_dlldata_waitidle;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    execution_behaviour = ESsmWaitForSignal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_waitforphone
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_waitforphone
-    {
-    priority = 0xFFD1;
-    severity = ECmdCriticalSeverity;
-    dllname = "ssmsystemcmds.dll";
-    ordinal = 5; // WaitPsKeyExact
-    dll_data = r_dlldata_waitphone;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    execution_behaviour = ESsmWaitForSignal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_watcher
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_watcher
-    {
-    priority = 0xFFB7;
-    name = "z:\\sys\\bin\\watcher.exe";
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_xnthemesrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_xnthemesrv
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\xnthemeserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-	
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_waitcleanbootinfo
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_WAIT_PS_2 r_dlldata_waitcleanbootinfo
-    {
-    category = 0x101F8766;  // KPSUidStartup
-    key = 0x00000012;       // KStartupCleanBoot
-    target1 = 101;          // EStartupNormalBoot
-    target2 = 102;          // EStartupCleanBoot
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_waitidle
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_WAIT_PS r_dlldata_waitidle
-    {
-    category = 0x101F8766;  // KPSUidStartup
-    key = 0x00000043;       // KPSIdlePhase1Ok
-    target = 101;           // EIdlePhase1Ok
-    }
-
-
-// ---------------------------------------------------------------------------
-// r_dlldata_waitphone
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_WAIT_PS r_dlldata_waitphone
-    {
-    category = 0x101F8766;  // KPSUidStartup
-    key = 0x00000044;       // KPSPhonePhase1Ok
-    target = 101;           // EPhonePhase1Ok
-    }
-	
-	
-// ---------------------------------------------------------------------------
-// r_cmd_item_taskswitcher
-// ---------------------------------------------------------------------------  
-RESOURCE SSM_START_APP_INFO r_cmd_taskswitcher
-     {
-     priority = 0xFFA7;
-     name = "z:\\sys\\bin\\taskswitcher.exe";
-     execution_behaviour = ESsmDeferredWaitForSignal;     
-     background = 1; // To background
-     monitor_info = r_mon_max_restarts_ignore;
-     }
-
-// ---------------------------------------------------------------------------
-// r_cmd_createswp_noncriticalphase
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CREATE_SYSTEM_WIDE_PROPERTY r_cmd_createswp_noncriticalphase
-    {
-    priority = 0x7F55;
-    severity = ECmdCriticalSeverity;
-    key = SWP_UID_SSM_NONCRITICAL_PHASE;
-    filename = "ssmnoncriticalswppolicy.dll";
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_setswp_noncriticalstart
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_REQUEST_SYSTEM_WIDE_PROPERTY r_cmd_setswp_noncriticalstart
-    {
-    priority = 0x7F54;
-    key = SWP_UID_SSM_NONCRITICAL_PHASE;
-    value = ESsmNonCriticalPhaseStarted;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_multiple_wait
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MULTIPLE_WAIT r_cmd_multiple_wait
-     {
-     priority = 0x7F96;     
-     }
-
-// ===========================================================================
-// Conditional blocks in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_firstboot
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_firstboot
-    {
-    category		  = 0x101F8766; // KPSUidStartup
-    key           = 0x00000013; // KPSStartupFirstBoot
-    value         = 101;        // EPSStartupFirstBoot
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_alwaysonline
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_alwaysonline
-    {
-    feature_id = KFeatureIdAlwaysOnLine;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_cellbroadcast
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_cellbroadcast
-    {
-    feature_id = KFeatureIdCellBroadcast;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_emailfw
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_emailfw
-    {
-    feature_id = KFeatureIdFfEmailFramework;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_ippush
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_ippush
-    {
-    feature_id = KFeatureIdIpPush;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_omapoc
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_omapoc
-    {
-    feature_id = KFeatureIdOmaPoc;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_omasuplplugins
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_omasuplplugins
-    {
-    feature_id = KFeatureIdOmaSuplPlugins;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_pnp_mobile_services
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_pnp_mobile_services
-    {
-    feature_id = KFeatureIdPlugAndPlayMobileServices;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_remotestoragefw
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_remotestoragefw
-    {
-    feature_id = KFeatureIdRemoteStorageFw;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_runtime_dcmo;
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_runtime_dcmo
-    {
-    feature_id = KFeatureIdFfRuntimeDeviceCapabilityConfiguration;
-    }
-	
-// ---------------------------------------------------------------------------
-// r_cond_feat_sappolicymgmt
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_sappolicymgmt
-    {
-    feature_id = KFeatureIdSapPolicyManagement;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_sdnd
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_sdnd
-    {
-    feature_id = KFeatureIdSdnd;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_simcard
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_simcard
-    {
-    feature_id = KFeatureIdSimCard;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_sind
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_sind
-    {
-    feature_id = KFeatureIdSind;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_syncml_dm
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_syncml_dm
-    {
-    feature_id = KFeatureIdSyncMlDm;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_syncml_dm_fota
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_syncml_dm_fota
-    {
-    feature_id = KFeatureIdSyncMlDmFota;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_tvout
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_tvout
-    {
-    feature_id = KFeatureIdTvOut;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_firstboot_or_fotareset_or_deeprfsreset
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_OR r_cond_firstboot_or_fotareset_or_deeprfsreset
-    {
-    lhs = r_cond_fotareset_or_deeprfsreset;
-    rhs = r_cond_ps_firstboot;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_fotareset_or_deeprfsreset
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_OR r_cond_fotareset_or_deeprfsreset
-    {
-    lhs = r_cond_ps_fotareset;
-    rhs = r_cond_ps_deeprfsreset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_no_sdnd
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_NOT r_cond_no_sdnd
-    {
-    sub_condition = r_cond_feat_sdnd;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_pnp_mobile_services_and_firstboot
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_AND r_cond_pnp_mobile_services_and_firstboot
-    {
-    lhs = r_cond_feat_pnp_mobile_services;
-    rhs = r_cond_ps_firstboot;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_bootoffline
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_bootoffline
-    {
-    category = 0x101F8766; // KPSUidStartup
-    key = 0x00000011;      // KStartupBootIntoOffline
-    value = 102;           // EBootIntoOfflineMode
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_bootonline
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_bootonline
-    {
-    category = 0x101F8766; // KPSUidStartup
-    key = 0x00000011;      // KStartupBootIntoOffline
-    value = 101;           // EBootIntoOnlineMode
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_deeprfsreset
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_deeprfsreset
-    {
-    category = 0x101F8766; // KPSUidStartup
-    key = 0x00000045;      // KPSStartupReason
-    value = EDeepRFSReset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_fotareset
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_fotareset
-    {
-    category = 0x101F8766; // KPSUidStartup
-    key = 0x00000045;      // KPSStartupReason
-    value = EFirmwareUpdate;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_normalboot
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_normalboot
-    {
-    category = 0x101F8766; // KPSUidStartup
-    key = 0x00000012;      // KStartupCleanBoot
-    value = 101;           // EStartupNormalBoot
-    }
-
-
-// ---------------------------------------------------------------------------
-// r_cond_sind_and_no_sdnd
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_AND r_cond_sind_and_no_sdnd
-    {
-    lhs = r_cond_feat_sind;
-    rhs = r_cond_no_sdnd;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_syncml_dm_fota_and_fotareset
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_AND r_cond_syncml_dm_fota_and_fotareset
-    {
-    lhs = r_cond_feat_syncml_dm_fota;
-    rhs = r_cond_ps_fotareset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_syncml_dm_or_pnp_mobile_services
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_OR r_cond_syncml_dm_or_pnp_mobile_services
-    {
-    lhs = r_cond_feat_syncml_dm;
-    rhs = r_cond_feat_pnp_mobile_services;
-    }
-
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/startup/stem_noncriticalcmdlist_hw.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/*
-* Copyright (c) 2009-2010 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:
-* Command list for the Non-critical startup state (HW-specific additions).
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-#include <ssm/startupreason.h>
-
-#include "ssmsubstateext.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateNonCritical;
-            resource_id = r_cmds;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmds
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds
-    {
-    commands =
-        {
-        r_cmd_connlogger,
-        r_cmd_provisioning,
-#ifndef SYMBIAN_EXCLUDE_SIP
-        r_cmd_sipprofilesrv,
-#endif // defined !SYMBIAN_EXCLUDE_SIP
-        r_cmd_remotelock,
-	// prio 0x7EF1
-	r_cmd_activitymonitor1,
-	// prio 0x7EF0
-	r_cmd_devencstarter
-// prio 0x7EEB
-#ifdef  FF_MOBILITY_MANAGEMENT_ERRORS
-	,r_cmd_item_nwnotifier
-#endif // FF_MOBILITY_MANAGEMENT_ERRORS
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor1
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor1
-    {
-    priority = 0x7EF1;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-	
-	
-// ---------------------------------------------------------------------------
-// r_cmd_connlogger
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_connlogger
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\dataconnectionlogger.exe";
-    execution_behaviour = ESsmFireAndForget;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-	
-
-// ---------------------------------------------------------------------------
-// r_cmd_devencstarter
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_devencstarter
-    {
-    priority = 0x7EF0;
-    name = "z:\\sys\\bin\\devencstarter.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    } 
-	
-	
-// ---------------------------------------------------------------------------
-// r_cmd_provisioning
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_provisioning
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\provisioningsc.exe";
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    conditional_information = r_cond_feat_smartcardprov;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_remotelock
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_remotelock
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\rlock.exe";
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    conditional_information = r_cond_feat_remotelock;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sipprofilesrv
-// ---------------------------------------------------------------------------
-//
-#ifndef SYMBIAN_EXCLUDE_SIP
-RESOURCE SSM_START_PROCESS_INFO r_cmd_sipprofilesrv
-    {
-    priority = 0xFFA7;
-    name = "z:\\sys\\bin\\sipprofilesrv.exe";
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    }
-#endif // !SYMBIAN_EXCLUDE_SIP
-
-	
-#ifdef  FF_MOBILITY_MANAGEMENT_ERRORS
-// ---------------------------------------------------------------------------
-// r_cmd_item_nwnotifier
-// Start list item for network notifier
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_item_nwnotifier
-    {
-	priority = 0x7EEB;
-    name = "z:\\sys\\bin\\nwnotifier.exe";
-	execution_behaviour = ESsmWaitForSignal;
-    retries = 3;
-    }
-#endif // FF_MOBILITY_MANAGEMENT_ERRORS
-
-
-// ===========================================================================
-// Conditional blocks in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_remotelock
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_remotelock
-    {
-    feature_id = KFeatureIdRemoteLock;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_smartcardprov
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_smartcardprov
-    {
-    feature_id = KFeatureIdSmartCardProv;
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_activitymonitor_timeout
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_TIMEOUT r_dlldata_activitymonitor_timeout
-    {
-    timeout = 2;
-    }
-
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/startup/stem_noncriticalswpcmdlists.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,439 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-* Command lists for the noncritical phase SWP:
-*   - non-critical phase Started
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-
-#include "ssmswp.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmNonCriticalPhaseStarted;
-            resource_id = r_noncriticalphase_commands;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_started_commands
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_noncriticalphase_commands
-    {
-    commands =
-        {
-        // prio 0xFFF1
-        r_cmd_publishswp,
-        // prio 0x7EFF
-        r_cmd_activitymonitor1,
-        // prio 0x7EFE
-        r_cmd_logs,
-        // prio 0x7EFD
-        r_cmd_activitymonitor2,
-        // prio 0x7EFC
-        r_cmd_pbk2,
-        // prio 0x7EFB
-        r_cmd_activitymonitor3,
-        // prio 0x7EFA
-        r_cmd_mce,
-        // prio 0x7EF9
-        r_cmd_activitymonitor4,
-        // prio 0x7EF8
-        r_cmd_clock,	//ESLT-842J9W
-        // prio 0x7EF7
-        r_cmd_activitymonitor5,
-        // prio 0x7EF6
-        r_cmd_videocenter,
-        // prio 0x7EF5
-        r_cmd_activitymonitor6,
-        // prio 0x7EF4
-        r_cmd_iaupdatebg,
-        // prio 0x7EF3
-        r_cmd_activitymonitor7,
-        // prio 0x7EF2
-        r_cmd_screensaver,
-        // prio 0x7EEF
-        r_cmd_activitymonitor8,
-        // prio 0x7EEE
-        r_cmd_autosync
-#ifdef FF_ATT_ADDRESS_BK
-        //prio 0x7EEA
-        ,r_cmd_activitymonitor9,
-        //prio 0x7EE9
-        r_cmd_aab
-#endif
-		// prio 0x7EE8
-		,r_cmd_activitymonitor10,
-		// prio 0x7EE7
-		r_cmd_calendar //CR:MMUN-82ZHAD
-    	};
-    }
-
-// -----------------------------------------------------------------------------
-// r_cmd_aab
-// -----------------------------------------------------------------------------
-//
-#ifdef FF_ATT_ADDRESS_BK 
-RESOURCE SSM_START_APP_INFO r_cmd_aab
-    {
-    priority = 0x7EE9;
-    name = "z:\\sys\\bin\\AABPhonebookapp.exe";
-    retries = 2;
-    background = 1; // To background
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-#endif
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor1
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor1
-    {
-    priority = 0x7EFF;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor2
-    {
-    priority = 0x7EFD;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor3
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor3
-    {
-    priority = 0x7EFB;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor4
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor4
-    {
-    priority = 0x7EF9;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor5
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor5
-    {
-    priority = 0x7EF7;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor6
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor6
-    {
-    priority = 0x7EF5;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor7
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor7
-    {
-    priority = 0x7EF3;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor8
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor8
-    {
-    priority = 0x7EEF;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor9
-// ---------------------------------------------------------------------------
-//
-#ifdef FF_ATT_ADDRESS_BK
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor9
-    {
-    priority = 0x7EEA;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-#endif
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor10
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor10
-    {
-    priority = 0x7EE8;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_autosync
-// ---------------------------------------------------------------------------
-//	
-RESOURCE SSM_START_PROCESS_INFO r_cmd_autosync
-    {
-    priority = 0x7EEE;
-    execution_behaviour = ESsmFireAndForget;
-    retries = 3;
-    name = "cctautosync.exe";
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_calendar
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_calendar
-	{
-   	priority = 0x7EE7;
-	name = "calendar.exe";
-	execution_behaviour = ESsmFireAndForget;
-	retries = 3;
-	background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_clock
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_clock
-    {
-    priority = 0x7EF8;
-    name = "clock.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_iaupdatebg
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_iaupdatebg
-    {
-    priority = 0x7EF4;
-    name = "iaupdatebg.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    conditional_information = r_cond_feat_iadv2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_mce
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_mce
-    {
-    priority = 0x7EFA;
-    name = "mce.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_pbk2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_pbk2
-    {
-    priority = 0x7EFC;
-    name = "z:\\sys\\bin\\phonebook2.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_publishswp
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_PUBLISH_SYSTEM_WIDE_PROPERTY r_cmd_publishswp
-    {
-    priority = 0xFFF1;
-    severity = ECmdCriticalSeverity;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_logs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_logs
-    {
-    priority = 0x7EFE;
-    name = "z:\\sys\\bin\\logs.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_screensaver
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_screensaver
-    {
-    priority = 0x7EF2;
-    name = "z:\\sys\\bin\\screensaver.exe";
-    background = 1; // To background
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_videocenter
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_videocenter
-    {
-    priority = 0x7EF6;
-    name = "cseschedulerserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    }
-
-// ===========================================================================
-// Conditional blocks in alphabetical order
-// ===========================================================================
-//
-// ---------------------------------------------------------------------------
-// r_cond_feat_iadv2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_iadv2
-    {
-    feature_id = KFeatureIdFfIaupdatePhase2;
-    }
-
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_activitymonitor_timeout
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_TIMEOUT r_dlldata_activitymonitor_timeout
-    {
-    timeout = 2;
-    }
-
-
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/startup/stem_preuiservicescmdlist.rss	Wed Oct 27 09:59:12 2010 +0100
+++ b/startup/stem_preuiservicescmdlist.rss	Wed Oct 27 15:25:50 2010 +0100
@@ -68,9 +68,7 @@
         // prio 0xFE01
         r_cmd_sysagt,
         r_cmd_initpskeys,
-     //TomP    r_cmd_checkuserdrive,
         r_cmd_deltempfiles,
-     //TomP   r_cmd_reservedisk,
         r_cmd_sysmon,
         r_cmd_ssmutilsrv,
         r_cmd_multiwaitforever // prio 0xFE00
@@ -83,22 +81,6 @@
 //
 
 // ---------------------------------------------------------------------------
-// r_cmd_checkuserdrive
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_checkuserdrive
-    {
-    priority = 0xFE01;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 13; // CheckUserDrive
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    }
-*/
-// ---------------------------------------------------------------------------
 // r_cmd_deltempfiles
 // ---------------------------------------------------------------------------
 //
@@ -147,20 +129,7 @@
     retries = 2;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_reservedisk
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_PROCESS_INFO r_cmd_reservedisk
-    {
-    priority = 0xFE01;
-    execution_behaviour = ESsmFireAndForget;
-    name = "Z:\\sys\\bin\\ssmdiskreserver.exe";
-    severity = ECmdCriticalSeverity;
-    retries = 2;
-    }
-*/
+	
 // ---------------------------------------------------------------------------
 // r_cmd_ssmutilsrv
 // ---------------------------------------------------------------------------
--- a/startup/stem_rfswpcmdlists.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-/*
-* 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:
-* Command lists for the RF SWP:
-*   - Normal RF On.
-*   - Normal RF Off.
-*   - Normal BT SAP.
-*
-*/
-
-#include <ssm/ssmcmd.rh>
-#include <ssm/clayerswp.hrh>
-
-#include "ssmswp.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmRfOn;
-            resource_id = r_online_commands;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmRfOff;
-            resource_id = r_offline_commands;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmBtSap;
-            resource_id = r_btsap_commands;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_btsap_commands
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_btsap_commands
-    {
-    commands =
-        {
-        r_cmd_sastate_btsap,    // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishswp,       // prio 0xFFF1
-        r_cmd_psstate_btsap     // prio 0xFFF0
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_offline_commands
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_offline_commands
-    {
-    commands =
-        {
-        r_cmd_sastate_offline,  // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishswp,       // prio 0xFFF1
-        r_cmd_psstate_offline   // prio 0xFFF0
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_online_commands
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_online_commands
-    {
-    commands =
-        {
-        r_cmd_sastate_online,   // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishswp,       // prio 0xFFF1
-        r_cmd_psstate_online    // prio 0xFFF0
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_btsap
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_btsap
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 111;        // ESwStateNormalBTSap
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_offline
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_offline
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 110;        // ESwStateNormalRfOff
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate_online
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate_online
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 109;        // ESwStateNormalRfOn
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_publishswp
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_PUBLISH_SYSTEM_WIDE_PROPERTY r_cmd_publishswp
-    {
-    priority = 0xFFF1;
-    severity = ECmdCriticalSeverity;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_btsap
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_btsap
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_btsap;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_offline
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_offline
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_offline;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate_online
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate_online
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate_online;
-    }
-
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_btsap
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_btsap
-    {
-    mainstate = 1; // ESsmNormal
-    substate = 0x1B;
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_offline
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_offline
-    {
-    mainstate = 1; // ESsmNormal
-    substate = 0x1A;
-    }
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate_online
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate_online
-    {
-    mainstate = 1; // ESsmNormal
-    substate = 0x19;
-    }
--- a/startup/stem_securitycheckcmdlist.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,346 +0,0 @@
-/*
-* Copyright (c) 2009-2010 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:
-* Command list for the Security Check startup state.
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-
-#include "ssmsubstateext.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateSecurityCheck;
-            resource_id = r_cmds;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmds
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds
-    {
-    commands =
-        {
-        r_cmd_sastate,      // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate, // prio 0xFFF1
-        r_cmd_psstate,      // prio 0xFFF0
-        // prio 0xFFE7
-		r_cmd_menu,
-        r_cmd_idle,
-        // prio 0xFFE6
-        r_cmd_multiwaitforever1,
-        // prio 0xFFE3
-        r_cmd_startup,
-        r_cmd_phone,
-        r_cmd_nitz,
-        // prio 0xFFE2
-        r_cmd_multiwaitforever2,
-        // prio 0xFFDF
-        r_cmd_touchscreen,
-        r_cmd_touchplg,
-        // prio 0xFFDE
-        r_cmd_multiwaitforever3,
-        // prio 0xFFD8
-        r_cmd_createswp_simstatus,
-        // prio 0xFFD7
-        r_cmd_loadsup_simeventobserver,
-        // prio 0xFFD6
-        r_cmd_securitycheck
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmd_createswp_simstatus
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CREATE_SYSTEM_WIDE_PROPERTY r_cmd_createswp_simstatus
-    {
-    priority = 0xFFD8;
-    severity = ECmdCriticalSeverity;
-    key = 0x00000031; // KPSSimStatus
-    filename = "ssm.swp.policy.simstatus.dll";
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_idle
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_idle
-    {
-    priority = 0xFFE7;
-    name = "z:\\sys\\bin\\ailaunch.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    monitor_info = r_mon_max_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_menu
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_menu
-    {
-    priority = 0xFFE7;
-    name = "z:\\sys\\bin\\matrixmenu.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_multiwaitforever1
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MULTIPLE_WAIT r_cmd_multiwaitforever1
-    {
-    priority = 0xFFE6;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_multiwaitforever2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MULTIPLE_WAIT r_cmd_multiwaitforever2
-    {
-    priority = 0xFFE2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_multiwaitforever3
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MULTIPLE_WAIT r_cmd_multiwaitforever3
-    {
-    priority = 0xFFDE;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_nitz
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_nitz
-    {
-    priority = 0xFFE3;
-    name = "z:\\sys\\bin\\clockserver.exe";
-    execution_behaviour = ESsmFireAndForget; // -- does not call Rendezvous() --
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_phone
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_phone
-    {
-    priority = 0xFFE3;
-    name = "z:\\sys\\bin\\phoneui.exe";
-    execution_behaviour = ESsmFireAndForget;
-    retries = 2;
-    background = 1; // To background
-    monitor_info = r_mon_reset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_loadsup_simeventobserver
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_SSM_UTILITY_PLUGIN r_cmd_loadsup_simeventobserver
-    {
-    priority = 0xFFD7;
-    severity = ECmdCriticalSeverity;
-    filename = "ssmclayersup.dll";
-    ordinal = 2; // SimEventObserverNewL
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 103;        // ESwStateSecurityCheck
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_publishstate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_PUBLISH_SYSTEM_STATE r_cmd_publishstate
-    {
-    priority = 0xFFF1;
-    severity = ECmdCriticalSeverity;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_securitycheck
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_securitycheck
-    {
-    priority = 0xFFD6;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 1;
-    unload_on_finish = ENeverUnload;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_startup
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_startup
-    {
-    priority = 0xFFE3;
-    name = "z:\\sys\\bin\\startup.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    severity = ECmdCriticalSeverity;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_touchplg
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_touchplg
-    {
-    priority = 0xFFDF;
-    severity = ECmdCriticalSeverity;
-    dllname = "tsccustcmds.dll";
-    ordinal = 1;
-    retries = 2;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    conditional_information = r_cond_firstboot_and_tscinstartup;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_touchscreen
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_touchscreen
-    {
-    priority = 0xFFDF;
-    name = "z:\\sys\\bin\\touchscreencalib.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    conditional_information = r_cond_firstboot_and_tscinstartup;
-    }
-
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateSecurityCheck;
-    }
-
-// ===========================================================================
-// Conditional blocks in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cond_ps_firstboot
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_PUB_SUB_VALUE r_cond_ps_firstboot
-    {
-    category		  = 0x101F8766; // KPSUidStartup
-    key           = 0x00000013; // KPSStartupFirstBoot
-    value         = 101;        // EPSStartupFirstBoot
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_tscinstartup
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_tscinstartup
-    {
-    feature_id = KFeatureIdTouchscreencalibInStartup;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_firstboot_and_tscinstartup
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_LOGICAL_AND r_cond_firstboot_and_tscinstartup
-    {
-    lhs = r_cond_feat_tscinstartup;
-    rhs = r_cond_ps_firstboot;
-    }
-
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/startup/stem_selftestokcmdlist.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* 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:
-* Command list for the Selftest OK startup state.
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-
-#include "ssmsubstateext.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateSelfTestOK;
-            resource_id = r_cmds;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmds
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds
-    {
-    commands =
-        {
-        r_cmd_sastate,          // This needs to be the first command in state, prio 0xFFF2
-        r_cmd_publishstate,     // prio 0xFFF1
-        r_cmd_psstate           // prio 0xFFF0
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmd_psstate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate
-    {
-    priority = 0xFFF0;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000041; // KPSGlobalSystemState
-    value    = 102;        // ESwStateSelfTestOK
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_publishstate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_PUBLISH_SYSTEM_STATE r_cmd_publishstate
-    {
-    priority = 0xFFF1;
-    severity = ECmdCriticalSeverity;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_sastate
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate
-    {
-    priority = 0xFFF2;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 8;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    dll_data = r_dlldata_sastate;
-    }
-
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_sastate
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate
-    {
-    mainstate = 0; // ESsmStartup
-    substate = ESsmStateSelfTestOK;
-    }
--- a/startup/stem_uiservicescmdlist.rss	Wed Oct 27 09:59:12 2010 +0100
+++ b/startup/stem_uiservicescmdlist.rss	Wed Oct 27 15:25:50 2010 +0100
@@ -71,32 +71,13 @@
         // prio 0xFFE7
         r_cmd_startupmode,
         r_cmd_loadpowersup,
-        // prio 0xFFD7
-    //TomP    r_cmd_rfsfirstboot,
-    //TomP    r_cmd_rfsdeep,
-    //TomP    r_cmd_rfsnormal,
-        // prio 0xFFC7
-    //TomP    r_cmd_initclkeys,
-    //TomP    r_cmd_initramdrive,
         // prio 0xFFA7
         r_cmd_splash,
-        // prio 0xFF97
-    //TomP    r_cmd_rtc,
-        // prio 0xFF96 - rtc (tzsrv, cntsrv, mediator & hwrmsrv have been moved to extended startup list but use the same multiplewait command)
         r_cmd_multiwaitforever1,
-        // prio 0xFF87
-    //TomP    r_cmd_accsrv,
-    //TomP    r_cmd_selectlanguage,   // Select UI language to use
-        // prio 0xFF86 - accsrv, seleclanguage (dbrecovery has been moved to extended startup list but uses the same multiplewait command)
-        r_cmd_multiwaitforever2,
-        // prio 0xFF85
-    //TomP    r_cmd_loadlocalesup,    // Observes changes in locale data
         // prio 0xFF79
         r_cmd_aknstart,         // UI Framework
         // prio 0xFF77
         r_cmd_apparc_init      // Init application framework
-        // prio 0xFF75
-    //TomP    r_cmd_rfspostui        // Restore factory settings - after UI framework is up
         };
     }
 
@@ -106,20 +87,6 @@
 //
 
 // ---------------------------------------------------------------------------
-// r_cmd_accsrv
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_PROCESS_INFO r_cmd_accsrv
-    {
-    priority = 0xFF87;
-    name = "Z:\\sys\\bin\\accserver.exe";
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    monitor_info = r_mon_3_restarts_reset;
-    }
-*/
-// ---------------------------------------------------------------------------
 // r_cmd_aknstart
 // ---------------------------------------------------------------------------
 //
@@ -143,49 +110,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_initclkeys
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_initclkeys
-    {
-    priority = 0xFFC7;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    dllname = "ssmsystemcmds.dll";
-    ordinal = 3; // InitCriticalLevels
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_initramdrive
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_initramdrive
-    {
-    priority = 0xFFC7;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    dllname = "customcmds.dll";
-    ordinal = 14; // InitRamDrive
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    }
-*/
-// ---------------------------------------------------------------------------
-// r_cmd_loadlocalesup
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_SSM_UTILITY_PLUGIN r_cmd_loadlocalesup
-    {
-    priority = 0xFF85;
-    filename = "ssmlocaleobserversup.dll";
-    ordinal = 1;
-    }
-*/
-// ---------------------------------------------------------------------------
 // r_cmd_loadpowersup
 // ---------------------------------------------------------------------------
 //
@@ -206,14 +130,6 @@
     priority = 0xFF96;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_multiwaitforever2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MULTIPLE_WAIT r_cmd_multiwaitforever2
-    {
-    priority = 0xFF86;
-    }
 
 // ---------------------------------------------------------------------------
 // r_cmd_psstate
@@ -239,74 +155,8 @@
     retries = 2;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_rfsdeep
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_rfsdeep
-    {
-    priority = 0xFFD7;
-    dllname = "rfscustcmd.dll";
-    ordinal = 2; // RfsCustCmdDeepNewL
-    retries = 2;
-    conditional_information = r_cond_cenrep_rfs_deep;
-    }
 
 // ---------------------------------------------------------------------------
-// r_cmd_rfsfirstboot
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_rfsfirstboot
-    {
-    priority = 0xFFD7;
-    dllname = "rfscustcmd.dll";
-    ordinal = 1; // RfsCustCmdFirstBootNewL
-    retries = 2;
-    conditional_information = r_cond_ps_firstboot;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_rfsnormal
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_rfsnormal
-    {
-    priority = 0xFFD7;
-    dllname = "rfscustcmd.dll";
-    ordinal = 3; // RfsCustCmdPreUiNewL
-    retries = 2;
-    conditional_information = r_cond_cenrep_rfs_normal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_rfspostui
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_rfspostui
-    {
-    priority = 0xFF77;
-    dllname = "rfscustcmd.dll";
-    ordinal = 4; // RfsCustCmdPostUiNewL
-    retries = 2;
-    conditional_information = r_cond_cenrep_rfs_normal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_rtc
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_rtc
-    {
-    priority = 0xFF97;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 12;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    retries = 2;
-    }
-*/
-// ---------------------------------------------------------------------------
 // r_cmd_sastate
 // ---------------------------------------------------------------------------
 //
@@ -322,20 +172,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_selectlanguage
-// ---------------------------------------------------------------------------
-//
-/*
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_selectlanguage
-    {
-    priority = 0xFF87;
-    severity = ECmdCriticalSeverity;
-    dllname = "ssmlangselcmd.dll";
-    ordinal = 1; // SelectLanguage
-    retries = 2;
-    }
-*/
-// ---------------------------------------------------------------------------
 // r_cmd_splash
 // ---------------------------------------------------------------------------
 //
@@ -415,4 +251,4 @@
 
 // monitoring.rss contains resource definitions, so it may not be included
 // before entry point.
-#include "stem_monitoring.rss"
+//#include "stem_monitoring.rss"
--- a/startup/stem_uiservicescmdlist_ext.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
-* Copyright (c) 2009-2010 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:
-* Command list for the UI-Services startup state (UI shell version) for extended startup.
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-
-#include "ssmsubstateext.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateStartingUiServices;
-            resource_id = r_cmds;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmds
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds
-    {
-    commands =
-        {
-        // prio 0xFFA3
-        r_cmd_tzsrv,
-        r_cmd_cntsrv,
-        r_cmd_mediator,
-        r_cmd_hwrmsrv,
-        // prio 0xFF89
-        r_cmd_dbrecovery
-        };
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-
-// ---------------------------------------------------------------------------
-// r_cmd_cntsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_cntsrv
-    {
-    priority = 0xFFA3;
-    name = "Z:\\sys\\bin\\cntsrv.exe";
-    args = "-nontransient";
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_dbrecovery
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_dbrecovery
-    {
-    priority = 0xFF89;
-    name = "z:\\sys\\bin\\dbrecovery.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_hwrmsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_hwrmsrv
-    {
-    priority = 0xFFA3;
-    name = "Z:\\sys\\bin\\hwrmserver.exe";
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_mediator
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_mediator
-    {
-    priority = 0xFFA3;
-    name = "Z:\\sys\\bin\\mediatorserver.exe";
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    monitor_info = r_mon_3_restarts_reset;
-    conditional_information = r_cond_feat_mediator;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_tzsrv
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_tzsrv
-    {
-    priority = 0xFFA3;
-    name = "Z:\\sys\\bin\\tzserver.exe";
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    }
-
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_mediator
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_mediator
-    {
-    feature_id = KFeatureIdMediator;
-    }
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/startup/stem_uiswpcmdlists.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-/*
-* Copyright (c) 2009-2010 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:
-* Command lists for the UI phase SWP:
-*   - UI phase Started
-*
-*/
-
-#include <ssm/ssmcmd.rh>
-#include <ssm/clayerswp.hrh>
-
-#include "ssmswp.hrh"
-#include "ssmdlldatadefs.rh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmUiPhaseStarted;
-            resource_id = r_started_commands;
-            }
-        };
-    }
-
-// ===========================================================================
-// Command lists in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_started_commands
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_started_commands
-    {
-    commands =
-        {
-        r_cmd_publishswp,           // prio 0xFFF1
-        r_cmd_kill_splash,          // prio 0xFFE7 - Remove splash screen
-        r_cmd_devlockcheck,         // prio 0xFFD7 - Security code query, if needed
-        r_cmd_startanim,            // prio 0xFFC7 - Startup animation(s)
-        r_cmd_waitanim,             // prio 0xFFB7 - Wait for the animations to finish
-		r_cmd_adtupdater,			// prio 0xFFAA - Location, date & time queries //CR:ESAH-84JFCU
-        r_cmd_enableappskey,        // prio 0xFFA7 - Enable applications key
-        r_cmd_enableglobalnotes,    // prio 0xFFA7 - Enable global notes
-        r_cmd_swidaemon             // prio 0xFF97 - Initializes pre-installed applications from memory card
-		};
-    }
-
-// ===========================================================================
-// Command items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_cmd_adtupdater
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_adtupdater
-    {
-    priority = 0xFFAA;
-    name = "adtupdater.exe";
-    execution_behaviour = ESsmFireAndForget;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_devlockcheck
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_devlockcheck
-    {
-    priority = 0xFFD7;
-    severity = ECmdCriticalSeverity;
-    dllname = "customcmds.dll";
-    ordinal = 11; // Device security check
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_enableappskey
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_enableappskey
-    {
-    priority = 0xFFA7;
-    severity = ECmdCriticalSeverity;
-    dllname = "akncustcmds.dll";
-    ordinal = 2; // EnableAppsKey
-    retries = 2;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_enableglobalnotes
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_enableglobalnotes
-    {
-    priority = 0xFFA7;
-    severity = ECmdCriticalSeverity;
-    category = 0x101F8773;  // KPSUidUikon
-    key = 0x00000006;       // KUikGlobalNotesAllowed
-    value = 1;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_kill_splash
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_kill_splash
-    {
-    priority = 0xFFE7;
-    category = 0x101F8766; // KPSUidStartup
-    key      = 0x00000301; // KPSSplashShutdown
-    value    = 101;        // ESplashShutdown
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_publishswp
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_PUBLISH_SYSTEM_WIDE_PROPERTY r_cmd_publishswp
-    {
-    priority = 0xFFF1;
-    severity = ECmdCriticalSeverity;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_startanim
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_startanim
-    {
-    priority = 0xFFC7;
-    severity = ECmdCriticalSeverity;
-    category = 0x100058F4;  // KPSUidStartupApp
-    key = 0x00000001;       // KPSStartupAppState
-    value = 2;              // EStartupAppStateStartAnimations
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_swidaemon
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_swidaemon
-    {
-    priority = 0xFF97;
-    name = "z:\\sys\\bin\\swidaemon.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    monitor_info = r_mon_3_restarts_reset;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_waitanim
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_waitanim
-    {
-    priority = 0xFFB7;
-    severity = ECmdCriticalSeverity;
-    dllname = "ssmsystemcmds.dll";
-    ordinal = 5; // WaitPsKeyExact
-    dll_data = r_dlldata_waitanim;
-    unload_on_finish = ENeverUnload;
-    retries = 2;
-    execution_behaviour = ESsmWaitForSignal;
-    }
-
-// ===========================================================================
-// DLL data items in alphabetical order
-// ===========================================================================
-//
-
-// ---------------------------------------------------------------------------
-// r_dlldata_waitanim
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_WAIT_PS r_dlldata_waitanim
-    {
-    category = 0x100058F4;  // KPSUidStartupApp
-    key = 0x00000001;       // KPSStartupAppState
-    target = 3;             // EStartupAppStateFinished
-    }
-
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/startup/stem_usbwatcher_hw.rss	Wed Oct 27 09:59:12 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* 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:
-* Command list for USB Watcher component.
-*
-*/
-
-#include <ssm/conditionresourcetypes.rh>
-#include <ssm/ssmcmd.rh>
-
-#include "ssmsubstateext.hrh"
-
-// Identify command list type
-UID2 KUidSsmCommandListResourceFile
-
-// ---------------------------------------------------------------------------
-// r_entry_point
-// This must be the first resource
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
-    {
-    command_list_mapping = r_map;
-    }
-
-// ---------------------------------------------------------------------------
-// r_map
-// Mapping of command list ids to resource ids.
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST_MAPPING r_map
-    {
-    mappings =
-        {
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateCharging;
-            resource_id = r_cmds_charging;
-            },
-        SSM_COMMANDLISTID_TO_RESOURCEID
-            {
-            command_list_id = ESsmStateNonCritical;
-            resource_id = r_cmds_noncritical;
-            }
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmds_noncritical
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_COMMAND_LIST r_cmds_noncritical
-    {
-    commands =
-        {
-        r_cmd_usbwatcher
-        };
-    }
-
-RESOURCE SSM_COMMAND_LIST r_cmds_charging
-    {
-    commands =
-        {
-#ifdef RD_USB_CHARGING
-        r_cmd_usbwatcher
-#endif //RD_USB_CHARGING
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_usbwatcher
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_usbwatcher
-    {
-    priority = 0xFFA7; // Same priority can be used in both states
-    name = "z:\\sys\\bin\\usbwatcher.exe";
-    execution_behaviour = ESsmFireAndForget;
-    conditional_information = r_cond_feat_usb;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_usb
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_usb
-    {
-    feature_id = KFeatureIdUsb;
-    }
-
-// monitoring.rss contains resource definitions, so it may not be included
-// before entry point.
-#include "stem_monitoring.rss"
--- a/syborg_stem/rom_content.csv	Wed Oct 27 09:59:12 2010 +0100
+++ b/syborg_stem/rom_content.csv	Wed Oct 27 15:25:50 2010 +0100
@@ -249,7 +249,7 @@
 private\101F7988\esock_sip.cmi,/epoc32/data/z/private/101f7988/esock_sip.cmi,sipproviders.iby,mw/ipappprotocols,,,
 private\101F7988\esock_smswap.cmi,/epoc32/data/z/private/101f7988/esock_smswap.cmi,esock.iby,os/commsfw,,,
 private\101F7988\esock_tr.cmi,/epoc32/data/z/private/101f7988/esock_tr.cmi,esock.iby,os/commsfw,,,
-private\101F7988\etel.cmi,/epoc32/data/z/private/101f7988/etel.cmi,etel.iby,os/cellularsrv,,,
+private\101F7988\etel.cmi,/epoc32/data/z/private/101f7988/etel.cmi,etel.iby,os/cellularsrv,out,TomP,Must remove this when you remove etel.dll
 private\101F7989\backup_registration.xml,/epoc32/data/z/private/101f7989/backup_registration.xml,esock_core.iby,os/commsfw,,,
 Private\101F7989\Bluetooth\bluetooth_stack.ini,/epoc32/data/z/private/101f7989/bluetooth/bluetooth_stack.ini,bluetooth.iby,os/bt,,,
 Private\101F7989\Bluetooth\cmdq.ini,/epoc32/data/z/private/101f7989/bluetooth/cmdq.ini,hci_framework.iby,os/bt,,,
@@ -813,7 +813,7 @@
 private\2000B187\cenrep\102818E8.xml,/epoc32/data/z/private/2000b187/cenrep/102818e8.xml,core/mw/psln.iby,mw/classicui,,,
 private\2000B4D8\backup_registration.xml,/epoc32/data/z/private/2000b4d8/backup_registration.xml,core/mw/WidgetBackupRestore.iby,mw/web,,,
 private\2000D75B\fail\failcmdlist.rsc,/epoc32/data/z/private/2000d75b/fail/failcmdlist.rsc,core/os/ssmcmdlists.iby,os/devicesrv,out,TomP,Stripped down startup
-private\2000D75B\startup\0\noncriticalcmdlist_hw.rsc,/epoc32/data/z/private/2000d75b/hw/noncriticalcmdlist_hw.rsc,core/os/ssmcmdlists.iby,os/devicesrv,stem,WR,Startup script
+private\2000D75B\startup\0\noncriticalcmdlist_hw.rsc,/epoc32/data/z/private/2000d75b/hw/noncriticalcmdlist_hw.rsc,core/os/ssmcmdlists.iby,os/devicesrv,out,TomP,Stripped down startup
 private\2000D75B\startup\0\usbwatcher.rsc,/epoc32/data/z/private/2000d75b/hw/usbwatcher_hw.rsc,core/os/ssmcmdlists.iby,os/devicesrv,out,TomP,Stripped down startup
 private\2000D75B\startup\0\wserv.rsc,/epoc32/data/z/private/2000d75b/hw/wserv_hw.rsc,core/os/ssmcmdlists.iby,os/devicesrv,stem,WR,Startup script
 private\2000d75b\normal\gsanormalcmdlist.rsc,/epoc32/data/z/private/2000d75b/normal/gsanormalcmdlist.rsc,core/os/ssmcompatibility.iby,os/devicesrv,,,
@@ -3250,7 +3250,7 @@
 sys\bin\CTSecDlgs.dll,/epoc32/release/armv5/urel/ctsecdlgs.dll,core/mw/CTSecurityDialogs.iby,mw/securitysrv,,,
 Sys\Bin\ctsysystemstateplugin.dll,/epoc32/release/armv5/urel/ctsysystemstateplugin.dll,ctsysystemstateplugin.iby,os/cellularsrv,,,
 Sys\Bin\CUSTOMAPI.DLL,/epoc32/release/armv5/urel/customapi.dll,ctsy.iby,os/cellularsrv,,,
-sys\bin\customcmds.dll,/epoc32/release/armv5/urel/customcmds.dll,core/os/ssmcompatibility.iby,os/devicesrv,,,
+sys\bin\customcmds.dll,/epoc32/release/armv5/urel/customcmds.dll,core/os/ssmcompatibility.iby,os/devicesrv,stem,TomP,To break dependencies on things no longer needed by startup (eg etel.dll)
 sys\bin\CustomCommandUtility.dll,/epoc32/release/armv5/urel/customcommandutility.dll,core/os/MMExtFw.iby,os/mm,,,
 sys\bin\CustomInterfaceBuilder.dll,/epoc32/release/armv5/urel/custominterfacebuilder.dll,core/os/MMExtFw.iby,os/mm,,,
 sys\bin\CustomInterfaceProxyFactory.dll,/epoc32/release/armv5/urel/custominterfaceproxyfactory.dll,core/os/MMExtFw.iby,adaptation/stubs,,,
@@ -3396,7 +3396,7 @@
 sys\bin\DrmServiceAPI.dll,/epoc32/release/armv5/urel/drmserviceapi.dll,core/mw/drm5.iby,mw/drm,,,
 sys\bin\drmserviceapiwrapper.dll,/epoc32/release/armv5/urel/drmserviceapiwrapper.dll,core/mw/drmserviceapiwrapper.iby,mw/drm,,,
 Sys\Bin\drmsettingsplugin.dll,/epoc32/release/armv5/urel/drmsettingsplugin.dll,core/mw/drmsettingsplugin.iby,mw/drm,,,
-sys\bin\DrmStdKeyStorage.dll,/epoc32/release/armv5/urel/drmstdkeystorage.dll,core/mw/drm5.iby,mw/drm,,,
+sys\bin\DrmStdKeyStorage.dll,/epoc32/release/armv5/urel/drmstdkeystorage.dll,core/mw/drm5.iby,mw/drm,stem,TomP,Break dependence on etel.dll
 Sys\Bin\DRMstringdict00.dll,/epoc32/release/armv5/urel/drmstringdict00.dll,rohandler.iby,mw/messagingmw,,,
 sys\bin\DRMUiHandling.dll,/epoc32/release/armv5/urel/drmuihandling.dll,core/mw/drmutility.iby,mw/drm,,,
 sys\bin\DRMUiHandlingImpl.dll,/epoc32/release/armv5/urel/drmuihandlingimpl.dll,core/mw/drmutility.iby,mw/drm,,,
@@ -3547,7 +3547,7 @@
 sys\bin\eswtapifacade.dll,/epoc32/release/armv5/urel/eswtapifacade.dll,core/app/java.iby,app/jrt,,,
 sys\bin\eswtdirectcontent.dll,/epoc32/release/armv5/urel/eswtdirectcontent.dll,core/app/java.iby,app/jrt,,,
 sys\bin\eswtphysics.dll,/epoc32/release/armv5/urel/eswtphysics.dll,core/app/java.iby,app/jrt,,,
-sys\bin\ETel.dll,/epoc32/release/armv5/urel/etel.dll,etel.iby,os/cellularsrv,,WR,Stem does not support telephony
+sys\bin\ETel.dll,/epoc32/release/armv5/urel/etel.dll,etel.iby,os/cellularsrv,out,WR,Stem does not support telephony
 sys\bin\Etel3rdParty.dll,/epoc32/release/armv5/urel/etel3rdparty.dll,etelisv.iby,os/cellularsrv,,,
 sys\bin\etelmm.dll,/epoc32/release/armv5/urel/etelmm.dll,etelmm.iby,os/cellularsrv,,,
 sys\bin\etelpckt.dll,/epoc32/release/armv5/urel/etelpckt.dll,etelpckt.iby,os/cellularsrv,,,
@@ -5173,7 +5173,7 @@
 sys\bin\RfsServer.exe,/epoc32/release/armv5/urel/rfsserver.exe,core/mw/rfs.iby,mw/appsupport,,,
 sys\bin\rfstatusswppolicy.dll,/epoc32/release/armv5/urel/rfstatusswppolicy.dll,core/os/ssmcompatibility.iby,os/devicesrv,,,
 sys\bin\richBio.dll,/epoc32/release/armv5/urel/richbio.dll,core/app/Richbio.iby,app/messaging,,,
-sys\bin\RightsServer.EXE,/epoc32/release/armv5/urel/rightsserver.exe,core/mw/drm5.iby,mw/drm,,,
+sys\bin\RightsServer.EXE,/epoc32/release/armv5/urel/rightsserver.exe,core/mw/drm5.iby,mw/drm,stem,TomP,Break dependence on etel.dll
 sys\bin\RingBC.dll,/epoc32/release/armv5/urel/ringbc.dll,core/app/RingBC.iby,app/messaging,,,
 sys\bin\RLock.exe,/epoc32/release/armv5/urel/rlock.exe,core/mw/RemoteLock.iby,mw/securitysrv,,,
 sys\bin\RLockSettings.dll,/epoc32/release/armv5/urel/rlocksettings.dll,core/mw/RemoteLock.iby,mw/securitysrv,,,
@@ -5181,7 +5181,7 @@
 sys\bin\rm_debug.ldd,/epoc32/release/armv5/urel/rm_debug.ldd,rm_debug_svr.iby,os/kernelhwsrv,,,
 sys\bin\rm_debug_svr.exe,/epoc32/release/armv5/urel/rm_debug_svr.exe,rm_debug_svr.iby,os/kernelhwsrv,,,
 sys\bin\RoapApp.exe,/epoc32/release/armv5/urel/roapapp.exe,core/mw/CodHandler.iby,mw/web,,WR,application
-sys\bin\RoapHandler.DLL,/epoc32/release/armv5/urel/roaphandler.dll,core/mw/drm5.iby,mw/drm,,,
+sys\bin\RoapHandler.DLL,/epoc32/release/armv5/urel/roaphandler.dll,core/mw/drm5.iby,mw/drm,stem,TomP,Break dependence on etel.dll
 Sys\Bin\roapphandler.dll,/epoc32/release/armv5/urel/roapphandler.dll,rohandler.iby,mw/messagingmw,,,
 Sys\Bin\roaptcontenthandler.dll,/epoc32/release/armv5/urel/roaptcontenthandler.dll,rohandler.iby,mw/messagingmw,,,
 Sys\Bin\rocontenthandler.dll,/epoc32/release/armv5/urel/rocontenthandler.dll,rohandler.iby,mw/messagingmw,,,
--- a/syborg_stem/static_dependencies.txt	Wed Oct 27 09:59:12 2010 +0100
+++ b/syborg_stem/static_dependencies.txt	Wed Oct 27 15:25:50 2010 +0100
@@ -1223,10 +1223,10 @@
 private\2000D75B\startup\0\noncriticalcmdlist.rsc	/epoc32/data/z/private/2000d75b/startup/0/stem_noncriticalcmdlist.rsc	sys\bin\customcmds.dll
 private\2000D75B\startup\0\noncriticalcmdlist_ext.rsc	/epoc32/data/z/private/2000d75b/startup/0_ext/noncriticalcmdlist_ext.rsc	sys\bin\ALWAYSONLINESTARTER.exe:sys\bin\CBSSERVER.EXE:sys\bin\DMUtilServer.exe:sys\bin\Ncnlist.exe:sys\bin\SATSERVER.EXE:sys\bin\Schexe.exe:sys\bin\contentharvester.exe:sys\bin\dcmostartupcustcmd.dll:sys\bin\emailservermonitor.exe:sys\bin\epos_omasupllistener.exe:sys\bin\fotacustcmds.dll:sys\bin\gsserver.exe:sys\bin\ippushman.exe:sys\bin\javacaptain.exe:sys\bin\lbtserver.exe:sys\bin\lockapp.exe:sys\bin\locod.exe:sys\bin\mdswatchdog.exe:sys\bin\pocstarter.exe:sys\bin\predefinedContacts.exe:sys\bin\rsfwbootmounter.exe:sys\bin\ssmnoncriticalswppolicy.dll:sys\bin\ssmsystemcmds.dll:sys\bin\taskswitcher.exe:sys\bin\vcommandmanager.exe:sys\bin\watcher.exe:sys\bin\xnthemeserver.exe
 private\2000D75B\startup\0\noncriticalcmdlist_hw.rsc	/epoc32/data/z/private/2000d75b/hw/stem_noncriticalcmdlist_hw.rsc	sys\bin\Dataconnectionlogger.exe:sys\bin\DevEncStarter.exe:sys\bin\ProvisioningSC.exe:sys\bin\RLock.exe:sys\bin\sipprofilesrv.exe:sys\bin\ssmactivitycmd.dll
-private\2000D75B\startup\0\preuiservicescmdlist.rsc	/epoc32/data/z/private/2000d75b/startup/0/stem_preuiservicescmdlist.rsc	Sys\bin\sysmon.exe:sys\bin\customcmds.dll:sys\bin\ssmdiskreserver.exe:sys\bin\ssmsystemcmds.dll:sys\bin\ssmutilsrv.exe:sys\bin\startupprofiling.exe:sys\bin\sysagt2svr.exe
+private\2000D75B\startup\0\preuiservicescmdlist.rsc	/epoc32/data/z/private/2000d75b/startup/0/stem_preuiservicescmdlist.rsc	Sys\bin\sysmon.exe:sys\bin\customcmds.dll:sys\bin\ssmsystemcmds.dll:sys\bin\ssmutilsrv.exe:sys\bin\sysagt2svr.exe
 private\2000D75B\startup\0\securitycheckcmdlist.rsc	/epoc32/data/z/private/2000d75b/startup/0/securitycheckcmdlist.rsc	sys\bin\TouchScreenCalib.exe:sys\bin\ailaunch.exe:sys\bin\clockserver.exe:sys\bin\customcmds.dll:sys\bin\matrixmenu.exe:sys\bin\phoneui.exe:sys\bin\ssm.swp.policy.simstatus.dll:sys\bin\ssmclayersup.dll:sys\bin\startup.exe:sys\bin\tsccustcmds.dll
 private\2000D75B\startup\0\selftestokcmdlist.rsc	/epoc32/data/z/private/2000d75b/startup/0/selftestokcmdlist.rsc	sys\bin\customcmds.dll
-private\2000D75B\startup\0\uiservicescmdlist.rsc	/epoc32/data/z/private/2000d75b/startup/0/stem_uiservicescmdlist.rsc	sys\bin\SplashScreen.exe:sys\bin\akncustcmds.dll:sys\bin\customcmds.dll:sys\bin\rfscustcmd.dll:sys\bin\ssmpowersup.dll
+private\2000D75B\startup\0\uiservicescmdlist.rsc	/epoc32/data/z/private/2000d75b/startup/0/stem_uiservicescmdlist.rsc	sys\bin\SplashScreen.exe:sys\bin\akncustcmds.dll:sys\bin\customcmds.dll:sys\bin\ssmpowersup.dll
 private\2000D75B\startup\0\uiservicescmdlist_ext.rsc	/epoc32/data/z/private/2000d75b/startup/0_ext/uiservicescmdlist_ext.rsc	sys\bin\DBRECOVERY.EXE:sys\bin\HWRMServer.exe:sys\bin\MediatorServer.exe:sys\bin\cntsrv.exe:sys\bin\tzserver.exe
 private\2000D75B\startup\0\usbwatcher.rsc	/epoc32/data/z/private/2000d75b/hw/usbwatcher_hw.rsc	sys\bin\usbwatcher.exe
 private\2000D75B\startup\0\wserv.rsc	/epoc32/data/z/private/2000d75b/hw/stem_wserv_hw.rsc	sys\bin\EwSrv.exe
@@ -1926,7 +1926,7 @@
 sys\bin\DrmRightsInfoImpl.dll	/epoc32/release/armv5/urel/drmrightsinfoimpl.dll	sid=10282e25:DrmServerInterfaces[101f6db5].dll:charconv[10003b11].dll:drmutilitycommon[10283302].dll:drtaeabi.dll:euser[100039e5].dll:scppnwdl.dll
 sys\bin\DrmServerInterfaces.DLL	/epoc32/release/armv5/urel/drmserverinterfaces.dll	sid=101f6db5:DrmCrypto[101f6db9].dll:DrmRights[10205cae].dll:crypto[10005e0b].dll:drtaeabi.dll:efsrv[100039e4].dll:estor[10003b0d].dll:euser[100039e5].dll:featmgr[10005a2b].dll:hash[10005e11].dll:inetprotutil[100041d1].dll:scppnwdl.dll:x509[10005e0e].dll
 sys\bin\DrmServiceAPI.dll	/epoc32/release/armv5/urel/drmserviceapi.dll	sid=10282cb1:DrmServerInterfaces[101f6db5].dll:drtaeabi.dll:euser[100039e5].dll:scppnwdl.dll
-sys\bin\DrmStdKeyStorage.dll	/epoc32/release/armv5/urel/drmstdkeystorage.dll	sid=10205caf:asn1[10005e09].dll:cryptography[101fd20b].dll:crypto[10005e0b].dll:drtaeabi.dll:efsrv[100039e4].dll:etelmm[100064dd].dll:etel[10003d46].dll:euser[100039e5].dll:featmgr[10005a2b].dll:hash[10005e11].dll:platformenv[101f857f].dll:random[10005e12].dll:scppnwdl.dll:x500[10005e0d].dll:x509[10005e0e].dll
+sys\bin\DrmStdKeyStorage.dll	/epoc32/release/armv5/urel/stem_drmstdkeystorage.dll	sid=10205caf:asn1[10005e09].dll:cryptography[101fd20b].dll:crypto[10005e0b].dll:drtaeabi.dll:efsrv[100039e4].dll:euser[100039e5].dll:featmgr[10005a2b].dll:hash[10005e11].dll:platformenv[101f857f].dll:random[10005e12].dll:scppnwdl.dll:x500[10005e0d].dll:x509[10005e0e].dll
 sys\bin\DrmUtilityDmgrWrapper.dll	/epoc32/release/armv5/urel/drmutilitydmgrwrapper.dll	sid=102830fe:CommonEngine[100058fe].dll:DownloadMgr[10008d5f].dll:ROAPHandler[101f6db5].dll:avkon[100056c6].dll:centralrepository[101fbc70].dll:cmmanager[10207376].dll:drtaeabi.dll:efsrv[100039e4].dll:eikctl[1000489c].dll:euser[100039e5].dll:platformenv[101f857f].dll:scppnwdl.dll
 sys\bin\Dtdmdl.dll	/epoc32/release/armv5/urel/dtdmdl.dll	sid=10005177:bnf[10005183].dll:drtaeabi.dll:efsrv[100039e4].dll:euser[100039e5].dll:scppnwdl.dll:wnode[100041f7].dll:wutil[1000517c].dll
 sys\bin\EAacPlusDecoderIntfc.dll	/epoc32/release/armv5/urel/eaacplusdecoderintfc.dll	sid=10207b1e:euser[100039e5].dll:mediaclientaudiostream[10003996].dll:mmfdevsound[100058cc].dll
@@ -2337,10 +2337,10 @@
 sys\bin\RestrictedAudioOutputProxy.dll	/epoc32/release/armv5/urel/restrictedaudiooutputproxy.dll	sid=10207b98:RestrictedAudioOutput[10207b95].dll:drtaeabi.dll:euser[100039e5].dll:mmfdevsound[100058cc].dll:scppnwdl.dll
 sys\bin\ReverseGeocode.dll	/epoc32/release/armv5/urel/reversegeocode.dll	sid=ef7e39a4:bafl[10003a0f].dll:charconv[10003b11].dll:cmmanager[10207376].dll:drtaeabi.dll:esock[10003d3f].dll:euser[100039e5].dll:extendedconnpref[20027034].dll:http[1000a441].dll:inetprotutil[100041d1].dll:lbs[101f97b1].dll:netmeta[1020430b].dll:scppnwdl.dll:xmlframework[101fadcc].dll
 sys\bin\RfsServer.exe	/epoc32/release/armv5/urel/rfsserver.exe	sid=102073ea:drtaeabi.dll:euser[100039e5].dll:rfs[10005984].dll
-sys\bin\RightsServer.EXE	/epoc32/release/armv5/urel/rightsserver.exe	sid=101f51f2:DcfRep[10205ca9].dll:DrmCrypto[101f6db9].dll:DrmKeyStorage[10205caa].dll:DrmParsers[10205cad].dll:DrmRights[10205cae].dll:DrmServerInterfaces[101f6db5].dll:abclient[10202d2d].dll:asn1[10005e09].dll:bafl[10003a0f].dll:centralrepository[101fbc70].dll:charconv[10003b11].dll:cryptography[101fd20b].dll:crypto[10005e0b].dll:drtaeabi.dll:drtrvct2_2.dll:edbms[10003b0e].dll:efsrv[100039e4].dll:eposindicator[101f7a7a].dll:estor[10003b0d].dll:etelmm[100064dd].dll:etel[10003d46].dll:euser[100039e5].dll:featmgr[10005a2b].dll:hash[10005e11].dll:inetprotutil[100041d1].dll:lbs[101f97b1].dll:platformenv[101f857f].dll:random[10005e12].dll:scppnwdl.dll:starterclient[100059ca].dll:sysutil[10005943].dll:wmdrmfileserverclient[2000b181].dll:x500[10005e0d].dll:x509[10005e0e].dll
+sys\bin\RightsServer.EXE	/epoc32/release/armv5/urel/stem_rightsserver.exe	sid=101f51f2:DcfRep[10205ca9].dll:DrmCrypto[101f6db9].dll:DrmKeyStorage[10205caa].dll:DrmParsers[10205cad].dll:DrmRights[10205cae].dll:DrmServerInterfaces[101f6db5].dll:abclient[10202d2d].dll:asn1[10005e09].dll:bafl[10003a0f].dll:centralrepository[101fbc70].dll:charconv[10003b11].dll:cryptography[101fd20b].dll:crypto[10005e0b].dll:drtaeabi.dll:drtrvct2_2.dll:edbms[10003b0e].dll:efsrv[100039e4].dll:eposindicator[101f7a7a].dll:estor[10003b0d].dll:euser[100039e5].dll:featmgr[10005a2b].dll:hash[10005e11].dll:inetprotutil[100041d1].dll:lbs[101f97b1].dll:platformenv[101f857f].dll:random[10005e12].dll:scppnwdl.dll:starterclient[100059ca].dll:sysutil[10005943].dll:wmdrmfileserverclient[2000b181].dll:x500[10005e0d].dll:x509[10005e0e].dll
 sys\bin\RingBC.dll	/epoc32/release/armv5/urel/ringbc.dll	sid=101f4cdc:AKNSKINS[10005a26].dll:AknLayout2Scalable[102040d7].dll:CdlEngine[101f8243].dll:CommonEngine[100058fe].dll:MsgEditorUtils[100007aa].dll:avkon[100056c6].dll:bafl[10003a0f].dll:centralrepository[101fbc70].dll:cone[10003a41].dll:drtaeabi.dll:efsrv[100039e4].dll:egul[100048a2].dll:eikcoctl[1000489e].dll:eikcore[10004892].dll:eikctl[1000489c].dll:etext[10003a1c].dll:euser[100039e5].dll:featmgr[10005a2b].dll:form[10003b27].dll:gdi[10003b15].dll:msgeditormediacontrol[102072e7].dll:msgeditormodel[100058bf].dll:msgs[10004e66].dll:platformenv[101f857f].dll:scppnwdl.dll
 sys\bin\RoapApp.exe	/epoc32/release/armv5/urel/roapapp.exe	sid=10008d64:AKNSKINS[10005a26].dll:CommonEngine[100058fe].dll:CommonUI[100058fd].dll:DcfRep[10205ca9].dll:DownloadMgr[10008d5f].dll:DrmRights[10205cae].dll:ROAPHandler[101f6db5].dll:apgrfx[10003a3c].dll:apmime[10003a1a].dll:apparc[10003a3d].dll:avkon[100056c6].dll:caf.dll:centralrepository[101fbc70].dll:cone[10003a41].dll:drtaeabi.dll:efsrv[100039e4].dll:eikcoctl[1000489e].dll:eikcore[10004892].dll:eikdlg[10004898].dll:euser[100039e5].dll:featmgr[10005a2b].dll:hlplch[101f423b].dll:scppnwdl.dll
-sys\bin\RoapHandler.DLL	/epoc32/release/armv5/urel/roaphandler.dll	sid=101f6db5:CommonUI[100058fd].dll:DcfRep[10205ca9].dll:DrmCrypto[101f6db9].dll:DrmParsers[10205cad].dll:DrmRights[10205cae].dll:DrmServerInterfaces[101f6db5].dll:HttpFilterCommon[101f8711].dll:apmime[10003a1a].dll:bafl[10003a0f].dll:caf.dll:centralrepository[101fbc70].dll:charconv[10003b11].dll:cmmanager[10207376].dll:commdb[10004e1c].dll:crypto[10005e0b].dll:drmroapwbxmlparser[200113bf].dll:drtaeabi.dll:drtrvct2_2.dll:ecom[10009d8e].dll:efsrv[100039e4].dll:esock[10003d3f].dll:etelmm[100064dd].dll:etel[10003d46].dll:euser[100039e5].dll:featmgr[10005a2b].dll:flogger[10004d0a].dll:hash[10005e11].dll:http[1000a441].dll:inetprotutil[100041d1].dll:platformenv[101f857f].dll:random[10005e12].dll:scppnwdl.dll:sysutil[10005943].dll:x500[10005e0d].dll:x509[10005e0e].dll:xmlframework[101fadcc].dll
+sys\bin\RoapHandler.DLL	/epoc32/release/armv5/urel/stem_roaphandler.dll	sid=101f6db5:CommonUI[100058fd].dll:DcfRep[10205ca9].dll:DrmCrypto[101f6db9].dll:DrmParsers[10205cad].dll:DrmRights[10205cae].dll:DrmServerInterfaces[101f6db5].dll:HttpFilterCommon[101f8711].dll:apmime[10003a1a].dll:bafl[10003a0f].dll:caf.dll:centralrepository[101fbc70].dll:cmmanager[10207376].dll:commdb[10004e1c].dll:crypto[10005e0b].dll:drmroapwbxmlparser[200113bf].dll:drtaeabi.dll:drtrvct2_2.dll:ecom[10009d8e].dll:efsrv[100039e4].dll:esock[10003d3f].dll:euser[100039e5].dll:featmgr[10005a2b].dll:flogger[10004d0a].dll:hash[10005e11].dll:http[1000a441].dll:inetprotutil[100041d1].dll:platformenv[101f857f].dll:random[10005e12].dll:scppnwdl.dll:x500[10005e0d].dll:x509[10005e0e].dll:xmlframework[101fadcc].dll
 sys\bin\RoomLevelEffect.dll	/epoc32/release/armv5/urel/roomleveleffect.dll	sid=10207b3c:CustomInterfaceUtility[101fafe1].dll:EffectBase[101fafdd].dll:drtaeabi.dll:euser[100039e5].dll:mediaclientaudioinputstream[10003998].dll:mediaclientaudiostream[10003996].dll:mediaclientaudio[10003992].dll:mmfdevsound[100058cc].dll:scppnwdl.dll
 sys\bin\RoomLevelMessageHandler.dll	/epoc32/release/armv5/urel/roomlevelmessagehandler.dll	sid=10207b3e:EffectBase[101fafdd].dll:drtaeabi.dll:euser[100039e5].dll:mmfcontrollerframework[101f76dd].dll:scppnwdl.dll
 sys\bin\RoomLevelProxy.dll	/epoc32/release/armv5/urel/roomlevelproxy.dll	sid=10207b3d:EffectBase[101fafdd].dll:RoomLevelEffect[10207b3c].dll:drtaeabi.dll:euser[100039e5].dll:mmfcontrollerframework[101f76dd].dll:scppnwdl.dll
@@ -2829,7 +2829,7 @@
 sys\bin\cshelp.exe	/epoc32/release/armv5/urel/cshelp.exe	sid=10005234:AKNSKINS[10005a26].dll:AknLayout2Scalable[102040d7].dll:AknNotify[010f9a43].dll:CdlEngine[101f8243].dll:HelpEngine[0bc03cd8].dll:apgrfx[10003a3c].dll:apmime[10003a1a].dll:apparc[10003a3d].dll:avkon[100056c6].dll:charconv[10003b11].dll:cone[10003a41].dll:dfpaeabi.dll:drtaeabi.dll:efsrv[100039e4].dll:eikcoctl[1000489e].dll:eikcore[10004892].dll:eikctl[1000489c].dll:etext[10003a1c].dll:euser[100039e5].dll:featmgr[10005a2b].dll:gdi[10003b15].dll:scppnwdl.dll
 sys\bin\ctfinder.dll	/epoc32/release/armv5/urel/ctfinder.dll	sid=102020e5:ctframework[101f4e47].dll:drtaeabi.dll:ecom[10009d8e].dll:euser[100039e5].dll:scppnwdl.dll
 sys\bin\ctframework.dll	/epoc32/release/armv5/urel/ctframework.dll	sid=101f4e47:drtaeabi.dll:estor[10003b0d].dll:euser[100039e5].dll:scppnwdl.dll
-sys\bin\customcmds.dll	/epoc32/release/armv5/urel/customcmds.dll	sid=2000e662:bafl[10003a0f].dll:centralrepository[101fbc70].dll:drtaeabi.dll:efsrv[100039e4].dll:etelmm[100064dd].dll:etel[10003d46].dll:euser[100039e5].dll:scppnwdl.dll:ssmadaptationcli[2000d75e].dll:ssmcmn[2000d762].dll:ssmsuscli[2000d75c].dll:ssmuiproviderdll[2000e665].dll
+sys\bin\customcmds.dll	/epoc32/release/armv5/urel/stem_customcmds.dll	sid=2000e662:bafl[10003a0f].dll:centralrepository[101fbc70].dll:drtaeabi.dll:efsrv[100039e4].dll:euser[100039e5].dll:scppnwdl.dll:ssmadaptationcli[2000d75e].dll:ssmcmn[2000d762].dll:ssmuiproviderdll[2000e665].dll
 sys\bin\custrestartsys.dll	/epoc32/release/armv5/urel/custrestartsys.dll	sid=20021349:ssmcmn[2000d762].dll
 sys\bin\d_ftrace.ldd	/epoc32/release/armv5/urel/d_ftrace.ldd	sid=00000000:ekern[100041af].exe
 sys\bin\dbusdaemon.exe	/epoc32/release/armv5/urel/dbusdaemon.exe	sid=20010155:dfpaeabi.dll:drtaeabi.dll:efsrv[100039e4].dll:euser[100039e5].dll:libc[10207369].dll:libdbus-utils[20010154].dll:libdbus[20010153].dll:xmlengine[10285ef9].dll
--- a/syborg_stem/syborg_stem_rom.oby	Wed Oct 27 09:59:12 2010 +0100
+++ b/syborg_stem/syborg_stem_rom.oby	Wed Oct 27 15:25:50 2010 +0100
@@ -108,11 +108,8 @@
 file=\epoc32\release\ARMV5\urel\domainSrv.exe 	"sys\bin\domainSrv.exe"
 file=\epoc32\release\ARMV5\urel\domainCli.dll 	"sys\bin\domainCli.dll"
 file=\epoc32\release\ARMV5\urel\domainPolicy.dll 	"sys\bin\domainPolicy.dll"
-file=\epoc32\release\ARMV5\urel\usbdescriptors.dll 	"sys\bin\usbdescriptors.dll"
-file=\epoc32\release\ARMV5\urel\usbdi_utils.dll 	"sys\bin\usbdi_utils.dll"
 file=\epoc32\release\ARMV5\urel\usbhostms.pxy 	"sys\bin\usbhostms.pxy"
 file=\epoc32\release\ARMV5\urel\usbhostmsclient.dll 	"sys\bin\usbhostmsclient.dll"
-file=\epoc32\release\ARMV5\urel\usbhostmssrv.exe 	"sys\bin\usbhostmssrv.exe"
 file=\epoc32\release\ARMV5\urel\_generic_scdv.dll 	"sys\bin\ScDv.dll"
 data=\epoc32\data\Z\Resource\avkon.rsc 	"resource\avkon.rsc"  
 data=\epoc32\data\Z\Private\200159c0\install\desktop_20026f4f\xuikon\00\desktop.o0000 	"private\200159c0\install\desktop_20026f4f\xuikon\00\desktop.o0000"  
@@ -133,16 +130,11 @@
 REM "OPENWFCLIB_DRV"       : <openwfc_ref.iby> 
 file=\epoc32\release\ARMV5\urel\3gplibrary.dll 	"sys\bin\3gplibrary.dll"
 file=\epoc32\release\ARMV5\urel\3GPMP4LIB.DLL 	"sys\bin\3GPMP4LIB.DLL"
-file=\epoc32\release\ARMV5\urel\mmfdevsound.dll 	"sys\bin\mmfdevsound.dll"
 file=\epoc32\release\ARMV5\urel\mmfaudioserverproxy.dll 	"sys\bin\mmfaudioserverproxy.dll"
-file=\epoc32\release\ARMV5\urel\mmfdevsoundproxy.dll 	"sys\bin\mmfdevsoundproxy.dll"
-file=\epoc32\release\ARMV5\urel\mmfdevsoundserver.dll 	"sys\bin\mmfdevsoundserver.dll"
 file=\epoc32\release\ARMV5\urel\a3ffourcclookup.dll 	"sys\bin\a3ffourcclookup.dll"
 file=\epoc32\release\ARMV5\urel\mmfaudioserverfactory.dll 	"sys\bin\mmfaudioserverfactory.dll"
-file=\epoc32\release\ARMV5\urel\mmfaudioserver.dll 	"sys\bin\mmfaudioserver.dll"
 file=\epoc32\release\ARMV5\urel\mmfdevsoundadaptor.dll 	"sys\bin\mmfdevsoundadaptor.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, a3fFourCCConvertorPlugin.dll , a3fFourCCConvertorPlugin.dll ) 
-file=\epoc32\release\ARMV5\urel\mmfaudioserverstart.exe 	"sys\bin\mmfaudioserverstart.exe"
 file=\epoc32\release\ARMV5\urel\abtestclient.EXE 	"sys\bin\abtestclient.EXE"
 file=\epoc32\release\ARMV5\urel\abtestclient2.EXE 	"sys\bin\abtestclient2.EXE"
 file=\epoc32\release\ARMV5\urel\abtestclient3.EXE 	"sys\bin\abtestclient3.EXE"
@@ -248,13 +240,9 @@
 file=\epoc32\release\ARMV5\urel\asnpkcs.dll 	"sys\bin\asnpkcs.dll"
 REM File token libraries configurable files
 data=\epoc32\data\Z\Resource\fstokenserver.RSC 	"resource\fstokenserver.RSC"
-file=\epoc32\release\ARMV5\urel\SpeechRecognitionUtility.dll 	"sys\bin\SpeechRecognitionUtility.dll"
 file=\epoc32\release\ARMV5\urel\SpeechRecognitionData.dll 	"sys\bin\SpeechRecognitionData.dll"
-file=\epoc32\release\ARMV5\urel\SpeechRecognitionCustomCommands.dll 	"sys\bin\SpeechRecognitionCustomCommands.dll"
 REM For components that use the Autotest framework
 file=\epoc32\release\ARMV5\urel\autotest.dll 	"sys\bin\autotest.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, aviplaycontroller.dll , aviplaycontroller.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, avirecordcontroller.dll , avirecordcontroller.dll ) 
 file=\epoc32\release\ARMV5\urel\devsubtitle.dll 	"sys\bin\devsubtitle.dll"
 file=\epoc32\release\ARMV5\urel\srtdecoder.dll 	"sys\bin\srtdecoder.dll"
 REM FLOGGER - logging support
@@ -268,7 +256,6 @@
 file=\epoc32\release\ARMV5\urel\bifu.dll 	"sys\bin\bifu.dll"
 file=\epoc32\release\ARMV5\urel\biut.dll 	"sys\bin\biut.dll"
 file=\epoc32\release\ARMV5\urel\biodb.dll 	"sys\bin\biodb.dll"
-file=\epoc32\release\ARMV5\urel\BioWatcher.dll 	"sys\bin\BioWatcher.dll"
 REM The Message Server
 file=\epoc32\release\ARMV5\urel\msexe.exe 	"sys\bin\MSexe.exe"	heapmax= 0x400000 
 file=\epoc32\release\ARMV5\urel\msgs.dll 	"sys\bin\MSGS.dll"
@@ -293,7 +280,6 @@
 file=\epoc32\release\ARMV5\urel\ecom.dll 	"sys\bin\ECom.dll"
 file=\epoc32\release\ARMV5\urel\ecomserver.exe 	"sys\bin\EComServer.exe"
 file=\epoc32\release\ARMV5\urel\ecompatchdata.dll 	"sys\bin\EComPatchData.dll"
-file=\epoc32\release\ARMV5\urel\usbman.dll 	"sys\bin\usbman.dll"
 data=\epoc32\data\Z\Private\101fe1db\backup_registration.xml 	"private\101fe1db\backup_registration.xml"
 file=\epoc32\release\ARMV5\urel\usblogger.dll 	"sys\bin\usblogger.dll"
 REM Feature USB is not included in this ROM (usbman.iby)
@@ -406,39 +392,23 @@
 REM faxstrm.dll
 REM faxsvr.DLL
 REM faxcli.DLL
-file=\epoc32\release\ARMV5\urel\etel.dll 	"sys\bin\ETel.dll"
-data=\epoc32\data\z\private\101F7988\etel.cmi 	"private\101F7988\etel.cmi"
-patchdata etel.dll@KPriorityClientSid 0x10281806
-patchdata etel.dll@KLocationServicesNetworkGatewaySid 0x10281806
-patchdata etel.dll@KSatEngineSid 0x10281806
 REM Multimode Etel
-file=\epoc32\release\ARMV5\urel\etelmm.dll 	"sys\bin\etelmm.dll"
-file=\epoc32\release\ARMV5\urel\GsmU.dll 	"sys\bin\GsmU.dll"
-file=\epoc32\release\ARMV5\urel\SmsU.dll 	"sys\bin\SmsU.dll"
-file=\epoc32\release\ARMV5\urel\SmsProt.prt 	"sys\bin\SmsProt.prt"
-file=\epoc32\release\ARMV5\urel\WapProt.prt 	"sys\bin\WapProt.prt"
 data=\epoc32\data\Z\Private\101F7989\sms\smsu.rsc 	"private\101F7989\sms\smsu.rsc"
 data=\epoc32\data\Z\Private\101F7989\esock\smswap.Sms.esk 	"private\101F7989\esock\smswap.Sms.esk"
 data=\epoc32\data\Z\Private\101F7989\esock\smswap.Wap.esk 	"private\101F7989\esock\smswap.Wap.esk"
-file=\epoc32\release\ARMV5\urel\smcm.dll 	"sys\bin\smcm.dll"
-file=\epoc32\release\ARMV5\urel\smss.dll 	"sys\bin\smss.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, smsgetdetdescdefault.dll , smsgetdetdescdefault.dll ) 
 data=\epoc32\data\Z\resource\messaging\smss.RSC 	"resource\messaging\smss.RSC"
 REM The NBsWatcher Class0SMS Plugin
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, class0sms.dll , class0sms.dll ) 
 REM The Bio NBS\SMS Watcher
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nbswatcher.dll , nbswatcher.dll ) 
 REM Bio Parsers
 file=\epoc32\release\ARMV5\urel\cbcp.dll 	"sys\bin\cbcp.dll"
 file=\epoc32\release\ARMV5\urel\enp.dll 	"sys\bin\enp.dll"
-file=\epoc32\release\ARMV5\urel\iacp.dll 	"sys\bin\iacp.dll"
 file=\epoc32\release\ARMV5\urel\gfp.dll 	"sys\bin\gfp.dll"
 file=\epoc32\release\ARMV5\urel\wapp.dll 	"sys\bin\wapp.dll"
 data=\epoc32\data\Z\resource\messaging\wappstr.RSC 	"resource\messaging\wappstr.RSC"
 file=\epoc32\release\ARMV5\urel\wapmsgcli.dll 	"sys\bin\wapmsgcli.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, swswapmsg.dll , swswapmsg.dll ) 
 REM The Bio WAP\SMS Watcher
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wapwatcher.dll , wapwatcher.dll ) 
 REM Bitmapped graphics
 file=\epoc32\release\ARMV5\urel\bitgdi_gce.dll 	"sys\bin\BitGdi.dll"
 REM bitmap transforms 
@@ -764,7 +734,7 @@
 data=\epoc32\data\z\system\install\c32exe.sis 	"system\install\c32exe.sis"
 file=\epoc32\release\ARMV5\urel\conditionevaluator.dll 	"sys\bin\conditionevaluator.dll"
 REM Cone
-file=\epoc32\release\ARMV5\urel\cone.dll 	"sys\bin\Cone.dll"
+file=\epoc32\release\ARMV5\urel\stem_cone.dll 	"sys\bin\Cone.dll"
 REM #if !defined( )
 REM Patchable constant for setting parent-pointers automatically or not. 
 REM 1 = True, 0 = False. Default is True.
@@ -783,10 +753,7 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, coreprovidersecom.dll , coreprovidersecom.dll ) 
 REM Window Server CSC Plugins
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, 10286506.dll , 10286506.dll ) 
-file=\epoc32\release\ARMV5\urel\COMMONTSY.DLL 	"Sys\Bin\COMMONTSY.DLL"
 data=\epoc32\data\Z\Private\101f7989\operatorVariants.ini 	"private\101f7989\operatorVariants.ini"
-file=\epoc32\release\ARMV5\urel\CUSTOMAPI.DLL 	"Sys\Bin\CUSTOMAPI.DLL"
-file=\epoc32\release\ARMV5\urel\PHONETSY.TSY 	"Sys\Bin\PHONETSY.TSY"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ctsysystemstateplugin.dll  ,  ctsysystemstateplugin.dll  ) 
 REM Additional things in System\Samples
 REM Use "Re-install sample files" in the RefUI shell Tools menu
@@ -844,9 +811,7 @@
 REM For the benefit of base\f32\etshell
 data=\epoc32\data\Z\Private\10003a3f\APPS\eshell_reg.rsc 	"Private\10003a3f\Apps\eshell_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\messageintercept.esockdebug.dll 	"sys\bin\messageintercept.esockdebug.dll"
-file=\epoc32\release\ARMV5\urel\Etel3rdParty.dll 	"sys\bin\Etel3rdParty.dll"
 REM Multimode ETel Packet API
-file=\epoc32\release\ARMV5\urel\etelpckt.dll 	"sys\bin\etelpckt.dll"
 REM LAN CFProtocol and Packet Drivers
 file=\epoc32\release\ARMV5\urel\EthInt.nif 	"sys\bin\EthInt.nif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ether802.dll , ether802.dll ) 
@@ -903,7 +868,6 @@
 file=\epoc32\release\ARMV5\urel\fbsrasterizer_stub.dll 	"sys\bin\fbsrasterizer.dll"
 file=\epoc32\release\ARMV5\urel\fdcbase.dll 	"sys\bin\fdcbase.dll"
 file=\epoc32\release\ARMV5\urel\usbhoststack.dll 	"sys\bin\usbhoststack.dll"
-file=\epoc32\release\ARMV5\urel\fdf.exe 	"sys\bin\fdf.exe"
 file=\epoc32\release\ARMV5\urel\featdiscovery.dll 	"sys\bin\featdiscovery.dll"
 file=\epoc32\release\ARMV5\urel\featmgr.dll 	"sys\bin\featmgr.dll"
 file=\epoc32\release\ARMV5\urel\featmgrserver.exe 	"sys\bin\featmgrserver.exe"
@@ -1119,7 +1083,6 @@
 REM Feature DHCP is not included in this ROM
 REM Feature DHCP is not included in this ROM
 REM ESock IP Protocol Meta and Connection Provider
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ipproto.dll , ipproto.dll ) 
 REM IPSEC protocol and other core components
 	REM Feature IPSEC not included in this rom
 REM Mobility Core Providers
@@ -1190,7 +1153,6 @@
 data=\epoc32\data\Z\Resource\nlabtgpspsyconstants.rsc 	"resource\nlabtgpspsyconstants.rsc"
 data=\epoc32\data\Z\Resource\nlabtgpspsy_name.rsc 	"resource\nlabtgpspsy_name.rsc"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, eposdefault.dll , eposdefault.dll ) 
-file=\epoc32\release\ARMV5\urel\locationmonitor.exe 	"sys\bin\locationmonitor.exe"
 file=\epoc32\release\ARMV5\urel\eposserver.exe 	"sys\bin\eposserver.exe"
 data=\epoc32\data\Z\private\101f97b2\eposserver.rsc 	"private\101f97b2\eposserver.rsc"
 data=\epoc32\data\Z\private\101f97b2\backup_registration.xml 	"private\101f97b2\backup_registration.xml"
@@ -1198,7 +1160,6 @@
 REM LBS Quality Profile API
 file=\epoc32\release\ARMV5\urel\lbsqualityprofileapi.dll 	"sys\bin\lbsqualityprofileapi.dll"
 REM LBS Network Gateway
-file=\epoc32\release\ARMV5\urel\lbsnetgateway.exe 	"sys\bin\lbsnetgateway.exe"
 REM LBS Network Simulator
 file=\epoc32\release\ARMV5\urel\lbsnetsim.exe 	"sys\bin\lbsnetsim.exe"
 file=\epoc32\release\ARMV5\urel\lbsnetsim.dll 	"sys\bin\lbsnetsim.dll"
@@ -1230,17 +1191,10 @@
 file=\epoc32\release\ARMV5\urel\loadlafshutdown.dll 	"sys\bin\loadlafshutdown.dll"
 file=\epoc32\release\ARMV5\urel\LOOPBACK.CSY 	"sys\bin\LOOPBACK.CSY"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mbmsparams.dll , mbmsparams.dll ) 
-file=\epoc32\release\ARMV5\urel\omxcomponent.dll 	"sys\bin\omxcomponent.dll" 
 file=\epoc32\release\ARMV5\urel\puresolverutils.dll 	"sys\bin\puresolverutils.dll" 
 file=\epoc32\release\ARMV5\urel\mdasoundadapter.dll 	"sys\bin\mdasoundadapter.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mdfvideoencodehwdeviceadapter.dll , mdfvideoencodehwdeviceadapter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mdfvideodecodehwdeviceadapter.dll , mdfvideodecodehwdeviceadapter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mdfaudiohwdeviceadapter.dll , mdfaudiohwdeviceadapter.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, puloader.dll , puloader.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, codecapiresolver.dll , codecapiresolver.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, audiodevice.dll , audiodevice.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, vorbisdecoderprocessingunit.dll , vorbisdecoderprocessingunit.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, vorbisencoderprocessingunit.dll , vorbisencoderprocessingunit.dll ) 
 REM Store, Etext, Form, Grid, Clock, Print, AlarmServer, WorldServer, Bafl, Egul, Cone, Dial, BmpAnim 
 REM STORE
 file=\epoc32\release\ARMV5\urel\estor.dll 	"sys\bin\EStor.dll"
@@ -1276,43 +1230,25 @@
 file=\epoc32\release\ARMV5\urel\sysutilsetup.exe 	"sys\bin\sysutilsetup.exe"
 REM NumberConversion.dll
 file=\epoc32\release\ARMV5\urel\NumberConversion.dll 	"sys\bin\NumberConversion.dll"
-file=\epoc32\release\ARMV5\urel\MidiClient.dll 	"sys\bin\MidiClient.dll"
-file=\epoc32\release\ARMV5\urel\MidiStandardCustomCommands.dll 	"sys\bin\MidiStandardCustomCommands.dll"
-file=\epoc32\release\ARMV5\urel\omxilgenericilif.dll 	"sys\bin\omxilgenericilif.dll"
 REM WAP 1.2 Push 
 file=\epoc32\release\ARMV5\urel\miscpushmsgutils.dll 	"sys\bin\miscpushmsgutils.dll"
 data=\epoc32\data\Z\RESOURCE\messaging\wappushunknown.RSC 	"resource\messaging\wappushunknown.RSC"
 file=\epoc32\release\ARMV5\urel\mmcommon.dll 	"sys\bin\mmcommon.dll" 
 file=\epoc32\release\ARMV5\urel\MmCommonUtils.dll 	"sys\bin\MmCommonUtils.dll" 
-file=\epoc32\release\ARMV5\urel\MmfServerBaseclasses.dll 	"sys\bin\MmfServerBaseclasses.dll"
 file=\epoc32\release\ARMV5\urel\MediaClient.dll 	"sys\bin\MediaClient.dll"
-file=\epoc32\release\ARMV5\urel\MediaClientUtility.dll 	"sys\bin\MediaClientUtility.dll"
-file=\epoc32\release\ARMV5\urel\MediaClientAudio.dll 	"sys\bin\MediaClientAudio.dll"
-file=\epoc32\release\ARMV5\urel\MediaClientAudioStream.dll 	"sys\bin\MediaClientAudioStream.dll"
-file=\epoc32\release\ARMV5\urel\MediaClientAudioInputStream.dll 	"sys\bin\MediaClientAudioInputStream.dll"
-file=\epoc32\release\ARMV5\urel\MediaClientVideo.dll 	"sys\bin\MediaClientVideo.dll"
 file=\epoc32\release\ARMV5\urel\mediaclientvideodisplay.dll 	"sys\bin\mediaclientvideodisplay.dll"
-file=\epoc32\release\ARMV5\urel\mmfcontrollerframework.dll 	"sys\bin\mmfcontrollerframework.dll"
 file=\epoc32\release\ARMV5\urel\audioutils.dll 	"sys\bin\audioutils.dll"
-file=\epoc32\release\ARMV5\urel\MMFStandardCustomCommands.dll 	"sys\bin\MMFStandardCustomCommands.dll"
 file=\epoc32\release\ARMV5\urel\MmfCodecCommon.dll 	"sys\bin\MmfCodecCommon.dll"
 file=\epoc32\release\ARMV5\urel\GSM610CodecCommon.dll 	"sys\bin\GSM610CodecCommon.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmruf.dll , mmruf.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, gsm610.dll , gsm610.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, audiocodecs.dll , audiocodecs.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmfaudiocontroller.dll , mmfaudiocontroller.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmfstdsourceandsinkplugin.dll , mmfstdsourceandsinkplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmfaudioinput.dll , mmfaudioinput.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmfaudiooutput.dll , mmfaudiooutput.dll ) 
 file=\epoc32\release\ARMV5\urel\MmfGlblAudioEffect.dll 	"sys\bin\MmfGlblAudioEffect.dll"
 file=\epoc32\release\ARMV5\urel\MmfStdGlblAudioEffect.dll 	"sys\bin\MmfStdGlblAudioEffect.dll"
-file=\epoc32\release\ARMV5\urel\mmfdrmpluginserver.exe 	"sys\bin\mmfdrmpluginserver.exe"
 file=\epoc32\release\ARMV5\urel\mmfdrmpluginserverproxy.dll 	"sys\bin\mmfdrmpluginserverproxy.dll"
 REM MMS Settings
 file=\epoc32\release\ARMV5\urel\mmsgenericsettings.dll 	"sys\bin\mmsgenericsettings.dll"
 REM MMTSY
-file=\epoc32\release\ARMV5\urel\MM.TSY 	"sys\bin\MM.TSY"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, msfdc.dll , msfdc.dll ) 
 data=\epoc32\data\Z\resource\mtp\102827AF.rsc 	"resource\mtp\102827AF.rsc" 
 file=\epoc32\release\ARMV5\urel\mtpdatatypes.dll 	"sys\bin\mtpdatatypes.dll"
 file=\epoc32\release\ARMV5\urel\mtpclient.dll 	"sys\bin\mtpclient.dll"
@@ -1370,14 +1306,10 @@
 REM Make sure the error strings appear in the ROM
 data=\epoc32\data\Z\Resource\Errors\CSDERR.R01 	"Resource\Errors\csderr.R01"
 alias Resource\Errors\csderr.R01 Resource\Errors\csderr.RSC 
-file=\epoc32\release\ARMV5\urel\csd.agt 	"sys\bin\Csd.agt"
 REM GPRS AGT - Packet data networking
-file=\epoc32\release\ARMV5\urel\psd.agt 	"sys\bin\psd.agt"
 REM KIPPER - LAN AGT
-file=\epoc32\release\ARMV5\urel\NullAgt.agt 	"sys\bin\NullAgt.agt"
 REM dependencies
 data=\epoc32\data\z\private\101F7989\esock\ccp.ini 	"private\101f7989\esock\ccp.ini"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ppp.dll , ppp.dll ) 
 file=\epoc32\release\ARMV5\urel\pppmain.dll 	"sys\bin\pppmain.dll"
 file=\epoc32\release\ARMV5\urel\vjcomp.dll 	"sys\bin\vjcomp.dll"
 REM Predictor PPP compression
@@ -1392,7 +1324,6 @@
 patchdata rawip.dll@KMtuIPv6 0x578		 
 patchdata rawip.dll@KRMtuIPv6 0x578		 
 REM Feature DHCP is not included in this ROM
-file=\epoc32\release\ARMV5\urel\umtsif.dll 	"sys\bin\umtsif.dll"
 REM Feature QoS is not included in this ROM 
 REM Feature QoS is not included in this ROM 
 REM Feature QoS is not included in this ROM 
@@ -1400,7 +1331,6 @@
 REM IP Subconnection Provider
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Qos3GPP.dll , Qos3GPP.dll ) 
 REM PDP Meta and Sub-Connection Connection Providers
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, pdp.dll , pdp.dll ) 
 REM IP Subconnection Provider with QoS support
 REM Feature QoS is not included in this ROM
 REM --- DNS Proxy 
@@ -1411,8 +1341,6 @@
 REM You do not want this in production ROMs!
 REM Provides build number information to the emulator\ROM. 
 data=\epoc32\data\buildinfo.txt 	"System\Data\buildinfo.txt"
-file=\epoc32\release\ARMV5\urel\omxilcomponentcommon.dll 	"sys\bin\omxilcomponentcommon.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, omxilpcmrenderer.dll , omxilpcmrenderer.dll ) 
 file=\epoc32\release\ARMV5\urel\omxilcoreserver.dll 	"sys\bin\omxilcoreserver.dll"
 file=\epoc32\release\ARMV5\urel\omxilcoreclient.dll 	"sys\bin\omxilcoreclient.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, omxilsymbianloader.dll , omxilsymbianloader.dll ) 
@@ -1431,10 +1359,8 @@
 REM PDRSTORE
 REM Feature PRINT is not included in this ROM
 REM ETel SAT API
-file=\epoc32\release\ARMV5\urel\etelsat.dll 	"sys\bin\etelsat.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, phbksyncplugin.dll , phbksyncplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\phbksyncsvr.dll 	"sys\bin\phbksyncsvr.dll"
-file=\epoc32\release\ARMV5\urel\phbksyncsvrexe.exe 	"sys\bin\phbksyncsvrexe.exe"
 file=\epoc32\release\ARMV5\urel\crber.dll 	"sys\bin\crber.dll"	
 file=\epoc32\release\ARMV5\urel\crpkcs12.dll 	"sys\bin\crpkcs12.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, PKCS12Recognizer.dll , PKCS12Recognizer.dll ) 
@@ -1451,7 +1377,6 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, RecWeb.dll , RecWeb.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, recwap.dll , recwap.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, audiostream.dll , audiostream.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, tonehwdevice.dll , tonehwdevice.dll ) 
 file=\epoc32\release\ARMV5\urel\audiocodec.dll 	"sys\bin\audiocodec.dll"
 file=\epoc32\release\ARMV5\urel\audiogaincontrol.dll 	"sys\bin\audiogaincontrol.dll"
 file=\epoc32\release\ARMV5\urel\buffersink.dll 	"sys\bin\buffersink.dll"
@@ -1868,8 +1793,6 @@
 file=\epoc32\release\ARMV5\urel\sipclient.dll 	"sys\bin\sipclient.dll"
 file=\epoc32\release\ARMV5\urel\sipserver.exe 	"sys\bin\sipserver.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SIPSIGCOMP.DLL , SIPSIGCOMP.DLL ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, sipgprsmon.dll , sipgprsmon.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, sipdigest.dll , sipdigest.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, siptls.dll , siptls.dll ) 
 REM Feature IPSEC not included in this rom
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SipReqHand.dll , SipReqHand.dll ) 
@@ -1879,7 +1802,6 @@
 file=\epoc32\release\ARMV5\urel\sipproxyrsv.dll 	"sys\bin\sipproxyrsv.dll"
 file=\epoc32\release\ARMV5\urel\sipprofilesrv.exe 	"sys\bin\sipprofilesrv.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, sipietfagnt.dll , sipietfagnt.dll )  
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, sipimsagnt.dll , sipimsagnt.dll ) 
 data=\epoc32\data\Z\Private\101F413C\backup_registration.xml 	"private\101F413C\backup_registration.xml"
 REM SQLITE3
 file=\epoc32\release\ARMV5\urel\sqlite3.dll 	"sys\bin\sqlite3.dll" 
@@ -1913,7 +1835,6 @@
 file=\epoc32\release\ARMV5\urel\ocspsupport.exe 	"sys\bin\ocspsupport.exe"
 file=\epoc32\release\ARMV5\urel\ocspsupportclient.dll 	"sys\bin\ocspsupportclient.dll"
 file=\epoc32\release\ARMV5\urel\devinfosupportcommon.dll 	"sys\bin\devinfosupportcommon.dll"
-file=\epoc32\release\ARMV5\urel\devinfosupport.exe 	"sys\bin\devinfosupport.exe"
 file=\epoc32\release\ARMV5\urel\devinfosupportclient.dll 	"sys\bin\devinfosupportclient.dll"
 file=\epoc32\release\ARMV5\urel\securitymanager.dll 	"sys\bin\securitymanager.dll"
 file=\epoc32\release\ARMV5\urel\backuprestore.dll 	"sys\bin\backuprestore.dll"
@@ -1930,9 +1851,6 @@
 data=\epoc32\data\Z\Resource\Errors\swierrors.R01 	"Resource\Errors\swierrors.R01"
 alias Resource\Errors\swierrors.R01 Resource\Errors\swierrors.RSC 
 REM Telephony Watchers...
-file=\epoc32\release\ARMV5\urel\telwatcherbase.dll 	"sys\bin\TelWatcherBase.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, signalstrengthwatcher.dll , signalstrengthwatcher.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, indicatorwatcher.dll , indicatorwatcher.dll ) 
 REM SysStart
 file=\epoc32\release\ARMV5\urel\SysStart.exe 	"Sys\bin\SysStart.exe"
 REM Simple startup configuration - install a single resource file 
@@ -2045,8 +1963,6 @@
 file=\epoc32\release\ARMV5\urel\asrsttshwdevice_stub.dll 	"sys\bin\asrsttshwdevice.dll"
 file=\epoc32\release\ARMV5\urel\asrsvocmanhwdevice_stub.dll 	"sys\bin\asrsvocmanhwdevice.dll"
 file=\epoc32\release\ARMV5\urel\asrsnlphwdevice_stub.dll 	"sys\bin\asrsnlphwdevice.dll"
-file=\epoc32\release\ARMV5\urel\LICENSEETSY_STUB.DLL 	"Sys\Bin\licenseetsy.dll"  
-file=\epoc32\release\ARMV5\urel\SIMATKTSY_STUB.DLL 	"Sys\Bin\simatktsy.dll"  
 file=\epoc32\release\ARMV5\urel\tvoutconfig.dll 	"Sys\Bin\tvoutconfig.dll"  
 file=\epoc32\release\ARMV5\urel\ddc_access.dll 	"Sys\Bin\ddc_access.dll"  
 file=\epoc32\release\ARMV5\urel\power_save_display_mode_stub.dll 	"Sys\Bin\power_save_display_mode.dll"  
@@ -2077,16 +1993,11 @@
 file=\epoc32\release\armv5\urel\elocl.01 	"sys\bin\elocl.01"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  aboutgsplugin.dll ,  aboutgsplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\aboutgsplugin.mif 	"resource\apps\aboutgsplugin.mif"
-file=\epoc32\release\ARMV5\urel\accountcreationengine.dll 	"sys\bin\accountcreationengine.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  accountcreationplugin.dll ,  accountcreationplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\acpicons.mif 	"resource\apps\acpicons.mif"
 file=\epoc32\release\ARMV5\urel\ActivePalette.dll 	"sys\bin\ActivePalette.dll"
 data=\epoc32\data\Z\resource\apps\activepalette2graphics.mif 	"resource\apps\activepalette2graphics.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, agnentryui.dll , agnentryui.dll ) 
 REM AgnVersit2
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, agnversit2.dll , agnversit2.dll ) 
 data=\epoc32\data\Z\resource\AgnVersit2Strings.rsc 	"resource\AgnVersit2Strings.rsc"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ai3xmluimain.dll ,  ai3xmluimain.dll ) 
 data=\epoc32\data\Z\resource\apps\ai3xmlui.rsc 	"resource\apps\ai3xmlui.rsc"
 file=\epoc32\release\ARMV5\urel\xn3ecomelementproxy.dll 	"sys\bin\xn3ecomelementproxy.dll"
 file=\epoc32\release\ARMV5\urel\xn3layoutengine.dll 	"sys\bin\xn3layoutengine.dll"
@@ -2113,7 +2024,6 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  xn3nppluginfactory.dll  ,  xn3nppluginfactory.dll  ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  xn3texteditorfactory.dll  ,  xn3texteditorfactory.dll  ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  xn3animationfactory.dll  ,  xn3animationfactory.dll  ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  AIAgendaPluginEngine.dll ,  AIAgendaPluginEngine.dll ) 
 data=\epoc32\data\Z\resource\apps\aicalendarplugin2.mif 	"resource\apps\aicalendarplugin2.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  aicalendarplugin2.dll ,  aicalendarplugin2.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, aicontainer.dll , aicontainer.dll ) 
@@ -2121,7 +2031,6 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, AiwCallImagePlugin.dll , AiwCallImagePlugin.dll ) 
 data=\epoc32\data\Z\System\install\aiwcallimageplugin_stub.SIS 	"System\Install\aiwcallimageplugin_stub.SIS"
 file=\epoc32\release\ARMV5\urel\AlmAlert.dll 	"sys\bin\AlmAlert.dll"
-file=\epoc32\release\ARMV5\urel\AknAlarmService.dll 	"sys\bin\AknAlarmService.dll"
 data=\epoc32\data\Z\system\install\alarmui_stub.sis 	"System\Install\alarmui_stub.sis"
 data=\epoc32\data\Z\data\sounds\digital\clock.aac 	"data\sounds\digital\clock.aac"
 data=\epoc32\data\Z\data\sounds\digital\alarm.aac 	"data\sounds\digital\alarm.aac"
@@ -2131,26 +2040,13 @@
 data=\epoc32\data\Z\private\10282BC4\Rules\alarmui_silence.rul 	"private\10282BC4\Rules\alarmui_silence.rul"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, amadapter2.dll , amadapter2.dll ) 
 file=\epoc32\release\ARMV5\urel\AMInstallOptions.dll 	"sys\bin\AMInstallOptions.dll"
-file=\epoc32\release\ARMV5\urel\ApplicationManagement.exe 	"sys\bin\ApplicationManagement.exe" 
-data=\EPOC32\DATA\Z\private\10003a3f\apps\ApplicationManagement_reg.RSC 	"private\10003a3f\import\apps\ApplicationManagement_reg.RSC"
 file=\epoc32\release\ARMV5\urel\ApplicationManagement.dll 	"sys\bin\ApplicationManagement.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, RfsAppMgmtPlugin.dll , RfsAppMgmtPlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, omascomoadapter.dll , omascomoadapter.dll ) 
 data=\epoc32\data\Z\Private\100012a5\policy\20021335.spd 	"PRIVATE\100012a5\policy\20021335.spd"
 data=\epoc32\data\Z\Private\100012a5\policy\1020781C.spd 	"PRIVATE\100012a5\policy\1020781C.spd"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, AiwSyncProvider.dll , AiwSyncProvider.dll ) 
-file=\epoc32\release\ARMV5\urel\AspSyncUtil.dll 	"sys\bin\AspSyncutil.dll"
-file=\epoc32\release\ARMV5\urel\aspschedulehandler.exe 	"sys\bin\aspschedulehandler.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, AspPreSyncDefault.dll , AspPreSyncDefault.dll ) 
-data=\epoc32\data\Z\resource\apps\AspSyncUtil.MIF 	"resource\apps\AspSyncUtil.mif"
-auto-bitmap=\epoc32\data\Z\resource\apps\AspSyncUtil.mbm 	resource\apps\AspSyncUtil.mbm
-file=\epoc32\release\ARMV5\urel\audiomessageui.dll 	"sys\bin\audiomessageui.dll"
-file=\epoc32\release\ARMV5\urel\audiomessage.exe 	"sys\bin\audiomessage.exe" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\audiomessage_reg.rsc 	"Private\10003a3f\import\apps\audiomessage_reg.rsc"        
-data=\epoc32\data\Z\resource\apps\audiomessage_AIF.MIF 	"resource\apps\audiomessage_aif.mif" 
-data=\epoc32\data\Z\resource\apps\audiomessage.mif 	"resource\apps\audiomessage.mif"
 data=\epoc32\data\z\system\install\stub_audiomessage.sis 	"system\install\stub_audiomessage.sis"
-file=\epoc32\release\ARMV5\urel\Bium.dll 	"sys\bin\Bium.dll"
 file=\epoc32\release\ARMV5\urel\SatInfo.dll 	"sys\bin\SatInfo.dll"
 data=\epoc32\data\Z\resource\apps\satellite.mif 	"resource\apps\satellite.mif"
 file=\epoc32\release\ARMV5\urel\BlidEng.dll 	"sys\bin\BlidEng.dll"
@@ -2163,20 +2059,15 @@
 data=\epoc32\data\Z\private\101F99F6\capability\102751BA.XML 	"private\101F99F6\capability\102751BA.XML"
 data=\epoc32\data\Z\System\install\bookmarkdsa_stub.sis 	"system\install\bookmarkdsa_stub.sis"
 file=\epoc32\release\ARMV5\urel\bpas.dll 	"sys\bin\bpas.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, npbrowseraudiovideoplugin.dll , npbrowseraudiovideoplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\browseraudiovideoplugin_AIF.MIF 	"resource\apps\browseraudiovideoplugin_aif.mif" 
 file=\epoc32\release\ARMV5\urel\browserlauncher.dll 	"sys\bin\browserlauncher.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, npSystemInfoPlugin.dll , npSystemInfoPlugin.dll ) 
 auto-bitmap=\epoc32\data\Z\resource\apps\Browser.mbm 	resource\apps\Browser.mbm
 data=\epoc32\data\Z\resource\apps\Browser.mif 	"resource\apps\Browser.mif"
 auto-bitmap=\epoc32\data\Z\resource\apps\browserbitmaps.mbm 	resource\apps\browserbitmaps.mbm
 data=\epoc32\release\ARMV5\urel\Browser_Stub.sis 	"system\install\Browser_Stub.sis"
 data=\epoc32\data\c\feeds_view_template.html 	"feeds_view_template.html"
 data=\epoc32\data\z\private\10008d39\backup_registration.xml 	"private\10008d39\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\BUBBLEMANAGER.dll 	"sys\bin\BubbleManager.dll"
 data=\epoc32\data\Z\resource\BUBBLEMANAGER.rsc 	"resource\BUBBLEMANAGER.rsc"
-auto-bitmap=\epoc32\data\Z\resource\apps\BubbleManager.mbm 	resource\apps\BubbleManager.mbm
-data=\epoc32\data\Z\resource\apps\BubbleManager.mif 	"resource\apps\BubbleManager.mif"
 data=\epoc32\data\Z\System\install\bubblemanager_stub.sis 	"System\Install\bubblemanager_stub.sis"
 file=\epoc32\release\ARMV5\urel\bva.exe 	"sys\bin\bva.exe" 
 data=\epoc32\data\Z\resource\apps\bva_AIF.MIF 	"resource\apps\bva_aif.mif" 
@@ -2189,32 +2080,16 @@
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\CalcSoft_reg.rsc 	"Private\10003a3f\apps\CalcSoft_reg.rsc" 
 data=\epoc32\data\Z\private\10005902\backup_registration.xml 	"private\10005902\backup_registration.xml"
 file=\epoc32\release\ARMV5\urel\CalDavClient.dll 	"sys\bin\CalDavClient.dll"
-file=\epoc32\release\ARMV5\urel\!CalDavServer.exe 	"sys\bin\!CalDavServer.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  calencaldavplugin.dll  ,  calencaldavplugin.dll  ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  calenaiwprovider.dll ,  calenaiwprovider.dll ) ;
-file=\epoc32\release\ARMV5\urel\calencommonutils.dll 	"sys\bin\calencommonutils.dll"
-file=\epoc32\release\ARMV5\urel\CalenController.dll 	"sys\bin\CalenController.dll"
-file=\epoc32\release\ARMV5\urel\calencustomisationmanager.dll 	"sys\bin\calencustomisationmanager.dll"
-file=\epoc32\release\ARMV5\urel\Calendar.exe 	"sys\bin\Calendar.exe" 
-data=\epoc32\data\Z\resource\apps\Calendar.mif 	"resource\apps\Calendar.mif"
 data=\epoc32\data\Z\Private\10005901\backup_registration.xml 	"PRIVATE\10005901\backup_registration.xml"
-data=\epoc32\data\Z\resource\apps\CALENDAR_AIF.MIF 	"resource\apps\Calendar_aif.mif"
-data=\epoc32\data\Z\private\10003a3f\apps\CALENDAR_REG.RSC 	"private\10003a3f\import\apps\CALENDAR_REG.RSC"
 data=\epoc32\data\Z\private\10202be9\10003a5b.cre 	"private\10202be9\10003a5b.cre"
 data=\epoc32\data\Z\system\install\calendar_stub.sis 	"System\Install\calendar_stub.sis"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  calendarsearchplugin.dll ,  calendarsearchplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\calendarsearchplugin.mif 	"resource\apps\calendarsearchplugin.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  CalenDefaultEditors.dll  ,  CalenDefaultEditors.dll  ) 
-file=\epoc32\release\ARMV5\urel\CalenGlobalData.dll 	"sys\bin\CalenGlobalData.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  CalenGsPlugin.dll  ,  CalenGsPlugin.dll  ) 
 data=\epoc32\data\Z\resource\apps\calendarsettings.mif 	"resource\apps\calendarsettings.mif"
 file=\epoc32\release\ARMV5\urel\CALENIMP.dll 	"sys\bin\CALENIMP.dll"
-file=\epoc32\release\ARMV5\urel\CalenInterimUtils2.dll 	"sys\bin\CalenInterimUtils2.dll"
 file=\epoc32\release\ARMV5\urel\calenlauncher.dll 	"sys\bin\calenlauncher.dll"
-file=\epoc32\release\ARMV5\urel\CalenSettingsUi.dll 	"sys\bin\CalenSettingsUi.dll"
 file=\epoc32\release\ARMV5\urel\CalenSvrClient.dll 	"sys\bin\CalenSvrClient.dll"
-file=\epoc32\release\ARMV5\urel\CalenSvr.exe 	"sys\bin\CalenSvr.exe"
-file=\epoc32\release\ARMV5\urel\calenviews.dll 	"sys\bin\calenviews.dll"
 auto-bitmap=\epoc32\data\Z\resource\apps\cameraapp2.mbm 	resource\apps\cameraapp2.mbm
 data=\epoc32\data\Z\resource\apps\cameraapp2.mif 	"resource\apps\cameraapp2.mif"
 data=\epoc32\release\ARMV5\urel\z\system\sounds\Digital\cameraappCapture1.wav 	"system\sounds\Digital\cameraappCapture1.wav"
@@ -2234,33 +2109,19 @@
 data=\epoc32\data\Z\resource\apps\camerasettingsplugin.mif 	"resource\apps\camerasettingsplugin.mif"
 file=\epoc32\release\ARMV5\urel\CameraUiConfigManager.dll 	"sys\bin\CameraUiConfigManager.dll"
 data=\epoc32\data\Z\System\install\cameraapp_stub.sis 	"System\Install\cameraapp_stub.sis"
-file=\epoc32\release\ARMV5\urel\ccaapp.exe 	"sys\bin\ccaapp.exe" 
-data=\epoc32\data\z\private\10003a3f\apps\ccaapp_reg.rsc 	"private\10003a3f\apps\ccaapp_reg.rsc"
 file=\epoc32\release\ARMV5\urel\ccaclient.dll 	"sys\bin\ccaclient.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ccappcommlauncherplugin.dll ,  ccappcommlauncherplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\ccacontactorservice.dll 	"sys\bin\ccacontactorservice.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ccappmycardplugin.dll ,  ccappmycardplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ccappdetailsviewplugin.dll ,  ccappdetailsviewplugin.dll ) 
-data=\epoc32\data\Z\resource\apps\ccappdetailsviewplugin.mif 	"resource\apps\ccappdetailsviewplugin.mif"
-file=\epoc32\release\ARMV5\urel\ccapputil.dll 	"sys\bin\ccapputil.dll"
-file=\epoc32\release\ARMV5\urel\CCHServer.exe 	"sys\bin\CCHServer.exe"
 file=\epoc32\release\ARMV5\urel\CCHClient.dll 	"sys\bin\CCHClient.dll"
-file=\epoc32\release\ARMV5\urel\cch.dll 	"sys\bin\cch.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, cchuinotifwrapper.dll , cchuinotifwrapper.dll ) 
 file=\epoc32\release\ARMV5\urel\cchuinotif.dll 	"sys\bin\cchuinotif.dll"
-file=\epoc32\release\ARMV5\urel\clock.exe 	"sys\bin\clock.exe" 
 data=\epoc32\data\Z\resource\apps\clockapp_AIF.MIF 	"resource\apps\clockapp_aif.mif" 
 data=\epoc32\data\Z\resource\apps\clockapp.mif 	"resource\apps\clockapp.mif"
 data=\epoc32\data\Z\resource\apps\clockapp_tab.mif 	"resource\apps\clockapp_tab.mif"
-data=\epoc32\data\Z\private\10003a3f\import\apps\clock_reg.rsc 	"private\10003a3f\import\apps\clock_reg.rsc"
 data=\epoc32\data\Z\resource\mcc\mcc.rsc 	"resource\mcc\mcc.rsc"
 file=\epoc32\release\ARMV5\urel\clockalarmeditor.dll 	"sys\bin\clockalarmeditor.dll"
 file=\epoc32\release\ARMV5\urel\clkuimodel.dll 	"sys\bin\clkuimodel.dll"
-file=\epoc32\release\ARMV5\urel\clkdatetimeview.dll 	"sys\bin\clkdatetimeview.dll"
 file=\epoc32\release\ARMV5\urel\clockcityselectionlist.dll 	"sys\bin\clockcityselectionlist.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  clkdatetimeviewplugin.dll ,  clkdatetimeviewplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  clockindicatorpaneplugin.dll ,  clockindicatorpaneplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\clockserver.exe 	"sys\bin\clockserver.exe"
 file=\epoc32\release\ARMV5\urel\clockserverclient.dll 	"sys\bin\clockserverclient.dll"
 file=\epoc32\release\ARMV5\urel\clocktimesourceinterface.dll 	"sys\bin\clocktimesourceinterface.dll"
 file=\epoc32\release\ARMV5\urel\clocktimezoneresolver.dll 	"sys\bin\clocktimezoneresolver.dll"
@@ -2268,12 +2129,9 @@
 data=\epoc32\data\Z\system\install\clock2_stub.sis 	"system\install\clock2_stub.sis"
 data=\epoc32\data\Z\system\install\clock2_server_stub.sis 	"system\install\clock2_server_stub.sis"
 data=\epoc32\data\Z\system\install\clocknitzplugin_stub.sis 	"system\install\nitzplugin_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  clocknitzplugin.dll ,  clocknitzplugin.dll ) 
 data=\epoc32\data\Z\private\10005906\backup_registration.xml 	"private\10005906\backup_registration.xml"
 data=\epoc32\data\Z\private\10005903\backup_registration.xml 	"private\10005903\backup_registration.xml"
 data=\epoc32\data\Z\private\200159A2\backup_registration.xml 	"private\200159A2\backup_registration.xml"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  cmailhandlerplugin.dll ,  cmailhandlerplugin.dll ) 
-data=\epoc32\data\Z\resource\apps\cmailhandlerplugin.mif 	"resource\apps\cmailhandlerplugin.mif"
 data=\epoc32\data\Z\private\10202BE9\20029F4A.txt 	"private\10202BE9\20029F4A.txt"
 file=\epoc32\release\ARMV5\urel\cmscontactor.dll 	"sys\bin\cmscontactor.dll"
 data=\epoc32\data\Z\resource\cms\cmscontactor.rsc 	"resource\cms\cmscontactor.rsc"
@@ -2283,13 +2141,10 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, CntFindPlugin.dll , CntFindPlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, CntSortPlugin.dll , CntSortPlugin.dll ) 
 REM Connection utility
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ConnectUtil.dll , ConnectUtil.dll ) 
 data=\epoc32\data\Z\System\install\connectutil_stub.sis 	"System\Install\connectutil_stub.sis"
 file=\epoc32\release\ARMV5\urel\contactpresence.dll 	"sys\bin\contactpresence.dll"
 data=\epoc32\data\Z\resource\apps\contactssearchplugin.mif 	"resource\apps\contactssearchplugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  contactssearchplugin.dll ,  contactssearchplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\cscengine.dll 	"sys\bin\cscengine.dll"
-file=\epoc32\release\ARMV5\urel\cscsettingsui.dll 	"sys\bin\cscsettingsui.dll"
 DATA=\epoc32\data\Z\resource\cscengine.rsc 	"resource\cscengine.rsc"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  cscgsplugin.dll ,  cscgsplugin.dll ) 
 data=\epoc32\data\Z\System\install\commsconfig_stub.sis 	"System\Install\commsconfig_stub.sis"
@@ -2304,16 +2159,8 @@
 data=\epoc32\data\Z\Private\200159c0\install\desktop_20026f4f\hsps\00\manifest.dat 	"private\200159c0\install\desktop_20026f4f\hsps\00\manifest.dat"
 FILE=\epoc32\release\ARMV5\urel\imageprintengine.dll 	"sys\bin\imageprintengine.dll"
 data=\epoc32\data\Z\resource\apps\imgprintbitmaps.mif 	"resource\apps\imgprintbitmaps.mif"
-FILE=\epoc32\release\ARMV5\urel\imgpprintdll.dll 	"sys\bin\imgpprintdll.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, aiwprintingprovider.dll , aiwprintingprovider.dll ) 
 DATA=\epoc32\data\Z\private\10202be9\10208a35.txt 	"Private\10202be9\10208a35.txt"
-file=\epoc32\release\ARMV5\urel\devdiagapp.exe 	"sys\bin\devdiagapp.exe" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\devdiagapp_reg.rsc 	"Private\10003a3f\import\apps\devdiagapp_reg.rsc" 
-data=\epoc32\data\z\resource\apps\devdiagapp.mif 	"resource\apps\devdiagapp.mif"
 data=\epoc32\data\z\system\install\devdiagapp.SIS 	"System\Install\devdiagapp.SIS"
-file=\epoc32\release\ARMV5\urel\DevEncUi.exe 	"sys\bin\DevEncUi.exe" 
-data=\epoc32\data\Z\resource\apps\DevEncUi_AIF.MIF 	"resource\apps\DevEncUi_aif.mif" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\DevEncUi_reg.rsc 	"Private\10003a3f\apps\DevEncUi_reg.rsc" 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, DevEncUiDmAdapter.dll , DevEncUiDmAdapter.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, devencnotifplugin.dll , devencnotifplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, devencgsplugin.dll , devencgsplugin.dll ) 
@@ -2321,7 +2168,6 @@
 data=\epoc32\data\Z\resource\imageprintdata\protocols\btprotocol.rsc 	"resource\imageprintdata\protocols\btprotocol.rsc"
 DATA=\epoc32\data\Z\resource\imageprintdata\protocols\btxmltemplate.txt 	"resource\imageprintdata\protocols\btxmltemplate.txt"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, dpofprotdll.dll , dpofprotdll.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, pdphotolib.dll , pdphotolib.dll ) 
 file=\epoc32\release\ARMV5\urel\xhtmlfilecomposer.dll 	"sys\bin\xhtmlfilecomposer.dll"
 DATA=\epoc32\data\Z\resource\imageprintdata\protocols\xhtmltempl\xhtmlfiletemplate.txt 	"resource\imageprintdata\protocols\xhtmltempl\xhtmlfiletemplate.txt"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, dhcppositionprovider.dll , dhcppositionprovider.dll ) 
@@ -2340,11 +2186,8 @@
 file=\epoc32\release\ARMV5\urel\edcontactor.dll 	"sys\bin\edcontactor.dll"
 data=\epoc32\data\Z\resource\edcontactor.rsc 	"resource\edcontactor.rsc"
 data=\epoc32\data\z\private\10202be9\200212A0.txt 	"private\10202be9\200212A0.txt"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  emailclientapi.dll ,  emailclientapi.dll ) 
 file=\epoc32\release\ARMV5\urel\cmaillogger.dll 	"sys\bin\cmaillogger.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, EmailNotificationHandler.dll , EmailNotificationHandler.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, OMAPushEMNStringDict00.dll , OMAPushEMNStringDict00.dll ) 
-file=\epoc32\release\ARMV5\urel\emailservermonitor.exe 	"sys\bin\emailservermonitor.exe"
 file=\epoc32\release\ARMV5\urel\baseplugin.dll 	"sys\bin\baseplugin.dll"
 file=\epoc32\release\ARMV5\urel\MessageStoreClient.dll 	"sys\bin\MessageStoreClient.dll"
 file=\epoc32\release\ARMV5\urel\MessageStoreServer.dll 	"sys\bin\MessageStoreServer.dll"
@@ -2358,18 +2201,8 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, EmbeddedLinkAdapter.dll , EmbeddedLinkAdapter.dll ) 
 data=\epoc32\data\Z\Private\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000 	"private\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000"
 data=\epoc32\data\Z\Private\200159c0\install\empty_2001f47f\hsps\00\manifest.dat 	"private\200159c0\install\empty_2001f47f\hsps\00\manifest.dat"
-file=\epoc32\release\ARMV5\urel\evtutils.dll 	"sys\bin\evtutils.dll"
-file=\epoc32\release\ARMV5\urel\evtengine.dll 	"sys\bin\evtengine.dll"
-file=\epoc32\release\ARMV5\urel\evthandlerserver.exe 	"sys\bin\evthandlerserver.exe"
-file=\epoc32\release\ARMV5\urel\evthandler.exe 	"sys\bin\evthandler.exe"
-data=\epoc32\data\Z\resource\apps\evthandlerserver.mif 	"resource\apps\evthandlerserver.mif"
-data=\epoc32\data\Z\resource\apps\evtinfonote.mif 	"resource\apps\evtinfonote.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, evtnotifierplugin.dll , evtnotifierplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\evtinfonote.dll 	"sys\bin\evtinfonote.dll"
 data=\epoc32\data\Z\private\2001E663\backup_registration.xml 	"private\2001E663\backup_registration.xml"
 data=\epoc32\data\Z\System\install\eventsuistub.sis 	"system\install\eventsuistub.sis"
-file=\epoc32\release\ARMV5\urel\MPFileDetailsDialog.dll 	"sys\bin\MPFileDetailsDialog.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  filedetailsplugin.dll ,  filedetailsplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, filemanagerbkupplugin.dll , filemanagerbkupplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, filemanageraiwprovider.dll , filemanageraiwprovider.dll ) 
 file=\epoc32\release\ARMV5\urel\GFLM.dll 	"sys\bin\GFLM.dll"
@@ -2383,7 +2216,6 @@
 file=\epoc32\release\ARMV5\urel\fmradioactiveidleengine200.dll 	"sys\bin\fmradioactiveidleengine200.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, fmradiomcpplugin100.dll , fmradiomcpplugin100.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, fmradioactionhandler.dll , fmradioactionhandler.dll ) 
-file=\epoc32\release\ARMV5\urel\fmradioengine.dll 	"sys\bin\fmradioengine.dll"
 data=\epoc32\data\Z\Private\2001B25E\backup_registration.xml 	"PRIVATE\2001B25E\backup_registration.xml"
 REM MISSING data=\epoc32\data\Z\Private\10202BE9\2001B25E.txt                 PRIVATE\10202BE9\2001B25E.txt
 data=\epoc32\data\Z\system\install\commonemailstub.sis 	"system\install\commonemailstub.sis"
@@ -2403,9 +2235,6 @@
 data=\epoc32\data\Z\private\2001E277\HtmlFile\expand.png 	"private\2001E277\HtmlFile\expand.png"
 data=\epoc32\data\Z\private\2001E277\HtmlFile\collapse.png 	"private\2001E277\HtmlFile\collapse.png"
 data=\epoc32\data\Z\private\2001E277\HtmlFile\hidden.png 	"private\2001E277\HtmlFile\hidden.png"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ipssosplugin.dll ,  ipssosplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ipssossettings.dll ,  ipssossettings.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  IPSSosAOPlugin.dll ,  IPSSosAOPlugin.dll ) 
 data=\epoc32\data\Z\private\2000E53C\backup_registration.xml 	"private\2000E53C\backup_registration.xml"
 file=\epoc32\release\ARMV5\urel\fs_generic.dll 	"sys\bin\fs_generic.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, fsscrollbarplugin.dll , fsscrollbarplugin.dll ) 
@@ -2431,7 +2260,6 @@
 data=\epoc32\data\Z\private\200286D3\refvertexshader.vsh 	"private\200286D3\refvertexshader.vsh"
 data=\epoc32\data\Z\private\200286D3\reffragmentshader.fsh 	"private\200286D3\reffragmentshader.fsh"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  fsccontactactionmenu.dll ,  fsccontactactionmenu.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, fsccontactactionservice.dll , fsccontactactionservice.dll ) 
 data=\epoc32\data\Z\resource\fscactionutils.rsc 	"resource\fscactionutils.rsc"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, fsccallplugin.dll , fsccallplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\fsccallplugin.mif 	"resource\apps\fsccallplugin.mif"
@@ -2441,7 +2269,6 @@
 data=\epoc32\data\Z\resource\apps\fscpocplugin.mif 	"resource\apps\fscpocplugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, fscsendplugin.dll , fscsendplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\fscsendplugin.mif 	"resource\apps\fscsendplugin.mif"
-file=\epoc32\release\ARMV5\urel\FSMailFramework.dll 	"sys\bin\FSMailFramework.dll"
 file=\epoc32\release\ARMV5\urel\FSFWCommonLib.dll 	"sys\bin\FSFWCommonLib.dll"
 data=\epoc32\data\Z\RESOURCE\fsmailbrandmanager.rsc 	"resource\fsmailbrandmanager.rsc"
 data=\epoc32\data\Z\RESOURCE\APPS\ovi_brand_graphics.mif 	"resource\apps\ovi_brand_graphics.mif"
@@ -2450,15 +2277,10 @@
 data=\epoc32\data\Z\RESOURCE\APPS\aol_brand_graphics.mif 	"resource\apps\aol_brand_graphics.mif"
 data=\epoc32\data\Z\RESOURCE\APPS\microsoft_brand_graphics.mif 	"resource\apps\microsoft_brand_graphics.mif"
 data=\epoc32\data\Z\RESOURCE\APPS\mail_for_exchange_brand_graphics.mif 	"resource\apps\mail_for_exchange_brand_graphics.mif"
-file=\epoc32\release\ARMV5\urel\fssendashelper.dll 	"sys\bin\fssendashelper.dll"
 data=\epoc32\data\Z\resource\messaging\mtm\fsmtms.rsc 	"resource\messaging\mtm\fsmtms.rsc"
-file=\epoc32\release\ARMV5\urel\fsclientmtm.dll 	"sys\bin\fsclientmtm.dll"
 file=\epoc32\release\ARMV5\urel\fsservermtm.dll 	"sys\bin\fsservermtm.dll"
-file=\epoc32\release\ARMV5\urel\fsuimtm.dll 	"sys\bin\fsuimtm.dll"
 data=\epoc32\data\Z\resource\messaging\fsuimtm.rsc 	"resource\messaging\fsuimtm.rsc"
-file=\epoc32\release\ARMV5\urel\fsuidatamtm.dll 	"sys\bin\fsuidatamtm.dll"
 data=\epoc32\data\Z\resource\messaging\fsuidatamtm.rsc 	"resource\messaging\fsuidatamtm.rsc"
-data=\epoc32\data\Z\resource\apps\fsuidatamtm.mif 	"resource\apps\fsuidatamtm.mif"
 file=\epoc32\release\ARMV5\urel\glxcloudview.dll 	"sys\bin\glxcloudview.dll"
 file=\epoc32\release\ARMV5\urel\glxcommandhandlerdrm.dll 	"sys\bin\glxcommandhandlerdrm.dll"
 file=\epoc32\release\ARMV5\urel\glxcommandhandlermoreinfo.dll 	"sys\bin\glxcommandhandlermoreinfo.dll"
@@ -2506,13 +2328,8 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  gsdevdiagplugin.dll ,  gsdevdiagplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\GSDevDiagPlugin.mif 	"resource\apps\GSDevDiagPlugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSEmailSettingsPluginDll.dll ,  GSEmailSettingsPluginDll.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  gsvideoplugin.dll ,  gsvideoplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  gsvmbxplugin.dll ,  gsvmbxplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\gsvmbxplugin.mif 	"resource\apps\gsvmbxplugin.mif"
-file=\epoc32\release\ARMV5\urel\vcxhgmyvideos.dll 	"sys\bin\vcxhgmyvideos.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  vcxhgmyvideosplugin.dll ,  vcxhgmyvideosplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  vcxhgvodplugin.dll ,  vcxhgvodplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\vcxhgvodui.dll 	"sys\bin\vcxhgvodui.dll"
 file=\epoc32\release\ARMV5\urel\hnengine.dll 	"sys\bin\hnengine.dll"
 file=\epoc32\release\ARMV5\urel\hnmetadatamodel.dll 	"sys\bin\hnmetadatamodel.dll"
 file=\epoc32\release\ARMV5\urel\hnpresentationmodel.dll 	"sys\bin\hnpresentationmodel.dll"
@@ -2522,16 +2339,13 @@
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\ImageEditor_reg.rsc 	"Private\10003a3f\apps\ImageEditor_reg.rsc"
 file=\epoc32\release\ARMV5\urel\BlackWhite.pgn 	"sys\bin\BlackWhite.pgn"
 data=\epoc32\data\Z\resource\apps\BlackWhite.mif 	"resource\apps\BlackWhite.mif"
-file=\epoc32\release\ARMV5\urel\Brightness.pgn 	"sys\bin\Brightness.pgn"
 data=\epoc32\data\Z\resource\apps\Brightness.mif 	"resource\apps\Brightness.mif"
-file=\epoc32\release\ARMV5\urel\Bubble.pgn 	"sys\bin\Bubble.pgn"
 data=\epoc32\data\Z\resource\apps\Bubble.mif 	"resource\apps\Bubble.mif"
 data=\epoc32\data\Z\private\101ffa91\Bubbles\Bubbles01.mbm 	"private\101ffa91\Bubbles\Bubbles01.mbm"
 data=\epoc32\data\Z\private\101ffa91\Bubbles\Bubbles02.mbm 	"private\101ffa91\Bubbles\Bubbles02.mbm"
 data=\epoc32\data\Z\private\101ffa91\Bubbles\Bubbles03.mbm 	"private\101ffa91\Bubbles\Bubbles03.mbm"
 file=\epoc32\release\ARMV5\urel\Cartoonize.pgn 	"sys\bin\Cartoonize.pgn"
 data=\epoc32\data\Z\resource\apps\Cartoonize.mif 	"resource\apps\Cartoonize.mif"
-file=\epoc32\release\ARMV5\urel\Clipart.pgn 	"sys\bin\Clipart.pgn"
 data=\epoc32\data\Z\resource\apps\Clipart.mif 	"resource\apps\Clipart.mif"
 data=\epoc32\data\Z\private\101ffa91\cliparts\Cliparts01.mbm 	"private\101ffa91\cliparts\Cliparts01.mbm"
 data=\epoc32\data\Z\private\101ffa91\cliparts\Cliparts02.mbm 	"private\101ffa91\cliparts\Cliparts02.mbm"
@@ -2554,22 +2368,15 @@
 data=\epoc32\data\Z\private\101ffa91\cliparts\Cliparts19.mbm 	"private\101ffa91\cliparts\Cliparts19.mbm"
 data=\epoc32\data\Z\private\101ffa91\cliparts\Cliparts20.mbm 	"private\101ffa91\cliparts\Cliparts20.mbm"
 data=\epoc32\data\Z\private\101ffa91\cliparts\Cliparts21.mbm 	"private\101ffa91\cliparts\Cliparts21.mbm"
-file=\epoc32\release\ARMV5\urel\Contrast.pgn 	"sys\bin\Contrast.pgn"
 data=\epoc32\data\Z\resource\apps\Contrast.mif 	"resource\apps\Contrast.mif"
-file=\epoc32\release\ARMV5\urel\Crop.pgn 	"sys\bin\Crop.pgn"
 data=\epoc32\data\Z\resource\apps\Crop.mif 	"resource\apps\Crop.mif"
-file=\epoc32\release\ARMV5\urel\Frame.pgn 	"sys\bin\Frame.pgn"
 data=\epoc32\data\Z\resource\apps\Frame.mif 	"resource\apps\Frame.mif"
 data=\epoc32\data\Z\private\101ffa91\frames\frames01.mbm 	"private\101ffa91\frames\frames01.mbm"
 file=\epoc32\release\ARMV5\urel\iepb.dll 	"sys\bin\iepb.dll"
-file=\epoc32\release\ARMV5\urel\ImageEditorManager.dll 	"sys\bin\ImageEditorManager.dll"
 file=\epoc32\release\ARMV5\urel\Negative.pgn 	"sys\bin\Negative.pgn"
 data=\epoc32\data\Z\resource\apps\Negative.mif 	"resource\apps\Negative.mif"
 file=\epoc32\release\ARMV5\urel\pb.dll 	"sys\bin\pb.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ImageEditorProvider.dll , ImageEditorProvider.dll ) 
-file=\epoc32\release\ARMV5\urel\RedEyeReduction.pgn 	"sys\bin\RedEyeReduction.pgn"
 data=\epoc32\data\Z\resource\apps\RedEyeReduction.mif 	"resource\apps\RedEyeReduction.mif"
-file=\epoc32\release\ARMV5\urel\Resize.pgn 	"sys\bin\Resize.pgn"
 data=\epoc32\data\Z\resource\apps\Resize.mif 	"resource\apps\Resize.mif"
 file=\epoc32\release\ARMV5\urel\RotateLeft.pgn 	"sys\bin\RotateLeft.pgn"
 data=\epoc32\data\Z\resource\apps\RotateLeft.mif 	"resource\apps\RotateLeft.mif"
@@ -2577,44 +2384,26 @@
 data=\epoc32\data\Z\resource\apps\RotateRight.mif 	"resource\apps\RotateRight.mif"
 file=\epoc32\release\ARMV5\urel\Sepia.pgn 	"sys\bin\Sepia.pgn"
 data=\epoc32\data\Z\resource\apps\Sepia.mif 	"resource\apps\Sepia.mif"
-file=\epoc32\release\ARMV5\urel\Sharpness.pgn 	"sys\bin\Sharpness.pgn"
 data=\epoc32\data\Z\resource\apps\Sharpness.mif 	"resource\apps\Sharpness.mif"
-file=\epoc32\release\ARMV5\urel\Text.pgn 	"sys\bin\Text.pgn"
 data=\epoc32\data\Z\resource\apps\Text.mif 	"resource\apps\Text.mif"
-file=\epoc32\release\ARMV5\urel\ImageEditorUi.dll 	"sys\bin\ImageEditorUi.dll"
-data=\epoc32\data\Z\resource\apps\ImageEditorUi.mif 	"resource\apps\ImageEditorUi.mif"
-file=\epoc32\release\ARMV5\urel\imageprintserver.exe 	"sys\bin\imageprintserver.exe"
 file=\epoc32\release\ARMV5\urel\imageprintclient.dll 	"sys\bin\imageprintclient.dll"
-file=\epoc32\release\ARMV5\urel\imcvengine.dll 	"sys\bin\imcvengine.dll"
 file=\epoc32\release\ARMV5\urel\imcvlauncher.dll 	"sys\bin\imcvlauncher.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, imcmslauncherplugin.dll , imcmslauncherplugin.dll ) 
 data=\epoc32\data\Z\system\install\imcvuiappstub.sis 	"system\install\imcvuiappstub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, imstatuspaneindicatorplugin.dll , imstatuspaneindicatorplugin.dll ) 
 data=\epoc32\data\Z\system\install\imstatuspaneindicatorpluginstub.sis 	"system\install\imstatuspaneindicatorpluginstub.sis"
 file=\epoc32\release\ARMV5\urel\vimpstutils.dll 	"sys\bin\vimpstutils.dll"
 file=\epoc32\release\ARMV5\urel\vimpststorage.dll 	"sys\bin\vimpststorage.dll"
-file=\epoc32\release\ARMV5\urel\vimpstengine.dll 	"sys\bin\vimpstengine.dll"
-file=\epoc32\release\ARMV5\urel\vimpstcmdprocess.dll 	"sys\bin\vimpstcmdprocess.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, vimpstui.dll , vimpstui.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, vimpstdetailsviewplugin.dll , vimpstdetailsviewplugin.dll ) 
 data=\epoc32\data\Z\system\install\uiservicetabstub.sis 	"system\install\uiservicetabstub.sis"
 data=\epoc32\data\Z\private\20012423\backup_registration.xml 	"private\20012423\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\ImumDa.dll 	"sys\bin\ImumDa.dll"
-file=\epoc32\release\ARMV5\urel\ImumUtils.dll 	"sys\bin\ImumUtils.dll"
-file=\epoc32\release\ARMV5\urel\Imum.dll 	"sys\bin\Imum.dll"
 data=\epoc32\data\Z\private\100058EB\backup_registration.xml 	"private\100058EB\backup_registration.xml"
 data=\epoc32\data\Z\system\install\imum_stub.sis 	"system\install\imum_stub.sis"
-file=\epoc32\release\ARMV5\urel\instantmessagesalert.dll 	"sys\bin\instantmessagesalert.dll"
 data=\epoc32\data\Z\system\install\instantmessagesalertstub.sis 	"system\install\instantmessagesalertstub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, instantmsgindicatorplugin.dll , instantmsgindicatorplugin.dll ) 
 data=\epoc32\data\Z\system\install\instantmsgindicatorpluginstub.sis 	"system\install\instantmsgindicatorpluginstub.sis"
 file=\epoc32\release\ARMV5\urel\IntegrityCheck.exe 	"sys\bin\IntegrityCheck.exe"
 file=\epoc32\release\ARMV5\urel\IntegrityCheckServer.exe 	"sys\bin\IntegrityCheckServer.exe"
 file=\epoc32\release\ARMV5\urel\IntegrityCheckClient.dll 	"sys\bin\IntegrityCheckClient.dll"
 file=\epoc32\release\ARMV5\urel\ipapputils.dll 	"sys\bin\ipapputils.dll"
-file=\epoc32\release\ARMV5\urel\ipvoicemailengine.dll 	"sys\bin\ipvoicemailengine.dll"
 data=\epoc32\data\Z\System\install\java.sis 	"System\Install\java.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  appmngr2midletplugin.dll ,  appmngr2midletplugin.dll ) 
 data=\epoc32\data\Z\Resource\plugins\appmngr2midletplugin.rsc 	"resource\plugins\appmngr2midletplugin.rsc"
 file=\epoc32\release\ARMV5\urel\javacaptain_ext_autostarter.dll 	"sys\bin\javacaptain_ext_autostarter.dll"
 file=\epoc32\release\ARMV5\urel\javacaptain_ext_config.dll 	"sys\bin\javacaptain_ext_config.dll"
@@ -2625,7 +2414,6 @@
 file=\epoc32\release\ARMV5\urel\javacaptain_ext_storageserverplugin.dll 	"sys\bin\javacaptain_ext_storageserverplugin.dll"
 file=\epoc32\release\ARMV5\urel\javacaptain_ext_settingslistener.dll 	"sys\bin\javacaptain_ext_settingslistener.dll"
 file=\epoc32\release\ARMV5\urel\javacaptain.exe 	"sys\bin\javacaptain.exe"
-file=\epoc32\release\ARMV5\urel\javaregistryclient.dll 	"sys\bin\javaregistryclient.dll"
 file=\epoc32\release\ARMV5\urel\javasizehelperclient.dll 	"sys\bin\javasizehelperclient.dll"
 file=\epoc32\release\ARMV5\urel\javasizehelperserver.dll 	"sys\bin\javasizehelperserver.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ifeui.dll , ifeui.dll ) 
@@ -2646,7 +2434,6 @@
 file=\epoc32\release\ARMV5\urel\javalauncher.exe 	"sys\bin\javalauncher.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, javaappschemeplugin.dll , javaappschemeplugin.dll ) 
 data=\epoc32\data\Z\Resource\plugins\javaappschemeplugin.rsc 	"resource\plugins\javaappschemeplugin.rsc"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, javasidchecker.dll , javasidchecker.dll ) 
 data=\epoc32\data\Z\Resource\plugins\javasidchecker.rsc 	"resource\plugins\javasidchecker.rsc"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, recjar.dll , recjar.dll ) 
 data=\epoc32\data\Z\Resource\plugins\recjar.rsc 	"resource\plugins\recjar.rsc"
@@ -2676,7 +2463,6 @@
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javamobilemedia.odc 	"resource\java\jvm\lib\jrt\javamobilemedia.odc"
 data=\epoc32\release\ARMV5\urel\z\system\sounds\digital\CamcorderJavaCapture.wav 	"System\Sounds\Digital\CamcorderJavaCapture.wav"
 data=\epoc32\release\ARMV5\urel\z\system\sounds\digital\CamcorderJavaStart.wav 	"System\Sounds\Digital\CamcorderJavaStart.wav"
-file=\epoc32\release\ARMV5\urel\javamobinfo.dll 	"sys\bin\javamobinfo.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javamobinfo.odc 	"resource\java\jvm\lib\jrt\javamobinfo.odc"
 file=\epoc32\release\ARMV5\urel\javaglobalindicators.dll 	"sys\bin\javaglobalindicators.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javaglobalindicators.odc 	"resource\java\jvm\lib\jrt\javaglobalindicators.odc"
@@ -2685,7 +2471,6 @@
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javam2g.odc 	"resource\java\jvm\lib\jrt\javam2g.odc"
 file=\epoc32\release\ARMV5\urel\javam3g.dll 	"sys\bin\javam3g.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javam3g.odc 	"resource\java\jvm\lib\jrt\javam3g.odc"
-file=\epoc32\release\ARMV5\urel\javanokiasound.dll 	"sys\bin\javanokiasound.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javanokiasound.odc 	"resource\java\jvm\lib\jrt\javanokiasound.odc"
 file=\epoc32\release\ARMV5\urel\javaremconobserver.dll 	"sys\bin\javaremconobserver.dll"
 file=\epoc32\release\ARMV5\urel\javalegacyutils.dll 	"sys\bin\javalegacyutils.dll"
@@ -2699,12 +2484,6 @@
 file=\epoc32\release\ARMV5\urel\javamidpruntime.dll 	"sys\bin\javamidpruntime.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javamidpruntime.odc 	"resource\java\jvm\lib\jrt\javamidpruntime.odc"
 file=\epoc32\release\ARMV5\urel\javajvmargsmodifier.dll 	"sys\bin\javajvmargsmodifier.dll"
-file=\epoc32\release\ARMV5\urel\j9.dll 	"sys\bin\j9.dll"
-file=\epoc32\release\ARMV5\urel\j9vmall23.dll 	"sys\bin\j9vmall23.dll"
-file=\epoc32\release\ARMV5\urel\j9mjit23.dll 	"sys\bin\j9mjit23.dll"
-file=\epoc32\release\ARMV5\urel\jclcldc11_23.dll 	"sys\bin\jclcldc11_23.dll"
-file=\epoc32\release\ARMV5\urel\jclcdc11_23.dll 	"sys\bin\jclcdc11_23.dll"
-file=\epoc32\release\ARMV5\urel\j9fdm23.dll 	"sys\bin\j9fdm23.dll"
 file=\epoc32\release\ARMV5\urel\JvmNativePort.dll 	"sys\bin\JvmNativePort.dll"
 REM MISSING data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\bin\java.properties                                   resource\java\jvm\bin\java.properties
 REM MISSING data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\security\java.policy                              resource\java\jvm\lib\security\java.policy
@@ -2717,7 +2496,6 @@
 file=\epoc32\release\ARMV5\urel\javafileutils.dll 	"sys\bin\javafileutils.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javafileutils.odc 	"resource\java\jvm\lib\jrt\javafileutils.odc"
 file=\epoc32\release\ARMV5\urel\javadebugapi.dll 	"sys\bin\javadebugapi.dll"
-file=\epoc32\release\ARMV5\urel\javasecurity.dll 	"sys\bin\javasecurity.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javasecurity.odc 	"resource\java\jvm\lib\jrt\javasecurity.odc"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, javaunicertstoreplugin.dll , javaunicertstoreplugin.dll ) 
 data=\epoc32\data\Z\Resource\plugins\javaunicertstoreplugin.rsc 	"resource\plugins\javaunicertstoreplugin.rsc"
@@ -2759,11 +2537,6 @@
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javabluecove.odc 	"resource\java\jvm\lib\jrt\javabluecove.odc"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javabluetooth.odc 	"resource\java\jvm\lib\jrt\javabluetooth.odc"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javabluetoothcommons.odc 	"resource\java\jvm\lib\jrt\javabluetoothcommons.odc"
-file=\epoc32\release\ARMV5\urel\javawma.dll 	"sys\bin\javawma.dll"
-file=\epoc32\release\ARMV5\urel\javawmamms.dll 	"sys\bin\javawmamms.dll"
-file=\epoc32\release\ARMV5\urel\javacbsscplugin.dll 	"sys\bin\javacbsscplugin.dll"
-file=\epoc32\release\ARMV5\urel\javammsscplugin.dll 	"sys\bin\javammsscplugin.dll"
-file=\epoc32\release\ARMV5\urel\javasmsscplugin.dll 	"sys\bin\javasmsscplugin.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javawma.odc 	"resource\java\jvm\lib\jrt\javawma.odc"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javawmamms.odc 	"resource\java\jvm\lib\jrt\javawmamms.odc"
 file=\epoc32\release\ARMV5\urel\javacomm.dll 	"sys\bin\javacomm.dll"
@@ -2771,17 +2544,13 @@
 file=\epoc32\release\ARMV5\urel\javadatagram.dll 	"sys\bin\javadatagram.dll"
 file=\epoc32\release\ARMV5\urel\javadatagramscplugin.dll 	"sys\bin\javadatagramscplugin.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javadatagram.odc 	"resource\java\jvm\lib\jrt\javadatagram.odc"
-file=\epoc32\release\ARMV5\urel\javalocation.dll 	"sys\bin\javalocation.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javalocation.odc 	"resource\java\jvm\lib\jrt\javalocation.odc"
-file=\epoc32\release\ARMV5\urel\javasensor.dll 	"sys\bin\javasensor.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javasensor.odc 	"resource\java\jvm\lib\jrt\javasensor.odc"
 file=\epoc32\release\ARMV5\urel\javawebservices.dll 	"sys\bin\javawebservices.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javawebservices.odc 	"resource\java\jvm\lib\jrt\javawebservices.odc"
-file=\epoc32\release\ARMV5\urel\javapim.dll 	"sys\bin\javapim.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javapim.odc 	"resource\java\jvm\lib\jrt\javapim.odc"
 file=\epoc32\release\ARMV5\urel\javarms.dll 	"sys\bin\javarms.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javarms.odc 	"resource\java\jvm\lib\jrt\javarms.odc"
-file=\epoc32\release\ARMV5\urel\javasatsa.dll 	"sys\bin\javasatsa.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javasatsa.odc 	"resource\java\jvm\lib\jrt\javasatsa.odc"
 file=\epoc32\release\ARMV5\urel\javafile.dll 	"sys\bin\javafile.dll"
 data=\epoc32\release\ARMV5\urel\z\resource\java\jvm\lib\jrt\javafile.odc 	"resource\java\jvm\lib\jrt\javafile.odc"
@@ -2796,21 +2565,11 @@
 file=\epoc32\release\ARMV5\urel\javaupgradeapp.exe 	"sys\bin\javaupgradeapp.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, javaiconsizenotifplugin.dll , javaiconsizenotifplugin.dll ) 
 data=\epoc32\data\Z\Resource\plugins\javaiconsizenotifplugin.rsc 	"resource\plugins\javaiconsizenotifplugin.rsc"
-file=\epoc32\release\ARMV5\urel\LmkCommonUi.dll 	"sys\bin\LmkCommonUi.dll"
-file=\epoc32\release\ARMV5\urel\LmkUi.dll 	"sys\bin\LmkUi.dll"
 file=\epoc32\release\ARMV5\urel\LmkEng.dll 	"sys\bin\LmkEng.dll"
 data=\epoc32\data\Z\resource\apps\Landmarks.mif 	"resource\apps\Landmarks.mif"
-data=\epoc32\data\Z\Resource\apps\LmkUi.mif 	"resource\apps\LmkUi.mif"
 data=\epoc32\data\Z\System\install\landmarksstub.sis 	"system\install\landmarksstub.sis"
-file=\epoc32\release\ARMV5\urel\LogsEng.dll 	"sys\bin\LogsEng.dll"
-file=\epoc32\release\ARMV5\urel\AocCtView.dll 	"sys\bin\AocCtView.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, LogsPlugin.dll , LogsPlugin.dll )  
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, LogsIndicatorPlugin.dll , LogsIndicatorPlugin.dll )  
 data=\epoc32\data\Z\private\101F4CD5\backup_registration.xml 	"private\101F4CD5\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\Logs.exe 	"sys\bin\Logs.exe" 
-data=\epoc32\data\Z\resource\apps\Logs.mif 	"resource\apps\Logs.mif"
-data=\epoc32\data\Z\resource\apps\Logs_AIF.MIF 	"resource\apps\Logs_aif.mif" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\Logs_reg.rsc 	"Private\10003a3f\apps\Logs_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\logsserviceextension.dll 	"sys\bin\logsserviceextension.dll"
 data=\epoc32\data\Z\System\install\logsserviceextension_stub.sis 	"system\install\logsserviceextension_stub.sis"
 REM Light Weight Player
@@ -2823,20 +2582,12 @@
 data=\epoc32\data\Z\resource\apps\matrixmenu.mif 	"resource\apps\matrixmenu.mif"
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\matrixmenu_reg.rsc 	"Private\10003a3f\import\apps\matrixmenu_reg.rsc" 
 data=\epoc32\data\Z\private\101F4CD2\backup_registration.xml 	"private\101F4CD2\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\Mce.exe 	"sys\bin\Mce.exe" 
-data=\epoc32\data\Z\resource\apps\Mce_AIF.MIF 	"resource\apps\Mce_aif.mif" 
 file=\epoc32\release\ARMV5\urel\MceLogEng.dll 	"sys\bin\MceLogEng.dll"
 data=\epoc32\data\Z\system\install\MCE_STUB.sis 	"system\install\MCE_STUB.sis"
-data=\epoc32\data\Z\private\10003a3f\apps\mce_reg.rsc 	"private\10003a3f\import\apps\mce_reg.rsc"
 data=\epoc32\data\Z\resource\apps\MceExtraIcons.mif 	"resource\apps\MceExtraIcons.mif"
-file=\epoc32\release\ARMV5\urel\MceSettings.dll 	"sys\bin\MceSettings.dll"
 data=\epoc32\data\Z\system\install\MceSettings_stub.sis 	"system\install\MceSettings_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, MceSettingsGSPlugin.dll , MceSettingsGSPlugin.dll ) 
 data=\epoc32\data\Z\resource\apps\MceSettingsGSPluginIcons.mif 	"resource\apps\MceSettingsGSPluginIcons.mif"
 data=\epoc32\data\Z\resource\MceSettingsEmailSel.rsc 	"resource\MceSettingsEmailSel.rsc"
-file=\epoc32\release\ARMV5\urel\mediasettings.exe 	"sys\bin\mediasettings.exe" 
-data=\epoc32\data\Z\resource\apps\mediasettings.mif 	"resource\apps\mediasettings.mif"
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\mediasettings_reg.rsc 	"Private\10003a3f\import\apps\mediasettings_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\mpsettbase.dll 	"sys\bin\mpsettbase.dll"
 file=\epoc32\release\ARMV5\urel\MemStatePopup.dll 	"sys\bin\MemStatePopup.dll"
 data=\epoc32\data\z\resource\apps\gridroot.mif 	"resource\apps\gridroot.mif" 
@@ -2847,35 +2598,18 @@
 data=\epoc32\data\z\private\101F4CD2\import\suites\foldersuite_touch\suite.xml 	"private\101F4CD2\import\suites\foldersuite\suite.xml"
 data=\epoc32\data\z\private\101F4CD2\import\suites\foldersuite_touch\items.xml 	"private\101F4CD2\import\suites\foldersuite\items.xml"
 data=\epoc32\include\foldersuite.rsg 	"resource\apps\foldersuite.rsg"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  messagessearchplugin.dll ,  messagessearchplugin.dll ) 
-data=\epoc32\data\Z\resource\apps\messagessearchplugin.mif 	"resource\apps\messagessearchplugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  missedalarmindicatorplugin.dll ,  missedalarmindicatorplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\missedalarmstore.dll 	"sys\bin\missedalarmstore.dll"
 file=\epoc32\release\ARMV5\urel\mmextensionmanager.dll 	"sys\bin\mmextensionmanager.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmfolderuiextensionplugin.dll , mmfolderuiextensionplugin.dll )  
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmsdataprovider.dll , mmsdataprovider.dll ) 
 data=\epoc32\data\Z\resource\mmsdatastore.rsc 	"resource\mmsdatastore.rsc"
 data=\epoc32\data\Z\private\101F99F6\capability\101FB0E9.XML 	"private\101F99F6\capability\101FB0E9.XML"
 data=\epoc32\data\Z\System\install\mmsdsa_stub.sis 	"system\install\mmsdsa_stub.sis"
 data=\epoc32\data\Z\private\100058DB\backup_registration.xml 	"private\100058DB\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\mmsconninit.dll 	"sys\bin\mmsconninit.dll"
-file=\epoc32\release\ARMV5\urel\mmscli.dll 	"sys\bin\mmscli.dll"
-file=\epoc32\release\ARMV5\urel\mmssrv.dll 	"sys\bin\mmssrv.dll"
 file=\epoc32\release\ARMV5\urel\mmstransport.dll 	"sys\bin\mmstransport.dll"
-file=\epoc32\release\ARMV5\urel\mmscodec.dll 	"sys\bin\mmscodec.dll"
-file=\epoc32\release\ARMV5\urel\mmsmessage.dll 	"sys\bin\mmsmessage.dll"
-file=\epoc32\release\ARMV5\urel\mmsserversettings.dll 	"sys\bin\mmsserversettings.dll"
-file=\epoc32\release\ARMV5\urel\mmscodecclient.dll 	"sys\bin\mmscodecclient.dll"
-file=\epoc32\release\ARMV5\urel\mmsappadapter.dll 	"sys\bin\mmsappadapter.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmswatcher.dll , mmswatcher.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, MmsPushHandler.dll , MmsPushHandler.dll ) 
 file=\epoc32\release\ARMV5\urel\mmsgenutils.dll 	"sys\bin\mmsgenutils.dll"
-file=\epoc32\release\ARMV5\urel\mmssettings.dll 	"sys\bin\MmsSettings.dll"
-file=\epoc32\release\ARMV5\urel\mmsui.dll 	"sys\bin\MmsUi.dll"
-file=\epoc32\release\ARMV5\urel\notui.dll 	"sys\bin\NotUi.dll"
 data=\epoc32\data\z\system\install\stub_mmsviewer.sis 	"system\install\stub_mmsviewer.sis"
 data=\epoc32\data\z\system\install\stub_notviewer.sis 	"system\install\stub_notviewer.sis"
-data=\epoc32\data\Z\resource\apps\mmsui.mif 	"resource\apps\mmsui.mif"
 file=\epoc32\release\ARMV5\urel\mmwidgets.dll 	"sys\bin\mmwidgets.dll"
 data=\epoc32\data\z\resource\list\custom\akn_single_large_graphic_pane.xml 	"resource\list\custom\akn_single_large_graphic_pane.xml"
 data=\epoc32\data\z\resource\list\custom\akn_logical_template_1.xml 	"resource\list\custom\akn_logical_template_1.xml"
@@ -2908,30 +2642,18 @@
 data=\epoc32\data\z\resource\list\lct\akn_logical_template_8.xml 	"resource\list\lct\akn_logical_template_8.xml"
 data=\epoc32\data\z\resource\list\lct\akn_logical_template_12.xml 	"resource\list\lct\akn_logical_template_12.xml"
 data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3.xml 	"resource\grid\lct\akn_logical_template_3.xml"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mpsettropmodel.dll ,  mpsettropmodel.dll ) 
 data=\epoc32\data\Z\resource\mpsettingsropmodel.rsc 	"resource\mpsettingsropmodel.rsc"
-file=\epoc32\release\ARMV5\urel\mpxaudioeffectengine.dll 	"sys\bin\mpxaudioeffectengine.dll"
 file=\epoc32\release\ARMV5\urel\mpxaudioeffectsview.dll 	"sys\bin\mpxaudioeffectsview.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mpxaudioeffectsviewplugin.dll ,  mpxaudioeffectsviewplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\mpxequalizerview.dll 	"sys\bin\mpxequalizerview.dll"
 data=\epoc32\data\Z\System\data\nullsound.mp3 	"system\data\nullsound.mp3"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mpxequalizerviewplugin.dll ,  mpxequalizerviewplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,   mpxinmemoryplugin.dll ,   mpxinmemoryplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mpxlocalaudioplayback.dll , mpxlocalaudioplayback.dll ) 
 file=\epoc32\release\ARMV5\urel\mpxm3uplaylistparsers.dll 	"sys\bin\mpxm3uplaylistparsers.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mpxm3uplaylistplugin.dll ,  mpxm3uplaylistplugin.dll ) 
 data=\epoc32\data\z\system\install\mpxplugins_stub.sis 	"system\install\mpxplugins_stub.sis"
-file=\epoc32\release\ARMV5\urel\mpxmediakeyhandler.dll 	"sys\bin\mpxmediakeyhandler.dll"
-data=\epoc32\data\Z\resource\apps\mpxmediakeyhandler.mif 	"resource\apps\mpxmediakeyhandler.mif"
 file=\epoc32\release\ARMV5\urel\mpxmetadatahandler.dll 	"sys\bin\mpxmetadatahandler.dll"
 data=\epoc32\data\Z\resource\mplayeravrcpsettings.rsc 	"resource\mplayeravrcpsettings.rsc" 
 data=\epoc32\data\z\system\install\mpxmusicplayerstub.sis 	"system\install\mpxmusicplayerstub.sis"
 data=\epoc32\data\Z\Private\102072c3\backup_registration.xml 	"private\102072c3\backup_registration.xml"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, vcxmyvideoscollectionplugin.DLL , vcxmyvideoscollectionplugin.DLL ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mpxprogressdownload.dll , mpxprogressdownload.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mpxprogressdownloadsb.dll , mpxprogressdownloadsb.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mpxscreensaverplugin.dll , mpxscreensaverplugin.dll ) 
-data=\epoc32\data\Z\resource\apps\mpxscreensaverplugin.mif 	"resource\apps\mpxscreensaverplugin.mif"
 file=\epoc32\release\ARMV5\urel\mpxsqlitedbcommon.dll 	"sys\bin\mpxsqlitedbcommon.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mpxsqlitedbhgplugin.dll ,  mpxsqlitedbhgplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\mpxdbhgplugin.mif 	"resource\apps\mpxdbhgplugin.mif"
@@ -2941,14 +2663,6 @@
 data=\epoc32\data\Z\resource\apps\mpxpodcastdbplugin.mif 	"resource\apps\mpxpodcastdbplugin.mif"
 file=\epoc32\release\ARMV5\urel\mpxupnpbrowsedialog.dll 	"sys\bin\mpxupnpbrowsedialog.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mpxupnpbrowsedialogplugin.dll ,  mpxupnpbrowsedialogplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mpxvideohelixplayback.dll , mpxvideohelixplayback.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mpxvideopdlplaybackviewplugin.dll ,  mpxvideopdlplaybackviewplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\mpxvideoplaybackcontrols.dll 	"sys\bin\mpxvideoplaybackcontrols.dll"
-data=\epoc32\data\Z\resource\apps\mpxvideoplaybackcontrols.mif 	"resource\apps\mpxvideoplaybackcontrols.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mpxvideoplaybackviewplugin.dll ,  mpxvideoplaybackviewplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\mpxvideoplaybackviews.dll 	"sys\bin\mpxvideoplaybackviews.dll"
-file=\epoc32\release\ARMV5\urel\MpxVideoPlayer.exe 	"sys\bin\MpxVideoPlayer.exe" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\mpxvideoplayer_reg.rsc 	"Private\10003a3f\import\apps\mpxvideoplayer_reg.rsc" 
 data=\epoc32\data\Z\System\install\videoplayer_stub.sis 	"system\install\videoplayer_stub.sis"
 file=\epoc32\release\ARMV5\urel\mpxwaitnotedialog.dll 	"sys\bin\mpxwaitnotedialog.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mpxwaitnotedialogplugin.dll ,  mpxwaitnotedialogplugin.dll ) 
@@ -2959,12 +2673,9 @@
 file=\epoc32\release\ARMV5\urel\MsgEditorAppUi.dll 	"sys\bin\MsgEditorAppUi.dll"
 file=\epoc32\release\ARMV5\urel\MsgEditorModel.dll 	"sys\bin\MsgEditorModel.dll"
 file=\epoc32\release\ARMV5\urel\MsgEditorView.dll 	"sys\bin\MsgEditorView.dll"
-file=\epoc32\release\ARMV5\urel\MsgEditorMediaControl.dll 	"sys\bin\MsgEditorMediaControl.dll"
 data=\epoc32\data\Z\resource\apps\MsgEditor.mif 	"resource\apps\MsgEditor.mif"
 data=\epoc32\data\Z\resource\apps\msgeditor_ah.mif 	"resource\apps\msgeditor_ah.mif"
 file=\epoc32\release\ARMV5\urel\MsgEditorUtils.dll 	"sys\bin\MsgEditorUtils.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, MsgErrorWatcher.dll , MsgErrorWatcher.dll ) 
-file=\epoc32\release\ARMV5\urel\MsgMedia.dll 	"sys\bin\MsgMedia.dll"
 data=\epoc32\data\Z\resource\MsgMimeToMediaMapping.rsc 	"resource\MsgMimeToMediaMapping.rsc"
 file=\epoc32\release\ARMV5\urel\MsgNotifiers.dll 	"sys\bin\MsgNotifiers.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, MsgNotifiersWrapper.dll , MsgNotifiersWrapper.dll ) 
@@ -2973,23 +2684,15 @@
 file=\epoc32\release\ARMV5\urel\muiu_internal.dll 	"sys\bin\muiu_internal.dll"
 auto-bitmap=\epoc32\data\Z\resource\apps\Muiu.mbm 	resource\apps\Muiu.mbm
 data=\epoc32\data\Z\resource\apps\Muiu.mif 	"resource\apps\Muiu.mif"
-file=\epoc32\release\ARMV5\urel\multicaluidialog.dll 	"sys\bin\multicaluidialog.dll"
-data=\epoc32\data\Z\resource\apps\multicaluidialog.mif 	"resource\apps\multicaluidialog.mif"
 data=\epoc32\data\Z\resource\apps\multimediasearchplugin.mif 	"resource\apps\multimediasearchplugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  multimediasearchplugin.dll ,  multimediasearchplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\musuiicons.mif 	"resource\apps\musuiicons.mif"
 data=\epoc32\data\Z\resource\apps\musuitoolbaricons.mif 	"resource\apps\musuitoolbaricons.mif"
-file=\epoc32\release\ARMV5\urel\musmanagerserver.exe 	"sys\bin\musmanagerserver.exe"
 file=\epoc32\release\ARMV5\urel\musmanagerclient.dll 	"sys\bin\musmanagerclient.dll"
-file=\epoc32\release\ARMV5\urel\musengine.dll 	"sys\bin\musengine.dll"
-file=\epoc32\release\ARMV5\urel\musindicator.dll 	"sys\bin\musindicator.dll"
 data=\epoc32\data\Z\private\1028238D\tone.amr 	"private\1028238D\tone.amr"
 data=\epoc32\data\Z\resource\apps\musindicatoricons.mif 	"resource\apps\musindicatoricons.mif"
 data=\epoc32\data\Z\resource\apps\musindicatoricons.mbm 	"resource\apps\musindicatoricons.mbm"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, musaoplugin.dll , musaoplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, musaiwprovider.dll , musaiwprovider.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, musavailabilityplugin.dll , musavailabilityplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, muswpadapter.dll , muswpadapter.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mussettingsui.dll ,  mussettingsui.dll ) 
 data=\epoc32\data\Z\resource\apps\mussettingsplugin.mif 	"resource\apps\mussettingsplugin.mif"
 data=\epoc32\data\Z\system\install\multimediasharing_stub.sis 	"system\install\multimediasharing_stub.sis"
@@ -2997,10 +2700,8 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, musiccontentpublisher.dll , musiccontentpublisher.dll ) 
 data=\epoc32\data\Z\Resource\apps\musichomescreenicons.mif 	"resource\apps\musichomescreenicons.mif"
 data=\epoc32\include\musichomescreen.rsg 	"resource\apps\musichomescreen.rsg"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, musicplayeractionhandlerplugin.dll , musicplayeractionhandlerplugin.dll ) 
 data=\epoc32\data\Z\Private\200159c0\install\musicwidget_10207c18\hsps\00\manifest.dat 	"private\200159c0\install\musicwidget_10207c18\hsps\00\manifest.dat"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  myvideosindicatorplugin.dll ,  myvideosindicatorplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\Ncnlist.exe 	"sys\bin\Ncnlist.exe"
 data=\epoc32\data\Z\system\install\ncnlist_stub.SIS 	"system\install\ncnlist_stub.SIS"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, NCNNOTIFICATION.DLL , NCNNOTIFICATION.DLL ) 
 data=\epoc32\data\Z\private\10005907\backup_registration.xml 	"private\10005907\backup_registration.xml"
@@ -3012,33 +2713,18 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmlnotepaddataprovider.dll , nsmlnotepaddataprovider.dll ) 
 data=\epoc32\data\Z\resource\NSmlNotepadDataStoreFormat.RSC 	"resource\NSmlNotepadDataStoreFormat.RSC"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldmimpsadapter.dll , nsmldmimpsadapter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, WPEMailAdapter.dll , WPEMailAdapter.dll ) 
 REM OMA Device Management Application UI
-file=\epoc32\release\ARMV5\urel\NSmlDMSync.exe 	"sys\bin\NSmlDMSync.exe" 
-auto-bitmap=\epoc32\data\Z\resource\apps\NSmlDMSync.mbm 	resource\apps\NSmlDMSync.mbm
-data=\epoc32\data\Z\resource\apps\NSmlDMSync.mif 	"resource\apps\NSmlDMSync.mif"
-data=\epoc32\data\Z\resource\apps\NSmlDMSync_AIF.MIF 	"resource\apps\NSmlDMSync_aif.mif" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\NSmlDMSync_reg.rsc 	"Private\10003a3f\apps\NSmlDMSync_reg.rsc" 
 data=\epoc32\data\Z\private\101F6DE5\backup_registration.xml 	"private\101F6DE5\backup_registration.xml"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, OmaDmCPPlugin.dll , OmaDmCPPlugin.dll ) 
 REM OMA Data Synchronisation Application UI
-REM file=\epoc32\release\ARMV5\urel\NSmlDSSync.exe                   sys\bin\NSmlDSSync.exe 
-REM file=\epoc32\release\ARMV5\urel\NSmlDSSync.exe                   sys\bin\NSmlDSSync.exe
-file=\epoc32\release\ARMV5\urel\NSmlDSSync.exe 	"sys\bin\NSmlDSSync.exe" 
 REM __SCALABLE_IMAGE(\epoc32\data\Z,resource\apps,resource\apps,NSmlDSSync) 
-data=\epoc32\data\Z\resource\apps\NSmlDSSync.mif 	"resource\apps\NSmlDSSync.mif"
-data=\epoc32\data\Z\resource\apps\NSmlDSSync_AIF.MIF 	"resource\apps\NSmlDSSync_aif.mif" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\NSmlDSSync_reg.rsc 	"Private\10003a3f\apps\NSmlDSSync_reg.rsc" 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, OmaDsAppUiPlugin.dll , OmaDsAppUiPlugin.dll ) 
 data=\epoc32\data\Z\Private\200159c0\install\onerow_2001f480\hsps\00\manifest.dat 	"private\200159c0\install\onerow_2001f480\hsps\00\manifest.dat"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, OperatorLogoAdapter.dll , OperatorLogoAdapter.dll ) 
 file=\epoc32\release\ARMV5\urel\Operatormenu.exe 	"sys\bin\Operatormenu.exe" 
 data=\epoc32\data\Z\resource\apps\Operatormenu_AIF.MIF 	"resource\apps\Operatormenu_aif.mif" 
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\Operatormenu_reg.rsc 	"Private\10003a3f\import\apps\Operatormenu_reg.rsc" 
-file=\epoc32\release\ARMV5\urel\OpLogoBC.dll 	"sys\bin\OpLogoBC.dll"
 data=\epoc32\data\Z\Private\200159c0\install\organizer_2001f481\hsps\00\manifest.dat 	"private\200159c0\install\organizer_2001f481\hsps\00\manifest.dat"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  pbk2rclcontactactionmenu.dll ,  pbk2rclcontactactionmenu.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, pbk2rclcontactactionservice.dll , pbk2rclcontactactionservice.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, pbk2rclcallplugin.dll , pbk2rclcallplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\pbk2rclcallplugin.mif 	"resource\apps\pbk2rclcallplugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, pbk2rclsaveascontactplugin.dll , pbk2rclsaveascontactplugin.dll ) 
@@ -3058,7 +2744,6 @@
 file=\epoc32\release\ARMV5\urel\PcsServer.exe 	"sys\bin\PcsServer.exe" 
 data=\epoc32\data\Z\resource\contactsort.rsc 	"resource\contactsort.rsc"
 data=\epoc32\data\Z\system\install\psengine_stub.sis 	"system\install\psengine_stub.sis"
-file=\epoc32\release\ARMV5\urel\PhoneAnimDll.dll 	"sys\bin\PhoneAnimDll.dll"
 data=\epoc32\data\Z\System\install\PhoneAnimDll_stub.sis 	"System\Install\PhoneAnimDll_stub.sis"
 file=\epoc32\release\ARMV5\urel\PbkEng.dll 	"sys\bin\PbkEng.dll"
 auto-bitmap=\epoc32\data\Z\resource\apps\Phonebook.mbm 	resource\apps\Phonebook.mbm
@@ -3067,42 +2752,21 @@
 file=\epoc32\release\ARMV5\urel\PbkExt.dll 	"sys\bin\PbkExt.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, PbkEngine_FM.dll , PbkEngine_FM.dll ) 
 data=\epoc32\data\Z\private\101f87b1\backup_registration.xml 	"private\101f87b1\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\Phonebook2.exe 	"sys\bin\Phonebook2.exe" 
-auto-bitmap=\epoc32\data\Z\resource\apps\Phonebook2.mbm 	resource\apps\Phonebook2.mbm
-data=\epoc32\data\Z\resource\apps\Phonebook2.mif 	"resource\apps\Phonebook2.mif"
-data=\epoc32\data\Z\resource\apps\Phonebook2_AIF.MIF 	"resource\apps\Phonebook2_aif.mif" 
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\Phonebook2_reg.rsc 	"Private\10003a3f\apps\Phonebook2_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\Pbk2Presentation.dll 	"sys\bin\Pbk2Presentation.dll"
-file=\epoc32\release\ARMV5\urel\Pbk2UIControls.dll 	"sys\bin\Pbk2UIControls.dll"
-file=\epoc32\release\ARMV5\urel\Pbk2CommonUI.dll 	"sys\bin\Pbk2CommonUI.dll"
-file=\epoc32\release\ARMV5\urel\Pbk2Commands.dll 	"sys\bin\Pbk2Commands.dll"
-file=\epoc32\release\ARMV5\urel\Pbk2UIExt.dll 	"sys\bin\Pbk2UIExt.dll"
 file=\epoc32\release\ARMV5\urel\Pbk2CommonUtility.dll 	"sys\bin\Pbk2CommonUtility.dll"
-file=\epoc32\release\ARMV5\urel\pbk2spbcontentprovider.dll 	"sys\bin\pbk2spbcontentprovider.dll"
-file=\epoc32\release\ARMV5\urel\Pbk2ServerApp.exe 	"sys\bin\Pbk2ServerApp.exe" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\Pbk2ServerApp_reg.rsc 	"Private\10003a3f\apps\Pbk2ServerApp_reg.rsc" 
 data=\epoc32\data\Z\resource\apps\phonebook2ece.mif 	"resource\apps\phonebook2ece.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Pbk2UIServices.dll , Pbk2UIServices.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Pbk2UIPolicy.dll , Pbk2UIPolicy.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Pbk2GroupUI.dll , Pbk2GroupUI.dll ) 
 data=\epoc32\data\Z\resource\Pbk2UIPolicyRes.rsc 	"resource\Pbk2UIPolicyRes.rsc"
 data=\epoc32\data\Z\resource\apps\psu2.mif 	"resource\apps\psu2.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Pbk2USIMUI.dll , Pbk2USIMUI.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Pbk2USIMThinUI.dll , Pbk2USIMThinUI.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Pbk2MMCUI.dll , Pbk2MMCUI.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Pbk2MapUI.dll , Pbk2MapUI.dll ) 
 data=\epoc32\data\Z\private\101f4cce\backup_registration.xml 	"private\101f4cce\backup_registration.xml"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ExtensionManager.dll , ExtensionManager.dll ) 
 data=\epoc32\data\Z\Resource\ExtensionManager.mbm 	"resource\ExtensionManager.mbm"
-file=\epoc32\release\ARMV5\urel\xSPViewServices.dll 	"sys\bin\xSPViewServices.dll"
-data=\epoc32\data\Z\private\10003a3f\apps\Phonebook2_reg.rsc 	"private\10003a3f\Import\Apps\Phonebook2_reg.rsc"
 data=\epoc32\data\Z\System\install\pbk2_stub.sis 	"System\Install\pbk2_stub.sis"
 data=\epoc32\data\Z\System\install\phonecntfinder_stub.SIS 	"System\Install\phonecntfinder_stub.SIS"
 file=\epoc32\release\ARMV5\urel\ENGINEINFO.DLL 	"sys\bin\ENGINEINFO.DLL"
-file=\epoc32\release\ARMV5\urel\AUDIOHANDLING.DLL 	"sys\bin\AUDIOHANDLING.DLL"
 data=\epoc32\data\Z\resource\defaultbeep.RSC 	"resource\defaultbeep.RSC"
 file=\epoc32\release\ARMV5\urel\LOGHANDLING.DLL 	"sys\bin\LOGHANDLING.DLL"
-file=\epoc32\release\ARMV5\urel\peservicehandling.dll 	"sys\bin\peservicehandling.dll"
 data=\epoc32\data\Z\private\1000A86C\backup_registration.xml 	"private\1000A86C\backup_registration.xml"
 data=\epoc32\data\Z\System\install\audiohandling_stub.sis 	"System\Install\audiohandling_stub.sis"
 data=\epoc32\data\Z\System\install\callhandling_stub.sis 	"System\Install\callhandling_stub.sis"
@@ -3112,9 +2776,7 @@
 data=\epoc32\data\Z\System\install\servicehandling_stub.sis 	"System\Install\servicehandling_stub.sis"
 data=\epoc32\data\Z\System\install\phonesettings_stub.SIS 	"System\Install\phonesettings_stub.SIS"
 REM PhoneUI
-file=\epoc32\release\ARMV5\urel\phoneuicontrol.dll 	"sys\bin\phoneuicontrol.dll"
 file=\epoc32\release\ARMV5\urel\phoneuiutils.dll 	"sys\bin\phoneuiutils.dll"
-file=\epoc32\release\ARMV5\urel\phonemediatorcenter.dll 	"sys\bin\phonemediatorcenter.dll"
 data=\epoc32\data\Z\System\install\phoneui_stub.sis 	"System\Install\phoneui_stub.sis"
 data=\epoc32\data\Z\System\install\phoneuicontrol_stub.sis 	"System\Install\phoneuicontrol_stub.sis"
 data=\epoc32\data\Z\System\install\phoneuistates_stub.sis 	"System\Install\phoneuistates_stub.sis"
@@ -3122,13 +2784,7 @@
 data=\epoc32\data\Z\System\install\phoneuiview_stub.sis 	"System\Install\phoneuiview_stub.sis"
 data=\epoc32\data\Z\System\install\phonemediatorcenter_stub.sis 	"System\Install\phonemediatorcenter_stub.sis"
 data=\epoc32\data\Z\System\install\phoneuivoipextension_stub.sis 	"System\Install\phoneuivoipextension_stub.sis"
-file=\epoc32\release\ARMV5\urel\PnpProvisioning.exe 	"sys\bin\PnpProvisioning.exe" 
-data=\EPOC32\DATA\Z\private\10003a3f\apps\pnpprovisioning_reg.RSC 	"private\10003a3f\import\apps\pnpprovisioning_reg.RSC"
-file=\epoc32\release\ARMV5\urel\NHwrParser.dll 	"sys\bin\NHwrParser.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  recnhwr.dll ,  recnhwr.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  PnpPaosFilter.dll ,  PnpPaosFilter.dll ) 
-file=\epoc32\release\ARMV5\urel\podcast.exe 	"sys\bin\podcast.ext"
-file=\epoc32\release\ARMV5\urel\podcastengine.dll 	"sys\bin\podcastengine.dll"
 REM MISSING data=\epoc32\data\Z\Resource\apps\podcast.rsc					resource\apps\podcast.rsc
 data=\epoc32\data\Z\Resource\apps\Podcast.mif 	"resource\apps\Podcast.mif"
 data=\epoc32\data\Z\Resource\help\podcatcher.hlp 	"resource\apps\podcatcher.hlp"
@@ -3144,30 +2800,22 @@
 file=\epoc32\release\ARMV5\urel\presencecacheserver2.exe 	"sys\bin\presencecacheserver2.exe"
 file=\epoc32\release\ARMV5\urel\presencetrafficlights.dll 	"sys\bin\presencetrafficlights.dll"
 data=\epoc32\data\Z\resource\apps\presencetrafficlights.mif 	"resource\apps\presencetrafficlights.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, GSProfilesPlugin.dll , GSProfilesPlugin.dll ) 
-data=\epoc32\data\Z\resource\apps\gsprofilesplugin.mif 	"resource\apps\gsprofilesplugin.mif"
 data=\epoc32\data\Z\Private\2000B187\10283386.xml 	"private\2000B187\10283386.xml"
 data=\epoc32\data\Z\Private\200159c0\install\profile_2001cb7c\hsps\00\manifest.dat 	"private\200159c0\install\profile_2001cb7c\hsps\00\manifest.dat"
-file=\epoc32\release\ARMV5\urel\ProvisioningFile.dll 	"sys\bin\ProvisioningFile.dll"
 data=\epoc32\data\Z\resource\apps\PslnCallImagePlugin.mif 	"resource\apps\PslnCallImagePlugin.mif"
 data=\epoc32\data\Z\System\install\pslncallimageplugin_stub.SIS 	"System\Install\pslncallimageplugin_stub.SIS"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  PslnCallImagePlugin.dll ,  PslnCallImagePlugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  PsMruAdapter.dll ,  PsMruAdapter.dll ) 
 REM PhoneSettings Notes UI
-file=\epoc32\release\ARMV5\urel\psui.dll 	"sys\bin\psui.dll"
 data=\epoc32\data\Z\System\install\psui_stub.sis 	"System\Install\psui_stub.sis"
 file=\epoc32\release\ARMV5\urel\PushMtmCliSrv.dll 	"sys\bin\PushMtmCliSrv.dll"
 file=\epoc32\release\ARMV5\urel\PushMtmUi.dll 	"sys\bin\PushMtmUi.dll"
 file=\epoc32\release\ARMV5\urel\PushMtmUtil.dll 	"sys\bin\PushMtmUtil.dll"
 data=\epoc32\data\Z\resource\apps\PushMtm.mif 	"resource\apps\PushMtm.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, PushMtmPushContentHandler.dll , PushMtmPushContentHandler.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, PushMtmWhiteListAdapter.dll , PushMtmWhiteListAdapter.dll ) 
 file=\epoc32\release\ARMV5\urel\RCSE.dll 	"sys\bin\RCSE.dll"
 data=\epoc32\data\Z\Private\100012a5\policy\10202869.SPD 	"PRIVATE\100012a5\policy\10202869.SPD"
 data=\epoc32\data\Z\Private\10202869\backup_registration.xml 	"private\10202869\backup_registration.xml"
 file=\epoc32\release\ARMV5\urel\richBio.dll 	"sys\bin\richBio.dll"
-file=\epoc32\release\ARMV5\urel\RingBC.dll 	"sys\bin\RingBC.dll"
-data=\epoc32\data\Z\resource\apps\RingBC.mif 	"resource\apps\RingBC.mif"
 data=\epoc32\data\Z\Private\200159c0\install\root_2001f482\xuikon\00\root.o0000 	"private\200159c0\install\root_2001f482\xuikon\00\root.o0000"
 data=\epoc32\data\Z\Private\200159c0\install\root_2001f482\hsps\00\manifest.dat 	"private\200159c0\install\root_2001f482\hsps\00\manifest.dat"
 REM This iby file puts Symbian components to ROM. It replaces sislwappush.iby.
@@ -3177,7 +2825,6 @@
 data=\epoc32\data\Z\Resource\wappush\sl.dtd 	"RESOURCE\wappush\sl.dtd"
 data=\epoc32\data\Z\Resource\wappush\si10.tok 	"RESOURCE\wappush\si10.tok"
 data=\epoc32\data\Z\Resource\wappush\sl10.tok 	"RESOURCE\wappush\sl10.tok"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, iptvscheduleddownloadplugin.dll , iptvscheduleddownloadplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SchemePlugin.dll , SchemePlugin.dll )  
 file=\epoc32\release\ARMV5\urel\sconsyncclient.dll 	"sys\bin\sconsyncclient.dll"
 file=\epoc32\release\ARMV5\urel\sconsyncserver.exe 	"sys\bin\sconsyncserver.exe"
@@ -3195,46 +2842,31 @@
 file=\epoc32\release\ARMV5\urel\searchutilities.dll 	"sys\bin\searchutilities.dll"
 file=\epoc32\release\ARMV5\urel\searchclient.dll 	"sys\bin\searchclient.dll"
 file=\epoc32\release\ARMV5\urel\searchserver.exe 	"sys\bin\searchserver.exe" 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, GenericMtmPlugin.dll , GenericMtmPlugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, DrmLinkSender.dll , DrmLinkSender.dll ) 
 file=\epoc32\release\ARMV5\urel\SERVICEREQUEST.DLL 	"sys\bin\SERVICEREQUEST.DLL"
 data=\epoc32\data\Z\System\install\Servicerequest_stub.sis 	"System\Install\Servicerequest_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, servicewidgetdatapublisher.dll , servicewidgetdatapublisher.dll ) 
 data=\epoc32\data\Z\system\install\servicewidget_stub.sis 	"system\install\servicewidget_stub.sis"
 data=\epoc32\data\Z\Private\200159c0\install\servicewidget_20021383\xuikon\00\servicewidget.o0000 	"private\200159c0\install\servicewidget_20021383\xuikon\00\servicewidget.o0000"
 data=\epoc32\data\Z\Private\200159c0\install\servicewidget_20021383\hsps\00\manifest.dat 	"private\200159c0\install\servicewidget_20021383\hsps\00\manifest.dat"
 data=\epoc32\data\Z\private\10202be9\200071d3.txt 	"private\10202be9\200071d3.txt"
 file=\epoc32\release\ARMV5\urel\shwslideshowengine.dll 	"sys\bin\shwslideshowengine.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  shwslideshowviewplugin.dll ,  shwslideshowviewplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  shwsettingsplugin.dll ,  shwsettingsplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  silenceactionplugin.dll ,  silenceactionplugin.dll ) 
 data=\epoc32\data\Z\private\10282BC4\Rules\silenceringingtone_activate.rul 	"private\10282BC4\Rules\silenceringingtone_activate.rul"
 data=\epoc32\data\Z\private\10282BC4\Rules\silenceringingtone_silence.rul 	"private\10282BC4\Rules\silenceringingtone_silence.rul"
 data=\epoc32\data\Z\System\install\silenceactionplugin_stub.SIS 	"System\Install\silenceactionplugin_stub.SIS"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  sipconnectionprovider.dll ,  sipconnectionprovider.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  sipimresolver.dll ,  sipimresolver.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  sipmxresolver.dll ,  sipmxresolver.dll ) 
 file=\epoc32\release\ARMV5\urel\SmilEng.dll 	"sys\bin\SmilEng.dll"
 REM SMIL transition component dll
 file=\epoc32\release\ARMV5\urel\smiltran.dll 	"sys\bin\smiltran.dll"
-file=\epoc32\release\ARMV5\urel\smilmediarenderer.dll 	"sys\bin\smilmediarenderer.dll"
-file=\epoc32\release\ARMV5\urel\smilplayer.dll 	"sys\bin\smilplayer.dll"
-data=\epoc32\data\Z\resource\apps\smilplayer.mif 	"resource\apps\smilplayer.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, smsdataprovider.dll , smsdataprovider.dll ) 
 data=\epoc32\data\Z\resource\smsdatastore.RSC 	"resource\smsdatastore.RSC"
 data=\epoc32\data\Z\private\101F99F6\capability\10206B5C.XML 	"private\101F99F6\capability\10206B5C.XML"
 data=\epoc32\data\Z\System\install\smsdsa_stub.sis 	"system\install\smsdsa_stub.sis"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SmsStrict.DLL , SmsStrict.DLL ) 
 data=\epoc32\data\z\system\install\stubsmsviewer.sis 	"system\install\stubsmsviewer.sis"
-file=\epoc32\release\ARMV5\urel\smum.dll 	"sys\bin\smum.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, smsdetailsplugin.dll , smsdetailsplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, defaultsimdialogplugin.dll , defaultsimdialogplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  speeddialgsplugin.dll ,  speeddialgsplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\speeddialgsplugin.mif 	"resource\apps\speeddialgsplugin.mif"
-file=\epoc32\release\ARMV5\urel\nssvcommandexecutor.exe 	"sys\bin\nssvcommandexecutor.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nssvcexecutorbearer.dll , nssvcexecutorbearer.dll ) 
 file=\epoc32\release\ARMV5\urel\nssvoiceuipluginhandler.dll 	"sys\bin\nssvoiceuipluginhandler.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, vuipprofileobserverplugin.dll , vuipprofileobserverplugin.dll ) 
 data=\epoc32\data\Z\Private\102818E7\defaultvoicecommands.xml 	"private\102818E7\defaultvoicecommands.xml"
 data=\epoc32\data\Z\Private\102818E7\btvoicecommands.xml 	"private\102818E7\btvoicecommands.xml"
 data=\epoc32\data\Z\Private\102818E7\emailvoicecommands.xml 	"private\102818E7\emailvoicecommands.xml"
@@ -3248,18 +2880,9 @@
 file=\epoc32\release\ARMV5\urel\nssvasapi.dll 	"sys\bin\nssvasapi.dll"
 file=\epoc32\release\ARMV5\urel\nssvascontacthdlr.dll 	"sys\bin\nssvascontacthdlr.dll"
 file=\epoc32\release\ARMV5\urel\vcommandhandler.dll 	"sys\bin\vcommandhandler.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  nsssicontrollerplugin.dll ,  nsssicontrollerplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  nssttscontrollerplugin.dll ,  nssttscontrollerplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\nssdevasr.dll 	"sys\bin\nssdevasr.dll"
 file=\epoc32\release\ARMV5\urel\nsssispeechrecognitiondata.dll 	"sys\bin\nsssispeechrecognitiondata.dll"
-file=\epoc32\release\ARMV5\urel\nsssispeechrecognitioncustomcommands.dll 	"sys\bin\nsssispeechrecognitioncustomcommands.dll"
-file=\epoc32\release\ARMV5\urel\nsssispeechrecognitionutility.dll 	"sys\bin\nsssispeechrecognitionutility.dll"
-file=\epoc32\release\ARMV5\urel\nssdevtts.dll 	"sys\bin\nssdevtts.dll"   
-file=\epoc32\release\ARMV5\urel\nssttscustomcommands.dll 	"sys\bin\nssttscustomcommands.dll"    
 file=\epoc32\release\ARMV5\urel\nssttscommon.dll 	"sys\bin\nssttscommon.dll"
-file=\epoc32\release\ARMV5\urel\nssttsutility.dll 	"sys\bin\nssttsutility.dll"
 file=\epoc32\release\ARMV5\urel\speechsynthesis.dll 	"sys\bin\speechsynthesis.dll"
-file=\epoc32\release\ARMV5\urel\speechsynthesisserver.exe 	"sys\bin\speechsynthesisserver.exe"
 data=\epoc32\data\Z\resource\nssvasresource.rsc 	"resource\nssvasresource.rsc"
 data=\epoc32\data\Z\resource\nssdevasr.rsc 	"resource\nssdevasr.rsc"
 data=\epoc32\data\Z\resource\nssdevtts.rsc 	"resource\nssdevtts.rsc"
@@ -3268,17 +2891,13 @@
 data=\epoc32\data\Z\Private\100012a5\policy\10201AFE.spd 	"private\100012a5\policy\10201AFE.spd"
 data=\epoc32\data\Z\Private\100012a5\policy\10201AFF.spd 	"private\100012a5\policy\10201AFF.spd"
 data=\epoc32\data\Z\Private\10208ACC\10201AEE.txt 	"private\10208ACC\10201AEE.txt"
-file=\epoc32\release\ARMV5\urel\SSSettings.dll 	"sys\bin\sssettings.dll"
 data=\epoc32\data\Z\System\install\sssettings_stub.SIS 	"System\Install\sssettings_stub.SIS"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, supadapter.dll , supadapter.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SVGCodec.dll , SVGCodec.dll ) 
 data=\epoc32\data\Z\Resource\ICL\102073D7_extra.rsc 	"Resource\ICL\102073D7_extra.rsc"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SVGTScreenSaverPlugin.dll , SVGTScreenSaverPlugin.dll ) 
-file=\epoc32\release\ARMV5\urel\SVGTAppObserverUtil.dll 	"sys\bin\SVGTAppObserverUtil.dll"
 file=\epoc32\release\ARMV5\urel\SVGTFileViewDetails.dll 	"sys\bin\SVGTFileViewDetails.dll"
 file=\epoc32\release\ARMV5\urel\SVGTUIControl.dll 	"sys\bin\SVGTUIControl.dll"
 data=\epoc32\data\Z\resource\apps\SVGTUIControl.mif 	"resource\apps\SVGTUIControl.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  svp.dll ,  svp.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  svtcallmenu.dll ,  svtcallmenu.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  svtlogging.dll ,  svtlogging.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  svtmatching.dll ,  svtmatching.dll ) 
@@ -3294,34 +2913,18 @@
 data=\epoc32\data\Z\Private\200159c0\install\tworows_2001f488\hsps\00\manifest.dat 	"private\200159c0\install\tworows_2001f488\hsps\00\manifest.dat"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, TXTRECOG.dll , TXTRECOG.dll ) 
 data=\epoc32\data\z\Resource\apps\TxtRecog.RSC 	"Resource\apps\TxtRecog.RSC"
-file=\epoc32\release\ARMV5\urel\UISettingsSrv.exe 	"sys\bin\UISettingsSrv.exe" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\UISettingsSrv_reg.rsc 	"Private\10003a3f\apps\UISettingsSrv_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\UISettingsClient.dll 	"sys\bin\UISettingsClient.dll"
 data=\epoc32\data\z\system\install\stub_unieditor.sis 	"system\install\stub_unieditor.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  UniMmsPlugin.dll ,  UniMmsPlugin.dll )      
-file=\epoc32\release\ARMV5\urel\UniDataModel.dll 	"sys\bin\UniDataModel.dll"
 file=\epoc32\release\ARMV5\urel\UniMtms.dll 	"sys\bin\UniMtms.dll"
 file=\epoc32\release\ARMV5\urel\UniPluginApi.dll 	"sys\bin\UniPluginApi.dll"
 file=\epoc32\release\ARMV5\urel\VideoConversionApi.dll 	"sys\bin\VideoConversionApi.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  UniSmsPlugin.dll ,  UniSmsPlugin.dll )              
-file=\epoc32\release\ARMV5\urel\UniUtils.dll 	"sys\bin\UniUtils.dll"
-auto-bitmap=\epoc32\data\Z\resource\apps\uniutils.mbm 	resource\apps\uniutils.mbm
-data=\epoc32\data\Z\resource\apps\uniutils.mif 	"resource\apps\uniutils.mif"
-file=\epoc32\release\ARMV5\urel\USSD.EXE 	"sys\bin\Ussd.exe"
 data=\epoc32\data\Z\System\install\Ussd_stub.sis 	"System\Install\Ussd_stub.sis"
-data=\epoc32\data\Z\resource\apps\Ussd_AIF.MIF 	"resource\apps\Ussd_aif.mif" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\Ussd_reg.rsc 	"Private\10003a3f\apps\Ussd_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\vcalbc.dll 	"sys\bin\vcalbc.dll"
 file=\epoc32\release\ARMV5\urel\VcardBc.dll 	"sys\bin\VcardBc.dll"
 file=\epoc32\release\ARMV5\urel\vccutils.dll 	"sys\bin\vccutils.dll"
 data=\epoc32\data\Z\System\install\vcc_stub.sis 	"System\Install\vcc_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wpvccadapter.dll , wpvccadapter.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldmvccadapter.dll , nsmldmvccadapter.dll ) 
-file=\epoc32\release\ARMV5\urel\vcchotrigger.dll 	"sys\bin\vcchotrigger.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  vccperformer.dll ,  vccperformer.dll ) 
 file=\epoc32\release\ARMV5\urel\vccuipropertyhandler.dll 	"sys\bin\vccuipropertyhandler.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, vcxnsscheduleplugin.dll , vcxnsscheduleplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\vcxnsscheduleview.dll 	"sys\bin\vcxnsscheduleview.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, vccontrolpanelplugin.dll , vccontrolpanelplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\vccontrolpanelplugin.mif 	"resource\apps\vccontrolpanelplugin.mif"
 data=\epoc32\data\Z\Private\101F8555\backup_registration.xml 	"PRIVATE\101F8555\backup_registration.xml"
@@ -3330,27 +2933,14 @@
 data=\epoc32\data\Z\Resource\versions\imeisv.txt 	"resource\versions\imeisv.txt"
 REM Versit2 Parsers
 file=\epoc32\release\ARMV5\urel\versit2.dll 	"sys\bin\Versit2.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, VcXNotifierPlugin.DLL , VcXNotifierPlugin.DLL ) 
-file=\epoc32\release\ARMV5\urel\vcxnsuiengine.dll 	"sys\bin\vcxnsuiengine.dll"
-file=\epoc32\release\ARMV5\urel\IptvClientApi.dll 	"sys\bin\IptvClientApi.dll"
-file=\epoc32\release\ARMV5\urel\IptvServer.exe 	"sys\bin\IptvServer.exe"
-file=\epoc32\release\ARMV5\urel\LiveTvUtils.dll 	"sys\bin\LiveTvUtils.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, IptvOmaProvisioningAdapter.dll , IptvOmaProvisioningAdapter.dll ) 
-file=\epoc32\release\ARMV5\urel\vcxnssettingsengine.dll 	"sys\bin\vcxnssettingsengine.dll"
-file=\epoc32\release\ARMV5\urel\IptvProvisioningProcessor.dll 	"sys\bin\IptvProvisioningProcessor.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, IptvProvRec.DLL , IptvProvRec.DLL ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, IptvRssPlugin.DLL , IptvRssPlugin.DLL ) 
-file=\epoc32\release\ARMV5\urel\VideoSource.dll 	"sys\bin\VideoSource.dll"
 data=\epoc32\data\Z\System\install\videosource_stub.sis 	"system\install\videosource_stub.sis"
 REM Video telephony engine libraries
 file=\epoc32\release\ARMV5\urel\videotelproto.dll 	"sys\bin\videotelproto.dll"
-file=\epoc32\release\ARMV5\urel\Videoteleng.dll 	"sys\bin\Videoteleng.dll"
-file=\epoc32\release\ARMV5\urel\cscallctrl.dll 	"sys\bin\cscallctrl.dll"
 file=\epoc32\release\ARMV5\urel\vtlogger.dll 	"sys\bin\vtlogger.dll"
 data=\epoc32\data\Z\System\install\videoteleng_stub.sis 	"system\install\videoteleng_stub.sis"
 REM Video Telephone application
 data=\epoc32\data\Z\System\install\videotelui_stub.sis 	"system\install\videotelui_stub.sis"
-file=\epoc32\release\ARMV5\urel\IptvUtil.dll 	"sys\bin\IptvUtil.dll"
 data=\epoc32\data\Z\resource\apps\iptvmimesupport.RSC 	"resource\apps\iptvmimesupport.RSC"
 file=\epoc32\release\ARMV5\urel\vcxviewmessageutility.dll 	"sys\bin\vcxviewmessageutility.dll"
 data=\epoc32\data\Z\private\10202be9\2001B288.txt 	"private\10202BE9\2001B288.txt"  
@@ -3360,11 +2950,8 @@
 file=\epoc32\release\ARMV5\urel\VPbkEngUtils.dll 	"sys\bin\VPbkEngUtils.dll"
 file=\epoc32\release\ARMV5\urel\VPbkVCardEng.dll 	"sys\bin\VPbkVCardEng.dll"
 file=\epoc32\release\ARMV5\urel\VPbkSimStoreService.dll 	"sys\bin\VPbkSimStoreService.dll"
-file=\epoc32\release\ARMV5\urel\VPbkSimStoreImpl.dll 	"sys\bin\VPbkSimStoreImpl.dll"
 file=\epoc32\release\ARMV5\urel\VPbkSimStoreCommon.dll 	"sys\bin\VPbkSimStoreCommon.dll"
-file=\epoc32\release\ARMV5\urel\VPbkSimServer.exe 	"sys\bin\VPbkSimServer.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, VPbkCntModel.dll , VPbkCntModel.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, VPbkSimStore.dll , VPbkSimStore.dll ) 
 data=\epoc32\data\Z\resource\VPbkEng.rsc 	"resource\VPbkEng.rsc"
 data=\epoc32\data\Z\resource\VPbkFieldTypeSelectors.rsc 	"resource\VPbkFieldTypeSelectors.rsc"
 data=\epoc32\data\Z\resource\VPbkVCardEng.rsc 	"resource\VPbkVCardEng.rsc"
@@ -3373,26 +2960,18 @@
 data=\epoc32\data\Z\System\install\vm_stub.sis 	"System\Install\vm_stub.sis"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, GSVoiceRecorderPlugin.dll , GSVoiceRecorderPlugin.dll ) 
 file=\epoc32\release\ARMV5\urel\VoicerecorderUtils.DLL 	"sys\bin\VoicerecorderUtils.DLL"
-file=\epoc32\release\ARMV5\urel\VoicerecorderRecview.DLL 	"sys\bin\VoicerecorderRecview.DLL"
 file=\epoc32\release\ARMV5\urel\NewService.DLL 	"sys\bin\NewService.DLL"
 data=\epoc32\data\Z\resource\apps\GSVoiceRecorderPlugin.mif 	"resource\apps\GSVoiceRecorderPlugin.mif"
 data=\epoc32\data\Z\Private\100058CA\backup_registration.xml 	"private\100058CA\backup_registration.xml"
 data=\epoc32\data\Z\System\Install\VoiceRecorder_stub.SIS 	"System\install\VoiceRecorder_stub.SIS"
 data=\epoc32\data\Z\resource\apps\voiceui.mif 	"resource\apps\voiceui.mif"
 file=\epoc32\release\ARMV5\urel\voiceUiRecognition.dll 	"sys\bin\voiceUiRecognition.dll"
-file=\epoc32\release\ARMV5\urel\vuivoicerecognition.exe 	"sys\bin\vuivoicerecognition.exe" 
-data=\epoc32\data\Z\resource\apps\vuivoicerecognition_AIF.MIF 	"resource\apps\vuivoicerecognition_aif.mif" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\vuivoicerecognition_reg.rsc 	"Private\10003a3f\apps\vuivoicerecognition_reg.rsc" 
 data=\epoc32\release\ARMV5\urel\z\system\sounds\digital\NameDiallerStartTone.wav 	"System\sounds\digital\NameDiallerStartTone.wav"
 data=\epoc32\release\ARMV5\urel\z\system\sounds\digital\namediallerconfirmtone.wav 	"System\sounds\digital\namediallerconfirmtone.wav"
 data=\epoc32\release\ARMV5\urel\z\system\sounds\digital\btnamediallerstarttone.wav 	"System\sounds\digital\btnamediallerstarttone.wav"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, aiwpbkinfoviewprovider.dll , aiwpbkinfoviewprovider.dll ) 
-file=\epoc32\release\ARMV5\urel\pbkinfoview.dll 	"sys\bin\pbkinfoview.dll"
 file=\epoc32\release\ARMV5\urel\voipeventlog.dll 	"sys\bin\voipeventlog.dll"
 file=\epoc32\release\ARMV5\urel\voipxmlprocessor.dll 	"sys\bin\voipxmlprocessor.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  voipprovrec.dll ,  voipprovrec.dll ) 
-file=\epoc32\release\ARMV5\urel\voipprovisioningapp.exe 	"sys\bin\voipprovisioningapp.exe" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\voipprovisioningapp_reg.rsc 	"Private\10003a3f\import\apps\voipprovisioningapp_reg.rsc" 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, vrec.dll , vrec.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  vtmediatorplugin.dll ,  vtmediatorplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, WallpaperAdapter.dll , WallpaperAdapter.dll ) 
@@ -3419,8 +2998,6 @@
 data=\epoc32\data\Z\System\install\widgetmanager_stub.sis 	"system\install\widgetmanager_stub.sis"
 data=\epoc32\data\Z\private\10202be9\20026F53.txt 	"private\10202be9\20026F53.txt"
 file=\epoc32\release\ARMV5\urel\WMLBC.dll 	"sys\bin\WMLBC.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wpgeneralvoipsettingsadapter.dll , wpgeneralvoipsettingsadapter.dll )  
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wpvoipadapter.dll , wpvoipadapter.dll )  
 file=\epoc32\release\ARMV5\urel\WVSAPSettingsStore.dll 	"sys\bin\WVSAPSettingsStore.dll"
 REM xhtmlparser component dll
 file=\epoc32\release\ARMV5\urel\xhtmlparser.dll 	"sys\bin\xhtmlparser.dll"
@@ -3431,8 +3008,6 @@
 data=\epoc32\data\Z\private\10282BC4\rules\keyevent.rul 	"private\10282BC4\rules\keyevent.rul"
 data=\epoc32\data\Z\private\10282BC4\rules\keyincall.rul 	"private\10282BC4\rules\keyincall.rul"
 data=\epoc32\data\Z\private\10282BC4\rules\keyinfmtx.rul 	"private\10282BC4\rules\keyinfmtx.rul"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  aidevstaplg.dll ,  aidevstaplg.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, aiprofileplugin.dll , aiprofileplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, aisatplugin.dll , aisatplugin.dll ) 
 data=\epoc32\data\Z\System\install\SatPlugin_stub.sis 	"System\Install\SatPlugin_stub.sis"
 file=\epoc32\release\ARMV5\urel\aiwdialdata.dll 	"sys\bin\aiwdialdata.dll"
@@ -3557,14 +3132,8 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  alfcontainerwidget.dll  ,  alfcontainerwidget.dll  ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  alfscrollbarwidget.dll  ,  alfscrollbarwidget.dll  ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  alfviewwidget.dll  ,  alfviewwidget.dll  ) 
-file=\epoc32\release\ARMV5\urel\ALWAYSONLINEMANAGERSERVER.dll 	"sys\bin\ALWAYSONLINEMANAGERSERVER.dll"
-file=\epoc32\release\ARMV5\urel\ALWAYSONLINEMANAGERCLIENT.dll 	"sys\bin\ALWAYSONLINEMANAGERCLIENT.dll"
-file=\epoc32\release\ARMV5\urel\ALWAYSONLINESTARTER.exe 	"sys\bin\ALWAYSONLINESTARTER.exe"
 data=\epoc32\data\Z\system\install\aomanager_stub.sis 	"system\install\aomanager_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ALWAYSONLINEEMAILPLUGIN.DLL , ALWAYSONLINEEMAILPLUGIN.DLL ) 
 data=\epoc32\data\Z\system\install\aoemailplugin_stub.sis 	"system\install\aoemailplugin_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, APControlListPlugin.DLL , APControlListPlugin.DLL ) 
-data=\epoc32\data\Z\resource\apps\APControlListplugin.mif 	"resource\apps\APControlListplugin.mif"
 file=\epoc32\release\ARMV5\urel\ApEngine.dll 	"sys\bin\ApEngine.dll"
 file=\epoc32\release\ARMV5\urel\SWInstCli.dll 	"sys\bin\SWInstCli.dll"
 file=\epoc32\release\ARMV5\urel\SWInstSvrUI.exe 	"sys\bin\SWInstSvrUI.exe" 
@@ -3605,7 +3174,7 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  audiofetcher.dll ,  audiofetcher.dll ) 
 data=\epoc32\data\Z\resource\apps\audiofetcher.mif 	"resource\apps\audiofetcher.mif"
 REM AVKON
-file=\epoc32\release\ARMV5\urel\avkon.dll 	"sys\bin\avkon.dll"
+file=\epoc32\release\ARMV5\urel\stem_avkon.dll 	"sys\bin\avkon.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, akninit.dll , akninit.dll ) 
 file=\epoc32\release\ARMV5\urel\aknnotify.dll 	"sys\bin\aknnotify.dll"
 file=\epoc32\release\ARMV5\urel\aknnotifyplugin.dll 	"sys\bin\aknnotifyplugin.dll"
@@ -3657,11 +3226,9 @@
 data=\epoc32\data\Z\resource\apps\BTMouseBitMaps.mbm 	"resource\apps\BTMouseBitMaps.mbm"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, btmonobearer.dll , btmonobearer.dll ) 
 file=\epoc32\release\ARMV5\urel\atcodec.dll 	"sys\bin\atcodec.dll"
-file=\epoc32\release\ARMV5\urel\BTMonoCmdHandler.dll 	"sys\bin\BTMonoCmdHandler.dll"
 REM Bluetooth notifiers library
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, btnotifwrapper.dll , btnotifwrapper.dll ) 
 REM Bluetooth SAP ECom Plugin
-file=\epoc32\release\ARMV5\urel\CallAudioControl.dll 	"sys\bin\CallAudioControl.dll"
 data=\epoc32\data\Z\System\install\CallAudioControl_Stub.sis 	"System\Install\CallAudioControl_Stub.sis"
 data=\epoc32\data\Z\private\10207BD2\backup_registration.xml 	"private\10207BD2\backup_registration.xml"
 file=\epoc32\release\ARMV5\urel\callprovider.dll 	"sys\bin\callprovider.dll"
@@ -3672,13 +3239,8 @@
 REM CallUI Engine
 REM Enabler for exlipsing ROM binaries
 data=\epoc32\data\Z\System\install\callui_stub.sis 	"system\install\callui_stub.sis"
-file=\epoc32\release\ARMV5\urel\CAEENGINE.DLL 	"sys\bin\CAEENGINE.DLL"
 file=\epoc32\release\ARMV5\urel\ASYNCHFSQ.DLL 	"sys\bin\ASYNCHFSQ.DLL"
 file=\epoc32\release\ARMV5\urel\CAESTILLCONVERTER.DLL 	"sys\bin\CAESTILLCONVERTER.DLL"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, CAMCCONTROLLER.DLL , CAMCCONTROLLER.DLL ) 
-file=\epoc32\release\ARMV5\urel\CAMC3GPSINK.DLL 	"sys\bin\CAMC3GPSINK.DLL"
-file=\epoc32\release\ARMV5\urel\CAMCMEDIARECORDER.DLL 	"sys\bin\CAMCMEDIARECORDER.DLL"
-file=\epoc32\release\ARMV5\urel\CBSSERVER.EXE 	"sys\bin\CBSSERVER.EXE"
 file=\epoc32\release\ARMV5\urel\CBSCLIENT.DLL 	"sys\bin\CBSCLIENT.DLL"
 file=\epoc32\release\ARMV5\urel\CBSMCNCLIENT.DLL 	"sys\bin\CBSMCNCLIENT.DLL"
 data=\epoc32\data\Z\private\1000A859\backup_registration.xml 	"private\1000A859\backup_registration.xml"
@@ -3711,8 +3273,6 @@
 data=\epoc32\data\Z\resource\apps\cmmanager.mif 	"resource\apps\cmmanager.mif"
 file=\epoc32\release\ARMV5\urel\cmmanagerdatabase.dll 	"sys\bin\cmmanagerdatabase.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, cmpluginembdestination.dll , cmpluginembdestination.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, cmpluginpacketdata.dll , cmpluginpacketdata.dll ) 
-data=\epoc32\data\Z\resource\apps\cmpluginpacketdata.mif 	"resource\apps\cmpluginpacketdata.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, cmpluginvpn.dll , cmpluginvpn.dll ) 
 data=\epoc32\data\Z\resource\apps\cmpluginvpn.mif 	"resource\apps\cmpluginvpn.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, cmpluginwlan.dll , cmpluginwlan.dll ) 
@@ -3720,21 +3280,13 @@
 file=\epoc32\release\ARMV5\urel\CMS.dll 	"sys\bin\CMS.dll"
 file=\epoc32\release\ARMV5\urel\cntparserserverexe.exe 	"sys\bin\cntparserserverexe.exe"
 file=\epoc32\release\ARMV5\urel\cntparserserver.dll 	"sys\bin\cntparserserver.dll"
-file=\epoc32\release\ARMV5\urel\CodEng.dll 	"sys\bin\CodEng.dll"
-file=\epoc32\release\ARMV5\urel\CodUi.dll 	"sys\bin\CodUi.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, CodRecog.dll , CodRecog.dll ) 
-file=\epoc32\release\ARMV5\urel\CodViewer.exe 	"sys\bin\CodViewer.exe" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\CodViewer_reg.rsc 	"Private\10003a3f\import\apps\CodViewer_reg.rsc" 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, DdRecog.dll , DdRecog.dll ) 
-file=\epoc32\release\ARMV5\urel\CodDownload.dll 	"sys\bin\CodDownload.dll"
-file=\epoc32\release\ARMV5\urel\RoapApp.exe 	"sys\bin\RoapApp.exe" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\RoapApp_reg.rsc 	"Private\10003a3f\import\apps\RoapApp_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\commonadapter.dll 	"sys\bin\commonadapter.dll"
 file=\epoc32\release\ARMV5\urel\commondialogs.dll 	"sys\bin\commondialogs.dll"
 data=\epoc32\data\Z\resource\apps\commondialogs.mif 	"resource\apps\commondialogs.mif"
 file=\epoc32\release\ARMV5\urel\commonui.dll 	"sys\bin\commonui.dll"
 file=\epoc32\release\ARMV5\urel\commonuinpdapiloader.dll 	"sys\bin\commonuinpdapiloader.dll"
-file=\epoc32\release\ARMV5\urel\commonuimpengineapiloader.dll 	"sys\bin\commonuimpengineapiloader.dll"
 REM binaries
 file=\epoc32\release\ARMV5\urel\commsdatstartup.exe 	"Sys\Bin\commsdatstartup.exe"  
 file=\epoc32\release\ARMV5\urel\commsdatcreator.dll 	"sys\bin\commsdatcreator.dll"
@@ -3742,7 +3294,6 @@
 REM Varintadata for commsdat creation
 REM data=\epoc32\data\Z\private\10281BC3\VariantData.xml     private\10281BC3\VariantData.xml
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, connectiondialogswrapper.DLL , connectiondialogswrapper.DLL ) 
-file=\epoc32\release\ARMV5\urel\ConnectionManager.dll 	"sys\bin\ConnectionManager.dll"
 auto-bitmap=\epoc32\data\Z\resource\apps\ConnMan.mbm 	resource\apps\ConnMan.mbm
 data=\epoc32\data\Z\resource\apps\ConnMan.mif 	"resource\apps\ConnMan.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  connectionmonitorplugin.dll ,  connectionmonitorplugin.dll ) 
@@ -3750,9 +3301,6 @@
 file=\epoc32\release\ARMV5\urel\ConnectionUiUtilities.dll 	"sys\bin\ConnectionUiUtilities.dll"
 file=\epoc32\release\ARMV5\urel\ConnUiUtilsNotif.DLL 	"sys\bin\ConnUiUtilsNotif.DLL"
 data=\epoc32\data\Z\resource\apps\ConnectionUiUtilities.mif 	"resource\apps\ConnectionUiUtilities.mif"
-file=\epoc32\release\ARMV5\urel\CONNMON.DLL 	"sys\bin\CONNMON.DLL"
-file=\epoc32\release\ARMV5\urel\CONNMONEXE.EXE 	"sys\bin\CONNMONEXE.EXE"
-file=\epoc32\release\ARMV5\urel\CONNMONEXT.DLL 	"sys\bin\CONNMONEXT.DLL"
 file=\epoc32\release\ARMV5\urel\ContentListingFramework.dll 	"sys\bin\ContentListingFramework.dll"
 file=\epoc32\release\ARMV5\urel\MediaCollectionManager.dll 	"sys\bin\MediaCollectionManager.dll"
 file=\epoc32\release\ARMV5\urel\cpserver.exe 	"sys\bin\cpserver.exe"
@@ -3779,41 +3327,20 @@
 file=\epoc32\release\ARMV5\urel\CookieManager.dll 	"sys\bin\CookieManager.dll"
 file=\epoc32\release\ARMV5\urel\CookieServer.exe 	"sys\bin\CookieServer.exe"
 data=\epoc32\data\z\private\101F8530\CookieGroup.xml 	"private\101F8530\CookieGroup.xml"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  csplugin.dll ,  csplugin.dll ) 
 data=\epoc32\data\Z\System\install\csplugin_stub.sis 	"System\Install\csplugin_stub.sis"
 file=\epoc32\release\ARMV5\urel\CTSecDlgs.dll 	"sys\bin\CTSecDlgs.dll"
 file=\epoc32\release\ARMV5\urel\CTSecDialogImpl.dll 	"sys\bin\CTSecDialogImpl.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, CTSECDLGNOTIFIER.dll , CTSECDLGNOTIFIER.dll ) 
 file=\epoc32\release\ARMV5\urel\cXmlParser.dll 	"sys\bin\cXmlParser.dll"
-file=\epoc32\release\ARMV5\urel\Dataconnectionlogger.exe 	"sys\bin\Dataconnectionlogger.exe"
 data=\epoc32\data\Z\private\101F6CFE\backup_registration.xml 	"private\101F6CFE\backup_registration.xml"
 file=\epoc32\release\ARMV5\urel\DBRECOVERY.EXE 	"sys\bin\DBRECOVERY.EXE"
 file=\epoc32\release\ARMV5\urel\dcmoclient.dll 	"sys\bin\dcmoclient.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, DeflateFilter.dll , DeflateFilter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagaudioplugin.dll ,  devdiagaudioplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagbatterychargercabletestplugin.dll ,  devdiagbatterychargercabletestplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagbrowserplugin.dll ,  devdiagbrowserplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagconnectivitysuiteplugin.dll ,  devdiagconnectivitysuiteplugin.dll ) 
 data=\epoc32\data\Z\resource\devdiagconnectivitysuitepluginrsc.rsc 	"resource\devdiagconnectivitysuitepluginrsc.rsc"
-data=\epoc32\data\Z\resource\apps\devdiagconnectivitysuiteplugin.mif 	"resource\apps\devdiagconnectivitysuiteplugin.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagcoveragesuiteplugin.dll ,  devdiagcoveragesuiteplugin.dll ) 
 data=\epoc32\data\Z\resource\devdiagcoveragesuitepluginrsc.rsc 	"resource\devdiagcoveragesuitepluginrsc.rsc"
-data=\epoc32\data\Z\resource\apps\devdiagcoveragesuiteplugin.mif 	"resource\apps\devdiagcoveragesuiteplugin.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagdatanetworktestplugin.dll ,  devdiagdatanetworktestplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagexternalmediacardplugin.dll ,  devdiagexternalmediacardplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiaghardwaresuiteplugin.dll ,  devdiaghardwaresuiteplugin.dll ) 
 data=\epoc32\data\Z\resource\devdiaghardwaresuitepluginrsc.rsc 	"resource\devdiaghardwaresuitepluginrsc.rsc"
-data=\epoc32\data\Z\resource\apps\devdiaghardwaresuiteplugin.mif 	"resource\apps\devdiaghardwaresuiteplugin.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagheadsetcabletestplugin.dll ,  devdiagheadsetcabletestplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagnetcoverageplugin.dll ,  devdiagnetcoverageplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagservicessuiteplugin.dll ,  devdiagservicessuiteplugin.dll ) 
 data=\epoc32\data\Z\resource\devdiagservicessuitepluginrsc.rsc 	"resource\devdiagservicessuitepluginrsc.rsc"
-data=\epoc32\data\Z\resource\apps\devdiagservicessuiteplugin.mif 	"resource\apps\devdiagservicessuiteplugin.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagspeakerplugin.dll ,  devdiagspeakerplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagtoplevelsuiteplugin.dll ,  devdiagtoplevelsuiteplugin.dll ) 
 data=\epoc32\data\Z\resource\devdiagtoplevelsuitepluginrsc.rsc 	"resource\devdiagtoplevelsuitepluginrsc.rsc"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  DevDiagUSBCableTestPlugin.dll ,  DevDiagUSBCableTestPlugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiagvibrateplugin.dll ,  devdiagvibrateplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\devenccommonutils.dll 	"sys\bin\devenccommonutils.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, DevEncRfsPlugin.dll , DevEncRfsPlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Pk5Recognizer.dll , Pk5Recognizer.dll ) 
@@ -3827,14 +3354,10 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  DevCertStore.DLL ,  DevCertStore.DLL ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  DevKeyStore.DLL ,  DevKeyStore.DLL ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  DevSrvCertStore.DLL ,  DevSrvCertStore.DLL ) 
-file=\epoc32\release\ARMV5\urel\diagframework.dll 	"sys\bin\diagframework.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  devdiaginternalmemoryplugin.dll ,  devdiaginternalmemoryplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\diagpluginbase.dll 	"sys\bin\diagpluginbase.dll"
 file=\epoc32\release\ARMV5\urel\diagresultsdatabase.dll 	"sys\bin\diagresultsdatabase.dll"
 file=\epoc32\release\ARMV5\urel\diagresultsdatabaseserver.exe 	"sys\bin\diagresultsdatabaseserver.exe"
 file=\epoc32\release\ARMV5\urel\directorylocalizer.dll 	"sys\bin\directorylocalizer.dll"
 file=\epoc32\release\ARMV5\urel\DisconnectDlgClient.DLL 	"sys\bin\DisconnectDlgClient.dll"
-file=\epoc32\release\ARMV5\urel\DisconnectDlg.dll 	"sys\bin\DisconnectDlg.dll"
 auto-bitmap=\epoc32\data\Z\resource\apps\DisconnectDlgUi.mbm 	resource\apps\DisconnectDlgUi.mbm
 data=\epoc32\data\Z\resource\apps\DisconnectDlgUi.mif 	"resource\apps\DisconnectDlgUi.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, displaysourceplugin.dll , displaysourceplugin.dll ) 
@@ -3843,42 +3366,29 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldmsipadapter.dll , nsmldmsipadapter.dll ) 
 file=\epoc32\release\ARMV5\urel\DMUtilServer.exe 	"sys\bin\DMUtilServer.exe" 
 file=\epoc32\release\ARMV5\urel\DMUtil.dll 	"sys\bin\DMUtil.dll"
-file=\epoc32\release\ARMV5\urel\HttpDMServEng.dll 	"sys\bin\HttpDMServEng.dll"
-file=\epoc32\release\ARMV5\urel\DownloadMgr.dll 	"sys\bin\DownloadMgr.dll"
-file=\epoc32\release\ARMV5\urel\DownloadMgrServer.exe 	"sys\bin\DownloadMgrServer.exe"
-file=\epoc32\release\ARMV5\urel\DownloadMgrUiLib.dll 	"sys\bin\DownloadMgrUiLib.dll"
-auto-bitmap=\epoc32\data\Z\resource\apps\DownloadMgrUiLib.mbm 	resource\apps\DownloadMgrUiLib.mbm
-data=\epoc32\data\Z\resource\apps\DownloadMgrUiLib.mif 	"resource\apps\DownloadMgrUiLib.mif"
 file=\epoc32\release\ARMV5\urel\DRMCOMMON.DLL 	"sys\bin\DRMCOMMON.DLL"
 data=\epoc32\data\Z\resource\DRMCOMMON.RSC 	"resource\DRMCOMMON.RSC"
 file=\epoc32\release\ARMV5\urel\DcfRep.dll 	"sys\bin\DcfRep.dll"
 file=\epoc32\release\ARMV5\urel\DcfRepSrv.EXE 	"sys\bin\DcfRepSrv.EXE"
 file=\epoc32\release\ARMV5\urel\DRMHELPERSERVER.EXE 	"sys\bin\DRMHELPERSERVER.EXE"
 file=\epoc32\release\ARMV5\urel\DrmKeyStorage.dll 	"sys\bin\DrmKeyStorage.dll"
-file=\epoc32\release\ARMV5\urel\DrmStdKeyStorage.dll 	"sys\bin\DrmStdKeyStorage.dll"
+file=\epoc32\release\ARMV5\urel\stem_DrmStdKeyStorage.dll 	"sys\bin\DrmStdKeyStorage.dll"
 file=\epoc32\release\ARMV5\urel\DrmCrypto.DLL 	"sys\bin\DrmCrypto.DLL"
 file=\epoc32\release\ARMV5\urel\DrmDcf.DLL 	"sys\bin\DrmDcf.DLL"
 file=\epoc32\release\ARMV5\urel\DrmRights.DLL 	"sys\bin\DrmRights.DLL"
 file=\epoc32\release\ARMV5\urel\DrmServerInterfaces.DLL 	"sys\bin\DrmServerInterfaces.DLL"
 file=\epoc32\release\ARMV5\urel\DrmParsers.DLL 	"sys\bin\DrmParsers.DLL"
-file=\epoc32\release\ARMV5\urel\RightsServer.EXE 	"sys\bin\RightsServer.EXE"
+file=\epoc32\release\ARMV5\urel\stem_RightsServer.EXE 	"sys\bin\RightsServer.EXE"
 file=\epoc32\release\ARMV5\urel\DrmServiceAPI.dll 	"sys\bin\DrmServiceAPI.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, RECDRM.DLL , RECDRM.DLL ) 
 data=\epoc32\data\Z\private\102073ea\excludes\101F51F2.exc 	"private\102073ea\excludes\101F51F2.exc"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, OmaDrmAgent.dll , OmaDrmAgent.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, DrmRel1_0StringDict00.dll , DrmRel1_0StringDict00.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, DrmRel2_1StringDict00.dll , DrmRel2_1StringDict00.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ROHANDLER.DLL , ROHANDLER.DLL ) 
-file=\epoc32\release\ARMV5\urel\RoapHandler.DLL 	"sys\bin\RoapHandler.DLL"
+file=\epoc32\release\ARMV5\urel\stem_RoapHandler.DLL 	"sys\bin\RoapHandler.DLL"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, HTTPFilterDRM.dll , HTTPFilterDRM.dll ) 
 data=\epoc32\data\Z\Private\101F51F2\backup_registration.xml 	"PRIVATE\101F51F2\backup_registration.xml"
 data=\epoc32\data\Z\System\Install\OmaDrm_Stub.SIS 	"system\install\OmaDrm_Stub.SIS"
-file=\epoc32\release\ARMV5\urel\DRMENCRYPTOR.exe 	"sys\bin\DRMENCRYPTOR.exe" 
-auto-bitmap=\epoc32\data\Z\resource\apps\DRMEncryptor.mbm 	resource\apps\DRMEncryptor.mbm
-data=\epoc32\data\Z\resource\apps\DRMEncryptor.mif 	"resource\apps\DRMEncryptor.mif"
-data=\epoc32\data\Z\resource\apps\DRMENCRYPTOR_AIF.MIF 	"resource\apps\DRMENCRYPTOR_aif.mif" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\DRMENCRYPTOR_reg.rsc 	"Private\10003a3f\apps\DRMENCRYPTOR_reg.rsc" 
-data=\epoc32\data\Z\resource\apps\drmencryptor.rsc 	"resource\apps\drmencryptor.rsc"
 file=\epoc32\release\ARMV5\urel\DRMHelper.dll 	"sys\bin\DRMHelper.dll"
 file=\epoc32\release\ARMV5\urel\DRMLicenseManager.DLL 	"sys\bin\DRMLicenseManager.DLL"
 file=\epoc32\release\ARMV5\urel\DRMLicenseChecker.DLL 	"sys\bin\DRMLicenseChecker.DLL"
@@ -3895,7 +3405,6 @@
 file=\epoc32\release\ARMV5\urel\DRMUtility.dll 	"sys\bin\DRMUtility.dll"
 file=\epoc32\release\ARMV5\urel\drmutilitycommon.dll 	"sys\bin\drmutilitycommon.dll"
 file=\epoc32\release\ARMV5\urel\drmutilitywmdrmwrapper.dll 	"sys\bin\drmutilitywmdrmwrapper.dll"
-file=\epoc32\release\ARMV5\urel\DrmUtilityDmgrWrapper.dll 	"sys\bin\DrmUtilityDmgrWrapper.dll"
 file=\epoc32\release\ARMV5\urel\DrmRightsInfo.dll 	"sys\bin\DrmRightsInfo.dll"
 file=\epoc32\release\ARMV5\urel\DrmRightsInfoImpl.dll 	"sys\bin\DrmRightsInfoImpl.dll"
 file=\epoc32\release\ARMV5\urel\DRMUiHandling.dll 	"sys\bin\DRMUiHandling.dll"
@@ -3904,19 +3413,12 @@
 file=\epoc32\release\ARMV5\urel\DRMAutomatedUsageImpl.dll 	"sys\bin\DRMAutomatedUsageImpl.dll"
 file=\epoc32\release\ARMV5\urel\dunatext.dll 	"sys\bin\dunatext.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, dunclient.dll , dunclient.dll ) 
-file=\epoc32\release\ARMV5\urel\dunir.dll 	"sys\bin\dunir.dll"
-file=\epoc32\release\ARMV5\urel\dunserver.exe 	"sys\bin\dunserver.exe"
-file=\epoc32\release\ARMV5\urel\dunusb.dll 	"sys\bin\dunusb.dll"
-file=\epoc32\release\ARMV5\urel\dunutils.dll 	"sys\bin\dunutils.dll"
 file=\epoc32\release\ARMV5\urel\eapol.dll 	"sys\bin\Eapol.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  eapsim.dll ,  eapsim.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  eapaka.dll ,  eapaka.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  eapmschapv2.dll ,  eapmschapv2.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  eaptlspeap.dll ,  eaptlspeap.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  eapsecurid.dll ,  eapsecurid.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, eapvpnif.dll , eapvpnif.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wlaneapolif.dll , wlaneapolif.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  eapprotectedsetup.dll ,  eapprotectedsetup.dll ) 
 data=\epoc32\data\Z\Private\100012A5\policy\102072e9.spd 	"private\100012A5\policy\102072e9.spd"
 data=\epoc32\data\Z\Private\101F8EC5\backup_registration_eapol.xml 	"private\101F8EC5\backup_registration_eapol.xml"
 data=\epoc32\data\Z\Private\101F8EC5\eap.conf 	"private\101F8EC5\eap.conf"
@@ -3926,25 +3428,14 @@
 file=\epoc32\release\ARMV5\urel\eikdlg.dll 	"sys\bin\eikdlg.dll"
 file=\epoc32\release\ARMV5\urel\eikcdlg.dll 	"sys\bin\eikcdlg.dll"
 data=\epoc32\data\Z\Resource\eikcdlg.rsc 	"resource\eikcdlg.rsc"
-file=\epoc32\release\ARMV5\urel\eiksrvui.dll 	"sys\bin\eiksrvui.dll"
+file=\epoc32\release\ARMV5\urel\stem_eiksrvui.dll 	"sys\bin\eiksrvui.dll"
 file=\epoc32\release\ARMV5\urel\eikalert.dll 	"sys\bin\eikalert.dll"
 file=\epoc32\release\ARMV5\urel\econseik.dll 	"sys\bin\econs.dll" uid3=0x100039e7
-file=\epoc32\release\ARMV5\urel\MMDataSourceFactory.dll 	"sys\bin\MMDataSourceFactory.dll"
-file=\epoc32\release\ARMV5\urel\StreamControlCustomCommands.dll 	"sys\bin\StreamControlCustomCommands.dll"
-file=\epoc32\release\ARMV5\urel\CacheSource.dll 	"sys\bin\CacheSource.dll"
 file=\epoc32\release\ARMV5\urel\DataSourceConfigIntfc.dll 	"sys\bin\DataSourceConfigIntfc.dll"
-file=\epoc32\release\ARMV5\urel\EnhancedMediaClient.dll 	"sys\bin\EnhancedMediaClient.dll"
 file=\epoc32\release\ARMV5\urel\TransferRateMonitor.dll 	"sys\bin\TransferRateMonitor.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ProgDLSource.dll , ProgDLSource.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, DataBufferSource.DLL , DataBufferSource.DLL ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, FileSource.DLL , FileSource.DLL ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, DescriptorDataSource.DLL , DescriptorDataSource.DLL ) 
 data=\epoc32\data\Z\System\install\WMA_AudCon_stub.sis 	"System\Install\WMA_AudCon_stub.sis"
 data=\epoc32\data\Z\System\install\EnhancedMediaClient_Stub.SIS 	"System\Install\EnhancedMediaClient_Stub.SIS"
-file=\epoc32\release\ARMV5\urel\DOSENPOLICY.DLL 	"sys\bin\DOSENPOLICY.DLL"
 data=\epoc32\data\Z\System\install\DosEnPolicy_stub.sis 	"system\install\DosEnPolicy_stub.sis"
-data=\epoc32\data\Z\resource\apps\Equalizer.mif 	"resource\apps\Equalizer.mif"
-file=\epoc32\release\ARMV5\urel\Equalizer.dll 	"sys\bin\Equalizer.dll"
 file=\epoc32\release\ARMV5\urel\extendedconnpref.dll 	"sys\bin\extendedconnpref.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, extendedconnprefecom.dll , extendedconnprefecom.dll ) 
 REM Favourites Engine
@@ -3953,7 +3444,6 @@
 data=\epoc32\data\Z\private\100012a5\policy\101FD685.SPD 	"private\100012a5\policy\101FD685.SPD"	
 data=\epoc32\data\Z\private\10008d38\backup_registration.xml 	"private\10008d38\backup_registration.xml"
 data=\epoc32\data\Z\private\10008d38\BookmarkImportSample.txt 	"data\BookmarkImportSample.txt"
-file=\epoc32\release\ARMV5\urel\FeedsServer.exe 	"sys\bin\FeedsServer.exe" 
 file=\epoc32\release\ARMV5\urel\FeedsServerApi.dll 	"sys\bin\FeedsServerApi.dll"
 file=\epoc32\release\ARMV5\urel\FeedsServerClient.dll 	"sys\bin\FeedsServerClient.dll"
 data=\epoc32\data\z\private\1020728E\default_feeds.xml 	"private\1020728E\default_feeds.xml"
@@ -3969,7 +3459,6 @@
 file=\epoc32\release\ARMV5\urel\fotaengine.dll 	"sys\bin\fotaengine.dll"
 file=\epoc32\release\ARMV5\urel\FMSClient.dll 	"sys\bin\FMSClient.dll"
 file=\epoc32\release\ARMV5\urel\fotaschedulehandler.exe 	"sys\bin\fotaschedulehandler.exe"
-file=\epoc32\release\ARMV5\urel\FMSServer.exe 	"sys\bin\FMSServer.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, fotadiskstorage.dll , fotadiskstorage.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, RfsFotaPlugin.dll , RfsFotaPlugin.dll ) 
 file=\epoc32\release\ARMV5\urel\fotacustcmds.dll 	"sys\bin\fotacustcmds.dll"
@@ -3980,13 +3469,11 @@
 FILE=\epoc32\release\ARMV5\urel\gba2.dll 	"sys\bin\gba2.dll"
 FILE=\epoc32\release\ARMV5\urel\gbaserver2.exe 	"sys\bin\gbaserver2.exe"
 data=\epoc32\data\Z\System\install\gba_stub.sis 	"System\Install\gba_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  gbauicc2.dll ,  gbauicc2.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  httpfiltergba2.dll ,  httpfiltergba2.dll ) 
 file=\epoc32\release\ARMV5\urel\generichid.dll 	"sys\bin\generichid.dll"
 file=\epoc32\release\ARMV5\urel\gesturehelper.dll 	"sys\bin\gesturehelper.dll"
 file=\epoc32\release\ARMV5\urel\goommonitor.dll 	"sys\bin\goommonitor.dll"
 data=\epoc32\data\Z\System\..\private\10207218\goomconfig.xml 	"private\10207218\goomconfig.xml"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  gsaccessoryplugin.dll ,  gsaccessoryplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\gsaccplugin.mif 	"resource\apps\gsaccplugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSAdminPlugin.dll ,  GSAdminPlugin.dll ) 
 data=\epoc32\data\Z\resource\apps\GSAdminPlugin.mif 	"resource\apps\GSAdminPlugin.mif"
@@ -3999,7 +3486,6 @@
 data=\epoc32\data\Z\private\100058EC\backup_registration.xml 	"private\100058EC\backup_registration.xml"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSAppsPlugin.dll ,  GSAppsPlugin.dll ) 
 data=\epoc32\data\Z\resource\apps\GSAppsPlugin.mif 	"resource\apps\GSAppsPlugin.mif"
-file=\epoc32\release\ARMV5\urel\BackgroundImage.dll 	"sys\bin\BackgroundImage.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  gsconnsettingsplugin.dll ,  gsconnsettingsplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\gsconnsettingsplugin.mif 	"resource\apps\gsconnsettingsplugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSConPlugin.dll ,  GSConPlugin.dll ) 
@@ -4008,8 +3494,6 @@
 data=\epoc32\data\Z\resource\apps\GSDataCallPlugin.mif 	"resource\apps\GSDataCallPlugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSDeviceManagementPlugin.dll ,  GSDeviceManagementPlugin.dll ) 
 data=\epoc32\data\Z\resource\apps\GSDeviceManagementPlugin.mif 	"resource\apps\GSDeviceManagementPlugin.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSDisplayPlugin.dll ,  GSDisplayPlugin.dll ) 
-data=\epoc32\data\Z\resource\apps\GSDisplayplugin.mif 	"resource\apps\GSDisplayplugin.mif"
 data=\epoc32\data\Z\Private\2000B187\2000B591.xml 	"private\2000B187\2000B591.xml"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSGenPlugin.dll ,  GSGenPlugin.dll ) 
 data=\epoc32\data\Z\resource\apps\GSGenPlugin.mif 	"resource\apps\GSGenPlugin.mif"
@@ -4023,9 +3507,6 @@
 data=\epoc32\data\Z\Private\2000B187\2000B593.xml 	"private\2000B187\2000B593.xml"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSOpticalJoystickPlugin.dll ,  GSOpticalJoystickPlugin.dll ) 
 data=\epoc32\data\Z\resource\apps\GSOpticalJoystickPlugin.mif 	"resource\apps\GSOpticalJoystickPlugin.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSPDataAccessPointPlugin.dll ,  GSPDataAccessPointPlugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSPDataConnectionPlugin.dll ,  GSPDataConnectionPlugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSPDataHSDPAPlugin.dll ,  GSPDataHSDPAPlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSPDataPlugin.dll ,  GSPDataPlugin.dll ) 
 data=\epoc32\data\Z\resource\apps\GSPDataPlugin.mif 	"resource\apps\GSPDataPlugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSPowerSavingQueryPlugin.dll ,  GSPowerSavingQueryPlugin.dll ) 
@@ -4035,7 +3516,6 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, gssensorplugin.dll , gssensorplugin.dll ) 
 data=\epoc32\data\Z\resource\apps\gssenplugin.mif 	"resource\apps\gssenplugin.mif"
 file=\epoc32\release\ARMV5\urel\GSServerEngine.dll 	"sys\bin\GSServerEngine.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSSimSecPlugin.dll ,  GSSimSecPlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSSIPSettingsPlugin.dll ,  GSSIPSettingsPlugin.dll ) 
 data=\epoc32\data\Z\resource\apps\GSSIPSettingsPlugin.mif 	"resource\apps\GSSIPSettingsPlugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GSSynchronisationPlugin.dll ,  GSSynchronisationPlugin.dll ) 
@@ -4045,7 +3525,6 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, GSXDMPlugin.dll , GSXDMPlugin.dll )   
 data=\epoc32\data\Z\resource\apps\GSXDMplugin.mif 	"resource\apps\GSXDMplugin.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, hapticsconnplugin.dll , hapticsconnplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, hidheadset.dll , hidheadset.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, hidremconbearer.dll , hidremconbearer.dll ) 
 file=\epoc32\release\ARMV5\urel\hotspotclient.dll 	"sys\bin\hotspotclient.dll"
 file=\epoc32\release\ARMV5\urel\ictsclientinterface.dll 	"sys\bin\ictsclientinterface.dll"
@@ -4076,15 +3555,12 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, HttpFilterAcceptHeader.dll , HttpFilterAcceptHeader.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, httpfilterauthentication.dll , httpfilterauthentication.dll ) 
 file=\epoc32\release\ARMV5\urel\httpfiltercommon.dll 	"sys\bin\httpfiltercommon.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, httpfilterconnhandler.dll , httpfilterconnhandler.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, httpfilterIop.dll , httpfilterIop.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, httpfilterproxy.dll , httpfilterproxy.dll ) 
 file=\epoc32\release\ARMV5\urel\iaupdatetools.dll 	"sys\bin\iaupdatetools.dll"
 file=\epoc32\release\ARMV5\urel\iaupdateapi.dll 	"sys\bin\iaupdateapi.dll"
-file=\epoc32\release\ARMV5\urel\iaupdateengine.dll 	"sys\bin\iaupdateengine.dll"
 file=\epoc32\release\ARMV5\urel\iaupdaterfiles.dll 	"sys\bin\iaupdaterfiles.dll"
 file=\epoc32\release\ARMV5\urel\iaupdatebg.exe 	"sys\bin\iaupdatebg.exe" 
-file=\epoc32\release\ARMV5\urel\iaupdatefwupdate.dll 	"sys\bin\iaupdatefwupdate.dll"
 data=\epoc32\data\Z\Private\2000F85A\iaupdateengineconfig_testing.xml 	"PRIVATE\2000F85A\iaupdateengineconfig.xml"
 data=\epoc32\data\Z\Private\2000F85A\backup_registration.xml 	"PRIVATE\2000F85A\backup_registration.xml"
 data=\epoc32\data\Z\System\install\iaupdate_stub.sis 	"system\install\iaupdate_stub.sis"
@@ -4099,7 +3575,6 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SenIDWSFplugin.dll , SenIDWSFplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SenIdWsfSecMech.dll , SenIdWsfSecMech.dll ) 
 file=\epoc32\release\ARMV5\urel\Ihl.dll 	"sys\bin\Ihl.dll"
-file=\epoc32\release\ARMV5\urel\EngineWrapper.dll 	"sys\bin\ENgineWrapper.dll"
 file=\epoc32\release\ARMV5\urel\FilterBrightness.dll 	"sys\bin\FilterBrightness.dll"
 file=\epoc32\release\ARMV5\urel\FilterBubble.dll 	"sys\bin\FilterBubble.dll"
 file=\epoc32\release\ARMV5\urel\FilterBuffer.dll 	"sys\bin\FilterBuffer.dll"
@@ -4120,7 +3595,6 @@
 file=\epoc32\release\ARMV5\urel\FilterSharpness.dll 	"sys\bin\FilterSharpness.dll"
 file=\epoc32\release\ARMV5\urel\FilterText.dll 	"sys\bin\FilterText.dll"
 file=\epoc32\release\ARMV5\urel\SystemParameters.dll 	"sys\bin\SystemParameters.dll"
-file=\epoc32\release\ARMV5\urel\ImageEditorUtils.dll 	"sys\bin\ImageEditorUtils.dll"
 file=\epoc32\release\ARMV5\urel\IMAGINGCONFIGMANAGER.DLL 	"sys\bin\IMAGINGCONFIGMANAGER.DLL"
 file=\epoc32\release\ARMV5\urel\immanager.dll 	"sys\bin\immanager.dll"
 file=\epoc32\release\ARMV5\urel\imdatamodel.dll 	"sys\bin\imdatamodel.dll"
@@ -4141,8 +3615,6 @@
 file=\epoc32\release\ARMV5\urel\KeyPublisherPlugin.dll 	"sys\bin\KeyPublisherPlugin.dll"
 REM LBS Query And Notification Api
 file=\epoc32\release\ARMV5\urel\eposprvqnif.dll 	"sys\bin\eposprvqnif.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, LBTContextSourcePlugIn.dll , LBTContextSourcePlugIn.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, lbtmgmtplugin.dll , lbtmgmtplugin.dll ) 
 data=\epoc32\data\Z\System\install\lbtmgmtuistub.sis 	"system\install\lbtmgmtuistub.sis"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  lccustomplugin.dll ,  lccustomplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, lcstylustap.dll , lcstylustap.dll ) 
@@ -4172,30 +3644,21 @@
 file=\epoc32\release\ARMV5\urel\mnservicelib.dll 	"sys\bin\mnservicelib.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mnaiwprovider.dll , mnaiwprovider.dll ) 
 data=\epoc32\data\Z\System\install\locationmnfwstub.sis 	"system\install\locationmnfwstub.sis"
-file=\epoc32\release\ARMV5\urel\epos_suplterminitiation.dll 	"sys\bin\epos_suplterminitiation.dll"
 file=\epoc32\release\ARMV5\urel\epos_suplnetinitiation.dll 	"sys\bin\epos_suplnetinitiation.dll"
-file=\epoc32\release\ARMV5\urel\epossuplgateway.exe 	"sys\bin\epossuplgateway.exe"
 data=\epoc32\data\Z\private\102073CA\backup_registration.xml 	"private\102073CA\backup_registration.xml"
 file=\epoc32\release\ARMV5\urel\epossuplprotocolhandlerplugin.dll 	"sys\bin\epossuplprotocolhandlerplugin.dll"
-file=\epoc32\release\ARMV5\urel\epos_suplsettings.dll 	"sys\bin\epos_suplsettings.dll"
 file=\epoc32\release\ARMV5\urel\epos_csuplutils.dll 	"sys\bin\epos_csuplutils.dll"
 data=\epoc32\data\Z\System\install\locationsuplfwstub.sis 	"system\install\locationsuplfwstub.sis"
 data=\epoc32\data\Z\System\install\locationsysuistub.sis 	"system\install\locationsysuistub.sis"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, locsysuiview.dll , locsysuiview.dll ) 
 data=\epoc32\data\Z\resource\apps\locsysuiview.mif 	"resource\apps\locsysuiview.mif"
 file=\epoc32\release\ARMV5\urel\locsysuiengine.dll 	"sys\bin\locsysuiengine.dll"
-file=\epoc32\release\ARMV5\urel\lbt.dll 	"sys\bin\lbt.dll"
 file=\epoc32\release\ARMV5\urel\lbtlogger.dll 	"sys\bin\lbtlogger.dll"
 file=\epoc32\release\ARMV5\urel\lbtserverlogicbase.dll 	"sys\bin\lbtserverlogicbase.dll"
 file=\epoc32\release\ARMV5\urel\lbtserver.exe 	"sys\bin\lbtserver.exe"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  lbtserverlogic.dll ,  lbtserverlogic.dll ) 
 file=\epoc32\release\ARMV5\urel\lbtstrategypluginapi.dll 	"sys\bin\lbtstrategypluginapi.dll"
-file=\epoc32\release\ARMV5\urel\lbtcontainer.dll 	"sys\bin\lbtcontainer.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  lbtstrategy.dll ,  lbtstrategy.dll ) 
 file=\epoc32\release\ARMV5\urel\ltmvmtdetapi.dll 	"sys\bin\ltmvmtdetapi.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ltcellidmovdet.dll ,  ltcellidmovdet.dll ) 
 data=\epoc32\data\Z\private\1028312B\backup_registration.xml 	"private\1028312B\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\lbtmanager.dll 	"sys\bin\lbtmanager.dll"
 data=\epoc32\data\Z\System\install\lbtstub.sis 	"system\install\lbtstub.sis"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  locbtnotifier.dll ,  locbtnotifier.dll ) 
 data=\epoc32\data\Z\private\10282BC4\Rules\locbtgpspsypscontextstate.rul 	"private\10282BC4\Rules\locbtgpspsypscontextstate.rul"
@@ -4213,31 +3676,18 @@
 data=\epoc32\data\Z\resource\apps\locsettingsuiserver_AIF.MIF 	"resource\apps\locsettingsuiserver_aif.mif" 
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\locsettingsuiserver_reg.rsc 	"Private\10003a3f\import\apps\locsettingsuiserver_reg.rsc" 
 data=\epoc32\data\Z\private\10281861\backup_registration.xml 	"private\10281861\backup_registration.xml"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, locsuplsettings.dll , locsuplsettings.dll ) 
-data=\epoc32\data\Z\resource\apps\locsuplsettings.mif 	"resource\apps\locsuplsettings.mif"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, locnotifierwrapper.dll , locnotifierwrapper.dll ) 
-file=\epoc32\release\ARMV5\urel\locverifierdlg.dll 	"sys\bin\locverifierdlg.dll"
 file=\epoc32\release\ARMV5\urel\locutils.dll 	"sys\bin\locutils.dll"
 data=\epoc32\data\Z\RESOURCE\locutils.rsc 	"resource\locutils.rsc"       
 file=\epoc32\release\ARMV5\urel\mcsmenuutils.dll 	"sys\bin\mcsmenuutils.dll"
 file=\epoc32\release\ARMV5\urel\mcsmenueng.dll 	"sys\bin\mcsmenueng.dll"
-file=\epoc32\release\ARMV5\urel\mcsmenu.dll 	"sys\bin\mcsmenu.dll"
-file=\epoc32\release\ARMV5\urel\mcsmenuserver.exe 	"sys\bin\mcsmenuserver.exe"
-file=\epoc32\release\ARMV5\urel\mcsextendedmenu.dll 	"sys\bin\mcsextendedmenu.dll"
 file=\epoc32\release\ARMV5\urel\mcssathandler.dll 	"sys\bin\mcssathandler.dll"
 file=\epoc32\release\ARMV5\urel\menuinterface.dll 	"sys\bin\menuinterface.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mcsmenuhandler.dll ,  mcsmenuhandler.dll )  
 data=\epoc32\data\Z\Private\200113dd\backup_registration.xml 	"PRIVATE\200113dd\backup_registration.xml"
 data=\epoc32\data\Z\resource\apps\aimcsplugin.mif 	"resource\apps\aimcsplugin.mif"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mcsplugin.dll , mcsplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mcspluginhandler.dll , mcspluginhandler.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mcspluginsettings.dll , mcspluginsettings.dll ) 
-file=\epoc32\release\ARMV5\urel\mcsservice.dll 	"sys\bin\mcsservice.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mcsprovider.dll ,  mcsprovider.dll ) 
 rem - MdE binaries
 file=\epoc32\release\ARMV5\urel\mdeclient.dll 	"sys\bin\mdeclient.dll"
 file=\epoc32\release\ARMV5\urel\mdccommon.dll 	"sys\bin\mdccommon.dll"
-file=\epoc32\release\ARMV5\urel\!mdsserver.exe 	"sys\bin\!mdsserver.exe"
 rem - MdE data files
 data=\epoc32\data\z\Private\200009F3\schema.mde 	"PRIVATE\200009F3\schema.mde"
 data=\epoc32\data\z\Private\200009F3\defaultimportfile.mde 	"PRIVATE\200009F3\defaultimportfile.mde"
@@ -4251,9 +3701,7 @@
 file=\epoc32\release\ARMV5\urel\harvestercommon.dll 	"sys\bin\harvestercommon.dll"
 file=\epoc32\release\ARMV5\urel\harvesterdata.dll 	"sys\bin\harvesterdata.dll"
 file=\epoc32\release\ARMV5\urel\mdsfileserverplugin.pxt 	"sys\bin\mdsfileserverplugin.pxt"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, HarvesterImagePlugin.dll , HarvesterImagePlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, HarvesterVideoPlugin.dll , HarvesterVideoPlugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, HarvesterMessagePlugin.dll , HarvesterMessagePlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, harvesteromadrmplugin.dll , harvesteromadrmplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, harvesterwmvplugin.dll , harvesterwmvplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, harvesterrtpplugin.dll , harvesterrtpplugin.dll ) 
@@ -4268,18 +3716,15 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mdsoomplugin.dll , mdsoomplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\ContextPluginInterface.dll 	"sys\bin\ContextPluginInterface.dll"
 file=\epoc32\release\ARMV5\urel\ContextEngine.dll 	"sys\bin\ContextEngine.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, locationcontextplugin.dll , locationcontextplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, calendarcontextplugin.dll , calendarcontextplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\ComposerPluginInterface.dll 	"sys\bin\ComposerPluginInterface.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ComposerImagePlugin.dll , ComposerImagePlugin.dll ) 
 REM locationmanager
 file=\epoc32\release\ARMV5\urel\locationmanager.dll 	"sys\bin\locationmanager.dll"
 REM locationmanagerserver
-file=\epoc32\release\ARMV5\urel\locationmanagerserver.exe 	"sys\bin\locationmanagerserver.exe"
 REM watchdog
 file=\epoc32\release\ARMV5\urel\mdswatchdog.exe 	"sys\bin\mdswatchdog.exe"
 REM locationtrail
-file=\epoc32\release\ARMV5\urel\locationtrail.dll 	"sys\bin\locationtrail.dll"
 REM ReverseGeocode
 file=\epoc32\release\ARMV5\urel\ReverseGeocode.dll 	"sys\bin\ReverseGeocode.dll"
 REM Reverse geocoder plugin
@@ -4287,7 +3732,6 @@
 REM tagcreator
 file=\epoc32\release\ARMV5\urel\tagcreator.dll 	"sys\bin\tagcreator.dll"
 REM geotagger
-file=\epoc32\release\ARMV5\urel\geotagger.dll 	"sys\bin\geotagger.dll"
 REM geoconverter
 file=\epoc32\release\ARMV5\urel\geoconverter.dll 	"sys\bin\geoconverter.dll"
 REM Location Manager data files
@@ -4318,25 +3762,17 @@
 REM MISSING data=\epoc32\data\Z\System\install\geotagger_stub.sis       system\install\geotagger_stub.sis
 REM MISSING data=\epoc32\data\Z\System\install\geoconverter_stub.sis       system\install\geoconverter_stub.sis
 file=\epoc32\release\ARMV5\urel\MGFetch.dll 	"sys\bin\MGFetch.dll"
-file=\epoc32\release\ARMV5\urel\MediaFileList.dll 	"sys\bin\MediaFileList.dll"
-data=\epoc32\data\Z\resource\apps\mediafilelist.mif 	"resource\apps\mediafilelist.mif"
 file=\epoc32\release\ARMV5\urel\MetaDataUtility.dll 	"sys\bin\MetaDataUtility.dll"
 file=\epoc32\release\ARMV5\urel\3GPExtParser.dll 	"sys\bin\3GPExtParser.dll"
 data=\epoc32\data\Z\Resource\TopCharacterSet.rsc 	"resource\TopCharacterSet.rsc"
 data=\epoc32\data\Z\System\install\metadata_stub.sis 	"System\Install\metadata_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmfaudiotonecontroller.dll , mmfaudiotonecontroller.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, recrt.dll , recrt.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, MMKeyBearer.dll , MMKeyBearer.dll ) 
 data=\epoc32\data\Z\System\install\mmmtpdpstub.sis 	"System\install\mmmtpdpstub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mediamtpdataprovider.dll , mediamtpdataprovider.dll ) 
 data=\epoc32\data\Z\resource\mtp\10207C4B.rsc 	"resource\mtp\10207C4B.rsc" 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, abstractmediamtpdataprovider.dll , abstractmediamtpdataprovider.dll ) 
 data=\epoc32\data\Z\resource\mtp\10207C53.rsc 	"resource\mtp\10207C53.rsc" 
-file=\epoc32\release\ARMV5\urel\mmmtpdprequestprocessor.dll 	"sys\bin\mmmtpdprequestprocessor.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  modematplugin.dll ,  modematplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\mpm.dll 	"sys\bin\mpm.dll"
 file=\epoc32\release\ARMV5\urel\mpmdefaultconnection.dll 	"sys\bin\mpmdefaultconnection.dll"
-file=\epoc32\release\ARMV5\urel\mpmserver.exe 	"sys\bin\mpmserver.exe"
 REM Media Player Settings Engine
 data=\epoc32\data\Z\System\install\mpsetteng_stub.sis 	"system\install\mpsetteng_stub.sis"
 file=\epoc32\release\ARMV5\urel\MPSettEngine.dll 	"sys\bin\MPSettEngine.dll"
@@ -4345,14 +3781,10 @@
 file=\epoc32\release\ARMV5\urel\mpxcollectionutility.dll 	"sys\bin\mpxcollectionutility.dll"
 file=\epoc32\release\ARMV5\urel\mpxcollectionserver.exe 	"sys\bin\mpxcollectionserver.exe"
 file=\epoc32\release\ARMV5\urel\mpxcollectionengine.dll 	"sys\bin\mpxcollectionengine.dll"
-file=\epoc32\release\ARMV5\urel\mpxcollectionhelper.dll 	"sys\bin\mpxcollectionhelper.dll"
 file=\epoc32\release\ARMV5\urel\mpxcommon.dll 	"sys\bin\mpxcommon.dll"
 data=\epoc32\data\Z\Private\101ffc02\backup_registration.xml 	"private\101ffc02\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\mpxharvesterserver.exe 	"sys\bin\mpxharvesterserver.exe"
-file=\epoc32\release\ARMV5\urel\mpxfilehandler.dll 	"sys\bin\mpxfilehandler.dll"
 file=\epoc32\release\ARMV5\urel\mpxharvesterutility.dll 	"sys\bin\mpxharvesterutility.dll"
 file=\epoc32\release\ARMV5\urel\mpxcollectionmediator.dll 	"sys\bin\mpxcollectionmediator.dll"
-file=\epoc32\release\ARMV5\urel\mpxmetadataextractor.dll 	"sys\bin\mpxmetadataextractor.dll" 
 file=\epoc32\release\ARMV5\urel\mpxplaybackengine.dll 	"sys\bin\mpxplaybackengine.dll"
 file=\epoc32\release\ARMV5\urel\mpxplaybackserver.exe 	"sys\bin\mpxplaybackserver.exe"
 file=\epoc32\release\ARMV5\urel\mpxplaybackutility.dll 	"sys\bin\mpxplaybackutility.dll"
@@ -4387,27 +3819,8 @@
 file=\epoc32\release\armv5\urel\muldatamodel.dll 	"sys\bin\muldatamodel.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  mulsliderwidget.dll ,  mulsliderwidget.dll ) 
 data=\epoc32\data\Z\resource\apps\mulsliderwidget.mif 	"resource\apps\mulsliderwidget.mif"
-file=\epoc32\release\ARMV5\urel\mmccinterface.dll 	"sys\bin\mmccinterface.dll"
-file=\epoc32\release\ARMV5\urel\mmccjitterbuffer.dll 	"sys\bin\mmccjitterbuffer.dll"
 file=\epoc32\release\ARMV5\urel\mmccqoscontroller.dll 	"sys\bin\mmccqoscontroller.dll"
-file=\epoc32\release\ARMV5\urel\mmccmultiplexer.dll 	"sys\bin\mmccmultiplexer.dll"
-file=\epoc32\release\ARMV5\urel\mmccsubcontroller.dll 	"sys\bin\mmccsubcontroller.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmcccontroller.dll , mmcccontroller.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccrtpsourcesink.dll , mmccrtpsourcesink.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccamrplformat.dll , mmccamrplformat.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccg711plformat.dll , mmccg711plformat.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccredplformat.dll , mmccredplformat.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccg729plformat.dll , mmccg729plformat.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccilbcplformat.dll , mmccilbcplformat.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccdtmfplformat.dll , mmccdtmfplformat.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccanyplformat.dll , mmccanyplformat.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmcch263plformat.dll , mmcch263plformat.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccavcplformat.dll , mmccavcplformat.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccfilesourcesink.dll , mmccfilesourcesink.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccvideosourcesink.dll , mmccvideosourcesink.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mmccanysourcesink.dll , mmccanysourcesink.dll ) 
 data=\epoc32\data\Z\System\install\multimediacommscontroller_stub.sis 	"System\Install\multimediacommscontroller_stub.sis"
-file=\epoc32\release\ARMV5\urel\mceserver.exe 	"sys\bin\mceserver.exe"
 file=\epoc32\release\ARMV5\urel\mceclient.dll 	"sys\bin\mceclient.dll"
 file=\epoc32\release\ARMV5\urel\fcpluginengine.dll 	"sys\bin\fcpluginengine.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, fctbcp.dll , fctbcp.dll ) 
@@ -4429,17 +3842,12 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, NATTraversalController.dll , NATTraversalController.dll ) 
 data=\epoc32\data\Z\System\Install\altair-engine-stub.sis 	"System\Install\altair-engine-stub.sis"
 file=\epoc32\release\ARMV5\urel\ncdengine_20019119.dll 	"sys\bin\ncdengine_20019119.dll"
-file=\epoc32\release\ARMV5\urel\ncdserver_20019119.exe 	"sys\bin\ncdserver_20019119.exe"
 file=\epoc32\release\ARMV5\urel\ncdutils_20019119.dll 	"sys\bin\ncdutils_20019119.dll"
-file=\epoc32\release\ARMV5\urel\ncddevicemgmt_20019119.dll 	"sys\bin\ncddevicemgmt_20019119.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ncdproxy_20019119.dll , ncdproxy_20019119.dll ) 
 data=\epoc32\data\Z\Private\20019119\backup_registration.xml 	"PRIVATE\20019119\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\NETWORKHANDLING.DLL 	"sys\bin\NETWORKHANDLING.DLL"
 REM Enabler for exlipsing ROM binaries
 data=\epoc32\data\Z\System\install\networkhandling_stub.sis 	"system\install\networkhandling_stub.sis"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nlanpppsy.dll , nlanpppsy.dll ) 
 data=\epoc32\data\Z\System\install\npppsystub.sis 	"system\install\npppsystub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nlasuplpsy.dll , nlasuplpsy.dll ) 
 data=\epoc32\data\Z\System\install\suplpsystub.sis 	"system\install\suplpsystub.sis"
 REM SyncML Common modules
 REM \common\inc\policy
@@ -4487,8 +3895,6 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldmstreamingadapter.dll , nsmldmstreamingadapter.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldmbrowseradapter.dll , nsmldmbrowseradapter.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldssettingsadapter.dll , nsmldssettingsadapter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldmemailadapter.dll , nsmldmemailadapter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldmmmsadapter.dll , nsmldmmmsadapter.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldmfotaadapter.dll , nsmldmfotaadapter.dll ) 
 data=\epoc32\release\ARMV5\urel\z\private\100012a5\policy\101F9A02.SPD 	"private\100012a5\policy\101F9A02.SPD"
 REM DM utils
@@ -4509,7 +3915,6 @@
 file=\epoc32\release\ARMV5\urel\nsmldmhostserver2.exe 	"sys\bin\nsmldmhostserver2.exe"
 file=\epoc32\release\ARMV5\urel\nsmldmhostserver3.exe 	"sys\bin\nsmldmhostserver3.exe"
 file=\epoc32\release\ARMV5\urel\nsmldmhostserver4.exe 	"sys\bin\nsmldmhostserver4.exe"
-file=\epoc32\release\ARMV5\urel\dmnetworkmon.exe 	"sys\bin\dmnetworkmon.exe"
 REM Tree module
 file=\epoc32\release\ARMV5\urel\nsmldmmodule.dll 	"sys\bin\nsmldmmodule.dll"
 REM Sync Agent
@@ -4520,7 +3925,6 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  nsmldmbmadapter.dll ,  nsmldmbmadapter.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wlanctrldcmoadapter.dll , wlanctrldcmoadapter.dll ) 
 REM DM OMA provisioning 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wpdm.dll , wpdm.dll ) 
 REM SyncML Data Synchronisation
 REM Sync settings OTA configuration disabled
 REM data=\epoc32\data\Z\resource\messaging\bif\nsmlsp_sms_no.rsc				resource\messaging\bif\nsmlsp_sms_no.rsc
@@ -4528,7 +3932,6 @@
 data=\epoc32\release\ARMV5\urel\z\private\100012a5\policy\101F99FD.SPD 	"private\100012a5\policy\101F99FD.SPD"
 data=\epoc32\release\ARMV5\urel\z\private\100012a5\policy\101F99FE.SPD 	"private\100012a5\policy\101F99FE.SPD"
 REM SyncML  Data Synchronisation plug-in adapters
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmlagendadataprovider.dll , nsmlagendadataprovider.dll ) 
 data=\epoc32\data\Z\resource\NSmlAgendaDataStore_1_1_2.rsc 	"resource\NSmlAgendaDataStore_1_1_2.rsc"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmlcontactsdataprovider.dll , nsmlcontactsdataprovider.dll ) 
 data=\epoc32\data\Z\resource\NSmlContactsDataStoreFormat_1_1_2.rsc 	"resource\NSmlContactsDataStoreFormat_1_1_2.rsc"
@@ -4543,7 +3946,6 @@
 REM \ds\dshostclient
 REM \ds\dshostserverbase
 REM \ds\dshostservers
-file=\epoc32\release\ARMV5\urel\netmon.exe 	"sys\bin\netmon.exe"
 data=\epoc32\data\Z\private\101F99FD\backup_registration.xml 	"private\101F99FD\backup_registration.xml"
 data=\epoc32\data\Z\private\101F99FE\backup_registration.xml 	"private\101F99FE\backup_registration.xml"
 REM \ds\setting
@@ -4552,7 +3954,6 @@
 REM ds\wappushalert
 REM \ds\alerthandler
 REM \ds\provisioningadapter
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wpds.dll , wpds.dll ) 
 REM \ds\dsutils
 file=\epoc32\release\ARMV5\urel\nsmlchangefinder.dll 	"sys\bin\nsmlchangefinder.dll"
 file=\epoc32\release\ARMV5\urel\nsmlCGIScriptParser.dll 	"sys\bin\nsmlCGIScriptParser.dll"
@@ -4561,7 +3962,6 @@
 file=\epoc32\release\ARMV5\urel\NsmlProfileUtil.dll 	"sys\bin\NsmlProfileUtil.dll"
 file=\epoc32\release\ARMV5\urel\nsmlfolderparser.dll 	"sys\bin\nsmlfolderparser.dll"
 REM defaultagendahandler plugin
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, nsmldefaultagendahandler.dll , nsmldefaultagendahandler.dll ) 
 data=\epoc32\data\Z\resource\nsmldefaultagendahandler_1_2.RSC 	"resource\nsmldefaultagendahandler_1_2.rsc"
 REM \ds\syncagent
 REM NUMBERGROUPING
@@ -4574,14 +3974,8 @@
 data=\epoc32\data\Z\Private\101F7C87\backup_registration.xml 	"private\101F7C87\backup_registration.xml"
 file=\epoc32\release\ARMV5\urel\ode.dll 	"sys\bin\ode.dll"
 file=\epoc32\release\ARMV5\urel\epos_comasuplasnplugin.dll 	"sys\bin\epos_comasuplasnplugin.dll"
-file=\epoc32\release\ARMV5\urel\epos_omasupllistener.exe 	"sys\bin\epos_omasupllistener.exe"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, eposomasuplprotocolhandler.dll , eposomasuplprotocolhandler.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, eposomasuplprotocolhandler1.dll , eposomasuplprotocolhandler1.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, eposomasuplprotocolhandler2.dll , eposomasuplprotocolhandler2.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, epos_omasuplprovhandler.dll , epos_omasuplprovhandler.dll ) 
 data=\epoc32\data\Z\resource\epos_omasuplprovhandlerres.rsc 	"resource\epos_omasuplprovhandlerres.rsc"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, epos_omasuplwaplistener.dll , epos_omasuplwaplistener.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, epos_omasuplsyncmldm.dll , epos_omasuplsyncmldm.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, epos_omasuplnotifierplugin.dll , epos_omasuplnotifierplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\epos_omasuplnotifier.dll 	"sys\bin\epos_omasuplnotifier.dll"
 data=\epoc32\data\Z\private\1027509E\backup_registration.xml 	"private\1027509E\backup_registration.xml"
@@ -4609,20 +4003,13 @@
 data=\epoc32\data\Z\resource\apps\peninputmodeswitcher.mif 	"resource\apps\peninputmodeswitcher.mif"   
 file=\epoc32\release\ARMV5\urel\peninputcommonlayout.dll 	"sys\bin\peninputcommonlayout.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, peninputimeplugingeneric.dll , peninputimeplugingeneric.dll ) 
-file=\epoc32\release\ARMV5\urel\phoneclient.DLL 	"sys\bin\phoneclient.dll"
 data=\epoc32\data\Z\System\install\PhoneClient_stub.sis 	"system\install\PhoneClient_stub.sis"
-file=\epoc32\release\ARMV5\urel\phonecmdhandler.dll 	"sys\bin\phonecmdhandler.dll"
-file=\epoc32\release\ARMV5\urel\PhoneParser.dll 	"sys\bin\PhoneParser.dll"
 data=\epoc32\data\Z\System\install\phoneparser_stub.SIS 	"System\Install\phoneparser_stub.SIS"
-file=\epoc32\release\ARMV5\urel\PhoneServer.exe 	"sys\bin\PhoneServer.exe"
 data=\epoc32\data\Z\System\install\PhoneServer_stub.sis 	"system\install\PhoneServer_stub.sis"
 REM redefined DATAZ_ as \epoc32\data\Z
 data=\epoc32\data\Z\Private\10000850\backup_registration.xml 	"PRIVATE\10000850\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\pictbridge.dll 	"sys\bin\pictbridge.dll"
 data=\epoc32\data\Z\resource\dps.RSC 	"resource\dps.RSC"
 data=\epoc32\data\Z\System\install\playbackhelper_stub.sis 	"system\install\playbackhelper_stub.sis"
-file=\epoc32\release\ARMV5\urel\playbackhelper.dll 	"sys\bin\playbackhelper.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  playlistrecognizer.dll  ,  playlistrecognizer.dll  ) 
 data=\epoc32\data\Z\System\install\playlistrecognizer_stub.sis 	"system\install\playlistrecognizer_stub.sis"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, pmadapter.dll , pmadapter.dll ) 
 file=\epoc32\release\ARMV5\urel\PolicyEngine.dll 	"sys\bin\PolicyEngine.dll"
@@ -4640,37 +4027,19 @@
 data=\epoc32\data\Z\system\install\presencefwsimpleadptstub.sis 	"system\install\presencefwsimpleadptstub.sis"
 data=\epoc32\data\z\private\10202BE9\1028224B_s60.cre 	"private\10202BE9\1028224B.cre"
 data=\epoc32\data\z\private\10202BE9\10282266_s60.cre 	"private\10202BE9\10282266.cre"
-file=\epoc32\release\ARMV5\urel\profileengine.dll 	"sys\bin\profileengine.dll"
-file=\epoc32\release\ARMV5\urel\profileeng.dll 	"sys\bin\profileeng.dll"
-file=\epoc32\release\ARMV5\urel\profilescheduleevent.exe 	"sys\bin\profilescheduleevent.exe"
 data=\epoc32\release\ARMV5\urel\z\system\sounds\digital\No_Sound.wav 	"resource\No_Sound.wav"
 data=\epoc32\data\Z\Private\100058F8\backup_registration.xml 	"private\100058F8\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\ProfileSettingsMonitor.exe 	"sys\bin\ProfileSettingsMonitor.exe"
 data=\epoc32\data\Z\System\install\ProfileSettingsMonitor_Stub.SIS 	"System\Install\ProfileSettingsMonitor_Stub.SIS"
-file=\epoc32\release\ARMV5\urel\ProgressiveDownloadUtility.dll 	"sys\bin\ProgressiveDownloadUtility.dll"
-file=\epoc32\release\ARMV5\urel\PDProperties.dll 	"sys\bin\PDProperties.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ProgressiveDownloadSource.dll , ProgressiveDownloadSource.dll ) 
 data=\epoc32\data\Z\System\install\ProgressiveDownload_Stub.SIS 	"System\Install\ProgressiveDownload_Stub.SIS"
-file=\epoc32\release\ARMV5\urel\ProvisioningEngine.dll 	"sys\bin\ProvisioningEngine.dll"
 file=\epoc32\release\ARMV5\urel\ProvisioningParser.dll 	"sys\bin\ProvisioningParser.dll"
-file=\epoc32\release\ARMV5\urel\ProvisioningBC.dll 	"sys\bin\ProvisioningBC.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ProvisioningHandler.dll , ProvisioningHandler.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, WPWAPAdapter.dll , WPWAPAdapter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, WPStreamingAdapter.dll , WPStreamingAdapter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, WPAPAdapter.dll , WPAPAdapter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  wpdestinationnwadapter.dll ,  wpdestinationnwadapter.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, WPWVAdapter.dll , WPWVAdapter.dll ) 
-file=\epoc32\release\ARMV5\urel\ProvisioningSC.exe 	"sys\bin\ProvisioningSC.exe"
 data=\epoc32\data\Z\Private\100012a5\policy\101F84D6.spd 	"PRIVATE\100012a5\policy\101F84D6.spd"
 data=\epoc32\data\Z\Private\\101F8597\backup_registration.xml 	"PRIVATE\101F8597\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\PnP.dll 	"sys\bin\PnP.dll"
 file=\epoc32\release\ARMV5\urel\psln.exe 	"sys\bin\psln.exe" 
 data=\epoc32\data\Z\resource\apps\pslnicon.mif 	"resource\apps\pslnicon.mif"
 data=\epoc32\data\Z\resource\apps\psln_AIF.MIF 	"resource\apps\psln_aif.mif" 
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\psln_reg.rsc 	"Private\10003a3f\apps\psln_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\pslnengine.dll 	"sys\bin\pslnengine.dll"
 file=\epoc32\release\ARMV5\urel\pslnframework.dll 	"sys\bin\pslnframework.dll"
-file=\epoc32\release\ARMV5\urel\pslnprofilesettingsloader.dll 	"sys\bin\pslnprofilesettingsloader.dll"
 file=\epoc32\release\ARMV5\urel\pslnwallpaperutilsloader.dll 	"sys\bin\pslnwallpaperutilsloader.dll"
 file=\epoc32\release\ARMV5\urel\pslnbrowserlaunchloader.dll 	"sys\bin\pslnbrowserlaunchloader.dll"
 data=\epoc32\data\Z\resource\apps\pslngsplugin.mif 	"resource\apps\pslngsplugin.mif"
@@ -4686,29 +4055,16 @@
 file=\epoc32\release\ARMV5\urel\ptiengine.dll 	"sys\bin\ptiengine.dll"
 data=\epoc32\data\Z\resource\ptiengine.rsc 	"resource\ptiengine.rsc"
 file=\epoc32\release\ARMV5\urel\QtCore.dll 	"sys\bin\QtCore.dll" UNPAGED
-file=\epoc32\release\ARMV5\urel\QtGui.dll 	"sys\bin\QtGui.dll"
-file=\epoc32\release\ARMV5\urel\QtOpenVG.dll 	"sys\bin\QtOpenVG.dll"
-file=\epoc32\release\ARMV5\urel\QtSvg.dll 	"sys\bin\QtSvg.dll"
 file=\epoc32\release\ARMV5\urel\QtSql.dll 	"sys\bin\QtSql.dll"
 file=\epoc32\release\ARMV5\urel\QtXml.dll 	"sys\bin\QtXml.dll"
 file=\epoc32\release\ARMV5\urel\QtNetwork.dll 	"sys\bin\QtNetwork.dll"
 file=\epoc32\release\ARMV5\urel\QtScript.dll 	"sys\bin\QtScript.dll"
 file=\epoc32\release\ARMV5\urel\QtTest.dll 	"sys\bin\QtTest.dll"
-file=\epoc32\release\ARMV5\urel\QtWebKit.dll 	"sys\bin\QtWebKit.dll"
-file=\epoc32\release\ARMV5\urel\phonon.dll 	"sys\bin\phonon.dll"
-file=\epoc32\release\ARMV5\urel\QtMultimedia.dll 	"sys\bin\QtMultimedia.dll"
 file=\epoc32\release\ARMV5\urel\QtXmlPatterns.dll 	"sys\bin\QtXmlPatterns.dll"
-file=\epoc32\release\ARMV5\urel\qgif.dll 	"sys\bin\qgif.dll"
-file=\epoc32\release\ARMV5\urel\qico.dll 	"sys\bin\qico.dll"
-file=\epoc32\release\ARMV5\urel\qjpeg.dll 	"sys\bin\qjpeg.dll"
-file=\epoc32\release\ARMV5\urel\qmng.dll 	"sys\bin\qmng.dll"
-file=\epoc32\release\ARMV5\urel\qsvg.dll 	"sys\bin\qsvg.dll"
-file=\epoc32\release\ARMV5\urel\qtiff.dll 	"sys\bin\qtiff.dll"
 file=\epoc32\release\ARMV5\urel\qcncodecs.dll 	"sys\bin\qcncodecs.dll"
 file=\epoc32\release\ARMV5\urel\qjpcodecs.dll 	"sys\bin\qjpcodecs.dll"
 file=\epoc32\release\ARMV5\urel\qkrcodecs.dll 	"sys\bin\qkrcodecs.dll"
 file=\epoc32\release\ARMV5\urel\qtwcodecs.dll 	"sys\bin\qtwcodecs.dll"
-file=\epoc32\release\ARMV5\urel\qsvgicon.dll 	"sys\bin\qsvgicon.dll"
 REM MISSING file=\epoc32\release\ARMV5\urel\qaudio.dll            sys\bin\qaudio.dll
 REM MISSING file=\epoc32\release\ARMV5\urel\qvggraphicssystem.dll sys\bin\qvggraphicssystem.dll
 file=\epoc32\release\ARMV5\urel\qts60plugin_5_0.dll 	"sys\bin\qts60plugin_5_0.dll"
@@ -4728,18 +4084,9 @@
 data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qvggraphicssystem.qtplugin 	"resource\qt\plugins\graphicssystems\qvggraphicssystem.qtplugin"
 data=\epoc32\data\Z\System\install\qt_stub.sis 	"System\Install\qt_stub.sis"
 data=\epoc32\data\Z\System\install\qtwebkit_stub.sis 	"System\Install\qtwebkit_stub.sis"
-file=\epoc32\release\ARMV5\urel\Radio_Utility.dll 	"sys\bin\Radio_Utility.dll"
 data=\epoc32\data\Z\System\install\radioutility_stub.sis 	"system\install\radioutility_stub.sis"
-file=\epoc32\release\ARMV5\urel\RadioSession.dll 	"sys\bin\RadioSession.dll"
-file=\epoc32\release\ARMV5\urel\RadioServer.exe 	"sys\bin\RadioServer.exe"
 file=\epoc32\release\ARMV5\urel\RECENTURLSTORE.DLL 	"sys\bin\RECENTURLSTORE.DLL"
 file=\epoc32\release\ARMV5\urel\RLockSettings.dll 	"sys\bin\RLockSettings.dll"
-file=\epoc32\release\ARMV5\urel\RLock.exe 	"sys\bin\RLock.exe"
-file=\epoc32\release\ARMV5\urel\RFS.DLL 	"sys\bin\RFS.DLL"
-file=\epoc32\release\ARMV5\urel\RfsServer.exe 	"sys\bin\RfsServer.exe"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, GSRFSPlugin.dll , GSRFSPlugin.dll ) 
-data=\epoc32\data\Z\resource\apps\GSRFSPlugin.mif 	"resource\apps\GSRFSPlugin.mif"
-file=\epoc32\release\ARMV5\urel\rfscustcmd.dll 	"sys\bin\rfscustcmd.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, AIRFSPlugin.dll , AIRFSPlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, CertRFSPlugin.dll , CertRFSPlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ClockRFSPlugin.dll , ClockRFSPlugin.dll ) 
@@ -4779,54 +4126,17 @@
 file=\epoc32\release\ARMV5\urel\rtpservice.dll 	"sys\bin\rtpservice.dll"
 file=\epoc32\release\ARMV5\urel\rtpstppacket.dll 	"sys\bin\rtpstppacket.dll"
 data=\epoc32\data\Z\System\install\rtpstack_stub.sis 	"system\install\rtpstack_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, S60StreamingSource.dll , S60StreamingSource.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, s60mcpr.dll , s60mcpr.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, bsservice.dll , bsservice.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, cpclient.dll , cpclient.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, sapidataplugin.dll , sapidataplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\SatSystemState.dll 	"sys\bin\SatSystemState.dll"
-file=\epoc32\release\ARMV5\urel\SatEventMonitors.dll 	"sys\bin\SatEventMonitors.dll"
-file=\epoc32\release\ARMV5\urel\SATENGINE.DLL 	"sys\bin\SATENGINE.DLL"
-file=\epoc32\release\ARMV5\urel\SATSERVER.EXE 	"sys\bin\SATSERVER.EXE"
 file=\epoc32\release\ARMV5\urel\SATCLIENT.DLL 	"sys\bin\SATCLIENT.DLL"
-file=\epoc32\release\ARMV5\urel\SATINTERNALCLIENT.DLL 	"sys\bin\SATINTERNALCLIENT.DLL"
 data=\epoc32\data\Z\System\install\SatServer_stub.sis 	"System\Install\SatServer_stub.sis"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  DisplayTextCmd.dll ,  DisplayTextCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  CallControlCmd.dll ,  CallControlCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GetInkeyCmd.dll ,  GetInkeyCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GetInputCmd.dll ,  GetInputCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  LanguageNotificationCmd.dll ,  LanguageNotificationCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  LaunchBrowserCmd.dll ,  LaunchBrowserCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  MoSmControlCmd.dll ,  MoSmControlCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  PlayToneCmd.dll ,  PlayToneCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ProvideLocalInfoCmd.dll ,  ProvideLocalInfoCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  RefreshCmd.dll ,  RefreshCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  RefreshRequiredCmd.dll ,  RefreshRequiredCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SelectItemCmd.dll ,  SelectItemCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SendDtmfCmd.dll ,  SendDtmfCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SendSmCmd.dll ,  SendSmCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SendUssdCmd.dll ,  SendUssdCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SetUpCallCmd.dll ,  SetUpCallCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SetUpEventListCmd.dll ,  SetUpEventListCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SetUpIdleModeTextCmd.dll ,  SetUpIdleModeTextCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SetUpMenuCmd.dll ,  SetUpMenuCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SimSessionEndCmd.dll ,  SimSessionEndCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  CloseChannelCmd.dll ,  CloseChannelCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  OpenChannelCmd.dll ,  OpenChannelCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SendDataCmd.dll ,  SendDataCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  ReceiveDataCmd.dll ,  ReceiveDataCmd.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  GetChannelStatusCmd.dll ,  GetChannelStatusCmd.dll ) 
-file=\epoc32\release\ARMV5\urel\SATUI.exe 	"sys\bin\SATUI.exe" 
-data=\epoc32\data\Z\resource\apps\Satui_AIF.MIF 	"resource\apps\Satui_aif.mif" 
-auto-bitmap=\epoc32\data\Z\resource\apps\Satui.mbm 	resource\apps\Satui.mbm
-data=\epoc32\data\Z\resource\apps\Satui.mif 	"resource\apps\Satui.mif"
 file=\epoc32\release\ARMV5\urel\SATSHELLCNTRL.DLL 	"sys\bin\SATSHELLCNTRL.DLL"
-data=\epoc32\data\Z\Private\10003a3f\apps\Satui_reg.rsc 	"private\10003a3f\import\apps\Satui_reg.rsc"
 data=\epoc32\data\Z\System\install\SatApp_stub.sis 	"System\Install\SatApp_stub.sis"
 file=\epoc32\release\ARMV5\urel\SchemeApp.exe 	"sys\bin\SchemeApp.exe" 
 data=\epoc32\data\Z\resource\apps\SchemeApp_AIF.MIF 	"resource\apps\SchemeApp_aif.mif" 
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\SchemeApp_reg.rsc 	"Private\10003a3f\import\apps\SchemeApp_reg.rsc" 
-file=\epoc32\release\ARMV5\urel\sconcsc.dll 	"sys\bin\sconcsc.dll"
 data=\epoc32\data\Z\Private\101F99F6\capability\101F9698.xml 	"PRIVATE\101F99F6\capability\101F9698.xml"
 data=\epoc32\data\Z\Private\101F99F6\capability\fwdcomp.xml 	"PRIVATE\101F99F6\capability\fwdcomp.xml"
 data=\epoc32\data\Z\Private\101F99F6\capability\101F99F6.xml 	"PRIVATE\101F99F6\capability\101F99F6.xml"
@@ -4836,19 +4146,14 @@
 data=\epoc32\data\Z\System\install\sconpcconnplugin_stub.sis 	"system\install\sconpcconnplugin_stub.sis"
 data=\epoc32\data\Z\System\install\sconftpplugin_stub.sis 	"system\install\sconftpplugin_stub.sis"
 file=\epoc32\release\ARMV5\urel\catalogspcconnectivityplugin.dll 	"sys\bin\catalogspcconnectivityplugin.dll"
-file=\epoc32\release\ARMV5\urel\sconpcd.dll 	"sys\bin\sconpcd.dll"
 data=\epoc32\data\Z\Private\10202D56\sbeconfig.xml 	"PRIVATE\10202D56\sbeconfig.xml"
 file=\epoc32\release\ARMV5\urel\SCPClient.dll 	"sys\bin\SCPClient.dll"
 file=\epoc32\release\ARMV5\urel\SCPDatabase.dll 	"sys\bin\SCPDatabase.dll"
 data=\epoc32\data\Z\Private\100012a5\policy\2002677A.SPD 	"PRIVATE\100012a5\policy\2002677A.SPD"
 file=\epoc32\release\ARMV5\urel\SCPEventHandler.dll 	"sys\bin\SCPEventHandler.dll"
-file=\epoc32\release\ARMV5\urel\SCPServer.exe 	"sys\bin\SCPServer.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SCPPatternPlugin.dll ,  SCPPatternPlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SCPHistoryPlugin.dll ,  SCPHistoryPlugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SCPTimestampPlugin.dll ,  SCPTimestampPlugin.dll ) 
-file=\epoc32\release\ARMV5\urel\screensaver.exe 	"sys\bin\screensaver.exe" 
-data=\epoc32\data\Z\resource\apps\screensaver.RSC 	"resource\apps\screensaver.rsc" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\screensaver_reg.rsc 	"Private\10003a3f\apps\screensaver_reg.rsc" 
 data=\epoc32\data\Z\Private\100056CF\backup_registration.xml 	"private\100056CF\backup_registration.xml"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, screensaveraiwplugin.dll , screensaveraiwplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ScreenSaverAnimPlugin.dll , ScreenSaverAnimPlugin.dll ) 
@@ -4862,11 +4167,8 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  searchoperationshook.dll ,  searchoperationshook.dll )  
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  searchprocessorhook.dll ,  searchprocessorhook.dll )  
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SecModUI.dll ,  SecModUI.dll ) 
-file=\epoc32\release\ARMV5\urel\SecUi.dll 	"sys\bin\SecUi.dll"
-file=\epoc32\release\ARMV5\urel\SecurityNotifier.dll 	"sys\bin\SecurityNotifier.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Securitynotifierwrapper.dll , Securitynotifierwrapper.dll ) 
 file=\epoc32\release\ARMV5\urel\SENDUI.DLL 	"sys\bin\Sendui.dll"
-file=\epoc32\release\ARMV5\urel\SenduiDataUtils.dll 	"sys\bin\SenduiDataUtils.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SendUiWatcher.dll , SendUiWatcher.dll ) 
 file=\epoc32\release\ARMV5\urel\SendUiServiceResolver.exe 	"sys\bin\SendUiServiceResolver.exe"            
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\SendUiServiceResolver_reg.rsc 	"Private\10003a3f\import\apps\SendUiServiceResolver_reg.rsc"        
@@ -4890,16 +4192,8 @@
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, locationprovider.dll , locationprovider.dll ) 
 file=\epoc32\release\ARMV5\urel\landmarkservice.dll 	"sys\bin\landmarkservice.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, landmarkprovider.dll , landmarkprovider.dll ) 
-file=\epoc32\release\ARMV5\urel\messagingservice.dll 	"sys\bin\messagingservice.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, messagingprovider.dll , messagingprovider.dll ) 
-file=\epoc32\release\ARMV5\urel\mediamanagementservice.dll 	"sys\bin\mediamanagementservice.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, mediamanagementprovider.dll , mediamanagementprovider.dll ) 
 file=\epoc32\release\ARMV5\urel\contactservice.dll 	"sys\bin\contactservice.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, contactprovider.dll , contactprovider.dll ) 
-file=\epoc32\release\ARMV5\urel\appmanagerservice.dll 	"sys\bin\appmanagerservice.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, appmanagerprovider.dll , appmanagerprovider.dll ) 
-file=\epoc32\release\ARMV5\urel\calendarservice.dll 	"sys\bin\calendarservice.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, calendarprovider.dll , calendarprovider.dll ) 
 file=\epoc32\release\ARMV5\urel\loggingservice.dll 	"sys\bin\loggingservice.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, loggingprovider.dll , loggingprovider.dll ) 
 file=\epoc32\release\ARMV5\urel\sensorservice.dll 	"sys\bin\sensorservice.dll"
@@ -4911,7 +4205,6 @@
 file=\epoc32\release\ARMV5\urel\servicehandler.dll 	"sys\bin\servicehandler.dll"
 data=\epoc32\data\Z\resource\AiwServiceHandler.rsc 	"resource\AiwServiceHandler.rsc"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, aiwresolver.dll , aiwresolver.dll ) 
-file=\epoc32\release\ARMV5\urel\serviceselector.dll 	"sys\bin\serviceselector.dll"
 data=\epoc32\data\Z\System\install\serviceselector_stub.sis 	"System\Install\serviceselector_stub.sis"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, presenceplugin.dll , presenceplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\simpleengine.dll 	"sys\bin\simpleengine.dll"
@@ -4920,12 +4213,7 @@
 file=\epoc32\release\ARMV5\urel\rlspresxdm.dll 	"sys\bin\rlspresxdm.dll"
 file=\epoc32\release\ARMV5\urel\presencesettingsapi.dll 	"sys\bin\presencesettingsapi.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, PresenceDM.dll , PresenceDM.dll )  
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, PresenceProvisioning.dll , PresenceProvisioning.dll )   
 data=\epoc32\data\Z\private\10281EEB\backup_registration.xml 	"private\10281EEB\backup_registration.xml"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, simpleimplugin.dll , simpleimplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wpsipadapter.dll , wpsipadapter.dll )  
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, sipsystemstatemonitor.dll , sipsystemstatemonitor.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, sipwlanmon.dll , sipwlanmon.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, SlideshowPlugin.dll , SlideshowPlugin.dll ) 
 file=\epoc32\release\ARMV5\urel\sortutil.dll 	"sys\bin\sortutil.dll"
 file=\epoc32\release\ARMV5\urel\SplashScreen.exe 	"sys\bin\SplashScreen.exe"
@@ -4943,15 +4231,13 @@
 file=\epoc32\release\ARMV5\urel\sanimengine.dll 	"sys\bin\sanimengine.dll"
 file=\epoc32\release\ARMV5\urel\sanimctrl.dll 	"sys\bin\sanimctrl.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  sanimihlplugin.dll ,  sanimihlplugin.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  sanimmmfplugin.dll ,  sanimmmfplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  sanimsvgplugin.dll ,  sanimsvgplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\stmgesturefw.dll 	"sys\bin\stmgesturefw.dll"
 data=\epoc32\data\Z\System\install\CenRepStub.sis 	"System\Install\CenRepStub.sis"
-file=\epoc32\release\ARMV5\urel\SVGEngine.dll 	"sys\bin\SVGEngine.dll"
+file=\epoc32\release\ARMV5\urel\stem_SVGEngine.dll 	"sys\bin\SVGEngine.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, Svgrecog.dll , Svgrecog.dll ) 
 file=\epoc32\release\ARMV5\urel\SVGEngineJI.dll 	"sys\bin\SVGEngineJI.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, npsvgtplugin.dll , npsvgtplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\SyncMLNotifier.dll 	"sys\bin\SyncMLNotifier.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  SyncMLNotifierWrapper.dll ,  SyncMLNotifierWrapper.dll ) 
 file=\epoc32\release\ARMV5\urel\SyncService.dll 	"sys\bin\SyncService.dll"
 file=\epoc32\release\ARMV5\urel\NspsWsPlugin.dll 	"sys\bin\NspsWsPlugin.dll"
@@ -4982,7 +4268,6 @@
 data=\epoc32\release\armv5\urel\Z\private\1020783F\format_e_.txt 	"private\1020783F\format_e_.txt"
 file=\epoc32\release\ARMV5\urel\thumbagdaemon.exe 	"sys\bin\thumbagdaemon.exe"
 file=\epoc32\release\ARMV5\urel\thumbnailmanager.dll 	"sys\bin\thumbnailmanager.dll"
-file=\epoc32\release\ARMV5\urel\thumbnailserver.exe 	"sys\bin\thumbnailserver.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, thumbnailvideoprovider.dll , thumbnailvideoprovider.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, thumbnailimageprovider.dll , thumbnailimageprovider.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, thumbnailaudioprovider.dll , thumbnailaudioprovider.dll ) 
@@ -4996,7 +4281,6 @@
 file=\epoc32\release\ARMV5\urel\tsfswutils.dll 	"sys\bin\tsfswutils.dll"
 file=\epoc32\release\ARMV5\urel\tsfswengine.dll 	"sys\bin\tsfswengine.dll"
 file=\epoc32\release\ARMV5\urel\tsfswserver.exe 	"sys\bin\tsfswserver.exe"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, uaproffilter.dll , uaproffilter.dll ) 
 file=\epoc32\release\ARMV5\urel\avcontrolframework.dll 	"sys\bin\avcontrolframework.dll" 
 file=\epoc32\release\ARMV5\urel\upnpcommand.dll 	"sys\bin\upnpcommand.dll"
 file=\epoc32\release\ARMV5\urel\avconnectionmanager.dll 	"sys\bin\avconnectionmanager.dll" 
@@ -5027,18 +4311,12 @@
 data=\epoc32\data\Z\resource\apps\usbui.mif 	"resource\apps\usbui.mif"
 data=\epoc32\data\Z\resource\apps\usbclasschangeui_AIF.MIF 	"resource\apps\usbclasschangeui_aif.mif" 
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\usbclasschangeui_reg.rsc 	"Private\10003a3f\apps\usbclasschangeui_reg.rsc" 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, USBClassChangeUIPlugin.dll , USBClassChangeUIPlugin.dll ) 
-file=\epoc32\release\ARMV5\urel\usbdevcon.exe 	"sys\bin\usbdevcon.exe"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, usblocodplugin.dll , usblocodplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, usbmscpersonality.dll , usbmscpersonality.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, usbobexclasscontroller.dll , usbobexclasscontroller.dll ) 
-file=\epoc32\release\ARMV5\urel\usbotgwatcher.dll 	"sys\bin\usbotgwatcher.dll"
 REM MISSING 	file=\epoc32\release\ARMV5\urel\errrd    						c:\resource\errrd
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, usbremotepersonality.dll , usbremotepersonality.dll ) 
 REM USB UI notifiers ecom plug-in
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, usbuinotif.dll , usbuinotif.dll )   
-file=\epoc32\release\ARMV5\urel\usbavkonnotif.dll 	"sys\bin\usbavkonnotif.dll"
-file=\epoc32\release\ARMV5\urel\usbwatcher.exe 	"sys\bin\usbwatcher.exe"
 file=\epoc32\release\ARMV5\urel\usbwatcher.dll 	"sys\bin\usbwatcher.dll"
 file=\epoc32\release\ARMV5\urel\usbpersonality.dll 	"sys\bin\usbpersonality.dll"
 data=\epoc32\data\Z\private\101F9696\backup_registration.xml 	"private\101F9696\backup_registration.xml"
@@ -5047,14 +4325,10 @@
 file=\epoc32\release\ARMV5\urel\PseudoVG.dll 	"sys\bin\PseudoVG.dll"
 file=\epoc32\release\ARMV5\urel\SWVG.dll 	"sys\bin\SWVG.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  VibraActionPlugIn.dll ,  VibraActionPlugIn.dll ) 
-file=\epoc32\release\ARMV5\urel\vcxconnectionutility.dll 	"sys\bin\vcxconnectionutility.dll"
 file=\epoc32\release\ARMV5\urel\vcxconnutilpsworker.exe 	"sys\bin\vcxconnutilpsworker.exe"
-file=\epoc32\release\ARMV5\urel\videoplaylistutility.dll 	"sys\bin\videoplaylistutility.dll"
 file=\epoc32\release\ARMV5\urel\CseSchedulerClient.dll 	"sys\bin\CseSchedulerClient.dll"
 file=\epoc32\release\ARMV5\urel\CseSchedulerServer.exe 	"sys\bin\CseSchedulerServer.exe"
 data=\epoc32\data\Z\System\install\vmbx_stub.sis 	"System\Install\vmbx_stub.sis"
-file=\epoc32\release\ARMV5\urel\VoIPJitterBuffer.dll 	"sys\bin\VoIPJitterBuffer.dll"
-file=\epoc32\release\ARMV5\urel\VoIPAudioServer.exe 	"sys\bin\VoIPAudioServer.exe"
 file=\epoc32\release\ARMV5\urel\VoIPAudioSession.dll 	"sys\bin\VoIPAudioSession.dll"
 file=\epoc32\release\ARMV5\urel\VoIPAudioIntfc.dll 	"sys\bin\VoIPAudioIntfc.dll"
 data=\epoc32\data\Z\System\install\VoIPAudioSrvc_Stub.sis 	"System\Install\VoIPAudioSrvc_Stub.sis"
@@ -5063,7 +4337,6 @@
 file=\epoc32\release\ARMV5\urel\vpnapi.dll 	"sys\bin\vpnapi.dll" 
 FILE=\epoc32\release\ARMV5\urel\wapisecuritysettingsui.dll 	"sys\bin\wapisecuritysettingsui.dll"
 auto-bitmap=\epoc32\data\Z\resource\apps\webkit.mbm 	resource\apps\webkit.mbm
-file=\epoc32\release\ARMV5\urel\BrowserEngine.dll 	"sys\bin\BrowserEngine.dll"
 file=\epoc32\release\ARMV5\urel\JavascriptCore.dll 	"sys\bin\JavascriptCore.dll"
 file=\epoc32\release\ARMV5\urel\WebKitUtils.dll 	"sys\bin\WebKitUtils.dll"
 file=\epoc32\release\ARMV5\urel\PageScaler.dll 	"sys\bin\PageScaler.dll"
@@ -5078,15 +4351,12 @@
 FILE=\epoc32\release\ARMV5\urel\WEPSecuritySettingsUI.dll 	"sys\bin\WEPSecuritySettingsUI.dll"
 file=\epoc32\release\ARMV5\urel\WidgetBackupRestore.exe 	"sys\bin\WidgetBackupRestore.exe" 
 data=\epoc32\data\Z\Private\2000B4D8\backup_registration.xml 	"private\2000B4D8\backup_registration.xml"
-file=\epoc32\release\ARMV5\urel\WidgetEngine.dll 	"sys\bin\WidgetEngine.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, WidgetMemoryPlugin.dll , WidgetMemoryPlugin.dll ) 
 file=\epoc32\release\ARMV5\urel\WidgetInstaller.dll 	"sys\bin\WidgetInstaller.dll"
 file=\epoc32\release\ARMV5\urel\WidgetRegistry.exe 	"sys\bin\WidgetRegistry.exe" 
 file=\epoc32\release\ARMV5\urel\WidgetRegistryClient.dll 	"sys\bin\WidgetRegistryClient.dll"
 data=\epoc32\data\Z\Private\10282f06\Widget_lproj.xml 	"private\10282f06\Widget_lproj.xml"
 data=\epoc32\data\Z\Private\10282f06\WidgetAccessPolicy.xml 	"private\10282f06\WidgetAccessPolicy.xml"
-file=\epoc32\release\ARMV5\urel\WidgetUi.exe 	"sys\bin\WidgetUi.exe" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\WidgetUi_reg.rsc 	"Private\10003a3f\import\apps\WidgetUi_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\WidgetLauncher.exe 	"sys\bin\WidgetLauncher.exe" 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, WidgetInstallerUI.dll , WidgetInstallerUI.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, WidgetRecognizer.dll , WidgetRecognizer.dll ) 
@@ -5095,9 +4365,7 @@
 file=\epoc32\release\ARMV5\urel\WIFIPROTCLIENT.DLL 	"sys\bin\WIFIPROTCLIENT.DLL"
 file=\epoc32\release\ARMV5\urel\WIFIPROTPLUGIN.DLL 	"sys\bin\WIFIPROTPLUGIN.DLL"
 FILE=\epoc32\release\ARMV5\urel\WIMCLIENT.DLL 	"sys\bin\WIMCLIENT.DLL"
-FILE=\epoc32\release\ARMV5\urel\SWIMREADER.DLL 	"sys\bin\SWIMREADER.DLL"
 FILE=\epoc32\release\ARMV5\urel\SCARD.DLL 	"sys\bin\SCARD.DLL"
-FILE=\epoc32\release\ARMV5\urel\WIMSERVER.EXE 	"sys\bin\WIMSERVER.EXE"
 FILE=\epoc32\release\ARMV5\urel\WIMUTIL.DLL 	"sys\bin\WIMUTIL.DLL"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  WIMPLUGIN.DLL ,  WIMPLUGIN.DLL ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  eapnotifwrapper.dll ,  eapnotifwrapper.dll ) 
@@ -5105,7 +4373,6 @@
 file=\epoc32\release\ARMV5\urel\gtcnotifdlg.dll 	"sys\bin\gtcnotifdlg.dll"
 file=\epoc32\release\ARMV5\urel\papnotifdlg.dll 	"sys\bin\papnotifdlg.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  EapPluginConfig.dll ,  EapPluginConfig.dll ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  wlanindicatorplugin.dll ,  wlanindicatorplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wlanplugin.DLL , wlanplugin.DLL ) 
 data=\epoc32\data\Z\resource\apps\wlanplugin.mif 	"resource\apps\wlanplugin.mif"
 data=\epoc32\data\Z\Private\2000b187\200100c0.xml 	"private\2000b187\200100c0.xml"
@@ -5123,8 +4390,6 @@
 file=\epoc32\release\ARMV5\urel\wmdrmclientwrapper.dll 	"sys\bin\wmdrmclientwrapper.dll"
 data=\epoc32\data\Z\System\install\wmdrm_stub.sis 	"system\install\wmdrm_stub.sis"
 data=\epoc32\data\Z\private\102073ea\excludes\10282F1B.exc 	"private\102073ea\excludes\10282F1B.exc"
-file=\epoc32\release\ARMV5\urel\wmdrmdlaapp.exe 	"sys\bin\wmdrmdlaapp.exe" 
-data=\epoc32\data\Z\private\10003a3f\apps\wmdrmdlaapp_reg.rsc 	"private\10003a3f\import\apps\wmdrmdlaapp_reg.rsc"
 file=\epoc32\release\ARMV5\urel\wmdrmdlautils.dll 	"sys\bin\wmdrmdlautils.dll"
 data=\epoc32\data\Z\resource\apps\wmdrmdla.mif 	"resource\apps\wmdrmdla.mif"
 file=\epoc32\release\ARMV5\urel\wmdrmdlawrapper.dll 	"sys\bin\wmdrmdlawrapper.dll"
@@ -5139,12 +4404,10 @@
 file=\epoc32\release\ARMV5\urel\wmdrmdla.dll 	"sys\bin\wmdrmdla.dll"
 file=\epoc32\release\ARMV5\urel\wmdrmpd.dll 	"sys\bin\wmdrmpd.dll"
 FILE=\epoc32\release\ARMV5\urel\WPASecuritySettingsUI.dll 	"sys\bin\WPASecuritySettingsUI.dll"
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wpnatfwtraversaladapter.dll , wpnatfwtraversaladapter.dll )  
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wrtdataplugin.dll , wrtdataplugin.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wrtharvester.dll , wrtharvester.dll ) 
 file=\epoc32\release\ARMV5\urel\SenServConn.dll 	"sys\bin\SenServConn.dll"
 file=\epoc32\release\ARMV5\urel\wsconnagent.dll 	"sys\bin\wsconnagent.dll"
-file=\epoc32\release\ARMV5\urel\Sen.EXE 	"sys\bin\Sen.EXE"
 data=\epoc32\data\Z\System\install\S60SOA.SIS 	"System\Install\S60SOA.SIS"
 data=\epoc32\data\Z\private\101F96F4\backup_registration.xml 	"private\101F96F4\backup_registration.xml"
 file=\epoc32\release\ARMV5\urel\SenCredentialManager.dll 	"sys\bin\SenCredentialManager.dll"
@@ -5152,20 +4415,16 @@
 REM WlanSnifferAiHelperApplication
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\wsfaihelper_reg.rsc 	"Private\10003a3f\apps\wsfaihelper_reg.rsc" 
 file=\epoc32\release\ARMV5\urel\wsfaihelper.exe 	"sys\bin\wsfaihelper.exe" 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, wsfaiplugin.dll , wsfaiplugin.dll ) 
 REM WlanSnifferApWizard
 file=\epoc32\release\ARMV5\urel\wsfapwizard.dll 	"sys\bin\wsfapwizard.dll"
 REM WlanSnifferClient
 file=\epoc32\release\ARMV5\urel\wsfclient.dll 	"sys\bin\wsfclient.dll"
 REM WlanSnifferApplication
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\wlansniffer_reg.rsc 	"Private\10003a3f\apps\wlansniffer_reg.rsc" 
-file=\epoc32\release\ARMV5\urel\wlansniffer.exe 	"sys\bin\wlansniffer.exe" 
 REM WlanSnifferModel
 file=\epoc32\release\ARMV5\urel\wsfmodel.dll 	"sys\bin\wsfmodel.dll"
 file=\epoc32\release\ARMV5\urel\SenFragment.dll 	"sys\bin\SenFragment.dll"
 file=\epoc32\release\ARMV5\urel\SenFramework.dll 	"sys\bin\SenFramework.dll"
 REM WlanSnifferServer
-file=\epoc32\release\ARMV5\urel\wsfserver.exe 	"sys\bin\wsfserver.exe"
 data=\epoc32\data\Z\Private\200159c0\install\wsfwidget_20026F45\hsps\00\manifest.dat 	"private\200159c0\install\wsfwidget_20026F45\hsps\00\manifest.dat"
 data=\epoc32\data\Z\Private\200159c0\install\wsfwidget_20026F45\xuikon\00\wsfwidget.o0000 	"private\200159c0\install\wsfwidget_20026F45\xuikon\00\wsfwidget.o0000"
 REM WlanInfo
@@ -5202,14 +4461,10 @@
 file=\epoc32\release\ARMV5\urel\XdmXmlParser.dll 	"sys\bin\XdmXmlParser.dll"
 file=\epoc32\release\ARMV5\urel\XdmSettingsApi.dll 	"sys\bin\XdmSettingsApi.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,                                                 XdmDeviceManagementAdapter.dll ,                                                 XdmDeviceManagementAdapter.dll )  
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,                                                 XdmProvisioning.dll ,                                                 XdmProvisioning.dll )  
-file=\epoc32\release\ARMV5\urel\XcapUtils.dll 	"sys\bin\XcapUtils.dll"
 file=\epoc32\release\ARMV5\urel\XcapCacheClient.dll 	"sys\bin\XcapCacheClient.dll"
 file=\epoc32\release\ARMV5\urel\XcapCache.exe 	"sys\bin\XcapCache.exe"
 file=\epoc32\release\ARMV5\urel\XcapHttpTransport.dll 	"sys\bin\XcapHttpTransport.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,                                             XcapAppUsage.dll ,                                             XcapAppUsage.dll )  
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,                                             XcapOperations.dll ,                                             XcapOperations.dll )  
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,                                             XcapProtocol.dll ,                                             XcapProtocol.dll ) 
 data=\epoc32\data\Z\private\10207421\backup_registration.xml 	"private\10207421\backup_registration.xml"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,                                             LocalProtocol.dll ,                                             LocalProtocol.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,                                             LocalOperations.dll ,                                             LocalOperations.dll ) 
@@ -5246,7 +4501,6 @@
 file=\epoc32\release\ARMV5\urel\accsrvutil.dll 	"sys\bin\accsrvutil.dll"
 file=\epoc32\release\ARMV5\urel\accpolaudiodevicetopology.dll 	"sys\bin\accpolaudiodevicetopology.dll"
 data=\epoc32\data\Z\Private\100012A5\policy\10205030.spd 	"private\100012A5\policy\10205030.spd"
-file=\epoc32\release\ARMV5\urel\AddedDevSoundControlMsgHdlr.dll 	"sys\bin\AddedDevSoundControlMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\AddedDevSoundControlProxy.dll 	"sys\bin\AddedDevSoundControlProxy.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ASYReferencePlugin.dll , ASYReferencePlugin.dll ) 
 file=\epoc32\release\ARMV5\urel\atextclient.dll 	"sys\bin\atextclient.dll"
@@ -5256,22 +4510,13 @@
 file=\epoc32\release\ARMV5\urel\atext.exe 	"sys\bin\atext.exe"
 file=\epoc32\release\ARMV5\urel\atextcommon.exe 	"sys\bin\atextcommon.exe"
 file=\epoc32\release\ARMV5\urel\AudioOutputControlUtility.dll 	"sys\bin\AudioOutputControlUtility.dll"
-file=\epoc32\release\ARMV5\urel\AudioOutputControlUtilityProxy.dll 	"sys\bin\AudioOutputControlUtilityProxy.dll"
 data=\epoc32\data\Z\System\install\AudioOutputControlUtility_Stub.SIS 	"System\Install\AudioOutputControlUtility_Stub.SIS"
-file=\epoc32\release\ARMV5\urel\AudioInputRouting.dll 	"sys\bin\AudioInputRouting.dll"
-file=\epoc32\release\ARMV5\urel\AudioInputMessageHandler.dll 	"sys\bin\AudioInputMessageHandler.dll"
 file=\epoc32\release\ARMV5\urel\AudioInputProxy.dll 	"sys\bin\AudioInputProxy.dll"
-file=\epoc32\release\ARMV5\urel\AudioOutputRouting.dll 	"sys\bin\AudioOutputRouting.dll"
-file=\epoc32\release\ARMV5\urel\AudioOutputMessageHandler.dll 	"sys\bin\AudioOutputMessageHandler.dll"
 file=\epoc32\release\ARMV5\urel\AudioOutputProxy.dll 	"sys\bin\AudioOutputProxy.dll"
 data=\epoc32\data\Z\System\install\AudioRouting_Stub.SIS 	"System\Install\AudioRouting_Stub.SIS"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ciextnclientplugin.DLL , ciextnclientplugin.DLL ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ciextnserverplugin.DLL , ciextnserverplugin.DLL ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ciplatformfactoryplugin.DLL , ciplatformfactoryplugin.DLL ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins, ciplatformmsghndlrplugin.DLL , ciplatformmsghndlrplugin.DLL ) 
-file=\epoc32\release\ARMV5\urel\CommonDSY.DLL 	"sys\bin\CommonDSY.DLL"
 data=\epoc32\release\ARMV5\urel\Z\private\101f6efa\dosserver.ini 	"private\101f6efa\dosserver.ini"
-file=\epoc32\release\ARMV5\urel\ConfigurationComponentsFactory.dll 	"sys\bin\ConfigurationComponentsFactory.dll"
 data=\epoc32\data\Z\System\install\ConfigurationComponentsFactory_Stub.SIS 	"System\Install\ConfigurationComponentsFactory_Stub.SIS"
 file=\epoc32\release\ARMV5\UREL\libdbus.dll 	"sys\bin\libdbus.dll"
 file=\epoc32\release\ARMV5\UREL\libdbus-utils.dll 	"sys\bin\libdbus-utils.dll"
@@ -5280,60 +4525,14 @@
 data=\EPOC32\WINSCW\C\data\dbus\system.conf 	"data\dbus\system.conf"
 file=\epoc32\release\ARMV5\urel\diskspacereserver.dll 	"sys\bin\diskspacereserver.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  diskspacereservationplugin.dll ,  diskspacereservationplugin.dll ) 
-file=\epoc32\release\ARMV5\urel\DosSrv.dll 	"sys\bin\DosSrv.dll"
-file=\epoc32\release\ARMV5\urel\DosServer.exe 	"sys\bin\DosServer.exe"
 file=\epoc32\release\ARMV5\urel\DSClient.dll 	"sys\bin\DSClient.dll"
-file=\epoc32\release\ARMV5\urel\DRMAudioPlayUtility.dll 	"sys\bin\DRMAudioPlayUtility.dll"
-file=\epoc32\release\ARMV5\urel\DRMPlayServer.exe 	"sys\bin\DRMPlayServer.exe"
 data=\epoc32\data\Z\System\install\DRMAudioPlayer_Stub.SIS 	"System\Install\DRMAudioPlayer_Stub.SIS"
 file=\epoc32\release\ARMV5\urel\edidparser.dll 	"sys\bin\edidparser.dll"
-file=\epoc32\release\ARMV5\urel\AudioEqualizerEffect.dll 	"sys\bin\AudioEqualizerEffect.dll"
-file=\epoc32\release\ARMV5\urel\AudioEqualizerMessageHandler.dll 	"sys\bin\AudioEqualizerMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\AudioEqualizerProxy.dll 	"sys\bin\AudioEqualizerProxy.dll"
-file=\epoc32\release\ARMV5\urel\BassBoostEffect.dll 	"sys\bin\BassBoostEffect.dll"
-file=\epoc32\release\ARMV5\urel\BassBoostMessageHandler.dll 	"sys\bin\BassBoostMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\BassBoostProxy.dll 	"sys\bin\BassBoostProxy.dll"
-file=\epoc32\release\ARMV5\urel\DistanceAttenuationEffect.dll 	"sys\bin\DistanceAttenuationEffect.dll"
-file=\epoc32\release\ARMV5\urel\DistanceAttenuationMessageHandler.dll 	"sys\bin\DistanceAttenuationMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\DistanceAttenuationProxy.dll 	"sys\bin\DistanceAttenuationProxy.dll"
 file=\epoc32\release\ARMV5\urel\DopplerBase.dll 	"sys\bin\DopplerBase.dll"
 file=\epoc32\release\ARMV5\urel\EffectBase.dll 	"sys\bin\EffectBase.dll"
-file=\epoc32\release\ARMV5\urel\EnvironmentalReverbEffect.dll 	"sys\bin\EnvironmentalReverbEffect.dll"
-file=\epoc32\release\ARMV5\urel\EnvironmentalReverbMessageHandler.dll 	"sys\bin\EnvironmentalReverbMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\EnvironmentalReverbProxy.dll 	"sys\bin\EnvironmentalReverbProxy.dll"
-file=\epoc32\release\ARMV5\urel\ListenerDopplerEffect.dll 	"sys\bin\ListenerDopplerEffect.dll"
-file=\epoc32\release\ARMV5\urel\ListenerDopplerMessageHandler.dll 	"sys\bin\ListenerDopplerMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\ListenerDopplerProxy.dll 	"sys\bin\ListenerDopplerProxy.dll"
-file=\epoc32\release\ARMV5\urel\ListenerLocationEffect.dll 	"sys\bin\ListenerLocationEffect.dll"
-file=\epoc32\release\ARMV5\urel\ListenerLocationMessageHandler.dll 	"sys\bin\ListenerLocationMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\ListenerLocationProxy.dll 	"sys\bin\ListenerLocationProxy.dll"
-file=\epoc32\release\ARMV5\urel\ListenerOrientationEffect.dll 	"sys\bin\ListenerOrientationEffect.dll"
-file=\epoc32\release\ARMV5\urel\ListenerOrientationMessageHandler.dll 	"sys\bin\ListenerOrientationMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\ListenerOrientationProxy.dll 	"sys\bin\ListenerOrientationProxy.dll"
 file=\epoc32\release\ARMV5\urel\LocationBase.dll 	"sys\bin\LocationBase.dll"
-file=\epoc32\release\ARMV5\urel\LoudnessEffect.dll 	"sys\bin\LoudnessEffect.dll"
-file=\epoc32\release\ARMV5\urel\LoudnessMessageHandler.dll 	"sys\bin\LoudnessMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\LoudnessProxy.dll 	"sys\bin\LoudnessProxy.dll"
 file=\epoc32\release\ARMV5\urel\OrientationBase.dll 	"sys\bin\OrientationBase.dll"
-file=\epoc32\release\ARMV5\urel\RoomLevelEffect.dll 	"sys\bin\RoomLevelEffect.dll"
-file=\epoc32\release\ARMV5\urel\RoomLevelMessageHandler.dll 	"sys\bin\RoomLevelMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\RoomLevelProxy.dll 	"sys\bin\RoomLevelProxy.dll"
-file=\epoc32\release\ARMV5\urel\SourceDopplerEffect.dll 	"sys\bin\SourceDopplerEffect.dll"
-file=\epoc32\release\ARMV5\urel\SourceDopplerMessageHandler.dll 	"sys\bin\SourceDopplerMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\SourceDopplerProxy.dll 	"sys\bin\SourceDopplerProxy.dll"
-file=\epoc32\release\ARMV5\urel\SourceLocationEffect.dll 	"sys\bin\SourceLocationEffect.dll"
-file=\epoc32\release\ARMV5\urel\SourceLocationMessageHandler.dll 	"sys\bin\SourceLocationMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\SourceLocationProxy.dll 	"sys\bin\SourceLocationProxy.dll"
-file=\epoc32\release\ARMV5\urel\SourceOrientationEffect.dll 	"sys\bin\SourceOrientationEffect.dll"
-file=\epoc32\release\ARMV5\urel\SourceOrientationMessageHandler.dll 	"sys\bin\SourceOrientationMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\SourceOrientationProxy.dll 	"sys\bin\SourceOrientationProxy.dll"
-file=\epoc32\release\ARMV5\urel\StereoWideningEffect.dll 	"sys\bin\StereoWideningEffect.dll"
-file=\epoc32\release\ARMV5\urel\StereoWideningMessageHandler.dll 	"sys\bin\StereoWideningMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\StereoWideningProxy.dll 	"sys\bin\StereoWideningProxy.dll"
 data=\epoc32\data\Z\System\install\Effect_Stub.SIS 	"System\Install\Effect_Stub.SIS"
-file=\epoc32\release\ARMV5\urel\AudioEqualizerUtility.dll 	"sys\bin\AudioEqualizerUtility.dll"
-file=\epoc32\release\ARMV5\urel\EnvironmentalReverbUtility.dll 	"sys\bin\EnvironmentalReverbUtility.dll"
-file=\epoc32\release\ARMV5\urel\StereoWideningUtility.dll 	"sys\bin\StereoWideningUtility.dll"
 data=\epoc32\data\Z\System\install\EffectsPresets_Stub.SIS 	"System\Install\EffectsPresets_Stub.SIS"
 file=\epoc32\release\ARMV5\urel\ExifLib.dll 	"sys\bin\ExifLib.dll" 
 file=\epoc32\release\ARMV5\urel\FrameTable.dll 	"sys\bin\FrameTable.dll"
@@ -5349,7 +4548,6 @@
 REM HeadsetStatus
 file=\epoc32\release\ARMV5\urel\HeadsetStatus.dll 	"sys\bin\HeadsetStatus.dll"
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  hwrmdefaultlighttargetmodifierplugin.dll  ,  hwrmdefaultlighttargetmodifierplugin.dll  ) 
-__ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  hwrmfmtxwatcherplugin.dll ,  hwrmfmtxwatcherplugin.dll ) 
 file=\epoc32\release\ARMV5\urel\hwrmhapticspluginservice.dll 	"sys\bin\hwrmhapticspluginservice.dll"
 file=\epoc32\release\ARMV5\urel\hwrmhapticsserver.exe 	"sys\bin\hwrmhapticsserver.exe"
 file=\epoc32\release\ARMV5\urel\hwrmhapticspluginmanager.dll 	"sys\bin\hwrmhapticspluginmanager.dll"
@@ -5373,50 +4571,18 @@
 file=\epoc32\release\ARMV5\urel\MediatorPluginBase.dll 	"sys\bin\MediatorPluginBase.dll"
 data=\epoc32\data\Z\private\10207449\allowedsids.rsc 	"private\10207449\allowedsids.rsc"
 data=\epoc32\data\Z\resource\MediatorDebug.rsc 	"resource\MediatorDebug.rsc"
-file=\epoc32\release\ARMV5\urel\CustomCommandUtility.dll 	"sys\bin\CustomCommandUtility.dll"
-file=\epoc32\release\ARMV5\urel\CustomInterfaceBuilder.dll 	"sys\bin\CustomInterfaceBuilder.dll"
-file=\epoc32\release\ARMV5\urel\CustomInterfaceUtility.dll 	"sys\bin\CustomInterfaceUtility.dll"
-file=\epoc32\release\ARMV5\urel\MessageHandlerFactory.dll 	"sys\bin\MessageHandlerFactory.dll"
-file=\epoc32\release\ARMV5\urel\CustomInterfaceProxyFactory.dll 	"sys\bin\CustomInterfaceProxyFactory.dll"
 data=\epoc32\data\Z\System\install\MMExtFw_Stub.SIS 	"System\Install\MMExtFw_Stub.SIS"
-file=\epoc32\release\ARMV5\urel\AacDecoderConfig.dll 	"sys\bin\AacDecoderConfig.dll"
-file=\epoc32\release\ARMV5\urel\AacDecoderConfigMsgHdlr.dll 	"sys\bin\AacDecoderConfigMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\AacDecoderConfigProxy.dll 	"sys\bin\AacDecoderConfigProxy.dll"
-file=\epoc32\release\ARMV5\urel\ErrorConcealmentIntfc.dll 	"sys\bin\ErrorConcealmentIntfc.dll"
-file=\epoc32\release\ARMV5\urel\ErrorConcealmentIntfcMsgHdlr.dll 	"sys\bin\ErrorConcealmentIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\ErrorConcealmentIntfcProxy.dll 	"sys\bin\ErrorConcealmentIntfcProxy.dll"
-file=\epoc32\release\ARMV5\urel\G711DecoderIntfc.dll 	"sys\bin\G711DecoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\G711DecoderIntfcMsgHdlr.dll 	"sys\bin\G711DecoderIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\G711DecoderIntfcProxy.dll 	"sys\bin\G711DecoderIntfcProxy.dll"
-file=\epoc32\release\ARMV5\urel\G711EncoderIntfc.dll 	"sys\bin\G711EncoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\G711EncoderIntfcMsgHdlr.dll 	"sys\bin\G711EncoderIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\G711EncoderIntfcProxy.dll 	"sys\bin\G711EncoderIntfcProxy.dll"
-file=\epoc32\release\ARMV5\urel\G729DecoderIntfc.dll 	"sys\bin\G729DecoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\G729DecoderIntfcMsgHdlr.dll 	"sys\bin\G729DecoderIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\G729DecoderIntfcProxy.dll 	"sys\bin\G729DecoderIntfcProxy.dll"
-file=\epoc32\release\ARMV5\urel\G729EncoderIntfc.dll 	"sys\bin\G729EncoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\G729EncoderIntfcMsgHdlr.dll 	"sys\bin\G729EncoderIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\G729EncoderIntfcProxy.dll 	"sys\bin\G729EncoderIntfcProxy.dll"
-file=\epoc32\release\ARMV5\urel\IlbcDecoderIntfc.dll 	"sys\bin\IlbcDecoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\IlbcDecoderIntfcMsgHdlr.dll 	"sys\bin\IlbcDecoderIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\IlbcDecoderIntfcProxy.dll 	"sys\bin\IlbcDecoderIntfcProxy.dll"
-file=\epoc32\release\ARMV5\urel\IlbcEncoderIntfc.dll 	"sys\bin\IlbcEncoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\IlbcEncoderIntfcMsgHdlr.dll 	"sys\bin\IlbcEncoderIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\IlbcEncoderIntfcProxy.dll 	"sys\bin\IlbcEncoderIntfcProxy.dll"
-file=\epoc32\release\ARMV5\urel\SpeechEncoderConfig.dll 	"sys\bin\SpeechEncoderConfig.dll"
-file=\epoc32\release\ARMV5\urel\SpeechEncoderConfigMsgHdlr.dll 	"sys\bin\SpeechEncoderConfigMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\SpeechEncoderConfigProxy.dll 	"sys\bin\SpeechEncoderConfigProxy.dll"
-file=\epoc32\release\ARMV5\urel\EAacPlusDecoderIntfc.dll 	"sys\bin\EAacPlusDecoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\EAacPlusDecoderIntfcMsgHdlr.dll 	"sys\bin\EAacPlusDecoderIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\EAacPlusDecoderIntfcProxy.dll 	"sys\bin\EAacPlusDecoderIntfcProxy.dll"
-file=\epoc32\release\ARMV5\urel\SbcEncoderIntfc.dll 	"sys\bin\SbcEncoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\SbcEncoderIntfcMsgHdlr.dll 	"sys\bin\SbcEncoderIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\SbcEncoderIntfcProxy.dll 	"sys\bin\SbcEncoderIntfcProxy.dll"
-file=\epoc32\release\ARMV5\urel\Ra8DecoderIntfc.dll 	"sys\bin\Ra8DecoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\Ra8CustomInterfaceMsgHdlr.dll 	"sys\bin\Ra8CustomInterfaceMsgHdlr.dll"
-file=\epoc32\release\ARMV5\urel\Ra8CustomInterfaceProxy.dll 	"sys\bin\Ra8CustomInterfaceProxy.dll"
-file=\epoc32\release\ARMV5\urel\WmaDecoderIntfc.dll 	"sys\bin\WmaDecoderIntfc.dll"
-file=\epoc32\release\ARMV5\urel\WmaDecoderIntfcMsgHdlr.dll 	"sys\bin\WmaDecoderIntfcMsgHdlr.dll"
 file=\epoc32\release\ARMV5\urel\WmaDecoderIntfcProxy.dll 	"sys\bin\WmaDecoderIntfcProxy.dll"
 data=\epoc32\data\Z\System\install\WmaDecoderIntfc_Stub.sis 	"System\Install\WmaDecoderIntfc_Stub.sis"
 data=\epoc32\data\Z\System\install\nga_mdf_postprocessor_stub.sis 	"System\install\nga_mdf_postprocessor_stub.sis"
@@ -5435,8 +4601,6 @@
 file=\epoc32\release\ARMV5\urel\psmserver.exe 	"sys\bin\psmserver.exe"
 file=\epoc32\release\ARMV5\urel\psmclient.dll 	"sys\bin\psmclient.dll"
 file=\epoc32\release\ARMV5\urel\RestrictedAudioOutput.dll 	"sys\bin\RestrictedAudioOutput.dll"
-file=\epoc32\release\ARMV5\urel\RestrictedAudioOutputMessageHandler.dll 	"sys\bin\RestrictedAudioOutputMessageHandler.dll"
-file=\epoc32\release\ARMV5\urel\RestrictedAudioOutputProxy.dll 	"sys\bin\RestrictedAudioOutputProxy.dll"
 data=\epoc32\data\Z\System\install\RestrictedAudioOutput_Stub.SIS 	"System\Install\RestrictedAudioOutput_Stub.SIS"
 file=\epoc32\release\ARMV5\urel\sensordatacompensator.dll 	"sys\bin\sensordatacompensator.dll"
 file=\epoc32\release\ARMV5\urel\sensorserver.exe 	"sys\bin\sensorserver.exe"
@@ -5451,7 +4615,6 @@
 data=\epoc32\data\Z\private\2000D75B\startup\0\stem_criticalappscmdlist.rsc 	"private\2000D75B\startup\0\criticalappscmdlist.rsc"
 data=\epoc32\data\Z\private\2000D75B\startup\0\stem_noncriticalcmdlist.rsc 	"private\2000D75B\startup\0\noncriticalcmdlist.rsc"
 data=\epoc32\data\Z\private\2000D75B\hw\stem_wserv_hw.rsc 	"private\2000D75B\startup\0\wserv.rsc"
-//data=\epoc32\data\Z\private\2000D75B\hw\stem_noncriticalcmdlist_hw.rsc 	"private\2000D75B\startup\0\noncriticalcmdlist_hw.rsc"
 data=\epoc32\data\Z\private\2000D75B\shutdown\stem_shutdowncmdlists.rsc 	"private\2000D75B\shutdown\shutdowncmdlists.rsc"
 file=\epoc32\release\ARMV5\urel\saaemergencycallrfadaptation.dll 	"sys\bin\emergencycallrfadaptation.dll"
 file=\epoc32\release\ARMV5\urel\saastateadaptation.dll 	"sys\bin\stateadaptation.dll"
@@ -5460,11 +4623,10 @@
 file=\epoc32\release\ARMV5\urel\saartcadaptation.dll 	"sys\bin\rtcadaptation.dll"
 file=\epoc32\release\ARMV5\DEBUG_DIR\starterclient.dll 	"sys\bin\starterclient.dll"
 file=\epoc32\release\ARMV5\DEBUG_DIR\startupadaptationadapter.dll 	"sys\bin\startupadaptationadapter.dll"
-file=\epoc32\release\ARMV5\DEBUG_DIR\ssmclayersup.dll 	"sys\bin\ssmclayersup.dll"
 file=\epoc32\release\ARMV5\DEBUG_DIR\rfstatusswppolicy.dll 	"sys\bin\rfstatusswppolicy.dll"
 file=\epoc32\release\ARMV5\DEBUG_DIR\ssm.state.policy.0001.dll 	"sys\bin\ssm.state.policy.0001.dll"
 data=\epoc32\data\Z\private\2000d75b\normal\gsanormalcmdlist.rsc 	"private\2000d75b\normal\gsanormalcmdlist.rsc"
-file=\epoc32\release\ARMV5\DEBUG_DIR\customcmds.dll 	"sys\bin\customcmds.dll"
+file=\epoc32\release\ARMV5\DEBUG_DIR\stem_customcmds.dll 	"sys\bin\customcmds.dll"
 file=\epoc32\release\ARMV5\DEBUG_DIR\ssm.swp.policy.simstatus.dll 	"sys\bin\ssm.swp.policy.simstatus.dll"
 data=\epoc32\data\Z\private\10202be9\2001d2aa.txt 	"private\10202be9\2001d2aa.txt"
 file=\epoc32\release\ARMV5\DEBUG_DIR\ssmactivitycmd.dll 	"sys\bin\ssmactivitycmd.dll"
@@ -5506,10 +4668,7 @@
 file=\epoc32\release\ARMV5\urel\wlanagt.agt 	"sys\bin\wlanagt.agt"
 file=\epoc32\release\ARMV5\urel\WLANDBIF.dll 	"sys\bin\WLANDBIF.dll"
 file=\epoc32\release\ARMV5\urel\wlandevicesettings.dll 	"sys\bin\wlandevicesettings.dll"
-file=\epoc32\release\ARMV5\urel\wlmplatform.dll 	"sys\bin\wlmplatform.dll"
 file=\epoc32\release\ARMV5\urel\wlmserver.dll 	"sys\bin\wlmserver.dll"
-file=\epoc32\release\ARMV5\urel\wlmserverexe.exe 	"sys\bin\wlmserverexe.exe"
-file=\epoc32\release\ARMV5\urel\wlmserversrv.dll 	"sys\bin\wlmserversrv.dll" 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  wlanmgmtimpl.dll ,  wlanmgmtimpl.dll ) 
 __ECOM_PLUGIN(\epoc32\release\ARMV5\urel,Sys\Bin,\epoc32\data\Z,Resource\Plugins,  wlancontrolimpl.dll ,  wlancontrolimpl.dll ) 
 data=\epoc32\data\Z\Private\101f8ec5\backup_registration.xml 	"private\101f8ec5\backup_registration.xml"
@@ -5618,10 +4777,6 @@
 data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\PerfMon_reg.rsc 	"Private\10003a3f\import\apps\PerfMon_reg.rsc" 
 data=\epoc32\data\Z\Private\20011385\backup_registration.xml 	"private\20011385\backup_registration.xml"
 data=\epoc32\data\Z\System\Install\PerfMon_stub.sis 	"system\install\PerfMon_stub.sis"
-file=\epoc32\release\ARMV5\urel\ScreenGrabber.exe 	"sys\bin\ScreenGrabber.exe" 
-data=\epoc32\data\Z\resource\apps\ScreenGrabber_AIF.MIF 	"resource\apps\ScreenGrabber_aif.mif" 
-data=\epoc32\data\Z\resource\apps\ScreenGrabber.RSC 	"resource\apps\ScreenGrabber.rsc" 
-data=\epoc32\data\Z\PRIVATE\10003A3F\APPS\ScreenGrabber_reg.rsc 	"Private\10003a3f\import\apps\ScreenGrabber_reg.rsc" 
 data=\epoc32\data\Z\Private\101FB751\backup_registration.xml 	"private\101FB751\backup_registration.xml"
 data=\epoc32\data\Z\System\Install\ScreenGrabber_stub.sis 	"system\install\ScreenGrabber_stub.sis"
 file=\epoc32\release\ARMV5\urel\stiftestengine.dll 	"sys\bin\stiftestengine.dll"
@@ -5652,7 +4807,6 @@
 data=\epoc32\data\Z\resource\AspSyncUtil.RSC 	"resource\AspSyncUtil.rsc"
 data=\epoc32\data\Z\resource\messaging\audiomessagemtm.rsc 	"resource\messaging\audiomessagemtm.rsc"
 data=\epoc32\data\Z\resource\messaging\mtm\audiomessageregistry.rsc 	"resource\messaging\mtm\audiomessagereg.rsc"
-data=\epoc32\data\Z\resource\apps\audiomessage.rsc 	"resource\apps\audiomessage.rsc"
 data=\epoc32\data\Z\resource\messaging\mtm\BioMtm.rsc 	"resource\messaging\mtm\BioMtm.rsc"
 data=\epoc32\data\Z\resource\messaging\Bium.rsc 	"resource\messaging\Bium.rsc"
 data=\epoc32\data\Z\resource\satinfo.rsC 	"resource\satinfo.rsc"
@@ -5662,7 +4816,6 @@
 data=\epoc32\data\Z\resource\apps\Calcsoft.RSC 	"resource\apps\Calcsoft.rsc" 
 data=\epoc32\data\Z\resource\apps\calenaiwprovidermenu.rsc 	"resource\apps\calenaiwprovidermenu.rsc"
 data=\epoc32\data\Z\resource\CalenCommonUI.rsc 	"resource\CalenCommonUI.rsc"
-data=\epoc32\data\Z\resource\apps\CALENDAR.RSC 	"resource\apps\Calendar.rsc"
 data=\epoc32\data\Z\resource\plugins\calendarpluginresource.Rsc 	"resource\plugins\calendarpluginresource.Rsc"
 data=\epoc32\data\Z\resource\CalenDefaultEditorsData.rsc 	"resource\CalenDefaultEditorsData.rsc"
 file=\epoc32\release\ARMV5\urel\calenregionalutil.dll 	"sys\bin\calenregionalutil.dll"
@@ -5673,15 +4826,12 @@
 data=\epoc32\data\Z\resource\apps\vgacamsettings.RSC 	"resource\apps\vgacamsettings.rsc" 
 data=\epoc32\data\Z\resource\gscamerapluginrsc.rsc 	"resource\gscamerapluginrsc.rsc"
 data=\epoc32\data\Z\resource\gscamerapluginrscv2.rsc 	"resource\gscamerapluginrscv2.rsc"
-data=\epoc32\data\Z\resource\apps\ccaapp.RSC 	"resource\apps\ccaapp.rsc" 
 data=\epoc32\data\Z\resource\ccappcommlauncherpluginrsc.rsc 	"resource\ccappcommlauncherpluginrsc.rsc"
 data=\epoc32\data\Z\resource\ccacontactorservicersc.rsc 	"resource\ccacontactorservicersc.rsc"
 data=\epoc32\data\Z\resource\ccappmycardpluginrsc.rsc 	"resource\ccappmycardpluginrsc.rsc"
 data=\epoc32\data\Z\resource\ccappdetailsviewpluginrsc.rsc 	"resource\ccappdetailsviewpluginrsc.rsc"
 data=\epoc32\data\Z\Resource\apps\cch.RSC 	"resource\apps\cch.RSC"
 data=\epoc32\data\Z\Resource\apps\cchuinotif.rsc 	"resource\apps\cchuinotif.rsc"
-data=\epoc32\data\Z\resource\apps\clock.RSC 	"resource\apps\clock.rsc" 
-data=\epoc32\data\Z\resource\apps\clock_loc.RSC 	"resource\apps\clock_loc.rsc" 
 data=\epoc32\data\Z\resource\timezonelocalization\timezones.rsc 	"resource\timezonelocalization\timezones.rsc"
 data=\epoc32\data\Z\resource\timezonelocalization\timezonegroups.rsc 	"resource\timezonelocalization\timezonegroups.rsc"
 data=\epoc32\data\Z\resource\apps\clockindicatorpaneplugin.rsc 	"resource\apps\clockindicatorpaneplugin.rsc"
@@ -5694,8 +4844,6 @@
 data=\epoc32\data\Z\resource\gsdasplugin_rsc.rsc 	"resource\gsdasplugin_rsc.rsc"
 data=\epoc32\data\Z\Private\200159c0\install\desktop_20026f4f\hsps\00\icon.mif 	"private\200159c0\install\desktop_20026f4f\hsps\00\icon.mif"
 data=\epoc32\data\Z\Private\200159c0\install\desktop_20026f4f\hsps\00\desktopconfiguration.dtd 	"private\200159c0\install\desktop_20026f4f\hsps\00\desktopconfiguration.dtd"
-data=\epoc32\data\Z\resource\apps\devdiagapp.RSC 	"resource\apps\devdiagapp.rsc" 
-data=\epoc32\data\Z\resource\apps\DevEncUi.RSC 	"resource\apps\DevEncUi.rsc" 
 data=\epoc32\data\Z\resource\devencnotifplugin.rsc 	"resource\devencnotifplugin.rsc"
 data=\epoc32\data\Z\resource\devencGsPluginRsc.rsc 	"resource\devencGsPluginRsc.rsc"
 data=\epoc32\data\Z\resource\easydialingpluginresources.rsc 	"resource\easydialingpluginresources.rsc"
@@ -5740,10 +4888,7 @@
 data=\epoc32\data\Z\resource\apps\GSEmailSettingsPlugin.rsc 	"resource\apps\GSEmailSettingsPlugin.rsc"
 data=\epoc32\data\Z\resource\mediasettings.rsc 	"resource\mediasettings.rsc"
 data=\epoc32\data\Z\resource\gsvmbxpluginrsc.rsc 	"resource\gsvmbxpluginrsc.rsc"
-data=\epoc32\data\Z\resource\apps\vcxhgmyvideos.rsc 	"resource\apps\vcxhgmyvideos.rsc"
-data=\epoc32\data\Z\resource\apps\vcxhgmyvideos.mif 	"resource\apps\vcxhgmyvideos.mif"
 data=\epoc32\data\Z\resource\apps\vcxhgmyvideosicons.mif 	"resource\apps\vcxhgmyvideosicons.mif"
-data=\epoc32\data\Z\resource\apps\vcxhgvodui.rsc 	"resource\apps\vcxhgvodui.rsc"
 data=\epoc32\data\Z\resource\apps\vcxhgvoddefaulticons.mif 	"resource\apps\vcxhgvoddefaulticons.mif"
 data=\epoc32\data\Z\private\101ffa91\plugins\BlackWhite.rsc 	"private\101ffa91\plugins\BlackWhite.rsc"
 data=\epoc32\data\Z\private\101ffa91\plugins\Brightness.rsc 	"private\101ffa91\plugins\Brightness.rsc"
@@ -5764,14 +4909,12 @@
 data=\epoc32\data\Z\resource\ImageEditorProviderInternal.rsc 	"resource\ImageEditorProviderInternal.rsc"
 data=\epoc32\data\Z\resource\apps\ImageEditorPluginBase.rsc 	"resource\apps\ImageEditorPluginBase.rsc"
 data=\epoc32\data\Z\resource\apps\ImageEditor.rsc 	"resource\apps\ImageEditor.rsc"
-data=\epoc32\data\Z\resource\apps\ImageEditorUi.rsc 	"resource\apps\ImageEditorUi.rsc"
 DATA=\epoc32\data\Z\resource\imageprintengine.rsc 	"resource\imageprintengine.rsc"
 DATA=\epoc32\data\Z\resource\aiwprintingprovider.rsc 	"resource\aiwprintingprovider.rsc"
 data=\epoc32\data\Z\resource\imageprintdata\protocols\dpof.rsc 	"resource\imageprintdata\protocols\dpof.rsc" 
 data=\epoc32\data\Z\resource\imstatuspaneindicatorpluginrss.rsc 	"resource\imstatuspaneindicatorpluginrss.rsc"
 data=\epoc32\data\Z\resource\vimpstuires.rsc 	"resource\vimpstuires.rsc"
 data=\epoc32\data\Z\resource\vimpstdetailsviewpluginrsc.rsc 	"resource\vimpstdetailsviewpluginrsc.rsc"
-data=\epoc32\data\Z\resource\apps\vimpstui.mif 	"resource\apps\vimpstui.mif"
 data=\epoc32\data\Z\resource\apps\vimpst_servicetab_default.mif 	"resource\apps\vimpst_servicetab_default.mif"
 data=\epoc32\winscw\c\private\102828DD\data\xsp\xsp\files\r47.conversations.mif 	"private\102828DD\data\xsp\xsp\files\r47.conversations.mif"
 data=\epoc32\winscw\c\private\102828DD\data\xsp\xsp\brandfile.bin.r47 	"private\102828DD\data\xsp\xsp\brandfile.bin.r47"
@@ -5790,17 +4933,14 @@
 data=\epoc32\data\Z\resource\java\eswtcore.rsc 	"resource\java\eswtcore.rsc"
 data=\epoc32\data\Z\resource\lmkui.rsC 	"resource\lmkui.rsc"
 data=\epoc32\data\Z\Resource\apps\Landmarks.rsc 	"resource\apps\Landmarks.rsc"
-data=\epoc32\data\Z\resource\apps\Logs.rsc 	"resource\apps\Logs.rsc"
 REM Light Weight Player
 data=\epoc32\data\Z\resource\MailPlainView.rsc 	"resource\MailPlainView.rsc"
 data=\epoc32\data\Z\resource\MsgMailUtils.rsc 	"resource\MsgMailUtils.rsc"
 data=\epoc32\data\Z\resource\apps\matrixmenu.RSC 	"resource\apps\matrixmenu.rsc" 
 data=\epoc32\data\Z\resource\apps\MCEEXTRAITEMS.RSC 	"resource\apps\mceextraitems.rsc"
-data=\epoc32\data\Z\resource\apps\MCE.RSC 	"resource\apps\Mce.rsc"
 data=\epoc32\data\Z\resource\apps\MceLogEng.rsc 	"resource\apps\MceLogEng.rsc"
 data=\epoc32\data\Z\resource\mcesettings.rsc 	"resource\mcesettings.rsc"
 data=\epoc32\data\Z\resource\MceSettingsGSPluginRsc.rsc 	"resource\MceSettingsGSPluginRsc.rsc"
-data=\epoc32\data\Z\resource\apps\mediasettings.RSC 	"resource\apps\mediasettings.rsc" 
 data=\epoc32\data\Z\resource\MemStatePopup.rsc 	"resource\MemStatePopup.rsc"
 data=\epoc32\data\z\resource\apps\foldersuite.rsc 	"resource\apps\foldersuite.rsc"
 data=\epoc32\data\Z\private\200113DD\content\01\matrixmenudata.dtd 	"private\200113DD\content\01\matrixmenudata.dtd"
@@ -5814,16 +4954,10 @@
 data=\epoc32\data\Z\resource\messaging\mtm\not.rsc 	"resource\messaging\mtm\Not.rsc"
 data=\epoc32\data\Z\resource\apps\mpxaudioeffectsview.rsc 	"resource\apps\mpxaudioeffectsview.rsc"
 data=\epoc32\data\Z\resource\apps\mpxfmtx.rsc 	"resource\apps\mpxfmtx.rsc"
-data=\epoc32\data\Z\resource\apps\mpxmediakeyhandler.rsc 	"resource\apps\mpxmediakeyhandler.rsc"
-data=\epoc32\data\Z\resource\apps\mpxscreensaverplugin.rsc 	"resource\apps\mpxscreensaverplugin.rsc"
 data=\epoc32\data\Z\resource\apps\mpxcollectiondbhgres.rsc 	"resource\apps\mpxcollectiondbhgres.rsc"
 data=\epoc32\data\Z\resource\apps\mpxcollectiondbres.rsc 	"resource\apps\mpxcollectiondbres.rsc"
 data=\epoc32\data\Z\resource\apps\pcres.rsc 	"resource\apps\pcres.rsc"
 data=\epoc32\data\Z\resource\apps\mpxupnpbrowsedialog.rsc 	"resource\apps\mpxupnpbrowsedialog.rsc"
-data=\epoc32\data\Z\resource\apps\mpxvideoplaybackcontrols.rsc 	"resource\apps\mpxvideoplaybackcontrols.rsc"
-data=\epoc32\data\Z\resource\apps\mpxvideoplaybackviews.rsc 	"resource\apps\mpxvideoplaybackviews.rsc"
-data=\epoc32\data\Z\resource\apps\mpxvideoplayer.RSC 	"resource\apps\mpxvideoplayer.rsc" 
-data=\epoc32\data\Z\resource\apps\mpxvideoplayer_aif.mif 	"resource\apps\mpxvideoplayer_aif.mif"
 data=\epoc32\data\Z\resource\apps\mpxwaitnotedialog.rsc 	"resource\apps\mpxwaitnotedialog.rsc"
 data=\epoc32\data\Z\resource\mseng.rsc 	"resource\mseng.rsc"
 data=\epoc32\data\Z\resource\MsgEditorAppUi.rsc 	"resource\MsgEditorAppUi.rsc"
@@ -5847,10 +4981,8 @@
 data=\epoc32\data\Z\resource\plugins\notespluginsresource.rsc 	"resource\plugins\notespluginsresource.Rsc"
 data=\epoc32\data\Z\resource\WPEMailAdapterResource.rsc 	"resource\WPEMailAdapter.rsc"
 REM OMA Device Management Application UI IBY-file for localizable elements
-data=\epoc32\data\Z\resource\apps\NSmlDMSync.RSC 	"resource\apps\NSmlDMSync.rsc" 
 data=\epoc32\data\Z\resource\OmaDmCPPluginResource.rsc 	"resource\OmaDmCPPluginResource.rsc"
 REM OMA Data Synchronization Application UI IBY-file for localizable elements
-data=\epoc32\data\Z\resource\apps\NSmlDSSync.RSC 	"resource\apps\NSmlDSSync.rsc" 
 data=\epoc32\data\Z\resource\NsmlDSGSPluginResource.RSC 	"resource\NsmlDSGSPluginResource.RSC"
 data=\epoc32\data\Z\resource\apps\Operatormenu.RSC 	"resource\apps\Operatormenu.rsc" 
 data=\epoc32\data\Z\Private\200159c0\install\organizer_2001f481\xuikon\00\orga.o0000 	"private\200159c0\install\organizer_2001f481\xuikon\00\orga.o0000"
@@ -5862,7 +4994,6 @@
 data=\epoc32\data\Z\resource\apps\pbk2rclsendbusinesscardpluginimpl.RSC 	"resource\apps\pbk2rclsendbusinesscardpluginimpl.rsc" 
 data=\epoc32\data\Z\resource\apps\pbk2rclactionutils.RSC 	"resource\apps\pbk2rclactionutils.rsc" 
 data=\epoc32\data\Z\resource\pbk2rclengine.rsc 	"resource\pbk2rclengine.rsc"
-data=\epoc32\data\Z\resource\apps\Phonebook2.RSC 	"resource\apps\Phonebook2.rsc" 
 data=\epoc32\data\Z\resource\Pbk2Presentation.rsc 	"resource\Pbk2Presentation.rsc"
 data=\epoc32\data\Z\resource\Pbk2PresentationChinese.rsc 	"resource\Pbk2PresentationChinese.rsc"
 data=\epoc32\data\Z\resource\Pbk2PresentationJapanese.rsc 	"resource\Pbk2PresentationJapanese.rsc"
@@ -5870,7 +5001,6 @@
 data=\epoc32\data\Z\resource\Pbk2Commands.rsc 	"resource\Pbk2Commands.rsc"
 data=\epoc32\data\Z\resource\Pbk2UiExtCommon.rsc 	"resource\Pbk2UiExtCommon.rsc"
 data=\epoc32\data\Z\resource\Pbk2CommonUi.rsc 	"resource\Pbk2CommonUi.rsc"
-data=\epoc32\data\Z\resource\apps\Pbk2ServerApp.rsc 	"resource\apps\Pbk2ServerApp.rsc"
 data=\epoc32\data\Z\resource\Pbk2UIServicesRes.rsc 	"resource\Pbk2UIServicesRes.rsc"
 data=\epoc32\data\Z\resource\Pbk2ExNamesListRes.rsc 	"resource\Pbk2ExNamesListRes.rsc"
 data=\epoc32\data\Z\resource\Pbk2GroupUIRes.rsc 	"resource\Pbk2GroupUIRes.rsc"
@@ -5895,7 +5025,6 @@
 data=\epoc32\data\Z\resource\apps\callhandlingui.rsc 	"resource\apps\callhandlingui.rsc"
 data=\epoc32\data\Z\resource\apps\phoneuitouch.rsc 	"resource\apps\phoneuitouch.rsc"
 data=\epoc32\data\Z\resource\apps\phoneuivoip.rsc 	"resource\apps\phoneuivoip.rsc"
-data=\epoc32\data\Z\resource\apps\pnpprovisioning.RSC 	"resource\apps\pnpprovisioning.rsc" 
 data=\epoc32\data\Z\Private\200159c0\install\posterwideimage_2001fdbc\xuikon\00\posterwideimage.o0000 	"private\200159c0\install\posterwideimage_2001fdbc\xuikon\00\posterwideimage.o0000"
 data=\epoc32\data\Z\Private\200159c0\install\profile_2001cb7c\xuikon\00\profile.o0000 	"private\200159c0\install\profile_2001cb7c\xuikon\00\profile.o0000"
 data=\epoc32\data\Z\Private\200159c0\install\profile_2001cb7c\hsps\00\icon.mif 	"private\200159c0\install\profile_2001cb7c\hsps\00\icon.mif"
@@ -5949,7 +5078,6 @@
 data=\epoc32\data\Z\resource\SVGTUIControl.rsc 	"resource\SVGTUIControl.rsc"
 data=\epoc32\data\Z\resource\apps\glxtagsbrowserview.rsc 	"resource\glxtagsbrowserview.rsc"
 data=\epoc32\data\Z\Private\200159c0\install\templateview_20026f50\xuikon\00\templateview.o0000 	"private\200159c0\install\templateview_20026f50\xuikon\00\templateview.o0000"
-data=\epoc32\data\Z\resource\apps\UISettingsSrv.RSC 	"resource\apps\UISettingsSrv.rsc" 
 data=\epoc32\data\Z\resource\UniMmsPluginD.rsc 	"resource\UniMmsPluginD.rsc"
 data=\epoc32\data\Z\resource\UniDataModel.rsc 	"resource\UniDataModel.rsc"
 data=\epoc32\data\Z\resource\messaging\UniMtms.rsc 	"resource\messaging\UniMtms.rsc"
@@ -5957,9 +5085,7 @@
 data=\epoc32\data\Z\resource\UniSmsPluginD.rsc 	"resource\UniSmsPluginD.rsc"
 data=\epoc32\data\Z\resource\UniUtils.rsc 	"resource\UniUtils.rsc"
 REM Resource file(s) for Ussd application (ussd.iby)
-data=\epoc32\data\Z\resource\apps\ussd.RSC 	"resource\apps\ussd.rsc"  
 data=\epoc32\data\Z\resource\wpvccadapterrsc.rsc 	"resource\wpvccadapterrsc.rsc"
-data=\epoc32\data\Z\resource\apps\vcxnsscheduleview.rsc 	"resource\apps\vcxnsscheduleview.rsc"
 data=\epoc32\data\Z\resource\vccontrolpanelpluginrsc.rsc 	"resource\vccontrolpanelpluginrsc.rsc"
 data=\epoc32\data\Z\resource\Plugins\vcxnotifier.rsc 	"resource\Plugins\vcxnotifier.rsc"
 data=\epoc32\data\Z\resource\Plugins\IptvOmaProvisioningAdapterRes.rsc 	"resource\Plugins\IptvOmaProvisioningAdapterRes.rsc"
@@ -5968,10 +5094,8 @@
 data=\epoc32\data\Z\Private\200159c0\install\view_200286e4\xuikon\00\view.o0000 	"private\200159c0\install\view_200286e4\xuikon\00\view.o0000"
 data=\epoc32\data\Z\Private\200159c0\install\view_200286e5\xuikon\00\view.o0000 	"private\200159c0\install\view_200286e5\xuikon\00\view.o0000"
 data=\epoc32\data\Z\resource\VPbkCntModelRes.rsc 	"resource\VPbkCntModelRes.rsc"
-data=\epoc32\data\Z\resource\apps\vuivoicerecognition.RSC 	"resource\apps\vuivoicerecognition.rsc" 
 data=\epoc32\data\Z\resource\aiwpbkinfoviewprovider.rsc 	"resource\aiwpbkinfoviewprovider.rsc"
 data=\epoc32\data\Z\resource\pbkinfoview.rsc 	"resource\pbkinfoview.rsc"
-data=\epoc32\data\Z\resource\apps\VoIPProvisioningApp.RSC 	"resource\apps\VoIPProvisioningApp.rsc" 
 data=\epoc32\data\Z\resource\apps\widgetmanagerview.rsc 	"resource\apps\widgetmanagerview.rsc"
 data=\epoc32\data\Z\resource\wpgeneralvoipsettingsadapter.rsc 	"resource\wpgeneralvoipsettingsadapter.rsc"
 data=\epoc32\data\Z\resource\wpvoipadapter.rsc 	"resource\wpvoipadapter.rsc"
@@ -5989,7 +5113,6 @@
 data=\epoc32\data\Z\resource\SWInstCommonUI.rsc 	"resource\SWInstCommonUI.rsc"
 data=\epoc32\data\Z\Resource\SisxUIData.rsc 	"Resource\SisxUIData.rsc"
 data=\epoc32\data\Z\resource\swidaemon.rsc 	"resource\swidaemon.rsc"
-data=\epoc32\data\Z\resource\apps\ApplicationManagement.RSC 	"resource\apps\ApplicationManagement.rsc" 
 data=\epoc32\data\Z\resource\appmngr2gsinstalledpluginrsc.rsc 	"resource\appmngr2gsinstalledpluginrsc.rsc"
 data=\epoc32\data\Z\resource\appmngr2gsinstfilespluginrsc.rsc 	"resource\appmngr2gsinstfilespluginrsc.rsc"
 data=\epoc32\data\Z\resource\appmngr2gssettingspluginrsc.rsc 	"resource\appmngr2gssettingspluginrsc.rsc"
@@ -6013,8 +5136,6 @@
 data=\epoc32\data\Z\resource\cmpluginvpnui.rsc 	"resource\cmpluginvpnui.rsc"
 data=\epoc32\data\Z\resource\cmwlanui.rsc 	"resource\cmwlanui.rsc"
 data=\epoc32\data\Z\resource\CodUi.rsc 	"resource\CodUi.rsc"
-data=\epoc32\data\Z\resource\apps\CodViewer.RSC 	"resource\apps\CodViewer.rsc" 
-data=\epoc32\data\Z\resource\apps\RoapApp.RSC 	"resource\apps\RoapApp.rsc" 
 data=\epoc32\data\Z\Resource\CommonDialogs.rsc 	"resource\CommonDialogs.rsc"
 data=\epoc32\data\Z\Resource\FindItemui.rsc 	"resource\FindItemui.rsc"
 data=\epoc32\data\Z\Resource\FindItemmenu.rsc 	"resource\FindItemmenu.rsc"
@@ -6051,7 +5172,6 @@
 data=\epoc32\data\Z\Resource\EIKCOCTL.rsc 	"resource\EikCoctl.rsc"
 file=\epoc32\release\ARMV5\urel\Elocl.dll 	"sys\bin\Elocl.loc"
 REM Equalizer
-data=\epoc32\data\Z\resource\apps\Equalizer.rsc 	"resource\apps\Equalizer.rsc"
 data=\epoc32\data\Z\resource\gsaccessoryplugin.rsc 	"resource\gsaccessoryplugin.rsc"
 data=\epoc32\data\Z\resource\GSAdminPluginRsc.rsc 	"resource\GSAdminPluginRsc.rsc"
 data=\epoc32\data\Z\resource\apps\GSApp.RSC 	"resource\apps\GSApp.rsc"
@@ -6157,7 +5277,6 @@
 data=\epoc32\data\Z\resource\messaging\bif\rsfwmountconfbcbif.rsc 	"resource\messaging\bif\rsfwmountconfbcbif.rsc"
 data=\epoc32\data\Z\resource\rsfwnotplugindlg.rsc 	"resource\rsfwnotplugindlg.rsc"
 data=\epoc32\data\Z\resource\satserver.rsc 	"resource\satserver.rsc"
-data=\epoc32\data\Z\resource\apps\SatUI.RSC 	"resource\apps\SatUI.rsc" 
 data=\epoc32\data\Z\resource\apps\SchemeApp.rsc 	"resource\apps\SchemeApp.rsc"
 data=\epoc32\data\Z\resource\sconftp.rsc 	"resource\sconftp.rsc"
 data=\epoc32\data\Z\resource\SCPNotifier.rsc 	"resource\SCPNotifier.rsc"
@@ -6201,7 +5320,6 @@
 DATA=\epoc32\data\Z\resource\WEPSecuritySettingsUI.rsc 	"resource\WEPSecuritySettingsUI.rsc"
 data=\epoc32\data\Z\resource\WidgetMenu.rsc 	"resource\WidgetMenu.rsc"
 data=\epoc32\data\Z\Resource\WidgetInstallerUI.rsc 	"Resource\WidgetInstallerUI.rsc"
-data=\epoc32\data\Z\resource\apps\WidgetUi.RSC 	"resource\apps\WidgetUi.rsc" 
 data=\epoc32\data\Z\resource\WiFiProtPlugin.rsc 	"resource\WiFiProtPlugin.rsc"
 DATA=\epoc32\data\Z\resource\EapSimUi.rsc 	"resource\EapSimUi.rsc"
 DATA=\epoc32\data\Z\resource\EapAkaUi.rsc 	"resource\EapAkaUi.rsc"
@@ -6219,7 +5337,6 @@
 data=\epoc32\data\Z\resource\wlanpluginrsc.rsc 	"resource\wlanpluginrsc.rsc"
 data=\epoc32\data\Z\resource\wlansettingsui.rsc 	"resource\wlansettingsui.rsc"
 data=\epoc32\data\Z\resource\wmdrmpkserver.rsc 	"resource\wmdrmpkserver.rsc"
-data=\epoc32\data\Z\resource\apps\wmdrmdlaapp.RSC 	"resource\apps\wmdrmdlaapp.rsc" 
 data=\epoc32\data\Z\resource\wmdrmdlautils.rsc 	"resource\wmdrmdlautils.rsc"
 DATA=\epoc32\data\Z\resource\WPASecuritySettingsUI.rsc 	"resource\WPASecuritySettingsUI.rsc"
 data=\epoc32\data\Z\resource\wpnatfwtraversaladapter.rsc 	"resource\wpnatfwtraversaladapter.rsc"
@@ -6230,7 +5347,6 @@
 REM WlanSnifferApWizardResources
 data=\epoc32\data\Z\resource\wsfapwizard.rsc 	"resource\wsfapwizard.rsc"
 REM WlanSnifferApplicationResources
-data=\epoc32\data\Z\resource\apps\wlansniffer.RSC 	"resource\apps\wlansniffer.rsc" 
 data=\epoc32\data\Z\Private\200159c0\install\wsfwidget_20026F45\hsps\00\wsfwidgetconfiguration.dtd 	"private\200159c0\install\wsfwidget_20026F45\hsps\00\wsfwidgetconfiguration.dtd"
 REM WlanInfoSortingResources
 data=\epoc32\data\Z\resource\wsfwlaninfosorting.rsc 	"resource\wsfwlaninfosorting.rsc"
@@ -6318,88 +5434,25 @@
 data=\epoc32\release\ARMV5\urel\z\private\100059C9\script0.txt 	"private\100059C9\script0.txt"
 data=\epoc32\release\ARMV5\urel\z\private\100059C9\script1.txt 	"private\100059C9\script1.txt"
 data=\epoc32\data\Z\Private\200159c0\install\wsfwidget_20026F45\hsps\00\wsfwidgetconfiguration.xml 	"private\200159c0\install\wsfwidget_20026F45\hsps\00\wsfwidgetconfiguration.xml"
-file=\epoc32\release\ARMV5\urel\star.exe 	"sys\bin\star.exe" 
-data=\epoc32\data\Z\resource\apps\star.RSC 	"resource\apps\star.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\star_reg.rsc 	"private\10003a3f\import\apps\star_reg.rsc"
-file=\epoc32\release\ARMV5\urel\wiggly.exe 	"sys\bin\wiggly.exe" 
-data=\epoc32\data\Z\resource\apps\wiggly.RSC 	"resource\apps\wiggly.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\wiggly_reg.rsc 	"private\10003a3f\import\apps\wiggly_reg.rsc"
-file=\epoc32\release\ARMV5\urel\animatedtiles.exe 	"sys\bin\animatedtiles.exe" 
-data=\epoc32\data\Z\resource\apps\animatedtiles.RSC 	"resource\apps\animatedtiles.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\animatedtiles_reg.rsc 	"private\10003a3f\import\apps\animatedtiles_reg.rsc"
-file=\epoc32\release\ARMV5\urel\collidingmice.exe 	"sys\bin\collidingmice.exe" 
-data=\epoc32\data\Z\resource\apps\collidingmice.RSC 	"resource\apps\collidingmice.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\collidingmice_reg.rsc 	"private\10003a3f\import\apps\collidingmice_reg.rsc"
-file=\epoc32\release\ARMV5\urel\addressbook.exe 	"sys\bin\addressbook.exe" 
-data=\epoc32\data\Z\resource\apps\addressbook.RSC 	"resource\apps\addressbook.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\addressbook_reg.rsc 	"private\10003a3f\import\apps\addressbook_reg.rsc"
-file=\epoc32\release\ARMV5\urel\svgviewer.exe 	"sys\bin\svgviewer.exe" 
-data=\epoc32\data\Z\resource\apps\svgviewer.RSC 	"resource\apps\svgviewer.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\svgviewer_reg.rsc 	"private\10003a3f\import\apps\svgviewer_reg.rsc"
-file=\epoc32\release\ARMV5\urel\analogclock.exe 	"sys\bin\analogclock.exe" 
-data=\epoc32\data\Z\resource\apps\analogclock.RSC 	"resource\apps\analogclock.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\analogclock_reg.rsc 	"private\10003a3f\import\apps\analogclock_reg.rsc"
-file=\epoc32\release\ARMV5\urel\imagegestures.exe 	"sys\bin\imagegestures.exe" 
-data=\epoc32\data\Z\resource\apps\imagegestures.RSC 	"resource\apps\imagegestures.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\imagegestures_reg.rsc 	"private\10003a3f\import\apps\imagegestures_reg.rsc"
-file=\epoc32\release\ARMV5\urel\qftp.exe 	"sys\bin\qftp.exe" 
-data=\epoc32\data\Z\resource\apps\qftp.RSC 	"resource\apps\qftp.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\qftp_reg.rsc 	"private\10003a3f\import\apps\qftp_reg.rsc"
-file=\epoc32\release\ARMV5\urel\masterdetail.exe 	"sys\bin\masterdetail.exe" 
-data=\epoc32\data\Z\resource\apps\masterdetail.RSC 	"resource\apps\masterdetail.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\masterdetail_reg.rsc 	"private\10003a3f\import\apps\masterdetail_reg.rsc"
-file=\epoc32\release\ARMV5\urel\previewer.exe 	"sys\bin\previewer.exe" 
-data=\epoc32\data\Z\resource\apps\previewer.RSC 	"resource\apps\previewer.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\previewer_reg.rsc 	"private\10003a3f\import\apps\previewer_reg.rsc"
-file=\epoc32\release\ARMV5\urel\fluidlauncher.exe 	"sys\bin\fluidlauncher.exe" 
-data=\epoc32\data\Z\resource\apps\fluidlauncher.RSC 	"resource\apps\fluidlauncher.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\fluidlauncher_reg.rsc 	"private\10003a3f\import\apps\fluidlauncher_reg.rsc"
-file=\epoc32\release\ARMV5\urel\deform.exe 	"sys\bin\deform.exe" 
-data=\epoc32\data\Z\resource\apps\deform.RSC 	"resource\apps\deform.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\deform_reg.rsc 	"private\10003a3f\import\apps\deform_reg.rsc"
 REM MISSING file=\epoc32\release\ARMV5\urel\standarddialogs.exe                   sys\bin\standarddialogs.exe 
 REM MISSING data=\epoc32\data\Z\resource\apps\standarddialogs.RSC   resource\apps\standarddialogs.rsc 
 REM MISSING data=\epoc32\data\Z\private\10003a3f\import\Apps\standarddialogs_reg.rsc   \private\10003a3f\import\apps\standarddialogs_reg.rsc
-file=\epoc32\release\ARMV5\urel\pathstroke.exe 	"sys\bin\pathstroke.exe" 
-data=\epoc32\data\Z\resource\apps\pathstroke.RSC 	"resource\apps\pathstroke.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\pathstroke_reg.rsc 	"private\10003a3f\import\apps\pathstroke_reg.rsc"
 REM MISSING file=\epoc32\release\ARMV5\urel\gradients.exe                   sys\bin\gradients.exe 
 REM MISSING data=\epoc32\data\Z\resource\apps\gradients.RSC   resource\apps\gradients.rsc 
 REM MISSING data=\epoc32\data\Z\private\10003a3f\import\Apps\gradients_reg.rsc   \private\10003a3f\import\apps\gradients_reg.rsc
-file=\epoc32\release\ARMV5\urel\moveblocks.exe 	"sys\bin\moveblocks.exe" 
-data=\epoc32\data\Z\resource\apps\moveblocks.RSC 	"resource\apps\moveblocks.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\moveblocks_reg.rsc 	"private\10003a3f\import\apps\moveblocks_reg.rsc"
-file=\epoc32\release\ARMV5\urel\stickman.exe 	"sys\bin\stickman.exe" 
-data=\epoc32\data\Z\resource\apps\stickman.RSC 	"resource\apps\stickman.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\stickman_reg.rsc 	"private\10003a3f\import\apps\stickman_reg.rsc"
-file=\epoc32\release\ARMV5\urel\fridgemagnets.exe 	"sys\bin\fridgemagnets.exe" 
-data=\epoc32\data\Z\resource\apps\fridgemagnets.RSC 	"resource\apps\fridgemagnets.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\fridgemagnets_reg.rsc 	"private\10003a3f\import\apps\fridgemagnets_reg.rsc"
 REM MISSING file=\epoc32\release\ARMV5\urel\blurpicker.exe                   sys\bin\blurpicker.exe 
 REM MISSING data=\epoc32\data\Z\resource\apps\blurpicker.RSC   resource\apps\blurpicker.rsc 
 REM MISSING data=\epoc32\data\Z\private\10003a3f\import\Apps\blurpicker_reg.rsc   \private\10003a3f\import\apps\blurpicker_reg.rsc
 REM MISSING file=\epoc32\release\ARMV5\urel\knobs.exe                   sys\bin\knobs.exe 
 REM MISSING data=\epoc32\data\Z\resource\apps\knobs.RSC   resource\apps\knobs.rsc 
 REM MISSING data=\epoc32\data\Z\private\10003a3f\import\Apps\knobs_reg.rsc   \private\10003a3f\import\apps\knobs_reg.rsc
-file=\epoc32\release\ARMV5\urel\states.exe 	"sys\bin\states.exe" 
-data=\epoc32\data\Z\resource\apps\states.RSC 	"resource\apps\states.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\states_reg.rsc 	"private\10003a3f\import\apps\states_reg.rsc"
-file=\epoc32\release\ARMV5\urel\saxbookmarks.exe 	"sys\bin\saxbookmarks.exe" 
-data=\epoc32\data\Z\resource\apps\saxbookmarks.RSC 	"resource\apps\saxbookmarks.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\saxbookmarks_reg.rsc 	"private\10003a3f\import\apps\saxbookmarks_reg.rsc"
 REM MISSING file=\epoc32\release\ARMV5\urel\defaultprototypes.exe                   sys\bin\defaultprototypes.exe 
 REM MISSING data=\epoc32\data\Z\resource\apps\defaultprototypes.RSC   resource\apps\defaultprototypes.rsc 
 REM MISSING data=\epoc32\data\Z\private\10003a3f\import\Apps\defaultprototypes_reg.rsc   \private\10003a3f\import\apps\defaultprototypes_reg.rsc
 REM MISSING file=\epoc32\release\ARMV5\urel\queuedcustomtype.exe                   sys\bin\queuedcustomtype.exe 
 REM MISSING data=\epoc32\data\Z\resource\apps\queuedcustomtype.RSC   resource\apps\queuedcustomtype.rsc 
 REM MISSING data=\epoc32\data\Z\private\10003a3f\import\Apps\queuedcustomtype_reg.rsc   \private\10003a3f\import\apps\queuedcustomtype_reg.rsc
-file=\epoc32\release\ARMV5\urel\anomaly.exe 	"sys\bin\anomaly.exe" 
-data=\epoc32\data\Z\resource\apps\anomaly.RSC 	"resource\apps\anomaly.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\anomaly_reg.rsc 	"private\10003a3f\import\apps\anomaly_reg.rsc"
 
-file=\epoc32\release\ARMV5\urel\weatherinfo.exe 	"sys\bin\weatherinfo.exe" 
-data=\epoc32\data\Z\resource\apps\weatherinfo.RSC 	"resource\apps\weatherinfo.rsc" 
-data=\epoc32\data\Z\private\10003a3f\import\Apps\weatherinfo_reg.rsc 	"private\10003a3f\import\apps\weatherinfo_reg.rsc"
 
 romchecksum=0x12345678