Write-Host "Applying patch for log4j mitigations ..."

#set all vars
$path = 'HKLM:\SYSTEM\CurrentControlSet\Services\PCNS1\Parameters'
$directoryKey = 'AppDirectory'
$service = 'pcns1'
$pcnsJar = "pcns.jar"
$filesFolder = ".\files\*"
$libFolder = "lib"
$log4JWildcard = 'log4j*.jar'

try {
    $installDir = (Get-ItemProperty -Path $path -Name $directoryKey -ErrorAction Stop).$directoryKey
} catch {
    Write-Host "Unable to detect Powerchute Network Shutdown installation. Please run this patch on a system with PowerChute Network Shutdown."
    Write-Error $_
    Throw "No PowerChute Network Shutdown detected."
}

#build the path to the PCNS jar
$compPath =  Join-Path -Path $installDir -ChildPath 'comp'

#build the path to the log4J jar with wildcard for all versions
$libPath = Join-Path -Path $installDir -ChildPath $libFolder

#stop the service before updating the jars
Write-Host "Stopping PowerChute service"
Stop-Service -Name $service

Write-Host "Replacing existing libraries with mitigated versions"

try {
    #find the log4J jar(s) to remove with the wildcard lookup
    $log4JJarList = Get-ChildItem -Recurse -Path $libPath -Include @("log4j*2.2.jar", "log4j*2.10.0.jar", "log4j*2.13.3.jar", "jetty*9.4.12.v20180830.jar", "commons-compress-*.jar")
    foreach($log4JJar in $log4JJarList) {
        Write-Host "Removing $log4JJar"
        Remove-Item $log4JJar
    }

    Write-Host "Copying libraries to PowerChute installation"
    Copy-Item -Path $filesFolder -Exclude @($pcnsJar) -Destination $libPath

    Write-Host "Patching PowerChute service"
    Copy-Item -Path $filesFolder -Include @($pcnsJar) -Destination $compPath

} catch  {
        Write-Host "An error occurred:"
        Write-Error $_
        Write-Host "Could not apply patch! Please run the patch again when the problem is resolved."
        Throw "Patch not applied"
} 

Write-Host "Patch applied to PowerChute, starting PowerChute service"
Start-Service -Name $service
# SIG # Begin signature block
# MIIi5gYJKoZIhvcNAQcCoIIi1zCCItMCAQExDTALBglghkgBZQMEAgEweQYKKwYB
# BAGCNwIBBKBrMGkwNAYKKwYBBAGCNwIBHjAmAgMBAAAEEB/MO2BZSwhOtyTSxil+
# 81ECAQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQgMQNUHrEmh2DZli0+
# g50+3Hr7HLExt26H49RX8l7Z4v+gggqXMIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1
# U0O1b5VQCDANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMM
# RGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQD
# ExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcN
# MjgxMDIyMTIwMDAwWjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQg
# SW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2Vy
# dCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMIIBIjANBgkqhkiG9w0B
# AQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8OEa9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid
# 2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq8JyGpdglrA55KDp+6dFn08b7KSfH03sj
# lOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRpwsJS8hRniolF1C2ho+mILCCVrhxKhwjf
# DPXiTWAYvqrEsq5wMWYzcT6scKKrzn/pfMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzL
# fnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR
# 93O8vYWxYoNzQYIH5DiLanMg0A9kczyen6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckw
# EgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYI
# KwYBBQUHAwMweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz
# cC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2lj
# ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgw
# OqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
# RFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdp
# Q2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwTwYDVR0gBEgwRjA4BgpghkgBhv1sAAIE
# MCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYI
# YIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsqCqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQY
# MBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1a
# JLPzItEVyCx8JSl2qB1dHC06GsTvMGHXfgtg/cM9D8Svi/3vKt8gVTew4fbRknUP
# UbRupY5a4l4kgU4QpO4/cY5jDhNLrddfRHnzNhQGivecRk5c/5CxGwcOkRX7uq+1
# UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8AlEeKcFEehemhor5unXCBc2XGxDI+7qPjF
# Emifz0DLQESlE/DmZAwlCEIysjaKJAL+L3J+HNdJRZboWR3p+nRka7LrZkPas7CM
# 1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhs
# RDKyZqHnGKSaZFHvMIIFXzCCBEegAwIBAgIQDwYI/9sLq5wBNI0+ExI3mzANBgkq
# hkiG9w0BAQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j
# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBT
# SEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTIxNTAwMDAwMFoX
# DTIzMTIxOTIzNTk1OVowgZsxCzAJBgNVBAYTAlVTMRYwFAYDVQQIEw1NYXNzYWNo
# dXNldHRzMRAwDgYDVQQHEwdBbmRvdmVyMSUwIwYDVQQKExxTQ0hORUlERVIgRUxF
# Q1RSSUMgVVNBLCBJTkMuMRQwEgYDVQQLEwtNUyBFbmVyZ3kgMjElMCMGA1UEAxMc
# U0NITkVJREVSIEVMRUNUUklDIFVTQSwgSU5DLjCCASIwDQYJKoZIhvcNAQEBBQAD
# ggEPADCCAQoCggEBAJVoM52qTmoKjyGYbX+MmQcQUdlK7p5Mwdd0aPa6EMauwcJm
# vS0VzC3xSIUNZqR1opkyF9P8BFXl/hAt1SahGd419qEwJqarBqfsZbC1l+6k3OUr
# hukaP0koT/RCC+SPomYrha5Ve7yP2JZqdKBkO27j8sEFtCpcCkSUlU1alD4Bf0GL
# Ig1TyJcZiObv+eV9nctC4adVU6ihj19Ih6Udy7ub48EdoGKh3o4A7FTqppxTGOBi
# mgs291Zeele7e4fZPHVvKa8GVbh+NgNHP6o4gc0xAYAkyIobiEbe9rn0OgaPPQ+z
# oq2uOCSvY4fAEJX9Q7y5R7UZh+1LGCLOuh9CweECAwEAAaOCAcUwggHBMB8GA1Ud
# IwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZldQ5YMB0GA1UdDgQWBBQJPbX4R+LB42lr
# rh3e4okAHCS8sjAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMw
# dwYDVR0fBHAwbjA1oDOgMYYvaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NoYTIt
# YXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGGL2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNv
# bS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9bAMB
# MCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYG
# Z4EMAQQBMIGEBggrBgEFBQcBAQR4MHYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3Nw
# LmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcwAoZCaHR0cDovL2NhY2VydHMuZGlnaWNl
# cnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3VyZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwG
# A1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggEBAEVLR8AbjGZQ+Uk30vsd5LcQ
# J+8v06BuT2roxJSMx1z5cOFCJZ2RXz7ahEYYJ2n7Qn92HxC7LcP1Pf1ytv/z9iPb
# 2/h0Ry6l+wIZjKcrORqK95auj+Jau8HZYzsEMF8OPrEITW4McF3m17tAgQABzfM8
# RwqKVdtTDplNO6NGA6PjYA2rgK+5vOKlKmBmFjXwdsPqSX6nsJZIo3QObMYjpjkN
# hNPqA3D2xP30O4Yw5N2x36BqVnkqd6CrfMPEw5R8MIjml9XXLHXq3tGzHHtoMuuo
# JHvS1SAZS9b8lUBpUnXR/PbNAN55+ON9JLQ7UO5a7vLsnL4TYOPa3y67c5f6VvUx
# ghenMIIXowIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQg
# SW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2Vy
# dCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBAhAPBgj/2wurnAE0jT4T
# EjebMAsGCWCGSAFlAwQCAaCBxzAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0B
# CQMxDAYKKwYBBAGCNwIBBDAcBgkqhkiG9w0BCQUxDxcNMjIwNDE1MDk0MjM0WjAc
# BgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTArBgkqhkiG9w0BCTQxHjAcMAsG
# CWCGSAFlAwQCAaENBgkqhkiG9w0BAQsFADAvBgkqhkiG9w0BCQQxIgQg93eg6lSB
# 2MGq/Xvx85iMn76oqlu37bESMGV7j2AFUpYwDQYJKoZIhvcNAQELBQAEggEAWTMC
# udL8FdOLgX3ccdVNtLYUw6GpCWyk70HqKfvIHDmMQdCvXRohOgTdVBhRH8ndcjRr
# pT3E5ojEYWrJyM4XQiC5Eg7Xu7UdiGgUeCAJw+7jAJ+TFGZ8SDFSv+pioy4Umgcl
# jDDdMKM3cwRgAkCYHl/JrB1Quhi2C9EVP7Ubv7EBimGQ5tbpC/w/9uROJUVCmNmL
# AyX2/C6kWiyJpRTDxx1iyd2204VNrVAXbnrTo0BXRLQ/tiUuIzvMp7Q+FLJl6QBB
# 6QXHjMrAbtsWqZBy6G9w/SJEUNfMa8U0kkEXGXDVfwwaePf1PC/Z3UIwn7TY2Szj
# M5r7utTY9PgHui8lh6GCFSkwghUlBgorBgEEAYI3AwMBMYIVFTCCFREGCSqGSIb3
# DQEHAqCCFQIwghT+AgEDMQ0wCwYJYIZIAWUDBAIBMIHyBgsqhkiG9w0BCRABBKCB
# 4gSB3zCB3AIBAQYKYIZIAYb6bAoDBTAvMAsGCWCGSAFlAwQCAQQgUwSIecT4Oqtp
# QHvTFnRDryDdxdOOnE2AopeB7tAPH6ICCQCKqdmssiZxERgPMjAyMjA0MTUwOTQ0
# MzZaMAMCAQGgeaR3MHUxCzAJBgNVBAYTAkNBMRAwDgYDVQQIEwdPbnRhcmlvMQ8w
# DQYDVQQHEwZPdHRhd2ExFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKzApBgNVBAMT
# IkVudHJ1c3QgVGltZXN0YW1wIEF1dGhvcml0eSAtIFRTQTGggg9VMIIEKjCCAxKg
# AwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
# ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5
# IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3Qu
# bmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24g
# QXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3MjQxNDE1MTJa
# MIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3Qu
# bmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMG
# A1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50
# cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkq
# hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7t
# gHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQesYGpjX24zGtL
# A/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuXMlBvPci6Zgzj
# /L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzWnLLPKQP5
# L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8A
# jhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0Iw
# QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB
# 0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6
# eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExoU8aAghOY+rat
# 2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6YfzX1XEC+bBAla
# hLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
# J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerX
# mCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8
# gzURZVEwggUTMIID+6ADAgECAgxY2hP/AAAAAFHODfcwDQYJKoZIhvcNAQELBQAw
# gbQxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAwPgYDVQQLFDd3d3cuZW50cnVzdC5u
# ZXQvQ1BTXzIwNDggaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYD
# VQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVkMTMwMQYDVQQDEypFbnRy
# dXN0Lm5ldCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAoMjA0OCkwHhcNMTUwNzIy
# MTkwMjU0WhcNMjkwNjIyMTkzMjU0WjCBsjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
# DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
# YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDE1IEVudHJ1c3QsIEluYy4gLSBmb3Ig
# YXV0aG9yaXplZCB1c2Ugb25seTEmMCQGA1UEAxMdRW50cnVzdCBUaW1lc3RhbXBp
# bmcgQ0EgLSBUUzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZI+YU
# pOh8S4VxWPv4geZyi11Gw4gAHzjQiuHWblYw5a/aZFB9whM5+71mtNqE+4PQKB/L
# duhgUGmb885PE+LBPsHfEssyo/heRCIOzDrpjUm5YHTI3lQ9QV5DXyhGqaa3yhAr
# IrxbTVuMF2UShv0sd9XFoIzKwoPgR1d853CuYkUnMRgK1MCkGFVS92DGBEuz3Wgy
# bhAfNBG4Enhk8e6p4PfjsSKPNFply4r04UVQdN+Tl6Y05tBMO583SVKnU06fLmdc
# 7Zb8pb90UYjjqo692bEvX1AwFvRRYCJrmcv/4VQ7uftEOKUIOSObaUf6PMTQ56rf
# RrLs8ooZrCmyOJV1AgMBAAGjggEjMIIBHzASBgNVHRMBAf8ECDAGAQH/AgEAMA4G
# A1UdDwEB/wQEAwIBBjA7BgNVHSAENDAyMDAGBFUdIAAwKDAmBggrBgEFBQcCARYa
# aHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwMwYIKwYBBQUHAQEEJzAlMCMGCCsG
# AQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAyBgNVHR8EKzApMCegJaAj
# hiFodHRwOi8vY3JsLmVudHJ1c3QubmV0LzIwNDhjYS5jcmwwEwYDVR0lBAwwCgYI
# KwYBBQUHAwgwHQYDVR0OBBYEFMPCcdJ712gFrjs5mzQlDGIDx1doMB8GA1UdIwQY
# MBaAFFXkgdERgL7YibkIozH5oSQJFrlwMA0GCSqGSIb3DQEBCwUAA4IBAQAdJOea
# dFuqcPyxDjFF1ywAf2Y6K6CaNKqsY22J+Z/fDXf9JCP8T5y3b4/z9B+2wf3WHMSM
# iGbBY426V3fTuBoeyFGtzGA2GodqKOoRZd7MPCyMdLfoUEPTzCjoFWwRKp8UlSnJ
# BVe1ZzboPKmD70HBIRbTfvctEUdmdmCCEmmMdlVzD98vS13pbCP4B/a1fdZpRZxY
# fWEu/HhLQ06JkUZELKBTqEWh9hZYu5ET8kvF3wvA564per1Fs+dwMOc0jut69tO1
# 0d5rE5lGs4vSTZN1tfFvv9wAKMIlv7zno2U07D8NHZeM+qqIIqQYNdsFjnbjEMgp
# j2PQrqwY2drEn1ESMIIGDDCCBPSgAwIBAgIRAI3OFfOnlMWHAAAAAFWSM/QwDQYJ
# KoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJ
# bmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkw
# NwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
# dXNlIG9ubHkxJjAkBgNVBAMTHUVudHJ1c3QgVGltZXN0YW1waW5nIENBIC0gVFMx
# MB4XDTIwMDcyMjE1MzMyOVoXDTMwMTIyOTE2MjkyM1owdTELMAkGA1UEBhMCQ0Ex
# EDAOBgNVBAgTB09udGFyaW8xDzANBgNVBAcTBk90dGF3YTEWMBQGA1UEChMNRW50
# cnVzdCwgSW5jLjErMCkGA1UEAxMiRW50cnVzdCBUaW1lc3RhbXAgQXV0aG9yaXR5
# IC0gVFNBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMo+7CRi4ff+
# 39E2qTdm1nkXFJRCAKSGl7gnjOtPqffTruKrMAQIKF+bU6aHii3dAlJftbjltlDw
# nKsSwe4aVniKbkQ/qYqP19tT2cZHyAzcRlcAZwYXGoW3QKqvdgfnkF+UktWu1tfN
# eaHFNStEhF9JHNVzuIGNcpQCaqnPVpKqNpTDUMlWl4hc4X9f/fvfFI49qyQN9nuP
# avpuHvqVvX2Q+ORCFL9VXgRUkzFD98PnwgURaKxAaccjN+xaTCnJ3zWzfklOxnrb
# zsIllJ43P4jsJE05j3/vFWtUTHHxDSF8WnXQh1OJoFvgHfucB8CoobQi0GKkxxd/
# N07OLTpY4+XwJoZNQgefvqPiGaJrcqVGv8tkWyXIRfTe6Dy2/ZzzoO+DQXw2cJDD
# UmKwx389e+WWh6VW/w7qSQXftN0Tb0XTm8gjeSowmZ2Z3MzNpS6BU1Ii8tA9ojdS
# kZFGcNbFSwX/TvTcZAaX/nyQhievnzRVSImrIsB1B4wh2QTTHKfqbaTJUivixAKJ
# MF7nmzHmOWWtca3vZ1vcoyTtDebiqXo6GFXe8EYuNE0aTZiADU7RbIV1uAPCANUi
# SibRjt3ttdQn1jp8Z2mG11Q/l89kvpGrbradGRB5tZcO9NGFyeSux8C0qgfEH8E6
# V5/NDqZ65RWGsqr0opMsz4z3UfrdjNBJAgMBAAGjggFXMIIBUzAOBgNVHQ8BAf8E
# BAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwQQYDVR0gBDowODA2BgpghkgB
# hvpsCgMFMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly93d3cuZW50cnVzdC5uZXQvcnBh
# MAkGA1UdEwQCMAAwaAYIKwYBBQUHAQEEXDBaMCMGCCsGAQUFBzABhhdodHRwOi8v
# b2NzcC5lbnRydXN0Lm5ldDAzBggrBgEFBQcwAoYnaHR0cDovL2FpYS5lbnRydXN0
# Lm5ldC90czEtY2hhaW4yNTYuY2VyMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9j
# cmwuZW50cnVzdC5uZXQvdHMxY2EuY3JsMB8GA1UdIwQYMBaAFMPCcdJ712gFrjs5
# mzQlDGIDx1doMB0GA1UdDgQWBBQtVoDvjvdKQxxDobXe2deoqmsmKDANBgkqhkiG
# 9w0BAQsFAAOCAQEAWEvO2P6B11HYx1yNktJOlR6FhkPt4BrmmiFCM13jkb74UHx2
# jCWpQdSEmejooraZl2iiIL0yqKopfAp2Gp/IVY6r03vU435ZfpJwOQ/t9i/zT/90
# XPPnMDRAoxGja3KkMhEFfP2Ri0eoVzZSx/q1RYTRsj5C5RZe3QPTqf09cGd62hPg
# hIJnOGBWw62wiOEKN35igQa7IwTvWKAjqNEJYzDN2Rk49Otad1i+X7/rlC3/LwQw
# ZBCPPllWLjo2Tw48lg+Pyep+f0kyH6Nfbtoin9fZFzlZ3kgXegJLWHH/twwtofBn
# oxHc98m82R7LbAwVJ3hIFmss8a2XuHVsu5XDjjGCBJowggSWAgEBMIHIMIGyMQsw
# CQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2Vl
# IHd3dy5lbnRydXN0Lm5ldC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMTUg
# RW50cnVzdCwgSW5jLiAtIGZvciBhdXRob3JpemVkIHVzZSBvbmx5MSYwJAYDVQQD
# Ex1FbnRydXN0IFRpbWVzdGFtcGluZyBDQSAtIFRTMQIRAI3OFfOnlMWHAAAAAFWS
# M/QwCwYJYIZIAWUDBAIBoIIBpjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQw
# HAYJKoZIhvcNAQkFMQ8XDTIyMDQxNTA5NDQzNlowKQYJKoZIhvcNAQk0MRwwGjAL
# BglghkgBZQMEAgGhCwYJKoZIhvcNAQELMC8GCSqGSIb3DQEJBDEiBCATxHSJA39+
# h2+6dhgmhX/GUlw3jwPngPFERw/QBznPHTCCAQwGCyqGSIb3DQEJEAIvMYH8MIH5
# MIH2MIHzBCCVCib9x8AgGOn3kalcOPJu7z2kMmfKsM0VpVWvYxByyTCBzjCBuKSB
# tTCBsjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNV
# BAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChj
# KSAyMDE1IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEm
# MCQGA1UEAxMdRW50cnVzdCBUaW1lc3RhbXBpbmcgQ0EgLSBUUzECEQCNzhXzp5TF
# hwAAAABVkjP0MAsGCSqGSIb3DQEBCwSCAgCNrWnUR/2H5CFgJXT2Pbq5zdahxK0F
# INgP4OFvwPEVI6ykKcvycoimkRY2VoC2fXwfeuSFaVcU4R162BMdUHKSFEgCPezx
# ngSZqKsCVx5yo5Uc7b92n1gtV94ODd39rQD9slyrf1bqAQvh7fif7goFoKugjNW0
# CWlM/lmYkPY6K0uh6q3kPUSqqRF6g9Um5cC0wboc2JWplU5zMBenHoRHpI9I+wh8
# ef5vbbEq7qRqxJvTwuJKtLPVgc1RBEgJJSuPIlr1A79ZNJLVxdDTb3TzdvO/qzkU
# QvASaZ6ReDJgJsxC6B0whBQeZvV2YubPXyNgtlePU7Uoy/hB/pW1XoYScQry/kAv
# y9vIZj23xQgfBcT6sl89PjU5ptQSOncCuLZm+ZZEhoEkEgJ2/2gQzR6mn6CzygNY
# 8TMexbPIpy4IrYrMpjji3JUiHzUqiQmmH6dAygeKeLuUtYElFyhevfYQslr3Hjji
# 91qJ57UGAUF58UbLPULoG5PN2IeMUjvyCmv2dwiWoNDB1bt3yOTu0LHunKMyD6/x
# /zoQmOXs7Sli2/zC3HxAccwoTgifMkHvbn9eN2p//MvZfDKnpLScRrS7afprb0Qq
# 1pODkD1ZKop+1shaBUSOBLdTN9mAwGzFtY+3cQoWZXGE1Ir3mjjfrHRyuYscY/QN
# lAzT8FlRP1jSXQ==
# SIG # End signature block
