exports/Install-SysManSystem.ps1

<#
.Synopsis
Installs one or more systems on one or more clients.
.Description
Installs one or more systems on one or more clients.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/install-sysmansystem
.Inputs
SysMan.Powershell.Models.IInstallSystemOnTargetV2Command
.Outputs
SysMan.Powershell.Models.IApiErrorMessage
.Outputs
SysMan.Powershell.Models.IDistributionInstallationResult
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
CMD <IInstallSystemOnTargetV2Command>: Represent the information required to install one or more systems on one or more clients
  Targets <Int64[]>: The id of the targets (clients or users) to install the systems on. Have to contain one or more id
  [ExecuteDate <DateTime?>]: The date the installation should take place
  [InstallationType <String>]: The type of installation. If specified all application has to support the provided installation type (exeample: If Required then all applications has to support mandatory installation). If the installation type is not supported by all applications the call will fail. If no value is provided the installation will fallback according to the following rules: <ol><li>If application supports mandatory installation then Required is used.</li><li>If application supports non mandatory installation then Available is used.</li><li>If none of the above the call will fail</li></ol>. Possible values: { Required, Available }.
  [Systems <Int64[]>]: The id of the systems that should be installed on the provided targets.
  [TemplateTargetId <Int64?>]: If the installation of system should be based on existing installations on a target. Expects an id of the target This value is only honored if system list is empty. If any item is added to the system list the system in that list will be used instead of the systems that is currently installed on the template target.
  [UseDirectMembership <Boolean?>]: If direct membership should be used for this software installation. Will override the default direct membership calculation done by SysMan (which is based on configuration) and should rarely be used by external systems.
  [UseWakeOnLan <Boolean?>]: If wake on lan should be used on the clients (if any) that will get the installed softwares, If null then the value provided in the SysMan configuration will be used.
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/install-sysmansystem
#>

function Install-SysManSystem {
[OutputType([SysMan.Powershell.Models.IDistributionInstallationResult], [SysMan.Powershell.Models.IApiErrorMessage])]
[CmdletBinding(DefaultParameterSetName='InstallExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Install', Mandatory, ValueFromPipeline)]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IInstallSystemOnTargetV2Command]
    # Represent the information required to install one or more systems on one or more clients
    # To construct, see NOTES section for CMD properties and create a hash table.
    ${Cmd},

    [Parameter(ParameterSetName='InstallExpanded', Mandatory)]
    [SysMan.Powershell.Category('Body')]
    [System.Int64[]]
    # The id of the targets (clients or users) to install the systems on.
    # Have to contain one or more id
    ${Targets},

    [Parameter(ParameterSetName='InstallExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.DateTime]
    # The date the installation should take place
    ${ExecuteDate},

    [Parameter(ParameterSetName='InstallExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    # The type of installation.
    # If specified all application has to support the provided installation type (exeample: If Required then all applications has to support mandatory installation).
    # If the installation type is not supported by all applications the call will fail.If no value is provided the installation will fallback according to the following rules:<ol><li>If application supports mandatory installation then Required is used.</li><li>If application supports non mandatory installation then Available is used.</li><li>If none of the above the call will fail</li></ol>.
    # Possible values: { Required, Available }.
    ${InstallationType},

    [Parameter(ParameterSetName='InstallExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Int64[]]
    # The id of the systems that should be installed on the provided targets.
    ${Systems},

    [Parameter(ParameterSetName='InstallExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Int64]
    # If the installation of system should be based on existing installations on a target.
    # Expects an id of the targetThis value is only honored if system list is empty.
    # If any item is added to the system list the system in that list will be usedinstead of the systems that is currently installed on the template target.
    ${TemplateTargetId},

    [Parameter(ParameterSetName='InstallExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If direct membership should be used for this software installation.
    # Will override the default direct membershipcalculation done by SysMan (which is based on configuration) and should rarely be used by external systems.
    ${UseDirectMembership},

    [Parameter(ParameterSetName='InstallExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If wake on lan should be used on the clients (if any) that will get the installed softwares,If null then the value provided in the SysMan configuration will be used.
    ${UseWakeOnLan},

    [Parameter(DontShow)]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [SysMan.Powershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [SysMan.Powershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter(DontShow)]
    [SysMan.Powershell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Install = 'SysMan.WebApi.private\Install-SysManSystem_Install';
            InstallExpanded = 'SysMan.WebApi.private\Install-SysManSystem_InstallExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {
        throw
    }
}

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# SIG # Begin signature block
# MIIWogYJKoZIhvcNAQcCoIIWkzCCFo8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDolJfgazNCun3O
# jNo3A+IFC/LsK61ILieOW8EpxLZ1GKCCEdcwggPuMIIDV6ADAgECAhB+k+v7fMZO
# WepLmnfUBvw7MA0GCSqGSIb3DQEBBQUAMIGLMQswCQYDVQQGEwJaQTEVMBMGA1UE
# CBMMV2VzdGVybiBDYXBlMRQwEgYDVQQHEwtEdXJiYW52aWxsZTEPMA0GA1UEChMG
# VGhhd3RlMR0wGwYDVQQLExRUaGF3dGUgQ2VydGlmaWNhdGlvbjEfMB0GA1UEAxMW
# VGhhd3RlIFRpbWVzdGFtcGluZyBDQTAeFw0xMjEyMjEwMDAwMDBaFw0yMDEyMzAy
# MzU5NTlaMF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3Jh
# dGlvbjEwMC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNlcyBD
# QSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsayzSVRLlxwS
# CtgleZEiVypv3LgmxENza8K/LlBa+xTCdo5DASVDtKHiRfTot3vDdMwi17SUAAL3
# Te2/tLdEJGvNX0U70UTOQxJzF4KLabQry5kerHIbJk1xH7Ex3ftRYQJTpqr1SSwF
# eEWlL4nO55nn/oziVz89xpLcSvh7M+R5CvvwdYhBnP/FA1GZqtdsn5Nph2Upg4XC
# YBTEyMk7FNrAgfAfDXTekiKryvf7dHwn5vdKG3+nw54trorqpuaqJxZ9YfeYcRG8
# 4lChS+Vd+uUOpyyfqmUg09iW6Mh8pU5IRP8Z4kQHkgvXaISAXWp4ZEXNYEZ+VMET
# fMV58cnBcQIDAQABo4H6MIH3MB0GA1UdDgQWBBRfmvVuXMzMdJrU3X3vP9vsTIAu
# 3TAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
# ZS5jb20wEgYDVR0TAQH/BAgwBgEB/wIBADA/BgNVHR8EODA2MDSgMqAwhi5odHRw
# Oi8vY3JsLnRoYXd0ZS5jb20vVGhhd3RlVGltZXN0YW1waW5nQ0EuY3JsMBMGA1Ud
# JQQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIBBjAoBgNVHREEITAfpB0wGzEZ
# MBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtMTANBgkqhkiG9w0BAQUFAAOBgQADCZuP
# ee9/WTCq72i1+uMJHbtPggZdN1+mUp8WjeockglEbvVt61h8MOj5aY0jcwsSb0ep
# rjkR+Cqxm7Aaw47rWZYArc4MTbLQMaYIXCp6/OJ6HVdMqGUY6XlAYiWWbsfHN2qD
# IQiOQerd2Vc/HXdJhyoWBl6mOGoiEqNRGYN+tjCCBJkwggOBoAMCAQICEHGgtzaV
# 3bGvwjsrmhjuVMswDQYJKoZIhvcNAQELBQAwgakxCzAJBgNVBAYTAlVTMRUwEwYD
# VQQKEwx0aGF3dGUsIEluYy4xKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vydmlj
# ZXMgRGl2aXNpb24xODA2BgNVBAsTLyhjKSAyMDA2IHRoYXd0ZSwgSW5jLiAtIEZv
# ciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQDExZ0aGF3dGUgUHJpbWFyeSBS
# b290IENBMB4XDTEzMTIxMDAwMDAwMFoXDTIzMTIwOTIzNTk1OVowTDELMAkGA1UE
# BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEmMCQGA1UEAxMddGhhd3RlIFNI
# QTI1NiBDb2RlIFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
# AoIBAQCbVQJMFwXp0GbD/Cit08D+7+DpftQe9qobkUb99RbtmAdT+rqHG32eHwEn
# q7nSZ8q3ECVT9OO+m5C47SNcQu9kJVjliCIavvXHrvW+irEREZMaIql0acF0tmiH
# p4Mw+WTxseM4PvTWwfwS/nNXFzVXit1QjQP4Zs3KdoMTyNcOcR3kY8m6F/jRueSI
# 0iwoyCEgDUG3C+IvwoDmiHtTbMNEY4F/aEeMKyrPW/SMSWG6aYX9awB4BSZpEzCA
# OE7xWlXJxVDWqjiJR0Nc/k1zpUnFk2n+d5aar/OMDle6M9kOxkLTA3fEuzmtkfnz
# 95ZcOmSm7SdXwehA81Pyvik0/l/5AgMBAAGjggEXMIIBEzAvBggrBgEFBQcBAQQj
# MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly90Mi5zeW1jYi5jb20wEgYDVR0TAQH/BAgw
# BgEB/wIBADAyBgNVHR8EKzApMCegJaAjhiFodHRwOi8vdDEuc3ltY2IuY29tL1Ro
# YXd0ZVBDQS5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMA4GA1Ud
# DwEB/wQEAwIBBjApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0kt
# MS01NjgwHQYDVR0OBBYEFFeGm1S4vqYpiuT2wuITGImFzdy3MB8GA1UdIwQYMBaA
# FHtbRc+vzst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQAkO/XXoDYT
# x0P+8AmHaNGYMW4S5D8eH5Z7a0weh56LxWyjsQx7UJLVgZyxjywpt+75kQW5jkHx
# LPbQWS2Y4LnqgAFHQJW4PZ0DvXm7NbatnEwn9mdFEMnFvIdOVXvSh7vd3DDvxtRs
# zJk1bRzgYNPNaI8pWUuJlghGyY78dU/F3AnMTieLRM0HvKwE4LUzpYef9N1zDJHq
# EoFv43XwHrWTbEQX1T6Xyb0HLFZ3H4XdRui/3iyBlKP35benwTefdcpVd01eNinK
# hdhFQXJXdcB5W/o0EAZtZCBCtzrIHx1GZAJfxke+8MQ6KFTa9h5PmqIZQ6RvSfj8
# XkIgKISLRyBuMIIEnTCCA4WgAwIBAgIQCTq3hNaBtvt68SgSwpYLKDANBgkqhkiG
# 9w0BAQsFADBMMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMuMSYw
# JAYDVQQDEx10aGF3dGUgU0hBMjU2IENvZGUgU2lnbmluZyBDQTAeFw0xODExMTUw
# MDAwMDBaFw0yMjAyMTMyMzU5NTlaMFsxCzAJBgNVBAYTAlNFMRIwEAYDVQQIDAlT
# dG9ja2hvbG0xEjAQBgNVBAcMCVN0b2NraG9sbTERMA8GA1UECgwISW5lcmEgQUIx
# ETAPBgNVBAMMCEluZXJhIEFCMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
# AQEAugUhf2sJ+eCo/qI1qaKLEZCUAnj23JnNmIRHLP5XJbXBmkmIcB7SH8qQW2Xy
# rPzs1PlzeuR5NiVURpWl27+KvfIkEPA8SQIGNV4FaesLQM4iOgaA+sp+aXUiVVZy
# GVaO+S4o1S4ahrb/OjTLUaJNiCYTqhW0o/h5YvSQOZBaQEwAXcFVPxZ5nr1Hbrma
# Z3SVDS/HU55X9BolDjeGQitUXS4pJT8Y5/bFLRDD7oC6rxYomsOawuvC/I3ynD9k
# hT0ye8OmOVGR8jbVCDSPpq1moFSn8pwouScwzdj2+8pRTq2NMBPi7M5VvNrgFNoL
# BEWj4VI2zirGAB88FVFQfl5utQIDAQABo4IBajCCAWYwCQYDVR0TBAIwADAfBgNV
# HSMEGDAWgBRXhptUuL6mKYrk9sLiExiJhc3ctzAdBgNVHQ4EFgQU1IKj1fPFqb20
# KeXXJdxHYD5qoyYwKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3RsLnN5bWNiLmNv
# bS90bC5jcmwwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMG4G
# A1UdIARnMGUwYwYGZ4EMAQQBMFkwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRo
# YXd0ZS5jb20vY3BzMC8GCCsGAQUFBwICMCMMIWh0dHBzOi8vd3d3LnRoYXd0ZS5j
# b20vcmVwb3NpdG9yeTBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6
# Ly90bC5zeW1jZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly90bC5zeW1jYi5jb20v
# dGwuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQCDoioJABkoQWDuBN5tIKJAs9iRTySw
# UN/HoYSGdSOvO4UNhv889/fKcBJHY/WlTDFDoT/ULOcnQxOxNIWxw7gh/wjVX3hd
# 6eU2wCcwGXaHqLQ/Sx1RwRPGmn8fxB1Q8cgSkdYbUh8HyQcEv6Q0qTjb1rD9MaLj
# bP3ZQjDJ7gS5tLh/FQhBlLoGOA/z2LIfhiAsPLKgXuzNVJzUdjgRr06LoYmicwFX
# NyifRupyMTeRhIXxwFy1FHgFvZgL9ZstnqzgZ2kwpsClzoKljltRZMpYe64uWnKI
# fbU8agdhIH9kg/o2d2cypienAepMvxXyEtscrIWfTYn+Sd2RHVLDqcmsMIIEozCC
# A4ugAwIBAgIQDs/0OMj+vzVuBNhqmBsaUDANBgkqhkiG9w0BAQUFADBeMQswCQYD
# VQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xMDAuBgNVBAMT
# J1N5bWFudGVjIFRpbWUgU3RhbXBpbmcgU2VydmljZXMgQ0EgLSBHMjAeFw0xMjEw
# MTgwMDAwMDBaFw0yMDEyMjkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMR0wGwYDVQQK
# ExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjE0MDIGA1UEAxMrU3ltYW50ZWMgVGltZSBT
# dGFtcGluZyBTZXJ2aWNlcyBTaWduZXIgLSBHNDCCASIwDQYJKoZIhvcNAQEBBQAD
# ggEPADCCAQoCggEBAKJjCzlEuLsjp0RJuw7/ofBhClOTsJjbrSwPSsVu/4Y8U1UP
# Fc4EPyv9qZaW2b5heQtbyUyGduXgQ0sile7CK0PBn9hotI5AT+6FOLkRxSPyZFjw
# FTJvTlehroikAtcqHs1L4d1j1ReJMluwXplaqJ0oUA4X7pbbYTtFUR3PElYLkkf8
# q672Zj1HrHBy55LnX80QucSDZJQZvSWA4ejSIqXQugJ6oXeTW2XD7hd0vEGGKtwI
# TIySjJEtnndEH2jWqHR32w5bMotWizO92WPISZ06xcXqMwvS8aMb9Iu+2bNXizve
# BKd6IrIkri7HcMW+ToMmCPsLvalPmQjhEChyqs0CAwEAAaOCAVcwggFTMAwGA1Ud
# EwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQDAgeA
# MHMGCCsGAQUFBwEBBGcwZTAqBggrBgEFBQcwAYYeaHR0cDovL3RzLW9jc3Aud3Mu
# c3ltYW50ZWMuY29tMDcGCCsGAQUFBzAChitodHRwOi8vdHMtYWlhLndzLnN5bWFu
# dGVjLmNvbS90c3MtY2EtZzIuY2VyMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly90
# cy1jcmwud3Muc3ltYW50ZWMuY29tL3Rzcy1jYS1nMi5jcmwwKAYDVR0RBCEwH6Qd
# MBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0yMDQ4LTIwHQYDVR0OBBYEFEbGaaMOShQe
# 1UzaUmMXP142vA3mMB8GA1UdIwQYMBaAFF+a9W5czMx0mtTdfe8/2+xMgC7dMA0G
# CSqGSIb3DQEBBQUAA4IBAQB4O7SRKgBM8I9iMDd4o4QnB28Yst4l3KDUlAOqhk4l
# n5pAAxzdzuN5yyFoBtq2MrRtv/QsJmMz5ElkbQ3mw2cO9wWkNWx8iRbG6bLfsund
# IMZxD82VdNy2XN69Nx9DeOZ4tc0oBCCjqvFLxIgpkQ6A0RH83Vx2bk9eDkVGQW4N
# sOo4mrE62glxEPwcebSAe6xp9P2ctgwWK/F/Wwk9m1viFsoTgW0ALjgNqCmPLOGy
# 9FqpAa8VnCwvSRvbIrvD/niUUcOGsYKIXfA9tFGheTMrLnu53CAJE3Hrahlbz+il
# MFcsiUk/uc9/yb8+ImhjU5q9aXSsxR08f5Lgw7wc2AR1MYIEITCCBB0CAQEwYDBM
# MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMuMSYwJAYDVQQDEx10
# aGF3dGUgU0hBMjU2IENvZGUgU2lnbmluZyBDQQIQCTq3hNaBtvt68SgSwpYLKDAN
# BglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqG
# SIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3
# AgEVMC8GCSqGSIb3DQEJBDEiBCA+ol+8TmFK4DgvLAlUTtIPb2+RwYroxoTHc/Ud
# Grzb2TANBgkqhkiG9w0BAQEFAASCAQAR1lKVpiBl8UTnA4K65WiCC/NOIXrTVXwj
# tRGMJ5FXVGaoabdGpazMIJyKlUmCGGQIlMnbYQOD6UpT9+LVMvA6CwDycpGTINX5
# 8G1K2kG1N6n0KYZJx/G0GRKfP7mCjX3qKdgovAlVLOHcHiKW6G2wZ62yJhRG/DNW
# BzlKognL2j/6652LbsRkis52iqLauaG+v4XssELemGh503bcwJaKU6Di1F4M5ux+
# H9VWYMTrvW8mVBsV4bi0EAqp99zBEnveO/L1ps4j/zD+3h0kq1wadyl0XdIr3Fh3
# k4N3iqu+Lv+dpAUlcDK6PT5Crl5OYaoyApbdwhXHne/9d1xfuwwGoYICCzCCAgcG
# CSqGSIb3DQEJBjGCAfgwggH0AgEBMHIwXjELMAkGA1UEBhMCVVMxHTAbBgNVBAoT
# FFN5bWFudGVjIENvcnBvcmF0aW9uMTAwLgYDVQQDEydTeW1hbnRlYyBUaW1lIFN0
# YW1waW5nIFNlcnZpY2VzIENBIC0gRzICEA7P9DjI/r81bgTYapgbGlAwCQYFKw4D
# AhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
# DTIwMDExNDEwMjY1MVowIwYJKoZIhvcNAQkEMRYEFF/DCl+GKQ81n7psSyspf25f
# lMm4MA0GCSqGSIb3DQEBAQUABIIBAIhG8nbH9QOJZpqzOubFKFFKpR/dzWGUmpOc
# pNT19vBAaxRMHAcelPG3fmkT7fOs0Ko1W/9SNlk9nHb/faSIv8EzuazeEyC+5kdj
# XWrEgfz5z3QU8WMFt14ghgB5P84+U7fNasgZfV7PwL5haqlkUqur78Zedy/lB1Hd
# F3Hmhn8PbjoA6crJir+iz7l9JzmwVyTlW7d0/Vquaz2VFWWbhnqYZi65hlDiYxlh
# is/HcuKWjCEWSds8PVHi56y0C8CRG9PuoaNJ2DgVLrKbul/G4jF9mIlsBSnyZc04
# t3n3p+npMHnr7If58WRXVY1jLDV/L8nSZhzyU8hp9RUBA+aHRGQ=
# SIG # End signature block