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_HI,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE,T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=ham 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 D33B91F54E for ; Mon, 8 Aug 2022 02:35:22 +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="yIkOX0pp"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id EC6641209D2; Mon, 8 Aug 2022 11:35:20 +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 ABCFF120F61 for ; Mon, 8 Aug 2022 11:35:17 +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=KEN+OOiq4g3tiyjfoColdZ18rHb8cVWvrKYdNgzqVmM=; b=yIkOX0pp30/6ca3lYYGLP3DZ85aQSpOBzBmaSx59yCd5snT3S4wf3lC/3iI5KANc7k4J 8NsTm+hcAdNsmCtL69d8BfFTEfNCBjWZbPuzhfCbqzk4bU/ouAlTGLVw5fpybTxRespY9U K6Q9OIvftDZoy16Pn2nAUNLEZGq5EYku8= Received: by filterdrecv-66b95c5ffd-6bxgx with SMTP id filterdrecv-66b95c5ffd-6bxgx-1-62F07663-24 2022-08-08 02:35:15.930820511 +0000 UTC m=+1492164.682512158 Received: from herokuapp.com (unknown) by geopod-ismtpd-1-2 (SG) with ESMTP id 9PwsRoxfSryZO4LUYcKNWw for ; Mon, 08 Aug 2022 02:35:15.910 +0000 (UTC) Date: Mon, 08 Aug 2022 02:35:15 +0000 (UTC) From: "nobu (Nobuyoshi Nakada)" 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: nobu 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: 85850 X-SG-EID: =?us-ascii?Q?rA5eEsXeCy+asKowYcicHxhOSUaOWYD+XnPnBc7LFC8Re9tNQ4Sv5BA=2FOz+glG?= =?us-ascii?Q?+50K4steq4vSjkkyeSAt=2FQpZK6mQgZdK22n=2FlxG?= =?us-ascii?Q?4Fre1CSS9pCejRQZp0bhjqo0fAi2ZfmF=2FuRbN5r?= =?us-ascii?Q?5z6Wg9=2FDrLzPRJ7gYgWcj0FvRnOkUeW2aC8zSWr?= =?us-ascii?Q?hKzZ7DgvBMU23fvEeS3ntxrMGMGRsERuiJvV3eY?= =?us-ascii?Q?h85KdXPRf=2FFK0fkSZsQPghzSq30l2xdtNZQDFQf?= =?us-ascii?Q?9W+HMO01AqU3UnDP455wQ=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109442 Subject: [ruby-core:109442] [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" SXNzdWUgIzE4OTQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbm9idSAoTm9idXlvc2hpIE5ha2FkYSku DQoNCg0KRXJlZ29uIChCZW5vaXQgRGFsb3plKSB3cm90ZToNCj4gUmVwbGljYXRlIGFuZCBkdW1t eSBlbmNvZGluZ3Mgc2VlbSB0byBjbGVhcmx5IGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LCBhbG1v c3Qgbm9ib2R5IHVzZXMgdGhlbSBidXQgdGhleSBhZGQgYSBzaWduaWZpY2FudCBjb21wbGV4aXR5 IGFuZCBhbHNvIGFkZCBhIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIG92ZXJoZWFkLg0KPiBOb3Rh Ymx5LCB0aGUgZXhpc3RlbmNlIG9mIHRob3NlIG1lYW5zIHRoZSBudW1iZXIgb2YgZW5jb2Rpbmdz IGluIGEgUnVieSBydW50aW1lIGlzIGFjdHVhbGx5IHZhcmlhYmxlIGFuZCBub3QgZml4ZWQuDQo+ IFRoYXQgbWVhbnMgZXh0cmEgc3luY2hyb25pemF0aW9uLCBoYXNodGFibGUgbG9va3VwcywgaW5k aXJlY3Rpb25zLCBmdW5jdGlvbiBjYWxscywgZXRjLg0KDQpUaGVzZSBhcmUgbm90IHJlbGF0ZWQg dG8gcmVwbGljYXRlL2R1bW15IGVuY29kaW5ncy4NCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMxODk0OTogRGVwcmVjYXRlIGFuZCByZW1vdmUg cmVwbGljYXRlIGFuZCBkdW1teSBlbmNvZGluZ3MNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3Jn L2lzc3Vlcy8xODk0OSNjaGFuZ2UtOTg1OTUNCg0KKiBBdXRob3I6IEVyZWdvbiAoQmVub2l0IERh bG96ZSkNCiogU3RhdHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClJ1YnkgaGFzIGEgbG90IG9mIGFjY2lkZW50YWwg Y29tcGxleGl0eS4NClNvbWV0aW1lcyBpdCBiZWNvbWVzIGNsZWFyIHNvbWUgZmVhdHVyZXMgYnJp bmcgYSBsb3Qgb2YgY29tcGxleGl0eSBhbmQgeWV0IHByb3ZpZGUgbGl0dGxlIHZhbHVlIG9yIGFy ZSB1c2VkIHZlcnkgcmFyZWx5Lg0KQWxzbyBtb3N0IFJ1YnkgdXNlcnMgZG8gbm90IGV2ZW4ga25v dyBhYm91dCB0aGVzZSBmZWF0dXJlcy4NClJlcGxpY2F0ZSBhbmQgZHVtbXkgZW5jb2RpbmdzIHNl ZW0gdG8gY2xlYXJseSBmYWxsIGludG8gdGhpcyBjYXRlZ29yeSwgYWxtb3N0IG5vYm9keSB1c2Vz IHRoZW0gYnV0IHRoZXkgYWRkIGEgc2lnbmlmaWNhbnQgY29tcGxleGl0eSBhbmQgYWxzbyBhZGQg YSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBvdmVyaGVhZC4NCk5vdGFibHksIHRoZSBleGlzdGVu Y2Ugb2YgdGhvc2UgbWVhbnMgdGhlIG51bWJlciBvZiBlbmNvZGluZ3MgaW4gYSBSdWJ5IHJ1bnRp bWUgaXMgYWN0dWFsbHkgdmFyaWFibGUgYW5kIG5vdCBmaXhlZC4NClRoYXQgbWVhbnMgZXh0cmEg c3luY2hyb25pemF0aW9uLCBoYXNodGFibGUgbG9va3VwcywgaW5kaXJlY3Rpb25zLCBmdW5jdGlv biBjYWxscywgZXRjLg0KDQojIyBSZXBsaWNhdGUgRW5jb2RpbmdzDQoNClJlcGxpY2F0ZSBlbmNv ZGluZ3MgYXJlIGNyZWF0ZWQgdXNpbmcgYEVuY29kaW5nI3JlcGxpY2F0ZShuYW1lKWAuDQpJdCBh bG1vc3Qgc291bmRzIGxpa2UgYW4gYWxpYXMgYnV0IGluIGZhY3QgaXQgaXMgbW9yZSB0aGFuIHRo YXQgYW5kIGNyZWF0ZXMgYSBuZXcgRW5jb2Rpbmcgb2JqZWN0LCB3aGljaCBjYW4gYmUgdXNlZCBi eSBhIFN0cmluZzoNCmBgYHJ1YnkNCmUgPSBFbmNvZGluZzo6VVNfQVNDSUkucmVwbGljYXRlKCdN WS1VUy1BU0NJSScpDQpzID0gImFiYyIuZm9yY2VfZW5jb2RpbmcoZSkNCnAgcy5lbmNvZGluZyAj ID0+IGUNCnAgcy5lbmNvZGluZy5uYW1lICMgPT4gJ01ZLVVTLUFTQ0lJJw0KYGBgDQoNClRoaXMg c2VlbXMgY29tcGxldGVseSB1c2VsZXNzLg0KVGhlcmUgaXMgYW4gb2J2aW91cyBmaXJzdCBzdGVw IGhlcmUgd2hpY2ggaXMgdG8gY2hhbmdlIGBFbmNvZGluZyNyZXBsaWNhdGVgIHRvIHJldHVybiB0 aGUgcmVjZWl2ZXIsIGFuZCBqdXN0IGluc3RhbGwgYW4gYWxpYXMgZm9yIGl0Lg0KVGhhdCBhdm9p ZHMgY3JlYXRpbmcgbW9yZSBlbmNvZGluZyBpbnN0YW5jZXMgbmVlZGxlc3NseS4NCg0KSSB0aGlu ayB3ZSBzaG91bGQgYWxzbyBkZXByZWNhdGUgYW5kIHJlbW92ZSB0aGlzIG1ldGhvZCB0aG91Z2gs IGl0IGlzIG5ldmVyIGEgZ29vZCBpZGVhIHRvIGhhdmUgYSBnbG9iYWwgbXV0YWJsZSBtYXAgbGlr ZSB0aGlzLg0KSWYgc29tZW9uZSB3YW50IGV4dHJhIGFsaWFzZXMgZm9yIGVuY29kaW5ncywgdGhl eSBjYW4gZWFzaWx5IHRvIGRvIHNvIGJ5IGhhdmluZyB0aGVpciBvd24gSGFzaDogYHsgYWxpYXMg PT4gZW5jb2RpbmcgfS5mZXRjaChuYW1lKSB7IEVuY29kaW5nLmZpbmQobmFtZSkgfWAuDQoNCiMj IER1bW15IEVuY29kaW5ncw0KDQpEdW1teSBlbmNvZGluZ3MgYXJlIG5vdCByZWFsIGVuY29kaW5n cy4gVGhleSBhcmUgYXJ0aWZpY2lhbCBlbmNvZGluZ3MgZGVzaWduZWQgdG8gbG9vayBsaWtlIGVu Y29kaW5ncywgYnV0IGRvbid0IGZ1bmN0aW9uIGFzIGVuY29kaW5ncyBpbiBSdWJ5Lg0KRnJvbSB0 aGUgZG9jczoNCmBgYA0KZW5jLmR1bW15PyAtPiB0cnVlIG9yIGZhbHNlDQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NClJldHVybnMgdHJ1ZSBmb3IgZHVtbXkgZW5jb2RpbmdzLiBBIGR1bW15IGVuY29kaW5nIGlz IGFuIGVuY29kaW5nIGZvcg0Kd2hpY2ggY2hhcmFjdGVyIGhhbmRsaW5nIGlzIG5vdCBwcm9wZXJs eSBpbXBsZW1lbnRlZC4gSXQgaXMgdXNlZCBmb3INCnN0YXRlZnVsIGVuY29kaW5ncy4NCmBgYA0K DQpJIHdvbmRlciB3aHkgd2UgaGF2ZSB0aG9zZSBoYWxmLWltcGxlbWVudGVkIGVuY29kaW5ncyBp biBjb3JlLCBpdCBzb3VuZHMgdG8gbWUgbGlrZSB1bmZpbmlzaGVkIHdvcmsgd2hpY2ggc2hvdWxk IG5vdCBoYXZlIGJlZW4gbWVyZ2VkLg0KDQpUaGUgImNvZGVwb2ludHMiIG9mIGR1bW15IGVuY29k aW5ncyBhcmUganVzdCAiYnl0ZXMiIGFuZCBzbyB0aGV5IGJlaGF2ZSB0aGUgc2FtZSBhcyBgRW5j b2Rpbmc6OkJJTkFSWWAsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgVVRGLTE2IGFuZCBVVEYt MzIgZHVtbXkgZW5jb2RpbmdzLg0KDQojIyMgVVRGLTE2IGFuZCBVVEYtMzIgZHVtbXkgZW5jb2Rp bmdzDQoNClRoZXNlIHR3byBhcmUgc3BlY2lhbCBkdW1teSBlbmNvZGluZ3MuDQpXaGF0IHRoZXkg ZG8gaXMgdGhleSBzY2FuIHRoZSBmaXJzdCAyIG9yIDQgYnl0ZXMgb2YgdGhlIFN0cmluZywgYW5k IGlmIHRob3NlIGJ5dGVzIGFyZSBhIGJ5dGUtb3JkZXIgbWFyayAoQk9NKSwNCnRoZSB0cnVlICJh Y3R1YWwiIGVuY29kaW5nIGlzIHJlc29sdmVkIHRvIFVURi0xNkJFL1VURi0xNkxFIG9yIFVURi0z MkJFL1VURi0zMkxFLg0KT3RoZXJ3aXNlLCBgRW5jb2Rpbmc6OkJJTkFSWWAgaXMgcmV0dXJuZWQu DQpUaGlzIGxvZ2ljIGlzIGRvbmUgYnkgYGdldF9hY3R1YWxfZW5jb2RpbmcoKWAuDQoNCldoYXQg aXMgd2VpcmQgaXMgdGhpcyBjaGVjayBpcyBub3QgZG9uZSBvbiBTdHJpbmcgY3JlYXRpb24sIG5v LCBpdCBpcyBkb25lICpldmVyeSB0aW1lKiB0aGUgZW5jb2Rpbmcgb2YgdGhhdCBTdHJpbmcgaXMg YWNjZXNzZWQgKGFuZCB0aGUgcmVzdWx0IGlzIG5vdCBzdG9yZWQgb24gdGhlIFN0cmluZykuDQpU aGF0IGlzIGEgbmVlZGxlc3Mgb3ZlcmhlYWQgYW5kIHJlYWxseSB1bnJlbGlhYmxlIHNlbWFudGlj cy4NCkRvIHdlIHJlYWxseSB3YW50IGEgU3RyaW5nIHdoaWNoIGF1dG9tYWdpY2FsbHkgY2hhbmdl cyBiZXR3ZWVuIFVURi0xNkxFIGFuZCBVVEYtMTZCRSBiYXNlZCBvbiBtdXRhdGluZyBpdHMgYnl0 ZXM/IEkgdGhpbmsgbm9ib2R5IHdhbnRzIHRoYXQ6DQpgYGBydWJ5DQpzID0gIlx4RkZceEZFYVx4 MDBiXHgwMGNceDAwZFx4MDAiLmZvcmNlX2VuY29kaW5nKCJVVEYtMTYiKQ0KcCBzICMgPT4gIlx1 RkVGRmFiY2QiDQpzLnNldGJ5dGUgMCwgMjU0DQpzLnNldGJ5dGUgMSwgMjU1DQpwIHMgIyA9PiAi XHVGRUZGXHU2MTAwXHU2MjAwXHU2MzAwXHU2NDAwIg0KYGBgDQoNCkkgdGhpbmsgdGhlIHBhdGgg aXMgY2xlYXIsIHdlIHNob3VsZCBkZXByZWNhdGUgYW5kIHRoZW4gcmVtb3ZlIEVuY29kaW5nOjpV VEZfMTYgYW5kIEVuY29kaW5nOjpVVEZfMzIgKGR1bW15IGVuY29kaW5ncykuDQpBbmQgdGhlbiB3 ZSBubyBsb25nZXIgbmVlZCBgZ2V0X2FjdHVhbF9lbmNvZGluZygpYCBhbmQgdGhlIG92ZXJoZWFk IGl0IGFkZHMgdG8gZXZlcnkgU3RyaW5nIG1ldGhvZC4NCg0KV2UgY291bGQgYWxzbyBrZWVwIHRo b3NlIGNvbnN0YW50cyBhbmQgbWFrZSB0aGVtIHJlZmVyIHRoZSBuYXRpdmUtZW5kaWFuIFVURi0x Ni8zMi4NCkJ1dCB0aGF0IGNvdWxkIGNhdXNlIGNvbmZ1c2luZyBlcnJvcnMgYXMgd2Ugd291bGQg Y2hhbmdlIHRoZSBtZWFuaW5nIG9mIHRoZW0uDQpXZSBjb3VsZCBhZGQgYEVuY29kaW5nOjpVVEZf MTZORWAgLyBgRW5jb2Rpbmc6OlVURl8xNl9OQVRJVkVfRU5ESUFOYCBpZiB0aGF0IGlzIHVzZWZ1 bC4NCg0KQW5vdGhlciBwb3NzaWJpbGl0eSB3b3VsZCBiZSB0byByZXNvbHZlIHRoZXNlIGVuY29k aW5ncyBvbiBTdHJpbmcgY3JlYXRpb24sIGxpa2U6DQpgYGANCiJceEZGXHhGRSIuZm9yY2VfZW5j b2RpbmcoIlVURi0xNiIpLmVuY29kaW5nICMgPT4gVVRGLTE2TEUNClN0cmluZy5uZXcoIlx4RkZc eEZFIiwgZW5jb2Rpbmc6IEVuY29kaW5nOjpVVEZfMTYpLmVuY29kaW5nICMgPT4gVVRGLTE2TEUN CiJhYiIuZm9yY2VfZW5jb2RpbmcoIlVURi0xNiIpLmVuY29kaW5nICMgZXhjZXB0aW9uLCBub3Qg YSBCT00NClN0cmluZy5uZXcoImFiIiwgZW5jb2Rpbmc6IEVuY29kaW5nOjpVVEZfMTYpLmVuY29k aW5nICMgZXhjZXB0aW9uLCBub3QgYSBCT00NCmBgYA0KSSB0aGluayBpdCBpcyB1bm5lY2Vzc2Fy eSB0byBrZWVwIHN1Y2ggY29tcGxleGl0eSB0aG91Z2guDQpBIGNsYXNzIG1ldGhvZCBvbiBTdHJp bmcgb3IgRW5jb2RpbmcgbGlrZSBlLmcuIGBFbmNvZGluZy5maW5kX2Zyb21fYm9tKHN0cmluZylg IGlzIHNvIG11Y2ggY2xlYXJlciBhbmQgZWZmaWNpZW50IChubyBuZWVkIHRvIHNwZWNpYWwgY2Fz ZSB0aG9zZSBlbmNvZGluZ3MgaW4gU3RyaW5nLm5ldywgI2ZvcmNlX2VuY29kaW5nLCBldGMpLg0K DQpGV0lXIEpSdWJ5IHNlZW1zIHRvIHVzZSBgZ2V0QWN0dWFsRW5jb2RpbmcoKWAgb25seSBpbiAy IHBsYWNlcyAoc2NhbkZvckNvZGVSYW5nZSwgaW5zcGVjdCksIHdoaWNoIGlzIGFuIGluZGljYXRp b24gdGhvc2UgZHVtbXkgVVRGIGVuY29kaW5ncyBhcmUgYmFyZWx5IHVzZWQgaWYgZXZlci4gU2lt aWxhcmx5LCBUcnVmZmxlUnVieSBvbmx5IGhhcyA0IHVzYWdlcyBvZiBgR2V0QWN0dWFsRW5jb2Rp bmdOb2RlYC4NCg0KIyMjIEV4aXN0aW5nIGR1bW15IGVuY29kaW5ncw0KDQpgYGANCj4gRW5jb2Rp bmcubGlzdC5zZWxlY3QoJjpkdW1teT8pIA0KWyM8RW5jb2Rpbmc6VVRGLTE2IChkdW1teSk+LCAg IzxFbmNvZGluZzpVVEYtMzIgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJQk0wMzcgKGR1bW15KT4s ICM8RW5jb2Rpbmc6VVRGLTcgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJU08tMjAyMi1KUCAoZHVt bXkpPiwgIzxFbmNvZGluZzpJU08tMjAyMi1KUC0yIChkdW1teSk+LCAjPEVuY29kaW5nOklTTy0y MDIyLUpQLUtEREkgKGR1bW15KT4sDQogIzxFbmNvZGluZzpDUDUwMjIwIChkdW1teSk+LCAjPEVu Y29kaW5nOkNQNTAyMjEgKGR1bW15KT5dDQpgYGANCg0KU28gYmVzaWRlcyBVVEYtMTYvVVRGLTMy IGR1bW15LCBpdCdzIG9ubHkgNyBlbmNvZGluZ3MuDQpEb2VzIGFueW9uZSB1c2Ugb25lIG9mIHRo ZXNlIDcgZHVtbXkgZW5jb2RpbmdzPw0KDQpXaGF0IGlzIGludGVyZXN0aW5nIHRvIG5vdGUsIGlz IHRoYXQgdGhlc2UgZW5jb2RpbmdzIGFyZSBleGFjdGx5IHRoZSBvbmVzIHRoYXQgYXJlIGFsc28g bm90IEFTQ0lJLWNvbXBhdGlibGUsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBVVEYtMTZCRS9VVEYt MTZMRS9VVEYtMzJCRS9VVEYtMzJMRSAobm9uLWR1bW15KS4NCkFzIGEgbm90ZSwgVVRGLXsxNiwz Mn17QkUsTEV9IGFyZSBBU0NJSS1jb21wYXRpYmxlIGluIGNvZGVwb2ludHMgYnV0IG5vdCBpbiBi eXRlcywgYW5kIFJ1YnkgdXNlcyB0aGUgYnl0ZXMgZGVmaW5pdGlvbiBvZiBBU0NJSS1jb21wYXRp YmxlLg0KVGhlcmUgaXMgcG90ZW50aWFsIHRvIHNpbXBsaWZ5IGVuY29kaW5nIGNvbXBhdGliaWxp dHkgcnVsZXMgYW5kIGVuY29kaW5nIGNvbXBhdGliaWxpdHkgY2hlY2tzIGJhc2VkIG9uIHRoYXQu DQpTbyB3aGF0IHRoaXMgbWVhbnMgaXMgaWYgd2UgcmVtb3ZlZCBkdW1teSBlbmNvZGluZ3MsIGFs bCBlbmNvZGluZ3MgZXhjZXB0IFVURi17MTYsMzJ9e0JFLExFfSB3b3VsZCBiZSBBU0NJSS1jb21w YXRpYmxlLCB3aGljaCB3b3VsZCBsZWFkIHRvIHNpZ25pZmljYW50IHNpbXBsaWZpY2F0aW9ucyBm b3IgbWFueSBzdHJpbmcgb3BlcmF0aW9ucyB3aGljaCBjdXJyZW50bHkgbmVlZCB0byBoYW5kbGUg ZHVtbXkgZW5jb2RpbmdzIHNwZWNpYWxseS4NClVuaWNvZGUgZW5jb2RpbmdzIGxpa2UgVVRGLXsx NiwzMn17QkUsTEV9IGFscmVhZHkgaGF2ZSBzcGVjaWFsIGJlaGF2aW9yIGZvciBzb21lIFJ1Ynkg bWV0aG9kcywgc28gdGhvc2UgYXJlIGFscmVhZHkgaGFuZGxlZCBzcGVjaWFsbHkgaW4gc29tZSBw bGFjZXMgKHRoZXkgYXJlIHRoZSBvbmx5IGVuY29kaW5ncyB3aXRoIG1pbkxlbmd0aCA+IDEpLg0K DQpgYGANCj4gRW5jb2RpbmcubGlzdC5yZWplY3QoJjphc2NpaV9jb21wYXRpYmxlPykNClsjPEVu Y29kaW5nOlVURi0xNkJFPiwgIzxFbmNvZGluZzpVVEYtMTZMRT4sDQogIzxFbmNvZGluZzpVVEYt MzJCRT4sICM8RW5jb2Rpbmc6VVRGLTMyTEU+LA0KICM8RW5jb2Rpbmc6VVRGLTE2IChkdW1teSk+ LCAjPEVuY29kaW5nOlVURi0zMiAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklCTTAzNyAoZHVtbXkp PiwgIzxFbmNvZGluZzpVVEYtNyAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklTTy0yMDIyLUpQIChk dW1teSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLTIgKGR1bW15KT4sICM8RW5jb2Rpbmc6SVNP LTIwMjItSlAtS0RESSAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOkNQNTAyMjAgKGR1bW15KT4sICM8 RW5jb2Rpbmc6Q1A1MDIyMSAoZHVtbXkpPl0NCmBgYA0KDQpXaGF0IGNhbiB3ZSBkbyB3aXRoIHN1 Y2ggYSBkdW1teSBub24tQVNDSUktY29tcGF0aWJsZSBlbmNvZGluZz8NCkFsbW9zdCBub3RoaW5n IHVzZWZ1bDoNCmBgYHJ1YnkNCnMgPSAiYWJjIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAiXHg4MVx4 ODJceDgzIg0KPiBzLmJ5dGVzDQo9PiBbMTI5LCAxMzAsIDEzMV0NCj4gcy5jb2RlcG9pbnRzDQo9 PiBbMTI5LCAxMzAsIDEzMV0NCj4gcyA9PSAiYWJjIg0KPT4gZmFsc2UNCj4gIsOpdMOpIi5lbmNv ZGUoIklCTTAzNyIpDQo9PiAiXHg1MVx4QTNceDUxIg0KYGBgDQoNClNvIGFib3V0IHRoZSBvbmx5 IHRoaW5nIHRoYXQgd29ya3Mgd2l0aCB0aGVtIGlzIGBTdHJpbmcjZW5jb2RlYC4NCg0KSSB0aGlu ayB3ZSBjb3VsZCBwcmVzZXJ2ZSB0aGF0IGZ1bmN0aW9uYWxpdHksIGlmIGFjdHVhbGx5IHVzZWQg KGRvZXMgYW55b25lIHVzZSBvbmUgb2YgdGhlc2UgNyBkdW1teSBlbmNvZGluZ3M/KSwgdGhyb3Vn aDoNCmBgYHJ1YnkNCj4gIsOpdMOpIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAiXHg1MVx4QTNceDUx IiAoLmVuY29kaW5nID09IEJJTkFSWSkNCj4gIlx4NTFceEEzXHg1MSIuZW5jb2RlKCJVVEYtOCIs ICJJQk0wMzciKSAjIGVuY29kZSBmcm9tIElCTTAzNyB0byBVVEYtOA0KPT4gIsOpdMOpIiAoLmVu Y29kaW5nID09IFVURi04KQ0KYGBgDQoNClRoYXQgd2F5IHRoZXJlIGlzIG5vIG5lZWQgZm9yIHRo b3NlIHRvIGJlIEVuY29kaW5nIGluc3RhbmNlcywgd2Ugd291bGQgb25seSBuZWVkIHRoZSBjb252 ZXJzaW9uIHRhYmxlcy4NCg0KSXQgaXMgZXZlbiBiZXR0ZXIgaWYgd2UgY2FuIHJlbW92ZSB0aGVt LCBzbyB0aGUgbm90aW9uIG9mICJkdW1teSBlbmNvZGluZ3MiIGNhbiBkaXNhcHBlYXIgY29tcGxl dGVseSBhbmQgbm9ib2R5IG5lZWRzIHRvIHVuZGVyc3RhbmQgb3IgaW1wbGVtZW50IHRoZW0uDQoN CiMjIyByYl9kZWZpbmVfZHVtbXlfZW5jb2RpbmcobmFtZSkNCg0KVGhlIEMtQVBJIGhhcyBgcmJf ZGVmaW5lX2R1bW15X2VuY29kaW5nKGNvbnN0IGNoYXIgKm5hbWUpYC4NClRoaXMgY3JlYXRlcyBh IG5ldyBFbmNvZGluZyBpbnN0YW5jZSB3aXRoIGBkdW1teT89dHJ1ZWAsIGFuZCBpdCBpcyBhbHNv IG5vbi1BU0NJSS1jb21wYXRpYmxlLg0KVGhlcmUgc2VlbXMgdG8gYmUgbm8gcHVycG9zZSB0byB0 aGlzIGJlc2lkZXMgc3RvcmluZyB0aGUgbWV0YWRhdGEgb2YgYW4gZW5jb2Rpbmcgd2hpY2ggZG9l cyBub3QgZXhpc3QgaW4gUnVieS4NClRoaXMgc2VlbXMgYSByZWFsbHkgZXhwZW5zaXZlL2NvbXBs ZXggd2F5IHRvIGhhbmRsZSB0aGF0IGZyb20gdGhlIFZNIHBvaW50IG9mIHZpZXcgKGJlY2F1c2Ug aXQgZHluYW1pY2FsbHkgY3JlYXRlcyBhbiBFbmNvZGluZyBhbmQgYWRkIGl0IHRvIGxpc3RzL21h cHMvZXRjKS4NCkEgc2ltcGxlIHJlcGxhY2VtZW50IHdvdWxkIGJlIHRvIG1hcmsgdGhlIFN0cmlu ZyBhcyBCSU5BUlkgYW5kIHNhdmUgdGhlIGVuY29kaW5nIG5hbWUgYXMgYW4gaW5zdGFuY2UgdmFy aWFibGUgb2YgdGhhdCBTdHJpbmcuDQpTaW5jZSBhbnl3YXkgUnVieSBjYW4ndCB1bmRlcnN0YW5k IGFueXRoaW5nIGFib3V0IHRoYXQgU3RyaW5nLCBpdCdzIGp1c3QgcmF3IGJ5dGVzIHRvIFJ1Ynkn cyBleWVzLg0KDQojIyBTdW1tYXJ5DQoNCkkgc3VnZ2VzdCB3ZSBkZXByZWNhdGUgcmVwbGljYXRl IGFuZCBkdW1teSBlbmNvZGluZ3MgaW4gUnVieSAzLjIuDQpBbmQgdGhlbiB3ZSByZW1vdmUgdGhl bSBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KDQpUaGlzIHdpbGwgc2lnbmlmaWNhbnRseSBzaW1wbGlm eSBzdHJpbmctcmVsYXRlZCBtZXRob2RzLCBhbmQgdGhlIGJlaGF2aW9yIGV4cG9zZWQgdG8gUnVi eSB1c2Vycy4NCg0KSXQgd2lsbCBhbHNvIHNpZ25pZmljYW50bHkgc3BlZWR1cCBlbmNvZGluZyBs b29rdXAgaW4gQ1J1YnkgKGFuZCBvdGhlciBSdWJ5IGltcGxlbWVudGF0aW9ucykuDQpXaXRoIGEg Zml4ZWQgbnVtYmVyIG9mIGVuY29kaW5ncyB3ZSBjYW4gZW5zdXJlIGFsbCBlbmNvZGluZyBpbmRp Y2VzIGZpdCBpbiA3IGJpdHMsIGFuZCBgRU5DT0RJTkdfR0VUYCBjYW4gYmUgc2ltcGx5IGBSQl9F TkNPRElOR19HRVRfSU5MSU5FRGAuDQpgZ2V0X2FjdHVhbF9lbmNvZGluZygpYCB3aWxsIGJlIGdv bmUgYW5kIGl0cyBvdmVyaGVhZCBhcyB3ZWxsLg0KYHJiX2VuY19mcm9tX2luZGV4KClgIHdvdWxk IGJlIGp1c3QgYHJldHVybiBnbG9iYWxfZW5jX3RhYmxlLT5saXN0W2luZGV4XS5lbmM7YCwgaW5z dGVhZCBvZiB0aGUgZXhwZW5zaXZlIGJlaGF2aW9yIGN1cnJlbnRseSB3aXRoIGBHTE9CQUxfRU5D X1RBQkxFX0VWQUxgIHdoaWNoIHRha2VzIGEgbG9jayBhbmQgbW9yZSB3aGVuIHRoZXJlIGFyZSBt dWx0aXBsZSBSYWN0b3JzLg0KTWFueSBjaGVja3MgaW4gdGhlc2UgbWV0aG9kcyB3b3VsZCBiZSBy ZW1vdmVkIGFzIHdlbGwuDQpZZXQgYW5vdGhlciBpbXByb3ZlbWVudCB3b3VsZCBiZSB0byBsb2Fk IGFsbCBlbmNvZGluZ3MgZWFnZXJseSwgdGhhdCBpcyBzbWFsbCBhbmQgZmFzdCBpbiBteSBleHBl cmllbmNlLCB3aGF0IGlzIHNsb3cgYW5kIGJpZyBpcyB0aGUgY29udmVyc2lvbiB0YWJsZXMsIHRo YXQnZCBzaW1wbGlmeSBgbXVzdF9lbmNpbmRleCgpYCBmdXJ0aGVyLg0KVGhlc2UgY2hhbmdlcyB3 b3VsZCBhZmZlY3QgbW9zdCBTdHJpbmcgbWV0aG9kcywgd2hpY2ggdXNlDQpgYGANClNUUl9FTkNf R0VULT5nZXRfZW5jb2Rpbmcgd2hpY2ggZG9lczoNCiAgZ2V0X2FjdHVhbF9lbmNvZGluZy0+cmJf ZW5jX2Zyb21faW5kZXggYW5kIHBvc3NpYmx5IC0+ZW5jX2Zyb21faW5kZXgNCiAgRU5DT0RJTkdf R0VULT5SQl9FTkNPRElOR19HRVRfSU5MSU5FRCBhbmQgcG9zc2libHkgLT5yYl9lbmNfZ2V0X2lu ZGV4LT5lbmNfZ2V0X2luZGV4X3N0ci0+cmJfYXR0cl9nZXQNCmBgYA0KU29tZSBvZiB0aGVzZSBk ZXRhaWxzIGFyZSBtZW50aW9uZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxs LzYwOTUjZGlzY3Vzc2lvbl9yOTE1MTQ5NzA4Lg0KVGhlIG92ZXJoZWFkIGlzIHNvIGxhcmdlIHRo YXQgaXQgaXMgd29ydGggaGFuZGxpbmcgc29tZSBoYXJkY29kZWQgZW5jb2RpbmcgaW5kaWNlcyBk aXJlY3RseSBpbiBTdHJpbmcgbWV0aG9kcy4NClRoaXMgZmVlbHMgd3JvbmcsIGdldHRpbmcgdGhl IGVuY29kaW5nIGZyb20gYSBTdHJpbmcgc2hvdWxkIGJlIHNpbXBsZSwgc3RyYWlnaHRmb3J3YXJk IGFuZCBmYXN0Lg0KDQpGdXJ0aGVyIG9wdGltaXphdGlvbnMgd2lsbCBiZSB1bmxvY2tlZCBhcyB0 aGUgZW5jb2RpbmcgbGlzdCBiZWNvbWVzIGZpeGVkIGFuZCBpbW11dGFibGUuDQpGb3IgZXhhbXBs ZSwgdGhlIG5hbWUtdG8tRW5jb2RpbmcgbWFwIGlzIHRoZW4gaW1tdXRhYmxlIGFuZCBjb3VsZCB1 c2UgcGVyZmVjdCBoYXNoaW5nLg0KSW5saW5lIGNhY2hpbmcgdGhvc2UgbG9va3VwcyBhbHNvIGJl Y29tZXMgZWFzaWVyIGFzIHRoZSB0aGUgbWFwIGNhbm5vdCBjaGFuZ2UuDQpBbHNvIHRoYXQgbWFw IHdvdWxkIG5vIGxvbmdlciBuZWVkIHN5bmNocm9uaXphdGlvbiwgZXRjLg0KDQojIyBUbyBEZWNp ZGUNCg0KRWFjaCBpdGVtIGlzIGluZGVwZW5kZW50LiBJIHRoaW5rIDEgJiAyIGFyZSB2ZXJ5IGlt cG9ydGFudCwgMyBsZXNzIGJ1dCB3b3VsZCBiZSBuaWNlLg0KDQoxLiBEZXByZWNhdGUgYW5kIHRo ZW4gcmVtb3ZlIGBFbmNvZGluZyNyZXBsaWNhdGVgIGFuZCBgcmJfZGVmaW5lX2R1bW15X2VuY29k aW5nKClgLiBXaXRoIHRoYXQgdGhlcmUgaXMgYSBmaXhlZCBudW1iZXIgb2YgZW5jb2RpbmdzLCBh IGxvdCBvZiBzaW1wbGlmaWNhdGlvbnMgYW5kIG1hbnkgb3B0aW1pemF0aW9ucyBiZWNvbWUgYXZh aWxhYmxlLiBUaGV5IGFyZSB1c2VkIHJlc3BlY3RpdmVseSBpbiBvbmx5IDEgZ2VtIGFuZCA1IGdl bXMsIHNlZSBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTg5NDkjbm90ZS00DQoy LiBEZXByZWNhdGUgYW5kIHRoZW4gcmVtb3ZlIHRoZSBkdW1teSBVVEYtMTYgYW5kIFVURi0zMiBl bmNvZGluZ3MuIFRoaXMgcmVtb3ZlcyB0aGUgbmVlZCBmb3IgYGdldF9hY3R1YWxfZW5jb2Rpbmco KWAgd2hpY2ggaXMgZXhwZW5zaXZlLiBUaGlzIGZ1bmN0aW9uYWxpdHkgc2VlbXMgcmFyZWx5IHVz ZWQgaW4gcHJhY3RpY2UsIGFuZCBpdCBvbmx5IHdvcmtzIHdoZW4gc3VjaCBzdHJpbmdzIGhhdmUg YSBCT00sIHdoaWNoIGlzIHZlcnkgcmFyZS4NCjMuIERlcHJlY2F0ZSBhbmQgdGhlbiByZW1vdmUg b3RoZXIgZHVtbXkgZW5jb2RpbmdzLCBzbyB0aGVyZSBhcmUgbm8gbW9yZSBkdW1teSAiaGFsZi1p bXBsZW1lbnRlZCIgZW5jb2RpbmdzIGFuZCBhbGwgZW5jb2RpbmdzIGFyZSBBU0NJSS1jb21wYXRp YmxlIGluIHRlcm1zIG9mIGNvZGVwb2ludHMuDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5 LWxhbmcub3JnLw0K