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=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, 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 9FBF3C433FF for ; Mon, 5 Aug 2019 11:40:54 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 69D1E2086D for ; Mon, 5 Aug 2019 11:40:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 69D1E2086D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hubLa-0003iO-Dm; Mon, 05 Aug 2019 11:40:14 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hubLY-0003iJ-7s for xen-devel@lists.xenproject.org; Mon, 05 Aug 2019 11:40:12 +0000 X-Inumbo-ID: c654d290-b775-11e9-82cb-07453c3dff0f Received: from foss.arm.com (unknown [217.140.110.172]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTP id c654d290-b775-11e9-82cb-07453c3dff0f; Mon, 05 Aug 2019 11:40:07 +0000 (UTC) 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 89AA9337; Mon, 5 Aug 2019 04:40:07 -0700 (PDT) Received: from [10.1.196.50] (e108454-lin.cambridge.arm.com [10.1.196.50]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4ED473F694; Mon, 5 Aug 2019 04:40:06 -0700 (PDT) To: Stefano Stabellini References: <20190402164238.1815-1-julien.grall@arm.com> <20190402164238.1815-3-julien.grall@arm.com> From: Julien Grall Message-ID: <6b9f3353-61a0-cfa0-657b-400451966ed5@arm.com> Date: Mon, 5 Aug 2019 12:40:04 +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 Subject: Re: [Xen-devel] [PATCH 2/4] xen/console: Don't treat NUL character as the end of the buffer X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Jan Beulich , xen-devel@lists.xenproject.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SGkgU3RlZmFubywKCk9uIDE2LzA0LzIwMTkgMjE6MzMsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90 ZToKPiBPbiBUdWUsIDIgQXByIDIwMTksIEp1bGllbiBHcmFsbCB3cm90ZToKPj4gQWZ0ZXIgdXBn cmFkaW5nIERlYmlhbiB0byBCdXN0ZXIsIEkgaGF2ZSBiZWdhbiB0byBub3RpY2UgY29uc29sZQo+ PiBtYW5nbGluZyB3aGVuIHVzaW5nIHpzaCBpbiBEb20wLiBUaGlzIGlzIGhhcHBlbm5pbmcgYmVj YXVzZSBvdXRwdXQgc2VudCBieQo+PiB6c2ggdG8gdGhlIGNvbnNvbGUgbWF5IGNvbnRhaW4gTlVM cyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBidWZmZXIuCj4+Cj4+IFRoZSBhY3R1YWwgaW1wbGVtZW50 YXRpb24gb2YgQ09OU09MRUlPX3dyaXRlIGNvbnNpZGVycyB0aGF0IGEgYnVmZmVyCj4+IGFsd2F5 cyB0ZXJtaW5hdGUgd2l0aCBhIE5VTCBhbmQgdGhlcmVmb3JlIHdpbGwgaWdub3JlIGFueXRoaW5n IGFmdGVyIGl0Lgo+Pgo+PiBJbiBnZW5lcmFsLCBOVUxzIGFyZSBwZXJmZWN0bHkgbGVnaXRpbWF0 ZSBpbiB0ZXJtaW5hbCBzdHJlYW1zLiBGb3IKPj4gaW5zdGFuY2UsIHRoaXMgY291bGQgYmUgdXNl ZCBmb3IgcGFkZGluZyBzbG93IHRlcm1pbmFscy4gU2VlIHRlcm1pbmZvKDUpCj4+IHNlY3Rpb24g YERlbGF5cyBhbmQgUGFkZGluZ2AsIG9yIHNlYXJjaCBmb3IgdGhlIHBjcmUgJ1xicGFkJy4KPj4K Pj4gT3RoZXIgdXNlIGNhc2VzIGluY2x1ZGVzIHVzaW5nIHRoZSBjb25zb2xlIGZvciBkdW1waW5n IG5vbi1odW1hbgo+PiByZWFkYWJsZSBpbmZvcm1hdGlvbiAoZS5nIGRlYnVnZ2VyLCBmaWxlIGlm IG5vIG5ldHdvcmsuLi4pLiBXaXRoIHRoZQo+PiBjdXJyZW50IGJlaGF2aW9yLCB0aGUgcmVzdWx0 aW5nIHN0cmVhbSB3aWxsIGVuZCB1cCB0byBiZSBjb3JydXB0ZWQuCj4+Cj4+IFRoZSBkb2N1bWVu dGF0aW9uIGZvciBDT05TT0xFSU9fd3JpdGUgaXMgcHJldHR5IGxpbWl0ZWQgKHRvIG5vdCBzYXkK Pj4gaW5leGlzdGVudCkuIEZyb20gdGhlIGRlY2xhcmF0aW9uLCB0aGUgaHlwZXJjYWxsIHRha2Vz IGEgYnVmZmVyIGFuZCBzaXplLgo+PiBTbyB0aGlzIGNvdWxkIGxlYWQgdG8gdGhpbmsgdGhlIE5V TCBjaGFyYWN0ZXIgaXMgYWxsb3dlZCBpbiB0aGUgbWlkZGxlIG9mCj4+IHRoZSBidWZmZXIuCj4+ Cj4+IFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgY29uc29sZSBBUEkgdG8gcGFzcyB0aGUgc2l6ZSBh bG9uZyB0aGUgYnVmZmVyCj4+IGRvd24gc28gd2UgY2FuIHJlbW92ZSB0aGUgcmVsaWFuY2Ugb24g YnVmZmVyIHRlcm1pbmF0aW5nIGJ5IGEgTlVMCj4+IGNoYXJhY3Rlci4KPj4KPj4gU2lnbmVkLW9m Zi1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KPj4KPj4gLS0tCj4+Cj4+ IFRoaXMgcGF0Y2ggd2FzIG9yaWdpbmFsbHkgc2VudCBzdGFuZGFsb25lIFsxXS4gQnV0IHRoZSBz ZXJpZXMgZ3Jvd3MgdG8KPj4gaW5jbHVkZSBhbm90aGVyIGJ1ZyBmb3VuZCBpbiB0aGUgY29uc29s ZSBjb2RlIGFuZCBkb2N1bWVudGF0aW9uLgo+Pgo+PiBDaGFuZ2Ugc2luY2UgdGhlIHN0YW5kYWxv bmUgdmVyc2lvbjoKPj4gICAgICAtIEZpeCBlYXJseSBwcmludGsgb24gQXJtCj4+ICAgICAgLSBG aXggZ2Ric3R1Ygo+PiAgICAgIC0gUmVtb3ZlIHVuZWNlc3NhcnkgbGVhZGluZyBOVUwgY2hhcmFj dGVyIGFkZGVkIGJ5IFhlbgo+PiAgICAgIC0gSGFuZGxlIERvbVUgY29uc29sZQo+PiAgICAgIC0g UmV3b3JrIHRoZSBjb21taXQgbWVzc2FnZQo+Pgo+PiBCZWxvdyBhIHNtYWxsIEMgcHJvZ3JhbSB0 byByZXBybyB0aGUgYnVnIG9uIFhlbjoKPj4KPj4gaW50IG1haW4odm9pZCkKPj4gewo+PiAgICAg IHdyaXRlKDEsCj4+ICAgICAgICAgICAgIlxyXDMzWzBtXDBcMFwwXDBcMFwwXDBcMFwzM1syN21c MzNbMjRtXDMzW2pcMzNbMzJtanVsaWVuXDMzWzMxbUBcMzNbMDBtXDMzWzM2bWp1bm8yLWp1bGll bmc6flwzM1szN20+IiwKPj4gICAgICAgICAgICA3NSk7Cj4+ICAgICAgd3JpdGUoMSwKPj4gICAg ICAgICAgICAiXDMzW0tcMzNbMzJDXDMzWzAxOzMzbS0tanVubzItanVsaWVuZy0xMzo0NC0tXDMz WzAwbVwzM1szN21cMzNbNTVEIiwKPj4gICAgICAgICAgICA1NCk7Cj4+ICAgICAgd3JpdGUoMSwg IlwzM1s/MjAwNGgiLCA4KTsKPj4KPj4gICAgICByZXR1cm4gMDsKPj4gfQo+Pgo+PiBXaXRob3V0 IHRoaXMgcGF0Y2gsIHRoZSBvbmx5IC0tanVubzItanVsaWVuZy0xMzo0NC0tIHdpbGwgYmUgcHJp bnRlZCBpbgo+PiB5ZWxsb3cuCj4+Cj4+IFRoaXMgcGF0Y2ggd2FzIHRlc3RlZCBvbiBBcm0gdXNp bmcgc2VyaWFsIGNvbnNvbGUuIEkgYW0gbm90IGVudGlyZWx5Cj4+IHN1cmUgd2hldGhlciB0aGUg dmlkZW8gYW5kIFBWIGNvbnNvbGUgaXMgY29ycmVjdC4gSSB3b3VsZCBhcHByZWNpYXRlIGhlbHAK Pj4gZm9yIHRlc3RpbmcgaGVyZS4KPj4KPj4gWzFdIGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxOS0wMi9tc2cwMTkzMi5odG1sCj4+IC0tLQo+ PiAgIHhlbi9hcmNoL2FybS9lYXJseV9wcmludGsuYyAgICAgICB8ICA1ICsrLS0KPj4gICB4ZW4v Y29tbW9uL2dkYnN0dWIuYyAgICAgICAgICAgICAgfCAgNiArKy0tCj4+ICAgeGVuL2RyaXZlcnMv Y2hhci9jb25zb2xlLmMgICAgICAgIHwgNTggKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tCj4+ICAgeGVuL2RyaXZlcnMvY2hhci9jb25zb2xlZC5jICAgICAgIHwgIDcgKyst LS0KPj4gICB4ZW4vZHJpdmVycy9jaGFyL3NlcmlhbC5jICAgICAgICAgfCAgOCArKysrLS0KPj4g ICB4ZW4vZHJpdmVycy9jaGFyL3hlbl9wdl9jb25zb2xlLmMgfCAxMCArKystLS0tCj4+ICAgeGVu L2RyaXZlcnMvdmlkZW8vbGZiLmMgICAgICAgICAgIHwgMTQgKysrKysrLS0tLQo+PiAgIHhlbi9k cml2ZXJzL3ZpZGVvL2xmYi5oICAgICAgICAgICB8ICA0ICstLQo+PiAgIHhlbi9kcml2ZXJzL3Zp ZGVvL3ZnYS5jICAgICAgICAgICB8IDE0ICsrKysrKy0tLS0KPj4gICB4ZW4vaW5jbHVkZS94ZW4v Y29uc29sZS5oICAgICAgICAgfCAgMiArLQo+PiAgIHhlbi9pbmNsdWRlL3hlbi9lYXJseV9wcmlu dGsuaCAgICB8ICAyICstCj4+ICAgeGVuL2luY2x1ZGUveGVuL3B2X2NvbnNvbGUuaCAgICAgIHwg IDQgKy0tCj4+ICAgeGVuL2luY2x1ZGUveGVuL3NlcmlhbC5oICAgICAgICAgIHwgIDQgKy0tCj4+ ICAgeGVuL2luY2x1ZGUveGVuL3ZpZGVvLmggICAgICAgICAgIHwgIDQgKy0tCj4+ICAgMTQgZmls ZXMgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgNjkgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vZWFybHlfcHJpbnRrLmMgYi94ZW4vYXJjaC9hcm0vZWFybHlf cHJpbnRrLmMKPj4gaW5kZXggOTc0NjZhMTJiMS4uMzVhNDdjNzIyOSAxMDA2NDQKPj4gLS0tIGEv eGVuL2FyY2gvYXJtL2Vhcmx5X3ByaW50ay5jCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9lYXJseV9w cmludGsuYwo+PiBAQCAtMTcsOSArMTcsMTAgQEAKPj4gICB2b2lkIGVhcmx5X3B1dGNoKGNoYXIg Yyk7Cj4+ICAgdm9pZCBlYXJseV9mbHVzaCh2b2lkKTsKPj4gICAKPj4gLXZvaWQgZWFybHlfcHV0 cyhjb25zdCBjaGFyICpzKQo+PiArdm9pZCBlYXJseV9wdXRzKGNvbnN0IGNoYXIgKnMsIHVuc2ln bmVkIGludCBucikKPj4gICB7Cj4+IC0gICAgd2hpbGUgKCpzICE9ICdcMCcpIHsKPj4gKyAgICB3 aGlsZSAoIG5yLS0gPiAwICkKPj4gKyAgICB7Cj4+ICAgICAgICAgICBpZiAoKnMgPT0gJ1xuJykK Pj4gICAgICAgICAgICAgICBlYXJseV9wdXRjaCgnXHInKTsKPj4gICAgICAgICAgIGVhcmx5X3B1 dGNoKCpzKTsKPj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ2Ric3R1Yi5jIGIveGVuL2NvbW1v bi9nZGJzdHViLmMKPj4gaW5kZXggMDcwOTVlMWVjNy4uMDhhNGRkYTlmMyAxMDA2NDQKPj4gLS0t IGEveGVuL2NvbW1vbi9nZGJzdHViLmMKPj4gKysrIGIveGVuL2NvbW1vbi9nZGJzdHViLmMKPj4g QEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIHZvaWQgZ2RiX3NtcF9yZXN1bWUodm9pZCk7Cj4+ICAg c3RhdGljIGNoYXIgX19pbml0ZGF0YSBvcHRfZ2RiWzMwXTsKPj4gICBzdHJpbmdfcGFyYW0oImdk YiIsIG9wdF9nZGIpOwo+PiAgIAo+PiAtc3RhdGljIHZvaWQgZ2Ric3R1Yl9jb25zb2xlX3B1dHMo Y29uc3QgY2hhciAqc3RyKTsKPj4gK3N0YXRpYyB2b2lkIGdkYnN0dWJfY29uc29sZV9wdXRzKGNv bnN0IGNoYXIgKnN0ciwgdW5zaWduZWQgaW50IG5yKTsKPj4gICAKPj4gICAvKiB2YWx1ZSA8LT4g Y2hhciAoZGUpc2VyaWFsemVycyAqLwo+PiAgIHN0YXRpYyBjaGFyCj4+IEBAIC01NDYsMTQgKzU0 NiwxNCBAQCBfX2dkYl9jdHggPSB7Cj4+ICAgc3RhdGljIHN0cnVjdCBnZGJfY29udGV4dCAqZ2Ri X2N0eCA9ICZfX2dkYl9jdHg7Cj4+ICAgCj4+ICAgc3RhdGljIHZvaWQKPj4gLWdkYnN0dWJfY29u c29sZV9wdXRzKGNvbnN0IGNoYXIgKnN0cikKPj4gK2dkYnN0dWJfY29uc29sZV9wdXRzKGNvbnN0 IGNoYXIgKnN0ciwgdW5zaWduZWQgaW50IG5yKQo+PiAgIHsKPj4gICAgICAgY29uc3QgY2hhciAq cDsKPj4gICAKPj4gICAgICAgZ2RiX3N0YXJ0X3BhY2tldChnZGJfY3R4KTsKPj4gICAgICAgZ2Ri X3dyaXRlX3RvX3BhY2tldF9jaGFyKCdPJywgZ2RiX2N0eCk7Cj4+ICAgCj4+IC0gICAgZm9yICgg cCA9IHN0cjsgKnAgIT0gJ1wwJzsgcCsrICkKPj4gKyAgICBmb3IgKCBwID0gc3RyOyBuciA+IDA7 IHArKywgbnItLSApCj4+ICAgICAgIHsKPj4gICAgICAgICAgIGdkYl93cml0ZV90b19wYWNrZXRf Y2hhcihoZXgyY2hhcigoKnA+PjQpICYgMHgwZiksIGdkYl9jdHggKTsKPj4gICAgICAgICAgIGdk Yl93cml0ZV90b19wYWNrZXRfY2hhcihoZXgyY2hhcigoKnApICYgMHgwZiksIGdkYl9jdHggKTsK Pj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL2NoYXIvY29uc29sZS5jIGIveGVuL2RyaXZlcnMv Y2hhci9jb25zb2xlLmMKPj4gaW5kZXggOWJiY2IwZjU3YS4uYjExOWJmOTgwYiAxMDA2NDQKPj4g LS0tIGEveGVuL2RyaXZlcnMvY2hhci9jb25zb2xlLmMKPj4gKysrIGIveGVuL2RyaXZlcnMvY2hh ci9jb25zb2xlLmMKPj4gQEAgLTMyNSw5ICszMjUsOSBAQCBsb25nIHJlYWRfY29uc29sZV9yaW5n KHN0cnVjdCB4ZW5fc3lzY3RsX3JlYWRjb25zb2xlICpvcCkKPj4gICBzdGF0aWMgY2hhciBzZXJp YWxfcnhfcmluZ1tTRVJJQUxfUlhfU0laRV07Cj4+ICAgc3RhdGljIHVuc2lnbmVkIGludCBzZXJp YWxfcnhfY29ucywgc2VyaWFsX3J4X3Byb2Q7Cj4+ICAgCj4+IC1zdGF0aWMgdm9pZCAoKnNlcmlh bF9zdGVhbF9mbikoY29uc3QgY2hhciAqKSA9IGVhcmx5X3B1dHM7Cj4+ICtzdGF0aWMgdm9pZCAo KnNlcmlhbF9zdGVhbF9mbikoY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQgbnIpID0gZWFybHlf cHV0czsKPj4gICAKPj4gLWludCBjb25zb2xlX3N0ZWFsKGludCBoYW5kbGUsIHZvaWQgKCpmbiko Y29uc3QgY2hhciAqKSkKPj4gK2ludCBjb25zb2xlX3N0ZWFsKGludCBoYW5kbGUsIHZvaWQgKCpm bikoY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQgbnIpKQo+PiAgIHsKPj4gICAgICAgaWYgKCAo aGFuZGxlID09IC0xKSB8fCAoaGFuZGxlICE9IHNlcmNvbl9oYW5kbGUpICkKPj4gICAgICAgICAg IHJldHVybiAwOwo+PiBAQCAtMzQ1LDE1ICszNDUsMTUgQEAgdm9pZCBjb25zb2xlX2dpdmViYWNr KGludCBpZCkKPj4gICAgICAgICAgIHNlcmlhbF9zdGVhbF9mbiA9IE5VTEw7Cj4+ICAgfQo+PiAg IAo+PiAtc3RhdGljIHZvaWQgc2VyY29uX3B1dHMoY29uc3QgY2hhciAqcykKPj4gK3N0YXRpYyB2 b2lkIHNlcmNvbl9wdXRzKGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBucikKPj4gICB7Cj4+ ICAgICAgIGlmICggc2VyaWFsX3N0ZWFsX2ZuICE9IE5VTEwgKQo+PiAtICAgICAgICAoKnNlcmlh bF9zdGVhbF9mbikocyk7Cj4+ICsgICAgICAgICgqc2VyaWFsX3N0ZWFsX2ZuKShzLCBucik7Cj4+ ICAgICAgIGVsc2UKPj4gLSAgICAgICAgc2VyaWFsX3B1dHMoc2VyY29uX2hhbmRsZSwgcyk7Cj4+ ICsgICAgICAgIHNlcmlhbF9wdXRzKHNlcmNvbl9oYW5kbGUsIHMsIG5yKTsKPj4gICAKPj4gICAg ICAgLyogQ29weSBhbGwgc2VyaWFsIG91dHB1dCBpbnRvIFBWIGNvbnNvbGUgKi8KPj4gLSAgICBw dl9jb25zb2xlX3B1dHMocyk7Cj4+ICsgICAgcHZfY29uc29sZV9wdXRzKHMsIG5yKTsKPj4gICB9 Cj4+ICAgCj4+ICAgc3RhdGljIHZvaWQgZHVtcF9jb25zb2xlX3Jpbmdfa2V5KHVuc2lnbmVkIGNo YXIga2V5KQo+PiBAQCAtMzg4LDggKzM4OCw4IEBAIHN0YXRpYyB2b2lkIGR1bXBfY29uc29sZV9y aW5nX2tleSh1bnNpZ25lZCBjaGFyIGtleSkKPj4gICAgICAgfQo+PiAgICAgICBidWZbc29mYXJd ID0gJ1wwJzsKPj4gICAKPj4gLSAgICBzZXJjb25fcHV0cyhidWYpOwo+PiAtICAgIHZpZGVvX3B1 dHMoYnVmKTsKPj4gKyAgICBzZXJjb25fcHV0cyhidWYsIHNvZmFyKTsKPj4gKyAgICB2aWRlb19w dXRzKGJ1Ziwgc29mYXIpOwo+PiAgIAo+PiAgICAgICBmcmVlX3hlbmhlYXBfcGFnZXMoYnVmLCBv cmRlcik7Cj4+ICAgfQo+PiBAQCAtNTI3LDcgKzUyNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4 ZW5fY29uc29sZV93cml0ZV9kZWJ1Z19wb3J0KGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikK Pj4gICBzdGF0aWMgbG9uZyBndWVzdF9jb25zb2xlX3dyaXRlKFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oY2hhcikgYnVmZmVyLCBpbnQgY291bnQpCj4+ICAgewo+PiAgICAgICBjaGFyIGtidWZbMTI4 XTsKPj4gLSAgICBpbnQga2NvdW50ID0gMDsKPj4gKyAgICB1bnNpZ25lZCBpbnQga2NvdW50ID0g MDsKPj4gICAgICAgc3RydWN0IGRvbWFpbiAqY2QgPSBjdXJyZW50LT5kb21haW47Cj4+ICAgCj4+ ICAgICAgIHdoaWxlICggY291bnQgPiAwICkKPj4gQEAgLTU0MCwyNSArNTQwLDIyIEBAIHN0YXRp YyBsb25nIGd1ZXN0X2NvbnNvbGVfd3JpdGUoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTShjaGFyKSBi dWZmZXIsIGludCBjb3VudCkKPj4gICAgICAgICAgIGtjb3VudCA9IG1pbl90KGludCwgY291bnQs IHNpemVvZihrYnVmKS0xKTsKPj4gICAgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KGtidWYs IGJ1ZmZlciwga2NvdW50KSApCj4+ICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Cj4+IC0g ICAgICAgIGtidWZba2NvdW50XSA9ICdcMCc7Cj4+ICAgCj4+ICAgICAgICAgICBpZiAoIGlzX2hh cmR3YXJlX2RvbWFpbihjZCkgKQo+PiAgICAgICAgICAgewo+PiAgICAgICAgICAgICAgIC8qIFVz ZSBkaXJlY3QgY29uc29sZSBvdXRwdXQgYXMgaXQgY291bGQgYmUgaW50ZXJhY3RpdmUgKi8KPj4g ICAgICAgICAgICAgICBzcGluX2xvY2tfaXJxKCZjb25zb2xlX2xvY2spOwo+PiAgIAo+PiAtICAg ICAgICAgICAgc2VyY29uX3B1dHMoa2J1Zik7Cj4+IC0gICAgICAgICAgICB2aWRlb19wdXRzKGti dWYpOwo+PiArICAgICAgICAgICAgc2VyY29uX3B1dHMoa2J1Ziwga2NvdW50KTsKPj4gKyAgICAg ICAgICAgIHZpZGVvX3B1dHMoa2J1Ziwga2NvdW50KTsKPj4gICAKPj4gICAjaWZkZWYgQ09ORklH X1g4Ngo+PiAgICAgICAgICAgICAgIGlmICggb3B0X2NvbnNvbGVfeGVuICkKPj4gICAgICAgICAg ICAgICB7Cj4+IC0gICAgICAgICAgICAgICAgc2l6ZV90IGxlbiA9IHN0cmxlbihrYnVmKTsKPj4g LQo+PiAgICAgICAgICAgICAgICAgICBpZiAoIHhlbl9ndWVzdCApCj4+IC0gICAgICAgICAgICAg ICAgICAgIHhlbl9oeXBlcmNhbGxfY29uc29sZV93cml0ZShrYnVmLCBsZW4pOwo+PiArICAgICAg ICAgICAgICAgICAgICB4ZW5faHlwZXJjYWxsX2NvbnNvbGVfd3JpdGUoa2J1Ziwga2NvdW50KTsK Pj4gICAgICAgICAgICAgICAgICAgZWxzZQo+PiAtICAgICAgICAgICAgICAgICAgICB4ZW5fY29u c29sZV93cml0ZV9kZWJ1Z19wb3J0KGtidWYsIGxlbik7Cj4+ICsgICAgICAgICAgICAgICAgICAg IHhlbl9jb25zb2xlX3dyaXRlX2RlYnVnX3BvcnQoa2J1Ziwga2NvdW50KTsKPj4gICAgICAgICAg ICAgICB9Cj4+ICAgI2VuZGlmCj4+ICAgCj4+IEBAIC01NzUsMTkgKzU3MiwyMCBAQCBzdGF0aWMg bG9uZyBndWVzdF9jb25zb2xlX3dyaXRlKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oY2hhcikgYnVm ZmVyLCBpbnQgY291bnQpCj4+ICAgICAgICAgICAgICAgY2hhciAqa2luID0ga2J1ZiwgKmtvdXQg PSBrYnVmLCBjOwo+PiAgIAo+PiAgICAgICAgICAgICAgIC8qIFN0cmlwIG5vbi1wcmludGFibGUg Y2hhcmFjdGVycyAqLwo+PiAtICAgICAgICAgICAgZm9yICggOyA7ICkKPj4gKyAgICAgICAgICAg IGRvCj4+ICAgICAgICAgICAgICAgewo+PiAgICAgICAgICAgICAgICAgICBjID0gKmtpbisrOwo+ PiAtICAgICAgICAgICAgICAgIGlmICggYyA9PSAnXDAnIHx8IGMgPT0gJ1xuJyApCj4+ICsgICAg ICAgICAgICAgICAgaWYgKCBjID09ICdcbicgKQo+PiAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7Cj4+ICAgICAgICAgICAgICAgICAgIGlmICggaXNwcmludChjKSB8fCBjID09ICdcdCcgKQo+ PiAgICAgICAgICAgICAgICAgICAgICAgKmtvdXQrKyA9IGM7Cj4+IC0gICAgICAgICAgICB9Cj4+ ICsgICAgICAgICAgICB9IHdoaWxlICggLS1rY291bnQgPiAwICk7Cj4gCj4gV2h5IG5vdAo+IAo+ ICAgICAgd2hpbGUgKCBrY291bnQtLSA+IDAgKQo+ICAgICAgewo+ICAgICAgICAgWFhYCj4gICAg ICB9Cj4gICAgCj4gbGlrZSB5b3UgZGlkIGluIGVhcmx5X3B1dHM/IEFueXdheSB0aGlzIHNob3Vs ZCBiZSBqdXN0IHN0eWxlLCBzbyB1cCB0bwo+IHlvdS4KClRoaXMgaXMgbm90IGEgc3R5bGUgaXNz dWUgYnV0IGEgY29tcGlsYXRpb24gcHJvYmxlbS4gVGhlIHZhcmlhYmxlIGMgaXMgdXNlZCAKYWZ0 ZXIgdGhlIGxvb3AgdG8gY2hlY2sgaWYgaXQgYSBuZXdsaW5lIChpLmUgXG4pLiBUaGUgdmFyaWFi bGUgaXMgb25seSBzZXQgCndpdGhpbiB0aGUgbG9vcC4gV2l0aCBhIHdoaWxlICgpIHRoZSBjb21w aWxlciB0aGlua3MgdGhlIHZhcmlhYmxlIG1heSBuZXZlciBiZSAKaW5pdGlhbGl6ZWQuCgpUaGUg ZG8ge30gd2hpbGUgZml4ZXMgdGhlIHByb2JsZW0gYnkgYWx3YXlzIGV4ZWN1dGluZyBvbmUgaXRl cmF0aW9uLiBUaGlzIGlzIApmaW5lICBiZWNhdXNlIGNvdW50IGlzIGtjb3VudCB3aWxsIGFsd2F5 cyBiZSA+IDAuCgpBbHRlcm5hdGl2ZWx5LCB0aGUgdmFyaWFibGUgY2FuIGJlIGluaXRpYWxpemVk IHRvIGEgY29uc3RhbnQuIEJ1dCBJIGZlZWxzIHRoaXMgCmlzIG1heSBoaWRlIG90aGVyIHByb2Js ZW0gaW4gdGhlIGNvZGUgaW4gdGhlIGZ1dHVyZS4KCkNoZWVycywKCi0tIApKdWxpZW4gR3JhbGwK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=