diff --git a/build/gen-side-deck.sh b/build/gen-side-deck.sh
new file mode 100755
index 000000000..b27d8f750
--- /dev/null
+++ b/build/gen-side-deck.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+trap 'exit 1' ERR
+
+ZSS=${ZSS:-$PWD/..}
+
+DEFS=$ZSS/build/side-deck-defs
+FILES="`cat $DEFS/files`"
+
+cd $ZSS/build/tmp-zss
+
+dd if=zssServer.x conv=unblock cbs=80 of=side-deck
+
+rm -f relevant-functions
+for f in $FILES
+do
+ if [ -f $DEFS/$f-bl ]
+ then
+ echo "Found blacklist file for $f"
+ nm $f |grep ' T ' |awk '{ print $3 }' |grep -v -f $DEFS/$f-bl >>relevant-functions
+ elif [ -f $DEFS/$f-wl ]
+ then
+ echo "Found whilelist file for $f"
+ nm $f |grep ' T ' |awk '{ print $3 }' |grep -f $DEFS/$f-wl >>relevant-functions
+ else
+ echo "Adding all functions from $f to the side deck"
+ nm $f |grep ' T ' |awk '{ print $3 }' >>relevant-functions
+ fi
+done
+sort -u -o relevant-functions relevant-functions
+
+cat relevant-functions |while read fn; do grep ",'"$fn"'" side-deck; done >side-deck-filtered
+
+# dd doesn't support file tags, while cat does.
+cat side-deck-filtered |dd conv=block cbs=80 bs=80 |sed 's/\(.\{79\}\)./\1\n/g' >zss.x
+
+mkdir -p $ZSS/lib
+cp zss.x $ZSS/lib
+echo Side deck $ZSS/lib/zss.x build successfully out of $FILES
+
+
+
diff --git a/build/side-deck-defs/client.o-wl b/build/side-deck-defs/client.o-wl
new file mode 100644
index 000000000..58787c2a5
--- /dev/null
+++ b/build/side-deck-defs/client.o-wl
@@ -0,0 +1 @@
+zisCallService
diff --git a/build/side-deck-defs/files b/build/side-deck-defs/files
new file mode 100644
index 000000000..4fa605131
--- /dev/null
+++ b/build/side-deck-defs/files
@@ -0,0 +1,4 @@
+recovery.o http.o httpserver.o utils.o
+dataservice.o json.o xml.o logging.o
+client.o
+
diff --git a/build/side-deck-defs/httpserver.o-bl b/build/side-deck-defs/httpserver.o-bl
new file mode 100644
index 000000000..afb5856a5
--- /dev/null
+++ b/build/side-deck-defs/httpserver.o-bl
@@ -0,0 +1,18 @@
+registerHttpServerModuleWithBase
+httpServerSetSessionTokenKey
+registerHttpService
+dequeueHttpRequest
+makeHttpRequestParser
+makeHttpResponse
+makeHttpServer2
+makeHttpServer
+makeSecureHttpServer
+makeHttpConversation
+processHttpFragment
+setHttpParseTrace
+setHttpDispatchTrace
+setHttpHeadersTrace
+setHttpSocketTrace
+setHttpCloseConversationTrace
+setHttpAuthTrace
+mainHttpLoop
diff --git a/build/side-deck-defs/utils.o-wl b/build/side-deck-defs/utils.o-wl
new file mode 100644
index 000000000..149ee2c06
--- /dev/null
+++ b/build/side-deck-defs/utils.o-wl
@@ -0,0 +1,25 @@
+addToStringList
+addToStringList
+addToStringListUnique
+firstStringListElt
+makeStringList
+stringListContains
+stringListContains
+stringListLast
+stringListLength
+stringListPrint
+SLHAlloc
+SLHAlloc
+SLHFree
+makeShortLivedHeap
+makeShortLivedHeap64
+destructivelyUnasciify
+nullTerminate
+dumpbuffer
+cnvintst
+makeBufferCharStream
+charStreamPosition
+charStreamGet
+charStreamEOF
+charStreamClose
+charStreamFree
diff --git a/build/zss.xml b/build/zss.xml
index 1332b3b40..19a1583a0 100644
--- a/build/zss.xml
+++ b/build/zss.xml
@@ -51,7 +51,7 @@
-
+
diff --git a/h/zss-plugin.h b/h/zss-plugin.h
new file mode 100644
index 000000000..d04d0ada4
--- /dev/null
+++ b/h/zss-plugin.h
@@ -0,0 +1,12 @@
+#ifndef __ZSS_PLUGIN_H__
+#define __ZSS_PLUGIN_H__
+
+#include "zowetypes.h"
+#include "httpserver.h"
+#include "utils.h"
+#include "dataservice.h"
+#include "json.h"
+#include "alloc.h"
+#include "logging.h"
+
+#endif /* __ZSS_PLUGIN_H__ */
diff --git a/lib/zss.x b/lib/zss.x
new file mode 100644
index 000000000..3efeb9396
--- /dev/null
+++ b/lib/zss.x
@@ -0,0 +1,255 @@
+ IMPORT CODE,'zssServer','RCVDSECT'
+ IMPORT CODE,'zssServer','SLHAlloc'
+ IMPORT CODE,'zssServer','SLHFree'
+ IMPORT CODE,'zssServer','addAttribute'
+ IMPORT CODE,'zssServer','addChild'
+ IMPORT CODE,'zssServer','addHeader'
+ IMPORT CODE,'zssServer','addIntHeader'
+ IMPORT CODE,'zssServer','addStringHeader'
+ IMPORT CODE,'zssServer','addToStringList'
+ IMPORT CODE,'zssServer','addToStringListUnique'
+ IMPORT CODE,'zssServer','asciify'
+ IMPORT CODE,'zssServer','charStreamClose'
+ IMPORT CODE,'zssServer','charStreamEOF'
+ IMPORT CODE,'zssServer','charStreamFree'
+ IMPORT CODE,'zssServer','charStreamGet'
+ IMPORT CODE,'zssServer','charStreamPosition'
+ IMPORT CODE,'zssServer','closeHTMLTemplate'
+ IMPORT CODE,'zssServer','cnvintst'
+ IMPORT CODE,'zssServer','copyString'
+ IMPORT CODE,'zssServer','copyStringToNative'
+ IMPORT CODE,'zssServer','destructivelyNativize'
+ IMPORT CODE,'zssServer','destructivelyUnasciify'
+ IMPORT CODE,'zssServer','dumpbuffer'
+ IMPORT CODE,'zssServer','dumpbuffer2'
+ IMPORT CODE,'zssServer','dumpbufferA'
+ IMPORT CODE,'zssServer','extractBasicAuth'
+ IMPORT CODE,'zssServer','finishResponse'
+ IMPORT CODE,'zssServer','firstChildWithTag'
+ IMPORT CODE,'zssServer','firstRealChild'
+ IMPORT CODE,'zssServer','firstStringListElt'
+ IMPORT CODE,'zssServer','flushWSJsonPrinting'
+ IMPORT CODE,'zssServer','freeJsonPrinter'
+ IMPORT CODE,'zssServer','freeXmlParser'
+ IMPORT CODE,'zssServer','getAttribute'
+ IMPORT CODE,'zssServer','getBooleanAttribute'
+ IMPORT CODE,'zssServer','getCheckedParam'
+ IMPORT CODE,'zssServer','getConfiguredProperty'
+ IMPORT CODE,'zssServer','getHeader'
+ IMPORT CODE,'zssServer','getHeaderLine'
+ IMPORT CODE,'zssServer','getHttpVersion'
+ IMPORT CODE,'zssServer','getLoggingContext'
+ IMPORT CODE,'zssServer','getMimeType'
+ IMPORT CODE,'zssServer','getNextMessage'
+ IMPORT CODE,'zssServer','getQueryParam'
+ IMPORT CODE,'zssServer','getRecoveryContext'
+ IMPORT CODE,'zssServer','getStringToken'
+ IMPORT CODE,'zssServer','getSwitch'
+ IMPORT CODE,'zssServer','getTokenNoWS'
+ IMPORT CODE,'zssServer','getXMLToken'
+ IMPORT CODE,'zssServer','headerMatch'
+ IMPORT CODE,'zssServer','httpBackgroundHandler'
+ IMPORT CODE,'zssServer','httpWorkElementHandler'
+ IMPORT CODE,'zssServer','initBufferedInput'
+ IMPORT CODE,'zssServer','initChunkedOutput'
+ IMPORT CODE,'zssServer','initWSJsonPrinting'
+ IMPORT CODE,'zssServer','initalizeWebPlugin'
+ IMPORT CODE,'zssServer','intFromChildWithTag'
+ IMPORT CODE,'zssServer','isCachedCopyModified'
+ IMPORT CODE,'zssServer','jsonAddBoolean'
+ IMPORT CODE,'zssServer','jsonAddInt'
+ IMPORT CODE,'zssServer','jsonAddInt64'
+ IMPORT CODE,'zssServer','jsonAddJSONString'
+ IMPORT CODE,'zssServer','jsonAddLimitedString'
+ IMPORT CODE,'zssServer','jsonAddNull'
+ IMPORT CODE,'zssServer','jsonAddString'
+ IMPORT CODE,'zssServer','jsonAddUInt'
+ IMPORT CODE,'zssServer','jsonAddUnterminatedString'
+ IMPORT CODE,'zssServer','jsonArrayContainsString'
+ IMPORT CODE,'zssServer','jsonArrayGetArray'
+ IMPORT CODE,'zssServer','jsonArrayGetBoolean'
+ IMPORT CODE,'zssServer','jsonArrayGetCount'
+ IMPORT CODE,'zssServer','jsonArrayGetItem'
+ IMPORT CODE,'zssServer','jsonArrayGetNumber'
+ IMPORT CODE,'zssServer','jsonArrayGetObject'
+ IMPORT CODE,'zssServer','jsonArrayGetString'
+ IMPORT CODE,'zssServer','jsonArrayProperty'
+ IMPORT CODE,'zssServer','jsonAsArray'
+ IMPORT CODE,'zssServer','jsonAsBoolean'
+ IMPORT CODE,'zssServer','jsonAsNumber'
+ IMPORT CODE,'zssServer','jsonAsObject'
+ IMPORT CODE,'zssServer','jsonAsString'
+ IMPORT CODE,'zssServer','jsonCheckIOErrorFlag'
+ IMPORT CODE,'zssServer','jsonEnablePrettyPrint'
+ IMPORT CODE,'zssServer','jsonEnd'
+ IMPORT CODE,'zssServer','jsonEndArray'
+ IMPORT CODE,'zssServer','jsonEndObject'
+ IMPORT CODE,'zssServer','jsonIntProperty'
+ IMPORT CODE,'zssServer','jsonIsArray'
+ IMPORT CODE,'zssServer','jsonIsBoolean'
+ IMPORT CODE,'zssServer','jsonIsNull'
+ IMPORT CODE,'zssServer','jsonIsNumber'
+ IMPORT CODE,'zssServer','jsonIsObject'
+ IMPORT CODE,'zssServer','jsonIsString'
+ IMPORT CODE,'zssServer','jsonObjectGetArray'
+ IMPORT CODE,'zssServer','jsonObjectGetBoolean'
+ IMPORT CODE,'zssServer','jsonObjectGetFirstProperty'
+ IMPORT CODE,'zssServer','jsonObjectGetNextProperty'
+ IMPORT CODE,'zssServer','jsonObjectGetNumber'
+ IMPORT CODE,'zssServer','jsonObjectGetObject'
+ IMPORT CODE,'zssServer','jsonObjectGetPropertyValue'
+ IMPORT CODE,'zssServer','jsonObjectGetString'
+ IMPORT CODE,'zssServer','jsonObjectHasKey'
+ IMPORT CODE,'zssServer','jsonObjectProperty'
+ IMPORT CODE,'zssServer','jsonParseFile'
+ IMPORT CODE,'zssServer','jsonParseString'
+ IMPORT CODE,'zssServer','jsonParseUnterminatedString'
+ IMPORT CODE,'zssServer','jsonPrint'
+ IMPORT CODE,'zssServer','jsonPrintArray'
+ IMPORT CODE,'zssServer','jsonPrintObject'
+ IMPORT CODE,'zssServer','jsonPrintProperty'
+ IMPORT CODE,'zssServer','jsonPropertyGetKey'
+ IMPORT CODE,'zssServer','jsonPropertyGetValue'
+ IMPORT CODE,'zssServer','jsonSetIOErrorFlag'
+ IMPORT CODE,'zssServer','jsonStart'
+ IMPORT CODE,'zssServer','jsonStartArray'
+ IMPORT CODE,'zssServer','jsonStartObject'
+ IMPORT CODE,'zssServer','jsonStringProperty'
+ IMPORT CODE,'zssServer','jsonVerifyHomogeneity'
+ IMPORT CODE,'zssServer','logConfigureComponent'
+ IMPORT CODE,'zssServer','logConfigureDestination'
+ IMPORT CODE,'zssServer','logConfigureDestination2'
+ IMPORT CODE,'zssServer','logConfigureStandardDestinations'
+ IMPORT CODE,'zssServer','logGetLevel'
+ IMPORT CODE,'zssServer','logSetLevel'
+ IMPORT CODE,'zssServer','logShouldTraceInternal'
+ IMPORT CODE,'zssServer','makeBAOS'
+ IMPORT CODE,'zssServer','makeBufferCharStream'
+ IMPORT CODE,'zssServer','makeCustomJsonPrinter'
+ IMPORT CODE,'zssServer','makeCustomUtf8JsonPrinter'
+ IMPORT CODE,'zssServer','makeCustomXmlPrinter'
+ IMPORT CODE,'zssServer','makeFileService'
+ IMPORT CODE,'zssServer','makeGeneratedService'
+ IMPORT CODE,'zssServer','makeHTMLForDirectory'
+ IMPORT CODE,'zssServer','makeHttpDataService'
+ IMPORT CODE,'zssServer','makeHttpDataServiceUrlMask'
+ IMPORT CODE,'zssServer','makeHttpXmlPrinter'
+ IMPORT CODE,'zssServer','makeInt64ParamSpec'
+ IMPORT CODE,'zssServer','makeIntParamSpec'
+ IMPORT CODE,'zssServer','makeJSONForDirectory'
+ IMPORT CODE,'zssServer','makeJsonPrinter'
+ IMPORT CODE,'zssServer','makeLocalLoggingContext'
+ IMPORT CODE,'zssServer','makeLoggingContext'
+ IMPORT CODE,'zssServer','makeMessage'
+ IMPORT CODE,'zssServer','makeParamSpec'
+ IMPORT CODE,'zssServer','makeProxyService'
+ IMPORT CODE,'zssServer','makeShortLivedHeap'
+ IMPORT CODE,'zssServer','makeShortLivedHeap64'
+ IMPORT CODE,'zssServer','makeSimpleTemplateService'
+ IMPORT CODE,'zssServer','makeStringList'
+ IMPORT CODE,'zssServer','makeStringParamSpec'
+ IMPORT CODE,'zssServer','makeUtf8JsonPrinter'
+ IMPORT CODE,'zssServer','makeWSEndpoint'
+ IMPORT CODE,'zssServer','makeWSMessageHandler'
+ IMPORT CODE,'zssServer','makeWSSession'
+ IMPORT CODE,'zssServer','makeWebPlugin'
+ IMPORT CODE,'zssServer','makeWebSocketService'
+ IMPORT CODE,'zssServer','makeXMLNode'
+ IMPORT CODE,'zssServer','makeXmlParser'
+ IMPORT CODE,'zssServer','makeXmlPrinter'
+ IMPORT CODE,'zssServer','makeXmlStringParser'
+ IMPORT CODE,'zssServer','mapChildrenToList'
+ IMPORT CODE,'zssServer','nextRealSibling'
+ IMPORT CODE,'zssServer','nodeText'
+ IMPORT CODE,'zssServer','nullTerminate'
+ IMPORT CODE,'zssServer','openHTMLTemplate'
+ IMPORT CODE,'zssServer','parseURI'
+ IMPORT CODE,'zssServer','parseURLMask'
+ IMPORT CODE,'zssServer','parseXMLNode'
+ IMPORT CODE,'zssServer','pluginTypeFromString'
+ IMPORT CODE,'zssServer','pluginTypeString'
+ IMPORT CODE,'zssServer','pprintNode'
+ IMPORT CODE,'zssServer','pprintNode2'
+ IMPORT CODE,'zssServer','printStderr'
+ IMPORT CODE,'zssServer','printStdout'
+ IMPORT CODE,'zssServer','printXMLToken'
+ IMPORT CODE,'zssServer','processServiceRequestParams'
+ IMPORT CODE,'zssServer','pseudoRespond'
+ IMPORT CODE,'zssServer','readByte'
+ IMPORT CODE,'zssServer','readCommentTail'
+ IMPORT CODE,'zssServer','recoveryDisableCurrentState'
+ IMPORT CODE,'zssServer','recoveryEnableCurrentState'
+ IMPORT CODE,'zssServer','recoveryEstablishRouter'
+ IMPORT CODE,'zssServer','recoveryGetABENDCode'
+ IMPORT CODE,'zssServer','recoveryIsRouterEstablished'
+ IMPORT CODE,'zssServer','recoveryPop'
+ IMPORT CODE,'zssServer','recoveryPush'
+ IMPORT CODE,'zssServer','recoveryRemoveRouter'
+ IMPORT CODE,'zssServer','recoverySetDumpTitle'
+ IMPORT CODE,'zssServer','recoverySetFlagValue'
+ IMPORT CODE,'zssServer','recoveryUpdateRouterServiceInfo'
+ IMPORT CODE,'zssServer','recoveryUpdateStateServiceInfo'
+ IMPORT CODE,'zssServer','removeLocalLoggingContext'
+ IMPORT CODE,'zssServer','removeLoggingContext'
+ IMPORT CODE,'zssServer','reportJSONDataProblem'
+ IMPORT CODE,'zssServer','requestIntHeader'
+ IMPORT CODE,'zssServer','requestStringHeader'
+ IMPORT CODE,'zssServer','respondWithChunkedOutputStream'
+ IMPORT CODE,'zssServer','respondWithError'
+ IMPORT CODE,'zssServer','respondWithJsonError'
+ IMPORT CODE,'zssServer','respondWithJsonPrinter'
+ IMPORT CODE,'zssServer','respondWithUnixDirectory'
+ IMPORT CODE,'zssServer','respondWithUnixFileContents'
+ IMPORT CODE,'zssServer','respondWithUnixFileContents2'
+ IMPORT CODE,'zssServer','respondWithUnixFileContentsWithAutocvtMode'
+ IMPORT CODE,'zssServer','respondWithUnixFileNotFound'
+ IMPORT CODE,'zssServer','respondWithXmlPrinter'
+ IMPORT CODE,'zssServer','runServiceThread'
+ IMPORT CODE,'zssServer','safeRealloc'
+ IMPORT CODE,'zssServer','serveFile'
+ IMPORT CODE,'zssServer','serveSimpleTemplate'
+ IMPORT CODE,'zssServer','setConfiguredProperty'
+ IMPORT CODE,'zssServer','setContentType'
+ IMPORT CODE,'zssServer','setDefaultJSONRESTHeaders'
+ IMPORT CODE,'zssServer','setLoggingContext'
+ IMPORT CODE,'zssServer','setResponseStatus'
+ IMPORT CODE,'zssServer','setXMLParseTrace'
+ IMPORT CODE,'zssServer','setXMLTrace'
+ IMPORT CODE,'zssServer','shouldContinueGivenAllowedMethods'
+ IMPORT CODE,'zssServer','showStack'
+ IMPORT CODE,'zssServer','streamBinaryForFile'
+ IMPORT CODE,'zssServer','streamTextForFile'
+ IMPORT CODE,'zssServer','streamToSubstitution'
+ IMPORT CODE,'zssServer','stringListContains'
+ IMPORT CODE,'zssServer','stringListLast'
+ IMPORT CODE,'zssServer','stringListLength'
+ IMPORT CODE,'zssServer','stringListPrint'
+ IMPORT CODE,'zssServer','textFromChildWithTag'
+ IMPORT CODE,'zssServer','toASCIIUTF8'
+ IMPORT CODE,'zssServer','writeByte'
+ IMPORT CODE,'zssServer','writeBytes'
+ IMPORT CODE,'zssServer','writeFully'
+ IMPORT CODE,'zssServer','writeHeader'
+ IMPORT CODE,'zssServer','writeRequest'
+ IMPORT CODE,'zssServer','writeString'
+ IMPORT CODE,'zssServer','writeTransferChunkHeader'
+ IMPORT CODE,'zssServer','wsSessionMoreInput'
+ IMPORT CODE,'zssServer','xmlAddBooleanElement'
+ IMPORT CODE,'zssServer','xmlAddCData'
+ IMPORT CODE,'zssServer','xmlAddIntElement'
+ IMPORT CODE,'zssServer','xmlAddString'
+ IMPORT CODE,'zssServer','xmlAddTextElement'
+ IMPORT CODE,'zssServer','xmlClose'
+ IMPORT CODE,'zssServer','xmlEnd'
+ IMPORT CODE,'zssServer','xmlIndent'
+ IMPORT CODE,'zssServer','xmlPrint'
+ IMPORT CODE,'zssServer','xmlPrintBoolean'
+ IMPORT CODE,'zssServer','xmlPrintInt'
+ IMPORT CODE,'zssServer','xmlPrintPartial'
+ IMPORT CODE,'zssServer','xmlPrintln'
+ IMPORT CODE,'zssServer','xmlStart'
+ IMPORT CODE,'zssServer','xmlWriteDocument'
+ IMPORT CODE,'zssServer','xmlWriteDocumentToFile'
+ IMPORT CODE,'zssServer','zisCallService'
+ IMPORT CODE,'zssServer','zowedump'
+ IMPORT CODE,'zssServer','zowelog'