summaryrefslogtreecommitdiff
path: root/5e/afb54db92d4df968834c69fdd062622c0ba970
blob: 6d889b1edb7626a773593f0932c8f4ce7c1081f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191]
	helo=mx.sourceforge.net)
	by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <mh.in.england@gmail.com>) id 1WAegv-0004e8-8k
	for bitcoin-development@lists.sourceforge.net;
	Tue, 04 Feb 2014 12:01:25 +0000
Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of gmail.com
	designates 74.125.83.48 as permitted sender)
	client-ip=74.125.83.48; envelope-from=mh.in.england@gmail.com;
	helo=mail-ee0-f48.google.com; 
Received: from mail-ee0-f48.google.com ([74.125.83.48])
	by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1WAegt-000786-8u
	for bitcoin-development@lists.sourceforge.net;
	Tue, 04 Feb 2014 12:01:25 +0000
Received: by mail-ee0-f48.google.com with SMTP id t10so4207313eei.7
	for <bitcoin-development@lists.sourceforge.net>;
	Tue, 04 Feb 2014 04:01:17 -0800 (PST)
X-Received: by 10.14.4.67 with SMTP id 43mr2799216eei.70.1391515276928;
	Tue, 04 Feb 2014 04:01:16 -0800 (PST)
Received: from [192.168.1.100] (84-75-251-165.dclient.hispeed.ch.
	[84.75.251.165])
	by mx.google.com with ESMTPSA id g1sm87784027eet.6.2014.02.04.04.01.14
	for <bitcoin-development@lists.sourceforge.net>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Tue, 04 Feb 2014 04:01:15 -0800 (PST)
Sender: Mike Hearn <mh.in.england@gmail.com>
From: Mike Hearn <mike@plan99.net>
Content-Type: multipart/signed;
	boundary="Apple-Mail=_9BE00017-DEB6-456A-94B5-B595074C4DE3";
	protocol="application/pkcs7-signature"; micalg=sha1
Message-Id: <1D8E0828-D07F-46EF-9F9F-5CA83AA9DB59@plan99.net>
Date: Tue, 4 Feb 2014 13:01:12 +0100
To: bitcoin-development@lists.sourceforge.net
Mime-Version: 1.0 (Mac OS X Mail 7.1 \(1827\))
X-Mailer: Apple Mail (2.1827)
X-Spam-Score: -0.5 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(mh.in.england[at]gmail.com)
	-0.0 SPF_PASS               SPF: sender matches SPF record
	0.0 T_FRT_LOLITA1          BODY: ReplaceTags: Lolita (1)
	1.0 HTML_MESSAGE           BODY: HTML included in message
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1WAegt-000786-8u
Subject: [Bitcoin-development] bitcoinj 0.11 released, with p2sh,
	bip39 and payment protocol support
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Tue, 04 Feb 2014 12:01:25 -0000


--Apple-Mail=_9BE00017-DEB6-456A-94B5-B595074C4DE3
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_2E7F6410-F266-438C-8827-0A689511BFFB"


--Apple-Mail=_2E7F6410-F266-438C-8827-0A689511BFFB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hello,

I'm pleased to announce the release of bitcoinj 0.11, a library for =
writing Bitcoin applications that run on the JVM. BitcoinJ is widely =
used across the Bitcoin community; some users include Bitcoin Wallet for =
Android, MultiBit, Hive, blockchain.info, the biteasy.com block explorer =
(written in Lisp!), Circle, Neo/Bee (Cypriot payment network), =
bitpos.me, Bitcoin Touch, BlueMatt's relay network and DNS crawler, =
academic advanced contracts research and more.

The release-0.11 git tag is signed by Andreas Schildbach's GPG key. The =
commit hash is 410d4547a7dd. This paragraph is signed by the same =
Bitcoin key as with previous releases (check their release announcements =
to establish continuity). Additionally, this email is signed using DKIM =
and for the first time, a key that was ID verified by the Swiss =
government.

Key: 16vSNFP5Acsa6RBbjEA7QYCCRDRGXRFH4m
Signature for last paragraph: =
H3DvWBqFHPxKW/cdYUdZ6OHjbq6ZtC5PHK4ebpeiE+FqTHyRLJ58BItbC0R2vo77h+DthpQigd=
EZ0V8ivSM7VIg=3D

Notable changes and new features

Thanks to Ken Sedgwick, an implementation of BIP39 ("Mnemonic code for =
generating deterministic keys") has been added. This is compatible with =
the latest Trezor implementation.
Thanks to Mike Belshe, the wallet can now send to P2SH addresses.
Thanks to Matt Corallo, the network layer was rewritten from scratch. It =
no longer depends on Netty, and it now supports both blocking and =
non-blocking sockets. In practice that means Java's built in support for =
transparent SSL and SOCKS becomes available again, which in turn means =
connecting via Tor is now possible. The new framework is lightweight, =
easy to understand and has been running a DNS seed crawler for some =
months now.
Thanks to Kevin Greene, we've added some support for the BIP70 payment =
protocol. Wallet authors can now consume payment requests, check their =
signatures and submit payments with the new easy to use PaymentSession =
class. The wallet-tool command line UI has support and an article =
explains how to use it.
Thanks to Miron Cuperman, the wallet can now watch arbitrary addresses =
and scripts. The wallet could previously watch an address as long as the =
public key was known. Now it's possible to watch for addresses even when =
the public key is not known.
Also thanks to Miron, Bloom filtering was also improved. The system now =
tracks false positive rates and cleans the filter when FP rates get too =
high. Unfortunately, some privacy bugs in Bloom filtering remain, which =
could (amongst other things) allow a malicious remote peer to test =
whether you own a particular key.
Thanks to Alex Taylor (bitpos.me), a new PostgreSQL based pruning block =
store was added. This block store is fast, and indexes the UTXO set, =
allowing for fast lookup of the balance of any given address.
A Java 8 based wallet template app is now included. The template is =
designed for people writing contract based applications. It provides a =
simple app that can be copy/pasted, which connects to the P2P network, =
manages a wallet, and provides a GUI that shows progress, balance, =
address+qrcode for receiving money and has a button that is used to =
empty the wallet out. It's designed to have an attractive and modern =
look, with tasteful animations and artwork.
Micropayment channels got many big improvements to the API and =
implementation. The release in 0.10 can be seen as a beta, in this =
release the micropayments code has been taken for a test drive for a =
couple of real apps and many rough edges polished as a result.
The default USER_THREAD executor can now be replaced, allowing a 1-line =
switch of all callbacks onto a thread of your choice instead of needing =
to override each callback, each time. This should simplify and clean up =
the GUI code of wallet apps significantly.
The WalletTool command line app has a more convenient user interface =
now.
A new DNS seed has been added. The seed is run by Christian Decker, from =
ETH Zurich.
bitcoinj 0.11 will shortly be available via Maven Central. Please use =
the dependency verifier plugin and/or check the PGP signatures on the =
uploads, if you use this!
Smaller improvements

We finished adding nullity annotations to the API. You should now be =
able to assume that any method not annotated with @Nullable won't ever =
return null values.
The WalletAppKit got a bunch of new features and convenience APIs.
The wallet will now create inputs with dummy signatures if the private =
key for an output is missing, rather than throwing an exception. You can =
then edit the input later to substitute in a real signature. This is =
useful when the signing is being done elsewhere, outside of the library.
In full verification mode, execution of scripts (i.e. checking =
signatures) can now be switched off. This is useful if you trust the =
source of the chain and just want to calculate the UTXO set.
The wallet risk analysis code is now pluggable, better documented and =
checks for finality in a more sensible way.
Various memory usage and flow control optimisations were made to allow =
much larger wallets to sync on Android.
The transaction broadcast algorithm was changed to be more robust.
Double spend handling in the wallet was improved.
Generated signatures now use canonical S values. This will aid a future =
hard-forking rule change which bans malleable signatures.
Some fixes were made for enable usage with the Orchid Tor library. =
Further support for Tor is planned for future releases.
Notable bug fixes

Some hard-forking full verification bugs were fixed.
Thanks to Miron, PeerGroup now performs exponential backoff for peer =
connections, for instance if we cannot connect to them or if they =
disconnect us. This resolves an annoying bug in which if the library was =
configured with a single peer that was down, it would spin in a tight =
loop consuming battery.
API changes

Some functionality of the Wallet class was moved into separate classes =
under the wallet package.
The micropayments API and protocol changed. New clients/servers are not =
compatible with apps running against previous releases.
The Wallet sendCoins/completeTx methods no longer return booleans or =
null to indicate failure, they now throw InsufficientMoneyException or a =
subclass if the transaction cannot be completed. The exception object =
typically contains information on how much money is missing.
Some mis-named methods in the HD key derivation API were renamed.
The WalletEventListener interface has an extra method for watching =
scripts now.
Peer discovery classes moved under the net.discovery package
Any APIs that relied on Netty are now different.
New documentation

An article on the networking API
Info on testing your apps, and how to use regtest mode to make a private =
Bitcoin network that allows you to mine blocks instantly.
A reference table showing which API's implement which Bitcoin =
Improvement Proposals (BIPs).
Please note that as I am no longer employed by Google, after 0.11 =
signing the Google contributor license agreement will no longer be =
necessary. I look forward to welcoming contributions from Andreas =
Schildbach now this requirement has gone away. Also, in future I plan to =
re-namespace the library from com.google.bitcoin to org.bitcoinj - =
auto-migration scripts will be provided when this is done.=

--Apple-Mail=_2E7F6410-F266-438C-8827-0A689511BFFB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><span =
style=3D"color: rgb(34, 34, 34); background-color: rgb(255, 255, 255); =
font-size: 14px;">Hello,</span><div style=3D"color: rgb(34, 34, =
34);"><span style=3D"font-size: 14px;"><br></span></div><div =
style=3D"color: rgb(34, 34, 34);"><span style=3D"font-size: 14px;">I'm =
pleased to announce the release of bitcoinj 0.11, a library for writing =
Bitcoin applications that run on the JVM. BitcoinJ is widely used across =
the Bitcoin community; some users include Bitcoin Wallet for Android, =
MultiBit, Hive,&nbsp;<a =
href=3D"https://www.blockchain.info/">blockchain.info</a>, the&nbsp;<a =
href=3D"http://biteasy.com/">biteasy.com</a>&nbsp;block explorer =
(written in Lisp!),&nbsp;<a href=3D"http://www.circle.com/">Circle</a>, =
Neo/Bee (Cypriot payment network),&nbsp;<a =
href=3D"http://bitpos.me/">bitpos.me</a>,&nbsp;<a =
href=3D"https://code.launchpad.net/bitcoin-app">Bitcoin Touch</a>, =
BlueMatt's relay network and DNS crawler, academic&nbsp;<a =
href=3D"http://eprint.iacr.org/2013/837" style=3D"color: rgb(17, 85, =
204);">advanced contracts research</a>&nbsp;and more.</span></div><div =
style=3D"color: rgb(34, 34, 34);"><span style=3D"font-size: =
14px;"><br></span></div><div style=3D"color: rgb(34, 34, 34);"><span =
style=3D"font-size: 14px;">The release-0.11 git tag is signed by Andreas =
Schildbach's GPG key. The commit hash is&nbsp;410d4547a7dd.&nbsp;<span =
style=3D"background-color: rgb(255, 255, 255);">This paragraph is signed =
by the same Bitcoin key as with previous releases (check their release =
announcements to establish continuity). Additionally, this email is =
signed using DKIM and for the first time, a key that was ID verified by =
the Swiss government.</span></span></div><div style=3D"color: rgb(34, =
34, 34);"><span style=3D"background-color: rgb(255, 255, 255); =
font-size: 14px;"><br></span></div><div style=3D"color: rgb(34, 34, =
34);"><span style=3D"font-size: 14px;"><span style=3D"background-color: =
rgb(255, 255, =
255);">Key:&nbsp;</span>16vSNFP5Acsa6RBbjEA7QYCCRDRGXRFH4m</span></div><di=
v style=3D"color: rgb(34, 34, 34);"><span style=3D"font-size: =
14px;"><span style=3D"background-color: rgb(255, 255, 255);">Signature =
for last =
paragraph:&nbsp;</span>H3DvWBqFHPxKW/cdYUdZ6OHjbq6ZtC5PHK4ebpeiE+FqTHyRLJ5=
8BItbC0R2vo77h+DthpQigdEZ0V8ivSM7VIg=3D</span></div><div style=3D"color: =
rgb(34, 34, 34);"><span style=3D"font-size: 14px;"><br></span></div><div =
style=3D"color: rgb(34, 34, 34);"><p style=3D"line-height: 1.25em; =
max-width: 64em;"><b style=3D"font-size: 14px;">Notable changes and new =
features</b></p><ul style=3D"padding-left: 25px; max-width: 62em;"><li =
style=3D"margin-bottom: 0.3em;"><span style=3D"font-size: 14px;">Thanks =
to Ken Sedgwick, an implementation of&nbsp;<a =
href=3D"https://en.bitcoin.it/wiki/BIP_0039" rel=3D"nofollow" =
style=3D"color: rgb(0, 0, 204);">BIP39 ("Mnemonic code for generating =
deterministic keys")</a>&nbsp;has been added. This is compatible with =
the latest Trezor implementation.</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">Thanks to Mike Belshe, the =
wallet can now send to P2SH addresses.</span></li><li =
style=3D"margin-bottom: 0.3em;"><span style=3D"font-size: 14px;">Thanks =
to Matt Corallo, the network layer was rewritten from scratch. It no =
longer depends on Netty, and it now supports both blocking and =
non-blocking sockets. In practice that means Java's built in support for =
transparent SSL and SOCKS becomes available again, which in turn means =
connecting via Tor is now possible. The new framework is lightweight, =
easy to understand and has been running a DNS seed crawler for some =
months now.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">Thanks to Kevin Greene, we've added some =
support for the BIP70 payment protocol. Wallet authors can now consume =
payment requests, check their signatures and submit payments with the =
new easy to use&nbsp;<tt style=3D"max-width: =
66em;">PaymentSession</tt>&nbsp;class. The wallet-tool command line UI =
has support and&nbsp;<a =
href=3D"https://code.google.com/p/bitcoinj/wiki/PaymentProtocol" =
rel=3D"nofollow" style=3D"color: rgb(0, 0, 204);">an article explains =
how to use it</a>.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">Thanks to Miron Cuperman, the wallet can now =
watch arbitrary addresses and scripts. The wallet could previously watch =
an address as long as the public key was known. Now it's possible to =
watch for addresses even when the public key is not =
known.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">Also thanks to Miron, Bloom filtering was =
also improved. The system now tracks false positive rates and cleans the =
filter when FP rates get too high. Unfortunately, some privacy bugs in =
Bloom filtering remain, which could (amongst other things) allow a =
malicious remote peer to test whether you own a particular =
key.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">Thanks to Alex Taylor (<a =
href=3D"http://bitpos.me/">bitpos.me</a>), a new PostgreSQL based =
pruning block store was added. This block store is fast, and indexes the =
UTXO set, allowing for fast lookup of the balance of any given =
address.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">A Java 8 based wallet template app is now =
included. The template is designed for people writing contract based =
applications. It provides a simple app that can be copy/pasted, which =
connects to the P2P network, manages a wallet, and provides a GUI that =
shows progress, balance, address+qrcode for receiving money and has a =
button that is used to empty the wallet out. It's designed to have an =
attractive and modern look, with tasteful animations and =
artwork.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">Micropayment channels got many big =
improvements to the API and implementation. The release in 0.10 can be =
seen as a beta, in this release the micropayments code has been taken =
for a test drive for a couple of real apps and many rough edges polished =
as a result.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">The default USER_THREAD executor can now be =
replaced, allowing a 1-line switch of all callbacks onto a thread of =
your choice instead of needing to override each callback, each time. =
This should simplify and clean up the GUI code of wallet apps =
significantly.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">The WalletTool&nbsp;command line app has a =
more convenient user interface now.</span></li><li style=3D"margin-bottom:=
 0.3em;"><span style=3D"font-size: 14px;">A new DNS seed has been added. =
The seed is run by Christian Decker, from ETH Zurich.</span></li><li =
style=3D"margin-bottom: 0.3em;"><span style=3D"font-size: =
14px;">bitcoinj 0.11 will shortly be available via Maven Central. Please =
use the dependency verifier plugin and/or check the PGP signatures on =
the uploads, if you use this!</span></li></ul><p style=3D"line-height: =
1.25em; max-width: 64em;"><b style=3D"font-size: 14px;">Smaller =
improvements</b></p><ul style=3D"padding-left: 25px; max-width: =
62em;"><li style=3D"margin-bottom: 0.3em;"><span style=3D"font-size: =
14px;">We finished adding nullity annotations to the API. You should now =
be able to assume that any method not annotated with @Nullable won't =
ever return null values.</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">The&nbsp;<tt style=3D"max-width: =
66em;">WalletAppKit</tt>&nbsp;got a bunch of new features and =
convenience APIs.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">The wallet will now create inputs with dummy =
signatures if the private key for an output is missing, rather than =
throwing an exception. You can then edit the input later to substitute =
in a real signature. This is useful when the signing is being done =
elsewhere, outside of the library.</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">In full verification mode, =
execution of scripts (i.e. checking signatures) can now be switched off. =
This is useful if you trust the source of the chain and just want to =
calculate the UTXO set.</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">The wallet risk analysis code =
is now pluggable, better documented and checks for finality in a more =
sensible way.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">Various memory usage and flow control =
optimisations were made to allow much larger wallets to sync on =
Android.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">The transaction broadcast algorithm was =
changed to be more robust.</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">Double spend handling in the =
wallet was improved.</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">Generated signatures now use =
canonical S values. This will aid a future hard-forking rule change =
which bans malleable signatures.</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">Some fixes were made for enable =
usage with the Orchid Tor library. Further support for Tor is planned =
for future releases.</span></li></ul><p style=3D"line-height: 1.25em; =
max-width: 64em;"><b style=3D"font-size: 14px;">Notable bug =
fixes</b></p><ul style=3D"padding-left: 25px; max-width: 62em;"><li =
style=3D"margin-bottom: 0.3em;"><span style=3D"font-size: 14px;">Some =
hard-forking full verification bugs were fixed.</span></li><li =
style=3D"margin-bottom: 0.3em;"><span style=3D"font-size: 14px;">Thanks =
to Miron,&nbsp;<tt style=3D"max-width: 66em;">PeerGroup</tt>&nbsp;now =
performs exponential backoff for peer connections, for instance if we =
cannot connect to them or if they disconnect us. This resolves an =
annoying bug in which if the library was configured with a single peer =
that was down, it would spin in a tight loop consuming =
battery.</span></li></ul><p style=3D"line-height: 1.25em; max-width: =
64em;"><b style=3D"font-size: 14px;">API changes</b></p><ul =
style=3D"padding-left: 25px; max-width: 62em;"><li style=3D"margin-bottom:=
 0.3em;"><span style=3D"font-size: 14px;">Some functionality of the =
Wallet class was moved into separate classes under the wallet =
package.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">The micropayments API and protocol changed. =
New clients/servers are not compatible with apps running against =
previous releases.</span></li><li style=3D"margin-bottom: 0.3em;"><span =
style=3D"font-size: 14px;">The Wallet sendCoins/completeTx methods no =
longer return booleans or null to indicate failure, they now throw =
InsufficientMoneyException&nbsp;or a subclass if the transaction cannot =
be completed. The exception object typically contains information on how =
much money is missing.</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">Some mis-named methods in the =
HD key derivation API were renamed.</span></li><li style=3D"margin-bottom:=
 0.3em;"><span style=3D"font-size: 14px;">The&nbsp;<tt style=3D"max-width:=
 66em;">WalletEventListener</tt>&nbsp;interface has an extra method for =
watching scripts now.</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">Peer discovery classes moved =
under the net.discovery package</span></li><li style=3D"margin-bottom: =
0.3em;"><span style=3D"font-size: 14px;">Any APIs that relied on Netty =
are now different.</span></li></ul><p style=3D"line-height: 1.25em; =
max-width: 64em;"><b style=3D"font-size: 14px;">New =
documentation</b></p><ul style=3D"padding-left: 25px; max-width: =
62em;"><li style=3D"margin-bottom: 0.3em;"><span style=3D"font-size: =
14px;">An article on the networking API</span></li><li =
style=3D"margin-bottom: 0.3em;"><span style=3D"font-size: 14px;">Info on =
testing your apps, and how to use regtest mode to make a private Bitcoin =
network that allows you to mine blocks instantly.</span></li><li =
style=3D"margin-bottom: 0.3em;"><span style=3D"font-size: 14px;">A =
reference table showing which API's implement which Bitcoin Improvement =
Proposals (BIPs).</span></li></ul><p style=3D"line-height: 1.25em; =
max-width: 64em;"><span style=3D"font-size: 14px;">Please note that as I =
am no longer employed by Google, after 0.11 signing the Google =
contributor license agreement will no longer be necessary. I look =
forward to welcoming contributions from Andreas Schildbach now this =
requirement has gone away. Also, in future I plan to re-namespace the =
library from com.google.bitcoin to org.bitcoinj - auto-migration scripts =
will be provided when this is done.</span></p></div></body></html>=

--Apple-Mail=_2E7F6410-F266-438C-8827-0A689511BFFB--

--Apple-Mail=_9BE00017-DEB6-456A-94B5-B595074C4DE3
Content-Disposition: attachment;
	filename=smime.p7s
Content-Type: application/pkcs7-signature;
	name=smime.p7s
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIZmzCCBjQw
ggQcoAMCAQICAR4wDQYJKoZIhvcNAQEFBQAwfTELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0
Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxKTAn
BgNVBAMTIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA3MTAyNDIxMDE1NVoX
DTE3MTAyNDIxMDE1NVowgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSsw
KQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFy
dENvbSBDbGFzcyAxIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQTCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAMcJg8zOLdgasSmkLhOrlr6KMoOMpohBllVHrdRvEg/q6r8jR+EK
75xCGhR8ToREoqe7zM9/UnC6TS2y9UKTpT1v7RSMzR0t6ndl0TWBuUr/UXBhPk+Kmy7bI4yW4urC
+y7P3/1/X7U8ocb8VpH/Clt+4iq7nirMcNh6qJR+xjOhV+VHzQMALuGYn5KZmc1NbJQYclsGkDxD
z2UbFqE2+6vIZoL+jb9x4Pa5gNf1TwSDkOkikZB1xtB4ZqtXThaABSONdfmv/Z1pua3FYxnCFmdr
/+N2JLKutIxMYqQOJebr/f/h5t95m4JgrM3Y/w7YX9d7YAL9jvN4SydHsU6n65cCAwEAAaOCAa0w
ggGpMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRTcu2SnODaywFc
fH6WNU7y1LhRgjAfBgNVHSMEGDAWgBROC+8apEBbpRdphzDKNGhD0EGu8jBmBggrBgEFBQcBAQRa
MFgwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9jYTAtBggrBgEFBQcwAoYh
aHR0cDovL3d3dy5zdGFydHNzbC5jb20vc2ZzY2EuY3J0MFsGA1UdHwRUMFIwJ6AloCOGIWh0dHA6
Ly93d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNybDAnoCWgI4YhaHR0cDovL2NybC5zdGFydHNzbC5j
b20vc2ZzY2EuY3JsMIGABgNVHSAEeTB3MHUGCysGAQQBgbU3AQIBMGYwLgYIKwYBBQUHAgEWImh0
dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwDQYJKoZIhvcNAQEFBQADggIBAAqDCH14qywG
XLhjjF6uHLkjd02hcdh9hrw+VUsv+q1eeQWB21jWj3kJ96AUlPCoEGZ/ynJNScWy6QMVQjbbMXlt
UfO4n4bGGdKo3awPWp61tjAFgraLJgDk+DsSvUD6EowjMTNx25GQgyYJ5RPIzKKR9tQW8gGK+2+R
HxkUCTbYFnL6kl8Ch507rUdPPipJ9CgJFws3kDS3gOS5WFMxcjO5DwKfKSETEPrHh7p5shuuNktv
sv6hxHTLhiMKX893gxdT3XLS9OKmCv87vkINQcNEcIIoFWbP9HORz9v3vQwR4e3ksLc2JZOAFK+s
sS5XMEoznzpihEP0PLc4dCBYjbvSD7kxgDwZ+Aj8Q9PkbvE9sIPP7ON0fz095HdThKjiVJe6vofq
+n6b1NBc8XdrQvBmunwxD5nvtTW4vtN6VY7mUCmxsCieuoBJ9OlqmsVWQvifIYf40dJPZkk9YgGT
zWLpXDSfLSplbY2LL9C9U0ptvjcDjefLTvqSFc7tw1sEhF0n/qpA2r0GpvkLRDmcSwVyPvmjFBGq
Up/pNy8ZuPGQmHwFi2/14+xeSUDG2bwnsYJQG2EdJCB6luQ57GEnTA/yKZSTKI8dDQa8Sd3zfXb1
9mOgSF0bBdXbuKhEpuP9wirslFe6fQ1t5j5R0xi72MZ8ikMu1RQZKCyDbMwazlHiMIIGNjCCBR6g
AwIBAgIDBnIfMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRD
b20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYG
A1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0EwHhcN
MTMwNDIxMDExNDU0WhcNMTQwNDIyMTMyMjMzWjBVMRkwFwYDVQQNExBraUxnVHZjUWRZY0IySldQ
MRgwFgYDVQQDDA9taWtlQHBsYW45OS5uZXQxHjAcBgkqhkiG9w0BCQEWD21pa2VAcGxhbjk5Lm5l
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANLeGOyJFqq/jERHs+8X/CwcZ+NRs80U
dYZOTblQaE5+mELLNCnL+55EWyfre8zUVHXcRdnaGETCC5S5edkBxjDxbfPD6o8R4zIoZyHpxjFd
+j98rCEsHUkvjygw2ALGp5vV3pBaLmYa323J4E+VCV6wfpQsBaQgZe9yLE44hRfJ12ObpwVIJrao
To6ehX++Kn/tKMhe4WQuPm4gDHGFQHzisIf9/03Dn9kRIeqhxjfIXT6osiQPhdLi76Ijzi2UabHr
jGpivhWQoY+hdLTuPsCKw3Z/Mp2K7nGjPPuHIyRshbPys9Epcx/h81XJGTAFqbswHJwfu6tdV0Gp
FOHwzq0CAwEAAaOCAtUwggLRMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdJQQWMBQGCCsG
AQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQUyEcJY3IWy2yXzEK+hzh7tO19psUwHwYDVR0jBBgw
FoAUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwGgYDVR0RBBMwEYEPbWlrZUBwbGFuOTkubmV0MIIBTAYD
VR0gBIIBQzCCAT8wggE7BgsrBgEEAYG1NwECAzCCASowLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cu
c3RhcnRzc2wuY29tL3BvbGljeS5wZGYwgfcGCCsGAQUFBwICMIHqMCcWIFN0YXJ0Q29tIENlcnRp
ZmljYXRpb24gQXV0aG9yaXR5MAMCAQEagb5UaGlzIGNlcnRpZmljYXRlIHdhcyBpc3N1ZWQgYWNj
b3JkaW5nIHRvIHRoZSBDbGFzcyAxIFZhbGlkYXRpb24gcmVxdWlyZW1lbnRzIG9mIHRoZSBTdGFy
dENvbSBDQSBwb2xpY3ksIHJlbGlhbmNlIG9ubHkgZm9yIHRoZSBpbnRlbmRlZCBwdXJwb3NlIGlu
IGNvbXBsaWFuY2Ugb2YgdGhlIHJlbHlpbmcgcGFydHkgb2JsaWdhdGlvbnMuMDYGA1UdHwQvMC0w
K6ApoCeGJWh0dHA6Ly9jcmwuc3RhcnRzc2wuY29tL2NydHUxLWNybC5jcmwwgY4GCCsGAQUFBwEB
BIGBMH8wOQYIKwYBBQUHMAGGLWh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9zdWIvY2xhc3MxL2Ns
aWVudC9jYTBCBggrBgEFBQcwAoY2aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2VydHMvc3ViLmNs
YXNzMS5jbGllbnQuY2EuY3J0MCMGA1UdEgQcMBqGGGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tLzAN
BgkqhkiG9w0BAQUFAAOCAQEAd9sNcxjNTqAQyyRBCsaZKAQKVlT7zN4wqw8DTfnP4wXh6ycgayxg
5Ga6qy85aitivfMcyJuM7ojAWXBjBAlKIFYL+dlPByWFFVxaAsYD/rhhLP1t+nGHLA06YLtz+pJo
icODvOoyxlPTp66qeu/TMT8WTaO5Qpdr0Tn3MLPMwJN7BewLng8zpxoOV/u/xrmpkMV2PwlpTonb
L9VNUWYI0VsBG/0MDiLEQw6rg668gMRK06bM8GovzLU7i2z2Q0tz1kKeYKHAluC1N84qrO3V9tkp
oNDFPHlGfdmdkJDZeW7gF99+kCQVqr5pIadbp0Tmj7Kttwou1juSa/iaDgoMyDCCBm8wggRXoAMC
AQICEADVy4nCkwCb7b0BS9wQlgIwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCQ0gxFTATBgNV
BAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWduIFBsYXRpbnVtIENBIC0gRzIwHhcN
MTAwMzA4MTQwNTA0WhcNMjUwMzA0MTQwNTA0WjBXMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
c3NTaWduIEFHMTEwLwYDVQQDEyhTd2lzc1NpZ24gU3Vpc3NlSUQgUGxhdGludW0gQ0EgMjAxMCAt
IEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4cSEEXIyNDHcWYj3QrVO/5OBfrIU
aK4au+FEcSFe4MvQ9/wV3p9DGSTf8vljcgHNPIYo4iHYh8xJVn7HK7PG6yS+JnoQsl5c8DI7UE5Z
W/kjfHj45W+rDmyhntQqG7FjPZQoPWdlC2lGkV2NEtenU+U0jXf2NpQw3LiPtF3CjliXr8BdusJk
vUm0ItfaJabF4+ygFa9qAm9YLGYaMNck17CoKsCVtDdaFKjBm3ColZeB5GAEZTwdBwFnHNp9fXvn
+QuNwhE5wMZT46pVXNbJlCrnEdblmiWEhei9jB5381hSsKai/zLaldVQ/aSu10WYg5KKkUfSWVVS
cT+j6PtM2QIDAQABo4ICQzCCAj8wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFOlEhoCS6k5Qd8nnkghC11/AwiVCMB8GA1UdIwQYMBaAFFCvzAeHFUdvOMW0ZdHe
larp35zMMIH/BgNVHR8EgfcwgfQwR6BFoEOGQWh0dHA6Ly9jcmwuc3dpc3NzaWduLm5ldC81MEFG
Q0MwNzg3MTU0NzZGMzhDNUI0NjVEMURFOTVBQUU5REY5Q0NDMIGooIGloIGihoGfbGRhcDovL2Rp
cmVjdG9yeS5zd2lzc3NpZ24ubmV0L0NOPTUwQUZDQzA3ODcxNTQ3NkYzOEM1QjQ2NUQxREU5NUFB
RTlERjlDQ0MlMkNPPVN3aXNzU2lnbiUyQ0M9Q0g/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9i
YXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MGEGA1UdIARaMFgwVgYEVR0gADBO
MEwGCCsGAQUFBwIBFkBodHRwOi8vcmVwb3NpdG9yeS5zd2lzc3NpZ24uY29tL1N3aXNzU2lnbi1Q
bGF0aW51bS1DUC1DUFMtUjMucGRmMHQGCCsGAQUFBwEBBGgwZjBkBggrBgEFBQcwAoZYaHR0cDov
L3N3aXNzc2lnbi5uZXQvY2dpLWJpbi9hdXRob3JpdHkvZG93bmxvYWQvNTBBRkNDMDc4NzE1NDc2
RjM4QzVCNDY1RDFERTk1QUFFOURGOUNDQzANBgkqhkiG9w0BAQUFAAOCAgEAOoY+H9Ann9SpqVsH
Be34r3tt2coVn5386F0UiH1IhaWNMVZoq0/sKjXuWp+kZrkNAqWwhvk4qghllxtngI7DSG4+1/9S
Gnpe8DTvngRHesAzVkbHfCoNqlKGBnjCp6i+cdmzOb3opj0MCd5kQkPksw3YTkBXJDiNaU43YRRX
b1uEAgQbizKkBgxZGpjDa4FSs5ry+Yq2rXeaUlPWmCR9wZS5kZ1anyfwyRSmFQK/bPMikCw9ySe2
8Dtz9nMNwZmHNGvhGYUF+F0QHMb+sdbGx6TD465fqdYe5M7/YpElRvS6jKOPScqUZoq0xxrBakc4
XPQgNOCrCRu0PKgROWeUGv3zZw8uY5Xy5DJoe7F7anxEJgTw9A41S0WDh75Iwjr9l91S9IzeiGR3
g6S6hrek98PWjdHmAfIo9FHGCSXbJFfa958h82QKnydUy79enXwRcPbvlw1FoTkBWgc0uceIx3jV
MlU7NyE+0PCiMIWM/YBbn0B0KmTYb2hdde8YDGp2M+qbW2wQv1gjC9vtm0Ens1bemN3GgeWQxQXM
AYXDJWb+dFy1sOIwvhzp31ei06x4C3EuiQXINzkQdgOL/7b5e5r23M4xWdISv9IEHwPc4IuXJ2NB
rB8zk9RmZRcQOjeHdwDM7n+i3FlPjL2/StV28qIuPiwzYjQhzQOBQM+7xd4wggayMIIFmqADAgEC
Ag8A3Hz8Etjr03yOomWvEiEwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQ0gxFTATBgNVBAoT
DFN3aXNzU2lnbiBBRzExMC8GA1UEAxMoU3dpc3NTaWduIFN1aXNzZUlEIFBsYXRpbnVtIENBIDIw
MTAgLSBHMjAeFw0xMzExMjExNDI5NDhaFw0xNDExMjExNDI5NDhaMGcxJzAlBgNVBAMTHk1pY2hh
ZWwgSGVhcm4gKEF1dGhlbnRpY2F0aW9uKTEeMBwGCSqGSIb3DQEJARYPbWlrZUBwbGFuOTkubmV0
MRwwGgYDVQQFExMxMzAwLTgwMTUtMTU4Ni05MTE4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAhgAkK5PH/nRIcQcBZamR4P7jkS96g+ud/Tqi32bElgSzuuW6aWzOE0n/XR5HWf40mDx1
dRj0WM3dt/7Cl1KomoShfIsNxHxcG420vpeoQNQd8r8TokojCX6Y5l+TlAvSPdGhIyEOXG3puryO
4XBZNYHVkZ9fwhC7bau1sbn7mcU2qba/TwkRDGIFSiCml6z8rBMiJ/cSII2QcNgS+ziv82Uhz4i4
GVNPOmegboHkE8qT+gouEeVWMLivXDbAwQF1fBaE75z/Wr+w0K6YJtS7oAbgwIEJpe8/1/OS8HI8
46+02eMxThD+vqwnxcQo+EpicvoqmOsjnLErQG1cTA556QIDAQABo4IDaTCCA2UwTwYDVR0RBEgw
RoEPbWlrZUBwbGFuOTkubmV0oDMGCisGAQQBgjcUAgOgJQwjMTMwMC04MDE1LTE1ODYtOTExOEB1
cG4uc3Vpc3NlaWQuY2gwDgYDVR0PAQH/BAQDAgeAMCkGA1UdJQQiMCAGCCsGAQUFBwMCBggrBgEF
BQcDBAYKKwYBBAGCNxQCAjAdBgNVHQ4EFgQUp8JGBqJ9qpKjNlth17DhQ+pIAG8wHwYDVR0jBBgw
FoAU6USGgJLqTlB3yeeSCELXX8DCJUIwgf8GA1UdHwSB9zCB9DBHoEWgQ4ZBaHR0cDovL2NybC5z
d2lzc3NpZ24ubmV0L0U5NDQ4NjgwOTJFQTRFNTA3N0M5RTc5MjA4NDJENzVGQzBDMjI1NDIwgaig
gaWggaKGgZ9sZGFwOi8vZGlyZWN0b3J5LnN3aXNzc2lnbi5uZXQvQ049RTk0NDg2ODA5MkVBNEU1
MDc3QzlFNzkyMDg0MkQ3NUZDMEMyMjU0MiUyQ089U3dpc3NTaWduJTJDQz1DSD9jZXJ0aWZpY2F0
ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnQwgbYG
A1UdIASBrjCBqzCBmwYIYIV0BRoBAQIwgY4wTAYIKwYBBQUHAgEWQGh0dHA6Ly9yZXBvc2l0b3J5
LnN3aXNzc2lnbi5jb20vU3dpc3NTaWduLVBsYXRpbnVtLUNQLUNQUy1SMy5wZGYwPgYIKwYBBQUH
AgIwMhowU3Vpc3NlSUQgaWRlbnRpdHkgYW5kIGF1dGhlbnRpY2F0aW9uIGNlcnRpZmljYXRlMAsG
CWCFdAFZAQEBATCB2wYIKwYBBQUHAQEEgc4wgcswZAYIKwYBBQUHMAKGWGh0dHA6Ly9zd2lzc3Np
Z24ubmV0L2NnaS1iaW4vYXV0aG9yaXR5L2Rvd25sb2FkL0U5NDQ4NjgwOTJFQTRFNTA3N0M5RTc5
MjA4NDJENzVGQzBDMjI1NDIwYwYIKwYBBQUHMAGGV2h0dHA6Ly9wbGF0aW51bS1zdWlzc2VpZC1n
Mi5vY3NwLnN3aXNzc2lnbi5uZXQvRTk0NDg2ODA5MkVBNEU1MDc3QzlFNzkyMDg0MkQ3NUZDMEMy
MjU0MjANBgkqhkiG9w0BAQUFAAOCAQEAQENx9hsahnGo3u/8ksy53OxZkaSISe6e4XT1i/o0qZ6D
Kd9noZ2LvbclyyNo3Q9W4TU1pP41yf4JcL25sx1z7U/e9Ze7vTZN/GZ+gv20gaCqm/cQWF19PjzT
PqYXvJjGK6euiQzACN/IEjxeuzaiml02jpFnH1VrNvgfib/WQCL9y1dK6aLx9noP3CXCnd0ZWhYI
dh1e4NZXetRFKII1z/iAlevHmEdLAv0XgKFA6RnBdxCFdw6E7cz2TUS3m59IkrE3z/3swGV+lg7Q
60ZNMAeskg1+zhNpaY9FyBdRDXk2K43ItgE5Mr8+LCdGwoIofXubME12En6DuOnQ38mqGzGCA0Qw
ggNAAgEBMGowVzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzExMC8GA1UEAxMo
U3dpc3NTaWduIFN1aXNzZUlEIFBsYXRpbnVtIENBIDIwMTAgLSBHMgIPANx8/BLY69N8jqJlrxIh
MAkGBSsOAwIaBQCgggGvMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
DTE0MDIwNDEyMDExMlowIwYJKoZIhvcNAQkEMRYEFHXhqBtLVOR/JFPXJIJO5CxDW+nuMIGlBgkr
BgEEAYI3EAQxgZcwgZQwgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSsw
KQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFy
dENvbSBDbGFzcyAxIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQQIDBnIfMIGnBgsqhkiG
9w0BCRACCzGBl6CBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzAp
BgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0
Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENBAgMGch8wDQYJKoZIhvcN
AQEBBQAEggEAB1POyiKlqRl/nKE/qGOMfVNhBRRyaO7IVquDJ+swMvTOmmTVIzjEqdVsO5yOC+hv
2qX/aFx48kZ6cUWNBPITmKPE1KydE/oGe++QewoHXbHypdX5s99/rqqgXeA55b4VbmTPJdJd6Pca
+OYmHznzTK+dXNen2UrrPH6G8w5lFLxfOJIrlLv7KHBH0N1o7Um2o/wXTBqtFvt9aPuD9dlhomM1
tLtyXCY2CEZ8uqkELhD1+dFqCJ+QsCdPYoRRMKIrXHf48JwfNkdqxjfngAyf570QQZnZresMK9Au
HSIYO2aDdq7C0r/pKfIMZeKsRBufcxNLAigQFLavdhPz2yi45gAAAAAAAA==

--Apple-Mail=_9BE00017-DEB6-456A-94B5-B595074C4DE3--