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=-6.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no 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 CF30FC4727C for ; Thu, 1 Oct 2020 15:48:01 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 6EBED206A1 for ; Thu, 1 Oct 2020 15:48:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="rJ0KpyWb"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=google.com header.i=@google.com header.b="dT0cpPKG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6EBED206A1 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=LvH/6ZRzE3W+0PSmbE+Rs51018FruriWcurbhBR5pJU=; b=rJ0KpyWbFA7146uD9YP5DCUMv Q5Z6H8oRvcPPgnjSBUxC7Skb/osYRyLS2vZkhQ5M7dtdEBuusvTNTyWQgoeMq05JTXl6NBUIdN0+X NlhyIl3Bc0BEkU7F/PFxuBTqLNgyLnjB7w6gN3bI1wzvyNcuwzUZ67dXiPYqkbvreTP/dTB9K7coz 4djXW19ojcecr5tiZU5Ot411r4zH+LO/4m5XAwuQhq7cWc4OF5iaitYE8NgpuQDj+4KMvazqxKJ5/ QiJTeo7+7jRZLZs9ZeOUsgD3AE3WwJAwTted+UskjRqerC5ulD3ov17N0d9t72PGSfQrq02FjYgGc 0U8/TXZ2A==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kO0mn-00075x-KH; Thu, 01 Oct 2020 15:46:25 +0000 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kO0mj-000745-EY for linux-arm-kernel@lists.infradead.org; Thu, 01 Oct 2020 15:46:23 +0000 Received: by mail-pf1-x443.google.com with SMTP id l126so4889905pfd.5 for ; Thu, 01 Oct 2020 08:46:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=QW720dDg6w8WjYZQQLyUzFkTDggeR43z1zPv/IrMZ24=; b=dT0cpPKGpgzEScHP6GjGacfyG89UjBtM4nbWhLskXE8OBM+LpA3cfiIaQQzwNTfnh4 uWeC8lhol/0pNhI0i9kxVq5tjolCKWjKI2SwVKJZAA+dfYporGTzxFSp69fV3t89j4V8 LQN81t24F5+XcsoRXyJDNWQfPaCnlvqvP522Mu0dN951VwZuHg1PN6gtbt7rq1DKIo4T YskPmbBPJBLm/ql6UEeV9WaZF0qcH8F2y688w751qYuK9ARsSw579XDi0vFek3hG/91T m/4vD51knsCwY6pPeK/ury1qzq3med0bXP6YEo6+yzH4cHSI2kER7GqeEOlQYOw4Q+kY 9CBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=QW720dDg6w8WjYZQQLyUzFkTDggeR43z1zPv/IrMZ24=; b=CplxV48695Lh3PDWWagJyqDlqTHgNpzqg9K+3ZDkQZAoNk6RazKTu6oH6IDm8++AT2 3FORNoCxF4ax/pdqT5Brhhjbe6solykXBHubYL0gD5H3Sj1jLiLRKYcUyx0+Dnwz4vfi UcJGIYq8f5NpqRjytRXzIg4Ok8lNIB8MoB5Og699I/T2h5FwuoLJgoVuplgtOoW+Lu9V KEc8feR7hbgfmv9DVyOmyg4g/Z/viN8nUeu8ua+07Na4tcAJoFPYIup2UXeFBmqcZB0Y YW33mNmE7VWi2cXb9DM5Nssi4GRP17MgGfhGYAaF6VUDGa3zjCw/VFiuIZ+/aazTD+9X hrBw== X-Gm-Message-State: AOAM531RsbqOM4zNXWyEQ450wIeFxpiyjuzHElC1e+KQTHz9szJntS+9 zMLMWXF9juSS+lrKsFveHH/Uiq/xstkOzLCEvhvR4A== X-Google-Smtp-Source: ABdhPJwyo92ngttdaUJqIplWuz05ypEN5fgXAsM5QaNEs5Dyzgrhise69twwtOtjBiI/RFlHiC37e/EUKB9mlZBcVdM= X-Received: by 2002:a65:5cc2:: with SMTP id b2mr6663685pgt.124.1601567178571; Thu, 01 Oct 2020 08:46:18 -0700 (PDT) MIME-Version: 1.0 References: <20200930222130.4175584-1-kaleshsingh@google.com> <20200930222130.4175584-2-kaleshsingh@google.com> <0dc41856-e406-7f00-1eb9-5e97e476afa4@nvidia.com> In-Reply-To: <0dc41856-e406-7f00-1eb9-5e97e476afa4@nvidia.com> From: Kalesh Singh Date: Thu, 1 Oct 2020 11:46:07 -0400 Message-ID: Subject: Re: [PATCH 1/5] kselftests: vm: Add mremap tests To: John Hubbard X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201001_114621_598340_95CA9C9B X-CRM114-Status: GOOD ( 42.55 ) 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: Joel Fernandes , Mark Rutland , Gavin Shan , Brian Geffon , Peter Zijlstra , Catalin Marinas , Ram Pai , Dave Hansen , Will Deacon , Lokesh Gidra , "open list:KERNEL SELFTEST FRAMEWORK" , "H. Peter Anvin" , Christian Brauner , Shuah Khan , Mina Almasry , Jia He , Arnd Bergmann , "Aneesh Kumar K.V" , Masahiro Yamada , the arch/x86 maintainers , Krzysztof Kozlowski , Jason Gunthorpe , Ingo Molnar , Sami Tolvanen , Ira Weiny , "Cc: Android Kernel" , Dave Martin , Hassan Naveed , Masami Hiramatsu , Ralph Campbell , Kees Cook , Minchan Kim , Zhenyu Ye , SeongJae Park , Frederic Weisbecker , Borislav Petkov , Thomas Gleixner , Zi Yan , Suren Baghdasaryan , "moderated list:ARM64 PORT \(AARCH64 ARCHITECTURE\)" , "open list:MEMORY MANAGEMENT" , LKML , "Kirill A. Shutemov" , Andrew Morton , Mike Rapoport , Sandipan Das Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCBPY3QgMSwgMjAyMCBhdCAzOjI0IEFNIEpvaG4gSHViYmFyZCA8amh1YmJhcmRAbnZp ZGlhLmNvbT4gd3JvdGU6Cj4KPiBPbiA5LzMwLzIwIDM6MjEgUE0sIEthbGVzaCBTaW5naCB3cm90 ZToKPiA+IFRlc3QgbXJlbWFwIG9uIHJlZ2lvbnMgb2YgdmFyaW91cyBzaXplcyBhbmQgYWxpZ25t ZW50cyBhbmQgdmFsaWRhdGUKPiA+IGRhdGEgYWZ0ZXIgcmVtYXBwaW5nLiBBbHNvIHByb3ZpZGUg dG90YWwgdGltZSBmb3IgcmVtYXBwaW5nCj4gPiB0aGUgcmVnaW9uIHdoaWNoIGlzIHVzZWZ1bCBm b3IgcGVyZm9ybWFuY2UgY29tcGFyaXNvbiBvZiB0aGUgbXJlbWFwCj4gPiBvcHRpbWl6YXRpb25z IHRoYXQgbW92ZSBwYWdlcyBhdCB0aGUgUE1EL1BVRCBsZXZlbHMgaWYgSEFWRV9NT1ZFX1BNRAo+ ID4gYW5kL29yIEhBVkVfTU9WRV9QVUQgYXJlIGVuYWJsZWQuCj4gPgo+ID4gU2lnbmVkLW9mZi1i eTogS2FsZXNoIFNpbmdoIDxrYWxlc2hzaW5naEBnb29nbGUuY29tPgo+ID4gLS0tCj4gPiAgIHRv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3ZtLy5naXRpZ25vcmUgICAgfCAgIDEgKwo+ID4gICB0b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy92bS9NYWtlZmlsZSAgICAgIHwgICAxICsKPiA+ICAgdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvdm0vbXJlbWFwX3Rlc3QuYyB8IDI0MyArKysrKysrKysrKysrKysr KysrKysrKwo+ID4gICB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy92bS9ydW5fdm10ZXN0cyAgIHwg IDExICsKPiA+ICAgNCBmaWxlcyBjaGFuZ2VkLCAyNTYgaW5zZXJ0aW9ucygrKQo+ID4gICBjcmVh dGUgbW9kZSAxMDA2NDQgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdm0vbXJlbWFwX3Rlc3QuYwo+ ID4KPgo+IEhpLAo+Cj4gVGhpcyB0YWtlcyAxMDB4IGxvbmdlciB0byBydW4gdGhhbiBpdCBzaG91 bGQ6IDE6NDYgbWluIG9mIHJ1bm5pbmcgdGltZSBvbgo+IG15IHg4Nl82NCB0ZXN0IG1hY2hpbmUu IFRoZSBlbnRpcmUgc2VsZnRlc3RzL3ZtIHRlc3Qgc3VpdGUgdGFrZXMgNDUgc2VjIG9uIGEKPiBi YWQgZGF5LCB3aGVyZSBhIGJhZCBkYXkgaXMgZGVmaW5lZCBhcyB1cCB1bnRpbCBhYm91dCB0b21v cnJvdywgd2hlbiBJIHdpbGwKPiBwb3N0IGEgY29tcGFjdGlvbl90ZXN0LmMgcGF0Y2ggdGhhdCB3 aWxsIGN1dCB0aGF0IHRpbWUgZG93biB0byBhYm91dCBoYWxmLCBvcgo+IDI0IHNlYyB0b3RhbCBy dW4gdGltZS4uLmZvciAyMiB0ZXN0cyEKPgo+IEluIG90aGVyIHdvcmRzLCBtb3N0IHRlc3RzIGhl cmUgc2hvdWxkIHRha2UgYWJvdXQgMSBvciAyIHNlY29uZHMsIHVubGVzcyB0aGV5Cj4gYXJlIGV4 Y2VwdGlvbmFsbHkgc3BlY2lhbCBzbm93Zmxha2VzLgo+Cj4gQXQgdGhlIHZlcnkgbGVhc3QsIHRo ZSBpbnZvY2F0aW9uIHdpdGhpbiBydW5fdm10ZXN0cyBjb3VsZCBwYXNzIGluIGEgcGFyYW1ldGVy Cj4gdG8gdGVsbCBpdCB0byBydW4gYSBzaG9ydGVyIHRlc3QuIEJ1dCB0aGVyZSdzIGFsc28gb3Bw b3J0dW5pdGllcyB0byBzcGVlZCBpdAo+IHVwLCB0b28uCgoKSGkgSm9obi4gVGhhbmtzIGZvciB0 aGUgY29tbWVudHMuCgpUaGUgYnVsayBvZiB0aGUgdGVzdCB0aW1lIGNvbWVzIGZyb20gc2V0dGlu ZyBhbmQgdmVyaWZ5aW5nIHRoZSBieXRlCnBhdHRlcm4gaW4gMUdCCm9yIGxhcmdlciByZWdpb25z IGZvciB0ZXN0aW5nIHRoZSBIQVZFX01PVkVfUFVEIGZ1bmN0aW9uYWxpdHkuIFdpdGhvdXQgdGVz dGluZwoxR0Igb3IgbGFyZ2VyIHJlZ2lvbnMgdGhlIHRlc3QgdGFrZXMgMC4xOCBzZWNvbmRzIG9u IG15IHg4Nl82NCBzeXN0ZW0uCgpPbmUgb3B0aW9uIEkgdGhpbmsgd291bGQgYmUgdG8gb25seSB2 YWxpZGF0ZSB0byBhIGNlcnRhaW4gdGhyZXNob2xkIG9mIHRoZSByZW1hcApyZWdpb24uIFdlIGNh biBoYXZlIGEgZmxhZyB0byBzcGVjaWZ5IGEgdGhyZXNob2xkIG9yIHRvIHZhbGlkYXRlIHRoZQpm dWxsIHNpemUgb2YgdGhlCnJlbWFwcGVkIHJlZ2lvbi4gSSBkaWQgc29tZSBpbml0aWFsIHRlc3Rp bmcgd2l0aCBhIDRNQiB0aHJlc2hvbGQgYW5kCnRoZSB0b3RhbCB0aW1lCmRyb3BwZWQgdG8gMC4z OCBzZWNvbmRzIGZyb20gMToxMiBtaW51dGVzIChmb3IgdmVyaWZ5aW5nIHRoZSBlbnRpcmUKcmVt YXBwZWQgcmVnaW9uKS4KVGhlIDRNQiB0aHJlc2hvbGQgd291bGQgY292ZXIgdGhlIGZ1bGwgcmVn aW9uIG9mIGFsbCB0aGUgdGVzdHMKZXhjbHVkaW5nIHRob3NlIGZvciB0aGUKMUdCIGFuZCAyR0Ig c2l6ZWQgcmVnaW9ucy4gTGV0IG1lIGtub3cgd2hhdCB5b3UgdGhpbmsuCgpZb3VyIG90aGVyIGNv bW1lbnRzIGJlbG93IHNvdW5kIGdvb2QgdG8gbWUuIEnigJlsbCBtYWtlIHRob3NlIGNoYW5nZXMg aW4KdGhlIG5leHQgdmVyc2lvbi4KClRoYW5rcywKS2FsZXNoCgo+Cj4gLi4uCj4gPiArCj4gPiAr I2RlZmluZSBNQUtFX1RFU1Qoc291cmNlX2FsaWduLCBkZXN0aW5hdGlvbl9hbGlnbiwgc2l6ZSwg ICAgIFwKPiA+ICsgICAgICAgICAgICAgICBvdmVybGFwcywgc2hvdWxkX2ZhaWwsIHRlc3RfbmFt ZSkgICAgICAgICAgICAgXAo+ID4gK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAubmFtZSA9IHRlc3RfbmFtZSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICsgICAgIC5jb25maWcg PSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gKyAg ICAgICAgICAgICAuc3JjX2FsaWdubWVudCA9IHNvdXJjZV9hbGlnbiwgICAgICAgICAgICAgICAg ICBcCj4gPiArICAgICAgICAgICAgIC5kZXN0X2FsaWdubWVudCA9IGRlc3RpbmF0aW9uX2FsaWdu LCAgICAgICAgICAgIFwKPiA+ICsgICAgICAgICAgICAgLnJlZ2lvbl9zaXplID0gc2l6ZSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gKyAgICAgICAgICAgICAub3ZlcmxhcHBpbmcg PSBvdmVybGFwcywgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICB9LCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICsgICAg IC5leHBlY3RfZmFpbHVyZSA9IHNob3VsZF9mYWlsICAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+ID4gK30KPiA+ICsKPgo+IE9LLi4uCj4KPiA+ICsjZGVmaW5lIE1BS0VfU0lNUExFX1RFU1Qo c291cmNlX2FsaWduLCBkZXN0aW5hdGlvbl9hbGlnbiwgc2l6ZSkgICAgICBcCj4gPiArICAgICBN QUtFX1RFU1Qoc291cmNlX2FsaWduLCBkZXN0aW5hdGlvbl9hbGlnbiwgc2l6ZSwgMCwgMCwgIFwK PiA+ICsgICAgICAgICAgICAgICAjc2l6ZSAiIG1yZW1hcCAtIFNvdXJjZSAiICNzb3VyY2VfYWxp Z24gICAgICAgXAo+ID4gKyAgICAgICAgICAgICAgICIgYWxpZ25lZCwgRGVzdGluYXRpb24gIiAj ZGVzdGluYXRpb25fYWxpZ24gICBcCj4gPiArICAgICAgICAgICAgICAgIiBhbGlnbmVkIikKPiA+ ICsKPgo+IC4uLmFuZCBub3QgT0suIDopICBCZWNhdXNlIHRoaXMgaXMganVzdCBvYnNjdXJpbmcg dGhpbmdzLiBCb3RoIHRoZQo+IGNvZGUgYW5kIHRoZSBvdXRwdXQgYXJlIGhhcmRlciB0byByZWFk LiBGb3IgdGhlc2UgdGlueSB0ZXN0IHByb2dyYW1zLAo+IGNsYXJpdHkgaXMgd2hhdCB3ZSB3YW50 LCBub3QgbmVjZXNzYXJpbHkgY29tcGFjdG5lc3Mgb24gdGhlIHNjcmVlbi4KPiBCZWNhdXNlIHBl b3BsZSB3YW50IHRvIGdldCBpbiwgdW5kZXJzdGFuZCB3aGF0IHRoZXkgc2VlbiBpbiB0aGUgY29k ZQo+IGFuZCBtYXRjaCBpdCB1cCB3aXRoIHdoYXQgaXMgcHJpbnRlZCB0byBzdGRvdXQtLXdpdGhv dXQgc3BlbmRpbmcgbXVjaAo+IHRpbWUuIChBbmQgdGhhdCBpbmNsdWRlcyBydW4gdGltZSwgYXMg aGludGVkIGF0IGFib3ZlLikKPgo+IC4uLgo+ID4gKwo+ID4gKy8qIFJldHVybnMgdGhlIHRpbWUg dGFrZW4gZm9yIHRoZSByZW1hcCBvbiBzdWNjZXNzIGVsc2UgcmV0dXJucyAtMS4gKi8KPiA+ICtz dGF0aWMgbG9uZyBsb25nIHJlbWFwX3JlZ2lvbihzdHJ1Y3QgY29uZmlnIGMpCj4gPiArewo+ID4g KyAgICAgdm9pZCAqYWRkciwgKnNyY19hZGRyLCAqZGVzdF9hZGRyOwo+ID4gKyAgICAgaW50IGks IGo7Cj4gPiArICAgICBzdHJ1Y3QgdGltZXNwZWMgdF9zdGFydCA9IHswLCAwfSwgdF9lbmQgPSB7 MCwgMH07Cj4gPiArICAgICBsb25nIGxvbmcgIHN0YXJ0X25zLCBlbmRfbnMsIGFsaWduX21hc2ss IHJldCwgb2Zmc2V0Owo+ID4gKyAgICAgY2hhciBwYXR0ZXJuW10gPSB7MHhhOCwgMHhjZCwgMHhm ZX07Cj4KPiBJJ2QgcmVjb21tZW5kIHVzaW5nIHJhbmQoKSB0byBoZWxwIGNob29zZSB0aGUgcGF0 dGVybiwgYW5kIHVzaW5nIGRpZmZlcmVudAo+IHBhdHRlcm5zIGZvciBkaWZmZXJlbnQgcnVucy4g V2hlbiB0ZXN0aW5nIG1lbW9yeSwgaXQncyBhIHBpdGZhbGwgdG8gaGF2ZQo+IHRoZSBzYW1lIHRl c3QgcGF0dGVybi4KPgo+IE5vcm1hbGx5LCB5b3UnZCBhbHNvIHdhbnQgdG8gcmVwb3J0IHRoZSBy YW5kb20gc2VlZCBvciB0aGUgdGVzdCBwYXR0ZXJuKHMpCj4gb3IgYm90aCB0byBzdGRvdXQsIGFu ZCBwcm92aWRlIGEgd2F5IHRvIHJ1biB3aXRoIHRoZSBzYW1lIHBhdHRlcm4sIGJ1dAo+IGhlcmUg SSBkb24ndCAqdGhpbmsqIHlvdSBjYXJlOiBhbGwgcGF0dGVybnMgc2hvdWxkIGhhdmUgdGhlIHNh bWUgcGVyZm9ybWFuY2UuCj4KPiA+ICsgICAgIGludCBwYXR0ZXJuX3NpemUgPSBBUlJBWV9TSVpF KHBhdHRlcm4pOwo+ID4gKwo+ID4gKyAgICAgc3JjX2FkZHIgPSBnZXRfc291cmNlX21hcHBpbmco Yyk7Cj4gPiArICAgICBpZiAoIXNyY19hZGRyKSB7Cj4gPiArICAgICAgICAgICAgIHJldCA9IC0x Owo+ID4gKyAgICAgICAgICAgICBnb3RvIG91dDsKPiA+ICsgICAgIH0KPiA+ICsKPiA+ICsgICAg IC8qIFNldCBieXRlIHBhdHRlcm4gKi8KPiA+ICsgICAgIGZvciAoaSA9IDA7IGkgPCBjLnJlZ2lv bl9zaXplOyBpKyspIHsKPiA+ICsgICAgICAgICAgICAgZm9yIChqID0gMDsgaStqIDwgYy5yZWdp b25fc2l6ZSAmJiBqIDwgcGF0dGVybl9zaXplOyBqKyspCj4gPiArICAgICAgICAgICAgICAgICAg ICAgbWVtc2V0KChjaGFyICopIHNyY19hZGRyICsgaStqLCBwYXR0ZXJuW2pdLCAxKTsKPiA+ICsg ICAgICAgICAgICAgaSArPSBwYXR0ZXJuX3NpemUtMTsKPiA+ICsgICAgIH0KPiA+ICsKPiA+ICsg ICAgIGFsaWduX21hc2sgPSB+KGMuZGVzdF9hbGlnbm1lbnQgLSAxKTsKPiA+ICsgICAgIG9mZnNl dCA9IChjLm92ZXJsYXBwaW5nKSA/IC1jLmRlc3RfYWxpZ25tZW50IDogYy5kZXN0X2FsaWdubWVu dDsKPgo+IEEgY29tbWVudCBmb3Igd2hhdCB0aGUgYWJvdmUgdHdvIGxpbmVzIGFyZSBkb2luZyB3 b3VsZCBiZSBhIG5pY2UgdG91Y2guCj4KPiAuLi4KPiA+ICsgICAgIHN0YXJ0X25zID0gdF9zdGFy dC50dl9zZWMgKiAxMDAwMDAwMDAwVUxMICsgdF9zdGFydC50dl9uc2VjOwo+ID4gKyAgICAgZW5k X25zID0gdF9lbmQudHZfc2VjICogMTAwMDAwMDAwMFVMTCArIHRfZW5kLnR2X25zZWM7Cj4KPiBB IGNvbnN0IG9yICNkZWZpbmVkIGZvciBhbGwgdGhvc2UgMDAwMCdzIHdvdWxkIGhlbHAuCj4KPiAu Li4KPiA+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ID4gK3sKPiA+ICsgICAg IGludCBmYWlsdXJlcyA9IDA7Cj4gPiArICAgICBpbnQgaTsKPiA+ICsKPiA+ICsgICAgIHN0cnVj dCB0ZXN0IHRlc3RfY2FzZXNbXSA9IHsKPiA+ICsgICAgICAgICAgICAgLyogRXhwZWN0ZWQgbXJl bWFwIGZhaWx1cmVzICovCj4gPiArICAgICAgICAgICAgIE1BS0VfVEVTVChfNEtCLCBfNEtCLCBf NEtCLCAxIC8qIG92ZXJsYXBzICovLCAxIC8qIGZhaWxzICovLAo+Cj4gTmFtZWQgZmxhZ3MgaW5z dGVhZCBvZiAxJ3MgYW5kIDAncyB3b3VsZCBhdm9pZCB0aGUgbmVlZCBmb3IgbWVzc3kgY29tbWVu dHMuCj4KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICJtcmVtYXAgLSBTb3VyY2UgYW5kIERl c3RpbmF0aW9uIFJlZ2lvbnMgT3ZlcmxhcHBpbmciKSwKPiA+ICsgICAgICAgICAgICAgTUFLRV9U RVNUKF80S0IsIF8xS0IsIF80S0IsIDAgLyogb3ZlcmxhcHMgKi8sIDEgLyogZmFpbHMgKi8sCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAibXJlbWFwIC0gRGVzdGluYXRpb24gQWRkcmVzcyBN aXNhbGlnbmVkICgxS0ItYWxpZ25lZCkiKSwKPiA+ICsgICAgICAgICAgICAgTUFLRV9URVNUKF8x S0IsIF80S0IsIF80S0IsIDAgLyogb3ZlcmxhcHMgKi8sIDEgLyogZmFpbHMgKi8sCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAibXJlbWFwIC0gU291cmNlIEFkZHJlc3MgTWlzYWxpZ25lZCAo MUtCLWFsaWduZWQpIiksCj4gPiArCj4gPiArICAgICAgICAgICAgIC8qIFNyYyBhZGRyIFBURSBh bGlnbmVkICovCj4gPiArICAgICAgICAgICAgIE1BS0VfU0lNUExFX1RFU1QoUFRFLCBQVEUsIF84 S0IpLAo+ID4gKwo+ID4gKyAgICAgICAgICAgICAvKiBTcmMgYWRkciAxTUIgYWxpZ25lZCAqLwo+ ID4gKyAgICAgICAgICAgICBNQUtFX1NJTVBMRV9URVNUKF8xTUIsIFBURSwgXzJNQiksCj4gPiAr ICAgICAgICAgICAgIE1BS0VfU0lNUExFX1RFU1QoXzFNQiwgXzFNQiwgXzJNQiksCj4gPiArCj4g PiArICAgICAgICAgICAgIC8qIFNyYyBhZGRyIFBNRCBhbGlnbmVkICovCj4gPiArICAgICAgICAg ICAgIE1BS0VfU0lNUExFX1RFU1QoUE1ELCBQVEUsIF80TUIpLAo+ID4gKyAgICAgICAgICAgICBN QUtFX1NJTVBMRV9URVNUKFBNRCwgXzFNQiwgXzRNQiksCj4gPiArICAgICAgICAgICAgIE1BS0Vf U0lNUExFX1RFU1QoUE1ELCBQTUQsIF80TUIpLAo+ID4gKwo+ID4gKyAgICAgICAgICAgICAvKiBT cmMgYWRkciBQVUQgYWxpZ25lZCAqLwo+ID4gKyAgICAgICAgICAgICBNQUtFX1NJTVBMRV9URVNU KFBVRCwgUFRFLCBfMkdCKSwKPiA+ICsgICAgICAgICAgICAgTUFLRV9TSU1QTEVfVEVTVChQVUQs IF8xTUIsIF8yR0IpLAo+ID4gKyAgICAgICAgICAgICBNQUtFX1NJTVBMRV9URVNUKFBVRCwgUE1E LCBfMkdCKSwKPiA+ICsgICAgICAgICAgICAgTUFLRV9TSU1QTEVfVEVTVChQVUQsIFBVRCwgXzJH QiksCj4KPgo+IFRvbyBjb25jaXNlLiBOb3QgZnVuIGxpbmluZyB0aGVzZSB1cCB3aXRoIHRoZSBz dGRvdXQgcmVwb3J0Lgo+Cj4KPiB0aGFua3MsCj4gLS0KPiBKb2huIEh1YmJhcmQKPiBOVklESUEK Pgo+IC0tCj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGdyb3VwIGFuZCBzdG9wIHJlY2Vpdmlu ZyBlbWFpbHMgZnJvbSBpdCwgc2VuZCBhbiBlbWFpbCB0byBrZXJuZWwtdGVhbSt1bnN1YnNjcmli ZUBhbmRyb2lkLmNvbS4KPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=