sepafm 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sepa/application_request.rb +1 -1
  3. data/lib/sepa/application_response.rb +15 -16
  4. data/lib/sepa/attribute_checks.rb +18 -25
  5. data/lib/sepa/banks/danske/danske_response.rb +65 -8
  6. data/lib/sepa/banks/danske/soap_danske.rb +1 -1
  7. data/lib/sepa/banks/nordea/nordea_response.rb +11 -0
  8. data/lib/sepa/certificates/danske_root_certificate.cer +25 -0
  9. data/lib/sepa/client.rb +35 -29
  10. data/lib/sepa/error_messages.rb +11 -0
  11. data/lib/sepa/response.rb +42 -20
  12. data/lib/sepa/soap_builder.rb +20 -38
  13. data/lib/sepa/utilities.rb +36 -11
  14. data/lib/sepa/version.rb +1 -1
  15. data/lib/sepafm.rb +10 -1
  16. data/readme.md +64 -28
  17. data/test/sepa/banks/danske/danske_cert_response_test.rb +41 -4
  18. data/test/sepa/banks/danske/danske_cert_soap_builder_test.rb +1 -1
  19. data/test/sepa/banks/danske/danske_generic_soap_builder_test.rb +6 -17
  20. data/test/sepa/banks/danske/danske_response_test.rb +97 -0
  21. data/test/sepa/banks/danske/keys/bank_encryption_cert.pem +17 -17
  22. data/test/sepa/banks/danske/keys/bank_signing_cert.pem +17 -17
  23. data/test/sepa/banks/danske/responses/create_cert.xml +14 -14
  24. data/test/sepa/banks/danske/responses/download_file_list.xml +42 -0
  25. data/test/sepa/banks/danske/responses/get_bank_cert.xml +14 -36
  26. data/test/sepa/banks/danske/responses/get_bank_certificate_not_ok.xml +2 -0
  27. data/test/sepa/banks/nordea/nordea_application_request_test.rb +3 -5
  28. data/test/sepa/banks/nordea/nordea_application_response_test.rb +25 -30
  29. data/test/sepa/banks/nordea/nordea_generic_soap_builder_test.rb +2 -2
  30. data/test/sepa/banks/nordea/nordea_response_test.rb +83 -17
  31. data/test/sepa/banks/nordea/responses/df_ktl.xml +20 -44
  32. data/test/sepa/banks/nordea/responses/dfl.xml +7 -6
  33. data/test/sepa/banks/nordea/responses/download_file_list_no_content.xml +21 -0
  34. data/test/sepa/banks/nordea/responses/gc.xml +21 -49
  35. data/test/sepa/banks/nordea/responses/invalid/body_altered.xml +21 -0
  36. data/test/sepa/banks/nordea/responses/invalid/timestamp_altered.xml +21 -0
  37. data/test/sepa/banks/nordea/responses/not_ok_response_code.xml +21 -0
  38. data/test/sepa/banks/nordea/responses/uf.xml +7 -6
  39. data/test/sepa/client_test.rb +134 -35
  40. data/test/sepa/fixtures.rb +8 -8
  41. data/test/sepa/sepa_test.rb +1 -1
  42. data/test/test_helper.rb +5 -1
  43. metadata +18 -6
  44. data/test/sepa/banks/nordea/responses/gbc.xml +0 -15
  45. /data/{test/sepa/banks/nordea/keys/root_cert.cer → lib/sepa/certificates/nordea_root_certificate.cer} +0 -0
@@ -0,0 +1,42 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsu:Timestamp wsu:Id="Timestamp-a9ba5f55-8f03-42b2-82f2-abdd02151c21" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsu:Created>2012-08-04T12:53:12Z</wsu:Created><wsu:Expires>2012-08-04T13:06:54Z</wsu:Expires></wsu:Timestamp><wsse:BinarySecurityToken wsu:Id="SecurityToken-8dfe5037-07d2-4f4f-9ddf-88133497aa60" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">MIIEADCCAuigAwIBAgIFAMa3bfQwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMT
3
+ B0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYD
4
+ VQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UE
5
+ CxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAe
6
+ Fw0xNDA3MDcwMDAwMDBaFw0xNjA2MjYwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJ
7
+ R04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdE
8
+ ZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFu
9
+ c2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwNDCCASAwDQYJ
10
+ KoZIhvcNAQEBBQADggENADCCAQgCggEBAMTopJ9GZXRkKm4Rq9M92EawXIfSI7VL
11
+ 0sykOzLfBzrgYMpqJ7rFxJe7nzECw22TeQ/3m4Gjnhe8XVaKSUDbfYfWzWD44iiZ
12
+ fecMaDZYIyR3g7GMwQowfwTqHhSEjFgfzH3QuGH2KGmqycvyuNGsbWjzvDAov8Yf
13
+ 7F88A4aOkseISO3Vmt2ElKm+gs09z7pwak6OxegDu5ZySS39kpTvq1DK3w2vXkEQ
14
+ GJUYOnDG/723v/hK3GjxclViu1OGSga7UJApjm3ky4s9EWoumf/vLBAnqRp6biOK
15
+ nkGmOJEJlT00VWjaRoDarKOjgC7b/05Xp0ynDSOwqvTI92BdAQwfgEsCAQOjUjBQ
16
+ MB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBSh3exl
17
+ GZ8eC4EiAVvbxenmc9faUzAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQAD
18
+ ggEBACjZJx8+UEcAYXJzstd+6E2wBNmmSvUTiuG7+Vws4+l4eqLLrHkhi66FOEwP
19
+ dnf5/t8k7h5ry61aEf+HdUcQuYRrf7hJPkFjxaMcMGss4uURjVt/R/GhWMgu6cYg
20
+ UIq0NHIMqdYH4dM/19qv7E+je2D3BuJOE3ucqe4Ywd+W2WP8HGlA3PkpMV78SPA9
21
+ N/Usg3VX2KVbdS3idTpSMpxQftjWXmJtef0KawvYmYOw7i+eazHmv5mgxhgCvJSC
22
+ PHN6oGS7v5AVVz9RCjSWEKIXZE0wRSLuTFYzt7/7CgRsdTVwpkFzn+ZJUAjYBPhZ
23
+ Q3Xn3p03DyCFsvtLxwE17UpUFUU=</wsse:BinarySecurityToken><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
24
+ <SignedInfo>
25
+ <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
26
+ <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
27
+ <Reference URI="#Timestamp-a9ba5f55-8f03-42b2-82f2-abdd02151c21">
28
+ <Transforms>
29
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
30
+ </Transforms>
31
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
32
+ <DigestValue>8aVWGI9oT6jNXSpLQmIgR19lSk0=</DigestValue>
33
+ </Reference>
34
+ <Reference URI="#Body-ddec4b9e-15b6-4f27-bd53-4c61da4502b3">
35
+ <Transforms>
36
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
37
+ </Transforms>
38
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
39
+ <DigestValue>qKN2GS9i5fbc1OJVRDeovIgPULI=</DigestValue>
40
+ </Reference>
41
+ </SignedInfo>
42
+ <SignatureValue>a2lzc2EK</SignatureValue><KeyInfo><wsse:SecurityTokenReference xmlns=""><wsse:Reference URI="#SecurityToken-8dfe5037-07d2-4f4f-9ddf-88133497aa60" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></KeyInfo></Signature></wsse:Security></soap:Header><soap:Body wsu:Id="Body-ddec4b9e-15b6-4f27-bd53-4c61da4502b3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><downloadFileListout xmlns="http://bxd.fi/CorporateFileService"><ResponseHeader xmlns="http://model.bxd.fi"><SenderId>123456</SenderId><RequestId>a1s2d31234</RequestId><Timestamp>2012-02-20T08:32:40.639086+01:00</Timestamp><ResponseCode>00</ResponseCode><ResponseText>OK</ResponseText><ReceiverId>DABADKKK</ReceiverId></ResponseHeader><ApplicationResponse xmlns="http://model.bxd.fi">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHhlbmM6RW5jcnlwdGVkRGF0YSB4bWxuczpkc2lnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiIFR5cGU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI0VsZW1lbnQiPgogIDx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyN0cmlwbGVkZXMtY2JjIi8+CiAgPGRzaWc6S2V5SW5mbz4KICAgIDx4ZW5jOkVuY3J5cHRlZEtleSBSZWNpcGllbnQ9Im5hbWU6RGFuc2tlQmFua0NyeXB0Q0VSVCI+CiAgICAgIDx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNyc2EtMV81Ii8+CiAgICAgIDxkc2lnOktleUluZm8+CiAgICAgICAgPGRzaWc6WDUwOURhdGE+CiAgICAgICAgICA8ZHNpZzpYNTA5Q2VydGlmaWNhdGU+TUlJRHRUQ0NBcDJnQXdJQkFnSUpBTGZkTElEMlZoOS9NQTBHQ1NxR1NJYjNEUUVCQlFVQU1FVXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJRXdwVGIyMWxMVk4wWVhSbE1TRXdId1lEVlFRS0V4aEpiblJsY201bGRDQlhhV1JuYVhSeklGQjBlU0JNZEdRd0hoY05NVFF3T0RBME1UTXlNek01V2hjTk1UVXdPREEwTVRNeU16TTVXakJGTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUtVMjl0WlMxVGRHRjBaVEVoTUI4R0ExVUVDaE1ZU1c1MFpYSnVaWFFnVjJsa1oybDBjeUJRZEhrZ1RIUmtNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXczaEhOQ3VidEJ4eHp0R2FMVTg1V3VqR0NXeUUxUllkaXhsbmcvTCtYd3VsYVd1bVhGc3RNQ1hRa0dESUp5UnFOWE45dytEYzl2NjJCYmdSMXQ0R2RxRFhOU1RCS1lweHJlWEhPU0M0RHlBelV3c0p5WkRLRVJDenVlVkNrZ1FsM1NoY0sxVFBuUStGV1QreXp5SVhRVjlabFk0YmMxV2FGOUhsQkovMmxiQmNxU0tyTXExQUFETUhPZVMwY1FhdGJhR2QyUXd6SCtvMXlWSEhuMVh1UE0zUW0zeExLRE1iajFnUjcrQXFoVWxmTndia2trZWE2cFN4YUQ4V20zd3ZmUHo2UXFHMDlEclBMVnpVci9IM0doN0pPMGM5eHJ3ZmVzakZ5UnA3SG9uM0JNWll0NkNPakpxWVVTQWIxMmVTcUJmZnM2TzJPclB6YnloNDk2Q3g2UUlEQVFBQm80R25NSUdrTUIwR0ExVWREZ1FXQkJUQ3JpKzlLanRwZ05xUVp0NVpxQWZ0NUE1VVd6QjFCZ05WSFNNRWJqQnNnQlRDcmkrOUtqdHBnTnFRWnQ1WnFBZnQ1QTVVVzZGSnBFY3dSVEVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsTnZiV1V0VTNSaGRHVXhJVEFmQmdOVkJBb1RHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpJSUpBTGZkTElEMlZoOS9NQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFBVzJIN3VMREtKOEJsWEdBNzFsc1JSRW9RdGw4SEkwaytRUVViL0VpOGt0azRKMjgwUVFCOWJaR2Q3VTNhQThrTEdpV3hhN2hvdTBsZFc4RmsxckhXZENRbGh1VWdCZDFPZGVwdWYzY04yY3ROSm9GUVJEY2NPWTFVbElyeEQyZTY4czhLMXJsUVhHQ3lnb21nbCtTcnc2MjBPYmUwOXE3VUIrblo3Q3Yvbjhiek1BY2lUajd5aE9zWHdBT3grOXJQZ1A2eHpnS0dRQUsybENYcW1tT21rVTRvdFh5NjRUcmY3YStjT3FMNE15WDh6dUpoYWRMbFJVTUdEekNGNWY3ZzNDRjdjTC80cTM5Q2VRc1ZYbjUvT0llaExPMHlaR2lLYWlhY1ZSa3Y0UGlYK2NzUFRiUkZtTCtFU3kvU2NvMUc1NzhLOVN4WWdTS09wNWs0bERlaUE9PC9kc2lnOlg1MDlDZXJ0aWZpY2F0ZT4KICAgICAgICA8L2RzaWc6WDUwOURhdGE+CiAgICAgIDwvZHNpZzpLZXlJbmZvPgogICAgICA8eGVuYzpDaXBoZXJEYXRhPgogICAgICAgIDx4ZW5jOkNpcGhlclZhbHVlPklkeDY2eTFGd1V4Ymhyby9WUDFUaFlhT0htZU12OTdjK3ZYSHpDbHFETGNjWDJyNzJWcGFXSkl4SmVqawpHOXFTeHRrRmJPS01FY3RZZjlucVBNVjYzRStlc205aXJ4cUxNcWd4bEVIWUdwZEp6RnVNNkZ0NDdEVFYKdkRTVkduL2xXN3k1QmVYYUJleElNelNhTVhrdTVEWDhFK09PRE14ZWhUZmRTendwcU00Y1dMbjVuVlZ0CjVDd3NlcHdmQndmZElkandKN0FidlB4M1VsTEZNWWhTREdFSU0wdkR3MGQ3OWxFYVpwNldOeWR2ZTYxSwpBa3NnOHVtcUVPR1kyL3pLa0l0QjU5YVgrU284Sks0b2dvNUpaWDhISm9WNGRtZXdadC9YS3NxUTBVQU0KUC9jc1lHV2k1VG1SbkNRNVlPMVpDbkJ4ek14NUUyM29XNUVXd3lQVzlRPT0KPC94ZW5jOkNpcGhlclZhbHVlPgogICAgICA8L3hlbmM6Q2lwaGVyRGF0YT4KICAgIDwveGVuYzpFbmNyeXB0ZWRLZXk+CiAgPC9kc2lnOktleUluZm8+CiAgPHhlbmM6Q2lwaGVyRGF0YT4KICAgIDx4ZW5jOkNpcGhlclZhbHVlPlJQc2hHaXV5TXlQcjRyL2dEZmVubWFWM1JpS2xkY3VtQk8yQTVvZXlVajBESDdzR2FTbnBkYTA3eEZqWApsd0NZRkp2a3dtb2ExM204d0R5WXhRRXI0MnZIb0RyOSszSUxaYWhsSU5IWUQwSUZUQ3pjRFJWTlFZeEkKQXFsQnVnMmZkSFFtUUF1TU15RzJLMGl6MkdrR0Zza3hoYzQvelZ2cXNad1h6Vk5wM1h5NldncU5TWjVPCjVhSXBiQTNTTUdadHc0aUFVNUZzY3ZYUDIyU0NWOGVDVW96d3p5NWg3a2dDT1VIMjFYYk1VVVlNNUlPSAp6SUp5Y3F3anNscVRTMy9aWFBSRjBsZkZwSDRMN0pCSnNXQ1pwVkdWK0ZiVXNJMFdzaWM1NFZweW5LYUcKdFZONkx3eFFHVVpBalpBU0FUUkc0b1dtR0tZMUsrRUNZdEVvb1ljOVczb3RxbzFPSTZXQmlGR0hPY2RzClNhREg5eFVKYmlUcnU2cStXOXppc3RyTVhncDA2MjVvMDdORVdyeUNIZFRnZzNZQWpmdmRjSTRYclowdApxc0c3SzdNclZQU0tHZXZ5bUI1cmxuVm44S3NUNXM3R1Y0cjZ3b3dyWGZ3b0lXaHUzRmU4NU9RUE56ZS8KajI3NmdtdmliRUVIVVVMdldKS2RFd2pPNm5TZkJVVHFadW11WndFK052Z3A4SmVGL1FiMlRWNk9YdlMxCm4wUUF5bXZ6Z0tQSTlxWjRXSU5FWHFSTDErL3RSNjQyTyt3UUJYM3NqSXZDbGV2ZnkrNlRobGtsOWxmbApSY09zQXRtR3QzOUErMFRxZ3NYU1o5K3RqaUxLQVducitKeHRKM1oxdjIyKzFHdmV5cnBkalVZbVRmTHkKZG9DbzV2aytxU3h6c1JFMFJ5aWpYY2w3cmFQb29DN0p1UFFLUWswdUx5SEV2QnBkdDA0Sm4rdWdQZVdhCjQ2K1pPUElxcGxTeENVUm1EbEJyTEc0QTF2ejM0Q29yODF5SzhNQkZJSHhXa0pRVWZWWmJORldDYXl0SQpIV3JuZjZGUklGZzBYT2YyRXBJWVRyTXhOdnIwSFVMQUtHbnNlVlZOMnM2L2Y3eWx3bzJqY2ZXL3lBNXgKcjhMZUU0Q0p1b01HSU81ekJPMDFkUGdqSE9yZ04zVCtNbk1sT1lPcVUveExxeGFCUzdkbEU3VkZqYlV2CjBYS0d2b3NNZWlONnNuczJJUThvZytiNHh4TmFUTVhJTXQzc2RzVld4ZHJQU3NMSGlJVlNGQXlrdDVMSQowNFg0bkMwd29PeCtDVjg2NkZBckhJdmdwN3FNeC91S3B6T0pRKzliaWJYNGtMUlo0RFFGd3ZBMTBCZFIKM2hFSkNjRTY2YVlhWGVKdnljTlJLOVdDR1hONkJzLzM4bkZNN2tscmNuSU9IcjZGWSs1YW01MWtDaXdHCkVtdWp0elNQT2pNQ2UrYS9ub3p6WXgycE5PNi8wNVovSmwzWWpnNVV0dGx2cFhKTm5FTnVjeGRaVVZwNAoxNjIveGxydkNuOC8rcGk5L3VHb1R2WFFGMmEwbFFqNStiMWw3RWlaNWpmQmFlbFRmbHUvTUpkaTR4K04KVHhOUDR5cGNqcHRnYUxLV1UvVTRPb1djaFZkd2FEb2FNdXRScE9XT2Q0WnowWWhsQWJDTGFUTjdQaVRPCjJQOHpKQUgyeTVEMy9HSThtZkRPa1ZlN2pkYzA4TkpsYWsvSStYSm4wbFA5MTNrV094OEsxcmd2ZldreAo2YmdTZ3IxL2MvQ1Y0VlJwRTNPTFUveHdMeUIyTHVUaWZteXU4a3pId1hxeFFzbnAxUHdUczcyalRvTDcKcDVVVTQyUGcvK25EcEFMUmRTWk1ZNnJjMEY3My9RZmdDY2pCOWJ6d0k1N05MSjdkOVFnL20zS3d2bGRtCktkYnUwWit5RXR4WnBQT2NzY0xtekhGNFdWR2VBeTBYcXB0L24zRGVDeExZdVFiajVnTkF3TFl6RHFCbQpQNjFnNjc3RitVbVVFYXMrUVJEY2hlZWlObGUxYUZlTVJYWEd5ZTZ5MWk0QnN6eFhleVdPcy80UURLekwKWkp2QlFFMWM0T3dHL2FuN2hKVDhiVkFqd2p3TEIwL0d2clFBVVRXR1JGOFFWQVBMbkY4dnhObDhlOGFoCmtBRFZiam9OQ21iUHAwNzZyRzhwUHB3enZUZ3lZNHB4ZTF0NHVSSG0zOVBuUGtmUzFRcnk2QmVhSFVqWgpzcm9leVJhNnpzQUJFMGt2THdpNkxnRFV2NmkxZngyemNDNXhkZ0RoZjRZYmNueTBLVys2NDk2b0UzNjAKSHpDeG1XZDZKYm80VlpteHVUVVpTZTk2ZnJwL0txNE55d0ZjQXJCbU5YYUdrVjN2bTB5NTU4Ui9UZ0lNCmxzTVpEaEdoQjdacm5aMGRMaEVzZVN0MUY2Mjk3TE9oNnRtQ3AzS1hGeHZPSVQxekFDMUFySnpsV010YwpNZVV0eE5pZXdacFRFUjNFSkxZY25UYmZXdjR2N1hIQXMra0VOcmwraGZqMEhYSnp6bUpNU1o3WXJQVWMKeVRGK0RldXk2Z29yazMzWGVTd0hFQkR5VFBQOUtLdEFETXRIcmZVMGtmb0ZvOTk2SGUraHB0T3JlZ0tvClhnVEhnSDc3cFpMVEFsYmJ2Wk96S05ndGZiNnExYnBmcFYvbE5ua2hpdXZRNysrUUMrTExoRUZ4OU5SdwpYVFVlOCsxSWlUSUxjWEszc2YveTUxdzR0RUJ6RStQdTBZN0Q3ZlIvUS9scEpSMGFPVFhVMCtsRUZjanUKSzJ4dGpoaEcrQkxaWFJkeitUMjJKaENmcmNkZ0F5Sy92STNGZVRzaG9aWXVlSWc4M0dTMHJkY1NYWjFPCjNRSzZrVWZUNDNUWFhGSDVmWEhzTDM1ekFFRDRUeFR4ZFYrRUpXMVVrb1hLaVlIalhWUTNEWnF4WW5YWApqTE1oMHdGd0tuVFZlNlVyTlhkWGZrYTZBMzNOb3gwaUJNeHNtZk9pQlZaV2lEQmlRRjBMUUhSekNrTDYKczBvZUZMOGU1Uzc5ajFaZTFmdCtBb1R4Q0lXTkpRMkNHUitSOC93Wm5TRE5PUXR3N3Y2K2JzWFZCbW1tCkcrdDZUQVJESG9NUVJ5YkJLcm1EeUxRUjVFWjJCUWs0dHlNU1FYK0E0N3hXUTRDc1hVVjhCOHlzaUZSdwp6VHFWRHBXaXNWV2dvWnYvRXlYNGNrS2ttaGIwVDRnNnBRT2dXQVVtZkFJc2FqSW0rNDlia0V5RmtiZnoKakJKcFpENTY1NHV3RlRZUDRFcnVqM0ZLZXc2VEJYQnJyaUJsZjlia0lSaUxlSit1QmtzbGlJKzhDMDJoCityZE9oTkhBVU84bW8yamVQcVNveGQvSVlqcjFMTm1LU1AvRjhNZHhFZzFVMFk2bmUzSGVMazhKTS9TWgoxalRHVFFvUmVtM2I4QUFOTExaWklKWVovMVFUMFlhVERkSGMyblBnTTdXbXVEbFRPZFUyenU1Z05uRlYKZmJINFJoa1pNdkM5NXovaDArTjRJMHBnTVJKaUtWQXNDR3o1RllpMjcrTEcrSFVFMjZjTHJCKy9pVFFHCkl4R2hyVGEyQ3QwanBzWlBNR0JBMkd4aGNmd1lDc2NJUmlQU2I1SEpldmREUFFMUGE3MGtsNVpyTUsyVQpJRXNkVXFuK3J5dVJ4ODdoeXo3ODA1cHJORm9SM0VZYmVxVFZ3ZFZyQXBvN1g2SzZIM2NkYW5wK1JiMmYKeXg5ZENadCtXNlA1Y0NtTXdPei81cGdodktBMEwrWmxIODRnalAyeVp1U01tWG9kcHR3OFNpYkZoZzdqCjJBVmppa3lvSERxNDVmcHZEcFZXUk5HQmNiUlpTblB4dEN1aGtlNExPSkhTZHdoRVBSRlUwbHVReXdKeQpTWG5XMGpldUZramdTY1dkaEZjOGZyYUZyR01LTVgxUVdocTljQkJxUUtrbk02TVVPelFVOEpJY2YzaHEKMjY4QlBHRjB4QjlnMVorN3pwRDBkN2dYTEVBY3QyUzhWTHFRNmE3Zis5VmNYMmE5ZnVYckVvczZESnVHCjF4MkZQQW0raHhmeVlTSndwT1BENERTbmFPL1R6UHMrN3lBOE9qOEt3QTgwME5IUk5BRi9CaTFYSUxHUApSeDRiUE5aQnJmYXdXYVpXaVF2dmdocTNxMlE5OE50aGFYK1lkWWUwanhNWXFSZThodTl5T1Z5S3F1NU4KQUdBUjNLTER2bHFMbG1vMFhxWFZwQWpBRVg3a3VsV1R4ZXE5TGNKOWRGZnBJREhWdzdGS2JURVJWVkNwCjBIU2RlUEpiQzVpeHI2TURKWDVNMjVHMW9URXBaS3hmbGdqMFVWT09DR1V5dUJXUGJqSFhEM0cyMDF5VgpnTTh2WjVkQ3dqZjJLSnRPTWhOZ3dKS2xhMytyU2lET0NwNFVxVVZRZVkzcGFjYU54SzRSUlFiT1dQUFcKS0xkQk9oRmtWZTFpVlZ0SWZTMEorZUdBNllOV2lkN2lYZ3Y1WnVKQmZoOHVFNDlXeXFlOWdnMDV2R1FzCldIRWIzSFVYcmdUVktIQ3hEeXFZTzFNSXpld1hOMXVjbkR1ZnRGWGxJV3lZaUloNXhQUTRyRkFyVkw0bwppSS84YmZpZHZYVEhMVFFLQXRyY0wvODZNL1BjRExDOEFNbG9ldHZtV2t2bkE3MFZsenB6V2VEZGsxNGIKc3pkbGRJQjM2ckszVjdNM2ozSEljNmMyS2JsRTVRaGYzNS9wazJSNzJQeUd0RGhpTytuK0V3WmVlOS9SCm5VenFNeC9hdHpYVkxqcHlRbVFEN1NvS2Vtd1dBekI1TlI4WDZUVko2QkN2RzBVam1NSk9LYVBFZTlKSwo0MDQxbzhMK1F2NDVocUMwcVNTU1ljT2paUUJSZHhwc2MzNlpod0plSFZkN1pHc0NQMDBVU1ZES25temYKUU1DMmgzUWZzNFVCSFBBQVhNaXFFbW13SjhBK1daOGd5bXVYZ0J1MGZOSE95ajgwQ1MxZi83M0NaQU1rCjRDRkZ6Sm0yd2VGYUpPSmwra3JTSzBKeC9PcVhmWm1qQWlNdHhneXlhOUp3V093WXU1SUQ5Wkhzdmc3QwpVLzgvUjhpaDRsT1gzTFBTZDhMUm1aSFBiS2xQRjN5QVpuVVo2eU1tR2xDaFZYMFEybHk1dVpXSXFHQk0KMUdDMjBHNzBLNEU4aC8xblFGMVduYmZSekJxZ2FJdjJQWmYvSUlsb2MvSkhIaHJiSmNDUE5KY0MrRktXCjliQ1gxOUxac3MzMkRTNGh6SXNTTWlsancyUE15NjhiTHVVdmVzcCtGN0xubkZZWkJxL1l0U3h1ZkdxZwp6OEhNQXNrcXArNVg1Mml6TVMyUTVIRFpoYUpRZTRacXRYSDVYSTFHem52ZzVjVFJqVnZ2eHpiNkpEZ1gKODBjU200emhvem9RVjJDN2xtRTRJWEg4eW1jbW1wL1ZHMXp5SkljUEE0VzlYT2R4R1J0dWJJa0VNNHhkCmtZb202MlhWQ1JoS1RiN2x4U1BQZytIUGsrZHFXVUhPdENzRk9WNEthazVQa3B0a1hZT3orcVhIUUJJegpYN3B4V2V1aFFtSnArUk1OellCODBJTFlzQ1ZkU0NaMzVsYUk1bmswZUJ5c0JLK3RXYkhVUENad3RVa0YKaEdTcFFsU08xVisydnNQSkVCbUV3SG5tZ3lPQUM2RURZU2hQZ29jWXZKbHE0bEtET2dHVEx0T2dnbHlRCjZsaTNVUG9DVmxBV1JOU0pGNzZrbjZpejFPbWszOXlrUzFtWHVuaGlUWjZsc21QSFpMa0RuOTFMS0tUcAphZ0JYeW14ZThYK1MvaERUMlVQeGJ1UHhpcHY3T2dxQTM0SUIyYmQrMHNQYUg3bHk0K1NKRURxT0c4UWQKME4xRHYzbVROVG1ZOXhPZWJaRTJseWtMVUVoNU9NYlZEcW5MTXBRekhJN1pGQVJxUkN0VmY2SDBNYUsyCjU2M013NGVucDU0a0tNdGpvN0ZnVHF1SDhlY284Mks0Mk5GOGpaWnNwcTI5b284TmZqWnVxZVVLajZ2UApUTkt3MFQ1WDZYU1ZnN250QTlwUXRnMXJNYzI2UEkrMUVBQnhzL2I5Zk9JU2ZtRnpwTi9VMytSVjBGWXAKTEs0ck9Gbkgwb2RETVo3Ky94UVExV2lOK01XaThFZEk4ZE02VUpNN1JRamJ0ZkhzTFFLM1hhTGZocXZDCldwRUplWGpVRTlCQ2xwZFVTRlVuQVdpN21RL0dzeGNPK3NiV2I1cTRJNmFCLzgrc2VINy9VdEppYnIvcQpESzNaNytpakE2Q1ZDNUhaQUs4SzlmbVJHcTg2QTJRWjRiNHNvS0JlOTd2ME50dkRGbU5RSEdZODVBc08KbDNYUkVJS2dpbEFzS0F5dzlFMVc2Yjk2Vkdoa25pdUVrN1hIMm9BbnNsUHZLL0ZJS0dVNkU2azlUWkVICmRiRkxkZjA0M3h3ZDZoZ1dkUEJYTURzeEZENy85eVJwZ0ZPUHlXNjY5ZzJlYW4vd2VoZnVDZlhhdSt4TQorYS82WENGQ3V4TlBCMnNPR1VOWUlqS3lvQUxoUU1xMUdISi84aHBZTUJWandsbktvZlZWNENlRDBxcUYKbVhPUzNaZDNYdGlVNm90bnFJTWJidURGK3pWb0Z4UVU3TGs5K1k2K3dUNDFCSXFwdUxTblJOYlFsR2I3Clp0TE1LWXQ4Yk50Ry85VWs2WDQ4bEY4TFZHR2FDRndVV2lYZjhNdUdEYk9XYW9aWEVLL3NZRUJhVmdOegpmR3daZnorVHZGaDRsOG04TnJuRjNTeCtrM0FPdFVEMVZEdUp4eXVuMk8vOW5hMEZJT3RQNHZ2ZTY4RTUKTnY2N0J4QzZuaWF1RWIzNkpvS3dhNjZJbDFQM2V4MnFGdTVMRGpJQmpORDNWcURpNEdkRVJnOERndkdICm16SXZIdUNnSG5RNjNKS2Uxc3QxL2lrTEtwUElaQ25TMGNNbGQ4NkRPUGQ2Y2lFTllqL1d5REcrejh4cgpWM3E5aUIxQUhRUnRzNE5aM04yUVVyY2VzLzhreHhQQ1hjZzd2VTMzNmg1bEQ2MzlTYlJ1a3kwVjBRTUQKbnF5UkRFc0ZhYlU5SzZPeDlwK2FUeVBRV1VqK29JV2xtMDh5RUVuYWFSTkJ0NS9IQWR6TzVUVElmUXN1CnJpQWs2U3NEdE1LRDhENk5SMzVVaW1KcFI2UmpETEZNNjZyRVhwZnpzSW9rM1dDTnJUUTc0Qmk1WnRRNgpqYVBBL2JhRXpJSXNXZzRtZ3BvQ2tlZmUwc2dNaHRKeDYxYUVMYnJmNUtVcWM5SEZOQldWb1VRRFZDcmgKQ3hZVjYwVU5xa2FMRHluUERqYWUvNVZvUnF3SUdzM0tqbW9jS0YrV2kyQWVNQ1pKQWtXL2hIR09zempQCjdaUW1TRGNJeTRQV1RZc1NoblI2cTZoM1NjK29QSDZ5Wm9RZmJjbzR0RHpDK0xHWE02UDc3WHowV1dBTgpmWEZSM3F5TU9EbWNKRTBvRERpekFxZFdkYVRsVFFTNXZTWjIvZEpnT0pZRUJ1a2hoSmRxSWMyMWFqQ24KMTFnZHhUaTFKdnNGbWgvUTZucFl3QlgxVTZLK2hBeWxlR3RLSUVPZi9NQWNnelpRVVFGZldzY2lJWXFXCktLVWk4NVJFSFNKYm9BdWFQZkErcFBRazcyU09BdWo0eGZKT1ducEw3ekNuUVNkak4wQmpZMDRaRk1FeQowcHRWejhKTVBmQS9LbVNpRGV2QUtab1A3MTFtaTY4WVlQeFFrMGZWZ2NhNWljZFh3SlNiWUdZWllOTjEKZGd4ejRKU0tFc1dhT2dKbkRtTWhRczNDZGk5ZFFFZzlWS2JraENHY3czRjkwY2szcTIvK0JVdFIvMFB6CllKaGFyYWs5WlFuektRNmgwblV1S3Q5WC9xMXhhbkZDTUM2ZDBjR3djTGZmZVR5Tm1SRHVWZ0JtYldHego5RktIRGFwTThtQW5IdmFWRlgrTjVkS2NFSmNyZ0JLOUlIUFM0cEl2MHM0UTg3cDIzZ21TZCtuQ2pRK1IKbjUxMCsrU3JIVDN1THcyUG5CdjZKVnpuS1JSY0VlUT0KPC94ZW5jOkNpcGhlclZhbHVlPgogIDwveGVuYzpDaXBoZXJEYXRhPgo8L3hlbmM6RW5jcnlwdGVkRGF0YT4K</ApplicationResponse></downloadFileListout></soap:Body></soap:Envelope>
@@ -1,37 +1,15 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <soapenv:Envelope xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:elem="http://danskebank.dk/PKI/PKIFactoryService/elements" xmlns:pkif="http://danskebank.dk/PKI/PKIFactoryService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
3
- <soapenv:Header/>
4
- <soapenv:Body>
5
- <GetBankCertificateOut xmlns="http://danskebank.dk/PKI/PKIFactoryService">
6
- <pkif:ResponseHeader xmlns="">
7
- <pkif:SenderId>360817</pkif:SenderId>
8
- <pkif:CustomerId>360817</pkif:CustomerId>
9
- <pkif:RequestId>b90999d5c0</pkif:RequestId>
10
- <pkif:Timestamp>2014-06-11T08:21:11Z</pkif:Timestamp>
11
- <pkif:InterfaceVersion>1</pkif:InterfaceVersion>
12
- </pkif:ResponseHeader>
13
- <pkie:GetBankCertificateResponse xmlns="" xmlns:pkie="http://danskebank.dk/PKI/PKIFactoryService/elements" xml:id="response">
14
- <pkie:ReturnCode>00</pkie:ReturnCode>
15
- <pkie:ReturnText>OK</pkie:ReturnText>
16
- <pkie:BankEncryptionCert>MIIEATCCAumgAwIBAgIFAQjv8bMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGYMRAwDgYDVQQDEwdEUENSWVBUMQswCQYDVQQGEwJESzETMBEGA1UEBxMKQ29wZW5oYWdlbjEQMA4GA1UECBMHRGVubWFyazEaMBgGA1UEChMRRGFuc2tlIEJhbmsgR3JvdXAxGjAYBgNVBAsTEURhbnNrZSBCYW5rIEdyb3VwMRgwFgYDVQQFEw82MTEyNjIyODQ5MTAwMDMwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQC/kHrOvHOueBsit9drxIHpaD7mXINypXS/l9PbbOZ0lZKVEfW9gtG8xk9XggsPXHJMF/PXpG6mveXvPu9WW/XpryAUqGfvYsC7Px3ixaJb2EMOL+2mJYd0v5HKg5RuYkQ82k3K01hMNEGYs0OotjNVAimQcTLtVPDGBjK5BUAiwady9LpI6afo7roJWnRmsvSvinDgBqswnfCvUfSfM8cZyhnLLC2uj1kBHAD/5xpllmS3aq1M8LqFkBYcCE5PdPmFWhGUumZ/Y5qLjDgcPMAPvUaKLqOsh22jvPCZ0pm17eV0bSQzWe5e0zkgCYAepuFRazSlkJQYBdS47Mp68dY5AgEDo1IwUDAfBgNVHSMEGDAWgBSE+uW/3pFJZt/FilLDs7ezIBzHbTAdBgNVHQ4EFgQUP6wHVNOmznu212c08M3oeYjeXW4wDgYDVR0PAQH/BAQDAgQwMA0GCSqGSIb3DQEBCwUAA4IBAQAvJBfPug+ixGL/zWUnKMweV80atZXMjHJEn4mOE+iUkCNONLImMMt6MXJysnJViL1gL5xMrka6A62PLLsVkl79kxDDbzXMPfGt5/mB9L7CMpyzaID0acDii3rsZwT3Wxpnate6wowN4zpmXgpCpTDGbxjuVRiOArsjQblerhfxnD/UAieZ1IWozIANs6SVms/TuOB+bODUr06ITxBkDJhizOJxjsXRIAtwZvvrH4qGjJz5qFcPb3nz4TxwswU8X6yvbtqF+q4aAKPA6ZydnGZFQSoSzNJtcF28T1ItxEHN3+xyQqXpTgFviiuL277LaAl9YUFFnSgeh7GiFitWJPfD</pkie:BankEncryptionCert>
17
- <pkie:BankSigningCert>MIIEADCCAuigAwIBAgIFAMa3bfMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwMzCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAL1zYMqPk/6klEpL5wo+vWAo3MmxPz4wq9wuLAHpPUhJ4ZpHmncNsdmqSSXT6U4mxTY8tzKvz4ZdTDljp+5J6OxOl1B7av3V7hlHtfGb7wozsBAya2JOoPrLxc+ajapslbduiEvdhW9ZLKvn/n7rQ9sZzHA6GyGKQk8lfvKK+OjMylA86XyxApasFD/0eIDnzUJHth3UpPoQTJAlB7h7d4CKc/QG9tFv900AAi4R/Tmy9TRai7fVCkXz7y4qRXN+M7NIhDGAsCmtM6oSuDqjv3lh10nD7XELTxTvcbpq5xHLt9yknwjiM2ivc4XudDMgC7ESoH6vaJSUcbC17+wa6IUCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBQHbPgey2TInIKC7xbag8AZG25qnTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAFl3WfGkVElIeUXjQsr8uQFXhkSbrI14F6mRIkUpCTa9Px/UUfw1HQNVn4Tyep30JmfsFN91Yj387jiZDzoeMYeiVI32wyZkao7rC3Z4YhAfUdPdVFZqO1k2gOgoZ49nyLKVS+GlyuzeLQVBnFE7f3sbpgDTRzd8o58W5VncHuzmSj/IVe8ZwRQ4bm3cHlKTQpRnyz5x7UJjp08fH6KOUal8DVsOaQKoo+jWIsPPir58b/QZsxIRL4uq3qqQt5udrbZqyltRsyxUpgomIN5irCn7Wgr+iYwNLhzXYwxKvwKsNRS7isEAZuyfH9fNarBRP4p72g+225NB0itQ73Xo7pg=</pkie:BankSigningCert>
18
- <pkie:BankRootCert>MIIEPzCCAyegAwIBAgIEQjoxcjANBgkqhkiG9w0BAQsFADCBmDEQMA4GA1UEAxMHREJHUk9PVDELMAkGA1UEBhMCREsxEzARBgNVBAcTCkNvcGVuaGFnZW4xEDAOBgNVBAgTB0Rlbm1hcmsxGjAYBgNVBAoTEURhbnNrZSBCYW5rIEdyb3VwMRowGAYDVQQLExFEYW5za2UgQmFuayBHcm91cDEYMBYGA1UEBRMPNjExMjYyMjgxMTEwMDAyMB4XDTEwMTAyNzAwMDAwMFoXDTIwMTAyNzAwMDAwMFowgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKWRtTRCXNEn5Hj+tA0vVg8VKUi/HnFgioZW/eyaF4gWvR4PNXXJJOS31VNHnb2SQHPLt3ac+5icH7vLu/OtS5rvnDiDFMg+TomVDrur6RtlsZNLnihZiaSaooI49+ERTz6vcCjST7xbfhmC03LUhE8eBKI1U70cx/lQ55UQKZvIAIbCVaZEks95VS4uJpwnU4M8glNIVGSvJhIUj/LIkSIcqBiryq/t9FRVtRl1gVhwKdi8A5O9hp4t3dBIdOanaup2UEL4lp7izzgt2rkMeuyQ1ZjHsN7LmDsfjoFcYx/8CID9LBwRCN2p+YCuoWUjuorrdU/2eit2lNh6ypiF6WECAQOjgZAwgY0wHQYDVR0OBBYEFIT65b/ekUlm38WKUsOzt7MgHMdtMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMEgGA1UdHwRBMD8wPaA7oDmGN2h0dHA6Ly9vbmxpbmUuZGFuc2tlYmFuay5jb20vcGtpL0RCR1JPT1RfMTExMTExMDAwMi5jcmwwDQYJKoZIhvcNAQELBQADggEBAFjnBPCos7jMMLc3FqyQUMt/HJGKgJDrhYiPZBo9njGkH52Urryqw1sbT3wXA1NuzbjHE3xTUD+5jNPCncYqML9xqQjSQkBcb9eJfHZ+asiclsO38cSn2qriJPIrCREPOpRVqrGQRbZQhmDiB198hpAdLp38khJon/gXbR7u9e0rN8MIM4sXn+lFuQIWiPuv+3llGSoLlIxJnjiQQ9FDjhwN5U+N1N2aHaLc5AHu4X/qRutLCy7AYUJZMPBoakPLscYceW2Ztvx4VAyOXgHDdvmz0Bd58XWOs1A9bNMZFeYAB14D9yQRCkXYLhr6sm8HuyqaIkGChFpNb+Gf8gcPvtw=</pkie:BankRootCert>
19
- <pkie:RequestId/>
20
- <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
21
- <SignedInfo>
22
- <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
23
- <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
24
- <Reference URI="#response">
25
- <Transforms>
26
- <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
27
- <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
28
- </Transforms>
29
- <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
30
- <DigestValue>hlJfqr9mI7Z3VePrAg3Pklb9ABk=</DigestValue>
31
- </Reference>
32
- </SignedInfo>
33
- <SignatureValue>G8A9IL/ZKjcT8B4gTvUQm+yDBQRh3TfUXxvhi1CtdjfvpVCOpsjH+E1Q6BTKC2ngcBdPMuP0Yp6wZhOH0EvQu9apqWtZeKvDY8AUGWM8HxglnhEQNrvzw2Z+LMHKeg5PIdG6YMjOcmNu7chy5E9NhUmhj9ic8hJOiCE00vjiv+I2YeQC6EJ6J7UjIgJWtMlsgzvuz5jhKmvYDh3MYSmfeuHTbm8QEM7f83UgmFw2UXuN/q5ahMxJlH28Ix3WGHZ5OFjSioKT125hbz5AQ6JEry8E6qiEkSLtLfmiYnv9zNqIItcm9TVgurqoKAZObzkCcADs+hoNEHXbE3CvNHUvog==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIEADCCAuigAwIBAgIFAMa3bfMwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xMjA4MDEwMDAwMDBaFw0xNDEwMzEwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwMzCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAL1zYMqPk/6klEpL5wo+vWAo3MmxPz4wq9wuLAHpPUhJ4ZpHmncNsdmqSSXT6U4mxTY8tzKvz4ZdTDljp+5J6OxOl1B7av3V7hlHtfGb7wozsBAya2JOoPrLxc+ajapslbduiEvdhW9ZLKvn/n7rQ9sZzHA6GyGKQk8lfvKK+OjMylA86XyxApasFD/0eIDnzUJHth3UpPoQTJAlB7h7d4CKc/QG9tFv900AAi4R/Tmy9TRai7fVCkXz7y4qRXN+M7NIhDGAsCmtM6oSuDqjv3lh10nD7XELTxTvcbpq5xHLt9yknwjiM2ivc4XudDMgC7ESoH6vaJSUcbC17+wa6IUCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBQHbPgey2TInIKC7xbag8AZG25qnTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAFl3WfGkVElIeUXjQsr8uQFXhkSbrI14F6mRIkUpCTa9Px/UUfw1HQNVn4Tyep30JmfsFN91Yj387jiZDzoeMYeiVI32wyZkao7rC3Z4YhAfUdPdVFZqO1k2gOgoZ49nyLKVS+GlyuzeLQVBnFE7f3sbpgDTRzd8o58W5VncHuzmSj/IVe8ZwRQ4bm3cHlKTQpRnyz5x7UJjp08fH6KOUal8DVsOaQKoo+jWIsPPir58b/QZsxIRL4uq3qqQt5udrbZqyltRsyxUpgomIN5irCn7Wgr+iYwNLhzXYwxKvwKsNRS7isEAZuyfH9fNarBRP4p72g+225NB0itQ73Xo7pg=</X509Certificate><X509IssuerSerial><X509IssuerName>serialNumber=611262281110002, OU=Danske Bank Group, O=Danske Bank Group, ST=Denmark, L=Copenhagen, C=DK, CN=DBGROOT</X509IssuerName><X509SerialNumber>3333910003</X509SerialNumber></X509IssuerSerial></X509Data></KeyInfo></Signature>
34
- </pkie:GetBankCertificateResponse>
35
- </GetBankCertificateOut>
36
- </soapenv:Body>
37
- </soapenv:Envelope>
2
+ <soapenv:Envelope xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:elem="http://danskebank.dk/PKI/PKIFactoryService/elements" xmlns:pkif="http://danskebank.dk/PKI/PKIFactoryService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body><GetBankCertificateOut xmlns="http://danskebank.dk/PKI/PKIFactoryService"><pkif:ResponseHeader xmlns=""><pkif:SenderId>360817</pkif:SenderId><pkif:CustomerId>360817</pkif:CustomerId><pkif:RequestId>72882ae6c0</pkif:RequestId><pkif:Timestamp>2014-08-06T11:00:03Z</pkif:Timestamp><pkif:InterfaceVersion>1</pkif:InterfaceVersion></pkif:ResponseHeader><pkie:GetBankCertificateResponse xml:id="response" xmlns="" xmlns:pkie="http://danskebank.dk/PKI/PKIFactoryService/elements"><pkie:ReturnCode>00</pkie:ReturnCode><pkie:ReturnText>OK</pkie:ReturnText><pkie:BankEncryptionCert>MIIEATCCAumgAwIBAgIFAQjv8bQwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xNDA3MDcwMDAwMDBaFw0xNjA2MjYwMDAwMDBaMIGYMRAwDgYDVQQDEwdEUENSWVBUMQswCQYDVQQGEwJESzETMBEGA1UEBxMKQ29wZW5oYWdlbjEQMA4GA1UECBMHRGVubWFyazEaMBgGA1UEChMRRGFuc2tlIEJhbmsgR3JvdXAxGjAYBgNVBAsTEURhbnNrZSBCYW5rIEdyb3VwMRgwFgYDVQQFEw82MTEyNjIyODQ5MTAwMDQwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQCtjaKTui8Ll8LJ4nke+lJs3GNNx6IeehabOumWUBdw6MICC8AIV4Pj+KWP1/TZh6CcLY3FOmeCvwPuEblA4A2eb1jS4M3U5pc7PFMGL0ox5SY/SOqyzm/Fo6VX2TxC9FXNSv/GGvGzbakeyGW0/ca48u12cyStn4Houd7TqudbIqqkbr02bxt0nw0PpxHBOTouPAARQdvdPD+aPRJ1X6TKkuMrW2Ig1YhW04hdfcH5duirnxtK0m4Qebxk2HiLIN66MdPgs+0JHIoGgB6stJEixeDpiM15HQDpSPVRwZVUcnvqP/aEW06j9f6j84zB05NuKM2JFg/1wbMyPBgdhRNvAgEDo1IwUDAfBgNVHSMEGDAWgBSE+uW/3pFJZt/FilLDs7ezIBzHbTAdBgNVHQ4EFgQUfOepp/dW66vQ0heuTt2ETjlMRAMwDgYDVR0PAQH/BAQDAgQwMA0GCSqGSIb3DQEBCwUAA4IBAQAl88QDgTpmKI7h8R9IelwwXDnzPFrxE4p1CpqiFDtCIRogO2TdRUUyRampeFNfngD1cnx/gXX4qjGnPf9THDt1STcGJVkqA2/uqptuhgy+3BLqnRNXw5aahyjn0/4HyMDkTnBhV+HmoQlk4aUdhT6Gpg79OC61M16uJXOP3wFS4RIiU5JO3SpemJVpQH0GNuzJOfx6sgA1S5vBiyIgj0B86cdQ9hr/5KFXFCMsKw9RGNX5tikXvQMUgirOHsac7rKL/m4djdfoRYM1CcutVoZvVpEd9zZiMQKF5bXXIxzdFSW3JT+IUZ3oRQmuNJPc5/h3epYtELy58mWOZWWVZ49+</pkie:BankEncryptionCert><pkie:BankSigningCert>MIIEADCCAuigAwIBAgIFAMa3bfQwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xNDA3MDcwMDAwMDBaFw0xNjA2MjYwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwNDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAMTopJ9GZXRkKm4Rq9M92EawXIfSI7VL0sykOzLfBzrgYMpqJ7rFxJe7nzECw22TeQ/3m4Gjnhe8XVaKSUDbfYfWzWD44iiZfecMaDZYIyR3g7GMwQowfwTqHhSEjFgfzH3QuGH2KGmqycvyuNGsbWjzvDAov8Yf7F88A4aOkseISO3Vmt2ElKm+gs09z7pwak6OxegDu5ZySS39kpTvq1DK3w2vXkEQGJUYOnDG/723v/hK3GjxclViu1OGSga7UJApjm3ky4s9EWoumf/vLBAnqRp6biOKnkGmOJEJlT00VWjaRoDarKOjgC7b/05Xp0ynDSOwqvTI92BdAQwfgEsCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBSh3exlGZ8eC4EiAVvbxenmc9faUzAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBACjZJx8+UEcAYXJzstd+6E2wBNmmSvUTiuG7+Vws4+l4eqLLrHkhi66FOEwPdnf5/t8k7h5ry61aEf+HdUcQuYRrf7hJPkFjxaMcMGss4uURjVt/R/GhWMgu6cYgUIq0NHIMqdYH4dM/19qv7E+je2D3BuJOE3ucqe4Ywd+W2WP8HGlA3PkpMV78SPA9N/Usg3VX2KVbdS3idTpSMpxQftjWXmJtef0KawvYmYOw7i+eazHmv5mgxhgCvJSCPHN6oGS7v5AVVz9RCjSWEKIXZE0wRSLuTFYzt7/7CgRsdTVwpkFzn+ZJUAjYBPhZQ3Xn3p03DyCFsvtLxwE17UpUFUU=</pkie:BankSigningCert><pkie:BankRootCert>MIIEPzCCAyegAwIBAgIEQjoxcjANBgkqhkiG9w0BAQsFADCBmDEQMA4GA1UEAxMHREJHUk9PVDELMAkGA1UEBhMCREsxEzARBgNVBAcTCkNvcGVuaGFnZW4xEDAOBgNVBAgTB0Rlbm1hcmsxGjAYBgNVBAoTEURhbnNrZSBCYW5rIEdyb3VwMRowGAYDVQQLExFEYW5za2UgQmFuayBHcm91cDEYMBYGA1UEBRMPNjExMjYyMjgxMTEwMDAyMB4XDTEwMTAyNzAwMDAwMFoXDTIwMTAyNzAwMDAwMFowgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKWRtTRCXNEn5Hj+tA0vVg8VKUi/HnFgioZW/eyaF4gWvR4PNXXJJOS31VNHnb2SQHPLt3ac+5icH7vLu/OtS5rvnDiDFMg+TomVDrur6RtlsZNLnihZiaSaooI49+ERTz6vcCjST7xbfhmC03LUhE8eBKI1U70cx/lQ55UQKZvIAIbCVaZEks95VS4uJpwnU4M8glNIVGSvJhIUj/LIkSIcqBiryq/t9FRVtRl1gVhwKdi8A5O9hp4t3dBIdOanaup2UEL4lp7izzgt2rkMeuyQ1ZjHsN7LmDsfjoFcYx/8CID9LBwRCN2p+YCuoWUjuorrdU/2eit2lNh6ypiF6WECAQOjgZAwgY0wHQYDVR0OBBYEFIT65b/ekUlm38WKUsOzt7MgHMdtMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMEgGA1UdHwRBMD8wPaA7oDmGN2h0dHA6Ly9vbmxpbmUuZGFuc2tlYmFuay5jb20vcGtpL0RCR1JPT1RfMTExMTExMDAwMi5jcmwwDQYJKoZIhvcNAQELBQADggEBAFjnBPCos7jMMLc3FqyQUMt/HJGKgJDrhYiPZBo9njGkH52Urryqw1sbT3wXA1NuzbjHE3xTUD+5jNPCncYqML9xqQjSQkBcb9eJfHZ+asiclsO38cSn2qriJPIrCREPOpRVqrGQRbZQhmDiB198hpAdLp38khJon/gXbR7u9e0rN8MIM4sXn+lFuQIWiPuv+3llGSoLlIxJnjiQQ9FDjhwN5U+N1N2aHaLc5AHu4X/qRutLCy7AYUJZMPBoakPLscYceW2Ztvx4VAyOXgHDdvmz0Bd58XWOs1A9bNMZFeYAB14D9yQRCkXYLhr6sm8HuyqaIkGChFpNb+Gf8gcPvtw=</pkie:BankRootCert><pkie:RequestId/><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
3
+ <SignedInfo>
4
+ <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
5
+ <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
6
+ <Reference URI="#response">
7
+ <Transforms>
8
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
9
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
10
+ </Transforms>
11
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
12
+ <DigestValue>MfXr7Uymp/9jlZfW4t+z/OTYTaU=</DigestValue>
13
+ </Reference>
14
+ </SignedInfo>
15
+ <SignatureValue>ujjgaemh9ppalpaqWcwbZ6Nvk218fpJJFsw2iuUbE1qdLMk47f8Z7Sii1siZG3V81jguC+8TDhoJp9H2OdACPB5qwol7vVG4Jev0q8mJNmkxJ9P5wXOJskxTELQ9OsdqzTKyAPTxjfQBsSGAISc0lAL66ART0CPvcnlGflttXtInRuGH2zk24AmIq0Ibe8OWb9c9bl43jHAe9G/0avt41ovngmwc5EaTrVEIhPWTemOYoWEARLo+YCjirPpJ93N6z9lGOk0VN5xVAJwNjOoi/wOu69wDzdbzlv19IbWI2IXJT7PDweLFWFPBupFJ+DfNvNzJeUemPTPXiRjHasn4dg==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIEADCCAuigAwIBAgIFAMa3bfQwDQYJKoZIhvcNAQELBQAwgZgxEDAOBgNVBAMTB0RCR1JPT1QxCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MTExMDAwMjAeFw0xNDA3MDcwMDAwMDBaFw0xNjA2MjYwMDAwMDBaMIGXMQ8wDQYDVQQDEwZEUFNJR04xCzAJBgNVBAYTAkRLMRMwEQYDVQQHEwpDb3BlbmhhZ2VuMRAwDgYDVQQIEwdEZW5tYXJrMRowGAYDVQQKExFEYW5za2UgQmFuayBHcm91cDEaMBgGA1UECxMRRGFuc2tlIEJhbmsgR3JvdXAxGDAWBgNVBAUTDzYxMTI2MjI4MzkxMDAwNDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAMTopJ9GZXRkKm4Rq9M92EawXIfSI7VL0sykOzLfBzrgYMpqJ7rFxJe7nzECw22TeQ/3m4Gjnhe8XVaKSUDbfYfWzWD44iiZfecMaDZYIyR3g7GMwQowfwTqHhSEjFgfzH3QuGH2KGmqycvyuNGsbWjzvDAov8Yf7F88A4aOkseISO3Vmt2ElKm+gs09z7pwak6OxegDu5ZySS39kpTvq1DK3w2vXkEQGJUYOnDG/723v/hK3GjxclViu1OGSga7UJApjm3ky4s9EWoumf/vLBAnqRp6biOKnkGmOJEJlT00VWjaRoDarKOjgC7b/05Xp0ynDSOwqvTI92BdAQwfgEsCAQOjUjBQMB8GA1UdIwQYMBaAFIT65b/ekUlm38WKUsOzt7MgHMdtMB0GA1UdDgQWBBSh3exlGZ8eC4EiAVvbxenmc9faUzAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBACjZJx8+UEcAYXJzstd+6E2wBNmmSvUTiuG7+Vws4+l4eqLLrHkhi66FOEwPdnf5/t8k7h5ry61aEf+HdUcQuYRrf7hJPkFjxaMcMGss4uURjVt/R/GhWMgu6cYgUIq0NHIMqdYH4dM/19qv7E+je2D3BuJOE3ucqe4Ywd+W2WP8HGlA3PkpMV78SPA9N/Usg3VX2KVbdS3idTpSMpxQftjWXmJtef0KawvYmYOw7i+eazHmv5mgxhgCvJSCPHN6oGS7v5AVVz9RCjSWEKIXZE0wRSLuTFYzt7/7CgRsdTVwpkFzn+ZJUAjYBPhZQ3Xn3p03DyCFsvtLxwE17UpUFUU=</X509Certificate><X509IssuerSerial><X509IssuerName>serialNumber=611262281110002, OU=Danske Bank Group, O=Danske Bank Group, ST=Denmark, L=Copenhagen, C=DK, CN=DBGROOT</X509IssuerName><X509SerialNumber>3333910004</X509SerialNumber></X509IssuerSerial></X509Data></KeyInfo></Signature></pkie:GetBankCertificateResponse></GetBankCertificateOut></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pkif="http://danskebank.dk/PKI/PKIFactoryService"><env:Body><pkif:PKIFactoryServiceFault><pkif:CustomerId>(&amp;*(*</pkif:CustomerId><pkif:SenderId>(&amp;*(*</pkif:SenderId><pkif:RequestId>0182e1866b</pkif:RequestId><pkif:Timestamp>2014-08-06T11:02:12Z</pkif:Timestamp><pkif:InterfaceVersion>1</pkif:InterfaceVersion><pkif:ReturnCode>07</pkif:ReturnCode><pkif:ReturnText>Schema validation error.</pkif:ReturnText><pkif:AdditionalReturnText>http://127.0.0.1:8887/services/PkiService: cvc-simple-type 1: element {http://danskebank.dk/PKI/PKIFactoryService}SenderId value '(&amp;*(*' is not a valid instance of type {http://danskebank.dk/PKI/PKIFactoryService/elements}CustomerIdType</pkif:AdditionalReturnText></pkif:PKIFactoryServiceFault></env:Body></env:Envelope>
@@ -7,7 +7,7 @@ class NordeaApplicationRequestTest < ActiveSupport::TestCase
7
7
  # Convert the keys here since the conversion is usually done by the client and these tests
8
8
  # bypass the client
9
9
  @nordea_generic_params[:signing_private_key] = rsa_key @nordea_generic_params[:signing_private_key]
10
- @nordea_generic_params[:signing_certificate] = OpenSSL::X509::Certificate.new @nordea_generic_params[:signing_certificate]
10
+ @nordea_generic_params[:own_signing_certificate] = x509_certificate @nordea_generic_params[:own_signing_certificate]
11
11
 
12
12
  ar_file = Sepa::SoapBuilder.new(@nordea_generic_params).application_request
13
13
 
@@ -232,7 +232,7 @@ class NordeaApplicationRequestTest < ActiveSupport::TestCase
232
232
  "dsig|X509Certificate", 'dsig' => 'http://www.w3.org/2000/09/xmldsig#'
233
233
  ).content
234
234
 
235
- actual_certificate = @nordea_generic_params.fetch(:signing_certificate).to_s
235
+ actual_certificate = @nordea_generic_params.fetch(:own_signing_certificate).to_s
236
236
  actual_certificate = actual_certificate.split('-----BEGIN CERTIFICATE-----')[1]
237
237
  actual_certificate = actual_certificate.split('-----END CERTIFICATE-----')[0]
238
238
  actual_certificate.gsub!(/\s+/, "")
@@ -250,9 +250,7 @@ class NordeaApplicationRequestTest < ActiveSupport::TestCase
250
250
  test 'upload file should validate against schema' do
251
251
  Dir.chdir(SCHEMA_PATH) do
252
252
  xsd = Nokogiri::XML::Schema(IO.read('application_request.xsd'))
253
- xsd.validate(@doc_up).each do |error|
254
- puts error
255
- end
253
+ assert xsd.valid?(@doc_up)
256
254
  end
257
255
  end
258
256
 
@@ -34,10 +34,10 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
34
34
  @gui = Sepa::NordeaResponse.new(options).application_response
35
35
  @gui_doc = xml_doc @gui
36
36
 
37
- @dfl_ar = Sepa::ApplicationResponse.new(@dfl)
38
- @uf_ar = Sepa::ApplicationResponse.new(@uf)
39
- @df_ar = Sepa::ApplicationResponse.new(@df_tito)
40
- @gui_ar = Sepa::ApplicationResponse.new(@gui)
37
+ @dfl_ar = Sepa::ApplicationResponse.new(@dfl, :nordea)
38
+ @uf_ar = Sepa::ApplicationResponse.new(@uf, :nordea)
39
+ @df_ar = Sepa::ApplicationResponse.new(@df_tito, :nordea)
40
+ @gui_ar = Sepa::ApplicationResponse.new(@gui, :nordea)
41
41
  end
42
42
 
43
43
  def test_templates_valid
@@ -48,12 +48,12 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
48
48
  end
49
49
 
50
50
  def test_should_fail_if_initialized_with_invalid_xml
51
- as = Sepa::ApplicationResponse.new("Jees")
51
+ as = Sepa::ApplicationResponse.new("Jees", :nordea)
52
52
  refute as.valid?
53
53
  end
54
54
 
55
55
  def test_should_complain_if_ar_not_valid_against_schema
56
- as = Sepa::ApplicationResponse.new(Nokogiri::XML("<ar>text</ar>"))
56
+ as = Sepa::ApplicationResponse.new(Nokogiri::XML("<ar>text</ar>"), :nordea)
57
57
  refute as.valid?
58
58
  end
59
59
 
@@ -77,14 +77,14 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
77
77
  customer_id_node = @dfl_doc.at_css('c2b|CustomerId')
78
78
  customer_id_node.content = customer_id_node.content[0..-2]
79
79
 
80
- refute Sepa::ApplicationResponse.new(@dfl_doc.to_s).hashes_match?
80
+ refute Sepa::ApplicationResponse.new(@dfl_doc.to_s, :nordea).hashes_match?
81
81
  end
82
82
 
83
83
  def test_invalid_uf_hash_check_should_not_verify
84
84
  timestamp_node = @uf_doc.at_css('c2b|Timestamp')
85
85
  timestamp_node.content = Time.now.iso8601
86
86
 
87
- refute Sepa::ApplicationResponse.new(@uf_doc.to_s).hashes_match?
87
+ refute Sepa::ApplicationResponse.new(@uf_doc.to_s, :nordea).hashes_match?
88
88
  end
89
89
 
90
90
  def test_invalid_df_hash_check_should_not_verify
@@ -95,7 +95,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
95
95
 
96
96
  digest_value_node.content = digest_value_node.content[4..-1]
97
97
 
98
- refute Sepa::ApplicationResponse.new(@df_tito_doc.to_s).hashes_match?
98
+ refute Sepa::ApplicationResponse.new(@df_tito_doc.to_s, :nordea).hashes_match?
99
99
  end
100
100
 
101
101
  def test_invalid_gui_hash_check_should_not_verify
@@ -106,7 +106,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
106
106
 
107
107
  digest_value_node.content = '1234' + digest_value_node.content
108
108
 
109
- refute Sepa::ApplicationResponse.new(@gui_doc.to_s).hashes_match?
109
+ refute Sepa::ApplicationResponse.new(@gui_doc.to_s, :nordea).hashes_match?
110
110
  end
111
111
 
112
112
  def test_proper_dfl_signature_should_verify
@@ -133,7 +133,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
133
133
 
134
134
  signature_node.content = signature_node.content[4..-1]
135
135
 
136
- refute Sepa::ApplicationResponse.new(@dfl_doc.to_s).signature_is_valid?
136
+ refute Sepa::ApplicationResponse.new(@dfl_doc.to_s, :nordea).signature_is_valid?
137
137
  end
138
138
 
139
139
  def test_corrupted_signature_in_uf_should_fail_signature_verification
@@ -144,7 +144,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
144
144
 
145
145
  signature_node.content = signature_node.content[0..-5]
146
146
 
147
- refute Sepa::ApplicationResponse.new(@uf_doc.to_s).signature_is_valid?
147
+ refute Sepa::ApplicationResponse.new(@uf_doc.to_s, :nordea).signature_is_valid?
148
148
  end
149
149
 
150
150
  def test_corrupted_signature_in_df_should_fail_signature_verification
@@ -155,7 +155,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
155
155
 
156
156
  signature_node.content = 'a' + signature_node.content[1..-1]
157
157
 
158
- refute Sepa::ApplicationResponse.new(@df_tito_doc.to_s).signature_is_valid?
158
+ refute Sepa::ApplicationResponse.new(@df_tito_doc.to_s, :nordea).signature_is_valid?
159
159
  end
160
160
 
161
161
  def test_corrupted_signature_in_gui_should_fail_signature_verification
@@ -166,7 +166,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
166
166
 
167
167
  signature_node.content = 'zombi' + signature_node.content[1..-1]
168
168
 
169
- refute Sepa::ApplicationResponse.new(@gui_doc.to_s).signature_is_valid?
169
+ refute Sepa::ApplicationResponse.new(@gui_doc.to_s, :nordea).signature_is_valid?
170
170
  end
171
171
 
172
172
  def test_should_raise_error_if_certificate_corrupted_in_dfl
@@ -178,7 +178,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
178
178
  cert_node.content = cert_node.content[0..-5]
179
179
 
180
180
  assert_raises(OpenSSL::X509::CertificateError) do
181
- Sepa::ApplicationResponse.new(@dfl_doc.to_s).certificate
181
+ Sepa::ApplicationResponse.new(@dfl_doc.to_s, :nordea).certificate
182
182
  end
183
183
  end
184
184
 
@@ -191,7 +191,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
191
191
  cert_node.content = cert_node.content[4..-1]
192
192
 
193
193
  assert_raises(OpenSSL::X509::CertificateError) do
194
- Sepa::ApplicationResponse.new(@uf_doc.to_s).certificate
194
+ Sepa::ApplicationResponse.new(@uf_doc.to_s, :nordea).certificate
195
195
  end
196
196
  end
197
197
 
@@ -204,7 +204,7 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
204
204
  cert_node.content = "n5iw#{cert_node.content}"
205
205
 
206
206
  assert_raises(OpenSSL::X509::CertificateError) do
207
- Sepa::ApplicationResponse.new(@df_tito_doc.to_s).certificate
207
+ Sepa::ApplicationResponse.new(@df_tito_doc.to_s, :nordea).certificate
208
208
  end
209
209
  end
210
210
 
@@ -217,24 +217,19 @@ class NordeaApplicationResponseTest < ActiveSupport::TestCase
217
217
  cert_node.content = encode 'voivoi'
218
218
 
219
219
  assert_raises(OpenSSL::X509::CertificateError) do
220
- Sepa::ApplicationResponse.new(@gui_doc.to_s).certificate
220
+ Sepa::ApplicationResponse.new(@gui_doc.to_s, :nordea).certificate
221
221
  end
222
222
  end
223
223
 
224
- def test_cert_should_be_trusted_with_correct_root_cert
225
- root_cert = OpenSSL::X509::Certificate.new File.read("#{KEYS_PATH}/root_cert.cer")
226
- assert @dfl_ar.cert_is_trusted(root_cert)
227
- assert @uf_ar.cert_is_trusted(root_cert)
228
- assert @df_ar.cert_is_trusted(root_cert)
229
- assert @gui_ar.cert_is_trusted(root_cert)
224
+ test 'certificate is trusted with correct root certificate' do
225
+ assert @dfl_ar.certificate_is_trusted?
226
+ assert @uf_ar.certificate_is_trusted?
227
+ assert @df_ar.certificate_is_trusted?
228
+ assert @gui_ar.certificate_is_trusted?
230
229
  end
231
230
 
232
- def test_should_fail_if_wrong_root_cert
233
- not_root_cert = OpenSSL::X509::Certificate.new File.read("#{KEYS_PATH}/nordea.crt")
234
- assert_raises(SecurityError) { @dfl_ar.cert_is_trusted(not_root_cert) }
235
- assert_raises(SecurityError) { @uf_ar.cert_is_trusted(not_root_cert) }
236
- assert_raises(SecurityError) { @df_ar.cert_is_trusted(not_root_cert) }
237
- assert_raises(SecurityError) { @gui_ar.cert_is_trusted(not_root_cert) }
231
+ # TODO: Implement test
232
+ test 'certificate is not trusted with incorrect root certificate' do
238
233
  end
239
234
 
240
235
  test 'to_s works' do
@@ -8,7 +8,7 @@ class NordeaGenericSoapBuilderTest < ActiveSupport::TestCase
8
8
  # Convert the keys here since the conversion is usually done by the client and these tests
9
9
  # bypass the client
10
10
  @nordea_generic_params[:signing_private_key] = rsa_key @nordea_generic_params[:signing_private_key]
11
- @nordea_generic_params[:signing_certificate] = OpenSSL::X509::Certificate.new @nordea_generic_params[:signing_certificate]
11
+ @nordea_generic_params[:own_signing_certificate] = x509_certificate @nordea_generic_params[:own_signing_certificate]
12
12
 
13
13
  @soap_request = Sepa::SoapBuilder.new(@nordea_generic_params)
14
14
  @doc = Nokogiri::XML(@soap_request.to_xml)
@@ -137,7 +137,7 @@ class NordeaGenericSoapBuilderTest < ActiveSupport::TestCase
137
137
  "//wsse:BinarySecurityToken", 'wsse' => wsse
138
138
  ).first.content
139
139
 
140
- actual_certificate = @nordea_generic_params.fetch(:signing_certificate).to_s
140
+ actual_certificate = @nordea_generic_params.fetch(:own_signing_certificate).to_s
141
141
  actual_certificate = actual_certificate.split('-----BEGIN CERTIFICATE-----')[1]
142
142
  actual_certificate = actual_certificate.split('-----END CERTIFICATE-----')[0]
143
143
  actual_certificate = actual_certificate.gsub(/\s+/, "")
@@ -39,6 +39,30 @@ class NordeaResponseTest < ActiveSupport::TestCase
39
39
  command: :get_certificate
40
40
  }
41
41
  @gc = Sepa::NordeaResponse.new options
42
+
43
+ options = {
44
+ response: File.read("#{NORDEA_TEST_RESPONSE_PATH}/not_ok_response_code.xml"),
45
+ command: :download_file_list
46
+ }
47
+ @not_ok_response_code_response = Sepa::NordeaResponse.new options
48
+
49
+ options = {
50
+ response: File.read("#{NORDEA_TEST_RESPONSE_PATH}/download_file_list_no_content.xml"),
51
+ command: :download_file_list
52
+ }
53
+ @response_with_code_24 = Sepa::NordeaResponse.new options
54
+
55
+ options = {
56
+ response: File.read("#{NORDEA_TEST_RESPONSE_PATH}/invalid/timestamp_altered.xml"),
57
+ command: :download_file_list
58
+ }
59
+ @timestamp_altered = Sepa::NordeaResponse.new options
60
+
61
+ options = {
62
+ response: File.read("#{NORDEA_TEST_RESPONSE_PATH}/invalid/body_altered.xml"),
63
+ command: :upload_file
64
+ }
65
+ @body_altered = Sepa::NordeaResponse.new options
42
66
  end
43
67
 
44
68
  def test_should_be_valid
@@ -51,37 +75,69 @@ class NordeaResponseTest < ActiveSupport::TestCase
51
75
  end
52
76
 
53
77
  def test_should_fail_with_improper_params
54
- a = Sepa::Response.new({ response: "Jees", command: 'not'})
78
+ a = Sepa::NordeaResponse.new({ response: "Jees", command: 'not'})
55
79
  refute a.valid?
56
80
  end
57
81
 
58
82
  def test_should_complain_if_ar_not_valid_against_schema
59
- a = Sepa::Response.new({ response: "<ar>text</ar>", command: 'notvalid' })
83
+ a = Sepa::NordeaResponse.new({ response: "<ar>text</ar>", command: 'notvalid' })
60
84
  refute a.valid?
61
85
  end
62
86
 
63
- def test_hashes_match_works
64
- assert @gui.hashes_match?
87
+ test 'hashes should match with correct responses' do
88
+ assert @df_ktl.hashes_match?
89
+ assert @df_tito.hashes_match?
65
90
  assert @dfl.hashes_match?
91
+ assert @response_with_code_24
92
+ assert @gc.hashes_match?
93
+ assert @gui.hashes_match?
94
+ assert @not_ok_response_code_response.hashes_match?
66
95
  assert @uf.hashes_match?
67
- assert @df_tito.hashes_match?
68
96
  end
69
97
 
70
- def test_cert_check_should_work
71
- keys_path = File.expand_path('../keys', __FILE__)
72
- root_cert = OpenSSL::X509::Certificate.new File.read("#{keys_path}/root_cert.cer")
73
- not_root_cert = OpenSSL::X509::Certificate.new File.read("#{keys_path}/nordea.crt")
98
+ test 'response should be valid if hashes match and otherwise valid' do
99
+ assert @df_ktl.valid?
100
+ assert @df_tito.valid?
101
+ assert @dfl.valid?
102
+ assert @response_with_code_24
103
+ assert @gc.valid?
104
+ assert @gui.valid?
105
+ assert @uf.valid?
106
+ end
74
107
 
75
- assert @dfl.cert_is_trusted(root_cert)
76
- assert_raises(SecurityError) do
77
- @dfl.cert_is_trusted(not_root_cert)
78
- end
108
+ test 'hashes should not match with incorrect responses' do
109
+ refute @timestamp_altered.hashes_match?
110
+ refute @body_altered.hashes_match?
79
111
  end
80
112
 
81
- def test_signature_check_should_work
113
+ test 'response should not be valid if hashes dont match' do
114
+ refute @timestamp_altered.valid?
115
+ refute @body_altered.valid?
116
+ end
117
+
118
+ test 'certificate verifying against root certificate works' do
119
+ assert @dfl.certificate_is_trusted?
120
+ end
121
+
122
+ # TODO: Implement test
123
+ test 'response should not be valid when wrong certificate is embedded in soap' do
124
+
125
+ end
126
+
127
+ test 'signature should verify with correct responses' do
128
+ assert @df_ktl.signature_is_valid?
129
+ assert @df_tito.signature_is_valid?
82
130
  assert @dfl.signature_is_valid?
83
- @dfl.doc.at('xmlns|SignatureValue', 'xmlns' => DSIG).content = "kissa"
84
- refute @dfl.signature_is_valid?
131
+ assert @response_with_code_24.signature_is_valid?
132
+ assert @gc.signature_is_valid?
133
+ assert @gui.signature_is_valid?
134
+ assert @not_ok_response_code_response.signature_is_valid?
135
+ assert @uf.signature_is_valid?
136
+ end
137
+
138
+ test 'signature should not verify if its integrity has been compromised' do
139
+ refute @timestamp_altered.signature_is_valid?
140
+ refute @body_altered.signature_is_valid?
85
141
  end
86
142
 
87
143
  test 'to_s works' do
@@ -131,8 +187,18 @@ class NordeaResponseTest < ActiveSupport::TestCase
131
187
 
132
188
  test 'certificate can be extracted from get certificate response' do
133
189
  assert_nothing_raised do
134
- OpenSSL::X509::Certificate.new @gc.own_signing_certificate
190
+ x509_certificate @gc.own_signing_certificate
135
191
  end
136
192
  end
137
193
 
194
+ test 'response with a response code other than 00 or 24 is considered invalid' do
195
+ refute @not_ok_response_code_response.valid?
196
+ refute_empty @not_ok_response_code_response.errors.messages
197
+ end
198
+
199
+ test 'response with a response code of 24 is considered valid' do
200
+ assert @response_with_code_24.valid?
201
+ assert_empty @response_with_code_24.errors.messages
202
+ end
203
+
138
204
  end
@@ -1,45 +1,21 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <soapenv:Envelope xmlns:mod="http://model.bxd.fi" xmlns:cor="http://bxd.fi/CorporateFileService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
3
- <soapenv:Header>
4
- <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
5
- <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-90e1ab2c-3cd1-4880-847d-395658c73659">
6
- <wsu:Created>2014-06-10T13:31:48Z</wsu:Created>
7
- <wsu:Expires>2014-06-10T13:36:48Z</wsu:Expires>
8
- </wsu:Timestamp>
9
- <wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="SecurityToken-674b41de-bc40-4398-af35-f32a2d2fcb25" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">MIID8TCCAtmgAwIBAgIEAVl8HjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQGEwJTRTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSYwJAYDVQQDEx1Ob3JkZWEgQ29ycG9yYXRlIFNlcnZlciBDQSAwMTEUMBIGA1UEBRMLNTE2NDA2LTAxMjAwHhcNMTIwODE2MDgxMTU5WhcNMTQwODE2MDgxMTU5WjB+MQswCQYDVQQGEwJTRTEeMBwGA1UECgwVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSowKAYDVQQLDCFOZXRiYW5raW5nICYgSW50ZWdyYXRpb24gU2VydmljZXMxIzAhBgNVBAMMGkZpbGUgVHJhbnNmZXIgV2ViIFNlcnZpY2VzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGJqLvjTiaM+yotCeskYoeP/c2EF0/xJi07v1J8RuAr1Mu2NU6tel3OsUTmmwVY+GSxsCi6gk+1KvLVPgWmqErDahVryHw3mnFlrrklXcITtUaw7OBa+xrj3sSSBOoneRanqWFH2tlDj1raVBEQJTxx3mjIoawPIHfS/w8DI9utQIDAQABo4IBDDCCAQgwCQYDVR0TBAIwADARBgNVHQ4ECgQISvFVB9v7eZowEwYDVR0jBAwwCoAIRMeT2dl7VsEwNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5ub3JkZWEuc2UvU0NBMDEwDgYDVR0PAQH/BAQDAgWgMIGJBgNVHR8EgYEwfzB9oHugeYZ3bGRhcDovL2xkYXAubmIuc2UvY249Tm9yZGVhJTIwQ29ycG9yYXRlJTIwU2VydmVyJTIwQ0ElMjAwMSxvPU5vcmRlYSUyMEJhbmslMjBBQiUyMChwdWJsKSxjPVNFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBAIZbzaxoJUVGCPMKQseFs7E+g//HZbed1ZNVQ8vRy/+L7ieIWKczLWrMvHZd8Gp+84QAC5dKrHD+BsWBUp5VLnVWH6f6EGzSHdaV9FCMRqHDzMzdfpavRYHm+vtF3k+bxt2f6znPmo0bYBtRjuvuLX0MLnnLaabTJ3p2aspAIZ4QXC7XPTG1RXVdbNUVROYWuviPkF4VUrdHMHQrwzHV40mVZ0JDJDIuNELMELdR37lyt0k6NBOorQEbDiqOZvdf5G4Vr0IpgS2Q/zorOUkcKkdJx8rQ9ygUmeFGhd8U3BWsMzkJd8kkKeaNME/K9aTotrTh2iTOZgrOIo83AhoNfZw=</wsse:BinarySecurityToken>
10
- <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
11
- <SignedInfo>
12
- <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
13
- <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
14
- <Reference URI="#Timestamp-90e1ab2c-3cd1-4880-847d-395658c73659">
15
- <Transforms>
16
- <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
17
- </Transforms>
18
- <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
19
- <DigestValue>mXJGlPSht+Lvaoptu094uRk/JTs=</DigestValue>
20
- </Reference>
21
- <Reference URI="#Body-6f1f55ed-074a-48d4-b377-004ba63bc235">
22
- <Transforms>
23
- <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
24
- </Transforms>
25
- <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
26
- <DigestValue>Te/Ko44e7exMi+5UKJykJR4LAnc=</DigestValue>
27
- </Reference>
28
- </SignedInfo>
29
- <SignatureValue>HereTQHOSxGrBP7dgd411/u0I3BDSnW3cYL4xPjdzvlsHl451WUH8uc3EQQtueZpxG7Ijnhu+XVXry/HAu9Xfr2ARct9XO1k/KTkXWOJtsiljVHQY94ox7Ku/QeunVy8l39XBClBhJczEehnHLwQfuNRpjVBXAgESj0NoyQ1c2M=</SignatureValue><KeyInfo><wsse:SecurityTokenReference xmlns=""><wsse:Reference URI="#SecurityToken-674b41de-bc40-4398-af35-f32a2d2fcb25" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></KeyInfo></Signature>
30
- </wsse:Security>
31
- </soapenv:Header>
32
- <soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Body-6f1f55ed-074a-48d4-b377-004ba63bc235">
33
- <cor:downloadFileout>
34
- <mod:ResponseHeader>
35
- <mod:SenderId>11111111</mod:SenderId>
36
- <mod:RequestId>c665330d3c25d6d0b0956b21762999e253</mod:RequestId>
37
- <mod:Timestamp>2014-06-10T15:31:48+02:00</mod:Timestamp>
38
- <mod:ResponseCode>00</mod:ResponseCode>
39
- <mod:ResponseText>OK.</mod:ResponseText>
40
- <mod:ReceiverId>11111111A1</mod:ReceiverId>
41
- </mod:ResponseHeader>
42
- <mod:ApplicationResponse>PGMyYjpBcHBsaWNhdGlvblJlc3BvbnNlIHhtbG5zOmMyYj0iaHR0cDovL2J4ZC5maS94bWxkYXRhLyI+PGMyYjpDdXN0b21lcklkPjExMTExMTExPC9jMmI6Q3VzdG9tZXJJZD48YzJiOlRpbWVzdGFtcD4yMDE0LTA2LTEwVDE1OjMxOjQ4KzAyOjAwPC9jMmI6VGltZXN0YW1wPjxjMmI6UmVzcG9uc2VDb2RlPjAwPC9jMmI6UmVzcG9uc2VDb2RlPjxjMmI6UmVzcG9uc2VUZXh0Pk9LLjwvYzJiOlJlc3BvbnNlVGV4dD48YzJiOkVuY3J5cHRlZD5mYWxzZTwvYzJiOkVuY3J5cHRlZD48YzJiOkNvbXByZXNzZWQ+ZmFsc2U8L2MyYjpDb21wcmVzc2VkPjxjMmI6Q29udGVudD5NREEyTURNd016SXpOVGt5SURBeE1URXhNVEV4TVRFME5EUTBORFEwTkVFd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdEUW96TWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNREl3TXpBeU5VeE5JQ0FnSURjd01ETTFNREF3TURBd01EQXdNREF3TURBME5UVTBNelZOUVV0VFFVcEJJRTFCVkZReFFUQXdNREF3TURRMU9UY3hRVEFOQ2pNeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TWpBek1ESTFURTBnSUNBZ01UQXlNakV3TURBd01EQXdNREF3TURBd01EZzBORFkzTjAxQlFVdEJVa2tnVDFrZ0lERkJNREF3TURBd01EYzROREZCTUEwS016STVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBeU1ETXdNamc0T0NBZ0lDQTBNREE0TlRBd01EQXdNREF3TURBd01EWXlPVE0zTXpBeVUxVlBUVVZPSUZsU1NWUlpNVXN3TURBd01EQXdOelF6TVVzd0RRb3pNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF6TWpVNE9EYzVNRFV3TWpJeU1EQXdNREF3TURBd01EQXdNREE0TkRRMk56ZE5RVUZVU1V4QklFOVpJQ0F4U2pBd01EQXdNRGd3TmpBd1FUQU5Dak15T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURNeU5UZzROemt3TVRBeU1Ua3dNREF3TURBd01EQXdNREF3TURnME5EWTNOMUJWVlZSQlVraFZVa2tnU3pGS01EQXdNREF3Tnpnek1EQkJNQTBLTXpJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd016STFPRGMzTVVFeU1EQTRNREF3TURBd01EQXdNREF3TURBd09Ea3dPVEl5VEVGT1MwbE9SVTRnVEVWSk1Vb3dNREF3TURBNE5qa3dNRUV3RFFvek1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXpNamsxTUZCVE1USXdNRFU0TURBd01EQXdNREF3TURBd01EQTRPVEE1TkRoTldWbFNXU0JXU1V4S1R5QXhTekF3TURBd01EWTBPVEF3UVRBTkNqTXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56ZEJOVEF6TURZd01EQXdNREF3TURBd01EQXdNalV6TlRNeE1VVlNTVk5VUlZSVlQwNVVTVEZLTURBd01EQXdOalF5TURCQk1BMEtNekk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TXpJMU9EaFhWMEZWTURFd056QXdNREF3TURBd01EQXdNREF5TlRNMU16STBVbFZWVmtrZ1NrRWdUVlZVTVVvd01EQXdNREE1TmpFd01FRXdEUW96TWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNRE13TXpBek1qVTRPRGM0UVRNMU1URTBNREF3TURBd01EQXdNREF3TURJMU16VXpNemRXUlV4QlRFeEpUa1ZPSUVVeFNqQXdNREF3TVRRNU1EQXdRVEFOQ2pNeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TXpBek1ETXlOVGc0Tnpnd01UQXhOalV3TURBd01EQXdNREF3TURBd016QTRPREU0TjB0VlRVMUJTa0ZKVGtWT0lERktNREF3TURBd05qVTNOakJCTUEwS016STVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNekkxT0RnM09FRTRNVEl3TXpBd01EQXdNREF3TURBd01EQTFPVFF5TlRZeFVGVk9WRlJKSUZCQlFWWlBNVW93TURBd01ERTBNRGt3TUVFd0RRb3pNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ESXdNekF5T0VNeE1EQXdORFF6TmpRek1EQXdNREF3TURBd01EQXdNRFkyTnpnM05UTlNWVTlMUVUxQlNrRWdXVkl4UVRBd01EQXhPRE0wTWpJd1FUQU5Dak15T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMU1ETXdNakF6TURJMU1EQXdNVFUwTWpBd056WXdNREF3TURBd01EQXdNREF3TnpNNE9ERXdOMGhQVkVWTVRFbExSVlJLVlRGTE1EQXdNREUxTWpjek1EQkxNQTBLTXpJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd016STFPRGczT1RBNU1EQTJPVEF3TURBd01EQXdNREF3TURBNU16WXpPVGszVUU5TlRVa2dTa0VnVUVGTk1Vb3dNREF3TURBM016RXpNRUV3RFFvek1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXpNalU0T0RjNFZVRTBNRE16TURBd01EQXdNREF3TURBd05EY3hNVEk1TlRGUVQwaEtRVTVNU1U1T1FVNHhTakF3TURBd01EWTJOVEF3UVRBTkNqTXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56aEdRVFF3TkRFd01EQXdNREF3TURJeU9UQXdNREE1TkRJM09WQkZURlJKVkZWTFMxVWdTekZLTURBd01EQXhNRGMyT1RCQk1BMEtNekk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TXpJMU9EaFhWMDVETURFeU5qQXdNREF3TURBd01qTXdNREF3TURreE16azNVRVZNVkU5TVFTQlFSVTVVTVVvd01EQXdNREV6TVRFd01FRXdEUW96TWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNRE13TXpBek1qVTRPRGMzUVRrd01USTFNREF3TURBd01EQXlNekF3TURBd09UUXlPRFJRU1V0QlZGVkxTMVVnU1V3eFNqQXdNREF3TURneE9UUXdRVEFOQ2pNeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TXpBek1ETXhPVFV3UVVFeE16QXhNRFV3TURBd01EQXdNREl6TkRBd01EQTVOVE0xTjAxQlRrNUpURUVnVFVGSlNqRkxNREF3TURBd09EVTJNREJMTUEwS016STVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNekkxT0RnM04wRlRNREE1T0RBd01EQXdNREF3TkRZMU1EQXdNRGt4TmpFeVRsVlVWRlZPUlU0Z1RrbE9NVW93TURBd01ERXpOVEV3TUVFd0RRb3pNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF6TWpVNE9EYzNRa0k1TnpBek1EQXdNREF3TURBME9USXdNREF3T1RVMU5ESldRVUZVVkZWU1NTQldSVkl4U2pBd01EQXdNRGN5TWpRd1FUQU5Dak15T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURNeU5UZzROemt3TXpnMk16SXdNREF3TURBd01EVXhPREF3TURBNU5UVTJOVkpCVlZSQlMwRk1URWxQVGpGS01EQXdNREF5T0RRMk1EQkJNQTBLTXpJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd016STFPRGczTjBFeU1qSXhPVEF3TURBd01EQXdPREV3TURBd01EazBOalU1VUU5SVNrRWdUMU5WVlZOTE1Vb3dNREF3TURBME9UVXdNRUV3RFFvek1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXpNalU0T0RjM1FUa3dNVEUwTURBd01EQXdNREE0TWpBd01EQXdPVGd3TXpCTlJWTlVRVkpKSUUxQlRsVXhTakF3TURBd01URXlNakF3UVRBTkNqTXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56ZENRVEV5TWpJd01EQXdNREF3TURneU5UQXdNREE1TVRneU5VNVZVazFKVTBWT0lFeEpTVEZLTURBd01EQXdPREF4TXpCQk1BMEtNekk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TXpJMU9EZzNOMFF5TURBMU5EQXdNREF3TURBd09EUXdNREF3TURrMU56WTNSVkpKUzA5SlUxUkZTMDVKTVVvd01EQXdNREE1TlRNd01FRXdEUW8xTWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNRE13TXpBek1qVTRPRGN6TVVzd01EQTFNREF3TURBd01EQXdNREF3TlRZeE1qTTJNVFJMU1ZaSlRrVk9JRkpGVkZVeFNqQXdNREF3TURjNE5EQXdRVEFOQ2pVeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TXpBek1ESXlOVGc0TnpNeFN6RXlNelF3TURBd01EQXdNREF3TURBMU5qRXlNell5TjFOUFVrRk9SVTRnVkVGVVZURktNREF3TURBeE5EWTFNREJCTUEwS05USTVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNakkxT0RnM016RkxNREE0TlRBd01EQXdNREF3TURBd01EVTJNVEl6TmpNd1ZFbEpWa2tnVkVGQlZra3dNVW93TURBd01ERXhNakl3TUVFd0RRbzFNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF5TWpVNE9EY3pNVXN3TURFeE1EQXdNREF3TURBd01EQXdOVFl4TWpNMk5ETklRVTVJU1NCSVFVNU9WU0F4U2pBd01EQXdNRGd3TmpBd1FUQU5DalV5T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURJeU5UZzROek14U3pBd01qSXdNREF3TURBd01EQXdNREExTmpFeU16WTFOa3BWVDA1SlR5QktWVk5UU1RGQk1EQXdNREF3T1RZME1UQkJNUTBLTlRJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd01qSTFPRGczTXpGTE1EQXdPREF3TURBd01EQXdNREF3TURVMk1USTBNVEl4VFVGSlRrbFBJRTFCVkZSSk1Vb3dNREF3TURNM016Y3dNRUV3RFFvMU1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXlNalU0T0Rjek1Vc3dNRFU0TURBd01EQXdNREF3TURBd05UWXhNalF4TXpSTFNWWkpUa1ZPSUZOSlVsVXhTakF3TURBd01qWTBPVEF3UVRBTkNqVXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNREl5TlRnNE56TXhTekEzTURZd01EQXdNREF3TURnd01EQTFOakV5TkRFME4wcFBSVTVUVlZVZ1JVeE1TVEZLTURBd01EQXdOalF5TURCQk1BMEtOVEk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TWpJMU9EZzNNekZMTURJek1UQXdNREF3TURBd09EQXdNRFUyTVRJME1UVXdVMVZQVFVGTVFVbE9SVTRnTVVvd01EQXdNREU1TmpFd01FRXdEUW8xTWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNREl3TXpBeU5VeE5JQ0FnSURBMU1URTBNREF3TURBd01EQXdNREF3TlRZeE1qUTFNekpTVlU5VVUwRk1RVWxPUlU0eFFUQXdNREF3TVRRNU1EQXdRVEFOQ2pVeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TWpBek1ESTFURTBnSUNBZ01UQXhOalV3TURBd01EQXdNREF3TURBMU5qRXlORFUwTlV4RlNWQlBUVThnVEVsTlVERkJNREF3TURBMk5UYzJNREJCTUEwS05USTVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNekkxT0RnM016RkxNVEl3TXpBd01EQXdNREF3TURFNE5UQXdNRGszTVRNMlUwRk1UVWtnUVVORFNTQWdNVW93TURBd01ERTVNRGt3TUVFd0RRbzFNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF6TlV4TklDQWdNRGt3TXpNek1EQXdNREF3TURBd01UZzFNREF3T1RnM09ESkxWVlJXVDA1RlRpQkxRVWt4UVRBd01EQXdNRGsxTWpBd1FUQU5DalV5T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURNeU5UZzROek14U3pBd056WXdNREF3TURBd01EQTJOREF3TURBNU5ERTRPRXRWUzBGTVNVVWdSVTFOU1RGS01EQXdNREF3TnpRMU1EQkJNQTBLTlRJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF5TURNd01qVk1UU0FnSURjNU1EQTJPVEF3TURBd01EQXdNRGMwTlRBd01Ea3pOREEwVkVsTlVGVlNTU0JGVTB0UE1VRXdNREF3TURjek1UTXdNRUV3RFFvMU1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXpNalU0T0Rjek1Vc3dNRGs1TURBd01EQXdNREF5TWprd01EQXdPVEV6T0RKUVNVdExRVTVGVGlCUVNVRXhRVEF3TURBd01ESTBOall3UVRJTkNqVXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56TXhTekF3TmpVd01EQXdNREF3TURJeU9UQXdNREE1TkRJM09WWkpTVlpKSmxkQlIwNUZVakZLTURBd01ERXdOelk1TURCQk1BMEtOVEk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXlNRE13TWpVd01ERXdNVEU1TURFeU5qQXdNREF3TURBd01qTXdNREF3TURreE16azNVRlZWVmtsTVRFRWdTMVZVTVVzd01EQXdNREUwTVRFd01FRXdEUW8xTWprMU1ERTRNREF3TURBd01UUXdOakF6TURNd05qQXpNRE13TXpBeU1qVTRPRGN6TVVzd09UQTRNREF3TURBd01EQXlNekF3TURBd09UUXlPRFJUVlV0TVFVRlFWVTlVU1NBeFNqQXdNREF3T0RFNU5EQXdRVEFOQ2pVeU9UVXdNVGd3TURBd01EQXhOREEyTURNd016QTJNRE13TXpBek1ESXlOVGc0TnpNeFN6QTNNRFV3TURBd01EQXdNREl6TkRBd01EQTVOVE0xTjBWT1ZFbE9SVTRnUlVsTVFURktNREF3TURBd09EVTJNREJCTUEwS05USTVOVEF4T0RBd01EQXdNREUwTURZd016QXpNRFl3TXpBek1ETXdNakkxT0RnM016RkxNREE1T1RBd01EQXdNREF3TkRZMU1EQXdNRGt4TmpFeVMwbEZTMVVtUzBGSlMxVWdNVW93TURBd01ERXpOVEV3TUVFd0RRbzFNamsxTURFNE1EQXdNREF3TVRRd05qQXpNRE13TmpBek1ETXdNekF5TWpVNE9EY3pNVXN3T1RneU1EQXdNREF3TURBME9USXdNREF3T1RVMU5ESk9RVXRWVkZSQlNrRWdUa0V4U2pBd01EQXdOekl5TkRBd1FUQU5DalV5T1RVd01UZ3dNREF3TURBeE5EQTJNRE13TXpBMk1ETXdNekF6TURJeU5UZzROek14U3prM09Ea3dNREF3TURBd01EVXhPREF3TURBNU5UVTJOVUZPUTB0QklFbE9SVk1nSURGS01EQXdNREF5T0RRMk1EQkJNQTBLTlRJNU5UQXhPREF3TURBd01ERTBNRFl3TXpBek1EWXdNekF6TURNd01qSTFPRGczTXpGTE1EQTBOREF3TURBd01EQXdPREV3TURBd01EazBOalU1UVVsTFFVbE9SVTRnUVVGTk1Vb3dNREF3TURFMk9UVXdNRUV3RFFvMU1qazFNREU0TURBd01EQXdNVFF3TmpBek1ETXdOakF6TURNd016QXlNalU0T0Rjek1Vc3dNREUwTURBd01EQXdNREE0TWpBd01EQXdPVGd3TXpCTldWbFNXeUJOUVZSSlFWTXhTakF3TURBd01URXlOVEF3UVRBTkNqVXlPVFV3TVRnd01EQXdNREF4TkRBMk1ETXdNekEyTURNd016QXpNREl5TlRnNE56TXhTekE1T0RJd01EQXdNREF3TURneU5UQXdNREE1TVRneU5WSkZTVkJCVXlCU1NWTlVUekZLTURBd01EQXlNRGsyTURCQk1BMEtOVEk1TlRBeE9EQXdNREF3TURFME1EWXdNekF6TURZd016QXpNRE13TWpJMU9EZzNNekpMTURBd01UQXdNREF3TURBd09EUXdNREF3TURrMU56WTNVa1ZRVDB4QlNVNUZUaUJMTVVvd01EQXdNREF5TXpreU1FRTBEUW81TURBd01EUTRNREF3TURFeU5UTTFNREV3TURBd01ETXdNREF3TURBd05qRXlOREF3TURBd016QXdNREF3TURFME5EazVNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREFOQ2c9PTwvYzJiOkNvbnRlbnQ+PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CjxTaWduZWRJbmZvPgogIDxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiLz4KICA8U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIi8+CiAgPFJlZmVyZW5jZSBVUkk9IiI+CiAgICA8VHJhbnNmb3Jtcz4KICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+CiAgICAgIDxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSIvPgogICAgPC9UcmFuc2Zvcm1zPgogICAgPERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIi8+CiAgICA8RGlnZXN0VmFsdWU+Y1Bndk5ZR251aklLSWs1dEI5OWsraGQ5Tk1zPTwvRGlnZXN0VmFsdWU+CiAgPC9SZWZlcmVuY2U+CjwvU2lnbmVkSW5mbz4KICAgIDxTaWduYXR1cmVWYWx1ZT5iY0JMeDMrcS8rTlpKZjBlRFdjTCtqVFB4amgzcUJZaTVaOXR6SVpwSkNsZVFQVGJZcEFMTTNscFFLVjlZWjZoN29SZ2V5SkVBQ2JBODZFU0ROaTZMZ0tBTllKZ2MyRUIvd2FsVE1QSWdvbVlrQU8wN1RQVXl0QS9VQXBVSW5ZQTI2TTlJempIVDFvQkdKcXQ0UHc3aXhkRjR3Ni9CYXFyUGJWTjhrS2tWMGc9PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE+PFg1MDlDZXJ0aWZpY2F0ZT5NSUlEOFRDQ0F0bWdBd0lCQWdJRUFWbDhIakFOQmdrcWhraUc5dzBCQVFVRkFEQnJNUXN3Q1FZRFZRUUdFd0pUUlRFZU1Cd0dBMVVFQ2hNVlRtOXlaR1ZoSUVKaGJtc2dRVUlnS0hCMVltd3BNU1l3SkFZRFZRUURFeDFPYjNKa1pXRWdRMjl5Y0c5eVlYUmxJRk5sY25abGNpQkRRU0F3TVRFVU1CSUdBMVVFQlJNTE5URTJOREEyTFRBeE1qQXdIaGNOTVRJd09ERTJNRGd4TVRVNVdoY05NVFF3T0RFMk1EZ3hNVFU1V2pCK01Rc3dDUVlEVlFRR0V3SlRSVEVlTUJ3R0ExVUVDZ3dWVG05eVpHVmhJRUpoYm1zZ1FVSWdLSEIxWW13cE1Tb3dLQVlEVlFRTERDRk9aWFJpWVc1cmFXNW5JQ1lnU1c1MFpXZHlZWFJwYjI0Z1UyVnlkbWxqWlhNeEl6QWhCZ05WQkFNTUdrWnBiR1VnVkhKaGJuTm1aWElnVjJWaUlGTmxjblpwWTJWek1JR2ZNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0R05BRENCaVFLQmdRQ0dKcUx2alRpYU0reW90Q2Vza1lvZVAvYzJFRjAveEppMDd2MUo4UnVBcjFNdTJOVTZ0ZWwzT3NVVG1td1ZZK0dTeHNDaTZnaysxS3ZMVlBnV21xRXJEYWhWcnlIdzNtbkZscnJrbFhjSVR0VWF3N09CYSt4cmozc1NTQk9vbmVSYW5xV0ZIMnRsRGoxcmFWQkVRSlR4eDNtaklvYXdQSUhmUy93OERJOXV0UUlEQVFBQm80SUJERENDQVFnd0NRWURWUjBUQkFJd0FEQVJCZ05WSFE0RUNnUUlTdkZWQjl2N2Vab3dFd1lEVlIwakJBd3dDb0FJUk1lVDJkbDdWc0V3TndZSUt3WUJCUVVIQVFFRUt6QXBNQ2NHQ0NzR0FRVUZCekFCaGh0b2RIUndPaTh2YjJOemNDNXViM0prWldFdWMyVXZVME5CTURFd0RnWURWUjBQQVFIL0JBUURBZ1dnTUlHSkJnTlZIUjhFZ1lFd2Z6QjlvSHVnZVlaM2JHUmhjRG92TDJ4a1lYQXVibUl1YzJVdlkyNDlUbTl5WkdWaEpUSXdRMjl5Y0c5eVlYUmxKVEl3VTJWeWRtVnlKVEl3UTBFbE1qQXdNU3h2UFU1dmNtUmxZU1V5TUVKaGJtc2xNakJCUWlVeU1DaHdkV0pzS1N4alBWTkZQMk5sY25ScFptbGpZWFJsY21WMmIyTmhkR2x2Ym14cGMzUXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSVpiemF4b0pVVkdDUE1LUXNlRnM3RStnLy9IWmJlZDFaTlZROHZSeS8rTDdpZUlXS2N6TFdyTXZIWmQ4R3ArODRRQUM1ZEtySEQrQnNXQlVwNVZMblZXSDZmNkVHelNIZGFWOUZDTVJxSER6TXpkZnBhdlJZSG0rdnRGM2srYnh0MmY2em5QbW8wYllCdFJqdXZ1TFgwTUxubkxhYWJUSjNwMmFzcEFJWjRRWEM3WFBURzFSWFZkYk5VVlJPWVd1dmlQa0Y0VlVyZEhNSFFyd3pIVjQwbVZaMEpESkRJdU5FTE1FTGRSMzdseXQwazZOQk9vclFFYkRpcU9admRmNUc0VnIwSXBnUzJRL3pvck9Va2NLa2RKeDhyUTl5Z1VtZUZHaGQ4VTNCV3NNemtKZDhra0tlYU5NRS9LOWFUb3RyVGgyaVRPWmdyT0lvODNBaG9OZlp3PTwvWDUwOUNlcnRpZmljYXRlPjxYNTA5SXNzdWVyU2VyaWFsPjxYNTA5SXNzdWVyTmFtZT5zZXJpYWxOdW1iZXI9NTE2NDA2LTAxMjAsIENOPU5vcmRlYSBDb3Jwb3JhdGUgU2VydmVyIENBIDAxLCBPPU5vcmRlYSBCYW5rIEFCIChwdWJsKSwgQz1TRTwvWDUwOUlzc3Vlck5hbWU+PFg1MDlTZXJpYWxOdW1iZXI+MjI2NDE2OTQ8L1g1MDlTZXJpYWxOdW1iZXI+PC9YNTA5SXNzdWVyU2VyaWFsPjwvWDUwOURhdGE+PC9LZXlJbmZvPjwvU2lnbmF0dXJlPjwvYzJiOkFwcGxpY2F0aW9uUmVzcG9uc2U+</mod:ApplicationResponse>
43
- </cor:downloadFileout>
44
- </soapenv:Body>
45
- </soapenv:Envelope>
2
+ <soapenv:Envelope xmlns:mod="http://model.bxd.fi" xmlns:cor="http://bxd.fi/CorporateFileService" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsu:Timestamp wsu:Id="Timestamp-1bfa8afa-2471-4057-b853-b9bb2f33320d" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsu:Created>2014-08-06T08:29:26Z</wsu:Created><wsu:Expires>2014-08-06T08:34:26Z</wsu:Expires></wsu:Timestamp><wsse:BinarySecurityToken wsu:Id="SecurityToken-46eb368f-eac3-43f5-953d-ba53587dfbe0" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">MIID8TCCAtmgAwIBAgIEAVl8HjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQGEwJTRTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSYwJAYDVQQDEx1Ob3JkZWEgQ29ycG9yYXRlIFNlcnZlciBDQSAwMTEUMBIGA1UEBRMLNTE2NDA2LTAxMjAwHhcNMTIwODE2MDgxMTU5WhcNMTQwODE2MDgxMTU5WjB+MQswCQYDVQQGEwJTRTEeMBwGA1UECgwVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMSowKAYDVQQLDCFOZXRiYW5raW5nICYgSW50ZWdyYXRpb24gU2VydmljZXMxIzAhBgNVBAMMGkZpbGUgVHJhbnNmZXIgV2ViIFNlcnZpY2VzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGJqLvjTiaM+yotCeskYoeP/c2EF0/xJi07v1J8RuAr1Mu2NU6tel3OsUTmmwVY+GSxsCi6gk+1KvLVPgWmqErDahVryHw3mnFlrrklXcITtUaw7OBa+xrj3sSSBOoneRanqWFH2tlDj1raVBEQJTxx3mjIoawPIHfS/w8DI9utQIDAQABo4IBDDCCAQgwCQYDVR0TBAIwADARBgNVHQ4ECgQISvFVB9v7eZowEwYDVR0jBAwwCoAIRMeT2dl7VsEwNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5ub3JkZWEuc2UvU0NBMDEwDgYDVR0PAQH/BAQDAgWgMIGJBgNVHR8EgYEwfzB9oHugeYZ3bGRhcDovL2xkYXAubmIuc2UvY249Tm9yZGVhJTIwQ29ycG9yYXRlJTIwU2VydmVyJTIwQ0ElMjAwMSxvPU5vcmRlYSUyMEJhbmslMjBBQiUyMChwdWJsKSxjPVNFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBAIZbzaxoJUVGCPMKQseFs7E+g//HZbed1ZNVQ8vRy/+L7ieIWKczLWrMvHZd8Gp+84QAC5dKrHD+BsWBUp5VLnVWH6f6EGzSHdaV9FCMRqHDzMzdfpavRYHm+vtF3k+bxt2f6znPmo0bYBtRjuvuLX0MLnnLaabTJ3p2aspAIZ4QXC7XPTG1RXVdbNUVROYWuviPkF4VUrdHMHQrwzHV40mVZ0JDJDIuNELMELdR37lyt0k6NBOorQEbDiqOZvdf5G4Vr0IpgS2Q/zorOUkcKkdJx8rQ9ygUmeFGhd8U3BWsMzkJd8kkKeaNME/K9aTotrTh2iTOZgrOIo83AhoNfZw=</wsse:BinarySecurityToken><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
3
+ <SignedInfo>
4
+ <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
5
+ <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
6
+ <Reference URI="#Timestamp-1bfa8afa-2471-4057-b853-b9bb2f33320d">
7
+ <Transforms>
8
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
9
+ </Transforms>
10
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
11
+ <DigestValue>z03EPTGHNfagjl640D9AUHXwWMs=</DigestValue>
12
+ </Reference>
13
+ <Reference URI="#Body-0d136bf1-481f-453b-ab42-9dccc3ef648b">
14
+ <Transforms>
15
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
16
+ </Transforms>
17
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
18
+ <DigestValue>RWs7OOFUvZL+jIP8znWPiw7NkDQ=</DigestValue>
19
+ </Reference>
20
+ </SignedInfo>
21
+ <SignatureValue>UMfTdBz6kLgZry4gOLRifKBJqigPWxQLvFLsbShfVtKtc1ssZ9PkJapLmi+kmum1yiHQCf2CALklirc8IMBDJqX+yqePfLByYEX5gvaabc9sDBux51+fRxNSWUutIO1kfSOuzK1J+M7lCFDcZHT9BpUu+dcm0gwopZ22V3EBoo4=</SignatureValue><KeyInfo><wsse:SecurityTokenReference xmlns=""><wsse:Reference URI="#SecurityToken-46eb368f-eac3-43f5-953d-ba53587dfbe0" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></KeyInfo></Signature></wsse:Security></soapenv:Header><soapenv:Body wsu:Id="Body-0d136bf1-481f-453b-ab42-9dccc3ef648b" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><cor:downloadFileout><mod:ResponseHeader><mod:SenderId>11111111</mod:SenderId><mod:RequestId>309dfb0f2c839a4595dbb700564919826f</mod:RequestId><mod:Timestamp>2014-08-06T10:29:26+02:00</mod:Timestamp><mod:ResponseCode>00</mod:ResponseCode><mod:ResponseText>OK.</mod:ResponseText><mod:ReceiverId>11111111A1</mod:ReceiverId></mod:ResponseHeader><mod:ApplicationResponse>PGMyYjpBcHBsaWNhdGlvblJlc3BvbnNlIHhtbG5zOmMyYj0iaHR0cDovL2J4ZC5maS94bWxkYXRhLyI+PGMyYjpDdXN0b21lcklkPjExMTExMTExPC9jMmI6Q3VzdG9tZXJJZD48YzJiOlRpbWVzdGFtcD4yMDE0LTA4LTA2VDEwOjI5OjI2KzAyOjAwPC9jMmI6VGltZXN0YW1wPjxjMmI6UmVzcG9uc2VDb2RlPjAwPC9jMmI6UmVzcG9uc2VDb2RlPjxjMmI6UmVzcG9uc2VUZXh0Pk9LLjwvYzJiOlJlc3BvbnNlVGV4dD48YzJiOkVuY3J5cHRlZD5mYWxzZTwvYzJiOkVuY3J5cHRlZD48YzJiOkNvbXByZXNzZWQ+ZmFsc2U8L2MyYjpDb21wcmVzc2VkPjxjMmI6Q29udGVudD5NREEyTURNd016SXpOVGt5SURBeE1URXhNVEV4TVRFME5EUTBORFEwTkVFd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdEUW96TVRrMU1ETXdNREF3TURBd01UQXdOakF6TURNd05qQXpNREl3TXpBeU5VeE5JQ0FnSUNBMk5UUTFNREF3TURBd01EQXdNREF3TURBd01EQXdNVE5NVDFCRlRpQlFSVkpWVGtFeFFUQXdNREF3TXpJek1qUXdRVEFOQ2pNeE9UVXdNekF3TURBd01EQXhNREEyTURNd016QTJNRE13TXpBek1ETXhPVFV3UVVFeE1qTXhPRFV3TURBd01EQXdNREF3TURBd01EUTFOVFF6TlZSVlZGUlZJRlJKVFU4Z0lERkxNREF3TURBM056WTBNREJMTUEwS016RTVOVEF6TURBd01EQXdNREV3TURZd016QXpNRFl3TXpBek1ETXdNekU1TlRCQlFURXlNelkzT0RBd01EQXdNREF3TURBd01EQXdPRFEwTmpjM1VFOVZWRUVnVUVsTVZra2dNVXN3TURBd01EZzFNVFV3TUVzd0RRb3pNVGsxTURNd01EQXdNREF3TVRBd05qQXpNRE13TmpBek1ETXdNekF6TWpVNE9EYzNRa0V4TWpNME1EQXdNREF3TURBd01EQXdNREE0T1RBNU1qSkxWVXhOUVU0Z1MwRlZVRkF4U2pBd01EQXhNek15T0RNd1FUQU5Dak14T1RVd016QXdNREF3TURBeE1EQTJNRE13TXpBMk1ETXdNekF6TURNeU5UZzROemd3TVRRME5EUXdNREF3TURBd01EQXdNREF3TWpVek5UTXpOMHRCVTFaSklFdEpSVXhQSURGS01EQXdNREUyTVRneU5EQkJNQTBLTXpFNU5UQXpNREF3TURBd01ERXdNRFl3TXpBek1EWXdNekF6TURNd016STFPRGczT1RBeU5UVTFOVEF3TURBd01EQXdNREF3TURBMk5qYzROelV6U0VGT1RsVk1RU0JQV1NBZ01Vb3dNREF3TURjeU5EVXdNRUV3RFFvek1UazFNRE13TURBd01EQXdNVEF3TmpBek1ETXdOakF6TURNd016QXpNalU0T0RjNFFrRXdNVEUwTURBd01EQXdNREF3TURBd01ETXdPRGd4T0RkT1JVeE1TU0FtSUVOUElDQXhTakF3TURBd09EVTFOVEF3UVRBTkNqVXhPVFV3TXpBd01EQXdNREF4TURBMk1ETXdNekEyTURNd016QXpNRE15TlRnNE56TXhTekF3TURnd01EQXdNREF3TURJek1EQXdNREE1TkRJNE1FMUJTMU5CU2tFZ1RVRlVWREZLTURBd01EQTFOREV5TnpCQk1BMEtOVEU1TlRBek1EQXdNREF3TURFd01EWXdNekF6TURZd016QXpNRE13TWpJMU9EZzNNekZMTURVd05UQXdNREF3TURBd01qTTBNREF3TURrMU16VXdUMU5VUVVwQklFOVRVMGtnTVVvd01EQXdNRGM0T0RRMk1FRXdEUW8xTVRrMU1ETXdNREF3TURBd01UQXdOakF6TURNd05qQXpNRE13TXpBeU1qVTRPRGN6TVVzd016azVNREF3TURBd01EQTBOalV3TURBd05URTJNVEpVVlZSVVZTQlVTVTFQSUNBeFNqQXdNREF3TmpFek5Ea3dRVEFOQ2pVeE9UVXdNekF3TURBd01EQXhNREEyTURNd016QTJNRE13TXpBek1ESXlOVGc0TnpNeFN6QTJPREl3TURBd01EQXdNRFE1TWpBd01EQTBOVFUwTWxCUFZWUkJJRkJKVEZaSklERkJNREF3TURBeE56QTJOREJCTncwS05URTVOVEF6TURBd01EQXdNREV3TURZd016QXpNRFl3TXpBek1ETXdNakkxT0RnM016RkxPVFU0T1RBd01EQXdNREF3TlRFNE1EQXdNRGcxTlRZd1RVRkxVMEZLUVNCTlFVbEtNVUV3TURBd01ERXlNRGN5TUVFMERRbzFNVGsxTURNd01EQXdNREF3TVRBd05qQXpNRE13TmpBek1ETXdNekF5TWpVNE9EY3pNVXN3TURFME1EQXdNREF3TURBNE1UQXdNREF3T1RBMk5UQlBVMU5KVGlCQlZWUlBJRTh4U2pBd01EQXdNVGMzTkRZd1FUQU5Damt3TURBd01URXdNREF3TURnMk1ESTRPVEF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBeU1EQXdNREF3TWpreE16WXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNQTBLPC9jMmI6Q29udGVudD48U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4KPFNpZ25lZEluZm8+CiAgPENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSIvPgogIDxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjcnNhLXNoYTEiLz4KICA8UmVmZXJlbmNlIFVSST0iIj4KICAgIDxUcmFuc2Zvcm1zPgogICAgICA8VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz4KICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1Ii8+CiAgICA8L1RyYW5zZm9ybXM+CiAgICA8RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiLz4KICAgIDxEaWdlc3RWYWx1ZT4vc3N3cHNJajBXT0NpWDJYMFZOeGIyRndzZ0k9PC9EaWdlc3RWYWx1ZT4KICA8L1JlZmVyZW5jZT4KPC9TaWduZWRJbmZvPgogICAgPFNpZ25hdHVyZVZhbHVlPlN0RWpjczJHcnhLK3IxaXdQYTFERTBiMFNoMXFBN1ZPczRvam9TeDNSWjVDdEM5dUxkLy9kZ3ZYSm5aRzRoVFJSSjBZaHQwRlpYK3E5eFF2SFdTaTFrdlFnQmV5czdDaEE5QVlGYldEeEVEajNEZnQxQlFxS0ZWUlRLL3VUcUYxVXVTMTl0T2tuZmxMby9zOU1SYmt6RkVjeEpzQjVOaXduMmlrbVVlc3JKZz08L1NpZ25hdHVyZVZhbHVlPjxLZXlJbmZvPjxYNTA5RGF0YT48WDUwOUNlcnRpZmljYXRlPk1JSUQ4VENDQXRtZ0F3SUJBZ0lFQVZsOEhqQU5CZ2txaGtpRzl3MEJBUVVGQURCck1Rc3dDUVlEVlFRR0V3SlRSVEVlTUJ3R0ExVUVDaE1WVG05eVpHVmhJRUpoYm1zZ1FVSWdLSEIxWW13cE1TWXdKQVlEVlFRREV4MU9iM0prWldFZ1EyOXljRzl5WVhSbElGTmxjblpsY2lCRFFTQXdNVEVVTUJJR0ExVUVCUk1MTlRFMk5EQTJMVEF4TWpBd0hoY05NVEl3T0RFMk1EZ3hNVFU1V2hjTk1UUXdPREUyTURneE1UVTVXakIrTVFzd0NRWURWUVFHRXdKVFJURWVNQndHQTFVRUNnd1ZUbTl5WkdWaElFSmhibXNnUVVJZ0tIQjFZbXdwTVNvd0tBWURWUVFMRENGT1pYUmlZVzVyYVc1bklDWWdTVzUwWldkeVlYUnBiMjRnVTJWeWRtbGpaWE14SXpBaEJnTlZCQU1NR2tacGJHVWdWSEpoYm5ObVpYSWdWMlZpSUZObGNuWnBZMlZ6TUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDR0pxTHZqVGlhTSt5b3RDZXNrWW9lUC9jMkVGMC94SmkwN3YxSjhSdUFyMU11Mk5VNnRlbDNPc1VUbW13VlkrR1N4c0NpNmdrKzFLdkxWUGdXbXFFckRhaFZyeUh3M21uRmxycmtsWGNJVHRVYXc3T0JhK3hyajNzU1NCT29uZVJhbnFXRkgydGxEajFyYVZCRVFKVHh4M21qSW9hd1BJSGZTL3c4REk5dXRRSURBUUFCbzRJQkREQ0NBUWd3Q1FZRFZSMFRCQUl3QURBUkJnTlZIUTRFQ2dRSVN2RlZCOXY3ZVpvd0V3WURWUjBqQkF3d0NvQUlSTWVUMmRsN1ZzRXdOd1lJS3dZQkJRVUhBUUVFS3pBcE1DY0dDQ3NHQVFVRkJ6QUJoaHRvZEhSd09pOHZiMk56Y0M1dWIzSmtaV0V1YzJVdlUwTkJNREV3RGdZRFZSMFBBUUgvQkFRREFnV2dNSUdKQmdOVkhSOEVnWUV3ZnpCOW9IdWdlWVozYkdSaGNEb3ZMMnhrWVhBdWJtSXVjMlV2WTI0OVRtOXlaR1ZoSlRJd1EyOXljRzl5WVhSbEpUSXdVMlZ5ZG1WeUpUSXdRMEVsTWpBd01TeHZQVTV2Y21SbFlTVXlNRUpoYm1zbE1qQkJRaVV5TUNod2RXSnNLU3hqUFZORlAyTmxjblJwWm1sallYUmxjbVYyYjJOaGRHbHZibXhwYzNRd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFJWmJ6YXhvSlVWR0NQTUtRc2VGczdFK2cvL0haYmVkMVpOVlE4dlJ5LytMN2llSVdLY3pMV3JNdkhaZDhHcCs4NFFBQzVkS3JIRCtCc1dCVXA1VkxuVldINmY2RUd6U0hkYVY5RkNNUnFIRHpNemRmcGF2UllIbSt2dEYzaytieHQyZjZ6blBtbzBiWUJ0Ump1dnVMWDBNTG5uTGFhYlRKM3AyYXNwQUlaNFFYQzdYUFRHMVJYVmRiTlVWUk9ZV3V2aVBrRjRWVXJkSE1IUXJ3ekhWNDBtVlowSkRKREl1TkVMTUVMZFIzN2x5dDBrNk5CT29yUUViRGlxT1p2ZGY1RzRWcjBJcGdTMlEvem9yT1VrY0trZEp4OHJROXlnVW1lRkdoZDhVM0JXc016a0pkOGtrS2VhTk1FL0s5YVRvdHJUaDJpVE9aZ3JPSW84M0Fob05mWnc9PC9YNTA5Q2VydGlmaWNhdGU+PFg1MDlJc3N1ZXJTZXJpYWw+PFg1MDlJc3N1ZXJOYW1lPnNlcmlhbE51bWJlcj01MTY0MDYtMDEyMCwgQ049Tm9yZGVhIENvcnBvcmF0ZSBTZXJ2ZXIgQ0EgMDEsIE89Tm9yZGVhIEJhbmsgQUIgKHB1YmwpLCBDPVNFPC9YNTA5SXNzdWVyTmFtZT48WDUwOVNlcmlhbE51bWJlcj4yMjY0MTY5NDwvWDUwOVNlcmlhbE51bWJlcj48L1g1MDlJc3N1ZXJTZXJpYWw+PC9YNTA5RGF0YT48L0tleUluZm8+PC9TaWduYXR1cmU+PC9jMmI6QXBwbGljYXRpb25SZXNwb25zZT4=</mod:ApplicationResponse></cor:downloadFileout></soapenv:Body></soapenv:Envelope>