<component id="107" name="One" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="9" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0"><properties><property id="108" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="15"><arrayElement dataType="System.String"><![CDATA[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptMain.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' CozyRoc SQL Server Integration Services user script component
'
' Copyright (c) 2006-2010 CozyRoc LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Text
Imports System.Collections
Imports System.IO

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports Google.GData.Client


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ColumnMappings()> _
<SortProperties(New String() {"Username", "Password", "IsPrivateMap", "MapName"})> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Constants
    Const MapsUrl As String = "http://maps.google.com/maps/feeds/maps/default/full"
    Const AclService As String = "http://schemas.google.com/acl/2007#accessControlList"
    Private DataColumn As String() = New String() {"Name", "Latitude", "Longitude", "Description"}


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        With Row
            ' Setup row.
            Dim data As String
            Dim colsCount As Integer = DataColumn.Length
            For colIndex As Integer = 0 To colsCount - 1
                If Not String.IsNullOrEmpty(data) Then
                    data += ","
                End If

                Dim column As String = Row.Buffer(m_inputIndexes(colIndex)).ToString().Replace("""", """""")

                data += String.Format("""{0}""", column)
            Next

            Call m_sbData.AppendLine(data)
        End With
    End Sub ' Input_ProcessInputRow


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PreExecute()
        Call MyBase.PreExecute()

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim extCols As IDTSExternalMetadataColumnCollection100 = input.ExternalMetadataColumnCollection

        ' Setup dynamic input columns indexes.
        Dim colsCount As Integer = DataColumn.Length
        m_inputIndexes = New Integer(colsCount - 1) {}
        Dim header() As String = New String(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim column As IDTSInputColumn100 = input.InputColumnCollection(colIndex)
            Dim extColumn As IDTSExternalMetadataColumn100 = extCols.GetObjectByID( _
                column.ExternalMetadataColumnID)

            header(colIndex) = extColumn.Name.ToLower()
            m_inputIndexes(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                column.LineageID)
        Next

        m_sbData = New StringBuilder()
        Call m_sbData.AppendLine(String.Join(",", header))
    End Sub ' PreExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PostExecute()
        Call MyBase.PostExecute()

        ' Setup service.
        Dim service As Service = New Service("local", "CozyRoc Create Google Map")
        Call service.setUserCredentials(Me.Username, Me.Password)

        Try
            ' Retrieve maps list.
            Dim mapsList As ArrayList = GetMaps_(service)

            ' Remove existing destination map (if found).
            Dim mapId As String = GetMapId_(mapsList, Me.MapName)
            If Not String.IsNullOrEmpty(mapId) Then
                ' Delete previous map.
                Call service.Delete(New Uri(mapId))
            End If

            ' Insert map.
            Dim content As String = m_sbData.ToString()
            Dim mapEntry As AtomEntry = service.Insert( _
                New Uri(MapsUrl), _
                New MemoryStream(Encoding.UTF8.GetBytes(content)), _
                "text/csv", _
                Me.MapName)

            If Me.IsPrivateMap Then
                ' Make map private.
                Dim aclLink As AtomLink = mapEntry.Links.FindService(AclService, Nothing)
                Call service.Delete(New Uri(aclLink.HRef.Content + "/default"))
            End If
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' PostExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean = True

        Try
            If String.IsNullOrEmpty(Me.Username) Then
                Throw New ApplicationException("Specify service user name.")
            End If

            If String.IsNullOrEmpty(Me.Password) Then
                Throw New ApplicationException("Specify service password.")
            End If

            If String.IsNullOrEmpty(Me.MapName) Then
                Throw New ApplicationException("Specify destination map name.")
            End If

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached AndAlso input.InputColumnCollection.Count < DataColumn.Length Then
                Throw New Exception("Map input columns.")
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub ReinitializeMetaData()
        Call MyBase.ReinitializeMetaData()

        If MyBase.ComponentMetaData.InputCollection.Count = 0 Then
            ' At least one input must exist.
            Throw New Exception("No inputs.")
        End If

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)

        ' Cleanup.
        input.ExternalMetadataColumnCollection.IsUsed = True
        Call input.InputColumnCollection.RemoveAll()
        Call input.ExternalMetadataColumnCollection.RemoveAll()

        ' Setup columns.
        Call AddColumn_(input, DataColumn(0), 10)
        Call AddColumn_(input, DataColumn(1), 10)
        Call AddColumn_(input, DataColumn(2), 10)
        Call AddColumn_(input, DataColumn(3), 250)
    End Sub ' ReinitializeMetaData


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify service user name.")> _
    Public Property Username() As String
        Get
            Username = m_username
        End Get
        Set(ByVal value As String)
            m_username = value
        End Set
    End Property    ' Username


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify service password.")> _
    <PasswordPropertyText(True)> _
    Public Property Password() As String
        Get
            Password = m_password
        End Get
        Set(ByVal value As String)
            m_password = value
        End Set
    End Property    ' Password


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify if map should be private.")> _
    <DefaultValue(True)> _
    Public Property IsPrivateMap() As Boolean
        Get
            IsPrivateMap = m_isPrivateMap
        End Get
        Set(ByVal value As Boolean)
            m_isPrivateMap = value
        End Set
    End Property    ' IsPrivateMap


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify destination map.")> _
    Public Property MapName() As String
        Get
            MapName = m_mapName
        End Get
        Set(ByVal value As String)
            m_mapName = value
        End Set
    End Property    ' MapName
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireInformation_(ByVal message As String)
        Dim fireAgain As Boolean = False
        Call MyBase.ComponentMetaData.FireInformation( _
            0, _
            "Google Data Source", _
            message, _
            String.Empty, _
            0, _
            fireAgain)
    End Sub ' FireInformation_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Create Google Map", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub AddColumn_(ByVal input As IDTSInput100, ByVal name As String, ByVal length As Integer)
        Dim column As IDTSExternalMetadataColumn100 = input.ExternalMetadataColumnCollection.[New]()
        column.Name = name
        column.DataType = DataType.DT_WSTR
        column.Length = length
    End Sub ' AddColumn_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetMaps_(ByVal service As Service) As ArrayList
        Dim result As ArrayList = New ArrayList

        Dim query As FeedQuery = New FeedQuery(MapsUrl)
        query.NumberToRetrieve = 100

        Try

            Dim feed As AtomFeed = service.Query(query)
            While True
                Dim itemsCount As Integer = feed.Entries.Count
                For itemIndex As Integer = 0 To itemsCount - 1
                    Dim entry As AtomEntry = feed.Entries(itemIndex)
                    Call result.Add(entry)
                Next

                If String.IsNullOrEmpty(feed.NextChunk) Then
                    ' No more data to retrieve.
                    Exit While
                End If

                ' Setup next query iteration.
                query.StartIndex += itemsCount
                feed = service.Query(query)
            End While
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try

        GetMaps_ = result
    End Function    ' GetMaps_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetMapId_(ByVal mapsList As ArrayList, ByVal mapName As String) As String
        Dim result As String

        Dim itemsCount As Integer = mapsList.Count
        For itemIndex As Integer = 0 To itemsCount - 1
            Dim entry As AtomEntry = CType(mapsList(itemIndex), AtomEntry)
            If entry.Title.Text = mapName Then
                ' Found map.
                result = entry.EditUri.Content
                Exit For
            End If
        Next

        GetMapId_ = result
    End Function    ' GetMapId_
#End Region ' Internals


#Region "Attributes"
    Private m_username As String
    Private m_password As String
    Private m_isPrivateMap As Boolean
    Private m_mapName As String

    Private m_sbData As StringBuilder
    Private m_inputIndexes() As Integer
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{F89C30B1-CF27-4937-B18A-E2730A80BBC2}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</RootNamespace>
    <AssemblyName>ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <OptionCompare>Binary</OptionCompare>
    <OptionExplicit>On</OptionExplicit>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\CozyRoc.SSISPlus.2014.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Data">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS">
      <Private>False</Private>
    </Reference>
    <Reference Include="Google.GData.Client">
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_SC120" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:CodeName>ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</msb:CodeName>
		<msb:DisplayName>ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</msb:DisplayName>
		<msb:ProjectId>{68D88925-9F00-417C-BA8C-45458B83AE7B}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b.vbproj"/>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="109" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
B29MAAAKbysAAAYoTQAACt4ACAoGKgAAARAAAAAAGQBxigAcKgAAARMwAwBSAAAAHgAAEQNvaQAA
CgsWBxfaEwUTBCs3AxEEb2oAAAp0KAAAAQ0Jb2sAAApvbAAACgQWKG0AAAoWMw4Jb24AAApvSgAA
CgwrDBEEF9YTBBEEEQUxwwgKBioAAEJTSkIBAAEAAAAAAAwAAAB2NC4wLjMwMzE5AAAAAAUAbAAA
AIQMAAAjfgAA8AwAAKAPAAAjU3RyaW5ncwAAAACQHAAA1AIAACNVUwBkHwAAEAAAACNHVUlEAAAA
dB8AABQGAAAjQmxvYgAAAAAAAAACAAABVx2iCQkOAAAA+iUzABYAAAEAAABFAAAACwAAABIAAAAu
AAAAHgAAAHgAAAACAAAANgAAAB4AAAAEAAAACwAAAA8AAAAKAAAAAQAAAAsAAAACAAAAAwAAAAIA
AAAAAGkPAQAAAAAACgA/ARUBCgBzAVUBBgCDAXwBCgDbARUBBgBZAnwBCgDbArECDgAtAxYDEgB8
A1sDFgCtA1sDEgC8A1sDDgBgBBYDGgATBuoFBgBQBj0GHgBuBloGBgDdBtEGIgBAByoHIgBZByoH
IgCGB24HBgCwB50HCgDvB8gHCgAHCBMAIgA8CB8IBgBxCFEIBgCPCHwBBgCzCHwBCgDMCBMABgAa
CfsIBgAuCXwBEgA1CVsDBgBCCXwBGgBYCeoFGgCHCeoFGgD8CeoFGgAkCuoFGgA3CuoFBgBVCnwB
GgCACuoFFgDzClsDGgAXC+oFHgBnC1oGHgBxC1oGBgB6C3wBIgCXC3wBJgCXC3wBBgCiC9EGBgDH
C70LBgDUC70LKgDUC70LHgDiC1oGHgALDFoGCgAoDMgHBgBiDHwBLgAdDfUMHgA+DVoGHgBIDVoG
HgBsDVoGHgCMDVoGHgDRDVoGCgD2DcgHEgAaDlsDDgBjDkEODgB/DkEODgCXDkEOIgCvDioHIgDE
DioHIgDiDioHBgD4DlEIBgAYD1EIBgBQDzYPAAAAAAEAAAAAAAEAAQAAAAAAKQA3AAUAAQABAAAA
AABrADcACQABAAIAAAEQAHYANwANAAEAAwAFAQAAgAAAAA0ABQAIAAUBAACOAAAADQAFAA8AAQAA
AKkAtQAdAAYAEQABAAAA5gC1AC0ABgAWAAEAAAD0ALUADQAIABoAAQAAAAABtQANAAkAGwABAAAA
CgG1ACAACgAcADEAngEgADEAxwEtADEA6QE6ADEADgJHACEA6gKQAAYA9ADJAAYAAAHNAAEAwATh
AAEAwAThAFGA0ATrAFGA2ATrAAEA4wS+AQEAogbrAAEArQbrAAEAuAbxAQEAxwbrAAEA6wb0AQEA
9Ab4AVAgAAAAAAYYTwETAAEAWCAAAAAABhhPARMAAQBgIAAAAAARGIoBFwABAIwgAAAAABMIkQEb
AAEApCAAAAAAEwi3ASgAAQC8IAAAAAATCOABNQABANQgAAAAABMI/gFCAAEA7CAAAAAARgJEAmMA
AQAIIQAAAABGAk0CaAACABwhAAAAAIMAXgJsAAIANCEAAAAARgJmAnEAAgBIIQAAAAARAG8CeAAC
AGQhAAAAAAEAjQKAAAMAgCEAAAAABhhPARMABACIIQAAAAADCKECiwAEALwhAAAAAAYYTwETAAQA
0CEAAAAABhhPAa8ABADgIQAAAABGCvYDuwAJAPQhAAAAAEYKDQS7AAkACCIAAAAAhgAlBMAACQAg
IgAAAACGAC0EwAAJADgiAAAAAAYYTwETAAkAWCIAAAAARgJ0BNEACQCIIgAAAABGA5ME2wANAJwi
AAAAAEYDpgTbAA4AoCIAAAAABhhPAeUADwCwIgAAAAAGGE8B5QAQAMAiAAAAAAYYTwETABEABCMA
AAAARgKmBNsAEQCQIwAAAABGAu4EEwASAHgkAAAAAEYC+QQTABIAfCUAAAAABgAFBcIBEgBAJgAA
AABGAhkFEwATAPQmAAAAAAYILgVxABMADCcAAAAABgg7BcgBEwAYJwAAAAAGCE4FcQAUADAnAAAA
AAYIWwXIARQAPCcAAAAABghoBcAAFQBUJwAAAAAGCHkFzQEVAGAnAAAAAAYIigVxABYAeCcAAAAA
BgiWBcgBFgCEJwAAAAABAKIFyAEXALAnAAAAAAEAuwXIARgA3CcAAAAAAQAgBtIBGQAQKAAAAAAB
AHYG4wEcANgoAAAAAAEAhwbqAR0AAAABAEsCAAABAIQCAAABAIQCAAABAMoDAAACANQDAAADAN0D
AAAEAOUDAAAFAOwDAAABAIEEAAACAIkEAAADAOUDAAAEAOwDAAABAOUDAAABALwEAAABAMoDAAAB
AMoDAAABALwEAAABAA4FAAABAEgFAAABAEgFAAABAEgFAAABAEgFAAABALMFAAABALMFAAABACsG
AAACADEGAAADADYGAAABAH8GAAABAJEGAAACAJoGCQBPARMAgQBPAQQCkQBPARMCEQBPARMAmQBP
ARMAJABPARMALABPARMANABPARMAPABPARMAJAChAosALAChAosANAChAosAPAChAosAoQBPARMA
qQBPARMAsQBPAcgBuQCACK0CGQBEAmMAGQBNAmgAKQChCLoCGQBmAnEAyQC9CMoCGQBPARMA0QBP
AdoCRADqApAATADnCIsATADxCFcDTABPARMA2QBPAc0BOQBPAa8A6QAlBMAA6QAtBMAA8QBPAc0B
WQBPARMAQQBxCXED+QCeCXYDAQGyCXwDYQC7CWgA4QDCCYID4QDQCYcDOQDXCY0DSQCyCZID4QDi
CZcD4QDqCZ0DeQDxCaMDQQDuBBMAYQBbCrMDYQCdCrkDKQGyCb8DEQG3CmgACQHUCsYDGQHiCnEA
4QDrCnEAWQAFC80DMQEsC9MDYQDXCWgAEQE+C2gAOQFMC9kDeQBPARMA4QBiC98DQQD5BBMAcQBP
ARMCcQCECxMCWQFPAcgBcQCbC/kDeQBmAnEAaQGrCwAEaQG0CwYEcQFPAQwEcQDbCxIEQQH1CyAE
iQH/CyYESQETDC4EkQEcDHEAmQE0DDQEUQFEDHEAmQFQDBcAoQFPAcgBYQB3DMAAKQGGDGgAUQFP
AcgBWQAZBRMAAQGGDGgACQGQDM0BKQGbDBMACQGbDBMA4QClDOsA+QCrDFwE+QC7DFwECQHFDGcE
GQHJDMgBGQEmDW0EGQEzDXQEaQBPARMAsQFPAcgBsQFRDXQEcQBmDX8EuQGADYgEVACGDGgAwQGy
CZcEaQChDZ4EuQGlDXEAsQGzDWgAsQHCDXQEaQCGDGgAaQCyCZIDQQHjDbwE0QHtDXEA2QEADsIE
QQEODi4E4QFPARMA6QFPAcgB8QFPAeIE+QFPARMAAQJPAcgBCQJPAc0BEQJPAc0BGQJPAXQEIQJP
ARMAKQJPAcgBDgAoAO4ADgAsAFUBKQCDAGcCLgCzA6IFLgC7A6sFLgDDA8oFQAArADICQAATAAoC
QwAbABkCQwATAAoCSQCDAJkCYwAbABkCYwATAAoCaQCDAHgCgAArADICgwB7ADICgwAbABkCgwBz
ADICiQCDAIUCoAArADICowDDAOICowATAAoCwAArADICwwDrAGYDwwATAAoC4AArADIC4wALAWYD
AAETAAoCAAErADICAwELAWYDCQGbAxgFIAETAAoCIAErADICKQGbAz4FKQGjAzgFQAErADICQAET
AAoCSQGrAzgFSQGbA3sFYAETAAoCYAErADICYwGLA+gEYwGDA9QEYwELAWYDYwF7AzICYwGTAzIC
aQGbA10FgAErADICoAErADICwAETAAoCwAErADIC4AErADICAAITAAoCAAIrADICQAMLAWYDYAML
AWYDUwJYAl0CYgKyArYCwQLGAtUC1QJdA2wDbAOyArICbAOpA+YDOwRNBFcExgLGArICxgKyArIC
eQSjBMkEBAABAAYABQAHAAYACwAIAAAAcwFPAAAALAJUAAAA2wFZAAAAOAJeAAAA9AKYAAAAOQTE
AAAATATEAAAAAwf8AQAADAf8AQAAFQcAAgAAIgf8AQIABAADAAIABQAFAAIABgAHAAIABwAJAAIA
DwALAAIAEgANAAIAEwAPAAIAIgARAAEAIwARAAIAJAATAAEAJQATAAIAJgAVAAEAJwAVAAIAKAAX
AAEAKQAXAHUAdQCIADcCPgJFAkwCRANLA44EBIAAAAAAAAAAAAAAAAAAAAAAtQAAAAQAAAAAAAAA
AAAAAAEACgAAAAAACgAAAAAAAAAAAAAACgATAAAAAAABAAAAAAAAAAAAAACdAAADAAAAAAwAAAAA
AAAAAAAAAKYAPgMAAAAADAAAAAAAAAAAAAAApgCMAwAAAAAMAAAAAAAAAAAAAACmAMYFAAAAAAEA
BgAAAAAAAAAAANoBWgYAAAAABAAAAAAAAAAAAAAAAQB8AQAAAAACAAAAAAAAAAAAAAABAHwBAAAA
AAIAAAAAAAAAAAAAAAEACgAAAAAADAAAAAAAAAAAAAAApgDSDAAAAAAFAAQABgAEAAAAEAAMAIIC
AAAQABkAggIAAAAAGwCCAi0A0AItAFIDAAAAAAA8TW9kdWxlPgBtc2NvcmxpYgBNaWNyb3NvZnQu
VmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBTY3JpcHRDb21wb25lbnRfODViNDBlMDhmZDNlNGM5
MGI1ZmQzMGVhNWY1ZGZhMWIuTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBU
aHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJbnB1dEJ1ZmZlcgBTY3JpcHRDb21wb25lbnRfODVi
NDBlMDhmZDNlNGM5MGI1ZmQzMGVhNWY1ZGZhMWIAVXNlckNvbXBvbmVudABDb25uZWN0aW9ucwBW
YXJpYWJsZXMAU2NyaXB0TWFpbgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQXBwbGljYXRpb25TZXJ2
aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmljZXMA
Q29tcHV0ZXIAU3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVyAG1fQ29tcHV0ZXJPYmpl
Y3RQcm92aWRlcgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92aWRlcgBVc2VyAGdldF9V
c2VyAG1fVXNlck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBtX015V2ViU2VydmljZXNP
YmplY3RQcm92aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVhbHMAbwBHZXRIYXNoQ29k
ZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9fAFQAaW5zdGFuY2UARGlz
cG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0LlZpc3VhbEJhc2ljLk15
U2VydmljZXMuSW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0AEdldEluc3RhbmNlAENv
enlSb2MuU1NJU1BsdXMuMjAxNABDb3p5Um9jLlNxbFNlcnZlci5TU0lTAFNjcmlwdEJ1ZmZlclBs
dXMATWljcm9zb2Z0LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5Q
aXBlbGluZQBTY3JpcHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5QaXBlbGluZUhvc3QA
UGlwZWxpbmVCdWZmZXIAT3V0cHV0TmFtZU1hcABDb21wb25lbnQAT2JqZWN0SUQASXNJbnB1dABC
dWZmZXIAT3V0cHV0TWFwAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAZ2V0X1N0YXRpY091dHB1dENv
bHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVtbnMAU3RhdGljT3V0cHV0
Q29sdW1ucwBTY3JpcHRDb21wb25lbnRQbHVzAFByb2Nlc3NJbnB1dABJbnB1dElEAElucHV0TmFt
ZQBJbnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJvdwBQYXJlbnRDb21w
b25lbnQATWFwc1VybABBY2xTZXJ2aWNlAERhdGFDb2x1bW4AUHJlRXhlY3V0ZQBQb3N0RXhlY3V0
ZQBWYWxpZGF0ZQBlcnJNZXNzYWdlAFJlaW5pdGlhbGl6ZU1ldGFEYXRhAGdldF9Vc2VybmFtZQBz
ZXRfVXNlcm5hbWUAdmFsdWUAZ2V0X1Bhc3N3b3JkAHNldF9QYXNzd29yZABnZXRfSXNQcml2YXRl
TWFwAHNldF9Jc1ByaXZhdGVNYXAAZ2V0X01hcE5hbWUAc2V0X01hcE5hbWUARmlyZUluZm9ybWF0
aW9uXwBtZXNzYWdlAEZpcmVFcnJvcl8ATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQaXBlbGluZVdy
YXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3JhcHBlcgBJRFRTSW5wdXQxMDAA
QWRkQ29sdW1uXwBpbnB1dABuYW1lAGxlbmd0aABTeXN0ZW0uQ29sbGVjdGlvbnMAQXJyYXlMaXN0
AEdvb2dsZS5HRGF0YS5DbGllbnQAU2VydmljZQBHZXRNYXBzXwBzZXJ2aWNlAEdldE1hcElkXwBt
YXBzTGlzdABtYXBOYW1lAG1fdXNlcm5hbWUAbV9wYXNzd29yZABtX2lzUHJpdmF0ZU1hcABtX21h
cE5hbWUAU3lzdGVtLlRleHQAU3RyaW5nQnVpbGRlcgBtX3NiRGF0YQBtX2lucHV0SW5kZXhlcwBV
c2VybmFtZQBQYXNzd29yZABJc1ByaXZhdGVNYXAATWFwTmFtZQBTeXN0ZW0uQ29tcG9uZW50TW9k
ZWwARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAFN5c3RlbS5D
b2RlRG9tLkNvbXBpbGVyAEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUAU3lzdGVtLkRpYWdub3N0aWNz
AERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNl
cnZpY2VzAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFN5
c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24ASGVscEtleXdvcmRBdHRyaWJ1dGUAU3lzdGVtLlJ1
bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBSdW50aW1lSGVscGVycwBHZXRPYmplY3RWYWx1ZQBSdW50
aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0b3IAQ3JlYXRlSW5zdGFuY2UA
TXlHcm91cENvbGxlY3Rpb25BdHRyaWJ1dGUAZ2V0X1ZhbHVlAHNldF9WYWx1ZQBTeXN0ZW0uUnVu
dGltZS5JbnRlcm9wU2VydmljZXMAQ29tVmlzaWJsZUF0dHJpYnV0ZQBTdHJpbmcAU2NyaXB0QnVm
ZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBJRFRTQ29tcG9uZW50TWV0YURhdGExMDAAZ2V0X0Nv
bXBvbmVudE1ldGFEYXRhAElEVFNJbnB1dENvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29sbGVjdGlv
bgBnZXRfSXRlbQBnZXRfSUQASXNOdWxsT3JFbXB0eQBDb25jYXQAZ2V0X0J1ZmZlcgBSZXBsYWNl
AEZvcm1hdABBcHBlbmRMaW5lAElEVFNFeHRlcm5hbE1ldGFkYXRhQ29sdW1uQ29sbGVjdGlvbjEw
MABJRFRTSW5wdXRDb2x1bW4xMDAASURUU0V4dGVybmFsTWV0YWRhdGFDb2x1bW4xMDAASW50MzIA
Z2V0X0V4dGVybmFsTWV0YWRhdGFDb2x1bW5Db2xsZWN0aW9uAElEVFNJbnB1dENvbHVtbkNvbGxl
Y3Rpb24xMDAAZ2V0X0lucHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRfRXh0ZXJuYWxNZXRhZGF0YUNv
bHVtbklEAEdldE9iamVjdEJ5SUQAZ2V0X05hbWUAVG9Mb3dlcgBQaXBlbGluZUNvbXBvbmVudABn
ZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVyTWFuYWdlcgBn
ZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJRABKb2luAEF0b21FbnRyeQBBdG9tTGlu
awBFeGNlcHRpb24Ac2V0VXNlckNyZWRlbnRpYWxzAFVyaQBEZWxldGUARW5jb2RpbmcAZ2V0X1VU
RjgAR2V0Qnl0ZXMAU3lzdGVtLklPAE1lbW9yeVN0cmVhbQBTdHJlYW0ASW5zZXJ0AEF0b21MaW5r
Q29sbGVjdGlvbgBnZXRfTGlua3MARmluZFNlcnZpY2UAQXRvbVVyaQBnZXRfSFJlZgBnZXRfQ29u
dGVudABQcm9qZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQ2xlYXJQcm9qZWN0
RXJyb3IAQXBwbGljYXRpb25FeGNlcHRpb24AZ2V0X0lzQXR0YWNoZWQAZ2V0X0NvdW50AHNldF9J
c1VzZWQAUmVtb3ZlQWxsAEVtcHR5AEZpcmVJbmZvcm1hdGlvbgBGaXJlRXJyb3IATmV3AHNldF9O
YW1lAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZl
ci5EdHMuUnVudGltZS5XcmFwcGVyAERhdGFUeXBlAHNldF9EYXRhVHlwZQBzZXRfTGVuZ3RoAEZl
ZWRRdWVyeQBBdG9tRmVlZABzZXRfTnVtYmVyVG9SZXRyaWV2ZQBRdWVyeQBBdG9tRW50cnlDb2xs
ZWN0aW9uAGdldF9FbnRyaWVzAEF0b21Db2xsZWN0aW9uQmFzZWAxAEFkZABnZXRfTmV4dENodW5r
AGdldF9TdGFydEluZGV4AHNldF9TdGFydEluZGV4AEF0b21UZXh0Q29uc3RydWN0AGdldF9UaXRs
ZQBnZXRfVGV4dABPcGVyYXRvcnMAQ29tcGFyZVN0cmluZwBnZXRfRWRpdFVyaQBTU0lTU2NyaXB0
Q29tcG9uZW50RW50cnlQb2ludEF0dHJpYnV0ZQBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJp
YnV0ZXMAVmFsaWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRl
AENvbHVtbk1hcHBpbmdzQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAFBhc3N3b3JkUHJv
cGVydHlUZXh0QXR0cmlidXRlAERlZmF1bHRWYWx1ZUF0dHJpYnV0ZQBDb21waWxhdGlvblJlbGF4
YXRpb25zQXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0cmlidXRlAFN5c3RlbS5SdW50
aW1lLlZlcnNpb25pbmcAVGFyZ2V0RnJhbWV3b3JrQXR0cmlidXRlAFNjcmlwdENvbXBvbmVudF84
NWI0MGUwOGZkM2U0YzkwYjVmZDMwZWE1ZjVkZmExYi5kbGwAAAAAC0kAbgBwAHUAdAAACU4AYQBt
AGUAABFMAGEAdABpAHQAdQBkAGUAABNMAG8AbgBnAGkAdAB1AGQAZQAAF0QAZQBzAGMAcgBpAHAA
dABpAG8AbgAAAywAAAMiAAAFIgAiAAALIgB7ADAAfQAiAAALbABvAGMAYQBsAAAzQwBvAHoAeQBS
AG8AYwAgAEMAcgBlAGEAdABlACAARwBvAG8AZwBsAGUAIABNAGEAcAAAZ2gAdAB0AHAAOgAvAC8A
bQBhAHAAcwAuAGcAbwBvAGcAbABlAC4AYwBvAG0ALwBtAGEAcABzAC8AZgBlAGUAZABzAC8AbQBh
AHAAcwAvAGQAZQBmAGEAdQBsAHQALwBmAHUAbABsAAARdABlAHgAdAAvAGMAcwB2AABpaAB0AHQA
cAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAGEAYwBsAC8AMgAw
ADAANwAjAGEAYwBjAGUAcwBzAEMAbwBuAHQAcgBvAGwATABpAHMAdAAAES8AZABlAGYAYQB1AGwA
dAAANVMAcABlAGMAaQBmAHkAIABzAGUAcgB2AGkAYwBlACAAdQBzAGUAcgAgAG4AYQBtAGUALgAA
M1MAcABlAGMAaQBmAHkAIABzAGUAcgB2AGkAYwBlACAAcABhAHMAcwB3AG8AcgBkAC4AADtTAHAA
ZQBjAGkAZgB5ACAAZABlAHMAdABpAG4AYQB0AGkAbwBuACAAbQBhAHAAIABuAGEAbQBlAC4AACVN
AGEAcAAgAGkAbgBwAHUAdAAgAGMAbwBsAHUAbQBuAHMALgAAFU4AbwAgAGkAbgBwAHUAdABzAC4A
ACVHAG8AbwBnAGwAZQAgAEQAYQB0AGEAIABTAG8AdQByAGMAZQAAI0MAcgBlAGEAdABlACAARwBv
AG8AZwBsAGUAIABNAGEAcAAAAAAAc/A+j/DrOkOO/sAvtLxm/wAIt3pcVhk04IkIsD9ffxHVCjoD
IAABAwAAAQQAABIMBwYVEhgBEgwEAAASCAcGFRIYARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgB
EhQECAASDAQIABIIBAgAEhEECAASFAQgAQIcAyAACAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQ
HgACEwAEIAATAAcGFRIZARMABCgAEwAIFs9JC7gMNOoIiYRdzYCAzJELIAUBEiEIAhIlEikEIAAd
DgMgAAIEKAAdDgMGEiQDBhIoCSAEAQgOEiUSKQUgAQESHAMGEiEFIAEBEiECBg5maAB0AHQAcAA6
AC8ALwBtAGEAcABzAC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAG0AYQBwAHMALwBmAGUAZQBkAHMA
LwBtAGEAcABzAC8AZABlAGYAYQB1AGwAdAAvAGYAdQBsAGwAaGgAdAB0AHAAOgAvAC8AcwBjAGgA
ZQBtAGEAcwAuAGcAbwBvAGcAbABlAC4AYwBvAG0ALwBhAGMAbAAvADIAMAAwADcAIwBhAGMAYwBl
AHMAcwBDAG8AbgB0AHIAbwBsAEwAaQBzAHQAAwYdDgUgAQIQDgQgAQEOBCABAQIHIAMBEjEOCAgE
pZypsCc4MAYgARI1EjkGIAIOEjUOAgYCAwYSPQMGHQgDKAAOAygAAgUgAQERRQgBAAEAAAAAAAUg
AgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYV
EhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBABAAtNeS5Db21wdXRlcgAADAEAB015LlVzZXIAABMB
AA5NeS5XZWJTZXJ2aWNlcwAAEwEADk15LkFwcGxpY2F0aW9uAAAEAAEcHAMHAQIDBwEIBgABEhUR
YQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2Vz
LlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNw
b3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAgHAxMAEwATAAUBAAAA
AAQHAR0OBCAAEn0FIAASgIEFIAESMRwEAAECDgUAAg4ODgQgABIlBCABHAgFIAIODg4FAAIODhwF
IAESPQ4JBwYIDggOEhwIBSAAEoCFBSAAEoCVBiABEoCJHAYgARKAjQgFIAASgJkFIAASgJ0FIAII
CAgGAAIODh0OEgcICBKAhR0OEjEIEoCJEoCNCAYgAQESgLEFAAASgLUFIAEdBQ4FIAEBHQUNIAQS
gKESgLESgMEODgUgABKAxQcgAhKApQ4OBSAAEoDJBgABARKAqREHBxI5DhKAoQ4SNRKApRKAqQkH
BAICEjESgKkEBwESMQogBgEIDg4OCBACBSAAEoCNBiABARGA1QQgAQEIBQcBEoCNCCABEoDdEoDZ
BSAAEoDhCBUSgOUBEoChBiABEoChCAQgAQgcGAcKEjUSgNkSNRKA3QgSgKEIEoCpCBKA2QUgABKA
6QYAAwgODgIKBwYOCA4SgKEICA0BAAhWYWxpZGF0ZQAABSABAR0OLwEABAAAAAhVc2VybmFtZQhQ
YXNzd29yZAxJc1ByaXZhdGVNYXAHTWFwTmFtZQAAHwEAGlNwZWNpZnkgc2VydmljZSB1c2VyIG5h
bWUuAAAFAQABAAAeAQAZU3BlY2lmeSBzZXJ2aWNlIHBhc3N3b3JkLgAAHQEAGFNwZWNpZnkgZGVz
dGluYXRpb24gbWFwLgAAJgEAIVNwZWNpZnkgaWYgbWFwIHNob3VsZCBiZSBwcml2YXRlLgAACAEA
CAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dzAUcBABouTkVURnJhbWV3b3JrLFZl
cnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxheU5hbWUQLk5FVCBGcmFtZXdvcmsgNAAA6E4A
AAAAAAAAAAAA/k4AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBOAAAAAAAAAABfQ29yRGxsTWFp
bgBtc2NvcmVlLmRsbAAAAAAA/yUAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAA
AAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIAAAAA
AAAAAAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAAA
AAAAAAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkA
bABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwCAAAB
AFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAAACwA
AgABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwAZQBW
AGUAcgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAjAA1AAEASQBuAHQAZQByAG4AYQBsAE4A
YQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADgANQBiADQAMABlADAAOABm
AGQAMwBlADQAYwA5ADAAYgA1AGYAZAAzADAAZQBhADUAZgA1AGQAZgBhADEAYgAuAGQAbABsAAAA
AAAoAAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAlAA1AAEATwByAGkAZwBp
AG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8A
OAA1AGIANAAwAGUAMAA4AGYAZAAzAGUANABjADkAMABiADUAZgBkADMAMABlAGEANQBmADUAZABm
AGEAMQBiAC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADAA
LgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMAAu
ADAALgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAAAQPwAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property><property id="114" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="116" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_85b40e08fd3e4c90b5fd30ea5f5dfa1b</property><property id="117" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><inputs><input id="119" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True"><externalMetadataColumn id="124" name="Name" dataType="wstr" length="10" /><externalMetadataColumn id="125" name="Latitude" dataType="wstr" length="10" /><externalMetadataColumn id="126" name="Longitude" dataType="wstr" length="10" /><externalMetadataColumn id="127" name="Description" dataType="wstr" length="250" /></externalMetadataColumns></input></inputs></component>