Idabus.Automation.Admin.psm1
############################################## ### ### IDABUS Ressource PowerShell ### (c) 2024 Oxford Computer Group GmbH ### ############################################## Import-Module -Name 'IDABUS.Automation.Core' -MinimumVersion "0.3.6" ########################################################## ### ### Get Engine state ### ########################################################## function Show-IdabusEngineState { <# .DESCRIPTION Shows the current state of the IDABUS engine. #> param( ) PROCESS { [string]$result = Send-IdabusGetRequest -ResourcePath "Internal/transition/runlevel" if(![string]::IsNullOrEmpty($result)) { write-Output $result.Trim('"') } } } ########################################################## ### ### Start maintenance mode ### ########################################################## function Suspend-IdabusEngine { <# .DESCRIPTION Puts IDABUS engine in maintenance mode. #> [CmdletBinding(SupportsShouldProcess = $true,ConfirmImpact = 'High')] param( [parameter(Mandatory=$false, Position = 1)] [string] $Comment, [parameter(Mandatory=$false)] [switch] $EnableReadOnlyMode=$false, [parameter(Mandatory=$false)] [switch] $EnableAdminOnlyMode=$false, [parameter(Mandatory=$false)] [Int32] $CancelOperationsAfterSeconds=-1 ) PROCESS { $queries = @() $queries += "enableReadOnlyMode=$EnableReadOnlyMode" $queries += "enableAdminOnlyMode=$EnableAdminOnlyMode" if(![string]::IsNullOrEmpty($Comment)) { $queries +="comment=$([Uri]::EscapeDataString($Comment))" } if($CancelOperationsAfterSeconds -gt -1) { $queries += "cancelOperationsAfterSeconds=$CancelOperationsAfterSeconds" } Send-IdabusPostRequest -ResourcePath "Admin/transition/maintenance" -Queries $queries Write-Output "Entering IDABUS engine maintenance mode" } } ########################################################## ### ### Wakeup idabus engine ### ########################################################## function Resume-IdabusEngine { <# .DESCRIPTION Wakup IDABUS engine from maintenance mode. #> param( [parameter(Mandatory=$false)] [switch] $DisableReadOnlyMode=$false, [parameter(Mandatory=$false)] [switch] $DisableAdminOnlyMode=$false ) PROCESS { $queries = @() $queries += "disableAdminOnlyMode=$DisableAdminOnlyMode" $queries += "disableReadOnlyMode=$DisableReadOnlyMode" Send-IdabusPostRequest -ResourcePath "Admin/transition/wakeup" -Queries $queries write-Output "Leave IDABUS engine maintenance mode (Wakeup)" } } ########################################################## ### ### Shutdown idabus engine ### ########################################################## function Stop-IdabusEngine { <# .DESCRIPTION Shutdown IDABUS engine. #> [CmdletBinding( SupportsShouldProcess = $true, ConfirmImpact = 'High')] param( [parameter(Mandatory=$false, Position = 1)] [string] $Comment, [parameter(Mandatory=$false)] [Int32] $CancelOperationsAfterSeconds=-1 ) PROCESS { $queries = @() if(![string]::IsNullOrEmpty($Comment)) { $queries +="comment=$([Uri]::EscapeDataString($Comment))" } if($CancelOperationsAfterSeconds -gt -1) { $queries += "cancelOperationsAfterSeconds=$CancelOperationsAfterSeconds" } if($PSCmdlet.ShouldProcess($param)) { Send-IdabusPostRequest -ResourcePath "Admin/transition/shutdown" -Queries $queries Write-Output "Starting IDABUS shutdown process" } else { Write-Output "Starting IDABUS shutdown process" } } } Export-ModuleMember -Function "Resume-IdabusEngine" Export-ModuleMember -Function "Suspend-IdabusEngine" Export-ModuleMember -Function "Stop-IdabusEngine" Export-ModuleMember -Function "Show-IdabusEngineState" # SIG # Begin signature block # MIIuKAYJKoZIhvcNAQcCoIIuGTCCLhUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUL2Pi1GjuhJ8xGMZC4NeWd7jk # s3GggidhMIIFcjCCA1qgAwIBAgIQdlP+rHVGSJP15ddKSDpO+DANBgkqhkiG9w0B # AQwFADBTMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEp # MCcGA1UEAxMgR2xvYmFsU2lnbiBDb2RlIFNpZ25pbmcgUm9vdCBSNDUwHhcNMjAw # MzE4MDAwMDAwWhcNNDUwMzE4MDAwMDAwWjBTMQswCQYDVQQGEwJCRTEZMBcGA1UE # ChMQR2xvYmFsU2lnbiBudi1zYTEpMCcGA1UEAxMgR2xvYmFsU2lnbiBDb2RlIFNp # Z25pbmcgUm9vdCBSNDUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2 # LcUw3Xroq5A9A3KwOkuZFmGy5f+lZx03HOV+7JODqoT1o0ObmEWKuGNXXZsAiAQl # 6fhokkuC2EvJSgPzqH9qj4phJ72hRND99T8iwqNPkY2zBbIogpFd+1mIBQuXBsKY # +CynMyTuUDpBzPCgsHsdTdKoWDiW6d/5G5G7ixAs0sdDHaIJdKGAr3vmMwoMWWuO # vPSrWpd7f65V+4TwgP6ETNfiur3EdaFvvWEQdESymAfidKv/aNxsJj7pH+XgBIet # MNMMjQN8VbgWcFwkeCAl62dniKu6TjSYa3AR3jjK1L6hwJzh3x4CAdg74WdDhLbP # /HS3L4Sjv7oJNz1nbLFFXBlhq0GD9awd63cNRkdzzr+9lZXtnSuIEP76WOinV+Gz # z6ha6QclmxLEnoByPZPcjJTfO0TmJoD80sMD8IwM0kXWLuePmJ7mBO5Cbmd+QhZx # YucE+WDGZKG2nIEhTivGbWiUhsaZdHNnMXqR8tSMeW58prt+Rm9NxYUSK8+aIkQI # qIU3zgdhVwYXEiTAxDFzoZg1V0d+EDpF2S2kUZCYqaAHN8RlGqocaxZ396eX7D8Z # MJlvMfvqQLLn0sT6ydDwUHZ0WfqNbRcyvvjpfgP054d1mtRKkSyFAxMCK0KA8olq # Ns/ITKDOnvjLja0Wp9Pe1ZsYp8aSOvGCY/EuDiRk3wIDAQABo0IwQDAOBgNVHQ8B # Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUHwC/RoAK/Hg5t6W0 # Q9lWULvOljswDQYJKoZIhvcNAQEMBQADggIBAF4runSXNERfdkgoQIST7gFu6aGz # 1oAl5nvkvAmRPQ/8dq3X1DAgu49g0JHWHPKc73gaK5QyAsEkllJSAtDz0fzymzlu # meEfjkNBfZoeW8ldmoT8JuaH83RyJq2kG9k9O2pSoDwJHi8ee7MztEXH96yxr5Ng # rXauuLIVeOuDauv/20arJOXuAvqQH1nAL13Wt12kXBC3clP4QU7M+ngaJUrK/oVi # Q2HDtDeqgdL01joPvY1ZfjBH3itr5yFQM1/UZ5vUuGefPCeZA/+FQ45zEsogzehh # 1bFm3BfWOW0P288jN6GCiU4caz/WoM2qB50+Qiaq1wzu+ke/GlJ+0XWB08mKYhdt # T4igIaAmPq9t2WIwH+mYKK5ujdWOTHJmk4CNKuNVx2BnkEJWXCJRD7PcTjnuTd3Z # HXgQVDtu0JdvA7UesiNzxhKymmTQ/JWFJKj/36Gw3JFArt8JM6u53ZK38cyRdDtp # 62eXG5C/58egb3G7V7+3j1rtekBqFs2AhC0v4QLUJJRDsxX8DCsb/XFv/Mu8dRc6 # XoPSybMvG9WcjX9U/n5+5Fajh6ed4VlSlEGPbVu+hpWa/xp23UDSUUpwtB8zYyN3 # P+wnHlnkCIftNIJKDz/+oB3B9WdzRYZ49Kop6SeHxhnbxhMUwzlJh02gl+BlE/Wd # d1bp2rNYxzrywM2CMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkq # hkiG9w0BAQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j # MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBB # c3N1cmVkIElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5 # WjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL # ExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJv # b3QgRzQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1K # PDAiMGkz7MKnJS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2r # snnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C # 8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBf # sXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY # QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8 # rhsDdV14Ztk6MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaY # dj1ZXUJ2h4mXaXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+ # wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw # ++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+N # P8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7F # wI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUw # AwEB/zAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAU # Reuir/SSy4IxLVGLp6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEB # BG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsG # AQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1 # cmVkSURSb290Q0EuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRp # Z2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAow # CDAGBgRVHSAAMA0GCSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/ # Vwe9mqyhhyzshV6pGrsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLe # JLxSA8hO0Cre+i1Wz/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE # 1Od/6Fmo8L8vC6bp8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9Hda # XFSMb++hUD38dglohJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbO # byMt9H5xaiNrIv8SuFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMIIG # rjCCBJagAwIBAgIQBzY3tyRUfNhHrP0oZipeWzANBgkqhkiG9w0BAQsFADBiMQsw # CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu # ZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQw # HhcNMjIwMzIzMDAwMDAwWhcNMzcwMzIyMjM1OTU5WjBjMQswCQYDVQQGEwJVUzEX # MBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0 # ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMIICIjANBgkqhkiG # 9w0BAQEFAAOCAg8AMIICCgKCAgEAxoY1BkmzwT1ySVFVxyUDxPKRN6mXUaHW0oPR # nkyibaCwzIP5WvYRoUQVQl+kiPNo+n3znIkLf50fng8zH1ATCyZzlm34V6gCff1D # tITaEfFzsbPuK4CEiiIY3+vaPcQXf6sZKz5C3GeO6lE98NZW1OcoLevTsbV15x8G # ZY2UKdPZ7Gnf2ZCHRgB720RBidx8ald68Dd5n12sy+iEZLRS8nZH92GDGd1ftFQL # IWhuNyG7QKxfst5Kfc71ORJn7w6lY2zkpsUdzTYNXNXmG6jBZHRAp8ByxbpOH7G1 # WE15/tePc5OsLDnipUjW8LAxE6lXKZYnLvWHpo9OdhVVJnCYJn+gGkcgQ+NDY4B7 # dW4nJZCYOjgRs/b2nuY7W+yB3iIU2YIqx5K/oN7jPqJz+ucfWmyU8lKVEStYdEAo # q3NDzt9KoRxrOMUp88qqlnNCaJ+2RrOdOqPVA+C/8KI8ykLcGEh/FDTP0kyr75s9 # /g64ZCr6dSgkQe1CvwWcZklSUPRR8zZJTYsg0ixXNXkrqPNFYLwjjVj33GHek/45 # wPmyMKVM1+mYSlg+0wOI/rOP015LdhJRk8mMDDtbiiKowSYI+RQQEgN9XyO7ZONj # 4KbhPvbCdLI/Hgl27KtdRnXiYKNYCQEoAA6EVO7O6V3IXjASvUaetdN2udIOa5kM # 0jO0zbECAwEAAaOCAV0wggFZMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE # FLoW2W1NhS9zKXaaL3WMaiCPnshvMB8GA1UdIwQYMBaAFOzX44LScV1kTN8uZz/n # upiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDCDB3Bggr # BgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNv # bTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lD # ZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2Ny # bDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcmwwIAYDVR0g # BBkwFzAIBgZngQwBBAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQB9 # WY7Ak7ZvmKlEIgF+ZtbYIULhsBguEE0TzzBTzr8Y+8dQXeJLKftwig2qKWn8acHP # HQfpPmDI2AvlXFvXbYf6hCAlNDFnzbYSlm/EUExiHQwIgqgWvalWzxVzjQEiJc6V # aT9Hd/tydBTX/6tPiix6q4XNQ1/tYLaqT5Fmniye4Iqs5f2MvGQmh2ySvZ180HAK # fO+ovHVPulr3qRCyXen/KFSJ8NWKcXZl2szwcqMj+sAngkSumScbqyQeJsG33irr # 9p6xeZmBo1aGqwpFyd/EjaDnmPv7pp1yr8THwcFqcdnGE4AJxLafzYeHJLtPo0m5 # d2aR8XKc6UsCUqc3fpNTrDsdCEkPlM05et3/JWOZJyw9P2un8WbDQc1PtkCbISFA # 0LcTJM3cHXg65J6t5TRxktcma+Q4c6umAU+9Pzt4rUyt+8SVe+0KXzM5h0F4ejjp # nOHdI/0dKNPH+ejxmF/7K9h+8kaddSweJywm228Vex4Ziza4k9Tm8heZWcpw8De/ # mADfIBZPJ/tgZxahZrrdVcA6KYawmKAr7ZVBtzrVFZgxtGIJDwq9gdkT/r+k0fNX # 2bwE+oLeMt8EifAAzV3C+dAjfwAL5HYCJtnwZXZCpimHCUcr5n8apIUP/JiW9lVU # Kx+A+sDyDivl1vupL0QVSucTDh3bNzgaoSv27dZ8/DCCBsIwggSqoAMCAQICEAVE # r/OUnQg5pr/bP1/lYRYwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxFzAV # BgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBUcnVzdGVk # IEc0IFJTQTQwOTYgU0hBMjU2IFRpbWVTdGFtcGluZyBDQTAeFw0yMzA3MTQwMDAw # MDBaFw0zNDEwMTMyMzU5NTlaMEgxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdp # Q2VydCwgSW5jLjEgMB4GA1UEAxMXRGlnaUNlcnQgVGltZXN0YW1wIDIwMjMwggIi # MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCjU0WHHYOOW6w+VLMj4M+f1+XS # 512hDgncL0ijl3o7Kpxn3GIVWMGpkxGnzaqyat0QKYoeYmNp01icNXG/OpfrlFCP # HCDqx5o7L5Zm42nnaf5bw9YrIBzBl5S0pVCB8s/LB6YwaMqDQtr8fwkklKSCGtpq # utg7yl3eGRiF+0XqDWFsnf5xXsQGmjzwxS55DxtmUuPI1j5f2kPThPXQx/ZILV5F # dZZ1/t0QoRuDwbjmUpW1R9d4KTlr4HhZl+NEK0rVlc7vCBfqgmRN/yPjyobutKQh # ZHDr1eWg2mOzLukF7qr2JPUdvJscsrdf3/Dudn0xmWVHVZ1KJC+sK5e+n+T9e3M+ # Mu5SNPvUu+vUoCw0m+PebmQZBzcBkQ8ctVHNqkxmg4hoYru8QRt4GW3k2Q/gWEH7 # 2LEs4VGvtK0VBhTqYggT02kefGRNnQ/fztFejKqrUBXJs8q818Q7aESjpTtC/XN9 # 7t0K/3k0EH6mXApYTAA+hWl1x4Nk1nXNjxJ2VqUk+tfEayG66B80mC866msBsPf7 # Kobse1I4qZgJoXGybHGvPrhvltXhEBP+YUcKjP7wtsfVx95sJPC/QoLKoHE9nJKT # BLRpcCcNT7e1NtHJXwikcKPsCvERLmTgyyIryvEoEyFJUX4GZtM7vvrrkTjYUQfK # lLfiUKHzOtOKg8tAewIDAQABo4IBizCCAYcwDgYDVR0PAQH/BAQDAgeAMAwGA1Ud # EwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwIAYDVR0gBBkwFzAIBgZn # gQwBBAIwCwYJYIZIAYb9bAcBMB8GA1UdIwQYMBaAFLoW2W1NhS9zKXaaL3WMaiCP # nshvMB0GA1UdDgQWBBSltu8T5+/N0GSh1VapZTGj3tXjSTBaBgNVHR8EUzBRME+g # TaBLhklodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRS # U0E0MDk2U0hBMjU2VGltZVN0YW1waW5nQ0EuY3JsMIGQBggrBgEFBQcBAQSBgzCB # gDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFgGCCsGAQUF # BzAChkxodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVk # RzRSU0E0MDk2U0hBMjU2VGltZVN0YW1waW5nQ0EuY3J0MA0GCSqGSIb3DQEBCwUA # A4ICAQCBGtbeoKm1mBe8cI1PijxonNgl/8ss5M3qXSKS7IwiAqm4z4Co2efjxe0m # gopxLxjdTrbebNfhYJwr7e09SI64a7p8Xb3CYTdoSXej65CqEtcnhfOOHpLawkA4 # n13IoC4leCWdKgV6hCmYtld5j9smViuw86e9NwzYmHZPVrlSwradOKmB521BXIxp # 0bkrxMZ7z5z6eOKTGnaiaXXTUOREEr4gDZ6pRND45Ul3CFohxbTPmJUaVLq5vMFp # GbrPFvKDNzRusEEm3d5al08zjdSNd311RaGlWCZqA0Xe2VC1UIyvVr1MxeFGxSjT # redDAHDezJieGYkD6tSRN+9NUvPJYCHEVkft2hFLjDLDiOZY4rbbPvlfsELWj+MX # kdGqwFXjhr+sJyxB0JozSqg21Llyln6XeThIX8rC3D0y33XWNmdaifj2p8flTzU8 # AL2+nCpseQHc2kTmOt44OwdeOVj0fHMxVaCAEcsUDH6uvP6k63llqmjWIso765qC # NVcoFstp8jKastLYOrixRoZruhf9xHdsFWyuq69zOuhJRrfVf8y2OMDY7Bz1tqG4 # QyzfTkx9HmhwwHcK1ALgXGC7KP845VJa1qwXIiNO9OzTF/tQa/8Hdx9xl0RBybhG # 02wyfFgvZ0dl5Rtztpn5aywGRu9BHvDwX+Db2a2QgESvgBBBijCCBugwggTQoAMC # AQICEHe9DgW3WQu2HUdhUx4/de0wDQYJKoZIhvcNAQELBQAwUzELMAkGA1UEBhMC # QkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExKTAnBgNVBAMTIEdsb2JhbFNp # Z24gQ29kZSBTaWduaW5nIFJvb3QgUjQ1MB4XDTIwMDcyODAwMDAwMFoXDTMwMDcy # ODAwMDAwMFowXDELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt # c2ExMjAwBgNVBAMTKUdsb2JhbFNpZ24gR0NDIFI0NSBFViBDb2RlU2lnbmluZyBD # QSAyMDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyyDvlx65ATJD # oFupiiP9IF6uOBKLyizU/0HYGlXUGVO3/aMX53o5XMD3zhGj+aXtAfq1upPvr5Pc # +OKzGUyDsEpEUAR4hBBqpNaWkI6B+HyrL7WjVzPSWHuUDm0PpZEmKrODT3Kxintk # ktDwtFVflgsR5Zq1LLIRzyUbfVErmB9Jo1/4E541uAMC2qQTL4VK78QvcA7B1Mwz # Euy9QJXTEcrmzbMFnMhT61LXeExRAZKC3hPzB450uoSAn9KkFQ7or+v3ifbfcfDR # vqeyQTMgdcyx1e0dBxnE6yZ38qttF5NJqbfmw5CcxrjszMl7ml7FxSSTY29+EIth # z5hVoySiiDby+Z++ky6yBp8mwAwBVhLhsoqfDh7cmIsuz9riiTSmHyagqK54beyh # iBU8wurut9itYaWvcDaieY7cDXPA8eQsq5TsWAY5NkjWO1roIs50Dq8s8RXa0bSV # 6KzVSW3lr92ba2MgXY5+O7JD2GI6lOXNtJizNxkkEnJzqwSwCdyF5tQiBO9AKh0u # bcdp0263AWwN4JenFuYmi4j3A0SGX2JnTLWnN6hV3AM2jG7PbTYm8Q6PsD1xwOEy # p4LktjICMjB8tZPIIf08iOZpY/judcmLwqvvujr96V6/thHxvvA9yjI+bn3eD36b # lcQSh+cauE7uLMHfoWXoJIPJKsL9uVMCAwEAAaOCAa0wggGpMA4GA1UdDwEB/wQE # AwIBhjATBgNVHSUEDDAKBggrBgEFBQcDAzASBgNVHRMBAf8ECDAGAQH/AgEAMB0G # A1UdDgQWBBQlndD8WQmGY8Xs87ETO1ccA5I2ETAfBgNVHSMEGDAWgBQfAL9GgAr8 # eDm3pbRD2VZQu86WOzCBkwYIKwYBBQUHAQEEgYYwgYMwOQYIKwYBBQUHMAGGLWh0 # dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2NvZGVzaWduaW5ncm9vdHI0NTBGBggr # BgEFBQcwAoY6aHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvY29k # ZXNpZ25pbmdyb290cjQ1LmNydDBBBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vY3Js # Lmdsb2JhbHNpZ24uY29tL2NvZGVzaWduaW5ncm9vdHI0NS5jcmwwVQYDVR0gBE4w # TDBBBgkrBgEEAaAyAQIwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xvYmFs # c2lnbi5jb20vcmVwb3NpdG9yeS8wBwYFZ4EMAQMwDQYJKoZIhvcNAQELBQADggIB # ACV1oAnJObq3oTmJLxifq9brHUvolHwNB2ibHJ3vcbYXamsCT7M/hkWHzGWbTONY # BgIiZtVhAsVjj9Si8bZeJQt3lunNcUAziCns7vOibbxNtT4GS8lzM8oIFC09TOiw # unWmdC2kWDpsE0n4pRUKFJaFsWpoNCVCr5ZW9BD6JH3xK3LBFuFr6+apmMc+WvTQ # GJ39dJeGd0YqPSN9KHOKru8rG5q/bFOnFJ48h3HAXo7I+9MqkjPqV01eB17KwRis # gS0aIfpuz5dhe99xejrKY/fVMEQ3Mv67Q4XcuvymyjMZK3dt28sF8H5fdS6itr81 # qjZjyc5k2b38vCzzSVYAyBIrxie7N69X78TPHinE9OItziphz1ft9QpA4vUY1h7p # kC/K04dfk4pIGhEd5TeFny5mYppegU6VrFVXQ9xTiyV+PGEPigu69T+m1473BFZe # Ibuf12pxgL+W3nID2NgiK/MnFk846FFADK6S7749ffeAxkw2V4SVp4QVSDAOUicI # jY6ivSLHGcmmyg6oejbbarphXxEklaTijmjuGalJmV7QtDS91vlAxxCXMVI5NSkR # hyTTxPupY8t3SNX6Yvwk4AR6TtDkbt7OnjhQJvQhcWXXCSXUyQcAerjH83foxdTi # VdDTHvZ/UuJJjbkRcgyIRCYzZgFE3+QzDiHeYolIB9r1MIIH8jCCBdqgAwIBAgIM # AyNmMwaozFNbTkBCMA0GCSqGSIb3DQEBCwUAMFwxCzAJBgNVBAYTAkJFMRkwFwYD # VQQKExBHbG9iYWxTaWduIG52LXNhMTIwMAYDVQQDEylHbG9iYWxTaWduIEdDQyBS # NDUgRVYgQ29kZVNpZ25pbmcgQ0EgMjAyMDAeFw0yMzAxMTYxNTQxMTFaFw0yNjAz # MzAxNDM4MzFaMIIBQDEdMBsGA1UEDwwUUHJpdmF0ZSBPcmdhbml6YXRpb24xEzAR # BgNVBAUTCkhSQiAxNzA3MzMxEzARBgsrBgEEAYI3PAIBAxMCREUxFzAVBgsrBgEE # AYI3PAIBAhMGQmF5ZXJuMRkwFwYLKwYBBAGCNzwCAQETCE11ZW5jaGVuMQswCQYD # VQQGEwJERTEPMA0GA1UECBMGQmF5ZXJuMQ8wDQYDVQQHEwZFcmRpbmcxGTAXBgNV # BAkTEEdpZXNzZXJlaXN0ci4gMTYxIzAhBgNVBAoTGk94Zm9yZCBDb21wdXRlciBH # cm91cCBHbWJIMRMwEQYDVQQLEwpDb25zdWx0aW5nMSMwIQYDVQQDExpPeGZvcmQg # Q29tcHV0ZXIgR3JvdXAgR21iSDEYMBYGCSqGSIb3DQEJARYJcmJAb2NnLmRlMIIC # IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwRyA3OnH2xcOzDJXAJswtqaN # wgEgHvfVKqqYVe72KsXa5+ssuqato3Qzoss3DAcsypF4pkFMWWaei2RvYEvfkmTz # +85OwYCZcOiBq07hf62ZfqurEZ18K0wtjW0aPMuFGUmR9F2z+Ws73yOy2zGVPr7I # igEUSERPf4REcTlLBAeJIYt0owxkN1/i2Z/1m4rWeKST5rd5h3uQGeVeDDEErhnZ # jqMsVbaI1BwvuzKEjtA1yXsBUUhQiM3x4cgUfQxfwGQiUzPjroaAEnO+EpMYyr/c # uEYfEnClzJlKUJpS5lAurIObagkNOFegnn1NbB4Kik+slRH6ltHpg4O/j61fKWWO # x8YothvhibkITe57PgLYqtjuRfEp+5ie4fRZ+4T8l/ELqLdbJmbC7tmf2tfdd/pg # wxOJKzuhXX+orNB2XD3LjVlTN+KInnI0b4/AIV1conwmsRspLO3ys1ZRT7bYCX8l # fP/7Z9LvtnRHg7AL5objVq4uzwOsi+QBsZgRkzpRpzirYS+in5/y78yJ+IhcVIF/ # bBQ7EpVP+69c1Wl5KhZkP64jlmZyWwX8iAslPOp4w6Z6UCu2HTtwAYRwBbs/PZqD # U+q3VYuM305hpf7OE7YCMhUQ1B9JHtf5FVOTOzOnb1qnPmHIEGr5SFTwcrb0BPtL # MDHqt+Y8Q0UKy9fraaECAwEAAaOCAcwwggHIMA4GA1UdDwEB/wQEAwIHgDCBnwYI # KwYBBQUHAQEEgZIwgY8wTAYIKwYBBQUHMAKGQGh0dHA6Ly9zZWN1cmUuZ2xvYmFs # c2lnbi5jb20vY2FjZXJ0L2dzZ2NjcjQ1ZXZjb2Rlc2lnbmNhMjAyMC5jcnQwPwYI # KwYBBQUHMAGGM2h0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjQ1ZXZj # b2Rlc2lnbmNhMjAyMDBVBgNVHSAETjBMMEEGCSsGAQQBoDIBAjA0MDIGCCsGAQUF # BwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAHBgVn # gQwBAzAJBgNVHRMEAjAAMEcGA1UdHwRAMD4wPKA6oDiGNmh0dHA6Ly9jcmwuZ2xv # YmFsc2lnbi5jb20vZ3NnY2NyNDVldmNvZGVzaWduY2EyMDIwLmNybDAUBgNVHREE # DTALgQlyYkBvY2cuZGUwEwYDVR0lBAwwCgYIKwYBBQUHAwMwHwYDVR0jBBgwFoAU # JZ3Q/FkJhmPF7POxEztXHAOSNhEwHQYDVR0OBBYEFNg6ADF/xhP2iS0HFaTik7W/ # e/y8MA0GCSqGSIb3DQEBCwUAA4ICAQAoDywPR+p2DMh6rjCQkt6rF6h+Awcu3WHR # Sq5tR5c11ijhVyEQZ4nhAXZ7s10/41/VMPWq99ahg9kFSIeRHYeVZ3252Ijto7au # mbg/ND0+K1s90q7eXP7j05yA8g8ZUlnS9eLaohPk1e1K/Y++2LHWgPFCGcqRACGG # oLRB79gqRfoQO5wh8PIbXNQyKB69QPxZOfi7sH2/+d53FGzjDLGgdrSSnYR5BboQ # WHQw/xQLFE7K7WFVtkFpkTm0IFn3MzlG3Zfl3C3ELxETQRd4ZAFfrhqtZPPkug0S # /E/ibcZqv+qfITLnTaXT02t1lTFdN8/H4wOyxb1yXKVhxtZ9t51EdqBr+cE6I+l4 # Uj/ZEN2go2c/CJmxYqlciGGwErmL0yD3Eqdq5UB/LR8ab/6GR0XiJ3GI73P6gZqn # 05WaAMJsBmIkMeh+QY6cw3UUt7B6rNdJeeWkS2Yhe9nvNHRNuoFL2/KIVomjPpgR # PuStt+/ukuBEJZdznw8KXmV1d0xvztvPYJog/VdkvAoWBjcg9A7sqBM7wPLYomAt # gUAQliwed8Td+7Yu3Tb0vZEYCNm2Hg4hp5dPIVWfHurZav/G4+ode+EoPrCp2kmS # nsf4Zi9j1GmcSsX7S5W7Q0uGZ81BE9MGbAhAv/9eFD1BazGHV3yMIZ7ElAR5PYUp # XKNak4E9dDGCBjEwggYtAgEBMGwwXDELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEds # b2JhbFNpZ24gbnYtc2ExMjAwBgNVBAMTKUdsb2JhbFNpZ24gR0NDIFI0NSBFViBD # b2RlU2lnbmluZyBDQSAyMDIwAgwDI2YzBqjMU1tOQEIwCQYFKw4DAhoFAKB4MBgG # CisGAQQBgjcCAQwxCjAIoAKAAKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcC # AQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYE # FLUXZfUfmCYZCXOIuABmTtGVONiZMA0GCSqGSIb3DQEBAQUABIICAC8cxZowr+aB # ZovqX3CrPpyaadrl332COT2q50Lz0BZQxmHfzEHrkYv/ybvsAZF6XbJAQQbLv04S # PRjcUgiGy8Qyns6l2holUD7CgspnVI1j0Je6V6sWt/2MeUgWQHBX2aNjQMNUV1sc # A1oWptpOthRiz2X75ClIHHk7fhhLe9C+g974C91HTVevke04dQb2IILeFs9M46et # enCRSDnu2zRiFDTrKHZnGvBkXowmSb+19rkKPf25kf7xW6tvMj1gMP1p27cvPgrX # UFqWrAe+gy1TZCmhlO+5eBeMubYEN7pDKSqEY34ztrSZJoQlfKHpL5HifOXp4CrC # 7CoZdMNX5LijlQ5a//5Hd/DnYrmOmlGVYd4f7AgsVqB2j0mCWtz99qFFjtYEdKFZ # jSMIPbx4sdTgOemviDe4Il5g4vbO4TQeysP9ErRNizHoFV7uCUU3lgPVzkP8GXiJ # GhJ2yS0A9PmjLd+Eg/cqarQPIxNWJXvLkmwdN+PTh7xuWh25Sae7s4yp/OWE8UWi # fWRHVHkP6tBDW8W5YXd+T0xePKu6I7NaG7aCflsfz0hwha4WGqT8SwCRbznn+Glt # xW1Mi785dxKejKJLMIyyI9pL5+mFk2RiLa+1T51geiDbKS5wf/vbOYPg+ULyHAA1 # cyTUU2O0Ybqwe1zW0kBvp/98CZamq/N0oYIDIDCCAxwGCSqGSIb3DQEJBjGCAw0w # ggMJAgEBMHcwYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMu # MTswOQYDVQQDEzJEaWdpQ2VydCBUcnVzdGVkIEc0IFJTQTQwOTYgU0hBMjU2IFRp # bWVTdGFtcGluZyBDQQIQBUSv85SdCDmmv9s/X+VhFjANBglghkgBZQMEAgEFAKBp # MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI0MDMw # NTA4NTc1MFowLwYJKoZIhvcNAQkEMSIEICbSLwmOLM97mO8Y10t2gyVR153BPBc+ # atLsKuyu/RMFMA0GCSqGSIb3DQEBAQUABIICAH2iN0ZruFti+05rnzmkU9aYSBLN # HfFbyRoSA2VFrXAsPLwQQBce6CF3PVtDcbuu8hKgPQd4tNCWJlOoWtnLeAw3XJac # zQOayQcN0JRG1oArd3V2ZAwlJMcH0mHQjLn/f7N7seuiIvJNfbk2utyu4rflijRN # cNoxehYY7m70lO2VGnYInTzJ2i8ugxbuEM4qS0WjNSPLJBIlJysat+c8HiZxlqBe # ZjojtX0ouU2SuV3bRymT9nXt7zLLyjAd5Mwtbq2vALT8rnv1w/znTgF1sg9RAohM # 2o77q/i2FtmaU/OZ62yFMGtjSlfLrjejnx+oC5OJ6ncULbeF971LJybJw+1VSqc2 # FJ3PchjAD5Do3+a2uEfflyhvPJYyFgecAsrB1NaZ6F7Z/jTzlP8fy2rEKS6D7yEZ # P3ClclwrvFdpw76mHiHi+TsTolAa+C1xV5Vv7iv24EV1XFvnofkyOetMXQOiuB00 # Sgco9EN2v+dWWcG54Ogzz7je8PowdmpFj9vtlxpK6Vy1gR6c5yvToKrxFvsIXzND # ungr4j8OQ/rd/sHsha5NHX79E9XNCc7ambisSFzUuHPF9J2U8RbysUPwL9TqXO+E # PqpyETZhSzxVkvSAqOYwGFnqJQvGFErba5/pKxHhRz4h9XQW+4zkK2+CxhpwSxTq # kLIQEaFKEQ9NdCUW # SIG # End signature block |