Date: Sun, 06 Oct 2013 21:01:04 +0200 Message-ID: From: Davide Brini MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="--_com.android.email_4628067971907" Subject: Re: [Openvpn-devel] [PATCH] Allow inlining of --auth-user-pass List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max.Muster@...1832... Cc: openvpn-devel@lists.sourceforge.net ----_com.android.email_4628067971907 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIGZvciByZXBvcnRpbmchIEkgaGF2ZSBwb29yIGNvbm5lY3Rpdml0eSBhbmQgbGl0dGxl IHRpbWUgdGhpcyB3ZWVrLCBidXQgSSB3aWxsIGxvb2sgYXQgaXQgd2hlbiBJIGhhdmUgYSBjaGFu Y2UuCgpTZW50IGZyb20gbW9iaWxlCgpNYXguTXVzdGVyQC4uLjE4MzIuLi4gd3JvdGU6CgphbmQg YW5vdGhlciBwcm9ibGVtOgoKQ29uZmlncyB3aXRob3V0ICJhdXRoLXVzZXItcGFzcyIgd2lsbCBz ZWdmYXVsdCwgZm9yIGluIG9wdGlvbnNfcG9zdHByb2Nlc3NfdmVyaWZ5X2NlIHlvdSBkbyBhCgpz dHJlcShvcHRpb25zLT5hdXRoX3VzZXJfcGFzc19maWxlLCAic3RkaW4iKQoKd2l0aG91dCBjaGVj a2luZyBmaXJzdCwgaWYgb3B0aW9ucy0+YXV0aF91c2VyX3Bhc3NfZmlsZSBpcyBub3QgTlVMTC4K CgpzbyBoZXJlIGlzIGZpeCBudW1iZXIgdGhyZWUgZm9yIHNyYy9vcGVudnBuL21pc2MuYyAoaW4g ZmFjdCwgaXQgaXMgIm9sZCIgbnVtYmVyIG9uZSBhbmQgdGhyZWUpIDstKQoKWy4uLl0KI2lmIFAy TVAKLcKgIGlmIChvcHRpb25zLT5hdXRoX3VzZXJfcGFzc19maWxlICYmICFvcHRpb25zLT5wdWxs KQorwqAgaWYgKCAoIG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGUgfHwgb3B0aW9ucy0+YXV0 aF91c2VyX3Bhc3NfZmlsZV9pbmxpbmUpICYmICFvcHRpb25zLT5wdWxsKQrCoMKgwqDCoCBtc2cg KE1fVVNBR0UsICItLWF1dGgtdXNlci1wYXNzIHJlcXVpcmVzIC0tcHVsbCIpOworwqAgCivCoCBp ZiAoICggKG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGUgJiYgIXN0cmVxKG9wdGlvbnMtPmF1 dGhfdXNlcl9wYXNzX2ZpbGUsICJzdGRpbiIpKSB8fCBvcHRpb25zLT5hdXRoX3VzZXJfcGFzc19m aWxlX2lubGluZSkgJiYgb3B0aW9ucy0+YXV0aF9ub2NhY2hlKQorwqDCoMKgIG1zZyAoTV9VU0FH RSwgIkNhbm5vdCB1c2UgLS1hdXRoLW5vY2FjaGUgd2l0aCBjcmVkZW50aWFscyBmcm9tIGZpbGUi KTsKKworI2lmZGVmIEVOQUJMRV9DTElFTlRfQ1IKK8KgIGlmICggKCAob3B0aW9ucy0+YXV0aF91 c2VyX3Bhc3NfZmlsZSAmJiAhc3RyZXEob3B0aW9ucy0+YXV0aF91c2VyX3Bhc3NfZmlsZSwgInN0 ZGluIikpIHx8IG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKSAmJiBvcHRpb25z LT5zY19pbmZvLmNoYWxsZW5nZV90ZXh0KQorwqDCoMKgIG1zZyAoTV9VU0FHRSwgIkNyZWRlbnRp YWxzIGNhbm5vdCBiZSBpbiBhIGZpbGUgaWYgdXNpbmcgLS1zdGF0aWMtY2hhbGxlbmdlIik7Cisj ZW5kaWYKWy4uLl0KCgpBIHF1aWNrIHRlc3QgZGlkIHdvcmsgd2l0aCBhbmQgd2l0aG91dCB1c2Vy IGF1dGhlbnRpY2F0aW9uIChvbmx5IHRlc3RlZCBpbmxpbmUgc2V0dHppbmcsIG5vdCB3aXRoIGEg ZmlsZSkuCsKgCkpvZXJnCgotLS0tLS0tLSBPcmlnaW5hbC1OYWNocmljaHQgLS0tLS0tLS0KR2Vz ZW5kZXQ6wqBTYW1zdGFnLCAwNS4gT2t0b2JlciAyMDEzIHVtIDE1OjU3IFVocgpWb246wqAiTWF4 IE11c3RlciIgPE1heC5NdXN0ZXJALi4uMTgzMi4uLj4KQW46wqAiRGF2aWRlIEJyaW5pIiA8ZGF2 ZV9ickAuLi4xMjc4Li4uPgpDYzrCoG9wZW52cG4tZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0 CkJldHJlZmY6wqBSZTogW09wZW52cG4tZGV2ZWxdIFtQQVRDSF0gQWxsb3cgaW5saW5pbmcgb2Yg LS1hdXRoLXVzZXItcGFzcwpvb3BzLCBqdXN0IHRvb2sgbXkgImRlYnVnIiB2ZXJzaW9uIG9mIHNy Yy9vcGVudnBuL3NzbC5jIC4uLgoKT2YgY291cnNlIG91dHB1dCBvZiBzdHJpbmcgbGVuZ3RoIGFu ZCBlc3BlY2lhbGx5IHBhc3N3b3JkIGluIGxvZyBmaWxlIGlzCm5vdCBpbnRlbmRlZCA7LSkKCkpv ZXJnCgotLS0tLS0tLSBPcmlnaW5hbC1OYWNocmljaHQgLS0tLS0tLS0KQmV0cmVmZjogUmU6IFtP cGVudnBuLWRldmVsXSBbUEFUQ0hdIEFsbG93IGlubGluaW5nIG9mIC0tYXV0aC11c2VyLXBhc3MK Vm9uOiBNYXguTXVzdGVyQC4uLjE4MzIuLi4KQW46IERhdmlkZSBCcmluaSA8ZGF2ZV9ickAuLi4x Mjc4Li4uPgpLb3BpZSAoQ0MpOiBvcGVudnBuLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApE YXR1bTogU2EgMDUgT2t0IDIwMTMgMTU6NDg6NDIgQ0VTVAoKPiBIaSBEYXZpZGUsCj4gbmljZSBp ZGVhLiBCdXQgSSB0aGluayBJIGZvdW5kIHR3byBzbWFsbCBidWdzOgo+IEZpcnN0LCBpdCB3b24n dCBjb21waWxlIGluIGEgY29uZmlnIHcvbyBFTkFCTEVfQ0xJRU5UX0NSIGRlZmluZWQgKHRoZXJl IGlzIG5vCj4gInNjX2luZm8iKS4KPiBTZWNvbmQsIGlmIEknbSBub3QgbWlzdGFrZW4sIG5hbWUg YW5kIHBhc3N3b3JkIGFyZSBub3QgY29waWVkIGNvcnJlY3RseToKPiBJZiAjIG9mIGNoYXJhY2h0 ZXJzIGlzIChwb3MgLSBwcmV2KSwgdGhlIGxhc3QgY2hhcmFrdGVyIGlzIGF0IFtwb3MgLSBwcmV2 IC0xXQo+IGFuZCB0byB0ZXJtaW5hdGUgdGhlIHN0cmluZyB5b3Ugc2hvdWxkIHNldCBbcG9zIC0g cHJldl0gdG8gJ1wwJy4KPiBNeSBzdWdnZXN0aW9uIChub3Qgc3VyZSwgaWYgdGhlIGZpcnN0IG9u ZSB3b3JrcyB3aXRoIG1hbmFnZW1lbnQgZW5hYmxlZCwgb25seQo+IHRlc3RlZCB3L28pLgo+IEZp eCBpbiBzcmMvb3BlbnZwbi9taXNjLmMgKGFkZCAjaWZkZWYpOgo+IFsuLi5dCj4gKwo+ICsgaWYg KCAoICFzdHJlcShvcHRpb25zLT5hdXRoX3VzZXJfcGFzc19maWxlLCAic3RkaW4iKSB8fAo+IG9w dGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKSAmJiBvcHRpb25zLT5hdXRoX25vY2Fj aGUpCj4gKyBtc2cgKE1fVVNBR0UsICJDYW5ub3QgdXNlIC0tYXV0aC1ub2NhY2hlIHdpdGggY3Jl ZGVudGlhbHMgZnJvbSBmaWxlIik7Cj4gKwo+ICsjaWZkZWYgRU5BQkxFX0NMSUVOVF9DUgo+ICsg aWYgKCAoICFzdHJlcShvcHRpb25zLT5hdXRoX3VzZXJfcGFzc19maWxlLCAic3RkaW4iKSB8fAo+ IG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKSAmJiBvcHRpb25zLT5zY19pbmZv LmNoYWxsZW5nZV90ZXh0KQo+ICsgbXNnIChNX1VTQUdFLCAiQ3JlZGVudGlhbHMgY2Fubm90IGJl IGluIGEgZmlsZSBpZiB1c2luZyAtLXN0YXRpYy1jaGFsbGVuZ2UiKTsKPiArI2VuZGlmCj4gKwo+ ICsgaWYgKG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKQo+ICsgewo+ICsgaW50 IG5faW5saW5lZCA9IDA7Cj4gWy4uLl0KPiBpbiBzcmMvb3BlbnZwbi9zc2wuYyB5byBzaG91bGQg dXNlIFtwb3MgLSBwcmV2XSBpbnN0ZWFkIG9mIFtwb3MgLSBwcmV2ICsxXQo+IFsuLi5dCj4gKyB7 Cj4gKyBzdHJuY3B5KGlubGluZWRfdXNlcm5hbWUsIHByZXYsIHBvcyAtIHByZXYpOwo+ICsgaW5s aW5lZF91c2VybmFtZVtwb3MgLSBwcmV2XSA9ICdcMCc7Cj4gKyBtc2cgKE1fSU5GTywgIlVzaW5n IGlubGluZWQgdXNlcm5hbWU6ICVzIChQT1M9JWQgUFJFVj0lZCkiLAo+IGlubGluZWRfdXNlcm5h bWUsIHBvcywgcHJldik7Cj4gKyB9Cj4gKyBlbHNlCj4gKyB7Cj4gKyBzdHJuY3B5KGlubGluZWRf cGFzc3dvcmQsIHByZXYsIHBvcyAtIHByZXYpOwo+ICsgaW5saW5lZF9wYXNzd29yZFtwb3MgLSBw cmV2XSA9ICdcMCc7Cj4gKyBtc2cgKE1fSU5GTywgIlVzaW5nIGlubGluZWQgcGFzc3dvcmQ6Cj4g Li4uKiolcyoqIixpbmxpbmVkX3Bhc3N3b3JkKTsKPiArIH0KPiBbLi4uXQo+Cj4gSSBob3BlIGl0 J3Mgby5rLiBqdXN0IHRvIGdpdmUgdGhlIGlkZWEgYnV0IG5vdCBwb3N0IGZ1bGwgcGF0Y2hlcyBh Z2Fpbi4KPgo+IFJlZ2FyZHMKPiBKb2VyZwo+ICpHZXNlbmRldDoqIERvbm5lcnN0YWcsIDAzLiBP a3RvYmVyIDIwMTMgdW0gMTA6MzAgVWhyCj4gKlZvbjoqICJEYXZpZGUgQnJpbmkiIDxkYXZlX2Jy QC4uLjEyNzguLi4+Cj4gKkFuOiogb3BlbnZwbi1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQK PiAqQmV0cmVmZjoqIFJlOiBbT3BlbnZwbi1kZXZlbF0gW1BBVENIXSBBbGxvdyBpbmxpbmluZyBv ZiAtLWF1dGgtdXNlci1wYXNzCj4gKHByZXZpb3VzIHZlcnNpb24gY29udGFpbmVkIGEgbGVmdG92 ZXIgZGVidWcgbGluZSBsZWZ0IGJ5IG1pc3Rha2UsIHNvcnJ5KQo+Cj4gVGhpcyBwYXRjaCBhbGxv d3MgaW5saW5pbmcgb2YgdGhlIC0tYXV0aC11c2VyLXBhc3MgZGlyZWN0aXZlLCBzbyBpdCBpcyBu b3cKPiBwb3NzaWJsZSB0byBkbwo+Cj4gPGF1dGgtdXNlci1wYXNzPgo+IG15dXNlcm5hbWUKPiBt eXBhc3N3b3JkCj4gPC9hdXRoLXVzZXItcGFzcz4KPgo+IG9yIHN1cHBseSBqdXN0IHRoZSB1c2Vy bmFtZSwgZWcKPgo+IDxhdXRoLXVzZXItcGFzcz4KPiBteXVzZXJuYW1lCj4gPC9hdXRoLXVzZXIt cGFzcz4KPgo+IChpbiB0aGlzIGNhc2UgdGhlIHVzZXIgaXMgcHJvbXB0ZWQgZm9yIHRoZSBwYXNz d29yZCBvbmx5KS4KPiBUaGUgbW9zdCBjaGFuZ2VkIGZpbGVzIGFyZSBvcHRpb25zLmMgKHNhbml0 eSBjaGVjayBvZiBpbmxpbmVkIGNyZWRlbnRpYWxzKQo+IGFuZCBzc2wuYyAoYWN0dWFsIHBhcnNp bmcgb2YgdGhlIGlubGluZWQgY3JlZGVudGlhbHMpLgo+Cj4gVWRhdGVzIHRvIHRoZSBkb2N1bWVu dGF0aW9uIHdpbGwgYmUgcHJvdmlkZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaCBpZiBhbmQgd2hlbgo+ IHRoZSBwcmVzZW50IHBhdGNoIGlzIGFjY2VwdGVkLgo+Cj4gQXMgZGlzY3Vzc2VkIG9uIElSQywg Zm9yIHRoZSB0aW1lIGJlaW5nIHRoZSBub24taW5saW5lZCBzeW50YXgKPgo+IGF1dGgtdXNlci1w YXNzIFt1cF0KPgo+IGlzIHN0aWxsIHN1cHBvcnRlZCBhbmQgW3VwXSBpcyBleHBlY3RlZCB0byBj b250YWluIHVzZXJuYW1lIGFuZCBwYXNzd29yZAo+IG9uIHR3byBsaW5lcy4KPgo+IFNpZ25lZC1v ZmYtYnk6IERhdmlkZSBCcmluaSA8ZGF2ZV9ickAuLi4xMjc4Li4uPgo+IC0tLQo+IHNyYy9vcGVu dnBuL2luaXQuYyB8IDYgKy0tCj4gc3JjL29wZW52cG4vbWlzYy5jIHwgMiArLQo+IHNyYy9vcGVu dnBuL29wdGlvbnMuYyB8IDU2ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiBzcmMvb3Bl bnZwbi9vcHRpb25zLmggfCAyICsKPiBzcmMvb3BlbnZwbi9zc2wuYyB8IDk4ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPiBzcmMvb3BlbnZwbi9zc2wu aCB8IDIgKy0KPiA2IGZpbGVzIGNoYW5nZWQsIDEzMSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlv bnMoLSkKPgo+IGRpZmYgLS1naXQgYS9zcmMvb3BlbnZwbi9pbml0LmMgYi9zcmMvb3BlbnZwbi9p bml0LmMKPiBpbmRleCAwMzFmYjIwLi5iMTFhZThhIDEwMDY0NAo+IC0tLSBhL3NyYy9vcGVudnBu L2luaXQuYwo+ICsrKyBiL3NyYy9vcGVudnBuL2luaXQuYwo+IEBAIC00MDAsMTIgKzQwMCwxMiBA QCBpbml0X3F1ZXJ5X3Bhc3N3b3JkcyAoc3RydWN0IGNvbnRleHQgKmMpCj4KPiAjaWYgUDJNUAo+ IC8qIEF1dGggdXNlci9wYXNzIGlucHV0ICovCj4gLSBpZiAoYy0+b3B0aW9ucy5hdXRoX3VzZXJf cGFzc19maWxlKQo+ICsgaWYgKGMtPm9wdGlvbnMuYXV0aF91c2VyX3Bhc3NfZmlsZSB8fCBjLT5v cHRpb25zLmF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKQo+IHsKPiAjaWZkZWYgRU5BQkxFX0NM SUVOVF9DUgo+IC0gYXV0aF91c2VyX3Bhc3Nfc2V0dXAgKGMtPm9wdGlvbnMuYXV0aF91c2VyX3Bh c3NfZmlsZSwgJmMtPm9wdGlvbnMuc2NfaW5mbyk7Cj4gKyBhdXRoX3VzZXJfcGFzc19zZXR1cCAo Yy0+b3B0aW9ucy5hdXRoX3VzZXJfcGFzc19maWxlLAo+IGMtPm9wdGlvbnMuYXV0aF91c2VyX3Bh c3NfZmlsZV9pbmxpbmUsICZjLT5vcHRpb25zLnNjX2luZm8pOwo+ICNlbHNlCj4gLSBhdXRoX3Vz ZXJfcGFzc19zZXR1cCAoYy0+b3B0aW9ucy5hdXRoX3VzZXJfcGFzc19maWxlLCBOVUxMKTsKPiAr IGF1dGhfdXNlcl9wYXNzX3NldHVwIChjLT5vcHRpb25zLmF1dGhfdXNlcl9wYXNzX2ZpbGUsCj4g Yy0+b3B0aW9ucy5hdXRoX3VzZXJfcGFzc19maWxlX2lubGluZSwgTlVMTCk7Cj4gI2VuZGlmCj4g fQo+ICNlbmRpZgo+IGRpZmYgLS1naXQgYS9zcmMvb3BlbnZwbi9taXNjLmMgYi9zcmMvb3BlbnZw bi9taXNjLmMKPiBpbmRleCA0Njg4NDQ0Li4wNWJjMmYwIDEwMDY0NAo+IC0tLSBhL3NyYy9vcGVu dnBuL21pc2MuYwo+ICsrKyBiL3NyYy9vcGVudnBuL21pc2MuYwo+IEBAIC0xMDM2LDcgKzEwMzYs NyBAQCBnZXRfdXNlcl9wYXNzX2NyIChzdHJ1Y3QgdXNlcl9wYXNzICp1cCwKPgo+IGlmICghdXAt PmRlZmluZWQpCj4gewo+IC0gY29uc3QgYm9vbCBmcm9tX3N0ZGluID0gKCFhdXRoX2ZpbGUgfHwg IXN0cmNtcCAoYXV0aF9maWxlLCAic3RkaW4iKSk7Cj4gKyBjb25zdCBib29sIGZyb21fc3RkaW4g PSAoIWF1dGhfZmlsZSB8fCBzdHJlcSAoYXV0aF9maWxlLCAic3RkaW4iKSk7Cj4KPiBpZiAoZmxh Z3MgJiBHRVRfVVNFUl9QQVNTX1BSRVZJT1VTX0NSRURTX0ZBSUxFRCkKPiBtc2cgKE1fV0FSTiwg Ik5vdGU6IHByZXZpb3VzICclcycgY3JlZGVudGlhbHMgZmFpbGVkIiwgcHJlZml4KTsKPiBkaWZm IC0tZ2l0IGEvc3JjL29wZW52cG4vb3B0aW9ucy5jIGIvc3JjL29wZW52cG4vb3B0aW9ucy5jCj4g aW5kZXggNGQwMjcxZi4uNmYyZWE2NiAxMDA2NDQKPiAtLS0gYS9zcmMvb3BlbnZwbi9vcHRpb25z LmMKPiArKysgYi9zcmMvb3BlbnZwbi9vcHRpb25zLmMKPiBAQCAtMTIzMyw2ICsxMjMzLDcgQEAg c2hvd19wMm1wX3Bhcm1zIChjb25zdCBzdHJ1Y3Qgb3B0aW9ucyAqbykKPiBTSE9XX0JPT0wgKGNs aWVudCk7Cj4gU0hPV19CT09MIChwdWxsKTsKPiBTSE9XX1NUUiAoYXV0aF91c2VyX3Bhc3NfZmls ZSk7Cj4gKyBTSE9XX1NUUiAoYXV0aF91c2VyX3Bhc3NfZmlsZV9pbmxpbmUpOwo+Cj4gZ2NfZnJl ZSAoJmdjKTsKPiB9Cj4gQEAgLTIwODAsNyArMjA4MSw3IEBAIG9wdGlvbnNfcG9zdHByb2Nlc3Nf dmVyaWZ5X2NlIChjb25zdCBzdHJ1Y3Qgb3B0aW9ucwo+ICpvcHRpb25zLCBjb25zdCBzdHJ1Y3Qg Y29ubmUKPiBpZiAob3B0aW9ucy0+aWZjb25maWdfaXB2Nl9sb2NhbCAmJiAhb3B0aW9ucy0+dHVu X2lwdjYgKQo+IG1zZyAoTV9JTkZPLCAiV2FybmluZzogLS1pZmNvbmZpZy1pcHY2IHdpdGhvdXQg LS10dW4taXB2NiB3aWxsIG5vdCBkbyBJUHY2Iik7Cj4KPiAtIGlmIChvcHRpb25zLT5hdXRoX3Vz ZXJfcGFzc19maWxlKQo+ICsgaWYgKCBvcHRpb25zLT5hdXRoX3VzZXJfcGFzc19maWxlIHx8IG9w dGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lICkKPiBtc2cgKE1fVVNBR0UsICItLWF1 dGgtdXNlci1wYXNzIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1tb2RlIHNlcnZlciAoaXQgc2hvdWxk IGJlCj4gdXNlZCBvbiB0aGUgY2xpZW50IHNpZGUgb25seSkiKTsKPiBpZiAob3B0aW9ucy0+Y2Nk X2V4Y2x1c2l2ZSAmJiAhb3B0aW9ucy0+Y2xpZW50X2NvbmZpZ19kaXIpCj4gbXNnIChNX1VTQUdF LCAiLS1jY2QtZXhjbHVzaXZlIG11c3QgYmUgdXNlZCB3aXRoIC0tY2xpZW50LWNvbmZpZy1kaXIi KTsKPiBAQCAtMjI3NCw3ICsyMjc1LDcgQEAgb3B0aW9uc19wb3N0cHJvY2Vzc192ZXJpZnlfY2Ug KGNvbnN0IHN0cnVjdCBvcHRpb25zCj4gKm9wdGlvbnMsIGNvbnN0IHN0cnVjdCBjb25uZQo+IGlm IChzdW0gPT0gMCkKPiB7Cj4gI2lmIFAyTVAKPiAtIGlmICghb3B0aW9ucy0+YXV0aF91c2VyX3Bh c3NfZmlsZSkKPiArIGlmICghb3B0aW9ucy0+YXV0aF91c2VyX3Bhc3NfZmlsZSAmJiAhb3B0aW9u cy0+YXV0aF91c2VyX3Bhc3NfZmlsZV9pbmxpbmUpCj4gI2VuZGlmCj4gbXNnIChNX1VTQUdFLCAi Tm8gY2xpZW50LXNpZGUgYXV0aGVudGljYXRpb24gbWV0aG9kIGlzIHNwZWNpZmllZC4gWW91IG11 c3QgdXNlCj4gZWl0aGVyIC0tY2VydC8tLWtleSwgLS1wa2NzMTIsIG9yIC0tYXV0aC11c2VyLXBh c3MiKTsKPiB9Cj4gQEAgLTIzNTAsOCArMjM1MSw0MiBAQCBvcHRpb25zX3Bvc3Rwcm9jZXNzX3Zl cmlmeV9jZSAoY29uc3Qgc3RydWN0IG9wdGlvbnMKPiAqb3B0aW9ucywgY29uc3Qgc3RydWN0IGNv bm5lCj4gI2VuZGlmIC8qIEVOQUJMRV9TU0wgKi8KPgo+ICNpZiBQMk1QCj4gLSBpZiAob3B0aW9u cy0+YXV0aF91c2VyX3Bhc3NfZmlsZSAmJiAhb3B0aW9ucy0+cHVsbCkKPiArIGlmICggKCBvcHRp b25zLT5hdXRoX3VzZXJfcGFzc19maWxlIHx8IG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGVf aW5saW5lKSAmJgo+ICFvcHRpb25zLT5wdWxsKQo+IG1zZyAoTV9VU0FHRSwgIi0tYXV0aC11c2Vy LXBhc3MgcmVxdWlyZXMgLS1wdWxsIik7Cj4gKwo+ICsgaWYgKCAoICFzdHJlcShvcHRpb25zLT5h dXRoX3VzZXJfcGFzc19maWxlLCAic3RkaW4iKSB8fAo+IG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNz X2ZpbGVfaW5saW5lKSAmJiBvcHRpb25zLT5hdXRoX25vY2FjaGUpCj4gKyBtc2cgKE1fVVNBR0Us ICJDYW5ub3QgdXNlIC0tYXV0aC1ub2NhY2hlIHdpdGggY3JlZGVudGlhbHMgZnJvbSBmaWxlIik7 Cj4gKwo+ICsgaWYgKCAoICFzdHJlcShvcHRpb25zLT5hdXRoX3VzZXJfcGFzc19maWxlLCAic3Rk aW4iKSB8fAo+IG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKSAmJiBvcHRpb25z LT5zY19pbmZvLmNoYWxsZW5nZV90ZXh0KQo+ICsgbXNnIChNX1VTQUdFLMKgIkNyZWRlbnRpYWxz IGNhbm5vdCBiZSBpbiBhIGZpbGUgaWYgdXNpbmcgLS1zdGF0aWMtY2hhbGxlbmdlIik7Cj4gKwo+ ICsgaWYgKG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKQo+ICsgewo+ICsgaW50 IG5faW5saW5lZCA9IDA7Cj4gKyBjb25zdCBjaGFyICpwb3MgPSBvcHRpb25zLT5hdXRoX3VzZXJf cGFzc19maWxlX2lubGluZTsKPiArIGNvbnN0IGNoYXIgKnByZXYgPSBwb3M7Cj4gKwo+ICsgaWYg KCBzdHJsZW4ocG9zKSA9PSAwICkKPiArIG1zZyAoTV9VU0FHRSwgIkludmFsaWQgZm9ybWF0IGZv ciBpbmxpbmVkIC0tYXV0aC11c2VyLXBhc3MiKTsKPiArCj4gKyB3aGlsZSggKHBvcyA9IHN0cmNo cihwb3MsICdcbicpKSAhPSBOVUxMICkKPiArIHsKPiArIG5faW5saW5lZCsrOwo+ICsKPiArIGlm IChuX2lubGluZWQgPiAyKQo+ICsgbXNnIChNX1VTQUdFLCAiVG9vIG1hbnkgbGluZXMgaW4gaW5s aW5lZCAtLWF1dGgtdXNlci1wYXNzIik7Cj4gKwo+ICsgaWYgKCBwb3MgLSBwcmV2ID4gVVNFUl9Q QVNTX0xFTiAtIDEgKQo+ICsgbXNnIChNX1VTQUdFLCAiTGluZSB0b28gbG9uZyBpbiBpbmxpbmVk IC0tYXV0aC11c2VyLXBhc3MiKTsKPiArCj4gKyBwb3MrKzsKPiArIHByZXYgPSBwb3M7Cj4gKyB9 Cj4gKwo+ICsgaWYgKCAobl9pbmxpbmVkID09IDApIHx8ICgqcHJldiAhPSAnXDAnKSApCj4gKyBt c2cgKE1fVVNBR0UsICJJbnZhbGlkIGZvcm1hdCBmb3IgaW5saW5lZCAtLWF1dGgtdXNlci1wYXNz Iik7Cj4gKwo+ICsgfQo+ICNlbmRpZgo+Cj4gdW5pbml0X29wdGlvbnMgKCZkZWZhdWx0cyk7Cj4g QEAgLTI3MTksOSArMjc1NCwxMCBAQCBvcHRpb25zX3Bvc3Rwcm9jZXNzX2ZpbGVjaGVja3MgKHN0 cnVjdCBvcHRpb25zICpvcHRpb25zKQo+ICItLW1hbmFnZW1lbnQgdXNlci9wYXNzd29yZCBmaWxl Iik7Cj4gI2VuZGlmIC8qIEVOQUJMRV9NQU5BR0VNRU5UICovCj4gI2lmIFAyTVAKPiAtIGVycnMg fD0gY2hlY2tfZmlsZV9hY2Nlc3MgKENIS0FDQ19GSUxFfENIS0FDQ19BQ1BUU1RESU4sCj4gLSBv cHRpb25zLT5hdXRoX3VzZXJfcGFzc19maWxlLCBSX09LLAo+IC0gIi0tYXV0aC11c2VyLXBhc3Mi KTsKPiArIGlmICghc3RyZXEob3B0aW9ucy0+YXV0aF91c2VyX3Bhc3NfZmlsZSwgSU5MSU5FX0ZJ TEVfVEFHKSkKPiArIGVycnMgfD0gY2hlY2tfZmlsZV9hY2Nlc3MgKENIS0FDQ19GSUxFfENIS0FD Q19BQ1BUU1RESU4sCj4gKyBvcHRpb25zLT5hdXRoX3VzZXJfcGFzc19maWxlLCBSX09LLAo+ICsg Ii0tYXV0aC11c2VyLXBhc3MiKTsKPiAjZW5kaWYgLyogUDJNUCAqLwo+Cj4gLyogKiogU3lzdGVt IHJlbGF0ZWQgKiogKi8KPiBAQCAtNTg5NCw3ICs1OTMwLDEyIEBAIGFkZF9vcHRpb24gKHN0cnVj dCBvcHRpb25zICpvcHRpb25zLAo+IFZFUklGWV9QRVJNSVNTSU9OIChPUFRfUF9HRU5FUkFMKTsK PiBpZiAocFsxXSkKPiB7Cj4gLSBvcHRpb25zLT5hdXRoX3VzZXJfcGFzc19maWxlID0gcFsxXTsK PiArIG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGUgPSBwWzFdOwo+ICsgaWYgKHN0cmVxIChw WzFdLCBJTkxJTkVfRklMRV9UQUcpICYmIHBbMl0pCj4gKyB7Cj4gKyBvcHRpb25zLT5hdXRoX3Vz ZXJfcGFzc19maWxlID0gInN0ZGluIjsKPiArIG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNzX2ZpbGVf aW5saW5lID0gcFsyXTsKPiArIH0KPiB9Cj4gZWxzZQo+IG9wdGlvbnMtPmF1dGhfdXNlcl9wYXNz X2ZpbGUgPSAic3RkaW4iOwo+IEBAIC02NTkxLDYgKzY2MzIsNyBAQCBhZGRfb3B0aW9uIChzdHJ1 Y3Qgb3B0aW9ucyAqb3B0aW9ucywKPiBlbHNlIGlmIChzdHJlcSAocFswXSwgImF1dGgtbm9jYWNo ZSIpKQo+IHsKPiBWRVJJRllfUEVSTUlTU0lPTiAoT1BUX1BfR0VORVJBTCk7Cj4gKyBvcHRpb25z LT5hdXRoX25vY2FjaGUgPSB0cnVlOwo+IHNzbF9zZXRfYXV0aF9ub2NhY2hlICgpOwo+IH0KPiBl bHNlIGlmIChzdHJlcSAocFswXSwgImF1dGgtdG9rZW4iKSAmJiBwWzFdKQo+IGRpZmYgLS1naXQg YS9zcmMvb3BlbnZwbi9vcHRpb25zLmggYi9zcmMvb3BlbnZwbi9vcHRpb25zLmgKPiBpbmRleCA4 ZTBlMzY3Li41YWU3MzNhIDEwMDY0NAo+IC0tLSBhL3NyYy9vcGVudnBuL29wdGlvbnMuaAo+ICsr KyBiL3NyYy9vcGVudnBuL29wdGlvbnMuaAo+IEBAIC0yOTIsNiArMjkyLDcgQEAgc3RydWN0IG9w dGlvbnMKPiBib29sIHVwX2RlbGF5Owo+IGJvb2wgdXBfcmVzdGFydDsKPiBib29sIGRhZW1vbjsK PiArIGJvb2wgYXV0aF9ub2NhY2hlOwo+Cj4gaW50IHJlbWFwX3NpZ3VzcjE7Cj4KPiBAQCAtNDYw LDYgKzQ2MSw3IEBAIHN0cnVjdCBvcHRpb25zCj4gYm9vbCBwdWxsOyAvKiBjbGllbnQgcHVsbCBv ZiBjb25maWcgb3B0aW9ucyBmcm9tIHNlcnZlciAqLwo+IGludCBwdXNoX2NvbnRpbnVhdGlvbjsK PiBjb25zdCBjaGFyICphdXRoX3VzZXJfcGFzc19maWxlOwo+ICsgY29uc3QgY2hhciAqYXV0aF91 c2VyX3Bhc3NfZmlsZV9pbmxpbmU7Cj4gc3RydWN0IG9wdGlvbnNfcHJlX3B1bGwgKnByZV9wdWxs Owo+Cj4gaW50IHNlcnZlcl9wb2xsX3RpbWVvdXQ7Cj4gZGlmZiAtLWdpdCBhL3NyYy9vcGVudnBu L3NzbC5jIGIvc3JjL29wZW52cG4vc3NsLmMKPiBpbmRleCA2OWY3N2YzLi5hYTI0OWYxIDEwMDY0 NAo+IC0tLSBhL3NyYy9vcGVudnBuL3NzbC5jCj4gKysrIGIvc3JjL29wZW52cG4vc3NsLmMKPiBA QCAtMzU0LDM2ICszNTQsODggQEAgc3RhdGljIGNoYXIgKmF1dGhfY2hhbGxlbmdlOyAvKiBHTE9C QUwgKi8KPiAjZW5kaWYKPgo+IHZvaWQKPiAtYXV0aF91c2VyX3Bhc3Nfc2V0dXAgKGNvbnN0IGNo YXIgKmF1dGhfZmlsZSwgY29uc3Qgc3RydWN0IHN0YXRpY19jaGFsbGVuZ2VfaW5mbwo+ICpzY2kp Cj4gK2F1dGhfdXNlcl9wYXNzX3NldHVwIChjb25zdCBjaGFyICphdXRoX2ZpbGUsIGNvbnN0IGNo YXIgKmF1dGhfZmlsZV9pbmxpbmUsCj4gY29uc3Qgc3RydWN0IHN0YXRpY19jaGFsbGVuZ2VfaW5m byAqc2NpKQo+IHsKPiArCj4gKyBpbnQgZXh0cmFfZmxhZ3MgPSAwOwo+ICsgaW50IG5faW5saW5l ZCA9IDA7Cj4gKyBjaGFyIGlubGluZWRfdXNlcm5hbWVbVVNFUl9QQVNTX0xFTl07Cj4gKyBjaGFy IGlubGluZWRfcGFzc3dvcmRbVVNFUl9QQVNTX0xFTl07Cj4gKwo+IGF1dGhfdXNlcl9wYXNzX2Vu YWJsZWQgPSB0cnVlOwo+ICsKPiBpZiAoIWF1dGhfdXNlcl9wYXNzLmRlZmluZWQpCj4gewo+ICsg aWYgKGF1dGhfZmlsZSAmJiBzdHJlcSAoYXV0aF9maWxlLCAic3RkaW4iKSAmJiBhdXRoX2ZpbGVf aW5saW5lKQo+ICsgewo+ICsgLyogY2hlY2sgaG93IG11Y2ggaXMgaW5saW5lZC4gKi8KPiArIGNv bnN0IGNoYXIgKnBvcyA9IGF1dGhfZmlsZV9pbmxpbmU7Cj4gKyBjb25zdCBjaGFyICpwcmV2ID0g cG9zOwo+ICsKPiArIHdoaWxlKCAocG9zID0gc3RyY2hyKHBvcywgJ1xuJykpICE9IE5VTEwpCj4g KyB7Cj4gKyBuX2lubGluZWQrKzsKPiArCj4gKyBpZiAobl9pbmxpbmVkID09IDEpCj4gKyB7Cj4g KyBzdHJuY3B5KGlubGluZWRfdXNlcm5hbWUsIHByZXYsIHBvcyAtIHByZXYpOwo+ICsgaW5saW5l ZF91c2VybmFtZVtwb3MgLSBwcmV2ICsgMV0gPSAnXDAnOwo+ICsgbXNnIChNX0lORk8sICJVc2lu ZyBpbmxpbmVkIHVzZXJuYW1lOiAlcyIsIGlubGluZWRfdXNlcm5hbWUpOwo+ICsgfQo+ICsgZWxz ZQo+ICsgewo+ICsgc3RybmNweShpbmxpbmVkX3Bhc3N3b3JkLCBwcmV2LCBwb3MgLSBwcmV2KTsK PiArIGlubGluZWRfcGFzc3dvcmRbcG9zIC0gcHJldiArIDFdID0gJ1wwJzsKPiArIG1zZyAoTV9J TkZPLCAiVXNpbmcgaW5saW5lZCBwYXNzd29yZDogLi4uIik7Cj4gKyB9Cj4gKwo+ICsgcG9zKys7 Cj4gKyBwcmV2ID0gcG9zOwo+ICsgfQo+ICsKPiArIGlmIChuX2lubGluZWQgPT0gMSkKPiArIGV4 dHJhX2ZsYWdzID0gR0VUX1VTRVJfUEFTU19QQVNTV09SRF9PTkxZOwo+ICsgfQo+ICsKPiArIGlm IChuX2lubGluZWQgPT0gMikKPiArIHsKPiArIHN0cmNweShhdXRoX3VzZXJfcGFzcy51c2VybmFt ZSwgaW5saW5lZF91c2VybmFtZSk7Cj4gKyBzdHJjcHkoYXV0aF91c2VyX3Bhc3MucGFzc3dvcmQs IGlubGluZWRfcGFzc3dvcmQpOwo+ICsgYXV0aF91c2VyX3Bhc3MuZGVmaW5lZCA9IHRydWU7Cj4g KyB9Cj4gKyBlbHNlCj4gKyB7Cj4gI2lmIEFVVE9fVVNFUklECj4gLSBnZXRfdXNlcl9wYXNzX2F1 dG9fdXNlcmlkICgmYXV0aF91c2VyX3Bhc3MsIGF1dGhfZmlsZSk7Cj4gKyBnZXRfdXNlcl9wYXNz X2F1dG9fdXNlcmlkICgmYXV0aF91c2VyX3Bhc3MsIGF1dGhfZmlsZSk7Cj4gI2Vsc2UKPiAjIGlm ZGVmIEVOQUJMRV9DTElFTlRfQ1IKPiAtIGlmIChhdXRoX2NoYWxsZW5nZSkgLyogZHluYW1pYyBj aGFsbGVuZ2UvcmVzcG9uc2UgKi8KPiAtIGdldF91c2VyX3Bhc3NfY3IgKCZhdXRoX3VzZXJfcGFz cywKPiAtIGF1dGhfZmlsZSwKPiAtIFVQX1RZUEVfQVVUSCwKPiAtIEdFVF9VU0VSX1BBU1NfTUFO QUdFTUVOVHxHRVRfVVNFUl9QQVNTX1NFTlNJVElWRXxHRVRfVVNFUl9QQVNTX0RZTkFNSUNfQ0hB TExFTkdFLAo+IC0gYXV0aF9jaGFsbGVuZ2UpOwo+IC0gZWxzZSBpZiAoc2NpKSAvKiBzdGF0aWMg Y2hhbGxlbmdlIHJlc3BvbnNlICovCj4gLSB7Cj4gLSBpbnQgZmxhZ3MgPQo+IEdFVF9VU0VSX1BB U1NfTUFOQUdFTUVOVHxHRVRfVVNFUl9QQVNTX1NFTlNJVElWRXxHRVRfVVNFUl9QQVNTX1NUQVRJ Q19DSEFMTEVOR0U7Cj4gLSBpZiAoc2NpLT5mbGFncyAmIFNDX0VDSE8pCj4gLSBmbGFncyB8PSBH RVRfVVNFUl9QQVNTX1NUQVRJQ19DSEFMTEVOR0VfRUNITzsKPiAtIGdldF91c2VyX3Bhc3NfY3Ig KCZhdXRoX3VzZXJfcGFzcywKPiAtIGF1dGhfZmlsZSwKPiAtIFVQX1RZUEVfQVVUSCwKPiAtIGZs YWdzLAo+IC0gc2NpLT5jaGFsbGVuZ2VfdGV4dCk7Cj4gLSB9Cj4gLSBlbHNlCj4gKyBpZiAoYXV0 aF9jaGFsbGVuZ2UpIC8qIGR5bmFtaWMgY2hhbGxlbmdlL3Jlc3BvbnNlICovCj4gKyBnZXRfdXNl cl9wYXNzX2NyICgmYXV0aF91c2VyX3Bhc3MsCj4gKyBhdXRoX2ZpbGUsCj4gKyBVUF9UWVBFX0FV VEgsCj4gKwo+IEdFVF9VU0VSX1BBU1NfTUFOQUdFTUVOVHxHRVRfVVNFUl9QQVNTX1NFTlNJVElW RXxHRVRfVVNFUl9QQVNTX0RZTkFNSUNfQ0hBTExFTkdFfGV4dHJhX2ZsYWdzLAo+ICsgYXV0aF9j aGFsbGVuZ2UpOwo+ICsgZWxzZSBpZiAoc2NpKSAvKiBzdGF0aWMgY2hhbGxlbmdlIHJlc3BvbnNl ICovCj4gKyB7Cj4gKyBpbnQgZmxhZ3MgPQo+IEdFVF9VU0VSX1BBU1NfTUFOQUdFTUVOVHxHRVRf VVNFUl9QQVNTX1NFTlNJVElWRXxHRVRfVVNFUl9QQVNTX1NUQVRJQ19DSEFMTEVOR0V8ZXh0cmFf ZmxhZ3M7Cj4gKyBpZiAoc2NpLT5mbGFncyAmIFNDX0VDSE8pCj4gKyBmbGFncyB8PSBHRVRfVVNF Ul9QQVNTX1NUQVRJQ19DSEFMTEVOR0VfRUNITzsKPiArCj4gKyBnZXRfdXNlcl9wYXNzX2NyICgm YXV0aF91c2VyX3Bhc3MsCj4gKyBhdXRoX2ZpbGUsCj4gKyBVUF9UWVBFX0FVVEgsCj4gKyBmbGFn cywKPiArIHNjaS0+Y2hhbGxlbmdlX3RleHQpOwo+ICsgfQo+ICsgZWxzZQo+ICMgZW5kaWYKPiAt IGdldF91c2VyX3Bhc3MgKCZhdXRoX3VzZXJfcGFzcywgYXV0aF9maWxlLCBVUF9UWVBFX0FVVEgs Cj4gR0VUX1VTRVJfUEFTU19NQU5BR0VNRU5UfEdFVF9VU0VSX1BBU1NfU0VOU0lUSVZFKTsKPiAr IGdldF91c2VyX3Bhc3MgKCZhdXRoX3VzZXJfcGFzcywgYXV0aF9maWxlLCBVUF9UWVBFX0FVVEgs Cj4gR0VUX1VTRVJfUEFTU19NQU5BR0VNRU5UfEdFVF9VU0VSX1BBU1NfU0VOU0lUSVZFfGV4dHJh X2ZsYWdzKTsKPiAjZW5kaWYKPiArIH0KPiArCj4gKyBpZiAobl9pbmxpbmVkID09IDEpCj4gKyBz dHJjcHkoYXV0aF91c2VyX3Bhc3MudXNlcm5hbWUsIGlubGluZWRfdXNlcm5hbWUpOwo+ICsKPiB9 Cj4gfQo+Cj4gQEAgLTE4OTIsOSArMTk0NCw5IEBAIGtleV9tZXRob2RfMl93cml0ZSAoc3RydWN0 IGJ1ZmZlciAqYnVmLCBzdHJ1Y3QgdGxzX3Nlc3Npb24KPiAqc2Vzc2lvbikKPiBpZiAoYXV0aF91 c2VyX3Bhc3NfZW5hYmxlZCkKPiB7Cj4gI2lmZGVmIEVOQUJMRV9DTElFTlRfQ1IKPiAtIGF1dGhf dXNlcl9wYXNzX3NldHVwIChOVUxMLCBzZXNzaW9uLT5vcHQtPnNjaSk7Cj4gKyBhdXRoX3VzZXJf cGFzc19zZXR1cCAoTlVMTCwgTlVMTCwgc2Vzc2lvbi0+b3B0LT5zY2kpOwo+ICNlbHNlCj4gLSBh dXRoX3VzZXJfcGFzc19zZXR1cCAoTlVMTCwgTlVMTCk7Cj4gKyBhdXRoX3VzZXJfcGFzc19zZXR1 cCAoTlVMTCwgTlVMTCwgTlVMTCk7Cj4gI2VuZGlmCj4gaWYgKCF3cml0ZV9zdHJpbmcgKGJ1Ziwg YXV0aF91c2VyX3Bhc3MudXNlcm5hbWUsIC0xKSkKPiBnb3RvIGVycm9yOwo+IGRpZmYgLS1naXQg YS9zcmMvb3BlbnZwbi9zc2wuaCBiL3NyYy9vcGVudnBuL3NzbC5oCj4gaW5kZXggY2Q3Y2FlMi4u Yzc1NTRhYSAxMDA2NDQKPiAtLS0gYS9zcmMvb3BlbnZwbi9zc2wuaAo+ICsrKyBiL3NyYy9vcGVu dnBuL3NzbC5oCj4gQEAgLTM4OCw3ICszODgsNyBAQCB2b2lkIHBlbV9wYXNzd29yZF9zZXR1cCAo Y29uc3QgY2hhciAqYXV0aF9maWxlKTsKPiAqIFNldHVwIGF1dGhlbnRpY2F0aW9uIHVzZXJuYW1l IGFuZCBwYXNzd29yZC4gSWYgYXV0aF9maWxlIGlzIGdpdmVuLCB1c2UgdGhlCj4gKiBjcmVkZW50 aWFscyBzdG9yZWQgaW4gdGhlIGZpbGUuCj4gKi8KPiAtdm9pZCBhdXRoX3VzZXJfcGFzc19zZXR1 cCAoY29uc3QgY2hhciAqYXV0aF9maWxlLCBjb25zdCBzdHJ1Y3QKPiBzdGF0aWNfY2hhbGxlbmdl X2luZm8gKnNjX2luZm8pOwo+ICt2b2lkIGF1dGhfdXNlcl9wYXNzX3NldHVwIChjb25zdCBjaGFy ICphdXRoX2ZpbGUsIGNvbnN0IGNoYXIgKmF1dGhfZmlsZV9pbmxpbmUsCj4gY29uc3Qgc3RydWN0 IHN0YXRpY19jaGFsbGVuZ2VfaW5mbyAqc2NfaW5mbyk7Cj4KPiAvKgo+ICogRW5zdXJlIHRoYXQg bm8gY2FjaGluZyBpcyBwZXJmb3JtZWQgb24gYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24KPiAt LQo+IDEuNy4xMC40LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gT2N0b2JlciBXZWJpbmFyczogQ29k ZSBmb3IgUGVyZm9ybWFuY2UKPiBGcmVlIEludGVsIHdlYmluYXJzIGNhbiBoZWxwIHlvdSBhY2Nl bGVyYXRlIGFwcGxpY2F0aW9uIHBlcmZvcm1hbmNlLgo+IEV4cGxvcmUgdGlwcyBmb3IgTVBJLCBP cGVuTVAsIGFkdmFuY2VkIHByb2ZpbGluZywgYW5kIG1vcmUuIEdldCB0aGUgbW9zdCBmcm9tCj4g dGhlIGxhdGVzdCBJbnRlbCBwcm9jZXNzb3JzIGFuZCBjb3Byb2Nlc3NvcnMuIFNlZSBhYnN0cmFj dHMgYW5kIHJlZ2lzdGVyID4KPiBodHRwOi8vcHViYWRzLmcuZG91YmxlY2xpY2submV0L2dhbXBh ZC9jbGs/aWQ9NjAxMzQ3OTEmaXU9LzQxNDAvb3N0Zy5jbGt0cmtfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IE9wZW52cG4tZGV2ZWwgbWFpbGluZyBsaXN0 Cj4gT3BlbnZwbi1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiBodHRwczovL2xpc3RzLnNv dXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9vcGVudnBuLWRldmVsW2h0dHBzOi8vbGlzdHMu c291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL29wZW52cG4tZGV2ZWxdCj4KPgo+Cj4gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gT2N0b2JlciBXZWJpbmFyczogQ29kZSBmb3IgUGVyZm9ybWFu Y2UKPiBGcmVlIEludGVsIHdlYmluYXJzIGNhbiBoZWxwIHlvdSBhY2NlbGVyYXRlIGFwcGxpY2F0 aW9uIHBlcmZvcm1hbmNlLgo+IEV4cGxvcmUgdGlwcyBmb3IgTVBJLCBPcGVuTVAsIGFkdmFuY2Vk IHByb2ZpbGluZywgYW5kIG1vcmUuIEdldCB0aGUgbW9zdCBmcm9tCj4gdGhlIGxhdGVzdCBJbnRl bCBwcm9jZXNzb3JzIGFuZCBjb3Byb2Nlc3NvcnMuIFNlZSBhYnN0cmFjdHMgYW5kIHJlZ2lzdGVy ID4KPiBodHRwOi8vcHViYWRzLmcuZG91YmxlY2xpY2submV0L2dhbXBhZC9jbGs/aWQ9NjAxMzQ3 OTEmaXU9LzQxNDAvb3N0Zy5jbGt0cmtbaHR0cDovL3B1YmFkcy5nLmRvdWJsZWNsaWNrLm5ldC9n YW1wYWQvY2xrP2lkPTYwMTM0NzkxJml1PS80MTQwL29zdGcuY2xrdHJrXQo+Cj4KPgo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gT3BlbnZwbi1kZXZl bCBtYWlsaW5nIGxpc3QKPiBPcGVudnBuLWRldmVsQC4uLjE4NDQuLi47IGh0dHBzOi8vbGlzdHMu c291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL29wZW52cG4tZGV2ZWxbaHR0cHM6Ly9saXN0 cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vb3BlbnZwbi1kZXZlbF0KPgoKCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPY3RvYmVyIFdlYmluYXJzOiBDb2RlIGZvciBQZXJmb3JtYW5jZQpG cmVlIEludGVsIHdlYmluYXJzIGNhbiBoZWxwIHlvdSBhY2NlbGVyYXRlIGFwcGxpY2F0aW9uIHBl cmZvcm1hbmNlLgpFeHBsb3JlIHRpcHMgZm9yIE1QSSwgT3Blbk1QLCBhZHZhbmNlZCBwcm9maWxp bmcsIGFuZCBtb3JlLiBHZXQgdGhlIG1vc3QgZnJvbQp0aGUgbGF0ZXN0IEludGVsIHByb2Nlc3Nv cnMgYW5kIGNvcHJvY2Vzc29ycy4gU2VlIGFic3RyYWN0cyBhbmQgcmVnaXN0ZXIgPgpodHRwOi8v cHViYWRzLmcuZG91YmxlY2xpY2submV0L2dhbXBhZC9jbGs/aWQ9NjAxMzQ3OTEmaXU9LzQxNDAv b3N0Zy5jbGt0cmtbaHR0cDovL3B1YmFkcy5nLmRvdWJsZWNsaWNrLm5ldC9nYW1wYWQvY2xrP2lk PTYwMTM0NzkxJml1PS80MTQwL29zdGcuY2xrdHJrXQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpPcGVudnBuLWRldmVsIG1haWxpbmcgbGlzdApPcGVudnBu LWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5l dC9saXN0cy9saXN0aW5mby9vcGVudnBuLWRldmVsW2h0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2Uu bmV0L2xpc3RzL2xpc3RpbmZvL29wZW52cG4tZGV2ZWxdCg== ----_com.android.email_4628067971907 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0 L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjwvaGVhZD48Ym9keT5UaGFua3MgZm9yIHJlcG9ydGluZyEg SSBoYXZlIHBvb3IgY29ubmVjdGl2aXR5IGFuZCBsaXR0bGUgdGltZSB0aGlzIHdlZWssIGJ1dCBJ IHdpbGwgbG9vayBhdCBpdCB3aGVuIEkgaGF2ZSBhIGNoYW5jZS4gPGRpdj48YnI+PC9kaXY+PGRp dj5TZW50IGZyb20gbW9iaWxlPC9kaXY+PGJyPjxicj48YnI+TWF4Lk11c3RlckAuLi4xODMyLi4u IHdyb3RlOjxicj48YnI+PGJyPmFuZCBhbm90aGVyIHByb2JsZW06PGJyPjxicj5Db25maWdzIHdp dGhvdXQgImF1dGgtdXNlci1wYXNzIiB3aWxsIHNlZ2ZhdWx0LCBmb3IgaW4gb3B0aW9uc19wb3N0 cHJvY2Vzc192ZXJpZnlfY2UgeW91IGRvIGE8YnI+PGJyPnN0cmVxKG9wdGlvbnMtJmd0O2F1dGhf dXNlcl9wYXNzX2ZpbGUsICJzdGRpbiIpPGJyPjxicj53aXRob3V0IGNoZWNraW5nIGZpcnN0LCBp ZiBvcHRpb25zLSZndDthdXRoX3VzZXJfcGFzc19maWxlIGlzIG5vdCBOVUxMLjxicj48YnI+PGJy PnNvIGhlcmUgaXMgZml4IG51bWJlciB0aHJlZSBmb3Igc3JjL29wZW52cG4vbWlzYy5jIChpbiBm YWN0LCBpdCBpcyAib2xkIiBudW1iZXIgb25lIGFuZCB0aHJlZSkgOy0pPGJyPjxicj5bLi4uXTxi cj4gI2lmIFAyTVA8YnI+LSZuYnNwOyBpZiAob3B0aW9ucy0mZ3Q7YXV0aF91c2VyX3Bhc3NfZmls ZSAmYW1wOyZhbXA7ICFvcHRpb25zLSZndDtwdWxsKTxicj4rJm5ic3A7IGlmICggKCBvcHRpb25z LSZndDthdXRoX3VzZXJfcGFzc19maWxlIHx8IG9wdGlvbnMtJmd0O2F1dGhfdXNlcl9wYXNzX2Zp bGVfaW5saW5lKSAmYW1wOyZhbXA7ICFvcHRpb25zLSZndDtwdWxsKTxicj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgbXNnIChNX1VTQUdFLCAiLS1hdXRoLXVzZXItcGFzcyByZXF1aXJlcyAtLXB1 bGwiKTs8YnI+KyZuYnNwOyA8YnI+KyZuYnNwOyBpZiAoICggKG9wdGlvbnMtJmd0O2F1dGhfdXNl cl9wYXNzX2ZpbGUgJmFtcDsmYW1wOyAhc3RyZXEob3B0aW9ucy0mZ3Q7YXV0aF91c2VyX3Bhc3Nf ZmlsZSwgInN0ZGluIikpIHx8IG9wdGlvbnMtJmd0O2F1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5l KSAmYW1wOyZhbXA7IG9wdGlvbnMtJmd0O2F1dGhfbm9jYWNoZSk8YnI+KyZuYnNwOyZuYnNwOyZu YnNwOyBtc2cgKE1fVVNBR0UsICJDYW5ub3QgdXNlIC0tYXV0aC1ub2NhY2hlIHdpdGggY3JlZGVu dGlhbHMgZnJvbSBmaWxlIik7PGJyPis8YnI+KyNpZmRlZiBFTkFCTEVfQ0xJRU5UX0NSPGJyPism bmJzcDsgaWYgKCAoIChvcHRpb25zLSZndDthdXRoX3VzZXJfcGFzc19maWxlICZhbXA7JmFtcDsg IXN0cmVxKG9wdGlvbnMtJmd0O2F1dGhfdXNlcl9wYXNzX2ZpbGUsICJzdGRpbiIpKSB8fCBvcHRp b25zLSZndDthdXRoX3VzZXJfcGFzc19maWxlX2lubGluZSkgJmFtcDsmYW1wOyBvcHRpb25zLSZn dDtzY19pbmZvLmNoYWxsZW5nZV90ZXh0KTxicj4rJm5ic3A7Jm5ic3A7Jm5ic3A7IG1zZyAoTV9V U0FHRSwgIkNyZWRlbnRpYWxzIGNhbm5vdCBiZSBpbiBhIGZpbGUgaWYgdXNpbmcgLS1zdGF0aWMt Y2hhbGxlbmdlIik7PGJyPisjZW5kaWY8YnI+Wy4uLl08YnI+PGJyPjxicj5BIHF1aWNrIHRlc3Qg ZGlkIHdvcmsgd2l0aCBhbmQgd2l0aG91dCB1c2VyIGF1dGhlbnRpY2F0aW9uIChvbmx5IHRlc3Rl ZCBpbmxpbmUgc2V0dHppbmcsIG5vdCB3aXRoIGEgZmlsZSkuPGJyPiZuYnNwOzxicj5Kb2VyZzxi cj48YnI+LS0tLS0tLS0gT3JpZ2luYWwtTmFjaHJpY2h0IC0tLS0tLS0tPGJyPkdlc2VuZGV0OiZu YnNwO1NhbXN0YWcsIDA1LiBPa3RvYmVyIDIwMTMgdW0gMTU6NTcgVWhyPGJyPlZvbjombmJzcDsi TWF4IE11c3RlciIgJmx0O01heC5NdXN0ZXJALi4uMTgzMi4uLiZndDs8YnI+QW46Jm5ic3A7IkRh dmlkZSBCcmluaSIgJmx0O2RhdmVfYnJALi4uMTI3OC4uLiZndDs8YnI+Q2M6Jm5ic3A7b3BlbnZw bi1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ8YnI+QmV0cmVmZjombmJzcDtSZTogW09wZW52 cG4tZGV2ZWxdIFtQQVRDSF0gQWxsb3cgaW5saW5pbmcgb2YgLS1hdXRoLXVzZXItcGFzczxicj5v b3BzLCBqdXN0IHRvb2sgbXkgImRlYnVnIiB2ZXJzaW9uIG9mIHNyYy9vcGVudnBuL3NzbC5jIC4u Ljxicj48YnI+T2YgY291cnNlIG91dHB1dCBvZiBzdHJpbmcgbGVuZ3RoIGFuZCBlc3BlY2lhbGx5 IHBhc3N3b3JkIGluIGxvZyBmaWxlIGlzPGJyPm5vdCBpbnRlbmRlZCA7LSk8YnI+PGJyPkpvZXJn PGJyPjxicj4tLS0tLS0tLSBPcmlnaW5hbC1OYWNocmljaHQgLS0tLS0tLS08YnI+QmV0cmVmZjog UmU6IFtPcGVudnBuLWRldmVsXSBbUEFUQ0hdIEFsbG93IGlubGluaW5nIG9mIC0tYXV0aC11c2Vy LXBhc3M8YnI+Vm9uOiBNYXguTXVzdGVyQC4uLjE4MzIuLi48YnI+QW46IERhdmlkZSBCcmluaSAm bHQ7ZGF2ZV9ickAuLi4xMjc4Li4uJmd0Ozxicj5Lb3BpZSAoQ0MpOiBvcGVudnBuLWRldmVsQGxp c3RzLnNvdXJjZWZvcmdlLm5ldDxicj5EYXR1bTogU2EgMDUgT2t0IDIwMTMgMTU6NDg6NDIgQ0VT VDxicj48YnI+Jmd0OyBIaSBEYXZpZGUsPGJyPiZndDsgbmljZSBpZGVhLiBCdXQgSSB0aGluayBJ IGZvdW5kIHR3byBzbWFsbCBidWdzOjxicj4mZ3Q7IEZpcnN0LCBpdCB3b24ndCBjb21waWxlIGlu IGEgY29uZmlnIHcvbyBFTkFCTEVfQ0xJRU5UX0NSIGRlZmluZWQgKHRoZXJlIGlzIG5vPGJyPiZn dDsgInNjX2luZm8iKS48YnI+Jmd0OyBTZWNvbmQsIGlmIEknbSBub3QgbWlzdGFrZW4sIG5hbWUg YW5kIHBhc3N3b3JkIGFyZSBub3QgY29waWVkIGNvcnJlY3RseTo8YnI+Jmd0OyBJZiAjIG9mIGNo YXJhY2h0ZXJzIGlzIChwb3MgLSBwcmV2KSwgdGhlIGxhc3QgY2hhcmFrdGVyIGlzIGF0IFtwb3Mg LSBwcmV2IC0xXTxicj4mZ3Q7IGFuZCB0byB0ZXJtaW5hdGUgdGhlIHN0cmluZyB5b3Ugc2hvdWxk IHNldCBbcG9zIC0gcHJldl0gdG8gJ1wwJy48YnI+Jmd0OyBNeSBzdWdnZXN0aW9uIChub3Qgc3Vy ZSwgaWYgdGhlIGZpcnN0IG9uZSB3b3JrcyB3aXRoIG1hbmFnZW1lbnQgZW5hYmxlZCwgb25seTxi cj4mZ3Q7IHRlc3RlZCB3L28pLjxicj4mZ3Q7IEZpeCBpbiBzcmMvb3BlbnZwbi9taXNjLmMgKGFk ZCAjaWZkZWYpOjxicj4mZ3Q7IFsuLi5dPGJyPiZndDsgKzxicj4mZ3Q7ICsgaWYgKCAoICFzdHJl cShvcHRpb25zLSZndDthdXRoX3VzZXJfcGFzc19maWxlLCAic3RkaW4iKSB8fDxicj4mZ3Q7IG9w dGlvbnMtJmd0O2F1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKSAmYW1wOyZhbXA7IG9wdGlvbnMt Jmd0O2F1dGhfbm9jYWNoZSk8YnI+Jmd0OyArIG1zZyAoTV9VU0FHRSwgIkNhbm5vdCB1c2UgLS1h dXRoLW5vY2FjaGUgd2l0aCBjcmVkZW50aWFscyBmcm9tIGZpbGUiKTs8YnI+Jmd0OyArPGJyPiZn dDsgKyNpZmRlZiBFTkFCTEVfQ0xJRU5UX0NSPGJyPiZndDsgKyBpZiAoICggIXN0cmVxKG9wdGlv bnMtJmd0O2F1dGhfdXNlcl9wYXNzX2ZpbGUsICJzdGRpbiIpIHx8PGJyPiZndDsgb3B0aW9ucy0m Z3Q7YXV0aF91c2VyX3Bhc3NfZmlsZV9pbmxpbmUpICZhbXA7JmFtcDsgb3B0aW9ucy0mZ3Q7c2Nf aW5mby5jaGFsbGVuZ2VfdGV4dCk8YnI+Jmd0OyArIG1zZyAoTV9VU0FHRSwgIkNyZWRlbnRpYWxz IGNhbm5vdCBiZSBpbiBhIGZpbGUgaWYgdXNpbmcgLS1zdGF0aWMtY2hhbGxlbmdlIik7PGJyPiZn dDsgKyNlbmRpZjxicj4mZ3Q7ICs8YnI+Jmd0OyArIGlmIChvcHRpb25zLSZndDthdXRoX3VzZXJf cGFzc19maWxlX2lubGluZSk8YnI+Jmd0OyArIHs8YnI+Jmd0OyArIGludCBuX2lubGluZWQgPSAw Ozxicj4mZ3Q7IFsuLi5dPGJyPiZndDsgaW4gc3JjL29wZW52cG4vc3NsLmMgeW8gc2hvdWxkIHVz ZSBbcG9zIC0gcHJldl0gaW5zdGVhZCBvZiBbcG9zIC0gcHJldiArMV08YnI+Jmd0OyBbLi4uXTxi cj4mZ3Q7ICsgezxicj4mZ3Q7ICsgc3RybmNweShpbmxpbmVkX3VzZXJuYW1lLCBwcmV2LCBwb3Mg LSBwcmV2KTs8YnI+Jmd0OyArIGlubGluZWRfdXNlcm5hbWVbcG9zIC0gcHJldl0gPSAnXDAnOzxi cj4mZ3Q7ICsgbXNnIChNX0lORk8sICJVc2luZyBpbmxpbmVkIHVzZXJuYW1lOiAlcyAoUE9TPSVk IFBSRVY9JWQpIiw8YnI+Jmd0OyBpbmxpbmVkX3VzZXJuYW1lLCBwb3MsIHByZXYpOzxicj4mZ3Q7 ICsgfTxicj4mZ3Q7ICsgZWxzZTxicj4mZ3Q7ICsgezxicj4mZ3Q7ICsgc3RybmNweShpbmxpbmVk X3Bhc3N3b3JkLCBwcmV2LCBwb3MgLSBwcmV2KTs8YnI+Jmd0OyArIGlubGluZWRfcGFzc3dvcmRb cG9zIC0gcHJldl0gPSAnXDAnOzxicj4mZ3Q7ICsgbXNnIChNX0lORk8sICJVc2luZyBpbmxpbmVk IHBhc3N3b3JkOjxicj4mZ3Q7IC4uLioqJXMqKiIsaW5saW5lZF9wYXNzd29yZCk7PGJyPiZndDsg KyB9PGJyPiZndDsgWy4uLl08YnI+Jmd0Ozxicj4mZ3Q7IEkgaG9wZSBpdCdzIG8uay4ganVzdCB0 byBnaXZlIHRoZSBpZGVhIGJ1dCBub3QgcG9zdCBmdWxsIHBhdGNoZXMgYWdhaW4uPGJyPiZndDs8 YnI+Jmd0OyBSZWdhcmRzPGJyPiZndDsgSm9lcmc8YnI+Jmd0OyAqR2VzZW5kZXQ6KiBEb25uZXJz dGFnLCAwMy4gT2t0b2JlciAyMDEzIHVtIDEwOjMwIFVocjxicj4mZ3Q7ICpWb246KiAiRGF2aWRl IEJyaW5pIiAmbHQ7ZGF2ZV9ickAuLi4xMjc4Li4uJmd0Ozxicj4mZ3Q7ICpBbjoqIG9wZW52cG4t ZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0PGJyPiZndDsgKkJldHJlZmY6KiBSZTogW09wZW52 cG4tZGV2ZWxdIFtQQVRDSF0gQWxsb3cgaW5saW5pbmcgb2YgLS1hdXRoLXVzZXItcGFzczxicj4m Z3Q7IChwcmV2aW91cyB2ZXJzaW9uIGNvbnRhaW5lZCBhIGxlZnRvdmVyIGRlYnVnIGxpbmUgbGVm dCBieSBtaXN0YWtlLCBzb3JyeSk8YnI+Jmd0Ozxicj4mZ3Q7IFRoaXMgcGF0Y2ggYWxsb3dzIGlu bGluaW5nIG9mIHRoZSAtLWF1dGgtdXNlci1wYXNzIGRpcmVjdGl2ZSwgc28gaXQgaXMgbm93PGJy PiZndDsgcG9zc2libGUgdG8gZG88YnI+Jmd0Ozxicj4mZ3Q7ICZsdDthdXRoLXVzZXItcGFzcyZn dDs8YnI+Jmd0OyBteXVzZXJuYW1lPGJyPiZndDsgbXlwYXNzd29yZDxicj4mZ3Q7ICZsdDsvYXV0 aC11c2VyLXBhc3MmZ3Q7PGJyPiZndDs8YnI+Jmd0OyBvciBzdXBwbHkganVzdCB0aGUgdXNlcm5h bWUsIGVnPGJyPiZndDs8YnI+Jmd0OyAmbHQ7YXV0aC11c2VyLXBhc3MmZ3Q7PGJyPiZndDsgbXl1 c2VybmFtZTxicj4mZ3Q7ICZsdDsvYXV0aC11c2VyLXBhc3MmZ3Q7PGJyPiZndDs8YnI+Jmd0OyAo aW4gdGhpcyBjYXNlIHRoZSB1c2VyIGlzIHByb21wdGVkIGZvciB0aGUgcGFzc3dvcmQgb25seSku PGJyPiZndDsgVGhlIG1vc3QgY2hhbmdlZCBmaWxlcyBhcmUgb3B0aW9ucy5jIChzYW5pdHkgY2hl Y2sgb2YgaW5saW5lZCBjcmVkZW50aWFscyk8YnI+Jmd0OyBhbmQgc3NsLmMgKGFjdHVhbCBwYXJz aW5nIG9mIHRoZSBpbmxpbmVkIGNyZWRlbnRpYWxzKS48YnI+Jmd0Ozxicj4mZ3Q7IFVkYXRlcyB0 byB0aGUgZG9jdW1lbnRhdGlvbiB3aWxsIGJlIHByb3ZpZGVkIGluIGEgc2VwYXJhdGUgcGF0Y2gg aWYgYW5kIHdoZW48YnI+Jmd0OyB0aGUgcHJlc2VudCBwYXRjaCBpcyBhY2NlcHRlZC48YnI+Jmd0 Ozxicj4mZ3Q7IEFzIGRpc2N1c3NlZCBvbiBJUkMsIGZvciB0aGUgdGltZSBiZWluZyB0aGUgbm9u LWlubGluZWQgc3ludGF4PGJyPiZndDs8YnI+Jmd0OyBhdXRoLXVzZXItcGFzcyBbdXBdPGJyPiZn dDs8YnI+Jmd0OyBpcyBzdGlsbCBzdXBwb3J0ZWQgYW5kIFt1cF0gaXMgZXhwZWN0ZWQgdG8gY29u dGFpbiB1c2VybmFtZSBhbmQgcGFzc3dvcmQ8YnI+Jmd0OyBvbiB0d28gbGluZXMuPGJyPiZndDs8 YnI+Jmd0OyBTaWduZWQtb2ZmLWJ5OiBEYXZpZGUgQnJpbmkgJmx0O2RhdmVfYnJALi4uMTI3OC4u LiZndDs8YnI+Jmd0OyAtLS08YnI+Jmd0OyBzcmMvb3BlbnZwbi9pbml0LmMgfCA2ICstLTxicj4m Z3Q7IHNyYy9vcGVudnBuL21pc2MuYyB8IDIgKy08YnI+Jmd0OyBzcmMvb3BlbnZwbi9vcHRpb25z LmMgfCA1NiArKysrKysrKysrKysrKysrKysrKysrKystLS0tPGJyPiZndDsgc3JjL29wZW52cG4v b3B0aW9ucy5oIHwgMiArPGJyPiZndDsgc3JjL29wZW52cG4vc3NsLmMgfCA5OCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tPGJyPiZndDsgc3JjL29wZW52 cG4vc3NsLmggfCAyICstPGJyPiZndDsgNiBmaWxlcyBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9ucygr KSwgMzUgZGVsZXRpb25zKC0pPGJyPiZndDs8YnI+Jmd0OyBkaWZmIC0tZ2l0IGEvc3JjL29wZW52 cG4vaW5pdC5jIGIvc3JjL29wZW52cG4vaW5pdC5jPGJyPiZndDsgaW5kZXggMDMxZmIyMC4uYjEx YWU4YSAxMDA2NDQ8YnI+Jmd0OyAtLS0gYS9zcmMvb3BlbnZwbi9pbml0LmM8YnI+Jmd0OyArKysg Yi9zcmMvb3BlbnZwbi9pbml0LmM8YnI+Jmd0OyBAQCAtNDAwLDEyICs0MDAsMTIgQEAgaW5pdF9x dWVyeV9wYXNzd29yZHMgKHN0cnVjdCBjb250ZXh0ICpjKTxicj4mZ3Q7PGJyPiZndDsgI2lmIFAy TVA8YnI+Jmd0OyAvKiBBdXRoIHVzZXIvcGFzcyBpbnB1dCAqLzxicj4mZ3Q7IC0gaWYgKGMtJmd0 O29wdGlvbnMuYXV0aF91c2VyX3Bhc3NfZmlsZSk8YnI+Jmd0OyArIGlmIChjLSZndDtvcHRpb25z LmF1dGhfdXNlcl9wYXNzX2ZpbGUgfHwgYy0mZ3Q7b3B0aW9ucy5hdXRoX3VzZXJfcGFzc19maWxl X2lubGluZSk8YnI+Jmd0OyB7PGJyPiZndDsgI2lmZGVmIEVOQUJMRV9DTElFTlRfQ1I8YnI+Jmd0 OyAtIGF1dGhfdXNlcl9wYXNzX3NldHVwIChjLSZndDtvcHRpb25zLmF1dGhfdXNlcl9wYXNzX2Zp bGUsICZhbXA7Yy0mZ3Q7b3B0aW9ucy5zY19pbmZvKTs8YnI+Jmd0OyArIGF1dGhfdXNlcl9wYXNz X3NldHVwIChjLSZndDtvcHRpb25zLmF1dGhfdXNlcl9wYXNzX2ZpbGUsPGJyPiZndDsgYy0mZ3Q7 b3B0aW9ucy5hdXRoX3VzZXJfcGFzc19maWxlX2lubGluZSwgJmFtcDtjLSZndDtvcHRpb25zLnNj X2luZm8pOzxicj4mZ3Q7ICNlbHNlPGJyPiZndDsgLSBhdXRoX3VzZXJfcGFzc19zZXR1cCAoYy0m Z3Q7b3B0aW9ucy5hdXRoX3VzZXJfcGFzc19maWxlLCBOVUxMKTs8YnI+Jmd0OyArIGF1dGhfdXNl cl9wYXNzX3NldHVwIChjLSZndDtvcHRpb25zLmF1dGhfdXNlcl9wYXNzX2ZpbGUsPGJyPiZndDsg Yy0mZ3Q7b3B0aW9ucy5hdXRoX3VzZXJfcGFzc19maWxlX2lubGluZSwgTlVMTCk7PGJyPiZndDsg I2VuZGlmPGJyPiZndDsgfTxicj4mZ3Q7ICNlbmRpZjxicj4mZ3Q7IGRpZmYgLS1naXQgYS9zcmMv b3BlbnZwbi9taXNjLmMgYi9zcmMvb3BlbnZwbi9taXNjLmM8YnI+Jmd0OyBpbmRleCA0Njg4NDQ0 Li4wNWJjMmYwIDEwMDY0NDxicj4mZ3Q7IC0tLSBhL3NyYy9vcGVudnBuL21pc2MuYzxicj4mZ3Q7 ICsrKyBiL3NyYy9vcGVudnBuL21pc2MuYzxicj4mZ3Q7IEBAIC0xMDM2LDcgKzEwMzYsNyBAQCBn ZXRfdXNlcl9wYXNzX2NyIChzdHJ1Y3QgdXNlcl9wYXNzICp1cCw8YnI+Jmd0Ozxicj4mZ3Q7IGlm ICghdXAtJmd0O2RlZmluZWQpPGJyPiZndDsgezxicj4mZ3Q7IC0gY29uc3QgYm9vbCBmcm9tX3N0 ZGluID0gKCFhdXRoX2ZpbGUgfHwgIXN0cmNtcCAoYXV0aF9maWxlLCAic3RkaW4iKSk7PGJyPiZn dDsgKyBjb25zdCBib29sIGZyb21fc3RkaW4gPSAoIWF1dGhfZmlsZSB8fCBzdHJlcSAoYXV0aF9m aWxlLCAic3RkaW4iKSk7PGJyPiZndDs8YnI+Jmd0OyBpZiAoZmxhZ3MgJmFtcDsgR0VUX1VTRVJf UEFTU19QUkVWSU9VU19DUkVEU19GQUlMRUQpPGJyPiZndDsgbXNnIChNX1dBUk4sICJOb3RlOiBw cmV2aW91cyAnJXMnIGNyZWRlbnRpYWxzIGZhaWxlZCIsIHByZWZpeCk7PGJyPiZndDsgZGlmZiAt LWdpdCBhL3NyYy9vcGVudnBuL29wdGlvbnMuYyBiL3NyYy9vcGVudnBuL29wdGlvbnMuYzxicj4m Z3Q7IGluZGV4IDRkMDI3MWYuLjZmMmVhNjYgMTAwNjQ0PGJyPiZndDsgLS0tIGEvc3JjL29wZW52 cG4vb3B0aW9ucy5jPGJyPiZndDsgKysrIGIvc3JjL29wZW52cG4vb3B0aW9ucy5jPGJyPiZndDsg QEAgLTEyMzMsNiArMTIzMyw3IEBAIHNob3dfcDJtcF9wYXJtcyAoY29uc3Qgc3RydWN0IG9wdGlv bnMgKm8pPGJyPiZndDsgU0hPV19CT09MIChjbGllbnQpOzxicj4mZ3Q7IFNIT1dfQk9PTCAocHVs bCk7PGJyPiZndDsgU0hPV19TVFIgKGF1dGhfdXNlcl9wYXNzX2ZpbGUpOzxicj4mZ3Q7ICsgU0hP V19TVFIgKGF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKTs8YnI+Jmd0Ozxicj4mZ3Q7IGdjX2Zy ZWUgKCZhbXA7Z2MpOzxicj4mZ3Q7IH08YnI+Jmd0OyBAQCAtMjA4MCw3ICsyMDgxLDcgQEAgb3B0 aW9uc19wb3N0cHJvY2Vzc192ZXJpZnlfY2UgKGNvbnN0IHN0cnVjdCBvcHRpb25zPGJyPiZndDsg Km9wdGlvbnMsIGNvbnN0IHN0cnVjdCBjb25uZTxicj4mZ3Q7IGlmIChvcHRpb25zLSZndDtpZmNv bmZpZ19pcHY2X2xvY2FsICZhbXA7JmFtcDsgIW9wdGlvbnMtJmd0O3R1bl9pcHY2ICk8YnI+Jmd0 OyBtc2cgKE1fSU5GTywgIldhcm5pbmc6IC0taWZjb25maWctaXB2NiB3aXRob3V0IC0tdHVuLWlw djYgd2lsbCBub3QgZG8gSVB2NiIpOzxicj4mZ3Q7PGJyPiZndDsgLSBpZiAob3B0aW9ucy0mZ3Q7 YXV0aF91c2VyX3Bhc3NfZmlsZSk8YnI+Jmd0OyArIGlmICggb3B0aW9ucy0mZ3Q7YXV0aF91c2Vy X3Bhc3NfZmlsZSB8fCBvcHRpb25zLSZndDthdXRoX3VzZXJfcGFzc19maWxlX2lubGluZSApPGJy PiZndDsgbXNnIChNX1VTQUdFLCAiLS1hdXRoLXVzZXItcGFzcyBjYW5ub3QgYmUgdXNlZCB3aXRo IC0tbW9kZSBzZXJ2ZXIgKGl0IHNob3VsZCBiZTxicj4mZ3Q7IHVzZWQgb24gdGhlIGNsaWVudCBz aWRlIG9ubHkpIik7PGJyPiZndDsgaWYgKG9wdGlvbnMtJmd0O2NjZF9leGNsdXNpdmUgJmFtcDsm YW1wOyAhb3B0aW9ucy0mZ3Q7Y2xpZW50X2NvbmZpZ19kaXIpPGJyPiZndDsgbXNnIChNX1VTQUdF LCAiLS1jY2QtZXhjbHVzaXZlIG11c3QgYmUgdXNlZCB3aXRoIC0tY2xpZW50LWNvbmZpZy1kaXIi KTs8YnI+Jmd0OyBAQCAtMjI3NCw3ICsyMjc1LDcgQEAgb3B0aW9uc19wb3N0cHJvY2Vzc192ZXJp ZnlfY2UgKGNvbnN0IHN0cnVjdCBvcHRpb25zPGJyPiZndDsgKm9wdGlvbnMsIGNvbnN0IHN0cnVj dCBjb25uZTxicj4mZ3Q7IGlmIChzdW0gPT0gMCk8YnI+Jmd0OyB7PGJyPiZndDsgI2lmIFAyTVA8 YnI+Jmd0OyAtIGlmICghb3B0aW9ucy0mZ3Q7YXV0aF91c2VyX3Bhc3NfZmlsZSk8YnI+Jmd0OyAr IGlmICghb3B0aW9ucy0mZ3Q7YXV0aF91c2VyX3Bhc3NfZmlsZSAmYW1wOyZhbXA7ICFvcHRpb25z LSZndDthdXRoX3VzZXJfcGFzc19maWxlX2lubGluZSk8YnI+Jmd0OyAjZW5kaWY8YnI+Jmd0OyBt c2cgKE1fVVNBR0UsICJObyBjbGllbnQtc2lkZSBhdXRoZW50aWNhdGlvbiBtZXRob2QgaXMgc3Bl Y2lmaWVkLiBZb3UgbXVzdCB1c2U8YnI+Jmd0OyBlaXRoZXIgLS1jZXJ0Ly0ta2V5LCAtLXBrY3Mx Miwgb3IgLS1hdXRoLXVzZXItcGFzcyIpOzxicj4mZ3Q7IH08YnI+Jmd0OyBAQCAtMjM1MCw4ICsy MzUxLDQyIEBAIG9wdGlvbnNfcG9zdHByb2Nlc3NfdmVyaWZ5X2NlIChjb25zdCBzdHJ1Y3Qgb3B0 aW9uczxicj4mZ3Q7ICpvcHRpb25zLCBjb25zdCBzdHJ1Y3QgY29ubmU8YnI+Jmd0OyAjZW5kaWYg LyogRU5BQkxFX1NTTCAqLzxicj4mZ3Q7PGJyPiZndDsgI2lmIFAyTVA8YnI+Jmd0OyAtIGlmIChv cHRpb25zLSZndDthdXRoX3VzZXJfcGFzc19maWxlICZhbXA7JmFtcDsgIW9wdGlvbnMtJmd0O3B1 bGwpPGJyPiZndDsgKyBpZiAoICggb3B0aW9ucy0mZ3Q7YXV0aF91c2VyX3Bhc3NfZmlsZSB8fCBv cHRpb25zLSZndDthdXRoX3VzZXJfcGFzc19maWxlX2lubGluZSkgJmFtcDsmYW1wOzxicj4mZ3Q7 ICFvcHRpb25zLSZndDtwdWxsKTxicj4mZ3Q7IG1zZyAoTV9VU0FHRSwgIi0tYXV0aC11c2VyLXBh c3MgcmVxdWlyZXMgLS1wdWxsIik7PGJyPiZndDsgKzxicj4mZ3Q7ICsgaWYgKCAoICFzdHJlcShv cHRpb25zLSZndDthdXRoX3VzZXJfcGFzc19maWxlLCAic3RkaW4iKSB8fDxicj4mZ3Q7IG9wdGlv bnMtJmd0O2F1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lKSAmYW1wOyZhbXA7IG9wdGlvbnMtJmd0 O2F1dGhfbm9jYWNoZSk8YnI+Jmd0OyArIG1zZyAoTV9VU0FHRSwgIkNhbm5vdCB1c2UgLS1hdXRo LW5vY2FjaGUgd2l0aCBjcmVkZW50aWFscyBmcm9tIGZpbGUiKTs8YnI+Jmd0OyArPGJyPiZndDsg KyBpZiAoICggIXN0cmVxKG9wdGlvbnMtJmd0O2F1dGhfdXNlcl9wYXNzX2ZpbGUsICJzdGRpbiIp IHx8PGJyPiZndDsgb3B0aW9ucy0mZ3Q7YXV0aF91c2VyX3Bhc3NfZmlsZV9pbmxpbmUpICZhbXA7 JmFtcDsgb3B0aW9ucy0mZ3Q7c2NfaW5mby5jaGFsbGVuZ2VfdGV4dCk8YnI+Jmd0OyArIG1zZyAo TV9VU0FHRSwmbmJzcDsiQ3JlZGVudGlhbHMgY2Fubm90IGJlIGluIGEgZmlsZSBpZiB1c2luZyAt LXN0YXRpYy1jaGFsbGVuZ2UiKTs8YnI+Jmd0OyArPGJyPiZndDsgKyBpZiAob3B0aW9ucy0mZ3Q7 YXV0aF91c2VyX3Bhc3NfZmlsZV9pbmxpbmUpPGJyPiZndDsgKyB7PGJyPiZndDsgKyBpbnQgbl9p bmxpbmVkID0gMDs8YnI+Jmd0OyArIGNvbnN0IGNoYXIgKnBvcyA9IG9wdGlvbnMtJmd0O2F1dGhf dXNlcl9wYXNzX2ZpbGVfaW5saW5lOzxicj4mZ3Q7ICsgY29uc3QgY2hhciAqcHJldiA9IHBvczs8 YnI+Jmd0OyArPGJyPiZndDsgKyBpZiAoIHN0cmxlbihwb3MpID09IDAgKTxicj4mZ3Q7ICsgbXNn IChNX1VTQUdFLCAiSW52YWxpZCBmb3JtYXQgZm9yIGlubGluZWQgLS1hdXRoLXVzZXItcGFzcyIp Ozxicj4mZ3Q7ICs8YnI+Jmd0OyArIHdoaWxlKCAocG9zID0gc3RyY2hyKHBvcywgJ1xuJykpICE9 IE5VTEwgKTxicj4mZ3Q7ICsgezxicj4mZ3Q7ICsgbl9pbmxpbmVkKys7PGJyPiZndDsgKzxicj4m Z3Q7ICsgaWYgKG5faW5saW5lZCAmZ3Q7IDIpPGJyPiZndDsgKyBtc2cgKE1fVVNBR0UsICJUb28g bWFueSBsaW5lcyBpbiBpbmxpbmVkIC0tYXV0aC11c2VyLXBhc3MiKTs8YnI+Jmd0OyArPGJyPiZn dDsgKyBpZiAoIHBvcyAtIHByZXYgJmd0OyBVU0VSX1BBU1NfTEVOIC0gMSApPGJyPiZndDsgKyBt c2cgKE1fVVNBR0UsICJMaW5lIHRvbyBsb25nIGluIGlubGluZWQgLS1hdXRoLXVzZXItcGFzcyIp Ozxicj4mZ3Q7ICs8YnI+Jmd0OyArIHBvcysrOzxicj4mZ3Q7ICsgcHJldiA9IHBvczs8YnI+Jmd0 OyArIH08YnI+Jmd0OyArPGJyPiZndDsgKyBpZiAoIChuX2lubGluZWQgPT0gMCkgfHwgKCpwcmV2 ICE9ICdcMCcpICk8YnI+Jmd0OyArIG1zZyAoTV9VU0FHRSwgIkludmFsaWQgZm9ybWF0IGZvciBp bmxpbmVkIC0tYXV0aC11c2VyLXBhc3MiKTs8YnI+Jmd0OyArPGJyPiZndDsgKyB9PGJyPiZndDsg I2VuZGlmPGJyPiZndDs8YnI+Jmd0OyB1bmluaXRfb3B0aW9ucyAoJmFtcDtkZWZhdWx0cyk7PGJy PiZndDsgQEAgLTI3MTksOSArMjc1NCwxMCBAQCBvcHRpb25zX3Bvc3Rwcm9jZXNzX2ZpbGVjaGVj a3MgKHN0cnVjdCBvcHRpb25zICpvcHRpb25zKTxicj4mZ3Q7ICItLW1hbmFnZW1lbnQgdXNlci9w YXNzd29yZCBmaWxlIik7PGJyPiZndDsgI2VuZGlmIC8qIEVOQUJMRV9NQU5BR0VNRU5UICovPGJy PiZndDsgI2lmIFAyTVA8YnI+Jmd0OyAtIGVycnMgfD0gY2hlY2tfZmlsZV9hY2Nlc3MgKENIS0FD Q19GSUxFfENIS0FDQ19BQ1BUU1RESU4sPGJyPiZndDsgLSBvcHRpb25zLSZndDthdXRoX3VzZXJf cGFzc19maWxlLCBSX09LLDxicj4mZ3Q7IC0gIi0tYXV0aC11c2VyLXBhc3MiKTs8YnI+Jmd0OyAr IGlmICghc3RyZXEob3B0aW9ucy0mZ3Q7YXV0aF91c2VyX3Bhc3NfZmlsZSwgSU5MSU5FX0ZJTEVf VEFHKSk8YnI+Jmd0OyArIGVycnMgfD0gY2hlY2tfZmlsZV9hY2Nlc3MgKENIS0FDQ19GSUxFfENI S0FDQ19BQ1BUU1RESU4sPGJyPiZndDsgKyBvcHRpb25zLSZndDthdXRoX3VzZXJfcGFzc19maWxl LCBSX09LLDxicj4mZ3Q7ICsgIi0tYXV0aC11c2VyLXBhc3MiKTs8YnI+Jmd0OyAjZW5kaWYgLyog UDJNUCAqLzxicj4mZ3Q7PGJyPiZndDsgLyogKiogU3lzdGVtIHJlbGF0ZWQgKiogKi88YnI+Jmd0 OyBAQCAtNTg5NCw3ICs1OTMwLDEyIEBAIGFkZF9vcHRpb24gKHN0cnVjdCBvcHRpb25zICpvcHRp b25zLDxicj4mZ3Q7IFZFUklGWV9QRVJNSVNTSU9OIChPUFRfUF9HRU5FUkFMKTs8YnI+Jmd0OyBp ZiAocFsxXSk8YnI+Jmd0OyB7PGJyPiZndDsgLSBvcHRpb25zLSZndDthdXRoX3VzZXJfcGFzc19m aWxlID0gcFsxXTs8YnI+Jmd0OyArIG9wdGlvbnMtJmd0O2F1dGhfdXNlcl9wYXNzX2ZpbGUgPSBw WzFdOzxicj4mZ3Q7ICsgaWYgKHN0cmVxIChwWzFdLCBJTkxJTkVfRklMRV9UQUcpICZhbXA7JmFt cDsgcFsyXSk8YnI+Jmd0OyArIHs8YnI+Jmd0OyArIG9wdGlvbnMtJmd0O2F1dGhfdXNlcl9wYXNz X2ZpbGUgPSAic3RkaW4iOzxicj4mZ3Q7ICsgb3B0aW9ucy0mZ3Q7YXV0aF91c2VyX3Bhc3NfZmls ZV9pbmxpbmUgPSBwWzJdOzxicj4mZ3Q7ICsgfTxicj4mZ3Q7IH08YnI+Jmd0OyBlbHNlPGJyPiZn dDsgb3B0aW9ucy0mZ3Q7YXV0aF91c2VyX3Bhc3NfZmlsZSA9ICJzdGRpbiI7PGJyPiZndDsgQEAg LTY1OTEsNiArNjYzMiw3IEBAIGFkZF9vcHRpb24gKHN0cnVjdCBvcHRpb25zICpvcHRpb25zLDxi cj4mZ3Q7IGVsc2UgaWYgKHN0cmVxIChwWzBdLCAiYXV0aC1ub2NhY2hlIikpPGJyPiZndDsgezxi cj4mZ3Q7IFZFUklGWV9QRVJNSVNTSU9OIChPUFRfUF9HRU5FUkFMKTs8YnI+Jmd0OyArIG9wdGlv bnMtJmd0O2F1dGhfbm9jYWNoZSA9IHRydWU7PGJyPiZndDsgc3NsX3NldF9hdXRoX25vY2FjaGUg KCk7PGJyPiZndDsgfTxicj4mZ3Q7IGVsc2UgaWYgKHN0cmVxIChwWzBdLCAiYXV0aC10b2tlbiIp ICZhbXA7JmFtcDsgcFsxXSk8YnI+Jmd0OyBkaWZmIC0tZ2l0IGEvc3JjL29wZW52cG4vb3B0aW9u cy5oIGIvc3JjL29wZW52cG4vb3B0aW9ucy5oPGJyPiZndDsgaW5kZXggOGUwZTM2Ny4uNWFlNzMz YSAxMDA2NDQ8YnI+Jmd0OyAtLS0gYS9zcmMvb3BlbnZwbi9vcHRpb25zLmg8YnI+Jmd0OyArKysg Yi9zcmMvb3BlbnZwbi9vcHRpb25zLmg8YnI+Jmd0OyBAQCAtMjkyLDYgKzI5Miw3IEBAIHN0cnVj dCBvcHRpb25zPGJyPiZndDsgYm9vbCB1cF9kZWxheTs8YnI+Jmd0OyBib29sIHVwX3Jlc3RhcnQ7 PGJyPiZndDsgYm9vbCBkYWVtb247PGJyPiZndDsgKyBib29sIGF1dGhfbm9jYWNoZTs8YnI+Jmd0 Ozxicj4mZ3Q7IGludCByZW1hcF9zaWd1c3IxOzxicj4mZ3Q7PGJyPiZndDsgQEAgLTQ2MCw2ICs0 NjEsNyBAQCBzdHJ1Y3Qgb3B0aW9uczxicj4mZ3Q7IGJvb2wgcHVsbDsgLyogY2xpZW50IHB1bGwg b2YgY29uZmlnIG9wdGlvbnMgZnJvbSBzZXJ2ZXIgKi88YnI+Jmd0OyBpbnQgcHVzaF9jb250aW51 YXRpb247PGJyPiZndDsgY29uc3QgY2hhciAqYXV0aF91c2VyX3Bhc3NfZmlsZTs8YnI+Jmd0OyAr IGNvbnN0IGNoYXIgKmF1dGhfdXNlcl9wYXNzX2ZpbGVfaW5saW5lOzxicj4mZ3Q7IHN0cnVjdCBv cHRpb25zX3ByZV9wdWxsICpwcmVfcHVsbDs8YnI+Jmd0Ozxicj4mZ3Q7IGludCBzZXJ2ZXJfcG9s bF90aW1lb3V0Ozxicj4mZ3Q7IGRpZmYgLS1naXQgYS9zcmMvb3BlbnZwbi9zc2wuYyBiL3NyYy9v cGVudnBuL3NzbC5jPGJyPiZndDsgaW5kZXggNjlmNzdmMy4uYWEyNDlmMSAxMDA2NDQ8YnI+Jmd0 OyAtLS0gYS9zcmMvb3BlbnZwbi9zc2wuYzxicj4mZ3Q7ICsrKyBiL3NyYy9vcGVudnBuL3NzbC5j PGJyPiZndDsgQEAgLTM1NCwzNiArMzU0LDg4IEBAIHN0YXRpYyBjaGFyICphdXRoX2NoYWxsZW5n ZTsgLyogR0xPQkFMICovPGJyPiZndDsgI2VuZGlmPGJyPiZndDs8YnI+Jmd0OyB2b2lkPGJyPiZn dDsgLWF1dGhfdXNlcl9wYXNzX3NldHVwIChjb25zdCBjaGFyICphdXRoX2ZpbGUsIGNvbnN0IHN0 cnVjdCBzdGF0aWNfY2hhbGxlbmdlX2luZm88YnI+Jmd0OyAqc2NpKTxicj4mZ3Q7ICthdXRoX3Vz ZXJfcGFzc19zZXR1cCAoY29uc3QgY2hhciAqYXV0aF9maWxlLCBjb25zdCBjaGFyICphdXRoX2Zp bGVfaW5saW5lLDxicj4mZ3Q7IGNvbnN0IHN0cnVjdCBzdGF0aWNfY2hhbGxlbmdlX2luZm8gKnNj aSk8YnI+Jmd0OyB7PGJyPiZndDsgKzxicj4mZ3Q7ICsgaW50IGV4dHJhX2ZsYWdzID0gMDs8YnI+ Jmd0OyArIGludCBuX2lubGluZWQgPSAwOzxicj4mZ3Q7ICsgY2hhciBpbmxpbmVkX3VzZXJuYW1l W1VTRVJfUEFTU19MRU5dOzxicj4mZ3Q7ICsgY2hhciBpbmxpbmVkX3Bhc3N3b3JkW1VTRVJfUEFT U19MRU5dOzxicj4mZ3Q7ICs8YnI+Jmd0OyBhdXRoX3VzZXJfcGFzc19lbmFibGVkID0gdHJ1ZTs8 YnI+Jmd0OyArPGJyPiZndDsgaWYgKCFhdXRoX3VzZXJfcGFzcy5kZWZpbmVkKTxicj4mZ3Q7IHs8 YnI+Jmd0OyArIGlmIChhdXRoX2ZpbGUgJmFtcDsmYW1wOyBzdHJlcSAoYXV0aF9maWxlLCAic3Rk aW4iKSAmYW1wOyZhbXA7IGF1dGhfZmlsZV9pbmxpbmUpPGJyPiZndDsgKyB7PGJyPiZndDsgKyAv KiBjaGVjayBob3cgbXVjaCBpcyBpbmxpbmVkLiAqLzxicj4mZ3Q7ICsgY29uc3QgY2hhciAqcG9z ID0gYXV0aF9maWxlX2lubGluZTs8YnI+Jmd0OyArIGNvbnN0IGNoYXIgKnByZXYgPSBwb3M7PGJy PiZndDsgKzxicj4mZ3Q7ICsgd2hpbGUoIChwb3MgPSBzdHJjaHIocG9zLCAnXG4nKSkgIT0gTlVM TCk8YnI+Jmd0OyArIHs8YnI+Jmd0OyArIG5faW5saW5lZCsrOzxicj4mZ3Q7ICs8YnI+Jmd0OyAr IGlmIChuX2lubGluZWQgPT0gMSk8YnI+Jmd0OyArIHs8YnI+Jmd0OyArIHN0cm5jcHkoaW5saW5l ZF91c2VybmFtZSwgcHJldiwgcG9zIC0gcHJldik7PGJyPiZndDsgKyBpbmxpbmVkX3VzZXJuYW1l W3BvcyAtIHByZXYgKyAxXSA9ICdcMCc7PGJyPiZndDsgKyBtc2cgKE1fSU5GTywgIlVzaW5nIGlu bGluZWQgdXNlcm5hbWU6ICVzIiwgaW5saW5lZF91c2VybmFtZSk7PGJyPiZndDsgKyB9PGJyPiZn dDsgKyBlbHNlPGJyPiZndDsgKyB7PGJyPiZndDsgKyBzdHJuY3B5KGlubGluZWRfcGFzc3dvcmQs IHByZXYsIHBvcyAtIHByZXYpOzxicj4mZ3Q7ICsgaW5saW5lZF9wYXNzd29yZFtwb3MgLSBwcmV2 ICsgMV0gPSAnXDAnOzxicj4mZ3Q7ICsgbXNnIChNX0lORk8sICJVc2luZyBpbmxpbmVkIHBhc3N3 b3JkOiAuLi4iKTs8YnI+Jmd0OyArIH08YnI+Jmd0OyArPGJyPiZndDsgKyBwb3MrKzs8YnI+Jmd0 OyArIHByZXYgPSBwb3M7PGJyPiZndDsgKyB9PGJyPiZndDsgKzxicj4mZ3Q7ICsgaWYgKG5faW5s aW5lZCA9PSAxKTxicj4mZ3Q7ICsgZXh0cmFfZmxhZ3MgPSBHRVRfVVNFUl9QQVNTX1BBU1NXT1JE X09OTFk7PGJyPiZndDsgKyB9PGJyPiZndDsgKzxicj4mZ3Q7ICsgaWYgKG5faW5saW5lZCA9PSAy KTxicj4mZ3Q7ICsgezxicj4mZ3Q7ICsgc3RyY3B5KGF1dGhfdXNlcl9wYXNzLnVzZXJuYW1lLCBp bmxpbmVkX3VzZXJuYW1lKTs8YnI+Jmd0OyArIHN0cmNweShhdXRoX3VzZXJfcGFzcy5wYXNzd29y ZCwgaW5saW5lZF9wYXNzd29yZCk7PGJyPiZndDsgKyBhdXRoX3VzZXJfcGFzcy5kZWZpbmVkID0g dHJ1ZTs8YnI+Jmd0OyArIH08YnI+Jmd0OyArIGVsc2U8YnI+Jmd0OyArIHs8YnI+Jmd0OyAjaWYg QVVUT19VU0VSSUQ8YnI+Jmd0OyAtIGdldF91c2VyX3Bhc3NfYXV0b191c2VyaWQgKCZhbXA7YXV0 aF91c2VyX3Bhc3MsIGF1dGhfZmlsZSk7PGJyPiZndDsgKyBnZXRfdXNlcl9wYXNzX2F1dG9fdXNl cmlkICgmYW1wO2F1dGhfdXNlcl9wYXNzLCBhdXRoX2ZpbGUpOzxicj4mZ3Q7ICNlbHNlPGJyPiZn dDsgIyBpZmRlZiBFTkFCTEVfQ0xJRU5UX0NSPGJyPiZndDsgLSBpZiAoYXV0aF9jaGFsbGVuZ2Up IC8qIGR5bmFtaWMgY2hhbGxlbmdlL3Jlc3BvbnNlICovPGJyPiZndDsgLSBnZXRfdXNlcl9wYXNz X2NyICgmYW1wO2F1dGhfdXNlcl9wYXNzLDxicj4mZ3Q7IC0gYXV0aF9maWxlLDxicj4mZ3Q7IC0g VVBfVFlQRV9BVVRILDxicj4mZ3Q7IC0gR0VUX1VTRVJfUEFTU19NQU5BR0VNRU5UfEdFVF9VU0VS X1BBU1NfU0VOU0lUSVZFfEdFVF9VU0VSX1BBU1NfRFlOQU1JQ19DSEFMTEVOR0UsPGJyPiZndDsg LSBhdXRoX2NoYWxsZW5nZSk7PGJyPiZndDsgLSBlbHNlIGlmIChzY2kpIC8qIHN0YXRpYyBjaGFs bGVuZ2UgcmVzcG9uc2UgKi88YnI+Jmd0OyAtIHs8YnI+Jmd0OyAtIGludCBmbGFncyA9PGJyPiZn dDsgR0VUX1VTRVJfUEFTU19NQU5BR0VNRU5UfEdFVF9VU0VSX1BBU1NfU0VOU0lUSVZFfEdFVF9V U0VSX1BBU1NfU1RBVElDX0NIQUxMRU5HRTs8YnI+Jmd0OyAtIGlmIChzY2ktJmd0O2ZsYWdzICZh bXA7IFNDX0VDSE8pPGJyPiZndDsgLSBmbGFncyB8PSBHRVRfVVNFUl9QQVNTX1NUQVRJQ19DSEFM TEVOR0VfRUNITzs8YnI+Jmd0OyAtIGdldF91c2VyX3Bhc3NfY3IgKCZhbXA7YXV0aF91c2VyX3Bh c3MsPGJyPiZndDsgLSBhdXRoX2ZpbGUsPGJyPiZndDsgLSBVUF9UWVBFX0FVVEgsPGJyPiZndDsg LSBmbGFncyw8YnI+Jmd0OyAtIHNjaS0mZ3Q7Y2hhbGxlbmdlX3RleHQpOzxicj4mZ3Q7IC0gfTxi cj4mZ3Q7IC0gZWxzZTxicj4mZ3Q7ICsgaWYgKGF1dGhfY2hhbGxlbmdlKSAvKiBkeW5hbWljIGNo YWxsZW5nZS9yZXNwb25zZSAqLzxicj4mZ3Q7ICsgZ2V0X3VzZXJfcGFzc19jciAoJmFtcDthdXRo X3VzZXJfcGFzcyw8YnI+Jmd0OyArIGF1dGhfZmlsZSw8YnI+Jmd0OyArIFVQX1RZUEVfQVVUSCw8 YnI+Jmd0OyArPGJyPiZndDsgR0VUX1VTRVJfUEFTU19NQU5BR0VNRU5UfEdFVF9VU0VSX1BBU1Nf U0VOU0lUSVZFfEdFVF9VU0VSX1BBU1NfRFlOQU1JQ19DSEFMTEVOR0V8ZXh0cmFfZmxhZ3MsPGJy PiZndDsgKyBhdXRoX2NoYWxsZW5nZSk7PGJyPiZndDsgKyBlbHNlIGlmIChzY2kpIC8qIHN0YXRp YyBjaGFsbGVuZ2UgcmVzcG9uc2UgKi88YnI+Jmd0OyArIHs8YnI+Jmd0OyArIGludCBmbGFncyA9 PGJyPiZndDsgR0VUX1VTRVJfUEFTU19NQU5BR0VNRU5UfEdFVF9VU0VSX1BBU1NfU0VOU0lUSVZF fEdFVF9VU0VSX1BBU1NfU1RBVElDX0NIQUxMRU5HRXxleHRyYV9mbGFnczs8YnI+Jmd0OyArIGlm IChzY2ktJmd0O2ZsYWdzICZhbXA7IFNDX0VDSE8pPGJyPiZndDsgKyBmbGFncyB8PSBHRVRfVVNF Ul9QQVNTX1NUQVRJQ19DSEFMTEVOR0VfRUNITzs8YnI+Jmd0OyArPGJyPiZndDsgKyBnZXRfdXNl cl9wYXNzX2NyICgmYW1wO2F1dGhfdXNlcl9wYXNzLDxicj4mZ3Q7ICsgYXV0aF9maWxlLDxicj4m Z3Q7ICsgVVBfVFlQRV9BVVRILDxicj4mZ3Q7ICsgZmxhZ3MsPGJyPiZndDsgKyBzY2ktJmd0O2No YWxsZW5nZV90ZXh0KTs8YnI+Jmd0OyArIH08YnI+Jmd0OyArIGVsc2U8YnI+Jmd0OyAjIGVuZGlm PGJyPiZndDsgLSBnZXRfdXNlcl9wYXNzICgmYW1wO2F1dGhfdXNlcl9wYXNzLCBhdXRoX2ZpbGUs IFVQX1RZUEVfQVVUSCw8YnI+Jmd0OyBHRVRfVVNFUl9QQVNTX01BTkFHRU1FTlR8R0VUX1VTRVJf UEFTU19TRU5TSVRJVkUpOzxicj4mZ3Q7ICsgZ2V0X3VzZXJfcGFzcyAoJmFtcDthdXRoX3VzZXJf cGFzcywgYXV0aF9maWxlLCBVUF9UWVBFX0FVVEgsPGJyPiZndDsgR0VUX1VTRVJfUEFTU19NQU5B R0VNRU5UfEdFVF9VU0VSX1BBU1NfU0VOU0lUSVZFfGV4dHJhX2ZsYWdzKTs8YnI+Jmd0OyAjZW5k aWY8YnI+Jmd0OyArIH08YnI+Jmd0OyArPGJyPiZndDsgKyBpZiAobl9pbmxpbmVkID09IDEpPGJy PiZndDsgKyBzdHJjcHkoYXV0aF91c2VyX3Bhc3MudXNlcm5hbWUsIGlubGluZWRfdXNlcm5hbWUp Ozxicj4mZ3Q7ICs8YnI+Jmd0OyB9PGJyPiZndDsgfTxicj4mZ3Q7PGJyPiZndDsgQEAgLTE4OTIs OSArMTk0NCw5IEBAIGtleV9tZXRob2RfMl93cml0ZSAoc3RydWN0IGJ1ZmZlciAqYnVmLCBzdHJ1 Y3QgdGxzX3Nlc3Npb248YnI+Jmd0OyAqc2Vzc2lvbik8YnI+Jmd0OyBpZiAoYXV0aF91c2VyX3Bh c3NfZW5hYmxlZCk8YnI+Jmd0OyB7PGJyPiZndDsgI2lmZGVmIEVOQUJMRV9DTElFTlRfQ1I8YnI+ Jmd0OyAtIGF1dGhfdXNlcl9wYXNzX3NldHVwIChOVUxMLCBzZXNzaW9uLSZndDtvcHQtJmd0O3Nj aSk7PGJyPiZndDsgKyBhdXRoX3VzZXJfcGFzc19zZXR1cCAoTlVMTCwgTlVMTCwgc2Vzc2lvbi0m Z3Q7b3B0LSZndDtzY2kpOzxicj4mZ3Q7ICNlbHNlPGJyPiZndDsgLSBhdXRoX3VzZXJfcGFzc19z ZXR1cCAoTlVMTCwgTlVMTCk7PGJyPiZndDsgKyBhdXRoX3VzZXJfcGFzc19zZXR1cCAoTlVMTCwg TlVMTCwgTlVMTCk7PGJyPiZndDsgI2VuZGlmPGJyPiZndDsgaWYgKCF3cml0ZV9zdHJpbmcgKGJ1 ZiwgYXV0aF91c2VyX3Bhc3MudXNlcm5hbWUsIC0xKSk8YnI+Jmd0OyBnb3RvIGVycm9yOzxicj4m Z3Q7IGRpZmYgLS1naXQgYS9zcmMvb3BlbnZwbi9zc2wuaCBiL3NyYy9vcGVudnBuL3NzbC5oPGJy PiZndDsgaW5kZXggY2Q3Y2FlMi4uYzc1NTRhYSAxMDA2NDQ8YnI+Jmd0OyAtLS0gYS9zcmMvb3Bl bnZwbi9zc2wuaDxicj4mZ3Q7ICsrKyBiL3NyYy9vcGVudnBuL3NzbC5oPGJyPiZndDsgQEAgLTM4 OCw3ICszODgsNyBAQCB2b2lkIHBlbV9wYXNzd29yZF9zZXR1cCAoY29uc3QgY2hhciAqYXV0aF9m aWxlKTs8YnI+Jmd0OyAqIFNldHVwIGF1dGhlbnRpY2F0aW9uIHVzZXJuYW1lIGFuZCBwYXNzd29y ZC4gSWYgYXV0aF9maWxlIGlzIGdpdmVuLCB1c2UgdGhlPGJyPiZndDsgKiBjcmVkZW50aWFscyBz dG9yZWQgaW4gdGhlIGZpbGUuPGJyPiZndDsgKi88YnI+Jmd0OyAtdm9pZCBhdXRoX3VzZXJfcGFz c19zZXR1cCAoY29uc3QgY2hhciAqYXV0aF9maWxlLCBjb25zdCBzdHJ1Y3Q8YnI+Jmd0OyBzdGF0 aWNfY2hhbGxlbmdlX2luZm8gKnNjX2luZm8pOzxicj4mZ3Q7ICt2b2lkIGF1dGhfdXNlcl9wYXNz X3NldHVwIChjb25zdCBjaGFyICphdXRoX2ZpbGUsIGNvbnN0IGNoYXIgKmF1dGhfZmlsZV9pbmxp bmUsPGJyPiZndDsgY29uc3Qgc3RydWN0IHN0YXRpY19jaGFsbGVuZ2VfaW5mbyAqc2NfaW5mbyk7 PGJyPiZndDs8YnI+Jmd0OyAvKjxicj4mZ3Q7ICogRW5zdXJlIHRoYXQgbm8gY2FjaGluZyBpcyBw ZXJmb3JtZWQgb24gYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb248YnI+Jmd0OyAtLTxicj4mZ3Q7 IDEuNy4xMC40LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPiZndDsgT2N0b2JlciBXZWJpbmFyczog Q29kZSBmb3IgUGVyZm9ybWFuY2U8YnI+Jmd0OyBGcmVlIEludGVsIHdlYmluYXJzIGNhbiBoZWxw IHlvdSBhY2NlbGVyYXRlIGFwcGxpY2F0aW9uIHBlcmZvcm1hbmNlLjxicj4mZ3Q7IEV4cGxvcmUg dGlwcyBmb3IgTVBJLCBPcGVuTVAsIGFkdmFuY2VkIHByb2ZpbGluZywgYW5kIG1vcmUuIEdldCB0 aGUgbW9zdCBmcm9tPGJyPiZndDsgdGhlIGxhdGVzdCBJbnRlbCBwcm9jZXNzb3JzIGFuZCBjb3By b2Nlc3NvcnMuIFNlZSBhYnN0cmFjdHMgYW5kIHJlZ2lzdGVyICZndDs8YnI+Jmd0OyBodHRwOi8v cHViYWRzLmcuZG91YmxlY2xpY2submV0L2dhbXBhZC9jbGs/aWQ9NjAxMzQ3OTEmYW1wO2l1PS80 MTQwL29zdGcuY2xrdHJrX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX188YnI+Jmd0OyBPcGVudnBuLWRldmVsIG1haWxpbmcgbGlzdDxicj4mZ3Q7IE9wZW52cG4t ZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0PGJyPiZndDsgaHR0cHM6Ly9saXN0cy5zb3VyY2Vm b3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vb3BlbnZwbi1kZXZlbFtodHRwczovL2xpc3RzLnNvdXJj ZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9vcGVudnBuLWRldmVsXTxicj4mZ3Q7PGJyPiZndDs8 YnI+Jmd0Ozxicj4mZ3Q7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4mZ3Q7IE9jdG9iZXIgV2Vi aW5hcnM6IENvZGUgZm9yIFBlcmZvcm1hbmNlPGJyPiZndDsgRnJlZSBJbnRlbCB3ZWJpbmFycyBj YW4gaGVscCB5b3UgYWNjZWxlcmF0ZSBhcHBsaWNhdGlvbiBwZXJmb3JtYW5jZS48YnI+Jmd0OyBF eHBsb3JlIHRpcHMgZm9yIE1QSSwgT3Blbk1QLCBhZHZhbmNlZCBwcm9maWxpbmcsIGFuZCBtb3Jl LiBHZXQgdGhlIG1vc3QgZnJvbTxicj4mZ3Q7IHRoZSBsYXRlc3QgSW50ZWwgcHJvY2Vzc29ycyBh bmQgY29wcm9jZXNzb3JzLiBTZWUgYWJzdHJhY3RzIGFuZCByZWdpc3RlciAmZ3Q7PGJyPiZndDsg aHR0cDovL3B1YmFkcy5nLmRvdWJsZWNsaWNrLm5ldC9nYW1wYWQvY2xrP2lkPTYwMTM0NzkxJmFt cDtpdT0vNDE0MC9vc3RnLmNsa3Rya1todHRwOi8vcHViYWRzLmcuZG91YmxlY2xpY2submV0L2dh bXBhZC9jbGs/aWQ9NjAxMzQ3OTEmYW1wO2l1PS80MTQwL29zdGcuY2xrdHJrXTxicj4mZ3Q7PGJy PiZndDs8YnI+Jmd0Ozxicj4mZ3Q7IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fPGJyPiZndDsgT3BlbnZwbi1kZXZlbCBtYWlsaW5nIGxpc3Q8YnI+Jmd0OyBP cGVudnBuLWRldmVsQC4uLjE4NDQuLi47IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xp c3RzL2xpc3RpbmZvL29wZW52cG4tZGV2ZWxbaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQv bGlzdHMvbGlzdGluZm8vb3BlbnZwbi1kZXZlbF08YnI+Jmd0Ozxicj48YnI+PGJyPi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLTxicj5PY3RvYmVyIFdlYmluYXJzOiBDb2RlIGZvciBQZXJmb3JtYW5jZTxi cj5GcmVlIEludGVsIHdlYmluYXJzIGNhbiBoZWxwIHlvdSBhY2NlbGVyYXRlIGFwcGxpY2F0aW9u IHBlcmZvcm1hbmNlLjxicj5FeHBsb3JlIHRpcHMgZm9yIE1QSSwgT3Blbk1QLCBhZHZhbmNlZCBw cm9maWxpbmcsIGFuZCBtb3JlLiBHZXQgdGhlIG1vc3QgZnJvbTxicj50aGUgbGF0ZXN0IEludGVs IHByb2Nlc3NvcnMgYW5kIGNvcHJvY2Vzc29ycy4gU2VlIGFic3RyYWN0cyBhbmQgcmVnaXN0ZXIg Jmd0Ozxicj5odHRwOi8vcHViYWRzLmcuZG91YmxlY2xpY2submV0L2dhbXBhZC9jbGs/aWQ9NjAx MzQ3OTEmYW1wO2l1PS80MTQwL29zdGcuY2xrdHJrW2h0dHA6Ly9wdWJhZHMuZy5kb3VibGVjbGlj ay5uZXQvZ2FtcGFkL2Nsaz9pZD02MDEzNDc5MSZhbXA7aXU9LzQxNDAvb3N0Zy5jbGt0cmtdPGJy Pl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPk9wZW52 cG4tZGV2ZWwgbWFpbGluZyBsaXN0PGJyPk9wZW52cG4tZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2Uu bmV0PGJyPmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL29wZW52 cG4tZGV2ZWxbaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vb3Bl bnZwbi1kZXZlbF08YnI+PC9ib2R5Pg== ----_com.android.email_4628067971907--