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 27246CC6B38 for ; Fri, 16 Oct 2026 11:26:02 +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=w3/pbQ3YPunwrniz5ZuMftRNFx1E37FhKbzW++hjRF0=; b=huJCchxGdCQOUg/d5zAcQ6nxV8 oZJYvrplfJfypfgA5sZvX5Nggb2pxpe2Vf7iOHK+4BfotGI5lmLF8/wmO1t92cZhmfnmwe1/Elgmy URaCc424LUIJtGV8HdEJX4MdCaFMw6+YP6pO/cTVJlVN8B6ENyIilWvEWKMB+iiFMqgw=; Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com) by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1xHg4U-0006jr-AS; Fri, 16 Oct 2026 11:25:58 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1xHg4S-0006jk-UV for linux-f2fs-devel@lists.sourceforge.net; Fri, 16 Oct 2026 11:25:56 +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=bhTqRiskPttZ//Qh78NoZTiKwmkRVRPDuZMSTT8GKac=; b=b+zJw81b70RNEE1pLGSjAxJddM fvgx9FD+ACtrQSUeUs82pth4Bv21Zk7OnoqqJbXkEMvecWrxT+p52X4SjG7pxtLYbNsrTJA1bFf1W dDPLJnN4SMr30F2fw4/YJMMHFS/6qZV9lBUXSi9zqgQIbHyj9OKbLRAuPpvDgsUe0k7M=; 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=bhTqRiskPttZ//Qh78NoZTiKwmkRVRPDuZMSTT8GKac=; b=BQARZJ3rpbjlEoU1mkJ2nR3740 VZxHOn2aAE2dYx6jEYU6BWDOW9UpNcWKLdTkC5DH82rlmWN/m1C/ZnyPLMt/tJUobXcblf0xAiE1O /5jd9FthcG4dgsyG7f+RPSUgA/lprf/GbGzOVh4ENx6bSSHXypR0OaF+G3tbNMjI9a5Q=; Received: from sea.source.kernel.org ([172.234.252.31]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1xHg4R-0004sk-Oz for linux-f2fs-devel@lists.sourceforge.net; Fri, 16 Oct 2026 11:25:56 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 59BD341785; Fri, 16 Oct 2026 11:25:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AEA861F000C4; Fri, 16 Oct 2026 11:25:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792149950; bh=bhTqRiskPttZ//Qh78NoZTiKwmkRVRPDuZMSTT8GKac=; h=Date:Cc:Subject:To:References:From:In-Reply-To; b=SKDOhBaJIdoNOFoY4lKUq3AnOCca4a44ZflyKjZC6Ec8mJ/+G/qiGkk5ShG6QkN5B tKOhPAcZzix8EiWi3oPgm4bNyseBNZVE54EXIkxdtbQFoRoTdVolePccbVN+5jigTL kgmFl3JIrbCPaSygqjZJQgz8ckokQ2S44b7gj1/95hvmEBr4q75h1VWZdiHgJUUd+H d2IWEFhrPvJlFtxFEfANWXp0xPqBTHk2E7bf0HdSH1Li6GUlM9cTX3aMyMAuUuei7O OyKPkKfPtk8zkViMwB4n3BpnwgSk5N6MFsnUT06FVk3LHkSmkr0tKEDTObIZjLz8gD yUan4gs1XWqmA== Message-ID: Date: Fri, 16 Oct 2026 19:25:46 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Nanzhe Zhao , linux-f2fs-devel@lists.sourceforge.net, Jaegeuk Kim References: <20261014064445.2835813-1-zhaonanzhe@xiaomi.com> <20261014064445.2835813-9-zhaonanzhe@xiaomi.com> Content-Language: en-US In-Reply-To: <20261014064445.2835813-9-zhaonanzhe@xiaomi.com> X-Headers-End: 1xHg4R-0004sk-Oz Subject: Re: [f2fs-dev] [PATCH v5 08/16] f2fs: make GC migration large-folio aware 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: Barry Song , Juan Yescas , Daeho Jeong , Dev Jain , David Hildenbrand , linux-kernel@vger.kernel.org, Pengfei Li , Bo Zhang , Kalesh Singh , Nanzhe Zhao , Nanzhe Zhao , Ryan Roberts Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net T24gMTAvMTQvMjYgMTQ6NDQsIE5hbnpoZSBaaGFvIHdyb3RlOgo+IEdDIGNhbiBvcGVyYXRlIG9u IGEgNEsgYmxvY2sgdGhhdCBpcyBjYWNoZWQgaW5zaWRlIGEgbGFyZ2UgZm9saW8uCj4gVGhlIGRh dGEgbG9va3VwIGhlbHBlcnMgdGhlcmVmb3JlIG5lZWQgdG8gdGVzdCBhbmQgdXBkYXRlIHVwdG9k YXRlCj4gc3RhdGUgZm9yIHRoZSBhZGRyZXNzZWQgc3VicGFnZSBpbnN0ZWFkIG9mIHJlamVjdGlu ZyBsYXJnZSBmb2xpb3Mgb3IKPiB0cmVhdGluZyB0aGUgd2hvbGUgZm9saW8gYXMgdGhlIHRhcmdl dCBibG9jay4KPiAKPiBMZXQgZjJmc19nZXRfcmVhZF9kYXRhX2ZvbGlvKCkgYW5kIGYyZnNfZ2V0 X2xvY2tfZGF0YV9mb2xpbygpIHRvIHVzZQo+IHN1YnBhZ2UgdXB0b2RhdGUgc3RhdGUuIFN1Ym1p dCBzaW5nbGUtYmxvY2sgcmVhZHMgYXQgdGhlIHJlcXVlc3RlZAo+IGZvbGlvIG9mZnNldCBhbmQg emVybyBvbmx5IHRoZSBhZGRyZXNzZWQgNEsgcmFuZ2UgZm9yIE5FV19BRERSLgo+IAo+IEFsc28g dXBkYXRlIGBtb3ZlX2RhdGFfcGFnZWAgdG8gbWFyaywgY2xlYXIsIGFuZCByZXN0b3JlIGRpcnR5 Cj4gc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3VicGFnZSwgYW5kIHN1Ym1pdCB3cml0ZSBJL08gd2l0 aCB0aGUgc3VicGFnZQo+IG9mZnNldCByZWNvcmRlZCBpbiBmMmZzX2lvX2luZm8uCj4gCj4gU2ln bmVkLW9mZi1ieTogTmFuemhlIFpoYW8gPHpoYW9uYW56aGVAeGlhb21pLmNvbT4KPiAtLS0KPiAg IGZzL2YyZnMvZGF0YS5jICAgIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLQo+ICAgZnMvZjJmcy9mMmZzLmggICAgfCAgMSArCj4gICBmcy9mMmZzL2dj LmMgICAgICB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+ICAgZnMv ZjJmcy9zZWdtZW50LmMgfCAgMiArLQo+ICAgNCBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25z KCspLCAyMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9kYXRhLmMgYi9m cy9mMmZzL2RhdGEuYwo+IGluZGV4IGI1YzA0ODEzNGUwMC4uNzEwMjEzZmVhN2E2IDEwMDY0NAo+ IC0tLSBhL2ZzL2YyZnMvZGF0YS5jCj4gKysrIGIvZnMvZjJmcy9kYXRhLmMKPiBAQCAtMTYzMywy MCArMTYzMywxNiBAQCBzdHJ1Y3QgZm9saW8gKmYyZnNfZ2V0X3JlYWRfZGF0YV9mb2xpbyhzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4LAo+ICAgCXN0cnVjdCBkbm9kZV9vZl9kYXRh IGRuOwo+ICAgCXN0cnVjdCBmb2xpbyAqZm9saW87Cj4gICAJaW50IGVycjsKPiAtcmV0cnk6Cj4g Kwo+ICAgCWZvbGlvID0gZjJmc19ncmFiX2NhY2hlX2ZvbGlvKG1hcHBpbmcsIGluZGV4LCBmb3Jf d3JpdGUpOwo+ICAgCWlmIChJU19FUlIoZm9saW8pKQo+ICAgCQlyZXR1cm4gZm9saW87Cj4gICAK PiAgIAlpZiAoZm9saW9fdGVzdF9sYXJnZShmb2xpbykpIHsKPiAtCQlwZ29mZl90IGZvbGlvX2lu ZGV4ID0gbWFwcGluZ19hbGlnbl9pbmRleChtYXBwaW5nLCBpbmRleCk7Cj4gLQkJdW5zaWduZWQg bG9uZyBucl9wYWdlcyA9IGZvbGlvX25yX3BhZ2VzKGZvbGlvKTsKPiAtCj4gLQkJZjJmc19mb2xp b19wdXQoZm9saW8sIHRydWUpOwo+IC0JCWludmFsaWRhdGVfaW5vZGVfcGFnZXMyX3JhbmdlKG1h cHBpbmcsIGZvbGlvX2luZGV4LAo+IC0JCQkJZm9saW9faW5kZXggKyBucl9wYWdlcyAtIDEpOwo+ IC0JCWYyZnNfc2NoZWR1bGVfdGltZW91dChERUZBVUxUX1NDSEVEVUxFX1RJTUVPVVQpOwo+IC0J CWdvdG8gcmV0cnk7Cj4gKwkJaWYgKCFmMmZzX2Zmc19maW5kX29yX2FsbG9jKGZvbGlvKSkgewo+ ICsJCQllcnIgPSAtRU5PTUVNOwo+ICsJCQlnb3RvIHB1dF9lcnI7Cj4gKwkJfQo+ICAgCX0KPiAg IAo+ICAgCWlmIChmMmZzX2xvb2t1cF9yZWFkX2V4dGVudF9jYWNoZV9ibG9jayhpbm9kZSwgaW5k ZXgsCj4gQEAgLTE2ODIsNyArMTY3OCw3IEBAIHN0cnVjdCBmb2xpbyAqZjJmc19nZXRfcmVhZF9k YXRhX2ZvbGlvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHBnb2ZmX3QgaW5kZXgsCj4gICAJCWdvdG8g cHV0X2VycjsKPiAgIAl9Cj4gICBnb3RfaXQ6Cj4gLQlpZiAoZm9saW9fdGVzdF91cHRvZGF0ZShm b2xpbykpIHsKPiArCWlmIChmMmZzX2Zmc190ZXN0X2Jsa191cHRvZGF0ZShmb2xpbywgaW5kZXgp KSB7Cj4gICAJCWZvbGlvX3VubG9jayhmb2xpbyk7Cj4gICAJCXJldHVybiBmb2xpbzsKPiAgIAl9 Cj4gQEAgLTE2OTUsOSArMTY5MSwxMSBAQCBzdHJ1Y3QgZm9saW8gKmYyZnNfZ2V0X3JlYWRfZGF0 YV9mb2xpbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4LAo+ICAgCSAqIGYyZnNf aW5pdF9pbm9kZV9tZXRhZGF0YS4KPiAgIAkgKi8KPiAgIAlpZiAoZG4uZGF0YV9ibGthZGRyID09 IE5FV19BRERSKSB7Cj4gLQkJZm9saW9femVyb19zZWdtZW50KGZvbGlvLCAwLCBmb2xpb19zaXpl KGZvbGlvKSk7Cj4gLQkJaWYgKCFmb2xpb190ZXN0X3VwdG9kYXRlKGZvbGlvKSkKPiAtCQkJZm9s aW9fbWFya191cHRvZGF0ZShmb2xpbyk7Cj4gKwkJc2l6ZV90IG9mZnNldCA9IG9mZnNldF9pbl9m b2xpbyhmb2xpbywKPiArCQkJCQkJKGxvZmZfdClpbmRleCA8PCBQQUdFX1NISUZUKTsKPiArCj4g KwkJZm9saW9femVyb19zZWdtZW50KGZvbGlvLCBvZmZzZXQsIG9mZnNldCArIFBBR0VfU0laRSk7 Cj4gKwkJZjJmc19mZnNfbWFya19zdWJyYW5nZV91cHRvZGF0ZShmb2xpbywgb2Zmc2V0LCBQQUdF X1NJWkUpOwo+ICAgCQlmb2xpb191bmxvY2soZm9saW8pOwo+ICAgCQlyZXR1cm4gZm9saW87Cj4g ICAJfQo+IEBAIC0xNzU3LDcgKzE3NTUsOCBAQCBzdHJ1Y3QgZm9saW8gKmYyZnNfZ2V0X2xvY2tf ZGF0YV9mb2xpbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4LAo+ICAgCj4gICAJ Lyogd2FpdCBmb3IgcmVhZCBjb21wbGV0aW9uICovCj4gICAJZm9saW9fbG9jayhmb2xpbyk7Cj4g LQlpZiAodW5saWtlbHkoZm9saW8tPm1hcHBpbmcgIT0gbWFwcGluZyB8fCAhZm9saW9fdGVzdF91 cHRvZGF0ZShmb2xpbykpKSB7Cj4gKwlpZiAodW5saWtlbHkoZm9saW8tPm1hcHBpbmcgIT0gbWFw cGluZyB8fAo+ICsJCSAgICAhZjJmc19mZnNfdGVzdF9ibGtfdXB0b2RhdGUoZm9saW8sIGluZGV4 KSkpIHsKPiAgIAkJZjJmc19mb2xpb19wdXQoZm9saW8sIHRydWUpOwo+ICAgCQlyZXR1cm4gRVJS X1BUUigtRUlPKTsKPiAgIAl9Cj4gQEAgLTI5MDYsNiArMjkwNSwyMiBAQCBzdGF0aWMgdm9pZCBm MmZzX2Zmc19tYXJrX3N1YnJhbmdlX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8sIHNpemVf dCBvZmZzZXQsCj4gICAJCWZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pOwo+ICAgfQo+ICAgCj4g K2Jvb2wgZjJmc19mZnNfdGVzdF9ibGtfZGlydHkoY29uc3Qgc3RydWN0IGZvbGlvICpmb2xpbywg cGdvZmZfdCBpbmRleCkKPiArewo+ICsJc3RydWN0IGYyZnNfZm9saW9fc3RhdGUgKmZmczsKPiAr CXVuc2lnbmVkIGludCBpZHgsIG5yX3N1YnBhZ2VzOwo+ICsKPiArCWYyZnNfYnVnX29uKEYyRlNf Rl9TQihmb2xpbyksICFmb2xpb19jb250YWlucyhmb2xpbywgaW5kZXgpKTsKPiArCj4gKwlpZiAo IWYyZnNfZm9saW9faGFzX2Zmcyhmb2xpbykpCj4gKwkJcmV0dXJuIGZvbGlvX3Rlc3RfZGlydHko Zm9saW8pOwo+ICsKPiArCWZmcyA9IChzdHJ1Y3QgZjJmc19mb2xpb19zdGF0ZSAqKWZvbGlvLT5w cml2YXRlOwo+ICsJbnJfc3VicGFnZXMgPSBmb2xpb19ucl9wYWdlcyhmb2xpbyk7Cj4gKwlpZHgg PSBpbmRleCAtIGZvbGlvLT5pbmRleDsKPiArCXJldHVybiB0ZXN0X2JpdChucl9zdWJwYWdlcyAr IGlkeCwgZmZzLT5zdGF0ZSk7Cj4gK30KPiArCj4gICBzdGF0aWMgdW5zaWduZWQgaW50IF9fZmZz X21hcmtfc3VicmFuZ2VfZGlydHkoc3RydWN0IGZvbGlvICpmb2xpbywKPiAgIAkJCXN0cnVjdCBm MmZzX2ZvbGlvX3N0YXRlICpmZnMsIHNpemVfdCBvZmZzZXQsIHNpemVfdCBsZW4pCj4gICB7Cj4g QEAgLTI5OTksNyArMzAxNCw2IEBAIGJvb2wgZjJmc19mZnNfY2xlYXJfc3VicmFuZ2VfZGlydHlf YW5kX3Rlc3Qoc3RydWN0IGZvbGlvICpmb2xpbywgc2l6ZV90IG9mZnNldCwKPiAgIAo+ICAgCXJl dHVybiBkaXJ0eTsKPiAgIH0KPiAtCj4gICBzdGF0aWMgdW5zaWduZWQgaW50IGZmc19uZXh0X2Rp cnR5X3N1YnBhZ2Uoc3RydWN0IGYyZnNfZm9saW9fc3RhdGUgKmZmcywKPiAgIAkJCWNvbnN0IHN0 cnVjdCBmb2xpbyAqZm9saW8sIHVuc2lnbmVkIGludCBzdGFydCwKPiAgIAkJCXVuc2lnbmVkIGlu dCBlbmQpCj4gQEAgLTM0OTcsNyArMzUxMSw3IEBAIGJvb2wgZjJmc19zaG91bGRfdXBkYXRlX291 dHBsYWNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmMmZzX2lvX2luZm8gKmZpbykKPiAg IAkJcmV0dXJuIHRydWU7Cj4gICAKPiAgIAlpZiAoZmlvKSB7Cj4gLQkJaWYgKHBhZ2VfcHJpdmF0 ZV9nY2luZyhmaW8tPnBhZ2UpKQo+ICsJCWlmIChmb2xpb190ZXN0X2YyZnNfZ2NpbmcoZmlvLT5m b2xpbykpCj4gICAJCQlyZXR1cm4gdHJ1ZTsKPiAgIAkJaWYgKHVubGlrZWx5KGlzX3NiaV9mbGFn X3NldChzYmksIFNCSV9DUF9ESVNBQkxFRCkgJiYKPiAgIAkJCWYyZnNfaXNfY2hlY2twb2ludGVk X2RhdGEoc2JpLCBmaW8tPm9sZF9ibGthZGRyKSkpCj4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZjJm cy5oIGIvZnMvZjJmcy9mMmZzLmgKPiBpbmRleCBkOTc2ZTZhZDA1OGIuLjM2ZWM4MjY2YWY2OSAx MDA2NDQKPiAtLS0gYS9mcy9mMmZzL2YyZnMuaAo+ICsrKyBiL2ZzL2YyZnMvZjJmcy5oCj4gQEAg LTQ0OTMsNiArNDQ5Myw3IEBAIGludCBmMmZzX3dyaXRlX3NpbmdsZV9kYXRhX3BhZ2Uoc3RydWN0 IGZvbGlvICpmb2xpbywgaW50ICpzdWJtaXR0ZWQsCj4gICAJCQkJaW50IGNvbXByX2Jsb2Nrcywg Ym9vbCBhbGxvd19iYWxhbmNlKTsKPiAgIGJvb2wgZjJmc19mZnNfdGVzdF9ibGtfdXB0b2RhdGUo Y29uc3Qgc3RydWN0IGZvbGlvICpmb2xpbywgcGdvZmZfdCBpbmRleCk7Cj4gICBzdHJ1Y3QgZjJm c19mb2xpb19zdGF0ZSAqZjJmc19mZnNfZmluZF9vcl9hbGxvYyhzdHJ1Y3QgZm9saW8gKmZvbGlv KTsKPiArYm9vbCBmMmZzX2Zmc190ZXN0X2Jsa19kaXJ0eShjb25zdCBzdHJ1Y3QgZm9saW8gKmZv bGlvLCBwZ29mZl90IGluZGV4KTsKPiAgIHZvaWQgZjJmc19mZnNfbWFya19zdWJyYW5nZV9kaXJ0 eShzdHJ1Y3QgZm9saW8gKmZvbGlvLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbGVuKTsKPiAgIGJv b2wgZjJmc19mZnNfY2xlYXJfc3VicmFuZ2VfZGlydHlfYW5kX3Rlc3Qoc3RydWN0IGZvbGlvICpm b2xpbywgc2l6ZV90IG9mZnNldCwKPiAgIAkJCQkJICAgIHNpemVfdCBsZW4pOwo+IGRpZmYgLS1n aXQgYS9mcy9mMmZzL2djLmMgYi9mcy9mMmZzL2djLmMKPiBpbmRleCBkN2ZhZTE4OTA4MzUuLjVi YjExN2U1ZTgxMSAxMDA2NDQKPiAtLS0gYS9mcy9mMmZzL2djLmMKPiArKysgYi9mcy9mMmZzL2dj LmMKPiBAQCAtMTUxMiwxMiArMTUxMiwxOSBAQCBzdGF0aWMgaW50IG1vdmVfZGF0YV9wYWdlKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIGJsb2NrX3QgYmlkeCwgaW50IGdjX3R5cGUsCj4gICAJCQkJCQl1 bnNpZ25lZCBpbnQgc2Vnbm8sIGludCBvZmYpCj4gICB7Cj4gICAJc3RydWN0IGZvbGlvICpmb2xp bzsKPiArCXNpemVfdCBmb2ZmID0gMDsKPiArCWJvb2wgbGFyZ2UgPSBmYWxzZTsKPiAgIAlpbnQg ZXJyID0gMDsKPiAgIAo+ICAgCWZvbGlvID0gZjJmc19nZXRfbG9ja19kYXRhX2ZvbGlvKGlub2Rl LCBiaWR4LCB0cnVlKTsKPiAgIAlpZiAoSVNfRVJSKGZvbGlvKSkKPiAgIAkJcmV0dXJuIFBUUl9F UlIoZm9saW8pOwo+ICAgCj4gKwlpZiAoZjJmc19mb2xpb19oYXNfZmZzKGZvbGlvKSkgewo+ICsJ CWxhcmdlID0gdHJ1ZTsKPiArCQlmb2ZmID0gb2Zmc2V0X2luX2ZvbGlvKGZvbGlvLCAobG9mZl90 KWJpZHggPDwgUEFHRV9TSElGVCk7Cj4gKwl9Cj4gKwo+ICAgCWlmICghY2hlY2tfdmFsaWRfbWFw KEYyRlNfSV9TQihpbm9kZSksIHNlZ25vLCBvZmYpKSB7Cj4gICAJCWVyciA9IC1FTk9FTlQ7Cj4g ICAJCWdvdG8gb3V0Owo+IEBAIC0xNTMyLDYgKzE1MzksOCBAQCBzdGF0aWMgaW50IG1vdmVfZGF0 YV9wYWdlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGJsb2NrX3QgYmlkeCwgaW50IGdjX3R5cGUsCj4g ICAJCQllcnIgPSAtRUFHQUlOOwo+ICAgCQkJZ290byBvdXQ7Cj4gICAJCX0KPiArCQlpZiAobGFy Z2UpCj4gKwkJCWYyZnNfZmZzX21hcmtfc3VicmFuZ2VfZGlydHkoZm9saW8sIGZvZmYsIFBBR0Vf U0laRSk7Cj4gICAJCWZvbGlvX21hcmtfZGlydHkoZm9saW8pOwo+ICAgCQlmb2xpb19zZXRfZjJm c19nY2luZyhmb2xpbyk7Cj4gICAJfSBlbHNlIHsKPiBAQCAtMTU0NCwzMiArMTU1Myw1MSBAQCBz dGF0aWMgaW50IG1vdmVfZGF0YV9wYWdlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGJsb2NrX3QgYmlk eCwgaW50IGdjX3R5cGUsCj4gICAJCQkub3BfZmxhZ3MgPSBSRVFfU1lOQywKPiAgIAkJCS5vbGRf YmxrYWRkciA9IE5VTExfQUREUiwKPiAgIAkJCS5mb2xpbyA9IGZvbGlvLAo+ICsJCQkuZm9saW9f b2Zmc2V0ID0gYmlkeCAtIGZvbGlvLT5pbmRleCwKPiArCQkJLmZvbGlvX2Jsa2NudCA9IDEsCj4g ICAJCQkuZW5jcnlwdGVkX3BhZ2UgPSBOVUxMLAo+ICAgCQkJLm5lZWRfbG9jayA9IExPQ0tfUkVR LAo+ICAgCQkJLmlvX3R5cGUgPSBGU19HQ19EQVRBX0lPLAo+ICAgCQl9Owo+IC0JCWJvb2wgaXNf ZGlydHkgPSBmb2xpb190ZXN0X2RpcnR5KGZvbGlvKTsKPiArCQlzdHJ1Y3QgZjJmc19mb2xpb19z dGF0ZSAqZmZzID0gTlVMTDsKPiArCQlib29sIGlzX2RpcnR5ID0gZjJmc19mZnNfdGVzdF9ibGtf ZGlydHkoZm9saW8sIGJpZHgpOwo+ICAgCj4gICByZXRyeToKPiAgIAkJZjJmc19mb2xpb193YWl0 X3dyaXRlYmFjayhmb2xpbywgdHJ1ZSwgdHJ1ZSk7Cj4gICAKPiArCQlpZiAobGFyZ2UpIHsKPiAr CQkJZmZzID0gKHN0cnVjdCBmMmZzX2ZvbGlvX3N0YXRlICopZm9saW8tPnByaXZhdGU7Cj4gKwkJ CWYyZnNfZmZzX21hcmtfc3VicmFuZ2VfZGlydHkoZm9saW8sIGZvZmYsIFBBR0VfU0laRSk7Cj4g KwkJfQo+ICAgCQlmb2xpb19tYXJrX2RpcnR5KGZvbGlvKTsKPiAgIAkJaWYgKGZvbGlvX2NsZWFy X2RpcnR5X2Zvcl9pbyhmb2xpbykpIHsKPiAtCQkJaW5vZGVfZGVjX2RpcnR5X2Jsb2NrKGlub2Rl KTsKPiAtCQkJZjJmc19yZW1vdmVfZGlydHlfaW5vZGUoaW5vZGUpOwo+ICsJCQlpZiAoIWxhcmdl KSB7Cj4gKwkJCQlpbm9kZV9kZWNfZGlydHlfYmxvY2soaW5vZGUpOwo+ICsJCQkJZjJmc19yZW1v dmVfZGlydHlfaW5vZGUoaW5vZGUpOwo+ICsJCQl9IGVsc2UgaWYgKGYyZnNfZmZzX2NsZWFyX3N1 YnJhbmdlX2RpcnR5X2FuZF90ZXN0KGZvbGlvLAo+ICsJCQkJCQkJZm9mZiwgUEFHRV9TSVpFKSkg ewo+ICsJCQkJZm9saW9fbWFya19kaXJ0eShmb2xpbyk7Cj4gKwkJCX0KPiAgIAkJfQo+ICAgCj4g KwkJaWYgKGxhcmdlKQo+ICsJCQlhdG9taWNfaW5jKCZmZnMtPndyaXRlX3BhZ2VzX3BlbmRpbmcp Owo+ICAgCQlmb2xpb19zZXRfZjJmc19nY2luZyhmb2xpbyk7Cj4gICAKPiAgIAkJZXJyID0gZjJm c19kb193cml0ZV9kYXRhX3BhZ2UoJmZpbyk7CgpOYW56aGUsCgpUaGVyZSBpcyB2YWxpZCBidWcg cmVwb3J0IGZyb20gc2FzaGlrbyBhcyBiZWxvdywgSSBjaGVja2VkIGEgYml0IHcvIGxsbToKCipO b3JtYWwgZnN5bmMoKSBXcml0ZWJhY2sgRmxvdyoKICAgMS4gQnVmZmVyZWQgd3JpdGUgZGlydGll cyBhIGZvbGlvOgogICAgICAg4oCiIGZvbGlvX21hcmtfZGlydHkoZm9saW8pIOKGkiBmaWxlbWFw X2RpcnR5X2ZvbGlvKCkKICAgICAgIOKAoiBTZXRzIGZvbGlvIGZsYWcgUEdfZGlydHkuCiAgICAg ICDigKIgU2V0cyBYQXJyYXkgKHJhZGl4LXRyZWUpIG1hcmsgUEFHRUNBQ0hFX1RBR19ESVJUWSBv biB0aGUgZm9saW8gZW50cnkgaW4gbWFwcGluZy0+aV9wYWdlcy4KICAgICAgIOKAoiAoU3RhdGU6 IFBHX2RpcnR5ID0gMSwgVEFHX0RJUlRZID0gMSwgVEFHX1RPV1JJVEUgPSAwLCBUQUdfV1JJVEVC QUNLID0gMCkKICAgMi4gZnN5bmMoKSBzdGFydHMgYW5kIHNuYXBzaG90cyBkaXJ0eSBmb2xpb3Mg KFdCX1NZTkNfQUxMKToKICAgICAgIOKAoiBmMmZzX2RvX3N5bmNfZmlsZSgpIOKGkiBmaWxlX3dy aXRlX2FuZF93YWl0X3JhbmdlKCkg4oaSIGYyZnNfd3JpdGVfY2FjaGVfZm9saW9zKCkg4oaSIHdy aXRlYmFja19pdGVyKCkKICAgICAgIOKAoiBDYWxscyB0YWdfcGFnZXNfZm9yX3dyaXRlYmFjaygp LCB3aGljaCBzY2FucyBtYXBwaW5nLT5pX3BhZ2VzIGZvciBlbnRyaWVzIHdpdGggUEFHRUNBQ0hF X1RBR19ESVJUWSBhbmQgdGFncyB0aGVtIHdpdGggUEFHRUNBQ0hFX1RBR19UT1dSSVRFLgogICAg ICAg4oCiIChTdGF0ZTogUEdfZGlydHkgPSAxLCBUQUdfRElSVFkgPSAxLCBUQUdfVE9XUklURSA9 IDEsIFRBR19XUklURUJBQ0sgPSAwKQogICAzLiB3cml0ZWJhY2tfaXRlcigpIGZldGNoZXMgdGhl IGZvbGlvIGZvciB3cml0ZW91dDoKICAgICAgIOKAoiB3cml0ZWJhY2tfZ2V0X2ZvbGlvKCkgbG9v a3MgdXAgZm9saW9zIHRhZ2dlZCB3aXRoIFBBR0VDQUNIRV9UQUdfVE9XUklURSwgbG9ja3MgdGhl IGZvbGlvLCBhbmQgY2FsbHMgZm9saW9fY2xlYXJfZGlydHlfZm9yX2lvKGZvbGlvKS4KICAgICAg IOKAoiBDbGVhcnMgUEdfZGlydHkgb24gdGhlIGZvbGlvLCB3aGlsZSBrZWVwaW5nIFBBR0VDQUNI RV9UQUdfRElSVFkgYW5kIFBBR0VDQUNIRV9UQUdfVE9XUklURSBzZXQgaW4gbWFwcGluZy0+aV9w YWdlcyB1bnRpbCB3cml0ZWJhY2sgYWN0dWFsbHkgc3RhcnRzLgogICAgICAg4oCiIChTdGF0ZTog UEdfZGlydHkgPSAwLCBUQUdfRElSVFkgPSAxLCBUQUdfVE9XUklURSA9IDEsIFRBR19XUklURUJB Q0sgPSAwKQogICA0LiBGaWxlc3lzdGVtIHN0YXJ0cyB3cml0ZWJhY2sgb24gdGhlIHdob2xlIGZv bGlvOgogICAgICAg4oCiIGYyZnNfd3JpdGVfY2FjaGVfZm9saW9zKCkgY2FsbHMgZm9saW9fc3Rh cnRfd3JpdGViYWNrKGZvbGlvKSDihpIgX19mb2xpb19zdGFydF93cml0ZWJhY2soZm9saW8sIGZh bHNlKSBhbmQgc3VibWl0cyBhbGwgZGlydHkgc3VicGFnZXMgaW4gdGhlIGZvbGlvLgogICAgICAg 4oCiIFNldHMgUEdfd3JpdGViYWNrIGFuZCBQQUdFQ0FDSEVfVEFHX1dSSVRFQkFDSy4KICAgICAg IOKAoiBCZWNhdXNlICFmb2xpb190ZXN0X2RpcnR5KGZvbGlvKSBpcyB0cnVlLCBjbGVhcnMgUEFH RUNBQ0hFX1RBR19ESVJUWS4KICAgICAgIOKAoiBCZWNhdXNlIGtlZXBfd3JpdGUgPT0gZmFsc2Us IGNsZWFycyBQQUdFQ0FDSEVfVEFHX1RPV1JJVEUuCiAgICAgICDigKIgKFN0YXRlOiBQR19kaXJ0 eSA9IDAsIFRBR19ESVJUWSA9IDAsIFRBR19UT1dSSVRFID0gMCwgVEFHX1dSSVRFQkFDSyA9IDEp CiAgIDUuIEkvTyBjb21wbGV0aW9uICYgZnN5bmMoKSB3YWl0OgogICAgICAg4oCiIGZpbGVtYXBf ZmRhdGF3YWl0X3JhbmdlKCkgd2FpdHMgb24gUEFHRUNBQ0hFX1RBR19XUklURUJBQ0suCiAgICAg ICDigKIgZjJmc193cml0ZV9lbmRfYmlvKCkgY2FsbHMgZm9saW9fZW5kX3dyaXRlYmFjayhmb2xp byksIGNsZWFyaW5nIFBHX3dyaXRlYmFjayBhbmQgUEFHRUNBQ0hFX1RBR19XUklURUJBQ0suCgoq QnVnZ3kgUmFjZSBGbG93IHdpdGggbW92ZV9kYXRhX3BhZ2UoKSBvbiBhIExhcmdlIEZvbGlvKgog ICBTdXBwb3NlIGEgbGFyZ2UgZm9saW8gaGFzIHN1YnBhZ2UgMCAoY2xlYW4sIGluIGEgR0Mgdmlj dGltIHNlZ21lbnQpIGFuZCBzdWJwYWdlIDEgKGRpcnR5IGZyb20gYSBidWZmZXJlZCB3cml0ZSku CiAgICAgVGhyZWFkIEEgKGZzeW5jKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRocmVh ZCBCIChGR19HQzogbW92ZV9kYXRhX3BhZ2Ugb24gc3VicGFnZSAwKQogICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIDEuIEJ1ZmZlcmVkIHdy aXRlIGRpcnRpZWQgc3VicGFnZSAxOgogICAgICAgIC0gZmZzLT5zdGF0ZVtkaXJ0eSwgMV0gPSAx CiAgICAgICAgLSBmb2xpb19tYXJrX2RpcnR5KGZvbGlvKQogICAgICAgICAgLT4gc2V0cyBQR19k aXJ0eSA9IDEKICAgICAgICAgIC0+IHNldHMgWEFycmF5IFBBR0VDQUNIRV9UQUdfRElSVFkgPSAx CgogICAgIDIuIGYyZnNfZG9fc3luY19maWxlKCkKICAgICAgICAtPiBmaWxlX3dyaXRlX2FuZF93 YWl0X3JhbmdlKCkKICAgICAgICAtPiBmMmZzX3dyaXRlX2NhY2hlX2ZvbGlvcygpCiAgICAgICAg LT4gd3JpdGViYWNrX2l0ZXIoKToKICAgICAgICAgICB0YWdfcGFnZXNfZm9yX3dyaXRlYmFjaygp IHRhZ3MgZm9saW8KICAgICAgICAgICBpbiBYQXJyYXkgd2l0aCBQQUdFQ0FDSEVfVEFHX1RPV1JJ VEUgPSAxCiAgICAgICAgW1BHX2RpcnR5PTEsIFRBR19ESVJUWT0xLCBUQUdfVE9XUklURT0xXQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4gbW92 ZV9kYXRhX3BhZ2UoaW5vZGUsIGJpZHg9MCwgRkdfR0MpIGxvY2tzIGZvbGlvOgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIGYyZnNfZmZzX21h cmtfc3VicmFuZ2VfZGlydHkoZm9saW8sIHN1YnBhZ2UgMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBmb2xpb19tYXJrX2RpcnR5KGZvbGlv KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt IGZvbGlvX2NsZWFyX2RpcnR5X2Zvcl9pbyhmb2xpbykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiBjbGVhcnMgUEdfZGlydHkgPSAwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gZjJm c19mZnNfY2xlYXJfc3VicmFuZ2VfZGlydHlfYW5kX3Rlc3Qoc3VicGFnZSAwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+IGNsZWFycyBm ZnMtPnN0YXRlW2RpcnR5LCAwXSA9IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtPiBzZWVzIGZmcy0+c3RhdGVbZGlydHksIDFdID09IDEg KHN0aWxsIGRpcnR5ISkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtPiBjYWxscyBmb2xpb19tYXJrX2RpcnR5KGZvbGlvKToKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRzIFBH X2RpcnR5ID0gMSwgVEFHX0RJUlRZID0gMQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgNC4gQ2FsbHMgZjJmc19kb193cml0ZV9kYXRhX3BhZ2UoJmZp bykgZm9yIHN1YnBhZ2UgMCBPTkxZOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtIENhbGxzIGZvbGlvX3N0YXJ0X3dyaXRlYmFjayhmb2xpbykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt PiBfX2ZvbGlvX3N0YXJ0X3dyaXRlYmFjayhmb2xpbywgZmFsc2UpOgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc2V0cyBQR193cml0 ZWJhY2sgPSAxLCBUQUdfV1JJVEVCQUNLID0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZm9saW9fdGVzdF9kaXJ0eShmb2xpbykg aXMgdHJ1ZSAtPiBrZWVwcyBUQUdfRElSVFkgPSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBrZWVwX3dyaXRlIGlzIGZhbHNlIC0+ IENMRUFSUyBQQUdFQ0FDSEVfVEFHX1RPV1JJVEUgPSAwIQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIFN1Ym1pdHMgYmlvIGZvciBzdWJwYWdl IDAgb25seTsgdW5sb2NrcyBmb2xpby4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW1BHX2RpcnR5PTEsIFRBR19ESVJUWT0xLCBUQUdfVE9XUklURT0w LCBUQUdfV1JJVEVCQUNLPTFdCgogICAgIDUuIHdyaXRlYmFja19nZXRfZm9saW8oKSBzZWFyY2hl cyBYQXJyYXkgZm9yCiAgICAgICAgUEFHRUNBQ0hFX1RBR19UT1dSSVRFOgogICAgICAgIC0+IEZv bGlvIG5vIGxvbmdlciBoYXMgUEFHRUNBQ0hFX1RBR19UT1dSSVRFIQogICAgICAgIC0+IHdyaXRl YmFja19pdGVyKCkgY29tcGxldGVseSBza2lwcyBmb2xpbzsKICAgICAgICAgICBzdWJwYWdlIDEg aXMgTkVWRVIgc3VibWl0dGVkIGZvciB3cml0ZWJhY2suCgogICAgIDYuIGZpbGVtYXBfZmRhdGF3 YWl0X3JhbmdlKCkgd2FpdHMgZm9yCiAgICAgICAgUEFHRUNBQ0hFX1RBR19XUklURUJBQ0s6CiAg ICAgICAgLT4gU3VicGFnZSAwIGJpbyBmaW5pc2hlcyAtPiBjbGVhcnMgVEFHX1dSSVRFQkFDSy4K ICAgICAgICAtPiBmc3luYygpIHJldHVybnMgMCAoc3VjY2Vzcykgd2hpbGUgc3VicGFnZSAxCiAg ICAgICAgICAgaXMgc3RpbGwgZGlydHkgaW4gUkFNIQoKKlBvdGVudGlhbCBTb2x1dGlvbioKV2Ug bmVlZCB0byBjYWxsIF9fZm9saW9fc3RhcnRfd3JpdGViYWNrKGZvbGlvLCBmb2xpb190ZXN0X2Rp cnR5KGZvbGlvKSkgdG8ga2VlcApQQUdFQ0FDSEVfVEFHX1RPV1JJVEUgdGFnIGluIGZvbGlvIHhh cnJ5IGVudHJ5IGlmIHRoZXJlIGFyZSBzdGlsbCBkaXJ0eSBwYWdleyxzfQppbiBsYXJnZSBmb2xp by4KCiAgICAgLS0tIGEvZnMvZjJmcy9kYXRhLmMKICAgICArKysgYi9mcy9mMmZzL2RhdGEuYwog ICAgIEBAIC0zNzYxLDcgKzM3NjEsNyBAQCBpbnQgZjJmc19kb193cml0ZV9kYXRhX3BhZ2Uoc3Ry dWN0IGYyZnNfaW9faW5mbyAqZmlvKQogICAgICAgICAgaWYgKGlwdV9mb3JjZSB8fAogICAgICAg ICAgICAgIChfX2lzX3ZhbGlkX2RhdGFfYmxrYWRkcihmaW8tPm9sZF9ibGthZGRyKSAmJgogICAg ICAgICAgICAgICAgICAgICAgICAgIG5lZWRfaW5wbGFjZV91cGRhdGUoZmlvKSkpIHsKICAgICAt ICAgICAgICBmb2xpb19zdGFydF93cml0ZWJhY2soZm9saW8pOwogICAgICsgICAgICAgIF9fZm9s aW9fc3RhcnRfd3JpdGViYWNrKGZvbGlvLCBmb2xpb190ZXN0X2RpcnR5KGZvbGlvKSk7CiAgICAg ICAgICAgICAgZjJmc19wdXRfZG5vZGUoJmRuKTsKICAgICAgICAgICAgICBpZiAoZmlvLT5uZWVk X2xvY2sgPT0gTE9DS19SRVEpCiAgICAgICAgICAgICAgICAgIGYyZnNfdW5sb2NrX29wKGZpby0+ c2JpLCAmbGMpOwogICAgIEBAIC0zNzg4LDcgKzM3ODgsNyBAQCBpbnQgZjJmc19kb193cml0ZV9k YXRhX3BhZ2Uoc3RydWN0IGYyZnNfaW9faW5mbyAqZmlvKQoKICAgICAgICAgIGZpby0+dmVyc2lv biA9IG5pLnZlcnNpb247CgogICAgIC0gICAgZm9saW9fc3RhcnRfd3JpdGViYWNrKGZvbGlvKTsK ICAgICArICAgIF9fZm9saW9fc3RhcnRfd3JpdGViYWNrKGZvbGlvLCBmb2xpb190ZXN0X2RpcnR5 KGZvbGlvKSk7CgogICAgICAgICAgaWYgKGZpby0+Y29tcHJfYmxvY2tzICYmIGZpby0+b2xkX2Js a2FkZHIgPT0gQ09NUFJFU1NfQUREUikKICAgICAgICAgICAgICBmMmZzX2lfY29tcHJfYmxvY2tz X3VwZGF0ZShpbm9kZSwgZmlvLT5jb21wcl9ibG9ja3MgLSAxLCBmYWxzZSk7CgpUaGFua3MsCgo+ ICAgCQlpZiAoZXJyKSB7Cj4gICAJCQlmb2xpb19jbGVhcl9mMmZzX2djaW5nKGZvbGlvKTsKPiAr CQkJaWYgKGxhcmdlKQo+ICsJCQkJYXRvbWljX2RlYygmZmZzLT53cml0ZV9wYWdlc19wZW5kaW5n KTsKPiAgIAkJCWlmIChlcnIgPT0gLUVOT01FTSkgewo+ICAgCQkJCW1lbWFsbG9jX3JldHJ5X3dh aXQoR0ZQX05PRlMpOwo+ICAgCQkJCWdvdG8gcmV0cnk7Cj4gICAJCQl9Cj4gLQkJCWlmIChpc19k aXJ0eSkKPiArCQkJaWYgKGlzX2RpcnR5KSB7Cj4gKwkJCQlpZiAobGFyZ2UpCj4gKwkJCQkJZjJm c19mZnNfbWFya19zdWJyYW5nZV9kaXJ0eShmb2xpbywgZm9mZiwgUEFHRV9TSVpFKTsKPiAgIAkJ CQlmb2xpb19tYXJrX2RpcnR5KGZvbGlvKTsKPiArCQkJfQo+ICAgCQl9Cj4gICAJfQo+ICAgb3V0 Ogo+IGRpZmYgLS1naXQgYS9mcy9mMmZzL3NlZ21lbnQuYyBiL2ZzL2YyZnMvc2VnbWVudC5jCj4g aW5kZXggOTZiZmI3ZDYzNjkyLi4wNmZiOTJmYzg0NzkgMTAwNjQ0Cj4gLS0tIGEvZnMvZjJmcy9z ZWdtZW50LmMKPiArKysgYi9mcy9mMmZzL3NlZ21lbnQuYwo+IEBAIC0zODYzLDcgKzM4NjMsNyBA QCBzdGF0aWMgaW50IF9fZ2V0X3NlZ21lbnRfdHlwZV82KHN0cnVjdCBmMmZzX2lvX2luZm8gKmZp bykKPiAgIAkJaWYgKGlzX2lub2RlX2ZsYWdfc2V0KGlub2RlLCBGSV9BTElHTkVEX1dSSVRFKSkK PiAgIAkJCXJldHVybiBDVVJTRUdfQ09MRF9EQVRBX1BJTk5FRDsKPiAgIAo+IC0JCWlmIChwYWdl X3ByaXZhdGVfZ2NpbmcoZmlvLT5wYWdlKSkgewo+ICsJCWlmIChmb2xpb190ZXN0X2YyZnNfZ2Np bmcoZmlvLT5mb2xpbykpIHsKPiAgIAkJCWlmIChmaW8tPnNiaS0+YW0uYXRnY19lbmFibGVkICYm Cj4gICAJCQkJKGZpby0+aW9fdHlwZSA9PSBGU19EQVRBX0lPKSAmJgo+ICAgCQkJCShmaW8tPnNi aS0+Z2NfbW9kZSAhPSBHQ19VUkdFTlRfSElHSCkgJiYKCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QK TGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3Vy Y2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbGludXgtZjJmcy1kZXZlbAo=