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.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (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 4074ECA9ED0 for ; Tue, 13 Oct 2026 01:27:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Type:Content-Transfer-Encoding:Cc: Reply-To:From:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:In-Reply-To:References:To:MIME-Version:Date: Message-ID:Sender:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Rtlg45EMP8b3rTv4TSFSkK/so+XqsTdhZl3HkhYPr6U=; b=ZtD4mmSjsIJCJvf3Dj2Em13ERE AJaIFyw+P7VZyZZYeeOSUK1AkmKcLIym9s7ukOMHBAMawniHY96oJWeHaddMo8HX6oH0ZfrH9Xkyl 3qpOGsFxQQCjzTC5kzqT7pTSlLJzCJF+61SvIqVa585rTj4BkYw6OmZzC0QK1j1vnv2I=; Received: from [127.0.0.1] (helo=sfs-ml-2.v29.lw.sourceforge.com) by sfs-ml-2.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1xGRIj-0002K7-Oi; Tue, 13 Oct 2026 01:27:34 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1xGRIi-0002Jr-EN for linux-f2fs-devel@lists.sourceforge.net; Tue, 13 Oct 2026 01:27:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: From:References:To:Subject:Cc:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=gspSJpx/eLuiH3OBgcFpNhZAp0zCuuNaHXA0SHBng08=; b=YUpRYBcT0qbu+PgqTo6ItJ0G3f q1vWegQ49CLEqj8lV5sYrXGiG6/7s1j22vSkBQvaZ6gUaT7z7UUuArfUAwa8u391/3rShiIbbv8i/ sV9Q1YfhMNUO9bhlZWVrGePjcEj3eNO0YtFDNUU/hZi50F0/HSJdHGHtGCWFuVp2NksM=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:References:To: Subject:Cc:MIME-Version:Date:Message-ID:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=gspSJpx/eLuiH3OBgcFpNhZAp0zCuuNaHXA0SHBng08=; b=S9VSzkU+vj8C/Od/E0+ITwyF7K cIlR1RBMba78jHTg1hYJdv1dBcYVqXlMUaX2AX0ZWbp3kUhDwNanjC9Cto72cjddUZ0vjsqXoBJSC ThNiDFRPjjd4g6svHY4pE+mYe/gZrOCIjMjREtRWf9gH3uImh/98X0nR0onTuwC0tM7A=; Received: from sea.source.kernel.org ([172.234.252.31]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1xGRIi-000635-5k for linux-f2fs-devel@lists.sourceforge.net; Tue, 13 Oct 2026 01:27:33 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id D177F40783; Tue, 13 Oct 2026 01:27:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F353F1F0089B; Tue, 13 Oct 2026 01:27:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791854846; bh=gspSJpx/eLuiH3OBgcFpNhZAp0zCuuNaHXA0SHBng08=; h=Date:Cc:Subject:To:References:From:In-Reply-To; b=ZR/2ISBXSHLCTCKif91NgXfyTHuTptWNHglHl6MG5O+TlId3B/UKdlhgTMbJupSVd owWpPEibV/qcMosseOc3RLTMw6lqOHjkEjQIVZh/5etww/ETxB16gI50U+lHEOIeZM lfSpwoRpoSf3dNC0mKilS4T9npSkGwlpydaykTrQHfXszqtuQlgAtJj9MXk7BMS3QG Ifden4bxAPkcLxabpH+9wuTYc3pP9MJL+4ZeqUjam7rqqN3F1ZCUcxrxCl8r86+7Pw eDcsDiYG2P56ByiHz/7qEk0EIWB0UXK0PaWaOh1J8T5dpnhQE5uRedOVK/GFCa7P5J qY7bGBQuARxjA== Message-ID: Date: Tue, 13 Oct 2026 09:27:22 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Daeho Jeong References: <20260911143549.909867-1-daeho43@gmail.com> <20260911143549.909867-2-daeho43@gmail.com> <3e5f2bd4-f0e6-4f79-b182-6cb8ac331580@kernel.org> Content-Language: en-US In-Reply-To: X-Headers-End: 1xGRIi-000635-5k Subject: Re: [f2fs-dev] [PATCH v2 2/2] f2fs: introduce reserve_shrink mount option for filesystem shrinkage X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Chao Yu via Linux-f2fs-devel Reply-To: Chao Yu Cc: Daeho Jeong , kernel-team@android.com, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net T24gOS8xNS8yNiAwMDoyNCwgRGFlaG8gSmVvbmcgd3JvdGU6Cj4gT24gTW9uLCBTZXAgMTQsIDIw MjYgYXQgMTI6MTXigK9BTSBDaGFvIFl1IDxjaGFvQGtlcm5lbC5vcmc+IHdyb3RlOgo+Pgo+PiBP biA5LzExLzI2IDIyOjM1LCBEYWVobyBKZW9uZyB3cm90ZToKPj4+IEZyb206IERhZWhvIEplb25n IDxkYWVob2plb25nQGdvb2dsZS5jb20+Cj4+Pgo+Pj4gV2hlbiBwcmVwYXJpbmcgZm9yIHN1YnNl cXVlbnQgb25saW5lIGZpbGVzeXN0ZW0gc2hyaW5rYWdlIChlLmcuLCBkdXJpbmcKPj4+IHBhcnRp dGlvbiByZXNpemluZyBvciBGT1RBIHVwZGF0ZXMpLCBzdWZmaWNpZW50IGZyZWUgc3BhY2UgbXVz dCBiZQo+Pj4gcHJlc2VydmVkIHNvIHRoYXQgdmFsaWQgZGF0YSBibG9ja3MgY2FuIGJlIGV2YWN1 YXRlZCBhbmQgdGhlIGZpbGVzeXN0ZW0KPj4+IGNhbiBzYWZlbHkgc2hyaW5rLgo+Pj4KPj4+IEV4 aXN0aW5nIHJlc2VydmVfcm9vdCBjYW5ub3QgcHJldmVudCBzcGFjZSBleGhhdXN0aW9uIGJ5IHBy aXZpbGVnZWQgcm9vdAo+Pj4gcHJvY2Vzc2VzIChzdWNoIGFzIE9UQSB1cGRhdGVycywgcGFja2Fn ZSBtYW5hZ2VycywgYW5kIHN5c3RlbSBkYWVtb25zCj4+PiBydW5uaW5nIHdpdGggQ0FQX1NZU19S RVNPVVJDRSksIHdoaWNoIGNhbiBhbGxvY2F0ZSBibG9ja3MgZnJvbSB0aGUgcm9vdAo+Pj4gcmVz ZXJ2ZSBhbmQgbGVhZCB0byByZXNpemUgZmFpbHVyZXMgZHVlIHRvIGxhY2sgb2Ygc3BhY2UuIE1v cmVvdmVyLAo+Pgo+PiBJJ20gdGhpbmtpbmcgYWJvdXQgcmV1c2luZyBleGlzdGluZyBtb3VudCBv cHRpb24gQU1BUCwgaXMgdGhlcmUgYW55IHByb2JsZW0KPj4gdG8gdXNlICJyZXNlcnZlX3Jvb3Q9 IiB3LyAxMjhtYitzaHJ1bmtfc2l6ZV9tYiB3aGVuIHdlIGV4ZWN1dGUgb25saW5lIGZpbGVzeXN0 ZQo+PiBzaHJpbmthZ2U/IG9uY2UgaXQgaXMgZG9uZSwgcmVjb3ZlciB3LyByZXNlcnZlX3Jvb3Q9 MTI4bWIuCj4+Cj4+PiBydW50aW1lIGNvbmZpZ3VyYWJsZSByZXNlcnZlZF9ibG9ja3MgcmVwcmVz ZW50cyBwZXJtYW5lbnQgR0MgYW5kIG1ldGFkYXRhCj4+PiBoZWFkcm9vbSB0aGF0IG11c3QgcGVy c2lzdCBhZnRlciByZXNpemUsIHdoaWNoIHdvdWxkIGNhdXNlIGRvdWJsZS1jb3VudGluZwo+Pj4g aWYgaW5mbGF0ZWQgZm9yIHNocmlua2FnZS4KPj4KPj4gSSBkaWRuJ3QgZ2V0IGl0LCBjYW4geW91 IHBsZWFzZSBleHBsYWluIGEgYml0IG1vcmUgYWJvdXQgdGhpcyBpc3N1ZT8KPj4KPj4gVGhhbmtz LAo+IAo+IEhpIENoYW8sCj4gCj4gVGhlcmUgYXJlIHRocmVlIG1haW4gcmVhc29ucyB3aHkgcmVz ZXJ2ZV9yb290IGNhbm5vdCBiZSByZXVzZWQ6Cj4gCj4gMS4gRG91YmxlLWNvdW50aW5nIGluIGYy ZnNfcmVzaXplX2ZzKCk6Cj4gZjJmc19yZXNpemVfZnMoKSBjaGVja3M6Cj4gICAgc2hydW5rX2Js b2NrcyArIHZhbGlkX3VzZXJfYmxvY2tzICsgcm9vdF9yZXNlcnZlZF9ibG9ja3MgKyAuLi4gPgo+ IHVzZXJfYmxvY2tfY291bnQKPiBTaW5jZSByb290X3Jlc2VydmVkX2Jsb2NrcyBtdXN0IHBlcnNp c3QgYWZ0ZXIKPiByZXNpemUsIGluZmxhdGluZyBpdCBieSBzaHJ1bmtfc2l6ZSBjYXVzZXMgc2hy dW5rX3NpemUgdG8gYmUgY291bnRlZCB0d2ljZSwKPiByZXF1aXJpbmcgMnggZnJlZSBzcGFjZSBh bmQgdHJpZ2dlcmluZyBmYWxzZSAtRU5PU1BDLiBSZXNldHRpbmcgaXQgcmlnaHQgYmVmb3JlCj4g cmVzaXplIGFsc28gaW50cm9kdWNlcyBhIHJhY2Ugd2luZG93IHdoZXJlIGNvbmN1cnJlbnQgd3Jp dGVzIGNhbgo+IGNvbnN1bWUgdGhlIHNwYWNlLgo+IDIuIFJvb3QgY2FuIGFsbG9jYXRlIGZyb20g cmVzZXJ2ZV9yb290Ogo+IHJlc2VydmVfcm9vdCBhbGxvd3Mgcm9vdC9DQVBfU1lTX1JFU09VUkNF IHByb2Nlc3NlcyB0byBhbGxvY2F0ZS4gRHVyaW5nIE9UQSwKPiBzeXN0ZW0gZGFlbW9ucyBhbmQg dXBkYXRlcnMgY2FuIGVhdCBpbnRvIHRoZSByZXNlcnZlZCBibG9ja3MuCj4gcmVzZXJ2ZV9zaHJp bmsgc3RyaWN0bHkgYmxvY2tzIGFsbCBjYWxsZXJzLCBpbmNsdWRpbmcgcm9vdC4KCkRhZWhvLCBz b3JyeSBmb3IgdGhlIGRlbGF5LgoKVGhhbmtzIGZvciB0aGUgZXhwbGFuYXRpb24sIEkgc2VlLCBp dCdzIG5vdCBhcHByb3ByaWF0ZSB0byByZXVzZQoicmVzZXJ2ZV9yb290PSIgb3B0aW9uIGZvciB5 b3VyIHJlcXVpcmVtZW50LgoKTWF5IEkgYXNrIHRoYXQgZG8geW91IG5lZWQgdG8ga2VlcCB0aGUg cmVzZXJ2YXRpb24gZm9yIGEgbG9uZyB0aW1lIGJlZm9yZSByZXNpemUsCmUuZy4gZnJvbSBPVEEg c3RhcnRzIHRpbGwgc2hyaW5rIGhhcHBlbnM/IG9yIGlzIGl0IGVub3VnaCB0byBtYWtlIGl0IHJl c2VydmVkCmR1cmluZyBmMmZzX3Jlc2l6ZV9mcygpPwoKSWYgdGhlIGxhdHRlciwgY2FuIHdlIGp1 c3QgcmVzZXJ2ZSBzaHJ1bmtfYmxvY2tzIGluIGYyZnNfcmVzaXplX2ZzKCkKZGlyZWN0bHksIHcv IHRoZSBzYW1lIHdheSB3ZSBkaWQgZm9yIGYyZnNfaW9jX3Jlc2VydmVfZGV2X2FsaWFzKCk/IFRo ZW4Kd2UgZG9uJ3QgbmVlZCBhIG5ldyBtb3VudCBvcHRpb24uIFNvbWV0aGluZyBsaWtlOgoKZjJm c19yZXNpemVfZnMoKQogICAgICAgICBzcGluX2xvY2soJnNiaS0+c3RhdF9sb2NrKTsKICAgICAg ICAgaWYgKHNocnVua19ibG9ja3MgKyB2YWxpZF91c2VyX2Jsb2NrcyhzYmkpICsgLi4uID4gc2Jp LT51c2VyX2Jsb2NrX2NvdW50KQogICAgICAgICAgICAgZXJyID0gLUVOT1NQQzsKICAgICAgICAg ZWxzZQogICAgICAgICAgICAgc2JpLT5yZXNpemVfcmVzZXJ2ZWRfYmxvY2tzICs9IHNocnVua19i bG9ja3M7CiAgICAgICAgIHNwaW5fdW5sb2NrKCZzYmktPnN0YXRfbG9jayk7CgogICAgICAgICBm cmVlX3NlZ21lbnRfcmFuZ2Uoc2JpLCBzZWNzLCB0cnVlKTsKICAgICAgICAgLi4uCiAgICAgICAg IGZyZWV6ZV9zdXBlcigpOwogICAgICAgICAuLi4KICAgICAgICAgc3Bpbl9sb2NrKCZzYmktPnN0 YXRfbG9jayk7CiAgICAgICAgIHNiaS0+dXNlcl9ibG9ja19jb3VudCAtPSBzaHJ1bmtfYmxvY2tz OwogICAgICAgICBzYmktPnJlc2l6ZV9yZXNlcnZlZF9ibG9ja3MgLT0gc2hydW5rX2Jsb2NrczsK ICAgICAgICAgc3Bpbl91bmxvY2soJnNiaS0+c3RhdF9sb2NrKTsKICAgICAgICAgLi4uCiAgICAg ICAgIC8qIGVycm9yIHBhdGg6IHNiaS0+cmVzaXplX3Jlc2VydmVkX2Jsb2NrcyAtPSBzaHJ1bmtf YmxvY2tzICovCgphbmQgaW4gZ2V0X2F2YWlsYWJsZV9ibG9ja19jb3VudCgpLCBkZWR1Y3QgcmVz aXplX3Jlc2VydmVkX2Jsb2NrcyBhcyB3ZSBkaWQgZm9yCmFsaWFzX3Jlc2VydmVkX2Jsb2Nrcywg c28gdGhhdCBubyBvbmUsIGluY2x1ZGluZyByb290LCBjYW4gYWxsb2NhdGUgZnJvbSB0aGUKcmVz ZXJ2ZWQgc3BhY2UgZHVyaW5nIHJlc2l6ZS4KClRoYW5rcywKCj4gCj4gVGhhbmtzLAo+IERhZWhv Cj4gCj4+Cj4+Pgo+Pj4gVG8gcmVzb2x2ZSB0aGlzLCBpbnRyb2R1Y2UgYSBkZWRpY2F0ZWQgcmVz ZXJ2ZV9zaHJpbms9PGJsb2Nrcz4KPj4+IG1vdW50IG9wdGlvbjoKPj4+IDEuIFN5bW1ldHJpY2Fs bHkgbWlycm9ycyByZXNlcnZlX3Jvb3Q9PGJsb2Nrcz4gaW4gYmxvY2sgdW5pdHMgdG8KPj4+ICAg ICAgcHJlLXJlc2VydmUgc3BhY2Ugc3BlY2lmaWNhbGx5IGZvciBzdWJzZXF1ZW50IGZpbGVzeXN0 ZW0gc2hyaW5rYWdlLgo+Pj4gMi4gSW4gZ2V0X2F2YWlsYWJsZV9ibG9ja19jb3VudCgpLCB1bmNv bmRpdGlvbmFsbHkgZGVkdWN0cwo+Pj4gICAgICByZXNlcnZlX3Nocmlua19ibG9ja3MgZm9yIGFs bCBjYWxsZXJzLCBzdHJpY3RseSByZWplY3RpbmcgYWxsCj4+PiAgICAgIGFsbG9jYXRpb25zIChp bmNsdWRpbmcgcm9vdCAvIENBUF9TWVNfUkVTT1VSQ0UpIG9uY2UgYXZhaWxhYmxlIGJsb2Nrcwo+ Pj4gICAgICBhcmUgZXhoYXVzdGVkLgo+Pj4gMy4gSW4gZjJmc19zdGF0ZnMoKSwgZGVkdWN0cyBy ZXNlcnZlX3Nocmlua19ibG9ja3MgZnJvbSBmX2JmcmVlIChhbmQKPj4+ICAgICAgZl9iYXZhaWwp IHNvIHRoYXQgZmlsZXN5c3RlbSBzdGF0aXN0aWNzIGFjY3VyYXRlbHkgcmVmbGVjdCB1c2FibGUg c3BhY2UuCj4+PiA0LiBJbiBmMmZzX3Jlc2l6ZV9mcygpLCBhdXRvbWF0aWNhbGx5IHJlc2V0cyBy ZXNlcnZlX3Nocmlua19ibG9ja3MgdG8gMAo+Pj4gICAgICBhbmQgY2xlYXJzIEYyRlNfTU9VTlRf UkVTRVJWRV9TSFJJTksgdXBvbiBzdWNjZXNzZnVsIHNocmluayBjb21wbGV0aW9uLAo+Pj4gICAg ICByZWxlYXNpbmcgYW55IHJlbWFpbmluZyByZXNlcnZhdGlvbi4KPj4+IDUuIEluIHN5c2ZzOiBy ZXNlcnZlZF9ibG9ja3MsIHN1YnRyYWN0cyByZXNlcnZlX3Nocmlua19ibG9ja3Mgd2hlbgo+Pj4g ICAgICB2YWxpZGF0aW5nIHRoZSB1cHBlciBsaW1pdCBvZiBjb25maWd1cmFibGUgcmVzZXJ2ZWQg YmxvY2tzLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IERhZWhvIEplb25nIDxkYWVob2plb25nQGdv b2dsZS5jb20+Cj4+PiAtLS0KPj4+IHYyOgo+Pj4gICAgLSBTcGxpdCBvdXQgbW91bnQgb3B0aW9u IGJpdG1hc2sgZXhwYW5zaW9uIChCSVRfVUxMKSBpbnRvIGEgc2VwYXJhdGUKPj4+ICAgICAgcHJl cmVxdWlzaXRlIHBhdGNoIChQYXRjaCAxLzIpLgo+Pj4gLS0tCj4+PiAgICBEb2N1bWVudGF0aW9u L2ZpbGVzeXN0ZW1zL2YyZnMucnN0IHwgIDcgKysrKysKPj4+ICAgIGZzL2YyZnMvZjJmcy5oICAg ICAgICAgICAgICAgICAgICAgfCAgOSArKysrKysKPj4+ICAgIGZzL2YyZnMvZ2MuYyAgICAgICAg ICAgICAgICAgICAgICAgfCAgNSArKysrCj4+PiAgICBmcy9mMmZzL3N1cGVyLmMgICAgICAgICAg ICAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+PiAgICBmcy9m MmZzL3N5c2ZzLmMgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKy0tCj4+PiAgICA1IGZp bGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlm ZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJmcy5yc3QgYi9Eb2N1bWVudGF0 aW9uL2ZpbGVzeXN0ZW1zL2YyZnMucnN0Cj4+PiBpbmRleCA3NzEyMTZmNDUyMDcuLmRiZGM1ZDVh ODNhZCAxMDA2NDQKPj4+IC0tLSBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJmcy5yc3QK Pj4+ICsrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZjJmcy5yc3QKPj4+IEBAIC0xOTEs NiArMTkxLDEzIEBAIHJlc2VydmVfbm9kZT0lZCAgICAgICAgICAgU3VwcG9ydCBjb25maWd1cmlu ZyByZXNlcnZlZCBub2RlcyB3aGljaCBhcmUgdXNlZCBmb3IKPj4+ICAgICAgICAgICAgICAgICAg ICAgICAgIGdpZCwgdGhlIGRlZmF1bHQgbGltaXQgaXMgMTIuNSUgb2YgYWxsIG5vZGVzLgo+Pj4g ICAgcmVzdWlkPSVkICAgICAgICAgICAgVGhlIHVzZXIgSUQgd2hpY2ggbWF5IHVzZSB0aGUgcmVz ZXJ2ZWQgYmxvY2tzIGFuZCBub2Rlcy4KPj4+ICAgIHJlc2dpZD0lZCAgICAgICAgICAgIFRoZSBn cm91cCBJRCB3aGljaCBtYXkgdXNlIHRoZSByZXNlcnZlZCBibG9ja3MgYW5kIG5vZGVzLgo+Pj4g K3Jlc2VydmVfc2hyaW5rPSVkICAgICBTdXBwb3J0IHByZS1yZXNlcnZpbmcgc3BhY2UgZm9yIHN1 YnNlcXVlbnQgZmlsZXN5c3RlbQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICBzaHJpbmthZ2Ug KGUuZy4gZHVyaW5nIHBhcnRpdGlvbiByZXNpemluZyBvciBGT1RBKSwKPj4+ICsgICAgICAgICAg ICAgICAgICAgICAgdW5pdDogYmxvY2tzLiBVbmxpa2UgcmVzZXJ2ZV9yb290LCBhbGxvY2F0aW9u cyBmcm9tCj4+PiArICAgICAgICAgICAgICAgICAgICAgIHRoaXMgcmVzZXJ2ZWQgc3BhY2Ugc3Ry aWN0bHkgcmVqZWN0IGFsbCBjYWxsZXJzCj4+PiArICAgICAgICAgICAgICAgICAgICAgIChpbmNs dWRpbmcgcm9vdCAvIENBUF9TWVNfUkVTT1VSQ0UpLiBPbmNlIHRoZQo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICBmaWxlc3lzdGVtIGlzIHN1Y2Nlc3NmdWxseSBzaHJ1bmsgdmlhIHJlc2l6ZSwg dGhpcwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBpcyBhdXRvbWF0aWNhbGx5IHJl c2V0IHRvIDAuCj4+PiAgICBmYXVsdF9pbmplY3Rpb249JWQgICBFbmFibGUgZmF1bHQgaW5qZWN0 aW9uIGluIGFsbCBzdXBwb3J0ZWQgdHlwZXMgd2l0aAo+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgc3BlY2lmaWVkIGluamVjdGlvbiByYXRlLgo+Pj4gICAgZmF1bHRfdHlwZT0lZCAgICAgICAg ICAgICAgICBTdXBwb3J0IGNvbmZpZ3VyaW5nIGZhdWx0IGluamVjdGlvbiB0eXBlLCBzaG91bGQg YmUKPj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCj4+PiBp bmRleCA0YWFmMjlkZTNmNmYuLjQ4YTkxNzcxYmU5NSAxMDA2NDQKPj4+IC0tLSBhL2ZzL2YyZnMv ZjJmcy5oCj4+PiArKysgYi9mcy9mMmZzL2YyZnMuaAo+Pj4gQEAgLTE0NSw2ICsxNDUsNyBAQCBl bnVtIGYyZnNfbW91bnRfb3B0IHsKPj4+ICAgICAgICAgKi8KPj4+ICAgICAgICBGMkZTX01PVU5U X0xBWllUSU1FLAo+Pj4gICAgICAgIEYyRlNfTU9VTlRfUkVTRVJWRV9OT0RFLAo+Pj4gKyAgICAg RjJGU19NT1VOVF9SRVNFUlZFX1NIUklOSywKPj4+ICAgIH07Cj4+Pgo+Pj4gICAgI2RlZmluZSBG MkZTX09QVElPTihzYmkpICAgICgoc2JpKS0+bW91bnRfb3B0KQo+Pj4gQEAgLTIyNiw2ICsyMjcs NyBAQCBzdHJ1Y3QgZjJmc19tb3VudF9pbmZvIHsKPj4+ICAgICAgICB1bnNpZ25lZCBsb25nIGxv bmcgb3B0Owo+Pj4gICAgICAgIGJsb2NrX3Qgcm9vdF9yZXNlcnZlZF9ibG9ja3M7ICAgLyogcm9v dCByZXNlcnZlZCBibG9ja3MgKi8KPj4+ICAgICAgICBibG9ja190IHJvb3RfcmVzZXJ2ZWRfbm9k ZXM7ICAgIC8qIHJvb3QgcmVzZXJ2ZWQgbm9kZXMgKi8KPj4+ICsgICAgIGJsb2NrX3QgcmVzZXJ2 ZV9zaHJpbmtfYmxvY2tzOyAgLyogcmVzZXJ2ZSBibG9ja3MgZm9yIHNocmluayAqLwo+Pj4gICAg ICAgIGt1aWRfdCBzX3Jlc3VpZDsgICAgICAgICAgICAgICAgLyogcmVzZXJ2ZWQgYmxvY2tzIGZv ciB1aWQgKi8KPj4+ICAgICAgICBrZ2lkX3Qgc19yZXNnaWQ7ICAgICAgICAgICAgICAgIC8qIHJl c2VydmVkIGJsb2NrcyBmb3IgZ2lkICovCj4+PiAgICAgICAgaW50IGFjdGl2ZV9sb2dzOyAgICAg ICAgICAgICAgICAvKiAjIG9mIGFjdGl2ZSBsb2dzICovCj4+PiBAQCAtMjY1OCw2ICsyNjYwLDEz IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGdldF9hdmFpbGFibGVfYmxvY2tfY291bnQo c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+Pj4gICAgICAgIGlmICh0ZXN0X29wdChzYmksIFJF U0VSVkVfUk9PVCkgJiYgIV9fYWxsb3dfcmVzZXJ2ZWRfcm9vdChzYmksIGlub2RlLCBjYXApKQo+ Pj4gICAgICAgICAgICAgICAgYXZhaWxfdXNlcl9ibG9ja19jb3VudCAtPSBGMkZTX09QVElPTihz YmkpLnJvb3RfcmVzZXJ2ZWRfYmxvY2tzOwo+Pj4KPj4+ICsgICAgIGlmICh0ZXN0X29wdChzYmks IFJFU0VSVkVfU0hSSU5LKSkgewo+Pj4gKyAgICAgICAgICAgICBpZiAoYXZhaWxfdXNlcl9ibG9j a19jb3VudCA+IEYyRlNfT1BUSU9OKHNiaSkucmVzZXJ2ZV9zaHJpbmtfYmxvY2tzKQo+Pj4gKyAg ICAgICAgICAgICAgICAgICAgIGF2YWlsX3VzZXJfYmxvY2tfY291bnQgLT0gRjJGU19PUFRJT04o c2JpKS5yZXNlcnZlX3Nocmlua19ibG9ja3M7Cj4+PiArICAgICAgICAgICAgIGVsc2UKPj4+ICsg ICAgICAgICAgICAgICAgICAgICBhdmFpbF91c2VyX2Jsb2NrX2NvdW50ID0gMDsKPj4+ICsgICAg IH0KPj4+ICsKPj4+ICAgICAgICBpZiAodW5saWtlbHkoaXNfc2JpX2ZsYWdfc2V0KHNiaSwgU0JJ X0NQX0RJU0FCTEVEKSkpIHsKPj4+ICAgICAgICAgICAgICAgIGlmIChhdmFpbF91c2VyX2Jsb2Nr X2NvdW50ID4gc2JpLT51bnVzYWJsZV9ibG9ja19jb3VudCkKPj4+ICAgICAgICAgICAgICAgICAg ICAgICAgYXZhaWxfdXNlcl9ibG9ja19jb3VudCAtPSBzYmktPnVudXNhYmxlX2Jsb2NrX2NvdW50 Owo+Pj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZ2MuYyBiL2ZzL2YyZnMvZ2MuYwo+Pj4gaW5kZXgg YmMyMmRkZTFjYjMwLi41NTZjNDc5MzQ3OGQgMTAwNjQ0Cj4+PiAtLS0gYS9mcy9mMmZzL2djLmMK Pj4+ICsrKyBiL2ZzL2YyZnMvZ2MuYwo+Pj4gQEAgLTI0OTIsNiArMjQ5MiwxMSBAQCBpbnQgZjJm c19yZXNpemVfZnMoc3RydWN0IGZpbGUgKmZpbHAsIF9fdTY0IGJsb2NrX2NvdW50KQo+Pj4gICAg ICAgICAgICAgICAgc3Bpbl9sb2NrKCZzYmktPnN0YXRfbG9jayk7Cj4+PiAgICAgICAgICAgICAg ICBzYmktPnVzZXJfYmxvY2tfY291bnQgKz0gc2hydW5rX2Jsb2NrczsKPj4+ICAgICAgICAgICAg ICAgIHNwaW5fdW5sb2NrKCZzYmktPnN0YXRfbG9jayk7Cj4+PiArICAgICB9IGVsc2UgaWYgKHRl c3Rfb3B0KHNiaSwgUkVTRVJWRV9TSFJJTkspKSB7Cj4+PiArICAgICAgICAgICAgIHNwaW5fbG9j aygmc2JpLT5zdGF0X2xvY2spOwo+Pj4gKyAgICAgICAgICAgICBGMkZTX09QVElPTihzYmkpLnJl c2VydmVfc2hyaW5rX2Jsb2NrcyA9IDA7Cj4+PiArICAgICAgICAgICAgIGNsZWFyX29wdChzYmks IFJFU0VSVkVfU0hSSU5LKTsKPj4+ICsgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnNiaS0+c3Rh dF9sb2NrKTsKPj4+ICAgICAgICB9Cj4+PiAgICBvdXRfZXJyOgo+Pj4gICAgICAgIGYyZnNfdXBf d3JpdGVfdHJhY2UoJnNiaS0+Y3BfZ2xvYmFsX3NlbSwgJmNsYyk7Cj4+PiBkaWZmIC0tZ2l0IGEv ZnMvZjJmcy9zdXBlci5jIGIvZnMvZjJmcy9zdXBlci5jCj4+PiBpbmRleCBhNWUxMDliZGNlYmMu LjU4ZjMzNzUwYjJhOCAxMDA2NDQKPj4+IC0tLSBhL2ZzL2YyZnMvc3VwZXIuYwo+Pj4gKysrIGIv ZnMvZjJmcy9zdXBlci5jCj4+PiBAQCAtMTk2LDYgKzE5Niw3IEBAIGVudW0gewo+Pj4gICAgICAg IE9wdF9kYXRhX2ZsdXNoLAo+Pj4gICAgICAgIE9wdF9yZXNlcnZlX3Jvb3QsCj4+PiAgICAgICAg T3B0X3Jlc2VydmVfbm9kZSwKPj4+ICsgICAgIE9wdF9yZXNlcnZlX3NocmluaywKPj4+ICAgICAg ICBPcHRfcmVzZ2lkLAo+Pj4gICAgICAgIE9wdF9yZXN1aWQsCj4+PiAgICAgICAgT3B0X21vZGUs Cj4+PiBAQCAtMzI4LDYgKzMyOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZnNfcGFyYW1ldGVy X3NwZWMgZjJmc19wYXJhbV9zcGVjc1tdID0gewo+Pj4gICAgICAgIGZzcGFyYW1fZmxhZygiZGF0 YV9mbHVzaCIsIE9wdF9kYXRhX2ZsdXNoKSwKPj4+ICAgICAgICBmc3BhcmFtX3UzMigicmVzZXJ2 ZV9yb290IiwgT3B0X3Jlc2VydmVfcm9vdCksCj4+PiAgICAgICAgZnNwYXJhbV91MzIoInJlc2Vy dmVfbm9kZSIsIE9wdF9yZXNlcnZlX25vZGUpLAo+Pj4gKyAgICAgZnNwYXJhbV91MzIoInJlc2Vy dmVfc2hyaW5rIiwgT3B0X3Jlc2VydmVfc2hyaW5rKSwKPj4+ICAgICAgICBmc3BhcmFtX2dpZCgi cmVzZ2lkIiwgT3B0X3Jlc2dpZCksCj4+PiAgICAgICAgZnNwYXJhbV91aWQoInJlc3VpZCIsIE9w dF9yZXN1aWQpLAo+Pj4gICAgICAgIGZzcGFyYW1fZW51bSgibW9kZSIsIE9wdF9tb2RlLCBmMmZz X3BhcmFtX21vZGUpLAo+Pj4gQEAgLTQwNyw2ICs0MDksNyBAQCBzdGF0aWMgbWF0Y2hfdGFibGVf dCBmMmZzX2NoZWNrcG9pbnRfdG9rZW5zID0gewo+Pj4gICAgI2RlZmluZSBGMkZTX1NQRUNfbG9v a3VwX21vZGUgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI0KQo+Pj4gICAgI2RlZmluZSBG MkZTX1NQRUNfcmVzZXJ2ZV9ub2RlICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI1KQo+Pj4g ICAgI2RlZmluZSBGMkZTX1NQRUNfcmVzaXphYmxlX3RhaWxfc2Vjbm8gICAgICAgICAgICAgICgx IDw8IDI2KQo+Pj4gKyNkZWZpbmUgRjJGU19TUEVDX3Jlc2VydmVfc2hyaW5rICAgICAgICAgICAg ICgxIDw8IDI3KQo+Pj4KPj4+ICAgIHN0cnVjdCBmMmZzX2ZzX2NvbnRleHQgewo+Pj4gICAgICAg IHN0cnVjdCBmMmZzX21vdW50X2luZm8gaW5mbzsKPj4+IEBAIC01NTAsNiArNTUzLDI3IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBsaW1pdF9yZXNlcnZlX3Jvb3Qoc3RydWN0IGYyZnNfc2JfaW5mbyAq c2JpKQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRjJGU19P UFRJT04oc2JpKS5zX3Jlc2dpZCkpOwo+Pj4gICAgfQo+Pj4KPj4+ICtzdGF0aWMgaW5saW5lIHZv aWQgbGltaXRfcmVzZXJ2ZV9zaHJpbmsoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+Pj4gK3sK Pj4+ICsgICAgIGJsb2NrX3QgYmxvY2tfbGltaXQ7Cj4+PiArCj4+PiArICAgICBpZiAoIXRlc3Rf b3B0KHNiaSwgUkVTRVJWRV9TSFJJTkspKQo+Pj4gKyAgICAgICAgICAgICByZXR1cm47Cj4+PiAr Cj4+PiArICAgICBibG9ja19saW1pdCA9IHNiaS0+dXNlcl9ibG9ja19jb3VudCAtIHNiaS0+cmVz ZXJ2ZWRfYmxvY2tzOwo+Pj4gKyAgICAgaWYgKHRlc3Rfb3B0KHNiaSwgUkVTRVJWRV9ST09UKSkg ewo+Pj4gKyAgICAgICAgICAgICBpZiAoYmxvY2tfbGltaXQgPiBGMkZTX09QVElPTihzYmkpLnJv b3RfcmVzZXJ2ZWRfYmxvY2tzKQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGJsb2NrX2xpbWl0 IC09IEYyRlNfT1BUSU9OKHNiaSkucm9vdF9yZXNlcnZlZF9ibG9ja3M7Cj4+PiArICAgICAgICAg ICAgIGVsc2UKPj4+ICsgICAgICAgICAgICAgICAgICAgICBibG9ja19saW1pdCA9IDA7Cj4+PiAr ICAgICB9Cj4+PiArICAgICBpZiAoRjJGU19PUFRJT04oc2JpKS5yZXNlcnZlX3Nocmlua19ibG9j a3MgPiBibG9ja19saW1pdCkgewo+Pj4gKyAgICAgICAgICAgICBGMkZTX09QVElPTihzYmkpLnJl c2VydmVfc2hyaW5rX2Jsb2NrcyA9IGJsb2NrX2xpbWl0Owo+Pj4gKyAgICAgICAgICAgICBmMmZz X2luZm8oc2JpLCAiUmVkdWNlIHJlc2VydmVkIGJsb2NrcyBmb3Igc2hyaW5rID0gJXUiLAo+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgRjJGU19PUFRJT04oc2JpKS5yZXNlcnZlX3Nocmlua19i bG9ja3MpOwo+Pj4gKyAgICAgfQo+Pj4gK30KPj4+ICsKPj4+ICAgIHN0YXRpYyBpbmxpbmUgdm9p ZCBhZGp1c3RfdW51c2FibGVfY2FwX3BlcmMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+Pj4g ICAgewo+Pj4gICAgICAgIGlmICghRjJGU19PUFRJT04oc2JpKS51bnVzYWJsZV9jYXBfcGVyYykK Pj4+IEBAIC05NTMsNiArOTc3LDE0IEBAIHN0YXRpYyBpbnQgZjJmc19wYXJzZV9wYXJhbShzdHJ1 Y3QgZnNfY29udGV4dCAqZmMsIHN0cnVjdCBmc19wYXJhbWV0ZXIgKnBhcmFtKQo+Pj4gICAgICAg ICAgICAgICAgRjJGU19DVFhfSU5GTyhjdHgpLnJvb3RfcmVzZXJ2ZWRfbm9kZXMgPSByZXN1bHQu dWludF8zMjsKPj4+ICAgICAgICAgICAgICAgIGN0eC0+c3BlY19tYXNrIHw9IEYyRlNfU1BFQ19y ZXNlcnZlX25vZGU7Cj4+PiAgICAgICAgICAgICAgICBicmVhazsKPj4+ICsgICAgIGNhc2UgT3B0 X3Jlc2VydmVfc2hyaW5rOgo+Pj4gKyAgICAgICAgICAgICBpZiAocmVzdWx0LnVpbnRfMzIpCj4+ PiArICAgICAgICAgICAgICAgICAgICAgY3R4X3NldF9vcHQoY3R4LCBGMkZTX01PVU5UX1JFU0VS VkVfU0hSSU5LKTsKPj4+ICsgICAgICAgICAgICAgZWxzZQo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgIGN0eF9jbGVhcl9vcHQoY3R4LCBGMkZTX01PVU5UX1JFU0VSVkVfU0hSSU5LKTsKPj4+ICsg ICAgICAgICAgICAgRjJGU19DVFhfSU5GTyhjdHgpLnJlc2VydmVfc2hyaW5rX2Jsb2NrcyA9IHJl c3VsdC51aW50XzMyOwo+Pj4gKyAgICAgICAgICAgICBjdHgtPnNwZWNfbWFzayB8PSBGMkZTX1NQ RUNfcmVzZXJ2ZV9zaHJpbms7Cj4+PiArICAgICAgICAgICAgIGJyZWFrOwo+Pj4gICAgICAgIGNh c2UgT3B0X3Jlc3VpZDoKPj4+ICAgICAgICAgICAgICAgIEYyRlNfQ1RYX0lORk8oY3R4KS5zX3Jl c3VpZCA9IHJlc3VsdC51aWQ7Cj4+PiAgICAgICAgICAgICAgICBjdHgtPnNwZWNfbWFzayB8PSBG MkZTX1NQRUNfcmVzdWlkOwo+Pj4gQEAgLTE3NzUsNiArMTgwNyw5IEBAIHN0YXRpYyB2b2lkIGYy ZnNfYXBwbHlfb3B0aW9ucyhzdHJ1Y3QgZnNfY29udGV4dCAqZmMsIHN0cnVjdCBzdXBlcl9ibG9j ayAqc2IpCj4+PiAgICAgICAgaWYgKGN0eC0+c3BlY19tYXNrICYgRjJGU19TUEVDX3Jlc2VydmVf bm9kZSkKPj4+ICAgICAgICAgICAgICAgIEYyRlNfT1BUSU9OKHNiaSkucm9vdF9yZXNlcnZlZF9u b2RlcyA9Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGMkZTX0NU WF9JTkZPKGN0eCkucm9vdF9yZXNlcnZlZF9ub2RlczsKPj4+ICsgICAgIGlmIChjdHgtPnNwZWNf bWFzayAmIEYyRlNfU1BFQ19yZXNlcnZlX3NocmluaykKPj4+ICsgICAgICAgICAgICAgRjJGU19P UFRJT04oc2JpKS5yZXNlcnZlX3Nocmlua19ibG9ja3MgPQo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGMkZTX0NUWF9JTkZPKGN0eCkucmVzZXJ2ZV9zaHJpbmtfYmxv Y2tzOwo+Pj4gICAgICAgIGlmIChjdHgtPnNwZWNfbWFzayAmIEYyRlNfU1BFQ19yZXNnaWQpCj4+ PiAgICAgICAgICAgICAgICBGMkZTX09QVElPTihzYmkpLnNfcmVzZ2lkID0gRjJGU19DVFhfSU5G TyhjdHgpLnNfcmVzZ2lkOwo+Pj4gICAgICAgIGlmIChjdHgtPnNwZWNfbWFzayAmIEYyRlNfU1BF Q19yZXN1aWQpCj4+PiBAQCAtMjMwMCw2ICsyMzM1LDEzIEBAIHN0YXRpYyBpbnQgZjJmc19zdGF0 ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKQo+Pj4gICAgICAg IGJ1Zi0+Zl9iZnJlZSA9IHVzZXJfYmxvY2tfY291bnQgLSB2YWxpZF91c2VyX2Jsb2NrcyhzYmkp IC0KPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Jp LT5jdXJyZW50X3Jlc2VydmVkX2Jsb2NrczsKPj4+Cj4+PiArICAgICBpZiAodGVzdF9vcHQoc2Jp LCBSRVNFUlZFX1NIUklOSykpIHsKPj4+ICsgICAgICAgICAgICAgaWYgKGJ1Zi0+Zl9iZnJlZSA+ IEYyRlNfT1BUSU9OKHNiaSkucmVzZXJ2ZV9zaHJpbmtfYmxvY2tzKQo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgIGJ1Zi0+Zl9iZnJlZSAtPSBGMkZTX09QVElPTihzYmkpLnJlc2VydmVfc2hyaW5r X2Jsb2NrczsKPj4+ICsgICAgICAgICAgICAgZWxzZQo+Pj4gKyAgICAgICAgICAgICAgICAgICAg IGJ1Zi0+Zl9iZnJlZSA9IDA7Cj4+PiArICAgICB9Cj4+PiArCj4+PiAgICAgICAgaWYgKHVubGlr ZWx5KGJ1Zi0+Zl9iZnJlZSA8PSBzYmktPnVudXNhYmxlX2Jsb2NrX2NvdW50KSkKPj4+ICAgICAg ICAgICAgICAgIGJ1Zi0+Zl9iZnJlZSA9IDA7Cj4+PiAgICAgICAgZWxzZQo+Pj4gQEAgLTI1MjQs NiArMjU2Niw5IEBAIHN0YXRpYyBpbnQgZjJmc19zaG93X29wdGlvbnMoc3RydWN0IHNlcV9maWxl ICpzZXEsIHN0cnVjdCBkZW50cnkgKnJvb3QpCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGMkZTX09QVElPTihzYmkpLnNfcmVzdWlkKSwKPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmcm9tX2tnaWRfbXVuZ2VkKCZpbml0X3VzZXJfbnMsCj4+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGMkZTX09QVElPTihzYmkpLnNf cmVzZ2lkKSk7Cj4+PiArICAgICBpZiAodGVzdF9vcHQoc2JpLCBSRVNFUlZFX1NIUklOSykpCj4+ PiArICAgICAgICAgICAgIHNlcV9wcmludGYoc2VxLCAiLHJlc2VydmVfc2hyaW5rPSV1IiwKPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEYyRlNfT1BUSU9OKHNiaSkucmVzZXJ2ZV9z aHJpbmtfYmxvY2tzKTsKPj4+ICAgICNpZmRlZiBDT05GSUdfRjJGU19GQVVMVF9JTkpFQ1RJT04K Pj4+ICAgICAgICBpZiAodGVzdF9vcHQoc2JpLCBGQVVMVF9JTkpFQ1RJT04pKSB7Cj4+PiAgICAg ICAgICAgICAgICBzZXFfcHJpbnRmKHNlcSwgIixmYXVsdF9pbmplY3Rpb249JXUiLAo+Pj4gQEAg LTMxMDUsNiArMzE1MCw3IEBAIHN0YXRpYyBpbnQgX19mMmZzX3JlbW91bnQoc3RydWN0IGZzX2Nv bnRleHQgKmZjLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQo+Pj4KPj4+ICAgICAgICBhZGp1c3Rf cGlubmVkX2FyZWFfYm91bmRhcnkoc2JpKTsKPj4+ICAgICAgICBsaW1pdF9yZXNlcnZlX3Jvb3Qo c2JpKTsKPj4+ICsgICAgIGxpbWl0X3Jlc2VydmVfc2hyaW5rKHNiaSk7Cj4+PiAgICAgICAgZmMt PnNiX2ZsYWdzID0gKGZsYWdzICYgflNCX0xBWllUSU1FKSB8IChzYi0+c19mbGFncyAmIFNCX0xB WllUSU1FKTsKPj4+Cj4+PiAgICAgICAgc2JpLT51bW91bnRfbG9ja19ob2xkZXIgPSBOVUxMOwo+ Pj4gQEAgLTUzMjIsNiArNTM2OCw3IEBAIHN0YXRpYyBpbnQgZjJmc19maWxsX3N1cGVyKHN0cnVj dCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKPj4+ICAgICAgICBzYmkt PmN1cnJlbnRfcmVzZXJ2ZWRfYmxvY2tzID0gMDsKPj4+ICAgICAgICBzYmktPmFsaWFzX3Jlc2Vy dmVkX2Jsb2NrcyA9IDA7Cj4+PiAgICAgICAgbGltaXRfcmVzZXJ2ZV9yb290KHNiaSk7Cj4+PiAr ICAgICBsaW1pdF9yZXNlcnZlX3NocmluayhzYmkpOwo+Pj4gICAgICAgIGFkanVzdF91bnVzYWJs ZV9jYXBfcGVyYyhzYmkpOwo+Pj4KPj4+ICAgICAgICBmMmZzX2luaXRfZXh0ZW50X2NhY2hlX2lu Zm8oc2JpKTsKPj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL3N5c2ZzLmMgYi9mcy9mMmZzL3N5c2Zz LmMKPj4+IGluZGV4IGFhY2E5ZWQ5YjE2OS4uZDYxOTQwZDA5NWI0IDEwMDY0NAo+Pj4gLS0tIGEv ZnMvZjJmcy9zeXNmcy5jCj4+PiArKysgYi9mcy9mMmZzL3N5c2ZzLmMKPj4+IEBAIC01OTEsOSAr NTkxLDE4IEBAIHN0YXRpYyBzc2l6ZV90IF9fc2JpX3N0b3JlKHN0cnVjdCBmMmZzX2F0dHIgKmEs Cj4+PiAgICAgICAgfQo+Pj4gICAgI2VuZGlmCj4+PiAgICAgICAgaWYgKGEtPnN0cnVjdF90eXBl ID09IFJFU0VSVkVEX0JMT0NLUykgewo+Pj4gKyAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxp bWl0Owo+Pj4gKwo+Pj4gICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZzYmktPnN0YXRfbG9jayk7 Cj4+PiAtICAgICAgICAgICAgIGlmICh0ID4gKHVuc2lnbmVkIGxvbmcpKHNiaS0+dXNlcl9ibG9j a19jb3VudCAtCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGMkZTX09QVElPTihz YmkpLnJvb3RfcmVzZXJ2ZWRfYmxvY2tzKSkgewo+Pj4gKyAgICAgICAgICAgICBsaW1pdCA9IHNi aS0+dXNlcl9ibG9ja19jb3VudCAtCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG MkZTX09QVElPTihzYmkpLnJvb3RfcmVzZXJ2ZWRfYmxvY2tzOwo+Pj4gKyAgICAgICAgICAgICBp ZiAodGVzdF9vcHQoc2JpLCBSRVNFUlZFX1NIUklOSykpIHsKPj4+ICsgICAgICAgICAgICAgICAg ICAgICBpZiAobGltaXQgPiBGMkZTX09QVElPTihzYmkpLnJlc2VydmVfc2hyaW5rX2Jsb2NrcykK Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0IC09IEYyRlNfT1BUSU9OKHNi aSkucmVzZXJ2ZV9zaHJpbmtfYmxvY2tzOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGVsc2UK Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ID0gMDsKPj4+ICsgICAgICAg ICAgICAgfQo+Pj4gKyAgICAgICAgICAgICBpZiAodCA+IGxpbWl0KSB7Cj4+PiAgICAgICAgICAg ICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZzYmktPnN0YXRfbG9jayk7Cj4+PiAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pj4gICAgICAgICAgICAgICAgfQo+PgoKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1mMmZz LWRldmVsIG1haWxpbmcgbGlzdApMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5l dApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9saW51eC1mMmZz LWRldmVsCg==