DSCResources/Cisco_UcsSyncFromBackup/Cisco_UcsSyncFromBackup.psm1

# DSC uses the Get-TargetResource function to fetch the status of the resource instance specified in the parameters for the target machine
function Get-TargetResource 
{
    [CmdletBinding()]
    [OutputType([System.Collections.Hashtable])]
    param 
    (       
        [parameter(Mandatory = $true)]
        [System.String]
        $UcsConnectionString,

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

        [System.Management.Automation.PSCredential]
        $WebProxyCredentials,

        [ValidateSet("Present", "Absent")]
        [string]$Ensure = "Absent",
        
        [parameter(Mandatory = $true)]
        [System.String]$Identifier,
      
        [Parameter(Mandatory)]
        [string]$LiteralPath,

        [bool]$Merge
              
    )
       $result = @{     UcsConnectionString = $UcsConnectionString;
                        UcsCredentials = $null;
                        WebProxyCredentials=$null;
                        Ensure=$Ensure;
                        Identifier = $Identifier; 
                        LiteralPath = $LiteralPath;
                        Merge= $Merge;

                  }

        Write-Verbose("Completed execution of Get() method")
        $result;
} 


# The Set-TargetResource function.
function Set-TargetResource 
{
    [CmdletBinding(SupportsShouldProcess=$true)]
  param 
    (       
        [parameter(Mandatory = $true)]
        [System.String]
        $UcsConnectionString,

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

        [System.Management.Automation.PSCredential]
        $WebProxyCredentials,

        [ValidateSet("Present", "Absent")]
        [string]$Ensure = "Absent",
        
        [parameter(Mandatory = $true)]
        [System.String] $Identifier,

        [Parameter(Mandatory)]
        [string]$LiteralPath,

        [bool]$Merge
              
    )

    Write-Verbose("Started execution of Set() method")
    try
    {
        <# #>
        if($Ensure -eq "Present" )
        {
            Write-Verbose("Connection to target UCS...")
            $handle=  Get-UcsConnection -UcsConnectionString $UcsConnectionString -UcsCredentials $UcsCredentials -WebProxyCredentials $WebProxyCredentials

            if($Merge)
            {
                Write-Verbose("Executing cmdlet: Import-UcsBackup -LiteralPath $LiteralPath -Merge")
                Import-UcsBackup -LiteralPath $LiteralPath -Merge -Ucs $handle
            }
            else
            {
                Write-Verbose("Executing cmdlet: Import-UcsBackup -LiteralPath $LiteralPath")
                Import-UcsBackup -LiteralPath $LiteralPath -Ucs $handle
            }



         }
         elseif($Ensure -eq "Absent" )
        {
            Write-Verbose("Ensure ='Absent'. No further processing required.")
        }
    }
    catch
    {
        Write-Verbose("Error occurred in Set-TargetResoucrce. Disconnecting UCS(s)...")
        if($handle -ne $null)
            {$temp = Disconnect-Ucs -Ucs $handle}

        throw
    }     
    Write-Verbose("Completed execution of Set() method")
} 

function Test-TargetResource
{
[CmdletBinding()]
[OutputType([System.Boolean])]
param 
    (       
        [parameter(Mandatory = $true)]
        [System.String]
        $UcsConnectionString,

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

        [System.Management.Automation.PSCredential]
        $WebProxyCredentials,

        [ValidateSet("Present", "Absent")]
        [string]$Ensure = "Absent",
        
        [parameter(Mandatory = $true)]
        [System.String] $Identifier,

        [Parameter(Mandatory)]
        [string]$LiteralPath,

        [bool]$Merge
              
    )
       Write-Verbose("Started execution of Test-TargetResource method")

        $result = $false
         
        Write-Verbose("Completed execution of Test-TargetResource method")

        return $result 
} 

# SIG # Begin signature block
# MIIeQQYJKoZIhvcNAQcCoIIeMjCCHi4CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBiQuwdSctlvXp1
# T9xZ7MjwpbI4p6vcOEjnwMMpTidKYaCCDIYwggXCMIIEqqADAgECAhAFsKypxaqA
# 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+pvBi1JlqpcHB8GSUgDGCEREwghENAgEBMIGAMGwxCzAJBgNVBAYTAlVTMRUw
# EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
# KzApBgNVBAMTIkRpZ2lDZXJ0IEVWIENvZGUgU2lnbmluZyBDQSAoU0hBMikCEAWw
# rKnFqoDiB/Fu+bvQTDkwDQYJYIZIAWUDBAIBBQCggZowGQYJKoZIhvcNAQkDMQwG
# CisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLgYKKwYB
# BAGCNwIBDDEgMB6gHIAaAFMAQQBTAEQALQBQAGgAMwAtADEAMAAyADIwLwYJKoZI
# hvcNAQkEMSIEIF53O5coo9tD3kpJaJ1l3SBHjpr5HU3srC0yeP+JfR74MA0GCSqG
# SIb3DQEBAQUABIIBAAuLrd+qlMbNytgbBztPudeMSLyCGusQ5RNw7V9jYgjjFOod
# iaIYmimuQnS6vOz7riqtiLH9SUcV3BRoj/lvXW9wJ3lNzNg66xjChHpFx/hI3jHS
# sCtvscTKG6Rp5IOYakEv8HGNPgjWpciD+/lCmOqD9ewTsS/z1emZh93h7U9WyUeh
# 4hZfujChhunxq0sI6BUyV8TBds6F/EjphbfRg//eh1iIb/9xxX0TvGgQ1o8jEhZM
# ISZIDY6zXSdfen9Kr8D1id06d1dZuBNEXVN2c+oPSoabo079FtKUoLxnhJB18LS+
# eLTeGgDTXxAPtSS/7dUkfzt8S9p0ioc1344Bpcahgg7EMIIOwAYKKwYBBAGCNwMD
# ATGCDrAwgg6sBgkqhkiG9w0BBwKggg6dMIIOmQIBAzEPMA0GCWCGSAFlAwQCAQUA
# MIHyBgsqhkiG9w0BCRABBKCB4gSB3zCB3AIBAQYJYIZIhvpsCgMFMDEwDQYJYIZI
# AWUDBAIBBQAEII5rvkmKSOEbyo2dnc1LbSIT4Buf3YBw4XqnHGJ0TtjOAgZdrm9A
# EjsYEzIwMTkxMTA2MTkwNDAyLjY4NVowBIACAfSgdqR0MHIxCzAJBgNVBAYTAkNB
# MRAwDgYDVQQIEwdPbnRhcmlvMQ8wDQYDVQQHEwZPdHRhd2ExFjAUBgNVBAoTDUVu
# dHJ1c3QsIEluYy4xKDAmBgNVBAMTH0VudHJ1c3QgVGltZSBTdGFtcGluZyBBdXRo
# b3JpdHmgggokMIIFCTCCA/GgAwIBAgIRAKvdZ2XyWu9QAAAAAFWR6QwwDQYJKoZI
# hvcNAQELBQAwgbIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
# MSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYD
# VQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNl
# IG9ubHkxJjAkBgNVBAMTHUVudHJ1c3QgVGltZXN0YW1waW5nIENBIC0gVFMxMB4X
# DTE4MTAwNTIwMzAyN1oXDTMwMDEwNTIxMDAyN1owcjELMAkGA1UEBhMCQ0ExEDAO
# BgNVBAgTB09udGFyaW8xDzANBgNVBAcTBk90dGF3YTEWMBQGA1UEChMNRW50cnVz
# dCwgSW5jLjEoMCYGA1UEAxMfRW50cnVzdCBUaW1lIFN0YW1waW5nIEF1dGhvcml0
# eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu9royPQsuVWVxiJ/lA
# uP9VokBKZf/b7aehiG5AGi7Za9VK7QFZYlTEcxaj1oRu7oBC6lUImHAZPyaexNam
# qOurqSQ9C1dYZPzw2hgy2bHXunMBSw6RMe+9SJqJw4LiCXjzohsujc0O74mzerry
# HJgzpXD4e07sEgjss59PjEu+13yAZ1b+XD4H2oaiKUAbMMqPzRdJotTrzV5QchkZ
# cEcrnQrggMMpBwElJFzN9gbUHRGGyjX2FKS/r25Bgylrkn9Eh4zbhFCgkbwJU3/0
# rL7DN4ejxEoLEDNttwGD8cVHaZ8Uw8/N/H0BKeNFzo+ZjmSpDTyLIOIDhstUREE3
# tekCAwEAAaOCAVcwggFTMA4GA1UdDwEB/wQEAwIHgDAWBgNVHSUBAf8EDDAKBggr
# BgEFBQcDCDBBBgNVHSAEOjA4MDYGCmCGSAGG+mwKAwUwKDAmBggrBgEFBQcCARYa
# aHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwCQYDVR0TBAIwADBoBggrBgEFBQcB
# AQRcMFowIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3QubmV0MDMGCCsG
# AQUFBzAChidodHRwOi8vYWlhLmVudHJ1c3QubmV0L3RzMS1jaGFpbjI1Ni5jZXIw
# MQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC5lbnRydXN0Lm5ldC90czFjYS5j
# cmwwHwYDVR0jBBgwFoAUw8Jx0nvXaAWuOzmbNCUMYgPHV2gwHQYDVR0OBBYEFCCQ
# ed4myxXaB0L7ihUNcZ4ZaIgsMA0GCSqGSIb3DQEBCwUAA4IBAQDEsmLZssupqGDb
# QabTQD1hvfrv95S1SM1uctWG5RipsUGJmK8EFat9q/UVAsRrwKlJKC1Y11MMWQc2
# zqoLeOllwMQjETTUwGqY+4HzrJhgtPc+AHRwhXIwtsJpMVs8Bm4E/0HkRZRecIpS
# Ow7Kh2FsQEhWDx3BJ+ryXmAg/Ib6NFfEP+KlSou7BvNrHQkCUN34F0vSdCGs+Z9J
# 9+xK2DpV+VXpxY9tIgRZSlM9HVOiqjN7bQEVvn6lup+yUd13cdixgupZfY2tPk1G
# jP44Jaf8pN4Tvv4Q0vCWN+WPHKms09hqbqVW3CZa6V+B3ZBPmGmITc+ClKpi9Z8E
# 5v2/ZprCMIIFEzCCA/ugAwIBAgIMWNoT/wAAAABRzg33MA0GCSqGSIb3DQEBCwUA
# MIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3Qu
# bmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMG
# A1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50
# cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMB4XDTE1MDcy
# MjE5MDI1NFoXDTI5MDYyMjE5MzI1NFowgbIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
# Ew1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xl
# Z2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9y
# IGF1dGhvcml6ZWQgdXNlIG9ubHkxJjAkBgNVBAMTHUVudHJ1c3QgVGltZXN0YW1w
# aW5nIENBIC0gVFMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2SPm
# FKTofEuFcVj7+IHmcotdRsOIAB840Irh1m5WMOWv2mRQfcITOfu9ZrTahPuD0Cgf
# y3boYFBpm/POTxPiwT7B3xLLMqP4XkQiDsw66Y1JuWB0yN5UPUFeQ18oRqmmt8oQ
# KyK8W01bjBdlEob9LHfVxaCMysKD4EdXfOdwrmJFJzEYCtTApBhVUvdgxgRLs91o
# Mm4QHzQRuBJ4ZPHuqeD347EijzRaZcuK9OFFUHTfk5emNObQTDufN0lSp1NOny5n
# XO2W/KW/dFGI46qOvdmxL19QMBb0UWAia5nL/+FUO7n7RDilCDkjm2lH+jzE0Oeq
# 30ay7PKKGawpsjiVdQIDAQABo4IBIzCCAR8wEgYDVR0TAQH/BAgwBgEB/wIBADAO
# BgNVHQ8BAf8EBAMCAQYwOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEW
# Gmh0dHA6Ly93d3cuZW50cnVzdC5uZXQvcnBhMDMGCCsGAQUFBwEBBCcwJTAjBggr
# BgEFBQcwAYYXaHR0cDovL29jc3AuZW50cnVzdC5uZXQwMgYDVR0fBCswKTAnoCWg
# I4YhaHR0cDovL2NybC5lbnRydXN0Lm5ldC8yMDQ4Y2EuY3JsMBMGA1UdJQQMMAoG
# CCsGAQUFBwMIMB0GA1UdDgQWBBTDwnHSe9doBa47OZs0JQxiA8dXaDAfBgNVHSME
# GDAWgBRV5IHREYC+2Im5CKMx+aEkCRa5cDANBgkqhkiG9w0BAQsFAAOCAQEAHSTn
# mnRbqnD8sQ4xRdcsAH9mOiugmjSqrGNtifmf3w13/SQj/E+ct2+P8/QftsH91hzE
# jIhmwWONuld307gaHshRrcxgNhqHaijqEWXezDwsjHS36FBD08wo6BVsESqfFJUp
# yQVXtWc26Dypg+9BwSEW0373LRFHZnZgghJpjHZVcw/fL0td6Wwj+Af2tX3WaUWc
# WH1hLvx4S0NOiZFGRCygU6hFofYWWLuRE/JLxd8LwOeuKXq9RbPncDDnNI7revbT
# tdHeaxOZRrOL0k2TdbXxb7/cACjCJb+856NlNOw/DR2XjPqqiCKkGDXbBY524xDI
# KY9j0K6sGNnaxJ9REjGCA2QwggNgAgEBMIHIMIGyMQswCQYDVQQGEwJVUzEWMBQG
# A1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5l
# dC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMTUgRW50cnVzdCwgSW5jLiAt
# IGZvciBhdXRob3JpemVkIHVzZSBvbmx5MSYwJAYDVQQDEx1FbnRydXN0IFRpbWVz
# dGFtcGluZyBDQSAtIFRTMQIRAKvdZ2XyWu9QAAAAAFWR6QwwDQYJYIZIAWUDBAIB
# BQCgggFsMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQx
# IgQg/80FZji55itSGFAX80XJaT9ZdGZH19d5BZDegXzehc4wggEbBgsqhkiG9w0B
# CRACDDGCAQowggEGMIIBAjCB5wQUwPWUF2Vp14CrDs/f2+Kpwa9kTt4wgc4wgbik
# gbUwgbIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYD
# VQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAo
# YykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkx
# JjAkBgNVBAMTHUVudHJ1c3QgVGltZXN0YW1waW5nIENBIC0gVFMxAhEAq91nZfJa
# 71AAAAAAVZHpDDAWBBSXnp2n95YjPyEMju0Wbe82BAxGjjANBgkqhkiG9w0BAQsF
# AASCAQB+jWGkQFra03jDBkQexkwA9ocAZo2wYjc/PIqVlsZ49ABgqXeR63X5XDw3
# PhL3gm3tIlvEzRiFi/RZMtcHyryFo6/dYswxr98DeoSErWjnZCzs8eCGZokKgHDZ
# uyTRnmlx823ML2QqYJwvcBCcVRSfU5zTj7WvXRXdD/r2c0glPsdm4ivn54/GztGD
# Bs+ykjUyOhD63ljmmdJB33JUbp2LteOCUmNEp4dzAp2jXfRSy9O80gvAJB70D2H5
# 5hF1HR14JyG6FiHa8wiyRryoz8SGFgrJcj01Zl/bRi1L733a1q1//XTptP6nQ5M7
# ZRioR43M0mWiQ04wBdrq8U8ngxti
# SIG # End signature block