Outlook Express邮件客户端的自动化配置
在部署一个政府OA系统中的邮件模块时,由于用户全都是五六十岁的老人,邮件客户端统一采用Outlook Express,甲方项目经理要求邮件客户端的配置实现全自动化,非常头疼,好不容易才解决,来此与大家分享。
输入分析:
要配置邮件客户端,以下几个输入是必须由用户来完成的:
1. 用户名,即PREFIX,@之前的内容
2. 域
3. 输入密码
2. 域
3. 输入密码
存储分析:
用户输入数据的存储位置如下:
1. 用户名——存于注册表(明文)
2. 域——存于注册表(明文)
3. 输入密码——存于注册表(密文)
2. 域——存于注册表(明文)
3. 输入密码——存于注册表(密文)
技术选取:
有了以上两步需求,接下来就开始技术选择。由于必须访问注册表,所以排除所有的web技术,ActiveX成本较高,也排除
.NET Winform应用程序配置麻烦,排除
VB/VC应用程序配置较简单,但不如VBScript轻量
VBScript可以通过shell object来访问注册表
VBScript可双击直接运行,无需特别定制界面
综上分析,故选用VBScript来进行配置。
代码:
代码如下,参照了华盛顿市府的配置解决方案:
set oShell = wscript.CreateObject("Wscript.Shell")
Function main()
dim username, domain
username = inputbox("Enter your Email PREFIX or USERNAME (BEFORE the @ sign but NOT including the @ sign)","Outlook Express Profile Creator","Username")
If username = "" Then
wscript.Quit(0)
End If
If username = "Username" Then
while username = "Enter your Email PREFIX or USERNAME"
username = inputbox("Enter your Email PREFIX or username (before the @ sign)","Outlook Express Profile Creator","Username")
If username = "" Then
wscript.Quit(0)
End If
wend
End If
domain = inputbox("Enter your Domain (AFTER the @ sign but NOT including the @ sign)","Outlook Express Profile Creator","Domain")
If domain = "" Then
wscript.Quit(0)
End If
If domain = "Domain" Then
while domain = "Enter Your Domain name Here"
username = inputbox("Enter your Domain name (AFTER the @ sign but NOT including the @ sign)","Outlook Express Profile Creator","Domain")
If domain = "" Then
wscript.Quit(0)
End If
wend
End If
' username = Ltrim(fixme(username))
' domain = fixme2(domain)
'EXAMPLE STRING FOR RTRIM
' RTrim(string)
call placeMailSettings(username, domain)
msgbox("Outlook Express Configuration Complete, please start Outlook Express and enter your password when prompted.")
End Function
Function regRead(regStr)
regRead = oShell.RegRead(regStr)
End Function
Function regWrite(val1,val2,val3)
oShell.RegWrite val1,val2,val3
End Function
Function regDelete(regStr)
call oShell.RegDelete(regStr)
End Function
'Function fixme(strValue)
' dim userEntry
' userEntry = split(strValue, "@")
' fixme = userEntry(0)
'End Function
'Function fixme2(strValue2)
' dim userEntryd
' userEntryd = split(strValue2, "@")
' fixme2 = userEntryd(0)
'End Function
'EXAMPLE STRING FOR SPLIT
' Split(expression[,delimiter])
'----------------------------------------------------------------------------------------
' Place new settings for Mail
'----------------------------------------------------------------------------------------
Function placeMailSettings(theUsername, theDomain)
On Error Resume Next
dim newAccountNum, numKeyStr
dim username, domain
newAccountNum = regRead("HKCU\Software\Microsoft\Internet Account Manager\Account Name")
If newAccountNum = "" Then
newAccountNum = "00000001"
ElseIf newAccountNum < 9 Then
newAccountNum = "0000000" & newAccountNum
Else
newAccountNum = "000000" & newAccountNum
End If
numKeyStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\"
call regWrite(numKeyStr, newAccountNum, "REG_SZ")
username = theUsername
domain = theDomain
'Add Account Name
accName = username & "@" & domain
accNameStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\Account Name"
call regWrite(accNameStr, accName, "REG_SZ")
'Add Connection Type
conType = "3"
conTypeStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\Connection Type"
call regWrite(conTypeStr, conType, "REG_DWORD")
'Delete Connection Id
conId = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\ConnectionId"
call regDelete(conId)
'Delete Account Id
accId = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\Account ID"
call regDelete(accId)
'Delete IMAP Server
imapSvr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\IMAP Server"
call regDelete(imapSvr)
'Delete HTTP Mail Server
httpSvr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\HTTPMail Server"
call regDelete(httpSvr)
'Set POP3 Server
pop3svr = "mail." & domain
pop3svrStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\POP3 Server"
call regWrite(pop3svrStr, pop3svr, "REG_SZ")
'Set POP3 Username
pop3usr = username & "@" & domain
pop3usrStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\POP3 User Name"
call regWrite(pop3usrStr, pop3usr, "REG_SZ")
'Delete POP3 Password 2
popPwdStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\POP3 Password2"
call regDelete(popPwdStr)
'Set POP3 Use Sicily
useSicily = "0"
useSicilyStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\POP3 Use Sicily"
call regWrite(useSicilyStr, useSicily, "REG_DWORD")
'Set POP3 Prompt for Pw
var promptPw = "1"
var promptPwStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\POP3 Prompt for Password"
call regWrite(promptPwStr, promptPw, "REG_DWORD")
'Set SMTP Server
smtpSvr = "mail." & domain
smtpSvrStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\SMTP Server"
call regWrite(smtpSvrStr, smtpSvr, "REG_SZ")
'Set SMTP Display name
smtpDisp = username & "@" & domain
smtpSvrStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\SMTP Display Name"
call regWrite(smtpSvrStr, smtpDisp, "REG_SZ")
'Set SMTP E-mail address
smtpEmail = username & "@" & domain
smtpEmailStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\SMTP Email Address"
call regWrite(smtpEmailStr, smtpEmail, "REG_SZ")
'Set SMTP Use Sicily
smtpUseSicily = "2"
smtpUseSicilyStr = "HKCU\Software\Microsoft\Internet Account Manager\Accounts\" & newAccountNum & "\SMTP Use Sicily"
call regWrite(smtpUseSicilyStr, smtpUseSicily, "REG_DWORD")
'Set New Account to default
defAccStr = "HKCU\Software\Microsoft\Internet Account Manager\Default Mail Account"
call regWrite(defAccStr, newAccountNum, "REG_SZ")
'Increment future account number
futAccNum = newAccountNum + 1
futAccNumStr = "HKCU\Software\Microsoft\Internet Account Manager\Account Name"
call regWrite(futAccNumStr, futAccNum, "REG_DWORD")
msgbox("POP3 Server Set to: " & pop3svr & chr(10) & "SMTP Server Set to: " & smtpSvr)
End Function
call main()
'' SIG '' Begin signature block
'' SIG '' MIIUlAYJKoZIhvcNAQcCoIIUhTCCFIECAQExDjAMBggq
'' SIG '' hkiG9w0CBQUAMGYGCisGAQQBgjcCAQSgWDBWMDIGCisG
'' SIG '' AQQBgjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIB
'' SIG '' AAIBAAIBAAIBAAIBADAgMAwGCCqGSIb3DQIFBQAEEM6Z
'' SIG '' ozlzFo2VGYZARbxbn5Kggg+tMIICvDCCAiUCEEoZ0jiM
'' SIG '' glkcpV1zXxVd3KMwDQYJKoZIhvcNAQEEBQAwgZ4xHzAd
'' SIG '' BgNVBAoTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxFzAV
'' SIG '' BgNVBAsTDlZlcmlTaWduLCBJbmMuMSwwKgYDVQQLEyNW
'' SIG '' ZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZpY2UgUm9v
'' SIG '' dDE0MDIGA1UECxMrTk8gTElBQklMSVRZIEFDQ0VQVEVE
'' SIG '' LCAoYyk5NyBWZXJpU2lnbiwgSW5jLjAeFw05NzA1MTIw
'' SIG '' MDAwMDBaFw0wNDAxMDcyMzU5NTlaMIGeMR8wHQYDVQQK
'' SIG '' ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcwFQYDVQQL
'' SIG '' Ew5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMjVmVyaVNp
'' SIG '' Z24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJvb3QxNDAy
'' SIG '' BgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRFRCwgKGMp
'' SIG '' OTcgVmVyaVNpZ24sIEluYy4wgZ8wDQYJKoZIhvcNAQEB
'' SIG '' BQADgY0AMIGJAoGBANMuIPBofCwtLoEcsQaypwu3EQ1X
'' SIG '' 2lPYdePJMyqy1PYJWzTz6ZD+CQzQ2xtauc3n9oixncCH
'' SIG '' Jet9WBBzanjLcRX9xlj2KatYXpYE/S1iEViBHMpxlNUi
'' SIG '' WC/VzBQFhDa6lKq0TUrp7jsirVaZfiGcbIbASkeXarSm
'' SIG '' NtX8CS3TtDmbAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA
'' SIG '' YVUOPnvHkhJ+ERCOIszUsxMrW+hE5At4nqR+86cHch7i
'' SIG '' We/MhOOJlEzbTmHvs6T7Rj1QNAufcFb2jip/F87lY795
'' SIG '' aQdzLrCVKIr17aqp0l3NCsoQCY/Os68olsR5KYSS3P+6
'' SIG '' Z0JIppAQ5L9h+JxT5ZPRcz/4/Z1PhKxV0f0RY2MwggOq
'' SIG '' MIIDE6ADAgECAhBKKT6dHYxAfxdJ/31hX451MA0GCSqG
'' SIG '' SIb3DQEBBQUAMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQK
'' SIG '' Ew5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg
'' SIG '' MyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
'' SIG '' dGhvcml0eTAeFw0wMTEyMTIwMDAwMDBaFw0wNDAxMDYy
'' SIG '' MzU5NTlaMIGpMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5j
'' SIG '' LjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
'' SIG '' azE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBz
'' SIG '' Oi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDExMDAu
'' SIG '' BgNVBAMTJ1ZlcmlTaWduIENsYXNzIDMgQ29kZSBTaWdu
'' SIG '' aW5nIDIwMDEtNCBDQTCBnzANBgkqhkiG9w0BAQEFAAOB
'' SIG '' jQAwgYkCgYEAnoG1Ys2H82OZbSnKmKsRtbVGNLUilYKo
'' SIG '' e1b9Xg0YGyhjKUJJAxmGin3lUFFJ+pHaz7MOy3PEOOBA
'' SIG '' 5Go0sNzr6+DMw8qR2Nr7QNKF09rf4l8ulxnbntEI0H2F
'' SIG '' wCDOzIxxpuVNWj4ZlzD/yM76m0Y3vNL2zClfJ3OToaA4
'' SIG '' 3hScu6MCAwEAAaOCARowggEWMBIGA1UdEwEB/wQIMAYB
'' SIG '' Af8CAQAwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAq
'' SIG '' MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2ln
'' SIG '' bi5jb20vcnBhMDMGA1UdHwQsMCowKKImhiRodHRwOi8v
'' SIG '' Y3JsLnZlcmlzaWduLmNvbS9wY2EzLjEuMS5jcmwwHQYD
'' SIG '' VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMA4GA1Ud
'' SIG '' DwEB/wQEAwIBBjARBglghkgBhvhCAQEEBAMCAAEwJAYD
'' SIG '' VR0RBB0wG6QZMBcxFTATBgNVBAMTDENsYXNzM0NBMS0x
'' SIG '' MzAdBgNVHQ4EFgQUT+u6lxTKm1OV7rF6TlSXDbUEoRww
'' SIG '' DQYJKoZIhvcNAQEFBQADgYEAWumXyXj/yYyx+PzeX9zk
'' SIG '' pD0cuf/TIcrXABFuJtFnKyZyWgbE1sPwWQQewgiuRpxG
'' SIG '' TtHSAW6amXe/1R3uHNwpqr3eBVHH8o0ZtdkK7Bum62q6
'' SIG '' SRhDU16W/MtpqAWNPgqLDkC8x1STQPy2a1cPoS/0ebVq
'' SIG '' J5C+e/yOp3xlSmQvHAEwggQCMIIDa6ADAgECAhAIem1c
'' SIG '' b2KTT7rE/UPhFBidMA0GCSqGSIb3DQEBBAUAMIGeMR8w
'' SIG '' HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
'' SIG '' FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
'' SIG '' VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
'' SIG '' b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
'' SIG '' RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4wHhcNMDEwMjI4
'' SIG '' MDAwMDAwWhcNMDQwMTA2MjM1OTU5WjCBoDEXMBUGA1UE
'' SIG '' ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
'' SIG '' aWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1z
'' SIG '' IG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5j
'' SIG '' b20vcnBhIChjKTAxMScwJQYDVQQDEx5WZXJpU2lnbiBU
'' SIG '' aW1lIFN0YW1waW5nIFNlcnZpY2UwggEiMA0GCSqGSIb3
'' SIG '' DQEBAQUAA4IBDwAwggEKAoIBAQDAemGH67KnA2MbKxph
'' SIG '' 3oC3FR2gi5A9uyeShBQ564XOKZIGZkikA0+N6E+n8K9e
'' SIG '' 0S8Zx5HxtZ57kSHO6f/jTvD8r5VYuGMt5o72KRjNcI5Q
'' SIG '' w+2Wu0DbviXoQlXW9oXyBueLmRwx8wMP1EycJCrcGxuP
'' SIG '' gvOw76dN4xSn4I/Wx2jCYVipctT4MEhP2S9vYyDZicqC
'' SIG '' e8JLvCjFgWjn5oJArEY6oPk/Ns1Mu1RCWnple/6E5MdH
'' SIG '' VKy5PeyAxxr3xDOBgckqlft/XjqHkBTbzC518u9r5j2p
'' SIG '' YL5CAapPqluoPyIxnxIV+XOhHoKLBCvqRgJMbY8fUC6V
'' SIG '' Syp4BoR0PZGPLEcxAgMBAAGjgbgwgbUwQAYIKwYBBQUH
'' SIG '' AQEENDAyMDAGCCsGAQUFBzABhiRodHRwOi8vb2NzcC52
'' SIG '' ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwCQYDVR0TBAIw
'' SIG '' ADBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBwEBMCowKAYI
'' SIG '' KwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv
'' SIG '' bS9ycGEwEwYDVR0lBAwwCgYIKwYBBQUHAwgwCwYDVR0P
'' SIG '' BAQDAgbAMA0GCSqGSIb3DQEBBAUAA4GBAC3zT2NgLBja
'' SIG '' 9SQPUrMM67O8Z4XCI+2PRg3PGk2+83x6IDAyGGiLkrsy
'' SIG '' mfCTuDsVBid7PgIGAKQhkoQTCsWY5UBXxQUl6K+vEWqp
'' SIG '' 5TvL6SP2lCldQFXzpVOdyDY6OWUIc3OkMtKvrL/HBTz/
'' SIG '' RezD6Nok0c5jrgmn++Ib4/1BCmqWMIIFNTCCBJ6gAwIB
'' SIG '' AgIQamZrvmqJhiPizcoSE3lXWDANBgkqhkiG9w0BAQQF
'' SIG '' ADCBqTEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAd
'' SIG '' BgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5
'' SIG '' BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3
'' SIG '' dy52ZXJpc2lnbi5jb20vcnBhIChjKTAxMTAwLgYDVQQD
'' SIG '' EydWZXJpU2lnbiBDbGFzcyAzIENvZGUgU2lnbmluZyAy
'' SIG '' MDAxLTQgQ0EwHhcNMDIwMTExMDAwMDAwWhcNMDMwMTEy
'' SIG '' MjM1OTU5WjCBtzELMAkGA1UEBhMCVVMxCzAJBgNVBAgT
'' SIG '' AkdBMRMwEQYDVQQHEwpBbHBoYXJldHRhMRswGQYDVQQK
'' SIG '' ExJDb3ggQ29tbXVuaWNhdGlvbnMxPjA8BgNVBAsTNURp
'' SIG '' Z2l0YWwgSUQgQ2xhc3MgMyAtIE1pY3Jvc29mdCBTb2Z0
'' SIG '' d2FyZSBWYWxpZGF0aW9uIHYyMQwwCgYDVQQLFANNSVMx
'' SIG '' GzAZBgNVBAMUEkNveCBDb21tdW5pY2F0aW9uczCBnzAN
'' SIG '' BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtRppMlbzMUwz
'' SIG '' P9dHHVA/rzz1d0anXjY2Pkxeqk1XwQVzHvMn4TBRPqBS
'' SIG '' kY0gYqqY1J32KA/LQtAbi5V7r/HN6zEVqFskcFIdh98O
'' SIG '' qwcUMvB+0kXSZDyjiMgVh+x/THUPvliJgD8my2PoDS9y
'' SIG '' 8+R06azvpc7dbcrKq9XhlTsoyGUCAwEAAaOCAkwwggJI
'' SIG '' MAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMEQGA1Ud
'' SIG '' HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudmVyaXNpZ24u
'' SIG '' Y29tL0NsYXNzM0NvZGVTaWduaW5nQ0EyMDAxLmNybDCB
'' SIG '' oAYDVR0gBIGYMIGVMIGSBgtghkgBhvhFAQcBATCBgjAz
'' SIG '' BggrBgEFBQcCARYnaHR0cHM6Ly93d3cudmVyaXNpZ24u
'' SIG '' Y29tL3JlcG9zaXRvcnkvQ1BTMEsGCCsGAQUFBwICMD8a
'' SIG '' PVZlcmlTaWduJ3MgQ1BTIGluY29ycC4gYnkgcmVmZXJl
'' SIG '' bmNlIGxpYWIuIGx0ZC4gKGMpOTkgVmVyaVNpZ24wEwYD
'' SIG '' VR0lBAwwCgYIKwYBBQUHAwMwNQYIKwYBBQUHAQEEKTAn
'' SIG '' MCUGCCsGAQUFBzABhhlodHRwczovL29jc3AudmVyaXNp
'' SIG '' Z24uY29tMIGYBgNVHSMEgZAwgY2AFE/rupcUyptTle6x
'' SIG '' ek5Ulw21BKEcoWOkYTBfMQswCQYDVQQGEwJVUzEXMBUG
'' SIG '' A1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNs
'' SIG '' YXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlv
'' SIG '' biBBdXRob3JpdHmCEEopPp0djEB/F0n/fWFfjnUwEQYJ
'' SIG '' YIZIAYb4QgEBBAQDAgQQMDAGCmCGSAGG+EUBBgcEIhYg
'' SIG '' MTE2YjljMGJjZDZjMWFiMzM4ODk3YTgzMDg3MmM3ODUw
'' SIG '' FgYKKwYBBAGCNwIBGwQIMAYBAf8BAf8wDQYJKoZIhvcN
'' SIG '' AQEEBQADgYEAA5i6iDdXLBXYKUCMeX7hCey6yOyQDwfN
'' SIG '' aivscheg8y5u+6q+H4sxOBNJjP9/TjrYpCDlmcO98rz5
'' SIG '' EnGh4tQxRGl/3xIAWQRm5YO0CwKB7oqZkp9RTJbRtGov
'' SIG '' ce3APMOyc4ePRbC31KFXfI7o96y+q3LA4O/W2aC1dGxI
'' SIG '' Buoa7jwxggRRMIIETQIBATCBvjCBqTEXMBUGA1UEChMO
'' SIG '' VmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWdu
'' SIG '' IFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9m
'' SIG '' IHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
'' SIG '' cnBhIChjKTAxMTAwLgYDVQQDEydWZXJpU2lnbiBDbGFz
'' SIG '' cyAzIENvZGUgU2lnbmluZyAyMDAxLTQgQ0ECEGpma75q
'' SIG '' iYYj4s3KEhN5V1gwDAYIKoZIhvcNAgUFAKCBljAZBgkq
'' SIG '' hkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3
'' SIG '' AgELMQ4wDAYKKwYBBAGCNwIBFTAfBgkqhkiG9w0BCQQx
'' SIG '' EgQQNJz6QVdjEovF8lMsJoUdZTA6BgorBgEEAYI3AgEM
'' SIG '' MSwwKqAOgAwAUwBjAHIAaQBwAHShGIAWaHR0cDovL3d3
'' SIG '' dy5zdXBwb3J0LmNvbTANBgkqhkiG9w0BAQEFAASBgH61
'' SIG '' rQ3ac/Mx1yOHjzZdv3sIwkgsJZW60oeu+85KS0OMmimx
'' SIG '' bT5HLA1CqQK69XOg3AlOQkrqqwGmBHZ2STfGiz4sRvlO
'' SIG '' zxN+ymeQh5/QBc6Pd3R6fYRKxAO1jIuAI2lFWOrzblsa
'' SIG '' vTPE+Oieb1vnWjgronge73IvBBGyL7OMGbTBoYICTDCC
'' SIG '' AkgGCSqGSIb3DQEJBjGCAjkwggI1AgEBMIGzMIGeMR8w
'' SIG '' HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcw
'' SIG '' FQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMj
'' SIG '' VmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJv
'' SIG '' b3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRF
'' SIG '' RCwgKGMpOTcgVmVyaVNpZ24sIEluYy4CEAh6bVxvYpNP
'' SIG '' usT9Q+EUGJ0wDAYIKoZIhvcNAgUFAKBZMBgGCSqGSIb3
'' SIG '' DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
'' SIG '' DTAyMDExNDE1MjA1MFowHwYJKoZIhvcNAQkEMRIEENfH
'' SIG '' dosDvpZhSgbjHx7p0PUwDQYJKoZIhvcNAQEBBQAEggEA
'' SIG '' sxHNR7NvgWRpAlXh9uW01yxXruOzX3VFdUXjuRJjo7VO
'' SIG '' fe1h6jt3KyKN6PEXNqf077N7tGRSS48vljXzj5bmn34O
'' SIG '' i2Hj9/qblNqcP0y9HQuXKaops8FvB64eKTE36v5jREot
'' SIG '' tTFYa5RCUB4qUWMzLtdHiQJe7s+5iMRqY3hp8G8g49U8
'' SIG '' Hhh0TxbZ++6HsmftyjRGh4NHP1x+tfDwjkclbHFaQFn7
'' SIG '' qbsN+xNOIf1kxB1trNF04EQXcRgCL5sW/VbGXWzTWQI5
'' SIG '' fZu+umQe+2C+PEY5hk51LSpjs8QWKvUPVlcosQQFr9k/
'' SIG '' 0y05zD+v5oR6YGnNDMiBgv7Gfh3NjVfRdw==
'' SIG '' End signature block