<component id="2" name="Dynamics CRM Incident State" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="10" 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="15"><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-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.Collections
Imports System.Web.Services.Protocols

Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime
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
Imports CRM3 = CozyRoc.Dynamics.Crm3.Service


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ColumnMappings()> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Class Consts
        Public Const Incident As String = "incident"
        Public Const IncidentResolution As String = "incidentresolution"
        Public Const IncidentState As String = "incidentstatecode"
        Public Const IncidentStatus As String = "incidentstatuscode"
        Public Const ReferenceType As String = "ReferenceType"
        Public Const IncidentId As String = "incidentid"
    End Class


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            If Not m_service2011 Is Nothing Then
                Call Process2011_(Row.Buffer)
            ElseIf Not m_service4 Is Nothing Then
                Call Process4_(Row.Buffer)
            Else
                Call Process3_(Row.Buffer)
            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
                m_service3 = TryCast(service, CRM3.CrmService)
                If m_service3 Is Nothing Then
                    Throw New Exception("Unhandled service object.")
                End If
            End If
        End If

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        m_resolutionEntity = m_connection.ConstructEntity(Consts.IncidentResolution)

        ' Get input column indexes.
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_inputIdx = New Integer(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim inputCol As IDTSInputColumn100 = Input.InputColumnCollection(colIndex)

            Dim extColumn As IDTSExternalMetadataColumn100 = Input.ExternalMetadataColumnCollection.GetObjectByID( _
                    inputCol.ExternalMetadataColumnID)

            If extColumn.Name = Consts.IncidentState Then
                m_stateIdx = colIndex
            ElseIf extColumn.Name = Consts.IncidentStatus Then
                m_statusIdx = colIndex
            Else
                Dim refType As String = CStr(extColumn.CustomPropertyCollection(Consts.ReferenceType).Value)
                Call m_resolutionEntity.SetupAttribute(extColumn.Name, refType)
            End If

            m_inputIdx(colIndex) = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inputCol.LineageID)
        Next

        If m_stateIdx = -1 Then
            Throw New Exception(Consts.IncidentState + " not mapped.")
        End If
    End Sub ' PreExecute


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

        Call m_connection.Close()
        m_resolutionEntity = Nothing
        m_inputIdx = Nothing
        m_stateIdx = -1
        m_statusIdx = -1
    End Sub ' PostExecute


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

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

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached AndAlso input.InputColumnCollection.Count = 0 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
        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

        If String.IsNullOrEmpty(Me.CrmConnection) Then
            Throw New Exception("Connection not selected.")
        End If

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

        ' Get incidentresolution attributes.
        Dim connection As ICrmConnection = Nothing
        Dim attributes As ICrmAttribute()
        Try
            Dim manager As ConnectionManager = Me.DesignConnections(Me.CrmConnection)
            connection = CType(manager.AcquireConnection(Nothing), ICrmConnection)
            Call connection.Connect()

            attributes = connection.GetEntityAttributes(Consts.IncidentResolution)
        Finally
            If Not connection Is Nothing Then
                Call connection.Close()
            End If
        End Try

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

        Dim extColumn As IDTSExternalMetadataColumn100

        ' Setup column metadata.
        For Each attribute As ICrmAttribute In attributes
            extColumn = input.ExternalMetadataColumnCollection.[New]()
            extColumn.Name = attribute.Name
            extColumn.DataType = CType(attribute.AttributeType, DataType)
            extColumn.Length = attribute.Length
            extColumn.Precision = attribute.Precision
            extColumn.Scale = attribute.Scale
            extColumn.CodePage = 0

            ' Setup reference type property.
            Dim prop As IDTSCustomProperty100 = extColumn.CustomPropertyCollection.[New]()
            prop.Name = Consts.ReferenceType
            prop.Value = attribute.Reference
        Next

        ' Include incident state column.
        extColumn = input.ExternalMetadataColumnCollection.[New]()
        extColumn.Name = Consts.IncidentState
        extColumn.DataType = DataType.DT_I4

        ' Include incident status column.
        extColumn = input.ExternalMetadataColumnCollection.[New]()
        extColumn.Name = Consts.IncidentStatus
        extColumn.DataType = DataType.DT_I4
    End Sub ' ReinitializeMetaData


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <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
#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 Incident State", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub GetValues_( _
        ByRef buffer As PipelineBuffer, _
        ByRef state As Integer, _
        ByRef status As Integer)

        state = -1
        status = -1

        Dim entityIndex As Integer = 0
        Dim colsCount As Integer = m_inputIdx.Length
        For colIndex As Integer = 0 To colsCount - 1
            Dim bufIndex As Integer = m_inputIdx(colIndex)

            ' Get value.
            Dim value As Object = Nothing
            If Not buffer.IsNull(bufIndex) Then
                value = buffer(bufIndex)

                If TypeOf value Is BlobColumn Then
                    value = buffer.GetString(bufIndex)
                End If
            End If

            If colIndex = m_stateIdx Then
                state = Convert.ToInt32(value)
            ElseIf colIndex = m_statusIdx Then
                status = Convert.ToInt32(value)
            Else
                m_resolutionEntity.SetAttributeValue(entityIndex, value)
                entityIndex += 1
            End If
        Next

        If state < 0 OrElse state > 2 Then
            Throw New Exception("Unhandled incident state.")
        End If
    End Sub ' GetValues_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process2011_(ByVal buffer As PipelineBuffer)
        Dim req As CRM2011.OrganizationRequest = New CRM2011.OrganizationRequest()

        Dim state, status As Integer
        Call GetValues_(buffer, state, status)

        Dim osv As CRM2011.OptionSetValue

        ' Setup status.
        osv = New CRM2011.OptionSetValue()
        osv.Value = status
        req("Status") = osv

        Select Case state
            Case 0, 2
                req.RequestName = "SetState"

                ' Setup state.
                osv = New CRM2011.OptionSetValue()
                osv.Value = state
                req("State") = osv

                ' Setup entity
                Dim entityRef As CRM2011.EntityReference = New CRM2011.EntityReference()
                entityRef.LogicalName = Consts.Incident
                entityRef.Id = New Guid(m_resolutionEntity.GetAttributeValue(Consts.IncidentId).ToString())
                req("EntityMoniker") = entityRef

            Case 1
                req.RequestName = "CloseIncident"
                req("IncidentResolution") = m_resolutionEntity.ConstructDynamicEntity()
        End Select

        Call m_service2011.Execute(req)
    End Sub ' Process2011_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process4_(ByVal buffer As PipelineBuffer)
        Dim req As CRM4.Request = Nothing

        Dim state, status As Integer
        Call GetValues_(buffer, state, status)

        Select Case CType(state, CRM4.IncidentState)
            Case CRM4.IncidentState.Active, CRM4.IncidentState.Canceled
                Dim stateReq As CRM4.SetStateDynamicEntityRequest = New CRM4.SetStateDynamicEntityRequest()

                ' Setup state.
                stateReq.State = CStr(CType(state, CRM4.IncidentState))

                ' Setup status.
                stateReq.Status = status

                ' Setup entity.
                Dim moniker As CRM4.Moniker = New CRM4.Moniker()
                moniker.Name = Consts.Incident
                moniker.Id = New Guid(m_resolutionEntity.GetAttributeValue(Consts.IncidentId).ToString())
                stateReq.Entity = moniker

                req = stateReq

            Case CRM4.IncidentState.Resolved
                Dim closeReq As CRM4.CloseIncidentRequest = New CRM4.CloseIncidentRequest()
                closeReq.Status = status
                closeReq.IncidentResolution = CType( _
                    m_resolutionEntity.ConstructDynamicEntity(), _
                    CRM4.BusinessEntity)

                req = closeReq
        End Select

        Call m_service4.Execute(req)
    End Sub ' Process4_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process3_(ByVal buffer As PipelineBuffer)
        Dim req As CRM3.Request = Nothing

        Dim state, status As Integer
        Call GetValues_(buffer, state, status)

        Select Case CType(state, CRM3.IncidentState)
            Case CRM3.IncidentState.Active, CRM3.IncidentState.Canceled
                Dim stateReq As CRM3.SetStateDynamicEntityRequest = New CRM3.SetStateDynamicEntityRequest()

                ' Setup state.
                stateReq.State = CStr(CType(state, CRM4.IncidentState))

                ' Setup status.
                stateReq.Status = status

                ' Setup entity.
                Dim moniker As CRM3.Moniker = New CRM3.Moniker()
                moniker.Name = Consts.Incident
                moniker.Id = New Guid(m_resolutionEntity.GetAttributeValue(Consts.IncidentId).ToString())
                stateReq.Entity = moniker

                req = stateReq

            Case CRM3.IncidentState.Resolved
                Dim closeReq As CRM3.CloseIncidentRequest = New CRM3.CloseIncidentRequest()
                closeReq.Status = status
                closeReq.IncidentResolution = CType( _
                    m_resolutionEntity.ConstructDynamicEntity(), _
                    CRM3.BusinessEntity)

                req = closeReq
        End Select

        Call m_service3.Execute(req)
    End Sub ' Process3_
#End Region ' Internals


#Region "Attributes"
    Private m_crmConnection As String

    Private m_connection As ICrmConnection
    Private m_service2011 As CRM2011.OrganizationServiceClient
    Private m_service4 As CRM4.CrmService
    Private m_service3 As CRM3.CrmService
    Private m_resolutionEntity As ICrmEntity
    Private m_inputIdx() As Integer
    Private m_stateIdx As Integer = -1
    Private m_statusIdx As Integer = -1
#End Region ' Attributes

End Class   ' ScriptMain
]]></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[ScriptComponent_35b8e9af88b149f6bbd5e9fcf2b2bbdc.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>{AE391FCD-B458-4806-AF16-DB697F5ED736}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_2a1f0d76aadc4013b13de6936c464866</RootNamespace>
    <AssemblyName>ScriptComponent_2a1f0d76aadc4013b13de6936c464866</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </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.2016, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\130\SDK\Assemblies\CozyRoc.SSISPlus.2016.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=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS" />
    <Reference Include="CozyRoc.Dynamics" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.Xml" />
  </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_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC130</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>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
</Project>]]></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[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:ProjectId>{6742C6DD-DA40-46AB-85B8-9062774875FD}</msb:ProjectId>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:Language>msBuild</msb:Language>
		<msb:CodeName>ScriptComponent_35b8e9af88b149f6bbd5e9fcf2b2bbdc</msb:CodeName>
		<msb:DisplayName>ScriptComponent_35b8e9af88b149f6bbd5e9fcf2b2bbdc</msb:DisplayName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:Project Include="ScriptComponent_35b8e9af88b149f6bbd5e9fcf2b2bbdc.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></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_2a1f0d76aadc4013b13de6936c464866.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
EADjKAAAAADGCoUOegMQAOwoAAAAAIYAlBDjABAABCkAAAAAhgA+D+MAEAAZKQAAAAAGGOkMBgAQ
ADkpAAAAAMYCYxCQAxAAaSkAAAAARgNdEG4DFAB8KQAAAABGA34QbgMVAH4pAAAAAAYY6QybAxYA
jSkAAAAABgiDCt8BFwCuKQAAAAAGGOkMmwMXAL0pAAAAAAYY6QwGABgAxSkAAAAABhjpDAYAGADN
KQAAAAATCJsMogMYANkpAAAAABMItAmnAxgA5SkAAAAAEwiSDKwDGADxKQAAAAATCEwNsgMYAP0p
AAAAABEY7wxLABgAJyoAAAAABhjpDAYAGAAvKgAAAADGAkkOBwIYAD0qAAAAAMYCWgSKABkARSoA
AAAAgwCSBbcDGQBRKgAAAADGAnoIRwAZAFwqAAAAABEA5gK9AxkAfCoAAAAAAQDSAsUDGgAnKgAA
AAAGGOkMBgAbAIgqAAAAAAMIIwTsARsAvCoAAAAABhjpDAYAGwAAAAEAmBAAAAEAhwQAAAEATAgA
AAEAkgQAAAEA8gsAAAIA+wUAAAMAHg8AAAEA8gsAAAEA8gsAAAEA8gsAAAEAtQ8AAAIAWgIAAAMA
VRAAAAQA6wsAAAUADgsAAAEAYwIAAAIABAUAAAMA6wsAAAQADgsAAAEA6wsAAAEAmBAAAAEAtQ8A
AAEAtQ8AAAEA/goAAAEAMwQAAAEAMwQJAOkMAQARAOkMBgAZAOkMCgApAOkMEAAxAOkMBgA5AOkM
EABBAOkMBgBJAOkMFQABAekMEAAJAekMEAA5AekMGgBJAekMIABhAekMBgBpAekMBgBxAekMBgCB
AekMJwCRAekMFQChAekMEAARAb8LNgCpAc8MOwB5AOMIQQCxAT8JRwCpAb0MSwCBAHsERwAZAd8H
BgAxAWIKXQBRADYPBgBRAAkEYgC5AS4IZwCBAOkMEAAZASQDbADBATEKcgDJAUwJeABRAEERfgCR
APcJhADZAb8PigDZAUwJjgCRANIJlACZACUCigDhAWsCmgChANIERwDpAWwIoAChAEUKpwDxAUwJ
rQD5AfYHtAABAnoIuABxACEHvQApAa0PwwAJAg8MyQCRAL8LigCZAAECigARAg8CzwAZAeoHBgBR
AL8FBgAZAlER3gAhAukMEACRAHcD4wDBAREK5wApAkwJ7QAxAkICEAApAQ8DBgDJAb8PigApAakO
BAE5AkwJCgFBAmIKXQBRADUOEQHhAYYDFQDZAe4IBgDhAe4IBgDhAXoQGAGpANIERwChANsEEACp
AGoFigChAE8FHQGpAI0IigChAJgIAQCpAJgJigChAKYJAQCpAJoEigChAKQEAQChAG4EAQDxAXoQ
JAH5AdsEEACpADwERwD5AQAIKgEZAlkRPAHBAbMMPwGxAC0JUgGxAEwJYgCxAIMIVwFZAowBXAFx
ABwIYQG5AOkMBgDBAOkMBgDBAAAIAQC5AFUJcgG5APQEEADJAOkMBgDJAOQEEABxAAoIeAGJAHoI
RwBhAukMEADJAGUDfQFxAP0QtABZAO4HhAFxAukMBgABAnoIlwFxAs4FEABxAgQPAQDhAOkMBgDh
ANsEEADhAGUDfQFxAvIQnAF5AukMBgB5AgQPAQB5AucKogFhAO4HqQGRAukMBgCRAs4FEACRAgQP
AQD5AOkMBgD5ANsEEAD5AGUDfQGRAvIQvAGZAukMBgCZAgQPAQCZAucKwgFpAO4HyQERAekM0QGx
ApQQ4wCxAj4P4wApAekMBgCRAPoBigCJAOkMBgAxAvkL3wFRAekMBgBZAekMBgAMACME7AEUACME
7AEcACME7AEkACME7AEMAOkMBgAUAOkMBgAcAOkMBgAkAOkMBgCJAEkOBwKJAFoEigCJAcAEDALB
AhQEHQI0AHAQNAI8APYH7AE8AAAITQI8AOkMBgAOAEgAdwIOAEwAiAIOAFAArQIOAFQA0AIOAFgA
9QIOAFwAEAMpAEsADAUpAFMAOQUuAAsA9gMuABMA/wMuABsAHgQuACMAJwRDACsAdQRDADMAgwRD
ADsAdQRDAEMAbwRjAEMAbwSDAEMAbwTJAJMAUAXjAFsAkQTjAGMAegTpAJMAYQUDAVsAkQQDAWMA
egQJAZMAdQUjAXMAdQQjAXsAdQQjAVsAkQQpAZMAggVjAWMAegRjAYMAqgSDAWMAegSDAYsAbwQA
A0MAbwRAA0MAbwSAA2sAdQSAA2MAegSgA2sAdQTAA2sAdQTgA2sAdQQABGsAdQRgBGMAegRgBGsA
dQSABGMAegSABGsAdQSgBGMAegSgBGsAdQTABGMAegTABGsAdQTgBGsAdQQABWsAdQQgBWsAdQQg
BWMAegRABWsAdQRgBWsAdQRgBWMAegQvAE8A1QD0AC8BMwE4AUoBZwGMAbEBFQIoAgIAAQADAAMA
BQAFAAkABgAMAAoAAACZCs0DAACABdEDAAByDtEDAACJDtEDAACZCtYDAACqDNwDAADGCeEDAACW
DOYDAABeDewDAAAnBPEDAgAHAAMAAQAIAAMAAgAJAAUAAgAQAAcAAgARAAkAAgAZAAsAAgAdAA0A
AgAeAA8AAgAfABEAAgAgABMAAgAqABUA5QHxAfgBAAIaAi0CPQJFAgSAAAAAAAAAAAAAAAAAAAAA
AMABAAAEAAAAAAAAAAAAAABTAkYDAAAAAAEAAAAAAAAAAAAAAFwCqgEAAAAADQAAAAAAAAAAAAAA
ZQLJDwAAAAABAAAAAAAAAAAAAABcAvYMAAAAAAQAAAAAAAAAAAAAAG4COA0AAAAADQAAAAAAAAAA
AAAAZQI7CwAAAAANAAAAAAAAAAAAAABlAjQQAAAAAAQAAAAAAAAAAAAAAFMCXgkAAAAADQAAAAAA
AAAAAAAAZQIYCwAAAAAKAAAAAAAAAAAAAABuAk8DAAAAAAQAAAAAAAAAAAAAAFMCNAkAAAAADQAA
AAAAAAAAAAAAZQKQAgAAAAAKAAIACwAJAAwACQAAABAAGACvAgAAEABPAK8CAAAAAFEArwIrASMC
KwFIAgAAAAAASURUU0NvbXBvbmVudE1ldGFEYXRhMTAwAElEVFNFeHRlcm5hbE1ldGFkYXRhQ29s
dW1uMTAwAElEVFNJbnB1dENvbHVtbjEwMABJRFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxl
Y3Rpb24xMDAASURUU0lucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABJRFRTUnVudGltZUNvbm5lY3Rp
b25Db2xsZWN0aW9uMTAwAElEVFNJbnB1dENvbGxlY3Rpb24xMDAASURUU0N1c3RvbVByb3BlcnR5
Q29sbGVjdGlvbjEwMABJRFRTUnVudGltZUNvbm5lY3Rpb24xMDAASURUU0Nvbm5lY3Rpb25NYW5h
Z2VyMTAwAElEVFNCdWZmZXJNYW5hZ2VyMTAwAElEVFNJbnB1dDEwMABJRFRTQ3VzdG9tUHJvcGVy
dHkxMDAAbV9zZXJ2aWNlMjAxMQBDb250ZXh0VmFsdWVgMQBUaHJlYWRTYWZlT2JqZWN0UHJvdmlk
ZXJgMQBUb0ludDMyAG1fc2VydmljZTMAbV9zZXJ2aWNlNABDb3p5Um9jLlNTSVNQbHVzLjIwMTYA
U2NyaXB0Q29tcG9uZW50XzJhMWYwZDc2YWFkYzQwMTNiMTNkZTY5MzZjNDY0ODY2ADxNb2R1bGU+
AGdldF9JRABnZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJRABnZXRfRXh0ZXJuYWxN
ZXRhZGF0YUNvbHVtbklEAHNldF9Db25uZWN0aW9uTWFuYWdlcklEAE9iamVjdElEAElucHV0SUQA
R2V0T2JqZWN0QnlJRABDb3p5Um9jLlNxbFNlcnZlci5TU0lTAE1pY3Jvc29mdC5TcWxTZXJ2ZXIu
TWFuYWdlZERUUwBUAFByb2Nlc3MyMDExXwBQcm9jZXNzM18AUHJvY2VzczRfAERpc3Bvc2VfX0lu
c3RhbmNlX18AQ3JlYXRlX19JbnN0YW5jZV9fAEZpcmVFcnJvcl8AR2V0VmFsdWVzXwBSZWluaXRp
YWxpemVNZXRhRGF0YQBnZXRfQ29tcG9uZW50TWV0YURhdGEAUHJvamVjdERhdGEAbXNjb3JsaWIA
TWljcm9zb2Z0LlZpc3VhbEJhc2ljAHNldF9JZABJbmNpZGVudElkAGdldF9Jc0F0dGFjaGVkAHNl
dF9Jc1VzZWQAR3VpZABDb3p5Um9jLkR5bmFtaWNzLkNybTMuU2VydmljZQBDb3p5Um9jLkR5bmFt
aWNzLkNybS5TZXJ2aWNlAENybVNlcnZpY2UAQ296eVJvYy5EeW5hbWljcy5Dcm0yMDExLk9yZ2Fu
aXphdGlvblNlcnZpY2UAR2V0U2VydmljZQBDcmVhdGVJbnN0YW5jZQBnZXRfR2V0SW5zdGFuY2UA
aW5zdGFuY2UAZ2V0X1JlZmVyZW5jZQBFbnRpdHlSZWZlcmVuY2UAR2V0SGFzaENvZGUAWG1sTm9k
ZQBzZXRfQ29kZVBhZ2UAZ2V0X01lc3NhZ2UAZXJyTWVzc2FnZQBtZXNzYWdlAGdldF9TY2FsZQBz
ZXRfU2NhbGUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUAZ2V0X05hbWUAc2V0
X05hbWUAc2V0X0xvZ2ljYWxOYW1lAHNldF9SZXF1ZXN0TmFtZQBJbnB1dE5hbWUATWljcm9zb2Z0
LlNxbFNlcnZlci5EdHMuUnVudGltZQBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZQBz
ZXRfRGF0YVR5cGUAUmVmZXJlbmNlVHlwZQBnZXRfQXR0cmlidXRlVHlwZQBnZXRfQ3JtQ29ubmVj
dGlvblR5cGUAR2V0VHlwZQBBcHBsaWNhdGlvbkJhc2UAT3JnYW5pemF0aW9uUmVzcG9uc2UAQ2xv
c2UAVmFsaWRhdGUAc2V0X1N0YXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAEluY2lkZW50U3RhdGUA
c3RhdGUASGVscEtleXdvcmRBdHRyaWJ1dGUAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBEZWJ1Z2dh
YmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZUF0dHJpYnV0ZQBDb21WaXNpYmxlQXR0cmlidXRl
AFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFRhcmdldEZy
YW1ld29ya0F0dHJpYnV0ZQBJQ3JtQXR0cmlidXRlAERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAE15
R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAENvbm5lY3Rpb25BdHRyaWJ1dGUARGVzY3JpcHRpb25B
dHRyaWJ1dGUAU2V0dXBBdHRyaWJ1dGUAVmFsaWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRlAENvbHVt
bk1hcHBpbmdzQXR0cmlidXRlAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAQ0xTQ29t
cGxpYW50QXR0cmlidXRlAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAFJ1
bnRpbWVDb21wYXRpYmlsaXR5QXR0cmlidXRlAFByZUV4ZWN1dGUAUG9zdEV4ZWN1dGUAZ2V0X1Zh
bHVlAHNldF9WYWx1ZQBHZXRBdHRyaWJ1dGVWYWx1ZQBTZXRBdHRyaWJ1dGVWYWx1ZQBHZXRPYmpl
Y3RWYWx1ZQBPcHRpb25TZXRWYWx1ZQB2YWx1ZQBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5nAENv
bXBhcmVTdHJpbmcAVG9TdHJpbmcAR2V0U3RyaW5nAGdldF9MZW5ndGgAc2V0X0xlbmd0aABNaWNy
b3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABTeXN0ZW0uQ29tcG9uZW50TW9k
ZWwAZ2V0X0RldGFpbABSZW1vdmVBbGwAU2NyaXB0Q29tcG9uZW50XzJhMWYwZDc2YWFkYzQwMTNi
MTNkZTY5MzZjNDY0ODY2LmRsbABJc051bGwAU3lzdGVtLlhtbABnZXRfSW5uZXJYbWwAZ2V0X0l0
ZW0Ac2V0X0l0ZW0AU3lzdGVtAFN5c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24AU2NyaXB0TWFp
bgBCbG9iQ29sdW1uAGdldF9QcmVjaXNpb24Ac2V0X1ByZWNpc2lvbgBnZXRfQXBwbGljYXRpb24A
TXlBcHBsaWNhdGlvbgBnZXRfRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24AZ2V0X0lu
cHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRfUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uAGdldF9J
bnB1dENvbGxlY3Rpb24AZ2V0X0N1c3RvbVByb3BlcnR5Q29sbGVjdGlvbgBBY3F1aXJlQ29ubmVj
dGlvbgBJQ3JtQ29ubmVjdGlvbgBnZXRfQ3JtQ29ubmVjdGlvbgBzZXRfQ3JtQ29ubmVjdGlvbgBt
X2NybUNvbm5lY3Rpb24AbV9jb25uZWN0aW9uAEFwcGxpY2F0aW9uRXhjZXB0aW9uAFNvYXBFeGNl
cHRpb24Ac2V0X0luY2lkZW50UmVzb2x1dGlvbgBvAE91dHB1dE5hbWVNYXAAT3V0cHV0TWFwAE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQ
aXBlbGluZVdyYXAAbV9BcHBPYmplY3RQcm92aWRlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBtX0Nv
bXB1dGVyT2JqZWN0UHJvdmlkZXIAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAZ2V0X0J1
ZmZlcgBQaXBlbGluZUJ1ZmZlcgBTY3JpcHRCdWZmZXIASW5wdXRCdWZmZXIAYnVmZmVyAGdldF9D
b25uZWN0aW9uTWFuYWdlcgBnZXRfQnVmZmVyTWFuYWdlcgBNb25pa2VyAFN5c3RlbS5Db2RlRG9t
LkNvbXBpbGVyAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlJ1bnRpbWUuV3JhcHBlcgBNaWNyb3Nv
ZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAGdldF9Vc2VyAGdldF9Db21wdXRlcgBN
eUNvbXB1dGVyAEZpcmVFcnJvcgBDbGVhclByb2plY3RFcnJvcgBTZXRQcm9qZWN0RXJyb3IAQWN0
aXZhdG9yAC5jdG9yAC5jY3RvcgBDb3p5Um9jLkR5bmFtaWNzAFN5c3RlbS5EaWFnbm9zdGljcwBN
aWNyb3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBTeXN0ZW0uV2ViLlNlcnZpY2VzAGdldF9XZWJT
ZXJ2aWNlcwBNeVdlYlNlcnZpY2VzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNl
cnZpY2VzAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBNaWNyb3NvZnQuVmlzdWFsQmFz
aWMuQ29tcGlsZXJTZXJ2aWNlcwBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAERlYnVn
Z2luZ01vZGVzAFZhcmlhYmxlcwBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAR2V0
RW50aXR5QXR0cmlidXRlcwBFcXVhbHMAU3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMAZ2V0
X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRfU3RhdGljT3V0cHV0Q29sdW1ucwBDb252ZXJzaW9ucwBn
ZXRfRGVzaWduQ29ubmVjdGlvbnMAUnVudGltZUhlbHBlcnMAT3BlcmF0b3JzAENvbnN0cwBTY3Jp
cHRCdWZmZXJQbHVzAFNjcmlwdENvbXBvbmVudFBsdXMAc2V0X1N0YXR1cwBJbmNpZGVudFN0YXR1
cwBzdGF0dXMAT2JqZWN0AE15UHJvamVjdABDb25uZWN0AEVuZE9mUm93c2V0AEluY2lkZW50AE9y
Z2FuaXphdGlvblNlcnZpY2VDbGllbnQAUGlwZWxpbmVDb21wb25lbnQAVXNlckNvbXBvbmVudABQ
YXJlbnRDb21wb25lbnQAU2NyaXB0Q29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50AGdldF9Db3Vu
dABNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AENvbnZlcnQAT3JnYW5pemF0aW9uUmVxdWVz
dABDbG9zZUluY2lkZW50UmVxdWVzdABTZXRTdGF0ZUR5bmFtaWNFbnRpdHlSZXF1ZXN0AE1pY3Jv
c29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AElzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0AG1f
Q29udGV4dABOZXcASW5wdXRfUHJvY2Vzc0lucHV0Um93AE5leHRSb3cAbV9zdGF0ZUlkeABtX3N0
YXR1c0lkeABtX2lucHV0SWR4AFNjcmlwdENvbXBvbmVudF8yYTFmMGQ3NmFhZGM0MDEzYjEzZGU2
OTM2YzQ2NDg2Ni5NeQBzZXRfRW50aXR5AENvbnN0cnVjdER5bmFtaWNFbnRpdHkASUNybUVudGl0
eQBtX3Jlc29sdXRpb25FbnRpdHkAQnVzaW5lc3NFbnRpdHkAQ29uc3RydWN0RW50aXR5AElzTnVs
bE9yRW1wdHkAAAAzVQBuAGgAYQBuAGQAbABlAGQAIABzAGUAcgB2AGkAYwBlACAAbwBiAGoAZQBj
AHQALgAAJWkAbgBjAGkAZABlAG4AdAByAGUAcwBvAGwAdQB0AGkAbwBuAAAjaQBuAGMAaQBkAGUA
bgB0AHMAdABhAHQAZQBjAG8AZABlAAAlaQBuAGMAaQBkAGUAbgB0AHMAdABhAHQAdQBzAGMAbwBk
AGUAABtSAGUAZgBlAHIAZQBuAGMAZQBUAHkAcABlAAA7aQBuAGMAaQBkAGUAbgB0AHMAdABhAHQA
ZQBjAG8AZABlACAAbgBvAHQAIABtAGEAcABwAGUAZAAuAAA/UwBlAGwAZQBjAHQAIABEAHkAbgBh
AG0AaQBjAHMAIABDAFIATQAgAGMAbwBuAG4AZQBjAHQAaQBvAG4ALgAAJU0AYQBwACAAaQBuAHAA
dQB0ACAAYwBvAGwAdQBtAG4AcwAuAAAbQwByAG0AQwBvAG4AbgBlAGMAdABpAG8AbgAAFU4AbwAg
AGkAbgBwAHUAdABzAC4AADFDAG8AbgBuAGUAYwB0AGkAbwBuACAAbgBvAHQAIABzAGUAbABlAGMA
dABlAGQALgAAGUQAWQBOAEEATQBJAEMAUwAtAEMAUgBNAAE3RAB5AG4AYQBtAGkAYwBzACAAQwBS
AE0AIABJAG4AYwBpAGQAZQBuAHQAIABTAHQAYQB0AGUAADNVAG4AaABhAG4AZABsAGUAZAAgAGkA
bgBjAGkAZABlAG4AdAAgAHMAdABhAHQAZQAuAAANUwB0AGEAdAB1AHMAABFTAGUAdABTAHQAYQB0
AGUAAAtTAHQAYQB0AGUAABFpAG4AYwBpAGQAZQBuAHQAABVpAG4AYwBpAGQAZQBuAHQAaQBkAAAb
RQBuAHQAaQB0AHkATQBvAG4AaQBrAGUAcgAAG0MAbABvAHMAZQBJAG4AYwBpAGQAZQBuAHQAACVJ
AG4AYwBpAGQAZQBuAHQAUgBlAHMAbwBsAHUAdABpAG8AbgAAC0kAbgBwAHUAdAAAAPMyeS7q0aJF
hUCIgjbmuOgABCABAQgDIAABBSABARERBCABAQ4EIAEBAgUgAgEODgYgAQERgKEHIAQBDg4ODgYH
AhI9EkEEIAASWQUAAQESQQUgABKA2QMgAA4DAAABDQcIHBJJCAgIEk0SUQ4EIAEcHAQgARwIBAAB
HBwFIAASgOEFIAASgOUFIAESSRwFIAESOQ4FIAASgO0DIAAIBSABEk0cBSAAEoDxBSABElEIBgAD
CA4OAgUgABKA+QYgARKA/RwDIAAcBAABDhwFIAIIDg4FIAASgQUFIAASgQkFIAIICAgIBwQCAhJJ
EkEEAAECDgMgAAIFIAASgRUGIAESgRkcDwcGEkkSKR0SVR0SVQgSVQUgABKBHQYgARKBIRwGIAEd
ElUOBCAAElEGIAEBEYElBSAAEoD9BCABARwDBwEOBAcBHQ4DBwECAgYOCiAGAQgODg4IEAIHBwUI
CAgIHAQgAQIIBCABDggEAAEIHAUgAgEIHAoHBRJdCAgSYRJlBSACAQ4cBCABHA4GIAEBEYExByAB
EoE1El0KBwUSaQgIEW0ScQQAAQ4IBSABARJxBiABARKBQQcgARKBRRJpCgcFEnUICBF5En0FIAEB
En0GIAEBEoFRByABEoFVEnUNIAUBEoCNCAISWRKAkQUgABKAmQYVEjABEiAEIAATAAYVEjABEhwH
FRIwARKAvQYVEjABEiwEIAECHAgAARKAxRGBXQQHAR4AAh4ABRABAB4ABAoBHgAEBwETAAYVEjAB
EwAIBhUSgM0BEwAHFRKAzQETAAITAAQKARMABSABARMACLd6XFYZNOCJCBbPSQu4DDTqCImEXc2A
gMyRCLA/X38R1Qo6EGkAbgBjAGkAZABlAG4AdAAkaQBuAGMAaQBkAGUAbgB0AHIAZQBzAG8AbAB1
AHQAaQBvAG4AImkAbgBjAGkAZABlAG4AdABzAHQAYQB0AGUAYwBvAGQAZQAkaQBuAGMAaQBkAGUA
bgB0AHMAdABhAHQAdQBzAGMAbwBkAGUAGlIAZQBmAGUAcgBlAG4AYwBlAFQAeQBwAGUAFGkAbgBj
AGkAZABlAG4AdABpAGQAAwYSKQMGEi0DBhIxAwYSNQMGEjkDBh0IAgYIAwYSFAMGEhgEBhKAjQcG
FRIwARIgBwYVEjABEhwIBhUSMAESgL0HBhUSMAESLAUgAQESDAUgAQIQDgQgAB0OCiADARASWRAI
EAgFIAEBElkKIAQBCA4SWRKAkQYgAQESgI0EAAASIAQAABIcBQAAEoC9BAAAEiwFIAASgMUHEAEB
HgAeAAcwAQEBEB4AAygADgQoAB0OBSgAEoCZBAgAEiAECAASHAUIABKAvQQIABIsBCgAEwAIAQAI
AAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBCAEAAgAAAAAARwEAGi5ORVRGcmFt
ZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1ld29y
ayA0BQEAAAAABAEAAAAIAQABAAAAAAANAQAIVmFsaWRhdGUAABgBAApNeVRlbXBsYXRlCDExLjAu
MC4wAABhAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90
b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAACwBACdTZWxlY3Qg
RHluYW1pY3MgQ1JNIENvbm5lY3Rpb24gTWFuYWdlci4AABYBABFDcm1Db25uZWN0aW9uVHlwZQAA
EAEAC015LkNvbXB1dGVyAAATAQAOTXkuQXBwbGljYXRpb24AAAwBAAdNeS5Vc2VyAAATAQAOTXku
V2ViU2VydmljZXMAAAAA/FIAAAAAAAAAAAAAFlMAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhT
AAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACAAEAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAYAACAAAAA
AAAAAAAAAAAAAAABAAEAAAAwAACAAAAAAAAAAAAAAAAAAAABAAAAAABIAAAAWGAAAOwCAAAAAAAA
AAAAAOwCNAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAAAAAA
AAAAAAAAAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBpAGwA
ZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsARMAgAAAQBT
AHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAAAoAgAAAQAwADAAMAAwADAANABiADAAAAAsAAIA
AQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAIAAAADAACAABAEYAaQBsAGUAVgBl
AHIAcwBpAG8AbgAAAAAAMAAuADAALgAwAC4AMAAAAIoANQABAEkAbgB0AGUAcgBuAGEAbABOAGEA
bQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwAyAGEAMQBmADAAZAA3ADYAYQBh
AGQAYwA0ADAAMQAzAGIAMQAzAGQAZQA2ADkAMwA2AGMANAA2ADQAOAA2ADYALgBkAGwAbAAAAAAA
KAACAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAIAAAAJIANQABAE8AcgBpAGcAaQBu
AGEAbABGAGkAbABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADIA
YQAxAGYAMABkADcANgBhAGEAZABjADQAMAAxADMAYgAxADMAZABlADYAOQAzADYAYwA0ADYANAA4
ADYANgAuAGQAbABsAAAAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAwAC4A
MAAuADAALgAwAAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADAALgAw
AC4AMAAuADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAAKDMAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.ScriptComponentHostPlus</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_35b8e9af88b149f6bbd5e9fcf2b2bbdc</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=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="15" name="CrmConnection" connectionManagerID="{EB1EB761-DB8F-4F1C-96A3-1EF8BB8AE919}" /></connections><inputs><input id="16" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True" /></input></inputs></component>