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 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 37E0BEB64D9 for ; Tue, 4 Jul 2023 17:30:11 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qGjqT-0004Tk-73; Tue, 04 Jul 2023 13:29:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qGjqS-0004TV-7d for qemu-devel@nongnu.org; Tue, 04 Jul 2023 13:29:44 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qGjqQ-0005Ou-5p for qemu-devel@nongnu.org; Tue, 04 Jul 2023 13:29:43 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-3143ccb0f75so1612745f8f.0 for ; Tue, 04 Jul 2023 10:29:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688491780; x=1691083780; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=2PImOfaD904gXrfIEylW08TmG4rPoEPaD9dALPXGk2A=; b=U+7/5zZnmCEn8U416fLcTdRN9f+ZmQBUhRpjggb/LVkgSCs7mF4aFZmBljjbYiArdt 8pWSW+v7bogtm8ELn2jWLlFSjBeRUgb1yLQcd/V/78gsPJ7BpyBa70ySfQFPuQlcL43l +9oN0VznplBoIlhqSlFmSh0XeWAkt6NC+GD/8U892G+9zjyQN5dLxMAZpQw56dmUq2pC P3Vng9SjocBnI55Oe8zknjunvSac38wSTCUHWR+98/9j+VV1EHsCBlLyJfZgDDWpjHpn HQ1wRQ1eyrVg3qtt39CbxRJLcywZtK9G2GPmb5e5aOrSHFn1t32jdxM2CPU2QX3uRUgf mDWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688491780; x=1691083780; h=content-transfer-encoding:in-reply-to:content-language:from :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2PImOfaD904gXrfIEylW08TmG4rPoEPaD9dALPXGk2A=; b=CURtuxs2VAIVYwfnD9K40ZuMECn/AL/6xvUuY0Jg6q6XzFK/Ul4JWit8k/TnOlYP0N ARpDC6bvMH4uveqR/OXgFrARUVZptV+l7hFtyhJSiCp44TUlF8Y/VkSITZPwSLAxUjbk 7P9oEFx3yRyKkV8UpVK0I8zh9b9u6Sa7+jSVLNBYlX3XE8z2GMgc91ap71h11hSdvhyP ZihTeA/mjumdrVYRV/rrC8RHaVDiAMxtcX/whzkHJ7MBZS5o6FLIFktpzAqZE0RVUO6k 6txFWATCFkprhk7Yps78rb99z9xTiFKZVz5sauck3rlgizykkq09COK7SDsmLvlgzRwi 0Jjg== X-Gm-Message-State: ABy/qLYNb+/8EqRRx/gWfpI/QVbfiTHEMjstR8K9uwKyvp7PQwfA6mpQ A4XBx7QghWl2BtvpjoN9hlhwow== X-Google-Smtp-Source: APBJJlH3wrfanBy7cATVabqFFZDdGT+dWODUoDEbeKGClfmWfjnkYFAJNuTRc0zLGd8s7AZ0lyq9Og== X-Received: by 2002:adf:d0c5:0:b0:314:3b1f:8ea2 with SMTP id z5-20020adfd0c5000000b003143b1f8ea2mr5622237wrh.6.1688491779672; Tue, 04 Jul 2023 10:29:39 -0700 (PDT) Received: from ?IPV6:2a01:e0a:5cc:caa0:6d79:3eab:6444:9cd4? ([2a01:e0a:5cc:caa0:6d79:3eab:6444:9cd4]) by smtp.gmail.com with ESMTPSA id a16-20020adfeed0000000b0031431fb40fasm7827953wrp.89.2023.07.04.10.29.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 04 Jul 2023 10:29:39 -0700 (PDT) Message-ID: <9ba23d9e-586c-ca23-967c-6894287b03d1@linaro.org> Date: Tue, 4 Jul 2023 19:29:38 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH] linux-user/syscall: Implement execve without execveat To: Michael Tokarev , qemu-devel@nongnu.org Cc: laurent@vivier.eu, richard.henderson@linaro.org, sir@cmpwn.com References: <20230703154831.1136575-1-pierrick.bouvier@linaro.org> <08f9669f-1022-2b9c-4ca5-2f16bc1a2fda@tls.msk.ru> From: Pierrick Bouvier Content-Language: en-US In-Reply-To: <08f9669f-1022-2b9c-4ca5-2f16bc1a2fda@tls.msk.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=pierrick.bouvier@linaro.org; helo=mail-wr1-x42e.google.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.09, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org T24gNy8zLzIzIDE5OjI5LCBNaWNoYWVsIFRva2FyZXYgd3JvdGU6DQo+IDAzLjA3LjIwMjMg MTg6NDgsIFBpZXJyaWNrIEJvdXZpZXIg0L/QuNGI0LXRgjoNCj4+IFN1cHBvcnQgZm9yIGV4 ZWN2ZWF0IHN5c2NhbGwgd2FzIGltcGxlbWVudGVkIGluIDU1YmJlNCBhbmQgaXMgYXZhaWxh YmxlDQo+PiBzaW5jZSBRRU1VIDguMC4wLiBJdCByZWxpZXMgb24gaG9zdCBleGVjdmVhdCwg d2hpY2ggaXMgd2lkZWx5IGF2YWlsYWJsZQ0KPj4gb24gbW9zdCBvZiBMaW51eCBrZXJuZWxz IHRvZGF5Lg0KPj4NCj4+IEhvd2V2ZXIsIHRoaXMgY2hhbmdlIGJyZWFrcyBxZW11LXVzZXIg c2VsZiBlbXVsYXRpb24sIGlmICJob3N0IiBxZW11DQo+PiB2ZXJzaW9uIGlzIGxlc3MgdGhh biA4LjAuMC4gSW5kZWVkLCBpdCBkb2VzIG5vdCBpbXBsZW1lbnQgeWV0IGV4ZWN2ZWF0Lg0K Pj4gVGhpcyBzdHJhbmdlIHVzZSBjYXNlIGhhcHBlbnMgd2l0aCBtb3N0IG9mIGRpc3RyaWJ1 dGlvbiB0b2RheSBoYXZpbmcNCj4+IGJpbmZtdCBzdXBwb3J0Lg0KPj4NCj4+IFdpdGggYSBj b25jcmV0ZSBmYWlsaW5nIGV4YW1wbGU6DQo+PiAkIHFlbXUteDg2XzY0LTcuMiBxZW11LXg4 Nl82NC04LjAgL2Jpbi9iYXNoIC1jIC9iaW4vbHMNCj4+IC9iaW4vYmFzaDogbGluZSAxOiAv YmluL2xzOiBGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQNCj4+IC0+IG5vdCBpbXBsZW1lbnRl ZCBtZWFucyBleGVjdmUgcmV0dXJuZWQgRU5PU1lTDQo+Pg0KPj4gcWVtdS11c2VyLXN0YXRp YyA3LjIgYW5kIDguMCBjYW4gYmUgY29udmVuaWVudGx5IGdyYWJiZWQgZnJvbSBkZWJpYW4N Cj4+IHBhY2thZ2VzIHFlbXUtdXNlci1zdGF0aWMqIFsxXS4NCj4+DQo+PiBPbmUgdXNhZ2Ug b2YgdGhpcyBpcyBydW5uaW5nIHdpbmUtYXJtNjQgZnJvbSBsaW51eC14NjQgKGRldGFpbHMg WzJdKS4NCj4+IFRoaXMgaXMgYnkgdXBkYXRpbmcgcWVtdSBlbWJlZGRlZCBpbiBkb2NrZXIg aW1hZ2UgdGhhdCB3ZSByYW4gaW50byB0aGlzDQo+PiBpc3N1ZS4NCj4+DQo+PiBUaGUgc29s dXRpb24gdG8gdXBkYXRlIGhvc3QgcWVtdSBpcyBub3QgYWx3YXlzIHBvc3NpYmxlLiBFaXRo ZXIgaXQncw0KPj4gY29tcGxpY2F0ZWQgb3IgYXNrIHlvdSB0byByZWNvbXBpbGUgaXQsIG9y IHNpbXBseSBpcyBub3QgYWNjZXNzaWJsZQ0KPj4gKEdpdExhYiBDSSwgR2l0SHViIEFjdGlv bnMpLiBUaHVzLCBpdCBjb3VsZCBiZSB3b3J0aCB0byBpbXBsZW1lbnQgZXhlY3ZlDQo+PiB3 aXRob3V0IHJlbHlpbmcgb24gZXhlY3ZlYXQsIHdoaWNoIGlzIHRoZSBnb2FsIG9mIHRoaXMg cGF0Y2guDQo+Pg0KPj4gVGhpcyBwYXRjaCB3YXMgdGVzdGVkIHdpdGggZXhhbXBsZSBwcmVz ZW50ZWQgaW4gdGhpcyBjb21taXQgbWVzc2FnZS4NCj4+DQo+PiBbMV0gaHR0cDovL2Z0cC51 cy5kZWJpYW4ub3JnL2RlYmlhbi9wb29sL21haW4vcS9xZW11Lw0KPj4gWzFdIGh0dHBzOi8v d3d3LmxpbmFyby5vcmcvYmxvZy9lbXVsYXRlLXdpbmRvd3Mtb24tYXJtLw0KPj4NCj4+IFNp Z25lZC1vZmYtYnk6IFBpZXJyaWNrIEJvdXZpZXIgPHBpZXJyaWNrLmJvdXZpZXJAbGluYXJv Lm9yZz4NCj4+IC0tLQ0KPj4gICAgbGludXgtdXNlci9zeXNjYWxsLmMgfCA0NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQ0KPj4gICAgMSBmaWxlIGNo YW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAt LWdpdCBhL2xpbnV4LXVzZXIvc3lzY2FsbC5jIGIvbGludXgtdXNlci9zeXNjYWxsLmMNCj4+ IGluZGV4IGYyY2IxMDFkODMuLmI2NGVjMzI5NmEgMTAwNjQ0DQo+PiAtLS0gYS9saW51eC11 c2VyL3N5c2NhbGwuYw0KPj4gKysrIGIvbGludXgtdXNlci9zeXNjYWxsLmMNCj4+IEBAIC02 NTksNiArNjU5LDcgQEAgc2FmZV9zeXNjYWxsNChwaWRfdCwgd2FpdDQsIHBpZF90LCBwaWQs IGludCAqLCBzdGF0dXMsIGludCwgb3B0aW9ucywgXA0KPj4gICAgI2VuZGlmDQo+PiAgICBz YWZlX3N5c2NhbGw1KGludCwgd2FpdGlkLCBpZHR5cGVfdCwgaWR0eXBlLCBpZF90LCBpZCwg c2lnaW5mb190ICosIGluZm9wLCBcDQo+PiAgICAgICAgICAgICAgICAgIGludCwgb3B0aW9u cywgc3RydWN0IHJ1c2FnZSAqLCBydXNhZ2UpDQo+PiArc2FmZV9zeXNjYWxsMyhpbnQsIGV4 ZWN2ZSwgY29uc3QgY2hhciAqLCBmaWxlbmFtZSwgY2hhciAqKiwgYXJndiwgY2hhciAqKiwg ZW52cCkNCj4+ICAgIHNhZmVfc3lzY2FsbDUoaW50LCBleGVjdmVhdCwgaW50LCBkaXJmZCwg Y29uc3QgY2hhciAqLCBmaWxlbmFtZSwNCj4+ICAgICAgICAgICAgICAgICAgY2hhciAqKiwg YXJndiwgY2hhciAqKiwgZW52cCwgaW50LCBmbGFncykNCj4+ICAgICNpZiBkZWZpbmVkKFRB UkdFVF9OUl9zZWxlY3QpIHx8IGRlZmluZWQoVEFSR0VUX05SX19uZXdzZWxlY3QpIHx8IFwN Cj4+IEBAIC04NTIwLDkgKzg1MjEsMTIgQEAgc3RhdGljIGludCBkb19vcGVuYXQoQ1BVQXJj aFN0YXRlICpjcHVfZW52LCBpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBpbnQN Cj4+ICAgICAgICByZXR1cm4gc2FmZV9vcGVuYXQoZGlyZmQsIHBhdGgocGF0aG5hbWUpLCBm bGFncywgbW9kZSk7DQo+PiAgICB9DQo+PiAgICANCj4+IC1zdGF0aWMgaW50IGRvX2V4ZWN2 ZWF0KENQVUFyY2hTdGF0ZSAqY3B1X2VudiwgaW50IGRpcmZkLA0KPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgYWJpX2xvbmcgcGF0aG5hbWUsIGFiaV9sb25nIGd1ZXN0X2FyZ3AsDQo+ PiAtICAgICAgICAgICAgICAgICAgICAgICBhYmlfbG9uZyBndWVzdF9lbnZwLCBpbnQgZmxh Z3MpDQo+PiArI2RlZmluZSBJU19FWEVDVkVBVCAwDQo+PiArI2RlZmluZSBJU19FWEVDVkUg MQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgZG9fZXhlY3YoQ1BVQXJjaFN0YXRlICpjcHVfZW52 LCBpbnQgZGlyZmQsDQo+PiArICAgICAgICAgICAgICAgICAgICBhYmlfbG9uZyBwYXRobmFt ZSwgYWJpX2xvbmcgZ3Vlc3RfYXJncCwNCj4+ICsgICAgICAgICAgICAgICAgICAgIGFiaV9s b25nIGd1ZXN0X2VudnAsIGludCBmbGFncywgYm9vbCBpc19leGVjdmUpDQo+PiAgICB7DQo+ PiAgICAgICAgaW50IHJldDsNCj4+ICAgICAgICBjaGFyICoqYXJncCwgKiplbnZwOw0KPj4g QEAgLTg2MDEsMTAgKzg2MDUsMTggQEAgc3RhdGljIGludCBkb19leGVjdmVhdChDUFVBcmNo U3RhdGUgKmNwdV9lbnYsIGludCBkaXJmZCwNCj4+ICAgICAgICAgICAgZ290byBleGVjdmVf ZWZhdWx0Ow0KPj4gICAgICAgIH0NCj4+ICAgIA0KPj4gLSAgICBpZiAoaXNfcHJvY19teXNl bGYocCwgImV4ZSIpKSB7DQo+PiAtICAgICAgICByZXQgPSBnZXRfZXJybm8oc2FmZV9leGVj dmVhdChkaXJmZCwgZXhlY19wYXRoLCBhcmdwLCBlbnZwLCBmbGFncykpOw0KPj4gKyAgICBp ZiAoaXNfZXhlY3ZlID09IElTX0VYRUNWRSkgew0KPiANCj4gaXNfZXhlY3ZlIGlzIGVpdGhl ciBib29sIG9yIG5vdC4gSSdkIHVzZSBpdCBhcyBib29sLCBhbmQgcGFzcyB0cnVlL2ZhbHNl Lg0KPiBSaWdodCBub3cgaXQgaXMgaW5jb25zaXN0ZW50Lg0KPiANCg0KSSdsbCB1cGRhdGUg dGhpcy4NCg0KPj4gKyAgICAgICAgaWYgKGlzX3Byb2NfbXlzZWxmKHAsICJleGUiKSkgew0K Pj4gKyAgICAgICAgICAgIHJldCA9IGdldF9lcnJubyhzYWZlX2V4ZWN2ZShleGVjX3BhdGgs IGFyZ3AsIGVudnApKTsNCj4+ICsgICAgICAgIH0gZWxzZSB7DQo+PiArICAgICAgICAgICAg cmV0ID0gZ2V0X2Vycm5vKHNhZmVfZXhlY3ZlKHAsIGFyZ3AsIGVudnApKTsNCj4+ICsgICAg ICAgIH0NCj4+ICAgICAgICB9IGVsc2Ugew0KPj4gLSAgICAgICAgcmV0ID0gZ2V0X2Vycm5v KHNhZmVfZXhlY3ZlYXQoZGlyZmQsIHAsIGFyZ3AsIGVudnAsIGZsYWdzKSk7DQo+PiArICAg ICAgICBpZiAoaXNfcHJvY19teXNlbGYocCwgImV4ZSIpKSB7DQo+PiArICAgICAgICAgICAg cmV0ID0gZ2V0X2Vycm5vKHNhZmVfZXhlY3ZlYXQoZGlyZmQsIGV4ZWNfcGF0aCwgYXJncCwg ZW52cCwgZmxhZ3MpKTsNCj4+ICsgICAgICAgIH0gZWxzZSB7DQo+PiArICAgICAgICAgICAg cmV0ID0gZ2V0X2Vycm5vKHNhZmVfZXhlY3ZlYXQoZGlyZmQsIHAsIGFyZ3AsIGVudnAsIGZs YWdzKSk7DQo+PiArICAgICAgICB9DQo+PiAgICAgICAgfQ0KPiANCj4gQW5kIHRoaXMgY2Fu IGJlIHNpbXBsaWZpZWQgcXVpdGUgYSBiaXQgYnkgdXNpbmcgYSBjb25kaXRpb24gb24NCj4g aXNfcHJvY19teXNlbGYocCwgImV4ZSIpOg0KPiANCj4gICAgIGlmIChpc19wcm9jX215c2Vs ZihwLCBleGUpKSB7DQo+ICAgICAgICBwID0gZXhlY19wYXRoOw0KPiAgICAgfQ0KPiAgICAg cmV0ID0gaXNfZXhjdmVhdCA/DQo+ICAgICAgIHNhZmVfZXhlY3ZlYXQoZGlyZmQsIHAsIGFy Z3AsIGVudnAsIGZsYWdzKSA6DQo+ICAgICAgIHNhZmVfZXhlY3ZlKHAsIGFyZ3AsIGVudnAp Ow0KPiAgICAgcmV0ID0gZ2V0X2Vycm5vKHJldCk7DQo+ICAgICAuLi4NCj4gDQo+IEkgZHVu bm8gd2hpY2ggd2F5IExhdXJlbnQgbWlnaHQgcHJlZmVyLCBidXQgdG8gbXkgdGFzdGUgdGhp cyB3YXkgaXQgaXMNCj4gbXVjaCBtb3JlIHJlYWRhYmxlIChnaXZlIG9yIHRha2UgdGhlIHBy b3BlciBjb2Rpbmcgc3R5bGUgdG8gdXNlIGhlcmUsIC0NCj4gSSBkb24ndCByZW1lbWJlciBo b3cgdGhlIGFyaXRobWV0aWMgaWYgc2hvdWxkIGJlIHN0eWxlZCkuDQo+IA0KDQpZZXMsIGxv b2tzIGdvb2QuDQoNCj4+ICAgIA0KPj4gICAgICAgIHVubG9ja191c2VyKHAsIHBhdGhuYW1l LCAwKTsNCj4+IEBAIC04NjMzLDYgKzg2NDUsMjUgQEAgZXhlY3ZlX2VuZDoNCj4+ICAgICAg ICByZXR1cm4gcmV0Ow0KPj4gICAgfQ0KPj4gICAgDQo+PiArc3RhdGljIGludCBkb19leGVj dmVhdChDUFVBcmNoU3RhdGUgKmNwdV9lbnYsIGludCBkaXJmZCwNCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgIGFiaV9sb25nIHBhdGhuYW1lLCBhYmlfbG9uZyBndWVzdF9hcmdwLA0K Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgYWJpX2xvbmcgZ3Vlc3RfZW52cCwgaW50IGZs YWdzKQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJuIGRvX2V4ZWN2KGNwdV9lbnYsIGRpcmZkLA0K Pj4gKyAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsIGd1ZXN0X2FyZ3AsIGd1ZXN0X2Vu dnAsIGZsYWdzLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgSVNfRVhFQ1ZFQVQpOw0KPj4g K30NCj4+ICsNCj4+ICtzdGF0aWMgaW50IGRvX2V4ZWN2ZShDUFVBcmNoU3RhdGUgKmNwdV9l bnYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgYWJpX2xvbmcgcGF0aG5hbWUsIGFiaV9s b25nIGd1ZXN0X2FyZ3AsDQo+PiArICAgICAgICAgICAgICAgICAgICAgYWJpX2xvbmcgZ3Vl c3RfZW52cCkNCj4+ICt7DQo+PiArICAgIHJldHVybiBkb19leGVjdihjcHVfZW52LCBBVF9G RENXRCwNCj4+ICsgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lLCBndWVzdF9hcmdwLCBn dWVzdF9lbnZwLCAwLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgSVNfRVhFQ1ZFKTsNCj4+ ICt9DQo+PiArDQo+PiArDQo+PiAgICAjZGVmaW5lIFRJTUVSX01BR0lDIDB4MGNhZjAwMDAN Cj4+ICAgICNkZWZpbmUgVElNRVJfTUFHSUNfTUFTSyAweGZmZmYwMDAwDQo+PiAgICANCj4+ IEBAIC05MTU4LDcgKzkxODksNyBAQCBzdGF0aWMgYWJpX2xvbmcgZG9fc3lzY2FsbDEoQ1BV QXJjaFN0YXRlICpjcHVfZW52LCBpbnQgbnVtLCBhYmlfbG9uZyBhcmcxLA0KPj4gICAgICAg IGNhc2UgVEFSR0VUX05SX2V4ZWN2ZWF0Og0KPj4gICAgICAgICAgICByZXR1cm4gZG9fZXhl Y3ZlYXQoY3B1X2VudiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSk7DQo+PiAgICAg ICAgY2FzZSBUQVJHRVRfTlJfZXhlY3ZlOg0KPj4gLSAgICAgICAgcmV0dXJuIGRvX2V4ZWN2 ZWF0KGNwdV9lbnYsIEFUX0ZEQ1dELCBhcmcxLCBhcmcyLCBhcmczLCAwKTsNCj4+ICsgICAg ICAgIHJldHVybiBkb19leGVjdmUoY3B1X2VudiwgYXJnMSwgYXJnMiwgYXJnMyk7DQo+IA0K PiBGV0lXLCB0aGVyZSdzIG5vIG5lZWQgdG8gaW1wbGVtZW50IHRoZSBpbnRlcm1lZGlhdGUg d3JhcHBlciBmdW5jdGlvbnMsDQo+IGl0J3MgZmluZSB0byBydW4gZG9fZXhlY3YoLi4uLCB0 cnVlL2ZhbHNlKSBoZXJlIGRpcmVjdGx5Lg0KPiANCg0KSU1ITyBpdCdzIGNsZWFyZXIgdG8g aGF2ZSBpbnRlcm1lZGlhdGUgd3JhcHBlciwgYnV0IGlmIHlvdSBwcmVmZXIgYSANCmRpcmVj dCBzdHlsZSB3aXRoIGFkZGVkIHBhcmFtZXRlciwgaXQncyBvayBmb3IgbWUgdG9vLg0KDQo+ IA0KPiBPdmVyYWxsLCB0aGlzIHNtZWxscyBsaWtlIGEgLXN0YWJsZSBtYXRlcmlhbC4NCj4g DQo+IFRoYW5rcyENCj4gDQoNClRoYW5rcyBmb3IgeW91ciByZXZpZXcgOikNCg0KPiAvbWp0 DQo=