Initial project's source code check-in.
19
WebsitePanel/Sources/Tools/WebsitePanel.AWStats.Viewer.sln
Normal file
|
@ -0,0 +1,19 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.AWStats.Viewer", "WebsitePanel.AWStats.Viewer\WebsitePanel.AWStats.Viewer.csproj", "{5F8C0079-C339-4590-BF10-DBA470329293}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{5F8C0079-C339-4590-BF10-DBA470329293}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5F8C0079-C339-4590-BF10-DBA470329293}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5F8C0079-C339-4590-BF10-DBA470329293}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5F8C0079-C339-4590-BF10-DBA470329293}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,20 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("WebsitePanel.AWStats.Viewer")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyProduct("WebsitePanel.AWStats.Viewer")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("dc9fe3a4-572c-42d0-9c5e-6dc59e2563ae")]
|
|
@ -0,0 +1,78 @@
|
|||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebsitePanel.AWStats.Viewer.Default" %>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" >
|
||||
<head runat="server">
|
||||
<title>Advanced Statistics</title>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
body { margin: 0; }
|
||||
.aws_border { border: 2px solid #CCCCDD; margin-top: 100px; }
|
||||
.aws_title { font: 13px verdana, arial, helvetica, sans-serif; font-weight: bold; background-color: #CCCCDD; text-align: center; padding: 3px; color: #000000; }
|
||||
.aws_data { background-color: #FFFFFF; }
|
||||
.aws_button {
|
||||
font-family: arial,verdana,helvetica, sans-serif;
|
||||
font-size: 12px;
|
||||
border: 1px solid #ccd7e0;
|
||||
background-image : url(icon/other/button.gif);
|
||||
}
|
||||
.aws_pad { padding: 3px; }
|
||||
td { border-color: #ECECEC; border-left-width: 0px; border-right-width: 1px; border-top-width: 0px; border-bottom-width: 1px; font: 11px verdana, arial, helvetica, sans-serif; color: #000000; }
|
||||
p { font: 11px verdana, arial, helvetica, sans-serif; color: #000000; text-align: center; }
|
||||
b { font-weight: bold; }
|
||||
a { font: 11px verdana, arial, helvetica, sans-serif; }
|
||||
a:link { color: #0011BB; text-decoration: none; }
|
||||
a:visited { color: #0011BB; text-decoration: none; }
|
||||
a:hover { color: #605040; text-decoration: underline; }
|
||||
.currentday { font-weight: bold; }
|
||||
//-->
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<table class="aws_border" align="center" cellPadding="10" cellspacing="0" width="300px">
|
||||
<tr>
|
||||
<td class="aws_title">Login to Advanced Statistics</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table class="aws_data">
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<asp:Label ID="lblMessage" Runat="server" ForeColor="Red"></asp:Label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="aws"><b>Domain:</b></td>
|
||||
<td>
|
||||
<asp:TextBox id="txtDomain" runat="server" Width="150px"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator id="valRequireDomain" runat="server" ErrorMessage="*" ControlToValidate="txtDomain"></asp:RequiredFieldValidator></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="aws">Username:</td>
|
||||
<td>
|
||||
<asp:TextBox id="txtUsername" runat="server" Width="150px"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator id="valRequireUsername" runat="server" ErrorMessage="*" ControlToValidate="txtUsername"></asp:RequiredFieldValidator></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="aws">Password:</td>
|
||||
<td>
|
||||
<asp:TextBox id="txtPassword" runat="server" TextMode="Password" Width="150px"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator id="valRequirePassword" runat="server" ErrorMessage="*" ControlToValidate="txtPassword"></asp:RequiredFieldValidator></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="aws_pad" colspan="2" align="center">
|
||||
<asp:Button id="btnView" runat="server" Text="Display Statistics" CssClass="aws_button" OnClick="btnView_Click"></asp:Button></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
* You should specify username and password that you use to login to
|
||||
<a href="http://demo.websitepanel.net" target="_blank">http://demo.websitepanel.net</a>.
|
||||
</p>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,225 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
|
||||
namespace WebsitePanel.AWStats.Viewer
|
||||
{
|
||||
public partial class Default : System.Web.UI.Page
|
||||
{
|
||||
private void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (Request.IsAuthenticated)
|
||||
{
|
||||
string identity = Context.User.Identity.Name;
|
||||
string domain = identity.Split('=')[0];
|
||||
|
||||
if (String.Compare(Request["config"], domain, true) != 0)
|
||||
{
|
||||
FormsAuthentication.SignOut();
|
||||
Response.Redirect(Request.Url.AbsolutePath);
|
||||
}
|
||||
|
||||
Response.Clear();
|
||||
|
||||
string queryParams = Request.Url.Query;
|
||||
|
||||
string awStatsUrl = AWStatsUrl;
|
||||
if (awStatsUrl.IndexOf(":") == -1)
|
||||
{
|
||||
string appUrl = Request.Url.ToString();
|
||||
appUrl = appUrl.Substring(0, appUrl.LastIndexOf("/"));
|
||||
awStatsUrl = appUrl + awStatsUrl;
|
||||
}
|
||||
|
||||
string awStatsPage = GetWebDocument(awStatsUrl + queryParams);
|
||||
|
||||
// replace links
|
||||
awStatsPage = awStatsPage.Replace(AWStatsScript, Request.Url.AbsolutePath);
|
||||
|
||||
Response.Write(awStatsPage);
|
||||
|
||||
Response.End();
|
||||
}
|
||||
else
|
||||
{
|
||||
lblMessage.Visible = false;
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
string domain = Request["domain"];
|
||||
string username = Request["username"];
|
||||
string password = Request["password"];
|
||||
|
||||
if (String.IsNullOrEmpty(domain))
|
||||
domain = Request["config"];
|
||||
|
||||
txtDomain.Text = domain;
|
||||
|
||||
if (!String.IsNullOrEmpty(username))
|
||||
txtUsername.Text = username;
|
||||
|
||||
// check for autologin
|
||||
if (!String.IsNullOrEmpty(domain)
|
||||
&& !String.IsNullOrEmpty(username)
|
||||
&& !String.IsNullOrEmpty(password))
|
||||
{
|
||||
// perform login
|
||||
Login(domain, username, password);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnView_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!Page.IsValid)
|
||||
return;
|
||||
|
||||
// perform login
|
||||
Login(txtDomain.Text.Trim(), txtUsername.Text.Trim(), txtPassword.Text);
|
||||
}
|
||||
|
||||
private void Login(string domain, string username, string password)
|
||||
{
|
||||
// check user
|
||||
AuthenticationResult result =
|
||||
AuthenticationProvider.Instance.AuthenticateUser(domain, username, password);
|
||||
|
||||
if (result == AuthenticationResult.OK)
|
||||
{
|
||||
FormsAuthentication.SetAuthCookie(domain + "=" + username, false);
|
||||
Response.Redirect(Request.Url.AbsolutePath + "?config=" + domain);
|
||||
}
|
||||
|
||||
// show error message
|
||||
lblMessage.Text = ConfigurationManager.AppSettings["AWStats.Message.DomainNotFound"];
|
||||
if (result == AuthenticationResult.WrongUsername)
|
||||
lblMessage.Text = ConfigurationManager.AppSettings["AWStats.Message.WrongUsername"];
|
||||
else if (result == AuthenticationResult.WrongPassword)
|
||||
lblMessage.Text = ConfigurationManager.AppSettings["AWStats.Message.WrongPassword"];
|
||||
|
||||
lblMessage.Visible = true;
|
||||
}
|
||||
|
||||
#region Private Helpers
|
||||
private string GetWebDocument(string url)
|
||||
{
|
||||
HttpWebResponse result = null;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
try
|
||||
{
|
||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
|
||||
|
||||
string lang = Request.Headers["Accept-Language"];
|
||||
req.Headers["Accept-Language"] = lang;
|
||||
|
||||
string username = ConfigurationManager.AppSettings["AWStats.Username"];
|
||||
if (username != null && username != "")
|
||||
{
|
||||
string password = ConfigurationManager.AppSettings["AWStats.Password"];
|
||||
string domain = null;
|
||||
int sepIdx = username.IndexOf("\\");
|
||||
if (sepIdx != -1)
|
||||
{
|
||||
domain = username.Substring(0, sepIdx);
|
||||
username = username.Substring(sepIdx + 1);
|
||||
}
|
||||
|
||||
req.Credentials = new NetworkCredential(username, password, domain);
|
||||
}
|
||||
else
|
||||
{
|
||||
req.Credentials = CredentialCache.DefaultNetworkCredentials;
|
||||
}
|
||||
|
||||
result = (HttpWebResponse)req.GetResponse();
|
||||
Stream ReceiveStream = result.GetResponseStream();
|
||||
string respEnc = !String.IsNullOrEmpty(result.ContentEncoding) ? result.ContentEncoding : "utf-8";
|
||||
Encoding encode = System.Text.Encoding.GetEncoding(respEnc);
|
||||
|
||||
StreamReader sr = new StreamReader(ReceiveStream, encode);
|
||||
|
||||
Char[] read = new Char[256];
|
||||
int count = sr.Read(read, 0, 256);
|
||||
|
||||
while (count > 0)
|
||||
{
|
||||
String str = new String(read, 0, count);
|
||||
sb.Append(str);
|
||||
count = sr.Read(read, 0, 256);
|
||||
}
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
Response.Write("Error while opening '" + url + "': " + ex.Message);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Response.Write(ex.ToString());
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (result != null)
|
||||
{
|
||||
result.Close();
|
||||
}
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
private string AWStatsUrl
|
||||
{
|
||||
get { return ConfigurationManager.AppSettings["AWStats.URL"]; }
|
||||
}
|
||||
|
||||
private string AWStatsScript
|
||||
{
|
||||
get
|
||||
{
|
||||
int idx = AWStatsUrl.LastIndexOf("/");
|
||||
return (idx == -1) ? AWStatsUrl : AWStatsUrl.Substring(idx + 1);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
97
WebsitePanel/Sources/Tools/WebsitePanel.AWStats.Viewer/Default.aspx.designer.cs
generated
Normal file
|
@ -0,0 +1,97 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.1873
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.AWStats.Viewer {
|
||||
|
||||
|
||||
public partial class Default {
|
||||
|
||||
/// <summary>
|
||||
/// form1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
/// <summary>
|
||||
/// lblMessage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblMessage;
|
||||
|
||||
/// <summary>
|
||||
/// txtDomain control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtDomain;
|
||||
|
||||
/// <summary>
|
||||
/// valRequireDomain control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireDomain;
|
||||
|
||||
/// <summary>
|
||||
/// txtUsername control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtUsername;
|
||||
|
||||
/// <summary>
|
||||
/// valRequireUsername control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireUsername;
|
||||
|
||||
/// <summary>
|
||||
/// txtPassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtPassword;
|
||||
|
||||
/// <summary>
|
||||
/// valRequirePassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequirePassword;
|
||||
|
||||
/// <summary>
|
||||
/// btnView control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button btnView;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
|
||||
namespace WebsitePanel.AWStats.Viewer
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for AuthenticationProvider.
|
||||
/// </summary>
|
||||
public abstract class AuthenticationProvider
|
||||
{
|
||||
private static AuthenticationProvider objProvider;
|
||||
|
||||
public static AuthenticationProvider Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (objProvider == null)
|
||||
{
|
||||
string providerType = ConfigurationManager.AppSettings["AWStats.AuthenticationProvider"];
|
||||
if (providerType == null || providerType == "")
|
||||
throw new Exception("AuthenticationProvider implementation type is not specified");
|
||||
|
||||
try
|
||||
{
|
||||
// instantiate provider
|
||||
objProvider = (AuthenticationProvider)Activator.CreateInstance(Type.GetType(providerType));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception(String.Format("Can not instantiate '{0}' authentication provider",
|
||||
providerType), ex);
|
||||
}
|
||||
}
|
||||
return objProvider;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract AuthenticationResult AuthenticateUser(string domain, string username, string password);
|
||||
}
|
||||
|
||||
public enum AuthenticationResult
|
||||
{
|
||||
OK,
|
||||
WrongUsername,
|
||||
WrongPassword,
|
||||
DomainNotFound
|
||||
}
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Web;
|
||||
|
||||
namespace WebsitePanel.AWStats.Viewer
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for ConfigFileAuthenticationProvider.
|
||||
/// </summary>
|
||||
public class ConfigFileAuthenticationProvider : AuthenticationProvider
|
||||
{
|
||||
public override AuthenticationResult AuthenticateUser(string domain, string username, string password)
|
||||
{
|
||||
string dataFolder = ConfigurationManager.AppSettings["AWStats.ConfigFileAuthenticationProvider.DataFolder"];
|
||||
if(dataFolder.StartsWith("~"))
|
||||
dataFolder = HttpContext.Current.Server.MapPath(dataFolder);
|
||||
|
||||
string awStatsScript = ConfigurationManager.AppSettings["AWStats.URL"];
|
||||
int idx = awStatsScript.LastIndexOf("/");
|
||||
awStatsScript = (idx == -1) ? awStatsScript : awStatsScript.Substring(idx + 1);
|
||||
|
||||
string prefix = awStatsScript;
|
||||
int dotIdx = prefix.LastIndexOf(".");
|
||||
if(dotIdx != -1)
|
||||
prefix = prefix.Substring(0, dotIdx);
|
||||
|
||||
string dataFile = Path.Combine(dataFolder, prefix + "." + domain + ".conf");
|
||||
if(!File.Exists(dataFile))
|
||||
return AuthenticationResult.DomainNotFound;
|
||||
|
||||
string[] pairs = new string[0];
|
||||
|
||||
// read file contents
|
||||
StreamReader reader = null;
|
||||
try
|
||||
{
|
||||
reader = new StreamReader(dataFile);
|
||||
string line;
|
||||
while((line = reader.ReadLine()) != null)
|
||||
{
|
||||
idx = line.IndexOf("=");
|
||||
if(idx == -1)
|
||||
continue;
|
||||
|
||||
string key = line.Substring(0, idx).Trim();
|
||||
if(key.ToLower() == "siteusers")
|
||||
{
|
||||
pairs = line.Substring(idx + 1).Trim().Split(';');
|
||||
foreach(string pair in pairs)
|
||||
{
|
||||
string[] credentials = pair.Split('=');
|
||||
if(String.Compare(credentials[0], username, true) == 0)
|
||||
{
|
||||
// check password
|
||||
return (password == credentials[1]) ? AuthenticationResult.OK : AuthenticationResult.WrongPassword;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
HttpContext.Current.Response.Write(ex.ToString());
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(reader != null)
|
||||
reader.Close();
|
||||
}
|
||||
return AuthenticationResult.WrongUsername;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,109 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.Statistics;
|
||||
|
||||
namespace WebsitePanel.AWStats.Viewer
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for WebsitePanelAuthenticationProvider.
|
||||
/// </summary>
|
||||
public class WebsitePanelAuthenticationProvider : AuthenticationProvider
|
||||
{
|
||||
public override AuthenticationResult AuthenticateUser(string domain, string username, string password)
|
||||
{
|
||||
try
|
||||
{
|
||||
// authentication
|
||||
esAuthentication auth = new esAuthentication();
|
||||
SetupProxy(auth);
|
||||
|
||||
int result = auth.AuthenticateUser(username, password, "");
|
||||
|
||||
if (result == -109)
|
||||
return AuthenticationResult.WrongUsername;
|
||||
else if (result == -110)
|
||||
return AuthenticationResult.WrongPassword;
|
||||
|
||||
// load user account
|
||||
UserInfo user = auth.GetUserByUsernamePassword(username, password, "");
|
||||
if (user == null)
|
||||
return AuthenticationResult.WrongUsername;
|
||||
|
||||
// get all packages
|
||||
esPackages packagesProxy = new esPackages();
|
||||
SetupProxy(packagesProxy, username, password);
|
||||
esStatisticsServers statsServers = new esStatisticsServers();
|
||||
SetupProxy(statsServers, username, password);
|
||||
PackageInfo[] packages = packagesProxy.GetMyPackages(user.UserId);
|
||||
|
||||
// load all statistics sites from all packages
|
||||
foreach (PackageInfo package in packages)
|
||||
{
|
||||
StatsSite[] sites = statsServers.GetStatisticsSites(package.PackageId, false);
|
||||
|
||||
foreach (StatsSite site in sites)
|
||||
{
|
||||
if (String.Compare(site.Name, domain, true) == 0)
|
||||
return AuthenticationResult.OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
System.Web.HttpContext.Current.Response.Write(ex.ToString());
|
||||
}
|
||||
|
||||
return AuthenticationResult.DomainNotFound;
|
||||
}
|
||||
|
||||
private void SetupProxy(Microsoft.Web.Services3.WebServicesClientProtocol proxy)
|
||||
{
|
||||
SetupProxy(proxy, null, null);
|
||||
}
|
||||
|
||||
private void SetupProxy(Microsoft.Web.Services3.WebServicesClientProtocol proxy,
|
||||
string username, string password)
|
||||
{
|
||||
// create ES configurator
|
||||
string serverUrl = ConfigurationManager.AppSettings["AWStats.WebsitePanelAuthenticationProvider.EnterpriseServer"];
|
||||
if (String.IsNullOrEmpty(serverUrl))
|
||||
throw new Exception("Enterprise Server URL could not be empty");
|
||||
|
||||
EnterpriseServerProxyConfigurator cnfg = new EnterpriseServerProxyConfigurator();
|
||||
cnfg.EnterpriseServerUrl = serverUrl;
|
||||
cnfg.Username = username;
|
||||
cnfg.Password = password;
|
||||
cnfg.Configure(proxy);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" >
|
||||
<head>
|
||||
<title>WebsitePanel AWStats Viewer - Readme</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>
|
||||
WebsitePanel AWStats Viewer - Readme</h1>
|
||||
<p>
|
||||
WebsitePanel AWStats Viewer is a web application providing authentication for
|
||||
AWStats against WebsitePanel users database.</p>
|
||||
|
||||
<h2>
|
||||
License</h2>
|
||||
<p>
|
||||
WebsitePanel AWStats Viewer is released under BSD license. Please see LICENSE.txt file in the
|
||||
root folder of this project.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<!-- AWStats Viewer Settings -->
|
||||
<add key="AWStats.URL" value="/cgi-bin/awstats.pl"/>
|
||||
<add key="AWStats.Username" value=""/>
|
||||
<add key="AWStats.Password" value=""/>
|
||||
|
||||
<!-- Messages -->
|
||||
<add key="AWStats.Message.DomainNotFound" value="Advanced statistics is not enabled for the specified domain. Login to control panel, open 'My Resources -> Advanced Statistics' page and add a new statistics site."/>
|
||||
<add key="AWStats.Message.WrongUsername" value="Account with the specified username does not exist! Make sure you type correct Control Panel username/password."/>
|
||||
<add key="AWStats.Message.WrongPassword" value="Incorrect password has been specified!"/>
|
||||
|
||||
<!-- Authentication provider -->
|
||||
<add key="AWStats.AuthenticationProvider" value="WebsitePanel.AWStats.Viewer.WebsitePanelAuthenticationProvider, WebsitePanel.AWStats.Viewer"/>
|
||||
|
||||
<!-- ConfigFileAuthenticationProvider settings -->
|
||||
<add key="AWStats.ConfigFileAuthenticationProvider.DataFolder" value="~/cgi-bin"/>
|
||||
|
||||
<!-- WebsitePanelAuthenticationProvider settings -->
|
||||
<add key="AWStats.WebsitePanelAuthenticationProvider.EnterpriseServer" value="http://localhost/EnterpriseServer"/>
|
||||
|
||||
</appSettings>
|
||||
<system.web>
|
||||
<compilation defaultLanguage="c#" debug="true"/>
|
||||
<customErrors mode="RemoteOnly"/>
|
||||
<!-- AUTHENTICATION -->
|
||||
<authentication mode="Forms">
|
||||
<forms name=".AWSTATSVIEWER" loginUrl="default.aspx" protection="All" timeout="30" path="/">
|
||||
</forms>
|
||||
</authentication>
|
||||
<!-- AUTHORIZATION -->
|
||||
<authorization>
|
||||
<allow users="*"/>
|
||||
<!-- Allow all users -->
|
||||
</authorization>
|
||||
</system.web>
|
||||
</configuration>
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<!-- AWStats Viewer Settings -->
|
||||
<add key="AWStats.URL" value="/cgi-bin/awstats.pl"/>
|
||||
<add key="AWStats.Username" value=""/>
|
||||
<add key="AWStats.Password" value=""/>
|
||||
<!-- Messages -->
|
||||
<add key="AWStats.Message.DomainNotFound" value="Advanced statistics is not enabled for the specified domain. Login to control panel, open 'My Resources -> Advanced Statistics' page and add a new statistics site."/>
|
||||
<add key="AWStats.Message.WrongUsername" value="Account with the specified username does not exist! Make sure you type correct Control Panel username/password."/>
|
||||
<add key="AWStats.Message.WrongPassword" value="Incorrect password has been specified!"/>
|
||||
<!-- Authentication provider -->
|
||||
<add key="AWStats.AuthenticationProvider" value="WebsitePanel.AWStats.Viewer.WebsitePanelAuthenticationProvider, WebsitePanel.AWStats.Viewer"/>
|
||||
<!-- ConfigFileAuthenticationProvider settings -->
|
||||
<add key="AWStats.ConfigFileAuthenticationProvider.DataFolder" value="~/cgi-bin"/>
|
||||
<!-- WebsitePanelAuthenticationProvider settings -->
|
||||
<add key="AWStats.WebsitePanelAuthenticationProvider.EnterpriseServer" value="http://localhost/EnterpriseServer"/>
|
||||
</appSettings>
|
||||
<system.web>
|
||||
<compilation defaultLanguage="c#" debug="true" targetFramework="4.0"/>
|
||||
<customErrors mode="RemoteOnly"/>
|
||||
<!-- AUTHENTICATION -->
|
||||
<authentication mode="Forms">
|
||||
<forms name=".AWSTATSVIEWER" loginUrl="default.aspx" protection="All" timeout="30" path="/">
|
||||
</forms>
|
||||
</authentication>
|
||||
<!-- AUTHORIZATION -->
|
||||
<authorization>
|
||||
<allow users="*"/>
|
||||
<!-- Allow all users -->
|
||||
</authorization>
|
||||
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/></system.web>
|
||||
</configuration>
|
|
@ -0,0 +1,179 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{5F8C0079-C339-4590-BF10-DBA470329293}</ProjectGuid>
|
||||
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>WebsitePanel.AWStats.Viewer</AssemblyName>
|
||||
<AssemblyOriginatorKeyFile>
|
||||
</AssemblyOriginatorKeyFile>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>WebsitePanel.AWStats.Viewer</RootNamespace>
|
||||
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||
<StartupObject>
|
||||
</StartupObject>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<NoStdLib>false</NoStdLib>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<Optimize>false</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>full</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<NoStdLib>false</NoStdLib>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
<Optimize>true</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<DebugType>none</DebugType>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.Web.Services3">
|
||||
<HintPath>..\..\..\Lib\Microsoft.Web.Services3.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System">
|
||||
<Name>System</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.configuration" />
|
||||
<Reference Include="System.Data">
|
||||
<Name>System.Data</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Drawing">
|
||||
<Name>System.Drawing</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Web">
|
||||
<Name>System.Web</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.ApplicationServices" />
|
||||
<Reference Include="System.Web.DynamicData" />
|
||||
<Reference Include="System.Web.Entity" />
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
<Reference Include="System.Web.Services">
|
||||
<Name>System.Web.Services</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml">
|
||||
<Name>System.XML</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Base, Version=1.0.0.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.Providers.Base, Version=1.0.0.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.Providers.Base.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Default.aspx" />
|
||||
<Compile Include="..\..\VersionInfo.cs">
|
||||
<Link>VersionInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="AssemblyInfo.cs" />
|
||||
<Compile Include="Default.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
<DependentUpon>Default.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Default.aspx.designer.cs">
|
||||
<DependentUpon>Default.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Providers\AuthenticationProvider.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Providers\ConfigFile\ConfigFileAuthenticationProvider.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Providers\WebsitePanel\WebsitePanelAuthenticationProvider.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Content Include="Readme.htm" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Web-v2.0.config" />
|
||||
<None Include="Web.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<UseIIS>False</UseIIS>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<DevelopmentServerPort>1444</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>
|
||||
</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>False</UseCustomServer>
|
||||
<CustomServerUrl>
|
||||
</CustomServerUrl>
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
</Project>
|
20
WebsitePanel/Sources/Tools/WebsitePanel.FilesComparer.sln
Normal file
|
@ -0,0 +1,20 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.FilesComparer", "WebsitePanel.FilesComparer\WebsitePanel.FilesComparer.csproj", "{85315088-B2F0-439B-9360-4D5BECE630DB}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{85315088-B2F0-439B-9360-4D5BECE630DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{85315088-B2F0-439B-9360-4D5BECE630DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{85315088-B2F0-439B-9360-4D5BECE630DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{85315088-B2F0-439B-9360-4D5BECE630DB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,75 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.FilesComparer
|
||||
{
|
||||
public class CRC32
|
||||
{
|
||||
private UInt32[] crc32Table;
|
||||
private const int BUFFER_SIZE = 1024;
|
||||
|
||||
/// <summary>
|
||||
/// Returns the CRC32 for the specified stream.
|
||||
/// </summary>
|
||||
/// <param name="stream">The stream to calculate the CRC32 for</param>
|
||||
/// <returns>An unsigned integer containing the CRC32 calculation</returns>
|
||||
public UInt32 GetCrc32(System.IO.Stream stream)
|
||||
{
|
||||
unchecked
|
||||
{
|
||||
UInt32 crc32Result;
|
||||
crc32Result = 0xFFFFFFFF;
|
||||
byte[] buffer = new byte[BUFFER_SIZE];
|
||||
int readSize = BUFFER_SIZE;
|
||||
|
||||
int count = stream.Read(buffer, 0, readSize);
|
||||
while (count > 0)
|
||||
{
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
crc32Result = ((crc32Result) >> 8) ^ crc32Table[(buffer[i]) ^ ((crc32Result) & 0x000000FF)];
|
||||
}
|
||||
count = stream.Read(buffer, 0, readSize);
|
||||
}
|
||||
|
||||
return ~crc32Result;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Construct an instance of the CRC32 class, pre-initialising the table
|
||||
/// for speed of lookup.
|
||||
/// </summary>
|
||||
public CRC32()
|
||||
{
|
||||
unchecked
|
||||
{
|
||||
// This is the official polynomial used by CRC32 in PKZip.
|
||||
// Often the polynomial is shown reversed as 0x04C11DB7.
|
||||
UInt32 dwPolynomial = 0xEDB88320;
|
||||
UInt32 i, j;
|
||||
|
||||
crc32Table = new UInt32[256];
|
||||
|
||||
UInt32 dwCrc;
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
dwCrc = i;
|
||||
for (j = 8; j > 0; j--)
|
||||
{
|
||||
if ((dwCrc & 1) == 1)
|
||||
{
|
||||
dwCrc = (dwCrc >> 1) ^ dwPolynomial;
|
||||
}
|
||||
else
|
||||
{
|
||||
dwCrc >>= 1;
|
||||
}
|
||||
}
|
||||
crc32Table[i] = dwCrc;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
241
WebsitePanel/Sources/Tools/WebsitePanel.FilesComparer/Program.cs
Normal file
|
@ -0,0 +1,241 @@
|
|||
using System;
|
||||
using System.Xml;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.FilesComparer
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static string FilesToExclude;
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
if (args.Length < 3 && args.Length > 4)
|
||||
{
|
||||
Console.WriteLine("Usage: Diff.exe [sourceDir] [targetDir] [resultDir] [/ex:fileToExclude.ext,fileToExclude.ext]");
|
||||
Console.WriteLine("Example: Diff.exe c:\\WSP1 c:\\WSP2 c:\\result /ex:Default.aspx,Error.htm");
|
||||
Console.WriteLine("NOTE: Please make sure all parameters containg spaces are enclosed in quotes.");
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
//
|
||||
if (args.Length == 4)
|
||||
FilesToExclude = args[3];
|
||||
//
|
||||
CreateComparison(args[0], args[1], args[2]);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateComparison(string sourcePath, string targetPath, string pathToSave)
|
||||
{
|
||||
|
||||
DeleteDir(pathToSave, false);
|
||||
|
||||
string[] sourceFiles = GetFiles(sourcePath);
|
||||
string[] targetFiles = GetFiles(targetPath);
|
||||
|
||||
if (sourcePath.EndsWith(@"\"))
|
||||
sourcePath = sourcePath.Substring(0, sourcePath.Length - 1);
|
||||
|
||||
if (targetPath.EndsWith(@"\"))
|
||||
targetPath = targetPath.Substring(0, targetPath.Length - 1);
|
||||
|
||||
int sIndexOf = sourcePath.Length;
|
||||
int tIndexOf = targetPath.Length;
|
||||
|
||||
List<string> filesA = new List<string>();
|
||||
List<string> filesAlower = new List<string>();
|
||||
List<string> filesB = new List<string>();
|
||||
List<string> filesBlower = new List<string>();
|
||||
List<string> excludes = new List<string>();
|
||||
|
||||
excludes.Add("bin");
|
||||
excludes.Add("setup");
|
||||
|
||||
string file;
|
||||
|
||||
foreach (string sourceFile in sourceFiles)
|
||||
{
|
||||
file = sourceFile.Substring(sIndexOf);
|
||||
if (file.StartsWith("\\"))
|
||||
file = file.TrimStart('\\');
|
||||
filesA.Add(file);
|
||||
filesAlower.Add(file.ToLower());
|
||||
}
|
||||
|
||||
foreach (string targetFile in targetFiles)
|
||||
{
|
||||
file = targetFile.Substring(tIndexOf);
|
||||
if (file.StartsWith("\\"))
|
||||
file = file.TrimStart('\\');
|
||||
filesB.Add(file);
|
||||
filesBlower.Add(file.ToLower());
|
||||
}
|
||||
|
||||
//files to delete
|
||||
foreach (string fileA in filesA)
|
||||
{
|
||||
file = fileA.ToLower();
|
||||
if (file.StartsWith("bin\\") || file.StartsWith("setup\\") || file.EndsWith("sitesettings.config"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (filesBlower.IndexOf(file) == -1)
|
||||
excludes.Add(fileA);
|
||||
}
|
||||
|
||||
//files to copy
|
||||
foreach (string fileB in filesB)
|
||||
{
|
||||
file = fileB.ToLower();
|
||||
if (file.EndsWith("sitesettings.config"))
|
||||
continue;
|
||||
|
||||
if (file.StartsWith("bin\\") || file.StartsWith("setup\\"))
|
||||
{
|
||||
//copy all new files from bin and setup folders
|
||||
CopyFile(targetPath, fileB, pathToSave);
|
||||
continue;
|
||||
}
|
||||
|
||||
//try to find a new file in the list of old files
|
||||
int index = filesAlower.IndexOf(file);
|
||||
if (index == -1)
|
||||
{
|
||||
//old files do not contain new file - we need to copy a new file
|
||||
CopyFile(targetPath, fileB, pathToSave);
|
||||
}
|
||||
else
|
||||
{
|
||||
//old files contain the same file - we need to compare files
|
||||
string oldFile = Path.Combine(sourcePath, filesA[index]);
|
||||
string newFile = Path.Combine(targetPath, fileB);
|
||||
if (Diff(oldFile, newFile))
|
||||
{
|
||||
//files are not equal - we need to delete old file and copy a new file
|
||||
excludes.Add(filesA[index]);
|
||||
CopyFile(targetPath, fileB, pathToSave);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string deleteFile = Path.Combine(pathToSave, "setup\\delete.txt");
|
||||
WriteFilesToDelete(deleteFile, excludes);
|
||||
|
||||
}
|
||||
|
||||
private static void DeleteDir(string path, bool delRoot)
|
||||
{
|
||||
if (Directory.Exists(path))
|
||||
{
|
||||
string[] files = Directory.GetFiles(path);
|
||||
foreach (string file in files)
|
||||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
string[] dirs = Directory.GetDirectories(path);
|
||||
foreach (string dir in dirs)
|
||||
{
|
||||
DeleteDir(dir, true);
|
||||
}
|
||||
|
||||
if (delRoot)
|
||||
{
|
||||
Directory.Delete(path);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static bool Diff(string oldFile, string newFile)
|
||||
{
|
||||
FileInfo fi1 = new FileInfo(oldFile);
|
||||
FileInfo fi2 = new FileInfo(newFile);
|
||||
if (fi1.Length != fi2.Length)
|
||||
return true;
|
||||
|
||||
UInt32 hash1 = GetCRC32(oldFile);
|
||||
UInt32 hash2 = GetCRC32(newFile);
|
||||
|
||||
return (hash1 != hash2);
|
||||
|
||||
}
|
||||
|
||||
private static UInt32 GetCRC32(string oldFile)
|
||||
{
|
||||
CRC32 c = new CRC32();
|
||||
UInt32 crc = 0;
|
||||
|
||||
using (FileStream f = new FileStream(oldFile, FileMode.Open, FileAccess.Read, FileShare.Read, 8192))
|
||||
{
|
||||
crc = c.GetCrc32(f);
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
|
||||
private static void CopyFile(string sourceDir, string fileName, string targetDir)
|
||||
{
|
||||
string destFile = Path.Combine(targetDir, fileName);
|
||||
string dir = Path.GetDirectoryName(destFile);
|
||||
if (!Directory.Exists(dir))
|
||||
{
|
||||
Directory.CreateDirectory(dir);
|
||||
}
|
||||
string sourceFile = Path.Combine(sourceDir, fileName);
|
||||
File.Copy(sourceFile, destFile);
|
||||
}
|
||||
|
||||
private static void WriteFilesToDelete(string fileName, List<string> list)
|
||||
{
|
||||
string dir = Path.GetDirectoryName(fileName);
|
||||
if (!Directory.Exists(dir))
|
||||
{
|
||||
Directory.CreateDirectory(dir);
|
||||
}
|
||||
|
||||
using (StreamWriter sw = new StreamWriter(fileName))
|
||||
{
|
||||
// Write all files received
|
||||
foreach (string file in list)
|
||||
{
|
||||
sw.WriteLine(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static string[] GetFiles(string path)
|
||||
{
|
||||
var filesListRaw = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
|
||||
|
||||
// See if the switch is specified
|
||||
bool useAllFiles = String.IsNullOrEmpty(FilesToExclude);
|
||||
// Switch is not empty so do the check
|
||||
if (!useAllFiles)
|
||||
{
|
||||
var resultList = new List<string>();
|
||||
//
|
||||
foreach (string file in filesListRaw)
|
||||
{
|
||||
// Verify to include the file
|
||||
if (FilesToExclude.IndexOf(Path.GetFileName(file), StringComparison.OrdinalIgnoreCase) >= 0)
|
||||
continue;
|
||||
//
|
||||
resultList.Add(file);
|
||||
}
|
||||
//
|
||||
return resultList.ToArray();
|
||||
}
|
||||
//
|
||||
return filesListRaw;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("WebsitePanel.FilesComparer")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyProduct("WebsitePanel.FilesComparer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("235a18ac-7560-49ac-96fc-a01d5f9a862d")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
|
@ -0,0 +1,99 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{85315088-B2F0-439B-9360-4D5BECE630DB}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>WebsitePanel.FilesComparer</RootNamespace>
|
||||
<AssemblyName>diff</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<OldToolsVersion>2.0</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\..\..\Tools\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\..\Tools\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject>WebsitePanel.FilesComparer.Program</StartupObject>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\VersionInfo.cs">
|
||||
<Link>VersionInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="CRC32.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Windows Installer 3.1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
26
WebsitePanel/Sources/Tools/WebsitePanel.Import.CsvBulk.sln
Normal file
|
@ -0,0 +1,26 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4DED129E-BCF6-49B8-B242-027733EA481E}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\..\..\LICENSE.txt = ..\..\..\LICENSE.txt
|
||||
..\..\..\Readme.htm = ..\..\..\Readme.htm
|
||||
..\..\..\ReleaseNotes.htm = ..\..\..\ReleaseNotes.htm
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Import.CsvBulk", "WebsitePanel.Import.CsvBulk\WebsitePanel.Import.CsvBulk.csproj", "{CAD845DC-B209-4A07-94DA-B12FD14121F3}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{CAD845DC-B209-4A07-94DA-B12FD14121F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CAD845DC-B209-4A07-94DA-B12FD14121F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CAD845DC-B209-4A07-94DA-B12FD14121F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CAD845DC-B209-4A07-94DA-B12FD14121F3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="InputFile" value="test.csv"/>
|
||||
<add key="TargetOrganization" value="Import"/>
|
||||
<add key="ES.WebService" value="http://127.0.0.1:9002"/>
|
||||
<add key="ES.Username" value="serveradmin"/>
|
||||
<add key="ES.Password" value="serveradmin"/>
|
||||
<add key="ConnectionString" value="server=db_server;database=WebsitePanel;uid=WebsitePanel;pwd=password;"/>
|
||||
<add key="LogFile" value="WebsitePanel.Import.CsvBulk.log"/>
|
||||
</appSettings>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
211
WebsitePanel/Sources/Tools/WebsitePanel.Import.CsvBulk/ES.cs
Normal file
|
@ -0,0 +1,211 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
using Microsoft.Web.Services3;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.EnterpriseServer.HostedSolution;
|
||||
|
||||
|
||||
namespace WebsitePanel.Import.CsvBulk
|
||||
{
|
||||
/// <summary>
|
||||
/// ES Proxy class
|
||||
/// </summary>
|
||||
public class ES
|
||||
{
|
||||
private static ServerContext serverContext = null;
|
||||
|
||||
public static void InitializeServices(ServerContext context)
|
||||
{
|
||||
serverContext = context;
|
||||
}
|
||||
|
||||
public static ES Services
|
||||
{
|
||||
get
|
||||
{
|
||||
return new ES();
|
||||
}
|
||||
}
|
||||
|
||||
public esSystem System
|
||||
{
|
||||
get { return GetCachedProxy<esSystem>(); }
|
||||
}
|
||||
|
||||
public esApplicationsInstaller ApplicationsInstaller
|
||||
{
|
||||
get { return GetCachedProxy<esApplicationsInstaller>(); }
|
||||
}
|
||||
|
||||
public esAuditLog AuditLog
|
||||
{
|
||||
get { return GetCachedProxy<esAuditLog>(); }
|
||||
}
|
||||
|
||||
public esAuthentication Authentication
|
||||
{
|
||||
get { return GetCachedProxy<esAuthentication>(false); }
|
||||
}
|
||||
|
||||
public esComments Comments
|
||||
{
|
||||
get { return GetCachedProxy<esComments>(); }
|
||||
}
|
||||
|
||||
public esDatabaseServers DatabaseServers
|
||||
{
|
||||
get { return GetCachedProxy<esDatabaseServers>(); }
|
||||
}
|
||||
|
||||
public esFiles Files
|
||||
{
|
||||
get { return GetCachedProxy<esFiles>(); }
|
||||
}
|
||||
|
||||
public esFtpServers FtpServers
|
||||
{
|
||||
get { return GetCachedProxy<esFtpServers>(); }
|
||||
}
|
||||
|
||||
public esMailServers MailServers
|
||||
{
|
||||
get { return GetCachedProxy<esMailServers>(); }
|
||||
}
|
||||
|
||||
public esOperatingSystems OperatingSystems
|
||||
{
|
||||
get { return GetCachedProxy<esOperatingSystems>(); }
|
||||
}
|
||||
|
||||
public esPackages Packages
|
||||
{
|
||||
get { return GetCachedProxy<esPackages>(); }
|
||||
}
|
||||
|
||||
public esScheduler Scheduler
|
||||
{
|
||||
get { return GetCachedProxy<esScheduler>(); }
|
||||
}
|
||||
|
||||
public esTasks Tasks
|
||||
{
|
||||
get { return GetCachedProxy<esTasks>(); }
|
||||
}
|
||||
|
||||
public esServers Servers
|
||||
{
|
||||
get { return GetCachedProxy<esServers>(); }
|
||||
}
|
||||
|
||||
public esStatisticsServers StatisticsServers
|
||||
{
|
||||
get { return GetCachedProxy<esStatisticsServers>(); }
|
||||
}
|
||||
|
||||
public esUsers Users
|
||||
{
|
||||
get { return GetCachedProxy<esUsers>(); }
|
||||
}
|
||||
|
||||
public esWebServers WebServers
|
||||
{
|
||||
get { return GetCachedProxy<esWebServers>(); }
|
||||
}
|
||||
|
||||
public esSharePointServers SharePointServers
|
||||
{
|
||||
get { return GetCachedProxy<esSharePointServers>(); }
|
||||
}
|
||||
|
||||
public esImport Import
|
||||
{
|
||||
get { return GetCachedProxy<esImport>(); }
|
||||
}
|
||||
|
||||
public esBackup Backup
|
||||
{
|
||||
get { return GetCachedProxy<esBackup>(); }
|
||||
}
|
||||
|
||||
|
||||
public esExchangeServer ExchangeServer
|
||||
{
|
||||
get { return GetCachedProxy<esExchangeServer>(); }
|
||||
}
|
||||
|
||||
public esOrganizations Organizations
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetCachedProxy<esOrganizations>();
|
||||
}
|
||||
}
|
||||
|
||||
protected ES()
|
||||
{
|
||||
}
|
||||
|
||||
protected virtual T GetCachedProxy<T>()
|
||||
{
|
||||
return GetCachedProxy<T>(true);
|
||||
}
|
||||
|
||||
protected virtual T GetCachedProxy<T>(bool secureCalls)
|
||||
{
|
||||
if (serverContext == null)
|
||||
{
|
||||
throw new Exception("Server context is not specified");
|
||||
}
|
||||
|
||||
Type t = typeof(T);
|
||||
string key = t.FullName + ".ServiceProxy";
|
||||
T proxy = (T)Activator.CreateInstance(t);
|
||||
|
||||
object p = proxy;
|
||||
|
||||
// configure proxy
|
||||
EnterpriseServerProxyConfigurator cnfg = new EnterpriseServerProxyConfigurator();
|
||||
cnfg.EnterpriseServerUrl = serverContext.Server;
|
||||
if (secureCalls)
|
||||
{
|
||||
cnfg.Username = serverContext.Username;
|
||||
cnfg.Password = serverContext.Password;
|
||||
}
|
||||
|
||||
cnfg.Configure((WebServicesClientProtocol)p);
|
||||
|
||||
return proxy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,770 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Configuration;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
|
||||
|
||||
namespace WebsitePanel.Import.CsvBulk
|
||||
{
|
||||
public enum AccountTypes
|
||||
{
|
||||
Mailbox,
|
||||
Contact,
|
||||
User
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Imports mailboxes from csv file
|
||||
/// </summary>
|
||||
public class ExchangeImport
|
||||
{
|
||||
public const int ERROR_USER_WRONG_PASSWORD = -110;
|
||||
public const int ERROR_USER_WRONG_USERNAME = -109;
|
||||
public const int ERROR_USER_ACCOUNT_CANCELLED = -105;
|
||||
public const int ERROR_USER_ACCOUNT_DEMO = -106;
|
||||
public const int ERROR_USER_ACCOUNT_PENDING = -103;
|
||||
public const int ERROR_USER_ACCOUNT_SHOULD_BE_ADMINISTRATOR = -107;
|
||||
public const int ERROR_USER_ACCOUNT_SHOULD_BE_RESELLER = -108;
|
||||
public const int ERROR_USER_ACCOUNT_SUSPENDED = -104;
|
||||
|
||||
private ServerContext serverContext;
|
||||
private int totalMailboxes = 0;
|
||||
private int totalContacts = 0;
|
||||
private int totalUsers = 0;
|
||||
private int index = 0;
|
||||
|
||||
private int DisplayNameIndex = -1;
|
||||
private int EmailAddressIndex = -1;
|
||||
private int PasswordIndex = -1;
|
||||
private int FirstNameIndex = -1;
|
||||
private int MiddleNameIndex = -1;
|
||||
private int LastNameIndex = -1;
|
||||
private int TypeIndex = -1;
|
||||
private int AddressIndex = -1;
|
||||
private int CityIndex = -1;
|
||||
private int StateIndex = -1;
|
||||
private int ZipIndex = -1;
|
||||
private int CountryIndex = -1;
|
||||
private int JobTitleIndex = -1;
|
||||
private int CompanyIndex = -1;
|
||||
private int DepartmentIndex = -1;
|
||||
private int OfficeIndex = -1;
|
||||
private int BusinessPhoneIndex = -1;
|
||||
private int FaxIndex = -1;
|
||||
private int HomePhoneIndex = -1;
|
||||
private int MobilePhoneIndex = -1;
|
||||
private int PagerIndex = -1;
|
||||
private int WebPageIndex = -1;
|
||||
private int NotesIndex = -1;
|
||||
|
||||
|
||||
public ExchangeImport()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Starts import process
|
||||
/// </summary>
|
||||
public void Start()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
//Authenticates user
|
||||
if (!Connect(
|
||||
ConfigurationManager.AppSettings["ES.WebService"],
|
||||
ConfigurationManager.AppSettings["ES.Username"],
|
||||
ConfigurationManager.AppSettings["ES.Password"]))
|
||||
return;
|
||||
|
||||
// query organization Id from DB
|
||||
int itemId = GetOrganizationId();
|
||||
|
||||
//Parse csv file
|
||||
if (itemId != 0)
|
||||
{
|
||||
ProcessFile(ConfigurationManager.AppSettings["InputFile"], itemId);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError("Unexpected error occured", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns Organization Id from database
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private int GetOrganizationId()
|
||||
{
|
||||
SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
|
||||
SqlCommand cmd = new SqlCommand();
|
||||
|
||||
int id = 0;
|
||||
string orgId = ConfigurationManager.AppSettings["TargetOrganization"];
|
||||
|
||||
cmd.CommandText = string.Format("SELECT ItemID FROM ExchangeOrganizations WHERE OrganizationID = '{0}'", orgId);
|
||||
cmd.CommandType = CommandType.Text;
|
||||
cmd.Connection = sqlConnection;
|
||||
try
|
||||
{
|
||||
sqlConnection.Open();
|
||||
object obj = cmd.ExecuteScalar();
|
||||
if (obj == null)
|
||||
{
|
||||
Log.WriteError(string.Format("Organization '{0}' not found", orgId));
|
||||
}
|
||||
else
|
||||
{
|
||||
id = (int)obj;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError("SQL error occured", ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (sqlConnection != null)
|
||||
sqlConnection.Close();
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
private void ProcessFile(string inputFile, int orgId)
|
||||
{
|
||||
// regexp to parse csv string
|
||||
Regex regex = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");
|
||||
|
||||
try
|
||||
{
|
||||
if (!File.Exists(inputFile))
|
||||
{
|
||||
Log.WriteError(string.Format("File '{0}' not found", inputFile));
|
||||
return;
|
||||
}
|
||||
index = 0;
|
||||
|
||||
using (StreamReader sr = new StreamReader(inputFile))
|
||||
{
|
||||
string line;
|
||||
|
||||
// Read lines from the file until the end of
|
||||
// the file is reached.
|
||||
while ((line = sr.ReadLine()) != null)
|
||||
{
|
||||
//process line
|
||||
if (!ProcessLine(index, orgId, line, regex))
|
||||
{
|
||||
ShowSummary();
|
||||
return;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
}
|
||||
ShowSummary();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// Let the user know what went wrong.
|
||||
Log.WriteError("Unexpected error occured", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowSummary()
|
||||
{
|
||||
Log.WriteLine(string.Format("{0} line(s) processed", index));
|
||||
Log.WriteLine(string.Format("{0} mailbox(s) imported", totalMailboxes));
|
||||
Log.WriteLine(string.Format("{0} contact(s) imported", totalContacts));
|
||||
Log.WriteLine(string.Format("{0} user(s) imported", totalUsers));
|
||||
}
|
||||
|
||||
private bool ProcessLine(int index, int orgId, string line, Regex regex)
|
||||
{
|
||||
//ignore null string
|
||||
if (string.IsNullOrEmpty(line))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
string[] cells = regex.Split(line);
|
||||
|
||||
for (int i = 0; i < cells.Length; i++)
|
||||
{
|
||||
cells[i] = cells[i].Trim(new char[] { '"' });
|
||||
}
|
||||
|
||||
// process first row - document heading
|
||||
// calculate indexes of required columns
|
||||
if (index == 0)
|
||||
{
|
||||
for (int i = 0; i < cells.Length; i++)
|
||||
{
|
||||
if (StringEquals(cells[i], "Display Name"))
|
||||
DisplayNameIndex = i;
|
||||
else if (StringEquals(cells[i], "E-mail Address"))
|
||||
EmailAddressIndex = i;
|
||||
else if (StringEquals(cells[i], "Password"))
|
||||
PasswordIndex = i;
|
||||
else if (StringEquals(cells[i], "First Name"))
|
||||
FirstNameIndex = i;
|
||||
else if (StringEquals(cells[i], "Middle Name"))
|
||||
MiddleNameIndex = i;
|
||||
else if (StringEquals(cells[i], "Last Name"))
|
||||
LastNameIndex = i;
|
||||
else if (StringEquals(cells[i], "Type"))
|
||||
TypeIndex = i;
|
||||
|
||||
else if (StringEquals(cells[i], "Address"))
|
||||
AddressIndex = i;
|
||||
else if (StringEquals(cells[i], "City"))
|
||||
CityIndex = i;
|
||||
else if (StringEquals(cells[i], "State"))
|
||||
StateIndex = i;
|
||||
else if (StringEquals(cells[i], "Zip"))
|
||||
ZipIndex = i;
|
||||
else if (StringEquals(cells[i], "Country"))
|
||||
CountryIndex = i;
|
||||
else if (StringEquals(cells[i], "Job Title"))
|
||||
JobTitleIndex = i;
|
||||
else if (StringEquals(cells[i], "Company"))
|
||||
CompanyIndex = i;
|
||||
else if (StringEquals(cells[i], "Department"))
|
||||
DepartmentIndex = i;
|
||||
else if (StringEquals(cells[i], "Office"))
|
||||
OfficeIndex = i;
|
||||
else if (StringEquals(cells[i], "Business Phone"))
|
||||
BusinessPhoneIndex = i;
|
||||
else if (StringEquals(cells[i], "Fax"))
|
||||
FaxIndex = i;
|
||||
else if (StringEquals(cells[i], "Home Phone"))
|
||||
HomePhoneIndex = i;
|
||||
else if (StringEquals(cells[i], "Mobile Phone"))
|
||||
MobilePhoneIndex = i;
|
||||
else if (StringEquals(cells[i], "Pager"))
|
||||
PagerIndex = i;
|
||||
else if (StringEquals(cells[i], "Web Page"))
|
||||
WebPageIndex = i;
|
||||
else if (StringEquals(cells[i], "Notes"))
|
||||
NotesIndex = i;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//check csv structure
|
||||
if (TypeIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Type' not found");
|
||||
return false;
|
||||
}
|
||||
if (DisplayNameIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Display Name' not found");
|
||||
return false;
|
||||
}
|
||||
if (EmailAddressIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'E-mail Address' not found");
|
||||
return false;
|
||||
}
|
||||
if (PasswordIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Password' not found");
|
||||
return false;
|
||||
}
|
||||
if (FirstNameIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'First Name' not found");
|
||||
return false;
|
||||
}
|
||||
if (MiddleNameIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Middle Name' not found");
|
||||
return false;
|
||||
}
|
||||
if (LastNameIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Last Name' not found");
|
||||
return false;
|
||||
}
|
||||
if (AddressIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Address' not found");
|
||||
return false;
|
||||
}
|
||||
if (CityIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'City' not found");
|
||||
return false;
|
||||
}
|
||||
if (StateIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'State' not found");
|
||||
return false;
|
||||
}
|
||||
if (ZipIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Zip' not found");
|
||||
return false;
|
||||
}
|
||||
if (CountryIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Country' not found");
|
||||
return false;
|
||||
}
|
||||
if (JobTitleIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Job Title' not found");
|
||||
return false;
|
||||
}
|
||||
if (CompanyIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Company' not found");
|
||||
return false;
|
||||
}
|
||||
if (DepartmentIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Department' not found");
|
||||
return false;
|
||||
}
|
||||
if (OfficeIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Office' not found");
|
||||
return false;
|
||||
}
|
||||
if (BusinessPhoneIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Last Name' not found");
|
||||
return false;
|
||||
}
|
||||
if (FaxIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Fax' not found");
|
||||
return false;
|
||||
}
|
||||
if (HomePhoneIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Home Phone' not found");
|
||||
return false;
|
||||
}
|
||||
if (MobilePhoneIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Mobile Phone' not found");
|
||||
return false;
|
||||
}
|
||||
if (PagerIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Pager' not found");
|
||||
return false;
|
||||
}
|
||||
if (WebPageIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'WebPage' not found");
|
||||
return false;
|
||||
}
|
||||
if (NotesIndex == -1)
|
||||
{
|
||||
Log.WriteError("Column 'Notes' not found");
|
||||
return false;
|
||||
}
|
||||
|
||||
string typeName = cells[TypeIndex];
|
||||
string displayName = cells[DisplayNameIndex];
|
||||
string emailAddress = cells[EmailAddressIndex];
|
||||
string password = cells[PasswordIndex];
|
||||
string firstName = cells[FirstNameIndex];
|
||||
string middleName = cells[MiddleNameIndex];
|
||||
string lastName = cells[LastNameIndex];
|
||||
string address = cells[AddressIndex];
|
||||
string city = cells[CityIndex];
|
||||
string state = cells[StateIndex];
|
||||
string zip = cells[ZipIndex];
|
||||
string country = cells[CountryIndex];
|
||||
string jobTitle = cells[JobTitleIndex];
|
||||
string company = cells[CompanyIndex];
|
||||
string department = cells[DepartmentIndex];
|
||||
string office = cells[OfficeIndex];
|
||||
string businessPhone = cells[BusinessPhoneIndex];
|
||||
string fax = cells[FaxIndex];
|
||||
string homePhone = cells[HomePhoneIndex];
|
||||
string mobilePhone = cells[MobilePhoneIndex];
|
||||
string pager = cells[PagerIndex];
|
||||
string webPage = cells[WebPageIndex];
|
||||
string notes = cells[NotesIndex];
|
||||
|
||||
|
||||
|
||||
|
||||
if (string.IsNullOrEmpty(typeName))
|
||||
{
|
||||
Log.WriteError(string.Format("Error at line {0}: field 'Type' is empty", index + 1));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!StringEquals(typeName, "Mailbox") &&
|
||||
!StringEquals(typeName, "Contact") &&
|
||||
!StringEquals(typeName, "User"))
|
||||
{
|
||||
Log.WriteError(string.Format("Error at line {0}: field 'Type' is invalid. Should be 'Mailbox' or 'Contact' or 'User'", index + 1));
|
||||
return false;
|
||||
}
|
||||
|
||||
AccountTypes type = (AccountTypes)Enum.Parse(typeof(AccountTypes), typeName, true);
|
||||
|
||||
if (string.IsNullOrEmpty(displayName))
|
||||
{
|
||||
Log.WriteError(string.Format("Error at line {0}: field 'Display Name' is empty", index + 1));
|
||||
return false;
|
||||
}
|
||||
if (string.IsNullOrEmpty(emailAddress))
|
||||
{
|
||||
Log.WriteError(string.Format("Error at line {0}: field 'E-mail Address' is empty", index + 1));
|
||||
return false;
|
||||
}
|
||||
if (emailAddress.IndexOf("@") == -1)
|
||||
{
|
||||
Log.WriteError(string.Format("Error at line {0}: field 'E-mail Address' is invalid", index + 1));
|
||||
return false;
|
||||
}
|
||||
if (type == AccountTypes.Mailbox && string.IsNullOrEmpty(password))
|
||||
{
|
||||
Log.WriteError(string.Format("Error at line {0}: field 'Password' is empty", index + 1));
|
||||
return false;
|
||||
}
|
||||
if (!string.IsNullOrEmpty(middleName) && middleName.Length > 6)
|
||||
{
|
||||
middleName = middleName.Substring(0, 6);
|
||||
Log.WriteInfo(string.Format("Warning at line {0}: field 'Middle Name' was truncated to 6 symbols", index + 1));
|
||||
}
|
||||
|
||||
if (type == AccountTypes.Mailbox)
|
||||
{
|
||||
//create mailbox using web service
|
||||
if (!CreateMailbox(index, orgId, displayName, emailAddress, password, firstName, middleName, lastName,
|
||||
address, city, state, zip, country, jobTitle, company, department, office,
|
||||
businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
totalMailboxes++;
|
||||
}
|
||||
else if (type == AccountTypes.Contact)
|
||||
{
|
||||
//create contact using web service
|
||||
if (!CreateContact(index, orgId, displayName, emailAddress, firstName, middleName, lastName,
|
||||
address, city, state, zip, country, jobTitle, company, department, office,
|
||||
businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
totalContacts++;
|
||||
}
|
||||
else if (type == AccountTypes.User)
|
||||
{
|
||||
//create user using web service
|
||||
if (!CreateUser(index, orgId, displayName, emailAddress, password, firstName, middleName, lastName,
|
||||
address, city, state, zip, country, jobTitle, company, department, office,
|
||||
businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
totalUsers++;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates mailbox
|
||||
/// </summary>
|
||||
private bool CreateMailbox(int index, int orgId, string displayName, string emailAddress, string password, string firstName, string middleName, string lastName,
|
||||
string address, string city, string state, string zip, string country, string jobTitle, string company, string department, string office,
|
||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager, string webPage, string notes)
|
||||
{
|
||||
bool ret = false;
|
||||
try
|
||||
{
|
||||
string name = emailAddress.Substring(0, emailAddress.IndexOf("@"));
|
||||
string domain = emailAddress.Substring(emailAddress.IndexOf("@") + 1);
|
||||
|
||||
//create mailbox
|
||||
//ES.Services.ExchangeServer.
|
||||
string accountName = string.Empty;
|
||||
int accountId = ES.Services.ExchangeServer.CreateMailbox(orgId, 0, ExchangeAccountType.Mailbox, accountName, displayName, name, domain, password, false, string.Empty);
|
||||
if (accountId < 0)
|
||||
{
|
||||
string errorMessage = GetErrorMessage(accountId);
|
||||
Log.WriteError(string.Format("Error at line {0}: {1}", index + 1, errorMessage));
|
||||
return false;
|
||||
}
|
||||
ExchangeMailbox mailbox = ES.Services.ExchangeServer.GetMailboxGeneralSettings(orgId, accountId);
|
||||
|
||||
mailbox.FirstName = firstName;
|
||||
mailbox.Initials = middleName;
|
||||
mailbox.LastName = lastName;
|
||||
mailbox.Address = address;
|
||||
mailbox.City = city;
|
||||
mailbox.State = state;
|
||||
mailbox.Zip = zip;
|
||||
mailbox.Country = country;
|
||||
mailbox.JobTitle = jobTitle;
|
||||
mailbox.Company = company;
|
||||
mailbox.Department = department;
|
||||
mailbox.Office = office;
|
||||
mailbox.BusinessPhone = businessPhone;
|
||||
mailbox.Fax = fax;
|
||||
mailbox.HomePhone = homePhone;
|
||||
mailbox.MobilePhone = mobilePhone;
|
||||
mailbox.Pager = pager;
|
||||
mailbox.WebPage = webPage;
|
||||
mailbox.Notes = notes;
|
||||
|
||||
|
||||
//update mailbox
|
||||
ES.Services.ExchangeServer.SetMailboxGeneralSettings(orgId, accountId, mailbox.DisplayName,
|
||||
null, mailbox.HideFromAddressBook, mailbox.Disabled, mailbox.FirstName, mailbox.Initials,
|
||||
mailbox.LastName, mailbox.Address, mailbox.City, mailbox.State, mailbox.Zip, mailbox.Country,
|
||||
mailbox.JobTitle, mailbox.Company, mailbox.Department, mailbox.Office, null, mailbox.BusinessPhone,
|
||||
mailbox.Fax, mailbox.HomePhone, mailbox.MobilePhone, mailbox.Pager, mailbox.WebPage, mailbox.Notes);
|
||||
|
||||
ret = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError(string.Format("Error at line {0}: Unable to create mailbox", index + 1), ex);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private string GetErrorMessage(int errorCode)
|
||||
{
|
||||
string errorMessage = "Unspecified error";
|
||||
switch (errorCode)
|
||||
{
|
||||
case BusinessErrorCodes.ERROR_EXCHANGE_EMAIL_EXISTS:
|
||||
errorMessage = "Email already exists";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_EXCHANGE_DELETE_SOME_PROBLEMS:
|
||||
errorMessage = "Unspecified delete error";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT:
|
||||
errorMessage = "Mailbox quota reached";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_EXCHANGE_CONTACTS_QUOTA_LIMIT:
|
||||
errorMessage = "Contact quota reached";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_EXCHANGE_DLISTS_QUOTA_LIMIT:
|
||||
errorMessage = "Distribution list quota reached";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_EXCHANGE_PFOLDERS_QUOTA_LIMIT:
|
||||
errorMessage = "Public folder quota reached";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_EXCHANGE_DOMAINS_QUOTA_LIMIT:
|
||||
errorMessage = "Domain quota reached";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES:
|
||||
errorMessage = "Storage quota reached";
|
||||
break;
|
||||
}
|
||||
return errorMessage;
|
||||
}
|
||||
|
||||
private bool CreateContact(int index, int orgId, string displayName, string emailAddress, string firstName, string middleName, string lastName,
|
||||
string address, string city, string state, string zip, string country, string jobTitle, string company, string department, string office,
|
||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager, string webPage, string notes)
|
||||
{
|
||||
bool ret = false;
|
||||
try
|
||||
{
|
||||
string name = emailAddress.Substring(0, emailAddress.IndexOf("@"));
|
||||
string domain = emailAddress.Substring(emailAddress.IndexOf("@") + 1);
|
||||
|
||||
//create contact
|
||||
int accountId = ES.Services.ExchangeServer.CreateContact(orgId, displayName, emailAddress);
|
||||
if (accountId < 0)
|
||||
{
|
||||
string errorMessage = GetErrorMessage(accountId);
|
||||
Log.WriteError(string.Format("Error at line {0}: {1}", index + 1, errorMessage));
|
||||
return false;
|
||||
}
|
||||
ExchangeContact contact = ES.Services.ExchangeServer.GetContactGeneralSettings(orgId, accountId);
|
||||
|
||||
contact.FirstName = firstName;
|
||||
contact.Initials = middleName;
|
||||
contact.LastName = lastName;
|
||||
contact.Address = address;
|
||||
contact.City = city;
|
||||
contact.State = state;
|
||||
contact.Zip = zip;
|
||||
contact.Country = country;
|
||||
contact.JobTitle = jobTitle;
|
||||
contact.Company = company;
|
||||
contact.Department = department;
|
||||
contact.Office = office;
|
||||
contact.BusinessPhone = businessPhone;
|
||||
contact.Fax = fax;
|
||||
contact.HomePhone = homePhone;
|
||||
contact.MobilePhone = mobilePhone;
|
||||
contact.Pager = pager;
|
||||
contact.WebPage = webPage;
|
||||
contact.Notes = notes;
|
||||
|
||||
//update mailbox
|
||||
ES.Services.ExchangeServer.SetContactGeneralSettings(orgId, accountId, contact.DisplayName, contact.EmailAddress,
|
||||
contact.HideFromAddressBook, contact.FirstName, contact.Initials,
|
||||
contact.LastName, contact.Address, contact.City, contact.State, contact.Zip, contact.Country,
|
||||
contact.JobTitle, contact.Company, contact.Department, contact.Office, null, contact.BusinessPhone,
|
||||
contact.Fax, contact.HomePhone, contact.MobilePhone, contact.Pager, contact.WebPage, contact.Notes, contact.UseMapiRichTextFormat);
|
||||
|
||||
ret = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError(string.Format("Error at line {0}: Unable to create contact", index + 1), ex);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private bool CreateUser(int index, int orgId, string displayName, string emailAddress, string password, string firstName, string middleName, string lastName,
|
||||
string address, string city, string state, string zip, string country, string jobTitle, string company, string department, string office,
|
||||
string businessPhone, string fax, string homePhone, string mobilePhone, string pager, string webPage, string notes)
|
||||
{
|
||||
bool ret = false;
|
||||
try
|
||||
{
|
||||
string name = emailAddress.Substring(0, emailAddress.IndexOf("@"));
|
||||
string domain = emailAddress.Substring(emailAddress.IndexOf("@") + 1);
|
||||
string accountName = string.Empty;
|
||||
int accountId = ES.Services.Organizations.CreateUser(orgId, displayName, name, domain, password, false, string.Empty);
|
||||
|
||||
if (accountId < 0)
|
||||
{
|
||||
string errorMessage = GetErrorMessage(accountId);
|
||||
Log.WriteError(string.Format("Error at line {0}: {1}", index + 1, errorMessage));
|
||||
return false;
|
||||
}
|
||||
OrganizationUser user = ES.Services.Organizations.GetUserGeneralSettings(orgId, accountId);
|
||||
|
||||
user.FirstName = firstName;
|
||||
user.Initials = middleName;
|
||||
user.LastName = lastName;
|
||||
user.Address = address;
|
||||
user.City = city;
|
||||
user.State = state;
|
||||
user.Zip = zip;
|
||||
user.Country = country;
|
||||
user.JobTitle = jobTitle;
|
||||
user.Company = company;
|
||||
user.Department = department;
|
||||
user.Office = office;
|
||||
user.BusinessPhone = businessPhone;
|
||||
user.Fax = fax;
|
||||
user.HomePhone = homePhone;
|
||||
user.MobilePhone = mobilePhone;
|
||||
user.Pager = pager;
|
||||
user.WebPage = webPage;
|
||||
user.Notes = notes;
|
||||
|
||||
//update
|
||||
ES.Services.Organizations.SetUserGeneralSettings(orgId, accountId, user.DisplayName,
|
||||
null, false, user.Disabled, user.Locked, user.FirstName, user.Initials,
|
||||
user.LastName, user.Address, user.City, user.State, user.Zip, user.Country,
|
||||
user.JobTitle, user.Company, user.Department, user.Office, null, user.BusinessPhone,
|
||||
user.Fax, user.HomePhone, user.MobilePhone, user.Pager, user.WebPage, user.Notes, user.ExternalEmail);
|
||||
|
||||
ret = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError(string.Format("Error at line {0}: Unable to create user", index + 1), ex);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
private bool Connect(string server, string username, string password)
|
||||
{
|
||||
bool ret = true;
|
||||
serverContext = new ServerContext();
|
||||
serverContext.Server = server;
|
||||
serverContext.Username = username;
|
||||
serverContext.Password = password;
|
||||
|
||||
ES.InitializeServices(serverContext);
|
||||
int status = -1;
|
||||
try
|
||||
{
|
||||
status = ES.Services.Authentication.AuthenticateUser(serverContext.Username, serverContext.Password, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError("Authentication error", ex);
|
||||
return false;
|
||||
}
|
||||
|
||||
string errorMessage = "Check your internet connection or server URL.";
|
||||
if (status != 0)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case ERROR_USER_WRONG_USERNAME:
|
||||
errorMessage = "Wrong username.";
|
||||
break;
|
||||
case ERROR_USER_WRONG_PASSWORD:
|
||||
errorMessage = "Wrong password.";
|
||||
break;
|
||||
case ERROR_USER_ACCOUNT_CANCELLED:
|
||||
errorMessage = "Account cancelled.";
|
||||
break;
|
||||
case ERROR_USER_ACCOUNT_PENDING:
|
||||
errorMessage = "Account pending.";
|
||||
break;
|
||||
}
|
||||
Log.WriteError(
|
||||
string.Format("Cannot connect to the remote server. {0}", errorMessage));
|
||||
ret = false;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private bool StringEquals(string str1, string str2)
|
||||
{
|
||||
return string.Equals(str1, str2, StringComparison.InvariantCultureIgnoreCase);
|
||||
}
|
||||
}
|
||||
}
|
204
WebsitePanel/Sources/Tools/WebsitePanel.Import.CsvBulk/Log.cs
Normal file
|
@ -0,0 +1,204 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
|
||||
namespace WebsitePanel.Import.CsvBulk
|
||||
{
|
||||
/// <summary>
|
||||
/// Simple log
|
||||
/// </summary>
|
||||
public sealed class Log
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the class.
|
||||
/// </summary>
|
||||
private Log()
|
||||
{
|
||||
}
|
||||
|
||||
private static string logFile = "WebsitePanel.Import.CsvBulk.log";
|
||||
|
||||
/// <summary>
|
||||
/// Initializes trace listeners.
|
||||
/// </summary>
|
||||
public static void Initialize(string fileName)
|
||||
{
|
||||
logFile = fileName;
|
||||
FileStream fileLog = new FileStream(logFile, FileMode.Append);
|
||||
TextWriterTraceListener fileListener = new TextWriterTraceListener(fileLog);
|
||||
fileListener.TraceOutputOptions = TraceOptions.DateTime;
|
||||
Trace.UseGlobalLock = true;
|
||||
Trace.Listeners.Clear();
|
||||
Trace.Listeners.Add(fileListener);
|
||||
TextWriterTraceListener consoleListener = new TextWriterTraceListener(System.Console.Out);
|
||||
Trace.Listeners.Add(consoleListener);
|
||||
Trace.AutoFlush = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write error to the log.
|
||||
/// </summary>
|
||||
/// <param name="message">Error message.</param>
|
||||
/// <param name="ex">Exception.</param>
|
||||
internal static void WriteError(string message, Exception ex)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] ERROR: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
Trace.WriteLine(ex);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write error to the log.
|
||||
/// </summary>
|
||||
/// <param name="message">Error message.</param>
|
||||
internal static void WriteError(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] ERROR: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void Write(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] {1}", DateTime.Now, message);
|
||||
Trace.Write(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Write line to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteLine(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write info message to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteInfo(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] INFO: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write start message to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteStart(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] START: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write end message to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteEnd(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] END: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
internal static void WriteApplicationStart()
|
||||
{
|
||||
try
|
||||
{
|
||||
string name = typeof(Log).Assembly.GetName().Name;
|
||||
string version = typeof(Log).Assembly.GetName().Version.ToString(3);
|
||||
string line = string.Format("[{0:G}] ***** {1} {2} Started *****", DateTime.Now, name, version);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
internal static void WriteApplicationEnd()
|
||||
{
|
||||
try
|
||||
{
|
||||
string name = typeof(Log).Assembly.GetName().Name;
|
||||
string line = string.Format("[{0:G}] ***** {1} Ended *****", DateTime.Now, name);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Opens notepad to view log file.
|
||||
/// </summary>
|
||||
public static void ShowLogFile()
|
||||
{
|
||||
try
|
||||
{
|
||||
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, logFile);
|
||||
Process.Start("notepad.exe", path);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.Import.CsvBulk
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Log.Initialize(ConfigurationManager.AppSettings["LogFile"]);
|
||||
Log.WriteApplicationStart();
|
||||
ExchangeImport import = new ExchangeImport();
|
||||
import.Start();
|
||||
Log.WriteApplicationEnd();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("WebsitePanel.Import.CsvBulk")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyProduct("WebsitePanel.Import.CsvBulk")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("506d71c8-2a26-4b3b-b716-dea4758969b7")]
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.Import.CsvBulk
|
||||
{
|
||||
public class ServerContext
|
||||
{
|
||||
private string serverName;
|
||||
|
||||
public string Server
|
||||
{
|
||||
get { return serverName; }
|
||||
set { serverName = value; }
|
||||
}
|
||||
|
||||
private string userName;
|
||||
|
||||
public string Username
|
||||
{
|
||||
get { return userName; }
|
||||
set { userName = value; }
|
||||
}
|
||||
|
||||
private string password;
|
||||
|
||||
public string Password
|
||||
{
|
||||
get { return password; }
|
||||
set { password = value; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{CAD845DC-B209-4A07-94DA-B12FD14121F3}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>WebsitePanel.Import.CsvBulk</RootNamespace>
|
||||
<AssemblyName>WebsitePanel.Import.CsvBulk</AssemblyName>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.Web.Services3">
|
||||
<HintPath>..\..\..\Lib\Microsoft.Web.Services3.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.configuration" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Base, Version=1.0.0.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.Providers.Base, Version=1.0.0.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.Providers.Base.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\VersionInfo.cs">
|
||||
<Link>VersionInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="ES.cs" />
|
||||
<Compile Include="Log.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ServerContext.cs" />
|
||||
<Compile Include="ExchangeImport.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Windows Installer 3.1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,26 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F919DE53-A948-4C78-969D-922DBA281B37}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\..\..\LICENSE.txt = ..\..\..\LICENSE.txt
|
||||
..\..\..\Readme.htm = ..\..\..\Readme.htm
|
||||
..\..\..\ReleaseNotes.htm = ..\..\..\ReleaseNotes.htm
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Import.Enterprise", "WebsitePanel.Import.Enterprise\WebsitePanel.Import.Enterprise.csproj", "{3CC79CB9-C8B9-4658-A3C6-AE023445D091}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{3CC79CB9-C8B9-4658-A3C6-AE023445D091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3CC79CB9-C8B9-4658-A3C6-AE023445D091}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3CC79CB9-C8B9-4658-A3C6-AE023445D091}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3CC79CB9-C8B9-4658-A3C6-AE023445D091}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,166 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Configuration;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.DirectoryServices;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class ADUtils
|
||||
{
|
||||
public static string ADUsername
|
||||
{
|
||||
get
|
||||
{
|
||||
return ConfigurationManager.AppSettings["AD.Username"];
|
||||
}
|
||||
}
|
||||
|
||||
public static string ADPassword
|
||||
{
|
||||
get
|
||||
{
|
||||
return ConfigurationManager.AppSettings["AD.Password"];
|
||||
}
|
||||
}
|
||||
|
||||
public static string ADRootDomain
|
||||
{
|
||||
get { return Global.ADRootDomain; }
|
||||
}
|
||||
|
||||
public static string PrimaryDomainController
|
||||
{
|
||||
get { return Global.PrimaryDomainController; }
|
||||
}
|
||||
|
||||
public static string RootOU
|
||||
{
|
||||
get { return Global.RootOU; }
|
||||
}
|
||||
|
||||
public static DirectoryEntry GetRootOU()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// append provider
|
||||
AppendProtocol(sb);
|
||||
AppendDomainController(sb);
|
||||
AppendOUPath(sb, RootOU);
|
||||
AppendDomainPath(sb, ADRootDomain);
|
||||
|
||||
DirectoryEntry de = GetADObject(sb.ToString());
|
||||
//ExchangeLog.LogEnd("GetRootOU");
|
||||
return de;
|
||||
}
|
||||
|
||||
private static void AppendProtocol(StringBuilder sb)
|
||||
{
|
||||
sb.Append("LDAP://");
|
||||
}
|
||||
|
||||
private static void AppendDomainController(StringBuilder sb)
|
||||
{
|
||||
string dc = PrimaryDomainController;
|
||||
if (dc.IndexOf(".") != -1)
|
||||
dc = dc.Substring(0, dc.IndexOf("."));
|
||||
sb.Append(dc + "/");
|
||||
}
|
||||
|
||||
private static void AppendOUPath(StringBuilder sb, string ou)
|
||||
{
|
||||
if (string.IsNullOrEmpty(ou))
|
||||
return;
|
||||
|
||||
string path = ou.Replace("/", "\\");
|
||||
string[] parts = path.Split('\\');
|
||||
for (int i = parts.Length - 1; i != -1; i--)
|
||||
sb.Append("OU=").Append(parts[i]).Append(",");
|
||||
}
|
||||
|
||||
private static void AppendDomainPath(StringBuilder sb, string domain)
|
||||
{
|
||||
if (string.IsNullOrEmpty(domain))
|
||||
return;
|
||||
|
||||
string[] parts = domain.Split('.');
|
||||
for (int i = 0; i < parts.Length; i++)
|
||||
{
|
||||
sb.Append("DC=").Append(parts[i]);
|
||||
|
||||
if (i < (parts.Length - 1))
|
||||
sb.Append(",");
|
||||
}
|
||||
}
|
||||
|
||||
private static DirectoryEntry GetADObject(string path)
|
||||
{
|
||||
DirectoryEntry de = null;
|
||||
de = new DirectoryEntry(path, ADUsername, ADPassword);
|
||||
de.RefreshCache();
|
||||
return de;
|
||||
}
|
||||
|
||||
public static string RemoveADPrefix(string path)
|
||||
{
|
||||
string dn = path;
|
||||
if (dn.ToUpper().StartsWith("LDAP://"))
|
||||
{
|
||||
dn = dn.Substring(7);
|
||||
}
|
||||
int index = dn.IndexOf("/");
|
||||
|
||||
if (index != -1)
|
||||
{
|
||||
dn = dn.Substring(index + 1);
|
||||
}
|
||||
return dn;
|
||||
}
|
||||
|
||||
public static string GetAddressListsContainer()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
AppendProtocol(sb);
|
||||
AppendDomainController(sb);
|
||||
sb.Append("CN=Microsoft Exchange,CN=Services,CN=Configuration,");
|
||||
AppendDomainPath(sb, ADRootDomain);
|
||||
DirectoryEntry exchEntry = GetADObject(sb.ToString());
|
||||
DirectoryEntry orgEntry = null;
|
||||
foreach (DirectoryEntry child in exchEntry.Children)
|
||||
{
|
||||
orgEntry = child;
|
||||
break;
|
||||
}
|
||||
string ret = "CN=Address Lists Container," + RemoveADPrefix(orgEntry.Path);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,327 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
/// <summary>
|
||||
/// Animated Icon.
|
||||
/// </summary>
|
||||
[ToolboxItem(true)]
|
||||
public class AnimatedIcon : System.Windows.Forms.UserControl
|
||||
{
|
||||
private Thread thread = null;
|
||||
//private ImageList imageList = null;
|
||||
private List<Image> images;
|
||||
private int currentFrame = 0;
|
||||
private int delayInterval = 50;
|
||||
private int pause = 0;
|
||||
private int loopCount = 0;
|
||||
private int currentLoop = 0;
|
||||
private int firstFrame = 0;
|
||||
private int lastFrame = 0;
|
||||
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
|
||||
/// <summary>Gets the <see cref="List"/> that contains
|
||||
/// the <see cref="Image"/> objects used to display animation.</summary>
|
||||
/// <value>The <see cref="List"/> that contains the <see cref="Image"/>
|
||||
/// objects used to display animated frames.</value>
|
||||
[Browsable(false)]
|
||||
public List<Image> Images
|
||||
{
|
||||
get
|
||||
{
|
||||
return images;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets delay in milliseconds between the frames.</summary>
|
||||
/// <value>The default value is 50 milliseconds.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(50), Description("Delay in milliseconds between the frames.")]
|
||||
|
||||
public int Delay
|
||||
{
|
||||
get { return delayInterval; }
|
||||
set
|
||||
{
|
||||
if( value != delayInterval )
|
||||
{
|
||||
delayInterval = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets pause in milliseconds after every loop.</summary>
|
||||
/// <value>The default value is 0 milliseconds.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(0), Description("Pause in milliseconds after the loop ends.")]
|
||||
|
||||
public int Pause
|
||||
{
|
||||
get { return pause; }
|
||||
set
|
||||
{
|
||||
if( value != pause )
|
||||
{
|
||||
pause = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets loop counter.</summary>
|
||||
/// <value>The default value is 0, i.e. infinitive loop.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(0), Description("Loop counter. 0 means infinitive loop.")]
|
||||
|
||||
public int LoopCount
|
||||
{
|
||||
get { return loopCount; }
|
||||
set
|
||||
{
|
||||
if( value != loopCount )
|
||||
{
|
||||
loopCount = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets the first frame of the animation.</summary>
|
||||
/// <value>The default value is 0.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(0), Description("First frame of the animation.")]
|
||||
|
||||
public int FirstFrame
|
||||
{
|
||||
get { return firstFrame; }
|
||||
set
|
||||
{
|
||||
if( value != firstFrame )
|
||||
{
|
||||
firstFrame = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Gets or sets the last frame of the animation.</summary>
|
||||
/// <value>The default value is 0.</value>
|
||||
[Category("Animated Icon")]
|
||||
[DefaultValue(0), Description("Last frame of the animation.")]
|
||||
|
||||
public int LastFrame
|
||||
{
|
||||
get { return lastFrame; }
|
||||
set
|
||||
{
|
||||
if( value != lastFrame )
|
||||
{
|
||||
lastFrame = Math.Abs( value );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>Initializes a new instance of the <b>AnimatedIcon</b> class.
|
||||
/// </summary>
|
||||
public AnimatedIcon()
|
||||
{
|
||||
CheckForIllegalCrossThreadCalls = false;
|
||||
InitializeComponent();
|
||||
images = new List<Image>();
|
||||
|
||||
this.SetStyle(ControlStyles.UserPaint, true);
|
||||
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
this.SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
this.SetStyle(ControlStyles.ResizeRedraw, true);
|
||||
}
|
||||
|
||||
#region Dispose
|
||||
/// <summary>Clean up any resources being used.</summary>
|
||||
/// <param name="disposing"><see langword="true"/> to release both managed
|
||||
/// and unmanaged resources; <see langword="false"/> to release
|
||||
/// only unmanaged resources.</param>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if( components != null )
|
||||
components.Dispose();
|
||||
|
||||
if( thread != null )
|
||||
thread.Abort();
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Component Designer generated code
|
||||
/// <summary>Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
//
|
||||
// AnimatedIcon
|
||||
//
|
||||
this.Name = "AnimatedIcon";
|
||||
this.Size = new System.Drawing.Size(16, 16);
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>Starts animation from the beginning.
|
||||
/// </summary>
|
||||
public void StartAnimation()
|
||||
{
|
||||
StopAnimation();
|
||||
CheckRange(); // Check the first and the last frames
|
||||
|
||||
thread = new Thread( new ThreadStart( threadFunc ) );
|
||||
thread.IsBackground = true;
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
/// <summary>Stops animation not changing current frame number.
|
||||
/// </summary>
|
||||
public void StopAnimation()
|
||||
{
|
||||
if( thread != null )
|
||||
{
|
||||
thread.Abort();
|
||||
thread = null;
|
||||
}
|
||||
currentLoop = 0;
|
||||
}
|
||||
|
||||
/// <summary>Displays the specified frame.</summary>
|
||||
/// <param name="frame">An index of the image stored in the <see cref="ImageList"/>.</param>
|
||||
public void ShowFrame(int frame)
|
||||
{
|
||||
StopAnimation();
|
||||
|
||||
if( frame >= 0 && frame < images.Count )
|
||||
currentFrame = frame;
|
||||
else
|
||||
currentFrame = 0;
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
/// <summary>Occurs when the control is redrawn.</summary>
|
||||
/// <param name="e">A <see cref="PaintEventArgs"/> that contains
|
||||
/// the event data.</param>
|
||||
/// <remarks>The <b>OnPaint</b> method draws current image from
|
||||
/// the <see cref="ImageList"/> if exists.</remarks>
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
// Draw a crossed rectangle if there is no frame to display
|
||||
|
||||
if( images == null ||
|
||||
currentFrame < 0 ||
|
||||
currentFrame >= images.Count )
|
||||
{
|
||||
if( this.Size.Width == 0 || this.Size.Height == 0 )
|
||||
return;
|
||||
|
||||
Pen pen = new Pen( SystemColors.ControlText );
|
||||
e.Graphics.DrawRectangle( pen, 0, 0, this.Size.Width-1, this.Size.Height-1 );
|
||||
e.Graphics.DrawLine( pen, 0, 0, this.Size.Width, this.Size.Height );
|
||||
e.Graphics.DrawLine( pen, 0, this.Size.Height-1, this.Size.Width-1, 0 );
|
||||
pen.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Draw the current frame
|
||||
|
||||
e.Graphics.DrawImage( images[currentFrame], 0, 0, this.Size.Width, this.Size.Height );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>The method to be invoked when the thread begins executing.
|
||||
/// </summary>
|
||||
private void threadFunc()
|
||||
{
|
||||
bool wasPause = false;
|
||||
currentFrame = firstFrame;
|
||||
|
||||
while( thread != null && thread.IsAlive )
|
||||
{
|
||||
Refresh(); // Redraw the current frame
|
||||
wasPause = false;
|
||||
|
||||
if( images != null )
|
||||
{
|
||||
currentFrame++;
|
||||
if( currentFrame > lastFrame ||
|
||||
currentFrame >= images.Count )
|
||||
{
|
||||
if( pause > 0 ) // Sleep after every loop
|
||||
{
|
||||
Thread.Sleep( pause );
|
||||
wasPause = true;
|
||||
}
|
||||
|
||||
currentFrame = firstFrame;
|
||||
if( loopCount != 0 ) // 0 is infinitive loop
|
||||
{
|
||||
currentLoop++;
|
||||
}
|
||||
}
|
||||
|
||||
if( loopCount != 0 && currentLoop >= loopCount )
|
||||
{
|
||||
StopAnimation(); // The loop is completed
|
||||
}
|
||||
}
|
||||
if( !wasPause ) // That prevents summation (pause + delayInterval)
|
||||
Thread.Sleep( delayInterval );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Check if the last frame is no less than the first one.
|
||||
/// Otherwise, swap them.</summary>
|
||||
private void CheckRange()
|
||||
{
|
||||
if( lastFrame < firstFrame )
|
||||
{
|
||||
int tmp = firstFrame;
|
||||
firstFrame = lastFrame;
|
||||
lastFrame = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<!-- Connection strings -->
|
||||
<connectionStrings>
|
||||
<add name="EnterpriseServer" connectionString="Server=(local)\sqlexpress;Database=WebsitePanel;uid=WebsitePanel;pwd=password" providerName="System.Data.SqlClient"/>
|
||||
</connectionStrings>
|
||||
<appSettings>
|
||||
<add key="AD.Username" value="DOMAIN\Administrator"/>
|
||||
<add key="AD.Password" value="password"/>
|
||||
<!-- Encryption util settings -->
|
||||
<add key="WebsitePanel.CryptoKey" value="q26125qpakxmxmk477wb"/>
|
||||
<!-- Encryption -->
|
||||
<add key="WebsitePanel.EncryptionEnabled" value="true"/>
|
||||
<!-- Web Applications -->
|
||||
<add key="WebsitePanel.EnterpriseServer.WebApplicationsPath" value="~/WebApplications"/>
|
||||
<!-- Communication settings -->
|
||||
<!-- Maximum waiting time when sending request to the remote server
|
||||
The value is in seconds. "-1" - infinite. -->
|
||||
<add key="WebsitePanel.EnterpriseServer.ServerRequestTimeout" value="3600"/>
|
||||
<add key="ClientSettingsProvider.ServiceUri" value=""/>
|
||||
</appSettings>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
351
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ApplicationForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,351 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class ApplicationForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ApplicationForm));
|
||||
this.lblSpace = new System.Windows.Forms.Label();
|
||||
this.txtSpace = new System.Windows.Forms.TextBox();
|
||||
this.btnBrowseSpace = new System.Windows.Forms.Button();
|
||||
this.btnBrowseOU = new System.Windows.Forms.Button();
|
||||
this.txtOU = new System.Windows.Forms.TextBox();
|
||||
this.lblOU = new System.Windows.Forms.Label();
|
||||
this.grpOrganization = new System.Windows.Forms.GroupBox();
|
||||
this.btnSelectAll = new System.Windows.Forms.Button();
|
||||
this.btnDeselectAll = new System.Windows.Forms.Button();
|
||||
this.rbCreateAndImport = new System.Windows.Forms.RadioButton();
|
||||
this.rbImport = new System.Windows.Forms.RadioButton();
|
||||
this.lvUsers = new System.Windows.Forms.ListView();
|
||||
this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
|
||||
this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
|
||||
this.columnHeader3 = new System.Windows.Forms.ColumnHeader();
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
this.txtOrgName = new System.Windows.Forms.TextBox();
|
||||
this.lblOrgName = new System.Windows.Forms.Label();
|
||||
this.txtOrgId = new System.Windows.Forms.TextBox();
|
||||
this.lblOrgId = new System.Windows.Forms.Label();
|
||||
this.btnStart = new System.Windows.Forms.Button();
|
||||
this.progressBar = new System.Windows.Forms.ProgressBar();
|
||||
this.lblMessage = new System.Windows.Forms.Label();
|
||||
this.grpOrganization.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lblSpace
|
||||
//
|
||||
this.lblSpace.Location = new System.Drawing.Point(15, 15);
|
||||
this.lblSpace.Name = "lblSpace";
|
||||
this.lblSpace.Size = new System.Drawing.Size(125, 23);
|
||||
this.lblSpace.TabIndex = 0;
|
||||
this.lblSpace.Text = "Target Hosting Space:";
|
||||
//
|
||||
// txtSpace
|
||||
//
|
||||
this.txtSpace.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtSpace.Location = new System.Drawing.Point(146, 12);
|
||||
this.txtSpace.Name = "txtSpace";
|
||||
this.txtSpace.ReadOnly = true;
|
||||
this.txtSpace.Size = new System.Drawing.Size(429, 20);
|
||||
this.txtSpace.TabIndex = 1;
|
||||
this.txtSpace.TextChanged += new System.EventHandler(this.OnDataChanged);
|
||||
//
|
||||
// btnBrowseSpace
|
||||
//
|
||||
this.btnBrowseSpace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnBrowseSpace.Location = new System.Drawing.Point(581, 10);
|
||||
this.btnBrowseSpace.Name = "btnBrowseSpace";
|
||||
this.btnBrowseSpace.Size = new System.Drawing.Size(24, 22);
|
||||
this.btnBrowseSpace.TabIndex = 2;
|
||||
this.btnBrowseSpace.Text = "...";
|
||||
this.btnBrowseSpace.UseVisualStyleBackColor = true;
|
||||
this.btnBrowseSpace.Click += new System.EventHandler(this.OnBrowseSpace);
|
||||
//
|
||||
// btnBrowseOU
|
||||
//
|
||||
this.btnBrowseOU.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnBrowseOU.Location = new System.Drawing.Point(581, 36);
|
||||
this.btnBrowseOU.Name = "btnBrowseOU";
|
||||
this.btnBrowseOU.Size = new System.Drawing.Size(24, 22);
|
||||
this.btnBrowseOU.TabIndex = 5;
|
||||
this.btnBrowseOU.Text = "...";
|
||||
this.btnBrowseOU.UseVisualStyleBackColor = true;
|
||||
this.btnBrowseOU.Click += new System.EventHandler(this.OnBrowseOU);
|
||||
//
|
||||
// txtOU
|
||||
//
|
||||
this.txtOU.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtOU.Location = new System.Drawing.Point(146, 38);
|
||||
this.txtOU.Name = "txtOU";
|
||||
this.txtOU.ReadOnly = true;
|
||||
this.txtOU.Size = new System.Drawing.Size(429, 20);
|
||||
this.txtOU.TabIndex = 4;
|
||||
this.txtOU.TextChanged += new System.EventHandler(this.OnDataChanged);
|
||||
//
|
||||
// lblOU
|
||||
//
|
||||
this.lblOU.Location = new System.Drawing.Point(15, 41);
|
||||
this.lblOU.Name = "lblOU";
|
||||
this.lblOU.Size = new System.Drawing.Size(125, 23);
|
||||
this.lblOU.TabIndex = 3;
|
||||
this.lblOU.Text = "Organizational Unit:";
|
||||
//
|
||||
// grpOrganization
|
||||
//
|
||||
this.grpOrganization.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.grpOrganization.Controls.Add(this.btnSelectAll);
|
||||
this.grpOrganization.Controls.Add(this.btnDeselectAll);
|
||||
this.grpOrganization.Controls.Add(this.rbCreateAndImport);
|
||||
this.grpOrganization.Controls.Add(this.rbImport);
|
||||
this.grpOrganization.Controls.Add(this.lvUsers);
|
||||
this.grpOrganization.Controls.Add(this.txtOrgName);
|
||||
this.grpOrganization.Controls.Add(this.lblOrgName);
|
||||
this.grpOrganization.Controls.Add(this.txtOrgId);
|
||||
this.grpOrganization.Controls.Add(this.lblOrgId);
|
||||
this.grpOrganization.Location = new System.Drawing.Point(15, 67);
|
||||
this.grpOrganization.Name = "grpOrganization";
|
||||
this.grpOrganization.Size = new System.Drawing.Size(590, 328);
|
||||
this.grpOrganization.TabIndex = 6;
|
||||
this.grpOrganization.TabStop = false;
|
||||
//
|
||||
// btnSelectAll
|
||||
//
|
||||
this.btnSelectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSelectAll.Location = new System.Drawing.Point(417, 282);
|
||||
this.btnSelectAll.Name = "btnSelectAll";
|
||||
this.btnSelectAll.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnSelectAll.TabIndex = 7;
|
||||
this.btnSelectAll.Text = "Select All";
|
||||
this.btnSelectAll.UseVisualStyleBackColor = true;
|
||||
this.btnSelectAll.Click += new System.EventHandler(this.OnSelectAllClick);
|
||||
//
|
||||
// btnDeselectAll
|
||||
//
|
||||
this.btnDeselectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnDeselectAll.Location = new System.Drawing.Point(498, 282);
|
||||
this.btnDeselectAll.Name = "btnDeselectAll";
|
||||
this.btnDeselectAll.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnDeselectAll.TabIndex = 8;
|
||||
this.btnDeselectAll.Text = "Unselect All";
|
||||
this.btnDeselectAll.UseVisualStyleBackColor = true;
|
||||
this.btnDeselectAll.Click += new System.EventHandler(this.OnDeselectAllClick);
|
||||
//
|
||||
// rbCreateAndImport
|
||||
//
|
||||
this.rbCreateAndImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.rbCreateAndImport.AutoSize = true;
|
||||
this.rbCreateAndImport.Checked = true;
|
||||
this.rbCreateAndImport.Enabled = false;
|
||||
this.rbCreateAndImport.Location = new System.Drawing.Point(19, 282);
|
||||
this.rbCreateAndImport.Name = "rbCreateAndImport";
|
||||
this.rbCreateAndImport.Size = new System.Drawing.Size(261, 17);
|
||||
this.rbCreateAndImport.TabIndex = 5;
|
||||
this.rbCreateAndImport.TabStop = true;
|
||||
this.rbCreateAndImport.Text = "Create new organization and import selected items";
|
||||
this.rbCreateAndImport.UseVisualStyleBackColor = true;
|
||||
this.rbCreateAndImport.CheckedChanged += new System.EventHandler(this.OnCheckedChanged);
|
||||
//
|
||||
// rbImport
|
||||
//
|
||||
this.rbImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.rbImport.AutoSize = true;
|
||||
this.rbImport.Enabled = false;
|
||||
this.rbImport.Location = new System.Drawing.Point(19, 305);
|
||||
this.rbImport.Name = "rbImport";
|
||||
this.rbImport.Size = new System.Drawing.Size(237, 17);
|
||||
this.rbImport.TabIndex = 6;
|
||||
this.rbImport.Text = "Import selected items for existing organization";
|
||||
this.rbImport.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lvUsers
|
||||
//
|
||||
this.lvUsers.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lvUsers.CheckBoxes = true;
|
||||
this.lvUsers.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.columnHeader1,
|
||||
this.columnHeader2,
|
||||
this.columnHeader3});
|
||||
this.lvUsers.FullRowSelect = true;
|
||||
this.lvUsers.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||
this.lvUsers.Location = new System.Drawing.Point(19, 74);
|
||||
this.lvUsers.MultiSelect = false;
|
||||
this.lvUsers.Name = "lvUsers";
|
||||
this.lvUsers.Size = new System.Drawing.Size(554, 202);
|
||||
this.lvUsers.SmallImageList = this.images;
|
||||
this.lvUsers.TabIndex = 4;
|
||||
this.lvUsers.UseCompatibleStateImageBehavior = false;
|
||||
this.lvUsers.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// columnHeader1
|
||||
//
|
||||
this.columnHeader1.Text = "Name";
|
||||
this.columnHeader1.Width = 229;
|
||||
//
|
||||
// columnHeader2
|
||||
//
|
||||
this.columnHeader2.Text = "Email";
|
||||
this.columnHeader2.Width = 163;
|
||||
//
|
||||
// columnHeader3
|
||||
//
|
||||
this.columnHeader3.Text = "Type";
|
||||
this.columnHeader3.Width = 152;
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "UserSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(1, "contact.ico");
|
||||
this.images.Images.SetKeyName(2, "DL.ico");
|
||||
//
|
||||
// txtOrgName
|
||||
//
|
||||
this.txtOrgName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtOrgName.Location = new System.Drawing.Point(155, 45);
|
||||
this.txtOrgName.Name = "txtOrgName";
|
||||
this.txtOrgName.Size = new System.Drawing.Size(418, 20);
|
||||
this.txtOrgName.TabIndex = 3;
|
||||
//
|
||||
// lblOrgName
|
||||
//
|
||||
this.lblOrgName.Location = new System.Drawing.Point(19, 48);
|
||||
this.lblOrgName.Name = "lblOrgName";
|
||||
this.lblOrgName.Size = new System.Drawing.Size(130, 23);
|
||||
this.lblOrgName.TabIndex = 2;
|
||||
this.lblOrgName.Text = "Organization Name:";
|
||||
//
|
||||
// txtOrgId
|
||||
//
|
||||
this.txtOrgId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtOrgId.Location = new System.Drawing.Point(155, 19);
|
||||
this.txtOrgId.Name = "txtOrgId";
|
||||
this.txtOrgId.ReadOnly = true;
|
||||
this.txtOrgId.Size = new System.Drawing.Size(418, 20);
|
||||
this.txtOrgId.TabIndex = 1;
|
||||
//
|
||||
// lblOrgId
|
||||
//
|
||||
this.lblOrgId.Location = new System.Drawing.Point(19, 22);
|
||||
this.lblOrgId.Name = "lblOrgId";
|
||||
this.lblOrgId.Size = new System.Drawing.Size(130, 23);
|
||||
this.lblOrgId.TabIndex = 0;
|
||||
this.lblOrgId.Text = "Organization Id:";
|
||||
//
|
||||
// btnStart
|
||||
//
|
||||
this.btnStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnStart.Location = new System.Drawing.Point(527, 461);
|
||||
this.btnStart.Name = "btnStart";
|
||||
this.btnStart.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnStart.TabIndex = 9;
|
||||
this.btnStart.Text = "Start";
|
||||
this.btnStart.UseVisualStyleBackColor = true;
|
||||
this.btnStart.Click += new System.EventHandler(this.OnImportClick);
|
||||
//
|
||||
// progressBar
|
||||
//
|
||||
this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.progressBar.Location = new System.Drawing.Point(15, 427);
|
||||
this.progressBar.Name = "progressBar";
|
||||
this.progressBar.Size = new System.Drawing.Size(587, 23);
|
||||
this.progressBar.TabIndex = 8;
|
||||
//
|
||||
// lblMessage
|
||||
//
|
||||
this.lblMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lblMessage.Location = new System.Drawing.Point(12, 401);
|
||||
this.lblMessage.Name = "lblMessage";
|
||||
this.lblMessage.Size = new System.Drawing.Size(593, 23);
|
||||
this.lblMessage.TabIndex = 7;
|
||||
//
|
||||
// ApplicationForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(617, 496);
|
||||
this.Controls.Add(this.lblMessage);
|
||||
this.Controls.Add(this.progressBar);
|
||||
this.Controls.Add(this.btnStart);
|
||||
this.Controls.Add(this.grpOrganization);
|
||||
this.Controls.Add(this.btnBrowseOU);
|
||||
this.Controls.Add(this.txtOU);
|
||||
this.Controls.Add(this.lblOU);
|
||||
this.Controls.Add(this.btnBrowseSpace);
|
||||
this.Controls.Add(this.txtSpace);
|
||||
this.Controls.Add(this.lblSpace);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MinimumSize = new System.Drawing.Size(630, 500);
|
||||
this.Name = "ApplicationForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "WebsitePanel Enterprise Import Tool";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnFormClosing);
|
||||
this.grpOrganization.ResumeLayout(false);
|
||||
this.grpOrganization.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label lblSpace;
|
||||
private System.Windows.Forms.TextBox txtSpace;
|
||||
private System.Windows.Forms.Button btnBrowseSpace;
|
||||
private System.Windows.Forms.Button btnBrowseOU;
|
||||
private System.Windows.Forms.TextBox txtOU;
|
||||
private System.Windows.Forms.Label lblOU;
|
||||
private System.Windows.Forms.GroupBox grpOrganization;
|
||||
private System.Windows.Forms.TextBox txtOrgId;
|
||||
private System.Windows.Forms.Label lblOrgId;
|
||||
private System.Windows.Forms.TextBox txtOrgName;
|
||||
private System.Windows.Forms.Label lblOrgName;
|
||||
private System.Windows.Forms.ListView lvUsers;
|
||||
private System.Windows.Forms.ColumnHeader columnHeader1;
|
||||
private System.Windows.Forms.ImageList images;
|
||||
private System.Windows.Forms.ColumnHeader columnHeader2;
|
||||
private System.Windows.Forms.ColumnHeader columnHeader3;
|
||||
internal System.Windows.Forms.Button btnStart;
|
||||
internal System.Windows.Forms.ProgressBar progressBar;
|
||||
internal System.Windows.Forms.Label lblMessage;
|
||||
private System.Windows.Forms.RadioButton rbCreateAndImport;
|
||||
private System.Windows.Forms.RadioButton rbImport;
|
||||
internal System.Windows.Forms.Button btnSelectAll;
|
||||
internal System.Windows.Forms.Button btnDeselectAll;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,333 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Specialized;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Reflection;
|
||||
|
||||
using System.DirectoryServices;
|
||||
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public partial class ApplicationForm : BaseForm
|
||||
{
|
||||
private string username;
|
||||
private string password;
|
||||
private OrganizationImporter importer;
|
||||
internal bool ImportStarted = false;
|
||||
|
||||
|
||||
public ApplicationForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
CheckForIllegalCrossThreadCalls = false;
|
||||
}
|
||||
|
||||
public void InitializeForm(string username, string password)
|
||||
{
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
UserInfo info = UserController.GetUser(username);
|
||||
SecurityContext.SetThreadPrincipal(info);
|
||||
|
||||
importer = new OrganizationImporter();
|
||||
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
this.Text += " v" + assembly.GetName().Version.ToString(3);
|
||||
UpdateForm();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void OnBrowseSpace(object sender, EventArgs e)
|
||||
{
|
||||
SelectSpace();
|
||||
}
|
||||
|
||||
private void SelectSpace()
|
||||
{
|
||||
SpaceForm form = new SpaceForm();
|
||||
form.InitializeForm(username, password);
|
||||
if (form.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
Global.Space = form.SelectedSpace;
|
||||
txtSpace.Text = Global.Space.PackageName;
|
||||
LoadSpaceData(Global.Space);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadSpaceData(PackageInfo packageInfo)
|
||||
{
|
||||
int serviceId = PackageController.GetPackageServiceId(packageInfo.PackageId, ResourceGroups.HostedOrganizations);
|
||||
ServiceInfo serviceInfo = ServerController.GetServiceInfo(serviceId);
|
||||
StringDictionary serviceSettings = ServerController.GetServiceSettingsAdmin(serviceId);
|
||||
Global.RootOU = serviceSettings["RootOU"];
|
||||
Global.PrimaryDomainController = serviceSettings["PrimaryDomainController"];
|
||||
Global.TempDomain = serviceSettings["TempDomain"];
|
||||
ServerInfo serverInfo = ServerController.GetServerById(serviceInfo.ServerId);
|
||||
Global.ADRootDomain = serverInfo.ADRootDomain;
|
||||
}
|
||||
|
||||
private void OnBrowseOU(object sender, EventArgs e)
|
||||
{
|
||||
SelectOU();
|
||||
}
|
||||
|
||||
private void SelectOU()
|
||||
{
|
||||
if (string.IsNullOrEmpty(txtSpace.Text))
|
||||
{
|
||||
ShowWarning("Please select hosting space first.");
|
||||
return;
|
||||
}
|
||||
OUForm form = new OUForm();
|
||||
form.InitializeForm();
|
||||
if (form.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
Global.OrgDirectoryEntry = form.DirectoryEntry;
|
||||
string orgId = (string)Global.OrgDirectoryEntry.Properties["name"].Value;
|
||||
txtOU.Text = form.DirectoryEntry.Path;
|
||||
Global.OrganizationId = orgId;
|
||||
|
||||
|
||||
LoadOrganizationData(Global.OrgDirectoryEntry);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadOrganizationData(DirectoryEntry parent)
|
||||
{
|
||||
string orgId = (string)parent.Properties["name"].Value;
|
||||
txtOrgId.Text = orgId;
|
||||
|
||||
Organization org = OrganizationController.GetOrganizationById(orgId);
|
||||
if (org != null)
|
||||
{
|
||||
rbCreateAndImport.Checked = false;
|
||||
rbImport.Checked = true;
|
||||
txtOrgName.Text = org.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
rbCreateAndImport.Checked = true;
|
||||
rbImport.Checked = false;
|
||||
txtOrgName.Text = orgId;
|
||||
}
|
||||
LoadOrganizationAccounts(parent);
|
||||
}
|
||||
|
||||
private void LoadOrganizationAccounts(DirectoryEntry ou)
|
||||
{
|
||||
lvUsers.Items.Clear();
|
||||
ListViewItem item = null;
|
||||
string email;
|
||||
string type;
|
||||
string name;
|
||||
PropertyValueCollection typeProp;
|
||||
string ouName = (string)ou.Properties["name"].Value;
|
||||
foreach (DirectoryEntry child in ou.Children)
|
||||
{
|
||||
type = null;
|
||||
email = null;
|
||||
name = (string)child.Properties["name"].Value;
|
||||
//account type
|
||||
typeProp = child.Properties["msExchRecipientDisplayType"];
|
||||
|
||||
switch (child.SchemaClassName)
|
||||
{
|
||||
case "user":
|
||||
email = (string)child.Properties["userPrincipalName"].Value;
|
||||
if (typeProp == null || typeProp.Value == null)
|
||||
{
|
||||
type = "User";
|
||||
}
|
||||
else
|
||||
{
|
||||
int mailboxType = (int)typeProp.Value;
|
||||
|
||||
switch (mailboxType)
|
||||
{
|
||||
case 1073741824:
|
||||
type = "User Mailbox";
|
||||
break;
|
||||
case 7:
|
||||
type = "Room Mailbox";
|
||||
break;
|
||||
case 8:
|
||||
type = "Equipment Mailbox";
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(type))
|
||||
{
|
||||
|
||||
item = new ListViewItem(name);
|
||||
item.ImageIndex = 0;
|
||||
item.Checked = true;
|
||||
item.Tag = child;
|
||||
item.SubItems.Add(email);
|
||||
item.SubItems.Add(type);
|
||||
lvUsers.Items.Add(item);
|
||||
}
|
||||
break;
|
||||
case "contact":
|
||||
if (typeProp != null && typeProp.Value != null && 6 == (int)typeProp.Value)
|
||||
{
|
||||
type = "Mail Contact";
|
||||
if (child.Properties["targetAddress"] != null)
|
||||
{
|
||||
email = (string)child.Properties["targetAddress"].Value;
|
||||
if (email != null && email.ToLower().StartsWith("smtp:"))
|
||||
email = email.Substring(5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(type))
|
||||
{
|
||||
|
||||
item = new ListViewItem(name);
|
||||
item.ImageIndex = 1;
|
||||
item.Checked = true;
|
||||
item.Tag = child;
|
||||
item.SubItems.Add(email);
|
||||
item.SubItems.Add(type);
|
||||
lvUsers.Items.Add(item);
|
||||
}
|
||||
break;
|
||||
case "group":
|
||||
if (child.Properties["mail"] != null)
|
||||
email = (string)child.Properties["mail"].Value;
|
||||
if ((typeProp != null) && (typeProp.Value != null) && (1073741833 == (int)typeProp.Value))
|
||||
{
|
||||
//Universal Security Group
|
||||
type = "Mail-Enabled Universal Security Group";
|
||||
//email
|
||||
PropertyValueCollection proxyAddresses = child.Properties["proxyAddresses"];
|
||||
if (proxyAddresses != null)
|
||||
{
|
||||
foreach (string address in proxyAddresses)
|
||||
{
|
||||
if (address != null && address.StartsWith("SMTP:"))
|
||||
{
|
||||
email = address.Substring(5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(type) && name != ouName)
|
||||
{
|
||||
|
||||
item = new ListViewItem(name);
|
||||
item.ImageIndex = 2;
|
||||
item.Checked = true;
|
||||
item.Tag = child;
|
||||
item.SubItems.Add(email);
|
||||
item.SubItems.Add(type);
|
||||
lvUsers.Items.Add(item);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void OnDataChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateForm();
|
||||
}
|
||||
|
||||
private void UpdateForm()
|
||||
{
|
||||
if (string.IsNullOrEmpty(txtSpace.Text) ||
|
||||
string.IsNullOrEmpty(txtOU.Text))
|
||||
{
|
||||
btnStart.Enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
btnStart.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnImportClick(object sender, EventArgs e)
|
||||
{
|
||||
List<DirectoryEntry> accounts = new List<DirectoryEntry>();
|
||||
foreach (ListViewItem item in lvUsers.Items)
|
||||
{
|
||||
if (item.Checked)
|
||||
{
|
||||
accounts.Add((DirectoryEntry)item.Tag);
|
||||
}
|
||||
}
|
||||
Global.SelectedAccounts = accounts;
|
||||
Global.OrganizationName = txtOrgName.Text;
|
||||
Global.ImportAccountsOnly = rbImport.Checked;
|
||||
Global.HasErrors = false;
|
||||
importer.Initialize(this.username, this);
|
||||
importer.Start();
|
||||
|
||||
}
|
||||
|
||||
private void OnFormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
e.Cancel = ImportStarted;
|
||||
}
|
||||
|
||||
private void OnCheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
txtOrgName.ReadOnly = !rbCreateAndImport.Checked;
|
||||
}
|
||||
|
||||
private void OnSelectAllClick(object sender, EventArgs e)
|
||||
{
|
||||
foreach (ListViewItem item in lvUsers.Items)
|
||||
{
|
||||
item.Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDeselectAllClick(object sender, EventArgs e)
|
||||
{
|
||||
foreach (ListViewItem item in lvUsers.Items)
|
||||
{
|
||||
item.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class BaseForm : Form
|
||||
{
|
||||
public DialogResult ShowError(string text, Exception ex)
|
||||
{
|
||||
Log.WriteError(text, ex);
|
||||
return MessageBox.Show(this, text, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
|
||||
public DialogResult ShowWarning(string text)
|
||||
{
|
||||
return MessageBox.Show(this, text, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
}
|
||||
}
|
170
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/ConnectForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,170 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class ConnectForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
WebsitePanel.Import.Enterprise.LineBox lineBox;
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConnectForm));
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.btnConnect = new System.Windows.Forms.Button();
|
||||
this.pictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.txtUserName = new System.Windows.Forms.TextBox();
|
||||
this.lblUserName = new System.Windows.Forms.Label();
|
||||
this.lblPassword = new System.Windows.Forms.Label();
|
||||
this.txtPassword = new System.Windows.Forms.TextBox();
|
||||
this.animatedIcon = new WebsitePanel.Import.Enterprise.AnimatedIcon();
|
||||
lineBox = new WebsitePanel.Import.Enterprise.LineBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lineBox
|
||||
//
|
||||
lineBox.Location = new System.Drawing.Point(12, 147);
|
||||
lineBox.Name = "lineBox";
|
||||
lineBox.Size = new System.Drawing.Size(387, 2);
|
||||
lineBox.TabIndex = 8;
|
||||
lineBox.TabStop = false;
|
||||
lineBox.Text = "lineBox1";
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnCancel.Location = new System.Drawing.Point(323, 162);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 10;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Click += new System.EventHandler(this.OnCancelClick);
|
||||
//
|
||||
// btnConnect
|
||||
//
|
||||
this.btnConnect.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.btnConnect.Location = new System.Drawing.Point(242, 162);
|
||||
this.btnConnect.Name = "btnConnect";
|
||||
this.btnConnect.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnConnect.TabIndex = 9;
|
||||
this.btnConnect.Text = "&Connect";
|
||||
this.btnConnect.UseVisualStyleBackColor = true;
|
||||
this.btnConnect.Click += new System.EventHandler(this.OnConnectClick);
|
||||
//
|
||||
// pictureBox
|
||||
//
|
||||
this.pictureBox.Image = global::WebsitePanel.Import.Enterprise.Properties.Resources.ConnectLogo;
|
||||
this.pictureBox.Location = new System.Drawing.Point(0, 0);
|
||||
this.pictureBox.Name = "pictureBox";
|
||||
this.pictureBox.Size = new System.Drawing.Size(410, 67);
|
||||
this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pictureBox.TabIndex = 3;
|
||||
this.pictureBox.TabStop = false;
|
||||
//
|
||||
// txtUserName
|
||||
//
|
||||
this.txtUserName.Location = new System.Drawing.Point(146, 84);
|
||||
this.txtUserName.Name = "txtUserName";
|
||||
this.txtUserName.Size = new System.Drawing.Size(253, 20);
|
||||
this.txtUserName.TabIndex = 4;
|
||||
this.txtUserName.Text = "serveradmin";
|
||||
this.txtUserName.TextChanged += new System.EventHandler(this.OnUserNameTextChanged);
|
||||
//
|
||||
// lblUserName
|
||||
//
|
||||
this.lblUserName.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.lblUserName.Location = new System.Drawing.Point(11, 84);
|
||||
this.lblUserName.Name = "lblUserName";
|
||||
this.lblUserName.Size = new System.Drawing.Size(100, 21);
|
||||
this.lblUserName.TabIndex = 3;
|
||||
this.lblUserName.Text = "&User name:";
|
||||
//
|
||||
// lblPassword
|
||||
//
|
||||
this.lblPassword.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
||||
this.lblPassword.Location = new System.Drawing.Point(11, 112);
|
||||
this.lblPassword.Name = "lblPassword";
|
||||
this.lblPassword.Size = new System.Drawing.Size(100, 21);
|
||||
this.lblPassword.TabIndex = 5;
|
||||
this.lblPassword.Text = "&Password:";
|
||||
//
|
||||
// txtPassword
|
||||
//
|
||||
this.txtPassword.Location = new System.Drawing.Point(146, 112);
|
||||
this.txtPassword.Name = "txtPassword";
|
||||
this.txtPassword.PasswordChar = '*';
|
||||
this.txtPassword.Size = new System.Drawing.Size(253, 20);
|
||||
this.txtPassword.TabIndex = 6;
|
||||
this.txtPassword.Text = "serveradmin";
|
||||
//
|
||||
// animatedIcon
|
||||
//
|
||||
this.animatedIcon.Delay = 100;
|
||||
this.animatedIcon.Location = new System.Drawing.Point(0, 67);
|
||||
this.animatedIcon.Name = "animatedIcon";
|
||||
this.animatedIcon.Size = new System.Drawing.Size(410, 3);
|
||||
this.animatedIcon.TabIndex = 0;
|
||||
this.animatedIcon.TabStop = false;
|
||||
//
|
||||
// ConnectForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(410, 195);
|
||||
this.Controls.Add(this.animatedIcon);
|
||||
this.Controls.Add(this.txtPassword);
|
||||
this.Controls.Add(this.lblPassword);
|
||||
this.Controls.Add(this.txtUserName);
|
||||
this.Controls.Add(this.lblUserName);
|
||||
this.Controls.Add(this.pictureBox);
|
||||
this.Controls.Add(lineBox);
|
||||
this.Controls.Add(this.btnConnect);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "ConnectForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Connect to Server";
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.Button btnConnect;
|
||||
private System.Windows.Forms.PictureBox pictureBox;
|
||||
private System.Windows.Forms.TextBox txtUserName;
|
||||
private System.Windows.Forms.Label lblUserName;
|
||||
private System.Windows.Forms.Label lblPassword;
|
||||
private System.Windows.Forms.TextBox txtPassword;
|
||||
private AnimatedIcon animatedIcon;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,188 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.Threading;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public partial class ConnectForm : Form
|
||||
{
|
||||
private Thread connectThread;
|
||||
|
||||
public ConnectForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
if (DesignMode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
InitializeForm();
|
||||
UpdateFormState();
|
||||
}
|
||||
|
||||
private void InitializeForm()
|
||||
{
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage1);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage2);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage3);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage4);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage5);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage6);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage7);
|
||||
animatedIcon.Images.Add(WebsitePanel.Import.Enterprise.Properties.Resources.ProgressImage8);
|
||||
animatedIcon.LastFrame = 8;
|
||||
}
|
||||
|
||||
private void OnConnectClick(object sender, EventArgs e)
|
||||
{
|
||||
DisableForm();
|
||||
animatedIcon.StartAnimation();
|
||||
ThreadStart threadDelegate = new ThreadStart(Connect);
|
||||
connectThread = new Thread(threadDelegate);
|
||||
connectThread.Start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public string Username
|
||||
{
|
||||
get { return txtUserName.Text; }
|
||||
}
|
||||
|
||||
public string Password
|
||||
{
|
||||
get { return txtPassword.Text; }
|
||||
}
|
||||
|
||||
private void Connect()
|
||||
{
|
||||
int status = -1;
|
||||
try
|
||||
{
|
||||
status = UserController.AuthenticateUser(txtUserName.Text, txtPassword.Text, string.Empty);
|
||||
if (status == 0)
|
||||
{
|
||||
UserInfo userInfo = UserController.GetUser(txtUserName.Text);
|
||||
SecurityContext.SetThreadPrincipal(userInfo);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError("Authentication error", ex);
|
||||
status = -1;
|
||||
}
|
||||
finally
|
||||
{
|
||||
animatedIcon.StopAnimation();
|
||||
}
|
||||
|
||||
string errorMessage = "Check configuration settings.";
|
||||
if (status != 0)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case BusinessErrorCodes.ERROR_USER_WRONG_USERNAME:
|
||||
case BusinessErrorCodes.ERROR_USER_WRONG_PASSWORD:
|
||||
errorMessage = "Wrong username or password.";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_CANCELLED:
|
||||
errorMessage = "Account cancelled.";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_PENDING:
|
||||
errorMessage = "Account pending.";
|
||||
break;
|
||||
case -1:
|
||||
errorMessage = "Authentication error.";
|
||||
break;
|
||||
}
|
||||
MessageBox.Show(this,
|
||||
string.Format("Cannot connect to the Enterprise Server.\n{0}", errorMessage),
|
||||
Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
EnableForm();
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void DisableForm()
|
||||
{
|
||||
foreach(Control ctrl in Controls)
|
||||
{
|
||||
ctrl.Enabled = false;
|
||||
}
|
||||
btnCancel.Enabled = true;
|
||||
}
|
||||
|
||||
private void EnableForm()
|
||||
{
|
||||
foreach (Control ctrl in Controls)
|
||||
{
|
||||
ctrl.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateFormState()
|
||||
{
|
||||
btnConnect.Enabled = (txtUserName.Text.Length > 0 );
|
||||
}
|
||||
|
||||
private void OnCancelClick(object sender, EventArgs e)
|
||||
{
|
||||
if (connectThread != null)
|
||||
{
|
||||
connectThread.Abort();
|
||||
}
|
||||
this.DialogResult = DialogResult.Cancel;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void OnServerNameTextChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateFormState();
|
||||
}
|
||||
|
||||
private void OnUserNameTextChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateFormState();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,152 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="lineBox.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAUjgpAGM8IQBjQSkAY0UxAHNVQgB7WUIAc1lKAHthSgBzYVIAe3VrAMY0AADeUQgA51UIAPdV
|
||||
AAD3YRAA/20YAP9xIQD/dSEA93UpAP99MQCMZVIAhGlSAIxpUgCEaVoAjHFjAJR5awCceWsAAJYpAEq2
|
||||
awD/gjEA/4Y5AJSCawCchnMApYJjALWKawClhnMApYpzAPeCQgD/ikIA/5JKAP+WSgD/llIA95paAN6W
|
||||
cwDWmnsA95pjAP+eYwDnmnsA/6JjAP+iawD3pnMA/6p7AKWShACtloQArZqMALWWhAC1lowArZqUALWe
|
||||
lAC1opQAtaKcAL2mnAC1pqUAva6tAL2ypQC9sq0Avba1AMamlADWrpwA56aMAP+qhAD/roQA96aMAP+y
|
||||
jAD/rpQA77acAPeylAD/spQA/7acAMaupQDGsq0AzratAMa6rQDOuq0A1rqtAMa2tQDOurUAzr61AOe6
|
||||
rQD/vqUAzse9AN7DtQDWw70A/8OlAP/HpQD/x60A98e1APfLvQD3z70A/8u9AMDAwADGx8YAzsfGAM7P
|
||||
zgDWy8YA1s/OANbTxgDe084A1tPWANbX1gDe294A58/GAO/TxgD308YA/9PGAPfbzgDv39YA99/WAPfj
|
||||
3gD/494A3t/nAM77/wDn5+cA/+fnAP/r5wDn8+cA//PvAOf/9wDn//8A//v3AP/7/wD///8ASjAYAID2
|
||||
gnywDYN8/////6cNg3wPD4N8AQAAABwUjACkFIwAAAAFAAAAAAAA3P1/KAIAAEUAAADRwwEAcBOMAIAA
|
||||
EMBIFowAgPaCfOD5gnz/////AAAAAJv4gny8FIwAJcTmdwAAAAABAAAAAgAAADgWjAAYAAAAAAAAAKQU
|
||||
jABCAAAAAAAAAIgUjAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAABAYN8ANz9fxwAAAAAAAAAAgAAACQA
|
||||
GgJQnAgAAgAAAAAAAABQnAgABQAAAOAUjAAGG+R3AAEAAAAAAMAAAAAAAAAAAAIAAAAAAAAAAAAAACAW
|
||||
jACv1EoAoCnqAAAAAMAAAAAAFBaMAAIAAACAAAAAAAAAAHRVjADs9aYAAgAAAEM6XGNvbm5lY3QuaWNv
|
||||
AACYFYwASBWMAEp+SgAEBwkAmBWMAMjEOXeYxDl3BQAAAAQHCQACAAAAJAAAAAAAAAAAAAAAeLTpAHAA
|
||||
AABUIYJ8bfTmdwABAAAAAAAAAAAAAAAAAACcFYwAeLTpABYAAAAAAAAAjfTmdxYAAAA4FowAAQAAACAA
|
||||
AAAWAAAAAAAAABYAAACIFYwABAcJAEgWjACYt+Z3kPTmd/////+N9OZ3RtVKAAABAAB4tOkAFgAAAOwV
|
||||
jAAAAAAAAAAAABwcHBwcHBwcHBwAAAAAAAAcAAAAAAAAAAAcAAAAAAAAHAAAAAAAAAAAHAAAfTklGxcI
|
||||
BQSFQQAAABwAAFd+a2ZcRDgiIwIAHBwcHBxYgIF6hHFVREUDAAAcHBwAfV1XUDw3NSQVQQAAABwAAGdz
|
||||
XlpPS0YtTAYAQRgJAQpoTScpFBANCywWADp/dx0HbVovMiofEQwwGQA9g392Fm5gNEoxKB4PSRoAP4OD
|
||||
fBlvYkpfSC8oEk4hAEBsU1EgeWQuMysmEw5HNQBWhH1yNnuCeHZ0cmNhczsAQ3VwWT59b25qaWdnW1R9
|
||||
AGxCQD1SAAAAAAAAAAAAAAAAAAAAAPADAAD3+wAA9/sAAAA7AAAAIAAAADEAAAA7AAAAIAAAACAAAAAg
|
||||
AAAAIAAAACAAAAAgAAAAIAAAACAAAP//AAA=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class DataNode : TreeNode
|
||||
{
|
||||
private bool populated;
|
||||
public bool Populated
|
||||
{
|
||||
get
|
||||
{
|
||||
return populated;
|
||||
}
|
||||
set
|
||||
{
|
||||
populated = value;
|
||||
}
|
||||
}
|
||||
|
||||
private string nodeType;
|
||||
public string NodeType
|
||||
{
|
||||
get
|
||||
{
|
||||
return nodeType;
|
||||
}
|
||||
set
|
||||
{
|
||||
nodeType = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using System.DirectoryServices;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
class Global
|
||||
{
|
||||
private static string rootOU;
|
||||
public static string RootOU
|
||||
{
|
||||
get { return rootOU; }
|
||||
set { rootOU = value; }
|
||||
}
|
||||
|
||||
private static string primaryDomainController;
|
||||
public static string PrimaryDomainController
|
||||
{
|
||||
get { return primaryDomainController; }
|
||||
set { primaryDomainController = value; }
|
||||
}
|
||||
|
||||
private static string aDRootDomain;
|
||||
|
||||
public static string ADRootDomain
|
||||
{
|
||||
get { return aDRootDomain; }
|
||||
set { aDRootDomain = value; }
|
||||
}
|
||||
|
||||
public static PackageInfo Space;
|
||||
public static string TempDomain;
|
||||
|
||||
public static string MailboxCluster;
|
||||
public static string StorageGroup;
|
||||
public static string MailboxDatabase;
|
||||
public static string KeepDeletedMailboxesDays;
|
||||
public static string KeepDeletedItemsDays;
|
||||
public static DirectoryEntry OrgDirectoryEntry;
|
||||
public static List<DirectoryEntry> SelectedAccounts;
|
||||
public static string OrganizationId;
|
||||
public static string OrganizationName;
|
||||
public static int ItemId;
|
||||
public static string ErrorMessage;
|
||||
public static bool ImportAccountsOnly;
|
||||
public static bool HasErrors;
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.DirectoryServices;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public enum ActionTypes
|
||||
{
|
||||
None,
|
||||
ImportOrganization,
|
||||
ImportOrganizationDomain,
|
||||
ImportMailbox,
|
||||
ImportContact,
|
||||
ImportGroup
|
||||
}
|
||||
|
||||
public class ImportAction
|
||||
{
|
||||
public ImportAction(ActionTypes type)
|
||||
{
|
||||
this.ActionType = type;
|
||||
}
|
||||
|
||||
private ActionTypes actionType;
|
||||
|
||||
public ActionTypes ActionType
|
||||
{
|
||||
get { return actionType; }
|
||||
set { actionType = value; }
|
||||
}
|
||||
|
||||
private string name;
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return name; }
|
||||
set { name = value; }
|
||||
}
|
||||
|
||||
private string description;
|
||||
|
||||
public string Description
|
||||
{
|
||||
get { return description; }
|
||||
set { description = value; }
|
||||
}
|
||||
|
||||
private DirectoryEntry entry;
|
||||
|
||||
public DirectoryEntry DirectoryEntry
|
||||
{
|
||||
get { return entry; }
|
||||
set { entry = value; }
|
||||
}
|
||||
|
||||
private string path;
|
||||
|
||||
public string Path
|
||||
{
|
||||
get { return path; }
|
||||
set { path = value; }
|
||||
}
|
||||
|
||||
private string userName;
|
||||
|
||||
public string UserName
|
||||
{
|
||||
get { return userName; }
|
||||
set { userName = value; }
|
||||
}
|
||||
}
|
||||
}
|
36
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/LineBox.Designer.cs
generated
Normal file
|
@ -0,0 +1,36 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class LineBox
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,96 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
/// <summary>
|
||||
/// 3D line box.
|
||||
/// </summary>
|
||||
[ToolboxItem(true)]
|
||||
public partial class LineBox : Control
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the LineBox class.
|
||||
/// </summary>
|
||||
public LineBox() : base()
|
||||
{
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.FixedHeight, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
SetStyle(ControlStyles.ResizeRedraw, true);
|
||||
SetStyle(ControlStyles.StandardClick, false);
|
||||
SetStyle(ControlStyles.Selectable, false);
|
||||
this.TabStop = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raises the Paint event.
|
||||
/// </summary>
|
||||
/// <param name="e">A PaintEventArgs that contains the event data.</param>
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
Graphics graphics = e.Graphics;
|
||||
Rectangle rectangle = this.ClientRectangle;
|
||||
Pen lightPen = new Pen(ControlPaint.Light(this.BackColor, 1));
|
||||
Pen darkPen = new Pen(ControlPaint.Dark(this.BackColor, 0));
|
||||
graphics.DrawLine(darkPen, rectangle.X, rectangle.Y, rectangle.X+rectangle.Width, rectangle.Y);
|
||||
graphics.DrawLine(lightPen, rectangle.X, rectangle.Y+1, rectangle.X+rectangle.Width, rectangle.Y+1);
|
||||
base.OnPaint(e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the default size of the control.
|
||||
/// </summary>
|
||||
protected override Size DefaultSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Size(10, 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Performs the work of setting the specified bounds of this control.
|
||||
/// </summary>
|
||||
/// <param name="x">The new Left property value of the control.</param>
|
||||
/// <param name="y">The new Right property value of the control.</param>
|
||||
/// <param name="width">The new Width property value of the control.</param>
|
||||
/// <param name="height">The new Height property value of the control.</param>
|
||||
/// <param name="specified">A bitwise combination of the BoundsSpecified values.</param>
|
||||
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
|
||||
{
|
||||
base.SetBoundsCore(x, y, width, 2, specified);
|
||||
}
|
||||
}
|
||||
}
|
205
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/Log.cs
Normal file
|
@ -0,0 +1,205 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
/// <summary>
|
||||
/// Installer Log.
|
||||
/// </summary>
|
||||
public sealed class Log
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the class.
|
||||
/// </summary>
|
||||
private Log()
|
||||
{
|
||||
}
|
||||
|
||||
private static string logFile = "WebsitePanel.Import.Enterprise.log";
|
||||
|
||||
/// <summary>
|
||||
/// Initializes trace listeners.
|
||||
/// </summary>
|
||||
static Log()
|
||||
{
|
||||
//FileStream fileLog = new FileStream(logFile, FileMode.Append);
|
||||
FileStream fileLog = new FileStream(logFile, FileMode.Create);
|
||||
TextWriterTraceListener fileListener = new TextWriterTraceListener(fileLog);
|
||||
fileListener.TraceOutputOptions = TraceOptions.DateTime;
|
||||
Trace.UseGlobalLock = true;
|
||||
Trace.Listeners.Clear();
|
||||
Trace.Listeners.Add(fileListener);
|
||||
Trace.AutoFlush = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write error to the log.
|
||||
/// </summary>
|
||||
/// <param name="message">Error message.</param>
|
||||
/// <param name="ex">Exception.</param>
|
||||
internal static void WriteError(string message, Exception ex)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] ERROR: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
Trace.WriteLine(ex);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write error to the log.
|
||||
/// </summary>
|
||||
/// <param name="message">Error message.</param>
|
||||
internal static void WriteError(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] ERROR: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void Write(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] {1}", DateTime.Now, message);
|
||||
Trace.Write(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Write line to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteLine(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write info message to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteInfo(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] INFO: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write start message to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteStart(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] START: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write end message to log
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal static void WriteEnd(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
string line = string.Format("[{0:G}] END: {1}", DateTime.Now, message);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
internal static void WriteApplicationStart()
|
||||
{
|
||||
try
|
||||
{
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
string name = assembly.GetName().Name;
|
||||
string version = assembly.GetName().Version.ToString();
|
||||
string line = string.Format("[{0:G}] {1} {2} Started", DateTime.Now, name, version);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
internal static void WriteApplicationEnd()
|
||||
{
|
||||
try
|
||||
{
|
||||
Assembly assembly = Assembly.GetExecutingAssembly();
|
||||
string name = assembly.GetName().Name;
|
||||
string line = string.Format("[{0:G}] {1} Ended", DateTime.Now, name);
|
||||
Trace.WriteLine(line);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Opens notepad to view log file.
|
||||
/// </summary>
|
||||
public static void ShowLogFile()
|
||||
{
|
||||
try
|
||||
{
|
||||
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, logFile);
|
||||
Process.Start("notepad.exe", path);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
164
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/OUForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,164 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class OUForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Node3", 3, 3);
|
||||
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Node2", 2, 2, new System.Windows.Forms.TreeNode[] {
|
||||
treeNode1});
|
||||
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("Node1", 1, 1, new System.Windows.Forms.TreeNode[] {
|
||||
treeNode2});
|
||||
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("Node0", new System.Windows.Forms.TreeNode[] {
|
||||
treeNode3});
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OUForm));
|
||||
this.ouTree = new System.Windows.Forms.TreeView();
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
this.images2 = new System.Windows.Forms.ImageList(this.components);
|
||||
this.pnlButtons = new System.Windows.Forms.Panel();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.btnSelect = new System.Windows.Forms.Button();
|
||||
this.pnlButtons.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// ouTree
|
||||
//
|
||||
this.ouTree.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ouTree.ImageIndex = 2;
|
||||
this.ouTree.ImageList = this.images;
|
||||
this.ouTree.Location = new System.Drawing.Point(10, 10);
|
||||
this.ouTree.Name = "ouTree";
|
||||
treeNode1.ImageIndex = 3;
|
||||
treeNode1.Name = "Node3";
|
||||
treeNode1.SelectedImageIndex = 3;
|
||||
treeNode1.Text = "Node3";
|
||||
treeNode2.ImageIndex = 2;
|
||||
treeNode2.Name = "Node2";
|
||||
treeNode2.SelectedImageIndex = 2;
|
||||
treeNode2.Text = "Node2";
|
||||
treeNode3.ImageIndex = 1;
|
||||
treeNode3.Name = "Node1";
|
||||
treeNode3.SelectedImageIndex = 1;
|
||||
treeNode3.Text = "Node1";
|
||||
treeNode4.Name = "Node0";
|
||||
treeNode4.Text = "Node0";
|
||||
this.ouTree.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
||||
treeNode4});
|
||||
this.ouTree.SelectedImageIndex = 2;
|
||||
this.ouTree.ShowLines = false;
|
||||
this.ouTree.Size = new System.Drawing.Size(399, 319);
|
||||
this.ouTree.TabIndex = 0;
|
||||
this.ouTree.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.OnBeforeExpand);
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "");
|
||||
this.images.Images.SetKeyName(1, "OU.ico");
|
||||
this.images.Images.SetKeyName(2, "Folder.ico");
|
||||
this.images.Images.SetKeyName(3, "");
|
||||
this.images.Images.SetKeyName(4, "UserSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(5, "UsersSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(6, "");
|
||||
this.images.Images.SetKeyName(7, "");
|
||||
this.images.Images.SetKeyName(8, "contact1.ico");
|
||||
//
|
||||
// images2
|
||||
//
|
||||
this.images2.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images2.ImageStream")));
|
||||
this.images2.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images2.Images.SetKeyName(0, "UserSmallIcon.ico");
|
||||
this.images2.Images.SetKeyName(1, "UsersSmallIcon.ico");
|
||||
this.images2.Images.SetKeyName(2, "FolderSmallIcon.ico");
|
||||
this.images2.Images.SetKeyName(3, "SpaceSmallIcon.ico");
|
||||
//
|
||||
// pnlButtons
|
||||
//
|
||||
this.pnlButtons.Controls.Add(this.btnCancel);
|
||||
this.pnlButtons.Controls.Add(this.btnSelect);
|
||||
this.pnlButtons.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.pnlButtons.Location = new System.Drawing.Point(10, 329);
|
||||
this.pnlButtons.Name = "pnlButtons";
|
||||
this.pnlButtons.Size = new System.Drawing.Size(399, 32);
|
||||
this.pnlButtons.TabIndex = 1;
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(324, 9);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 1;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnSelect
|
||||
//
|
||||
this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSelect.Location = new System.Drawing.Point(243, 9);
|
||||
this.btnSelect.Name = "btnSelect";
|
||||
this.btnSelect.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnSelect.TabIndex = 0;
|
||||
this.btnSelect.Text = "Select";
|
||||
this.btnSelect.UseVisualStyleBackColor = true;
|
||||
this.btnSelect.Click += new System.EventHandler(this.OnSelectClick);
|
||||
//
|
||||
// OUForm
|
||||
//
|
||||
this.AcceptButton = this.btnSelect;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.btnCancel;
|
||||
this.ClientSize = new System.Drawing.Size(419, 371);
|
||||
this.Controls.Add(this.ouTree);
|
||||
this.Controls.Add(this.pnlButtons);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "OUForm";
|
||||
this.Padding = new System.Windows.Forms.Padding(10);
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Select Organizational Unit";
|
||||
this.pnlButtons.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TreeView ouTree;
|
||||
private System.Windows.Forms.Panel pnlButtons;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.Button btnSelect;
|
||||
private System.Windows.Forms.ImageList images2;
|
||||
private System.Windows.Forms.ImageList images;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,196 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using System.DirectoryServices;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public partial class OUForm : BaseForm
|
||||
{
|
||||
public const string OU = "organizationalUnit";
|
||||
public const string CONTAINER = "container";
|
||||
public const string COMPUTER = "computer";
|
||||
public const string USER = "user";
|
||||
public const string CONTACT = "contact";
|
||||
public const string GROUP = "group";
|
||||
public const string TMP = "Tmp";
|
||||
|
||||
public OUForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
}
|
||||
|
||||
public void InitializeForm()
|
||||
{
|
||||
PopulateRootNode();
|
||||
}
|
||||
|
||||
private void PopulateRootNode()
|
||||
{
|
||||
ouTree.Nodes.Clear();
|
||||
DirectoryEntry root = null;
|
||||
try
|
||||
{
|
||||
root = ADUtils.GetRootOU();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to load root OU.", ex);
|
||||
}
|
||||
if (root != null)
|
||||
{
|
||||
DataNode rootNode = AddTreeNode(null, root);
|
||||
rootNode.Expand();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBeforeExpand(object sender, TreeViewCancelEventArgs e)
|
||||
{
|
||||
DataNode node = e.Node as DataNode;
|
||||
ExpandNode(node);
|
||||
}
|
||||
|
||||
private void ExpandNode(DataNode node)
|
||||
{
|
||||
if (node == null || node.Populated)
|
||||
return;
|
||||
|
||||
node.Nodes.Clear();
|
||||
ouTree.Update();
|
||||
try
|
||||
{
|
||||
DirectoryEntry parent = node.Tag as DirectoryEntry;
|
||||
|
||||
foreach (DirectoryEntry child in parent.Children)
|
||||
{
|
||||
AddTreeNode(node, child);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to load Active Directory data.", ex);
|
||||
}
|
||||
|
||||
node.Populated = true;
|
||||
node.Expand();
|
||||
}
|
||||
|
||||
private DataNode AddTreeNode(DataNode parentNode, DirectoryEntry entry)
|
||||
{
|
||||
bool hasChildren = true;
|
||||
DataNode node = new DataNode();
|
||||
node.Text = (string)entry.Properties["name"].Value;
|
||||
|
||||
node.NodeType = entry.SchemaClassName;
|
||||
int imageIndex = 2;
|
||||
switch (entry.SchemaClassName)
|
||||
{
|
||||
case OU:
|
||||
imageIndex = 1;
|
||||
break;
|
||||
case CONTAINER:
|
||||
imageIndex = 2;
|
||||
break;
|
||||
case COMPUTER:
|
||||
imageIndex = 3;
|
||||
break;
|
||||
case USER:
|
||||
imageIndex = 4;
|
||||
hasChildren = false;
|
||||
break;
|
||||
case CONTACT:
|
||||
imageIndex = 8;
|
||||
hasChildren = false;
|
||||
break;
|
||||
case GROUP:
|
||||
imageIndex = 5;
|
||||
hasChildren = false;
|
||||
break;
|
||||
default:
|
||||
imageIndex = 6;
|
||||
break;
|
||||
}
|
||||
|
||||
node.SelectedImageIndex = imageIndex;
|
||||
node.ImageIndex = imageIndex;
|
||||
node.Tag = entry;
|
||||
if (hasChildren)
|
||||
{
|
||||
node.Populated = false;
|
||||
DataNode tmpNode = new DataNode();
|
||||
tmpNode.Text = "Expanding...";
|
||||
tmpNode.SelectedImageIndex = 2;
|
||||
tmpNode.ImageIndex = 2;
|
||||
tmpNode.NodeType = TMP;
|
||||
node.Nodes.Add(tmpNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
node.Populated = true;
|
||||
}
|
||||
if (parentNode != null)
|
||||
parentNode.Nodes.Add(node);
|
||||
else
|
||||
ouTree.Nodes.Add(node);
|
||||
return node;
|
||||
}
|
||||
|
||||
private void OnSelectClick(object sender, EventArgs e)
|
||||
{
|
||||
DataNode node = ouTree.SelectedNode as DataNode;
|
||||
if (node == null || node.NodeType != OU)
|
||||
{
|
||||
ShowWarning("Please select Organizational Unit.");
|
||||
return;
|
||||
}
|
||||
|
||||
this.directoryEntry = (DirectoryEntry)node.Tag;
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private DirectoryEntry directoryEntry;
|
||||
|
||||
public DirectoryEntry DirectoryEntry
|
||||
{
|
||||
get { return directoryEntry; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,390 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="images.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>107, 17</value>
|
||||
</metadata>
|
||||
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADQ
|
||||
KQAAAk1TRnQBSQFMAgEBCQEAAQwBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABMAMAAQEBAAEgBgABMP8A/wAUAAG9AcMBtQH/AUkBSAFJAf8BSQFIAUkB/wFJAUgBSQH/AUkBSAFJ
|
||||
Af8BSQFIAUkB/wFJAUgBSQH/AUkBSAFJAf8BSQFIAUkB/wFJAUgBSQH/AUkBSAFJAf8BSQFIAUkB/wFJ
|
||||
AUgBSQH/AUkBSAFJAf8BSQFIAUkB/wFJAUgBSQH/wAABvQHDAbUL/wH3A/8B9wP/AfcD/wH3A/8B9wP/
|
||||
AfcD/wH3A/8B9wP/AfcD/wH3A/8B9wL/AfcB7wH/AZwBngGUAf/AAAG9AcMBtQX/AfcB7wHnAf8B9wHv
|
||||
AecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/
|
||||
AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8BnAGeAZQB/8AAAb0BwwG1Bf8B7wHfAdYB/wHW
|
||||
Ab4BrQH/AcYBsgGlAf8BxgGyAaUB/wHOAboBpQH/AecB3wHWAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHn
|
||||
Af8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHvAecB/wGcAZ4BlAH/wAABvQHDAbUF/wHGAa4BnBH/
|
||||
AdYBvgGtAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHvAecB/wH3Ae8B5wH/AfcB7wHnAf8B9wHv
|
||||
AecB/wGcAZ4BlAH/wAABvQHDAbUC/wL3Af8BxgGuAZwR/wHeAcMBvQH/AfcB7wHnAf8BxgGyAaUB/wHG
|
||||
AbIBpQH/AcYBsgGlAf8BxgGyAaUB/wHGAbIBpQH/AfcB7wHnAf8BnAGeAZQB/8AAAb0BwwG1Av8C9wH/
|
||||
Ac4BugGlEf8B3gHDAb0B/wH3Ae8B5wH/AdYBwwG1Af8B1gHHAb0B/wHWAccBvQH/AdYBxwG9Af8B1gHD
|
||||
AbUB/wH3Ae8B5wH/AZwBngGUAf/AAAG9AcMBtQP/AfcB/wHOAcMBtRH/AdYBxwG9Af8B9wHvAecB/wHW
|
||||
AcMBtQH/AdYBwwG1Af8B1gHDAbUB/wHWAccBvQH/AdYBwwG1Av8B9wHvAf8BnAGeAZQB/8AAAb0BwwG1
|
||||
Bf8B7wHfAdYB/wHGAbIBpQH/AcYBsgGlAf8BxgGyAaUB/wHGAa4BnAH/Ae8B3wHWAf8B9wHvAecB/wHG
|
||||
AbIBpQH/AcYBsgGlAf8BxgGyAaUB/wHGAbIBpQH/AcYBsgGlAv8B9wHvAf8BnAGWAZQB/8AAAb0BwwG1
|
||||
Bf8B9wHvAecC/wHvAecB/wH3Ae8B5wL/AfcB7wH/AfcB7wHnAf8B9wHvAecH/wH3Av8C9wH/A/cB/wH3
|
||||
AfMB7wH/AfcB7wHnA/8B9wH/AZwBngGUAf/AAAG9AcMBtR3/AZwBngGUAf8BvQG+AbUB/wG9Ab4BtQH/
|
||||
Ab0BwwG1Af8BvQG+AbUB/wG9Ab4BtQH/Ab0BvgG1Af8BvQG+AbUB/8AAAb0BwwG1Af8BvQHDAbUB/wG9
|
||||
AcMBtQH/Ab0BwwG1Af8BvQHDAbUB/wG9AcMBtQH/Ab0BwwG1Af8BvQHDAbUB/wG9AcMBtQH//wD/AP8A
|
||||
fwABgwFyAWcB/wGDAXIBZwH/AYMBcgFnAf9gAAMYASEDTQGRAVwBWwFYAcEBeAFvAWgB5gGSAX4BcgH8
|
||||
AXgBbwFoAeYBXAFbAVgBwQNMAZADKAE9LAADGAEhA00BkQFcAVsBWAHBAXgBbwFnAeYBlQF+AW8B/AF4
|
||||
AW8BZwHmAVwBWwFYAcEDTAGQAygBPRwAAYMBcgFnAf8BwwGbAW0B/wGrAYUBWwH/AYMBcgFnAf8cAANo
|
||||
Af8DaAH/OAADAwEEAWABXQFcAc0BqgGTAW8B/QHmAcsBtAH/Ad4BtwGQAf8B4wG7AZQB/wHgAboBlAH/
|
||||
Ac4BqwGIAf8BuAGZAXcB/wFfAV0BXAHFGAADCAELAxQBGwMWAR4DFAEcAw4BEwFgAV0BXAHNAa8BlAFs
|
||||
Af0B9AHVAboB/wHqAb4BkQH/AfABwgGVAf8B7QHBAZUB/wHYAbABiAH/Ab8BmwF1Af8BXwFdAVwBxRgA
|
||||
AYMBcgFnAf8BsQGZAYEB/wHcAbcBkgH/AZ4BhQFlAf8DZQH/GAABcwFZAeoB/wEjAQAB3wH/ATkBIgGm
|
||||
Af8DXwH/HAABXAFKAbIB/wEoAQEB2AH/EAADBAEFAV0BXAFaAb4BxgGlAYUB/wHmAdABvQH/AeIBvQGc
|
||||
Af8B5gG/AZcB/wHoAcMBnwH/AdsBugGYAf8BwAGfAXoB/wFkAV8BXgHMEAADFwEgA0gBhAFTAWEBWQHX
|
||||
AVEBawFhAeYBTwFsAV8B6AFYAWsBYQHmAVABXwFXAd8BrAGRAWwB/wHPAakBhAH/AfQB2gHEAf8B7wHE
|
||||
AZ8B/wH0AccBmQH/AfYBywGiAf8B5wHBAZoB/wHIAaIBeAH/AWQBXwFcAcwQAAGHAXcBbQH/AZMBeAFj
|
||||
Af8BogGMAXAB/wHGAakBiQH/AeoBxAGfAf8BvgGeAXYB/wFhAVQBRgH/A0wB/wNqAf8QAAFzAVkB6gH/
|
||||
ASMBAAHfAf8BKgEEAdsB/wFNAUgBZAH/A18B/xQAAUABIwHDAf8BIwEAAd8B/wFUAUABtgH/EwABAQFV
|
||||
AVQBUwGqAdkBsQGQAf8B5gHUAcEB/wHzAdIBswH/AeoBwQGYAf8B7QHMAaoB/wHgAcIBpAH/AcMBowGC
|
||||
Af8BbAFoAWIB3RAAAyoBQAFnAcMBmQH/AV8BwAGRAf8BVwG4AYkB/wFPAbIBhAH/AaABwQGoAf8BVQGn
|
||||
AXgB/wGvAaABbAH/AeUBtwGRAf8B9AHfAckC/wHdAbkB/wH4AckBmgH/AfwB1gGvAf8B7QHKAagB/wHL
|
||||
AacBgQH/AW8BZwFhAd0IAAGrAZABbgH/AasBkAFuAf8BwQGkAYoB/wHPAa8BkgH/Ad4BvwGdAf8B8wHO
|
||||
AaoC/wHnAcAB/wHkAcMBoAH/AcQBpgGFAf8BsQGQAWgB/wFpAVgBRwH/A1YB/xAAAXMBWQHqAf8BIwEA
|
||||
Ad8B/wE3ARYB0gH/A1kB/xAAATQBEgHNAf8BKAEBAdgB/wFUAUABtgH/FAADAQECAwEBAgGTAYcBeQHl
|
||||
AdABwwGyAf8ByAHDAbsB/wHXAbcBlwH/AesBxAGdAf8B4QG+AZsB/wHOAaYBegH/A00BkRAAAxcBIAFu
|
||||
AcoBoAH/AWUBwgGWAf8BYAG/AZMB/wFnAcABkQH/AdEB4wHGAf8BYAG1AZAB/wGNAasBcgL/AdIBpQH/
|
||||
AdoBywG4Af8B0QHLAcIB/wHiAb4BmQH/AfkBzAGgAf8B7gHGAZ0B/wHYAaoBeAH/A00BkQQAAasBkAFu
|
||||
Af8BuQGiAYkB/wHcAcMBqQH/AfwB3AG9Av8B7wHOAf8B4wG2AZMB/wGdATQBCwH/AcgBbwFBAv8B3QG4
|
||||
Av8B3gG6Af8B5AHFAaUB/wHDAaQBhgH/AYUBZwFOAf8DVwH/EAABdAFaAesB/wEjAQAB3wH/AUwBMgHD
|
||||
Af8DXgH/CAABNAESAc0B/wEoAQEB2AH/AVQBQAG2Af8fAAEBAx8BLQFeAl8ByQEWAUYBdwH/AUoBZAGD
|
||||
Af8BxgGmAYcB/wGZAYQBbwHuA04BmAMHAQoQAAMMARABdQG2AZcB+AFuAcoBoAH/AWQBxAGVAf8BggHD
|
||||
AagB/wGyAcoBvwH/AVsBqgGFAf8BSAGoAXIB/wJpAV8B2QFsAW4BdwH1AQUBPAF1Af8BQQFfAYIB/wHP
|
||||
AaoBhgH/AZwBhwFuAe4DTgGYAwcBCgQAAbgBpQGQAf8B4wHNAbcC/wHqAc0C/wHoAcsC/wH0AdcB/wHT
|
||||
AakBiAH/AUMCAAH/AWoBGQEAAv8B4QG8Av8B6AHHAv8B4wG/Af8B7QHNAa8B/wHCAaUBhwH/AWgBWgFM
|
||||
Af8DXwH/EAABdAFaAesB/wEjAQAB3wH/AUsBMQHDAf8BTQFKAVgB/wEtAQwBxwH/ASYBAAHXAf8BVAFA
|
||||
AbYB/x8AAQEDAAEBAxABFgNQAZoBKwFQAXcB/wEiAUwBdwH/A1UBtQM/AWwEAAMCAQMUAANKAYkBbwG9
|
||||
AZIB/AFiAbwBkQH/AVsBkQGyAf8BUgGAAaUB/wFAAXMBUwH9AVgBXwFcAckDTwGbATsBWQFzAfUBHQFI
|
||||
AXUB/wETAUMBdQH/AlQBVQG1Az8BbAQAAwIBAwG4AaUBkAH/AdkBxwG1Av8B7AHUAv8B6wHRAv8B5gHN
|
||||
Av8B6QHPAv8B7wHWAf8B3AG2AZkB/wHxAdEBtgL/Ae8B0gL/AeMBxQL/AeMBxQL/AeUBxgH/AeUBygGt
|
||||
Af8BtQGZAXYB/wM+Af8UAAFzAVkB6gH/ASMBAAHfAf8BJgEAAdcB/wElAQAB1gH/AWQBXAGMAf8gAAMD
|
||||
AQQDAgEDAyEBMAFYAWYBdQHjAUcBbgGbAf8BQgFnAZMB/wEwAVYBgQH/AyQBNiAAAzEBTgFgAZ0BigH5
|
||||
AUoBdwGoAf8BUgF2AY4B9ANTAagDKAE9AVgBZQF1AeMBPgFqAZ0B/wE4AWIBlAH/ASMBTwGAAf8DJAE2
|
||||
DAABygG4AakB/wH2AeIB0QL/AfEB3QL/AesB1gL/AeoB1QL/AesB1AL/AfsB5gH/AcsBiQFaAf8B6AG/
|
||||
AZ8D/wHpAv8B5wHNAv8B5AHKAv8B6AHLAf8B+wHhAcQB/wHWAbsBoAH/AVcBVQFSAf8YAAEpAQIB2QH/
|
||||
ASMBAAHfAf8BQQElAcQB/wFkAVwBjAH/IAADBAEGBAADRwGCAWIBgQGcAfYBZQGQAbYB/wFWAYEBpwH/
|
||||
ATwBZAGQAf8DUgGhAwUBBxwAAUQCRQF8AToBZQF/AfkBcAGhAcwB/wFzAZsBxQH7AU8BaQGBAfADTAGP
|
||||
AWIBgwGhAfYBYAGRAbwB/wFPAYABqwH/ATEBXwGRAf8DUgGhAwUBBwgAAc8BxQG5Af8B+wHsAd0C/wHz
|
||||
AeMC/wHuAd4C/wHuAdwC/wHxAd8D/wH4Af8BzgGgAYIB/wGlAUABEwL/AesBzwL/AfgB5AL/AekB0wL/
|
||||
AeoB0AL/AegBzgH/Ad4BxgGwAf8BhAF3AW8B/xQAATQBEgHNAf8BKAEBAdgB/wFUAUABtgH/ATABCQHg
|
||||
Af8BUwE3AdYB/wFkAVwBjAH/HAADBAEGAwABAQM/AWwBfgGbAbgB+AGCAagBzgH/AWUBkQG4Af8BRwFp
|
||||
AZIB/wEsATwBTAH/AyQBNRgAAwoBDgFVAW8BdwHnAVMBjAGvAf8BoQHLAfkB/wGWAcMB8QH/AWcBiAG0
|
||||
AfwDQgFzAX4BnQG+AfgBgQGsAdgB/wFgAZIBvwH/AT4BZQGTAf8BHwExAUMB/wMkATUIAAHSAckBvwH/
|
||||
AfwB8QHmAv8B9wHrAv8B8gHlAv8B9AHnAv8B9gHnAv8B8gHeAv8B/gHvAf8BiAEuAQkB/wGnATUBCQH/
|
||||
Ae0B0gG4Av8B+AHnAv8B7QHZAv8B8AHaAf8B3QHHAbIB/wGAAXUBcAH/EAABNAESAc0B/wEjAQAB3wH/
|
||||
AVQBQAG2Af8IAAE9ARkB4gH/AUQBIgHdAf8BZAFcAYwB/xgAAwEBAgMAAQEBwwHQAdoB/wGQAbABzgH5
|
||||
AZsBvwHlAf8BbgGdAccB/wFGAVoBbwH/AS4BKgEnAf8DMgFQGAADDgETAVgBdgF+AekBjgG5Ad8B/wHM
|
||||
AfQC/wGqAdYB/gH/AWgBdgGBAeEEAAGSAbYB1wH5AZ0BxwHyAf8BagGgAdAB/wE8AVMBbAH/ASEBHAEZ
|
||||
Af8DMgFQCAAB0gHJAb8B/wH0Ae8B6QP/AfYC/wH3Ae0F/wHFAZkBeQH/AY0BFwEAAf8B6wHTAb4B/wGr
|
||||
AXQBWAH/AV4CAAH/Ab0BiAFkA/8B+AL/AfkB6QH/AfoB8AHhAf8B1gHAAasB/wGEAXcBbwH/DAABMwER
|
||||
AcwB/wEjAQAB3wH/AVQBQAG2Af8QAAFZAToB5wH/AS8BCAHfAf8BZAFcAYwB/xcAAQEIAAF/AYkBlwH1
|
||||
AXoBkgGmAf8BZAF3AY4B/wFKAU0BUQH/ATQBMwEyAf8DJAE1GAADAQECAV0BYwFnAcoBZwGnAcIB/wG8
|
||||
AeMB9AH/AaoB0gH5Af8BZQFwAYEB4wQAAX8BiQGbAfUBeAGTAaoB/wFfAXUBjgH/AUEBRQFJAf8BKAEn
|
||||
ASYB/wMkATUMAAHjAeIB4AL/Af4B/AP/AfsF/wG9AZgBhQH/AVYCAAH/AeIBxQGyAf8BhQE4ARsB/wFR
|
||||
AgAB/wHSAbMBnQf/Af0B/wHwAeUB2gH/AbUBpwGZAf8MAAEzAREBzAH/ASMBAAHfAf8BVAFAAbYB/xgA
|
||||
AVkBOgHnAf8BIwEAAd8B/xsAAQEEAANMAZICbAFqAekBZwFlAWIB/ANZAfIDUQGcAwQBBRwAA0IBdQFy
|
||||
Ab4B0QH/AVYBoAG1Af8BUwGTAbAB/wFAAXQBigH+BAADTAGSAWwCagHpAWIBYAFdAfwCVwFWAfIDUQGc
|
||||
AwQBBQwAAdIByQG/Af8C6wHsDf8BxQGaAYQB/wG5AWsBRwH/AZABSAEwAf8BwgGnAZcJ/wH1AfEB7QH/
|
||||
AdQBxgG4Af8MAAE7ARcB4AH/ASMBAAHfAf8BQAEjAcMB/zgAAwoBDQQAAwoBDQQAAxUBHQMoATwDHgEr
|
||||
JAADCgEOA1cBqwGCAaMBqwHvAXABoAGqAfMBYQF4AX4B4QNHAYIEAAMVAR0DKAE8Ax4BKxgAAdIByQG/
|
||||
Af8B7wHtAewB/wH6AfwB/hn/AfUB8AHsAf8B3QHTAckB/xAAATABCgHhAf8BRwEmAeEB/8QAAdIByQG/
|
||||
Af8B7wHsAegB/wL1AfYB/wH2AfkB+gH/AfgC+QH/AfQB7wHqAf8B7QHoAeIB/wHSAckBvwH/WAABhAKA
|
||||
Af8BhAKAAf8BhAKAAf8BhAKAAf8UAAGEAoAB/wGEAoAB/wGEAoAB/wGEAoAB/4wAA4UB/wNzAf8DSQH/
|
||||
Az0B/wM9Af8DVgH/A4UB/yAAAYQCgAH/AbYCpQH/AbYCpQH/AXECXAH/A2oB/wGEAoAB/wwAAYQCgAH/
|
||||
AbYCpQH/AbYCpQH/AXECXAH/A2oB/wGEAoAB/4QAAa4CowH/AaMClAH/AcECrQH/AcsCsgH/AcECrQH/
|
||||
AbICkwH/AYcCZgH/AU4CSAH/A2gB/xgAAYQCgAH/AdIBtwG2Af8BwQGjAaEB/wHBAaMBoQH/AboBmQGY
|
||||
Af8BggJoAf8BhAKAAf8IAAGEAoAB/wHSAbcBtgH/AcEBowGhAf8BwQGjAaEB/wG6AZkBmAH/AYICaAH/
|
||||
AYQCgAH/BAABYAGiAb0B/wFgAaIBvQH/AWABogG9Af8BYAGiAb0B/wFgAaIBvQH/AWABogG9Af8BYAGe
|
||||
AbUB/wFXAZoBtQH/AU8BkgGtAf8BTwGOAaUB/wFHAYoBpQH/AUcBggGcAf8BPwF6AZQB/wE/AXoBlAH/
|
||||
CAABYAGiAb0B/wFgAaIBvQH/AWABogG9Af8BYAGiAb0B/wFgAaIBvQH/AWABogG9Af8BYAGeAbUB/wFX
|
||||
AZoBtQH/AU8BkgGtAf8BTwGOAaUB/wFHAYoBpQH/AUcBggGcAf8BPwF6AZQB/wE/AXoBlAH/BAAB2gLS
|
||||
Af8B3gLcAf8D4gH/Ad4C3AH/AdoC0gH/AcsCsgH/Aa0CngH/AbYCjwH/Ab8CjAH/AVkCTwH/GAABhAKA
|
||||
Af8D7AH/AesC4QH/AdACvQH/AcQCmAH/AakChwH/DAABhAKAAf8D7AH/AesC4QH/AdACvQH/AcQCmAH/
|
||||
AakChwH/CAABeAGyAc4B/wGMAeMC/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3
|
||||
Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BVwGaAbUB/wgA
|
||||
AXgBsgHOAf8BjAHjAv8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3
|
||||
Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AVcBmgG1Af8EAAHLArIB/wPs
|
||||
Af8D8QH/A+wB/wHeAtwB/wHWAr8B/wGlAo0B/wGoAocB/wHOAqQB/wGHAmYB/wNuAf8BgQJyAf8DVgH/
|
||||
A24B/wwAAYQCgAH/AdMBqwGpAf8BzQKUAf8BuAFzAW4B/wFTAk0B/xAAAdIBowGZAf8B0wGrAakB/wHN
|
||||
ApQB/wG4AXMBbgH/AVcCVgH/CAABeAGyAc4B/wGUAecC/wGEAdMB9wH/AQABWgGEAf8BAAFaAYQB/wEA
|
||||
AVoBhAH/AQABWgGEAf8BAAFaAYQB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3
|
||||
Af8BYAGeAb0B/wgAAXgBsgHOAf8BlAHnAv8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGE
|
||||
AdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AWABngG9
|
||||
Af8IAAHLArIB/wHwAuIB/wPsAf8B1QLFAf8B1AKyAf8BsgJ1Af8BvAKFAf8BzgKkAf8BkAJtAf8BqQKN
|
||||
Af8BvgKqAf8BnAKQAf8BXAJSAf8DUAH/A24B/wHSAbcBtgH/Ad0BmwFuAf8B7gGhAT8B/wHnAbABZwH/
|
||||
Ad0BmwFuAf8BlgFhAWAB/wFXAlYB/wFXAlYB/wFXAlYB/wFXAlYB/wHdAZsBbgH/Ae4BoQE/Af8B5wGw
|
||||
AWcB/wHdAZsBbgH/AYMCUwH/A3YB/wQAAXgBsgHOAf8BnAHrAv8BhAHTAfcB/wE/AYoBpQH/AVcBogGt
|
||||
Af8BNgGWAa0B/wEuAZIBpQH/AQABWgGEAf8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGE
|
||||
AdMB9wH/AWABngG9Af8IAAF4AbIBzgH/AZwB6wL/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3
|
||||
Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wFg
|
||||
AZ4BvQH/DAAB1gKrAf8B3AK5Af8BzgKkAf8BygKMAf8BwgJnAf8ByQJ3Af8B1AKyAf8B3ALEAf8B3AK5
|
||||
Af8BvQKdAf8BrQKeAf8BrgKjAf8BiwGDAXgB/wM9Af8BzgKkAf8B2QG9AZIC/wG+AUYC/wHIAVcC/wHI
|
||||
AVcB/wHTAYEBYQH/AyAB/wEoAW8BtAH/ASgBbwG0Af8DIAH/AdkBvQGSAv8BvgFGAv8ByAFXAv8ByAFX
|
||||
Af8B0wGBAWEB/wNqAf8EAAF4AboB1gH/AZwB6wL/AYwB2wL/AYQBzwHnAf8BnAHnAfcB/wGEAdsB7wH/
|
||||
AXgB1wHvAf8BLgGiAcYB/wGMAdsC/wGEAdcC/wGEAdcC/wGEAdcC/wGEAdMB9wH/AWABngG9Af8IAAF4
|
||||
AboB1gH/AZwB6wL/AYwB2wL/AYwB2wL/AYwB2wL/AYwB2wL/AYwB2wL/AYwB2wL/AYwB2wL/AYQB1wL/
|
||||
AYQB1wL/AYQB1wL/AYQB0wH3Af8BYAGeAb0B/wwAAfABowE8Af8B/QG6AU0B/wHwAcABjgH/AckBkwGd
|
||||
Af8ByQJnAf8BxQJuAf8B3ALEAf8B1gKrAf8BzwKdAf8BvAKTAf8BngJqAf8BpQKBAf8BngGwAZYB/wM9
|
||||
Af8BzgKkAf8B2AG9AaQC/wHbAYIC/wHiAZMC/wHdAYgB/wHdAZsBbgH/A48B/wE/AbEB6AH/AT8BsQHo
|
||||
Af8BhAKAAf8B2AG9AaQC/wHbAYIC/wHiAZMC/wHdAYgB/wHdAZsBbgH/A2oB/wQAAYQBvgHWAf8BpQHv
|
||||
Av8BjAHfAv8BhAHPAecB/wFwAccB3gH/AcYD/wFwAccB3gH/AS4BogHGAf8BjAHfAv8BjAHfAv8BjAHf
|
||||
Av8BjAHfAv8BhAHbAfcB/wFgAZ4BvQH/CAABhAG+AdYB/wGlAe8C/wGMAd8C/wGMAd8C/wGMAd8C/wGM
|
||||
Ad8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGEAdsB9wH/AWABngG9Af8IAAHc
|
||||
AsQB/wHzAaoBOgL/AdYBcwL/AdYBcwL/AdYBcwH/AfEBvAFxAf8B1wGXAYcB/wHKAowB/wHWAqsB/wHc
|
||||
ArkB/wG9Ap0B/wGvAnYB/wGnAnEB/wGeAmgB/wM9Af8BzgKkAf8B2AG9AaQB/wHzAd8BoAL/Ae8BqwL/
|
||||
AewBpAH/AecBsAFnAf8EAAHNAsIB/wMgAf8BzgKkAf8B2AG9AaQB/wHzAd8BoAL/Ae8BqwL/AewBpAH/
|
||||
AecBsAFnAf8DlAH/BAABhAHDAd4B/wGtAfMC/wGMAeMC/wGEAc8B5wH/AYwBzwHnAf8BVwG+AdYB/wFP
|
||||
AbYB1gH/AS4BogHGAf8BjAHfAv8BjAHfAv8BjAHfAv8BjAHfAv8BjAHbAfcB/wFgAZ4BvQH/CAABhAHD
|
||||
Ad4B/wGtAfMC/wGMAeMC/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGMAd8C/wGM
|
||||
Ad8C/wGMAd8C/wGMAdsB9wH/AWABngG9Af8IAAHUArIC/wG6ATwC/wHWAXMC/wHWAXMC/wHWAXMC/wHA
|
||||
AUkC/wG9AUIB/wHzAbIBUgH/AdUBjAF3Af8B3AK5Af8BxgKTAf8BxgKTAf8BzwKdAf8BswKCAf8DPQH/
|
||||
Ac4CpAH/Ac4CpAH/Ac4CpAH/Ac4CpAH/Ac4CpAH/AdYBogGDAf8EAAHJAbwBuAH/AyAB/wHOAqQB/wHO
|
||||
AqQB/wHOAqQB/wHOAqQB/wHOAqQB/wHWAaIBgwH/CAABhAHDAd4B/wGtAfMC/wGMAeMC/wE/AYoBpQH/
|
||||
AT8BigGlAf8BPwGKAaUB/wE/AYoBpQH/AT8BigGlAf8BjAHjAv8BjAHjAv8BjAHjAv8BjAHjAv8BjAHb
|
||||
AfcB/wFgAZ4BvQH/CAABhAHDAd4B/wGtAfMC/wGMAeMC/wGMAeMC/wGMAeMC/wGMAeMC/wGMAeMC/wGM
|
||||
AeMC/wGMAeMC/wGMAeMC/wGMAeMC/wGMAeMC/wGMAdsB9wH/AWABngG9Af8IAAHgAb4BqQH/Ad8BrAFZ
|
||||
Av8B1gFzAv8B1gFzAv8B1gFzAf8B7wG/AWMC/wHJAVkC/wHCAU0B/wHXAZQBeAH/AdwCuQH/AcYCkwH/
|
||||
Aa8CdgH/Aa8CdgH/AbICdQH/Az0B/xgAA2oB/wG8AbsBuAH/AyAB/wFJAkYB/wNqAf8DagH/FAABhAHD
|
||||
Ad4B/wG1AfMC/wGUAecC/wGUAecC/wGUAecC/wGUAesC/wGUAesC/wGtAfMC/wGtAfMC/wGtAfMC/wGt
|
||||
AfMC/wGtAfMC/wGtAfMC/wFgAZ4BvQH/CAABhAHDAd4B/wG1AfMC/wGUAecC/wGUAecC/wGUAecC/wGU
|
||||
AesC/wGUAesC/wGtAfMC/wGtAfMC/wGtAfMC/wGtAfMC/wGtAfMC/wGtAfMC/wFgAZ4BvQH/BAAB3ALE
|
||||
Af8B5gHFAaUC/wHPAWYC/wHWAXMC/wHaAYEC/wHWAXMC/wHWAXMC/wHTAW8C/wHNAWEB/wHPApcB/wHc
|
||||
ArkB/wG8AoUB/wG/AowB/wGvAnYB/wGyAnUB/wM9Af8UAAHSAbcBtgH/Ad0BmwFuAf8B7gGhAT8B/wHn
|
||||
AbABZwH/Ad0BmwFuAf8BgwJTAf8DdgH/FAABhAHPAecB/wG1AfMC/wGUAecC/wGUAecC/wGUAesC/wGU
|
||||
AesC/wG1AfMC/wFPAZIBrQH/AWABngG9Af8BaAGqAcYB/wFoAaoBxgH/AWgBqgHGAf8BaAGqAcYB/wF4
|
||||
AboB1gH/CAABhAHPAecB/wG1AfMC/wGUAecC/wGUAecC/wGUAesC/wGUAesC/wG1AfMC/wFPAZIBrQH/
|
||||
AWABngG9Af8BaAGqAcYB/wFoAaoBxgH/AWgBqgHGAf8BaAGqAcYB/wF4AboB1gH/BAAB3ALEAf8B6gHK
|
||||
AZoC/wHYAXgC/wHgAY4C/wHWAXMC/wHWAXMC/wHWAXMC/wHeAYkB/wH7Ac8BcwH/Ac8CnQH/AdwCuQH/
|
||||
AcYChAH/AbICdQH/AbwChQH/AbgCcQH/Az0B/xQAAc4CpAH/AdkBvQGSAv8BvgFGAv8ByAFXAv8ByAFX
|
||||
Af8B0wGBAWEB/wNqAf8UAAF4AcMB3gH/AYwB2wH3Af8BtQHzAv8BtQHzAv8BtQHzAv8BtQHzAv8BYAGe
|
||||
Ab0B/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BhAHTAfcB/wF4AboB1gH/
|
||||
CAABeAHDAd4B/wGMAdsB9wH/AbUB8wL/AbUB8wL/AbUB8wL/AbUB8wL/AWABngG9Af8BhAHTAfcB/wGE
|
||||
AdMB9wH/AYQB0wH3Af8BhAHTAfcB/wGEAdMB9wH/AYQB0wH3Af8BeAG6AdYB/wQAAdwCxAH/AfcB1wGS
|
||||
Av8B4AGOAv8B6gGhAv8B1gFzAv8B1gFzAv8B1gFzAv8B1gFzAf8B7gHEAYQB/wHcArkB/wHuAt0B/wHh
|
||||
AsQB/wHZApwB/wHJAmcB/wHCAmcB/wNWAf8UAAHOAqQB/wHYAb0BpAL/AdsBggL/AeIBkwL/Ad0BiAH/
|
||||
Ad0BmwFuAf8DagH/GAABaAGqAcYB/wFoAaoBxgH/AWgBqgHGAf8BaAGqAcYB/wFoAaoBxgH/AXABvgHe
|
||||
Af8BnAHbAfcK/wGuAXgB/wHOAaIBPwH/AZwB2wH3Af8BeAG6AdYB/wwAAWgBqgHGAf8BaAGqAcYB/wFo
|
||||
AaoBxgH/AWgBqgHGAf8BaAGqAcYB/wFwAb4B3gH/AZwB2wH3Cv8BrgF4Af8BzgGiAT8B/wGcAdsB9wH/
|
||||
AXgBugHWAf8EAAHcAsQB/wG8AawBlgH/AdYBwAGVAf8B6AHXAaUC/wHWAXMC/wHWAXMC/wHWAXMC/wHW
|
||||
AXMB/wHpAcIBigH/AeECxAH/Ae4C3QH/Ae4C3QH/Ae4C3QH/AeoC1wH/AdACmgH/GAABzgKkAf8B2AG9
|
||||
AaQB/wHzAd8BoAL/Ae8BqwL/AewBpAH/AecBsAFnAf8DlAH/MAABaAG2Ad4B/wFoAbYB3gH/AWgBtgHe
|
||||
Af8BaAG2Ad4B/wFoAbYB3gH/AWABtgHeAf8oAAFoAbYB3gH/AWgBtgHeAf8BaAG2Ad4B/wFoAbYB3gH/
|
||||
AWgBtgHeAf8BYAG2Ad4B/wgAAdwCxAH/AdwCxAH/AdwCxAH/AdYCyQH/AcwCuAH/Ac4BuQGvAf8B1gHA
|
||||
AasB/wHcAb8BmQH/AdABpQGHAf8BxAKlAf8B1AKyAf8B1AKyAf8B1AKyAf8B1AKyAf8cAAHOAqQB/wHO
|
||||
AqQB/wHOAqQB/wHOAqQB/wHOAqQB/wHWAaIBgwH/oAAB3ALEAf8B3ALEAf8B3ALEAf8B3ALEAf8B3ALE
|
||||
Af8BwAKZAf8cAAFCAU0BPgcAAT4DAAEoAwABQAMAATADAAEBAQABAQUAAYABARYAA/8BAAL/BgAC/18A
|
||||
AX8GAAL/BgAC/wYABf8BHwL/AeABDwH+AQAB/gEfAc8B/wHAAQ8BwAEAAfwBHwGHAfMBwAEPAgAB8AEH
|
||||
AYMB4wHAAQ8CAAHAAQMBwwHHAcABDwIAAYABAQHhAY8B4AEPAgABgAEAAfABHwHAAS8BgAECAgAB+AE/
|
||||
AcABPwHAAQcCAAH8AT8B0AEfAcABAwIAAfgBHwHAAR8BgAEDAgAB8QGPAcABHwGBAQMCAAHjAccB2AEf
|
||||
AYEBAwGAAQEBxwHnAegBHwHBAQMBgAEDAY8B/wHUAX8BwAGPAcABBwGfBf8B8AEPAv8BwwHhBP8BwAF/
|
||||
AYEBwAT/AYABPwEBAoABAQGAAQEBAAE/AQMBgQGAAQEBgAEBAQABAwGDAcEBgAEBAYABAQGAAwABgAEB
|
||||
AYABAQHAAwABgAEBAYABAQHAAwABgAEBAYABAQGAAQABAgEAAYABAQGAAQEBgAEAAQIBAQGAAQEBgAEB
|
||||
AYABAAH8AQ8BgAEBAYABAQIAAfgBDwGAAQEBgAEBAgAB+AEPAYABAQGAAQECAAH4AQ8BwAEBAcABAQEA
|
||||
AQEB+AEPAf8BAwH/AQMBAAEDAfgBHwT/AeABfws=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="images2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="images2.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACK
|
||||
EAAAAk1TRnQBSQFMAgEBBAEAAQwBAAEEAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEYBgABGP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ALoAA/sD7wHeAdsB2AHVAc8ByQHX
|
||||
AdMBzgHlAeMB4gP2GAAB+QL4AcwBxgHBAbYBrAGhAaoBmQGKAaEBiwF6AaoBmQGKAbYBrAGhAckBxAG/
|
||||
Ae8B7gHtIQAB+QL4AcwBxAG/AbcBqgGeAawBmAGGAaQBiwF3AawBmAGGAbcBqgGeAckBwwG9Ae8B7gHt
|
||||
OQAB8gLxAb8BpQGMAdIBkgFKAeoBpAFSAe8BrQFaAe8BrgFYAekBqQFUAckBnQFnAdEByAG9A/0PAAP+
|
||||
Aa8BoQGVAbEBlQF6AeYBywG0Ad4BtwGQAeMBuwGUAeABugGUAc4BqwGIAbgBmQF8AcABsgGkEgAD/QP4
|
||||
A/cD+AP7Aa8BnwGRAbYBlgF3AfQB1QG6AeoBvgGRAfABwgGVAe0BwQGVAdgBsAGIAb8BmwF6AcEBsgGi
|
||||
AwABdQGEAY8BbAF6AYUBYAFtAXcBUQFdAWYBQgFMAVQBMQE6AUEBIwEqATABFgEcASEBDgETARgBDgET
|
||||
ARgBDgETARgBDgETARgBDgETARgBDgETARgBDgETARgGAAHzAe4B6gHiAZcBTQHnAZgBRAHiAZsBSQHh
|
||||
AZ8BTgHjAaQBUwHkAacBUgHmAakBTwHvAbcBXQH2Ab0BZQHkAb0BkQP9DAAD/gHGAbkBqQHGAaUBhQHm
|
||||
AdABvQHiAb0BnAHmAb8BlwHoAcMBnwHbAboBmAHAAZ8BfwG7AasBnQwAA/YBtAG/AboBZgGWAX8BWgGV
|
||||
AXcBVAGSAXQBagGVAX8BWQGFAWwBrAGRAXEBzwGpAYQB9AHaAcQB7wHEAZ8B9AHHAZkB9gHLAaIB5wHB
|
||||
AZoByAGiAX0BvQGqAZoDAAF3AYcBkgGiAd8B8AFwAc0B6gFJAbgB4gE3Aa4B2wEtAakB2QEmAaEB0gEh
|
||||
AZgBxwEgAY4BvAEeAYMBrgEZAX8BqwEVAXwBqQEbAXcBnwEfAXIBlgEWARwBIQMAAfcB8wHvAdsBiAE6
|
||||
AdUBfAEmAdUBfgEjAdcBggEjAdkBiAEmAdwBkAEuAeABmgE8AeMBoQFFAeMBoQE+AecBrQFRAeoBsgFX
|
||||
AekBwAGRDAAD/wHPAcoBtwHZAbEBkAHmAdQBwQHzAdIBswHqAcEBmAHtAcwBqgHgAcIBpAHDAaMBggGu
|
||||
AZwBjAwAA+cBbAHDAZkBZAHAAZEBXAG4AYkBVAGyAYQBoAHBAagBWgGnAX0BrwGgAXEB5QG3AZEB9AHf
|
||||
AckB/wHdAbkB+AHJAZoB/AHWAa8B7QHKAagBywGnAYEBrwGbAYkDAAF6AYoBlQGqAegB9gGVAeUB/AGE
|
||||
Ad8B+wF1AdYB+gFqAdAB9wFdAcYB9AFQAb4B8AFBAbQB7AE1AaoB6AErAaQB5gEgAZoB3wEWAZAB1wEb
|
||||
AXcBnwEgAScBLQP/Ad4BrAF8AdABcgEeAdMBeAEgAdQBewEgAdYBfwEgAdcBgwEfAdkBhQEeAdoBiQEe
|
||||
Ad0BkQEoAeABmgE0AeEBnAEzAecBrAFQAeQBpAFAAe4B4QHSCQAG/wHwAdABsAHQAcMBsgHIAcMBuwHX
|
||||
AbcBlwHrAcQBnQHhAb4BmwHOAaYBfwHSAcoBwgwAA/YBcwHKAaABagHCAZYBZQG/AZMBbAHAAZEB0QHj
|
||||
AcYBZQG1AZABjQGrAXcB/wHSAaUB2gHLAbgB0QHLAcIB4gG+AZkB+QHMAaAB7gHGAZ0B2AGqAX0B0gHJ
|
||||
AcADAAF9AY4BmAGwAeoB9gGfAekB+wGSAeQB/AGBAd0B+wF1AdYB+gFoAc4B9wFdAcYB9AFNAbwB8AFB
|
||||
AbQB7AE1AaoB6AEqAaMB5gEdAZYB3AEVAXwBqQEtATQBOwH0Ae8B6QHiAacBcwHTAXkBKwHSAXQBHgHU
|
||||
AXoBIQHVAX4BIQHXAYEBIQHYAYUBIQHaAYgBIAHbAYoBHwHcAY8BIgHeAZQBKAHgAZoBMgHlAagBSgHi
|
||||
Aa8BbwP+CQAD/wL1AfQBpAGnAawBGwFLAXwBTwFpAYMBxgGmAYcB1AGxAY4B0QHIAb8D/QwAA/sBgQHP
|
||||
AagBcwHKAaABaQHEAZUBggHDAagBsgHKAb8BYAGqAYUBTQGoAXcBsgGuAY4BfAGCAYwBCgFBAXoBRgFk
|
||||
AYIBzwGqAYYB3AG0AY0B0gHHAb0D/QMAAYABkQGcAbYB7QH4AaoB7AH7AZsB6AH7AY8B4wH8AYEB3QH7
|
||||
AXEB1QH5AWgBzgH3AVsBxQH0AU0BvAHwAT0BsgHsATIBqQHoASQBngHiARABggG0ATsBQwFLAesB1wHB
|
||||
AeoBvgGdAeEBpAFwAdEBcwEfAdIBdwEeAdQBfAEhAdYBfwEhAdcBggEhAdkBhQEgAdoBiAEgAdsBigEg
|
||||
AdwBjQEhAdwBjgEhAeIBnwFAAd4BmAE3AfYB8wHvBgAG/wP6Aa0BugHHATABVQF8AScBUQF8AZUBmQGb
|
||||
AeYB4QHcAwAD/g8AAdMB6AHeAXcBzAGhAWcBvAGRAWABkQGyAVcBgAGlAUEBfgFcAYABsQGWAaABrgGz
|
||||
ATwBYQGKASIBTQF6ARgBSAF6AY8BlAGWAegB4QHbAwAD/gMAAYMBlQGfAb4B8AH5AasB8AH3AaUB7AH7
|
||||
AZgB5wH7AYkB4QH8AX8B3QH7AXEB1QH5AWUBzQH3AVgBxAHzAUsBuwHwAT0BsgHsASwBpAHjAQwBigG/
|
||||
AUkBUwFcAegBywGuAewBxQGpAekBvwGcAeABoQFqAdIBdgEhAdIBdgEcAdUBfAEgAdYBfwEhAdcBggEg
|
||||
AdgBhQEgAdkBhwEgAdoBiQEgAdoBiQEdAd8BlgE1Ad8BlwE3AfEB6AHeBgAG/gH0AvUBcwGRAa8BTAFz
|
||||
AZsBRwFsAZMBNQFbAYEC8AHxGAAB6AHxAe0BZwGyAZUBTwF8AagBYAGJAa0BrAHAAb0B8ALyAW0BjgGx
|
||||
AUMBbwGdAT0BZwGUASgBVAGAAvAB8QwAAYYBmQGjAb4B8AH5AbYB7QH4AbAB7gH6AaQB6wH6AZUB5gH7
|
||||
AYkB4QH8AX0B3AH8AXEB1QH5AWUBzQH3AVgBxAHzAUkBuQHvATUBqQHnAQwBjwHHAVcBYwFrAegBzgGv
|
||||
Ae4BzQG2AesBwwGjAekBvwGbAeMBqwF4AdgBiAE8AdMBeAEfAdQBeQEbAdUBfgEeAdcBgQEfAdgBgwEg
|
||||
AdkBhQEgAdkBhgEeAdwBkQEyAd4BlAE3AfEB6AHcBgAD/gMAAcwB0wHZAXUBmQG8AWoBkAG2AVsBgQGn
|
||||
AUEBaQGQAbsBwgHJA/4VAAHFAdAB1wE5AWwBiQF1AaEBzAGDAasB2QFfAYQBpgHCAcsB1AFxAZoBwwFl
|
||||
AZEBvAFUAYABqwE2AWQBkQG6AcEByQP+CQABiQGcAaYBvgHwAfkBtgHtAfgBtgHtAfgBqwHwAfcBogHs
|
||||
AfoBlQHmAfsBiQHhAfwBfQHcAfwBbwHTAfoBYwHMAfcBVQHDAfMBSQG5Ae8BGQGZAc8BYwFwAXoB6wHY
|
||||
AcEB8AHUAcEB7QHLAbEB6wHDAaIB6QG+AZoB5wG4AYwB4QGkAWsB3AGRAUgB2AGGATEB1wGBAScB1wGB
|
||||
ASIB1wGCASEB1wGCAR4B2wGOATMB3AGRATcB9QHwAesGAAP+A/8B2wHhAeUBjwGxAdQBggGoAc4BagGR
|
||||
AbgBTAFuAZIBMQFBAVED8xIAAfwC/QFlAZgBqgFYAYwBrwGhAcsB+QGWAcMB8QFvAZcBvwHWAd4B4wGP
|
||||
AbYB3wGBAawB2AFlAZIBvwFDAWoBkwEkATYBSAPzCQABiwGgAagBvgHwAfkBvgHwAfkBvgHwAfkBvgHw
|
||||
AfkBtAHyAfgBqgHsAfsBoAHpAfsBlQHlAfwBigHfAfwBfwHYAfsBdAHSAfgBaAHKAfQBXQHAAfEBYwFw
|
||||
AXoB8QHqAeAB8QHUAb4B8QHWAcMB7gHMAbMB6wHDAaMB6QG8AZYB5wG3AYwB5gGxAYEB4wGpAXEB4AGh
|
||||
AWEB3gGZAVIB3AGUAUYB2wGOATsB3QGWAUkB4QGpAWgB/AL7BgAG/wHDAdAB2gGkAccB6wGbAb8B5QFz
|
||||
AZ0BxwFLAV8BdAEzAS8BLAPrEgAB+wL8AWwBoQG0AY4BuQHfAcwB9AH/AaoB1gH+AZYBtQHWAwABpwHQ
|
||||
AfkBnQHHAfIBbwGgAdABQQFYAXEBJgEhAR4D6wkAAY0BoQGqAY0BoQGqAY0BoQGqAY0BoQGqAY0BoQGq
|
||||
AYsBnwGoAYkBnAGmAYkBmwGmAYcBmgGkAYYBmQGjAYQBlgGgAYQBlgGgAYMBlQGgAYMBlQGgAXUBhAGP
|
||||
Af0C/AHrAc0BqgH1AeEB1gHyAdgBxAHvAc4BtQHrAcUBpQHpAbwBlgHmAbUBiQHkAa4BfAHiAacBcAHg
|
||||
AaEBYwHeAZoBVgHdAZYBUAHfAZwBVwHsAdoBwwkAA/8GAAGSAaQBtgF/AZIBpgFpAXwBjgFPAVIBVgE5
|
||||
ATgBNwPyEgAD/wGbAcQBzwFsAacBwgG8AeMB9AGqAdIB+QGMAasBzgMAAZIBpwG8AX0BkwGqAWQBegGO
|
||||
AUYBSgFOAS0BLAErA/IJAAGPAaQBrAGyAeQB7AG2Ae0B+AG2Ae0B+AGpAewB9gGSAeEB8wGNAaEBqgHw
|
||||
AfEB8hgAAfIB6wHhAfMB2QHAAfYB5QHbAfMB2wHJAfAB0gG7Ae0ByQGsAeoBwQGeAegBugGSAeYBtAGH
|
||||
AeUBrwF+AeQBrQF5AeIBqAF0AeUBuAGCA/wMAAP/AwAB1gHUAdMBkQGPAY0BbwFtAWoBZgFlAWQDxAP+
|
||||
FQAB5AHtAe8BdwG+AdEBWwGgAbUBWAGTAbABQgF2AZMDAAHWAdUB1AGQAY0BjAFqAWgBZQFfAV4BXQPD
|
||||
A/4JAAHsAe0B7gGPAaQBrAGPAaQBrAGPAaQBrAGPAaQBrAGPAaQBrAHwAfEB8h4AAe8B4wHRAfMB2wHE
|
||||
AfcB6AHhAfQB4AHSAfIB2AHDAfAB0QG4Ae4BywGvAewByAGpAewBxgGoAeoBvwGcAecBuwGHAfgB9gHz
|
||||
DAAD/QMAA/0DAAP5A/AD9RsAA/0B4AHyAfYBqQHhAe4BiAHLAdkBgwG/Ac0B0wHhAeUDAAP5Au8B8AP1
|
||||
RQAB8wHuAeYB7gHUAbAB9AHdAcgB9QHhAdQB8wHdAc4B8gHXAcUB7wHQAbcB6wHFAZoB6wHVAbQC+gH5
|
||||
pQAD/gH0AfEB6gHvAeEBzAHtAdoBvQHtAdoBvwHwAeYB1wH5AfcB9Q8AAUIBTQE+BwABPgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEBBgABARYAA/+BAAb/AfABHwHgAQ8B/gEAAv8B4AEHAcABDwHAAQABgAEAAcABAwHA
|
||||
AQ8CAAGAAQABgAEDAcABDwIAAYACAAEBAcABDwIAAYADAAHgAQ8CAAGAAwABwAEvAYABAgGAAwABwAE/
|
||||
AcABBwGAAwAB0AEfAcABAwGAAwABwAEfAYABAwGAAwABwAEfAYEBAwGAAgABAQHYAR8BgQEDAYABfwGA
|
||||
AQEB6AEfAcEBAwGAAf8BwAEDAdQBfwHAAY8C/wHgAQcG/wHwAR8L
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,966 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.Providers.HostedSolution;
|
||||
using WebsitePanel.Providers;
|
||||
using System.Threading;
|
||||
using System.DirectoryServices;
|
||||
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class OrganizationImporter
|
||||
{
|
||||
public const int EXCHANGE_CONTAINER_ERROR = -2790;
|
||||
|
||||
private Label lblProcess;
|
||||
private ProgressBar progressBar;
|
||||
private ApplicationForm appForm;
|
||||
private Button btnImport;
|
||||
|
||||
private Thread thread;
|
||||
|
||||
|
||||
public OrganizationImporter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Initialize(string username, ApplicationForm appForm)
|
||||
{
|
||||
this.appForm = appForm;
|
||||
this.lblProcess = appForm.lblMessage;
|
||||
this.progressBar = appForm.progressBar;
|
||||
this.btnImport = appForm.btnStart;
|
||||
try
|
||||
{
|
||||
UserInfo info = UserController.GetUser(username);
|
||||
SecurityContext.SetThreadPrincipal(info);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to authenticate user", ex);
|
||||
Cancel();
|
||||
}
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
Log.WriteInfo("Import started");
|
||||
btnImport.Enabled = false;
|
||||
appForm.ImportStarted = true;
|
||||
thread = new Thread(new ThreadStart(this.StartThread));
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
public void Cancel()
|
||||
{
|
||||
Log.WriteInfo("Import canceled");
|
||||
appForm.ImportStarted = false;
|
||||
btnImport.Enabled = true;
|
||||
this.lblProcess.Text = string.Empty;
|
||||
this.progressBar.Value = 0;
|
||||
}
|
||||
|
||||
public void Abort()
|
||||
{
|
||||
Cancel();
|
||||
AbortThread();
|
||||
|
||||
}
|
||||
|
||||
private void AbortThread()
|
||||
{
|
||||
if (this.thread != null)
|
||||
{
|
||||
if (this.thread.IsAlive)
|
||||
{
|
||||
this.thread.Abort();
|
||||
}
|
||||
this.thread.Join();
|
||||
}
|
||||
}
|
||||
|
||||
public DialogResult ShowError(string text, Exception ex)
|
||||
{
|
||||
Log.WriteError(text, ex);
|
||||
return MessageBox.Show(appForm, text, appForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Displays process progress.
|
||||
/// </summary>
|
||||
public void StartThread()
|
||||
{
|
||||
this.progressBar.Value = 0;
|
||||
|
||||
try
|
||||
{
|
||||
this.lblProcess.Text = "Creating import script...";
|
||||
appForm.Update();
|
||||
|
||||
//default actions
|
||||
List<ImportAction> actions = GetImportActions();
|
||||
|
||||
//process actions
|
||||
for (int i = 0; i < actions.Count; i++)
|
||||
{
|
||||
ImportAction action = actions[i];
|
||||
this.lblProcess.Text = action.Description;
|
||||
this.progressBar.Value = i * 100 / actions.Count;
|
||||
appForm.Update();
|
||||
|
||||
switch (action.ActionType)
|
||||
{
|
||||
case ActionTypes.ImportOrganization:
|
||||
ImportOrganization();
|
||||
break;
|
||||
|
||||
case ActionTypes.ImportOrganizationDomain:
|
||||
ImportDomain(action.Name);
|
||||
break;
|
||||
|
||||
case ActionTypes.ImportMailbox:
|
||||
ImportMailbox(action.DirectoryEntry);
|
||||
break;
|
||||
|
||||
case ActionTypes.ImportContact:
|
||||
ImportContact(action.DirectoryEntry);
|
||||
break;
|
||||
|
||||
case ActionTypes.ImportGroup:
|
||||
ImportGroup(action.DirectoryEntry);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
this.progressBar.Value = 100;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
string message = Global.ErrorMessage;
|
||||
if ( string.IsNullOrEmpty(message))
|
||||
message = "An unexpected error has occurred during import.";
|
||||
ShowError(message, ex);
|
||||
Cancel();
|
||||
return;
|
||||
}
|
||||
|
||||
this.lblProcess.Text = string.Empty;
|
||||
DialogResult dialogResult = DialogResult.No;
|
||||
if (Global.HasErrors)
|
||||
{
|
||||
dialogResult = MessageBox.Show(appForm, "Import completed with errors. Would you like to see import log?", appForm.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||
}
|
||||
else
|
||||
{
|
||||
dialogResult = MessageBox.Show(appForm, "Import completed successfully. Would you like to see import log?", appForm.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information);
|
||||
}
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
Log.ShowLogFile();
|
||||
}
|
||||
|
||||
btnImport.Enabled = true;
|
||||
appForm.ImportStarted = false;
|
||||
this.progressBar.Value = 0;
|
||||
}
|
||||
|
||||
public static bool IsThreadAbortException(Exception ex)
|
||||
{
|
||||
Exception innerException = ex;
|
||||
while (innerException != null)
|
||||
{
|
||||
if (innerException is System.Threading.ThreadAbortException)
|
||||
return true;
|
||||
innerException = innerException.InnerException;
|
||||
}
|
||||
|
||||
string str = ex.ToString();
|
||||
return str.Contains("System.Threading.ThreadAbortException");
|
||||
}
|
||||
|
||||
private List<ImportAction> GetImportActions()
|
||||
{
|
||||
List<ImportAction> list = new List<ImportAction>();
|
||||
ImportAction action = null;
|
||||
|
||||
if (Global.ImportAccountsOnly)
|
||||
{
|
||||
ServiceProviderItem item = PackageController.GetPackageItemByName(Global.Space.PackageId, ResourceGroups.HostedOrganizations, Global.OrganizationName, typeof(Organization));
|
||||
if (item == null)
|
||||
{
|
||||
Global.ErrorMessage = string.Format("Organization {0} not found.", Global.OrganizationName);
|
||||
throw new Exception(Global.ErrorMessage);
|
||||
}
|
||||
Global.ItemId = item.Id;
|
||||
}
|
||||
else
|
||||
{
|
||||
action = new ImportAction(ActionTypes.ImportOrganization);
|
||||
action.Description = "Importing organization...";
|
||||
list.Add(action);
|
||||
|
||||
DirectoryEntry org = Global.OrgDirectoryEntry;
|
||||
PropertyValueCollection props = org.Properties["uPNSuffixes"];
|
||||
if (props != null)
|
||||
{
|
||||
foreach (string domainName in props)
|
||||
{
|
||||
action = new ImportAction(ActionTypes.ImportOrganizationDomain);
|
||||
action.Description = "Importing organization domains...";
|
||||
action.Name = domainName;
|
||||
list.Add(action);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Global.SelectedAccounts != null)
|
||||
{
|
||||
foreach (DirectoryEntry entry in Global.SelectedAccounts)
|
||||
{
|
||||
switch (entry.SchemaClassName)
|
||||
{
|
||||
case "user":
|
||||
action = new ImportAction(ActionTypes.ImportMailbox);
|
||||
action.Description = "Importing mailbox...";
|
||||
action.DirectoryEntry = entry;
|
||||
list.Add(action);
|
||||
break;
|
||||
case "contact":
|
||||
action = new ImportAction(ActionTypes.ImportContact);
|
||||
action.Description = "Importing contact...";
|
||||
action.DirectoryEntry = entry;
|
||||
list.Add(action);
|
||||
break;
|
||||
case "group":
|
||||
action = new ImportAction(ActionTypes.ImportGroup);
|
||||
action.Description = "Importing group...";
|
||||
action.DirectoryEntry = entry;
|
||||
list.Add(action);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private void ImportOrganization()
|
||||
{
|
||||
|
||||
PackageInfo packageInfo = Global.Space;
|
||||
int serviceId = PackageController.GetPackageServiceId(packageInfo.PackageId, ResourceGroups.HostedOrganizations);
|
||||
ServiceInfo serviceInfo = ServerController.GetServiceInfo(serviceId);
|
||||
StringDictionary serviceSettings = ServerController.GetServiceSettingsAdmin(serviceId);
|
||||
|
||||
string tempDomain = serviceSettings["TempDomain"];
|
||||
ServerInfo serverInfo = ServerController.GetServerById(serviceInfo.ServerId);
|
||||
|
||||
serviceId = PackageController.GetPackageServiceId(packageInfo.PackageId, ResourceGroups.Exchange);
|
||||
serviceSettings = ServerController.GetServiceSettingsAdmin(serviceId);
|
||||
Global.MailboxCluster = serviceSettings["MailboxCluster"];
|
||||
Global.StorageGroup = serviceSettings["StorageGroup"];
|
||||
Global.MailboxDatabase = serviceSettings["MailboxDatabase"];
|
||||
Global.KeepDeletedMailboxesDays = serviceSettings["KeepDeletedMailboxesDays"];
|
||||
Global.KeepDeletedItemsDays = serviceSettings["KeepDeletedItemsDays"];
|
||||
|
||||
int ret = CreateOrganization(Global.Space.PackageId, Global.OrganizationId, Global.OrganizationName);
|
||||
if (ret > 0)
|
||||
{
|
||||
Global.ItemId = ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (ret)
|
||||
{
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_DEMO:
|
||||
Global.ErrorMessage = "You cannot import organization in demo account";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_PENDING:
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_SUSPENDED:
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_CANCELLED:
|
||||
case BusinessErrorCodes.ERROR_USER_ACCOUNT_SHOULD_BE_ADMINISTRATOR:
|
||||
Global.ErrorMessage = "User account is disabled or does not have enough permissions";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_PACKAGE_NOT_FOUND:
|
||||
Global.ErrorMessage = "Space not found";
|
||||
break;
|
||||
|
||||
|
||||
case BusinessErrorCodes.ERROR_PACKAGE_CANCELLED:
|
||||
case BusinessErrorCodes.ERROR_PACKAGE_SUSPENDED:
|
||||
Global.ErrorMessage = "Space is cancelled or suspended";
|
||||
break;
|
||||
|
||||
case BusinessErrorCodes.ERROR_ORGS_RESOURCE_QUOTA_LIMIT:
|
||||
Global.ErrorMessage = "Organizations quota limit";
|
||||
break;
|
||||
|
||||
case BusinessErrorCodes.ERROR_DOMAIN_QUOTA_LIMIT:
|
||||
case BusinessErrorCodes.ERROR_SUBDOMAIN_QUOTA_LIMIT:
|
||||
Global.ErrorMessage = "Domains quota limit";
|
||||
break;
|
||||
|
||||
case BusinessErrorCodes.ERROR_ORG_ID_EXISTS:
|
||||
Global.ErrorMessage = "Organization with specified Id already exists";
|
||||
break;
|
||||
|
||||
case BusinessErrorCodes.ERROR_ORGANIZATION_TEMP_DOMAIN_IS_NOT_SPECIFIED:
|
||||
Global.ErrorMessage = "Organization temp domain name is not specified";
|
||||
break;
|
||||
case BusinessErrorCodes.ERROR_DOMAIN_ALREADY_EXISTS:
|
||||
case BusinessErrorCodes.ERROR_ORGANIZATION_DOMAIN_IS_IN_USE:
|
||||
Global.ErrorMessage = "Domain already exists or is in use";
|
||||
break;
|
||||
}
|
||||
throw new Exception(string.Format("Unable to create organization. Error code: {0}", ret));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static int CreateOrganization(int packageId, string organizationId, string organizationName)
|
||||
{
|
||||
int itemId;
|
||||
int errorCode;
|
||||
|
||||
// place log record
|
||||
Log.WriteStart(string.Format("Importing organization {0}...", organizationName));
|
||||
if (!CheckQuotas(packageId, out errorCode))
|
||||
return errorCode;
|
||||
|
||||
string addressListsContainer = null;
|
||||
try
|
||||
{
|
||||
addressListsContainer = ADUtils.GetAddressListsContainer();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.WriteError("Cannot load Exchange 2007 Address Lists Container", ex);
|
||||
return EXCHANGE_CONTAINER_ERROR;
|
||||
}
|
||||
|
||||
Organization org = PopulateOrganization(packageId, organizationId, addressListsContainer);
|
||||
|
||||
// Check if organization exitsts.
|
||||
if (OrganizationIdentifierExists(organizationId))
|
||||
return BusinessErrorCodes.ERROR_ORG_ID_EXISTS;
|
||||
|
||||
|
||||
int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.HostedOrganizations);
|
||||
|
||||
//create temprory domain name;
|
||||
|
||||
string domainName = CreateTemporyDomainName(serviceId, organizationId);
|
||||
|
||||
Log.WriteInfo(string.Format("Importing temp domain {0}", domainName));
|
||||
if (string.IsNullOrEmpty(domainName))
|
||||
return BusinessErrorCodes.ERROR_ORGANIZATION_TEMP_DOMAIN_IS_NOT_SPECIFIED;
|
||||
|
||||
bool domainCreated;
|
||||
int domainId = CreateDomain(domainName, packageId, out domainCreated);
|
||||
//create domain
|
||||
if (domainId < 0)
|
||||
return domainId;
|
||||
|
||||
|
||||
//add organization to package items
|
||||
itemId = AddOrganizationToPackageItems(org, serviceId, packageId, organizationName, organizationId, domainName);
|
||||
|
||||
// register org ID
|
||||
|
||||
DataProvider.AddExchangeOrganization(itemId, organizationId);
|
||||
|
||||
// register domain
|
||||
DataProvider.AddExchangeOrganizationDomain(itemId, domainId, true);
|
||||
|
||||
// register organization domain service item
|
||||
OrganizationDomain orgDomain = new OrganizationDomain();
|
||||
orgDomain.Name = domainName;
|
||||
orgDomain.PackageId = packageId;
|
||||
orgDomain.ServiceId = serviceId;
|
||||
|
||||
PackageController.AddPackageItem(orgDomain);
|
||||
Log.WriteEnd("Organization imported");
|
||||
return itemId;
|
||||
}
|
||||
|
||||
private static Organization PopulateOrganization(int packageId, string organizationId, string addressListsContainer)
|
||||
{
|
||||
Organization org = new Organization();
|
||||
org.OrganizationId = organizationId;
|
||||
org.AddressList = string.Format("CN={0} Address List,CN=All Address Lists,{1}", organizationId, addressListsContainer);
|
||||
org.GlobalAddressList = string.Format("CN={0} Global Address List,CN=All Global Address Lists,{1}", organizationId, addressListsContainer);
|
||||
org.OfflineAddressBook = string.Format("CN={0} Offline Address Book,CN=Offline Address Lists,{1}", organizationId, addressListsContainer);
|
||||
org.Database = GetDatabaseName();
|
||||
org.DistinguishedName = ADUtils.RemoveADPrefix(Global.OrgDirectoryEntry.Path);
|
||||
org.SecurityGroup = string.Format("CN={0},{1}", organizationId, org.DistinguishedName);
|
||||
|
||||
|
||||
PackageContext cntx = PackageController.GetPackageContext(packageId);
|
||||
// organization limits
|
||||
org.IssueWarningKB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
||||
if (org.IssueWarningKB > 0) org.IssueWarningKB *= 1024;
|
||||
org.ProhibitSendKB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
||||
if (org.ProhibitSendKB > 0) org.ProhibitSendKB *= 1024;
|
||||
org.ProhibitSendReceiveKB = cntx.Quotas[Quotas.EXCHANGE2007_DISKSPACE].QuotaAllocatedValue;
|
||||
if (org.ProhibitSendReceiveKB > 0) org.ProhibitSendReceiveKB *= 1024;
|
||||
|
||||
PackageSettings settings = PackageController.GetPackageSettings(packageId, PackageSettings.EXCHANGE_SERVER);
|
||||
org.KeepDeletedItemsDays = Utils.ParseInt(settings["KeepDeletedItemsDays"], 14);
|
||||
return org;
|
||||
}
|
||||
|
||||
private static string GetDatabaseName()
|
||||
{
|
||||
string ret;
|
||||
if (String.IsNullOrEmpty(Global.MailboxCluster))
|
||||
{
|
||||
ret = string.Format("{0}\\{1}", Global.StorageGroup, Global.MailboxDatabase);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = string.Format("{0}\\{1}\\{2}", Global.MailboxCluster, Global.StorageGroup, Global.MailboxDatabase);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private static bool CheckQuotas(int packageId, out int errorCode)
|
||||
{
|
||||
|
||||
// check account
|
||||
errorCode = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||
if (errorCode < 0) return false;
|
||||
|
||||
// check package
|
||||
errorCode = SecurityContext.CheckPackage(packageId, DemandPackage.IsActive);
|
||||
if (errorCode < 0) return false;
|
||||
|
||||
// check organizations quota
|
||||
QuotaValueInfo quota = PackageController.GetPackageQuota(packageId, Quotas.ORGANIZATIONS);
|
||||
if (quota.QuotaExhausted)
|
||||
{
|
||||
errorCode = BusinessErrorCodes.ERROR_ORGS_RESOURCE_QUOTA_LIMIT;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// check sub-domains quota (for temporary domain)
|
||||
quota = PackageController.GetPackageQuota(packageId, Quotas.OS_SUBDOMAINS);
|
||||
if (quota.QuotaExhausted)
|
||||
{
|
||||
errorCode = BusinessErrorCodes.ERROR_SUBDOMAIN_QUOTA_LIMIT;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool OrganizationIdentifierExists(string organizationId)
|
||||
{
|
||||
return DataProvider.ExchangeOrganizationExists(organizationId);
|
||||
}
|
||||
|
||||
private static string CreateTemporyDomainName(int serviceId, string organizationId)
|
||||
{
|
||||
// load service settings
|
||||
StringDictionary serviceSettings = ServerController.GetServiceSettingsAdmin(serviceId);
|
||||
|
||||
string tempDomain = serviceSettings["TempDomain"];
|
||||
return String.IsNullOrEmpty(tempDomain) ? null : organizationId + "." + tempDomain;
|
||||
}
|
||||
|
||||
private static int CreateDomain(string domainName, int packageId, out bool domainCreated)
|
||||
{
|
||||
// trying to locate (register) temp domain
|
||||
DomainInfo domain = null;
|
||||
int domainId = 0;
|
||||
domainCreated = false;
|
||||
|
||||
// check if the domain already exists
|
||||
int checkResult = ServerController.CheckDomain(domainName);
|
||||
if (checkResult == BusinessErrorCodes.ERROR_DOMAIN_ALREADY_EXISTS)
|
||||
{
|
||||
// domain exists
|
||||
// check if it belongs to the same space
|
||||
domain = ServerController.GetDomain(domainName);
|
||||
if (domain == null)
|
||||
return checkResult;
|
||||
|
||||
if (domain.PackageId != packageId)
|
||||
return checkResult;
|
||||
|
||||
if (DataProvider.ExchangeOrganizationDomainExists(domain.DomainId))
|
||||
return BusinessErrorCodes.ERROR_ORGANIZATION_DOMAIN_IS_IN_USE;
|
||||
|
||||
domainId = domain.DomainId;
|
||||
}
|
||||
else if (checkResult < 0)
|
||||
{
|
||||
return checkResult;
|
||||
}
|
||||
|
||||
// create domain if required
|
||||
if (domain == null)
|
||||
{
|
||||
domain = CreateNewDomain(packageId, domainName);
|
||||
// add domain
|
||||
domainId = ServerController.AddDomain(domain);
|
||||
|
||||
if (domainId < 0)
|
||||
return domainId;
|
||||
|
||||
domainCreated = true;
|
||||
}
|
||||
|
||||
return domainId;
|
||||
}
|
||||
|
||||
private static DomainInfo CreateNewDomain(int packageId, string domainName)
|
||||
{
|
||||
// new domain
|
||||
DomainInfo domain = new DomainInfo();
|
||||
domain.PackageId = packageId;
|
||||
domain.DomainName = domainName;
|
||||
domain.IsInstantAlias = true;
|
||||
domain.IsSubDomain = true;
|
||||
|
||||
return domain;
|
||||
}
|
||||
|
||||
private static int AddOrganizationToPackageItems(Organization org, int serviceId, int packageId, string organizationName, string organizationId, string domainName)
|
||||
{
|
||||
org.ServiceId = serviceId;
|
||||
org.PackageId = packageId;
|
||||
org.Name = organizationName;
|
||||
org.OrganizationId = organizationId;
|
||||
org.DefaultDomain = domainName;
|
||||
|
||||
int itemId = PackageController.AddPackageItem(org);
|
||||
return itemId;
|
||||
}
|
||||
|
||||
private void ImportDomain(string domainName)
|
||||
{
|
||||
int ret = -1;
|
||||
try
|
||||
{
|
||||
ret = AddOrganizationDomain(Global.ItemId, domainName);
|
||||
if (ret < 0)
|
||||
{
|
||||
Log.WriteError(string.Format("Unable to import domain {0}. Error code: {1}", domainName, ret));
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
Log.WriteError(string.Format("Unable to import domain {0}. Error code: {1}", domainName, ret), ex);
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static int AddOrganizationDomain(int itemId, string domainName)
|
||||
{
|
||||
Log.WriteStart(string.Format("Importing domain {0}...", domainName));
|
||||
|
||||
// load organization
|
||||
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||
if (org == null)
|
||||
return -1;
|
||||
|
||||
// check package
|
||||
int packageCheck = SecurityContext.CheckPackage(org.PackageId, DemandPackage.IsActive);
|
||||
if (packageCheck < 0) return packageCheck;
|
||||
|
||||
DomainInfo domain = null;
|
||||
|
||||
// check if the domain already exists
|
||||
int checkResult = ServerController.CheckDomain(domainName);
|
||||
if (checkResult == BusinessErrorCodes.ERROR_DOMAIN_ALREADY_EXISTS)
|
||||
{
|
||||
// domain exists
|
||||
// check if it belongs to the same space
|
||||
domain = ServerController.GetDomain(domainName);
|
||||
if (domain == null)
|
||||
return checkResult;
|
||||
|
||||
if (domain.PackageId != org.PackageId)
|
||||
return checkResult;
|
||||
|
||||
if (DataProvider.ExchangeOrganizationDomainExists(domain.DomainId))
|
||||
return BusinessErrorCodes.ERROR_ORGANIZATION_DOMAIN_IS_IN_USE;
|
||||
}
|
||||
else if (checkResult == BusinessErrorCodes.ERROR_RESTRICTED_DOMAIN)
|
||||
{
|
||||
return checkResult;
|
||||
}
|
||||
|
||||
// create domain if required
|
||||
if (domain == null)
|
||||
{
|
||||
domain = new DomainInfo();
|
||||
domain.PackageId = org.PackageId;
|
||||
domain.DomainName = domainName;
|
||||
domain.IsInstantAlias = false;
|
||||
domain.IsSubDomain = false;
|
||||
|
||||
// add domain
|
||||
domain.DomainId = ServerController.AddDomain(domain);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// register domain
|
||||
DataProvider.AddExchangeOrganizationDomain(itemId, domain.DomainId, false);
|
||||
|
||||
// register service item
|
||||
OrganizationDomain exchDomain = new OrganizationDomain();
|
||||
exchDomain.Name = domainName;
|
||||
exchDomain.PackageId = org.PackageId;
|
||||
exchDomain.ServiceId = org.ServiceId;
|
||||
PackageController.AddPackageItem(exchDomain);
|
||||
Log.WriteEnd("Domain imported");
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
private static void ImportMailbox(DirectoryEntry directoryEntry)
|
||||
{
|
||||
int ret = -1;
|
||||
string name = null;
|
||||
try
|
||||
{
|
||||
name = (string)directoryEntry.Properties["name"].Value;
|
||||
ret = AddMailbox(Global.ItemId, directoryEntry);
|
||||
if (ret < 0)
|
||||
{
|
||||
Log.WriteError(string.Format("Unable to import mailbox {0}. Error code: {1}", name, ret));
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
Log.WriteError(string.Format("Unable to import mailbox {0}. Error code: {1}", name, ret), ex);
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static void ImportContact(DirectoryEntry directoryEntry)
|
||||
{
|
||||
int ret = -1;
|
||||
string name = null;
|
||||
try
|
||||
{
|
||||
name = (string)directoryEntry.Properties["name"].Value;
|
||||
ret = AddContact(Global.ItemId, directoryEntry);
|
||||
if (ret < 0)
|
||||
{
|
||||
Log.WriteError(string.Format("Unable to import contact {0}. Error code: {1}", name, ret));
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
Log.WriteError(string.Format("Unable to import contact {0}. Error code: {1}", name, ret), ex);
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static void ImportGroup(DirectoryEntry directoryEntry)
|
||||
{
|
||||
int ret = -1;
|
||||
string name = null;
|
||||
try
|
||||
{
|
||||
name = (string)directoryEntry.Properties["name"].Value;
|
||||
ret = AddGroup(Global.ItemId, directoryEntry);
|
||||
if (ret < 0)
|
||||
{
|
||||
Log.WriteError(string.Format("Unable to import group {0}. Error code: {1}", name, ret));
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (Utils.IsThreadAbortException(ex))
|
||||
return;
|
||||
|
||||
Log.WriteError(string.Format("Unable to import group {0}. Error code: {1}", name, ret), ex);
|
||||
Global.HasErrors = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static int AddMailbox(int itemId, DirectoryEntry entry)
|
||||
{
|
||||
string accountName = (string)entry.Properties["name"].Value;
|
||||
Log.WriteStart(string.Format("Importing user {0}...", accountName));
|
||||
|
||||
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||
if (org == null)
|
||||
return -1;
|
||||
|
||||
// e-mail
|
||||
string email = (string)entry.Properties["userPrincipalName"].Value;
|
||||
if (string.IsNullOrEmpty(email))
|
||||
throw new Exception("UPN is not specified");
|
||||
|
||||
if (EmailAddressExists(email))
|
||||
return BusinessErrorCodes.ERROR_EXCHANGE_EMAIL_EXISTS;
|
||||
|
||||
|
||||
|
||||
if (AccountExists(accountName))
|
||||
throw new Exception(string.Format("Account {0} already exists", accountName));
|
||||
|
||||
string displayName = (string)entry.Properties["displayName"].Value;
|
||||
|
||||
|
||||
int userId = AddOrganizationUser(itemId, accountName, displayName, email, string.Empty);
|
||||
AddAccountEmailAddress(userId, email);
|
||||
|
||||
//account type
|
||||
PropertyValueCollection type = entry.Properties["msExchRecipientDisplayType"];
|
||||
if (type == null || type.Value == null)
|
||||
{
|
||||
Log.WriteInfo("Account type : user");
|
||||
return userId;
|
||||
}
|
||||
int mailboxType = (int)type.Value;
|
||||
ExchangeAccountType accountType = ExchangeAccountType.Undefined;
|
||||
switch (mailboxType)
|
||||
{
|
||||
case 1073741824:
|
||||
Log.WriteInfo("Account type : mailbox");
|
||||
accountType = ExchangeAccountType.Mailbox;
|
||||
break;
|
||||
case 7:
|
||||
Log.WriteInfo("Account type : room");
|
||||
accountType = ExchangeAccountType.Room;
|
||||
break;
|
||||
case 8:
|
||||
Log.WriteInfo("Account type : equipment");
|
||||
accountType = ExchangeAccountType.Equipment;
|
||||
break;
|
||||
default:
|
||||
Log.WriteInfo("Account type : unknown");
|
||||
return userId;
|
||||
}
|
||||
|
||||
UpdateExchangeAccount(userId, accountName, accountType, displayName, email, false, string.Empty, string.Empty, string.Empty);
|
||||
|
||||
string defaultEmail = (string)entry.Properties["extensionAttribute3"].Value;
|
||||
|
||||
PropertyValueCollection emails = entry.Properties["proxyAddresses"];
|
||||
if (emails != null)
|
||||
{
|
||||
foreach (string mail in emails)
|
||||
{
|
||||
string emailAddress = mail;
|
||||
if (emailAddress.ToLower().StartsWith("smtp:"))
|
||||
emailAddress = emailAddress.Substring(5);
|
||||
|
||||
|
||||
if (!emailAddress.Equals(defaultEmail, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (EmailAddressExists(emailAddress))
|
||||
{
|
||||
Log.WriteInfo(string.Format("Email address {0} already exists. Skipped", emailAddress));
|
||||
continue;
|
||||
}
|
||||
// register email address
|
||||
Log.WriteInfo(string.Format("Importing email {0}", emailAddress));
|
||||
AddAccountEmailAddress(userId, emailAddress);
|
||||
}
|
||||
}
|
||||
}
|
||||
Log.WriteEnd("User imported");
|
||||
return userId;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private static int AddContact(int itemId, DirectoryEntry entry)
|
||||
{
|
||||
string accountName = (string)entry.Properties["name"].Value;
|
||||
Log.WriteStart(string.Format("Importing contact {0}...", accountName));
|
||||
|
||||
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||
if (org == null)
|
||||
return -1;
|
||||
|
||||
|
||||
if (AccountExists(accountName))
|
||||
throw new Exception(string.Format("Account {0} already exists", accountName));
|
||||
|
||||
string displayName = (string)entry.Properties["displayName"].Value;
|
||||
string email = (string)entry.Properties["targetAddress"].Value;
|
||||
if (email != null && email.ToLower().StartsWith("smtp:"))
|
||||
email = email.Substring(5);
|
||||
|
||||
|
||||
int accountId = AddAccount(itemId, ExchangeAccountType.Contact, accountName, displayName, email, false, 0, string.Empty, null);
|
||||
|
||||
Log.WriteEnd("Contact imported");
|
||||
return accountId;
|
||||
}
|
||||
|
||||
private static int AddGroup(int itemId, DirectoryEntry entry)
|
||||
{
|
||||
string accountName = (string)entry.Properties["name"].Value;
|
||||
Log.WriteStart(string.Format("Importing group {0}...", accountName));
|
||||
|
||||
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||
if (org == null)
|
||||
return -1;
|
||||
|
||||
if (AccountExists(accountName))
|
||||
throw new Exception(string.Format("Account {0} already exists", accountName));
|
||||
|
||||
string displayName = (string)entry.Properties["displayName"].Value;
|
||||
string email = null;
|
||||
PropertyValueCollection proxyAddresses = entry.Properties["proxyAddresses"];
|
||||
if (proxyAddresses != null)
|
||||
{
|
||||
foreach (string address in proxyAddresses)
|
||||
{
|
||||
if (address != null && address.StartsWith("SMTP:"))
|
||||
{
|
||||
email = address.Substring(5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(email))
|
||||
throw new Exception("Email is not specified");
|
||||
|
||||
if (EmailAddressExists(email))
|
||||
return BusinessErrorCodes.ERROR_EXCHANGE_EMAIL_EXISTS;
|
||||
|
||||
int accountId = AddAccount(itemId, ExchangeAccountType.DistributionList, accountName, displayName, email, false, 0, string.Empty, null);
|
||||
AddAccountEmailAddress(accountId, email);
|
||||
|
||||
string defaultEmail = (string)entry.Properties["extensionAttribute3"].Value;
|
||||
|
||||
PropertyValueCollection emails = entry.Properties["proxyAddresses"];
|
||||
if (emails != null)
|
||||
{
|
||||
foreach (string mail in emails)
|
||||
{
|
||||
string emailAddress = mail;
|
||||
if (emailAddress.ToLower().StartsWith("smtp:"))
|
||||
emailAddress = emailAddress.Substring(5);
|
||||
|
||||
|
||||
if (!emailAddress.Equals(defaultEmail, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (EmailAddressExists(emailAddress))
|
||||
{
|
||||
Log.WriteInfo(string.Format("Email address {0} already exists. Skipped", emailAddress));
|
||||
continue;
|
||||
}
|
||||
// register email address
|
||||
Log.WriteInfo(string.Format("Importing email {0}", emailAddress));
|
||||
AddAccountEmailAddress(accountId, emailAddress);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Log.WriteEnd("Group imported");
|
||||
return accountId;
|
||||
}
|
||||
|
||||
private static bool EmailAddressExists(string emailAddress)
|
||||
{
|
||||
return DataProvider.ExchangeAccountEmailAddressExists(emailAddress);
|
||||
}
|
||||
|
||||
private static bool AccountExists(string accountName)
|
||||
{
|
||||
return DataProvider.ExchangeAccountExists(accountName);
|
||||
}
|
||||
|
||||
private static int AddAccount(int itemId, ExchangeAccountType accountType,
|
||||
string accountName, string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
||||
MailboxManagerActions mailboxManagerActions, string samAccountName, string accountPassword)
|
||||
{
|
||||
return DataProvider.AddExchangeAccount(itemId, (int)accountType,
|
||||
accountName, displayName, primaryEmailAddress, mailEnabledPublicFolder,
|
||||
mailboxManagerActions.ToString(), samAccountName, CryptoUtils.Encrypt(accountPassword));
|
||||
}
|
||||
|
||||
private static int AddOrganizationUser(int itemId, string accountName, string displayName, string email, string accountPassword)
|
||||
{
|
||||
return DataProvider.AddExchangeAccount(itemId, (int)ExchangeAccountType.User, accountName, displayName, email, false, string.Empty,
|
||||
string.Empty, CryptoUtils.Encrypt(accountPassword));
|
||||
|
||||
}
|
||||
|
||||
private static void AddAccountEmailAddress(int accountId, string emailAddress)
|
||||
{
|
||||
DataProvider.AddExchangeAccountEmailAddress(accountId, emailAddress);
|
||||
}
|
||||
|
||||
private static void UpdateExchangeAccount(int accountId, string accountName, ExchangeAccountType accountType,
|
||||
string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
|
||||
string mailboxManagerActions, string samAccountName, string accountPassword)
|
||||
{
|
||||
DataProvider.UpdateExchangeAccount(accountId,
|
||||
accountName,
|
||||
accountType,
|
||||
displayName,
|
||||
primaryEmailAddress,
|
||||
mailEnabledPublicFolder,
|
||||
mailboxManagerActions,
|
||||
samAccountName,
|
||||
CryptoUtils.Encrypt(accountPassword));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,115 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
private static ApplicationForm appForm;
|
||||
private delegate void ExceptionDelegate(Exception ex);
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Log.WriteApplicationStart();
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
|
||||
Application.ApplicationExit += new EventHandler(OnApplicationExit);
|
||||
appForm = new ApplicationForm();
|
||||
Application.ThreadException += new ThreadExceptionEventHandler(OnThreadException);
|
||||
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnApplicationException);
|
||||
|
||||
ConnectForm connectForm = new ConnectForm();
|
||||
if (connectForm.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
appForm.InitializeForm(connectForm.Username, connectForm.Password);
|
||||
Application.Run(appForm);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Writes to log on application exit
|
||||
/// </summary>
|
||||
private static void OnApplicationExit(object sender, EventArgs e)
|
||||
{
|
||||
Log.WriteApplicationEnd();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Thread exception handler
|
||||
/// </summary>
|
||||
private static void OnThreadException(object sender, ThreadExceptionEventArgs e)
|
||||
{
|
||||
Exception ex = e.Exception;
|
||||
PublishOnMainThread(ex);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Application domain exception handler
|
||||
/// </summary>
|
||||
private static void OnApplicationException(object sender, UnhandledExceptionEventArgs e)
|
||||
{
|
||||
Exception ex = e.ExceptionObject as Exception;
|
||||
PublishOnMainThread(ex);
|
||||
}
|
||||
|
||||
private static void PublishOnMainThread(Exception exception)
|
||||
{
|
||||
if (appForm.InvokeRequired)
|
||||
{
|
||||
appForm.Invoke(new ExceptionDelegate(HandleException), new object[] { exception });
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleException(exception);
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleException(Exception exception)
|
||||
{
|
||||
Log.WriteError("Fatal error occured.", exception);
|
||||
string message = "A fatal error has occurred. We apologize for this inconvenience.\n" +
|
||||
"Please contact Technical Support at support@websitepanel.net.\n\n" +
|
||||
"Make sure you include a copy of the log file from the \n" +
|
||||
"application home directory.";
|
||||
MessageBox.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
|
||||
Application.Exit();
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,248 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
/// <summary>
|
||||
/// Animated Icon.
|
||||
/// </summary>
|
||||
[ToolboxItem(true)]
|
||||
public class ProgressIcon : System.Windows.Forms.UserControl
|
||||
{
|
||||
private Thread thread = null;
|
||||
private int currentFrame = 0;
|
||||
private int delayInterval = 50;
|
||||
private int pause = 0;
|
||||
private int loopCount = 0;
|
||||
private int currentLoop = 0;
|
||||
private int firstFrame = 0;
|
||||
private int lastFrame = 13;
|
||||
private ImageList images;
|
||||
private IContainer components;
|
||||
|
||||
/// <summary>Initializes a new instance of the <b>AnimatedIcon</b> class.
|
||||
/// </summary>
|
||||
public ProgressIcon()
|
||||
{
|
||||
CheckForIllegalCrossThreadCalls = false;
|
||||
InitializeComponent();
|
||||
|
||||
this.SetStyle(ControlStyles.UserPaint, true);
|
||||
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
this.SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
this.SetStyle(ControlStyles.ResizeRedraw, true);
|
||||
}
|
||||
|
||||
#region Dispose
|
||||
/// <summary>Clean up any resources being used.</summary>
|
||||
/// <param name="disposing"><see langword="true"/> to release both managed
|
||||
/// and unmanaged resources; <see langword="false"/> to release
|
||||
/// only unmanaged resources.</param>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if( components != null )
|
||||
components.Dispose();
|
||||
|
||||
if( thread != null )
|
||||
thread.Abort();
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Component Designer generated code
|
||||
/// <summary>Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProgressIcon));
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "ProgressImage00.bmp");
|
||||
this.images.Images.SetKeyName(1, "ProgressImage01.bmp");
|
||||
this.images.Images.SetKeyName(2, "ProgressImage02.bmp");
|
||||
this.images.Images.SetKeyName(3, "ProgressImage03.bmp");
|
||||
this.images.Images.SetKeyName(4, "ProgressImage04.bmp");
|
||||
this.images.Images.SetKeyName(5, "ProgressImage05.bmp");
|
||||
this.images.Images.SetKeyName(6, "ProgressImage06.bmp");
|
||||
this.images.Images.SetKeyName(7, "ProgressImage07.bmp");
|
||||
this.images.Images.SetKeyName(8, "ProgressImage08.bmp");
|
||||
this.images.Images.SetKeyName(9, "ProgressImage09.bmp");
|
||||
this.images.Images.SetKeyName(10, "ProgressImage10.bmp");
|
||||
this.images.Images.SetKeyName(11, "ProgressImage11.bmp");
|
||||
this.images.Images.SetKeyName(12, "ProgressImage12.bmp");
|
||||
//
|
||||
// ProgressIcon
|
||||
//
|
||||
this.Name = "ProgressIcon";
|
||||
this.Size = new System.Drawing.Size(30, 30);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>Starts animation from the beginning.
|
||||
/// </summary>
|
||||
public void StartAnimation()
|
||||
{
|
||||
StopAnimation();
|
||||
CheckRange(); // Check the first and the last frames
|
||||
|
||||
thread = new Thread( new ThreadStart( threadFunc ) );
|
||||
thread.IsBackground = true;
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
/// <summary>Stops animation not changing current frame number.
|
||||
/// </summary>
|
||||
public void StopAnimation()
|
||||
{
|
||||
if( thread != null )
|
||||
{
|
||||
thread.Abort();
|
||||
thread = null;
|
||||
}
|
||||
currentLoop = 0;
|
||||
}
|
||||
|
||||
/// <summary>Displays the specified frame.</summary>
|
||||
/// <param name="frame">An index of the image stored in the <see cref="ImageList"/>.</param>
|
||||
public void ShowFrame2(int frame)
|
||||
{
|
||||
StopAnimation();
|
||||
|
||||
if( frame >= 0 && frame < images.Images.Count )
|
||||
currentFrame = frame;
|
||||
else
|
||||
currentFrame = 0;
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
/// <summary>Occurs when the control is redrawn.</summary>
|
||||
/// <param name="e">A <see cref="PaintEventArgs"/> that contains
|
||||
/// the event data.</param>
|
||||
/// <remarks>The <b>OnPaint</b> method draws current image from
|
||||
/// the <see cref="ImageList"/> if exists.</remarks>
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
// Draw a crossed rectangle if there is no frame to display
|
||||
|
||||
if( images == null ||
|
||||
currentFrame < 0 ||
|
||||
currentFrame >= images.Images.Count )
|
||||
{
|
||||
if( this.Size.Width == 0 || this.Size.Height == 0 )
|
||||
return;
|
||||
|
||||
Pen pen = new Pen( SystemColors.ControlText );
|
||||
e.Graphics.DrawRectangle( pen, 0, 0, this.Size.Width-1, this.Size.Height-1 );
|
||||
e.Graphics.DrawLine( pen, 0, 0, this.Size.Width, this.Size.Height );
|
||||
e.Graphics.DrawLine( pen, 0, this.Size.Height-1, this.Size.Width-1, 0 );
|
||||
pen.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Draw the current frame
|
||||
|
||||
e.Graphics.DrawImage( images.Images[currentFrame], 0, 0, this.Size.Width, this.Size.Height );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>The method to be invoked when the thread begins executing.
|
||||
/// </summary>
|
||||
private void threadFunc()
|
||||
{
|
||||
bool wasPause = false;
|
||||
currentFrame = firstFrame;
|
||||
|
||||
while( thread != null && thread.IsAlive )
|
||||
{
|
||||
Refresh(); // Redraw the current frame
|
||||
wasPause = false;
|
||||
|
||||
if( images != null )
|
||||
{
|
||||
currentFrame++;
|
||||
if( currentFrame > lastFrame ||
|
||||
currentFrame >= images.Images.Count )
|
||||
{
|
||||
if( pause > 0 ) // Sleep after every loop
|
||||
{
|
||||
Thread.Sleep( pause );
|
||||
wasPause = true;
|
||||
}
|
||||
|
||||
currentFrame = firstFrame;
|
||||
if( loopCount != 0 ) // 0 is infinitive loop
|
||||
{
|
||||
currentLoop++;
|
||||
}
|
||||
}
|
||||
|
||||
if( loopCount != 0 && currentLoop >= loopCount )
|
||||
{
|
||||
StopAnimation(); // The loop is completed
|
||||
}
|
||||
}
|
||||
if( !wasPause ) // That prevents summation (pause + delayInterval)
|
||||
Thread.Sleep( delayInterval );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Check if the last frame is no less than the first one.
|
||||
/// Otherwise, swap them.</summary>
|
||||
private void CheckRange()
|
||||
{
|
||||
if( lastFrame < firstFrame )
|
||||
{
|
||||
int tmp = firstFrame;
|
||||
firstFrame = lastFrame;
|
||||
lastFrame = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,855 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="images.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADc
|
||||
qQAAAk1TRnQBSQFMAgEBDQEAAQ4BAAEEAQABHgEAAR4BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAF4
|
||||
AwABeAMAAQEBAAEgBgAB4RIAIP8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/A/EB/wPiAf8D4gH/
|
||||
A+wB/wP5Af8D/gH/A/4h//8AaQAY/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/A9YB/wPp
|
||||
Af8D7AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8D8QH/A/4B/wP+Gf//AGkAFP8D/gH/AfUB9AH1Af8B9QH0
|
||||
AfUB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/
|
||||
AfUB9AH1Af8B9QH0AfUB/wP+Ff//AGkAEP8D/gH/A/EB/wPZAf8D3AH/A/kB/wPiAf8D2QH/A9kB/wPZ
|
||||
Af8D2QH/A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9wB/wH1AfQB9QH/A+IB/wPZAf8D7AH/A/4R//8A
|
||||
aQAM/wP+Af8D7AH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/4N//8AaQAI/wP+Af8D8QH/A9kB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8B9QH0AfUB/wPiAf8D1gH/A9wB/wPiAf8D8QH/AfUB9AH1Af8D4gH/A9wB/wPZ
|
||||
Af8D3AH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Cf//AGkABP8D/gH/A/kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A/EB/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wPxAf8B9QH0
|
||||
AfUB/wPpAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B9QH0AfUB/wP+Bf//AGkABP8D/gH/A/kB/wPp
|
||||
Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZ
|
||||
Af8D2QH/A+IB/wP5Af8D/gX//wBpAAP+Af8D8QH/A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A9kB/wPZ
|
||||
Af8D8QH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D8QH/A/4B//8A
|
||||
aQAD/gH/A+IB/wPWAf8D2QH/A+IB/wH1AfQB9QH/A/EB/wPsAf8D/jH/A/4B/wPsAf8D8QH/A/kB/wPp
|
||||
Af8D2QH/A9YB/wPiAf8D/gH//wBpAAP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wPx
|
||||
Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af//AGkAA/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+
|
||||
Of8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB//8AaQAD6QH/A9kB/wPZAf8D2QH/A9kB/wPZ
|
||||
Af8D+UH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB//8AaQAD4gH/A9kB/wPZAf8D2QH/A9kB/wPi
|
||||
Af8D/kH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB//8AaQAB9QH0AfUB/wPxAf8D8QH/A/EB/wPx
|
||||
Af8B9QH0AfUB/wP+Qf8D/gH/AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/AfUB9AH1Af//AGkAA+kB/wPi
|
||||
Af8D4gH/A+IB/wPiAf8D7AH/A/5B/wP+Af8D7AH/A+IB/wPiAf8D4gH/A+IB/wPpAf//AGkAA+IB/wPW
|
||||
Af8D2QH/A9kB/wPWAf8D3AH/A/5B/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf//AGkAA+kB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D2QH/A/lB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPiAf//AGkAA/EB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D1gH/A+wB/wP+Of8D/gH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+wB//8A
|
||||
aQAD+QH/A9wB/wPZAf8D2QH/A9kB/wHoAeQB6AH/AfUB9AH1Af8B+QH8Afk5/wP+Af8D+QH/A+kB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D+QH//wBpAAP+Af8D4gH/A9YB/wHhAd4B4QH/AfgB8gH3Af8B6gH4AesB/wF8
|
||||
Ad4BgQH/AYUB2gGKAf8D/jH/A/4B/wPpAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D1gH/A+IB/wP+
|
||||
Af//AGkAA/4B/wH1AfQB9QH/AfAB6wHvAf8B8AH5AfEB/wG8AfsBwQH/AYkB+gGRAf8BagHoAXQB/wE1
|
||||
AcUBPgH/AZsB4gGgAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/kB/wPxAf8B9QH0AfUB/wP+
|
||||
Af//AGkABP8D/gH/AeAB+AHiAf8BkgH7AZkB/wGDAfkBjAH/AYMB+QGMAf8BiQH6AZEB/wFqAegBdAH/
|
||||
ATUBxQE+Af8BjwHdAZQB/wP+Af8D/hn/A/4B/wP+Af8D7AH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A/EB/wP+Bf//AGkABP8D/gH/AeoB+AHrAf8BkgH7AZkB/wGDAfkBjAH/AYkB+gGRAf8BiQH6AZEB/wGJ
|
||||
AfoBkQH/AWoB6AF0Af8BoQHqAaYB/wGqAdIBqwH/AYIBvQGDAf8B2wHsAdsB/wH5AfwB+QH/A/4B/wP+
|
||||
Af8D/gH/A/kB/wPsAf8D7AH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D/gX//wBpAAj/
|
||||
A/4B/wHYAfoB2wH/AYkB+gGRAf8BiQH6AZEB/wGJAfoBkQH/AYMB+QGMAf8BmgH5AaEB/wHmAfsB6AH/
|
||||
AUIBogFEAf8BDwGGAREB/wEhAYwBIwH/ATQBlQE2Af8BkgHJAZMB/wH4AfIB+AH/A9wB/wPZAf8D2QH/
|
||||
A9kB/wP5Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D/gn//wBpAAz/A/4B/wHRAfoB1AH/AYkB+gGR
|
||||
Af8BgwH5AYwB/wGDAfkBjAH/AdgB+gHbAf8BmQHLAZkB/wEyAaMBNAH/ATsBqQE9Af8BMgGjATQB/wEc
|
||||
AZABHgH/AXwBwgF9Af8B9AHwAfQB/wPWAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D2QH/A9kB/wPZ
|
||||
Af8D7AH/A/4N//8AaQAQ/wP+Af8B2AH6AdsB/wGSAfsBmQH/AaoB/AGxAf8B0gHqAdIB/wFDAasBRQH/
|
||||
ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/ATIBowE0Af8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A+kB/wPZAf8D8QH/A/4R//8AaQAU/wP+Af8B6gH4AesB/wHqAfgB6wH/AXwBwgF9
|
||||
Af8BKQGgASwB/wE7AakBPQH/ATsBqQE9Af8BOwGpAT0B/wEuAaIBMgH/AYkByAGKAf8B9AHwAfQB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D1gH/A+IB/wP5Af8D+QH/A/4V//8AaQAY/wP+Af8D/gH/Ac4B6wHQAf8BhAHI
|
||||
AYYB/wFLAbABTQH/ATgBqAE6Af8BLgGiATIB/wEnAaABKQH/AYQByAGGAf8B8QHsAfEB/wPWAf8D1gH/
|
||||
A9kB/wPcAf8D4gH/AfUB9AH1Af8D/gH/A/4Z//8AaQAg/wP+Af8D/gH/AeoB+AHrAf8BuQHgAboB/wGS
|
||||
AdABkwH/AW0BwAFvAf8BpAHYAaUB/wH0AfAB9AH/A+IB/wPpAf8D8QH/A/kB/wP+Af8D/iH//wBpACD/
|
||||
A/4B/wP+Af8B2wHsAdsB/wGgAdEBoQH/AXIBvAF0Af8BSQGlAUwB/wGZAcsBmQH/AaoB0gGrAf8BQgGi
|
||||
AUQB/wFqAbQBawH/AZkBywGZAf8B2wHsAdsB/wP+Af8D/kH/A/4B/wP+Af8B3AHwAd0B/wGgAdEBoQH/
|
||||
AXIBvAF0Af8BSQGlAUwB/wGZAcsBmQH/AaoB0gGrAf8BQgGiAUQB/wFqAbQBawH/AZkBywGZAf8B2wHs
|
||||
AdsB/wP+Af8D/kH/A/4B/wP+Af8B4AH4AeIB/wG0AewBuAH/AZAB5gGWAf8BbAHbAXQB/wGkAesBqQH/
|
||||
AfQB8AH0Af8D4gH/A+IB/wPsAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/
|
||||
A/EB/wPiAf8D4gH/A+wB/wP5Af8D/gH/A/45/wP+Af8D/gH/Ab8B4AHAAf8BYQGxAWIB/wEqAZoBLQH/
|
||||
ARwBkAEeAf8BFwGMARkB/wEQAYgBEQH/AYUBwgGGAf8BkgHJAZMB/wEKAYMBDAH/ARMBiAEVAf8BEwGI
|
||||
ARUB/wEiAZIBJAH/AVkBrAFbAf8BswHbAbQB/wP+Af8D/jH/A/4B/wP+Af8BvwHgAcAB/wFhAbEBYgH/
|
||||
ASoBmgEtAf8BHAGQAR4B/wEXAYwBGQH/ARABiAERAf8BhQHCAYYB/wGSAckBkwH/AQoBgwEMAf8BEwGI
|
||||
ARUB/wETAYgBFQH/ASIBkgEkAf8BWQGsAVsB/wGzAdsBtAH/A/4B/wP+Mf8D/gH/A/4B/wHNAfMB0AH/
|
||||
AYMB4QGJAf8BWgHdAWMB/wFLAdkBVAH/AUkB0gFSAf8BQgHQAUsB/wGVAeoBmwH/AfEB7AHxAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A+IB/wPxAf8D/gH/A/4x/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8D8QH/A/4B/wP+Lf8D/gH/AckB4gHJAf8BuQHg
|
||||
AboB/wGSAckBkwH/ARMBiAEVAf8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/
|
||||
AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEKAYMBDAH/AWoBtAFrAf8ByQHi
|
||||
AckB/wHBAeIBwgH/A/4p/wP+Af8ByQHiAckB/wG/AeABwAH/AZIByQGTAf8BEwGIARUB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/ASIBkgEkAf8BIgGS
|
||||
ASQB/wEaAYwBHAH/AQoBgwEMAf8BagG0AWsB/wHWAfQB2AH/AdAB8wHTAf8D/in/A/4B/wHJAeIByQH/
|
||||
AbgB3QG5Af8BrQHyAbIB/wFLAdkBVAH/AVUB2wFeAf8BVQHbAV4B/wFVAdsBXgH/AUkB0gFSAf8BmAHq
|
||||
AZ0B/wHxAewB8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wP+Kf8D/gH/
|
||||
AfUB9AH1Af8B9QH0AfUB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPWAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wP+Jf8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/
|
||||
AdcB6gHYAf8BTwGqAVEB/wEiAZIBJAH/AScBlgEpAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHL
|
||||
AZkB/wETAYgBFQH/ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/ASwBlQEuAf8B0AHnAdAB/wFJAaUBTAH/
|
||||
ARoBjAEcAf8BmQHLAZkB/wP+If8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/AdcB6gHYAf8BTwGq
|
||||
AVEB/wEiAZIBJAH/AScBlgEpAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/
|
||||
ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/ASwBlQEuAf8B0gHqAdIB/wFsAdsBdAH/AUIBywFKAf8BrAHq
|
||||
AbAB/wP+If8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/AdwB8AHdAf8BfAHnAYMB/wFVAdsBXgH/
|
||||
AVoB3QFjAf8BVQHbAV4B/wFJAdIBUgH/AZUB6gGbAf8B8QHsAfEB/wPZAf8D2QH/A9kB/wPZAf8D3AH/
|
||||
AfUB9AH1Af8D4gH/A9kB/wPsAf8D/iH/A/4B/wPxAf8D2QH/A9wB/wP5Af8D4gH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPcAf8B9QH0AfUB/wPiAf8D2QH/A+wB/wP+Hf8D/gH/
|
||||
AZoB0gGbAf8BIwGZASYB/wEmAZgBKQH/AR8BkgEhAf8BkgHJAZMB/wG5AeABugH/ASIBkgEkAf8BJgGY
|
||||
ASkB/wEmAZgBKQH/ARwBkAEeAf8BiQHIAYoB/wGaAdIBmwH/ARwBkAEeAf8BJgGYASkB/wEiAZIBJAH/
|
||||
ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/ARMBiAEVAf8BGgGMARwB/wETAYgBFQH/AYcBwgGIAf8D/hn/
|
||||
A/4B/wGaAdIBmwH/ASMBmQEmAf8BJgGYASkB/wEfAZIBIQH/AZIByQGTAf8BuAHdAbkB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BJgGYASkB/wEcAZABHgH/AYkByAGKAf8BmgHSAZsB/wEcAZABHgH/ASYBmAEpAf8BIgGS
|
||||
ASQB/wETAYgBFQH/AZABxQGRAf8BvAHxAcAB/wFCAdABSwH/AUIBywFKAf8BPAHLAUUB/wGbAeIBoAH/
|
||||
A/4Z/wP+Af8BmgHSAZsB/wEjAZkBJgH/ASYBmAEpAf8BHwGSASEB/wGJAcIBigH/Ac4B+gHRAf8BVQHb
|
||||
AV4B/wFaAd0BYwH/AVoB4AFjAf8BWgHgAWMB/wGlAfIBqgH/AfEB7AHxAf8D1gH/A9kB/wPZAf8D2QH/
|
||||
A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/4Z/wP+Af8D7AH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/
|
||||
A/4V/wP+Af8BqwHYAawB/wEmAZgBKQH/ASoBmgEtAf8BKgGaAS0B/wEqAZoBLQH/ATEBnQEzAf8B0gHq
|
||||
AdIB/wFpAbsBawH/ASMBmQEmAf8BSAGtAUsB/wFiAboBYwH/AbkB4AG6Af8BwQHiAcIB/wFtAcABbwH/
|
||||
AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/ASIBkgEkAf8BGgGM
|
||||
ARwB/wESAYQBFAH/AZIByQGTAf8D/hH/A/4B/wGrAdgBrAH/ASYBmAEpAf8BKgGaAS0B/wEuAZwBMQH/
|
||||
ASoBmgEtAf8BMQGdATMB/wHSAeoB0gH/AWkBuwFrAf8BIwGZASYB/wFIAa0BSwH/AWIBugFjAf8BuQHg
|
||||
AboB/wHBAeIBwgH/AW0BwAFvAf8BUgGyAVQB/wEyAaMBNAH/AU8BqgFRAf8B3AHwAd0B/wFlAdoBbQH/
|
||||
AUIB0AFLAf8BSQHSAVIB/wFCAdABSwH/ATwBywFFAf8BqQHpAa0B/wP+Ef8D/gH/AasB2AGsAf8BJgGY
|
||||
ASkB/wEqAZoBLQH/ASoBmgEtAf8BKgGaAS0B/wExAZ0BMwH/AdIB6gHSAf8BlAHwAZoB/wFnAewBcQH/
|
||||
AYIB8QGKAf8BmgH5AaEB/wHRAfoB1AH/AfQB8AH0Af8D4gH/A9wB/wPZAf8D3AH/A/kB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A+wB/wP+Ef8D/gH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D4gH/
|
||||
A9YB/wPcAf8D4gH/A/EB/wH1AfQB9QH/A+IB/wPcAf8D2QH/A9wB/wP5Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/g3/A/4B/wHcAfAB3QH/ATIBowE0Af8BJgGYASkB/wEuAZwBMQH/AS4BnAExAf8BLgGc
|
||||
ATEB/wEfAZIBIQH/AWEBsQFiAf8B0gHqAdIB/wGrAdgBrAH/AegB9QHoAf8D/gH/A/4B/wP+Af8D/gH/
|
||||
AfAB+QHxAf8BswHbAbQB/wHLAegBywH/AZIB0AGTAf8BHwGSASEB/wEfAZIBIQH/ASIBkgEkAf8BIQGM
|
||||
ASMB/wEaAYwBHAH/ARoBjAEcAf8ByQHiAckB/wP+Cf8D/gH/AdwB8AHdAf8BMgGjATQB/wEmAZgBKQH/
|
||||
AS4BnAExAf8BLgGcATEB/wEuAZwBMQH/AR8BkgEhAf8BYQGxAWIB/wHSAeoB0gH/AasB2AGsAf8B6gH4
|
||||
AesB/wP+Af8D/gH/A/4B/wP+Af8B8AH5AfEB/wGzAdsBtAH/AcsB6AHLAf8BxQH6AckB/wFaAeABYwH/
|
||||
AUkB0gFSAf8BSQHSAVIB/wFJAdIBUgH/AUIBywFKAf8BQgHLAUoB/wHWAfQB2AH/A/4J/wP+Af8B3AHw
|
||||
Ad0B/wEyAaMBNAH/ASYBmAEpAf8BLgGcATEB/wEuAZwBMQH/AS4BnAExAf8BHwGSASEB/wFhAbEBYgH/
|
||||
AeAB+AHiAf8BxQH6AckB/wHwAfkB8QH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/AfUB9AH1Af8D6QH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/AfUB9AH1Af8D6QH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wHgAfEB4QH/AZIByQGTAf8BMgGj
|
||||
ATQB/wEjAZkBJgH/AS4BnAExAf8BJgGYASkB/wEmAZgBKQH/AZIByQGTAf8D/gH/A/4Z/wP+Af8D/gH/
|
||||
AasB2AGsAf8BRQGwAUcB/wEqAZoBLQH/AR8BigEhAf8BFwGMARkB/wEaAYwBHAH/AWoBtAFrAf8B3AHw
|
||||
Ad0B/wP+Cf8D/gH/AeAB8QHhAf8BkgHJAZMB/wEyAaMBNAH/ASMBmQEmAf8BKgGaAS0B/wEmAZgBKQH/
|
||||
ASYBmAEpAf8BkgHJAZMB/wP+Af8D/hn/A/4B/wP+Af8B0QH6AdQB/wGaAfkBoQH/AWsB5QF0Af8BSAHS
|
||||
AVEB/wFCAdABSwH/AUIBywFKAf8BgQHgAYYB/wHgAfgB4gH/A/4J/wP+Af8B4AHxAeEB/wGSAckBkwH/
|
||||
ATIBowE0Af8BIwGZASYB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wGSAckBkwH/A/4B/wP+Gf8D/gH/
|
||||
A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A/4J/wP+Af8B8AH5AfEB/wHxAewB8QH/
|
||||
AdwB2gHcAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Af8D/hn/A/4B/wP+Af8D7AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/A/kB/wP+Bf8D/gH/AbkB4AG6Af8BUgGyAVQB/wHBAeIBwgH/AdIB6gHSAf8BcgG8
|
||||
AXQB/wEjAZkBJgH/ARwBkAEeAf8BqgHSAasB/wP+Kf8D/gH/AcEB4gHCAf8BRQGwAUcB/wEiAZIBJAH/
|
||||
AVMBqQFVAf8BwQHiAcIB/wHJAeIByQH/AVMBqQFVAf8BqgHSAasB/wP+Af8D/gH/AbkB4AG6Af8BUgGy
|
||||
AVQB/wHBAeIBwgH/AdIB6gHSAf8BcgG8AXQB/wEjAZkBJgH/ARwBkAEeAf8BqgHSAasB/wP+Kf8D/gH/
|
||||
Ad0B+wHgAf8BmgH5AaEB/wFaAeABYwH/AWwB2wF0Af8BxQH6AckB/wH4AfIB+AH/A+IB/wPxAf8D/gH/
|
||||
A/4B/wG5AeABugH/AVIBsgFUAf8BwQHiAcIB/wHSAeoB0gH/AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/
|
||||
AaoB0gGrAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPxAf8D/gH/
|
||||
A/4B/wHRAfoB1AH/AYIB8QGKAf8BzgH6AdEB/wH4AfIB+AH/AegB5AHoAf8D2QH/A9kB/wPxAf8D/in/
|
||||
A/4B/wPxAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPxAf8D/gH/A/4B/wFyAbwBdAH/
|
||||
ASMBmQEmAf8BKgGaAS0B/wFwAbkBcgH/AdIB6gHSAf8BswHbAbQB/wGZAcsBmQH/A/4x/wP+Af8BswHb
|
||||
AbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/
|
||||
AXIBvAF0Af8BIwGZASYB/wEqAZoBLQH/AXABuQFyAf8B0gHqAdIB/wGzAdsBtAH/AZkBywGZAf8D/jH/
|
||||
A/4B/wHRAfoB1AH/Ac4B+gHRAf8B8AH5AfEB/wHxAewB8QH/A9kB/wPWAf8D4gH/A/4B/wP+Af8BcgG8
|
||||
AXQB/wEjAZkBJgH/ASoBmgEtAf8BcAG5AXIB/wHSAeoB0gH/AbMB2wG0Af8BmQHLAZkB/wP+Mf8D/gH/
|
||||
A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/A+IB/wP+Af8D/gH/AZ4B8wGkAf8BagHoAXQB/wFqAegBdAH/
|
||||
AZQB8AGaAf8B4AH4AeIB/wH0AfAB9AH/A+wB/wP+Mf8D/gH/A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/
|
||||
A+IB/wP+Af8B4AHxAeEB/wE/AakBQQH/ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHL
|
||||
AZkB/wP+Of8D/gH/AcEB4gHCAf8BPwGpAUEB/wETAYgBFQH/AR8BigEhAf8BGgGMARwB/wEiAZIBJAH/
|
||||
AdIB6gHSAf8B4AHxAeEB/wE/AakBQQH/ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHL
|
||||
AZkB/wP+Of8D/gH/AfQB8AH0Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af8B4AHxAeEB/wE/AakBQQH/
|
||||
ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHLAZkB/wP+Of8D/gH/A/EB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wHqAfgB6wH/AXoB8gGBAf8BdQHxAX4B/wFxAesBegH/AWoB6AF0Af8BWgHd
|
||||
AWMB/wGkAesBqQH/A/45/wP+Af8D8QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D+QH/AasB2AGsAf8BLgGi
|
||||
ATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGjATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/
|
||||
ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGi
|
||||
ATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGjATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wPsAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPsAf8BqwHYAawB/wEuAaIBMgH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/
|
||||
ARMBiAEVAf8BkgHJAZMB/wP+Of8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wHKAfkBzQH/
|
||||
AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AXEB6wF6Af8BQAHPAUoB/wGkAeYBqAH/A/45/wP+Af8D7AH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/AYQByAGGAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BKgGa
|
||||
AS0B/wEhAYwBIwH/AdsB7AHbQf8B6AH1AegB/wFLAbABTQH/ASYBmAEpAf8BIgGSASQB/wEiAZIBJAH/
|
||||
ARMBiAEVAf8BagG0AWsB/wGEAcgBhgH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/ASoBmgEtAf8BIQGM
|
||||
ASMB/wHbAewB20H/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wGEAcgBhgH/ASkBoAEsAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ASoBmgEtAf8BIQGMASMB/wHbAewB20H/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+IB/wGqAfwBsQH/AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AWgB5QFxAf8BQgHLAUoB/wHgAfEB4UH/
|
||||
A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wFpAbsBawH/AS4BogEyAf8BNgGkATkB/wE2AaQBOQH/
|
||||
ASIBkgEkAf8BPgGbAUAB/wH5AfwB+UH/A/4B/wFtAcABbwH/ASMBmQEmAf8BHwGKASEB/wEfAZIBIQH/
|
||||
ARcBjAEZAf8BSQGlAUwB/wFpAbsBawH/AS4BogEyAf8BNgGkATkB/wE2AaQBOQH/ASIBkgEkAf8BPgGb
|
||||
AUAB/wH5AfwB+UH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wFpAbsBawH/AS4BogEyAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ASIBkgEkAf8BPgGbAUAB/wH5AfwB+UH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+IB/wGaAfkBoQH/AXoB8gGBAf8BegHyAYEB/wF6AfIBgQH/AVoB4AFjAf8BWwHQAWIB/wH5AfwB+UH/
|
||||
A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wHLAegBywH/AbkB4AG6Af8BuQHgAboB/wG5AeABugH/
|
||||
AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/AdIB6gHSAf8BuAHdAbkB/wGzAdsBtAH/AbMB2wG0Af8BswHb
|
||||
AbQB/wG/AeABwAH/AcsB6AHLAf8BuQHgAboB/wG5AeABugH/AbkB4AG6Af8BswHbAbQB/wHBAeIBwgH/
|
||||
A/5B/wP+Af8B9QH0AfUB/wPxAf8D8QH/A/EB/wPxAf8B9QH0AfUB/wHLAegBywH/AbkB4AG6Af8BuQHg
|
||||
AboB/wG5AeABugH/AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/
|
||||
AfUB9AH1Af8B3QH7AeAB/wHRAfoB1AH/AdQB/AHYAf8B1AH8AdgB/wHFAfIByAH/Ac0B8wHQAf8D/kH/
|
||||
A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/AZIB0AGTAf8BfAHCAX0B/wF8AcIBfQH/
|
||||
AXwBwgF9Af8BaQG7AWsB/wGJAcIBigH/A/5B/wP+Af8BzgH6AdEB/wGeAfMBpAH/AYwB5gGSAf8BjAHm
|
||||
AZIB/wGMAeYBkgH/AZwB7AGhAf8BkgHQAZMB/wF8AcIBfQH/AXwBwgF9Af8BfAHCAX0B/wFpAbsBawH/
|
||||
AYkBwgGKAf8D/kH/A/4B/wPsAf8D4gH/A+IB/wPiAf8D4gH/A+kB/wGSAdABkwH/AXwBwgF9Af8BfAHC
|
||||
AX0B/wF8AcIBfQH/AWkBuwFrAf8BiQHCAYoB/wP+Qf8D/gH/A+wB/wPiAf8D4gH/A+IB/wPiAf8D6QH/
|
||||
AZIByQGTAf8BdQHAAXYB/wF4AcABeQH/AXwBwgF9Af8BagG0AWsB/wGIAb8BiQH/A/5B/wP+Af8D7AH/
|
||||
A+IB/wPiAf8D4gH/A+IB/wPpAf8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/
|
||||
ATQBlQE2Af8B+QH8AflB/wP+Af8BngHzAaQB/wFfAeIBaQH/AUkB0gFSAf8BSwHZAVQB/wFCAdABSwH/
|
||||
AWwB2wF0Af8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5
|
||||
AfFB/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGj
|
||||
ATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5AfFB/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf8BaQG7
|
||||
AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5AfFB/wP+Af8D4gH/
|
||||
A9YB/wPZAf8D2QH/A9YB/wPiAf8BiQHIAYoB/wEyAaMBNAH/ATsBqQE9Af8BOwGpAT0B/wEyAaMBNAH/
|
||||
AR8BigEhAf8B1wHqAdhB/wHvAfwB8AH/AYIB8QGKAf8BXwHiAWkB/wFVAdsBXgH/AVUB2wFeAf8BSQHS
|
||||
AVIB/wGMAeYBkgH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/
|
||||
AdcB6gHYQf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/
|
||||
ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/
|
||||
AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8D+QH/
|
||||
A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp
|
||||
AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wHFAfoByQH/AWcB7AFxAf8BWgHdAWMB/wFaAd0BYwH/
|
||||
AVUB2wFeAf8BSwHZAVQB/wGwAewBtAH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOQGh
|
||||
ATsB/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPsAf8BswHb
|
||||
AbQB/wEyAaMBNAH/ATsBqQE9Af8BOwGpAT0B/wE5AaEBOwH/AQoBgwEMAf8BiQHCAYoB/wP+Of8D/gH/
|
||||
A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wGzAdsBtAH/ATIBowE0Af8BOwGpAT0B/wE7AakBPQH/
|
||||
ATkBoQE7Af8BCgGDAQwB/wGJAcIBigH/A/45/wP+Af8D7AH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D7AH/
|
||||
AegB9QHoAf8BSwGwAU0B/wE7AakBPQH/ATIBowE0Af8BMgGjATQB/wFnAbYBaQH/AckB4gHJAf8B+QH8
|
||||
Afk5/wP+Af8B6gH4AesB/wGeAfMBpAH/AVoB3QFjAf8BVQHbAV4B/wFVAdsBXgH/AVoB3QFjAf8B4AH4
|
||||
AeIB/wHoAfUB6AH/AUsBsAFNAf8BOwGpAT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2AWkB/wHJAeIByQH/
|
||||
AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wHoAfUB6AH/AUsBsAFNAf8BOwGp
|
||||
AT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2AWkB/wHJAeIByQH/AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wHoAfUB6AH/AUsBsAFNAf8BOwGpAT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2
|
||||
AWkB/wHJAeIByQH/AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Af8BfAHC
|
||||
AX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/
|
||||
A+kB/wPiAf8B+AHyAfgB/wHRAfoB1AH/AXwB5wGDAf8BSwHZAVQB/wGDAeEBiQH/A/4B/wP+Af8BfAHC
|
||||
AX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/
|
||||
A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/
|
||||
AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0
|
||||
AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/AVsBsQFdAf8BuQHg
|
||||
AboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/
|
||||
A+IB/wPWAf8D4gH/A/4B/wP+Af8BzgHrAdAB/wGfAdUBoQH/AdwB8AHdAf8BmgHSAZsB/wFDAasBRQH/
|
||||
ASYBmAEpAf8BEgGEARQB/wGQAcUBkQH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D2QH/Ae0B6AHtAf8B9QH0
|
||||
AfUB/wG0AfMBuAH/AdAB8wHTAf8D/gH/A/4B/wHLAegBywH/AZ8B1QGhAf8B3AHwAd0B/wGaAdIBmwH/
|
||||
AUMBqwFFAf8BJgGYASkB/wESAYQBFAH/AZABxQGRAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/
|
||||
A/kB/wPxAf8B9QH0AfUB/wP+Af8D/gH/AcsB6AHLAf8BnwHVAaEB/wHcAfAB3QH/AZoB0gGbAf8BQwGr
|
||||
AUUB/wEmAZgBKQH/ARIBhAEUAf8BkAHFAZEB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPpAf8D+QH/
|
||||
A/EB/wH1AfQB9QH/A/4B/wP+Af8BywHoAcsB/wGfAdUBoQH/AdwB8AHdAf8BmgHSAZsB/wFDAasBRQH/
|
||||
ASYBmAEpAf8BEgGEARQB/wGQAcUBkQH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D2QH/A+kB/wP5Af8D8QH/
|
||||
AfUB9AH1Af8D/gX/A/4B/wHSAeoB0gH/AVIBsgFUAf8BMgGjATQB/wE7AakBPQH/AT8BqQFBAf8BLgGc
|
||||
ATEB/wESAYQBFAH/AYIBvQGDAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9wB/wH0AfAB9AH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/
|
||||
AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/
|
||||
AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/
|
||||
AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A/4J/wP+Af8B4AHxAeEB/wFLAbABTQH/ATgBqAE6Af8BPwGpAUEB/wE7AakBPQH/
|
||||
AT8BqQFBAf8BIwGZASYB/wGJAcIBigH/AaoB0gGrAf8BggG9AYMB/wHbAewB2wH/AfkB/AH5Af8D/gH/
|
||||
A/4B/wP+Af8D+QH/A+wB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Cf8D/gH/
|
||||
AeAB8QHhAf8BSwGwAU0B/wE4AagBOgH/AT8BqQFBAf8BOwGpAT0B/wE/AakBQQH/ASMBmQEmAf8BiQHC
|
||||
AYoB/wGqAdIBqwH/AYIBvQGDAf8B2wHsAdsB/wH5AfwB+QH/A/4B/wP+Af8D/gH/A/kB/wPsAf8D7AH/
|
||||
A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D/gn/A/4B/wHgAfEB4QH/AUsBsAFNAf8BOAGo
|
||||
AToB/wE/AakBQQH/ATsBqQE9Af8BPwGpAUEB/wEjAZkBJgH/AYkBwgGKAf8BqgHSAasB/wGCAb0BgwH/
|
||||
AdsB7AHbAf8B+QH8AfkB/wP+Af8D/gH/A/4B/wP5Af8D7AH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D+QH/A/4J/wP+Af8B4AHxAeEB/wFLAbABTQH/ATsBqQE9Af8BPwGpAUEB/wE7AakBPQH/
|
||||
AT8BqQFBAf8BIwGZASYB/wGJAcIBigH/AaoB0gGrAf8BggG9AYMB/wHbAewB2wH/AfkB/AH5Af8D/gH/
|
||||
A/4B/wP+Af8D+QH/A+wB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Df8D/gH/
|
||||
AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGi
|
||||
AUQB/wEQAYgBEQH/ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/ASEBjAEjAf8BNAGV
|
||||
ATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/
|
||||
AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGp
|
||||
AT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/
|
||||
ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/EB/wP+Ff8D/gH/AbMB2wG0Af8BOwGpAT0B/wE4AagBOgH/ATYBpAE5Af8BuQHg
|
||||
AboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/ARwBkAEeAf8BfAHCAX0B/wH0AfAB9AH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPsAf8D/hn/A/4B/wGzAdsBtAH/
|
||||
ATsBqQE9Af8BOAGoAToB/wE2AaQBOQH/AbkB4AG6Af8BmgHSAZsB/wEyAaMBNAH/ATsBqQE9Af8BMgGj
|
||||
ATQB/wEcAZABHgH/AXwBwgF9Af8B9AHwAfQB/wPWAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D2QH/
|
||||
A9kB/wPZAf8D7AH/A/4Z/wP+Af8BswHbAbQB/wE7AakBPQH/ATgBqAE6Af8BNgGkATkB/wG5AeABugH/
|
||||
AZoB0gGbAf8BMgGjATQB/wE7AakBPQH/ATIBowE0Af8BHAGQAR4B/wF8AcIBfQH/AfQB8AH0Af8D1gH/
|
||||
A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A+wB/wP+Gf8D/gH/AbMB2wG0Af8BOwGp
|
||||
AT0B/wE4AagBOgH/ATYBpAE5Af8BuQHgAboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/
|
||||
ARwBkAEeAf8BfAHCAX0B/wH0AfAB9AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/h3/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGp
|
||||
AT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/
|
||||
AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/AfQB8AH0Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHA
|
||||
AW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/
|
||||
AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/
|
||||
AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BMgGj
|
||||
ATQB/wGJAcgBigH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iX/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/i3/
|
||||
A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHI
|
||||
AYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/A9wB/wPiAf8B9AHwAfQB/wP+Af8D/jH/A/4B/wP+Af8BzgHr
|
||||
AdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wH0AfAB9AH/
|
||||
A9YB/wPWAf8D2QH/A9wB/wPiAf8B9QH0AfUB/wP+Af8D/jH/A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/
|
||||
AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/
|
||||
A9wB/wPiAf8B9QH0AfUB/wP+Af8D/jH/A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGo
|
||||
AToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/A9wB/wPiAf8B9QH0
|
||||
AfUB/wP+Af8D/jn/A/4B/wP+Af8B8AH5AfEB/wG5AeABugH/AZIB0AGTAf8BbQHAAW8B/wGkAdgBpQH/
|
||||
AfQB8AH0Af8D4gH/A+kB/wPxAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wHqAfgB6wH/AbkB4AG6Af8BkgHQ
|
||||
AZMB/wFtAcABbwH/AaQB2AGlAf8B9AHwAfQB/wPiAf8D6QH/A/EB/wP5Af8D/gH/A/5B/wP+Af8D/gH/
|
||||
AeoB+AHrAf8BuQHgAboB/wGSAdABkwH/AW0BwAFvAf8BpAHYAaUB/wH0AfAB9AH/A+IB/wPpAf8D8QH/
|
||||
A/kB/wP+Af8D/kH/A/4B/wP+Af8B6gH4AesB/wG5AeABugH/AZIB0AGTAf8BbQHAAW8B/wGkAdgBpQH/
|
||||
AfQB8AH0Af8D4gH/A+kB/wPxAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wHgAfgB4gH/AbQB7AG4Af8BkAHm
|
||||
AZYB/wFsAdsBdAH/AbEB8QG1Af8BoAHRAaEB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/
|
||||
A/4B/wP+Qf8D/gH/A/4B/wHbAewB2wH/AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/AZkBywGZAf8BqgHS
|
||||
AasB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/A/4B/wP+Qf8D/gH/A/4B/wHcAfAB3QH/
|
||||
AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/AZkBywGZAf8BqgHSAasB/wFCAaIBRAH/AWoBtAFrAf8BmQHL
|
||||
AZkB/wHbAewB2wH/A/4B/wP+Qf8D/gH/A/4B/wHcAfAB3QH/AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/
|
||||
AZkBywGZAf8BqgHSAasB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/A/4B/wP+Of8D/gH/
|
||||
A/4B/wHNAfMB0AH/AYMB4QGJAf8BWgHdAWMB/wFLAdkBVAH/AUkB0gFSAf8BQgHQAUsB/wGhAeoBpgH/
|
||||
AZIByQGTAf8BCgGDAQwB/wETAYgBFQH/ARMBiAEVAf8BIgGSASQB/wFZAawBWwH/AbMB2wG0Af8D/gH/
|
||||
A/4x/wP+Af8D/gH/Ab8B4AHAAf8BYQGxAWIB/wEqAZoBLQH/ARoBjAEcAf8BFwGMARkB/wEQAYgBEQH/
|
||||
AYUBwgGGAf8BkgHJAZMB/wEKAYMBDAH/ARMBiAEVAf8BEwGIARUB/wEiAZIBJAH/AVkBrAFbAf8BswHb
|
||||
AbQB/wP+Af8D/jH/A/4B/wP+Af8BvwHgAcAB/wFhAbEBYgH/ASoBmgEtAf8BGgGMARwB/wEXAYwBGQH/
|
||||
ARABiAERAf8BhQHCAYYB/wGSAckBkwH/AQoBgwEMAf8BEwGIARUB/wETAYgBFQH/ASIBkgEkAf8BWQGs
|
||||
AVsB/wGzAdsBtAH/A/4B/wP+Mf8D/gH/A/4B/wHBAeIBwgH/AWEBsQFiAf8BKgGaAS0B/wEcAZABHgH/
|
||||
ARcBjAEZAf8BEAGIAREB/wGFAcIBhgH/AZYByQGYAf8BCgGDAQwB/wETAYgBFQH/ARMBiAEVAf8BIgGS
|
||||
ASQB/wFZAawBWwH/AbMB2wG0Af8D/gH/A/4t/wP+Af8B9QH0AfUB/wH4AfIB+AH/AakB6QGtAf8BSwHZ
|
||||
AVQB/wFVAdsBXgH/AVUB2wFeAf8BVQHbAV4B/wFJAdIBUgH/AaQB6wGpAf8BlgHJAZgB/wETAYgBFQH/
|
||||
ASIBkgEkAf8BHwGSASEB/wEaAYwBHAH/AQoBgwEMAf8BagG0AWsB/wHJAeIByQH/AcEB4gHCAf8D/in/
|
||||
A/4B/wHJAeIByQH/AbkB4AG6Af8BkgHJAZMB/wETAYgBFQH/ASIBkgEkAf8BIgGSASQB/wEiAZIBJAH/
|
||||
ARcBjAEZAf8BiQHCAYoB/wGZAcsBmQH/ARMBiAEVAf8BIgGSASQB/wEfAZIBIQH/ARoBjAEcAf8BCgGD
|
||||
AQwB/wFqAbQBawH/AckB4gHJAf8BwQHiAcIB/wP+Kf8D/gH/AckB4gHJAf8BvwHgAcAB/wGSAckBkwH/
|
||||
ARMBiAEVAf8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGI
|
||||
ARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEKAYMBDAH/AWoBtAFrAf8ByQHiAckB/wHBAeIBwgH/
|
||||
A/4p/wP+Af8ByQHiAckB/wG5AeABugH/AZIByQGTAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BIgGS
|
||||
ASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/ASIBkgEkAf8BHwGSASEB/wEaAYwBHAH/
|
||||
AQoBgwEMAf8BagG0AWsB/wHJAeIByQH/AcEB4gHCAf8D/iX/A/4B/wPxAf8D2QH/A9wB/wHvAfwB8AH/
|
||||
AXUB5QF9Af8BVQHbAV4B/wFaAd0BYwH/AVUB2wFeAf8BSQHSAVIB/wGkAesBqQH/AZIByQGTAf8BEwGI
|
||||
ARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/
|
||||
AZkBywGZAf8D/iH/A/4B/wGrAdgBrAH/AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGS
|
||||
ASQB/wEnAZYBKQH/AScBlgEpAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/iH/
|
||||
A/4B/wGrAdgBrAH/AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGSASQB/wEnAZYBKQH/
|
||||
ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGM
|
||||
ARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/iH/A/4B/wGrAdgBrAH/
|
||||
AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGSASQB/wEnAZYBKQH/AScBlgEpAf8BFwGM
|
||||
ARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/
|
||||
AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/h3/A/4B/wPsAf8D2QH/A9kB/wPZAf8B8QHs
|
||||
AfEB/wHFAfIByAH/AVUB2wFeAf8BWgHdAWMB/wFaAeABYwH/AVoB4AFjAf8BsQH7AbYB/wGZAcsBmQH/
|
||||
ARwBkAEeAf8BJwGWASkB/wEiAZIBJAH/ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/ARMBiAEVAf8BGgGM
|
||||
ARwB/wETAYgBFQH/AYcBwgGIAf8D/hn/A/4B/wGaAdIBmwH/ASMBmQEmAf8BJgGYASkB/wEfAZIBIQH/
|
||||
AZIByQGTAf8BuAHdAbkB/wEiAZIBJAH/AScBlgEpAf8BJgGYASkB/wEcAZABHgH/AYkByAGKAf8BmgHS
|
||||
AZsB/wEcAZABHgH/AScBlgEpAf8BIgGSASQB/wETAYgBFQH/AZYByQGYAf8BqgHSAasB/wETAYgBFQH/
|
||||
ARoBjAEcAf8BEgGEARQB/wGHAcIBiAH/A/4Z/wP+Af8BmgHSAZsB/wEjAZkBJgH/ASYBmAEpAf8BHwGS
|
||||
ASEB/wGSAckBkwH/AbgB3QG5Af8BIgGSASQB/wEnAZYBKQH/ASYBmAEpAf8BHAGQAR4B/wGJAcgBigH/
|
||||
AZoB0gGbAf8BHAGQAR4B/wEnAZYBKQH/ASIBkgEkAf8BEwGIARUB/wGWAckBmAH/AaoB0gGrAf8BEwGI
|
||||
ARUB/wEaAYwBHAH/ARIBhAEUAf8BhwHCAYgB/wP+Gf8D/gH/AZoB0gGbAf8BIwGZASYB/wEmAZgBKQH/
|
||||
AR8BkgEhAf8BkgHJAZMB/wG4Ad0BuQH/ASIBkgEkAf8BJwGWASkB/wEmAZgBKQH/ARwBkAEeAf8BiQHI
|
||||
AYoB/wGaAdIBmwH/ARwBkAEeAf8BJwGWASkB/wEiAZIBJAH/ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/
|
||||
ARMBiAEVAf8BGgGMARwB/wETAYgBFQH/AYcBwgGIAf8D/hX/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
AdwB2gHcAf8B9QH0AfUB/wGKAewBkQH/AWcB7AFxAf8BggHxAYoB/wGaAfkBoQH/AdgB+gHbAf8BwQHi
|
||||
AcIB/wFtAcABbwH/AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/
|
||||
ASIBkgEkAf8BGgGMARwB/wESAYQBFAH/AZYByQGYAf8D/hH/A/4B/wGrAdgBrAH/ASYBmAEpAf8BKgGa
|
||||
AS0B/wEqAZoBLQH/ASoBmgEtAf8BMQGdATMB/wHSAeoB0gH/AWkBuwFrAf8BIwGZASYB/wFIAa0BSwH/
|
||||
AWIBugFjAf8BuQHgAboB/wHBAeIBwgH/AW0BwAFvAf8BUgGyAVQB/wEyAaMBNAH/AVMBqQFVAf8B2wHs
|
||||
AdsB/wE/AZ0BQQH/ARoBjAEcAf8BIgGSASQB/wEaAYwBHAH/ARIBhAEUAf8BlgHJAZgB/wP+Ef8D/gH/
|
||||
AasB2AGsAf8BJgGYASkB/wEqAZoBLQH/ASoBmgEtAf8BKgGaAS0B/wExAZ0BMwH/AdIB6gHSAf8BaQG7
|
||||
AWsB/wEjAZkBJgH/AUoBrAFNAf8BYgG6AWMB/wG5AeABugH/AcEB4gHCAf8BbQHAAW8B/wFSAbIBVAH/
|
||||
ATIBowE0Af8BUwGpAVUB/wHbAewB2wH/AT8BnQFBAf8BGgGMARwB/wEiAZIBJAH/ARoBjAEcAf8BEgGE
|
||||
ARQB/wGWAckBmAH/A/4R/wP+Af8BqwHYAawB/wEmAZgBKQH/ASoBmgEtAf8BKgGaAS0B/wEqAZoBLQH/
|
||||
ATEBnQEzAf8B0gHqAdIB/wFpAbsBawH/ASMBmQEmAf8BSAGtAUsB/wFiAboBYwH/AbkB4AG6Af8BwQHi
|
||||
AcIB/wFtAcABbwH/AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/
|
||||
ASIBkgEkAf8BGgGMARwB/wETAYgBFQH/AZYByQGYAf8D/g3/A/4B/wP5Af8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/AeAB+AHiAf8BxQH6AckB/wHwAfkB8QH/A/4B/wP+Af8D/gH/A/4B/wHwAfkB8QH/
|
||||
AbMB2wG0Af8BywHoAcsB/wGSAdABkwH/AR8BkgEhAf8BHwGSASEB/wEfAZIBIQH/ASEBjAEjAf8BGgGM
|
||||
ARwB/wEaAYwBHAH/AckB4gHJAf8D/gn/A/4B/wHbAewB2wH/ATIBowE0Af8BJgGYASkB/wEuAZwBMQH/
|
||||
AS4BnAExAf8BLgGcATEB/wEfAZIBIQH/AWEBsQFiAf8B0gHqAdIB/wGrAdgBrAH/AegB9QHoAf8D/gH/
|
||||
A/4B/wP+Af8D/gH/AfAB+QHxAf8BswHbAbQB/wHLAegBywH/AZIB0AGTAf8BHwGSASEB/wEfAZIBIQH/
|
||||
AR8BkgEhAf8BHwGSASEB/wEaAYwBHAH/ARoBjAEcAf8ByQHiAckB/wP+Cf8D/gH/AdwB8AHdAf8BMgGj
|
||||
ATQB/wEmAZgBKQH/AS4BnAExAf8BLgGcATEB/wEuAZwBMQH/AR8BkgEhAf8BYQGxAWIB/wHSAeoB0gH/
|
||||
AasB2AGsAf8B6AH1AegB/wP+Af8D/gH/A/4B/wP+Af8B8AH5AfEB/wGzAdsBtAH/AcsB6AHLAf8BkgHQ
|
||||
AZMB/wEfAZIBIQH/AR8BkgEhAf8BIgGSASQB/wEiAZIBJAH/ARoBjAEcAf8BGgGMARwB/wHJAeIByQH/
|
||||
A/4J/wP+Af8B3AHwAd0B/wEyAaMBNAH/ASYBmAEpAf8BLgGcATEB/wEuAZwBMQH/AS4BnAExAf8BHwGS
|
||||
ASEB/wFhAbEBYgH/AdIB6gHSAf8BqwHYAawB/wHqAfgB6wH/A/4B/wP+Af8D/gH/A/4B/wHqAfgB6wH/
|
||||
AbMB2wG0Af8BywHoAcsB/wGSAdABkwH/AR8BkgEhAf8BHwGSASEB/wEiAZIBJAH/ASEBjAEjAf8BGgGM
|
||||
ARwB/wEaAYwBHAH/AckB4gHJAf8D/gn/A/4B/wP5Af8D6QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/
|
||||
A/4B/wP+Gf8D/gH/A/4B/wGrAdgBrAH/AUUBsAFHAf8BKgGaAS0B/wEfAZIBIQH/ARcBjAEZAf8BGgGM
|
||||
ARwB/wFqAbQBawH/AdsB7AHbAf8D/gn/A/4B/wHgAfEB4QH/AYkByAGKAf8BMgGjATQB/wEjAZkBJgH/
|
||||
AS4BnAExAf8BKgGaAS0B/wEnAZYBKQH/AZIByQGTAf8D/gH/A/4Z/wP+Af8D/gH/AasB2AGsAf8BRQGw
|
||||
AUcB/wEqAZoBLQH/AR8BkgEhAf8BFwGMARkB/wEaAYwBHAH/AWoBtAFrAf8B2wHsAdsB/wP+Cf8D/gH/
|
||||
AeAB8QHhAf8BkgHJAZMB/wEyAaMBNAH/ASMBmQEmAf8BLgGcATEB/wEqAZoBLQH/AScBlgEpAf8BkgHJ
|
||||
AZMB/wP+Af8D/hn/A/4B/wP+Af8BqwHYAawB/wFFAbABRwH/ASoBmgEtAf8BHwGKASEB/wEXAYwBGQH/
|
||||
ARoBjAEcAf8BagG0AWsB/wHcAfAB3QH/A/4J/wP+Af8B4AHxAeEB/wGSAckBkwH/ATIBowE0Af8BIwGZ
|
||||
ASYB/wEuAZwBMQH/ASoBmgEtAf8BJwGWASkB/wGSAckBkwH/A/4B/wP+Gf8D/gH/A/4B/wGrAdgBrAH/
|
||||
AUUBsAFHAf8BKgGaAS0B/wEfAYoBIQH/ARcBjAEZAf8BGgGMARwB/wFqAbQBawH/AdwB8AHdAf8D/gX/
|
||||
A/4B/wPxAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D2QH/A9kB/wPxAf8D/in/A/4B/wHBAeIBwgH/
|
||||
AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/AaoB0gGrAf8D/gH/
|
||||
A/4B/wHRAfoB1AH/AYkB8wGQAf8B1AH8AdgB/wHSAeoB0gH/AXIBvAF0Af8BIgGSASQB/wEcAZABHgH/
|
||||
AaoB0gGrAf8D/in/A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHi
|
||||
AckB/wFTAakBVQH/AaoB0gGrAf8D/gH/A/4B/wG5AeABugH/AVYBsQFZAf8BwQHiAcIB/wHSAeoB0gH/
|
||||
AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/AaoB0gGrAf8D/in/A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGS
|
||||
ASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/AaoB0gGrAf8D/gH/A/4B/wG5AeABugH/
|
||||
AVIBsgFUAf8BwQHiAcIB/wHSAeoB0gH/AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/AaoB0gGrAf8D/in/
|
||||
A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/
|
||||
AaoB0gGrAf8D/gH/A/4B/wPiAf8D1gH/A9kB/wPiAf8B9QH0AfUB/wPxAf8D7AH/A/4x/wP+Af8BswHb
|
||||
AbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/
|
||||
AZ4B8wGkAf8BagHoAXQB/wFqAegBdAH/AZ4B8wGkAf8B4AH4AeIB/wGzAdsBtAH/AZkBywGZAf8D/jH/
|
||||
A/4B/wGzAdsBtAH/AbMB2wG0Af8B2wHsAdsB/wF5AbwBewH/ASIBkgEkAf8BCgGDAQwB/wFTAakBVQH/
|
||||
A/4B/wP+Af8BcgG8AXQB/wEjAZkBJgH/ASoBmgEtAf8BcAG5AXIB/wHSAeoB0gH/AbMB2wG0Af8BmQHL
|
||||
AZkB/wP+Mf8D/gH/AbMB2wG0Af8BswHbAbQB/wHbAewB2wH/AXkBvAF7Af8BIgGSASQB/wEKAYMBDAH/
|
||||
AVMBqQFVAf8D/gH/A/4B/wFyAbwBdAH/ASMBmQEmAf8BKgGaAS0B/wFwAbkBcgH/AdIB6gHSAf8BswHb
|
||||
AbQB/wGZAcsBmQH/A/4x/wP+Af8BswHbAbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/
|
||||
AQoBgwEMAf8BUwGpAVUB/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/45/wP+Af8BwQHi
|
||||
AcIB/wFCAaIBRAH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHqAfgB6wH/
|
||||
AXoB8gGBAf8BdQHxAX4B/wFxAesBegH/AWoB6AF0Af8BWgHgAWMB/wGsAeoBsAH/A/45/wP+Af8BwQHi
|
||||
AcIB/wFCAaIBRAH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHgAfEB4QH/
|
||||
AT8BqQFBAf8BMgGjATQB/wEyAaMBNAH/ASoBmgEtAf8BJgGYASkB/wGZAcsBmQH/A/45/wP+Af8BwQHi
|
||||
AcIB/wE/AakBQQH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHgAfEB4QH/
|
||||
AT8BqQFBAf8BMgGjATQB/wEyAaMBNAH/ASoBmgEtAf8BJgGYASkB/wGZAcsBmQH/A/45/wP+Af8BwQHi
|
||||
AcIB/wE/AakBQQH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AcgB9AHMAf8BdQHxAX4B/wF6AfIBgQH/AXoB8gGBAf8BcQHr
|
||||
AXoB/wFAAc8BSgH/AaQB5gGoAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGiATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wESAYQBFAH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGiATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wHoAfUB6AH/
|
||||
AUsBsAFNAf8BJgGYASkB/wEfAZIBIQH/AR8BkgEhAf8BEwGIARUB/wFqAbQBawH/AaoB/AGxAf8BdQHx
|
||||
AX4B/wF6AfIBgQH/AXoB8gGBAf8BaAHlAXEB/wFCAcsBSgH/AeAB8QHhQf8B6AH1AegB/wFLAbABTQH/
|
||||
ASYBmAEpAf8BHwGSASEB/wEfAZIBIQH/ARMBiAEVAf8BagG0AWsB/wGEAcgBhgH/ASkBoAEsAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ASoBmgEtAf8BIgGSASQB/wHbAewB20H/AegB9QHoAf8BSwGwAU0B/wEmAZgBKQH/
|
||||
ASIBkgEkAf8BIgGSASQB/wETAYgBFQH/AWoBtAFrAf8BhAHIAYYB/wEpAaABLAH/ATYBpAE5Af8BNgGk
|
||||
ATkB/wEqAZoBLQH/ASEBjAEjAf8B2wHsAdtB/wHoAfUB6AH/AUsBsAFNAf8BJgGYASkB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wFqAbQBawH/A+IB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/5B/wP+Af8BbQHA
|
||||
AW8B/wEmAZgBKQH/AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/AUkBpQFMAf8BmgH5AaEB/wF4AfIBgQH/
|
||||
AXoB8gGBAf8BegHyAYEB/wFaAeABYwH/AVkBzwFhAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEmAZgBKQH/
|
||||
AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/AUkBpQFMAf8BaQG7AWsB/wEuAaIBMgH/ATYBpAE5Af8BNgGk
|
||||
ATkB/wEiAZIBJAH/AT8BnQFBAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEmAZgBKQH/AR8BigEhAf8BIgGS
|
||||
ASQB/wEXAYwBGQH/AUkBpQFMAf8BaQG7AWsB/wEuAaIBMgH/ATYBpAE5Af8BNgGkATkB/wEiAZIBJAH/
|
||||
AT4BmwFAAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEjAZkBJgH/AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/
|
||||
AUkBpQFMAf8B9QH0AfUB/wPxAf8D8QH/A/EB/wPxAf8B9QH0AfUB/wP+Qf8D/gH/AdIB6gHSAf8BuAHd
|
||||
AbkB/wGzAdsBtAH/AbMB2wG0Af8BswHbAbQB/wHBAeIBwgH/Ad0B+wHgAf8B0QH6AdQB/wHRAfoB1AH/
|
||||
AdQB/AHYAf8ByAH0AcwB/wHIAfQBzAH/A/5B/wP+Af8B0gHqAdIB/wG5AeABugH/AbMB2wG0Af8BswHb
|
||||
AbQB/wGzAdsBtAH/AcEB4gHCAf8ByQHiAckB/wG5AeABugH/AbkB4AG6Af8BuQHgAboB/wGzAdsBtAH/
|
||||
AcEB4gHCAf8D/kH/A/4B/wHSAeoB0gH/AbkB4AG6Af8BswHbAbQB/wGzAdsBtAH/AbMB2wG0Af8BvwHg
|
||||
AcAB/wHJAeIByQH/AbkB4AG6Af8BuQHgAboB/wG5AeABugH/AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/
|
||||
AdIB6gHSAf8BuAHdAbkB/wGzAdsBtAH/AbMB2wG0Af8BswHbAbQB/wHBAeIBwgH/A+kB/wPiAf8D4gH/
|
||||
A+IB/wPiAf8D7AH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0AWsB/wFqAbQBawH/
|
||||
AX8BvAGBAf8B7QHoAe0B/wHoAeQB6AH/AegB5AHoAf8B6AHkAegB/wHoAeQB6AH/AfEB7AHxAf8D/kH/
|
||||
A/4B/wGkAdgBpQH/AXABuQFyAf8BagG0AWsB/wFqAbQBawH/AWoBtAFrAf8BfwG8AYEB/wGSAdABkwH/
|
||||
AXwBwgF9Af8BfAHCAX0B/wF8AcIBfQH/AWkBuwFrAf8BiQHCAYoB/wP+Qf8D/gH/AaQB2AGlAf8BcAG5
|
||||
AXIB/wFqAbQBawH/AWoBtAFrAf8BagG0AWsB/wF/AcEBgQH/AZIB0AGTAf8BfAHCAX0B/wF8AcIBfQH/
|
||||
AXwBwgF9Af8BaQG7AWsB/wGJAcIBigH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0
|
||||
AWsB/wFqAbQBawH/AX8BvAGBAf8D4gH/A9YB/wPZAf8D2QH/A9YB/wPcAf8D/kH/A/4B/wFiAboBYwH/
|
||||
AR8BkgEhAf8BGgGMARwB/wEcAZABHgH/ARMBiAEVAf8BSQGlAUwB/wPiAf8D1gH/A9kB/wPZAf8D1gH/
|
||||
A9wB/wP+Qf8B+QH8AfkB/wFiAboBYwH/AR8BkgEhAf8BGgGMARwB/wEcAZABHgH/ARMBiAEVAf8BSQGl
|
||||
AUwB/wFpAbsBawH/ASkBoAEsAf8BMgGjATQB/wEyAaMBNAH/ARwBkAEeAf8BNAGVATYB/wH5AfwB+UH/
|
||||
AfkB/AH5Af8BYgG6AWMB/wEfAZIBIQH/ARoBjAEcAf8BHAGQAR4B/wETAYgBFQH/AUkBpQFMAf8BaQG7
|
||||
AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B+QH8AflB/wH7Af4B/AH/
|
||||
AWIBugFjAf8BHwGSASEB/wEaAYwBHAH/ARwBkAEeAf8BEwGIARUB/wFJAaUBTAH/A+kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/lB/wHgAfEB4QH/AUMBqwFFAf8BKgGaAS0B/wEiAZIBJAH/ASIBkgEkAf8BGgGM
|
||||
ARwB/wFwAbkBcgH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wHgAfEB4QH/AUMBqwFFAf8BKgGa
|
||||
AS0B/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wFwAbkBcgH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/
|
||||
ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8B5wH1AegB/wFDAasBRQH/ASoBmgEtAf8BIgGS
|
||||
ASQB/wEiAZIBJAH/ARcBjAEZAf8BcAG5AXIB/wGJAcgBigH/ATIBowE0Af8BOwGpAT0B/wE7AakBPQH/
|
||||
ATIBowE0Af8BHwGKASEB/wHXAeoB2EH/AeAB8QHhAf8BQwGrAUUB/wEqAZoBLQH/ASIBkgEkAf8BIgGS
|
||||
ASQB/wEXAYwBGQH/AXABuQFyAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D7AH/A/45/wP+Af8BqwHY
|
||||
AawB/wEjAZkBJgH/AScBlgEpAf8BJwGWASkB/wEnAZYBKQH/ARoBjAEcAf8BmQHLAZkB/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wPsAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/
|
||||
AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp
|
||||
AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/
|
||||
AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp
|
||||
AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/
|
||||
AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/A/4B/wPcAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D/jn/
|
||||
AfkB/AH5Af8B2wHsAdsB/wF/AcEBgQH/AScBlgEpAf8BHwGSASEB/wEiAZIBJAH/ASoBmgEtAf8B2wHs
|
||||
AdsB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A/45/wH5AfwB+QH/AdsB7AHbAf8BfwHB
|
||||
AYEB/wEnAZYBKQH/AR8BkgEhAf8BIgGSASQB/wEqAZoBLQH/AdsB7AHbAf8B5wH1AegB/wFKAawBTQH/
|
||||
ATsBqQE9Af8BMgGjATQB/wEyAaMBNAH/AWEBsQFiAf8ByQHiAckB/wP+Of8B+QH8AfkB/wHbAewB2wH/
|
||||
AX8BwQGBAf8BJwGWASkB/wEfAZIBIQH/ASIBkgEkAf8BKgGaAS0B/wHbAewB2wH/AeAB8QHhAf8BSwGw
|
||||
AU0B/wE7AakBPQH/ATIBowE0Af8BMgGjATQB/wFnAbYBaQH/AckB4gHJAf8B+QH8Afk5/wH5AfwB+QH/
|
||||
AdsB7AHbAf8BfwHBAYEB/wEnAZYBKQH/AR8BkgEhAf8BIgGSASQB/wEqAZoBLQH/AdsB7AHbAf8D/gH/
|
||||
A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/A+kB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/
|
||||
AckB4gHJAf8BWwGxAV0B/wETAYgBFQH/AWEBsQFiAf8D/gH/A/4B/wPiAf8D1gH/A+IB/wPxAf8D+QH/
|
||||
A+IB/wPpAf8D/jH/A/4B/wGJAcgBigH/AVsBsQFdAf8B0gHqAdIB/wHJAeIByQH/AVsBsQFdAf8BEwGI
|
||||
ARUB/wFhAbEBYgH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHqAfgB6wH/
|
||||
AYMB4QGJAf8BhQHaAYoB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/AckB4gHJAf8BWwGx
|
||||
AV0B/wETAYgBFQH/AWEBsQFiAf8D/gH/A/4B/wF8AcIBfQH/ASkBoAEsAf8BWwGxAV0B/wG5AeABugH/
|
||||
AeAB8QHhAf8BYQGxAWIB/wF0AbUBdQH/A/4x/wP+Af8BiQHIAYoB/wFbAbEBXQH/AdIB6gHSAf8ByQHi
|
||||
AckB/wFbAbEBXQH/ARMBiAEVAf8BYQGxAWIB/wP+Af8D/gH/AfUB9AH1Af8D7AH/A/kB/wPsAf8D3AH/
|
||||
A9kB/wPZAf8D7AH/A/4p/wP+Af8BoAHRAaEB/wEjAZkBJgH/ASIBkgEkAf8BKgGaAS0B/wF8AcIBfQH/
|
||||
AdIB6gHSAf8BoAHRAaEB/wHBAeIBwgH/A/4B/wP+Af8B9QH0AfUB/wPsAf8D+QH/A+wB/wPcAf8D2QH/
|
||||
A9kB/wPsAf8D/in/A/4B/wGgAdEBoQH/ASIBkgEkAf8BIgGSASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHq
|
||||
AdIB/wGgAdEBoQH/AcEB4gHCAf8D/gH/A/4B/wHLAegBywH/AZoB0gGbAf8B4AH4AeIB/wHFAfoByQH/
|
||||
AZIB+wGZAf8BagHoAXQB/wE1AcUBPgH/AZsB4gGgAf8D/in/A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGS
|
||||
ASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/AcEB4gHCAf8D/gH/A/4B/wHOAesB0AH/
|
||||
AZoB0gGbAf8B3AHwAd0B/wGaAdIBmwH/AUUBsAFHAf8BJgGYASkB/wESAYQBFAH/AZABxQGRAf8D/in/
|
||||
A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGSASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/
|
||||
AcEB4gHCAf8D/gX/A/4B/wH1AfQB9QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wP+Af8D/hn/
|
||||
A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGc
|
||||
ATEB/wG4Ad0BuQH/A/4J/wP+Af8B9QH0AfUB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/
|
||||
A/4Z/wP+Af8D/gH/AZkBywGZAf8BHAGQAR4B/wEqAZoBLQH/AS4BnAExAf8BKgGaAS0B/wEfAZIBIQH/
|
||||
AS4BnAExAf8BuAHdAbkB/wP+Cf8D/gH/AeoB+AHrAf8BkgH7AZkB/wGDAfkBjAH/AYMB+QGMAf8BiQH6
|
||||
AZEB/wFqAegBdAH/ATUBxQE+Af8BjwHdAZQB/wP+Af8D/hn/A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/
|
||||
ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGcATEB/wG4Ad0BuQH/A/4J/wP+Af8B0gHq
|
||||
AdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/
|
||||
A/4B/wP+Gf8D/gH/A/4B/wGZAcsBmQH/ARwBkAEeAf8BKgGaAS0B/wEuAZwBMQH/ASoBmgEtAf8BHwGS
|
||||
ASEB/wEuAZwBMQH/AbgB3QG5Af8D/gn/A/4B/wP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D6QH/
|
||||
A/EB/wPsAf8D+QH/A/4B/wP+Af8D/gH/AfkB/AH5Af8B4AHvAeAB/wGJAcIBigH/AZYByQGYAf8BqgHS
|
||||
AasB/wEjAZkBJgH/AS4BnAExAf8BLgGcATEB/wEqAZoBLQH/ASYBmAEpAf8BMQGdATMB/wHSAeoB0gH/
|
||||
A/4J/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/
|
||||
A/4B/wH5AfwB+QH/AeAB7wHgAf8BiQHCAYoB/wGWAckBmAH/AaoB0gGrAf8BIwGZASYB/wEuAZwBMQH/
|
||||
AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AS4BnAExAf8B0gHqAdIB/wP+Cf8D/gH/AeoB+AHrAf8BkgH7
|
||||
AZkB/wGDAfkBjAH/AYkB+gGRAf8BiQH6AZEB/wGJAfoBkQH/AWoB6AF0Af8BmAHlAZwB/wH1AfQB9QH/
|
||||
A+wB/wP5Af8D/gH/A/4B/wP+Af8B+QH8AfkB/wHgAfEB4QH/AYkBwgGKAf8BlgHJAZgB/wGqAdIBqwH/
|
||||
ASMBmQEmAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wEuAZwBMQH/AdIB6gHSAf8D/gn/
|
||||
A/4B/wHgAfEB4QH/AUsBsAFNAf8BOAGoAToB/wE/AakBQQH/ATsBqQE9Af8BPwGpAUEB/wEjAZkBJgH/
|
||||
AYkBwgGKAf8BqgHSAasB/wGCAb0BgwH/AdsB7AHbAf8B+QH8AfkB/wP+Af8D/gH/A/4B/wHgAfEB4QH/
|
||||
AZ4B8wGkAf8BqQHpAa0B/wGqAdIBqwH/ASIBkgEkAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGY
|
||||
ASkB/wEuAZwBMQH/AdIB6gHSAf8D/g3/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/
|
||||
A9YB/wPZAf8D3AH/AfgB8gH4Af8BqgHSAasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/
|
||||
AdIB6gHSAf8BcgG8AXQB/wEmAZgBKQH/AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/
|
||||
A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/A9YB/wPZAf8D3AH/AfgB8gH4Af8BqgHS
|
||||
AasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/AdIB6gHSAf8BcgG8AXQB/wEmAZgBKQH/
|
||||
AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/A/4B/wHYAfoB2wH/AYkB+gGRAf8BiQH6
|
||||
AZEB/wGJAfoBkQH/AYMB+QGMAf8BmgH5AaEB/wHwAfkB8QH/AeEB3gHhAf8D1gH/AdwB2gHcAf8D3AH/
|
||||
AfgB8gH4Af8BqgHSAasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/AdIB6gHSAf8BcgG8
|
||||
AXQB/wEmAZgBKQH/AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/A/4B/wG5AeABugH/
|
||||
ATsBqQE9Af8BOwGpAT0B/wE/AakBQQH/ATYBpAE5Af8BXwG6AWEB/wHgAfEB4QH/AUIBogFEAf8BEAGI
|
||||
AREB/wEfAYoBIQH/ATQBlQE2Af8BmQHLAZkB/wG5AewBvAH/AUwBzQFUAf8BTAHNAVQB/wFMAc0BVAH/
|
||||
AWIB4gFsAf8B4AH4AeIB/wFyAbwBdAH/ASYBmAEpAf8BLgGcATEB/wEqAZoBLQH/ASYBmAEpAf8BqwHY
|
||||
AawB/wP+Ff8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/
|
||||
AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGj
|
||||
ATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGa
|
||||
AS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/
|
||||
AdEB+gHUAf8BiQH6AZEB/wGDAfkBjAH/AYMB+QGMAf8B0QH6AdQB/wHxAewB8QH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/
|
||||
AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/AbMB2wG0Af8BOwGp
|
||||
AT0B/wE4AagBOgH/ATYBpAE5Af8BuQHgAboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/
|
||||
ARwBkAEeAf8BhQHCAYYB/wG0AfMBuAH/AVQB4AFdAf8BagHoAXQB/wFxAesBegH/AWoB6AF0Af8BngHz
|
||||
AaQB/wHSAeoB0gH/ATIBowE0Af8BJgGYASkB/wEqAZoBLQH/AaAB0QGhAf8D/h3/A/4B/wPxAf8D3AH/
|
||||
A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ATIBowE0Af8BKgGaAS0B/wG5AeABugH/AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/
|
||||
A/4h/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfEB7AHxAf8BmgHS
|
||||
AZsB/wEpAaABLAH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/ASoBmgEtAf8BuQHgAboB/wGJAcgBigH/
|
||||
ATYBpAE5Af8BswHbAbQB/wP+If8D/gH/AdgB+gHbAf8BkgH7AZkB/wGkAfoBqwH/AfUB9AH1Af8B3AHa
|
||||
AdwB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/
|
||||
ATIBowE0Af8BKgGaAS0B/wG5AeABugH/AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/A/4h/wP+Af8BwQHi
|
||||
AcIB/wFLAbABTQH/AW0BwAFvAf8B0gHqAdIB/wFDAasBRQH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BkgHJAZMB/wHFAfoByQH/AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AXEB6wF6Af8BagHo
|
||||
AXQB/wHRAfoB1AH/AYUBwgGGAf8BNgGkATkB/wGzAdsBtAH/A/4l/wP+Af8D+QH/A/kB/wPiAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8D+QH/A/kB/wPiAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8B6gH4AesB/wHqAfgB6wH/
|
||||
AegB5AHoAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/
|
||||
ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8B4AHx
|
||||
AeEB/wHcAfAB3QH/AXwBwgF9Af8BKQGgASwB/wE7AakBPQH/ATsBqQE9Af8BOwGpAT0B/wEuAaIBMgH/
|
||||
AZIByQGTAf8BxQH6AckB/wF1AfEBfgH/AXoB8gGBAf8BegHyAYEB/wFxAesBegH/AWoB6AF0Af8BggHx
|
||||
AYoB/wHgAfEB4QH/AdwB8AHdAf8D/i3/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/
|
||||
AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHl
|
||||
AcgB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/AfEB7AHxAf8BmgHS
|
||||
AZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHlAcgB/wP+Af8D/jH/
|
||||
A/4B/wP+Af8B9QH0AfUB/wHoAeQB6AH/A9wB/wPZAf8D1gH/A9YB/wHxAewB8QH/AZoB0gGbAf8BIwGZ
|
||||
ASYB/wEpAaABLAH/ATIBowE0Af8BQwGrAUUB/wF8AcIBfQH/AccB5QHIAf8D/gH/A/4x/wP+Af8D/gH/
|
||||
Ac4B6wHQAf8BhAHIAYYB/wFLAbABTQH/ATgBqAE6Af8BLgGiATIB/wEnAaABKQH/AYkByAGKAf8BxQH6
|
||||
AckB/wF1AfEBfgH/AXUB8QF+Af8BdQHxAX4B/wGCAfEBigH/AaUB8gGqAf8B2AH6AdsB/wP+Af8D/jn/
|
||||
A/4B/wP+Af8D/gH/A/EB/wPpAf8D4gH/AfgB8gH4Af8BswHbAbQB/wFpAbsBawH/AY4BzQGQAf8BuQHg
|
||||
AboB/wHoAfUB6AH/A/4B/wP+Qf8D/gH/A/4B/wP+Af8D8QH/A+kB/wPiAf8B+AHyAfgB/wGzAdsBtAH/
|
||||
AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/A/5B/wP+Af8D/gH/A/4B/wH1AfQB9QH/
|
||||
A+wB/wPiAf8B+AHyAfgB/wGzAdsBtAH/AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/
|
||||
A/5B/wP+Af8D/gH/AeoB+AHrAf8BuQHgAboB/wGSAdABkwH/AW0BwAFvAf8BqgHSAasB/wHRAfoB1AH/
|
||||
AZ4B8wGkAf8BtAHzAbgB/wHRAfoB1AH/AfAB+QHxAf8D/gH/A/5J/wP+Af8D9gH/A+wB/wPjAf8D9QH/
|
||||
A/cB/wPiAf8D6wH/A/YB/wP+Sf8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/A/EB/wPiAf8D4gH/
|
||||
A+wB/wP5Af8D/gH/A/5B/wP+Af8D/gH/A/kB/wPxAf8D6QH/A+IB/wPsAf8D8QH/A+IB/wPiAf8D7AH/
|
||||
A/kB/wP+Af8D/kH/A/4B/wP+Af8D+QH/A/EB/wPpAf8D4gH/A+wB/wPxAf8D4gH/A+IB/wPsAf8D+QH/
|
||||
A/4B/wP+Qf8D+wH/A+cB/wPbAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPbAf8D5gH/
|
||||
A/k5/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D8QH/A/4B/wP+Mf8D/gH/A/4B/wH1AfQB9QH/A+IB/wPZAf8D2QH/A9kB/wPWAf8D6QH/
|
||||
A+wB/wPWAf8D2QH/A9kB/wPZAf8D4gH/A/EB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPiAf8D2QH/
|
||||
A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A+IB/wPxAf8D/gH/A/4x/wP9Af8D+wH/
|
||||
A/MB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/AB/wP0Af8D2gH/A9oB/wPaAf8D2gH/A9oB/wPsAf8D/QH/
|
||||
A/wt/wP+Af8B9QH0AfUB/wH1AfQB9QH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wPsAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A/4p/wP+Af8B9QH0AfUB/wH1AfQB9QH/
|
||||
A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wPiAf8B9QH0
|
||||
AfUB/wH1AfQB9QH/A/4p/wP+Af8B9QH0AfUB/wH1AfQB9QH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wHoAeQB6AH/AdAB8wHTAf8BzQHzAdAB/wP+Kf8D9wH/
|
||||
A9sB/wPeAf8D/gH/A+IB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPaAf8D3QH/
|
||||
A/0B/wPlAf8D2gH/A/Ul/wP+Af8D8QH/A9kB/wPcAf8D+QH/A+IB/wPZAf8D2QH/A9kB/wPZAf8D6QH/
|
||||
A+wB/wPZAf8D2QH/A9kB/wPZAf8D3AH/AfUB9AH1Af8D4gH/A9kB/wPsAf8D/iH/A/4B/wPxAf8D2QH/
|
||||
A9wB/wP5Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPcAf8B9QH0
|
||||
AfUB/wPiAf8D2QH/A+wB/wP+If8D/gH/A/EB/wPZAf8D3AH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9wB/wHzAfcB8wH/AWwB2wF0Af8BQgHLAUoB/wGsAeoBsAH/
|
||||
A/4h/wPzAf8D2gH/A9oB/wPaAf8D8gH/A/sB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/
|
||||
A9oB/wPaAf8D9QH/A/kB/wPaAf8D2gH/A9oB/wPwHf8D/gH/A+wB/wPZAf8D2QH/A9kB/wPsAf8D8QH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/
|
||||
A+kB/wP+Gf8D/gH/A+wB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A+kB/wP+Gf8D/gH/A+wB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wHxAewB8QH/
|
||||
AbQB7AG4Af8BQgHLAUoB/wFCAcsBSgH/ATwBywFFAf8BmwHiAaAB/wP+Gf8D9wH/A9oB/wPaAf8D2gH/
|
||||
A9oB/wPcAf8D/QH/A+kB/wPaAf8D3QH/A+UB/wP6Af8D+wH/A+UB/wPeAf8D2gH/A+EB/wP+Af8D4AH/
|
||||
A9oB/wPaAf8D2gH/A9oB/wP0Ff8D/gH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D4gH/
|
||||
A9YB/wPcAf8D4gH/A/EB/wH1AfQB9QH/A+IB/wPcAf8D2QH/A9wB/wP5Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/hH/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wH1AfQB9QH/A+IB/wPWAf8D3AH/
|
||||
A+IB/wPxAf8B9QH0AfUB/wPiAf8D3AH/A9kB/wPcAf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D7AH/
|
||||
A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B9QH0AfUB/wPiAf8D1gH/A9wB/wPiAf8D8QH/
|
||||
AfUB9AH1Af8D4gH/A9wB/wPZAf8B4QHeAeEB/wHqAfgB6wH/AVoB3QFjAf8BQgHQAUsB/wFJAdIBUgH/
|
||||
AUIB0AFLAf8BPAHLAUUB/wGpAekBrQH/A/4R/wP+Af8D3AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D6AH/
|
||||
A/0B/wP5Gf8D+QH/A/wB/wPwAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPbAf8D/Q3/A/4B/wP5Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/
|
||||
AfUB9AH1Af8D6QH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/
|
||||
AfUB9AH1Af8D6QH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/
|
||||
AfgB8gH4Af8BvAH7AcEB/wFaAeABYwH/AUkB0gFSAf8BSQHSAVIB/wFJAdIBUgH/AUIBywFKAf8BQgHL
|
||||
AUoB/wHWAfQB2AH/A/4N/wP+Af8D8AH/A9sB/wPaAf8D2gH/A9oB/wPaAf8D9Cn/A/YB/wPbAf8D2gH/
|
||||
A9oB/wPaAf8D2gH/A+oB/wP+Df8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/gH/
|
||||
A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D/gn/A/4B/wP5Af8D6QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D+QH/A/4J/wP+Af8D+QH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Af8D/hn/
|
||||
A/4B/wP+Af8B0QH6AdQB/wGaAfkBoQH/AWsB5QF0Af8BSAHSAVEB/wFCAdABSwH/AUIB0AFLAf8BiAHi
|
||||
AY8B/wHgAfgB4gH/A/4J/wP6Af8D4QH/A/oB/wP9Af8D6QH/A9oB/wPaAf8D+TH/A/sB/wPbAf8D2gH/
|
||||
A+QB/wP8Af8D/AH/A+UB/wP5Bf8D/gH/A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPZAf8D2QH/
|
||||
A/EB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A/EB/wP+Af8D/gH/
|
||||
A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPZAf8D2QH/A/EB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/
|
||||
A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A/EB/wP+Af8D/gH/A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/
|
||||
A+IB/wPZAf8D2QH/A/EB/wP+Kf8D/gH/Ad0B+wHgAf8BmgH5AaEB/wFaAeABYwH/AXQB3AF7Af8BzQHz
|
||||
AdAB/wHJAeIByQH/AVQBpwFVAf8BqgHSAasB/wP+Bf8D6AH/A9oB/wPaAf8D6AH/A/0B/wP5Af8D9zn/
|
||||
A/cB/wP2Af8D/gH/A+4B/wPbAf8D2gH/A+UF/wP+Af8D4gH/A9YB/wPZAf8D4gH/AfUB9AH1Af8D8QH/
|
||||
A+wB/wP+Mf8D/gH/A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/A+IB/wP+Af8D/gH/A+IB/wPWAf8D2QH/
|
||||
A+IB/wH1AfQB9QH/A/EB/wPsAf8D/jH/A/4B/wPsAf8D8QH/A/kB/wPpAf8D2QH/A9YB/wPiAf8D/gH/
|
||||
A/4B/wPiAf8D1gH/A9kB/wPiAf8B9QH0AfUB/wPxAf8D7AH/A/4x/wP+Af8B0QH6AdQB/wHUAfwB2AH/
|
||||
AdsB7AHbAf8BcgG8AXQB/wEfAYoBIQH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/A9wB/wPaAf8D2gH/
|
||||
A9oB/wPaAf8D9kH/A/oB/wPdAf8D2gH/A9oB/wPaAf8D2wH/A/0B/wP5Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/jn/A/4B/wPxAf8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D+QH/A9wB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D7AH/A/45/wP+Af8D8QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D+QH/A/kB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A+wB/wP+Of8D/gH/AbkB4AG6Af8BQAGnAUIB/wETAYgBFQH/AR8BigEhAf8BGgGM
|
||||
ARwB/wEiAZIBJAH/AdIB6gHSAf8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D9kH/A/kB/wPaAf8D2gH/
|
||||
A9oB/wPaAf8D2gH/A/UB/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wPsAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/45/wP+Af8D7AH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Of8D/gH/
|
||||
AbMB2wG0Af8BMgGjATQB/wEiAZIBJAH/ASIBkgEkAf8BIgGSASQB/wETAYgBFQH/AZIByQGTAf8D7QH/
|
||||
A9oB/wPaAf8D2gH/A9oB/wPcSf8D3QH/A9oB/wPaAf8D2gH/A9oB/wPrAf8D6QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D+UH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wPpAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wP5Qf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A/lB/wHoAfUB6AH/AUsBsAFNAf8BJgGYASkB/wEiAZIBJAH/ASIBkgEkAf8BEwGIARUB/wFqAbQBawH/
|
||||
A+YB/wPaAf8D2gH/A9oB/wPaAf8D4kn/A+YB/wPaAf8D2gH/A9oB/wPaAf8D4wH/A+IB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/A/5B/wP+Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D4gH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D/kH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+IB/wP+Qf8D/gH/AW0BwAFvAf8BJgGYASkB/wEfAYoBIQH/AR8BkgEhAf8BFwGMARkB/wFJAaUBTAH/
|
||||
A/sB/wP5Af8D+QH/A/kB/wP5Af8D/Un/A/0B/wP5Af8D+QH/A/kB/wP5Af8D+wH/AfUB9AH1Af8D8QH/
|
||||
A/EB/wPxAf8D8QH/AfUB9AH1Af8D/kH/A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/
|
||||
AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/AfUB9AH1Af8D/kH/A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/
|
||||
AfQB8QHzAf8B9QH0AfUB/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/A/5B/wP+Af8B0gHq
|
||||
AdIB/wG4Ad0BuQH/AbMB2wG0Af8BswHbAbQB/wGzAdsBtAH/AcEB4gHCAf8D8AH/A+kB/wPqAf8D6gH/
|
||||
A+kB/wP0Sf8D9gH/A+kB/wPqAf8D6gH/A+kB/wPvAf8D6QH/A+IB/wPiAf8D4gH/A+IB/wPsAf8D/kH/
|
||||
A/4B/wPsAf8D4gH/A+IB/wPiAf8D4gH/A+kB/wPpAf8D4gH/A+IB/wPiAf8D4gH/A+wB/wP+Qf8D/gH/
|
||||
AcUB+gHJAf8BlAHwAZoB/wGDAeEBiQH/AYMB4QGJAf8BgQHgAYYB/wGSAeYBmAH/A+kB/wPiAf8D4gH/
|
||||
A+IB/wPiAf8D7AH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0AWsB/wFqAbQBawH/
|
||||
AX8BvAGBAf8D5gH/A9oB/wPaAf8D2gH/A9oB/wPhSf8D5QH/A9oB/wPaAf8D2gH/A9oB/wPjAf8D4gH/
|
||||
A9YB/wPZAf8D2QH/A9YB/wPcAf8D/kH/A/4B/wPiAf8D1gH/A9kB/wPZAf8D1gH/A+IB/wPiAf8D1gH/
|
||||
A9kB/wPZAf8D1gH/A9wB/wP+Qf8D/gH/AZoB+QGhAf8BXwHiAWkB/wFJAdIBUgH/AUsB2QFUAf8BQgHQ
|
||||
AUsB/wFsAdsBdAH/A+IB/wPWAf8D2QH/A9kB/wPWAf8D3AH/A/5B/wP+Af8BYgG6AWMB/wEfAZIBIQH/
|
||||
ARoBjAEcAf8BHAGQAR4B/wETAYgBFQH/AUkBpQFMAf8D7gH/A9oB/wPaAf8D2gH/A9oB/wPbAf8D/kX/
|
||||
A90B/wPaAf8D2gH/A9oB/wPaAf8D6wH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wP5Af8D3AH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPiAf8D6QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D+UH/Ae8B/AHwAf8BggHx
|
||||
AYoB/wFiAeIBbAH/AVUB2wFeAf8BVQHbAV4B/wFJAdIBUgH/AYwB5gGSAf8D6QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D+UH/AeAB8QHhAf8BQwGrAUUB/wEqAZoBLQH/ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/
|
||||
AXABuQFyAf8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D9kH/A/kB/wPaAf8D2gH/A9oB/wPaAf8D2gH/
|
||||
A/YB/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wPsAf8D/jn/A/4B/wPsAf8D1gH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D7AH/A/45/wP+Af8BxQH6AckB/wFnAewBcQH/
|
||||
AVoB3QFjAf8BWgHdAWMB/wFVAdsBXgH/AUsB2QFUAf8BsAHsAbQB/wPxAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wPsAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/AScBlgEpAf8BGgGM
|
||||
ARwB/wGZAcsBmQH/A/4B/wPdAf8D2gH/A9oB/wPaAf8D5gH/A/1B/wP+Af8D7AH/A9sB/wPaAf8D2gH/
|
||||
A9wB/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wP+Of8D/gH/A/kB/wPpAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A/45/wH5AfwB+QH/
|
||||
AeAB+AHiAf8BpQHyAaoB/wFaAd0BYwH/AVUB2wFeAf8BVQHbAV4B/wFaAd0BYwH/AeAB+AHiAf8D+QH/
|
||||
A9wB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wP+Of8B+QH8AfkB/wHbAewB2wH/AX8BwQGBAf8BJwGW
|
||||
ASkB/wEfAZIBIQH/ASIBkgEkAf8BKgGaAS0B/wHbAewB2wX/A+oB/wPaAf8D4AH/A/kB/wP+Af8D6gH/
|
||||
A/A5/wPzAf8D5AH/A/0B/wP8Af8D5QH/A9oB/wPnBf8D/gH/A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/
|
||||
A+kB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8D4gH/
|
||||
A9YB/wPiAf8D8QH/A/kB/wPiAf8D6QH/A/4x/wP+Af8BiQHIAYoB/wFZAawBWwH/AckB4gHJAf8B2AH6
|
||||
AdsB/wGDAesBiwH/AUsB2QFUAf8BgwHhAYkB/wP+Af8D/gH/A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/
|
||||
A+kB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/AckB4gHJAf8BWwGxAV0B/wETAYgBFQH/
|
||||
AWEBsQFiAf8D/gX/A/wB/wPyAf8D/gH/A/MB/wPcAf8D2gH/A9oB/wP3Mf8D+QH/A9oB/wPaAf8D2gH/
|
||||
A+4B/wP+Af8D9gH/A/sF/wP+Af8B9QH0AfUB/wPsAf8D+QH/A+wB/wPcAf8D2QH/A9kB/wPsAf8D/in/
|
||||
A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/kB/wPxAf8B9QH0AfUB/wP+Af8D/gH/AfUB9AH1Af8D7AH/
|
||||
A/kB/wPsAf8D3AH/A9kB/wPZAf8D7AH/A/4p/wP+Af8BoAHRAaEB/wEjAZkBJgH/ASIBkgEkAf8BKgGa
|
||||
AS0B/wF5AbwBewH/AdcB6gHYAf8BvAHxAcAB/wHQAfMB0wH/A/4B/wP+Af8B9QH0AfUB/wPsAf8D+QH/
|
||||
A+wB/wPcAf8D2QH/A9kB/wPsAf8D/in/A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGSASQB/wEqAZoBLQH/
|
||||
AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/AcEB4gHCAf8D/gn/A/wB/wPeAf8D2gH/A9oB/wPaAf8D2gH/
|
||||
A9oB/wPyKf8D9gH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D2wH/A/oN/wP+Af8B9QH0AfUB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPxAf8D/gn/A/4B/wH1AfQB9QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wP+Af8D/hn/
|
||||
A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGc
|
||||
ATEB/wG4Ad0BuQH/A/4J/wP+Af8B9QH0AfUB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/
|
||||
A/4Z/wP+Af8D/gH/AZkBywGZAf8BHAGQAR4B/wEqAZoBLQH/AS4BnAExAf8BKgGaAS0B/wEfAZIBIQH/
|
||||
AS4BnAExAf8BuAHdAbkB/wP+Df8D/gH/A90B/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/IB/wP6Af8D9Rn/
|
||||
A/YB/wP2Af8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D3AH/A/0N/wP+Af8D+QH/A9wB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/A/4B/wH7Af4B/AH/AeAB8QHhAf8BmwHi
|
||||
AaAB/wGhAeoBpgH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D+QH/A/4J/wP+Af8D+QH/
|
||||
A9wB/wPZAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/A/4B/wH5AfwB+QH/
|
||||
AeAB7wHgAf8BiQHCAYoB/wGWAckBmAH/AaoB0gGrAf8BIwGZASYB/wEuAZwBMQH/AS4BnAExAf8BKgGa
|
||||
AS0B/wEmAZgBKQH/ATEBnQEzAf8B0gHqAdIB/wP+Cf8D/gH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wPpAf8D8QH/A+wB/wP5Af8D/gH/A/4B/wP+Af8B+QH8AfkB/wHgAe8B4AH/AYkBwgGKAf8BlgHJ
|
||||
AZgB/wGqAdIBqwH/ASMBmQEmAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wExAZ0BMwH/
|
||||
AdIB6gHSAf8D/hH/A/kB/wPaAf8D2gH/A9oB/wPaAf8D4gH/A/4B/wPgAf8D2gH/A9sB/wPhAf8D+AH/
|
||||
A/oB/wPhAf8D3AH/A9oB/wPcAf8D/QH/A+kB/wPaAf8D2gH/A9oB/wPaAf8D9xX/A/4B/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/A9YB/wPZAf8D3AH/AfgB8gH4Af8BtAHsAbgB/wFTAc0BWwH/
|
||||
AUgBzQFRAf8BQgHQAUsB/wFaAeABYwH/AeAB+AHiAf8B6AHkAegB/wPZAf8D2QH/A9kB/wPZAf8D8QH/
|
||||
A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A9wB/wPWAf8D2QH/A9wB/wH4AfIB+AH/
|
||||
AaoB0gGrAf8BNAGVATYB/wEhAYwBIwH/ARMBiAEVAf8BKgGaAS0B/wHSAeoB0gH/AXIBvAF0Af8BJgGY
|
||||
ASkB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wGrAdgBrAH/A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D+QH/A9wB/wPWAf8D2QH/A9wB/wH4AfIB+AH/AaoB0gGrAf8BNAGVATYB/wEhAYwBIwH/
|
||||
ARMBiAEVAf8BKgGaAS0B/wHSAeoB0gH/AXIBvAF0Af8BJgGYASkB/wEuAZwBMQH/ASoBmgEtAf8BJgGY
|
||||
ASkB/wGrAdgBrAH/A/4Z/wP3Af8D2gH/A9oB/wPaAf8D+gH/A/MB/wPaAf8D2gH/A9oB/wPaAf8D8AH/
|
||||
A/QB/wPaAf8D2gH/A9oB/wPaAf8D6gH/A/0B/wPbAf8D2gH/A9oB/wP0Hf8D/gH/A/EB/wPZAf8D2QH/
|
||||
A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/Aa0B8gGyAf8BVAHgAV0B/wFqAegBdAH/
|
||||
AXEB6wF6Af8BagHoAXQB/wGYAfMBnwH/AfUB9AH1Af8B3AHaAdwB/wPZAf8D2QH/A+wB/wP+Gf8D/gH/
|
||||
A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/AZIByQGTAf8BFwGR
|
||||
ARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/
|
||||
ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/
|
||||
AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+If8D+gH/A9wB/wPmAf8D/QH/
|
||||
A9wB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/sB/wPvAf8D2wH/
|
||||
A/gl/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfEB7AHxAf8BwQH9
|
||||
AcUB/wF1AfEBfgH/AXoB8gGBAf8BeAHyAYEB/wFxAesBegH/AWoB6AF0Af8BygH5Ac0B/wHtAegB7QH/
|
||||
A9kB/wPxAf8D/iH/A/4B/wPxAf8D3AH/A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B8QHs
|
||||
AfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/ATIBowE0Af8BKgGaAS0B/wG5AeABugH/
|
||||
AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/A/4h/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/AfEB7AHxAf8BmgHSAZsB/wEpAaABLAH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/
|
||||
ASoBmgEtAf8BuQHgAboB/wGJAcgBigH/ATYBpAE5Af8BswHbAbQB/wP+Kf8D/gH/A/4B/wPrAf8D2gH/
|
||||
A9oB/wPaAf8D2gH/A9oB/wPwAf8D9AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D4wH/A/4B/wP+Lf8D/gH/
|
||||
A/kB/wP5Af8D4gH/A9YB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wHBAf0BxQH/AXUB8QF+Af8BegHy
|
||||
AYEB/wF6AfIBgQH/AXEB6wF6Af8BagHoAXQB/wGJAfMBkAH/AfAB+QHxAf8D+QH/A/4p/wP+Af8D+QH/
|
||||
A/kB/wPiAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/
|
||||
ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8D+QH/
|
||||
A/kB/wPiAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/
|
||||
ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/41/wP8Af8D6wH/
|
||||
A90B/wPaAf8D2gH/A9oB/wPwAf8D9AH/A9oB/wPaAf8D2gH/A90B/wPqAf8D+zn/A/4B/wP+Af8B9QH0
|
||||
AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/AfEB7AHxAf8BvAH7AcEB/wF1AfEBfgH/AXUB8QF+Af8BdQHx
|
||||
AX4B/wGCAfEBigH/AaUB8gGqAf8B2AH6AdsB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/
|
||||
A9kB/wPWAf8D1gH/AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/
|
||||
AXwBwgF9Af8BxwHlAcgB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/
|
||||
AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHl
|
||||
AcgB/wP+Af8D/kH/A/4B/wP5Af8D7wH/A+YB/wP1Af8D+AH/A+UB/wPvAf8D+QH/A/5J/wP+Af8D/gH/
|
||||
A/4B/wPxAf8D6QH/A+IB/wHxAewB8QH/Ac4B+gHRAf8BmgH5AaEB/wG0AfsBugH/AdEB+gHUAf8B8AH5
|
||||
AfEB/wP+Af8D/kH/A/4B/wP+Af8D/gH/A/EB/wPpAf8D4gH/AfgB8gH4Af8BswHbAbQB/wFpAbsBawH/
|
||||
AY4BzQGQAf8BuQHgAboB/wHoAfUB6AH/A/4B/wP+Qf8D/gH/A/4B/wP+Af8D8QH/A+kB/wPiAf8B+AHy
|
||||
AfgB/wGzAdsBtAH/AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/A/4h/wFCAU0BPgcA
|
||||
AT4DAAEoAwABeAMAAXgDAAEBAQABAQUAAYABBxYAA///AP8A/wD/AP8A/wD/AIgACw==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,22 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("WebsitePanel.Import.Enterprise")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyProduct("WebsitePanel.Import.Enterprise")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("fe8ffa2e-6e29-41c5-a0b2-a553119c5edb")]
|
||||
|
210
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/Properties/Resources.Designer.cs
generated
Normal file
|
@ -0,0 +1,210 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.1
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WebsitePanel.Import.Enterprise.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap BannerImage {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("BannerImage", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ConnectImage {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ConnectImage", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ConnectLogo {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ConnectLogo", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon FolderLargeIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("FolderLargeIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon FolderSmallIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("FolderSmallIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon OU {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("OU", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage3 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage3", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage4 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage4", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage5 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage5", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage6 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage6", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage7 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage7", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap ProgressImage8 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ProgressImage8", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap RefreshImage {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("RefreshImage", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon SpaceLargeIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("SpaceLargeIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon SpaceSmallIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("SpaceSmallIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon UserLargeIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UserLargeIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon UsersLargeIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UsersLargeIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon UserSmallIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UserSmallIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Icon UsersSmallIcon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("UsersSmallIcon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,184 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="BannerImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\BannerImage.GIF;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ConnectImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ConnectImage.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ConnectLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ConnectLogo.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="FolderLargeIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FolderLargeIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="FolderSmallIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FolderSmallIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="OU" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\OU.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage1.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage2.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage3" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage3.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage4" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage4.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage5" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage5.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage6" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage6.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage7" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage7.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ProgressImage8" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ProgressImage8.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="RefreshImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\RefreshImage.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="SpaceLargeIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SpaceLargeIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="SpaceSmallIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SpaceSmallIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UserLargeIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UserLargeIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UsersLargeIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UsersLargeIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UserSmallIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UserSmallIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="UsersSmallIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\UsersSmallIcon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
148
WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/SpaceForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,148 @@
|
|||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
partial class SpaceForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Node3", 3, 3);
|
||||
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Node2", 2, 2, new System.Windows.Forms.TreeNode[] {
|
||||
treeNode1});
|
||||
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("Node1", 1, 1, new System.Windows.Forms.TreeNode[] {
|
||||
treeNode2});
|
||||
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("Node0", new System.Windows.Forms.TreeNode[] {
|
||||
treeNode3});
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SpaceForm));
|
||||
this.spaceTree = new System.Windows.Forms.TreeView();
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
this.pnlButtons = new System.Windows.Forms.Panel();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.btnSelect = new System.Windows.Forms.Button();
|
||||
this.pnlButtons.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// spaceTree
|
||||
//
|
||||
this.spaceTree.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.spaceTree.ImageIndex = 0;
|
||||
this.spaceTree.ImageList = this.images;
|
||||
this.spaceTree.Location = new System.Drawing.Point(10, 10);
|
||||
this.spaceTree.Name = "spaceTree";
|
||||
treeNode1.ImageIndex = 3;
|
||||
treeNode1.Name = "Node3";
|
||||
treeNode1.SelectedImageIndex = 3;
|
||||
treeNode1.Text = "Node3";
|
||||
treeNode2.ImageIndex = 2;
|
||||
treeNode2.Name = "Node2";
|
||||
treeNode2.SelectedImageIndex = 2;
|
||||
treeNode2.Text = "Node2";
|
||||
treeNode3.ImageIndex = 1;
|
||||
treeNode3.Name = "Node1";
|
||||
treeNode3.SelectedImageIndex = 1;
|
||||
treeNode3.Text = "Node1";
|
||||
treeNode4.Name = "Node0";
|
||||
treeNode4.Text = "Node0";
|
||||
this.spaceTree.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
||||
treeNode4});
|
||||
this.spaceTree.SelectedImageIndex = 0;
|
||||
this.spaceTree.ShowLines = false;
|
||||
this.spaceTree.Size = new System.Drawing.Size(399, 319);
|
||||
this.spaceTree.TabIndex = 0;
|
||||
this.spaceTree.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.OnBeforeExpand);
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "UserSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(1, "UsersSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(2, "FolderSmallIcon.ico");
|
||||
this.images.Images.SetKeyName(3, "SpaceSmallIcon.ico");
|
||||
//
|
||||
// pnlButtons
|
||||
//
|
||||
this.pnlButtons.Controls.Add(this.btnCancel);
|
||||
this.pnlButtons.Controls.Add(this.btnSelect);
|
||||
this.pnlButtons.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.pnlButtons.Location = new System.Drawing.Point(10, 329);
|
||||
this.pnlButtons.Name = "pnlButtons";
|
||||
this.pnlButtons.Size = new System.Drawing.Size(399, 32);
|
||||
this.pnlButtons.TabIndex = 1;
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(324, 9);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 1;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnSelect
|
||||
//
|
||||
this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSelect.Location = new System.Drawing.Point(243, 9);
|
||||
this.btnSelect.Name = "btnSelect";
|
||||
this.btnSelect.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnSelect.TabIndex = 0;
|
||||
this.btnSelect.Text = "Select";
|
||||
this.btnSelect.UseVisualStyleBackColor = true;
|
||||
this.btnSelect.Click += new System.EventHandler(this.OnSelectClick);
|
||||
//
|
||||
// SpaceForm
|
||||
//
|
||||
this.AcceptButton = this.btnSelect;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.btnCancel;
|
||||
this.ClientSize = new System.Drawing.Size(419, 371);
|
||||
this.Controls.Add(this.spaceTree);
|
||||
this.Controls.Add(this.pnlButtons);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "SpaceForm";
|
||||
this.Padding = new System.Windows.Forms.Padding(10);
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Select Hosting Space";
|
||||
this.pnlButtons.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TreeView spaceTree;
|
||||
private System.Windows.Forms.Panel pnlButtons;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
private System.Windows.Forms.Button btnSelect;
|
||||
private System.Windows.Forms.ImageList images;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,277 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public partial class SpaceForm : BaseForm
|
||||
{
|
||||
public const string USER = "User";
|
||||
public const string CUSTOMERS = "Customers";
|
||||
public const string SPACES = "Spaces";
|
||||
public const string SPACE = "Space";
|
||||
public const string TMP = "Tmp";
|
||||
|
||||
private string username;
|
||||
private string password;
|
||||
|
||||
public SpaceForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
}
|
||||
|
||||
public void InitializeForm(string username, string password)
|
||||
{
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
PopulateRootNode(username, password);
|
||||
}
|
||||
|
||||
private void PopulateRootNode(string username, string password)
|
||||
{
|
||||
spaceTree.Nodes.Clear();
|
||||
UserInfo info = null;
|
||||
try
|
||||
{
|
||||
info = UserController.GetUser(username);
|
||||
SecurityContext.SetThreadPrincipal(info);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to load user.", ex);
|
||||
}
|
||||
if (info != null)
|
||||
{
|
||||
DataNode rootNode = AddTreeNode(null, info.Username, 0, USER, info, true);
|
||||
rootNode.Expand();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBeforeExpand(object sender, TreeViewCancelEventArgs e)
|
||||
{
|
||||
DataNode node = e.Node as DataNode;
|
||||
ExpandNode(node);
|
||||
}
|
||||
|
||||
private void ExpandNode(DataNode node)
|
||||
{
|
||||
if (node == null || node.Populated)
|
||||
return;
|
||||
|
||||
node.Nodes.Clear();
|
||||
spaceTree.Update();
|
||||
|
||||
switch (node.NodeType)
|
||||
{
|
||||
case USER:
|
||||
PopulateUser(node);
|
||||
break;
|
||||
case CUSTOMERS:
|
||||
PopulateCustomers(node);
|
||||
break;
|
||||
case SPACES:
|
||||
PopulateSpaces(node);
|
||||
break;
|
||||
}
|
||||
|
||||
node.Populated = true;
|
||||
node.Expand();
|
||||
}
|
||||
|
||||
private void PopulateSpaces(DataNode parentNode)
|
||||
{
|
||||
UserInfo info = parentNode.Tag as UserInfo;
|
||||
DataSet ds = null;
|
||||
try
|
||||
{
|
||||
ds = PackageController.GetRawMyPackages(info.UserId);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
ShowError("Unable to load spaces.", ex);
|
||||
}
|
||||
if (ds != null)
|
||||
{
|
||||
foreach (DataRow dr in ds.Tables[0].Rows)
|
||||
{
|
||||
PackageInfo data = new PackageInfo();
|
||||
data.PackageId = Utils.GetDbInt32(dr["PackageId"]);
|
||||
data.PackageName = Utils.GetDbString(dr["PackageName"]);
|
||||
data.UserId = Utils.GetDbInt32(dr["UserId"]);
|
||||
AddTreeNode(parentNode, data.PackageName, 3, SPACE, data, false);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void PopulateCustomers(DataNode parentNode)
|
||||
{
|
||||
UserInfo info = parentNode.Tag as UserInfo;
|
||||
DataSet ds = null;
|
||||
try
|
||||
{
|
||||
ds = UserController.GetRawUsers(info.UserId, false);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
ShowError("Unable to load users.", ex);
|
||||
}
|
||||
if (ds != null)
|
||||
{
|
||||
|
||||
foreach (DataRow dr in ds.Tables[0].Rows)
|
||||
{
|
||||
|
||||
UserInfo user = new UserInfo();
|
||||
user.UserId = Utils.GetDbInt32(dr["UserId"]);
|
||||
user.Username = Utils.GetDbString(dr["Username"]);
|
||||
user.RoleId = Utils.GetDbInt32(dr["RoleId"]);
|
||||
AddTreeNode(parentNode, user.Username, 0, USER, user, true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void PopulateUser(DataNode parentNode)
|
||||
{
|
||||
UserInfo info = parentNode.Tag as UserInfo;
|
||||
if ((UserRole)info.RoleId != UserRole.User)
|
||||
{
|
||||
AddTreeNode(parentNode, CUSTOMERS, 1, CUSTOMERS, info, true);
|
||||
}
|
||||
AddTreeNode(parentNode, SPACES, 2, SPACES, info, true);
|
||||
}
|
||||
|
||||
private DataNode AddTreeNode(DataNode parentNode, string text, int imageIndex, string nodeType, object data, bool hasChildren)
|
||||
{
|
||||
DataNode node = new DataNode();
|
||||
node.Text = text;
|
||||
node.SelectedImageIndex = imageIndex;
|
||||
node.ImageIndex = imageIndex;
|
||||
node.NodeType = nodeType;
|
||||
node.Tag = data;
|
||||
if (hasChildren)
|
||||
{
|
||||
node.Populated = false;
|
||||
DataNode tmpNode = new DataNode();
|
||||
tmpNode.Text = "Expanding...";
|
||||
tmpNode.SelectedImageIndex = 2;
|
||||
tmpNode.ImageIndex = 2;
|
||||
tmpNode.NodeType = TMP;
|
||||
node.Nodes.Add(tmpNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
node.Populated = true;
|
||||
}
|
||||
if (parentNode != null)
|
||||
parentNode.Nodes.Add(node);
|
||||
else
|
||||
spaceTree.Nodes.Add(node);
|
||||
return node;
|
||||
}
|
||||
|
||||
private void OnSelectClick(object sender, EventArgs e)
|
||||
{
|
||||
DataNode node = spaceTree.SelectedNode as DataNode;
|
||||
if (node == null || node.NodeType != SPACE)
|
||||
{
|
||||
ShowWarning("Please select hosting space.");
|
||||
return;
|
||||
}
|
||||
PackageInfo data = node.Tag as PackageInfo;
|
||||
if (data == null || data.PackageId == 0 || data.PackageId == 1)
|
||||
{
|
||||
ShowWarning("Invalid hosting space. Please select hosting space with allowed Exchange organizations.");
|
||||
return;
|
||||
}
|
||||
|
||||
PackageContext cntx = null;
|
||||
try
|
||||
{
|
||||
cntx = PackageController.GetPackageContext(data.PackageId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError("Unable to load space data", ex);
|
||||
return;
|
||||
}
|
||||
|
||||
if (cntx == null)
|
||||
{
|
||||
ShowWarning("Invalid hosting space. Please select hosting space with allowed Exchange organizations.");
|
||||
return;
|
||||
}
|
||||
|
||||
bool exchangeEnabled = false;
|
||||
bool orgEnabled = false;
|
||||
|
||||
foreach (HostingPlanGroupInfo group in cntx.GroupsArray)
|
||||
{
|
||||
if (!group.Enabled)
|
||||
continue;
|
||||
if (group.GroupName == ResourceGroups.Exchange)
|
||||
{
|
||||
exchangeEnabled = true;
|
||||
continue;
|
||||
}
|
||||
else if (group.GroupName == ResourceGroups.HostedOrganizations)
|
||||
{
|
||||
orgEnabled = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (!exchangeEnabled || !orgEnabled)
|
||||
{
|
||||
ShowWarning("Invalid hosting space. Please select hosting space with allowed Exchange organizations.");
|
||||
return;
|
||||
}
|
||||
this.selectedSpace = data;
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private PackageInfo selectedSpace;
|
||||
|
||||
public PackageInfo SelectedSpace
|
||||
{
|
||||
get { return selectedSpace; }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,201 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="images.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACK
|
||||
EAAAAk1TRnQBSQFMAgEBBAEAAQwBAAEEAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEYBgABGP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ALoAA/sD7wHeAdsB2AHVAc8ByQHX
|
||||
AdMBzgHlAeMB4gP2GAAB+QL4AcwBxgHBAbYBrAGhAaoBmQGKAaEBiwF6AaoBmQGKAbYBrAGhAckBxAG/
|
||||
Ae8B7gHtIQAB+QL4AcwBxAG/AbcBqgGeAawBmAGGAaQBiwF3AawBmAGGAbcBqgGeAckBwwG9Ae8B7gHt
|
||||
OQAB8gLxAb8BpQGMAdIBkgFKAeoBpAFSAe8BrQFaAe8BrgFYAekBqQFUAckBnQFnAdEByAG9A/0PAAP+
|
||||
Aa8BoQGVAbEBlQF6AeYBywG0Ad4BtwGQAeMBuwGUAeABugGUAc4BqwGIAbgBmQF8AcABsgGkEgAD/QP4
|
||||
A/cD+AP7Aa8BnwGRAbYBlgF3AfQB1QG6AeoBvgGRAfABwgGVAe0BwQGVAdgBsAGIAb8BmwF6AcEBsgGi
|
||||
AwABdQGEAY8BbAF6AYUBYAFtAXcBUQFdAWYBQgFMAVQBMQE6AUEBIwEqATABFgEcASEBDgETARgBDgET
|
||||
ARgBDgETARgBDgETARgBDgETARgBDgETARgBDgETARgGAAHzAe4B6gHiAZcBTQHnAZgBRAHiAZsBSQHh
|
||||
AZ8BTgHjAaQBUwHkAacBUgHmAakBTwHvAbcBXQH2Ab0BZQHkAb0BkQP9DAAD/gHGAbkBqQHGAaUBhQHm
|
||||
AdABvQHiAb0BnAHmAb8BlwHoAcMBnwHbAboBmAHAAZ8BfwG7AasBnQwAA/YBtAG/AboBZgGWAX8BWgGV
|
||||
AXcBVAGSAXQBagGVAX8BWQGFAWwBrAGRAXEBzwGpAYQB9AHaAcQB7wHEAZ8B9AHHAZkB9gHLAaIB5wHB
|
||||
AZoByAGiAX0BvQGqAZoDAAF3AYcBkgGiAd8B8AFwAc0B6gFJAbgB4gE3Aa4B2wEtAakB2QEmAaEB0gEh
|
||||
AZgBxwEgAY4BvAEeAYMBrgEZAX8BqwEVAXwBqQEbAXcBnwEfAXIBlgEWARwBIQMAAfcB8wHvAdsBiAE6
|
||||
AdUBfAEmAdUBfgEjAdcBggEjAdkBiAEmAdwBkAEuAeABmgE8AeMBoQFFAeMBoQE+AecBrQFRAeoBsgFX
|
||||
AekBwAGRDAAD/wHPAcoBtwHZAbEBkAHmAdQBwQHzAdIBswHqAcEBmAHtAcwBqgHgAcIBpAHDAaMBggGu
|
||||
AZwBjAwAA+cBbAHDAZkBZAHAAZEBXAG4AYkBVAGyAYQBoAHBAagBWgGnAX0BrwGgAXEB5QG3AZEB9AHf
|
||||
AckB/wHdAbkB+AHJAZoB/AHWAa8B7QHKAagBywGnAYEBrwGbAYkDAAF6AYoBlQGqAegB9gGVAeUB/AGE
|
||||
Ad8B+wF1AdYB+gFqAdAB9wFdAcYB9AFQAb4B8AFBAbQB7AE1AaoB6AErAaQB5gEgAZoB3wEWAZAB1wEb
|
||||
AXcBnwEgAScBLQP/Ad4BrAF8AdABcgEeAdMBeAEgAdQBewEgAdYBfwEgAdcBgwEfAdkBhQEeAdoBiQEe
|
||||
Ad0BkQEoAeABmgE0AeEBnAEzAecBrAFQAeQBpAFAAe4B4QHSCQAG/wHwAdABsAHQAcMBsgHIAcMBuwHX
|
||||
AbcBlwHrAcQBnQHhAb4BmwHOAaYBfwHSAcoBwgwAA/YBcwHKAaABagHCAZYBZQG/AZMBbAHAAZEB0QHj
|
||||
AcYBZQG1AZABjQGrAXcB/wHSAaUB2gHLAbgB0QHLAcIB4gG+AZkB+QHMAaAB7gHGAZ0B2AGqAX0B0gHJ
|
||||
AcADAAF9AY4BmAGwAeoB9gGfAekB+wGSAeQB/AGBAd0B+wF1AdYB+gFoAc4B9wFdAcYB9AFNAbwB8AFB
|
||||
AbQB7AE1AaoB6AEqAaMB5gEdAZYB3AEVAXwBqQEtATQBOwH0Ae8B6QHiAacBcwHTAXkBKwHSAXQBHgHU
|
||||
AXoBIQHVAX4BIQHXAYEBIQHYAYUBIQHaAYgBIAHbAYoBHwHcAY8BIgHeAZQBKAHgAZoBMgHlAagBSgHi
|
||||
Aa8BbwP+CQAD/wL1AfQBpAGnAawBGwFLAXwBTwFpAYMBxgGmAYcB1AGxAY4B0QHIAb8D/QwAA/sBgQHP
|
||||
AagBcwHKAaABaQHEAZUBggHDAagBsgHKAb8BYAGqAYUBTQGoAXcBsgGuAY4BfAGCAYwBCgFBAXoBRgFk
|
||||
AYIBzwGqAYYB3AG0AY0B0gHHAb0D/QMAAYABkQGcAbYB7QH4AaoB7AH7AZsB6AH7AY8B4wH8AYEB3QH7
|
||||
AXEB1QH5AWgBzgH3AVsBxQH0AU0BvAHwAT0BsgHsATIBqQHoASQBngHiARABggG0ATsBQwFLAesB1wHB
|
||||
AeoBvgGdAeEBpAFwAdEBcwEfAdIBdwEeAdQBfAEhAdYBfwEhAdcBggEhAdkBhQEgAdoBiAEgAdsBigEg
|
||||
AdwBjQEhAdwBjgEhAeIBnwFAAd4BmAE3AfYB8wHvBgAG/wP6Aa0BugHHATABVQF8AScBUQF8AZUBmQGb
|
||||
AeYB4QHcAwAD/g8AAdMB6AHeAXcBzAGhAWcBvAGRAWABkQGyAVcBgAGlAUEBfgFcAYABsQGWAaABrgGz
|
||||
ATwBYQGKASIBTQF6ARgBSAF6AY8BlAGWAegB4QHbAwAD/gMAAYMBlQGfAb4B8AH5AasB8AH3AaUB7AH7
|
||||
AZgB5wH7AYkB4QH8AX8B3QH7AXEB1QH5AWUBzQH3AVgBxAHzAUsBuwHwAT0BsgHsASwBpAHjAQwBigG/
|
||||
AUkBUwFcAegBywGuAewBxQGpAekBvwGcAeABoQFqAdIBdgEhAdIBdgEcAdUBfAEgAdYBfwEhAdcBggEg
|
||||
AdgBhQEgAdkBhwEgAdoBiQEgAdoBiQEdAd8BlgE1Ad8BlwE3AfEB6AHeBgAG/gH0AvUBcwGRAa8BTAFz
|
||||
AZsBRwFsAZMBNQFbAYEC8AHxGAAB6AHxAe0BZwGyAZUBTwF8AagBYAGJAa0BrAHAAb0B8ALyAW0BjgGx
|
||||
AUMBbwGdAT0BZwGUASgBVAGAAvAB8QwAAYYBmQGjAb4B8AH5AbYB7QH4AbAB7gH6AaQB6wH6AZUB5gH7
|
||||
AYkB4QH8AX0B3AH8AXEB1QH5AWUBzQH3AVgBxAHzAUkBuQHvATUBqQHnAQwBjwHHAVcBYwFrAegBzgGv
|
||||
Ae4BzQG2AesBwwGjAekBvwGbAeMBqwF4AdgBiAE8AdMBeAEfAdQBeQEbAdUBfgEeAdcBgQEfAdgBgwEg
|
||||
AdkBhQEgAdkBhgEeAdwBkQEyAd4BlAE3AfEB6AHcBgAD/gMAAcwB0wHZAXUBmQG8AWoBkAG2AVsBgQGn
|
||||
AUEBaQGQAbsBwgHJA/4VAAHFAdAB1wE5AWwBiQF1AaEBzAGDAasB2QFfAYQBpgHCAcsB1AFxAZoBwwFl
|
||||
AZEBvAFUAYABqwE2AWQBkQG6AcEByQP+CQABiQGcAaYBvgHwAfkBtgHtAfgBtgHtAfgBqwHwAfcBogHs
|
||||
AfoBlQHmAfsBiQHhAfwBfQHcAfwBbwHTAfoBYwHMAfcBVQHDAfMBSQG5Ae8BGQGZAc8BYwFwAXoB6wHY
|
||||
AcEB8AHUAcEB7QHLAbEB6wHDAaIB6QG+AZoB5wG4AYwB4QGkAWsB3AGRAUgB2AGGATEB1wGBAScB1wGB
|
||||
ASIB1wGCASEB1wGCAR4B2wGOATMB3AGRATcB9QHwAesGAAP+A/8B2wHhAeUBjwGxAdQBggGoAc4BagGR
|
||||
AbgBTAFuAZIBMQFBAVED8xIAAfwC/QFlAZgBqgFYAYwBrwGhAcsB+QGWAcMB8QFvAZcBvwHWAd4B4wGP
|
||||
AbYB3wGBAawB2AFlAZIBvwFDAWoBkwEkATYBSAPzCQABiwGgAagBvgHwAfkBvgHwAfkBvgHwAfkBvgHw
|
||||
AfkBtAHyAfgBqgHsAfsBoAHpAfsBlQHlAfwBigHfAfwBfwHYAfsBdAHSAfgBaAHKAfQBXQHAAfEBYwFw
|
||||
AXoB8QHqAeAB8QHUAb4B8QHWAcMB7gHMAbMB6wHDAaMB6QG8AZYB5wG3AYwB5gGxAYEB4wGpAXEB4AGh
|
||||
AWEB3gGZAVIB3AGUAUYB2wGOATsB3QGWAUkB4QGpAWgB/AL7BgAG/wHDAdAB2gGkAccB6wGbAb8B5QFz
|
||||
AZ0BxwFLAV8BdAEzAS8BLAPrEgAB+wL8AWwBoQG0AY4BuQHfAcwB9AH/AaoB1gH+AZYBtQHWAwABpwHQ
|
||||
AfkBnQHHAfIBbwGgAdABQQFYAXEBJgEhAR4D6wkAAY0BoQGqAY0BoQGqAY0BoQGqAY0BoQGqAY0BoQGq
|
||||
AYsBnwGoAYkBnAGmAYkBmwGmAYcBmgGkAYYBmQGjAYQBlgGgAYQBlgGgAYMBlQGgAYMBlQGgAXUBhAGP
|
||||
Af0C/AHrAc0BqgH1AeEB1gHyAdgBxAHvAc4BtQHrAcUBpQHpAbwBlgHmAbUBiQHkAa4BfAHiAacBcAHg
|
||||
AaEBYwHeAZoBVgHdAZYBUAHfAZwBVwHsAdoBwwkAA/8GAAGSAaQBtgF/AZIBpgFpAXwBjgFPAVIBVgE5
|
||||
ATgBNwPyEgAD/wGbAcQBzwFsAacBwgG8AeMB9AGqAdIB+QGMAasBzgMAAZIBpwG8AX0BkwGqAWQBegGO
|
||||
AUYBSgFOAS0BLAErA/IJAAGPAaQBrAGyAeQB7AG2Ae0B+AG2Ae0B+AGpAewB9gGSAeEB8wGNAaEBqgHw
|
||||
AfEB8hgAAfIB6wHhAfMB2QHAAfYB5QHbAfMB2wHJAfAB0gG7Ae0ByQGsAeoBwQGeAegBugGSAeYBtAGH
|
||||
AeUBrwF+AeQBrQF5AeIBqAF0AeUBuAGCA/wMAAP/AwAB1gHUAdMBkQGPAY0BbwFtAWoBZgFlAWQDxAP+
|
||||
FQAB5AHtAe8BdwG+AdEBWwGgAbUBWAGTAbABQgF2AZMDAAHWAdUB1AGQAY0BjAFqAWgBZQFfAV4BXQPD
|
||||
A/4JAAHsAe0B7gGPAaQBrAGPAaQBrAGPAaQBrAGPAaQBrAGPAaQBrAHwAfEB8h4AAe8B4wHRAfMB2wHE
|
||||
AfcB6AHhAfQB4AHSAfIB2AHDAfAB0QG4Ae4BywGvAewByAGpAewBxgGoAeoBvwGcAecBuwGHAfgB9gHz
|
||||
DAAD/QMAA/0DAAP5A/AD9RsAA/0B4AHyAfYBqQHhAe4BiAHLAdkBgwG/Ac0B0wHhAeUDAAP5Au8B8AP1
|
||||
RQAB8wHuAeYB7gHUAbAB9AHdAcgB9QHhAdQB8wHdAc4B8gHXAcUB7wHQAbcB6wHFAZoB6wHVAbQC+gH5
|
||||
pQAD/gH0AfEB6gHvAeEBzAHtAdoBvQHtAdoBvwHwAeYB1wH5AfcB9Q8AAUIBTQE+BwABPgMAASgDAAFA
|
||||
AwABIAMAAQEBAAEBBgABARYAA/+BAAb/AfABHwHgAQ8B/gEAAv8B4AEHAcABDwHAAQABgAEAAcABAwHA
|
||||
AQ8CAAGAAQABgAEDAcABDwIAAYACAAEBAcABDwIAAYADAAHgAQ8CAAGAAwABwAEvAYABAgGAAwABwAE/
|
||||
AcABBwGAAwAB0AEfAcABAwGAAwABwAEfAYABAwGAAwABwAEfAYEBAwGAAgABAQHYAR8BgQEDAYABfwGA
|
||||
AQEB6AEfAcEBAwGAAf8BwAEDAdQBfwHAAY8C/wHgAQcG/wHwAR8L
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,149 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.Import.Enterprise
|
||||
{
|
||||
public class Utils
|
||||
{
|
||||
private Utils()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public static int ParseInt(string val, int defaultValue)
|
||||
{
|
||||
int result;
|
||||
if (!Int32.TryParse(val, out result))
|
||||
{
|
||||
result = defaultValue;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static bool IsThreadAbortException(Exception ex)
|
||||
{
|
||||
Exception innerException = ex;
|
||||
while (innerException != null)
|
||||
{
|
||||
if (innerException is System.Threading.ThreadAbortException)
|
||||
return true;
|
||||
innerException = innerException.InnerException;
|
||||
}
|
||||
|
||||
string str = ex.ToString();
|
||||
return str.Contains("System.Threading.ThreadAbortException");
|
||||
}
|
||||
|
||||
#region DB
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to string
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>string</returns>
|
||||
public static string GetDbString(object val)
|
||||
{
|
||||
string ret = string.Empty;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (string)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to short
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>short</returns>
|
||||
public static short GetDbShort(object val)
|
||||
{
|
||||
short ret = 0;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (short)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to int
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>int</returns>
|
||||
public static int GetDbInt32(object val)
|
||||
{
|
||||
int ret = 0;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (int)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to bool
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>bool</returns>
|
||||
public static bool GetDbBool(object val)
|
||||
{
|
||||
bool ret = false;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = Convert.ToBoolean(val);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to decimal
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>decimal</returns>
|
||||
public static decimal GetDbDecimal(object val)
|
||||
{
|
||||
decimal ret = 0;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (decimal)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Converts db value to datetime
|
||||
/// </summary>
|
||||
/// <param name="val">Value</param>
|
||||
/// <returns>DateTime</returns>
|
||||
public static DateTime GetDbDateTime(object val)
|
||||
{
|
||||
DateTime ret = DateTime.MinValue;
|
||||
if ((val != null) && (val != DBNull.Value))
|
||||
ret = (DateTime)val;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,224 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{3CC79CB9-C8B9-4658-A3C6-AE023445D091}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>WebsitePanel.Import.Enterprise</RootNamespace>
|
||||
<AssemblyName>WebsitePanel.Import.Enterprise</AssemblyName>
|
||||
<ApplicationIcon>application.ico</ApplicationIcon>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<StartupObject>WebsitePanel.Import.Enterprise.Program</StartupObject>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<UseVSHostingProcess>true</UseVSHostingProcess>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.configuration" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.DirectoryServices" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WebsitePanel.EnterpriseServer">
|
||||
<HintPath>..\..\WebsitePanel.EnterpriseServer\bin\WebsitePanel.EnterpriseServer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Base">
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.EnterpriseServer.Client">
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.Providers.Base">
|
||||
<HintPath>..\..\..\Bin\WebsitePanel.Providers.Base.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\..\VersionInfo.cs">
|
||||
<Link>VersionInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="ADUtils.cs" />
|
||||
<Compile Include="AnimatedIcon.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ApplicationForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ApplicationForm.Designer.cs">
|
||||
<DependentUpon>ApplicationForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="BaseForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Global.cs" />
|
||||
<Compile Include="ImportAction.cs" />
|
||||
<Compile Include="OrganizationImporter.cs" />
|
||||
<Compile Include="OUForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="OUForm.Designer.cs">
|
||||
<DependentUpon>OUForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DataNode.cs" />
|
||||
<Compile Include="SpaceForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SpaceForm.Designer.cs">
|
||||
<DependentUpon>SpaceForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ConnectForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ConnectForm.Designer.cs">
|
||||
<DependentUpon>ConnectForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LineBox.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LineBox.Designer.cs">
|
||||
<DependentUpon>LineBox.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Log.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="ProgressIcon.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="ApplicationForm.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>ApplicationForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ConnectForm.resx">
|
||||
<DependentUpon>ConnectForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="OUForm.resx">
|
||||
<DependentUpon>OUForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ProgressIcon.resx">
|
||||
<DependentUpon>ProgressIcon.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SpaceForm.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<DependentUpon>SpaceForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="App.config" />
|
||||
<Compile Include="Utils.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="application.ico" />
|
||||
<None Include="Resources\OU.ico" />
|
||||
<None Include="Resources\UsersLargeIcon.ico" />
|
||||
<None Include="Resources\UsersSmallIcon.ico" />
|
||||
<None Include="Resources\UserLargeIcon.ico" />
|
||||
<None Include="Resources\SpaceSmallIcon.ico" />
|
||||
<None Include="Resources\SpaceLargeIcon.ico" />
|
||||
<None Include="Resources\RefreshImage.bmp" />
|
||||
<None Include="Resources\ProgressImage8.bmp" />
|
||||
<None Include="Resources\ProgressImage7.bmp" />
|
||||
<None Include="Resources\ProgressImage6.bmp" />
|
||||
<None Include="Resources\ProgressImage5.bmp" />
|
||||
<None Include="Resources\ProgressImage4.bmp" />
|
||||
<None Include="Resources\ProgressImage3.bmp" />
|
||||
<None Include="Resources\ProgressImage2.bmp" />
|
||||
<None Include="Resources\ProgressImage1.bmp" />
|
||||
<None Include="Resources\FolderSmallIcon.ico" />
|
||||
<None Include="Resources\FolderLargeIcon.ico" />
|
||||
<None Include="Resources\ConnectLogo.bmp" />
|
||||
<None Include="Resources\ConnectImage.bmp" />
|
||||
<None Include="Resources\BannerImage.GIF" />
|
||||
<None Include="Resources\UserSmallIcon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 103 KiB |
|
@ -0,0 +1,897 @@
|
|||
"DeployProject"
|
||||
{
|
||||
"VSVersion" = "3:800"
|
||||
"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
|
||||
"IsWebType" = "8:FALSE"
|
||||
"ProjectName" = "8:WebsitePanel.LocalizationToolkit.Setup"
|
||||
"LanguageId" = "3:1033"
|
||||
"CodePage" = "3:1252"
|
||||
"UILanguageId" = "3:1033"
|
||||
"SccProjectName" = "8:"
|
||||
"SccLocalPath" = "8:"
|
||||
"SccAuxPath" = "8:"
|
||||
"SccProvider" = "8:"
|
||||
"Hierarchy"
|
||||
{
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_2ACFEB70E7F340E2AA147E9873537EB9"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_3B6BCC3083984F7B823C46F727669165"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_AFF04F444EB74D2BBF0FE4A6E9652FD5"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_CF213991E0A04EF3AB1EC885E4DE4DD0"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_FCEB498C298F3B87E5937D817B53B518"
|
||||
"OwnerKey" = "8:_3B6BCC3083984F7B823C46F727669165"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_3B6BCC3083984F7B823C46F727669165"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_FCEB498C298F3B87E5937D817B53B518"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
}
|
||||
"Configurations"
|
||||
{
|
||||
"Debug"
|
||||
{
|
||||
"DisplayName" = "8:Debug"
|
||||
"IsDebugOnly" = "11:TRUE"
|
||||
"IsReleaseOnly" = "11:FALSE"
|
||||
"OutputFilename" = "8:Debug\\WebsitePanelLocalizationToolkit10.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:2"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:2"
|
||||
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
|
||||
{
|
||||
"Enabled" = "11:TRUE"
|
||||
"PromptEnabled" = "11:TRUE"
|
||||
"PrerequisitesLocation" = "2:1"
|
||||
"Url" = "8:"
|
||||
"ComponentsUrl" = "8:"
|
||||
"Items"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Release"
|
||||
{
|
||||
"DisplayName" = "8:Release"
|
||||
"IsDebugOnly" = "11:FALSE"
|
||||
"IsReleaseOnly" = "11:TRUE"
|
||||
"OutputFilename" = "8:Release\\WebsitePanelLocalizationToolkit110.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:3"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:2"
|
||||
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
|
||||
{
|
||||
"Enabled" = "11:TRUE"
|
||||
"PromptEnabled" = "11:TRUE"
|
||||
"PrerequisitesLocation" = "2:1"
|
||||
"Url" = "8:"
|
||||
"ComponentsUrl" = "8:"
|
||||
"Items"
|
||||
{
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.2.0"
|
||||
{
|
||||
"Name" = "8:Microsoft .NET Framework 2.0"
|
||||
"ProductCode" = "8:Microsoft.Net.Framework.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"Deployable"
|
||||
{
|
||||
"CustomAction"
|
||||
{
|
||||
}
|
||||
"DefaultFeature"
|
||||
{
|
||||
"Name" = "8:DefaultFeature"
|
||||
"Title" = "8:"
|
||||
"Description" = "8:"
|
||||
}
|
||||
"ExternalPersistence"
|
||||
{
|
||||
"LaunchCondition"
|
||||
{
|
||||
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_6C2C81643E6948CB8F33FBC62CE59537"
|
||||
{
|
||||
"Name" = "8:.NET Framework"
|
||||
"Message" = "8:[VSDNETMSG]"
|
||||
"FrameworkVersion" = "8:2.0.50727 "
|
||||
"AllowLaterVersions" = "11:FALSE"
|
||||
"InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=9832"
|
||||
}
|
||||
}
|
||||
}
|
||||
"File"
|
||||
{
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2ACFEB70E7F340E2AA147E9873537EB9"
|
||||
{
|
||||
"SourcePath" = "8:Resources.xml"
|
||||
"TargetName" = "8:Resources.xml"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_B0C67C6AB87A44F4BD733B145C96AA0D"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_AFF04F444EB74D2BBF0FE4A6E9652FD5"
|
||||
{
|
||||
"SourcePath" = "8:Banner.bmp"
|
||||
"TargetName" = "8:Banner.bmp"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A68C37AB7D6A4154AFCA98D0B81B8175"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CF213991E0A04EF3AB1EC885E4DE4DD0"
|
||||
{
|
||||
"SourcePath" = "8:Application.ico"
|
||||
"TargetName" = "8:Application.ico"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A68C37AB7D6A4154AFCA98D0B81B8175"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FCEB498C298F3B87E5937D817B53B518"
|
||||
{
|
||||
"AssemblyRegister" = "3:1"
|
||||
"AssemblyIsInGAC" = "11:FALSE"
|
||||
"AssemblyAsmDisplayName" = "8:Ionic.Zip.Reduced, Version=1.8.4.28, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL"
|
||||
"ScatterAssemblies"
|
||||
{
|
||||
"_FCEB498C298F3B87E5937D817B53B518"
|
||||
{
|
||||
"Name" = "8:Ionic.Zip.Reduced.dll"
|
||||
"Attributes" = "3:512"
|
||||
}
|
||||
}
|
||||
"SourcePath" = "8:Ionic.Zip.Reduced.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A68C37AB7D6A4154AFCA98D0B81B8175"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:TRUE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
}
|
||||
"FileType"
|
||||
{
|
||||
}
|
||||
"Folder"
|
||||
{
|
||||
"{3C67513D-01DD-4637-8A68-80971EB9504F}:_A68C37AB7D6A4154AFCA98D0B81B8175"
|
||||
{
|
||||
"DefaultLocation" = "8:[ProgramFilesFolder]\\[ProductName]"
|
||||
"Name" = "8:#1925"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:TARGETDIR"
|
||||
"Folders"
|
||||
{
|
||||
"{9EF0B969-E518-4E46-987F-47570745A589}:_3720D40D45AB4DB6BED06BFAEAC5A752"
|
||||
{
|
||||
"Name" = "8:Data"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:_8671072A3C384182993096421FD2D9E5"
|
||||
"Folders"
|
||||
{
|
||||
"{9EF0B969-E518-4E46-987F-47570745A589}:_B0C67C6AB87A44F4BD733B145C96AA0D"
|
||||
{
|
||||
"Name" = "8:en-US"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:_01D7FA0BB2894AE4BAAEDF2CBD298DE8"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{1525181F-901A-416C-8A58-119130FE478E}:_D902F8934C784F349A54BFBF171F5785"
|
||||
{
|
||||
"Name" = "8:#1916"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:DesktopFolder"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{1525181F-901A-416C-8A58-119130FE478E}:_E84D0D8C23D74DC291AF5E3C091925CE"
|
||||
{
|
||||
"Name" = "8:#1919"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:ProgramMenuFolder"
|
||||
"Folders"
|
||||
{
|
||||
"{9EF0B969-E518-4E46-987F-47570745A589}:_DA8C6876A5B640DCB369FC3D9F3E7C06"
|
||||
{
|
||||
"Name" = "8:WebsitePanel"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:_4DF1BC0F67E14B23AE8C9B5440136C98"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"LaunchCondition"
|
||||
{
|
||||
}
|
||||
"Locator"
|
||||
{
|
||||
}
|
||||
"MsiBootstrapper"
|
||||
{
|
||||
"LangId" = "3:1033"
|
||||
"RequiresElevation" = "11:FALSE"
|
||||
}
|
||||
"Product"
|
||||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:WebsitePanel Localization Toolkit 1.2.0"
|
||||
"ProductCode" = "8:{C409DC88-3751-4DF9-9EF1-56AD06C92319}"
|
||||
"PackageCode" = "8:{73251356-07E6-4DCA-A815-A433A5528E27}"
|
||||
"UpgradeCode" = "8:{5E387E28-5748-4BF2-BEEF-2A3AE3F43FC5}"
|
||||
"AspNetVersion" = "8:4.0.30319.0"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:FALSE"
|
||||
"DetectNewerInstalledVersion" = "11:FALSE"
|
||||
"InstallAllUsers" = "11:TRUE"
|
||||
"ProductVersion" = "8:1.2.0"
|
||||
"Manufacturer" = "8:Outercurve Foundation"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:"
|
||||
"Title" = "8:WebsitePanel Localization Toolkit 1.2.0"
|
||||
"Subject" = "8:"
|
||||
"ARPCONTACT" = "8:Outercurve Foundation"
|
||||
"Keywords" = "8:"
|
||||
"ARPCOMMENTS" = "8:"
|
||||
"ARPURLINFOABOUT" = "8:http://www.websitepanel.net"
|
||||
"ARPPRODUCTICON" = "8:_CF213991E0A04EF3AB1EC885E4DE4DD0"
|
||||
"ARPIconIndex" = "3:0"
|
||||
"SearchPath" = "8:"
|
||||
"UseSystemSearchPath" = "11:TRUE"
|
||||
"TargetPlatform" = "3:0"
|
||||
"PreBuildEvent" = "8:"
|
||||
"PostBuildEvent" = "8:"
|
||||
"RunPostBuildEvent" = "3:0"
|
||||
}
|
||||
"Registry"
|
||||
{
|
||||
"HKLM"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_84474CDCB6F84C179BF5936C5D3E6FA5"
|
||||
{
|
||||
"Name" = "8:Software"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_2424B2DDE74E4C84A450CEC904245001"
|
||||
{
|
||||
"Name" = "8:[Manufacturer]"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"HKCU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4253DA26718244C68EA5E2D5F3E0BECF"
|
||||
{
|
||||
"Name" = "8:Software"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_EE5CDB0D01E14426A2660685953FB0AA"
|
||||
{
|
||||
"Name" = "8:[Manufacturer]"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"HKCR"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKPU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Sequences"
|
||||
{
|
||||
}
|
||||
"Shortcut"
|
||||
{
|
||||
"{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_9084A369771D425F90C8D69AA9B95B2E"
|
||||
{
|
||||
"Name" = "8:WebsitePanel Localization Toolkit 1.1.0"
|
||||
"Arguments" = "8:"
|
||||
"Description" = "8:"
|
||||
"ShowCmd" = "3:1"
|
||||
"IconIndex" = "3:0"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Target" = "8:_3B6BCC3083984F7B823C46F727669165"
|
||||
"Folder" = "8:_DA8C6876A5B640DCB369FC3D9F3E7C06"
|
||||
"WorkingFolder" = "8:_A68C37AB7D6A4154AFCA98D0B81B8175"
|
||||
"Icon" = "8:_CF213991E0A04EF3AB1EC885E4DE4DD0"
|
||||
"Feature" = "8:"
|
||||
}
|
||||
}
|
||||
"UserInterface"
|
||||
{
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_07DADAF879444DC0AE2D209A8FB4CD66"
|
||||
{
|
||||
"Name" = "8:#1900"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:1"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B20CB62C91C6443EB6976AF7A43C3B9A"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Welcome"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"CopyrightWarning"
|
||||
{
|
||||
"Name" = "8:CopyrightWarning"
|
||||
"DisplayName" = "8:#1002"
|
||||
"Description" = "8:#1102"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1202"
|
||||
"DefaultValue" = "8:#1202"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"Welcome"
|
||||
{
|
||||
"Name" = "8:Welcome"
|
||||
"DisplayName" = "8:#1003"
|
||||
"Description" = "8:#1103"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1203"
|
||||
"DefaultValue" = "8:#1203"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DFE43D509EDF474788C4055C9B12D093"
|
||||
{
|
||||
"Sequence" = "3:200"
|
||||
"DisplayName" = "8:Installation Folder"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F49BE1738F8941CF806680EDD0623628"
|
||||
{
|
||||
"Sequence" = "3:300"
|
||||
"DisplayName" = "8:Confirm Installation"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_1CC686DE26C546AE8ACCADE65CA6F796"
|
||||
{
|
||||
"UseDynamicProperties" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
|
||||
}
|
||||
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_1EE3CEDB34C74C13BBCFAB38A2BA9296"
|
||||
{
|
||||
"UseDynamicProperties" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_291633197334486BB264830EBCF2592D"
|
||||
{
|
||||
"Name" = "8:#1901"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:2"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_37CDDD62E36340B3BB4A8924B87A411F"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Progress"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_AFF04F444EB74D2BBF0FE4A6E9652FD5"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"ShowProgress"
|
||||
{
|
||||
"Name" = "8:ShowProgress"
|
||||
"DisplayName" = "8:#1009"
|
||||
"Description" = "8:#1109"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A3FA8078C0B64DA1935EE9EB77AF7C94"
|
||||
{
|
||||
"Name" = "8:#1902"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:3"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_68F8821CF1F5453A8CA007D60C649158"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Finished"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_B7A0F529521E46F6A4A38883984316B0"
|
||||
{
|
||||
"Name" = "8:#1900"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:1"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6F155C54029341C980368FF4964D81CF"
|
||||
{
|
||||
"Sequence" = "3:200"
|
||||
"DisplayName" = "8:Installation Folder"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_AFF04F444EB74D2BBF0FE4A6E9652FD5"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"InstallAllUsersVisible"
|
||||
{
|
||||
"Name" = "8:InstallAllUsersVisible"
|
||||
"DisplayName" = "8:#1059"
|
||||
"Description" = "8:#1159"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:0"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7F994CD26A9A46ACAF2B50188DAC5266"
|
||||
{
|
||||
"Sequence" = "3:300"
|
||||
"DisplayName" = "8:Confirm Installation"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_AFF04F444EB74D2BBF0FE4A6E9652FD5"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D52BF371B7214219BFCA48912B9969DC"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Welcome"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_AFF04F444EB74D2BBF0FE4A6E9652FD5"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"CopyrightWarning"
|
||||
{
|
||||
"Name" = "8:CopyrightWarning"
|
||||
"DisplayName" = "8:#1002"
|
||||
"Description" = "8:#1102"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1202"
|
||||
"DefaultValue" = "8:#1202"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"Welcome"
|
||||
{
|
||||
"Name" = "8:Welcome"
|
||||
"DisplayName" = "8:#1003"
|
||||
"Description" = "8:#1103"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1203"
|
||||
"DefaultValue" = "8:#1203"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_D46F44B47DC443758EBD66BBB4100D78"
|
||||
{
|
||||
"Name" = "8:#1901"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:2"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DA3D8BC171124C009627B5BBE5819694"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Progress"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"ShowProgress"
|
||||
{
|
||||
"Name" = "8:ShowProgress"
|
||||
"DisplayName" = "8:#1009"
|
||||
"Description" = "8:#1109"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F83D545073CA4BFDB3799B508ED50384"
|
||||
{
|
||||
"Name" = "8:#1902"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:3"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_EF7BC318E0154F3B8BCC26E1949A1565"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Finished"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_AFF04F444EB74D2BBF0FE4A6E9652FD5"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"UpdateText"
|
||||
{
|
||||
"Name" = "8:UpdateText"
|
||||
"DisplayName" = "8:#1058"
|
||||
"Description" = "8:#1158"
|
||||
"Type" = "3:15"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1258"
|
||||
"DefaultValue" = "8:#1258"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"MergeModule"
|
||||
{
|
||||
}
|
||||
"ProjectOutput"
|
||||
{
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3B6BCC3083984F7B823C46F727669165"
|
||||
{
|
||||
"SourcePath" = "8:..\\WebsitePanel.LocalizationToolkit\\obj\\Debug\\LocalizationToolkit.exe"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A68C37AB7D6A4154AFCA98D0B81B8175"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
"ProjectOutputGroupRegister" = "3:1"
|
||||
"OutputConfiguration" = "8:"
|
||||
"OutputGroupCanonicalName" = "8:Built"
|
||||
"OutputProjectGuid" = "8:{BF0D3398-FBC6-4B0E-B3FC-F60C6581DB4B}"
|
||||
"ShowKeyOutput" = "11:TRUE"
|
||||
"ExcludeFilters"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D8EABA26-E879-4C48-9F44-FECA8BB77099}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\..\..\LICENSE.txt = ..\..\..\LICENSE.txt
|
||||
..\..\..\Readme.htm = ..\..\..\Readme.htm
|
||||
..\..\..\ReleaseNotes.htm = ..\..\..\ReleaseNotes.htm
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.LocalizationToolkit", "WebsitePanel.LocalizationToolkit\WebsitePanel.LocalizationToolkit.csproj", "{BF0D3398-FBC6-4B0E-B3FC-F60C6581DB4B}"
|
||||
EndProject
|
||||
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "WebsitePanel.LocalizationToolkit.Setup", "WebsitePanel.LocalizationToolkit.Setup\Setup.vdproj", "{57EAE767-DEAD-4E34-8576-0A19C21C13BE}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{BF0D3398-FBC6-4B0E-B3FC-F60C6581DB4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BF0D3398-FBC6-4B0E-B3FC-F60C6581DB4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BF0D3398-FBC6-4B0E-B3FC-F60C6581DB4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BF0D3398-FBC6-4B0E-B3FC-F60C6581DB4B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{57EAE767-DEAD-4E34-8576-0A19C21C13BE}.Debug|Any CPU.ActiveCfg = Debug
|
||||
{57EAE767-DEAD-4E34-8576-0A19C21C13BE}.Debug|Any CPU.Build.0 = Debug
|
||||
{57EAE767-DEAD-4E34-8576-0A19C21C13BE}.Release|Any CPU.ActiveCfg = Release
|
||||
{57EAE767-DEAD-4E34-8576-0A19C21C13BE}.Release|Any CPU.Build.0 = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
After Width: | Height: | Size: 84 KiB |
298
WebsitePanel/Sources/Tools/WebsitePanel.LocalizationToolkit/ApplicationForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,298 @@
|
|||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
partial class ApplicationForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ApplicationForm));
|
||||
this.statusBar = new System.Windows.Forms.StatusStrip();
|
||||
this.statusBarLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.backgroundWorker = new System.ComponentModel.BackgroundWorker();
|
||||
this.pnlMain = new System.Windows.Forms.Panel();
|
||||
this.grdResources = new System.Windows.Forms.DataGridView();
|
||||
this.FileColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.KeyColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.DefaultValueColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ValueColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.pnlTop = new System.Windows.Forms.Panel();
|
||||
this.btnFind = new System.Windows.Forms.Button();
|
||||
this.btnImport = new System.Windows.Forms.Button();
|
||||
this.btnAdd = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.btnExport = new System.Windows.Forms.Button();
|
||||
this.btnSave = new System.Windows.Forms.Button();
|
||||
this.btnDelete = new System.Windows.Forms.Button();
|
||||
this.cbSupportedLocales = new System.Windows.Forms.ComboBox();
|
||||
this.topLogoControl = new WebsitePanel.LocalizationToolkit.TopLogoControl();
|
||||
this.statusBar.SuspendLayout();
|
||||
this.pnlMain.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.grdResources)).BeginInit();
|
||||
this.pnlTop.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// statusBar
|
||||
//
|
||||
this.statusBar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible;
|
||||
this.statusBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.statusBarLabel});
|
||||
this.statusBar.Location = new System.Drawing.Point(0, 432);
|
||||
this.statusBar.Name = "statusBar";
|
||||
this.statusBar.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
||||
this.statusBar.Size = new System.Drawing.Size(737, 22);
|
||||
this.statusBar.TabIndex = 1;
|
||||
//
|
||||
// statusBarLabel
|
||||
//
|
||||
this.statusBarLabel.Name = "statusBarLabel";
|
||||
this.statusBarLabel.Size = new System.Drawing.Size(39, 17);
|
||||
this.statusBarLabel.Text = "Ready";
|
||||
//
|
||||
// pnlMain
|
||||
//
|
||||
this.pnlMain.Controls.Add(this.grdResources);
|
||||
this.pnlMain.Controls.Add(this.pnlTop);
|
||||
this.pnlMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pnlMain.Location = new System.Drawing.Point(0, 63);
|
||||
this.pnlMain.Name = "pnlMain";
|
||||
this.pnlMain.Size = new System.Drawing.Size(737, 369);
|
||||
this.pnlMain.TabIndex = 4;
|
||||
//
|
||||
// grdResources
|
||||
//
|
||||
this.grdResources.AllowUserToAddRows = false;
|
||||
this.grdResources.AllowUserToDeleteRows = false;
|
||||
this.grdResources.BackgroundColor = System.Drawing.SystemColors.Control;
|
||||
this.grdResources.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.grdResources.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.grdResources.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.FileColumn,
|
||||
this.KeyColumn,
|
||||
this.DefaultValueColumn,
|
||||
this.ValueColumn});
|
||||
this.grdResources.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.grdResources.Location = new System.Drawing.Point(0, 79);
|
||||
this.grdResources.Name = "grdResources";
|
||||
this.grdResources.Size = new System.Drawing.Size(737, 290);
|
||||
this.grdResources.TabIndex = 1;
|
||||
this.grdResources.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.grdResources_CellFormatting);
|
||||
//
|
||||
// FileColumn
|
||||
//
|
||||
this.FileColumn.DataPropertyName = "File";
|
||||
this.FileColumn.HeaderText = "File";
|
||||
this.FileColumn.Name = "FileColumn";
|
||||
this.FileColumn.ReadOnly = true;
|
||||
//
|
||||
// KeyColumn
|
||||
//
|
||||
this.KeyColumn.DataPropertyName = "Key";
|
||||
this.KeyColumn.HeaderText = "Key";
|
||||
this.KeyColumn.Name = "KeyColumn";
|
||||
this.KeyColumn.ReadOnly = true;
|
||||
this.KeyColumn.Width = 180;
|
||||
//
|
||||
// DefaultValueColumn
|
||||
//
|
||||
this.DefaultValueColumn.DataPropertyName = "DefaultValue";
|
||||
this.DefaultValueColumn.HeaderText = "Default Value";
|
||||
this.DefaultValueColumn.Name = "DefaultValueColumn";
|
||||
this.DefaultValueColumn.ReadOnly = true;
|
||||
this.DefaultValueColumn.Width = 180;
|
||||
//
|
||||
// ValueColumn
|
||||
//
|
||||
this.ValueColumn.DataPropertyName = "Value";
|
||||
this.ValueColumn.HeaderText = "Value";
|
||||
this.ValueColumn.Name = "ValueColumn";
|
||||
this.ValueColumn.Width = 180;
|
||||
//
|
||||
// pnlTop
|
||||
//
|
||||
this.pnlTop.Controls.Add(this.btnFind);
|
||||
this.pnlTop.Controls.Add(this.btnImport);
|
||||
this.pnlTop.Controls.Add(this.btnAdd);
|
||||
this.pnlTop.Controls.Add(this.label1);
|
||||
this.pnlTop.Controls.Add(this.btnExport);
|
||||
this.pnlTop.Controls.Add(this.btnSave);
|
||||
this.pnlTop.Controls.Add(this.btnDelete);
|
||||
this.pnlTop.Controls.Add(this.cbSupportedLocales);
|
||||
this.pnlTop.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.pnlTop.Location = new System.Drawing.Point(0, 0);
|
||||
this.pnlTop.Name = "pnlTop";
|
||||
this.pnlTop.Size = new System.Drawing.Size(737, 79);
|
||||
this.pnlTop.TabIndex = 0;
|
||||
//
|
||||
// btnFind
|
||||
//
|
||||
this.btnFind.Image = ((System.Drawing.Image)(resources.GetObject("btnFind.Image")));
|
||||
this.btnFind.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.btnFind.Location = new System.Drawing.Point(626, 38);
|
||||
this.btnFind.Name = "btnFind";
|
||||
this.btnFind.Size = new System.Drawing.Size(96, 30);
|
||||
this.btnFind.TabIndex = 7;
|
||||
this.btnFind.Text = " Find...";
|
||||
this.btnFind.UseVisualStyleBackColor = true;
|
||||
this.btnFind.Click += new System.EventHandler(this.OnFindClick);
|
||||
//
|
||||
// btnImport
|
||||
//
|
||||
this.btnImport.Image = ((System.Drawing.Image)(resources.GetObject("btnImport.Image")));
|
||||
this.btnImport.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.btnImport.Location = new System.Drawing.Point(524, 38);
|
||||
this.btnImport.Name = "btnImport";
|
||||
this.btnImport.Size = new System.Drawing.Size(96, 30);
|
||||
this.btnImport.TabIndex = 6;
|
||||
this.btnImport.Text = " Import...";
|
||||
this.btnImport.UseVisualStyleBackColor = true;
|
||||
this.btnImport.Click += new System.EventHandler(this.OnImportClick);
|
||||
//
|
||||
// btnAdd
|
||||
//
|
||||
this.btnAdd.Image = ((System.Drawing.Image)(resources.GetObject("btnAdd.Image")));
|
||||
this.btnAdd.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.btnAdd.Location = new System.Drawing.Point(12, 38);
|
||||
this.btnAdd.Name = "btnAdd";
|
||||
this.btnAdd.Size = new System.Drawing.Size(96, 30);
|
||||
this.btnAdd.TabIndex = 2;
|
||||
this.btnAdd.Text = "Add...";
|
||||
this.btnAdd.UseVisualStyleBackColor = true;
|
||||
this.btnAdd.Click += new System.EventHandler(this.OnAddClick);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 14);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(99, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Supported Locales:";
|
||||
//
|
||||
// btnExport
|
||||
//
|
||||
this.btnExport.Image = ((System.Drawing.Image)(resources.GetObject("btnExport.Image")));
|
||||
this.btnExport.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.btnExport.Location = new System.Drawing.Point(342, 38);
|
||||
this.btnExport.Name = "btnExport";
|
||||
this.btnExport.Size = new System.Drawing.Size(176, 30);
|
||||
this.btnExport.TabIndex = 5;
|
||||
this.btnExport.Text = " Compile Language Pack";
|
||||
this.btnExport.UseVisualStyleBackColor = true;
|
||||
this.btnExport.Click += new System.EventHandler(this.OnExportClick);
|
||||
//
|
||||
// btnSave
|
||||
//
|
||||
this.btnSave.Image = ((System.Drawing.Image)(resources.GetObject("btnSave.Image")));
|
||||
this.btnSave.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.btnSave.Location = new System.Drawing.Point(114, 38);
|
||||
this.btnSave.Name = "btnSave";
|
||||
this.btnSave.Size = new System.Drawing.Size(96, 30);
|
||||
this.btnSave.TabIndex = 3;
|
||||
this.btnSave.Text = "Save";
|
||||
this.btnSave.UseVisualStyleBackColor = true;
|
||||
this.btnSave.Click += new System.EventHandler(this.OnSaveClick);
|
||||
//
|
||||
// btnDelete
|
||||
//
|
||||
this.btnDelete.Image = ((System.Drawing.Image)(resources.GetObject("btnDelete.Image")));
|
||||
this.btnDelete.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.btnDelete.Location = new System.Drawing.Point(216, 38);
|
||||
this.btnDelete.Name = "btnDelete";
|
||||
this.btnDelete.Size = new System.Drawing.Size(96, 30);
|
||||
this.btnDelete.TabIndex = 4;
|
||||
this.btnDelete.Text = "Delete";
|
||||
this.btnDelete.UseVisualStyleBackColor = true;
|
||||
this.btnDelete.Click += new System.EventHandler(this.OnDeleteClick);
|
||||
//
|
||||
// cbSupportedLocales
|
||||
//
|
||||
this.cbSupportedLocales.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cbSupportedLocales.FormattingEnabled = true;
|
||||
this.cbSupportedLocales.Location = new System.Drawing.Point(129, 11);
|
||||
this.cbSupportedLocales.Name = "cbSupportedLocales";
|
||||
this.cbSupportedLocales.Size = new System.Drawing.Size(318, 21);
|
||||
this.cbSupportedLocales.TabIndex = 1;
|
||||
this.cbSupportedLocales.SelectedIndexChanged += new System.EventHandler(this.OnLocaleChanged);
|
||||
//
|
||||
// topLogoControl
|
||||
//
|
||||
this.topLogoControl.BackColor = System.Drawing.Color.White;
|
||||
this.topLogoControl.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.topLogoControl.Location = new System.Drawing.Point(0, 0);
|
||||
this.topLogoControl.Name = "topLogoControl";
|
||||
this.topLogoControl.Size = new System.Drawing.Size(737, 63);
|
||||
this.topLogoControl.TabIndex = 0;
|
||||
//
|
||||
// ApplicationForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(737, 454);
|
||||
this.Controls.Add(this.pnlMain);
|
||||
this.Controls.Add(this.statusBar);
|
||||
this.Controls.Add(this.topLogoControl);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.KeyPreview = true;
|
||||
this.MinimumSize = new System.Drawing.Size(750, 490);
|
||||
this.Name = "ApplicationForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Localization Toolkit";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnFormClosing);
|
||||
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnKeyDown);
|
||||
this.statusBar.ResumeLayout(false);
|
||||
this.statusBar.PerformLayout();
|
||||
this.pnlMain.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.grdResources)).EndInit();
|
||||
this.pnlTop.ResumeLayout(false);
|
||||
this.pnlTop.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.StatusStrip statusBar;
|
||||
private TopLogoControl topLogoControl;
|
||||
private System.Windows.Forms.ToolStripStatusLabel statusBarLabel;
|
||||
private System.ComponentModel.BackgroundWorker backgroundWorker;
|
||||
private System.Windows.Forms.Panel pnlMain;
|
||||
private System.Windows.Forms.DataGridView grdResources;
|
||||
private System.Windows.Forms.Panel pnlTop;
|
||||
private System.Windows.Forms.Button btnAdd;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Button btnExport;
|
||||
private System.Windows.Forms.Button btnSave;
|
||||
private System.Windows.Forms.Button btnDelete;
|
||||
private System.Windows.Forms.ComboBox cbSupportedLocales;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn FileColumn;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn KeyColumn;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn DefaultValueColumn;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ValueColumn;
|
||||
private System.Windows.Forms.Button btnImport;
|
||||
private System.Windows.Forms.Button btnFind;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,892 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Resources;
|
||||
using System.Configuration;
|
||||
using System.Threading;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Microsoft.Win32;
|
||||
using Ionic.Zip;
|
||||
|
||||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
/// <summary>
|
||||
/// Main application form
|
||||
/// </summary>
|
||||
public partial class ApplicationForm : Form
|
||||
{
|
||||
private Resources dsResources;
|
||||
private ProgressManager progressManager;
|
||||
private string importedLocale;
|
||||
private string importedFileName;
|
||||
private Thread thread;
|
||||
FindForm findForm;
|
||||
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the ApplicationForm class.
|
||||
/// </summary>
|
||||
public ApplicationForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.grdResources.AutoGenerateColumns = false;
|
||||
if (DesignMode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
this.progressManager = new ProgressManager(this, this.statusBarLabel);
|
||||
|
||||
try
|
||||
{
|
||||
LoadLocales();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private string DataDirectory
|
||||
{
|
||||
get
|
||||
{
|
||||
return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Data");
|
||||
}
|
||||
}
|
||||
|
||||
private string TmpDirectory
|
||||
{
|
||||
get
|
||||
{
|
||||
return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Tmp");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private string LanguagePacksDirectory
|
||||
{
|
||||
get
|
||||
{
|
||||
return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "LanguagePacks");
|
||||
}
|
||||
}
|
||||
|
||||
private string SelectedLocale
|
||||
{
|
||||
get
|
||||
{
|
||||
DataRowView row = cbSupportedLocales.SelectedValue as DataRowView;
|
||||
if (row != null)
|
||||
{
|
||||
return (string)row["Name"];
|
||||
}
|
||||
else
|
||||
{
|
||||
return cbSupportedLocales.SelectedValue as string;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void LoadLocales()
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
VoidCallback callBack = new VoidCallback(LoadLocales);
|
||||
this.Invoke(callBack, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
DataSet dsLocales = GetSupportedLocales();
|
||||
cbSupportedLocales.DataSource = dsLocales.Tables[0];
|
||||
cbSupportedLocales.DisplayMember = "EnglishName";
|
||||
cbSupportedLocales.ValueMember = "Name";
|
||||
|
||||
bool enabled = (cbSupportedLocales.SelectedValue != null);
|
||||
btnDelete.Enabled = enabled;
|
||||
btnSave.Enabled = enabled;
|
||||
btnExport.Enabled = enabled;
|
||||
}
|
||||
}
|
||||
|
||||
private DataSet GetSupportedLocales()
|
||||
{
|
||||
string baseDir = this.DataDirectory;
|
||||
string[] dirs = Directory.GetDirectories(baseDir);
|
||||
|
||||
DataSet dsLocales = new DataSet();
|
||||
DataTable dt = new DataTable("Locales");
|
||||
dsLocales.Tables.Add(dt);
|
||||
DataColumn col1 = new DataColumn("Name", typeof(string));
|
||||
DataColumn col2 = new DataColumn("EnglishName", typeof(string));
|
||||
dt.Columns.AddRange(new DataColumn[] { col1, col2 });
|
||||
foreach (string dir in dirs)
|
||||
{
|
||||
try
|
||||
{
|
||||
string cultureName = Path.GetFileName(dir);
|
||||
CultureInfo ci = new CultureInfo(Path.GetFileName(dir));
|
||||
if (cultureName == "en-US")
|
||||
continue;
|
||||
dt.Rows.Add(new object[] { ci.Name, ci.EnglishName });
|
||||
}
|
||||
catch (ArgumentException) { }
|
||||
}
|
||||
return dsLocales;
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void OnLocaleChanged(object sender, EventArgs e)
|
||||
{
|
||||
SaveChanges(true);
|
||||
BindResourcesGrid();
|
||||
}
|
||||
|
||||
private void BindResourcesGrid()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(cbSupportedLocales.Text))
|
||||
{
|
||||
grdResources.DataMember = null;
|
||||
grdResources.DataSource = null;
|
||||
return;
|
||||
}
|
||||
string localeName = null;
|
||||
DataRowView row = cbSupportedLocales.SelectedValue as DataRowView;
|
||||
if (row != null)
|
||||
{
|
||||
localeName = (string)row["Name"];
|
||||
}
|
||||
else
|
||||
{
|
||||
localeName = cbSupportedLocales.SelectedValue as string;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(localeName))
|
||||
{
|
||||
dsResources = new Resources();
|
||||
string fileName = Path.Combine(this.DataDirectory, localeName + "\\resources.xml");
|
||||
dsResources.ReadXml(fileName);
|
||||
dsResources.AcceptChanges();
|
||||
grdResources.DataSource = dsResources;
|
||||
grdResources.DataMember = this.dsResources.Tables[0].TableName;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private void grdResources_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
|
||||
{
|
||||
/*if (e.ColumnIndex == this.grdResources.Columns["KeyColumn"].Index)
|
||||
{
|
||||
DataGridViewCell keyCell = this.grdResources.Rows[e.RowIndex].Cells[e.ColumnIndex];
|
||||
DataGridViewCell fileCell = this.grdResources.Rows[e.RowIndex].Cells[this.grdResources.Columns["FileColumn"].Index];
|
||||
if ( fileCell.Value != null )
|
||||
keyCell.ToolTipText = fileCell.Value.ToString();
|
||||
}
|
||||
else*/
|
||||
if (e.ColumnIndex == this.grdResources.Columns["ValueColumn"].Index)
|
||||
{
|
||||
if (e.Value == DBNull.Value)
|
||||
{
|
||||
e.CellStyle.BackColor = Color.Khaki;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnAddClick(object sender, EventArgs e)
|
||||
{
|
||||
AddLocale();
|
||||
}
|
||||
|
||||
private void AddLocale()
|
||||
{
|
||||
SaveChanges(true);
|
||||
try
|
||||
{
|
||||
SelectLocaleForm form = new SelectLocaleForm();
|
||||
if (form.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
string locale = form.SelectedLocale;
|
||||
string path = Path.Combine(this.DataDirectory, locale);
|
||||
if (!Directory.Exists(path))
|
||||
{
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
string sourceFile = Path.Combine(this.DataDirectory, @"en-US\Resources.xml");
|
||||
string destFile = Path.Combine(path, "Resources.xml");
|
||||
File.Copy(sourceFile, destFile, true);
|
||||
LoadLocales();
|
||||
SetCurrentLocale(locale);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void SaveChanges(bool showWarning)
|
||||
{
|
||||
try
|
||||
{
|
||||
Resources ds = grdResources.DataSource as Resources;
|
||||
if (ds != null && ds.HasChanges())
|
||||
{
|
||||
|
||||
DialogResult res = DialogResult.Yes;
|
||||
if (showWarning)
|
||||
{
|
||||
res = MessageBox.Show("Save changes?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
||||
}
|
||||
if (res == DialogResult.Yes)
|
||||
{
|
||||
ds.AcceptChanges();
|
||||
string fileName = GetLocaleFile();
|
||||
ds.WriteXml(fileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private string GetLocaleFile()
|
||||
{
|
||||
string ret = null;
|
||||
if (string.IsNullOrEmpty(cbSupportedLocales.Text))
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
string localeName = null;
|
||||
DataRowView row = cbSupportedLocales.SelectedValue as DataRowView;
|
||||
if (row != null)
|
||||
{
|
||||
localeName = (string)row["Name"];
|
||||
}
|
||||
else
|
||||
{
|
||||
localeName = cbSupportedLocales.SelectedValue as string;
|
||||
}
|
||||
if (!string.IsNullOrEmpty(localeName))
|
||||
{
|
||||
ret = Path.Combine(this.DataDirectory, localeName + @"\Resources.xml");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private void OnDeleteClick(object sender, EventArgs e)
|
||||
{
|
||||
DeleteLocale();
|
||||
}
|
||||
|
||||
private void DeleteLocale()
|
||||
{
|
||||
if (MessageBox.Show(this,
|
||||
string.Format("{0} locale will be deleted.", cbSupportedLocales.Text),
|
||||
this.Text, MessageBoxButtons.OKCancel,
|
||||
MessageBoxIcon.Warning) == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
string locale = (string)cbSupportedLocales.SelectedValue;
|
||||
string path = Path.Combine(this.DataDirectory, locale);
|
||||
Directory.Delete(path, true);
|
||||
LoadLocales();
|
||||
BindResourcesGrid();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ShowError(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSaveClick(object sender, EventArgs e)
|
||||
{
|
||||
SaveChanges(false);
|
||||
}
|
||||
|
||||
private void OnExportClick(object sender, EventArgs e)
|
||||
{
|
||||
Compile();
|
||||
}
|
||||
|
||||
private void Compile()
|
||||
{
|
||||
SaveChanges(true);
|
||||
|
||||
try
|
||||
{
|
||||
string locale = this.SelectedLocale;
|
||||
if (string.IsNullOrEmpty(locale))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
StartAsyncProgress("Compiling...", true);
|
||||
ThreadStart threadDelegate = new ThreadStart(CompileLanguagePack);
|
||||
thread = new Thread(threadDelegate);
|
||||
thread.Start();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
FinishProgress();
|
||||
ShowError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private void CompileLanguagePack()
|
||||
{
|
||||
try
|
||||
{
|
||||
string locale = this.SelectedLocale;
|
||||
Resources ds = grdResources.DataSource as Resources;
|
||||
|
||||
DeleteTmpDir();
|
||||
//create folder structure
|
||||
Hashtable files = new Hashtable();
|
||||
foreach (Resources.ResourceRow row in ds.Resource.Rows)
|
||||
{
|
||||
if (!files.ContainsKey(row.File))
|
||||
{
|
||||
files.Add(
|
||||
row.File,
|
||||
Path.Combine(this.TmpDirectory, row.File)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Hashtable folders = new Hashtable();
|
||||
string fullFolderName;
|
||||
foreach (string file in files.Keys)
|
||||
{
|
||||
fullFolderName = Path.GetDirectoryName((string)files[file]);
|
||||
if (!folders.ContainsKey(fullFolderName))
|
||||
{
|
||||
folders.Add(fullFolderName, fullFolderName);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (string folder in folders.Keys)
|
||||
{
|
||||
if (!Directory.Exists(folder))
|
||||
{
|
||||
Directory.CreateDirectory(folder);
|
||||
}
|
||||
}
|
||||
|
||||
//write resources to resx files
|
||||
string fullFileName;
|
||||
ResXResourceWriter writer = null;
|
||||
foreach (string file in files.Keys)
|
||||
{
|
||||
|
||||
string filter = string.Format("File = '{0}'", file);
|
||||
|
||||
DataRow[] rows = ds.Resource.Select(filter, "File");
|
||||
if (rows.Length > 0)
|
||||
{
|
||||
fullFileName = (string)files[file];
|
||||
fullFileName = string.Format("{0}{1}{2}.{3}{4}",
|
||||
Path.GetDirectoryName(fullFileName),
|
||||
Path.DirectorySeparatorChar,
|
||||
Path.GetFileNameWithoutExtension(fullFileName),
|
||||
locale,
|
||||
Path.GetExtension(fullFileName)
|
||||
);
|
||||
writer = new ResXResourceWriter(fullFileName);
|
||||
|
||||
foreach (DataRow row in rows)
|
||||
{
|
||||
if (row["Value"] != DBNull.Value)
|
||||
{
|
||||
writer.AddResource((string)row["Key"], (string)row["Value"]);
|
||||
}
|
||||
}
|
||||
writer.Close();
|
||||
}
|
||||
}
|
||||
if (!Directory.Exists(LanguagePacksDirectory))
|
||||
{
|
||||
Directory.CreateDirectory(LanguagePacksDirectory);
|
||||
}
|
||||
//zip lang pack
|
||||
string zipFile = string.Format("WebsitePanel Language Pack {0} {1}.zip", locale, GetApplicationVersion());
|
||||
ZipUtils.Zip("Tmp", "LanguagePacks\\" + zipFile);
|
||||
DeleteTmpDir();
|
||||
FinishProgress();
|
||||
string message = string.Format("{0} language pack compiled successfully to\n\"{1}\"", cbSupportedLocales.Text, zipFile);
|
||||
MessageBox.Show(this, message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (IsThreadAbortException(ex))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearTmpDir()
|
||||
{
|
||||
DeleteTmpDir();
|
||||
try
|
||||
{
|
||||
if (!Directory.Exists(this.TmpDirectory))
|
||||
Directory.CreateDirectory(this.TmpDirectory);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
private void DeleteTmpDir()
|
||||
{
|
||||
try
|
||||
{
|
||||
if ( Directory.Exists(this.TmpDirectory))
|
||||
Directory.Delete(this.TmpDirectory, true);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
private string GetApplicationVersion()
|
||||
{
|
||||
Version version = this.GetType().Assembly.GetName().Version;
|
||||
string strVersion;
|
||||
if (version.Build == 0)
|
||||
strVersion = version.ToString(2);
|
||||
else
|
||||
strVersion = version.ToString(3);
|
||||
return strVersion;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows default error message
|
||||
/// </summary>
|
||||
internal void ShowError(Exception ex)
|
||||
{
|
||||
string message = string.Format("An unexpected error has occurred. We apologize for this inconvenience.\n" +
|
||||
"Please contact Technical Support at support@websitepanel.net\n\n{0}", ex);
|
||||
MessageBox.Show(this, message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Current version
|
||||
/// </summary>
|
||||
public string Version
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetType().Assembly.GetName().Version.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Disables application content
|
||||
/// </summary>
|
||||
internal void DisableContent()
|
||||
{
|
||||
pnlTop.Enabled = false;
|
||||
grdResources.Enabled = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enables application content
|
||||
/// </summary>
|
||||
internal void EnableContent()
|
||||
{
|
||||
pnlTop.Enabled = true;
|
||||
grdResources.Enabled = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows info message
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal void ShowInfo(string message)
|
||||
{
|
||||
MessageBox.Show(this, message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows info message
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
internal void ShowWarning(string message)
|
||||
{
|
||||
MessageBox.Show(this, message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#region Progress indication
|
||||
|
||||
/// <summary>
|
||||
/// Starts progress indication
|
||||
/// </summary>
|
||||
/// <param name="title">Title</param>
|
||||
internal void StartProgress(string title)
|
||||
{
|
||||
StartProgress(title, false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Starts progress indication
|
||||
/// </summary>
|
||||
/// <param name="title">Title</param>
|
||||
/// <param name="disableContent">Disable content</param>
|
||||
internal void StartProgress(string title, bool disableContent)
|
||||
{
|
||||
if (disableContent)
|
||||
{
|
||||
DisableContent();
|
||||
}
|
||||
progressManager.StartProgress(title);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Starts async progress indication
|
||||
/// </summary>
|
||||
/// <param name="title">Title</param>
|
||||
/// <param name="disableContent">Disable content</param>
|
||||
internal void StartAsyncProgress(string title, bool disableContent)
|
||||
{
|
||||
if (disableContent)
|
||||
{
|
||||
DisableContent();
|
||||
}
|
||||
topLogoControl.ShowProgress();
|
||||
progressManager.StartProgress(title);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Finishes progress indication
|
||||
/// </summary>
|
||||
internal void FinishProgress()
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
VoidCallback callBack = new VoidCallback(FinishProgress);
|
||||
this.Invoke(callBack, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
topLogoControl.HideProgress();
|
||||
progressManager.FinishProgress();
|
||||
EnableContent();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void OnImportClick(object sender, EventArgs e)
|
||||
{
|
||||
Import();
|
||||
}
|
||||
|
||||
private void Import()
|
||||
{
|
||||
SaveChanges(true);
|
||||
|
||||
try
|
||||
{
|
||||
string message;
|
||||
OpenFileDialog dialog = new OpenFileDialog();
|
||||
dialog.Filter = "Zip files (*.zip)|*.zip" ;
|
||||
dialog.RestoreDirectory = true;
|
||||
dialog.InitialDirectory = this.LanguagePacksDirectory;
|
||||
if (dialog.ShowDialog() != DialogResult.OK)
|
||||
return;
|
||||
|
||||
importedFileName = dialog.FileName;
|
||||
|
||||
string file = Path.GetFileNameWithoutExtension(importedFileName);
|
||||
string filePrefix1 = "WebsitePanel Language Pack ";
|
||||
string filePrefix2 = "WebsitePanel_Language_Pack_";
|
||||
if (file.StartsWith(filePrefix1))
|
||||
{
|
||||
file = file.Substring(filePrefix1.Length);
|
||||
importedLocale = file.Substring(0, file.IndexOf(" "));
|
||||
}
|
||||
else if (file.StartsWith(filePrefix2))
|
||||
{
|
||||
file = file.Substring(filePrefix2.Length);
|
||||
importedLocale = file.Substring(0, file.IndexOf("_"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowInfo("Please select WebsitePanel Language Pack file.");
|
||||
return;
|
||||
}
|
||||
|
||||
bool localeExists = false;
|
||||
string localeName = string.Empty;
|
||||
DataSet dsLocales = GetSupportedLocales();
|
||||
foreach (DataRow row in dsLocales.Tables[0].Rows)
|
||||
{
|
||||
if (row["Name"].ToString() == importedLocale)
|
||||
{
|
||||
localeExists = true;
|
||||
localeName = row["EnglishName"].ToString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( localeExists )
|
||||
{
|
||||
message = string.Format("{0} locale already exists. Overwrite?", localeName);
|
||||
if (MessageBox.Show(this, message, this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
StartAsyncProgress("Importing...", true);
|
||||
ThreadStart threadDelegate = new ThreadStart(ImportLanguagePack);
|
||||
thread = new Thread(threadDelegate);
|
||||
thread.Start();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
FinishProgress();
|
||||
ShowError(ex);
|
||||
}
|
||||
}
|
||||
|
||||
private void ImportLanguagePack()
|
||||
{
|
||||
try
|
||||
{
|
||||
string path = Path.Combine(this.DataDirectory, importedLocale);
|
||||
string sourceFile = Path.Combine(this.DataDirectory, @"en-US\Resources.xml");
|
||||
string destFile = Path.Combine(path, "Resources.xml");
|
||||
if (!Directory.Exists(path))
|
||||
{
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
|
||||
if (!File.Exists(destFile))
|
||||
{
|
||||
File.Copy(sourceFile, destFile);
|
||||
}
|
||||
|
||||
ClearTmpDir();
|
||||
SetStatusBarText("Extracting language pack...");
|
||||
ZipUtils.Unzip("Tmp", importedFileName);
|
||||
|
||||
Resources ds = new Resources();
|
||||
ds.ReadXml(destFile);
|
||||
int count = ImportFiles(importedLocale, ds, this.TmpDirectory, this.TmpDirectory);
|
||||
ds.AcceptChanges();
|
||||
ds.WriteXml(destFile);
|
||||
DeleteTmpDir();
|
||||
LoadLocales();
|
||||
SetCurrentLocale(importedLocale);
|
||||
FinishProgress();
|
||||
|
||||
string message = string.Format("{0} record(s) imported successfully.", count);
|
||||
MessageBox.Show(this, message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (IsThreadAbortException(ex))
|
||||
return;
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private int ImportFiles(string locale, Resources ds, string sourceDir, string baseDir)
|
||||
{
|
||||
int count = 0;
|
||||
string[] dirs = Directory.GetDirectories(sourceDir);
|
||||
foreach (string dir in dirs)
|
||||
{
|
||||
count += ImportFiles(locale, ds, dir, baseDir);
|
||||
//break;
|
||||
}
|
||||
string[] files = Directory.GetFiles(sourceDir, "*.resx", SearchOption.TopDirectoryOnly);
|
||||
foreach (string file in files)
|
||||
{
|
||||
count += ImportFile(locale, ds, file, baseDir);
|
||||
//break;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
private int ImportFile(string locale, Resources ds, string file, string baseDir)
|
||||
{
|
||||
int count = 0;
|
||||
string path = file.Substring(baseDir.Length);
|
||||
path = path.Replace(locale+".resx", "resx");
|
||||
if (path.StartsWith(Path.DirectorySeparatorChar.ToString()))
|
||||
{
|
||||
path = path.TrimStart(Path.DirectorySeparatorChar);
|
||||
}
|
||||
SetStatusBarText(string.Format("Importing {0}...", path));
|
||||
// Create a ResXResourceReader for the file.
|
||||
ResXResourceReader rsxr = new ResXResourceReader(file);
|
||||
|
||||
// Create an IDictionaryEnumerator to iterate through the resources.
|
||||
IDictionaryEnumerator id = rsxr.GetEnumerator();
|
||||
|
||||
// Iterate through the resources and display the contents to the console.
|
||||
foreach (DictionaryEntry d in rsxr)
|
||||
{
|
||||
string key = d.Key.ToString();
|
||||
if (d.Value != null)
|
||||
{
|
||||
string value = d.Value.ToString();
|
||||
DataRow[] rows = FindRows(path, key, ds);
|
||||
foreach (Resources.ResourceRow row in rows)
|
||||
{
|
||||
row.Value = value;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
//Close the reader.
|
||||
rsxr.Close();
|
||||
return count;
|
||||
}
|
||||
|
||||
private DataRow[] FindRows(string file, string key, Resources ds)
|
||||
{
|
||||
string filter = string.Format("File = '{0}' AND Key = '{1}'", file, key);
|
||||
return ds.Resource.Select(filter);
|
||||
}
|
||||
|
||||
private void SetStatusBarText(string text)
|
||||
{
|
||||
// InvokeRequired required compares the thread ID of the
|
||||
// calling thread to the thread ID of the creating thread.
|
||||
// If these threads are different, it returns true.
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
StringCallback callBack = new StringCallback(SetStatusBarText);
|
||||
this.Invoke(callBack, new object[] { text });
|
||||
}
|
||||
else
|
||||
{
|
||||
this.statusBarLabel.Text = text;
|
||||
this.Update();
|
||||
}
|
||||
}
|
||||
|
||||
private void SetCurrentLocale(string locale)
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
StringCallback callBack = new StringCallback(SetCurrentLocale);
|
||||
this.Invoke(callBack, new object[] { locale });
|
||||
}
|
||||
else
|
||||
{
|
||||
cbSupportedLocales.SelectedValue = locale;
|
||||
}
|
||||
}
|
||||
|
||||
delegate void StringCallback(string str);
|
||||
delegate void VoidCallback();
|
||||
|
||||
private void OnFormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
SaveChanges(true);
|
||||
AbortThread();
|
||||
}
|
||||
|
||||
private void AbortThread()
|
||||
{
|
||||
if (this.thread != null)
|
||||
{
|
||||
if (this.thread.IsAlive)
|
||||
{
|
||||
this.thread.Abort();
|
||||
}
|
||||
//this.thread.Join();
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsThreadAbortException(Exception ex)
|
||||
{
|
||||
Exception innerException = ex;
|
||||
while (innerException != null)
|
||||
{
|
||||
if (innerException is System.Threading.ThreadAbortException)
|
||||
return true;
|
||||
innerException = innerException.InnerException;
|
||||
}
|
||||
|
||||
string str = ex.ToString();
|
||||
return str.Contains("System.Threading.ThreadAbortException");
|
||||
}
|
||||
|
||||
private void OnKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Control && e.KeyCode == Keys.F)
|
||||
{
|
||||
e.Handled = true;
|
||||
ShowFindForm();
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowFindForm()
|
||||
{
|
||||
if (findForm == null || findForm.IsDisposed)
|
||||
{
|
||||
findForm = new FindForm(this.grdResources);
|
||||
findForm.Owner = this;
|
||||
}
|
||||
if ( !findForm.Visible )
|
||||
findForm.Show();
|
||||
}
|
||||
|
||||
private void OnFindClick(object sender, EventArgs e)
|
||||
{
|
||||
ShowFindForm();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
internal class ProgressManager
|
||||
{
|
||||
private Form form;
|
||||
private ToolStripStatusLabel label;
|
||||
|
||||
public ProgressManager(Form form, ToolStripStatusLabel label)
|
||||
{
|
||||
this.form = form;
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public void StartProgress(string title)
|
||||
{
|
||||
form.Cursor = Cursors.WaitCursor;
|
||||
label.Text = title;
|
||||
label.Owner.Refresh();
|
||||
form.Update();
|
||||
}
|
||||
|
||||
public void FinishProgress()
|
||||
{
|
||||
form.Cursor = Cursors.Default;
|
||||
label.Text = "Ready";
|
||||
label.Owner.Refresh();
|
||||
form.Update();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
using System.Text;
|
||||
|
||||
using Ionic.Zip;
|
||||
|
||||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
internal class ZipUtils
|
||||
{
|
||||
public static void Zip(string path, string zipFile)
|
||||
{
|
||||
using (ZipFile zip = new ZipFile())
|
||||
{
|
||||
//use unicode if necessary
|
||||
zip.UseUnicodeAsNecessary = true;
|
||||
//skip locked files
|
||||
zip.ZipErrorAction = ZipErrorAction.Skip;
|
||||
|
||||
if (Directory.Exists(path))
|
||||
{
|
||||
//add directory content
|
||||
zip.AddDirectory(path);
|
||||
}
|
||||
else if (File.Exists(path))
|
||||
{
|
||||
//add file to the root folder
|
||||
zip.AddFile(path, "");
|
||||
}
|
||||
|
||||
zip.Save(zipFile);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Unzip(string destFolder, string zipFile)
|
||||
{
|
||||
using (ZipFile zip = ZipFile.Read(zipFile))
|
||||
{
|
||||
foreach (ZipEntry e in zip)
|
||||
{
|
||||
e.Extract(destFolder, ExtractExistingFileAction.OverwriteSilently);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
36
WebsitePanel/Sources/Tools/WebsitePanel.LocalizationToolkit/Controls/LineBox.Designer.cs
generated
Normal file
|
@ -0,0 +1,36 @@
|
|||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
partial class LineBox
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
/// <summary>
|
||||
/// 3D line box.
|
||||
/// </summary>
|
||||
internal partial class LineBox : Control
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the LineBox class.
|
||||
/// </summary>
|
||||
public LineBox() : base()
|
||||
{
|
||||
SetStyle(ControlStyles.UserPaint, true);
|
||||
SetStyle(ControlStyles.FixedHeight, true);
|
||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
SetStyle(ControlStyles.ResizeRedraw, true);
|
||||
SetStyle(ControlStyles.StandardClick, false);
|
||||
SetStyle(ControlStyles.Selectable, false);
|
||||
this.TabStop = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raises the Paint event.
|
||||
/// </summary>
|
||||
/// <param name="e">A PaintEventArgs that contains the event data.</param>
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
Graphics graphics = e.Graphics;
|
||||
Rectangle rectangle = this.ClientRectangle;
|
||||
Pen lightPen = new Pen(ControlPaint.Light(this.BackColor, 1));
|
||||
Pen darkPen = new Pen(ControlPaint.Dark(this.BackColor, 0));
|
||||
graphics.DrawLine(darkPen, rectangle.X, rectangle.Y, rectangle.X+rectangle.Width, rectangle.Y);
|
||||
graphics.DrawLine(lightPen, rectangle.X, rectangle.Y+1, rectangle.X+rectangle.Width, rectangle.Y+1);
|
||||
base.OnPaint(e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the default size of the control.
|
||||
/// </summary>
|
||||
protected override Size DefaultSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Size(10, 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Performs the work of setting the specified bounds of this control.
|
||||
/// </summary>
|
||||
/// <param name="x">The new Left property value of the control.</param>
|
||||
/// <param name="y">The new Right property value of the control.</param>
|
||||
/// <param name="width">The new Width property value of the control.</param>
|
||||
/// <param name="height">The new Height property value of the control.</param>
|
||||
/// <param name="specified">A bitwise combination of the BoundsSpecified values.</param>
|
||||
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
|
||||
{
|
||||
base.SetBoundsCore(x, y, width, 2, specified);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,248 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
|
||||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
/// <summary>
|
||||
/// Animated Icon.
|
||||
/// </summary>
|
||||
[ToolboxItem(true)]
|
||||
public class ProgressIcon : System.Windows.Forms.UserControl
|
||||
{
|
||||
private Thread thread = null;
|
||||
private int currentFrame = 0;
|
||||
private int delayInterval = 50;
|
||||
private int pause = 0;
|
||||
private int loopCount = 0;
|
||||
private int currentLoop = 0;
|
||||
private int firstFrame = 0;
|
||||
private int lastFrame = 13;
|
||||
private ImageList images;
|
||||
private IContainer components;
|
||||
|
||||
/// <summary>Initializes a new instance of the <b>AnimatedIcon</b> class.
|
||||
/// </summary>
|
||||
public ProgressIcon()
|
||||
{
|
||||
CheckForIllegalCrossThreadCalls = false;
|
||||
InitializeComponent();
|
||||
|
||||
this.SetStyle(ControlStyles.UserPaint, true);
|
||||
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
this.SetStyle(ControlStyles.DoubleBuffer, true);
|
||||
this.SetStyle(ControlStyles.ResizeRedraw, true);
|
||||
}
|
||||
|
||||
#region Dispose
|
||||
/// <summary>Clean up any resources being used.</summary>
|
||||
/// <param name="disposing"><see langword="true"/> to release both managed
|
||||
/// and unmanaged resources; <see langword="false"/> to release
|
||||
/// only unmanaged resources.</param>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if( components != null )
|
||||
components.Dispose();
|
||||
|
||||
if( thread != null )
|
||||
thread.Abort();
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Component Designer generated code
|
||||
/// <summary>Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProgressIcon));
|
||||
this.images = new System.Windows.Forms.ImageList(this.components);
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// images
|
||||
//
|
||||
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
|
||||
this.images.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.images.Images.SetKeyName(0, "ProgressImage00.bmp");
|
||||
this.images.Images.SetKeyName(1, "ProgressImage01.bmp");
|
||||
this.images.Images.SetKeyName(2, "ProgressImage02.bmp");
|
||||
this.images.Images.SetKeyName(3, "ProgressImage03.bmp");
|
||||
this.images.Images.SetKeyName(4, "ProgressImage04.bmp");
|
||||
this.images.Images.SetKeyName(5, "ProgressImage05.bmp");
|
||||
this.images.Images.SetKeyName(6, "ProgressImage06.bmp");
|
||||
this.images.Images.SetKeyName(7, "ProgressImage07.bmp");
|
||||
this.images.Images.SetKeyName(8, "ProgressImage08.bmp");
|
||||
this.images.Images.SetKeyName(9, "ProgressImage09.bmp");
|
||||
this.images.Images.SetKeyName(10, "ProgressImage10.bmp");
|
||||
this.images.Images.SetKeyName(11, "ProgressImage11.bmp");
|
||||
this.images.Images.SetKeyName(12, "ProgressImage12.bmp");
|
||||
//
|
||||
// ProgressIcon
|
||||
//
|
||||
this.Name = "ProgressIcon";
|
||||
this.Size = new System.Drawing.Size(30, 30);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>Starts animation from the beginning.
|
||||
/// </summary>
|
||||
public void StartAnimation()
|
||||
{
|
||||
StopAnimation();
|
||||
CheckRange(); // Check the first and the last frames
|
||||
|
||||
thread = new Thread( new ThreadStart( threadFunc ) );
|
||||
thread.IsBackground = true;
|
||||
thread.Start();
|
||||
}
|
||||
|
||||
/// <summary>Stops animation not changing current frame number.
|
||||
/// </summary>
|
||||
public void StopAnimation()
|
||||
{
|
||||
if( thread != null )
|
||||
{
|
||||
thread.Abort();
|
||||
thread = null;
|
||||
}
|
||||
currentLoop = 0;
|
||||
}
|
||||
|
||||
/// <summary>Displays the specified frame.</summary>
|
||||
/// <param name="frame">An index of the image stored in the <see cref="ImageList"/>.</param>
|
||||
public void ShowFrame2(int frame)
|
||||
{
|
||||
StopAnimation();
|
||||
|
||||
if( frame >= 0 && frame < images.Images.Count )
|
||||
currentFrame = frame;
|
||||
else
|
||||
currentFrame = 0;
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
/// <summary>Occurs when the control is redrawn.</summary>
|
||||
/// <param name="e">A <see cref="PaintEventArgs"/> that contains
|
||||
/// the event data.</param>
|
||||
/// <remarks>The <b>OnPaint</b> method draws current image from
|
||||
/// the <see cref="ImageList"/> if exists.</remarks>
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
// Draw a crossed rectangle if there is no frame to display
|
||||
|
||||
if( images == null ||
|
||||
currentFrame < 0 ||
|
||||
currentFrame >= images.Images.Count )
|
||||
{
|
||||
if( this.Size.Width == 0 || this.Size.Height == 0 )
|
||||
return;
|
||||
|
||||
Pen pen = new Pen( SystemColors.ControlText );
|
||||
e.Graphics.DrawRectangle( pen, 0, 0, this.Size.Width-1, this.Size.Height-1 );
|
||||
e.Graphics.DrawLine( pen, 0, 0, this.Size.Width, this.Size.Height );
|
||||
e.Graphics.DrawLine( pen, 0, this.Size.Height-1, this.Size.Width-1, 0 );
|
||||
pen.Dispose();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Draw the current frame
|
||||
|
||||
e.Graphics.DrawImage( images.Images[currentFrame], 0, 0, this.Size.Width, this.Size.Height );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>The method to be invoked when the thread begins executing.
|
||||
/// </summary>
|
||||
private void threadFunc()
|
||||
{
|
||||
bool wasPause = false;
|
||||
currentFrame = firstFrame;
|
||||
|
||||
while( thread != null && thread.IsAlive )
|
||||
{
|
||||
Refresh(); // Redraw the current frame
|
||||
wasPause = false;
|
||||
|
||||
if( images != null )
|
||||
{
|
||||
currentFrame++;
|
||||
if( currentFrame > lastFrame ||
|
||||
currentFrame >= images.Images.Count )
|
||||
{
|
||||
if( pause > 0 ) // Sleep after every loop
|
||||
{
|
||||
Thread.Sleep( pause );
|
||||
wasPause = true;
|
||||
}
|
||||
|
||||
currentFrame = firstFrame;
|
||||
if( loopCount != 0 ) // 0 is infinitive loop
|
||||
{
|
||||
currentLoop++;
|
||||
}
|
||||
}
|
||||
|
||||
if( loopCount != 0 && currentLoop >= loopCount )
|
||||
{
|
||||
StopAnimation(); // The loop is completed
|
||||
}
|
||||
}
|
||||
if( !wasPause ) // That prevents summation (pause + delayInterval)
|
||||
Thread.Sleep( delayInterval );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Check if the last frame is no less than the first one.
|
||||
/// Otherwise, swap them.</summary>
|
||||
private void CheckRange()
|
||||
{
|
||||
if( lastFrame < firstFrame )
|
||||
{
|
||||
int tmp = firstFrame;
|
||||
firstFrame = lastFrame;
|
||||
lastFrame = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,855 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="images.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADc
|
||||
qQAAAk1TRnQBSQFMAgEBDQEAAQ4BAAEEAQABHgEAAR4BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAF4
|
||||
AwABeAMAAQEBAAEgBgAB4RIAIP8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/A/EB/wPiAf8D4gH/
|
||||
A+wB/wP5Af8D/gH/A/4h//8AaQAY/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/A9YB/wPp
|
||||
Af8D7AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8D8QH/A/4B/wP+Gf//AGkAFP8D/gH/AfUB9AH1Af8B9QH0
|
||||
AfUB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/
|
||||
AfUB9AH1Af8B9QH0AfUB/wP+Ff//AGkAEP8D/gH/A/EB/wPZAf8D3AH/A/kB/wPiAf8D2QH/A9kB/wPZ
|
||||
Af8D2QH/A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9wB/wH1AfQB9QH/A+IB/wPZAf8D7AH/A/4R//8A
|
||||
aQAM/wP+Af8D7AH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/4N//8AaQAI/wP+Af8D8QH/A9kB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8B9QH0AfUB/wPiAf8D1gH/A9wB/wPiAf8D8QH/AfUB9AH1Af8D4gH/A9wB/wPZ
|
||||
Af8D3AH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Cf//AGkABP8D/gH/A/kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A/EB/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wPxAf8B9QH0
|
||||
AfUB/wPpAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B9QH0AfUB/wP+Bf//AGkABP8D/gH/A/kB/wPp
|
||||
Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZ
|
||||
Af8D2QH/A+IB/wP5Af8D/gX//wBpAAP+Af8D8QH/A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A9kB/wPZ
|
||||
Af8D8QH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D8QH/A/4B//8A
|
||||
aQAD/gH/A+IB/wPWAf8D2QH/A+IB/wH1AfQB9QH/A/EB/wPsAf8D/jH/A/4B/wPsAf8D8QH/A/kB/wPp
|
||||
Af8D2QH/A9YB/wPiAf8D/gH//wBpAAP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wPx
|
||||
Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af//AGkAA/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+
|
||||
Of8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB//8AaQAD6QH/A9kB/wPZAf8D2QH/A9kB/wPZ
|
||||
Af8D+UH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB//8AaQAD4gH/A9kB/wPZAf8D2QH/A9kB/wPi
|
||||
Af8D/kH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB//8AaQAB9QH0AfUB/wPxAf8D8QH/A/EB/wPx
|
||||
Af8B9QH0AfUB/wP+Qf8D/gH/AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/AfUB9AH1Af//AGkAA+kB/wPi
|
||||
Af8D4gH/A+IB/wPiAf8D7AH/A/5B/wP+Af8D7AH/A+IB/wPiAf8D4gH/A+IB/wPpAf//AGkAA+IB/wPW
|
||||
Af8D2QH/A9kB/wPWAf8D3AH/A/5B/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf//AGkAA+kB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D2QH/A/lB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPiAf//AGkAA/EB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D1gH/A+wB/wP+Of8D/gH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+wB//8A
|
||||
aQAD+QH/A9wB/wPZAf8D2QH/A9kB/wHoAeQB6AH/AfUB9AH1Af8B+QH8Afk5/wP+Af8D+QH/A+kB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D+QH//wBpAAP+Af8D4gH/A9YB/wHhAd4B4QH/AfgB8gH3Af8B6gH4AesB/wF8
|
||||
Ad4BgQH/AYUB2gGKAf8D/jH/A/4B/wPpAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D1gH/A+IB/wP+
|
||||
Af//AGkAA/4B/wH1AfQB9QH/AfAB6wHvAf8B8AH5AfEB/wG8AfsBwQH/AYkB+gGRAf8BagHoAXQB/wE1
|
||||
AcUBPgH/AZsB4gGgAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/kB/wPxAf8B9QH0AfUB/wP+
|
||||
Af//AGkABP8D/gH/AeAB+AHiAf8BkgH7AZkB/wGDAfkBjAH/AYMB+QGMAf8BiQH6AZEB/wFqAegBdAH/
|
||||
ATUBxQE+Af8BjwHdAZQB/wP+Af8D/hn/A/4B/wP+Af8D7AH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A/EB/wP+Bf//AGkABP8D/gH/AeoB+AHrAf8BkgH7AZkB/wGDAfkBjAH/AYkB+gGRAf8BiQH6AZEB/wGJ
|
||||
AfoBkQH/AWoB6AF0Af8BoQHqAaYB/wGqAdIBqwH/AYIBvQGDAf8B2wHsAdsB/wH5AfwB+QH/A/4B/wP+
|
||||
Af8D/gH/A/kB/wPsAf8D7AH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D/gX//wBpAAj/
|
||||
A/4B/wHYAfoB2wH/AYkB+gGRAf8BiQH6AZEB/wGJAfoBkQH/AYMB+QGMAf8BmgH5AaEB/wHmAfsB6AH/
|
||||
AUIBogFEAf8BDwGGAREB/wEhAYwBIwH/ATQBlQE2Af8BkgHJAZMB/wH4AfIB+AH/A9wB/wPZAf8D2QH/
|
||||
A9kB/wP5Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D/gn//wBpAAz/A/4B/wHRAfoB1AH/AYkB+gGR
|
||||
Af8BgwH5AYwB/wGDAfkBjAH/AdgB+gHbAf8BmQHLAZkB/wEyAaMBNAH/ATsBqQE9Af8BMgGjATQB/wEc
|
||||
AZABHgH/AXwBwgF9Af8B9AHwAfQB/wPWAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D2QH/A9kB/wPZ
|
||||
Af8D7AH/A/4N//8AaQAQ/wP+Af8B2AH6AdsB/wGSAfsBmQH/AaoB/AGxAf8B0gHqAdIB/wFDAasBRQH/
|
||||
ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/ATIBowE0Af8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A+kB/wPZAf8D8QH/A/4R//8AaQAU/wP+Af8B6gH4AesB/wHqAfgB6wH/AXwBwgF9
|
||||
Af8BKQGgASwB/wE7AakBPQH/ATsBqQE9Af8BOwGpAT0B/wEuAaIBMgH/AYkByAGKAf8B9AHwAfQB/wPZ
|
||||
Af8D2QH/A9kB/wPZAf8D1gH/A+IB/wP5Af8D+QH/A/4V//8AaQAY/wP+Af8D/gH/Ac4B6wHQAf8BhAHI
|
||||
AYYB/wFLAbABTQH/ATgBqAE6Af8BLgGiATIB/wEnAaABKQH/AYQByAGGAf8B8QHsAfEB/wPWAf8D1gH/
|
||||
A9kB/wPcAf8D4gH/AfUB9AH1Af8D/gH/A/4Z//8AaQAg/wP+Af8D/gH/AeoB+AHrAf8BuQHgAboB/wGS
|
||||
AdABkwH/AW0BwAFvAf8BpAHYAaUB/wH0AfAB9AH/A+IB/wPpAf8D8QH/A/kB/wP+Af8D/iH//wBpACD/
|
||||
A/4B/wP+Af8B2wHsAdsB/wGgAdEBoQH/AXIBvAF0Af8BSQGlAUwB/wGZAcsBmQH/AaoB0gGrAf8BQgGi
|
||||
AUQB/wFqAbQBawH/AZkBywGZAf8B2wHsAdsB/wP+Af8D/kH/A/4B/wP+Af8B3AHwAd0B/wGgAdEBoQH/
|
||||
AXIBvAF0Af8BSQGlAUwB/wGZAcsBmQH/AaoB0gGrAf8BQgGiAUQB/wFqAbQBawH/AZkBywGZAf8B2wHs
|
||||
AdsB/wP+Af8D/kH/A/4B/wP+Af8B4AH4AeIB/wG0AewBuAH/AZAB5gGWAf8BbAHbAXQB/wGkAesBqQH/
|
||||
AfQB8AH0Af8D4gH/A+IB/wPsAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/
|
||||
A/EB/wPiAf8D4gH/A+wB/wP5Af8D/gH/A/45/wP+Af8D/gH/Ab8B4AHAAf8BYQGxAWIB/wEqAZoBLQH/
|
||||
ARwBkAEeAf8BFwGMARkB/wEQAYgBEQH/AYUBwgGGAf8BkgHJAZMB/wEKAYMBDAH/ARMBiAEVAf8BEwGI
|
||||
ARUB/wEiAZIBJAH/AVkBrAFbAf8BswHbAbQB/wP+Af8D/jH/A/4B/wP+Af8BvwHgAcAB/wFhAbEBYgH/
|
||||
ASoBmgEtAf8BHAGQAR4B/wEXAYwBGQH/ARABiAERAf8BhQHCAYYB/wGSAckBkwH/AQoBgwEMAf8BEwGI
|
||||
ARUB/wETAYgBFQH/ASIBkgEkAf8BWQGsAVsB/wGzAdsBtAH/A/4B/wP+Mf8D/gH/A/4B/wHNAfMB0AH/
|
||||
AYMB4QGJAf8BWgHdAWMB/wFLAdkBVAH/AUkB0gFSAf8BQgHQAUsB/wGVAeoBmwH/AfEB7AHxAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A+IB/wPxAf8D/gH/A/4x/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8D8QH/A/4B/wP+Lf8D/gH/AckB4gHJAf8BuQHg
|
||||
AboB/wGSAckBkwH/ARMBiAEVAf8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/
|
||||
AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEKAYMBDAH/AWoBtAFrAf8ByQHi
|
||||
AckB/wHBAeIBwgH/A/4p/wP+Af8ByQHiAckB/wG/AeABwAH/AZIByQGTAf8BEwGIARUB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/ASIBkgEkAf8BIgGS
|
||||
ASQB/wEaAYwBHAH/AQoBgwEMAf8BagG0AWsB/wHWAfQB2AH/AdAB8wHTAf8D/in/A/4B/wHJAeIByQH/
|
||||
AbgB3QG5Af8BrQHyAbIB/wFLAdkBVAH/AVUB2wFeAf8BVQHbAV4B/wFVAdsBXgH/AUkB0gFSAf8BmAHq
|
||||
AZ0B/wHxAewB8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wP+Kf8D/gH/
|
||||
AfUB9AH1Af8B9QH0AfUB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPWAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wP+Jf8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/
|
||||
AdcB6gHYAf8BTwGqAVEB/wEiAZIBJAH/AScBlgEpAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHL
|
||||
AZkB/wETAYgBFQH/ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/ASwBlQEuAf8B0AHnAdAB/wFJAaUBTAH/
|
||||
ARoBjAEcAf8BmQHLAZkB/wP+If8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/AdcB6gHYAf8BTwGq
|
||||
AVEB/wEiAZIBJAH/AScBlgEpAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/
|
||||
ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/ASwBlQEuAf8B0gHqAdIB/wFsAdsBdAH/AUIBywFKAf8BrAHq
|
||||
AbAB/wP+If8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/AdwB8AHdAf8BfAHnAYMB/wFVAdsBXgH/
|
||||
AVoB3QFjAf8BVQHbAV4B/wFJAdIBUgH/AZUB6gGbAf8B8QHsAfEB/wPZAf8D2QH/A9kB/wPZAf8D3AH/
|
||||
AfUB9AH1Af8D4gH/A9kB/wPsAf8D/iH/A/4B/wPxAf8D2QH/A9wB/wP5Af8D4gH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPcAf8B9QH0AfUB/wPiAf8D2QH/A+wB/wP+Hf8D/gH/
|
||||
AZoB0gGbAf8BIwGZASYB/wEmAZgBKQH/AR8BkgEhAf8BkgHJAZMB/wG5AeABugH/ASIBkgEkAf8BJgGY
|
||||
ASkB/wEmAZgBKQH/ARwBkAEeAf8BiQHIAYoB/wGaAdIBmwH/ARwBkAEeAf8BJgGYASkB/wEiAZIBJAH/
|
||||
ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/ARMBiAEVAf8BGgGMARwB/wETAYgBFQH/AYcBwgGIAf8D/hn/
|
||||
A/4B/wGaAdIBmwH/ASMBmQEmAf8BJgGYASkB/wEfAZIBIQH/AZIByQGTAf8BuAHdAbkB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BJgGYASkB/wEcAZABHgH/AYkByAGKAf8BmgHSAZsB/wEcAZABHgH/ASYBmAEpAf8BIgGS
|
||||
ASQB/wETAYgBFQH/AZABxQGRAf8BvAHxAcAB/wFCAdABSwH/AUIBywFKAf8BPAHLAUUB/wGbAeIBoAH/
|
||||
A/4Z/wP+Af8BmgHSAZsB/wEjAZkBJgH/ASYBmAEpAf8BHwGSASEB/wGJAcIBigH/Ac4B+gHRAf8BVQHb
|
||||
AV4B/wFaAd0BYwH/AVoB4AFjAf8BWgHgAWMB/wGlAfIBqgH/AfEB7AHxAf8D1gH/A9kB/wPZAf8D2QH/
|
||||
A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/4Z/wP+Af8D7AH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/
|
||||
A/4V/wP+Af8BqwHYAawB/wEmAZgBKQH/ASoBmgEtAf8BKgGaAS0B/wEqAZoBLQH/ATEBnQEzAf8B0gHq
|
||||
AdIB/wFpAbsBawH/ASMBmQEmAf8BSAGtAUsB/wFiAboBYwH/AbkB4AG6Af8BwQHiAcIB/wFtAcABbwH/
|
||||
AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/ASIBkgEkAf8BGgGM
|
||||
ARwB/wESAYQBFAH/AZIByQGTAf8D/hH/A/4B/wGrAdgBrAH/ASYBmAEpAf8BKgGaAS0B/wEuAZwBMQH/
|
||||
ASoBmgEtAf8BMQGdATMB/wHSAeoB0gH/AWkBuwFrAf8BIwGZASYB/wFIAa0BSwH/AWIBugFjAf8BuQHg
|
||||
AboB/wHBAeIBwgH/AW0BwAFvAf8BUgGyAVQB/wEyAaMBNAH/AU8BqgFRAf8B3AHwAd0B/wFlAdoBbQH/
|
||||
AUIB0AFLAf8BSQHSAVIB/wFCAdABSwH/ATwBywFFAf8BqQHpAa0B/wP+Ef8D/gH/AasB2AGsAf8BJgGY
|
||||
ASkB/wEqAZoBLQH/ASoBmgEtAf8BKgGaAS0B/wExAZ0BMwH/AdIB6gHSAf8BlAHwAZoB/wFnAewBcQH/
|
||||
AYIB8QGKAf8BmgH5AaEB/wHRAfoB1AH/AfQB8AH0Af8D4gH/A9wB/wPZAf8D3AH/A/kB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A+wB/wP+Ef8D/gH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D4gH/
|
||||
A9YB/wPcAf8D4gH/A/EB/wH1AfQB9QH/A+IB/wPcAf8D2QH/A9wB/wP5Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/g3/A/4B/wHcAfAB3QH/ATIBowE0Af8BJgGYASkB/wEuAZwBMQH/AS4BnAExAf8BLgGc
|
||||
ATEB/wEfAZIBIQH/AWEBsQFiAf8B0gHqAdIB/wGrAdgBrAH/AegB9QHoAf8D/gH/A/4B/wP+Af8D/gH/
|
||||
AfAB+QHxAf8BswHbAbQB/wHLAegBywH/AZIB0AGTAf8BHwGSASEB/wEfAZIBIQH/ASIBkgEkAf8BIQGM
|
||||
ASMB/wEaAYwBHAH/ARoBjAEcAf8ByQHiAckB/wP+Cf8D/gH/AdwB8AHdAf8BMgGjATQB/wEmAZgBKQH/
|
||||
AS4BnAExAf8BLgGcATEB/wEuAZwBMQH/AR8BkgEhAf8BYQGxAWIB/wHSAeoB0gH/AasB2AGsAf8B6gH4
|
||||
AesB/wP+Af8D/gH/A/4B/wP+Af8B8AH5AfEB/wGzAdsBtAH/AcsB6AHLAf8BxQH6AckB/wFaAeABYwH/
|
||||
AUkB0gFSAf8BSQHSAVIB/wFJAdIBUgH/AUIBywFKAf8BQgHLAUoB/wHWAfQB2AH/A/4J/wP+Af8B3AHw
|
||||
Ad0B/wEyAaMBNAH/ASYBmAEpAf8BLgGcATEB/wEuAZwBMQH/AS4BnAExAf8BHwGSASEB/wFhAbEBYgH/
|
||||
AeAB+AHiAf8BxQH6AckB/wHwAfkB8QH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/AfUB9AH1Af8D6QH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/AfUB9AH1Af8D6QH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wHgAfEB4QH/AZIByQGTAf8BMgGj
|
||||
ATQB/wEjAZkBJgH/AS4BnAExAf8BJgGYASkB/wEmAZgBKQH/AZIByQGTAf8D/gH/A/4Z/wP+Af8D/gH/
|
||||
AasB2AGsAf8BRQGwAUcB/wEqAZoBLQH/AR8BigEhAf8BFwGMARkB/wEaAYwBHAH/AWoBtAFrAf8B3AHw
|
||||
Ad0B/wP+Cf8D/gH/AeAB8QHhAf8BkgHJAZMB/wEyAaMBNAH/ASMBmQEmAf8BKgGaAS0B/wEmAZgBKQH/
|
||||
ASYBmAEpAf8BkgHJAZMB/wP+Af8D/hn/A/4B/wP+Af8B0QH6AdQB/wGaAfkBoQH/AWsB5QF0Af8BSAHS
|
||||
AVEB/wFCAdABSwH/AUIBywFKAf8BgQHgAYYB/wHgAfgB4gH/A/4J/wP+Af8B4AHxAeEB/wGSAckBkwH/
|
||||
ATIBowE0Af8BIwGZASYB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wGSAckBkwH/A/4B/wP+Gf8D/gH/
|
||||
A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A/4J/wP+Af8B8AH5AfEB/wHxAewB8QH/
|
||||
AdwB2gHcAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Af8D/hn/A/4B/wP+Af8D7AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/A/kB/wP+Bf8D/gH/AbkB4AG6Af8BUgGyAVQB/wHBAeIBwgH/AdIB6gHSAf8BcgG8
|
||||
AXQB/wEjAZkBJgH/ARwBkAEeAf8BqgHSAasB/wP+Kf8D/gH/AcEB4gHCAf8BRQGwAUcB/wEiAZIBJAH/
|
||||
AVMBqQFVAf8BwQHiAcIB/wHJAeIByQH/AVMBqQFVAf8BqgHSAasB/wP+Af8D/gH/AbkB4AG6Af8BUgGy
|
||||
AVQB/wHBAeIBwgH/AdIB6gHSAf8BcgG8AXQB/wEjAZkBJgH/ARwBkAEeAf8BqgHSAasB/wP+Kf8D/gH/
|
||||
Ad0B+wHgAf8BmgH5AaEB/wFaAeABYwH/AWwB2wF0Af8BxQH6AckB/wH4AfIB+AH/A+IB/wPxAf8D/gH/
|
||||
A/4B/wG5AeABugH/AVIBsgFUAf8BwQHiAcIB/wHSAeoB0gH/AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/
|
||||
AaoB0gGrAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPxAf8D/gH/
|
||||
A/4B/wHRAfoB1AH/AYIB8QGKAf8BzgH6AdEB/wH4AfIB+AH/AegB5AHoAf8D2QH/A9kB/wPxAf8D/in/
|
||||
A/4B/wPxAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPxAf8D/gH/A/4B/wFyAbwBdAH/
|
||||
ASMBmQEmAf8BKgGaAS0B/wFwAbkBcgH/AdIB6gHSAf8BswHbAbQB/wGZAcsBmQH/A/4x/wP+Af8BswHb
|
||||
AbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/
|
||||
AXIBvAF0Af8BIwGZASYB/wEqAZoBLQH/AXABuQFyAf8B0gHqAdIB/wGzAdsBtAH/AZkBywGZAf8D/jH/
|
||||
A/4B/wHRAfoB1AH/Ac4B+gHRAf8B8AH5AfEB/wHxAewB8QH/A9kB/wPWAf8D4gH/A/4B/wP+Af8BcgG8
|
||||
AXQB/wEjAZkBJgH/ASoBmgEtAf8BcAG5AXIB/wHSAeoB0gH/AbMB2wG0Af8BmQHLAZkB/wP+Mf8D/gH/
|
||||
A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/A+IB/wP+Af8D/gH/AZ4B8wGkAf8BagHoAXQB/wFqAegBdAH/
|
||||
AZQB8AGaAf8B4AH4AeIB/wH0AfAB9AH/A+wB/wP+Mf8D/gH/A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/
|
||||
A+IB/wP+Af8B4AHxAeEB/wE/AakBQQH/ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHL
|
||||
AZkB/wP+Of8D/gH/AcEB4gHCAf8BPwGpAUEB/wETAYgBFQH/AR8BigEhAf8BGgGMARwB/wEiAZIBJAH/
|
||||
AdIB6gHSAf8B4AHxAeEB/wE/AakBQQH/ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHL
|
||||
AZkB/wP+Of8D/gH/AfQB8AH0Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af8B4AHxAeEB/wE/AakBQQH/
|
||||
ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHLAZkB/wP+Of8D/gH/A/EB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wHqAfgB6wH/AXoB8gGBAf8BdQHxAX4B/wFxAesBegH/AWoB6AF0Af8BWgHd
|
||||
AWMB/wGkAesBqQH/A/45/wP+Af8D8QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D+QH/AasB2AGsAf8BLgGi
|
||||
ATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGjATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/
|
||||
ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGi
|
||||
ATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGjATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wPsAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPsAf8BqwHYAawB/wEuAaIBMgH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/
|
||||
ARMBiAEVAf8BkgHJAZMB/wP+Of8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wHKAfkBzQH/
|
||||
AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AXEB6wF6Af8BQAHPAUoB/wGkAeYBqAH/A/45/wP+Af8D7AH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/AYQByAGGAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BKgGa
|
||||
AS0B/wEhAYwBIwH/AdsB7AHbQf8B6AH1AegB/wFLAbABTQH/ASYBmAEpAf8BIgGSASQB/wEiAZIBJAH/
|
||||
ARMBiAEVAf8BagG0AWsB/wGEAcgBhgH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/ASoBmgEtAf8BIQGM
|
||||
ASMB/wHbAewB20H/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wGEAcgBhgH/ASkBoAEsAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ASoBmgEtAf8BIQGMASMB/wHbAewB20H/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+IB/wGqAfwBsQH/AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AWgB5QFxAf8BQgHLAUoB/wHgAfEB4UH/
|
||||
A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wFpAbsBawH/AS4BogEyAf8BNgGkATkB/wE2AaQBOQH/
|
||||
ASIBkgEkAf8BPgGbAUAB/wH5AfwB+UH/A/4B/wFtAcABbwH/ASMBmQEmAf8BHwGKASEB/wEfAZIBIQH/
|
||||
ARcBjAEZAf8BSQGlAUwB/wFpAbsBawH/AS4BogEyAf8BNgGkATkB/wE2AaQBOQH/ASIBkgEkAf8BPgGb
|
||||
AUAB/wH5AfwB+UH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wFpAbsBawH/AS4BogEyAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ASIBkgEkAf8BPgGbAUAB/wH5AfwB+UH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+IB/wGaAfkBoQH/AXoB8gGBAf8BegHyAYEB/wF6AfIBgQH/AVoB4AFjAf8BWwHQAWIB/wH5AfwB+UH/
|
||||
A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wHLAegBywH/AbkB4AG6Af8BuQHgAboB/wG5AeABugH/
|
||||
AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/AdIB6gHSAf8BuAHdAbkB/wGzAdsBtAH/AbMB2wG0Af8BswHb
|
||||
AbQB/wG/AeABwAH/AcsB6AHLAf8BuQHgAboB/wG5AeABugH/AbkB4AG6Af8BswHbAbQB/wHBAeIBwgH/
|
||||
A/5B/wP+Af8B9QH0AfUB/wPxAf8D8QH/A/EB/wPxAf8B9QH0AfUB/wHLAegBywH/AbkB4AG6Af8BuQHg
|
||||
AboB/wG5AeABugH/AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/
|
||||
AfUB9AH1Af8B3QH7AeAB/wHRAfoB1AH/AdQB/AHYAf8B1AH8AdgB/wHFAfIByAH/Ac0B8wHQAf8D/kH/
|
||||
A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/AZIB0AGTAf8BfAHCAX0B/wF8AcIBfQH/
|
||||
AXwBwgF9Af8BaQG7AWsB/wGJAcIBigH/A/5B/wP+Af8BzgH6AdEB/wGeAfMBpAH/AYwB5gGSAf8BjAHm
|
||||
AZIB/wGMAeYBkgH/AZwB7AGhAf8BkgHQAZMB/wF8AcIBfQH/AXwBwgF9Af8BfAHCAX0B/wFpAbsBawH/
|
||||
AYkBwgGKAf8D/kH/A/4B/wPsAf8D4gH/A+IB/wPiAf8D4gH/A+kB/wGSAdABkwH/AXwBwgF9Af8BfAHC
|
||||
AX0B/wF8AcIBfQH/AWkBuwFrAf8BiQHCAYoB/wP+Qf8D/gH/A+wB/wPiAf8D4gH/A+IB/wPiAf8D6QH/
|
||||
AZIByQGTAf8BdQHAAXYB/wF4AcABeQH/AXwBwgF9Af8BagG0AWsB/wGIAb8BiQH/A/5B/wP+Af8D7AH/
|
||||
A+IB/wPiAf8D4gH/A+IB/wPpAf8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/
|
||||
ATQBlQE2Af8B+QH8AflB/wP+Af8BngHzAaQB/wFfAeIBaQH/AUkB0gFSAf8BSwHZAVQB/wFCAdABSwH/
|
||||
AWwB2wF0Af8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5
|
||||
AfFB/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGj
|
||||
ATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5AfFB/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf8BaQG7
|
||||
AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5AfFB/wP+Af8D4gH/
|
||||
A9YB/wPZAf8D2QH/A9YB/wPiAf8BiQHIAYoB/wEyAaMBNAH/ATsBqQE9Af8BOwGpAT0B/wEyAaMBNAH/
|
||||
AR8BigEhAf8B1wHqAdhB/wHvAfwB8AH/AYIB8QGKAf8BXwHiAWkB/wFVAdsBXgH/AVUB2wFeAf8BSQHS
|
||||
AVIB/wGMAeYBkgH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/
|
||||
AdcB6gHYQf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/
|
||||
ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/
|
||||
AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8D+QH/
|
||||
A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp
|
||||
AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wHFAfoByQH/AWcB7AFxAf8BWgHdAWMB/wFaAd0BYwH/
|
||||
AVUB2wFeAf8BSwHZAVQB/wGwAewBtAH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOQGh
|
||||
ATsB/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPsAf8BswHb
|
||||
AbQB/wEyAaMBNAH/ATsBqQE9Af8BOwGpAT0B/wE5AaEBOwH/AQoBgwEMAf8BiQHCAYoB/wP+Of8D/gH/
|
||||
A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wGzAdsBtAH/ATIBowE0Af8BOwGpAT0B/wE7AakBPQH/
|
||||
ATkBoQE7Af8BCgGDAQwB/wGJAcIBigH/A/45/wP+Af8D7AH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D7AH/
|
||||
AegB9QHoAf8BSwGwAU0B/wE7AakBPQH/ATIBowE0Af8BMgGjATQB/wFnAbYBaQH/AckB4gHJAf8B+QH8
|
||||
Afk5/wP+Af8B6gH4AesB/wGeAfMBpAH/AVoB3QFjAf8BVQHbAV4B/wFVAdsBXgH/AVoB3QFjAf8B4AH4
|
||||
AeIB/wHoAfUB6AH/AUsBsAFNAf8BOwGpAT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2AWkB/wHJAeIByQH/
|
||||
AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wHoAfUB6AH/AUsBsAFNAf8BOwGp
|
||||
AT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2AWkB/wHJAeIByQH/AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wHoAfUB6AH/AUsBsAFNAf8BOwGpAT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2
|
||||
AWkB/wHJAeIByQH/AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Af8BfAHC
|
||||
AX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/
|
||||
A+kB/wPiAf8B+AHyAfgB/wHRAfoB1AH/AXwB5wGDAf8BSwHZAVQB/wGDAeEBiQH/A/4B/wP+Af8BfAHC
|
||||
AX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/
|
||||
A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/
|
||||
AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0
|
||||
AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/AVsBsQFdAf8BuQHg
|
||||
AboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/
|
||||
A+IB/wPWAf8D4gH/A/4B/wP+Af8BzgHrAdAB/wGfAdUBoQH/AdwB8AHdAf8BmgHSAZsB/wFDAasBRQH/
|
||||
ASYBmAEpAf8BEgGEARQB/wGQAcUBkQH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D2QH/Ae0B6AHtAf8B9QH0
|
||||
AfUB/wG0AfMBuAH/AdAB8wHTAf8D/gH/A/4B/wHLAegBywH/AZ8B1QGhAf8B3AHwAd0B/wGaAdIBmwH/
|
||||
AUMBqwFFAf8BJgGYASkB/wESAYQBFAH/AZABxQGRAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/
|
||||
A/kB/wPxAf8B9QH0AfUB/wP+Af8D/gH/AcsB6AHLAf8BnwHVAaEB/wHcAfAB3QH/AZoB0gGbAf8BQwGr
|
||||
AUUB/wEmAZgBKQH/ARIBhAEUAf8BkAHFAZEB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPpAf8D+QH/
|
||||
A/EB/wH1AfQB9QH/A/4B/wP+Af8BywHoAcsB/wGfAdUBoQH/AdwB8AHdAf8BmgHSAZsB/wFDAasBRQH/
|
||||
ASYBmAEpAf8BEgGEARQB/wGQAcUBkQH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D2QH/A+kB/wP5Af8D8QH/
|
||||
AfUB9AH1Af8D/gX/A/4B/wHSAeoB0gH/AVIBsgFUAf8BMgGjATQB/wE7AakBPQH/AT8BqQFBAf8BLgGc
|
||||
ATEB/wESAYQBFAH/AYIBvQGDAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9wB/wH0AfAB9AH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/
|
||||
AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/
|
||||
AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/
|
||||
AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D8QH/A/4J/wP+Af8B4AHxAeEB/wFLAbABTQH/ATgBqAE6Af8BPwGpAUEB/wE7AakBPQH/
|
||||
AT8BqQFBAf8BIwGZASYB/wGJAcIBigH/AaoB0gGrAf8BggG9AYMB/wHbAewB2wH/AfkB/AH5Af8D/gH/
|
||||
A/4B/wP+Af8D+QH/A+wB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Cf8D/gH/
|
||||
AeAB8QHhAf8BSwGwAU0B/wE4AagBOgH/AT8BqQFBAf8BOwGpAT0B/wE/AakBQQH/ASMBmQEmAf8BiQHC
|
||||
AYoB/wGqAdIBqwH/AYIBvQGDAf8B2wHsAdsB/wH5AfwB+QH/A/4B/wP+Af8D/gH/A/kB/wPsAf8D7AH/
|
||||
A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D/gn/A/4B/wHgAfEB4QH/AUsBsAFNAf8BOAGo
|
||||
AToB/wE/AakBQQH/ATsBqQE9Af8BPwGpAUEB/wEjAZkBJgH/AYkBwgGKAf8BqgHSAasB/wGCAb0BgwH/
|
||||
AdsB7AHbAf8B+QH8AfkB/wP+Af8D/gH/A/4B/wP5Af8D7AH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D+QH/A/4J/wP+Af8B4AHxAeEB/wFLAbABTQH/ATsBqQE9Af8BPwGpAUEB/wE7AakBPQH/
|
||||
AT8BqQFBAf8BIwGZASYB/wGJAcIBigH/AaoB0gGrAf8BggG9AYMB/wHbAewB2wH/AfkB/AH5Af8D/gH/
|
||||
A/4B/wP+Af8D+QH/A+wB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Df8D/gH/
|
||||
AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGi
|
||||
AUQB/wEQAYgBEQH/ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/ASEBjAEjAf8BNAGV
|
||||
ATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/
|
||||
AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGp
|
||||
AT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/
|
||||
ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/EB/wP+Ff8D/gH/AbMB2wG0Af8BOwGpAT0B/wE4AagBOgH/ATYBpAE5Af8BuQHg
|
||||
AboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/ARwBkAEeAf8BfAHCAX0B/wH0AfAB9AH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPsAf8D/hn/A/4B/wGzAdsBtAH/
|
||||
ATsBqQE9Af8BOAGoAToB/wE2AaQBOQH/AbkB4AG6Af8BmgHSAZsB/wEyAaMBNAH/ATsBqQE9Af8BMgGj
|
||||
ATQB/wEcAZABHgH/AXwBwgF9Af8B9AHwAfQB/wPWAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D2QH/
|
||||
A9kB/wPZAf8D7AH/A/4Z/wP+Af8BswHbAbQB/wE7AakBPQH/ATgBqAE6Af8BNgGkATkB/wG5AeABugH/
|
||||
AZoB0gGbAf8BMgGjATQB/wE7AakBPQH/ATIBowE0Af8BHAGQAR4B/wF8AcIBfQH/AfQB8AH0Af8D1gH/
|
||||
A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A+wB/wP+Gf8D/gH/AbMB2wG0Af8BOwGp
|
||||
AT0B/wE4AagBOgH/ATYBpAE5Af8BuQHgAboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/
|
||||
ARwBkAEeAf8BfAHCAX0B/wH0AfAB9AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/h3/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGp
|
||||
AT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/
|
||||
AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/AfQB8AH0Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHA
|
||||
AW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/
|
||||
AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/
|
||||
AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BMgGj
|
||||
ATQB/wGJAcgBigH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iX/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/
|
||||
A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/i3/
|
||||
A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHI
|
||||
AYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/A9wB/wPiAf8B9AHwAfQB/wP+Af8D/jH/A/4B/wP+Af8BzgHr
|
||||
AdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wH0AfAB9AH/
|
||||
A9YB/wPWAf8D2QH/A9wB/wPiAf8B9QH0AfUB/wP+Af8D/jH/A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/
|
||||
AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/
|
||||
A9wB/wPiAf8B9QH0AfUB/wP+Af8D/jH/A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGo
|
||||
AToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/A9wB/wPiAf8B9QH0
|
||||
AfUB/wP+Af8D/jn/A/4B/wP+Af8B8AH5AfEB/wG5AeABugH/AZIB0AGTAf8BbQHAAW8B/wGkAdgBpQH/
|
||||
AfQB8AH0Af8D4gH/A+kB/wPxAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wHqAfgB6wH/AbkB4AG6Af8BkgHQ
|
||||
AZMB/wFtAcABbwH/AaQB2AGlAf8B9AHwAfQB/wPiAf8D6QH/A/EB/wP5Af8D/gH/A/5B/wP+Af8D/gH/
|
||||
AeoB+AHrAf8BuQHgAboB/wGSAdABkwH/AW0BwAFvAf8BpAHYAaUB/wH0AfAB9AH/A+IB/wPpAf8D8QH/
|
||||
A/kB/wP+Af8D/kH/A/4B/wP+Af8B6gH4AesB/wG5AeABugH/AZIB0AGTAf8BbQHAAW8B/wGkAdgBpQH/
|
||||
AfQB8AH0Af8D4gH/A+kB/wPxAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wHgAfgB4gH/AbQB7AG4Af8BkAHm
|
||||
AZYB/wFsAdsBdAH/AbEB8QG1Af8BoAHRAaEB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/
|
||||
A/4B/wP+Qf8D/gH/A/4B/wHbAewB2wH/AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/AZkBywGZAf8BqgHS
|
||||
AasB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/A/4B/wP+Qf8D/gH/A/4B/wHcAfAB3QH/
|
||||
AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/AZkBywGZAf8BqgHSAasB/wFCAaIBRAH/AWoBtAFrAf8BmQHL
|
||||
AZkB/wHbAewB2wH/A/4B/wP+Qf8D/gH/A/4B/wHcAfAB3QH/AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/
|
||||
AZkBywGZAf8BqgHSAasB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/A/4B/wP+Of8D/gH/
|
||||
A/4B/wHNAfMB0AH/AYMB4QGJAf8BWgHdAWMB/wFLAdkBVAH/AUkB0gFSAf8BQgHQAUsB/wGhAeoBpgH/
|
||||
AZIByQGTAf8BCgGDAQwB/wETAYgBFQH/ARMBiAEVAf8BIgGSASQB/wFZAawBWwH/AbMB2wG0Af8D/gH/
|
||||
A/4x/wP+Af8D/gH/Ab8B4AHAAf8BYQGxAWIB/wEqAZoBLQH/ARoBjAEcAf8BFwGMARkB/wEQAYgBEQH/
|
||||
AYUBwgGGAf8BkgHJAZMB/wEKAYMBDAH/ARMBiAEVAf8BEwGIARUB/wEiAZIBJAH/AVkBrAFbAf8BswHb
|
||||
AbQB/wP+Af8D/jH/A/4B/wP+Af8BvwHgAcAB/wFhAbEBYgH/ASoBmgEtAf8BGgGMARwB/wEXAYwBGQH/
|
||||
ARABiAERAf8BhQHCAYYB/wGSAckBkwH/AQoBgwEMAf8BEwGIARUB/wETAYgBFQH/ASIBkgEkAf8BWQGs
|
||||
AVsB/wGzAdsBtAH/A/4B/wP+Mf8D/gH/A/4B/wHBAeIBwgH/AWEBsQFiAf8BKgGaAS0B/wEcAZABHgH/
|
||||
ARcBjAEZAf8BEAGIAREB/wGFAcIBhgH/AZYByQGYAf8BCgGDAQwB/wETAYgBFQH/ARMBiAEVAf8BIgGS
|
||||
ASQB/wFZAawBWwH/AbMB2wG0Af8D/gH/A/4t/wP+Af8B9QH0AfUB/wH4AfIB+AH/AakB6QGtAf8BSwHZ
|
||||
AVQB/wFVAdsBXgH/AVUB2wFeAf8BVQHbAV4B/wFJAdIBUgH/AaQB6wGpAf8BlgHJAZgB/wETAYgBFQH/
|
||||
ASIBkgEkAf8BHwGSASEB/wEaAYwBHAH/AQoBgwEMAf8BagG0AWsB/wHJAeIByQH/AcEB4gHCAf8D/in/
|
||||
A/4B/wHJAeIByQH/AbkB4AG6Af8BkgHJAZMB/wETAYgBFQH/ASIBkgEkAf8BIgGSASQB/wEiAZIBJAH/
|
||||
ARcBjAEZAf8BiQHCAYoB/wGZAcsBmQH/ARMBiAEVAf8BIgGSASQB/wEfAZIBIQH/ARoBjAEcAf8BCgGD
|
||||
AQwB/wFqAbQBawH/AckB4gHJAf8BwQHiAcIB/wP+Kf8D/gH/AckB4gHJAf8BvwHgAcAB/wGSAckBkwH/
|
||||
ARMBiAEVAf8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGI
|
||||
ARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEKAYMBDAH/AWoBtAFrAf8ByQHiAckB/wHBAeIBwgH/
|
||||
A/4p/wP+Af8ByQHiAckB/wG5AeABugH/AZIByQGTAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BIgGS
|
||||
ASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/ASIBkgEkAf8BHwGSASEB/wEaAYwBHAH/
|
||||
AQoBgwEMAf8BagG0AWsB/wHJAeIByQH/AcEB4gHCAf8D/iX/A/4B/wPxAf8D2QH/A9wB/wHvAfwB8AH/
|
||||
AXUB5QF9Af8BVQHbAV4B/wFaAd0BYwH/AVUB2wFeAf8BSQHSAVIB/wGkAesBqQH/AZIByQGTAf8BEwGI
|
||||
ARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/
|
||||
AZkBywGZAf8D/iH/A/4B/wGrAdgBrAH/AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGS
|
||||
ASQB/wEnAZYBKQH/AScBlgEpAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/iH/
|
||||
A/4B/wGrAdgBrAH/AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGSASQB/wEnAZYBKQH/
|
||||
ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGM
|
||||
ARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/iH/A/4B/wGrAdgBrAH/
|
||||
AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGSASQB/wEnAZYBKQH/AScBlgEpAf8BFwGM
|
||||
ARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/
|
||||
AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/h3/A/4B/wPsAf8D2QH/A9kB/wPZAf8B8QHs
|
||||
AfEB/wHFAfIByAH/AVUB2wFeAf8BWgHdAWMB/wFaAeABYwH/AVoB4AFjAf8BsQH7AbYB/wGZAcsBmQH/
|
||||
ARwBkAEeAf8BJwGWASkB/wEiAZIBJAH/ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/ARMBiAEVAf8BGgGM
|
||||
ARwB/wETAYgBFQH/AYcBwgGIAf8D/hn/A/4B/wGaAdIBmwH/ASMBmQEmAf8BJgGYASkB/wEfAZIBIQH/
|
||||
AZIByQGTAf8BuAHdAbkB/wEiAZIBJAH/AScBlgEpAf8BJgGYASkB/wEcAZABHgH/AYkByAGKAf8BmgHS
|
||||
AZsB/wEcAZABHgH/AScBlgEpAf8BIgGSASQB/wETAYgBFQH/AZYByQGYAf8BqgHSAasB/wETAYgBFQH/
|
||||
ARoBjAEcAf8BEgGEARQB/wGHAcIBiAH/A/4Z/wP+Af8BmgHSAZsB/wEjAZkBJgH/ASYBmAEpAf8BHwGS
|
||||
ASEB/wGSAckBkwH/AbgB3QG5Af8BIgGSASQB/wEnAZYBKQH/ASYBmAEpAf8BHAGQAR4B/wGJAcgBigH/
|
||||
AZoB0gGbAf8BHAGQAR4B/wEnAZYBKQH/ASIBkgEkAf8BEwGIARUB/wGWAckBmAH/AaoB0gGrAf8BEwGI
|
||||
ARUB/wEaAYwBHAH/ARIBhAEUAf8BhwHCAYgB/wP+Gf8D/gH/AZoB0gGbAf8BIwGZASYB/wEmAZgBKQH/
|
||||
AR8BkgEhAf8BkgHJAZMB/wG4Ad0BuQH/ASIBkgEkAf8BJwGWASkB/wEmAZgBKQH/ARwBkAEeAf8BiQHI
|
||||
AYoB/wGaAdIBmwH/ARwBkAEeAf8BJwGWASkB/wEiAZIBJAH/ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/
|
||||
ARMBiAEVAf8BGgGMARwB/wETAYgBFQH/AYcBwgGIAf8D/hX/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
AdwB2gHcAf8B9QH0AfUB/wGKAewBkQH/AWcB7AFxAf8BggHxAYoB/wGaAfkBoQH/AdgB+gHbAf8BwQHi
|
||||
AcIB/wFtAcABbwH/AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/
|
||||
ASIBkgEkAf8BGgGMARwB/wESAYQBFAH/AZYByQGYAf8D/hH/A/4B/wGrAdgBrAH/ASYBmAEpAf8BKgGa
|
||||
AS0B/wEqAZoBLQH/ASoBmgEtAf8BMQGdATMB/wHSAeoB0gH/AWkBuwFrAf8BIwGZASYB/wFIAa0BSwH/
|
||||
AWIBugFjAf8BuQHgAboB/wHBAeIBwgH/AW0BwAFvAf8BUgGyAVQB/wEyAaMBNAH/AVMBqQFVAf8B2wHs
|
||||
AdsB/wE/AZ0BQQH/ARoBjAEcAf8BIgGSASQB/wEaAYwBHAH/ARIBhAEUAf8BlgHJAZgB/wP+Ef8D/gH/
|
||||
AasB2AGsAf8BJgGYASkB/wEqAZoBLQH/ASoBmgEtAf8BKgGaAS0B/wExAZ0BMwH/AdIB6gHSAf8BaQG7
|
||||
AWsB/wEjAZkBJgH/AUoBrAFNAf8BYgG6AWMB/wG5AeABugH/AcEB4gHCAf8BbQHAAW8B/wFSAbIBVAH/
|
||||
ATIBowE0Af8BUwGpAVUB/wHbAewB2wH/AT8BnQFBAf8BGgGMARwB/wEiAZIBJAH/ARoBjAEcAf8BEgGE
|
||||
ARQB/wGWAckBmAH/A/4R/wP+Af8BqwHYAawB/wEmAZgBKQH/ASoBmgEtAf8BKgGaAS0B/wEqAZoBLQH/
|
||||
ATEBnQEzAf8B0gHqAdIB/wFpAbsBawH/ASMBmQEmAf8BSAGtAUsB/wFiAboBYwH/AbkB4AG6Af8BwQHi
|
||||
AcIB/wFtAcABbwH/AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/
|
||||
ASIBkgEkAf8BGgGMARwB/wETAYgBFQH/AZYByQGYAf8D/g3/A/4B/wP5Af8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/AeAB+AHiAf8BxQH6AckB/wHwAfkB8QH/A/4B/wP+Af8D/gH/A/4B/wHwAfkB8QH/
|
||||
AbMB2wG0Af8BywHoAcsB/wGSAdABkwH/AR8BkgEhAf8BHwGSASEB/wEfAZIBIQH/ASEBjAEjAf8BGgGM
|
||||
ARwB/wEaAYwBHAH/AckB4gHJAf8D/gn/A/4B/wHbAewB2wH/ATIBowE0Af8BJgGYASkB/wEuAZwBMQH/
|
||||
AS4BnAExAf8BLgGcATEB/wEfAZIBIQH/AWEBsQFiAf8B0gHqAdIB/wGrAdgBrAH/AegB9QHoAf8D/gH/
|
||||
A/4B/wP+Af8D/gH/AfAB+QHxAf8BswHbAbQB/wHLAegBywH/AZIB0AGTAf8BHwGSASEB/wEfAZIBIQH/
|
||||
AR8BkgEhAf8BHwGSASEB/wEaAYwBHAH/ARoBjAEcAf8ByQHiAckB/wP+Cf8D/gH/AdwB8AHdAf8BMgGj
|
||||
ATQB/wEmAZgBKQH/AS4BnAExAf8BLgGcATEB/wEuAZwBMQH/AR8BkgEhAf8BYQGxAWIB/wHSAeoB0gH/
|
||||
AasB2AGsAf8B6AH1AegB/wP+Af8D/gH/A/4B/wP+Af8B8AH5AfEB/wGzAdsBtAH/AcsB6AHLAf8BkgHQ
|
||||
AZMB/wEfAZIBIQH/AR8BkgEhAf8BIgGSASQB/wEiAZIBJAH/ARoBjAEcAf8BGgGMARwB/wHJAeIByQH/
|
||||
A/4J/wP+Af8B3AHwAd0B/wEyAaMBNAH/ASYBmAEpAf8BLgGcATEB/wEuAZwBMQH/AS4BnAExAf8BHwGS
|
||||
ASEB/wFhAbEBYgH/AdIB6gHSAf8BqwHYAawB/wHqAfgB6wH/A/4B/wP+Af8D/gH/A/4B/wHqAfgB6wH/
|
||||
AbMB2wG0Af8BywHoAcsB/wGSAdABkwH/AR8BkgEhAf8BHwGSASEB/wEiAZIBJAH/ASEBjAEjAf8BGgGM
|
||||
ARwB/wEaAYwBHAH/AckB4gHJAf8D/gn/A/4B/wP5Af8D6QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/
|
||||
A/4B/wP+Gf8D/gH/A/4B/wGrAdgBrAH/AUUBsAFHAf8BKgGaAS0B/wEfAZIBIQH/ARcBjAEZAf8BGgGM
|
||||
ARwB/wFqAbQBawH/AdsB7AHbAf8D/gn/A/4B/wHgAfEB4QH/AYkByAGKAf8BMgGjATQB/wEjAZkBJgH/
|
||||
AS4BnAExAf8BKgGaAS0B/wEnAZYBKQH/AZIByQGTAf8D/gH/A/4Z/wP+Af8D/gH/AasB2AGsAf8BRQGw
|
||||
AUcB/wEqAZoBLQH/AR8BkgEhAf8BFwGMARkB/wEaAYwBHAH/AWoBtAFrAf8B2wHsAdsB/wP+Cf8D/gH/
|
||||
AeAB8QHhAf8BkgHJAZMB/wEyAaMBNAH/ASMBmQEmAf8BLgGcATEB/wEqAZoBLQH/AScBlgEpAf8BkgHJ
|
||||
AZMB/wP+Af8D/hn/A/4B/wP+Af8BqwHYAawB/wFFAbABRwH/ASoBmgEtAf8BHwGKASEB/wEXAYwBGQH/
|
||||
ARoBjAEcAf8BagG0AWsB/wHcAfAB3QH/A/4J/wP+Af8B4AHxAeEB/wGSAckBkwH/ATIBowE0Af8BIwGZ
|
||||
ASYB/wEuAZwBMQH/ASoBmgEtAf8BJwGWASkB/wGSAckBkwH/A/4B/wP+Gf8D/gH/A/4B/wGrAdgBrAH/
|
||||
AUUBsAFHAf8BKgGaAS0B/wEfAYoBIQH/ARcBjAEZAf8BGgGMARwB/wFqAbQBawH/AdwB8AHdAf8D/gX/
|
||||
A/4B/wPxAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D2QH/A9kB/wPxAf8D/in/A/4B/wHBAeIBwgH/
|
||||
AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/AaoB0gGrAf8D/gH/
|
||||
A/4B/wHRAfoB1AH/AYkB8wGQAf8B1AH8AdgB/wHSAeoB0gH/AXIBvAF0Af8BIgGSASQB/wEcAZABHgH/
|
||||
AaoB0gGrAf8D/in/A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHi
|
||||
AckB/wFTAakBVQH/AaoB0gGrAf8D/gH/A/4B/wG5AeABugH/AVYBsQFZAf8BwQHiAcIB/wHSAeoB0gH/
|
||||
AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/AaoB0gGrAf8D/in/A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGS
|
||||
ASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/AaoB0gGrAf8D/gH/A/4B/wG5AeABugH/
|
||||
AVIBsgFUAf8BwQHiAcIB/wHSAeoB0gH/AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/AaoB0gGrAf8D/in/
|
||||
A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/
|
||||
AaoB0gGrAf8D/gH/A/4B/wPiAf8D1gH/A9kB/wPiAf8B9QH0AfUB/wPxAf8D7AH/A/4x/wP+Af8BswHb
|
||||
AbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/
|
||||
AZ4B8wGkAf8BagHoAXQB/wFqAegBdAH/AZ4B8wGkAf8B4AH4AeIB/wGzAdsBtAH/AZkBywGZAf8D/jH/
|
||||
A/4B/wGzAdsBtAH/AbMB2wG0Af8B2wHsAdsB/wF5AbwBewH/ASIBkgEkAf8BCgGDAQwB/wFTAakBVQH/
|
||||
A/4B/wP+Af8BcgG8AXQB/wEjAZkBJgH/ASoBmgEtAf8BcAG5AXIB/wHSAeoB0gH/AbMB2wG0Af8BmQHL
|
||||
AZkB/wP+Mf8D/gH/AbMB2wG0Af8BswHbAbQB/wHbAewB2wH/AXkBvAF7Af8BIgGSASQB/wEKAYMBDAH/
|
||||
AVMBqQFVAf8D/gH/A/4B/wFyAbwBdAH/ASMBmQEmAf8BKgGaAS0B/wFwAbkBcgH/AdIB6gHSAf8BswHb
|
||||
AbQB/wGZAcsBmQH/A/4x/wP+Af8BswHbAbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/
|
||||
AQoBgwEMAf8BUwGpAVUB/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/45/wP+Af8BwQHi
|
||||
AcIB/wFCAaIBRAH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHqAfgB6wH/
|
||||
AXoB8gGBAf8BdQHxAX4B/wFxAesBegH/AWoB6AF0Af8BWgHgAWMB/wGsAeoBsAH/A/45/wP+Af8BwQHi
|
||||
AcIB/wFCAaIBRAH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHgAfEB4QH/
|
||||
AT8BqQFBAf8BMgGjATQB/wEyAaMBNAH/ASoBmgEtAf8BJgGYASkB/wGZAcsBmQH/A/45/wP+Af8BwQHi
|
||||
AcIB/wE/AakBQQH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHgAfEB4QH/
|
||||
AT8BqQFBAf8BMgGjATQB/wEyAaMBNAH/ASoBmgEtAf8BJgGYASkB/wGZAcsBmQH/A/45/wP+Af8BwQHi
|
||||
AcIB/wE/AakBQQH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AcgB9AHMAf8BdQHxAX4B/wF6AfIBgQH/AXoB8gGBAf8BcQHr
|
||||
AXoB/wFAAc8BSgH/AaQB5gGoAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGiATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wESAYQBFAH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGiATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wHoAfUB6AH/
|
||||
AUsBsAFNAf8BJgGYASkB/wEfAZIBIQH/AR8BkgEhAf8BEwGIARUB/wFqAbQBawH/AaoB/AGxAf8BdQHx
|
||||
AX4B/wF6AfIBgQH/AXoB8gGBAf8BaAHlAXEB/wFCAcsBSgH/AeAB8QHhQf8B6AH1AegB/wFLAbABTQH/
|
||||
ASYBmAEpAf8BHwGSASEB/wEfAZIBIQH/ARMBiAEVAf8BagG0AWsB/wGEAcgBhgH/ASkBoAEsAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ASoBmgEtAf8BIgGSASQB/wHbAewB20H/AegB9QHoAf8BSwGwAU0B/wEmAZgBKQH/
|
||||
ASIBkgEkAf8BIgGSASQB/wETAYgBFQH/AWoBtAFrAf8BhAHIAYYB/wEpAaABLAH/ATYBpAE5Af8BNgGk
|
||||
ATkB/wEqAZoBLQH/ASEBjAEjAf8B2wHsAdtB/wHoAfUB6AH/AUsBsAFNAf8BJgGYASkB/wEiAZIBJAH/
|
||||
ASIBkgEkAf8BEwGIARUB/wFqAbQBawH/A+IB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/5B/wP+Af8BbQHA
|
||||
AW8B/wEmAZgBKQH/AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/AUkBpQFMAf8BmgH5AaEB/wF4AfIBgQH/
|
||||
AXoB8gGBAf8BegHyAYEB/wFaAeABYwH/AVkBzwFhAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEmAZgBKQH/
|
||||
AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/AUkBpQFMAf8BaQG7AWsB/wEuAaIBMgH/ATYBpAE5Af8BNgGk
|
||||
ATkB/wEiAZIBJAH/AT8BnQFBAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEmAZgBKQH/AR8BigEhAf8BIgGS
|
||||
ASQB/wEXAYwBGQH/AUkBpQFMAf8BaQG7AWsB/wEuAaIBMgH/ATYBpAE5Af8BNgGkATkB/wEiAZIBJAH/
|
||||
AT4BmwFAAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEjAZkBJgH/AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/
|
||||
AUkBpQFMAf8B9QH0AfUB/wPxAf8D8QH/A/EB/wPxAf8B9QH0AfUB/wP+Qf8D/gH/AdIB6gHSAf8BuAHd
|
||||
AbkB/wGzAdsBtAH/AbMB2wG0Af8BswHbAbQB/wHBAeIBwgH/Ad0B+wHgAf8B0QH6AdQB/wHRAfoB1AH/
|
||||
AdQB/AHYAf8ByAH0AcwB/wHIAfQBzAH/A/5B/wP+Af8B0gHqAdIB/wG5AeABugH/AbMB2wG0Af8BswHb
|
||||
AbQB/wGzAdsBtAH/AcEB4gHCAf8ByQHiAckB/wG5AeABugH/AbkB4AG6Af8BuQHgAboB/wGzAdsBtAH/
|
||||
AcEB4gHCAf8D/kH/A/4B/wHSAeoB0gH/AbkB4AG6Af8BswHbAbQB/wGzAdsBtAH/AbMB2wG0Af8BvwHg
|
||||
AcAB/wHJAeIByQH/AbkB4AG6Af8BuQHgAboB/wG5AeABugH/AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/
|
||||
AdIB6gHSAf8BuAHdAbkB/wGzAdsBtAH/AbMB2wG0Af8BswHbAbQB/wHBAeIBwgH/A+kB/wPiAf8D4gH/
|
||||
A+IB/wPiAf8D7AH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0AWsB/wFqAbQBawH/
|
||||
AX8BvAGBAf8B7QHoAe0B/wHoAeQB6AH/AegB5AHoAf8B6AHkAegB/wHoAeQB6AH/AfEB7AHxAf8D/kH/
|
||||
A/4B/wGkAdgBpQH/AXABuQFyAf8BagG0AWsB/wFqAbQBawH/AWoBtAFrAf8BfwG8AYEB/wGSAdABkwH/
|
||||
AXwBwgF9Af8BfAHCAX0B/wF8AcIBfQH/AWkBuwFrAf8BiQHCAYoB/wP+Qf8D/gH/AaQB2AGlAf8BcAG5
|
||||
AXIB/wFqAbQBawH/AWoBtAFrAf8BagG0AWsB/wF/AcEBgQH/AZIB0AGTAf8BfAHCAX0B/wF8AcIBfQH/
|
||||
AXwBwgF9Af8BaQG7AWsB/wGJAcIBigH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0
|
||||
AWsB/wFqAbQBawH/AX8BvAGBAf8D4gH/A9YB/wPZAf8D2QH/A9YB/wPcAf8D/kH/A/4B/wFiAboBYwH/
|
||||
AR8BkgEhAf8BGgGMARwB/wEcAZABHgH/ARMBiAEVAf8BSQGlAUwB/wPiAf8D1gH/A9kB/wPZAf8D1gH/
|
||||
A9wB/wP+Qf8B+QH8AfkB/wFiAboBYwH/AR8BkgEhAf8BGgGMARwB/wEcAZABHgH/ARMBiAEVAf8BSQGl
|
||||
AUwB/wFpAbsBawH/ASkBoAEsAf8BMgGjATQB/wEyAaMBNAH/ARwBkAEeAf8BNAGVATYB/wH5AfwB+UH/
|
||||
AfkB/AH5Af8BYgG6AWMB/wEfAZIBIQH/ARoBjAEcAf8BHAGQAR4B/wETAYgBFQH/AUkBpQFMAf8BaQG7
|
||||
AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B+QH8AflB/wH7Af4B/AH/
|
||||
AWIBugFjAf8BHwGSASEB/wEaAYwBHAH/ARwBkAEeAf8BEwGIARUB/wFJAaUBTAH/A+kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/lB/wHgAfEB4QH/AUMBqwFFAf8BKgGaAS0B/wEiAZIBJAH/ASIBkgEkAf8BGgGM
|
||||
ARwB/wFwAbkBcgH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wHgAfEB4QH/AUMBqwFFAf8BKgGa
|
||||
AS0B/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wFwAbkBcgH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/
|
||||
ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8B5wH1AegB/wFDAasBRQH/ASoBmgEtAf8BIgGS
|
||||
ASQB/wEiAZIBJAH/ARcBjAEZAf8BcAG5AXIB/wGJAcgBigH/ATIBowE0Af8BOwGpAT0B/wE7AakBPQH/
|
||||
ATIBowE0Af8BHwGKASEB/wHXAeoB2EH/AeAB8QHhAf8BQwGrAUUB/wEqAZoBLQH/ASIBkgEkAf8BIgGS
|
||||
ASQB/wEXAYwBGQH/AXABuQFyAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D7AH/A/45/wP+Af8BqwHY
|
||||
AawB/wEjAZkBJgH/AScBlgEpAf8BJwGWASkB/wEnAZYBKQH/ARoBjAEcAf8BmQHLAZkB/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wPsAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/
|
||||
AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp
|
||||
AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/
|
||||
AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp
|
||||
AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/
|
||||
AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/A/4B/wPcAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D/jn/
|
||||
AfkB/AH5Af8B2wHsAdsB/wF/AcEBgQH/AScBlgEpAf8BHwGSASEB/wEiAZIBJAH/ASoBmgEtAf8B2wHs
|
||||
AdsB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A/45/wH5AfwB+QH/AdsB7AHbAf8BfwHB
|
||||
AYEB/wEnAZYBKQH/AR8BkgEhAf8BIgGSASQB/wEqAZoBLQH/AdsB7AHbAf8B5wH1AegB/wFKAawBTQH/
|
||||
ATsBqQE9Af8BMgGjATQB/wEyAaMBNAH/AWEBsQFiAf8ByQHiAckB/wP+Of8B+QH8AfkB/wHbAewB2wH/
|
||||
AX8BwQGBAf8BJwGWASkB/wEfAZIBIQH/ASIBkgEkAf8BKgGaAS0B/wHbAewB2wH/AeAB8QHhAf8BSwGw
|
||||
AU0B/wE7AakBPQH/ATIBowE0Af8BMgGjATQB/wFnAbYBaQH/AckB4gHJAf8B+QH8Afk5/wH5AfwB+QH/
|
||||
AdsB7AHbAf8BfwHBAYEB/wEnAZYBKQH/AR8BkgEhAf8BIgGSASQB/wEqAZoBLQH/AdsB7AHbAf8D/gH/
|
||||
A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/A+kB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/
|
||||
AckB4gHJAf8BWwGxAV0B/wETAYgBFQH/AWEBsQFiAf8D/gH/A/4B/wPiAf8D1gH/A+IB/wPxAf8D+QH/
|
||||
A+IB/wPpAf8D/jH/A/4B/wGJAcgBigH/AVsBsQFdAf8B0gHqAdIB/wHJAeIByQH/AVsBsQFdAf8BEwGI
|
||||
ARUB/wFhAbEBYgH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHqAfgB6wH/
|
||||
AYMB4QGJAf8BhQHaAYoB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/AckB4gHJAf8BWwGx
|
||||
AV0B/wETAYgBFQH/AWEBsQFiAf8D/gH/A/4B/wF8AcIBfQH/ASkBoAEsAf8BWwGxAV0B/wG5AeABugH/
|
||||
AeAB8QHhAf8BYQGxAWIB/wF0AbUBdQH/A/4x/wP+Af8BiQHIAYoB/wFbAbEBXQH/AdIB6gHSAf8ByQHi
|
||||
AckB/wFbAbEBXQH/ARMBiAEVAf8BYQGxAWIB/wP+Af8D/gH/AfUB9AH1Af8D7AH/A/kB/wPsAf8D3AH/
|
||||
A9kB/wPZAf8D7AH/A/4p/wP+Af8BoAHRAaEB/wEjAZkBJgH/ASIBkgEkAf8BKgGaAS0B/wF8AcIBfQH/
|
||||
AdIB6gHSAf8BoAHRAaEB/wHBAeIBwgH/A/4B/wP+Af8B9QH0AfUB/wPsAf8D+QH/A+wB/wPcAf8D2QH/
|
||||
A9kB/wPsAf8D/in/A/4B/wGgAdEBoQH/ASIBkgEkAf8BIgGSASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHq
|
||||
AdIB/wGgAdEBoQH/AcEB4gHCAf8D/gH/A/4B/wHLAegBywH/AZoB0gGbAf8B4AH4AeIB/wHFAfoByQH/
|
||||
AZIB+wGZAf8BagHoAXQB/wE1AcUBPgH/AZsB4gGgAf8D/in/A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGS
|
||||
ASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/AcEB4gHCAf8D/gH/A/4B/wHOAesB0AH/
|
||||
AZoB0gGbAf8B3AHwAd0B/wGaAdIBmwH/AUUBsAFHAf8BJgGYASkB/wESAYQBFAH/AZABxQGRAf8D/in/
|
||||
A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGSASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/
|
||||
AcEB4gHCAf8D/gX/A/4B/wH1AfQB9QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wP+Af8D/hn/
|
||||
A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGc
|
||||
ATEB/wG4Ad0BuQH/A/4J/wP+Af8B9QH0AfUB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/
|
||||
A/4Z/wP+Af8D/gH/AZkBywGZAf8BHAGQAR4B/wEqAZoBLQH/AS4BnAExAf8BKgGaAS0B/wEfAZIBIQH/
|
||||
AS4BnAExAf8BuAHdAbkB/wP+Cf8D/gH/AeoB+AHrAf8BkgH7AZkB/wGDAfkBjAH/AYMB+QGMAf8BiQH6
|
||||
AZEB/wFqAegBdAH/ATUBxQE+Af8BjwHdAZQB/wP+Af8D/hn/A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/
|
||||
ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGcATEB/wG4Ad0BuQH/A/4J/wP+Af8B0gHq
|
||||
AdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/
|
||||
A/4B/wP+Gf8D/gH/A/4B/wGZAcsBmQH/ARwBkAEeAf8BKgGaAS0B/wEuAZwBMQH/ASoBmgEtAf8BHwGS
|
||||
ASEB/wEuAZwBMQH/AbgB3QG5Af8D/gn/A/4B/wP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D6QH/
|
||||
A/EB/wPsAf8D+QH/A/4B/wP+Af8D/gH/AfkB/AH5Af8B4AHvAeAB/wGJAcIBigH/AZYByQGYAf8BqgHS
|
||||
AasB/wEjAZkBJgH/AS4BnAExAf8BLgGcATEB/wEqAZoBLQH/ASYBmAEpAf8BMQGdATMB/wHSAeoB0gH/
|
||||
A/4J/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/
|
||||
A/4B/wH5AfwB+QH/AeAB7wHgAf8BiQHCAYoB/wGWAckBmAH/AaoB0gGrAf8BIwGZASYB/wEuAZwBMQH/
|
||||
AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AS4BnAExAf8B0gHqAdIB/wP+Cf8D/gH/AeoB+AHrAf8BkgH7
|
||||
AZkB/wGDAfkBjAH/AYkB+gGRAf8BiQH6AZEB/wGJAfoBkQH/AWoB6AF0Af8BmAHlAZwB/wH1AfQB9QH/
|
||||
A+wB/wP5Af8D/gH/A/4B/wP+Af8B+QH8AfkB/wHgAfEB4QH/AYkBwgGKAf8BlgHJAZgB/wGqAdIBqwH/
|
||||
ASMBmQEmAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wEuAZwBMQH/AdIB6gHSAf8D/gn/
|
||||
A/4B/wHgAfEB4QH/AUsBsAFNAf8BOAGoAToB/wE/AakBQQH/ATsBqQE9Af8BPwGpAUEB/wEjAZkBJgH/
|
||||
AYkBwgGKAf8BqgHSAasB/wGCAb0BgwH/AdsB7AHbAf8B+QH8AfkB/wP+Af8D/gH/A/4B/wHgAfEB4QH/
|
||||
AZ4B8wGkAf8BqQHpAa0B/wGqAdIBqwH/ASIBkgEkAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGY
|
||||
ASkB/wEuAZwBMQH/AdIB6gHSAf8D/g3/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/
|
||||
A9YB/wPZAf8D3AH/AfgB8gH4Af8BqgHSAasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/
|
||||
AdIB6gHSAf8BcgG8AXQB/wEmAZgBKQH/AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/
|
||||
A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/A9YB/wPZAf8D3AH/AfgB8gH4Af8BqgHS
|
||||
AasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/AdIB6gHSAf8BcgG8AXQB/wEmAZgBKQH/
|
||||
AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/A/4B/wHYAfoB2wH/AYkB+gGRAf8BiQH6
|
||||
AZEB/wGJAfoBkQH/AYMB+QGMAf8BmgH5AaEB/wHwAfkB8QH/AeEB3gHhAf8D1gH/AdwB2gHcAf8D3AH/
|
||||
AfgB8gH4Af8BqgHSAasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/AdIB6gHSAf8BcgG8
|
||||
AXQB/wEmAZgBKQH/AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/A/4B/wG5AeABugH/
|
||||
ATsBqQE9Af8BOwGpAT0B/wE/AakBQQH/ATYBpAE5Af8BXwG6AWEB/wHgAfEB4QH/AUIBogFEAf8BEAGI
|
||||
AREB/wEfAYoBIQH/ATQBlQE2Af8BmQHLAZkB/wG5AewBvAH/AUwBzQFUAf8BTAHNAVQB/wFMAc0BVAH/
|
||||
AWIB4gFsAf8B4AH4AeIB/wFyAbwBdAH/ASYBmAEpAf8BLgGcATEB/wEqAZoBLQH/ASYBmAEpAf8BqwHY
|
||||
AawB/wP+Ff8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/
|
||||
AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGj
|
||||
ATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGa
|
||||
AS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/
|
||||
AdEB+gHUAf8BiQH6AZEB/wGDAfkBjAH/AYMB+QGMAf8B0QH6AdQB/wHxAewB8QH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/
|
||||
AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/AbMB2wG0Af8BOwGp
|
||||
AT0B/wE4AagBOgH/ATYBpAE5Af8BuQHgAboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/
|
||||
ARwBkAEeAf8BhQHCAYYB/wG0AfMBuAH/AVQB4AFdAf8BagHoAXQB/wFxAesBegH/AWoB6AF0Af8BngHz
|
||||
AaQB/wHSAeoB0gH/ATIBowE0Af8BJgGYASkB/wEqAZoBLQH/AaAB0QGhAf8D/h3/A/4B/wPxAf8D3AH/
|
||||
A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGk
|
||||
ATkB/wE2AaQBOQH/ATIBowE0Af8BKgGaAS0B/wG5AeABugH/AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/
|
||||
A/4h/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfEB7AHxAf8BmgHS
|
||||
AZsB/wEpAaABLAH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/ASoBmgEtAf8BuQHgAboB/wGJAcgBigH/
|
||||
ATYBpAE5Af8BswHbAbQB/wP+If8D/gH/AdgB+gHbAf8BkgH7AZkB/wGkAfoBqwH/AfUB9AH1Af8B3AHa
|
||||
AdwB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/
|
||||
ATIBowE0Af8BKgGaAS0B/wG5AeABugH/AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/A/4h/wP+Af8BwQHi
|
||||
AcIB/wFLAbABTQH/AW0BwAFvAf8B0gHqAdIB/wFDAasBRQH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/
|
||||
AS4BogEyAf8BkgHJAZMB/wHFAfoByQH/AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AXEB6wF6Af8BagHo
|
||||
AXQB/wHRAfoB1AH/AYUBwgGGAf8BNgGkATkB/wGzAdsBtAH/A/4l/wP+Af8D+QH/A/kB/wPiAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8D+QH/A/kB/wPiAf8D1gH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BMgGj
|
||||
ATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8B6gH4AesB/wHqAfgB6wH/
|
||||
AegB5AHoAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/
|
||||
ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8B4AHx
|
||||
AeEB/wHcAfAB3QH/AXwBwgF9Af8BKQGgASwB/wE7AakBPQH/ATsBqQE9Af8BOwGpAT0B/wEuAaIBMgH/
|
||||
AZIByQGTAf8BxQH6AckB/wF1AfEBfgH/AXoB8gGBAf8BegHyAYEB/wFxAesBegH/AWoB6AF0Af8BggHx
|
||||
AYoB/wHgAfEB4QH/AdwB8AHdAf8D/i3/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/
|
||||
AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHl
|
||||
AcgB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/AfEB7AHxAf8BmgHS
|
||||
AZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHlAcgB/wP+Af8D/jH/
|
||||
A/4B/wP+Af8B9QH0AfUB/wHoAeQB6AH/A9wB/wPZAf8D1gH/A9YB/wHxAewB8QH/AZoB0gGbAf8BIwGZ
|
||||
ASYB/wEpAaABLAH/ATIBowE0Af8BQwGrAUUB/wF8AcIBfQH/AccB5QHIAf8D/gH/A/4x/wP+Af8D/gH/
|
||||
Ac4B6wHQAf8BhAHIAYYB/wFLAbABTQH/ATgBqAE6Af8BLgGiATIB/wEnAaABKQH/AYkByAGKAf8BxQH6
|
||||
AckB/wF1AfEBfgH/AXUB8QF+Af8BdQHxAX4B/wGCAfEBigH/AaUB8gGqAf8B2AH6AdsB/wP+Af8D/jn/
|
||||
A/4B/wP+Af8D/gH/A/EB/wPpAf8D4gH/AfgB8gH4Af8BswHbAbQB/wFpAbsBawH/AY4BzQGQAf8BuQHg
|
||||
AboB/wHoAfUB6AH/A/4B/wP+Qf8D/gH/A/4B/wP+Af8D8QH/A+kB/wPiAf8B+AHyAfgB/wGzAdsBtAH/
|
||||
AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/A/5B/wP+Af8D/gH/A/4B/wH1AfQB9QH/
|
||||
A+wB/wPiAf8B+AHyAfgB/wGzAdsBtAH/AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/
|
||||
A/5B/wP+Af8D/gH/AeoB+AHrAf8BuQHgAboB/wGSAdABkwH/AW0BwAFvAf8BqgHSAasB/wHRAfoB1AH/
|
||||
AZ4B8wGkAf8BtAHzAbgB/wHRAfoB1AH/AfAB+QHxAf8D/gH/A/5J/wP+Af8D9gH/A+wB/wPjAf8D9QH/
|
||||
A/cB/wPiAf8D6wH/A/YB/wP+Sf8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/A/EB/wPiAf8D4gH/
|
||||
A+wB/wP5Af8D/gH/A/5B/wP+Af8D/gH/A/kB/wPxAf8D6QH/A+IB/wPsAf8D8QH/A+IB/wPiAf8D7AH/
|
||||
A/kB/wP+Af8D/kH/A/4B/wP+Af8D+QH/A/EB/wPpAf8D4gH/A+wB/wPxAf8D4gH/A+IB/wPsAf8D+QH/
|
||||
A/4B/wP+Qf8D+wH/A+cB/wPbAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPbAf8D5gH/
|
||||
A/k5/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D8QH/A/4B/wP+Mf8D/gH/A/4B/wH1AfQB9QH/A+IB/wPZAf8D2QH/A9kB/wPWAf8D6QH/
|
||||
A+wB/wPWAf8D2QH/A9kB/wPZAf8D4gH/A/EB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPiAf8D2QH/
|
||||
A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A+IB/wPxAf8D/gH/A/4x/wP9Af8D+wH/
|
||||
A/MB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/AB/wP0Af8D2gH/A9oB/wPaAf8D2gH/A9oB/wPsAf8D/QH/
|
||||
A/wt/wP+Af8B9QH0AfUB/wH1AfQB9QH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wPsAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A/4p/wP+Af8B9QH0AfUB/wH1AfQB9QH/
|
||||
A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wPiAf8B9QH0
|
||||
AfUB/wH1AfQB9QH/A/4p/wP+Af8B9QH0AfUB/wH1AfQB9QH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wHoAeQB6AH/AdAB8wHTAf8BzQHzAdAB/wP+Kf8D9wH/
|
||||
A9sB/wPeAf8D/gH/A+IB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPaAf8D3QH/
|
||||
A/0B/wPlAf8D2gH/A/Ul/wP+Af8D8QH/A9kB/wPcAf8D+QH/A+IB/wPZAf8D2QH/A9kB/wPZAf8D6QH/
|
||||
A+wB/wPZAf8D2QH/A9kB/wPZAf8D3AH/AfUB9AH1Af8D4gH/A9kB/wPsAf8D/iH/A/4B/wPxAf8D2QH/
|
||||
A9wB/wP5Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPcAf8B9QH0
|
||||
AfUB/wPiAf8D2QH/A+wB/wP+If8D/gH/A/EB/wPZAf8D3AH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9wB/wHzAfcB8wH/AWwB2wF0Af8BQgHLAUoB/wGsAeoBsAH/
|
||||
A/4h/wPzAf8D2gH/A9oB/wPaAf8D8gH/A/sB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/
|
||||
A9oB/wPaAf8D9QH/A/kB/wPaAf8D2gH/A9oB/wPwHf8D/gH/A+wB/wPZAf8D2QH/A9kB/wPsAf8D8QH/
|
||||
A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/
|
||||
A+kB/wP+Gf8D/gH/A+wB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/
|
||||
A9YB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A+kB/wP+Gf8D/gH/A+wB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wHxAewB8QH/
|
||||
AbQB7AG4Af8BQgHLAUoB/wFCAcsBSgH/ATwBywFFAf8BmwHiAaAB/wP+Gf8D9wH/A9oB/wPaAf8D2gH/
|
||||
A9oB/wPcAf8D/QH/A+kB/wPaAf8D3QH/A+UB/wP6Af8D+wH/A+UB/wPeAf8D2gH/A+EB/wP+Af8D4AH/
|
||||
A9oB/wPaAf8D2gH/A9oB/wP0Ff8D/gH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D4gH/
|
||||
A9YB/wPcAf8D4gH/A/EB/wH1AfQB9QH/A+IB/wPcAf8D2QH/A9wB/wP5Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/hH/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wH1AfQB9QH/A+IB/wPWAf8D3AH/
|
||||
A+IB/wPxAf8B9QH0AfUB/wPiAf8D3AH/A9kB/wPcAf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D7AH/
|
||||
A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B9QH0AfUB/wPiAf8D1gH/A9wB/wPiAf8D8QH/
|
||||
AfUB9AH1Af8D4gH/A9wB/wPZAf8B4QHeAeEB/wHqAfgB6wH/AVoB3QFjAf8BQgHQAUsB/wFJAdIBUgH/
|
||||
AUIB0AFLAf8BPAHLAUUB/wGpAekBrQH/A/4R/wP+Af8D3AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D6AH/
|
||||
A/0B/wP5Gf8D+QH/A/wB/wPwAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPbAf8D/Q3/A/4B/wP5Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/
|
||||
AfUB9AH1Af8D6QH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/
|
||||
AfUB9AH1Af8D6QH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/
|
||||
AfgB8gH4Af8BvAH7AcEB/wFaAeABYwH/AUkB0gFSAf8BSQHSAVIB/wFJAdIBUgH/AUIBywFKAf8BQgHL
|
||||
AUoB/wHWAfQB2AH/A/4N/wP+Af8D8AH/A9sB/wPaAf8D2gH/A9oB/wPaAf8D9Cn/A/YB/wPbAf8D2gH/
|
||||
A9oB/wPaAf8D2gH/A+oB/wP+Df8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/gH/
|
||||
A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D/gn/A/4B/wP5Af8D6QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D+QH/A/4J/wP+Af8D+QH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Af8D/hn/
|
||||
A/4B/wP+Af8B0QH6AdQB/wGaAfkBoQH/AWsB5QF0Af8BSAHSAVEB/wFCAdABSwH/AUIB0AFLAf8BiAHi
|
||||
AY8B/wHgAfgB4gH/A/4J/wP6Af8D4QH/A/oB/wP9Af8D6QH/A9oB/wPaAf8D+TH/A/sB/wPbAf8D2gH/
|
||||
A+QB/wP8Af8D/AH/A+UB/wP5Bf8D/gH/A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPZAf8D2QH/
|
||||
A/EB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A/EB/wP+Af8D/gH/
|
||||
A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPZAf8D2QH/A/EB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/
|
||||
A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A/EB/wP+Af8D/gH/A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/
|
||||
A+IB/wPZAf8D2QH/A/EB/wP+Kf8D/gH/Ad0B+wHgAf8BmgH5AaEB/wFaAeABYwH/AXQB3AF7Af8BzQHz
|
||||
AdAB/wHJAeIByQH/AVQBpwFVAf8BqgHSAasB/wP+Bf8D6AH/A9oB/wPaAf8D6AH/A/0B/wP5Af8D9zn/
|
||||
A/cB/wP2Af8D/gH/A+4B/wPbAf8D2gH/A+UF/wP+Af8D4gH/A9YB/wPZAf8D4gH/AfUB9AH1Af8D8QH/
|
||||
A+wB/wP+Mf8D/gH/A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/A+IB/wP+Af8D/gH/A+IB/wPWAf8D2QH/
|
||||
A+IB/wH1AfQB9QH/A/EB/wPsAf8D/jH/A/4B/wPsAf8D8QH/A/kB/wPpAf8D2QH/A9YB/wPiAf8D/gH/
|
||||
A/4B/wPiAf8D1gH/A9kB/wPiAf8B9QH0AfUB/wPxAf8D7AH/A/4x/wP+Af8B0QH6AdQB/wHUAfwB2AH/
|
||||
AdsB7AHbAf8BcgG8AXQB/wEfAYoBIQH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/A9wB/wPaAf8D2gH/
|
||||
A9oB/wPaAf8D9kH/A/oB/wPdAf8D2gH/A9oB/wPaAf8D2wH/A/0B/wP5Af8D3AH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D/jn/A/4B/wPxAf8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D+QH/A9wB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D7AH/A/45/wP+Af8D8QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D+QH/A/kB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A+wB/wP+Of8D/gH/AbkB4AG6Af8BQAGnAUIB/wETAYgBFQH/AR8BigEhAf8BGgGM
|
||||
ARwB/wEiAZIBJAH/AdIB6gHSAf8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D9kH/A/kB/wPaAf8D2gH/
|
||||
A9oB/wPaAf8D2gH/A/UB/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wPsAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/45/wP+Af8D7AH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Of8D/gH/
|
||||
AbMB2wG0Af8BMgGjATQB/wEiAZIBJAH/ASIBkgEkAf8BIgGSASQB/wETAYgBFQH/AZIByQGTAf8D7QH/
|
||||
A9oB/wPaAf8D2gH/A9oB/wPcSf8D3QH/A9oB/wPaAf8D2gH/A9oB/wPrAf8D6QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D+UH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wPpAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wP5Qf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A/lB/wHoAfUB6AH/AUsBsAFNAf8BJgGYASkB/wEiAZIBJAH/ASIBkgEkAf8BEwGIARUB/wFqAbQBawH/
|
||||
A+YB/wPaAf8D2gH/A9oB/wPaAf8D4kn/A+YB/wPaAf8D2gH/A9oB/wPaAf8D4wH/A+IB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D4gH/A/5B/wP+Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D4gH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D/kH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wPiAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A+IB/wP+Qf8D/gH/AW0BwAFvAf8BJgGYASkB/wEfAYoBIQH/AR8BkgEhAf8BFwGMARkB/wFJAaUBTAH/
|
||||
A/sB/wP5Af8D+QH/A/kB/wP5Af8D/Un/A/0B/wP5Af8D+QH/A/kB/wP5Af8D+wH/AfUB9AH1Af8D8QH/
|
||||
A/EB/wPxAf8D8QH/AfUB9AH1Af8D/kH/A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/
|
||||
AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/AfUB9AH1Af8D/kH/A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/
|
||||
AfQB8QHzAf8B9QH0AfUB/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/A/5B/wP+Af8B0gHq
|
||||
AdIB/wG4Ad0BuQH/AbMB2wG0Af8BswHbAbQB/wGzAdsBtAH/AcEB4gHCAf8D8AH/A+kB/wPqAf8D6gH/
|
||||
A+kB/wP0Sf8D9gH/A+kB/wPqAf8D6gH/A+kB/wPvAf8D6QH/A+IB/wPiAf8D4gH/A+IB/wPsAf8D/kH/
|
||||
A/4B/wPsAf8D4gH/A+IB/wPiAf8D4gH/A+kB/wPpAf8D4gH/A+IB/wPiAf8D4gH/A+wB/wP+Qf8D/gH/
|
||||
AcUB+gHJAf8BlAHwAZoB/wGDAeEBiQH/AYMB4QGJAf8BgQHgAYYB/wGSAeYBmAH/A+kB/wPiAf8D4gH/
|
||||
A+IB/wPiAf8D7AH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0AWsB/wFqAbQBawH/
|
||||
AX8BvAGBAf8D5gH/A9oB/wPaAf8D2gH/A9oB/wPhSf8D5QH/A9oB/wPaAf8D2gH/A9oB/wPjAf8D4gH/
|
||||
A9YB/wPZAf8D2QH/A9YB/wPcAf8D/kH/A/4B/wPiAf8D1gH/A9kB/wPZAf8D1gH/A+IB/wPiAf8D1gH/
|
||||
A9kB/wPZAf8D1gH/A9wB/wP+Qf8D/gH/AZoB+QGhAf8BXwHiAWkB/wFJAdIBUgH/AUsB2QFUAf8BQgHQ
|
||||
AUsB/wFsAdsBdAH/A+IB/wPWAf8D2QH/A9kB/wPWAf8D3AH/A/5B/wP+Af8BYgG6AWMB/wEfAZIBIQH/
|
||||
ARoBjAEcAf8BHAGQAR4B/wETAYgBFQH/AUkBpQFMAf8D7gH/A9oB/wPaAf8D2gH/A9oB/wPbAf8D/kX/
|
||||
A90B/wPaAf8D2gH/A9oB/wPaAf8D6wH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wP5Af8D3AH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPiAf8D6QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D+UH/Ae8B/AHwAf8BggHx
|
||||
AYoB/wFiAeIBbAH/AVUB2wFeAf8BVQHbAV4B/wFJAdIBUgH/AYwB5gGSAf8D6QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D+UH/AeAB8QHhAf8BQwGrAUUB/wEqAZoBLQH/ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/
|
||||
AXABuQFyAf8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D9kH/A/kB/wPaAf8D2gH/A9oB/wPaAf8D2gH/
|
||||
A/YB/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wPsAf8D/jn/A/4B/wPsAf8D1gH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D7AH/A/45/wP+Af8BxQH6AckB/wFnAewBcQH/
|
||||
AVoB3QFjAf8BWgHdAWMB/wFVAdsBXgH/AUsB2QFUAf8BsAHsAbQB/wPxAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wPsAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/AScBlgEpAf8BGgGM
|
||||
ARwB/wGZAcsBmQH/A/4B/wPdAf8D2gH/A9oB/wPaAf8D5gH/A/1B/wP+Af8D7AH/A9sB/wPaAf8D2gH/
|
||||
A9wB/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wP+Of8D/gH/A/kB/wPpAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A/kB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A/45/wH5AfwB+QH/
|
||||
AeAB+AHiAf8BpQHyAaoB/wFaAd0BYwH/AVUB2wFeAf8BVQHbAV4B/wFaAd0BYwH/AeAB+AHiAf8D+QH/
|
||||
A9wB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wP+Of8B+QH8AfkB/wHbAewB2wH/AX8BwQGBAf8BJwGW
|
||||
ASkB/wEfAZIBIQH/ASIBkgEkAf8BKgGaAS0B/wHbAewB2wX/A+oB/wPaAf8D4AH/A/kB/wP+Af8D6gH/
|
||||
A/A5/wPzAf8D5AH/A/0B/wP8Af8D5QH/A9oB/wPnBf8D/gH/A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/
|
||||
A+kB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8D4gH/
|
||||
A9YB/wPiAf8D8QH/A/kB/wPiAf8D6QH/A/4x/wP+Af8BiQHIAYoB/wFZAawBWwH/AckB4gHJAf8B2AH6
|
||||
AdsB/wGDAesBiwH/AUsB2QFUAf8BgwHhAYkB/wP+Af8D/gH/A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/
|
||||
A+kB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/AckB4gHJAf8BWwGxAV0B/wETAYgBFQH/
|
||||
AWEBsQFiAf8D/gX/A/wB/wPyAf8D/gH/A/MB/wPcAf8D2gH/A9oB/wP3Mf8D+QH/A9oB/wPaAf8D2gH/
|
||||
A+4B/wP+Af8D9gH/A/sF/wP+Af8B9QH0AfUB/wPsAf8D+QH/A+wB/wPcAf8D2QH/A9kB/wPsAf8D/in/
|
||||
A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/kB/wPxAf8B9QH0AfUB/wP+Af8D/gH/AfUB9AH1Af8D7AH/
|
||||
A/kB/wPsAf8D3AH/A9kB/wPZAf8D7AH/A/4p/wP+Af8BoAHRAaEB/wEjAZkBJgH/ASIBkgEkAf8BKgGa
|
||||
AS0B/wF5AbwBewH/AdcB6gHYAf8BvAHxAcAB/wHQAfMB0wH/A/4B/wP+Af8B9QH0AfUB/wPsAf8D+QH/
|
||||
A+wB/wPcAf8D2QH/A9kB/wPsAf8D/in/A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGSASQB/wEqAZoBLQH/
|
||||
AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/AcEB4gHCAf8D/gn/A/wB/wPeAf8D2gH/A9oB/wPaAf8D2gH/
|
||||
A9oB/wPyKf8D9gH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D2wH/A/oN/wP+Af8B9QH0AfUB/wPcAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPxAf8D/gn/A/4B/wH1AfQB9QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wP+Af8D/hn/
|
||||
A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGc
|
||||
ATEB/wG4Ad0BuQH/A/4J/wP+Af8B9QH0AfUB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/
|
||||
A/4Z/wP+Af8D/gH/AZkBywGZAf8BHAGQAR4B/wEqAZoBLQH/AS4BnAExAf8BKgGaAS0B/wEfAZIBIQH/
|
||||
AS4BnAExAf8BuAHdAbkB/wP+Df8D/gH/A90B/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/IB/wP6Af8D9Rn/
|
||||
A/YB/wP2Af8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D3AH/A/0N/wP+Af8D+QH/A9wB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/A/4B/wH7Af4B/AH/AeAB8QHhAf8BmwHi
|
||||
AaAB/wGhAeoBpgH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D+QH/A/4J/wP+Af8D+QH/
|
||||
A9wB/wPZAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/A/4B/wH5AfwB+QH/
|
||||
AeAB7wHgAf8BiQHCAYoB/wGWAckBmAH/AaoB0gGrAf8BIwGZASYB/wEuAZwBMQH/AS4BnAExAf8BKgGa
|
||||
AS0B/wEmAZgBKQH/ATEBnQEzAf8B0gHqAdIB/wP+Cf8D/gH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wPpAf8D8QH/A+wB/wP5Af8D/gH/A/4B/wP+Af8B+QH8AfkB/wHgAe8B4AH/AYkBwgGKAf8BlgHJ
|
||||
AZgB/wGqAdIBqwH/ASMBmQEmAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wExAZ0BMwH/
|
||||
AdIB6gHSAf8D/hH/A/kB/wPaAf8D2gH/A9oB/wPaAf8D4gH/A/4B/wPgAf8D2gH/A9sB/wPhAf8D+AH/
|
||||
A/oB/wPhAf8D3AH/A9oB/wPcAf8D/QH/A+kB/wPaAf8D2gH/A9oB/wPaAf8D9xX/A/4B/wPxAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/A9YB/wPZAf8D3AH/AfgB8gH4Af8BtAHsAbgB/wFTAc0BWwH/
|
||||
AUgBzQFRAf8BQgHQAUsB/wFaAeABYwH/AeAB+AHiAf8B6AHkAegB/wPZAf8D2QH/A9kB/wPZAf8D8QH/
|
||||
A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A9wB/wPWAf8D2QH/A9wB/wH4AfIB+AH/
|
||||
AaoB0gGrAf8BNAGVATYB/wEhAYwBIwH/ARMBiAEVAf8BKgGaAS0B/wHSAeoB0gH/AXIBvAF0Af8BJgGY
|
||||
ASkB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wGrAdgBrAH/A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/
|
||||
A9kB/wPiAf8D+QH/A9wB/wPWAf8D2QH/A9wB/wH4AfIB+AH/AaoB0gGrAf8BNAGVATYB/wEhAYwBIwH/
|
||||
ARMBiAEVAf8BKgGaAS0B/wHSAeoB0gH/AXIBvAF0Af8BJgGYASkB/wEuAZwBMQH/ASoBmgEtAf8BJgGY
|
||||
ASkB/wGrAdgBrAH/A/4Z/wP3Af8D2gH/A9oB/wPaAf8D+gH/A/MB/wPaAf8D2gH/A9oB/wPaAf8D8AH/
|
||||
A/QB/wPaAf8D2gH/A9oB/wPaAf8D6gH/A/0B/wPbAf8D2gH/A9oB/wP0Hf8D/gH/A/EB/wPZAf8D2QH/
|
||||
A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/Aa0B8gGyAf8BVAHgAV0B/wFqAegBdAH/
|
||||
AXEB6wF6Af8BagHoAXQB/wGYAfMBnwH/AfUB9AH1Af8B3AHaAdwB/wPZAf8D2QH/A+wB/wP+Gf8D/gH/
|
||||
A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/AZIByQGTAf8BFwGR
|
||||
ARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/
|
||||
ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/
|
||||
A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/
|
||||
AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+If8D+gH/A9wB/wPmAf8D/QH/
|
||||
A9wB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/sB/wPvAf8D2wH/
|
||||
A/gl/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfEB7AHxAf8BwQH9
|
||||
AcUB/wF1AfEBfgH/AXoB8gGBAf8BeAHyAYEB/wFxAesBegH/AWoB6AF0Af8BygH5Ac0B/wHtAegB7QH/
|
||||
A9kB/wPxAf8D/iH/A/4B/wPxAf8D3AH/A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B8QHs
|
||||
AfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/ATIBowE0Af8BKgGaAS0B/wG5AeABugH/
|
||||
AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/A/4h/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/
|
||||
A9kB/wPZAf8D2QH/AfEB7AHxAf8BmgHSAZsB/wEpAaABLAH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/
|
||||
ASoBmgEtAf8BuQHgAboB/wGJAcgBigH/ATYBpAE5Af8BswHbAbQB/wP+Kf8D/gH/A/4B/wPrAf8D2gH/
|
||||
A9oB/wPaAf8D2gH/A9oB/wPwAf8D9AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D4wH/A/4B/wP+Lf8D/gH/
|
||||
A/kB/wP5Af8D4gH/A9YB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wHBAf0BxQH/AXUB8QF+Af8BegHy
|
||||
AYEB/wF6AfIBgQH/AXEB6wF6Af8BagHoAXQB/wGJAfMBkAH/AfAB+QHxAf8D+QH/A/4p/wP+Af8D+QH/
|
||||
A/kB/wPiAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/
|
||||
ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8D+QH/
|
||||
A/kB/wPiAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/
|
||||
ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/41/wP8Af8D6wH/
|
||||
A90B/wPaAf8D2gH/A9oB/wPwAf8D9AH/A9oB/wPaAf8D2gH/A90B/wPqAf8D+zn/A/4B/wP+Af8B9QH0
|
||||
AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/AfEB7AHxAf8BvAH7AcEB/wF1AfEBfgH/AXUB8QF+Af8BdQHx
|
||||
AX4B/wGCAfEBigH/AaUB8gGqAf8B2AH6AdsB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/
|
||||
A9kB/wPWAf8D1gH/AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/
|
||||
AXwBwgF9Af8BxwHlAcgB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/
|
||||
AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHl
|
||||
AcgB/wP+Af8D/kH/A/4B/wP5Af8D7wH/A+YB/wP1Af8D+AH/A+UB/wPvAf8D+QH/A/5J/wP+Af8D/gH/
|
||||
A/4B/wPxAf8D6QH/A+IB/wHxAewB8QH/Ac4B+gHRAf8BmgH5AaEB/wG0AfsBugH/AdEB+gHUAf8B8AH5
|
||||
AfEB/wP+Af8D/kH/A/4B/wP+Af8D/gH/A/EB/wPpAf8D4gH/AfgB8gH4Af8BswHbAbQB/wFpAbsBawH/
|
||||
AY4BzQGQAf8BuQHgAboB/wHoAfUB6AH/A/4B/wP+Qf8D/gH/A/4B/wP+Af8D8QH/A+kB/wPiAf8B+AHy
|
||||
AfgB/wGzAdsBtAH/AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/A/4h/wFCAU0BPgcA
|
||||
AT4DAAEoAwABeAMAAXgDAAEBAQABAQUAAYABBxYAA///AP8A/wD/AP8A/wD/AIgACw==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
115
WebsitePanel/Sources/Tools/WebsitePanel.LocalizationToolkit/Controls/TopLogoControl.Designer.cs
generated
Normal file
|
@ -0,0 +1,115 @@
|
|||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
partial class TopLogoControl
|
||||
{
|
||||
private System.Windows.Forms.Panel pnlLogo;
|
||||
private System.Windows.Forms.PictureBox imgLogo;
|
||||
private System.Windows.Forms.Label lblVersion;
|
||||
private LineBox line;
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
protected override void Dispose( bool disposing )
|
||||
{
|
||||
if( disposing )
|
||||
{
|
||||
if (components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
}
|
||||
base.Dispose( disposing );
|
||||
}
|
||||
|
||||
#region Designer generated code
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TopLogoControl));
|
||||
this.pnlLogo = new System.Windows.Forms.Panel();
|
||||
this.progressIcon = new WebsitePanel.LocalizationToolkit.ProgressIcon();
|
||||
this.lblVersion = new System.Windows.Forms.Label();
|
||||
this.imgLogo = new System.Windows.Forms.PictureBox();
|
||||
this.line = new WebsitePanel.LocalizationToolkit.LineBox();
|
||||
this.pnlLogo.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imgLogo)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pnlLogo
|
||||
//
|
||||
this.pnlLogo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pnlLogo.BackColor = System.Drawing.Color.White;
|
||||
this.pnlLogo.Controls.Add(this.progressIcon);
|
||||
this.pnlLogo.Controls.Add(this.lblVersion);
|
||||
this.pnlLogo.Controls.Add(this.imgLogo);
|
||||
this.pnlLogo.Location = new System.Drawing.Point(0, 0);
|
||||
this.pnlLogo.Name = "pnlLogo";
|
||||
this.pnlLogo.Size = new System.Drawing.Size(496, 63);
|
||||
this.pnlLogo.TabIndex = 2;
|
||||
//
|
||||
// progressIcon
|
||||
//
|
||||
this.progressIcon.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.progressIcon.Location = new System.Drawing.Point(452, 15);
|
||||
this.progressIcon.Name = "progressIcon";
|
||||
this.progressIcon.Size = new System.Drawing.Size(30, 30);
|
||||
this.progressIcon.TabIndex = 4;
|
||||
this.progressIcon.Visible = false;
|
||||
//
|
||||
// lblVersion
|
||||
//
|
||||
this.lblVersion.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
|
||||
this.lblVersion.ForeColor = System.Drawing.Color.Black;
|
||||
this.lblVersion.Location = new System.Drawing.Point(264, 36);
|
||||
this.lblVersion.Name = "lblVersion";
|
||||
this.lblVersion.Size = new System.Drawing.Size(93, 13);
|
||||
this.lblVersion.TabIndex = 2;
|
||||
this.lblVersion.Text = "v1.0";
|
||||
//
|
||||
// imgLogo
|
||||
//
|
||||
this.imgLogo.Image = ((System.Drawing.Image)(resources.GetObject("imgLogo.Image")));
|
||||
this.imgLogo.Location = new System.Drawing.Point(13, 7);
|
||||
this.imgLogo.Name = "imgLogo";
|
||||
this.imgLogo.Size = new System.Drawing.Size(251, 42);
|
||||
this.imgLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
|
||||
this.imgLogo.TabIndex = 0;
|
||||
this.imgLogo.TabStop = false;
|
||||
//
|
||||
// line
|
||||
//
|
||||
this.line.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.line.Location = new System.Drawing.Point(0, 61);
|
||||
this.line.Name = "line";
|
||||
this.line.Size = new System.Drawing.Size(496, 2);
|
||||
this.line.TabIndex = 3;
|
||||
this.line.TabStop = false;
|
||||
//
|
||||
// TopLogoControl
|
||||
//
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.Controls.Add(this.line);
|
||||
this.Controls.Add(this.pnlLogo);
|
||||
this.Name = "TopLogoControl";
|
||||
this.Size = new System.Drawing.Size(496, 64);
|
||||
this.pnlLogo.ResumeLayout(false);
|
||||
this.pnlLogo.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imgLogo)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
private ProgressIcon progressIcon;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
// Copyright (c) 2011, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.Reflection;
|
||||
|
||||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
/// <summary>
|
||||
/// Top logo
|
||||
/// </summary>
|
||||
internal partial class TopLogoControl : UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the TopLogoControl class.
|
||||
/// </summary>
|
||||
public TopLogoControl()
|
||||
{
|
||||
// This call is required by the Windows Form Designer.
|
||||
InitializeComponent();
|
||||
Version version = this.GetType().Assembly.GetName().Version;
|
||||
string strVersion;
|
||||
if (version.Revision == 0)
|
||||
{
|
||||
if (version.Build == 0)
|
||||
strVersion = version.ToString(2);
|
||||
else
|
||||
strVersion = version.ToString(3);
|
||||
}
|
||||
else
|
||||
{
|
||||
strVersion = version.ToString(4);
|
||||
}
|
||||
|
||||
lblVersion.Text = "v" + strVersion;
|
||||
}
|
||||
|
||||
internal void ShowProgress()
|
||||
{
|
||||
progressIcon.Visible = true;
|
||||
progressIcon.StartAnimation();
|
||||
}
|
||||
|
||||
internal void HideProgress()
|
||||
{
|
||||
progressIcon.Visible = false;
|
||||
progressIcon.StopAnimation();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,656 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="imgLogo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
Qk0+fAAAAAAAADYAAAAoAAAA+wAAACoAAAABABgAAAAAAAAAAAAjLgAAIy4AAAAAAAAAAAAA////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////AAAA////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////AAAA////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////AAAA////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////AAAA////////////////9PT0mZmZkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKS
|
||||
kpKSkpKSmZmZ9vb2////////////////tra2Z2dnPT09NjY2U1NTlJSU6Ojo////////////////////
|
||||
////////////8vLynp6eWFhYNzc3Ojo6aGhovb29////////////////////////6+vrk5OTUFBQMzMz
|
||||
PT09YmJirKys+/v7////vr6+kpKSs7Oz////////////+vr6paWlkpKSzMzM/////////////v7+p6en
|
||||
kpKSyMjI////////7OzslJSUkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSnJyc+Pj4////////+vr6
|
||||
qKioXV1dNzc3ODg4VlZWl5eX7+/v////1dXVkpKSn5+f+vr6////////////////////vLy8YWFhNzc3
|
||||
NTU1SUlJ2tra////5OTkkpKSl5eX7Ozs////////////////////////urq6ampqPj4+NjY2UVFRkJCQ
|
||||
5OTk////////////////////////3d3dkpKSmJiY8/Pz////////////////////////v7+/kpKSv7+/
|
||||
////////////////////////////////////////////////////////////5ubmkpKSkpKS3Nzc////
|
||||
////////////////////////////wMDAbW1tPz8/NTU1Tk5Oi4uL39/f////////////////////////
|
||||
////////////uLi4aGhoPj4+NTU1UlJSkpKS5ubm////////////////////////2trakpKSmpqa9PT0
|
||||
////////////4ODgkpKSmZmZ8PDw////////////////////////19fXkpKSmJiY8fHx////+Pj4oaGh
|
||||
kpKS09PT////////////////////+vr6oaGhU1NTMzMzOTk5Y2Nj9vb2////////////AAAA////////
|
||||
////////5OTkBQUFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6Ojo////////8PDwXV1d
|
||||
AAAAAAAAAAAABQUFAAAAAAAAJSUltbW1////////////////////////2traOjo6AAAAAAAAAgICAAAA
|
||||
AAAAAgICcnJy+/v7////////////2NjYMjIyAAAAAAAADAwMExMTAQEBAAAAUlJS7+/vVVVVAAAAYGBg
|
||||
////////////8vLyJCQkAAAAg4OD/////////////Pz8KSkpAAAAeXl5////////zs7OAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAABAQE7e3t////8PDwU1NTAAAAAAAABgYGFBQUBwcHAAAALy8v29vb
|
||||
j4+PAAAALS0t+fn5////////////////n5+fBwcHAAAAAQEBDg4OBAQEx8fH////vLy8AAAAAAAA0dHR
|
||||
////////////////9PT0ZGRkAQEBAAAAAAAABQUFAAAAAAAAIiIira2t////////////////////rKys
|
||||
AAAAAgIC4uLi////////////////////////YWFhAAAAYWFh////////////////////////////////
|
||||
////////////////////////////wcHBAAAAAAAAqqqq////////////////////////+fn5b29vBAQE
|
||||
AAAAAAAABQUFAAAAAAAAGxsbo6Oj////////////////////////8vLyYGBgAAAAAAAAAAAABQUFAAAA
|
||||
AAAAIyMjsrKy////////////////////paWlAAAABwcH5OTk////////////s7OzAAAABAQE29vb////
|
||||
/////////////////f39SUlJAAAASUlJ+vr6////7e3tGhoaAAAAkpKS/////////////////f39ampq
|
||||
AAAAAAAABwcHDAwMICAg8fHx////////////AAAA////////////////5eXlEBAQAAAAGBgYPDw8OTk5
|
||||
OTk5OTk5OTk5OTk5OTk5OTk5RkZG7+/v/////Pz8W1tbAAAABAQEa2trxcXF09PTsLCwPz8/AAAACwsL
|
||||
ubm5////////////////7u7uNDQ0AAAAGhoal5eXz8/Py8vLgYGBCQkJAAAAgoKC////////+Pj4QEBA
|
||||
AAAAEBAQmZmZ3d3d6Ojo0NDQfX19BgYGV1dXQEBAAAAAhYWF////////////8/PzLS0tAAAAiIiI////
|
||||
/////////Pz8MjIyAAAAf39/////////5OTkGhoaAAAAGRkZm5uboaGhoKCgoKCgoKCgoKCgoKCgqamp
|
||||
+fn5////c3NzAAAABAQEeHh41dXV6Ojo2NjYl5eXFxcXNDQ0YWFhAAAAUlJS////////////////7Ozs
|
||||
Hx8fAAAAT09PzMzM39/f09PT8/Pz////v7+/AAAACwsL09PT/////////////v7+ZWVlAAAAAgICZWVl
|
||||
w8PD09PTs7OzRUVFAAAACQkJsLCw////////////////sLCwAAAADQ0N4+Pj////////////////////
|
||||
////aGhoAAAAaGho////////////////////////////////////////////////////////////xMTE
|
||||
AAAAAAAArq6u////////////////////////c3NzAAAAAAAAXV1dv7+/09PTt7e3Tk5OAAAABQUFoqKi
|
||||
/////////////////f39YGBgAAAAAwMDaGhoxMTE09PTsbGxQkJCAAAACgoKtLS0////////////////
|
||||
qampAAAAEhIS5eXl////////////tra2AAAADw8P3d3d////////////////////uLi4AwMDDAwMzs7O
|
||||
////////7u7uJCQkAAAAl5eX////////////////wsLCAgICAQEBeHh41dXV3d3d1dXV/Pz8////////
|
||||
////AAAA////////////////5eXlEBAQAAAAaWlp/v7+/f39/f39/f39/f39/f39/f39/Pz8/f39////
|
||||
////qampAAAAAgICk5OT////////////////8/PzS0tLAAAAJCQk6urq////////////hISEAAAADw8P
|
||||
xsbG////////////////mZmZAgICDg4O2tra////wsLCAAAAAQEBlpaW////////////////////s7Oz
|
||||
DAwMBgYGAAAAkJCQ////////////8/PzLS0tAAAAiIiI/////////////Pz8MjIyAAAAf39/////////
|
||||
////oqKiAgICBAQEk5OT////////////////////////////////6enpGBgYAAAAYWFh////////////
|
||||
////////2NjYJCQkBQUFAAAAW1tb////////////////v7+/AAAADQ0N2NjY////////////////////
|
||||
v7+/AAAACwsL09PT////////////s7OzAgICAAAAiYmJ////////////////9/f3VFRUAAAAHBwc5OTk
|
||||
////////////sLCwAAAADQ0N4+Pj////////////////////////aGhoAAAAaGho////////////////
|
||||
////////////////////////////////////////////xMTEAAAAAAAArq6u////////////////////
|
||||
wcHBBQUFAAAAe3t7////////////////+/v7YWFhAAAAFRUV29vb////////////ra2tAQEBAQEBj4+P
|
||||
////////////////9fX1T09PAAAAISEh6Ojo////////////qampAAAAEhIS5eXl////////////tra2
|
||||
AAAADw8P3d3d////////////////+fn5QEBAAAAAaWlp////////////7u7uJCQkAAAAl5eX////////
|
||||
////////hISEAAAAMTEx/Pz8////////////////////////////AAAA////////////////5eXlEBAQ
|
||||
AAAAa2tr////////////////////////////////////////+/v7Pj4+AAAAPz8//f39////////////
|
||||
////////1dXVDQ0NAAAAjo6O////////8fHxJSUlAAAAbm5u////////////////////+vr6Li4uAAAA
|
||||
hISE////nZ2dAAAACgoK09PT////////////////////////f39/AAAAAAAAkpKS////////////8/Pz
|
||||
LS0tAAAAiIiI/////////////Pz8MjIyAAAAf39//////////////v7+X19fAAAADg4OysrK////////
|
||||
////////////////////zMzMCAgIAAAApqam////////////////////////s7OzAwMDAAAAXFxc////
|
||||
////////////ra2tAAAAHx8f7u7u////////////////////v7+/AAAACwsL09PT/////////v7+SEhI
|
||||
AAAANzc3+vr6////////////////////3d3dEhISAAAAg4OD////////////sLCwAAAADQ0N4+Pj////
|
||||
////////////////////aGhoAAAAaGho////////////////////////////////////////////////
|
||||
////////////xMTEAAAAAAAArq6u/////////////////v7+V1dXAAAAKysr9fX1////////////////
|
||||
////5+fnGhoaAAAAc3Nz/////////Pz8Q0NDAAAAOzs7/Pz8////////////////////2dnZDw8PAAAA
|
||||
iYmJ////////////qampAAAAEhIS5eXl////////////tra2AAAAEBAQ4uLi////////////////ra2t
|
||||
AQEBExMT3d3d////////////7u7uJCQkAAAAl5eX////////////////bW1tAAAATU1N////////////
|
||||
////////////////////AAAA////////////////5eXlEBAQAAAAampq////////////////////////
|
||||
////////////////19fXCwsLAAAAkZGR////////////////////////////RkZGAAAAQEBA+/v7////
|
||||
wMDAAwMDAAAAwMDA////////////////////////kJCQSEhIpaWl////ra2tAAAAAwMDu7u7////////
|
||||
////////////////39/fERERAAAAkpKS////////////8/PzLS0tAAAAiIiI/////////////Pz8MjIy
|
||||
AAAAf39/////////////////5+fnJycnAAAAODg48/Pz////////////////////////2NjYDQ0NAAAA
|
||||
hoaG////////////////////////+vr6NTU1AAAAXFxc////////////////qampAAAAICAg7u7u////
|
||||
////////////////v7+/AAAACwsL09PT////////39/fERERAAAAhISE////////////////////////
|
||||
////UFBQAAAANjY2+fn5////////sLCwAAAADQ0N4+Pj////////////////////////aGhoAAAAaGho
|
||||
////////////////////////////////////////////////////////////xMTEAAAAAAAArq6u////
|
||||
////////////6urqGBgYAAAAdnZ2////////////////////////////XV1dAAAAKCgo9fX1////3Nzc
|
||||
DQ0NAAAAjIyM////////////////////////////SkpKAAAAOzs7+vr6////////qampAAAAEhIS5eXl
|
||||
////////////tra2AAAABAQEoqKi////////////+Pj4Nzc3AAAAfn5+////////////////7u7uJCQk
|
||||
AAAAl5eX////////////////ampqAAAATk5O////////////////////////////////AAAA////////
|
||||
////////5eXlEBAQAAAAampq////////////////////////////////////////srKyAAAAAQEBu7u7
|
||||
////////////////////////////cnJyAAAAFhYW6+vr////mJiYAAAAERER4ODg////////////////
|
||||
////////////////////////4eHhFBQUAAAAR0dH8fHx/////////////////////f39Ly8vAAAAkpKS
|
||||
////////////8/PzLS0tAAAAiIiI/////////////Pz8MjIyAAAAf39/////////////////////uLi4
|
||||
BwcHAAAAeHh4////////////////////////+vr6Ozs7AAAAISEh2NjY////////////////////////
|
||||
YmJiAAAAXFxc////////////////qampAAAAICAg7u7u////////////////////v7+/AAAACwsL09PT
|
||||
////////vLy8AAAAAAAAsrKy////////////////////////////fX19AAAAEBAQ5OTk////////sLCw
|
||||
AAAADQ0N4+Pj////////////////////////aGhoAAAAaGho////////////////////////////////
|
||||
////////////////////////////xMTEAAAAAAAArq6u////////////////yMjIAQEBAAAAoKCg////
|
||||
////////////////////////j4+PAAAACwsL19fX////tra2AAAAAAAAtbW1////////////////////
|
||||
////////eHh4AAAAFRUV5+fn////////qampAAAAEhIS5eXl////////////tra2AAAAAAAAEBAQv7+/
|
||||
////////oqKiAAAAICAg6urq////////////////7u7uJCQkAAAAl5eX////////////////ampqAAAA
|
||||
Tk5O////////////////////////////////AAAA////////////////5eXlEBAQAAAAampq////////
|
||||
////////////////////////////////m5ubAAAABgYGysrK////////////////////////////h4eH
|
||||
AAAACQkJ3d3d////g4ODAAAAICAg6+vr////////////////////////////////////////////j4+P
|
||||
AAAAAAAANzc3pqam4ODg8/Pz+/v7+/v78vLyNDQ0AAAAkpKS////////////8/PzLS0tAAAAiIiI////
|
||||
/////////Pz8MjIyAAAAf39/////////////////////////d3d3AAAACAgIvLy8////////////////
|
||||
////////vr6+DQ0NAAAAISEhkJCQ2NjY8PDw+vr6+/v7+Pj4Y2NjAAAAXFxc////////////////qamp
|
||||
AAAAICAg7u7u////////////////////v7+/AAAACwsL09PT////////qKioAAAAAAAAwsLC////////
|
||||
////////////////////kpKSAAAACAgI0dHR////////sLCwAAAADQ0N4+Pj////////////////////
|
||||
////aGhoAAAAaGho////////////////////////////////////////////////////////////xMTE
|
||||
AAAAAAAArq6u////////////////srKyAAAAAAAAsrKy////////////////////////////paWlAAAA
|
||||
AAAAyMjI////n5+fAAAABAQExcXF////////////////////////////jIyMAAAABgYG2tra////////
|
||||
qampAAAAEhIS5eXl////////////tra2AAAAAgICAAAAHBwc19fX+fn5LCwsAAAAk5OT////////////
|
||||
////////7u7uJCQkAAAAl5eX////////////////ampqAAAATk5O////////////////////////////
|
||||
////AAAA////////////////5eXlEBAQAAAAampq////////////////////////////////////////
|
||||
l5eXAAAABwcHy8vL////////////////////////////iYmJAAAACQkJ2dnZ////gYGBAAAAIiIi7e3t
|
||||
/////////////////////////////////////////////v7+lJSUGRkZAAAAAAAACQkJJiYmMjIyMjIy
|
||||
KSkpBwcHAAAAkpKS////////////8/PzLS0tAAAAiIiI/////////////Pz8MjIyAAAAf39/////////
|
||||
////////////////8/PzOTk5AAAAKioq6urq////////////////////////t7e3LCwsAAAAAAAAAgIC
|
||||
ISEhMTExMzMzLS0tDw8PAAAAXFxc////////////////qampAAAAICAg7u7u////////////////////
|
||||
v7+/AAAACwsL09PT////////pKSkAAAAAQEBxMTE////////////////////////////lZWVAAAABwcH
|
||||
zc3N////////sLCwAAAADQ0N4+Pj////////////////////////aGhoAAAAaGho////////////////
|
||||
////////////////////////////////////////////xMTEAAAAAAAArq6u////////////////r6+v
|
||||
AAAAAAAAtLS0////////////////////////////p6enAAAAAAAAxsbG////m5ubAAAABgYGx8fH////
|
||||
////////////////////////j4+PAAAABAQE19fX////////qampAAAAEhIS5eXl////////////tra2
|
||||
AAAAExMTdXV1AQEBNTU1fX19AAAALi4u8/Pz////////////////////7u7uJCQkAAAAl5eX////////
|
||||
////////ampqAAAATk5O////////////////////////////////AAAA////////////////5eXlEBAQ
|
||||
AAAAampq////////////////////////////////////////qqqqAAAAAgICwcHB////////////////
|
||||
////////////e3t7AAAADw8P5+fn////lJSUAAAAFhYW5OTk////////////////////////////////
|
||||
////////////////////5OTkm5ubX19fPDw8JSUlGxsbGBgYHx8fBwcHAAAAkpKS////////////8/Pz
|
||||
LS0tAAAAiIiI/////////////Pz8MjIyAAAAf39/////////////////////////////zMzMDw8PAAAA
|
||||
Z2dn////////////////////////////8fHxrKysampqREREKCgoHR0dGBgYHh4eDQ0NAAAAXFxc////
|
||||
////////////qampAAAAICAg7u7u////////////////////v7+/AAAACwsL09PT////////tbW1AAAA
|
||||
AAAAubm5////////////////////////////hYWFAAAADAwM3t7e////////sLCwAAAACQkJ2tra////
|
||||
////////////////////aGhoAAAAampq////////////////////////////////////////////////
|
||||
////////////xMTEAAAAAAAArq6u////////////////wMDAAAAAAAAApqam////////////////////
|
||||
////////mJiYAAAABQUF0dHR////rq6uAAAAAQEBvLy8////////////////////////////gYGBAAAA
|
||||
DQ0N4+Pj////////qampAAAAEhIS5eXl////////////tra2AAAAEBAQ5OTkiYmJAAAAAAAABQUFrKys
|
||||
////////////////////////7u7uJCQkAAAAl5eX////////////////ampqAAAATk5O////////////
|
||||
////////////////////AAAA////////////////5eXlEBAQAAAAampq////////////////////////
|
||||
////////////////zMzMBgYGAAAAn5+f////////////////////////////VVVVAAAAMTEx9vb2////
|
||||
uLi4AQEBAgICycnJ////////////////////////tra2iIiIzMzM////////////////////////////
|
||||
+/v79fX18vLy8fHx7u7uKCgoAAAAmZmZ////////////8/PzLS0tAAAAiIiI/////////////Pz8MjIy
|
||||
AAAAf39/////////////////////////////////j4+PAAAABAQErKys////////////////////////
|
||||
/////////////v7+9vb28vLy8fHx8/PzWVlZAAAAY2Nj////////////////qampAAAAICAg7u7u////
|
||||
////////////////v7+/AAAACwsL09PT////////1NTUCgoKAAAAk5OT////////////////////////
|
||||
////X19fAAAAJycn9PT0////////sLCwAAAAAgICuLi4////////////////////////ZWVlAAAAdHR0
|
||||
////////////////////////////////////////////////////////////xMTEAAAAAAAArq6u////
|
||||
////////////4eHhDw8PAAAAg4OD////////////////////////////bm5uAAAAHR0d7Ozs////0dHR
|
||||
BwcHAAAAmpqa////////////////////////////WVlZAAAALS0t9PT0////////qampAAAAEhIS5eXl
|
||||
////////////tra2AAAADw8P39/f////cHBwAAAADw8P1NTU////////////////////////7u7uJCQk
|
||||
AAAAl5eX////////////////ampqAAAATk5O////////////////////////////////AAAA////////
|
||||
////////5eXlEBAQAAAAampq////////////////////////////////////////9PT0LCwsAAAAU1NT
|
||||
////////////////////////6OjoGRkZAAAAb29v////////6urqHBwcAAAAfX19////////////////
|
||||
////////SUlJAAAAcHBw/////Pz8ysrKo6Oj4ODg////////////////////////9/f3Hh4eAAAArKys
|
||||
////////////8/PzLS0tAAAAiIiI/////////////Pz8MjIyAAAAf39/////////////////////////
|
||||
////////+/v7TU1NAAAAHx8f4eHh////////////19fXqampycnJ////////////////////////////
|
||||
T09PAAAAc3Nz////////////////qampAAAAICAg7u7u////////////////////v7+/AAAACwsL09PT
|
||||
////////+fn5NDQ0AAAASEhI////////////////////////7u7uICAgAAAAZGRk////////////sLCw
|
||||
AAAAAAAAZ2dn////////////////////////TU1NAAAAgYGB////////////////////////////////
|
||||
////////////////////////////xMTEAAAAAAAArq6u////////////////+/v7Q0NDAAAAPDw8/f39
|
||||
////////////////////9PT0KioqAAAAVFRU////////9fX1MDAwAAAATk5O////////////////////
|
||||
////6+vrHBwcAAAAampq////////////qampAAAAEhIS5eXl////////////tra2AAAADw8P3d3d////
|
||||
+vr6Xl5eAAAANDQ05+fn////////////////////7u7uJCQkAAAAl5eX////////////////ampqAAAA
|
||||
Tk5O////////////////////////////////AAAA////////////////5eXlEBAQAAAAampq////////
|
||||
////////////////////////////////////kpKSAAAACAgItbW1////////////////////a2trAAAA
|
||||
CgoK0NDQ////////////c3NzAAAAGhoa29vb////////////////zc3NDg4OAgICwMDA/////Pz8ODg4
|
||||
AAAAbW1t////////////////////////xcXFCAgIBAQE0dHR////////////8/PzLS0tAAAAiIiI////
|
||||
/////////Pz8MjIyAAAAf39/////////////////////////////////////5OTkIiIiAAAAVlZW+/v7
|
||||
////////b29vAAAAOjo6+Pj4////////////////////7e3tISEhAAAAnZ2d////////////////ra2t
|
||||
AAAAISEh9PT0////////////////////v7+/AAAACwsL09PT////////////nZ2dAAAABQUFqqqq////
|
||||
////////////////dXV1AAAABwcHx8fH////////////sLCwAAAAAwMDCQkJt7e3////////////////
|
||||
3t7eFhYWAAAAqKio////////////////////////////////////////////////////////////xMTE
|
||||
AAAAAAAArq6u////////////////////rKysAAAAAgICnZ2d////////////////////g4ODAAAABAQE
|
||||
u7u7////////////l5eXAAAABgYGsbGx////////////////////b29vAAAACQkJzMzM////////////
|
||||
qampAAAAEhIS5eXl////////////tra2AAAADw8P3d3d////////8/PzTU1NAAAARUVF8fHx////////
|
||||
////////7u7uJCQkAAAAl5eX////////////////bW1tAAAAUFBQ////////////////////////////
|
||||
////AAAA////////////////5eXlEBAQAAAAampq////////////////////////////////////////
|
||||
////9fX1SUlJAAAAFRUVmpqa5ubm8fHx1tbWZWVlAAAAAAAAfX19////////////////5eXlJCQkAAAA
|
||||
MjIyv7+/7e3t7u7uvLy8KysrAAAAUlJS+/v7////////np6eAAAABQUFgoKC5OTk+fn5////8/PzwsLC
|
||||
MjIyAAAANzc3+Pj4////////////8/PzLS0tAAAAiIiI/////////////Pz8MjIyAAAAf39/////////
|
||||
////4uLiyMjIyMjIyMjIyMjIyMjIzs7OdHR0AAAAAAAAmpqa////////zMzMCwsLAAAAXl5e19fX9vb2
|
||||
////+Pj41tbWVVVVAAAAEBAQ39/f////+fn5zc3Ny8vLhYWFAAAAGRkZu7u7ycnJyMjI7e3t////////
|
||||
v7+/AAAACwsL09PT////////////+Pj4UlJSAAAAERERlJSU5eXl8fHx2dnZbGxsAAAAAAAAcnJy////
|
||||
////////////sLCwAAAAKioqTU1NDQ0NkZGR39/f6OjowsLCPDw8AAAAHBwc5eXl////////////////
|
||||
////////////////////////////////////////////xMTEAAAAAAAArq6u////////////////////
|
||||
/Pz8X19fAAAADAwMjIyM5OTk8fHx3NzcdnZ2BAQEAAAAZGRk/v7+////////////9/f3TU1NAAAAExMT
|
||||
mJiY5ubm8fHx19fXaGhoAAAAAAAAeXl5////////////////qampAAAAEhIS5eXl////////////tra2
|
||||
AAAADw8P3d3d////////////6+vrPDw8AAAAWlpa+fn5////////////7u7uJCQkAAAAl5eX////7+/v
|
||||
yMjIy8vLU1NTAAAAPT09zMzMyMjIy8vL+Pj4////////////////AAAA////////////////5eXlEBAQ
|
||||
AAAAampq////////////////////////////////////////////////6enpTExMAAAAAAAAFhYWJSUl
|
||||
CAgIAAAAAAAAampq+fn5////////////////////x8fHISEhAAAAAAAAICAgISEhAAAAAAAAODg45OTk
|
||||
/////////////Pz8d3d3AwMDAAAAERERMTExOjo6KSkpAAAAAAAAERERvLy8////////////////8/Pz
|
||||
LS0tAAAAiIiI/////////////Pz8KioqAAAAenp6////////////c3NzAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAFxcX8vLy////////oqKiERERAAAABwcHKysrOjo6MDAwCAgIAAAAAwMDj4+P////////
|
||||
5OTkDQ0NAAAAAAAAAAAAAAAAAAAAAAAAAAAAp6en////////vb29AAAAAQEB0dHR////////////////
|
||||
7u7uUlJSAAAAAAAAFBQUJSUlCQkJAAAAAAAAYmJi9vb2////////////////ra2tAAAAJiYm4eHhQ0ND
|
||||
AAAACgoKGRkZAAAAAAAADg4OsLCw////////////////////////////////////////////////////
|
||||
////////////xMTEAAAAAAAArq6u////////////////////////8/PzXl5eAAAAAAAAEhISJiYmDAwM
|
||||
AAAAAAAAV1dX8/Pz////////////////////6+vrTk5OAAAAAAAAFRUVJiYmCAgIAAAAAAAAZ2dn+Pj4
|
||||
////////////////qampAAAAEhIS5eXl////////////tra2AAAADw8P3d3d////////////////4eHh
|
||||
LCwsAAAAZmZm9vb2////////7e3tGxsbAAAAk5OT////sbGxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIC
|
||||
3d3d////////////////AAAA////////////////5eXlEBAQAAAAampq////////////////////////
|
||||
////////////////////////////+Pj4nZ2dRUVFFBQUCwsLGRkZTU1Nra2t/v7+////////////////
|
||||
////////////39/fcnJyKioqDAwMDAwMMDAwgYGB7u7u////////////////////////vb29YWFhKysr
|
||||
DQ0NCAgICwsLJycnYmJiy8vL////////////////////8/PzLS0tAAAAiIiI/////////////f39fn5+
|
||||
Xl5er6+v////////////q6urXl5eXl5eXl5eXl5eXl5eXl5eXl5eX19fX19fa2tr9PT0////////////
|
||||
1NTUdHR0NjY2ERERCAgICgoKHh4eUFBQsrKy////////////7+/vbW1tYWFhPz8/AAAADAwMWFhYX19f
|
||||
Xl5eysrK////////19fXX19fZmZm5OTk////////////////////+vr6oqKiR0dHFRUVCwsLGBgYS0tL
|
||||
qKio/Pz8////////////////////zc3NX19feXl5/f398/PzgoKCKysrDAwMFhYWTk5Ow8PD////////
|
||||
////////////////////////////////////////////////////////////xMTEAAAAAAAArq6u////
|
||||
/////////////////////////Pz8qampS0tLFxcXCwsLFhYWR0dHoKCg+vr6////////////////////
|
||||
////////+fn5n5+fRUVFFBQUCwsLGRkZTExMqqqq/f39////////////////////qampAAAAEhIS5eXl
|
||||
////////////tra2AAAADw8P3d3d////////////////////1dXVYmJiXl5ez8/P////////9PT0dXV1
|
||||
Xl5evr6+////0NDQXl5eYGBgKCgoAAAAHR0dYWFhXl5eZmZm6urq////////////////AAAA////////
|
||||
////////5eXlEBAQAAAAampq////////////////////////////////////////////////////////
|
||||
/////f397u7u5ubm8PDw////////////////////////////////////////////////9fX16enp6enp
|
||||
9/f3////////////////////////////////////////9vb27Ozs4+Pj6enp9PT0////////////////
|
||||
////////////8/PzLS0tAAAAiIiI////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////+fn57u7u5eXl6Ojo8fHx////
|
||||
////////////////////////////s7OzAAAAISEh9fX1////////////////////////////////////
|
||||
/////////////////////////////v7+7u7u5ubm7+/v////////////////////////////////////
|
||||
////////////////////9vb25+fn7e3t////////////////////////////////////////////////
|
||||
////////////////////////////xMTEAAAAAAAArq6u////////////////////////////////////
|
||||
////7+/v5ubm7u7u/v7+/////////////////////////////////////////////v7+7u7u5ubm7+/v
|
||||
////////////////////////////////qampAAAAEhIS5eXl////////////tra2AAAADw8P3d3d////
|
||||
////////////////////////////////////////////////////////////////////////c3NzAAAA
|
||||
UFBQ////////////////////////////////AAAA////////////////5eXlEBAQAAAAampq////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////8/PzLS0tAAAAiIiI////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////tbW1
|
||||
AAAAICAg7u7u////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////y8vL
|
||||
AAAAAAAAtLS0////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
qampAAAAEhIS5eXl////////////tra2AAAADw8P3d3d////////////////////////////////////
|
||||
////////////////////////////////////////d3d3AAAATk5O////////////////////////////
|
||||
////AAAA////////////////5eXlEBAQAAAAampq////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////8/PzLS0tAAAAiIiI////////////9PT0cHBwV1dXoKCg////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////t7e3AAAAFxcX7e3t////////////////////
|
||||
yMjIWFhYW1tb2tra////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////8/Pzs7Ozra2trq6urq6urq6uhYWFAAAAAAAAd3d3r6+vrq6urq6ura2tr6+v
|
||||
7e3t////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////qampAAAAEhIS5eXl////////////tra2
|
||||
AAAADw8P3d3d////////////////////////////////////////////7OzsZmZmV1dXsLCw////////
|
||||
////////eXl5AAAASEhI////////////////////////////////AAAA////////////////5eXlDAwM
|
||||
AAAAZ2dn////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////8/Pz
|
||||
KSkpAAAAhoaG////////////7e3tFxcXAAAAZGRk////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////4uLigYGBfn5+9PT0////////////////////pqamAAAAAAAAxMTE////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////2dnZCQkJAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxsbG////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////p6enAAAADg4O5eXl////////////tbW1AAAACwsL3Nzc////////////////////
|
||||
////////////////////////39/fBwcHAAAAfn5+////////////////x8fHenp6lpaW////////////
|
||||
////////////////////AAAA////////////////6enpMjIyIiIif39/////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////9fX1S0tLIiIimZmZ////////////8PDwQUFB
|
||||
IiIigYGB////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////tra2IyMjJiYmz8/P////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////39/fMTExIyMjIyMjIyMjIyMjIyMjJCQkJCQkIyMjIyMj
|
||||
IyMjIyMjIyMjKSkp0NDQ////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////tbW1IyMjMzMz6Ojo
|
||||
////////////wMDAIyMjMTEx4uLi////////////////////////////////////////////5eXlNDQ0
|
||||
IiIilZWV////////////////////////////////////////////////////////////AAAA////////
|
||||
/////////f397+/v7Ozs9fX1////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////v7+8fHx7Ozs9/f3/////////////v7+8PDw7Ozs9fX1////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////+fn57e3t7u7u+/v7
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/////Pz87+/v7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u+/v7////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////+fn57e3t7+/v/f39////////////+vr67e3t7+/v/f39////
|
||||
/////////////////////////////////////////f397+/v7Ozs9/f3////////////////////////
|
||||
////////////////////////////////////AAAA////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////AAAA////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////AAAA////////////////////////
|
||||
////9PT08/Pz/////////////Pz87e3t/f39////////////////29vbzc3N6enp////////9/f39fX1
|
||||
9vb2zc3N3t7e////////////7u7uzs7O19fX/f39/////v7+8PDw+/v7////////7+/v0dHR8/Pz////
|
||||
////29vbzc3N6enp////////+vr68PDw////////////////////////4+Pjz8/P9/f39vb29/f3////
|
||||
9PT09vb2////////+/v78PDw/v7+////////5ubmy8vL4ODg/v7+/////Pz88PDw/v7+////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////AAAA////////////////////////////SkpKPDw8/f39////////tra2EhIS
|
||||
t7e3////////9fX1YmJiJycnRUVFOTk5n5+f////oaGhQEBAVVVVQkJCKCgoeHh4/f399fX1QUFBQEBA
|
||||
QEBAWVlZ7Ozs9vb2ODg4z8/P////4+PjMzMzOzs7ubm5+fn5ZGRkJycnRUVFOTk5n5+f////vb29PDw8
|
||||
+fn5////////////////o6OjJSUlREREYWFhREREmpqa////aWlphoaG////////zMzMOTk59fX1////
|
||||
jo6OJycnQkJCOTk5cnJy////0tLSODg47u7u////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////AAAA////////
|
||||
////////////////4eHhHh4eHR0d1tbW////////b29vDQ0NcnJy////////jo6OKioq4uLi////6Ojo
|
||||
z8/P////m5ubCQkJvb29/v7+19fXHx8fqqqq+vr61NTU////////NTU1mZmZ+/v7JiYmysrK////oKCg
|
||||
NDQ09/f3/v7+kJCQKioq4eHh////6Ojo0NDQ////t7e3Kioq+fn5/////////////f39MzMzlZWV////
|
||||
ycnJDg4Ok5OT////XFxce3t7////////x8fHJycn+/v7x8fHFxcXwcHB////9fX1xsbG////zs7OJiYm
|
||||
7e3t////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////AAAA////////////////////////oqKiQ0NDUlJSlpaW
|
||||
////9vb2ODg4dXV1Ojo6+vr6////RUVFgICA7+/v7Ozs7+/v9fX1/v7+l5eXQkJC////////////d3d3
|
||||
VFRU////////8PDwl5eXGBgYvr6++fn5KSkpy8vL////lZWVSkpK////////RkZGfHx87+/v7Ozs7+/v
|
||||
9fX1/v7+uLi4Ly8v/////////////////v7+T09PcXFx7u7u////SEhIj4+P////Xl5efX19////////
|
||||
yMjIKioq/f39g4ODRkZG8PDw7Ozs7u7u9PT0+/v7z8/PKSkp7e3t////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////AAAA////////////////////////WFhYgoKCoKCgUVFR////zs7OKysr2traKSkp0NDQ////QkJC
|
||||
JSUlPT09PDw8NjY2Ly8v9fX1mZmZTExM////////////lJSUQ0ND////srKyMTExRkZGtbW1////8/Pz
|
||||
KSkpy8vL////lpaWSUlJ////////QkJCJCQkPT09PDw8NjY2MjIy8PDwvr6+FhYWdHR0f39/tbW1/Pz8
|
||||
////29vbWVlZQ0NDV1dXHBwclJSU////Xl5efX19////////yMjIKSkp/Pz8fHx8FRUVPT09Ozs7Ozs7
|
||||
ICAgycnJ1tbWKSkp7e3t////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////AAAA////////////////////8PDw
|
||||
JSUlxcXF3t7eLi4u9fX1jY2NUVFR////SkpKj4+P////YGBgY2Nj9PT08vLytra2Jycn+vr6nJycJCQk
|
||||
9fX1////////bm5uX19f/f39JCQklpaW////////////8vLyKSkpy8vL////m5ubS0tL////////YGBg
|
||||
YWFh9PT08vLyt7e3JCQk+/v7vb29FxcXdnZ2aGhoJiYmX19f+Pj4////////8/Pz19fXMTExmJiY////
|
||||
Xl5eVlZW////////ubm5Kysr////oKCgMzMz7e3t8fHx4ODgISEh0dHR1dXVKSkp7e3t////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////AAAA////////////////////vr6+IyMj8PDw/Pz8PT09vLy8T09Pk5OT////
|
||||
iIiISkpK////zc3NJiYmmJiYwsLCRkZGbm5u////nJycFBQUcXFxv7+/m5ubFRUVuLi4/v7+QEBAdXV1
|
||||
yMjIpaWl5eXl9fX1IiIizMzM2NjYYmJiMTExqamp39/f0dHRJiYml5eXw8PDR0dHbGxs////ubm5Li4u
|
||||
////////4+PjHBwctbW11tbWdXV1v7+/rKysGxsbysrK////X19fGRkZl5eXwMDAPj4+Xl5e////7u7u
|
||||
Ozs7cnJyxsbGcHBwPT099/f30dHRKSkp7e3t////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////AAAA////////
|
||||
////////////dXV1UFBQ////////eXl5XV1dLy8v0dHR////ycnJICAg6enp////xsbGWVlZR0dHe3t7
|
||||
8vLy////lpaWTk5Ora2tU1NTSUlJpqam////////3t7ebW1tSUlJXV1d5+fn+/v7e3t75OTktbW1NjY2
|
||||
GxsbYWFhw8PD////x8fHWVlZR0dHenp68fHx////uLi4LS0t+vr6////////RUVFhISE8vLygoKCUFBQ
|
||||
Tk5OoaGh////////np6epaWljIyMSkpKYmJi5OTk////////4eHhaWlpRkZGYmJi3Nzc////z8/PKSkp
|
||||
7e3t////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////AAAA////////////////+/v7MzMzmJiY////////wMDA
|
||||
Dw8PODg4+vr6////8/PzJSUltLS0////////////////////////////lpaWTExM////////////////
|
||||
////////////////////////////////////////////l5eXRUVF////////////////////////////
|
||||
////////uLi4LS0t+/v7////0tLSFBQUra2t////////////////////////////////////////////
|
||||
////////////////////////////////////////z8/PKSkp7e3t////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////AAAA////////////////1dXVGRkZ1dXV////////8vLyGBgYbW1t////////////VlZWa2tr////
|
||||
////////////////////////k5OTSEhI////////////////////////////////////////////8vLy
|
||||
bm5u1dXV////29vbqqqq////////////////////////////////////vLy8Dg4OTExMRUVFHx8fZGRk
|
||||
+fn5////////////////////////////////////////////////////////////////////////////
|
||||
////////zs7OJCQk7e3t////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////AAAA////////////////5ubmu7u7
|
||||
/Pz8////////////xMTE3t7e////////////2NjYxsbG////////////////////////////rKyscXFx
|
||||
////////////////////////////////////////////8vLya2tr1dXV////////////////////////
|
||||
////////////////////////6+vrsbGxqampsLCw09PT////////////////////////////////////
|
||||
////////////////////////////////////////////////////////2dnZVlZW8fHx////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////AAAA////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////AAAA////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////AAAA////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////AAAA
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
224
WebsitePanel/Sources/Tools/WebsitePanel.LocalizationToolkit/FindForm.Designer.cs
generated
Normal file
|
@ -0,0 +1,224 @@
|
|||
namespace WebsitePanel.LocalizationToolkit
|
||||
{
|
||||
partial class FindForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.btnFindNext = new System.Windows.Forms.Button();
|
||||
this.btnClose = new System.Windows.Forms.Button();
|
||||
this.findTabControl = new System.Windows.Forms.TabControl();
|
||||
this.findPage = new System.Windows.Forms.TabPage();
|
||||
this.chkMatchWord = new System.Windows.Forms.CheckBox();
|
||||
this.chkMatchCase = new System.Windows.Forms.CheckBox();
|
||||
this.lblSearch = new System.Windows.Forms.Label();
|
||||
this.cbSearch = new System.Windows.Forms.ComboBox();
|
||||
this.cbReplace = new System.Windows.Forms.ComboBox();
|
||||
this.lblReplace = new System.Windows.Forms.Label();
|
||||
this.txtFind = new System.Windows.Forms.TextBox();
|
||||
this.lblFind = new System.Windows.Forms.Label();
|
||||
this.findTabControl.SuspendLayout();
|
||||
this.findPage.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnFindNext
|
||||
//
|
||||
this.btnFindNext.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnFindNext.Location = new System.Drawing.Point(341, 166);
|
||||
this.btnFindNext.Name = "btnFindNext";
|
||||
this.btnFindNext.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnFindNext.TabIndex = 1;
|
||||
this.btnFindNext.Text = "&Find Next";
|
||||
this.btnFindNext.UseVisualStyleBackColor = true;
|
||||
this.btnFindNext.Click += new System.EventHandler(this.OnFindNext);
|
||||
//
|
||||
// btnClose
|
||||
//
|
||||
this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnClose.Location = new System.Drawing.Point(422, 166);
|
||||
this.btnClose.Name = "btnClose";
|
||||
this.btnClose.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnClose.TabIndex = 2;
|
||||
this.btnClose.Text = "Close";
|
||||
this.btnClose.UseVisualStyleBackColor = true;
|
||||
this.btnClose.Click += new System.EventHandler(this.OnCloseClick);
|
||||
//
|
||||
// findTabControl
|
||||
//
|
||||
this.findTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.findTabControl.Controls.Add(this.findPage);
|
||||
this.findTabControl.Location = new System.Drawing.Point(8, 8);
|
||||
this.findTabControl.Name = "findTabControl";
|
||||
this.findTabControl.SelectedIndex = 0;
|
||||
this.findTabControl.Size = new System.Drawing.Size(489, 152);
|
||||
this.findTabControl.TabIndex = 0;
|
||||
this.findTabControl.TabStop = false;
|
||||
//
|
||||
// findPage
|
||||
//
|
||||
this.findPage.Controls.Add(this.chkMatchWord);
|
||||
this.findPage.Controls.Add(this.chkMatchCase);
|
||||
this.findPage.Controls.Add(this.lblSearch);
|
||||
this.findPage.Controls.Add(this.cbSearch);
|
||||
this.findPage.Controls.Add(this.cbReplace);
|
||||
this.findPage.Controls.Add(this.lblReplace);
|
||||
this.findPage.Controls.Add(this.txtFind);
|
||||
this.findPage.Controls.Add(this.lblFind);
|
||||
this.findPage.Location = new System.Drawing.Point(4, 22);
|
||||
this.findPage.Name = "findPage";
|
||||
this.findPage.Padding = new System.Windows.Forms.Padding(5);
|
||||
this.findPage.Size = new System.Drawing.Size(481, 126);
|
||||
this.findPage.TabIndex = 0;
|
||||
this.findPage.Text = "Find";
|
||||
this.findPage.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkMatchWord
|
||||
//
|
||||
this.chkMatchWord.AutoSize = true;
|
||||
this.chkMatchWord.Location = new System.Drawing.Point(192, 94);
|
||||
this.chkMatchWord.Name = "chkMatchWord";
|
||||
this.chkMatchWord.Size = new System.Drawing.Size(135, 17);
|
||||
this.chkMatchWord.TabIndex = 7;
|
||||
this.chkMatchWord.Text = "Match &whole word only";
|
||||
this.chkMatchWord.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkMatchCase
|
||||
//
|
||||
this.chkMatchCase.AutoSize = true;
|
||||
this.chkMatchCase.Location = new System.Drawing.Point(192, 71);
|
||||
this.chkMatchCase.Name = "chkMatchCase";
|
||||
this.chkMatchCase.Size = new System.Drawing.Size(82, 17);
|
||||
this.chkMatchCase.TabIndex = 6;
|
||||
this.chkMatchCase.Text = "Match &case";
|
||||
this.chkMatchCase.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lblSearch
|
||||
//
|
||||
this.lblSearch.Location = new System.Drawing.Point(6, 74);
|
||||
this.lblSearch.Name = "lblSearch";
|
||||
this.lblSearch.Size = new System.Drawing.Size(68, 23);
|
||||
this.lblSearch.TabIndex = 4;
|
||||
this.lblSearch.Text = "&Search:";
|
||||
//
|
||||
// cbSearch
|
||||
//
|
||||
this.cbSearch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cbSearch.FormattingEnabled = true;
|
||||
this.cbSearch.Items.AddRange(new object[] {
|
||||
"By Rows",
|
||||
"By Columns"});
|
||||
this.cbSearch.Location = new System.Drawing.Point(80, 71);
|
||||
this.cbSearch.Name = "cbSearch";
|
||||
this.cbSearch.Size = new System.Drawing.Size(97, 21);
|
||||
this.cbSearch.TabIndex = 5;
|
||||
//
|
||||
// cbReplace
|
||||
//
|
||||
this.cbReplace.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cbReplace.FormattingEnabled = true;
|
||||
this.cbReplace.Location = new System.Drawing.Point(99, 35);
|
||||
this.cbReplace.Name = "cbReplace";
|
||||
this.cbReplace.Size = new System.Drawing.Size(374, 21);
|
||||
this.cbReplace.TabIndex = 3;
|
||||
this.cbReplace.Visible = false;
|
||||
//
|
||||
// lblReplace
|
||||
//
|
||||
this.lblReplace.Location = new System.Drawing.Point(6, 36);
|
||||
this.lblReplace.Name = "lblReplace";
|
||||
this.lblReplace.Size = new System.Drawing.Size(87, 23);
|
||||
this.lblReplace.TabIndex = 2;
|
||||
this.lblReplace.Text = "R&eplace with:";
|
||||
this.lblReplace.Visible = false;
|
||||
//
|
||||
// txtFind
|
||||
//
|
||||
this.txtFind.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.txtFind.Location = new System.Drawing.Point(99, 8);
|
||||
this.txtFind.Name = "txtFind";
|
||||
this.txtFind.Size = new System.Drawing.Size(374, 20);
|
||||
this.txtFind.TabIndex = 1;
|
||||
this.txtFind.TextChanged += new System.EventHandler(this.OnSearchTextChanged);
|
||||
//
|
||||
// lblFind
|
||||
//
|
||||
this.lblFind.Location = new System.Drawing.Point(6, 9);
|
||||
this.lblFind.Name = "lblFind";
|
||||
this.lblFind.Size = new System.Drawing.Size(87, 23);
|
||||
this.lblFind.TabIndex = 0;
|
||||
this.lblFind.Text = "Fi&nd what:";
|
||||
//
|
||||
// FindForm
|
||||
//
|
||||
this.AcceptButton = this.btnFindNext;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
|
||||
this.CancelButton = this.btnClose;
|
||||
this.ClientSize = new System.Drawing.Size(505, 197);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.findTabControl);
|
||||
this.Controls.Add(this.btnClose);
|
||||
this.Controls.Add(this.btnFindNext);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.KeyPreview = true;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "FindForm";
|
||||
this.Padding = new System.Windows.Forms.Padding(5);
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Find";
|
||||
this.VisibleChanged += new System.EventHandler(this.OnFormVisibleChanged);
|
||||
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnKeyDown);
|
||||
this.findTabControl.ResumeLayout(false);
|
||||
this.findPage.ResumeLayout(false);
|
||||
this.findPage.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btnFindNext;
|
||||
private System.Windows.Forms.Button btnClose;
|
||||
private System.Windows.Forms.TabControl findTabControl;
|
||||
private System.Windows.Forms.TabPage findPage;
|
||||
private System.Windows.Forms.TextBox txtFind;
|
||||
private System.Windows.Forms.Label lblFind;
|
||||
private System.Windows.Forms.ComboBox cbReplace;
|
||||
private System.Windows.Forms.Label lblReplace;
|
||||
private System.Windows.Forms.ComboBox cbSearch;
|
||||
private System.Windows.Forms.Label lblSearch;
|
||||
private System.Windows.Forms.CheckBox chkMatchCase;
|
||||
private System.Windows.Forms.CheckBox chkMatchWord;
|
||||
}
|
||||
}
|