From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.tangents Subject: Re: Enhancing ELisp for AI Work Date: Thu, 26 Dec 2024 11:37:51 +0300 Message-ID: References: <7290780.2375960.1734348492938@mail.yahoo.com> <6c53521e-4aa6-40d1-b4a5-0e00989ad201@easy-emacs.de> <112da2f7-eb5a-4112-9be0-29fa3d73045c@easy-emacs.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30465"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.2.12 (2023-09-09) Cc: emacs-tangents@gnu.org To: Andreas =?utf-8?Q?R=C3=B6hler?= Original-X-From: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Thu Dec 26 09:38:38 2024 Return-path: Envelope-to: get-emacs-tangents@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tQjO8-0007n5-SV for get-emacs-tangents@m.gmane-mx.org; Thu, 26 Dec 2024 09:38:37 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tQjNe-0007Cq-Ox; Thu, 26 Dec 2024 03:38:06 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tQjNd-0007CP-Q1 for emacs-tangents@gnu.org; Thu, 26 Dec 2024 03:38:05 -0500 Original-Received: from stw1.rcdrun.com ([217.170.207.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tQjNb-0002Gu-Ba for emacs-tangents@gnu.org; Thu, 26 Dec 2024 03:38:05 -0500 Original-Received: from localhost ([::ffff:41.75.190.33]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 000000000007DC93.00000000676D15E5.0012011A; Thu, 26 Dec 2024 01:37:57 -0700 Content-Disposition: inline In-Reply-To: <112da2f7-eb5a-4112-9be0-29fa3d73045c@easy-emacs.de> Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-tangents@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Original-Sender: emacs-tangents-bounces+get-emacs-tangents=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.tangents:1278 Archived-At: T2theSBsZXQgdXMgbW92ZSBpdCB0byBFbWFjcyBUYW5nZW50cyBtYWlsaW5nIGxpc3QuCgpJbiBn ZW5lcmFsIEkgZmluZCB5b3VyIHdyaXRpbmdzIGludGVyZXN0aW5nIQoKU2FtZSBJIHdhcyB0aGlu a2luZyBteXNlbGYsIHRoYXQgaXQgaXMgZ3JlYXQgdGhpbmcsIGdpdmluZyBtZSBhY2N1cmF0ZQpy ZXN1bHRzLCB1bnRpbCB0aGUgdmVyaWZpY2F0aW9uISBNYW55IHRoaW5ncyB3ZXJlIHNpbXBseSBp bnZlbnRlZCEKClRoZW4gYWZ0ZXIgdmVyaWZpY2F0aW9uIG9mIGhvdyBpdCB3b3JrcywgSSBjb3Vs ZCB1bmRlcnN0YW5kIGl0IGFuZCBJCnJlYWxpemVkIHRoYXQgaXQgaGFzIG5vIGludGVsbGlnZW5j ZS4KCiogQW5kcmVhcyBSw7ZobGVyIDxhbmRyZWFzLnJvZWhsZXJAZWFzeS1lbWFjcy5kZT4gWzIw MjQtMTItMjUgMjM6MjJdOgo+IG1heWJlIGxldCdzIGZvcmdldCBDaGF0R1BUIGluIGl0cyBjdXJy ZW50IHN0YXRlLCBidXQgcmVmZXIgdG8gdGhpcyBwaHJhc2U6Cj4gCj4gJycnQSBwcm9iYWJpbGl0 IHRleHQgZ2VuZXJhdG9yIGlzIGJ1bGxzaGl0IGdlbmVyYXRvci4gSXQgY2FyZXMgemVybyBvZgo+ IHRoZSB0cnV0aCwgaXQgaXMgcHJvZ3JhbS4gRmFyIGZyb20gdGhlIHJlYWwgImludGVsbGlnZW5j ZSIuJycnCj4gCj4gSU1PIHRoYXQncyB3cm9uZyBmcm9tIHRoZSBodW1hbiBhcyBmcm9tIHRoZSBt YWNoaW5lIHNpZGUuCgpJIHRoaW5rIHlvdSB3YW50ZWQgdG8gc2F5IHRoYXQgaXQgaXMgc2FtZSBm b3IgaHVtYW4sIHRoYXQgaHVtYW4gYWxzbwpkb2Vzbid0IHRha2UgY2FyZSBmb3IgdHJ1dGguCgpB bmQgeWVzISBUaGF0IGlzIHRoZSBwcm9ibGVtIG1vc3Qgb2YgdGhlIHRpbWUgd2l0aCBodW1hbiwg dGhleSBtaW1pYwp0aGUgZXhwcmVzc2lvbnMgYW5kICJ0ZXh0IiwgdGFsaywgY29tbXVuaWNhdGlv biBvZiBvdGhlciBodW1hbiwgbm90CmV2ZXJ5Ym9keSBpcyB0aGlua2luZyEgQnV0IGFsbW9zdCBl dmVyeWJvZHkgaXMgYWJsZSB0byBtaW1pYy4gQW5kIG1hbnkKbWFueSBhbW9uZyB1cyBkbyBub3Qg Y2FyZSBvZiB0cnV0aC4KClRob3VnaCB0aGV5IGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gY2FyZSBv ZiB0aGUgdHJ1dGguIEVhY2ggb2YgdXMuCgpUaGUgY2FwYWJpbGl0eSB0byBjYXJlIG9mIHRydXRo IG9yIGRpc2NvdmVyIHRydXRoIGV2ZW4gd2l0aG91dCBiZWluZwp0cmFpbmVkIG1heWJlIGlzIG9u ZSBvZiBuYXR1cmFsIGludGVsbGlnZW5jZSB0cmFpdHMuCgpEaWUgRsOkaGlna2VpdCwgZGllIFdh aHJoZWl0IHp1IGVya2VubmVuIG9kZXIgenUgZW50ZGVja2VuLCBhdWNoIG9obmUKZW50c3ByZWNo ZW5kZSBBdXNiaWxkdW5nLCBrw7ZubnRlIGVpbiBNZXJrbWFsIGRlciBuYXTDvHJsaWNoZW4KSW50 ZWxsaWdlbnogc2Vpbi4KCj4gSHVtYW4gY29uc2lkZXIgdGhlbXNlbGYgYXMgaW50ZWxsaWdlbnQu IEJ1dCBob3cgdG8gcHJvb2YgdGhhdD8KCk5vIG1hdHRlciB0aGUgbGV2ZWwgb2YgaW50ZWxsaWdl bmNlLCB3ZSBjYW4gb2JzZXJ2ZSBpbiBzbWFsbCBjaGlsZHJlbgp0aGF0IHRoZXkgd2lsbCBzdGFy dCByZXNvbHZpbmcgcHJvYmxlbXMuIE5vYm9keSBuZWVkcyB0byB0ZWFjaCB0aGVtLAp0aGV5IHN0 YXJ0IG9ic2VydmluZyBhbmQgY29tZSB0byBzb2x1dGlvbnMuIElzbid0IHRoYXQgb25lIG9mIG1h am9yCnByb29mcz8KCkVnYWwgYXVmIHdlbGNoZW0gSW50ZWxsaWdlbnpuaXZlYXUsIHdpciBrw7Zu bmVuIGJlaSBrbGVpbmVuIEtpbmRlcm4KYmVvYmFjaHRlbiwgZGFzcyBzaWUgYW5mYW5nZW4sIFBy b2JsZW1lIHp1IGzDtnNlbi4gTmllbWFuZCBtdXNzIGVzCmlobmVuIGJlaWJyaW5nZW4sIHNpZSBi ZWdpbm5lbiB6dSBiZW9iYWNodGVuIHVuZCBrb21tZW4genUKTMO2c3VuZ2VuLiBJc3QgZGFzIG5p Y2h0IGVpbmVyIGRlciBiZWRldXRlbmRzdGVuIEJld2Vpc2U/Cgo+IEh1bWFucyBjYW4gY291bnQu IFJlYWxseT8gSWYgeWVzLCB3aHkgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYW4gaW5kZXgKPiBpbiBm YW1vdXMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIGlzIGRlc2lnbmF0ZWQgYXMgWmVybyBpbnN0ZWFk IG9mCj4gT25lPwoKQWxyaWdodCwgdGhvdWdoIGNvdW50aW5nIG1heSBub3QgYmUgdGhlIGJhc2lj IG9mIGludGVsbGlnZW5jZS4gIFBlcnNvbgpkb2Vzbid0IG5lZWQgdG8gY291bnQgb3Iga25vdyBo b3cgdG8gd3JpdGUgdG8gYmUgaW50ZWxsaWdlbnQuCgpXZSBjYW4ndCBzYXkgd2UgYXJlIGFsbCBl cXVhbGx5IGludGVsbGlnZW50LCBtYW55IGFyZSBvbiB0aGUgbGV2ZWwgb2YKdGhlIGFuaW1hbCBh bW9uZyB0aGUgaHVtYW4gb24gdGhpcyBwbGFuZXQuIAoKPiBPVE9IIG1hY2hpbmVzLCBhc2tlZDog JycnaW4gZnJlbmNoOiAiaW52ZXJzaW9uIGFjY3VzYXRvaXJlIicnJwo+IAo+IFJlc3BvbnNlIHdh czoKPiAKPiAnJydMYSAiaW52ZXJzaW9uIGFjY3VzYXRvaXJlIiBlbiBmcmFuw6dhaXMgZXN0IGFw cGVsw6llICJwYXNzaWYiIG91ICJpbnZlcnNpb24KPiBkZSBzdWpldCIgZW4gZ3JhbW1haXJlLgo+ IAo+IEVuIE9kb28sIGwnaW52ZXJzaW9uIGFjY3VzYXRvaXJlIHNlIHLDqWbDqHJlIMOgIGwnb3Jk cmUgZGVzIG1vdHMgZGFucyB1bmUKPiBwaHJhc2UgcXVpIGVzdCBpbnZlcnPDqSBwYXIgcmFwcG9y dCDDoCBsYSByw6hnbGUgZ8OpbsOpcmFsZS4gRW4gZnJhbsOnYWlzLCBsYQo+IHLDqGdsZSBnw6lu w6lyYWxlIGVzdCBxdWUgbGUgc3VqZXQgZGUgbGEgcGhyYXNlIGRvaXQgw6p0cmUgbWlzIGVuIHBy ZW1pZXIsCj4gc3VpdmllIGR1IHZlcmJlIGV0IGVuc3VpdGUgZGUgbCdvYmpldC4KPiAKPiBFeGVt cGxlIGRlIHBocmFzZSBub3JtYWxlIDogTGUgY2xpZW50IGFjaMOodGUgdW4gcHJvZHVpdC4KPiAK PiBJbnZlcnNpb24gYWNjdXNhdG9pcmUgOiBVbiBwcm9kdWl0IGFjaMOodGUgbGUgY2xpZW50Lgo+ IAo+IEVuIE9kb28sIGwnaW52ZXJzaW9uIGFjY3VzYXRvaXJlIGVzdCB1dGlsaXPDqWUgcG91ciBm b3JtYXR0ZXIgbGVzCj4gaW5mb3JtYXRpb25zIGRhbnMgbGVzIHJhcHBvcnRzIG91IGxlcyB2dWVz LCBwYXIgZXhlbXBsZSwgcG91ciBkw6lmaW5pcgo+IGwnb3JkcmUgZGVzIGNoYW1wcyBkYW5zIHVu ZSBmb3JtdWxhaXJlLgo+IAo+IEonZXNww6hyZSBxdWUgY2VsYSB2b3VzIGEgYWlkw6kgIScnJwoK SGVyZSBpcyB0aGUgdHJhbnNsYXRpb246Cgo+IFRoZSAiaW52ZXJzaW9uIGFjY3VzYXRvaXJlIiBp biBGcmVuY2ggaXMgY2FsbGVkICJwYXNzaXZlIiBvciAic3ViamVjdCBpbnZlcnNpb24iIGluIGdy YW1tYXIuCj4gCj4gSW4gT2RvbywgdGhlIGludmVyc2lvbiBhY2N1c2F0b2lyZSByZWZlcnMgdG8g dGhlIHdvcmQgb3JkZXIgaW4gYSBzZW50ZW5jZSB0aGF0IGlzIHJldmVyc2VkIGNvbXBhcmVkIHRv IHRoZSBnZW5lcmFsIHJ1bGUuIEluIEZyZW5jaCwgdGhlIGdlbmVyYWwgcnVsZSBpcyB0aGF0IHRo ZSBzdWJqZWN0IG9mIHRoZSBzZW50ZW5jZSBtdXN0IGJlIHBsYWNlZCBmaXJzdCwgZm9sbG93ZWQg YnkgdGhlIHZlcmIsIGFuZCB0aGVuIHRoZSBvYmplY3QuCj4gCj4gRXhhbXBsZSBvZiBhIG5vcm1h bCBzZW50ZW5jZTogVGhlIGN1c3RvbWVyIGJ1eXMgYSBwcm9kdWN0Lgo+IAo+IEFjY3VzYXRpdmUg aW52ZXJzaW9uOiBBIHByb2R1Y3QgYnV5cyB0aGUgY3VzdG9tZXIuCj4gCj4gSW4gT2RvbywgdGhl IGFjY3VzYXRpdmUgaW52ZXJzaW9uIGlzIHVzZWQgdG8gZm9ybWF0IGluZm9ybWF0aW9uIGluIHJl cG9ydHMgb3Igdmlld3MsIGZvciBleGFtcGxlLCB0byBkZWZpbmUgdGhlIG9yZGVyIG9mIGZpZWxk cyBpbiBhIGZvcm0uCgpJIGtub3cgSXRhbGlhbiB3aGVyZSBpdCBpcyBvZnRlbiB1c2VkLCBhcyBh IHJ1bGUsIGFuZCBJIHVuZGVyc3RhbmQKdGhhdCB0eXBlIG9mIGV4cHJlc3Npb25zIGluIG90aGVy IGxhbmd1YWdlcywgaXQgbWF5IGJlIHVzZWQgaW4gR2VybWFuCnRvby4gQW5kIGNvbXB1dGVyIGlz IHRoZXJlIPCdmbXwnZmw8J2ZsfCdmoHwnZm48J2ZsvCdmbDwnZqD8J2ZuPCdmb3wnZm2IHJhdGhl ciB0aGFuIGFic3RyYWN0aW5nLgoKSSB1bmRlcnN0YW5kIHRoZSBpbGx1c2lvbiEKClNvbWVob3cs IHNpbmNlIEkgZmlyc3Qgc3RhcnRlZCB1c2luZyBpdCwgYW5kIGdvb2QgSSBzdGFydGVkIGJlZm9y ZSBhCnllYXIsIEkgZ290IHRoZSByaWdodCBpbXByZXNzaW9uIHRoYXQgaXQgZG9lc24ndCByZWFz b24sIGl0IGdlbmVyYXRlcwp0ZXh0IGJ5IHN0YXRpc3RpY3MuCgpXaHkgSSBzYXkgaXQgd2FzIGlt cG9ydGFudCB0byBzdGFydCBlYXJseT8gQmVjYXVzZSBieSBzdGFydGluZyBlYXJseSBJCmNvdWxk IGV4cGVyaWVuY2Ugd2hhdCBub25zZW5zZSBpdCBnaXZlcyBtZSEKCkZha2UgYm9va3MsIGZha2Ug cmVmZXJlbmNlcyB0byB3cml0dGVuIGJvb2tzLCBmYWtlIG5hbWVzIG9mIGFjdG9ycywKd2hvIGFj dGVkIGluIGZha2UgbW92aWVzLiBZb3UgbmFtZSBpdCEKClRoYXQgaXMgd2hlcmUgSSByZWFsaXpl ZCB0aGF0IHVuZGVybHlpbmcgInJlYXNvbmluZyIgaXMgbm90IHRoZXJlLCBpdAppcyBmYWJyaWNh dGVkLgoKRmFicmljYXRpb24gb3MgbWFraW5nIGl0IHVwLCBzaG91bGQgbm90IGJlIGNhbGxlZApo YWxsdWNpbmF0aW9uLiBQcm9mZXNzaW9uYWxzIGFyZSB3YXJuaW5nIHRoZSB3b3JsZCBpbiB0aGVp ciBwYXBlcnMKdGhhdCBjb21wdXRlcnMgZG8gbm90IGhhbGx1Y2luYXRlLgoKQXJ0aWZpY2lhbCBI YWxsdWNpbmF0aW9ucyBpbiBDaGF0R1BUOiBJbXBsaWNhdGlvbnMgaW4gU2NpZW50aWZpYyBXcml0 aW5nIHwgQ3VyZXVzOgpodHRwczovL3d3dy5jdXJldXMuY29tL2FydGljbGVzLzEzODY2Ny1hcnRp ZmljaWFsLWhhbGx1Y2luYXRpb25zLWluLWNoYXRncHQtaW1wbGljYXRpb25zLWluLXNjaWVudGlm aWMtd3JpdGluZyMhLwoKQ2hhdEdQVCwgQmluZyBhbmQgQmFyZCBEb27igJl0IEhhbGx1Y2luYXRl LiBUaGV5IEZhYnJpY2F0ZSAtIEJsb29tYmVyZzoKaHR0cHM6Ly93d3cuYmxvb21iZXJnLmNvbS9u ZXdzL25ld3NsZXR0ZXJzLzIwMjMtMDQtMDMvY2hhdGdwdC1iaW5nLWFuZC1iYXJkLWRvbi10LWhh bGx1Y2luYXRlLXRoZXktZmFicmljYXRlCgpDb21wdXRlcnMgbWF5YmUgY29uZmFidWxhdGUsIG9y IGZhYnJpY2F0ZSwgY29tcHV0ZSwgYnV0IHdlIGNhbid0IHNheQpoYWxsdWNpbmF0ZSBhcyB0aGF0 IGlzIGFraW4gb25seSB0byBodW1hbiBvciBsaXZpbmcgYmVpbmcuCgpDb21wdXRlcnMgaW4gZmFj dCBvbmx5IGNvbXB1dGUgd2hhdCBhdXRob3JzIHdhbnRlZC4KCkFudGhyb3BvbW9ycGhpemUqKiAo dmVyYik6IHRvIGF0dHJpYnV0ZSBodW1hbiBjaGFyYWN0ZXJpc3RpY3MsCnF1YWxpdGllcywgb3Ig YmVoYXZpb3JzIHRvIG5vbi1odW1hbiBlbnRpdGllcywgc3VjaCBhcyBhbmltYWxzLApvYmplY3Rz LCBvciBpZGVhcy4gVGhpcyBtZWFucyBnaXZpbmcgaHVtYW4tbGlrZSBxdWFsaXRpZXMsIGVtb3Rp b25zLApvciBpbnRlbnRpb25zIHRvIHRoaW5ncyB0aGF0IGFyZSBub3QgaHVtYW4uCgpBbnRocm9w b21vcnBoaXppbmcgc29mdHdhcmUgaW4gY29tcHV0aW5nIGNvbnRleHRzIGNhbiBiZSBhIHdheSB0 bwpleHByZXNzIGVtb3Rpb25zIGFib3V0IGhvdyB0b29scyBwZXJmb3JtLgoKIk15IEVtYWNzIGRp c3R1cmJlZCBtZSIgLS0gdGhvdWdoIEVtYWNzIGRvZXMgbm90aGluZyB3aXRob3V0IGh1bWFuCmlu c3RydWN0aW5nIGhpbS4gSXQgc2hvdWxkIGJlICJhbiBleGFtcGxlIiBpbnN0ZWFkIG9mICJJdCBp cyBleGFtcGxlIi4gVGhlIGNvcnJlY3Qgc2VudGVuY2Ugd291bGQgYmU6CgpJdCBpcyBhbiBleGFt cGxlIG9mIGFudGhyb3BvbW9ycGhpemluZy4KCi0gRW1hY3MgaXMgZ2V0dGluZyB0aXJlZCwgSSB0 aGluayBJIG5lZWQgdG8gcmVzdGFydCBpdCB0byBmcmVlIHVwIHNvbWUKICBtZW1vcnkuCgotIEkg dGF1Z2h0IEVtYWNzIGEgbmV3IHRyaWNrIGJ5IHdyaXRpbmcgYSBjdXN0b20gZWxpc3AgZnVuY3Rp b24gdG8KICBhdXRvbWF0ZSBhIHRhc2suCiAgCi0gVGhlIEVtYWNzIGlzIGNvbXBsYWluaW5nIHRo ZSBmb3JtYXR0aW5nIG9mIG15IGNvZGUuCgotIEVtYWNzIGlzIHBsYXlpbmcgdHJpY2tzIG9uIG1l LCBpdCBrZWVwcyBhdXRvLWluZGVudGluZyBteSBjb2RlIGluCiAgd2VpcmQgd2F5cy4KCkkgd2Fz IGFsd2F5cyBicmluZ2luZyB1cCB0byBhdHRlbnRpb24gd2hlbiBhbnRocm9wb21vcnBoaXppbmcg d2FzIHVzZWQKaW4gdGhlIGNvbnRleHQgb2YgcmVsZWFzaW5nIHJlc3BvbnNpYmlsaXRpZXMgZnJv bSBodW1hbiBvcGVyYXRvciBvcgpwcm9ncmFtbWVyLgoKLSBjYW4ndCBzZW5kIG1vbmV5LCAibmV0 d29yayBwcm9ibGVtIiAtLSB0aGF0IGlzIGNvbW1vbiBleGN1c2UsIHRob3VnaAogIEkga25vdyBz b21lb25lIGlzIGFsd2F5cyByZXBvbnNpYmxlLCBpdCB3YXNuJ3QgcmFpbiBmYWxsaW5nIGRvd24K ICB1bmNvbnRyb2xsYWJseSwgaXQgd2FzIG9wZXJhdG9ycyBsYWNraW5nIHNraWxsczsKCi0gY29t cHV0ZXIgZGlkIGl0ISAtLSB3aGVuIG9wZXJhdG9ycyBhbmQgdHJ1bHkgcmVzcG9uc2libGUgcGVv cGxlIHVzZQogIGFudGhyb3BvbW9ycGhpemluZyB0byBnZXQgcmlkIG9mIHRoZSBjYXVzYXRpdmUg cmVzcG9uc2liaWxpdHk7CgpPZnRlbiBwZW9wbGUgZG8gaXQgdW5jb25zY2lvdXNseS4gSXQgaXMg aW50ZXJlc3RpbmcsIGJ1dCBpdCBpcwppbXBvcnRhbnQgZm9yIHVzLCB3aG8gdGhpbmssIHRvIHJl Y29nbml6ZSB0aGUgZmFjdHMgdGhhdCBwZW9wbGUKdXRpbGl6ZSBhbnRocm9wb21vcnBoaXppbmcg aW4gdGhlaXIgZGFpbHkgbGlmZS4KClRvIHNheSB0aGF0IExhcmdlIExhbmd1YWdlIE1vZGVsIChM TE0pICJoYWxsdWNpbmF0ZSIgaXMgeWV0IGFub3RoZXIKcHVibGljIHJlbGF0aW9ucyBzdHVudCB0 aGF0IHdpc2ggdG8gc2F5IGNvbXB1dGVycyBhcmUgYWxpdmUuCgpDb3VsZCB0aGUgIk9wZW4iQWkg YmUgdHJ1dGhmdWwgdG8gdGhlIHB1YmxpYyBhbmQgbm90IGFudGhyb3BvbW9ycGhpemUKdGhlaXIg cHJvZHVjdHM/IFllcywgdGhleSBjb3VsZC4gQnV0IHRoZXkgZG8gbm90IHdhbnQuCgpXaHk/IEJl Y2F1c2UgdGhleSB3YW50IHRvIHJlbGVhc2UgdGhlbXNlbHZlcyBvZiByZXNwb25zaWJpbGl0aWVz LCBvZgp0aGUgZnJ1c3RyYXRpb24gdGhleSBjYXVzZWQsIG9mIHRoZSBtaXN1bmRlcnN0YW5kaW5n cyB0aGV5IGhhdmUKZ2VuZXJhdGVkLgoKVGhleSBjb3VsZCBzYXkgdGhhdCBjb21wdXRlciBpcyBw cm9kdWNpbmcgbm9uc2Vuc2UgYmVjYXVzZSBpdCBkb2Vzbid0CmhhdmUgYW55IGludGVsbGlnZW5j ZSwgaXQgaXMganVzdCBtYXRoZW1hdGljYWwgcHJvZ3JhbSBjb21wdXRpbmcgYW5kCnNwaXR0aW5n IHRleHQgb3V0IHdpdGhvdXQgY2FyZSB0byB0aGUgdHJ1dGguCgpCdXQgaG93ICJPcGVuIkFJIGNh biBzYXkgdGhhdD8gSXQgaXMgYWdhaW5zdCB0aGVpciBwcm9tb3Rpb25hbApzdHJhdGVneSwgdGhl aXIgY29tcGFueSBuYW1lIGNvbnRhaW5zICJBSSIgYW5kIHRoZXkgYnVpbGQgcHJvZHVjdCBieQpk ZWNlaXZpbmcgcGVvcGxlIHRoZXJlIGlzIHNvbWUga2luZCBvZiAiaW50ZWxsaWdlbmNlIiB0aGVy ZS4gIFByb2JhYmx5CnRoZXJlIHdhcyBuZXZlciBhbnkgaW50ZWxsaWdlbmNlIGluIGNvbXB1dGVy IHNvIGZhciwgaXQgaXMgYWxsIHRoZSB3YXkKb2Ygc2FsZXMgYW5kIG1hcmtldGluZy4gSG93IGVs c2UgdG8gbWFrZSBtb25leT8KCkdvb2QgdGhhdCBzY2llbnRpc3RzIHdyaXRpbmcgdGhvc2UgcGFw ZXJzIGFyZSBub3QgZmluYW5jZWQgYnkgdGhvc2UKbGFyZ2UgY29ycG9yYXRpb25zLCBvdGhlcndp c2Ugd2Ugd291bGQgZ2V0IHRydWUgY29uZnVzaW9uLgoKPnRoZSBjb250ZXh0IGFzc3VtZWQgYnkg dGhlIExMTSB3YXMgZmFsc2UuIEJ1dCBub25lIHdhcyBkZWxpdmVyZWQuCj4gCj4gSW5zaWRlIHRo ZSBmYWxzZSBjb250ZXh0LCB0aGUgY29uY2x1c2lvbiBpcyBxdWl0ZQo+IGludGVyZXN0aW5nLiBC ZWNhdXNlIOKAmGFjaGV0ZXJl4oCZIC0tIGJ1eWluZyAtLSB3YXNuJ3QgbWVudGlvbmVkIGF0Cj4g YWxsLiBJbiBhbiBhYnN0cmFjdCB2aWV3LCB0aGUgcmVhc29uaW5nIG1pZ2h0IHdlbGwgaGF2ZSBz ZW5zZS4gVGhlcmUKPiBhcmUgb3RoZXIgcmVtYXJrcyBpbiB0aGlzIHJlc3BvbnNlLCB3aGljaCBp bmRpY2F0ZSB0aGUgbW9kZWwgd2FzCj4gYWJsZSB0byBhYnN0cmFjdCBvdmVyIHRoZSBtYXR0ZXIu CgpJIGRvIG5vdCB0aGluayB0aGVyZSB3YXMgYW55IGNvbmNsdXNpb24uCgpKdXN0IGJ5IHdyaXRp bmcgImNvbmNsdXNpb24iIGRvZXMgbm90IG1ha2UgaXQgY29uY2x1c2lvbi4gQ29tcHV0ZXIKc29m dHdhcmUgbGlrZSBMTE0gaXMgZWFnZXIgdG8gcHJldGVuZCwgaXQgd2FzIHByb2dyYW1tZWQgdG8g d3JpdGUgd2hhdApzdGF0aXN0aWNhbGx5IGlzIHdyaXR0ZW4gYnkgcGVvcGxlIGFuZCB3aGF0IHRo YXQgc29mdHdhcmUgZ290IGZlZCBmcm9tCmRhdGFzZXRzLgoKQnV0IGl0IGNhbid0IGxlYXJuLiBJ dCBpcyBtYWNoaW5lIHRoYXQgY2FsY3VsYXRlcy4gSXQgY2FuIGFjY2VwdCBkYXRhLApzdG9yZSwg cHJvY2VzcyBieSBwcm9ncmFtLCBhbmQgZ2l2ZSByZXN1bHRzLiBCdXQgY2Fubm90IGxlYXJuLgoK V2UgY2FuIG9ubHkgYW50aHJvcG9tb3JwaGl6ZSBpdCBhbmQgc2F5ICJpdCBsZWFybmVkIiwgIml0 IGdvdAp0cmFpbmVkIiwgYXMgd2UgZG8gbm90IGhhdmUgZW5vdWdoIHJpZ2h0IHdvcmRzLgoKQ2Fu IExMTSBzb2Z0d2FyZSBkbyBpbmZlcmVuY2U/IEkgZG9uJ3QgdGhpbmsgc28hCgpJdCBjYW4gY29t cHV0ZSBhbmQgZ2l2ZSBzaW1pbGFyaXR5IHRvIGluZmVyZW5jZSwgdGhvdWdoIG5ldmVyIHRydWUK aW5mZXJlbmNlLiBGaW5hbGx5IHdlIGFyZSBkb2luZyB0aGUgc2FtZSB3aXRoIGNvbXB1dGVycyBm b3IgbWFueQp5ZWFycy4KCkl0IGlzIGp1c3QgYW5vdGhlciBhbnRocm9wb21vcnBoaXplZCB0ZXJt LiBCdXQgd2UgaGF2ZSB0byB1c2UgaXQsIGl0CmlzIGluIGRpZmZlcmVudCBjb250ZXh0LiBUaG91 Z2ggaXQgaXMgbm90IGEgcGVyc29uIHdobyBoYXMgdHJ1ZQpjYXBhYmlsaXR5IHRvICJpbmZlcmUi LiBJcyBub3QgY2FwYWJsZSBvZiBpdC4KCkNvbXB1dGVyIGNhbm5vdCBtYWtlIGNvbmNsdXNpb25z LigrIDIgMikg4p6cIDQgLS0gZG8geW91IHRoaW5rIHRoYXQKRW1hY3MgaGVyZSBtYWRlIGNvbmNs dXNpb24gdGhhdCAyIHBsdXMgMiBpcyBmb3VyPyBJdCBkaWRuJ3QuCgpXZSBhcmUgYW50aHJvcG9t b3JwaGl6aW5nIGl0IHRoYXQgY29tcHV0ZXIgbWFkZSBjb25jbHVzaW9ucy4KCkluIGZhY3QgaXQg d2FzIGVsZWN0cm9uaWMgc3dpdGNoaW5nIG9mIGJpdHMgYW5kIGJ5dGVzLgoKSnVzdCB0YWtlIGFu IGFiYWN1cyBmb3IgZXhhbXBsZSwgYnkgbW92aW5nIHRob3NlIGJhbGxzIG9uIHRoZSB3b29kZW4K YWJhY3VzLCBvcGVyYXRvciB3aWxsIGdldCByZXN1bHRzLCBidXQgZGlkIEFiYWN1cyBtYWtlIGNv bmNsdXNpb25zIG9mCnRoZSByZXN1bHQ/IE9yIHdhcyBpdCBqdXN0IGEgdG9vbD8KCkJ5IHByb2dy YW1taW5nIHRoZSBBbXBlbGxpY2h0LCB3aGVuIGl0IHNob3dzIGl0IGlzIGdyZWVuLCBkaWQgdGhl CkFtcGVsbGljaHQgbWFrZSBjb25jbHVzaW9uIHRoYXQgaXQgc2hvdWxkIHByb3ZpZGUgZ3JlZW4g dG8gcGVvcGxlPyBJdAppcyBhIHRvb2wsIGl0IGlzIHByb2dyYW1tZWQgdG8gZG8gdGhhdCwgcHJv Z3JhbW1lciBtYWRlIGNvbmNsdXNpb25zCnRoYXQgaXQgc2hvdWxkIHdvcmsgaW4gc3BlY2lmaWMg bWFubmVyLCBub3QgdGhlIEFtcGVsbGljaHQuCgpBaXIgY29uZGl0aW9uIC0tIGl0IHR1cm5zIG9u IGFuZCB0dXJucyBvZmYsIGJhc2VkIG9uIHRlbXBlcmF0dXJlIGluCnRoZSByb29tLiBCdXQgZGlk IGl0IG1ha2UgY29uY2x1c2lvbiB0aGF0IGl0IG11c3QgdHVybiBvbj8gVGhhdCBpdAptdXN0IHR1 cm4gb2ZmPwoKT2YgY291cnNlIHdlIGdldCBpbnRvIHRoZSBkZWNlcHRpb24uCgpUaG91Z2ggY29u Y2x1c2lvbiBkcmF3aW5nIGlzIG5vdCB0aGVyZSEKCkkgc3Ryb25nbHkgc3VnZ2VzdCB0byBldmVy eWJvZHkgdG8gaW5zdGFsbDoKCmdnZXJnYW5vdi9sbGFtYS5jcHA6IExMTSBpbmZlcmVuY2UgaW4g Qy9DKysKaHR0cHM6Ly9naXRodWIuY29tL2dnZXJnYW5vdi9sbGFtYS5jcHAKCnRoZW4gdG8gaW5z dGFsbCBzb21lIG9mIHRoZSBsb3cgZW5kIG1vZGVscywgbGlrZToKUXdRLUxDb1QtM0ItSW5zdHJ1 Y3QuUTRfS19NLmdndWYKCml0IHdpbGwgd29yayBvbiAxNkdCIFJBTS4KClRoZW4gc3RhcnQgaW50 ZXJhY3RpbmcuIFlvdSB3aWxsIHNlZSB3aGF0IEkgbWVhbi4KCllvdSB3aWxsIHNlZSB0aGF0IG1v ZGVsIHdpbGwgc3RhcnQgdGFsa2luZywgZm9yIGV4YW1wbGUsIGlmIHRoZXJlIHdhcwpjb252ZXJz YXRpb24gd2l0aCBjaGlsZCAobW9kZWwgYWN0aW5nIGFzIGNoaWxkKSAoYW50aHJvcG9tb3JwaGl6 aW5nIGlzCmRlY2VwdGl2ZSwgbW9kZWwgY2Fubm90ICJhY3QiKSAtLSB0aGVuIGluIHRoYXQgY29u dmVyc2F0aW9uIHRoZQpwcmV0ZW5kZWQgY2hpbGQgbWF5IHN0YXJ0IHBsYXlpbmcgaW4gdGhlIG11 ZCwgdGhvdWdoIGFmdGVyIGEgd2hpbGUsCm9uZSBjYW4gc2VlIG11ZCwgbXVkLCBtdWQsIG11ZCwg bXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLAptdWQsIG11ZCwgbXVkLCBtdWQsIG11 ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwKbXVkLCBtdWQs IG11ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLCBt dWQsCm11ZCwgbXVkLCBtdWQsIG11ZCwgbXVkLgoKSXQgaXMgdW5zdG9wcGFibGUuCgpUaGF0IGlz IGNsZWFyIHNpZ24gdGhhdCB0aGVyZSBpcyBubyBpbnRlbGxpZ2VuY2UsIGFzIG1vZGVsIGRvZXMg bm90CmNhcmUgb2YgdGhlIHRydXRoLiBJdCBjb21wdXRlcyBzb21ldGhpbmcsIGl0IGdpdmVzIHNv bWV0aGluZyBvdXQuCgpXaGF0IGl0IGlzPyBJdCBpcyBjb21wbGV0ZWx5IGlycmVsZXZhbnQgdG8g ZW52aXJvbm1lbnQgb3Igc2l0dWF0aW9uIGF0CnBsYWNlLgoKSXMgdGhlcmUgYW55IGFuaW1hbCB0 aGF0IGRvIGNvbXBsZXRlbHkgaXJyZWxldmFudCBhY3Rpdml0aWVzIHRvIHRoZQpzaXR1YXRpb24g b2YgbGlmZSBhdCBoYW5kPyBNYXliZSBpZiB3ZSBkb24ndCB1bmRlcnN0YW5kIGl0LCBidXQganVz dApvYnNlcnZlLCBmaXNoLCBkb2csIGNhdCwgY293LCB0aGV5IGFsbCBkbywgd2hhdGV2ZXIgdGhl eSBkbywgZm9yIHRoZWlyCnN1cnZpdmFsLiBUaGVpciBhY3Rpdml0aWVzIGFyZSBwcmV0dHkgbXVj aCBhbGlnbmVkIHRvIGl0LgoKQ29tcHV0ZXIgZG9lcyBub3QgaGF2ZSBsaWZlLCBzbyBpdCBkb2Vz IG5vdGhpbmcuIEl0IGlzIHRvb2wuIFBlb3BsZSBkbwpzb21ldGhpbmcgd2l0aCBjb21wdXRlciwg Y29tcHV0ZXIgaXRzZWxmIGRvZXMgbm90aGluZy4gSXQgaGFzIG5vIGlubmVyCmludGVudGlvbiB0 byBzdXJ2aXZlLiBUaGF0IGlzIHdoeSBpdCBjYW5ub3QgcmVjb2duaXplICJtdWQsIG11ZCwgbXVk IgpidXQgaXQgY2FuIGdpdmUgcHJldGVuc2Ugb2YgaG93IHBlb3BsZSB0YWxrIGJhc2VkIG9uIGlu Zm9ybWF0aW9uCmxvYWRlZCBpbnRvIGl0LgoKLS0gCkplYW4gTG91aXMKCi0tLQp2aWEgZW1hY3Mt dGFuZ2VudHMgbWFpbGluZyBsaXN0IChodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0 aW5mby9lbWFjcy10YW5nZW50cykK