From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Sun, 26 Mar 2023 10:36:56 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pgLrz-00FCos-H4 for lore@lore.pengutronix.de; Sun, 26 Mar 2023 10:36:56 +0200 Received: from bombadil.infradead.org ([2607:7c80:54:3::133]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pgLry-0006jL-Ft for lore@pengutronix.de; Sun, 26 Mar 2023 10:36:55 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-Type:References:In-Reply-To:Date:Cc:To:From :Subject:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Kd7JNlxFM0BMy/3aRu7/pTWiO+zNBp+BJsQCYdKf0E4=; b=VDaMSpI1D/AktTLK+JIfM+PPX+ knqRzSaBPNMSGSx7xK7SsQ7lLrGPk/VcXoBVgIwcmYJrGlx5IKEkaAFsPvRewuVFt97MdrM5S5UtG auAdKJyqeEi8626QtTcUyiZvSd740TgLAyXHlDQL/2DAv1frXIsY8IHOUuCkIVTYeJADTyM6UZJje ROCsSBgLXITWFEVJZGFVYCrDsMKR9ashECNS1JKZHxObLbwA+vSMOBVLyd6ztH1YvEDUkIsokj1ug UZ/7KUwHO2QsVeLrfC+JL/yX4sqdWqM9OHB6C43L2/LM4rpSe2T00cDsU7UiBCcEMaCnMFqVQnXXb JTFQ3sdA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pgLqJ-008BYz-0C; Sun, 26 Mar 2023 08:35:11 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pgLqE-008BY0-1Y for barebox@lists.infradead.org; Sun, 26 Mar 2023 08:35:09 +0000 Received: from ptz.office.stw.pengutronix.de ([2a0a:edc0:0:900:1d::77] helo=[IPv6:::1]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pgLq6-0006QK-PX; Sun, 26 Mar 2023 10:34:58 +0200 Message-ID: From: Rouven Czerwinski To: Sascha Hauer , Barebox List Cc: Ahmad Fatoum Date: Sun, 26 Mar 2023 10:34:55 +0200 In-Reply-To: <20230324140327.2154039-3-s.hauer@pengutronix.de> References: <20230324140327.2154039-1-s.hauer@pengutronix.de> <20230324140327.2154039-3-s.hauer@pengutronix.de> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230326_013506_876650_2C07C3FF X-CRM114-Status: GOOD ( 27.32 ) X-BeenThere: barebox@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "barebox" X-SA-Exim-Connect-IP: 2607:7c80:54:3::133 X-SA-Exim-Mail-From: barebox-bounces+lore=pengutronix.de@lists.infradead.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-5.1 required=4.0 tests=AWL,BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.2 Subject: Re: [PATCH 2/5] ARM: Rockchip: implement memory read out from controller X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on metis.ext.pengutronix.de) SGksCgpPbiBGcmksIDIwMjMtMDMtMjQgYXQgMTU6MDMgKzAxMDAsIFNhc2NoYSBIYXVlciB3cm90 ZToKPiBGcm9tOiBBaG1hZCBGYXRvdW0gPGFobWFkQGEzZi5hdD4KPiAKPiBBZGQgYSBkcml2ZXIg dG8gcmVhZCBvdXQgdGhlIGFtb3VudCBvZiBtZW1vcnkgZnJvbSB0aGUgRERSIGNvbnRyb2xsZXIu Cj4gVGhlIGRlY29kaW5nIG9mIHRoZSByZWdpc3RlcnMgaGFzIGJlZW4gdGFrZW4gZnJvbSBVLUJv b3QuIEN1cnJlbnRseQo+IHN1cHBvcnRlZCBhcmUgdGhlIFJLMzM5OSBhbmQgdGhlIFJLMzU2OCwg YnV0IGRlY29kaW5nIHNob3VsZCB3b3JrIG9uCj4gb3RoZXIgUm9ja2NoaXAgU29DcyBhcyB3ZWxs Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFobWFkIEZhdG91bSA8YWhtYWRAYTNmLmF0Pgo+IFNpZ25l ZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KPiAtLS0KPiDC oGFyY2gvYXJtL21hY2gtcm9ja2NoaXAvTWFrZWZpbGXCoMKgwqDCoCB8wqDCoCAxICsKPiDCoGFy Y2gvYXJtL21hY2gtcm9ja2NoaXAvZG1jLmPCoMKgwqDCoMKgwqDCoCB8IDIzMiArKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gwqBpbmNsdWRlL2xpbnV4L3NpemVzLmjCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHzCoMKgIDMgKwo+IMKgaW5jbHVkZS9tYWNoL3JvY2tjaGlwL2RtYy5o wqDCoMKgwqDCoMKgwqDCoCB8wqAgODYgKysrKysrKysrKysKPiDCoGluY2x1ZGUvbWFjaC9yb2Nr Y2hpcC9yazMzOTktcmVncy5oIHzCoMKgIDEgKwo+IMKgaW5jbHVkZS9tYWNoL3JvY2tjaGlwL3Jr MzU2OC1yZWdzLmggfMKgwqAgMSArCj4gwqA2IGZpbGVzIGNoYW5nZWQsIDMyNCBpbnNlcnRpb25z KCspCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1yb2NrY2hpcC9kbWMuYwo+ IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbWFjaC9yb2NrY2hpcC9kbWMuaAo+IAo+IGRp ZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXJvY2tjaGlwL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFj aC1yb2NrY2hpcC9NYWtlZmlsZQo+IGluZGV4IDI1MjlhZjdjN2UuLmY2YzU3NTg1NGUgMTAwNjQ0 Cj4gLS0tIGEvYXJjaC9hcm0vbWFjaC1yb2NrY2hpcC9NYWtlZmlsZQo+ICsrKyBiL2FyY2gvYXJt L21hY2gtcm9ja2NoaXAvTWFrZWZpbGUKPiBAQCAtNiw0ICs2LDUgQEAgb2JqLSQoQ09ORklHX0FS Q0hfUkszMTg4KSArPSByazMxODgubwo+IMKgb2JqLSQoQ09ORklHX0FSQ0hfUkszMjg4KSArPSBy azMyODgubwo+IMKgb2JqLXBibC0kKENPTkZJR19BUkNIX1JLMzU2OCkgKz0gcmszNTY4Lm8KPiDC oG9iai0kKENPTkZJR19BUkNIX1JPQ0tDSElQX1Y4KSArPSBib290bS5vCj4gK29iai1wYmwtJChD T05GSUdfQVJDSF9ST0NLQ0hJUF9WOCkgKz0gZG1jLm8KPiDCoG9iai0kKENPTkZJR19CQVJFQk9Y X1VQREFURSkgKz0gYmJ1Lm8KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1yb2NrY2hpcC9k bWMuYyBiL2FyY2gvYXJtL21hY2gtcm9ja2NoaXAvZG1jLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAwMDAuLjNhMGQ4MzU2ODkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv YXJjaC9hcm0vbWFjaC1yb2NrY2hpcC9kbWMuYwo+IEBAIC0wLDAgKzEsMjMyIEBACj4gKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKEMp IDIwMTcgUm9ja2NoaXAgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCj4gKyAqLwo+ICsKPiArI2RlZmlu ZSBwcl9mbXQoZm10KSAicm9ja2NoaXAtZG1jOiAiIGZtdAo+ICsKPiArI2luY2x1ZGUgPGNvbW1v bi5oPgo+ICsjaW5jbHVkZSA8aW5pdC5oPgo+ICsjaW5jbHVkZSA8YXNtL2JhcmVib3gtYXJtLmg+ Cj4gKyNpbmNsdWRlIDxhc20vbWVtb3J5Lmg+Cj4gKyNpbmNsdWRlIDxwYmwuaD4KPiArI2luY2x1 ZGUgPGlvLmg+Cj4gKyNpbmNsdWRlIDxyZWdtYXAuaD4KPiArI2luY2x1ZGUgPG1mZC9zeXNjb24u aD4KPiArI2luY2x1ZGUgPG1hY2gvcm9ja2NoaXAvZG1jLmg+Cj4gKyNpbmNsdWRlIDxtYWNoL3Jv Y2tjaGlwL3JrMzM5OS1yZWdzLmg+Cj4gKyNpbmNsdWRlIDxtYWNoL3JvY2tjaGlwL3JrMzU2OC1y ZWdzLmg+Cj4gKwo+ICsjZGVmaW5lIFJLMzM5OV9QTVVHUkZfT1NfUkVHMsKgwqDCoMKgwqDCoMKg wqDCoMKgMHgzMDgKPiArI2RlZmluZSBSSzMzOTlfUE1VR1JGX09TX1JFRzPCoMKgwqDCoMKgwqDC oMKgwqDCoDB4MzBDCj4gKwo+ICsjZGVmaW5lIFJLMzU2OF9QTVVHUkZfT1NfUkVHMsKgwqDCoMKg wqDCoMKgwqDCoMKgIDB4MjA4Cj4gKyNkZWZpbmUgUkszNTY4X1BNVUdSRl9PU19SRUczwqDCoMKg wqDCoMKgwqDCoMKgwqAgMHgyMGMKPiArCj4gK3N0cnVjdCByb2NrY2hpcF9kbWNfcmVnaW9uIHsK PiArwqDCoMKgwqDCoMKgwqByZXNvdXJjZV9zaXplX3QgYmFzZSwgc2l6ZTsKPiArfTsKPiArCj4g K3N0cnVjdCByb2NrY2hpcF9kbWNfZHJ2ZGF0YSB7Cj4gK8KgwqDCoMKgwqDCoMKgdW5zaWduZWQg aW50IG9zX3JlZzI7Cj4gK8KgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IG9zX3JlZzM7Cj4gK8Kg wqDCoMKgwqDCoMKgY29uc3Qgc3RydWN0IHJvY2tjaGlwX2RtY19yZWdpb24gKnJlZ2lvbnM7Cj4g K307Cj4gKwo+ICtzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90IHJvY2tjaGlwX3NkcmFtX3NpemUodTMy IHN5c19yZWcyLCB1MzIgc3lzX3JlZzMpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqB1MzIgcmFuaywg Y3MwX2NvbCwgYmssIGNzMF9yb3csIGNzMV9yb3csIGJ3LCByb3dfM180Owo+ICvCoMKgwqDCoMKg wqDCoHJlc291cmNlX3NpemVfdCBjaGlwc2l6ZV9tYiwgc2l6ZV9tYiA9IDA7Cj4gK8KgwqDCoMKg wqDCoMKgdTMyIGNoOwo+ICvCoMKgwqDCoMKgwqDCoHUzMiBjczFfY29sOwo+ICvCoMKgwqDCoMKg wqDCoHUzMiBiZyA9IDA7Cj4gK8KgwqDCoMKgwqDCoMKgdTMyIGRidywgZHJhbV90eXBlOwo+ICvC oMKgwqDCoMKgwqDCoHUzMiBjaF9udW0gPSAxICsgRklFTERfR0VUKFNZU19SRUdfTlVNX0NILCBz eXNfcmVnMik7Cj4gK8KgwqDCoMKgwqDCoMKgdTMyIHZlcnNpb24gPSBGSUVMRF9HRVQoU1lTX1JF R19WRVJTSU9OLCBzeXNfcmVnMyk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHByX2RlYnVnKCIlcyhy ZWcyPSV4LCByZWczPSV4KVxuIiwgX19mdW5jX18sIHN5c19yZWcyLCBzeXNfcmVnMyk7Cj4gKwo+ ICvCoMKgwqDCoMKgwqDCoGRyYW1fdHlwZSA9IEZJRUxEX0dFVChTWVNfUkVHX0REUlRZUEUsIHN5 c19yZWcyKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaWYgKHZlcnNpb24gPj0gMykKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZHJhbV90eXBlIHw9IEZJRUxEX0dFVChTWVNfUkVHX0VY VEVORF9ERFJUWVBFLCBzeXNfcmVnMykgPDwgMzsKPiArCj4gK8KgwqDCoMKgwqDCoMKgZm9yIChj aCA9IDA7IGNoIDwgY2hfbnVtOyBjaCsrKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHJhbmsgPSAxICsgKHN5c19yZWcyID4+IFNZU19SRUdfUkFOS19TSElGVChjaCkgJiBTWVNf UkVHX1JBTktfTUFTSyk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNzMF9jb2wg PSA5ICsgKHN5c19yZWcyID4+IFNZU19SRUdfQ09MX1NISUZUKGNoKSAmIFNZU19SRUdfQ09MX01B U0spOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjczFfY29sID0gY3MwX2NvbDsK PiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJrID0gMyAtICgoc3lzX3JlZzIg Pj4gU1lTX1JFR19CS19TSElGVChjaCkpICYgU1lTX1JFR19CS19NQVNLKTsKPiArCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNzMF9yb3cgPSBzeXNfcmVnMiA+PiBTWVNfUkVHX0NT MF9ST1dfU0hJRlQoY2gpICYgU1lTX1JFR19DUzBfUk9XX01BU0s7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGNzMV9yb3cgPSBzeXNfcmVnMiA+PiBTWVNfUkVHX0NTMV9ST1dfU0hJ RlQoY2gpICYgU1lTX1JFR19DUzFfUk9XX01BU0s7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpZiAodmVyc2lvbiA+PSAyKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjczFfY29sID0gOSArIChzeXNfcmVnMyA+PiBTWVNfUkVH X0NTMV9DT0xfU0hJRlQoY2gpICYKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTWVNfUkVHX0NTMV9DT0xfTUFTSyk7Cj4g Kwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY3MwX3Jv dyB8PSAoc3lzX3JlZzMgPj4gU1lTX1JFR19FWFRFTkRfQ1MwX1JPV19TSElGVChjaCkgJgo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBTWVNfUkVHX0VYVEVORF9DUzBfUk9XX01BU0spIDw8IDI7Cj4g Kwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGNz MF9yb3cgPT0gNykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBjczBfcm93ID0gMTI7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlbHNlCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY3MwX3JvdyArPSAxMzsKPiAr Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjczFfcm93 IHw9IChzeXNfcmVnMyA+PiBTWVNfUkVHX0VYVEVORF9DUzFfUk9XX1NISUZUKGNoKSAmCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoFNZU19SRUdfRVhURU5EX0NTMV9ST1dfTUFTSykgPDwgMjsKPiAr Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoY3Mx X3JvdyA9PSA3KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGNzMV9yb3cgPSAxMjsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVsc2UKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjczFfcm93ICs9IDEzOwo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9IGVsc2Ugewo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY3MwX3JvdyArPSAxMzsKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNzMV9yb3cgKz0gMTM7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGJ3ID0gKDIgPj4gKChzeXNfcmVnMiA+PiBTWVNfUkVHX0JXX1NISUZUKGNoKSkg JiBTWVNfUkVHX0JXX01BU0spKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcm93 XzNfNCA9IHN5c19yZWcyID4+IFNZU19SRUdfUk9XXzNfNF9TSElGVChjaCkgJiBTWVNfUkVHX1JP V18zXzRfTUFTSzsKPiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChkcmFt X3R5cGUgPT0gRERSNCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZGJ3ID0gKHN5c19yZWcyID4+IFNZU19SRUdfREJXX1NISUZUKGNoKSkgJiBTWVNf UkVHX0RCV19NQVNLOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgYmcgPSAoZGJ3ID09IDIpID8gMiA6IDE7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNoaXBzaXplX21i ID0gKDEgPDwgKGNzMF9yb3cgKyBjczBfY29sICsgYmsgKyBiZyArIGJ3IC0gMjApKTsKPiArCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChyYW5rID4gMSkKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNoaXBzaXplX21iICs9IGNoaXBz aXplX21iID4+ICgoY3MwX3JvdyAtIGNzMV9yb3cpICsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGNz MF9jb2wgLSBjczFfY29sKSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChy b3dfM180KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Y2hpcHNpemVfbWIgPSBjaGlwc2l6ZV9tYiAqIDMgLyA0Owo+ICsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgc2l6ZV9tYiArPSBjaGlwc2l6ZV9tYjsKPiArCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGlmIChyYW5rID4gMSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHByX2RlYnVnKCJyYW5rICVkIGNzMF9jb2wgJWQgY3Mx X2NvbCAlZCBiayAlZCBjczBfcm93ICVkICIKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgImNzMV9yb3cgJWQgYncgJWQgcm93 XzNfNCAlZFxuIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmFuaywgY3MwX2NvbCwgY3MxX2NvbCwgYmssIGNzMF9yb3cs Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGNzMV9yb3csIGJ3LCByb3dfM180KTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZWxzZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgcHJfZGVidWcoInJhbmsgJWQgY3MwX2NvbCAlZCBiayAlZCBjczBfcm93ICVkICIKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgImJ3ICVkIHJvd18zXzQgJWRcbiIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJhbmssIGNzMF9jb2wsIGJrLCBj czBfcm93LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBidywgcm93XzNfNCk7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICsKPiAr wqDCoMKgwqDCoMKgwqByZXR1cm4gKHJlc291cmNlX3NpemVfdClzaXplX21iIDw8IDIwOwo+ICt9 Cj4gKwo+ICtyZXNvdXJjZV9zaXplX3QgcmszMzk5X3JhbTBfc2l6ZSh2b2lkKQo+ICt7Cj4gK8Kg wqDCoMKgwqDCoMKgdm9pZCBfX2lvbWVtICpwbXVncmYgPSBJT01FTShSSzMzOTlfUE1VR1JGX0JB U0UpOwo+ICvCoMKgwqDCoMKgwqDCoHUzMiBzeXNfcmVnMiwgc3lzX3JlZzM7Cj4gK8KgwqDCoMKg wqDCoMKgcmVzb3VyY2Vfc2l6ZV90IHNpemU7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHN5c19yZWcy ID0gcmVhZGwocG11Z3JmICsgUkszMzk5X1BNVUdSRl9PU19SRUcyKTsKPiArwqDCoMKgwqDCoMKg wqBzeXNfcmVnMyA9IHJlYWRsKHBtdWdyZiArIFJLMzM5OV9QTVVHUkZfT1NfUkVHMyk7Cj4gKwo+ ICvCoMKgwqDCoMKgwqDCoHNpemUgPSByb2NrY2hpcF9zZHJhbV9zaXplKHN5c19yZWcyLCBzeXNf cmVnMyk7Cj4gK8KgwqDCoMKgwqDCoMKgc2l6ZSA9IG1pbl90KHJlc291cmNlX3NpemVfdCwgU1pf NEcgLSBTWl8xMjhNLCBzaXplKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcHJfZGVidWcoIiVzKCkg PSAlbGx1XG4iLCBfX2Z1bmNfXywgKHU2NClzaXplKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0 dXJuIHNpemU7Cj4gK30KPiArCj4gK3Jlc291cmNlX3NpemVfdCByazM1NjhfcmFtMF9zaXplKHZv aWQpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqB2b2lkIF9faW9tZW0gKnBtdWdyZiA9IElPTUVNKFJL MzU2OF9QTVVHUkZfQkFTRSk7Cj4gK8KgwqDCoMKgwqDCoMKgdTMyIHN5c19yZWcyLCBzeXNfcmVn MzsKPiArwqDCoMKgwqDCoMKgwqByZXNvdXJjZV9zaXplX3Qgc2l6ZTsKPiArCj4gK8KgwqDCoMKg wqDCoMKgc3lzX3JlZzIgPSByZWFkbChwbXVncmYgKyBSSzM1NjhfUE1VR1JGX09TX1JFRzIpOwo+ ICvCoMKgwqDCoMKgwqDCoHN5c19yZWczID0gcmVhZGwocG11Z3JmICsgUkszNTY4X1BNVUdSRl9P U19SRUczKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgc2l6ZSA9IHJvY2tjaGlwX3NkcmFtX3NpemUo c3lzX3JlZzIsIHN5c19yZWczKTsKPiArwqDCoMKgwqDCoMKgwqBzaXplID0gbWluX3QocmVzb3Vy Y2Vfc2l6ZV90LCBTWl80RyAtIFNaXzEyOE0sIHNpemUpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGhpcyBeClNob3VsZCBiZSBTWl8yNTZNLCBUaGUgZnJpc3Qg bWVtb3J5IHJlZ2lvbiBmb3IgUkszNTZ4IGlzIGZyb20gMHgwIHRvCjB4ZjAwMF8wMDAwLCBub3Qg MHhmODAwXzAwMDAuIFRlc3RlZCBvbiBSYWR4YSBDTTMgUkszNTY2LgoKPiArCj4gK8KgwqDCoMKg wqDCoMKgcHJfZGVidWcoIiVzKCkgPSAlbGx1XG4iLCBfX2Z1bmNfXywgKHU2NClzaXplKTsKPiAr Cj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIHNpemU7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcm9j a2NoaXBfZG1jX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICvCoMKgwqDCoMKgwqDC oGNvbnN0IHN0cnVjdCByb2NrY2hpcF9kbWNfZHJ2ZGF0YSAqZHJ2ZGF0YTsKPiArwqDCoMKgwqDC oMKgwqBjb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfZG1jX3JlZ2lvbiAqcmVnaW9uOwo+ICvCoMKgwqDC oMKgwqDCoHJlc291cmNlX3NpemVfdCBtZW1iYXNlLCBtZW1zaXplOwo+ICvCoMKgwqDCoMKgwqDC oHN0cnVjdCByZWdtYXAgKnJlZ21hcDsKPiArwqDCoMKgwqDCoMKgwqB1MzIgc3lzX3JlZzIsIHN5 c19yZWczOwo+ICsKPiArwqDCoMKgwqDCoMKgwqByZWdtYXAgPSBzeXNjb25fcmVnbWFwX2xvb2t1 cF9ieV9waGFuZGxlKGRldi0+b2Zfbm9kZSwgInJvY2tjaGlwLHBtdSIpOwo+ICvCoMKgwqDCoMKg wqDCoGlmIChJU19FUlIocmVnbWFwKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg cmV0dXJuIFBUUl9FUlIocmVnbWFwKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgZHJ2ZGF0YSA9IGRl dmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwo+ICvCoMKgwqDCoMKgwqDCoGlmICghZHJ2ZGF0YSkK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FTk9FTlQ7Cj4gKwo+ICvC oMKgwqDCoMKgwqDCoHJlZ21hcF9yZWFkKHJlZ21hcCwgZHJ2ZGF0YS0+b3NfcmVnMiwgJnN5c19y ZWcyKTsKPiArwqDCoMKgwqDCoMKgwqByZWdtYXBfcmVhZChyZWdtYXAsIGRydmRhdGEtPm9zX3Jl ZzMsICZzeXNfcmVnMyk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoG1lbXNpemUgPSByb2NrY2hpcF9z ZHJhbV9zaXplKHN5c19yZWcyLCBzeXNfcmVnMyk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGRldl9p bmZvKGRldiwgIkRldGVjdGVkIG1lbW9yeSBzaXplOiAlcGFcbiIsICZtZW1zaXplKTsKPiArCj4g K8KgwqDCoMKgwqDCoMKgcmVnaW9uID0gZHJ2ZGF0YS0+cmVnaW9uczsKPiArCj4gK8KgwqDCoMKg wqDCoMKgaWYgKG1lbXNpemUgPj0gcmVnaW9uWzBdLnNpemUpIHsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgaWYgKHJlZ2lvblsxXS5zaXplKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXJtX2FkZF9tZW1fZGV2aWNlKCJyYW0xIiwgcmVn aW9uWzFdLmJhc2UsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWVtc2l6ZSAtIHJlZ2lv blswXS5zaXplKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWVtc2l6ZSA9IHJl Z2lvblswXS5zaXplOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDCoMKgLyog bG93ZXN0IDEwTSBhcmUgc2hhdmVkIG9mZiBmb3Igc2VjdXJlIHdvcmxkIGZpcm13YXJlICovCj4g K8KgwqDCoMKgwqDCoMKgbWVtYmFzZSA9IDB4YTAwMDAwOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBy ZXR1cm4gYXJtX2FkZF9tZW1fZGV2aWNlKCJyYW0wIiwgbWVtYmFzZSwgbWVtc2l6ZSAtIG1lbWJh c2UpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJvY2tjaGlwX2RtY19yZWdpb24g cmszMzk5X3JlZ2lvbnNbXSA9IHsKPiArwqDCoMKgwqDCoMKgwqB7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoC5iYXNlID0gMHgwLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAuc2l6ZSA9IFNaXzRHIC0gU1pfMTI4TSwKPiArwqDCoMKgwqDCoMKgwqB9LCB7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5iYXNlID0gU1pfNEcsCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC5zaXplID0gU1pfMzJHLAo+ICvCoMKgwqDCoMKgwqDCoH0KPiAr fTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfZG1jX2RydmRhdGEgcmszMzk5 X2RydmRhdGEgPSB7Cj4gK8KgwqDCoMKgwqDCoMKgLm9zX3JlZzIgPSBSSzMzOTlfUE1VR1JGX09T X1JFRzIsCj4gK8KgwqDCoMKgwqDCoMKgLm9zX3JlZzMgPSBSSzMzOTlfUE1VR1JGX09TX1JFRzMs Cj4gK8KgwqDCoMKgwqDCoMKgLnJlZ2lvbnMgPSByazMzOTlfcmVnaW9ucywKPiArfTsKPiArCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfZG1jX2RydmRhdGEgcmszNTY4X2RydmRhdGEg PSB7Cj4gK8KgwqDCoMKgwqDCoMKgLm9zX3JlZzIgPSBSSzM1NjhfUE1VR1JGX09TX1JFRzIsCj4g K8KgwqDCoMKgwqDCoMKgLm9zX3JlZzMgPSBSSzM1NjhfUE1VR1JGX09TX1JFRzMsCj4gK8KgwqDC oMKgwqDCoMKgLnJlZ2lvbnMgPSByazMzOTlfcmVnaW9ucywKPiArfTsKPiArCj4gK3N0YXRpYyBz dHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJvY2tjaGlwX2RtY19kdF9pZHNbXSA9IHsKPiArwqDCoMKgwqDC oMKgwqB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5jb21wYXRpYmxlID0gInJv Y2tjaGlwLHJrMzM5OS1kbWMiLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuZGF0 YSA9ICZyazMzOTlfZHJ2ZGF0YSwKPiArwqDCoMKgwqDCoMKgwqB9LAo+ICvCoMKgwqDCoMKgwqDC oHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmNvbXBhdGlibGUgPSAicm9ja2No aXAscmszNTY4LWRtYyIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5kYXRhID0g JnJrMzU2OF9kcnZkYXRhLAo+ICvCoMKgwqDCoMKgwqDCoH0sCj4gK8KgwqDCoMKgwqDCoMKgeyAv KiBzZW50aW5lbCAqLyB9Cj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGRyaXZlciByb2NrY2hp cF9kbWNfZHJpdmVyID0gewo+ICvCoMKgwqDCoMKgwqDCoC5uYW1lwqDCoCA9ICJyb2NrY2hpcC1k bWMiLAo+ICvCoMKgwqDCoMKgwqDCoC5wcm9iZcKgID0gcm9ja2NoaXBfZG1jX3Byb2JlLAo+ICvC oMKgwqDCoMKgwqDCoC5vZl9jb21wYXRpYmxlID0gcm9ja2NoaXBfZG1jX2R0X2lkcywKPiArfTsK PiArbWVtX3BsYXRmb3JtX2RyaXZlcihyb2NrY2hpcF9kbWNfZHJpdmVyKTsKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9zaXplcy5oIGIvaW5jbHVkZS9saW51eC9zaXplcy5oCj4gaW5kZXgg ZmJkZTBiYzdlOC4uMWQyMjJkYWVhYiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3NpemVz LmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L3NpemVzLmgKPiBAQCAtNDcsNSArNDcsOCBAQAo+IMKg I2RlZmluZSBTWl8yR8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAweDgwMDAwMDAwCj4gwqAKPiDCoCNkZWZpbmUgU1pfNEfCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgX0FDKDB4MTAwMDAwMDAwLCBVTEwp Cj4gKyNkZWZpbmUgU1pfOEfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgX0FDKDB4MjAwMDAwMDAwLCBVTEwpCj4gKyNkZWZpbmUgU1pfMTZHwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBfQUMoMHg0MDAwMDAw MDAsIFVMTCkKPiArI2RlZmluZSBTWl8zMkfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoF9BQygweDgwMDAwMDAwMCwgVUxMKQo+IMKgCj4gwqAjZW5kaWYg LyogX19MSU5VWF9TSVpFU19IX18gKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYWNoL3JvY2tj aGlwL2RtYy5oIGIvaW5jbHVkZS9tYWNoL3JvY2tjaGlwL2RtYy5oCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwLi5mZjE5N2Q1MGEwCj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL2luY2x1ZGUvbWFjaC9yb2NrY2hpcC9kbWMuaAo+IEBAIC0wLDAgKzEsODYgQEAKPiArLyog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArICovCj4gKy8qCj4gKyAqIENvcHlyaWdo dCAoQykgMjAxNyBSb2NrY2hpcCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KPiArICovCj4gKwo+ICsj aWZuZGVmIF9NQUNIX1JPQ0tDSElQX0RNQ19ICj4gKyNkZWZpbmUgX01BQ0hfUk9DS0NISVBfRE1D X0gKPiArCj4gKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgo+ICsjaW5jbHVkZSA8bGludXgv dHlwZXMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2JpdGZpZWxkLmg+Cj4gKwo+ICtlbnVtIHsKPiAr wqDCoMKgwqDCoMKgwqBERFI0ID0gMCwKPiArwqDCoMKgwqDCoMKgwqBERFIzID0gMHgzLAo+ICvC oMKgwqDCoMKgwqDCoExQRERSMiA9IDB4NSwKPiArwqDCoMKgwqDCoMKgwqBMUEREUjMgPSAweDYs Cj4gK8KgwqDCoMKgwqDCoMKgTFBERFI0ID0gMHg3LAo+ICvCoMKgwqDCoMKgwqDCoFVOVVNFRCA9 IDB4RkYKPiArfTsKPiArCj4gKy8qCj4gKyAqIHN5c19yZWcyIGJpdGZpZWxkIHN0cnVjdAo+ICsg KiBbMzFdwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByb3dfM180X2NoMQo+ICsgKiBb MzBdwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByb3dfM180X2NoMAo+ICsgKiBbMjk6 MjhdwqDCoMKgwqDCoGNoaW5mbwo+ICsgKiBbMjddwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByYW5rX2NoMQo+ICsgKiBbMjY6MjVdwqDCoMKgwqDCoGNvbF9jaDEKPiArICogWzI0XcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYmtfY2gxCj4gKyAqIFsyMzoyMl3CoMKgwqDC oMKgbG93IGJpdHMgb2YgY3MwX3Jvd19jaDEKPiArICogWzIxOjIwXcKgwqDCoMKgwqBsb3cgYml0 cyBvZiBjczFfcm93X2NoMQo+ICsgKiBbMTk6MThdwqDCoMKgwqDCoGJ3X2NoMQo+ICsgKiBbMTc6 MTZdwqDCoMKgwqDCoGRid19jaDE7Cj4gKyAqIFsxNToxM13CoMKgwqDCoMKgZGRydHlwZQo+ICsg KiBbMTJdwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjaGFubmVsbnVtCj4gKyAqIFsx MV3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJhbmtfY2gwCj4gKyAqIFsxMDo5XcKg wqDCoMKgwqDCoGNvbF9jaDAsCj4gKyAqIFs4XcKgwqDCoMKgwqDCoMKgwqDCoGJrX2NoMAo+ICsg KiBbNzo2XcKgwqDCoMKgwqDCoMKgbG93IGJpdHMgb2YgY3MwX3Jvd19jaDAKPiArICogWzU6NF3C oMKgwqDCoMKgwqDCoGxvdyBiaXRzIG9mIGNzMV9yb3dfY2gwCj4gKyAqIFszOjJdwqDCoMKgwqDC oMKgwqBid19jaDAKPiArICogWzE6MF3CoMKgwqDCoMKgwqDCoGRid19jaDAKPiArICovCj4gKwo+ ICsjZGVmaW5lIFNZU19SRUdfRERSVFlQRcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoEdFTk1BU0soMTUsIDEzKQo+ICsjZGVmaW5lIFNZU19SRUdfTlVNX0NI wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEJJVCgxMikKPiArI2RlZmluZSBTWVNf UkVHX1JPV18zXzRfU0hJRlQoY2gpwqDCoMKgwqDCoMKgKDMwICsgKGNoKSkKPiArI2RlZmluZSBT WVNfUkVHX1JPV18zXzRfTUFTS8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAxCj4gKyNkZWZpbmUgU1lT X1JFR19DSElORk9fU0hJRlQoY2gpwqDCoMKgwqDCoMKgwqAoMjggKyAoY2gpKQo+ICsjZGVmaW5l IFNZU19SRUdfUkFOS19TSElGVChjaCnCoMKgwqDCoMKgwqDCoMKgwqAoMTEgKyAoY2gpICogMTYp Cj4gKyNkZWZpbmUgU1lTX1JFR19SQU5LX01BU0vCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg MQo+ICsjZGVmaW5lIFNZU19SRUdfQ09MX1NISUZUKGNoKcKgwqDCoMKgwqDCoMKgwqDCoMKgKDkg KyAoY2gpICogMTYpCj4gKyNkZWZpbmUgU1lTX1JFR19DT0xfTUFTS8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoDMKPiArI2RlZmluZSBTWVNfUkVHX0JLX1NISUZUKGNoKcKgwqDCoMKgwqDC oMKgwqDCoMKgwqAoOCArIChjaCkgKiAxNikKPiArI2RlZmluZSBTWVNfUkVHX0JLX01BU0vCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAxCj4gKyNkZWZpbmUg U1lTX1JFR19DUzBfUk9XX1NISUZUKGNoKcKgwqDCoMKgwqDCoCg2ICsgKGNoKSAqIDE2KQo+ICsj ZGVmaW5lIFNZU19SRUdfQ1MwX1JPV19NQVNLwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDMKPiArI2Rl ZmluZSBTWVNfUkVHX0NTMV9ST1dfU0hJRlQoY2gpwqDCoMKgwqDCoMKgKDQgKyAoY2gpICogMTYp Cj4gKyNkZWZpbmUgU1lTX1JFR19DUzFfUk9XX01BU0vCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMwo+ ICsjZGVmaW5lIFNZU19SRUdfQldfU0hJRlQoY2gpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCgyICsg KGNoKSAqIDE2KQo+ICsjZGVmaW5lIFNZU19SRUdfQldfTUFTS8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDMKPiArI2RlZmluZSBTWVNfUkVHX0RCV19TSElG VChjaCnCoMKgwqDCoMKgwqDCoMKgwqDCoCgoY2gpICogMTYpCj4gKyNkZWZpbmUgU1lTX1JFR19E QldfTUFTS8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDMKPiArCj4gKy8qCj4gKyAqIHN5 c19yZWczIGJpdGZpZWxkIHN0cnVjdAo+ICsgKiBbN13CoMKgwqDCoMKgwqDCoMKgwqBoaWdoIGJp dCBvZiBjczBfcm93X2NoMQo+ICsgKiBbNl3CoMKgwqDCoMKgwqDCoMKgwqBoaWdoIGJpdCBvZiBj czFfcm93X2NoMQo+ICsgKiBbNV3CoMKgwqDCoMKgwqDCoMKgwqBoaWdoIGJpdCBvZiBjczBfcm93 X2NoMAo+ICsgKiBbNF3CoMKgwqDCoMKgwqDCoMKgwqBoaWdoIGJpdCBvZiBjczFfcm93X2NoMAo+ ICsgKiBbMzoyXcKgwqDCoMKgwqDCoMKgY3MxX2NvbF9jaDEKPiArICogWzE6MF3CoMKgwqDCoMKg wqDCoGNzMV9jb2xfY2gwCj4gKyAqLwo+ICsjZGVmaW5lIFNZU19SRUdfVkVSU0lPTsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBH RU5NQVNLKDMxLCAyOCkKPiArI2RlZmluZSBTWVNfUkVHX0VYVEVORF9ERFJUWVBFwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEdFTk1BU0soMTMsIDEyKQo+ICsjZGVmaW5lIFNZU19S RUdfRVhURU5EX0NTMF9ST1dfU0hJRlQoY2gpwqDCoMKgwqDCoMKgwqAoNSArIChjaCkgKiAyKQo+ ICsjZGVmaW5lIFNZU19SRUdfRVhURU5EX0NTMF9ST1dfTUFTS8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoDEKPiArI2RlZmluZSBTWVNfUkVHX0VYVEVORF9DUzFfUk9XX1NISUZUKGNoKcKgwqDCoMKg wqDCoMKgKDQgKyAoY2gpICogMikKPiArI2RlZmluZSBTWVNfUkVHX0VYVEVORF9DUzFfUk9XX01B U0vCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAxCj4gKyNkZWZpbmUgU1lTX1JFR19DUzFfQ09MX1NI SUZUKGNoKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoMCArIChjaCkgKiAyKQo+ICsjZGVm aW5lIFNZU19SRUdfQ1MxX0NPTF9NQVNLwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAzCj4gKwo+ICtyZXNvdXJjZV9zaXplX3QgcmszMzk5X3JhbTBfc2l6ZSh2b2lkKTsKPiAr cmVzb3VyY2Vfc2l6ZV90IHJrMzU2OF9yYW0wX3NpemUodm9pZCk7Cj4gKwo+ICsjZW5kaWYKPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9tYWNoL3JvY2tjaGlwL3JrMzM5OS1yZWdzLmggYi9pbmNsdWRl L21hY2gvcm9ja2NoaXAvcmszMzk5LXJlZ3MuaAo+IGluZGV4IDU3MDMzYjY1MTAuLjZkYjA4MmRh OWIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9tYWNoL3JvY2tjaGlwL3JrMzM5OS1yZWdzLmgKPiAr KysgYi9pbmNsdWRlL21hY2gvcm9ja2NoaXAvcmszMzk5LXJlZ3MuaAo+IEBAIC0xMCw2ICsxMCw3 IEBACj4gwqAjZGVmaW5lIFJLMzM5OV9VQVJUM19CQVNFwqDCoMKgwqDCoMKgMHhmZjFiMDAwMAo+ IMKgI2RlZmluZSBSSzMzOTlfVUFSVDRfQkFTRcKgwqDCoMKgwqDCoDB4ZmYzNzAwMDAKPiDCoAo+ ICsjZGVmaW5lIFJLMzM5OV9QTVVHUkZfQkFTRcKgwqDCoMKgwqAweGZmMzIwMDAwCj4gwqAjZGVm aW5lIFJLMzM5OV9JUkFNX0JBU0XCoMKgwqDCoMKgwqDCoDB4ZmY4YzAwMDAKPiDCoCNkZWZpbmUg UkszMzk5X1NUSU1FUl9CQVNFwqDCoMKgwqDCoDB4ZmY4NjgwYTAKPiDCoAo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL21hY2gvcm9ja2NoaXAvcmszNTY4LXJlZ3MuaCBiL2luY2x1ZGUvbWFjaC9yb2Nr Y2hpcC9yazM1NjgtcmVncy5oCj4gaW5kZXggZWRkNWVlMjY4ZC4uNTVkMjg3OTBkZCAxMDA2NDQK PiAtLS0gYS9pbmNsdWRlL21hY2gvcm9ja2NoaXAvcmszNTY4LXJlZ3MuaAo+ICsrKyBiL2luY2x1 ZGUvbWFjaC9yb2NrY2hpcC9yazM1NjgtcmVncy5oCj4gQEAgLTE2LDUgKzE2LDYgQEAKPiDCoCNk ZWZpbmUgUkszNTY4X1VBUlQ5X0JBU0XCoMKgwqDCoMKgwqAweGZlNmQwMDAwCj4gwqAKPiDCoCNk ZWZpbmUgUkszNTY4X0lSQU1fQkFTRcKgwqDCoMKgwqDCoMKgMHhmZGNjMDAwMAo+ICsjZGVmaW5l IFJLMzU2OF9QTVVHUkZfQkFTRcKgwqDCoMKgwqAweGZkYzIwMDAwCj4gwqAKPiDCoCNlbmRpZiAv KiBfX01BQ0hfUkszNTY4X1JFR1NfSCAqLwoK