From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Vibhav Pant Newsgroups: gmane.emacs.devel Subject: Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data. Date: Thu, 17 Nov 2022 01:06:39 +0530 Message-ID: References: <166844679660.19180.3470364122428955894@vcs2.savannah.gnu.org> <20221114172637.78215C0E4C7@vcs2.savannah.gnu.org> <871qq5hxf9.fsf@yahoo.com> Reply-To: vibhavp@gmail.com Mime-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-fT2Cd5VFRYEvAMvD+Lew" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25649"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.46.1 Cc: emacs-devel@gnu.org To: Andrea Corallo , Po Lu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Nov 16 20:37:45 2022 Return-path: Envelope-to: ged-emacs-devel@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 1ovOED-0006X1-84 for ged-emacs-devel@m.gmane-mx.org; Wed, 16 Nov 2022 20:37:45 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ovODZ-00030E-Gb; Wed, 16 Nov 2022 14:37:08 -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 1ovODI-0002u9-PF for emacs-devel@gnu.org; Wed, 16 Nov 2022 14:36:50 -0500 Original-Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ovODF-0004xh-4f for emacs-devel@gnu.org; Wed, 16 Nov 2022 14:36:48 -0500 Original-Received: by mail-pj1-x102d.google.com with SMTP id m14-20020a17090a3f8e00b00212dab39bcdso3390519pjc.0 for ; Wed, 16 Nov 2022 11:36:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:cc:to:reply-to :from:subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=wyAJOey5Dtd4WfuDbwyTHh103M8m7i02T1V68up9FT4=; b=RDMKWqdmdWbHki8bmsY7GHIlFneLB+JgE5m+yjDfWuciaC8A+Xx0cPCWFuk4sK2wvV Ea7mceXoxogUnv8IgbLCQKOe7SqsokDVl942spDUZGoyYErRwEqwW2Sm+0RSYPeZfkn6 KpsiGxLDPtGWvstTmqU7PvRh20H4fqqE6EI06ByB9Wu8AYPV3dyHrvt3dHvTA44Lx/m1 4kpii+UJ8piTTqZubndU64obH0h9mYJ+bFJbE8gwAGEtb+eOd6l2jcpA0ABwLyzTQqLl N97gkOivQeEjS+23dz694SdXCVa5CKhe3Rxsj5b7oWAG4VpNPUp7g2Ze4CMS11vA3Fq1 arlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:cc:to:reply-to :from:subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=wyAJOey5Dtd4WfuDbwyTHh103M8m7i02T1V68up9FT4=; b=WKIG7VLb88Hydj5dxHFYFXBh4iE+T5HumTltl55qYLPRPA1PZsbUV/71uOz30zM3P7 QcbS3/lxzKmoDE5aBOXpoy+DZa7JYEp8DKZfRPesLHuVX272eI6yOat+BrfI6Wh167CE zYOZefV9v5eaT5SalcrFMiW1xIX4XcOtCELj2XH5F9/QQxold8u9JCQ+qdXKremXXvKX R6DtoBAUDl7hPp12i2uPJLj+C6JI8f8bhKV5gB8EPoXHu0jrM9OrhYqDUf39C0b5MjgZ QEl0/gfQ8zcI9UHOa39i1KcRkAlpWV+OKaLU6BTKderGykuNaQZw5kAQuJzIILxiiV0N jRAw== X-Gm-Message-State: ANoB5pmk3SNqynvYAZxTb1SnqA3MFoK86s2TG4jwHiIzOd8DSKeqfrLe dwD662PZlPwmMoBzzQ3QPqY= X-Google-Smtp-Source: AA0mqf4wQ5nZdWzyAiyPpEZ0ivBLJp/vK9Oxt7Jisu7ljEZyVzZUZbCLrpqPbpH52slmWdyv7AyzcA== X-Received: by 2002:a17:902:7403:b0:187:a98:7ee5 with SMTP id g3-20020a170902740300b001870a987ee5mr10344006pll.142.1668627403230; Wed, 16 Nov 2022 11:36:43 -0800 (PST) Original-Received: from [192.168.1.7] ([182.69.183.47]) by smtp.gmail.com with ESMTPSA id p8-20020aa79e88000000b0056e32a2b88esm11253579pfq.219.2022.11.16.11.36.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Nov 2022 11:36:42 -0800 (PST) In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=vibhavp@gmail.com; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:299977 Archived-At: --=-fT2Cd5VFRYEvAMvD+Lew Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gVHVlLCAyMDIyLTExLTE1IGF0IDA5OjA2ICswMDAwLCBBbmRyZWEgQ29yYWxsbyB3cm90ZToK PiBQbyBMdSA8bHVhbmdydW9AeWFob28uY29tPiB3cml0ZXM6Cj4gCj4gPiBUaGFua3MuwqAgU29t ZSBtaW5vciBzdHlsZSBjb21tZW50cyBiZWxvdzoKPiA+IAo+ID4gPiArY29uc3Qgc2l6ZV90IGJs b2NrX2FsaWduID0gQkxPQ0tfQUxJR047Cj4gPiAKPiA+IFsuLi5dCj4gPiAKPiA+ID4gK2NvbnN0 IHNpemVfdCBmbG9hdF9ibG9ja19mbG9hdHNfbGVuZ3RoID0gRkxPQVRfQkxPQ0tfU0laRTsKPiA+ ID4gK2NvbnN0IHNpemVfdCBmbG9hdF9ibG9ja19nY21hcmtiaXRzX2xlbmd0aCA9Cj4gPiA+ICvC oCAxICsgRkxPQVRfQkxPQ0tfU0laRSAvIEJJVFNfUEVSX0JJVFNfV09SRDsKPiA+IAo+ID4gWy4u Ll0KPiA+IAo+ID4gPiArY29uc3Qgc2l6ZV90IGNvbnNfYmxvY2tfY29uc2VzX2xlbmd0aCA9IENP TlNfQkxPQ0tfU0laRTsKPiA+ID4gK2NvbnN0IHNpemVfdCBjb25zX2Jsb2NrX2djbWFya2JpdHNf bGVuZ3RoCj4gPiA+ICvCoCA9IDEgKyBDT05TX0JMT0NLX1NJWkUgLyBCSVRTX1BFUl9CSVRTX1dP UkQ7Cj4gPiAKPiA+IFRoZXNlIHNob3VsZCBiZSBkZWZpbmVkIG91dCB3aXRoIEhBVkVfTkFUSVZF X0NPTVBJTEFUSU9OLsKgIEluCj4gPiBhZGRpdGlvbiwKPiA+IHRoZSA9IG11c3QgY29tZSBvbiBh IG5ldyBsaW5lLsKgIE91ciBzdHlsZSBpczoKPiA+IAo+ID4gwqAgZm9vX2xvbmcKPiA+IMKgwqDC oCA9IGxvbmdfYmFyICgpOwo+ID4gCj4gPiBpbnN0ZWFkIG9mOgo+ID4gCj4gPiDCoCBmb29fbG9u ZyA9Cj4gPiDCoMKgwqAgbG9uZ19iYXIgKCk7Cj4gPiAKPiA+ID4gwqAKPiA+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWFya19zdGFja19wdXNoX3ZhbHVlcyAocHRyLT5j b250ZW50cywKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZQo+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJgo+ID4gPiBQU0VVRE9WRUNUT1JfU0laRV9NQVNL KTsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IExpc3Bf TmF0aXZlX0NvbXBfVW5pdCAqY29tcF91Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCA9IFhOQVRJVkVfQ09NUF9VTklUIChvYmopOwo+ID4gCj4gPiBIZXJlLCB5 b3UgdXNlZCBzcGFjZXMgZm9yIGluZGVudGF0aW9uIGluc3RlYWQgb2YgdGFicy4KPiA+IAo+ID4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGNvbXBfdS0+aGF2ZV9zdGF0 aWNfbGlzcF9kYXRhKQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZWFzc2Vy dCAoTklMUCAoY29tcF91LT5sYW1iZGFfZ2NfZ3VhcmRfaCkKPiA+ID4gJiYKPiA+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTklM UCAoY29tcF91LT5sYW1iZGFfY19uYW1lX2lkeF9oKQo+ID4gPiAmJgo+ID4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBOSUxQIChj b21wX3UtPmRhdGFfdmVjKSAmJgo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBOSUxQIChjb21wX3UtPmRhdGFfaW1wdXJlX3Zl YykgJiYKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgY29tcF91LT5kYXRhX2ltcF9yZWxvY3MgPT0gTlVMTCk7Cj4gPiAKPiA+ IEluIEVtYWNzIGNvZGUsIHdoZW5ldmVyIHlvdSBmZWVsIHRoZSB0ZW1wdGF0aW9uIHRvIHdyaXRl Ogo+ID4gCj4gPiDCoCBmb29fY29uZGl0aW9uICgpICYmCj4gPiDCoCBiYXJfY29uZGl0aW9uICgp Cj4gPiAKPiA+IHdyaXRlIHRoaXMgaW5zdGVhZDoKPiA+IAo+ID4gwqAgZm9vX2NvbmRpdGlvbiAo KQo+ID4gwqAgJiYgYmFyX2NvbmRpdGlvbiAoKQo+ID4gCj4gPiA+ICtzdGF0aWMgZ2NjX2ppdF9y dmFsdWUgKgo+ID4gPiArY29tcF9saXNwX2NvbnN0X2dldF9saXNwX29ial9ydmFsIChMaXNwX09i amVjdCBvYmosCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb21wX2xpc3BfY29uc3RfdCBleHByKTsKPiA+ ID4gK3N0YXRpYyBjb21wX2xpc3BfY29uc3RfdCBlbWl0X2NvbXBfbGlzcF9vYmogKExpc3BfT2Jq ZWN0IG9iaiwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTGlzcF9PYmpl Y3QKPiA+ID4gYWxsb2NfY2xhc3MpOwo+ID4gCj4gPiBUaGlzIG91Z2h0IHRvIHJlYWQ6Cj4gPiAK PiA+IHN0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqY29tcF9saXNwX2NvbnN0X2dldF9saXNwX29ial9y dmFsCj4gPiAoTGlzcF9PYmplY3QsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiA+IGNvbXBfbGlzcF9jb25zdF90KTsKPiA+IHN0 YXRpYyBjb21wX2xpc3BfY29uc3RfdCBlbWl0X2NvbXBfbGlzcF9vYmogKExpc3BfT2JqZWN0LAo+ ID4gTGlzcF9PYmplY3QpOwo+ID4gCj4gPiA+ICvCoCBuID0KPiA+ID4gK8KgwqDCoCBlbWl0X2Jp bmFyeV9vcCAoR0NDX0pJVF9CSU5BUllfT1BfUExVUywKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBjb21wLmVtYWNzX3VpbnRfdHlwZSwKPiA+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbWl0X2JpbmFyeV9vcCAoR0NDX0pJVF9CSU5B UllfT1BfTFNISUZULAo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29tcC5lbWFjc191aW50X3R5cGUsCj4g PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBjb21wLmxpc3BfaW50MCwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW1p dF9ydmFsdWVfZnJvbV9lbWFjc191aW50Cj4gPiA+IChWQUxCSVRTKSksCj4gPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbik7Cj4gPiA+ICsKPiA+IAo+ID4gUGxlYXNl LCBwbGFjZSB0aGUgPSBvbiBhIG5ldyBsaW5lLgo+ID4gCj4gPiA+ICtzdGF0aWMgZ2NjX2ppdF9y dmFsdWUgKgo+ID4gPiArZW1pdF9tYWtlX2ZpeG51bSAoZ2NjX2ppdF9ydmFsdWUgKm9iaikKPiA+ ID4gK3sKPiA+ID4gK8KgIGVtaXRfY29tbWVudCAoIm1ha2VfZml4bnVtIik7Cj4gPiA+ICvCoCBy ZXR1cm4gVVNFX0xTQl9UQUcKPiA+ID4gK8KgwqDCoCA/IGVtaXRfbWFrZV9maXhudW1fTFNCX1RB RyAob2JqKQo+ID4gPiArwqDCoMKgIDogZW1pdF9tYWtlX2ZpeG51bV9NU0JfVEFHIChvYmopOwo+ ID4gPiArfQo+ID4gCj4gPiBUaGlzIHNob3VsZCByZWFkOgo+ID4gCj4gPiDCoCByZXR1cm4gKFVT RV9MU0JfVEFHCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqAgPyBlbWl0X21ha2VfZml4bnVtX0xTQl9U QUcgKG9iaikKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoCA/IGVtaXRfbWFrZV9maXhudW1fTVNCX1RB RyAob2JqKSk7Cj4gPiAKPiA+IGluc3RlYWQuCj4gPiAKPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsK PiA+ID4gK8KgIHB0cmRpZmZfdCBzaXplOwo+ID4gPiArwqAgZ2NjX2ppdF9maWVsZCAqaGVhZGVy Owo+ID4gPiArwqAgZ2NjX2ppdF9maWVsZCAqY29udGVudHM7Cj4gPiA+ICvCoCBnY2Nfaml0X3R5 cGUgKmxpc3BfdmVjdG9yX3R5cGU7Cj4gPiA+ICvCoCBnY2Nfaml0X3R5cGUgKmNvbnRlbnRzX3R5 cGU7Cj4gPiA+ICt9IGppdF92ZWN0b3JfdHlwZV90Owo+ID4gCj4gPiBQbGVhc2UgcGxhY2UgdGhl IG9wZW5pbmcgYnJhY2Ugb2YgdGhpcyBzdHJ1Y3Qgb24gYSBuZXcgbGluZS4KPiA+IAo+ID4gPiAr wqDCoMKgwqDCoCB2ZWMuaGVhZGVyID0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgZ2NjX2ppdF9jb250 ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE5VTEwsCj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgY29tcC5wdHJkaWZmX3R5cGUsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgImhlYWRlciIpOwo+ ID4gCj4gPiBQbGVhc2UgcGxhY2UgdGhlID0gb24gYSBuZXcgbGluZSwgaGVyZSwgYW5kIGJlbG93 Ogo+ID4gCj4gPiA+ICvCoMKgwqDCoMKgIHZlYy5jb250ZW50cyA9Cj4gPiA+ICvCoMKgwqDCoMKg wqDCoGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKPiA+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBOVUxMLAo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZlYy5jb250ZW50c190eXBlLAo+ID4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICJjb250ZW50cyIpOwo+ID4gCj4gPiA+ICvCoMKgwqAgPSBTVFJJTkdfTVVMVElCWVRFIChz dHIpCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCA/IGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zy b21faW50IChjb21wLmN0eHQsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoAo+ID4gPiBjb21wLnB0cmRpZmZfdHlwZSwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIFNCWVRFUyAoc3RyKSkKPiA+ID4gK8KgwqDCoCAvLyBNYXJrIHVuaWJ5 dGUgc3RyaW5ncyBhcyBpbW1vdmFibGUsIHNvIHRoYXQgcGluX3N0cmluZwo+ID4gPiBkb2VzIG5v dAo+ID4gPiArwqDCoMKgIC8vIGF0dGVtcHQgdG8gbW9kaWZ5IHRoZW0uCj4gPiA+ICvCoMKgwqDC oMKgwqDCoCA6IGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50IChjb21wLmN0eHQs Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gPiBjb21wLnB0 cmRpZmZfdHlwZSwgLTMpOwo+ID4gCj4gPiBXaGVuIHlvdSB3cml0ZToKPiA+IAo+ID4gwqAgZm9v ID0gYWJjZGVmZwo+ID4gwqDCoMKgID8gYmNkZWZnaGlqCj4gPiDCoMKgwqAgOiBrbG1ub3BxcnMK PiA+IAo+ID4gZXZlcnl0aGluZyBhcm91bmQgdGhlIHRlcm5hcnkgbXVzdCBiZSBwbGFjZWQgaW4g cGFyZW50aGVzZXMgYW5kCj4gPiBpbmRlbnRlZAo+ID4gYXMgc3VjaC4KPiA+IAo+ID4gCj4gPiA+ ICtzdGF0aWMgaW5saW5lIGJvb2wKPiA+ID4gK2NvbXBfZnVuY19sX3AgKExpc3BfT2JqZWN0IGZ1 bmMpCj4gPiA+ICt7Cj4gPiA+ICvCoCByZXR1cm4gIU5JTFAgKENBTEwxSSAoY29tcC1mdW5jLWwt cCwgZnVuYykpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW5saW5lIGJvb2wKPiA+ ID4gK2NvbXBfZnVuY19kX3AgKExpc3BfT2JqZWN0IGZ1bmMpCj4gPiA+ICt7Cj4gPiA+ICvCoCBy ZXR1cm4gIU5JTFAgKENBTEwxSSAoY29tcC1mdW5jLWQtcCwgZnVuYykpOwo+ID4gPiArfQo+ID4g Cj4gPiBJbiBnZW5lcmFsLCB0aGVyZSBpcyBubyBuZWVkIHRvIHdyaXRlICJpbmxpbmUiIGluIEM5 OTogc2ltcGxlCj4gPiBleHByZXNzaW9ucyBsaWtlIHRoZXNlIHdpbGwgYmUgaW5saW5lZCBhbnl3 YXksIGFuZCBvdGhlcndpc2UsIHRoZQo+ID4gY29tcGlsZXIgd2lsbCBtYWtlIGl0cyBvd24ganVk Z2VtZW50Lgo+ID4gCj4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7Cj4gPiA+ICvCoCBwdHJkaWZmX3Qg Y29uc19ibG9ja19saXN0X2lkeDsKPiA+ID4gK8KgIHB0cmRpZmZfdCBjb25zX2Jsb2NrX2NvbnNl c19pZHg7Cj4gPiA+ICt9IGNvbnNfYmxvY2tfZW50cnlfdDsKPiA+IAo+ID4gUGxlYXNlIHBsYWNl IHRoZSBvcGVuaW5nIGJyYWNlIG9mIHRoaXMgc3RydWN0IG9uIGEgbmV3IGxpbmUuCj4gPiAKPiA+ ID4gK3N0YXRpYyBMaXNwX09iamVjdAo+ID4gPiArY29uc19ibG9ja19saXN0X2dldF9ibG9ja19l bnRyeSAoY29uc19ibG9ja19lbnRyeV90IGVudHJ5KQo+ID4gPiArewo+ID4gPiArwqAgcHRyZGlm Zl90IGxpc3RfaWR4ID0gWEZJWE5VTSAoRmxlbmd0aCAoY29tcC5jb25zX2Jsb2NrX2xpc3QpKQo+ ID4gPiAtIDEKPiA+ID4gK8KgwqDCoCAtIGVudHJ5LmNvbnNfYmxvY2tfbGlzdF9pZHg7Cj4gPiA+ ICvCoCByZXR1cm4gRm50aCAobWFrZV9maXhudW0gKGxpc3RfaWR4KSwgY29tcC5jb25zX2Jsb2Nr X2xpc3QpOwo+ID4gPiArfQo+ID4gCj4gPiBJbnN0ZWFkIG9mIHdyaXRpbmc6Cj4gPiAKPiA+IMKg IGZvbyA9IDA3Nzc3Nzc3Nzc3Nzc3Nwo+ID4gwqDCoCAtIDA3Nzc3Nzc3Nzc3Nzc2Owo+ID4gCj4g PiBvdXIgY29kaW5nIHN0eWxlIGlzOgo+ID4gCj4gPiDCoCBmb28gPSAoMDc3Nzc3Nzc3Nzc3Nzc3 Cj4gPiDCoMKgwqDCoMKgwqDCoMKgIC0gMDc3Nzc3Nzc3Nzc3NzYpCj4gPiAKPiA+IFBsZWFzZSBh ZGp1c3QgdGhpcyBjb2RlIGFjY29yZGluZ2x5Lgo+ID4gCj4gPiA+ICvCoCBMaXNwX09iamVjdCBi bG9jazsKPiA+ID4gK8KgIGlmIChOSUxQIChjb21wLmZsb2F0X2Jsb2NrX2xpc3QpKQo+ID4gPiAr wqDCoMKgIGJsb2NrID0gcHVzaF9mbG9hdF9ibG9jaygpOwo+ID4gCj4gPiBUaGVyZSBpcyBhIG1p c3Npbmcgc3BhY2UgaGVyZS4KPiA+IAo+ID4gPiArwqAgaWYgKGV4cHIuZXhwcl90eXBlID09IENP TVBfTElTUF9DT05TVF9TRUxGX1JFUFIgfHwKPiA+ID4gK8KgwqDCoMKgwqAgZXhwci5leHByX3R5 cGUgPT0gQ09NUF9MSVNQX0NPTlNUX1ZBUikKPiA+ID4gK8KgwqDCoCByZXR1cm4gZXhwci5leHBy Lmxpc3Bfb2JqOwo+ID4gCj4gPiBQbGVhc2Ugd3JpdGU6Cj4gPiAKPiA+IMKgIGlmIChleHByLmV4 cHJfdHlwZSA9PSBDT01QX0xJU1BfQ09OU1RfU0VMRl9SRVBSCj4gPiDCoMKgwqDCoMKgIHx8IGV4 cHIuZXhwcl90eXBlID09IENPTVBfTElTUF9DT05TVF9WQVIpCj4gPiDCoMKgwqDCoCByZXR1cm4g ZXhwci5leHByLmxpc3Bfb2JqOwo+ID4gCj4gPiBpbnN0ZWFkLgo+ID4gCj4gPiAKPiA+ID4gK8Kg IGJvb2wgdmFsaWQgPSBFUSAoYWxsb2NfY2xhc3MsIFFkX2RlZmF1bHQpIHx8Cj4gPiA+ICvCoMKg wqAgRVEgKGFsbG9jX2NsYXNzLCBRZF9pbXB1cmUpIHx8Cj4gPiA+ICvCoMKgwqAgRVEgKGFsbG9j X2NsYXNzLCBRZF9lcGhlbWVyYWwpOwo+ID4gCj4gPiBXaGF0IHdhcyBzYWlkIGFib3V0IHBhcmVu dGhlc2VzIGVhcmxpZXIgYXBwbGllcyBoZXJlIHRvby4KPiA+IAo+ID4gPiArwqAgaWYgKEZJWE5V TVAgKG9iaikpCj4gPiA+ICvCoMKgwqAgZXhwciA9IChjb21wX2xpc3BfY29uc3RfdCl7IC5leHBy Lmxpc3Bfb2JqCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgPSBlbWl0X3J2YWx1ZV9mcm9tX2xpc3Bfb2JqIChvYmopLAo+ID4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5jb25zdF9leHByX3Ag PSB0cnVlLAo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIC5leHByX3R5cGUgPSBDT01QX0xJU1BfQ09OU1RfU0VMRl9SRVBSCj4gPiA+IH07Cj4g PiA+ICvCoCBlbHNlIGlmIChCQVJFX1NZTUJPTF9QIChvYmopICYmIGNfc3ltYm9sX3AgKFhCQVJF X1NZTUJPTAo+ID4gPiAob2JqKSkpCj4gPiA+ICvCoMKgwqDCoMKgIGV4cHIKPiA+ID4gK8KgwqDC oMKgwqDCoMKgID0gKGNvbXBfbGlzcF9jb25zdF90KXsgLmV4cHIubGlzcF9vYmoKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA9IGVtaXRfcnZh bHVlX2Zyb21fbGlzcF9vYmogKG9iaiksCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmNvbnN0X2V4cHJfcCA9IHRydWUsCj4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmV4cHJfdHlwZSA9 IENPTVBfTElTUF9DT05TVF9TRUxGX1JFUFIKPiA+ID4gfTsKPiA+IAo+ID4gSW4gdGhpcyBjb21w b3VuZCBsaXRlcmFsLCBwbGVhc2UgcGxhY2UgYSBzcGFjZSBiZXR3ZWVuIHRoZSBwYXJ0Cj4gPiB0 aGF0Cj4gPiBsb29rcyBsaWtlIGEgY2FzdCBhbmQgdGhlIGluaXRpYWxpemVyIGxpc3QuCj4gPiAK PiA+ID4gK8KgwqDCoCB7Cj4gPiA+ICvCoMKgwqDCoMKgIExpc3BfT2JqZWN0IGZ1bmMgPQo+ID4g PiArwqDCoMKgwqDCoMKgwqBGZ2V0aGFzaCAob2JqLAo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgQ0FMTDFJIChjb21wLWN0eHQtYnl0ZS1mdW5jLXRvLWZ1bmMtaCwKPiA+ ID4gVmNvbXBfY3R4dCksCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBR bmlsKTsKPiA+IAo+ID4gUGxlYXNlIHBsYWNlIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIG9uIHRo ZSBuZXcgbGluZS4KPiA+IAo+ID4gPiArY29uc3QgY2hhciAqbGlzcF90eXBlX25hbWVbTGlzcF9G bG9hdCArIDFdID0gewo+ID4gPiArwqAgIkxpc3BfU3ltYm9sIiwKPiA+ID4gK8KgICJMaXNwX1R5 cGVfVW51c2VkMCIsCj4gPiA+ICvCoCAiTGlzcF9JbnQwIiwKPiA+ID4gK8KgICJMaXNwX0ludDEi LAo+ID4gPiArwqAgIkxpc3BfU3RyaW5nIiwKPiA+ID4gK8KgICJMaXNwX1ZlY3Rvcmxpa2UiLAo+ ID4gPiArwqAgIkxpc3BfQ29ucyIsCj4gPiA+ICvCoCAiTGlzcF9GbG9hdCIKPiA+ID4gK307Cj4g PiAKPiA+IFBsZWFzZSBwbGFjZSB0aGUgb3BlbmluZyBicmFjZSBoZXJlIG9uIGEgbmV3IGxpbmUu Cj4gPiAKPiA+ID4gK8KgIGNvbXAuZF9kZWZhdWx0X3J2YWxzID0KPiA+ID4gK8KgwqDCoCBlbWl0 X3N0YXRpY19kYXRhX2NvbnRhaW5lciAoQ0FMTDFJIChjb21wLWN0eHQtZC1kZWZhdWx0LAo+ID4g PiBWY29tcF9jdHh0KSwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgUWRfZGVmYXVsdCk7Cj4gPiA+ICvCoCBjb21wLmRf aW1wdXJlX3J2YWxzID0KPiA+ID4gK8KgwqDCoCBlbWl0X3N0YXRpY19kYXRhX2NvbnRhaW5lciAo Q0FMTDFJIChjb21wLWN0eHQtZC1pbXB1cmUsCj4gPiA+IFZjb21wX2N0eHQpLAo+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBRZF9pbXB1cmUpOwo+ID4gPiArwqAgY29tcC5kX2VwaGVtZXJhbF9ydmFscyA9Cj4gPiA+ICvC oMKgwqAgZW1pdF9zdGF0aWNfZGF0YV9jb250YWluZXIgKENBTEwxSSAoY29tcC1jdHh0LWQtZXBo ZW1lcmFsLAo+ID4gPiBWY29tcF9jdHh0KSwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgUWRfZXBoZW1lcmFsKTsKPiA+ ID4gK30KPiA+IAo+ID4gUGxlYXNlIHB1dCB0aGUgYXNzaWdubWVudCBvcGVyYXRvcnMgb24gdGhl IG5ldyBsaW5lLgo+ID4gCj4gPiA+ICsjaWYKPiA+ID4gZGVmaW5lZChMSUJHQ0NKSVRfSEFWRV9S RUZMRUNUSU9OKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgCj4gPiA+IMKgwqBcCj4gPiA+ICvCoCAmJgo+ID4gPiBkZWZpbmVkKExJ QkdDQ0pJVF9IQVZFX0NUT1JTKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gPiDCoFwKPiA+ID4gK8KgICYm Cj4gPiA+IGRlZmluZWQoTElCR0NDSklUX0hBVkVfZ2NjX2ppdF90eXBlX2dldF9hbGlnbmVkKcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiA+ID4gwqBcCj4gPiA+ICvCoCAmJiBk ZWZpbmVkKExJQkdDQ0pJVF9IQVZFX0FMSUdOTUVOVCkgJiYKPiA+ID4gVVNFX1NUQUNLX0xJU1Bf T0JKRUNUU8KgwqDCoMKgwqDCoMKgXAo+ID4gPiArwqAgJiYgIWRlZmluZWQoR0NfQ0hFQ0tfTUFS S0VEX09CSkVDVFMpCj4gPiAKPiA+IFBsZWFzZSB3cml0ZToKPiA+IAo+ID4gI2lmIGRlZmluZWQg KEZPTykKPiA+IAo+ID4gb3IKPiA+IAo+ID4gI2lmIGRlZmluZWQgRk9PCj4gPiAKPiA+IGluc3Rl YWQgb2Y6Cj4gPiAKPiA+ICNpZiBkZWZpbmVkKEZPTykKPiA+IAo+ID4gSW4gYWRkaXRpb24sIG1v c3Qgb2YgeW91ciBjaGFuZ2VzIGNvbnNpc3Qgb2YgbGluZXMgaW5kZW50ZWQgd2l0aAo+ID4gdGFi cwo+ID4gYW5kIHNwYWNlcywgd2hpY2ggaXMgY29ycmVjdCwgYnV0IGl0IGFsc28gY29udGFpbnMg bWFueSBsaW5lcwo+ID4gaW5kZW50ZWQKPiA+IHNvbGVseSB3aXRoIHNwYWNlcy7CoCBQbGVhc2Ug Zml4IHRob3NlLgo+ID4gCj4gPiBUaGFua3MuCj4gCj4gSGksCj4gCj4gaW4gYWRkaXRpb24gdG8g UG8gTHUgZ29vZCBjb21tZW50cywgSSB0aGluayB0aGlzIHBhdGNoIHdpbGwgbmVlZAo+IChvdGhl cgo+IHRoYW4gYSBDaGFuZ2VMb2cgZW50cnkpIGEgY292ZXIgbGV0dGVyIHdpdGggYW4gaW4gZGVl cCBleHBsYW5hdGlvbiBvZgo+IHdoYXQgaXMgdHJ5aW5nIHRvIGFjaGlldmUuCj4gCj4gQWxzbyBJ IHNlZSB0aGlzIGlzIGJhc2VkIG9uIDFiNDhlOGRkZTUsIGJ1dCBJIG9wcG9zZWQgdG8gdGhhdCBj aGFuZ2UKPiBhcwo+IGJyaW5ncyBjb2RlIGNvbXBsZXhpdHkgZm9yIG5vIHJlYWwgYWR2YW50YWdl cywgc28gSSB0aGluayB3b3VsZCBiZQo+IGJldHRlciB0byBoYXZlIHRoaXMgcGF0Y2ggcmViYXNl ZCBvbiBjdXJyZW50IG1hc3Rlci4KPiAKPiBCZXN0IFJlZ2FyZHMKPiAKPiDCoCBBbmRyZWEKCkhp IEFuZHJlYSwKClRoaXMgYnJhbmNoIHdhcyBtb3N0bHkgaW5zcGlyZWQgYnkgeW91ciBjb21tZW50 IGluIGBlbWl0X3N0YXRpY19vYmplY3QnCnRoYXQgbWVudGlvbmVkIGhvdyBsaWJnY2NqaXQgZGlk bid0IHN1cHBvcnQgc3RhdGljIGluaXRpYWxpemVycwoocHJlc3VtYWJseSBiYWNrIHRoZW4pLiBO b3cgdGhhdCB0aGVyZSBpcyBzb21lIHN1cHBvcnQgZm9yIGluaXRpYWxpemluZwpzdGF0aWMgZ2xv YmFscyB3aXRoIGNvbnN0YW50IGV4cHJlc3Npb25zLCBJIGhhdmUgYmVlbiB3b3JraW5nIG9uIHRo aXMKcGF0Y2ggZm9yIHRoZSBsYXN0IGZldyB3ZWVrcyB3aXRoIHRoZSBhaW0gb2YgdHJ5aW5nIHRv IHJlZHVjZSB0aGUgdXNlCm9mIGByZWFkJyBmb3IgaW5pdGlhbGl6aW5nIGNvbnN0YW50cyByZWZl cmVuY2VkIGJ5IGVsaXNwIGNvZGUKKHRoZXJlZm9yZSBkcmFzdGljYWxseSByZWR1Y2luZyB0aGUg YW1vdW50IG9mIGhlYXAgYWxsb2NhdGlvbnMgYW5kCmltcHJvdmluZyBlbG4gbG9hZCB0aW1lcyks IGJ5IGNvbXBpbGluZyB0aGVtIGludG8gdGhlIGVsbiBhcyBzdGF0aWMKKG9wdGlvbmFsbHkgY29u c3QpIGRhdGEuIFRoaW5rIG9mIGl0IGFzIGV2ZXJ5IGVsbiBtb2R1bGUgaGF2aW5nIGl0cyBvd24K cHVyZSBzdG9yYWdlLgoKVGhlcmUgYXJlIHN0aWxsIGEgYnVuY2ggb2YgVE9ET3MsIHRoZSBmaXJz dCBvbmUgYmVpbmcgcmVkdWNpbmcgdGhlIHNpemUKb2YgdGhlIGdlbmVyYXRlZCBiaW5hcmllcyAo d2hpY2ggaXMgbW9zdGx5IGR1ZSB0byBob3cgYGNvbXBfaW5pdF9vYmonCndvcmtzIHJpZ2h0IG5v dykuIE5vbmV0aGVsZXNzLCBJIGRlY2lkZWQgdG8gbWFrZSB0aGlzIGNvZGUgcHVibGljIG9uY2UK aXQgd2FzIHBhc3NpbmcgYmFzaWMgc2FuaXR5IHRlc3RzIChpbmNsdWRpbmcgdGhlIGNvbXAtdGVz dHMuZWwgc3VpdGUpCmFuZCB3YXMgaW4gYSBtb3JlIG9yIGxlc3Mgd29ya2luZyBjb25kaXRpb24g YXMgYSBkYWlseSBkcml2ZXIuIEFzIGEKcmVzdWx0LCB0aGUgYnJhbmNoIGlzIHN0aWxsIGEgV0lQ LCBidXQgSSB3aWxsIHRyeSB0byBkb2N1bWVudCBtb3JlIG9mCnRoZSBjb2RlIG1vdmluZyBmb3J3 YXJkLgoKQmVzdCwKVmliaGF2CgoKLS0gClZpYmhhdiBQYW50CnZpYmhhdnBAZ21haWwuY29tCkdQ RzogN0VEMSBENDhDIDUxM0MgQTAyNCBCRTNBICA3ODVGIEUzRkIgMjhDQiA2QUI1IDk1OTgK --=-fT2Cd5VFRYEvAMvD+Lew Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEftHUjFE8oCS+Onhf4/soy2q1lZgFAmN1O8cACgkQ4/soy2q1 lZi1XwgAwl2Vnn8rWx9Fb6Si2BfvxgTXSHkMlWRAahwuWA41BgKuz59F5gevR/e2 Qq33+SYQXIUt54vjCQW7eSPTxY8Ew1J4qaMqkINYze+ah3fZVHVuT3AAhN1T2Hoc +728I/VWKDuqa/1fJgvTw1UWl25zwSiqwrpo1Or90khs7X9+KAKa90q8cjOBuwSs ZRLK9whqJoM9+ndqpCJ1e/0wkZKrxb0K0GMJ2y0RZh3iHKusA/YKlKpBb2fXDj0Q WIos+2DcKdl+DTVfWX0xMvxRA9LC/RaBp6KJ1mg0e+ldMBHqSZJiGbZc+Q8Qew2f nbhqBFDMLONYknN7TlJxMXCbO6b44Q== =bRsB -----END PGP SIGNATURE----- --=-fT2Cd5VFRYEvAMvD+Lew--