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 996E5C433F5 for ; Fri, 25 Feb 2022 15:55:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:References: List-Owner; bh=tGVv0IfiIiOcAA+b8Nn9bIRlnI8vgAtIrboKgj0sSpE=; b=vRS8GPVPoH//fU CPD/TroS1q4LBU1ixSKSajvMXECOgTrYU6kC6QwVl3iap9AYFtfw3N5yl3TKLgqiqdTTcLqBXIXFf 6FuWPlOQNZkBRXboxCzzlsTAX6mEoiad+Nt537lia8RoNZ4uq6HfRPCx/KfNv39KQb6qvmUdJG0WV f2pOr9LkLoijQXTskZA57gZ4KtXKyH/6zwF4Y0xx1wqJVqzdjs1mR+WXOsbVd2GbTLeW4OozunWLr ZrmzcdPg1ILskuMVt44CcHYtGtKBRuSyanIgTtJCRSguCoYX49xrqKgeOrrrqthWyhjpEz/R7V+sw OhZevirQrOLUwq17ZOOQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nNcv5-005j33-Ls; Fri, 25 Feb 2022 15:54:12 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nNcsx-005iAw-8M for linux-arm-kernel@lists.infradead.org; Fri, 25 Feb 2022 15:52:01 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B89A061A30; Fri, 25 Feb 2022 15:51:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9ADA1C340E7; Fri, 25 Feb 2022 15:51:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1645804317; bh=V9gJHhPgPqYllsqDsYnBl3rnZBElaZYYZJ2q/xpB/No=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=WEk/mxCcR8c9X+m2Z4durgNFf+0qvvd7AG/+ROPJjpBFyRpabW4dABD2ySstG3j2f jp9uhnRdKazS/n26oWz5/7btI+Xb6yWKKZzIOjdkNLt64TevZXygM1x11kpG92VMIP IA1PzDrWJ52Kko8oOADOn7d5mFE0Jmvl/+AZTnUsQRlOAqBf3EKzYs/xojzLoTpXFc UCrvm3Hvtes2eV7qCmFvQe/pZED2IZhJBpYWicqUog3dmSSD11bq0GJLtlt1Xb57Gs 3DJ9csSRP3wIqHNIHgw+Kiorj0wIJJa3xUaQ0oaSEy/+bxTtSpxe4pxkIDty2zjFRz m5IbU0fG9Jg4Q== Date: Fri, 25 Feb 2022 09:51:56 -0600 From: Bjorn Helgaas To: Pali =?iso-8859-1?Q?Roh=E1r?= Cc: Lorenzo Pieralisi , Bjorn Helgaas , Rob Herring , Andrew Lunn , Thomas Petazzoni , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Marek =?iso-8859-1?Q?Beh=FAn?= , Russell King , Gregory Clement , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 4/6] PCI: Add function for parsing 'slot-power-limit-milliwatt' DT property Message-ID: <20220225155156.GA358965@bhelgaas> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220225123051.xlsv7fkesdf5upeh@pali> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220225_075159_424292_071E6D0D X-CRM114-Status: GOOD ( 44.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBGZWIgMjUsIDIwMjIgYXQgMDE6MzA6NTFQTSArMDEwMCwgUGFsaSBSb2jDoXIgd3Jv dGU6Cj4gT24gVGh1cnNkYXkgMjQgRmVicnVhcnkgMjAyMiAxNDo0NzoxNSBCam9ybiBIZWxnYWFz IHdyb3RlOgo+ID4gT24gVHVlLCBGZWIgMjIsIDIwMjIgYXQgMDU6MzE6NTZQTSArMDEwMCwgUGFs aSBSb2jDoXIgd3JvdGU6Cj4gPiA+IEFkZCBmdW5jdGlvbiBvZl9wY2lfZ2V0X3Nsb3RfcG93ZXJf bGltaXQoKSwgd2hpY2ggcGFyc2VzIHRoZQo+ID4gPiAnc2xvdC1wb3dlci1saW1pdC1taWxsaXdh dHQnIERUIHByb3BlcnR5LCByZXR1cm5pbmcgdGhlIHZhbHVlIGluCj4gPiA+IG1pbGxpd2F0dHMg YW5kIGluIGZvcm1hdCByZWFkeSBmb3IgdGhlIFBDSWUgU2xvdCBDYXBhYmlsaXRpZXMgUmVnaXN0 ZXIuCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwu b3JnPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYXJlayBCZWjDum4gPGthYmVsQGtlcm5lbC5vcmc+ Cj4gPiA+IFJldmlld2VkLWJ5OiBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPgo+ID4gPiBB Y2tlZC1ieTogQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KPiA+ID4gLS0tCj4g PiA+ICBkcml2ZXJzL3BjaS9vZi5jICB8IDY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gPiA+ICBkcml2ZXJzL3BjaS9wY2kuaCB8IDE1ICsrKysrKysr KysrCj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKykKPiA+ID4gCj4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9vZi5jIGIvZHJpdmVycy9wY2kvb2YuYwo+ID4gPiBp bmRleCBjYjJlODM1MWMyY2MuLjJiMGMwYTM2NDFhOCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVy cy9wY2kvb2YuYwo+ID4gPiArKysgYi9kcml2ZXJzL3BjaS9vZi5jCj4gPiA+IEBAIC02MzMsMyAr NjMzLDY3IEBAIGludCBvZl9wY2lfZ2V0X21heF9saW5rX3NwZWVkKHN0cnVjdCBkZXZpY2Vfbm9k ZSAqbm9kZSkKPiA+ID4gIAlyZXR1cm4gbWF4X2xpbmtfc3BlZWQ7Cj4gPiA+ICB9Cj4gPiA+ICBF WFBPUlRfU1lNQk9MX0dQTChvZl9wY2lfZ2V0X21heF9saW5rX3NwZWVkKTsKPiA+ID4gKwo+ID4g PiArLyoqCj4gPiA+ICsgKiBvZl9wY2lfZ2V0X3Nsb3RfcG93ZXJfbGltaXQgLSBQYXJzZXMgdGhl ICJzbG90LXBvd2VyLWxpbWl0LW1pbGxpd2F0dCIKPiA+ID4gKyAqCQkJCSBwcm9wZXJ0eS4KPiA+ ID4gKyAqCj4gPiA+ICsgKiBAbm9kZTogZGV2aWNlIHRyZWUgbm9kZSB3aXRoIHRoZSBzbG90IHBv d2VyIGxpbWl0IGluZm9ybWF0aW9uCj4gPiA+ICsgKiBAc2xvdF9wb3dlcl9saW1pdF92YWx1ZTog cG9pbnRlciB3aGVyZSB0aGUgdmFsdWUgc2hvdWxkIGJlIHN0b3JlZCBpbiBQQ0llCj4gPiA+ICsg KgkJCSAgICBTbG90IENhcGFiaWxpdGllcyBSZWdpc3RlciBmb3JtYXQKPiA+ID4gKyAqIEBzbG90 X3Bvd2VyX2xpbWl0X3NjYWxlOiBwb2ludGVyIHdoZXJlIHRoZSBzY2FsZSBzaG91bGQgYmUgc3Rv cmVkIGluIFBDSWUKPiA+ID4gKyAqCQkJICAgIFNsb3QgQ2FwYWJpbGl0aWVzIFJlZ2lzdGVyIGZv cm1hdAo+ID4gPiArICoKPiA+ID4gKyAqIFJldHVybnMgdGhlIHNsb3QgcG93ZXIgbGltaXQgaW4g bWlsbGl3YXR0cyBhbmQgaWYgQHNsb3RfcG93ZXJfbGltaXRfdmFsdWUKPiA+ID4gKyAqIGFuZCBA c2xvdF9wb3dlcl9saW1pdF9zY2FsZSBwb2ludGVycyBhcmUgbm9uLU5VTEwsIGZpbGxzIGluIHRo ZSB2YWx1ZSBhbmQKPiA+ID4gKyAqIHNjYWxlIGluIGZvcm1hdCB1c2VkIGJ5IFBDSWUgU2xvdCBD YXBhYmlsaXRpZXMgUmVnaXN0ZXIuCj4gPiA+ICsgKgo+ID4gPiArICogSWYgdGhlIHByb3BlcnR5 IGlzIG5vdCBmb3VuZCBvciBpcyBpbnZhbGlkLCByZXR1cm5zIDAuCj4gPiA+ICsgKi8KPiA+ID4g K3UzMiBvZl9wY2lfZ2V0X3Nsb3RfcG93ZXJfbGltaXQoc3RydWN0IGRldmljZV9ub2RlICpub2Rl LAo+ID4gPiArCQkJCXU4ICpzbG90X3Bvd2VyX2xpbWl0X3ZhbHVlLAo+ID4gPiArCQkJCXU4ICpz bG90X3Bvd2VyX2xpbWl0X3NjYWxlKQo+ID4gPiArewo+ID4gPiArCXUzMiBzbG90X3Bvd2VyX2xp bWl0Owo+ID4gCj4gPiBJbmNsdWRpbmcgIm13IiBvciBzaW1pbGFyIHJlZmVyZW5jZSB0byB0aGUg dW5pdHMgd291bGQgZ2l2ZSBhIGhpbnQgb2YKPiA+IGhvdyB0byByZWxhdGUgdGhlIGNvZGUgdG8g dGhlIHNwZWMuCj4gPiAKPiA+ID4gKwl1OCB2YWx1ZSwgc2NhbGU7Cj4gPiA+ICsKPiA+ID4gKwlp ZiAob2ZfcHJvcGVydHlfcmVhZF91MzIobm9kZSwgInNsb3QtcG93ZXItbGltaXQtbWlsbGl3YXR0 IiwKPiA+ID4gKwkJCQkgJnNsb3RfcG93ZXJfbGltaXQpKQo+ID4gPiArCQlzbG90X3Bvd2VyX2xp bWl0ID0gMDsKPiA+ID4gKwo+ID4gPiArCS8qIENhbGN1bGF0ZSBTbG90IFBvd2VyIExpbWl0IFZh bHVlIGFuZCBTbG90IFBvd2VyIExpbWl0IFNjYWxlICovCj4gPiAKPiA+IEFkZCBhIHNwZWMgcmVm ZXJlbmNlIHRvIFBDSWUgcjYuMCwgc2VjIDcuNS4zLjkuICBJSVVDLCB0aGlzIHN1cHBvcnRzCj4g PiB1cCB0byAzMDBXLCB3aGljaCB3YXMgd2hhdCByNS4wIGRlZmluZWQsIGJ1dCByNi4wIGFkZGVk IHZhbHVlcyB1cCB0bwo+ID4gMHhmZSAoNjAwVykuCj4gCj4gSSBkaWQgbm90IGtub3cgYWJvdXQg aXQgYW5kIEkgaGF2ZSBub3Qgc2Vlbi9yZWFkIHI2LjAuCj4gCj4gSXQgd291bGQgYmUgbmljZSBp ZiBzb21lYm9keSB3aXRoIGFjY2VzcyB0byByNi4wIHNlbmQgYSBwYXRjaCB0byBsc3BjaQo+IHV0 aWxpdHksIHNvIHdlIGNvdWxkIHdyaXRlIHN1cHBvcnQgZm9yIDYwMFcgYmFzZWQgb24gbHNwY2kg cGFyc2VyLgoKT2YgY291cnNlLCBzb3JyeSEgIE9idmlvdXNseSB5b3Ugd291bGQgaGF2ZSBpbXBs ZW1lbnRlZCB0aGVtIGFsbCBpZgp5b3UgaGFkIHRoZSBzcGVjIQoKSGVyZSdzIHRoZSBpbmZvIGZy b20gcjYuMCwgc2VjIDcuNS4zLjk6CgogIFNsb3QgUG93ZXIgTGltaXQgVmFsdWUgLSBJbiBjb21i aW5hdGlvbiB3aXRoIHRoZSBTbG90IFBvd2VyIExpbWl0CiAgU2NhbGUgdmFsdWUsIHNwZWNpZmll cyB0aGUgdXBwZXIgbGltaXQgb24gcG93ZXIgc3VwcGxpZWQgYnkgdGhlIHNsb3QKICAoc2VlIMKn IFNlY3Rpb24gNi45KSBvciBieSBvdGhlciBtZWFucyB0byB0aGUgYWRhcHRlci4KCiAgUG93ZXIg bGltaXQgKGluIFdhdHRzKSBpcyBjYWxjdWxhdGVkIGJ5IG11bHRpcGx5aW5nIHRoZSB2YWx1ZSBp bgogIHRoaXMgZmllbGQgYnkgdGhlIHZhbHVlIGluIHRoZSBTbG90IFBvd2VyIExpbWl0IFNjYWxl IGZpZWxkIGV4Y2VwdAogIHdoZW4gdGhlIFNsb3QgUG93ZXIgTGltaXQgU2NhbGUgZmllbGQgZXF1 YWxzIDAwYiAoMS4weCkgYW5kIFNsb3QKICBQb3dlciBMaW1pdCBWYWx1ZSBleGNlZWRzIEVGaCwg dGhlIGZvbGxvd2luZyBhbHRlcm5hdGl2ZSBlbmNvZGluZ3MKICBhcmUgdXNlZDoKCiAgICBGMGgg ICA+IDIzOSBXIGFuZCDiiaQgMjUwIFcgU2xvdCBQb3dlciBMaW1pdAogICAgRjFoICAgPiAyNTAg VyBhbmQg4omkIDI3NSBXIFNsb3QgUG93ZXIgTGltaXQKICAgIEYyaCAgID4gMjc1IFcgYW5kIOKJ pCAzMDAgVyBTbG90IFBvd2VyIExpbWl0CiAgICBGM2ggICA+IDMwMCBXIGFuZCDiiaQgMzI1IFcg U2xvdCBQb3dlciBMaW1pdAogICAgRjRoICAgPiAzMjUgVyBhbmQg4omkIDM1MCBXIFNsb3QgUG93 ZXIgTGltaXQKICAgIEY1aCAgID4gMzUwIFcgYW5kIOKJpCAzNzUgVyBTbG90IFBvd2VyIExpbWl0 CiAgICBGNmggICA+IDM3NSBXIGFuZCDiiaQgNDAwIFcgU2xvdCBQb3dlciBMaW1pdAogICAgRjdo ICAgPiA0MDAgVyBhbmQg4omkIDQyNSBXIFNsb3QgUG93ZXIgTGltaXQKICAgIEY4aCAgID4gNDI1 IFcgYW5kIOKJpCA0NTAgVyBTbG90IFBvd2VyIExpbWl0CiAgICBGOWggICA+IDQ1MCBXIGFuZCDi iaQgNDc1IFcgU2xvdCBQb3dlciBMaW1pdAogICAgRkFoICAgPiA0NzUgVyBhbmQg4omkIDUwMCBX IFNsb3QgUG93ZXIgTGltaXQKICAgIEZCaCAgID4gNTAwIFcgYW5kIOKJpCA1MjUgVyBTbG90IFBv d2VyIExpbWl0CiAgICBGQ2ggICA+IDUyNSBXIGFuZCDiiaQgNTUwIFcgU2xvdCBQb3dlciBMaW1p dAogICAgRkRoICAgPiA1NTAgVyBhbmQg4omkIDU3NSBXIFNsb3QgUG93ZXIgTGltaXQKICAgIEZF aCAgID4gNTc1IFcgYW5kIOKJpCA2MDAgVyBTbG90IFBvd2VyIExpbWl0CiAgICBGRmggICBSZXNl cnZlZCBmb3IgU2xvdCBQb3dlciBMaW1pdCBWYWx1ZXMgYWJvdmUgNjAwIFcKCiAgVGhpcyByZWdp c3RlciBtdXN0IGJlIGltcGxlbWVudGVkIGlmIHRoZSBTbG90IEltcGxlbWVudGVkIGJpdCBpcyBT ZXQuCgogIFdyaXRlcyB0byB0aGlzIHJlZ2lzdGVyIGFsc28gY2F1c2UgdGhlIFBvcnQgdG8gc2Vu ZCB0aGUKICBTZXRfU2xvdF9Qb3dlcl9MaW1pdCBNZXNzYWdlLgoKPiA+ID4gKwlpZiAoc2xvdF9w b3dlcl9saW1pdCA9PSAwKSB7Cj4gPiA+ICsJCXZhbHVlID0gMHgwMDsKPiA+ID4gKwkJc2NhbGUg PSAwOwo+ID4gPiArCX0gZWxzZSBpZiAoc2xvdF9wb3dlcl9saW1pdCA8PSAyNTUpIHsKPiA+ID4g KwkJdmFsdWUgPSBzbG90X3Bvd2VyX2xpbWl0Owo+ID4gPiArCQlzY2FsZSA9IDM7Cj4gPiA+ICsJ fSBlbHNlIGlmIChzbG90X3Bvd2VyX2xpbWl0IDw9IDI1NSoxMCkgewo+ID4gPiArCQl2YWx1ZSA9 IHNsb3RfcG93ZXJfbGltaXQgLyAxMDsKPiA+ID4gKwkJc2NhbGUgPSAyOwo+ID4gPiArCX0gZWxz ZSBpZiAoc2xvdF9wb3dlcl9saW1pdCA8PSAyNTUqMTAwKSB7Cj4gPiA+ICsJCXZhbHVlID0gc2xv dF9wb3dlcl9saW1pdCAvIDEwMDsKPiA+ID4gKwkJc2NhbGUgPSAxOwo+ID4gPiArCX0gZWxzZSBp ZiAoc2xvdF9wb3dlcl9saW1pdCA8PSAyMzkqMTAwMCkgewo+ID4gPiArCQl2YWx1ZSA9IHNsb3Rf cG93ZXJfbGltaXQgLyAxMDAwOwo+ID4gPiArCQlzY2FsZSA9IDA7Cj4gPiA+ICsJfSBlbHNlIGlm IChzbG90X3Bvd2VyX2xpbWl0IDw9IDI1MCoxMDAwKSB7Cj4gPiA+ICsJCXZhbHVlID0gMHhGMDsK PiA+ID4gKwkJc2NhbGUgPSAwOwo+ID4gPiArCX0gZWxzZSBpZiAoc2xvdF9wb3dlcl9saW1pdCA8 PSAyNzUqMTAwMCkgewo+ID4gPiArCQl2YWx1ZSA9IDB4RjE7Cj4gPiA+ICsJCXNjYWxlID0gMDsK PiA+ID4gKwl9IGVsc2Ugewo+ID4gPiArCQl2YWx1ZSA9IDB4RjI7Cj4gPiA+ICsJCXNjYWxlID0g MDsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlpZiAoc2xvdF9wb3dlcl9saW1pdF92YWx1ZSkK PiA+ID4gKwkJKnNsb3RfcG93ZXJfbGltaXRfdmFsdWUgPSB2YWx1ZTsKPiA+ID4gKwo+ID4gPiAr CWlmIChzbG90X3Bvd2VyX2xpbWl0X3NjYWxlKQo+ID4gPiArCQkqc2xvdF9wb3dlcl9saW1pdF9z Y2FsZSA9IHNjYWxlOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIHNsb3RfcG93ZXJfbGltaXQ7Cj4g PiAKPiA+IElmICJzbG90LXBvd2VyLWxpbWl0LW1pbGxpd2F0dCIgY29udGFpbnMgYSB2YWx1ZSBs YXJnZXIgdGhhbiBjYW4gYmUKPiA+IHJlcHJlc2VudGVkIGluICJ2YWx1ZSIgYW5kICJzY2FsZSIs IHRoZSByZXR1cm4gdmFsdWUgd2lsbCBub3QgYWdyZWUKPiA+IHdpdGggdmFsdWUvc2NhbGUsIHdp bGwgaXQ/Cj4gCj4gSW4gcHJldmlvdXMgdmVyc2lvbiAweEYyIHdhcyByZXNlcnZlZCBmb3IgdmFs dWVzIGFib3ZlIDI3NSBXLiBTbyBmb3IgbWUKPiBpdCBsb29rZWQgbGlrZSBhIGNvcnJlY3Qgc29s dXRpb24uCj4gCj4gPiBDdXJyZW50bHkgeW91IG9ubHkgdXNlIHRoZSByZXR1cm4gdmFsdWUgZm9y IGEgbG9nIG1lc3NhZ2UsIHNvIG5vIHJlYWwKPiA+IGhhcm0geWV0LCBvdGhlciB0aGFuIHRoZSBm YWN0IHRoYXQgd2UgbWlnaHQgcHJpbnQgIlNsb3QgcG93ZXIgbGltaXQKPiA+IDEwMDAuMFciIHdo ZW4gdGhlIGhhcmR3YXJlIHdpbGwgb25seSBhZHZlcnRpc2UgNjAwVyBhdmFpbGFibGUuCj4gPiAK PiA+IEFsc28sIGlmICJzbG90LXBvd2VyLWxpbWl0LW1pbGxpd2F0dCIgY29udGFpbnMgc29tZXRo aW5nIGxpa2UKPiA+IDI2MDAwMCBtVyAoMjYwIFcpLCB3ZSdsbCByZXR1cm4gMHhGMS8wLCBzbyB0 aGUgaGFyZHdhcmUgd2lsbAo+ID4gYWR2ZXJ0aXNlIDI3NSBXIGF2YWlsYWJsZS4KPiAKPiBUaGVy ZSBpcyBubyB3YXkgaG93IHRvIGVuY29kZSAyNjAgVy4gSXQgaXMgcG9zc2libGUgb25seSAyNTAg VyBvciAyNzUgVywKPiBhbmQgbm90aGluZyBiZXR3ZWVuLiBJIGNob3NlIHRvIHJvdW5kIHZhbHVl IHRvIHVwcGVyIGxpbWl0LiBXaGF0IGRvIHlvdQo+IHByZWZlciBpbiB0aGVzZSBjYXNlcz8gVXBw ZXIgb3IgbG93ZXIgbGltaXQ/CgpJIHRoaW5rIHJvdW5kaW5nIGRvd24gaXMgYmV0dGVyLiAgSWYg d2Ugcm91bmQgdXAsIHRoZSBzbG90IHdpbGwKYWR2ZXJ0aXNlIG1vcmUgcG93ZXIgdGhhbiBpdCBj YW4gZGVsaXZlciwgYW5kIGlmIHRoZSBkZXZpY2UgdHJpZXMgdG8KY29uc3VtZSB0aGUgYW1vdW50 IG9mIHBvd2VyIGFkdmVydGlzZWQsIGl0IG1heSBub3Qgd29yayByZWxpYWJseS4KClNvIEkgdGhp bmsgd2Ugc2hvdWxkIHJldHVybiBlbmNvZGVkIHZhbHVlcyB0aGF0IGFyZSBubyBoaWdoZXIgdGhh bgp3aGF0IHRoZSBzbG90IGNhbiBhY3R1YWxseSBkZWxpdmVyLCBhbmQgdGhlIHJldHVybiB2YWx1 ZSBzaG91bGQgbWF0Y2gKd2hhdCBTbG90IENhcGFiaWxpdGllcyBhZHZlcnRpc2VzLgoKQmpvcm4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFy bS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1r ZXJuZWwK