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 X-Spam-Level: X-Spam-Status: No, score=-13.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,INVALID_MSGID,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0F634C4338F for ; Mon, 2 Aug 2021 09:06:51 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id CB85D60F4B for ; Mon, 2 Aug 2021 09:06:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org CB85D60F4B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sipeed.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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:MIME-Version: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=um9hXIuNaBDdaUD8A3ad3vUMHqg+5KZuhGH0I3cS6I8=; b=iOOXfRcDdwEobX 6O8FDTwUc8ih+j3p3F7o55VnUtckhTIfCWCxfKiZpOsGira/64pOK5cFhBVMPNokwiJvmXqFCd0JF 3fymOmHp2MazcfB7Y4CUhZm0oxK8OxrRamI9Eiz4K4YHhF6x+SPUXNgYp7FtWpZKwprCHwS0Iznfy r+jfOS0Ap7z6I8BH55T6mSaLv4ZfGonaOsgoQqeI45oFwqAIiCDrEl6GFlLCpUPGEEQtFbGUHcEKs DZSIoQk/6b/y2Ivhz4h2KzhlIFtREO07eYp8J43JDNoza8q3M5A5SexfJVcE9g4OrRIDUk5DiewII RkZp0BF8y5ngIMsU6g6w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mATsz-00FV4w-Ny; Mon, 02 Aug 2021 09:05:25 +0000 Received: from smtpbg127.qq.com ([109.244.180.96] helo=smtpbg.qq.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mATsq-00FUt3-C0 for linux-arm-kernel@lists.infradead.org; Mon, 02 Aug 2021 09:05:23 +0000 X-QQ-mid: bizesmtp43t1627895013tynlxyhr Received: from [192.168.0.46] (unknown [113.89.245.207]) by esmtp6.qq.com (ESMTP) with id ; Mon, 02 Aug 2021 17:03:33 +0800 (CST) X-QQ-SSF: 00100000002000208000D00A0000000 X-QQ-FEAT: dMLGSgzcGosioRzVDyqmmclh5TC7ofhwWZPRAjF0duMSAtrgLqM4KfXyUsxO4 7/lLsqx0fi5DeB8VAJm0EQhrkubZyBHi2hIzo/SL8KB7dsGTmSuUq8zAu3tSWvdfC85TxI+ f1iMX8cau+LtW2Uo7JBD+A5YgOsvTWIKmbr9ym5XAnCDWjcSlaDQCDx24EWQpz15gXPyehr gFq8uQZV8FuKhZlLZqD1JbO1ZRwBRSOcmDnnKHS9HMgl8QdHC13EC/RMgEDgvvkAwXFq1Cy xFiqyffD/o065iR1gP6vfLlZ9+8JjxzF6Y7C055jJd79DFhyIQbT5kjD7Vtbriu/z+QrGF0 E1cLsWGjDFHtpdkJRUNlE/zjntmMMSMvzMreTeSMWz1wSxng54= X-QQ-GoodBg: 0 Message-ID: +88AC50AA4723D6F3 Subject: Re: [PATCH 10/17] clk: sunxi=ng: add support for R329 R-CCU From: Icenowy Zheng To: Rob Herring , Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec , Ulf Hansson , Linus Walleij , Alexandre Belloni , Andre Przywara , Samuel Holland Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Date: Mon, 02 Aug 2021 17:03:32 +0800 In-Reply-To: <20210802062212.73220-11-icenowy@sipeed.com> References: <20210802062212.73220-1-icenowy@sipeed.com> <20210802062212.73220-11-icenowy@sipeed.com> Organization: Sipeed User-Agent: Evolution 3.40.0 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:sipeed.com:qybgspam:qybgspam1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210802_020517_002565_D3499057 X-CRM114-Status: GOOD ( 30.55 ) X-BeenThere: linux-arm-kernel@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: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 5ZyoIDIwMjEtMDgtMDLmmJ/mnJ/kuIDnmoQgMTQ6MjIgKzA4MDDvvIxJY2Vub3d5IFpoZW5n5YaZ 6YGT77yaCj4gQWxsd2lubmVyIFIzMjkgaGFzIGNsb2NrIGNvbnRyb2xzIGluIFBSQ00sIGxpa2Ug b3RoZXIgbmV3IEFsbHdpbm5lcgo+IFNvQ3MuCj4gCj4gQWRkIHN1cHBvcnQgZm9yIHRoZW0uCj4g Cj4gVGhpcyBkcml2ZXIgaXMgYWRkZWQgYmVmb3JlIHRoZSBtYWluIENDVSBiZWNhdXNlIFBMTHMg YXJlIGNvbnRyb2xsZWQKPiBieQo+IFItQ0NVIG9uIFIzMjkuCgpXZWxsLCBJIGZvcmdvdCB0byBt ZW50aW9uIHRoYXQgdGhlIFJfRE1BIGJ1cyBjbG9jayBnYXRlcy9yZXNldHMgYXJlIG5vdApkb2N1 bWVudGVkIG9uIHRoZSB1c2VyIG1hbnVhbCwgYW5kIHRoZSBpbmZvIGhlcmUgaXMgZ2V0IGJ5IGV4 cGVyaW1lbnQuCgpUaGVyZSBzZWVtcyB0byBiZSBhbm90aGVyIGhpZGRlbiBidXMgY2xvY2sgZ2F0 ZS9yZXNldCBhY2NvcmRpbmcgdG8gYQpyZWdpc3RlciBkdW1wIG9mIFJfQ0NVIGRvbmUgb24gQlNQ IGtlcm5lbCwgYnV0IEkgaGF2ZSBubyBpZGVhIHdoYXQgaXQKaXMuCgo+IAo+IFNpZ25lZC1vZmYt Ynk6IEljZW5vd3kgWmhlbmcgPGljZW5vd3lAc2lwZWVkLmNvbT4KPiAtLS0KPiDCoGRyaXZlcnMv Y2xrL3N1bnhpLW5nL0tjb25maWfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzC oMKgIDUgKwo+IMKgZHJpdmVycy9jbGsvc3VueGktbmcvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAxICsKPiDCoGRyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1z dW41MGktcjMyOS1yLmPCoMKgwqDCoMKgIHwgMzc0Cj4gKysrKysrKysrKysrKysrKysrCj4gwqBk cml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuNTBpLXIzMjktci5owqDCoMKgwqDCoCB8wqAgMzMg KysKPiDCoGluY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3VuNTBpLXIzMjktci1jY3UuaCB8wqAg MzMgKysKPiDCoGluY2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3VuNTBpLXIzMjktci1jY3UuaCB8 wqAgMjQgKysKPiDCoDYgZmlsZXMgY2hhbmdlZCwgNDcwIGluc2VydGlvbnMoKykKPiDCoGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuNTBpLXIzMjktci5jCj4g wqBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjUwaS1yMzI5 LXIuaAo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3Vu NTBpLXIzMjktci1jY3UuaAo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHQtYmluZGlu Z3MvcmVzZXQvc3VuNTBpLXIzMjktci1jY3UuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Ns ay9zdW54aS1uZy9LY29uZmlnIGIvZHJpdmVycy9jbGsvc3VueGktCj4gbmcvS2NvbmZpZwo+IGlu ZGV4IGNkNDZkODg1Mzg3Ni4uZTQ5YjJjMmZhNWI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvY2xr L3N1bnhpLW5nL0tjb25maWcKPiArKysgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9LY29uZmlnCj4g QEAgLTQyLDYgKzQyLDExIEBAIGNvbmZpZyBTVU41MElfSDZfUl9DQ1UKPiDCoMKgwqDCoMKgwqDC oMKgZGVmYXVsdCBBUk02NCAmJiBBUkNIX1NVTlhJCj4gwqDCoMKgwqDCoMKgwqDCoGRlcGVuZHMg b24gKEFSTTY0ICYmIEFSQ0hfU1VOWEkpIHx8IENPTVBJTEVfVEVTVAo+IMKgCj4gK2NvbmZpZyBT VU41MElfUjMyOV9SX0NDVQo+ICvCoMKgwqDCoMKgwqDCoGJvb2wgIlN1cHBvcnQgZm9yIHRoZSBB bGx3aW5uZXIgUjMyOSBQUkNNIENDVSIKPiArwqDCoMKgwqDCoMKgwqBkZWZhdWx0IEFSTTY0ICYm IEFSQ0hfU1VOWEkKPiArwqDCoMKgwqDCoMKgwqBkZXBlbmRzIG9uIChBUk02NCAmJiBBUkNIX1NV TlhJKSB8fCBDT01QSUxFX1RFU1QKPiArCj4gwqBjb25maWcgU1VONElfQTEwX0NDVQo+IMKgwqDC oMKgwqDCoMKgwqBib29sICJTdXBwb3J0IGZvciB0aGUgQWxsd2lubmVyIEExMC9BMjAgQ0NVIgo+ IMKgwqDCoMKgwqDCoMKgwqBkZWZhdWx0IE1BQ0hfU1VONEkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jbGsvc3VueGktbmcvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay9zdW54aS0KPiBuZy9NYWtlZmls ZQo+IGluZGV4IDk2YzMyNDMwNmQ5Ny4uZGIzMzhhMjE4OGZkIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvY2xrL3N1bnhpLW5nL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9jbGsvc3VueGktbmcvTWFr ZWZpbGUKPiBAQCAtMjgsNiArMjgsNyBAQCBvYmotJChDT05GSUdfU1VONTBJX0ExMDBfUl9DQ1Up wqDCoMKgwqDCoMKgwqArPSBjY3UtCj4gc3VuNTBpLWExMDAtci5vCj4gwqBvYmotJChDT05GSUdf U1VONTBJX0g2X0NDVSnCoMKgwqDCoCs9IGNjdS1zdW41MGktaDYubwo+IMKgb2JqLSQoQ09ORklH X1NVTjUwSV9INjE2X0NDVSnCoMKgKz0gY2N1LXN1bjUwaS1oNjE2Lm8KPiDCoG9iai0kKENPTkZJ R19TVU41MElfSDZfUl9DQ1UpwqDCoCs9IGNjdS1zdW41MGktaDYtci5vCj4gK29iai0kKENPTkZJ R19TVU41MElfUjMyOV9SX0NDVSnCoMKgwqDCoMKgwqDCoMKgKz0gY2N1LXN1bjUwaS1yMzI5LXIu bwo+IMKgb2JqLSQoQ09ORklHX1NVTjRJX0ExMF9DQ1UpwqDCoMKgwqArPSBjY3Utc3VuNGktYTEw Lm8KPiDCoG9iai0kKENPTkZJR19TVU41SV9DQ1UpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqArPSBjY3Utc3VuNWkubwo+IMKgb2JqLSQoQ09ORklHX1NVTjZJX0EzMV9DQ1UpwqDCoMKg wqArPSBjY3Utc3VuNmktYTMxLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3VueGktbmcv Y2N1LXN1bjUwaS1yMzI5LXIuYwo+IGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjUwaS1y MzI5LXIuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi41NDEz YTcwMWNiNTcKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1 LXN1bjUwaS1yMzI5LXIuYwo+IEBAIC0wLDAgKzEsMzc0IEBACj4gKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wCj4gKy8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAyMSBTaXBlZWQK PiArICogQmFzZWQgb24gdGhlIEg2MTYgQ0NVIGRyaXZlciwgd2hpY2ggaXM6Cj4gKyAqwqDCoCBD b3B5cmlnaHQgKGMpIDIwMjAgQXJtIEx0ZC4KPiArICovCj4gKwo+ICsjaW5jbHVkZSA8bGludXgv Y2xrLXByb3ZpZGVyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pby5oPgo+ICsjaW5jbHVkZSA8bGlu dXgvb2ZfYWRkcmVzcy5oPgo+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4g Kwo+ICsjaW5jbHVkZSAiY2N1X2NvbW1vbi5oIgo+ICsjaW5jbHVkZSAiY2N1X3Jlc2V0LmgiCj4g Kwo+ICsjaW5jbHVkZSAiY2N1X2Rpdi5oIgo+ICsjaW5jbHVkZSAiY2N1X2dhdGUuaCIKPiArI2lu Y2x1ZGUgImNjdV9tcC5oIgo+ICsjaW5jbHVkZSAiY2N1X211bHQuaCIKPiArI2luY2x1ZGUgImNj dV9uay5oIgo+ICsjaW5jbHVkZSAiY2N1X25rbS5oIgo+ICsjaW5jbHVkZSAiY2N1X25rbXAuaCIK PiArI2luY2x1ZGUgImNjdV9ubS5oIgo+ICsKPiArI2luY2x1ZGUgImNjdS1zdW41MGktcjMyOS1y LmgiCj4gKwo+ICsvKgo+ICsgKiBUaGUgTSBmYWN0b3IgaXMgcHJlc2VudCBpbiB0aGUgcmVnaXN0 ZXIncyBkZXNjcmlwdGlvbiwgYnV0IG5vdCBpbgo+IHRoZQo+ICsgKiBmcmVxdWVuY3kgZm9ybXVs YSwgYW5kIGl0J3MgZG9jdW1lbnRlZCBhcyAiVGhlIGJpdCBpcyBvbmx5IGZvcgo+ICsgKiB0ZXN0 aW5nIiwgc28gaXQncyBub3QgbW9kZWxsZWQgYW5kIHRoZW4gZm9yY2UgdG8gMC4KPiArICovCj4g KyNkZWZpbmUgU1VONTBJX1IzMjlfUExMX0NQVVhfUkVHwqDCoMKgwqDCoMKgwqAweDEwMDAKPiAr c3RhdGljIHN0cnVjdCBjY3VfbXVsdCBwbGxfY3B1eF9jbGsgPSB7Cj4gK8KgwqDCoMKgwqDCoMKg LmVuYWJsZcKgwqDCoMKgwqDCoMKgwqDCoD0gQklUKDMxKSwKPiArwqDCoMKgwqDCoMKgwqAubG9j a8KgwqDCoMKgwqDCoMKgwqDCoMKgwqA9IEJJVCgyOCksCj4gK8KgwqDCoMKgwqDCoMKgLm11bHTC oMKgwqDCoMKgwqDCoMKgwqDCoMKgPSBfU1VOWElfQ0NVX01VTFRfTUlOKDgsIDgsIDEyKSwKPiAr wqDCoMKgwqDCoMKgwqAuY29tbW9uwqDCoMKgwqDCoMKgwqDCoMKgPSB7Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC5yZWfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA9IDB4MTAwMCwK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmh3LmluaXTCoMKgwqDCoMKgwqDCoMKg PSBDTEtfSFdfSU5JVCgicGxsLWNwdXgiLCAib3NjMjRNIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAmY2N1X211bHRfb3BzLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIENMS19TRVRfUkFURV9VTkdBVEUpLAo+ICvCoMKgwqDCoMKgwqDCoH0sCj4gK307Cj4g Kwo+ICsjZGVmaW5lIFNVTjUwSV9SMzI5X1BMTF9QRVJJUEhfUkVHwqDCoMKgwqDCoDB4MTAxMAo+ ICtzdGF0aWMgc3RydWN0IGNjdV9ubSBwbGxfcGVyaXBoX2Jhc2VfY2xrID0gewo+ICvCoMKgwqDC oMKgwqDCoC5lbmFibGXCoMKgwqDCoMKgwqDCoMKgwqA9IEJJVCgzMSksCj4gK8KgwqDCoMKgwqDC oMKgLmxvY2vCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPSBCSVQoMjgpLAo+ICvCoMKgwqDCoMKgwqDC oC5uwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD0gX1NVTlhJX0NDVV9NVUxUX01JTig4LCA4 LCAxMiksCj4gK8KgwqDCoMKgwqDCoMKgLm3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPSBf U1VOWElfQ0NVX0RJVigxLCAxKSwgLyogaW5wdXQgZGl2aWRlciAqLwo+ICvCoMKgwqDCoMKgwqDC oC5jb21tb27CoMKgwqDCoMKgwqDCoMKgwqA9IHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgLnJlZ8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD0gMHgxMDEwLAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAuaHcuaW5pdMKgwqDCoMKgwqDCoMKgwqA9IENMS19IV19JTklU KCJwbGwtcGVyaXBoLWJhc2UiLAo+ICJvc2MyNE0iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICZjY3Vfbm1fb3BzLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IENMS19TRVRfUkFURV9VTkdBVEUpLAo+ICvCoMKgwqDCoMKgwqDCoH0sCj4gK307Cj4gKwo+ICtz dGF0aWMgU1VOWElfQ0NVX00ocGxsX3BlcmlwaF8yeF9jbGssICJwbGwtcGVyaXBoLTJ4IiwgInBs bC1wZXJpcGgtCj4gYmFzZSIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg MHgxMDEwLCAxNiwgMywgMCk7Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfTShwbGxfcGVyaXBoXzgwMG1f Y2xrLCAicGxsLXBlcmlwaC04MDBtIiwgInBsbC0KPiBwZXJpcGgtYmFzZSIsCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHgxMDEwLCAyMCwgMywgMCk7Cj4gK3N0YXRpYyBD TEtfRklYRURfRkFDVE9SX0hXKHBsbF9wZXJpcGhfY2xrLCAicGxsLXBlcmlwaCIsCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZwbGxfcGVyaXBo XzJ4X2Nsay5jb21tb24uaHcsIDIsIDEsIDApOwo+ICsKPiArI2RlZmluZSBTVU41MElfUjMyOV9Q TExfQVVESU8wX1JFR8KgwqDCoMKgwqAweDEwMjAKPiArc3RhdGljIHN0cnVjdCBjY3Vfc2RtX3Nl dHRpbmcgcGxsX2F1ZGlvMF9zZG1fdGFibGVbXSA9IHsKPiArwqDCoMKgwqDCoMKgwqB7IC5yYXRl ID0gMTU0ODI4ODAwMCwgLnBhdHRlcm4gPSAweGMwMDcwNjI0LCAubSA9IDEsIC5uID0gNjQKPiB9 LAo+ICt9Owo+ICsKPiArc3RhdGljIHN0cnVjdCBjY3Vfbm0gcGxsX2F1ZGlvMF9jbGsgPSB7Cj4g K8KgwqDCoMKgwqDCoMKgLmVuYWJsZcKgwqDCoMKgwqDCoMKgwqDCoD0gQklUKDMxKSwKPiArwqDC oMKgwqDCoMKgwqAubG9ja8KgwqDCoMKgwqDCoMKgwqDCoMKgwqA9IEJJVCgyOCksCj4gK8KgwqDC oMKgwqDCoMKgLm7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPSBfU1VOWElfQ0NVX01VTFRf TUlOKDgsIDgsIDEyKSwKPiArwqDCoMKgwqDCoMKgwqAubcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqA9IF9TVU5YSV9DQ1VfRElWKDEsIDEpLAo+ICvCoMKgwqDCoMKgwqDCoC5zZG3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqA9IF9TVU5YSV9DQ1VfU0RNKHBsbF9hdWRpbzBfc2RtX3RhYmxlLAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDI0KSwgMHgxMTIwLCBCSVQoMzEpKSwKPiArwqDC oMKgwqDCoMKgwqAuY29tbW9uwqDCoMKgwqDCoMKgwqDCoMKgPSB7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoC5mZWF0dXJlc8KgwqDCoMKgwqDCoMKgPSBDQ1VfRkVBVFVSRV9TSUdN QV9ERUxUQV9NT0QsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5yZWfCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqA9IDB4MTAyMCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgLmh3LmluaXTCoMKgwqDCoMKgwqDCoMKgPSBDTEtfSFdfSU5JVCgicGxsLWF1ZGlvMCIsICJv c2MyNE0iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZjY3Vfbm1fb3BzLAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIENMS19TRVRfUkFURV9VTkdBVEUpLAo+ ICvCoMKgwqDCoMKgwqDCoH0sCj4gK307Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX00ocGxsX2F1 ZGlvMF9kaXYyX2NsaywgInBsbC1hdWRpbzAtZGl2MiIsICJwbGwtCj4gYXVkaW8wIiwKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAweDEwMjAsIDE2LCAzLCAwKTsKPiArc3Rh dGljIFNVTlhJX0NDVV9NKHBsbF9hdWRpbzBfZGl2NV9jbGssICJwbGwtYXVkaW8wLWRpdjUiLCAi cGxsLQo+IGF1ZGlvMCIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHgx MDIwLCAyMCwgMywgMCk7Cj4gKwo+ICsvKgo+ICsgKiBQTEwtQVVESU8xIGhhcyAzIGRpdmlkZXJz IGRlZmluZWQgaW4gdGhlIGRhdGFzaGVldCwgaG93ZXZlciB0aGUKPiArICogQlNQIGRyaXZlciBh bHdheXMgaGFzIE0wID0gMSBhbmQgTTEgPSAyICh0aGlzIGlzIGFsc28gdGhlCj4gKyAqIHJlc2V0 IHZhbHVlIGluIHRoZSByZWdpc3RlcikuCj4gKyAqCj4gKyAqIEhlcmUganVzdCBtb2R1bGUgaXQg YXMgTk0gY2xvY2ssIGFuZCBmb3JjZSBNMCA9IDEgYW5kIE0xID0gMi4KPiArICovCj4gKyNkZWZp bmUgU1VONTBJX1IzMjlfUExMX0FVRElPMV9SRUfCoMKgwqDCoMKgMHgxMDMwCj4gK3N0YXRpYyBz dHJ1Y3QgY2N1X3NkbV9zZXR0aW5nIHBsbF9hdWRpbzFfNHhfc2RtX3RhYmxlW10gPSB7Cj4gK8Kg wqDCoMKgwqDCoMKgeyAucmF0ZSA9IDIyNTc5MjAwLCAucGF0dGVybiA9IDB4YzAwMTI4OGQsIC5t ID0gMTIsIC5uID0gMjIKPiB9LAo+ICvCoMKgwqDCoMKgwqDCoHsgLnJhdGUgPSAyNDU3NjAwMCwg LnBhdHRlcm4gPSAweGMwMDEyNmU5LCAubSA9IDEyLCAubiA9IDI0Cj4gfSwKPiArwqDCoMKgwqDC oMKgwqB7IC5yYXRlID0gOTAzMTY4MDAsIC5wYXR0ZXJuID0gMHhjMDAxMjg4ZCwgLm0gPSAzLCAu biA9IDIyIH0sCj4gK8KgwqDCoMKgwqDCoMKgeyAucmF0ZSA9IDk4MzA0MDAwLCAucGF0dGVybiA9 IDB4YzAwMTI2ZTksIC5tID0gMywgLm4gPSAyNCB9LAo+ICt9Owo+ICtzdGF0aWMgc3RydWN0IGNj dV9ubSBwbGxfYXVkaW8xXzR4X2NsayA9IHsKPiArwqDCoMKgwqDCoMKgwqAuZW5hYmxlwqDCoMKg wqDCoMKgwqDCoMKgPSBCSVQoMzEpLAo+ICvCoMKgwqDCoMKgwqDCoC5sb2NrwqDCoMKgwqDCoMKg wqDCoMKgwqDCoD0gQklUKDI4KSwKPiArwqDCoMKgwqDCoMKgwqAubsKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqA9IF9TVU5YSV9DQ1VfTVVMVF9NSU4oOCwgOCwgMTIpLAo+ICvCoMKgwqDCoMKg wqDCoC5twqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD0gX1NVTlhJX0NDVV9ESVYoMTYsIDYp LAo+ICvCoMKgwqDCoMKgwqDCoC5maXhlZF9wb3N0X2RpdsKgPSAyLAo+ICvCoMKgwqDCoMKgwqDC oC5zZG3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA9IF9TVU5YSV9DQ1VfU0RNKHBsbF9hdWRpbzFf NHhfc2RtX3RhYmxlLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDI0KSwgMHgxMTMwLCBC SVQoMzEpKSwKPiArwqDCoMKgwqDCoMKgwqAuY29tbW9uwqDCoMKgwqDCoMKgwqDCoMKgPSB7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5mZWF0dXJlc8KgwqDCoMKgwqDCoMKgPSBD Q1VfRkVBVFVSRV9GSVhFRF9QT1NURElWIHwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBDQ1VfRkVBVFVSRV9TSUdNQV9E RUxUQV9NT0QsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5yZWfCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqA9IDB4MTAzMCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Lmh3LmluaXTCoMKgwqDCoMKgwqDCoMKgPSBDTEtfSFdfSU5JVCgicGxsLWF1ZGlvMS00eCIsCj4g Im9zYzI0TSIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmNjdV9ubV9vcHMs Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQ0xLX1NFVF9SQVRFX1VOR0FURSks Cj4gK8KgwqDCoMKgwqDCoMKgfSwKPiArfTsKPiArCj4gK3N0YXRpYyBDTEtfRklYRURfRkFDVE9S X0hXKHBsbF9hdWRpbzFfMnhfY2xrLCAicGxsLWF1ZGlvMS0yeCIsCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZwbGxfYXVkaW8xXzR4X2Nsay5j b21tb24uaHcsIDIsIDEsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIENMS19TRVRfUkFURV9QQVJFTlQpOwo+ICtzdGF0aWMgQ0xLX0ZJWEVEX0ZB Q1RPUl9IVyhwbGxfYXVkaW8xX2NsaywgInBsbC1hdWRpbzEiLAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmcGxsX2F1ZGlvMV80eF9jbGsuY29t bW9uLmh3LCA0LCAxLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFy ICogY29uc3Qgcl9idXNfcGFyZW50c1tdID0geyAib3NjMjRNIiwgIm9zYzMyayIsCj4gImlvc2Mi LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJwbGwtcGVyaXBoLTJ4IiwKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAicGxsLWF1ZGlvMC1kaXYyIiB9Owo+ICtz dGF0aWMgU1VOWElfQ0NVX01QX1dJVEhfTVVYKHJfYWhiX2NsaywgInItYWhiIiwgcl9idXNfcGFy ZW50cywKPiAweDAwMCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDAsIDUswqDCoMKgwqDCoMKgLyogTSAqLwo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOCwgMizCoMKgwqDCoMKg wqAvKiBQICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAyNCwgMyzCoMKgwqDCoMKgLyogbXV4ICovCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwKTsKPiArCj4gK3N0YXRpYyBT VU5YSV9DQ1VfTVBfV0lUSF9NVVgocl9hcGIxX2NsaywgInItYXBiMSIsIHJfYnVzX3BhcmVudHMs Cj4gMHgwMGMsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAwLCA1LMKgwqDCoMKgwqDCoC8qIE0gKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDgsIDIswqDCoMKgwqDCoMKgLyog UCAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgMjQsIDMswqDCoMKgwqDCoC8qIG11eCAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElf Q0NVX01QX1dJVEhfTVVYKHJfYXBiMl9jbGssICJyLWFwYjIiLCByX2J1c19wYXJlbnRzLAo+IDB4 MDEwLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgMCwgNSzCoMKgwqDCoMKgwqAvKiBNICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA4LCAyLMKgwqDCoMKgwqDCoC8qIFAgKi8K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IDI0LCAzLMKgwqDCoMKgwqAvKiBtdXggKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9H QVRFKHJfYnVzX2dwYWRjX2NsaywgInItYnVzLWdwYWRjIiwgInItYXBiMSIsCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHgwZWMsIEJJVCgwKSwgMCk7Cj4gK3N0 YXRpYyBTVU5YSV9DQ1VfR0FURShyX2J1c190aHNfY2xrLCAici1idXMtdGhzIiwgInItYXBiMSIs IDB4MGZjLAo+IEJJVCgwKSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUocl9idXNf ZG1hX2NsaywgInItYnVzLWRtYSIsICJyLWFwYjEiLCAweDEwYywKPiBCSVQoMCksIDApOwo+ICsK PiArc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByX3B3bV9wYXJlbnRzW10gPSB7ICJvc2MyNE0i LCAib3NjMzJrIiwKPiAiaW9zYyIgfTsKPiArc3RhdGljIFNVTlhJX0NDVV9NVVhfV0lUSF9HQVRF KHJfcHdtX2NsaywgInItcHdtIiwgcl9wd21fcGFyZW50cywKPiAweDEzMCwKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyNCwgMyzC oMKgwqAvKiBtdXggKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMzEpLMKgLyogZ2F0ZSAqLwo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDApOwo+ICsKPiAr c3RhdGljIFNVTlhJX0NDVV9HQVRFKHJfYnVzX3B3bV9jbGssICJyLWJ1cy1wd20iLCAici1hcGIx IiwgMHgxM2MsCj4gQklUKDApLCAwKTsKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg cl9hdWRpb19wYXJlbnRzW10gPSB7ICJwbGwtYXVkaW8wLWRpdjUiLAo+ICJwbGwtYXVkaW8wLWRp djIiLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgInBsbC1hdWRpbzEt MXgiLAo+ICJwbGwtYXVkaW8xLTR4IiB9Owo+ICtzdGF0aWMgU1VOWElfQ0NVX01QX1dJVEhfTVVY X0dBVEUocl9jb2RlY19hZGNfY2xrLCAici1jb2RlYy1hZGMiLAo+IHJfYXVkaW9fcGFyZW50cywg MHgxNDAsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgMCwgNSzCoMKgwqDCoMKgwqDCoMKgwqAvKiBNICovCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgOCwgMizCoMKgwqDCoMKgwqDCoMKgwqAvKiBQICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMjQsIDMswqDCoMKg wqDCoMKgwqDCoC8qIG11eCAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCgzMSkswqDCoMKgwqDCoMKgLyogZ2F0 ZSAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDApOwo+ICtzdGF0aWMgU1VOWElfQ0NVX01QX1dJVEhfTVVYX0dBVEUo cl9jb2RlY19kYWNfY2xrLCAici1jb2RlYy1kYWMiLAo+IHJfYXVkaW9fcGFyZW50cywgMHgxNDQs Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgMCwgNSzCoMKgwqDCoMKgwqDCoMKgwqAvKiBNICovCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOCwg MizCoMKgwqDCoMKgwqDCoMKgwqAvKiBQICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMjQsIDMswqDCoMKgwqDCoMKg wqDCoC8qIG11eCAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCgzMSkswqDCoMKgwqDCoMKgLyogZ2F0ZSAqLwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKHJfYnVzX2NvZGVjX2Ns aywgInItYnVzLWNvZGVjIiwgInItYXBiMSIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgMHgxNGMsIEJJVCgwKSwgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NV X01QX1dJVEhfTVVYX0dBVEUocl9kbWljX2NsaywgInItZG1pYyIsCj4gcl9hdWRpb19wYXJlbnRz LCAweDE1MCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAwLCA1LMKgwqDCoMKgwqDCoMKgwqDCoC8qIE0gKi8KPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCA4LCAyLMKgwqDCoMKgwqDCoMKgwqDCoC8qIFAgKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyNCwgMyzCoMKg wqDCoMKgwqDCoMKgLyogbXV4ICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDMxKSzCoMKgwqDCoMKgwqAvKiBn YXRlICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgMCk7Cj4gKwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUocl9idXNf ZG1pY19jbGssICJyLWJ1cy1kbWljIiwgInItYXBiMSIsIDB4MTVjLAo+IEJJVCgwKSwgMCk7Cj4g K3N0YXRpYyBTVU5YSV9DQ1VfR0FURShyX2J1c19scmFkY19jbGssICJyLWJ1cy1scmFkYyIsICJy LWFwYjEiLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4MTZj LCBCSVQoMCksIDApOwo+ICsKPiArc3RhdGljIFNVTlhJX0NDVV9NUF9XSVRIX01VWF9HQVRFKHJf aTJzX2NsaywgInItaTJzIiwKPiByX2F1ZGlvX3BhcmVudHMsIDB4MTcwLAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDAs IDUswqDCoMKgwqDCoMKgwqDCoMKgLyogTSAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDgsIDIswqDCoMKgwqDCoMKg wqDCoMKgLyogUCAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDI0LCAzLMKgwqDCoMKgwqDCoMKgwqAvKiBtdXggKi8K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBCSVQoMzEpLMKgwqDCoMKgwqDCoC8qIGdhdGUgKi8KPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwKTsK PiArc3RhdGljIFNVTlhJX0NDVV9NUF9XSVRIX01VWF9HQVRFKHJfaTJzX2FzcmNfY2xrLCAici1p MnMtYXNyYyIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcl9hdWRpb19wYXJlbnRzLCAweDE3NCwKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAw LCA1LMKgwqDCoMKgwqDCoMKgwqDCoC8qIE0gKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA4LCAyLMKgwqDCoMKgwqDC oMKgwqDCoC8qIFAgKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyNCwgMyzCoMKgwqDCoMKgwqDCoMKgLyogbXV4ICov Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgQklUKDMxKSzCoMKgwqDCoMKgwqAvKiBnYXRlICovCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMCk7 Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShyX2J1c19pMnNfY2xrLCAici1idXMtaTJzIiwgInIt YXBiMSIsIDB4MTdjLAo+IEJJVCgwKSwgMCk7Cj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShyX2J1 c191YXJ0X2NsaywgInItYnVzLXVhcnQiLCAici1hcGIyIiwgMHgxOGMsCj4gQklUKDApLCAwKTsK PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFKHJfYnVzX2kyY19jbGssICJyLWJ1cy1pMmMiLCAici1h cGIyIiwgMHgxOWMsCj4gQklUKDApLCAwKTsKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29u c3Qgcl9pcl9wYXJlbnRzW10gPSB7ICJvc2MzMmsiLCAib3NjMjRNIiB9Owo+ICtzdGF0aWMgU1VO WElfQ0NVX01QX1dJVEhfTVVYX0dBVEUocl9pcl9jbGssICJyLWlyIiwgcl9pcl9wYXJlbnRzLAo+ IDB4MWMwLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIDAsIDUswqDCoMKgwqDCoMKgwqDCoMKgLyogTSAqLwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIDgsIDIswqDCoMKgwqDCoMKgwqDCoMKgLyogUCAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDI0LCAzLMKgwqDC oMKgwqDCoMKgwqAvKiBtdXggKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMzEpLMKgwqDCoMKgwqDCoC8qIGdh dGUgKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAwKTsKPiArCj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURShyX2J1c19p cl9jbGssICJyLWJ1cy1pciIsICJyLWFwYjEiLCAweDFjYywKPiBCSVQoMCksIDApOwo+ICtzdGF0 aWMgU1VOWElfQ0NVX0dBVEUocl9idXNfbXNnYm94X2NsaywgInItYnVzLW1zZ2JveCIsICJyLWFw YjEiLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4MWRjLCBC SVQoMCksIDApOwo+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEUocl9idXNfc3BpbmxvY2tfY2xrLCAi ci1idXMtc3BpbmxvY2siLCAici0KPiBhcGIxIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAweDFlYywgQklUKDApLCAwKTsKPiArc3RhdGljIFNVTlhJX0NDVV9H QVRFKHJfYnVzX3J0Y19jbGssICJyLWJ1cy1ydGMiLCAici1haGIiLAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4MjBjLCBCSVQoMCksIENMS19JU19DUklUSUNB TCk7Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGNjdV9jb21tb24gKnN1bjUwaV9yMzI5X3JfY2N1X2Ns a3NbXSA9IHsKPiArwqDCoMKgwqDCoMKgwqAmcGxsX2NwdXhfY2xrLmNvbW1vbiwKPiArwqDCoMKg wqDCoMKgwqAmcGxsX3BlcmlwaF9iYXNlX2Nsay5jb21tb24sCj4gK8KgwqDCoMKgwqDCoMKgJnBs bF9wZXJpcGhfMnhfY2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKgwqAmcGxsX3BlcmlwaF84MDBt X2Nsay5jb21tb24sCj4gK8KgwqDCoMKgwqDCoMKgJnBsbF9hdWRpbzBfY2xrLmNvbW1vbiwKPiAr wqDCoMKgwqDCoMKgwqAmcGxsX2F1ZGlvMF9kaXYyX2Nsay5jb21tb24sCj4gK8KgwqDCoMKgwqDC oMKgJnBsbF9hdWRpbzBfZGl2NV9jbGsuY29tbW9uLAo+ICvCoMKgwqDCoMKgwqDCoCZwbGxfYXVk aW8xXzR4X2Nsay5jb21tb24sCj4gK8KgwqDCoMKgwqDCoMKgJnJfYWhiX2Nsay5jb21tb24sCj4g K8KgwqDCoMKgwqDCoMKgJnJfYXBiMV9jbGsuY29tbW9uLAo+ICvCoMKgwqDCoMKgwqDCoCZyX2Fw YjJfY2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKgwqAmcl9idXNfZ3BhZGNfY2xrLmNvbW1vbiwK PiArwqDCoMKgwqDCoMKgwqAmcl9idXNfdGhzX2Nsay5jb21tb24sCj4gK8KgwqDCoMKgwqDCoMKg JnJfYnVzX2RtYV9jbGsuY29tbW9uLAo+ICvCoMKgwqDCoMKgwqDCoCZyX3B3bV9jbGsuY29tbW9u LAo+ICvCoMKgwqDCoMKgwqDCoCZyX2J1c19wd21fY2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKg wqAmcl9jb2RlY19hZGNfY2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKgwqAmcl9jb2RlY19kYWNf Y2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKgwqAmcl9idXNfY29kZWNfY2xrLmNvbW1vbiwKPiAr wqDCoMKgwqDCoMKgwqAmcl9kbWljX2Nsay5jb21tb24sCj4gK8KgwqDCoMKgwqDCoMKgJnJfYnVz X2RtaWNfY2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKgwqAmcl9idXNfbHJhZGNfY2xrLmNvbW1v biwKPiArwqDCoMKgwqDCoMKgwqAmcl9pMnNfY2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKgwqAm cl9pMnNfYXNyY19jbGsuY29tbW9uLAo+ICvCoMKgwqDCoMKgwqDCoCZyX2J1c19pMnNfY2xrLmNv bW1vbiwKPiArwqDCoMKgwqDCoMKgwqAmcl9idXNfdWFydF9jbGsuY29tbW9uLAo+ICvCoMKgwqDC oMKgwqDCoCZyX2J1c19pMmNfY2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKgwqAmcl9pcl9jbGsu Y29tbW9uLAo+ICvCoMKgwqDCoMKgwqDCoCZyX2J1c19pcl9jbGsuY29tbW9uLAo+ICvCoMKgwqDC oMKgwqDCoCZyX2J1c19tc2dib3hfY2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKgwqAmcl9idXNf c3BpbmxvY2tfY2xrLmNvbW1vbiwKPiArwqDCoMKgwqDCoMKgwqAmcl9idXNfcnRjX2Nsay5jb21t b24sCj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgc3VuNTBp X3IzMjlfcl9od19jbGtzID0gewo+ICvCoMKgwqDCoMKgwqDCoC5od3PCoMKgwqDCoD0gewo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBbQ0xLX1BMTF9DUFVYXcKgwqDCoMKgwqDCoMKg wqDCoMKgPSAmcGxsX2NwdXhfY2xrLmNvbW1vbi5odywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgW0NMS19QTExfUEVSSVBIX0JBU0VdwqDCoMKgPQo+ICZwbGxfcGVyaXBoX2Jhc2Vf Y2xrLmNvbW1vbi5odywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19QTExf UEVSSVBIXzJYXcKgwqDCoMKgwqA9Cj4gJnBsbF9wZXJpcGhfMnhfY2xrLmNvbW1vbi5odywKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19QTExfUEVSSVBIXzgwME1dwqDCoMKg PQo+ICZwbGxfcGVyaXBoXzgwMG1fY2xrLmNvbW1vbi5odywKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgW0NMS19QTExfUEVSSVBIXcKgwqDCoMKgwqDCoMKgwqA9ICZwbGxfcGVyaXBo X2Nsay5odywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19QTExfQVVESU8w XcKgwqDCoMKgwqDCoMKgwqA9ICZwbGxfYXVkaW8wX2Nsay5jb21tb24uaHcsCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoFtDTEtfUExMX0FVRElPMF9ESVYyXcKgwqDCoD0KPiAmcGxs X2F1ZGlvMF9kaXYyX2Nsay5jb21tb24uaHcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoFtDTEtfUExMX0FVRElPMF9ESVY1XcKgwqDCoD0KPiAmcGxsX2F1ZGlvMF9kaXY1X2Nsay5j b21tb24uaHcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFtDTEtfUExMX0FVRElP MV80WF3CoMKgwqDCoMKgPQo+ICZwbGxfYXVkaW8xXzR4X2Nsay5jb21tb24uaHcsCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFtDTEtfUExMX0FVRElPMV8yWF3CoMKgwqDCoMKgPSAm cGxsX2F1ZGlvMV8yeF9jbGsuaHcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFtD TEtfUExMX0FVRElPMV3CoMKgwqDCoMKgwqDCoMKgPSAmcGxsX2F1ZGlvMV9jbGsuaHcsCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFtDTEtfUl9BSEJdwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqA9ICZyX2FoYl9jbGsuY29tbW9uLmh3LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBbQ0xLX1JfQVBCMV3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA9ICZyX2FwYjFfY2xr LmNvbW1vbi5odywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19SX0FQQjJd wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgPSAmcl9hcGIyX2Nsay5jb21tb24uaHcsCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFtDTEtfUl9CVVNfR1BBRENdwqDCoMKgwqDCoMKgwqA9 ICZyX2J1c19ncGFkY19jbGsuY29tbW9uLmh3LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBbQ0xLX1JfQlVTX1RIU13CoMKgwqDCoMKgwqDCoMKgwqA9ICZyX2J1c190aHNfY2xrLmNv bW1vbi5odywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19SX0JVU19ETUFd wqDCoMKgwqDCoMKgwqDCoMKgPSAmcl9idXNfZG1hX2Nsay5jb21tb24uaHcsCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoFtDTEtfUl9QV01dwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqA9ICZyX3B3bV9jbGsuY29tbW9uLmh3LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBbQ0xLX1JfQlVTX1BXTV3CoMKgwqDCoMKgwqDCoMKgwqA9ICZyX2J1c19wd21fY2xrLmNvbW1v bi5odywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19SX0NPREVDX0FEQ13C oMKgwqDCoMKgwqDCoD0gJnJfY29kZWNfYWRjX2Nsay5jb21tb24uaHcsCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoFtDTEtfUl9DT0RFQ19EQUNdwqDCoMKgwqDCoMKgwqA9ICZyX2Nv ZGVjX2RhY19jbGsuY29tbW9uLmh3LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBb Q0xLX1JfQlVTX0NPREVDXcKgwqDCoMKgwqDCoMKgPSAmcl9idXNfY29kZWNfY2xrLmNvbW1vbi5o dywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19SX0RNSUNdwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgPSAmcl9kbWljX2Nsay5jb21tb24uaHcsCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoFtDTEtfUl9CVVNfRE1JQ13CoMKgwqDCoMKgwqDCoMKgPSAmcl9idXNf ZG1pY19jbGsuY29tbW9uLmh3LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBbQ0xL X1JfQlVTX0xSQURDXcKgwqDCoMKgwqDCoMKgPSAmcl9idXNfbHJhZGNfY2xrLmNvbW1vbi5odywK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19SX0kyU13CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoD0gJnJfaTJzX2Nsay5jb21tb24uaHcsCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoFtDTEtfUl9JMlNfQVNSQ13CoMKgwqDCoMKgwqDCoMKgPSAmcl9pMnNfYXNy Y19jbGsuY29tbW9uLmh3LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBbQ0xLX1Jf QlVTX0kyU13CoMKgwqDCoMKgwqDCoMKgwqA9ICZyX2J1c19pMnNfY2xrLmNvbW1vbi5odywKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19SX0JVU19VQVJUXcKgwqDCoMKgwqDC oMKgwqA9ICZyX2J1c191YXJ0X2Nsay5jb21tb24uaHcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoFtDTEtfUl9CVVNfSTJDXcKgwqDCoMKgwqDCoMKgwqDCoD0gJnJfYnVzX2kyY19j bGsuY29tbW9uLmh3LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBbQ0xLX1JfSVJd wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoD0gJnJfaXJfY2xrLmNvbW1vbi5odywKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgW0NMS19SX0JVU19JUl3CoMKgwqDCoMKgwqDCoMKg wqDCoD0gJnJfYnVzX2lyX2Nsay5jb21tb24uaHcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoFtDTEtfUl9CVVNfTVNHQk9YXcKgwqDCoMKgwqDCoD0KPiAmcl9idXNfbXNnYm94X2Ns ay5jb21tb24uaHcsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFtDTEtfUl9CVVNf U1BJTkxPQ0tdwqDCoMKgwqA9Cj4gJnJfYnVzX3NwaW5sb2NrX2Nsay5jb21tb24uaHcsCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFtDTEtfUl9CVVNfUlRDXcKgwqDCoMKgwqDCoMKg wqDCoD0gJnJfYnVzX3J0Y19jbGsuY29tbW9uLmh3LAo+ICvCoMKgwqDCoMKgwqDCoH0sCj4gK8Kg wqDCoMKgwqDCoMKgLm51bSA9IENMS19OVU1CRVIsCj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0 IGNjdV9yZXNldF9tYXAgc3VuNTBpX3IzMjlfcl9jY3VfcmVzZXRzW10gPSB7Cj4gK8KgwqDCoMKg wqDCoMKgW1JTVF9SX0JVU19HUEFEQ13CoMKgwqDCoMKgwqDCoD0geyAweDBlYywgQklUKDE2KSB9 LAo+ICvCoMKgwqDCoMKgwqDCoFtSU1RfUl9CVVNfVEhTXcKgwqDCoMKgwqDCoMKgwqDCoD0geyAw eDBmYywgQklUKDE2KSB9LAo+ICvCoMKgwqDCoMKgwqDCoFtSU1RfUl9CVVNfRE1BXcKgwqDCoMKg wqDCoMKgwqDCoD0geyAweDEwYywgQklUKDE2KSB9LAo+ICvCoMKgwqDCoMKgwqDCoFtSU1RfUl9C VVNfUFdNXcKgwqDCoMKgwqDCoMKgwqDCoD0geyAweDEzYywgQklUKDE2KSB9LAo+ICvCoMKgwqDC oMKgwqDCoFtSU1RfUl9CVVNfQ09ERUNdwqDCoMKgwqDCoMKgwqA9IHsgMHgxNGMsIEJJVCgxNikg fSwKPiArwqDCoMKgwqDCoMKgwqBbUlNUX1JfQlVTX0RNSUNdwqDCoMKgwqDCoMKgwqDCoD0geyAw eDE1YywgQklUKDE2KSB9LAo+ICvCoMKgwqDCoMKgwqDCoFtSU1RfUl9CVVNfTFJBRENdwqDCoMKg wqDCoMKgwqA9IHsgMHgxNmMsIEJJVCgxNikgfSwKPiArwqDCoMKgwqDCoMKgwqBbUlNUX1JfQlVT X0kyU13CoMKgwqDCoMKgwqDCoMKgwqA9IHsgMHgxN2MsIEJJVCgxNikgfSwKPiArwqDCoMKgwqDC oMKgwqBbUlNUX1JfQlVTX1VBUlRdwqDCoMKgwqDCoMKgwqDCoD0geyAweDE4YywgQklUKDE2KSB9 LAo+ICvCoMKgwqDCoMKgwqDCoFtSU1RfUl9CVVNfSTJDXcKgwqDCoMKgwqDCoMKgwqDCoD0geyAw eDE5YywgQklUKDE2KSB9LAo+ICvCoMKgwqDCoMKgwqDCoFtSU1RfUl9CVVNfSVJdwqDCoMKgwqDC oMKgwqDCoMKgwqA9IHsgMHgxY2MsIEJJVCgxNikgfSwKPiArwqDCoMKgwqDCoMKgwqBbUlNUX1Jf QlVTX01TR0JPWF3CoMKgwqDCoMKgwqA9IHsgMHgxZGMsIEJJVCgxNikgfSwKPiArwqDCoMKgwqDC oMKgwqBbUlNUX1JfQlVTX1NQSU5MT0NLXcKgwqDCoMKgPSB7IDB4MWVjLCBCSVQoMTYpIH0sCj4g K8KgwqDCoMKgwqDCoMKgW1JTVF9SX0JVU19SVENdwqDCoMKgwqDCoMKgwqDCoMKgPSB7IDB4MjBj LCBCSVQoMTYpIH0sCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHN1bnhpX2NjdV9k ZXNjIHN1bjUwaV9yMzI5X3JfY2N1X2Rlc2MgPSB7Cj4gK8KgwqDCoMKgwqDCoMKgLmNjdV9jbGtz wqDCoMKgwqDCoMKgwqA9IHN1bjUwaV9yMzI5X3JfY2N1X2Nsa3MsCj4gK8KgwqDCoMKgwqDCoMKg Lm51bV9jY3VfY2xrc8KgwqDCoD0gQVJSQVlfU0laRShzdW41MGlfcjMyOV9yX2NjdV9jbGtzKSwK PiArCj4gK8KgwqDCoMKgwqDCoMKgLmh3X2Nsa3PCoMKgwqDCoMKgwqDCoMKgPSAmc3VuNTBpX3Iz Mjlfcl9od19jbGtzLAo+ICsKPiArwqDCoMKgwqDCoMKgwqAucmVzZXRzwqDCoMKgwqDCoMKgwqDC oMKgPSBzdW41MGlfcjMyOV9yX2NjdV9yZXNldHMsCj4gK8KgwqDCoMKgwqDCoMKgLm51bV9yZXNl dHPCoMKgwqDCoMKgPSBBUlJBWV9TSVpFKHN1bjUwaV9yMzI5X3JfY2N1X3Jlc2V0cyksCj4gK307 Cj4gKwo+ICtzdGF0aWMgY29uc3QgdTMyIHBsbF9yZWdzW10gPSB7Cj4gK8KgwqDCoMKgwqDCoMKg U1VONTBJX1IzMjlfUExMX0NQVVhfUkVHLAo+ICvCoMKgwqDCoMKgwqDCoFNVTjUwSV9SMzI5X1BM TF9QRVJJUEhfUkVHLAo+ICvCoMKgwqDCoMKgwqDCoFNVTjUwSV9SMzI5X1BMTF9BVURJTzBfUkVH LAo+ICvCoMKgwqDCoMKgwqDCoFNVTjUwSV9SMzI5X1BMTF9BVURJTzFfUkVHLAo+ICt9Owo+ICsK PiArc3RhdGljIHZvaWQgX19pbml0IHN1bjUwaV9yMzI5X3JfY2N1X3NldHVwKHN0cnVjdCBkZXZp Y2Vfbm9kZSAqbm9kZSkKPiArewo+ICvCoMKgwqDCoMKgwqDCoHZvaWQgX19pb21lbSAqcmVnOwo+ ICvCoMKgwqDCoMKgwqDCoHUzMiB2YWw7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IGk7Cj4gKwo+ICvC oMKgwqDCoMKgwqDCoHJlZyA9IG9mX2lvX3JlcXVlc3RfYW5kX21hcChub2RlLCAwLAo+IG9mX25v ZGVfZnVsbF9uYW1lKG5vZGUpKTsKPiArwqDCoMKgwqDCoMKgwqBpZiAoSVNfRVJSKHJlZykpIHsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJfZXJyKCIlcE9GOiBDb3VsZCBub3Qg bWFwIGNsb2NrIHJlZ2lzdGVyc1xuIiwKPiBub2RlKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcmV0dXJuOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiArCj4gK8KgwqDCoMKgwqDCoMKg LyogRW5hYmxlIHRoZSBsb2NrIGJpdHMgYW5kIHRoZSBvdXRwdXQgZW5hYmxlIGJpdHMgb24gYWxs Cj4gUExMcyAqLwo+ICvCoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBs bF9yZWdzKTsgaSsrKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHZhbCA9IHJl YWRsKHJlZyArIHBsbF9yZWdzW2ldKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg dmFsIHw9IEJJVCgyOSkgfCBCSVQoMjcpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB3cml0ZWwodmFsLCByZWcgKyBwbGxfcmVnc1tpXSk7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICsK PiArwqDCoMKgwqDCoMKgwqAvKgo+ICvCoMKgwqDCoMKgwqDCoCAqIEZvcmNlIHRoZSBJL08gZGl2 aWRlcnMgb2YgUExMLUFVRElPMSB0byByZXNldCBkZWZhdWx0Cj4gdmFsdWUKPiArwqDCoMKgwqDC oMKgwqAgKgo+ICvCoMKgwqDCoMKgwqDCoCAqIFNlZSB0aGUgY29tbWVudCBiZWZvcmUgcGxsLWF1 ZGlvMSBkZWZpbml0aW9uIGZvciB0aGUKPiByZWFzb24uCj4gK8KgwqDCoMKgwqDCoMKgICovCj4g Kwo+ICvCoMKgwqDCoMKgwqDCoHZhbCA9IHJlYWRsKHJlZyArIFNVTjUwSV9SMzI5X1BMTF9BVURJ TzFfUkVHKTsKPiArwqDCoMKgwqDCoMKgwqB2YWwgJj0gfkJJVCgxKTsKPiArwqDCoMKgwqDCoMKg wqB2YWwgfD0gQklUKDApOwo+ICvCoMKgwqDCoMKgwqDCoHdyaXRlbCh2YWwsIHJlZyArIFNVTjUw SV9SMzI5X1BMTF9BVURJTzFfUkVHKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaSA9IHN1bnhpX2Nj dV9wcm9iZShub2RlLCByZWcsICZzdW41MGlfcjMyOV9yX2NjdV9kZXNjKTsKPiArwqDCoMKgwqDC oMKgwqBpZiAoaSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJfZXJyKCIlcE9G OiBwcm9iaW5nIGNsb2NrcyBmYWlsczogJWRcbiIsIG5vZGUsIGkpOwo+ICt9Cj4gKwo+ICtDTEtf T0ZfREVDTEFSRShzdW41MGlfcjMyOV9yX2NjdSwgImFsbHdpbm5lcixzdW41MGktcjMyOS1yLWNj dSIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN1bjUwaV9yMzI5X3JfY2N1X3NldHVw KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjUwaS1yMzI5LXIu aAo+IGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjUwaS1yMzI5LXIuaAo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi42MmNmNjUzMjIxMTYKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjUwaS1yMzI5LXIuaAo+ IEBAIC0wLDAgKzEsMzMgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAg Ki8KPiArLyoKPiArICogQ29weXJpZ2h0IChjKSAyMDIxIFNpcGVlZAo+ICsgKi8KPiArCj4gKyNp Zm5kZWYgX0NDVV9TVU41MElfUjMyOV9SX0gKPiArI2RlZmluZSBfQ0NVX1NVTjUwSV9SMzI5X1Jf SAo+ICsKPiArI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL3N1bjUwaS1yMzI5LXItY2N1Lmg+ Cj4gKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9yZXNldC9zdW41MGktcjMyOS1yLWNjdS5oPgo+ICsK PiArI2RlZmluZSBDTEtfUExMX0NQVVjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMAo+ICsjZGVmaW5l IENMS19QTExfUEVSSVBIX0JBU0XCoMKgwqDCoDEKPiArI2RlZmluZSBDTEtfUExMX1BFUklQSF8y WMKgwqDCoMKgwqDCoDIKPiArI2RlZmluZSBDTEtfUExMX1BFUklQSF84MDBNwqDCoMKgwqAzCj4g KyNkZWZpbmUgQ0xLX1BMTF9QRVJJUEjCoMKgwqDCoMKgwqDCoMKgwqA0Cj4gKyNkZWZpbmUgQ0xL X1BMTF9BVURJTzDCoMKgwqDCoMKgwqDCoMKgwqA1Cj4gKyNkZWZpbmUgQ0xLX1BMTF9BVURJTzBf RElWMsKgwqDCoMKgNgo+ICsjZGVmaW5lIENMS19QTExfQVVESU8wX0RJVjXCoMKgwqDCoDcKPiAr I2RlZmluZSBDTEtfUExMX0FVRElPMV80WMKgwqDCoMKgwqDCoDgKPiArI2RlZmluZSBDTEtfUExM X0FVRElPMV8yWMKgwqDCoMKgwqDCoDkKPiArI2RlZmluZSBDTEtfUExMX0FVRElPMcKgwqDCoMKg wqDCoMKgwqDCoDEwCj4gKyNkZWZpbmUgQ0xLX1JfQUhCwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoDExCj4gKwo+ICsvKiBSX0FQQjEgZXhwb3J0ZWQgZm9yIFBJTyAqLwo+ICsKPiArI2RlZmlu ZSBDTEtfUl9BUEIywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAxMwo+ICsKPiArLyogQWxsIG1v ZHVsZSAvIGJ1cyBnYXRlIGNsb2NrcyBleHBvcnRlZCAqLwo+ICsKPiArI2RlZmluZSBDTEtfTlVN QkVSwqDCoMKgwqDCoChDTEtfUl9CVVNfUlRDICsgMSkKPiArCj4gKyNlbmRpZiAvKiBfQ0NVX1NV TjUwSV9SMzI5X1JfSCAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2Nr L3N1bjUwaS1yMzI5LXItY2N1LmgKPiBiL2luY2x1ZGUvZHQtYmluZGluZ3MvY2xvY2svc3VuNTBp LXIzMjktci1jY3UuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAw Li5kZjliYzU4ZGU1YzQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5n cy9jbG9jay9zdW41MGktcjMyOS1yLWNjdS5oCj4gQEAgLTAsMCArMSwzMyBAQAo+ICsvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKGMp IDIwMjEgU2lwZWVkCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfRFRfQklORElOR1NfQ0xLX1NVTjUw SV9SMzI5X1JfQ0NVX0hfCj4gKyNkZWZpbmUgX0RUX0JJTkRJTkdTX0NMS19TVU41MElfUjMyOV9S X0NDVV9IXwo+ICsKPiArI2RlZmluZSBDTEtfUl9BUEIxwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAxMgo+ICsKPiArI2RlZmluZSBDTEtfUl9CVVNfR1BBREPCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoDE0Cj4gKyNkZWZpbmUgQ0xLX1JfQlVTX1RIU8KgwqDCoMKgwqDCoMKgwqDCoMKg MTUKPiArI2RlZmluZSBDTEtfUl9CVVNfRE1BwqDCoMKgwqDCoMKgwqDCoMKgwqAxNgo+ICsjZGVm aW5lIENMS19SX1BXTcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAxNwo+ICsjZGVmaW5lIENM S19SX0JVU19QV03CoMKgwqDCoMKgwqDCoMKgwqDCoDE4Cj4gKyNkZWZpbmUgQ0xLX1JfQ09ERUNf QURDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAxOQo+ICsjZGVmaW5lIENMS19SX0NP REVDX0RBQ8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMjAKPiArI2RlZmluZSBDTEtf Ul9CVVNfQ09ERUPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDIxCj4gKyNkZWZpbmUg Q0xLX1JfRE1JQ8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMjIKPiArI2RlZmluZSBDTEtfUl9C VVNfRE1JQ8KgwqDCoMKgwqDCoMKgwqDCoDIzCj4gKyNkZWZpbmUgQ0xLX1JfQlVTX0xSQURDwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAyNAo+ICsjZGVmaW5lIENMS19SX0kyU8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAyNQo+ICsjZGVmaW5lIENMS19SX0kyU19BU1JDwqDCoMKg wqDCoMKgwqDCoMKgMjYKPiArI2RlZmluZSBDTEtfUl9CVVNfSTJTwqDCoMKgwqDCoMKgwqDCoMKg wqAyNwo+ICsjZGVmaW5lIENMS19SX0JVU19VQVJUwqDCoMKgwqDCoMKgwqDCoMKgMjgKPiArI2Rl ZmluZSBDTEtfUl9CVVNfSTJDwqDCoMKgwqDCoMKgwqDCoMKgwqAyOQo+ICsjZGVmaW5lIENMS19S X0lSwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMzAKPiArI2RlZmluZSBDTEtfUl9CVVNf SVLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMzEKPiArI2RlZmluZSBDTEtfUl9CVVNfTVNHQk9YwqDC oMKgwqDCoMKgwqAzMgo+ICsjZGVmaW5lIENMS19SX0JVU19TUElOTE9DS8KgwqDCoMKgwqAzMwo+ ICsjZGVmaW5lIENMS19SX0JVU19SVEPCoMKgwqDCoMKgwqDCoMKgwqDCoDM0Cj4gKwo+ICsjZW5k aWYgLyogX0RUX0JJTkRJTkdTX0NMS19TVU41MElfUjMyOV9SX0NDVV9IXyAqLwo+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2R0LWJpbmRpbmdzL3Jlc2V0L3N1bjUwaS1yMzI5LXItY2N1LmgKPiBiL2lu Y2x1ZGUvZHQtYmluZGluZ3MvcmVzZXQvc3VuNTBpLXIzMjktci1jY3UuaAo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi40MDY0NGYyZjIxYzYKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvaW5jbHVkZS9kdC1iaW5kaW5ncy9yZXNldC9zdW41MGktcjMyOS1yLWNjdS5o Cj4gQEAgLTAsMCArMSwyNCBAQAo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0y LjArIG9yIE1JVCkgKi8KPiArLyoKPiArICogQ29weXJpZ2h0IChjKSAyMDIxIFNpcGVlZAo+ICsg Ki8KPiArCj4gKyNpZm5kZWYgX0RUX0JJTkRJTkdTX1JTVF9TVU41MElfUjMyOV9SX0NDVV9IXwo+ ICsjZGVmaW5lIF9EVF9CSU5ESU5HU19SU1RfU1VONTBJX1IzMjlfUl9DQ1VfSF8KPiArCj4gKyNk ZWZpbmUgUlNUX1JfQlVTX0dQQURDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAwCj4g KyNkZWZpbmUgUlNUX1JfQlVTX1RIU8KgwqDCoMKgwqDCoMKgwqDCoMKgMQo+ICsjZGVmaW5lIFJT VF9SX0JVU19ETUHCoMKgwqDCoMKgwqDCoMKgwqDCoDIKPiArI2RlZmluZSBSU1RfUl9CVVNfUFdN wqDCoMKgwqDCoMKgwqDCoMKgwqAzCj4gKyNkZWZpbmUgUlNUX1JfQlVTX0NPREVDwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA0Cj4gKyNkZWZpbmUgUlNUX1JfQlVTX0RNSUPCoMKgwqDC oMKgwqDCoMKgwqA1Cj4gKyNkZWZpbmUgUlNUX1JfQlVTX0xSQURDwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqA2Cj4gKyNkZWZpbmUgUlNUX1JfQlVTX0kyU8KgwqDCoMKgwqDCoMKgwqDC oMKgNwo+ICsjZGVmaW5lIFJTVF9SX0JVU19VQVJUwqDCoMKgwqDCoMKgwqDCoMKgOAo+ICsjZGVm aW5lIFJTVF9SX0JVU19JMkPCoMKgwqDCoMKgwqDCoMKgwqDCoDkKPiArI2RlZmluZSBSU1RfUl9C VVNfSVLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMTAKPiArI2RlZmluZSBSU1RfUl9CVVNfTVNHQk9Y wqDCoMKgwqDCoMKgwqAxMQo+ICsjZGVmaW5lIFJTVF9SX0JVU19TUElOTE9DS8KgwqDCoMKgwqAx Mgo+ICsjZGVmaW5lIFJTVF9SX0JVU19SVEPCoMKgwqDCoMKgwqDCoMKgwqDCoDEzCj4gKwo+ICsj ZW5kaWYgLyogX0RUX0JJTkRJTkdTX1JTVF9TVU41MElfUjMyOV9SX0NDVV9IXyAqLwoKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==