gitlab-qa 6.21.3 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab-ci.yml +3 -2
  3. data/docs/configuring_omnibus.md +208 -0
  4. data/docs/run_qa_against_gdk.md +4 -0
  5. data/docs/what_tests_can_be_run.md +34 -0
  6. data/gitlab-qa.gemspec +1 -1
  7. data/lib/gitlab/qa.rb +7 -0
  8. data/lib/gitlab/qa/component/gitlab.rb +37 -30
  9. data/lib/gitlab/qa/component/minio.rb +2 -10
  10. data/lib/gitlab/qa/component/specs.rb +10 -9
  11. data/lib/gitlab/qa/docker/engine.rb +36 -5
  12. data/lib/gitlab/qa/report/test_result.rb +5 -1
  13. data/lib/gitlab/qa/runner.rb +57 -5
  14. data/lib/gitlab/qa/runtime/env.rb +6 -0
  15. data/lib/gitlab/qa/runtime/omnibus_configuration.rb +69 -0
  16. data/lib/gitlab/qa/runtime/omnibus_configurations/default.rb +25 -0
  17. data/lib/gitlab/qa/runtime/omnibus_configurations/object_storage.rb +48 -0
  18. data/lib/gitlab/qa/runtime/omnibus_configurations/packages.rb +17 -0
  19. data/lib/gitlab/qa/scenario/cli_commands.rb +3 -3
  20. data/lib/gitlab/qa/scenario/test/instance/relative_url.rb +1 -3
  21. data/lib/gitlab/qa/scenario/test/instance/repository_storage.rb +1 -1
  22. data/lib/gitlab/qa/scenario/test/integration/actioncable.rb +1 -3
  23. data/lib/gitlab/qa/scenario/test/integration/geo.rb +4 -5
  24. data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +3 -3
  25. data/lib/gitlab/qa/scenario/test/integration/group_saml.rb +1 -1
  26. data/lib/gitlab/qa/scenario/test/integration/instance_saml.rb +1 -1
  27. data/lib/gitlab/qa/scenario/test/integration/kubernetes.rb +1 -1
  28. data/lib/gitlab/qa/scenario/test/integration/ldap_no_server.rb +1 -1
  29. data/lib/gitlab/qa/scenario/test/integration/ldap_no_tls.rb +1 -1
  30. data/lib/gitlab/qa/scenario/test/integration/ldap_tls.rb +1 -2
  31. data/lib/gitlab/qa/scenario/test/integration/mattermost.rb +1 -1
  32. data/lib/gitlab/qa/scenario/test/integration/mtls.rb +3 -7
  33. data/lib/gitlab/qa/scenario/test/integration/smtp.rb +1 -1
  34. data/lib/gitlab/qa/scenario/test/integration/ssh_tunnel.rb +1 -1
  35. data/lib/gitlab/qa/version.rb +1 -1
  36. data/tls_certificates/authority/ca.crt +32 -0
  37. data/tls_certificates/authority/ca.key +51 -0
  38. data/tls_certificates/authority/ca.pem +83 -0
  39. data/tls_certificates/gitaly/gitaly.test.crt +30 -0
  40. data/tls_certificates/gitaly/gitaly.test.csr +28 -0
  41. data/tls_certificates/gitaly/gitaly.test.key +51 -0
  42. data/tls_certificates/gitlab/gitlab.test.crt +28 -29
  43. data/tls_certificates/gitlab/gitlab.test.csr +28 -0
  44. data/tls_certificates/gitlab/gitlab.test.key +51 -52
  45. metadata +16 -10
  46. data/lib/gitlab/qa/scenario/test/integration/object_storage.rb +0 -64
  47. data/lib/gitlab/qa/scenario/test/integration/packages.rb +0 -36
  48. data/tls_certificates/gitaly/ssl/gitaly.test.crt +0 -33
  49. data/tls_certificates/gitaly/ssl/gitaly.test.key +0 -52
  50. data/tls_certificates/gitaly/trusted-certs/gitaly.test.crt +0 -33
  51. data/tls_certificates/gitaly/trusted-certs/gitlab.test.crt +0 -31
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gitlab
4
+ module QA
5
+ module Runtime
6
+ module OmnibusConfigurations
7
+ class Packages < Default
8
+ def configuration
9
+ <<~OMNIBUS
10
+ gitlab_rails['packages_enabled'] = true
11
+ OMNIBUS
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -4,11 +4,11 @@ module Gitlab
4
4
  module CLICommands
5
5
  GIT_LFS_VERSION = '2.8.0'.freeze
6
6
 
7
- def git_lfs_install_commands
8
- @git_lfs_install_commands ||= [
7
+ def self.git_lfs_install_commands
8
+ [
9
9
  "cd /tmp ; curl -qsL https://github.com/git-lfs/git-lfs/releases/download/v#{GIT_LFS_VERSION}/git-lfs-linux-amd64-v#{GIT_LFS_VERSION}.tar.gz | tar xzvf -",
10
10
  'cp /tmp/git-lfs /usr/local/bin'
11
- ]
11
+ ].freeze
12
12
  end
13
13
  end
14
14
  end
@@ -10,9 +10,7 @@ module Gitlab
10
10
  gitlab.network = 'test'
11
11
  gitlab.relative_path = '/relative'
12
12
 
13
- gitlab.omnibus_config = <<~OMNIBUS
14
- external_url '#{gitlab.address}';
15
- OMNIBUS
13
+ gitlab.omnibus_configuration << "external_url '#{gitlab.address}'"
16
14
 
17
15
  gitlab.instance do
18
16
  Component::Specs.perform do |specs|
@@ -9,7 +9,7 @@ module Gitlab
9
9
  gitlab.release = QA::Release.new(release)
10
10
  gitlab.name = 'gitlab'
11
11
  gitlab.network = 'test'
12
- gitlab.omnibus_config = <<~OMNIBUS
12
+ gitlab.omnibus_configuration << <<~OMNIBUS
13
13
  git_data_dirs({
14
14
  'default' => {
15
15
  'path' => '/var/opt/gitlab/git-data/repositories/default'
@@ -9,9 +9,7 @@ module Gitlab
9
9
  gitlab.release = QA::Release.new(release)
10
10
  gitlab.name = 'gitlab-actioncable'
11
11
  gitlab.network = 'test'
12
- gitlab.omnibus_config = <<~OMNIBUS
13
- actioncable['enable'] = true;
14
- OMNIBUS
12
+ gitlab.omnibus_configuration << "actioncable['enable'] = true"
15
13
 
16
14
  gitlab.instance do
17
15
  puts "Running actioncable specs!"
@@ -4,7 +4,6 @@ module Gitlab
4
4
  module Test
5
5
  module Integration
6
6
  class Geo < Scenario::Template
7
- include Scenario::CLICommands
8
7
  ##
9
8
  # rubocop:disable Lint/MissingCopEnableDirective
10
9
  # rubocop:disable Metrics/AbcSize
@@ -20,7 +19,7 @@ module Gitlab
20
19
  primary.release = release
21
20
  primary.name = 'gitlab-primary'
22
21
  primary.network = 'geo'
23
- primary.omnibus_config = <<~OMNIBUS
22
+ primary.omnibus_configuration << <<~OMNIBUS
24
23
  gitlab_rails['db_key_base'] = '4dd58204865eb41bca93bd38131d51cc';
25
24
  geo_primary_role['enable'] = true;
26
25
  gitlab_rails['db_password'] = 'mypass';
@@ -36,14 +35,14 @@ module Gitlab
36
35
  sidekiq['concurrency'] = 2;
37
36
  puma['worker_processes'] = 2;
38
37
  OMNIBUS
39
- primary.exec_commands = fast_ssh_key_lookup_commands + git_lfs_install_commands
38
+ primary.exec_commands = fast_ssh_key_lookup_commands + QA::Scenario::CLICommands.git_lfs_install_commands
40
39
 
41
40
  primary.instance do
42
41
  Component::Gitlab.perform do |secondary|
43
42
  secondary.release = release
44
43
  secondary.name = 'gitlab-secondary'
45
44
  secondary.network = 'geo'
46
- secondary.omnibus_config = <<~OMNIBUS
45
+ secondary.omnibus_configuration << <<~OMNIBUS
47
46
  geo_secondary['db_fdw'] = true;
48
47
  geo_secondary_role['enable'] = true;
49
48
  gitlab_rails['db_key_base'] = '4dd58204865eb41bca93bd38131d51cc';
@@ -58,7 +57,7 @@ module Gitlab
58
57
  sidekiq['concurrency'] = 2;
59
58
  puma['worker_processes'] = 2;
60
59
  OMNIBUS
61
- secondary.exec_commands = fast_ssh_key_lookup_commands + git_lfs_install_commands
60
+ secondary.exec_commands = fast_ssh_key_lookup_commands + QA::Scenario::CLICommands.git_lfs_install_commands
62
61
 
63
62
  secondary.act do
64
63
  # TODO, we do not wait for secondary to start because of
@@ -39,7 +39,7 @@ module Gitlab
39
39
  praefect.network = @network
40
40
  praefect.skip_availability_check = true
41
41
 
42
- praefect.omnibus_config = praefect_omnibus_configuration
42
+ praefect.omnibus_configuration << praefect_omnibus_configuration
43
43
 
44
44
  praefect.instance(skip_teardown: true)
45
45
  end
@@ -49,7 +49,7 @@ module Gitlab
49
49
  gitlab.name = gitlab_name
50
50
  gitlab.network = @network
51
51
 
52
- gitlab.omnibus_config = gitlab_omnibus_configuration
52
+ gitlab.omnibus_configuration << gitlab_omnibus_configuration
53
53
  gitlab.instance do
54
54
  puts "Running Gitaly Cluster specs!"
55
55
 
@@ -197,7 +197,7 @@ module Gitlab
197
197
  gitaly.name = name
198
198
  gitaly.network = @network
199
199
  gitaly.skip_availability_check = true
200
- gitaly.omnibus_config = gitaly_omnibus_configuration
200
+ gitaly.omnibus_configuration << gitaly_omnibus_configuration
201
201
  gitaly.instance(skip_teardown: true)
202
202
  end
203
203
  end
@@ -17,7 +17,7 @@ module Gitlab
17
17
  end
18
18
 
19
19
  def configure(gitlab, saml)
20
- gitlab.omnibus_config = <<~OMNIBUS
20
+ gitlab.omnibus_configuration << <<~OMNIBUS
21
21
  gitlab_rails['omniauth_enabled'] = true;
22
22
  gitlab_rails['omniauth_providers'] = [{ name: 'group_saml' }];
23
23
  OMNIBUS
@@ -17,7 +17,7 @@ module Gitlab
17
17
  saml.set_assertion_consumer_service("#{gitlab.address}/users/auth/saml/callback")
18
18
  saml.set_simple_saml_hostname
19
19
 
20
- gitlab.omnibus_config = <<~OMNIBUS
20
+ gitlab.omnibus_configuration << <<~OMNIBUS
21
21
  gitlab_rails['omniauth_enabled'] = true;
22
22
  gitlab_rails['omniauth_allow_single_sign_on'] = ['saml'];
23
23
  gitlab_rails['omniauth_block_auto_created_users'] = false;
@@ -21,7 +21,7 @@ module Gitlab
21
21
  tunnel_registry.gitlab_hostname = gitlab.hostname
22
22
  tunnel_registry.network = 'test'
23
23
 
24
- gitlab.omnibus_config = <<~OMNIBUS
24
+ gitlab.omnibus_configuration << <<~OMNIBUS
25
25
  external_url '#{tunnel_gitlab.url}';
26
26
  nginx['listen_port'] = 80;
27
27
  nginx['listen_https'] = false;
@@ -12,7 +12,7 @@ module Gitlab
12
12
  end
13
13
 
14
14
  def configure_omnibus(gitlab)
15
- gitlab.omnibus_config = <<~OMNIBUS
15
+ gitlab.omnibus_configuration << <<~OMNIBUS
16
16
  gitlab_rails['ldap_enabled'] = true;
17
17
  gitlab_rails['ldap_servers'] = #{ldap_servers_omnibus_config};
18
18
  gitlab_rails['ldap_sync_worker_cron'] = '* * * * *';
@@ -15,7 +15,7 @@ module Gitlab
15
15
  end
16
16
 
17
17
  def configure_omnibus(gitlab)
18
- gitlab.omnibus_config = <<~OMNIBUS
18
+ gitlab.omnibus_configuration << <<~OMNIBUS
19
19
  gitlab_rails['ldap_enabled'] = true;
20
20
  gitlab_rails['ldap_servers'] = #{ldap_servers_omnibus_config};
21
21
  gitlab_rails['ldap_sync_worker_cron'] = '* * * * *';
@@ -15,8 +15,7 @@ module Gitlab
15
15
  end
16
16
 
17
17
  def configure_omnibus(gitlab)
18
- gitlab.set_accept_insecure_certs
19
- gitlab.omnibus_config = <<~OMNIBUS
18
+ gitlab.omnibus_configuration << <<~OMNIBUS
20
19
  gitlab_rails['ldap_enabled'] = true;
21
20
  gitlab_rails['ldap_servers'] = #{ldap_servers_omnibus_config};
22
21
  letsencrypt['enable'] = false;
@@ -13,7 +13,7 @@ module Gitlab
13
13
  mattermost_external_url = "http://#{mattermost_hostname}"
14
14
 
15
15
  gitlab.add_network_alias(mattermost_hostname)
16
- gitlab.omnibus_config = <<~OMNIBUS
16
+ gitlab.omnibus_configuration << <<~OMNIBUS
17
17
  mattermost_external_url '#{mattermost_external_url}';
18
18
  OMNIBUS
19
19
 
@@ -21,9 +21,8 @@ module Gitlab
21
21
  gitaly.network = @network
22
22
  gitaly.skip_availability_check = true
23
23
 
24
- gitaly.set_accept_insecure_certs
25
- gitaly.omnibus_config = gitaly_omnibus
26
- gitaly.mtls
24
+ gitaly.omnibus_configuration << gitaly_omnibus
25
+ gitaly.gitaly_tls
27
26
 
28
27
  gitaly.instance do
29
28
  Component::Gitlab.perform do |gitlab|
@@ -31,10 +30,8 @@ module Gitlab
31
30
  gitlab.name = @gitlab_name
32
31
  gitlab.network = @network
33
32
 
34
- gitlab.set_accept_insecure_certs
35
- gitlab.omnibus_config = gitlab_omnibus
33
+ gitlab.omnibus_configuration << gitlab_omnibus
36
34
  gitlab.tls = true
37
- gitlab.set_trusted_certificates
38
35
 
39
36
  gitlab.instance do
40
37
  puts "Running mTLS specs!"
@@ -50,7 +47,6 @@ module Gitlab
50
47
  specs.network = gitlab.network
51
48
  specs.args = [gitlab.address, *rspec_args]
52
49
  specs.env = @env
53
- specs.mtls
54
50
  end
55
51
  end
56
52
  end
@@ -14,7 +14,7 @@ module Gitlab
14
14
  attr_reader :gitlab_name, :spec_suite
15
15
 
16
16
  def configure_omnibus(gitlab, mail_hog)
17
- gitlab.omnibus_config = <<~OMNIBUS
17
+ gitlab.omnibus_configuration << <<~OMNIBUS
18
18
  gitlab_rails['smtp_enable'] = true;
19
19
  gitlab_rails['smtp_address'] = '#{mail_hog.hostname}';
20
20
  gitlab_rails['smtp_port'] = 1025;
@@ -22,7 +22,7 @@ module Gitlab
22
22
  tunnel_registry.gitlab_hostname = gitlab.hostname
23
23
  tunnel_registry.network = 'test'
24
24
 
25
- gitlab.omnibus_config = <<~OMNIBUS
25
+ gitlab.omnibus_configuration << <<~OMNIBUS
26
26
  external_url '#{tunnel_gitlab.url}';
27
27
  nginx['listen_port'] = 80;
28
28
  nginx['listen_https'] = false;
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '6.21.3'.freeze
3
+ VERSION = '7.0.0'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,32 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIFizCCA3OgAwIBAgIUJBX+SiNuqUYjf33EuMObynTcKx0wDQYJKoZIhvcNAQEL
3
+ BQAwVTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
4
+ DVNhbiBGcmFuY2lzY28xGTAXBgNVBAoMEEdpdExhYiBBdXRob3JpdHkwHhcNMjEw
5
+ MjExMDYyMTUzWhcNMzEwMjA5MDYyMTUzWjBVMQswCQYDVQQGEwJVUzETMBEGA1UE
6
+ CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQ
7
+ R2l0TGFiIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
8
+ ALxpL/dfJwhIWGYK93ovIVj+gqvJI58Sga7eWlp2LpuFQZETjJBA79R0gcwr42ph
9
+ ch1BuxoxkYizM8sqIyFa5aW8SCWmO+IQzedKWZv+UWZg6pG+Fzyp6GO1wmXZdeXw
10
+ xRiXp2qV+rqA8DaL2g1c2u6TB/mcfNTrfsSP3045yQW+4mdNx/g4wBf0dMpHe5DJ
11
+ 5jIvowa2O0kesq1UQ1eM9IMNSwW8fMQenV+F41LWE1NO726ksglih9TQjAIrlX6I
12
+ XVmw0lgYegt2G+YQJ68nf2UmvK+C0KqzTZgqmzNMQnuSiJXMnlZvlgdLXTyTWCuq
13
+ tyxp3+Z2Wshk/Cghic2MCm2XwWBIqYGu+20qoPM61c3Rk5++2VOcajD1yCYxVtM2
14
+ akVP/e9arlCdi/CtJh3qvOlj9Uhs6a1UR/ZngpPLOa3r4JazZc04pK7q3ZynmoUL
15
+ oDPF9AKOikvhYKxTYsgZ65VhI3myTBjQFk9qX++z2HF9UImGblqUtckn3eIoI8n2
16
+ wd4pO/OFeFSXpR7jMywCwXTpC8yTTbuVzHEz8H83/qtsbjtw961g4kb8Vzh1zy73
17
+ PFiJNI7hZlP1I5dqNTOAv+GnwiSnF28i7xbdkIfmjYqwcwGhAO7rjifq8ygBH3sF
18
+ 0I/6dnw4BvNlSgSJlJ1+2eH1uiaikpuOGtQAttz536dNAgMBAAGjUzBRMB0GA1Ud
19
+ DgQWBBQSNZ46Xu4rfGVIPIQJpduWHJ+AQjAfBgNVHSMEGDAWgBQSNZ46Xu4rfGVI
20
+ PIQJpduWHJ+AQjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQC1
21
+ 4REbDKF1tdYeCxpmQHXLHu7OkrgKIea6eKxf8mI+ZsJA4iNr3aiZYU5Wm+uAq3mK
22
+ x6mrQRaqoo6JNbie5Tw8fU2c71EO4t3vwB7YOsBtcV0YrMtg316UE0lk+6kL0TRD
23
+ tV7dAGCB3wXZVLPolC26/kecc258p6h4rCJ8Gi6FsIKGBisTFk3QOdLG3DQNulPF
24
+ 2bZaJjs/6HqLL+QMdChUfJP3i71LdNxzwXNPbjJ3fm5f9RNeOcWo6oI2fkQArl2i
25
+ vcP/QtuqeOoJusbeL9zaF/EFlOggjkEtzFWCB05d6J7dMKYp5Lg4eMZQHPw6ycdk
26
+ Ek/XTupvBk+8UiXeHLvX6II9zww9+gm3uycPiO/CSPNw4yQBPPGW+30WznbedsuY
27
+ m79rxuq50KYvseJSPv7lw8v77ajQbRQzFi4frAFR+A1g8FArLxdpIptI9E+ekmaB
28
+ UMhCmi17mEuBtj8Hc3VrokTFtAJV6YNIk1X+Q/zLh4TaR5mm6C/82j/ZvkSm5OX7
29
+ TfaayRWDr7AfDKeG5Amt52BmYncsPUXnOofSz5UkqpeOWr0rKn+A7f2BeUP9R2nY
30
+ 6DncxYA+yOgU7RpnMBscsW6SkVIMJKFrfeZ1SbvZGRJd4L1PwfeaU+3yEG6oAfMa
31
+ CFquw23nWhjvUlnCe9BaUiEtOJ2ruGjdu2sdvXPcnw==
32
+ -----END CERTIFICATE-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,83 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
52
+ -----BEGIN CERTIFICATE-----
53
+ MIIFizCCA3OgAwIBAgIUJBX+SiNuqUYjf33EuMObynTcKx0wDQYJKoZIhvcNAQEL
54
+ BQAwVTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
55
+ DVNhbiBGcmFuY2lzY28xGTAXBgNVBAoMEEdpdExhYiBBdXRob3JpdHkwHhcNMjEw
56
+ MjExMDYyMTUzWhcNMzEwMjA5MDYyMTUzWjBVMQswCQYDVQQGEwJVUzETMBEGA1UE
57
+ CAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQ
58
+ R2l0TGFiIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
59
+ ALxpL/dfJwhIWGYK93ovIVj+gqvJI58Sga7eWlp2LpuFQZETjJBA79R0gcwr42ph
60
+ ch1BuxoxkYizM8sqIyFa5aW8SCWmO+IQzedKWZv+UWZg6pG+Fzyp6GO1wmXZdeXw
61
+ xRiXp2qV+rqA8DaL2g1c2u6TB/mcfNTrfsSP3045yQW+4mdNx/g4wBf0dMpHe5DJ
62
+ 5jIvowa2O0kesq1UQ1eM9IMNSwW8fMQenV+F41LWE1NO726ksglih9TQjAIrlX6I
63
+ XVmw0lgYegt2G+YQJ68nf2UmvK+C0KqzTZgqmzNMQnuSiJXMnlZvlgdLXTyTWCuq
64
+ tyxp3+Z2Wshk/Cghic2MCm2XwWBIqYGu+20qoPM61c3Rk5++2VOcajD1yCYxVtM2
65
+ akVP/e9arlCdi/CtJh3qvOlj9Uhs6a1UR/ZngpPLOa3r4JazZc04pK7q3ZynmoUL
66
+ oDPF9AKOikvhYKxTYsgZ65VhI3myTBjQFk9qX++z2HF9UImGblqUtckn3eIoI8n2
67
+ wd4pO/OFeFSXpR7jMywCwXTpC8yTTbuVzHEz8H83/qtsbjtw961g4kb8Vzh1zy73
68
+ PFiJNI7hZlP1I5dqNTOAv+GnwiSnF28i7xbdkIfmjYqwcwGhAO7rjifq8ygBH3sF
69
+ 0I/6dnw4BvNlSgSJlJ1+2eH1uiaikpuOGtQAttz536dNAgMBAAGjUzBRMB0GA1Ud
70
+ DgQWBBQSNZ46Xu4rfGVIPIQJpduWHJ+AQjAfBgNVHSMEGDAWgBQSNZ46Xu4rfGVI
71
+ PIQJpduWHJ+AQjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQC1
72
+ 4REbDKF1tdYeCxpmQHXLHu7OkrgKIea6eKxf8mI+ZsJA4iNr3aiZYU5Wm+uAq3mK
73
+ x6mrQRaqoo6JNbie5Tw8fU2c71EO4t3vwB7YOsBtcV0YrMtg316UE0lk+6kL0TRD
74
+ tV7dAGCB3wXZVLPolC26/kecc258p6h4rCJ8Gi6FsIKGBisTFk3QOdLG3DQNulPF
75
+ 2bZaJjs/6HqLL+QMdChUfJP3i71LdNxzwXNPbjJ3fm5f9RNeOcWo6oI2fkQArl2i
76
+ vcP/QtuqeOoJusbeL9zaF/EFlOggjkEtzFWCB05d6J7dMKYp5Lg4eMZQHPw6ycdk
77
+ Ek/XTupvBk+8UiXeHLvX6II9zww9+gm3uycPiO/CSPNw4yQBPPGW+30WznbedsuY
78
+ m79rxuq50KYvseJSPv7lw8v77ajQbRQzFi4frAFR+A1g8FArLxdpIptI9E+ekmaB
79
+ UMhCmi17mEuBtj8Hc3VrokTFtAJV6YNIk1X+Q/zLh4TaR5mm6C/82j/ZvkSm5OX7
80
+ TfaayRWDr7AfDKeG5Amt52BmYncsPUXnOofSz5UkqpeOWr0rKn+A7f2BeUP9R2nY
81
+ 6DncxYA+yOgU7RpnMBscsW6SkVIMJKFrfeZ1SbvZGRJd4L1PwfeaU+3yEG6oAfMa
82
+ CFquw23nWhjvUlnCe9BaUiEtOJ2ruGjdu2sdvXPcnw==
83
+ -----END CERTIFICATE-----
@@ -0,0 +1,30 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIFMTCCAxkCAQEwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCVVMxEzARBgNV
3
+ BAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xGTAXBgNVBAoM
4
+ EEdpdExhYiBBdXRob3JpdHkwHhcNMjEwMjEyMDkwNTMwWhcNMzEwMjEwMDkwNTMw
5
+ WjBoMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN
6
+ U2FuIEZyYW5jaXNjbzEWMBQGA1UECgwNR2l0YWx5IFNlcnZlcjEUMBIGA1UEAwwL
7
+ Z2l0YWx5LnRlc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDAVBZK
8
+ rNbD3s/A1hE1Sq5GqxbZ47Swbq3pC1+125jaAGfxFFkL6tbIJaeQZElwLzUDshKC
9
+ YDCnBOHmFHaxE+9FsoOjDPnHJFcdSqd7o77y3CID/wSxHt/kCR2xQ/X/YnGv0FJv
10
+ q9tx4ysFSn+zcNIJvv6G7GXVunSfEaO1X2wIxuVHmv54fc6NfW46E4MfbCSIl4KW
11
+ LX3x9z2xigAVa+lPCMwrEURizA2wLiwhUzOjEedBnNzqqHkrWA/SbzRO3IX7equl
12
+ NZVXzTTY/lfYZao5sPcGiGuuYyRdMEumkL41q/6yMFX4Sc4KSnWjMh0sGufGGU9Q
13
+ G2E2HsuH+Pff7ynbKcDs1Vk/KMJZWTPZnDGsznv9mG7PFi8elsf6oFsFAosmfiDp
14
+ J68N3J864J8DrFZhGCpmie8u1DTMJusGY6atQL1m0AsyYzhfa/f5gsc4b9jfBq0/
15
+ 2235iSMhJpwyuH909NBM7iFZ9mSD1xbPhHLPbvF3mrwttqwVtbav86vrySUOY2KU
16
+ SvVZJapcbi7APEvdbJjZZtIVsL/Exl/YQKDlKQp7/koMe5GUqjGFuXU9mFKkVtI6
17
+ kYtYkpaG3DnBysW3asRzFuUybJcUkEH6BzymSC9Y00zXSklnhR8Efr9u/zwRIJaY
18
+ zWiMQhqHNeZMXxLo2IwPZWoaXa1dmvRESW1A+wIDAQABMA0GCSqGSIb3DQEBCwUA
19
+ A4ICAQB1hOt/WSjjkUp20vI78Tt6Z5aakvQQCbLSpYwteCMHrTPRHoEDWhuBPKrG
20
+ d6jlRSqAfIPKk7J3FpPo7K0gIVT6czHDeYMPiUKdl+rtN7bW9X8Dh5/n29ohjwdM
21
+ c/m3EsP1NebQBJ9alZ1BiOW/gLwwR7v2rKcZvoOBm8xnktRj+mRsxMZK6at0VQxz
22
+ foaNd8kRRUnx66uLpj4xjFCGGcrXafjOZdK2S1ABVblfJo8ZZu2PxeTQ6xS1u63V
23
+ 71njRlBXh0+Wkec9Jr6CjnM7kIgKVanDQMCl7e7y12VXEljks9NHQbzo6TxPdAcT
24
+ pwwqOOi9esEARZSPVwILNSpOIO/T+Uu0JTbEVbZdpPfdhaoytfcgMURxrEkkKbA1
25
+ y5UE0C0ltabg7tgAObiVyGYyfYsp0/giQ4ACwja5dHNgz9Pt0aXu4l+UE0r1dZDK
26
+ 8IhjcoULzsnG2onAZ7BCHXW/c1vi1QWVcoLcD3EdAm720Yp41BEFkVI+0yRL9HTZ
27
+ VWpj7XUJto86FK4GtqdCnDPEMdyR+TbDJbukstP2zsVqEsfE1RFoWunHZTwj2hw9
28
+ dhz6ZlfujVRD7NITZ/tXqdwaNZMO0o0V3311fRNFdtMwwmKwGmupbk2A/MHum6VQ
29
+ zzX8y7TJ5JskSANReEG3TdTbmXE2xyM4YqLuJeuJCjKM9Ug69g==
30
+ -----END CERTIFICATE-----