kubeclient 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of kubeclient might be problematic. Click here for more details.

Files changed (39) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +11 -1
  3. data/README.md +18 -0
  4. data/RELEASING.md +40 -40
  5. data/lib/kubeclient/common.rb +57 -22
  6. data/lib/kubeclient/entity_list.rb +7 -2
  7. data/lib/kubeclient/version.rb +1 -1
  8. data/test/config/allinone.kubeconfig +3 -3
  9. data/test/config/external-ca.pem +14 -14
  10. data/test/config/external-cert.pem +17 -17
  11. data/test/config/external-key.rsa +25 -25
  12. data/test/json/config.istio.io_api_resource_list.json +679 -0
  13. data/test/json/created_security_context_constraint.json +65 -0
  14. data/test/json/pods_1.json +265 -0
  15. data/test/json/pods_2.json +102 -0
  16. data/test/json/pods_410.json +9 -0
  17. data/test/json/security.openshift.io_api_resource_list.json +69 -0
  18. data/test/json/security_context_constraint_list.json +375 -0
  19. data/test/test_common.rb +21 -2
  20. data/test/test_component_status.rb +1 -2
  21. data/test/test_config.rb +4 -4
  22. data/test/test_endpoint.rb +27 -8
  23. data/test/test_helper.rb +5 -0
  24. data/test/test_kubeclient.rb +4 -9
  25. data/test/test_limit_range.rb +1 -3
  26. data/test/test_missing_methods.rb +30 -4
  27. data/test/test_namespace.rb +3 -6
  28. data/test/test_node.rb +2 -4
  29. data/test/test_persistent_volume.rb +1 -2
  30. data/test/test_persistent_volume_claim.rb +1 -3
  31. data/test/test_pod.rb +54 -2
  32. data/test/test_replication_controller.rb +2 -7
  33. data/test/test_resource_quota.rb +1 -3
  34. data/test/test_secret.rb +3 -12
  35. data/test/test_security_context_constraint.rb +62 -0
  36. data/test/test_service.rb +10 -31
  37. data/test/test_service_account.rb +1 -3
  38. data/test/test_watch.rb +7 -16
  39. metadata +19 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2c23c8b10cd66debded65c26047c58bb1bfabe98
4
- data.tar.gz: 109df25bd52f01568ec2777025cdda0a236c4027
2
+ SHA256:
3
+ metadata.gz: 648349cb119637758bb60353e75a42c7763f9a8926f57f692659de19c457ef2c
4
+ data.tar.gz: ee020c04dcd67303cc7b2077d2ffbe570cd638f88b852dd5582b7daa9acb169b
5
5
  SHA512:
6
- metadata.gz: e3ccdb84c4ffc1c8e5dc236b5edb824150e121d82099db5041ae29c198254312c8fca844537c31efee079fe2b27a7463c30387fe3b020edbecdaf62b3487ce38
7
- data.tar.gz: 220030de1ca7be78050b718dd3bbd561ebe9eb2f4e9c55f78fad54ef46f508fd0370becbb65ec57e1ceb512ffb60027257c175985060a67dbd05d6d17bb2ba6c
6
+ metadata.gz: 53a76a8f582b0d359f164c0f0bf1dc0cdfe863da4f49bf7abe171bcb49b06b60b389a1fed372be1748f512e6e4c6bd58731e52b2ff9b3a4ddac665a2573cb870
7
+ data.tar.gz: d6337a1735a87f5410cacfedf0c69cd9e9c70d4eacc370bb7bf70eca2d61afc30801f3faa968f19c1204bd7484ec8cd43eddd02a986f9d73e70ac7016eb762f4
@@ -4,6 +4,16 @@ Notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
5
5
  Kubeclient release versioning follows [SemVer](https://semver.org/).
6
6
 
7
+ ## 4.1.0 — 2018-11-28
8
+
9
+ ### Fixed
10
+ - Support custom resources with lowercase `kind` (#361).
11
+ - `create_security_context_constraint` now works (#366).
12
+ - `get_security_context_constraints.kind`, `get_endpoints.kind` are now plural as in kubernetes (#366).
13
+
14
+ ### Added
15
+ - Add support for retrieving large lists of objects in chunks (#356).
16
+
7
17
  ## 4.0.0 — 2018-07-23
8
18
 
9
19
  ### Removed
@@ -81,6 +91,6 @@ No changes since 2.5.0, fixed packaging mistake.
81
91
 
82
92
  ### Added
83
93
 
84
- - `as: raw` option for `get_*` methods returning a string (#262 via #271)
94
+ - `as: raw` option for `get_*` methods returning a string (#262 via #271).
85
95
 
86
96
  ## 2.4.0 - 2017-05-10
data/README.md CHANGED
@@ -345,6 +345,24 @@ You can specify multiple labels (that option will return entities which have bot
345
345
  pods = client.get_pods(label_selector: 'name=redis-master,app=redis')
346
346
  ```
347
347
 
348
+ Get all entities of a specific type in chunks:
349
+
350
+ ```ruby
351
+ continue = nil
352
+ loop do
353
+ entities = client.get_pods(limit: 1_000, continue: continue)
354
+ continue = entities.continue
355
+
356
+ break if entities.last?
357
+ end
358
+ ```
359
+
360
+ See https://kubernetes.io/docs/reference/using-api/api-concepts/#retrieving-large-results-sets-in-chunks for more information.
361
+
362
+ The continue tokens expire after a short amount of time, so similar to a watch if you don't request a subsequent page within aprox. 5 minutes of the previous page being returned the server will return a `410 Gone` error and the client must request the list from the start (i.e. omit the continue token for the next call).
363
+
364
+ Support for chunking was added in v1.9 so previous versions will ignore the option and return the full collection.
365
+
348
366
  #### Get a specific instance of an entity (by name)
349
367
  Such as: `get_service "service name"` , `get_pod "pod name"` , `get_replication_controller "rc name"`, `get_secret "secret name"`, `get_resource_quota "resource quota name"`, `get_limit_range "limit range name"` , `get_persistent_volume "persistent volume name"` , `get_persistent_volume_claim "persistent volume claim name"`, `get_component_status "component name"`, `get_service_account "service account name"`
350
368
 
@@ -3,62 +3,62 @@
3
3
  ## Versioning
4
4
  Kubeclient release versioning follows [SemVer](https://semver.org/).
5
5
  At some point in time it is decided to release version x.y.z.
6
- Prerequisite: A [changelog](CHANGELOG.md) is generated & merged into the release branch.
7
6
 
8
7
  ```bash
9
- RUBYGEMS_USERNAME=bob
10
8
  RELEASE_BRANCH="master"
11
- RELEASE_VERSION="x.y.z"
12
- GIT_REMOTE="origin"
13
- GIT_UPSTREAM="upstream"
9
+ ```
14
10
 
15
- #
16
- # Install the release gem
17
- #At this point Open & merge a PR in github.
11
+ ## 0. (once) Install gem-release, needed for several commands here:
12
+
13
+ ```bash
18
14
  gem install gem-release
15
+ ```
19
16
 
20
- #
21
- # Checking out the release branch
22
- #
23
- git fetch $GIT_UPSTREAM
24
- git checkout $GIT_UPSTREAM/$RELEASE_BRANCH -b $RELEASE_BRANCH
25
- git status # Make sure there are no local changes
17
+ ## 1. PR(s) for changelog & bump
26
18
 
27
- #
28
- # Preparing to release
29
- #
30
- bundle install
31
- bundle exec rake test rubocop
19
+ Edit `CHANGELOG.md` as necessary. Even if all included changes remembered to update it, you should replace "Unreleased" section header with appropriate "x.y.z — 20yy-mm-dd" header.
32
20
 
33
- #
34
- # Grabbing an authentication token for rubygems.org api
35
- #
21
+ Bump `lib/kubeclient/version.rb` manually, or by using:
22
+ ```bash
23
+ git checkout -b release-$RELEASE_VERSION
24
+ gem bump --version $RELEASE_VERSION
25
+ git show # View version bump change.
26
+ ```
27
+
28
+ Open a PR with target branch $RELEASE_BRANCH and get it reviewed & merged (if open for long, remember to update date in CHANGELOG to actual day of release).
29
+
30
+ ## 2. (once) Grabbing an authentication token for rubygems.org api
31
+ ```bash
32
+ RUBYGEMS_USERNAME=bob
36
33
  curl -u $RUBYGEMS_USERNAME https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
37
34
 
38
35
  cat ~/.gem/credentials
39
- ---
36
+ # Should look like this:
40
37
  :rubygems_api_key: ****
38
+ ```
41
39
 
42
- #
43
- # Bumping the gem's version can be done manually, or by using
44
- #
45
- gem bump --version $RELEASE_VERSION
46
- git show # View version bump change.
47
-
48
- git push $GIT_REMOTE $RELEASE_BRANCH
40
+ ## 3. Actual release
49
41
 
50
- #
51
- # At this point Open & merge a PR in github.
52
- #
42
+ Make sure we're locally after the bump PR *merge commit*:
43
+ ```bash
44
+ git checkout $RELEASE_BRANCH
45
+ git status # Make sure there are no local changes
46
+ git pull --ff-only https://github.com/abonas/kubeclient $RELEASE_BRANCH
47
+ git log -n1
48
+ ```
53
49
 
54
- git pull --ff-only $GIT_UPSTREAM
50
+ Last sanity check:
51
+ ```bash
52
+ bundle install
53
+ bundle exec rake test rubocop
54
+ ```
55
55
 
56
- #
57
- # In github, generate a new release and make sure you have the tag locally.
58
- #
56
+ Create and push the tag:
57
+ ```bash
58
+ gem tag --destination https://github.com/abonas/kubeclient
59
+ ```
59
60
 
60
- #
61
- # Release the gem
62
- #
61
+ Release onto rubygems.org:
62
+ ```bash
63
63
  gem release
64
64
  ```
@@ -37,10 +37,16 @@ module Kubeclient
37
37
 
38
38
  SEARCH_ARGUMENTS = {
39
39
  'labelSelector' => :label_selector,
40
- 'fieldSelector' => :field_selector
40
+ 'fieldSelector' => :field_selector,
41
+ 'limit' => :limit,
42
+ 'continue' => :continue
41
43
  }.freeze
42
44
 
43
- WATCH_ARGUMENTS = { 'resourceVersion' => :resource_version }.merge!(SEARCH_ARGUMENTS).freeze
45
+ WATCH_ARGUMENTS = {
46
+ 'labelSelector' => :label_selector,
47
+ 'fieldSelector' => :field_selector,
48
+ 'resourceVersion' => :resource_version
49
+ }.freeze
44
50
 
45
51
  attr_reader :api_endpoint
46
52
  attr_reader :ssl_options
@@ -126,21 +132,38 @@ module Kubeclient
126
132
  end
127
133
 
128
134
  def self.parse_definition(kind, name)
129
- # "name": "componentstatuses", networkpolicies, endpoints
130
- # "kind": "ComponentStatus" NetworkPolicy, Endpoints
131
- # maintain pre group api compatibility for endpoints and securitycontextconstraints.
132
- # See: https://github.com/kubernetes/kubernetes/issues/8115
133
- kind = kind[0..-2] if %w[Endpoints SecurityContextConstraints].include?(kind)
134
-
135
- prefix = kind[0..kind.rindex(/[A-Z]/)] # NetworkP
136
- m = name.match(/^#{prefix.downcase}(.*)$/)
137
- m && OpenStruct.new(
138
- entity_type: kind, # ComponentStatus
139
- resource_name: name, # componentstatuses
140
- method_names: [
141
- ClientMixin.underscore_entity(kind), # component_status
142
- ClientMixin.underscore_entity(prefix) + m[1] # component_statuses
143
- ]
135
+ # Kubernetes gives us have 3 inputs:
136
+ # kind: "ComponentStatus"
137
+ # name: "componentstatuses"
138
+ # singularName: "componentstatus" (usually kind.downcase)
139
+ # and want to derive singular and plural method names, with underscores:
140
+ # "component_status"
141
+ # "component_statuses"
142
+ # kind's CamelCase word boundaries determine our placement of underscores.
143
+
144
+ if IRREGULAR_NAMES[kind]
145
+ # In a few cases, the given kind / singularName itself is still plural.
146
+ # We require a distinct singular method name, so force it.
147
+ method_names = IRREGULAR_NAMES[kind]
148
+ else
149
+ # TODO: respect singularName from discovery?
150
+ # But how? If it differs from kind.downcase, kind's word boundaries don't apply.
151
+ singular_name = kind.downcase
152
+
153
+ if name.start_with?(kind.downcase)
154
+ plural_suffix = name[kind.downcase.length..-1] # "es"
155
+ singular_underscores = ClientMixin.underscore_entity(kind) # "component_status"
156
+ method_names = [singular_underscores, singular_underscores + plural_suffix]
157
+ else
158
+ # Something weird, can't infer underscores for plural so just give them up
159
+ method_names = [singular_name, name]
160
+ end
161
+ end
162
+
163
+ OpenStruct.new(
164
+ entity_type: kind,
165
+ resource_name: name,
166
+ method_names: method_names
144
167
  )
145
168
  end
146
169
 
@@ -256,6 +279,8 @@ module Kubeclient
256
279
  # :namespace (string) - the namespace of the entity.
257
280
  # :label_selector (string) - a selector to restrict the list of returned objects by labels.
258
281
  # :field_selector (string) - a selector to restrict the list of returned objects by fields.
282
+ # :limit (integer) - a maximum number of items to return in each response
283
+ # :continue (string) - a token used to retrieve the next chunk of entities
259
284
  # :as (:raw|:ros) - defaults to :ros
260
285
  # :raw - return the raw response body as a string
261
286
  # :ros - return a collection of RecursiveOpenStruct objects
@@ -313,9 +338,7 @@ module Kubeclient
313
338
  # TODO: temporary solution to add "kind" and apiVersion to request
314
339
  # until this issue is solved
315
340
  # https://github.com/GoogleCloudPlatform/kubernetes/issues/6439
316
- # TODO: #2 solution for
317
- # https://github.com/kubernetes/kubernetes/issues/8115
318
- hash[:kind] = (entity_type.eql?('Endpoint') ? 'Endpoints' : entity_type)
341
+ hash[:kind] = entity_type
319
342
  hash[:apiVersion] = @api_group + @api_version
320
343
  response = handle_exception do
321
344
  rest_client[ns_prefix + resource_name]
@@ -427,7 +450,15 @@ module Kubeclient
427
450
 
428
451
  private
429
452
 
430
- # Format ditetime according to RFC3339
453
+ IRREGULAR_NAMES = {
454
+ # In a few cases, the given kind itself is still plural.
455
+ # https://github.com/kubernetes/kubernetes/issues/8115
456
+ 'Endpoints' => %w[endpoint endpoints],
457
+ 'SecurityContextConstraints' => %w[security_context_constraint
458
+ security_context_constraints]
459
+ }.freeze
460
+
461
+ # Format datetime according to RFC3339
431
462
  def format_datetime(value)
432
463
  case value
433
464
  when DateTime, Time
@@ -456,10 +487,14 @@ module Kubeclient
456
487
  result.fetch('metadata', {}).fetch('resourceVersion', nil)
457
488
  end
458
489
 
490
+ # If 'limit' was passed save the continue token
491
+ # see https://kubernetes.io/docs/reference/using-api/api-concepts/#retrieving-large-results-sets-in-chunks
492
+ continue = result.fetch('metadata', {}).fetch('continue', nil)
493
+
459
494
  # result['items'] might be nil due to https://github.com/kubernetes/kubernetes/issues/13096
460
495
  collection = result['items'].to_a.map { |item| Kubeclient::Resource.new(item) }
461
496
 
462
- Kubeclient::Common::EntityList.new(list_type, resource_version, collection)
497
+ Kubeclient::Common::EntityList.new(list_type, resource_version, collection, continue)
463
498
  else
464
499
  Kubeclient::Resource.new(result)
465
500
  end
@@ -3,14 +3,19 @@ module Kubeclient
3
3
  module Common
4
4
  # Kubernetes Entity List
5
5
  class EntityList < DelegateClass(Array)
6
- attr_reader :kind, :resourceVersion
6
+ attr_reader :continue, :kind, :resourceVersion
7
7
 
8
- def initialize(kind, resource_version, list)
8
+ def initialize(kind, resource_version, list, continue = nil)
9
9
  @kind = kind
10
10
  # rubocop:disable Style/VariableName
11
11
  @resourceVersion = resource_version
12
+ @continue = continue
12
13
  super(list)
13
14
  end
15
+
16
+ def last?
17
+ continue.nil?
18
+ end
14
19
  end
15
20
  end
16
21
  end
@@ -1,4 +1,4 @@
1
1
  # Kubernetes REST-API Client
2
2
  module Kubeclient
3
- VERSION = '4.0.0'.freeze
3
+ VERSION = '4.1.0'.freeze
4
4
  end
@@ -1,7 +1,7 @@
1
1
  apiVersion: v1
2
2
  clusters:
3
3
  - cluster:
4
- certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM2akNDQWRLZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFtTVNRd0lnWURWUVFEREJ0dmNHVnUKYzJocFpuUXRjMmxuYm1WeVFERTBOemd3TURFNE1ERXdIaGNOTVRZeE1UQXhNVEl3TXpJd1doY05NakV4TURNeApNVEl3TXpJeFdqQW1NU1F3SWdZRFZRUUREQnR2Y0dWdWMyaHBablF0YzJsbmJtVnlRREUwTnpnd01ERTRNREV3CmdnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUNzNHdCTEFQQnNaU2Q0Q3JBWFV3eFUKczJ1cGdwb1IrWS8vN2hWLzVaUzRBYjdCQnFGYk90ZDVnN3lnY2hSQXBkNTdMcjZhL0JDRTVZOHFGeE56WUVncwpOT05LcVlaWUNSVk9tNnRGUUkrUGxVNEdWM2dTa2sxOUZDTDQySFI2SjRDZTlPaHgxcjlBWDRpRFJPb01EbVhtCnI5MnZ1NDBSNUdJdnhRV3crMkMvcmh3aTB4MjdYODg2VzI2djM4RUtOUWZYRlhLS1BWRnBLOTFySWZISmM3b1AKNTZWVWRXSURKSjlIMW0zeHpENis1Sk96WWVxMFpYVzRzclZVNW41MGZOanU4SEZRNjVKNEZuWG9ZeXcxWjV3MwpqRGVtYW9LbjdITFpxbnJjR0thejY5WDdPTitrWlUxUy9nblRuWFFkSFVvb0VMblpnTTlJWjhMWndabGFQWHJKCkFnTUJBQUdqSXpBaE1BNEdBMVVkRHdFQi93UUVBd0lDcERBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUcKU0liM0RRRUJDd1VBQTRJQkFRQlB1N2hkTmNoaWdxN2Y2eWFKcE1FZWRRS1hPOGdDMWJGb0JmTUVZcWZ4WHpjQgpITmpUZjkvdWpqYTlKK2hsRWdlNUJpTElnVDV5a3huOHdOelorNER6N1hkaEFzOEViRmpORUtocXFZd1dBWEo1CnFHa1BJbmdyYy80N3R2YkFFaEJoKzNOV0Z3ZEZkbzZkVFBIRTdXVTQ4MUhtLzQ5Lzg3Q3Z5dnVRSmZGVUJ1bEIKdjcxSFVzMHd2SFZURVBLK3pHdFBYVzdJV2NNdmdiczNOYTFwMkRKTmJGRTFSamEvWUxpZjZJSnZFQ0xkZ1d5YgpRSHZpZFc3Z2l0VktncmJsdEhNOXRhTkYxVVB5b0xlTDF2TWdMaDRoVDc5eFhLL2VOOTVMelB3QTBOUnlKdGxLCmRXb0xJZTVSZkZ4NlRLQlhUcGRDQUNXbWQ5V1JSWksyc0Z2RjROTWMKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
4
+ certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM2akNDQWRLZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFtTVNRd0lnWURWUVFEREJ0dmNHVnUKYzJocFpuUXRjMmxuYm1WeVFERTFOREUzTVRZMU9USXdIaGNOTVRneE1UQTRNakl6TmpNeFdoY05Nak14TVRBMwpNakl6TmpNeVdqQW1NU1F3SWdZRFZRUUREQnR2Y0dWdWMyaHBablF0YzJsbmJtVnlRREUxTkRFM01UWTFPVEl3CmdnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUREaS9CdG9YRFowL0l0b3lGVTRaTXAKMG5xUXZ6MWFEblcvVHpDRHhpZVJFL09sQk5EcVJCUlFHWEtoNWE4MkN0bno1SjM4VzJZY3Y2RXY1QlJKcFJNTgpiYWNmQVBqczZmK1ZKSE92MFVUc3lRc2FWd2N5OHVIQ2ZKck5IR3h5UVZZYnZPdnFTditOZ2ZUUTIwZ3ZhTXgwCkZuTUxnMmtFaFhRUnhOdEsrRlgrM2l2V1FmLzFvREJkU1BTeEZYell0emsxWlhSWmM3b1NobUZTZHlxWkpvZHYKb3lqcFBIZjR1ZmtuQ3V1TFhOWlRBKzFyT2dyRWJRT1RhdncraGVZZjZXS05uMU9PbHBIQ0lEZ3cycXRYRm0vawpSZDJHVHlpV0pCQjBNbTBRclRvdkVQbkMvWGhZekJ3TmZrZ2Y1a2oray94cXZUUUhTeUgxc0NZT2JJY0hUbWt4CkFnTUJBQUdqSXpBaE1BNEdBMVVkRHdFQi93UUVBd0lDcERBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUcKU0liM0RRRUJDd1VBQTRJQkFRQ2hmTE9SZDZTN3habVZBSUpvUnZwRHdXWVJ0bngvSnJZeTNYMXhWWEh4dDQ4NgpBVlBLYWxXYm9qektpRmQ3YXF2NTJCdkNINVVJYlQzM3VueXFNODdmWE1CZzFQMWFUTno3YXpHVDJuY2JEU1VVClNjSjJ1aWNLSGZpMjMzd2o0cUtzb2RXR29NNG8xS0doSnFhVUN4WGtDZkZXVmVZRjJyK3BUeVFUVFhxWGhGbVkKeWpTT2o3UnorUEhIK3E0dVcxK05kWCtFRmxNN3RWUUcrUys3dk1jTkQ4MkdLVzZZWlZFTW15NXV3eDlNUUZnQwpoTzNJbkEvN1NqT0tIeDBlcmR0RXpGNWFjYUxqZER5S2JCemFUT2xrS041NVhyRzlMNmRhdDBSbEtmOFB3V1FUCmFKRW0xSldBRE9mZUljZGdrNWVXRnpQUy85TUZrMVNiQnhPQVJLVVEKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
5
5
  server: https://localhost:8443
6
6
  name: localhost:8443
7
7
  contexts:
@@ -16,5 +16,5 @@ preferences: {}
16
16
  users:
17
17
  - name: system:admin/localhost:8443
18
18
  user:
19
- client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREVENDQWZXZ0F3SUJBZ0lCQ0RBTkJna3Foa2lHOXcwQkFRc0ZBREFtTVNRd0lnWURWUVFEREJ0dmNHVnUKYzJocFpuUXRjMmxuYm1WeVFERTBOemd3TURFNE1ERXdIaGNOTVRZeE1UQXhNVEl3TXpJeFdoY05NVGd4TVRBeApNVEl3TXpJeVdqQTNNUjR3SEFZRFZRUUtFeFZ6ZVhOMFpXMDZZMngxYzNSbGNpMWhaRzFwYm5NeEZUQVRCZ05WCkJBTVRESE41YzNSbGJUcGhaRzFwYmpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUIKQU5ta2FudldoODR1dWNHOTJPdkE4KzJ1NUYxNnA1ay9wNG0rRzhRcCtKMDhZaElzU1NLb3EzWlp0RlhkRCtmeQozNFBpTW91c05PbEE4QTVtQ2FJMy9xTWhaNXhGd1E4L0ZHZTYxMG5sMENyYVN5VXFRdDFneEZsVjIwVHJPNG9GCks2STlXTFdNUHIySm5FcHNQRWtoWU9rSDIrNjF5bVVLeDdQMEdMUnVaMDNHVVhUQnBFOXJ2S3lsb01QRHkyK3UKenNmWG45bi9iWE1nV21Cbk0zZ1BTeElEQUxKUSs3WEhnYkFUMllxR002SWJHQ0tMQk5lWVprYk1FbitXd3NudgpScVpMQ3BOaDkxUjJIM0ZZLzhPV1p3L0pHQmVMbElRbndxdGpJeWczRWpzUGdHUlhGZFBqNWR1Tno2aTlEN1FoCks4S2JDaXNKNDRKWUM5UWUxS205T3I4Q0F3RUFBYU0xTURNd0RnWURWUjBQQVFIL0JBUURBZ1dnTUJNR0ExVWQKSlFRTU1Bb0dDQ3NHQVFVRkJ3TUNNQXdHQTFVZEV3RUIvd1FDTUFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgpBRnpuSWNOT2dmQkZvMUdtcnR2U01EL2lSMUZiNnkrMXZhVTBKQVBxRzFEQ0xtMHBBbnF1TWJLUVFkTDBRSkI5Ck40aHZVWjlRcHFsYVltVlk4KzFLbXdacFRvRjlpUTVqQUVidmFUWlhYTDQ3akxwS2tJcWlZUjlZcWNCQ2pQbDMKOXBFWExwc0tOeldKWVRyNkhVZzVGZ0drQkVScFdIVkh4ZDkzR2tKTUZlU0hBQ2lFNFBqTHY1YUNUQzF5TlRhYwp1RmhQeEwzcjFqQmliQSt0azN0djhSVFQ0MW9sV2pwZ2grTUJXWVBxNEhwcThtbFdBUVVWUFJudjN3TlBDazV1CjkwY1l5bytEZjBUWDFUQkxVYWtIKzFYZzJZWFZWWTFpb2dFVzVlZXh5VHNRMXllQzBJUisyNTBzMzg2bm9DS28KTDJudS9SWDBmd1doZDIzc3I4ZmY2Skk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
20
- client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBMmFScWU5YUh6aTY1d2IzWTY4RHo3YTdrWFhxbm1UK25pYjRieENuNG5UeGlFaXhKCklxaXJkbG0wVmQwUDUvTGZnK0l5aTZ3MDZVRHdEbVlKb2pmK295Rm5uRVhCRHo4VVo3clhTZVhRS3RwTEpTcEMKM1dERVdWWGJST3M3aWdVcm9qMVl0WXcrdlltY1NtdzhTU0ZnNlFmYjdyWEtaUXJIcy9RWXRHNW5UY1pSZE1HawpUMnU4cktXZ3c4UExiNjdPeDllZjJmOXRjeUJhWUdjemVBOUxFZ01Bc2xEN3RjZUJzQlBaaW9Zem9oc1lJb3NFCjE1aG1Sc3dTZjViQ3llOUdwa3NLazJIM1ZIWWZjVmovdzVabkQ4a1lGNHVVaENmQ3EyTWpLRGNTT3crQVpGY1YKMCtQbDI0M1BxTDBQdENFcndwc0tLd25qZ2xnTDFCN1VxYjA2dndJREFRQUJBb0lCQURhVVA4dnNnY1FYL2FkegpaNW0vbXF4cFpvVjJ3OTd2a3FFOVZwTTcvMGZYSTdUdy9Dby82RGZXeVIyYlFXam1oRno3ZGJlSEtRR3hza0c2Ckh3SmFUblkwWTFwU045Y045NTBId3dPYUtUa0Y0MEJmdDhMeWlHcnEyQUVSaUszVkhCc2tqVUdCK1IzcEM1T3kKVHUvNytlU1dmdlgvQ3RHS0FZakVWd213Z2lHRGV2aFhaYk45QWZkTFc3dUcvRFFtaW43QzFPVW9kQVExZmNxYwpTUXBLZXJlMTZRT1U5cWgxWExJL0NOZ2YyL0thTW5qM29kN0VXby9EVmpoZlN2dlpoeGJxVGgxdmRqMU9nSFBkCmVxTWIzdEp6T2dCcUFySlFzTCs0cThRUVI4Mk0zbUIvd0orczJIczlOTmtXaGg0bjBwN2VjWXc1UE05QTVEZWsKclNTUzlkRUNnWUVBNjlqMlBVcDFqNXo5RFpMM3ZmQW9PZ1A0emNicWVVYTUra0lSQXpTQ3JQRGU5RDBub0wrVwpwWllydHR1U0Q2VHd4QUl4S2hVWnVPanVNNnY2Qlp5b1ZRbm5JazZZNWd0OXZnQmQ1QTRHSjZQU0MyODlNSXRGCnhzb2dXdExzY2ZsT0lUazlrckxaRzExNExnZFUvZXMrYmRVbmJVbXNjWFZYRWM3cy9aUFowQ2NDZ1lFQTdEMDUKUzBlR1RHVjY0MzFFUHN1eTV0MDlUQ25WYmhpWUlIaWw2aUVoOXhWKzBUcGtSd3hmR3FHbEM4aVE2c1Rxa3FIaQpOcitZRjh5V0RDQ3RScE0zcWdlbzJUWFNydXhIUjRnbzZUTjE1TEw2UkVscDlZK1FYS3A4d0REWGZJcmtaNHIwCm5BdDZHU3NOREI5ZU5OSS9oT1FpeDZDaDQyQzdjNG80UXRNSVI2a0NnWUFrM0lVbjhUSk1udW5DTEYxQ04zM2kKQzJyZ3BwMVJGU2ZPSUhOT1ArL0luZUVLNVdBRE5NNlQxTlBDUWJFamR0RVdvWTBUbWJhcWV1VjMrQUljekc1VwoxRFJtM1VmeWRJdFRuZlVPeHM1WmRiWkhpVHhVRVFCMzRIR01JSGxLR3dBR0cwOHZWWHF2VnoySVhDY0JoTG4rCktwbDk4RXplY3N1SUFnSnlZNkJnY3dLQmdHejRHTE9HdklZRTBWaVo4WjdkcXhvZXR5V29ybEJvZTlPT2swbWEKR3VhMFBaa1pUQ1FScXRUSDl5K21SbUpranFjd2tQNGNCbllENHJxWllCUUwyRU5QNFN6QVRQeHU5TG9rTG1yVApWL0EwTm9qRkxHRWU1Y0k0eWU2RkdRRFR1R09panc1anBPQnpJVU9VUElvMDZTUE5iOVdSWE50YlJWd1lSN2RiClRKaHhBb0dBR3V1MWY3NmtUeDFvSFdvT2pPazNiSmNSeVdtOVFkUVZFQjZTMlpyc0hCUnpmaW5nRGVESzlsaVQKUlpRUVMzdFpKR05ocXZiaENwdVZzbVdQSnJaMHQ0elBZckhNcEkwczR2ZVRnSmVTQXlaSXFUZ1NvSG03S0E0cQpnUFFUOTZQQkxvWWZCMEt1S0FCcU5OVkc3Y3o0bEJ6MHdOTXl1WitVdHI3R3B4V0I0ZWM9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
19
+ client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURKRENDQWd5Z0F3SUJBZ0lCQ0RBTkJna3Foa2lHOXcwQkFRc0ZBREFtTVNRd0lnWURWUVFEREJ0dmNHVnUKYzJocFpuUXRjMmxuYm1WeVFERTFOREUzTVRZMU9USXdIaGNOTVRneE1UQTRNakl6TmpNMFdoY05NakF4TVRBMwpNakl6TmpNMVdqQk9NVFV3SEFZRFZRUUtFeFZ6ZVhOMFpXMDZZMngxYzNSbGNpMWhaRzFwYm5Nd0ZRWURWUVFLCkV3NXplWE4wWlcwNmJXRnpkR1Z5Y3pFVk1CTUdBMVVFQXhNTWMzbHpkR1Z0T21Ga2JXbHVNSUlCSWpBTkJna3EKaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1M3VrODFYNkRsMGpBc0t4V3ZZVWN6NVNZSlBuUi9zSApMT1BDUmNaYkN4WVlMS2VTcDYzNnExYU1RdWsyRnJIejVsSDA5MmlVMk1VWWlwUnJOVVdQb0JRMVpCdWUvQjJPCm5wbXl3aHIyYlZyZXBpWjZPTk9QOTJKMllHYU1UUG10VzIrRUc4b3dEcmkvQ25NTyswNUIvaU1JbEJjbno2MHQKeVdHb29tTHkyb1lVaDNwMC9YVW5meFZiRjYzRndIMis4N2hKbWl1SWkzTjRzSStjUDZ0UHhnMTQzTFU5bDRINAo0MERNK1llR0NpNVJuU0lGaVRCN04vN3hQcU54VWQrVGVZY0JaYjIvYmFFOCs0VXp6bEFWZnJKcG5aTTdINC9LClZQYWxjUU9CVXA0ekdTTkxOYXl6c1VmamxqRTM1SVd4QjBjSS9KQWNxNnE1UGN1RHlmelIrUUlEQVFBQm96VXcKTXpBT0JnTlZIUThCQWY4RUJBTUNCYUF3RXdZRFZSMGxCQXd3Q2dZSUt3WUJCUVVIQXdJd0RBWURWUjBUQVFILwpCQUl3QURBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQUJvMHRDUkhwd3JXSUk4ajRBNFU1Mk5VZDNVNTdLK1F2Ci9oSjUyVkNoZzcvTlhnNnp5bE44dUowbVBBVlRxZnFLaHhxTDVnR2ozYXlPeWY5SEFLdFRkdHBKSXZYTStlcW4KV0NWRWRTZVNKTGxEbGlLQkt6aE9KMTR1VDNhRGZkYmRrMm5zbFRHejhRZzVtaE5OOXRHNys3ZS9DVXpJcFpPNQo0OXFoUC8wN3VVZStvMEd4WEFLM1dITDFJMjhpT2pxbExlMHI1QlpSZ29yN1ZhMzRGZ3pud2JFRTZrSDJ1MzNwClU4cDA3QmNVQkRNckJXeVc4SFJDUHVhNjdLRjhFMW80SDB6a0phaTl1SzhlRm9UWm1kVDVLMlk5RDYrMmZtdDEKenErRisxUWhCUnVqeWVTSXptdnVkK2R4dFR1RDliUTJhWmpXVHRmbnN1bjJsb2NSQmNLc3VRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
20
+ client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdTN1azgxWDZEbDBqQXNLeFd2WVVjejVTWUpQblIvc0hMT1BDUmNaYkN4WVlMS2VTCnA2MzZxMWFNUXVrMkZySHo1bEgwOTJpVTJNVVlpcFJyTlVXUG9CUTFaQnVlL0IyT25wbXl3aHIyYlZyZXBpWjYKT05PUDkySjJZR2FNVFBtdFcyK0VHOG93RHJpL0NuTU8rMDVCL2lNSWxCY256NjB0eVdHb29tTHkyb1lVaDNwMAovWFVuZnhWYkY2M0Z3SDIrODdoSm1pdUlpM040c0krY1A2dFB4ZzE0M0xVOWw0SDQ0MERNK1llR0NpNVJuU0lGCmlUQjdOLzd4UHFOeFVkK1RlWWNCWmIyL2JhRTgrNFV6emxBVmZySnBuWk03SDQvS1ZQYWxjUU9CVXA0ekdTTkwKTmF5enNVZmpsakUzNUlXeEIwY0kvSkFjcTZxNVBjdUR5ZnpSK1FJREFRQUJBb0lCQUFKTXpnVStOTWNnVldHZgpTZFczMXlCaXoxZm4rSnBsZGYwUy9qc2s1OUVIQUZ6cjRWeTFRYklBYWRBWVZGV0s4VmNPQWxkV3JSekxyalZsCkJMdXVrc2gvOXZlM2J3Zmd4UE1sSjVCQ0RHdmpCWUE4VUp1SjNPWklDdk83emxUVGExRUgyVE1PRS9EYVMxMngKYzZtWm1DMnArRno0dThCTWU1ZFEzMlMrbWdRY1E1dldBdmNsdktEd3IvMTZjamwrTzdEMGNNWUZVUmlFNDJ6QQpmTkRqMW9MK0lReU9NcjRXWUFVVDNJSHpXSFBFWWRtRjBiTHprK1ZyTHQxRjczMFI1TS9YRDZzM3hoQmpkZndGCndSYlA0SXRLMUlEMm8xMTZlV0RBOGY4WnQ2VUgrOFlHdDU3NmJuUFpQR1MxQVQvcEZnK1czQmd2ODI5Ly9MeFcKVW1aMkhoRUNnWUVBMzVOTlVyMDlIMW45U0lpZnhFcU40QW95MGtsZjZCT3BSS3NXeVJKS3o2MG9BZ1l6TUdoLwoyQnFGZERlWTcwdnlFTGtsVzgxQWNCR3Ara2VPU0JsOThHbTBlSDBnRUVRY2N2Sm1vd2p1Mjd3ZkN3Rk5FckNlCk9OQmlFSDZGOWs0MTBMd0U2WFBReUlSRmJGRGw5alJLRjd6UUlYTEZkbS9LMTIzQzUwRy9NK3NDZ1lFQTFxeFcKUllzanVablpYa21BdWlnWmhnUTV4WDlCRlE2NFkrV291VVFZR0FnaWxkTHRRcFhSRHlDbWRyOXVkZWxGN1g5NQp1Z3ZGRzJQQ2FDeFNEWVJiOFhtVEFuT2VqTGowSFB4M1hhVTdPTUE2UjhBMWZ3RFRYWXQ3Z2RRRHJJZTEwYzJ0Cnh4dWlKazkvTkd4VTBwZEtRVEg0Nm1PUmRMeXg5TkJWYm02YWJLc0NnWUVBeDBQM1Y3WVlneGZtbWo1Qy8yVmYKZS80Nis1ZXdKaDFYOFQ3M3lQQkh3ejlXZUM5a2NsSEJHQy9USUJqcGN1WmljaXRDTThjRkZwMTN2UDBId0JVUQpYVFVwUjNabUhIbElUZDdrUVkwVnJyekZnajUvbmhmU2ZWcWsvSVI0QzJYN3F2WFkvdVZkZ1VuNndpWjhQMnF0Cld1akxLL1NxTC94RmNxcCtXelVMSUU4Q2dZQVNmMUVEdHdTQ0JwYXJRQ3dlWGp3c3h3cHZVUks3ak1Rb24yNVYKWUYrdkdteFllbzlGRUlHdUN3TXM4anZEWHpGT1VKQ2Rqa3dTbXhyeVBQZHBBTUduWWZGZjRiU0VyWjhqTEVIZwp5TTc4aWR1N3VQMGpEMkFuREZDOUZCYW85Qnlma2xocDhxQ2JLbmhzZlBVbUhERWl3dnFPdjd1VjBuaUcvcmlOCnhtdjU5d0tCZ1FDNzd4Znd3aUVMNEcxdEJINVc1RFhJeGtpZ3V5ak95SnRKTlJURVBVckxSVjl3TlJMazFnb28KeXlUelpYNWhMU3ppaTdoN1BlUUdqOVR0V3VwWDdUWDJtb0FqU1FRODJWLzR5ZkpPcHVpSitQeDloRFowc0g2cApZdmFoKzNKK1JMSWUyaTNrcVM0eDUvcU5xb1BhcngyTk1oZWhIdHNGcWo1czBnQlczR25xL2c9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
@@ -1,18 +1,18 @@
1
1
  -----BEGIN CERTIFICATE-----
2
2
  MIIC6jCCAdKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDDBtvcGVu
3
- c2hpZnQtc2lnbmVyQDE0NzgwMDE4MDEwHhcNMTYxMTAxMTIwMzIwWhcNMjExMDMx
4
- MTIwMzIxWjAmMSQwIgYDVQQDDBtvcGVuc2hpZnQtc2lnbmVyQDE0NzgwMDE4MDEw
5
- ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs4wBLAPBsZSd4CrAXUwxU
6
- s2upgpoR+Y//7hV/5ZS4Ab7BBqFbOtd5g7ygchRApd57Lr6a/BCE5Y8qFxNzYEgs
7
- NONKqYZYCRVOm6tFQI+PlU4GV3gSkk19FCL42HR6J4Ce9Ohx1r9AX4iDROoMDmXm
8
- r92vu40R5GIvxQWw+2C/rhwi0x27X886W26v38EKNQfXFXKKPVFpK91rIfHJc7oP
9
- 56VUdWIDJJ9H1m3xzD6+5JOzYeq0ZXW4srVU5n50fNju8HFQ65J4FnXoYyw1Z5w3
10
- jDemaoKn7HLZqnrcGKaz69X7ON+kZU1S/gnTnXQdHUooELnZgM9IZ8LZwZlaPXrJ
3
+ c2hpZnQtc2lnbmVyQDE1NDE3MTY1OTIwHhcNMTgxMTA4MjIzNjMxWhcNMjMxMTA3
4
+ MjIzNjMyWjAmMSQwIgYDVQQDDBtvcGVuc2hpZnQtc2lnbmVyQDE1NDE3MTY1OTIw
5
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDi/BtoXDZ0/ItoyFU4ZMp
6
+ 0nqQvz1aDnW/TzCDxieRE/OlBNDqRBRQGXKh5a82Ctnz5J38W2Ycv6Ev5BRJpRMN
7
+ bacfAPjs6f+VJHOv0UTsyQsaVwcy8uHCfJrNHGxyQVYbvOvqSv+NgfTQ20gvaMx0
8
+ FnMLg2kEhXQRxNtK+FX+3ivWQf/1oDBdSPSxFXzYtzk1ZXRZc7oShmFSdyqZJodv
9
+ oyjpPHf4ufknCuuLXNZTA+1rOgrEbQOTavw+heYf6WKNn1OOlpHCIDgw2qtXFm/k
10
+ Rd2GTyiWJBB0Mm0QrTovEPnC/XhYzBwNfkgf5kj+k/xqvTQHSyH1sCYObIcHTmkx
11
11
  AgMBAAGjIzAhMA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
12
- SIb3DQEBCwUAA4IBAQBPu7hdNchigq7f6yaJpMEedQKXO8gC1bFoBfMEYqfxXzcB
13
- HNjTf9/ujja9J+hlEge5BiLIgT5ykxn8wNzZ+4Dz7XdhAs8EbFjNEKhqqYwWAXJ5
14
- qGkPIngrc/47tvbAEhBh+3NWFwdFdo6dTPHE7WU481Hm/49/87CvyvuQJfFUBulB
15
- v71HUs0wvHVTEPK+zGtPXW7IWcMvgbs3Na1p2DJNbFE1Rja/YLif6IJvECLdgWyb
16
- QHvidW7gitVKgrbltHM9taNF1UPyoLeL1vMgLh4hT79xXK/eN95LzPwA0NRyJtlK
17
- dWoLIe5RfFx6TKBXTpdCACWmd9WRRZK2sFvF4NMc
12
+ SIb3DQEBCwUAA4IBAQChfLORd6S7xZmVAIJoRvpDwWYRtnx/JrYy3X1xVXHxt486
13
+ AVPKalWbojzKiFd7aqv52BvCH5UIbT33unyqM87fXMBg1P1aTNz7azGT2ncbDSUU
14
+ ScJ2uicKHfi233wj4qKsodWGoM4o1KGhJqaUCxXkCfFWVeYF2r+pTyQTTXqXhFmY
15
+ yjSOj7Rz+PHH+q4uW1+NdX+EFlM7tVQG+S+7vMcND82GKW6YZVEMmy5uwx9MQFgC
16
+ hO3InA/7SjOKHx0erdtEzF5acaLjdDyKbBzaTOlkKN55XrG9L6dat0RlKf8PwWQT
17
+ aJEm1JWADOfeIcdgk5eWFzPS/9MFk1SbBxOARKUQ
18
18
  -----END CERTIFICATE-----
@@ -1,19 +1,19 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDDTCCAfWgAwIBAgIBCDANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDDBtvcGVu
3
- c2hpZnQtc2lnbmVyQDE0NzgwMDE4MDEwHhcNMTYxMTAxMTIwMzIxWhcNMTgxMTAx
4
- MTIwMzIyWjA3MR4wHAYDVQQKExVzeXN0ZW06Y2x1c3Rlci1hZG1pbnMxFTATBgNV
5
- BAMTDHN5c3RlbTphZG1pbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
6
- ANmkanvWh84uucG92OvA8+2u5F16p5k/p4m+G8Qp+J08YhIsSSKoq3ZZtFXdD+fy
7
- 34PiMousNOlA8A5mCaI3/qMhZ5xFwQ8/FGe610nl0CraSyUqQt1gxFlV20TrO4oF
8
- K6I9WLWMPr2JnEpsPEkhYOkH2+61ymUKx7P0GLRuZ03GUXTBpE9rvKyloMPDy2+u
9
- zsfXn9n/bXMgWmBnM3gPSxIDALJQ+7XHgbAT2YqGM6IbGCKLBNeYZkbMEn+Wwsnv
10
- RqZLCpNh91R2H3FY/8OWZw/JGBeLlIQnwqtjIyg3EjsPgGRXFdPj5duNz6i9D7Qh
11
- K8KbCisJ44JYC9Qe1Km9Or8CAwEAAaM1MDMwDgYDVR0PAQH/BAQDAgWgMBMGA1Ud
12
- JQQMMAoGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggEB
13
- AFznIcNOgfBFo1GmrtvSMD/iR1Fb6y+1vaU0JAPqG1DCLm0pAnquMbKQQdL0QJB9
14
- N4hvUZ9QpqlaYmVY8+1KmwZpToF9iQ5jAEbvaTZXXL47jLpKkIqiYR9YqcBCjPl3
15
- 9pEXLpsKNzWJYTr6HUg5FgGkBERpWHVHxd93GkJMFeSHACiE4PjLv5aCTC1yNTac
16
- uFhPxL3r1jBibA+tk3tv8RTT41olWjpgh+MBWYPq4Hpq8mlWAQUVPRnv3wNPCk5u
17
- 90cYyo+Df0TX1TBLUakH+1Xg2YXVVY1iogEW5eexyTsQ1yeC0IR+250s386noCKo
18
- L2nu/RX0fwWhd23sr8ff6JI=
2
+ MIIDJDCCAgygAwIBAgIBCDANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDDBtvcGVu
3
+ c2hpZnQtc2lnbmVyQDE1NDE3MTY1OTIwHhcNMTgxMTA4MjIzNjM0WhcNMjAxMTA3
4
+ MjIzNjM1WjBOMTUwHAYDVQQKExVzeXN0ZW06Y2x1c3Rlci1hZG1pbnMwFQYDVQQK
5
+ Ew5zeXN0ZW06bWFzdGVyczEVMBMGA1UEAxMMc3lzdGVtOmFkbWluMIIBIjANBgkq
6
+ hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu3uk81X6Dl0jAsKxWvYUcz5SYJPnR/sH
7
+ LOPCRcZbCxYYLKeSp636q1aMQuk2FrHz5lH092iU2MUYipRrNUWPoBQ1ZBue/B2O
8
+ npmywhr2bVrepiZ6ONOP92J2YGaMTPmtW2+EG8owDri/CnMO+05B/iMIlBcnz60t
9
+ yWGoomLy2oYUh3p0/XUnfxVbF63FwH2+87hJmiuIi3N4sI+cP6tPxg143LU9l4H4
10
+ 40DM+YeGCi5RnSIFiTB7N/7xPqNxUd+TeYcBZb2/baE8+4UzzlAVfrJpnZM7H4/K
11
+ VPalcQOBUp4zGSNLNayzsUfjljE35IWxB0cI/JAcq6q5PcuDyfzR+QIDAQABozUw
12
+ MzAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDAYDVR0TAQH/
13
+ BAIwADANBgkqhkiG9w0BAQsFAAOCAQEABo0tCRHpwrWII8j4A4U52NUd3U57K+Qv
14
+ /hJ52VChg7/NXg6zylN8uJ0mPAVTqfqKhxqL5gGj3ayOyf9HAKtTdtpJIvXM+eqn
15
+ WCVEdSeSJLlDliKBKzhOJ14uT3aDfdbdk2nslTGz8Qg5mhNN9tG7+7e/CUzIpZO5
16
+ 49qhP/07uUe+o0GxXAK3WHL1I28iOjqlLe0r5BZRgor7Va34FgznwbEE6kH2u33p
17
+ U8p07BcUBDMrBWyW8HRCPua67KF8E1o4H0zkJai9uK8eFoTZmdT5K2Y9D6+2fmt1
18
+ zq+F+1QhBRujyeSIzmvud+dxtTuD9bQ2aZjWTtfnsun2locRBcKsuQ==
19
19
  -----END CERTIFICATE-----
@@ -1,27 +1,27 @@
1
1
  -----BEGIN RSA PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
27
27
  -----END RSA PRIVATE KEY-----