<component id="2" name="Dynamics CRM Merge" 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="30"><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_23da824f995d4d85a98b4dd416426824.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_23da824f995d4d85a98b4dd416426824.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2016")> 
<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("2c9c4054-47c7-4685-a038-5dafdc4da60a")> 

' 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[scriptcomponent_23da824f995d4d85a98b4dd416426824.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_23da824f995d4d85a98b4dd416426824.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_23da824f995d4d85a98b4dd416426824.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{58FF9A70-4F40-4679-A05A-F73E7641DB33}</ProjectGuid>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </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="Microsoft.SqlServer.ManagedDTS, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\v4.0_13.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ManagedDTS.dll</HintPath>
    </Reference>
    <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=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <Private>False</Private>
    </Reference>
    <Reference Include="CozyRoc.SSISPlus.2016, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea">
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <!-- 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="" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC130</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</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[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-2016 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.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CozyRoc.Dynamics.Crm
Imports CozyRoc.Dynamics.Crm2011.OrganizationService


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ColumnMappings()>
<SortProperties(New String() {"CrmConnection", "Entity"})>
<ValidateProperties("Validate")>
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute>
<CLSCompliant(False)>
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim req As New OrganizationRequest
            req.RequestName = "Merge"
            req("SubordinateId") = New Guid(Row.Buffer(m_seiIndex).ToString())
            req("PerformParentingChecks") = Convert.ToBoolean(Row.Buffer(m_cpIndex))

            ' Setup UpdateContent.
            Dim entity As New Entity
            entity.LogicalName = Me.Entity
            req("UpdateContent") = entity

            ' Setup target.
            Dim target As New EntityReference
            target.LogicalName = Me.Entity
            target.Id = New Guid(Row.Buffer(m_teiIndex).ToString())
            req("Target") = target

            ' Execute action.
            Call m_service.Execute(req)
        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),
            IConnection)
        Call m_connection.Connect()
        m_service = CType(m_connection.GetService(0), OrganizationServiceClient)

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim inputCol As IDTSInputColumn100

        ' Get input column indexes.
        inputCol = GetInputColumn_("TargetId")
        m_teiIndex = Me.HostComponent.BufferManager.FindColumnByLineageID(
            input.Buffer,
            inputCol.LineageID)

        inputCol = GetInputColumn_("SubordinateId")
        m_seiIndex = Me.HostComponent.BufferManager.FindColumnByLineageID(
            input.Buffer,
            inputCol.LineageID)

        inputCol = GetInputColumn_("CheckParent")
        m_cpIndex = 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.Entity) Then
                Throw New ApplicationException("Select Dynamics CRM entity.")
            End If

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached AndAlso
                (input.InputColumnCollection.Count = 0 OrElse
                input.InputColumnCollection.Count < 3) 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 TargetId.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "TargetId"
        column.DataType = DataType.DT_GUID

        ' Setup SubordinateId.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "SubordinateId"
        column.DataType = DataType.DT_GUID

        ' Setup CheckParent.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "CheckParent"
        column.DataType = DataType.DT_BOOL
    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 merge entity.")>
    <List(New Object() {"account", "contact", "lead", "incident"})>
    Public Property Entity() As String
        Get
            Entity = m_entity
        End Get
        Set(ByVal value As String)
            m_entity = value
        End Set
    End Property    ' Entity
#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 Merge",
            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"
    Private m_crmConnection As String
    Private m_entity As String

    Private m_connection As IConnection
    Private m_service As OrganizationServiceClient
    Private m_teiIndex As Integer
    Private m_seiIndex As Integer
    Private m_cpIndex 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[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:CodeName>scriptcomponent_23da824f995d4d85a98b4dd416426824</msb:CodeName>
		<msb:DisplayName>scriptcomponent_23da824f995d4d85a98b4dd416426824</msb:DisplayName>
		<msb:ProjectId>{5942CE05-626F-4072-9254-D9598045AB30}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="scriptcomponent_23da824f995d4d85a98b4dd416426824.vbproj"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\Settings.settings"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><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\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_23da824f995d4d85a98b4dd416426824.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
BQAAEQJ7BQAABAoGKiICA30FAAAEKgAAEzABAAkAAAAFAAARAnsGAAAECgYqIgIDfQYAAAQqAAAT
MAQAEQAAAAYAABEXjTsAAAElFnKHAQBwogoGKgAAABMwBwAdAAAAAQAAERYKAigjAAAKFnKhAQBw
A35aAAAKFhIAb1sAAAoqAAAAGzACAIoAAAAHAAARFAsCKCMAAApvJAAAChaMSAAAAW8lAAAKDAhv
UwAACgNvXAAACg0Ib00AAApvXQAAChMEKyIRBG9eAAAKdCMAAAETBREFb18AAAoJb2AAAAozBREF
C94hEQRvYQAACi3V3hYRBHVPAAABLAwRBHVPAAABb2IAAArcBy0LcscBAHBzTwAACnoHCgYqAAAB
EAAAAgAmADxiABYAAAAAHgIoJwAACiqufgwAAAQtHnL3AQBw0AcAAAIoYwAACm9kAAAKc2UAAAqA
DAAABH4MAAAEKhp+DQAABCoeAoANAAAEKh4CKGYAAAoqHgIoZwAACioufg4AAARvaAAACioufg8A
AARvaQAACioufhAAAARvagAACioufhEAAARvawAACiqmc2wAAAqADgAABHNtAAAKgA8AAARzbgAA
CoAQAAAEc28AAAqAEQAABCpCcycAAAooMgAACoATAAAEKh4CKHAAAAoqAAAbMAEAPwAAAAAAAAB+
EgAABC0yfhMAAAQoMgAACihxAAAKfhIAAAQtHHMmAAAGgBIAAATeEH4TAAAEKDIAAAoocgAACtx+
EgAABCoAARAAAAIAHQAMKQAQAAAAADYCAygyAAAKKHMAAAoqHgIodAAACiou0AwAAAIoYwAACioe
AigvAAAKKgAAEzABABQAAAAIAAARAowFAAAbLQgoAQAAKworAgIKBioiA/4VBQAAGyoAAAATMAIA
KAAAAAkAABECe3YAAApvdwAACgoGjAgAABstEigCAAArCgJ7dgAACgZveAAACgYqSgIoJwAACgJz
eQAACn12AAAKKgBCU0pCAQABAAAAAAAMAAAAdjQuMC4zMDMxOQAAAAAFAGwAAABIDQAAI34AALQN
AABIEQAAI1N0cmluZ3MAAAAA/B4AACwCAAAjVVMAKCEAABAAAAAjR1VJRAAAADghAACYBQAAI0Js
b2IAAAAAAAAAAgAAAVcVogkJDwAAAPoBMwAWAAABAAAAUwAAAA0AAAAUAAAAMAAAABcAAAB5AAAA
RAAAAAkAAAAHAAAADgAAABEAAAAIAAAAAQAAAAsAAAABAAAAAgAAAAMAAAACAAAAAAB8CAEAAAAA
AAYAiwaaDQYAVQeaDQYAAgXHDA8AaA4AAAYAQwV4CQYAIgZ4CQYAKgd4CQYAqwZ4CQYAxAZ4CQYA
igV4CQYA3wbiCAYALwVUDQYAqwRUDQYA1gV4CQYApQXMBwoAMA/eAQ4Azw/SAxIAVQvSAw4AiwrS
AwoAQQ/eAQYAWw/iCBYA4wDRCwoAcwaBDgoAWwaBDgoAPwaBDg4A9QbSAwoA/QnpCBoAhQ+1AhoA
LBC1AhoAKBG1AhoAHwO1Ah4AcQq1DgYAdQriCCIAEQH5CyIAOAD5CyIAGgD5CwYAfQwCDyYAQwdR
CCYAKgZRCAoADgaBDgoAHAeBDgYAgQu6DQYAfwpjCSYAlgRRCCYAFgVRCCYAzgS5CyoAQgQqDSoA
QAzaDAYAvgXHDCoAWgVzDSoAcgV5AioAJgwqDSoA8wV5AgYAGQTiCCoAHgEnCCYAuQQICSYAUgRO
CQYA5QTHDAYA6AfiCA4AZAvSAyIAAQD5CyIAswD5CyIAkAD5CyIAygD5CwYAsALiCAYAIQ+aDQYA
JBDiCAYAAAniCBoAagS1AioAZAJzDS4AOwO4CAYASAHiCBIAnw/SAyIA/AD5CwYAXAriCCIAcwD5
CyIASwD5CxYA9wPRCwYAYgPiCAYAbgPiCAYAEBF4CQYArgy7BwYAlwziCAAAAABkAQAAAAABAAEA
AQAAAHEL7wdBAAEAAQABAAAAsQ/vB1EAAQAGAAEAAAAVD+8HVQADAAoAAQAAAHcO7wdVAAQADAAB
AAAAJQnvBwwABQANAAAAAAAQDssNVQAMABoAAAAAAEAJ0RC9AA4AHgAAAAAAPgzREMEADgAfAAAB
EABiD9EQVQAOACAAAAEQAKMO7wflABIAJQAFAQAAHA0AAFUAFAAoAAUBAAAtAQAAVQAUAC8ABgAV
D/ABBgB3DvQBAQC/D/gBAQC/D/gBAQA/ChcBAQAvERcBAQBPCvwBAQDtAgACAQC8EAQCAQCxEAQC
AQDHEAQCEQBJDAcCEQA2BAwCMQATCxECMQDqChkCMQD+CiECMQAsCyoCEQCKBzICEQBVDzYCIQCF
EK0BUCAAAAAABhihDDsAAQBfIAAAAADGCtMOOQIGAF8gAAAAAMYK6g45AgYAaCAAAAAAhgCpEEsA
BgCAIAAAAACGAHQPSwAGAJUgAAAAAAYYoQwGAAYAtSAAAAAAxgJvED4CBgDlIAAAAABGA2kQSAIK
APggAAAAAEYDkxBIAgsA+iAAAAAABhihDE4CDAAJIQAAAAAGCBsKcwANACohAAAAAAYYoQxOAg0A
OSEAAAAABhihDAYADgBEIQAAAADGApMQSAIOAHwiAAAAAMYCcwcGAA8AbiMAAAAAxgJ+BwYADwCE
IwAAAAAGAI0EVAIPAFgkAAAAAMYCOQIGABAAGCUAAAAABggbCpEAEAAtJQAAAAAGCC0KEAAQADgl
AAAAAAYIGRGRABEATSUAAAAABggkERAAEQBYJQAAAAABCAAEOQISAHglAAAAAAEALgIQABIApCUA
AAAAAQAeAloCEwBMJgAAAAADGKEMBgAUAFQmAAAAABYIfQthAhQAgCYAAAAAFggeBGcCFACHJgAA
AAAWCCoEbQIUAI8mAAAAAAYYoQwGABUAlyYAAAAABhihDAYAFQCfJgAAAAATCDEMdAIVAKsmAAAA
ABMIMAl5AhUAtyYAAAAAEwgiDH4CFQDDJgAAAAATCAwNhAIVAM8mAAAAABEYpwzBABUA+SYAAAAA
ERinDMEAFQAKJwAAAAAGGKEMBgAVABQnAAAAABYIkgeJAhUAcCcAAAAAxgKuDokBFQB+JwAAAADG
Ai8DYgAWAIYnAAAAAIMAFgSOAhYAkicAAAAAxgLmB5EAFgCcJwAAAAARAAsClAIWALwnAAAAAAEA
9wGcAhcATCYAAAAABhihDAYAGADIJwAAAAADCAYDaQEYAPwnAAAAAAYYoQwGABgAAAABAOcPAAAC
AM0BAAADAGEQAAAEAHYLAAAFAJkKAAABANYBAAACAMgDAAADAHYLAAAEAJkKAAABAHYLAAABAK0Q
AAABAOcPAAABAOcPAAABAK0QAAABAE8DAAABALUHAAABALUHAAABAFoDAAABAKsDAAABAK8HAAAB
AIkKAAABABYDAAABABYDCQChDAEAEQChDAYAGQChDAoAKQChDBAAMQChDBAAOQChDBAAQQChDBAA
SQChDBAAUQChDBAAWQChDBUAYQChDBUAaQChDBAAcQChDBAAeQChDBAAuQChDAYAwQChDBoAyQCh
DBAA0QChDAYAMQGhDBAAOQGhDBAAQQGhDBAASQGhDCAAaQGhDCYAcQGhDC0AiQGhDAYAkQGhDAYA
mQGhDAYAqQGhDDMAwQGhDBAA0QGhDAYAgQChDDsA4QGpEEsA4QF0D0sAoQChDAYAiQBOAk8A6QHp
CVUA8QHQCFsAEQFtAWIAqQChDAYA6QHJCWYA+QHQCGwAAQKRC3MA6QChDAYA6QC4AxAAgQBKC4cA
kQDQCIwAqQDmB5EACQKhDBAA6QDZCJUAEQKmB5sAGQL+CKAA8QChDAYA8QCbAxAA+QChDAYA+QCb
AxAA+QCPAqUA4QCCB6wAMQJtDLQAAQFnCLsAOQLDCJEAMQJbDMEACQFDA5EAiQBzBwYAsQAJCs4A
2QBsDwYA2QDiAowAoQDfD9MASQKnC9kAEQFKC2IAGQF0AWIAUQKCAd8AiQB+BwYA2QB/BAYA2QE4
EfAAWQKhDBAAEQGWAksAEQGvCfUAYQL9D2IACQGhDBAAAQK1ARAAoQA5AgYA8QH9D2IAEQGKCfsA
aQKlAhUAYQJyCAYAaQJyCAYAaQKPEAEBIQGSAxAAIQHzAwcB2QFAERcB6QFRDBoBaQLQCDoBYQKJ
DEEBKQHxD0cBGQGYAWIAIQFtAWIAKQF8EEsAeQKFBAYAsQGAA0sBsQEMEVQBUQGhDFoBeQGhDAYA
gQGhDAYADAAGA2kBFAAGA2kBHAAGA2kBJAAGA2kBDAChDAYAFAChDAYAHAChDAYAJAChDAYAyQGh
DAYAkQIrDIQBkQKAD4QBqQCuDokBqQAvA2IAmQL3ApYBNACFEK0BPACSB2kBPACcB8YBPAChDAYA
LgALAN0CLgATAOYCLgAbAAUDLgAjAA4DLgArAEsDLgAzAFEDLgA7AA4DLgBDAGADLgBLAEsDLgBT
AIADLgBbAEsDLgBjAIYDLgBrALADLgBzAL0DQwBTAEsDYwBTAEsDiQCbALoEiQCjAMgEiQCrAPUE
qQCbALoEqQCjAAwFqQCzACYFwwB7AAUEwwCDABMEwwCLADEEwwCTAAUEwwBTAEsD6QC7AAUDAwHD
AD8EAwG7AAoECQG7AAUDIwHDAD8EIwG7AAoEKQHrAFEFQAFTAEsDQwHTAAUEQwHbAAUEQwHDAD8E
SQHrAGIFaQHrAHYFgAFTAEsDgwG7AAoEgwHjAFgEiQHrAIMFowG7AAoEowFbAEsDqQHzAAUE4APL
AAUE4AO7AAoEAATLAAUEIATLAAUEQATLAAUEYATLAAUEAAW7AAoEAAXLAAUEIAW7AAoEIAXLAAUE
QAW7AAoEQAXLAAUEYAW7AAoEYAXLAAUEgAXLAAUEoAXLAAUEwAXLAAUEwAW7AAoE4AXLAAUEAAbL
AAUEAAa7AAoERwB4AMUA5QAOARIBJQGOAaEBAgABAAQAAwAGAAQABwAHAAoACQALAA0ADQAOAAAA
1w6kAgAA7g6kAgAAMQqpAgAAMQquAgAAKBGuAgAABASkAgAAgQuyAgAAOgS4AgAAQAy+AgAAQgnD
AgAAJgzIAgAAHg3OAgAArwfTAgAACgPYAgIAAgADAAIAAwAFAAIACwAHAAIAEwAJAAEAFAAJAAIA
FQALAAEAFgALAAIAFwANAAIAGwAPAAIAHAARAAEAHQARAAIAIAATAAIAIQAVAAIAIgAXAAIAIwAZ
AAIAJwAbAAIALwAdAGIBbgF1AX0BkwGmAbYBvgEEgAAAAQAAAAAAAAAAAAAAAADvBwAABAAAAAAA
AAAAAAAAzAFwAgAAAAABAAAAAAAAAAAAAADVAU4BAAAAAA0AAAAAAAAAAAAAAN4BBxAAAAAADQAA
AAAAAAAAAAAA3gFAEAAAAAANAAAAAAAAAAAAAADeAaMKAAAAAAEAAAAAAAAAAAAAANUBtgwAAAAA
BAAAAAAAAAAAAAAA5wH4DAAAAAANAAAAAAAAAAAAAADeAcYKAAAAAAQAAAAAAAAAAAAAAMwB4ggA
AAAACgAAAAAAAAAAAAAA5wF5AgAAAAAEAAAAAAAAAAAAAADMAbgIAAAAAAAAAAABAAAAHA4AAAwA
CgANAAoAAAAQABoA9QEAABAAWQD1AQAAAABbAPUB6wCcAesAwQEAAAAAAElEVFNDb21wb25lbnRN
ZXRhRGF0YTEwMABJRFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbjEwMABJRFRTSW5wdXRDb2x1bW4x
MDAASURUU0V4dGVybmFsTWV0YWRhdGFDb2x1bW5Db2xsZWN0aW9uMTAwAElEVFNJbnB1dENvbHVt
bkNvbGxlY3Rpb24xMDAASURUU1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbjEwMABJRFRTSW5w
dXRDb2xsZWN0aW9uMTAwAElEVFNSdW50aW1lQ29ubmVjdGlvbjEwMABJRFRTQ29ubmVjdGlvbk1h
bmFnZXIxMDAASURUU0J1ZmZlck1hbmFnZXIxMDAASURUU0lucHV0MTAwAENvbnRleHRWYWx1ZWAx
AFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAEludDMyAENvenlSb2MuU1NJU1BsdXMuMjAxNgA8
TW9kdWxlPgBnZXRfSUQAZ2V0X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQAZ2V0X0V4
dGVybmFsTWV0YWRhdGFDb2x1bW5JRABzZXRfQ29ubmVjdGlvbk1hbmFnZXJJRABPYmplY3RJRABJ
bnB1dElEAENvenlSb2MuU3FsU2VydmVyLlNTSVMAVABEaXNwb3NlX19JbnN0YW5jZV9fAENyZWF0
ZV9fSW5zdGFuY2VfXwBHZXRJbnB1dENvbHVtbl8ARmlyZUVycm9yXwBSZWluaXRpYWxpemVNZXRh
RGF0YQBnZXRfQ29tcG9uZW50TWV0YURhdGEAUHJvamVjdERhdGEAbXNjb3JsaWIATWljcm9zb2Z0
LlZpc3VhbEJhc2ljAHNldF9JZABnZXRfSXNBdHRhY2hlZABzZXRfSXNVc2VkAEd1aWQAQ296eVJv
Yy5EeW5hbWljcy5Dcm0yMDExLk9yZ2FuaXphdGlvblNlcnZpY2UAR2V0U2VydmljZQBtX3NlcnZp
Y2UAQ3JlYXRlSW5zdGFuY2UAZ2V0X0dldEluc3RhbmNlAGluc3RhbmNlAEVudGl0eVJlZmVyZW5j
ZQBHZXRIYXNoQ29kZQBYbWxOb2RlAGdldF9NZXNzYWdlAGVyck1lc3NhZ2UAbWVzc2FnZQBJRGlz
cG9zYWJsZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBzZXRfTmFtZQBzZXRf
TG9naWNhbE5hbWUAZXh0ZXJuYWxOYW1lAHNldF9SZXF1ZXN0TmFtZQBJbnB1dE5hbWUATWljcm9z
b2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAc2V0X0RhdGFUeXBlAGdldF9Dcm1Db25uZWN0aW9u
VHlwZQBHZXRUeXBlAGdldF9DdWx0dXJlAHNldF9DdWx0dXJlAF9yZXNDdWx0dXJlAEFwcGxpY2F0
aW9uQmFzZQBBcHBsaWNhdGlvblNldHRpbmdzQmFzZQBPcmdhbml6YXRpb25SZXNwb25zZQBDbG9z
ZQBEaXNwb3NlAFZhbGlkYXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAEd1aWRBdHRyaWJ1dGUASGVs
cEtleXdvcmRBdHRyaWJ1dGUAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBEZWJ1Z2dlck5vblVzZXJD
b2RlQXR0cmlidXRlAERlYnVnZ2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRl
AENvbVZpc2libGVBdHRyaWJ1dGUAQXNzZW1ibHlUaXRsZUF0dHJpYnV0ZQBTdGFuZGFyZE1vZHVs
ZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFtZUF0dHJpYnV0ZQBBc3NlbWJseVRyYWRlbWFya0F0dHJp
YnV0ZQBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUAQXNz
ZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBDb25u
ZWN0aW9uQXR0cmlidXRlAEFzc2VtYmx5RGVzY3JpcHRpb25BdHRyaWJ1dGUAVmFsaWRhdGVQcm9w
ZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAENvbHVtbk1hcHBpbmdzQXR0
cmlidXRlAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAQXNzZW1ibHlQcm9kdWN0QXR0
cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0QXR0cmlidXRlAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBT
U0lTU2NyaXB0Q29tcG9uZW50RW50cnlQb2ludEF0dHJpYnV0ZQBMaXN0QXR0cmlidXRlAEFzc2Vt
Ymx5Q29tcGFueUF0dHJpYnV0ZQBDYXRlZ29yeUF0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0
eUF0dHJpYnV0ZQBQcmVFeGVjdXRlAFBvc3RFeGVjdXRlAG1fVmFsdWUAZ2V0X1ZhbHVlAHNldF9W
YWx1ZQBHZXRPYmplY3RWYWx1ZQB2YWx1ZQBTeXN0ZW0uVGhyZWFkaW5nAFN5c3RlbS5SdW50aW1l
LlZlcnNpb25pbmcAVG9TdHJpbmcAU2NyaXB0Q29tcG9uZW50XzIzZGE4MjRmOTk1ZDRkODVhOThi
NGRkNDE2NDI2ODI0LnZicHJvagBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRl
cm5hbABTeXN0ZW0uQ29tcG9uZW50TW9kZWwAZ2V0X0RldGFpbABSZW1vdmVBbGwAU2NyaXB0Q29t
cG9uZW50XzIzZGE4MjRmOTk1ZDRkODVhOThiNGRkNDE2NDI2ODI0LnZicHJvai5kbGwAU3lzdGVt
LlhtbABnZXRfSW5uZXJYbWwAZ2V0X0l0ZW0Ac2V0X0l0ZW0AU3lzdGVtAENvenlSb2MuRHluYW1p
Y3MuQ3JtAFRvQm9vbGVhbgBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAFNjcmlwdE1haW4A
Z2V0X0FwcGxpY2F0aW9uAE15QXBwbGljYXRpb24AU3lzdGVtLkNvbmZpZ3VyYXRpb24AU3lzdGVt
Lkdsb2JhbGl6YXRpb24AU3lzdGVtLlJlZmxlY3Rpb24AZ2V0X0V4dGVybmFsTWV0YWRhdGFDb2x1
bW5Db2xsZWN0aW9uAGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X1J1bnRpbWVDb25uZWN0
aW9uQ29sbGVjdGlvbgBnZXRfSW5wdXRDb2xsZWN0aW9uAElDb25uZWN0aW9uAEFjcXVpcmVDb25u
ZWN0aW9uAGdldF9Dcm1Db25uZWN0aW9uAHNldF9Dcm1Db25uZWN0aW9uAG1fY3JtQ29ubmVjdGlv
bgBtX2Nvbm5lY3Rpb24AQXBwbGljYXRpb25FeGNlcHRpb24AU29hcEV4Y2VwdGlvbgBDdWx0dXJl
SW5mbwBPdXRwdXROYW1lTWFwAE91dHB1dE1hcABNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1J1bnRp
bWVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUGlwZWxpbmVXcmFwAG1fQXBwT2JqZWN0UHJv
dmlkZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAG1fTXlX
ZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAGdldF9CdWZmZXIAUGlwZWxpbmVCdWZmZXIAU2NyaXB0
QnVmZmVyAElucHV0QnVmZmVyAGdldF9SZXNvdXJjZU1hbmFnZXIAZ2V0X0Nvbm5lY3Rpb25NYW5h
Z2VyAGdldF9CdWZmZXJNYW5hZ2VyAFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVyAE1pY3Jvc29mdC5T
cWxTZXJ2ZXIuRHRzLlJ1bnRpbWUuV3JhcHBlcgBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBl
bGluZS5XcmFwcGVyAGdldF9Vc2VyAEVudGVyAGdldF9Db21wdXRlcgBNeUNvbXB1dGVyAF9yZXNN
Z3IARmlyZUVycm9yAENsZWFyUHJvamVjdEVycm9yAFNldFByb2plY3RFcnJvcgBJRW51bWVyYXRv
cgBHZXRFbnVtZXJhdG9yAEFjdGl2YXRvcgAuY3RvcgAuY2N0b3IATW9uaXRvcgBDb3p5Um9jLkR5
bmFtaWNzAFN5c3RlbS5EaWFnbm9zdGljcwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBT
eXN0ZW0uV2ViLlNlcnZpY2VzAGdldF9XZWJTZXJ2aWNlcwBNeVdlYlNlcnZpY2VzAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAFN5c3RlbS5SdW50aW1lLkludGVyb3BT
ZXJ2aWNlcwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTeXN0ZW0uUnVu
dGltZS5Db21waWxlclNlcnZpY2VzAFN5c3RlbS5SZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50XzIz
ZGE4MjRmOTk1ZDRkODVhOThiNGRkNDE2NDI2ODI0LnZicHJvai5NeS5SZXNvdXJjZXMATXlSZXNv
dXJjZXMAU2NyaXB0Q29tcG9uZW50XzIzZGE4MjRmOTk1ZDRkODVhOThiNGRkNDE2NDI2ODI0LnZi
cHJvai5SZXNvdXJjZXMucmVzb3VyY2VzAERlYnVnZ2luZ01vZGVzAFZhcmlhYmxlcwBDb3p5Um9j
LlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMATXlTZXR0aW5ncwBFcXVhbHMAU3lzdGVtLldlYi5T
ZXJ2aWNlcy5Qcm90b2NvbHMAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRfU3RhdGljT3V0cHV0
Q29sdW1ucwBTeXN0ZW0uQ29sbGVjdGlvbnMAQ29ubmVjdGlvbnMAUnVudGltZUhlbHBlcnMAU2Ny
aXB0QnVmZmVyUGx1cwBTY3JpcHRDb21wb25lbnRQbHVzAG1fU3luY09iamVjdABNeVByb2plY3QA
Q29ubmVjdABFbmRPZlJvd3NldABFeGl0AE9yZ2FuaXphdGlvblNlcnZpY2VDbGllbnQAUGlwZWxp
bmVDb21wb25lbnQAVXNlckNvbXBvbmVudABQYXJlbnRDb21wb25lbnQAU2NyaXB0Q29tcG9uZW50
AGdldF9Ib3N0Q29tcG9uZW50AGdldF9DdXJyZW50AGdldF9Db3VudABNaWNyb3NvZnQuU3FsU2Vy
dmVyLlR4U2NyaXB0AENvbnZlcnQAT3JnYW5pemF0aW9uUmVxdWVzdABNaWNyb3NvZnQuU3FsU2Vy
dmVyLlBpcGVsaW5lSG9zdABJc0lucHV0AElucHV0X1Byb2Nlc3NJbnB1dABNb3ZlTmV4dABtX0Nv
bnRleHQATmV3AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBOZXh0Um93AG1fc2VpSW5kZXgAbV90ZWlJ
bmRleABtX2NwSW5kZXgAU2NyaXB0Q29tcG9uZW50XzIzZGE4MjRmOTk1ZDRkODVhOThiNGRkNDE2
NDI2ODI0LnZicHJvai5NeQBnZXRfQXNzZW1ibHkAZ2V0X0VudGl0eQBzZXRfRW50aXR5AG1fZW50
aXR5AElzTnVsbE9yRW1wdHkAAAAAC0kAbgBwAHUAdAAAG0MAcgBtAEMAbwBuAG4AZQBjAHQAaQBv
AG4AAAtNAGUAcgBnAGUAABtTAHUAYgBvAHIAZABpAG4AYQB0AGUASQBkAAAtUABlAHIAZgBvAHIA
bQBQAGEAcgBlAG4AdABpAG4AZwBDAGgAZQBjAGsAcwAAG1UAcABkAGEAdABlAEMAbwBuAHQAZQBu
AHQAAA1UAGEAcgBnAGUAdAAAEVQAYQByAGcAZQB0AEkAZAAAF0MAaABlAGMAawBQAGEAcgBlAG4A
dAAAP1MAZQBsAGUAYwB0ACAARAB5AG4AYQBtAGkAYwBzACAAQwBSAE0AIABjAG8AbgBuAGUAYwB0
AGkAbwBuAC4AADdTAGUAbABlAGMAdAAgAEQAeQBuAGEAbQBpAGMAcwAgAEMAUgBNACAAZQBuAHQA
aQB0AHkALgAAJU0AYQBwACAAaQBuAHAAdQB0ACAAYwBvAGwAdQBtAG4AcwAuAAAVTgBvACAAaQBu
AHAAdQB0AHMALgAAGUQAWQBOAEEATQBJAEMAUwAtAEMAUgBNAAElRAB5AG4AYQBtAGkAYwBzACAA
QwBSAE0AIABNAGUAcgBnAGUAAC9JAG4AcAB1AHQAIABjAG8AbAB1AG0AbgAgAG4AbwB0ACAAZgBv
AHUAbgBkAC4AADFNAHkALgBSAGUAcwBvAHUAcgBjAGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUA
cwAAAAAAbVJTjZfZs0y+BfcBS7tesgAEIAEBCAMgAAEFIAEBEREEIAEBDgQgAQECBSABAR0OBSAB
AR0cBiABARGAsQUgAgEODgcgBAEODg4OCyAFARJFCAISSRJNAwcBAgMgAAIFIAASgPUFIAASgPkG
IAESgIkcAyAACAUgABKA/QYgARKBARwEIAASWQ4HBRJ1EnkSfRKAgRKAhQQgABJJBCABHAgDIAAO
BSACAQ4cBAABHBwEAAECHAYgAQERgQUHIAESgRUSdQYAAQESgIUFIAASgR0DAAABCAcCEoCJEoCN
BCABHBwFIAASgSUFIAASgSkFIAIICAgKBwQCAhKAiRKAhQQAAQIOBSAAEoExBSAAEoE1BSAAEoCR
BiABARGBOQMHAQ4EBwEdDgIGDgogBgEIDg4OCBACFAcGEoCNEoCNEoCJEoCREoCVEoCNBiABEoCR
HAUgABKAlQMgABwIAAESgNkRgUEFIAASgUUHIAIBDhKBRQYVEjQBEiQEIAATAAYVEjQBEiAHFRI0
ARKA0QYVEjQBEjAEAAEBHAQgAQIcBAcBHgACHgAFEAEAHgAECgEeAAQHARMABhUSNAETAAgGFRKA
3QETAAcVEoDdARMAAhMABAoBEwAFIAEBEwAIt3pcVhk04IkIFs9JC7gMNOoIiYRdzYCAzJEIsD9f
fxHVCjoDBhIQAwYSFAMGEkUDBhJtAwYScQIGCAQGEoCpBAYSgK0HBhUSNAESJAcGFRI0ARIgCAYV
EjQBEoDRBwYVEjQBEjADBhIsAgYcBCAAHQ4JIAQBCA4SSRJNBSABARIIBSABARJFBSABAhAOBiAB
EoCNDgUAABKAqQUAABKArQYAAQESgK0EAAASJAQAABIgBQAAEoDRBAAAEjAEAAASLAUgABKA2QcQ
AQEeAB4ABzABAQEQHgAEKAAdDgQoABJZAygADgUIABKAqQUIABKArQQIABIkBAgAEiAFCAASgNEE
CAASMAQIABIsBCgAEwAIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBCAEA
AgAAAAAAPAEAN1NjcmlwdENvbXBvbmVudF8yM2RhODI0Zjk5NWQ0ZDg1YTk4YjRkZDQxNjQyNjgy
NC52YnByb2oAAAUBAAAAAA4BAAlNaWNyb3NvZnQAAB8BABpDb3B5cmlnaHQgQCBNaWNyb3NvZnQg
MjAxNgAABQEAAQAAKQEAJDJjOWM0MDU0LTQ3YzctNDY4NS1hMDM4LTVkYWZkYzRkYTYwYQAADAEA
BzEuMC4wLjAAAEcBABouTkVURnJhbWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlz
cGxheU5hbWUQLk5FVCBGcmFtZXdvcmsgNAQBAAAACAEAAQAAAAAAHQEAAgAAAA1Dcm1Db25uZWN0
aW9uBkVudGl0eQAADQEACFZhbGlkYXRlAAAYAQAKTXlUZW1wbGF0ZQgxMS4wLjAuMAAAYQEANFN5
c3RlbS5XZWIuU2VydmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJvdG9jb2wSQ3JlYXRl
X19JbnN0YW5jZV9fE0Rpc3Bvc2VfX0luc3RhbmNlX18AAAANAQAIU2V0dGluZ3MAACwBACdTZWxl
Y3QgRHluYW1pY3MgQ1JNIENvbm5lY3Rpb24gTWFuYWdlci4AABYBABFDcm1Db25uZWN0aW9uVHlw
ZQAAGQEAFFNlbGVjdCBtZXJnZSBlbnRpdHkuAAAqAQAEAAAADgdhY2NvdW50Dgdjb250YWN0DgRs
ZWFkDghpbmNpZGVudAAAEAEAC015LkNvbXB1dGVyAAATAQAOTXkuQXBwbGljYXRpb24AAAwBAAdN
eS5Vc2VyAAATAQAOTXkuV2ViU2VydmljZXMAAAC0AAAAzsrvvgEAAACRAAAAbFN5c3RlbS5SZXNv
dXJjZXMuUmVzb3VyY2VSZWFkZXIsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9
bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSNTeXN0ZW0uUmVzb3VyY2Vz
LlJ1bnRpbWVSZXNvdXJjZVNldAIAAAAAAAAAAAAAAFBBRFBBRFC0AAAAwE8AAAAAAAAAAAAA2k8A
AAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMxPAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3Jl
ZS5kbGwAAAAAAP8lACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAA
AAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAAsAQAAAAA
AAAAAAAAsAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAAB
AAAAAAAAAAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkA
bABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBBAEAAAB
AFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAOwDAAABADAAMAAwADAAMAA0AGIAMAAAABoA
AQABAEMAbwBtAG0AZQBuAHQAcwAAAAAAAAA0AAoAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAA
AE0AaQBjAHIAbwBzAG8AZgB0AAAAmAA4AAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4A
AAAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AMgAzAGQAYQA4ADIANABmADkAOQA1
AGQANABkADgANQBhADkAOABiADQAZABkADQAMQA2ADQAMgA2ADgAMgA0AC4AdgBiAHAAcgBvAGoA
AAAwAAgAAQBGAGkAbABlAFYAZQByAHMAaQBvAG4AAAAAADEALgAwAC4AMAAuADAAAACYADwAAQBJ
AG4AdABlAHIAbgBhAGwATgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8A
MgAzAGQAYQA4ADIANABmADkAOQA1AGQANABkADgANQBhADkAOABiADQAZABkADQAMQA2ADQAMgA2
ADgAMgA0AC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAFoAGwABAEwAZQBnAGEAbABDAG8AcAB5AHIA
aQBnAGgAdAAAAEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAMgAw
ADEANgAAAAAAKgABAAEATABlAGcAYQBsAFQAcgBhAGQAZQBtAGEAcgBrAHMAAAAAAAAAAACgADwA
AQBPAHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABv
AG4AZQBuAHQAXwAyADMAZABhADgAMgA0AGYAOQA5ADUAZAA0AGQAOAA1AGEAOQA4AGIANABkAGQA
NAAxADYANAAyADYAOAAyADQALgB2AGIAcAByAG8AagAuAGQAbABsAAAAkAA4AAEAUAByAG8AZAB1
AGMAdABOAGEAbQBlAAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADIAMwBkAGEA
OAAyADQAZgA5ADkANQBkADQAZAA4ADUAYQA5ADgAYgA0AGQAZAA0ADEANgA0ADIANgA4ADIANAAu
AHYAYgBwAHIAbwBqAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAA
LgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAu
ADAALgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADAAAAOw/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></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_23da824f995d4d85a98b4dd416426824</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><property id="60" name="MetadataShaChecksum" dataType="System.String" description="Checksum to match component metedata against compiled codes." typeConverter="NOTBROWSABLE">f2c26ea40b4558468d0f761e8aa9117c4d2d05d8</property><property id="61" name="MetadataChecksum" dataType="System.String" description="Checksum to match component metedata against compiled codes." typeConverter="NOTBROWSABLE">6332bdbe170b81876477db5193c02134</property></properties><connections><connection id="15" name="CrmConnection" connectionManagerID="{AD0515CC-EE6D-4910-B8B2-FEACB3A0E0CA}" /></connections><inputs><input id="16" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True"><externalMetadataColumn id="20" name="TargetId" dataType="guid" /><externalMetadataColumn id="21" name="SubordinateId" dataType="guid" /><externalMetadataColumn id="22" name="CheckParent" dataType="bool" /></externalMetadataColumns></input></inputs></component>