Public/Find-DotNetRuntime.ps1

function Find-DotNetRuntime {
    <#
    .SYNOPSIS
    Finds official .NET runtime releases with Windows EXE installers.
 
    .DESCRIPTION
    Searches Microsoft's official release metadata for .NET Runtime, ASP.NET
    Core Runtime, and .NET Windows Desktop Runtime Windows EXE installers. By
    default, returns the latest stable release of each product in every channel
    for the native Windows architecture.
 
    .PARAMETER ProductType
    Limits results to Runtime, AspNetCoreRuntime, or WindowsDesktopRuntime.
 
    .PARAMETER Channel
    Limits results to one or more major/minor channels, such as 8.0 or 10.0.
 
    .PARAMETER Version
    Finds one or more exact runtime versions, including prerelease versions.
 
    .PARAMETER Architecture
    Selects x64, x86, or arm64 Windows installers. Defaults to the native
    Windows architecture.
 
    .PARAMETER IncludePreview
    Includes preview and release-candidate runtimes in channel searches.
 
    .PARAMETER AllVersions
    Returns every matching release instead of only the latest in each channel.
 
    .EXAMPLE
    Find-DotNetRuntime
 
    Finds the latest stable release of every runtime product in every channel.
 
    .EXAMPLE
    Find-DotNetRuntime -ProductType WindowsDesktopRuntime -Channel 8.0
 
    Finds the latest stable .NET 8 Windows Desktop Runtime.
 
    .EXAMPLE
    Find-DotNetRuntime -ProductType AspNetCoreRuntime -Channel 11.0 -IncludePreview
 
    Finds the latest ASP.NET Core Runtime in the .NET 11 channel, including
    prereleases.
    #>


    [CmdletBinding(DefaultParameterSetName = 'Channel')]
    param(
        [ValidateNotNullOrEmpty()]
        [ValidateSet('Runtime', 'AspNetCoreRuntime', 'WindowsDesktopRuntime')]
        [string[]] $ProductType = @(
            'Runtime',
            'AspNetCoreRuntime',
            'WindowsDesktopRuntime'
        ),

        [Parameter(ParameterSetName = 'Channel')]
        [ValidateNotNullOrEmpty()]
        [string[]] $Channel,

        [Parameter(Mandatory = $true, ParameterSetName = 'Version')]
        [ValidateNotNullOrEmpty()]
        [string[]] $Version,

        [ValidateNotNullOrEmpty()]
        [ValidateSet('x64', 'x86', 'arm64')]
        [string[]] $Architecture,

        [switch] $IncludePreview,

        [switch] $AllVersions
    )

    Assert-DotNetStewardPlatform
    if ($PSBoundParameters.ContainsKey('Channel')) {
        Assert-DotNetChannels -Channels $Channel
    }
    if ($PSCmdlet.ParameterSetName -eq 'Version') {
        Assert-ExactDotNetVersions -Versions $Version
    }
    if (-not $PSBoundParameters.ContainsKey('Architecture')) {
        $Architecture = @(Get-NativeDotNetArchitecture)
    }

    $originalSecurityProtocol = [Net.ServicePointManager]::SecurityProtocol
    try {
        [Net.ServicePointManager]::SecurityProtocol =
            $originalSecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

        $releaseIndex = @(Get-ReleaseIndex)
        return Get-AvailableRuntimeReleases -ReleaseIndex $releaseIndex `
            -ProductTypes $ProductType -Architectures $Architecture `
            -Channels $Channel -Versions $Version `
            -IncludePreview ([bool] $IncludePreview) `
            -AllVersions ([bool] $AllVersions)
    }
    finally {
        [Net.ServicePointManager]::SecurityProtocol = $originalSecurityProtocol
    }
}

# SIG # Begin signature block
# MII9KgYJKoZIhvcNAQcCoII9GzCCPRcCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCpf9/ByYZVcZIw
# DSIBSQ5ADWY3jXWxL/Yhh+eyWyrvt6CCIewwggXMMIIDtKADAgECAhBUmNLR1FsZ
# lUgTecgRwIeZMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jvc29mdCBJZGVu
# dGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAy
# MDAeFw0yMDA0MTYxODM2MTZaFw00NTA0MTYxODQ0NDBaMHcxCzAJBgNVBAYTAlVT
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jv
# c29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo
# b3JpdHkgMjAyMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALORKgeD
# Bmf9np3gx8C3pOZCBH8Ppttf+9Va10Wg+3cL8IDzpm1aTXlT2KCGhFdFIMeiVPvH
# or+Kx24186IVxC9O40qFlkkN/76Z2BT2vCcH7kKbK/ULkgbk/WkTZaiRcvKYhOuD
# PQ7k13ESSCHLDe32R0m3m/nJxxe2hE//uKya13NnSYXjhr03QNAlhtTetcJtYmrV
# qXi8LW9J+eVsFBT9FMfTZRY33stuvF4pjf1imxUs1gXmuYkyM6Nix9fWUmcIxC70
# ViueC4fM7Ke0pqrrBc0ZV6U6CwQnHJFnni1iLS8evtrAIMsEGcoz+4m+mOJyoHI1
# vnnhnINv5G0Xb5DzPQCGdTiO0OBJmrvb0/gwytVXiGhNctO/bX9x2P29Da6SZEi3
# W295JrXNm5UhhNHvDzI9e1eM80UHTHzgXhgONXaLbZ7LNnSrBfjgc10yVpRnlyUK
# xjU9lJfnwUSLgP3B+PR0GeUw9gb7IVc+BhyLaxWGJ0l7gpPKWeh1R+g/OPTHU3mg
# trTiXFHvvV84wRPmeAyVWi7FQFkozA8kwOy6CXcjmTimthzax7ogttc32H83rwjj
# O3HbbnMbfZlysOSGM1l0tRYAe1BtxoYT2v3EOYI9JACaYNq6lMAFUSw0rFCZE4e7
# swWAsk0wAly4JoNdtGNz764jlU9gKL431VulAgMBAAGjVDBSMA4GA1UdDwEB/wQE
# AwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIftJqhSobyhmYBAcnz1AQ
# T2ioojAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQwFAAOCAgEAr2rd5hnn
# LZRDGU7L6VCVZKUDkQKL4jaAOxWiUsIWGbZqWl10QzD0m/9gdAmxIR6QFm3FJI9c
# Zohj9E/MffISTEAQiwGf2qnIrvKVG8+dBetJPnSgaFvlVixlHIJ+U9pW2UYXeZJF
# xBA2CFIpF8svpvJ+1Gkkih6PsHMNzBxKq7Kq7aeRYwFkIqgyuH4yKLNncy2RtNwx
# AQv3Rwqm8ddK7VZgxCwIo3tAsLx0J1KH1r6I3TeKiW5niB31yV2g/rarOoDXGpc8
# FzYiQR6sTdWD5jw4vU8w6VSp07YEwzJ2YbuwGMUrGLPAgNW3lbBeUU0i/OxYqujY
# lLSlLu2S3ucYfCFX3VVj979tzR/SpncocMfiWzpbCNJbTsgAlrPhgzavhgplXHT2
# 6ux6anSg8Evu75SjrFDyh+3XOjCDyft9V77l4/hByuVkrrOj7FjshZrM77nq81YY
# uVxzmq/FdxeDWds3GhhyVKVB0rYjdaNDmuV3fJZ5t0GNv+zcgKCf0Xd1WF81E+Al
# GmcLfc4l+gcK5GEh2NQc5QfGNpn0ltDGFf5Ozdeui53bFv0ExpK91IjmqaOqu/dk
# ODtfzAzQNb50GQOmxapMomE2gj4d8yu8l13bS3g7LfU772Aj6PXsCyM2la+YZr9T
# 03u4aUoqlmZpxJTG9F9urJh4iIAGXKKy7aIwggajMIIEi6ADAgECAhMzAAXqputR
# 09VeyKgIAAAABeqmMA0GCSqGSIb3DQEBDAUAMFoxCzAJBgNVBAYTAlVTMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJ
# RCBWZXJpZmllZCBDUyBFT0MgQ0EgMDMwHhcNMjYwOTExMDc1MTUyWhcNMjYwOTE0
# MDc1MTUyWjBnMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjERMA8G
# A1UEBxMISXNzYXF1YWgxFzAVBgNVBAoTDkRhbWlhbiBFZHdhcmRzMRcwFQYDVQQD
# Ew5EYW1pYW4gRWR3YXJkczCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGB
# ALeWYSi+ijB+0AAxCKCLGfewFg3rfmQQu86KqkhU9JldpGt2t0UYmaNS7OgfEOsf
# s9vc6Uf5OPNBQaaHsB9wDikmV7Fi4LtgdZlnJ/5S7CKFZSyxG0jCbSOfkYyFXhxp
# hR65f1g/5g+TX1vXAJDh2na6ZTpjgNx1AlpUvNjqY76ISdW46Bc7gdkY5AW0pgt7
# 6WsTJODKSA/5dWOcjTnygaqA+TsadMSDIybP5k0MIc2l9CJz3xQMEaMioPpP441u
# Dn1sevP9nntDB7yvN20aIzWCeseXbjaojN3SJtu9GQ5BMRuvmiIAJbFA43/2kCpJ
# TtIqErI/5shFjowbQ1saOGoL0Qgs0cojzr4sZjj7AZ4/7NKJ5Bt81W8NT/M44fep
# 8cdDhAsVIIa03LEOQf5a1RsV3iuO8PU1oM19wl8qFa8shJHHjwQo9nB6y9eBZufB
# zY0TrzxttQU2csiqwc6Z7GEFbMs1iEWU4G9T7Rzmnt/fBTCRRpalrnN9O9+pj2v5
# 3QIDAQABo4IB0zCCAc8wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCB4AwOgYD
# VR0lBDMwMQYKKwYBBAGCN2EBAAYIKwYBBQUHAwMGGSsGAQQBgjdh8PiHLKGwwBPl
# htEVg5ShoiEwHQYDVR0OBBYEFIvUho9MMDRBmqIyY+0vyblyNHrEMB8GA1UdIwQY
# MBaAFGtepTTDBcViSiFajqtzYGLUrGOFMGcGA1UdHwRgMF4wXKBaoFiGVmh0dHA6
# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMElEJTIw
# VmVyaWZpZWQlMjBDUyUyMEVPQyUyMENBJTIwMDMuY3JsMHQGCCsGAQUFBwEBBGgw
# ZjBkBggrBgEFBQcwAoZYaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j
# ZXJ0cy9NaWNyb3NvZnQlMjBJRCUyMFZlcmlmaWVkJTIwQ1MlMjBFT0MlMjBDQSUy
# MDAzLmNydDBUBgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYzaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMA0G
# CSqGSIb3DQEBDAUAA4ICAQBZp2EM9/KFEj3OHOKf3Wfr9O6QnqzleZCA3kQHhbe/
# 6JkSyqrbJjU3W9CibqFAOpUplhIS2JF7Lv4Zqpl/BT83XTru5CVhoe5BqtP7Rjci
# 2OSm4pB2nKNIN7okWThz1AxRQJoyZA4iVykzFF8QNmZGo5d4nWWaU2amdk0h+W7a
# 3kU+XRD8fPMLrXFJL1Kr9qwIDq/6jh5vR2xFWCKNdzPwupD4gdvpGbF7CV/GWW3B
# u/kQmy2TDIv7/0gctNEg9NnG8XrYVYxBdPmwnqTAEdIf5fnx2e5KKyrvqXHA8hj/
# 7/i6cJMDFvPCsIAQHT/XWISyTWr6+zkSriXBClAs4Cx+EawmzETk+N9Ew1HCMLC7
# x9ICMa5P4XZ3kKDSZdNielDL9qdnvIbHL3eAb9UvmGVhilvAcUjBTRD4V4Rp2gYz
# u/x/+f/gxtGy5g/cP7+ILfs/7G6Dl+8xL3NtxaLPdIjnDCKx+SbLNXV8FSKZ82C2
# qPT8zD2DQvQMcD5YFf8pbKNFukl6i5uhHY2KDD/cs6EFrYknkRMGpc7zKH+bvEBh
# ZS3dkpfnoOwDRgZboxBiYTyfylXo1s+LBiwyDF/Uwq2PJTrAWsxJSh7RgVx3IVN0
# BHA2FxVMOoD6CwUUhugyklQI6/NnSI646O82mT1F6kzaNlxJzj8YsenuToDc3PVQ
# JTCCBqMwggSLoAMCAQICEzMABeqm61HT1V7IqAgAAAAF6qYwDQYJKoZIhvcNAQEM
# BQAwWjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjErMCkGA1UEAxMiTWljcm9zb2Z0IElEIFZlcmlmaWVkIENTIEVPQyBDQSAwMzAe
# Fw0yNjA5MTEwNzUxNTJaFw0yNjA5MTQwNzUxNTJaMGcxCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpXYXNoaW5ndG9uMREwDwYDVQQHEwhJc3NhcXVhaDEXMBUGA1UEChMO
# RGFtaWFuIEVkd2FyZHMxFzAVBgNVBAMTDkRhbWlhbiBFZHdhcmRzMIIBojANBgkq
# hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAt5ZhKL6KMH7QADEIoIsZ97AWDet+ZBC7
# zoqqSFT0mV2ka3a3RRiZo1Ls6B8Q6x+z29zpR/k480FBpoewH3AOKSZXsWLgu2B1
# mWcn/lLsIoVlLLEbSMJtI5+RjIVeHGmFHrl/WD/mD5NfW9cAkOHadrplOmOA3HUC
# WlS82OpjvohJ1bjoFzuB2RjkBbSmC3vpaxMk4MpID/l1Y5yNOfKBqoD5Oxp0xIMj
# Js/mTQwhzaX0InPfFAwRoyKg+k/jjW4OfWx68/2ee0MHvK83bRojNYJ6x5duNqiM
# 3dIm270ZDkExG6+aIgAlsUDjf/aQKklO0ioSsj/myEWOjBtDWxo4agvRCCzRyiPO
# vixmOPsBnj/s0onkG3zVbw1P8zjh96nxx0OECxUghrTcsQ5B/lrVGxXeK47w9TWg
# zX3CXyoVryyEkcePBCj2cHrL14Fm58HNjROvPG21BTZyyKrBzpnsYQVsyzWIRZTg
# b1PtHOae398FMJFGlqWuc30736mPa/ndAgMBAAGjggHTMIIBzzAMBgNVHRMBAf8E
# AjAAMA4GA1UdDwEB/wQEAwIHgDA6BgNVHSUEMzAxBgorBgEEAYI3YQEABggrBgEF
# BQcDAwYZKwYBBAGCN2Hw+IcsobDAE+WG0RWDlKGiITAdBgNVHQ4EFgQUi9SGj0ww
# NEGaojJj7S/JuXI0esQwHwYDVR0jBBgwFoAUa16lNMMFxWJKIVqOq3NgYtSsY4Uw
# ZwYDVR0fBGAwXjBcoFqgWIZWaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w
# cy9jcmwvTWljcm9zb2Z0JTIwSUQlMjBWZXJpZmllZCUyMENTJTIwRU9DJTIwQ0El
# MjAwMy5jcmwwdAYIKwYBBQUHAQEEaDBmMGQGCCsGAQUFBzAChlhodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMElEJTIwVmVy
# aWZpZWQlMjBDUyUyMEVPQyUyMENBJTIwMDMuY3J0MFQGA1UdIARNMEswSQYEVR0g
# ADBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz
# L0RvY3MvUmVwb3NpdG9yeS5odG0wDQYJKoZIhvcNAQEMBQADggIBAFmnYQz38oUS
# Pc4c4p/dZ+v07pCerOV5kIDeRAeFt7/omRLKqtsmNTdb0KJuoUA6lSmWEhLYkXsu
# /hmqmX8FPzddOu7kJWGh7kGq0/tGNyLY5KbikHaco0g3uiRZOHPUDFFAmjJkDiJX
# KTMUXxA2Zkajl3idZZpTZqZ2TSH5btreRT5dEPx88wutcUkvUqv2rAgOr/qOHm9H
# bEVYIo13M/C6kPiB2+kZsXsJX8ZZbcG7+RCbLZMMi/v/SBy00SD02cbxethVjEF0
# +bCepMAR0h/l+fHZ7korKu+pccDyGP/v+LpwkwMW88KwgBAdP9dYhLJNavr7ORKu
# JcEKUCzgLH4RrCbMROT430TDUcIwsLvH0gIxrk/hdneQoNJl02J6UMv2p2e8hscv
# d4Bv1S+YZWGKW8BxSMFNEPhXhGnaBjO7/H/5/+DG0bLmD9w/v4gt+z/sboOX7zEv
# c23Fos90iOcMIrH5Jss1dXwVIpnzYLao9PzMPYNC9AxwPlgV/ylso0W6SXqLm6Ed
# jYoMP9yzoQWtiSeREwalzvMof5u8QGFlLd2Sl+eg7ANGBlujEGJhPJ/KVejWz4sG
# LDIMX9TCrY8lOsBazElKHtGBXHchU3QEcDYXFUw6gPoLBRSG6DKSVAjr82dIjrjo
# 7zaZPUXqTNo2XEnOPxix6e5OgNzc9VAlMIIHKDCCBRCgAwIBAgITMwAAABUFPm4Z
# jpMp2QAAAAAAFTANBgkqhkiG9w0BAQwFADBjMQswCQYDVQQGEwJVUzEeMBwGA1UE
# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTQwMgYDVQQDEytNaWNyb3NvZnQgSUQg
# VmVyaWZpZWQgQ29kZSBTaWduaW5nIFBDQSAyMDIxMB4XDTI2MDMyNjE4MTEyOFoX
# DTMxMDMyNjE4MTEyOFowWjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjErMCkGA1UEAxMiTWljcm9zb2Z0IElEIFZlcmlmaWVkIENT
# IEVPQyBDQSAwMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOD0yz0C
# qi8Ocx4+8w574rJuEJ3z6WiTNg5GVLeQFVex55xvIbAFyx6eWblsu0wY+OIgUvMF
# AX6CGVVX9Tb2rkZx14QQEIdNMaEvaSgistzhSuWIxFxu/2Y4y1H+Xv/ECa/QXHgE
# kefV0e3ft++sGpeYqMp8Z/kOnI7/6GdXtMSt4y1LX2I75uNn/0eemDc8KTR7thJt
# FMWTH3sVnBFakLizc16lF9FdCH9YwCPsmaxh5VmiGLhMXnJbYkyslmrAdzLMlli0
# PYeWejlkQmR2JlwRrEc6hubA7TpnUn1zbemz08YiEZqrWwosQDP0OhzmsuRhYa14
# OuxwqECnaQhz+hiUf0iPoGQ6qqBYg0SQS0Lxk0bUxqT6HejrlqPSJAqZ3Fbshloc
# 7ly7KgyL4q1h9d4giDexUhtLYQvyRS2wMZ0So2oCr+KypOLWNeot7qIqnWeLVI92
# 89b0bTcJOxgXrxv/K4hBHBt2gEJd6Yw0kJLR2isJFjhvZYADLieDtIA1wSCsGBl/
# nfn5B8tTmEbOsqMilsxptq5ZvkUpZQqQyw9xcWRdFY7iego+bgpaUXKmo6lsn8o4
# 1VF4iXEdBF6AA4HMiFEHuCv0gNDWxzYyA6BD7FUZbiirgcPSZ8CLCLIuyRmuRpDs
# mhqdiME1xH1FLbpjEBVtwG0uK0VPMIgSDll1AgMBAAGjggHcMIIB2DAOBgNVHQ8B
# Af8EBAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFGtepTTDBcViSiFa
# jqtzYGLUrGOFMFQGA1UdIARNMEswSQYEVR0gADBBMD8GCCsGAQUFBwIBFjNodHRw
# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0w
# GQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwEgYDVR0TAQH/BAgwBgEB/wIBADAf
# BgNVHSMEGDAWgBTZQSmwDw9jbO9p1/XNKZ6kSGow5jBwBgNVHR8EaTBnMGWgY6Bh
# hl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQl
# MjBJRCUyMFZlcmlmaWVkJTIwQ29kZSUyMFNpZ25pbmclMjBQQ0ElMjAyMDIxLmNy
# bDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6Ly93d3cubWljcm9z
# b2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwSUQlMjBWZXJpZmllZCUy
# MENvZGUlMjBTaWduaW5nJTIwUENBJTIwMjAyMS5jcnQwDQYJKoZIhvcNAQEMBQAD
# ggIBAF1uIjzPBctfyCUkSH/xDbZQwJSFYE7jpn0U+HA5HeZ2WpFUuRg6if8xzNTC
# uMOHHdf31I8fk9J+WQahO+c71lYczlgVVik7s1i4H6Z9VIYAZnCIY4BJaTSLYHu+
# f2cSUkmaiJfG6B8flh0GytSBO3QAU1eTOapOCT5LUfFvW7/QcKoQdVk+TYD/p4ld
# hu2lEzkVzPTSOKxSX0FFmBJ5s4NXzlsHM696rILd/Q+ccLFEk2ExvzE/+wH9Ujul
# /auF5JXvOpRK/y+f98gxuVd5pUiWmqirxI/0EkyMT8KhVcnGeRlBEzUVruQ33LO2
# 9F46HFKA+ClnH9eX+OTDIQVUlMF8GnexOB8hz+maq/Z6G1qQvYASPvwSY49CiHEl
# PfDJf4/vwYDbm0ukC/OPdEwwd3zPXxm65WL7rQwDMak4BIfUvw2Wvd9lFmdA76nL
# J7YMK9iYdoh91SBgmqfuejHEZW/z35FoROHW2AIO/A2kUJIbu+XkDhqSj7Z/HjT2
# v1NaNcLs6J/UhDlknMHhF/wa8GIdiO8yYemV52nUUZEt1JEVWkLf84qlljpq8ipm
# nv7yk/9ZA/3TcN2Cu8BPpbjE84HFc9ri0aSw3dK6olqIVgdI3J4G5+fyKx66Nbgh
# sFJscPgE+psXepn7ucb13938bb8vHiQf1wKYF+axl1KQea6QMIIHnjCCBYagAwIB
# AgITMwAAAAeHozSje6WOHAAAAAAABzANBgkqhkiG9w0BAQwFADB3MQswCQYDVQQG
# EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMUgwRgYDVQQDEz9N
# aWNyb3NvZnQgSWRlbnRpdHkgVmVyaWZpY2F0aW9uIFJvb3QgQ2VydGlmaWNhdGUg
# QXV0aG9yaXR5IDIwMjAwHhcNMjEwNDAxMjAwNTIwWhcNMzYwNDAxMjAxNTIwWjBj
# MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTQw
# MgYDVQQDEytNaWNyb3NvZnQgSUQgVmVyaWZpZWQgQ29kZSBTaWduaW5nIFBDQSAy
# MDIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsvDArxmIKOLdVHpM
# SWxpCFUJtFL/ekr4weslKPdnF3cpTeuV8veqtmKVgok2rO0D05BpyvUDCg1wdsoE
# tuxACEGcgHfjPF/nZsOkg7c0mV8hpMT/GvB4uhDvWXMIeQPsDgCzUGzTvoi76YDp
# xDOxhgf8JuXWJzBDoLrmtThX01CE1TCCvH2sZD/+Hz3RDwl2MsvDSdX5rJDYVuR3
# bjaj2QfzZFmwfccTKqMAHlrz4B7ac8g9zyxlTpkTuJGtFnLBGasoOnn5NyYlf0xF
# 9/bjVRo4Gzg2Yc7KR7yhTVNiuTGH5h4eB9ajm1OCShIyhrKqgOkc4smz6obxO+Hx
# KeJ9bYmPf6KLXVNLz8UaeARo0BatvJ82sLr2gqlFBdj1sYfqOf00Qm/3B4XGFPDK
# /H04kteZEZsBRc3VT2d/iVd7OTLpSH9yCORV3oIZQB/Qr4nD4YT/lWkhVtw2v2s0
# TnRJubL/hFMIQa86rcaGMhNsJrhysLNNMeBhiMezU1s5zpusf54qlYu2v5sZ5zL0
# KvBDLHtL8F9gn6jOy3v7Jm0bbBHjrW5yQW7S36ALAt03QDpwW1JG1Hxu/FUXJbBO
# 2AwwVG4Fre+ZQ5Od8ouwt59FpBxVOBGfN4vN2m3fZx1gqn52GvaiBz6ozorgIEjn
# +PhUXILhAV5Q/ZgCJ0u2+ldFGjcCAwEAAaOCAjUwggIxMA4GA1UdDwEB/wQEAwIB
# hjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU2UEpsA8PY2zvadf1zSmepEhq
# MOYwVAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTAZBgkrBgEE
# AYI3FAIEDB4KAFMAdQBiAEMAQTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaA
# FMh+0mqFKhvKGZgEByfPUBBPaKiiMIGEBgNVHR8EfTB7MHmgd6B1hnNodHRwOi8v
# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBJZGVudGl0
# eSUyMFZlcmlmaWNhdGlvbiUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0
# eSUyMDIwMjAuY3JsMIHDBggrBgEFBQcBAQSBtjCBszCBgQYIKwYBBQUHMAKGdWh0
# dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIw
# SWRlbnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBB
# dXRob3JpdHklMjAyMDIwLmNydDAtBggrBgEFBQcwAYYhaHR0cDovL29uZW9jc3Au
# bWljcm9zb2Z0LmNvbS9vY3NwMA0GCSqGSIb3DQEBDAUAA4ICAQB/JSqe/tSr6t1m
# CttXI0y6XmyQ41uGWzl9xw+WYhvOL47BV09Dgfnm/tU4ieeZ7NAR5bguorTCNr58
# HOcA1tcsHQqt0wJsdClsu8bpQD9e/al+lUgTUJEV80Xhco7xdgRrehbyhUf4pkeA
# hBEjABvIUpD2LKPho5Z4DPCT5/0TlK02nlPwUbv9URREhVYCtsDM+31OFU3fDV8B
# mQXv5hT2RurVsJHZgP4y26dJDVF+3pcbtvh7R6NEDuYHYihfmE2HdQRq5jRvLE1E
# b59PYwISFCX2DaLZ+zpU4bX0I16ntKq4poGOFaaKtjIA1vRElItaOKcwtc04CBrX
# SfyL2Op6mvNIxTk4OaswIkTXbFL81ZKGD+24uMCwo/pLNhn7VHLfnxlMVzHQVL+b
# Ha9KhTyzwdG/L6uderJQn0cGpLQMStUuNDArxW2wF16QGZ1NtBWgKA8Kqv48M8Hf
# FqNifN6+zt6J0GwzvU8g0rYGgTZR8zDEIJfeZxwWDHpSxB5FJ1VVU1LIAtB7o9PX
# bjXzGifaIMYTzU4YKt4vMNwwBmetQDHhdAtTPplOXrnI9SI6HeTtjDD3iUN/7ygb
# ahmYOHk7VB7fwT4ze+ErCbMh6gHV1UuXPiLciloNxH6K4aMfZN1oLVk6YFeIJEok
# uPgNPa6EnTiOL60cPqfny+Fq8UiuZzGCGpQwghqQAgEBMHEwWjELMAkGA1UEBhMC
# VVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UEAxMiTWlj
# cm9zb2Z0IElEIFZlcmlmaWVkIENTIEVPQyBDQSAwMwITMwAF6qbrUdPVXsioCAAA
# AAXqpjANBglghkgBZQMEAgEFAKBeMBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3
# DQEJAzEMBgorBgEEAYI3AgEEMC8GCSqGSIb3DQEJBDEiBCATvJ1cGmt/h/qzs5CR
# Tcx8l/cq0VxIzh7+4mTbB1gShzANBgkqhkiG9w0BAQEFAASCAYAzPDDDzUoXeE5/
# AOgBhmbVsQzDvtkl7ZZjzzGHwsER+9LYerA7BFcC7W/YK2FlEJUnROW0ZJrxQ5vu
# OQRftHrUfFZV5QgUo9aLeeCMfL5KFtm+zhGvmROlhA9M+CuxKVJDfXY0t85aMkT5
# z7iI8rRzl3BAO5hAVNIawcROxn0inGXwV3mKII0M8GVlYc4/1Q07HuR2nV0jF+xJ
# xek0843xEu+67lGUTqgdtWYtRxfGBxvPomh0hc8OOQCgm3xgEOU7oQl62+bMp7gZ
# aYkX6Q3tU8D3Csle5EMsz047mk5Mo+ZHUjEJSxAplPctyo0aYseO83jWcyR/LcLm
# HrngVYfevs4Oj/FMsWjXZl6gMGotdIOyaEQ3N3ASUfo/edFsDXZP/tu8KsG3saMO
# jlmTAdbVuKffPc2Gl0pbZt40fOts2GudunLDbo/J1qfuAIoZeokmAtjm0A5gXEu0
# hFuKi2yt4ukzfxpya88DogM6/9AwWdJ9jW2+MgIug8hsCyULIxmhghgUMIIYEAYK
# KwYBBAGCNwMDATGCGAAwghf8BgkqhkiG9w0BBwKgghftMIIX6QIBAzEPMA0GCWCG
# SAFlAwQCAQUAMIIBYgYLKoZIhvcNAQkQAQSgggFRBIIBTTCCAUkCAQEGCisGAQQB
# hFkKAwEwMTANBglghkgBZQMEAgEFAAQgRVD7ZH+qATmLGhhmvzY++PrN6mEGU8wQ
# hknyyBM4iDoCBmqkEjJ2IRgTMjAyNjA5MTMwNTMzNDUuMDEzWjAEgAIB9KCB4aSB
# 3jCB2zELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UE
# CxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVs
# ZCBUU1MgRVNOOjc4MDAtMDVFMC1EOTQ3MTUwMwYDVQQDEyxNaWNyb3NvZnQgUHVi
# bGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhvcml0eaCCDyEwggeCMIIFaqADAgEC
# AhMzAAAABeXPD/9mLsmHAAAAAAAFMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYT
# AlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01p
# Y3Jvc29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBB
# dXRob3JpdHkgMjAyMDAeFw0yMDExMTkyMDMyMzFaFw0zNTExMTkyMDQyMzFaMGEx
# CzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAw
# BgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIw
# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnnznUmP94MWfBX1jtQYi
# oxwe1+eXM9ETBb1lRkd3kcFdcG9/sqtDlwxKoVIcaqDb+omFio5DHC4RBcbyQHjX
# CwMk/l3TOYtgoBjxnG/eViS4sOx8y4gSq8Zg49REAf5huXhIkQRKe3Qxs8Sgp02K
# HAznEa/Ssah8nWo5hJM1xznkRsFPu6rfDHeZeG1Wa1wISvlkpOQooTULFm809Z0Z
# YlQ8Lp7i5F9YciFlyAKwn6yjN/kR4fkquUWfGmMopNq/B8U/pdoZkZZQbxNlqJOi
# BGgCWpx69uKqKhTPVi3gVErnc/qi+dR8A2MiAz0kN0nh7SqINGbmw5OIRC0EsZ31
# WF3Uxp3GgZwetEKxLms73KG/Z+MkeuaVDQQheangOEMGJ4pQZH55ngI0Tdy1bi69
# INBV5Kn2HVJo9XxRYR/JPGAaM6xGl57Ei95HUw9NV/uC3yFjrhc087qLJQawSC3x
# zY/EXzsT4I7sDbxOmM2rl4uKK6eEpurRduOQ2hTkmG1hSuWYBunFGNv21Kt4N20A
# KmbeuSnGnsBCd2cjRKG79+TX+sTehawOoxfeOO/jR7wo3liwkGdzPJYHgnJ54Uxb
# ckF914AqHOiEV7xTnD1a69w/UTxwjEugpIPMIIE67SFZ2PMo27xjlLAHWW3l1CEA
# FjLNHd3EQ79PUr8FUXetXr0CAwEAAaOCAhswggIXMA4GA1UdDwEB/wQEAwIBhjAQ
# BgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUa2koOjUvSGNAz3vYr0npPtk92yEw
# VAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj
# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK
# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAPBgNVHRMBAf8E
# BTADAQH/MB8GA1UdIwQYMBaAFMh+0mqFKhvKGZgEByfPUBBPaKiiMIGEBgNVHR8E
# fTB7MHmgd6B1hnNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9N
# aWNyb3NvZnQlMjBJZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUyMFJvb3QlMjBDZXJ0
# aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMjAuY3JsMIGUBggrBgEFBQcBAQSBhzCB
# hDCBgQYIKwYBBQUHMAKGdWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv
# Y2VydHMvTWljcm9zb2Z0JTIwSWRlbnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290
# JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDIwLmNydDANBgkqhkiG9w0B
# AQwFAAOCAgEAX4h2x35ttVoVdedMeGj6TuHYRJklFaW4sTQ5r+k77iB79cSLNe+G
# zRjv4pVjJviceW6AF6ycWoEYR0LYhaa0ozJLU5Yi+LCmcrdovkl53DNt4EXs87KD
# ogYb9eGEndSpZ5ZM74LNvVzY0/nPISHz0Xva71QjD4h+8z2XMOZzY7YQ0Psw+ety
# NZ1CesufU211rLslLKsO8F2aBs2cIo1k+aHOhrw9xw6JCWONNboZ497mwYW5EfN0
# W3zL5s3ad4Xtm7yFM7Ujrhc0aqy3xL7D5FR2J7x9cLWMq7eb0oYioXhqV2tgFqbK
# HeDick+P8tHYIFovIP7YG4ZkJWag1H91KlELGWi3SLv10o4KGag42pswjybTi4to
# QcC/irAodDW8HNtX+cbz0sMptFJK+KObAnDFHEsukxD+7jFfEV9Hh/+CSxKRsmnu
# iovCWIOb+H7DRon9TlxydiFhvu88o0w35JkNbJxTk4MhF/KgaXn0GxdH8elEa2Im
# q45gaa8D+mTm8LWVydt4ytxYP/bqjN49D9NZ81coE6aQWm88TwIf4R4YZbOpMKN0
# CyejaPNN41LGXHeCUMYmBx3PkP8ADHD1J2Cr/6tjuOOCztfp+o9Nc+ZoIAkpUcA/
# X2gSMkgHAPUvIdtoSAHEUKiBhI6JQivRepyvWcl+JYbYbBh7pmgAXVswggeXMIIF
# f6ADAgECAhMzAAAAVyTTleCi6ckxAAAAAABXMA0GCSqGSIb3DQEBDAUAMGExCzAJ
# BgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNV
# BAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwMB4X
# DTI1MTAyMzIwNDY1M1oXDTI2MTAyMjIwNDY1M1owgdsxCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
# aWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNh
# IE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo3ODAwLTA1RTAt
# RDk0NzE1MDMGA1UEAxMsTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZSBTdGFtcGlu
# ZyBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCxbKUK
# kwh9uLMktjWQ9c7ZyZfYdFa9FsCZ4pJnl7Hv+MLKZ1XsRqn4hzaKpG1YOQop7mAv
# olXzTC2fkLaocks/FRgUo0bdSQeQAjbUygI35haeFPwr9i4+Jvr7r3vSN1t4UoiJ
# kxbB3mGelf0neN6164R1dun8N8UErXkm4Pck7Na4Xay5AI+CpiNA+T+Cmr7coIq1
# clFtdIJIn1i0hNTYgfCZ90TuXY99nXnjDTjWmj58N5OPSAk7NxX8m/npDQz7DX2M
# Aqj8jk8TOstXUg9CeY/iivVfhFsleTw41fI459c7ErZUuk3GCSUrXIB7NsU/a7Oq
# KFpeRbWH0ZAsYQ0oRKd7PCB1Fos01pi2bwBP+lkdgnfmZlWqRl0whySlAcmT8XV9
# IvIMp4q0fhMLhxzcRIpQyAi2rTtlmbvgkKx+GatDWKNU0OLVKWf5AFqaALta+Jlu
# RCdx5BGr0Nj7qEA3A6tqwBlSJWvaQ+6PWMcM5fNQbg71BMrvQ/+hdKpkA3WhO/dR
# 8XwlMaYDGD6XVk87PnQxj3ocEPD/dsj/AEY28uTp8tWevEY3kHm6cX+Vi+ONZshR
# 3IE9VCc84pe7TxJEdtjX0zUehZfo81m/6/NJ6pV5ZYcp0qMLcaNWNtsamL4ktuLJ
# opFLASqjj20ku+7r1xDt1axuSxqLhNRGdWPaYwIDAQABo4IByzCCAccwHQYDVR0O
# BBYEFI6DyV4tNQ4CCUhn5uNemIPtEpKnMB8GA1UdIwQYMBaAFGtpKDo1L0hjQM97
# 2K9J6T7ZPdshMGwGA1UdHwRlMGMwYaBfoF2GW2h0dHA6Ly93d3cubWljcm9zb2Z0
# LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFB1YmxpYyUyMFJTQSUyMFRpbWVz
# dGFtcGluZyUyMENBJTIwMjAyMC5jcmwweQYIKwYBBQUHAQEEbTBrMGkGCCsGAQUF
# BzAChl1odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jv
# c29mdCUyMFB1YmxpYyUyMFJTQSUyMFRpbWVzdGFtcGluZyUyMENBJTIwMjAyMC5j
# cnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8B
# Af8EBAMCB4AwZgYDVR0gBF8wXTBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcC
# ARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRv
# cnkuaHRtMAgGBmeBDAEEAjANBgkqhkiG9w0BAQwFAAOCAgEAcnXAdjzpmTlJQEM9
# jbl3+71glVpo1rvW7GNfhzI79cni48Q0JI7CRFOc2iA8vFMPQWDfPhMV//ZP/QgV
# LF21ZW1OOHOuf5YsifN5FrBSFMIVWs8EkoRZWyGb4iDv+cHslsk3zz6W0iYFsvmR
# PVK0Et8bpSSwBwNs1JDDD3QJReEa54HGWdK+OQBfWiGI3XrLVsHazSu9DHwKx6mX
# YK4F59N8OswbNb+3M3HlhorYPw5bB6pNZlwaUk7hiNk0jzdxOtCCF8eX/wBc4ePx
# xYvfAQWW1BCzbF5FgBvcp2eXughYopdZoFgljk/dA+yIL4NMynt6N1gpOtvf3p/e
# Cv7Av8yzn9ne8hZk8km/Xyo3DjR9Q295GfDMxCfHx0zZsa5ddBnnLs/xpdPgckyj
# fj2pm2fhdDCJQT8MOn74xQvSSCO938N6jtevfvU8U89hvhNuhmGNXXH37AIcOg6k
# 0IG35W5dTvzK0l0rNDUm/ZwQ/UX0f3/BIuwwNS9YwTu72YYSU48Nk8xWvwC4ES4t
# 1tNIR1ovCxkGmXPEsFyDGFn8KzfTIGG4TdCGpPVgNnalrnpF7E8DZJqw9xOhPqAm
# AnoTToGZnbNBM29Y6OzldCodti5dyh4NzB7ZRoLsQM4YPwaYsT0uKq1Cy5AIzu/s
# jbFH6w9lPYDH/zkeMiQz7czNMrUxggdGMIIHQgIBATB4MGExCzAJBgNVBAYTAlVT
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jv
# c29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwAhMzAAAAVyTTleCi
# 6ckxAAAAAABXMA0GCWCGSAFlAwQCAQUAoIIEnzARBgsqhkiG9w0BCRACDzECBQAw
# GgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMBwGCSqGSIb3DQEJBTEPFw0yNjA5
# MTMwNTMzNDVaMC8GCSqGSIb3DQEJBDEiBCCX9WZeZWFOc3vkDCbVu48VwDs6to/q
# XT/GtirVnhArMDCBuQYLKoZIhvcNAQkQAi8xgakwgaYwgaMwgaAEIPU8n2S1BW5M
# ZYhsos7h/VVQ6VRTb0BEISkNmYVMeNtSMHwwZaRjMGExCzAJBgNVBAYTAlVTMR4w
# HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29m
# dCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwAhMzAAAAVyTTleCi6ckx
# AAAAAABXMIIDYQYLKoZIhvcNAQkQAhIxggNQMIIDTKGCA0gwggNEMIICLAIBATCC
# AQmhgeGkgd4wgdsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# JTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsT
# Hm5TaGllbGQgVFNTIEVTTjo3ODAwLTA1RTAtRDk0NzE1MDMGA1UEAxMsTWljcm9z
# b2Z0IFB1YmxpYyBSU0EgVGltZSBTdGFtcGluZyBBdXRob3JpdHmiIwoBATAHBgUr
# DgMCGgMVAP0vMTmcQlEBQTZKzfFooo9cecvDoGcwZaRjMGExCzAJBgNVBAYTAlVT
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jv
# c29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwMA0GCSqGSIb3DQEB
# CwUAAgUA7lCK9jAiGA8yMDI2MDkxMzAyMzc0MloYDzIwMjYwOTE0MDIzNzQyWjB3
# MD0GCisGAQQBhFkKBAExLzAtMAoCBQDuUIr2AgEAMAoCAQACAgh1AgH/MAcCAQAC
# AhIyMAoCBQDuUdx2AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKg
# CjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAF4z1RIO
# shGi3ioYXycVzN5USPgDFlXdaPz64kGwI8b/3u7+auneLQw/G81h37DeBQmmIUFb
# GDP/Kzlgdp9mJ/O0f9fWAwACAGj4nyFehUn7nyBlraj+KDmQLTCGPiAt9EYS8unt
# BT6aL84mm7Rn5ilig8tEMQmn7vfmdJYUdg4AFF5bu9XuMGZL+euMjVw3UhUts+oC
# zykFaJnZgkmkWzrhtuxFpxmAv8tOWbjm6X3b8dMLnK10yVNlFG1WdPZUPK8NmEBa
# YSZCYPmZNF6wxGNxayfo8b9L1qHrPh1HtL/hWtVuijHXwoB3IPWnusT62++ddolL
# LM72lhzgOls4pmowDQYJKoZIhvcNAQEBBQAEggIACPJiOUau6Z3/sdyC8ixhGcb+
# rgWKMJneoTmF256nlwZkOSU/LDlevB/rGjErKO+/Et9l9t60CGFkz2y2z0+BQWPL
# zC4EdOi0l32SQrvOIzGqdtKMnqsWb+rTY4p6SOxZONr09fW+0zUXzxQ/ITL5fjj6
# 4GJzMSo2GxtXV2IlsgSz2z9YE0m5xxby3eGp8TkHbE/7fJPadx5wVKcQNRvKyYKo
# rH3g7qAbDBo56SS3kAUjmlcMDjcROfaaI2uavSBXqvllrNbxvHBkXN5mxIPeL85g
# 5/md56duyOxlLmjrS6XfJE2ubkSEohWNtdWY9L+QGDk6aaQklHXwr/HFduqBpAKQ
# otvUIMHPSAUrMgf6HdG5HBJU1vU4AyOVWGicOZREnh+OnJp2o9YNZe67L/oKTKgs
# 7JytAQrOwW/5h9L6+u8tQAo9cLdaX8RS0lZUzOC012fn3jNGo337bK9YUKMPTWdy
# ACjCtYVD5LnUjjfCHFssuntbJTHcApQEx13a5PppsdT6U5+G/kEMcvWfiz8eJKXk
# kEujGk+hFkV9AtqwnyPK7YedSkF0I4iqgKqqwtdXNZtYlm++kqikEKRk3H+s1zBC
# qKmRwZpn143QTxLqny9ndVSfKatB44+jxYkOyDZcsKhVTzleaLFKNpeTvc02/kL0
# oLmlz+FF6quo+O2md5k=
# SIG # End signature block