From 7f2b26c33085a2188c3186d930977cad89b5de3a Mon Sep 17 00:00:00 2001 From: Jacob Lifshay Date: Tue, 5 May 2020 17:23:59 -0700 Subject: [PATCH] Re: [libre-riscv-dev] load/store execution queue idea --- 7d/3fe9b10cf2d4c81929ec9f5f2ac47a30085040 | 200 ++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 7d/3fe9b10cf2d4c81929ec9f5f2ac47a30085040 diff --git a/7d/3fe9b10cf2d4c81929ec9f5f2ac47a30085040 b/7d/3fe9b10cf2d4c81929ec9f5f2ac47a30085040 new file mode 100644 index 0000000..e5fb83a --- /dev/null +++ b/7d/3fe9b10cf2d4c81929ec9f5f2ac47a30085040 @@ -0,0 +1,200 @@ +Return-path: +Envelope-to: publicinbox@libre-riscv.org +Delivery-date: Wed, 06 May 2020 01:24:13 +0100 +Received: from localhost ([::1] helo=libre-riscv.org) + by libre-soc.org with esmtp (Exim 4.89) + (envelope-from ) + id 1jW7rA-0004C3-DF; Wed, 06 May 2020 01:24:12 +0100 +Received: from mail-wm1-f44.google.com ([209.85.128.44]) + by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) + (Exim 4.89) (envelope-from ) + id 1jW7r8-0004Bx-Lu + for libre-riscv-dev@lists.libre-riscv.org; Wed, 06 May 2020 01:24:10 +0100 +Received: by mail-wm1-f44.google.com with SMTP id 188so525603wmc.2 + for ; + Tue, 05 May 2020 17:24:10 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; + h=mime-version:references:in-reply-to:from:date:message-id:subject:to; + bh=tWuXAHmioQeWJ7f+ppKZOYrxKUAAla7N47WfxlIGJAM=; + b=aX1JI8WtUnX2uj1OIAC6GHp86qc8w1JGRKm7TlQ5cVfTB7nCrvxJkXPC9PRtDJtL58 + zlQSDozcdGln+5APpIv6x9ceKliOGuCrAnNsm4MGSXgeTtd5sXfsMcnzsg9dRmquFODu + +PaD49gXyP6AgLIw2Kfst7FDa2aIzvdAy/ezzSGSsYh+Cdx+Ycr9I9OgVgRIpFoowV1m + 4TWVJO8u1JD3XTpEhH1JtligYLBWJpjH42xhKi/Eyv5kZ21jIkFzG14ABWGUPjM+Zu3M + cfYn7e2T0CGUb/JeZ7aqFPybl50cUZSFiBCFoWYOyD9jIT81GuxEc8YvAsib6B5kwoG+ + ttyA== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20161025; + h=x-gm-message-state:mime-version:references:in-reply-to:from:date + :message-id:subject:to; + bh=tWuXAHmioQeWJ7f+ppKZOYrxKUAAla7N47WfxlIGJAM=; + b=MrIXaxI6YoBLFr/asT6s7hJtJDF8YaCyRNGDwdkIUXq63zyH+B+l5yVDOR4OjT6ALw + CezV6TK1XlYQ+dJwaJxzp+FNLYJYf31oyoRr+WF6h48fVrPoRCbXGdU+AxhgGkV1IdZp + H1GIvW74EazrPznMKNQdyARKstbzPCa+BeD+xWWuxdKEGh1AKJ/47wmeQ7dY/R9rX0tt + NrOvV0pUgYf7fZEX0z9ZZnqVunnFnWolUb7gpDoGEpG02o83FOz9uQ/WV314ulaKiLzo + QYIgA01n86HqymboK6F/tFRzycBQnB8h7jTiQW9o1fdtjlXmY3kwURvQ3zhxYUykj9NL + fAaA== +X-Gm-Message-State: AGi0PubvxSykgjJbfQOWoXNRia3ambKFKCchBjZrpgpZYyvj95mGKRV4 + VdCKUwi6kXrk6rRjvP2dsvH2RSg2u6wcfiB1xlzoWBE/ +X-Google-Smtp-Source: APiQypLBGNnI2OAHZ/nWbeYPUfsOyl4d77ku8pg8+roK0bg3kpRXpyT8Fqv0t6DuGfkiAekOkAg0Jwv7uVk88RZP8Vo= +X-Received: by 2002:a1c:5448:: with SMTP id p8mr1198564wmi.173.1588724650159; + Tue, 05 May 2020 17:24:10 -0700 (PDT) +MIME-Version: 1.0 +References: + +In-Reply-To: +From: Jacob Lifshay +Date: Tue, 5 May 2020 17:23:59 -0700 +Message-ID: +To: Libre-RISCV General Development +Subject: Re: [libre-riscv-dev] load/store execution queue idea +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 + +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" + +V2lsbCByZXNwb25kIHRvIGFsbCB0aGVzZSBjb25jZXJucyBsYXRlciwgb25jZSB0aGVyZSBpcyBt +b3JlIGZyZWUgdGltZS4KCk9uIEZyaSwgTWF5IDEsIDIwMjAgYXQgNDoyNSBBTSBMdWtlIEtlbm5l +dGggQ2Fzc29uIExlaWdodG9uCjxsa2NsQGxrY2wubmV0PiB3cm90ZToKPgo+IE9uIEZyaSwgTWF5 +IDEsIDIwMjAgYXQgMzo1NCBBTSBKYWNvYiBMaWZzaGF5IDxwcm9ncmFtbWVyamFrZUBnbWFpbC5j +b20+IHdyb3RlOgo+Cj4gPiBJIGZpbGxlZCBvdXQgc29tZSBub3RlcyBvbiBteSBsb2FkL3N0b3Jl +IGV4ZWN1dGlvbiBxdWV1ZSBpZGVhIGhlcmU6Cj4gPiBodHRwczovL2xpYnJlLXNvYy5vcmcvM2Rf +Z3B1L2FyY2hpdGVjdHVyZS9hbHRlcm5hdGl2ZS1kZXNpZ24taWRlYS8KPgo+IGV4Y2VsbGVudC4K +Pgo+ID4gVGhlIGRlc2lnbiBzaG91bGQgYmUgc3VpdGFibGUgZm9yIHRoZSBmaW5hbCAyOG5tIFNv +QyBhbmQgc2hvdWxkIGJlCj4gPiBhYmxlIHRvIGV4ZWN1dGUgNCBsb2FkcyBvciA0IHN0b3JlcyBv +ciA0IEFNT3Mgb3IgNCBmZW5jZXMgcGVyIGN5Y2xlLAo+ID4gY29tcGxldGVseSBhZGp1c3RhYmxl +IHRvIHNvbWUgb3RoZXIgbnVtYmVyIGlmIHdlIGRlc2lyZS4gVGhpcyB0b3RhbGx5Cj4gPiByZXBs +YWNlcyB0aGUgbWVtb3J5IGRlcGVuZGVuY3kgbWF0cml4Lgo+Cj4gaG1tLiAgIHRoZSBNRE0gaXMg +c3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGlkZW50aWZ5IHNlcGFyYXRlIGFuZAo+IGRpc3RpbmN0 +IExELWJhdGNoZXMgZnJvbSBTVC1iYXRjaGVzIGZyb20gQXRvbWljLWJhdGNoZXMsIGluIGFuCj4g +ZXh0cmVtZWx5IGdhdGUtZWZmaWNpZW50IGZhc2hpb24uICB3ZSBkb24ndCBuZWVkIFRTTywgd2Ug +anVzdCBuZWVkIHRvCj4gcHJlc2VydmUgdGhlIG9yZGVyIG9mIGJhdGNoZXMgKGFuZCBhbHNvIGlk +ZW50aWZ5IG92ZXJsYXBzKS4KPgo+Cj4gPiBPbmUgZG93bnNpZGUgaXMgaXQgZG9lc24ndAo+ID4g +c3VwcG9ydCBmb3J3YXJkaW5nIGZyb20gc3RvcmVzIHRvIGxhdGVyIGxvYWRzIHdpdGhvdXQgZ29p +bmcgdGhyb3VnaAo+ID4gdGhlIEwxIGNhY2hlLgo+Cj4gdGhhdCdzIG9rLgo+Cj4gb2ssIGEgY3Jp +dGljYWwgYXNwZWN0IHRvIHVuZGVyc3RhbmQgYWJvdXQgQ29tcHV0YXRpb25hbCBVbml0czogdGhl +eSBkbwo+ICpub3QqIHByb2NlZWQgdW50aWwgdGhlICJwdXJwb3NlIiB0aGF0IHRoZXkgbWFuYWdl +IGlzIGVudGlyZWx5IGZpbmlzaGVkLgo+IHRoZXkgdGhlbiAqbm90aWZ5KiB0aGUgRGVwZW5kZW5j +eSBNYXRyaWNlcyB0aGF0IHRoZSAicmVzdWx0IiBpcyBkb25lCj4gKGF2YWlsYWJsZSksIGFuZCAq +dGhlbiogdGhleSBkcm9wIHRoZWlyICJidXN5IiBmbGFnLCByZWFkeSBmb3IgcmUtdXNlIGZvcgo+ +IGFub3RoZXIgb3BlcmF0aW9uLgo+Cj4gdGhpcyBpcyB0aGUgdG90YWwgb3Bwb3NpdGUgb2YgYSBw +aXBlbGluZSBvciBxdWV1ZSwgd2hlcmUgeW91IGNodWNrIGRhdGEKPiBhdCBpdCwgYWJkaWNhdGUg +cmVzcG9uc2liaWxpdHkgZm9yIGl0cyBtYW5hZ2VtZW50LCBhbmQgYXQgc29tZSBhcmJpdHJhcnkK +PiBwb2ludCBpbiB0aGUgZnV0dXJlLCB0aGUgcmVzdWx0IGNvbWVzIG91dCwgYnV0IGJ5IHRoYXQg +dGltZSBldmVyeXRoaW5nCj4gaGFzIG1vdmVkIG9uLgo+Cj4gYW4gb3V0LW9mLW9yZGVyIHNjaGVk +dWxpbmcgc3lzdGVtICpjYW5ub3QqIC0gaW4gYW55IHdheSAtIHBlcm1pdCB0aGF0Cj4gdG8gaGFw +cGVuLiAgdGhlIHJlc3VsdHMgd291bGQgYmUgY2F0YXN0cm9waGljLgo+Cj4gdGhlcmVmb3JlIGlu +IHRoZSBBTFUgQ29tcHV0YXRpb25hbCBVbml0cyB3aGljaCBtYW5hZ2UgYSBwaXBlbGluZQo+IChv +ciBwaXBlbGluZXMpLCB3ZSAqbXVzdCogaGF2ZSBlcXVhbCBvciBncmVhdGVkIENvbXBVbml0cyB0 +aGFuCj4gdGhlcmUgaXMgcGlwZWxpbmUgZGVwdGguCj4KPiAqIGdyZWF0ZXIgdGhhbiB0aGF0IGlz +IG9rOiBpbnN0cnVjdGlvbnMgd2lsbCBiZSBhYmxlIHRvIHJ1biBhaGVhZC4KPiAgIHRoZSBERVNJ +UkUgdG8gcnVuIGluc3RydWN0aW9ucyAoYW5kIHRoZSBvcmRlciBhcyBhIERBRykgaXMKPiAgIHJl +Y29yZGVkLCBob3dldmVyIHRoZWlyIEFDVFVBTCBleGVjdXRpb24gbXVzdCB3YWl0IHVudGlsCj4g +ICB0aGVyZSBpcyBhIGZyZWUgcGlwZWxpbmUgc2xvdC4KPiAqIGxlc3MgdGhhbiB0aGF0IGlzIE5P +VCByZWFsbHkgb2sgKGEgd2FzdGUgb2Ygc2lsaWNvbikgYmVjYXVzZSB0aGVyZQo+ICAgaXMgbm90 +IGVub3VnaCB0byB0cmFjayB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmQgZXZlcnkgb3BlcmF0aW9u +Cj4gICBnb2luZyB0aHJvdWdoIGVhY2ggYW5kIGV2ZXJ5IHBpcGVsaW5lIHN0YWdlLgo+Cj4gd2hl +biBpdCBjb21lcyB0byBtYW5hZ2luZyBNZW1vcnksIHRoZSBpbXBsaWNhdGlvbnMgYXJlIGFzIGZv +bGxvd3M6Cj4KPiAqIHRvIGhhdmUgbW9yZSBMRC9TVCBDb21wdXRhdGlvbiBVbml0cyB0aGFuIHRo +ZXJlIGFyZSAiQ2VsbHMiCj4gICBpcyBsaWtld2lzZSBvay4gIGluc3RydWN0aW9ucyB3aWxsIGJl +IGFibGUgdG8gcnVuIGFoZWFkLgo+ICogdG8gaGF2ZSBMRVNTIExEL1NUIENVcyB0aGFuIHRoZXJl +IGFyZSAiQ2VsbHMiIGlzICpOT1QqIG9rLAo+ICAgYmVjYXVzZSB0aGUgQ29tcHV0YXRpb25Vbml0 +cyB3aWxsIE5FVkVSUlJSUiBpc3N1ZSBhCj4gICBMRCBvciBTVCB1bnRpbCBpdCBrbm93cyAtIGFi +c29sdXRlbHkgYW5kIHdpdGhvdXQgYW55IHNoYWRvdyBvZgo+ICAgZG91YnQgLSB0aGF0IHRoZSBv +cGVyYXRpb24gaXQgbW9uaXRvcnMgaGFzIDEwMCUgYWJzb2x1dGUgZ3VhcmFudGVlZAo+ICAgY29t +cGxldGVkLgo+Cj4gc28gdGhhdCdzIHJlYWxseSBjcnVjaWFsIGluZm9ybWF0aW9uIHRoYXQgaGFz +IGltcGxpY2F0aW9ucyBmb3IgdGhlCj4gZGVzaWduIG9mIHRoZSBMRC9TVCBCdWZmZXIsIGltcG9y +dGFudCBhcyBjb250ZXh0LCBiZWxvdy4KPgo+Cj4gbm90ZXM6Cj4KPiAxKSB0aGUgY2VsbCBhcnJh +bmdlbWVudCBzdGlsbCBuZWVkcyBhbiA4LWlucHV0ICg4IExEL1NUIENvbXB1dGF0aW9uIFVuaXRz +KQo+IHRvIDQtb3V0cHV0IChoZWFkIG9mIGVhY2ggImNvbHVtbiIgb2YgZWFjaCBxdWV1ZSkgbXVs +dGlwbGV4ZXIuCj4gdW5sZXNzIGkndmUgbWlzdW5kZXJzdG9vZCwgdGhhdCBhbG9uZSBpcyBhIGtp +bGxlci4KPgo+IGRyb3BwaW5nIGVhY2ggb2YgdGhlIDgtaW5wdXQgcXVldWUgZW50cmllcyBpbnRv +IHRoZSBmaXJzdCA4IGNlbGxzICp0aGVuKgo+IHBlcmZvcm1pbmcgc2hpZnRpbmcsICp0aGF0KiBp +cyBva2F5LiAgYnV0IGFsbG93aW5nIGVhY2ggYW5kIGV2ZXJ5IHNpbmdsZQo+IG9uZSBvZiB0aG9z +ZSA4IExEL1NUIENvbXBVbml0cyB0byB3cml0ZSB0byBjZWxscyAwLTQ/IHRoZSB3aXJpbmcgYWxv +bmUKPiBpcyBpbnNhbmUuCj4KPiBhc3N1bWUgMTI4IGJpdHMgcGVyIG9wZXJhdGlvbiAoNDggYWRk +cmVzcywgNjQgZGF0YSwgc29tZSBjb250cm9sIGxpbmVzCj4gbGV0J3Mgcm91bmQgaXQgdXAgdG8g +MTI4IGJpdHMpOiB3aXRoIDEyOC13aWRlIGRhdGEgcGF0aHMgdGltZXMgOCBMRC9TVAo+IENvbXAg +VW5pdHMgdGltZXMgKjQqIHRvIGJlIGFibGUgdG8gYXJiaXRyYXJpbHkgd3JpdGUgdG8gYW55IG9u +ZSBvZgo+IDQgInRvcCByb3ciIGNlbGxzPyAgdGhhdCdzIGEgTUFTU0lWRSA0MDk2IHdpcmVzIQo+ +Cj4gd2UgY2FuJ3QgcG9zc2libHkgaGF2ZSB0aGF0IG1hbnkgd2lyZXMuCj4KPiBpZiB5b3UgbWVh +bnQgdGhhdCB0aGUgcXVldWUgd2lkdGggc2hvdWxkIG1hdGNoIHRoZSBudW1iZXIgb2YgTEQvU1QK +PiBVbml0cyAtIDgtd2lkZSBiZWNhdXNlIHdlIG5lZWQgOCBMRC9TVCBDb21wVW5pdHMgKHdlIG1p +Z2h0IGJlCj4gYWJsZSB0byBnZXQgYXdheSB3aXRoIG9ubHkgNikgLSB0aGVuIHRoZSByZW1haW5p +bmcgZW50cmllcyB3aWxsIGFjdHVhbGx5Cj4gcmVtYWluIHBlcm1hbmVudGx5IGVtcHR5LCBiZWNh +dXNlIHRoZXJlICpoYXMqIHRvIGJlIGEgZGlyZWN0Cj4gb25lLXRvLW9uZSBtYXRjaCBiZXR3ZWVu +IExEL1NUIENvbXBVbml0cyBhbmQgdGhlIExEL1NUIHRoYXQKPiBpdCAibWFuYWdlcyIuCj4KPiBz +byB0aGVyZSB3b3VsZCBvbmx5IGJlIDggTEQvU1RzLCBhbmQgYSByb3cgZGVwdGggb2YgMS4KPgo+ +IGlmIGhvd2V2ZXIgd2UgZG8gMi1wb3J0cyBwZXIgQ29tcFVuaXQgKHRvIGNvdmVyIG1pc2FsaWdu +ZWQpLCB0aGVuIHRoZXJlCj4gd291bGQgYmUgYW4gOC13aWRlIGJ5IDItcm93IGFycmFuZ2VtZW50 +IG9mIENlbGxzLgo+Cj4gd2l0aCBvbmx5IGEgQ2VsbCBEZXB0aCBvZiAxIG9yIDIsIHRoZSBwdXJw +b3NlICpvZiogdGhlIENlbGxzIGlzIGRlZmVhdGVkCj4gZW50aXJlbHkuICB0aGVyZSdzIG5vIG5l +ZWQgZm9yIHNoaWZ0aW5nOiB0aGUgZW50cmllcyBtaWdodCBhcyB3ZWxsIHN0YXkKPiB3aGVyZSB0 +aGV5IGFyZS4KPgo+IHRoaXMgcGFydGljdWxhcmx5IGJlY2F1c2UgZXZlbiBmb3IgdGhlICJtaXNh +bGlnbm1lbnQiIGNhc2UsIHRoZSBMRC9TVAo+IENvbXBVbml0IGlzICpORVZFUlJSKiBnb2luZyB0 +byBwbGFjZSBhbnl0aGluZyBvdGhlciB0aGFuIHRoZQo+IDIgcmVxdWVzdHMgaXQgaXMgcmVzcG9u +c2libGUgZm9yIGludG8gdGhlIHF1ZXVlOgo+Cj4gKiBmaXJzdCBvbmUgY292ZXJpbmcgdGhlIGxv +d2VyIHBhcnQgb2YgdGhlIG1pc2FsaWduZWQgcmVxdWVzdAo+ICogc2Vjb25kIG9uZSBjb3Zlcmlu +ZyB0aGUgdXBwZXIgcGFydC4KPgo+IG5vIG1hdHRlciBob3cgbWFueSBjb2x1bW5zIChhc3N1bWlu +ZyB0aGF0IHRoZXJlIGlzIG9uZQo+IHBlciBMRFNUQ1UpIGFsbCBvdGhlciByb3dzICp3aWxsKiBy +ZW1haW4gZW1wdHkuCj4KPiBhbmQgaWYgdGhlIGNvbHVtbnMgYXJlIGhhbHZlZCAoNCB3aWRlIHRv +IGNvdmVyIDggTEQvU1QgQ1VzKQo+IG5vdyB3ZSBoYXZlIGEgbXVjaCBtb3JlIHNlcmlvdXMgcHJv +YmxlbTogdGhlIHRvdGFsIGRhdGEgYmFuZHdpZHRoCj4gaXMgc2hydW5rIHRvIG9ubHkgNHggNjQt +Yml0IG9wZXJhdGlvbnMgKmFuZCogdGhlcmUgaXMgYSBtdWx0aXBsZXhpbmcKPiBwcm9ibGVtIGFj +dHVhbGx5IGdldHRpbmcgZGF0YSBpbnRvIHRoZSBmaXJzdCAyIHJvd3MgKGFjdHVhbGx5LCBub3cs +Cj4gNCByb3dzIGlmIHRoZXJlIGFyZSAyIHBvcnRzIHBlciBMRC9TVCBDVSwgb25lIGZvciBsb3dl +ci1taXNhbGlnbmVkCj4gb25lIGZvciB1cHBlci1taXNhbGlnbmVkKS4KPgo+IGRvIHdlIHN0YWxs +IHRoZSByZXF1ZXN0cyBpZiB0aGV5IGRvIG5vdCBoYXZlIGFjY2Vzcz8gIHRoYXQgbWVhbnMKPiB0 +aGF0IG9wcG9ydHVuaXRpZXMgdG8ga2VlcCB0aGUgTDEgY2FjaGUtbGluZSByZXF1ZXN0cyAxMDAl +IGZ1bGwKPiBhcmUgbWlzc2VkLCB3aGVyZSB0aGUgY3VycmVudCBkZXNpZ24gY2FuICpldmVuIGNh +dGNoIG1pc2FsaWduZWQKPiBlbGVtZW50LXN0cmlkZWQgZGF0YSByZXF1ZXN0cyogYW5kIGNhbiAx +MDAlIG1lcmdlIHRoZW0gaW50bwo+IGEgZnVsbCBjYWNoZS1saW5lIHJlcXVlc3QuCj4KPgo+Cj4g +ImFuZCB0aGUgTDEgY2FjaGUgbGluZSBhZGRyZXNzIGl0IHdvdWxkIHVzZSBpcyBicm9hZGNhc3Qg +dG8gYWxsIGNlbGxzLiIKPgo+IHRoaXMgaXMgYSBmdWxsIFhPUi1jb21wYXJpc29uIG9mIHRoZSBl +bnRpcmUgYWRkcmVzcywgYWdhaW5zdCBldmVyeSBzaW5nbGUgY2VsbC4KPgo+IGlmIHRoZSBhZGRy +ZXNzIGlzIDQ4IGJpdHMgYW5kIHRoZXJlIGFyZSAxMiBjZWxscywgdXNpbmcgYml0cyAzIGFuZCBh +Ym92ZSBvZgo+IHRoZSBhZGRyZXNzIHdpbGwgcmVxdWlyZSA1MjggWE9SIGdhdGVzLgo+Cj4gaWYg +d2Ugd2FudCAqdHdvKiBMMSBjYWNoZSBsaW5lIGFkZHJlc3NlcyBzaW11bHRhbmVvdXNseSAocmF0 +aGVyIHRoYW4KPiBnb2luZyB0byAyNTYtYml0LXdpZGUgTDEgY2FjaGUgbGluZXMpLCB0aGF0J3Mg +KnR3byogYnJvYWRjYXN0cywgZWFjaCA1MjgKPiBYT1IgZ2F0ZXMuCj4KPgo+IDIpIGhvdyBhcmUg +b3ZlcmxhcHBpbmcgYWRkcmVzc2VzIGRldGVjdGVkPyAgb3IsIG1vcmUgdG8gdGhlIHBvaW50LAo+ +IGhvdyBhcmUgbm9uLW92ZXJsYXBwaW5nIGFkZHJlc3NlcyBkZXRlY3RlZCBzdWNoIHRoYXQgdGhl +eSBjYW4gYmUKPiBwYXNzZWQgdGhyb3VnaCBhcyBhIGdyb3VwLCBhbmQgZ2l2ZW4gdGhlIG9wcG9y +dHVuaXR5IHRvIGJlIGRvbmUgaW4KPiBwYXJhbGxlbD8KPgo+IDMpIGhvdyB3b3VsZCBtaXNhbGln +bmVkIGFkZHJlc3NlcyBoYW5kbGVkPwo+Cj4gNCkgaSdtIG5vdCBzZWVpbmcgaG93IHJlcXVlc3Rz +IGNvdWxkIGJlIG1lcmdlZCBpbnRvICIxMDAlIGZ1bGwgY2FjaGUKPiBsaW5lIiByZXF1ZXN0cywg +d2hpY2ggdGhlIGN1cnJlbnQgZGVzaWduIGlzIGNhcGFibGUgb2YgZG9pbmcsIGJ5IHVzaW5nCj4g +c2ltcGxlIGJpdC13aXNlIEFORGluZyBhbmQgT1JpbmcuICB0aGUgQWJzdHJhY3QgUHJlZml4IFN1 +bSBjbGFzcwo+IGRvZXNuJ3QgbG9vayBvYnZpb3VzIGFzIHRvIGhvdyB0aGF0IGhhcHBlbnMsIGFu +ZCBpcyBsaWtlbHkgdG8gYmUKPiBtdWNoIG1vcmUgY29zdGx5IHRoYW4gYSBzaW1wbGUgQU5EIGFu +ZCBPUiBuZXR3b3JrLgo+Cj4gNSkgaG93IGFyZSBjbGFzaGVzIG9mIGFkZHJlc3NlcyAqaW50ZXIt +cm93KiBkZXRlY3RlZD8gIGlmIENlbGwgMCBoYXMgYSBTVAo+IG9mIDgtYml0cyB0byBhZGRyZXNz +IDB4MDAwMSBhbmQgQ2VsbCAxIGhhcyBhIFNUIG9mIDggYml0cyB0byBhZGRyZXNzCj4gMHgwMDAy +IChhIDcgYnl0ZSBvdmVybGFwKSwgaG93IGlzIHRoaXMgZGV0ZWN0ZWQgKmluIHRoZSByb3cqPwo+ +Cj4gaW4gdGhlIGNvbHVtbiBpdCBpcyBmaW5lLCBiZWNhdXNlIG9ubHkgb25lIHJvdyBpcyBldmVy +IGRvbmUgYXQgb25jZQo+ICh3aGljaCBoYXMgaW1wbGljYXRpb25zIGZvciBtaXMtYWxpZ25lZCBk +YXRhIHJlcXVlc3RzLCB0aGVyZSB3aWxsIG5ldmVyCj4gYmUgYSAxMDAlIG1lcmdlIG9wcG9ydHVu +aXR5KQo+Cj4KPiBhbGwgb2YgdGhlc2UgdGhpbmdzIHRvb2sgc2V2ZXJhbCAqbW9udGhzKiB0byBm +YWN0b3IgaW4gdG8gdGhlIGRlc2lnbiwgaW4KPiBzZXZlcmFsIHN0YWdlcy4gIGl0J3MgbWFzc2l2 +ZWx5IGNvbXBsZXggYW5kIGludGVyLWRlcGVuZGVudC4KPgo+IGwuCj4KPiBfX19fX19fX19fX19f +X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGxpYnJlLXJpc2N2LWRldiBtYWls +aW5nIGxpc3QKPiBsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCj4gaHR0cDov +L2xpc3RzLmxpYnJlLXJpc2N2Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpYnJlLXJpc2N2LWRldgoK +X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlz +Y3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3Jn +Cmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNj +di1kZXYK + -- 2.30.2