Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp4638261imm; Mon, 14 May 2018 10:21:04 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo3rJHurQr5/gXUJcDJqIrODY/1HEhbEaUKiwtW5pTxOwo9jIDwHJWUFFdX4nAGyF1zOwoa X-Received: by 2002:a63:7804:: with SMTP id t4-v6mr2548674pgc.323.1526318464818; Mon, 14 May 2018 10:21:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526318464; cv=none; d=google.com; s=arc-20160816; b=kYy1/ZHRMhvotdbQ3YsYBYznSQQmVWx5tq0Ze2gqMrOIqkDXrGBt/GOAfnmt3lRmCx YA3QKYWYJiIIZH90dPfyEd+rLLGWIG/nHFh52Ek0fSEZgcM6sA05wa3orLOVWPmtvZEg rIbjuRhIvLb/r8AwWR7otjaM7nMMLU/cH4c9d8JZTz1x0+VX7gcYYjnYdFPsMTtf+8c5 Cb0LmgdW+/t73lLZ5y4BTefBtQS1LMVb5QPqCJr6Sr7UvIVK+EEx/Yx8P+kWeNa6dTA3 QU2HlDrkzzai7HoMKls9eLJuGaw5/KtIilVebWslsh0QO6QsiqxvsnXpWKe5fioC4CzG Z9+Q== 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-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:arc-authentication-results; bh=uSAMUPXCOHSSoht+SYl85SejzKnA8Eiuh5vmsKbI9tc=; b=C2FXa0a8QSyNnjUjQ6k49qxstg6vwchI9JLQzXSYJsUZK07MeZxZ+cMBUQSuiyieD4 /abOCftf9Th7uEVEQLPNENhLloBxZdvZ1COEAk6KXctTKgcoeEA2EX4cbbb2iZp+PtQa zEOgo0xId+5TIo50mwxmISIAjyOlA4ppVznrBmND4OKABh+HNSALkunPBFyxG6GVllJL Ay7cas8fwwVIsJfRiJ93loCzFce+e6Xh6DShjhnUiaHiDZvZT9RC8T1a7owbVoK5oS/j pGceDWnwWSJjo/NFGQIjcoOzVynzWSAHIeAbyFKzAYHV85i9xykmlrCYK3u3//pV/BQQ 25Pg== 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 b4-v6si9261943plr.582.2018.05.14.10.20.50; Mon, 14 May 2018 10:21:04 -0700 (PDT) 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 S1754732AbeENPyh (ORCPT + 99 others); Mon, 14 May 2018 11:54:37 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:49037 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754689AbeENPyd (ORCPT ); Mon, 14 May 2018 11:54:33 -0400 Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id w4EFnQ7t011356; Mon, 14 May 2018 17:54:08 +0200 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2hwnqxb6bd-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 14 May 2018 17:54:08 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 7E4C531; Mon, 14 May 2018 15:54:07 +0000 (GMT) Received: from Webmail-eu.st.com (sfhdag3node1.st.com [10.75.127.7]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 0CA8E5AD4; Mon, 14 May 2018 15:54:07 +0000 (GMT) Received: from SFHDAG5NODE3.st.com (10.75.127.15) by SFHDAG3NODE1.st.com (10.75.127.7) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Mon, 14 May 2018 17:54:06 +0200 Received: from SFHDAG5NODE3.st.com ([fe80::7c09:5d6b:d2c7:5f47]) by SFHDAG5NODE3.st.com ([fe80::7c09:5d6b:d2c7:5f47%20]) with mapi id 15.00.1347.000; Mon, 14 May 2018 17:54:06 +0200 From: Fabien DESSENNE To: Rob Herring , Mark Rutland , Maxime Coquelin , Alexandre TORGUE , Jassi Brar , "Ludovic BARRE" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" CC: Arnaud POULIQUEN , Loic PALLARDY , Benjamin Gaignard Subject: Re: [v4,2/2] mailbox: add STMicroelectronics STM32 IPCC driver Thread-Topic: [v4,2/2] mailbox: add STMicroelectronics STM32 IPCC driver Thread-Index: AQHT65vJBV5yV0dYiUq3flosm9bVpQ== Date: Mon, 14 May 2018 15:54:06 +0000 Message-ID: <1e910554-3b6a-6799-7d2b-c3e8bac0ba37@st.com> References: <1523515661-8318-3-git-send-email-fabien.dessenne@st.com> In-Reply-To: <1523515661-8318-3-git-send-email-fabien.dessenne@st.com> Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.75.127.50] Content-Type: text/plain; charset="utf-8" Content-ID: <67733B282BC74D4491966E2370896CCA@st.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-05-14_04:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgSmFzc2ksDQoNCkRvIHlvdSBoYXZlIGFueSBtb3JlIGNvbW1lbnRzIG9yIGRvIHlvdSBwbGFu IHRvIGhhdmUgdGhpcyBwYXRjaCBwYXJ0IG9mIA0KdGhlIDQuMTggcHVsbCByZXF1ZXN0ID8NCg0K QlINCg0KRmFiaWVuDQoNCg0KT24gMTIvMDQvMTggMDg6NDcsIEZhYmllbiBERVNTRU5ORSB3cm90 ZToNCj4gVGhlIFNUTWljcm9lbGVjdHJvbmljcyBTVE0zMiBJbnRlci1Qcm9jZXNzb3IgQ29tbXVu aWNhdGlvbiBDb250cm9sbGVyDQo+IChJUENDKSBpcyB1c2VkIGZvciBjb21tdW5pY2F0aW5nIGRh dGEgYmV0d2VlbiB0d28gcHJvY2Vzc29ycy4NCj4gSXQgcHJvdmlkZXMgYSBub24gYmxvY2tpbmcg c2lnbmFsaW5nIG1lY2hhbmlzbSB0byBwb3N0IGFuZCByZXRyaWV2ZQ0KPiBjb21tdW5pY2F0aW9u IGRhdGEgaW4gYW4gYXRvbWljIHdheS4NCj4NCj4gU2lnbmVkLW9mZi1ieTogRmFiaWVuIERlc3Nl bm5lIDxmYWJpZW4uZGVzc2VubmVAc3QuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBMdWRvdmljIEJh cnJlIDxsdWRvdmljLmJhcnJlQHN0LmNvbT4NCj4gLS0tDQo+ICAgZHJpdmVycy9tYWlsYm94L0tj b25maWcgICAgICB8ICAgOCArDQo+ICAgZHJpdmVycy9tYWlsYm94L01ha2VmaWxlICAgICB8ICAg MiArDQo+ICAgZHJpdmVycy9tYWlsYm94L3N0bTMyLWlwY2MuYyB8IDQwMiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICAgMyBmaWxlcyBjaGFuZ2VkLCA0MTIg aW5zZXJ0aW9ucygrKQ0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL21haWxib3gvc3Rt MzItaXBjYy5jDQo+DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21haWxib3gvS2NvbmZpZyBiL2Ry aXZlcnMvbWFpbGJveC9LY29uZmlnDQo+IGluZGV4IGJhMmYxNTIuLmQ3NTgxZjAgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvbWFpbGJveC9LY29uZmlnDQo+ICsrKyBiL2RyaXZlcnMvbWFpbGJveC9L Y29uZmlnDQo+IEBAIC0xNzEsNCArMTcxLDEyIEBAIGNvbmZpZyBCQ01fRkxFWFJNX01CT1gNCj4g ICAJICBNYWlsYm94IGltcGxlbWVudGF0aW9uIG9mIHRoZSBCcm9hZGNvbSBGbGV4Uk0gcmluZyBt YW5hZ2VyLA0KPiAgIAkgIHdoaWNoIHByb3ZpZGVzIGFjY2VzcyB0byB2YXJpb3VzIG9mZmxvYWQg ZW5naW5lcyBvbiBCcm9hZGNvbQ0KPiAgIAkgIFNvQ3MuIFNheSBZIGhlcmUgaWYgeW91IHdhbnQg dG8gdXNlIHRoZSBCcm9hZGNvbSBGbGV4Uk0uDQo+ICsNCj4gK2NvbmZpZyBTVE0zMl9JUENDDQo+ ICsJdHJpc3RhdGUgIlNUTTMyIElQQ0MgTWFpbGJveCINCj4gKwlkZXBlbmRzIG9uIE1BQ0hfU1RN MzJNUDE1Nw0KPiArCWhlbHANCj4gKwkgIE1haWxib3ggaW1wbGVtZW50YXRpb24gZm9yIFNUTWlj cm9lbGVjdG9uaWNzIFNUTTMyIGZhbWlseSBjaGlwcw0KPiArCSAgd2l0aCBoYXJkd2FyZSBmb3Ig SW50ZXItUHJvY2Vzc29yIENvbW11bmljYXRpb24gQ29udHJvbGxlciAoSVBDQykNCj4gKwkgIGJl dHdlZW4gcHJvY2Vzc29ycy4gU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byBoYXZlIHRoaXMgc3Vw cG9ydC4NCj4gICBlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWlsYm94L01ha2VmaWxl IGIvZHJpdmVycy9tYWlsYm94L01ha2VmaWxlDQo+IGluZGV4IDQ4OTZmOGQuLjdlYTk2NTQgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvbWFpbGJveC9NYWtlZmlsZQ0KPiArKysgYi9kcml2ZXJzL21h aWxib3gvTWFrZWZpbGUNCj4gQEAgLTM2LDMgKzM2LDUgQEAgb2JqLSQoQ09ORklHX0JDTV9GTEVY Uk1fTUJPWCkJKz0gYmNtLWZsZXhybS1tYWlsYm94Lm8NCj4gICBvYmotJChDT05GSUdfUUNPTV9B UENTX0lQQykJKz0gcWNvbS1hcGNzLWlwYy1tYWlsYm94Lm8NCj4gICANCj4gICBvYmotJChDT05G SUdfVEVHUkFfSFNQX01CT1gpCSs9IHRlZ3JhLWhzcC5vDQo+ICsNCj4gK29iai0kKENPTkZJR19T VE0zMl9JUENDKSAJKz0gc3RtMzItaXBjYy5vDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21haWxi b3gvc3RtMzItaXBjYy5jIGIvZHJpdmVycy9tYWlsYm94L3N0bTMyLWlwY2MuYw0KPiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi41MzNiMGRhDQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvZHJpdmVycy9tYWlsYm94L3N0bTMyLWlwY2MuYw0KPiBAQCAtMCwwICsxLDQwMiBA QA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4gKy8qDQo+ICsgKiBD b3B5cmlnaHQgKEMpIFNUTWljcm9lbGVjdHJvbmljcyAyMDE4IC0gQWxsIFJpZ2h0cyBSZXNlcnZl ZA0KPiArICogQXV0aG9yczogTHVkb3ZpYyBCYXJyZSA8bHVkb3ZpYy5iYXJyZUBzdC5jb20+IGZv ciBTVE1pY3JvZWxlY3Ryb25pY3MuDQo+ICsgKiAgICAgICAgICBGYWJpZW4gRGVzc2VubmUgPGZh Ymllbi5kZXNzZW5uZUBzdC5jb20+IGZvciBTVE1pY3JvZWxlY3Ryb25pY3MuDQo+ICsgKi8NCj4g Kw0KPiArI2luY2x1ZGUgPGxpbnV4L2JpdGZpZWxkLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvY2xr Lmg+DQo+ICsjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+DQo+ICsjaW5jbHVkZSA8bGludXgv bWFpbGJveF9jb250cm9sbGVyLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQo+ICsj aW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2 aWNlLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvcG1fd2FrZWlycS5oPg0KPiArDQo+ICsjZGVmaW5l IElQQ0NfWENSCQkweDAwMA0KPiArI2RlZmluZSBYQ1JfUlhPSUUJCUJJVCgwKQ0KPiArI2RlZmlu ZSBYQ1JfVFhPSUUJCUJJVCgxNikNCj4gKw0KPiArI2RlZmluZSBJUENDX1hNUgkJMHgwMDQNCj4g KyNkZWZpbmUgSVBDQ19YU0NSCQkweDAwOA0KPiArI2RlZmluZSBJUENDX1hUT1lTUgkJMHgwMGMN Cj4gKw0KPiArI2RlZmluZSBJUENDX1BST0NfT0ZGU1QJCTB4MDEwDQo+ICsNCj4gKyNkZWZpbmUg SVBDQ19IV0NGR1IJCTB4M2YwDQo+ICsjZGVmaW5lIElQQ0ZHUl9DSEFOX01BU0sJR0VOTUFTSyg3 LCAwKQ0KPiArDQo+ICsjZGVmaW5lIElQQ0NfVkVSCQkweDNmNA0KPiArI2RlZmluZSBWRVJfTUlO UkVWX01BU0sJCUdFTk1BU0soMywgMCkNCj4gKyNkZWZpbmUgVkVSX01BSlJFVl9NQVNLCQlHRU5N QVNLKDcsIDQpDQo+ICsNCj4gKyNkZWZpbmUgUlhfQklUX01BU0sJCUdFTk1BU0soMTUsIDApDQo+ ICsjZGVmaW5lIFJYX0JJVF9DSEFOKGNoYW4pCUJJVChjaGFuKQ0KPiArI2RlZmluZSBUWF9CSVRf U0hJRlQJCTE2DQo+ICsjZGVmaW5lIFRYX0JJVF9NQVNLCQlHRU5NQVNLKDMxLCAxNikNCj4gKyNk ZWZpbmUgVFhfQklUX0NIQU4oY2hhbikJQklUKFRYX0JJVF9TSElGVCArIChjaGFuKSkNCj4gKw0K PiArI2RlZmluZSBTVE0zMl9NQVhfUFJPQ1MJCTINCj4gKw0KPiArZW51bSB7DQo+ICsJSVBDQ19J UlFfUlgsDQo+ICsJSVBDQ19JUlFfVFgsDQo+ICsJSVBDQ19JUlFfTlVNLA0KPiArfTsNCj4gKw0K PiArc3RydWN0IHN0bTMyX2lwY2Mgew0KPiArCXN0cnVjdCBtYm94X2NvbnRyb2xsZXIgY29udHJv bGxlcjsNCj4gKwl2b2lkIF9faW9tZW0gKnJlZ19iYXNlOw0KPiArCXZvaWQgX19pb21lbSAqcmVn X3Byb2M7DQo+ICsJc3RydWN0IGNsayAqY2xrOw0KPiArCWludCBpcnFzW0lQQ0NfSVJRX05VTV07 DQo+ICsJaW50IHdrcDsNCj4gKwl1MzIgcHJvY19pZDsNCj4gKwl1MzIgbl9jaGFuczsNCj4gKwl1 MzIgeGNyOw0KPiArCXUzMiB4bXI7DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW5saW5lIHZvaWQg c3RtMzJfaXBjY19zZXRfYml0cyh2b2lkIF9faW9tZW0gKnJlZywgdTMyIG1hc2spDQo+ICt7DQo+ ICsJd3JpdGVsX3JlbGF4ZWQocmVhZGxfcmVsYXhlZChyZWcpIHwgbWFzaywgcmVnKTsNCj4gK30N Cj4gKw0KPiArc3RhdGljIGlubGluZSB2b2lkIHN0bTMyX2lwY2NfY2xyX2JpdHModm9pZCBfX2lv bWVtICpyZWcsIHUzMiBtYXNrKQ0KPiArew0KPiArCXdyaXRlbF9yZWxheGVkKHJlYWRsX3JlbGF4 ZWQocmVnKSAmIH5tYXNrLCByZWcpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaXJxcmV0dXJuX3Qg c3RtMzJfaXBjY19yeF9pcnEoaW50IGlycSwgdm9pZCAqZGF0YSkNCj4gK3sNCj4gKwlzdHJ1Y3Qg c3RtMzJfaXBjYyAqaXBjYyA9IGRhdGE7DQo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gaXBjYy0+ Y29udHJvbGxlci5kZXY7DQo+ICsJdTMyIHN0YXR1cywgbXIsIHRvc3IsIGNoYW47DQo+ICsJaXJx cmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7DQo+ICsJaW50IHByb2Nfb2Zmc2V0Ow0KPiArDQo+ICsJ LyogcmVhZCAnY2hhbm5lbCBvY2N1cGllZCcgc3RhdHVzIGZyb20gb3RoZXIgcHJvYyAqLw0KPiAr CXByb2Nfb2Zmc2V0ID0gaXBjYy0+cHJvY19pZCA/IC1JUENDX1BST0NfT0ZGU1QgOiBJUENDX1BS T0NfT0ZGU1Q7DQo+ICsJdG9zciA9IHJlYWRsX3JlbGF4ZWQoaXBjYy0+cmVnX3Byb2MgKyBwcm9j X29mZnNldCArIElQQ0NfWFRPWVNSKTsNCj4gKwltciA9IHJlYWRsX3JlbGF4ZWQoaXBjYy0+cmVn X3Byb2MgKyBJUENDX1hNUik7DQo+ICsNCj4gKwkvKiBzZWFyY2ggZm9yIHVubWFza2VkICdjaGFu bmVsIG9jY3VwaWVkJyAqLw0KPiArCXN0YXR1cyA9IHRvc3IgJiBGSUVMRF9HRVQoUlhfQklUX01B U0ssIH5tcik7DQo+ICsNCj4gKwlmb3IgKGNoYW4gPSAwOyBjaGFuIDwgaXBjYy0+bl9jaGFuczsg Y2hhbisrKSB7DQo+ICsJCWlmICghKHN0YXR1cyAmICgxIDw8IGNoYW4pKSkNCj4gKwkJCWNvbnRp bnVlOw0KPiArDQo+ICsJCWRldl9kYmcoZGV2LCAiJXM6IGNoYW46JWQgcnhcbiIsIF9fZnVuY19f LCBjaGFuKTsNCj4gKw0KPiArCQltYm94X2NoYW5fcmVjZWl2ZWRfZGF0YSgmaXBjYy0+Y29udHJv bGxlci5jaGFuc1tjaGFuXSwgTlVMTCk7DQo+ICsNCj4gKwkJc3RtMzJfaXBjY19zZXRfYml0cyhp cGNjLT5yZWdfcHJvYyArIElQQ0NfWFNDUiwNCj4gKwkJCQkgICAgUlhfQklUX0NIQU4oY2hhbikp Ow0KPiArDQo+ICsJCXJldCA9IElSUV9IQU5ETEVEOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiBy ZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpcnFyZXR1cm5fdCBzdG0zMl9pcGNjX3R4X2lycShp bnQgaXJxLCB2b2lkICpkYXRhKQ0KPiArew0KPiArCXN0cnVjdCBzdG0zMl9pcGNjICppcGNjID0g ZGF0YTsNCj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBpcGNjLT5jb250cm9sbGVyLmRldjsNCj4g Kwl1MzIgc3RhdHVzLCBtciwgdG9zciwgY2hhbjsNCj4gKwlpcnFyZXR1cm5fdCByZXQgPSBJUlFf Tk9ORTsNCj4gKw0KPiArCXRvc3IgPSByZWFkbF9yZWxheGVkKGlwY2MtPnJlZ19wcm9jICsgSVBD Q19YVE9ZU1IpOw0KPiArCW1yID0gcmVhZGxfcmVsYXhlZChpcGNjLT5yZWdfcHJvYyArIElQQ0Nf WE1SKTsNCj4gKw0KPiArCS8qIHNlYXJjaCBmb3IgdW5tYXNrZWQgJ2NoYW5uZWwgZnJlZScgKi8N Cj4gKwlzdGF0dXMgPSB+dG9zciAmIEZJRUxEX0dFVChUWF9CSVRfTUFTSywgfm1yKTsNCj4gKw0K PiArCWZvciAoY2hhbiA9IDA7IGNoYW4gPCBpcGNjLT5uX2NoYW5zIDsgY2hhbisrKSB7DQo+ICsJ CWlmICghKHN0YXR1cyAmICgxIDw8IGNoYW4pKSkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJ CWRldl9kYmcoZGV2LCAiJXM6IGNoYW46JWQgdHhcbiIsIF9fZnVuY19fLCBjaGFuKTsNCj4gKw0K PiArCQkvKiBtYXNrICd0eCBjaGFubmVsIGZyZWUnIGludGVycnVwdCAqLw0KPiArCQlzdG0zMl9p cGNjX3NldF9iaXRzKGlwY2MtPnJlZ19wcm9jICsgSVBDQ19YTVIsDQo+ICsJCQkJICAgIFRYX0JJ VF9DSEFOKGNoYW4pKTsNCj4gKw0KPiArCQltYm94X2NoYW5fdHhkb25lKCZpcGNjLT5jb250cm9s bGVyLmNoYW5zW2NoYW5dLCAwKTsNCj4gKw0KPiArCQlyZXQgPSBJUlFfSEFORExFRDsNCj4gKwl9 DQo+ICsNCj4gKwlyZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IHN0bTMyX2lw Y2Nfc2VuZF9kYXRhKHN0cnVjdCBtYm94X2NoYW4gKmxpbmssIHZvaWQgKmRhdGEpDQo+ICt7DQo+ ICsJdW5zaWduZWQgaW50IGNoYW4gPSAodW5zaWduZWQgaW50KWxpbmstPmNvbl9wcml2Ow0KPiAr CXN0cnVjdCBzdG0zMl9pcGNjICppcGNjID0gY29udGFpbmVyX29mKGxpbmstPm1ib3gsIHN0cnVj dCBzdG0zMl9pcGNjLA0KPiArCQkJCQkgICAgICAgY29udHJvbGxlcik7DQo+ICsNCj4gKwlkZXZf ZGJnKGlwY2MtPmNvbnRyb2xsZXIuZGV2LCAiJXM6IGNoYW46JWRcbiIsIF9fZnVuY19fLCBjaGFu KTsNCj4gKw0KPiArCS8qIHNldCBjaGFubmVsIG4gb2NjdXBpZWQgKi8NCj4gKwlzdG0zMl9pcGNj X3NldF9iaXRzKGlwY2MtPnJlZ19wcm9jICsgSVBDQ19YU0NSLCBUWF9CSVRfQ0hBTihjaGFuKSk7 DQo+ICsNCj4gKwkvKiB1bm1hc2sgJ3R4IGNoYW5uZWwgZnJlZScgaW50ZXJydXB0ICovDQo+ICsJ c3RtMzJfaXBjY19jbHJfYml0cyhpcGNjLT5yZWdfcHJvYyArIElQQ0NfWE1SLCBUWF9CSVRfQ0hB TihjaGFuKSk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBz dG0zMl9pcGNjX3N0YXJ0dXAoc3RydWN0IG1ib3hfY2hhbiAqbGluaykNCj4gK3sNCj4gKwl1bnNp Z25lZCBpbnQgY2hhbiA9ICh1bnNpZ25lZCBpbnQpbGluay0+Y29uX3ByaXY7DQo+ICsJc3RydWN0 IHN0bTMyX2lwY2MgKmlwY2MgPSBjb250YWluZXJfb2YobGluay0+bWJveCwgc3RydWN0IHN0bTMy X2lwY2MsDQo+ICsJCQkJCSAgICAgICBjb250cm9sbGVyKTsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ ICsJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGlwY2MtPmNsayk7DQo+ICsJaWYgKHJldCkgew0K PiArCQlkZXZfZXJyKGlwY2MtPmNvbnRyb2xsZXIuZGV2LCAiY2FuIG5vdCBlbmFibGUgdGhlIGNs b2NrXG4iKTsNCj4gKwkJcmV0dXJuIHJldDsNCj4gKwl9DQo+ICsNCj4gKwkvKiB1bm1hc2sgJ3J4 IGNoYW5uZWwgb2NjdXBpZWQnIGludGVycnVwdCAqLw0KPiArCXN0bTMyX2lwY2NfY2xyX2JpdHMo aXBjYy0+cmVnX3Byb2MgKyBJUENDX1hNUiwgUlhfQklUX0NIQU4oY2hhbikpOw0KPiArDQo+ICsJ cmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHN0bTMyX2lwY2Nfc2h1dGRvd24o c3RydWN0IG1ib3hfY2hhbiAqbGluaykNCj4gK3sNCj4gKwl1bnNpZ25lZCBpbnQgY2hhbiA9ICh1 bnNpZ25lZCBpbnQpbGluay0+Y29uX3ByaXY7DQo+ICsJc3RydWN0IHN0bTMyX2lwY2MgKmlwY2Mg PSBjb250YWluZXJfb2YobGluay0+bWJveCwgc3RydWN0IHN0bTMyX2lwY2MsDQo+ICsJCQkJCSAg ICAgICBjb250cm9sbGVyKTsNCj4gKw0KPiArCS8qIG1hc2sgcngvdHggaW50ZXJydXB0ICovDQo+ ICsJc3RtMzJfaXBjY19zZXRfYml0cyhpcGNjLT5yZWdfcHJvYyArIElQQ0NfWE1SLA0KPiArCQkJ ICAgIFJYX0JJVF9DSEFOKGNoYW4pIHwgVFhfQklUX0NIQU4oY2hhbikpOw0KPiArDQo+ICsJY2xr X2Rpc2FibGVfdW5wcmVwYXJlKGlwY2MtPmNsayk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgbWJveF9jaGFuX29wcyBzdG0zMl9pcGNjX29wcyA9IHsNCj4gKwkuc2VuZF9kYXRh CT0gc3RtMzJfaXBjY19zZW5kX2RhdGEsDQo+ICsJLnN0YXJ0dXAJPSBzdG0zMl9pcGNjX3N0YXJ0 dXAsDQo+ICsJLnNodXRkb3duCT0gc3RtMzJfaXBjY19zaHV0ZG93biwNCj4gK307DQo+ICsNCj4g K3N0YXRpYyBpbnQgc3RtMzJfaXBjY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQ0KPiArew0KPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+ICsJc3RydWN0 IGRldmljZV9ub2RlICpucCA9IGRldi0+b2Zfbm9kZTsNCj4gKwlzdHJ1Y3Qgc3RtMzJfaXBjYyAq aXBjYzsNCj4gKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsNCj4gKwl1bnNpZ25lZCBpbnQgaTsNCj4g KwlpbnQgcmV0Ow0KPiArCXUzMiBpcF92ZXI7DQo+ICsJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCBpcnFfbmFtZVtdID0geyJyeCIsICJ0eCJ9Ow0KPiArCWlycV9oYW5kbGVyX3QgaXJxX3RocmVh ZFtdID0ge3N0bTMyX2lwY2NfcnhfaXJxLCBzdG0zMl9pcGNjX3R4X2lycX07DQo+ICsNCj4gKwlp ZiAoIW5wKSB7DQo+ICsJCWRldl9lcnIoZGV2LCAiTm8gRFQgZm91bmRcbiIpOw0KPiArCQlyZXR1 cm4gLUVOT0RFVjsNCj4gKwl9DQo+ICsNCj4gKwlpcGNjID0gZGV2bV9remFsbG9jKGRldiwgc2l6 ZW9mKCppcGNjKSwgR0ZQX0tFUk5FTCk7DQo+ICsJaWYgKCFpcGNjKQ0KPiArCQlyZXR1cm4gLUVO T01FTTsNCj4gKw0KPiArCS8qIHByb2NfaWQgKi8NCj4gKwlpZiAob2ZfcHJvcGVydHlfcmVhZF91 MzIobnAsICJzdCxwcm9jLWlkIiwgJmlwY2MtPnByb2NfaWQpKSB7DQo+ICsJCWRldl9lcnIoZGV2 LCAiTWlzc2luZyBzdCxwcm9jLWlkXG4iKTsNCj4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ICsJfQ0K PiArDQo+ICsJaWYgKGlwY2MtPnByb2NfaWQgPj0gU1RNMzJfTUFYX1BST0NTKSB7DQo+ICsJCWRl dl9lcnIoZGV2LCAiSW52YWxpZCBwcm9jX2lkICglZClcbiIsIGlwY2MtPnByb2NfaWQpOw0KPiAr CQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9DQo+ICsNCj4gKwkvKiByZWdzICovDQo+ICsJcmVzID0g cGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsNCj4gKwlpcGNj LT5yZWdfYmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7DQo+ICsJaWYgKElT X0VSUihpcGNjLT5yZWdfYmFzZSkpDQo+ICsJCXJldHVybiBQVFJfRVJSKGlwY2MtPnJlZ19iYXNl KTsNCj4gKw0KPiArCWlwY2MtPnJlZ19wcm9jID0gaXBjYy0+cmVnX2Jhc2UgKyBpcGNjLT5wcm9j X2lkICogSVBDQ19QUk9DX09GRlNUOw0KPiArDQo+ICsJLyogY2xvY2sgKi8NCj4gKwlpcGNjLT5j bGsgPSBkZXZtX2Nsa19nZXQoZGV2LCBOVUxMKTsNCj4gKwlpZiAoSVNfRVJSKGlwY2MtPmNsaykp DQo+ICsJCXJldHVybiBQVFJfRVJSKGlwY2MtPmNsayk7DQo+ICsNCj4gKwlyZXQgPSBjbGtfcHJl cGFyZV9lbmFibGUoaXBjYy0+Y2xrKTsNCj4gKwlpZiAocmV0KSB7DQo+ICsJCWRldl9lcnIoZGV2 LCAiY2FuIG5vdCBlbmFibGUgdGhlIGNsb2NrXG4iKTsNCj4gKwkJcmV0dXJuIHJldDsNCj4gKwl9 DQo+ICsNCj4gKwkvKiBpcnEgKi8NCj4gKwlmb3IgKGkgPSAwOyBpIDwgSVBDQ19JUlFfTlVNOyBp KyspIHsNCj4gKwkJaXBjYy0+aXJxc1tpXSA9IG9mX2lycV9nZXRfYnluYW1lKGRldi0+b2Zfbm9k ZSwgaXJxX25hbWVbaV0pOw0KPiArCQlpZiAoaXBjYy0+aXJxc1tpXSA8IDApIHsNCj4gKwkJCWRl dl9lcnIoZGV2LCAibm8gSVJRIHNwZWNpZmllZCAlc1xuIiwgaXJxX25hbWVbaV0pOw0KPiArCQkJ cmV0ID0gaXBjYy0+aXJxc1tpXTsNCj4gKwkJCWdvdG8gZXJyX2NsazsNCj4gKwkJfQ0KPiArDQo+ ICsJCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoZGV2LCBpcGNjLT5pcnFzW2ldLCBO VUxMLA0KPiArCQkJCQkJaXJxX3RocmVhZFtpXSwgSVJRRl9PTkVTSE9ULA0KPiArCQkJCQkJZGV2 X25hbWUoZGV2KSwgaXBjYyk7DQo+ICsJCWlmIChyZXQpIHsNCj4gKwkJCWRldl9lcnIoZGV2LCAi ZmFpbGVkIHRvIHJlcXVlc3QgaXJxICVkICglZClcbiIsIGksIHJldCk7DQo+ICsJCQlnb3RvIGVy cl9jbGs7DQo+ICsJCX0NCj4gKwl9DQo+ICsNCj4gKwkvKiBtYXNrIGFuZCBlbmFibGUgcngvdHgg aXJxICovDQo+ICsJc3RtMzJfaXBjY19zZXRfYml0cyhpcGNjLT5yZWdfcHJvYyArIElQQ0NfWE1S LA0KPiArCQkJICAgIFJYX0JJVF9NQVNLIHwgVFhfQklUX01BU0spOw0KPiArCXN0bTMyX2lwY2Nf c2V0X2JpdHMoaXBjYy0+cmVnX3Byb2MgKyBJUENDX1hDUiwgWENSX1JYT0lFIHwgWENSX1RYT0lF KTsNCj4gKw0KPiArCS8qIHdha2V1cCAqLw0KPiArCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wo bnAsICJ3YWtldXAtc291cmNlIikpIHsNCj4gKwkJaXBjYy0+d2twID0gb2ZfaXJxX2dldF9ieW5h bWUoZGV2LT5vZl9ub2RlLCAid2FrZXVwIik7DQo+ICsJCWlmIChpcGNjLT53a3AgPCAwKSB7DQo+ ICsJCQlkZXZfZXJyKGRldiwgImNvdWxkIG5vdCBnZXQgd2FrZXVwIElSUVxuIik7DQo+ICsJCQly ZXQgPSBpcGNjLT53a3A7DQo+ICsJCQlnb3RvIGVycl9jbGs7DQo+ICsJCX0NCj4gKw0KPiArCQlk ZXZpY2VfaW5pdF93YWtldXAoZGV2LCB0cnVlKTsNCj4gKwkJcmV0ID0gZGV2X3BtX3NldF9kZWRp Y2F0ZWRfd2FrZV9pcnEoZGV2LCBpcGNjLT53a3ApOw0KPiArCQlpZiAocmV0KSB7DQo+ICsJCQlk ZXZfZXJyKGRldiwgIkZhaWxlZCB0byBzZXQgd2FrZSB1cCBpcnFcbiIpOw0KPiArCQkJZ290byBl cnJfaW5pdF93a3A7DQo+ICsJCX0NCj4gKwl9IGVsc2Ugew0KPiArCQlkZXZpY2VfaW5pdF93YWtl dXAoZGV2LCBmYWxzZSk7DQo+ICsJfQ0KPiArDQo+ICsJLyogbWFpbGJveCBjb250cm9sbGVyICov DQo+ICsJaXBjYy0+bl9jaGFucyA9IHJlYWRsX3JlbGF4ZWQoaXBjYy0+cmVnX2Jhc2UgKyBJUEND X0hXQ0ZHUik7DQo+ICsJaXBjYy0+bl9jaGFucyAmPSBJUENGR1JfQ0hBTl9NQVNLOw0KPiArDQo+ ICsJaXBjYy0+Y29udHJvbGxlci5kZXYgPSBkZXY7DQo+ICsJaXBjYy0+Y29udHJvbGxlci50eGRv bmVfaXJxID0gdHJ1ZTsNCj4gKwlpcGNjLT5jb250cm9sbGVyLm9wcyA9ICZzdG0zMl9pcGNjX29w czsNCj4gKwlpcGNjLT5jb250cm9sbGVyLm51bV9jaGFucyA9IGlwY2MtPm5fY2hhbnM7DQo+ICsJ aXBjYy0+Y29udHJvbGxlci5jaGFucyA9IGRldm1fa2NhbGxvYyhkZXYsIGlwY2MtPmNvbnRyb2xs ZXIubnVtX2NoYW5zLA0KPiArCQkJCQkgICAgICBzaXplb2YoKmlwY2MtPmNvbnRyb2xsZXIuY2hh bnMpLA0KPiArCQkJCQkgICAgICBHRlBfS0VSTkVMKTsNCj4gKwlpZiAoIWlwY2MtPmNvbnRyb2xs ZXIuY2hhbnMpIHsNCj4gKwkJcmV0ID0gLUVOT01FTTsNCj4gKwkJZ290byBlcnJfaXJxX3drcDsN Cj4gKwl9DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgaXBjYy0+Y29udHJvbGxlci5udW1fY2hh bnM7IGkrKykNCj4gKwkJaXBjYy0+Y29udHJvbGxlci5jaGFuc1tpXS5jb25fcHJpdiA9ICh2b2lk ICopaTsNCj4gKw0KPiArCXJldCA9IG1ib3hfY29udHJvbGxlcl9yZWdpc3RlcigmaXBjYy0+Y29u dHJvbGxlcik7DQo+ICsJaWYgKHJldCkNCj4gKwkJZ290byBlcnJfaXJxX3drcDsNCj4gKw0KPiAr CXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGlwY2MpOw0KPiArDQo+ICsJaXBfdmVyID0gcmVh ZGxfcmVsYXhlZChpcGNjLT5yZWdfYmFzZSArIElQQ0NfVkVSKTsNCj4gKw0KPiArCWRldl9pbmZv KGRldiwgImlwY2MgcmV2OiVsZC4lbGQgZW5hYmxlZCwgJWQgY2hhbnMsIHByb2MgJWRcbiIsDQo+ ICsJCSBGSUVMRF9HRVQoVkVSX01BSlJFVl9NQVNLLCBpcF92ZXIpLA0KPiArCQkgRklFTERfR0VU KFZFUl9NSU5SRVZfTUFTSywgaXBfdmVyKSwNCj4gKwkJIGlwY2MtPmNvbnRyb2xsZXIubnVtX2No YW5zLCBpcGNjLT5wcm9jX2lkKTsNCj4gKw0KPiArCWNsa19kaXNhYmxlX3VucHJlcGFyZShpcGNj LT5jbGspOw0KPiArCXJldHVybiAwOw0KPiArDQo+ICtlcnJfaXJxX3drcDoNCj4gKwlpZiAoaXBj Yy0+d2twKQ0KPiArCQlkZXZfcG1fY2xlYXJfd2FrZV9pcnEoZGV2KTsNCj4gK2Vycl9pbml0X3dr cDoNCj4gKwlkZXZpY2VfaW5pdF93YWtldXAoZGV2LCBmYWxzZSk7DQo+ICtlcnJfY2xrOg0KPiAr CWNsa19kaXNhYmxlX3VucHJlcGFyZShpcGNjLT5jbGspOw0KPiArCXJldHVybiByZXQ7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBpbnQgc3RtMzJfaXBjY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikNCj4gK3sNCj4gKwlzdHJ1Y3Qgc3RtMzJfaXBjYyAqaXBjYyA9IHBsYXRmb3Jt X2dldF9kcnZkYXRhKHBkZXYpOw0KPiArDQo+ICsJbWJveF9jb250cm9sbGVyX3VucmVnaXN0ZXIo JmlwY2MtPmNvbnRyb2xsZXIpOw0KPiArDQo+ICsJaWYgKGlwY2MtPndrcCkNCj4gKwkJZGV2X3Bt X2NsZWFyX3dha2VfaXJxKCZwZGV2LT5kZXYpOw0KPiArDQo+ICsJZGV2aWNlX2luaXRfd2FrZXVw KCZwZGV2LT5kZXYsIGZhbHNlKTsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICsj aWZkZWYgQ09ORklHX1BNX1NMRUVQDQo+ICtzdGF0aWMgdm9pZCBzdG0zMl9pcGNjX3NldF9pcnFf d2FrZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGJvb2wgZW5hYmxlKQ0KPiArew0KPiArCXN0cnVjdCBz dG0zMl9pcGNjICppcGNjID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsJdW5zaWduZWQgaW50 IGk7DQo+ICsNCj4gKwlpZiAoZGV2aWNlX21heV93YWtldXAoZGV2KSkNCj4gKwkJZm9yIChpID0g MDsgaSA8IElQQ0NfSVJRX05VTTsgaSsrKQ0KPiArCQkJaXJxX3NldF9pcnFfd2FrZShpcGNjLT5p cnFzW2ldLCBlbmFibGUpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IHN0bTMyX2lwY2Nfc3Vz cGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IHN0bTMyX2lwY2MgKmlw Y2MgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKw0KPiArCWlwY2MtPnhtciA9IHJlYWRsX3Jl bGF4ZWQoaXBjYy0+cmVnX3Byb2MgKyBJUENDX1hNUik7DQo+ICsJaXBjYy0+eGNyID0gcmVhZGxf cmVsYXhlZChpcGNjLT5yZWdfcHJvYyArIElQQ0NfWENSKTsNCj4gKw0KPiArCXN0bTMyX2lwY2Nf c2V0X2lycV93YWtlKGRldiwgdHJ1ZSk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0K PiArc3RhdGljIGludCBzdG0zMl9pcGNjX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7 DQo+ICsJc3RydWN0IHN0bTMyX2lwY2MgKmlwY2MgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4g Kw0KPiArCXN0bTMyX2lwY2Nfc2V0X2lycV93YWtlKGRldiwgZmFsc2UpOw0KPiArDQo+ICsJd3Jp dGVsX3JlbGF4ZWQoaXBjYy0+eG1yLCBpcGNjLT5yZWdfcHJvYyArIElQQ0NfWE1SKTsNCj4gKwl3 cml0ZWxfcmVsYXhlZChpcGNjLT54Y3IsIGlwY2MtPnJlZ19wcm9jICsgSVBDQ19YQ1IpOw0KPiAr DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0KPiArc3RhdGljIFNJTVBMRV9E RVZfUE1fT1BTKHN0bTMyX2lwY2NfcG1fb3BzLA0KPiArCQkJIHN0bTMyX2lwY2Nfc3VzcGVuZCwg c3RtMzJfaXBjY19yZXN1bWUpOw0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCBzdG0zMl9pcGNjX29mX21hdGNoW10gPSB7DQo+ICsJeyAuY29tcGF0aWJsZSA9ICJzdCxz dG0zMm1wMS1pcGNjIiB9LA0KPiArCXt9LA0KPiArfTsNCj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUo b2YsIHN0bTMyX2lwY2Nfb2ZfbWF0Y2gpOw0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBzdG0zMl9pcGNjX2RyaXZlciA9IHsNCj4gKwkuZHJpdmVyID0gew0KPiArCQkubmFt ZSA9ICJzdG0zMi1pcGNjIiwNCj4gKwkJLnBtID0gJnN0bTMyX2lwY2NfcG1fb3BzLA0KPiArCQku b2ZfbWF0Y2hfdGFibGUgPSBzdG0zMl9pcGNjX29mX21hdGNoLA0KPiArCX0sDQo+ICsJLnByb2Jl CQk9IHN0bTMyX2lwY2NfcHJvYmUsDQo+ICsJLnJlbW92ZQkJPSBzdG0zMl9pcGNjX3JlbW92ZSwN Cj4gK307DQo+ICsNCj4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoc3RtMzJfaXBjY19kcml2ZXIp Ow0KPiArDQo+ICtNT0RVTEVfQVVUSE9SKCJMdWRvdmljIEJhcnJlIDxsdWRvdmljLmJhcnJlQHN0 LmNvbT4iKTsNCj4gK01PRFVMRV9BVVRIT1IoIkZhYmllbiBEZXNzZW5uZSA8ZmFiaWVuLmRlc3Nl bm5lQHN0LmNvbT4iKTsNCj4gK01PRFVMRV9ERVNDUklQVElPTigiU1RNMzIgSVBDQyBkcml2ZXIi KTsNCj4gK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsNCg==