diff --git a/src/sbbs3/ctrl/ConfigWizardUnit.cpp b/src/sbbs3/ctrl/ConfigWizardUnit.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5341af1667c3702d72bd617c4a1575208411a9ee
--- /dev/null
+++ b/src/sbbs3/ctrl/ConfigWizardUnit.cpp
@@ -0,0 +1,474 @@
+/* Synchronet Control Panel (GUI Borland C++ Builder Project for Win32) */
+
+/* $Id$ */
+
+/****************************************************************************
+ * @format.tab-size 4		(Plain Text/Source Code File Header)			*
+ * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
+ *																			*
+ * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html		*
+ *																			*
+ * This program is free software; you can redistribute it and/or			*
+ * modify it under the terms of the GNU General Public License				*
+ * as published by the Free Software Foundation; either version 2			*
+ * of the License, or (at your option) any later version.					*
+ * See the GNU General Public License for more details: gpl.txt or			*
+ * http://www.fsf.org/copyleft/gpl.html										*
+ *																			*
+ * Anonymous FTP access to the most recent released source is available at	*
+ * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
+ *																			*
+ * Anonymous CVS access to the development source and modification history	*
+ * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
+ * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
+ *     (just hit return, no password is necessary)							*
+ * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
+ *																			*
+ * For Synchronet coding style and modification guidelines, see				*
+ * http://www.synchro.net/source.html										*
+ *																			*
+ * You are encouraged to submit any modifications (preferably in Unix diff	*
+ * format) via e-mail to mods@synchro.net									*
+ *																			*
+ * Note: If this box doesn't appear square, then you need to fix your tabs.	*
+ ****************************************************************************/
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "MainFormUnit.h"
+#include "ConfigWizardUnit.h"
+#include <stdio.h>      // sprintf
+#include <winsock.h>    // addresses and such
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+
+#define ILLEGAL_FILENAME_CHARS	"\\/|<>+[]:=\";,%"
+#define ILLEGAL_QWKID_CHARS  "*?" ILLEGAL_FILENAME_CHARS
+
+char ctrl_dir[MAX_PATH+1];
+short tz_val[]= {
+     0
+    ,AST
+    ,EST
+    ,CST
+    ,MST
+    ,PST
+    ,YST
+    ,HST
+    ,BST
+    ,MID
+    ,VAN
+    ,EDM
+    ,WIN
+    ,BOG
+    ,CAR
+    ,RIO
+    ,FER
+    ,AZO
+    ,LON
+    ,BER
+    ,ATH
+    ,MOS
+    ,DUB
+    ,KAB
+    ,KAR
+    ,BOM
+    ,KAT
+    ,DHA
+    ,BAN
+    ,HON
+    ,TOK
+    ,SYD
+    ,NOU
+    ,WEL
+};
+
+char* tz_str[]={
+     "Universal (UTC/GMT)"
+    ,"U.S. - Atlantic"
+    ,"U.S. - Eastern"
+    ,"U.S. - Central"
+    ,"U.S. - Mountain"
+    ,"U.S. - Pacific"
+    ,"U.S. - Yukon"
+    ,"U.S. - Hawaii/Alaska"
+    ,"U.S. - Bering"
+    ,"Midway"
+    ,"Vancouver"
+    ,"Edmonton"
+    ,"Winnipeg"
+    ,"Bogota"
+    ,"Caracas"
+    ,"Rio de Janeiro"
+    ,"Fernando de Noronha"
+    ,"Azores"
+    ,"London"
+    ,"Berlin"
+    ,"Athens"
+    ,"Moscow"
+    ,"Dubai"
+    ,"Kabul"
+    ,"Karachi"
+    ,"Bombay"
+    ,"Kathmandu"
+    ,"Dhaka"
+    ,"Bangkok"
+    ,"Hong Kong"
+    ,"Tokyo"
+    ,"Sydney"
+    ,"Noumea"
+    ,"Wellington"
+};
+
+//---------------------------------------------------------------------------
+__fastcall TConfigWizard::TConfigWizard(TComponent* Owner)
+    : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::FormShow(TObject *Sender)
+{
+    char str[128];
+    int i;
+    int status;
+
+    memset(&scfg,0,sizeof(scfg));
+    sprintf(scfg.ctrl_dir,"%.*s",sizeof(scfg.ctrl_dir)-1
+        ,MainForm->CtrlDirectory.c_str());
+    scfg.size=sizeof(scfg);
+    if(!load_cfg(&scfg,NULL,FALSE)) {
+        sprintf(str,"Failed to load configuration files from %s",scfg.ctrl_dir);
+        Application->MessageBox(str,"ERROR",MB_OK|MB_ICONEXCLAMATION);
+        Close();
+        return;
+    }
+
+    if(MainForm->FirstRun) {
+        TIME_ZONE_INFORMATION tz;
+        memset(&tz,0,sizeof(tz));
+        GetTimeZoneInformation(&tz);
+        /* How to convert to SMB tz format? */
+        scfg.sys_timezone=0;
+    } else {
+        SystemNameEdit->Text=AnsiString(scfg.sys_name);
+        SystemLocationEdit->Text=AnsiString(scfg.sys_location);
+        SysopNameEdit->Text=AnsiString(scfg.sys_op);
+        SystemPasswordEdit->Text=AnsiString(scfg.sys_pass);
+        InternetAddressComboBox->Text=AnsiString(scfg.sys_inetaddr);
+        QWKIDEdit->Text=AnsiString(scfg.sys_id);
+        QNetTaglineEdit->Text=AnsiString(scfg.qnet_tagline);
+        AllNodesTelnetCheckBox->Checked
+            =(scfg.sys_nodes==MainForm->bbs_startup.last_node);
+    }
+
+    NewUsersCheckBox->Checked=!(scfg.sys_misc&SM_CLOSED);
+    FeedbackCheckBox->Checked=scfg.node_valuser;
+    AliasesCheckBox->Checked=scfg.uq&UQ_ALIASES;
+    NewUsersCheckBoxClick(Sender);
+
+    if(scfg.sys_misc&SM_USRVDELM)
+        DeletedEmailYesButton->Checked=true;
+    else if(scfg.sys_misc&SM_SYSVDELM)
+        DeletedEmailSysopButton->Checked=true;
+    else
+        DeletedEmailNoButton->Checked=true;
+
+    DNSAddressEdit->Text=MainForm->mail_startup.dns_server;
+    MaxMailUpDown->Position=MainForm->mail_startup.max_clients;
+    MaxFtpUpDown->Position=MainForm->ftp_startup.max_clients;
+    NodesUpDown->Position=scfg.sys_nodes;
+
+    for(i=0;i<sizeof(tz_str)/sizeof(tz_str[0]);i++) {
+        char str[128];
+        if(tz_val[i] && !(tz_val[i]&US_ZONE))
+            sprintf(str,"%c%u:%02u %s"
+                ,tz_val[i]&WESTERN_ZONE ? '-':'+'
+                ,(tz_val[i]&0xfff)/60
+                ,(tz_val[i]&0xfff)%60
+                ,tz_str[i]
+                );
+        else
+            strcpy(str,tz_str[i]);
+        TimeZoneComboBox->Items->Add(str);
+    }
+    for(i=0;i<sizeof(tz_val)/sizeof(tz_val[0]);i++)
+        if((scfg.sys_timezone&((short)~DAYLIGHT))==tz_val[i])
+            break;
+
+    TimeZoneComboBox->ItemIndex=i;
+    DaylightCheckBox->Enabled=scfg.sys_timezone&US_ZONE;
+    DaylightCheckBox->Checked=scfg.sys_timezone&DAYLIGHT;
+    if(scfg.sys_misc&SM_MILITARY)
+        Time24hrRadioButton->Checked=true;
+    else
+        Time12hrRadioButton->Checked=true;
+    if(scfg.sys_misc&SM_EURODATE)
+        DateEuRadioButton->Checked=true;
+    else
+        DateUsRadioButton->Checked=true;
+
+    WizNotebook->PageIndex=0;
+    ProgressBar->Max=WizNotebook->Pages->Count-1;
+    IllegalCharsLabel->Caption="Illegal characters: '"
+        ILLEGAL_QWKID_CHARS "'";
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::NextButtonClick(TObject *Sender)
+{
+    if(ProgressBar->Position==ProgressBar->Max) /* Finished */
+    {
+        // Write Registry keys
+        if(AllNodesTelnetCheckBox->Checked)
+            MainForm->bbs_startup.last_node=NodesUpDown->Position;
+        MainForm->ftp_startup.max_clients=MaxFtpUpDown->Position;
+        MainForm->mail_startup.max_clients=MaxMailUpDown->Position;
+        strcpy(MainForm->mail_startup.dns_server,DNSAddressEdit->Text.c_str());
+
+        MainForm->SaveSettings(Sender);
+
+        // Write CNF files
+        strcpy(scfg.sys_name,SystemNameEdit->Text.c_str());
+        strcpy(scfg.sys_id,QWKIDEdit->Text.c_str());
+        strcpy(scfg.sys_location,SystemLocationEdit->Text.c_str());
+        strcpy(scfg.sys_op,SysopNameEdit->Text.c_str());
+        strcpy(scfg.sys_pass,SystemPasswordEdit->Text.c_str());
+        strcpy(scfg.sys_inetaddr,InternetAddressComboBox->Text.c_str());
+        strcpy(scfg.qnet_tagline,QNetTaglineEdit->Text.c_str());
+        scfg.sys_nodes=NodesUpDown->Position;
+        scfg.sys_timezone=tz_val[TimeZoneComboBox->ItemIndex];
+        if(DaylightCheckBox->Checked)
+            scfg.sys_timezone|=DAYLIGHT;
+        if(Time24hrRadioButton->Checked)
+            scfg.sys_misc|=SM_MILITARY;
+        else
+            scfg.sys_misc&=~SM_MILITARY;
+        if(DateEuRadioButton->Checked)
+            scfg.sys_misc|=SM_EURODATE;
+        else
+            scfg.sys_misc&=~SM_EURODATE;
+        if(NewUsersCheckBox->Checked)
+            scfg.sys_misc&=~SM_CLOSED;
+        else
+            scfg.sys_misc|=SM_CLOSED;
+        if(AliasesCheckBox->Checked)
+            scfg.uq|=UQ_ALIASES;
+        else
+            scfg.uq&=~UQ_ALIASES;
+        scfg.node_valuser=FeedbackCheckBox->Checked;
+
+        if(DeletedEmailYesButton->Checked)
+            scfg.sys_misc|=(SM_USRVDELM|SM_SYSVDELM);
+        else if(DeletedEmailNoButton->Checked)
+            scfg.sys_misc&=~(SM_USRVDELM|SM_SYSVDELM);
+        else {
+            scfg.sys_misc|=SM_SYSVDELM;
+            scfg.sys_misc&=~SM_USRVDELM;
+        }
+
+        if(!save_cfg(&scfg,3)) {
+        	Application->MessageBox("Error saving configuration"
+            	,"ERROR",MB_OK|MB_ICONEXCLAMATION);
+        }
+        Close();
+        return;
+    }
+    WizNotebook->PageIndex++;
+    ProgressBar->Position=WizNotebook->PageIndex;
+    if(ProgressBar->Position==ProgressBar->Max) /* Last page */
+        NextButton->Caption="&Finish";
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::BackButtonClick(TObject *Sender)
+{
+    WizNotebook->PageIndex--;
+    ProgressBar->Position=WizNotebook->PageIndex;
+    NextButton->Caption="&Next >";
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::CancelButtonClick(TObject *Sender)
+{
+    Close();
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::LogoImageClick(TObject *Sender)
+{
+    LogoImage->Visible=false;
+    ProgressBar->Visible=false;
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::TitleLabelClick(TObject *Sender)
+{
+    LogoImage->Visible=true;
+    ProgressBar->Visible=true;
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::WizNotebookPageChanged(TObject *Sender)
+{
+    TFont* current;
+
+    switch(WizNotebook->PageIndex) {
+        case 0:
+            current=IntroductionLabel->Font;
+            NextButton->Enabled=true;
+            break;
+        case 1:
+            current=IdentificationLabel->Font;
+//            ActiveControl=SystemNameEdit;
+            if(!SysopNameEdit->Text.Length()) {
+                char username[41];
+                DWORD len=sizeof(username)-1;
+                GetUserName(username,&len);
+                SysopNameEdit->Text=AnsiString(username);
+            }
+            if(!SystemNameEdit->Text.Length()) {
+                char bbsname[41];
+                DWORD len=sizeof(bbsname)-1;
+                GetComputerName(bbsname,&len);
+                SystemNameEdit->Text=AnsiString(bbsname);
+            }
+            VerifyIdentification(Sender);
+            break;
+        case 2:
+            current=TimeLabel->Font;
+            NextButton->Enabled=true;
+            break;
+        case 3:
+            current=InternetLabel->Font;
+            if(!InternetAddressComboBox->Items->Count) {
+                if(scfg.sys_inetaddr[0])
+                    InternetAddressComboBox->Items->Add(scfg.sys_inetaddr);
+                char hostname[128];
+                gethostname(hostname,sizeof(hostname)-1);
+                InternetAddressComboBox->Items->Add(hostname);
+                HOSTENT* host=gethostbyname(hostname);
+                SOCKADDR_IN addr;
+                for(int i=0;host->h_addr_list[i];i++) {
+                    addr.sin_addr.s_addr
+                        =*((DWORD*)host->h_addr_list[i]);
+                    InternetAddressComboBox->Items->Add(inet_ntoa(addr.sin_addr));
+                }
+            }
+            VerifyInternetAddresses(Sender);
+            break;
+        case 4:
+            current=QWKLabel->Font;
+            if(!QWKIDEdit->Text.Length()) {
+                char bbsname[41];
+                char qwkid[9];
+                int len=0;
+                strcpy(bbsname,SystemNameEdit->Text.UpperCase().c_str());
+                for(char*p=bbsname;*p && len<8;p++) {
+                    if(strchr(ILLEGAL_QWKID_CHARS,*p))
+                        continue;
+                    if(!len && isdigit(*p))
+                        continue;
+                    if(*p<=' ')
+                        continue;
+                    qwkid[len++]=*p;
+                }
+                qwkid[len]=0;
+                QWKIDEdit->Text=AnsiString(qwkid);
+            }
+            if(!QNetTaglineEdit->Text.Length()) {
+                QNetTaglineEdit->Text = SystemNameEdit->Text +
+                    " - " + InternetAddressComboBox->Text;
+            }
+            VerifyQWK(Sender);
+            break;
+        case 5:
+            current=MaximumsLabel->Font;
+            NextButton->Enabled=true;
+            break;
+        case 6:
+            current=OptionsLabel->Font;
+            NextButton->Enabled=true;
+            break;
+        case 7:
+            current=VerifyLabel->Font;
+            VerifyPassword(Sender);
+            if(!NextButton->Enabled)
+                ActiveControl=SysPassVerifyEdit;
+            break;
+        case 8:
+            current=CompleteLabel->Font;
+            break;
+        default:
+            return;
+    }
+
+    /* default to inactive */
+    IntroductionLabel->Font->Color=clGray;
+    IdentificationLabel->Font->Color=clGray;
+    QWKLabel->Font->Color=clGray;
+    TimeLabel->Font->Color=clGray;
+    InternetLabel->Font->Color=clGray;
+    MaximumsLabel->Font->Color=clGray;
+    OptionsLabel->Font->Color=clGray;
+    VerifyLabel->Font->Color=clGray;
+    CompleteLabel->Font->Color=clGray;
+
+    /* active */
+    current->Color=clYellow;
+
+    BackButton->Enabled=WizNotebook->PageIndex;
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::VerifyIdentification(TObject *Sender)
+{
+    NextButton->Enabled=(SystemNameEdit->Text.Length()
+        && SystemLocationEdit->Text.Length()
+        && SysopNameEdit->Text.Length()
+        && SystemPasswordEdit->Text.Length()
+    );
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::VerifyPassword(TObject *Sender)
+{
+    NextButton->Enabled=(SystemPasswordEdit->Text==SysPassVerifyEdit->Text);
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::VerifyQWK(TObject *Sender)
+{
+    char    qwk_id[9];
+
+    sprintf(qwk_id,"%.*s",sizeof(qwk_id)-1
+        ,QWKIDEdit->Text.c_str());
+    NextButton->Enabled=(
+        strlen(qwk_id)>=2
+        && isalpha(qwk_id[0])
+        && strcspn(qwk_id,ILLEGAL_QWKID_CHARS)==strlen(qwk_id)
+        && QNetTaglineEdit->Text.Length());
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::QNetTaglineEditKeyPress(TObject *Sender,
+      char &Key)
+{
+    if(Key==1)  /* Ctrl-A */
+        QNetTaglineEdit->SetSelTextBuf("\1");
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TConfigWizard::VerifyInternetAddresses(TObject *Sender)
+{
+    NextButton->Enabled=(InternetAddressComboBox->Text.Length()
+        && DNSAddressEdit->Text.Length());
+}
+//---------------------------------------------------------------------------
+void __fastcall TConfigWizard::TimeZoneComboBoxChange(TObject *Sender)
+{
+    DaylightCheckBox->Enabled=tz_val[TimeZoneComboBox->ItemIndex]&US_ZONE;
+    if(!DaylightCheckBox->Enabled)
+        DaylightCheckBox->Checked=false;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TConfigWizard::NewUsersCheckBoxClick(TObject *Sender)
+{
+    AliasesCheckBox->Enabled=NewUsersCheckBox->Checked;
+    FeedbackCheckBox->Enabled=NewUsersCheckBox->Checked;
+}
+//---------------------------------------------------------------------------
+
diff --git a/src/sbbs3/ctrl/ConfigWizardUnit.dfm b/src/sbbs3/ctrl/ConfigWizardUnit.dfm
new file mode 100644
index 0000000000000000000000000000000000000000..0e5d5e28f9ca8cdbd911a07a4278a6a917ba67ab
--- /dev/null
+++ b/src/sbbs3/ctrl/ConfigWizardUnit.dfm
@@ -0,0 +1,1160 @@
+object ConfigWizard: TConfigWizard
+  Left = 489
+  Top = 424
+  Width = 599
+  Height = 408
+  Caption = 'Configuration Wizard'
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -13
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  OldCreateOrder = False
+  Position = poScreenCenter
+  OnShow = FormShow
+  PixelsPerInch = 120
+  TextHeight = 16
+  object Shape1: TShape
+    Left = 0
+    Top = 8
+    Width = 198
+    Height = 367
+    Brush.Color = clBlack
+  end
+  object TitleLabel: TLabel
+    Left = 20
+    Top = 20
+    Width = 141
+    Height = 32
+    Caption = 'Synchronet'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clWhite
+    Font.Height = -23
+    Font.Name = 'Arial Black'
+    Font.Style = []
+    ParentColor = False
+    ParentFont = False
+    OnDblClick = TitleLabelClick
+  end
+  object IntroductionLabel: TLabel
+    Left = 20
+    Top = 63
+    Width = 105
+    Height = 21
+    Caption = 'Introduction'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clYellow
+    Font.Height = -18
+    Font.Name = 'Arial'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+  end
+  object IdentificationLabel: TLabel
+    Left = 20
+    Top = 87
+    Width = 113
+    Height = 21
+    Caption = 'Identification'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clGray
+    Font.Height = -18
+    Font.Name = 'Arial'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+  end
+  object QWKLabel: TLabel
+    Left = 20
+    Top = 159
+    Width = 68
+    Height = 21
+    Caption = 'QWK-ID'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clGray
+    Font.Height = -18
+    Font.Name = 'Arial'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+  end
+  object InternetLabel: TLabel
+    Left = 20
+    Top = 135
+    Width = 68
+    Height = 21
+    Caption = 'Internet'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clGray
+    Font.Height = -18
+    Font.Name = 'Arial'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+  end
+  object MaximumsLabel: TLabel
+    Left = 20
+    Top = 183
+    Width = 96
+    Height = 21
+    Caption = 'Maximums'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clGray
+    Font.Height = -18
+    Font.Name = 'Arial'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+  end
+  object OptionsLabel: TLabel
+    Left = 20
+    Top = 207
+    Width = 68
+    Height = 21
+    Caption = 'Options'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clGray
+    Font.Height = -18
+    Font.Name = 'Arial'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+  end
+  object VerifyLabel: TLabel
+    Left = 20
+    Top = 231
+    Width = 53
+    Height = 21
+    Caption = 'Verify'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clGray
+    Font.Height = -18
+    Font.Name = 'Arial'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+  end
+  object LogoImage: TImage
+    Left = 8
+    Top = 16
+    Width = 177
+    Height = 41
+    Picture.Data = {
+      0A544A504547496D616765F62C0000FFD8FFFE000857414E473202FFE000104A
+      46494600010101006400640000FFDB004300100B0C0E0C0A100E0D0E12111013
+      18281A181616183123251D283A333D3C3933383740485C4E404457453738506D
+      51575F626768673E4D71797064785C656763FFDB0043011112121815182F1A1A
+      2F63423842636363636363636363636363636363636363636363636363636363
+      6363636363636363636363636363636363636363636363FFC0001108008B0310
+      03012100021101031101FFC4001F000001050101010101010000000000000000
+      0102030405060708090A0BFFC400B5100002010303020403050504040000017D
+      01020300041105122131410613516107227114328191A1082342B1C11552D1F0
+      2433627282090A161718191A25262728292A3435363738393A43444546474849
+      4A535455565758595A636465666768696A737475767778797A83848586878889
+      8A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5
+      C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8
+      F9FAFFC4001F0100030101010101010101010000000000000102030405060708
+      090A0BFFC400B511000201020404030407050404000102770001020311040521
+      31061241510761711322328108144291A1B1C109233352F0156272D10A162434
+      E125F11718191A262728292A35363738393A434445464748494A535455565758
+      595A636465666768696A737475767778797A82838485868788898A9293949596
+      9798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2
+      D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C0301
+      0002110311003F00F3FA2800A2800A2800A2800A2800A2800A2800A2800A2800
+      A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A280
+      0A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A28
+      00A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2
+      800A2800A2800A2801D1C6F2B848D19D8F40A326B5ED7C3975280D3BAC23D3A9
+      AC6B578D25AEE6B4E939EC6A41E1AB251FBC79643F5C0AB4BA0E9ABFF2EC0FD5
+      89FEB5E74F1751BD343B161E0B715B42D35863ECC07D188FEB5567F0C59BFF00
+      AA79223F5C8FD694717522F5D42587835A6864DE7876EADC168CACA83D383593
+      246F1B6D752A7DC57A54AB46AAD0E3A949C1EA368AD8C828A0028A0028A0028A
+      0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A002B5341B28AF6
+      EA413A6F8D1338C91CE7DBF1ACAB49C60DA2E9C54A49337BFB0F4EFF009F7FFC
+      7DBFC697FB0B4EFF009F7FFC7DBFC6BCCFAD55EE772A14FB08DA1E9A149FB3F4
+      1FDF6FF1AE5B50B716D74C8BF70F2BF4AEAC3569CE4D499857A518ABC4AD4577
+      1CA1450014500145001450014500145001450014500145001450014500145001
+      4500145001450014500145001450014500145002A2339C22963E8066AD269D70
+      D8DCA13FDE35129A8EE5462E5B1B96FE0ABC9E04956E6101C64020D49FF0825E
+      FF00CFDC1F91AE0799413B599B7B07DC3FE104BDFF009FB83F23585AC698FA4D
+      EFD9A495247DA1895CE067EB5AD0C646B4F9522274B955EE51A2BB4C828A002A
+      F699A6C9A84B81F2C4BF79F1FA0F7A8A93508B932A11729591D6D9D95BD947B6
+      08C0CF56EE7EA6ACD78939393E667A914A2AC8507069E0E6A1941466900B591A
+      AD9A28F336068CF0CA474AD68C9C644548DE260CFA5ABE5ADDB07FBADFE359D2
+      44F136D914A9F7AF5E9D4E6D1EE79D3872EAB619456C66145001450014500145
+      0014500145001450014500145001450014500145001450015D2F8563C5BCF2E3
+      EF305FC87FF5EB9B14ED499B505EF9BD4A2BC83D044572DB6073ED8AE575D51B
+      A16EE411FCABB309F118623E132A8AF50E00A2800A2800A2800A2800A2800A28
+      00A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2
+      802482DE5B86DB1216F7EC2B56DB474501AE1B71FEEAF4AC2AD6E4D16E6B4E9F
+      36AF6345628E14DB1A2A8F61503F2E0571C5B6EECE86ADA23BEB35D9690AFA20
+      FE553578B2DD9A3DC2BCD3C67217F11CE08FB8AAA3FEF907FAD7A196AFDEBF43
+      1ADF0987457BA720514012DB40D73711C29F79CE3E95DB5AC11DB5BA4318C2A8
+      C7D7DEB83192DA275E1A3BB2714E15E79D84525C4511C3B807D2912FA0271BF1
+      F5155ECE4D5C97349D8B2AC194153907BD2D645054576BE65AC8BFECE69C7469
+      83D8E7F1DC524889326C95430F7ED5E8DFAA393D4CCBAD35E305E1CBA7A77154
+      2BB29CF9D1CD38F2B0A2B42028A0028A0028A0028A0028A0028A0028A0028A00
+      28A0028A0028A0028A002BB2D063F2B4987D5B2C7F135C78C7EE25E6746197BC
+      68D02BCB3B8AF7ED8882FA9AE5B5B6CDCA2FF752BBB08BDE473621E866D15E91
+      C414500145001450014500145001450014500145001450014500145001450014
+      50014500145001450014500145002805880A0927B0AD6B2D1C901EE891FEC0FE
+      B58D6A9C8BCCD29C3999ACA891A85450AA3A0028AF3EF7DCEC435CE054118DD7
+      08BEA40AB8EC4BDCF42518503D052D7885B0AF2AF114824D7EF581C8F348FCB8
+      FE95E9E58BF7927E4615F6466D15ED9CA145006E786200D34D391F74051F8FFF
+      00AABA3AF2B12EF519DF415A0870A5EDC572B37665CE14B912C6C8FF00DE1CE6
+      A12A46704381E95D6B6307B96ECAE96042ADB88CE4003A55AFED08BFB8FF0095
+      613A6DBB9A466920FED08FFB8FF9523DEC6D1B2847E463A54FB263E745682D91
+      A54246E53D41ABBF62B6FF009E43F5AA9D4927A0A3056D451656E3FE590FCCD4
+      2FA4583B166B642C7BF352AB4E3AA6374E2F7462C9A5DAC808D850838CA9ACEB
+      8D2658F2626120F4E86BD1A75DDED23927496F12DF87B4A5BA9A492EA3CC71FC
+      BB5B8CB56FFF006369DFF3EA9FAD73E23113551A8BD0D68D28B85E483FB1B4EF
+      F9F54FD6A1B9D334D8222DF658F3DBAD631AF55BB731A3A54D2BD8874DD2ACA6
+      89E492DD0E5B03AD5BFEC5D3BFE7D53F5AA9E22A293498A34A16D83FB174FF00
+      F9F54AAF77A4596C548ED5771F4CD28E22A5F56374616D8A71F8662DFBA499B6
+      FF00757FC6AF47A1E9E83FD46E3EACC4D693C5CDFC3A111C3C56E2BE8BA7B2E3
+      ECCA3E848ACFBBF0DC6C0B5AC854FF0075F91F9D14F1538BF7B5413A116B4D0C
+      0B8B696D6429321522A2AF52325257470B4D3B30A2988BB67A55D5E00D1A6D8F
+      FBEDC0FF00EBD6BC1E1B854033CCEE7D146057256C4A8BE58EE7453A1CDAC8B4
+      9A1D828FF525BDCB1A79D1EC08C7D997F026B91E22A3EA742A30EC412F87EC9C
+      7C81E33FECB67F9D65DE68171002F091320EC06187E15BD2C53BDA6655282B5E
+      2649041C118345779C81D4E2BBDB68FC9B68A31FC0807E95C18D7A24756196AD
+      93515E71D855BC569248D1064E326A9B6830CF3B4D73233138C2AF0057442ABA
+      6B4DCCE54F9DEA4EBA269CA31F6607EAC4FF005A6C9A0E9F203884A13DD58D0B
+      15553BDC1D0A76B58C7D4BC3D2DB2196D98CB18E4823E61FE358B5E951AAAAC6
+      E7155A6E9CAC1D4E05759A468D68D680CF0891C9E49CD658BA92843DD2F0F052
+      96A5F1A269A7FE5D53F334EFEC3D37FE7D13F335E6FD66AFF31D9EC69F6317C4
+      5A75BC2D6F0D95B012C84F0B924D4BA7F84F7287BE94827FE59C7FD4D767D69C
+      2926F59330F60A551A5A246C47E1CD2917FE3DB77BB313FD6B9CF15DA5A59DCC
+      11DAC223CA12D8279E78ACF0D5EA54AA949E85D7A50853BA46153E28A49E411C
+      48CEE7A051935EA3692BB3812BE88DFB1F08DD4C035D48B029FE11F3356D41E1
+      1D3631FBCF3663FED3E3F957955F1EEF6A7F79DB4F0C92BCCB43C39A4A8C7D8D
+      7F1663FD6A393C2DA4C8B8103467D5643FD6B99636B277B9ABA14EDB1977BE0A
+      182D657273FDC9475FC47F857357BA7DD5849B2EA168CF627A1FA1AF4B0D8B55
+      BDD7A338EAD170D56C56ABB65A6CB74039F923F53D4FD2BAAA4D423766508B93
+      B1D1689A2D94B77E5CB0F98A1093B89ADFFF00847348FF009F18FF0033FE35E2
+      D7C55553D19DB1A50B6C28F0DE8E7FE5C63FCCFF008D64789F43B2834F416368
+      893BC800604F4C1A5471555D44A52D052A71B3B229E9DE0A96601EF26F294FF0
+      A8E6B760F086910E0B42F291DDDCFF004AD2BE6136ED4F444468C56FA960F867
+      472306C53F0247F5ACEBEF04D84CA4DA4925BBF604EE5FD79FD6B1A78FAB17EF
+      3BA1CA9459C66ABA55D69373E4DD2633CAB8FBAC3DAA957BB4E6AA454A3B3391
+      AB3B30A500B1C2824FA0AB11A9A6F87B50D44FEEE3D89DD9F802BA5B3F02DB20
+      06F2E6490FF7631B4579B89C7AA6F961AB3A2147AC8D48FC2BA347FF002E818F
+      FB4EC7FAD3DBC33A3B0C1B14FC091FD6BCD78DAEDDF98DBD9C7B112F8534C8A4
+      32408F1376C3671F9D55BBD1EE2DC164FDEA0EEA391F85691C54A6FF00785462
+      92B232CF5A8A490A8E2BAE2AE26EC5CD0215BCBE293AEF40A4906BA55D22C118
+      32DB2860720F35C989A9284F962F41ADAE5DA2B8462138ACC9740D2A695E592C
+      A367762CC4E7926B5A75674F583B09C53DCE6FC65A6D8E9F656E6D2D52277939
+      619CE00E95C857BF839CA7494A4EECE3AA929590515D46674BE182BF639401F3
+      0939FA607FF5EB6ABC8AFF00C467A34BE0428A7035833502AAE30CA08F7A85AC
+      A13CA82A7D8D0A4E22714C85EC5B394704FBF06A26578F89148F7ED5AA9A910E
+      2D075A29923E262B22904F519AD4ACAA1AC028AC8B315862471FED1A6152CC00
+      E49E0576A3999B304421855076EBF5A92B8DBBBB9D0959074AC3D4EEBCC936A9
+      E056D423795CCEABB23534F8FCBB288772327F1AB1594DDE4CB8EC8426994914
+      145300A4A09666EAD6D1C88199720F06B98BCB36B66C8C98CF43E95E96167A72
+      B38EBC75B956BA1D27440A16E2EC024F2B1FA7D6B6C454E48E9BB33A30E696A6
+      F018181D28AF28EF0A2800A28031F5AD29278DAE2150B28E481FC55CC57A9859
+      F342CFA1C35E3CB2BAEA58D3E2F3AFE08FB1719FA57735CF8D7EF246D865A362
+      D2D709D21DF34B486828A063979E2B8BD7ED16D35260830920DE07A575E0E56A
+      8D7739B12AF1B952C937DDC63DF3F9577562BB6D53DF9AD31CF6446156E591D6
+      9D5E633B462C286E0CCC017030A7D055814DBB8D2B0F53DAB83F154DE6EB720C
+      FDC50BFE7F3AEAC0AFDEB7E473E2DFB857D27499B539C2A7CB18FBCE7B5777A6
+      E996BA7421208C6EC7CCE7A9AD31D5FF00E5DAF999E1A9E9CECBB4A0E2BCB3B0
+      75148428A86EED20BD81A0B88C3A3763DBDC7BD38C9C5DD10D5D599C44BA07D8
+      B50749FE6881CC7FED0F7ABE380457AD3ABED52673421C9746B78797F7D349E8
+      00ADEAF32BFC6CD96C148D1A3BABB282C9F773DAB1BD8092941A42168A423375
+      FD35353D2A684A832005A33E8C2BCAD559982A8249EC2BDBCB677838BE872D65
+      AA65FB7D2D9B0D336D1FDD1D6BACD0BC3B19559E68C2C67EEAF76FAD3C5E2796
+      3A174A9DB5675288B1A04450AA3A0029D5E19B85140828A00C6D6B4B578DAE60
+      5C38E5D4771EBF5AE5663C57A9859F3475E8291B3E125CDCCADE89FD6BAAAE4C
+      57F158D6C84269335CE30A4CE2819C67C409326C630DFDF62BF960FF003AE3AB
+      E8B04AD423FD7538AB7C6C28AEB3234B43BE5B3BA2B21C45270C7D0F635D6021
+      8020E41E8457998B85A7CDDCEEC3CAF1B0B4EAE43A10B4E15208282011823228
+      194AE6D3683240304755F5FA55359B3DEBA60F9918C972B1DBF1DEB655B7283E
+      A3359D55B174C751581A18D28C4F20FF0068D58B087748653D17A7D6BA64ED13
+      14B53468AE63629EA3722184A83F31AC100CD32AF7638AEDA0AD1B9CD55DDD8E
+      A0615401D00C504D719D2266A19A748465CF3E82A92BBB21376215D423279560
+      3D6AD0218020E41E95528389319290B49505321B988CB1119E3D31DEB2668301
+      A39572A7839AE8A52E8635110E97A385BB69E5F9A343FBB07B9F7FA56F5557A9
+      CF2152872C429090AA589C01DEB0352B35F460E00635345324C0ED3C8EA0D5B8
+      34AE4A926EC49454140402307A1AE4357B5F267F300E18E0FD6BAF092B4EC73E
+      215E3724F0EC7BF5456FEE296FE9FD6BADA9C5BFDE15865EE0A296B90DC826BA
+      8E1386C96F41490DEC72B84C1527A66AFD9BB5C9E757B1668ACCD051D6B9FF00
+      16C798E0971D095FF3F956F8676AA8C6BABD366469285AE891D857731AEC455F
+      418AD71AFDE48CF0DB0EA7839AE06758A29E0D218ECF7AE06481B52D5EE1F9D8
+      64393EBCF4AEDC1BE5E691CD8957491DC69F669676CB1A800E39C55B06B8672E
+      693674A565616ABDD5E4168332BE09E8A3926A6317276426D2576531AF41BB1E
+      5C98F5E2B4A09E3B8884913654D5D4A3282BB263352D897A52D6236666BB106B
+      78E5C728D8FC0FF915875DD41DE0633DCDDF0FA62D647FEF3D6B038AE4ABF1B2
+      96C3B39A4665452CC40503249ED5981952F88AD51CAA23C80771C0AB9A7EA505
+      F83E5E55D7AAB75ADA7879423CCC9BA7A22ED19AE701722B8092D22B7BA9C46A
+      07EF1B27F1AEDC1C9AE6444A3D4D2D134F17975B9C6628F96F73D8575C000303
+      A5678A9DE76EC35B0554D4AFE3D3ED8CB20C93C2A8EE6B9E1173928A19CBCDAE
+      DFCEE4AC8235F451441AD5F42E18CC641DD5F9CD7A9F56A695AC473B3ABB0BB4
+      BDB549D0633C11E86AC579728F2C9A2C2B86D7E0167A83C6A3E57F9D47B1FF00
+      EBE6BAB04FDFB132D8AB6D77776A0985CC40F523BD741E1CBBBABAB893CF99DD
+      557A135D588A70E472B6A28377B1D0D266BCA342AEA331834FB894120AC64823
+      B1C715C44BE22BC887CD74E4FA03CD7A183A31A89DD11526E1B18FA8EA371A8C
+      AAF70E5B68C2E7B0AA95ED420A11514714A4E4EEC28AB242AFD86AD716584CEF
+      8BFBADDBE959D4A6AA46CCB84DC1DD1D05A6B16D723AEC6F4357D1D5C655811E
+      D5E554A7283B33D084D4B543C1A7562CB168A430AC4B9884770E141033C56D45
+      EACCEAAD08C311DEB6ED9F75BC67FD915559684D27A92E68DD5CE6E65CCA4DDB
+      A81C935A51288A3083B56951E8919C16AC7EEA6BB8552C7802B348D0E7EF6E0C
+      F3139E2974D4DF7B1FA2FCD5DF6E5A671DEF337E8AE03B02B16EA42F33127BD6
+      D456A6551E8440FA56CDA67ECB1E7D2AEB6C4D3DC9A90D731B323B897C980B00
+      327A56709BCD6DAC339E2B6A71D2E6537AD8D04408814740296A2F72EC154750
+      98861183C0E4D5D357913376453EB52DA4AB1CDB98E06306B792BAB1927665EF
+      B643FDEFD28FB643FDE3F9561ECE46BCE84FB6C3FDE3F9552D5A05B9B695A320
+      E7E618ABA69C249B266D4A2D22AF85A3FF008F897E8A3FCFE55D0D18977AAC28
+      2FDDA0A47711C6CFFDD19AC2D735662B31762CC724F5A75BAEEB88F9E322BB1E
+      88E65B9BA7A9C74A4AE13AC2B03C54F98634F461FC8D6F865FBD4635BE0652F0
+      FC5BE6FF007980AEC2AB18FF00784E1D7B82D283CD719D224D324119791B03F9
+      D66C9AC4849F29001FED726B5A54B9B57B113A9CBA2203ABDD1C8DC9CFFB3468
+      76AA27518C84F989F535BCA2A9C1D8C937392B9D2D2D79E758D9655861791BA2
+      8CD7273CCF3CCD239CB31AEAC3477673D67B218A0B100024FA5741A144F0A48A
+      EC32D8217D2B4C435C962292D6E6B500E2BCE3A0A7AC11FD9EFF00518FCEB9D3
+      D2BB70FF000184F73A4D1D7669D17FB593FAD5EAE3A9F1B2D6C158FE25B864B5
+      8E1538F31B2D8F4157415EA214B630A1B5966E546147527A56B68B0C50DEA912
+      6F908238E95DB5A7EEB488847AB3A3CD2E457985582B869DC34D238E8CC4FEB5
+      D7845AB225B1D668D07D9B4E8C63E671BDBF1ABD935CD51DE6D95617355EEACE
+      DAF36FDA220FB7A649E2A632717742B100D1F4F1FF002ECBF99FF1A3FB1F4FFF
+      009F65FCCFF8D6BEDEA770B22CDBDBC56B1F9702044CE702A5CD64DB6EEC6158
+      3E268548826C0DC32B9EFF00E7AD6B41DAA213D8E6A635D0F8517114EFF415E8
+      623F84C887C46F939A2BCA3631FC573183C3F7255B6B36D51F8919FD335E6B5E
+      DE5CBF74DF99C7887EF241457A273855E8748BC9E25963452AC320EE1513A918
+      2BC8A8C1C9D90FFEC3BEFF009E6BFF007D0A5FEC2BEFF9E6BFF7D0ACBEB34CD3
+      D84C46D16F631B991401DF754D126A507F079AA3D186693AB4EA2D46A13832EC
+      5A9CD1604C1D0FA48B8FD6B56CEF16E4118C30E7AF5AE2AB4925CC8E9A752FA3
+      2D52D729BA0A836C0EEFE6919ED9354AFD04EDD4AD35AC67EE9C55AB45D96E17
+      39C135729371D498A499351591A10245FE94F21E83A54F552772520ACED52E76
+      2F94A793D6AA946F2429BB44C726B4F454CBCB27A00A2BAEAE9067353D668D6A
+      2B80EC0270A49E805605C30DE7DEB7A0B531ABB11AB7A574312EC8957D001555
+      FA0A9751D41AE636286A8F8455FC6A969E37DDAFA0C9AEA8694CC25ACCD9A69A
+      E7366281920564DE1CDC39EB935AD2DCCEA6C4229E96B2CCA5A303D3935BB928
+      EACC926F617EC175FECFE747D82E7D17F3A5ED603E490D7B1B844676DB85EBCD
+      25B4AC8C637E8453BA9A76159C5EA5AD1211059B71F7A463FAE3FA568D73D577
+      9B66F4D5A290B505E36DB661FDE2054477454B632D8050493803D68B378E5BB8
+      D51D58839201CD75EBCAD9CDD5237A8AE13A82B96F12CBBA745F73FE15D5845F
+      BC31C43F70B1E1A8FEEB63D5BFA574B518A77A8C7417B88296B94DD18BA8CCD3
+      5C119F953802A931C0C7AD7A14D5A291C937777110126B7B4450239180E49033
+      515DFBA551F88D4538E29D5E7B3B0A1ADC9B2C08CE37B05AE76BB70EBDC396B7
+      C45A4952DE302301A52393E95ADA1ABEC9256C9DC7009A9ADF036FA853F89235
+      81CD2D701B999AE49B6D523CF2EFFA0AC36FBB5DF417B8615373ABB45D96912F
+      A20A981C5704B56CD4766B9ED75C1D463565DC11338FC6B5C3AF7C896C519259
+      251863851D157802AE787D036A4CDFDC435D93D29BB10B5674D45798591DCC86
+      3B695FFBA84FE95C4A0DF3A21E84E2BB70AB46C89743BB5C2A81E8314B915C45
+      583228C8A420C8A32298583349BA81D8326B1BC487FD162FF7FF00A56B47F888
+      1EC72B29E6BAAF0CA6DD3D9BFBCF5DF8AFE119C3735F75264D7986D639BF1C49
+      B3478D011F3CC011EC013FE15C1D7BB805FB9F99C388F8C28AEE300AECF4F39D
+      3EDF1FF3CD7F9571E2FE1474E1F7658A506B80EC1B3C5E74453383D8D6718268
+      CE0A9FA8AD29C95ACCCE69EE896279BA7965D4F50455D8608E33BD6158DC8E76
+      D4CDDB66386BBA27A5AC4D06C8E123662718158F2CA5989CD6D497533A8C62DC
+      3AF463F4AD2D3A5F36371C706AEAC7DDB934DEB62E515CA740514011CF288626
+      73DBA573B3CA6590B1EF5D5878EECE7ACFA11135BBA426DB20DDDC93FD2AF11F
+      011457BC5EA2B88EB22BA7D9031F5E2B9F99B2D5D5411CF558EB342F751A8EEC
+      335D1D4E2374551D828AE73631F549374E467A714CD2CFFA50CF706BB12B5339
+      9BF7CD83495CA740959D3DAC81C951B949E315AD3924F5339ABA1B1DACAE7952
+      A3D4D68C682340ABD053A92BE88508DB51D4564595352976C6B10FBCC771FE95
+      9E572A4F71C835D14D5A2633D59AF6CBB2DD0631C67F3E6A506B096ACD9682D5
+      4BF6F9634F726887C413D8E6B57B8669CC20E157A8F5356BC2F16EBB924C7DD5
+      C7E75E8CD72D0671475AA750296BCA3BD013804FA5717AD49BEF719E8BFCF9AE
+      CC1AF7CE6C4BF74DFF000FC7B21C9ECA056CD73D7779B36A6AD04148EDB6366F
+      419AC4D0E3E6D5A3DC7646CDEE4E2A16D5720E2119F76FFEB57B11A0EDAB3CE7
+      54D0B6CF96BE69C9C64FD6B77479032C8A001EC2B8F10BDD674D2DCD4A729EC6
+      BCF67615356B01A8E9F25BEEDAC7946F461D2B9E8B4EBE8A3549A072E3825464
+      1FC6BB28558A872C8E6AB4DB97322EDAE95712B8DEA635EE5BFC2BA086258625
+      8D06154605635EA29688BA706B563E9C0E6B999A339CD5AE45C5EED53958FE51
+      F5EF55146F9157D580AF460B96291CD277675EBC003D053ABCD37615CD6AAFBF
+      5197DB03F4ADF0EBDE6673D8A84E056AF86D32F70FF415D35BF86C88FC46F668
+      DD5E71A58A9ABCA23D3663EA00FCCD7270BA473AB904E0835DD864F9199CF468
+      EE1183A061D08C8A5AE02C2B9CD7EEF52B1BADF148C2DDC0DA401807B8AE8C3C
+      6329DA44C9B4AE8CB5D6F536E93B7E43FC2AF585CEAD7B308D6E580FE26DA30B
+      5DB52951826EC446526CD7FB05FF00FD051BFEFD0A3EC37FFF004146FF00BF42
+      B8BDA53FE4FC4D35EE34D9DF0049D55801D7F742B9FBCBB9A6F9679CCA149DA4
+      802B7A1C937751B58995D2DCCF63B9863D6BB1D0D366991FB926B4C6690489A5
+      BB3428CD7986E6078B74EB8D46CA2FB2A6F689CB15CF2463B571A745D4C75B19
+      FF00EF835ED60ABD38D2E593B338EB539395D228D15E91CA15D46817025B1119
+      3F3447047B76AE6C52BC2E6F41DA669D2D79A770E0696A40294503428A5A960C
+      CEBEB8DE7621E075F7ACF6EB5D74D591CF3776379AD0D1DBF7922FA8069D5F81
+      8A9FC48D5A2B88EB0A28031B55BADEFE5A9E075ACC2735E8528DA271D4779095
+      D4DB47E55BC69FDD502B2C4BD1234A3BB24A2B90E8296A4FB620BEB588C72C6B
+      B282F74E5AAF52EE909BAECB7F75735B758D77EF9AD2F842827009F4AC4D0E76
+      EDF74AC7DE8B7631C8AE3AA9CD7A16F76C725FDEB9BC8CB220653C1A5AE13A90
+      86929830A281050CE91219243F28EDEA7D28DF440634CE6699A46EA4E7142807
+      0A7A31C575ECAC8E7DD9B2060628AE43A051546F5B37207F740AA86E29EC7277
+      8FE65DCADEAC6BA1F0BC5B6D6593FBCD8AF4313A51B1C7475A97372815E51DC8
+      65C36D81CFB5711767CED41C7ABEDFE95DF83EACE6C4F4475FA5AEDB5CFAB55F
+      06B8AA6B2674C3E142D54D565F274D9DFBEC38A505792412768B382A551B980F
+      538AF7CF24E897BD5CD367F22E46E3F2B706BCCA8AF168EE83B4933A10734EAF
+      34ED1C0E69D523014ECD2626159BAB6A22DA330C4DFBD6E38FE115A52873C922
+      272E5573063FEB566C17CCD4211FED67F2AEF9ECCE68EE8EAA806BCA3A85CD72
+      770FBEEA66F5727F5AE9C32D5994C8DCE056E787576D9BBF767ADABFF0C98FC4
+      6B6696BCE3432BC44FB6C157FBCE057338AF4B0DFC331A9B9D4E897A2E2D1636
+      6FDE463047A8EC6B4F35C5563CB368D56AAE1934D650EA55C0653D411906B302
+      A9D32C8B6E36C99F618AB31C6912ED8D1517D1462AE55252566C2C8751517198
+      BAE6A4151AD613963C391DBDAB9A9326BD4C343961AF530A8EEC48E362E38E2B
+      B3D2B034F88039E2A318EF143A48B79A2BCE370A86EDFCBB39DF76DDB1B1CFA7
+      14E2AED09EC794515F547921562C6EDECAE04A9C8E8C3D454CA2A51698E2F95D
+      CEB2D2EE1BC88491367D54F51F5A9EBC7945C5D99E945A92BA141A7D4B2828A4
+      00EEA832CC00AA1717A5C6D8F81DCD5C217772672B6853CE69300D749806D156
+      B4C056EBAF5539A99BF75951F891AF45711D2155AFAE041013FC47A55415E490
+      A4ECAE73D2396624D32BD2471135A47E6DD449D8B0CD74F5C9897AA47451D985
+      15CC6E64EA92664C7A56677AEFA4BDD38EA3F78D7D15311C92772715A55C955D
+      E6CE8A7F0A0A8AE9F65BB9F6A88AD4A6F439D7396A96215E83D8E45B9617505B
+      274573F2B9C735A892A4A328D9EF5CB520D7BDDCDE9C93D07521AC8D18521603
+      A902988825BB8E3E07CC7DAA84D33CCD963F41E95B4216D599CA57D111D10B79
+      9A941003F772EDF80E3F5ADBA332EC6DD15C67480EB59773200F3487A0CD694D
+      6A44DE8728492493D4D765A247E56970823EF7CD5DB8C7EE24736197BCD9A14B
+      5E61DA56D424096A49381DEB8DB4064BD527D4B1AEFC2AB424CE4C43BC923B6B
+      35D96B18F6CD4D5C12DD9D91D8783593E27976696573CBB0157415EA448ABA41
+      9C752A9DAC0FA1CD7B8796744AC19030E846696BCE6761A765A918C049B951D0
+      D6B453C728CA3835C5569F2BBA3AA9CEEAC4B4E07B1AE766C3A98F2C710CC922
+      A0FF0068E2924DE881BB189ABF88E3B64296DF3391C1AC8676772CE72C7A9AF4
+      A8D1F671BBDD9C552A734ACBA13274AD0D15776A00FF007549A557E16386E8E8
+      E96BCB3A46C8DB2367FEE826B91539CD75E1968CCAA741243C5749A2A6CD322F
+      7C9FD6AF11F0130DCBF45701A987E237FF005099F5247E5589915E9505FBB461
+      3F8874333C12ACB136D653C574763ADC1380B391149EFD0FE35388A4E6B996E1
+      097466987560083907B8A322BCEB1B583228CD160B114F770DBAE669153EA79F
+      CAB12FF5D69018ED4145EEE7A9FF000AE9A145CDDDEC4CA5CA631249C9E69BCF
+      602BD239C5C9F5ADFD02F14C46D9DB0C0E573DC561888DE1A1A537691B3466BC
+      C3A2C266A86B92797A2DE3633FBA61F98C7F5AD29ABCD2F314B48B3CCE8AFA73
+      C80A2802486796DE40F139461DC56CDAF8848016E63CFF00B4BFE15CF5A8AA9A
+      ADCDA9D570D3A1A70EA56F30CA367DAA71769D81AF3E54E49D99D6A69EA84377
+      FDD4FCCD46D73337036AFD28505D46E4FA15DD598E59893F5A61435A2666D09B
+      4D3A18CCB2840704D537A5C496A5AFECE6FF009E83F2AB36D6AB01272598F19A
+      E7955BAB23550B3B9628CD626805800493C0AC1D42E1A79491F7474AE8A11F7A
+      E6755E9628D15DA73162D64F2265931C8AD417AEC321862B9EAC2EEE6B4E5656
+      0FB649FDE149F6C93FBDFA565ECD17CECA7779918B8E49ED5487DEAE986C632D
+      CD0B4BB68A1D8A7183E953FDBE4FEF7E958CA9A6DB345369086FE4FEF54735DB
+      CB19466E0D0A9A4EE3736CA07EF54F10ADA5B192333597CCE89FDD5CFE74B63A
+      934388E52768E8DDC56EA9F35248CB9F96773663BE908CAC9B87AD38DF4BFDE1
+      5C6E92B9D2A6C6B5EC87F8B15134ECDD589A6A0909C9B1BBE96AAC4905DDDA5B
+      27AB9E8B5574AB875BA9672417231935B461FBB6DF53373F7D1ABFDA527A8FCA
+      8FED297D47E55CFEC51AFB562FF694BEA3F2AAB7B2E34E95FBB0C7E7551A6A2D
+      58529DD33040C903D6BA58AFE48A258D48DAA3038AE8C4454AC99951972DD8FF
+      00ED397D47E547F69CDEA3F2AE4F63137F6AC82FEF9A5B494391F7481F8F1593
+      A628F399CF4515D34E3CB4DD8C672E69A379753955401B7038E94EFED49BFD9F
+      CAB9BD8C4DFDA317FB526F51F9565EBB7AF711448E47049E95A51A494D322A54
+      6E2D18D457A0719A7A75C878C42E70CBF773DC55DC915C75236933A60EE850C4
+      5491C8EA72AC41F6AC9A4CB4CB49A8DCA74933F5A7FF006BDC81D57F2AC5D18B
+      34556488A6D4EE9972662A073C7158F77A9F2423191CFF00113C0AE8A3455F44
+      6552ABEA67C45A6BA4DC492CC326B6C72DF8D6D5BA232A64C182AF269D6F7F25
+      AC85E1201231C8CD7338732B33752B163FB7AF3FE7A27FDF028FEDEBDFF9E8BF
+      F7C0ACFEAB4FB15EDA40759BC991919D76B0C1F94542A71C93814D538C348873
+      396E412DC2E48539A9E2D6EF218D638E450AA3006C156E8A9AB488E769E83BFE
+      120BFF00F9EABFF7C0A55D7EFCFF00CB453FF00151F55A7D87ED6445737B3DE3
+      AB4EC1980C0C0C5463DEAD45455909BBEAC29A580A603A3BB9A13FBA99D3FDD3
+      8AB0BAE5F2F1E7E7EAA2A654213DD0D546B61B2F88EF107CD70ABFF0119A8E2D
+      62EAF431FB4C80038207CBFCA858584573585ED9B76B8D2493924927B9A2A805
+      E293340C42E0533CDC1C8383ED4D21365A8F5ABC886166240ECDCD4BFF000915
+      E018F909F5DB593C2D37A94AB4911BF89EEE31F33C43FE0359DA87892F2F6D9E
+      DC90237E1BE500915AD2C1C1494BB113AEED63168AF40E40A2800A2800048390
+      706ACC57F711747DC3D1B9A99414B72A3271D8BB16B3DA48CFD54D5B8F53B67F
+      E3DA7FDA18AE49E1DAD8E88D54F72C24F1B8CABAB7D0D3F70AE77168D6E98D38
+      AB3A7AE6566F414A5F0B1C772FD2D731B051480CED42E739890F4EA45661E6BB
+      6946D139E6EEC6940693CAF435B5CCEC28539A8EEEE4DB43F29F9DBA7B7BD097
+      33484DD95C862D58E312A7E2B5656FEDDC7FACC7D4554A8B5B0A3513DC537907
+      695698D736EC79956A5424BA0F9E3DC12EADC1E655C5453EA1124D84F9D31D47
+      AD52A726F5139A4B41CB7B030FBF8FA8A77DAE0FF9EAB49D39760E75DC437507
+      FCF55A963BDB71C19545274E4D6C35389937B289AEDDD4E573807DAA0AEB8AB4
+      5239E4EEEE4B0DC4B01CC6C40F4ED5763D490FFAC42A7D4722A274F9B545C276
+      D193ADE5BB0FF583F1E28FB541FF003D56B0F672EC6BCF1EE35AFA04FE32C7D8
+      5569F5391C6221B07AF53571A4DEB2265534B229331624B1249EE6A4B69BC993
+      71E41E0D7435756314F5B9A02E6123FD60A5F3E0FF009EAB5CDCB2EC6D75DC3C
+      F83FE7AAD437B708D6DE5A386CB02714E317757427256D0A28DB5D58F620D6A8
+      B8808CF9AB575537B1306BA879F07FCF65A5F3EDFF00E7B2D65CB2EC69CD1EE5
+      7BE9E330EC8DC3163CE3D29BA7BC48AFE6385248EB5A72BE422EB98B827B6FF9
+      ECB47DA2DBFE7B2D65CB3EC69CD1EE1F69B6033E72D65DDCFE7CBB80C28E0569
+      4A0D3BB22A495AC8868AE8310048390706AF41A8BA80B32EF1EBDEA270E64546
+      5CACB897D6CFFC7B4FA30A7FDAEDFF00E7AAD72BA73EC6EA71EE35AFED97FE5A
+      67E80D5793551D228F3EEC6AA345BDC4EA25B1466B99663F3B923D074A8ABA92
+      5156460DB6EEC9ACD956E519C80A32727E95A7F6A807FCB55AC2AC5B7A1A41A4
+      869B984F3E68349F6987FE7A0A8E49762F99771AF790A8E1B71F4029B05E46EC
+      DE661001C64F5AAF66ED7279D5C9FEDB0A8F95D698F788FF007A518F4A954DEF
+      62B9D0CFB445FF003D0535AEE25FE227E82A9424C4E6881EF58F08A07B9A9E0D
+      48280258FF0015AA74AEB42554D4B2B7F6E7A3E3EA3141BE8BB482B2F65234E7
+      431AF62C67CC15135F443A6E6FA0AA54D92E6885EFCFF0A7E66A07B995FAB903
+      D0715B469A5B99B9B7B1175A9AD6E5ADA4DC0641E08AA947995894ECEE6A26A1
+      6EC3EF953E8453CDE43FF3D13FEFAAE474A48E8E788C3791F6913F314C6BB4C7
+      FAC5FCF34D537D81CD11B5D45DE4FCAA337B18E818D68A9B21CD11B5F37F0A01
+      F5A85EE257EAE40F6E2B48D34B721CDB22A2B42028A0028A0028A0028A0028A0
+      02A459E55FBB2B8FA31A4D27B8D36B61E2F2E40C099FF3AE9B40663A7F992C9B
+      99D89E4F6E95C98A845434474509373D59A6187A8FCE94BA8EAC3F3AF36CCED2
+      36B98947DF078CE0553B9BD2E0A46303D4F5AD214DDEECCE52EC52A4C0AE9310
+      C0F4A368A77011996342CC7017926B0EEA7371317EDD00F6ADE8AD6E6555E962
+      1A2BA4C028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A002
+      8A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A00
+      28A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0
+      028A0028A0028A0028A0028A002AC5B5ECD6BC46DF2FF74F22A6515256638C9C
+      5DD1A50EB3137132321F51C8AB69796D2FDD9533E84E2B8674651D8EA8D55224
+      DC0FA50706B32C695A6115498869DDEB51C922443323851EE6AD2BE8896EC65D
+      DDD99CED5C88C76F5AAB5DB08F2AB1CD277770A2A890A2800A2800A2800A2800
+      A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A280
+      0A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A28
+      00A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2800A2
+      800A280155D97EEB11F43527DA67FF009ED27FDF46A5C53DD0D49A1DF6CB9FF9
+      ECFF009D1F6CB9FF009ECD53ECE1D87CF2EE35AEA76EB33FE06A3249392493EF
+      56A296C26DBDC4A298828A0028A0028A0028A0028A0028A0028A0028A0028A00
+      28A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0
+      028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A
+      0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028
+      A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A002
+      8A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A00
+      28A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0028A0
+      028A00FFD9}
+    Stretch = True
+    Transparent = True
+    Visible = False
+    OnDblClick = LogoImageClick
+  end
+  object CompleteLabel: TLabel
+    Left = 20
+    Top = 255
+    Width = 85
+    Height = 21
+    Caption = 'Complete'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clGray
+    Font.Height = -18
+    Font.Name = 'Arial'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+  end
+  object TimeLabel: TLabel
+    Left = 20
+    Top = 111
+    Width = 126
+    Height = 21
+    Caption = 'Time and Date'
+    Color = clBlack
+    Font.Charset = ANSI_CHARSET
+    Font.Color = clGray
+    Font.Height = -18
+    Font.Name = 'Arial'
+    Font.Style = [fsBold]
+    ParentColor = False
+    ParentFont = False
+  end
+  object BackButton: TButton
+    Left = 305
+    Top = 327
+    Width = 88
+    Height = 31
+    Caption = '< &Back'
+    Enabled = False
+    TabOrder = 0
+    OnClick = BackButtonClick
+  end
+  object NextButton: TButton
+    Left = 393
+    Top = 327
+    Width = 89
+    Height = 31
+    Caption = '&Next >'
+    TabOrder = 1
+    OnClick = NextButtonClick
+  end
+  object CancelButton: TButton
+    Left = 495
+    Top = 327
+    Width = 89
+    Height = 31
+    Cancel = True
+    Caption = '&Cancel'
+    TabOrder = 2
+    OnClick = CancelButtonClick
+  end
+  object WizNotebook: TNotebook
+    Left = 209
+    Top = 14
+    Width = 360
+    Height = 267
+    PageIndex = 6
+    TabOrder = 3
+    OnPageChanged = WizNotebookPageChanged
+    object TPage
+      Left = 0
+      Top = 0
+      Caption = 'Intro'
+      object Label13: TLabel
+        Left = 8
+        Top = 8
+        Width = 337
+        Height = 25
+        Alignment = taCenter
+        AutoSize = False
+        Caption = 'Welcome'
+        Font.Charset = DEFAULT_CHARSET
+        Font.Color = clWindowText
+        Font.Height = -13
+        Font.Name = 'MS Sans Serif'
+        Font.Style = [fsBold]
+        ParentFont = False
+      end
+      object IntroMemo: TMemo
+        Left = 8
+        Top = 40
+        Width = 345
+        Height = 217
+        TabStop = False
+        Alignment = taCenter
+        BorderStyle = bsNone
+        Color = clBtnFace
+        Lines.Strings = (
+          'This wizard will take you through the configuration of the '
+          'basic parameters required to run a Synchronet bulletin '
+          'board system. All of these parameters may be changed '
+          'later using this wizard or the Synchronet configuration utilty '
+          '(SCFG).'
+          ''
+          'You really should have an active Internet connection in '
+          'order to complete this configuration wizard accurately. So if '
+          'you'#39're not already connected, please do so now.')
+        ReadOnly = True
+        TabOrder = 0
+      end
+    end
+    object TPage
+      Left = 0
+      Top = 0
+      Caption = 'Identification'
+      object Label1: TLabel
+        Left = 8
+        Top = 144
+        Width = 345
+        Height = 25
+        AutoSize = False
+        Caption = 'System Operator (your name, nickname, or alias)'
+      end
+      object SystemNameLabel: TLabel
+        Left = 8
+        Top = 16
+        Width = 241
+        Height = 25
+        AutoSize = False
+        Caption = 'System Name (try to be original)'
+      end
+      object Label2: TLabel
+        Left = 8
+        Top = 80
+        Width = 209
+        Height = 25
+        AutoSize = False
+        Caption = 'System Location (city, state)'
+      end
+      object Label3: TLabel
+        Left = 8
+        Top = 208
+        Width = 345
+        Height = 25
+        AutoSize = False
+        Caption = 'System Password (super secret password for sysops)'
+      end
+      object SysopNameEdit: TEdit
+        Left = 8
+        Top = 168
+        Width = 177
+        Height = 24
+        MaxLength = 40
+        TabOrder = 2
+        OnChange = VerifyIdentification
+      end
+      object SystemNameEdit: TEdit
+        Left = 8
+        Top = 40
+        Width = 177
+        Height = 24
+        MaxLength = 40
+        TabOrder = 0
+        OnChange = VerifyIdentification
+      end
+      object SystemLocationEdit: TEdit
+        Left = 8
+        Top = 104
+        Width = 177
+        Height = 24
+        MaxLength = 40
+        TabOrder = 1
+        OnChange = VerifyIdentification
+      end
+      object SystemPasswordEdit: TEdit
+        Left = 8
+        Top = 232
+        Width = 177
+        Height = 24
+        CharCase = ecUpperCase
+        MaxLength = 40
+        PasswordChar = '*'
+        TabOrder = 3
+        OnChange = VerifyIdentification
+      end
+    end
+    object TPage
+      Left = 0
+      Top = 0
+      Caption = 'Time'
+      object GroupBox1: TGroupBox
+        Left = 8
+        Top = 88
+        Width = 345
+        Height = 81
+        Caption = 'Time Format'
+        TabOrder = 0
+        object Time12hrRadioButton: TRadioButton
+          Left = 8
+          Top = 24
+          Width = 129
+          Height = 17
+          Caption = '12 hour (am/pm)'
+          TabOrder = 0
+        end
+        object Time24hrRadioButton: TRadioButton
+          Left = 8
+          Top = 48
+          Width = 129
+          Height = 17
+          Caption = '24 hour (military)'
+          TabOrder = 1
+        end
+      end
+      object GroupBox2: TGroupBox
+        Left = 8
+        Top = 176
+        Width = 345
+        Height = 81
+        Caption = 'Date Format'
+        TabOrder = 1
+        object DateUsRadioButton: TRadioButton
+          Left = 8
+          Top = 24
+          Width = 217
+          Height = 17
+          Caption = 'American (mm/dd/yy)'
+          TabOrder = 0
+        end
+        object DateEuRadioButton: TRadioButton
+          Left = 8
+          Top = 48
+          Width = 217
+          Height = 17
+          Caption = 'European (dd/mm/yy)'
+          TabOrder = 1
+        end
+      end
+      object GroupBox3: TGroupBox
+        Left = 8
+        Top = 8
+        Width = 345
+        Height = 73
+        Caption = 'Time Zone'
+        TabOrder = 2
+        object TimeZoneComboBox: TComboBox
+          Left = 8
+          Top = 32
+          Width = 185
+          Height = 24
+          Style = csDropDownList
+          ItemHeight = 0
+          ParentShowHint = False
+          ShowHint = True
+          TabOrder = 0
+          OnChange = TimeZoneComboBoxChange
+        end
+        object DaylightCheckBox: TCheckBox
+          Left = 208
+          Top = 32
+          Width = 129
+          Height = 24
+          Caption = 'Daylight Savings'
+          TabOrder = 1
+        end
+      end
+    end
+    object TPage
+      Left = 0
+      Top = 0
+      Caption = 'Internet'
+      object Label4: TLabel
+        Left = 8
+        Top = 16
+        Width = 345
+        Height = 25
+        AutoSize = False
+        Caption = 'Your Internet Address (static IP or host name)'
+      end
+      object Label5: TLabel
+        Left = 8
+        Top = 80
+        Width = 345
+        Height = 25
+        AutoSize = False
+        Caption = 'DNS Server IP Address (i.e. your ISP'#39's DNS server)'
+      end
+      object DNSAddressEdit: TEdit
+        Left = 8
+        Top = 104
+        Width = 241
+        Height = 24
+        MaxLength = 127
+        TabOrder = 1
+        OnChange = VerifyInternetAddresses
+      end
+      object InternetAddressComboBox: TComboBox
+        Left = 8
+        Top = 40
+        Width = 241
+        Height = 24
+        ItemHeight = 0
+        TabOrder = 0
+        OnChange = VerifyInternetAddresses
+      end
+    end
+    object TPage
+      Left = 0
+      Top = 0
+      Caption = 'QWK'
+      object Label9: TLabel
+        Left = 8
+        Top = 144
+        Width = 297
+        Height = 25
+        AutoSize = False
+        Caption = 'BBS QWK-ID (system name abbreviation)'
+      end
+      object Label10: TLabel
+        Left = 8
+        Top = 208
+        Width = 297
+        Height = 25
+        AutoSize = False
+        Caption = 'QWK Network Tagline (system advertisement)'
+      end
+      object IllegalCharsLabel: TLabel
+        Left = 120
+        Top = 168
+        Width = 233
+        Height = 25
+        AutoSize = False
+        Caption = 'IllegalCharsLabel'
+      end
+      object QWKIDEdit: TEdit
+        Left = 8
+        Top = 168
+        Width = 89
+        Height = 24
+        CharCase = ecUpperCase
+        MaxLength = 8
+        TabOrder = 0
+        OnChange = VerifyQWK
+      end
+      object QNetTaglineEdit: TEdit
+        Left = 8
+        Top = 232
+        Width = 345
+        Height = 24
+        MaxLength = 127
+        TabOrder = 1
+        OnChange = VerifyQWK
+        OnKeyPress = QNetTaglineEditKeyPress
+      end
+      object Memo1: TMemo
+        Left = 8
+        Top = 16
+        Width = 337
+        Height = 113
+        TabStop = False
+        BorderStyle = bsNone
+        Color = clBtnFace
+        Lines.Strings = (
+          'Your BBS'#39's QWK-ID is used for unique system '
+          'identification in QWK message packets. QWK message '
+          'packets are utilized in off-line mail readers and some '
+          'message networks (e.g. DOVE-Net). Your QWK-ID '
+          'should be an abbreviation of your system name and may '
+          'consist of up to eight valid DOS filename characters, '
+          'and must begin with a letter.')
+        ReadOnly = True
+        TabOrder = 2
+      end
+    end
+    object TPage
+      Left = 0
+      Top = 0
+      Caption = 'Maximums'
+      object Label6: TLabel
+        Left = 7
+        Top = 16
+        Width = 345
+        Height = 25
+        AutoSize = False
+        Caption = 'Maximum Number of Simultaneous BBS Users (nodes)'
+      end
+      object Label7: TLabel
+        Left = 7
+        Top = 80
+        Width = 345
+        Height = 25
+        AutoSize = False
+        Caption = 'Maximum Number of Simultaneous FTP Sessions'
+      end
+      object Label8: TLabel
+        Left = 7
+        Top = 144
+        Width = 345
+        Height = 25
+        AutoSize = False
+        Caption = 'Maximum Number of Simultaneous Mail Sessions'
+      end
+      object NodesEdit: TEdit
+        Left = 8
+        Top = 40
+        Width = 41
+        Height = 24
+        TabOrder = 0
+        Text = '1'
+      end
+      object NodesUpDown: TUpDown
+        Left = 49
+        Top = 40
+        Width = 19
+        Height = 24
+        Associate = NodesEdit
+        Min = 1
+        Max = 250
+        Position = 1
+        TabOrder = 1
+        Wrap = False
+      end
+      object MaxFtpEdit: TEdit
+        Left = 8
+        Top = 104
+        Width = 41
+        Height = 24
+        TabOrder = 2
+        Text = '0'
+      end
+      object MaxFtpUpDown: TUpDown
+        Left = 49
+        Top = 104
+        Width = 19
+        Height = 24
+        Associate = MaxFtpEdit
+        Min = 0
+        Max = 500
+        Position = 0
+        TabOrder = 3
+        Wrap = False
+      end
+      object MaxMailEdit: TEdit
+        Left = 8
+        Top = 168
+        Width = 41
+        Height = 24
+        TabOrder = 4
+        Text = '0'
+      end
+      object MaxMailUpDown: TUpDown
+        Left = 49
+        Top = 168
+        Width = 19
+        Height = 24
+        Associate = MaxMailEdit
+        Min = 0
+        Max = 500
+        Position = 0
+        TabOrder = 5
+        Wrap = False
+      end
+      object AllNodesTelnetCheckBox: TCheckBox
+        Left = 104
+        Top = 40
+        Width = 249
+        Height = 25
+        Caption = 'All nodes are accessible via Telnet'
+        Checked = True
+        State = cbChecked
+        TabOrder = 6
+      end
+    end
+    object TPage
+      Left = 0
+      Top = 0
+      Caption = 'Options'
+      object GroupBox4: TGroupBox
+        Left = 8
+        Top = 8
+        Width = 345
+        Height = 105
+        Caption = 'New Users'
+        TabOrder = 0
+        object FeedbackCheckBox: TCheckBox
+          Left = 8
+          Top = 72
+          Width = 305
+          Height = 17
+          Caption = 'Require new user feedback (e-mail)'
+          TabOrder = 0
+        end
+        object NewUsersCheckBox: TCheckBox
+          Left = 8
+          Top = 24
+          Width = 249
+          Height = 17
+          Caption = 'Allow users to logon as '#39'New'#39
+          TabOrder = 1
+          OnClick = NewUsersCheckBoxClick
+        end
+        object AliasesCheckBox: TCheckBox
+          Left = 8
+          Top = 48
+          Width = 305
+          Height = 17
+          Caption = 'Allow users to use aliases (nicknames)'
+          TabOrder = 2
+        end
+      end
+      object GroupBox5: TGroupBox
+        Left = 7
+        Top = 120
+        Width = 345
+        Height = 105
+        Caption = 'Users Can View Deleted Messages'
+        TabOrder = 1
+        object DeletedEmailYesButton: TRadioButton
+          Left = 8
+          Top = 24
+          Width = 129
+          Height = 17
+          Caption = 'Yes'
+          TabOrder = 0
+        end
+        object DeletedEmailNoButton: TRadioButton
+          Left = 8
+          Top = 48
+          Width = 129
+          Height = 17
+          Caption = 'No'
+          TabOrder = 1
+        end
+        object DeletedEmailSysopButton: TRadioButton
+          Left = 8
+          Top = 72
+          Width = 129
+          Height = 17
+          Caption = 'Sysops Only'
+          TabOrder = 2
+        end
+      end
+    end
+    object TPage
+      Left = 0
+      Top = 0
+      Caption = 'PasswordVerification'
+      object Label11: TLabel
+        Left = 8
+        Top = 8
+        Width = 337
+        Height = 25
+        Alignment = taCenter
+        AutoSize = False
+        Caption = 'System Password Verification'
+        Font.Charset = DEFAULT_CHARSET
+        Font.Color = clWindowText
+        Font.Height = -13
+        Font.Name = 'MS Sans Serif'
+        Font.Style = [fsBold]
+        ParentFont = False
+      end
+      object SysPassVerifyEdit: TEdit
+        Left = 88
+        Top = 216
+        Width = 177
+        Height = 24
+        CharCase = ecUpperCase
+        MaxLength = 40
+        PasswordChar = '*'
+        TabOrder = 0
+        OnChange = VerifyPassword
+      end
+      object SysPassVerificationMemo: TMemo
+        Left = 8
+        Top = 40
+        Width = 337
+        Height = 161
+        TabStop = False
+        Alignment = taCenter
+        BorderStyle = bsNone
+        Color = clBtnFace
+        Lines.Strings = (
+          'At this point you must re-enter the system password that '
+          'you created earlier in this configuration wizard. '
+          ''
+          'This same password will be required of you'
+          '(via the SY: prompt)'
+          'when you logon to the BBS with any user account'
+          'that has System Operator (sysop) privilages '
+          '(i.e. level 90 or higher).')
+        ReadOnly = True
+        TabOrder = 1
+      end
+    end
+    object TPage
+      Left = 0
+      Top = 0
+      Caption = 'Complete'
+      object Label12: TLabel
+        Left = 8
+        Top = 8
+        Width = 337
+        Height = 25
+        Alignment = taCenter
+        AutoSize = False
+        Caption = 'Congratulations!'
+        Font.Charset = DEFAULT_CHARSET
+        Font.Color = clWindowText
+        Font.Height = -13
+        Font.Name = 'MS Sans Serif'
+        Font.Style = [fsBold]
+        ParentFont = False
+      end
+      object CompleteMemo: TMemo
+        Left = -1
+        Top = 40
+        Width = 361
+        Height = 217
+        Alignment = taCenter
+        BorderStyle = bsNone
+        Color = clBtnFace
+        Lines.Strings = (
+          'You have completed the initial configuration '
+          'of the basic parameters required to run Synchronet - '
+          'the only intelligent choice in BBS software'
+          'for the Internet Age.'
+          ''
+          'Thanks for choosing Synchronet!')
+        ReadOnly = True
+        TabOrder = 0
+      end
+    end
+  end
+  object ProgressBar: TProgressBar
+    Left = 304
+    Top = 304
+    Width = 177
+    Height = 20
+    Min = 0
+    Max = 100
+    TabOrder = 4
+    Visible = False
+  end
+end
diff --git a/src/sbbs3/ctrl/ConfigWizardUnit.h b/src/sbbs3/ctrl/ConfigWizardUnit.h
new file mode 100644
index 0000000000000000000000000000000000000000..cfd1aedc7e08b57966472a984ee9274020a677b9
--- /dev/null
+++ b/src/sbbs3/ctrl/ConfigWizardUnit.h
@@ -0,0 +1,107 @@
+//---------------------------------------------------------------------------
+
+#ifndef MainUnitH
+#define MainUnitH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ComCtrls.hpp>
+#include <ExtCtrls.hpp>
+#include <jpeg.hpp>
+#include "sbbs.h"
+//---------------------------------------------------------------------------
+class TConfigWizard : public TForm
+{
+__published:	// IDE-managed Components
+    TShape *Shape1;
+    TButton *BackButton;
+    TButton *NextButton;
+    TButton *CancelButton;
+    TNotebook *WizNotebook;
+    TMemo *IntroMemo;
+    TLabel *TitleLabel;
+    TLabel *IntroductionLabel;
+    TLabel *IdentificationLabel;
+    TLabel *QWKLabel;
+    TLabel *InternetLabel;
+    TLabel *MaximumsLabel;
+    TLabel *OptionsLabel;
+    TLabel *Label1;
+    TEdit *SysopNameEdit;
+    TEdit *SystemNameEdit;
+    TLabel *SystemNameLabel;
+    TLabel *Label2;
+    TEdit *SystemLocationEdit;
+    TLabel *Label3;
+    TEdit *SystemPasswordEdit;
+    TLabel *Label4;
+    TLabel *Label5;
+    TEdit *DNSAddressEdit;
+    TLabel *Label6;
+    TEdit *NodesEdit;
+    TUpDown *NodesUpDown;
+    TLabel *Label7;
+    TEdit *MaxFtpEdit;
+    TUpDown *MaxFtpUpDown;
+    TLabel *Label8;
+    TEdit *MaxMailEdit;
+    TUpDown *MaxMailUpDown;
+    TLabel *Label9;
+    TEdit *QWKIDEdit;
+    TLabel *Label10;
+    TEdit *QNetTaglineEdit;
+    TProgressBar *ProgressBar;
+    TLabel *VerifyLabel;
+    TImage *LogoImage;
+    TMemo *CompleteMemo;
+    TEdit *SysPassVerifyEdit;
+    TLabel *CompleteLabel;
+    TMemo *SysPassVerificationMemo;
+    TLabel *Label11;
+    TMemo *Memo1;
+    TLabel *IllegalCharsLabel;
+    TLabel *TimeLabel;
+    TGroupBox *GroupBox1;
+    TRadioButton *Time12hrRadioButton;
+    TRadioButton *Time24hrRadioButton;
+    TGroupBox *GroupBox2;
+    TRadioButton *DateUsRadioButton;
+    TRadioButton *DateEuRadioButton;
+    TGroupBox *GroupBox3;
+    TComboBox *TimeZoneComboBox;
+    TCheckBox *DaylightCheckBox;
+    TComboBox *InternetAddressComboBox;
+    TCheckBox *AllNodesTelnetCheckBox;
+    TLabel *Label12;
+    TLabel *Label13;
+    TGroupBox *GroupBox4;
+    TGroupBox *GroupBox5;
+    TRadioButton *DeletedEmailYesButton;
+    TRadioButton *DeletedEmailNoButton;
+    TCheckBox *FeedbackCheckBox;
+    TCheckBox *NewUsersCheckBox;
+    TRadioButton *DeletedEmailSysopButton;
+    TCheckBox *AliasesCheckBox;
+    void __fastcall NextButtonClick(TObject *Sender);
+    void __fastcall CancelButtonClick(TObject *Sender);
+    void __fastcall BackButtonClick(TObject *Sender);
+    void __fastcall FormShow(TObject *Sender);
+    void __fastcall LogoImageClick(TObject *Sender);
+    void __fastcall TitleLabelClick(TObject *Sender);
+    void __fastcall WizNotebookPageChanged(TObject *Sender);
+    void __fastcall VerifyIdentification(TObject *Sender);
+    void __fastcall VerifyPassword(TObject *Sender);
+    void __fastcall VerifyQWK(TObject *Sender);
+    void __fastcall QNetTaglineEditKeyPress(TObject *Sender, char &Key);
+    void __fastcall VerifyInternetAddresses(TObject *Sender);
+    void __fastcall TimeZoneComboBoxChange(TObject *Sender);
+    void __fastcall NewUsersCheckBoxClick(TObject *Sender);
+private:	// User declarations
+    scfg_t  scfg;
+public:		// User declarations
+    __fastcall TConfigWizard(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+#endif
diff --git a/src/sbbs3/ctrl/sbbsctrl.bpr b/src/sbbs3/ctrl/sbbsctrl.bpr
index 1fc13eb32fd378164a4168daaeeb83b917e28150..809944f16247a8d2fd1326a63737521f9d18a583 100644
--- a/src/sbbs3/ctrl/sbbsctrl.bpr
+++ b/src/sbbs3/ctrl/sbbsctrl.bpr
@@ -10,7 +10,7 @@
       NodeFormUnit.obj StatsFormUnit.obj AboutBoxFormUnit.obj 
       StatsLogFormUnit.obj CodeInputFormUnit.obj ClientFormUnit.obj 
       SpyFormUnit.obj ..\ringbuf.obj UserListFormUnit.obj UserMsgFormUnit.obj 
-      PropertiesDlgUnit.obj EventsFormUnit.obj"/>
+      PropertiesDlgUnit.obj EventsFormUnit.obj ConfigWizardUnit.obj"/>
     <RESFILES value="sbbsctrl.res"/>
     <IDLFILES value=""/>
     <IDLGENFILES value=""/>
@@ -21,7 +21,7 @@
       StatsFormUnit.dfm AboutBoxFormUnit.dfm StatsLogFormUnit.dfm 
       CodeInputFormUnit.dfm ClientFormUnit.dfm SpyFormUnit.dfm 
       UserListFormUnit.dfm UserMsgFormUnit.dfm PropertiesDlgUnit.dfm 
-      EventsFormUnit.dfm"/>
+      EventsFormUnit.dfm ConfigWizardUnit.dfm"/>
     <LIBFILES value="sbbs.lib mailsrvr.lib ftpsrvr.lib"/>
     <LIBRARIES value="VCLX50.lib bcbsmp50.lib vcl50.lib"/>
     <SPARELIBS value="vcl50.lib bcbsmp50.lib VCLX50.lib"/>
diff --git a/src/sbbs3/ctrl/sbbsctrl.cpp b/src/sbbs3/ctrl/sbbsctrl.cpp
index 4e231ccdb71fd5281a5f4b7ed0f2fb0aaa0286a6..b39675e1a6f36d437739d8b2decece0ca9621e9f 100644
--- a/src/sbbs3/ctrl/sbbsctrl.cpp
+++ b/src/sbbs3/ctrl/sbbsctrl.cpp
@@ -62,13 +62,14 @@ USEFORM("UserListFormUnit.cpp", UserListForm);
 USEFORM("UserMsgFormUnit.cpp", UserMsgForm);
 USEFORM("PropertiesDlgUnit.cpp", PropertiesDlg);
 USEFORM("EventsFormUnit.cpp", EventsForm);
+USEFORM("ConfigWizardUnit.cpp", ConfigWizardForm);
 //---------------------------------------------------------------------------
 #include "MainFormUnit.h"
 #include "SpyFormUnit.h"
 #include "CtrlPathDialogUnit.h"
 TSpyForm *SpyForms[MAX_NODES];
 //---------------------------------------------------------------------------
-WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR cmd, int)
 {
     memset(SpyForms,0,sizeof(SpyForms));
     try