Received: by 10.223.176.5 with SMTP id f5csp4138305wra; Tue, 30 Jan 2018 02:44:06 -0800 (PST) X-Google-Smtp-Source: AH8x226DdvJsfw0rK4JuK3zcUPCG0p7XaGbNv8VBX7O+cziF4oi5DQYUzckqPJAqv8ENvPLyXa3g X-Received: by 2002:a17:902:67c5:: with SMTP id g5-v6mr21062961pln.106.1517309046623; Tue, 30 Jan 2018 02:44:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517309046; cv=none; d=google.com; s=arc-20160816; b=RyV7F3FqNa1rMp2ngwhL2iyIUOFm2IK5dYJG9I6ydXme/25hoSe0N6xHl+RuN3Me95 HWobGOOr8fEYmXJlIkmVr3dKgmcWN2gqzugFTulfC13x0Jo1TeFQMK+wXEkgRs/ZafwT 8g7npM1agVv3U8wI3ZrklHhkvH/AAplu3rCyqszzOfLArirh4yOHaIyAFDHcwe//vX3u MbbTpGCUZd1nYBlhQJSwkgR/Jvcd+VD9KGhCgyRZYZNlJ1AIUB635t1usLHi1rwdv7HC JykZvY2oiNZ8epT0dIxFSV15qTMcSMNrMFtxY3gfkLRJkDMRQWb6/BThtgi7WfY/0PvE 0h7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from :arc-authentication-results; bh=Sy3tB9t5tgVEe2CTp5ge65fAmXkhhECfotEx/ux4sR0=; b=D6o8UmHPF3lZjTLl0X/CTTFXkZkMt4zH15Aa1ryOpE8RtnckiH1jkctnE29fqTCdYy mRL53CeE/5Qd4P0sJ0+eEZa+r+77AfJBYSpa/pmrKXj384wLA0As1f2vHfaJ2oJE/bQJ 1+RJ+iElKuhVcRoDIm/c/q/DfU+iTkLB4wlHBX96+i6lv5UIvJTSQf1691A2dGyOxSmB ZOva8SaUFZtmvHZwuWGh4E+DEtfEWv7A1JLzwtVeh9WztKnbgx2Lnf8D077dCd6B3rqT mS33PESMB4NtiMGYBQGP2PJClcSLPAPN5lnV8CbT14cONxvWFQM60Py0OVmtUEVL+/l9 EzZg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h3si1409924pgc.179.2018.01.30.02.43.52; Tue, 30 Jan 2018 02:44:06 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751812AbeA3KnA (ORCPT + 99 others); Tue, 30 Jan 2018 05:43:00 -0500 Received: from szxga01-in.huawei.com ([45.249.212.187]:2448 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751457AbeA3Km6 (ORCPT ); Tue, 30 Jan 2018 05:42:58 -0500 Received: from DGGEML403-HUB.china.huawei.com (unknown [172.30.72.54]) by Forcepoint Email with ESMTP id DEDD2F88BB318; Tue, 30 Jan 2018 18:42:53 +0800 (CST) Received: from DGGEML424-HUB.china.huawei.com (10.1.199.41) by DGGEML403-HUB.china.huawei.com (10.3.17.33) with Microsoft SMTP Server (TLS) id 14.3.361.1; Tue, 30 Jan 2018 18:42:54 +0800 Received: from DGGEML508-MBX.china.huawei.com ([169.254.3.22]) by dggeml424-hub.china.huawei.com ([10.1.199.41]) with mapi id 14.03.0361.001; Tue, 30 Jan 2018 18:42:48 +0800 From: "zhangheng (AC)" To: Boqun Feng CC: "Paul E. McKenney" , "lianglihao@huawei.com" , "Guohanjun (Hanjun Guo)" , "Chenhaibo (Haibo, OS Lab)" , "lihao.liang@gmail.com" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH RFC 01/16] prcu: Add PRCU implementation Thread-Topic: [PATCH RFC 01/16] prcu: Add PRCU implementation Thread-Index: AQHTlCFdZVEps8k4qEi1V4BR0MIw1qODmaYAgAAUv4CACDoBUP//k8yAgADGq4A= Date: Tue, 30 Jan 2018 10:42:47 +0000 Message-ID: <3FF961283AE1E144A2F945F1AD5573FD014E118C@dggeml508-mbx.china.huawei.com> References: <1516694381-20333-1-git-send-email-lianglihao@huawei.com> <1516694381-20333-2-git-send-email-lianglihao@huawei.com> <20180125061618.GU3741@linux.vnet.ibm.com> <20180125073033.4rl7bun62newplb3@tardis> <3FF961283AE1E144A2F945F1AD5573FD014DF00C@dggeml508-mbx.china.huawei.com> <20180130064057.bzswn6qkz2wlv776@tardis> In-Reply-To: <20180130064057.bzswn6qkz2wlv776@tardis> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.142.78.241] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBCb3F1biBGZW5nIFttYWlsdG86Ym9x dW4uZmVuZ0BnbWFpbC5jb21dIA0KPlNlbnQ6IDIwMTjE6jHUwjMwyNUgMTQ6NDENCj5Ubzogemhh bmdoZW5nIChBQykgPGhlbmcuekBodWF3ZWkuY29tPg0KPkNjOiBQYXVsIEUuIE1jS2VubmV5IDxw YXVsbWNrQGxpbnV4LnZuZXQuaWJtLmNvbT47IGxpYW5nbGloYW9AaHVhd2VpLmNvbTsgR3VvaGFu anVuIChIYW5qdW4gR3VvKSA8Z3VvaGFuanVuQGh1YXdlaS5jb20+OyBDaGVuaGFpYm8gKEhhaWJv LCBPUyBMYWIpIDxoYi5jaGVuQGh1YXdlaS5jb20+OyBsaWhhby5saWFuZ0BnbWFpbC5jb207IGxp bnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcNCj5TdWJqZWN0OiBSZTogW1BBVENIIFJGQyAwMS8x Nl0gcHJjdTogQWRkIFBSQ1UgaW1wbGVtZW50YXRpb24NCj4NCj5PbiBUdWUsIEphbiAzMCwgMjAx OCBhdCAwNTozNDowM0FNICswMDAwLCB6aGFuZ2hlbmcgKEFDKSB3cm90ZToNCj5bLi4uXQ0KPj4g Pj4gPiArc3RhdGljIHZvaWQgcHJjdV9oYW5kbGVyKHZvaWQgKmluZm8pIHsNCj4+ID4+ID4gKwlz dHJ1Y3QgcHJjdV9sb2NhbF9zdHJ1Y3QgKmxvY2FsOw0KPj4gPj4gPiArDQo+PiA+PiA+ICsJbG9j YWwgPSB0aGlzX2NwdV9wdHIoJnByY3VfbG9jYWwpOw0KPj4gPj4gPiArCWlmICghbG9jYWwtPmxv Y2tlZCkNCj4+ID4NCj4+ID5BbmQgSSB0aGluayBhIHNtcF9tYigpIGlzIG5lZWRlZCBoZXJlLCBi ZWNhdXNlIGluIHRoZSBmb2xsb3dpbmcgY2FzZToNCj4+ID4NCj4+ID4JQ1BVIDAJCQkJICAgICAg ICAgIENQVSAxDQo+PiA+CT09PT09PT09PT09PT09PT09PQkJPT09PT09PT09PT09PT09PT09PT09 PT09PT0NCj4+ID4Je1ggaXMgaW5pdGlhbGx5IDB9DQo+PiA+DQo+PiA+CVdSSVRFX09OQ0UoWCwg MSk7DQo+PiA+DQo+PiA+CSAgICAgICAgICAgICAgICAgICAgICBwcmN1X3JlYWRfdW5sb2NrKHZv aWQpOg0KPj4gPgkgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2tlZCkgew0KPj4gPgkgIAkJ CQkgICAgICAgICAgICAgIHN5bmNocm9uaXplX3ByY3Uodm9pZCk6DQo+PiA+CQkJCQkgICAgICAg ICAgICAgICAgLi4uDQo+PiA+CQkJCQkgICAgICAgICAgICAgICAgPHNlbmQgSVBJIHRvIENQVSAw Pg0KPj4gPglsb2NhbC0+bG9ja2VkLS07DQo+PiA+CSAgICAgICAgICAgICAgICAgICAgICAjIHN3 aXRjaCB0byBJUEkNCj4+ID4gV1JJVEVfT05DRShsb2NhbC0+dmVyc2lvbiwuLi4uKQ0KPj4gPgkg IAkJCQkgICAgICAgICAgICA8cmVhZCBDUFUgMCB2ZXJzaW9uIHRvIGJlIGxhdGVzdD4NCj4+ID4J CQkJCSAgICAgICAgICAgICAgPHJldHVybj4NCj4+ID4NCj4+ID4JCQkJCSAgICAgICAgICAgICAg cjEgPSBSRUFEX09OQ0UoWCk7DQo+PiA+DQo+PiA+cjEgY291bGQgYmUgMCwgd2hpY2ggYnJlYWtz IFJDVSBndWFyYW50ZWVzLg0KPj4gPg0KPj4gDQo+PiBUaGFuayB5b3UuDQo+PiBBcyBJIGtub3cs DQo+PiBpdCBndWFyYW50ZWVzIHRoYXQgdGhlIGludGVycnVwdCB0byBiZSBoYW5kbGVkIGFmdGVy IGFsbCB3cml0ZSBpbnN0cnVjdGlvbnMgaXNzdWVkIGJlZm9yZSBoYXZlIGNvbXBsZXRlIGluIHg4 NiBhcmNoLg0KPj4gU28gdGhlIHNtcF9tYiBpcyBtZWFuaW5nbGVzcyBpbiB4ODYgYXJjaC4NCj4N Cj5TdXJlLiB4ODYgaXMgVFNPLCBhbmQgd2UgYXJlIHRhbGtpbmcgYWJvdXQgcmVvcmRlcmluZyBv ZiB0d28gc3RvcmVzIGhlcmUsIGFuZCB0aGF0IGNhbiBub3QgaGFwcGVuIG9uIFRTTy4NCj4NCj4+ IEJ1dCBJIGFtIG5vdCBzdXJlIHdoZXRoZXIgb3RoZXIgYXJjaHMgZ3VhcmFudGVlIHRoaXMgZmVh dHVyZS4gSWYgbm90LCB3ZSBkbyBuZWVkIGEgc21wX21iIGhlcmUuDQo+PiANCj4NCj5JIHRoaW5r IG1vc3Qgb2YgdGhlIHdlYWsgbWVtb3J5IG1vZGVsIGRvbid0IGhhdmUgdGhpcyBnYXVyYW50ZWUs IHNvIHlvdSBuZWVkIGEgc21wX21iKCkgb3IgdXNlIHNtcF9zdG9yZV9yZWxlYXNlKCkuDQoNCkFn cmVlLg0KDQo+DQo+PiA+PiA+ICsJCVdSSVRFX09OQ0UobG9jYWwtPnZlcnNpb24sIA0KPj4gPj4g PiArYXRvbWljNjRfcmVhZCgmcHJjdS0+Z2xvYmFsX3ZlcnNpb24pKTsNCj4+ID4+ID4gK30NCj4+ ID4+ID4gKw0KPj4gPj4gPiArdm9pZCBzeW5jaHJvbml6ZV9wcmN1KHZvaWQpDQo+PiA+PiA+ICt7 DQo+PiA+PiA+ICsJaW50IGNwdTsNCj4+ID4+ID4gKwljcHVtYXNrX3QgY3B1czsNCj4+ID4+ID4g Kwl1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbjsNCj4+ID4+ID4gKwlzdHJ1Y3QgcHJjdV9sb2Nh bF9zdHJ1Y3QgKmxvY2FsOw0KPj4gPj4gPiArDQo+PiA+PiA+ICsJdmVyc2lvbiA9IGF0b21pYzY0 X2FkZF9yZXR1cm4oMSwgJnByY3UtPmdsb2JhbF92ZXJzaW9uKTsNCj4+ID4+ID4gKwltdXRleF9s b2NrKCZwcmN1LT5tdHgpOw0KPj4gPj4gPiArDQo+PiA+PiA+ICsJbG9jYWwgPSBnZXRfY3B1X3B0 cigmcHJjdV9sb2NhbCk7DQo+PiA+PiA+ICsJbG9jYWwtPnZlcnNpb24gPSB2ZXJzaW9uOw0KPj4g Pj4gPiArCXB1dF9jcHVfcHRyKCZwcmN1X2xvY2FsKTsNCj4+ID4+ID4gKw0KPj4gPj4gPiArCWNw dW1hc2tfY2xlYXIoJmNwdXMpOw0KPj4gPj4gPiArCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUp IHsNCj4+ID4+ID4gKwkJbG9jYWwgPSBwZXJfY3B1X3B0cigmcHJjdV9sb2NhbCwgY3B1KTsNCj4+ ID4+ID4gKwkJaWYgKCFSRUFEX09OQ0UobG9jYWwtPm9ubGluZSkpDQo+PiA+PiA+ICsJCQljb250 aW51ZTsNCj4+ID4+ID4gKwkJaWYgKFJFQURfT05DRShsb2NhbC0+dmVyc2lvbikgPCB2ZXJzaW9u KSB7DQo+PiA+PiANCj4+ID4+IE9uIDMyLWJpdCBzeXN0ZW1zLCBnaXZlbiB0aGF0IC0+dmVyc2lv biBpcyBsb25nIGxvbmcsIHlvdSBtaWdodCBzZWUgDQo+PiA+PiBsb2FkIHRlYXJpbmcuICBBbmQg b24gc29tZSAzMi1iaXQgc3lzdGVtcywgdGhlIGNtcHhjaGcoKSBpbg0KPj4gPj4gcHJjdV9oYW5k ZXIoKSBtaWdodCBub3QgYnVpbGQuDQo+PiA+PiANCj4+ID4NCj4+ID4vbWUgY3VyaW91cyBhYm91 dCB3aHkgYW4gYXRvbWljNjRfdCBpcyB1c2VkIGhlcmUgZm9yIGdsb2JhbCB2ZXJzaW9uLiBJIHRo aW5rIG1heWJlIDMyYml0IGdsb2JhbCB2ZXJzaW9uIHN0aWxsIHN1ZmZpY2VzLg0KPj4gPg0KPj4g PlJlZ2FyZHMsDQo+PiA+Qm9xdW4NCj4+IA0KPj4gQmVjYXVzZSB0aGUgc3luY2hyb25pemF0aW9u IGxhdGVuY3kgaXMgbG93LCBpdCBjYW4gaGF2ZSBoaWdoZXIgZ3AgZnJlcXVlbmN5Lg0KPj4gSXQg c2VlbXMgdGhhdCAzMmJpdCBjYW4gb25seSBjb3JyZWN0bHkgd29yayBmb3Igc2V2ZXJhbCB5ZWFy cyBpZiB0aGVyZSBhcmUgMjArIGdwcyBwZXIgc2Vjb25kLg0KPj4gDQo+DQo+QmVjYXVzZSBQUkNV IGRvZXNuJ3QgaGFuZGxlIGdwIG51bWJlciBvdmVyZmxvdz8gTWF5IEkgYXNrIHdoeSB0aGlzIGlz IGRpZmZpY3VsdD8gQ3VycmVudGx5IFJDVSBjb3VsZCB0b2xlcmF0ZSBjb3VudGVyIHdyYXAgZm9y IGdyYWNlIHBlcmlvZDoNCj4NCj4JaHR0cHM6Ly9sd24ubmV0L0FydGljbGVzLzY1MjY3Ny8gKERl dGFpbHMgaW4gIlBhcmFsbGVsaXNtIGZhY3RzIG9mIGxpZmUiKQ0KPg0KPklzIHRoZXJlIGFueSBz dWJ0bGUgZGlmZmVyZW5jZSBJJ20gbWlzc2luZz8NCj4NCj5SZWdhcmRzLA0KPkJvcXVuDQo+DQoN ClllcywgeW91IGFyZSByaWdodC4gQ3VycmVudGx5IHByY3UgaGFzbid0IGdpdmVuIGEgc29sdXRp b24gZm9yIG92ZXJmbG93IHRodXMgaXQgbmVlZHMgYSA2NC1iaXQgY291bnRlci4NCkdpdmluZyBh IHNvbHV0aW9uIGlzIG5vdCB0aGF0IGRpZmZpY3VsdC4gSSBqdXN0IGRpZG4ndCBjb25zaWRlciBp dCB3aGVuIEkgdXNlIDY0LWJpdCBjb3VudGVyLg0KU2luY2UgNjQtYml0IGNvdW50ZXIgaXNuJ3Qg ZnJpZW5kbHkgZm9yIDMyLWJpdCBzeXN0ZW0sIEkgYWdyZWUgdGhhdCAzMi1iaXQgY291bnRlciAr IG92ZXJmbG93IGhhbmRsZXIgaXMgbmVjZXNzYXJ5Lg0KVGhhbmsgeW91Lg0KDQo+PiA+DQo+PiA+ PiBPciBpcyB0aGUgaWRlYSB0aGF0IG9ubHkgcHJjdV9oYW5kbGVyKCkgdXBkYXRlcyAtPnZlcnNp b24/ICBCdXQgaW4gDQo+PiA+PiB0aGF0IGNhc2UsIHlvdSB3b3VsZG4ndCBuZWVkIHRoZSBSRUFE X09OQ0UoKSBhYm92ZS4gIFdoYXQgYW0gSSBtaXNzaW5nIGhlcmU/DQo+PiA+PiANCj4+ID4+ID4g KwkJCXNtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZShjcHUsIHByY3VfaGFuZGxlciwgTlVMTCwgMCk7 DQo+PiA+PiA+ICsJCQljcHVtYXNrX3NldF9jcHUoY3B1LCAmY3B1cyk7DQo+PiA+PiA+ICsJCX0N Cj4+ID4+ID4gKwl9DQo+PiA+PiA+ICsNCj4+ID4+ID4gKwlmb3JfZWFjaF9jcHUoY3B1LCAmY3B1 cykgew0KPj4gPj4gPiArCQlsb2NhbCA9IHBlcl9jcHVfcHRyKCZwcmN1X2xvY2FsLCBjcHUpOw0K Pj4gPj4gPiArCQl3aGlsZSAoUkVBRF9PTkNFKGxvY2FsLT52ZXJzaW9uKSA8IHZlcnNpb24pDQo+ PiA+PiANCj4+ID4+IFRoaXMgLT52ZXJzaW9uIHJlYWQgY2FuIGFsc28gdGVhciBvbiBzb21lIDMy LWJpdCBzeXN0ZW1zLCBhbmQgdGhpcyANCj4+ID4+IG9uZSBtb3N0IGRlZmluaXRlbHkgY2FuIHJh Y2Ugd2l0aCB0aGUgcHJjdV9oYW5kbGVyKCkgYWJvdmUuICBEb2VzIA0KPj4gPj4gdGhlIGFsZ29y aXRobSBvcGVyYXRlIGNvcnJlY3RseSBpbiB0aGF0IGNhc2U/ICAoSXQgZG9lc24ndCBsb29rIA0K Pj4gPj4gdGhhdCB3YXkgdG8gbWUsIGJ1dCBJIG1pZ2h0IGJlIG1pc3Npbmcgc29tZXRoaW5nLikg T3IgYXJlIDMyLWJpdCBzeXN0ZW1zIGV4Y2x1ZGVkPw0KPj4gPj4gDQo+PiA+PiA+ICsJCQljcHVf cmVsYXgoKTsNCj4+ID4+ID4gKwl9DQo+PiA+PiANCj4+ID4+IEkgbWlnaHQgYmUgbWlzc2luZyBz b21ldGhpbmcsIGJ1dCBJIGJlbGlldmUgd2UgbmVlZCBhIG1lbW9yeSANCj4+ID4+IGJhcnJpZXIg aGVyZSBvbiBub24tVFNPIHN5c3RlbXMuICBXaXRob3V0IHRoYXQsIGNvdWxkbid0IHdlIG1pc3Mg YSBwcmVlbXB0aW9uPw0KPj4gPj4gDQo+PiA+PiA+ICsNCj4+ID4+ID4gKwlpZiAoYXRvbWljX3Jl YWQoJnByY3UtPmFjdGl2ZV9jdHIpKQ0KPj4gPj4gPiArCQl3YWl0X2V2ZW50KHByY3UtPndhaXRf cSwgIWF0b21pY19yZWFkKCZwcmN1LT5hY3RpdmVfY3RyKSk7DQo+PiA+PiA+ICsNCj4+ID4+ID4g KwltdXRleF91bmxvY2soJnByY3UtPm10eCk7DQo+PiA+PiA+ICt9DQo+PiA+PiA+ICtFWFBPUlRf U1lNQk9MKHN5bmNocm9uaXplX3ByY3UpOw0KPj4gPj4gPiArDQo+PiA+PiA+ICt2b2lkIHByY3Vf bm90ZV9jb250ZXh0X3N3aXRjaCh2b2lkKSB7DQo+PiA+PiA+ICsJc3RydWN0IHByY3VfbG9jYWxf c3RydWN0ICpsb2NhbDsNCj4+ID4+ID4gKw0KPj4gPj4gPiArCWxvY2FsID0gZ2V0X2NwdV9wdHIo JnByY3VfbG9jYWwpOw0KPj4gPj4gPiArCWlmIChsb2NhbC0+bG9ja2VkKSB7DQo+PiA+PiA+ICsJ CWF0b21pY19hZGQobG9jYWwtPmxvY2tlZCwgJnByY3UtPmFjdGl2ZV9jdHIpOw0KPj4gPj4gPiAr CQlsb2NhbC0+bG9ja2VkID0gMDsNCj4+ID4+ID4gKwl9DQo+PiA+PiA+ICsJbG9jYWwtPm9ubGlu ZSA9IDA7DQo+PiA+PiA+ICsJcHJjdV9yZXBvcnQobG9jYWwpOw0KPj4gPj4gPiArCXB1dF9jcHVf cHRyKCZwcmN1X2xvY2FsKTsNCj4+ID4+ID4gK30NCj4+ID4+ID4gZGlmZiAtLWdpdCBhL2tlcm5l bC9zY2hlZC9jb3JlLmMgYi9rZXJuZWwvc2NoZWQvY29yZS5jIGluZGV4IA0KPj4gPj4gPiAzMjZk NGY4OC4uYTMwODU4MWIgMTAwNjQ0DQo+PiA+PiA+IC0tLSBhL2tlcm5lbC9zY2hlZC9jb3JlLmMN Cj4+ID4+ID4gKysrIGIva2VybmVsL3NjaGVkL2NvcmUuYw0KPj4gPj4gPiBAQCAtMTUsNiArMTUs NyBAQA0KPj4gPj4gPiAgI2luY2x1ZGUgPGxpbnV4L2luaXRfdGFzay5oPg0KPj4gPj4gPiAgI2lu Y2x1ZGUgPGxpbnV4L2NvbnRleHRfdHJhY2tpbmcuaD4gICNpbmNsdWRlIA0KPj4gPj4gPiA8bGlu dXgvcmN1cGRhdGVfd2FpdC5oPg0KPj4gPj4gPiArI2luY2x1ZGUgPGxpbnV4L3ByY3UuaD4NCj4+ ID4+ID4gDQo+PiA+PiA+ICAjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+DQo+PiA+PiA+ICAjaW5j bHVkZSA8bGludXgva3Byb2Jlcy5oPg0KPj4gPj4gPiBAQCAtMzM4Myw2ICszMzg0LDcgQEAgc3Rh dGljIHZvaWQgX19zY2hlZCBub3RyYWNlIF9fc2NoZWR1bGUoYm9vbA0KPj4gPj4gPiBwcmVlbXB0 KQ0KPj4gPj4gPiANCj4+ID4+ID4gIAlsb2NhbF9pcnFfZGlzYWJsZSgpOw0KPj4gPj4gPiAgCXJj dV9ub3RlX2NvbnRleHRfc3dpdGNoKHByZWVtcHQpOw0KPj4gPj4gPiArCXByY3Vfbm90ZV9jb250 ZXh0X3N3aXRjaCgpOw0KPj4gPj4gPiANCj4+ID4+ID4gIAkvKg0KPj4gPj4gPiAgCSAqIE1ha2Ug c3VyZSB0aGF0IHNpZ25hbF9wZW5kaW5nX3N0YXRlKCktPnNpZ25hbF9wZW5kaW5nKCkgDQo+PiA+ PiA+IGJlbG93DQo+PiA+PiA+IC0tDQo+PiA+PiA+IDIuMTQuMS43MjkuZzU5YzBlYTE4Mw0KPj4g Pj4gPiANCj4+ID4+IA0KPj4gPg0KPg0K