From owner-freebsd-arch@FreeBSD.ORG Sat Jun 1 23:51:26 2013 Return-Path: Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 32CFD50E for ; Sat, 1 Jun 2013 23:51:26 +0000 (UTC) (envelope-from oliver.pntr@gmail.com) Received: from mail-ob0-x233.google.com (mail-ob0-x233.google.com [IPv6:2607:f8b0:4003:c01::233]) by mx1.freebsd.org (Postfix) with ESMTP id E48763F4 for ; Sat, 1 Jun 2013 23:51:25 +0000 (UTC) Received: by mail-ob0-f179.google.com with SMTP id xk17so5196552obc.24 for ; Sat, 01 Jun 2013 16:51:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=/9hIZVq+96Q237Om0YUx13pGclro8o69LYB/FwsZjcQ=; b=x/LGsHcZMhC1FpUpufMWjGpkcPjAejfCcNOcCfzWtM0Y8I2mPNLacGdbgquz7sCJ3N 0ICfkuTbdkM7qFptpYLrfLua7Ey08Y68jfj4Zd7WpyBp6k0PPt1taPI9WroDluP83LRn SsaAnFxvODmsFmwgvgVwGkuKsVuUHkGGHBFktan20Pm65Nx+YGsJznUmO4LrefoPry7b 23rnQColxuKlrq5PiXy/F9ZqSd4s6QOoMz1jbEZMNFrJNdTv+NUb+a7rD/s30p/Qnibg 60szVkwcQmAOrBQW3mY2PY+TkvTN9E4/FuqLi2KCFeTatbIgcqAWVKtfFM/tvPFAtYAr QtCA== MIME-Version: 1.0 X-Received: by 10.182.171.9 with SMTP id aq9mr8051930obc.16.1370130685520; Sat, 01 Jun 2013 16:51:25 -0700 (PDT) Received: by 10.182.155.98 with HTTP; Sat, 1 Jun 2013 16:51:25 -0700 (PDT) Date: Sun, 2 Jun 2013 01:51:25 +0200 Message-ID: Subject: Intel SMAP for FreeBSD-CURRENT From: Oliver Pinter To: arch Content-Type: multipart/mixed; boundary=e89a8ff1cc9ccec54f04de206815 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Jun 2013 23:51:26 -0000 --e89a8ff1cc9ccec54f04de206815 Content-Type: text/plain; charset=ISO-8859-1 Hi All! (I'm sorry for re-posting, soon forgot the subject.) As subpart of my thesis, I implemented Intel SMAP[1] support for FreeBSD. The current stable version of patch (attached) have compile time option to enable SMAP.* A feature complete dynamic version is expected by the end of the month, which patched the kernel on boot time, when the feautre presented in CPU. [1] http://lwn.net/Articles/517475/ patches: https://github.com/opntr/freebsd-patches-2013-tavasz smap-test: https://github.com/opntr/freebsd-smap-tester smap_disabled.gif: Running smap-test without SMAP support: illegal user-space memory address read/write from kernel-space. smap_{read,write}.gif: Running smap-test with SMAP: the kernel must paniced, due an illegal read from user-space memory address. * when you applied this patch and enabled the SMAP in kernel and your CPU does not have SMAP support, the kernel _must_ paniced. --e89a8ff1cc9ccec54f04de206815 Content-Type: text/x-patch; charset=US-ASCII; name="0001-added-SMAP-support-for-FreeBSD-against-r250423.patch" Content-Disposition: attachment; filename="0001-added-SMAP-support-for-FreeBSD-against-r250423.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file4 RnJvbSBhZTE4YjM3NGIzODQwMWY3MzZlNGUxM2E4YWI1ZmFiODI5ODVkZjJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbGl2ZXIgUGludGVyIDxvbGl2ZXIucG50ckBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTYgQXByIDIwMTMgMDE6MzI6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBh ZGRlZCBTTUFQIHN1cHBvcnQgZm9yIEZyZWVCU0QgYWdhaW5zdCByMjUwNDIzCgpUaGlzIHBhdGNo IGltcGxlbWVudGVkIHN1cHBvcnQgZm9yIEludGVsJ3MgbmV3IHByb3RlY3Rpb24gdGVjaG5vbG9n eS4KClN1cGVydmlzb3IgTW9kZSBBY2Nlc3MgUHJldmVudGlvbiAoU01BUCkgaXMgbmV3ZXN0IHNl Y3VyaXR5IGZlYXR1cmUgZnJvbQpJbnRlbCwgd2hpY2ggZmlyc3QgYXBwZWFycyBpbiB0aGUgSGFz d2VsbCBMaW5lIG9mIHByb2Nlc3NvcnMuCgpXaGVuIFNNQVAgZW5hYmxlZCwgdGhlIGtlcm5lbCBj YW5ub3QgYWNjZXNzIHBhZ2VzIHRoYXQgYXJlIGluIHVzZXJzcGFjZS4KSW4gc29tZSBjYXNlcyB0 aGUga2VybmVsIGRvZXMgaGF2ZSB0byBhY2Nlc3MgdXNlciBwYWdlcywgZm9yIHRoaXMgcmVhc29u CnRoZSB0ZWNobm9sb2d5IHByb3ZpZGVkIHR3byBpbnN0cnVjdGlvbiwgdG8gdGVtcG9yYXJpbHkg ZGlzYWJsZSB0aGlzCnByb3RlY3Rpb24uCgpXaGVuIFNNQVAgZGV0ZWN0IHByb3RlY3Rpb24gdmlv bGF0aW9uLCB0aGUga2VybmVsIG11c3QgY2FsbCBwYW5pYygpLgoKSW50ZWwncyBTTUFQIGRvY3Vt ZW50YXRpb246Cmh0dHA6Ly9zb2Z0d2FyZS5pbnRlbC5jb20vc2l0ZXMvZGVmYXVsdC9maWxlcy8z MTk0MzMtMDE0LnBkZgoKVGVzdCBjYXNlOgpodHRwczovL2dpdGh1Yi5jb20vb3BudHIvZnJlZWJz ZC1zbWFwLXRlc3RlcgoKc29tZSBwYXJ0cyBvZiB0aGlzIHBhdGNoIGRpc2N1c3NlZCB3aXRoIGtp YiBmcmVlYnNkIG9yZyBhbmQgSHVuZ2VyCgpTaWduZWQtb2ZmLWJ5OiBPbGl2ZXIgUGludGVyIDxv bGl2ZXIucG50ckBnbWFpbC5jb20+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIGFkZGVkCXZvaWQgY2xhYyh2 b2lkKSBhbmQJdm9pZCBzdGFjKHZvaWQpIHRvIGNwdWZ1bmMuaAoqIGFkZGVkIFNUQUMvQ0xBQyBp bnN0cnVjdGlvbiBhbmQgYWRkZWQgY29uZmlnIG9wdGlvbnMKKiBhZGRlZCBiYXNpYyBzdXBwb3J0 IGZvciBTTUFQCiogYWRkZWQgc3RhYy9jbGFjIGluIHN1cHBvcnQuUyBhcm91bmQgdXNlcnNwYWNl IG1lbW9yeSBhY2Nlc3MKKiBhZGRlZCBSRkxBR1MuQUMgY2xlYXJpbmcgdG8gZXhjZXB0aW9uLlMg cmVsYXRlZCB0byBTTUFQCiogYWRkZWQgUkZMQUdTLkFDIGNsZWFyaW5nIHRvIGlhMzJfZXhjZXB0 aW9uLlMgcmVsYXRlZCB0byBTTUFQCiogYWRkZWQgUkZMQUdTLkFDIGNsZWFyaW5nIHRvIGFzbWFj cm9zLmggcmVsYXRlZCB0byBTTUFQCiogY2xhYyBhbmQgc3RhYyBmdW5jdGlvbnMgZGVwZW5kIG9u IElOVEVMX1NNQVAKKiBhZGRlZCB0cmFwIGhhbmRsZXIgdG8gU01BUAoKRm9yIHNlY3VyaXR5IHJl YXNvbiwgd2hlbiBQRiBvY2N1cmVkIGJ5IFNNQVAsIHRoZSBrZXJuZWwgc2hvdWxkIHBhbmljZWQu CgoiIFsuLi5dCgpUaGUgYWJvdmUgaXRlbXMgaW1wbHkgdGhhdCB0aGUgZXJyb3IgY29kZSBkZWxp dmVyZWQgYnkgYSBwYWdlLWZhdWx0CmV4Y2VwdGlvbiBkdWUgdG8gU01BUCBpcyBlaXRoZXIgMSAo Zm9yIHJlYWRzKSBvciAzIChmb3Igd3JpdGVzKS4KTm90ZSB0aGF0IHRoZSBvbmx5IHBhZ2UtZmF1 bHQgZXhjZXB0aW9ucyB0aGF0IGRlbGl2ZXIgYW4gZXJyb3IgY29kZQpvZiAxIGFyZSB0aG9zZSBp bmR1Y2VkIGJ5IFNNQVAuIChJZiBDUjAuV1AgPSAxLCBzb21lIHBhZ2UtZmF1bHQKZXhjZXB0aW9u cyBtYXkgZGVsaXZlciBhbiBlcnJvciBjb2RlIG9mIDMgZXZlbiBpZiBDUjQuU01BUCA9IDAuKQoK Wy4uLl0iIC0gaW50ZWwgMzE5NDMzLTAxNC5wZGYgOS4zLjMKCiogQ2xlYXIgdGhlIFJGTEFHUy5B QyBvbiB0aGUgc3RhcnQgb2Ygbm1pIGhhbmRsZXIKCnN1Z2dlc3RlZCBieSBraWJAOgo+IEkgdGhp bmsgdGhhdCBOTUkgaGFuZGxlciBzaG91bGQgaGF2ZSBDTEFDIGV4ZWN1dGVkIHVuY29uZGl0aW9u YWxseSBhbmQKPiBtdWNoIGVhcmxpZXIgdGhlbiBpdCBpcyBkb25lIGluIHlvdXIgcGF0Y2guIFNp bmNlIE5NSSBjb3VsZCBpbnRlcnJ1cHQKPiB0aGUgY29weSooKSBmdW5jdGlvbnMsIHlvdSB3b3Vs ZCBnZXQgc29tZSBrZXJuZWwgY29kZSB1bm5lY2Nlc3NhcnkKPiBleGVjdXRpbmcgd2l0aCBTTUFQ IG9mZi4KCiogYWRkZWQgbm90ZSB0byBmYXVsdCBoYW5kbGVycyByZWxhdGVkIHRvIFNNQVAKCnN1 Z2dlc3RlZCBieSBraWJAOgo+IEkgYmVsaWV2ZSB0aGF0IGV4Y2VwdGlvbiBsYWJlbHMgaW4gdGhl IHN1cHBvcnQuUywgbGlrZSBjb3B5b3V0X2ZhdWx0Cj4gZXRjCj4gZGVzZXJ2ZSBhIGNvbW1lbnQg ZGVzY3JpYmluZyB0aGF0IEVGTEFHUy5BQyBiaXQgZ2V0cyBjbGVhcmVkIGJ5IHRoZQo+IGV4Y2Vw dGlvbiBlbnRyeSBwb2ludCBiZWZvcmUgdGhlIGNvbnRyb2wgcmVhY2hlcyB0aGUgbGFiZWwuCgoq IGFkZGVkIEFDIGZsYWcgY2hlY2tpbmcgYW5kIGZhY3RvciBvdXQgU01BUCBjaGVja2luZyBpbiB0 cmFwX3BmYXVsdCgpIHRvIG1ha2UgaXQgbW9yZSByZWFkYWJsZSBhbmQKCnBhcnRpYWxseSBzdWdn ZXN0ZWQgYnkga2liOgo+IFRoZSB0cmFwX3BmYXVsdCgpIGZyYWdtZW50IHNob3VsZCBjaGVjayBm b3IgdGhlIGVycm9yIGNvZGUgZXF1YWwgdG8gMSBvcgo+IDMsIGFzIGRlc2NyaWJlZCBpbiB0aGUg OS4zLjMsIGluc3RlYWQgb2Ygb25seSBjaGVja2luZyBmb3IgdGhlIHByZXNlbnQKPiBiaXQgc2V0 LiBNb3JlLCBJIHN1Z2dlc3QgeW91IHRvIGV4cGxpY2l0ZWx5IGNoZWNrIHRoYXQgdGhlICNQRiBl eGNlcHRpb24KPiBjYW1lIGZyb20gdGhlIGtlcm5lbCBtb2RlIGFuZCB0aGF0IEVGTEFHUy5BQyB3 YXMgYWxzbyBzZXQsIGJlZm9yZQo+IGRlY2lkaW5ndG8gcGFuaWMgZHVlIHRvIFNNQVAtZGV0ZWN0 ZWQgZmFpbHVyZS4KCiogYnVpbGQgZml4LCB3aGVuIElOVEVMX1NNQVAgaGFzIG5vdCBzZXQgaW4g a2VybmVsIGNvbmZpZwoKL3Vzci9ob21lL29wL2dpdC9mcmVlYnNkLWJhc2UuZ2l0Lmh0dHAvc3lz L2FtZDY0L2FtZDY0L3RyYXAuYzo4ODk6MTogZXJyb3I6IHVudXNlZCBmdW5jdGlvbiAnc21hcF9h Y2Nlc3NfdmlvbGF0aW9uJyBbLVdlcnJvciwtV3VudXNlZC1mdW5jdGlvbl0Kc21hcF9hY2Nlc3Nf dmlvbGF0aW9uKHN0cnVjdCB0cmFwZnJhbWUgKmZyYW1lLCBpbnQgdXNlcm1vZGUpCl4KMSBlcnJv ciBnZW5lcmF0ZWQuCioqKiBbdHJhcC5vXSBFcnJvciBjb2RlIDEKMSBlcnJvcgoqKiogW2J1aWxk a2VybmVsXSBFcnJvciBjb2RlIDIKMSBlcnJvcgoqKiogW2J1aWxka2VybmVsXSBFcnJvciBjb2Rl IDIKMSBlcnJvcgoKKiBmaXhlZCBzbWFwX2FjY2Vzc192aW9sYXRpb24oLi4uKSwgc3BvdHRlZCBi eSBIdW5nZXIKCiogZml4IHNtYXBfYWNjZXNzX3Zpb2xhdHJpb24oKSB3aGVuIHRoZSBDUFUgZG9l cyBub3Qgc3VwcG9ydCBTTUFQCgoqIHVzZSB0aGUgQ0xBQyBhbmQgU1RBQyBtYWNybywgaW5zdGVh ZCBvZiB0aGUgLmJ5dGUgc2VxdWVuY2UKCiogYWRkZWQgbWVtb3J5IGNsb2JiZXIgdG8gY2xhYyBh bmQgc3RhYyBpbmxpbmUgYXNzZW1ibHkKCgljbGFjIGFuZCBzdGFjIGFyZSBzZW5zaXRpdmUgaW5z dHJ1Y3Rpb25zLAoJdG8gcHJldmVudCBpbnN0cnVjdGlvbiByZW9yZGVyaW5nIGFkZGVkIG1lbW9y eSBjbG9iYmVyCgoJc3BvdHRlZCBieSBIdW5nZXIsIFBhWFRlYW0KClNpZ25lZC1vZmYtYnk6IE9s aXZlciBQaW50ZXIgPG9saXZlci5wbnRyQGdtYWlsLmNvbT4KLS0tCiBzeXMvYW1kNjQvYW1kNjQv ZXhjZXB0aW9uLlMgICAgIHwgIDYgKysrKysrCiBzeXMvYW1kNjQvYW1kNjQvaWRlbnRjcHUuYyAg ICAgIHwgMjggKysrKysrKysrKysrKysrKysrKysrLS0tCiBzeXMvYW1kNjQvYW1kNjQvaW5pdGNw dS5jICAgICAgIHwgMTIgKysrKysrKy0tLS0KIHN5cy9hbWQ2NC9hbWQ2NC9wbWFwLmMgICAgICAg ICAgfCAxMyArKysrKysrKysrKwogc3lzL2FtZDY0L2FtZDY0L3N1cHBvcnQuUyAgICAgICB8IDQ4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzeXMvYW1kNjQvYW1k NjQvdHJhcC5jICAgICAgICAgIHwgMjQgKysrKysrKysrKysrKysrKysrKysrCiBzeXMvYW1kNjQv aWEzMi9pYTMyX2V4Y2VwdGlvbi5TIHwgIDEgKwogc3lzL2FtZDY0L2luY2x1ZGUvYXNtYWNyb3Mu aCAgICB8ICAzICsrLQogc3lzL2FtZDY0L2luY2x1ZGUvY3B1ZnVuYy5oICAgICB8IDI3ICsrKysr KysrKysrKysrKysrKysrKysrCiBzeXMvYW1kNjQvaW5jbHVkZS9zbWFwX2luc3RyLmggIHwgMTQg KysrKysrKysrKysrCiBzeXMvY29uZi9OT1RFUyAgICAgICAgICAgICAgICAgIHwgIDQgKysrKwog c3lzL2NvbmYvb3B0aW9ucy5hbWQ2NCAgICAgICAgICB8ICAzICsrKwogc3lzL3g4Ni9pbmNsdWRl L3BzbC5oICAgICAgICAgICB8ICAyICstCiBzeXMveDg2L2luY2x1ZGUvc3BlY2lhbHJlZy5oICAg IHwgIDEgKwogMTQgZmlsZXMgY2hhbmdlZCwgMTc3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzL2FtZDY0L2luY2x1ZGUvc21hcF9pbnN0ci5oCgpk aWZmIC0tZ2l0IGEvc3lzL2FtZDY0L2FtZDY0L2V4Y2VwdGlvbi5TIGIvc3lzL2FtZDY0L2FtZDY0 L2V4Y2VwdGlvbi5TCmluZGV4IDg5YWQ2MzguLmQ3ZWQ3ZTQgMTAwNjQ0Ci0tLSBhL3N5cy9hbWQ2 NC9hbWQ2NC9leGNlcHRpb24uUworKysgYi9zeXMvYW1kNjQvYW1kNjQvZXhjZXB0aW9uLlMKQEAg LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDxtYWNoaW5lL2FzbWFjcm9zLmg+CiAjaW5jbHVkZSA8 bWFjaGluZS9wc2wuaD4KICNpbmNsdWRlIDxtYWNoaW5lL3RyYXAuaD4KKyNpbmNsdWRlIDxtYWNo aW5lL3NtYXBfaW5zdHIuaD4KICNpbmNsdWRlIDxtYWNoaW5lL3NwZWNpYWxyZWcuaD4KIAogI2lu Y2x1ZGUgImFzc3ltLnMiCkBAIC0xOTYsNiArMTk3LDcgQEAgYWxsdHJhcHNfcHVzaHJlZ3Nfbm9f cmRpOgogCW1vdnEJJXIxNSxURl9SMTUoJXJzcCkKIAltb3ZsCSRURl9IQVNTRUdTLFRGX0ZMQUdT KCVyc3ApCiAJY2xkCisJQ0xBQwogCUZBS0VfTUNPVU5UKFRGX1JJUCglcnNwKSkKICNpZmRlZiBL RFRSQUNFX0hPT0tTCiAJLyoKQEAgLTI3Niw2ICsyNzgsNyBAQCBJRFRWRUMoZGJsZmF1bHQpCiAJ bW92dwklZHMsVEZfRFMoJXJzcCkKIAltb3ZsCSRURl9IQVNTRUdTLFRGX0ZMQUdTKCVyc3ApCiAJ Y2xkCisJQ0xBQwogCXRlc3RiCSRTRUxfUlBMX01BU0ssVEZfQ1MoJXJzcCkgLyogRGlkIHdlIGNv bWUgZnJvbSBrZXJuZWw/ICovCiAJanoJMWYJCQkvKiBhbHJlYWR5IHJ1bm5pbmcgd2l0aCBrZXJu ZWwgR1MuYmFzZSAqLwogCXN3YXBncwpAQCAtMzc5LDYgKzM4Miw3IEBAIElEVFZFQyhmYXN0X3N5 c2NhbGwpCiAJbW92cQklcjE1LFRGX1IxNSglcnNwKQkvKiBDIHByZXNlcnZlZCAqLwogCW1vdmwJ JFRGX0hBU1NFR1MsVEZfRkxBR1MoJXJzcCkKIAljbGQKKwlDTEFDCiAJRkFLRV9NQ09VTlQoVEZf UklQKCVyc3ApKQogCW1vdnEJUENQVShDVVJUSFJFQUQpLCVyZGkKIAltb3ZxCSVyc3AsVERfRlJB TUUoJXJkaSkKQEAgLTQ0OSw2ICs0NTMsNyBAQCBJRFRWRUMoZmFzdF9zeXNjYWxsMzIpCiAgKi8K IAogSURUVkVDKG5taSkKKwlDTEFDCiAJc3VicQkkVEZfUklQLCVyc3AKIAltb3ZsCSQoVF9OTUkp LFRGX1RSQVBOTyglcnNwKQogCW1vdnEJJDAsVEZfQUREUiglcnNwKQpAQCAtNTMzLDYgKzUzOCw3 IEBAIG5taV9jYWxsdHJhcDoKIAogCXNocnEJJDMsJXJjeAkJLyogdHJhcCBmcmFtZSBzaXplIGlu IGxvbmcgd29yZHMgKi8KIAljbGQKKwlDTEFDCiAJcmVwCiAJbW92c3EJCQkvKiBjb3B5IHRyYXBm cmFtZSAqLwogCmRpZmYgLS1naXQgYS9zeXMvYW1kNjQvYW1kNjQvaWRlbnRjcHUuYyBiL3N5cy9h bWQ2NC9hbWQ2NC9pZGVudGNwdS5jCmluZGV4IGVjNWEyYWEuLjkwNDk1ZWIgMTAwNjQ0Ci0tLSBh L3N5cy9hbWQ2NC9hbWQ2NC9pZGVudGNwdS5jCisrKyBiL3N5cy9hbWQ2NC9hbWQ2NC9pZGVudGNw dS5jCkBAIC0zOTEsMTIgKzM5MSwxNCBAQCBwcmludGNwdWluZm8odm9pZCkKIAkJCQkgICAgICAg LyogUkRGU0JBU0UvUkRHU0JBU0UvV1JGU0JBU0UvV1JHU0JBU0UgKi8KIAkJCQkgICAgICAgIlww MDFHU0ZTQkFTRSIKIAkJCQkgICAgICAgIlwwMDJUU0NBREoiCisJCQkJICAgICAgICJcMDAzPGIy PiIKIAkJCQkgICAgICAgLyogQml0IE1hbmlwdWxhdGlvbiBJbnN0cnVjdGlvbnMgKi8KIAkJCQkg ICAgICAgIlwwMDRCTUkxIgogCQkJCSAgICAgICAvKiBIYXJkd2FyZSBMb2NrIEVsaXNpb24gKi8K IAkJCQkgICAgICAgIlwwMDVITEUiCiAJCQkJICAgICAgIC8qIEFkdmFuY2VkIFZlY3RvciBJbnN0 cnVjdGlvbnMgMiAqLwogCQkJCSAgICAgICAiXDAwNkFWWDIiCisJCQkJICAgICAgICJcMDA3PGI2 PiIKIAkJCQkgICAgICAgLyogU3VwZXJ2aXNvciBNb2RlIEV4ZWN1dGlvbiBQcm90LiAqLwogCQkJ CSAgICAgICAiXDAxMFNNRVAiCiAJCQkJICAgICAgIC8qIEJpdCBNYW5pcHVsYXRpb24gSW5zdHJ1 Y3Rpb25zICovCkBAIC00MDYsMTIgKzQwOCwyOSBAQCBwcmludGNwdWluZm8odm9pZCkKIAkJCQkg ICAgICAgIlwwMTNJTlZQQ0lEIgogCQkJCSAgICAgICAvKiBSZXN0cmljdGVkIFRyYW5zYWN0aW9u YWwgTWVtb3J5ICovCiAJCQkJICAgICAgICJcMDE0UlRNIgorCQkJCSAgICAgICAiXDAxNTxiMTI+ IgorCQkJCSAgICAgICAiXDAxNjxiMTM+IgorCQkJCSAgICAgICAiXDAxNzxiMTQ+IgorCQkJCSAg ICAgICAiXDAyMDxiMTU+IgorCQkJCSAgICAgICAiXDAyMTxiMTY+IgorCQkJCSAgICAgICAiXDAy MjxiMTc+IgogCQkJCSAgICAgICAvKiBFbmhhbmNlZCBOUkJHICovCi0JCQkJICAgICAgICJcMDIy UkRTRUVEIgorCQkJCSAgICAgICAiXDAyM1JEU0VFRCIKIAkJCQkgICAgICAgLyogQURDWCArIEFE T1ggKi8KLQkJCQkgICAgICAgIlwwMjNBRFgiCisJCQkJICAgICAgICJcMDI0QURYIgogCQkJCSAg ICAgICAvKiBTdXBlcnZpc29yIE1vZGUgQWNjZXNzIFByZXZlbnRpb24gKi8KLQkJCQkgICAgICAg IlwwMjRTTUFQIgorCQkJCSAgICAgICAiXDAyNVNNQVAiCisJCQkJICAgICAgICJcMDI2PGIyMT4i CisJCQkJICAgICAgICJcMDI3PGIyMj4iCisJCQkJICAgICAgICJcMDMwPGIyMz4iCisJCQkJICAg ICAgICJcMDMxPGIyND4iCisJCQkJICAgICAgICJcMDMyPGIyNT4iCisJCQkJICAgICAgICJcMDMz PGIyNj4iCisJCQkJICAgICAgICJcMDM0PGIyNz4iCisJCQkJICAgICAgICJcMDM1PGIyOD4iCisJ CQkJICAgICAgICJcMDM2PGIyOT4iCisJCQkJICAgICAgICJcMDM3PGIzMD4iCisJCQkJICAgICAg ICJcMDQwPGIzMT4iCiAJCQkJICAgICAgICk7CiAJCQl9CiAKQEAgLTU0NSw2ICs1NjQsOSBAQCBp ZGVudGlmeV9jcHUodm9pZCkKIAkJaWYgKGNwdV9mZWF0dXJlMiAmIENQVUlEMl9IVikgewogCQkJ Y3B1X3N0ZGV4dF9kaXNhYmxlID0gQ1BVSURfU1RERVhUX0ZTR1NCQVNFIHwKIAkJCSAgICBDUFVJ RF9TVERFWFRfU01FUDsKKyNpZmRlZiBJTlRFTF9TTUFQCisJCQljcHVfc3RkZXh0X2Rpc2FibGUg fD0gQ1BVSURfU1RERVhUX1NNQVA7CisjZW5kaWYKIAkJfSBlbHNlCiAJCQljcHVfc3RkZXh0X2Rp c2FibGUgPSAwOwogCQlUVU5BQkxFX0lOVF9GRVRDSCgiaHcuY3B1X3N0ZGV4dF9kaXNhYmxlIiwg JmNwdV9zdGRleHRfZGlzYWJsZSk7CmRpZmYgLS1naXQgYS9zeXMvYW1kNjQvYW1kNjQvaW5pdGNw dS5jIGIvc3lzL2FtZDY0L2FtZDY0L2luaXRjcHUuYwppbmRleCA0YWJlZDRjLi5mYmZhN2MzIDEw MDY0NAotLS0gYS9zeXMvYW1kNjQvYW1kNjQvaW5pdGNwdS5jCisrKyBiL3N5cy9hbWQ2NC9hbWQ2 NC9pbml0Y3B1LmMKQEAgLTE2NSwxMyArMTY1LDE3IEBAIGluaXRpYWxpemVjcHUodm9pZCkKIAkJ Y3I0IHw9IENSNF9GU0dTQkFTRTsKIAogCS8qCi0JICogUG9zdHBvbmUgZW5hYmxpbmcgdGhlIFNN RVAgb24gdGhlIGJvb3QgQ1BVIHVudGlsIHRoZSBwYWdlCi0JICogdGFibGVzIGFyZSBzd2l0Y2hl ZCBmcm9tIHRoZSBib290IGxvYWRlciBpZGVudGl0eSBtYXBwaW5nCi0JICogdG8gdGhlIGtlcm5l bCB0YWJsZXMuICBUaGUgYm9vdCBsb2FkZXIgZW5hYmxlcyB0aGUgVSBiaXQgaW4KLQkgKiBpdHMg dGFibGVzLgorCSAqIFBvc3Rwb25lIGVuYWJsaW5nIHRoZSBTTUVQIGFuZCB0aGUgU01BUCBvbiB0 aGUgYm9vdCBDUFUgdW50aWwKKwkgKiB0aGUgcGFnZSB0YWJsZXMgYXJlIHN3aXRjaGVkIGZyb20g dGhlIGJvb3QgbG9hZGVyIGlkZW50aXR5CisJICogbWFwcGluZyB0byB0aGUga2VybmVsIHRhYmxl cy4KKwkgKiBUaGUgYm9vdCBsb2FkZXIgZW5hYmxlcyB0aGUgVSBiaXQgaW4gaXRzIHRhYmxlcy4K IAkgKi8KIAlpZiAoIUlTX0JTUCgpICYmIChjcHVfc3RkZXh0X2ZlYXR1cmUgJiBDUFVJRF9TVERF WFRfU01FUCkpCiAJCWNyNCB8PSBDUjRfU01FUDsKKyNpZmRlZiBJTlRFTF9TTUFQCisJaWYgKCFJ U19CU1AoKSAmJiAoY3B1X3N0ZGV4dF9mZWF0dXJlICYgQ1BVSURfU1RERVhUX1NNQVApKQorCQlj cjQgfD0gQ1I0X1NNQVA7CisjZW5kaWYKIAlsb2FkX2NyNChjcjQpOwogCWlmICgoYW1kX2ZlYXR1 cmUgJiBBTURJRF9OWCkgIT0gMCkgewogCQltc3IgPSByZG1zcihNU1JfRUZFUikgfCBFRkVSX05Y RTsKZGlmZiAtLWdpdCBhL3N5cy9hbWQ2NC9hbWQ2NC9wbWFwLmMgYi9zeXMvYW1kNjQvYW1kNjQv cG1hcC5jCmluZGV4IDFiMWM4NmMuLjExZTU2MGQgMTAwNjQ0Ci0tLSBhL3N5cy9hbWQ2NC9hbWQ2 NC9wbWFwLmMKKysrIGIvc3lzL2FtZDY0L2FtZDY0L3BtYXAuYwpAQCAtOTgsNiArOTgsNyBAQCBf X0ZCU0RJRCgiJEZyZWVCU0QkIik7CiAgKglhbmQgdG8gd2hlbiBwaHlzaWNhbCBtYXBzIG11c3Qg YmUgbWFkZSBjb3JyZWN0LgogICovCiAKKyNpbmNsdWRlICJvcHRfY3B1LmgiCiAjaW5jbHVkZSAi b3B0X3BtYXAuaCIKICNpbmNsdWRlICJvcHRfdm0uaCIKIApAQCAtNjY1LDYgKzY2NiwxOCBAQCBw bWFwX2Jvb3RzdHJhcCh2bV9wYWRkcl90ICpmaXJzdGFkZHIpCiAJaWYgKGNwdV9zdGRleHRfZmVh dHVyZSAmIENQVUlEX1NUREVYVF9TTUVQKQogCQlsb2FkX2NyNChyY3I0KCkgfCBDUjRfU01FUCk7 CiAKKwlpZiAoY3B1X3N0ZGV4dF9mZWF0dXJlICYgQ1BVSURfU1RERVhUX1NNQVApCisjaWZkZWYg SU5URUxfU01BUAorCQlsb2FkX2NyNChyY3I0KCkgfCBDUjRfU01BUCk7CisJZWxzZQorCQlwYW5p YygiVGhlIGtlcm5lbCBjb21waWxlZCB3aXRoIFwib3B0aW9ucyBJTlRFTF9TTUFQXCIsIgorCQkJ ICAgICAgIAkiYnV0IHlvdXIgQ1BVIGRvZXNuJ3Qgc3VwcG9ydCBTTUFQIVxuIik7CisjZWxzZQor CQlwcmludGYoIllvdXIgQ1BVIGhhcyBzdXBwb3J0IGZvciBTTUFQIHNlY3VyaXR5IGZlYXR1cmUu ICIKKwkJCSJZb3Ugc2hvdWxkIHJlY29tcGlsZSB0aGUga2VybmVsIHdpdGggIgorCQkJIlwib3B0 aW9ucyBJTlRFTF9TTUFQXCIgdG8gdXNlIHRoZW0uXG4iKTsKKyNlbmRpZgorCiAJLyoKIAkgKiBJ bml0aWFsaXplIHRoZSBrZXJuZWwgcG1hcCAod2hpY2ggaXMgc3RhdGljYWxseSBhbGxvY2F0ZWQp LgogCSAqLwpkaWZmIC0tZ2l0IGEvc3lzL2FtZDY0L2FtZDY0L3N1cHBvcnQuUyBiL3N5cy9hbWQ2 NC9hbWQ2NC9zdXBwb3J0LlMKaW5kZXggNzdkYmY2My4uN2FkODEwMSAxMDA2NDQKLS0tIGEvc3lz L2FtZDY0L2FtZDY0L3N1cHBvcnQuUworKysgYi9zeXMvYW1kNjQvYW1kNjQvc3VwcG9ydC5TCkBA IC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8bWFjaGluZS9hc21hY3Jvcy5oPgogI2luY2x1ZGUg PG1hY2hpbmUvaW50cl9tYWNoZGVwLmg+CiAjaW5jbHVkZSA8bWFjaGluZS9wbWFwLmg+CisjaW5j bHVkZSA8bWFjaGluZS9zbWFwX2luc3RyLmg+CiAKICNpbmNsdWRlICJhc3N5bS5zIgogCkBAIC0y NDQsMTIgKzI0NSwxNiBAQCBFTlRSWShjb3B5b3V0KQogCiAJc2hycQkkMywlcmN4CiAJY2xkCisJ U1RBQwogCXJlcAogCW1vdnNxCisJQ0xBQwogCW1vdmIJJWRsLCVjbAogCWFuZGIJJDcsJWNsCisJ U1RBQwogCXJlcAogCW1vdnNiCisJQ0xBQwogCiBkb25lX2NvcHlvdXQ6CiAJeG9ybAklZWF4LCVl YXgKQEAgLTI1OCw2ICsyNjMsMTEgQEAgZG9uZV9jb3B5b3V0OgogCXJldAogCiAJQUxJR05fVEVY VAorLyoKKyAqIG5vdGU6CisgKiBXaGVuIFNNQVAgZW5hYmxlZCwgdGhlIEVGTEFHUy5BQyBiaXQg Z2V0cyBjbGVhcmVkIGJlZm9yZSBjb250cm9sIHJlYWNoZXMKKyAqIHRoZSBmYXVsdCBoYW5kbGVy LgorICovIAogY29weW91dF9mYXVsdDoKIAltb3ZxCVBDUFUoQ1VSUENCKSwlcmR4CiAJbW92cQkk MCxQQ0JfT05GQVVMVCglcmR4KQpAQCAtMjkwLDEyICszMDAsMTYgQEAgRU5UUlkoY29weWluKQog CW1vdmIJJWNsLCVhbAogCXNocnEJJDMsJXJjeAkJCQkvKiBjb3B5IGxvbmd3b3JkLXdpc2UgKi8K IAljbGQKKwlTVEFDCiAJcmVwCiAJbW92c3EKKwlDTEFDCiAJbW92YgklYWwsJWNsCiAJYW5kYgkk NywlY2wJCQkJLyogY29weSByZW1haW5pbmcgYnl0ZXMgKi8KKwlTVEFDCiAJcmVwCiAJbW92c2IK KwlDTEFDCiAKIGRvbmVfY29weWluOgogCXhvcmwJJWVheCwlZWF4CkBAIC0zMDQsNiArMzE4LDEx IEBAIGRvbmVfY29weWluOgogCXJldAogCiAJQUxJR05fVEVYVAorLyoKKyAqIG5vdGU6CisgKiBX aGVuIFNNQVAgZW5hYmxlZCwgdGhlIEVGTEFHUy5BQyBiaXQgZ2V0cyBjbGVhcmVkIGJlZm9yZSBj b250cm9sIHJlYWNoZXMKKyAqIHRoZSBmYXVsdCBoYW5kbGVyLgorICovIAogY29weWluX2ZhdWx0 OgogCW1vdnEJUENQVShDVVJQQ0IpLCVyZHgKIAltb3ZxCSQwLFBDQl9PTkZBVUxUKCVyZHgpCkBA IC0zMjQsMTAgKzM0MywxMiBAQCBFTlRSWShjYXN1d29yZDMyKQogCWphCWZ1c3VmYXVsdAogCiAJ bW92bAklZXNpLCVlYXgJCQkvKiBvbGQgKi8KKwlTVEFDCiAjaWZkZWYgU01QCiAJbG9jawogI2Vu ZGlmCiAJY21weGNoZ2wgJWVkeCwoJXJkaSkJCQkvKiBuZXcgPSAlZWR4ICovCisJQ0xBQwogCiAJ LyoKIAkgKiBUaGUgb2xkIHZhbHVlIGlzIGluICVlYXguICBJZiB0aGUgc3RvcmUgc3VjY2VlZGVk IGl0IHdpbGwgYmUgdGhlCkBAIC0zNTMsMTAgKzM3NCwxMiBAQCBFTlRSWShjYXN1d29yZCkKIAlq YQlmdXN1ZmF1bHQKIAogCW1vdnEJJXJzaSwlcmF4CQkJLyogb2xkICovCisJU1RBQwogI2lmZGVm IFNNUAogCWxvY2sKICNlbmRpZgogCWNtcHhjaGdxICVyZHgsKCVyZGkpCQkJLyogbmV3ID0gJXJk eCAqLworCUNMQUMKIAogCS8qCiAJICogVGhlIG9sZCB2YWx1ZSBpcyBpbiAlZWF4LiAgSWYgdGhl IHN0b3JlIHN1Y2NlZWRlZCBpdCB3aWxsIGJlIHRoZQpAQCAtMzg1LDcgKzQwOCw5IEBAIEVOVFJZ KGZ1d29yZCkKIAljbXBxCSVyYXgsJXJkaQkJCS8qIHZlcmlmeSBhZGRyZXNzIGlzIHZhbGlkICov CiAJamEJZnVzdWZhdWx0CiAKKwlTVEFDCiAJbW92cQkoJXJkaSksJXJheAorCUNMQUMKIAltb3Zx CSQwLFBDQl9PTkZBVUxUKCVyY3gpCiAJcmV0CiBFTkQoZnV3b3JkNjQpCQpAQCAtMzk5LDcgKzQy NCw5IEBAIEVOVFJZKGZ1d29yZDMyKQogCWNtcHEJJXJheCwlcmRpCQkJLyogdmVyaWZ5IGFkZHJl c3MgaXMgdmFsaWQgKi8KIAlqYQlmdXN1ZmF1bHQKIAorCVNUQUMKIAltb3ZsCSglcmRpKSwlZWF4 CisJQ0xBQwogCW1vdnEJJDAsUENCX09ORkFVTFQoJXJjeCkKIAlyZXQKIEVORChmdXdvcmQzMikK QEAgLTQyNiw3ICs0NTMsOSBAQCBFTlRSWShmdXdvcmQxNikKIAljbXBxCSVyYXgsJXJkaQogCWph CWZ1c3VmYXVsdAogCisJU1RBQwogCW1vdnp3bAkoJXJkaSksJWVheAorCUNMQUMKIAltb3ZxCSQw LFBDQl9PTkZBVUxUKCVyY3gpCiAJcmV0CiBFTkQoZnV3b3JkMTYpCkBAIC00MzksMTIgKzQ2OCwx OSBAQCBFTlRSWShmdWJ5dGUpCiAJY21wcQklcmF4LCVyZGkKIAlqYQlmdXN1ZmF1bHQKIAorCVNU QUMKIAltb3Z6YmwJKCVyZGkpLCVlYXgKKwlDTEFDCiAJbW92cQkkMCxQQ0JfT05GQVVMVCglcmN4 KQogCXJldAogRU5EKGZ1Ynl0ZSkKIAogCUFMSUdOX1RFWFQKKy8qCisgKiBub3RlOgorICogV2hl biBTTUFQIGVuYWJsZWQsIHRoZSBFRkxBR1MuQUMgYml0IGdldHMgY2xlYXJlZCBiZWZvcmUgY29u dHJvbCByZWFjaGVzCisgKiB0aGUgZmF1bHQgaGFuZGxlci4KKyAqLyAKIGZ1c3VmYXVsdDoKIAlt b3ZxCVBDUFUoQ1VSUENCKSwlcmN4CiAJeG9ybAklZWF4LCVlYXgKQEAgLTQ2Niw3ICs1MDIsOSBA QCBFTlRSWShzdXdvcmQpCiAJY21wcQklcmF4LCVyZGkJCQkvKiB2ZXJpZnkgYWRkcmVzcyB2YWxp ZGl0eSAqLwogCWphCWZ1c3VmYXVsdAogCisJU1RBQwogCW1vdnEJJXJzaSwoJXJkaSkKKwlDTEFD CiAJeG9ybAklZWF4LCVlYXgKIAltb3ZxCVBDUFUoQ1VSUENCKSwlcmN4CiAJbW92cQklcmF4LFBD Ql9PTkZBVUxUKCVyY3gpCkBAIC00ODIsNyArNTIwLDkgQEAgRU5UUlkoc3V3b3JkMzIpCiAJY21w cQklcmF4LCVyZGkJCQkvKiB2ZXJpZnkgYWRkcmVzcyB2YWxpZGl0eSAqLwogCWphCWZ1c3VmYXVs dAogCisJU1RBQwogCW1vdmwJJWVzaSwoJXJkaSkKKwlDTEFDCiAJeG9ybAklZWF4LCVlYXgKIAlt b3ZxCVBDUFUoQ1VSUENCKSwlcmN4CiAJbW92cQklcmF4LFBDQl9PTkZBVUxUKCVyY3gpCkBAIC00 OTcsNyArNTM3LDkgQEAgRU5UUlkoc3V3b3JkMTYpCiAJY21wcQklcmF4LCVyZGkJCQkvKiB2ZXJp ZnkgYWRkcmVzcyB2YWxpZGl0eSAqLwogCWphCWZ1c3VmYXVsdAogCisJU1RBQwogCW1vdncJJXNp LCglcmRpKQorCUNMQUMKIAl4b3JsCSVlYXgsJWVheAogCW1vdnEJUENQVShDVVJQQ0IpLCVyY3gJ CS8qIHJlc3RvcmUgdHJhc2hlZCByZWdpc3RlciAqLwogCW1vdnEJJXJheCxQQ0JfT05GQVVMVCgl cmN4KQpAQCAtNTEzLDcgKzU1NSw5IEBAIEVOVFJZKHN1Ynl0ZSkKIAlqYQlmdXN1ZmF1bHQKIAog CW1vdmwJJWVzaSwlZWF4CisJU1RBQwogCW1vdmIJJWFsLCglcmRpKQorCUNMQUMKIAl4b3JsCSVl YXgsJWVheAogCW1vdnEJUENQVShDVVJQQ0IpLCVyY3gJCS8qIHJlc3RvcmUgdHJhc2hlZCByZWdp c3RlciAqLwogCW1vdnEJJXJheCxQQ0JfT05GQVVMVCglcmN4KQpAQCAtNTU1LDcgKzU5OSw5IEBA IEVOVFJZKGNvcHlpbnN0cikKIAlkZWNxCSVyZHgKIAlqegkzZgogCisJU1RBQwogCWxvZHNiCisJ Q0xBQwogCXN0b3NiCiAJb3JiCSVhbCwlYWwKIAlqbnoJMmIKQEAgLTU4NCw3ICs2MzAsOSBAQCBj cHlzdHJmbHRfeDoKIAl0ZXN0cQklcjksJXI5CiAJanoJMWYKIAlzdWJxCSVyZHgsJXI4CisJU1RB QwogCW1vdnEJJXI4LCglcjkpCisJQ0xBQwogMToKIAlyZXQKIEVORChjb3B5aW5zdHIpCmRpZmYg LS1naXQgYS9zeXMvYW1kNjQvYW1kNjQvdHJhcC5jIGIvc3lzL2FtZDY0L2FtZDY0L3RyYXAuYwpp bmRleCA2ZmNjYTgxLi5kMzc5NDllIDEwMDY0NAotLS0gYS9zeXMvYW1kNjQvYW1kNjQvdHJhcC5j CisrKyBiL3N5cy9hbWQ2NC9hbWQ2NC90cmFwLmMKQEAgLTEyNyw2ICsxMjcsOSBAQCB2b2lkIGRi bGZhdWx0X2hhbmRsZXIoc3RydWN0IHRyYXBmcmFtZSAqZnJhbWUpOwogCiBzdGF0aWMgaW50IHRy YXBfcGZhdWx0KHN0cnVjdCB0cmFwZnJhbWUgKiwgaW50KTsKIHN0YXRpYyB2b2lkIHRyYXBfZmF0 YWwoc3RydWN0IHRyYXBmcmFtZSAqLCB2bV9vZmZzZXRfdCk7CisjaWZkZWYgSU5URUxfU01BUAor c3RhdGljIGJvb2wgc21hcF9hY2Nlc3NfdmlvbGF0aW9uKHN0cnVjdCB0cmFwZnJhbWUgKiwgaW50 IHVzZXJtb2RlKTsKKyNlbmRpZgogCiAjZGVmaW5lIE1BWF9UUkFQX01TRwkJMzMKIHN0YXRpYyBj aGFyICp0cmFwX21zZ1tdID0gewpAQCAtNzE4LDYgKzcyMSwxMyBAQCB0cmFwX3BmYXVsdChmcmFt ZSwgdXNlcm1vZGUpCiAKIAkJbWFwID0gJnZtLT52bV9tYXA7CiAKKyNpZmRlZiBJTlRFTF9TTUFQ CisJCWlmIChfX3ByZWRpY3RfZmFsc2Uoc21hcF9hY2Nlc3NfdmlvbGF0aW9uKGZyYW1lLCB1c2Vy bW9kZSkpKSB7CisJCQl0cmFwX2ZhdGFsKGZyYW1lLCBldmEpOworCQkJcmV0dXJuICgtMSk7CisJ CX0KKyNlbmRpZgorCiAJCS8qCiAJCSAqIFdoZW4gYWNjZXNzaW5nIGEgdXNlcm1vZGUgYWRkcmVz cywga2VybmVsIG11c3QgYmUKIAkJICogcmVhZHkgdG8gYWNjZXB0IHRoZSBwYWdlIGZhdWx0LCBh bmQgcHJvdmlkZSBhCkBAIC04NzQsNiArODg0LDIwIEBAIHRyYXBfZmF0YWwoZnJhbWUsIGV2YSkK IAkJcGFuaWMoInVua25vd24vcmVzZXJ2ZWQgdHJhcCIpOwogfQogCisjaWZkZWYgSU5URUxfU01B UAorc3RhdGljIGJvb2wKK3NtYXBfYWNjZXNzX3Zpb2xhdGlvbihzdHJ1Y3QgdHJhcGZyYW1lICpm cmFtZSwgaW50IHVzZXJtb2RlKQoreworCWlmICgoY3B1X3N0ZGV4dF9mZWF0dXJlICYgQ1BVSURf U1RERVhUX1NNQVApID09IDApCisJCXJldHVybiAoZmFsc2UpOworCisJaWYgKHVzZXJtb2RlIHx8 IChmcmFtZS0+dGZfcmZsYWdzICYgUFNMX0FDKSAhPSAwKQorCQlyZXR1cm4gKGZhbHNlKTsKKwor CXJldHVybiAodHJ1ZSk7Cit9CisjZW5kaWYKKwogLyoKICAqIERvdWJsZSBmYXVsdCBoYW5kbGVy LiBDYWxsZWQgd2hlbiBhIGZhdWx0IG9jY3VycyB3aGlsZSB3cml0aW5nCiAgKiBhIGZyYW1lIGZv ciBhIHRyYXAvZXhjZXB0aW9uIG9udG8gdGhlIHN0YWNrLiBUaGlzIHVzdWFsbHkgb2NjdXJzCmRp ZmYgLS1naXQgYS9zeXMvYW1kNjQvaWEzMi9pYTMyX2V4Y2VwdGlvbi5TIGIvc3lzL2FtZDY0L2lh MzIvaWEzMl9leGNlcHRpb24uUwppbmRleCBmZTFhNjc2Li45ZjEzZjJmIDEwMDY0NAotLS0gYS9z eXMvYW1kNjQvaWEzMi9pYTMyX2V4Y2VwdGlvbi5TCisrKyBiL3N5cy9hbWQ2NC9pYTMyL2lhMzJf ZXhjZXB0aW9uLlMKQEAgLTY4LDYgKzY4LDcgQEAgSURUVkVDKGludDB4ODBfc3lzY2FsbCkKIAlt b3ZxCSVyMTUsVEZfUjE1KCVyc3ApCiAJbW92bAkkVEZfSEFTU0VHUyxURl9GTEFHUyglcnNwKQog CWNsZAorCUNMQUMKIAlGQUtFX01DT1VOVChURl9SSVAoJXJzcCkpCiAJbW92cQklcnNwLCAlcmRp CiAJY2FsbAlpYTMyX3N5c2NhbGwKZGlmZiAtLWdpdCBhL3N5cy9hbWQ2NC9pbmNsdWRlL2FzbWFj cm9zLmggYi9zeXMvYW1kNjQvaW5jbHVkZS9hc21hY3Jvcy5oCmluZGV4IDFmYjU5MmEuLmM5ODU2 MjMgMTAwNjQ0Ci0tLSBhL3N5cy9hbWQ2NC9pbmNsdWRlL2FzbWFjcm9zLmgKKysrIGIvc3lzL2Ft ZDY0L2luY2x1ZGUvYXNtYWNyb3MuaApAQCAtMTY3LDcgKzE2Nyw4IEBACiAJbW92dwklZXMsVEZf RVMoJXJzcCkgOwkJCQkJXAogCW1vdncJJWRzLFRGX0RTKCVyc3ApIDsJCQkJCVwKIAltb3ZsCSRU Rl9IQVNTRUdTLFRGX0ZMQUdTKCVyc3ApIDsJCQkJXAotCWNsZAorCWNsZCA7CQkJCQkJCQlcCisJ Q0xBQwogCiAjZGVmaW5lIFBPUF9GUkFNRQkJCQkJCQlcCiAJbW92cQlURl9SREkoJXJzcCksJXJk aSA7CQkJCQlcCmRpZmYgLS1naXQgYS9zeXMvYW1kNjQvaW5jbHVkZS9jcHVmdW5jLmggYi9zeXMv YW1kNjQvaW5jbHVkZS9jcHVmdW5jLmgKaW5kZXggODgxZmNkMi4uNTNiMmNlOCAxMDA2NDQKLS0t IGEvc3lzL2FtZDY0L2luY2x1ZGUvY3B1ZnVuYy5oCisrKyBiL3N5cy9hbWQ2NC9pbmNsdWRlL2Nw dWZ1bmMuaApAQCAtMzksMTAgKzM5LDE2IEBACiAjaWZuZGVmIF9NQUNISU5FX0NQVUZVTkNfSF8K ICNkZWZpbmUJX01BQ0hJTkVfQ1BVRlVOQ19IXwogCisjaW5jbHVkZSAib3B0X2NwdS5oIgorCiAj aWZuZGVmIF9TWVNfQ0RFRlNfSF8KICNlcnJvciB0aGlzIGZpbGUgbmVlZHMgc3lzL2NkZWZzLmgg YXMgYSBwcmVyZXF1aXNpdGUKICNlbmRpZgogCisjaWZkZWYgSU5URUxfU01BUAorI2luY2x1ZGUg PG1hY2hpbmUvc21hcF9pbnN0ci5oPgorI2VuZGlmCisKIHN0cnVjdCByZWdpb25fZGVzY3JpcHRv cjsKIAogI2RlZmluZSByZWFkYih2YSkJKCoodm9sYXRpbGUgdWludDhfdCAqKSAodmEpKQpAQCAt NzExLDExICs3MTcsMzEgQEAgaW50cl9yZXN0b3JlKHJlZ2lzdGVyX3QgcmZsYWdzKQogCXdyaXRl X3JmbGFncyhyZmxhZ3MpOwogfQogCisvKgorICogSW50ZWwgU01BUCByZWxhdGVkIGZ1bmN0aW9u cyAoY2xhYyBhbmQgc3RhYykKKyAqLworc3RhdGljIF9faW5saW5lIHZvaWQKK2NsYWModm9pZCkK K3sKKyNpZmRlZiBJTlRFTF9TTUFQCisJX19hc20gX192b2xhdGlsZShfX1NUUklORyhDTEFDKSA6 IDogOiAibWVtb3J5Iik7CisjZW5kaWYKK30KKworc3RhdGljIF9faW5saW5lIHZvaWQKK3N0YWMo dm9pZCkKK3sKKyNpZmRlZiBJTlRFTF9TTUFQCisJX19hc20gX192b2xhdGlsZShfX1NUUklORyhT VEFDKSA6IDogOiAibWVtb3J5Iik7CisjZW5kaWYKK30KKwogI2Vsc2UgLyogIShfX0dOVUNMSUtF X0FTTSAmJiBfX0NDX1NVUFBPUlRTX19fSU5MSU5FKSAqLwogCiBpbnQJYnJlYWtwb2ludCh2b2lk KTsKIHVfaW50CWJzZmwodV9pbnQgbWFzayk7CiB1X2ludAlic3JsKHVfaW50IG1hc2spOwordm9p ZAljbGFjKHZvaWQpOwogdm9pZAljbGZsdXNoKHVfbG9uZyBhZGRyKTsKIHZvaWQJY2x0cyh2b2lk KTsKIHZvaWQJY3B1aWRfY291bnQodV9pbnQgYXgsIHVfaW50IGN4LCB1X2ludCAqcCk7CkBAIC03 NzUsNiArODAxLDcgQEAgdWludDY0X3QgcmR0c2Modm9pZCk7CiB1X2xvbmcJcmVhZF9yZmxhZ3Mo dm9pZCk7CiB1X2ludAlyZnModm9pZCk7CiB1X2ludAlyZ3Modm9pZCk7Cit2b2lkCXN0YWModm9p ZCk7CiB2b2lkCXdiaW52ZCh2b2lkKTsKIHZvaWQJd3JpdGVfcmZsYWdzKHVfaW50IHJmKTsKIHZv aWQJd3Jtc3IodV9pbnQgbXNyLCB1aW50NjRfdCBuZXd2YWwpOwpkaWZmIC0tZ2l0IGEvc3lzL2Ft ZDY0L2luY2x1ZGUvc21hcF9pbnN0ci5oIGIvc3lzL2FtZDY0L2luY2x1ZGUvc21hcF9pbnN0ci5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3OTI2YWEKLS0tIC9kZXYvbnVs bAorKysgYi9zeXMvYW1kNjQvaW5jbHVkZS9zbWFwX2luc3RyLmgKQEAgLTAsMCArMSwxNCBAQAor I2lmbmRlZglfX1NNQVBfSU5TVFJVQ1RJT05fSAorI2RlZmluZQlfX1NNQVBfSU5TVFJVQ1RJT05f SAorCisjaW5jbHVkZSAib3B0X2NwdS5oIgorCisjaWZkZWYgSU5URUxfU01BUAorI2RlZmluZQlD TEFDCS5ieXRlIDB4MGYsMHgwMSwweGNhCisjZGVmaW5lCVNUQUMJLmJ5dGUgMHgwZiwweDAxLDB4 Y2IKKyNlbHNlCisjZGVmaW5lCUNMQUMKKyNkZWZpbmUJU1RBQworI2VuZGlmCisKKyNlbmRpZgkv KiBfX1NNQVBfSU5TVFJVQ1RJT05fSCAqLwpkaWZmIC0tZ2l0IGEvc3lzL2NvbmYvTk9URVMgYi9z eXMvY29uZi9OT1RFUwppbmRleCA0OGRiYTc3Li5hZjFjZjcxIDEwMDY0NAotLS0gYS9zeXMvY29u Zi9OT1RFUworKysgYi9zeXMvY29uZi9OT1RFUwpAQCAtMjk2MywzICsyOTYzLDcgQEAgb3B0aW9u cyAJUkNUTAogb3B0aW9ucyAJQlJPT0tUUkVFX0FMTE9DX1BBR0VTPSgyMTcqNCsxKQogb3B0aW9u cyAJTUFYRklMRVM9OTk5CiAKKyMgSW50ZWwgU01BUAorIyBUaGlzIG9wdGlvbnMgc3VwcG9ydGVk IG9uIEhhc3dlbGwgYW5kL29yIG5ld2VyIENQVXMgKDIwMTMgSnVuaSA8ICkgYW5kCisjIG1ha2Vz IHRoZSBrZXJuZWwgdW5ib290YWJsZSBvbiBvbGRlciBDUFVzLgorb3B0aW9ucyAJSU5URUxfU01B UAkjIEludGVsJ3MgaHcgdmVyc2lvbiBvZiBQYVggdWRlcmVmCmRpZmYgLS1naXQgYS9zeXMvY29u Zi9vcHRpb25zLmFtZDY0IGIvc3lzL2NvbmYvb3B0aW9ucy5hbWQ2NAppbmRleCA5MDM0OGI3Li5i ODYxNDM5IDEwMDY0NAotLS0gYS9zeXMvY29uZi9vcHRpb25zLmFtZDY0CisrKyBiL3N5cy9jb25m L29wdGlvbnMuYW1kNjQKQEAgLTcyLDMgKzcyLDYgQEAgSVNDSV9MT0dHSU5HCW9wdF9pc2NpLmgK ICMgaHcgcmFuZG9tIG51bWJlciBnZW5lcmF0b3JzIGZvciByYW5kb20oNCkKIFBBRExPQ0tfUk5H CQlvcHRfY3B1LmgKIFJEUkFORF9STkcJCW9wdF9jcHUuaAorCisjIEludGVsIFN1cGVydmlzb3Ig TW9kZSBBY2Nlc3MgUHJldmVudGlvbiAoU01BUCkKK0lOVEVMX1NNQVAJCW9wdF9jcHUuaApkaWZm IC0tZ2l0IGEvc3lzL3g4Ni9pbmNsdWRlL3BzbC5oIGIvc3lzL3g4Ni9pbmNsdWRlL3BzbC5oCmlu ZGV4IDEyZDA1YzUuLmNlOTdhMjYgMTAwNjQ0Ci0tLSBhL3N5cy94ODYvaW5jbHVkZS9wc2wuaAor KysgYi9zeXMveDg2L2luY2x1ZGUvcHNsLmgKQEAgLTUyLDcgKzUyLDcgQEAKICNkZWZpbmUJUFNM X05UCQkweDAwMDA0MDAwCS8qIG5lc3RlZCB0YXNrIGJpdCAqLwogI2RlZmluZQlQU0xfUkYJCTB4 MDAwMTAwMDAJLyogcmVzdW1lIGZsYWcgYml0ICovCiAjZGVmaW5lCVBTTF9WTQkJMHgwMDAyMDAw MAkvKiB2aXJ0dWFsIDgwODYgbW9kZSBiaXQgKi8KLSNkZWZpbmUJUFNMX0FDCQkweDAwMDQwMDAw CS8qIGFsaWdubWVudCBjaGVja2luZyAqLworI2RlZmluZQlQU0xfQUMJCTB4MDAwNDAwMDAJLyog YWxpZ25tZW50IGNoZWNraW5nIG9yIFNNQVAgc3RhdHVzKi8KICNkZWZpbmUJUFNMX1ZJRgkJMHgw MDA4MDAwMAkvKiB2aXJ0dWFsIGludGVycnVwdCBlbmFibGUgKi8KICNkZWZpbmUJUFNMX1ZJUAkJ MHgwMDEwMDAwMAkvKiB2aXJ0dWFsIGludGVycnVwdCBwZW5kaW5nICovCiAjZGVmaW5lCVBTTF9J RAkJMHgwMDIwMDAwMAkvKiBpZGVudGlmaWNhdGlvbiBiaXQgKi8KZGlmZiAtLWdpdCBhL3N5cy94 ODYvaW5jbHVkZS9zcGVjaWFscmVnLmggYi9zeXMveDg2L2luY2x1ZGUvc3BlY2lhbHJlZy5oCmlu ZGV4IGJmMTMzM2YuLjZiZmZkNDMgMTAwNjQ0Ci0tLSBhL3N5cy94ODYvaW5jbHVkZS9zcGVjaWFs cmVnLmgKKysrIGIvc3lzL3g4Ni9pbmNsdWRlL3NwZWNpYWxyZWcuaApAQCAtNzMsNiArNzMsNyBA QAogI2RlZmluZQlDUjRfUENJREUgMHgwMDAyMDAwMAkvKiBFbmFibGUgQ29udGV4dCBJRCAqLwog I2RlZmluZQlDUjRfWFNBVkUgMHgwMDA0MDAwMAkvKiBYU0VUQlYvWEdFVEJWICovCiAjZGVmaW5l CUNSNF9TTUVQIDB4MDAxMDAwMDAJLyogU3VwZXJ2aXNvci1Nb2RlIEV4ZWN1dGlvbiBQcmV2ZW50 aW9uICovCisjZGVmaW5lCUNSNF9TTUFQIDB4MDAyMDAwMDAJLyogU3VwZXJ2aXNvci1Nb2RlIEFj Y2VzcyBQcmV2ZW50aW9uICovCiAKIC8qCiAgKiBCaXRzIGluIEFNRDY0IHNwZWNpYWwgcmVnaXN0 ZXJzLiAgRUZFUiBpcyA2NCBiaXRzIHdpZGUuCi0tIAoxLjguMi4yCgo= --e89a8ff1cc9ccec54f04de206815--