<component id="2" name="Dynamics CRM Entity Source" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="9" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0"><properties><property id="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[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 OutputBuffer As OutputBuffer

    Public Overridable Sub FinishOutputs()
    End Sub

    Private Sub MarkOutputsFinished()

        If OutputBuffer IsNot Nothing Then
            OutputBuffer.SetEndOfRowset
            OutputBuffer = Nothing
        End If

    End Sub

    Public Overrides Sub PrimeOutput(ByVal Outputs As Integer, ByVal OutputIDs() As Integer, ByVal Buffers() As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = GetOutputID(OutputMap, "Output") Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I), OutputMap)
            End If
        Next

        CreateNewOutputRows()

        FinishOutputs()
        MarkOutputsFinished()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property CrmConnection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManager
        End Get
    End Property

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class OutputBuffer
    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 WriteOnly Property [ActivityTypeMask]() As Int32
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [ActivityTypeMask_IsNull] As Boolean
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [AutoRouteToOwnerQueue]() As Boolean
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [AutoRouteToOwnerQueue_IsNull] As Boolean
        Set
            If (value)
                SetNull(1)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CanBeInManyToMany]() As Boolean
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [CanBeInManyToMany_IsNull] As Boolean
        Set
            If (value)
                SetNull(2)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CanBePrimaryEntityInRelationship]() As Boolean
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [CanBePrimaryEntityInRelationship_IsNull] As Boolean
        Set
            If (value)
                SetNull(3)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CanBeRelatedEntityInRelationship]() As Boolean
        Set
            Me(4) = Value
        End Set
    End Property
    Public WriteOnly Property [CanBeRelatedEntityInRelationship_IsNull] As Boolean
        Set
            If (value)
                SetNull(4)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CanCreateAttributes]() As Boolean
        Set
            Me(5) = Value
        End Set
    End Property
    Public WriteOnly Property [CanCreateAttributes_IsNull] As Boolean
        Set
            If (value)
                SetNull(5)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CanCreateCharts]() As Boolean
        Set
            Me(6) = Value
        End Set
    End Property
    Public WriteOnly Property [CanCreateCharts_IsNull] As Boolean
        Set
            If (value)
                SetNull(6)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CanCreateForms]() As Boolean
        Set
            Me(7) = Value
        End Set
    End Property
    Public WriteOnly Property [CanCreateForms_IsNull] As Boolean
        Set
            If (value)
                SetNull(7)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CanCreateViews]() As Boolean
        Set
            Me(8) = Value
        End Set
    End Property
    Public WriteOnly Property [CanCreateViews_IsNull] As Boolean
        Set
            If (value)
                SetNull(8)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CanModifyAdditionalSettings]() As Boolean
        Set
            Me(9) = Value
        End Set
    End Property
    Public WriteOnly Property [CanModifyAdditionalSettings_IsNull] As Boolean
        Set
            If (value)
                SetNull(9)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CanTriggerWorkflow]() As Boolean
        Set
            Me(10) = Value
        End Set
    End Property
    Public WriteOnly Property [CanTriggerWorkflow_IsNull] As Boolean
        Set
            If (value)
                SetNull(10)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Description]() As String
        Set
            Me(11) = Value
        End Set
    End Property
    Public WriteOnly Property [Description_IsNull] As Boolean
        Set
            If (value)
                SetNull(11)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [DisplayCollectionName]() As String
        Set
            Me(12) = Value
        End Set
    End Property
    Public WriteOnly Property [DisplayCollectionName_IsNull] As Boolean
        Set
            If (value)
                SetNull(12)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [DisplayName]() As String
        Set
            Me(13) = Value
        End Set
    End Property
    Public WriteOnly Property [DisplayName_IsNull] As Boolean
        Set
            If (value)
                SetNull(13)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IconLargeName]() As String
        Set
            Me(14) = Value
        End Set
    End Property
    Public WriteOnly Property [IconLargeName_IsNull] As Boolean
        Set
            If (value)
                SetNull(14)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IconMediumName]() As String
        Set
            Me(15) = Value
        End Set
    End Property
    Public WriteOnly Property [IconMediumName_IsNull] As Boolean
        Set
            If (value)
                SetNull(15)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IconSmallName]() As String
        Set
            Me(16) = Value
        End Set
    End Property
    Public WriteOnly Property [IconSmallName_IsNull] As Boolean
        Set
            If (value)
                SetNull(16)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsActivity]() As Boolean
        Set
            Me(17) = Value
        End Set
    End Property
    Public WriteOnly Property [IsActivity_IsNull] As Boolean
        Set
            If (value)
                SetNull(17)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsActivityParty]() As Boolean
        Set
            Me(18) = Value
        End Set
    End Property
    Public WriteOnly Property [IsActivityParty_IsNull] As Boolean
        Set
            If (value)
                SetNull(18)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsAuditEnabled]() As Boolean
        Set
            Me(19) = Value
        End Set
    End Property
    Public WriteOnly Property [IsAuditEnabled_IsNull] As Boolean
        Set
            If (value)
                SetNull(19)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsAvailableOffline]() As Boolean
        Set
            Me(20) = Value
        End Set
    End Property
    Public WriteOnly Property [IsAvailableOffline_IsNull] As Boolean
        Set
            If (value)
                SetNull(20)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsChildEntity]() As Boolean
        Set
            Me(21) = Value
        End Set
    End Property
    Public WriteOnly Property [IsChildEntity_IsNull] As Boolean
        Set
            If (value)
                SetNull(21)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsConnectionsEnabled]() As Boolean
        Set
            Me(22) = Value
        End Set
    End Property
    Public WriteOnly Property [IsConnectionsEnabled_IsNull] As Boolean
        Set
            If (value)
                SetNull(22)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsCustomEntity]() As Boolean
        Set
            Me(23) = Value
        End Set
    End Property
    Public WriteOnly Property [IsCustomEntity_IsNull] As Boolean
        Set
            If (value)
                SetNull(23)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsCustomizable]() As Boolean
        Set
            Me(24) = Value
        End Set
    End Property
    Public WriteOnly Property [IsCustomizable_IsNull] As Boolean
        Set
            If (value)
                SetNull(24)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsDocumentManagementEnabled]() As Boolean
        Set
            Me(25) = Value
        End Set
    End Property
    Public WriteOnly Property [IsDocumentManagementEnabled_IsNull] As Boolean
        Set
            If (value)
                SetNull(25)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsDuplicateDetectionEnabled]() As Boolean
        Set
            Me(26) = Value
        End Set
    End Property
    Public WriteOnly Property [IsDuplicateDetectionEnabled_IsNull] As Boolean
        Set
            If (value)
                SetNull(26)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsEnabledForCharts]() As Boolean
        Set
            Me(27) = Value
        End Set
    End Property
    Public WriteOnly Property [IsEnabledForCharts_IsNull] As Boolean
        Set
            If (value)
                SetNull(27)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsImportable]() As Boolean
        Set
            Me(28) = Value
        End Set
    End Property
    Public WriteOnly Property [IsImportable_IsNull] As Boolean
        Set
            If (value)
                SetNull(28)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsIntersect]() As Boolean
        Set
            Me(29) = Value
        End Set
    End Property
    Public WriteOnly Property [IsIntersect_IsNull] As Boolean
        Set
            If (value)
                SetNull(29)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsMailMergeEnabled]() As Boolean
        Set
            Me(30) = Value
        End Set
    End Property
    Public WriteOnly Property [IsMailMergeEnabled_IsNull] As Boolean
        Set
            If (value)
                SetNull(30)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsManaged]() As Boolean
        Set
            Me(31) = Value
        End Set
    End Property
    Public WriteOnly Property [IsManaged_IsNull] As Boolean
        Set
            If (value)
                SetNull(31)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsMappable]() As Boolean
        Set
            Me(32) = Value
        End Set
    End Property
    Public WriteOnly Property [IsMappable_IsNull] As Boolean
        Set
            If (value)
                SetNull(32)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsReadingPaneEnabled]() As Boolean
        Set
            Me(33) = Value
        End Set
    End Property
    Public WriteOnly Property [IsReadingPaneEnabled_IsNull] As Boolean
        Set
            If (value)
                SetNull(33)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsRenameable]() As Boolean
        Set
            Me(34) = Value
        End Set
    End Property
    Public WriteOnly Property [IsRenameable_IsNull] As Boolean
        Set
            If (value)
                SetNull(34)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsValidForAdvancedFind]() As Boolean
        Set
            Me(35) = Value
        End Set
    End Property
    Public WriteOnly Property [IsValidForAdvancedFind_IsNull] As Boolean
        Set
            If (value)
                SetNull(35)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsValidForQueue]() As Boolean
        Set
            Me(36) = Value
        End Set
    End Property
    Public WriteOnly Property [IsValidForQueue_IsNull] As Boolean
        Set
            If (value)
                SetNull(36)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [IsVisibleInMobile]() As Boolean
        Set
            Me(37) = Value
        End Set
    End Property
    Public WriteOnly Property [IsVisibleInMobile_IsNull] As Boolean
        Set
            If (value)
                SetNull(37)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [LogicalName]() As String
        Set
            Me(38) = Value
        End Set
    End Property
    Public WriteOnly Property [LogicalName_IsNull] As Boolean
        Set
            If (value)
                SetNull(38)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ObjectTypeCode]() As Int32
        Set
            Me(39) = Value
        End Set
    End Property
    Public WriteOnly Property [ObjectTypeCode_IsNull] As Boolean
        Set
            If (value)
                SetNull(39)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [OwnershipType]() As String
        Set
            Me(40) = Value
        End Set
    End Property
    Public WriteOnly Property [OwnershipType_IsNull] As Boolean
        Set
            If (value)
                SetNull(40)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [PrimaryIdAttribute]() As String
        Set
            Me(41) = Value
        End Set
    End Property
    Public WriteOnly Property [PrimaryIdAttribute_IsNull] As Boolean
        Set
            If (value)
                SetNull(41)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [PrimaryNameAttribute]() As String
        Set
            Me(42) = Value
        End Set
    End Property
    Public WriteOnly Property [PrimaryNameAttribute_IsNull] As Boolean
        Set
            If (value)
                SetNull(42)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [RecurrenceBaseEntityLogicalName]() As String
        Set
            Me(43) = Value
        End Set
    End Property
    Public WriteOnly Property [RecurrenceBaseEntityLogicalName_IsNull] As Boolean
        Set
            If (value)
                SetNull(43)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ReportViewName]() As String
        Set
            Me(44) = Value
        End Set
    End Property
    Public WriteOnly Property [ReportViewName_IsNull] As Boolean
        Set
            If (value)
                SetNull(44)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [SchemaName]() As String
        Set
            Me(45) = Value
        End Set
    End Property
    Public WriteOnly Property [SchemaName_IsNull] As Boolean
        Set
            If (value)
                SetNull(45)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"ActivityTypeMask", "AutoRouteToOwnerQueue", "CanBeInManyToMany", "CanBePrimaryEntityInRelationship", "CanBeRelatedEntityInRelationship", "CanCreateAttributes", "CanCreateCharts", "CanCreateForms", "CanCreateViews", "CanModifyAdditionalSettings", "CanTriggerWorkflow", "Description", "DisplayCollectionName", "DisplayName", "IconLargeName", "IconMediumName", "IconSmallName", "IsActivity", "IsActivityParty", "IsAuditEnabled", "IsAvailableOffline", "IsChildEntity", "IsConnectionsEnabled", "IsCustomEntity", "IsCustomizable", "IsDocumentManagementEnabled", "IsDuplicateDetectionEnabled", "IsEnabledForCharts", "IsImportable", "IsIntersect", "IsMailMergeEnabled", "IsManaged", "IsMappable", "IsReadingPaneEnabled", "IsRenameable", "IsValidForAdvancedFind", "IsValidForQueue", "IsVisibleInMobile", "LogicalName", "ObjectTypeCode", "OwnershipType", "PrimaryIdAttribute", "PrimaryNameAttribute", "RecurrenceBaseEntityLogicalName", "ReportViewName", "SchemaName"}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptMain.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' COZYROC SQL Server Integration Services user script component
'
' Copyright (c) 2006-2013 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 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
Imports Meta4 = CozyRoc.Dynamics.Crm.MetadataService
Imports CRM3 = CozyRoc.Dynamics.Crm3.Service
Imports Meta3 = CozyRoc.Dynamics.Crm3.MetadataService


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        ' Retrieve entity metadata.
        Dim connection As ICrmConnection = CType( _
            Me.Connections.CrmConnection.AcquireConnection(Nothing), _
            ICrmConnection)
        Try
            Call connection.Connect()

            Dim service As Object = connection.GetService(0)   ' 0 - CRM Service
            Dim service2011 As CRM2011.OrganizationServiceClient = TryCast( _
                service, _
                CRM2011.OrganizationServiceClient)
            Dim service4 As CRM4.CrmService = TryCast(service, CRM4.CrmService)
            Dim service3 As CRM3.CrmService = TryCast(service, CRM3.CrmService)

            If Not service2011 Is Nothing Then
                ' CRM 2011.
                Call Process2011_(service2011)
            ElseIf Not service4 Is Nothing Then
                ' Will use metadata service.
                Dim meta4 As Meta4.MetadataService = CType( _
                    connection.GetService(1), _
                    Meta4.MetadataService)
                Call Process4_(meta4)
            ElseIf Not service3 Is Nothing Then
                ' Will use metadata service.
                Dim meta3 As Meta3.MetadataService = CType( _
                    connection.GetService(1), _
                    Meta3.MetadataService)
                Call Process3_(meta3)
            Else
                Throw New Exception("Unhandled service object.")
            End If
        Catch ex As Exception
            Call FireError_(ex.Message)
        Finally
            Call connection.Close()
        End Try
    End Sub ' CreateNewOutputRows


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

        Try
            If String.IsNullOrEmpty(Me.CrmConnection) Then
                Throw New Exception("Select Dynamics CRM Connection.")
            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


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


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


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process2011_(ByVal service As CRM2011.OrganizationServiceClient)
        Dim req As New CRM2011.OrganizationRequest()
        req.RequestName = "RetrieveAllEntities"
        req("RetrieveAsIfPublished") = False
        req("EntityFilters") = CRM2011.EntityFilters.Entity
        Dim res As CRM2011.OrganizationResponse = service.Execute(req)
        Dim entities() As CRM2011.EntityMetadata = CType( _
            res("EntityMetadata"), _
            CRM2011.EntityMetadata())

        For Each entity As CRM2011.EntityMetadata In entities
            With MyBase.OutputBuffer
                Call .AddRow()

                If entity.ActivityTypeMask.HasValue Then
                    .ActivityTypeMask = entity.ActivityTypeMask.Value
                End If

                If entity.AutoRouteToOwnerQueue.HasValue Then
                    .AutoRouteToOwnerQueue = entity.AutoRouteToOwnerQueue.Value
                End If

                .CanBeInManyToMany = entity.CanBeInManyToMany.Value
                .CanBePrimaryEntityInRelationship = entity.CanBePrimaryEntityInRelationship.Value
                .CanBeRelatedEntityInRelationship = entity.CanBeRelatedEntityInRelationship.Value
                .CanCreateAttributes = entity.CanCreateAttributes.Value
                .CanCreateCharts = entity.CanCreateCharts.Value
                .CanCreateForms = entity.CanCreateForms.Value
                .CanCreateViews = entity.CanCreateViews.Value
                .CanModifyAdditionalSettings = entity.CanModifyAdditionalSettings.Value

                If entity.CanTriggerWorkflow.HasValue Then
                    .CanTriggerWorkflow = entity.CanTriggerWorkflow.Value
                End If

                If entity.Description.LocalizedLabels.Count > 0 Then
                    .Description = entity.Description.LocalizedLabels(0).Label
                End If

                If entity.DisplayCollectionName.LocalizedLabels.Count > 0 Then
                    .DisplayCollectionName = entity.DisplayCollectionName.LocalizedLabels(0).Label
                End If

                If entity.DisplayName.LocalizedLabels.Count > 0 Then
                    .DisplayName = entity.DisplayName.LocalizedLabels(0).Label
                End If

                .IconLargeName = entity.IconLargeName
                .IconMediumName = entity.IconMediumName
                .IconSmallName = entity.IconSmallName

                If entity.IsActivity.HasValue Then
                    .IsActivity = entity.IsActivity.Value
                End If

                If entity.IsActivityParty.HasValue Then
                    .IsActivityParty = entity.IsActivityParty.Value
                End If

                .IsAuditEnabled = entity.IsAuditEnabled.Value

                If entity.IsAvailableOffline.HasValue Then
                    .IsAvailableOffline = entity.IsAvailableOffline.Value
                End If

                If entity.IsChildEntity.HasValue Then
                    .IsChildEntity = entity.IsChildEntity.Value
                End If

                .IsConnectionsEnabled = entity.IsConnectionsEnabled.Value

                If entity.IsCustomEntity.HasValue Then
                    .IsCustomEntity = entity.IsCustomEntity.Value
                End If

                .IsCustomizable = entity.IsCustomizable.Value

                If entity.IsDocumentManagementEnabled.HasValue Then
                    .IsDocumentManagementEnabled = entity.IsDocumentManagementEnabled.Value
                End If

                .IsDuplicateDetectionEnabled = entity.IsDuplicateDetectionEnabled.Value

                If entity.IsEnabledForCharts.HasValue Then
                    .IsEnabledForCharts = entity.IsEnabledForCharts.Value
                End If

                If entity.IsImportable.HasValue Then
                    .IsImportable = entity.IsImportable.Value
                End If

                If entity.IsIntersect.HasValue Then
                    .IsIntersect = entity.IsIntersect.Value
                End If

                .IsMailMergeEnabled = entity.IsMailMergeEnabled.Value

                If entity.IsManaged.HasValue Then
                    .IsManaged = entity.IsManaged.Value
                End If

                .IsMappable = entity.IsMappable.Value

                If entity.IsReadingPaneEnabled.HasValue Then
                    .IsReadingPaneEnabled = entity.IsReadingPaneEnabled.Value
                End If

                .IsRenameable = entity.IsRenameable.Value

                If entity.IsValidForAdvancedFind.HasValue Then
                    .IsValidForAdvancedFind = entity.IsValidForAdvancedFind.Value
                End If

                .IsValidForQueue = entity.IsValidForQueue.Value
                .IsVisibleInMobile = entity.IsVisibleInMobile.Value
                .LogicalName = entity.LogicalName

                If entity.ObjectTypeCode.HasValue Then
                    .ObjectTypeCode = entity.ObjectTypeCode.Value
                End If

                If entity.OwnershipType.HasValue Then
                    .OwnershipType = entity.OwnershipType.Value.ToString()
                End If

                .PrimaryIdAttribute = entity.PrimaryIdAttribute
                .PrimaryNameAttribute = entity.PrimaryNameAttribute
                .RecurrenceBaseEntityLogicalName = entity.RecurrenceBaseEntityLogicalName
                .ReportViewName = entity.ReportViewName
                .SchemaName = entity.SchemaName
            End With
        Next
    End Sub ' Process2011_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process4_(ByVal service As Meta4.MetadataService)
        Dim req As New Meta4.RetrieveAllEntitiesRequest
        req.MetadataItems = Meta4.MetadataItems.EntitiesOnly
        Dim res As Meta4.RetrieveAllEntitiesResponse = CType( _
            service.Execute(req), _
            Meta4.RetrieveAllEntitiesResponse)

        For Each entity As Meta4.EntityMetadata In res.CrmMetadata
            With MyBase.OutputBuffer
                Call .AddRow()

                If Not entity.CanTriggerWorkflow.IsNull Then
                    .CanTriggerWorkflow = entity.CanTriggerWorkflow.Value
                End If

                If entity.Description.LocLabels.Length > 0 Then
                    .Description = entity.Description.LocLabels(0).Label
                End If

                If entity.DisplayCollectionName.LocLabels.Length > 0 Then
                    .DisplayCollectionName = entity.DisplayCollectionName.LocLabels(0).Label
                End If

                If entity.DisplayName.LocLabels.Length > 0 Then
                    .DisplayName = entity.DisplayName.LocLabels(0).Label
                End If

                If Not entity.IsActivity.IsNull Then
                    .IsActivity = entity.IsActivity.Value
                End If

                If Not entity.IsAvailableOffline.IsNull Then
                    .IsAvailableOffline = entity.IsAvailableOffline.Value
                End If

                If Not entity.IsChildEntity.IsNull Then
                    .IsChildEntity = entity.IsChildEntity.Value
                End If

                If Not entity.IsCustomEntity.IsNull Then
                    .IsCustomEntity = entity.IsCustomEntity.Value
                End If

                If Not entity.IsCustomizable.IsNull Then
                    .IsCustomizable = entity.IsCustomizable.Value
                End If

                If Not entity.IsImportable.IsNull Then
                    .IsImportable = entity.IsImportable.Value
                End If

                If Not entity.IsIntersect.IsNull Then
                    .IsIntersect = entity.IsIntersect.Value
                End If

                If Not entity.IsMailMergeEnabled.IsNull Then
                    .IsMailMergeEnabled = entity.IsMailMergeEnabled.Value
                End If

                If Not entity.IsValidForAdvancedFind.IsNull Then
                    .IsValidForAdvancedFind = entity.IsValidForAdvancedFind.Value
                End If

                .LogicalName = entity.LogicalName

                If Not entity.ObjectTypeCode.IsNull Then
                    .ObjectTypeCode = entity.ObjectTypeCode.Value
                End If

                If Not entity.OwnershipType.IsNull Then
                    .OwnershipType = entity.OwnershipType.Value.ToString()
                End If

                .PrimaryIdAttribute = entity.PrimaryKey
                .PrimaryNameAttribute = entity.PrimaryField
                .ReportViewName = entity.ReportViewName
                .SchemaName = entity.SchemaName
            End With
        Next
    End Sub ' Process4_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Process3_(ByVal service As Meta3.MetadataService)
        Dim res As Meta3.Metadata = service.RetrieveMetadata(Meta3.MetadataFlags.EntitiesOnly)

        For Each entity As Meta3.EntityMetadata In res.Entities
            With MyBase.OutputBuffer
                Call .AddRow()

                .Description = entity.Description
                .DisplayCollectionName = entity.DisplayCollectionName
                .DisplayName = entity.DisplayName
                .IsCustomEntity = entity.IsCustomEntity
                .IsCustomizable = entity.IsCustomizable
                .LogicalName = entity.Name
                .ObjectTypeCode = entity.ObjectTypeCode
                .OwnershipType = entity.OwnershipType.ToString()
                .PrimaryIdAttribute = entity.PrimaryKey
                .PrimaryNameAttribute = entity.PrimaryField
                .ReportViewName = entity.ReportViewName
            End With
        Next
    End Sub ' Process3_
#End Region ' Internals


#Region "Attributes"
    Private m_crmConnection As String
#End Region ' Attributes

End Class   ' CreateNewOutputRows

]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_16bdf9b8dcbd4172a3fc51cbfc50adfe.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>{AA9A5FBA-8AD6-4862-8DB4-40B807E294CC}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_16bdf9b8dcbd4172a3fc51cbfc50adfe</RootNamespace>
    <AssemblyName>ScriptComponent_16bdf9b8dcbd4172a3fc51cbfc50adfe</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <OptionCompare>Binary</OptionCompare>
    <OptionExplicit>On</OptionExplicit>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\CozyRoc.SSISPlus.2014.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Data">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS">
      <Private>False</Private>
    </Reference>
    <Reference Include="CozyRoc.Dynamics">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Web.Services">
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_SC120" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:CodeName>ScriptComponent_16bdf9b8dcbd4172a3fc51cbfc50adfe</msb:CodeName>
		<msb:DisplayName>ScriptComponent_16bdf9b8dcbd4172a3fc51cbfc50adfe</msb:DisplayName>
		<msb:ProjectId>{C8C7F4F0-FB32-406B-B4A5-6AD3B1449557}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptComponent_16bdf9b8dcbd4172a3fc51cbfc50adfe.vbproj"/>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="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_16bdf9b8dcbd4172a3fc51cbfc50adfe.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
BhEEB2+jAAAKb2sAAAYUEwQIF9YMCAmOtz9E////KgBCU0pCAQABAAAAAAAMAAAAdjQuMC4zMDMx
OQAAAAAFAGwAAABQGAAAI34AALwYAACoIwAAI1N0cmluZ3MAAAAAZDwAAIQIAAAjVVMA6EQAABAA
AAAjR1VJRAAAAPhEAADsBAAAI0Jsb2IAAAAAAAAAAgAAAVcVogkJDgAAAPolMwAWAAABAAAAUAAA
AAsAAAALAAAAhAAAAHAAAACqAAAAMAAAABgAAAAFAAAAZgAAAGcAAAAOAAAAAQAAAAoAAAACAAAA
AwAAAAIAAAAAAHIjAQAAAAAACgBAARYBCgB0AVYBBgCEAX0BCgDcARYBBgBaAn0BCgDcArICDgAu
AxcDEgB9A1wDFgCuA1wDEgC9A1wDDgA9FRcDGgAIFuAVHgDUFqcWHgAoFwMXHgAoF0IXIgCqF5QX
IgDDF5QXIgDwF9gXBgAaGAcYCgBZGDIYCgBxGBMAIgCmGIkYBgDbGLsYBgD5GH0BBgAdGX0BCgA2
GRMABgCEGWUZBgCYGX0BBgCfGX0BBgC2GX0BBgDQGX0BEgDYGVwDBgDlGX0BJgBUGisaJgCDGisa
JgDGGisaDgD+GhcDHgArGw0bHgArGzYbBgBTG30BCgCCGzIYHgD4G6cWHgAHHKcWHgAbHKcWBgAw
HH0BHgA7HKcWHgBaHKcWKgAwHH0BHgCsHKcWHgDZHKcWHgDDHacWHgDZHacWBgAhHgYeHgAoHqcW
BgCaIH0BHgAVIQMXHgAwIQMXHgD4GwMXHgBMIQMXHgBYIQMXHgB4IQMXHgCQIQMXHgC3IQMXHgDN
IQMXHgDWIQMXHgDtIQMXHgD3IQMXHgAJIgMXHgA7HAMXHgA1IkIXHgD4G0IXHgA+IkIXHgA7HEIX
EgBzIlwDDgC8IpoiDgDYIpoiIgDsIpQXBgABI7sYBgAhI7sYBgBZIz8jAAAAAAEAAAAAAAEAAQAA
AAAAKQA3AAUAAQABAAAAAABrADcACQABAAIAAAEQAHYANwANAAEAAwAFAQAAgAAAAA0ABQAIAAUB
AACOAAAADQAFAA8AAQAAAKkAtgAdAAYAEQABAAAA5wC2AC0ABgBzAAEAAAD1ALYADQAJAHgAAQAA
AAEBtgANAAoAegABAAAACwG2ACAACwB7ADEAnwEgADEAyAEtADEA6gE6ADEADwJHACEA6wKQAAYA
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
bQAALgAAAAABAIMWygBtACwuAAAAAAEA7hYWAW4AlDMAAAAAAQA4FxwBbwAwNgAAAAABAGgXIgFw
AAAAAQBMAgAAAQCFAgAAAQCFAgAAAQDLAwAAAgDVAwAAAwDeAwAABADmAwAABQDtAwAAAQAjBAAA
AQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAj
BAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAA
AQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAj
BAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAA
AQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAj
BAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAA
AQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAj
BAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAA
AQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAj
BAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQAjBAAAAQB/FQAAAgCHFQAAAwCRFQAABADtAwAA
AQDLAwAAAQDLAwAAAQBKFgAAAQBnFgAAAQCOFgAAAQD7FgAAAQD7FgAAAQD7FgkAUAETAIEAUAEr
AZEAUAE6AREAUAETAJkAUAETACQAUAETACwAUAETADQAUAETADwAUAETACQAogKLACwAogKLADQA
ogKLADwAogKLAKEAUAETAKkAUAETALEAUAHKALkA6hjUARkARQJjABkATgJoACkACxnhARkAZwJx
AMkAJxnxARkAUAETANEAUAEBAkQA6wKQAEwAURmLAEwAWxl+AkwAUAETANkAUAHFADkAUAGvADkA
pRmYAjkArhnAAPEAUAHKAAEBSA0TAAEBTw0TAAEBXg3PAAkBUAHFAFkAUAETAEEA+xmlAkEAbRqx
AhEBphq3AhkB3xq9AiEB6BoGAWEAXRvJAikBbxsTACkBdxvOAkEBUAHKAEkBjhvTAkEBnhtxAEkB
qhsXACkBvBsTAOEAwhvwAiEB0BvKAOEA6BsoAREB7hv9AlkBUAETAFkBShzKAFkBpRkIA2kAaBwO
A2EB3xoXA1EBcBwhA1wAhRzPAFwAURmLAFEBkhwxA2QAhRzPAGQAURmLAFEBwxxBA5EBURnPAFEB
8BxBA1EBFR1BA1EBOh1BA1EBUh1BA1EBZh1BA1EBeR1BA1EBjB1BA1EBrB0xA1EByR1HA5kB8h1N
A2wANx5oAGwA3xpcA7EBQR5xAFEBSx5HA1EBZR5HA1EBdR5xAFEBhx5xAFEBmh5xAFEBrB4xA1EB
ux4xA1EBzx5BA1EB4h4xA1EB+R4xA1EBCx9BA1EBJB8xA1EBNx9BA1EBSh8xA1EBah9BA1EBih8x
A1EBoR8xA1EBsh8xA1EBwh9BA1EB2R8xA1EB5x9BA1EB9h8xA1EBDyBBA1EBICAxA1EBOyBBA1EB
TyBBA1EBZSBxAFEBdSAhA1EBiCBiA3QAhRzPAHQAURmLALkBZwJxAFEBnyBxAFEBtiBxAFEBzyBx
AFEB8yBxAFEBBiFxAMEBUAETAMEBZiG1A3EAaBy8A8kBpyHFA9EBrB3MA/kBwiHPAPkBURnPANEB
yR3SAwEC3yHYAwkCQR5xANEBSx7SA9EBZR7SA9EBrB7MA9EB4h7MA9EB+R7MA9EBJB/MA9EBNx/M
A9EBoR/MA9EBsh/MA9EBwh/MA9EBICDMA9EBZSBxANEBdSDfAxECwiHPABECURloANEBiCDlAyEC
wiHPABkCURnrA9EBFSJxANEBJCJxANEB8yBxANEBBiFxAHkATCIEBDECXSINBDkCyR1xADkCSx5x
ADkCZR5xADkCJB/PADkCNx/PADkCaiJxADkCdSBoADkCiCAUBDkCFSJxADkCJCJxADkC8yBxAFEC
UAETAFkCUAHKAGECUAHKAGkCUAHKAHECUAHAAHkCUAETAIECUAHKACkAgwCOAS4AQwV8BC4ASwWF
BC4AUwWkBEAAEwAxAUAAKwBZAUMAGwBAAUMAEwAxAUkAgwCsAWMAEwAxAWMAGwBAAWkAgwCfAYAA
KwBZAYMAGwBAAYMAewBZAYMAcwBZAYkAgwDAAaAAKwBZAaMAEwAxAaMAwwAJAsAAKwBZAcMA6wCN
AsMAEwAxAeAAKwBZAeMAKwGNAgABKwBZAQABEwAxAQMBKwGNAiABKwBZASABEwAxAUABKwBZAUAB
EwAxAWABKwBZAWABEwAxAWMBIwVZAWMBKwUqBGMBKwGNAoABKwBZAaABKwBZAcABKwBZAcABEwAx
AeABKwBZAQACEwAxAQACKwBZAakMMwU4BKkMOwVPBAAPKwGNAkAPKwGNAnoBfwGEAYkB2QHdAegB
7QH8AfwBhAKTAp4C2QGsAsQC2gL1Au0BngLZAXYD8QMaBAQAAQAGAAUABwAGAAkAZAALAGUAAAB0
AU8AAAAtAlQAAADcAVkAAAA5Al4AAAD1ApgAAABqDdMAAAB9DdgAAACODdwAAACmDdwAAAC8DdwA
AADZDdwAAADrDdwAAAAEDtwAAAAlDtwAAABNDtwAAABuDtwAAACWDtwAAACqDtwAAADFDtwAAADV
DtwAAADsDtwAAAD7DtwAAAARD9wAAAAgD9wAAAA2D9wAAABSD9wAAAB1D9wAAACID9wAAACiD+AA
AACuD9wAAADBD+AAAADXD9wAAAD0D+AAAAAAENwAAAATEOAAAAAhENwAAAA2EOAAAABFENwAAABb
EOAAAABpENwAAAB+ENwAAACJENwAAACbENwAAACrENwAAADCENwAAADRENwAAADnENwAAAD6ENwA
AAAUEdwAAAAiEdwAAAA3EdwAAABMEdwAAABoEdwAAAB3EdwAAACNEdwAAACcEdwAAACyEdwAAADO
EdwAAADxEdwAAAANEtwAAAAwEtwAAABDEtwAAABdEtwAAABqEtwAAAB+EtwAAACKEtwAAACdEtwA
AACwEtwAAADKEtwAAADUEtwAAADlEtwAAADwEtwAAAACE9wAAAAXE9wAAAAzE9wAAABAE9wAAABU
E9wAAABrE9wAAACJE9wAAACZE9wAAACwE9wAAADCE9wAAADbE+AAAADnE9wAAAD6E9gAAAAJFNwA
AAAfFOAAAAAtFNwAAABCFOAAAABVFNwAAABvFOAAAACEFNwAAACgFOAAAADAFNwAAADnFOAAAAD2
FNwAAAAMFeAAAAAXFdwAAAApFdMAAAAzFgsBAAAzFuAAAACCF9MAAgAEAAMAAgAFAAUAAgAGAAcA
AgAHAAkAAgAPAAsAAgASAA0AAQATAA8AAQAUABEAAQAVABMAAQAWABUAAQAXABcAAQAYABkAAQAZ
ABsAAQAaAB0AAQAbAB8AAQAcACEAAQAdACMAAQAeACUAAQAfACcAAQAgACkAAQAhACsAAQAiAC0A
AQAjAC8AAQAkADEAAQAlADMAAQAmADUAAQAnADcAAQAoADkAAQApADsAAQAqAD0AAQArAD8AAQAs
AEEAAQAtAEMAAQAuAEUAAQAvAEcAAQAwAEkAAQAxAEsAAQAyAE0AAQAzAE8AAQA0AFEAAQA1AFMA
AQA2AFUAAQA3AFcAAQA4AFkAAQA5AFsAAQA6AF0AAQA7AF8AAQA8AGEAAQA9AGMAAQA+AGUAAQA/
AGcAAQBAAGkAAQBBAGsAAQBCAG0AAQBDAG8AAQBEAHEAAQBFAHMAAQBGAHUAAQBHAHcAAQBIAHkA
AQBJAHsAAQBKAH0AAQBLAH8AAQBMAIEAAQBNAIMAAQBOAIUAAQBPAIcAAQBQAIkAAQBRAIsAAQBS
AI0AAQBTAI8AAQBUAJEAAQBVAJMAAQBWAJUAAQBXAJcAAQBYAJkAAQBZAJsAAQBaAJ0AAQBbAJ8A
AQBcAKEAAQBdAKMAAQBeAKUAAQBfAKcAAQBgAKkAAQBhAKsAAQBiAK0AAQBjAK8AAQBkALEAAQBl
ALMAAQBmALUAAQBnALcAAQBoALkAAQBpALsAAQBqAL0AAQBrAL8AAQBsAMEAAQBtAMMAAQBuAMUA
AgBvAMcAAgB5AMkAAgB+AMsAAQB/AMsAAgCAAM0AdQB1AIgAXgFlAWwBcwFrAnICHAMqAzoDUwNt
AwSAAAAAAAAAAAAAAAAAAAAAALYAAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoA
EwAAAAAAAQAAAAAAAAAAAAAAnQABAwAAAAAMAAAAAAAAAAAAAACmAD8DAAAAAAwAAAAAAAAAAAAA
AKYAjQMAAAAADAAAAAAAAAAAAAAApgC9FQAAAAABAAAAAAAAAAAAAACdAJYWAAAAAAQAAAAAAAAA
AAAAAAEAfQEAAAAADAAAAAAAAAAAAAAApgAHGgAAAAACAAAAAAAAAAAAAAABAAoAAAAAAAUABAAG
AAQAAAAQAAwAgwIAABAAGQCDAgAAAAAbAIMCLQD3AS0AeQIAAAA8TW9kdWxlPgBtc2NvcmxpYgBN
aWNyb3NvZnQuVmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBTY3JpcHRDb21wb25lbnRfMTZiZGY5
YjhkY2JkNDE3MmEzZmM1MWNiZmM1MGFkZmUuTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJT
ZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBPdXRwdXRCdWZmZXIAU2NyaXB0Q29t
cG9uZW50XzE2YmRmOWI4ZGNiZDQxNzJhM2ZjNTFjYmZjNTBhZGZlAFVzZXJDb21wb25lbnQAQ29u
bmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4ATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxp
Y2F0aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNp
Yy5EZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0Nv
bXB1dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIA
VXNlcgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdl
YlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8A
R2V0SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGlu
c3RhbmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJ
bnN0YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMTQAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3Jp
cHRCdWZmZXJQbHVzAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNl
cnZlci5EdHMuUGlwZWxpbmUAU2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlw
ZWxpbmVIb3N0AFBpcGVsaW5lQnVmZmVyAE91dHB1dE5hbWVNYXAAQ29tcG9uZW50AE9iamVjdElE
AElzSW5wdXQAQnVmZmVyAE91dHB1dE1hcABnZXRfU3RhdGljSW5wdXRDb2x1bW5zAHNldF9BY3Rp
dml0eVR5cGVNYXNrAFZhbHVlAHNldF9BY3Rpdml0eVR5cGVNYXNrX0lzTnVsbABzZXRfQXV0b1Jv
dXRlVG9Pd25lclF1ZXVlAHNldF9BdXRvUm91dGVUb093bmVyUXVldWVfSXNOdWxsAHNldF9DYW5C
ZUluTWFueVRvTWFueQBzZXRfQ2FuQmVJbk1hbnlUb01hbnlfSXNOdWxsAHNldF9DYW5CZVByaW1h
cnlFbnRpdHlJblJlbGF0aW9uc2hpcABzZXRfQ2FuQmVQcmltYXJ5RW50aXR5SW5SZWxhdGlvbnNo
aXBfSXNOdWxsAHNldF9DYW5CZVJlbGF0ZWRFbnRpdHlJblJlbGF0aW9uc2hpcABzZXRfQ2FuQmVS
ZWxhdGVkRW50aXR5SW5SZWxhdGlvbnNoaXBfSXNOdWxsAHNldF9DYW5DcmVhdGVBdHRyaWJ1dGVz
AHNldF9DYW5DcmVhdGVBdHRyaWJ1dGVzX0lzTnVsbABzZXRfQ2FuQ3JlYXRlQ2hhcnRzAHNldF9D
YW5DcmVhdGVDaGFydHNfSXNOdWxsAHNldF9DYW5DcmVhdGVGb3JtcwBzZXRfQ2FuQ3JlYXRlRm9y
bXNfSXNOdWxsAHNldF9DYW5DcmVhdGVWaWV3cwBzZXRfQ2FuQ3JlYXRlVmlld3NfSXNOdWxsAHNl
dF9DYW5Nb2RpZnlBZGRpdGlvbmFsU2V0dGluZ3MAc2V0X0Nhbk1vZGlmeUFkZGl0aW9uYWxTZXR0
aW5nc19Jc051bGwAc2V0X0NhblRyaWdnZXJXb3JrZmxvdwBzZXRfQ2FuVHJpZ2dlcldvcmtmbG93
X0lzTnVsbABzZXRfRGVzY3JpcHRpb24Ac2V0X0Rlc2NyaXB0aW9uX0lzTnVsbABzZXRfRGlzcGxh
eUNvbGxlY3Rpb25OYW1lAHNldF9EaXNwbGF5Q29sbGVjdGlvbk5hbWVfSXNOdWxsAHNldF9EaXNw
bGF5TmFtZQBzZXRfRGlzcGxheU5hbWVfSXNOdWxsAHNldF9JY29uTGFyZ2VOYW1lAHNldF9JY29u
TGFyZ2VOYW1lX0lzTnVsbABzZXRfSWNvbk1lZGl1bU5hbWUAc2V0X0ljb25NZWRpdW1OYW1lX0lz
TnVsbABzZXRfSWNvblNtYWxsTmFtZQBzZXRfSWNvblNtYWxsTmFtZV9Jc051bGwAc2V0X0lzQWN0
aXZpdHkAc2V0X0lzQWN0aXZpdHlfSXNOdWxsAHNldF9Jc0FjdGl2aXR5UGFydHkAc2V0X0lzQWN0
aXZpdHlQYXJ0eV9Jc051bGwAc2V0X0lzQXVkaXRFbmFibGVkAHNldF9Jc0F1ZGl0RW5hYmxlZF9J
c051bGwAc2V0X0lzQXZhaWxhYmxlT2ZmbGluZQBzZXRfSXNBdmFpbGFibGVPZmZsaW5lX0lzTnVs
bABzZXRfSXNDaGlsZEVudGl0eQBzZXRfSXNDaGlsZEVudGl0eV9Jc051bGwAc2V0X0lzQ29ubmVj
dGlvbnNFbmFibGVkAHNldF9Jc0Nvbm5lY3Rpb25zRW5hYmxlZF9Jc051bGwAc2V0X0lzQ3VzdG9t
RW50aXR5AHNldF9Jc0N1c3RvbUVudGl0eV9Jc051bGwAc2V0X0lzQ3VzdG9taXphYmxlAHNldF9J
c0N1c3RvbWl6YWJsZV9Jc051bGwAc2V0X0lzRG9jdW1lbnRNYW5hZ2VtZW50RW5hYmxlZABzZXRf
SXNEb2N1bWVudE1hbmFnZW1lbnRFbmFibGVkX0lzTnVsbABzZXRfSXNEdXBsaWNhdGVEZXRlY3Rp
b25FbmFibGVkAHNldF9Jc0R1cGxpY2F0ZURldGVjdGlvbkVuYWJsZWRfSXNOdWxsAHNldF9Jc0Vu
YWJsZWRGb3JDaGFydHMAc2V0X0lzRW5hYmxlZEZvckNoYXJ0c19Jc051bGwAc2V0X0lzSW1wb3J0
YWJsZQBzZXRfSXNJbXBvcnRhYmxlX0lzTnVsbABzZXRfSXNJbnRlcnNlY3QAc2V0X0lzSW50ZXJz
ZWN0X0lzTnVsbABzZXRfSXNNYWlsTWVyZ2VFbmFibGVkAHNldF9Jc01haWxNZXJnZUVuYWJsZWRf
SXNOdWxsAHNldF9Jc01hbmFnZWQAc2V0X0lzTWFuYWdlZF9Jc051bGwAc2V0X0lzTWFwcGFibGUA
c2V0X0lzTWFwcGFibGVfSXNOdWxsAHNldF9Jc1JlYWRpbmdQYW5lRW5hYmxlZABzZXRfSXNSZWFk
aW5nUGFuZUVuYWJsZWRfSXNOdWxsAHNldF9Jc1JlbmFtZWFibGUAc2V0X0lzUmVuYW1lYWJsZV9J
c051bGwAc2V0X0lzVmFsaWRGb3JBZHZhbmNlZEZpbmQAc2V0X0lzVmFsaWRGb3JBZHZhbmNlZEZp
bmRfSXNOdWxsAHNldF9Jc1ZhbGlkRm9yUXVldWUAc2V0X0lzVmFsaWRGb3JRdWV1ZV9Jc051bGwA
c2V0X0lzVmlzaWJsZUluTW9iaWxlAHNldF9Jc1Zpc2libGVJbk1vYmlsZV9Jc051bGwAc2V0X0xv
Z2ljYWxOYW1lAHNldF9Mb2dpY2FsTmFtZV9Jc051bGwAc2V0X09iamVjdFR5cGVDb2RlAHNldF9P
YmplY3RUeXBlQ29kZV9Jc051bGwAc2V0X093bmVyc2hpcFR5cGUAc2V0X093bmVyc2hpcFR5cGVf
SXNOdWxsAHNldF9QcmltYXJ5SWRBdHRyaWJ1dGUAc2V0X1ByaW1hcnlJZEF0dHJpYnV0ZV9Jc051
bGwAc2V0X1ByaW1hcnlOYW1lQXR0cmlidXRlAHNldF9QcmltYXJ5TmFtZUF0dHJpYnV0ZV9Jc051
bGwAc2V0X1JlY3VycmVuY2VCYXNlRW50aXR5TG9naWNhbE5hbWUAc2V0X1JlY3VycmVuY2VCYXNl
RW50aXR5TG9naWNhbE5hbWVfSXNOdWxsAHNldF9SZXBvcnRWaWV3TmFtZQBzZXRfUmVwb3J0Vmll
d05hbWVfSXNOdWxsAHNldF9TY2hlbWFOYW1lAHNldF9TY2hlbWFOYW1lX0lzTnVsbABnZXRfU3Rh
dGljT3V0cHV0Q29sdW1ucwBBZGRSb3cAU2V0RW5kT2ZSb3dzZXQARW5kT2ZSb3dzZXQAU3RhdGlj
SW5wdXRDb2x1bW5zAEFjdGl2aXR5VHlwZU1hc2sAQWN0aXZpdHlUeXBlTWFza19Jc051bGwAQXV0
b1JvdXRlVG9Pd25lclF1ZXVlAEF1dG9Sb3V0ZVRvT3duZXJRdWV1ZV9Jc051bGwAQ2FuQmVJbk1h
bnlUb01hbnkAQ2FuQmVJbk1hbnlUb01hbnlfSXNOdWxsAENhbkJlUHJpbWFyeUVudGl0eUluUmVs
YXRpb25zaGlwAENhbkJlUHJpbWFyeUVudGl0eUluUmVsYXRpb25zaGlwX0lzTnVsbABDYW5CZVJl
bGF0ZWRFbnRpdHlJblJlbGF0aW9uc2hpcABDYW5CZVJlbGF0ZWRFbnRpdHlJblJlbGF0aW9uc2hp
cF9Jc051bGwAQ2FuQ3JlYXRlQXR0cmlidXRlcwBDYW5DcmVhdGVBdHRyaWJ1dGVzX0lzTnVsbABD
YW5DcmVhdGVDaGFydHMAQ2FuQ3JlYXRlQ2hhcnRzX0lzTnVsbABDYW5DcmVhdGVGb3JtcwBDYW5D
cmVhdGVGb3Jtc19Jc051bGwAQ2FuQ3JlYXRlVmlld3MAQ2FuQ3JlYXRlVmlld3NfSXNOdWxsAENh
bk1vZGlmeUFkZGl0aW9uYWxTZXR0aW5ncwBDYW5Nb2RpZnlBZGRpdGlvbmFsU2V0dGluZ3NfSXNO
dWxsAENhblRyaWdnZXJXb3JrZmxvdwBDYW5UcmlnZ2VyV29ya2Zsb3dfSXNOdWxsAERlc2NyaXB0
aW9uAERlc2NyaXB0aW9uX0lzTnVsbABEaXNwbGF5Q29sbGVjdGlvbk5hbWUARGlzcGxheUNvbGxl
Y3Rpb25OYW1lX0lzTnVsbABEaXNwbGF5TmFtZQBEaXNwbGF5TmFtZV9Jc051bGwASWNvbkxhcmdl
TmFtZQBJY29uTGFyZ2VOYW1lX0lzTnVsbABJY29uTWVkaXVtTmFtZQBJY29uTWVkaXVtTmFtZV9J
c051bGwASWNvblNtYWxsTmFtZQBJY29uU21hbGxOYW1lX0lzTnVsbABJc0FjdGl2aXR5AElzQWN0
aXZpdHlfSXNOdWxsAElzQWN0aXZpdHlQYXJ0eQBJc0FjdGl2aXR5UGFydHlfSXNOdWxsAElzQXVk
aXRFbmFibGVkAElzQXVkaXRFbmFibGVkX0lzTnVsbABJc0F2YWlsYWJsZU9mZmxpbmUASXNBdmFp
bGFibGVPZmZsaW5lX0lzTnVsbABJc0NoaWxkRW50aXR5AElzQ2hpbGRFbnRpdHlfSXNOdWxsAElz
Q29ubmVjdGlvbnNFbmFibGVkAElzQ29ubmVjdGlvbnNFbmFibGVkX0lzTnVsbABJc0N1c3RvbUVu
dGl0eQBJc0N1c3RvbUVudGl0eV9Jc051bGwASXNDdXN0b21pemFibGUASXNDdXN0b21pemFibGVf
SXNOdWxsAElzRG9jdW1lbnRNYW5hZ2VtZW50RW5hYmxlZABJc0RvY3VtZW50TWFuYWdlbWVudEVu
YWJsZWRfSXNOdWxsAElzRHVwbGljYXRlRGV0ZWN0aW9uRW5hYmxlZABJc0R1cGxpY2F0ZURldGVj
dGlvbkVuYWJsZWRfSXNOdWxsAElzRW5hYmxlZEZvckNoYXJ0cwBJc0VuYWJsZWRGb3JDaGFydHNf
SXNOdWxsAElzSW1wb3J0YWJsZQBJc0ltcG9ydGFibGVfSXNOdWxsAElzSW50ZXJzZWN0AElzSW50
ZXJzZWN0X0lzTnVsbABJc01haWxNZXJnZUVuYWJsZWQASXNNYWlsTWVyZ2VFbmFibGVkX0lzTnVs
bABJc01hbmFnZWQASXNNYW5hZ2VkX0lzTnVsbABJc01hcHBhYmxlAElzTWFwcGFibGVfSXNOdWxs
AElzUmVhZGluZ1BhbmVFbmFibGVkAElzUmVhZGluZ1BhbmVFbmFibGVkX0lzTnVsbABJc1JlbmFt
ZWFibGUASXNSZW5hbWVhYmxlX0lzTnVsbABJc1ZhbGlkRm9yQWR2YW5jZWRGaW5kAElzVmFsaWRG
b3JBZHZhbmNlZEZpbmRfSXNOdWxsAElzVmFsaWRGb3JRdWV1ZQBJc1ZhbGlkRm9yUXVldWVfSXNO
dWxsAElzVmlzaWJsZUluTW9iaWxlAElzVmlzaWJsZUluTW9iaWxlX0lzTnVsbABMb2dpY2FsTmFt
ZQBMb2dpY2FsTmFtZV9Jc051bGwAT2JqZWN0VHlwZUNvZGUAT2JqZWN0VHlwZUNvZGVfSXNOdWxs
AE93bmVyc2hpcFR5cGUAT3duZXJzaGlwVHlwZV9Jc051bGwAUHJpbWFyeUlkQXR0cmlidXRlAFBy
aW1hcnlJZEF0dHJpYnV0ZV9Jc051bGwAUHJpbWFyeU5hbWVBdHRyaWJ1dGUAUHJpbWFyeU5hbWVB
dHRyaWJ1dGVfSXNOdWxsAFJlY3VycmVuY2VCYXNlRW50aXR5TG9naWNhbE5hbWUAUmVjdXJyZW5j
ZUJhc2VFbnRpdHlMb2dpY2FsTmFtZV9Jc051bGwAUmVwb3J0Vmlld05hbWUAUmVwb3J0Vmlld05h
bWVfSXNOdWxsAFNjaGVtYU5hbWUAU2NoZW1hTmFtZV9Jc051bGwAU3RhdGljT3V0cHV0Q29sdW1u
cwBTY3JpcHRDb21wb25lbnRQbHVzAEZpbmlzaE91dHB1dHMATWFya091dHB1dHNGaW5pc2hlZABQ
cmltZU91dHB1dABPdXRwdXRzAE91dHB1dElEcwBCdWZmZXJzAENyZWF0ZU5ld091dHB1dFJvd3MA
UGFyZW50Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9z
b2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAElEVFNDb25uZWN0aW9uTWFuYWdlcjEw
MABnZXRfQ3JtQ29ubmVjdGlvbgBDcm1Db25uZWN0aW9uAFZhbGlkYXRlAGVyck1lc3NhZ2UAc2V0
X0NybUNvbm5lY3Rpb24AdmFsdWUAZ2V0X0NybUNvbm5lY3Rpb25UeXBlAEZpcmVFcnJvcl8AbWVz
c2FnZQBDb3p5Um9jLkR5bmFtaWNzAENvenlSb2MuRHluYW1pY3MuQ3JtMjAxMS5Pcmdhbml6YXRp
b25TZXJ2aWNlAE9yZ2FuaXphdGlvblNlcnZpY2VDbGllbnQAUHJvY2VzczIwMTFfAHNlcnZpY2UA
Q296eVJvYy5EeW5hbWljcy5Dcm0uTWV0YWRhdGFTZXJ2aWNlAE1ldGFkYXRhU2VydmljZQBQcm9j
ZXNzNF8AQ296eVJvYy5EeW5hbWljcy5Dcm0zLk1ldGFkYXRhU2VydmljZQBQcm9jZXNzM18AbV9j
cm1Db25uZWN0aW9uAENybUNvbm5lY3Rpb25UeXBlAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0
b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20u
Q29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdn
ZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMA
U3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNv
bXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5D
b21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBl
SGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3Vw
Q29sbGVjdGlvbkF0dHJpYnV0ZQBnZXRfVmFsdWUAc2V0X1ZhbHVlAFN5c3RlbS5SdW50aW1lLklu
dGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBJbnQzMgBzZXRfSXRlbQBT
ZXROdWxsAEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24AQm9vbGVhbgBTY3JpcHRCdWZmZXIAQ0xT
Q29tcGxpYW50QXR0cmlidXRlAEdldE91dHB1dElEAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUGlw
ZWxpbmVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldyYXBwZXIASURUU0Nv
bXBvbmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRhRGF0YQBJRFRTUnVudGltZUNvbm5l
Y3Rpb25Db2xsZWN0aW9uMTAwAGdldF9SdW50aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24ASURUU1J1
bnRpbWVDb25uZWN0aW9uMTAwAGdldF9JdGVtAGdldF9Db25uZWN0aW9uTWFuYWdlcgBJQ3JtQ29u
bmVjdGlvbgBDb3p5Um9jLkR5bmFtaWNzLkNybTMuU2VydmljZQBDcm1TZXJ2aWNlAENvenlSb2Mu
RHluYW1pY3MuQ3JtLlNlcnZpY2UARXhjZXB0aW9uAEFjcXVpcmVDb25uZWN0aW9uAENvbm5lY3QA
R2V0U2VydmljZQBQcm9qZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQ2xlYXJQ
cm9qZWN0RXJyb3IAQ2xvc2UASXNOdWxsT3JFbXB0eQBzZXRfQ29ubmVjdGlvbk1hbmFnZXJJRABF
bXB0eQBGaXJlRXJyb3IARW50aXR5TWV0YWRhdGEAT3JnYW5pemF0aW9uUmVxdWVzdABPcmdhbml6
YXRpb25SZXNwb25zZQBOdWxsYWJsZWAxAE93bmVyc2hpcFR5cGVzAHNldF9SZXF1ZXN0TmFtZQBF
bnRpdHlGaWx0ZXJzAEV4ZWN1dGUAZ2V0X0FjdGl2aXR5VHlwZU1hc2sAZ2V0X0hhc1ZhbHVlAGdl
dF9BdXRvUm91dGVUb093bmVyUXVldWUAQm9vbGVhbk1hbmFnZWRQcm9wZXJ0eQBnZXRfQ2FuQmVJ
bk1hbnlUb01hbnkATWFuYWdlZFByb3BlcnR5Ym9vbGVhbgBnZXRfQ2FuQmVQcmltYXJ5RW50aXR5
SW5SZWxhdGlvbnNoaXAAZ2V0X0NhbkJlUmVsYXRlZEVudGl0eUluUmVsYXRpb25zaGlwAGdldF9D
YW5DcmVhdGVBdHRyaWJ1dGVzAGdldF9DYW5DcmVhdGVDaGFydHMAZ2V0X0NhbkNyZWF0ZUZvcm1z
AGdldF9DYW5DcmVhdGVWaWV3cwBnZXRfQ2FuTW9kaWZ5QWRkaXRpb25hbFNldHRpbmdzAGdldF9D
YW5UcmlnZ2VyV29ya2Zsb3cATGFiZWwAZ2V0X0Rlc2NyaXB0aW9uAExvY2FsaXplZExhYmVsQ29s
bGVjdGlvbgBnZXRfTG9jYWxpemVkTGFiZWxzAFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljAExp
c3RgMQBMb2NhbGl6ZWRMYWJlbABnZXRfQ291bnQAZ2V0X0xhYmVsAGdldF9EaXNwbGF5Q29sbGVj
dGlvbk5hbWUAZ2V0X0Rpc3BsYXlOYW1lAGdldF9JY29uTGFyZ2VOYW1lAGdldF9JY29uTWVkaXVt
TmFtZQBnZXRfSWNvblNtYWxsTmFtZQBnZXRfSXNBY3Rpdml0eQBnZXRfSXNBY3Rpdml0eVBhcnR5
AGdldF9Jc0F1ZGl0RW5hYmxlZABnZXRfSXNBdmFpbGFibGVPZmZsaW5lAGdldF9Jc0NoaWxkRW50
aXR5AGdldF9Jc0Nvbm5lY3Rpb25zRW5hYmxlZABnZXRfSXNDdXN0b21FbnRpdHkAZ2V0X0lzQ3Vz
dG9taXphYmxlAGdldF9Jc0RvY3VtZW50TWFuYWdlbWVudEVuYWJsZWQAZ2V0X0lzRHVwbGljYXRl
RGV0ZWN0aW9uRW5hYmxlZABnZXRfSXNFbmFibGVkRm9yQ2hhcnRzAGdldF9Jc0ltcG9ydGFibGUA
Z2V0X0lzSW50ZXJzZWN0AGdldF9Jc01haWxNZXJnZUVuYWJsZWQAZ2V0X0lzTWFuYWdlZABnZXRf
SXNNYXBwYWJsZQBnZXRfSXNSZWFkaW5nUGFuZUVuYWJsZWQAZ2V0X0lzUmVuYW1lYWJsZQBnZXRf
SXNWYWxpZEZvckFkdmFuY2VkRmluZABnZXRfSXNWYWxpZEZvclF1ZXVlAGdldF9Jc1Zpc2libGVJ
bk1vYmlsZQBnZXRfTG9naWNhbE5hbWUAZ2V0X09iamVjdFR5cGVDb2RlAGdldF9Pd25lcnNoaXBU
eXBlAEVudW0AZ2V0X1ByaW1hcnlJZEF0dHJpYnV0ZQBnZXRfUHJpbWFyeU5hbWVBdHRyaWJ1dGUA
Z2V0X1JlY3VycmVuY2VCYXNlRW50aXR5TG9naWNhbE5hbWUAZ2V0X1JlcG9ydFZpZXdOYW1lAGdl
dF9TY2hlbWFOYW1lAFJldHJpZXZlQWxsRW50aXRpZXNSZXF1ZXN0AFJldHJpZXZlQWxsRW50aXRp
ZXNSZXNwb25zZQBDcm1NZXRhZGF0YQBNZXRhZGF0YUl0ZW1zAHNldF9NZXRhZGF0YUl0ZW1zAE1l
dGFkYXRhU2VydmljZVJlc3BvbnNlAE1ldGFkYXRhU2VydmljZVJlcXVlc3QAZ2V0X0NybU1ldGFk
YXRhAENybUJvb2xlYW4AZ2V0X0lzTnVsbABDcm1MYWJlbABMb2NMYWJlbABnZXRfTG9jTGFiZWxz
AENybU51bWJlcgBDcm1Pd25lcnNoaXBUeXBlcwBDcm1OdWxsYWJsZQBnZXRfUHJpbWFyeUtleQBn
ZXRfUHJpbWFyeUZpZWxkAE1ldGFkYXRhAE1ldGFkYXRhRmxhZ3MAUmV0cmlldmVNZXRhZGF0YQBn
ZXRfRW50aXRpZXMAZ2V0X05hbWUAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1
dGUAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAFZhbGlkYXRlUHJvcGVydGllc0F0
dHJpYnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAENvbXBpbGF0
aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAU3lz
dGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUAU2NyaXB0Q29t
cG9uZW50XzE2YmRmOWI4ZGNiZDQxNzJhM2ZjNTFjYmZjNTBhZGZlLmRsbAAAAICbSQBzAE4AdQBs
AGwAIABwAHIAbwBwAGUAcgB0AHkAIABjAGEAbgBuAG8AdAAgAGIAZQAgAHMAZQB0ACAAdABvACAA
RgBhAGwAcwBlAC4AIABBAHMAcwBpAGcAbgAgAGEAIAB2AGEAbAB1AGUAIAB0AG8AIAB0AGgAZQAg
AGMAbwBsAHUAbQBuACAAaQBuAHMAdABlAGEAZAAuAAAhQQBjAHQAaQB2AGkAdAB5AFQAeQBwAGUA
TQBhAHMAawAAK0EAdQB0AG8AUgBvAHUAdABlAFQAbwBPAHcAbgBlAHIAUQB1AGUAdQBlAAAjQwBh
AG4AQgBlAEkAbgBNAGEAbgB5AFQAbwBNAGEAbgB5AABBQwBhAG4AQgBlAFAAcgBpAG0AYQByAHkA
RQBuAHQAaQB0AHkASQBuAFIAZQBsAGEAdABpAG8AbgBzAGgAaQBwAABBQwBhAG4AQgBlAFIAZQBs
AGEAdABlAGQARQBuAHQAaQB0AHkASQBuAFIAZQBsAGEAdABpAG8AbgBzAGgAaQBwAAAnQwBhAG4A
QwByAGUAYQB0AGUAQQB0AHQAcgBpAGIAdQB0AGUAcwAAH0MAYQBuAEMAcgBlAGEAdABlAEMAaABh
AHIAdABzAAAdQwBhAG4AQwByAGUAYQB0AGUARgBvAHIAbQBzAAAdQwBhAG4AQwByAGUAYQB0AGUA
VgBpAGUAdwBzAAA3QwBhAG4ATQBvAGQAaQBmAHkAQQBkAGQAaQB0AGkAbwBuAGEAbABTAGUAdAB0
AGkAbgBnAHMAACVDAGEAbgBUAHIAaQBnAGcAZQByAFcAbwByAGsAZgBsAG8AdwAAF0QAZQBzAGMA
cgBpAHAAdABpAG8AbgAAK0QAaQBzAHAAbABhAHkAQwBvAGwAbABlAGMAdABpAG8AbgBOAGEAbQBl
AAAXRABpAHMAcABsAGEAeQBOAGEAbQBlAAAbSQBjAG8AbgBMAGEAcgBnAGUATgBhAG0AZQAAHUkA
YwBvAG4ATQBlAGQAaQB1AG0ATgBhAG0AZQAAG0kAYwBvAG4AUwBtAGEAbABsAE4AYQBtAGUAABVJ
AHMAQQBjAHQAaQB2AGkAdAB5AAAfSQBzAEEAYwB0AGkAdgBpAHQAeQBQAGEAcgB0AHkAAB1JAHMA
QQB1AGQAaQB0AEUAbgBhAGIAbABlAGQAACVJAHMAQQB2AGEAaQBsAGEAYgBsAGUATwBmAGYAbABp
AG4AZQAAG0kAcwBDAGgAaQBsAGQARQBuAHQAaQB0AHkAAClJAHMAQwBvAG4AbgBlAGMAdABpAG8A
bgBzAEUAbgBhAGIAbABlAGQAAB1JAHMAQwB1AHMAdABvAG0ARQBuAHQAaQB0AHkAAB1JAHMAQwB1
AHMAdABvAG0AaQB6AGEAYgBsAGUAADdJAHMARABvAGMAdQBtAGUAbgB0AE0AYQBuAGEAZwBlAG0A
ZQBuAHQARQBuAGEAYgBsAGUAZAAAN0kAcwBEAHUAcABsAGkAYwBhAHQAZQBEAGUAdABlAGMAdABp
AG8AbgBFAG4AYQBiAGwAZQBkAAAlSQBzAEUAbgBhAGIAbABlAGQARgBvAHIAQwBoAGEAcgB0AHMA
ABlJAHMASQBtAHAAbwByAHQAYQBiAGwAZQAAF0kAcwBJAG4AdABlAHIAcwBlAGMAdAAAJUkAcwBN
AGEAaQBsAE0AZQByAGcAZQBFAG4AYQBiAGwAZQBkAAATSQBzAE0AYQBuAGEAZwBlAGQAABVJAHMA
TQBhAHAAcABhAGIAbABlAAApSQBzAFIAZQBhAGQAaQBuAGcAUABhAG4AZQBFAG4AYQBiAGwAZQBk
AAAZSQBzAFIAZQBuAGEAbQBlAGEAYgBsAGUAAC1JAHMAVgBhAGwAaQBkAEYAbwByAEEAZAB2AGEA
bgBjAGUAZABGAGkAbgBkAAAfSQBzAFYAYQBsAGkAZABGAG8AcgBRAHUAZQB1AGUAACNJAHMAVgBp
AHMAaQBiAGwAZQBJAG4ATQBvAGIAaQBsAGUAABdMAG8AZwBpAGMAYQBsAE4AYQBtAGUAAB1PAGIA
agBlAGMAdABUAHkAcABlAEMAbwBkAGUAABtPAHcAbgBlAHIAcwBoAGkAcABUAHkAcABlAAAlUABy
AGkAbQBhAHIAeQBJAGQAQQB0AHQAcgBpAGIAdQB0AGUAAClQAHIAaQBtAGEAcgB5AE4AYQBtAGUA
QQB0AHQAcgBpAGIAdQB0AGUAAD9SAGUAYwB1AHIAcgBlAG4AYwBlAEIAYQBzAGUARQBuAHQAaQB0
AHkATABvAGcAaQBjAGEAbABOAGEAbQBlAAAdUgBlAHAAbwByAHQAVgBpAGUAdwBOAGEAbQBlAAAV
UwBjAGgAZQBtAGEATgBhAG0AZQAADU8AdQB0AHAAdQB0AAAbQwByAG0AQwBvAG4AbgBlAGMAdABp
AG8AbgAAM1UAbgBoAGEAbgBkAGwAZQBkACAAcwBlAHIAdgBpAGMAZQAgAG8AYgBqAGUAYwB0AC4A
AD9TAGUAbABlAGMAdAAgAEQAeQBuAGEAbQBpAGMAcwAgAEMAUgBNACAAQwBvAG4AbgBlAGMAdABp
AG8AbgAuAAAZRABZAE4AQQBNAEkAQwBTAC0AQwBSAE0AATVEAHkAbgBhAG0AaQBjAHMAIABDAFIA
TQAgAEUAbgB0AGkAdAB5ACAAUwBvAHUAcgBjAGUAACdSAGUAdAByAGkAZQB2AGUAQQBsAGwARQBu
AHQAaQB0AGkAZQBzAAArUgBlAHQAcgBpAGUAdgBlAEEAcwBJAGYAUAB1AGIAbABpAHMAaABlAGQA
ABtFAG4AdABpAHQAeQBGAGkAbAB0AGUAcgBzAAAdRQBuAHQAaQB0AHkATQBlAHQAYQBkAGEAdABh
AAAqYo61E2MJS6ZinTIQHfdoAAi3elxWGTTgiQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAES
DAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIRBAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQI
ABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxABAR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAE
KAATAAgWz0kLuAw06giJhF3NgIDMkQsgBQESIQgCEiUSKQQgAB0OBCABAQgEIAEBAgQgAQEOAyAA
AgQoAB0OAygACAMoAAIDKAAOAwYSJAMGEigDBhIcCyAEAQgdCB0SJRIpAwYSIQUgAQESIQQgABIx
BCgAEjEFIAECEA4FIAEBEjUFIAEBEjkFIAEBEj0CBg4FIAEBEUUIAQABAAAAAAAFIAIBDg4YAQAK
TXlUZW1wbGF0ZQgxMC4wLjAuMAAABAEAAAAGFRIYARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcB
EgwEBwESCAQHARIRBAcBEhQQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAATAQAOTXkuQXBw
bGljYXRpb24AABMBAA5NeS5XZWJTZXJ2aWNlcwAABAABHBwDBwECAwcBCAYAARIVEWEEBwESFQMH
AQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2Nv
bHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5z
dGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAIBwMTABMAEwAFAQAAAAAEBwEdDgUg
AgEIHAYHAh0OHQ4GAAIIEikOBAcCCAgFIAASgIkFIAASgI0GIAESgJEcBAcBEjEEIAEcHAQgARwI
BgABARKAoRUHCBKAlRwSNRKAmRKAnRI5Ej0SgKEEAAECDgcHAwICEoChCiAGAQgODg4IEAIFIAIB
DhwIIAESgLESgK0EIAEcDgQdEoCpCCAAFRGAwQEIBhURgLUBCAggABURgMEBAgYVEYC1AQIFIAAS
gMUFIAASgM0FIAASgNEIFRKA1QESgNkFIAETAAgKIAAVEYDBARGAuQgVEYC1ARGAuT4HDR0SgKkS
gK0SgLESgKkIHRKAqRIcFRGAtQEIFRGAtQEIFRGAtQECFRGAtQECFRGAtQERgLkVEYC1ARGAuQYg
AQERgPEIIAESgPUSgPkGIAAdEoDtBSAAEoD9BSAAEoEBBiAAHRKBBQUgABKBCQUgABKBDQUgABGB
FRIHBhKA4RKA5RKA6QgdEoDtEhwIIAESgRkRgSEGIAAdEoEdBSAAEYElDwcFEoEZEoEdCB0SgR0S
HA0BAAhWYWxpZGF0ZQAAFgEAEUNybUNvbm5lY3Rpb25UeXBlAAAsAQAnU2VsZWN0IER5bmFtaWNz
IENSTSBDb25uZWN0aW9uIE1hbmFnZXIuAAAIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRp
b25UaHJvd3MBRwEAGi5ORVRGcmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNw
bGF5TmFtZRAuTkVUIEZyYW1ld29yayA0HIEAAAAAAAAAAAAAPoEAAAAgAAAAAAAAAAAAAAAAAAAA
AAAAAAAAADCBAAAAAAAAAAAAAAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA
/yUAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAAgAAAAAAAAAAAAAAAAAAAAQABAAAAMAAAgAAA
AAAAAAAAAAAAAAAAAQAAAAAASAAAAFigAADsAgAAAAAAAAAAAADsAjQAAABWAFMAXwBWAEUAUgBT
AEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAAAAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAEAAAA
AgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYAaQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVABy
AGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAETAIAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4A
ZgBvAAAAKAIAAAEAMAAwADAAMAAwADQAYgAwAAAALAACAAEARgBpAGwAZQBEAGUAcwBjAHIAaQBw
AHQAaQBvAG4AAAAAACAAAAAwAAgAAQBGAGkAbABlAFYAZQByAHMAaQBvAG4AAAAAADAALgAwAC4A
MAAuADAAAACMADUAAQBJAG4AdABlAHIAbgBhAGwATgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBt
AHAAbwBuAGUAbgB0AF8AMQA2AGIAZABmADkAYgA4AGQAYwBiAGQANAAxADcAMgBhADMAZgBjADUA
MQBjAGIAZgBjADUAMABhAGQAZgBlAC4AZABsAGwAAAAAACgAAgABAEwAZQBnAGEAbABDAG8AcAB5
AHIAaQBnAGgAdAAAACAAAACUADUAAQBPAHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAA
UwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwAxADYAYgBkAGYAOQBiADgAZABjAGIAZAA0
ADEANwAyAGEAMwBmAGMANQAxAGMAYgBmAGMANQAwAGEAZABmAGUALgBkAGwAbAAAAAAANAAIAAEA
UAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMAAuADAALgAwAC4AMAAAADgACAABAEEAcwBz
AGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAwAC4AMAAuADAALgAwAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgAAADAAAAFAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAA==]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="11" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_16bdf9b8dcbd4172a3fc51cbfc50adfe</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="14" name="CrmConnection" connectionManagerID="{8100503D-F653-44C5-8EFD-392EC423F8E1}" /></connections><outputs><output id="15" name="Output" hasSideEffects="true"><outputColumns><outputColumn id="16" name="ActivityTypeMask" lineageId="16" dataType="i4" /><outputColumn id="17" name="AutoRouteToOwnerQueue" lineageId="17" dataType="bool" /><outputColumn id="18" name="CanBeInManyToMany" lineageId="18" dataType="bool" /><outputColumn id="19" name="CanBePrimaryEntityInRelationship" lineageId="19" dataType="bool" /><outputColumn id="20" name="CanBeRelatedEntityInRelationship" lineageId="20" dataType="bool" /><outputColumn id="21" name="CanCreateAttributes" lineageId="21" dataType="bool" /><outputColumn id="22" name="CanCreateCharts" lineageId="22" dataType="bool" /><outputColumn id="23" name="CanCreateForms" lineageId="23" dataType="bool" /><outputColumn id="24" name="CanCreateViews" lineageId="24" dataType="bool" /><outputColumn id="25" name="CanModifyAdditionalSettings" lineageId="25" dataType="bool" /><outputColumn id="26" name="CanTriggerWorkflow" lineageId="26" dataType="bool" /><outputColumn id="27" name="Description" lineageId="27" length="250" dataType="wstr" /><outputColumn id="28" name="DisplayCollectionName" lineageId="28" length="250" dataType="wstr" /><outputColumn id="29" name="DisplayName" lineageId="29" length="250" dataType="wstr" /><outputColumn id="30" name="IconLargeName" lineageId="30" length="250" dataType="wstr" /><outputColumn id="31" name="IconMediumName" lineageId="31" length="250" dataType="wstr" /><outputColumn id="32" name="IconSmallName" lineageId="32" length="250" dataType="wstr" /><outputColumn id="33" name="IsActivity" lineageId="33" dataType="bool" /><outputColumn id="34" name="IsActivityParty" lineageId="34" dataType="bool" /><outputColumn id="35" name="IsAuditEnabled" lineageId="35" dataType="bool" /><outputColumn id="36" name="IsAvailableOffline" lineageId="36" dataType="bool" /><outputColumn id="37" name="IsChildEntity" lineageId="37" dataType="bool" /><outputColumn id="38" name="IsConnectionsEnabled" lineageId="38" dataType="bool" /><outputColumn id="39" name="IsCustomEntity" lineageId="39" dataType="bool" /><outputColumn id="40" name="IsCustomizable" lineageId="40" dataType="bool" /><outputColumn id="41" name="IsDocumentManagementEnabled" lineageId="41" dataType="bool" /><outputColumn id="42" name="IsDuplicateDetectionEnabled" lineageId="42" dataType="bool" /><outputColumn id="43" name="IsEnabledForCharts" lineageId="43" dataType="bool" /><outputColumn id="44" name="IsImportable" lineageId="44" dataType="bool" /><outputColumn id="45" name="IsIntersect" lineageId="45" dataType="bool" /><outputColumn id="46" name="IsMailMergeEnabled" lineageId="46" dataType="bool" /><outputColumn id="47" name="IsManaged" lineageId="47" dataType="bool" /><outputColumn id="48" name="IsMappable" lineageId="48" dataType="bool" /><outputColumn id="49" name="IsReadingPaneEnabled" lineageId="49" dataType="bool" /><outputColumn id="50" name="IsRenameable" lineageId="50" dataType="bool" /><outputColumn id="51" name="IsValidForAdvancedFind" lineageId="51" dataType="bool" /><outputColumn id="52" name="IsValidForQueue" lineageId="52" dataType="bool" /><outputColumn id="53" name="IsVisibleInMobile" lineageId="53" dataType="bool" /><outputColumn id="54" name="LogicalName" lineageId="54" length="250" dataType="wstr" /><outputColumn id="55" name="ObjectTypeCode" lineageId="55" dataType="i4" /><outputColumn id="56" name="OwnershipType" lineageId="56" length="50" dataType="wstr" /><outputColumn id="57" name="PrimaryIdAttribute" lineageId="57" length="250" dataType="wstr" /><outputColumn id="58" name="PrimaryNameAttribute" lineageId="58" length="250" dataType="wstr" /><outputColumn id="59" name="RecurrenceBaseEntityLogicalName" lineageId="59" length="250" dataType="wstr" /><outputColumn id="60" name="ReportViewName" lineageId="60" length="250" dataType="wstr" /><outputColumn id="61" name="SchemaName" lineageId="61" length="250" dataType="wstr" /></outputColumns><externalMetadataColumns /></output></outputs></component>