Re: [libre-riscv-dev] Introduction and Questions
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 15 May 2020 21:53:21 +0000 (22:53 +0100)
committerlibre-riscv-dev <libre-riscv-dev@lists.libre-riscv.org>
Fri, 15 May 2020 21:53:57 +0000 (22:53 +0100)
9c/f279aa28c3c4efac8571d629d8175ca1d51861 [new file with mode: 0644]

diff --git a/9c/f279aa28c3c4efac8571d629d8175ca1d51861 b/9c/f279aa28c3c4efac8571d629d8175ca1d51861
new file mode 100644 (file)
index 0000000..b3c7320
--- /dev/null
@@ -0,0 +1,212 @@
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Fri, 15 May 2020 22:53:57 +0100
+Received: from localhost ([::1] helo=libre-riscv.org)
+       by libre-soc.org with esmtp (Exim 4.89)
+       (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
+       id 1jZiHF-0002k5-A5; Fri, 15 May 2020 22:53:57 +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 <lkcl@lkcl.net>) id 1jZiHE-0002jz-1J
+ for libre-riscv-dev@lists.libre-riscv.org; Fri, 15 May 2020 22:53:56 +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=vXnit6iradj01tuO3tlw+cxMdPkXpgBhMWBP+B9OAns=; 
+ b=SfQ7woFRFH73T7e5KtJQw86loKFCjc22pnQsg2GpyASVzScyyOhNWRnj0JSffc7Ukf1AXwS+++jmfGCyUfNbA8oTKWeY/0FX6eDekRMozx60XarE4hSbfUPPjCXPqbxe+wFLDBtk+I+sWV1xYHiRcR/8eE4YQGpr6owKKYFHQRU=;
+Received: from mail-lf1-f43.google.com ([209.85.167.43])
+ by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
+ (Exim 4.84_2) (envelope-from <lkcl@lkcl.net>) id 1jZiHD-0004yd-FK
+ for libre-riscv-dev@lists.libre-riscv.org; Fri, 15 May 2020 21:53:55 +0000
+Received: by mail-lf1-f43.google.com with SMTP id x22so143753lfd.4
+ for <libre-riscv-dev@lists.libre-riscv.org>;
+ Fri, 15 May 2020 14:53:40 -0700 (PDT)
+X-Gm-Message-State: AOAM531gZaiF9WRGmijAIkpiFQKZTmbbscqPUN6XTJz3vlNlSeD1poDk
+ Jry4ytxYM41V/7uAo06xlMFuhxS8rW0wYrsW0+0=
+X-Google-Smtp-Source: ABdhPJw0T5s2LimwEAd5wbPwkzGKM+RSEjS2H0MCK/utsZKTh3z539a9wthA+M0xbaPgAQwUvsuqYcthpYU8irYITlU=
+X-Received: by 2002:ac2:4da1:: with SMTP id h1mr3660958lfe.152.1589579614266; 
+ Fri, 15 May 2020 14:53:34 -0700 (PDT)
+MIME-Version: 1.0
+References: <CAEoCstQz36UuDJ+ZUgLRJNeQkA=pTfYuzCr+XgF-FJY9+yJsvA@mail.gmail.com>
+ <747F8870-06C6-46A0-AFD9-D55289D4C41A@gatech.edu>
+ <CAEoCstRUXkB_LxXXubx4A0dhLGvFqq6EPL+GzukDQORpHopaiw@mail.gmail.com>
+ <4BDA96A5-9063-42A6-9548-CAE3CBEBEBAC@gatech.edu>
+ <CAPweEDyZQEBsh8uZ4VkzzALPcoiTgs0AvTmTwS6B0Dc+jy+mfw@mail.gmail.com>
+ <CAEoCstTERH=Z84je148ffL7_yiBYFj_Zet2VfOzkbe86MVmyQQ@mail.gmail.com>
+In-Reply-To: <CAEoCstTERH=Z84je148ffL7_yiBYFj_Zet2VfOzkbe86MVmyQQ@mail.gmail.com>
+From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
+Date: Fri, 15 May 2020 22:53:21 +0100
+X-Gmail-Original-Message-ID: <CAPweEDyHrrQqPaNy7OqCsPUgR0yrELuRENqZTw_qr-tBVHVg+g@mail.gmail.com>
+Message-ID: <CAPweEDyHrrQqPaNy7OqCsPUgR0yrELuRENqZTw_qr-tBVHVg+g@mail.gmail.com>
+To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
+Subject: Re: [libre-riscv-dev] Introduction and Questions
+X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
+X-Mailman-Version: 2.1.23
+Precedence: list
+List-Id: Libre-RISCV General Development
+ <libre-riscv-dev.lists.libre-riscv.org>
+List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>, 
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
+List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
+List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
+List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
+List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>, 
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
+Reply-To: Libre-RISCV General Development
+ <libre-riscv-dev@lists.libre-riscv.org>
+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" <libre-riscv-dev-bounces@lists.libre-riscv.org>
+
+T24gRnJpLCBNYXkgMTUsIDIwMjAgYXQgOTo1MCBQTSBKZXJlbXkgU2luZ2hlciA8dGhlanNpbmdo
+ZXJAZ21haWwuY29tPiB3cm90ZToKPgo+ID4gYSB0ZWVueSB0aW55IGJpdCBvdmVyIHdoYXQgd2Ug
+aW5pdGlhbGx5IHBsYW5uZWQsIHRoZW4gOikKPgo+IFRoYW5rcyBMdWtlLCB0aGVzZSBudW1iZXJz
+IGFyZSBjbG9zZXIgdG8gd2hhdCBzZWVtcyByZWFzb25hYmxlIHRvIG1lLgo+IEEgc2ltcGxlIHN1
+cGVyc2NhbGFyIGNvcmUgd2l0aCAyIEZQVSBmdW5jdGlvbmFsIHVuaXRzIHNob3VsZCBiZSBhYmxl
+Cj4gdG8gYWNoaWV2ZSA0IEdGTE9QUywgc28gYSB2ZWN0b3IgdW5pdCB3b3VsZCBuZWVkIHRvIGdv
+IGhpZ2hlciB0aGFuCj4gdGhhdCB0byBiZSB3b3J0aCB0aGUgZXh0cmEgc2lsaWNvbi4KCnRoZSBo
+YXJkd2FyZSByZXF1aXJlbWVudHMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgc29mdHdhcmUgb25lcy4g
+IHdlCmRlY2lkZWQgdGhvdWdoIHRvIGRvIGEgaHlicmlkIGRlc2lnbiByYXRoZXIgdGhhbiBhIHNl
+cGFyYXRlIENQVQpzZXBhcmF0ZSBHUFUgYXBwcm9hY2guLi4gYmVjYXVzZS4uLiB3ZWxsLi4uIHVt
+Li4uIHRoYXQncy4uLi4gdHdvLi4uCnByb2Nlc3NvcnMgOikKCmh5YnJpZCBkZXNpZ25zIGFyZSBl
+eHRyZW1lbHkgdW51c3VhbC4gIHRoZXJlJ3Mgb25seSAyIHRoYXQgaSBoYXZlCmhlYXJkIG9mOiB0
+aGUgSUN1YmVDb3JwIElDMzEyOCwgYW5kIHRoZSBCcm9hZGNvbSBWaWRlb0NvcmUgSVYgKGJhc2Vk
+CmFyb3VuZCBhbiBBUkMgY29yZSwgQVJDIC0gbm93IGJvdWdodCBieSBTeW5vcHNpcyAtIGlzIGtu
+b3duIGZvcgpwcm92aWRpbmcgYSB3ZWFsdGggb2YgU0lNRCBhbmQgb3RoZXIgImFkZGl0aW9uYWwi
+IGluc3RydWN0aW9ucywKc2ltaWxhciB0byBob3cgUklTQy1WIGlzIG5vdyBzZXQgdXAsIGV4Y2Vw
+dCBjb21wbGV0ZWx5IHNlY3JldGl2ZSBhbmQKdW5kZXIgdGhlIGZ1bGwgYW5kIHRvdGFsIHByb3By
+aWV0YXJ5IGNvbnRyb2wgb2YgU3lub3BzaXMpLgoKaSd2ZSBsb29rZWQgYXQgVmVjdG9yIElTQXMs
+IGFuZCBTSU1EIElTQXM6IGkgY29uY2x1ZGVkIHRoYXQgdGhlcmUncyBhCmJldHRlciB3YXkgdG8g
+ZG8gYSBWZWN0b3IgSVNBLCBrZWVwaW5nIHRoZSAqc2VtYW50aWNzKiBvdXRsaW5lZCBpbiB0aGUK
+YXJ0aWNsZSAiU0lNRCBDb25zaWRlcmVkIEhhcm1mdWwiLgoKPiA+IGJ5IG92ZXJsb2FkaW5nICJt
+dWx0aS1pc3N1ZSIuICBhIGhhcmR3YXJlIGZvci1sb29wIGF0IHRoZSBpbnN0cnVjdGlvbgo+ID4g
+ZXhlY3V0aW9uIHBoYXNlIHdpbGwgcHVzaCBtdWx0aXBsZSBzZXF1ZW50aWFsIGluc3RydWN0aW9u
+cyBpbnRvIHRoZQo+ID4gT29PIGVuZ2luZSBmcm9tIGEgKnNpbmdsZSogaW5zdHJ1Y3Rpb24uCj4K
+PiBJIHNlZSwgc28gYSBmb3JtIG9mIG1pY3JvLW9wIGZpc3Npb24sCgp5ZXMsIGluIGVmZmVjdC4g
+IHRoaXMgcmVkdWNlcyBJLUNhY2hlIHByZXNzdXJlLCB3aGljaCBpbiBhICpoeWJyaWQqCnByb2Nl
+c3NvciBpcyBjcml0aWNhbGx5IGltcG9ydGFudC4gIGluIGEgc2VwYXJhdGUtQ1BVLHNlcGFyYXRl
+LUdQVQpkZXNpZ24geW91IGhhdmUgdHdvIEktQ2FjaGVzLCBydW5uaW5nIHR3byBzZXBhcmF0ZSBl
+eGVjdXRhYmxlcywgeW91CmRvbid0IF9naXZlXyBhIGRhbW4uCgppbiBhIGh5YnJpZCBwcm9jZXNz
+b3IsIHdoZXJlIEdQVSBvcGNvZGVzIGFyZSBvZnRlbiA2NC1iaXQgYW5kIGFyZSBtb3JlCnVzdWFs
+bHkgMTI4LWJpdCAoRk9VUiBiYW5rcyBvZiAzMi1iaXQgVkxJVyBpbnN0cnVjdGlvbnMpLCBiZWNh
+dXNlIG9uZQo2NC1iaXQgaW5zdHJ1Y3Rpb24gbWF5IGJlIGRvaW5nIDE2eCBGUCB2ZWN0b3Igb3Bl
+cmF0aW9ucyB3aG8gX2dpdmVzXyBhCmRhbW4uCgp1bmZvcnR1bmF0ZWx5LCB3aGVuIHRoZSBJLUNh
+Y2hlIGlzIHNoYXJlZCwgd2UgZG8gZ2l2ZSBhIGRhbW4uCnRoZXJlZm9yZSB3ZSBuZWVkIHRvIHJl
+ZHVjZSB0aGUgaW5zdHJ1Y3Rpb24gc2l6ZSBhbmQgY2FtZSB1cCB3aXRoClNpbXBsZVYgKGxvb2sg
+aXQgdXApLgoKPiBlc3NlbnRpYWxseSB5b3UgYXJlIGRlY29kaW5nCj4gY29tcGxleCB2ZWN0b3Ig
+KG9yICJHUFUiKSBpbnN0cnVjdGlvbnMgaW50byBhIHNlcXVlbnRpYWwgc3RyZWFtIG9mCj4gc2lt
+cGxlIG1pY3JvLW9wcz8gVGhpcyBzZWVtcyBsaWtlIGEgcHJldHR5IHJlYXNvbmFibGUgZGVzaWdu
+IHBvaW50LgoKbW1tIG5vdCBxdWl0ZS4gIGxvb2sgdXAgU2ltcGxlVi4gIGl0J3MgYmFzaWNhbGx5
+IGEgQ3JheSBWZWN0b3IgTG9vcAooVkwpIGV4Y2VwdCB0aGF0IFZMLCB3aGVuIHNldCwgYWN0dWFs
+bHkgKlBBVVNFUyogdGhlIFByb2dyYW0gQ291bnRlciwKYW5kIGlzc3VlcyBNVUxUSVBMRSBpbnN0
+cnVjdGlvbnMgLSB1c2luZyB0aGUgb25lIGF0IHRoZSBQQyBhcyBhCiJ0ZW1wbGF0ZSIgLSBidXQg
+aW5jcmVtZW50aW5nIHRoZSBvcGVyYW5kIHJlZ2lzdGVyIG51bWJlcnMKc2VxdWVudGlhbGx5IG9u
+IGVhY2ggaXRlcmF0aW9uIG9mIHRoZSBsb29wIGZyb20gMCB0byBWTC0xLgoKPiA+IHRoZSBESVYg
+cGlwZWxpbmUgd2lsbCBiZS4uLiA4IChtYXliZSBtb3JlKSwgTVVMIHdpbGwgYmUgMiwgQUREIChl
+dGMuKSB3aWxsIGJlIDEuCj4gPiAqIGZldGNoOiAxLgo+ID4gKiBkZWNvZGU6IDEuCj4gPiAqIGlz
+c3VlIGFuZCByZWctcmVhZDogMSAobWluaW11bSkuCj4gPiAqIGV4ZWN1dGU6IGJldHdlZW4gMSBh
+bmQgOCAobWF5YmUgbW9yZSkKPiA+ICogd3JpdGU6IDEgKG1pbmltdW0pCj4KPiBTbyB0aGlzIGlz
+IGp1c3QgZm9yIHRoZSBwcmVsaW1pbmFyeSB0YXBlb3V0PwoKeWVzLCBpbiAxODBubS4gIHdoaWNo
+IGNhbiBvbmx5IGFjaGlldmUgYSBtYXggb2YgYXJvdW5kIDMwMG1oei4gIGlmIHdlCmhhZCBhIFBM
+TC4gIHdoaWNoIHdlIGRvIG5vdC4gIGJlY2F1c2Ugd2UgYXJlIG5vdCBzaWduaW5nIEZvdW5kcnkg
+TkRBcy4KYW5kIHRoZSBGb3VuZHJ5IHdpbGwgb25seSBnaXZlIHVzIHRoZSBQTEwgYmxvY2sgdGhl
+eSBub3JtYWxseSBoYW5kCm91dC4uLi4gdW5kZXIgTkRBLgoKPiBJIHdvdWxkIGV4cGVjdCBhbiBP
+T08KPiBjb3JlIHRhcmdldGluZyAxR0h6KyB0byBoYXZlIG1vcmUgcGlwZWxpbmUgc3RhZ2VzIHRo
+YW4gdGhpcyAoMTArKS4gVGhlCj4gQTcyLCBTa3lsYWtlLCBaZW4sIGFuZCBCT09NIGFsbCBzZWVt
+IHRvIHRhcmdldCAxMCsgc3RhZ2VzLgoKeWVwLiAgYW5kIHRoZXNlIGFyZSBhbGwgKGV4Y2VwdCBC
+T09NKSBVU0QgJDEwMCBtaWxsaW9uIGN1c3RvbSBzaWxpY29uIGRlc2lnbnMuCgo+ID4gYmFzaWNh
+bGx5IHRoaXMgaXMgd2h5IHdlJ3JlIGRvaW5nIE9vTyBiZWNhdXNlIGNvb3JkaW5hdGluZyBhbGwg
+dGhhdCBpbgo+ID4gYW4gaW4tb3JkZXIgc3lzdGVtIHdvdWxkIGJlIGFic29sdXRlIGhlbGwuCj4K
+PiBJJ20gYSBiaXQgY29uZnVzZWQgbm93LiBJbi1vcmRlciBleGVjdXRpb24gd2l0aCB2YXJpYWJs
+ZS1sYXRlbmN5Cj4gZnVuY3Rpb25hbCB1bml0cyBjYW4gYmUgYWNoaWV2ZWQgd2l0aCBhIHNjb3Jl
+Ym9hcmQsCgp3aGljaCB3ZSBoYXZlLiAgdXNpbmcgYW4gYXVnbWVudGVkIHZhcmlhbnQgb2YgdGhl
+IDY2MDAsIHRoYW5rcyB0byBNaXRjaCBBbHN1cC4KaHR0cHM6Ly9saWJyZS1zb2Mub3JnLzNkX2dw
+dS9hcmNoaXRlY3R1cmUvNjYwMHNjb3JlYm9hcmQvCgo+IGFuZCB0aGUgcGlwZWxpbmUKPiBzdGFn
+ZXMgeW91IGRlc2NyaWJlIHJlbWluZHMgbWUgb2YgYSBpbi1vcmRlciBjb3JlIHdpdGggT09PIHdy
+aXRlLWJhY2suCgpwaXBlbGluZXMgY2FuIHN0aWxsIGJlIHVzZWQgYmVoaW5kIEZ1bmN0aW9uIFVu
+aXQgImZyb250LWVuZHMiLiAgTWl0Y2ggQWxzdXAKZGVzY3JpYmVzIHRoZW0gYXMgIkNvbmN1cnJl
+bnQgQ29tcHV0YXRpb24gVW5pdHMiLiAgYmFzaWNhbGx5IGlmIHRoZSBwaXBlbGluZQppcyBOIGRl
+ZXAsIHlvdSBwdXQgTi1vci1ncmVhdGVyIEZ1bmN0aW9uIFVuaXQgIlJlc2VydmF0aW9uLVN0YXRp
+b24iIHN0eWxlCm9wZXJhbmQgbGF0Y2hlcyBvbiB0aGUgZnJvbnQsIHRoYXQgZ2l2ZXMgeW91IHRo
+ZSBhYmlsaXR5IHRvIHRyYWNrIHRoZSBwaXBlbGluZQpyZXN1bHRzLCBtYXRjaCB0aGVtICpiYWNr
+KiB1cCB3aXRoIHRoZSBGVSBpbmRleCwgYW5kIHZvaWxhLCB5b3UgaGF2ZQp0dXJuZWQgd2hhdCBp
+cyBvdGhlcndpc2UgY29uc2lkZXJlZCB0aGUgZXhjbHVzaXZlIGRvbWFpbiBvZiAiaW4tb3JkZXIg
+cGlwZWxpbmUiCnRlcm1pbm9sb2d5IGludG8gc29tZXRoaW5nIHRoYXQgZml0cyBpbnRvIE9vTy4K
+Cj4gSXMgdGhpcyB3aGF0IHlvdSBhcmUgZG9pbmc/Cgpuby4KCj4gT3IgYXJlIHlvdSBwdXJzdWlu
+ZyB0cnVlIE9PTyBleGVjdXRpb24KCnllcy4KCj4gd2l0aCByZWdpc3Rlci1yZW5hbWluZz8KCm5v
+IC8gbWlzbGVhZGluZyBxdWVzdGlvbi4KCndlIGFyZSB1c2luZyB0aGUgNjYwMCBkZXNpZ24sIGZy
+b20gMTk2NS4gIHRoaXMgaGFzICJpbXBsaWNpdCIKcmVnaXN0ZXItcmVuYW1pbmcgYXV0b21hdGlj
+YWxseSBidWlsdC1pbiB0byB0aGUgZGVzaWduLiAgdGhlc2UgYXJlIHRoZQpGdW5jdGlvbiBVbml0
+IG9wZXJhbmQgbGF0Y2hlcy4gIHRoZXkgYXJlIGJlc3QgdGVybWVkICJuYW1lbGVzcwpyZWdpc3Rl
+cnMiIHJhdGhlciB0aGFuICJyZWdpc3Rlci1yZW5hbWluZyIuCgppZiB5b3UgYXJlIGZhbWlsaWFy
+IHdpdGggdGhlIFRvbWFzdWxvIEFsZ29yaXRobTogaWYgeW91IG1ha2UgdGhlCm51bWJlciBvZiBS
+ZXNlcnZhdGlvbiBTdGF0aW9uIFJvd3MgZXF1YWwgdG8gMSwgdGhlbiB0aGUgUlMgbGF0Y2hlcyBh
+cmUKZGlyZWN0bHkgZXF1YWwgYW5kIGVxdWl2YWxlbnQgdG8gRnVuY3Rpb24gVW5pdCBvcGVyYW5k
+IGxhdGNoZXMsIGFuZApib3RoIGFyZSBpbiBlZmZlY3QgInJlZ2lzdGVyIHJlbmFtaW5nIi4uLiBv
+bmx5IHRoZSBiZXR0ZXIgdGVybWlub2xvZ3kKaXMgIm5hbWVsZXNzIHJlZ2lzdGVycyIgb3IgImlu
+LWZsaWdodCByZWdpc3RlcnMgLyByZXN1bHRzIi4KCmlmIHlvdSBoYXZlIHJlYWQgaGlzIGJvb2sg
+YW5kIGNvbnNpZGVyIGl0IHRvIGJlIHRoZSBsYXN0IHdvcmQgb24Kc2NvcmVib2FyZHMsIFBhdHRl
+cnNvbiBoYXMgY29tcGxldGVseSBhbmQgdXR0ZXJseSBtaXNpbmZvcm1lZCB0aGUKZ2VuZXJhbCBw
+dWJsaWMgYW5kIHRoZSBhY2FkZW1pYyBjb21tdW5pdHkgd2l0aCBoaXMgYm9vaywgcmVnYXJkaW5n
+IHRoZQo2NjAwIGFuZCBzY29yZWJvYXJkcyBpbiBnZW5lcmFsLiAgTWl0Y2ggQWxzdXAgaGFkIHRv
+IHdyaXRlIHR3bwphZGRpdGlvbmFsIGNoYXB0ZXJzLCBhcyBhbiBhZGRlbmR1bSB0byBKYW1lcyBU
+aG9ybnRvbidzIGJvb2ssICJEZXNpZ24Kb2YgYSBDb21wdXRlciIsIGluIG9yZGVyIHRvIGNvcnJl
+Y3QgUGF0dGVyc29uJ3MgbWlzaW5mb3JtYXRpb24uCgo+ID4gaXQncyBkb3duIHVsdGltYXRlbHkg
+dG8gaG93IHdpZGUgdGhlIHJlZ2lzdGVyIHBhdGhzIGFyZSwgYmV0d2VlbiB0aGUKPiA+IFJlZ2Zp
+bGUgYW5kIHRoZSBGdW5jdGlvbiBVbml0cy4gIGlmIHdlIGhhdmUgbXVsdGlwbGUgUmVnaXN0ZXIg
+RGF0YQo+ID4gQnVzZXMsIGFuZCBjYW4gaW1wbGVtZW50IHRoZSBtdWx0aS1pc3N1ZSBwYXJ0IGlu
+IHRpbWUsIGl0J2xsIGJlIGNvZGVkCj4gPiBpbiBhIGdlbmVyYWwtcHVycG9zZSBlbm91Z2ggd2F5
+IHRoYXQgd2UgY291bGQgY29uc2lkZXIgNC1pc3N1ZS4KPiA+IGhvd2V2ZXIuLi4gd2l0aG91dCB0
+aGUgcmVnaXN0ZXIgZGF0YSBwYXRocywgdGhlcmUncyBubyBwb2ludC4KCj4KPiBGYWlyIGVub3Vn
+aC4gQmFsYW5jaW5nIHRoZSB0aHJvdWdocHV0IG9mIGFsbCB0aGUgY29tcG9uZW50cyBpbiBhIE9P
+Two+IGNvcmUgaXMgdHJpY2t5LCBhbmQgcmVnaXN0ZXIgcmVhZCBjYW4gY2VydGFpbmx5IGJlIGEg
+Ym90dGxlbmVjay4KCnllcy4gIHNlZSBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2Nv
+bXAuYXJjaC9xZU1zRTdVeHZsSS9BbXdzb21Eb0FRQUoKaSBjYW4ndCBmaW5kIHRoZSBkaWFncmFt
+IGkgZHJldyBhdCB0aGUgbW9tZW50Li4uIHJlZ2ZpbGUgaSB0aGluay4uLgphaCB5ZXMgaGVyZSB5
+b3UgZ286Cmh0dHBzOi8vbGlicmUtc29jLm9yZy8zZF9ncHUvYXJjaGl0ZWN0dXJlL3JlZ2ZpbGUv
+Cgp0aGF0J3MgYSBnbG9iYWwgY3ljbGljIGJ1ZmZlciBhdCB0aGUgcmVnZmlsZSAoYWN0cyBhcyBh
+biBPcGVyYW5kCkZvcndhcmRpbmcgQnVzKSBhbmQKKmxvY2FsKiBjeWNsaWMgYnVmZmVycyBhdCB0
+aGUgRnVuY3Rpb24gVW5pdHMuCgo+ID4gV2UgaGFkIHNvbWUgdW5mb3J0dW5hdGUgcnVuLWlucyB3
+aXRoIEJlcmtlbGV5IGFuZCBSSVNDViAtIGFuZCB3ZSBkZWNpZGVkIHRvIGdvIHdpdGggUE9XRVIg
+YmVjYXVzZSB3ZSBoYXZlIGFjY2VzcyB0byBzb21lIGltcG9ydGFudCByZWxhdGlvbnMgYXQgSUJN
+Cj4KPiBIYXZlIHlvdSBsb29rZWQgYXQgdGhlIG9wZW4gUklTQy1WIG1pY3JvLWFyY2hpdGVjdHVy
+ZXMgdGhvdWdoPwoKeWVzLiAgdGhleSBhcmUgbm93aGVyZSBuZWFyIHRoZSBsZXZlbCBvZiBjb21w
+cmVoZW5zaXZlbmVzcyBuZWVkZWQuCnBsdXMsIGl0IHdvdWxkIGJlIGluY3JlZGlibHkgaXJyZXNw
+b25zaWJsZSBvZiB1cyB0byBicmluZyB0byBtYXJrZXQgYQoxMDAgbWlsbGlvbiBhbmQgYWJvdmUg
+KmxpYnJlKiBkZXNpZ24gd2hlcmUgdGhlIG1vZGlmaWNhdGlvbnMgdG8gdGhlCmNvbXBpbGVyLCB0
+b29sY2hhaW4sIGV2ZXJ5dGhpbmcsIGFsbCBuZWVkZWQgdG8gYmUgdXBzdHJlYW0uCgoKPiBFdmVu
+IGlmCj4gdGhpcyBjb3JlIHJ1bnMgUE9XRVIsIGl0IHNob3VsZCBiZSBub3QgdG9vIGRpZmZpY3Vs
+dCB0byBwb3J0IGRlc2lnbgo+IGlkZWFzIGZyb20gZXhpc3RpbmcgY29yZXMsIHRvIGF2b2lkIHJl
+aW52ZW50aW5nIHRoZSB3aGVlbCBldmVyeXdoZXJlLgoKYmVjYXVzZSBvZiB0aGUgd2F5IHRoYXQg
+U2ltcGxlViB3b3JrcywgYW5kIGJlY2F1c2Ugd2UgbmVlZCB0bwpkcmFzdGljYWxseSBleHRlbmQg
+dGhlIHRhcmdldCBJU0EgKFBPV0VSOSkgd2l0aCBvcGNvZGVzIHRoYXQgYXJlCmV2ZXJ5ZGF5IGNv
+bW1vbi11c2FnZSBpbiBHUFVzIChUZXh0dXJlIE9wcywgU0lOLCBDT1MsIFJHQjJZVVYpLCB3aGls
+c3QKb24gdGhlIGZhY2Ugb2YgaXQgdGhlIGlkZWEgc291bmRzICJwZXJmZWN0bHkgcmVhc29uYWJs
+ZSIsIHRoZSBjaGFuZ2VzCnJlcXVpcmVkIGFyZSBzbyBmdW5kYW1lbnRhbCB0aGF0IHN0YXJ0aW5n
+IGZyb20gc29tZW9uZSBlbHNlJ3MgZGVzaWduCndvdWxkIHByb2R1Y2UgbWFzc2l2ZSBiYXJyaWVy
+cy4KCmV4YW1wbGU6IHdlIGhhdmUgY3JlYXRlZCBQYXJ0aXRpb25lZFNpZ25hbCAtIGEgY2xhc3Mg
+dGhhdCBub3QganVzdAoicGVyZm9ybXMgYWRkIG9wZXJhdGlvbnMiLCBpdCB0YWtlcyBhbiAqYWRk
+aXRpb25hbCogKGR5bmFtaWMpCnNpZGUtYXJndW1lbnQgLSBhIG1hc2sgLSB3aGljaCAqZHluYW1p
+Y2FsbHkqIHBhcnRpdGlvbnMgd2hhdCB3b3VsZApvdGhlcndpc2UgYmUgYSA2NC1iaXQgb3BlcmF0
+aW9uIGludG8gKmFueSogY29tYmluYXRpb24gb2YgOCwgMTYsIDI0LAozMiwgNDAsIDQ4IGFuZCA1
+NiBiaXQgb3BlcmF0aW9ucy4KCnRoaXMgY2xhc3MsIGJlY2F1c2Ugd2UgYXJlIHVzaW5nIHB5dGhv
+biwgY2FuIGJlIGhhbmRlZCBpbiBhcyBhIGtscyBpbgphbiBPYmplY3QtT3JpZW50YXRlZCBmYXNo
+aW9uLCB0byAqcmVwbGFjZSogbm1pZ2VuIFNpZ25hbCwgYW5kIHRodXMgd2UKbWF5IGNvbnN0cnVj
+dCBjb2RlIHRoYXQgb24gdGhlIGZpcnN0IHVzYWdlIGlzIGEgc2ltcGxlIHBpcGVsaW5lLApob3dl
+dmVyIHdlIG1heSB0aGVuIGNvbnZlcnQgdGhhdCBFWEFDVCBTQU1FIENPREUgaW50byBhIGR5bmFt
+aWMgU0lNRAp2YXJpYW50IHB1cmVseSB3aXRoIGEgb25lLWxpbmUgY2hhbmdlLgoKdGhlc2Uga2lu
+ZHMgb2YgdGVjaG5pcXVlcyBhcmUgbm9ybWFsbHkgdGhlIGV4Y2x1c2l2ZSBkb21haW4gb2YKZXhw
+ZXJpZW5jZWQgU29mdHdhcmUgRW5naW5lZXJpbmcgdGVhbXMuICBmb3IgYSAqaGFyZHdhcmUqIHRl
+YW0gdG8KZGVwbG95IHRoZW0/ICB0aGlzIGlzIHVuaGVhcmQtb2YsIGFuZCBpZiBhdHRlbXB0ZWQg
+d2l0aCBldmVuIENoaXNlbDMgLwpTY2FsYSwgd291bGQgaGF2ZSB0aGUgdGVhbSBydW5uaW5nIGF3
+YXkgc2NyZWFtaW5nIHdpdGhpbiBhYm91dCA2Cm1vbnRocy4gIGEgdGVhbSB0aGF0IHdhcyBhc2tl
+ZCB0byBkbyB0aGF0IGluIHZlcmlsb2cgb3IgVkhETCB3b3VsZApmbGF0LW91dCBzYXkgIm5vIi4g
+IG9yIGFzayBmb3IgNTAgZXh0cmEgZW5naW5lZXJzLiAgd2hpY2gsIGZvciBJQk0gb3IKSW50ZWwg
+b3IgQVJNIGlzIG5vdCB1bnJlYXNvbmFibGUsIGJ1dCBmb3IgdXMgaXQgaXMgbm90LgoKaGVuY2Ug
+d2Ugc3RhcnRlZCBmcm9tIHNjcmF0Y2gsIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZGVwbG95IHRo
+ZXNlCmtpbmRzIG9mIFNvZnR3YXJlIEVuZ2luZWVyaW5nIHRlY2huaXF1ZXMuCgpsLgoKX19fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlzY3YtZGV2
+IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCmh0dHA6
+Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1kZXYK
+