Return-path: Envelope-to: publicinbox@libre-riscv.org Delivery-date: Mon, 30 Mar 2020 10:35:51 +0100 Received: from localhost ([::1] helo=libre-riscv.org) by libre-riscv.org with esmtp (Exim 4.89) (envelope-from ) id 1jIqpj-00024t-Fc; Mon, 30 Mar 2020 10:35:51 +0100 Received: from ozlabs.org ([203.11.71.1]) by libre-riscv.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1jIl7t-0004yT-NN for libre-riscv-dev@lists.libre-riscv.org; Mon, 30 Mar 2020 04:30:14 +0100 Received: by ozlabs.org (Postfix, from userid 1003) id 48rHym3S9Wz9sPF; Mon, 30 Mar 2020 14:30:08 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ozlabs.org; s=201707; t=1585539008; bh=SZ0YO1M/NlaQGcfd9YC7FG87YOvxu3p0mTzS7u5x4vw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=DmW88xn4ZGXzxEyP3FId8fpkZLgW6hluNxqHboOgVDphprooYj0S0LiLqv8qPz+gx 0X3MGYZymeZneCR+VbHI8obcgzS9G3RrZ4jmPSGy2U1HoenIMagUwt/R74FGdEdJ09 rWJtWkIKX6x4IidQYZE+hP3Uzs+BztwXd4JiqMYCg0ULd8Wpsqv660fPCvcjCR2bXn CGY11V44W58QeZBnqzkrgu+83OG4HPXR+CSjyTpb1bpTwHPjWCNLVbrmV5FNFgUWYr ADpg/emSSUoVHt5Wu99wWo7i06iaSRFW6HtxwBQCI8WW0P2tfea2YFUh7w6N1yQRIA IhbFGIr5ZrKmw== Date: Mon, 30 Mar 2020 14:30:02 +1100 From: Paul Mackerras To: Luke Kenneth Casson Leighton Message-ID: <20200330033002.GB15134@blackberry> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-Mailman-Approved-At: Mon, 30 Mar 2020 10:35:49 +0100 Subject: Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] microwatt tlb X-BeenThere: libre-riscv-dev@lists.libre-riscv.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Libre-RISCV General Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Libre-RISCV General Development Cc: openpower-hdl-cores@mailinglist.openpowerfoundation.org, Libre-RISCV General Development Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org Sender: "libre-riscv-dev" T24gRnJpLCBNYXIgMjcsIDIwMjAgYXQgMDI6MTU6MDNBTSArMDAwMCwgTHVrZSBLZW5uZXRoIENh c3NvbiBMZWlnaHRvbiB3cm90ZToKPiBoaSB0aGlzIGlzIGZvciBwYXVsIG1hY2tlcnJhcyB3aGVu IHlvdSBzZWUgaXQuCj4gCj4gZ3JlYXQgdG8ga25vdyB5b3UncmUgd29ya2luZyBvbiBtaWNyb3dh dHQuIGJlZW4gc3VjaCBhIGxvbmcgdGltZSwgYW5kCj4gcmVhbGx5IGdvb2QgdG8gZW5jb3VudGVy IHlvdSBvdmVyIHRoZSB2aXJ0dWFsIGNvZmZlZSBjaGF0IGVhcmxpZXIgdG9kYXkuCj4gCj4gaGVy ZSdzIHRoZSBsaW5rIHRvIHRoZSByYWRpeCB3YWxrIGRvYyBpIHdhcyB0YWxraW5nIGFib3V0Ogo+ IGh0dHBzOi8vZ2l0aHViLmNvbS9wb3dlci1nZW01L2dlbTUvYmxvYi9nZW01LWV4cGVyaW1lbnRh bC9zcmMvYXJjaC9wb3dlci9yYWRpeF93YWxrX2V4YW1wbGUudHh0Cj4gCj4gaXQgaXMgcmVhbGx5 IGdvb2QuICBpbXBsZW1lbnRhdGlvbnMgYWxzbyBleGlzdCBpbiB0aGUgc2FtZSBjb2RlYmFzZSwg dGhlCj4gZWFzaWVzdCB3YXkgdG8gdHJhY2sgdGhlbSBkb3duIGlzIHZpYSB0aGUgY29tbWl0IGxv Z3MgaW4gdGhlCj4gZ2VtNS1leHBlcmltZW50YWwgYnJhbmNoLgo+IAo+IGZvciBsaWJyZXNvYyB3 ZSByZWFsbHkgcmVhbGx5IG5lZWQgY2xlYXIgSERMIHRvICJ0cmFjayIgaWYgeW91IGtub3cgd2hh dCBpCj4gbWVhbiwgYmVjYXVzZSBzb21lIG9mIHRoZXNlIGFsZ29yaXRobXMgYXJlIHZlcnkgdGlt ZWNvbnN1bWluZyB0byBpbXBsZW1lbnQKPiBmcm9tIHNjcmF0Y2guCj4gCj4gcGF1bCwgY29udGlu dWluZyB0aGUgKGJyaWVmKSBkaXNjdXNzaW9uIHNvbWV3aGF0LCBpbiBhIHJlbGF0ZWQgd2F5LCBp Cj4gcmVhbGx5IHdhbnRlZCB0byBtYWtlIHlvdSBhd2FyZSBvZiB0aGUgaW1wbGljYXRpb25zIGZv ciBtaWNyb3dhdHQgb2YgdHJ5aW5nCj4gdG8gbWFrZSBpdCBtdWx0aXN0YWdlIHBpcGVsaW5lZC4K PiAKPiBpZiB5b3UgbG9vayB1cCBqb24gZGF3c29uJ3MgSUVFNzU0IEZQVSBjb2RlIHlvdSBmaW5k IHRoYXQgaXQgaXMgZW50aXJlbHkKPiBGU00gYmFzZWQuICBhcyBzdWNoIGl0IGlzIHN1cGVyYiBm b3IgZml0dGluZyBpbiBzbWFsbCBGUEdBcy4KPiAKPiBvdmVyIGEgNiBtb250aCBwZXJpb2QgaSBt b3JwaGVkIGl0IGZyb20gaXRzIGh1bWJsZSBiZWdpbm5pbmdzIGludG8gYW4KPiBhYnNvbHV0ZSBi ZWFzdCBvZiBhIGZsZXhpYmx5IHJlcHJvZ3JhbW1hYmxlIE9iamVjdCBPcmllbnRhdGVkIElFRUU3 NTQgRlAKPiB0b29sa2l0LCBjYXBhYmxlIG9mIDE2LCAzMiBvciA2NCBiaXQgKGFuZCBhbnl0aGlu ZyBlbHNlIHlvdSBjYXJlIHRvIGFkZCksCj4gYXJiaXRyYXJ5IHBpcGVsaW5lIGRlcHRoICpvciog RlNNIHN0eWxlIGVuZ2luZXMsIFNJTUQgY2FwYWJpbGl0eSwgKmR5bmFtaWMqCj4gcGlwZWxpbmVz LCB0aGUgd29ya3MuICBKYWNvYiBoZWxwZWQgYWRkIGEgZmFudGFzdGljIGh5YnJpZCBmcGRpdiwg c3FydAo+ICphbmQqIHJzcXJ0IGVuZ2luZSBhbGwgaW4gdGhlIHNhbWUgcGlwZWxpbmUuICBpdCdz IG5vdyB3ZWxsIG5vcnRoIG9mIDEwLDAwMAo+IGxpbmVzIG9mIHB5dGhvbiBjb2RlIGFuZCB0YWtl cyBhIHdlZWsgdG8gcnVuIGFsbCB0aGUgdW5pdCB0ZXN0cy4KPiAKPiB3aGF0IGkgbGVhcm5lZCBh bG9uZyB0aGUgd2F5IHdhcyB0aGF0IHRoZSBGU00gYmFzZWQgc3lzdGVtcyB2cyBwaXBlbGluZQo+ IHN5c3RlbXMgdHJhZGUgbG93IGdhdGUgY291bnQgYW5kIHNpbXBsaWNpdHkgYW5kIGNvZGUgcmVh ZGFiaWxpdHkgZm9yIHNwZWVkLAo+IG11Y2ggaGlnaGVyIGdhdGUgY291bnQsIGFuZCwgdW5sZXNz ICphbmQgZXZlbiogaWYgT08gZGVzaWduIGlzIHVzZWQsIHR1cm4KPiBpbnRvIHRoZSBtb3N0IGF3 ZnVsIHVucmVhZGFibGUgdW5tYWludGFpbmFibGUgdG90YWwgdHJhc2guCj4gCj4gcm9ja2V0Y2hp cCB1bmZvcnR1bmF0ZWx5LCBmb3IgYWxsIHRoZSBjb21wYWN0bmVzcyBhbmQgb3RoZXIgYWR2YW50 YWdlcywgaXMKPiBwYXJ0aWN1bGFybHkgYmFkLCAqYmVjYXVzZSogb2YgdGhlIE9PIChhbmQgdG90 YWwgbGFjayBvZiBjb2RlIGNvbW1lbnRzKS4KPiB0aGUgT08gaGllcmFyY2h5IG1ha2VzIGl0IGZs YXQtb3V0IGltcG9zc2libGUgZm9yIGFueW9uZSBidXQgaXRzIG9yaWdpbmFsCj4gY3JlYXRvcnMg dG8gd29yayB3aXRoLiAgKHNvbWV0aGluZyB0byBhbGVydCB0aGUgY2hpc2Vsd2F0dCB0ZWFtIG9u LCB0aGVyZSwKPiBhbHRob3VnaCBmcm9tIHdoYXQgaSBoYXZlIHNlZW4sIHRoZSBjb2RlIGNvbW1l bnRzIGluIGNoaXNlbHdhdHQgYXJlIGRhbW4KPiBnb29kKS4KPiAKPiBhbmQgeWV0IGlmIHlvdSBl dmVuIHJlbW90ZWx5IHRyeSBhbnl0aGluZyBsaWtlIG1vZGVybiBPTyBwcm9ncmFtbWluZyBkZXNp Z24KPiBzdHJhdGVnaWVzIGFuZCB0ZWN1bmlxdWVzIHdpdGggdGhlc2UgMTk4MHMgZXJhIGxhbmd1 YWdlcyAoSERMLCBWZXJpbG9nKSB5b3UKPiBpbW1lZGlhdGVseSBhbHNvIHJ1biBpbnRvIHNlcmlv dXMgZGlmZmljdWx0aWVzIG9mIGEgZGlmZmVyZW50IGtpbmQsIHdoaWNoIGkKPiB3b24ndCBnbyBp bnRvLCByaWdodCBub3cuCj4gCj4gdGhlIGJvdHRvbSBsaW5lIGlzOiBhZGRpbmcgZXh0cmEgcGlw ZWxpbmUgc3RhZ2VzIHRvIG1pY3Jvd2F0dCBub3Qgb25seQo+IGNvbXBsaWNhdGVzIGl0IGFuZCBt YWtlcyBpdCB1bnJlYWRhYmxlIGFuZCB1bm1haW50YWluYWJsZSwgaXQgaW5jcmVhc2VzIHRoZQo+ IG51bWJlciBvZiBMVVRzIHJlcXVpcmVkIHRvIHRoZSBwb250IHdoZXJlIHlvdSB3aWxsIG5lZWQg dG8gY2FsbCBpdCAid2F0dCIKPiBvciAibWVnYXdhdHQiCj4gCj4gOikKPiAKPiByZWdhcmRpbmcg ZXhjZXB0aW9ucyBhbmQgdHJhcHM6IGZvciBpbi1vcmRlciBwaXBlbGluZWQgc3lzdGVtcyB0aGVz ZSBhcmUgYQo+IGRhbW4gbnVpc2FuY2UuCj4gCj4gZXZlcnkgc29sdXRpb24gdG8gZXZlcnkgcHJv YmxlbSBpbiBhbiBpbm9yZGVyIHN5c3RlbSBpczoKPiAKPiBzdGFsbC4KPiAKPiB0aGF0J3MgaXQu Cj4gCj4gYWZ0ZXIgbGVhcm5pbmcgYWJvdXQgdGhlIENEQzY2MDAsIHdoaWNoIGlzIGEgZGVlcGx5 IGltcHJlc3NpdmUgZGVzaWduIHRoYXQKPiB0YWtlcyBsaXRlcmFsbHkgbW9udGhzIHRvIGJlZ2lu IHRvIGNvbXByZWhlbmQsIGkgZGlzbGlrZSBpbm9yZGVyIHN5c3RlbXMKPiBpbnRlbnNlbHkuCj4g Cj4gdGhlIGtleSB0aGluZyB0aGF0IGkgbGVhcm5lZCBmcm9tIE1pdGNoIEFsc3VwIGFib3V0IGhv dyB0byBoYW5kbGUKPiBleGNlcHRpb25zIGlzOiB5b3UgKm11c3QqIHByZXZlbnQgdGhlIEFMVSAo b3Igd2hhdGV2ZXIpIGZyb20gImNvbW1pdHRpbmciCj4gaXRzIHJlc3VsdCB1bnRpbCBpdCBpcyBH VUFSQU5URUVEIGtub3duIHRoYXQgdGhlIGV4Y2VwdGlvbiB3aWxsIG5vdCBvY2N1ci4KPiAKPiB0 aGF0IGlzIHRoZSBhYnNvbHV0ZSBjb3JlIGNvbmNlcHQgb2YgZXhjZXB0aW9ucyAoYWthIGludGVy cnVwdHMpLCB5b3UgTVVTVAo+IGFjaGlldmUsIGluIHNvbWUgZnVuZGFtZW50YWwgd2F5Lgo+IAo+ IHRoaXMgaXMgZG9uZSBpbiBhbiBPb08gZGVzaWduIGJ5IG1hcmtpbmcgYW5kIHRyYWNraW5nIHRo ZSBvcGVyYXRpb24gLSBhbGwKPiB0aGUgd2F5IGRvd24gdGhlIHBpcGVsaW5lIC0gd2l0aCAiY2Fu Y2VsbGF0aW9uIG1hc2tzIiAoYSBnbG9iYWwgSUQgd2hpY2gKPiB0cmF2ZWxzICp3aXRoKiB0aGUg cGFydGlhbCByZXN1bHQgZGF0YSwgZG93biBhIGdpdmVuIHBpcGVsaW5lKQo+IAo+IHRoaXMgaXMg a25vd24gYXMgInNoYWRvd2luZyIsIGFuZCBpdCBpcyBub3Qgb25seSB0aGUgb3BlcmF0aW9uIHRo YXQgKm1pZ2h0Kgo+IGJlIGNhbmNlbGxlZCB0aGF0IGhhcyB0byBiZSAic2hhZG93bWFya2VkIiwg aXQgaXMgKmFsbCBmb2xsb3dpbmcKPiBpbnN0cnVjdGlvbnMgYXMgd2VsbCogKGhlbmNlIHRoZSB0 ZXJtICJzaGFkb3ciKS4KPiAKPiBzaGFkb3dlZCBvcGVyYXRpb25zIGFyZSByZWFsIGVhc3kgdG8g Y2FuY2VsOiBwdWxsIHRoZSAiY2FuY2VsIiB3aXJlIHVwLCBhbmUKPiBldmVyeXRoaW5nIHdpdGgg dGhlIHJlcXVpc2l0ZSBtYXNrIElEIGdldHMgYSBnbG9iYWwgc2lnbmFsICJ3aG9vcHMgd2Ugbm8K PiBsb25nZXIgbmVlZCB0byBwYXNzIHRoaXMgZG93biB0aGUgcGlwZWxpbmUsIGRyb3AgaXQgb24g dGhlIGZsb29yIi4KPiAKPiB3aXRoIGFsbCAiZnV0dXJlIiBwYXJ0aWFsIChhbmQgY29tcGxldGVk IGJ1dCBub25jb21taXR0ZWQpIHJlc3VsdHMgbm93Cj4ga2lsbGVkLCB0aGUgUEMgY2FuIHNhZmVs eSBiZSByZWRpcmVjdGVkIGF0IHRoZSBleGNlcHRpb24sIGludGVycnVwdCwgb3IgdGhlCj4gYWx0 ZXJuYXRpdmUgYnJhbmNoLCBvciB3aGF0ZXZlcjogdGhlc2UgYWxsIHVzZSAqZXhhY3RseSogdGhl IHNhbWUgc2hhZG93aW5nCj4gdGVjaG5pcXVlLgo+IAo+IHlvdSBzdGFydCB0byBzZWUgd2h5IHRo ZSBtYWpvcml0eSBvZiBpbm9yZGVyIHN5c3RlbXMgdXNlICJzdGFsbCBzdGFsbCBzdGFsbAo+IHN0 YWxsIHN0YWxsIiBhcyB0aGUgYmUtYWxsIGFuZCBlbmQtYWxsICJvbm5uZSBhbmQgb25seSB0cnVl IHNvbHV0aW9uIiwKPiBoZXJlPyBbIGhhbGxlbHVqYWgsIHByYWlzZSB0aGUgc3RhbGwuLi4gXSA6 KQo+IAo+IGJhc2ljYWxseSBpZiBpIGhhdmUgZGlzY291cmFnZWQgeW91IGZyb20gcHVyc3Vpbmcg dGhlIHBhdGggb2YgYWRkaW5nCj4gbXVsdGlwbGUgcGlwZWxpbmUgc3RhZ2VzIHRvIG1pY3Jvd2F0 dCwgdGhlbiBpIGhhdmUgc3VjY2VlZGVkIGluIHdoYXQgaSBzZXQKPiBvdXQgdG8gZXhwbGFpbi4g IGJlY2F1c2UgbWljcm93YXR0J3MgdmFsdWUgaXMgbm90IGp1c3QgaXRzIHNtYWxsIGNvZGUgc2l6 ZSwKPiBpdHMgcmVhZGFiaWxpdHkgYW5kIGNvbXBhY3RuZXNzIG1ha2VzIGl0IGFuIGlkZWFsIHJl ZmVyZW5jZSBpbXBsZW1lbnRhdGlvbgo+ICphbmQqLCBmdXJ0aGVybW9yZSwgaXRzIGNvbXBsZXRl IGxhY2sgb2Ygb3B0aW1pc2F0aW9uIG5vcm1hbGx5IHNlZW4gaW4KPiAic2ltcGxlIiBwaXBlbGlu ZWQgZGVzaWducyBhY3R1YWxseSBzYXZlcyBvbiBnYXRlcyAvIEZQR0EgcmVzb3VyY2VzLgo+IAo+ IHRoZSBtb21lbnQgeW91IGFkZCBleHRyYSBzdGFnZXMsIGFsbCB0aGF0IGdvZXMgb3V0IHRoZSB3 aW5kb3cuCj4gCj4gYW4gYXNzb2NpYXRlIGFuZCBjb250cmlidXRvciBvbiBvdXIgbGlzdCwgU2Ft dWVsIEZhbHZvLCB0YXVnaHQgbWUgc29tZQo+IGF3ZXNvbWUgdHJpY2tzLgo+IAo+IGhpcyBDUFVz IGFyZSBpbmNyZWRpYmxlLCBkZXNpZ25lZCBpbiB0aGUgbW9zdCBhbWF6aW5nIGVsZWdhbnQgYW5k IHVudXN1YWwKPiB3YXlzLiAgaGUgd3JvdGUgaGlzIG93biBQTEEgc3R5bGUgImxhbmd1YWdlIiAo d3JpdHRlbiBpbiBsaXNwKSB3aGljaCB0YWtlcwo+IHNwZWNpZmljYXRpb25zIChpbiBsaXNwIGxp c3RzKSBmb3IgZnVuY3Rpb25hbGl0eSBhbmQgKmdlbmVyYXRlcyogVkhETAo+IGNvbWJpbmF0b3Jp YWwgYmxvY2tzLgo+IAo+IGhlIHVzZWQgdGhpcyB0b29sIHRvIGNyZWF0ZSBhIDY1MDItbGlrZSBw cm9jZXNzb3Igd2l0aCB2aXJ0dWFsbHkgbm8KPiBtYW51YWxseSB3cml0dGVuIGdsdWUgbG9naWMg KGV2ZW4gdGhlIGRlY29kZXIgd2FzIHdyaXR0ZW4gaW4gdGhpcyBzaW1wbGUKPiBzcGVjaWZpY2F0 aW9uKSwgdGhhdCBlYXNpbHkgZml0cyBpbnRvIGFuIHVsdHJhIGxvdyBjb3N0IElDRTQwIHlldCBo YXMKPiBtYXNzaXZlIGFtb3VudHMgb2Ygcm9vbSB0byBzcGFyZSBmb3IgcGVyaXBoZXJhbHMuCj4g Cj4gdGhlIGtleSB0byB0aGUgc3VjY2VzcyBvZiB0aGlzIGFwcHJvYWNoIHdhcyB0aGUgaGVhdnkg dHJhZGVvZmYgb2YgKm5vdCoKPiB1c2luZyBwaXBlbGluZSBzdGFnZXMsIGJ1dCBlZmZlY3RpdmVs eSBkb2luZyBhIEZTTSBzdHlsZSBlbnRpcmUgZXhlY3V0aW9uCj4gZGVzaWduLiAgYWN0dWFsbHkg aXQgd2Fzbid0IGV2ZW4gYSBGU00sIGkgdGhpbmsgaGUgdXNlZCB0aGUgdGVybSAiUExBIi4gIGkK PiBhbSBnYXJibGluZyBpdCwgaXQgd2FzIGEgeWVhciBhZ28sIHRoZXJlIGFyZSBzb21lIGtleXdv cmRzIGkgaGF2ZSBtaXNzZWQKPiBvdXQsIHlvdSBnZXQgdGhlIGlkZWEgdGhvdWdoLgo+IAo+IHdo YXQgaSBhbSByZWFsbHkgc2F5aW5nIGlzOiBwbGVhc2UgZG8gc2VyaW91c2x5IGNvbnNpZGVyIHNp bXBseSBzdGFsbGluZyBvbgo+IGFueXRoaW5nIHRoYXQgY291bGQgaGF2ZSBhbiBleGNlcHRpb24g dGhyb3duLiAgYXJyYW5nZSBmb3IgdGhlIGVudGlyZQo+IHBpcGVsaW5lIHRvIHNpbXBseSBncmlu ZCB0byBhIGhhbHQsICpnbG9iYWxseSogZnJlZXppbmcgcmlnaHQgdGhlIHdheSBiYWNrCj4gdG8g dGhlIGRlY29kZSBwaGFzZSwgb25seSBwcm9jZWVkaW5nIHdoZW4gaXQgaXMgZ3VhcmFudGVlZCBr bm93biwgMTAwJSwKPiB0aGF0IHRoZSBleGNlcHRpb24gd2lsbCBOT1Qgb2NjdXIuCj4gCj4gdGhp cyBpcywgYmVsaWV2ZSBpdCBvciBub3QsIGFuIGluZHVzdHJ5LXdpZGUgImFjY2VwdGFibGUiIHRl Y2huaXF1ZSBpbiBBTEwKPiBpbi1vcmRlciBkZXNpZ25zLgo+IAo+IGxvb2sgdXAgIm1pbmVydmEg cnYzMiIgb24gZ2l0aHViIChpdCBpcyB2ZXJ5IHJlYWRhYmxlIGNvZGUpIGFuZCBncmVwIGl0cwo+ IHNvdXJjZSBmb3IgdGhlIHdvcmQgInN0YWxsIi4KPiAKPiB5b3Ugd2lsbCBmaW5kIGEgKmNvbWJp bmF0b3JpYWwqIGdsb2JhbCBzaWduYWwgcHJvcGFnYXRlcyB0aHJvdWdob3V0ICpldmVyeSoKPiBw aXBlbGluZSBzdGFnZSwgaW1wbGVtZW50aW5nIHRoaXMgInN0b3AgdGhlIHdvcmxkIGkgd2FudCB0 byBnZXQgb2ZmISIKPiBpbmR1c3RyeS13aWRlICJzb2x1dGlvbiIuCj4gCj4gbGl0ZXJhbGx5IGV2 ZXJ5IGVmZm9ydCB0aGF0IGkgaGF2ZSBzZWVuIHRoYXQgYXR0ZW1wdHMgKm5vdCogdG8gZm9sbG93 IHRoYXQKPiAic29sdXRpb24iIGZvciBpbm9yZGVyIGRlc2lnbnMgaW52b2x2ZXMgdGhlIHdvcmQg ImJ1dCIgYW5kIGl0IGdvZXMgZG93bmhpbGwKPiBmcm9tIHRoZXJlLgo+IAo+IHN1cnByaXNpbmcs IGVobj8gOikKClRoYW5rcyBmb3IgdGhlIGNvbW1lbnRzIGFuZCB0aGUgcG9pbnRlcnMuICBXZSBk byBhbHJlYWR5IGhhdmUgc3RhbGwKc2lnbmFscyBpbiBtaWNyb3dhdHQsIGJ1dCB0aGUgd2F5IGl0 IHdvcmtzIGlzIHByZXR0eSBzaW1wbGUgc28gZmFyLgpUaGUgcGlwZWxpbmVkLCBpbi1vcmRlciBl eGVjdXRpb24gc3RydWN0dXJlIGJhc2ljYWxseSBjb21lcyBmcm9tCkFudG9uJ3MgaW5pdGlhbCB3 b3JrLCBzbyBJIGRvbid0IHRoaW5rIHdlJ2xsIGJlIHRocm93aW5nIHRoYXQgb3V0LgpXZSB3aWxs IGNvbnRpbnVlIHRvIG1ha2UgcmVhZGFiaWxpdHkgYW5kIHVuZGVyc3RhbmRhYmlsaXR5IGEgZm9j dXMsCmFuZCBJIGZvciBvbmUgd2lsbCB0cnkgdG8gYWRkIG1vcmUgY29kZSBjb21tZW50cyBhcyBJ IHdvcmsgb24gaXQgdG8KbWFrZSBpdCBlYXNpZXIgdG8gZm9sbG93LgoKVGhhbmtzLApQYXVsLgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlz Y3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3Jn Cmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNj di1kZXYK