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 821B3EEB57F for ; Sat, 9 Sep 2023 08:54:47 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:References:Cc:To:From:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=B0Kmui4tTSHam4rrcEfXb9BStxgZrxE+36YVpCuZEj8=; b=A+Y750JgLth/ry JvBU3fOh8fOMG5X9zJNpCTUwyRoJ3tdQtnOyQ/GzYjOA62xaPWa+kptZh6M5yZE8ZdbxqCDUqAI0u V3FyMLkcHwGtEZk8g/VAdwFx4X5eCAze8XUWhho1h6O8pqzCRk/F9ZpXAOXw55iVLIFuXCayoxvVU 7U2OslbA3kk3Shd0S0/n+NSLA8Dx+0WjgNr0ZWAF1tBT/hV2/h3q84HunW7mLX3TuMfdWvATgJt/S eRuVXoat4fbvH9z+ykZJ5VN/tGt1ttGrNQWFaMq2XPPJBHylyVsD/bsbdjaRPNbvUfDJ4qJlw5s13 zOJb03kkBbCDsFTmLFeQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qetjK-00FDiB-2n; Sat, 09 Sep 2023 08:54:14 +0000 Received: from relay9-d.mail.gandi.net ([217.70.183.199]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qetjE-00FDhC-28; Sat, 09 Sep 2023 08:54:12 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id B0410FF807; Sat, 9 Sep 2023 08:53:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arinc9.com; s=gm1; t=1694249642; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fPyUYQLyx47PeNlqKxT+aTtsZJ3iYspjlYlykygyiuc=; b=UQfz2ahW9ABaRafSgjFTQI5Zlk0Z/seB/LuZdIQ0ulfjMzR2l7vbbcP6CgW/T6vYMJ+jWs mWVlMkW/SHw+10Hepe2cHMko76AAq2HF9qUGyn32ctuG4cr6XXXvqhDFRWGEIXA2B1436g DRqgzi3Ymk9wnsTUH8gwNvYw27Y4Xv8JnOc44nrjDDQaYgKuxM2N7RbnvQdTw+mgRtXpon cXWPfzS9U11E9MOHRlgyGFUFtwWlo5t1HaMySrr5ip6feXYsrMY+wM+eFL52Ki36NqC55z n+3zcOcPQtPcvvYu5eaE918MLnvC6KaGC4np/lkeaC7SQb5dYyZ4oaTiiw6mXA== Message-ID: <87325ce9-595a-4dda-a6a1-b5927d25719b@arinc9.com> Date: Sat, 9 Sep 2023 11:53:50 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/4] dt-bindings: net: dsa: document internal MDIO bus Content-Language: en-US From: =?UTF-8?B?QXLEsW7DpyDDnE5BTA==?= To: Vladimir Oltean Cc: Andrew Lunn , Florian Fainelli , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Woojung Huh , UNGLinuxDriver@microchip.com, Linus Walleij , =?UTF-8?Q?Alvin_=C5=A0ipraga?= , Daniel Golle , Landen Chao , DENG Qingfang , Sean Wang , Matthias Brugger , AngeloGioacchino Del Regno , mithat.guner@xeront.com, erkin.bozoglu@xeront.com, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org References: <20230812091708.34665-3-arinc.unal@arinc9.com> <47b61929-5c2d-4906-b153-2046a94858c8@arinc9.com> <47b61929-5c2d-4906-b153-2046a94858c8@arinc9.com> <20230813112026.ohsx6srbt2staxma@skbuf> <8a8e14f1-0493-4298-a2cc-6e7ae7929334@arinc9.com> <20230813190157.4y3zoro53qsz43pe@skbuf> <20230814143601.mnpxtcm2zybnbvoh@skbuf> <0cee0928-74c9-4048-8cd8-70bfbfafd9b2@arinc9.com> <20230827121235.zog4c3ehu2cyd3jy@skbuf> <676d1a2b-6ffa-4aff-8bed-a749c373f5b3@arinc9.com> In-Reply-To: <676d1a2b-6ffa-4aff-8bed-a749c373f5b3@arinc9.com> X-GND-Sasl: arinc.unal@arinc9.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230909_015408_985678_CD47467E X-CRM114-Status: GOOD ( 57.85 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gNC4wOS4yMDIzIDE0OjMzLCBBcsSxbsOnIMOcTkFMIHdyb3RlOgo+IEhleSBWbGFkaW1pciwK PiAKPiBPbiAyNy4wOC4yMDIzIDE1OjEyLCBWbGFkaW1pciBPbHRlYW4gd3JvdGU6Cj4+IEhpIEFy xLFuw6csCj4+Cj4+IEkgYW0gb24gdmFjYXRpb24gYW5kIEkgd2lsbCBqdXN0IHJlcGx5IHdpdGgg c29tZSBjbGFyaWZpY2F0aW9uIGFzcGVjdHMsCj4+IHdpdGhvdXQgaGF2aW5nIGRvbmUgYW55IGZ1 cnRoZXIgcmVzZWFyY2ggb24gdGhlIHRvcGljIHNpbmNlIG15IGxhc3QgcmVwbHkuCj4+Cj4+IE9u IFN1biwgQXVnIDI3LCAyMDIzIGF0IDExOjMzOjE2QU0gKzAzMDAsIEFyxLFuw6cgw5xOQUwgd3Jv dGU6Cj4+PiBCZWZvcmUgSSBjb250aW51ZSBjb21tZW50aW5nLCBJJ2QgbGlrZSB0byBzdGF0ZSBt eSB1bmRlcnN0YW5kaW5nIHNvIHdlIGNhbgo+Pj4gbWFrZSBzdXJlIHdlJ3JlIG9uIHRoZSBzYW1l IHBhZ2UuIElmIGEgZHJpdmVyIGRvZXNuJ3QgdXNlCj4+PiBkcy0+c2xhdmVfbWlpX2J1cywgdGhl IHN3aXRjaCBpdCBjb250cm9scyBtdXN0IG5vdCBoYXZlIGFueSBpbnRlcm5hbCBNRElPCj4+PiBi dXNlcy4gT3RoZXJ3aXNlIHRoZSBQSFlzIG9uIHRoZXNlIGJ1c2VzIGNvdWxkbid0IGZ1bmN0aW9u LCBhbmQgYW4gaW1wcm9wZXIKPj4+IGRyaXZlciBsaWtlIHRoaXMgd291bGQgbm90IGJlIG9uIHRo ZSBvZmZpY2lhbCBMaW51eCBzb3VyY2UgY29kZS4KPj4KPj4gQSBEU0Egc3dpdGNoIHBvcnQsIGxp a2UgYW55IE9GLWJhc2VkIGV0aGVybmV0LWNvbnRyb2xsZXIgd2hpY2ggdXNlcwo+PiBwaHlsaW5r LCB3aWxsIHVzZSBvbmUgb2YgdGhlIHBoeS1oYW5kbGUsIGZpeGVkLWxpbmsgb3IgbWFuYWdlZCBw cm9wZXJ0aWVzCj4+IHRvIGRlc2NyaWJlIHRoZSBpbnRlcmZhY2UgY29ubmVjdGluZyB0aGUgTUFD L01BQy1zaWRlIFBDUyB0byB0aGUgUEhZLgo+Pgo+PiBBdCBpdHMgY29yZSwgZHMtPnNsYXZlX21p aV9idXMgaXMgbm90aGluZyBtb3JlIHRoYW4gYSBtZWNoYW5pc20gdG8gbWFrZQo+PiBzZW5zZSBv ZiBkZXZpY2UgdHJlZXMgd2hlcmUgdGhlIGFib3ZlIDMgcGh5bGluayBwcm9wZXJ0aWVzIGFyZSBu b3QgcHJlc2VudC4KPj4KPj4gSXQgaXMgY29tcGxldGVseSBmYWxzZSB0byBzYXkgdGhhdCBpZiBh IGRyaXZlciBkb2Vzbid0IGhhdmUgZHMtPnNsYXZlX21paV9idXMsCj4+IGl0IG11c3Qgbm90IGhh dmUgYW4gaW50ZXJuYWwgTURJTyBidXMuIEJlY2F1c2UgeW91IGNvdWxkIHN0aWxsIGRlc2NyaWJl Cj4+IHRoYXQgaW50ZXJuYWwgTURJTyBidXMgbGlrZSBiZWxvdywgd2l0aG91dCBtYWtpbmcgYW55 IHVzZSBvZiB0aGUgc29sZSBwcm9wZXJ0eQo+PiB0aGF0IG1ha2VzIGRzLT5zbGF2ZV9taWlfYnVz IHVzZWZ1bCBmcm9tIGEgZHQtYmluZGluZ3MgcGVyc3BlY3RpdmUuCj4+Cj4+IGV0aGVybmV0LXN3 aXRjaCB7Cj4+IMKgwqDCoMKgZXRoZXJuZXQtcG9ydHMgewo+PiDCoMKgwqDCoMKgwqDCoCBwb3J0 QDAgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlZyA9IDwwPjsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBwaHktaGFuZGxlID0gPCZwb3J0MF9waHk+Owo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHBoeS1tb2RlID0gImludGVybmFsIjsKPj4gwqDCoMKgwqDCoMKgwqAgfTsKPj4gwqDC oMKgwqB9Owo+Pgo+PiDCoMKgwqDCoG1kaW8gewo+PiDCoMKgwqDCoMKgwqDCoCBwb3J0MF9waHk6 IGV0aGVybmV0LXBoeUAwIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWcgPSA8MD47Cj4+ IMKgwqDCoMKgwqDCoMKgIH07Cj4+IMKgwqDCoMKgfTsKPj4gfTsKPj4KPj4gVGhpcyBpcyB0aGUg bW9yZSB1bml2ZXJzYWwgd2F5IG9mIGRlc2NyaWJpbmcgdGhlIHBvcnQgc2V0dXAgaW4gYW4KPj4g T0YtYmFzZWQgd2F5LiBUaGVyZSBpcyBhbHNvIHRoZSBEU0Etc3BlY2lmaWMgKGFuZCBvbGQtc3R5 bGUsIGJlZm9yZSBwaHlsaW5rKQo+PiB3YXkgb2YgZGVzY3JpYmluZyB0aGUgc2FtZSB0aGluZywg d2hpY2ggcmVsaWVzIG9uIHRoZSBub24tT0YtYmFzZWQKPj4gZHMtPnNsYXZlX21paV9idXMsIHdp dGggYmluZGluZ3MgdGhhdCBsb29rIGxpa2UgdGhpczoKPj4KPj4gZXRoZXJuZXQtc3dpdGNoIHsK Pj4gwqDCoMKgwqBldGhlcm5ldC1wb3J0cyB7Cj4+IMKgwqDCoMKgwqDCoMKgIHBvcnRAMCB7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gPDA+Owo+PiDCoMKgwqDCoMKgwqDCoCB9Owo+ PiDCoMKgwqDCoH07Cj4+IH07Cj4+Cj4+IEJ1dCwgSSB3b3VsZCBzYXkgdGhhdCB0aGUgZmlyc3Qg dmFyaWFudCBvZiB0aGUgYmluZGluZyBpcyBwcmVmZXJhYmxlLAo+PiBzaW5jZSBpdCBpcyBtb3Jl IHVuaXZlcnNhbC4KPj4KPj4gTm90IGFsbCBzd2l0Y2hlcyB0aGF0IGhhdmUgYW4gaW50ZXJuYWwg TURJTyBidXMgc3VwcG9ydCB0aGUgc2Vjb25kCj4+IHZhcmlhbnQgb2YgdGhlIGR0LWJpbmRpbmcg KHRoZSBvbmVzIHRoYXQgZG9uJ3QgaGF2ZSBkcy0+c2xhdmVfbWlpX2J1cyBkb24ndCkuCj4+IEJ1 dCwgdGhleSBzdXBwb3J0IHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gdGhyb3VnaCB0aGUgZmlyc3Qg Zm9ybS4KPiAKPiBVbmRlcnN0b29kLgo+IAo+Pgo+PiBGdXJ0aGVybW9yZSwgb24gdGhlIFUtQm9v dCBtYWlsaW5nIGxpc3RzLCBJIGhhdmUgYmVlbiBzdWdnZXN0aW5nIHRoYXQKPj4gdGhlIERNX0RT QSBkcml2ZXIgZm9yIG12ODhlNnh4eCBzaG91bGQgbm90IGJvdGhlciB0byBzdXBwb3J0IHRoZSBz ZWNvbmQKPj4gdmVyc2lvbiBvZiB0aGUgYmluZGluZywgc2luY2UgaXQgaXMganVzdCBtb3JlIGNv ZGUgdG8gYmUgYWRkZWQgdG8gaGFuZGxlCj4+IGEgY2FzZSB3aGljaCBjYW4gYWxyZWFkeSBiZSBk ZXNjcmliZWQgd2l0aCB0aGUgbW9yZSB1bml2ZXJzYWwgZmlyc3QgYmluZGluZy4KPiAKPiBUaGF0 IG1ha2VzIHNlbnNlLgo+IAo+Pgo+Pj4gSSd2ZSBjaGVja2VkIG1zY2MsdnNjNzUxNC1zd2l0Y2gu IFdoYXQgSSBzZWUgaXMsIHRoZSBhcmNoaXRlY3R1cmUgaXMgYW4gU29DCj4+PiB3aXRoIGEgc3dp dGNoIGNvbXBvbmVudC4gU2luY2UgdGhlIHN3aXRjaCBjb21wb25lbnQgaXMgbm90IGRlc2lnbmVk IHRvIGJlIGEKPj4+IHN0YW5kYWxvbmUgSUMsIHRoZSBNRElPIGJ1cyBvZiB0aGUgU29DIGNvdWxk IGp1c3QgYXMgd2VsbCBiZSB1c2VkIHdpdGhvdXQKPj4+IHRoZSBuZWVkIHRvIGRlc2lnbiBhbiBN RElPIGNvbnRyb2xsZXIgc3BlY2lmaWMgdG8gdGhlIHN3aXRjaCBjb21wb25lbnQsIHRvCj4+PiBt YW5hZ2UgdGhlIFBIWXMuIFNvIEkgc2VlIHRoaXMgc3dpdGNoIGFzIGp1c3QgYW5vdGhlciBjYXNl IG9mIGEgc3dpdGNoCj4+PiB3aXRob3V0IGFuIGludGVybmFsIE1ESU8gYnVzLgo+Pgo+PiBXZWxs LCB3ZSBuZWVkIHRvIGNsYXJpZnkgdGhlIHNlbWFudGljcyBvZiBhbiAiaW50ZXJuYWwiIE1ESU8g YnVzLgo+Pgo+PiBJIHdvdWxkIHNheSBtb3N0IGRpc2NyZXRlIGNoaXBzIHdpdGggRFNBIHN3aXRj aGVzIGhhdmUgdGhpcyBTb0Mtc3R5bGUKPj4gYXJjaGl0ZWN0dXJlLCB3aXRoIHNlcGFyYXRlIGFk ZHJlc3Mgc3BhY2VzIGZvciB0aGUgc3dpdGNoaW5nIElQLCBNRElPCj4+IGJ1cywgR1BJTyBjb250 cm9sbGVyLCBJUlEgY29udHJvbGxlcnMsIHRlbXBlcmF0dXJlIHNlbnNvcnMgZXRjIChzZWUKPj4g Im1zY2MsdnNjNzUxMi1zd2l0Y2giIHdoaWNoIGlzIGxpa2UgIm1zY2MsdnNjNzUxNC1zd2l0Y2gi LCBidXQgaXQgaXMKPj4gY29udHJvbGxlZCBvdmVyIFNQSU8gaW5zdGVhZCBvZiBNTUlPKS4gVGhl IGR0LWJpbmRpbmdzIG9mIG1vc3QgRFNBCj4+IHN3aXRjaGVzIG1heSBvciBtYXkgbm90IHJlZmxl Y3QgdGhhdCBkaXNjcmV0ZSBjaGlwIG9yZ2FuaXphdGlvbi4gVGhvc2UKPj4gZHJpdmVycyBhbmQg ZHQtYmluZGluZ3MgY291bGQgYmUgcmVpbWFnaW5lZCBzbyB0aGF0IERTQSBpcyBub3QgdGhlCj4+ IHRvcC1sZXZlbCBkcml2ZXIuCj4+Cj4+IFlldCwgSSB3b3VsZCBhcmd1ZSB0aGF0IGl0J3Mgd3Jv bmcgdG8gc2F5IHRoYXQgYmVjYXVzZSBpdCBpc24ndCBhbiBPRgo+PiBjaGlsZCBvZiB0aGUgc3dp dGNoLCB0aGUgTURJTyBidXMgb2YgdGhlIFZTQzc1MTQgaXMgbm90IGludGVybmFsIGluIHRoZQo+ PiBzYW1lIHdheSB0aGF0IHRoZSBSZWFsdGVrIE1ESU8gYnVzIGlzIGludGVybmFsLiBUaGUgc3dp dGNoIHBvcnRzIGFyZQo+PiBjb25uZWN0ZWQgdG8gaW50ZXJuYWwgUEhZcyBvbiB0aGlzIE1ESU8g YnVzLCBhbmQgdGhlcmUgYXJlbid0IFBIWXMgb24KPj4gdGhpcyBNRElPIGJ1cyB0aGF0IGdvIHRv IG90aGVyIE1BQ3MgdGhhbiB0aGUgc3dpdGNoIHBvcnRzLiBTbywgdGhlCj4+IFZTQzc1MTQgTURJ TyBidXMgY291bGQgbGVnYWxseSBiZSBjYWxsZWQgdGhlIGludGVybmFsIE1ESU8gYnVzIG9mIHRo ZQo+PiBzd2l0Y2gsIGV2ZW4gaWYgdGhlcmUgaXNuJ3QgYSBwYXJlbnQvY2hpbGQgcmVsYXRpb25z aGlwIGJldHdlZW4gdGhlbS4KPiAKPiBHb29kIHBvaW50LCBJIGhhZCBiZWxpZXZlZCB0aGF0IHRo ZSBtYW5hZ2VtZW50IGludGVyZmFjZSBvZiBhbGwgb2YgdGhlIFBIWXMKPiBiZWluZyBjb25uZWN0 ZWQgdG8gdGhlIE1ESU8gYnVzIC0gd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhlIHN3aXRjaGluZyBJ UAo+IGFkZHJlc3Mgc3BhY2UgLSB3b3VsZCBiZSBlbm91Z2ggdG8gY2xhc3NpZnkgdGhlIE1ESU8g YnVzIGFzIG5vbi1pbnRlcm5hbC4KPiAKPiBIb3dldmVyLCB0aGUgYXJjaGl0ZWN0dXJlIG9mIHNl cGFyYXRlIGFkZHJlc3Mgc3BhY2VzIGZvciB0aGUgc3dpdGNoaW5nIElQCj4gYW5kIE1ESU8gYnVz IGlzIHVzZWQgb24gYW55IHR5cGUgb2YgSUMgd2l0aCB0aGUgc3dpdGNoaW5nIGZlYXR1cmUuCj4g VGhlcmVmb3JlLCB0aGlzIGNoYXJhY3RlcmlzdGljIGNhbm5vdCBiZSB1c2VkIHRvIGRpc3Rpbmd1 aXNoIHdoZXRoZXIgYW4KPiBNRElPIGJ1cyBpcyBvZiBhIHN3aXRjaC4KPiAKPiBXaGF0IHdlIGNh biByZWZlciB0byB0byBjbGFzc2lmeSBhbiBpbnRlcm5hbCBNRElPIGJ1cyBpcyBieSBjb25maXJt aW5nIHRoZQo+IGRhdGEgaW50ZXJmYWNlIG9mIGFsbCBQSFlzIG9uIHRoZSBNRElPIGJ1cyBpcyBj b25uZWN0ZWQgdG8gdGhlIHN3aXRjaCBwb3J0Cj4gTUFDcywgYXMgeW91IGhhdmUgcG9pbnRlZCBv dXQgaGVyZS4KPiAKPiBCZWNhdXNlIHRoZSBhcmNoaXRlY3R1cmUgb2Ygc2VwYXJhdGUgYWRkcmVz cyBzcGFjZXMgZm9yIHRoZSBzd2l0Y2hpbmcgSVAKPiBhbmQgTURJTyBidXMgaXMgdXNlZCBvbiBh bnkgdHlwZSBvZiBJQyB3aXRoIHRoZSBzd2l0Y2hpbmcgZmVhdHVyZSwgaXQgY2FuCj4gZGlmZmVy IGJ5IGRyaXZlciBob3cgdGhlIE1ESU8gYnVzIGlzIGRlZmluZWQgb24gdGhlIGR0LWJpbmRpbmdz LiBTbyB3ZQo+IGNhbid0IG1ha2UgdW5pdmVyc2FsIGJpbmRpbmdzIG9mIGFuIGludGVybmFsIE1E SU8gYnVzIG9mIGEgc3dpdGNoIHRoYXQKPiBhcHBseSB0byBldmVyeSBzd2l0Y2guCj4gCj4gU28s IHRoZSBjb3JyZWN0IGFwcHJvYWNoIGlzIHRvIGRlZmluZSB0aGluZ3MgdW5kZXIgdGhlIHN3aXRj aC1zcGVjaWZpYwo+IHNjaGVtYSB3aGljaCBpcyBhZmZpbmUgdG8gdGhlIGRyaXZlciwgYXMgeW91 IGhhdmUgYWxyZWFkeSBwb2ludGVkIG91dC4KPiBXaGljaCBzY2hlbWFzIHRvIGRlZmluZSB3aGF0 IHdpbGwgb2YgY291cnNlIGRpZmZlci4KPiAKPj4KPj4gU28sIHdoYXQgSSdtIGRpc2FncmVlaW5n IHdpdGggaXMgeW91ciBpbnNpc3RlbmNlIHRvIGNvcnJlbGF0ZSB5b3VyCj4+IHByb2JsZW0gd2l0 aCBpbnRlcm5hbCBNRElPIGJ1c2VzLiBUaGUgd2F5IGluIHdoaWNoIHRoZSBwcm9ibGVtIGlzCj4+ IGZvcm11bGF0ZWQgZGljdGF0ZXMgd2hhdCBwcm9ibGVtIGdldHMgc29sdmVkLCBhbmQgdGhlIHBy b2JsZW0gaXMgbm90Cj4+IGNvcnJlY3RseSBmb3JtdWxhdGVkIGhlcmUuIEl0IGlzIHB1cmVseSBh Ym91dCBkcy0+c2xhdmVfbWlpX2J1cyBhbmQgaXRzCj4+IGRyaXZlci1kZWZpbmVkIE9GIHByZXNl bmNlL2Fic2VuY2UuIEl0IGlzIGEgRFNBLXNwZWNpZmljIGJpbmRpbmcgYXNwZWN0Cj4+IHdoaWNo IG5vdCBldmVuIGFsbCBEU0Egc3dpdGNoZXMgaW5oZXJpdCwgbGV0IGFsb25lIGJpbmRpbmdzIG91 dHNpZGUgRFNBLgo+IAo+IEdvdCBpdC4KPiAKPj4KPj4+PiBGb3Igc3dpdGNoZXMgaW4gdGhlIHNl Y29uZCBjYXRlZ29yeSwgaXQgYWxsIGRlcGVuZHMgb24gdGhlIHdheSBpbiB3aGljaAo+Pj4+IHRo ZSBkcml2ZXIgZmluZHMgdGhlIG5vZGUgZm9yIG9mX21kaW9idXNfcmVnaXN0ZXIoKS4KPj4+Cj4+ PiBPaywgc28gc29tZSBkcml2ZXJzIHJlcXVpcmUgdGhlIG1kaW8gY2hpbGQgbm9kZS4gU29tZSBy ZXF1aXJlIGl0IGFuZCB0aGUKPj4+IGNvbXBhdGlibGUgcHJvcGVydHkgd2l0aCBhIGNlcnRhaW4g c3RyaW5nLgo+Pj4KPj4+IE1ESU8gY29udHJvbGxlZCBSZWFsdGVrIHN3aXRjaGVzIGRvIG5vdCBu ZWVkIHRoZSBjb21wYXRpYmxlIHByb3BlcnR5IHVuZGVyCj4+PiB0aGUgbWRpbyBjaGlsZCBub2Rl LiBUaGVyZSdyZSBubyBjb21wYXRpYmxlIHN0cmluZ3MgdG8gbWFrZSBhIGRpc3RpbmN0aW9uCj4+ PiBiZXR3ZWVuIHRoZSBTTUkgYW5kIE1ESU8gY29udHJvbGxlZCBzd2l0Y2hlcyBzbyB0aGUgYmVz dCB3ZSBjYW4gZG8gaXMga2VlcAo+Pj4gaXQgdGhlIHdheSBpdCBjdXJyZW50bHkgaXMuIERlZmlu ZSByZWFsdGVrLHNtaS1tZGlvIGFzIGEgY29tcGF0aWJsZSBzdHJpbmcKPj4+IGJ1dCBrZWVwIHRo ZSBjb21wYXRpYmxlIHByb3BlcnR5IG9wdGlvbmFsLiBJIGRpZCBzdGF0ZSB0aGlzIG9uIG15IHJl cGx5IHRvCj4+PiBwYXRjaCAzIGJ1dCBzdGlsbCByZWNlaXZlZCByZXZpZXdlZC1ieXMgcmVnYXJk bGVzcy4KPj4KPj4gWWVzLCBiZWNhdXNlLi4uLiBbMV0KPj4KPj4+PiBIYXZpbmcgaWRlbnRpZmll ZCBhbGwgc3dpdGNoZXMgd2hpY2ggbWFrZSBzb21lIHNvcnQgb2YgdXNlIG9mCj4+Pj4gZHMtPnNs YXZlX21paV9idXMsIHRoZSBydWxlIHdvdWxkIHNvdW5kIGxpa2UgdGhpczoKPj4+Pgo+Pj4+IDEu IElmIHRoZSBzY2hlbWEgaXMgdGhhdCBvZiAobmVlZCB0byByZXBsYWNlIHRoaXMgd2l0aCBjb21w YXRpYmxlCj4+Pj4gwqDCoMKgwqAgc3RyaW5ncywgSSdtIHRvbyBsYXp5IGZvciB0aGF0KToKPj4+ Pgo+Pj4+IMKgwqDCoMKgIC0ga3N6X3N3aXRjaF9vcHMKPj4+PiDCoMKgwqDCoCAtIG12ODhlNjA2 MF9zd2l0Y2hfb3BzCj4+Pj4gwqDCoMKgwqAgLSBsYW45MzAzX3N3aXRjaF9vcHMKPj4+PiDCoMKg wqDCoCAtIHJ0bDgzNjVtYl9zd2l0Y2hfb3BzX21kaW8KPj4+PiDCoMKgwqDCoCAtIGI1M19zd2l0 Y2hfb3BzCj4+Pj4gwqDCoMKgwqAgLSB2c2M3M3h4X2RzX29wcwo+Pj4+IMKgwqDCoMKgIC0gbXY4 OGU2eHh4Cj4+Pj4gwqDCoMKgwqAgLSBxY2E4awo+Pj4+Cj4+Pj4gwqDCoMKgwqAgYW5kIHdlIGhh dmUgYW4gIm1kaW8iIGNoaWxkLCB0aGVuIHBoeWxpbmsgYmluZGluZ3MgYXJlIG1hbmRhdG9yeSBv biB1c2VyIHBvcnRzLgo+Pj4+Cj4+Pj4gMi4gSWYgdGhlIHNjaGVtYSBpcyB0aGF0IG9mIGdzd2lw X21kaW8gYW5kIHdlIGhhdmUgYSBjaGlsZCBub2RlIG9mICJsYW50aXEseHJ4MjAwLW1kaW8iLAo+ Pj4+IMKgwqDCoMKgIHRoZW4gcGh5bGluayBiaW5kaW5ncyBhcmUgbWFuZGF0b3J5IG9uIHVzZXIg cG9ydHMgKEkgaGF2ZW4ndCBjaGVja2VkLAo+Pj4+IMKgwqDCoMKgIGJ1dCBpdCBtaWdodCBiZSB0 aGF0IHRoZSAibGFudGlxLHhyeDIwMC1tZGlvIiBjaGlsZCBpcyBtYW5kYXRvcnksIGFuZAo+Pj4+ IMKgwqDCoMKgIGluIHRoYXQgY2FzZSwgdGhpcyBnb2VzIHRvIGNhdGVnb3J5IDQgYmVsb3cpLgo+ Pj4+Cj4+Pj4gMy4gSWYgdGhlIHNjaGVtYSBpcyB0aGF0IG9mIHJlYWx0ZWtfc21pX3NldHVwX21k aW8gYW5kIHdlIGhhdmUgYSBjaGlsZCBub2RlIG9mCj4+Pj4gwqDCoMKgwqAgInJlYWx0ZWssc21p LW1kaW8iLCB0aGVuIHBoeWxpbmsgYmluZGluZ3MgYXJlIG1hbmRhdG9yeSBvbiB1c2VyIHBvcnRz Cj4+Pj4gwqDCoMKgwqAgKHNhbWUgY29tbWVudCBhYm91dCB0aGUgY2hpbGQgTURJTyBub3RlIG1h eWJlIGJlaW5nIG1hbmRhdG9yeSkuCj4+Pj4KPj4+PiA0LiBJZiB0aGUgc3dpdGNoIGRpZG4ndCBh cHBlYXIgaW4gdGhlIGFib3ZlIHNldCBvZiBydWxlcywgdGhlbiBwaHlsaW5rCj4+Pj4gwqDCoMKg wqAgYmluZGluZ3MgYXJlIHVuY29uZGl0aW9uYWxseSBtYW5kYXRvcnkgb24gdXNlciBwb3J0cy4K Pj4+Pgo+Pj4+IFdlIGRvbid0IGNhcmUgYXQgYWxsIHdoYXQgdGhlIGRyaXZlcnMgdGhhdCBkb24n dCB1c2UgZHMtPnNsYXZlX21paV9idXMKPj4+PiBkbyB3aXRoIHRoZSAibWRpbyIgY2hpbGQgbm9k ZS4gSXQgZG9lc24ndCBjaGFuZ2UgdGhlIGZhY3QgdGhhdCB0aGVpcgo+Pj4+IHVzZXIgcG9ydHMg Y2FuJ3QgaGF2ZSBtaXNzaW5nIHBoeWxpbmsgYmluZGluZ3MuCj4+Pgo+Pj4gSSBwYXJ0aWFsbHkg YWdyZWUuIEkgc2F5LCBmb3IgdGhlIHN3aXRjaGVzIHdpdGhvdXQgYW4gaW50ZXJuYWwgTURJTyBi dXMsCj4+PiBpbnZhbGlkYXRlIHRoZSBtZGlvIGNoaWxkIG5vZGUsIGFuZCBlbmZvcmNlIHRoZSBw aHlsaW5rIGJpbmRpbmdzIG9uIHRoZQo+Pj4gdXNlciBwb3J0cy4gU3VjaCBhcyBtc2NjLHZzYzc1 MTQtc3dpdGNoIGFuZCBueHAsc2phMTEwNXguIEZvciBueHAsc2phMTExMHgsCj4+PiBpbnZhbGlk YXRlIHRoZSBtZGlvIGNoaWxkIG5vZGUsIGFuZCBlbmZvcmNlIHRoZSBwaHlsaW5rIGJpbmRpbmdz IG9uIHRoZQo+Pj4gdXNlciBwb3J0cyBpZiB0aGUgbWRpb3MgcHJvcGVydHkgaXMgdXNlZC4KPj4K Pj4gV2h5ICJpZiB0aGUgbWRpb3MgcHJvcGVydHkgaXMgdXNlZCIgYW5kIG5vdCAiYWx3YXlzIj8g Oi0vCj4+Cj4+IFRvIHNheSBpdCBhZ2FpbjogYmVjYXVzZSB0aGUgc2phMTEwNSBkcml2ZXIgZG9l cyBub3QgdXNlIGRzLT5zbGF2ZV9taWlfYnVzLAo+PiBpdCBjYW4gbWFrZSBubyBzZW5zZSBvZiBk dC1iaW5kaW5ncyBvbiB1c2VyIHBvcnRzIHdoaWNoIGxhY2sgcGh5bGluayBwcm9wZXJ0aWVzLgo+ PiBTbyB0aGV5IGFyZSAqYWx3YXlzKiBuZWVkZWQuIFRoZSAibWRpb3MiIHByb3BlcnR5IGNoYW5n ZXMgbm90aGluZyBpbiB0aGF0IHJlZ2FyZC4KPiAKPiBHb3QgaXQuCj4gCj4+Cj4+Pgo+Pj4gSSdk IGxpa2UgdG8gYWRkIHRoaXMgYmVmb3JlIEkgY29uY2x1ZGUuIFRoZSB3YXkgSSB1bmRlcnN0YW5k IGR0LWJpbmRpbmdzIGlzCj4+PiB0aGF0IGEgYmluZGluZyBkb2VzIG5vdCBoYXZlIHRvIHRyYW5z bGF0ZSB0byBhbiBhY3Rpb24gb24gdGhlIGRyaXZlci4KPj4+IERvY3VtZW50aW5nIGJpbmRpbmdz IGZvciB0aGUgc29sZSBwdXJwb3NlIG9mIGRlc2NyaWJpbmcgaGFyZHdhcmUgaXMgYSB2YWxpZAo+ Pj4gY2FzZS4KPj4KPj4gWzFdIC4uLnRoaXMuIFRoZSBTTUktY29udHJvbGxlZCBhbmQgTURJTy1j b250cm9sbGVkIFJlYWx0ZWsgc3dpdGNoZXMgYXJlCj4+IG90aGVyd2lzZSB0aGUgc2FtZSwgcmln aHQ/IFNvIHdoeSB3b3VsZCB0aGV5IGhhdmUgZGlmZmVyZW50IGR0LWJpbmRpbmdzPwo+IAo+IEhv bmVzdGx5LCBJJ20gd29uZGVyaW5nIHRoZSBhbnN3ZXIgdG8gdGhpcyBhcyB3ZWxsLiBGb3Igc29t ZSByZWFzb24sIHdoZW4KPiBwcm9iaW5nIHRoZSBTTUkgY29udHJvbGxlZCBSZWFsdGVrIHN3aXRj aGVzLCBpbnN0ZWFkIG9mIGp1c3QgbGV0dGluZwo+IGRzYV9zd2l0Y2hfc2V0dXAoKSBwb3B1bGF0 ZSBkcy0+c2xhdmVfbWlpX2J1cywgb24gcmVhbHRla19zbWlfc2V0dXBfbWRpbygpCj4gb24gcmVh bHRlay1zbWkuYzoKPiAKPiAtIHByaXYtPnNsYXZlX21paV9idXMgaXMgYWxsb2NhdGVkLgo+IC0g bWRpb19ucCA9IG9mX2dldF9jb21wYXRpYmxlX2NoaWxkKHByaXYtPmRldi0+b2Zfbm9kZSwgInJl YWx0ZWssc21pLW1kaW8iKTsKPiAtIHByaXYtPnNsYXZlX21paV9idXMtPmRldi5vZl9ub2RlID0g bWRpb19ucDsKPiAtIGRzLT5zbGF2ZV9taWlfYnVzID0gcHJpdi0+c2xhdmVfbWlpX2J1czsKPiAK Pj4KPj4+IEZvciBleGFtcGxlLCBjdXJyZW50bHksIHRoZSBNVDc1M1ggRFNBIHN1YmRyaXZlciB3 b24ndCwgaW4gYW55IHdheSwKPj4+IHJlZ2lzdGVyIHRoZSBidXMgT0YtYmFzZWQuIFN0aWxsLCB0 aGUgbWRpbyBwcm9wZXJ0eSBmb3IgdGhlIHN3aXRjaGVzIHdoaWNoCj4+PiB0aGlzIGRyaXZlciBj b250cm9scyBjYW4gYmUgZG9jdW1lbnRlZCBiZWNhdXNlIHRoZSBpbnRlcm5hbCBtZGlvIGJ1cyBk b2VzCj4+PiBleGlzdCBvbiB0aGUgaGFyZHdhcmUuCj4+Cj4+IEl0IGNhbiwgYnV0IHRoZSB3aG9s ZSBwb2ludCBpczogaWYgZHMtPnNsYXZlX21paV9idXMgZ2FpbnMgYW4gT0YgcHJlc2VuY2UsCj4+ IHRoZW4gaXQgbG9zZXMgaXRzIGNvcmUgZnVuY3Rpb25hbGl0eSAodGhhdCB1c2VyIHBvcnRzIGNh biBsYWNrIHBoeWxpbmsKPj4gYmluZGluZ3MpLiBUaGlzIGlzIHRoZSBlbnRpcmUgZXNzZW5jZSBv ZiB3aGF0IHRoaXMgZGlzY3Vzc2lvbiBzaG91bGQgY2FwdHVyZS4KPiAKPiBVbmRlcnN0b29kLgo+ IAo+Pgo+Pj4KPj4+IFNvIEknZCBsaWtlIHRvIGtlZXAgdGhlIG1kaW8gcHJvcGVydHkgdmFsaWQg Zm9yIHRoZSBzd2l0Y2hlcyB3aGljaCB0aGVpcgo+Pj4gZHJpdmVycyBjYW4gb25seSByZWdpc3Rl ciBub24tT0YtYmFzZWQgZHMtPnNsYXZlX21paV9idXMuCj4+Pgo+Pj4gSW4gY29uY2x1c2lvbiwg d2hhdCB0byBkbzoKPj4+Cj4+PiAtIERlZmluZSAidGhlIG1kaW8gcHJvcGVydHkiIGFuZCAidGhl IGVuZm9yY2VtZW50IG9mIHBoeWxpbmsgYmluZGluZ3MgZm9yCj4+PiDCoMKgIHVzZXIgcG9ydHMg aWYgbWRpbyBwcm9wZXJ0eSBpcyB1c2VkIiBvbiBldGhlcm5ldC1zd2l0Y2gueWFtbC4KPj4+IMKg wqDCoMKgIC0gSW52YWxpZGF0ZSB0aGUgbWRpbyBwcm9wZXJ0eSBvbiB0aGUgc3dpdGNoZXMgd2l0 aG91dCBhbiBpbnRlcm5hbCBNRElPCj4+PiDCoMKgwqDCoMKgwqAgYnVzLgo+Pj4gLSBEZWZpbmUg InRoZSBlbmZvcmNlbWVudCBvZiBwaHlsaW5rIGJpbmRpbmdzIGZvciB1c2VyIHBvcnRzIiBvbiB0 aGUKPj4+IMKgwqAgc3dpdGNoZXMgd2l0aG91dCBhbiBpbnRlcm5hbCBNRElPIGJ1cy4KPj4+IC0g UmVxdWlyZSAidGhlIG1kaW8gcHJvcGVydHkiIGZvciB0aGUgc3dpdGNoZXMgd2hpY2ggdGhlaXIg ZHJpdmVyIHJlcXVpcmVzCj4+PiDCoMKgIGl0IHRvIGZ1bmN0aW9uLgo+Pj4gLSBSZXF1aXJlICJ0 aGUgbWRpbyBwcm9wZXJ0eSIgYW5kICJ0aGUgY29tcGF0aWJsZSBzdHJpbmcgb2YgdGhlIG1kaW8K Pj4+IMKgwqAgcHJvcGVydHkiIGZvciB0aGUgc3dpdGNoZXMgd2hpY2ggdGhlaXIgZHJpdmVyIHJl cXVpcmVzIHRoZW0gdG8gZnVuY3Rpb24uCj4+Pgo+Pj4gVGhlcmUncyBubyAxOjEgc3dpdGNoIHRv IHN3aXRjaCBjb21wYXRpYmxlIHN0cmluZyByZWxhdGlvbiwgYXMgc2VlbiBvbgo+Pj4gUmVhbHRl ayBzd2l0Y2hlcyBzbyBJJ2xsIGhhdmUgdG8gZmlndXJlIHRoYXQgb3V0IGFzIEkgZ28uCj4+Pgo+ Pj4gSSdtIG9wZW4gdG8geW91ciBjb21tZW50cyB0byB0aGlzIG1haWwgYnV0IHRoZSBnYXAgYmV0 d2VlbiBkaXNjdXNzaW9uIGFuZAo+Pj4gZW5kIHJlc3VsdCBoYXMgd2lkZW5lZCBhIGxvdCBvbiB0 aGlzIHBhdGNoIHNlcmllcyBzbyBJJ2QgbGlrZSB0byBmaXJzdAo+Pj4gb2ZmbG9hZCB0aGlzIGNv bnZlcnNhdGlvbiBieSBwcmVwYXJpbmcgdjIgd2l0aCB3aGF0IEkgc2FpZCBoZXJlIGFuZCBkaXNj dXNzCj4+PiBmdXJ0aGVyIHRoZXJlLgo+Pgo+PiBIb25lc3RseSwgZnJvbSBteSBzaWRlLCBhIHZl cmJhbCBjb21tZW50IGluIHRoZSBkdC1iaW5kaW5ncyBkb2N1bWVudAo+PiB3b3VsZCBoYXZlIGJl ZW4ganVzdCBmaW5lLCBhcyBsb25nIGFzIGl0IGlzIHRydXRoZnVsIHRvIHRoZSByZWFsaXR5IGl0 Cj4+IGRlc2NyaWJlcy4KPj4KPj4gWW91IHdhbnRlZCB0byBvdmVyLWNvbXBsaWNhdGUgdGhpbmdz IHdpdGggYW4gYWN0dWFsIHNjaGVtYSB2YWxpZGF0aW9uLAo+PiBhbmQgdGhlbiBob29raW5nIG9u dG8gdGhpbmdzIHRoYXQgYXJlIHVucmVsYXRlZCB3aXRoIHRoZSBwaGVub21lbm9uIHRoYXQKPj4g bmVlZHMgdG8gYmUgY2FwdHVyZWQgKGxpa2UgdGhlICJtZGlvIiBjaGlsZCBub2RlLCB3aXRob3V0 IGV4cGxpY2l0Cj4+IHJlZ2FyZCB0byB3aGV0aGVyIGl0IGlzIHRoZSBkcy0+c2xhdmVfbWlpX2J1 cyBvciBub3QpLgo+Pgo+PiBJdCdzIG5vdCBhYm91dCBpbnRlcm5hbCBNRElPIGJ1c2VzIGluIGdl bmVyYWwsIGl0J3MgYWJvdXQgd2hldGhlciB0aG9zZQo+PiBpbnRlcm5hbCBNRElPIGJ1c2VzIGFy ZSB1c2VkIGluIGRzLT5zbGF2ZV9taWlfYnVzLCBhbmQgdGhlaXIgT0YKPj4gcHJlc2VuY2UvYWJz ZW5jZSEgVGhhdCBpcyBhYnNvbHV0ZWx5IGRyaXZlci1zcGVjaWZpYyBhbmQgSSB3b3VsZCBvbmx5 Cj4+IGV4cGVjdCBhIGRyaXZlci1zcGVjaWZpYyB3YXkgb2YgZW5mb3JjaW5nIGl0LiBJIGRpZG4n dCBzYXkgaXQncyBub3QKPj4gaGFyZCwgYW5kIEkgZGlkbid0IGFzayB0byBlbmZvcmNlIGl0LCBl aXRoZXIuCj4gCj4gT0ssIEkgYmVsaWV2ZSB3ZSdyZSBvbiB0aGUgc2FtZSBwYWdlIG5vdywgSSB3 aWxsIHN0YXJ0IHdvcmtpbmcgb24gcHJvcGVybHkKPiBlbmZvcmNpbmcgdGhpcy4KCkknbSB3cml0 aW5nIGJlbG93IGFzIGEgbWl4IG9mIHBhdGNoIGxvZyBhbmQgZGlzY3Vzc2lvbi4KClBoeWxpbmsg YmluZGluZ3MgYXJlIHJlcXVpcmVkIGZvciBwb3J0cyB0aGF0IGFyZSBjb250cm9sbGVkIGJ5IE9G LWJhc2VkCmJ1c2VzLiBEU0EsIGxpa2UgYW55IG90aGVyIGRyaXZlciB1dGlsaXNpbmcgdGhlIExp bnV4IE1ESU8gaW5mcmFzdHJ1Y3R1cmUsCmNhbiByZWdpc3RlciBhIGJ1cy4gSWYgSSB1bmRlcnN0 YW5kIGNvcnJlY3RseSwgbm9uLU9GLWJhc2VkIHJlZ2lzdHJhdGlvbiBvZgpPcGVuRmlybXdhcmUg TURJTyBidXNlcyBpcyBhIGZlYXR1cmUgc3BlY2lmaWMgdG8gRFNBIHdoaWNoIGNlcnRhaW4gRFNB CnN1YmRyaXZlcnMgbWFrZSB1c2Ugb2YuCgpUaGVyZSdzIG5vIHdheSB0byBkaXN0aW5ndWlzaCB3 aGljaCBwb3J0IGlzIGNvbnRyb2xsZWQgYnkgd2hpY2ggZHJpdmVyJ3MKTURJTyBidXMgb24gdGhl IGJpbmRpbmdzIHNvIHdlIGNhbid0IGVuZm9yY2UgcGh5bGluayBiaW5kaW5ncyBmb3IgYWxsIHVz ZXIKcG9ydHMgYXMgdGhpcyB3b3VsZCBhbHNvIGVuZm9yY2UgcGh5bGluayBiaW5kaW5ncyBvbiB1 c2VyIHBvcnRzIGNvbnRyb2xsZWQKYnkgYSBub24tT0YtYmFzZWQgYnVzLgoKQnV0IHdlIGNhbiBr bm93IHdoZW4gRFNBIHdvbid0IGNyZWF0ZSBhIG5vbi1PRi1iYXNlZCBidXMuIFRoYXQgbGVhdmVz IHVzCndpdGggb25seSBPRi1iYXNlZCBidXNlcyBpbiB3aGljaCBjYXNlIHdlIGNhbiBlbmZvcmNl IHBoeWxpbmsgYmluZGluZ3MgZm9yCmFsbCB1c2VyIHBvcnRzLiBTbyB3ZSBuZWVkIHRvIGNoZWNr IGVhY2ggRFNBIHN1YmRyaXZlciB0byBzZWUgd2hlbiBhbGwKYnVzZXMgd2lsbCBiZSBPRi1iYXNl ZC4KCkEgRFNBIHN1YmRyaXZlciBjYW4gZWl0aGVyIGxldCB0aGUgbWFpbiBEU0EgZHJpdmVyIHJl Z2lzdGVyIHRoZSBidXMgb3IgaXQKY2FuIHJlZ2lzdGVyIGEgYnVzIG9yIGJ1c2VzIGl0c2VsZi4K ClRoZSBhdHRyaWJ1dGVzIG9mIGEgRFNBIHN1YmRyaXZlciB0aGF0IGxldHMgdGhlIERTQSBkcml2 ZXIgcmVnaXN0ZXIgdGhlCmJ1czoKLSBkcy0+b3BzLT5waHlfcmVhZCgpIGFuZCBkcy0+b3BzLT5w aHlfd3JpdGUoKSBhcmUgcHJlc2VudC4KLSBkcy0+c2xhdmVfbWlpX2J1cyBpcyBub3QgcG9wdWxh dGVkIGJ5IHRoZSBEU0Egc3ViZHJpdmVyLgotIFRoZSBidXMgaXMgcmVnaXN0ZXJlZCBub24tT0Yt YmFzZWQgb3IgT0YtYmFzZWQuIFJlZ2lzdGVyZWQgT0YtYmFzZWQgaWYKICAgIm1kaW8iIGNoaWxk IG5vZGUgaXMgZGVmaW5lZC4KCkhvdyBlYWNoIERTQSBzdWJkcml2ZXIgYmVoYXZlcyBpcyBkb2N1 bWVudGVkIGJlbG93LgoKLS0tCgotIG1zY2MsdnNjNzUxNC1zd2l0Y2gueWFtbAogICAtIG1zY2Ms dnNjNzUxNC1zd2l0Y2gKICAgLSBtc2NjLHZzYzc1MTItc3dpdGNoCgpkcml2ZXJzL25ldC9ldGhl cm5ldC9tc2NjL29jZWxvdF92c2M3NTE0LmM6Ci0gTm90IGEgRFNBIHN1YmRyaXZlci4KLSBNRElP X01TQ0NfTUlJTSwgYSBkcml2ZXIgdXRpbGlzaW5nIHRoZSBMaW51eCBNRElPIGluZnJhc3RydWN0 dXJlIGlzIHVzZWQKICAgdG8gcmVnaXN0ZXIgYSBidXMuCgpkcml2ZXJzL25ldC9kc2Evb2NlbG90 L29jZWxvdF9leHQuYzoKLSBUaGUgRFNBIHN1YmRyaXZlciB3b24ndCBsZXQgdGhlIERTQSBkcml2 ZXIgcmVnaXN0ZXIgdGhlIGJ1cy4KICAgLSBObyBkcy0+b3BzLT5waHlfcmVhZCgpIG9yIGRzLT5v cHMtPnBoeV93cml0ZSgpLgotIE1ESU9fTVNDQ19NSUlNLCBhIGRyaXZlciB1dGlsaXNpbmcgdGhl IExpbnV4IE1ESU8gaW5mcmFzdHJ1Y3R1cmUgaXMgdXNlZAogICB0byByZWdpc3RlciBhIGJ1cy4K CldoYXQgdG8gZG86Ci0gRm9yIG1zY2MsdnNjNzUxNC1zd2l0Y2gsIGVuZm9yY2UgcGh5bGluayBi aW5kaW5ncyBmb3IgcG9ydHMuCi0gRm9yIG1zY2MsdnNjNzUxMi1zd2l0Y2gsIGVuZm9yY2UgcGh5 bGluayBiaW5kaW5ncyBmb3IgdXNlciBwb3J0cy4KCi0tLQoKLSByZW5lc2FzLHJ6bjEtYTVwc3cu eWFtbAogICAtIHJlbmVzYXMscjlhMDZnMDMyLWE1cHN3LCByZW5lc2FzLHJ6bjEtYTVwc3cKCmRy aXZlcnMvbmV0L2RzYS9yem4xX2E1cHN3LmM6Ci0gVGhlIERTQSBzdWJkcml2ZXIgd29uJ3QgbGV0 IHRoZSBEU0EgZHJpdmVyIHJlZ2lzdGVyIHRoZSBidXMuCiAgIC0gTm8gZHMtPm9wcy0+cGh5X3Jl YWQoKSBvciBkcy0+b3BzLT5waHlfd3JpdGUoKS4KLSBSZWdpc3RlcnMgdGhlIGJ1cyBPRi1iYXNl ZCBvbmx5LiBSZWdpc3RlcnMgdGhlIGJ1cyB3aGVuICJtZGlvIiBjaGlsZCBub2RlCiAgIGlzIGRl ZmluZWQuCiAgIC0JbWRpbyA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKGRldi0+b2Zfbm9kZSwgIm1k aW8iKTsKICAgICBpZiAob2ZfZGV2aWNlX2lzX2F2YWlsYWJsZShtZGlvKSkKICAgICAgIHJldCA9 IGE1cHN3X3Byb2JlX21kaW8oYTVwc3csIG1kaW8pOwoKV2hhdCB0byBkbzoKLSBEb2N1bWVudCAi bWRpbyIuCi0gRW5mb3JjZSBwaHlsaW5rIGJpbmRpbmdzIGZvciB1c2VyIHBvcnRzLgoKLS0tCgot IHJlYWx0ZWsueWFtbAogICAtIHJlYWx0ZWsscnRsODM2NW1iCiAgIC0gcmVhbHRlayxydGw4MzY2 cmIKCmRyaXZlcnMvbmV0L2RzYS9yZWFsdGVrL3JlYWx0ZWstc21pLmM6Ci0gVGhlIERTQSBzdWJk cml2ZXIgd29uJ3QgbGV0IHRoZSBEU0EgZHJpdmVyIHJlZ2lzdGVyIHRoZSBidXMuIFJlZ2lzdGVy cwogICB0aGUgYnVzIE9GLWJhc2VkIG9ubHkuIFJlZ2lzdGVyaW5nIHRoZSBidXMgaXMgbWFuZGF0 b3J5LiBSZWdpc3RlcnMgdGhlCiAgIGJ1cyB3aGVuIGNvbXBhdGlibGUgc3RyaW5nICJyZWFsdGVr LHNtaS1tZGlvIiBvbiBhIGNoaWxkIG5vZGUgaXMgZGVmaW5lZC4KICAgLSBtZGlvX25wID0gb2Zf Z2V0X2NvbXBhdGlibGVfY2hpbGQocHJpdi0+ZGV2LT5vZl9ub2RlLCAicmVhbHRlayxzbWktbWRp byIpOwogICAgIGlmICghbWRpb19ucCkKICAgICAgIHJldHVybiAtRU5PREVWOwogICAgIGRzLT5z bGF2ZV9taWlfYnVzID0gcHJpdi0+c2xhdmVfbWlpX2J1czsKCmRyaXZlcnMvbmV0L2RzYS9yZWFs dGVrL3JlYWx0ZWstbWRpby5jOgotIFRoZSBEU0Egc3ViZHJpdmVyIGxldHMgdGhlIERTQSBkcml2 ZXIgcmVnaXN0ZXIgdGhlIGJ1cy4KCldoYXQgdG8gZG86Ci0gRG9jdW1lbnQgIm1kaW8iLgogICAt IFJlcXVpcmUgIm1kaW8iLiAoQ2FuJ3QgZG8gYmVjYXVzZSBpdCdzIG5vdCByZXF1aXJlZCBmb3Ig TURJTyBjb250cm9sbGVkCiAgICAgc3dpdGNoZXMgdGhhdCBzaGFyZSB0aGUgY29tcGF0aWJsZSBz dHJpbmcgd2l0aCBTTUkgY29udHJvbGxlZCBzd2l0Y2hlcy4KICAgICBUaGlzIGlzIHdoeSBJIHdv dWxkIGxpa2UgTHVpeiB0byB1bmlmeSB0aGUgYnVzIHJlZ2lzdGVyYXRpb24gcHJvY2Vzcy4pCi0g RG9jdW1lbnQgY29tcGF0aWJsZSBzdHJpbmcgInJlYWx0ZWssc21pLW1kaW8iIG9uICJtZGlvIiBj aGlsZCBub2RlLgogICAtIFJlcXVpcmUgY29tcGF0aWJsZS4gKENhbid0IGRvIGJlY2F1c2UgdGhl IHNhbWUgYXMgYWJvdmUuKQotIEVuZm9yY2UgcGh5bGluayBiaW5kaW5ncyBmb3IgdXNlciBwb3J0 cy4gKENhbid0IGRvIGJlY2F1c2UgdGhlIHNhbWUgYXMKICAgYWJvdmUuKQogICAtIEVuZm9yY2Ug cGh5bGluayBiaW5kaW5ncyBmb3IgdXNlciBwb3J0cyBpZiAibWRpbyIgaXMgZGVmaW5lZC4KCi0t LQoKLSBxY2E4ay55YW1sCiAgIC0gcWNhLHFjYTgzMjcKICAgLSBxY2EscWNhODMyOAogICAtIHFj YSxxY2E4MzM0CiAgIC0gcWNhLHFjYTgzMzcKCmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4 eC5jOgotIFRoZSBEU0Egc3ViZHJpdmVyIHdvbid0IGxldCB0aGUgRFNBIGRyaXZlciByZWdpc3Rl ciB0aGUgYnVzLgogICAtIE5vIGRzLT5vcHMtPnBoeV9yZWFkKCkgb3IgZHMtPm9wcy0+cGh5X3dy aXRlKCkuCi0gUmVnaXN0ZXJzIHRoZSBidXMgbm9uLU9GLWJhc2VkIG9yIE9GLWJhc2VkLiBSZWdp c3RlcnMgT0YtYmFzZWQgaWYgIm1kaW8iCiAgIGNoaWxkIG5vZGUgaXMgZGVmaW5lZC4KICAgLSBt ZGlvID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUocHJpdi0+ZGV2LT5vZl9ub2RlLCAibWRpbyIpOwoK V2hhdCB0byBkbzoKLSBEb2N1bWVudCAibWRpbyIuCi0gRW5mb3JjZSBwaHlsaW5rIGJpbmRpbmdz IGZvciB1c2VyIHBvcnRzIGlmICJtZGlvIiBpcyBkZWZpbmVkLgoKLS0tCgotIG54cCxzamExMTA1 LnlhbWwKICAgLSBueHAsc2phMTEwNWUKICAgLSBueHAsc2phMTEwNXQKICAgLSBueHAsc2phMTEw NXAKICAgLSBueHAsc2phMTEwNXEKICAgLSBueHAsc2phMTEwNXIKICAgLSBueHAsc2phMTEwNXMK ICAgLSBueHAsc2phMTExMGEKICAgLSBueHAsc2phMTExMGIKICAgLSBueHAsc2phMTExMGMKICAg LSBueHAsc2phMTExMGQKCmRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWRpby5jOgot IFRoZSBEU0Egc3ViZHJpdmVyIHdvbid0IGxldCB0aGUgRFNBIGRyaXZlciByZWdpc3RlciB0aGUg YnVzLgogICAtIE5vIGRzLT5vcHMtPnBoeV9yZWFkKCkgb3IgZHMtPm9wcy0+cGh5X3dyaXRlKCku Ci0gUmVnaXN0ZXJzIG11bHRpcGxlIGJ1c2VzIE9GLWJhc2VkIG9ubHkuIFJlZ2lzdGVycyB0aGUg YnVzZXMgd2hlbiAibWRpb3MiCiAgIGNoaWxkIG5vZGUgYW5kICJueHAsc2phMTExMC1iYXNlLXR4 LW1kaW8iIGFuZCAibnhwLHNqYTExMTAtYmFzZS10MS1tZGlvIgogICBjb21wYXRpYmxlIHN0cmlu Z3MgcGVyIGNoaWxkIG5vZGUgdW5kZXIgIm1kaW9zIiBpcyBkZWZpbmVkLgogICAtIG1kaW9fbm9k ZSA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKHN3aXRjaF9ub2RlLCAibWRpb3MiKTsKICAgICBpZiAo IW1kaW9fbm9kZSkKICAgICAgIHJldHVybiAwOwogICAtIG5wID0gb2ZfZ2V0X2NvbXBhdGlibGVf Y2hpbGQobWRpb19ub2RlLCAibnhwLHNqYTExMTAtYmFzZS10eC1tZGlvIik7CiAgICAgaWYgKCFu cCkKICAgICAgIHJldHVybiAwOwogICAtIG5wID0gb2ZfZ2V0X2NvbXBhdGlibGVfY2hpbGQobWRp b19ub2RlLCAibnhwLHNqYTExMTAtYmFzZS10MS1tZGlvIik7CiAgICAgaWYgKCFucCkKICAgICAg IHJldHVybiAwOwoKV2hhdCB0byBkbzoKLSBEb2N1bWVudCAibWRpb3MiLgogICAtIERvY3VtZW50 IGNoaWxkIG5vZGUgcGF0dGVybiBwcm9wZXJ0eSB1bmRlciAibWRpb3MiLgogICAgIC0gRG9jdW1l bnQgIm54cCxzamExMTEwLWJhc2UtdHgtbWRpbyIgYW5kICJueHAsc2phMTExMC1iYXNlLXQxLW1k aW8iCiAgICAgICBjb21wYXRpYmxlIHN0cmluZ3MuCi0gRW5mb3JjZSBwaHlsaW5rIGJpbmRpbmdz IGZvciB1c2VyIHBvcnRzLgoKLS0tCgotIG1zY2Msb2NlbG90LnlhbWwKICAgLSBtc2NjLHZzYzk5 NTMtc3dpdGNoCiAgIC0gcGNpMTk1NyxlZWYwCgpkcml2ZXJzL25ldC9kc2Evb2NlbG90L3Nldmls bGVfdnNjOTk1My5jOgotIFRoZSBEU0Egc3ViZHJpdmVyIHdvbid0IGxldCB0aGUgRFNBIGRyaXZl ciByZWdpc3RlciB0aGUgYnVzLgogICAtIE5vIGRzLT5vcHMtPnBoeV9yZWFkKCkgb3IgZHMtPm9w cy0+cGh5X3dyaXRlKCkuCi0gTURJT19NU0NDX01JSU0sIGEgZHJpdmVyIHV0aWxpc2luZyB0aGUg TGludXggTURJTyBpbmZyYXN0cnVjdHVyZSBpcyB1c2VkCiAgIHRvIHJlZ2lzdGVyIGEgYnVzLgoK ZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmM6Ci0gVGhlIERTQSBzdWJkcml2 ZXIgd29uJ3QgbGV0IHRoZSBEU0EgZHJpdmVyIHJlZ2lzdGVyIHRoZSBidXMuCiAgIC0gTm8gZHMt Pm9wcy0+cGh5X3JlYWQoKSBvciBkcy0+b3BzLT5waHlfd3JpdGUoKS4KLSBGU0xfRU5FVENfTURJ TywgYSBkcml2ZXIgdXRpbGlzaW5nIHRoZSBMaW51eCBNRElPIGluZnJhc3RydWN0dXJlIGlzIHVz ZWQKICAgdG8gcmVnaXN0ZXIgYSBidXMuCgpXaGF0IHRvIGRvOgotIEVuZm9yY2UgcGh5bGluayBi aW5kaW5ncyBmb3IgdXNlciBwb3J0cy4KCi0tLQoKLSBtaWNyb2NoaXAsbGFuOTM3eC55YW1sCiAg IC0gbWljcm9jaGlwLGxhbjkzNzAKICAgLSBtaWNyb2NoaXAsbGFuOTM3MQogICAtIG1pY3JvY2hp cCxsYW45MzcyCiAgIC0gbWljcm9jaGlwLGxhbjkzNzMKICAgLSBtaWNyb2NoaXAsbGFuOTM3NAot IG1pY3JvY2hpcCxrc3oueWFtbAogICAtIG1pY3JvY2hpcCxrc3o4NzY1CiAgIC0gbWljcm9jaGlw LGtzejg3OTQKICAgLSBtaWNyb2NoaXAsa3N6ODc5NQogICAtIG1pY3JvY2hpcCxrc3o4ODYzCiAg IC0gbWljcm9jaGlwLGtzejg4NzMKICAgLSBtaWNyb2NoaXAsa3N6OTQ3NwogICAtIG1pY3JvY2hp cCxrc3o5ODk3CiAgIC0gbWljcm9jaGlwLGtzejk4OTYKICAgLSBtaWNyb2NoaXAsa3N6OTU2Nwog ICAtIG1pY3JvY2hpcCxrc3o4NTY1CiAgIC0gbWljcm9jaGlwLGtzejk4OTMKICAgLSBtaWNyb2No aXAsa3N6OTU2MwogICAtIG1pY3JvY2hpcCxrc3o4NTYzCgpkcml2ZXJzL25ldC9kc2EvbWljcm9j aGlwL2tzel9jb21tb24uYzoKLSBUaGUgRFNBIHN1YmRyaXZlciB3b24ndCBsZXQgdGhlIERTQSBk cml2ZXIgcmVnaXN0ZXIgdGhlIGJ1cyB3aGVuICJtZGlvIgogICBjaGlsZCBub2RlIGlzIGRlZmlu ZWQuIFJlZ2lzdGVycyB0aGUgYnVzIE9GLWJhc2VkIG9ubHkuIFJlZ2lzdGVycyB0aGUgYnVzCiAg IHdoZW4gIm1kaW8iIGNoaWxkIG5vZGUgaXMgZGVmaW5lZC4KICAgLSBtZGlvX25wID0gb2ZfZ2V0 X2NoaWxkX2J5X25hbWUoZGV2LT5kZXYtPm9mX25vZGUsICJtZGlvIik7CiAgICAgaWYgKCFtZGlv X25wKQogICAgICAgcmV0dXJuIDA7CiAgICAgZHMtPnNsYXZlX21paV9idXMgPSBidXM7CgpXaGF0 IHRvIGRvOgotIERvY3VtZW50ICJtZGlvIi4KLSBFbmZvcmNlIHBoeWxpbmsgYmluZGluZ3MgZm9y IHVzZXIgcG9ydHMgaWYgIm1kaW8iIGlzIGRlZmluZWQuCgotLS0KCi0gaGlyc2NobWFubixoZWxs Y3JlZWsueWFtbAogICAtIGhpcnNjaG1hbm4saGVsbGNyZWVrLWRlMXNvYy1yMQoKZHJpdmVycy9u ZXQvZHNhL2hpcnNjaG1hbm4vaGVsbGNyZWVrLmM6Ci0gVGhlIERTQSBzdWJkcml2ZXIgd29uJ3Qg bGV0IHRoZSBEU0EgZHJpdmVyIHJlZ2lzdGVyIHRoZSBidXMuCiAgIC0gTm8gZHMtPm9wcy0+cGh5 X3JlYWQoKSBvciBkcy0+b3BzLT5waHlfd3JpdGUoKS4KCldoYXQgdG8gZG86Ci0gRW5mb3JjZSBw aHlsaW5rIGJpbmRpbmdzIGZvciB1c2VyIHBvcnRzLgoKLS0tCgotIG1lZGlhdGVrLG10NzUzMC55 YW1sCiAgIC0gbWVkaWF0ZWssbXQ3NTMwCiAgIC0gbWVkaWF0ZWssbXQ3NTMxCiAgIC0gbWVkaWF0 ZWssbXQ3NjIxCiAgIC0gbWVkaWF0ZWssbXQ3OTg4LXN3aXRjaAoKZHJpdmVycy9uZXQvZHNhL210 NzUzMC5jOgotIFRoZSBEU0Egc3ViZHJpdmVyIHdvbid0IGxldCB0aGUgRFNBIGRyaXZlciByZWdp c3RlciB0aGUgYnVzLgogICAtIE5vIGRzLT5vcHMtPnBoeV9yZWFkKCkgb3IgZHMtPm9wcy0+cGh5 X3dyaXRlKCkuCi0gUmVnaXN0ZXJzIHRoZSBidXMgbm9uLU9GLWJhc2VkIG9yIE9GLWJhc2VkLiBS ZWdpc3RlcnMgT0YtYmFzZWQgaWYgIm1kaW8iCiAgIGNoaWxkIG5vZGUgaXMgZGVmaW5lZC4gKFRo aXMgaXMgYWZ0ZXIgdGhlIHBhdGNoIGZvciB0aGUgTVQ3NTMwIERTQQogICBzdWJkcml2ZXIgaXMg YXBwbGllZC4pCgpXaGF0IHRvIGRvOgotIERvY3VtZW50ICJtZGlvIi4KLSBFbmZvcmNlIHBoeWxp bmsgYmluZGluZ3MgZm9yIHVzZXIgcG9ydHMgaWYgIm1kaW8iIGlzIGRlZmluZWQuCgotLS0KCi0g YnJjbSxzZjIueWFtbAogICAtIGJyY20sYmNtNDkwOC1zd2l0Y2gKICAgLSBicmNtLGJjbTcyNzgt c3dpdGNoLXY0LjAKICAgLSBicmNtLGJjbTcyNzgtc3dpdGNoLXY0LjgKICAgLSBicmNtLGJjbTc0 NDUtc3dpdGNoLXY0LjAKCmRyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmM6Ci0gVGhlIERTQSBzdWJk cml2ZXIgd29uJ3QgbGV0IHRoZSBEU0EgZHJpdmVyIHJlZ2lzdGVyIHRoZSBidXMuCiAgIC0gTm8g ZHMtPm9wcy0+cGh5X3JlYWQoKSBvciBkcy0+b3BzLT5waHlfd3JpdGUoKS4KLSBSZXF1aXJlcyBN RElPX0JDTV9VTklNQUMsIGEgZHJpdmVyIHV0aWxpc2luZyB0aGUgTGludXggTURJTwogICBpbmZy YXN0cnVjdHVyZSB0byByZWdpc3RlciBhIGJ1cy4KICAgLSBkbiA9IG9mX2ZpbmRfY29tcGF0aWJs ZV9ub2RlKE5VTEwsIE5VTEwsICJicmNtLHVuaW1hYy1tZGlvIik7CiAgICAgcHJpdi0+bWFzdGVy X21paV9idXMgPSBvZl9tZGlvX2ZpbmRfYnVzKGRuKTsKICAgICBpZiAoIXByaXYtPm1hc3Rlcl9t aWlfYnVzKSB7CiAgICAgICBvZl9ub2RlX3B1dChkbik7CiAgICAgICByZXR1cm4gLUVQUk9CRV9E RUZFUjsKICAgICB9CgpXaGF0IHRvIGRvOgotIEVuZm9yY2UgcGh5bGluayBiaW5kaW5ncyBmb3Ig dXNlciBwb3J0cy4KCi0tLQoKLSBicmNtLGI1My55YW1sCiAgIC0gYnJjbSxiY201MzI1CiAgIC0g YnJjbSxiY201MzExNQogICAtIGJyY20sYmNtNTMxMjUKICAgLSBicmNtLGJjbTUzMTI4CiAgIC0g YnJjbSxiY201MzEzNAogICAtIGJyY20sYmNtNTM2NQogICAtIGJyY20sYmNtNTM5NQogICAtIGJy Y20sYmNtNTM4OQogICAtIGJyY20sYmNtNTM5NwogICAtIGJyY20sYmNtNTM5OAogICAtIGJyY20s YmNtMTEzNjAtc3JhYiwgYnJjbSxjeWdudXMtc3JhYgogICAtIGJyY20sYmNtNTMwMTAtc3JhYiwg YnJjbSxiY201MzAxeC1zcmFiCiAgIC0gYnJjbSxiY201MzAxMS1zcmFiLCBicmNtLGJjbTUzMDF4 LXNyYWIKICAgLSBicmNtLGJjbTUzMDEyLXNyYWIsIGJyY20sYmNtNTMwMXgtc3JhYgogICAtIGJy Y20sYmNtNTMwMTgtc3JhYiwgYnJjbSxiY201MzAxeC1zcmFiCiAgIC0gYnJjbSxiY201MzAxOS1z cmFiLCBicmNtLGJjbTUzMDF4LXNyYWIKICAgLSBicmNtLGJjbTExNDA0LXNyYWIsIGJyY20sb21l Z2Etc3JhYgogICAtIGJyY20sYmNtMTE0MDctc3JhYiwgYnJjbSxvbWVnYS1zcmFiCiAgIC0gYnJj bSxiY20xMTQwOS1zcmFiLCBicmNtLG9tZWdhLXNyYWIKICAgLSBicmNtLGJjbTU4MzEwLXNyYWIs IGJyY20sb21lZ2Etc3JhYgogICAtIGJyY20sYmNtNTgzMTEtc3JhYiwgYnJjbSxvbWVnYS1zcmFi CiAgIC0gYnJjbSxiY201ODMxMy1zcmFiLCBicmNtLG9tZWdhLXNyYWIKICAgLSBicmNtLGJjbTU4 NTIyLXNyYWIsIGJyY20sbnNwLXNyYWIKICAgLSBicmNtLGJjbTU4NTIzLXNyYWIsIGJyY20sbnNw LXNyYWIKICAgLSBicmNtLGJjbTU4NTI1LXNyYWIsIGJyY20sbnNwLXNyYWIKICAgLSBicmNtLGJj bTU4NjIyLXNyYWIsIGJyY20sbnNwLXNyYWIKICAgLSBicmNtLGJjbTU4NjIzLXNyYWIsIGJyY20s bnNwLXNyYWIKICAgLSBicmNtLGJjbTU4NjI1LXNyYWIsIGJyY20sbnNwLXNyYWIKICAgLSBicmNt LGJjbTg4MzEyLXNyYWIsIGJyY20sbnNwLXNyYWIKICAgLSBicmNtLGJjbTMzODQtc3dpdGNoLCBi cmNtLGJjbTYzeHgtc3dpdGNoCiAgIC0gYnJjbSxiY202MzE4LXN3aXRjaCwgYnJjbSxiY202M3h4 LXN3aXRjaAogICAtIGJyY20sYmNtNjMyOC1zd2l0Y2gsIGJyY20sYmNtNjN4eC1zd2l0Y2gKICAg LSBicmNtLGJjbTYzNjItc3dpdGNoLCBicmNtLGJjbTYzeHgtc3dpdGNoCiAgIC0gYnJjbSxiY202 MzY4LXN3aXRjaCwgYnJjbSxiY202M3h4LXN3aXRjaAogICAtIGJyY20sYmNtNjMyNjgtc3dpdGNo LCBicmNtLGJjbTYzeHgtc3dpdGNoCgpkcml2ZXJzL25ldC9kc2EvYjUzL2I1M19jb21tb24uYzoK LSBUaGUgRFNBIHN1YmRyaXZlciBsZXRzIHRoZSBEU0EgZHJpdmVyIHJlZ2lzdGVyIHRoZSBidXMu CgpXaGF0IHRvIGRvOgotIERvY3VtZW50ICJtZGlvIi4KLSBFbmZvcmNlIHBoeWxpbmsgYmluZGlu Z3MgZm9yIHVzZXIgcG9ydHMgaWYgIm1kaW8iIGlzIGRlZmluZWQuCgotLS0KCi0gYXJyb3cseHJz NzAweC55YW1sCiAgIC0gYXJyb3cseHJzNzAwM2UKICAgLSBhcnJvdyx4cnM3MDAzZgogICAtIGFy cm93LHhyczcwMDRlCiAgIC0gYXJyb3cseHJzNzAwNGYKCmRyaXZlcnMvbmV0L2RzYS94cnM3MDB4 L3hyczcwMHguYzoKLSBUaGUgRFNBIHN1YmRyaXZlciB3b24ndCBsZXQgdGhlIERTQSBkcml2ZXIg cmVnaXN0ZXIgdGhlIGJ1cy4KICAgLSBObyBkcy0+b3BzLT5waHlfcmVhZCgpIG9yIGRzLT5vcHMt PnBoeV93cml0ZSgpLgoKV2hhdCB0byBkbzoKLSBFbmZvcmNlIHBoeWxpbmsgYmluZGluZ3MgZm9y IHVzZXIgcG9ydHMuCgotLS0KClRleHQgZG9jdW1lbnRzLiBJIHdpbGwgaGFuZGxlIHRoZXNlIHdo ZW4gSSByZXBsYWNlIHRoZW0gd2l0aCBqc29uLXNjaGVtYQpkb2N1bWVudHMuCgotIGFyOTMzMS50 eHQKICAgLSBxY2EsYXI5MzMxLXN3aXRjaAoKZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYzoK LSBUaGUgRFNBIHN1YmRyaXZlciB3b24ndCBsZXQgdGhlIERTQSBkcml2ZXIgcmVnaXN0ZXIgdGhl IGJ1cy4KICAgLSBObyBkcy0+b3BzLT5waHlfcmVhZCgpIG9yIGRzLT5vcHMtPnBoeV93cml0ZSgp LgotIFJlZ2lzdGVycyB0aGUgYnVzIE9GLWJhc2VkIG9ubHkuIFJlZ2lzdGVyaW5nIHRoZSBidXMg aXMgbWFuZGF0b3J5LgogICBSZWdpc3RlcnMgdGhlIGJ1cyB3aGVuICJtZGlvIiBjaGlsZCBub2Rl IGlzIGRlZmluZWQuCiAgIC0gbW5wID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUobnAsICJtZGlvIik7 CiAgICAgaWYgKCFtbnApCiAgICAgICByZXR1cm4gLUVOT0RFVjsKCldoYXQgdG8gZG86Ci0gRG9j dW1lbnQgIm1kaW8iLgogICAtIFJlcXVpcmUgIm1kaW8iLgotIEVuZm9yY2UgcGh5bGluayBiaW5k aW5ncyBmb3IgdXNlciBwb3J0cy4KCi0tLQoKLSBsYW45MzAzLnR4dAogICAtIHNtc2MsbGFuOTMw My1pMmMKICAgLSBzbXNjLGxhbjkzMDMtbWRpbwoKZHJpdmVycy9uZXQvZHNhL2xhbjkzMDMtY29y ZS5jOgotIFRoZSBEU0Egc3ViZHJpdmVyIGxldHMgdGhlIERTQSBkcml2ZXIgcmVnaXN0ZXIgdGhl IGJ1cy4KCldoYXQgdG8gZG86Ci0gRG9jdW1lbnQgIm1kaW8iLgotIEVuZm9yY2UgcGh5bGluayBi aW5kaW5ncyBmb3IgdXNlciBwb3J0cyBpZiAibWRpbyIgaXMgZGVmaW5lZC4KCi0tLQoKLSBsYW50 aXEtZ3N3aXAudHh0CiAgIC0gbGFudGlxLHhyeDIwMC1nc3dpcAogICAtIGxhbnRpcSx4cngzMDAt Z3N3aXAKICAgLSBsYW50aXEseHJ4MzMwLWdzd2lwCgpkcml2ZXJzL25ldC9kc2EvbGFudGlxX2dz d2lwLmM6Ci0gVGhlIERTQSBzdWJkcml2ZXIgd29uJ3QgbGV0IHRoZSBEU0EgZHJpdmVyIHJlZ2lz dGVyIHRoZSBidXMuCiAgIC0gTm8gZHMtPm9wcy0+cGh5X3JlYWQoKSBvciBkcy0+b3BzLT5waHlf d3JpdGUoKS4KLSBSZWdpc3RlcnMgdGhlIGJ1cyBPRi1iYXNlZCBvbmx5LiBSZWdpc3RlcnMgdGhl IGJ1cyB3aGVuIGNvbXBhdGlibGUgc3RyaW5nCiAgICJsYW50aXEseHJ4MjAwLW1kaW8iIG9uIGEg Y2hpbGQgbm9kZSBpcyBkZWZpbmVkLgogICAtIG1kaW9fbnAgPSBvZl9nZXRfY29tcGF0aWJsZV9j aGlsZChkZXYtPm9mX25vZGUsICJsYW50aXEseHJ4MjAwLW1kaW8iKTsKICAgICBpZiAobWRpb19u cCkKICAgICAgIGVyciA9IGdzd2lwX21kaW8ocHJpdiwgbWRpb19ucCk7CgpXaGF0IHRvIGRvOgot IERvY3VtZW50ICJtZGlvIi4KLSBEb2N1bWVudCBjb21wYXRpYmxlIHN0cmluZyAicmVhbHRlayxz bWktbWRpbyIgb24gIm1kaW8iIGNoaWxkIG5vZGUuCiAgIC0gUmVxdWlyZSBjb21wYXRpYmxlLgot IEVuZm9yY2UgcGh5bGluayBiaW5kaW5ncyBmb3IgdXNlciBwb3J0cy4KCi0tLQoKLSBtYXJ2ZWxs LnR4dAogICAtIG1hcnZlbGwsbXY4OGU2MDg1CiAgIC0gbWFydmVsbCxtdjg4ZTYxOTAKICAgLSBt YXJ2ZWxsLG12ODhlNjI1MAoKZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Ci0gVGhl IERTQSBzdWJkcml2ZXIgd29uJ3QgbGV0IHRoZSBEU0EgZHJpdmVyIHJlZ2lzdGVyIHRoZSBidXMu CiAgIC0gZHMtPnNsYXZlX21paV9idXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlw KTsKLSBSZWdpc3RlcnMgdGhlIGJ1cyBub24tT0YtYmFzZWQgb3IgT0YtYmFzZWQuIFJlZ2lzdGVy cyBPRi1iYXNlZCBpZiAibWRpbyIKICAgY2hpbGQgbm9kZSBpcyBkZWZpbmVkLgoKV2hhdCB0byBk bzoKLSBEb2N1bWVudCAibWRpbyIuCi0gRW5mb3JjZSBwaHlsaW5rIGJpbmRpbmdzIGZvciB1c2Vy IHBvcnRzIGlmICJtZGlvIiBpcyBkZWZpbmVkLgoKLS0tCgotIHZpdGVzc2UsdnNjNzN4eC50eHQK ICAgLSB2aXRlc3NlLHZzYzczODUKICAgLSB2aXRlc3NlLHZzYzczODgKICAgLSB2aXRlc3NlLHZz YzczOTUKICAgLSB2aXRlc3NlLHZzYzczOTgKCmRyaXZlcnMvbmV0L2RzYS92aXRlc3NlLXZzYzcz eHgtY29yZS5jOgotIFRoZSBEU0Egc3ViZHJpdmVyIGxldHMgdGhlIERTQSBkcml2ZXIgcmVnaXN0 ZXIgdGhlIGJ1cy4KCldoYXQgdG8gZG86Ci0gRG9jdW1lbnQgIm1kaW8iLgotIEVuZm9yY2UgcGh5 bGluayBiaW5kaW5ncyBmb3IgdXNlciBwb3J0cyBpZiAibWRpbyIgaXMgZGVmaW5lZC4KCkFyxLFu w6cKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK