From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Envelope-to: publicinbox@libre-riscv.org Delivery-date: Tue, 05 May 2020 18:02:13 +0100 Received: from localhost ([::1] helo=libre-riscv.org) by libre-soc.org with esmtp (Exim 4.89) (envelope-from ) id 1jW0xR-0000kq-6j; Tue, 05 May 2020 18:02:13 +0100 Received: from localhost ([127.0.0.1] helo=bugs.libre-soc.org) by libre-soc.org with esmtp (Exim 4.89) (envelope-from ) id 1jW0xP-0000kb-CZ for libre-riscv-dev@lists.libre-riscv.org; Tue, 05 May 2020 18:02:11 +0100 From: bugzilla-daemon@libre-soc.org To: libre-riscv-dev@lists.libre-riscv.org Date: Tue, 05 May 2020 17:02:11 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Libre-SOC's first SoC X-Bugzilla-Component: ALU (including IEEE754 16/32/64-bit FPU) X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: lkcl@lkcl.net X-Bugzilla-Status: CONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: mtnolan2640@gmail.com X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: https://bugs.libre-soc.org/ Auto-Submitted: auto-generated MIME-Version: 1.0 Subject: [libre-riscv-dev] [Bug 208] implement CORDIC in a general way sufficient to do transcendentals 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" Archived-At: List-Archive: aHR0cHM6Ly9idWdzLmxpYnJlLXNvYy5vcmcvc2hvd19idWcuY2dpP2lkPTIwOAoKLS0tIENvbW1l bnQgIzUzIGZyb20gTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4g LS0tCihJbiByZXBseSB0byBNaWNoYWVsIE5vbGFuIGZyb20gY29tbWVudCAjNTIpCj4gKEluIHJl cGx5IHRvIEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gZnJvbSBjb21tZW50ICM1MCkKPiA+ IGJ0dyAxMiBzdGFnZXMgaXMgdG9vIG1hbnksIGJlY2F1c2Ugd2UgbmVlZCBhIG1pbmltdW0gb2Yg b25lIEZ1bmN0aW9uVW5pdAo+ID4gIm1hbmFnaW5nIiAobWF0Y2hpbmcgdXApIHNvdXJjZSBvcGVy YW5kcyBhbmQgcmVzdWx0cy4KPiA+IAo+ID4gZWFjaCBleHRyYSBGdW5jdGlvbiBVbml0IGFkZGVk IGNyZWF0ZXMgYW4gT3JkZXIgTl4yIGluY3JlYXNlIGluIHRoZSBvdmVyYWxsCj4gPiBzaXplIG9m IHRoZSBEZXBlbmRlbmN5IE1hdHJpY2VzLgo+ID4gCj4gPiBzbyAtIGFuZCBpIGRvbid0IG1lYW4g cmlnaHQgbm93IC0gaWYgdGhpcyBjYW4gYmUgZWl0aGVyOgo+ID4gCj4gPiAqIGN1dCBpbnRvIHR3 byBzZXBhcmF0ZSBwaXBlbGluZXMgKHBhcnRpYWwgZGF0YSBmZWQgYmFjayBhcyBhIG1pY3JvLW9w KQo+ID4gKiBudW1iZXIgb2YgY29tYmluYXRvcmlhbCBibG9ja3MgaW5jcmVhc2VkIHRvIDUgb3Ig Ngo+ID4gCj4gPiB3ZSBzdGFuZCBhIGNoYW5jZSBvZiBrZWVwaW5nIHRoZSBGVSBjb3VudCBkb3du ICg4IGlzIG9rKS4KPiA+IAo+ID4gaGF2ZSB0byB0aGluayB0aGF0IHRocm91Z2ggY2FyZWZ1bGx5 LCBob3cgdG8gZG8gbWljcm8tb3BzLgo+IAo+IFN1cmUuIEkgZG9uJ3Qga25vdyBhYm91dCBzcGxp dHRpbmcgaXQgdXAgaW50byBtdWx0aXBsZSB1b3BzLAoKbmVpdGhlciBkbyBpIGF0IHRoZSBtb21l bnQhICBpIHRoaW5rIGkgbWlnaHQgaGF2ZSBnb3QgY29uZnVzZWQgYWJvdXQKc2hhcmluZyB0aGUg TVVMIHVuaXQgd2l0aCBGUE1VTC4KCj4gIGJ1dCByZWR1Y2luZwo+IHRoZSBudW1iZXIgb2Ygc3Rh Z2VzIGlzIHByZXR0eSBlYXN5LiBJIGFkZGVkIGEgcGFyYW1ldGVyIHRvIHRoZSBtb2R1bGUKPiBj YWxsZWQgcm91bmRzX3Blcl9zdGFnZSB3aGljaCBnb3Zlcm5zIGhvdyBtYW55IGNvcmRpYyByb3Vu ZHMgZ28gaW4gZWFjaAo+IHBpcGVsaW5lIHN0YWdlLiBJbmNyZWFzaW5nIHRoYXQgbnVtYmVyIHdp bGwgZGVjcmVhc2UgdGhlIG51bWJlciBvZiBwaXBlbGluZQo+IHN0YWdlcy4KCmZhbnRhc3RpYywg dGhhdCdzIGV4YWN0bHkgdGhlIGtpbmQgb2YgcGFyYW1ldGVyaXNhdGlvbiBfd2VfIG5lZWQsCmhv d2V2ZXIgYXMgYSBnZW5lcmFsLXB1cnBvc2UgSUVFRTc1NCBGUCBsaWJyYXJ5LCBpdCdzIGV4YWN0 bHkKdGhlIGtpbmQgb2YgcGFyYW1ldGVyaXNhdGlvbiB0aGF0IG90aGVyIF91c2Vyc18gbmVlZCA6 KQoKPiAKPiAoSW4gcmVwbHkgdG8gTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiBmcm9tIGNv bW1lbnQgIzUxKQo+ID4gdGhlIG90aGVyIG9wdGlvbjoKPiA+IAo+ID4ga2VlcCB0aGUgbG9uZyBw aXBlbGluZSBsZW5ndGhzOiB3ZSAqa25vdyogdGhhdCB0aGVyZSdzIG1vcmUgc3RhZ2VzIHRoYW4K PiA+IHRoZXJlIGFyZSBGVXMsIGFuZCB0aGF0J3MganVzdCAidG91Z2ggbHVjayIuICB3ZSBrbm93 IHRoYXQgd2l0aCBvbmx5Cj4gPiA4IEZVcyBhbmQgMTIgcGlwZWxpbmUgc3RhZ2VzLCA0IG9mIHRo b3NlIGF0IGFueSBvbmUgdGltZSB3aWxsIHJ1bgo+ID4gZW1wdHksIGFuZCB3ZSBqdXN0Li4uIGxp dmUgd2l0aCB0aGF0Lgo+IAo+IEkgd2FzIGdvaW5nIHRvIGFzayBpZiB3ZSBjb3VsZCBkbyBzb21l dGhpbmcgbGlrZSB0aGlzLiBTaW5jZSBJIGRvbid0IHRoaW5rCj4gdGhlIGNvcmRpYyB3aWxsIGJl IHVzZWQgKnRoYXQqIG9mdGVuLCB0aGlzIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIHRoaW5nIHRv Cj4gZG8uCgp5ZWh5ZWguCgpvayB3aGF0IGVsc2UgY2FuIHdlIHRocm93IGluIGhlcmU/ICBMT0cx UCBpcyBwcm9iYWJseSBhIGdvb2QgdGhpbmcgdG8gdHJ5Cgp0aGlzIGlzIGEgZ3JlYXQgZXhwbGFu YXRpb246Cmh0dHA6Ly93d3cubWNsZW5lZ2FuLmNvbS9wdWJsaWMvdGhlc2lzLnBkZgoKc2VjdGlv biA0LjQuMSBleHBsYWlucyAicm90YXRpb24gbW9kZSIKCmhvd2V2ZXIgd2UgYWxzbyBuZWVkICp2 ZWN0b3IqIG1vZGUgKDQuNC4yKQoKaSBrbm93IC0gc29tZXdoZXJlIC0gaSd2ZSBzZWVuIGEgcHl0 aG9uIGltcGxlbWVudGF0aW9uIG9mIHZlY3RvciBtb2RlLgppdCBhbHNvIHNwZWNpZmllZCwgYXMg eW91IGNhbiBzZWUsIHRoZSB0aHJlZSBvdGhlciBtb2RlczogY2lyY3VsYXIsCmxpbmVhciwgaHlw ZXJib2xpYy4KCmFoISAgaSBrbm93IHdoeSB3ZSB3YW50IHRvIGtlZXAgdGhlIHR3byBhbnN3ZXJz OiBzZWUgcDM5IG9mIHRoYXQKdGhlc2lzOiB5b3UgY2FuIHVzZSB0aGVtICh3aXRoIHNvbWUgcG9z dC1wcm9jZXNzaW5nKSB0byBkbwp0YW4uCgphbHNvLCBzZWUgY2lyY3VsYXItdmVjdG9yaW5nIG1v ZGUsIGl0IGVuZHMgdXAgY29tcHV0aW5nIHRoZQpub3JtYWwgZGlzdGFuY2UgYW5kLi4uIGFuZCB0 aGUgYW5nbGU/ICBvaGgsIHRoYXQncyBmb3IuLi4gZGFybgp3aGF0IHdhcyBpdC4uLiBpdCdzIGZv ciBhcmNzLiAgdGhlcmUncyBhIG5hbWUgZm9yIHRoaXMuLi4gc29ycnkKaSBmb3JnZXQgd2hhdCBp dCdzIGNhbGxlZCByaWdodCBub3cuCgpodHRwczovL3d3dy5pamVydC5vcmcvdmhkbC1pbXBsZW1l bnRhdGlvbi1vZi1jb3JkaWMtYWxnb3JpdGhtLWZvci13aXJlbGVzcy1sYW4KCnRoaXMgdmVyc2lv biwgcDE0LCBleHBsYWlucyBtdWNoIGNsZWFyZXIgdGhhdCAicm90YXRlIiBtb2RlIGdvZXMKYnkg YW5nbGUgYW5kIGNvbXB1dGVzIHgseQoKInZlY3RvciIgbW9kZSB0aGUgdmVjdG9yIGlzIHJvdGF0 ZWQgdG8gYmUgZmxhdCBhZ2FpbnN0IHRoZSB4LWF4aXMsCnJlY29yZGluZyB0aGUgYW5nbGUgKFop IG5lZWRlZCB0byBkbyBzby4KCnRoaXMgb25lIGlzIGEgc3VydmV5IG9mIENPUkRJQyBhbGdvcml0 aG1zOgpodHRwOi8vd3d3LmVlLmljLmFjLnVrL3BjaGV1bmcvdGVhY2hpbmcvZWUzX0RTRC9jcmRj c3J2eS5wZGYKCml0IHNob3dzIC0gKmJyaWVmbHkqIC0gaG93IHRvIHVzZSB0aGVtIHRvIGRvIGRp ZmZlcmVudCB0aGluZ3MsIGJ1dAppdCBhbHNvLCBieSBiZWluZyBhIHN1cnZleSwgaGFzIHNvbWUg cmVhbGx5IHVzZWZ1bCBpbnNpZ2h0cyBpbnRvCnZhcmlvdXMgb3B0aW1pc2F0aW9ucy4KCnNvIGNh biBpIHN1Z2dlc3QsIGZpcnN0IGFkZGluZyB0aGUgaW5mcmFzdHJ1Y3R1cmUgYmFjayBpbiB0byBh bGxvdwpjYW5jZWxsYXRpb24gYW5kIG9wZXJhdGlvbnMgKGN0eCksIHRoZW4gc2VlIGlmIHlvdSBj YW4gYWRkIG9uZSBleHRyYQoibW9kZSIgKHRoZSBtPS0xLCBtPTAsIG09MSB0aGluZyBzZWVtcyB0 cml2aWFsIHdoaWNoIHdpbGwgZ2l2ZSB0aGUKY2lyY3VsYXIsIGxpbmVhciBhbmQgaHlwZXJib2xp YyBtb2RlcywgcmVzcGVjdGl2ZWx5KS4KCiJjaXJjdWxhciIgbW9kZSBpcyBjb3ZlcmVkIHdpdGgg dGhlIG91dHB1dCBiZWluZyBTSU4vQ09TLgoKYWggaGEhICBoZXJlJ3MgYSB1c2VmdWwgc3VpdGUg b2YgaW1wbGVtZW50YXRpb25zIChhbm5veWluZ2x5IGJlaW5nCmluIGp1cGl0ZXIpCmh0dHBzOi8v Z2l0aHViLmNvbS9zdXlhc2htYWhhci9jb3JkaWMtYWxnb3JpdGhtLXB5dGhvbi9ibG9iL21hc3Rl ci9jb3JkaWNfaW1wbGVtZW50YXRpb24uaXB5bmIKCmV4dHJhY3RpZ24gdGhlIHR3byBtb2RlczoK CgpjaXJjdWxhciA9IDEKbGluZWFyID0gMApoeXBlcmJvbGljID0gLTEKCgoKZGVmIFJPTV9sb29r dXAoaXRlcmF0aW9uLCBjb29yZGluYXRlKToKICAgIGlmIChjb29yZGluYXRlID09IGNpcmN1bGFy KToKICAgICAgICByZXR1cm4gbWF0aC5kZWdyZWVzKG1hdGguYXRhbigyKiooLTEqaXRlcmF0aW9u KSkpCiAgICBlbGlmIChjb29yZGluYXRlID09IGxpbmVhcik6CiAgICAgICAgcmV0dXJuIDIqKigt MSppdGVyYXRpb24pCiAgICBlbGlmIChjb29yZGluYXRlID09IGh5cGVyYm9saWMpOgogICAgICAg IHJldHVybiAobWF0aC5hdGFuaCgyKiooLTEqaXRlcmF0aW9uKSkpCgpkZWYgcm90YXRpb25fbW9k ZSh4LCB5LCB6LCBjb29yZGluYXRlLCBpdGVyYXRpb25zKToKICAgIGEgPSAwLjYwNzI1MjkzNTsg ICAjID0gMS9LCgogICAgeF92YWxfbGlzdCA9IFtdCiAgICB5X3ZhbF9saXN0ID0gW10KICAgIHpf dmFsX2xpc3QgPSBbXQogICAgaXRlcmF0aW9uc19saXN0ID0gW10KCiAgICBpID0gMDsgICAgICAg ICAgICAgICAgICAjIEtlZXBzIGNvdW50IG9uIG51bWJlciBvZiBpdGVyYXRpb25zCgogICAgY3Vy cmVudF94ID0geCAgICAgICAgICMgVmFsdWUgb2YgWCBvbiBpdGggaXRlcmF0aW9uIAogICAgY3Vy cmVudF95ID0geSAgICAgICAgICMgVmFsdWUgb2YgWSBvbiBpdGggaXRlcmF0aW9uCiAgICBjdXJy ZW50X3ogPSB6ICAgICAgICAgIyBWYWx1ZSBvZiBaIG9uIGl0aCBpdGVyYXRpb24KCiAgICBkaSA9 IDAKCiAgICBpZiAoY29vcmRpbmF0ZSA9PSBoeXBlcmJvbGljKToKICAgICAgICBpID0gMQogICAg ZWxzZToKICAgICAgICBpID0gMAoKICAgIGZsYWcgPSAwCgogICAgaWYgKGl0ZXJhdGlvbnMgPiAw KToKICAgICAgICB3aGlsZSAoaSA8IGl0ZXJhdGlvbnMpOgogICAgICAgICAgICBpZiAoY3VycmVu dF96IDwgMCk6CiAgICAgICAgICAgICAgICBkaSA9IC0xCiAgICAgICAgICAgIGVsc2U6CiAgICAg ICAgICAgICAgICBkaSA9ICsxCiAgICAgICAgICAgIG5leHRfeiA9IGN1cnJlbnRfeiAtIGRpICog Uk9NX2xvb2t1cChpLCBjb29yZGluYXRlKQogICAgICAgICAgICBuZXh0X3ggPSBjdXJyZW50X3gg LSBjb29yZGluYXRlICogZGkgKiBjdXJyZW50X3kgKiAoMioqKC0xKmkpKQogICAgICAgICAgICBu ZXh0X3kgPSBjdXJyZW50X3kgKyBkaSAqIGN1cnJlbnRfeCAqIDIqKigtMSppKQoKICAgICAgICAg ICAgY3VycmVudF94ID0gbmV4dF94CiAgICAgICAgICAgIGN1cnJlbnRfeSA9IG5leHRfeQogICAg ICAgICAgICBjdXJyZW50X3ogPSBuZXh0X3oKCiAgICAgICAgICAgIHhfdmFsX2xpc3QuYXBwZW5k KGN1cnJlbnRfeCkKICAgICAgICAgICAgeV92YWxfbGlzdC5hcHBlbmQoY3VycmVudF95KQogICAg ICAgICAgICB6X3ZhbF9saXN0LmFwcGVuZChjdXJyZW50X3opCgogICAgICAgICAgICBpdGVyYXRp b25zX2xpc3QuYXBwZW5kKGkpCgogICAgICAgICAgICBpZiAoY29vcmRpbmF0ZSA9PSBoeXBlcmJv bGljKToKICAgICAgICAgICAgICAgIGlmICgoaSAhPSA0KSAmIChpICE9IDEzKSAmIChpIT00MCkp OgogICAgICAgICAgICAgICAgICAgIGkgPSBpKzEKICAgICAgICAgICAgICAgIGVsaWYgKGZsYWcg PT0gMCk6CiAgICAgICAgICAgICAgICAgICAgZmxhZyA9IDEKICAgICAgICAgICAgICAgIGVsaWYg KGZsYWcgPT0gMSk6CiAgICAgICAgICAgICAgICAgICAgZmxhZyA9IDAKICAgICAgICAgICAgICAg ICAgICBpID0gaSsxCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBpID0gaSsxCiAg ICByZXR1cm4geyAneCc6eF92YWxfbGlzdCwgJ3knOnlfdmFsX2xpc3QsICd6Jzp6X3ZhbF9saXN0 LAonaXRlcmF0aW9uJzppdGVyYXRpb25zX2xpc3QsIH0KCgphaGhoLCBpIHJlY29nbmlzZSB0aGlz IGNvZGUgOikgIGkndmUgc2VlbiBpdCBiZWZvcmUuICAKZGVmIHZlY3Rvcl9tb2RlKHgsIHksIHos IGNvb3JkaW5hdGUsIGl0ZXJhdGlvbnMpOgogICAgYSA9IDEuMjA3NTsgICAjID0gMS9LCgogICAg eF92YWxfbGlzdCA9IFtdCiAgICB5X3ZhbF9saXN0ID0gW10KICAgIHpfdmFsX2xpc3QgPSBbXQog ICAgaXRlcmF0aW9uc19saXN0ID0gW10KCiAgICBpID0gMDsgICAgICAgICAgICAgICAgICAjIEtl ZXBzIGNvdW50IG9uIG51bWJlciBvZiBpdGVyYXRpb25zCgogICAgY3VycmVudF94ID0geCAgICAg ICAgICMgVmFsdWUgb2YgWCBvbiBpdGggaXRlcmF0aW9uIAogICAgY3VycmVudF95ID0geSAgICAg ICAgICMgVmFsdWUgb2YgWSBvbiBpdGggaXRlcmF0aW9uCiAgICBjdXJyZW50X3ogPSB6ICAgICAg ICAgIyBWYWx1ZSBvZiBaIG9uIGl0aCBpdGVyYXRpb24KCiAgICBkaSA9IDAKCiAgICAjIFRoaXMg aXMgbmVjY2VzYXJ5IHNpbmNlIHJlc3VsdCBmb3IgaT0wIGRvZXNuJ3QgZXhpc3RzIGZvciBoeXBl cmJvbGljIAogICAgIyBjby1vcmRpbmF0ZSBzeXN0ZW0uCiAgICBpZiAoY29vcmRpbmF0ZSA9PSBo eXBlcmJvbGljKToKICAgICAgICBpID0gMQogICAgZWxzZToKICAgICAgICBpID0gMAoKICAgIGZs YWcgPSAwCgogICAgaWYgKGl0ZXJhdGlvbnMgPiAwKToKICAgICAgICB3aGlsZSAoaSA8IGl0ZXJh dGlvbnMpOgogICAgICAgICAgICBkaSA9IC0xKm1hdGguY29weXNpZ24oMSwgY3VycmVudF95KTsj KmN1cnJlbnRfeCk7CiAgICAgICAgICAgIG5leHRfeCA9IGN1cnJlbnRfeCAtIGNvb3JkaW5hdGUg KiBkaSAqIGN1cnJlbnRfeSAqICgyKiooLTEqaSkpCiAgICAgICAgICAgIG5leHRfeSA9IGN1cnJl bnRfeSArIGRpICogY3VycmVudF94ICogMioqKC0xKmkpCiAgICAgICAgICAgIG5leHRfeiA9IGN1 cnJlbnRfeiAtIGRpICogUk9NX2xvb2t1cChpLCBjb29yZGluYXRlKQoKICAgICAgICAgICAgY3Vy cmVudF94ID0gbmV4dF94CiAgICAgICAgICAgIGN1cnJlbnRfeSA9IG5leHRfeQogICAgICAgICAg ICBjdXJyZW50X3ogPSBuZXh0X3oKCiAgICAgICAgICAgIHhfdmFsX2xpc3QuYXBwZW5kKGN1cnJl bnRfeCkKICAgICAgICAgICAgeV92YWxfbGlzdC5hcHBlbmQoY3VycmVudF95KQogICAgICAgICAg ICB6X3ZhbF9saXN0LmFwcGVuZChjdXJyZW50X3opCgogICAgICAgICAgICBpdGVyYXRpb25zX2xp c3QuYXBwZW5kKGkpCgogICAgICAgICAgICBpZiAoY29vcmRpbmF0ZSA9PSBoeXBlcmJvbGljKToK ICAgICAgICAgICAgICAgIGlmICgoaSAhPSA0KSAmIChpICE9IDEzKSAmIChpIT00MCkpOgogICAg ICAgICAgICAgICAgICAgIGkgPSBpKzEKICAgICAgICAgICAgICAgIGVsaWYgKGZsYWcgPT0gMCk6 CiAgICAgICAgICAgICAgICAgICAgZmxhZyA9IDEKICAgICAgICAgICAgICAgIGVsaWYgKGZsYWcg PT0gMSk6CiAgICAgICAgICAgICAgICAgICAgZmxhZyA9IDAKICAgICAgICAgICAgICAgICAgICBp ID0gaSsxCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBpID0gaSsxCiAgICByZXR1 cm4geyAneCc6eF92YWxfbGlzdCwgJ3knOnlfdmFsX2xpc3QsICd6Jzp6X3ZhbF9saXN0LAonaXRl cmF0aW9uJzppdGVyYXRpb25zX2xpc3QgfQoKaWYgeW91IGNhbiBkcm9wIHRoYXQgaW50byBhIHJl cG9zaXRvcnksIGdldCBpdCB3b3JraW5nLCB3cml0ZSBhCmZldyBzaW1wbGUgZXhwZXJpbWVudHMg YW5kIHNlZSBob3cgaXQgb3BlcmF0ZXMgaW4gZWFjaCBvZiB0aGUgNgptb2Rlcywgd2UncmUgb24g YSByb2xsIDopCgotLSAKWW91IGFyZSByZWNlaXZpbmcgdGhpcyBtYWlsIGJlY2F1c2U6CllvdSBh cmUgb24gdGhlIENDIGxpc3QgZm9yIHRoZSBidWcuCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRldiBtYWlsaW5nIGxpc3QKbGlicmUt cmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRwOi8vbGlzdHMubGlicmUtcmlzY3Yu b3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2Cg==