Set-StrictMode -Version Latest Describe "New-Fixture" { It "Name parameter is mandatory:" { (get-command New-Fixture ).Parameters.Name.ParameterSets.__AllParameterSets.IsMandatory | Should Be $true } Context "Only Name parameter is specified:" { It "Creates fixture in current directory:" { $name = "Test-Fixture" $path = "TestDrive:\" pushd $path New-Fixture -Name $name | Out-Null popd Join-Path -Path $path -ChildPath "$name.ps1" | Should Exist Join-Path -Path $path -ChildPath "$name.Tests.ps1" | Should Exist } } Context "Name and Path parameter is specified:" { #use different fixture names to avoid interference among the test cases #claning up would be also possible, but difficult if the assertion fails It "Creates fixture in full Path:" { $name = "Test-Fixture" $path = "TestDrive:\full" New-Fixture -Name $name -Path $path | Out-Null Join-Path -Path $path -ChildPath "$name.ps1" | Should Exist Join-Path -Path $path -ChildPath "$name.Tests.ps1" | Should Exist #cleanup Join-Path -Path "$path" -ChildPath "$name.ps1" | Remove-Item -Force Join-Path -Path "$path" -ChildPath "$name.Tests.ps1" | Remove-Item -Force } It "Creates fixture in relative Path:" { $name = "Relative1-Fixture" $path = "TestDrive:\" pushd $path New-Fixture -Name $name -Path relative | Out-Null popd Join-Path -Path "$path\relative" -ChildPath "$name.ps1" | Should Exist Join-Path -Path "$path\relative" -ChildPath "$name.Tests.ps1" | Should Exist } It "Creates fixture if Path is set to '.':" { $name = "Relative2-Fixture" $path = "TestDrive:\" pushd $path New-Fixture -Name $name -Path . | Out-Null popd Join-Path -Path "$path" -ChildPath "$name.ps1" | Should Exist Join-Path -Path "$path" -ChildPath "$name.Tests.ps1" | Should Exist } It "Creates fixture if Path is set to '(pwd)':" { $name = "Relative3-Fixture" $path = "TestDrive:\" pushd $path New-Fixture -Name $name -Path (pwd) | Out-Null popd Join-Path -Path "$path" -ChildPath "$name.ps1" | Should Exist Join-Path -Path "$path" -ChildPath "$name.Tests.ps1" | Should Exist } It "Writes warning if file exists" { $name = "Warning-Fixture" $path = "TestDrive:\" Mock -Verifiable -ModuleName Pester Write-Warning { } #Create the same files twice New-Fixture -Name $name -Path $path | Out-Null New-Fixture -Name $name -Path $path -WarningVariable warnings -WarningAction SilentlyContinue | Out-Null Assert-VerifiableMocks } } #TODO add tests that validate the contents of default files } # SIG # Begin signature block # MIInZgYJKoZIhvcNAQcCoIInVzCCJ1MCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBcZyia6MKhMNad # o8Ep0KzG29eWrcbrCymMuim2KFOTRKCCC7QwggXLMIIEs6ADAgECAhMzAAABQGf2 # mGsxCLhyAAAAAAFAMA0GCSqGSIb3DQEBCwUAMIGOMQswCQYDVQQGEwJVUzETMBEG # A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj # cm9zb2Z0IENvcnBvcmF0aW9uMTgwNgYDVQQDEy9NaWNyb3NvZnQgV2luZG93cyBU # aGlyZCBQYXJ0eSBDb21wb25lbnQgQ0EgMjAxMjAeFw0yNTExMTMxOTU5NDNaFw0y # NjExMTAxOTU5NDNaMIGEMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv # bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 # aW9uMS4wLAYDVQQDEyVNaWNyb3NvZnQgV2luZG93cyAzcmQgcGFydHkgQ29tcG9u # ZW50MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEArGt4Hrjs3D7+IIab # GkPGtg4XeWQFi8nKsdeF+N6nkYF9wsmw0qPk4OovEiJnCSRiEtLfYy3Icn4iOp7L # 24oCa0zlgYCND3OnNfYOuVpMsq3CSkXYg3H+VMiB11hOLcctTu4RWy4ZRKsL5NVI # AduJFgd/1Qs2mQpUuOyFfLKhu/+Z+T2c9YALxsfnPvqn8Tn8Tt8wdZuFwz7kK3jl # e2T3YBofybAR2aH678TnOxhLe2/hEpTdKaVfcqyrIX0Mw/LwqEJnj4G8amBbQ7OG # RnKm1VNd4nMpRt1SflNlVo1Q3Qqnj9K6mSPw99YGMCTaVr6jKPylsWyW4nsvu8m0 # MbBJJiLOi0sOTHtwQEVcBH6WM7xbODqwPaklS1wDbED1wfzImIUR8WsXJVjDm7Fg # x4JDo8oLIjKFrEvzBfrYWsvlDg8p9XgR7EB/IJwXGuJbFzo/S+r3D5DkUZXX/72k # XA4FeRJAgLePAuGChPvyQiLtKJeJm9ftJeukrIcs7JpJVHObAgMBAAGjggGoMIIB # pDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUB9FDBUZ0W11vsv6qqb9t # vKspCIowRQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3Jh # dGlvbjEWMBQGA1UEBRMNMjMwODA5KzUwNjIyOTAfBgNVHSMEGDAWgBRhcaeHr/9p # 1SF2T1KTKAC+eRKrhDB0BgNVHR8EbTBrMGmgZ6BlhmNodHRwOi8vd3d3Lm1pY3Jv # c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBXaW5kb3dzJTIwVGhpcmQl # MjBQYXJ0eSUyMENvbXBvbmVudCUyMENBJTIwMjAxMi5jcmwwgYEGCCsGAQUFBwEB # BHUwczBxBggrBgEFBQcwAoZlaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w # cy9jZXJ0cy9NaWNyb3NvZnQlMjBXaW5kb3dzJTIwVGhpcmQlMjBQYXJ0eSUyMENv # bXBvbmVudCUyMENBJTIwMjAxMi5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0B # AQsFAAOCAQEAmFzJPKhkAXPOcfy9S4q1nP3XCvmABVGv/VRzFZ1e+oVtVzOFkbZ6 # osY1OpZqa9CEvtgcrtciv1y9mV1SpxAMwfEqq+Nhw2GdZ3IWqFzWFsEe2S9U196s # XRIRIxglZMBWyzdy8rQ+P7L2+LciW4qcaw2wtv6YoI0q1isgk0t1OF5kEL0t9hhx # UrBavTdoqZ3b5JtwDqzmIsxuLtGbE9Pqbz2gx/me+7yduYpIcYlmEmPQkg3gmWkZ # lnSRePu7/5RXS2TGW1O5JP8aqVcMn0ZkHEhtT368pE/CxQVAkAYHNz6+enP9n+HC # 2udu395c0fVlRHy/d53f32RukfbjakH8uzCCBeEwggPJoAMCAQICCmELqsEAAAAA # AAkwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo # aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y # cG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1 # dGhvcml0eSAyMDEwMB4XDTEyMDQxODIzNDgzOFoXDTI3MDQxODIzNTgzOFowgY4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xODA2BgNVBAMTL01p # Y3Jvc29mdCBXaW5kb3dzIFRoaXJkIFBhcnR5IENvbXBvbmVudCBDQSAyMDEyMIIB # IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo5wwhAmnYy7PCkfw6iT5ozAg # D15XMSaBmjEHslDUzmcJCGUKWqVLrtXtEC7npZm1n2gvmItYAqwgtCnEcb0oHKX9 # PJtk5MXr32ElvPDuaL/Rp8t+KgKBTmRcDFOGeVcZN2G3mPkMoE4iWZv5Gy1nPCc8 # VpBm4/1/ZX0Phr01R+iKzPTajulqTqunVeyiiR7VM0VTy/med73NLPkFuH90AR3o # +xjhQ9EN6arcN2+9/rgP7R1NAUZOCqz8gujsVoMTjjoB7RRkdOpksmYQtmhtyHAA # fVBILj1D7uAklcbNjsf9uOSVz91++5VeoQHNQ7EH16Qw7puGGipuwQtZonRviwID # AQABo4IBQzCCAT8wEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFGFxp4ev/2nV # IXZPUpMoAL55EquEMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQE # AwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQ # W9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNv # bS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBa # BggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0 # LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqG # SIb3DQEBCwUAA4ICAQBaimfazNX9DSZBd78KRni0s94SaSt3I8JlLwFf0gP0YbpQ # nS6MOXLzbD5qsR52bey384LczLvFaXAoc2YXP1Tr7gEWSMRG2RuAroE6jQ95bWiw # nuotPznTyjh+vV58CG4Z3MbC9DgzaGHiUkeD4QABVtK6y4eCBTEKQYtO539fX+1f # 0zktReuiE7/9HsKYQXFhFl/ICnAlfFlpMSTkcecKuwQX959yHsnSuxq+PQL+CQyy # Q7RZGplTk5YhX+DWtyYBQpU2rCf9vvSFd2g9GL30vpiIIhGGUhbzRewDlxBwh6Nw # Q3E828mGAxcM9XNbxn3hXGTt18VI1+0y4tGq08+n9ldOYfl362fyiLPeANoDj9CK # NDc+HdhiuNKx8+Evi3I7gZZ8b/zsZnZyYBsk8qCJbVttAC7vKN2GhwXCtLnlvmTC # KvJKFVyY4sQnhf9S42J+D7ICC9dmxwqy0z0gBBRQMlmDCn2b7Vo4EgFSui9eIHKO # SvH953ECjDvhB77Jc/TdR9i077SkszC5iT52yrkAmFZ+q+qKuKXQOKtpdxMLFC/p # qkEf97q9Ois0iu4Kq2PmY/eIJI4gDSs7nePCSVKsnx8OOTtd1G5QauZ9UjqqfDMV # KQ0mXgFYp06pPXqEb3Q/YJ/kMk82AK9tcdM+pkZlX4F08f7BcdpMoEFagt3xHzGC # GwgwghsEAgEBMIGmMIGOMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv # bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 # aW9uMTgwNgYDVQQDEy9NaWNyb3NvZnQgV2luZG93cyBUaGlyZCBQYXJ0eSBDb21w # b25lbnQgQ0EgMjAxMgITMwAAAUBn9phrMQi4cgAAAAABQDANBglghkgBZQMEAgEF # AKCCARgwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO # MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIMly9heH8nnvtcC63BFckPEz # DWzZWRlKKWbBn848t+UOMFAGCisGAQQBgjcKAxwxQgxAMUIzOTA1MzNGMDg2NjRG # M0JBQzE0NTVDNDVFNDBDMzFGRDVDRDVDQjExMjEwMDQ4OTQ3RUVDMDc0MUY2RTAy # MjBaBgorBgEEAYI3AgEMMUwwSqAkgCIATQBpAGMAcgBvAHMAbwBmAHQAIABXAGkA # bgBkAG8AdwBzoSKAIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS93aW5kb3dzMA0G # CSqGSIb3DQEBAQUABIIBgB7CwEZNZux/ylgW2yjkLv3J/yIciNRlnoGPJvtsay3z # XQMCheGMXlqRfeLUCW/lVsOx3p37F6/NsAJ4yx4TbGS2FoO+lodKDCuuya6WNCx/ # 4KkTdlTDLX5Wf/l514Y/mel3UowN6+5G/5uUUa4Mp5mtQrkRIA8vIBikgpwXw4N2 # k+Fh4LTErIjbN640ATJqDc68G/9PKZN08uYiCa0Yza3JxrCCpfNtwbYZwYnngNbd # vfvh/sb/kToC9uwiHGY0dpZCyUdqNF/LRJuofNWicIyIAJBqKQhx/ZnIixjvnu0U # OMyq7NPQyKgsZ8IJc9ijmm+IDcBLllhsM2LnG/2mPjtXExx6m/Hgr6LxcBj6NtSA # sPDx9plRjRA54lUM/5uUkMj2p4lVifsBErAl3kLPwfW34mBLhgNTVa5kV4rN2zFk # O1Xq5llto32G6PVh+idttlPTkZwWH4JYXRM9AL7boRo5PRn8apnfjlT6I6xclTmG # 3qNCHnrf+nyvd3+Vb9T5TaGCF5YwgheSBgorBgEEAYI3AwMBMYIXgjCCF34GCSqG # SIb3DQEHAqCCF28wghdrAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsqhkiG9w0B # CRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUA # BCDuQcjzdNWTySpGLEgiXrOj49nQGcKx8SwvPG2tfYdvGgIGaoVahQFGGBIyMDI2 # MDkwNTE0NDUwOS4yN1owBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9w # ZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5NjAwLTA1RTAtRDk0 # NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEe0wggcg # MIIFCKADAgECAhMzAAACJjW0PmdDk/YfAAEAAAImMA0GCSqGSIb3DQEBCwUAMHwx # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p # Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI2MDIxOTE5NDAwMloXDTI3 # MDUxNzE5NDAwMlowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u # MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp # b24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNV # BAsTHm5TaGllbGQgVFNTIEVTTjo5NjAwLTA1RTAtRDk0NzElMCMGA1UEAxMcTWlj # cm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP # ADCCAgoCggIBAL//D5lkgvlEUWlUjwPdnK427wjNwAQ4PfQ4tiOHffuteNysiU5L # Oklzhl5TETKWLrHoXrObg1Hx1s9v12IOn+E5TMdYbGIDVndFcoFv/gX+iPK83jdI # QZapJ9VzcjcGWxhPfl5xUAn2RV/3Rg6/b20WMkEFmRi+tP8PDDJEuxw7I/in73+X # ImMP5QuzdhcGFWt9n4xtAH4FgoupG8EpuP/BH1qQ2szFAg2gZoPmNk783+dKyYbY # /XO/9y/iBKgwGdZ5AgGSN3YjnDUN5e6mna9KI2ZHmwDZmQErfKJBZom9HE4OWR+L # IeT0yST9OthOOaM8JuF766qEc1HLxSVs69awKrS1G1TKQe/f0OCoB8k2sTw5K3zf # msHMOmutwCHCaB+GhWLgAp6rCKRjSdRrjwrRDLzRdPh+IQDcTERk1pEWj02r8bBt # +CoqoaZz3GEq5EVyO25rgodm+cC+laAQVI4KSi9ez8FwueQQcz3FnyJRqDkLKE2p # dhgT/PSlxd1ho0iRDrwRaa68ubuD2ih9Xa86bkZU2iCGeRYbqcY+j8nASCYD2hJL # QR+8VExY8D+ClK8XeyECsoedoSlVJKLcM1vKK5iISz0qjQiRlzzEoV5BFqoZHGsH # 7av/sHdfzVOmz30qEXCD7APzuh3bYXYxSDXHu3C3eBpWcWTQhkjBQ8IbAgMBAAGj # ggFJMIIBRTAdBgNVHQ4EFgQUXeGf19gk3Zj9n0tVsE8jEDNcexAwHwYDVR0jBBgw # FoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVGltZS1T # dGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEF # BQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNy # b3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/ # BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwDQYJ # KoZIhvcNAQELBQADggIBADZTHS2v2xgKOyrQVHKJWnHXk66s1e/pCTuJf4CtU+XP # fDi2qNxM2bV23e1O5rbAkykmE8fyftReGZP3x3kO7jguXhp2ex7hJB9WDdAvppGR # ceclSfzL2J+0H8/Lbaf3GfA8V+PdCUM5KAu4eV673tTSIfZlqW5hptZcmKF2Jikr # xw8cWWpk4CKi3T4YPx0/5Ey6+nG38XYuZh6WmhnCuKIU5SaXERRXvEkfJlmUOq6y # R7K6rTUNO/3U3iozxx88+GX/alzgd4x/+d3Yei6J8lsNAU13hY+EvOfRLLe7VmHf # 5Le2NB2o353LDrRFpX5FcKg4uAVncwCD8agOX5+9vmHL/VrvVy1fzARp3U9/p15/ # amp+XfAVz76GQXwNddNmh8k3hhVo3cifBsAZAMOQ0riWp5wKLHGZIrCJ0/KcZ4Tk # 6282grWmQuyb+LwXVGMZzNn+RIXZUOSobzrqJD6NVsY5DoO7d7LIVwUpmgMngHmY # QBL1pPZIqqWUt7Js5ugfqvruyJHkH/Yee7v4pi5hnLQERp20DqeAbhydJH0myuSG # GwqZvXW6OrCAnI3H3YyygYbA2A3VojRAgPwKyMIXCl+YzOUDjjEcpi/eGaPF6oFL # i5TmtB6ICdWCkl5pUYqb+XM8O2emkZX7teFGnlvVnFP9ntfFz4jsfv+MK1ANmhpl # MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsF # ADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT # B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UE # AxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcN # MjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEG # A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj # cm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFt # cCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzn # tHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3 # lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFE # yHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+ # jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4x # yDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBc # TyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9 # pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ # 8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pn # ol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYG # NRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cI # FRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEE # AYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E # 7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwr # BgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQu # Y29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUF # BwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNV # HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYG # A1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3Js # L3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcB # AQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kv # Y2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUA # A4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2 # P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J # 6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfak # Vqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/AL # aoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtP # u4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5H # LcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEua # bvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvB # QUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb # /wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETR # kPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA1AwggI4AgEB # MIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ # MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u # MSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQL # Ex5uU2hpZWxkIFRTUyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jv # c29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAKL98zEW2Sqv # tcxd2xHJZTSVIodnoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh # c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD # b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw # MTAwDQYJKoZIhvcNAQELBQACBQDuRj+qMCIYDzIwMjYwOTA1MDcxMzQ2WhgPMjAy # NjA5MDYwNzEzNDZaMHcwPQYKKwYBBAGEWQoEATEvMC0wCgIFAO5GP6oCAQAwCgIB # AAICBnkCAf8wBwIBAAICE14wCgIFAO5HkSoCAQAwNgYKKwYBBAGEWQoEAjEoMCYw # DAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0B # AQsFAAOCAQEAN8WAr9dmYCv+lHs1M6bGvWr/izkZrkRQr9Mk2vG+hvOl6Onqm7ec # 8DzU0TP4yLc/gJwy4RXzuudof080y1CJbyTKCbnPrrrdsYM3T6kgWIXrqSKTINWN # w3qh35nOC3j5IZ1B3M+qQbspg4xkkazCPMg3gn/OztCn7hy4VV+mhp2U+L2Lx5ll # cHHXZyo+rHWkL52ihS55MCiu0P1VvsDfUa+w9F3yN7nHj0rQQeRaBdmx9KcYRgzm # j1KWzuukUuzOzqW09LnOqy07ydLsYuWI9qCtdSQ8FQ4CtU+QoTWR/jEwuj1knJJ3 # 9UpAJhRzj4+IHESEwmj+GzTg2jEYTuIywzGCBA0wggQJAgEBMIGTMHwxCzAJBgNV # BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w # HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29m # dCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAACJjW0PmdDk/YfAAEAAAImMA0GCWCG # SAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZI # hvcNAQkEMSIEIJXTCrGPRgBaYqo6foouRD94aVhTcch7d/5lgNLTDofyMIH6Bgsq # hkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgzDJcYWdM2xlEGuzoY38FtXSiRo0/dUFi # osWNSwWduCowgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu # Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv # cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAIT # MwAAAiY1tD5nQ5P2HwABAAACJjAiBCDugK0xK5xLE04HuRTl2CpxDpn8iVbUxMYZ # K9XUqjN7LDANBgkqhkiG9w0BAQsFAASCAgC74aL21DWubnQTJrhFYohfAU9b/TOF # YsOSR5HulSWelbtF1A7SoKF9b2lLKZmC2fbLTVQXqw2O2XDhliOgaTGLnGEmMILH # C8CsO3HPb1C6+hpxkM2psIWwf4dpTFcV3uA2Ka07c1IEH1Jk3bt+a7m+hxy6t2ji # d4WkB8Ua2eElP8Xg8+d0a0EFzNcRPHye3v3H0q7/CjEb3N3DS0hvE23ut7EKVfHi # vJb2JiUnzqEomNLjKe6GaYwbL/fYaAIeKPpEP2s7AUK5Zny5cMYX8+x2obdW8bRT # a12e5cwINkdAkilg48j5KgDLtwAk1UASYVDdbeXadCoSrxo38I+X9l/LLvRQz3Ps # khva1fnhINAiHxNfWT+CUmvQyZ609wN2vEFevRmO9YBYI6j1LeVyfAZ/+F2NQQtl # 9u3xdFqcPjKmqsgA3wDmnW1X5XgrkdZ8ccTe/Qx6uT4xQu8HN7/5/NzXT8YrKuGj # IsCCqehJPrMROGU9P2fcLTpXrdVgVwwI/l3c83pkru33gerx+CdansQlAufyQAPd # 0tyCsKstvLBmFVn92HMSoNG2JIJ/6dVGE6z5EormkWQTrOQc0c/eMUBYjyHA9j4q # RQpAzx9H3rkb/gTct3mT3E8cYwpqVOZqbJyFyIQw0kN+eipnt3A5Yvy/nyPx53xn # 5LrRDGNwnLCKZQ== # SIG # End signature block