Cisco.UCS.DesiredStateConfiguration.psm1



Function Get-UcsConnection
{
 param(
            
        [parameter(Mandatory = $true,HelpMessage="Please specify using format: 'Name=<ipAddress> [`nNoSsl=<bool>][`nPort=<ushort>] [`nProxyAddress=<proxyAddress>] [`nUseProxyDefaultCredentials=<bool>]'")]
        [System.String]
        $UcsConnectionString,

        [parameter(Mandatory = $true)]
        [System.Management.Automation.PSCredential]
        $UcsCredentials,

        [System.Management.Automation.PSCredential]
        $WebProxyCredentials
        
        ) 
    Write-Verbose("Started execution of Get-UcsConnection() method")
    $handle=$null
    Import-Module "Cisco.UCSManager"
    $connMap=  ConvertFrom-StringData -StringData $UcsConnectionString
   # Write-Host($connMap)

    $ipAddress = $null
    $noSsl = $false
    $port = $null
    $proxyAddress = $null
    $useProxyDefaultCredentials = $false
    #Write-Host("check name key")
    if($connMap.ContainsKey("Name"))
    {
    # Write-Host("Name key is present")
        $ipAddress= $connMap["Name"]
    }
    if($connMap.ContainsKey("NoSsl"))
    {
        $noSsl=   [System.Boolean]::Parse($connMap["NoSsl"])
    }
    if($connMap.ContainsKey("Port"))
    {
        $port=$connMap["Port"] 
    }
    if($connMap.ContainsKey("ProxyAddress"))
    {
        $proxyAddress= $connMap["ProxyAddress"]
    }
    if($connMap.ContainsKey("UseProxyDefaultCredentials"))
    {
        $useProxyDefaultCredentials = [System.Boolean]::Parse($connMap["UseProxyDefaultCredentials"])
    }
  # Write-Host("IPAddress"+ $ipAddress)

    if([string]::IsNullOrEmpty($proxyAddress))
     {
        if(-not($noSsl) -and [string]::IsNullOrEmpty($port))
        {
            Write-Verbose("Using cmdlet Connect-Ucs $ipAddress -Credential $UcsCredentials.")
            $handle= Connect-Ucs $ipAddress -Credential $UcsCredentials
        }
        elseif($noSsl -and [string]::IsNullOrEmpty($port) )
        {
            Write-Verbose("Using cmdlet Connect-Ucs $ipAddress -Credential $UcsCredentials -NoSsl.")
            $handle= Connect-Ucs $ipAddress -Credential $UcsCredentials -NoSsl
        }

        elseif(-not ($noSsl) -and (-not [string]::IsNullOrEmpty($port)) )
        {
            Write-Verbose("Using cmdlet Connect-Ucs $ipAddress -Credential $UcsCredentials -Port $port.")
            $handle= Connect-Ucs $ipAddress -Credential $UcsCredentials -Port $port
        }

        elseif( $noSsl -and (-not [string]::IsNullOrEmpty($port)) )
        {
            Write-Verbose("Using cmdlet Connect-Ucs $ipAddress -Credential $UcsCredentials -Port $port -NoSsl")
            $handle= Connect-Ucs $ipAddress -Credential $UcsCredentials -Port $port -NoSsl
        }
       
    }
    else 
   
    {
        $proxy= New-Object 'System.Net.WebProxy'
        $proxy.Address = $proxyAddress
        if($WebProxyCredentials -ne $null)
        {
          $proxy.Credentials = $WebProxyCredentials
        }
        if($useProxyDefaultCredentials)
        {
            $proxy.UseDefaultCredentials = $true
        }
        else
        {
            $proxy.UseDefaultCredentials = $false
        }
           
        if(-not($noSsl) -and [string]::IsNullOrEmpty($port))
        {
            Write-Verbose("Using cmdlet Connect-Ucs $ipAddress -Credential $UcsCredentials -Proxy $proxy.")
            $handle= Connect-Ucs $ipAddress -Credential $UcsCredentials -Proxy $proxy
        }
        elseif($noSsl -and [string]::IsNullOrEmpty($port) )
        {
            Write-Verbose("Using cmdlet Connect-Ucs $ipAddress -Credential $UcsCredentials -NoSsl -Proxy $proxy.")
            $handle= Connect-Ucs $ipAddress -Credential $UcsCredentials -NoSsl -Proxy $proxy
        }
        elseif(-not ($noSsl) -and (-not [string]::IsNullOrEmpty($port)) )
        {
            Write-Verbose("Using cmdlet Connect-Ucs $ipAddress -Credential $UcsCredentials -Port $port -Proxy $proxy.")
            $handle= Connect-Ucs $ipAddress -Credential $UcsCredentials -Port $port -Proxy $proxy
        }
        elseif( $noSsl -and ($connMap.ContainsKey("Port")) )
        {
            Write-Verbose("Using cmdlet Connect-Ucs $ipAddress -Credential $UcsCredentials -Port $port -NoSsl -Proxy $proxy")
            $handle= Connect-Ucs $ipAddress -Credential $UcsCredentials -Port $port -NoSsl -Proxy $proxy
        }
    
    }
    

   
     Write-Verbose("Completed execution of Get-UcsConnection() method")

    return $handle
} 



Function Get-ImcConnection
{
 param(
            
        [parameter(Mandatory = $true,HelpMessage="Please specify using format: 'Name=<ipAddress> [`nNoSsl=<bool>][`nPort=<ushort>] [`nProxyAddress=<proxyAddress>] [`nUseProxyDefaultCredentials=<bool>]'")]
        [System.String]
        $ImcConnectionString,

        [parameter(Mandatory = $true)]
        [System.Management.Automation.PSCredential]
        $ImcCredentials,

        [System.Management.Automation.PSCredential]
        $WebProxyCredentials
        
        ) 
    Write-Verbose("Started execution of Get-ImcConnection() method")
    $handle=$null
    Import-Module "Cisco.IMC"
    $connMap=  ConvertFrom-StringData -StringData $ImcConnectionString
   # Write-Host($connMap)

    $ipAddress = $null
    $noSsl = $false
    $port = $null
    $proxyAddress = $null
    $useProxyDefaultCredentials = $false
    #Write-Host("check name key")
    if($connMap.ContainsKey("Name"))
    {
    # Write-Host("Name key is present")
        $ipAddress= $connMap["Name"]
    }
    if($connMap.ContainsKey("NoSsl"))
    {
        $noSsl=   [System.Boolean]::Parse($connMap["NoSsl"])
    }
    if($connMap.ContainsKey("Port"))
    {
        $port=$connMap["Port"] 
    }
    if($connMap.ContainsKey("ProxyAddress"))
    {
        $proxyAddress= $connMap["ProxyAddress"]
    }
    if($connMap.ContainsKey("UseProxyDefaultCredentials"))
    {
        $useProxyDefaultCredentials = [System.Boolean]::Parse($connMap["UseProxyDefaultCredentials"])
    }
  # Write-Host("IPAddress"+ $ipAddress)

    if([string]::IsNullOrEmpty($proxyAddress))
     {
        if(-not($noSsl) -and [string]::IsNullOrEmpty($port))
        {
            Write-Verbose("Using cmdlet Connect-Imc $ipAddress -Credential $ImcCredentials.")
            $handle= Connect-Imc $ipAddress -Credential $ImcCredentials
        }
        elseif($noSsl -and [string]::IsNullOrEmpty($port) )
        {
            Write-Verbose("Using cmdlet Connect-Imc $ipAddress -Credential $ImcCredentials -NoSsl.")
            $handle= Connect-Imc $ipAddress -Credential $ImcCredentials -NoSsl
        }

        elseif(-not ($noSsl) -and (-not [string]::IsNullOrEmpty($port)) )
        {
            Write-Verbose("Using cmdlet Connect-Imc $ipAddress -Credential $ImcCredentials -Port $port.")
            $handle= Connect-Imc $ipAddress -Credential $ImcCredentials -Port $port
        }

        elseif( $noSsl -and (-not [string]::IsNullOrEmpty($port)) )
        {
            Write-Verbose("Using cmdlet Connect-Imc $ipAddress -Credential $ImcCredentials -Port $port -NoSsl")
            $handle= Connect-Imc $ipAddress -Credential $ImcCredentials -Port $port -NoSsl
        }
       
    }
    else 
   
    {
        $proxy= New-Object 'System.Net.WebProxy'
        $proxy.Address = $proxyAddress
        if($WebProxyCredentials -ne $null)
        {
          $proxy.Credentials = $WebProxyCredentials
        }
        if($useProxyDefaultCredentials)
        {
            $proxy.UseDefaultCredentials = $true
        }
        else
        {
            $proxy.UseDefaultCredentials = $false
        }
           
        if(-not($noSsl) -and [string]::IsNullOrEmpty($port))
        {
            Write-Verbose("Using cmdlet Connect-Imc $ipAddress -Credential $ImcCredentials -Proxy $proxy.")
            $handle= Connect-Imc $ipAddress -Credential $ImcCredentials -Proxy $proxy
        }
        elseif($noSsl -and [string]::IsNullOrEmpty($port) )
        {
            Write-Verbose("Using cmdlet Connect-Imc $ipAddress -Credential $ImcCredentials -NoSsl -Proxy $proxy.")
            $handle= Connect-Imc $ipAddress -Credential $ImcCredentials -NoSsl -Proxy $proxy
        }
        elseif(-not ($noSsl) -and (-not [string]::IsNullOrEmpty($port)) )
        {
            Write-Verbose("Using cmdlet Connect-Imc $ipAddress -Credential $ImcCredentials -Port $port -Proxy $proxy.")
            $handle= Connect-Imc $ipAddress -Credential $ImcCredentials -Port $port -Proxy $proxy
        }
        elseif( $noSsl -and ($connMap.ContainsKey("Port")) )
        {
            Write-Verbose("Using cmdlet Connect-Imc $ipAddress -Credential $ImcCredentials -Port $port -NoSsl -Proxy $proxy")
            $handle= Connect-Imc $ipAddress -Credential $ImcCredentials -Port $port -NoSsl -Proxy $proxy
        }
    
    }
     Write-Verbose("Completed execution of Get-ImcConnection() method")

    return $handle
} 

# SIG # Begin signature block
# MIIePwYJKoZIhvcNAQcCoIIeMDCCHiwCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB9jU1LF3GyQK/+
# GdcRzuJ7Wtd695CO7Mky+p5SHn5QvKCCDIYwggXCMIIEqqADAgECAhAFsKypxaqA
# 4gfxbvm70Ew5MA0GCSqGSIb3DQEBCwUAMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV
# BAMTIkRpZ2lDZXJ0IEVWIENvZGUgU2lnbmluZyBDQSAoU0hBMikwHhcNMTkwMzA1
# MDAwMDAwWhcNMjEwMzE5MTIwMDAwWjCB1TETMBEGCysGAQQBgjc8AgEDEwJVUzEb
# MBkGCysGAQQBgjc8AgECEwpDYWxpZm9ybmlhMR0wGwYDVQQPDBRQcml2YXRlIE9y
# Z2FuaXphdGlvbjERMA8GA1UEBRMIQzExODM0NzcxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpDYWxpZm9ybmlhMREwDwYDVQQHEwhTYW4gSm9zZTEcMBoGA1UEChMTQ0lT
# Q08gU1lTVEVNUywgSU5DLjEcMBoGA1UEAxMTQ0lTQ08gU1lTVEVNUywgSU5DLjCC
# ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALVsxgp7cSBymDSAFTz4uPcU
# dcp8ef7lqubpfbCvmiK5BaQOcF6pL2Ekl1o2BiiMOXQfKLO706Ji1lfdZVh/1eDz
# zThFUTJ5LgQv5YrFnYu27TuAoXJ2Qs6pj/DJX+R7Mw+5fweicf0DSK9XiV6C9FCK
# gT7Z7g0WSYH22qZpBzJf766j2sXo84qEzgR683xfCbTQMbg7I2MzuIvMGT4Qs447
# Uzb5lR1DVwMcAdXZD0lXS+0h1C4xl3B+MseIH2mtQTo1+pLhlqSK8xCwixEf1ERL
# 3zmUTLw3G/gM4ccyvlWUaorNAiZw7JSAk3eqojmiAp9fuqRuuDhOHl13MzCxh1UC
# AwEAAaOCAfQwggHwMB8GA1UdIwQYMBaAFI/ofvBtMmoABSPHcJdqOpD/a+rUMB0G
# A1UdDgQWBBSqPgNg7Q9VW7yFRq0K9ceayo35uzAxBgNVHREEKjAooCYGCCsGAQUF
# BwgDoBowGAwWVVMtQ0FMSUZPUk5JQS1DMTE4MzQ3NzAOBgNVHQ8BAf8EBAMCB4Aw
# EwYDVR0lBAwwCgYIKwYBBQUHAwMwewYDVR0fBHQwcjA3oDWgM4YxaHR0cDovL2Ny
# bDMuZGlnaWNlcnQuY29tL0VWQ29kZVNpZ25pbmdTSEEyLWcxLmNybDA3oDWgM4Yx
# aHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0VWQ29kZVNpZ25pbmdTSEEyLWcxLmNy
# bDBLBgNVHSAERDBCMDcGCWCGSAGG/WwDAjAqMCgGCCsGAQUFBwIBFhxodHRwczov
# L3d3dy5kaWdpY2VydC5jb20vQ1BTMAcGBWeBDAEDMH4GCCsGAQUFBwEBBHIwcDAk
# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEgGCCsGAQUFBzAC
# hjxodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRFVkNvZGVTaWdu
# aW5nQ0EtU0hBMi5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAQEA
# MLeT7V16i8TpC3++bRSUEajW355sfKiuWEPnc1RIEGMSekaTJKSVDDgaGdPt22qE
# wRrJztKYca2N6ZpOOE477yTiuYMCCVUIcwhaWezA/4Wgs9TpW0QBe53qIJj6t0uH
# M+gZg7Bp0KM65Z+Kh5teHZ6kzs8evRGsH3cgKtfrwwRRdJCgqBz3KmkNhqRQ6/Hl
# SS7GV+wRoGAeqnCGL6IOY7bLl2NC+ItUh1D6bP/9UR0MtVFU6nqY7Lj3Z5xmje8t
# N6sZ1p+FTGaHDwSZX7DDtff766Bl5om/IixIfOPQtZoe12lxZqlAn33JMflIZgNt
# 8ckoE13Gh8lJeoFIFBzgsjCCBrwwggWkoAMCAQICEAPxtOFfOoLxFJZ4s9fYR1ww
# DQYJKoZIhvcNAQELBQAwbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0
# IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNl
# cnQgSGlnaCBBc3N1cmFuY2UgRVYgUm9vdCBDQTAeFw0xMjA0MTgxMjAwMDBaFw0y
# NzA0MTgxMjAwMDBaMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNVBAMTIkRpZ2lDZXJ0
# IEVWIENvZGUgU2lnbmluZyBDQSAoU0hBMikwggEiMA0GCSqGSIb3DQEBAQUAA4IB
# DwAwggEKAoIBAQCnU/oPsrUT8WTPhID8roA10bbXx6MsrBosrPGErDo1EjqSkbpX
# 5MTJ8y+oSDy31m7clyK6UXlhr0MvDbebtEkxrkRYPqShlqeHTyN+w2xlJJBVPqHK
# I3zFQunEemJFm33eY3TLnmMl+ISamq1FT659H8gTy3WbyeHhivgLDJj0yj7QRap6
# HqVYkzY0visuKzFYZrQyEJ+d8FKh7+g+03byQFrc+mo9G0utdrCMXO42uoPqMKhM
# 3vELKlhBiK4AiasD0RaCICJ2615UOBJi4dJwJNvtH3DSZAmALeK2nc4f8rsh82zb
# 2LMZe4pQn+/sNgpcmrdK0wigOXn93b89OgklAgMBAAGjggNYMIIDVDASBgNVHRMB
# Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcD
# AzB/BggrBgEFBQcBAQRzMHEwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
# ZXJ0LmNvbTBJBggrBgEFBQcwAoY9aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
# L0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNydDCBjwYDVR0fBIGHMIGE
# MECgPqA8hjpodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRIaWdoQXNz
# dXJhbmNlRVZSb290Q0EuY3JsMECgPqA8hjpodHRwOi8vY3JsNC5kaWdpY2VydC5j
# b20vRGlnaUNlcnRIaWdoQXNzdXJhbmNlRVZSb290Q0EuY3JsMIIBxAYDVR0gBIIB
# uzCCAbcwggGzBglghkgBhv1sAwIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3
# LmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH
# AgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy
# AHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj
# AGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg
# AEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ
# AGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt
# AGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj
# AG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl
# AHIAZQBuAGMAZQAuMB0GA1UdDgQWBBSP6H7wbTJqAAUjx3CXajqQ/2vq1DAfBgNV
# HSMEGDAWgBSxPsNpA/i/RwHUmCYaCALvY2QrwzANBgkqhkiG9w0BAQsFAAOCAQEA
# GTNKDIEzN9utNsnkyTq7tRsueqLi9ENCF56/TqFN4bHb6YHdnwHy5IjV6f4J/SHB
# 7F2A0vDWwUPC/ncr2/nXkTPObNWyGTvmLtbJk0+IQI7N4fV+8Q/GWVZy6OtqQb0c
# 1UbVfEnKZjgVwb/gkXB3h9zJjTHJDCmiM+2N4ofNiY0/G//V4BqXi3zabfuoxrI6
# Zmt7AbPN2KY07BIBq5VYpcRTV6hg5ucCEqC5I2SiTbt8gSVkIb7P7kIYQ5e7pTcG
# r03/JqVNYUvsRkG4Zc64eZ4IlguBjIo7j8eZjKMqbphtXmHGlreKuWEtk7jrDgRD
# 1/X+pvBi1JlqpcHB8GSUgDGCEQ8wghELAgEBMIGAMGwxCzAJBgNVBAYTAlVTMRUw
# EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
# KzApBgNVBAMTIkRpZ2lDZXJ0IEVWIENvZGUgU2lnbmluZyBDQSAoU0hBMikCEAWw
# rKnFqoDiB/Fu+bvQTDkwDQYJYIZIAWUDBAIBBQCggZowGQYJKoZIhvcNAQkDMQwG
# CisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLgYKKwYB
# BAGCNwIBDDEgMB6gHIAaAFMAQQBTAEQALQBQAGgAMwAtADEAMAAyADIwLwYJKoZI
# hvcNAQkEMSIEILuncVcZF+HB0sCKbWAiBejKD9VvbBc5J9zcigRZBTNgMA0GCSqG
# SIb3DQEBAQUABIIBADNHzoCQyXH5POSJ4umlzhUCv8UTA5yunYNWxoqpB66FlA6A
# 4HBs5aL4koWkvamBbPNGCFZv404U0KxkwNeKuIoFcX4cUUFwBldv7UiUCIqQF5+n
# 1TOsn2Yn8FIVXJ3eRrOAH3SZVqzNMm3FOGfqDQ7ncZodOnYF/lz5q3NH0FWaf4tg
# b8tH717fSlggmfnLnz6c7Y3KZsi7SZ/xDVq4Exox78JB+e2bt6kjL1HRe+/9YI6w
# mUhhC8eE6EO/Qrr2X1FUmhCa5jj6DF2sK9XWXS70/LfDwV0bdJyViEAqV1KRZq9H
# nPex+4upUEuxYNh2ED3uk9qWrUMBeNfOrhcyx66hgg7CMIIOvgYKKwYBBAGCNwMD
# ATGCDq4wgg6qBgkqhkiG9w0BBwKggg6bMIIOlwIBAzEPMA0GCWCGSAFlAwQCAQUA
# MIHwBgsqhkiG9w0BCRABBKCB4ASB3TCB2gIBAQYJYIZIhvpsCgMFMDEwDQYJYIZI
# AWUDBAIBBQAEIMkXst/M1XsePonReaec7GeJdncYHGlkri36tYr/H/2/AgZdrm9A
# EV8YETIwMTkxMTA2MTkwMjAxLjZaMASAAgH0oHakdDByMQswCQYDVQQGEwJDQTEQ
# MA4GA1UECBMHT250YXJpbzEPMA0GA1UEBxMGT3R0YXdhMRYwFAYDVQQKEw1FbnRy
# dXN0LCBJbmMuMSgwJgYDVQQDEx9FbnRydXN0IFRpbWUgU3RhbXBpbmcgQXV0aG9y
# aXR5oIIKJDCCBQkwggPxoAMCAQICEQCr3Wdl8lrvUAAAAABVkekMMA0GCSqGSIb3
# DQEBCwUAMIGyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEo
# MCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9sZWdhbC10ZXJtczE5MDcGA1UE
# CxMwKGMpIDIwMTUgRW50cnVzdCwgSW5jLiAtIGZvciBhdXRob3JpemVkIHVzZSBv
# bmx5MSYwJAYDVQQDEx1FbnRydXN0IFRpbWVzdGFtcGluZyBDQSAtIFRTMTAeFw0x
# ODEwMDUyMDMwMjdaFw0zMDAxMDUyMTAwMjdaMHIxCzAJBgNVBAYTAkNBMRAwDgYD
# VQQIEwdPbnRhcmlvMQ8wDQYDVQQHEwZPdHRhd2ExFjAUBgNVBAoTDUVudHJ1c3Qs
# IEluYy4xKDAmBgNVBAMTH0VudHJ1c3QgVGltZSBTdGFtcGluZyBBdXRob3JpdHkw
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrva6Mj0LLlVlcYif5QLj/
# VaJASmX/2+2noYhuQBou2WvVSu0BWWJUxHMWo9aEbu6AQupVCJhwGT8mnsTWpqjr
# q6kkPQtXWGT88NoYMtmx17pzAUsOkTHvvUiaicOC4gl486IbLo3NDu+Js3q68hyY
# M6Vw+HtO7BII7LOfT4xLvtd8gGdW/lw+B9qGoilAGzDKj80XSaLU681eUHIZGXBH
# K50K4IDDKQcBJSRczfYG1B0Rhso19hSkv69uQYMpa5J/RIeM24RQoJG8CVN/9Ky+
# wzeHo8RKCxAzbbcBg/HFR2mfFMPPzfx9ASnjRc6PmY5kqQ08iyDiA4bLVERBN7Xp
# AgMBAAGjggFXMIIBUzAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYB
# BQUHAwgwQQYDVR0gBDowODA2BgpghkgBhvpsCgMFMCgwJgYIKwYBBQUHAgEWGmh0
# dHA6Ly93d3cuZW50cnVzdC5uZXQvcnBhMAkGA1UdEwQCMAAwaAYIKwYBBQUHAQEE
# XDBaMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAzBggrBgEF
# BQcwAoYnaHR0cDovL2FpYS5lbnRydXN0Lm5ldC90czEtY2hhaW4yNTYuY2VyMDEG
# A1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvdHMxY2EuY3Js
# MB8GA1UdIwQYMBaAFMPCcdJ712gFrjs5mzQlDGIDx1doMB0GA1UdDgQWBBQgkHne
# JssV2gdC+4oVDXGeGWiILDANBgkqhkiG9w0BAQsFAAOCAQEAxLJi2bLLqahg20Gm
# 00A9Yb367/eUtUjNbnLVhuUYqbFBiZivBBWrfav1FQLEa8CpSSgtWNdTDFkHNs6q
# C3jpZcDEIxE01MBqmPuB86yYYLT3PgB0cIVyMLbCaTFbPAZuBP9B5EWUXnCKUjsO
# yodhbEBIVg8dwSfq8l5gIPyG+jRXxD/ipUqLuwbzax0JAlDd+BdL0nQhrPmfSffs
# Stg6VflV6cWPbSIEWUpTPR1Toqoze20BFb5+pbqfslHdd3HYsYLqWX2NrT5NRoz+
# OCWn/KTeE77+ENLwljfljxyprNPYam6lVtwmWulfgd2QT5hpiE3PgpSqYvWfBOb9
# v2aawjCCBRMwggP7oAMCAQICDFjaE/8AAAAAUc4N9zANBgkqhkiG9w0BAQsFADCB
# tDEUMBIGA1UEChMLRW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5l
# dC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNV
# BAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1
# c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw0xNTA3MjIx
# OTAyNTRaFw0yOTA2MjIxOTMyNTRaMIGyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
# RW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9sZWdh
# bC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMTUgRW50cnVzdCwgSW5jLiAtIGZvciBh
# dXRob3JpemVkIHVzZSBvbmx5MSYwJAYDVQQDEx1FbnRydXN0IFRpbWVzdGFtcGlu
# ZyBDQSAtIFRTMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANkj5hSk
# 6HxLhXFY+/iB5nKLXUbDiAAfONCK4dZuVjDlr9pkUH3CEzn7vWa02oT7g9AoH8t2
# 6GBQaZvzzk8T4sE+wd8SyzKj+F5EIg7MOumNSblgdMjeVD1BXkNfKEapprfKECsi
# vFtNW4wXZRKG/Sx31cWgjMrCg+BHV3zncK5iRScxGArUwKQYVVL3YMYES7PdaDJu
# EB80EbgSeGTx7qng9+OxIo80WmXLivThRVB035OXpjTm0Ew7nzdJUqdTTp8uZ1zt
# lvylv3RRiOOqjr3ZsS9fUDAW9FFgImuZy//hVDu5+0Q4pQg5I5tpR/o8xNDnqt9G
# suzyihmsKbI4lXUCAwEAAaOCASMwggEfMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD
# VR0PAQH/BAQDAgEGMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsGAQUFBwIBFhpo
# dHRwOi8vd3d3LmVudHJ1c3QubmV0L3JwYTAzBggrBgEFBQcBAQQnMCUwIwYIKwYB
# BQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3QubmV0MDIGA1UdHwQrMCkwJ6AloCOG
# IWh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvMjA0OGNhLmNybDATBgNVHSUEDDAKBggr
# BgEFBQcDCDAdBgNVHQ4EFgQUw8Jx0nvXaAWuOzmbNCUMYgPHV2gwHwYDVR0jBBgw
# FoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQELBQADggEBAB0k55p0
# W6pw/LEOMUXXLAB/ZjoroJo0qqxjbYn5n98Nd/0kI/xPnLdvj/P0H7bB/dYcxIyI
# ZsFjjbpXd9O4Gh7IUa3MYDYah2oo6hFl3sw8LIx0t+hQQ9PMKOgVbBEqnxSVKckF
# V7VnNug8qYPvQcEhFtN+9y0RR2Z2YIISaYx2VXMP3y9LXelsI/gH9rV91mlFnFh9
# YS78eEtDTomRRkQsoFOoRaH2Fli7kRPyS8XfC8Dnril6vUWz53Aw5zSO63r207XR
# 3msTmUazi9JNk3W18W+/3AAowiW/vOejZTTsPw0dl4z6qogipBg12wWOduMQyCmP
# Y9CurBjZ2sSfURIxggNkMIIDYAIBATCByDCBsjELMAkGA1UEBhMCVVMxFjAUBgNV
# BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQv
# bGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDE1IEVudHJ1c3QsIEluYy4gLSBm
# b3IgYXV0aG9yaXplZCB1c2Ugb25seTEmMCQGA1UEAxMdRW50cnVzdCBUaW1lc3Rh
# bXBpbmcgQ0EgLSBUUzECEQCr3Wdl8lrvUAAAAABVkekMMA0GCWCGSAFlAwQCAQUA
# oIIBbDAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIE
# II8aGhXXlTogCVor0Wp7gqeDLcntdCo7XAdCPc0XBT/IMIIBGwYLKoZIhvcNAQkQ
# AgwxggEKMIIBBjCCAQIwgecEFMD1lBdladeAqw7P39viqcGvZE7eMIHOMIG4pIG1
# MIGyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UE
# CxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMp
# IDIwMTUgRW50cnVzdCwgSW5jLiAtIGZvciBhdXRob3JpemVkIHVzZSBvbmx5MSYw
# JAYDVQQDEx1FbnRydXN0IFRpbWVzdGFtcGluZyBDQSAtIFRTMQIRAKvdZ2XyWu9Q
# AAAAAFWR6QwwFgQUl56dp/eWIz8hDI7tFm3vNgQMRo4wDQYJKoZIhvcNAQELBQAE
# ggEAKvDqaxsrXrwEUNWFG/HFvR2e24/TcklbRBhHhVZ0Dt46h80I052zDmTcLS86
# rGt11lGueIqp5qSApkS+l11GltVMXNVCssdADrdwmUl+50PvmqYjn9bVtd7tsK3R
# 9ZSFNUbMj243Z0wA0xrCd3155ZUG0nnW068lA++JKGPSvHrzNuiShxf1rFO5scD1
# 41cDqUJuTwIqOf9zuVjLAm9BDZSfXwR0QKHfLik628ySwqd2DIWQ8Ku1awRtKDDx
# 61oT2L+LH7yzSkZXSMsdTbyTgGPC7zhEtSlSP66CDFDLYtzlxW3vMTk+oWasd24t
# 25pt0X6x2AFci27+5MECzGoh/Q==
# SIG # End signature block