From: Luke Kenneth Casson Leighton Date: Fri, 15 May 2020 21:53:21 +0000 (+0100) Subject: Re: [libre-riscv-dev] Introduction and Questions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9fbd0052a7efacfcdbbefa6d6bf5fac6a20b02c4;p=libre-riscv-dev.git Re: [libre-riscv-dev] Introduction and Questions --- diff --git a/9c/f279aa28c3c4efac8571d629d8175ca1d51861 b/9c/f279aa28c3c4efac8571d629d8175ca1d51861 new file mode 100644 index 0000000..b3c7320 --- /dev/null +++ b/9c/f279aa28c3c4efac8571d629d8175ca1d51861 @@ -0,0 +1,212 @@ +Return-path: +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 ) + 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 ) 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 ) 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 ; + 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: + <747F8870-06C6-46A0-AFD9-D55289D4C41A@gatech.edu> + + <4BDA96A5-9063-42A6-9548-CAE3CBEBEBAC@gatech.edu> + + +In-Reply-To: +From: Luke Kenneth Casson Leighton +Date: Fri, 15 May 2020 22:53:21 +0100 +X-Gmail-Original-Message-ID: +Message-ID: +To: Libre-RISCV General Development +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 + +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" + +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 +