Return-path: Envelope-to: publicinbox@libre-riscv.org Delivery-date: Tue, 19 May 2020 14:48:02 +0100 Received: from localhost ([::1] helo=libre-riscv.org) by libre-soc.org with esmtp (Exim 4.89) (envelope-from ) id 1jb2bA-0001BH-Up; Tue, 19 May 2020 14:48:00 +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 1jb2b9-0001BB-F6 for libre-riscv-dev@lists.libre-riscv.org; Tue, 19 May 2020 14:47:59 +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:MIME-Version; bh=xsRbixC+5Oi5SDUDIMWSxVdm+u/cRB+WeGpcMG0osuM=; b=KMvQY4YnFpEWrqLHFAVbMDm5PqW6JuaT/CnA1ZYIfCEfFj1QtsUkjL8oeGTm7ws+cm3y2Oesvs4ctKXaVZokSPmlXhzvhkhSakgpZjjCJyXJmyyzqqfpdHvEBaid9ILaxc0WJi1L7UyMX+ptUMYCDgwD+IEsZWmeZh9yzTF/PjE=; Received: from mail-lf1-f46.google.com ([209.85.167.46]) by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1jb2b9-0006JA-1O for libre-riscv-dev@lists.libre-riscv.org; Tue, 19 May 2020 13:47:59 +0000 Received: by mail-lf1-f46.google.com with SMTP id c12so7832558lfc.10 for ; Tue, 19 May 2020 06:47:43 -0700 (PDT) X-Gm-Message-State: AOAM530VBOt84j4MOlNJlpZ3gSpBOJaq8xExQCILPyq3LYcVMSealsCZ Wv5hlSCyceHpHXnv1VBbyD+PcA9OgyDM42mj57A= X-Google-Smtp-Source: ABdhPJwth8ABBjwEJ9pkVS5hoy7sgpRfIjIYnJM7pRUkWvzFxEmEyFOZ+gYpGIzfaaNncS2sr3wAO+8duy163igjlto= X-Received: by 2002:a19:4f46:: with SMTP id a6mr7525572lfk.107.1589896057800; Tue, 19 May 2020 06:47:37 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a05:6504:31aa:0:0:0:0 with HTTP; Tue, 19 May 2020 06:47:36 -0700 (PDT) From: Luke Kenneth Casson Leighton Date: Tue, 19 May 2020 14:47:36 +0100 X-Gmail-Original-Message-ID: Message-ID: To: Libre-RISCV General Development X-Content-Filtered-By: Mailman/MimeDel 2.1.23 Subject: [libre-riscv-dev] Tomasulo and Scoreboards 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" T24gVHVlc2RheSwgTWF5IDE5LCAyMDIwLCBTdGFmIFZlcmhhZWdlbiA8c3RhZkBmaWJyYXNlcnZp LmV1PiB3cm90ZToKCj4gTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiBzY2hyZWVmIG9wIG1h IDE4LTA1LTIwMjAgb20gMTI6NDUgWyswMTAwXToKPiA+ICogYW5kIGhhZCBhIGZhc2NpbmF0aW5n IGNvbnZlcnNhdGlvbiB0aGFua3MgdG8geWVob3dzaHVhIGFuZCBqZXJlbXkoYWxzbwo+IHdlbGNv bWUhKSwgd2hpY2ggcmVzdWx0ZWQgaW4gdGhpcyhodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfCj4g Z3B1L2FyY2hpdGVjdHVyZS90b21hc3Vsb190cmFuc2Zvcm1hdGlvbi8pLgo+Cj4gSWYgSSB1bmRl cnN0YW5kIHRoaXMgY29ycmVjdCB0aGUgYmlnIGFyY2hpdGVjdHVyYWwgZGlmZmVyZW5jZSBiZXR3 ZWVuCj4gZXh0ZW5kZWQgc2NvcmVib2FyZGluZyBhbmQgVG9tYXN1bG8gaXMgdGhhdCBpbiB0aGUg Zm9ybWVyIHRoZSByZWdpc3Rlcgo+IGNvbnRlbnQgaXMgc3RvcmVkIGluIGEgY2VudHJhbCByZWdp c3RlciBmaWxlIGFuZCBmb3IgdGhlIGxhdHRlciBpdCBpcwo+IGRpc3RyaWJ1dGVkIG92ZXIgc2V2 ZXJhbCAncmVzZXJ2YXRpb24gc3RhdGlvbnMnLgoKCm5vdCBxdWl0ZS4gdGhpcyBpcyB0aGUgbnVt YmVyIG9uZSBtaXN1bmRlcnN0YW5kaW5nIGFib3V0IFNjb3JlYm9hcmRzLCBkdWUKdG8gdGhlIEFj YWRlbWljIGV4Y2x1c2l2ZSBmb2N1cyBvbiB0aGUgUSBUYWJsZXMuICBpdCBpcyBzaW1pbGFyIHRv CmZvY3Vzc2luZyBvbiB0aGUgUk9CIGFuZCBjb25jbHVkaW5nIHRoYXQgVG9tYXN1bG8gZXF1YWxz IFJPQiB0aGVyZWZvcmUKVG9tYXN1bG8gaXMgaW5jb21wZXRlbnQgYW5kIGluY29tcGxldGUsIGlu Y2FwYWJsZSBvZiBPdXQgb2YgT3JkZXIgZXhlY3V0aW9uLgoKIHRoZSByZWFsaXR5IGlzIHZlcnkg ZGlmZmVyZW50OiB0aGVyZSBpcyBhY3R1YWxseSBubyBmdW5jdGlvbmFsIGRpZmZlcmVuY2UuCgoq IGJvdGggaGF2ZSBjZW50cmFsIHJlZ2lzdGVyIGZpbGVzCiogYm90aCBoYXZlICJpbiBmbGlnaHQi IGRpc3RyaWJ1dGVkICJzdG9yYWdlIiB0aGF0IGhvbGQgcmVzdWx0cyBub3QgeWV0CmNvbW1pdHRl ZCB0byB0aGUgcmVnZmlsZS4KCnRoZSBkaWZmZXJlbmNlIGlzOgoKKiBUb21hc3VsbyBpZGVudGlm aWVkIGluLWZsaWdodCBhcyAiYmVpbmcgYSBwcm9ibGVtIiwgZ2F2ZSBhIG5hbWUgdG8gdGhlCmNv bmNlcHQgKCJyZWdpc3RlciByZW5hbWluZyIpIGFuZCB1c2VkIENBTXMgaW4gdGhlIGZvcm0gb2Yg UmVzZXJ2YXRpb24KU3RhdGlvbnMgdG8gZXhwbGljaXRseSAiaG91c2UiIHRoaXMgZGlzdHJpYnV0 ZWQgaW4tZmxpZ2h0IGRhdGEuCgoqIFNleW1vdXIgQ3JheSBhbmQgSmFtZXMgVGhvcm50b24gc2lt cGx5IGdvdCBvbiB3aXRoIGl0LCBjb21pbmcgdXAgd2l0aCBhbgppbi1mbGlnaHQgc29sdXRpb24g d2hlcmUgdGhlcmUgKndhcyogbm8gbmVlZCB0byBnaXZlIHRoZSBpbi1mbGlnaHQgZGF0YQoibmFt ZXMiLiAgdGhleSB3ZXJlIGp1c3QgIkNvbXB1dGF0aW9uIFVuaXQgb3BlcmFuZCBsYXRjaC9yZWdp c3RlcnMiLgoKYmVjYXVzZSB0aGV5IGRpZCBub3Qgc2VlIGl0IGFzIGFuIGFjdHVhbCAicHJvYmxl bSIsIHRoZXJlIHdhcyBub3RoaW5nIHRvCiJ0YWxrIGFib3V0Ii4gIGl0IGlzIG9ubHkgdGhyb3Vn aCByZXRyb3NwZWN0aXZlIGFuc2x5c2lzIHRoYXQgd2UgZmluZCB0aGF0CnRoZXkgc29sdmVkIHRo ZSAicHJvYmxlbSIuCgp3aGF0IGkgY2FuIHRlbGwgeW91IGlzOgoKKiB0aG9zZSBsYXRjaGVzIGlu IHRoZSBDb21wdXRhdGlvbiBVbml0ICphcmUqIFJlc2VydmF0aW9uIFN0YXRpb24gbGF0Y2hlcwoq IGEgQ0FNIGlzICpOT1QqIG5lZWRlZAoqIHRoZXkgKmFyZSogMVIxVyBhbmQgREZGcyBhcmUgcGVy ZmVjdGx5IGFkZXF1YXRlIHRvIGNvdmVyIHRoZW0KKiBjZW50cmFsaXNpbmcgdGhlbSBpcyBOT1Qg bmVlZGVkIGFuZCBpdCB3b3VsZCBiZSBzZXZlcmVseSBkZXRyaW1lbnRhbCB0bwp0cnkgdG8gZG8g c28uCgoKCj4gSW4gb3JkZXIgdG8gc2NhbGUgdG8gZm9yIGV4YW1wbGUgbXVsdGktaXNzdWUgeW91 IG5lZWQgdG8gZ28gdG8gaGlnaGVyCj4gb3JkZXIgblJtVyByZWdpc3RlciBmaWxlcyBmb3Igc2Nv cmVib2FyZGluZwoKCnRoaXMgaXMgbmVjZXNzYXJ5IGZvciBUb21hc3VsbyBhcyB3ZWxsLiAgaSBh bSByZWZlcnJpbmcgdG8gdGhlIElOVCBSZWdmaWxlLApub3QgdG8gdGhlIChtaXN1bmRlcnN0b29k KSBpbmZsaWdodCBkYXRhIGxhdGNoZXMgbG9jYWwgdG8gUlNlcyAvCkNvbXB1dGF0aW9uIFVuaXRz LgoKCj4KPiBhbmQgZm9yIFRvbWFzdWxvIHlvdSBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIHJlc2Vy dmF0aW9uIHN0YXRpb25zCgoKbGlrZXdpc2UgeW91IGluY3JlYXNlIHRoZSBudW1iZXIgb2YgQ29t cHV0YXRpb24gVW5pdHMgYmVjYXVzZSBkb2luZyBzbwppbmNyZWFzZXMgaW5mbGlnaHQgb3Bwb3J0 dW5pdHkuCgoKPgo+ICB0b2dldGhlciB3aXRoIGEgbW9yZSBjb21wbGV4IHRyYWNrZXIgb2YgdGhl IHJlZ2lzdGVyIHRhZ2dpbmcvYWxpYXNpbmcuCgoKaW4gVG9tYXN1bG8sIHllcy4gIGl0IHF1aWNr bHkgYmVjb21lcyBhIG5pZ2h0bWFyZSwgYXQgdGhlIFJTIENBTXMsIHRoZSBDREIsCnRoZSBST0Ig LSBpbiBmYWN0IGV2ZXJ5dGhpbmcgdG8gZG8gd2l0aCB0aGUgZW50aXJlIFRvbWFzdWxvIGFsZ29y aXRobS4KCmZvciBTY29yZWJvYXJkcywgbm8uICB0aGUgZXhhY3Qgc2FtZSBsb2dpYywgYnkgZW5j b2RpbmcgYWxsIEZ1bmN0aW9uIFVuaXQKYW5kIFJlZ2lzdGVyIE51bWJlcnMgaW4gVU5BUlkgbm90 IGJpYmFyeSwgaXMgYXV0b25hdGljYWxseSBhbmQgaW5oZXJlbnRseQptdWx0aS1pc3N1ZSBjYXBh YmxlIEJZIERFU0lHTi4KCmFsbW9zdCB6ZXJvIGV4dHJhIGxvZ2ljIGlzIHJlcXVpcmVkIHRvIG1h a2UgVW5hcnkgKGJpdHZlY3RvcikgU2NvcmVib2FyZHMKbXVsdGkgaXNzdWUuCgoKCj4gU28gc29t ZSAyIGNlbnRzIGZyb20gbWUuCj4gRnJvbSBwaHlzaWNhbCBpbXBsZW1lbnRhdGlvbiBwb2ludCBv ZiB2aWV3IHRoZSBjZW50cmFsIGhpZ2ggb3JkZXIgblJtVwo+IHJlZ2lzdGVyIGZpbGUgYW5kIHNj b3JlYm9hcmQgZG9lcyB3b3JyeSBtZS4KCgpkdWUgdG8gdGhlICh2ZXJ5IGNvbW1vbikgbWlzdW5k ZXJzdGFuZGluZywgZ2l2ZW4gdGhhdCB0aGVyZSBpcyBubwpjZW50cmFsaXNlZCBzY29yZWJvYXJk IHJlZ2ZpbGUsIGdpdmVuIHRoYXQgdGhlIGluZmxpZ2h0IGRhdGEgeW91IChhbmQgYWxsCkFjYWRl bWljIGxpdGVyYXR1cmUgbWlzbGVhZGluZ2x5IHN0YXRlcykgaXMgZGlzdHJpYnV0ZWQgbm90IGNl bnRyYWxpc2VkLAp0aGlzIGNvbmNlcm4gaXMgbW9vdC4KCndlIHdpbGwgdXNlIHN0YW5kYXJkIERG RnMgdG8gc3RvcmUgdGhlIGluLWZsaWdodCBkYXRhLCBhcyBhbiBhYnNvbHV0ZWx5CnN0YW5kYXJk ICJsYXRjaC9yZWdpc3RlciIsIGF0IHRoZSBDb21wVW5pdC4gdGhpcyBoYXMgYmVlbiBpbXBsZW1l bnRlZCBvdmVyCmEgeWVhciBhZ28gYW5kIGhhcyBiZWVuIHdvcmtpbmcgZm9yIG92ZXIgYSB5ZWFy LgoKCj4gSGlnaGVyIG9yZGVyIG5SbVcgcmVnaXN0ZXIgZmlsZXMgd2lsbCBiZWNvbWUgcG93ZXIg YW5kIGFyZWEgaHVuZ3J5Cj4gY29tcGFyZWQgdG8gbXVsdGlwbGUgbG93ZXIgb3JkZXIgcmVzZXJ2 YXRpb24gc3RhdGlvbnMuCj4gSSBoYXZlIHNlZW4gbnVtYmVycyBvZiBhIGZldyB0ZW5zIG9mIGZ1 bmN0aW9uYWwgdW5pdHMgaW4geW91ciBkZXNpZ24uIEkKPiB0aGluayBpdCB3aWxsIGJlY29tZSBh bHNvIGEgbmlnaHRtYXJlIHRvIGNvbm5lY3QgYW5kIHJvdXRlIGFsbCB0aGUgaW5wdXQKPiBhbmQg b3V0cHV0cyBvZiBhbGwgdGhlIGZ1bmN0aW9uYWwgdW5pdHMgdG8gdGhlIGNlbnRyYWwgcmVnaXN0 ZXIgZmlsZSBhbmQKPiBzY29yZWJvYXJkLgoKCmkgYW0gZ29pbmcgb3ZlciB0aGlzIG5vdy4gIHRo ZSBkaWZmZXJlbnQgcmVnZmlsZXMgKENvbmRpdGlvbiwgSU5ULCBTUFIsClhFUikgYXJlIHNlcGFy YXRlIGFuZCBzbyBmcm9tIGEgU1JBTSBwb3J0aW5nIHBlcnNwZWN0aXZlIGFsbCBuZWVkIDFXICh3 aXRoCnRoZSBleGNlcHRpb24gb2YgTERTVCBVcGRhdGUgd2hpY2ggY2FuIGJlIHRpbWVzbGljZWQp Cgp0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVhZCBwb3J0cyBmb3IgYW55IG9uZSBSZWdmaWxlIFNS QU0gaXMgMy4gIDQgd291bGQgYmUKbmljZS4KCnNvIHdlIG9ubHkgbmVlZCA0UjFXIHdoaWNoIGlz IGRvYWJsZS4KCndoZW4gaXQgY29tZXMgdG8gbXVsdGkgaXNzdWUgdGhpcyBpcyB3aGVyZSB0aGUg c3RyYXRpZmljYXRpb24gT0RELUVWRU4KUmVnZmlsZSBudW1iZXJpbmcgY29tZXMgaW50byBwbGF5 LCBhbmQgd2UgKnN0aWxsKiBvbmx5IG5lZWQgNFIxVy4KCgo+ICBTbyBhdCBmaXJzdCBzaWdodCwg ZnJvbSBwaHlzaWNhbCBpbXBsZW1lbnRhdGlvbiBwb2ludCBmb3Igc21hbGxlciBub2RlcywKPiB0 aGUgVG9tYXN1bG8gYWxnb3JpdGhtIHNlZW1zIG1vcmUgc2NhbGFibGUgdGhhbiBleHRlbmRlZCBz Y29yZWJvYXJkaW5nLgoKCml0IGRlZmluaXRlbHkgaXNuJ3QuCgp0byBnZXQgbXVsdGkgaXNzdWUg aW4gVG9tYXN1bG8geW91IG5lZWQgbXVsdGlwbGUgQ29tbW9uIERhdGEgQnVzZXMsCm90aGVyd2lz ZSBpdCBiZWNvbWVzIGV2ZW4gbW9yZSBhIGJvdHRsZW5lY2sgdGhhbiBpdCBhbHJlYWR5IGlzLiBh c3N1bWluZyA0Cmlzc3VlLCB0byBhY2hpZXZlIHRoaXMgdGhlIFJPQiBuZWVkcyB0byBiZSBtYWRl IGEgbXVsdGkgcG9ydGVkICg0UjRXKSBTUkFNLAphbmQsIHdvcnNlLCB0aGUgUmVzZXJ2YXRpb25T dGF0aW9uIENBTXMgbm93IGFsc28gbmVlZCB0byBiZSA0UjRXLgoKcGx1cyBzb21lIG90aGVyIG5p Z2h0bWFyZSBhc3BlY3RzLgoKCj4gIEkgaW5kaWNhdGVkIGJlZm9yZSB0aGF0IGluIHNtYWxsZXIg bm9kZXMgcG93ZXIgY29uc3VtcHRpb24gYW5kIGRlbGF5IGlzCj4gbWFpbmx5IGRldGVybWluZWQg YnkgdGhlIGxlbmd0aCBvZiB0aGUgaW50ZXJjb25uZWN0cyBhbmQgbm90IGJ5IHRoZSBpbnB1dAo+ IGxvYWQgb2YgdGhlIGxvZ2ljIGdhdGVzIGl0c2VsZjsgaW4gMTgwbm0gaXQgd2lsbCBiZSBtb3Jl IGZpZnR5L2ZpZnR5LgoKCmFoLCBhcHByZWNpYXRlZCB0aGUgaW5zaWdodAoKd2l0aCB0aGUgQ29t cHV0YXRpb24gVW5pdHMgbGF0Y2hlcyBiZWluZyBkaXN0cmlidXRlZCwgbm90IGNlbnRyYWxpc2Vk LAp0aGVzZSBsYXRjaGVzIGNhcHR1cmUgdGhlIG9wZXJhbmRzIGNsb3NlIHRvIHRoZSBwb2ludCB3 aGVyZSB0aGV5IHdpbGwgYmUKZmVkIGludG8gdGhlIHBpcGVsaW5lcy4KCmkgcGxhbiB0byBoYXZl IHRoZSBwaXBlbGluZXMgImRvdWJsZSBiYWNrIiBvbiB0aGVtc2VsdmVzLCBwbGFjaW5nIHRoZQpy ZXN1bHQgKmJhY2sqIHdoZXJlIHRoZSBDb21wdXRhdGlvbiBVbml0IG1heSBsYXRjaCB0aGUgcmVz dWx0LCBlYXNpbHksIHRoZW4Kd2FpdCBmb3IgdGhlIFJlZ2ZpbGUgQ29tbW9uIERhdGEgQnVzIGRl ZGljYXRlZCB0byB3cml0aW5nIHRvIHRoZSByZWdmaWxlLgoKdGhlc2UgQnJvYWRjYXN0IEJ1c2Vz IGFyZSBhbiB1bmF2b2lkYWJsZSBuZWNlc3NpdHkgYW5kIHdpbGwgbmVlZCBjYXJlZnVsCmRlc2ln biBhbmQgbGF5b3V0LCBhbmQgYnVmZmVycyB0byBlbnN1cmUgdGhleSBjYW4gYmUgZHJpdmVuIGF0 IHNwZWVkLgoKYm90aCBUb21hc3VsbyBhbmQgU2NvcmVib2FyZHMgcmVxdWlyZSB0aGVzZSBsYXJn ZSBmYW5vdXQgLyBmYW5pbiBCcm9hZGNhc3QKUmVnZmlsZSBCdXNlcy4KCmV4Y2VwdCB0aGF0IGlu IFNjb3JlYm9hcmRzLCBSRUFEIGlzIGNvbXBsZXRlbHkgc2VwYXJhdGUgZnJvbSBXUklURS4KdGhl cmVmb3JlLCBSRUFEIGlzIGZhbm91dCBPTkxZIGFuZCBXUklURSBpcyBmYW5pbiBPTkxZLgoKdGhp cyBtYWtlcyBhIGNydWNpYWwgZGlmZmVyZW5jZSBiZWNhdXNlIHRoZSBUb21hc3VsbyBDREIgaXMg YSBzaW5nbGUgcGF0aApSRUFEICpBTkQqIFdSSVRFIGNvbnRlbmRlZCBnbG9iYWwgcmVzb3VyY2Uu CgpzaW5nbGUgZm9yIGRlbGl2ZXJ5IG9mICpBTEwqIGluZmxpZ2h0IGRhdGEuCgogQXMgSmVyZW15 IGluZGljYXRlZCB0aGlzIGlzIG5leHQgdG8gdGhlIHBvd2VyIGNvbnN1bXB0aW9uIGluIHRoZSBy ZWdpc3Rlcgo+IGZpbGVzIGFuZCBjYWNoZSB3aGljaCBzY2FsZXMgd2l0aCB0aGUgdG90YWwgYml0 IGNvdW50IG9mIHRoZSBibG9jayBhbmQgdGhlCj4gblJtVyBvcmRlciBvZiB0aGUgYmxvY2suCgoK NFIxVy4KCgo+IEFsc28gdGhlIHRyYXZpYWxuZXNzIG9mIGEgYmlnIGZhbi1pbiBOT1Igb3IgTkFO RCBnYXRlIG1heSBiZSBkZWNlcHRpdmUsCj4gdGhlc2UgZ2F0ZXMgYXJlIG5vdCBmZWFzaWJsZSBh bmQgd2lsbCBiZSBzeW50aGVzaXplZCB0byB0cmVlcyBvZiBOQU5EL05PUgo+IGdhdGVzLgoKCnBl cmZlY3QuICBhcyBleHBlY3RlZC4gIGRpYWdyYW1zIGluIE1pdGNoJ3MgYm9vayBjaGFwdGVycyBz aG93IHRoaXMgYmVpbmcKZG9uZSwgZXNwZWNpYWxseSBvbiB0aGUgMzIgcmVnIHZlY3RvcnMuCgoK Cj4KPiAgSW4gdGhhdCByZXNwZWN0IGEgaGlnaCBmYW4taW4gTk9SL05BTkQgY2FuIGhhdmUgc2lt aWxhciB0aW1lL3Bvd2VyCj4gY29uc3VtcHRpb24gdGhhbiBhIHNlZW1pbmdseSBtb3JlIGNvbXBs ZXggY2FzZSBvZiBpZiBzdGF0ZW1lbnQuIEluIHplcm8KPiBvcmRlciwgZm9yIHNpbmdsZSBvdXRw dXQgYmxvY2ssIGRlbGF5IGFuZCBwb3dlciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBudW1iZXIKPiBv ZiBpbnB1dHMgaW5kZXBlbmRlbnQgb2YgdGhlIGNvbXBsZXhpdHkgb2YgdGhlIFJUTC9IREwgY29k ZS4gSW4gZmlyc3Qgb3JkZXIKPiBvbmUgaGFzIHRvIGFjY291bnQgdGhhdCBOQU5EL05PUiBsb2dp YyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIFhPUi9YTk9SCj4gbG9naWMgYnV0IGZvciBiaWdnZXIg dHJlZXMgdGhpcyBkaWZmZXJlbmNlIGlzIGxlc3MgcHJvbm91bmNlZCBhcyBYT1IvWE5PUgo+IHRy ZWVzIHdpbGwgYmUgc3ludGhlc2l6ZWQgdG8gbW9yZSBlZmZpY2llbnQgdHJlZXMgdXNpbmcgQU9J IChhbmQtb3ItaW52ZXJ0KQo+IGNlbGxzLgoKCmFwcHJlY2lhdGUgdGhlIGluc2lnaHRzLCBTdGFm LgoKdG8gc3VtbWFyaXNlLCB0aGVuOgoKKiB3ZSBoYXZlIHNvbWUgY29udGludW91cyBtaXN1bmRl cnN0YW5kaW5ncyBmcm9tIHRoZSBBY2FkZW1pYyBsaXRlcmF0dXJlCndoaWNoIHBlb3BsZSBjb250 aW51ZSB0byBiZWxpZXZlLCBhbmQgbmVlZCB0byBiZSBzdG9tcGVkIG9uIHdoZW5ldmVyIHRoZXkK b2NjdXIuICBuaWNlbHkuCiogd2UgaGF2ZSBzb21lIGJpZyBOT1IvTkFORCBnYXRlcyAoMzIgaW4p IHdoaWNoIGNyZWF0ZSBhIGNhc2NhZGUuICB0aGVzZQphcmUgZXhwZWN0ZWQuCiogREZGcyBhcmUg dXNlZCBhdCB0aGUgZGVjZW50cmFsaXNlZCBDb21wdXRhdGlvbiBVbml0cyB0byBzdG9yZQpkZWNl bnRyYWxpc2VkIGluZmxpZ2h0IGRhdGEKKiBDZW50cmFsaXNlZCA0UjFXIFJlZ2ZpbGVzIHN0b3Jl IGNlbnRyYWxpc2VkIHJlZ2lzdGVyIGRhdGEuCiogVW5pZGlyZWN0aW9uYWwgQnJvYWRjYXN0IEJ1 c2VzIHRyYW5zZmVyIGRhdGEgYmV0d2VlbiBDb21wIFVuaXRzIGFuZApSZWdmaWxlcy4KCmwuCgoK Ci0tIAotLS0KY3Jvd2QtZnVuZGVkIGVjby1jb25zY2lvdXMgaGFyZHdhcmU6IGh0dHBzOi8vd3d3 LmNyb3dkc3VwcGx5LmNvbS9lb21hNjgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGlicmUtcmlzY3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1k ZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFp bG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1kZXYK