diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b3c7dd02e..738f6f71d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -192,6 +192,8 @@ add_subdirectory(external/patch_cmds)
add_subdirectory(external/DSTools)
add_subdirectory(external/DirectoryService)
add_subdirectory(ImageIO)
+add_subdirectory(login)
+add_subdirectory(DebugSymbols)
add_subdirectory(external/libcxxabi)
add_subdirectory(external/libcxx)
diff --git a/src/DebugSymbols/CMakeLists.txt b/src/DebugSymbols/CMakeLists.txt
index 7b04cc217..4ef796a6c 100644
--- a/src/DebugSymbols/CMakeLists.txt
+++ b/src/DebugSymbols/CMakeLists.txt
@@ -1,20 +1,22 @@
project(DebugSymbols)
-if(COMMAND cmake_policy)
- cmake_policy(SET CMP0003 NEW)
- cmake_policy(SET CMP0005 NEW)
-endif(COMMAND cmake_policy)
-
-include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+add_compile_options(
+ -nostdinc
+)
-set(DebugSymbols_sources
- DebugSymbols.mm
+include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}
)
-SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/darling")
-SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
-SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+add_framework(DebugSymbols
+ FAT
+ CURRENT_VERSION
+ PRIVATE
+ VERSION "A"
-add_library(DebugSymbols SHARED ${DebugSymbols_sources})
+ SOURCES
+ functions.c
-install(TARGETS DebugSymbols DESTINATION "${CMAKE_INSTALL_LIBDIR}/darling")
+ DEPENDENCIES
+ system
+)
diff --git a/src/DebugSymbols/DebugSymbols.mm b/src/DebugSymbols/DebugSymbols.mm
deleted file mode 100644
index ead15b2af..000000000
--- a/src/DebugSymbols/DebugSymbols.mm
+++ /dev/null
@@ -1,2 +0,0 @@
-void blank() {
-}
diff --git a/src/DebugSymbols/README.md b/src/DebugSymbols/README.md
deleted file mode 100644
index b24f80153..000000000
--- a/src/DebugSymbols/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# DebugSymbols.framework
-
-`DebugSymbols.framework` helps locate dSYM files when given a UUID.
-
diff --git a/src/DebugSymbols/functions.c b/src/DebugSymbols/functions.c
new file mode 100755
index 000000000..e11bca5e6
--- /dev/null
+++ b/src/DebugSymbols/functions.c
@@ -0,0 +1,49 @@
+/*
+This file is part of Darling.
+
+Copyright (C) 2017 Lubos Dolezel
+
+Darling is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Darling is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Darling. If not, see .
+*/
+
+void DBGAddDSYMURL(void) { }
+void DBGBlockPath(void) { }
+void DBGCopyDSYMPropertyLists(void) { }
+void DBGCopyDSYMURLForUUID(void) { }
+void DBGCopyDSYMURLForUUIDWithOptions(void) { }
+void DBGCopyFullDSYMURLForUUID(void) { }
+void DBGCopyFullDSYMURLForUUIDWithOptions(void) { }
+void DBGCopyMatchingUUIDsForURL(void) { }
+void DBGDwarfClose(void) { }
+void DBGDwarfGetAttributeKey(void) { }
+void DBGDwarfGetCompileUnitFunctions(void) { }
+void DBGDwarfGetCompileUnitLineTable(void) { }
+void DBGDwarfGetCompileUnits(void) { }
+void DBGDwarfGetDIEObjectsForAddress(void) { }
+void DBGDwarfGetFirstChild(void) { }
+void DBGDwarfGetLinkMap(void) { }
+void DBGDwarfGetParent(void) { }
+void DBGDwarfGetSibling(void) { }
+void DBGDwarfGetTagKey(void) { }
+void DBGDwarfOpen(void) { }
+void DBGExplicitSearchPathAdd(void) { }
+void DBGExplicitSearchPathRemove(void) { }
+void DBGExplicitSearchPathRemoveAll(void) { }
+void DBGPauseWatchingPaths(void) { }
+void DBGRegisterObserver(void) { }
+void DBGResumeWatchingPaths(void) { }
+void DBGSpotlightStart(void) { }
+void DBGSpotlightStop(void) { }
+void DBGTerminate(void) { }
+void DBGUnregisterObserver(void) { }
diff --git a/src/DebugSymbols/functions.h b/src/DebugSymbols/functions.h
new file mode 100755
index 000000000..d4979f354
--- /dev/null
+++ b/src/DebugSymbols/functions.h
@@ -0,0 +1,49 @@
+/*
+This file is part of Darling.
+
+Copyright (C) 2017 Lubos Dolezel
+
+Darling is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Darling is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Darling. If not, see .
+*/
+
+void DBGAddDSYMURL(void);
+void DBGBlockPath(void);
+void DBGCopyDSYMPropertyLists(void);
+void DBGCopyDSYMURLForUUID(void);
+void DBGCopyDSYMURLForUUIDWithOptions(void);
+void DBGCopyFullDSYMURLForUUID(void);
+void DBGCopyFullDSYMURLForUUIDWithOptions(void);
+void DBGCopyMatchingUUIDsForURL(void);
+void DBGDwarfClose(void);
+void DBGDwarfGetAttributeKey(void);
+void DBGDwarfGetCompileUnitFunctions(void);
+void DBGDwarfGetCompileUnitLineTable(void);
+void DBGDwarfGetCompileUnits(void);
+void DBGDwarfGetDIEObjectsForAddress(void);
+void DBGDwarfGetFirstChild(void);
+void DBGDwarfGetLinkMap(void);
+void DBGDwarfGetParent(void);
+void DBGDwarfGetSibling(void);
+void DBGDwarfGetTagKey(void);
+void DBGDwarfOpen(void);
+void DBGExplicitSearchPathAdd(void);
+void DBGExplicitSearchPathRemove(void);
+void DBGExplicitSearchPathRemoveAll(void);
+void DBGPauseWatchingPaths(void);
+void DBGRegisterObserver(void);
+void DBGResumeWatchingPaths(void);
+void DBGSpotlightStart(void);
+void DBGSpotlightStop(void);
+void DBGTerminate(void);
+void DBGUnregisterObserver(void);
diff --git a/src/DebugSymbols/include/DebugSymbols/DebugSymbols.h b/src/DebugSymbols/include/DebugSymbols/DebugSymbols.h
deleted file mode 100644
index e69de29bb..000000000
diff --git a/src/external/system_cmds b/src/external/system_cmds
index b3f3dd0bd..1f32732fe 160000
--- a/src/external/system_cmds
+++ b/src/external/system_cmds
@@ -1 +1 @@
-Subproject commit b3f3dd0bd8f920407cc88483727948c8ed7b2ab9
+Subproject commit 1f32732fe2667d08bdb28ef93dd1e1612a734042
diff --git a/src/login/CMakeLists.txt b/src/login/CMakeLists.txt
new file mode 100644
index 000000000..1f066f746
--- /dev/null
+++ b/src/login/CMakeLists.txt
@@ -0,0 +1,22 @@
+project(login)
+
+add_compile_options(
+ -nostdinc
+)
+
+include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+add_framework(login
+ FAT
+ CURRENT_VERSION
+ PRIVATE
+ VERSION "A"
+
+ SOURCES
+ functions.c
+
+ DEPENDENCIES
+ system
+)
diff --git a/src/login/functions.c b/src/login/functions.c
new file mode 100644
index 000000000..0e09730b4
--- /dev/null
+++ b/src/login/functions.c
@@ -0,0 +1,222 @@
+/*
+This file is part of Darling.
+
+Copyright (C) 2017 Lubos Dolezel
+
+Darling is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Darling is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Darling. If not, see .
+*/
+
+void CFXPCRelease(void) { }
+void CreateArgumentsForFunction(void) { }
+void GetSessionAgentClient(void) { }
+void GetSessionManagementClient(void) { }
+void JoinAuditSessionIfNeeded(void) { }
+void LFAppleIDBreadcrumbCheckin(void) { }
+void LFAppleIDBreadcrumbCopyAppleIDForUser(void) { }
+void LFAppleIDBreadcrumbCopyOldKeychainPassword(void) { }
+void LFAppleIDBreadcrumbUpdate(void) { }
+void LFArgumentsAddAuditSessionID(void) { }
+void LFArgumentsAddBoolean(void) { }
+void LFArgumentsAddCFObject(void) { }
+void LFArgumentsAddCString(void) { }
+void LFArgumentsAddConnection(void) { }
+void LFArgumentsAddConnectionEndpoint(void) { }
+void LFArgumentsAddInt64(void) { }
+void LFArgumentsAddLFClient(void) { }
+void LFArgumentsAddLFServer(void) { }
+void LFArgumentsAddMachPort(void) { }
+void LFArgumentsAddNull(void) { }
+void LFArgumentsAddUInt64(void) { }
+void LFArgumentsCallFunction(void) { }
+void LFArgumentsCopyFunctionIdentifier(void) { }
+void LFArgumentsCreate(void) { }
+void LFArgumentsCreateWithArguments(void) { }
+void LFArgumentsCreateWithXPCDictionary(void) { }
+void LFArgumentsGetDictionary(void) { }
+void LFArgumentsGetFunction(void) { }
+void LFArgumentsIsValid(void) { }
+void LFArgumentsShouldAddArgumentForFlag(void) { }
+void LFClientAddErrorHandler(void) { }
+void LFClientCreateWithConnection(void) { }
+void LFClientCreateWithConnectionAndServer(void) { }
+void LFClientCreateWithServiceName(void) { }
+void LFClientGetConnection(void) { }
+void LFClientGetEndpoint(void) { }
+void LFClientGetPID(void) { }
+void LFClientGetServer(void) { }
+void LFClientGetTypeID(void) { }
+void LFClientRemoveErrorHandler(void) { }
+void LFClientSendArgumentsAndGetCFReply(void) { }
+void LFClientSendArgumentsAndGetReply(void) { }
+void LFClientSetEndpoint(void) { }
+void LFClientSetEventHandler(void) { }
+void LFClientSetInstance(void) { }
+void LFClientSetIsMachService(void) { }
+void LFClientSetPrivileged(void) { }
+void LFClientSetUserID(void) { }
+void LFClientStart(void) { }
+void LFClientStop(void) { }
+void LFDBLoggingControllerStart(void) { }
+void LFDBLoggingControllerStop(void) { }
+void LFDictionaryCreateMutableWithObjectForKey(void) { }
+void LFDictionaryGetBooleanForKey(void) { }
+void LFDictionaryGetCFIndexForKey(void) { }
+void LFDictionaryGetDictionaryForKey(void) { }
+void LFDictionaryGetDoubleForKey(void) { }
+void LFDictionarySetBoolean(void) { }
+void LFDictionarySetCFIndex(void) { }
+void LFDictionarySetDictionary(void) { }
+void LFFunctionCacheAddFunction(void) { }
+void LFFunctionCacheCreateServerFunction(void) { }
+void LFFunctionCacheGetFunction(void) { }
+void LFFunctionCreateClientFunction(void) { }
+void LFFunctionCreateServerFunction(void) { }
+void LFFunctionGetIdentifier(void) { }
+void LFLogUnhandledEventType(void) { }
+void LFSMCloseSession(void) { }
+void LFSMCopyAllSessions(void) { }
+void LFSMCopyCurrentSession(void) { }
+void LFSMCopySessionProperties(void) { }
+void LFSMCopySessionWithCGSessionID(void) { }
+void LFSMCreateDefaultSessionOptions(void) { }
+void LFSMCreateSessionWithOptions(void) { }
+void LFSMCreateSessionWithOptionsByStartingServer(void) { }
+void LFSMSessionGetTypeID(void) { }
+void LFSMSwitchToSessionWithOptions(void) { }
+void LFServerCreate(void) { }
+void LFServerGetClientForConnection(void) { }
+void LFServerGetConnection(void) { }
+void LFServerGetEventHandler(void) { }
+void LFServerGetServiceName(void) { }
+void LFServerGetTypeID(void) { }
+void LFServerSetIsMachService(void) { }
+void LFServerStart(void) { }
+void LFServerStop(void) { }
+void LFStringCreateFromString(void) { }
+void LogindServerCreate(void) { }
+void LogindServerRelease(void) { }
+void SACBeginLoginTransition(void) { }
+void SACCopyOnceMiniBuddyItem(void) { }
+void SACDeleteMiniBuddyItem(void) { }
+void SACDisableFileVaultForCurrentUserWithPassword(void) { }
+void SACEnableFileVaultForCurrentUserWithPassword(void) { }
+void SACFaceTimeCallRingStart(void) { }
+void SACFaceTimeCallRingStop(void) { }
+void SACLOFinishDelayedLogout(void) { }
+void SACLORegisterLogoutStatusCallbacks(void) { }
+void SACLOStartLogout(void) { }
+void SACLOStartLogoutWithOptions(void) { }
+void SACLegacyFileVaultCloseProgressWindow(void) { }
+void SACLegacyFileVaultSetBarPercentage(void) { }
+void SACLegacyFileVaultSetPhase(void) { }
+void SACLegacyFileVaultSetTask(void) { }
+void SACLegacyFileVaultShowErrorMessage(void) { }
+void SACLegacyFileVaultShowProgressWindow(void) { }
+void SACLegacyFileVaultUpdateTimeRemaining(void) { }
+void SACLegacyFileVaultUpdateUI(void) { }
+void SACLockScreenImmediate(void) { }
+void SACLogoutComplete(void) { }
+void SACMessageFaceTimeCancelCall(void) { }
+void SACMessageFaceTimeMuteCall(void) { }
+void SACMessageLogoutStatusClientLogoutFailed(void) { }
+void SACMessageLogoutStatusClientLogoutSuccess(void) { }
+void SACMessageMiniBuddyUIShowing(void) { }
+void SACMiniBuddyCopyUpgradeDictionary(void) { }
+void SACMiniBuddySignalCompleted(void) { }
+void SACMiniBuddySignalFinishedStage1WithOptions(void) { }
+void SACProximityPreferencesChanged(void) { }
+void SACRestartForUser(void) { }
+void SACSaveSetupUserScreenShots(void) { }
+void SACScreenLockEnabled(void) { }
+void SACScreenLockPreferencesChanged(void) { }
+void SACScreenSaverCanRun(void) { }
+void SACScreenSaverDidFadeInBackground(void) { }
+void SACScreenSaverIsRunning(void) { }
+void SACScreenSaverIsRunningInBackground(void) { }
+void SACScreenSaverStartNow(void) { }
+void SACScreenSaverStopNow(void) { }
+void SACScreenSaverStopNowWithOptions(void) { }
+void SACScreenSaverTimeRemaining(void) { }
+void SACSetAppleIDVerified(void) { }
+void SACSetAutoLoginPassword(void) { }
+void SACSetFileVaultPassword(void) { }
+void SACSetFinalSnapshot(void) { }
+void SACSetMiniBuddyItem(void) { }
+void SACSetPhoneProximity(void) { }
+void SACSetScreenSaverCanRun(void) { }
+void SACShieldWindowShowing(void) { }
+void SACStartProgressIndicator(void) { }
+void SACStartSessionForLoginWindow(void) { }
+void SACStartSessionForUser(void) { }
+void SACStopProgressIndicator(void) { }
+void SACStopSessionForLoginWindow(void) { }
+void SACSwitchToLoginWindow(void) { }
+void SACSwitchToUser(void) { }
+void SACUpdateAppleIDUserLogin(void) { }
+void SACWriteKeyboardType(void) { }
+void SAClearLWScreenShots(void) { }
+void SAClearLaunchSoftwareUpdateTrigger(void) { }
+void SAClearSoftwareUpdateOptions(void) { }
+void SAPrepareForSetupUserScreenShots(void) { }
+void SAResetLoginKeychainForAutoLoginPassword(void) { }
+void SASSessionStateForUser(void) { }
+void SASetAppleIDVerified(void) { }
+void SASetAutoLoginUserScreenLocked(void) { }
+void SASetAutologinPW(void) { }
+void SASetLaunchSoftwareUpdateTrigger(void) { }
+void SASetPreviousStartupWasPanic(void) { }
+void SASetSCDynamicStoreConsoleInformation(void) { }
+void SASetSessionAuthenticatedFlag(void) { }
+void SASetSessionHasConsoleAccessFlag(void) { }
+void SASetSessionState(void) { }
+void SASetSoftwareUpdateOption(void) { }
+void SASetSwapCompaction(void) { }
+void SASetTextEncodingBias(void) { }
+void SASync(void) { }
+void SASystemNotifyPost(void) { }
+void SAWriteKeyboardType(void) { }
+void SLOAddErrorHandler(void) { }
+void SLOLegacyFileVaultSetState(void) { }
+void SLOStartLogoutOfType(void) { }
+void SMCopySessionUserInfo(void) { }
+void SMGetSessionAgentConnection(void) { }
+void SMRegisterSessionAgent(void) { }
+void SMSetSessionUserInfo(void) { }
+void SOStartSessionWithOptions(void) { }
+void SessionAgentServerCreate(void) { }
+void SessionAgentServerGetServer(void) { }
+void SessionAgentServerRelease(void) { }
+void SessionLogoutServerCreate(void) { }
+void SessionLogoutServerRelease(void) { }
+void SessionOwnerServerCreate(void) { }
+void SessionOwnerServerRelease(void) { }
+void _LFArgumentsCopyDebugDesc(void) { }
+void _LFArgumentsCopyFormattingDesc(void) { }
+void _LFArgumentsFinalize(void) { }
+void _LFArgumentsInit(void) { }
+void _LFFunctionCopyDebugDesc(void) { }
+void _LFFunctionCopyFormattingDesc(void) { }
+void _LFFunctionCreateServerFunction(void) { }
+void _LFFunctionEqual(void) { }
+void _LFFunctionFinalize(void) { }
+void _LFFunctionHash(void) { }
+void _LFFunctionInit(void) { }
+void _LFGetBreadcrumbEncryptedKeyWithBlock(void) { }
+void _LFServerCopyDebugDesc(void) { }
+void _LFServerCopyFormattingDesc(void) { }
+void _LFServerEqual(void) { }
+void _LFServerFinalize(void) { }
+void _LFServerHash(void) { }
+void _LFSetBreadcrumbEncryptedKeyWithBlock(void) { }
+void logindServerGetServer(void) { }
diff --git a/src/login/functions.h b/src/login/functions.h
new file mode 100644
index 000000000..d879aa1f1
--- /dev/null
+++ b/src/login/functions.h
@@ -0,0 +1,222 @@
+/*
+This file is part of Darling.
+
+Copyright (C) 2017 Lubos Dolezel
+
+Darling is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Darling is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Darling. If not, see .
+*/
+
+void CFXPCRelease(void);
+void CreateArgumentsForFunction(void);
+void GetSessionAgentClient(void);
+void GetSessionManagementClient(void);
+void JoinAuditSessionIfNeeded(void);
+void LFAppleIDBreadcrumbCheckin(void);
+void LFAppleIDBreadcrumbCopyAppleIDForUser(void);
+void LFAppleIDBreadcrumbCopyOldKeychainPassword(void);
+void LFAppleIDBreadcrumbUpdate(void);
+void LFArgumentsAddAuditSessionID(void);
+void LFArgumentsAddBoolean(void);
+void LFArgumentsAddCFObject(void);
+void LFArgumentsAddCString(void);
+void LFArgumentsAddConnection(void);
+void LFArgumentsAddConnectionEndpoint(void);
+void LFArgumentsAddInt64(void);
+void LFArgumentsAddLFClient(void);
+void LFArgumentsAddLFServer(void);
+void LFArgumentsAddMachPort(void);
+void LFArgumentsAddNull(void);
+void LFArgumentsAddUInt64(void);
+void LFArgumentsCallFunction(void);
+void LFArgumentsCopyFunctionIdentifier(void);
+void LFArgumentsCreate(void);
+void LFArgumentsCreateWithArguments(void);
+void LFArgumentsCreateWithXPCDictionary(void);
+void LFArgumentsGetDictionary(void);
+void LFArgumentsGetFunction(void);
+void LFArgumentsIsValid(void);
+void LFArgumentsShouldAddArgumentForFlag(void);
+void LFClientAddErrorHandler(void);
+void LFClientCreateWithConnection(void);
+void LFClientCreateWithConnectionAndServer(void);
+void LFClientCreateWithServiceName(void);
+void LFClientGetConnection(void);
+void LFClientGetEndpoint(void);
+void LFClientGetPID(void);
+void LFClientGetServer(void);
+void LFClientGetTypeID(void);
+void LFClientRemoveErrorHandler(void);
+void LFClientSendArgumentsAndGetCFReply(void);
+void LFClientSendArgumentsAndGetReply(void);
+void LFClientSetEndpoint(void);
+void LFClientSetEventHandler(void);
+void LFClientSetInstance(void);
+void LFClientSetIsMachService(void);
+void LFClientSetPrivileged(void);
+void LFClientSetUserID(void);
+void LFClientStart(void);
+void LFClientStop(void);
+void LFDBLoggingControllerStart(void);
+void LFDBLoggingControllerStop(void);
+void LFDictionaryCreateMutableWithObjectForKey(void);
+void LFDictionaryGetBooleanForKey(void);
+void LFDictionaryGetCFIndexForKey(void);
+void LFDictionaryGetDictionaryForKey(void);
+void LFDictionaryGetDoubleForKey(void);
+void LFDictionarySetBoolean(void);
+void LFDictionarySetCFIndex(void);
+void LFDictionarySetDictionary(void);
+void LFFunctionCacheAddFunction(void);
+void LFFunctionCacheCreateServerFunction(void);
+void LFFunctionCacheGetFunction(void);
+void LFFunctionCreateClientFunction(void);
+void LFFunctionCreateServerFunction(void);
+void LFFunctionGetIdentifier(void);
+void LFLogUnhandledEventType(void);
+void LFSMCloseSession(void);
+void LFSMCopyAllSessions(void);
+void LFSMCopyCurrentSession(void);
+void LFSMCopySessionProperties(void);
+void LFSMCopySessionWithCGSessionID(void);
+void LFSMCreateDefaultSessionOptions(void);
+void LFSMCreateSessionWithOptions(void);
+void LFSMCreateSessionWithOptionsByStartingServer(void);
+void LFSMSessionGetTypeID(void);
+void LFSMSwitchToSessionWithOptions(void);
+void LFServerCreate(void);
+void LFServerGetClientForConnection(void);
+void LFServerGetConnection(void);
+void LFServerGetEventHandler(void);
+void LFServerGetServiceName(void);
+void LFServerGetTypeID(void);
+void LFServerSetIsMachService(void);
+void LFServerStart(void);
+void LFServerStop(void);
+void LFStringCreateFromString(void);
+void LogindServerCreate(void);
+void LogindServerRelease(void);
+void SACBeginLoginTransition(void);
+void SACCopyOnceMiniBuddyItem(void);
+void SACDeleteMiniBuddyItem(void);
+void SACDisableFileVaultForCurrentUserWithPassword(void);
+void SACEnableFileVaultForCurrentUserWithPassword(void);
+void SACFaceTimeCallRingStart(void);
+void SACFaceTimeCallRingStop(void);
+void SACLOFinishDelayedLogout(void);
+void SACLORegisterLogoutStatusCallbacks(void);
+void SACLOStartLogout(void);
+void SACLOStartLogoutWithOptions(void);
+void SACLegacyFileVaultCloseProgressWindow(void);
+void SACLegacyFileVaultSetBarPercentage(void);
+void SACLegacyFileVaultSetPhase(void);
+void SACLegacyFileVaultSetTask(void);
+void SACLegacyFileVaultShowErrorMessage(void);
+void SACLegacyFileVaultShowProgressWindow(void);
+void SACLegacyFileVaultUpdateTimeRemaining(void);
+void SACLegacyFileVaultUpdateUI(void);
+void SACLockScreenImmediate(void);
+void SACLogoutComplete(void);
+void SACMessageFaceTimeCancelCall(void);
+void SACMessageFaceTimeMuteCall(void);
+void SACMessageLogoutStatusClientLogoutFailed(void);
+void SACMessageLogoutStatusClientLogoutSuccess(void);
+void SACMessageMiniBuddyUIShowing(void);
+void SACMiniBuddyCopyUpgradeDictionary(void);
+void SACMiniBuddySignalCompleted(void);
+void SACMiniBuddySignalFinishedStage1WithOptions(void);
+void SACProximityPreferencesChanged(void);
+void SACRestartForUser(void);
+void SACSaveSetupUserScreenShots(void);
+void SACScreenLockEnabled(void);
+void SACScreenLockPreferencesChanged(void);
+void SACScreenSaverCanRun(void);
+void SACScreenSaverDidFadeInBackground(void);
+void SACScreenSaverIsRunning(void);
+void SACScreenSaverIsRunningInBackground(void);
+void SACScreenSaverStartNow(void);
+void SACScreenSaverStopNow(void);
+void SACScreenSaverStopNowWithOptions(void);
+void SACScreenSaverTimeRemaining(void);
+void SACSetAppleIDVerified(void);
+void SACSetAutoLoginPassword(void);
+void SACSetFileVaultPassword(void);
+void SACSetFinalSnapshot(void);
+void SACSetMiniBuddyItem(void);
+void SACSetPhoneProximity(void);
+void SACSetScreenSaverCanRun(void);
+void SACShieldWindowShowing(void);
+void SACStartProgressIndicator(void);
+void SACStartSessionForLoginWindow(void);
+void SACStartSessionForUser(void);
+void SACStopProgressIndicator(void);
+void SACStopSessionForLoginWindow(void);
+void SACSwitchToLoginWindow(void);
+void SACSwitchToUser(void);
+void SACUpdateAppleIDUserLogin(void);
+void SACWriteKeyboardType(void);
+void SAClearLWScreenShots(void);
+void SAClearLaunchSoftwareUpdateTrigger(void);
+void SAClearSoftwareUpdateOptions(void);
+void SAPrepareForSetupUserScreenShots(void);
+void SAResetLoginKeychainForAutoLoginPassword(void);
+void SASSessionStateForUser(void);
+void SASetAppleIDVerified(void);
+void SASetAutoLoginUserScreenLocked(void);
+void SASetAutologinPW(void);
+void SASetLaunchSoftwareUpdateTrigger(void);
+void SASetPreviousStartupWasPanic(void);
+void SASetSCDynamicStoreConsoleInformation(void);
+void SASetSessionAuthenticatedFlag(void);
+void SASetSessionHasConsoleAccessFlag(void);
+void SASetSessionState(void);
+void SASetSoftwareUpdateOption(void);
+void SASetSwapCompaction(void);
+void SASetTextEncodingBias(void);
+void SASync(void);
+void SASystemNotifyPost(void);
+void SAWriteKeyboardType(void);
+void SLOAddErrorHandler(void);
+void SLOLegacyFileVaultSetState(void);
+void SLOStartLogoutOfType(void);
+void SMCopySessionUserInfo(void);
+void SMGetSessionAgentConnection(void);
+void SMRegisterSessionAgent(void);
+void SMSetSessionUserInfo(void);
+void SOStartSessionWithOptions(void);
+void SessionAgentServerCreate(void);
+void SessionAgentServerGetServer(void);
+void SessionAgentServerRelease(void);
+void SessionLogoutServerCreate(void);
+void SessionLogoutServerRelease(void);
+void SessionOwnerServerCreate(void);
+void SessionOwnerServerRelease(void);
+void _LFArgumentsCopyDebugDesc(void);
+void _LFArgumentsCopyFormattingDesc(void);
+void _LFArgumentsFinalize(void);
+void _LFArgumentsInit(void);
+void _LFFunctionCopyDebugDesc(void);
+void _LFFunctionCopyFormattingDesc(void);
+void _LFFunctionCreateServerFunction(void);
+void _LFFunctionEqual(void);
+void _LFFunctionFinalize(void);
+void _LFFunctionHash(void);
+void _LFFunctionInit(void);
+void _LFGetBreadcrumbEncryptedKeyWithBlock(void);
+void _LFServerCopyDebugDesc(void);
+void _LFServerCopyFormattingDesc(void);
+void _LFServerEqual(void);
+void _LFServerFinalize(void);
+void _LFServerHash(void);
+void _LFSetBreadcrumbEncryptedKeyWithBlock(void);
+void logindServerGetServer(void);