Return-path: Envelope-to: publicinbox@libre-riscv.org Delivery-date: Sat, 16 May 2020 22:38:18 +0100 Received: from localhost ([::1] helo=libre-riscv.org) by libre-soc.org with esmtp (Exim 4.89) (envelope-from ) id 1ja4Vd-00087F-9V; Sat, 16 May 2020 22:38:17 +0100 Received: from lkcl.net ([217.147.94.29]) by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1ja4Vb-000879-Oh for libre-riscv-dev@lists.libre-riscv.org; Sat, 16 May 2020 22:38:15 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lkcl.net; s=201607131; h=Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version; bh=ebLG0nqj6OyD5RE5QjDvf5rusdRRL9YEb0LKyJhW7rQ=; b=Nl3sjp89DaCVss3sZVWNJpfyBOcbgTpz44BvdcTH12wX1scAeDDuJ+Yu4cVpSkKpJNlfMTwhguguhNgmUmibE4EMLyRn/174h1i5TsvTgMH5S9SJPqmLYVBrTZ9PKTh2KC3NY9YTaw7dLXeF56lu7yEIK0mlRscWIQfH0noBrjE=; Received: from mail-lj1-f172.google.com ([209.85.208.172]) by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ja4Vb-0007bA-C4 for libre-riscv-dev@lists.libre-riscv.org; Sat, 16 May 2020 21:38:15 +0000 Received: by mail-lj1-f172.google.com with SMTP id b6so5918503ljj.1 for ; Sat, 16 May 2020 14:37:59 -0700 (PDT) X-Gm-Message-State: AOAM530cQdmsuvIJD1stHDjrcDtJ/m2PsuzAStcXnT6Sd1Cx/XTp/h35 XIsCk5QM3xpXSz8whRJ8phtjK/pGK9WkazIl3es= X-Google-Smtp-Source: ABdhPJxIcDDPcglnlzJxc+I/L8v9iq5Bd/8aAn49rxOZdlJbOu7Y3KmSD4LMra/gjdMSvl/a637Lz5utE4lFjUmBANw= X-Received: by 2002:a2e:8056:: with SMTP id p22mr6143482ljg.266.1589665074004; Sat, 16 May 2020 14:37:54 -0700 (PDT) MIME-Version: 1.0 References: <13EDF987-9A19-4C96-89C2-6DB784CF2C96@gatech.edu> <25AC8A2E-D48F-439F-AF9D-0EB3DC08D7CC@gatech.edu> In-Reply-To: From: Luke Kenneth Casson Leighton Date: Sat, 16 May 2020 22:37:40 +0100 X-Gmail-Original-Message-ID: Message-ID: To: Libre-RISCV General Development Subject: Re: [libre-riscv-dev] Scoreboard vs Tomasulo 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" T24gU2F0LCBNYXkgMTYsIDIwMjAgYXQgOToxNiBQTSBKZXJlbXkgU2luZ2hlciA8dGhlanNpbmdo ZXJAZ21haWwuY29tPiB3cm90ZToKCj4gPiBIb3dldmVyLCB0aGUgc2NvcmVib2FyZCBpcyBsaW1p dGVkIGluIHRoYXQgaXQgZG9lcyBub3QgaGFuZGxlIFdBUiBhbmQgV0FXCj4gPiBoYXphcmRzIHZl cnkgd2VsbC4KPgo+ID4gdGhlIG9yaWdpbmFsIDY2MDAgaGFuZGxlcyBXQVIgZXh0cmVtZWx5IHdl bGwsIG9ubHkgc3RhbGxpbmcgb24gV2FXCj4gPiBjb25kaXRpb24sIGRldGVjdGlvbiB3aGljaCBk aWQgbm90IG1hdHRlciBncmVhdGx5IGJlY2F1c2UgdGhlIHBpcGVsaW5lcwo+ID4gd2VyZSBvbmx5 IGF0IG1vc3QgMiBzdGFnZXMgbG9uZyBhbnl3YXkgKE1pdGNoIG9ubHkgbm90aWNlZCBhZnRlciBy ZXJlYWRpbmcKPiA+IGxhc3QgeWVhciB0aGF0IHRoZSBGUCBBREQgb2YgdGhlIDY2MDAgd2FzIDIg c3RhZ2UgcGlwZWxpbmVkLiAgbm8gYWNhZGVtaWMKPiA+IGxpdGVyYXR1cmUgaGFzIGFja25vd2xl ZGdlZCBvciBub3RpY2VkIHRoaXMpLgo+Cj4gSSB3b3VsZCBhcmd1ZSB0aGF0IHRoZSBDREM2NjAw IGhhbmRsZXMgV0FSIGJldHRlciB0aGFuIGFuIGluLW9yZGVyCj4gbWFjaGluZSwgYnV0IG5vdCBi ZXR0ZXIgdGhhbiBhIG1hY2hpbmUgd2l0aCBmdWxsIHJlbmFtaW5nLgoKSmVyZW15OiA2NjAwIGRl c2lnbnMgKmRvKiBoYXZlIHJlZ2lzdGVyICJyZW5hbWluZyIuICBpIHNhaWQgYWxyZWFkeSwKYSBu dW1iZXIgb2YgdGltZXMuICBhbmQgaWYgeW91IGhhdmUgc3R1ZGllZCBhbmQgbGlzdGVuZWQgdG8g dGhlIEFjYWRlbWljCmxpdGVyYXR1cmUgLSBhbmQgYmVsaWV2ZSBpdCAtIHlvdSBhcmUgbWlzaW5m b3JtZWQgYnkgdGhhdCBsaXRlcmF0dXJlLCBhbmQgd2lsbApjb250aW51ZSB0byBiZSBtaXNpbmZv cm1lZCBieSB0aGF0IGxpdGVyYXR1cmUuCgpwbGVhc2UgdW5kZXJzdGFuZDogaSBoYXZlIHNwZW50 IG92ZXIgbmluZSBtb250aHMgc3R1ZHlpbmcgdGhpcywgbGVhcm5pbmcKZnJvbSBNaXRjaCBBbHN1 cCwgb25lIG9mIHRoZSB3b3JsZCdzIGxlYWRpbmcgaGlnaC1wZXJmb3JtYW5jZSBjb21wdXRpbmcK YXJjaGl0ZWN0cywgaW1wbGVtZW50aW5nIHRoaXMgYW5kIGl0J3Mgbm90IGdvaW5nIHRvIGdldCBj aHVja2VkIG91dCB0bwppbXBsZW1lbnQgc29tZXRoaW5nIHRoYXQgdGFrZXMgc2l4IE1PTlRIUyB0 byBmdWxseSB1bmRlcnN0YW5kIGlzIGEKYmV0dGVyIGRlc2lnbiwgdG8gYmUgcmVwbGFjZWQgYnkg c29tZXRoaW5nIHRoYXQgd291bGQgdGFrZSBhbm90aGVyIHNpeAptb250aHMgdG8gaW1wbGVtZW50 ICphbmQgd2UgdGhlbiBjb3VsZCBub3QgZG8gbXVsdGktaXNzdWUgb24gdG9wIG9mIGl0Ki4KCnBs ZWFzZSB0aGVyZWZvcmUgdGFrZSB0aGUgdGltZSB0byB1bmRlcnN0YW5kIHRoaXMgZGVzaWduLCBw YXJ0aWN1bGFybHkgd2hlbgp3ZSBhcmUgcmlnaHQgaW4gdGhlIG1pZGRsZSBvZiBhIHRpbWUtY3Jp dGljYWwgZGVhZGxpbmUuCgo+IEluIHRoZQo+IENEQzY2MDAsIHRoZSBzY29yZWJvYXJkIHdvdWxk IGJsb2NrIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBXIGluc3QgdW50aWwKPiB0aGUgUiBpbnN0IGhh cyByZWFkIGl0cyBvcGVyYW5kcy4gSW4gVG9tYXN1bG8sIHRoZSBXIGluc3QgY2FuIHByb2NlZWQK PiBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIFIgaW5zdCBpcyByZWFkeSwgc2luY2UgdGhlIGRlc3Rp bmF0aW9uIHJlZ2lzdGVyCj4gaXMgcGh5c2ljYWxseSByZW5hbWVkLgoKSmVyZW15OiB0aGUgInJl bmFtaW5nIiBjYXJyaWVkIG91dCBieSB0aGUgNjYwMCBkb2VzIGV4YWN0bHkgdGhpcyBzYW1lCmpv Yi4KCkFjYWRlbWljcyB1bmZvcnR1bmF0ZWx5IGhhdmUgKm9ubHkqIHN0dWRpZWQgdGhlICpwYXRl bnQqIC0gbm90IFRob3JudG9uJ3MKYm9vayBub3IgcmVhZCBNaXRjaCBBbHN1cCdzIGJvb2sgY2hh cHRlcnMgd2hpY2ggaGUgd3JvdGUgYmFzZWQgb24gMzArCnllYXJzIGV4cGVyaWVuY2Ugb2YgaW1w bGVtZW50aW5nIDY2MDAtc3R5bGUgZXhlY3V0aW9uIGluIHRoZSA4ODEwMCwKQU1EIEs5IGFuZCBB TUQgT3B0ZXJvbiBTZXJpZXMgb2YgQ1BVcy4KCnRoZSA2NjAwIHBhdGVudCAqT05MWSogY292ZXJz IHRoZSBRLVRhYmxlcy4KCnRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgUS1UYWJsZXMgZG9lcyAqTk9U KiBpbmNsdWRlIHRoZSBDb21wdXRhdGlvbiBVbml0cwp3aGVyZSB0aGUgb3BlcmFuZCBsYXRjaGVz IGFyZS4KCnRoZXNlIGxhdGNoZXMgKkFSRSogdGhlICJyZW5hbWVkIHJlZ2lzdGVycyIgKGFjdHVh bGx5LCBuYW1lbGVzcyByZWdpc3RlcnMpLgoKPiA+ICBST0IgaXMgYSBDQU0sCj4KPiBXaGF0PyBU aGlzIGlzIG5vdCB0cnVlLiBJbnN0cnVjdGlvbnMgaW4gZmxpZ2h0IHRyYWNrIHRoZWlyIGluZGV4 IGluCj4gdGhlIFJPQiwgYXQgY29tcGxldGlvbiwgdGhleSB3cml0ZSBzdWNjZXNzIGJpdCBhY2Nv cmRpbmcgdG8gdGhlIGluZGV4Cj4gdGhleSBoYXZlLiBOb3QgYSBDQU0uIFNpbXBsZSBhZGRyZXNz ZWQgd3JpdGUuCgphaCBhcHByZWNpYXRlZCB0aGUgY29ycmVjdGlvbi4gIGkga25ldyB0aGVyZSB3 ZXJlIENBTXMgc29tZXdoZXJlLgp3aGVuIGkgZGlzY292ZXJlZCB0aGF0LCBpIGRyb3BwZWQgZnVy dGhlciBpbnZlc3RpZ2F0aW9uLgoKaSBhbSBob3dldmVyIGF3YXJlIHRoYXQgaWYgeW91IHdpc2gg dG8gZG8gbXVsdGktaXNzdWUsIHRoZSBST0Igd2lsbCBuZWVkCnRvIGJlIG11bHRpLXBvcnRlZCBT UkFNLiAgd2l0aG91dCBtdWx0aS1wb3J0aW5nIHRoZSBTUkFNLCB5b3Ugc2ltcGx5CmNhbm5vdCB3 cml0ZSBtdWx0aXBsZSBlbnRyaWVzLgoKdGhpcyBpcyB3aGVyZSB0aGUgcHJvYmxlbXMgKHJlYWQ6 IG5pZ2h0bWFyZXMpIGZvciBUb21hc3VsbyBzdGFydCB0byBtYW5pZmVzdCwKYW5kIHByb2dyZXNz IGZyb20gdGhlcmUgdGhyb3VnaCBtdWx0aXBsZSBDb21tb24gRGF0YSBCdXMgY2hhbm5lbHMgaW50 bwptdWx0aS1wb3J0ZWQgKE54UiwgTnhXKSBDQU1zIGF0IHRoZSBSZXNlcnZhdGlvbiBTdGF0aW9u IGxldmVsLgoKaSd2ZSBiZWVuIHRocm91Z2ggdGhpcywgb2ssIG92ZXIgMTggbW9udGhzIGFnby4K CmJ5IGNvbnRyYXN0LCB3aGVuIGNvbnZlcnRlZCB0byBzaW5nbGUtYml0IHVuYXJ5IHZlY3RvcnMs IGVhY2ggZW50cnkgaW4gdGhlCk1hdHJpY2VzIChjb3ZlcmVkIGJ5IGEgc2luZ2xlIFNSIE5BTkQg bGF0Y2gpIGlzICppbmRlcGVuZGVudCouICBtdWx0aXBsZQpvZiB0aG9zZSBtYXkgYmUgc2V0IGlu IGEgc2luZ2xlIGN5Y2xlLgoKdGhlcmUgaGFzIGJlZW4gYSAqbWFzc2l2ZSogYW1vdW50IG9mIHRo b3VnaHQgZ29uZSBpbnRvIHRoaXMsIG9rPwoKCj4gPiBnaXZlbiB0aGF0IEludGVsIHByb2Nlc3Nv cnMgdXNlIFRvbWFzdWxvLCB3ZSBzdGFydCB0byBzZWUgd2h5IEludGVsCj4gPiBwcm9jZXNzb3Jz IHN1Y2sgc28gbXVjaCBwb3dlci4KPgo+IFBvd2VyIGNvbnN1bXB0aW9uIG9uIGEgcHJvY2Vzc29y IGlzIHByaW1hcmlseSBmcm9tIGhpZ2ggc3dpdGNoaW5nCj4gcmF0ZXMgb24gbGFyZ2UgcmVnaXN0 ZXIgZmlsZXMsIGFuZCBTUkFNIGxlYWthZ2UuCgpnaXZlbiB0aGF0IHdlJ3JlIHBsYW5uaW5nIGFy b3VuZCAyOCBGdW5jdGlvbiBVbml0cyBhbmQgaGF2ZSBhIDEyOC1lbnRyeQpyZWdpc3RlciBmaWxl LCB0aGUgY2FsY3VsYXRpb25zIHRoYXQgaSBkaWQgZm9yIHRoYXQgd291bGQgcHV0IHRoZSBEZXBl bmRlbmN5Ck1hdHJpY2VzIGFyb3VuZCBhIHdob3BwaW5nIDUwLDAwMCBnYXRlcywgdXNpbmcgU1Ig TkFORCBMYXRjaGVzLgoKKGlmIHdlIGRpZCBpdCBhcyBERkZzIGl0IHdvdWxkIGJlIGFuIHVuYWNj ZXB0YWJsZSAyNTAsMDAwIGdhdGVzKQoKPiBUaGUgc2NoZWR1bGluZyBsb2dpYyBpcyBhIG1pbmlz Y3VsZSBwb3J0aW9uLgoKbm90IGZvciB0aGUgbGFyZ2Utc2NhbGUgb3V0LW9mLW9yZGVyIHN5c3Rl bXMgdGhhdCB3ZSBhcmUgcGxhbm5pbmcgdG8KZG8sIGl0J3Mgbm90LApkdWUgdG8gdGhlIGxhcmdl IHNpemVkIEdQVSByZWdpc3RlciBmaWxlICgxMjggZW50cmllcy4gIGFjdHVhbGx5IDJ4CjEyOCAt IDEyOCBGUCwKMTI4IElOVCkuCgp3ZSBtYXkgaGF2ZSB0byAqZG93biotc2NhbGUgdmlhIGEgcmVn ZmlsZSBjYWNoZSB0byBjb3BlIHdpdGggdGhhdC4KZGlzY3Vzc2lvbiBmb3IgYW5vdGhlciB0aW1l LgoKCj4gSW50ZWwgY29yZXMgYXJlIHBvd2VyLWh1bmdyeSBiZWNhdXNlCj4gaGlzdG9yaWNhbGx5 IHRoZXkgaGF2ZSB0YXJnZXRlZCB0aGUgZGVza3RvcC93b3Jrc3RhdGlvbiBtYXJrZXQsIGFuZCBk bwo+IG5vdCBoYXZlIGFzIG1hbnkgZGVjYWRlcyBvZiBleHBlcmllbmNlIGFzIG90aGVyIGZpcm1z IG9wdGltaXppbmcgZm9yCj4gcG93ZXItY29uc3RyYWluZWQgZW52aXJvbm1lbnRzLgoKYXBwcmVj aWF0ZWQgdGhlIGluc2lnaHQuCgo+IEFsc28gYWxtb3N0IGFsbCBtb2Rlcm4gT09PIGNvcmVzIHVz ZSBUb21hc3VsbyBiZWNhdXNlIFRvbWFzdWxvIGlzCj4gYmV0dGVyIGF0IGF2b2lkaW5nIGZhbHNl IGhhemFyZHMgY29tcGFyZWQgdG8gc2NvcmVib2FyZGluZy4KCmluIHRoZSB2ZXJzaW9ucyBvZiBz Y29yZWJvYXJkcyBpbXBsZW1lbnRlZCBieSBhY2FkZW1pY3MgLSBiZWNhdXNlIHRoZXkKZmFpbCB0 byBjb21wcmVoZW5kIHRoZW0gcHJvcGVybHkgLSBiZWNhdXNlIHRoZXkgb25seSByZWFkIHRoZSBw YXRlbnQKb24gUS1UYWJsZXMgLSB5ZXMuCgppbiB0aGUgdmVyc2lvbiB0aGF0IE1pdGNoIEFsc3Vw IC0gYSB3b3JsZCBsZWFkaW5nIGV4cGVydCBvbiBTY29yZWJvYXJkCk1lY2hhbmljcyAtIHRhdWdo dCBtZToKCm5vLgoKYWxzbywgdGhlIElJVCBNYWRyYXMgUklTRSBHcm91cCBTaGFrdGkgRS1DbGFz cyBwcm9jZXNzb3IgaXMgKmFsc28qIGEKc2NvcmVib2FyZCBkZXNpZ24uICB0aGlzIHdhcyBkZXNp Z25lZCAiZnJvbSBmaXJzdCBwcmluY2lwbGVzIiBieSBQcm9mZXNzb3IKS2FtYXRvdGksIGFuZCBp dCB3YXMgb25seSB0aHJvdWdoIGxlYXJuaW5nIGZyb20gTWl0Y2ggdGhhdCBpIHdhcyBhYmxlCnRv IHJlY29nbmlzZSB3aGF0IGhlIGhhZCBkb25lIGFzIGJlaW5nIGlkZW50aWNhbCB0byBhIDY2MDAg c2NvcmVib2FyZC4KCj4gVG9tYXN1bG8KPiBhbHNvIG1ha2VzIGl0IGVhc2llciB0byBpbXBsZW1l bnQgcHJlY2lzZSB0cmFwcywgc29tZXRoaW5nIHdoaWNoIGlzCj4gbm90b3Jpb3VzbHkgY2hhbGxl bmdpbmcgIHdpdGgganVzdCBhIHNjb3JlYm9hcmQuCgpubyBpdCBpcyBub3QuICB0aGlzIGlzICp5 ZXQgYWdhaW4qIGNvbXBsZXRlIGZhY3R1YWwgbWlzaW5mb3JtYXRpb24gYW5kIGlnbm9yYW5jZQpm cm9tIEFjYWRlbWljIGxpdGVyYXR1cmUuCgpjYW4gaSBhc2s6IGhhdmUgeW91IHJlYWQgUGF0dGVy c29uJ3MgYm9vaz8gIHRoaXMgaXMgdGhlIHVzdWFsIHBsYWNlIHdoZXJlCm1vc3QgcGVvcGxlIGdl dCB0aGVpciBtaXNpbmZvcm1hdGlvbiBmcm9tLiAgdGhlIHJlbGVhc2Ugb2YgdGhpcyBtaXNpbmZv cm1hdGlvbgp3YXMgd2h5IE1pdGNoIEFsc3VwIC0gYSB2ZXJ5IHBpc3NlZC1vZmYgYW5kIGV4YXNw ZXJhdGVkIE1pdGNoIC0gd3JvdGUgdGhvc2UKdHdvIGNoYXB0ZXJzLCBiYWNrIGFyb3VuZC4uLiAy MDA4IChpIHRoaW5rKS4KCnByZWNpc2UgZXhjZXB0aW9ucywgdHJhcHMsIGludGVycnVwdHMsIGJy YW5jaCBzcGVjdWxhdGlvbiBhbmQgcHJlZGljYXRpb24gbWF5CmFsbCBiZSBhY2hpZXZlZCB0aHJv dWdoICJzaGFkb3dpbmciLiAgc2VlIHRoZSBsYXR0ZXIgcGFydCBvZiB0aGUgMm5kIGNoYXB0ZXIg b2YKTWl0Y2gncyBib29rLgoKc2VlIHRoZSBzZWN0aW9uICJTaGFkb3dpbmciIGluIHRoaXMgcGFn ZToKaHR0cHM6Ly9saWJyZS1zb2Mub3JnLzNkX2dwdS9hcmNoaXRlY3R1cmUvNjYwMHNjb3JlYm9h cmQvCgppdCdzIHZlcnkgc2ltcGxlOiB5b3UgaG9sZCB3cml0ZSB1bnRpbCBzdWNoIHRpbWUgYXMg dGhlIG9wcG9ydHVuaXR5IGZvciAiZGFtYWdlIgppcyBjbGVhcmVkLiAgT3BlcmFuZCBGb3J3YXJk aW5nIGFsbG93cyBpbnN0cnVjdGlvbnMgdG8gcnVuIGFoZWFkLCB1c2luZyByZXN1bHRzCnRoYXQg d291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gYmUgcmVjZWl2ZWQgb25seSBmaXJzdCBieSBnb2luZyB0 aHJvdWdoCnRoZSBSZWdmaWxlLgoKKnRoaXMgaXMgYWxyZWFkeSBpbXBsZW1lbnRlZCogYW5kIHRo ZSB1bml0IHRlc3RzIGRlbW9uc3RyYXRlZCBpdCBhcwoqZnVsbHkgZnVuY3Rpb25hbCoKCgo+IExl dHMgYmUgY2xlYXIgaGVyZS4gVGhlIENEQzY2MDAgQVZPSURTIFdBUiBhbmQgV0FXIGhhemFyZHMg YnkgQkxPQ0tJTkcKPiB5b3VuZ2VyIGluc3RydWN0aW9ucyAoU2VlIHBnMyBpbiBNaXRjaCBBbHN1 cCdzIHRleHQpLiBUb21hc3VsbydzCj4gc3VwcG9ydHMgT09PIGV4ZWN1dGlvbiBQQVNUIFdBUiBh bmQgV0FXIGhhemFyZHMsIGVuYWJsaW5nIHRoZSBjb3JlIHRvCj4gZXhwbG9pdCBtb3JlIElMUCBh Y3Jvc3MgaXRzIGZ1bmN0aW9uYWwgdW5pdHMuCgp0aGlzIGlzIG9ubHkgYmVjYXVzZSB0aGUgMTk2 NSBDREM2NjAwIGRpZCBub3QgaGF2ZSBhbiBPcGVyYW5kIEZvcndhcmRpbmcgQnVzCihpbnN0ZWFk IGl0IHVzZWQgdGhlIHJlZ2ZpbGUgYXMgYSBzYW1lLWNsb2NrIGZvcndhcmRpbmcgYnVzLCBieSBy ZWFkaW5nIG9uIG9uZQplZGdlIGFuZCB3cml0aW5nIG9uIHRoZSBvdGhlci4gIHRoaXMgdW5mb3J0 dW5hdGVseSBtZWFudCB0aGF0IHdpdGhvdXQgYW4gT3BGd2QKQnVzLCBzdGFsbCBoYWQgdG8gb2Nj dXIpLgoKdGhpcyBET0VTIE5PVCBJTkhFUkVOVExZIE1FQU4gdGhhdCAqKkFMTCoqIFNjb3JlYm9h cmRzIGFyZSBydWJiaXNoLgoKaWYgeW91IGFkZCBhbiBPcGVyYW5kIEZvcndhcmRpbmcgQnVzIChl cXVpdmFsZW50IHRvIHRoZSBDREIgaW4gVG9tYXN1bG8pCnRoZSBleGFjdCBzYW1lIHBhcml0eSBm dW5jdGlvbmFsaXR5IGlzIGFjaGlldmVkICh3aXRob3V0IHRoZSBzZXZlcmUgZG93bnNpZGVzKS4K Cgo+IEx1a2UsIEkgYWdyZWUgd2l0aCB5b3UgdGhhdCB0aGUgcmVzZXJ2YXRpb24gc3RhdGlvbiBy b3dzIGluIFRvbWFzdWxvJ3MKPiBjYW4gYmUgZXF1aXZhbGVudCB0byB0aGUgb3BlcmFuZCBsYXRj aGVzIGluIFNjb3JlYm9hcmRpbmcuIEhvd2V2ZXIsCj4gYWRkaW5nIG1hbnkgb3BlcmFuZC1sYXRj aGVzIChieSBoYXZpbmcgbWFueSBmdW5jdGlvbmFsIHVuaXRzKSBkb2VzIG5vdAo+IHNjYWxlIGFz IG5pY2VseSBhcyBqdXN0IGFkZGluZyBhIGZldyBtb3JlIHJvd3MgdG8gVG9tYXN1bG8ncwo+IHJl c2VydmF0aW9uIHN0YXRpb25zLgoKdGhpcyBpcyBpbmNvcnJlY3QuICB5b3UgbWF5IGJlIHVuZGVy IHRoZSBtaXN0YWtlbiBpbXByZXNzaW9uIHRoYXQgdGhlIHBpcGVsaW5lcwpkdXBsaWNhdGVkIGFz IHdlbGwuICB0aGlzIGNsZWFybHkgd291bGQgYmUgaW5hZHZpc2VhYmxlIGJlY2F1c2UgdGhlIEZV J3Mgam9iCmlzIHRvIHNlcnZlIG9uZSBhbmQgb25seSBvbmUgcmVzdWx0LiAgdGhlcmVmb3JlIHlv dSBrbm93IHRoYXQgdGhpcyBpcyBhIG1pc3Rha2VuCnVuZGVyc3RhbmRpbmcsIGFuZCB0aGF0IGNv bnNlcXVlbnRseSB5b3UgaGF2ZSBtdWx0aXBsZSBGVXMgZm9yIHRoZSBzYW1lCnBpcGVsaW5lLiAg KHRlcm1lZCAiQ29uY3VycmVudCBDb21wdXRhdGlvbiBVbml0IikuCgp0aGVyZWZvcmUgaXQncyBt aW5pbWFsLiAgZXhjbHVkaW5nIHRoZSBsYXRjaGVzIHRoZW1zZWx2ZXMgKHRoZSByb3dzCmhhdmUg bGF0Y2hlcywgdGhlCkNvbXBVbml0cyAtIGFrYSBGdW5jdGlvblVuaXRzIGhhdmUgbGF0Y2hlcywg dGhlIHRvdGFsIG51bWJlciBvZiBsYXRjaGVzIGFmdGVyCmZsYXR0ZW5pbmcgaXMgdGhlIHNhbWUp LCB0aGUgbnVtYmVyIG9mIGdhdGVzIGFkZGVkIGJ5IGVhY2ggQ29tcFVuaXQgaXMKbWluaW1hbDog YXJvdW5kLi4uIDgwLCBtYXhpbXVtLgoKdGhhdCdzIHBlYW51dHMuCgo+IEVzcGVjaWFsbHkgc2lu Y2UgZGVzaWduaW5nIHRoZSBDQU1zIGZvcgo+IFRvbWFzdWxvJ3MgaXMgYSB3ZWxsIHN0dWRpZWQs IGFuZCB3ZWxsLXVuZGVyc3Rvb2QgcHJvYmxlbQoKdGhlIGtleSBpcyB0aGUgY29tYmluYXRpb24g b2YgdGhvc2UgdHdvOgoKQSkgd2VsbC11bmRlcnN0b29kLi4uICphbmQqCkIpIGEgcHJvYmxlbS4K CmhhdmUgYSBsb29rIGF0IGhvdyBtdWx0aS1pc3N1ZSBpcyBkb25lIHVzaW5nIFRvbWFzdWxvLiAg aXQncyBzaG9ja2luZ2x5IGJhZC4KCgo+ID4gMy4gRXhwYW5kIHRoZSBudW1iZXIgb2YgUlNlcyBz byB0aGF0IGlmIHlvdSB3ZXJlIHRvIGNvdW50IHRoZSB0b3RhbCBudW1iZXIKPiA+IG9mIHBsYWNl cyBvcGVyYW5kcyBhcmUgc3RvcmVkLCB0aGV5IGFyZSB0aGUgc2FtZS4KPgo+ID4gKGFub3RoZXIg d2F5IHRvIHB1dCB0aGlzIGlzLCAiZmxhdHRlbiBhbGwgMkQgUlNlcyBpbnRvIDFEIikKPgo+IFRo aXMgZG9lcyBub3Qgc2NhbGUgd2VsbC4gQSAyRCBDQU0gaXMgZmFyIG1vcmUgYXJlYSBlZmZpY2ll bnQgdGhhbiBhCj4gMUQgZmxhdHRlbmVkIHZlY3Rvci4KCmEgMUQgYml0dmVjdG9yLiAgYSBzaW5n bGUsIDFEIGJpdHZlY3Rvci4gIG9mIDMyIGJpdHMgaW4gbGVuZ3RoLgoKY29tcGFyZWQgdG8gMzIg NS1iaXQgYmluYXJ5IGFkZHJlc3Nlcy4KCmp1c3QgdGhlIGxhdGNoZXMgYWxvbmUsIHRoYXQgbWF0 aCBkb2VzIG5vdCBzdGFjayB1cC4KCm5vdyBsZXQncyB0YWtlIGl0IHRvIDJELgoKbGV0J3Mgc2F5 IHRoYXQgd2UgaGF2ZSAxMCBGVXMgYW5kIDMyICBSZWdzLgoKaW4gVG9tYXN1bG8gdGhhdCBpcyBh IDUtYml0IGFkZHJlc3MuICAxMHg1ID0gNTAgREZGIGxhdGNoZXMuICBERkYKbGF0Y2hlcyBhcmUg MTAgZ2F0ZXMgc28gdGhhdCdzIDUwMCBnYXRlcy4KCmluIDY2MDAgdGhhdCBpcyAxMHgzMiA9IDMy MCBTUiBOQU5EIExhdGNoZXMuICBTUiBOQU5EIGxhdGNoZXMgYXJlIDIKZ2F0ZXMuICAzMjB4MiBp cyA2NDAgZ2F0ZXMuCgpub3QgdmVyeSBkaWZmZXJlbnQgaW4gdGVybXMgb2YgbGF0Y2ggY291bnQs IGlzIGl0PwoKCm5vdyBsZXQncyBkbyB0aGUgYWRkcmVzcy1jaGVja2luZy4KCnRvIGNoZWNrIGEg cmVnaXN0ZXIgYXMgImFjdGl2ZSIgLSBiZWFyIGluIG1pbmQgdGhhdCB0aGlzIGlzIHBlcgpyZWdp c3RlciBhbmQgY29uc2VxdWVudGx5CmlmIGRvaW5nIG11bHRpLWlzc3VlIHRoYXQncyBhIGJhdGNo IG9mIGFkZHJlc3MtY2hlY2tpbmcgZ2F0ZXMgKnBlciByZWdpc3RlciouCgpmb3IgVG9tYXN1bHUs IHRoaXMgcmVxdWlyZXMgMTB4NSA9IDUwMCBYT1IgZ2F0ZXMgKHBsdXMgc29tZQptdWx0aS1pbnB1 dCBBTkQgZ2F0ZXMgb24gZWFjaCByb3cpICAgWE9SIGlzIDQgZ2F0ZXMsIHNvIHRoYXQncyAyLDAw MApnYXRlcyAqUEVSIE1VTFRJLUlTU1VFIExBTkUqLgoKZm9yIHRoZSA2NjAwLCB0aGF0J3MgMTB4 MzIgKipBTkQqKiBnYXRlcy4gIDMyMCBBTkQgZ2F0ZXMuCgphbmQgb2YgdGhvc2UgMzIwIEFORCBn YXRlcywgdGhleSBhcmUgcmUtdXNlYWJsZSBmb3IgbXVsdGktaXNzdWUKV0lUSE9VVCBSRVFVSVJJ TkcgQURESVRJT05BTCBHQVRFUy4KCnNvIHRoYXQgaXMgMzIwIEFORCBnYXRlcyBmb3Igc2luZ2xl LWlzc3VlCnRoYXQgaXMgemVybyBleHRyYSBnYXRlcyBmb3IgZHVhbC1pc3N1ZQp0aGF0IGlzIHpl cm8gZXh0cmEgZ2F0ZXMgZm9yIHF1YWQtaXNzdWUKemVybyBleHRyYSBnYXRlcyBmb3Igb2N0YWwt aXNzdWUuCgpzdGFydCB0byBtYWtlIHNlbnNlIG5vdywgd2h5IHVuYXJ5IGVuY29kaW5nIGFzIDFE IHZlY3RvcnMgaXMgbGVzcwpnYXRlcyBhbmQgbGVzcyBwb3dlciB0aGFuIGJpbmFyeSBDQU1zPwoK aWYgeW91IHdhbnQgdG8gY2hlY2sgbXVsdGlwbGUgdW5hcnkgYml0cyAoYSBjcml0aWNhbCBwcmVy ZXF1aXNpdGUgZm9yCm11bHRpLWlzc3VlKSwgYWxsIHlvdSBkbyBpcy4uLiBzZXQuLi4gbXVsdGlw bGUuLi4gYml0cy4KCndoYXQgaGFwcGVucz8gIG11bHRpcGxlIEFORCBnYXRlcyBmaXJlLiAgaW4g dGhlIHNhbWUgY2xvY2suICAgYW5kCnRoYXQncyBleGFjdGx5IHdoYXQgd2Ugd2FudC4KCgo+ID4g Ny4gcmVuYW1lIFJTZXMgdG8gIkZ1bmN0aW9uIFVuaXRzIiAoYWN0dWFsbHkgaW4gVGhvcm50b24n cyBib29rIHRoZSBwaHJhc2UKPiA+ICJDb21wdXRhdGlvbiBVbml0cyIgaXMgdXNlZCkKPgo+IFNv IGEgVG9tYXN1bG8ncyBkZXNpZ24gd2l0aCA0IHJvd3Mgbm93IGJlY29tZXMgYSAiZmxhdHRlbmVk IiBkZXNpZ24KPiB3aXRoIDQgZnVuY3Rpb25hbCB1bml0cz8gVGhlIGFkZGl0aW9uYWwgY29zdCBv ZiB0aGUgZnVuY3Rpb25hbCB1bml0cwo+IGlzIGVub3Jtb3VzLgoKbm8sIGl0J3MgNCB4IDgwIGdh dGVzIChhcHByb3gpLiAgdGhhdCdzIG5vdCA0eCBkdXBsaWNhdGlvbiBvZiBBTFUKcGlwZWxpbmVz ICpiZWhpbmQqIHRob3NlIDQgRnVuY3Rpb24gVW5pdHMuICBzZWUgTWl0Y2gncyAybmQgQ2hhcHRl ciwKIkNvbmN1cnJlbnQgQ29tcHV0YXRpb24gVW5pdCIKCmh0dHBzOi8vbGlicmUtc29jLm9yZy8z ZF9ncHUvYXJjaGl0ZWN0dXJlLzY2MDBzY29yZWJvYXJkLzYwMHgtY29uY3VycmVudF9jb21wX3Vu aXQucG5nCgpKZXJlbXk6IGl0J3MgcmF0aGVyIHVuZm9ydHVuYXRlIHRpbWluZy4gIHNpeCB0byB0 d2VsdmUgbW9udGhzIGFnbywgd2UKY291bGQgaGF2ZSBoYWQgdGhpcyBkZWJhdGUgYW5kIGl0IHdv dWxkIGhhdmUgYmVlbiBmdW4sIGluZm9ybWF0aXZlLAp1c2VmdWwgYW5kIHByb2R1Y3RpdmUuICBp dCB3b3VsZCBhbHNvIGhhdmUgYmVlbiBwb3NzaWJsZSB0byBicmluZyB5b3UKaW4gdG8gdGhlIGRp c2N1c3Npb25zIHRoYXQgdG9vayBwbGFjZSAoTm92IDIwMTggdG8gYXJvdW5kIEFwci1NYXkKMjAx OSkgYmV0d2VlbiBteXNlbGYsIFNhbXVlbCBGYWx2bywgTWl0Y2ggQWxzdXAgYW5kIHRoZSB0ZWFt IGVpdGhlcgpoZXJlIG9uIHRoaXMgbGlzdCwgb3Igb24gY29tcC5hcmNoLgoKaG93ZXZlciB3aXRo IHRoZSB1cGNvbWluZyBkZWFkbGluZSwgdGhpcyBraW5kIG9mIG90aGVyd2lzZSByZWFsbHkKdmFs dWFibGUgZGlzY3Vzc2lvbiBpcywgc2FkbHksIHNvbWV0aGluZyB0aGF0IHdlICpkbyBub3QgaGF2 ZSB0aW1lCmZvciouCgpyZXRyb3NwZWN0aXZlIHJlY29tbWVuZGF0aW9uIHRoYXQgd2UgcmVjb25z aWRlciBhbmQgdXNlIFRvbWFzdWxvIHdvdWxkCm5vdCBvbmx5IHJlc3VsdCBpbiB1cyBjb21wbGV0 ZWx5IG1pc3NpbmcgdGhlIHVwY29taW5nIE9jdCAyMDIwCmRlYWRsaW5lLCB3ZSB3b3VsZCBlbmQg dXAgd2l0aCBhbiBleGNlcHRpb25hbGx5IHBvb3JseS1wZXJmb3JtaW5nLApsaW1pdGVkIGFuZCBz ZXJpb3VzbHkgcHJvYmxlbWF0aWMgcHJvY2Vzc29yIGFzIHdlbGwuICB3b3JzZSB0aGFuIHRoYXQs CnNhZGx5IGkgaGF2ZSB0byBzYXkgdGhhdCBpIGFtIGNvbmNlcm5lZCB0aGF0IGFueSByZXRyb3Nw ZWN0aXZlCmRpc2N1c3Npb24gd291bGQgaXRzZWxmIChhc2lkZSBmcm9tIHZhbHVhYmxlIGNvcnJl Y3Rpb25zIGFuZAphc3Npc3RhbmNlIGluIGNyZWF0aW5nIGEgY29tcGFyYXRpdmUgYW5hbHlzaXMp IGJlY29tZSBhIHNlcmlvdXMKZGlzdHJhY3Rpb24uCgppdCdzIGxpaXR0ZXJhbGxseSB0YWtlbiAx OCBNT05USHMgdG8gZ2V0IHRvIHRoZSBwb2ludCB3aGVyZSB3ZSBhcmUgbm93CndpdGggdGhlIGNv ZGUgYW5kIHRoZSBkZXNpZ24uICB3ZSBuZWVkIHRvIGZpbmlzaCB0aGUgZGVzaWduIGluIGEgdmVy eQpzaG9ydCB0aW1lZnJhbWUgKDE0IHdlZWtzKSwgYW5kIGFzIFllaG93c2h1YSBwb2ludHMgb3V0 LCBkdWUgdG8gdGhlCmNvbXBsZXhpdHkgb2YgdGhpcyBwYXJ0aWN1bGFyIGFyZWEgb2YgQ29tcHV0 ZXIgU2NpZW5jZSwgdGhhdCBpbiB0dXJuCmltcGxpZXMgdGhhdCB5b3UnbGwgbmVlZCB0byB0cnVz dCBtZSBvbiB0aGUgYXJjaGl0ZWN0dXJhbCBhbmFseXNpcwood2hpY2ggdG9vayA1IG1vbnRocyB0 byBjb21wbGV0ZSwgdW5kZXIgTWl0Y2gncyBndWlkYW5jZSkuCgpzbywgbXkgYXBvbG9naWVzIGZv ciBuZWVkaW5nIHRvIGJlIGZpcm0gb24gdGhpczogdGhlIG9wcG9ydHVuaXR5IHRvCmhlbHAgZXhp c3RzIHdpdGhpbiB0aGUgdGltZS1mcmFtZSBhbmQgZmluYW5jaWFsIGNvbnN0cmFpbnRzIHRoYXQg d2VyZQpkZXRlcm1pbmVkIGFuZCBzZXQsIG92ZXIgMTggbW9udGhzIGFnbywgYmVmb3JlIHlvdSBq b2luZWQuCgp0aGVyZWZvcmUsIGlmIHlvdSdkIGxpa2UgdG8gaGVscCwgdGhlbiBhc2tpbmcgcXVl c3Rpb25zIHdoaWNoIGFyZQpyZWxhdGVkIHRvICp1bmRlcnN0YW5kaW5nKiBvZiB0aGUgcHJlY2lz ZS1hdWdtZW50ZWQgU2NvcmVib2FyZCBzeXN0ZW0sCnRhcmdldHRlZCB2ZXJ5IHNwZWNpZmljYWxs eSBhdCBhbGxvd2luZyB5b3UgdG8gZW5nYWdlIGFuZCBhc3Npc3QgdXMgaW4KbWVldGluZyB0aGF0 IGRlYWRsaW5lLCBhcmUgdmVyeSB3ZWxjb21lLgoKYW55dGhpbmcgb3RoZXIgdGhhbiB0aGF0IHZl cnkgc3BlY2lmaWMgZ29hbC1vcmllbnRhdGVkIGZvY3VzLCBpIGFtCnJlYWxseSBzb3JyeSwgd2Ug cmVhbGx5IG5lZWQgdG8gbW92ZSBpdCB0byBvbmUgc2lkZSwgYW5kIGZvciB0aGF0LCBpCnJlY29t bWVuZCBjb21wLmFyY2guCgp0aGVyZWZvcmUsIGlmIHlvdSB3b3VsZCBsaWtlIHRvIGRpc2N1c3Mg dGhlIG1lcml0cyBvZiBUb21hc3VsbyB2cwpTY29yZWJvYXJkIChwYXJ0aWN1bGFybHkgdGhvc2Ug dGhhdCBwdXJzdWUgcmVjb21tZW5kaW5nIFRvbWFzdWxvCipvdmVyKiBTY29yZWJvYXJkKSBmdXJ0 aGVyLCBpIHJlY29tbWVuZCBkb2luZyBzbyBvbiBjb21wLmFyY2gsIHdoaWNoCmlzIHdoZXJlIE1p dGNoIEFsc3VwIG1vc3QgcmVndWxhcmx5IG1heSBiZSBmb3VuZC4gIHdpdGggdGhlIHJpZ2h0Cmlu dGVyZXN0aW5nIHF1ZXN0aW9uLCBib3RoIGhlIGFuZCBtYW55IG90aGVycyB3aWxsIHBpdGNoIGlu LgoKdGhlIG9uZSB0aGluZyB0aGF0IHlvdSBuZWVkIHRvIGJlIGF3YXJlIG9mIGlzIHRoYXQgTWl0 Y2ggaXMgYm90aApoeXBlci1pbnRlbGxpZ2VudCwgYW5kIHNlY29uZCB0aGF0IGhlIGRvZXMgbm90 IHRvbGVyYXRlIHBlb3BsZSB3aG8KY2Fubm90IGtlZXAgdXAgd2l0aCBoaW0sIGVzcGVjaWFsbHkg aWYgdGhleSB0cnkgdG8gY29udmluY2UgaGltIG9mCnNvbWV0aGluZyB3aXRob3V0IGhhdmluZyBm aXJzdCBkZW1vbnN0cmF0ZWQgdGhhdCB0aGV5J3ZlIHVuZGVyc3Rvb2QKKmhpbSouICBoZSdzIHdl bGwgb3ZlciA3MCwgaGUncyByZXRpcmVkLCBoZSBtYWRlIGVub3VnaCAieHh4eC15b3UiCm1vbmV5 IG9uIHNlbGxpbmcgR1BVIHBhdGVudHMgdG8gU2Ftc3VuZywgc28gaGUgZG9lc24ndCBoYXZlIHRv IHB1dCB1cAp3aXRoIGFueXRoaW5nIHRoYXQgaGUgZG9lc24ndCB3YW50IHRvIDopCgpsLgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlzY3Yt ZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCmh0 dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1k ZXYK