exports/New-SysManDriver.ps1

<#
.Synopsis
Creates a driver
.Description
Creates a driver
.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/new-sysmandriver
.Inputs
SysMan.Powershell.Models.IUpsertDriverV2Command
.Outputs
SysMan.Powershell.Models.IApiErrorMessage
.Outputs
SysMan.Powershell.Models.IDriver
.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 <IUpsertDriverV2Command>: Represents a driver based on HardwareModel and Operatingsystem
  DriverPackageId <String>: The driverPackageID, SCCM Driver PakageID format [SiteCode][XXXXX] (exactly 8 alphanumerics)
  DriverPackageName <String>: The DriverPackageName
  [AdditionalPackageId <String>]: If any additional package (of files) should be downloaded to the client during a inplace upgrade. Note: Only applicable for drivers of type Upgrade
  [SoftwareDriverAllowUnsigned <Boolean?>]: If the driver can be used unsigned
  [SoftwareDriverApplications <String[]>]: The additional applications to be installed along with the driver
  [SoftwareDriverPrograms <String[]>]: Additonal programs to be executed along with the driver
  [SoftwareDriverUseRecurse <Boolean?>]: If DISM/Recurse should be used
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/new-sysmandriver
#>

function New-SysManDriver {
[OutputType([SysMan.Powershell.Models.IDriver], [SysMan.Powershell.Models.IApiErrorMessage])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(Mandatory)]
    [SysMan.Powershell.Category('Path')]
    [System.Int64]
    # The id of the hardware.
    ${HardwareModelId},

    [Parameter(Mandatory)]
    [SysMan.Powershell.Category('Path')]
    [System.Int64]
    # The id of the operating system.
    ${OperatingSystemId},

    [Parameter(Mandatory)]
    [SysMan.Powershell.Category('Path')]
    [System.String]
    # The type of the driver.
    # Possible values: { WipeAndLoad, Upgrade }.
    ${Type},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IUpsertDriverV2Command]
    # Represents a driver based on HardwareModel and Operatingsystem
    # To construct, see NOTES section for CMD properties and create a hash table.
    ${Cmd},

    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    # The driverPackageID, SCCM Driver PakageID format [SiteCode][XXXXX] (exactly 8 alphanumerics)
    ${DriverPackageId},

    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    # The DriverPackageName
    ${DriverPackageName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    # If any additional package (of files) should be downloaded to the client during a inplace upgrade.
    # Note: Only applicable for drivers of type Upgrade
    ${AdditionalPackageId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If the driver can be used unsigned
    ${SoftwareDriverAllowUnsigned},

    [Parameter(ParameterSetName='CreateExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.String[]]
    # The additional applications to be installed along with the driver
    ${SoftwareDriverApplications},

    [Parameter(ParameterSetName='CreateExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.String[]]
    # Additonal programs to be executed along with the driver
    ${SoftwareDriverPrograms},

    [Parameter(ParameterSetName='CreateExpanded')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If DISM/Recurse should be used
    ${SoftwareDriverUseRecurse},

    [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 = @{
            Create = 'SysMan.WebApi.private\New-SysManDriver_Create';
            CreateExpanded = 'SysMan.WebApi.private\New-SysManDriver_CreateExpanded';
        }
        $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
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAhz8imUkHy9wGK
# 95AIG7FsgWltd0wFyuYZAZZYl2+dRaCCEdcwggPuMIIDV6ADAgECAhB+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
# AgEVMC8GCSqGSIb3DQEJBDEiBCA7K1l35x8DzoOtozuZAeJYTPP68bmFZzVq5CDE
# /FU3hzANBgkqhkiG9w0BAQEFAASCAQCw8GB3nF0S6OfjqvoU60JnIctqaiKxzB53
# 4HDkw3Ibc64ktls3X7FRu+tT1WwfxktD6wkUfa38+7SWsxfr4BzNKVN0Ir6i6ZMu
# UUnArq7bRV6CDfJtNExPGvuOLRbwjvAElqoNIGxB6Eh/1sSLjtt4FN56aCi/nGFt
# wvBEeoHc07ppPfcdvt3LzyAOhHtmdPwR+3MLvyTqSYBf5eWsB6epHA9kY80Fh5hd
# 0ghnyOc/tjgr1kqa89axcIM2gopbr6C66bO8Nap2EEXSU39nT9uztxACuKnvk7QF
# s6D6YBhaJ2CLGjZCNcAviAhM+WO63J+2zv9GAMEXcut5K4b7+/TyoYICCzCCAgcG
# CSqGSIb3DQEJBjGCAfgwggH0AgEBMHIwXjELMAkGA1UEBhMCVVMxHTAbBgNVBAoT
# FFN5bWFudGVjIENvcnBvcmF0aW9uMTAwLgYDVQQDEydTeW1hbnRlYyBUaW1lIFN0
# YW1waW5nIFNlcnZpY2VzIENBIC0gRzICEA7P9DjI/r81bgTYapgbGlAwCQYFKw4D
# AhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
# DTIwMDExNDEwMjY1N1owIwYJKoZIhvcNAQkEMRYEFJ1qWNOSkCPg3Z2Yafzfmauk
# u82FMA0GCSqGSIb3DQEBAQUABIIBAIP7tq7xIWE3piRXM5oGtCyYxHtMpuX4GFWV
# UDeq9sp4FTAuKd2KzPeDjEKKZr8Ia6gdYcW5ektYMsykWH/brkeLwUN2aaAU6avW
# fOWhhf8GZ6K6mituAuLeJy2cd169G+kpRJvkFYkeqOnEXzD+Fh33vvEdkakZVlb7
# Icvx4HSDuFKZLLWz9Mi6qusCYYifVaJhqp5FAvFpKMa5XTGcCgdeOaWvZ14f5M/U
# 1CANFZB6UgT/5hSJVI6IcOSA08YpIJR1wGt18H8+tmT5V7M57fFRnDde/2Jj3G10
# uuuui68lo+kpnhGVNJle0Ah6rde5kMI/KRJjuT3aSg3eQXTSQEs=
# SIG # End signature block