qpid_proton 0.37.0 → 0.41.1

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.
data/lib/core/uri.rb CHANGED
@@ -46,7 +46,12 @@ end
46
46
  module Qpid::Proton
47
47
  private
48
48
  # Make sure to allow empty hostnames, Ruby 2.0.0 does not.
49
- DEFAULT_URI_PARSER = URI::Parser.new(:HOSTNAME => /(?:#{URI::PATTERN::HOSTNAME})|/)
49
+ DEFAULT_URI_PARSER =
50
+ if defined?(URI::RFC3986_Parser) && URI::DEFAULT_PARSER.is_a?(URI::RFC3986_Parser)
51
+ URI::RFC2396_Parser.new(:HOSTNAME => /(?:#{URI::PATTERN::HOSTNAME})|/)
52
+ else
53
+ URI::Parser.new(:HOSTNAME => /(?:#{URI::PATTERN::HOSTNAME})|/)
54
+ end
50
55
 
51
56
  public
52
57
 
data/lib/util/wrapper.rb CHANGED
@@ -111,7 +111,7 @@ module Qpid::Proton
111
111
  end
112
112
  return result
113
113
  end
114
- RBCTX = self.hash.to_i
114
+ RBCTX = self.hash
115
115
  end
116
116
 
117
117
  # @private
@@ -129,13 +129,7 @@ module Qpid::Proton
129
129
 
130
130
  def inspect
131
131
  return "#{self.class}<nil>" unless @impl
132
- pstr = Cproton.pn_string("")
133
- begin
134
- Cproton.pn_inspect(@impl, pstr)
135
- return Cproton.pn_string_get(pstr)
136
- ensure
137
- Cproton.pn_free(pstr)
138
- end
132
+ return Cproton.pn_tostring(@impl)
139
133
  end
140
134
 
141
135
  def to_s() inspect; end
@@ -16,13 +16,13 @@
16
16
 
17
17
 
18
18
  require 'test_tools'
19
- require 'minitest/unit'
19
+ require 'minitest/autorun'
20
20
 
21
21
  include Qpid::Proton
22
22
 
23
23
  # Test delivery of raw proton events
24
24
 
25
- class RawDriverTest < MiniTest::Test
25
+ class RawDriverTest < Minitest::Test
26
26
 
27
27
  # Raw handler to record all on_xxx calls
28
28
  class RecordingHandler
@@ -17,7 +17,7 @@
17
17
 
18
18
 
19
19
  require 'test_tools'
20
- require 'minitest/unit'
20
+ require 'minitest/autorun'
21
21
  require 'socket'
22
22
 
23
23
  # Since ruby 2.5 the default is true, turn it off since we have tests that deliberately
@@ -29,7 +29,7 @@ class ExceptionMessagingHandler
29
29
  def on_error(e) raise e; end
30
30
  end
31
31
 
32
- class ContainerTest < MiniTest::Test
32
+ class ContainerTest < Minitest::Test
33
33
  include Qpid::Proton
34
34
 
35
35
  def test_simple()
@@ -17,7 +17,7 @@
17
17
 
18
18
 
19
19
  require 'test_tools'
20
- require 'minitest/unit'
20
+ require 'minitest/autorun'
21
21
  require 'socket'
22
22
 
23
23
  # Container that listens on a random port
@@ -30,7 +30,7 @@ class TestContainer < Qpid::Proton::Container
30
30
  attr_reader :listener
31
31
  end
32
32
 
33
- class ContainerSASLTest < MiniTest::Test
33
+ class ContainerSASLTest < Minitest::Test
34
34
  include Qpid::Proton
35
35
 
36
36
  # Handler for test client/server that sets up server and client SASL options
@@ -64,7 +64,7 @@ class ContainerSASLTest < MiniTest::Test
64
64
 
65
65
  def initialize()
66
66
  if SASL.extended? # Configure cyrus SASL
67
- @conf_dir = File.expand_path('sasl_conf')
67
+ @conf_dir = ENV['PN_SASL_CONFIG_PATH'] || File.expand_path('sasl_conf')
68
68
  @conf_name = "proton-server"
69
69
  @database = File.join(@conf_dir, "proton.sasldb")
70
70
  @conf_file = File.join(conf_dir,"#{@conf_name}.conf")
data/tests/test_data.rb CHANGED
@@ -20,7 +20,7 @@ require 'test_tools'
20
20
  require "securerandom"
21
21
  require 'qpid_proton'
22
22
 
23
- class TestData < MiniTest::Test
23
+ class TestData < Minitest::Test
24
24
  include Qpid::Proton
25
25
 
26
26
  def assert_from_to(*values)
@@ -22,7 +22,7 @@ require 'test_tools'
22
22
  include Qpid::Proton
23
23
 
24
24
  # Test Delivery and Tracker
25
- class TestDelivery < MiniTest::Test
25
+ class TestDelivery < Minitest::Test
26
26
 
27
27
  class NoAutoHandler < MessagingHandler
28
28
  def on_sender_open(l) l.open({:auto_settle=>false, :auto_accept=>false}); end
@@ -12,7 +12,7 @@ if ((RUBY_VERSION.split(".").map {|x| x.to_i} <=> [1, 9]) < 0)
12
12
  end
13
13
  end
14
14
 
15
- class InteropTest < MiniTest::Test
15
+ class InteropTest < Minitest::Test
16
16
  include Qpid::Proton
17
17
 
18
18
  def setup
@@ -35,9 +35,33 @@ class InteropTest < MiniTest::Test
35
35
  buffer = buffer[n..-1]
36
36
  end
37
37
  @data.rewind
38
+
39
+ # Verify semantic round-trip: decode the re-encoded bytes and compare
40
+ # object contents. Byte-for-byte equality is not required because the
41
+ # encoder may legitimately choose a more compact encoding (e.g. LIST8
42
+ # instead of LIST32) that is semantically identical.
38
43
  reencoded = @data.encode
39
- # Test the round-trip re-encoding gives the same result.
40
- assert_equal(encoded, reencoded)
44
+ reencoded_data = Codec::Data.new
45
+ buffer = reencoded
46
+ while buffer.size > 0
47
+ n = reencoded_data.decode(buffer)
48
+ buffer = buffer[n..-1]
49
+ end
50
+ reencoded_data.rewind
51
+
52
+ # Compare all objects in both data
53
+ original_objects = []
54
+ while @data.next
55
+ original_objects << @data.object
56
+ end
57
+ @data.rewind
58
+
59
+ reencoded_objects = []
60
+ while reencoded_data.next
61
+ reencoded_objects << reencoded_data.object
62
+ end
63
+
64
+ assert_equal(original_objects, reencoded_objects)
41
65
  end
42
66
 
43
67
  def decode_data_file(name) decode_data(get_data(name)); end
@@ -52,7 +52,7 @@ class NoAutoOpenClose < RecordingHandler
52
52
  attr_reader :connection, :session, :link
53
53
  end
54
54
 
55
- class TestMessagingHandler < MiniTest::Test
55
+ class TestMessagingHandler < Minitest::Test
56
56
 
57
57
  def test_auto_open_close
58
58
  d = DriverPair.new(RecordingHandler.new, RecordingHandler.new)
@@ -41,7 +41,7 @@ class AllHandler < OldMessagingHandler
41
41
  end
42
42
 
43
43
  # Tests with Mock handler that handles all methods, expect both old and new calls
44
- class TestOldHandler < MiniTest::Test
44
+ class TestOldHandler < Minitest::Test
45
45
  def setup
46
46
  @h = [AllHandler.new, AllHandler.new]
47
47
  @ch, @sh = *@h
@@ -161,7 +161,7 @@ class TestOldHandler < MiniTest::Test
161
161
  end
162
162
 
163
163
  # Test with real handlers that implement a few methods
164
- class TestOldUnhandled < MiniTest::Test
164
+ class TestOldUnhandled < Minitest::Test
165
165
 
166
166
  def test_message
167
167
  handler_class = Class.new(OldMessagingHandler) do
data/tests/test_tools.rb CHANGED
@@ -23,9 +23,9 @@ require 'qpid_proton'
23
23
  require 'socket'
24
24
 
25
25
  begin
26
- MiniTest::Test
27
- rescue NameError # For older versions of MiniTest
28
- MiniTest::Test = MiniTest::Unit::TestCase
26
+ Minitest::Test
27
+ rescue NameError # For older versions of Minitest
28
+ Minitest::Test = Minitest::Unit::TestCase
29
29
  end
30
30
 
31
31
  class TestError < RuntimeError; end # Normal error
data/tests/test_uri.rb CHANGED
@@ -19,7 +19,7 @@
19
19
  require 'test_tools'
20
20
  require 'qpid_proton'
21
21
 
22
- class TestURI < MiniTest::Test
22
+ class TestURI < Minitest::Test
23
23
 
24
24
  PARTS=[:scheme, :userinfo, :host, :port, :path] # Interesting URI components
25
25
  def uri(u) Qpid::Proton::uri(u); end
data/tests/test_utils.rb CHANGED
@@ -16,9 +16,9 @@
16
16
  # under the License.
17
17
 
18
18
  require 'test_tools'
19
- require 'minitest/unit'
19
+ require 'minitest/autorun'
20
20
 
21
- class UtilsTest < MiniTest::Test
21
+ class UtilsTest < Minitest::Test
22
22
  include Qpid::Proton
23
23
 
24
24
  # Make sure Schedule puts tasks in proper order.
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qpid_proton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.37.0
4
+ version: 0.41.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darryl L. Pierce
8
8
  - Alan Conway
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2022-04-06 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: |
15
14
  Proton is a high performance, lightweight messaging library. It can be used in
@@ -33,15 +32,6 @@ files:
33
32
  - examples/server.rb
34
33
  - examples/simple_recv.rb
35
34
  - examples/simple_send.rb
36
- - examples/ssl-certs/README.txt
37
- - examples/ssl-certs/tclient-certificate.p12
38
- - examples/ssl-certs/tclient-certificate.pem
39
- - examples/ssl-certs/tclient-full.p12
40
- - examples/ssl-certs/tclient-private-key.pem
41
- - examples/ssl-certs/tserver-certificate.p12
42
- - examples/ssl-certs/tserver-certificate.pem
43
- - examples/ssl-certs/tserver-full.p12
44
- - examples/ssl-certs/tserver-private-key.pem
45
35
  - examples/ssl_send.rb
46
36
  - examples/testme
47
37
  - ext/cproton/cproton.c
@@ -106,8 +96,10 @@ files:
106
96
  homepage: http://qpid.apache.org/proton
107
97
  licenses:
108
98
  - Apache-2.0
109
- metadata: {}
110
- post_install_message:
99
+ metadata:
100
+ homepage_uri: http://qpid.apache.org/proton
101
+ source_code_uri: https://github.com/apache/qpid-proton/tree/main/ruby
102
+ bug_tracker_uri: https://issues.apache.org/jira/projects/PROTON/issues
111
103
  rdoc_options: []
112
104
  require_paths:
113
105
  - lib
@@ -122,8 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
114
  - !ruby/object:Gem::Version
123
115
  version: '0'
124
116
  requirements: []
125
- rubygems_version: 3.2.22
126
- signing_key:
117
+ rubygems_version: 3.6.7
127
118
  specification_version: 4
128
119
  summary: Ruby language bindings for the Qpid Proton messaging framework
129
120
  test_files: []
@@ -1,24 +0,0 @@
1
- This directory contains basic self signed test certificates for use by
2
- proton examples.
3
-
4
- The ".pem" files are in the format expected by proton implementations
5
- using OpenSSL. The ".p12" file are for Windows implementations using
6
- SChannel.
7
-
8
- The commands used to generate the certificates follow.
9
-
10
-
11
- make_pn_cert()
12
- {
13
- name=$1
14
- subject=$2
15
- passwd=$3
16
- # create the pem files
17
- openssl req -newkey rsa:2048 -keyout $name-private-key.pem -out $name-certificate.pem -subj $subject -passout pass:$passwd -x509 -days 3650
18
- # create the p12 files
19
- openssl pkcs12 -export -out $name-full.p12 -passin pass:$passwd -passout pass:$passwd -inkey $name-private-key.pem -in $name-certificate.pem -name $name
20
- openssl pkcs12 -export -out $name-certificate.p12 -in $name-certificate.pem -name $name -nokeys -passout pass:
21
- }
22
-
23
- make_pn_cert tserver /CN=test_server/OU=proton_test tserverpw
24
- make_pn_cert tclient /CN=test_client/OU=proton_test tclientpw
@@ -1,19 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDKzCCAhOgAwIBAgIJAIV7frIjftgcMA0GCSqGSIb3DQEBCwUAMCwxFDASBgNV
3
- BAMMC3Rlc3RfY2xpZW50MRQwEgYDVQQLDAtwcm90b25fdGVzdDAeFw0xNTExMjcx
4
- ODEwMzlaFw0yNTExMjQxODEwMzlaMCwxFDASBgNVBAMMC3Rlc3RfY2xpZW50MRQw
5
- EgYDVQQLDAtwcm90b25fdGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
6
- ggEBAPCIS4qUdOtQplUxZ6WW0LXcvosqFP6qOiCARLSEWpR3B8bq213rzefwwfcM
7
- 4TtMr88bP+huLKmlyMfwpl8yB88eXkscPgaAce2zk24urWkFXKSQ6GPitWBLGqBa
8
- V+W0wJ4mfW7MwefVslWfGXI381QEUlBHjkFG30AtzMMTRj2GK2JqUlRXZPljGyB7
9
- WcXwxcoS+HkKV7FtHWSkLAzyXwQ9vsCUEYdWTUaGXfCUNRSRV7h1LIANbu03NxV0
10
- XdEl7WXcr7tuTw3axeUGhRFVhLegrxKLuZTTno4aAJnEr8uaDzjxvXnv3Ne2igvy
11
- gRfZgOMx+XrZEob9OpAoRghQt4cCAwEAAaNQME4wHQYDVR0OBBYEFE4vbyiM0RjG
12
- TLMLLGGhMZE/5x1GMB8GA1UdIwQYMBaAFE4vbyiM0RjGTLMLLGGhMZE/5x1GMAwG
13
- A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAErr/rvLS9Ig0UCMwh1J1lA9
14
- /gvXf93iIK/SjrFIAqYRmfZxg4husfoes8t2hFUeuqoH05TuSOoXG8p8DpgTSGmF
15
- jAFe+T90vJZTm0oqZkkkI/hdzjGQoHURRp9/O2Z/lm39KSKGVAN5pUWCUDi/G5iS
16
- P9LZPJN6a5syXMrR6x62IPxAXowlpXkRghKClF3zPOaOBTzT1V27EkI8IEgC+p45
17
- 246EooLnw8ibB+ucNc3KHNzpgKGVd/622+I+Q5eg9AT9PLFttP+R2ECsrVDDPYuA
18
- p0qaSnwgeozj/d6K3FOgKKEKbzBmpWgkv0jdcVk18aPMHypI/RDtZ/+3ET2Ksi8=
19
- -----END CERTIFICATE-----
Binary file
@@ -1,30 +0,0 @@
1
- -----BEGIN ENCRYPTED PRIVATE KEY-----
2
- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQICy6ghWp45z4CAggA
3
- MBQGCCqGSIb3DQMHBAiVdDoo4NIghQSCBMixGm1bm/omMxsaKnIPO7zm5dyLexJ+
4
- yTFpmh2KV7kQqmpzCyIOdoG6K8YqFnie2XdFWm3S8faRHoMq54bDmyEWIxfQPq5f
5
- I1iYFbIZkbnhUvK53RActsEUMf0locS4xylU7VQK3XTAwp0TVip3Lp3ehEMEdcXL
6
- iUWibGsoTPKcY9MIWGXZAJXsEXoeHt6k2hHo1G4E0/Bi6mLW1LY/cxZCjHTGD6qI
7
- Kt54SCCDvinqVa+rixw6yX9F14EA6bhALami8e+Ccd3lqHOyYlXcBaSS1ezCg6ig
8
- oNK97mC+gEGy1KlkZDKWXclFoOCBXRBe4DByre6Rlq3yeI9L42bvAuSBSmf5QT5g
9
- 73Yl8vjEAKR65awBT09dPuKu7t+Fb6vkwF8/t+uyj9IuL+42UuXhMLK3ohf+6DbU
10
- 8/zB4y3GXI80QmWM0+Wx4n6khFhPFLHt2q0Sn6V9PG1vtHyiq50oSCoyrPQLaecp
11
- hefnMCFBYTcT3JUwmoVGGy0boIAwL7T4aGsMt7QhwOx5tU35tKFxyY7m4fX14AKo
12
- 2EIy+TPQwCGkGf3Puy/Pc9VA8IAxB5+WwSrjk+NeCv88eIX7gy43k4rCr+OmD9FF
13
- wknr3xoP3KYhNXjdZ4Ep/1UHSK+JAtzzbNLQjDcqN+gQPg/yUX6ih0j5K3Wvh9bK
14
- E/DvzbpJroUZPgzR+8z5O68CfsD+OIdpHBFTKqAFmzvUuqpADpr998LdCjD+lW+V
15
- xZZgZa8KEblwgiH3fdGbYl46Ho1zrZisf439DbqyybAuBIQB4NSZcL/MAgVGO17k
16
- QDpVElWZWYrFm4CFTcvS2HvIzRmbefF5m5oJedsN7Q6WQCp+3gnwYx1xIOknd7pW
17
- N4AHNnqjscSj9yACj/EiBVKAKNnC5H7ZGZTsaAjMETZyjLXfI2AZ3Fviz4zFR+oz
18
- NkAfFB6WUpRpl7H02FzrzYT7XkkLcXd6H6g+mv2iDa9uKWk/PS2QlqnJt8/dHEHD
19
- JKTG331yDK5GHlKAVGF3nP5BwFGgTQMuSoeiOervMXPUwDpQ8OaYkuaRej0cZLgT
20
- kAF9sUjqdsoYNcXDFHALp6y5g8qYkfrxrlIbKs82zIsmB5I+dtZbUaD3a0zAUrmW
21
- 5Xm3Pc9dVP0EXKwfHz6zqPReEw2yYLisB5IoHd4M2wa3GzHBdra1ij4QTmvd3o7e
22
- buGFoX8KJQAcig0zpbYkoDP2gPhIh9rY4unVPQNX1Q8/wRsiJAZZsYvZY+A+SmuZ
23
- bwSwk+8ZJRsFzdYYYhQeRytD5cDAIQiClcI5Yj4T9dWQV/gf0N/wIBDNTMp0jJAy
24
- 1l7PuXTfGZodNJWZH0oqsrNoWbn/k67NildvvofIKX+h09Nxszr670Pvj0qoHd5/
25
- CWq30lnxoJBUgbikFOz6ZuuHi/ZiCXL+haH+v8hJKN5ptRKnyYJQHchRB/IOGRoT
26
- 5lmWxo8a7K+yXhp0VBDHJfw3685ms0xQX8Xj4X3MEuN64zd0fB1JmhtP12ydK85J
27
- ABawNKlRQPw5weckwtCviXQX+vX25S/xu3xA6IuqlHyqL/1t3DICzuxeOyT2mZxD
28
- tKQxEgNihPvu32vn9m74qA3adEaxuWPRkPZuTeITHOkMTZolvqYX/5olBsSgYwka
29
- 7/g=
30
- -----END ENCRYPTED PRIVATE KEY-----
@@ -1,19 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDKzCCAhOgAwIBAgIJAPnYOOQCJ3kDMA0GCSqGSIb3DQEBCwUAMCwxFDASBgNV
3
- BAMMC3Rlc3Rfc2VydmVyMRQwEgYDVQQLDAtwcm90b25fdGVzdDAeFw0xNTExMjcx
4
- ODEwMzlaFw0yNTExMjQxODEwMzlaMCwxFDASBgNVBAMMC3Rlc3Rfc2VydmVyMRQw
5
- EgYDVQQLDAtwcm90b25fdGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
6
- ggEBAKJNB78lgw4KtXDAvXocTLud6mbn6zgfB6ETIF+kcrukOH9DnPxjLBBM4Lig
7
- sp1+kmeudFK5/X8riDrvIW52b/rlEBLgLB+oDtI74m6OTbBs9L+FUFYOuxApetQF
8
- qoJy2vf9pWfy4uku24vCpeo7eVLi6ypu4lXE3LR+Km3FruHI1NKonHBMhwXSOWqF
9
- pYM6/4IZJ4fbV0+eU0Jrx+05s6XHg5vone2BVJKxeSIBje+zWnNnh8+qG0Z70Jgp
10
- aMetME5KGnLNgD1okpH0vb3lwjvuqkkx4WswGVZGbLLkSqqBpXPyM9fCFVy5aKSL
11
- DBq7IABQtO67O2nBzK3OyigHrUUCAwEAAaNQME4wHQYDVR0OBBYEFGV1PY0FCFbJ
12
- gpcDVKI6JGiRTt3kMB8GA1UdIwQYMBaAFGV1PY0FCFbJgpcDVKI6JGiRTt3kMAwG
13
- A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAIx1TOTGWnnbpan4bse7wuvH
14
- GYSNDJhoTVS+X1TC63xukJD1JBAsCNTqg/ZV6lN3XEl7vvOXfGoCiyXM6a9XOKUo
15
- gSDtMrIr+wTh6Ss1yRO8QcCJmxH5JDXNu1ojtwsjFW/vneI4IL9kwpDsSlMQEX/E
16
- EkkQwtAx/Cvfe7pecZL4qSeykJOUMTts9H8fCAZqEiRZBA3ugJxqF8jwLP3DoFVQ
17
- 6QZzKDY6CSPqfMnVb5i0MAIYVDpau+e3N9dgQpZD22F/zbua0OVbfAPdiRMnYxML
18
- FT4sxLnh+5YVqwpVWbEKp4onHe2Fq6YIvAxUYAJ3SBA2C8O2RAVKWxf1jko3jYI=
19
- -----END CERTIFICATE-----
Binary file
@@ -1,30 +0,0 @@
1
- -----BEGIN ENCRYPTED PRIVATE KEY-----
2
- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI1cT0c2J3GcQCAggA
3
- MBQGCCqGSIb3DQMHBAi1hxSX2LJ+EgSCBMheHJ0iXr5A36Natjk/LcAEeKUMT9s+
4
- sMzoQceCWe8qMlQluWksr9iDdZ4JRIE8cpK8dbmx4dLY/SShUzdlhJHCSa4zZBHq
5
- 8cZ/jGUF/RF1rqdgjK589eUq+uOl3/gXKzG/SxBqayy6PSn12kX3qnvmlkXCmtwU
6
- lg+iBm5wRcJ0MyVHaJkyA8sW8gr186C/VAau6Yu0crQXN7NRo9snrd4ewuYMIEhZ
7
- hgaG9XsYQWB1bPhAaKj80CZGxsQbJyTwcbKKkB3IY4WXx8mmhuiNl+vKT3HBJ9Ju
8
- YB6tgIjs8CJ4X2P4aU3yNJwG1QldgHSqmFGQ19bcZAw3s3kzwjdzRf4H2V16XOBd
9
- zQ5AEs/ffVMzMIAfkb1gYwgunZ2CVwwDJ2mi1RcgkX+Og2aFQc+fxXcVOnDcGLxV
10
- 6fuCuZ2lsXfoiIyRh9kj3L75N12GtVUvgBdnMuOc1wPw6XnGQtDwt0acJpdexLMG
11
- k0j57r/gcgzTcmF3qNM+y9L/HLssgrJkvVJw2Np5gmtIyfDocsDUWUbClS4dTpYf
12
- oTngUTU+vWtHBuaUnb+f5/WJaRS/S7mmR8usbVG3i9WnEr/vlPJpbJFSjW2S6u/H
13
- 7cFxKUmmBZsSuEv/EKt9a+Sh62kprOChm4myqfCI1/gvNKfUZC6m0Vp8zf+2LgAq
14
- 2RgbMuqysMjWUtV4kDRZT7oCYckUDwsCHdbLES3nmVrtBk2ShMKHBpDp8/GoRuiV
15
- jdV7/EjKM/M1kXtFYYe3z7Mxv++lKYIJ7bNwVrQ8nrhce/VwHw6D5emWXNCJXhKZ
16
- FW7EM2ZOZ9eaKOlCsIi8sbjV6Yie9IY6HJKKmi3CpO0Tv5kLBdHkru8vGCSFm3O1
17
- n7wz7Ys5FBSlZ19X0NwQSCQX1Q4w+tido6i1SCRX0qJEdTNGuGwVXMHCf4/1zyHV
18
- hj8vnxh8fzo79LFrwlTTgwLg1Mr8sEUFFDJ/raJ1AhFXi8n24trtNR8EHxRW8wtD
19
- CLCKaqkEqfBiFXK/Yq3RrefCayPHiD+DaNsI8BwefMGpED3vD8YYCjAzXNPh/CSF
20
- sc1i1jWMzbJhzOoFSPNXhlfusbUFMFQ/6olatmH47SY6HBBOL3DDP5uQ0jw8P454
21
- QBjlMOpEZmZxO6TcEtJwu0vzgog4rQ5g3NWy6SIpjWehNwTynLt7yM3R5WTI6cZs
22
- 0GTv/rqo2/SUoNsFmnGIUwj/DrBe4XOAq1nS2ZlEctxKhBsKH0hMFp6D1rXOzrgl
23
- bwcq+oistoB0TLcThShyNgSqzW1znQ1n5SVUk9b5rRhSttJxn3yOMewH0i3v8bPo
24
- HOhP5kaGjblPsCYyhlL/SNVF0OXEGTwLNey7FQdWFOwVwTRRXe7k+uGZ2d5hg+Jn
25
- It/trDZ1RDYbVmB7/Qy73c16J4mvhOUJ2de5ZciFBjkidbiiUKLj9xnjK9k9Sauo
26
- MKhNnDMAEU5VDQM3xNe5BRdX8dFLwfF5H64sU3nROF83aUnDgvfFEowYPnCuPYfm
27
- m4aQHfoBSg4j3v1OeOwktcl+Q2TjxPHfWhbWeRBfxOTqQ/suYhnQChuFSK/qyo9K
28
- ccgotqghhunRsWMoZT25H7AZM6yKb1sMz/0oyMRIKeGqoYh+ULM5XLY0xNYd4/xU
29
- WtQ=
30
- -----END ENCRYPTED PRIVATE KEY-----