capistrano-s3 2.4.0 → 3.0.0.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,214 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Capistrano::S3::Publisher do
6
+ before do
7
+ @root = File.expand_path(__dir__)
8
+ publish_file = Capistrano::S3::Publisher::LAST_PUBLISHED_FILE
9
+ FileUtils.rm(publish_file) if File.exist?(publish_file)
10
+ end
11
+
12
+ describe "::files" do
13
+ # @todo don't test via private methods
14
+ subject(:files) { described_class.send(:files, deployment_path, exclusions) }
15
+
16
+ let(:deployment_path) { "spec/sample-2" }
17
+ let(:exclusions) { [] }
18
+
19
+ it "includes dot-prefixed/hidden directories" do
20
+ expect(files).to include("spec/sample-2/.well-known/test.txt")
21
+ end
22
+
23
+ it "includes dot-prefixed/hidden files" do
24
+ expect(files).to include("spec/sample-2/public/.htaccess")
25
+ end
26
+ end
27
+
28
+ describe "publish!" do
29
+ it "publish all files" do
30
+ Aws::S3::Client.any_instance.expects(:put_object).times(8)
31
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
32
+ "spec/sample", "", "cf123", [], [], false, {}, "staging")
33
+ end
34
+
35
+ it "publish only gzip files when option is enabled" do
36
+ Aws::S3::Client.any_instance.expects(:put_object).times(4)
37
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
38
+ "spec/sample", "", "cf123", [], [], true, {}, "staging")
39
+ end
40
+
41
+ context "with invalidations" do
42
+ it "publish all files with invalidations" do
43
+ Aws::S3::Client.any_instance.expects(:put_object).times(8)
44
+ Aws::CloudFront::Client.any_instance.expects(:create_invalidation).once
45
+
46
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
47
+ "spec/sample", "", "cf123", ["*"], [], false, {}, "staging")
48
+ end
49
+
50
+ it "publish all files without invalidations" do
51
+ Aws::S3::Client.any_instance.expects(:put_object).times(8)
52
+ Aws::CloudFront::Client.any_instance.expects(:create_invalidation).never
53
+
54
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
55
+ "spec/sample", "", "cf123", [], [], false, {}, "staging")
56
+ end
57
+ end
58
+
59
+ context "with exclusions" do
60
+ it "exclude one files" do
61
+ Aws::S3::Client.any_instance.expects(:put_object).times(7)
62
+
63
+ exclude_paths = ["fonts/cantarell-regular-webfont.svg"]
64
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
65
+ "spec/sample", "", "cf123", [], exclude_paths, false, {},
66
+ "staging")
67
+ end
68
+
69
+ it "exclude multiple files" do
70
+ Aws::S3::Client.any_instance.expects(:put_object).times(6)
71
+
72
+ exclude_paths = ["fonts/cantarell-regular-webfont.svg",
73
+ "fonts/cantarell-regular-webfont.svg.gz"]
74
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
75
+ "spec/sample", "", "cf123", [], exclude_paths, false, {},
76
+ "staging")
77
+ end
78
+
79
+ it "exclude directory" do
80
+ Aws::S3::Client.any_instance.expects(:put_object).times(0)
81
+
82
+ exclude_paths = ["fonts/**/*"]
83
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
84
+ "spec/sample", "", "cf123", [], exclude_paths, false, {},
85
+ "staging")
86
+ end
87
+ end
88
+
89
+ context "with write options" do
90
+ it "sets bucket write options to all files" do
91
+ headers = { cache_control: "no-cache" }
92
+ extra_options = { write: headers }
93
+
94
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
95
+ contains(options, headers)
96
+ end.times(3)
97
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
98
+ "spec/sample-write", "", "cf123", [], [], false, extra_options,
99
+ "staging")
100
+ end
101
+
102
+ it "sets object write options to a single file" do
103
+ headers = { cache_control: "no-cache", acl: :private }
104
+ extra_options = {
105
+ object_write: {
106
+ "index.html" => headers
107
+ }
108
+ }
109
+
110
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
111
+ options[:key] == "index.html" && contains(options, headers)
112
+ end.once
113
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
114
+ options[:key] != "index.html" && !contains(options, headers)
115
+ end.twice
116
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
117
+ "spec/sample-write", "", "cf123", [], [], false, extra_options,
118
+ "staging")
119
+ end
120
+
121
+ it "sets object write options to a directory" do
122
+ asset_headers = { cache_control: "max-age=3600" }
123
+ index_headers = { cache_control: "no-cache" }
124
+ extra_options = {
125
+ object_write: {
126
+ "assets/**" => asset_headers,
127
+ "index.html" => index_headers
128
+ }
129
+ }
130
+
131
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
132
+ options[:key] == "index.html" && !contains(options, asset_headers) &&
133
+ contains(options, index_headers)
134
+ end.once
135
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
136
+ options[:key] != "index.html" &&
137
+ !contains(options, index_headers) &&
138
+ contains(options, asset_headers)
139
+ end.twice
140
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
141
+ "spec/sample-write", "", "cf123", [], [], false, extra_options,
142
+ "staging")
143
+ end
144
+
145
+ it "sets object write permissions in the order of definition" do
146
+ asset_headers = { cache_control: "max-age=3600" }
147
+ js_headers = { cache_control: "no-cache" }
148
+ extra_options = {
149
+ object_write: { "assets/**" => asset_headers, "assets/script.js" => js_headers }
150
+ }
151
+
152
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
153
+ options[:key] == "assets/script.js" && !contains(options, asset_headers) &&
154
+ contains(options, js_headers)
155
+ end.once
156
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
157
+ options[:key] == "assets/style.css" && !contains(options, js_headers) &&
158
+ contains(options, asset_headers)
159
+ end.once
160
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
161
+ options[:key] == "index.html" && !contains(options, js_headers) &&
162
+ !contains(options, asset_headers)
163
+ end.once
164
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
165
+ "spec/sample-write", "", "cf123", [], [], false, extra_options,
166
+ "staging")
167
+ end
168
+
169
+ it "overwrites object write permissions with wrong ordering" do
170
+ js_headers = { cache_control: "no-cache" }
171
+ asset_headers = { cache_control: "max-age=3600" }
172
+ extra_options = {
173
+ object_write: {
174
+ "assets/script.js" => js_headers,
175
+ "assets/**" => asset_headers
176
+ }
177
+ }
178
+
179
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
180
+ options[:key] != "index.html" && !contains(options, js_headers) &&
181
+ contains(options, asset_headers)
182
+ end.twice
183
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
184
+ options[:key] == "index.html" && !contains(options, js_headers) &&
185
+ !contains(options, asset_headers)
186
+ end.once
187
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
188
+ "spec/sample-write", "", "cf123", [], [], false, extra_options,
189
+ "staging")
190
+ end
191
+ end
192
+
193
+ context "with MIME types" do
194
+ it "sets best match MIME type by default" do
195
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
196
+ options[:content_type] == "application/javascript"
197
+ end.once
198
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
199
+ "spec/sample-mime", "", "cf123", [], [], false, {}, "staging")
200
+ end
201
+
202
+ it "sets CloudFront preferred MIME type if needed" do
203
+ extra_options = { prefer_cf_mime_types: true }
204
+
205
+ Aws::S3::Client.any_instance.expects(:put_object).with do |options|
206
+ options[:content_type] == "application/javascript"
207
+ end.once
208
+ described_class.publish!("s3.amazonaws.com", "abc", "123", "mybucket.amazonaws.com",
209
+ "spec/sample-mime", "", "cf123", [], [], false, extra_options,
210
+ "staging")
211
+ end
212
+ end
213
+ end
214
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,7 @@
1
- require 'capistrano/s3/publisher'
2
- require 'mocha/api'
1
+ # frozen_string_literal: true
2
+
3
+ require "capistrano/s3/publisher"
4
+ require "mocha/api"
3
5
 
4
6
  Aws.config[:stub_responses] = true
5
7
 
@@ -9,4 +11,4 @@ end
9
11
 
10
12
  def contains(options, extra_options)
11
13
  options.merge(extra_options) == options
12
- end
14
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 3.0.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Philippe Doyle
@@ -10,32 +10,37 @@ authors:
10
10
  - Douglas Jarquin
11
11
  - Amit Barvaz
12
12
  - Jan Lindblom
13
- autorequire:
13
+ autorequire:
14
14
  bindir: bin
15
15
  cert_chain:
16
16
  - |
17
17
  -----BEGIN CERTIFICATE-----
18
- MIIDYjCCAkqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAtMSswKQYDVQQDDCJqZWFu
19
- cGhpbGlwcGUuZG95bGUvREM9Z21haWwvREM9Y29tMB4XDTE5MDEwMzIzNDA1OFoX
20
- DTI0MDEwMjIzNDA1OFowLTErMCkGA1UEAwwiamVhbnBoaWxpcHBlLmRveWxlL0RD
21
- PWdtYWlsL0RDPWNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6Z
22
- 1CIdnc0gZAIISOGc3Xn6G1nRh/DPco4smZeA3zvi0i1eaL3KlWD2K38x5uEyTuMN
23
- Eu4533cKuOZhjt6IBDG5kC8+Af21GV1R19Cvf/yka6LHkQlB9uARNKuOlAnmhTLO
24
- cBnJ4k+14bg3Kj0GqgiMQxNWgcXCpWYPIutsjNwTv8l+Q8Cz6ochLl1VYifj7x41
25
- BmuvYsNX6lLPT2Wn/VnSh8jx4YG4cMu8asexGrxvrZh0FMbSH+8YZTlPNIVLB0K5
26
- I+T8T1NkH7Oqtozsa30XFEgSWcVA845m4T/XqtFzfm+fwqs9zm6EiJ1hdCo9Pe9c
27
- CYGYjXc17CzMvs5h3YkCAwEAAaOBjDCBiTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
28
- sDAdBgNVHQ4EFgQUa6PNSYrB10QT+XWYeZszhB7Iy8UwJwYDVR0RBCAwHoEcamVh
29
- bnBoaWxpcHBlLmRveWxlQGdtYWlsLmNvbTAnBgNVHRIEIDAegRxqZWFucGhpbGlw
30
- cGUuZG95bGVAZ21haWwuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQAgO4ZWrs7jiVwB
31
- rjuziOlVkE0pQYIL04DYqFHh+OUXehbla3ez6yXrJDYzmGssG9gWw2x7zLJDzMGS
32
- Nuu5LJb6fLt7ngeNkT2VrX8BAi6SNOBkclDbaG2no8Of0/1Ckic0edeRhR2O2WiO
33
- Ss4Bjfz1DIeMWXQ6XohtG2lW2hdHdkqZEz9CjOHtW9+oUZkEvE/x0zxW/xV1dy0E
34
- wLg21KGfGL5oeHjZugRKz6VH9DchvEjlNdaagy3ew5+lxZqG5R26eCQv/SEI7UYw
35
- O/dqEjT9PZ4B9DM6P859LG9xBvj/+cOBs8ViEUU/ExY0rPSZoZT1Ks37cCjj2mrC
36
- ZBShvFcL
18
+ MIIETTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1hbGVr
19
+ c2FuZHJzL0RDPWxlZG92c2tpcy9EQz1sdjAeFw0yNTA3MDMyMDA3NTNaFw0zNTA3
20
+ MDEyMDA3NTNaMCgxJjAkBgNVBAMMHWFsZWtzYW5kcnMvREM9bGVkb3Zza2lzL0RD
21
+ PWx2MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEArXlVsZ09UgURfoX1
22
+ hX/9A/01rGvyKjfFdx3Ak+Z7lEeVM9FJ5TX8krgEcuwnJG4eIDoyv5jLB3amOSaV
23
+ ZBRkP7Eacwd7m5QVE6P4scjC8KzrpwYqj8d/SgV22ISHsdNGaBkSs4x1wL15BTHs
24
+ FzWHg8sVWqo5ogThrje+b7/9b+mLj6DZt3x5NZiuW3rPr+sYrnVwW4+TdIiGAX5W
25
+ bSVCll0zls9oWQuaN9vN5GybnvOjL1eKzhAlymxXnfA9qS9RezLZPL6O6/XXv0A+
26
+ iRh4rmL1Ip16hhvMWhxRohUmXrsroQzPUnlAQL/ZU3DrcYBARJZFQ5eSTBCJy5gS
27
+ NFOjqWng6zEFt26oF64YdYZIz/ZTKYqpiPPUx5fArtglRyu58hahqwjq/e0L4beG
28
+ zNkppUkvhIvfFOE7aUG/CXGiaRMjiMqriG6Tw1edIhFVgyZIQMJ5n7zZ68BApYkR
29
+ T0r64McVnpWBma4sHsU1eH7WLwPfrWAEOc1YHGEffjI05wXHAgMBAAGjgYEwfzAJ
30
+ BgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQULuQtQCcfTy1F69VRoxzL
31
+ AGDq9/8wIgYDVR0RBBswGYEXYWxla3NhbmRyc0BsZWRvdnNraXMubHYwIgYDVR0S
32
+ BBswGYEXYWxla3NhbmRyc0BsZWRvdnNraXMubHYwDQYJKoZIhvcNAQELBQADggGB
33
+ ACB+YqgrDHy6yN5EEGMO5S+Dfjydawx21f3ez5e4r+ZbW4AKByziFO6HcQnI6jc/
34
+ mWlX4Lzx8KZJd38lmayVjt9SANC+U5ZLcgg0CpoY8yjEilJFMRL5x2P0Tcz/YIp5
35
+ 1zV/FCGw9vy80jKwoYrLaQ7aIilxJsee1WpyChVzhRJPje5oIDGQxo+tfVZmQWBH
36
+ EDY5Mm7j4yDZYXsgO1w/fa0d39yJnrBoJVNuUHZblD759fdTIPDlJxumkh0h+2ut
37
+ kD4D+piMRFvPXiuILI+oDBFHzLTxAr9nixsO5Bxj0uOXuc/ngm8lMAXuJE9gMRP3
38
+ vYIQSMxeKnpiMPX1vZdbeXUVyq3G7gtpaE1k4XD+A6c9iXSSfGke4AVwjXM8eaQp
39
+ riL/tAnKoqvvpMAEZL7vHUCw0ZQ45ztmlp9HdKxlkgJrV4qfAa8QRFW5S4HCl49e
40
+ CsE82Lenc1R7eDd2E2TpIHGXeHy2ZQAfRLt8r56Qx4SlfpxtaW7j8Y4iQPysBmVI
41
+ pA==
37
42
  -----END CERTIFICATE-----
38
- date: 2019-01-07 00:00:00.000000000 Z
43
+ date: 2025-07-03 00:00:00.000000000 Z
39
44
  dependencies:
40
45
  - !ruby/object:Gem::Dependency
41
46
  name: aws-sdk
@@ -80,69 +85,13 @@ dependencies:
80
85
  - !ruby/object:Gem::Version
81
86
  version: '0'
82
87
  - !ruby/object:Gem::Dependency
83
- name: rake
88
+ name: webrick
84
89
  requirement: !ruby/object:Gem::Requirement
85
90
  requirements:
86
91
  - - ">="
87
92
  - !ruby/object:Gem::Version
88
93
  version: '0'
89
- type: :development
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- - !ruby/object:Gem::Dependency
97
- name: rspec
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: mocha
112
- requirement: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- - !ruby/object:Gem::Dependency
125
- name: awesome_print
126
- requirement: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
- type: :development
132
- prerelease: false
133
- version_requirements: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- - !ruby/object:Gem::Dependency
139
- name: gem-release
140
- requirement: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- type: :development
94
+ type: :runtime
146
95
  prerelease: false
147
96
  version_requirements: !ruby/object:Gem::Requirement
148
97
  requirements:
@@ -158,17 +107,18 @@ executables: []
158
107
  extensions: []
159
108
  extra_rdoc_files: []
160
109
  files:
110
+ - ".github/workflows/build.yml"
161
111
  - ".gitignore"
162
- - ".travis.yml"
112
+ - ".rubocop.yml"
163
113
  - CHANGELOG.md
164
114
  - CONTRIBUTING.md
165
115
  - Gemfile
116
+ - Guardfile
166
117
  - LICENSE
167
118
  - README.md
168
119
  - Rakefile
169
120
  - capistrano-s3.gemspec
170
- - certs/aleksandrs-ledovskis--2018-11-04-2020-11-03.pem
171
- - certs/j15e.pem
121
+ - certs/aleksandrs-ledovskis--2025-07-03-2035-07-01.pem
172
122
  - lib/capistrano/s3.rb
173
123
  - lib/capistrano/s3/defaults.rb
174
124
  - lib/capistrano/s3/mime_types.rb
@@ -176,7 +126,7 @@ files:
176
126
  - lib/capistrano/s3/version.rb
177
127
  - lib/capistrano/tasks/capistrano_2.rb
178
128
  - lib/capistrano/tasks/capistrano_3.rb
179
- - spec/publisher_spec.rb
129
+ - spec/capistrano/s3/publisher_spec.rb
180
130
  - spec/sample-2/.well-known/test.txt
181
131
  - spec/sample-2/public/.htaccess
182
132
  - spec/sample-mime/script.js
@@ -195,8 +145,9 @@ files:
195
145
  homepage: https://github.com/capistrano-s3/capistrano-s3
196
146
  licenses:
197
147
  - MIT
198
- metadata: {}
199
- post_install_message:
148
+ metadata:
149
+ rubygems_mfa_required: 'true'
150
+ post_install_message:
200
151
  rdoc_options: []
201
152
  require_paths:
202
153
  - lib
@@ -204,31 +155,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
155
  requirements:
205
156
  - - ">="
206
157
  - !ruby/object:Gem::Version
207
- version: '2.1'
158
+ version: 2.5.0
208
159
  required_rubygems_version: !ruby/object:Gem::Requirement
209
160
  requirements:
210
- - - ">="
161
+ - - ">"
211
162
  - !ruby/object:Gem::Version
212
- version: '0'
163
+ version: 1.3.1
213
164
  requirements: []
214
- rubygems_version: 3.0.2
215
- signing_key:
165
+ rubygems_version: 3.4.10
166
+ signing_key:
216
167
  specification_version: 4
217
168
  summary: Build and deploy a static website to Amazon S3
218
- test_files:
219
- - spec/publisher_spec.rb
220
- - spec/sample-2/.well-known/test.txt
221
- - spec/sample-2/public/.htaccess
222
- - spec/sample-mime/script.js
223
- - spec/sample-write/assets/script.js
224
- - spec/sample-write/assets/style.css
225
- - spec/sample-write/index.html
226
- - spec/sample/fonts/cantarell-regular-webfont.eot
227
- - spec/sample/fonts/cantarell-regular-webfont.eot.gz
228
- - spec/sample/fonts/cantarell-regular-webfont.svg
229
- - spec/sample/fonts/cantarell-regular-webfont.svg.gz
230
- - spec/sample/fonts/cantarell-regular-webfont.ttf
231
- - spec/sample/fonts/cantarell-regular-webfont.ttf.gz
232
- - spec/sample/fonts/cantarell-regular-webfont.woff
233
- - spec/sample/fonts/cantarell-regular-webfont.woff.gz
234
- - spec/spec_helper.rb
169
+ test_files: []
metadata.gz.sig CHANGED
Binary file
data/.travis.yml DELETED
@@ -1,21 +0,0 @@
1
- notifications:
2
- email:
3
- on_success: never
4
- on_failure: change
5
- language: ruby
6
- dist: trusty
7
- bundler_args: --without debug release
8
- before_install:
9
- - ruby -v | (grep -v "rubinius" && gem install bundler) || echo 0
10
- rvm:
11
- - 2.2.7
12
- - 2.3.4
13
- - 2.4.1
14
- - rbx-3.75
15
- - jruby-9.1.5.0
16
- - jruby-head
17
- - ruby-head
18
- matrix:
19
- allow_failures:
20
- - rvm: jruby-head
21
- - rvm: ruby-head
@@ -1,26 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIETTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1hbGVr
3
- c2FuZHJzL0RDPWxlZG92c2tpcy9EQz1sdjAeFw0xODExMDQxNTE2NDdaFw0yMDEx
4
- MDMxNTE2NDdaMCgxJjAkBgNVBAMMHWFsZWtzYW5kcnMvREM9bGVkb3Zza2lzL0RD
5
- PWx2MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAz38UsGlDYY67LDfs
6
- FP+iftIP/L04Hl4KrF2RvSHvhGn1qk5vIkeDeFBLJMEuzWaNReeszZndMGFWZ//0
7
- mbGeMSYdFBbEL7ImSRGcEx6cHHYNcDP7rP0pKHtAmkX1xpjZ6NBfwAaDODS+/fDE
8
- j8T5mzz1g9uWPnORFB6KZ717V6f4dCPSgeZYoPDZ3dKoBzMWtXOxRnj6ROrXrc8d
9
- 56/KQnoUhKRi+n8gPT6+L+xqRQts8nLDBusQ/a2R7bd9J7ymGAJJ8UzKYWrQ5c+A
10
- Re/se6XLi3xJsBnIxrCwx/8+qV3PvpRHruNRnxeXpe67Lc7CsdOlIhaUc6Bmx3y7
11
- Y0G9XSuOSjfXOOwtvEHkGKbDxG+RyPPG52WpXAxJQZS7GR4dpYPEQZzVicvLiHaP
12
- XuIT2i4UJrB/eMzdMk5KzeZP73cS6rpUBXANRVdjtQRL/bnEAli/szFY3OdirMfK
13
- 60u2mTsrxMzTI9cPjx9zCegnt5v82DWAYe5GaLHkFVrnhIqzAgMBAAGjgYEwfzAJ
14
- BgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUlBfRu+jvOXJUNVAgU1Qa
15
- YpSXueswIgYDVR0RBBswGYEXYWxla3NhbmRyc0BsZWRvdnNraXMubHYwIgYDVR0S
16
- BBswGYEXYWxla3NhbmRyc0BsZWRvdnNraXMubHYwDQYJKoZIhvcNAQELBQADggGB
17
- AGQV1MIzqELmXRiDzSo4LxylZmhlK4fP3v6TsexIBiWstqTO+jWknGA9z1Q47LWZ
18
- o6Zga143Ow/55HD7ihp6WL0czLMFWvVuaYs7VrHN7lKLgwaGshujI3zubwq4bND6
19
- 7m96uyF56IHPeUFHfUyRzxtJXILMT8k7b/uPptuWHFPofQ/prdcwvGLfmBjfl7Ws
20
- MppFUlKjMbCHiOUEct3fLgfZWDuKal2yLv2c28itEJmmlerbPHKVy4w70/Ez+5fH
21
- xZEuzpB16YCvQreL1v3+67m12C5FPA33mw18ZkUHjKuCKlsWG6zYyTc/6YkNR4FI
22
- jh7+6DnwQjHoyQfzwrFSN5vtdyY2tbJXHD8Kkxjj8VgUjhgTEJR7WTjSkUExEY5B
23
- RHL9HAJPC8rqojm6npCdZ950en9r8oUyPmdZlZY86US0T6CmC5sPJyYHEsERoiUx
24
- k20KJFF3jMIlNf6AWXy8t/1ot/hUUJKZIqzNow4oamKSpqiEA6NDH2lY2iY41mL6
25
- Mg==
26
- -----END CERTIFICATE-----
data/certs/j15e.pem DELETED
@@ -1,21 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDYjCCAkqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAtMSswKQYDVQQDDCJqZWFu
3
- cGhpbGlwcGUuZG95bGUvREM9Z21haWwvREM9Y29tMB4XDTE5MDEwMzIzNDA1OFoX
4
- DTI0MDEwMjIzNDA1OFowLTErMCkGA1UEAwwiamVhbnBoaWxpcHBlLmRveWxlL0RD
5
- PWdtYWlsL0RDPWNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6Z
6
- 1CIdnc0gZAIISOGc3Xn6G1nRh/DPco4smZeA3zvi0i1eaL3KlWD2K38x5uEyTuMN
7
- Eu4533cKuOZhjt6IBDG5kC8+Af21GV1R19Cvf/yka6LHkQlB9uARNKuOlAnmhTLO
8
- cBnJ4k+14bg3Kj0GqgiMQxNWgcXCpWYPIutsjNwTv8l+Q8Cz6ochLl1VYifj7x41
9
- BmuvYsNX6lLPT2Wn/VnSh8jx4YG4cMu8asexGrxvrZh0FMbSH+8YZTlPNIVLB0K5
10
- I+T8T1NkH7Oqtozsa30XFEgSWcVA845m4T/XqtFzfm+fwqs9zm6EiJ1hdCo9Pe9c
11
- CYGYjXc17CzMvs5h3YkCAwEAAaOBjDCBiTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
12
- sDAdBgNVHQ4EFgQUa6PNSYrB10QT+XWYeZszhB7Iy8UwJwYDVR0RBCAwHoEcamVh
13
- bnBoaWxpcHBlLmRveWxlQGdtYWlsLmNvbTAnBgNVHRIEIDAegRxqZWFucGhpbGlw
14
- cGUuZG95bGVAZ21haWwuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQAgO4ZWrs7jiVwB
15
- rjuziOlVkE0pQYIL04DYqFHh+OUXehbla3ez6yXrJDYzmGssG9gWw2x7zLJDzMGS
16
- Nuu5LJb6fLt7ngeNkT2VrX8BAi6SNOBkclDbaG2no8Of0/1Ckic0edeRhR2O2WiO
17
- Ss4Bjfz1DIeMWXQ6XohtG2lW2hdHdkqZEz9CjOHtW9+oUZkEvE/x0zxW/xV1dy0E
18
- wLg21KGfGL5oeHjZugRKz6VH9DchvEjlNdaagy3ew5+lxZqG5R26eCQv/SEI7UYw
19
- O/dqEjT9PZ4B9DM6P859LG9xBvj/+cOBs8ViEUU/ExY0rPSZoZT1Ks37cCjj2mrC
20
- ZBShvFcL
21
- -----END CERTIFICATE-----