<component id="2" name="Dynamics CRM Associations" componentClassID="{874F7595-FB5F-40FF-96AF-FBFF8250E3EF}" description="Executes a custom script." localeId="1033" version="7" 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="3" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="30"><arrayElement dataType="System.String"><![CDATA[My Project\Settings.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\AssemblyInfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Imports System
Imports System.Reflection
Imports 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.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("ScriptComponent_b5708f5a69b94658812603a4da75cbec.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_b5708f5a69b94658812603a4da75cbec.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2012")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: CLSCompliant(True)> 

<Assembly: ComVisible(False)> 

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("0e00bcf5-dba3-4d80-9bab-ff363ce0e775")> 

' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version 
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers 
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><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

    Public ReadOnly Property CrmConnection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManager
        End Get
    End Property

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[main.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-2012 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.Data
Imports System.Data.Common
Imports System.Data.SqlClient
Imports System.Collections
Imports System.Reflection
Imports System.Diagnostics
Imports System.Web.Services.Protocols

Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CRM2011 = CozyRoc.Dynamics.Crm2011.OrganizationService
Imports CRM4 = CozyRoc.Dynamics.Crm.Service


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            If Not m_service2011 Is Nothing Then
                ' CRM 2011
                Dim req As New CRM2011.OrganizationRequest
                req.RequestName = m_requestName
                req("RelationshipName") = Me.RelationshipName

                ' Setup relationship parameters.
                Dim moniker1 As New CRM2011.EntityReference
                moniker1.LogicalName = CStr(Row.Buffer(m_fenIndex))
                moniker1.Id = New Guid(Row.Buffer(m_feiIndex).ToString())
                req("Moniker1") = moniker1

                Dim moniker2 As New CRM2011.EntityReference
                moniker2.LogicalName = CStr(Row.Buffer(m_senIndex))
                moniker2.Id = New Guid(Row.Buffer(m_seiIndex).ToString())
                req("Moniker2") = moniker2

                ' Execute action.
                Call m_service2011.Execute(req)
            Else
                ' CRM 4.0

                ' Setup relationship parameters.
                Dim moniker1 As New CRM4.Moniker
                moniker1.Name = CStr(Row.Buffer(m_fenIndex))
                moniker1.Id = New Guid(Row.Buffer(m_feiIndex).ToString())

                Dim moniker2 As New CRM4.Moniker
                moniker2.Name = CStr(Row.Buffer(m_senIndex))
                moniker2.Id = New Guid(Row.Buffer(m_seiIndex).ToString())

                ' Execute action.
                Select Case Me.Action
                    Case ActionTypes.Associate
                        Dim assocReq As New CRM4.AssociateEntitiesRequest
                        assocReq.Moniker1 = moniker1
                        assocReq.Moniker2 = moniker2
                        assocReq.RelationshipName = Me.RelationshipName
                        Call m_service4.Execute(assocReq)

                    Case ActionTypes.Disassociate
                        Dim disassocReq As New CRM4.DisassociateEntitiesRequest
                        disassocReq.Moniker1 = moniker1
                        disassocReq.Moniker2 = moniker2
                        disassocReq.RelationshipName = Me.RelationshipName
                        Call m_service4.Execute(disassocReq)

                    Case Else
                        Throw New ApplicationException("Unhandled action type.")
                End Select
            End If
        Catch ex As SoapException
            Call FireError_(ex.Detail.InnerXml)
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' Input_ProcessInputRow


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

        ' Setup CRM service.
        m_connection = CType( _
            Me.Connections.CrmConnection.AcquireConnection(Nothing), _
            ICrmConnection)
        Call m_connection.Connect()

        Dim service As Object = m_connection.GetService(0)   ' 0 - CRM Service

        m_service2011 = TryCast(service, CRM2011.OrganizationServiceClient)
        If m_service2011 Is Nothing Then
            m_service4 = TryCast(service, CRM4.CrmService)
            If m_service4 Is Nothing Then
                Throw New Exception("Unhandled service object.")
            End If
        End If

        ' Setup request for CRM 2011.
        Select Case Me.Action
            Case ActionTypes.Associate
                m_requestName = "AssociateEntities"

            Case ActionTypes.Disassociate
                m_requestName = "DisassociateEntities"

            Case Else
                Throw New ApplicationException("Unhandled action type.")
        End Select

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

        ' Get input column indexes.
        inputCol = GetInputColumn_("FirstEntityName")
        m_fenIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)

        inputCol = GetInputColumn_("FirstEntityId")
        m_feiIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)

        inputCol = GetInputColumn_("SecondEntityName")
        m_senIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)

        inputCol = GetInputColumn_("SecondEntityId")
        m_seiIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)
    End Sub ' PreExecute


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

        Call m_connection.Close()
    End Sub ' PostExecute


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

        Try
            If String.IsNullOrEmpty(Me.CrmConnection) Then
                Throw New ApplicationException("Select Dynamics CRM connection.")
            End If

            If String.IsNullOrEmpty(Me.RelationshipName) Then
                Throw New ApplicationException("Specify relationship name.")
            End If

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached AndAlso _
                (input.InputColumnCollection.Count = 0 OrElse _
                input.InputColumnCollection.Count < 4) Then
                Throw New Exception("Map input columns.")
            End If

            ' Store connection information in the runtime connection collection, too.
            ' Cannot directly use RuntimeConnectionCollection in the property get/set
            ' because of issues with multi-threading.
            Me.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManagerID = Me.CrmConnection

            result = True
        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()

        Dim column As IDTSExternalMetadataColumn100

        ' Setup first entity.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "FirstEntityName"
        column.DataType = DataType.DT_WSTR
        column.Length = 100

        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "FirstEntityId"
        column.DataType = DataType.DT_GUID

        ' Setup second entity.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "SecondEntityName"
        column.DataType = DataType.DT_WSTR
        column.Length = 100

        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "SecondEntityId"
        column.DataType = DataType.DT_GUID
    End Sub ' ReinitializeMetaData


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select Dynamics CRM Connection Manager.")> _
    <Connection("CrmConnectionType")> _
    Public Property CrmConnection() As String
        Get
            CrmConnection = m_crmConnection
        End Get
        Set(ByVal value As String)
            m_crmConnection = value
        End Set
    End Property    ' CrmConnection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select action to perform.")> _
    Public Property Action() As ActionTypes
        Get
            Action = m_action
        End Get
        Set(ByVal value As ActionTypes)
            m_action = value
        End Set
    End Property    ' Action


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specify relationship name.")> _
    Public Property RelationshipName() As String
        Get
            RelationshipName = m_relationshipName
        End Get
        Set(ByVal value As String)
            m_relationshipName = value
        End Set
    End Property    ' RelationshipName
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property CrmConnectionType() As String()
        Get
            CrmConnectionType = New String() {"DYNAMICS-CRM"}
        End Get
    End Property    ' CrmConnectionType


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetInputColumn_(ByVal externalName As String) As IDTSInputColumn100
        Dim result As IDTSInputColumn100 = Nothing
        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim extColumn As IDTSExternalMetadataColumn100 = input.ExternalMetadataColumnCollection(externalName)

        ' Find input column for specified external column.
        For Each inputCol As IDTSInputColumn100 In input.InputColumnCollection
            If inputCol.ExternalMetadataColumnID = extColumn.ID Then
                ' Found input column.
                result = inputCol
                Exit For
            End If
        Next

        If result Is Nothing Then
            Throw New Exception("Input column not found.")
        End If

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


#Region "Attributes"
    Enum ActionTypes
        Associate
        Disassociate
    End Enum    ' ActionTypes

    Private m_crmConnection As String
    Private m_action As ActionTypes
    Private m_relationshipName As String

    Private m_connection As ICrmConnection
    Private m_service2011 As CRM2011.OrganizationServiceClient
    Private m_service4 As CRM4.CrmService
    Private m_requestName As String
    Private m_fenIndex As Integer
    Private m_feiIndex As Integer
    Private m_senIndex As Integer
    Private m_seiIndex As Integer
#End Region ' Attributes

End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[scriptcomponent_b5708f5a69b94658812603a4da75cbec.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">
  <!-- This section defines project-level properties.

       Configuration - Specifies whether the default configuration is Release or Debug.
       Platform - Specifies what CPU the output of this project can run on.
       OutputType - Must be "Library" for VSTA.
       NoStandardLibraries - Set to "false" for VSTA.
       RootNamespace - In C#, this specifies the namespace given to new files.
                       In Visual Basic, all objects are wrapped in this namespace at runtime.
       AssemblyName - Name of the output assembly.
  -->
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_b5708f5a69b94658812603a4da75cbec.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_b5708f5a69b94658812603a4da75cbec.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{BD678D63-B7B2-48F3-9789-55A6508A9693}</ProjectGuid>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Debug" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>true</DebugSymbols>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Release" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
  </PropertyGroup>
  <!-- This section enables pre- and post-build steps. However,
       it is recommended that MSBuild tasks be used instead of these properties.
  -->
  <PropertyGroup>
    <PreBuildEvent>
    </PreBuildEvent>
    <PostBuildEvent>
    </PostBuildEvent>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.Dynamics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL" />
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.SSISPlus.2012.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
  </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>
  <!-- This section defines the user source files that are part of the
       project.

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </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="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebug8ebde5f5-6ca5-40d8-a105-e99e2a3271bc/807843ad-19fc-4642-8e09-46c78324d8c2&quot;" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <PropertyGroup>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </PropertyGroup>
</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:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{A44366EC-8809-4941-A390-5B9E6124D09F}</msb:ProjectId>
		<msb:DisplayName>scriptcomponent_b5708f5a69b94658812603a4da75cbec</msb:DisplayName>
		<msb:CodeName>scriptcomponent_b5708f5a69b94658812603a4da75cbec</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\Settings.settings"/>
		<msb:Project Include="scriptcomponent_b5708f5a69b94658812603a4da75cbec.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?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.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: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" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </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" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </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>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement></arrayElements></property><property id="4" 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_b5708f5a69b94658812603a4da75cbec.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
CgYgggAAAG9gAAAKBh9kb2EAAAoHb1oAAApvXgAACgoGcn0BAHBvXwAACgYfSG9gAAAKKhMwAQAJ
AAAAFQAAEQJ7CgAABAoGKgAAACICA30KAAAEKgAAABMwAQAJAAAAFgAAEQJ7CwAABAoGKgAAACIC
A30LAAAEKgAAABMwAQAJAAAAFwAAEQJ7DAAABAoGKgAAACICA30MAAAEKgAAABMwAwATAAAAGAAA
EReNIQAAAQsHFnJNAgBwogcKBioAEzAHAB0AAAAZAAARFgoCKCMAAAoWcmcCAHADfmIAAAoWEgBv
YwAACioAAAAbMAIAigAAABoAABEUDQIoIwAACm8kAAAKFow5AAABbyUAAAoMCG9aAAAKA29kAAAK
CghvVQAACm9lAAAKEwUrIhEFb2YAAAp0DQAAARMEEQRvZwAACgZvaAAACjMFEQQN3iERBW9pAAAK
LdXeFhEFdUEAAAEsDBEFdUEAAAFvagAACtwJLQtynQIAcHNLAAAKegkLByoAAAEQAAACACYAPGIA
FgAAAAEeAigXAAAKKhMwAgAtAAAAGwAAEX4YAAAELSByzQIAcNANAAACKBQAAApvcgAACnNzAAAK
CweAGAAABH4YAAAEKgAAABMwAQAGAAAAHAAAEX4ZAAAEKgAAHgKAGQAABCpCcxcAAAooEQAACoAb
AAAEKgAAAB4CKHQAAAoqGzABAD8AAAAdAAARfhoAAAQtMn4bAAAEKBEAAAoodQAACn4aAAAELRxz
MQAABoAaAAAE3hB+GwAABCgRAAAKKHYAAArcfhoAAAQqAAEQAAACAB0ADCkAEAAAAAG0AAAAzsrv
vgEAAACRAAAAbFN5c3RlbS5SZXNvdXJjZXMuUmVzb3VyY2VSZWFkZXIsIG1zY29ybGliLCBWZXJz
aW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0
ZTA4OSNTeXN0ZW0uUmVzb3VyY2VzLlJ1bnRpbWVSZXNvdXJjZVNldAIAAAAAAAAAAAAAAFBBRFBB
RFC0AAAAQlNKQgEAAQAAAAAADAAAAHY0LjAuMzAzMTkAAAAABQBsAAAATA4AACN+AAC4DgAAVBMA
ACNTdHJpbmdzAAAAAAwiAAAAAwAAI1VTAAwlAAAQAAAAI0dVSUQAAAAcJQAAFAYAACNCbG9iAAAA
AAAAAAIAAAFXHaIJCQ8AAAD6JTMAFgAAAQAAAFYAAAAOAAAAGwAAADIAAAAYAAAAggAAAAIAAABE
AAAAHQAAAAcAAAAPAAAAEwAAAAkAAAABAAAADAAAAAEAAAADAAAAAwAAAAIAAAAAABcTAQAAAAAA
CgC1AYsBCgDpAcsBBgD5AfIBCgBRAosBBgDPAvIBCgBRAycDDgCjA4wDEgDyA9EDFgAjBNEDEgAy
BNEDDgDWBIwDGgCRBWkFHgDYBq8GDgA0B4wDIgCOB2EHIgDTB7YHBgBNCPIBBgCCCHEIBgCvCJoI
JgAWCQEJJgBjCU0JJgB8CU0JJgCpCZEJBgDTCcAJCgASCusJCgAqChMAJgBfCkIKBgCUCnQKBgCy
CvIBBgDWCvIBCgDvChMABgAzCxQLBgBHC/IBEgBOC9EDBgBbC/IBHgBxC68GHgCgC68GHgDLC68G
HgDoC68GHgArDK8GIgBaDGEHIgBqDGEHIgB+DLYHIgCGDLYHIgCfDLYHKgDtDM8MBgD7DPIBBgAF
DfIBCgAuDesJLgAFDfIBIgBRDWEHIgCRDbYHIgCaDbYHBgCiDfIBCgC3DesJMgDeDdMNBgBBDvIB
FgBHDtEDHgBrDq8GHgDZDq8GHgAyD68GHgBQD68GGgC2D2kFBgD6D+cPBgBGEPIBEgBaENEDDgCj
EIEQDgC/EIEQDgDXEIEQDgDvEIEQJgADEU0JJgAYEU0JBgA8ESoRBgBjEVIRBgB2EcAJBgDfEXQK
BgD/EXQKBgA3Eh0SBgBQEioRBgBtEhQLBgB7EioRBgCWEioRBgCxEioRBgDKEioRBgDjEioRBgAA
EyoRAAAAAAEAAAAAAAEAAQAAAAAAKQA3AAUAAQABAAAAAAByADcACQABAAIAAAEQAH0ANwANAAEA
AwAFAQAAhwAAAA0ABQAIAAUBAACVAAAADQAFAA8AAQAAALAAvAAdAAYAEQABAAAA9AC8AC0ABgAW
AAEAAAACAbwADQAIABoAAQAAAA4BvAANAAkAHAABAAAAGAG8ACAACgAdAAIBAAAjAQAARQAVACwA
AAAAAC8BOwENABgALAAAARAAgAG8AFEAGgAwADEAFAIgADEAPQItADEAXwI6ADEAhAJHACEAYAOQ
AAYAAgHJAAYADgHNAAEANgXhAAEANgXhAAEACAcRAQEAGAcUAQEAIQcRAQEAQwcYAQEAqAccAQEA
3gcgAQEA6QcRAQEA9wckAQEAAggkAQEADQgkAQEAGAgkAQYGUggkAVaAWggUAVaAZAgUAREAkgg6
AREAuwg+AREALglcAREANglgAVAgAAAAAAYYxQETAAEAWCAAAAAABhjFARMAAQBgIAAAAAARGAAC
FwABAIwgAAAAABMIBwIbAAEApCAAAAAAEwgtAigAAQC8IAAAAAATCFYCNQABANQgAAAAABMIdAJC
AAEA7CAAAAAARgK6AmMAAQAIIQAAAABGAsMCaAACABwhAAAAAIMA1AJsAAIANCEAAAAARgLcAnEA
AgBIIQAAAAARAOUCeAACAGQhAAAAAAEAAwOAAAMAgCEAAAAABhjFARMABACIIQAAAAADCBcDiwAE
ALwhAAAAAAYYxQETAAQA0CEAAAAABhjFAa8ABADgIQAAAABGCmwEuwAJAPQhAAAAAEYKgwS7AAkA
CCIAAAAAhgCbBMAACQAgIgAAAACGAKMEwAAJADgiAAAAAAYYxQETAAkAWCIAAAAARgLqBNEACQCI
IgAAAABGAwkF2wANAJwiAAAAAEYDHAXbAA4AoCIAAAAABhjFAeUADwCwIgAAAAAGCKoF6wAQANwi
AAAAAAYYxQHlABAA7CIAAAAABhjFARMAEQD0IgAAAABGAhwF2wARAHglAAAAAEYCygUTABIAACcA
AAAARgLVBRMAEgAUJwAAAAAGAOEF9QASAOgnAAAAAEYC9QUTABMA5CgAAAAABgiqBXEAEwD8KAAA
AAAGCAoG+wATAAgpAAAAAAYIIgYAARQAICkAAAAABggtBgUBFAAsKQAAAAAGCDgGcQAVAEQpAAAA
AAYITQb7ABUAUCkAAAAAAQhiBrsAFgBwKQAAAAABAHgG+wAWAJwpAAAAAAEA6wYLARcARCoAAAAA
AxjFARMAGABMKgAAAAAWCMcIQgEYAIgqAAAAABYI2whHARgAnCoAAAAAFgjnCEwBGACkKgAAAAAR
GAACFwAZALgqAAAAAAYYxQETABkAwCoAAAAAFghDCWMBGQAAAAEAwQIAAAEA+gIAAAEA+gIAAAEA
QAQAAAIASgQAAAMAUwQAAAQAWwQAAAUAYgQAAAEA9wQAAAIA/wQAAAMAWwQAAAQAYgQAAAEAWwQA
AAEAMgUAAAEAQAQAAAEAQAQAAAEAMgUAAAEA6gUAAAEAHAYAAAEAHAYAAAEAHAYAAAEAgwYAAAEA
+wYAAAEA8wgJAMUBEwCpAMUBbQG5AMUBfAERAMUBEwDBAMUBEwAkAMUBEwAsAMUBEwA0AMUBEwA8
AMUBEwAkABcDiwAsABcDiwA0ABcDiwA8ABcDiwDJAMUBEwDRAMUBEwDZAMUB+wDhAKMKEQIZALoC
YwAZAMMCaAApAMQKHgIZANwCcQDxAOAKLgIZAMUBEwD5AMUBPgJEAGADkABMAEMJiwBMAAoLuwJM
AMUBEwABAcUBygI5AMUBrwARAZsEwAARAaMEwAAZAcUBygJZAMUBEwBBAIoL2gIhAbcL4AIpAdgL
5gIxAeELaAAhAQsM7QI5AdgL8wJBAUQM6wBRAcUBEwBRAQoN+wBRARoN/wJJAcUBEwA5ACMNBQNJ
ANgLCgOJAdwCDwNJAToN+wCBAcUB+wBJAUoNFAN5AGYNGwNZAcUBEwBZAW4N+wBZAUoNFANhAcUB
EwBhAXcNJANhAYQNJANhAU0G+wCBAGYNKwNpAcUBEwBpAXcNJANpAYQNJANpAU0G+wCxAcUB+wC5
AcMNNANxAeYNOwPBAfENcQC5Af4NFwB5ARAOcQBBAMoFEwBhABwOZwNxAC4OEwBxADYOCgN5AcUB
+wBZAFkObAPRAYAOcgMxASMNaABpAJIOaADZAaAOeANBANUFEwBxALYOEwAJAbwOiQMxAcoOwAAx
AfYOjgPhARAPaABBARoP+wBZAPUFEwApARAPaAAxAXgPnwPxAZ0PygLhAagPEwDxAagPEwDxAbIP
pQPpAW4N+wDpAb8PqwPpAcwPsgMJAdcPEQEhAd0PzAPxAdgL1wPhAQYQ3gMBAhQQ5ANpACAQaADp
AeELaAABAj0QwAAJAlIQEwARAsUBEwAZAsUB+wAhAsUBCAQpAsUBEwAxAsUB+wA5AsUB+wBBAsUB
+wApAEURzgSRAMUB1AShAMUBEwBRAmsR8QRRAnER8QRZAsUBEwBhAsUBsgNpAsUBEwBxAsUB+wB5
AsUB+wCBAsUB+wCJAsUB+wCRAsUB+wCZAsUB+wChAsUB+wCpAsUB+wCxAsUB+wAIAFgAMAEIAFwA
NQEpAIMAywEuAPsDyAUuABMEyAUuAPMDqAUuAMsDBAUuANMDIwUuAOsDzwIuAAsEzwIuAMMD+wQu
AAMEBQYuANsDawUuAOMDeAUuAOsAzwIuAAsBogVAACsANQFAABMAcwFDABMAcwFDABsAggFJAIMA
3AFjABsAggFjABMAcwFpAIMA8AGAACsANQGDABsAggGDAHsANQGDAHMANQGJAIMA/QGgACsANQGj
AMMARgKjABMAcwHAACsANQHDAOsAzwLDABMAcwHgACsANQHjAAsBzwIAARMAcwEAASsANQEDAQsB
zwIgASsANQEgARMAcwEpAYsDgQQpAXsDPQQpAYMDVARAASsANQFAARMAcwFJAYMDrwRJAYsDgQRg
ARMAcwFgASsANQFjAVsDNQFjAXMDNQFjAWMD+gNjAWsDDgRjAQsBzwJpAYMDjwRpAYsDgQSAASsA
NQGgASsANQGpARMA6ATAARMAcwHAASsANQHJARMA6ATgASsANQHpAbsDNQEAAhMAcwEAAisANQFA
AwsBzwKAAwsBzwK3AbwBwQHGARYCGgIlAioCOQI5AsEC1QLVAhYCFgL6AkEDfgOUA7cDKgLAAyoC
xQMWAugD3ATjBPYEBAABAAYABQAHAAYACQAIAAsACQANAA0ADgAPAAAA6QFPAAAAogJUAAAAUQJZ
AAAArgJeAAAAagOYAAAArwTEAAAAwgTEAAAAvAXwAAAAvAUnAQAAIwgrAQAAKggnAQAAOwjEAAAA
gghSAQAA+QhXAQAA8whoAQIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAIAEwAP
AAIAGwARAAEAJAATAAIAIwATAAIAJQAVAAEAJgAVAAEAKAAXAAIAJwAXAAIAKQAZAAIALQAbAAIA
LgAdAAEALwAdAAIAMgAfAHUAdQCIAJsBogGpAbABqAKvAgSAAAABAAAAAAAAAAAAAAAAALwAAAAE
AAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQB2AwAA
AAALAAAAAAAAAAAAAACmALQDAAAAAAsAAAAAAAAAAAAAAKYAAgQAAAAACwAAAAAAAAAAAAAApgBG
BQAAAAALAAAAAAAAAAAAAACmAIsGAAAAAAEAAAAAAAAAAAAAAJ0AUAcAAAAABAAAAAAAAAAAAAAA
AQDyAQAAAAAEAAAAAAAAAAAAAAAKALsMAAAAAAIAAAAAAAAAAAAAAAEACgAAAAAABAAAAAAAAAAA
AAAAAQDTDQAAAAAAAAAAAQAAAJMRAAAFAAQABgAEAAwACwAAABAADAD4AgAAEAAZAPgCAAAAABsA
+AItADQCLQC2AgAAADxNb2R1bGU+AG1zY29ybGliAE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFw
cGxpY2F0aW9uAFNjcmlwdENvbXBvbmVudF9iNTcwOGY1YTY5Yjk0NjU4ODEyNjAzYTRkYTc1Y2Jl
Yy52YnByb2ouTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZl
T2JqZWN0UHJvdmlkZXJgMQBJbnB1dEJ1ZmZlcgBTY3JpcHRDb21wb25lbnRfYjU3MDhmNWE2OWI5
NDY1ODgxMjYwM2E0ZGE3NWNiZWMudmJwcm9qAFVzZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFy
aWFibGVzAFNjcmlwdE1haW4AQWN0aW9uVHlwZXMATXlSZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50
X2I1NzA4ZjVhNjliOTQ2NTg4MTI2MDNhNGRhNzVjYmVjLnZicHJvai5NeS5SZXNvdXJjZXMATXlT
ZXR0aW5ncwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQXBwbGljYXRpb25TZXJ2aWNlcwBBcHBsaWNh
dGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmljZXMAQ29tcHV0ZXIAU3lz
dGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVyAG1fQ29tcHV0ZXJPYmplY3RQcm92aWRlcgBn
ZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92aWRlcgBVc2VyAGdldF9Vc2VyAG1fVXNlck9i
amVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBtX015V2ViU2VydmljZXNPYmplY3RQcm92aWRl
cgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVhbHMAbwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5
cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9fAFQAaW5zdGFuY2UARGlzcG9zZV9fSW5zdGFu
Y2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50
ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0AEdldEluc3RhbmNlAENvenlSb2MuU1NJU1Bs
dXMuMjAxMgBDb3p5Um9jLlNxbFNlcnZlci5TU0lTAFNjcmlwdEJ1ZmZlclBsdXMATWljcm9zb2Z0
LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZQBTY3Jp
cHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5QaXBlbGluZUhvc3QAUGlwZWxpbmVCdWZm
ZXIAT3V0cHV0TmFtZU1hcABDb21wb25lbnQAT2JqZWN0SUQASXNJbnB1dABCdWZmZXIAT3V0cHV0
TWFwAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAZ2V0X1N0YXRpY091dHB1dENvbHVtbnMATmV4dFJv
dwBFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVtbnMAU3RhdGljT3V0cHV0Q29sdW1ucwBTY3Jp
cHRDb21wb25lbnRQbHVzAFByb2Nlc3NJbnB1dABJbnB1dElEAElucHV0TmFtZQBJbnB1dF9Qcm9j
ZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJvdwBQYXJlbnRDb21wb25lbnQATWljcm9z
b2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50
aW1lLldyYXBwZXIASURUU0Nvbm5lY3Rpb25NYW5hZ2VyMTAwAGdldF9Dcm1Db25uZWN0aW9uAENy
bUNvbm5lY3Rpb24AUHJlRXhlY3V0ZQBQb3N0RXhlY3V0ZQBWYWxpZGF0ZQBlcnJNZXNzYWdlAFJl
aW5pdGlhbGl6ZU1ldGFEYXRhAHNldF9Dcm1Db25uZWN0aW9uAHZhbHVlAGdldF9BY3Rpb24Ac2V0
X0FjdGlvbgBnZXRfUmVsYXRpb25zaGlwTmFtZQBzZXRfUmVsYXRpb25zaGlwTmFtZQBnZXRfQ3Jt
Q29ubmVjdGlvblR5cGUARmlyZUVycm9yXwBtZXNzYWdlAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRT
UGlwZWxpbmVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldyYXBwZXIASURU
U0lucHV0Q29sdW1uMTAwAEdldElucHV0Q29sdW1uXwBleHRlcm5hbE5hbWUAbV9jcm1Db25uZWN0
aW9uAG1fYWN0aW9uAG1fcmVsYXRpb25zaGlwTmFtZQBJQ3JtQ29ubmVjdGlvbgBtX2Nvbm5lY3Rp
b24AQ296eVJvYy5EeW5hbWljcwBDb3p5Um9jLkR5bmFtaWNzLkNybTIwMTEuT3JnYW5pemF0aW9u
U2VydmljZQBPcmdhbml6YXRpb25TZXJ2aWNlQ2xpZW50AG1fc2VydmljZTIwMTEAQ296eVJvYy5E
eW5hbWljcy5Dcm0uU2VydmljZQBDcm1TZXJ2aWNlAG1fc2VydmljZTQAbV9yZXF1ZXN0TmFtZQBt
X2ZlbkluZGV4AG1fZmVpSW5kZXgAbV9zZW5JbmRleABtX3NlaUluZGV4AEFjdGlvbgBSZWxhdGlv
bnNoaXBOYW1lAENybUNvbm5lY3Rpb25UeXBlAEVudW0AdmFsdWVfXwBBc3NvY2lhdGUARGlzYXNz
b2NpYXRlAFN5c3RlbS5SZXNvdXJjZXMAUmVzb3VyY2VNYW5hZ2VyAF9yZXNNZ3IAU3lzdGVtLkds
b2JhbGl6YXRpb24AQ3VsdHVyZUluZm8AX3Jlc0N1bHR1cmUAZ2V0X1Jlc291cmNlTWFuYWdlcgBn
ZXRfQ3VsdHVyZQBzZXRfQ3VsdHVyZQBWYWx1ZQBDdWx0dXJlAFN5c3RlbS5Db25maWd1cmF0aW9u
AEFwcGxpY2F0aW9uU2V0dGluZ3NCYXNlAG1fVmFsdWUAbV9TeW5jT2JqZWN0AGdldF9WYWx1ZQBT
eXN0ZW0uQ29tcG9uZW50TW9kZWwARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAEVkaXRvckJyb3dz
YWJsZVN0YXRlAFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVyAEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUA
U3lzdGVtLkRpYWdub3N0aWNzAERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5Db21waWxlclNlcnZpY2VzAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1
bGVOYW1lQXR0cmlidXRlAFN5c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24ASGVscEtleXdvcmRB
dHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBSdW50aW1lSGVscGVycwBH
ZXRPYmplY3RWYWx1ZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0
b3IAQ3JlYXRlSW5zdGFuY2UATXlHcm91cENvbGxlY3Rpb25BdHRyaWJ1dGUAc2V0X1ZhbHVlAFN5
c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBT
Y3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRlAElEVFNDb21wb25lbnRNZXRhRGF0YTEw
MABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRD
b2xsZWN0aW9uAElEVFNJbnB1dDEwMABnZXRfSXRlbQBnZXRfSUQASURUU1J1bnRpbWVDb25uZWN0
aW9uQ29sbGVjdGlvbjEwMABnZXRfUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uAElEVFNSdW50
aW1lQ29ubmVjdGlvbjEwMABnZXRfQ29ubmVjdGlvbk1hbmFnZXIARW50aXR5UmVmZXJlbmNlAE9y
Z2FuaXphdGlvblJlcXVlc3QATW9uaWtlcgBBc3NvY2lhdGVFbnRpdGllc1JlcXVlc3QARGlzYXNz
b2NpYXRlRW50aXRpZXNSZXF1ZXN0AFN5c3RlbS5XZWIuU2VydmljZXMAU3lzdGVtLldlYi5TZXJ2
aWNlcy5Qcm90b2NvbHMAU29hcEV4Y2VwdGlvbgBFeGNlcHRpb24AR3VpZABzZXRfUmVxdWVzdE5h
bWUAc2V0X0l0ZW0AZ2V0X0J1ZmZlcgBDb252ZXJzaW9ucwBzZXRfTG9naWNhbE5hbWUAc2V0X0lk
AE9yZ2FuaXphdGlvblJlc3BvbnNlAEV4ZWN1dGUAc2V0X05hbWUAc2V0X01vbmlrZXIxAHNldF9N
b25pa2VyMgBSZXNwb25zZQBSZXF1ZXN0AEFwcGxpY2F0aW9uRXhjZXB0aW9uAFByb2plY3REYXRh
AFNldFByb2plY3RFcnJvcgBTeXN0ZW0uWG1sAFhtbE5vZGUAZ2V0X0RldGFpbABnZXRfSW5uZXJY
bWwAQ2xlYXJQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQWNxdWlyZUNvbm5lY3Rpb24AQ29ubmVj
dABHZXRTZXJ2aWNlAEludDMyAFBpcGVsaW5lQ29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50AElE
VFNCdWZmZXJNYW5hZ2VyMTAwAGdldF9CdWZmZXJNYW5hZ2VyAGdldF9MaW5lYWdlSUQARmluZENv
bHVtbkJ5TGluZWFnZUlEAENsb3NlAElzTnVsbE9yRW1wdHkAZ2V0X0lzQXR0YWNoZWQASURUU0lu
cHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAGdldF9Db3Vu
dABzZXRfQ29ubmVjdGlvbk1hbmFnZXJJRABJRFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbjEwMABJ
RFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X0V4dGVybmFsTWV0YWRh
dGFDb2x1bW5Db2xsZWN0aW9uAHNldF9Jc1VzZWQAUmVtb3ZlQWxsAE5ldwBEYXRhVHlwZQBzZXRf
RGF0YVR5cGUAc2V0X0xlbmd0aABFbXB0eQBGaXJlRXJyb3IAU3lzdGVtLkNvbGxlY3Rpb25zAElF
bnVtZXJhdG9yAEdldEVudW1lcmF0b3IAZ2V0X0N1cnJlbnQAZ2V0X0V4dGVybmFsTWV0YWRhdGFD
b2x1bW5JRABNb3ZlTmV4dABJRGlzcG9zYWJsZQBEaXNwb3NlAFNTSVNTY3JpcHRDb21wb25lbnRF
bnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBWYWxp
ZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFByb3BlcnRpZXNBdHRyaWJ1dGUAQ29sdW1uTWFw
cGluZ3NBdHRyaWJ1dGUAQ29ubmVjdGlvbkF0dHJpYnV0ZQBEZXNjcmlwdGlvbkF0dHJpYnV0ZQBD
YXRlZ29yeUF0dHJpYnV0ZQBTeXN0ZW0uUmVmbGVjdGlvbgBBc3NlbWJseQBnZXRfQXNzZW1ibHkA
U3lzdGVtLlRocmVhZGluZwBNb25pdG9yAEVudGVyAEV4aXQARGVidWdnZXJOb25Vc2VyQ29kZUF0
dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfYjU3MDhmNWE2OWI5NDY1ODgxMjYwM2E0ZGE3NWNiZWMu
dmJwcm9qLlJlc291cmNlcy5yZXNvdXJjZXMAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0
ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5n
AFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBBc3NlbWJseUZpbGVWZXJzaW9uQXR0cmlidXRlAEd1
aWRBdHRyaWJ1dGUAQXNzZW1ibHlUcmFkZW1hcmtBdHRyaWJ1dGUAQXNzZW1ibHlDb3B5cmlnaHRB
dHRyaWJ1dGUAQXNzZW1ibHlQcm9kdWN0QXR0cmlidXRlAEFzc2VtYmx5Q29tcGFueUF0dHJpYnV0
ZQBBc3NlbWJseURlc2NyaXB0aW9uQXR0cmlidXRlAEFzc2VtYmx5VGl0bGVBdHRyaWJ1dGUAU2Ny
aXB0Q29tcG9uZW50X2I1NzA4ZjVhNjliOTQ2NTg4MTI2MDNhNGRhNzVjYmVjLnZicHJvai5kbGwA
AAALSQBuAHAAdQB0AAAbQwByAG0AQwBvAG4AbgBlAGMAdABpAG8AbgAAIVIAZQBsAGEAdABpAG8A
bgBzAGgAaQBwAE4AYQBtAGUAABFNAG8AbgBpAGsAZQByADEAABFNAG8AbgBpAGsAZQByADIAAC1V
AG4AaABhAG4AZABsAGUAZAAgAGEAYwB0AGkAbwBuACAAdAB5AHAAZQAuAAAzVQBuAGgAYQBuAGQA
bABlAGQAIABzAGUAcgB2AGkAYwBlACAAbwBiAGoAZQBjAHQALgAAI0EAcwBzAG8AYwBpAGEAdABl
AEUAbgB0AGkAdABpAGUAcwAAKUQAaQBzAGEAcwBzAG8AYwBpAGEAdABlAEUAbgB0AGkAdABpAGUA
cwAAH0YAaQByAHMAdABFAG4AdABpAHQAeQBOAGEAbQBlAAAbRgBpAHIAcwB0AEUAbgB0AGkAdAB5
AEkAZAAAIVMAZQBjAG8AbgBkAEUAbgB0AGkAdAB5AE4AYQBtAGUAAB1TAGUAYwBvAG4AZABFAG4A
dABpAHQAeQBJAGQAAD9TAGUAbABlAGMAdAAgAEQAeQBuAGEAbQBpAGMAcwAgAEMAUgBNACAAYwBv
AG4AbgBlAGMAdABpAG8AbgAuAAA1UwBwAGUAYwBpAGYAeQAgAHIAZQBsAGEAdABpAG8AbgBzAGgA
aQBwACAAbgBhAG0AZQAuAAAlTQBhAHAAIABpAG4AcAB1AHQAIABjAG8AbAB1AG0AbgBzAC4AABVO
AG8AIABpAG4AcAB1AHQAcwAuAAAZRABZAE4AQQBNAEkAQwBTAC0AQwBSAE0AATVEAHkAbgBhAG0A
aQBjAHMAIABDAFIATQAgAFIAZQBsAGEAdABpAG8AbgBzAGgAaQBwAHMAAC9JAG4AcAB1AHQAIABj
AG8AbAB1AG0AbgAgAG4AbwB0ACAAZgBvAHUAbgBkAC4AADFNAHkALgBSAGUAcwBvAHUAcgBjAGUA
cwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAADC8K6L1YNFNo7uqph5fLcUACLd6XFYZNOCJCLA/
X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgBEhEEAAAS
FAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAHEAEBHgAe
AAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTqCImEXc2AgMyRCyAFARIhCAIS
JRIpBCAAHQ4DIAACBCgAHQ4DBhIkAwYSKAkgBAEIDhIlEikFIAEBEhwDBhIhBSABARIhBCAAEjEE
KAASMQUgAQIQDgQgAQEOBCAAETAFIAEBETAFIAESNQ4CBg4DBhEwAwYSOQMGEj0DBhJBAgYIAygA
DgQoABEwBAAAAAAEAQAAAAMGEkkDBhJNBAAAEkkEAAASTQUAAQESTQQIABJJBAgAEk0DBhI4AgYc
BAAAEjgECAASOAUgAQERWQgBAAEAAAAAAAUgAgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAG
FRIYARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcBEgwEBwESCAQHARIRBAcBEhQQAQALTXkuQ29t
cHV0ZXIAABMBAA5NeS5BcHBsaWNhdGlvbgAADAEAB015LlVzZXIAABMBAA5NeS5XZWJTZXJ2aWNl
cwAABAABHBwDBwECAwcBCAYAARIVEXUEBwESFQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5h
AQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJD
cmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoB
EwAFIAEBEwAIBwMTABMAEwAEIAEBAgUBAAAAAAQHAR0OBSAAEoCRBSAAEoCVBiABEoCZHAUgABKA
nQYgARKAoRwEBwESMQUgAgEOHAQgABIlBCABHAgEAAEOHAYgAQERgMkIIAESgM0SgKkGIAEBEoCt
CCABEoDREoDVBgABARKAvQUgABKA4SUHDBKApRKApRKAqRKArRKArRKAsRKAtRKAuRKAvRGAwRGA
wREwBCABHBwFIAASgOkFIAASgO0FIAIICAgKBwQSgJkSNRwRMAQAAQIOBSAAEoDxCgcEAgISgJkS
gL0FIAASgPkFIAASgPUGIAEBEYD9BCABAQgIBwISgPUSgJkEBwERMAYHAh0OHQ4KIAYBCA4ODggQ
AgYgARKA9RwFIAASgQEDIAAcEQcGEoD1EjUSgJkSNRI1EoEBDQEACFZhbGlkYXRlAAAFIAEBHQ4u
AQADAAAADUNybUNvbm5lY3Rpb24GQWN0aW9uEFJlbGF0aW9uc2hpcE5hbWUAABYBABFDcm1Db25u
ZWN0aW9uVHlwZQAALAEAJ1NlbGVjdCBEeW5hbWljcyBDUk0gQ29ubmVjdGlvbiBNYW5hZ2VyLgAA
DQEACFNldHRpbmdzAAAfAQAaU3BlY2lmeSByZWxhdGlvbnNoaXAgbmFtZS4AAB4BABlTZWxlY3Qg
YWN0aW9uIHRvIHBlcmZvcm0uAAAFIAASgSUHIAIBDhKBJQYHAhJJEkkEBwESTQgBAAIAAAAAAAQA
AQEcBAcBEjgIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBRwEAGi5ORVRG
cmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1l
d29yayA0DAEABzEuMC4wLjAAACkBACQwZTAwYmNmNS1kYmEzLTRkODAtOWJhYi1mZjM2M2NlMGU3
NzUAAAUBAAEAAB8BABpDb3B5cmlnaHQgQCBNaWNyb3NvZnQgMjAxMgAAPAEAN1NjcmlwdENvbXBv
bmVudF9iNTcwOGY1YTY5Yjk0NjU4ODEyNjAzYTRkYTc1Y2JlYy52YnByb2oAAA4BAAlNaWNyb3Nv
ZnQAACxXAAAAAAAAAAAAAE5XAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAVwAAAAAAAAAAAAAA
AAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACBAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAAgAAAAAAA
AAAAAAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAABoBAAAAAAAAAAA
AABoBDQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAAAAEAAAAA
AAAAAQAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYAaQBsAGUA
SQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAEyAMAAAEAUwB0
AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAApAMAAAEAMAAwADAAMAAwADQAYgAwAAAANAAKAAEA
QwBvAG0AcABhAG4AeQBOAGEAbQBlAAAAAABNAGkAYwByAG8AcwBvAGYAdAAAAJgAOAABAEYAaQBs
AGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4A
dABfAGIANQA3ADAAOABmADUAYQA2ADkAYgA5ADQANgA1ADgAOAAxADIANgAwADMAYQA0AGQAYQA3
ADUAYwBiAGUAYwAuAHYAYgBwAHIAbwBqAAAAMAAIAAEARgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAA
AAAxAC4AMAAuADAALgAwAAAAmAA8AAEASQBuAHQAZQByAG4AYQBsAE4AYQBtAGUAAABTAGMAcgBp
AHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGIANQA3ADAAOABmADUAYQA2ADkAYgA5ADQANgA1ADgA
OAAxADIANgAwADMAYQA0AGQAYQA3ADUAYwBiAGUAYwAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAABc
ABsAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAABDAG8AcAB5AHIAaQBnAGgAdAAgAEAA
IABNAGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADIAAAAAAKAAPAABAE8AcgBpAGcAaQBuAGEAbABG
AGkAbABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGIANQA3ADAA
OABmADUAYQA2ADkAYgA5ADQANgA1ADgAOAAxADIANgAwADMAYQA0AGQAYQA3ADUAYwBiAGUAYwAu
AHYAYgBwAHIAbwBqAC4AZABsAGwAAACQADgAAQBQAHIAbwBkAHUAYwB0AE4AYQBtAGUAAAAAAFMA
YwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AYgA1ADcAMAA4AGYANQBhADYAOQBiADkANAA2
ADUAOAA4ADEAMgA2ADAAMwBhADQAZABhADcANQBjAGIAZQBjAC4AdgBiAHAAcgBvAGoAAAA0AAgA
AQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAOAAIAAEAQQBz
AHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADEALgAwAC4AMAAuADAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAAYDcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="11" 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_b5708f5a69b94658812603a4da75cbec</property><property id="12" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="14" name="CrmConnection" connectionManagerID="{E61DCFD1-42B3-43CF-BE85-E7445D992638}" /></connections><inputs><input id="15" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True"><externalMetadataColumn id="20" name="FirstEntityName" dataType="wstr" length="100" /><externalMetadataColumn id="21" name="FirstEntityId" dataType="guid" /><externalMetadataColumn id="22" name="SecondEntityName" dataType="wstr" length="100" /><externalMetadataColumn id="23" name="SecondEntityId" dataType="guid" /></externalMetadataColumns></input></inputs></component>