From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE,T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id AE4821F54E for ; Wed, 10 Aug 2022 04:23:17 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sendgrid.me header.i=@sendgrid.me header.b="zB2RbleE"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 7361C1210F0; Wed, 10 Aug 2022 13:23:13 +0900 (JST) Received: from xtrwkhkc.outbound-mail.sendgrid.net (xtrwkhkc.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id A25A21210F2 for ; Wed, 10 Aug 2022 13:23:10 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.me; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc; s=smtpapi; bh=SeAjWeXOa8n6jUm6aNeSgeitjzw1mU1EGbTbMt+JFh4=; b=zB2RbleEEc8SF1nD/ryrJCGR76Ow8b4PN5UptNWETgIU2Dp8dV9C+up3KT0vRfmc8qdU vSJKIULzYEQfF4ClU9EPpuXi9+n0T0mWr6rK4H2hWmCGOlXrKr4cA2x/33FMZGP6G9rqQC OVqZU6mhx4dMa24wptDuBntT9OTrmu6qU= Received: by filterdrecv-6b87cb984-5kg8k with SMTP id filterdrecv-6b87cb984-5kg8k-1-62F332A8-D 2022-08-10 04:23:04.680148223 +0000 UTC m=+1671241.374212636 Received: from herokuapp.com (unknown) by geopod-ismtpd-5-2 (SG) with ESMTP id k5QN3xnjThe35JkLo-MYiw for ; Wed, 10 Aug 2022 04:23:04.525 +0000 (UTC) Date: Wed, 10 Aug 2022 04:23:04 +0000 (UTC) From: duerst Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 18949 X-Redmine-Issue-Author: Eregon X-Redmine-Sender: duerst X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 85867 X-SG-EID: =?us-ascii?Q?sZFLhNnqjcW9Ht8ByfkgOQbWPVETXXFxLuf0UPwpQ=2FbXrx066LnwciY0taRhC1?= =?us-ascii?Q?++A6DTJJ4lt=2FzJkwBQUmmbJXhB+C4nQ033MjSGj?= =?us-ascii?Q?je1hQvxReIZfoqvGKddY1YAR0VaJEB+6eT6LhX6?= =?us-ascii?Q?0tFIdMgrvnGmK7=2FuMfu0sLNdoh82bVo6KN7IkYw?= =?us-ascii?Q?GAPvuN6Fip0elkJ6i3nh6Ygrq0ysYunqiX0ZVNp?= =?us-ascii?Q?+DuTwHNXhy8YH5JlV7u+dY0t7NV5NSn15wtX5j=2F?= =?us-ascii?Q?LJp5G9QVfEW6zmp8rolMw=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109459 Subject: [ruby-core:109459] [Ruby master Feature#18949] Deprecate and remove replicate and dummy encodings X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Reply-To: Ruby developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE4OTQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgZHVlcnN0IChNYXJ0aW4gRMO8cnN0KS4N Cg0KDQpARXJlZ29uOiBJZiB5b3Ugd2FudCwgeW91IGNhbiBhZGQgdGhpcyBpc3N1ZSB0byB0aGUg ZGV2ZWxvcGVycycgbWVldGluZyBuZXh0IHdlZWsuIEkgd2lsbCBiZSBpbiBTd2l0emVybGFuZCwg YnV0IEkgc2hvdWxkIGJlIGFibGUgdG8gcGFydGljaXBhdGUuIE1heWJlIHlvdSBjYW4gYWxzbyBw YXJ0aWNpcGF0ZT8NCg0KRXJlZ29uIChCZW5vaXQgRGFsb3plKSB3cm90ZSBpbiAjbm90ZS0yMjoN Cj4gZHVlcnN0IChNYXJ0aW4gRMO8cnN0KSB3cm90ZSBpbiAjbm90ZS0yMDoNCj4gPiBJIHRoaW5r IGl0IHNob3VsZCBiZSBva2F5IHRvIGluIHlvdXIgaW1wbGVtZW50YXRpb24gYXNzdW1lIGEgbWF4 aW11bSBudW1iZXIgb2YgZW5jb2RpbmdzIChjdXJyZW50bHksIHRoZSBudW1iZXIgb2YgYWN0dWFs IGVuY29kaW5ncyBpbiBDUnVieSBpcyBhIGJpdCBtb3JlIHRoYW4gMTAwLCBzbyBhIG1heCBvZiAx Mjcgb3Igd2hhdGV2ZXIgbWlnaHQgYmUgYSBnb29kIGNob2ljZSkuIFRoZW4geW91IGRvbid0IG5l ZWQgYSBoYXNodGFibGUsIHlvdSBjYW4ganVzdCB1c2UgYW4gYXJyYXkuDQo+IA0KPiBUaGF0IHdv dWxkIGdldCBvbmx5IGEgc21hbGwgcGFydCBvZiB0aGUgYmVuZWZpdHMsIHdvdWxkIGludHJvZHVj ZSBhIHdlaXJkIGFyYml0cmFyeSBsaW1pdCBmb3IgYEVuY29kaW5nI3JlcGxpY2F0ZWAvYHJiX2Rl ZmluZV9kdW1teV9lbmNvZGluZ2AgYW5kIHdvdWxkIG5vdCByZW1vdmUgdGhlIG5lZWQgZm9yIHN5 bmNocm9uaXphdGlvbi4NCj4gU28gSSBkb24ndCB0aGluayB0aGF0J3MgYSBnb29kIGNob2ljZSBp biBwcmFjdGljZSBmb3IgYW55IFJ1YnkgaW1wbGVtZW50YXRpb24uDQoNCk1heWJlIHlvdSBoYXZl IGRpZmZlcmVudCBpbmZvcm1hdGlvbiwgYnV0IHRoZSBudW1iZXIgb2YgYWRkaXRpb25hbCBlbmNv ZGluZ3MgcGVvcGxlIG1heSBjcmVhdGUgaXMgdmVyeSwgdmVyeSBsb3cuIEkgZ3Vlc3MgSSBzaG91 bGQga25vdywgYmVjYXVzZSBvdGhlcndpc2UsIHBlb3BsZSB3b3VsZCBhc2sgbWUgZm9yIGFkZGl0 aW9uYWwgdHJhbnNjb2RpbmdzLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQpGZWF0dXJlICMxODk0OTogRGVwcmVjYXRlIGFuZCByZW1vdmUgcmVwbGljYXRlIGFu ZCBkdW1teSBlbmNvZGluZ3MNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODk0 OSNjaGFuZ2UtOTg2MjANCg0KKiBBdXRob3I6IEVyZWdvbiAoQmVub2l0IERhbG96ZSkNCiogU3Rh dHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NClJ1YnkgaGFzIGEgbG90IG9mIGFjY2lkZW50YWwgY29tcGxleGl0eS4N ClNvbWV0aW1lcyBpdCBiZWNvbWVzIGNsZWFyIHNvbWUgZmVhdHVyZXMgYnJpbmcgYSBsb3Qgb2Yg Y29tcGxleGl0eSBhbmQgeWV0IHByb3ZpZGUgbGl0dGxlIHZhbHVlIG9yIGFyZSB1c2VkIHZlcnkg cmFyZWx5Lg0KQWxzbyBtb3N0IFJ1YnkgdXNlcnMgZG8gbm90IGV2ZW4ga25vdyBhYm91dCB0aGVz ZSBmZWF0dXJlcy4NClJlcGxpY2F0ZSBhbmQgZHVtbXkgZW5jb2RpbmdzIHNlZW0gdG8gY2xlYXJs eSBmYWxsIGludG8gdGhpcyBjYXRlZ29yeSwgYWxtb3N0IG5vYm9keSB1c2VzIHRoZW0gYnV0IHRo ZXkgYWRkIGEgc2lnbmlmaWNhbnQgY29tcGxleGl0eSBhbmQgYWxzbyBhZGQgYSBzaWduaWZpY2Fu dCBwZXJmb3JtYW5jZSBvdmVyaGVhZC4NCk5vdGFibHksIHRoZSBleGlzdGVuY2Ugb2YgdGhvc2Ug bWVhbnMgdGhlIG51bWJlciBvZiBlbmNvZGluZ3MgaW4gYSBSdWJ5IHJ1bnRpbWUgaXMgYWN0dWFs bHkgdmFyaWFibGUgYW5kIG5vdCBmaXhlZC4NClRoYXQgbWVhbnMgZXh0cmEgc3luY2hyb25pemF0 aW9uLCBoYXNodGFibGUgbG9va3VwcywgaW5kaXJlY3Rpb25zLCBmdW5jdGlvbiBjYWxscywgZXRj Lg0KDQojIyBSZXBsaWNhdGUgRW5jb2RpbmdzDQoNClJlcGxpY2F0ZSBlbmNvZGluZ3MgYXJlIGNy ZWF0ZWQgdXNpbmcgYEVuY29kaW5nI3JlcGxpY2F0ZShuYW1lKWAuDQpJdCBhbG1vc3Qgc291bmRz IGxpa2UgYW4gYWxpYXMgYnV0IGluIGZhY3QgaXQgaXMgbW9yZSB0aGFuIHRoYXQgYW5kIGNyZWF0 ZXMgYSBuZXcgRW5jb2Rpbmcgb2JqZWN0LCB3aGljaCBjYW4gYmUgdXNlZCBieSBhIFN0cmluZzoN CmBgYHJ1YnkNCmUgPSBFbmNvZGluZzo6VVNfQVNDSUkucmVwbGljYXRlKCdNWS1VUy1BU0NJSScp DQpzID0gImFiYyIuZm9yY2VfZW5jb2RpbmcoZSkNCnAgcy5lbmNvZGluZyAjID0+IGUNCnAgcy5l bmNvZGluZy5uYW1lICMgPT4gJ01ZLVVTLUFTQ0lJJw0KYGBgDQoNClRoaXMgc2VlbXMgY29tcGxl dGVseSB1c2VsZXNzLg0KVGhlcmUgaXMgYW4gb2J2aW91cyBmaXJzdCBzdGVwIGhlcmUgd2hpY2gg aXMgdG8gY2hhbmdlIGBFbmNvZGluZyNyZXBsaWNhdGVgIHRvIHJldHVybiB0aGUgcmVjZWl2ZXIs IGFuZCBqdXN0IGluc3RhbGwgYW4gYWxpYXMgZm9yIGl0Lg0KVGhhdCBhdm9pZHMgY3JlYXRpbmcg bW9yZSBlbmNvZGluZyBpbnN0YW5jZXMgbmVlZGxlc3NseS4NCg0KSSB0aGluayB3ZSBzaG91bGQg YWxzbyBkZXByZWNhdGUgYW5kIHJlbW92ZSB0aGlzIG1ldGhvZCB0aG91Z2gsIGl0IGlzIG5ldmVy IGEgZ29vZCBpZGVhIHRvIGhhdmUgYSBnbG9iYWwgbXV0YWJsZSBtYXAgbGlrZSB0aGlzLg0KSWYg c29tZW9uZSB3YW50IGV4dHJhIGFsaWFzZXMgZm9yIGVuY29kaW5ncywgdGhleSBjYW4gZWFzaWx5 IHRvIGRvIHNvIGJ5IGhhdmluZyB0aGVpciBvd24gSGFzaDogYHsgYWxpYXMgPT4gZW5jb2Rpbmcg fS5mZXRjaChuYW1lKSB7IEVuY29kaW5nLmZpbmQobmFtZSkgfWAuDQoNCiMjIER1bW15IEVuY29k aW5ncw0KDQpEdW1teSBlbmNvZGluZ3MgYXJlIG5vdCByZWFsIGVuY29kaW5ncy4gVGhleSBhcmUg YXJ0aWZpY2lhbCBlbmNvZGluZ3MgZGVzaWduZWQgdG8gbG9vayBsaWtlIGVuY29kaW5ncywgYnV0 IGRvbid0IGZ1bmN0aW9uIGFzIGVuY29kaW5ncyBpbiBSdWJ5Lg0KRnJvbSB0aGUgZG9jczoNCmBg YA0KZW5jLmR1bW15PyAtPiB0cnVlIG9yIGZhbHNlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClJldHVybnMg dHJ1ZSBmb3IgZHVtbXkgZW5jb2RpbmdzLiBBIGR1bW15IGVuY29kaW5nIGlzIGFuIGVuY29kaW5n IGZvcg0Kd2hpY2ggY2hhcmFjdGVyIGhhbmRsaW5nIGlzIG5vdCBwcm9wZXJseSBpbXBsZW1lbnRl ZC4gSXQgaXMgdXNlZCBmb3INCnN0YXRlZnVsIGVuY29kaW5ncy4NCmBgYA0KDQpJIHdvbmRlciB3 aHkgd2UgaGF2ZSB0aG9zZSBoYWxmLWltcGxlbWVudGVkIGVuY29kaW5ncyBpbiBjb3JlLCBpdCBz b3VuZHMgdG8gbWUgbGlrZSB1bmZpbmlzaGVkIHdvcmsgd2hpY2ggc2hvdWxkIG5vdCBoYXZlIGJl ZW4gbWVyZ2VkLg0KDQpUaGUgImNvZGVwb2ludHMiIG9mIGR1bW15IGVuY29kaW5ncyBhcmUganVz dCAiYnl0ZXMiIGFuZCBzbyB0aGV5IGJlaGF2ZSB0aGUgc2FtZSBhcyBgRW5jb2Rpbmc6OkJJTkFS WWAsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgVVRGLTE2IGFuZCBVVEYtMzIgZHVtbXkgZW5j b2RpbmdzLg0KDQojIyMgVVRGLTE2IGFuZCBVVEYtMzIgZHVtbXkgZW5jb2RpbmdzDQoNClRoZXNl IHR3byBhcmUgc3BlY2lhbCBkdW1teSBlbmNvZGluZ3MuDQpXaGF0IHRoZXkgZG8gaXMgdGhleSBz Y2FuIHRoZSBmaXJzdCAyIG9yIDQgYnl0ZXMgb2YgdGhlIFN0cmluZywgYW5kIGlmIHRob3NlIGJ5 dGVzIGFyZSBhIGJ5dGUtb3JkZXIgbWFyayAoQk9NKSwNCnRoZSB0cnVlICJhY3R1YWwiIGVuY29k aW5nIGlzIHJlc29sdmVkIHRvIFVURi0xNkJFL1VURi0xNkxFIG9yIFVURi0zMkJFL1VURi0zMkxF Lg0KT3RoZXJ3aXNlLCBgRW5jb2Rpbmc6OkJJTkFSWWAgaXMgcmV0dXJuZWQuDQpUaGlzIGxvZ2lj IGlzIGRvbmUgYnkgYGdldF9hY3R1YWxfZW5jb2RpbmcoKWAuDQoNCldoYXQgaXMgd2VpcmQgaXMg dGhpcyBjaGVjayBpcyBub3QgZG9uZSBvbiBTdHJpbmcgY3JlYXRpb24sIG5vLCBpdCBpcyBkb25l ICpldmVyeSB0aW1lKiB0aGUgZW5jb2Rpbmcgb2YgdGhhdCBTdHJpbmcgaXMgYWNjZXNzZWQgKGFu ZCB0aGUgcmVzdWx0IGlzIG5vdCBzdG9yZWQgb24gdGhlIFN0cmluZykuDQpUaGF0IGlzIGEgbmVl ZGxlc3Mgb3ZlcmhlYWQgYW5kIHJlYWxseSB1bnJlbGlhYmxlIHNlbWFudGljcy4NCkRvIHdlIHJl YWxseSB3YW50IGEgU3RyaW5nIHdoaWNoIGF1dG9tYWdpY2FsbHkgY2hhbmdlcyBiZXR3ZWVuIFVU Ri0xNkxFIGFuZCBVVEYtMTZCRSBiYXNlZCBvbiBtdXRhdGluZyBpdHMgYnl0ZXM/IEkgdGhpbmsg bm9ib2R5IHdhbnRzIHRoYXQ6DQpgYGBydWJ5DQpzID0gIlx4RkZceEZFYVx4MDBiXHgwMGNceDAw ZFx4MDAiLmZvcmNlX2VuY29kaW5nKCJVVEYtMTYiKQ0KcCBzICMgPT4gIlx1RkVGRmFiY2QiDQpz LnNldGJ5dGUgMCwgMjU0DQpzLnNldGJ5dGUgMSwgMjU1DQpwIHMgIyA9PiAiXHVGRUZGXHU2MTAw XHU2MjAwXHU2MzAwXHU2NDAwIg0KYGBgDQoNCkkgdGhpbmsgdGhlIHBhdGggaXMgY2xlYXIsIHdl IHNob3VsZCBkZXByZWNhdGUgYW5kIHRoZW4gcmVtb3ZlIEVuY29kaW5nOjpVVEZfMTYgYW5kIEVu Y29kaW5nOjpVVEZfMzIgKGR1bW15IGVuY29kaW5ncykuDQpBbmQgdGhlbiB3ZSBubyBsb25nZXIg bmVlZCBgZ2V0X2FjdHVhbF9lbmNvZGluZygpYCBhbmQgdGhlIG92ZXJoZWFkIGl0IGFkZHMgdG8g ZXZlcnkgU3RyaW5nIG1ldGhvZC4NCg0KV2UgY291bGQgYWxzbyBrZWVwIHRob3NlIGNvbnN0YW50 cyBhbmQgbWFrZSB0aGVtIHJlZmVyIHRoZSBuYXRpdmUtZW5kaWFuIFVURi0xNi8zMi4NCkJ1dCB0 aGF0IGNvdWxkIGNhdXNlIGNvbmZ1c2luZyBlcnJvcnMgYXMgd2Ugd291bGQgY2hhbmdlIHRoZSBt ZWFuaW5nIG9mIHRoZW0uDQpXZSBjb3VsZCBhZGQgYEVuY29kaW5nOjpVVEZfMTZORWAgLyBgRW5j b2Rpbmc6OlVURl8xNl9OQVRJVkVfRU5ESUFOYCBpZiB0aGF0IGlzIHVzZWZ1bC4NCg0KQW5vdGhl ciBwb3NzaWJpbGl0eSB3b3VsZCBiZSB0byByZXNvbHZlIHRoZXNlIGVuY29kaW5ncyBvbiBTdHJp bmcgY3JlYXRpb24sIGxpa2U6DQpgYGANCiJceEZGXHhGRSIuZm9yY2VfZW5jb2RpbmcoIlVURi0x NiIpLmVuY29kaW5nICMgPT4gVVRGLTE2TEUNClN0cmluZy5uZXcoIlx4RkZceEZFIiwgZW5jb2Rp bmc6IEVuY29kaW5nOjpVVEZfMTYpLmVuY29kaW5nICMgPT4gVVRGLTE2TEUNCiJhYiIuZm9yY2Vf ZW5jb2RpbmcoIlVURi0xNiIpLmVuY29kaW5nICMgZXhjZXB0aW9uLCBub3QgYSBCT00NClN0cmlu Zy5uZXcoImFiIiwgZW5jb2Rpbmc6IEVuY29kaW5nOjpVVEZfMTYpLmVuY29kaW5nICMgZXhjZXB0 aW9uLCBub3QgYSBCT00NCmBgYA0KSSB0aGluayBpdCBpcyB1bm5lY2Vzc2FyeSB0byBrZWVwIHN1 Y2ggY29tcGxleGl0eSB0aG91Z2guDQpBIGNsYXNzIG1ldGhvZCBvbiBTdHJpbmcgb3IgRW5jb2Rp bmcgbGlrZSBlLmcuIGBFbmNvZGluZy5maW5kX2Zyb21fYm9tKHN0cmluZylgIGlzIHNvIG11Y2gg Y2xlYXJlciBhbmQgZWZmaWNpZW50IChubyBuZWVkIHRvIHNwZWNpYWwgY2FzZSB0aG9zZSBlbmNv ZGluZ3MgaW4gU3RyaW5nLm5ldywgI2ZvcmNlX2VuY29kaW5nLCBldGMpLg0KDQpGV0lXIEpSdWJ5 IHNlZW1zIHRvIHVzZSBgZ2V0QWN0dWFsRW5jb2RpbmcoKWAgb25seSBpbiAyIHBsYWNlcyAoc2Nh bkZvckNvZGVSYW5nZSwgaW5zcGVjdCksIHdoaWNoIGlzIGFuIGluZGljYXRpb24gdGhvc2UgZHVt bXkgVVRGIGVuY29kaW5ncyBhcmUgYmFyZWx5IHVzZWQgaWYgZXZlci4gU2ltaWxhcmx5LCBUcnVm ZmxlUnVieSBvbmx5IGhhcyA0IHVzYWdlcyBvZiBgR2V0QWN0dWFsRW5jb2RpbmdOb2RlYC4NCg0K IyMjIEV4aXN0aW5nIGR1bW15IGVuY29kaW5ncw0KDQpgYGANCj4gRW5jb2RpbmcubGlzdC5zZWxl Y3QoJjpkdW1teT8pIA0KWyM8RW5jb2Rpbmc6VVRGLTE2IChkdW1teSk+LCAgIzxFbmNvZGluZzpV VEYtMzIgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJQk0wMzcgKGR1bW15KT4sICM8RW5jb2Rpbmc6 VVRGLTcgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJU08tMjAyMi1KUCAoZHVtbXkpPiwgIzxFbmNv ZGluZzpJU08tMjAyMi1KUC0yIChkdW1teSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLUtEREkg KGR1bW15KT4sDQogIzxFbmNvZGluZzpDUDUwMjIwIChkdW1teSk+LCAjPEVuY29kaW5nOkNQNTAy MjEgKGR1bW15KT5dDQpgYGANCg0KU28gYmVzaWRlcyBVVEYtMTYvVVRGLTMyIGR1bW15LCBpdCdz IG9ubHkgNyBlbmNvZGluZ3MuDQpEb2VzIGFueW9uZSB1c2Ugb25lIG9mIHRoZXNlIDcgZHVtbXkg ZW5jb2RpbmdzPw0KDQpXaGF0IGlzIGludGVyZXN0aW5nIHRvIG5vdGUsIGlzIHRoYXQgdGhlc2Ug ZW5jb2RpbmdzIGFyZSBleGFjdGx5IHRoZSBvbmVzIHRoYXQgYXJlIGFsc28gbm90IEFTQ0lJLWNv bXBhdGlibGUsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBVVEYtMTZCRS9VVEYtMTZMRS9VVEYtMzJC RS9VVEYtMzJMRSAobm9uLWR1bW15KS4NCkFzIGEgbm90ZSwgVVRGLXsxNiwzMn17QkUsTEV9IGFy ZSBBU0NJSS1jb21wYXRpYmxlIGluIGNvZGVwb2ludHMgYnV0IG5vdCBpbiBieXRlcywgYW5kIFJ1 YnkgdXNlcyB0aGUgYnl0ZXMgZGVmaW5pdGlvbiBvZiBBU0NJSS1jb21wYXRpYmxlLg0KVGhlcmUg aXMgcG90ZW50aWFsIHRvIHNpbXBsaWZ5IGVuY29kaW5nIGNvbXBhdGliaWxpdHkgcnVsZXMgYW5k IGVuY29kaW5nIGNvbXBhdGliaWxpdHkgY2hlY2tzIGJhc2VkIG9uIHRoYXQuDQpTbyB3aGF0IHRo aXMgbWVhbnMgaXMgaWYgd2UgcmVtb3ZlZCBkdW1teSBlbmNvZGluZ3MsIGFsbCBlbmNvZGluZ3Mg ZXhjZXB0IFVURi17MTYsMzJ9e0JFLExFfSB3b3VsZCBiZSBBU0NJSS1jb21wYXRpYmxlLCB3aGlj aCB3b3VsZCBsZWFkIHRvIHNpZ25pZmljYW50IHNpbXBsaWZpY2F0aW9ucyBmb3IgbWFueSBzdHJp bmcgb3BlcmF0aW9ucyB3aGljaCBjdXJyZW50bHkgbmVlZCB0byBoYW5kbGUgZHVtbXkgZW5jb2Rp bmdzIHNwZWNpYWxseS4NClVuaWNvZGUgZW5jb2RpbmdzIGxpa2UgVVRGLXsxNiwzMn17QkUsTEV9 IGFscmVhZHkgaGF2ZSBzcGVjaWFsIGJlaGF2aW9yIGZvciBzb21lIFJ1YnkgbWV0aG9kcywgc28g dGhvc2UgYXJlIGFscmVhZHkgaGFuZGxlZCBzcGVjaWFsbHkgaW4gc29tZSBwbGFjZXMgKHRoZXkg YXJlIHRoZSBvbmx5IGVuY29kaW5ncyB3aXRoIG1pbkxlbmd0aCA+IDEpLg0KDQpgYGANCj4gRW5j b2RpbmcubGlzdC5yZWplY3QoJjphc2NpaV9jb21wYXRpYmxlPykNClsjPEVuY29kaW5nOlVURi0x NkJFPiwgIzxFbmNvZGluZzpVVEYtMTZMRT4sDQogIzxFbmNvZGluZzpVVEYtMzJCRT4sICM8RW5j b2Rpbmc6VVRGLTMyTEU+LA0KICM8RW5jb2Rpbmc6VVRGLTE2IChkdW1teSk+LCAjPEVuY29kaW5n OlVURi0zMiAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklCTTAzNyAoZHVtbXkpPiwgIzxFbmNvZGlu ZzpVVEYtNyAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklTTy0yMDIyLUpQIChkdW1teSk+LCAjPEVu Y29kaW5nOklTTy0yMDIyLUpQLTIgKGR1bW15KT4sICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAtS0RE SSAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOkNQNTAyMjAgKGR1bW15KT4sICM8RW5jb2Rpbmc6Q1A1 MDIyMSAoZHVtbXkpPl0NCmBgYA0KDQpXaGF0IGNhbiB3ZSBkbyB3aXRoIHN1Y2ggYSBkdW1teSBu b24tQVNDSUktY29tcGF0aWJsZSBlbmNvZGluZz8NCkFsbW9zdCBub3RoaW5nIHVzZWZ1bDoNCmBg YHJ1YnkNCnMgPSAiYWJjIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAiXHg4MVx4ODJceDgzIg0KPiBz LmJ5dGVzDQo9PiBbMTI5LCAxMzAsIDEzMV0NCj4gcy5jb2RlcG9pbnRzDQo9PiBbMTI5LCAxMzAs IDEzMV0NCj4gcyA9PSAiYWJjIg0KPT4gZmFsc2UNCj4gIsOpdMOpIi5lbmNvZGUoIklCTTAzNyIp DQo9PiAiXHg1MVx4QTNceDUxIg0KYGBgDQoNClNvIGFib3V0IHRoZSBvbmx5IHRoaW5nIHRoYXQg d29ya3Mgd2l0aCB0aGVtIGlzIGBTdHJpbmcjZW5jb2RlYC4NCg0KSSB0aGluayB3ZSBjb3VsZCBw cmVzZXJ2ZSB0aGF0IGZ1bmN0aW9uYWxpdHksIGlmIGFjdHVhbGx5IHVzZWQgKGRvZXMgYW55b25l IHVzZSBvbmUgb2YgdGhlc2UgNyBkdW1teSBlbmNvZGluZ3M/KSwgdGhyb3VnaDoNCmBgYHJ1YnkN Cj4gIsOpdMOpIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAiXHg1MVx4QTNceDUxIiAoLmVuY29kaW5n ID09IEJJTkFSWSkNCj4gIlx4NTFceEEzXHg1MSIuZW5jb2RlKCJVVEYtOCIsICJJQk0wMzciKSAj IGVuY29kZSBmcm9tIElCTTAzNyB0byBVVEYtOA0KPT4gIsOpdMOpIiAoLmVuY29kaW5nID09IFVU Ri04KQ0KYGBgDQoNClRoYXQgd2F5IHRoZXJlIGlzIG5vIG5lZWQgZm9yIHRob3NlIHRvIGJlIEVu Y29kaW5nIGluc3RhbmNlcywgd2Ugd291bGQgb25seSBuZWVkIHRoZSBjb252ZXJzaW9uIHRhYmxl cy4NCg0KSXQgaXMgZXZlbiBiZXR0ZXIgaWYgd2UgY2FuIHJlbW92ZSB0aGVtLCBzbyB0aGUgbm90 aW9uIG9mICJkdW1teSBlbmNvZGluZ3MiIGNhbiBkaXNhcHBlYXIgY29tcGxldGVseSBhbmQgbm9i b2R5IG5lZWRzIHRvIHVuZGVyc3RhbmQgb3IgaW1wbGVtZW50IHRoZW0uDQoNCiMjIyByYl9kZWZp bmVfZHVtbXlfZW5jb2RpbmcobmFtZSkNCg0KVGhlIEMtQVBJIGhhcyBgcmJfZGVmaW5lX2R1bW15 X2VuY29kaW5nKGNvbnN0IGNoYXIgKm5hbWUpYC4NClRoaXMgY3JlYXRlcyBhIG5ldyBFbmNvZGlu ZyBpbnN0YW5jZSB3aXRoIGBkdW1teT89dHJ1ZWAsIGFuZCBpdCBpcyBhbHNvIG5vbi1BU0NJSS1j b21wYXRpYmxlLg0KVGhlcmUgc2VlbXMgdG8gYmUgbm8gcHVycG9zZSB0byB0aGlzIGJlc2lkZXMg c3RvcmluZyB0aGUgbWV0YWRhdGEgb2YgYW4gZW5jb2Rpbmcgd2hpY2ggZG9lcyBub3QgZXhpc3Qg aW4gUnVieS4NClRoaXMgc2VlbXMgYSByZWFsbHkgZXhwZW5zaXZlL2NvbXBsZXggd2F5IHRvIGhh bmRsZSB0aGF0IGZyb20gdGhlIFZNIHBvaW50IG9mIHZpZXcgKGJlY2F1c2UgaXQgZHluYW1pY2Fs bHkgY3JlYXRlcyBhbiBFbmNvZGluZyBhbmQgYWRkIGl0IHRvIGxpc3RzL21hcHMvZXRjKS4NCkEg c2ltcGxlIHJlcGxhY2VtZW50IHdvdWxkIGJlIHRvIG1hcmsgdGhlIFN0cmluZyBhcyBCSU5BUlkg YW5kIHNhdmUgdGhlIGVuY29kaW5nIG5hbWUgYXMgYW4gaW5zdGFuY2UgdmFyaWFibGUgb2YgdGhh dCBTdHJpbmcuDQpTaW5jZSBhbnl3YXkgUnVieSBjYW4ndCB1bmRlcnN0YW5kIGFueXRoaW5nIGFi b3V0IHRoYXQgU3RyaW5nLCBpdCdzIGp1c3QgcmF3IGJ5dGVzIHRvIFJ1YnkncyBleWVzLg0KDQoj IyBTdW1tYXJ5DQoNCkkgc3VnZ2VzdCB3ZSBkZXByZWNhdGUgcmVwbGljYXRlIGFuZCBkdW1teSBl bmNvZGluZ3MgaW4gUnVieSAzLjIuDQpBbmQgdGhlbiB3ZSByZW1vdmUgdGhlbSBpbiB0aGUgbmV4 dCB2ZXJzaW9uLg0KDQpUaGlzIHdpbGwgc2lnbmlmaWNhbnRseSBzaW1wbGlmeSBzdHJpbmctcmVs YXRlZCBtZXRob2RzLCBhbmQgdGhlIGJlaGF2aW9yIGV4cG9zZWQgdG8gUnVieSB1c2Vycy4NCg0K SXQgd2lsbCBhbHNvIHNpZ25pZmljYW50bHkgc3BlZWR1cCBlbmNvZGluZyBsb29rdXAgaW4gQ1J1 YnkgKGFuZCBvdGhlciBSdWJ5IGltcGxlbWVudGF0aW9ucykuDQpXaXRoIGEgZml4ZWQgbnVtYmVy IG9mIGVuY29kaW5ncyB3ZSBjYW4gZW5zdXJlIGFsbCBlbmNvZGluZyBpbmRpY2VzIGZpdCBpbiA3 IGJpdHMsIGFuZCBgRU5DT0RJTkdfR0VUYCBjYW4gYmUgc2ltcGx5IGBSQl9FTkNPRElOR19HRVRf SU5MSU5FRGAuDQpgZ2V0X2FjdHVhbF9lbmNvZGluZygpYCB3aWxsIGJlIGdvbmUgYW5kIGl0cyBv dmVyaGVhZCBhcyB3ZWxsLg0KYHJiX2VuY19mcm9tX2luZGV4KClgIHdvdWxkIGJlIGp1c3QgYHJl dHVybiBnbG9iYWxfZW5jX3RhYmxlLT5saXN0W2luZGV4XS5lbmM7YCwgaW5zdGVhZCBvZiB0aGUg ZXhwZW5zaXZlIGJlaGF2aW9yIGN1cnJlbnRseSB3aXRoIGBHTE9CQUxfRU5DX1RBQkxFX0VWQUxg IHdoaWNoIHRha2VzIGEgbG9jayBhbmQgbW9yZSB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBSYWN0 b3JzLg0KTWFueSBjaGVja3MgaW4gdGhlc2UgbWV0aG9kcyB3b3VsZCBiZSByZW1vdmVkIGFzIHdl bGwuDQpZZXQgYW5vdGhlciBpbXByb3ZlbWVudCB3b3VsZCBiZSB0byBsb2FkIGFsbCBlbmNvZGlu Z3MgZWFnZXJseSwgdGhhdCBpcyBzbWFsbCBhbmQgZmFzdCBpbiBteSBleHBlcmllbmNlLCB3aGF0 IGlzIHNsb3cgYW5kIGJpZyBpcyB0aGUgY29udmVyc2lvbiB0YWJsZXMsIHRoYXQnZCBzaW1wbGlm eSBgbXVzdF9lbmNpbmRleCgpYCBmdXJ0aGVyLg0KVGhlc2UgY2hhbmdlcyB3b3VsZCBhZmZlY3Qg bW9zdCBTdHJpbmcgbWV0aG9kcywgd2hpY2ggdXNlDQpgYGANClNUUl9FTkNfR0VULT5nZXRfZW5j b2Rpbmcgd2hpY2ggZG9lczoNCiAgZ2V0X2FjdHVhbF9lbmNvZGluZy0+cmJfZW5jX2Zyb21faW5k ZXggYW5kIHBvc3NpYmx5IC0+ZW5jX2Zyb21faW5kZXgNCiAgRU5DT0RJTkdfR0VULT5SQl9FTkNP RElOR19HRVRfSU5MSU5FRCBhbmQgcG9zc2libHkgLT5yYl9lbmNfZ2V0X2luZGV4LT5lbmNfZ2V0 X2luZGV4X3N0ci0+cmJfYXR0cl9nZXQNCmBgYA0KU29tZSBvZiB0aGVzZSBkZXRhaWxzIGFyZSBt ZW50aW9uZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzYwOTUjZGlzY3Vz c2lvbl9yOTE1MTQ5NzA4Lg0KVGhlIG92ZXJoZWFkIGlzIHNvIGxhcmdlIHRoYXQgaXQgaXMgd29y dGggaGFuZGxpbmcgc29tZSBoYXJkY29kZWQgZW5jb2RpbmcgaW5kaWNlcyBkaXJlY3RseSBpbiBT dHJpbmcgbWV0aG9kcy4NClRoaXMgZmVlbHMgd3JvbmcsIGdldHRpbmcgdGhlIGVuY29kaW5nIGZy b20gYSBTdHJpbmcgc2hvdWxkIGJlIHNpbXBsZSwgc3RyYWlnaHRmb3J3YXJkIGFuZCBmYXN0Lg0K DQpGdXJ0aGVyIG9wdGltaXphdGlvbnMgd2lsbCBiZSB1bmxvY2tlZCBhcyB0aGUgZW5jb2Rpbmcg bGlzdCBiZWNvbWVzIGZpeGVkIGFuZCBpbW11dGFibGUuDQpGb3IgZXhhbXBsZSwgdGhlIG5hbWUt dG8tRW5jb2RpbmcgbWFwIGlzIHRoZW4gaW1tdXRhYmxlIGFuZCBjb3VsZCB1c2UgcGVyZmVjdCBo YXNoaW5nLg0KSW5saW5lIGNhY2hpbmcgdGhvc2UgbG9va3VwcyBhbHNvIGJlY29tZXMgZWFzaWVy IGFzIHRoZSB0aGUgbWFwIGNhbm5vdCBjaGFuZ2UuDQpBbHNvIHRoYXQgbWFwIHdvdWxkIG5vIGxv bmdlciBuZWVkIHN5bmNocm9uaXphdGlvbiwgZXRjLg0KDQojIyBUbyBEZWNpZGUNCg0KRWFjaCBp dGVtIGlzIGluZGVwZW5kZW50LiBJIHRoaW5rIDEgJiAyIGFyZSB2ZXJ5IGltcG9ydGFudCwgMyBs ZXNzIGJ1dCB3b3VsZCBiZSBuaWNlLg0KDQoxLiBEZXByZWNhdGUgYW5kIHRoZW4gcmVtb3ZlIGBF bmNvZGluZyNyZXBsaWNhdGVgIGFuZCBgcmJfZGVmaW5lX2R1bW15X2VuY29kaW5nKClgLiBXaXRo IHRoYXQgdGhlcmUgaXMgYSBmaXhlZCBudW1iZXIgb2YgZW5jb2RpbmdzLCBhIGxvdCBvZiBzaW1w bGlmaWNhdGlvbnMgYW5kIG1hbnkgb3B0aW1pemF0aW9ucyBiZWNvbWUgYXZhaWxhYmxlLiBUaGV5 IGFyZSB1c2VkIHJlc3BlY3RpdmVseSBpbiBvbmx5IDEgZ2VtIGFuZCA1IGdlbXMsIHNlZSBodHRw czovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTg5NDkjbm90ZS00DQoyLiBEZXByZWNhdGUg YW5kIHRoZW4gcmVtb3ZlIHRoZSBkdW1teSBVVEYtMTYgYW5kIFVURi0zMiBlbmNvZGluZ3MuIFRo aXMgcmVtb3ZlcyB0aGUgbmVlZCBmb3IgYGdldF9hY3R1YWxfZW5jb2RpbmcoKWAgd2hpY2ggaXMg ZXhwZW5zaXZlLiBUaGlzIGZ1bmN0aW9uYWxpdHkgc2VlbXMgcmFyZWx5IHVzZWQgaW4gcHJhY3Rp Y2UsIGFuZCBpdCBvbmx5IHdvcmtzIHdoZW4gc3VjaCBzdHJpbmdzIGhhdmUgYSBCT00sIHdoaWNo IGlzIHZlcnkgcmFyZS4NCjMuIERlcHJlY2F0ZSBhbmQgdGhlbiByZW1vdmUgb3RoZXIgZHVtbXkg ZW5jb2RpbmdzLCBzbyB0aGVyZSBhcmUgbm8gbW9yZSBkdW1teSAiaGFsZi1pbXBsZW1lbnRlZCIg ZW5jb2RpbmdzIGFuZCBhbGwgZW5jb2RpbmdzIGFyZSBBU0NJSS1jb21wYXRpYmxlIGluIHRlcm1z IG9mIGNvZGVwb2ludHMuDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0K