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 5C39FC021B1 for ; Thu, 20 Feb 2025 16:05:39 +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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=DqhaRAI2MW2Y9C6aIpilwBf3KAiR6FH3Wo2XHq5qKvw=; b=iAz6wgKjBWMfhF F21EnZN1AhalmlJNrMmfGzQBj6DbVavmPi7vDrqOCDCeJo9GFb+pC75qUcu3Hd1OdQhFSj3QF72EI UhsbeT0RgC/EDUx/CCrEA8sYdwywmW90SHi5UL4xDJZrCusB1Vm5PidtwozvJoM0cJoRSj3IHd9Aa P2DD1OFQxJZ+W47uK5PPzg1PBsHAyJDmEFBUNEQhxBZPk2TVE9YLx0OqF3RBgydAgHrbXM7Dq+a5o KW98JrK6nXjM4CtxncZU+N6urWTss8I2kjs70D9N5MEmfZltBv88Pjz70V6v2FUWbHSqoidBQ+7P7 xMCpbS3yCatk8HnxqlZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tl93T-00000001kZP-0Qfk; Thu, 20 Feb 2025 16:05:39 +0000 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tl90s-00000001jo9-14JL; Thu, 20 Feb 2025 16:03:01 +0000 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-388cae9eb9fso571032f8f.3; Thu, 20 Feb 2025 08:02:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740067376; x=1740672176; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=I6bguq6qpVlMqUSZtWfQmgGW97HG/Gksgq8JkfafFAw=; b=kK+Eohf3MOPHixOsSR6/c9hX5ZwsdrcGQ3w1tQXdJOwcYGvTWSkEVJo+Y6KD2DIRLz bn1O8cgn5NR6H4hjV68M2wEVr6pc+rNblqy4uHzslkU2s60KGRxotkmG+f0ZbSPksYeu ffChP40/cJko07BUL2WZBJUqymowahI7N/REk87Mte8xs1JviBFwLM5tCt3knEIFQdco TyUGtMd3uUkFaPfC1yjgzwNGEZ4KaYWSygPHCxfG3jjPZonqpMpRQY/pXIkSdVvh5xtb 5ziVPDgGUFIGFqI5RRpJr0B0Wfg5RwIa3O2AYDwEhurBeDoNnxbPFHik9lktWUR9P12a Q2dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740067376; x=1740672176; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=I6bguq6qpVlMqUSZtWfQmgGW97HG/Gksgq8JkfafFAw=; b=b2BbXYgHs6bC+oRoCalkLp78s9zDh87mTx0KZDxOtqMHL7XZVr4NxNwFcGynsEMBuZ /q+PgGTFptCalvfkWYlY7Ekfc45MS3tkSQFLY0pENafCDcbijN2+e28M3Pst8CElpPTE Gp9qanHvW1TOxUxeLH8OrCPPQr00ePVTt3r5hgONF1s/iO/fW1aatvUZjXhcsyQID8IB xZctm1QbnwKa44zT2aDFcO08Dsq309qEHDYhrnx1Vhn8HzdL2OqJKNCjZd0RXzRcpWbf byFbH4LwU+oLSS+b3mUJuI6BrCGLeLssTR4z84Up91njVFA0GnhvTirqEbHDKrDmDcTf MzIg== X-Forwarded-Encrypted: i=1; AJvYcCVVKzUAzkBAEDTC252jua29e2qTUa3fjK2rRz0KjyFk1j1xBcap3IbHxIBY+nZUO40dOBHTrsSa3lTqTAQ3/Hil@lists.infradead.org, AJvYcCWv99CtFXI9GN7DwUPXRPGseg8Mb7jGWuwTWKa4JEHRUGD9lEUOh5Eezj+UpmAmMiduh3rxi8eZe8qr@lists.infradead.org, AJvYcCXaqUUZNmpzRIkAiSx7zwWXRlQlqFEBBasuYQAmLw/WDPt+Wb9oilb4pckPrGruTLys+IsnaTDBF8fgS+M=@lists.infradead.org X-Gm-Message-State: AOJu0Yzy0mu80n8O+g/nqnkvJd+yqoDzInIdhpHerHw9e4rSY1QVbRMj rSJRtMt/ZFoEeraKeAyAo4GkDIRBKyPk2bJillfsRCkv84YgBEnE X-Gm-Gg: ASbGnctIJaCYjnrGmo9Rmq5obeD2YXhbZefR/CaopUBJzepElbClpOuwuL7o5LwoLKE g9pOmGwqiQGK7m8JsbYtkFuQ2Y5dsxeyWOR1pUiuRbIpUSE3vKHN/x6OtRlXiqdb3aJsLwDnhG9 F+5nUnFOcHXya9pPAzsEcPFxdtF7JE+klNp8d3DWw/TOdcwfpIU+Znc2l/pRZeIBptbU2UU8f2Q 9Nup9jPxEwZ5idLKhviyjnFx6KplBWIR9tzTtjjV6pe0vuPTKkchcAvw91QkAb48HmV1tNvEaA2 BMZLjJlLUyx0ewDp95pP0LYairJe2s1RWD5mtNBwVatxBp7hm6mxHAsXv984XjhnfTA= X-Google-Smtp-Source: AGHT+IFaSQMhNqktmGECobEqwU6OE3XbGvTjrJbpApSBbFFxt7vAWy1C/f+ZaE7jio6splvGI0mHpQ== X-Received: by 2002:a5d:64ed:0:b0:38f:2a84:7542 with SMTP id ffacd0b85a97d-38f33f5234emr20594763f8f.28.1740067375670; Thu, 20 Feb 2025 08:02:55 -0800 (PST) Received: from jernej-laptop.localnet (86-58-6-171.dynamic.telemach.net. [86.58.6.171]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43993847f39sm83376845e9.14.2025.02.20.08.02.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 08:02:55 -0800 (PST) From: Jernej =?UTF-8?B?xaBrcmFiZWM=?= To: =?UTF-8?B?QW5kcsOhcyBTemVtesWR?= Cc: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen-Yu Tsai , Samuel Holland , Linus Walleij , Philipp Zabel , Maxime Ripard , Vinod Koul , Kishon Vijay Abraham I , Ulf Hansson , Paul Walmsley , Palmer Dabbelt , Albert Ou , Uwe =?UTF-8?B?S2xlaW5lLUvDtm5pZw==?= , Florian Fainelli , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v2 04/10] clk: sunxi-ng: add CCU drivers for V853 Date: Thu, 20 Feb 2025 17:02:53 +0100 Message-ID: <1858640.8hzESeGDPO@jernej-laptop> In-Reply-To: <25D5F3C6-47BB-44B1-9FE3-12B6B8F5F901@gmail.com> References: <20250205125225.1152849-1-szemzo.andras@gmail.com> <3596612.V25eIC5XRa@jernej-laptop> <25D5F3C6-47BB-44B1-9FE3-12B6B8F5F901@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250220_080258_319522_23BC7615 X-CRM114-Status: GOOD ( 32.82 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org RG5lIMSNZXRydGVrLCAyMC4gZmVicnVhciAyMDI1IG9iIDEwOjI4OjQzIFNyZWRuamVldnJvcHNr aSBzdGFuZGFyZG5pIMSNYXMgamUgQW5kcsOhcyBTemVtesWRIG5hcGlzYWwoYSk6Cj4gSGksCj4g Cj4gVGhhbmtzIGZvciB5b3VyIHJldmlldyEKPiAKPiA+IE9uIDE5IEZlYiAyMDI1LCBhdCAyMToy MSwgSmVybmVqIMWga3JhYmVjIDxqZXJuZWouc2tyYWJlY0BnbWFpbC5jb20+IHdyb3RlOgo+ID4g Cj4gPiBEbmUgc3JlZGEsIDUuIGZlYnJ1YXIgMjAyNSBvYiAxMzo1MjoxOSBTcmVkbmplZXZyb3Bz a2kgc3RhbmRhcmRuaSDEjWFzIGplIEFuZHJhcyBTemVtem8gbmFwaXNhbChhKToKPiA+PiBWODUz IGhhcyBzaW1pbGFyIGdhdGVzL3Jlc2V0cyBsaWtlIGV4aXN0aW5nIEFsbHdpbm5lciBTT0NzLiBB ZGQgc3VwcG9ydCBmb3IgaXQncyBDQ1UgYW5kIFBSQ00gQ0NVLgo+ID4+IAo+ID4+IFNpZ25lZC1v ZmYtYnk6IEFuZHJhcyBTemVtem8gPHN6ZW16by5hbmRyYXNAZ21haWwuY29tPgo+ID4+IC0tLQo+ ID4+IGRyaXZlcnMvY2xrL3N1bnhpLW5nL0tjb25maWcgICAgICAgICAgICB8ICAgMTAgKwo+ID4+ IGRyaXZlcnMvY2xrL3N1bnhpLW5nL01ha2VmaWxlICAgICAgICAgICB8ICAgIDQgKwo+ID4+IGRy aXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLXIuYyB8ICAxMjAgKysrCj4gPj4gZHJp dmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXY4NTMtci5oIHwgICAxNCArCj4gPj4gZHJpdmVy cy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXY4NTMuYyAgIHwgMTE0NSArKysrKysrKysrKysrKysr KysrKysrKwo+ID4+IGRyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLmggICB8ICAg MTQgKwo+ID4+IDYgZmlsZXMgY2hhbmdlZCwgMTMwNyBpbnNlcnRpb25zKCspCj4gPj4gY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLXIuYwo+ID4+ IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjg1My1y LmgKPiA+PiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhp LXY4NTMuYwo+ID4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Ut c3VuOGktdjg1My5oCj4gPj4gCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N1bnhpLW5n L0tjb25maWcgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9LY29uZmlnCj4gPj4gaW5kZXggYjU0NzE5 OGEyYzY1Li5lMjU3MzczMTc3ZTAgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9jbGsvc3VueGkt bmcvS2NvbmZpZwo+ID4+ICsrKyBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL0tjb25maWcKPiA+PiBA QCAtMTIsNiArMTIsMTYgQEAgY29uZmlnIFNVTklWX0YxQzEwMFNfQ0NVCj4gPj4gZGVmYXVsdCB5 Cj4gPj4gZGVwZW5kcyBvbiBNQUNIX1NVTklWIHx8IENPTVBJTEVfVEVTVAo+ID4+IAo+ID4+ICtj b25maWcgU1VOOElfVjg1M19DQ1UKPiA+PiArIHRyaXN0YXRlICJTdXBwb3J0IGZvciB0aGUgQWxs d2lubmVyIFY4NTMvVjg1MXMvVjg1MVNFIENDVSIKPiA+PiArIGRlZmF1bHQgTUFDSF9TVU44SQo+ ID4+ICsgZGVwZW5kcyBvbiBNQUNIX1NVTjhJIHx8IENPTVBJTEVfVEVTVAo+ID4+ICsKPiA+PiAr Y29uZmlnIFNVTjhJX1Y4NTNfUl9DQ1UKPiA+PiArIHRyaXN0YXRlICJTdXBwb3J0IGZvciB0aGUg QWxsd2lubmVyIFY4NTMvVjg1MXMvVjg1MVNFIFBSQ00gQ0NVIgo+ID4+ICsgZGVmYXVsdCBNQUNI X1NVTjhJCj4gPj4gKyBkZXBlbmRzIG9uIE1BQ0hfU1VOOEkgfHwgQ09NUElMRV9URVNUCj4gPiAK PiA+IEdlbmVyYWxseSwgdGhpcyBhcmUgdHdvIHBhdGNoZXMsIG9uZSBmb3IgZWFjaCBkcml2ZXIu Cj4gPiAKPiA+PiArCj4gPj4gY29uZmlnIFNVTjIwSV9EMV9DQ1UKPiA+PiB0cmlzdGF0ZSAiU3Vw cG9ydCBmb3IgdGhlIEFsbHdpbm5lciBEMS9SNTI4L1QxMTMgQ0NVIgo+ID4+IGRlZmF1bHQgeQo+ ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS1uZy9NYWtlZmlsZSBiL2RyaXZlcnMv Y2xrL3N1bnhpLW5nL01ha2VmaWxlCj4gPj4gaW5kZXggNmIzYWUyYjYyMGRiLi5iODc5Mjg0NjJl MTUgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9jbGsvc3VueGktbmcvTWFrZWZpbGUKPiA+PiAr KysgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9NYWtlZmlsZQo+ID4+IEBAIC0yNSw2ICsyNSw4IEBA IHN1bnhpLWNjdS15ICs9IGNjdV9tcC5vCj4gPj4gCj4gPj4gIyBTb0Mgc3VwcG9ydAo+ID4+IG9i ai0kKENPTkZJR19TVU5JVl9GMUMxMDBTX0NDVSkgKz0gc3VuaXYtZjFjMTAwcy1jY3Uubwo+ID4+ ICtvYmotJChDT05GSUdfU1VOOElfVjg1M19DQ1UpICs9IHN1bjhpLXY4NTMtY2N1Lm8KPiA+PiAr b2JqLSQoQ09ORklHX1NVTjhJX1Y4NTNfUl9DQ1UpICs9IHN1bjhpLXY4NTMtci1jY3Uubwo+ID4g Cj4gPiBQdXQgaXQgdG8gb3RoZXIgc3VuOGkgZHJpdmVycy4KPiA+IAo+ID4+IG9iai0kKENPTkZJ R19TVU4yMElfRDFfQ0NVKSArPSBzdW4yMGktZDEtY2N1Lm8KPiA+PiBvYmotJChDT05GSUdfU1VO MjBJX0QxX1JfQ0NVKSArPSBzdW4yMGktZDEtci1jY3Uubwo+ID4+IG9iai0kKENPTkZJR19TVU41 MElfQTY0X0NDVSkgKz0gc3VuNTBpLWE2NC1jY3Uubwo+ID4+IEBAIC01MCw2ICs1Miw4IEBAIG9i ai0kKENPTkZJR19TVU45SV9BODBfQ0NVKSArPSBzdW45aS1hODAtZGUtY2N1Lm8KPiA+PiBvYmot JChDT05GSUdfU1VOOUlfQTgwX0NDVSkgKz0gc3VuOWktYTgwLXVzYi1jY3Uubwo+ID4+IAo+ID4+ IHN1bml2LWYxYzEwMHMtY2N1LXkgKz0gY2N1LXN1bml2LWYxYzEwMHMubwo+ID4+ICtzdW44aS12 ODUzLWNjdS15ICs9IGNjdS1zdW44aS12ODUzLm8KPiA+PiArc3VuOGktdjg1My1yLWNjdS15ICs9 IGNjdS1zdW44aS12ODUzLXIubwo+ID4gCj4gPiBEaXR0by4KPiA+IAo+IAo+IG9rCj4gCj4gPj4g c3VuMjBpLWQxLWNjdS15ICs9IGNjdS1zdW4yMGktZDEubwo+ID4+IHN1bjIwaS1kMS1yLWNjdS15 ICs9IGNjdS1zdW4yMGktZDEtci5vCj4gPj4gc3VuNTBpLWE2NC1jY3UteSArPSBjY3Utc3VuNTBp LWE2NC5vCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12 ODUzLXIuYyBiL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLXIuYwo+ID4+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPj4gaW5kZXggMDAwMDAwMDAwMDAwLi5iZDYwZTAwY2RhN2YK PiA+PiAtLS0gL2Rldi9udWxsCj4gPj4gKysrIGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1 bjhpLXY4NTMtci5jCj4gPj4gQEAgLTAsMCArMSwxMjAgQEAKPiA+PiArLy8gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAKPiA+PiArLyoKPiA+PiArICogQ29weXJpZ2h0IChDKSAyMDI1 IEFuZHJhcyBTemVtem8gPHN6ZW16by5hbmRyYXNAZ21haWwuY29tPgo+ID4+ICsgKgo+ID4+ICsg KiBCYXNlZCBvbiBjY3Utc3VuMjBpLWQxLXIuYyBieSBTYW11ZWwgSG9sbGFuZC4KPiA+PiArICov Cj4gPj4gKwo+ID4+ICsjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+Cj4gPj4gKyNpbmNs dWRlIDxsaW51eC9tb2R1bGUuaD4KPiA+PiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rldmlj ZS5oPgo+ID4+ICsKPiA+PiArI2luY2x1ZGUgImNjdV9jb21tb24uaCIKPiA+PiArI2luY2x1ZGUg ImNjdV9yZXNldC5oIgo+ID4+ICsKPiA+PiArI2luY2x1ZGUgImNjdV9nYXRlLmgiCj4gPj4gKyNp bmNsdWRlICJjY3VfbXAuaCIKPiA+PiArCj4gPj4gKyNpbmNsdWRlICJjY3Utc3VuOGktdjg1My1y LmgiCj4gPj4gKwo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSByX2Fo Yl9hcGIwX3BhcmVudHNbXSA9IHsKPiA+PiArIHsgLmZ3X25hbWUgPSAiaG9zYyIgfSwKPiA+PiAr IHsgLmZ3X25hbWUgPSAibG9zYyIgfSwKPiA+PiArIHsgLmZ3X25hbWUgPSAiaW9zYyIgfSwKPiA+ PiArIHsgLmZ3X25hbWUgPSAicGxsLXBlcmlwaCIgfSwKPiA+PiArIHsgLmZ3X25hbWUgPSAicGxs LWF1ZGlvIiB9Cj4gPj4gK307Cj4gPj4gKwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX01QX0RBVEFf V0lUSF9NVVgocl9haGJfY2xrLCAici1haGIiLAo+ID4+ICsgIHJfYWhiX2FwYjBfcGFyZW50cywg MHgwMDAsCj4gPj4gKyAgMCwgNSwgLyogTSAqLwo+ID4+ICsgIDgsIDIsIC8qIFAgKi8KPiA+PiAr ICAyNCwgMywgLyogbXV4ICovCj4gPj4gKyAgMCk7Cj4gPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg Y2xrX2h3ICpyX2FoYl9odyA9ICZyX2FoYl9jbGsuY29tbW9uLmh3Owo+ID4+ICsKPiA+PiArc3Rh dGljIFNVTlhJX0NDVV9NUF9EQVRBX1dJVEhfTVVYKHJfYXBiMF9jbGssICJyLWFwYjAiLAo+ID4+ ICsgIHJfYWhiX2FwYjBfcGFyZW50cywgMHgwMGMsCj4gPj4gKyAgMCwgNSwgLyogTSAqLwo+ID4+ ICsgIDgsIDIsIC8qIFAgKi8KPiA+PiArICAyNCwgMywgLyogbXV4ICovCj4gPj4gKyAgMCk7Cj4g Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICpyX2FwYjBfaHcgPSAmcl9hcGIwX2Nsay5j b21tb24uaHc7Cj4gPiAKPiA+IFdoZXJlIGNhbiBJIGxvb2sgZm9yIGFib3ZlIGNsb2Nrcz8gVGhl cmUgYXJlIG5vdCBkZXNjcmliZWQgaW4gQlNQIGRyaXZlci4KPiA+IAo+IAo+IEFzIHRoZSBvcmln aW5hbCBCU1DigJlzIFBSQ00gZHJpdmVyIGhhcyBhbiB1bmFjY2VwdGFibGUgbGljZW5jZSwgSSBo YWQgdG8gcmV3cml0ZSB0aGlzIGRyaXZlci4gIFRoaXMgSVAgYmxvY2sKPiBpc27igJl0IGRvY3Vt ZW50ZWQgaW4gdGhlIFY4NTMgbWFudWFsLCBzbyBhcyBBbmRyZSBzdWdnZXN0ZWQsIEkgdXNlZCB0 aGUgQTUyMyBtYW51YWwsIGFuZCB0aGUgRDEvVDExMwo+IFBSQ00gZHJpdmVyLiBUaGFuIEkgcGVl ay9wb2tlIHRoZSByZWdpc3RlcnMgdG8gY2hlY2sgaWYgaXTigJlzIHZhbGlkIG9yIG5vdC4gCj4g Cj4gYXdib290PiByZWFkMzIgMHg3MDEwMDBjCj4gMHgwNzAxMDAwYzogMHgwZjAwMDMxZgo+IGF3 Ym9vdD4gcmVhZDMyIDB4NzAxMDAwMAo+IDB4MDcwMTAwMDA6IDB4MDAwMDAwMDAKPiBhd2Jvb3Q+ IHdyaXRlMzIgMHg3MDEwMDAwIDB4ZmZmZmZmZmYKPiBhd2Jvb3Q+IHJlYWQzMiAweDcwMTAwMDAK PiAweDA3MDEwMDAwOiAweDA3MDAwMzFmCj4gCj4gVGhleSBhcmUgdGhlcmUsIEnigJltIG5vdCBz dXJlIGFib3V0IGl04oCZcyB1c2FnZS4KCk9rLCBzbyB0aGV5IGV4aXN0IGFuZCBmb3JtYXQgaXMg b2sgdG9vLiBPbmx5IHF1ZXN0aW9uIGlzIGlmIHBhcmVudHMgYXJlIGNvcnJlY3QuCkkgY2hlY2tl ZCBjY3Utc3VuOGl3MjAtci5jIGZyb20gb25lIEJTUCBhbmQgaXQgaGFzIHNpbWlsYXIgY2xvY2tz LiBIb3dldmVyLAppdCdzIG1pc3NpbmcgcGxsLWF1ZGlvIGFuZCBwbGwtcGVyaXBoIGlzIHByZS1k aXZpZGVkIGJ5IDMsIHdoaWNoIGlzIHNhbWUgYXMgb24KQTUyMy4KClNvIG15IHN1Z2dlc3Rpb24g aXMgdG8gcmVtb3ZlIHBsbC1hdWRpbyBhbmQgYWRqdXN0IHBsbC1wZXJpcGggdG8gaGF2ZQpwcmVk aXZpZGVyLgoKPiAKPiAKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVz X3JfdHdkX2NsaywgImJ1cy1yLXR3ZCIsICZyX2FwYjBfaHcsIAo+ID4+ICsgIDB4MTJjLCBCSVQo MCksIDApOwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19yX3BwdV9jbGssICJi dXMtci1wcHUiLCAmcl9hcGIwX2h3LAo+ID4+ICsgIDB4MWFjLCBCSVQoMCksIDApOwo+ID4+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19yX3J0Y19jbGssICJidXMtci1ydGMiLCAmcl9h aGJfaHcsCj4gPj4gKyAgMHgyMGMsIEJJVCgwKSwgMCk7Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1Vf R0FURV9IV1MoYnVzX3JfY3B1Y2ZnX2NsaywgImJ1cy1yLWNwdWNmZyIsICZyX2FwYjBfaHcsCj4g Pj4gKyAgMHgyMmMsIEJJVCgwKSwgMCk7Cj4gPj4gKwo+ID4+ICtzdGF0aWMgc3RydWN0IGNjdV9j b21tb24gKnN1bjhpX3Y4NTNfcl9jY3VfY2xrc1tdID0gewo+ID4+ICsgJnJfYWhiX2Nsay5jb21t b24sCj4gPj4gKyAmcl9hcGIwX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX3JfdHdkX2Nsay5jb21t b24sCj4gPj4gKyAmYnVzX3JfcHB1X2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX3JfcnRjX2Nsay5j b21tb24sCj4gPj4gKyAmYnVzX3JfY3B1Y2ZnX2Nsay5jb21tb24sCj4gPj4gK307Cj4gPj4gKwo+ ID4+ICtzdGF0aWMgc3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgc3VuOGlfdjg1M19yX2h3X2Ns a3MgPSB7Cj4gPj4gKyAubnVtID0gQ0xLX05VTUJFUiwKPiA+PiArIC5od3MgPSB7Cj4gPj4gKyBb Q0xLX1JfQUhCXSA9ICZyX2FoYl9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19SX0FQQjBdID0g JnJfYXBiMF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfUl9UV0RdID0gJmJ1c19yX3R3 ZF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfUl9QUFVdID0gJmJ1c19yX3BwdV9jbGsu Y29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfUl9SVENdID0gJmJ1c19yX3J0Y19jbGsuY29tbW9u Lmh3LAo+ID4+ICsgW0NMS19CVVNfUl9DUFVDRkddID0gJmJ1c19yX2NwdWNmZ19jbGsuY29tbW9u Lmh3LAo+ID4+ICsgfSwKPiA+PiArfTsKPiA+PiArCj4gPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg Y2N1X3Jlc2V0X21hcCBzdW44aV92ODUzX3JfY2N1X3Jlc2V0c1tdID0gewo+ID4+ICsgW1JTVF9C VVNfUl9UV0RdID0geyAweDEyYywgQklUKDE2KSB9LAo+ID4gCj4gPiBXaGVyZSBkaWQgeW91IGdl dCB0aGF0PyBCU1AgZHJpdmVyIHRoYXQgSSBjaGVja2VkIGRvZXNuJ3QgbWVudGlvbnMgaXQuCj4g PiAKPiAKPiB5ZXMsIGp1c3QgZG91YmxlIGNoZWNrZWQgYW5kIHRoaXMgYml0IGlzIG5vdCB2YWxp ZCwgc29ycnksIEnigJlsbCByZW1vdmUgaXQuCj4gCj4gPj4gKyBbUlNUX0JVU19SX1BQVV0gPSB7 IDB4MWFjLCBCSVQoMTYpIH0sCj4gPj4gKyBbUlNUX0JVU19SX1JUQ10gPSB7IDB4MjBjLCBCSVQo MTYpIH0sCj4gPj4gKyBbUlNUX0JVU19SX0NQVUNGR10gPSB7IDB4MjJjLCBCSVQoMTYpIH0sCj4g Pj4gK307Cj4gPj4gKwo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHN1bnhpX2NjdV9kZXNjIHN1 bjhpX3Y4NTNfcl9jY3VfZGVzYyA9IHsKPiA+PiArIC5jY3VfY2xrcyA9IHN1bjhpX3Y4NTNfcl9j Y3VfY2xrcywKPiA+PiArIC5udW1fY2N1X2Nsa3MgPSBBUlJBWV9TSVpFKHN1bjhpX3Y4NTNfcl9j Y3VfY2xrcyksCj4gPj4gKwo+ID4+ICsgLmh3X2Nsa3MgPSAmc3VuOGlfdjg1M19yX2h3X2Nsa3Ms Cj4gPj4gKwo+ID4+ICsgLnJlc2V0cyA9IHN1bjhpX3Y4NTNfcl9jY3VfcmVzZXRzLAo+ID4+ICsg Lm51bV9yZXNldHMgPSBBUlJBWV9TSVpFKHN1bjhpX3Y4NTNfcl9jY3VfcmVzZXRzKSwKPiA+PiAr fTsKPiA+PiArCj4gPj4gK3N0YXRpYyBpbnQgc3VuOGlfdjg1M19yX2NjdV9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4+ICt7Cj4gPj4gKyB2b2lkIF9faW9tZW0gKnJlZzsK PiA+PiArCj4gPj4gKyByZWcgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwg MCk7Cj4gPj4gKyBpZiAoSVNfRVJSKHJlZykpCj4gPj4gKyByZXR1cm4gUFRSX0VSUihyZWcpOwo+ ID4+ICsKPiA+PiArIHJldHVybiBkZXZtX3N1bnhpX2NjdV9wcm9iZSgmcGRldi0+ZGV2LCByZWcs ICZzdW44aV92ODUzX3JfY2N1X2Rlc2MpOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW44aV92ODUzX3JfY2N1X2lkc1tdID0gewo+ID4+ICsg eyAuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuOGktdjg1My1yLWNjdSIgfSwKPiA+PiArIHsg fQo+ID4+ICt9Owo+ID4+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW44aV92ODUzX3JfY2N1 X2lkcyk7Cj4gPj4gKwo+ID4+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzdW44aV92 ODUzX3JfY2N1X2RyaXZlciA9IHsKPiA+PiArIC5wcm9iZSA9IHN1bjhpX3Y4NTNfcl9jY3VfcHJv YmUsCj4gPj4gKyAuZHJpdmVyID0gewo+ID4+ICsgLm5hbWUgPSAic3VuOGktdjg1My1yLWNjdSIs Cj4gPj4gKyAuc3VwcHJlc3NfYmluZF9hdHRycyA9IHRydWUsCj4gPj4gKyAub2ZfbWF0Y2hfdGFi bGUgPSBzdW44aV92ODUzX3JfY2N1X2lkcywKPiA+PiArIH0sCj4gPj4gK307Cj4gPj4gK21vZHVs ZV9wbGF0Zm9ybV9kcml2ZXIoc3VuOGlfdjg1M19yX2NjdV9kcml2ZXIpOwo+ID4+ICsKPiA+PiAr TU9EVUxFX0lNUE9SVF9OUygiU1VOWElfQ0NVIik7Cj4gPj4gK01PRFVMRV9ERVNDUklQVElPTigi U3VwcG9ydCBmb3IgdGhlIEFsbHdpbm5lciBWODUzIFBSQ00gQ0NVIik7Cj4gPj4gK01PRFVMRV9M SUNFTlNFKCJHUEwiKTsKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1 LXN1bjhpLXY4NTMtci5oIGIvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1LXN1bjhpLXY4NTMtci5o Cj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjJjNmNj N2I2ZjI1MQo+ID4+IC0tLSAvZGV2L251bGwKPiA+PiArKysgYi9kcml2ZXJzL2Nsay9zdW54aS1u Zy9jY3Utc3VuOGktdjg1My1yLmgKPiA+PiBAQCAtMCwwICsxLDE0IEBACj4gPj4gKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCj4gPj4gKy8qCj4gPj4gKyAqIENvcHlyaWdo dCAoQykgMjAyNSBBbmRyYXMgU3plbXpvIDxzemVtem8uYW5kcmFzQGdtYWlsLmNvbT4KPiA+PiAr ICovCj4gPj4gKwo+ID4+ICsjaWZuZGVmIF9DQ1VfU1VOOElfVjg1M19SX0gKPiA+PiArI2RlZmlu ZSBfQ0NVX1NVTjhJX1Y4NTNfUl9ICj4gPj4gKwo+ID4+ICsjaW5jbHVkZSA8ZHQtYmluZGluZ3Mv Y2xvY2svYWxsd2lubmVyLHN1bjhpLXY4NTMtci1jY3UuaD4KPiA+PiArI2luY2x1ZGUgPGR0LWJp bmRpbmdzL3Jlc2V0L2FsbHdpbm5lcixzdW44aS12ODUzLXItY2N1Lmg+Cj4gPj4gKwo+ID4+ICsj ZGVmaW5lIENMS19OVU1CRVIgKENMS19CVVNfUl9DUFVDRkcgKyAxKQo+ID4+ICsKPiA+PiArI2Vu ZGlmCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUz LmMgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjg1My5jCj4gPj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjRiMzJmM2E5MTNjZgo+ID4+IC0t LSAvZGV2L251bGwKPiA+PiArKysgYi9kcml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjg1 My5jCj4gPj4gQEAgLTAsMCArMSwxMTQ1IEBACj4gPj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wCj4gPj4gKy8qCj4gPj4gKyAqIENvcHlyaWdodCAoQykgMjAyNSBBbmRyYXMg U3plbXpvIDxzemVtem8uYW5kcmFzQGdtYWlsLmNvbT4KPiA+PiArICoKPiA+PiArICogQmFzZWQg b24gY2N1LXN1bjIwaS1kMS5jIGJ5IFNhbXVlbCBIb2xsYW5kLgo+ID4+ICsgKi8KPiA+PiArCj4g Pj4gKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KPiA+PiArI2luY2x1ZGUgPGxpbnV4 L2lvLmg+Cj4gPj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiA+PiArI2luY2x1ZGUgPGxp bnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ID4+ICsKPiA+PiArI2luY2x1ZGUgIi4uL2Nsay5oIgo+ ID4+ICsKPiA+PiArI2luY2x1ZGUgImNjdV9jb21tb24uaCIKPiA+PiArI2luY2x1ZGUgImNjdV9y ZXNldC5oIgo+ID4+ICsKPiA+PiArI2luY2x1ZGUgImNjdV9kaXYuaCIKPiA+PiArI2luY2x1ZGUg ImNjdV9nYXRlLmgiCj4gPj4gKyNpbmNsdWRlICJjY3VfbXAuaCIKPiA+PiArI2luY2x1ZGUgImNj dV9tdWx0LmgiCj4gPj4gKyNpbmNsdWRlICJjY3VfbmsuaCIKPiA+PiArI2luY2x1ZGUgImNjdV9u a20uaCIKPiA+PiArI2luY2x1ZGUgImNjdV9ua21wLmgiCj4gPj4gKyNpbmNsdWRlICJjY3Vfbm0u aCIKPiA+PiArCj4gPj4gKyNpbmNsdWRlICJjY3Utc3VuOGktdjg1My5oIgo+ID4+ICsKPiA+PiAr c3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgb3NjMjRNW10gPSB7Cj4gPj4gKyB7 IC5md19uYW1lID0gImhvc2MiIH0KPiA+PiArfTsKPiA+PiArCj4gPj4gKy8qCj4gPj4gKyAqIEZv ciB0aGUgQ1BVIFBMTCwgdGhlIG91dHB1dCBkaXZpZGVyIGlzIGRlc2NyaWJlZCBhcyAib25seSBm b3IgdGVzdGluZyIKPiA+PiArICogaW4gdGhlIHVzZXIgbWFudWFsLiBTbyBpdCdzIG5vdCBtb2Rl bGxlZCBhbmQgZm9yY2VkIHRvIDAuCj4gPj4gKyAqLwo+ID4+ICsjZGVmaW5lIFNVTjhJX1Y4NTNf UExMX0NQVV9SRUcgMHgwMDAKPiA+PiArCj4gPj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X211bHQgcGxs X2NwdV9jbGsgPSB7Cj4gPj4gKyAuZW5hYmxlID0gQklUKDI3KSwKPiA+PiArIC5sb2NrID0gQklU KDI4KSwKPiA+PiArIC5tdWx0ID0gX1NVTlhJX0NDVV9NVUxUX01JTig4LCA4LCAxMSksCj4gPj4g KyAuY29tbW9uID0gewo+ID4+ICsgLnJlZyA9IDB4MDAwLAo+ID4+ICsgLmh3LmluaXQgPSBDTEtf SFdfSU5JVF9QQVJFTlRTX0RBVEEoInBsbC1jcHUiLCBvc2MyNE0sCj4gPj4gKyAgICZjY3VfbXVs dF9vcHMsCj4gPj4gKyAgIENMS19TRVRfUkFURV9HQVRFKSwKPiA+PiArIH0sCj4gPj4gK307Cj4g Pj4gKwo+ID4+ICsvKiBTb21lIFBMTHMgYXJlIGlucHV0ICogTiAvIGRpdjEgLyBQLiBNb2RlbCB0 aGVtIGFzIE5LTVAgd2l0aCBubyBLICovCj4gPj4gKyNkZWZpbmUgU1VOOElfVjg1M19QTExfRERS X1JFRyAweDAxMAo+ID4+ICtzdGF0aWMgc3RydWN0IGNjdV9ua21wIHBsbF9kZHJfY2xrID0gewo+ ID4+ICsgLmVuYWJsZSA9IEJJVCgyNyksCj4gPj4gKyAubG9jayA9IEJJVCgyOCksCj4gPj4gKyAu biA9IF9TVU5YSV9DQ1VfTVVMVF9NSU4oOCwgOCwgMTEpLAo+ID4+ICsgLm0gPSBfU1VOWElfQ0NV X0RJVigxLCAxKSwgLyogaW5wdXQgZGl2aWRlciAqLwo+ID4+ICsgLnAgPSBfU1VOWElfQ0NVX0RJ VigwLCAxKSwgLyogb3V0cHV0IGRpdmlkZXIgKi8KPiA+PiArIC5jb21tb24gPSB7Cj4gPj4gKyAu cmVnID0gMHgwMTAsCj4gPj4gKyAuaHcuaW5pdCA9IENMS19IV19JTklUX1BBUkVOVFNfREFUQSgi cGxsLWRkciIsIG9zYzI0TSwKPiA+PiArICAgJmNjdV9ua21wX29wcywKPiA+PiArICAgQ0xLX1NF VF9SQVRFX0dBVEUpLAo+ID4+ICsgfSwKPiA+PiArfTsKPiA+PiArCj4gPj4gKyNkZWZpbmUgU1VO OElfVjg1M19QTExfUEVSSVBIX1JFRyAweDAyMAo+ID4+ICtzdGF0aWMgc3RydWN0IGNjdV9ubSBw bGxfcGVyaXBoXzR4X2NsayA9IHsKPiA+PiArIC5lbmFibGUgPSBCSVQoMjcpLAo+ID4+ICsgLmxv Y2sgPSBCSVQoMjgpLAo+ID4+ICsgLm4gPSBfU1VOWElfQ0NVX01VTFRfTUlOKDgsIDgsIDExKSwK PiA+PiArIC5tID0gX1NVTlhJX0NDVV9ESVYoMSwgMSksIC8qIGlucHV0IGRpdmlkZXIgKi8KPiA+ PiArIC5jb21tb24gPSB7Cj4gPj4gKyAucmVnID0gMHgwMjAsCj4gPj4gKyAuaHcuaW5pdCA9IENM S19IV19JTklUX1BBUkVOVFNfREFUQSgicGxsLXBlcmlwaC00eCIsIG9zYzI0TSwKPiA+PiArICAg JmNjdV9ubV9vcHMsCj4gPj4gKyAgIENMS19TRVRfUkFURV9HQVRFKSwKPiA+PiArIH0sCj4gPj4g K307Cj4gPj4gKwo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19odyAqcGxsX3BlcmlwaF80 eF9od3NbXSA9IHsKPiA+PiArICZwbGxfcGVyaXBoXzR4X2Nsay5jb21tb24uaHcKPiA+PiArfTsK PiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9IV1MocGxsX3BlcmlwaF8yeF9jbGssICJw bGwtcGVyaXBoLTJ4IiwgcGxsX3BlcmlwaF80eF9od3MsCj4gPj4gKyAgICAgICAweDAyMCwgMTYs IDMsIDApOwo+ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXUyhwbGxfcGVyaXBoXzgw ME1fY2xrLCAicGxsLXBlcmlwaC04MDBNIiwgcGxsX3BlcmlwaF80eF9od3MsCj4gPj4gKyAgICAg ICAweDAyMCwgMjAsIDMsIDApOwo+ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXUyhw bGxfcGVyaXBoXzQ4ME1fY2xrLCAicGxsLXBlcmlwaC00ODBNIiwgcGxsX3BlcmlwaF80eF9od3Ms Cj4gPj4gKyAgICAgICAweDAyMCwgMiwgMywgMCk7Cj4gPj4gKwo+ID4+ICtzdGF0aWMgQ0xLX0ZJ WEVEX0ZBQ1RPUl9IVyhwbGxfcGVyaXBoXzYwME1fY2xrLCAicGxsLXBlcmlwaC02MDBNIiwKPiA+ PiArICAgJnBsbF9wZXJpcGhfMnhfY2xrLmNvbW1vbi5odywgMiwgMSwgMCk7Cj4gPj4gKwo+ID4+ ICtzdGF0aWMgQ0xLX0ZJWEVEX0ZBQ1RPUl9IVyhwbGxfcGVyaXBoXzQwME1fY2xrLCAicGxsLXBl cmlwaC00MDBNIiwKPiA+PiArICAgJnBsbF9wZXJpcGhfMnhfY2xrLmNvbW1vbi5odywgMywgMSwg MCk7Cj4gPj4gKwo+ID4+ICtzdGF0aWMgQ0xLX0ZJWEVEX0ZBQ1RPUl9IVyhwbGxfcGVyaXBoXzMw ME1fY2xrLCAicGxsLXBlcmlwaC0zMDBNIiwKPiA+PiArICAgJnBsbF9wZXJpcGhfNjAwTV9jbGsu aHcsIDIsIDEsIDApOwo+ID4+ICsKPiA+PiArc3RhdGljIENMS19GSVhFRF9GQUNUT1JfSFcocGxs X3BlcmlwaF8yMDBNX2NsaywgInBsbC1wZXJpcGgtMjAwTSIsCj4gPj4gKyAgICZwbGxfcGVyaXBo XzQwME1fY2xrLmh3LCAyLCAxLCAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBDTEtfRklYRURfRkFD VE9SX0hXKHBsbF9wZXJpcGhfMTYwTV9jbGssICJwbGwtcGVyaXBoLTE2ME0iLAo+ID4+ICsgICAm cGxsX3BlcmlwaF80ODBNX2Nsay5jb21tb24uaHcsIDMsIDEsIDApOwo+ID4+ICsKPiA+PiArc3Rh dGljIENMS19GSVhFRF9GQUNUT1JfSFcocGxsX3BlcmlwaF8xNTBNX2NsaywgInBsbC1wZXJpcGgt MTUwTSIsCj4gPj4gKyAgICZwbGxfcGVyaXBoXzMwME1fY2xrLmh3LCAyLCAxLCAwKTsKPiA+PiAr Cj4gPj4gKy8qCj4gPj4gKyAqIEZvciBWaWRlbyBQTExzLCB0aGUgb3V0cHV0IGRpdmlkZXIgaXMg ZGVzY3JpYmVkIGFzICJvbmx5IGZvciB0ZXN0aW5nIgo+ID4+ICsgKiBpbiB0aGUgdXNlciBtYW51 YWwuCj4gPj4gKyAqLwo+ID4+ICsjZGVmaW5lIFNVTjhJX1Y4NTNfUExMX1ZJREVPX1JFRyAweDA0 MAo+ID4+ICtzdGF0aWMgc3RydWN0IGNjdV9ua21wIHBsbF92aWRlb180eF9jbGsgPSB7Cj4gPj4g KyAuZW5hYmxlID0gQklUKDI3KSwKPiA+PiArIC5sb2NrID0gQklUKDI4KSwKPiA+PiArIC5uID0g X1NVTlhJX0NDVV9NVUxUX01JTig4LCA4LCAxMSksCj4gPj4gKyAucCA9IF9TVU5YSV9DQ1VfRElW KDEsIDEpLCAvKiBpbnB1dCBkaXZpZGVyICovCj4gPj4gKyAuY29tbW9uID0gewo+ID4+ICsgLnJl ZyA9IDB4MDQwLAo+ID4+ICsgLmh3LmluaXQgPSBDTEtfSFdfSU5JVF9QQVJFTlRTX0RBVEEoInBs bC12aWRlby00eCIsIG9zYzI0TSwKPiA+PiArICAgJmNjdV9ua21wX29wcywKPiA+PiArICAgQ0xL X1NFVF9SQVRFX0dBVEUpLAo+ID4+ICsgfSwKPiA+PiArfTsKPiA+PiArCj4gPj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgY2xrX2h3ICpwbGxfdmlkZW9fNHhfaHdzW10gPSB7Cj4gPj4gKyAmcGxsX3Zp ZGVvXzR4X2Nsay5jb21tb24uaHcKPiA+PiArfTsKPiA+PiArc3RhdGljIENMS19GSVhFRF9GQUNU T1JfSFdTKHBsbF92aWRlb18yeF9jbGssICJwbGwtdmlkZW8tMngiLAo+ID4+ICsgICAgcGxsX3Zp ZGVvXzR4X2h3cywgMiwgMSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4gPj4gK3N0YXRpYyBDTEtf RklYRURfRkFDVE9SX0hXUyhwbGxfdmlkZW9fMXhfY2xrLCAicGxsLXZpZGVvLTF4IiwKPiA+PiAr ICAgIHBsbF92aWRlb180eF9od3MsIDQsIDEsIENMS19TRVRfUkFURV9QQVJFTlQpOwo+ID4+ICsK PiA+PiArCj4gPj4gKy8qCj4gPj4gKyAqIEZvciBDU0kgUExMcywgdGhlIG91dHB1dCBkaXZpZGVy IGlzIGRlc2NyaWJlZCBhcyAib25seSBmb3IgdGVzdGluZyIKPiA+PiArICogaW4gdGhlIHVzZXIg bWFudWFsLgo+ID4+ICsgKi8KPiA+PiArI2RlZmluZSBTVU44SV9WODUzX1BMTF9DU0lfUkVHIDB4 MDQ4Cj4gPj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X25rbXAgcGxsX2NzaV80eF9jbGsgPSB7Cj4gPj4g KyAuZW5hYmxlID0gQklUKDI3KSwKPiA+PiArIC5sb2NrID0gQklUKDI4KSwKPiA+PiArIC5uID0g X1NVTlhJX0NDVV9NVUxUX01JTig4LCA4LCAxMSksCj4gPj4gKyAucCA9IF9TVU5YSV9DQ1VfRElW KDEsIDEpLCAvKiBpbnB1dCBkaXZpZGVyICovCj4gPj4gKyAuY29tbW9uID0gewo+ID4+ICsgLnJl ZyA9IDB4MDQ4LAo+ID4+ICsgLmh3LmluaXQgPSBDTEtfSFdfSU5JVF9QQVJFTlRTX0RBVEEoInBs bC1jc2ktNHgiLCBvc2MyNE0sCj4gPj4gKyAgICZjY3VfbmttcF9vcHMsCj4gPj4gKyAgIENMS19T RVRfUkFURV9HQVRFKSwKPiA+PiArIH0sCj4gPj4gK307Cj4gPj4gKwo+ID4+ICtzdGF0aWMgQ0xL X0ZJWEVEX0ZBQ1RPUl9IVyhwbGxfY3NpX2NsaywgInBsbC1jc2kiLAo+ID4+ICsgICAmcGxsX2Nz aV80eF9jbGsuY29tbW9uLmh3LCA0LCAxLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPiA+PiArCj4g Pj4gKwo+ID4+ICsjZGVmaW5lIFNVTjhJX1Y4NTNfUExMX0FVRElPX1JFRyAweDA3OAo+ID4+ICtz dGF0aWMgc3RydWN0IGNjdV9zZG1fc2V0dGluZyBwbGxfYXVkaW9fZGl2NV9zZG1fdGFibGVbXSA9 IHsKPiA+PiArIHsgLnJhdGUgPSAxOTY2MDgwMDAsIC5wYXR0ZXJuID0gMHhjMDAxZWI4NSwgLm0g PSA1LCAubiA9IDQwIH0sIC8qIDI0LjU3NiAqLwo+ID4+ICsgeyAucmF0ZSA9IDY3NzM3NjAwLCAu cGF0dGVybiA9IDB4YzAwMTI4OGQsIC5tID0gOCwgLm4gPSAyMiB9LCAvKiAyMi41NzkyICovCj4g Pj4gK307Cj4gPj4gKwo+ID4+ICtzdGF0aWMgc3RydWN0IGNjdV9ubSBwbGxfYXVkaW9fZGl2NV9j bGsgPSB7Cj4gPj4gKyAuZW5hYmxlID0gQklUKDI3KSwKPiA+PiArIC5sb2NrICAgICAgICAgICA9 IEJJVCgyOCksCj4gPj4gKyAubiAgICAgICAgICAgICAgPSBfU1VOWElfQ0NVX01VTFQoOCwgOCks Cj4gPj4gKyAubSAgICAgICAgICAgICAgPSBfU1VOWElfQ0NVX0RJVigyMCwgMyksCj4gPj4gKyAu c2RtICAgICAgICAgICAgPSBfU1VOWElfQ0NVX1NETShwbGxfYXVkaW9fZGl2NV9zZG1fdGFibGUs Cj4gPj4gKyAgICBCSVQoMjQpLCAweDAxNzgsIEJJVCgzMSkpLAo+ID4+ICsgLmNvbW1vbiAgICAg ICAgID0gewo+ID4+ICsgLnJlZyAgICAgICAgICAgID0gMHgwMDc4LAo+ID4+ICsgLmZlYXR1cmVz ICAgICAgID0gQ0NVX0ZFQVRVUkVfU0lHTUFfREVMVEFfTU9ELAo+ID4+ICsgLmh3LmluaXQgICAg ICAgID0gQ0xLX0hXX0lOSVRfUEFSRU5UU19EQVRBKCJwbGwtYXVkaW8tZGl2NSIsIG9zYzI0TSwK PiA+PiArICAgJmNjdV9ubV9vcHMsCj4gPj4gKyAgIENMS19TRVRfUkFURV9VTkdBVEUpLAo+ID4+ ICsgfSwKPiA+PiArfTsKPiA+PiArCj4gPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICpw bGxfYXVkaW9fZGl2NV9od3NbXSA9IHsKPiA+PiArICZwbGxfYXVkaW9fZGl2NV9jbGsuY29tbW9u Lmh3Cj4gPj4gK307Cj4gPj4gKwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX01fSFdTKHBsbF9hdWRp b18xeF9jbGssICJwbGwtYXVkaW8tMXgiLCBwbGxfYXVkaW9fZGl2NV9od3MsCj4gPj4gKyAgICAg ICAweGUwMCwgMCwgNSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4gPj4gKwo+ID4+ICsvKiBwbGwt YXVkaW8tZGl2MiBhbmQgcGxsLWF1ZGlvLTR4IG5vdCB1c2VkLCBiZWNhdXNlIHBsbC1hdWRpby0x eCBjYW4gY292ZXIgCj4gPj4gKyAqIDIyLjU3OTJNIGFuZCAyNC41NzZNIAo+ID4+ICsgKi8KPiA+ PiArc3RhdGljIFNVTlhJX0NDVV9NKHBsbF9hdWRpb19kaXYyX2NsaywgInBsbC1hdWRpby1kaXYy IiwgInBsbC1hdWRpbyIsCj4gPj4gKyAgIDB4MDc4LCAxNiwgMywgMCk7Cj4gPj4gK3N0YXRpYyBT VU5YSV9DQ1VfTShwbGxfYXVkaW9fNHhfY2xrLCAicGxsLWF1ZGlvLTR4IiwgInBsbC1hdWRpby1k aXYyIiwKPiA+PiArICAgMHhlMDAsIDUsIDUsIDApOwo+ID4+ICsKPiA+PiArLyoKPiA+PiArICog Rm9yIHRoZSBOUFUgUExMLCB0aGUgb3V0cHV0IGRpdmlkZXIgaXMgZGVzY3JpYmVkIGFzICJvbmx5 IGZvciB0ZXN0aW5nIgo+ID4+ICsgKiBpbiB0aGUgdXNlciBtYW51YWwuCj4gPj4gKyAqLwo+ID4+ ICsjZGVmaW5lIFNVTjhJX1Y4NTNfUExMX05QVV9SRUcgMHgwODAKPiA+PiArc3RhdGljIHN0cnVj dCBjY3VfbmttcCBwbGxfbnB1XzR4X2NsayA9IHsKPiA+PiArIC5lbmFibGUgPSBCSVQoMjcpLAo+ ID4+ICsgLmxvY2sgPSBCSVQoMjgpLAo+ID4+ICsgLm4gPSBfU1VOWElfQ0NVX01VTFRfTUlOKDgs IDgsIDExKSwKPiA+PiArIC5wID0gX1NVTlhJX0NDVV9ESVYoMSwgMSksIC8qIGlucHV0IGRpdmlk ZXIgKi8KPiA+PiArIC5jb21tb24gPSB7Cj4gPj4gKyAucmVnID0gMHgwODAsCj4gPj4gKyAuaHcu aW5pdCA9IENMS19IV19JTklUX1BBUkVOVFNfREFUQSgicGxsLW5wdS00eCIsIG9zYzI0TSwKPiA+ PiArICAgJmNjdV9ua21wX29wcywKPiA+PiArICAgQ0xLX1NFVF9SQVRFX1VOR0FURSksCj4gPj4g KyB9LAo+ID4+ICt9Owo+ID4+ICsKPiA+PiArLyoKPiA+PiArICogVGhlIENQVSBnYXRlIGlzIG5v dCBtb2RlbGxlZCAtIGl0IGlzIGluIGEgc2VwYXJhdGUgcmVnaXN0ZXIgKDB4NTA0KQo+ID4+ICsg KiBhbmQgaGFzIGEgc3BlY2lhbCBrZXkgZmllbGQuIFRoZSBjbG9jayBtdXN0IG5vdCBiZSBnYXRl ZCBhbnl3YXkgYnkKPiA+PiArICogdGhlIGtlcm5lbC4KPiA+PiArICovCj4gPj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIGNwdV9wYXJlbnRzW10gPSB7Cj4gPj4gKyB7IC5m d19uYW1lID0gImhvc2MiIH0sCj4gPj4gKyB7IC5md19uYW1lID0gImxvc2MiIH0sCj4gPj4gKyB7 IC5md19uYW1lID0gImlvc2MiIH0sCj4gPj4gKyB7IC5odyA9ICZwbGxfY3B1X2Nsay5jb21tb24u aHcgfSwKPiA+PiArIHsgLmh3ID0gJnBsbF9wZXJpcGhfNjAwTV9jbGsuaHcgfSwKPiA+PiArIHsg Lmh3ID0gJnBsbF9wZXJpcGhfODAwTV9jbGsuY29tbW9uLmh3IH0sCj4gPj4gK307Cj4gPj4gKwo+ ID4+ICsvKgo+ID4+ICsgKiBUaGVyZSBpcyBhIFAgZmFjdG9yIChQTExfT1VUX0VYVF9ESVZQWzE3 OjE2XSkgaW4gdGhpcyByZWdpc3RlciwgYnV0IGl0IGlzIG5vdCBtb2RlbGVkLgo+ID4+ICsgKiBU aGUgbWFudWFsIHN0YXRlcyB0aGF0IGl0IHNob3VsZCBiZSB1c2VkIG9ubHksIHdoZW4gdGhlIG91 dHB1dCBjbG9jayBpcyBsZXNzIHRoYW4gMjg4IE1Iei4KPiA+PiArICovCj4gPj4gK3N0YXRpYyBT VU5YSV9DQ1VfTVVYX0RBVEEoY3B1X2NsaywgImNwdSIsIGNwdV9wYXJlbnRzLAo+ID4+ICsgIDB4 NTAwLCAyNCwgMywgQ0xLX1NFVF9SQVRFX1BBUkVOVCB8IENMS19JU19DUklUSUNBTCk7Cj4gPj4g Kwo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19odyAqY3B1X2h3c1tdID0geyAmY3B1X2Ns ay5jb21tb24uaHcgfTsKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9IV1MoY3B1X2F4 aV9jbGssICJjcHUtYXhpIiwgY3B1X2h3cywKPiA+PiArICAgICAgIDB4NTAwLCAwLCAyLCAwKTsK PiA+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXUyhjcHVfYXBiX2NsaywgImNwdS1hcGIiLCBjcHVf aHdzLAo+ID4+ICsgICAgICAgMHg1MDAsIDgsIDIsIDApOwo+ID4+ICsKPiA+PiArc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgYWhiX3BhcmVudHNbXSA9IHsKPiA+PiArIHsgLmZ3 X25hbWUgPSAiaG9zYyIgfSwKPiA+PiArIHsgLmZ3X25hbWUgPSAibG9zYyIgfSwKPiA+PiArIHsg LmZ3X25hbWUgPSAiaW9zYyIgfSwKPiA+PiArIHsgLmh3ID0gJnBsbF9wZXJpcGhfNjAwTV9jbGsu aHcgfSwKPiA+PiArfTsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NUF9EQVRBX1dJVEhfTVVYKGFo Yl9jbGssICJhaGIiLCBhaGJfcGFyZW50cywgMHg1MTAsCj4gPj4gKyAgMCwgNSwgLyogTSAqLwo+ ID4+ICsgIDgsIDIsIC8qIFAgKi8KPiA+PiArICAyNCwgMiwgLyogbXV4ICovCj4gPj4gKyAgMCk7 Cj4gPj4gKwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX01QX0RBVEFfV0lUSF9NVVgoYXBiMF9jbGss ICJhcGIwIiwgYWhiX3BhcmVudHMsIDB4NTIwLAo+ID4+ICsgIDAsIDUsIC8qIE0gKi8KPiA+PiAr ICA4LCAyLCAvKiBQICovCj4gPj4gKyAgMjQsIDIsIC8qIG11eCAqLwo+ID4+ICsgIDApOwo+ID4+ ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NUF9EQVRBX1dJVEhfTVVYKGFwYjFfY2xrLCAiYXBi MSIsIGFoYl9wYXJlbnRzLCAweDUyNCwKPiA+PiArICAwLCA1LCAvKiBNICovCj4gPj4gKyAgOCwg MiwgLyogUCAqLwo+ID4+ICsgIDI0LCAyLCAvKiBtdXggKi8KPiA+PiArICAwKTsKPiA+PiArCj4g Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICphaGJfaHdzW10gPSB7ICZhaGJfY2xrLmNv bW1vbi5odyB9Owo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19odyAqYXBiMF9od3NbXSA9 IHsgJmFwYjBfY2xrLmNvbW1vbi5odyB9Owo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19o dyAqYXBiMV9od3NbXSA9IHsgJmFwYjFfY2xrLmNvbW1vbi5odyB9Owo+ID4+ICsKPiA+PiArCj4g Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICpkZV9nMmRfcGFyZW50c1tdID0gewo+ID4+ ICsgJnBsbF9wZXJpcGhfMzAwTV9jbGsuaHcsCj4gPj4gKyAmcGxsX3ZpZGVvXzF4X2Nsay5odywK PiA+PiArfTsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXX1dJVEhfTVVYX0dBVEUoZGVfY2xr LCAiZGUiLCBkZV9nMmRfcGFyZW50cywgMHg2MDAsCj4gPj4gKyAgICAwLCA1LCAvKiBNICovCj4g Pj4gKyAgICAyNCwgMSwgLyogbXV4ICovCj4gPj4gKyAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4g Pj4gKyAgICBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9D Q1VfR0FURV9IV1MoYnVzX2RlX2NsaywgImJ1cy1kZSIsIGFoYl9od3MsCj4gPj4gKyAgMHg2MGMs IEJJVCgwKSwgMCk7Cj4gPj4gKwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX01fSFdfV0lUSF9NVVhf R0FURShnMmRfY2xrLCAiZzJkIiwgZGVfZzJkX3BhcmVudHMsIDB4NjMwLAo+ID4+ICsgICAgMCwg NSwgLyogTSAqLwo+ID4+ICsgICAgMjQsIDEsIC8qIG11eCAqLwo+ID4+ICsgICAgQklUKDMxKSwg LyogZ2F0ZSAqLwo+ID4+ICsgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4gPj4gKwo+ID4+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19nMmRfY2xrLCAiYnVzLWcyZCIsIGFoYl9od3Ms Cj4gPj4gKyAgMHg2M2MsIEJJVCgwKSwgMCk7Cj4gPj4gKwo+ID4+ICsKPiA+PiArc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgY2VfcGFyZW50c1tdID0gewo+ID4+ICsgeyAuZndf bmFtZSA9ICJob3NjIiB9LAo+ID4gCj4gPiBXaGVyZSB0aGlzIGNvbWUgZnJvbT8gVjg1MyBtYW51 YWwgdjEuMSBkb2Vzbid0IGhhdmUgaXQuCj4gCj4gVGhlcmUgaXMgYSBzdW44aXcyMSBjY3UgZHJp dmVyIFsxXSwgd2hlcmUgaG9zYyBpcyB0aGUgZmlyc3QgcGFyZW50Ogo+IAo+IFsxXToKPiBodHRw czovL2dpdGh1Yi5jb20vWXV6dWtpSEQvVGlueVZpc2lvbi9ibG9iL21haW4va2VybmVsL2JzcC9k cml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGl3MjEuYyNMMjYyCj4gCj4gSSBkb27igJl0IGtu b3cgaWYgdGhlIG1hbnVhbCBvciBpZiB0aGlzIGRyaXZlciBpcyB0aGUgY29ycmVjdC4KCkl0J3Mg b2suCgo+IAo+ID4gCj4gPj4gKyB7IC5odyA9ICZwbGxfcGVyaXBoXzQwME1fY2xrLmh3LCB9LAo+ ID4+ICsgeyAuaHcgPSAmcGxsX3BlcmlwaF8zMDBNX2Nsay5odywgfQo+ID4+ICt9Owo+ID4+ICtz dGF0aWMgU1VOWElfQ0NVX01fREFUQV9XSVRIX01VWF9HQVRFKGNlX2NsaywgImNlIiwgY2VfcGFy ZW50cywgMHg2ODAsCj4gPj4gKyAgICAgIDAsIDQsIC8qIE0gKi8KPiA+PiArICAgICAgMjQsIDMs IC8qIG11eCAqLwo+ID4+ICsgICAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4gPj4gKyAgICAgIENM S19TRVRfUkFURV9QQVJFTlQpOwo+ID4gCj4gPiBTZXQgcmF0ZSBwYXJlbnQgZmxhZyBkb2Vzbid0 IG1ha2Ugc2Vuc2Ugb24gY29uc3RhbnQgcGFyZW50cy4KPiAKPiB5ZXMKPiAKPiA+IAo+ID4+ICsK PiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfY2VfY2xrLCAiYnVzLWNlIiwgYWhi X2h3cywKPiA+PiArICAweDY4YywgQklUKDApIHwgQklUKDEpLCAwKTsKPiA+PiArCj4gPj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3ICp2ZV9wYXJlbnRzW10gPSB7Cj4gPj4gKyAmcGxsX3Bl cmlwaF8zMDBNX2Nsay5odywKPiA+PiArICZwbGxfcGVyaXBoXzQwME1fY2xrLmh3LAo+ID4+ICsg JnBsbF9wZXJpcGhfNDgwTV9jbGsuY29tbW9uLmh3LAo+ID4+ICsgJnBsbF9ucHVfNHhfY2xrLmNv bW1vbi5odywKPiA+PiArICZwbGxfdmlkZW9fNHhfY2xrLmNvbW1vbi5odywKPiA+PiArICZwbGxf Y3NpXzR4X2Nsay5jb21tb24uaHcsCj4gPj4gK307Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9I V19XSVRIX01VWF9HQVRFKHZlX2NsaywgInZlIiwgdmVfcGFyZW50cywgMHg2OTAsCj4gPj4gKyAg ICAwLCA1LCAvKiBNICovCj4gPj4gKyAgICAyNCwgMywgLyogbXV4ICovCj4gPj4gKyAgICBCSVQo MzEpLCAvKiBnYXRlICovCj4gPj4gKyAgICAwKTsKPiA+IAo+ID4gQ0xLX1NFVF9SQVRFX1BBUkVO VCBmbGFnPyBDZWRydXMgZHJpdmVyIHNldCB3b3JraW5nIGNsb2NrIGF0IHRoZSBiZWdpbm5pbmcu Cj4gPiAKPiAKPiBvawo+IAo+ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhi dXNfdmVfY2xrLCAiYnVzLXZlIiwgYWhiX2h3cywKPiA+PiArICAweDY5YywgQklUKDApLCAwKTsK PiA+PiArCj4gPj4gKwo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19odyAqbnB1X3BhcmVu dHNbXSA9IHsKPiA+PiArICZwbGxfcGVyaXBoXzQ4ME1fY2xrLmNvbW1vbi5odywKPiA+PiArICZw bGxfcGVyaXBoXzYwME1fY2xrLmh3LAo+ID4+ICsgJnBsbF9wZXJpcGhfODAwTV9jbGsuY29tbW9u Lmh3LAo+ID4+ICsgJnBsbF9ucHVfNHhfY2xrLmNvbW1vbi5odywKPiA+PiArfTsKPiA+PiArc3Rh dGljIFNVTlhJX0NDVV9NX0hXX1dJVEhfTVVYX0dBVEUobnB1X2NsaywgIm5wdSIsIG5wdV9wYXJl bnRzLCAweDZlMCwKPiA+PiArICAgIDAsIDUsIC8qIE0gKi8KPiA+PiArICAgIDI0LCAzLCAvKiBt dXggKi8KPiA+PiArICAgIEJJVCgzMSksIC8qIGdhdGUgKi8KPiA+PiArICAgIDApOwo+ID4gCj4g PiBJIHRoaW5rIENMS19TRVRfUkFURV9QQVJFTlQgd291bGQgYWxzbyBiZSBiZW5lZmljaWFsIGhl cmUuCj4gCj4gSSB0cmllZCB0byBtaW1pYyBob3cgdGhlIEJTUCBzZXR1cCB0aGUgTlBVIGNsb2Nr cyAoYXMgSSB0aGluaywgbm90IHN1cmUpLCBpbiB0aGUgZHRzIEkgc2V0dXAgaXQgbGlrZToKPiAK PiAgICAgICAgICAgICAgICAgbnB1OiBucHVAMzA1MDAwMCB7Cj4gICAgICAgICAgICAgICAgICAg ICAgICAgY29tcGF0aWJsZSA9ICJ2aXZhbnRlLGdjIjsKPiAgICAgICAgICAgICAgICAgICAgICAg ICByZWcgPSA8MHgwMzA1MDAwMCAweDEwMDA+Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGlu dGVycnVwdHMgPSA8R0lDX1NQSSA2NSBJUlFfVFlQRV9MRVZFTF9ISUdIPjsKPiAgICAgICAgICAg ICAgICAgICAgICAgICBpbnRlcnJ1cHQtbmFtZXMgPSAibnB1IjsKPiAgICAgICAgICAgICAgICAg ICAgICAgICBjbG9ja3MgPSA8JmNjdSBDTEtfQlVTX05QVT4sIDwmY2N1IENMS19OUFU+Owo+ICAg ICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLW5hbWVzID0gImJ1cyIsICJjb3JlIjsKPiAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NpZ25lZC1jbG9ja3MgPSA8JmNjdSBDTEtfUExMX05QVV80 WD4sIDwmY2N1IENMS19OUFU+Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbmVkLWNs b2NrLXBhcmVudHMgPSA8JmRjeG8+LCA8JmNjdSBDTEtfUExMX05QVV80WD47Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgYXNzaWduZWQtY2xvY2stcmF0ZXMgPSAgPDEzOTIwMDAwMDA+LCA8MzQ4 MDAwMDAwPjsKPiAgICAgICAgICAgICAgICAgICAgICAgICByZXNldHMgPSA8JmNjdSBSU1RfQlVT X05QVT47Cj4gICAgICAgICAgICAgICAgICAgICAgICAgaW9tbXVzID0gPCZpb21tdSA2PjsKPiAg ICAgICAgICAgICAgICAgICAgICAgICBwb3dlci1kb21haW5zID0gPCZwcHUgUERfTlBVPjsKPiAg ICAgICAgICAgICAgICAgfTsKPiAKPiBXaXRoIHRoZXNlIHNldHRpbmdzIChhZnRlciBhZGRpbmcg YSByZXNldCBzdXBwb3J0IHRvIHRoZSBldG5hdml2IGRyaXZlcikgYXQgbGVhc3QgSSdtIGFibGUg dG8gZHVtcCBzb21lIHJlZ2lzdGVycyB2aWEgZGVidWdmcy4KPiBEbyB5b3UgdGhpbmsgSSBzaG91 bGQgYWRkIHRoZSBDTEtfU0VUX1JBVEVfUEFSRU5UIGZsYWc/CgpZZXMsIGJlY2F1c2UgdGhvc2Ug YXNzaWduZWQgY2xvY2sgcHJvcGVydGllcyBhcmUgbm90IHJlYWxseSBob3cgdGhpbmdzIHNob3Vs ZApiZSBkb25lLgoKQmVzdCByZWdhcmRzLApKZXJuZWoKCj4gCj4gPiAKPiA+PiArCj4gPj4gK3N0 YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX25wdV9jbGssICJidXMtbnB1IiwgYWhiX2h3cywK PiA+PiArICAweDZlYywgQklUKDApLCAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1Vf R0FURV9IV1MoYnVzX2RtYV9jbGssICJidXMtZG1hIiwgYWhiX2h3cywKPiA+PiArICAweDcwYywg QklUKDApLCAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX21z Z2JveDBfY2xrLCAiYnVzLW1zZ2JveDAiLCBhaGJfaHdzLAo+ID4+ICsgIDB4NzFjLCBCSVQoMCks IDApOwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19tc2dib3gxX2NsaywgImJ1 cy1tc2dib3gxIiwgYWhiX2h3cywKPiA+PiArICAweDcxYywgQklUKDEpLCAwKTsKPiA+PiArCj4g Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX3NwaW5sb2NrX2NsaywgImJ1cy1zcGlu bG9jayIsIGFoYl9od3MsCj4gPj4gKyAgMHg3MmMsIEJJVCgwKSwgMCk7Cj4gPj4gKwo+ID4+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19oc3RpbWVyX2NsaywgImJ1cy1oc3RpbWVyIiwg YWhiX2h3cywKPiA+PiArICAweDczYywgQklUKDApLCAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBT VU5YSV9DQ1VfR0FURV9EQVRBKGF2c19jbGssICJhdnMiLCBvc2MyNE0sCj4gPj4gKyAgIDB4NzQw LCBCSVQoMzEpLCAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVz X2RiZ19jbGssICJidXMtZGJnIiwgYWhiX2h3cywKPiA+PiArICAweDc4YywgQklUKDApLCAwKTsK PiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX3B3bV9jbGssICJidXMt cHdtIiwgYXBiMF9od3MsCj4gPj4gKyAgMHg3YWMsIEJJVCgwKSwgMCk7Cj4gPj4gKwo+ID4+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19pb21tdV9jbGssICJidXMtaW9tbXUiLCBhaGJf aHdzLAo+ID4+ICsgIDB4N2JjLCBCSVQoMCksIDApOwo+ID4+ICsKPiA+PiArc3RhdGljIGNvbnN0 IHN0cnVjdCBjbGtfaHcgKmRyYW1fcGFyZW50c1tdID0gewo+ID4+ICsgJnBsbF9kZHJfY2xrLmNv bW1vbi5odywKPiA+PiArICZwbGxfcGVyaXBoXzJ4X2Nsay5jb21tb24uaHcsCj4gPj4gKyAmcGxs X3BlcmlwaF84MDBNX2Nsay5jb21tb24uaHcsCj4gPj4gK307Cj4gPj4gK3N0YXRpYyBTVU5YSV9D Q1VfTVBfSFdfV0lUSF9NVVhfR0FURShkcmFtX2NsaywgImRyYW0iLCBkcmFtX3BhcmVudHMsIDB4 ODAwLAo+ID4+ICsgICAgIDAsIDUsIC8qIE0gKi8KPiA+PiArICAgICA4LCAyLCAvKiBQICovCj4g Pj4gKyAgICAgMjQsIDMsIC8qIG11eCAqLwo+ID4+ICsgICAgIEJJVCgzMSksIENMS19JU19DUklU SUNBTCk7Cj4gPiAKPiA+IFRoaXMgY2xvY2sgbmVlZHMgdXBkYXRlIGZpZWxkIHRvIGJlIHNldCB0 byBhY3R1YWxseSBhcHBseSBjb25maWd1cmF0aW9uLiBTbwo+ID4gc2FtZSBjb21tZW50IGFzIG9u IEE1MjMgY2xvY2sgdmVyc2lvbiwgdGhpcyBuZWVkcyBuZXcgZmxhZyB0byBiZSBpbnRyb2R1Y2Vk Cj4gPiBmb3Igc3VjaCBjYXNlLgo+ID4gCj4gCj4gb2sKPiAKPiA+PiArCj4gPj4gK3N0YXRpYyBD TEtfRklYRURfRkFDVE9SX0hXKG1idXNfY2xrLCAibWJ1cyIsCj4gPj4gKyAgICZkcmFtX2Nsay5j b21tb24uaHcsIDQsIDEsIDApOwo+ID4+ICsKPiA+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtf aHcgKm1idXNfaHdzW10gPSB7ICZtYnVzX2Nsay5odyB9Owo+ID4+ICsKPiA+PiArc3RhdGljIFNV TlhJX0NDVV9HQVRFX0hXUyhtYnVzX2RtYV9jbGssICJtYnVzLWRtYSIsIG1idXNfaHdzLAo+ID4+ ICsgIDB4ODA0LCBCSVQoMCksIDApOwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKG1i dXNfdmVfY2xrLCAibWJ1cy12ZSIsIG1idXNfaHdzLAo+ID4+ICsgIDB4ODA0LCBCSVQoMSksIDAp Owo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKG1idXNfY2VfY2xrLCAibWJ1cy1jZSIs IG1idXNfaHdzLAo+ID4+ICsgIDB4ODA0LCBCSVQoMiksIDApOwo+ID4+ICtzdGF0aWMgU1VOWElf Q0NVX0dBVEVfSFdTKG1idXNfY3NpX2NsaywgIm1idXMtY3NpIiwgbWJ1c19od3MsCj4gPj4gKyAg MHg4MDQsIEJJVCg4KSwgMCk7Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MobWJ1c19p c3BfY2xrLCAibWJ1cy1pc3AiLCBtYnVzX2h3cywKPiA+PiArICAweDgwNCwgQklUKDkpLCAwKTsK PiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhtYnVzX2cyZF9jbGssICJtYnVzLWcyZCIs IG1idXNfaHdzLAo+ID4+ICsgIDB4ODA0LCBCSVQoMTApLCAwKTsKPiA+PiArCj4gPj4gK3N0YXRp YyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX2RyYW1fY2xrLCAiYnVzLWRyYW0iLCBhaGJfaHdzLAo+ ID4+ICsgIDB4ODBjLCBCSVQoMCksIENMS19JU19DUklUSUNBTCk7Cj4gPj4gKwo+ID4+ICsKPiA+ PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgbW1jMF9tbWMxX3BhcmVudHNb XSA9IHsKPiA+PiArIHsgLmZ3X25hbWUgPSAiaG9zYyIgfSwKPiA+PiArIHsgLmh3ID0gJnBsbF9w ZXJpcGhfNDAwTV9jbGsuaHcsIH0sCj4gPj4gKyB7IC5odyA9ICZwbGxfcGVyaXBoXzMwME1fY2xr Lmh3LCB9LAo+ID4+ICt9Owo+ID4gCj4gPiBKdXN0IG1tY19wYXJlbnRzLgo+IAo+IG9rCj4gCj4g PiAKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NUF9EQVRBX1dJVEhfTVVYX0dBVEUobW1jMF9jbGss ICJtbWMwIiwgbW1jMF9tbWMxX3BhcmVudHMsIDB4ODMwLAo+ID4+ICsgICAgICAgMCwgNCwgLyog TSAqLwo+ID4+ICsgICAgICAgOCwgMiwgLyogUCAqLwo+ID4+ICsgICAgICAgMjQsIDMsIC8qIG11 eCAqLwo+ID4+ICsgICAgICAgQklUKDMxKSwgLyogZ2F0ZSAqLwo+ID4+ICsgICAgICAgMCk7Cj4g Pj4gKwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX01QX0RBVEFfV0lUSF9NVVhfR0FURShtbWMxX2Ns aywgIm1tYzEiLCBtbWMwX21tYzFfcGFyZW50cywgMHg4MzQsCj4gPj4gKyAgICAgICAwLCA0LCAv KiBNICovCj4gPj4gKyAgICAgICA4LCAyLCAvKiBQICovCj4gPj4gKyAgICAgICAyNCwgMywgLyog bXV4ICovCj4gPj4gKyAgICAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4gPj4gKyAgICAgICAwKTsK PiA+PiArCj4gPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIG1tYzJfcGFy ZW50c1tdID0gewo+ID4+ICsgeyAuZndfbmFtZSA9ICJob3NjIiB9LAo+ID4+ICsgeyAuaHcgPSAm cGxsX3BlcmlwaF82MDBNX2Nsay5odywgfSwKPiA+PiArIHsgLmh3ID0gJnBsbF9wZXJpcGhfNDAw TV9jbGsuaHcsIH0sCj4gPj4gK307Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVBfREFUQV9XSVRI X01VWF9HQVRFKG1tYzJfY2xrLCAibW1jMiIsIG1tYzJfcGFyZW50cywgMHg4MzgsCj4gPj4gKyAg ICAgICAwLCA0LCAvKiBNICovCj4gPj4gKyAgICAgICA4LCAyLCAvKiBQICovCj4gPj4gKyAgICAg ICAyNCwgMywgLyogbXV4ICovCj4gPj4gKyAgICAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4gPj4g KyAgICAgICAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX21t YzBfY2xrLCAiYnVzLW1tYzAiLCBhaGJfaHdzLAo+ID4+ICsgIDB4ODRjLCBCSVQoMCksIDApOwo+ ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19tbWMxX2NsaywgImJ1cy1tbWMxIiwg YWhiX2h3cywKPiA+PiArICAweDg0YywgQklUKDEpLCAwKTsKPiA+PiArc3RhdGljIFNVTlhJX0ND VV9HQVRFX0hXUyhidXNfbW1jMl9jbGssICJidXMtbW1jMiIsIGFoYl9od3MsCj4gPj4gKyAgMHg4 NGMsIEJJVCgyKSwgMCk7Cj4gPj4gKwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1 c191YXJ0MF9jbGssICJidXMtdWFydDAiLCBhcGIxX2h3cywKPiA+PiArICAweDkwYywgQklUKDAp LCAwKTsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfdWFydDFfY2xrLCAiYnVz LXVhcnQxIiwgYXBiMV9od3MsCj4gPj4gKyAgMHg5MGMsIEJJVCgxKSwgMCk7Cj4gPj4gK3N0YXRp YyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX3VhcnQyX2NsaywgImJ1cy11YXJ0MiIsIGFwYjFfaHdz LAo+ID4+ICsgIDB4OTBjLCBCSVQoMiksIDApOwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVf SFdTKGJ1c191YXJ0M19jbGssICJidXMtdWFydDMiLCBhcGIxX2h3cywKPiA+PiArICAweDkwYywg QklUKDMpLCAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX2ky YzBfY2xrLCAiYnVzLWkyYzAiLCBhcGIxX2h3cywKPiA+PiArICAweDkxYywgQklUKDApLCAwKTsK PiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfaTJjMV9jbGssICJidXMtaTJjMSIs IGFwYjFfaHdzLAo+ID4+ICsgIDB4OTFjLCBCSVQoMSksIDApOwo+ID4+ICtzdGF0aWMgU1VOWElf Q0NVX0dBVEVfSFdTKGJ1c19pMmMyX2NsaywgImJ1cy1pMmMyIiwgYXBiMV9od3MsCj4gPj4gKyAg MHg5MWMsIEJJVCgyKSwgMCk7Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX2ky YzNfY2xrLCAiYnVzLWkyYzMiLCBhcGIxX2h3cywKPiA+PiArICAweDkxYywgQklUKDMpLCAwKTsK PiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfaTJjNF9jbGssICJidXMtaTJjNCIs IGFwYjFfaHdzLAo+ID4+ICsgIDB4OTFjLCBCSVQoNCksIDApOwo+ID4+ICsKPiA+PiArc3RhdGlj IGNvbnN0IHN0cnVjdCBjbGtfcGFyZW50X2RhdGEgc3BpX3BhcmVudHNbXSA9IHsKPiA+PiArIHsg LmZ3X25hbWUgPSAiaG9zYyIgfSwKPiA+PiArIHsgLmh3ID0gJnBsbF9wZXJpcGhfMzAwTV9jbGsu aHcsIH0sCj4gPj4gKyB7IC5odyA9ICZwbGxfcGVyaXBoXzIwME1fY2xrLmh3LCB9LAo+ID4+ICt9 Owo+ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NUF9EQVRBX1dJVEhfTVVYX0dBVEUoc3Bp MF9jbGssICJzcGkwIiwgc3BpX3BhcmVudHMsIDB4OTQwLAo+ID4+ICsgICAgICAgMCwgNCwgLyog TSAqLwo+ID4+ICsgICAgICAgOCwgMiwgLyogUCAqLwo+ID4+ICsgICAgICAgMjQsIDMsIC8qIG11 eCAqLwo+ID4+ICsgICAgICAgQklUKDMxKSwgLyogZ2F0ZSAqLwo+ID4+ICsgICAgICAgMCk7Cj4g Pj4gKwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX01QX0RBVEFfV0lUSF9NVVhfR0FURShzcGkxX2Ns aywgInNwaTEiLCBzcGlfcGFyZW50cywgMHg5NDQsCj4gPj4gKyAgICAgICAwLCA0LCAvKiBNICov Cj4gPj4gKyAgICAgICA4LCAyLCAvKiBQICovCj4gPj4gKyAgICAgICAyNCwgMywgLyogbXV4ICov Cj4gPj4gKyAgICAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4gPj4gKyAgICAgICAwKTsKPiA+PiAr Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVBfREFUQV9XSVRIX01VWF9HQVRFKHNwaTJfY2xrLCAi c3BpMiIsIHNwaV9wYXJlbnRzLCAweDk0OCwKPiA+PiArICAgICAgIDAsIDQsIC8qIE0gKi8KPiA+ PiArICAgICAgIDgsIDIsIC8qIFAgKi8KPiA+PiArICAgICAgIDI0LCAzLCAvKiBtdXggKi8KPiA+ PiArICAgICAgIEJJVCgzMSksIC8qIGdhdGUgKi8KPiA+PiArICAgICAgIDApOwo+ID4+ICsKPiA+ PiArc3RhdGljIFNVTlhJX0NDVV9NUF9EQVRBX1dJVEhfTVVYX0dBVEUoc3BpM19jbGssICJzcGkz Iiwgc3BpX3BhcmVudHMsIDB4OTRjLAo+ID4+ICsgICAgICAgMCwgNCwgLyogTSAqLwo+ID4+ICsg ICAgICAgOCwgMiwgLyogUCAqLwo+ID4+ICsgICAgICAgMjQsIDMsIC8qIG11eCAqLwo+ID4+ICsg ICAgICAgQklUKDMxKSwgLyogZ2F0ZSAqLwo+ID4+ICsgICAgICAgMCk7Cj4gPj4gKwo+ID4+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19zcGkwX2NsaywgImJ1cy1zcGkwIiwgYWhiX2h3 cywKPiA+PiArICAweDk2YywgQklUKDApLCAwKTsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRF X0hXUyhidXNfc3BpMV9jbGssICJidXMtc3BpMSIsIGFoYl9od3MsCj4gPj4gKyAgMHg5NmMsIEJJ VCgxKSwgMCk7Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX3NwaTJfY2xrLCAi YnVzLXNwaTIiLCBhaGJfaHdzLAo+ID4+ICsgIDB4OTZjLCBCSVQoMiksIDApOwo+ID4+ICtzdGF0 aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19zcGkzX2NsaywgImJ1cy1zcGkzIiwgYWhiX2h3cywK PiA+PiArICAweDk2YywgQklUKDMpLCAwKTsKPiA+PiArCj4gPj4gKwo+ID4+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSBzcGlmX3BhcmVudHNbXSA9IHsKPiA+PiArIHsgLmZ3 X25hbWUgPSAiaG9zYyIgfSwKPiA+PiArIHsgLmh3ID0gJnBsbF9wZXJpcGhfNDAwTV9jbGsuaHcs IH0sCj4gPj4gKyB7IC5odyA9ICZwbGxfcGVyaXBoXzMwME1fY2xrLmh3LCB9LAo+ID4+ICt9Owo+ ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NX0RBVEFfV0lUSF9NVVhfR0FURShzcGlmX2Ns aywgInNwaWYiLCBzcGlmX3BhcmVudHMsIDB4MDk1MCwKPiA+PiArICAgICAgMCwgNCwgLyogTSAq Lwo+ID4+ICsgICAgICAyNCwgMywgLyogbXV4ICovCj4gPj4gKyAgICAgIEJJVCgzMSksIC8qIGdh dGUgKi8KPiA+PiArICAgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4gPiAKPiA+IFRoaXMgaXMg TVAgY2xvY2ssIFAgYmVpbmcgYXQgOTo4Lgo+IAo+IHllcywgdGhlIEJTUCBkcml2ZXIgWzFdIG1v ZGVsIGl0IHdpdGggb25seSBNLCBJ4oCZbGwgdXBkYXRlIGl0IHRvIE1QLgo+IAo+ID4gCj4gPj4g Kwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19zcGlmX2NsaywgImJ1cy1zcGlm IiwgYWhiX2h3cywKPiA+PiArICAweDA5NmMsIEJJVCg0KSwgMCk7Cj4gPj4gKwo+ID4+ICsKPiA+ PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfaHcgKnBsbF9wZXJpcGhfMTUwTV9od3NbXSA9IHsg JnBsbF9wZXJpcGhfMTUwTV9jbGsuaHcgfTsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hX U19XSVRIX1BSRURJVihlbWFjXzI1TV9jbGssICJlbWFjLTI1TSIsIHBsbF9wZXJpcGhfMTUwTV9o d3MsCj4gPj4gKyAgICAgIDB4OTcwLCBCSVQoMzEpIHwgQklUKDMwKSwgNiwgMCk7Cj4gPj4gKwo+ ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19lbWFjX2NsaywgImJ1cy1lbWFjIiwg YWhiX2h3cywKPiA+PiArICAweDk3YywgQklUKDApLCAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBT VU5YSV9DQ1VfR0FURV9IV1MoYnVzX2dwYWRjX2NsaywgImJ1cy1ncGFkYyIsIGFwYjBfaHdzLAo+ ID4+ICsgIDB4OWVjLCBCSVQoMCksIDApOwo+ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9H QVRFX0hXUyhidXNfdGhzX2NsaywgImJ1cy10aHMiLCBhaGJfaHdzLAo+ID4+ICsgIDB4OWZjLCBC SVQoMCksIDApOwo+ID4+ICsKPiA+PiArCj4gPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2h3 ICphdWRpb19wYXJlbnRzW10gPSB7Cj4gPj4gKyAmcGxsX2F1ZGlvXzF4X2Nsay5jb21tb24uaHcs Cj4gPj4gKyAmcGxsX2F1ZGlvXzR4X2Nsay5jb21tb24uaHcsCj4gPj4gK307Cj4gPj4gKwo+ID4+ ICtzdGF0aWMgU1VOWElfQ0NVX01fSFdfV0lUSF9NVVhfR0FURShpMnMwX2NsaywgImkyczAiLCBh dWRpb19wYXJlbnRzLCAweGExMCwKPiA+PiArICAgIDAsIDQsIC8qIE0gKi8KPiA+PiArICAgIDI0 LCAxLCAvKiBtdXggKi8KPiA+PiArICAgIEJJVCgzMSksIC8qIGdhdGUgKi8KPiA+PiArICAgIENM S19TRVRfUkFURV9QQVJFTlQpOwo+ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXX1dJ VEhfTVVYX0dBVEUoaTJzMV9jbGssICJpMnMxIiwgYXVkaW9fcGFyZW50cywgMHhhMTQsCj4gPj4g KyAgICAwLCA0LCAvKiBNICovCj4gPj4gKyAgICAyNCwgMSwgLyogbXV4ICovCj4gPj4gKyAgICBC SVQoMzEpLCAvKiBnYXRlICovCj4gPj4gKyAgICBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKPiA+PiAr Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX2kyczBfY2xrLCAiYnVzLWkyczAi LCBhaGJfaHdzLAo+ID4+ICsgIDB4YTIwLCBCSVQoMCksIDApOwo+ID4+ICsKPiA+PiArc3RhdGlj IFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfaTJzMV9jbGssICJidXMtaTJzMSIsIGFoYl9od3MsCj4g Pj4gKyAgMHhhMjAsIEJJVCgxKSwgMCk7Cj4gPj4gKwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX01f SFdfV0lUSF9NVVhfR0FURShkbWljX2NsaywgImRtaWMiLCBhdWRpb19wYXJlbnRzLCAweGE0MCwK PiA+PiArICAgIDAsIDQsIC8qIE0gKi8KPiA+PiArICAgIDI0LCAxLCAvKiBtdXggKi8KPiA+PiAr ICAgIEJJVCgzMSksIC8qIGdhdGUgKi8KPiA+PiArICAgIENMS19TRVRfUkFURV9QQVJFTlQpOwo+ ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfZG1pY19jbGssICJidXMt ZG1pYyIsIGFoYl9od3MsCj4gPj4gKyAgMHhhNGMsIEJJVCgwKSwgMCk7Cj4gPj4gKwo+ID4+ICtz dGF0aWMgU1VOWElfQ0NVX01fSFdfV0lUSF9NVVhfR0FURShhdWRpb19jb2RlY19kYWNfY2xrLCAi YXVkaW8tY29kZWMtZGFjIiwgCj4gPj4gKyAgICBhdWRpb19wYXJlbnRzLCAweGE1MCwKPiA+PiAr ICAgIDAsIDQsIC8qIE0gKi8KPiA+PiArICAgIDI0LCAxLCAvKiBtdXggKi8KPiA+PiArICAgIEJJ VCgzMSksIC8qIGdhdGUgKi8KPiA+PiArICAgIENMS19TRVRfUkFURV9QQVJFTlQpOwo+ID4+ICsK PiA+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXX1dJVEhfTVVYX0dBVEUoYXVkaW9fY29kZWNfYWRj X2NsaywgImF1ZGlvLWNvZGVjLWFkYyIsIAo+ID4+ICsgICAgYXVkaW9fcGFyZW50cywgMHhhNTQs Cj4gPj4gKyAgICAwLCA0LCAvKiBNICovCj4gPj4gKyAgICAyNCwgMSwgLyogbXV4ICovCj4gPj4g KyAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4gPj4gKyAgICBDTEtfU0VUX1JBVEVfUEFSRU5UKTsK PiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX2F1ZGlvX2NvZGVjX2Ns aywgImJ1cy1hdWRpby1jb2RlYyIsIGFwYjBfaHdzLAo+ID4+ICsgIDB4YTVjLCBCSVQoMCksIDAp Owo+ID4+ICsKPiA+PiArLyoKPiA+PiArICogVGhlcmUgYXJlIE9IQ0kgMTJNIGNsb2NrIHNvdXJj ZSBzZWxlY3Rpb24gYml0cyBmb3IgdGhlIFVTQiAyLjAgcG9ydC4KPiA+PiArICogV2Ugd2lsbCBm b3JjZSB0aGVtIHRvIDAgKDEyTSBkaXZpZGVkIGZyb20gNDhNKS4KPiA+PiArICovCj4gPj4gK3N0 YXRpYyBDTEtfRklYRURfRkFDVE9SX0ZXX05BTUUob3NjMTJNX2NsaywgIm9zYzEyTSIsICJob3Nj IiwgMiwgMSwgMCk7Cj4gPj4gKwo+ID4+ICsjZGVmaW5lIFNVTjhJX1Y4NTNfVVNCX0NMS19SRUcg MHhhNzAKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURSh1c2Jfb2hjaV9jbGssICJ1 c2IiLCAib3NjMTJNIiwgMHgwYTcwLCBCSVQoMzEpLCAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBT VU5YSV9DQ1VfR0FURV9IV1MoYnVzX29oY2lfY2xrLCAiYnVzLW9oY2kiLCBhaGJfaHdzLCAweGE4 YywgQklUKDApLCAwKTsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfZWhjaV9j bGssICJidXMtZWhjaSIsIGFoYl9od3MsIDB4YThjLCBCSVQoNCksIDApOwo+ID4+ICtzdGF0aWMg U1VOWElfQ0NVX0dBVEVfSFdTKGJ1c19vdGdfY2xrLCAiYnVzLW90ZyIsIGFoYl9od3MsIDB4YThj LCBCSVQoOCksIDApOwo+ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNf ZHBzc190b3BfY2xrLCAiYnVzLWRwc3MtdG9wIiwgYWhiX2h3cywKPiA+PiArICAweGFiYywgQklU KDApLCAwKTsKPiA+PiArCj4gPj4gKwo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJl bnRfZGF0YSBtaXBpX2RzaV9wYXJlbnRzW10gPSB7Cj4gPj4gKyB7IC5md19uYW1lID0gImhvc2Mi IH0sCj4gPj4gKyB7IC5odyA9ICZwbGxfcGVyaXBoXzIwME1fY2xrLmh3IH0sCj4gPj4gKyB7IC5o dyA9ICZwbGxfcGVyaXBoXzE1ME1fY2xrLmh3IH0sCj4gPj4gK307Cj4gPj4gK3N0YXRpYyBTVU5Y SV9DQ1VfTV9EQVRBX1dJVEhfTVVYX0dBVEUobWlwaV9kc2lfY2xrLCAibWlwaS1kc2kiLCBtaXBp X2RzaV9wYXJlbnRzLCAKPiA+PiArICAgICAgMHhiMjQsCj4gPj4gKyAgICAgIDAsIDQsIC8qIE0g Ki8KPiA+PiArICAgICAgMjQsIDMsIC8qIG11eCAqLwo+ID4+ICsgICAgICBCSVQoMzEpLCAvKiBn YXRlICovCj4gPj4gKyAgICAgIENMS19TRVRfUkFURV9QQVJFTlQpOwo+ID4gCj4gPiBDTEtfU0VU X1JBVEVfUEFSRU5UIGRvZXNuJ3QgZG8gYW55dGhpbmcgZm9yIGNvbnN0YW50IGNsb2Nrcy4KPiA+ IAo+IAo+IG9rCj4gCj4gPiBCZXN0IHJlZ2FyZHMsCj4gPiBKZXJuZWoKPiA+IAo+ID4+ICsKPiA+ PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhidXNfbWlwaV9kc2lfY2xrLCAiYnVzLW1pcGkt ZHNpIiwgYWhiX2h3cywKPiA+PiArICAweGI0YywgQklUKDApLCAwKTsKPiA+PiArCj4gPj4gKwo+ ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19odyAqdGNvbl9sY2RfcGFyZW50c1tdID0gewo+ ID4+ICsgJnBsbF92aWRlb180eF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgJnBsbF9wZXJpcGhfMnhf Y2xrLmNvbW1vbi5odywKPiA+PiArICZwbGxfY3NpXzR4X2Nsay5jb21tb24uaHcsCj4gPj4gK307 Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfTVBfSFdfV0lUSF9NVVhfR0FURSh0Y29uX2xjZF9jbGss ICJ0Y29uLWxjZCIsIHRjb25fbGNkX3BhcmVudHMsIAo+ID4+ICsgICAgIDB4YjYwLAo+ID4+ICsg ICAgIDAsIDQsIC8qIE0gKi8KPiA+PiArICAgICA4LCAyLCAvKiBQICovCj4gPj4gKyAgICAgMjQs IDMsIC8qIG11eCAqLwo+ID4+ICsgICAgIEJJVCgzMSksIC8qIGdhdGUgKi8KPiA+PiArICAgICBD TEtfU0VUX1JBVEVfUEFSRU5UKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9I V1MoYnVzX3Rjb25fbGNkX2NsaywgImJ1cy10Y29uLWxjZCIsIGFoYl9od3MsCj4gPj4gKyAgMHhi N2MsIEJJVCgwKSwgMCk7Cj4gPj4gKwo+ID4+ICsKPiA+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBj bGtfaHcgKmNzaV90b3BfcGFyZW50c1tdID0gewo+ID4+ICsgJnBsbF9wZXJpcGhfMzAwTV9jbGsu aHcsCj4gPj4gKyAmcGxsX3BlcmlwaF80MDBNX2Nsay5odywKPiA+PiArICZwbGxfdmlkZW9fNHhf Y2xrLmNvbW1vbi5odywKPiA+PiArICZwbGxfY3NpXzR4X2Nsay5jb21tb24uaHcsCj4gPj4gK307 Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9IV19XSVRIX01VWF9HQVRFKGNzaV90b3BfY2xrLCAi Y3NpLXRvcCIsIGNzaV90b3BfcGFyZW50cywgMHhjMDQsCj4gPj4gKyAgICAwLCA1LCAvKiBNICov Cj4gPj4gKyAgICAyNCwgMywgLyogbXV4ICovCj4gPj4gKyAgICBCSVQoMzEpLCAvKiBnYXRlICov Cj4gPj4gKyAgICAwKTsKPiA+PiArCj4gPj4gKwo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNs a19wYXJlbnRfZGF0YSBjc2lfbWNsa19wYXJlbnRzW10gPSB7Cj4gPj4gKyB7IC5md19uYW1lID0g Imhvc2MiIH0sCj4gPj4gKyB7IC5odyA9ICZwbGxfY3NpXzR4X2Nsay5jb21tb24uaHcgfSwKPiA+ PiArIHsgLmh3ID0gJnBsbF92aWRlb180eF9jbGsuY29tbW9uLmh3IH0sCj4gPj4gKyB7IC5odyA9 ICZwbGxfcGVyaXBoXzJ4X2Nsay5jb21tb24uaHcgfSwKPiA+PiArfTsKPiA+PiArc3RhdGljIFNV TlhJX0NDVV9NX0RBVEFfV0lUSF9NVVhfR0FURShjc2lfbWNsazBfY2xrLCAiY3NpLW1jbGswIiwg Y3NpX21jbGtfcGFyZW50cywgCj4gPj4gKyAgICAgIDB4YzA4LAo+ID4+ICsgICAgICAwLCA1LCAv KiBNICovCj4gPj4gKyAgICAgIDI0LCAzLCAvKiBtdXggKi8KPiA+PiArICAgICAgQklUKDMxKSwg LyogZ2F0ZSAqLwo+ID4+ICsgICAgICAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1Vf TV9EQVRBX1dJVEhfTVVYX0dBVEUoY3NpX21jbGsxX2NsaywgImNzaS1tY2xrMSIsIGNzaV9tY2xr X3BhcmVudHMsIAo+ID4+ICsgICAgICAweGMwYywKPiA+PiArICAgICAgMCwgNSwgLyogTSAqLwo+ ID4+ICsgICAgICAyNCwgMywgLyogbXV4ICovCj4gPj4gKyAgICAgIEJJVCgzMSksIC8qIGdhdGUg Ki8KPiA+PiArICAgICAgMCk7Cj4gPj4gKwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX01fREFUQV9X SVRIX01VWF9HQVRFKGNzaV9tY2xrMl9jbGssICJjc2ktbWNsazIiLCBjc2lfbWNsa19wYXJlbnRz LCAKPiA+PiArICAgICAgMHhjMTAsCj4gPj4gKyAgICAgIDAsIDUsIC8qIE0gKi8KPiA+PiArICAg ICAgMjQsIDMsIC8qIG11eCAqLwo+ID4+ICsgICAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4gPj4g KyAgICAgIDApOwo+ID4gCj4gPiBBbGwgQ1NJIG1jbGtzIHNob3VsZCBiZSBNUCB0eXBlLgo+ID4g Cj4gCj4gQWdhaW4sIHRoZXNlIGFyZSBmcm9tIHRoZSBCU1AsIEnigJlsbCB1cGRhdGUgdGhlbS4K PiAKPiA+PiArCj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1MoYnVzX2NzaV9jbGssICJi dXMtY3NpIiwgYWhiX2h3cywKPiA+PiArICAweGMyYywgQklUKDApLCAwKTsKPiA+PiArCj4gPj4g Kwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX0dBVEVfSFdTKGJ1c193aWVnYW5kX2NsaywgImJ1cy13 aWVnYW5kIiwgYWhiX2h3cywKPiA+PiArICAweGM3YywgQklUKDApLCAwKTsKPiA+PiArCj4gPj4g Kwo+ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSByaXNjdl9wYXJlbnRz W10gPSB7Cj4gPj4gKyB7IC5md19uYW1lID0gImhvc2MiIH0sCj4gPj4gKyB7IC5md19uYW1lID0g Imxvc2MiIH0sCj4gPj4gKyB7IC5md19uYW1lID0gImlvc2MiIH0sCj4gPj4gKyB7IC5odyA9ICZw bGxfcGVyaXBoXzYwME1fY2xrLmh3IH0sCj4gPj4gKyB7IC5odyA9ICZwbGxfcGVyaXBoXzQ4ME1f Y2xrLmNvbW1vbi5odyB9LAo+ID4+ICsgeyAuaHcgPSAmcGxsX2NwdV9jbGsuY29tbW9uLmh3IH0s Cj4gPj4gK307Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfTV9EQVRBX1dJVEhfTVVYKHJpc2N2X2Ns aywgInJpc2N2LWNwdSIsIHJpc2N2X3BhcmVudHMsIDB4ZDAwLAo+ID4+ICsgMCwgNSwgLyogTSAq Lwo+ID4+ICsgMjQsIDMsIC8qIG11eCAqLwo+ID4+ICsgQ0xLX1NFVF9SQVRFX1BBUkVOVCk7Cj4g Pj4gKwo+ID4+ICsvKiBUaGUgcmlzY3YtYXhpIGNsayBtdXN0IGJlIGRpdmlkZWQgYnkgYXQgbGVh c3QgMi4gKi8KPiA+PiArc3RhdGljIHN0cnVjdCBjbGtfZGl2X3RhYmxlIHJpc2N2X2F4aV90YWJs ZVtdID0gewo+ID4+ICsgeyAudmFsID0gMSwgLmRpdiA9IDIgfSwKPiA+PiArIHsgLnZhbCA9IDIs IC5kaXYgPSAzIH0sCj4gPj4gKyB7IC52YWwgPSAzLCAuZGl2ID0gNCB9LAo+ID4+ICsgeyAvKiBT ZW50aW5lbCAqLyB9Cj4gPj4gK307Cj4gPj4gK3N0YXRpYyBTVU5YSV9DQ1VfRElWX1RBQkxFX0hX KHJpc2N2X2F4aV9jbGssICJyaXNjdi1heGkiLCAmcmlzY3ZfY2xrLmNvbW1vbi5odywKPiA+PiAr ICAgICAgMHhkMDAsIDgsIDIsIHJpc2N2X2F4aV90YWJsZSwgMCk7Cj4gPj4gKwo+ID4+ICtzdGF0 aWMgU1VOWElfQ0NVX0dBVEVfSFdTX1dJVEhfS0VZKHJpc2N2X2NvcmVfZ2F0ZSwgInJpc2N2LWNv cmUtZ2F0ZSIsIGFoYl9od3MsCj4gPj4gKyAgIDB4ZDA0LCBCSVQoMCksIDApOwo+ID4+ICsKPiA+ PiArc3RhdGljIFNVTlhJX0NDVV9HQVRFX0hXUyhyaXNjdl9jZmdfZ2F0ZSwgInJpc2N2LWNmZy1n YXRlIiwgYWhiX2h3cywKPiA+PiArICAweGQwYywgQklUKDApLCAwKTsKPiA+PiArCj4gPj4gKwo+ ID4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19odyAqcGxsX3BlcmlwaF8xNjBNX2h3c1tdID0g ewo+ID4+ICsgJnBsbF9wZXJpcGhfMTYwTV9jbGsuaHcsCj4gPj4gK307Cj4gPj4gKwo+ID4+ICtz dGF0aWMgU1VOWElfQ0NVX0dBVEVfREFUQShmYW5vdXRfMjRNX2NsaywgImZhbm91dC0yNE0iLCBv c2MyNE0sCj4gPj4gKyAgIDB4ZjMwLCBCSVQoMCksIDApOwo+ID4+ICtzdGF0aWMgU1VOWElfQ0NV X0dBVEVfREFUQV9XSVRIX1BSRURJVihmYW5vdXRfMTJNX2NsaywgImZhbm91dC0xMk0iLCBvc2My NE0sCj4gPj4gKyAgICAgICAweGYzMCwgQklUKDEpLCAyLCAwKTsKPiA+PiArc3RhdGljIFNVTlhJ X0NDVV9HQVRFX0hXU19XSVRIX1BSRURJVihmYW5vdXRfMTZNX2NsaywgImZhbm91dC0xNk0iLCBw bGxfcGVyaXBoXzE2ME1faHdzLAo+ID4+ICsgICAgICAweGYzMCwgQklUKDIpLCAxMCwgMCk7Cj4g Pj4gK3N0YXRpYyBTVU5YSV9DQ1VfR0FURV9IV1NfV0lUSF9QUkVESVYoZmFub3V0XzI1TV9jbGss ICJmYW5vdXQtMjVNIiwgcGxsX3BlcmlwaF8xNTBNX2h3cywKPiA+PiArICAgICAgMHhmMzAsIEJJ VCgzKSwgNiwgMCk7Cj4gPj4gKwo+ID4+ICsKPiA+PiArLyogVGhpcyBjbG9jayBoYXMgYSBzZWNv bmQgZGl2aWRlciB0aGF0IGlzIG5vdCBtb2RlbGxlZCBhbmQgZm9yY2VkIHRvIDAuICovCj4gPj4g KyNkZWZpbmUgU1VOOElfVjg1M19GQU5PVVRfMjdNX1JFRyAweGYzNAo+ID4+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGNsa19odyAqZmFub3V0XzI3TV9wYXJlbnRzW10gPSB7Cj4gPj4gKyAmcGxsX3Zp ZGVvXzF4X2Nsay5odywKPiA+PiArICZwbGxfY3NpX2Nsay5odywKPiA+PiArICZwbGxfcGVyaXBo XzMwME1fY2xrLmh3LAo+ID4+ICt9Owo+ID4+ICtzdGF0aWMgU1VOWElfQ0NVX01fSFdfV0lUSF9N VVhfR0FURShmYW5vdXRfMjdNX2NsaywgImZhbm91dC0yN00iLCAKPiA+PiArICAgIGZhbm91dF8y N01fcGFyZW50cywgMHhmMzQsCj4gPj4gKyAgICAwLCA1LCAvKiBNICovCj4gPj4gKyAgICAyNCwg MiwgLyogbXV4ICovCj4gPj4gKyAgICBCSVQoMzEpLCAvKiBnYXRlICovCj4gPj4gKyAgICAwKTsK PiA+PiArc3RhdGljIFNVTlhJX0NDVV9NX0hXU19XSVRIX0dBVEUoZmFub3V0X3BjbGtfY2xrLCAi ZmFub3V0LXBjbGsiLCBhcGIwX2h3cywgMHhmMzgsCj4gPj4gKyAwLCA1LCAvKiBNICovCj4gPj4g KyBCSVQoMzEpLCAvKiBnYXRlICovCj4gPj4gKyAwKTsKPiA+PiArCj4gPj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgY2xrX3BhcmVudF9kYXRhIGZhbm91dF9wYXJlbnRzW10gPSB7Cj4gPj4gKyB7IC5m d19uYW1lID0gImxvc2MiIH0sCj4gPj4gKyB7IC5odyA9ICZmYW5vdXRfMTJNX2Nsay5jb21tb24u aHcgfSwKPiA+PiArIHsgLmh3ID0gJmZhbm91dF8xNk1fY2xrLmNvbW1vbi5odyB9LAo+ID4+ICsg eyAuaHcgPSAmZmFub3V0XzI0TV9jbGsuY29tbW9uLmh3IH0sCj4gPj4gKyB7IC5odyA9ICZmYW5v dXRfMjVNX2Nsay5jb21tb24uaHcgfSwKPiA+PiArIHsgLmh3ID0gJmZhbm91dF8yN01fY2xrLmNv bW1vbi5odyB9LAo+ID4+ICsgeyAuaHcgPSAmZmFub3V0X3BjbGtfY2xrLmNvbW1vbi5odyB9LAo+ ID4+ICt9Owo+ID4+ICsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NVVhfREFUQV9XSVRIX0dBVEUo ZmFub3V0MF9jbGssICJmYW5vdXQwIiwgZmFub3V0X3BhcmVudHMsIDB4ZjNjLAo+ID4+ICsgICAg MCwgMywgLyogbXV4ICovCj4gPj4gKyAgICBCSVQoMjEpLCAvKiBnYXRlICovCj4gPj4gKyAgICAw KTsKPiA+PiArc3RhdGljIFNVTlhJX0NDVV9NVVhfREFUQV9XSVRIX0dBVEUoZmFub3V0MV9jbGss ICJmYW5vdXQxIiwgZmFub3V0X3BhcmVudHMsIDB4ZjNjLAo+ID4+ICsgICAgMywgMywgLyogbXV4 ICovCj4gPj4gKyAgICBCSVQoMjIpLCAvKiBnYXRlICovCj4gPj4gKyAgICAwKTsKPiA+PiArc3Rh dGljIFNVTlhJX0NDVV9NVVhfREFUQV9XSVRIX0dBVEUoZmFub3V0Ml9jbGssICJmYW5vdXQyIiwg ZmFub3V0X3BhcmVudHMsIDB4ZjNjLAo+ID4+ICsgICAgNiwgMywgLyogbXV4ICovCj4gPj4gKyAg ICBCSVQoMjMpLCAvKiBnYXRlICovCj4gPj4gKyAgICAwKTsKPiA+PiArCj4gPj4gKwo+ID4+ICtz dGF0aWMgc3RydWN0IGNjdV9jb21tb24gKnN1bjhpX3Y4NTNfY2N1X2Nsa3NbXSA9IHsKPiA+PiAr ICZwbGxfY3B1X2Nsay5jb21tb24sCj4gPj4gKyAmcGxsX2Rkcl9jbGsuY29tbW9uLAo+ID4+ICsg JnBsbF9wZXJpcGhfNHhfY2xrLmNvbW1vbiwKPiA+PiArICZwbGxfcGVyaXBoXzJ4X2Nsay5jb21t b24sCj4gPj4gKyAmcGxsX3BlcmlwaF84MDBNX2Nsay5jb21tb24sCj4gPj4gKyAmcGxsX3Blcmlw aF80ODBNX2Nsay5jb21tb24sCj4gPj4gKyAmcGxsX3ZpZGVvXzR4X2Nsay5jb21tb24sCj4gPj4g KyAmcGxsX2NzaV80eF9jbGsuY29tbW9uLAo+ID4+ICsgJnBsbF9hdWRpb19kaXYyX2Nsay5jb21t b24sCj4gPj4gKyAmcGxsX2F1ZGlvX2RpdjVfY2xrLmNvbW1vbiwKPiA+PiArICZwbGxfYXVkaW9f NHhfY2xrLmNvbW1vbiwKPiA+PiArICZwbGxfYXVkaW9fMXhfY2xrLmNvbW1vbiwKPiA+PiArICZw bGxfbnB1XzR4X2Nsay5jb21tb24sCj4gPj4gKyAmY3B1X2Nsay5jb21tb24sCj4gPj4gKyAmY3B1 X2F4aV9jbGsuY29tbW9uLAo+ID4+ICsgJmNwdV9hcGJfY2xrLmNvbW1vbiwKPiA+PiArICZhaGJf Y2xrLmNvbW1vbiwKPiA+PiArICZhcGIwX2Nsay5jb21tb24sCj4gPj4gKyAmYXBiMV9jbGsuY29t bW9uLAo+ID4+ICsgJmRlX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX2RlX2Nsay5jb21tb24sCj4g Pj4gKyAmZzJkX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX2cyZF9jbGsuY29tbW9uLAo+ID4+ICsg JmNlX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX2NlX2Nsay5jb21tb24sCj4gPj4gKyAmdmVfY2xr LmNvbW1vbiwKPiA+PiArICZidXNfdmVfY2xrLmNvbW1vbiwKPiA+PiArICZucHVfY2xrLmNvbW1v biwKPiA+PiArICZidXNfbnB1X2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX2RtYV9jbGsuY29tbW9u LAo+ID4+ICsgJmJ1c19tc2dib3gwX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX21zZ2JveDFfY2xr LmNvbW1vbiwKPiA+PiArICZidXNfc3BpbmxvY2tfY2xrLmNvbW1vbiwKPiA+PiArICZidXNfaHN0 aW1lcl9jbGsuY29tbW9uLAo+ID4+ICsgJmF2c19jbGsuY29tbW9uLAo+ID4+ICsgJmJ1c19kYmdf Y2xrLmNvbW1vbiwKPiA+PiArICZidXNfcHdtX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX2lvbW11 X2Nsay5jb21tb24sCj4gPj4gKyAmZHJhbV9jbGsuY29tbW9uLAo+ID4+ICsgJm1idXNfZG1hX2Ns ay5jb21tb24sCj4gPj4gKyAmbWJ1c192ZV9jbGsuY29tbW9uLAo+ID4+ICsgJm1idXNfY2VfY2xr LmNvbW1vbiwKPiA+PiArICZtYnVzX2NzaV9jbGsuY29tbW9uLAo+ID4+ICsgJm1idXNfaXNwX2Ns ay5jb21tb24sCj4gPj4gKyAmbWJ1c19nMmRfY2xrLmNvbW1vbiwKPiA+PiArICZidXNfZHJhbV9j bGsuY29tbW9uLAo+ID4+ICsgJm1tYzBfY2xrLmNvbW1vbiwKPiA+PiArICZtbWMxX2Nsay5jb21t b24sCj4gPj4gKyAmbW1jMl9jbGsuY29tbW9uLAo+ID4+ICsgJmJ1c19tbWMwX2Nsay5jb21tb24s Cj4gPj4gKyAmYnVzX21tYzFfY2xrLmNvbW1vbiwKPiA+PiArICZidXNfbW1jMl9jbGsuY29tbW9u LAo+ID4+ICsgJmJ1c191YXJ0MF9jbGsuY29tbW9uLAo+ID4+ICsgJmJ1c191YXJ0MV9jbGsuY29t bW9uLAo+ID4+ICsgJmJ1c191YXJ0Ml9jbGsuY29tbW9uLAo+ID4+ICsgJmJ1c191YXJ0M19jbGsu Y29tbW9uLAo+ID4+ICsgJmJ1c19pMmMwX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX2kyYzFfY2xr LmNvbW1vbiwKPiA+PiArICZidXNfaTJjMl9jbGsuY29tbW9uLAo+ID4+ICsgJmJ1c19pMmMzX2Ns ay5jb21tb24sCj4gPj4gKyAmYnVzX2kyYzRfY2xrLmNvbW1vbiwKPiA+PiArICZzcGkwX2Nsay5j b21tb24sCj4gPj4gKyAmc3BpMV9jbGsuY29tbW9uLAo+ID4+ICsgJnNwaTJfY2xrLmNvbW1vbiwK PiA+PiArICZzcGkzX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX3NwaTBfY2xrLmNvbW1vbiwKPiA+ PiArICZidXNfc3BpMV9jbGsuY29tbW9uLAo+ID4+ICsgJmJ1c19zcGkyX2Nsay5jb21tb24sCj4g Pj4gKyAmYnVzX3NwaTNfY2xrLmNvbW1vbiwKPiA+PiArICZzcGlmX2Nsay5jb21tb24sCj4gPj4g KyAmYnVzX3NwaWZfY2xrLmNvbW1vbiwKPiA+PiArICZlbWFjXzI1TV9jbGsuY29tbW9uLAo+ID4+ ICsgJmJ1c19lbWFjX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX2dwYWRjX2Nsay5jb21tb24sCj4g Pj4gKyAmYnVzX3Roc19jbGsuY29tbW9uLAo+ID4+ICsgJnVzYl9vaGNpX2Nsay5jb21tb24sCj4g Pj4gKyAmYnVzX29oY2lfY2xrLmNvbW1vbiwKPiA+PiArICZidXNfZWhjaV9jbGsuY29tbW9uLAo+ ID4+ICsgJmJ1c19vdGdfY2xrLmNvbW1vbiwKPiA+PiArICZpMnMwX2Nsay5jb21tb24sCj4gPj4g KyAmaTJzMV9jbGsuY29tbW9uLAo+ID4+ICsgJmJ1c19pMnMwX2Nsay5jb21tb24sCj4gPj4gKyAm YnVzX2kyczFfY2xrLmNvbW1vbiwKPiA+PiArICZkbWljX2Nsay5jb21tb24sCj4gPj4gKyAmYnVz X2RtaWNfY2xrLmNvbW1vbiwKPiA+PiArICZhdWRpb19jb2RlY19kYWNfY2xrLmNvbW1vbiwKPiA+ PiArICZhdWRpb19jb2RlY19hZGNfY2xrLmNvbW1vbiwKPiA+PiArICZidXNfYXVkaW9fY29kZWNf Y2xrLmNvbW1vbiwKPiA+PiArICZidXNfZHBzc190b3BfY2xrLmNvbW1vbiwKPiA+PiArICZtaXBp X2RzaV9jbGsuY29tbW9uLAo+ID4+ICsgJmJ1c19taXBpX2RzaV9jbGsuY29tbW9uLAo+ID4+ICsg JnRjb25fbGNkX2Nsay5jb21tb24sCj4gPj4gKyAmYnVzX3Rjb25fbGNkX2Nsay5jb21tb24sCj4g Pj4gKyAmY3NpX3RvcF9jbGsuY29tbW9uLAo+ID4+ICsgJmNzaV9tY2xrMF9jbGsuY29tbW9uLAo+ ID4+ICsgJmNzaV9tY2xrMV9jbGsuY29tbW9uLAo+ID4+ICsgJmNzaV9tY2xrMl9jbGsuY29tbW9u LAo+ID4+ICsgJmJ1c19jc2lfY2xrLmNvbW1vbiwKPiA+PiArICZidXNfd2llZ2FuZF9jbGsuY29t bW9uLAo+ID4+ICsgJnJpc2N2X2Nsay5jb21tb24sCj4gPj4gKyAmcmlzY3ZfYXhpX2Nsay5jb21t b24sCj4gPj4gKyAmcmlzY3ZfY29yZV9nYXRlLmNvbW1vbiwKPiA+PiArICZyaXNjdl9jZmdfZ2F0 ZS5jb21tb24sCj4gPj4gKyAmZmFub3V0XzI0TV9jbGsuY29tbW9uLAo+ID4+ICsgJmZhbm91dF8x Mk1fY2xrLmNvbW1vbiwKPiA+PiArICZmYW5vdXRfMTZNX2Nsay5jb21tb24sCj4gPj4gKyAmZmFu b3V0XzI1TV9jbGsuY29tbW9uLAo+ID4+ICsgJmZhbm91dF8yN01fY2xrLmNvbW1vbiwKPiA+PiAr ICZmYW5vdXRfcGNsa19jbGsuY29tbW9uLAo+ID4+ICsgJmZhbm91dDBfY2xrLmNvbW1vbiwKPiA+ PiArICZmYW5vdXQxX2Nsay5jb21tb24sCj4gPj4gKyAmZmFub3V0Ml9jbGsuY29tbW9uLAo+ID4+ ICt9Owo+ID4+ICsKPiA+PiArc3RhdGljIHN0cnVjdCBjbGtfaHdfb25lY2VsbF9kYXRhIHN1bjhp X3Y4NTNfaHdfY2xrcyA9IHsKPiA+PiArIC5udW0gPSBDTEtfTlVNQkVSLAo+ID4+ICsgLmh3cyA9 IHsKPiA+PiArIFtDTEtfT1NDMTJNXSAgICAgICAgICAgID0gJm9zYzEyTV9jbGsuaHcsCj4gPj4g KyBbQ0xLX1BMTF9DUFVdID0gJnBsbF9jcHVfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfUExM X0REUl0gPSAmcGxsX2Rkcl9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19QTExfUEVSSVBIXzRY XSA9ICZwbGxfcGVyaXBoXzR4X2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX1BMTF9QRVJJUEhf MlhdID0gJnBsbF9wZXJpcGhfMnhfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfUExMX1BFUklQ SF84MDBNXSA9ICZwbGxfcGVyaXBoXzgwME1fY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfUExM X1BFUklQSF80ODBNXSA9ICZwbGxfcGVyaXBoXzQ4ME1fY2xrLmNvbW1vbi5odywKPiA+PiArIFtD TEtfUExMX1BFUklQSF82MDBNXSA9ICZwbGxfcGVyaXBoXzYwME1fY2xrLmh3LAo+ID4+ICsgW0NM S19QTExfUEVSSVBIXzQwME1dID0gJnBsbF9wZXJpcGhfNDAwTV9jbGsuaHcsCj4gPj4gKyBbQ0xL X1BMTF9QRVJJUEhfMzAwTV0gPSAmcGxsX3BlcmlwaF8zMDBNX2Nsay5odywKPiA+PiArIFtDTEtf UExMX1BFUklQSF8yMDBNXSA9ICZwbGxfcGVyaXBoXzIwME1fY2xrLmh3LAo+ID4+ICsgW0NMS19Q TExfUEVSSVBIXzE2ME1dID0gJnBsbF9wZXJpcGhfMTYwTV9jbGsuaHcsCj4gPj4gKyBbQ0xLX1BM TF9QRVJJUEhfMTUwTV0gPSAmcGxsX3BlcmlwaF8xNTBNX2Nsay5odywKPiA+PiArIFtDTEtfUExM X1ZJREVPXzRYXSA9ICZwbGxfdmlkZW9fNHhfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfUExM X1ZJREVPXzJYXSA9ICZwbGxfdmlkZW9fMnhfY2xrLmh3LAo+ID4+ICsgW0NMS19QTExfVklERU9f MVhdID0gJnBsbF92aWRlb18xeF9jbGsuaHcsCj4gPj4gKyBbQ0xLX1BMTF9DU0lfNFhdID0gJnBs bF9jc2lfNHhfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfUExMX0FVRElPX0RJVjJdID0gJnBs bF9hdWRpb19kaXYyX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX1BMTF9BVURJT19ESVY1XSA9 ICZwbGxfYXVkaW9fZGl2NV9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19QTExfQVVESU9fNFhd ID0gJnBsbF9hdWRpb180eF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19QTExfQVVESU9fMVhd ID0gJnBsbF9hdWRpb18xeF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19QTExfTlBVXzRYXSA9 ICZwbGxfbnB1XzR4X2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0NQVV0gPSAmY3B1X2Nsay5j b21tb24uaHcsCj4gPj4gKyBbQ0xLX0NQVV9BWEldID0gJmNwdV9heGlfY2xrLmNvbW1vbi5odywK PiA+PiArIFtDTEtfQ1BVX0FQQl0gPSAmY3B1X2FwYl9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NM S19BSEJdID0gJmFoYl9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19BUEIwXSA9ICZhcGIwX2Ns ay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0FQQjFdID0gJmFwYjFfY2xrLmNvbW1vbi5odywKPiA+ PiArIFtDTEtfTUJVU10gPSAmbWJ1c19jbGsuaHcsCj4gPj4gKyBbQ0xLX0RFXSA9ICZkZV9jbGsu Y29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfREVdID0gJmJ1c19kZV9jbGsuY29tbW9uLmh3LAo+ ID4+ICsgW0NMS19HMkRdID0gJmcyZF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfRzJE XSA9ICZidXNfZzJkX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0NFXSA9ICZjZV9jbGsuY29t bW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfQ0VdID0gJmJ1c19jZV9jbGsuY29tbW9uLmh3LAo+ID4+ ICsgW0NMS19WRV0gPSAmdmVfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfQlVTX1ZFXSA9ICZi dXNfdmVfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfTlBVXSA9ICZucHVfY2xrLmNvbW1vbi5o dywKPiA+PiArIFtDTEtfQlVTX05QVV0gPSAmYnVzX25wdV9jbGsuY29tbW9uLmh3LAo+ID4+ICsg W0NMS19CVVNfRE1BXSA9ICZidXNfZG1hX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0JVU19N U0dCT1gwXSA9ICZidXNfbXNnYm94MF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfTVNH Qk9YMV0gPSAmYnVzX21zZ2JveDFfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfQlVTX1NQSU5M T0NLXSA9ICZidXNfc3BpbmxvY2tfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfQlVTX0hTVElN RVJdID0gJmJ1c19oc3RpbWVyX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0FWU10gPSAmYXZz X2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0JVU19EQkddID0gJmJ1c19kYmdfY2xrLmNvbW1v bi5odywKPiA+PiArIFtDTEtfQlVTX1BXTV0gPSAmYnVzX3B3bV9jbGsuY29tbW9uLmh3LAo+ID4+ ICsgW0NMS19CVVNfSU9NTVVdID0gJmJ1c19pb21tdV9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NM S19EUkFNXSA9ICZkcmFtX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX01CVVNfRE1BXSA9ICZt YnVzX2RtYV9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19NQlVTX1ZFXSA9ICZtYnVzX3ZlX2Ns ay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX01CVVNfQ0VdID0gJm1idXNfY2VfY2xrLmNvbW1vbi5o dywKPiA+PiArIFtDTEtfTUJVU19DU0ldID0gJm1idXNfY3NpX2Nsay5jb21tb24uaHcsCj4gPj4g KyBbQ0xLX01CVVNfSVNQXSA9ICZtYnVzX2lzcF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19N QlVTX0cyRF0gPSAmbWJ1c19nMmRfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfQlVTX0RSQU1d ID0gJmJ1c19kcmFtX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX01NQzBdID0gJm1tYzBfY2xr LmNvbW1vbi5odywKPiA+PiArIFtDTEtfTU1DMV0gPSAmbW1jMV9jbGsuY29tbW9uLmh3LAo+ID4+ ICsgW0NMS19NTUMyXSA9ICZtbWMyX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0JVU19NTUMw XSA9ICZidXNfbW1jMF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfTU1DMV0gPSAmYnVz X21tYzFfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfQlVTX01NQzJdID0gJmJ1c19tbWMyX2Ns ay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0JVU19VQVJUMF0gPSAmYnVzX3VhcnQwX2Nsay5jb21t b24uaHcsCj4gPj4gKyBbQ0xLX0JVU19VQVJUMV0gPSAmYnVzX3VhcnQxX2Nsay5jb21tb24uaHcs Cj4gPj4gKyBbQ0xLX0JVU19VQVJUMl0gPSAmYnVzX3VhcnQyX2Nsay5jb21tb24uaHcsCj4gPj4g KyBbQ0xLX0JVU19VQVJUM10gPSAmYnVzX3VhcnQzX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xL X0JVU19JMkMwXSA9ICZidXNfaTJjMF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfSTJD MV0gPSAmYnVzX2kyYzFfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfQlVTX0kyQzJdID0gJmJ1 c19pMmMyX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0JVU19JMkMzXSA9ICZidXNfaTJjM19j bGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfSTJDNF0gPSAmYnVzX2kyYzRfY2xrLmNvbW1v bi5odywKPiA+PiArIFtDTEtfU1BJMF0gPSAmc3BpMF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NM S19TUEkxXSA9ICZzcGkxX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX1NQSTJdID0gJnNwaTJf Y2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfU1BJM10gPSAmc3BpM19jbGsuY29tbW9uLmh3LAo+ ID4+ICsgW0NMS19CVVNfU1BJMF0gPSAmYnVzX3NwaTBfY2xrLmNvbW1vbi5odywKPiA+PiArIFtD TEtfQlVTX1NQSTFdID0gJmJ1c19zcGkxX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0JVU19T UEkyXSA9ICZidXNfc3BpMl9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfU1BJM10gPSAm YnVzX3NwaTNfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfU1BJRl0gPSAmc3BpZl9jbGsuY29t bW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfU1BJRl0gPSAmYnVzX3NwaWZfY2xrLmNvbW1vbi5odywK PiA+PiArIFtDTEtfRU1BQ18yNU1dID0gJmVtYWNfMjVNX2Nsay5jb21tb24uaHcsCj4gPj4gKyBb Q0xLX0JVU19FTUFDXSA9ICZidXNfZW1hY19jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNf R1BBRENdID0gJmJ1c19ncGFkY19jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfVEhTXSA9 ICZidXNfdGhzX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0kyUzBdID0gJmkyczBfY2xrLmNv bW1vbi5odywKPiA+PiArIFtDTEtfSTJTMV0gPSAmaTJzMV9jbGsuY29tbW9uLmh3LAo+ID4+ICsg W0NMS19CVVNfSTJTMF0gPSAmYnVzX2kyczBfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfQlVT X0kyUzFdID0gJmJ1c19pMnMxX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0RNSUNdID0gJmRt aWNfY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfQlVTX0RNSUNdID0gJmJ1c19kbWljX2Nsay5j b21tb24uaHcsCj4gPj4gKyBbQ0xLX0FVRElPX0NPREVDX0RBQ10gPSAmYXVkaW9fY29kZWNfZGFj X2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0FVRElPX0NPREVDX0FEQ10gPSAmYXVkaW9fY29k ZWNfYWRjX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0JVU19BVURJT19DT0RFQ10gPSAmYnVz X2F1ZGlvX2NvZGVjX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX1VTQl9PSENJXSA9ICZ1c2Jf b2hjaV9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfT0hDSV0gPSAmYnVzX29oY2lfY2xr LmNvbW1vbi5odywKPiA+PiArIFtDTEtfQlVTX0VIQ0ldID0gJmJ1c19laGNpX2Nsay5jb21tb24u aHcsCj4gPj4gKyBbQ0xLX0JVU19PVEddID0gJmJ1c19vdGdfY2xrLmNvbW1vbi5odywKPiA+PiAr IFtDTEtfQlVTX0RQU1NfVE9QXSA9ICZidXNfZHBzc190b3BfY2xrLmNvbW1vbi5odywKPiA+PiAr IFtDTEtfTUlQSV9EU0ldID0gJm1pcGlfZHNpX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0JV U19NSVBJX0RTSV0gPSAmYnVzX21pcGlfZHNpX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX1RD T05fTENEXSA9ICZ0Y29uX2xjZF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19CVVNfVENPTl9M Q0RdID0gJmJ1c190Y29uX2xjZF9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19DU0lfVE9QXSA9 ICZjc2lfdG9wX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0NTSV9NQ0xLMF0gPSAmY3NpX21j bGswX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0NTSV9NQ0xLMV0gPSAmY3NpX21jbGsxX2Ns ay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0NTSV9NQ0xLMl0gPSAmY3NpX21jbGsyX2Nsay5jb21t b24uaHcsCj4gPj4gKyBbQ0xLX0JVU19DU0ldID0gJmJ1c19jc2lfY2xrLmNvbW1vbi5odywKPiA+ PiArIFtDTEtfQlVTX1dJRUdBTkRdID0gJmJ1c193aWVnYW5kX2Nsay5jb21tb24uaHcsCj4gPj4g KyBbQ0xLX1JJU0NWXSA9ICZyaXNjdl9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19SSVNDVl9B WEldID0gJnJpc2N2X2F4aV9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19SSVNDVl9DT1JFX0dB VEVdICAgPSAmcmlzY3ZfY29yZV9nYXRlLmNvbW1vbi5odywKPiA+PiArIFtDTEtfUklTQ1ZfQ0ZH X0dBVEVdICAgID0gJnJpc2N2X2NmZ19nYXRlLmNvbW1vbi5odywKPiA+PiArIFtDTEtfRkFOT1VU XzI0TV0gPSAmZmFub3V0XzI0TV9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19GQU5PVVRfMTZN XSA9ICZmYW5vdXRfMTZNX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0ZBTk9VVF8xMk1dID0g JmZhbm91dF8xMk1fY2xrLmNvbW1vbi5odywKPiA+PiArIFtDTEtfRkFOT1VUXzI1TV0gPSAmZmFu b3V0XzI1TV9jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19GQU5PVVRfMjdNXSA9ICZmYW5vdXRf MjdNX2Nsay5jb21tb24uaHcsCj4gPj4gKyBbQ0xLX0ZBTk9VVF9QQ0xLXSA9ICZmYW5vdXRfcGNs a19jbGsuY29tbW9uLmh3LAo+ID4+ICsgW0NMS19GQU5PVVQwXSA9ICZmYW5vdXQwX2Nsay5jb21t b24uaHcsCj4gPj4gKyBbQ0xLX0ZBTk9VVDFdID0gJmZhbm91dDFfY2xrLmNvbW1vbi5odywKPiA+ PiArIFtDTEtfRkFOT1VUMl0gPSAmZmFub3V0Ml9jbGsuY29tbW9uLmh3LAo+ID4+ICsgfSwKPiA+ PiArfTsKPiA+PiArCj4gPj4gK3N0YXRpYyBzdHJ1Y3QgY2N1X3Jlc2V0X21hcCBzdW44aV92ODUz X2NjdV9yZXNldHNbXSA9IHsKPiA+PiArIFtSU1RfTUJVU10gPSB7IDB4NTQwLCBCSVQoMzApIH0s Cj4gPj4gKyBbUlNUX0JVU19ERV0gPSB7IDB4NjBjLCBCSVQoMTYpIH0sCj4gPj4gKyBbUlNUX0JV U19HMkRdID0geyAweDYzYywgQklUKDE2KSB9LAo+ID4+ICsgW1JTVF9CVVNfQ0VdID0geyAweDY4 YywgQklUKDE2KSB8IEJJVCgxNyl9LAo+ID4+ICsgW1JTVF9CVVNfVkVdID0geyAweDY5YywgQklU KDE2KSB9LAo+ID4+ICsgW1JTVF9CVVNfTlBVXSA9IHsgMHg2ZWMsIEJJVCgxNikgfSwKPiA+PiAr IFtSU1RfQlVTX0RNQV0gPSB7IDB4NzBjLCBCSVQoMTYpIH0sCj4gPj4gKyBbUlNUX0JVU19NU0dC T1gwXSA9IHsgMHg3MWMsIEJJVCgxNikgfSwKPiA+PiArIFtSU1RfQlVTX01TR0JPWDFdID0geyAw eDcxYywgQklUKDE3KSB9LAo+ID4+ICsgW1JTVF9CVVNfU1BJTkxPQ0tdID0geyAweDcyYywgQklU KDE2KSB9LAo+ID4+ICsgW1JTVF9CVVNfSFNUSU1FUl0gPSB7IDB4NzNjLCBCSVQoMTYpIH0sCj4g Pj4gKyBbUlNUX0JVU19EQkddID0geyAweDc4YywgQklUKDE2KSB9LAo+ID4+ICsgW1JTVF9CVVNf UFdNXSA9IHsgMHg3YWMsIEJJVCgxNikgfSwKPiA+PiArIFtSU1RfQlVTX0RSQU1dID0geyAweDgw YywgQklUKDE2KSB9LAo+ID4+ICsgW1JTVF9CVVNfTU1DMF0gPSB7IDB4ODRjLCBCSVQoMTYpIH0s Cj4gPj4gKyBbUlNUX0JVU19NTUMxXSA9IHsgMHg4NGMsIEJJVCgxNykgfSwKPiA+PiArIFtSU1Rf QlVTX01NQzJdID0geyAweDg0YywgQklUKDE4KSB9LAo+ID4+ICsgW1JTVF9CVVNfVUFSVDBdID0g eyAweDkwYywgQklUKDE2KSB9LAo+ID4+ICsgW1JTVF9CVVNfVUFSVDFdID0geyAweDkwYywgQklU KDE3KSB9LAo+ID4+ICsgW1JTVF9CVVNfVUFSVDJdID0geyAweDkwYywgQklUKDE4KSB9LAo+ID4+ ICsgW1JTVF9CVVNfVUFSVDNdID0geyAweDkwYywgQklUKDE5KSB9LAo+ID4+ICsgW1JTVF9CVVNf STJDMF0gPSB7IDB4OTFjLCBCSVQoMTYpIH0sCj4gPj4gKyBbUlNUX0JVU19JMkMxXSA9IHsgMHg5 MWMsIEJJVCgxNykgfSwKPiA+PiArIFtSU1RfQlVTX0kyQzJdID0geyAweDkxYywgQklUKDE4KSB9 LAo+ID4+ICsgW1JTVF9CVVNfSTJDM10gPSB7IDB4OTFjLCBCSVQoMTkpIH0sCj4gPj4gKyBbUlNU X0JVU19JMkM0XSA9IHsgMHg5MWMsIEJJVCgyMCkgfSwKPiA+PiArIFtSU1RfQlVTX1NQSTBdID0g eyAweDk2YywgQklUKDE2KSB9LAo+ID4+ICsgW1JTVF9CVVNfU1BJMV0gPSB7IDB4OTZjLCBCSVQo MTcpIH0sCj4gPj4gKyBbUlNUX0JVU19TUEkyXSA9IHsgMHg5NmMsIEJJVCgxOCkgfSwKPiA+PiAr IFtSU1RfQlVTX1NQSTNdID0geyAweDk2YywgQklUKDE5KSB9LAo+ID4+ICsgW1JTVF9CVVNfU1BJ Rl0gPSB7IDB4OTZjLCBCSVQoMjApIH0sCj4gPj4gKyBbUlNUX0JVU19FTUFDXSA9IHsgMHg5N2Ms IEJJVCgxNikgfSwKPiA+PiArIFtSU1RfQlVTX0dQQURDXSA9IHsgMHg5ZWMsIEJJVCgxNikgfSwK PiA+PiArIFtSU1RfQlVTX1RIU10gPSB7IDB4OWZjLCBCSVQoMTYpIH0sCj4gPj4gKyBbUlNUX0JV U19JMlMwXSA9IHsgMHhhMjAsIEJJVCgxNikgfSwKPiA+PiArIFtSU1RfQlVTX0kyUzFdID0geyAw eGEyMCwgQklUKDE3KSB9LAo+ID4+ICsgW1JTVF9CVVNfRE1JQ10gPSB7IDB4YTRjLCBCSVQoMTYp IH0sCj4gPj4gKyBbUlNUX0JVU19BVURJT19DT0RFQ10gPSB7IDB4YTVjLCBCSVQoMTYpIH0sCj4g Pj4gKyBbUlNUX1VTQl9QSFldID0geyAweGE3MCwgQklUKDMwKSB9LAo+ID4+ICsgW1JTVF9CVVNf T0hDSV0gPSB7IDB4YThjLCBCSVQoMTYpIH0sCj4gPj4gKyBbUlNUX0JVU19FSENJXSA9IHsgMHhh OGMsIEJJVCgyMCkgfSwKPiA+PiArIFtSU1RfQlVTX09UR10gPSB7IDB4YThjLCBCSVQoMjQpIH0s Cj4gPj4gKyBbUlNUX0JVU19EUFNTX1RPUF0gPSB7IDB4YWJjLCBCSVQoMTYpIH0sCj4gPj4gKyBb UlNUX0JVU19NSVBJX0RTSV0gPSB7IDB4YjRjLCBCSVQoMTYpIH0sCj4gPj4gKyBbUlNUX0JVU19U Q09OX0xDRF0gPSB7IDB4YjdjLCBCSVQoMTYpIH0sCj4gPj4gKyBbUlNUX0JVU19DU0ldID0geyAw eGMyYywgQklUKDE2KSB9LAo+ID4+ICsgW1JTVF9CVVNfV0lFR0FORF0gPSB7IDB4YzdjLCBCSVQo MTYpIH0sCj4gPj4gKyBbUlNUX1JJU0NWX1NZU19BUEJdID0geyAweGQwNCwgQklUKDIpLCBDQ1Vf RkVBVFVSRV9LRVlfRklFTEQgfSwKPiA+PiArIFtSU1RfUklTQ1ZfU09GVF0gPSB7IDB4ZDA0LCBC SVQoMSksIENDVV9GRUFUVVJFX0tFWV9GSUVMRCB9LAo+ID4+ICsgW1JTVF9SSVNDVl9DRkddID0g eyAweGQwYywgQklUKDE2KSB9Cj4gPj4gK307Cj4gPj4gKwo+ID4+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IHN1bnhpX2NjdV9kZXNjIHN1bjhpX3Y4NTNfY2N1X2Rlc2MgPSB7Cj4gPj4gKyAuY2N1X2Ns a3MgPSBzdW44aV92ODUzX2NjdV9jbGtzLAo+ID4+ICsgLm51bV9jY3VfY2xrcyA9IEFSUkFZX1NJ WkUoc3VuOGlfdjg1M19jY3VfY2xrcyksCj4gPj4gKwo+ID4+ICsgLmh3X2Nsa3MgPSAmc3VuOGlf djg1M19od19jbGtzLAo+ID4+ICsKPiA+PiArIC5yZXNldHMgPSBzdW44aV92ODUzX2NjdV9yZXNl dHMsCj4gPj4gKyAubnVtX3Jlc2V0cyA9IEFSUkFZX1NJWkUoc3VuOGlfdjg1M19jY3VfcmVzZXRz KSwKPiA+PiArfTsKPiA+PiArCj4gPj4gK3N0YXRpYyBjb25zdCB1MzIgcGxsX3JlZ3NbXSA9IHsK PiA+PiArIFNVTjhJX1Y4NTNfUExMX0NQVV9SRUcsCj4gPj4gKyBTVU44SV9WODUzX1BMTF9ERFJf UkVHLAo+ID4+ICsgU1VOOElfVjg1M19QTExfUEVSSVBIX1JFRywKPiA+PiArIFNVTjhJX1Y4NTNf UExMX1ZJREVPX1JFRywKPiA+PiArIFNVTjhJX1Y4NTNfUExMX0NTSV9SRUcsCj4gPj4gKyBTVU44 SV9WODUzX1BMTF9BVURJT19SRUcsCj4gPj4gKyBTVU44SV9WODUzX1BMTF9OUFVfUkVHLAo+ID4+ ICt9Owo+ID4+ICsKPiA+PiArc3RhdGljIGludCBzdW44aV92ODUzX2NjdV9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4+ICt7Cj4gPj4gKyB2b2lkIF9faW9tZW0gKnJlZzsK PiA+PiArIHUzMiB2YWw7Cj4gPj4gKyBpbnQgaSwgcmV0Owo+ID4+ICsKPiA+PiArIHJlZyA9IGRl dm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKPiA+PiArIGlmIChJU19FUlIo cmVnKSkKPiA+PiArIHJldHVybiBQVFJfRVJSKHJlZyk7Cj4gPj4gKwo+ID4+ICsgLyogRW5hYmxl IHRoZSBlbmFibGUsIExETywgYW5kIGxvY2sgYml0cyBvbiBhbGwgUExMcy4gKi8KPiA+PiArIGZv ciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBsbF9yZWdzKTsgaSsrKSB7Cj4gPj4gKyB2YWwgPSBy ZWFkbChyZWcgKyBwbGxfcmVnc1tpXSk7Cj4gPj4gKyB2YWwgfD0gQklUKDMxKSB8IEJJVCgzMCkg fCBCSVQoMjkpOwo+ID4+ICsgd3JpdGVsKHZhbCwgcmVnICsgcGxsX3JlZ3NbaV0pOwo+ID4+ICsg fQo+ID4+ICsKPiA+PiArIC8qIEZvcmNlIFBMTF9DUFUgZmFjdG9yIE0gdG8gMC4gKi8KPiA+PiAr IHZhbCA9IHJlYWRsKHJlZyArIFNVTjhJX1Y4NTNfUExMX0NQVV9SRUcpOwo+ID4+ICsgdmFsICY9 IH5HRU5NQVNLKDEsIDApOwo+ID4+ICsgd3JpdGVsKHZhbCwgcmVnICsgU1VOOElfVjg1M19QTExf Q1BVX1JFRyk7Cj4gPj4gKwo+ID4+ICsgLyoKPiA+PiArICogRm9yY2UgT0hDSSAxMk0gY2xvY2sg c291cmNlIHRvIDAwICgxMk1IeiBkaXZpZGVkIGZyb20gNDhNSHopCj4gPj4gKyAqCj4gPj4gKyAq IFRoaXMgY2xvY2sgbXV4IGlzIHN0aWxsIG15c3RlcmlvdXMsIGFuZCB0aGUgY29kZSBqdXN0IGVu Zm9yY2VzCj4gPj4gKyAqIGl0IHRvIGhhdmUgYSB2YWxpZCBjbG9jayBwYXJlbnQuCj4gPj4gKyAq Lwo+ID4+ICsgdmFsID0gcmVhZGwocmVnICsgU1VOOElfVjg1M19VU0JfQ0xLX1JFRyk7Cj4gPj4g KyB2YWwgJj0gfkdFTk1BU0soMjUsIDI0KTsKPiA+PiArIHdyaXRlbCh2YWwsIHJlZyArIFNVTjhJ X1Y4NTNfVVNCX0NMS19SRUcpOwo+ID4+ICsKPiA+PiArIC8qIEZvcmNlIGZhbm91dC0yN00gZmFj dG9yIE4gdG8gMC4gKi8KPiA+PiArIHZhbCA9IHJlYWRsKHJlZyArIFNVTjhJX1Y4NTNfRkFOT1VU XzI3TV9SRUcpOwo+ID4+ICsgdmFsICY9IH5HRU5NQVNLKDksIDgpOwo+ID4+ICsgd3JpdGVsKHZh bCwgcmVnICsgU1VOOElfVjg1M19GQU5PVVRfMjdNX1JFRyk7Cj4gPj4gKwo+ID4+ICsgcmV0ID0g ZGV2bV9zdW54aV9jY3VfcHJvYmUoJnBkZXYtPmRldiwgcmVnLCAmc3VuOGlfdjg1M19jY3VfZGVz Yyk7Cj4gPj4gKyBpZiAocmV0KQo+ID4+ICsgcmV0dXJuIHJldDsKPiA+PiArCj4gPj4gKyByZXR1 cm4gMDsKPiA+PiArfQo+ID4+ICsKPiA+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgc3VuOGlfdjg1M19jY3VfaWRzW10gPSB7Cj4gPj4gKyB7IC5jb21wYXRpYmxlID0gImFsbHdp bm5lcixzdW44aS12ODUzLWNjdSIgfSwKPiA+PiArIHsgfQo+ID4+ICt9Owo+ID4+ICsKPiA+PiAr c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgc3VuOGlfdjg1M19jY3VfZHJpdmVyID0gewo+ ID4+ICsgLnByb2JlID0gc3VuOGlfdjg1M19jY3VfcHJvYmUsCj4gPj4gKyAuZHJpdmVyID0gewo+ ID4+ICsgLm5hbWUgPSAic3VuOGktdjg1My1jY3UiLAo+ID4+ICsgLnN1cHByZXNzX2JpbmRfYXR0 cnMgPSB0cnVlLAo+ID4+ICsgLm9mX21hdGNoX3RhYmxlID0gc3VuOGlfdjg1M19jY3VfaWRzLAo+ ID4+ICsgfSwKPiA+PiArfTsKPiA+PiArbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzdW44aV92ODUz X2NjdV9kcml2ZXIpOwo+ID4+ICsKPiA+PiArTU9EVUxFX0lNUE9SVF9OUygiU1VOWElfQ0NVIik7 Cj4gPj4gK01PRFVMRV9ERVNDUklQVElPTigiU3VwcG9ydCBmb3IgdGhlIEFsbHdpbm5lciBWODUz IENDVSIpOwo+ID4+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY2xrL3N1bnhpLW5nL2NjdS1zdW44aS12ODUzLmggYi9kcml2ZXJzL2Nsay9zdW54aS1u Zy9jY3Utc3VuOGktdjg1My5oCj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+PiBpbmRleCAw MDAwMDAwMDAwMDAuLmYxYjJhNGQwYmNkMwo+ID4+IC0tLSAvZGV2L251bGwKPiA+PiArKysgYi9k cml2ZXJzL2Nsay9zdW54aS1uZy9jY3Utc3VuOGktdjg1My5oCj4gPj4gQEAgLTAsMCArMSwxNCBA QAo+ID4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwo+ID4+ICsvKgo+ ID4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjQgQW5kcmFzIFN6ZW16byA8c3plbXpvLmFuZHJhc0Bn bWFpbC5jb20+Cj4gPj4gKyAqLwo+ID4+ICsKPiA+PiArI2lmbmRlZiBfQ0NVX1NVTjhJX1Y4NTNf SF8KPiA+PiArI2RlZmluZSBfQ0NVX1NVTjhJX1Y4NTNfSF8KPiA+PiArCj4gPj4gKyNpbmNsdWRl IDxkdC1iaW5kaW5ncy9jbG9jay9hbGx3aW5uZXIsc3VuOGktdjg1My1jY3UuaD4KPiA+PiArI2lu Y2x1ZGUgPGR0LWJpbmRpbmdzL3Jlc2V0L2FsbHdpbm5lcixzdW44aS12ODUzLWNjdS5oPgo+ID4+ ICsKPiA+PiArI2RlZmluZSBDTEtfTlVNQkVSIChDTEtfRkFOT1VUMiArIDEpCj4gPj4gKwo+ID4+ ICsjZW5kaWYKPiA+PiAKPiA+IAo+ID4gCj4gPiAKPiA+IAo+IAo+IAoKCgoKCi0tIApsaW51eC1w aHkgbWFpbGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo=