From mboxrd@z Thu Jan 1 00:00:00 1970 From: Isaila Alexandru Subject: PING: [PATCH v3] x86/mm: Add mem access rights to NPT Date: Tue, 17 Jul 2018 15:59:51 +0300 Message-ID: <1531832391.10865.7.camel@bitdefender.com> References: <1530535351-5516-1-git-send-email-aisaila@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1530535351-5516-1-git-send-email-aisaila@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com, tamas@tklengyel.com, jbeulich@suse.com, rcojocaru@bitdefender.com List-Id: xen-devel@lists.xenproject.org QW55IHRob3VnaHRzIG9uIHRoaXMgcGF0Y2ggYXJlIGFwcHJlY2lhdGVkLgoKVGhhbmtzLMKgCkFs ZXgKwqAKT24gTHUsIDIwMTgtMDctMDIgYXQgMTU6NDIgKzAzMDAsIEFsZXhhbmRydSBJc2FpbGEg d3JvdGU6Cj4gRnJvbTogSXNhaWxhIEFsZXhhbmRydSA8YWlzYWlsYUBiaXRkZWZlbmRlci5jb20+ Cj4gCj4gVGhpcyBwYXRjaCBhZGRzIGFjY2VzcyByaWdodHMgZm9yIHRoZSBOUFQgcGFnZXMuIFRo ZSBhY2Nlc3MgcmlnaHRzCj4gYXJlCj4gc2F2ZWQgaW4gYSByYWRpeCB0cmVlIHdpdGggdGhlIHJv b3Qgc2F2ZWQgaW4gcDJtX2RvbWFpbi4gVGhlIHJpZ2h0cwo+IGFyZSBtYW5pcHVsYXRlZCB0aHJv dWdoIHAybV9zZXRfYWNjZXNzKCkKPiBhbmQgcDJtX2dldF9hY2Nlc3MoKSBmdW5jdGlvbnMuCj4g VGhlIHBhdGNoIGZvbGxvd3MgdGhlIGVwdCBsb2dpYy4KPiAKPiBOb3RlOiBJdCB3YXMgdGVzdGVk IHdpdGggeGVuLWFjY2VzcyB3cml0ZQo+IAo+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRydSBJc2Fp bGEgPGFpc2FpbGFAYml0ZGVmZW5kZXIuY29tPgo+IAo+IC0tLQo+IENoYW5nZXMgc2luY2UgVjI6 Cj4gCS0gRGVsZXRlIGJsYWsgbGluZQo+IAktIEFkZCByZXR1cm4gaWYgcDJtX2FjY2Vzc19yd3gg PSBhCj4gCS0gRGVsZXRlIHRoZSBjb21tZW50IGZyb20gcDJtX3B0X2dldF9lbnRyeSgpCj4gCS0g TW92ZWQgcmFkaXhfdHJlZV9pbml0KCkgdG8gYXJjaF9tb25pdG9yX2luaXRfZG9tYWluKCkuCj4g LS0tCj4gwqB4ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jwqDCoMKgwqDCoHzCoMKgwqAzICsr Cj4gwqB4ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmPCoMKgwqDCoMKgwqDCoMKgwqB8IDEwOQo+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+IMKgeGVuL2FyY2gveDg2L21t L3AybS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDYgKysrCj4gwqB4ZW4vYXJjaC94 ODYvbW9uaXRvci5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMTMgKysrKysKPiDCoHhlbi9p bmNsdWRlL2FzbS14ODYvbWVtX2FjY2Vzcy5oIHzCoMKgwqAyICstCj4gwqB4ZW4vaW5jbHVkZS9h c20teDg2L3AybS5owqDCoMKgwqDCoMKgwqDCoHzCoMKgwqA2ICsrKwo+IMKgNiBmaWxlcyBjaGFu Z2VkLCAxMjQgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNjZXNzLmMKPiBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNj ZXNzLmMKPiBpbmRleCBjMGNkMDE3Li5kNzhjODJjIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9tZW1fYWNjZXNzLmMKPiArKysgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jCj4g QEAgLTIyMSw3ICsyMjEsMTAgQEAgYm9vbCBwMm1fbWVtX2FjY2Vzc19jaGVjayhwYWRkcl90IGdw YSwgdW5zaWduZWQKPiBsb25nIGdsYSwKPiDCoMKgwqDCoMKgwqDCoMKgwqB7Cj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqByZXEtPnUubWVtX2FjY2Vzcy5mbGFncyB8PSBNRU1fQUNDRVNTX0dM QV9WQUxJRDsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJlcS0+dS5tZW1fYWNjZXNzLmds YSA9IGdsYTsKPiArwqDCoMKgwqDCoMKgwqDCoH0KPiDCoAo+ICvCoMKgwqDCoMKgwqDCoMKgaWYg KCBucGZlYy5nbGFfdmFsaWQgfHwgY3B1X2hhc19zdm0gKQo+ICvCoMKgwqDCoMKgwqDCoMKgewo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCBucGZlYy5raW5kID09IG5wZmVjX2tpbmRf d2l0aF9nbGEgKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXEtPnUubWVt X2FjY2Vzcy5mbGFncyB8PQo+IE1FTV9BQ0NFU1NfRkFVTFRfV0lUSF9HTEE7Cj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBlbHNlIGlmICggbnBmZWMua2luZCA9PSBucGZlY19raW5kX2luX2dw dCApCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tcHQuYwo+IGluZGV4IGI4YzVkMmUuLjQzMzBkMWYgMTAwNjQ0Cj4gLS0tIGEveGVu L2FyY2gveDg2L21tL3AybS1wdC5jCj4gKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCj4g QEAgLTY4LDcgKzY4LDggQEAKPiDCoHN0YXRpYyB1bnNpZ25lZCBsb25nIHAybV90eXBlX3RvX2Zs YWdzKGNvbnN0IHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBwMm1fdHlwZV90IHQsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtZm5fdCBtZm4sCj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGludCBsZXZlbCkKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgdW5zaWduZWQgaW50IGxldmVsLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwMm1fYWNj ZXNzX3QgYWNjZXNzKQo+IMKgewo+IMKgwqDCoMKgwqB1bnNpZ25lZCBsb25nIGZsYWdzOwo+IMKg wqDCoMKgwqAvKgo+IEBAIC04NywyMyArODgsMjcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgcDJt X3R5cGVfdG9fZmxhZ3MoY29uc3QKPiBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAo+IMKgwqDCoMKg wqBjYXNlIHAybV9yYW1fcGFnZWQ6Cj4gwqDCoMKgwqDCoGNhc2UgcDJtX3JhbV9wYWdpbmdfaW46 Cj4gwqDCoMKgwqDCoGRlZmF1bHQ6Cj4gLcKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmxhZ3MgfCBf UEFHRV9OWF9CSVQ7Cj4gK8KgwqDCoMKgwqDCoMKgwqBmbGFncyB8PSBQMk1fQkFTRV9GTEFHUyB8 IF9QQUdFX05YX0JJVDsKPiArwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+IMKgwqDCoMKgwqBjYXNl IHAybV9ncmFudF9tYXBfcm86Cj4gwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGZsYWdzIHwgUDJN X0JBU0VfRkxBR1MgfCBfUEFHRV9OWF9CSVQ7Cj4gwqDCoMKgwqDCoGNhc2UgcDJtX2lvcmVxX3Nl cnZlcjoKPiDCoMKgwqDCoMKgwqDCoMKgwqBmbGFncyB8PSBQMk1fQkFTRV9GTEFHUyB8IF9QQUdF X1JXIHwgX1BBR0VfTlhfQklUOwo+IMKgwqDCoMKgwqDCoMKgwqDCoGlmICggcDJtLT5pb3JlcS5m bGFncyAmIFhFTl9ETU9QX0lPUkVRX01FTV9BQ0NFU1NfV1JJVEUgKQo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqByZXR1cm4gZmxhZ3MgJiB+X1BBR0VfUlc7Cj4gLcKgwqDCoMKgwqDCoMKgwqBy ZXR1cm4gZmxhZ3M7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsYWdzICY9IH5fUEFHRV9S VzsKPiArwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+IMKgwqDCoMKgwqBjYXNlIHAybV9yYW1fcm86 Cj4gwqDCoMKgwqDCoGNhc2UgcDJtX3JhbV9sb2dkaXJ0eToKPiDCoMKgwqDCoMKgY2FzZSBwMm1f cmFtX3NoYXJlZDoKPiAtwqDCoMKgwqDCoMKgwqDCoHJldHVybiBmbGFncyB8IFAyTV9CQVNFX0ZM QUdTOwo+ICvCoMKgwqDCoMKgwqDCoMKgZmxhZ3MgfD0gUDJNX0JBU0VfRkxBR1M7Cj4gK8KgwqDC oMKgwqDCoMKgwqBicmVhazsKPiDCoMKgwqDCoMKgY2FzZSBwMm1fcmFtX3J3Ogo+IC3CoMKgwqDC oMKgwqDCoMKgcmV0dXJuIGZsYWdzIHwgUDJNX0JBU0VfRkxBR1MgfCBfUEFHRV9SVzsKPiArwqDC oMKgwqDCoMKgwqDCoGZsYWdzIHw9IFAyTV9CQVNFX0ZMQUdTIHwgX1BBR0VfUlc7Cj4gK8KgwqDC oMKgwqDCoMKgwqBicmVhazsKPiDCoMKgwqDCoMKgY2FzZSBwMm1fZ3JhbnRfbWFwX3J3Ogo+IMKg wqDCoMKgwqBjYXNlIHAybV9tYXBfZm9yZWlnbjoKPiAtwqDCoMKgwqDCoMKgwqDCoHJldHVybiBm bGFncyB8IFAyTV9CQVNFX0ZMQUdTIHwgX1BBR0VfUlcgfCBfUEFHRV9OWF9CSVQ7Cj4gK8KgwqDC oMKgwqDCoMKgwqBmbGFncyB8PSBQMk1fQkFTRV9GTEFHUyB8IF9QQUdFX1JXIHwgX1BBR0VfTlhf QklUOwo+ICvCoMKgwqDCoMKgwqDCoMKgYnJlYWs7Cj4gwqDCoMKgwqDCoGNhc2UgcDJtX21taW9f ZGlyZWN0Ogo+IMKgwqDCoMKgwqDCoMKgwqDCoGlmICggIXJhbmdlc2V0X2NvbnRhaW5zX3Npbmds ZXRvbihtbWlvX3JvX3JhbmdlcywKPiBtZm5feChtZm4pKSApCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBmbGFncyB8PSBfUEFHRV9SVzsKPiBAQCAtMTEyLDggKzExNywzNyBAQCBzdGF0aWMg dW5zaWduZWQgbG9uZyBwMm1fdHlwZV90b19mbGFncyhjb25zdAo+IHN0cnVjdCBwMm1fZG9tYWlu ICpwMm0sCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbGFncyB8PSBfUEFHRV9QV1Q7Cj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBBU1NFUlQoIWxldmVsKTsKPiDCoMKgwqDCoMKgwqDC oMKgwqB9Cj4gLcKgwqDCoMKgwqDCoMKgwqByZXR1cm4gZmxhZ3MgfCBQMk1fQkFTRV9GTEFHUyB8 IF9QQUdFX1BDRDsKPiArwqDCoMKgwqDCoMKgwqDCoGZsYWdzIHw9IFAyTV9CQVNFX0ZMQUdTIHwg X1BBR0VfUENEOwo+ICvCoMKgwqDCoMKgwqDCoMKgYnJlYWs7Cj4gK8KgwqDCoMKgfQo+ICvCoMKg wqDCoHN3aXRjaCAoIGFjY2VzcyApCj4gK8KgwqDCoMKgewo+ICvCoMKgwqDCoMKgwqDCoMKgY2Fz ZSBwMm1fYWNjZXNzX3I6Cj4gK8KgwqDCoMKgwqDCoMKgwqBjYXNlIHAybV9hY2Nlc3NfdzoKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxhZ3MgfD0gX1BBR0VfTlhfQklUOwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBmbGFncyAmPSB+X1BBR0VfUlc7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGJyZWFrOwo+ICvCoMKgwqDCoMKgwqDCoMKgY2FzZSBwMm1fYWNjZXNzX3J3Ogo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbGFncyB8PSBfUEFHRV9OWF9CSVQ7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+ICvCoMKgwqDCoMKgwqDCoMKgY2FzZSBwMm1fYWNjZXNz X246Cj4gK8KgwqDCoMKgwqDCoMKgwqBjYXNlIHAybV9hY2Nlc3NfbjJyd3g6Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGZsYWdzIHw9IF9QQUdFX05YX0JJVDsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZmxhZ3MgJj0gfl9QQUdFX1JXOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBi cmVhazsKPiArwqDCoMKgwqDCoMKgwqDCoGNhc2UgcDJtX2FjY2Vzc19yeDoKPiArwqDCoMKgwqDC oMKgwqDCoGNhc2UgcDJtX2FjY2Vzc193eDoKPiArwqDCoMKgwqDCoMKgwqDCoGNhc2UgcDJtX2Fj Y2Vzc19yeDJydzoKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZmxhZ3MgJj0gfihfUEFHRV9O WF9CSVQgfCBfUEFHRV9SVyk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+ICvC oMKgwqDCoMKgwqDCoMKgY2FzZSBwMm1fYWNjZXNzX3g6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGZsYWdzICY9IH5fUEFHRV9SVzsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7 Cj4gK8KgwqDCoMKgwqDCoMKgwqBjYXNlIHAybV9hY2Nlc3Nfcnd4Ogo+ICvCoMKgwqDCoMKgwqDC oMKgZGVmYXVsdDoKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7Cj4gwqDCoMKgwqDC oH0KPiArwqDCoMKgwqByZXR1cm4gZmxhZ3M7Cj4gwqB9Cj4gwqAKPiDCoAo+IEBAIC0xNzQsNiAr MjA4LDQ0IEBAIHN0YXRpYyB2b2lkIHAybV9hZGRfaW9tbXVfZmxhZ3MobDFfcGdlbnRyeV90Cj4g KnAybV9lbnRyeSwKPiDCoMKgwqDCoMKgwqDCoMKgwqBsMWVfYWRkX2ZsYWdzKCpwMm1fZW50cnks IGlvbW11X25sZXZlbF90b19mbGFncyhubGV2ZWwsCj4gZmxhZ3MpKTsKPiDCoH0KPiDCoAo+ICtz dGF0aWMgcDJtX2FjY2Vzc190IHAybV9nZXRfYWNjZXNzKHN0cnVjdCBwMm1fZG9tYWluICpwMm0s IHVuc2lnbmVkCj4gbG9uZyBnZm4pCj4gK3sKPiArwqDCoMKgwqB2b2lkICpwdHI7Cj4gKwo+ICvC oMKgwqDCoGlmICggIXAybS0+bWVtX2FjY2Vzc19zZXR0aW5ncyApCj4gK8KgwqDCoMKgwqDCoMKg wqByZXR1cm4gcDJtX2FjY2Vzc19yd3g7Cj4gKwo+ICvCoMKgwqDCoHB0ciA9IHJhZGl4X3RyZWVf bG9va3VwKHAybS0+bWVtX2FjY2Vzc19zZXR0aW5ncywgZ2ZuKTsKPiArwqDCoMKgwqBpZiAoICFw dHIgKQo+ICvCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHAybV9hY2Nlc3Nfcnd4Owo+ICvCoMKgwqDC oGVsc2UKPiArwqDCoMKgwqDCoMKgwqDCoHJldHVybiByYWRpeF90cmVlX3B0cl90b19pbnQocHRy KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgcDJtX3NldF9hY2Nlc3Moc3RydWN0IHAybV9kb21h aW4gKnAybSwgdW5zaWduZWQgbG9uZwo+IGdmbiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHAybV9h Y2Nlc3NfdCBhKQo+ICt7Cj4gK8KgwqDCoMKgaW50IHJjOwo+ICsKPiArwqDCoMKgwqBpZiAoICFw Mm0tPm1lbV9hY2Nlc3Nfc2V0dGluZ3MgKQo+ICvCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+ICsK PiArwqDCoMKgwqBpZiAoIHAybV9hY2Nlc3Nfcnd4ID09IGEgKQo+ICvCoMKgwqDCoHsKPiArwqDC oMKgwqDCoMKgwqDCoHJhZGl4X3RyZWVfZGVsZXRlKHAybS0+bWVtX2FjY2Vzc19zZXR0aW5ncywg Z2ZuKTsKPiArwqDCoMKgwqDCoMKgwqDCoHJldHVybjsKPiArwqDCoMKgwqB9Cj4gKwo+ICvCoMKg wqDCoHJjID0gcmFkaXhfdHJlZV9pbnNlcnQocDJtLT5tZW1fYWNjZXNzX3NldHRpbmdzLCBnZm4s Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHJhZGl4X3RyZWVfaW50X3RvX3B0cihhKSk7Cj4gK8KgwqDCoMKgaWYgKCByYyA9PSAtRUVYSVNU ICkKPiArwqDCoMKgwqDCoMKgwqDCoC8qIElmIGEgc2V0dGluZyBhbHJlYWR5IGV4aXN0cywgY2hh bmdlIGl0IHRvIHRoZSBuZXcgb25lLiAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgcmFkaXhfdHJlZV9y ZXBsYWNlX3Nsb3QoCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJhZGl4X3RyZWVfbG9va3Vw X3Nsb3QoCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcDJtLT5tZW1fYWNjZXNz X3NldHRpbmdzLCBnZm4pLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYWRpeF90cmVlX2lu dF90b19wdHIoYSkpOwo+ICt9Cj4gKwo+IMKgLyogUmV0dXJuczogMCBmb3Igc3VjY2VzcywgLWVy cm5vIGZvciBmYWlsdXJlICovCj4gwqBzdGF0aWMgaW50Cj4gwqBwMm1fbmV4dF9sZXZlbChzdHJ1 Y3QgcDJtX2RvbWFpbiAqcDJtLCB2b2lkICoqdGFibGUsCj4gQEAgLTIwMSw2ICsyNzMsNyBAQCBw Mm1fbmV4dF9sZXZlbChzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB2b2lkCj4gKip0YWJsZSwKPiDC oMKgwqDCoMKgwqDCoMKgwqBuZXdfZW50cnkgPSBsMWVfZnJvbV9tZm4obWZuLCBQMk1fQkFTRV9G TEFHUyB8IF9QQUdFX1JXKTsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqDCoHAybV9hZGRfaW9tbXVf ZmxhZ3MoJm5ld19lbnRyeSwgbGV2ZWwsCj4gSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJs ZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqBwMm1fc2V0X2FjY2VzcyhwMm0sIGdmbiwgcDJtLT5kZWZh dWx0X2FjY2Vzcyk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgcDJtLT53cml0ZV9wMm1fZW50cnkocDJt LCBnZm4sIHAybV9lbnRyeSwgbmV3X2VudHJ5LCBsZXZlbCArCj4gMSk7Cj4gwqDCoMKgwqDCoH0K PiDCoMKgwqDCoMKgZWxzZSBpZiAoIGZsYWdzICYgX1BBR0VfUFNFICkKPiBAQCAtMjQ5LDYgKzMy Miw3IEBAIHAybV9uZXh0X2xldmVsKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHZvaWQKPiAqKnRh YmxlLAo+IMKgwqDCoMKgwqDCoMKgwqDCoHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5l d19lbnRyeSA9IGwxZV9mcm9tX3BmbihwZm4gfCAoaSA8PCAoKGxldmVsIC0gMSkgKgo+IFBBR0VU QUJMRV9PUkRFUikpLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbGFncyk7Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHAybV9zZXRfYWNjZXNzKHAybSwgZ2ZuLCBwMm0tPmRlZmF1bHRfYWNjZXNz KTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHAybS0+d3JpdGVfcDJtX2VudHJ5KHAybSwg Z2ZuLCBsMV9lbnRyeSArIGksIG5ld19lbnRyeSwKPiBsZXZlbCk7Cj4gwqDCoMKgwqDCoMKgwqDC oMKgfQo+IMKgCj4gQEAgLTI1Niw2ICszMzAsNyBAQCBwMm1fbmV4dF9sZXZlbChzdHJ1Y3QgcDJt X2RvbWFpbiAqcDJtLCB2b2lkCj4gKip0YWJsZSwKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqDCoG5l d19lbnRyeSA9IGwxZV9mcm9tX21mbihtZm4sIFAyTV9CQVNFX0ZMQUdTIHwgX1BBR0VfUlcpOwo+ IMKgwqDCoMKgwqDCoMKgwqDCoHAybV9hZGRfaW9tbXVfZmxhZ3MoJm5ld19lbnRyeSwgbGV2ZWws Cj4gSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqBw Mm1fc2V0X2FjY2VzcyhwMm0sIGdmbiwgcDJtLT5kZWZhdWx0X2FjY2Vzcyk7Cj4gwqDCoMKgwqDC oMKgwqDCoMKgcDJtLT53cml0ZV9wMm1fZW50cnkocDJtLCBnZm4sIHAybV9lbnRyeSwgbmV3X2Vu dHJ5LCBsZXZlbCArCj4gMSk7Cj4gwqDCoMKgwqDCoH0KPiDCoMKgwqDCoMKgZWxzZQo+IEBAIC00 MjAsOCArNDk1LDkgQEAgc3RhdGljIGludCBkb19yZWNhbGMoc3RydWN0IHAybV9kb21haW4gKnAy bSwKPiB1bnNpZ25lZCBsb25nIGdmbikKPiDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIG50ICE9IG90 ICkKPiDCoMKgwqDCoMKgwqDCoMKgwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1bnNp Z25lZCBsb25nIG1mbiA9IGwxZV9nZXRfcGZuKGUpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBwMm1fYWNjZXNzX3QgYSA9IHAybV9nZXRfYWNjZXNzKHAybSwgZ2ZuKTsKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBwMm1fdHlwZV90b19mbGFncyhw Mm0sIG50LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oF9tZm4obWZuKSwKPiBsZXZlbCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgX21mbihtZm4pLAo+IGxldmVsLCBhKTsKPiDCoAo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgaWYgKCBsZXZlbCApCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB7 Cj4gQEAgLTU2OSwxMyArNjQ1LDE0IEBAIHAybV9wdF9zZXRfZW50cnkoc3RydWN0IHAybV9kb21h aW4gKnAybSwgZ2ZuX3QKPiBnZm5fLCBtZm5fdCBtZm4sCj4gwqDCoMKgwqDCoMKgwqDCoMKgQVNT RVJUKCFtZm5fdmFsaWQobWZuKSB8fCBwMm10ICE9IHAybV9tbWlvX2RpcmVjdCk7Cj4gwqDCoMKg wqDCoMKgwqDCoMKgbDNlX2NvbnRlbnQgPSBtZm5fdmFsaWQobWZuKSB8fCBwMm1fYWxsb3dzX2lu dmFsaWRfbWZuKHAybXQpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA/IHAybV9sM2VfZnJv bV9wZm4obWZuX3gobWZuKSwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwMm1fdHlwZV90b19mbGFncyhwMm0sIHAybXQsIG1m biwgMikpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcDJtX3R5cGVfdG9fZmxhZ3MocDJtLCBwMm10LCBtZm4sIDIsCj4gcDJt YSkpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA6IGwzZV9lbXB0eSgpOwo+IMKgwqDCoMKg wqDCoMKgwqDCoGVudHJ5X2NvbnRlbnQubDEgPSBsM2VfY29udGVudC5sMzsKPiDCoAo+IMKgwqDC oMKgwqDCoMKgwqDCoGlmICggZW50cnlfY29udGVudC5sMSAhPSAwICkKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHAybV9hZGRfaW9tbXVfZmxhZ3MoJmVudHJ5X2NvbnRlbnQsIDAsIGlvbW11 X3B0ZV9mbGFncyk7Cj4gwqAKPiArwqDCoMKgwqDCoMKgwqDCoHAybV9zZXRfYWNjZXNzKHAybSwg Z2ZuLCBwMm1hKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqBwMm0tPndyaXRlX3AybV9lbnRyeShwMm0s IGdmbiwgcDJtX2VudHJ5LCBlbnRyeV9jb250ZW50LCAzKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqAv KiBOQjogcGFnaW5nX3dyaXRlX3AybV9lbnRyeSgpIGhhbmRsZXMgdGxiIGZsdXNoZXMgcHJvcGVy bHkKPiAqLwo+IMKgwqDCoMKgwqB9Cj4gQEAgLTYwOCw3ICs2ODUsNyBAQCBwMm1fcHRfc2V0X2Vu dHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGdmbl90Cj4gZ2ZuXywgbWZuX3QgbWZuLAo+IMKg Cj4gwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCBtZm5fdmFsaWQobWZuKSB8fCBwMm1fYWxsb3dzX2lu dmFsaWRfbWZuKHAybXQpICkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVudHJ5X2NvbnRl bnQgPSBwMm1fbDFlX2Zyb21fcGZuKG1mbl94KG1mbiksCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBwMm1fdHlwZV90b19mbGFncyhwMm0sCj4gcDJtdCwgbWZuLCAwKSk7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBwMm1fdHlwZV90b19mbGFncyhwMm0sCj4gcDJtdCwgbWZuLCAwLCBw Mm1hKSk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgZWxzZQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgZW50cnlfY29udGVudCA9IGwxZV9lbXB0eSgpOwo+IMKgCj4gQEAgLTYzMCw2ICs3MDcsNyBA QCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGdmbl90Cj4gZ2ZuXywg bWZuX3QgbWZuLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcDJtLT5pb3JlcS5lbnRyeV9j b3VudC0tOwo+IMKgwqDCoMKgwqDCoMKgwqDCoH0KPiDCoAo+ICvCoMKgwqDCoMKgwqDCoMKgcDJt X3NldF9hY2Nlc3MocDJtLCBnZm4sIHAybWEpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoC8qIGxldmVs IDEgZW50cnkgKi8KPiDCoMKgwqDCoMKgwqDCoMKgwqBwMm0tPndyaXRlX3AybV9lbnRyeShwMm0s IGdmbiwgcDJtX2VudHJ5LCBlbnRyeV9jb250ZW50LCAxKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqAv KiBOQjogcGFnaW5nX3dyaXRlX3AybV9lbnRyeSgpIGhhbmRsZXMgdGxiIGZsdXNoZXMgcHJvcGVy bHkKPiAqLwo+IEBAIC02NjEsMTMgKzczOSwxNCBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBw Mm1fZG9tYWluICpwMm0sIGdmbl90Cj4gZ2ZuXywgbWZuX3QgbWZuLAo+IMKgwqDCoMKgwqDCoMKg wqDCoEFTU0VSVCghbWZuX3ZhbGlkKG1mbikgfHwgcDJtdCAhPSBwMm1fbW1pb19kaXJlY3QpOwo+ IMKgwqDCoMKgwqDCoMKgwqDCoGwyZV9jb250ZW50ID0gbWZuX3ZhbGlkKG1mbikgfHwgcDJtX2Fs bG93c19pbnZhbGlkX21mbihwMm10KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPyBwMm1f bDJlX2Zyb21fcGZuKG1mbl94KG1mbiksCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcDJtX3R5cGVfdG9fZmxhZ3MocDJtLCBw Mm10LCBtZm4sIDEpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHAybV90eXBlX3RvX2ZsYWdzKHAybSwgcDJtdCwgbWZuLCAx LAo+IHAybWEpKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgOiBsMmVfZW1wdHkoKTsKPiDC oMKgwqDCoMKgwqDCoMKgwqBlbnRyeV9jb250ZW50LmwxID0gbDJlX2NvbnRlbnQubDI7Cj4gwqAK PiDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIGVudHJ5X2NvbnRlbnQubDEgIT0gMCApCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBwMm1fYWRkX2lvbW11X2ZsYWdzKCZlbnRyeV9jb250ZW50LCAw LCBpb21tdV9wdGVfZmxhZ3MpOwo+IMKgCj4gK8KgwqDCoMKgwqDCoMKgwqBwMm1fc2V0X2FjY2Vz cyhwMm0sIGdmbiwgcDJtYSk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgcDJtLT53cml0ZV9wMm1fZW50 cnkocDJtLCBnZm4sIHAybV9lbnRyeSwgZW50cnlfY29udGVudCwgMik7Cj4gwqDCoMKgwqDCoMKg wqDCoMKgLyogTkI6IHBhZ2luZ193cml0ZV9wMm1fZW50cnkoKSBoYW5kbGVzIHRsYiBmbHVzaGVz IHByb3Blcmx5Cj4gKi8KPiDCoMKgwqDCoMKgfQo+IEBAIC03NDksOCArODI4LDcgQEAgcDJtX3B0 X2dldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBnZm5fdAo+IGdmbl8sCj4gwqDCoMKg wqDCoMKgKiBYWFggT25jZSB3ZSBzdGFydCBleHBsaWNpdGx5IHJlZ2lzdGVyaW5nIE1NSU8gcmVn aW9ucyBpbiB0aGUKPiBwMm3CoAo+IMKgwqDCoMKgwqDCoCogWFhYIHdlIHdpbGwgcmV0dXJuIHAy bV9pbnZhbGlkIGZvciB1bm1hcHBlZCBnZm5zICovCj4gwqDCoMKgwqDCoCp0ID0gcDJtX21taW9f ZG07Cj4gLcKgwqDCoMKgLyogTm90IGltcGxlbWVudGVkIGV4Y2VwdCB3aXRoIEVQVCAqLwo+IC3C oMKgwqDCoCphID0gcDJtX2FjY2Vzc19yd3g7wqAKPiArwqDCoMKgwqAqYSA9IHAybV9hY2Nlc3Nf bjsKPiDCoAo+IMKgwqDCoMKgwqBpZiAoIGdmbiA+IHAybS0+bWF4X21hcHBlZF9wZm4gKQo+IMKg wqDCoMKgwqB7Cj4gQEAgLTgxMyw2ICs4OTEsNyBAQCBwb2RfcmV0cnlfbDM6Cj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbDFfdGFibGVfb2Zmc2V0KGFk ZHIpKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCp0ID0gcDJtX3JlY2FsY190eXBlKHJl Y2FsYyB8fCBfbmVlZHNfcmVjYWxjKGZsYWdzKSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHAybV9mbGFnc190b190 eXBlKGZsYWdzKSwgcDJtLAo+IGdmbik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCphID0g cDJtX2dldF9hY2Nlc3MocDJtLCBnZm4pOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdW5t YXBfZG9tYWluX3BhZ2UobDNlKTsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgQVNT RVJUKG1mbl92YWxpZChtZm4pIHx8ICFwMm1faXNfcmFtKCp0KSk7Cj4gQEAgLTg1Miw2ICs5MzEs NyBAQCBwb2RfcmV0cnlfbDI6Cj4gwqDCoMKgwqDCoMKgwqDCoMKgbWZuID0gX21mbihsMmVfZ2V0 X3BmbigqbDJlKSArIGwxX3RhYmxlX29mZnNldChhZGRyKSk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKg KnQgPSBwMm1fcmVjYWxjX3R5cGUocmVjYWxjIHx8IF9uZWVkc19yZWNhbGMoZmxhZ3MpLAo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHAybV9mbGFnc190b190eXBlKGZsYWdzKSwgcDJtLCBnZm4pOwo+ICvCoMKgwqDCoMKgwqDCoMKg KmEgPSBwMm1fZ2V0X2FjY2VzcyhwMm0sIGdmbik7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgdW5tYXBf ZG9tYWluX3BhZ2UobDJlKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqAKPiDCoMKgwqDCoMKgwqDCoMKg wqBBU1NFUlQobWZuX3ZhbGlkKG1mbikgfHwgIXAybV9pc19yYW0oKnQpKTsKPiBAQCAtODg4LDYg Kzk2OCw3IEBAIHBvZF9yZXRyeV9sMToKPiDCoMKgwqDCoMKgfQo+IMKgwqDCoMKgwqBtZm4gPSBs MWVfZ2V0X21mbigqbDFlKTsKPiDCoMKgwqDCoMKgKnQgPSBwMm1fcmVjYWxjX3R5cGUocmVjYWxj IHx8IF9uZWVkc19yZWNhbGMoZmxhZ3MpLCBsMXQsIHAybSwKPiBnZm4pOwo+ICvCoMKgwqDCoCph ID0gcDJtX2dldF9hY2Nlc3MocDJtLCBnZm4pOwo+IMKgwqDCoMKgwqB1bm1hcF9kb21haW5fcGFn ZShsMWUpOwo+IMKgCj4gwqDCoMKgwqDCoEFTU0VSVChtZm5fdmFsaWQobWZuKSB8fCAhcDJtX2lz X3JhbSgqdCkgfHwgcDJtX2lzX3BhZ2luZygqdCkpOwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvbW0vcDJtLmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKPiBpbmRleCBjNTNjYWI0Li4xMmUy ZDI0IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwo+ICsrKyBiL3hlbi9hcmNo L3g4Ni9tbS9wMm0uYwo+IEBAIC02NzUsNiArNjc1LDEyIEBAIHZvaWQgcDJtX3RlYXJkb3duKHN0 cnVjdCBwMm1fZG9tYWluICpwMm0pCj4gwqAKPiDCoMKgwqDCoMKgZCA9IHAybS0+ZG9tYWluOwo+ IMKgCj4gK8KgwqDCoMKgaWYgKCBwMm0tPm1lbV9hY2Nlc3Nfc2V0dGluZ3MgKQo+ICvCoMKgwqDC oHsKPiArwqDCoMKgwqDCoMKgwqDCoHJhZGl4X3RyZWVfZGVzdHJveShwMm0tPm1lbV9hY2Nlc3Nf c2V0dGluZ3MsIE5VTEwpOwo+ICvCoMKgwqDCoMKgwqDCoMKgeGZyZWUocDJtLT5tZW1fYWNjZXNz X3NldHRpbmdzKTsKPiArwqDCoMKgwqB9Cj4gKwo+IMKgwqDCoMKgwqBwMm1fbG9jayhwMm0pOwo+ IMKgwqDCoMKgwqBBU1NFUlQoYXRvbWljX3JlYWQoJmQtPnNocl9wYWdlcykgPT0gMCk7Cj4gwqDC oMKgwqDCoHAybS0+cGh5c190YWJsZSA9IHBhZ2V0YWJsZV9udWxsKCk7Cj4gZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tb25pdG9yLmMgYi94ZW4vYXJjaC94ODYvbW9uaXRvci5jCj4gaW5kZXgg M2ZiNjUzMS4uMThiODhhMSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvbW9uaXRvci5jCj4g KysrIGIveGVuL2FyY2gveDg2L21vbml0b3IuYwo+IEBAIC0yMCwxMCArMjAsMTMgQEAKPiDCoCAq Lwo+IMKgCj4gwqAjaW5jbHVkZSA8YXNtL21vbml0b3IuaD4KPiArI2luY2x1ZGUgPGFzbS9wMm0u aD4KPiDCoCNpbmNsdWRlIDxwdWJsaWMvdm1fZXZlbnQuaD4KPiDCoAo+IMKgaW50IGFyY2hfbW9u aXRvcl9pbml0X2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKQo+IMKgewo+ICvCoMKgwqDCoHN0cnVj dCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7Cj4gKwo+IMKgwqDCoMKgwqBp ZiAoICFkLT5hcmNoLm1vbml0b3IubXNyX2JpdG1hcCApCj4gwqDCoMKgwqDCoMKgwqDCoMKgZC0+ YXJjaC5tb25pdG9yLm1zcl9iaXRtYXAgPSB4emFsbG9jX2FycmF5KHN0cnVjdAo+IG1vbml0b3Jf bXNyX2JpdG1hcCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoDIpOwo+IEBAIC0zMSw2ICszNCwxNiBAQCBpbnQgYXJjaF9tb25pdG9yX2luaXRfZG9tYWlu KHN0cnVjdCBkb21haW4gKmQpCj4gwqDCoMKgwqDCoGlmICggIWQtPmFyY2gubW9uaXRvci5tc3Jf Yml0bWFwICkKPiDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVOT01FTTsKPiDCoAo+ICvCoMKg wqDCoGlmICggY3B1X2hhc19zdm0gJiYgIXAybS0+bWVtX2FjY2Vzc19zZXR0aW5ncyApCj4gK8Kg wqDCoMKgewo+ICvCoMKgwqDCoMKgwqDCoMKgcDJtLT5tZW1fYWNjZXNzX3NldHRpbmdzID0geG1h bGxvYyhzdHJ1Y3QgcmFkaXhfdHJlZV9yb290KTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgwqBpZigg IXAybS0+bWVtX2FjY2Vzc19zZXR0aW5ncyApCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJl dHVybiAtRU5PTUVNOwo+ICsKPiArwqDCoMKgwqDCoMKgwqDCoHJhZGl4X3RyZWVfaW5pdChwMm0t Pm1lbV9hY2Nlc3Nfc2V0dGluZ3MpOwo+ICvCoMKgwqDCoH0KPiArCj4gwqDCoMKgwqDCoHJldHVy biAwOwo+IMKgfQo+IMKgCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbWVtX2Fj Y2Vzcy5oIGIveGVuL2luY2x1ZGUvYXNtLQo+IHg4Ni9tZW1fYWNjZXNzLmgKPiBpbmRleCA0MDQz YzlmLi4zNGYyYzA3IDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbWVtX2FjY2Vz cy5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tZW1fYWNjZXNzLmgKPiBAQCAtNDYsNyAr NDYsNyBAQCBib29sIHAybV9tZW1fYWNjZXNzX2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYs Cj4gwqAvKiBTYW5pdHkgY2hlY2sgZm9yIG1lbV9hY2Nlc3MgaGFyZHdhcmUgc3VwcG9ydCAqLwo+ IMKgc3RhdGljIGlubGluZSBib29sIHAybV9tZW1fYWNjZXNzX3Nhbml0eV9jaGVjayhzdHJ1Y3Qg ZG9tYWluICpkKQo+IMKgewo+IC3CoMKgwqDCoHJldHVybiBpc19odm1fZG9tYWluKGQpICYmIGNw dV9oYXNfdm14ICYmIGhhcF9lbmFibGVkKGQpOwo+ICvCoMKgwqDCoHJldHVybiBpc19odm1fZG9t YWluKGQpICYmIGhhcF9lbmFibGVkKGQpOwo+IMKgfQo+IMKgCj4gwqAjZW5kaWYgLypfX0FTTV9Y ODZfTUVNX0FDQ0VTU19IX18gKi8KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9w Mm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKPiBpbmRleCBkNGIzY2ZjLi5hMjMzMDBh IDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKPiArKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L3AybS5oCj4gQEAgLTI4OCw2ICsyODgsMTIgQEAgc3RydWN0IHAybV9kb21h aW4gewo+IMKgwqDCoMKgwqDCoCogcmV0eXBlZCBnZXQgdGhpcyBhY2Nlc3MgdHlwZS7CoMKgU2Vl IGRlZmluaXRpb24gb2YKPiBwMm1fYWNjZXNzX3QuICovCj4gwqDCoMKgwqDCoHAybV9hY2Nlc3Nf dCBkZWZhdWx0X2FjY2VzczsKPiDCoAo+ICvCoMKgwqDCoC8qCj4gK8KgwqDCoMKgwqAqIFJhZGl4 IHRyZWUgdG8gc3RvcmUgdGhlIHAybV9hY2Nlc3NfdCBzZXR0aW5ncyBhcyB0aGUgcHRlJ3MKPiBk b24ndCBoYXZlCj4gK8KgwqDCoMKgwqAqIGVub3VnaCBhdmFpbGFibGUgYml0cyB0byBzdG9yZSB0 aGlzIGluZm9ybWF0aW9uLgo+ICvCoMKgwqDCoMKgKi8KPiArwqDCoMKgwqBzdHJ1Y3QgcmFkaXhf dHJlZV9yb290ICptZW1fYWNjZXNzX3NldHRpbmdzOwo+ICsKPiDCoMKgwqDCoMKgLyogSWYgdHJ1 ZSwgYW5kIGFuIGFjY2VzcyBmYXVsdCBjb21lcyBpbiBhbmQgdGhlcmUgaXMgbm8KPiB2bV9ldmVu dCBsaXN0ZW5lcizCoAo+IMKgwqDCoMKgwqDCoCogcGF1c2UgZG9tYWluLsKgwqBPdGhlcndpc2Us IHJlbW92ZSBhY2Nlc3MgcmVzdHJpY3Rpb25zLiAqLwo+IMKgwqDCoMKgwqBib29sX3TCoMKgwqDC oMKgwqDCoGFjY2Vzc19yZXF1aXJlZDsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=