From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A29A1C3A5A2 for ; Fri, 23 Aug 2019 17:49:59 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7C0F721848 for ; Fri, 23 Aug 2019 17:49:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="IY5tecT7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7C0F721848 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=40obuvoOWdM5AZKsV7Y7X5xGxdXMQin2PkvC8ySy+WE=; b=IY5tecT7xug/oD 1RsvdxOChQMhbRZwYnuA/LuhGCnwk3FfIeO2uFTM9y7reie74jAURkkn18/9h6lW29o6OC1Fd6Leh zjWAjRqt+Zfogo0/RueqwNEI9TsYAITVet3blT9gqeHC9reRJdiHF12hojrOAwil23jr122f+p4y9 oUDBDdXJj3PpjwfqCDGOa64/pRFhn3SlJzfi2fjcDJ6DHkLxJ8EhWWhvDNVaFeqKXXKf7p2Rgrcaq hPjuDfsAw0ejxK3v2k+aHwIgQggenrF8YYICjcD0dALnusPw9LmZfYz/EoApkRIglWtU3bmTy1MGV I4G9scUQRcyRfsjjL1jg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i1DhG-00040m-Q6; Fri, 23 Aug 2019 17:49:58 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i1DhC-0003zG-Nx for linux-arm-kernel@lists.infradead.org; Fri, 23 Aug 2019 17:49:56 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 527D3337; Fri, 23 Aug 2019 10:49:49 -0700 (PDT) Received: from [10.1.197.50] (e120937-lin.cambridge.arm.com [10.1.197.50]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5F0BC3F246; Fri, 23 Aug 2019 10:49:44 -0700 (PDT) Subject: Re: [PATCH v18 15/15] selftests, arm64: add a selftest for passing tagged pointers to kernel To: Andrey Konovalov References: <0999c80cd639b78ae27c0674069d552833227564.1561386715.git.andreyknvl@google.com> <6af3f619-4356-2f67-ed76-92beceb1e0a0@arm.com> From: Cristian Marussi Message-ID: Date: Fri, 23 Aug 2019 18:49:43 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190823_104954_872732_C8F934D4 X-CRM114-Status: GOOD ( 26.74 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , kvm@vger.kernel.org, Szabolcs Nagy , Catalin Marinas , Will Deacon , dri-devel@lists.freedesktop.org, Linux Memory Management List , Khalid Aziz , "open list:KERNEL SELFTEST FRAMEWORK" , Felix Kuehling , Vincenzo Frascino , Jacob Bramley , Leon Romanovsky , linux-rdma@vger.kernel.org, amd-gfx@lists.freedesktop.org, Christoph Hellwig , Jason Gunthorpe , Dmitry Vyukov , Dave Martin , Evgeniy Stepanov , linux-media@vger.kernel.org, Kevin Brodsky , Kees Cook , Ruben Ayrapetyan , Ramana Radhakrishnan , Alex Williamson , Mauro Carvalho Chehab , Linux ARM , Kostya Serebryany , Greg Kroah-Hartman , Yishai Hadas , LKML , Jens Wiklander , Lee Smith , Alexander Deucher , Andrew Morton , enh , Robin Murphy , Christian Koenig , Luc Van Oostenryck Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org CkhpCgpPbiAyMy8wOC8yMDE5IDE4OjE2LCBBbmRyZXkgS29ub3ZhbG92IHdyb3RlOgo+IE9uIEZy aSwgQXVnIDIzLCAyMDE5IGF0IDM6NTYgUE0gQ3Jpc3RpYW4gTWFydXNzaQo+IDxjcmlzdGlhbi5t YXJ1c3NpQGFybS5jb20+IHdyb3RlOgo+Pgo+PiBIaSBBbmRyZXkKPj4KPj4gT24gMjQvMDYvMjAx OSAxNTozMywgQW5kcmV5IEtvbm92YWxvdiB3cm90ZToKPj4+IFRoaXMgcGF0Y2ggaXMgYSBwYXJ0 IG9mIGEgc2VyaWVzIHRoYXQgZXh0ZW5kcyBrZXJuZWwgQUJJIHRvIGFsbG93IHRvIHBhc3MKPj4+ IHRhZ2dlZCB1c2VyIHBvaW50ZXJzICh3aXRoIHRoZSB0b3AgYnl0ZSBzZXQgdG8gc29tZXRoaW5n IGVsc2Ugb3RoZXIgdGhhbgo+Pj4gMHgwMCkgYXMgc3lzY2FsbCBhcmd1bWVudHMuCj4+Pgo+Pj4g VGhpcyBwYXRjaCBhZGRzIGEgc2ltcGxlIHRlc3QsIHRoYXQgY2FsbHMgdGhlIHVuYW1lIHN5c2Nh bGwgd2l0aCBhCj4+PiB0YWdnZWQgdXNlciBwb2ludGVyIGFzIGFuIGFyZ3VtZW50LiBXaXRob3V0 IHRoZSBrZXJuZWwgYWNjZXB0aW5nIHRhZ2dlZAo+Pj4gdXNlciBwb2ludGVycyB0aGUgdGVzdCBm YWlscyB3aXRoIEVGQVVMVC4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXkgS29ub3ZhbG92 IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+Cj4+PiAtLS0KPj4+ICB0b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9hcm02NC8uZ2l0aWdub3JlICAgICAgfCAgMSArCj4+PiAgdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvYXJtNjQvTWFrZWZpbGUgICAgICAgIHwgMTEgKysrKysrKwo+Pj4gIC4uLi90ZXN0aW5n L3NlbGZ0ZXN0cy9hcm02NC9ydW5fdGFnc190ZXN0LnNoICB8IDEyICsrKysrKysrCj4+PiAgdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvYXJtNjQvdGFnc190ZXN0LmMgICAgIHwgMjkgKysrKysrKysr KysrKysrKysrKwo+Pj4gIDQgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKQo+Pj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9hcm02NC8uZ2l0aWdub3Jl Cj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2FybTY0L01h a2VmaWxlCj4+PiAgY3JlYXRlIG1vZGUgMTAwNzU1IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Fy bTY0L3J1bl90YWdzX3Rlc3Quc2gKPj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvYXJtNjQvdGFnc190ZXN0LmMKPj4KPj4gQWZ0ZXIgYnVpbGRpbmcgYSBmcmVz aCBLZXJuZWwgZnJvbSBhcm02NC9mb3ItbmV4dC1jb3JlIGZyb20gc2NyYXRjaCBhdDoKPj4KPj4g Y29tbWl0IDIzOWFiNjU4YmVhM2IzODc0MjQ1MDFlN2M0MTY2NDBkNjc1MmRjMGMKPj4gTWVyZ2U6 IDZiZmEzMTM0YmQzYSA0MmQwMzhjNGZiMDAgMTI0M2NiNmE2NzZmIGQ1NWM1ZjI4YWZhZiBkMDZm YTVhMTE4ZjEgMzRiNTU2MGRiNDBkCj4+IEF1dGhvcjogV2lsbCBEZWFjb24gPHdpbGxAa2VybmVs Lm9yZz4KPj4gRGF0ZTogICBUaHUgQXVnIDIyIDE4OjIzOjUzIDIwMTkgKzAxMDAKPj4KPj4gICAg IE1lcmdlIGJyYW5jaGVzICdmb3ItbmV4dC9lcnJvci1pbmplY3Rpb24nLCAnZm9yLW5leHQvdGJp JywgJ2Zvci1uZXh0L3BzY2ktY3B1aWRsZScsICdmb3ItbmV4dC9jcHUtdG9wb2xvZ3knIGFuZCAn Zm9yLW5leHQvNTItYml0LWt2YScgaW50byBmb3ItbmV4dC9jb3JlCj4+Cj4+Cj4+IEtTRlQgYXJt NjQgdGVzdHMgYnVpbGQgaXMgYnJva2VuIGZvciBtZSwgYm90aCBzZXR0aW5nIG9yIG5vdCBLQlVJ TERfT1VUUFVUPQo+Pgo+PiAxMzozMCAkIG1ha2UgVEFSR0VUUz1hcm02NCBrc2VsZnRlc3QtY2xl YW4KPj4gbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9jcmltYXIwMS9BUk0vZGV2 L3NyYy9wZHN3L291dF9saW51eCcKPj4gcm0gLWYgLXIgL2hvbWUvY3JpbWFyMDEvQVJNL2Rldi9z cmMvcGRzdy9vdXRfbGludXgvL2tzZWxmdGVzdC9hcm02NC90YWdzX3Rlc3QKPj4gbWFrZVsxXTog TGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL2NyaW1hcjAxL0FSTS9kZXYvc3JjL3Bkc3cvb3V0X2xp bnV4Jwo+Pgo+PiDinJQgfi9BUk0vZGV2L3NyYy9wZHN3L2xpbnV4IFthcm02NF9mb3JfbmV4dF9j b3JlfOKApjjimpEgMjNdCj4+Cj4+IDEzOjMwICQgbWFrZSBUQVJHRVRTPWFybTY0IGtzZWxmdGVz dAo+PiBtYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL2NyaW1hcjAxL0FSTS9kZXYv c3JjL3Bkc3cvb3V0X2xpbnV4Jwo+PiBhcmNoL2FybTY0L01ha2VmaWxlOjU2OiBDUk9TU19DT01Q SUxFX0NPTVBBVCBub3QgZGVmaW5lZCBvciBlbXB0eSwgdGhlIGNvbXBhdCB2RFNPIHdpbGwgbm90 IGJlIGJ1aWx0Cj4+IG1ha2UgLS1uby1idWlsdGluLXJ1bGVzIElOU1RBTExfSERSX1BBVEg9JEJV SUxEL3VzciBcCj4+ICAgICAgICAgQVJDSD1hcm02NCAtQyAuLi8uLi8uLiBoZWFkZXJzX2luc3Rh bGwKPj4gICBIT1NUQ0MgIHNjcmlwdHMvYmFzaWMvZml4ZGVwCj4+ICAgSE9TVENDICBzY3JpcHRz L3VuaWZkZWYKPj4gLi4uCj4+IC4uLgo+PiAgIEhEUklOU1QgdXNyL2luY2x1ZGUvYXNtL21zZ2J1 Zi5oCj4+ICAgSERSSU5TVCB1c3IvaW5jbHVkZS9hc20vc2htYnVmLmgKPj4gICBJTlNUQUxMIC9o b21lL2NyaW1hcjAxL0FSTS9kZXYvc3JjL3Bkc3cvb3V0X2xpbnV4Ly9rc2VsZnRlc3QvdXNyL2lu Y2x1ZGUKPj4gL29wdC90b29sY2hhaW5zL2djYy1hcm0tOC4zLTIwMTkuMDMteDg2XzY0LWFhcmNo NjQtbGludXgtZ251L2Jpbi9hYXJjaDY0LWxpbnV4LWdudS1nY2MgICAgIHRhZ3NfdGVzdC5jICAt byAvaG9tZS9jcmltYXIwMS9BUk0vZGV2L3NyYy9wZHN3L291dF9saW51eC8va3NlbGZ0ZXN0L2Fy bTY0L3RhZ3NfdGVzdAo+PiB0YWdzX3Rlc3QuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKPj4g dGFnc190ZXN0LmM6MjE6MTI6IGVycm9yOiDigJhQUl9TRVRfVEFHR0VEX0FERFJfQ1RSTOKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJhQ Ul9HRVRfVElEX0FERFJFU1PigJk/Cj4+ICAgaWYgKHByY3RsKFBSX1NFVF9UQUdHRURfQUREUl9D VFJMLCBQUl9UQUdHRURfQUREUl9FTkFCTEUsIDAsIDAsIDApID09IDApCj4+ICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cj4+ICAgICAgICAgICAgIFBSX0dFVF9USURfQUREUkVT Uwo+PiB0YWdzX3Rlc3QuYzoyMToxMjogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIg aXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KPj4g dGFnc190ZXN0LmM6MjE6Mzc6IGVycm9yOiDigJhQUl9UQUdHRURfQUREUl9FTkFCTEXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYUFJf R0VUX0RVTVBBQkxF4oCZPwo+PiAgIGlmIChwcmN0bChQUl9TRVRfVEFHR0VEX0FERFJfQ1RSTCwg UFJfVEFHR0VEX0FERFJfRU5BQkxFLCAwLCAwLCAwKSA9PSAwKQo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+Cj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQUl9HRVRfRFVNUEFCTEUKPj4gLi4vbGliLm1rOjEz ODogcmVjaXBlIGZvciB0YXJnZXQgJy9ob21lL2NyaW1hcjAxL0FSTS9kZXYvc3JjL3Bkc3cvb3V0 X2xpbnV4Ly9rc2VsZnRlc3QvYXJtNjQvdGFnc190ZXN0JyBmYWlsZWQKPj4gbWFrZVszXTogKioq IFsvaG9tZS9jcmltYXIwMS9BUk0vZGV2L3NyYy9wZHN3L291dF9saW51eC8va3NlbGZ0ZXN0L2Fy bTY0L3RhZ3NfdGVzdF0gRXJyb3IgMQo+PiBNYWtlZmlsZToxMzY6IHJlY2lwZSBmb3IgdGFyZ2V0 ICdhbGwnIGZhaWxlZAo+PiBtYWtlWzJdOiAqKiogW2FsbF0gRXJyb3IgMgo+PiAvaG9tZS9jcmlt YXIwMS9BUk0vZGV2L3NyYy9wZHN3L2xpbnV4L01ha2VmaWxlOjEyMzc6IHJlY2lwZSBmb3IgdGFy Z2V0ICdrc2VsZnRlc3QnIGZhaWxlZAo+PiBtYWtlWzFdOiAqKiogW2tzZWxmdGVzdF0gRXJyb3Ig Mgo+PiBtYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvY3JpbWFyMDEvQVJNL2Rldi9z cmMvcGRzdy9vdXRfbGludXgnCj4+IE1ha2VmaWxlOjE3OTogcmVjaXBlIGZvciB0YXJnZXQgJ3N1 Yi1tYWtlJyBmYWlsZWQKPj4gbWFrZTogKioqIFtzdWItbWFrZV0gRXJyb3IgMgo+Pgo+PiBEZXNw aXRlIHNlZWluZyBLU0ZUIGluc3RhbGxpbmcgS2VybmVsIEhlYWRlcnMsIHRoZXkgY2Fubm90IGJl IGZvdW5kLgo+Pgo+PiBGaXhpbmcgdGhpcyBwYXRjaCBsaWtlIHRoaXMgbWFrZSBpdCB3b3JrIGZv ciBtZToKPj4KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2FybTY0L01h a2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYXJtNjQvTWFrZWZpbGUKPj4gaW5kZXgg YTYxYjJlNzQzZTk5Li5mOWY3OWZiMjcyZjAgMTAwNjQ0Cj4+IC0tLSBhL3Rvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL2FybTY0L01ha2VmaWxlCj4+ICsrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L2FybTY0L01ha2VmaWxlCj4+IEBAIC00LDYgKzQsNyBAQAo+PiAgQVJDSCA/PSAkKHNoZWxsIHVu YW1lIC1tIDI+L2Rldi9udWxsIHx8IGVjaG8gbm90KQo+Pgo+PiAgaWZuZXEgKCwkKGZpbHRlciAk KEFSQ0gpLGFhcmNoNjQgYXJtNjQpKQo+PiArQ0ZMQUdTICs9IC1JLi4vLi4vLi4vLi4vdXNyL2lu Y2x1ZGUvCj4+ICBURVNUX0dFTl9QUk9HUyA6PSB0YWdzX3Rlc3QKPj4gIFRFU1RfUFJPR1MgOj0g cnVuX3RhZ3NfdGVzdC5zaAo+PiAgZW5kaWYKPj4KPj4gYnV0IGlzIG5vdCByZWFsbHkgYSBwcm9w ZXIgZml4IHNpbmNlIGl0IGRvZXMgTk9UIGFjY291bnQgZm9yIGNhc2UgaW4gd2hpY2ggeW91IGhh dmUKPj4gaW5zdGFsbGVkIHRoZSBLZXJuZWwgSGVhZGVycyBpbiBhIG5vbiBzdGFuZGFyZCBsb2Nh dGlvbiBsaWtlIHdoZW4geW91IHVzZSBLQlVJTERfT1VUUFVULgo+Pgo+PiBBbSBJIG1pc3Npbmcg c29tZXRoaW5nID8KPiAKPiBIbSwgUFJfU0VUX1RBR0dFRF9BRERSX0NUUkwgaXMgZGVmaW5lZCBp biBpbmNsdWRlL3VhcGkvbGludXgvcHJjdGwuaCwKPiBhbmQgdGhlIHRlc3QgaGFzICNpbmNsdWRl IDxzeXMvcHJjdGwuaD4gc28gYXMgbG9uZyBhcyB5b3UndmUgdXBkYXRlZAo+IHlvdXIga2VybmVs IGhlYWRlcnMgdGhpcyBzaG91bGQgd29yay4KPiAKPiAoSSdtIE9PTyBuZXh0IHdlZWssIEknbGwg c2VlIGlmIEkgY2FuIHJlcHJvZHVjZSB0aGlzIG9uY2UgSSdtIGJhY2spLgoKT2suIFRoYW5rcyBm b3IgdGhlIHJlcGx5LgoKSSB0aGluayBJJ3ZlIGdvdCBpdCBpbiBteSBsb2NhbCB0cmVlIGhhdmlu ZyBjbG9uZWQgYXJtNjQvZm9yLW5leHQtY29yZToKCjE4OjMyICQgZWdyZXAgLUEgMTAgUFJfU0VU X1RBRyAuL2luY2x1ZGUvdWFwaS9saW51eC9wcmN0bC5oCiNkZWZpbmUgUFJfU0VUX1RBR0dFRF9B RERSX0NUUkwgICAgICAgICA1NQojZGVmaW5lIFBSX0dFVF9UQUdHRURfQUREUl9DVFJMICAgICAg ICAgNTYKIyBkZWZpbmUgUFJfVEFHR0VEX0FERFJfRU5BQkxFICAgICAgICAgICgxVUwgPDwgMCkK CiNlbmRpZiAvKiBfTElOVVhfUFJDVExfSCAqLwoKYW5kIEtlcm5lbCBoZWFkZXIgYXJlIGxvY2Fs bHkgaW5zdGFsbGVkIGluIG15IGtlcm5lbCBzcmMgZGlyIChieSBLU0ZUIGluZGVlZCkKCjE4OjM0 ICQgZWdyZXAgLVJBIDEwIFBSX1NFVF9UQUcgdXNyL2luY2x1ZGUvCnVzci9pbmNsdWRlL2xpbnV4 L3ByY3RsLmg6I2RlZmluZSBQUl9TRVRfVEFHR0VEX0FERFJfQ1RSTCAgICAgICAgICAgICAgIDU1 CnVzci9pbmNsdWRlL2xpbnV4L3ByY3RsLmgtI2RlZmluZSBQUl9HRVRfVEFHR0VEX0FERFJfQ1RS TCAgICAgICAgICAgICAgIDU2CnVzci9pbmNsdWRlL2xpbnV4L3ByY3RsLmgtIyBkZWZpbmUgUFJf VEFHR0VEX0FERFJfRU5BQkxFICAgICAgICAgICAgICAgICgxVUwgPDwgMCkKdXNyL2luY2x1ZGUv bGludXgvcHJjdGwuaC0KdXNyL2luY2x1ZGUvbGludXgvcHJjdGwuaC0jZW5kaWYgLyogX0xJTlVY X1BSQ1RMX0ggKi8KCmJ1dCBob3cgYXJlIHRoZXkgc3VwcG9zZWQgdG8gYmUgZm91bmQgaWYgbm9y IHRoZSB0ZXN0IE1ha2VmaWxlCm5laXRoZXIgdGhlIEtTRlQgTWFrZWZpbGUgd2hvIGluc3RhbGxz IHRoZW0gcGFzcyBhbnkgLUkgb3B0aW9ucyB0byB0aGUKY29tcGlsZXIgPwpJIHN1cHBvc2UgPHN5 cy9wcmN0bC5oPiB0cmllcyB0byBpbmNsdWRlIGFyY2ggc3BlY2lmaWMgaGVhZGVycyBmcm9tIHRo ZSByZWd1bGFyIHN5c3RlbSBwYXRoLApidXQgd2hlbiB5b3UgYXJlIGNyb3NzLWNvbXBpbGluZyA/ CgoxODozNCAkIG1ha2UgVEFSR0VUUz1hcm02NCBrc2VsZnRlc3QKbWFrZVsxXTogRW50ZXJpbmcg ZGlyZWN0b3J5ICcvaG9tZS9jcmltYXIwMS9BUk0vZGV2L3NyYy9wZHN3L291dF9saW51eCcKYXJj aC9hcm02NC9NYWtlZmlsZTo1NjogQ1JPU1NfQ09NUElMRV9DT01QQVQgbm90IGRlZmluZWQgb3Ig ZW1wdHksIHRoZSBjb21wYXQgdkRTTyB3aWxsIG5vdCBiZSBidWlsdAptYWtlIC0tbm8tYnVpbHRp bi1ydWxlcyBJTlNUQUxMX0hEUl9QQVRIPSRCVUlMRC91c3IgXAogICAgICAgIEFSQ0g9YXJtNjQg LUMgLi4vLi4vLi4gaGVhZGVyc19pbnN0YWxsCiAgSU5TVEFMTCAvaG9tZS9jcmltYXIwMS9BUk0v ZGV2L3NyYy9wZHN3L291dF9saW51eC9rc2VsZnRlc3QvdXNyL2luY2x1ZGUKL29wdC90b29sY2hh aW5zL2djYy1hcm0tOC4zLTIwMTkuMDMteDg2XzY0LWFhcmNoNjQtbGludXgtZ251L2Jpbi9hYXJj aDY0LWxpbnV4LWdudS1nY2MgLVdhbGwgLU8yIC1nICAgIHRhZ3NfdGVzdC5jICAtbyAvaG9tZS9j cmltYXIwMS9BUk0vZGV2L3NyYy9wZHN3L291dF9saW51eC9rc2VsZnRlc3QvYXJtNjQvdGFncy90 YWdzX3Rlc3QKdGFnc190ZXN0LmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnRhZ3NfdGVzdC5j OjIwOjEyOiBlcnJvcjog4oCYUFJfU0VUX1RBR0dFRF9BRERSX0NUUkzigJkgdW5kZWNsYXJlZCAo Zmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYUFJfR0VUX1RJRF9B RERSRVNT4oCZPwogIGlmIChwcmN0bChQUl9TRVRfVEFHR0VEX0FERFJfQ1RSTCwgUFJfVEFHR0VE X0FERFJfRU5BQkxFLCAwLCAwLCAwKSA9PSAwKQogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgogICAgICAgICAgICBQUl9HRVRfVElEX0FERFJFU1MKdGFnc190ZXN0LmM6MjA6MTI6 IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBm b3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCnRhZ3NfdGVzdC5jOjIwOjM3OiBlcnJvcjog 4oCYUFJfVEFHR0VEX0FERFJfRU5BQkxF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKTsgZGlkIHlvdSBtZWFuIOKAmFBSX0dFVF9EVU1QQUJMReKAmT8KICBpZiAocHJj dGwoUFJfU0VUX1RBR0dFRF9BRERSX0NUUkwsIFBSX1RBR0dFRF9BRERSX0VOQUJMRSwgMCwgMCwg MCkgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJfR0VUX0RV TVBBQkxFCi4uLy4uL2xpYi5tazoxMzg6IHJlY2lwZSBmb3IgdGFyZ2V0ICcvaG9tZS9jcmltYXIw MS9BUk0vZGV2L3NyYy9wZHN3L291dF9saW51eC9rc2VsZnRlc3QvYXJtNjQvdGFncy90YWdzX3Rl c3QnIGZhaWxlZAptYWtlWzRdOiAqKiogWy9ob21lL2NyaW1hcjAxL0FSTS9kZXYvc3JjL3Bkc3cv b3V0X2xpbnV4L2tzZWxmdGVzdC9hcm02NC90YWdzL3RhZ3NfdGVzdF0gRXJyb3IgMQpNYWtlZmls ZToxOTogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCm1ha2VbM106ICoqKiBbYWxsXSBF cnJvciAyCk1ha2VmaWxlOjEzNzogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCm1ha2Vb Ml06ICoqKiBbYWxsXSBFcnJvciAyCi9ob21lL2NyaW1hcjAxL0FSTS9kZXYvc3JjL3Bkc3cvbGlu dXgvTWFrZWZpbGU6MTIzNjogcmVjaXBlIGZvciB0YXJnZXQgJ2tzZWxmdGVzdCcgZmFpbGVkCm1h a2VbMV06ICoqKiBba3NlbGZ0ZXN0XSBFcnJvciAyCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5 ICcvaG9tZS9jcmltYXIwMS9BUk0vZGV2L3NyYy9wZHN3L291dF9saW51eCcKTWFrZWZpbGU6MTc5 OiByZWNpcGUgZm9yIHRhcmdldCAnc3ViLW1ha2UnIGZhaWxlZAptYWtlOiAqKiogW3N1Yi1tYWtl XSBFcnJvciAyCgoKSW4gZmFjdCBtYW55IEtTRlQgdGVzdGNhc2VzIHNlZW1zIHRvIGJydXRhbGx5 IGFkZCBkZWZhdWx0IGhlYWRlcnMgcGF0aDoKCnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21lbWZk L01ha2VmaWxlOkNGTEFHUyArPSAtSS4uLy4uLy4uLy4uL2luY2x1ZGUvdWFwaS8KdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvbWVtZmQvTWFrZWZpbGU6Q0ZMQUdTICs9IC1JLi4vLi4vLi4vLi4vaW5j bHVkZS8KdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtZmQvTWFrZWZpbGU6Q0ZMQUdTICs9IC1J Li4vLi4vLi4vLi4vdXNyL2luY2x1ZGUvCnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9NYWtl ZmlsZTpDRkxBR1MgKz0gLUkuLi8uLi8uLi8uLi91c3IvaW5jbHVkZS8KdG9vbHMvdGVzdGluZy9z ZWxmdGVzdHMvbWVtYmFycmllci9NYWtlZmlsZTpDRkxBR1MgKz0gLWcgLUkuLi8uLi8uLi8uLi91 c3IvaW5jbHVkZS8gCi4uLgoKQ2hlZXJzCgpDcmlzdGlhbgo+IAo+IAo+IAo+Pgo+PiBUaGFua3MK Pj4KPj4gQ3Jpc3RpYW4KPj4KPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvYXJtNjQvLmdpdGlnbm9yZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2FybTY0Ly5n aXRpZ25vcmUKPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+PiBpbmRleCAwMDAwMDAwMDAwMDAu LmU4ZmFlOGQ2MWVkNgo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvdG9vbHMvdGVzdGluZy9z ZWxmdGVzdHMvYXJtNjQvLmdpdGlnbm9yZQo+Pj4gQEAgLTAsMCArMSBAQAo+Pj4gK3RhZ3NfdGVz dAo+Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2FybTY0L01ha2VmaWxl IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYXJtNjQvTWFrZWZpbGUKPj4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmE2MWIyZTc0M2U5OQo+Pj4gLS0tIC9k ZXYvbnVsbAo+Pj4gKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYXJtNjQvTWFrZWZpbGUK Pj4+IEBAIC0wLDAgKzEsMTEgQEAKPj4+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wCj4+PiArCj4+PiArIyBBUkNIIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSB1c2VyIGZvciBj cm9zcyBjb21waWxpbmcKPj4+ICtBUkNIID89ICQoc2hlbGwgdW5hbWUgLW0gMj4vZGV2L251bGwg fHwgZWNobyBub3QpCj4+PiArCj4+PiAraWZuZXEgKCwkKGZpbHRlciAkKEFSQ0gpLGFhcmNoNjQg YXJtNjQpKQo+Pj4gK1RFU1RfR0VOX1BST0dTIDo9IHRhZ3NfdGVzdAo+Pj4gK1RFU1RfUFJPR1Mg Oj0gcnVuX3RhZ3NfdGVzdC5zaAo+Pj4gK2VuZGlmCj4+PiArCj4+PiAraW5jbHVkZSAuLi9saWIu bWsKPj4+IGRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9hcm02NC9ydW5fdGFn c190ZXN0LnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYXJtNjQvcnVuX3RhZ3NfdGVzdC5z aAo+Pj4gbmV3IGZpbGUgbW9kZSAxMDA3NTUKPj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uNzQ1ZjEx Mzc5OTMwCj4+PiAtLS0gL2Rldi9udWxsCj4+PiArKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0 cy9hcm02NC9ydW5fdGFnc190ZXN0LnNoCj4+PiBAQCAtMCwwICsxLDEyIEBACj4+PiArIyEvYmlu L3NoCj4+PiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+Pj4gKwo+Pj4gK2Vj aG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tIgo+Pj4gK2VjaG8gInJ1bm5pbmcgdGFncyB0ZXN0Igo+ Pj4gK2VjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tIgo+Pj4gKy4vdGFnc190ZXN0Cj4+PiAraWYg WyAkPyAtbmUgMCBdOyB0aGVuCj4+PiArICAgICBlY2hvICJbRkFJTF0iCj4+PiArZWxzZQo+Pj4g KyAgICAgZWNobyAiW1BBU1NdIgo+Pj4gK2ZpCj4+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvYXJtNjQvdGFnc190ZXN0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9h cm02NC90YWdzX3Rlc3QuYwo+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4+IGluZGV4IDAwMDAw MDAwMDAwMC4uMjJhMWIyNjZlMzczCj4+PiAtLS0gL2Rldi9udWxsCj4+PiArKysgYi90b29scy90 ZXN0aW5nL3NlbGZ0ZXN0cy9hcm02NC90YWdzX3Rlc3QuYwo+Pj4gQEAgLTAsMCArMSwyOSBAQAo+ Pj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4+PiArCj4+PiArI2luY2x1 ZGUgPHN0ZGlvLmg+Cj4+PiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+Pj4gKyNpbmNsdWRlIDx1bmlz dGQuaD4KPj4+ICsjaW5jbHVkZSA8c3RkaW50Lmg+Cj4+PiArI2luY2x1ZGUgPHN5cy9wcmN0bC5o Pgo+Pj4gKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgo+Pj4gKwo+Pj4gKyNkZWZpbmUgU0hJRlRf VEFHKHRhZykgICAgICAgICAgICAgICAoKHVpbnQ2NF90KSh0YWcpIDw8IDU2KQo+Pj4gKyNkZWZp bmUgU0VUX1RBRyhwdHIsIHRhZykgICAgKCgodWludDY0X3QpKHB0cikgJiB+U0hJRlRfVEFHKDB4 ZmYpKSB8IFwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hJRlRf VEFHKHRhZykpCj4+PiArCj4+PiAraW50IG1haW4odm9pZCkKPj4+ICt7Cj4+PiArICAgICBzdGF0 aWMgaW50IHRiaV9lbmFibGVkID0gMDsKPj4+ICsgICAgIHN0cnVjdCB1dHNuYW1lICpwdHIsICp0 YWdnZWRfcHRyOwo+Pj4gKyAgICAgaW50IGVycjsKPj4+ICsKPj4+ICsgICAgIGlmIChwcmN0bChQ Ul9TRVRfVEFHR0VEX0FERFJfQ1RSTCwgUFJfVEFHR0VEX0FERFJfRU5BQkxFLCAwLCAwLCAwKSA9 PSAwKQo+Pj4gKyAgICAgICAgICAgICB0YmlfZW5hYmxlZCA9IDE7Cj4+PiArICAgICBwdHIgPSAo c3RydWN0IHV0c25hbWUgKiltYWxsb2Moc2l6ZW9mKCpwdHIpKTsKPj4+ICsgICAgIGlmICh0Ymlf ZW5hYmxlZCkKPj4+ICsgICAgICAgICAgICAgdGFnZ2VkX3B0ciA9IChzdHJ1Y3QgdXRzbmFtZSAq KVNFVF9UQUcocHRyLCAweDQyKTsKPj4+ICsgICAgIGVyciA9IHVuYW1lKHRhZ2dlZF9wdHIpOwo+ Pj4gKyAgICAgZnJlZShwdHIpOwo+Pj4gKwo+Pj4gKyAgICAgcmV0dXJuIGVycjsKPj4+ICt9Cj4+ Pgo+PgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK