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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 DB74CC5DF87 for ; Thu, 20 Aug 2026 14:25:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=bPOKnZGpyaLoSsRmWwcpeQIqH7pLca/Lrik5RQIRAYc=; b=JX1HTRwh/zkBWJ pZthEOaAX3OXaEchN/MTI5o3Nz6bkdOrQOs++yFBM9nb59dDtse1t7OTkKKD7UaHgzMBEr6JCFfY6 tc/E4kU4QIfALvY1iGhKaqdJdPn456wRsyZcd1y2aC3MjnJqQcTXMLAeKEOTXi03XT4DTQ2yCniK3 28a71A5U4N7i7nTuNhBCtXZd5v8fnstWZVr2UmDpJ0jWICjj0iKw9nk8+BtXrtUdohFYLkLxmCJoQ ZpZwhuM46IfR2KEySF/5ADkq9SCf7TTbYZPUSxfznCryOVJUG8FNEwGiE+XDRessIP8JkfVF22Bk3 qoFdTjkQa5FCaqme5pog==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wx3hy-0000000BhHs-0gAg; Thu, 20 Aug 2026 14:25:30 +0000 Received: from mail-oo1-xc2a.google.com ([2607:f8b0:4864:20::c2a]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wx3hv-0000000BhHS-0zcw for opensbi@lists.infradead.org; Thu, 20 Aug 2026 14:25:29 +0000 Received: by mail-oo1-xc2a.google.com with SMTP id 006d021491bc7-6b132a5009eso1630770eaf.1 for ; Thu, 20 Aug 2026 07:25:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1787235926; x=1787840726; darn=lists.infradead.org; h=content-transfer-encoding:content-type:in-reply-to:content-language :from:references:cc:to:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to:content-type; bh=SVXks/7FOJygV6CCXqjh8q6tAV7etuqnSX1fAHMsEG0=; b=gYAoUK4D387gSXIk89uNJ7bxoTHT8YehGerhSafi+Rd6c0JiKKMGe/m9b4//iZ+RDc 805GFcqsk+DhbOGcegw1h1JwKJsnn6U08drKZNbrd2ez9NXM3DrTW+kd4kHmgyttnSXy qNTpotFDRrhE+/4AT7S7ptAPDJ+A6M/WhSG0wFwIn49lxtzC7q11xxAP2FQcyD2lcgyX z4wIa+V/2nv1TwVSuv1OZWiYKXhT4i4T0iCG5Vq5ZhKkV6szp1tvCTLDWSIWYLFxN0GK bat0gkAqVT0CiVfh1/NWR6kI6b/aJcq/ZCDa5lRarjL9LSOY4aYT87hts/gZjire6RKX JaTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787235926; x=1787840726; h=content-transfer-encoding:content-type:in-reply-to:content-language :from:references:cc:to:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=SVXks/7FOJygV6CCXqjh8q6tAV7etuqnSX1fAHMsEG0=; b=ltJFkqMNIlLQ/JuEBOGryv2X2rqNgvHITecvSHXNUPxf7N5IZARCLlt8uDIcaFihfT O9/209ka8HpOW3EtVQiNyrJiHMnShV2EATTvrASXxpW+bLmf1hmT8inOHudfGLuDw0PH 27J08pNqTji9W9Xl7CF1CsTMaAvSTGRTscMsjv2khTSpQoS1f2GMjmHg6kWQtcDTnXk8 aFL5caR6NHp1RMRgkB5W+Z2BRZ2qok30mihAmSuzphfrnrVD3C8wM24I+/WcSl06VS1l TkHVIbTCwOZ0/2J1FDSIEuHKhuJRYPooRA7A7TDJH27W25+T1ARCPKaoaP+GNgD/bQ6w TCDw== X-Forwarded-Encrypted: i=1; AHgh+RptE4ExmxVFC3eP01MXh2Xu2n8zAxKYiij/6qOn5jsdsIa0CocCaZVdS8V5neuAEtD4oPl0hd7j@lists.infradead.org X-Gm-Message-State: AOJu0YyJUQ6cXvn8sBmgU8SqrBnheXRaT9Jy6c4JgEbauYfZx+G6GXaC CKeSAY6G3DOMpmG/Okbo21gcbEXtcCVgaNDjx9RNrYRd5gGD3QNcWLb9B7o+WpX+v2c= X-Gm-Gg: AR+sD10Me9gjcKeCnDXAufsSQk45wdLNGaD3iiMOipiT7p4onBGfZ9D/K6vTcZnlHx8 E996sjaS7sWYBMRWyRBhTdpOndmjpXEsv8K40eZAylhuviiwSsuU5iAuaAW+/zt1LluiBy0mprk 8IHEXOKYC3hauzPuF7jwGeckdeLUxy8uIJoXCiEHZ5DmacrTMdJa5hBIDjE3q1/p+Gf1EM7IAtv r99MqUrOLeb9uXDIbqGNQkcJT7NBQDYwADqJfiqYRftoInq0m8O2oms4wBm3ED3WZcsD4fd9F2l SG5DEsW1ElXCGM57NttFxMulZciDu9aqR/4DhMfQ7cvvoBqb2UMPdvP2nCVOzx7hTToiAp3v6sc 0RD59aIEenGh512uFUSRBFDVuA8jojAhm2+tpqCx9mrnsHph7L+RfgPtTpNZZO3hHnv9ZVzuw1F vhcYhQe1KRtWoCWy7dqU98utn5gABpsaX9Lg7ziD63T8Q0VaoCENVsmwC254HsGiOsBR0bdBbrC idLuZvJPA== X-Received: by 2002:a05:6820:150b:b0:6aa:1633:7af9 with SMTP id 006d021491bc7-6b13c6a0becmr11802801eaf.35.1787235925825; Thu, 20 Aug 2026 07:25:25 -0700 (PDT) Received: from [100.64.0.1] ([170.85.13.74]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6b13cf065d3sm5233549eaf.12.2026.08.20.07.25.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 20 Aug 2026 07:25:25 -0700 (PDT) Message-ID: Date: Thu, 20 Aug 2026 09:25:24 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 5/5] platform: generic: spacemit: k3: add platform support To: Troy Mitchell , opensbi@lists.infradead.org Cc: Xianbin Zhu , Anup Patel , Bo Gan References: <20260818-spacemit-k3-v2-0-84cb7773a481@linux.spacemit.com> <20260818-spacemit-k3-v2-5-84cb7773a481@linux.spacemit.com> From: Samuel Holland Content-Language: en-US In-Reply-To: <20260818-spacemit-k3-v2-5-84cb7773a481@linux.spacemit.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260820_072527_409935_08C4EBE9 X-CRM114-Status: GOOD ( 28.39 ) X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "opensbi" Errors-To: opensbi-bounces+opensbi=archiver.kernel.org@lists.infradead.org SGkgVHJveSwKCk9uIDIwMjYtMDgtMTcgODoxNCBQTSwgVHJveSBNaXRjaGVsbCB3cm90ZToKPiBG cm9tOiBYaWFuYmluIFpodSA8eGlhbmJpbi56aHVAbGludXguc3BhY2VtaXQuY29tPgo+IAo+IEFk ZCBpbml0aWFsIE9wZW5TQkkgcGxhdGZvcm0gc3VwcG9ydCBmb3IgdGhlIFNwYWNlbWlUIEszIFNv Qywgd2hpY2ggaGFzCj4gMTYgaGFydHM6IGVpZ2h0IFgxMDAgaGFydHMgaW4gY2x1c3RlcnMgQzAv QzEgYW5kIGVpZ2h0IEExMDAgaGFydHMgaW4KPiBDMi9DMy4KPiAKPiBEdXJpbmcgY29sZCBib290 LCB0aGUgYm9vdCBoYXJ0IHNldHMgd2FybS1ib290IGVudHJ5IHZlY3RvcnMgZm9yIGFsbAo+IGZv dXIgY2x1c3RlcnMsIGVuYWJsZXMgQ0NJIHNub29waW5nLCBjbGVhcnMgUE1VIHBvd2VyLWRvd24g dm90ZSBiaXRzIGZvcgo+IGFsbCBoYXJ0cyBzbyBXRkkgZG9lcyBub3QgdHJpZ2dlciBwb3dlci1k b3duLCBhbmQgd2FrZXMgYWxsIG5vbi1ib290Cj4gaGFydHMgKDEtMTUpLiBXYWl0IHVwIHRvIDEw MCBtcyBmb3IgZWFjaCBzZWNvbmRhcnkgaGFydCB0byBlbnRlciBXRkksCj4gdGhlbiB3YXJuIGFu ZCBjb250aW51ZSBzbyBvbmUgZmFpbGVkIGhhcnQgY2Fubm90IHN0YWxsIGJvb3QgaW5kZWZpbml0 ZWx5Lgo+IAo+IFJ1biBwZXItaGFydCBpbml0aWFsaXphdGlvbiBmcm9tIHRoZSBuYXNjZW50IGhv b2sgb24gYm90aCBjb2xkLSBhbmQKPiB3YXJtLWJvb3QgcGF0aHMuIFByb2dyYW0gUE1BIGF0dHJp YnV0ZXMsIGVuYWJsZSB0aGUgRC1jYWNoZSBhbmQgSS1jYWNoZQo+IHRocm91Z2ggTVNFVFVQLCBz ZXQgc21wZW5beF0gaW4gTUwyU0VUVVAgdG8gZW5hYmxlIEwxIEQtY2FjaGUgc25vb3BpbmcKPiBh bmQgcHJlZmV0Y2gsIGFuZCBlbmFibGUgdGhlIEggZXh0ZW5zaW9uIGluIE1JU0EgZm9yIFgxMDAg aGFydHMuIE1JU0EuSAo+IGlzIHdyaXRhYmxlIG9uIEszIFgxMDAgY29yZXMsIGFuZCBNLW1vZGUg bXVzdCBzZXQgaXQgZXhwbGljaXRseSB0bwo+IGFjdGl2YXRlIGh5cGVydmlzb3Igc3VwcG9ydC4K PiAKPiBTdGFydCBzZWNvbmRhcnkgaGFydHMgdGhyb3VnaCBhbiBhc3NlbWJseSBzdHViIHRoYXQg ZW5hYmxlcyBjYWNoZXMgYW5kCj4gc2V0cyBzbXBlblt4XSBiZWZvcmUgZW50ZXJpbmcgY29tbW9u IHdhcm0tYm9vdCBjb2RlLiBUaGlzIGxldHMgdGhlbQo+IG9ic2VydmUgc2hhcmVkLWRhdGEgd3Jp dGVzIG1hZGUgYnkgdGhlIGJvb3QgaGFydCBkdXJpbmcgY29sZC1ib290Cj4gaW5pdGlhbGl6YXRp b24uIEVuYWJsZSBnbG9iYWwgQ0NJLTU1MCBzbm9vcCBhbmQgRFZNIHJlcXVlc3RzIG9uIHRoZSBi b290Cj4gaGFydCBiZWZvcmUgd2FraW5nIHRoZSBzZWNvbmRhcnkgaGFydHMuCj4gCj4gU2lnbmVk LW9mZi1ieTogWGlhbmJpbiBaaHUgPHhpYW5iaW4uemh1QGxpbnV4LnNwYWNlbWl0LmNvbT4KPiBD by1kZXZlbG9wZWQtYnk6IFRyb3kgTWl0Y2hlbGwgPHRyb3kubWl0Y2hlbGxAbGludXguc3BhY2Vt aXQuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFRyb3kgTWl0Y2hlbGwgPHRyb3kubWl0Y2hlbGxAbGlu dXguc3BhY2VtaXQuY29tPgo+IC0tLQo+ICBwbGF0Zm9ybS9nZW5lcmljL0tjb25maWcgICAgICAg ICAgICAgICAgICAgfCAgIDUgKwo+ICBwbGF0Zm9ybS9nZW5lcmljL2NvbmZpZ3MvZGVmY29uZmln ICAgICAgICAgfCAgIDEgKwo+ICBwbGF0Zm9ybS9nZW5lcmljL2luY2x1ZGUvc3BhY2VtaXQvY29t bW9uLmggfCAgIDQgKy0KPiAgcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRlL3NwYWNlbWl0L2szLmgg ICAgIHwgMTQ0ICsrKysrKysrKysrKysrKysKPiAgcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRlL3Nw YWNlbWl0L2szX2FzbS5oIHwgIDE2ICsrCj4gIHBsYXRmb3JtL2dlbmVyaWMvc3BhY2VtaXQvazMu YyAgICAgICAgICAgICB8IDI2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBwbGF0 Zm9ybS9nZW5lcmljL3NwYWNlbWl0L2szX2FzbS5TICAgICAgICAgfCAgMzMgKysrKwo+ICBwbGF0 Zm9ybS9nZW5lcmljL3NwYWNlbWl0L29iamVjdHMubWsgICAgICAgfCAgIDIgKwo+ICA4IGZpbGVz IGNoYW5nZWQsIDQ3MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdp dCBhL3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZyBiL3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZwo+ IGluZGV4IDk1ODYxMGQzLi4wMzAyZWRhNiAxMDA2NDQKPiAtLS0gYS9wbGF0Zm9ybS9nZW5lcmlj L0tjb25maWcKPiArKysgYi9wbGF0Zm9ybS9nZW5lcmljL0tjb25maWcKPiBAQCAtMTA5LDYgKzEw OSwxMSBAQCBjb25maWcgUExBVEZPUk1fU1BBQ0VNSVRfSzEKPiAgCXNlbGVjdCBQTEFURk9STV9T UEFDRU1JVAo+ICAJZGVmYXVsdCBuCj4gIAo+ICtjb25maWcgUExBVEZPUk1fU1BBQ0VNSVRfSzMK PiArCWJvb2wgIlNwYWNlbWl0IEszIHN1cHBvcnQiCj4gKwlzZWxlY3QgUExBVEZPUk1fU1BBQ0VN SVQKPiArCWRlZmF1bHQgbgo+ICsKPiAgY29uZmlnIENQVV9NSVBTX1A4NzAwCj4gIAlib29sCj4g IAlkZWZhdWx0IG4KPiBkaWZmIC0tZ2l0IGEvcGxhdGZvcm0vZ2VuZXJpYy9jb25maWdzL2RlZmNv bmZpZyBiL3BsYXRmb3JtL2dlbmVyaWMvY29uZmlncy9kZWZjb25maWcKPiBpbmRleCAzNDFmNmIy NS4uNThkNDA4OTggMTAwNjQ0Cj4gLS0tIGEvcGxhdGZvcm0vZ2VuZXJpYy9jb25maWdzL2RlZmNv bmZpZwo+ICsrKyBiL3BsYXRmb3JtL2dlbmVyaWMvY29uZmlncy9kZWZjb25maWcKPiBAQCAtMTUs NiArMTUsNyBAQCBDT05GSUdfUExBVEZPUk1fVEhFQUQ9eQo+ICBDT05GSUdfUExBVEZPUk1fTUlQ U19QODcwMF9FWUVRN0g9eQo+ICBDT05GSUdfUExBVEZPUk1fTUlQU19QODcwMF9CT1NUT049eQo+ ICBDT05GSUdfUExBVEZPUk1fU1BBQ0VNSVRfSzE9eQo+ICtDT05GSUdfUExBVEZPUk1fU1BBQ0VN SVRfSzM9eQo+ICBDT05GSUdfRkRUX0NBQ0hFPXkKPiAgQ09ORklHX0ZEVF9DQUNIRV9BTkRFU19M TENBQ0hFPXkKPiAgQ09ORklHX0ZEVF9DQUNIRV9TSUZJVkVfQ0NBQ0hFPXkKPiBkaWZmIC0tZ2l0 IGEvcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRlL3NwYWNlbWl0L2NvbW1vbi5oIGIvcGxhdGZvcm0v Z2VuZXJpYy9pbmNsdWRlL3NwYWNlbWl0L2NvbW1vbi5oCj4gaW5kZXggMzE3YmIzZTkuLjdiNTBj YzRmIDEwMDY0NAo+IC0tLSBhL3BsYXRmb3JtL2dlbmVyaWMvaW5jbHVkZS9zcGFjZW1pdC9jb21t b24uaAo+ICsrKyBiL3BsYXRmb3JtL2dlbmVyaWMvaW5jbHVkZS9zcGFjZW1pdC9jb21tb24uaAo+ IEBAIC05LDcgKzksOSBAQAo+ICAjaWZuZGVmIF9fUklTQ1ZfU1BBQ0VNSVRfQ09NTU9OX0hfXwo+ ICAjZGVmaW5lIF9fUklTQ1ZfU1BBQ0VNSVRfQ09NTU9OX0hfXwo+ICAKPiArI2lmbmRlZiBfX0FT U0VNQkxZX18KPiAgI2luY2x1ZGUgPHNiaS9zYmlfYml0b3BzLmg+Cj4gKyNlbmRpZgo+ICAKPiAg I2RlZmluZSBDU1JfTVNFVFVQCQkJCTB4N2MwCj4gICNkZWZpbmUgQ1NSX01MMlNFVFVQCQkJCTB4 N2YwCj4gQEAgLTc0LDcgKzc2LDcgQEAKPiAgI2RlZmluZSBQTVVfQVBfSURMRV9DT1JFX0lETEUJ CQlCSVQoMCkKPiAgLyogYml0IDE6IENPUkVfUFdSRFdOIC0gcG93ZXIgb2ZmIGNvcmUgb24gV0ZJ IChyZXF1aXJlcyBDT1JFX0lETEUgc2V0KSAqLwo+ICAjZGVmaW5lIFBNVV9BUF9JRExFX0NPUkVf UFdSRFdOCQkJQklUKDEpCj4gLS8qIGJpdCAyOiBDb3JlIEwxIFNSQU0gUG93ZXIgRG93biAtIHJl c2VydmVkL25vdCB1c2VkIGluIEsxIGFuZCBLMyAqLwo+ICsvKiBiaXQgMjogQ29yZSBMMSBTUkFN IFBvd2VyIERvd24gLSByZXNlcnZlZCBpbiBLMSwgdXNlZCBpbiBLMyAqLwo+ICAjZGVmaW5lIFBN VV9BUF9JRExFX0NPUkVfTDFfU1JBTV9QV1JEV04JCUJJVCgyKQo+ICAvKiBiaXQgMzogTUFTS19H SUNfTklSUV9UT19DT1JFIC0gbWFzayBuSVJRIGZyb20gR0lDLCBhdXRvLWNsZWFyZWQgYnkgSFcg b24gcG93ZXItZG93biBlbnRyeSAqLwo+ICAjZGVmaW5lIFBNVV9BUF9JRExFX01BU0tfR0lDX05J UlEJCUJJVCgzKQo+IGRpZmYgLS1naXQgYS9wbGF0Zm9ybS9nZW5lcmljL2luY2x1ZGUvc3BhY2Vt aXQvazMuaCBiL3BsYXRmb3JtL2dlbmVyaWMvaW5jbHVkZS9zcGFjZW1pdC9rMy5oCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMC4uZTQ4NGQ2N2IKPiAtLS0gL2Rldi9udWxs Cj4gKysrIGIvcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRlL3NwYWNlbWl0L2szLmgKPiBAQCAtMCww ICsxLDE0NCBAQAo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlICov Cj4gKy8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAyNiBTcGFjZW1pVAo+ICsgKiBBdXRob3JzOgo+ ICsgKiAgIFhpYW5iaW4gWmh1IDx4aWFuYmluLnpodUBsaW51eC5zcGFjZW1pdC5jb20+Cj4gKyAq ICAgVHJveSBNaXRjaGVsbCA8dHJveS5taXRjaGVsbEBsaW51eC5zcGFjZW1pdC5jb20+Cj4gKyAq Lwo+ICsKPiArI2lmbmRlZiBfX1JJU0NWX1NQQUNFTUlUX0szX0hfXwo+ICsjZGVmaW5lIF9fUklT Q1ZfU1BBQ0VNSVRfSzNfSF9fCj4gKwo+ICsjaW5jbHVkZSA8c3BhY2VtaXQvY29tbW9uLmg+Cj4g Kwo+ICsvKiBQTUEgY29uZmlndXJhdGlvbiBDU1IgKi8KPiArI2RlZmluZSBDU1JfUE1BQ0ZHMAkJ CQkweDdkZQo+ICsKPiArLyoKPiArICogUE1BQ0ZHMCBhdWRpbyBidWZmZXIgcmVnaW9uIGZpZWxk OiBiaXRzIFs1NTo0OF0uCj4gKyAqIE1hc2sgYW5kIGF0dHJpYnV0ZSBhcmUgYXBwbGllZCBhZnRl ciBhIDQ4LWJpdCBzaGlmdCBiZWNhdXNlCj4gKyAqIGNzcmMvY3NycyBvbmx5IGFjY2VwdCBhIDEy LWJpdCBpbW1lZGlhdGUgb3IgYSByZWdpc3Rlci4KPiArICovCj4gKyNkZWZpbmUgUE1BQ0ZHMF9B VURJT19CVUZfRklFTERfTUFTSwkJMHhmZgo+ICsjZGVmaW5lIFBNQUNGRzBfQVVESU9fQlVGX0ZJ RUxEX1NISUZUCQk0OAo+ICsjZGVmaW5lIFBNQUNGRzBfQVVESU9fQlVGX0FUVFJfQ0FDSEVBQkxF CTB4MjAKPiArCj4gKy8qCj4gKyAqIFBNQUNGRzAgWElQIHJlZ2lvbiBmaWVsZDogYml0cyBbMjM6 MTZdLgo+ICsgKiBMb3dlciAxMiBiaXRzIGFyZSB6ZXJvIHNvIEdBUyBlbWl0cyBhIHNpbmdsZSBs dWkgaW5zdHJ1Y3Rpb24uCj4gKyAqLwo+ICsjZGVmaW5lIFBNQUNGRzBfWElQX0ZJRUxEX0NMRUFS CQkJMHgwMGZmMDAwMFVMCj4gKyNkZWZpbmUgUE1BQ0ZHMF9YSVBfQVRUUl9JTwkJCTB4MDAyMjAw MDBVTAo+ICsKPiArI2RlZmluZSBDU1JfTUwySElOVAkJCQkweDdmNwo+ICsKPiArLyogRW5hYmxl IGluc3RydWN0aW9uIHByZWZldGNoIGluIEwyIGNhY2hlIG9uIG1pc3MgKi8KPiArI2RlZmluZSBN TDJTRVRVUF9JUFJGCQkJCUJJVCgxNikKPiArLyogRW5hYmxlIFRMQiBwcmVmZXRjaCBpbiBMMiBj YWNoZSAqLwo+ICsjZGVmaW5lIE1MMlNFVFVQX1RQUkYJCQkJQklUKDE4KQo+ICsvKiBFbmFibGUg dG9wLW9mLWNsayBvZiB0cmFjZSAqLwo+ICsjZGVmaW5lIE1MMkhJTlRfVFJBQ0VfVE9QX0lDR0VO CQkJQklUKDI2KQo+ICsKPiArLyoKPiArICogQ29tYmluZWQgTVNFVFVQIGZsYWdzIGVuYWJsZWQg YXQgYm9vdCB0aW1lOiBERXxJRXxCUEV8UEZFfE1NRXxFQ0NFLgo+ICsgKiBFeHByZXNzZWQgYXMg YSBwbGFpbiBoZXggY29uc3RhbnQgc28gaXQgY2FuIGJlIHVzZWQgaW4gYXNzZW1ibHkgKEJJVCgp Cj4gKyAqIGV4cGFuZHMgdG8gMVVMPDxuIHdoaWNoIEdBUyBjYW5ub3QgZXZhbHVhdGUpLgo+ICsg Ki8KPiArI2RlZmluZSBNU0VUVVBfQk9PVF9GTEFHUwkJCTB4MTAwNzMKPiArCj4gKy8qIEExMDAg Y29yZXM6IGhhcnQgOC0xMSBiZWxvbmcgdG8gQzIgY2x1c3RlciwgaGFydCAxMi0xNSB0byBDMyBj bHVzdGVyICovCj4gKyNkZWZpbmUgUE1VX0NBUF9DT1JFOF9XQUtFVVAJCQkoUE1VX0FQX0JBU0Ug KyAweDM2MCkKPiArI2RlZmluZSBQTVVfQ0FQX0NPUkU5X1dBS0VVUAkJCShQTVVfQVBfQkFTRSAr IDB4MzY0KQo+ICsjZGVmaW5lIFBNVV9DQVBfQ09SRTEwX1dBS0VVUAkJCShQTVVfQVBfQkFTRSAr IDB4MzY4KQo+ICsjZGVmaW5lIFBNVV9DQVBfQ09SRTExX1dBS0VVUAkJCShQTVVfQVBfQkFTRSAr IDB4MzZjKQo+ICsjZGVmaW5lIFBNVV9DQVBfQ09SRTEyX1dBS0VVUAkJCShQTVVfQVBfQkFTRSAr IDB4MjJjKQo+ICsjZGVmaW5lIFBNVV9DQVBfQ09SRTEzX1dBS0VVUAkJCShQTVVfQVBfQkFTRSAr IDB4MjMwKQo+ICsjZGVmaW5lIFBNVV9DQVBfQ09SRTE0X1dBS0VVUAkJCShQTVVfQVBfQkFTRSAr IDB4MjM0KQo+ICsjZGVmaW5lIFBNVV9DQVBfQ09SRTE1X1dBS0VVUAkJCShQTVVfQVBfQkFTRSAr IDB4MjM4KQo+ICsKPiArLyogQTEwMCBwZXItY29yZSBpZGxlIGNvbmZpZyByZWdpc3RlcnMgKGhh cnRzIDgtMTUpICovCj4gKyNkZWZpbmUgUE1VX0NBUF9DT1JFOF9JRExFX0NGRwkJCShQTVVfQVBf QkFTRSArIDB4MzQwKQo+ICsjZGVmaW5lIFBNVV9DQVBfQ09SRTlfSURMRV9DRkcJCQkoUE1VX0FQ X0JBU0UgKyAweDM0NCkKPiArI2RlZmluZSBQTVVfQ0FQX0NPUkUxMF9JRExFX0NGRwkJCShQTVVf QVBfQkFTRSArIDB4MzQ4KQo+ICsjZGVmaW5lIFBNVV9DQVBfQ09SRTExX0lETEVfQ0ZHCQkJKFBN VV9BUF9CQVNFICsgMHgzNGMpCj4gKyNkZWZpbmUgUE1VX0NBUF9DT1JFMTJfSURMRV9DRkcJCQko UE1VX0FQX0JBU0UgKyAweDIwYykKPiArI2RlZmluZSBQTVVfQ0FQX0NPUkUxM19JRExFX0NGRwkJ CShQTVVfQVBfQkFTRSArIDB4MjEwKQo+ICsjZGVmaW5lIFBNVV9DQVBfQ09SRTE0X0lETEVfQ0ZH CQkJKFBNVV9BUF9CQVNFICsgMHgyMTQpCj4gKyNkZWZpbmUgUE1VX0NBUF9DT1JFMTVfSURMRV9D RkcJCQkoUE1VX0FQX0JBU0UgKyAweDIxOCkKPiArCj4gKy8qIENYIENBUE1QIGNsdXN0ZXIgaWRs ZSBjb25maWcgcmVnaXN0ZXJzICovCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMAkJ KFBNVV9BUF9CQVNFICsgMHgxMjApCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMQkJ KFBNVV9BUF9CQVNFICsgMHgwZTQpCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMgkJ KFBNVV9BUF9CQVNFICsgMHgxNTApCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMwkJ KFBNVV9BUF9CQVNFICsgMHgxNTQpCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHNAkJ KFBNVV9BUF9CQVNFICsgMHgzMTQpCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHNQkJ KFBNVV9BUF9CQVNFICsgMHgzMTgpCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHNgkJ KFBNVV9BUF9CQVNFICsgMHgzMWMpCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHNwkJ KFBNVV9BUF9CQVNFICsgMHgzMjApCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHOAkJ KFBNVV9BUF9CQVNFICsgMHgzNTApCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHOQkJ KFBNVV9BUF9CQVNFICsgMHgzNTQpCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMTAJ CShQTVVfQVBfQkFTRSArIDB4MzU4KQo+ICsjZGVmaW5lIFBNVV9DWF9DQVBNUF9JRExFX0NGRzEx CQkoUE1VX0FQX0JBU0UgKyAweDM1YykKPiArI2RlZmluZSBQTVVfQ1hfQ0FQTVBfSURMRV9DRkcx MgkJKFBNVV9BUF9CQVNFICsgMHgyMWMpCj4gKyNkZWZpbmUgUE1VX0NYX0NBUE1QX0lETEVfQ0ZH MTMJCShQTVVfQVBfQkFTRSArIDB4MjIwKQo+ICsjZGVmaW5lIFBNVV9DWF9DQVBNUF9JRExFX0NG RzE0CQkoUE1VX0FQX0JBU0UgKyAweDIyNCkKPiArI2RlZmluZSBQTVVfQ1hfQ0FQTVBfSURMRV9D RkcxNQkJKFBNVV9BUF9CQVNFICsgMHgyMjgpCj4gKwo+ICsjZGVmaW5lIFBNVV9BUF9JRExFX1BX UkRPV05fSzNfTUFTSwkJKFBNVV9BUF9JRExFX0NPUkVfSURMRSB8CQlcCj4gKwkJCQkJCSBQTVVf QVBfSURMRV9DT1JFX1BXUkRXTiB8CQlcCj4gKwkJCQkJCSBQTVVfQVBfSURMRV9DT1JFX0wxX1NS QU1fUFdSRFdOIHwJXAo+ICsJCQkJCQkgUE1VX0FQX0lETEVfTUFTS19HSUNfTklSUSB8CQlcCj4g KwkJCQkJCSBQTVVfQVBfSURMRV9NQVNLX0dJQ19ORklRKQo+ICsKPiArLyoKPiArICogUE1VIENY IHBlci1jbHVzdGVyIGlkbGUgY29udHJvbCBiaXRzIChQTVVfQ1hfQ0FQTVBuX0lETEVfQ0ZHKS4K PiArICovCj4gKy8qIGJpdCAwOiBNUCBJZGxlIC0gZ2F0ZSBjbHVzdGVyIGNsb2NrcyBleHRlcm5h bGx5IG9uIFdGSSAqLwo+ICsjZGVmaW5lIFBNVV9DWF9JRExFX01QX0lETEUJCQlCSVQoMCkKPiAr LyogYml0IDE6IE1QIFBvd2VyIERvd24gLSBwb3dlciBvZmYgY2x1c3RlciBsb2dpYyB3aGVuIGlk bGUgKi8KPiArI2RlZmluZSBQTVVfQ1hfSURMRV9NUF9QV1JEV04JCQlCSVQoMSkKPiArLyogYml0 IDI6IEwyIENhY2hlIFNSQU0gUG93ZXIgRG93biAqLwo+ICsjZGVmaW5lIFBNVV9DWF9JRExFX0wy X1NSQU1fUFdSRFdOCQlCSVQoMikKPiArLyogYml0IDM6IFNDVSBTUkFNIFBvd2VyIERvd24gLSBu b3QgdXNlZCwgU0NVIFNSQU0gZG9lcyBub3Qgc3VwcG9ydCByZXRlbnRpb24gKi8KPiArI2RlZmlu ZSBQTVVfQ1hfSURMRV9NUF9TQ1VfU1JBTV9QV1JEV04JCUJJVCgzKQo+ICsvKiBiaXQgNzogQUNO QUNUTSBIYXJkd2FyZSBDb250cm9sIC0gSFcgY29udHJvbHMgQUNOQUNUTSBwb3J0IG9uIE1QIGxv dyBwb3dlciBlbnRyeSAqLwo+ICsjZGVmaW5lIFBNVV9DWF9JRExFX0FDTkFDVE1fSFdfQ1RSTAkJ QklUKDcpCj4gKwo+ICsjZGVmaW5lIENMVVNURVJfUFdSX0RPV05fVkFMVUUJCQkoUE1VX0NYX0lE TEVfTVBfSURMRSB8CQlcCj4gKwkJCQkJCSBQTVVfQ1hfSURMRV9NUF9QV1JEV04gfAlcCj4gKwkJ CQkJCSBQTVVfQ1hfSURMRV9MMl9TUkFNX1BXUkRXTiB8CVwKPiArCQkJCQkJIFBNVV9DWF9JRExF X01QX1NDVV9TUkFNX1BXUkRXTiB8IFwKPiArCQkJCQkJIFBNVV9DWF9JRExFX0FDTkFDVE1fSFdf Q1RSTCkKPiArCj4gKy8qIGJvb3QgZW50cnkgZm9yIEExMDAgY2x1c3RlcnMgKi8KPiArI2RlZmlu ZSBDMl9SVkJBRERSX0xPX0FERFIJCQkoMHhkNDI4MmMwMCArIDB4M2U4KQo+ICsjZGVmaW5lIEMy X1JWQkFERFJfSElfQUREUgkJCSgweGQ0MjgyYzAwICsgMHgzZWMpCj4gKyNkZWZpbmUgQzNfUlZC QUREUl9MT19BRERSCQkJKDB4ZDQyODJjMDAgKyAweDI2MCkKPiArI2RlZmluZSBDM19SVkJBRERS X0hJX0FERFIJCQkoMHhkNDI4MmMwMCArIDB4MjY0KQo+ICsKPiArLyoKPiArICogUE1VIEFQIGNv cmUgV0ZJIHN0YXR1cyByZWdpc3RlcnMuICBFYWNoIGJpdCBpbmRpY2F0ZXMgdGhlIGNvcnJlc3Bv bmRpbmcKPiArICogY29yZSBoYXMgZW50ZXJlZCBXRkkgaWRsZSBzdGF0ZS4KPiArICoKPiArICog WDEwMCBoYXJ0cyAoMC03KTogUE1VX0FQX1gxMDBfSURMRV9TVEFUVVMKPiArICogICBjbHVzdGVy IDAgKGhhcnRzIDAtMyk6IGJpdHMgNCwgNywgMTAsIDEzCj4gKyAqICAgY2x1c3RlciAxIChoYXJ0 cyA0LTcpOiBiaXRzIDIwLCAyMywgMjYsIDI5Cj4gKyAqIEExMDAgaGFydHMgKDgtMTUpOiBQTVVf QVBfQTEwMF9JRExFX1NUQVRVUwo+ICsgKiAgIGNsdXN0ZXIgMiAoaGFydHMgOC0xMSk6ICBiaXRz IDQsIDcsIDEwLCAxMwo+ICsgKiAgIGNsdXN0ZXIgMyAoaGFydHMgMTItMTUpOiBiaXRzIDIwLCAy MywgMjYsIDI5Cj4gKyAqLwo+ICsjZGVmaW5lIFBNVV9BUF9YMTAwX0lETEVfU1RBVFVTCQkJMHhk NDI4Mjg5MAo+ICsjZGVmaW5lIFBNVV9BUF9BMTAwX0lETEVfU1RBVFVTCQkJMHhkNDI4Mjg4MAo+ ICsKPiArI2RlZmluZSBQTEFURk9STV9BMTAwX0ZJUlNUX0lECQkJOAo+ICsjZGVmaW5lIFBMQVRG T1JNX0ExMDBfTEFTVF9JRAkJCTE1Cj4gKwo+ICsjZGVmaW5lIFBMQVRfQ0NJX0szX0FJRE1BX0lG QUNFX0lYCQkwCj4gKyNkZWZpbmUgUExBVF9DQ0lfSzNfQ0xVU1RFUjBfSUZBQ0VfSVgJCTEKPiAr I2RlZmluZSBQTEFUX0NDSV9LM19DTFVTVEVSMV9JRkFDRV9JWAkJMgo+ICsjZGVmaW5lIFBMQVRf Q0NJX0szX0NMVVNURVIyXzBfSUZBQ0VfSVgJMwo+ICsjZGVmaW5lIFBMQVRfQ0NJX0szX0NMVVNU RVIyXzFfSUZBQ0VfSVgJNAo+ICsjZGVmaW5lIFBMQVRfQ0NJX0szX0NMVVNURVIzXzBfSUZBQ0Vf SVgJNQo+ICsjZGVmaW5lIFBMQVRfQ0NJX0szX0NMVVNURVIzXzFfSUZBQ0VfSVgJNgo+ICsKPiAr I2VuZGlmIC8qIF9fUklTQ1ZfU1BBQ0VNSVRfSzNfSF9fICovCj4gZGlmZiAtLWdpdCBhL3BsYXRm b3JtL2dlbmVyaWMvaW5jbHVkZS9zcGFjZW1pdC9rM19hc20uaCBiL3BsYXRmb3JtL2dlbmVyaWMv aW5jbHVkZS9zcGFjZW1pdC9rM19hc20uaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg MDAwMDAwMDAuLjcwYzAwNDc4Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3BsYXRmb3JtL2dlbmVy aWMvaW5jbHVkZS9zcGFjZW1pdC9rM19hc20uaAo+IEBAIC0wLDAgKzEsMTYgQEAKPiArLyogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZSAqLwo+ICsvKgo+ICsgKiBDb3B5cmln aHQgKGMpIDIwMjYgU3BhY2VtaVQKPiArICogQXV0aG9yczoKPiArICogICBYaWFuYmluIFpodSA8 eGlhbmJpbi56aHVAbGludXguc3BhY2VtaXQuY29tPgo+ICsgKiAgIFRyb3kgTWl0Y2hlbGwgPHRy b3kubWl0Y2hlbGxAbGludXguc3BhY2VtaXQuY29tPgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19S SVNDVl9TUEFDRU1JVF9LM19BU01fSF9fCj4gKyNkZWZpbmUgX19SSVNDVl9TUEFDRU1JVF9LM19B U01fSF9fCj4gKwo+ICsjaWZuZGVmIF9fQVNTRU1CTFlfXwo+ICt2b2lkIF9zcGFjZW1pdF9rM193 YXJtX3N0YXJ0KHZvaWQpOwo+ICsjZW5kaWYKPiArCj4gKyNlbmRpZiAvKiBfX1JJU0NWX1NQQUNF TUlUX0szX0FTTV9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvcGxhdGZvcm0vZ2VuZXJpYy9zcGFjZW1p dC9rMy5jIGIvcGxhdGZvcm0vZ2VuZXJpYy9zcGFjZW1pdC9rMy5jCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwMC4uMWU4ZDhjOTcKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv cGxhdGZvcm0vZ2VuZXJpYy9zcGFjZW1pdC9rMy5jCj4gQEAgLTAsMCArMSwyNjYgQEAKPiArLyoK PiArICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZQo+ICsgKgo+ICsgKiBD b3B5cmlnaHQgKGMpIDIwMjYgU3BhY2VtaVQKPiArICogQXV0aG9yczoKPiArICogICBYaWFuYmlu IFpodSA8eGlhbmJpbi56aHVAbGludXguc3BhY2VtaXQuY29tPgo+ICsgKiAgIFRyb3kgTWl0Y2hl bGwgPHRyb3kubWl0Y2hlbGxAbGludXguc3BhY2VtaXQuY29tPgo+ICsgKi8KPiArCj4gKyNpbmNs dWRlIDxwbGF0Zm9ybV9vdmVycmlkZS5oPgo+ICsjaW5jbHVkZSA8c2JpL3Jpc2N2X2FzbS5oPgo+ ICsjaW5jbHVkZSA8c2JpL3Jpc2N2X2lvLmg+Cj4gKyNpbmNsdWRlIDxzYmkvc2JpX2NvbnNvbGUu aD4KPiArI2luY2x1ZGUgPHNiaS9zYmlfdGltZXIuaD4KPiArI2luY2x1ZGUgPHNwYWNlbWl0L2sz Lmg+Cj4gKyNpbmNsdWRlIDxzcGFjZW1pdC9rM19hc20uaD4KPiArI2luY2x1ZGUgPHNwYWNlbWl0 L3NwYWNlbWl0Lmg+Cj4gKwo+ICsjZGVmaW5lIFBMQVRGT1JNX01BWF9DUFVTCQkJMTYKPiArCj4g Ky8qCj4gKyAqIE1heGltdW0gdGltZSB0byB3YWl0IGZvciBlYWNoIHNlY29uZGFyeSBoYXJ0IHRv IGVudGVyIFdGSSBhZnRlciBpdCBpcwo+ICsgKiB3b2tlbiBkdXJpbmcgY29sZCBib290LiBVc2Ug dGhlIHBsYXRmb3JtIHRpbWVyIHNvIHRoZSB0aW1lb3V0IGRvZXMgbm90Cj4gKyAqIGRlcGVuZCBv biBDUFUgZnJlcXVlbmN5IG9yIE1NSU8gbGF0ZW5jeS4KPiArICovCj4gKyNkZWZpbmUgSEFSVF9X RklfVElNRU9VVF9NUwkJCTEwMAo+ICsKPiArc3RhdGljIGNvbnN0IGludCBjY2lfbWFwW10gPSB7 Cj4gKwlQTEFUX0NDSV9LM19BSURNQV9JRkFDRV9JWCwKPiArCVBMQVRfQ0NJX0szX0NMVVNURVIw X0lGQUNFX0lYLAo+ICsJUExBVF9DQ0lfSzNfQ0xVU1RFUjFfSUZBQ0VfSVgsCj4gKwlQTEFUX0ND SV9LM19DTFVTVEVSMl8wX0lGQUNFX0lYLAo+ICsJUExBVF9DQ0lfSzNfQ0xVU1RFUjJfMV9JRkFD RV9JWCwKPiArCVBMQVRfQ0NJX0szX0NMVVNURVIzXzBfSUZBQ0VfSVgsCj4gKwlQTEFUX0NDSV9L M19DTFVTVEVSM18xX0lGQUNFX0lYLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHVuc2lnbmVk IGxvbmcgY3hfY2FwbXBfaWRsZV9jZmdbXSA9IHsKPiArCVBNVV9DWF9DQVBNUF9JRExFX0NGRzAs ICBQTVVfQ1hfQ0FQTVBfSURMRV9DRkcxLAo+ICsJUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMiwgIFBN VV9DWF9DQVBNUF9JRExFX0NGRzMsCj4gKwlQTVVfQ1hfQ0FQTVBfSURMRV9DRkc0LCAgUE1VX0NY X0NBUE1QX0lETEVfQ0ZHNSwKPiArCVBNVV9DWF9DQVBNUF9JRExFX0NGRzYsICBQTVVfQ1hfQ0FQ TVBfSURMRV9DRkc3LAo+ICsJUE1VX0NYX0NBUE1QX0lETEVfQ0ZHOCwgIFBNVV9DWF9DQVBNUF9J RExFX0NGRzksCj4gKwlQTVVfQ1hfQ0FQTVBfSURMRV9DRkcxMCwgUE1VX0NYX0NBUE1QX0lETEVf Q0ZHMTEsCj4gKwlQTVVfQ1hfQ0FQTVBfSURMRV9DRkcxMiwgUE1VX0NYX0NBUE1QX0lETEVfQ0ZH MTMsCj4gKwlQTVVfQ1hfQ0FQTVBfSURMRV9DRkcxNCwgUE1VX0NYX0NBUE1QX0lETEVfQ0ZHMTUs Cj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBjb3JlX3B3cmRvd25fcmVn W10gPSB7Cj4gKwlQTVVfQVBfQ09SRTBfSURMRV9DRkcsICAgUE1VX0FQX0NPUkUxX0lETEVfQ0ZH LAo+ICsJUE1VX0FQX0NPUkUyX0lETEVfQ0ZHLCAgIFBNVV9BUF9DT1JFM19JRExFX0NGRywKPiAr CVBNVV9BUF9DT1JFNF9JRExFX0NGRywgICBQTVVfQVBfQ09SRTVfSURMRV9DRkcsCj4gKwlQTVVf QVBfQ09SRTZfSURMRV9DRkcsICAgUE1VX0FQX0NPUkU3X0lETEVfQ0ZHLAo+ICsJUE1VX0NBUF9D T1JFOF9JRExFX0NGRywgIFBNVV9DQVBfQ09SRTlfSURMRV9DRkcsCj4gKwlQTVVfQ0FQX0NPUkUx MF9JRExFX0NGRywgUE1VX0NBUF9DT1JFMTFfSURMRV9DRkcsCj4gKwlQTVVfQ0FQX0NPUkUxMl9J RExFX0NGRywgUE1VX0NBUF9DT1JFMTNfSURMRV9DRkcsCj4gKwlQTVVfQ0FQX0NPUkUxNF9JRExF X0NGRywgUE1VX0NBUF9DT1JFMTVfSURMRV9DRkcsCj4gK307Cj4gKwo+ICsvKiBXYWtldXAgcmVn aXN0ZXJzIGluZGV4ZWQgYnkgaGFydCBJRCAoMC0xNSkuICovCj4gK3N0YXRpYyBjb25zdCB1bnNp Z25lZCBsb25nIGNvcmVfd2FrZXVwX3JlZ1tdID0gewo+ICsJUE1VX0FQX0NPUkUwX1dBS0VVUCwg ICAgIFBNVV9BUF9DT1JFMV9XQUtFVVAsCj4gKwlQTVVfQVBfQ09SRTJfV0FLRVVQLCAgICAgUE1V X0FQX0NPUkUzX1dBS0VVUCwKPiArCVBNVV9BUF9DT1JFNF9XQUtFVVAsICAgICBQTVVfQVBfQ09S RTVfV0FLRVVQLAo+ICsJUE1VX0FQX0NPUkU2X1dBS0VVUCwgICAgIFBNVV9BUF9DT1JFN19XQUtF VVAsCj4gKwlQTVVfQ0FQX0NPUkU4X1dBS0VVUCwgICAgUE1VX0NBUF9DT1JFOV9XQUtFVVAsCj4g KwlQTVVfQ0FQX0NPUkUxMF9XQUtFVVAsICAgUE1VX0NBUF9DT1JFMTFfV0FLRVVQLAo+ICsJUE1V X0NBUF9DT1JFMTJfV0FLRVVQLCAgIFBNVV9DQVBfQ09SRTEzX1dBS0VVUCwKPiArCVBNVV9DQVBf Q09SRTE0X1dBS0VVUCwgICBQTVVfQ0FQX0NPUkUxNV9XQUtFVVAsCj4gK307Cj4gKwo+ICsvKgo+ ICsgKiBXRkkgaWRsZSBzdGF0dXMgcmVnaXN0ZXJzIGFuZCBwZXItaGFydCBtYXNrIGJpdHMuICBF YWNoIGhhcnQgaGFzIGEKPiArICogZGVkaWNhdGVkIGJpdCBpbiBvbmUgb2YgdHdvIHN0YXR1cyBy ZWdpc3RlcnMgKFgxMDAgaGFydHMgMC03IGluCj4gKyAqIFBNVV9BUF9YMTAwX0lETEVfU1RBVFVT LCBBMTAwIGhhcnRzIDgtMTUgaW4gUE1VX0FQX0ExMDBfSURMRV9TVEFUVVMpLgo+ICsgKiBJbmRl eCAwIGlzIHVudXNlZCDigJQgdGhlIGJvb3QgaGFydCBuZXZlciB3YWl0cyBvbiBpdHNlbGYuCj4g KyAqLwo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyB3Zmlfc3RhdHVzX3JlZ1tdID0gewo+ ICsJMCwKPiArCVBNVV9BUF9YMTAwX0lETEVfU1RBVFVTLCBQTVVfQVBfWDEwMF9JRExFX1NUQVRV UywKPiArCVBNVV9BUF9YMTAwX0lETEVfU1RBVFVTLCBQTVVfQVBfWDEwMF9JRExFX1NUQVRVUywK PiArCVBNVV9BUF9YMTAwX0lETEVfU1RBVFVTLCBQTVVfQVBfWDEwMF9JRExFX1NUQVRVUywKPiAr CVBNVV9BUF9YMTAwX0lETEVfU1RBVFVTLAo+ICsJUE1VX0FQX0ExMDBfSURMRV9TVEFUVVMsIFBN VV9BUF9BMTAwX0lETEVfU1RBVFVTLAo+ICsJUE1VX0FQX0ExMDBfSURMRV9TVEFUVVMsIFBNVV9B UF9BMTAwX0lETEVfU1RBVFVTLAo+ICsJUE1VX0FQX0ExMDBfSURMRV9TVEFUVVMsIFBNVV9BUF9B MTAwX0lETEVfU1RBVFVTLAo+ICsJUE1VX0FQX0ExMDBfSURMRV9TVEFUVVMsIFBNVV9BUF9BMTAw X0lETEVfU1RBVFVTLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgd2Zp X3N0YXR1c19tYXNrW10gPSB7Cj4gKwkwLAo+ICsJQklUKDcpLCAgQklUKDEwKSwgQklUKDEzKSwg QklUKDIwKSwKPiArCUJJVCgyMyksIEJJVCgyNiksIEJJVCgyOSksCj4gKwlCSVQoNCksICBCSVQo NyksICBCSVQoMTApLCBCSVQoMTMpLAo+ICsJQklUKDIwKSwgQklUKDIzKSwgQklUKDI2KSwgQklU KDI5KSwKPiArfTsKPiArCj4gKy8qCj4gKyAqIENsZWFyIHRoZSBwb3dlci1kb3duIGJpdHMgZm9y IGJvdGggdGhlIGNvcmUgYW5kIGl0cyBjbHVzdGVyIHNvIHRoYXQKPiArICogdGhlIGhhcnQgZG9l cyBub3QgdHJpZ2dlciBhIHBvd2VyLWRvd24gc2VxdWVuY2Ugb24gV0ZJLiAgQ2FsbGVkIGR1cmlu Zwo+ICsgKiBjb2xkIGJvb3QgdG8gZW5zdXJlIGNvcmVzIGFuZCBjbHVzdGVycyBzdGF5IHBvd2Vy ZWQgd2hpbGUgU0JJIGluaXRpYWxpemVzLgo+ICsgKi8KPiArc3RhdGljIHZvaWQgc3BhY2VtaXRf ZGlzYWJsZV9wd3Jkb3duX2NvcmUodTMyIGhhcnRpZCkKPiArewo+ICsJdW5zaWduZWQgaW50IHZh bHVlOwo+ICsKPiArCWlmIChoYXJ0aWQgPj0gYXJyYXlfc2l6ZShjeF9jYXBtcF9pZGxlX2NmZykp Cj4gKwkJcmV0dXJuOwo+ICsKPiArCXZhbHVlID0gcmVhZGwoKHZvaWQgKikodW5zaWduZWQgbG9u ZyljeF9jYXBtcF9pZGxlX2NmZ1toYXJ0aWRdKTsKPiArCXZhbHVlICY9IH5DTFVTVEVSX1BXUl9E T1dOX1ZBTFVFOwo+ICsJd3JpdGVsKHZhbHVlLCAodm9pZCAqKSh1bnNpZ25lZCBsb25nKWN4X2Nh cG1wX2lkbGVfY2ZnW2hhcnRpZF0pOwo+ICsKPiArCXZhbHVlID0gcmVhZGwoKHZvaWQgKikodW5z aWduZWQgbG9uZyljb3JlX3B3cmRvd25fcmVnW2hhcnRpZF0pOwo+ICsJdmFsdWUgJj0gflBNVV9B UF9JRExFX1BXUkRPV05fSzNfTUFTSzsKPiArCXdyaXRlbCh2YWx1ZSwgKHZvaWQgKikodW5zaWdu ZWQgbG9uZyljb3JlX3B3cmRvd25fcmVnW2hhcnRpZF0pOwo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBQ ZXItaGFydCBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiwgbWlycm9yaW5nIHdoYXQgd2FybS1ib290 IGhhcnRzIHByZXZpb3VzbHkKPiArICogZGlkIGluIGFzc2VtYmx5IGJlZm9yZSBlbnRlcmluZyBD IGNvZGUuICBDYWxsZWQgb24gZXZlcnkgaGFydCBvbiBib3RoIGNvbGQKPiArICogYW5kIHdhcm0g Ym9vdCBwYXRocy4KPiArICoKPiArICogMS4gUE1BOiBzZXQgYXVkaW8gYnVmZmVyIChiaXRzIFs1 NTo0OF0pIGNhY2hlYWJsZSBhbmQgWElQCj4gKyAqICAgIHJlZ2lvbiAoYml0cyBbMjM6MTZdKSBh cyBJTyBiZWZvcmUgZW5hYmxpbmcgZGNhY2hlLgo+ICsgKiAyLiBFbmFibGUgZGNhY2hlL2ljYWNo ZSBhbmQgb3RoZXIgQ1BVIGZlYXR1cmVzIChNU0VUVVApLgo+ICsgKiAzLiBTZXQgc21wZW5beF0g aW4gTUwyU0VUVVAgdG8gZW5hYmxlIEwxIEQtY2FjaGUgc25vb3BpbmcgYW5kIHByZWZldGNoLgo+ ICsgKiA0LiBFbmFibGUgSCBleHRlbnNpb24gaW4gTUlTQSAoWDEwMCBvbmx5OyBub3QgaW1wbGVt ZW50ZWQgb24gQTEwMCkuCj4gKyAqLwo+ICtzdGF0aWMgdm9pZCBzcGFjZW1pdF9rM19oYXJ0X2lu aXQodTMyIGhhcnRpZCkKPiArewo+ICsJY3NyX2NsZWFyKENTUl9QTUFDRkcwLAo+ICsJCSAgKHVu c2lnbmVkIGxvbmcpUE1BQ0ZHMF9BVURJT19CVUZfRklFTERfTUFTSwo+ICsJCSAgPDwgUE1BQ0ZH MF9BVURJT19CVUZfRklFTERfU0hJRlQpOwo+ICsJY3NyX3NldChDU1JfUE1BQ0ZHMCwKPiArCQko dW5zaWduZWQgbG9uZylQTUFDRkcwX0FVRElPX0JVRl9BVFRSX0NBQ0hFQUJMRQo+ICsJCTw8IFBN QUNGRzBfQVVESU9fQlVGX0ZJRUxEX1NISUZUKTsKPiArCWNzcl9jbGVhcihDU1JfUE1BQ0ZHMCwg UE1BQ0ZHMF9YSVBfRklFTERfQ0xFQVIpOwo+ICsJY3NyX3NldChDU1JfUE1BQ0ZHMCwgUE1BQ0ZH MF9YSVBfQVRUUl9JTyk7Cj4gKwlhc20gdm9sYXRpbGUoInNmZW5jZS52bWEiIDogOiA6ICJtZW1v cnkiKTsKPiArCj4gKwljc3Jfc2V0KENTUl9NU0VUVVAsIE1TRVRVUF9ERSB8IE1TRVRVUF9JRSB8 IE1TRVRVUF9CUEUgfAo+ICsJCU1TRVRVUF9QRkUgfCBNU0VUVVBfTU1FIHwgTVNFVFVQX0VDQ0Up Owo+ICsJY3NyX3NldChDU1JfTUwyU0VUVVAsIDEgPDwgKGhhcnRpZCAlIFBMQVRGT1JNX01BWF9D UFVTX1BFUl9DTFVTVEVSKSk7Cj4gKwljc3Jfc2V0KENTUl9NTDJTRVRVUCwgTUwyU0VUVVBfSVBS RiB8IE1MMlNFVFVQX1RQUkYpOwo+ICsJY3NyX3NldChDU1JfTUwySElOVCwgTUwySElOVF9UUkFD RV9UT1BfSUNHRU4pOwo+ICsKPiArCWlmIChoYXJ0aWQgPCBQTEFURk9STV9BMTAwX0ZJUlNUX0lE KSB7Cj4gKwkJdW5zaWduZWQgbG9uZyBtaXNhID0gY3NyX3JlYWQoQ1NSX01JU0EpOwo+ICsKPiAr CQkvKgo+ICsJCSAqIE1JU0EuSCBpcyB3cml0YWJsZSBvbiBLMyBYMTAwIGNvcmVzOiB0aGUgSCBl eHRlbnNpb24gaXMKPiArCQkgKiBpbXBsZW1lbnRlZCBidXQgZGlzYWJsZWQgb3V0IG9mIHJlc2V0 LCBhbmQgTS1tb2RlIG11c3QKPiArCQkgKiBleHBsaWNpdGx5IHNldCB0aGlzIGJpdCB0byBlbmFi bGUgaHlwZXJ2aXNvciBzdXBwb3J0Lgo+ICsJCSAqIEExMDAgY29yZXMgZG8gbm90IGltcGxlbWVu dCBILCBzbyB0aGlzIHdyaXRlIGlzIFgxMDAtb25seS4KPiArCQkgKi8KPiArCQltaXNhIHw9IDFV TCA8PCAoJ0gnIC0gJ0EnKTsKPiArCQljc3Jfd3JpdGUoQ1NSX01JU0EsIG1pc2EpOwo+ICsJfQo+ ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHNwYWNlbWl0X2szX25hc2NlbnRfaW5pdCh2b2lkKQo+ICt7 Cj4gKwlzcGFjZW1pdF9rM19oYXJ0X2luaXQoY3VycmVudF9oYXJ0aWQoKSk7Cj4gKwo+ICsJcmV0 dXJuIGdlbmVyaWNfbmFzY2VudF9pbml0KCk7Cj4gK30KPiArCj4gKy8qCj4gKyAqIE9uZS10aW1l IHBsYXRmb3JtIHNldHVwIHJ1biBieSB0aGUgYm9vdCBoYXJ0IGR1cmluZyBjb2xkIGJvb3Q6Cj4g KyAqIHNldCB3YXJtLWJvb3QgZW50cnkgZm9yIGFsbCBmb3VyIGNsdXN0ZXJzLCBlbmFibGUgQ0NJ IHNub29waW5nLAo+ICsgKiBhbmQgd2FrZSBhbGwgbm9uLWJvb3QgaGFydHMgKDEtMTUpIHNvIHRo ZXkgZW50ZXIgV0ZJIGFuZCB3YWl0Cj4gKyAqIGZvciB0aGUga2VybmVsIHRvIGJyaW5nIHRoZW0g b25saW5lLgo+ICsgKi8KPiArc3RhdGljIHZvaWQgc3BhY2VtaXRfazNfcHJlX2luaXQodm9pZCkK PiArewo+ICsJdW5zaWduZWQgbG9uZyBlbnRyeSA9ICh1bnNpZ25lZCBsb25nKSZfc3BhY2VtaXRf azNfd2FybV9zdGFydDsKPiArCWludCBpOwo+ICsKPiArCXdyaXRlbCgodTMyKWVudHJ5LCAodm9p ZCAqKSh1bnNpZ25lZCBsb25nKUMwX1JWQkFERFJfTE9fQUREUik7Cj4gKwl3cml0ZWwoKHUzMiko ZW50cnkgPj4gMzIpLCAodm9pZCAqKSh1bnNpZ25lZCBsb25nKUMwX1JWQkFERFJfSElfQUREUik7 Cj4gKwo+ICsJd3JpdGVsKCh1MzIpZW50cnksICh2b2lkICopKHVuc2lnbmVkIGxvbmcpQzFfUlZC QUREUl9MT19BRERSKTsKPiArCXdyaXRlbCgodTMyKShlbnRyeSA+PiAzMiksICh2b2lkICopKHVu c2lnbmVkIGxvbmcpQzFfUlZCQUREUl9ISV9BRERSKTsKPiArCj4gKwl3cml0ZWwoKHUzMillbnRy eSwgKHZvaWQgKikodW5zaWduZWQgbG9uZylDMl9SVkJBRERSX0xPX0FERFIpOwo+ICsJd3JpdGVs KCh1MzIpKGVudHJ5ID4+IDMyKSwgKHZvaWQgKikodW5zaWduZWQgbG9uZylDMl9SVkJBRERSX0hJ X0FERFIpOwo+ICsKPiArCXdyaXRlbCgodTMyKWVudHJ5LCAodm9pZCAqKSh1bnNpZ25lZCBsb25n KUMzX1JWQkFERFJfTE9fQUREUik7Cj4gKwl3cml0ZWwoKHUzMikoZW50cnkgPj4gMzIpLCAodm9p ZCAqKSh1bnNpZ25lZCBsb25nKUMzX1JWQkFERFJfSElfQUREUik7Cj4gKwo+ICsJZm9yIChpID0g MDsgaSA8IGFycmF5X3NpemUoY2NpX21hcCk7IGkrKykKPiArCQljY2lfZW5hYmxlX3Nub29wX2R2 bV9yZXFzKGNjaV9tYXAsIGkpOwo+ICsKPiArCS8qIENsZWFyIGNvcmUgYW5kIGNsdXN0ZXIgcG93 ZXItZG93biB2b3RlcyBzbyBXRkkgZG9lcyBub3QgdHJpZ2dlciBwb3dlci1kb3duLiAqLwo+ICsJ Zm9yIChpID0gMDsgaSA8IFBMQVRGT1JNX01BWF9DUFVTOyBpKyspCj4gKwkJc3BhY2VtaXRfZGlz YWJsZV9wd3Jkb3duX2NvcmUoaSk7Cj4gKwo+ICsJLyoKPiArCSAqIFdha2UgdXAgYWxsIG5vbi1i b290IGhhcnRzICgxLTE1KS4gIEVhY2ggaGFydCBOIGhhcyBhIGRlZGljYXRlZCBQTVUKPiArCSAq IHdha2V1cCByZWdpc3RlciAoUE1VX0FQL0NBUF9DT1JFbl9XQUtFVVApLiAgV3JpdGluZyBCSVQo TikgdG8gaGFydCBOJ3MKPiArCSAqIHJlZ2lzdGVyIHRyaWdnZXJzIHRoZSB3YWtldXAgcHVsc2Ug Zm9yIHRoYXQgaGFydC4gIFRoaXMgaXMgY29uZmlybWVkIGJ5Cj4gKwkgKiBoYXJkd2FyZTogdGhl IHJlZ2lzdGVyIGFkZHJlc3Mgc2VsZWN0cyB0aGUgdGFyZ2V0IGhhcnQsIGFuZCB0aGUgdmFsdWUK PiArCSAqIHdyaXR0ZW4gbXVzdCBoYXZlIGJpdCBOIHNldCAobm90IGEgZml4ZWQgdHJpZ2dlciBi aXQpLgo+ICsJICogU2VlIEszIFVzZXIgTWFudWFsLCAiMTYgUGVyaXBoZXJhbHMgLyBQb3dlciBN YW5hZ2VtZW50IC8gV2FrZXVwIENvcmUiLgo+ICsJICovCj4gKwlmb3IgKGkgPSAxOyBpIDwgYXJy YXlfc2l6ZShjb3JlX3dha2V1cF9yZWcpOyBpKyspCj4gKwkJd3JpdGVsKDEgPDwgaSwgKHZvaWQg KikodW5zaWduZWQgbG9uZyljb3JlX3dha2V1cF9yZWdbaV0pOwo+ICsKPiArCS8qCj4gKwkgKiBX YWl0IGZvciBlYWNoIG5vbi1ib290IGhhcnQgdG8gZW50ZXIgV0ZJLiAgU3RhdHVzIGJpdCBwb3Np dGlvbnMgYXJlCj4gKwkgKiBub24tdW5pZm9ybSAoc2VlIGszLmgpLCBzbyB1c2UgdGhlIGZpbGUt c2NvcGUgbG9va3VwIHRhYmxlcy4KPiArCSAqLwo+ICsJZm9yIChpID0gMTsgaSA8IFBMQVRGT1JN X01BWF9DUFVTOyBpKyspIHsKPiArCQl1NjQgZGVhZGxpbmUgPSBzYmlfdGltZXJfdmFsdWVfYWZ0 ZXJfbXNlY3MoSEFSVF9XRklfVElNRU9VVF9NUyk7Cj4gKwo+ICsJCXdoaWxlICghKHJlYWRsKCh2 b2lkICopKHVuc2lnbmVkIGxvbmcpd2ZpX3N0YXR1c19yZWdbaV0pICYgd2ZpX3N0YXR1c19tYXNr W2ldKSkgewo+ICsJCQlpZiAoc2JpX3RpbWVyX3ZhbHVlKCkgPj0gZGVhZGxpbmUpIHsKPiArCQkJ CXNiaV9wcmludGYoIndhcm46IGhhcnQgJWQgZGlkIG5vdCBlbnRlciBXRklcbiIsIGkpOwo+ICsJ CQkJYnJlYWs7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9CgpUaGUgb3BlcmF0aW9ucyBpbiB0aGVzZSBs b29wcyBzaG91bGQgYmUgaW4gYSAuaGFydF9zdGFydCBmdW5jdGlvbiBvZiBhbiBIU00KZHJpdmVy LCBub3QgcnVuIGluIGEgbG9vcCBhdCBjb2xkIGJvb3QuIFlvdSB3aWxsIG5lZWQgdG8gZG8gdGhp cyBhbnl3YXkgdG8Kc3VwcG9ydCBwb3dlciBtYW5hZ2VtZW50LCBhbmQgaXQgbWFrZXMgY29sZCBi b290IGZhc3Rlci4KCj4gK30KPiArCj4gKy8qCj4gKyAqIFBsYXRmb3JtIGVhcmx5IGluaXRpYWxp emF0aW9uLgo+ICsgKi8KPiArc3RhdGljIGludCBzcGFjZW1pdF9rM19lYXJseV9pbml0KGJvb2wg Y29sZF9ib290KQo+ICt7Cj4gKwlpbnQgcmM7Cj4gKwo+ICsJaWYgKGNvbGRfYm9vdCkKPiArCQlz cGFjZW1pdF9rM19wcmVfaW5pdCgpOwo+ICsKPiArCXJjID0gZ2VuZXJpY19lYXJseV9pbml0KGNv bGRfYm9vdCk7Cj4gKwlpZiAocmMpCj4gKwkJcmV0dXJuIHJjOwo+ICsKPiArCXJldHVybiAwOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBzcGFjZW1pdF9jb2xkX2Jvb3RfYWxsb3dlZCh1MzIgaGFy dGlkKQo+ICt7Cj4gKwlyZXR1cm4gIWhhcnRpZDsKPiArfQoKSWYgaGFydHMgMS0xNSBhcmUgbm90 IHBvd2VyZWQgb24gdW50aWwgc3BhY2VtaXRfazNfcHJlX2luaXQoKSwgdGhpcyBjYWxsYmFjawp3 b24ndCBkbyBhbnl0aGluZywgYmVjYXVzZSBoYXJ0IDAgaXMgdGhlIG9ubHkgaGFydCBydW5uaW5n IGF0IHRoaXMgcG9pbnQuCgpSZWdhcmRzLApTYW11ZWwKCj4gKwo+ICtzdGF0aWMgaW50IHNwYWNl bWl0X2szX3BsYXRmb3JtX2luaXQoY29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9kZW9mZiwKPiArCQkJ CSAgICAgY29uc3Qgc3RydWN0IGZkdF9tYXRjaCAqbWF0Y2gpCj4gK3sKPiArCWdlbmVyaWNfcGxh dGZvcm1fb3BzLm5hc2NlbnRfaW5pdCA9IHNwYWNlbWl0X2szX25hc2NlbnRfaW5pdDsKPiArCWdl bmVyaWNfcGxhdGZvcm1fb3BzLmVhcmx5X2luaXQgPSBzcGFjZW1pdF9rM19lYXJseV9pbml0Owo+ ICsJZ2VuZXJpY19wbGF0Zm9ybV9vcHMuY29sZF9ib290X2FsbG93ZWQgPSBzcGFjZW1pdF9jb2xk X2Jvb3RfYWxsb3dlZDsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBmZHRfbWF0Y2ggc3BhY2VtaXRfazNfbWF0Y2hbXSA9IHsKPiArCXsgLmNvbXBhdGli bGUgPSAic3BhY2VtaXQsazMiIH0sCj4gKwl7IC8qIHNlbnRpbmVsICovIH0KPiArfTsKPiArCj4g K2NvbnN0IHN0cnVjdCBmZHRfZHJpdmVyIHNwYWNlbWl0X2szID0gewo+ICsJLm1hdGNoX3RhYmxl ID0gc3BhY2VtaXRfazNfbWF0Y2gsCj4gKwkuaW5pdCA9IHNwYWNlbWl0X2szX3BsYXRmb3JtX2lu aXQsCj4gK307Cj4gZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvc3BhY2VtaXQvazNfYXNt LlMgYi9wbGF0Zm9ybS9nZW5lcmljL3NwYWNlbWl0L2szX2FzbS5TCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwMC4uZmU0NWNjYTYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv cGxhdGZvcm0vZ2VuZXJpYy9zcGFjZW1pdC9rM19hc20uUwo+IEBAIC0wLDAgKzEsMzMgQEAKPiAr LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZSAqLwo+ICsvKgo+ICsgKiBD b3B5cmlnaHQgKGMpIDIwMjYgU3BhY2VtaVQKPiArICogQXV0aG9yczoKPiArICogICBYaWFuYmlu IFpodSA8eGlhbmJpbi56aHVAbGludXguc3BhY2VtaXQuY29tPgo+ICsgKiAgIFRyb3kgTWl0Y2hl bGwgPHRyb3kubWl0Y2hlbGxAbGludXguc3BhY2VtaXQuY29tPgo+ICsgKi8KPiArCj4gKyNkZWZp bmUgX19BU1NFTUJMWV9fCj4gKyNpbmNsdWRlIDxzcGFjZW1pdC9jb21tb24uaD4KPiArI2luY2x1 ZGUgPHNwYWNlbWl0L2szLmg+Cj4gKwo+ICsJLnNlY3Rpb24gLmVudHJ5LCAiYXgiLCAlcHJvZ2Jp dHMKPiArCS5hbGlnbiAzCj4gKwkuZ2xvYmwgX3NwYWNlbWl0X2szX3dhcm1fc3RhcnQKPiArX3Nw YWNlbWl0X2szX3dhcm1fc3RhcnQ6Cj4gKwkvKiBFbmFibGUgZGNhY2hlLCBpY2FjaGUsIGFuZCBD UFUgZmVhdHVyZXMgKi8KPiArCWxpCXQwLCBNU0VUVVBfQk9PVF9GTEFHUwo+ICsJY3NycwlDU1Jf TVNFVFVQLCB0MAo+ICsKPiArCS8qCj4gKwkgKiBTZXQgc21wZW5beF0gaW4gTUwyU0VUVVAgdG8g ZW5hYmxlIEwxIEQtY2FjaGUgc25vb3BpbmcgZm9yIHRoaXMKPiArCSAqIGNvcmUsIHNvIHRoZSBo YXJkd2FyZSBtYWludGFpbnMgY29oZXJlbmN5IGJldHdlZW4gdGhpcyBjb3JlJ3MgTDEKPiArCSAq IEQtY2FjaGUgYW5kIGFsbCBvdGhlciBjYWNoZXMgaW4gdGhlIHN5c3RlbS4KPiArCSAqIFRoZSBi aXQgcG9zaXRpb24gaXMgMSA8PCAoaGFydGlkICUgUExBVEZPUk1fTUFYX0NQVVNfUEVSX0NMVVNU RVIpLgo+ICsJICovCj4gKwljc3JyCXQwLCBtaGFydGlkCj4gKwlhbmRpCXQwLCB0MCwgKFBMQVRG T1JNX01BWF9DUFVTX1BFUl9DTFVTVEVSIC0gMSkKPiArCWxpCXQxLCAxCj4gKwlzbGwJdDEsIHQx LCB0MAo+ICsJY3NycwlDU1JfTUwyU0VUVVAsIHQxCj4gKwo+ICsJaglfc3RhcnRfd2FybQo+IGRp ZmYgLS1naXQgYS9wbGF0Zm9ybS9nZW5lcmljL3NwYWNlbWl0L29iamVjdHMubWsgYi9wbGF0Zm9y bS9nZW5lcmljL3NwYWNlbWl0L29iamVjdHMubWsKPiBpbmRleCA4MzA5YWQxZi4uMjgyNTQzYjUg MTAwNjQ0Cj4gLS0tIGEvcGxhdGZvcm0vZ2VuZXJpYy9zcGFjZW1pdC9vYmplY3RzLm1rCj4gKysr IGIvcGxhdGZvcm0vZ2VuZXJpYy9zcGFjZW1pdC9vYmplY3RzLm1rCj4gQEAgLTUsMyArNSw1IEBA Cj4gIHBsYXRmb3JtLW9ianMtJChDT05GSUdfUExBVEZPUk1fU1BBQ0VNSVQpICs9IHNwYWNlbWl0 L3NwYWNlbWl0Lm8KPiAgY2FycmF5LXBsYXRmb3JtX292ZXJyaWRlX21vZHVsZXMtJChDT05GSUdf UExBVEZPUk1fU1BBQ0VNSVRfSzEpICs9IHNwYWNlbWl0X2sxCj4gIHBsYXRmb3JtLW9ianMtJChD T05GSUdfUExBVEZPUk1fU1BBQ0VNSVRfSzEpICs9IHNwYWNlbWl0L2sxLm8KPiArY2FycmF5LXBs YXRmb3JtX292ZXJyaWRlX21vZHVsZXMtJChDT05GSUdfUExBVEZPUk1fU1BBQ0VNSVRfSzMpICs9 IHNwYWNlbWl0X2szCj4gK3BsYXRmb3JtLW9ianMtJChDT05GSUdfUExBVEZPUk1fU1BBQ0VNSVRf SzMpICs9IHNwYWNlbWl0L2szLm8gc3BhY2VtaXQvazNfYXNtLm8KPiAKCgotLSAKb3BlbnNiaSBt YWlsaW5nIGxpc3QKb3BlbnNiaUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vb3BlbnNiaQo=