<component id="2" name="Dynamics CRM Associations" 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.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
        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[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_780521567bcc4f928a643689dcd570f0.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>{9382BE11-F050-4E7C-98AE-836B32422D28}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_fb9fe4dbdd154fe1b06903054a22dc92</RootNamespace>
    <AssemblyName>ScriptComponent_fb9fe4dbdd154fe1b06903054a22dc92</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:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{F5B74F66-E702-4E12-AC71-0138DD9A4F32}</msb:ProjectId>
		<msb:CodeName>ScriptComponent_780521567bcc4f928a643689dcd570f0</msb:CodeName>
		<msb:Language>msBuild</msb:Language>
		<msb:DisplayName>ScriptComponent_780521567bcc4f928a643689dcd570f0</msb:DisplayName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:Project Include="ScriptComponent_780521567bcc4f928a643689dcd570f0.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_fb9fe4dbdd154fe1b06903054a22dc92.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
vgoAAAUA4QkAAAEAOgIAAAIAnQQAAAMAvgoAAAQA4QkAAAEAvgoAAAEAVA8AAAEAYQ4AAAEAYQ4A
AAEA0QkAAAEAoAMAAAEAoAMJAM8LAQARAM8LBgAZAM8LCgApAM8LEAAxAM8LBgA5AM8LFQBBAM8L
EABJAM8LBgBRAM8LGwDZAM8LEADhAM8LEADpAM8LEAAhAc8LIAAxAc8LJgBJAc8LBgBRAc8LBgBZ
Ac8LBgBpAc8LLQB5Ac8LGwCJAc8LEABxAM8LBgBxAH8EEABxAF8ITAB5AM8LBgDxAJIKUgABAVYI
WACRAaAHXQB5ACUEEACpAKAHYgCZAc8LEAB5APsCZgBhAFUHbQCBAM8LBgCBABwEEACBAPsCZgCJ
AM8LBgCJAFYBdQCJAJoBdQCJAFcEEABpAFUHewCRAM8LBgCRAFYBdQCRAJoBdQCRAFcEEAC5Ac8L
EADBAZsLhACZAPQHigDJAUkIYgDBAYkLkAChAM0DYgD5AEYHBgAZAUwJngBZAOsNBgBZAHYDWADR
AXEHowChAM8LEAD5ALoCqADZATgJrgDhAVYItAARAVkOugDxAdsKwACxAJIKxgC5ANgBxgD5AeYB
ygD5AFEHBgBZABgFBgABArgP2QCxAAID3gCxAP4I4gAJAncOxgDZARgJ6AARAlYI7gAZAhkCEAAR
AaUCBgDhAXcOxgCxANkI9QAhAhEDGwAJAv8HBgAhAv8HBgAhAjYP+wDBABwEEADBAMgEAAHBAKkH
AQABAsAPGQHZAX8LHAEhAlYINgEJArcLPAHJAGsOQQG5APwBxgDBANEBxgDJACMP3gAxAh4FBgDx
AM8LRQE5AlAP3gA5AvMN3gARAc8LBgCxANEBxgCpAM8LBgAZAsUKUwE5Ac8LBgBBAc8LBgAMAJAD
YAEUAJADYAEcAJADYAEkAJADYAEMAM8LBgAUAM8LBgAcAM8LBgAkAM8LBgCpACcNewGpALkDxgBx
AQoEgAFJAoEDkQE0ACwPqAE8AF0HYAE8AGcHwQE8AM8LBgAIAFQA6wEIAFgA8AEpAFMAAgQpAFsA
EAQpAGMAPQQuAAsAwgIuABMAywIuABsA6gIuACMA8wJDACsA8AFDADMASgNDADsAeQNDAEMA8AFD
AEsAOwNJAFMAAgRJAFsAVARjAEsAOwNpAFMAAgRpAFsAcwSDAEsAOwPjAGsAhwPjAHMAQQMDAWsA
hwMDAXMAQQMJAaMAkwQjAYMA8AEjAYsA8AEjAWsAhwMpAaMApARJAaMAuARjAXMAQQNjAZMAoANp
AaMAxQSDAXMAQQODAZsAOwMgA0sAOwNgA0sAOwOgA3sA8AGgA3MAQQPAA3sA8AHgA3sA8AEABHsA
8AEgBHsA8AFgBHMAQQNgBHsA8AGABHMAQQOABHsA8AGgBHMAQQOgBHsA8AHABHMAQQPABHsA8AHg
BHsA8AEABXsA8AEgBXsA8AEgBXMAQQNABXsA8AFgBXsA8AFgBXMAQQM1AJQA0AAHAQsBEAEVAScB
iQGcAQIAAQADAAUABQAHAAkACAAMAAwAAACDCZQCAADJCJgCAABbBJQCAADZBJ0CAABQDZ0CAABn
DZ0CAACDCaICAAB2C6gCAACuCK0CAABiC7ICAABEDLgCAACUA70CAgAHAAMAAQAIAAMAAgAJAAUA
AQAKAAUAAgALAAcAAQAMAAcAAgANAAkAAgARAAsAAgASAA0AAgAaAA8AAgAeABEAAgAfABMAAgAg
ABUAAgAhABcAAgAqABkAWQFlAWwBdAGOAaEBsQG5AQSAAAAAAAAAAAAAAAAAAAAAAGkBAAAEAAAA
AAAAAAAAAADHAdwCAAAAAAEAAAAAAAAAAAAAANABsgEAAAAADQAAAAAAAAAAAAAA2QGBDgAAAAAB
AAAAAAAAAAAAAADQAdwLAAAAAAQAAAAAAAAAAAAAAOIBHgwAAAAADQAAAAAAAAAAAAAA2QEOCgAA
AAAEAAAAAAAAAAAAAADHAWgIAAAAAA0AAAAAAAAAAAAAANkB5w4AAAAADQAAAAAAAAAAAAAA2QHr
CQAAAAAKAAAAAAAAAAAAAADiAeUCAAAAAAQAAAAAAAAAAAAAAMcBPggAAAAACgACAAsACQAMAAkA
AAAQABgAWQIAABAATwBZAgAAAABRAFkC4wCXAeMAvAEAAAAAAElEVFNDb21wb25lbnRNZXRhRGF0
YTEwMABJRFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbjEwMABJRFRTSW5wdXRDb2x1bW4xMDAASURU
U0V4dGVybmFsTWV0YWRhdGFDb2x1bW5Db2xsZWN0aW9uMTAwAElEVFNJbnB1dENvbHVtbkNvbGxl
Y3Rpb24xMDAASURUU1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbjEwMABJRFRTSW5wdXRDb2xs
ZWN0aW9uMTAwAElEVFNSdW50aW1lQ29ubmVjdGlvbjEwMABJRFRTQ29ubmVjdGlvbk1hbmFnZXIx
MDAASURUU0J1ZmZlck1hbmFnZXIxMDAASURUU0lucHV0MTAwAG1fc2VydmljZTIwMTEAQ29udGV4
dFZhbHVlYDEAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEAc2V0X01vbmlrZXIxAEludDMyAFNj
cmlwdENvbXBvbmVudF9mYjlmZTRkYmRkMTU0ZmUxYjA2OTAzMDU0YTIyZGM5MgBzZXRfTW9uaWtl
cjIAbV9zZXJ2aWNlNABDb3p5Um9jLlNTSVNQbHVzLjIwMTYAPE1vZHVsZT4AZ2V0X0lEAGdldF9M
aW5lYWdlSUQARmluZENvbHVtbkJ5TGluZWFnZUlEAGdldF9FeHRlcm5hbE1ldGFkYXRhQ29sdW1u
SUQAc2V0X0Nvbm5lY3Rpb25NYW5hZ2VySUQAT2JqZWN0SUQASW5wdXRJRABDb3p5Um9jLlNxbFNl
cnZlci5TU0lTAFQARGlzcG9zZV9fSW5zdGFuY2VfXwBDcmVhdGVfX0luc3RhbmNlX18AdmFsdWVf
XwBHZXRJbnB1dENvbHVtbl8ARmlyZUVycm9yXwBSZWluaXRpYWxpemVNZXRhRGF0YQBnZXRfQ29t
cG9uZW50TWV0YURhdGEAUHJvamVjdERhdGEAbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2lj
AHNldF9JZABnZXRfSXNBdHRhY2hlZABzZXRfSXNVc2VkAEd1aWQAQ296eVJvYy5EeW5hbWljcy5D
cm0uU2VydmljZQBDcm1TZXJ2aWNlAENvenlSb2MuRHluYW1pY3MuQ3JtMjAxMS5Pcmdhbml6YXRp
b25TZXJ2aWNlAEdldFNlcnZpY2UAQ3JlYXRlSW5zdGFuY2UAZ2V0X0dldEluc3RhbmNlAGluc3Rh
bmNlAEVudGl0eVJlZmVyZW5jZQBHZXRIYXNoQ29kZQBYbWxOb2RlAGdldF9NZXNzYWdlAGVyck1l
c3NhZ2UAbWVzc2FnZQBJRGlzcG9zYWJsZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhh
bmRsZQBzZXRfTmFtZQBzZXRfTG9naWNhbE5hbWUAZXh0ZXJuYWxOYW1lAGdldF9SZWxhdGlvbnNo
aXBOYW1lAHNldF9SZWxhdGlvbnNoaXBOYW1lAG1fcmVsYXRpb25zaGlwTmFtZQBzZXRfUmVxdWVz
dE5hbWUAbV9yZXF1ZXN0TmFtZQBJbnB1dE5hbWUATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlw
ZWxpbmUAc2V0X0RhdGFUeXBlAGdldF9Dcm1Db25uZWN0aW9uVHlwZQBHZXRUeXBlAEFwcGxpY2F0
aW9uQmFzZQBPcmdhbml6YXRpb25SZXNwb25zZQBDbG9zZQBEaXNwb3NlAFZhbGlkYXRlAEFzc29j
aWF0ZQBEaXNhc3NvY2lhdGUARWRpdG9yQnJvd3NhYmxlU3RhdGUASGVscEtleXdvcmRBdHRyaWJ1
dGUAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBEZWJ1Z2dhYmxlQXR0cmlidXRlAEVkaXRvckJyb3dz
YWJsZUF0dHJpYnV0ZQBDb21WaXNpYmxlQXR0cmlidXRlAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRl
AEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBEZWJ1Z2dl
ckhpZGRlbkF0dHJpYnV0ZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBDb25uZWN0aW9uQXR0
cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBT
b3J0UHJvcGVydGllc0F0dHJpYnV0ZQBDb2x1bW5NYXBwaW5nc0F0dHJpYnV0ZQBDb21waWxhdGlv
blJlbGF4YXRpb25zQXR0cmlidXRlAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBTU0lTU2NyaXB0Q29t
cG9uZW50RW50cnlQb2ludEF0dHJpYnV0ZQBDYXRlZ29yeUF0dHJpYnV0ZQBSdW50aW1lQ29tcGF0
aWJpbGl0eUF0dHJpYnV0ZQBQcmVFeGVjdXRlAFBvc3RFeGVjdXRlAGdldF9WYWx1ZQBzZXRfVmFs
dWUAR2V0T2JqZWN0VmFsdWUAdmFsdWUAU3lzdGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUb1N0cmlu
ZwBzZXRfTGVuZ3RoAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAFN5
c3RlbS5Db21wb25lbnRNb2RlbABnZXRfRGV0YWlsAFJlbW92ZUFsbABTY3JpcHRDb21wb25lbnRf
ZmI5ZmU0ZGJkZDE1NGZlMWIwNjkwMzA1NGEyMmRjOTIuZGxsAFN5c3RlbS5YbWwAZ2V0X0lubmVy
WG1sAGdldF9JdGVtAHNldF9JdGVtAFN5c3RlbQBFbnVtAFN5c3RlbS5Db21wb25lbnRNb2RlbC5E
ZXNpZ24AU2NyaXB0TWFpbgBnZXRfQXBwbGljYXRpb24ATXlBcHBsaWNhdGlvbgBnZXRfQWN0aW9u
AHNldF9BY3Rpb24AbV9hY3Rpb24AZ2V0X0V4dGVybmFsTWV0YWRhdGFDb2x1bW5Db2xsZWN0aW9u
AGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlv
bgBnZXRfSW5wdXRDb2xsZWN0aW9uAEFjcXVpcmVDb25uZWN0aW9uAElDcm1Db25uZWN0aW9uAGdl
dF9Dcm1Db25uZWN0aW9uAHNldF9Dcm1Db25uZWN0aW9uAG1fY3JtQ29ubmVjdGlvbgBtX2Nvbm5l
Y3Rpb24AQXBwbGljYXRpb25FeGNlcHRpb24AU29hcEV4Y2VwdGlvbgBvAE91dHB1dE5hbWVNYXAA
T3V0cHV0TWFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNx
bFNlcnZlci5EVFNQaXBlbGluZVdyYXAAbV9BcHBPYmplY3RQcm92aWRlcgBtX1VzZXJPYmplY3RQ
cm92aWRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJv
dmlkZXIAZ2V0X0J1ZmZlcgBQaXBlbGluZUJ1ZmZlcgBTY3JpcHRCdWZmZXIASW5wdXRCdWZmZXIA
Z2V0X0Nvbm5lY3Rpb25NYW5hZ2VyAGdldF9CdWZmZXJNYW5hZ2VyAE1vbmlrZXIAU3lzdGVtLkNv
ZGVEb20uQ29tcGlsZXIATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldyYXBwZXIAZ2V0X1VzZXIAZ2V0X0NvbXB1
dGVyAE15Q29tcHV0ZXIARmlyZUVycm9yAENsZWFyUHJvamVjdEVycm9yAFNldFByb2plY3RFcnJv
cgBJRW51bWVyYXRvcgBHZXRFbnVtZXJhdG9yAEFjdGl2YXRvcgAuY3RvcgAuY2N0b3IAQ296eVJv
Yy5EeW5hbWljcwBTeXN0ZW0uRGlhZ25vc3RpY3MATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmlj
ZXMAU3lzdGVtLldlYi5TZXJ2aWNlcwBnZXRfV2ViU2VydmljZXMATXlXZWJTZXJ2aWNlcwBNaWNy
b3NvZnQuVmlzdWFsQmFzaWMuQXBwbGljYXRpb25TZXJ2aWNlcwBTeXN0ZW0uUnVudGltZS5JbnRl
cm9wU2VydmljZXMATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMAU3lzdGVt
LlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBEZWJ1Z2dpbmdNb2RlcwBWYXJpYWJsZXMAQWN0aW9u
VHlwZXMAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAEVxdWFscwBTeXN0ZW0uV2Vi
LlNlcnZpY2VzLlByb3RvY29scwBnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9TdGF0aWNPdXRw
dXRDb2x1bW5zAENvbnZlcnNpb25zAFN5c3RlbS5Db2xsZWN0aW9ucwBDb25uZWN0aW9ucwBSdW50
aW1lSGVscGVycwBTY3JpcHRCdWZmZXJQbHVzAFNjcmlwdENvbXBvbmVudFBsdXMAT2JqZWN0AE15
UHJvamVjdABDb25uZWN0AEVuZE9mUm93c2V0AE9yZ2FuaXphdGlvblNlcnZpY2VDbGllbnQAUGlw
ZWxpbmVDb21wb25lbnQAVXNlckNvbXBvbmVudABQYXJlbnRDb21wb25lbnQAU2NyaXB0Q29tcG9u
ZW50AGdldF9Ib3N0Q29tcG9uZW50AGdldF9DdXJyZW50AGdldF9Db3VudABNaWNyb3NvZnQuU3Fs
U2VydmVyLlR4U2NyaXB0AE9yZ2FuaXphdGlvblJlcXVlc3QAQXNzb2NpYXRlRW50aXRpZXNSZXF1
ZXN0AERpc2Fzc29jaWF0ZUVudGl0aWVzUmVxdWVzdABNaWNyb3NvZnQuU3FsU2VydmVyLlBpcGVs
aW5lSG9zdABJc0lucHV0AElucHV0X1Byb2Nlc3NJbnB1dABNb3ZlTmV4dABtX0NvbnRleHQATmV3
AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBOZXh0Um93AG1fZmVpSW5kZXgAbV9zZWlJbmRleABtX2Zl
bkluZGV4AG1fc2VuSW5kZXgAU2NyaXB0Q29tcG9uZW50X2ZiOWZlNGRiZGQxNTRmZTFiMDY5MDMw
NTRhMjJkYzkyLk15AElzTnVsbE9yRW1wdHkAAAAAIVIAZQBsAGEAdABpAG8AbgBzAGgAaQBwAE4A
YQBtAGUAABFNAG8AbgBpAGsAZQByADEAABFNAG8AbgBpAGsAZQByADIAAC1VAG4AaABhAG4AZABs
AGUAZAAgAGEAYwB0AGkAbwBuACAAdAB5AHAAZQAuAAAzVQBuAGgAYQBuAGQAbABlAGQAIABzAGUA
cgB2AGkAYwBlACAAbwBiAGoAZQBjAHQALgAAI0EAcwBzAG8AYwBpAGEAdABlAEUAbgB0AGkAdABp
AGUAcwAAKUQAaQBzAGEAcwBzAG8AYwBpAGEAdABlAEUAbgB0AGkAdABpAGUAcwAAH0YAaQByAHMA
dABFAG4AdABpAHQAeQBOAGEAbQBlAAAbRgBpAHIAcwB0AEUAbgB0AGkAdAB5AEkAZAAAIVMAZQBj
AG8AbgBkAEUAbgB0AGkAdAB5AE4AYQBtAGUAAB1TAGUAYwBvAG4AZABFAG4AdABpAHQAeQBJAGQA
AD9TAGUAbABlAGMAdAAgAEQAeQBuAGEAbQBpAGMAcwAgAEMAUgBNACAAYwBvAG4AbgBlAGMAdABp
AG8AbgAuAAA1UwBwAGUAYwBpAGYAeQAgAHIAZQBsAGEAdABpAG8AbgBzAGgAaQBwACAAbgBhAG0A
ZQAuAAAlTQBhAHAAIABpAG4AcAB1AHQAIABjAG8AbAB1AG0AbgBzAC4AABtDAHIAbQBDAG8AbgBu
AGUAYwB0AGkAbwBuAAAVTgBvACAAaQBuAHAAdQB0AHMALgAAGUQAWQBOAEEATQBJAEMAUwAtAEMA
UgBNAAE1RAB5AG4AYQBtAGkAYwBzACAAQwBSAE0AIABSAGUAbABhAHQAaQBvAG4AcwBoAGkAcABz
AAAvSQBuAHAAdQB0ACAAYwBvAGwAdQBtAG4AIABuAG8AdAAgAGYAbwB1AG4AZAAuAAALSQBuAHAA
dQB0AAAAAACxc+ewFSIoTqmikWTTmn+YAAQgAQEIAyAAAQUgAQEREQQgAQEOBSABAR0OBCABAQIF
IAIBDg4GIAEBEYCVByAEAQ4ODg4WBwoSORI9Ej0SQRJBESgSRRJJEk0SUQUgAgEOHAUgABKAgQQg
ARwIBAABDhwDIAAOBiABARGAzQcgARKA0RI5BSABARJBCCABEoDVEoDZBQABARJRBSAAEoDlAwAA
AQkHBBwSWRJdESgEIAEcHAQAARwcBSAAEoDtBSAAEoDxBSABElkcBSAAEoD5BSAAEoD9AyAACAUg
AggICAgHBAICElkSUQQAAQIOAyAAAgUgABKBBQUgABKBCQYgARKBDRwFIAASgREEIAASYQYgAQER
gRUDBwEOBAcBESgEBwEdDgMHAQICBg4KIAYBCA4ODggQAg4HBhJdEl0SWRJhEmUSXQUgARJhHAQg
ABJlAyAAHA0gBQESfQgCEoCBEoCFBSAAEoCNBhUSMAESIAQgABMABhUSMAESHAcVEjABEoCxBhUS
MAESLAQgAQIcCAABEoC5EYEhBAcBHgACHgAFEAEAHgAECgEeAAQHARMABhUSMAETAAgGFRKAwQET
AAcVEoDBARMAAhMABAoBEwAFIAEBEwAIt3pcVhk04IkIFs9JC7gMNOoIiYRdzYCAzJEIsD9ffxHV
CjoEAAAAAAQBAAAAAwYRKAMGEi0DBhIxAwYSNQIGCAMGEhQDBhIYAwYSfQcGFRIwARIgBwYVEjAB
EhwIBhUSMAESgLEHBhUSMAESLAUgAQESDAUgAQIQDgQgABEoBSABAREoBCAAHQ4FIAESXQ4LIAQB
CA4SgIESgIUFIAEBEn0EAAASIAQAABIcBQAAEoCxBAAAEiwFIAASgLkHEAEBHgAeAAcwAQEBEB4A
AygADgQoABEoBCgAHQ4FKAASgI0ECAASIAQIABIcBQgAEoCxBAgAEiwEKAATAAgBAAgAAAAAAB4B
AAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwEIAQACAAAAAABHAQAaLk5FVEZyYW1ld29yayxW
ZXJzaW9uPXY0LjABAFQOFEZyYW1ld29ya0Rpc3BsYXlOYW1lEC5ORVQgRnJhbWV3b3JrIDQFAQAA
AAAIAQABAAAAAAAuAQADAAAADUNybUNvbm5lY3Rpb24GQWN0aW9uEFJlbGF0aW9uc2hpcE5hbWUA
AA0BAAhWYWxpZGF0ZQAAGAEACk15VGVtcGxhdGUIMTEuMC4wLjAAAGEBADRTeXN0ZW0uV2ViLlNl
cnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2Vf
XxNEaXNwb3NlX19JbnN0YW5jZV9fAAAADQEACFNldHRpbmdzAAAsAQAnU2VsZWN0IER5bmFtaWNz
IENSTSBDb25uZWN0aW9uIE1hbmFnZXIuAAAWAQARQ3JtQ29ubmVjdGlvblR5cGUAAB4BABlTZWxl
Y3QgYWN0aW9uIHRvIHBlcmZvcm0uAAAfAQAaU3BlY2lmeSByZWxhdGlvbnNoaXAgbmFtZS4AABAB
AAtNeS5Db21wdXRlcgAAEwEADk15LkFwcGxpY2F0aW9uAAAMAQAHTXkuVXNlcgAAEwEADk15Lldl
YlNlcnZpY2VzAAAAAADcTQAAAAAAAAAAAAD2TQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6E0A
AAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIAAQAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAA
AAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIAAAAA
AAAAAAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAAA
AAAAAAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkA
bABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwCAAAB
AFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAAACwA
AgABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwAZQBW
AGUAcgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAigA1AAEASQBuAHQAZQByAG4AYQBsAE4A
YQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGYAYgA5AGYAZQA0AGQAYgBk
AGQAMQA1ADQAZgBlADEAYgAwADYAOQAwADMAMAA1ADQAYQAyADIAZABjADkAMgAuAGQAbABsAAAA
AAAoAAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAkgA1AAEATwByAGkAZwBp
AG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8A
ZgBiADkAZgBlADQAZABiAGQAZAAxADUANABmAGUAMQBiADAANgA5ADAAMwAwADUANABhADIAMgBk
AGMAOQAyAC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADAA
LgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMAAu
ADAALgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAAAIPgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></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_780521567bcc4f928a643689dcd570f0</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"><externalMetadataColumn id="43" name="FirstEntityName" dataType="wstr" length="100" /><externalMetadataColumn id="44" name="FirstEntityId" dataType="guid" /><externalMetadataColumn id="45" name="SecondEntityName" dataType="wstr" length="100" /><externalMetadataColumn id="46" name="SecondEntityId" dataType="guid" /></externalMetadataColumns></input></inputs></component>