Professional Documents
Culture Documents
param(
[string]$XCInstallRoot = "C:\Users\Administrator\SiteCore\Sitecore.Commerce.WDP.2020.01-
5.0.145",
[string]$XCSIFInstallRoot = $PWD,
# Specifies whether or not to bypass the installation of the default SXA Storefront. By default, the
Sitecore XC installation script also deploys the SXA Storefront.
[bool]$SkipInstallDefaultStorefront = $false,
# Specifies whether or not to bypass the installation of the SXA Storefront packages.
# If set to $true, $TasksToSkip parameter will be populated with the list of tasks to skip in order to
bypass SXA Storefront packages installation.
[bool]$SkipDeployStorefrontPackages = $false,
[string]$Path = "$XCSIFInstallRoot\Configuration\Commerce\Master_SingleServer.json",
# Path to the Commerce Solr schemas provided as part of the SIF.Sitecore.Commerce package.
[string]$SolrSchemas = "$XCSIFInstallRoot\SolrSchemas",
[string]$SiteUtilitiesSrc = "$XCSIFInstallRoot\SiteUtilityPages",
[string]$MergeToolFullPath =
"$XCInstallRoot\MSBuild.Microsoft.VisualStudio.Web.targets*\tools\VSToolsPath\Web\Microsoft.Web.
XmlTransform.dll",
# Path to the Sitecore Commerce Experience Accelerator Habitat Catalog SCWDP file.
# Path to the Sitecore Commerce Experience Accelerator Storefront Themes SCWDP file.
# Path to the Sitecore Commerce Marketing Automation for AutomationEngine zip file.
[string]$PowerShellExtensionsModuleZIPFullPath =
"$XCInstallRoot\Sitecore.PowerShell.Extensions*.zip",
[string]$CommerceEngineWdpFullPath =
"$XCInstallRoot\Sitecore.Commerce.Engine.OnPrem.Solr.*scwdp.zip",
[string]$HabitatImagesWdpFullPath =
"$XCInstallRoot\Sitecore.Commerce.Habitat.Images.OnPrem.scwdp.zip",
# The prefix that will be used on SOLR, Website and Database instances. The default value matches
ankur modified the Sitecore XP default.
[string]$SiteNamePrefix = "sitecor93",
[string]$SiteName = "sitecor93sc.dev.local",
[string]$IdentityServerSiteName = "sitecor93identityserver.dev.local",
[string]$SitecoreIdentityServerUrl = "https://$IdentityServerSiteName",
# The Commerce Engine Connect Client Id for the Sitecore Identity Server
[string]$CommerceEngineConnectClientId = "CommerceEngineConnect",
# The Commerce Engine Connect Client Secret for the Sitecore Identity Server,ankur--> modified
secret
[string]$CommerceEngineConnectClientSecret =
"Ez0s7j5rL3iiFDnU0XK4WX+7R+sxRDc5aV4hxzdulXM=",
[string]$SiteHostHeaderName = "sitecor93sc.dev.local",
[string]$InstallDir = "$($Env:SYSTEMDRIVE)\inetpub\wwwroot\$SiteName",
[string]$XConnectInstallDir = "$($Env:SYSTEMDRIVE)\inetpub\wwwroot\sitecor93xconnect.dev.local",
# The path to the inetpub folder where Commerce is installed.
[string]$CommerceInstallRoot = "$($Env:SYSTEMDRIVE)\inetpub\wwwroot\",
[string]$SqlDbPrefix = $SiteNamePrefix,
# The location of the database server where Sitecore XP databases are hosted. In case of named SQL
instance, use "SQLServerName\\SQLInstanceName"
[string]$SitecoreDbServer = $($Env:COMPUTERNAME),
[string]$SitecoreCoreDbName = "$($SqlDbPrefix)_Core",
[string]$SqlUser = "sa",
[string]$SqlPass = "admin@123",
[string]$SitecoreDomain = "sitecore",
[string]$SitecoreUsername = "admin",
[string]$SitecoreUserPassword = "admin@123",
# The prefix for the Search index. Using the SiteName value for the prefix is recommended.mdofied by
ankur
[string]$SearchIndexPrefix = "xc93",
[string]$SolrUrl = "https://localhost:8983/solr",
[string]$SolrRoot = "$($Env:SYSTEMDRIVE)\Solr8\Solr8solr-8.1.1",
# The name of the Solr Service. mdoified by ankur
[string]$SolrService = "Solr8solr-8.1.1",
# The prefix for the Storefront index. The default value is the SiteNamePrefix.
[string]$StorefrontIndexPrefix = $SiteNamePrefix,
[string]$RedisConfiguration = "localhost",
[string]$RedisInstanceName = "Redis",
# The location of the database server where Commerce databases should be deployed. In case of
named SQL instance, use "SQLServerName\\SQLInstanceName"
[string]$CommerceServicesDbServer = $($Env:COMPUTERNAME),
[string]$CommerceServicesDbName = "SitecoreCommerce9_SharedEnvironments",
[string]$CommerceServicesGlobalDbName = "SitecoreCommerce9_Global",
[string]$CommerceOpsServicesPort = "5015",
[string]$CommerceShopsServicesPort = "5005",
[string]$CommerceAuthoringServicesPort = "5000",
[string]$CommerceMinionsServicesPort = "5010",
# The postfix allows you to host more than one Commerce installment on one server.
[string]$CommerceServicesPostfix = "Sc9",
# The postfix used as the root domain name (two-levels) to append as the hostname for Commerce
services.
# By default, all Commerce services are configured as sub-domains of the domain identified by the
postfix.
# 1. The first level (TopDomainName) must be 2-7 characters in length and can contain alphabetical
characters (a-z, A-Z) only. Numeric and special characters are not valid.
# 2. The second level (DomainName) can contain alpha-numeric characters (a-z, A-Z,and 0-9) and can
include one hyphen (-) character.
[string]$CommerceServicesHostPostfix = "sc93.local",
[string]$BizFxSiteName = "SitecoreBizFx93",
[string]$BizFxPort = "4200",
# The prefix used in the EnvironmentName setting in the config.json file for each Commerce Engine
role.
[string]$EnvironmentsPrefix = "Habitat",
# The list of Commerce environment names. By default, the script deploys the AdventureWorks and
the Habitat environments.
# Commerce environments GUIDs used to clean existing Redis cache during deployment. Default
parameter values correspond to the default Commerce environment GUIDS.
[array]$EnvironmentsGuids = @("78a1ea611f3742a7ac899a3f46d60ca5",
"40e77b7b4be94186b53b5bfd89a6a83b"),
# The environments running the minions service. (This is required, for example, for running indexing
minions).
[string]$UserDomain = "CORP",
# The user name for a local account to be set up for the various application pools that are created as
part of the deployment.
[string]$UserName = "CSFndRuntimeUser",
[string]$UserPassword = "admin@123",
[string]$BraintreeMerchantId = "",
[string]$BraintreePublicKey = "",
[string]$BraintreePrivateKey = "",
[string]$BraintreeEnvironment = "",
[string]$TasksToSkip = ""
Function Resolve-ItemPath {
param (
[Parameter(Mandatory = $true)]
[ValidateNotNullorEmpty()]
[string] $Path
process {
if ([string]::IsNullOrWhiteSpace($Path)) {
throw "Parameter could not be validated because it contains only whitespace. Please check script
parameters."
throw "Path [$Path] could not be resolved. Please check script parameters."
return $itemPath
throw "You cannot install the SXA Storefront without deploying necessary packages. If you want to
install the SXA Storefront, set [SkipDeployStorefrontPackages] parameter to [false]."
if (-not ([string]::IsNullOrWhiteSpace($TasksToSkip))) {
if ($SkipDeployStorefrontPackages) {
"Module-PowershellExtensions_CheckPaths",
"Module-PowershellExtensions_InstallModule",
"Module-SXAFramework_CheckPaths",
"Module-SXAFramework_InstallModule",
"Publish-Extensions_PublishToWeb",
"SXAStorefrontWdpsInstall_InstallCXAWDP",
"SXAStorefrontWdpsInstall_InstallSXAStorefrontWDP",
"SXAStorefrontWdpsInstall_InstallStorefrontThemesWDP",
"SXAStorefrontWdpsInstall_InstallStorefrontCatalogWDP",
Push-Location $PSScriptRoot
[Environment]::SetEnvironmentVariable("PSModulePath", "$env:PSModulePath;$modulesPath")
$deployCommerceParams = @{
SiteName = $SiteName
SiteHostHeaderName = $SiteHostHeaderName
CommerceServicesDbServer = $CommerceServicesDbServer
CommerceServicesDbName = $CommerceServicesDbName
CommerceServicesGlobalDbName = $CommerceServicesGlobalDbName
SitecoreDbServer = $SitecoreDbServer
SitecoreCoreDbName = $SitecoreCoreDbName
SqlDbPrefix = $SqlDbPrefix
SqlAdminUser = $SqlUser
SqlAdminPassword = $SqlPass
SolrUrl = $SolrUrl
SolrService = $SolrService
SearchIndexPrefix = $SearchIndexPrefix
StorefrontIndexPrefix = $StorefrontIndexPrefix
CommerceServicesPostfix = $CommerceServicesPostfix
CommerceServicesHostPostfix = $CommerceServicesHostPostfix
EnvironmentsPrefix = $EnvironmentsPrefix
Environments = $Environments
EnvironmentsGuids = $EnvironmentsGuids
MinionEnvironments = $MinionEnvironments
CommerceOpsServicesPort = $CommerceOpsServicesPort
CommerceShopsServicesPort = $CommerceShopsServicesPort
CommerceAuthoringServicesPort = $CommerceAuthoringServicesPort
CommerceMinionsServicesPort = $CommerceMinionsServicesPort
RedisConfiguration = $RedisConfiguration
RedisInstanceName = $RedisInstanceName
UserDomain = $UserDomain
UserName = $UserName
UserPassword = $UserPassword
BraintreeMerchantId = $BraintreeMerchantId
BraintreePublicKey = $BraintreePublicKey
BraintreePrivateKey = $BraintreePrivateKey
BraintreeEnvironment = $BraintreeEnvironment
SitecoreDomain = $SitecoreDomain
SitecoreUsername = $SitecoreUsername
SitecoreUserPassword = $SitecoreUserPassword
BizFxSiteName = $BizFxSiteName
BizFxPort = $BizFxPort
SitecoreIdentityServerApplicationName = $IdentityServerSiteName
SitecoreIdentityServerUrl = $SitecoreIdentityServerUrl
SkipInstallDefaultStorefront = $SkipInstallDefaultStorefront
CommerceEngineConnectClientId = $CommerceEngineConnectClientId
CommerceEngineConnectClientSecret = $CommerceEngineConnectClientSecret
}
if ($Skip.Count -eq 0) {
# Uncomment the below line and comment out the above if you want to remove the Sitecore XC
else {
# Uncomment the below line and comment out the above if you want to remove the Sitecore XC
# MIIXwQYJKoZIhvcNAQcCoIIXsjCCF64CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU8Dgy+6D26X5vsSDIccvLPe3P
# DSygghL8MIID7jCCA1egAwIBAgIQfpPr+3zGTlnqS5p31Ab8OzANBgkqhkiG9w0B
# AQUFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIG
# A1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhh
# d3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg
# Q0EwHhcNMTIxMjIxMDAwMDAwWhcNMjAxMjMwMjM1OTU5WjBeMQswCQYDVQQGEwJV
# UzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xMDAuBgNVBAMTJ1N5bWFu
# dGVjIFRpbWUgU3RhbXBpbmcgU2VydmljZXMgQ0EgLSBHMjCCASIwDQYJKoZIhvcN
# AQEBBQADggEPADCCAQoCggEBALGss0lUS5ccEgrYJXmRIlcqb9y4JsRDc2vCvy5Q
# WvsUwnaOQwElQ7Sh4kX06Ld7w3TMIte0lAAC903tv7S3RCRrzV9FO9FEzkMScxeC
# i2m0K8uZHqxyGyZNcR+xMd37UWECU6aq9UksBXhFpS+JzueZ5/6M4lc/PcaS3Er4
# ezPkeQr78HWIQZz/xQNRmarXbJ+TaYdlKYOFwmAUxMjJOxTawIHwHw103pIiq8r3
# +3R8J+b3Sht/p8OeLa6K6qbmqicWfWH3mHERvOJQoUvlXfrlDqcsn6plINPYlujI
# fKVOSET/GeJEB5IL12iEgF1qeGRFzWBGflTBE3zFefHJwXECAwEAAaOB+jCB9zAd
# BgNVHQ4EFgQUX5r1blzMzHSa1N197z/b7EyALt0wMgYIKwYBBQUHAQEEJjAkMCIG
# CCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMBIGA1UdEwEB/wQIMAYB
# Af8CAQAwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NybC50aGF3dGUuY29tL1Ro
# YXd0ZVRpbWVzdGFtcGluZ0NBLmNybDATBgNVHSUEDDAKBggrBgEFBQcDCDAOBgNV
# HQ8BAf8EBAMCAQYwKAYDVR0RBCEwH6QdMBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0y
# MDQ4LTEwDQYJKoZIhvcNAQEFBQADgYEAAwmbj3nvf1kwqu9otfrjCR27T4IGXTdf
# plKfFo3qHJIJRG71betYfDDo+WmNI3MLEm9Hqa45EfgqsZuwGsOO61mWAK3ODE2y
# 0DGmCFwqevzieh1XTKhlGOl5QGIllm7HxzdqgyEIjkHq3dlXPx13SYcqFgZepjhq
# IhKjURmDfrYwggSjMIIDi6ADAgECAhAOz/Q4yP6/NW4E2GqYGxpQMA0GCSqGSIb3
# DQEBBQUAMF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3Jh
# dGlvbjEwMC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNlcyBD
# QSAtIEcyMB4XDTEyMTAxODAwMDAwMFoXDTIwMTIyOTIzNTk1OVowYjELMAkGA1UE
# BhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMTQwMgYDVQQDEytT
# eW1hbnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIFNpZ25lciAtIEc0MIIBIjAN
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAomMLOUS4uyOnREm7Dv+h8GEKU5Ow
# mNutLA9KxW7/hjxTVQ8VzgQ/K/2plpbZvmF5C1vJTIZ25eBDSyKV7sIrQ8Gf2Gi0
# jkBP7oU4uRHFI/JkWPAVMm9OV6GuiKQC1yoezUvh3WPVF4kyW7BemVqonShQDhfu
# ltthO0VRHc8SVguSR/yrrvZmPUescHLnkudfzRC5xINklBm9JYDh6NIipdC6Anqh
# d5NbZcPuF3S8QYYq3AhMjJKMkS2ed0QfaNaodHfbDlsyi1aLM73ZY8hJnTrFxeoz
# C9Lxoxv0i77Zs1eLO94Ep3oisiSuLsdwxb5OgyYI+wu9qU+ZCOEQKHKqzQIDAQAB
# o4IBVzCCAVMwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAO
# BgNVHQ8BAf8EBAMCB4AwcwYIKwYBBQUHAQEEZzBlMCoGCCsGAQUFBzABhh5odHRw
# Oi8vdHMtb2NzcC53cy5zeW1hbnRlYy5jb20wNwYIKwYBBQUHMAKGK2h0dHA6Ly90
# cy1haWEud3Muc3ltYW50ZWMuY29tL3Rzcy1jYS1nMi5jZXIwPAYDVR0fBDUwMzAx
# oC+gLYYraHR0cDovL3RzLWNybC53cy5zeW1hbnRlYy5jb20vdHNzLWNhLWcyLmNy
# bDAoBgNVHREEITAfpB0wGzEZMBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtMjAdBgNV
# HQ4EFgQURsZpow5KFB7VTNpSYxc/Xja8DeYwHwYDVR0jBBgwFoAUX5r1blzMzHSa
# 1N197z/b7EyALt0wDQYJKoZIhvcNAQEFBQADggEBAHg7tJEqAEzwj2IwN3ijhCcH
# bxiy3iXcoNSUA6qGTiWfmkADHN3O43nLIWgG2rYytG2/9CwmYzPkSWRtDebDZw73
# BaQ1bHyJFsbpst+y6d0gxnEPzZV03LZc3r03H0N45ni1zSgEIKOq8UvEiCmRDoDR
# EfzdXHZuT14ORUZBbg2w6jiasTraCXEQ/Bx5tIB7rGn0/Zy2DBYr8X9bCT2bW+IW
# yhOBbQAuOA2oKY8s4bL0WqkBrxWcLC9JG9siu8P+eJRRw4axgohd8D20UaF5Mysu
# e7ncIAkTcetqGVvP6KUwVyyJST+5z3/Jvz4iaGNTmr1pdKzFHTx/kuDDvBzYBHUw
# ggUrMIIEE6ADAgECAhAHplztCw0v0TJNgwJhke9VMA0GCSqGSIb3DQEBCwUAMHIx
# CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
# dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJ
# RCBDb2RlIFNpZ25pbmcgQ0EwHhcNMTcwODIzMDAwMDAwWhcNMjAwOTMwMTIwMDAw
# WjBoMQswCQYDVQQGEwJVUzELMAkGA1UECBMCY2ExEjAQBgNVBAcTCVNhdXNhbGl0
# bzEbMBkGA1UEChMSU2l0ZWNvcmUgVVNBLCBJbmMuMRswGQYDVQQDExJTaXRlY29y
# ZSBVU0EsIEluYy4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7PZ/g
# huhrQ/p/0Cg7BRrYjw7ZMx8HNBamEm0El+sedPWYeAAFrjDSpECxYjvK8/NOS9dk
# tC35XL2TREMOJk746mZqia+g+NQDPEaDjNPG/iT0gWsOeCa9dUcIUtnBQ0hBKsuR
# bau3n7w1uIgr3zf29vc9NhCoz1m2uBNIuLBlkKguXwgPt4rzj66+18JV3xyLQJoS
# 3ZAA8k6FnZltNB+4HB0LKpPmF8PmAm5fhwGz6JFTKe+HCBRtuwOEERSd1EN7TGKi
# xczSX8FJMz84dcOfALxjTj6RUF5TNSQLD2pACgYWl8MM0lEtD/1eif7TKMHqaA+s
# m/yJrlKEtOr836BvAgMBAAGjggHFMIIBwTAfBgNVHSMEGDAWgBRaxLl7Kgqjpepx
# A8Bg+S32ZXUOWDAdBgNVHQ4EFgQULh60SWOBOnU9TSFq0c2sWmMdu7EwDgYDVR0P
# AQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMHcGA1UdHwRwMG4wNaAzoDGG
# L2h0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
# MDWgM6Axhi9odHRwOi8vY3JsNC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNz
# LWcxLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG/WwDATAqMCgGCCsGAQUFBwIBFhxo
# dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAEEATCBhAYIKwYBBQUH
# AQEEeDB2MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wTgYI
# KwYBBQUHMAKGQmh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNI
# QTJBc3N1cmVkSURDb2RlU2lnbmluZ0NBLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqG
# SIb3DQEBCwUAA4IBAQBozpJhBdsaz19E9faa/wtrnssUreKxZVkYQ+NViWeyImc5
# qEZcDPy3Qgf731kVPnYuwi5S0U+qyg5p1CNn/WsvnJsdw8aO0lseadu8PECuHj1Z
# 5w4mi5rGNq+QVYSBB2vBh5Ps5rXuifBFF8YnUyBc2KuWBOCq6MTRN1H2sU5LtOUc
# Qkacv8hyom8DHERbd3mIBkV8fmtAmvwFYOCsXdBHOSwQUvfs53GySrnIYiWT0y56
# mVYPwDj7h/PdWO5hIuZm6n5ohInLig1weiVDJ254r+2pfyyRT+02JVVxyHFMCLwC
# ASs4vgbiZzMDltmoTDHz9gULxu/CfBGM0waMDu3cMIIFMDCCBBigAwIBAgIQBAkY
# G1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzEVMBMG
# A1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
# IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMTMxMDIyMTIw
# MDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGln
# aUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhE
# aWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMIIBIjANBgkq
# hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8OEa9ndwfTCzFJGc/Q+0WZsTrb
# RPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq8JyGpdglrA55KDp+6dFn08b7
# KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRpwsJS8hRniolF1C2ho+mILCCV
# rhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/pfMuSoeU7MRzP6vIK5Fe7SrXp
# dOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3jNEgJSPrCGQ+UpbB8g8S9MWO
# D8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczyen6Yzqf0Z3yWT0QIDAQABo4IB
# zTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0l
# BAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRw
# Oi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRz
# LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwgYEGA1Ud
# HwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFz
# c3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNv
# bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwTwYDVR0gBEgwRjA4BgpghkgB
# hv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9D
# UFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsqCqOl6nEDwGD5LfZldQ5YMB8G
# A1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA0GCSqGSIb3DQEBCwUAA4IB
# AQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHXfgtg/cM9D8Svi/3vKt8gVTew
# 4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddfRHnzNhQGivecRk5c/5CxGwcO
# kRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8AlEeKcFEehemhor5unXCBc2XGx
# DI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+L3J+HNdJRZboWR3p+nRka7Lr
# ZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8B4H6i9r5gkn3Ym6hU/oSlBiF
# LpKR6mhsRDKyZqHnGKSaZFHvMYIELzCCBCsCAQEwgYYwcjELMAkGA1UEBhMCVVMx
# FTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNv
# bTExMC8GA1UEAxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIENvZGUgU2lnbmlu
# ZyBDQQIQB6Zc7QsNL9EyTYMCYZHvVTAJBgUrDgMCGgUAoHAwEAYKKwYBBAGCNwIB
# DDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFK4Qz6/QDy8YhkZLV8S+Ph8p
# kKIYMA0GCSqGSIb3DQEBAQUABIIBADSYIz5Nd+yj/tpDVUD8+YGdFXQ2xghEtzUX
# 6r/GISFtE8s1489Yz++2cTXZEqeavRhB1Lyg7D/fvnWZYI2IJ6hByR0LDDJQML9l
# pB4DdPzAdsmH/PAyZVG0L8whCThiyAgaG7XzMQm2QQ+QIpFkPGL3KdYGLFISeic5
# ICgSfGJmexfVdMUgqROxGpIqu5merUe4FTlp4hDJaOJ9Ym9wdETaUZlomnuVMsyV
# 6vuQSBQN624qBLMJNCsFv196N+NZ3gtaRsjKkMNXNRP2DgUijikD+RAVrAqXYcqz
# qIJZuAC5ODKvRnApnURfULSpwN7AHk9T+KrV04+kSoY+/CfktL6hggILMIICBwYJ
# KoZIhvcNAQkGMYIB+DCCAfQCAQEwcjBeMQswCQYDVQQGEwJVUzEdMBsGA1UEChMU
# U3ltYW50ZWMgQ29ycG9yYXRpb24xMDAuBgNVBAMTJ1N5bWFudGVjIFRpbWUgU3Rh
# bXBpbmcgU2VydmljZXMgQ0EgLSBHMgIQDs/0OMj+vzVuBNhqmBsaUDAJBgUrDgMC
# GgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcN
# MjAwMTA5MjAzNDQzWjAjBgkqhkiG9w0BCQQxFgQU2i+3Pjo+vfk7EF10dceXg3Cr
# JW0wDQYJKoZIhvcNAQEBBQAEggEACMS6QSyaHepC8XBurklaibCEVHmxwf0KD+jg
# ykMQUD6tKb3APQwoVIltOk9eUV+V2Z3LVmtRsjZ1b98ZZGYHsDdzw5H4p9VwbNMW
# 1DQv/Uqt0qz65nVMtkHAzlZq3q1DuQLxMSd9VVUz9bhQ5UvTlkc/DRvWzow8NNOE
# HXVtVcu6mAQST7/Q1w0u/HThefYTcceNaovB+5AujX2LAxNU1WxM1VnhNuZl4CqQ
# QqfPhaqRMPpl3S2uCwg/8lOAj+0xWpLt2bVv7Pp+6VVOCWBtr0NuH50wR29bfh0x
# a1Y4+7RiWsoAJ4qmpq1DbPJ4wPXv77u9+ib/mtewgUDQam9Cnw==