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_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 13B2A1F54E for ; Sat, 30 Jul 2022 12:57:51 +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="crpWlqml"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 344C3120E51; Sat, 30 Jul 2022 21:57:48 +0900 (JST) Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by neon.ruby-lang.org (Postfix) with ESMTPS id EF00A120E2D for ; Sat, 30 Jul 2022 21:57:44 +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=fZ3gZPooVWBBKfq7QS5AX0RSh+xOXy6g8uwl4vBJbG0=; b=crpWlqmlsMcp6CV11nbprLT687KJg54cW98DWjT9NeOhup2wf18nT+HijLUaLekIHo2E Oj+5jFKUv89z6TD29rB+2AQDF5RWqdS367HOnyNgjJ76szqn/mkW+i4RjRm6Wk/n4ZDu7j TFBMCmz9iGklp8QQWN0PpaPkUMKfMVCsA= Received: by filterdrecv-66b95c5ffd-7qrd4 with SMTP id filterdrecv-66b95c5ffd-7qrd4-1-62E52AC6-24 2022-07-30 12:57:42.637580567 +0000 UTC m=+751945.152987071 Received: from herokuapp.com (unknown) by geopod-ismtpd-3-1 (SG) with ESMTP id HPGNw-N4QkC6rDfdZTadUg for ; Sat, 30 Jul 2022 12:57:42.594 +0000 (UTC) Date: Sat, 30 Jul 2022 12:57:42 +0000 (UTC) From: "Eregon (Benoit Daloze)" 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: Eregon 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: 85789 X-SG-EID: =?us-ascii?Q?DvL3W2Xo+Vk=2FeUn3F50L=2FNc8u9NqZCnbE0mXZHiyye4R1YZg=2FtAFc0SAFzpcS=2F?= =?us-ascii?Q?Zcr7BqPN=2FYCcMZBMITNeIci9STxYay0JAJWPbek?= =?us-ascii?Q?rFR+qWLE=2F50gvbfLYhIuLymJliGPIiBz2ltkw16?= =?us-ascii?Q?XyMw6LXAffNRuTHprIBuUFndSCPIq3DE=2FRSBVMu?= =?us-ascii?Q?YoX2hZELuoj=2Fxj41etie8gWkMN2Vq0jd=2FwBBFzT?= =?us-ascii?Q?J+tI=2FQNpJJdcm30tcXo6eUj15IgEjiH5tBNBFew?= =?us-ascii?Q?dYJuCfUM=2FSy8+HZ6tChGA=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109384 Subject: [ruby-core:109384] [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" SXNzdWUgIzE4OTQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4N Cg0KDQpJIGhhdmUgbG9va2VkIGF0IHVzYWdlIG9mIGBFbmNvZGluZyNyZXBsaWNhdGVgIGFuZCBg cmJfZGVmaW5lX2R1bW15X2VuY29kaW5nKClgLg0KDQpgRW5jb2RpbmcjcmVwbGljYXRlYCBzZWVt cyBvbmx5IHVzZWQgaW4gMSBDUnVieSB0ZXN0LCAxIHJ1Ynkvc3BlYyBmaWxlIGFuZCBleGFjdGx5 IDEgZ2VtICghKSwgdXNpbmcgdGhlIGNvbW1hbmQgYmVsb3c6DQpgYGANCiQgZ2VtLWNvZGVzZWFy Y2ggJ1wucmVwbGljYXRlXGInDQojIEkgcmVtb3ZlZCBpcnJlbGV2YW50IG1hdGNoZXMNCi9zcnYv Z2Vtcy9ydWJ5X2VuY29kaW5nX2lyb2hhLTAuMS4wL2xpYi9ydWJ5X2VuY29kaW5nX2lyb2hhLnJi OkVuY29kaW5nOjpBU0NJSV84QklULnJlcGxpY2F0ZSgiSVJPSEEiKQ0KYGBgDQpodHRwczovL2dp dGh1Yi5jb20vaW1hMXp1bWkvZW5jb2RpbmdfaXJvaGEgc2VlbXMgYSBkZW1vIGdlbSAoaXQncyBh IHNlbGYtbWFkZSBlbmNvZGluZywgbm90IGEgcmVhbCBvbmUpLCBmcm9tIHdoYXQgSSB1bmRlcnN0 YW5kIG5vdCBzb21ldGhpbmcgc2VyaW91cy4NClRoZXJlIHdhcyBhIHRhbGsgcmVsYXRlZCB0byBp dCBhdCBSdWJ5S2FpZ2kgMjAyMTogaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vaW1hMXp1bWkvZGl2 ZS1pbnRvLWVuY29kaW5nDQpUaGUgLnJlcGxpY2F0ZSBjYWxsIGlzIFtubyBsb25nZXIgdXNlZCBp biBsYXRlc3QgYG1haW5gXShodHRwczovL2dpdGh1Yi5jb20vaW1hMXp1bWkvZW5jb2RpbmdfaXJv aGEvYmxvYi9tYWluL2xpYi9lbmNvZGluZ19pcm9oYS5yYikuDQpUaGF0IGdlbSB1c2VzIGByYl9l bmNkYl9yZXBsaWNhdGUoKWAsIGByYl9kZWNsYXJlX3RyYW5zY29kZXIoKWAgYW5kIGByYl9yZWdp c3Rlcl90cmFuc2NvZGVyKClgIHdoaWNoIGFyZSBwcml2YXRlIEFQSXMuDQpgcmJfZW5jZGJfcmVw bGljYXRlKClgIGlzIG9ubHkgdXNlZCBieSB0aGlzIGdlbS4NClRvIHN1cHBvcnQgbmV3IGVuY29k aW5ncyBwcm9wZXJseSwgdGhleSBzaG91bGQgYmUgYWRkZWQgdG8gUnVieSwgW2V4YW1wbGVdKGh0 dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8zODAzKS4gVGhpcyBoYXMgYmVlbiBkb25l IG11bHRpcGxlIHRpbWVzIGFscmVhZHkgKENFU1UtOCwgSUJNNzIwKS4NCg0KLS0tDQoNCmByYl9k ZWZpbmVfZHVtbXlfZW5jb2RpbmcoKWAgaXMgdXNlZCBpbiBqdXN0IGEgZmV3IGdlbXM6DQpgYGAN CiQgZ2VtLWNvZGVzZWFyY2ggcmJfZGVmaW5lX2R1bW15X2VuY29kaW5nDQojIEkgcmVtb3ZlZCBy ZWR1bmRhbnQgbWF0Y2hlcyBhbmQgbWF0Y2hlcyBmcm9tIENSdWJ5IC8qLmMgYW5kIGhlYWRlciBm aWxlcw0KL3Nydi9nZW1zL2piZXJrZWwtbXlzcWwtcnVieS0yLjguMS9leHQvbXlzcWwuYzoJZW5j X2luZGV4ID0gcmJfZGVmaW5lX2R1bW15X2VuY29kaW5nKGFsaWFzZXNbMF0pOw0KL3Nydi9nZW1z L25rZi0wLjEuMS9leHQvbmtmL25rZi5jOgkgICAgaWR4ID0gcmJfZGVmaW5lX2R1bW15X2VuY29k aW5nKG5hbWUpOw0KL3Nydi9nZW1zL3BnLTEuNC4yL2V4dC9wZy5jOgllbmNfaW5kZXggPSByYl9k ZWZpbmVfZHVtbXlfZW5jb2RpbmcoYWxpYXNlc1swXSk7DQovc3J2L2dlbXMvdGstMC40LjAvZXh0 L3RrL3RjbHRrbGliLmM6ICBpZiAoUlRFU1QocmJfZGVmaW5lX2R1bW15X2VuY29kaW5nKFJTVFJJ TkdfUFRSKG5hbWUpKSkpIHsNCi9zcnYvZ2Vtcy93aW4zMm9sZS0xLjguOC9leHQvd2luMzJvbGUv d2luMzJvbGUuYzoJaWR4ID0gcmJfZGVmaW5lX2R1bW15X2VuY29kaW5nKGVuY19jc3RyKTsNCmBg YA0KDQpTbyB0aGF0IGlzIGp1c3QgNSB1bmlxdWUgdXNhZ2VzIG9mIGByYl9kZWZpbmVfZHVtbXlf ZW5jb2RpbmcoKWAgYW1vbmcgYWxsIHB1YmxpYyBnZW1zLg0KKiBbamJlcmtlbC1teXNxbC1ydWJ5 XShodHRwczovL3J1YnlnZW1zLm9yZy9nZW1zL2piZXJrZWwtbXlzcWwtcnVieSkgc2VlbXMgdG8g YmUgYW4gb2xkIHZlcnNpb24gb2YgW3J1YnktbXlzcWxdKGh0dHBzOi8vZ2l0aHViLmNvbS90bXRt L3J1YnktbXlzcWwpLCB3aGljaCBubyBsb25nZXIgdXNlcyBgcmJfZGVmaW5lX2R1bW15X2VuY29k aW5nKClgLg0KKiBua2YgY2FsbHMgaXQgaW4gW2ByYl9ua2ZfZW5jX2dldCgpYF0oaHR0cHM6Ly9n aXRodWIuY29tL3J1YnkvbmtmL2Jsb2IvYjBkOGI1NDkzY2NkYWM5YWE5NjZjODJjZTYxNDgwMWY1 MDdhMWMwNi9leHQvbmtmL25rZi5jI0w2NCkuIGByYl9ua2ZfZW5jX2dldCgpYCBzZWVtcyBvbmx5 IGNhbGxlZCB3aXRoIGVuY29kaW5ncyB0aGF0IFJ1Ynkga25vd3MsIHNvIHRoZSBgcmJfZGVmaW5l X2R1bW15X2VuY29kaW5nKClgIGNhbGwgc2VlbXMgZGVhZC91bnJlYWNoYWJsZSBjb2RlLg0KICBJ IG5vdGUgaXQgZG9lcyByZWZlciB0byB0aGUgZXhpc3RpbmcgZHVtbXkgQ1A1MDIyMC9DUDUwMjIx IGVuY29kaW5nczogW2NvZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L25rZi9ibG9iL2IwZDhi NTQ5M2NjZGFjOWFhOTY2YzgyY2U2MTQ4MDFmNTA3YTFjMDYvZXh0L25rZi9ua2YtdXRmOC9ua2Yu YyNMNDU4My1MNDU4NikNCiogYHBnYCB1c2VzIGl0IHRvIFtjcmVhdGUgdGhlIEpPSEFCIGVuY29k aW5nXShodHRwczovL2dpdGh1Yi5jb20vZ2VkL3J1YnktcGcvYmxvYi9mYzkzOWY1ZTAxNTc3ODA5 OGQ5YTY3ZDQwZmZkNTBmODUzZTEzMjFmL2V4dC9wZy5jI0wxMzAtTDE0OCkuIEkgd2lsbCB0YWtl IGEgbG9vayBhdCBob3cgdG8gcmVwbGFjZSB0aGF0IHVzYWdlLg0KKiBUaGUgYHRrYCBnZW0gc2Vl bXMgW3RvIGFscmVhZHkgaGF2ZSBhIGZhbGxiYWNrXShodHRwczovL2dpdGh1Yi5jb20vcnVieS90 ay9ibG9iLzczNzlmN2IzNTRlZmQzYzlhZjI4MmUzYzEwMDI3OWRiNzM0NjA1OTUvZXh0L3RrL3Rj bHRrbGliLmMjTDk5OTEpIGZvciB3aGVuIHJiX2RlZmluZV9kdW1teV9lbmNvZGluZygpIGlzIG5v dCBhdmFpbGFibGUuIEl0IG1pZ2h0IGFsc28gYmUgbmV2ZXIgcmVhY2hlZCBidXQgaXQgaXMgaGFy ZCB0byB0ZWxsIGZyb20gdGhlIGNvZGUuIE90aGVyd2lzZSBpdCBjb3VsZCBsaWtlbHkgYmUgcmVw bGFjZWQgYnkgdGhlIEJJTkFSWSBlbmNvZGluZy4NCiogYHdpbjMyb2xlYCB1c2VzIGl0IFtoZXJl XShodHRwczovL2dpdGh1Yi5jb20vcnVieS93aW4zMm9sZS9ibG9iLzVkY2NiNDhiYTRlMzc0YTQ2 ODJkYmYxN2RkNTNmNDIxODdlODdmOGMvZXh0L3dpbjMyb2xlL3dpbjMyb2xlLmMjTDY5MykuIEl0 IGNvdWxkIGJlIGRlYWQgY29kZSBnaXZlbiB0aGlzIHBhdGggaXMgb25seSB0YWtlbiBmb3IgQ1Aq IGVuY29kaW5ncyBSdWJ5IGRvZXMgbm90IGFscmVhZHkga25vdy4gT3RoZXJ3aXNlIGl0IGNvdWxk IGxpa2VseSBiZSByZXBsYWNlZCBieSB0aGUgQklOQVJZIGVuY29kaW5nLg0KDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMxODk0OTogRGVwcmVjYXRl IGFuZCByZW1vdmUgcmVwbGljYXRlIGFuZCBkdW1teSBlbmNvZGluZ3MNCmh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnL2lzc3Vlcy8xODk0OSNjaGFuZ2UtOTg1MzQNCg0KKiBBdXRob3I6IEVyZWdv biAoQmVub2l0IERhbG96ZSkNCiogU3RhdHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClJ1YnkgaGFzIGEgbG90IG9m IGFjY2lkZW50YWwgY29tcGxleGl0eS4NClNvbWV0aW1lcyBpdCBiZWNvbWVzIGNsZWFyIHNvbWUg ZmVhdHVyZXMgYnJpbmcgYSBsb3Qgb2YgY29tcGxleGl0eSBhbmQgeWV0IHByb3ZpZGUgbGl0dGxl IHZhbHVlIG9yIGFyZSB1c2VkIHZlcnkgcmFyZWx5Lg0KQWxzbyBtb3N0IFJ1YnkgdXNlcnMgZG8g bm90IGV2ZW4ga25vdyBhYm91dCB0aGVzZSBmZWF0dXJlcy4NClJlcGxpY2F0ZSBhbmQgZHVtbXkg ZW5jb2RpbmdzIHNlZW0gdG8gY2xlYXJseSBmYWxsIGludG8gdGhpcyBjYXRlZ29yeSwgYWxtb3N0 IG5vYm9keSB1c2VzIHRoZW0gYnV0IHRoZXkgYWRkIGEgc2lnbmlmaWNhbnQgY29tcGxleGl0eSBh bmQgYWxzbyBhZGQgYSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBvdmVyaGVhZC4NCk5vdGFibHks IHRoZSBleGlzdGVuY2Ugb2YgdGhvc2UgbWVhbnMgdGhlIG51bWJlciBvZiBlbmNvZGluZ3MgaW4g YSBSdWJ5IHJ1bnRpbWUgaXMgYWN0dWFsbHkgdmFyaWFibGUgYW5kIG5vdCBmaXhlZC4NClRoYXQg bWVhbnMgZXh0cmEgc3luY2hyb25pemF0aW9uLCBoYXNodGFibGUgbG9va3VwcywgaW5kaXJlY3Rp b25zLCBmdW5jdGlvbiBjYWxscywgZXRjLg0KDQojIyBSZXBsaWNhdGUgRW5jb2RpbmdzDQoNClJl cGxpY2F0ZSBlbmNvZGluZ3MgYXJlIGNyZWF0ZWQgdXNpbmcgYEVuY29kaW5nI3JlcGxpY2F0ZShu YW1lKWAuDQpJdCBhbG1vc3Qgc291bmRzIGxpa2UgYW4gYWxpYXMgYnV0IGluIGZhY3QgaXQgaXMg bW9yZSB0aGFuIHRoYXQgYW5kIGNyZWF0ZXMgYSBuZXcgRW5jb2Rpbmcgb2JqZWN0LCB3aGljaCBj YW4gYmUgdXNlZCBieSBhIFN0cmluZzoNCmBgYHJ1YnkNCmUgPSBFbmNvZGluZzo6VVNfQVNDSUku cmVwbGljYXRlKCdNWS1VUy1BU0NJSScpDQpzID0gImFiYyIuZm9yY2VfZW5jb2RpbmcoZSkNCnAg cy5lbmNvZGluZyAjID0+IGUNCnAgcy5lbmNvZGluZy5uYW1lICMgPT4gJ01ZLVVTLUFTQ0lJJw0K YGBgDQoNClRoaXMgc2VlbXMgY29tcGxldGVseSB1c2VsZXNzLg0KVGhlcmUgaXMgYW4gb2J2aW91 cyBmaXJzdCBzdGVwIGhlcmUgd2hpY2ggaXMgdG8gY2hhbmdlIGBFbmNvZGluZyNyZXBsaWNhdGVg IHRvIHJldHVybiB0aGUgcmVjZWl2ZXIsIGFuZCBqdXN0IGluc3RhbGwgYW4gYWxpYXMgZm9yIGl0 Lg0KVGhhdCBhdm9pZHMgY3JlYXRpbmcgbW9yZSBlbmNvZGluZyBpbnN0YW5jZXMgbmVlZGxlc3Ns eS4NCg0KSSB0aGluayB3ZSBzaG91bGQgYWxzbyBkZXByZWNhdGUgYW5kIHJlbW92ZSB0aGlzIG1l dGhvZCB0aG91Z2gsIGl0IGlzIG5ldmVyIGEgZ29vZCBpZGVhIHRvIGhhdmUgYSBnbG9iYWwgbXV0 YWJsZSBtYXAgbGlrZSB0aGlzLg0KSWYgc29tZW9uZSB3YW50IGV4dHJhIGFsaWFzZXMgZm9yIGVu Y29kaW5ncywgdGhleSBjYW4gZWFzaWx5IHRvIGRvIHNvIGJ5IGhhdmluZyB0aGVpciBvd24gSGFz aDogYHsgYWxpYXMgPT4gZW5jb2RpbmcgfS5mZXRjaChuYW1lKSB7IEVuY29kaW5nLmZpbmQobmFt ZSkgfWAuDQoNCiMjIER1bW15IEVuY29kaW5ncw0KDQpEdW1teSBlbmNvZGluZ3MgYXJlIG5vdCBy ZWFsIGVuY29kaW5ncy4gVGhleSBhcmUgYXJ0aWZpY2lhbCBlbmNvZGluZ3MgZGVzaWduZWQgdG8g bG9vayBsaWtlIGVuY29kaW5ncywgYnV0IGRvbid0IGZ1bmN0aW9uIGFzIGVuY29kaW5ncyBpbiBS dWJ5Lg0KRnJvbSB0aGUgZG9jczoNCmBgYA0KZW5jLmR1bW15PyAtPiB0cnVlIG9yIGZhbHNlDQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NClJldHVybnMgdHJ1ZSBmb3IgZHVtbXkgZW5jb2RpbmdzLiBBIGR1bW15 IGVuY29kaW5nIGlzIGFuIGVuY29kaW5nIGZvcg0Kd2hpY2ggY2hhcmFjdGVyIGhhbmRsaW5nIGlz IG5vdCBwcm9wZXJseSBpbXBsZW1lbnRlZC4gSXQgaXMgdXNlZCBmb3INCnN0YXRlZnVsIGVuY29k aW5ncy4NCmBgYA0KDQpJIHdvbmRlciB3aHkgd2UgaGF2ZSB0aG9zZSBoYWxmLWltcGxlbWVudGVk IGVuY29kaW5ncyBpbiBjb3JlLCBpdCBzb3VuZHMgdG8gbWUgbGlrZSB1bmZpbmlzaGVkIHdvcmsg d2hpY2ggc2hvdWxkIG5vdCBoYXZlIGJlZW4gbWVyZ2VkLg0KDQpUaGUgImNvZGVwb2ludHMiIG9m IGR1bW15IGVuY29kaW5ncyBhcmUganVzdCAiYnl0ZXMiIGFuZCBzbyB0aGV5IGJlaGF2ZSB0aGUg c2FtZSBhcyBgRW5jb2Rpbmc6OkJJTkFSWWAsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgVVRG LTE2IGFuZCBVVEYtMzIgZHVtbXkgZW5jb2RpbmdzLg0KDQojIyMgVVRGLTE2IGFuZCBVVEYtMzIg ZHVtbXkgZW5jb2RpbmdzDQoNClRoZXNlIHR3byBhcmUgc3BlY2lhbCBkdW1teSBlbmNvZGluZ3Mu DQpXaGF0IHRoZXkgZG8gaXMgdGhleSBzY2FuIHRoZSBmaXJzdCAyIG9yIDQgYnl0ZXMgb2YgdGhl IFN0cmluZywgYW5kIGlmIHRob3NlIGJ5dGVzIGFyZSBhIGJ5dGUtb3JkZXIgbWFyayAoQk9NKSwN CnRoZSB0cnVlICJhY3R1YWwiIGVuY29kaW5nIGlzIHJlc29sdmVkIHRvIFVURi0xNkJFL1VURi0x NkxFIG9yIFVURi0zMkJFL1VURi0zMkxFLg0KT3RoZXJ3aXNlLCBgRW5jb2Rpbmc6OkJJTkFSWWAg aXMgcmV0dXJuZWQuDQpUaGlzIGxvZ2ljIGlzIGRvbmUgYnkgYGdldF9hY3R1YWxfZW5jb2Rpbmco KWAuDQoNCldoYXQgaXMgd2VpcmQgaXMgdGhpcyBjaGVjayBpcyBub3QgZG9uZSBvbiBTdHJpbmcg Y3JlYXRpb24sIG5vLCBpdCBpcyBkb25lICpldmVyeSB0aW1lKiB0aGUgZW5jb2Rpbmcgb2YgdGhh dCBTdHJpbmcgaXMgYWNjZXNzZWQgKGFuZCB0aGUgcmVzdWx0IGlzIG5vdCBzdG9yZWQgb24gdGhl IFN0cmluZykuDQpUaGF0IGlzIGEgbmVlZGxlc3Mgb3ZlcmhlYWQgYW5kIHJlYWxseSB1bnJlbGlh YmxlIHNlbWFudGljcy4NCkRvIHdlIHJlYWxseSB3YW50IGEgU3RyaW5nIHdoaWNoIGF1dG9tYWdp Y2FsbHkgY2hhbmdlcyBiZXR3ZWVuIFVURi0xNkxFIGFuZCBVVEYtMTZCRSBiYXNlZCBvbiBtdXRh dGluZyBpdHMgYnl0ZXM/IEkgdGhpbmsgbm9ib2R5IHdhbnRzIHRoYXQ6DQpgYGBydWJ5DQpzID0g Ilx4RkZceEZFYVx4MDBiXHgwMGNceDAwZFx4MDAiLmZvcmNlX2VuY29kaW5nKCJVVEYtMTYiKQ0K cCBzICMgPT4gIlx1RkVGRmFiY2QiDQpzLnNldGJ5dGUgMCwgMjU0DQpzLnNldGJ5dGUgMSwgMjU1 DQpwIHMgIyA9PiAiXHVGRUZGXHU2MTAwXHU2MjAwXHU2MzAwXHU2NDAwIg0KYGBgDQoNCkkgdGhp bmsgdGhlIHBhdGggaXMgY2xlYXIsIHdlIHNob3VsZCBkZXByZWNhdGUgYW5kIHRoZW4gcmVtb3Zl IEVuY29kaW5nOjpVVEZfMTYgYW5kIEVuY29kaW5nOjpVVEZfMzIgKGR1bW15IGVuY29kaW5ncyku DQpBbmQgdGhlbiB3ZSBubyBsb25nZXIgbmVlZCBgZ2V0X2FjdHVhbF9lbmNvZGluZygpYCBhbmQg dGhlIG92ZXJoZWFkIGl0IGFkZHMgdG8gZXZlcnkgU3RyaW5nIG1ldGhvZC4NCg0KV2UgY291bGQg YWxzbyBrZWVwIHRob3NlIGNvbnN0YW50cyBhbmQgbWFrZSB0aGVtIHJlZmVyIHRoZSBuYXRpdmUt ZW5kaWFuIFVURi0xNi8zMi4NCkJ1dCB0aGF0IGNvdWxkIGNhdXNlIGNvbmZ1c2luZyBlcnJvcnMg YXMgd2Ugd291bGQgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIHRoZW0uDQpXZSBjb3VsZCBhZGQgYEVu Y29kaW5nOjpVVEZfMTZORWAgLyBgRW5jb2Rpbmc6OlVURl8xNl9OQVRJVkVfRU5ESUFOYCBpZiB0 aGF0IGlzIHVzZWZ1bC4NCg0KQW5vdGhlciBwb3NzaWJpbGl0eSB3b3VsZCBiZSB0byByZXNvbHZl IHRoZXNlIGVuY29kaW5ncyBvbiBTdHJpbmcgY3JlYXRpb24sIGxpa2U6DQpgYGANCiJceEZGXHhG RSIuZm9yY2VfZW5jb2RpbmcoIlVURi0xNiIpLmVuY29kaW5nICMgPT4gVVRGLTE2TEUNClN0cmlu Zy5uZXcoIlx4RkZceEZFIiwgZW5jb2Rpbmc6IEVuY29kaW5nOjpVVEZfMTYpLmVuY29kaW5nICMg PT4gVVRGLTE2TEUNCiJhYiIuZm9yY2VfZW5jb2RpbmcoIlVURi0xNiIpLmVuY29kaW5nICMgZXhj ZXB0aW9uLCBub3QgYSBCT00NClN0cmluZy5uZXcoImFiIiwgZW5jb2Rpbmc6IEVuY29kaW5nOjpV VEZfMTYpLmVuY29kaW5nICMgZXhjZXB0aW9uLCBub3QgYSBCT00NCmBgYA0KSSB0aGluayBpdCBp cyB1bm5lY2Vzc2FyeSB0byBrZWVwIHN1Y2ggY29tcGxleGl0eSB0aG91Z2guDQpBIGNsYXNzIG1l dGhvZCBvbiBTdHJpbmcgb3IgRW5jb2RpbmcgbGlrZSBlLmcuIGBFbmNvZGluZy5maW5kX2Zyb21f Ym9tKHN0cmluZylgIGlzIHNvIG11Y2ggY2xlYXJlciBhbmQgZWZmaWNpZW50IChubyBuZWVkIHRv IHNwZWNpYWwgY2FzZSB0aG9zZSBlbmNvZGluZ3MgaW4gU3RyaW5nLm5ldywgI2ZvcmNlX2VuY29k aW5nLCBldGMpLg0KDQpGV0lXIEpSdWJ5IHNlZW1zIHRvIHVzZSBgZ2V0QWN0dWFsRW5jb2Rpbmco KWAgb25seSBpbiAyIHBsYWNlcyAoc2NhbkZvckNvZGVSYW5nZSwgaW5zcGVjdCksIHdoaWNoIGlz IGFuIGluZGljYXRpb24gdGhvc2UgZHVtbXkgVVRGIGVuY29kaW5ncyBhcmUgYmFyZWx5IHVzZWQg aWYgZXZlci4gU2ltaWxhcmx5LCBUcnVmZmxlUnVieSBvbmx5IGhhcyA0IHVzYWdlcyBvZiBgR2V0 QWN0dWFsRW5jb2RpbmdOb2RlYC4NCg0KIyMjIEV4aXN0aW5nIGR1bW15IGVuY29kaW5ncw0KDQpg YGANCj4gRW5jb2RpbmcubGlzdC5zZWxlY3QoJjpkdW1teT8pIA0KWyM8RW5jb2Rpbmc6VVRGLTE2 IChkdW1teSk+LCAgIzxFbmNvZGluZzpVVEYtMzIgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJQk0w MzcgKGR1bW15KT4sICM8RW5jb2Rpbmc6VVRGLTcgKGR1bW15KT4sDQogIzxFbmNvZGluZzpJU08t MjAyMi1KUCAoZHVtbXkpPiwgIzxFbmNvZGluZzpJU08tMjAyMi1KUC0yIChkdW1teSk+LCAjPEVu Y29kaW5nOklTTy0yMDIyLUpQLUtEREkgKGR1bW15KT4sDQogIzxFbmNvZGluZzpDUDUwMjIwIChk dW1teSk+LCAjPEVuY29kaW5nOkNQNTAyMjEgKGR1bW15KT5dDQpgYGANCg0KU28gYmVzaWRlcyBV VEYtMTYvVVRGLTMyIGR1bW15LCBpdCdzIG9ubHkgNyBlbmNvZGluZ3MuDQpEb2VzIGFueW9uZSB1 c2Ugb25lIG9mIHRoZXNlIDcgZHVtbXkgZW5jb2RpbmdzPw0KDQpXaGF0IGlzIGludGVyZXN0aW5n IHRvIG5vdGUsIGlzIHRoYXQgdGhlc2UgZW5jb2RpbmdzIGFyZSBleGFjdGx5IHRoZSBvbmVzIHRo YXQgYXJlIGFsc28gbm90IEFTQ0lJLWNvbXBhdGlibGUsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBV VEYtMTZCRS9VVEYtMTZMRS9VVEYtMzJCRS9VVEYtMzJMRSAobm9uLWR1bW15KS4NCkFzIGEgbm90 ZSwgVVRGLXsxNiwzMn17QkUsTEV9IGFyZSBBU0NJSS1jb21wYXRpYmxlIGluIGNvZGVwb2ludHMg YnV0IG5vdCBpbiBieXRlcywgYW5kIFJ1YnkgdXNlcyB0aGUgYnl0ZXMgZGVmaW5pdGlvbiBvZiBB U0NJSS1jb21wYXRpYmxlLg0KVGhlcmUgaXMgcG90ZW50aWFsIHRvIHNpbXBsaWZ5IGVuY29kaW5n IGNvbXBhdGliaWxpdHkgcnVsZXMgYW5kIGVuY29kaW5nIGNvbXBhdGliaWxpdHkgY2hlY2tzIGJh c2VkIG9uIHRoYXQuDQpTbyB3aGF0IHRoaXMgbWVhbnMgaXMgaWYgd2UgcmVtb3ZlZCBkdW1teSBl bmNvZGluZ3MsIGFsbCBlbmNvZGluZ3MgZXhjZXB0IFVURi17MTYsMzJ9e0JFLExFfSB3b3VsZCBi ZSBBU0NJSS1jb21wYXRpYmxlLCB3aGljaCB3b3VsZCBsZWFkIHRvIHNpZ25pZmljYW50IHNpbXBs aWZpY2F0aW9ucyBmb3IgbWFueSBzdHJpbmcgb3BlcmF0aW9ucyB3aGljaCBjdXJyZW50bHkgbmVl ZCB0byBoYW5kbGUgZHVtbXkgZW5jb2RpbmdzIHNwZWNpYWxseS4NClVuaWNvZGUgZW5jb2Rpbmdz IGxpa2UgVVRGLXsxNiwzMn17QkUsTEV9IGFscmVhZHkgaGF2ZSBzcGVjaWFsIGJlaGF2aW9yIGZv ciBzb21lIFJ1YnkgbWV0aG9kcywgc28gdGhvc2UgYXJlIGFscmVhZHkgaGFuZGxlZCBzcGVjaWFs bHkgaW4gc29tZSBwbGFjZXMgKHRoZXkgYXJlIHRoZSBvbmx5IGVuY29kaW5ncyB3aXRoIG1pbkxl bmd0aCA+IDEpLg0KDQpgYGANCj4gRW5jb2RpbmcubGlzdC5yZWplY3QoJjphc2NpaV9jb21wYXRp YmxlPykNClsjPEVuY29kaW5nOlVURi0xNkJFPiwgIzxFbmNvZGluZzpVVEYtMTZMRT4sDQogIzxF bmNvZGluZzpVVEYtMzJCRT4sICM8RW5jb2Rpbmc6VVRGLTMyTEU+LA0KICM8RW5jb2Rpbmc6VVRG LTE2IChkdW1teSk+LCAjPEVuY29kaW5nOlVURi0zMiAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklC TTAzNyAoZHVtbXkpPiwgIzxFbmNvZGluZzpVVEYtNyAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklT Ty0yMDIyLUpQIChkdW1teSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLTIgKGR1bW15KT4sICM8 RW5jb2Rpbmc6SVNPLTIwMjItSlAtS0RESSAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOkNQNTAyMjAg KGR1bW15KT4sICM8RW5jb2Rpbmc6Q1A1MDIyMSAoZHVtbXkpPl0NCmBgYA0KDQpXaGF0IGNhbiB3 ZSBkbyB3aXRoIHN1Y2ggYSBkdW1teSBub24tQVNDSUktY29tcGF0aWJsZSBlbmNvZGluZz8NCkFs bW9zdCBub3RoaW5nIHVzZWZ1bDoNCmBgYHJ1YnkNCnMgPSAiYWJjIi5lbmNvZGUoIklCTTAzNyIp DQo9PiAiXHg4MVx4ODJceDgzIg0KPiBzLmJ5dGVzDQo9PiBbMTI5LCAxMzAsIDEzMV0NCj4gcy5j b2RlcG9pbnRzDQo9PiBbMTI5LCAxMzAsIDEzMV0NCj4gcyA9PSAiYWJjIg0KPT4gZmFsc2UNCj4g IsOpdMOpIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAiXHg1MVx4QTNceDUxIg0KYGBgDQoNClNvIGFi b3V0IHRoZSBvbmx5IHRoaW5nIHRoYXQgd29ya3Mgd2l0aCB0aGVtIGlzIGBTdHJpbmcjZW5jb2Rl YC4NCg0KSSB0aGluayB3ZSBjb3VsZCBwcmVzZXJ2ZSB0aGF0IGZ1bmN0aW9uYWxpdHksIGlmIGFj dHVhbGx5IHVzZWQgKGRvZXMgYW55b25lIHVzZSBvbmUgb2YgdGhlc2UgNyBkdW1teSBlbmNvZGlu Z3M/KSwgdGhyb3VnaDoNCmBgYHJ1YnkNCj4gIsOpdMOpIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAi XHg1MVx4QTNceDUxIiAoLmVuY29kaW5nID09IEJJTkFSWSkNCj4gIlx4NTFceEEzXHg1MSIuZW5j b2RlKCJVVEYtOCIsICJJQk0wMzciKSAjIGVuY29kZSBmcm9tIElCTTAzNyB0byBVVEYtOA0KPT4g IsOpdMOpIiAoLmVuY29kaW5nID09IFVURi04KQ0KYGBgDQoNClRoYXQgd2F5IHRoZXJlIGlzIG5v IG5lZWQgZm9yIHRob3NlIHRvIGJlIEVuY29kaW5nIGluc3RhbmNlcywgd2Ugd291bGQgb25seSBu ZWVkIHRoZSBjb252ZXJzaW9uIHRhYmxlcy4NCg0KSXQgaXMgZXZlbiBiZXR0ZXIgaWYgd2UgY2Fu IHJlbW92ZSB0aGVtLCBzbyB0aGUgbm90aW9uIG9mICJkdW1teSBlbmNvZGluZ3MiIGNhbiBkaXNh cHBlYXIgY29tcGxldGVseSBhbmQgbm9ib2R5IG5lZWRzIHRvIHVuZGVyc3RhbmQgb3IgaW1wbGVt ZW50IHRoZW0uDQoNCiMjIyByYl9kZWZpbmVfZHVtbXlfZW5jb2RpbmcobmFtZSkNCg0KVGhlIEMt QVBJIGhhcyBgcmJfZGVmaW5lX2R1bW15X2VuY29kaW5nKGNvbnN0IGNoYXIgKm5hbWUpYC4NClRo aXMgY3JlYXRlcyBhIG5ldyBFbmNvZGluZyBpbnN0YW5jZSB3aXRoIGBkdW1teT89dHJ1ZWAsIGFu ZCBpdCBpcyBhbHNvIG5vbi1BU0NJSS1jb21wYXRpYmxlLg0KVGhlcmUgc2VlbXMgdG8gYmUgbm8g cHVycG9zZSB0byB0aGlzIGJlc2lkZXMgc3RvcmluZyB0aGUgbWV0YWRhdGEgb2YgYW4gZW5jb2Rp bmcgd2hpY2ggZG9lcyBub3QgZXhpc3QgaW4gUnVieS4NClRoaXMgc2VlbXMgYSByZWFsbHkgZXhw ZW5zaXZlL2NvbXBsZXggd2F5IHRvIGhhbmRsZSB0aGF0IGZyb20gdGhlIFZNIHBvaW50IG9mIHZp ZXcgKGJlY2F1c2UgaXQgZHluYW1pY2FsbHkgY3JlYXRlcyBhbiBFbmNvZGluZyBhbmQgYWRkIGl0 IHRvIGxpc3RzL21hcHMvZXRjKS4NCkEgc2ltcGxlIHJlcGxhY2VtZW50IHdvdWxkIGJlIHRvIG1h cmsgdGhlIFN0cmluZyBhcyBCSU5BUlkgYW5kIHNhdmUgdGhlIGVuY29kaW5nIG5hbWUgYXMgYW4g aW5zdGFuY2UgdmFyaWFibGUgb2YgdGhhdCBTdHJpbmcuDQpTaW5jZSBhbnl3YXkgUnVieSBjYW4n dCB1bmRlcnN0YW5kIGFueXRoaW5nIGFib3V0IHRoYXQgU3RyaW5nLCBpdCdzIGp1c3QgcmF3IGJ5 dGVzIHRvIFJ1YnkncyBleWVzLg0KDQojIyBTdW1tYXJ5DQoNCkkgc3VnZ2VzdCB3ZSBkZXByZWNh dGUgcmVwbGljYXRlIGFuZCBkdW1teSBlbmNvZGluZ3MgaW4gUnVieSAzLjIuDQpBbmQgdGhlbiB3 ZSByZW1vdmUgdGhlbSBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KDQpUaGlzIHdpbGwgc2lnbmlmaWNh bnRseSBzaW1wbGlmeSBzdHJpbmctcmVsYXRlZCBtZXRob2RzLCBhbmQgdGhlIGJlaGF2aW9yIGV4 cG9zZWQgdG8gUnVieSB1c2Vycy4NCg0KSXQgd2lsbCBhbHNvIHNpZ25pZmljYW50bHkgc3BlZWR1 cCBlbmNvZGluZyBsb29rdXAgaW4gQ1J1YnkgKGFuZCBvdGhlciBSdWJ5IGltcGxlbWVudGF0aW9u cykuDQpXaXRoIGEgZml4ZWQgbnVtYmVyIG9mIGVuY29kaW5ncyB3ZSBjYW4gZW5zdXJlIGFsbCBl bmNvZGluZyBpbmRpY2VzIGZpdCBpbiA3IGJpdHMsIGFuZCBgRU5DT0RJTkdfR0VUYCBjYW4gYmUg c2ltcGx5IGBSQl9FTkNPRElOR19HRVRfSU5MSU5FRGAuDQpgZ2V0X2FjdHVhbF9lbmNvZGluZygp YCB3aWxsIGJlIGdvbmUgYW5kIGl0cyBvdmVyaGVhZCBhcyB3ZWxsLg0KYHJiX2VuY19mcm9tX2lu ZGV4KClgIHdvdWxkIGJlIGp1c3QgYHJldHVybiBnbG9iYWxfZW5jX3RhYmxlLT5saXN0W2luZGV4 XS5lbmM7YCwgaW5zdGVhZCBvZiB0aGUgZXhwZW5zaXZlIGJlaGF2aW9yIGN1cnJlbnRseSB3aXRo IGBHTE9CQUxfRU5DX1RBQkxFX0VWQUxgIHdoaWNoIHRha2VzIGEgbG9jayBhbmQgbW9yZSB3aGVu IHRoZXJlIGFyZSBtdWx0aXBsZSBSYWN0b3JzLg0KTWFueSBjaGVja3MgaW4gdGhlc2UgbWV0aG9k cyB3b3VsZCBiZSByZW1vdmVkIGFzIHdlbGwuDQpZZXQgYW5vdGhlciBpbXByb3ZlbWVudCB3b3Vs ZCBiZSB0byBsb2FkIGFsbCBlbmNvZGluZ3MgZWFnZXJseSwgdGhhdCBpcyBzbWFsbCBhbmQgZmFz dCBpbiBteSBleHBlcmllbmNlLCB3aGF0IGlzIHNsb3cgYW5kIGJpZyBpcyB0aGUgY29udmVyc2lv biB0YWJsZXMsIHRoYXQnZCBzaW1wbGlmeSBgbXVzdF9lbmNpbmRleCgpYCBmdXJ0aGVyLg0KVGhl c2UgY2hhbmdlcyB3b3VsZCBhZmZlY3QgbW9zdCBTdHJpbmcgbWV0aG9kcywgd2hpY2ggdXNlDQpg YGANClNUUl9FTkNfR0VULT5nZXRfZW5jb2Rpbmcgd2hpY2ggZG9lczoNCiAgZ2V0X2FjdHVhbF9l bmNvZGluZy0+cmJfZW5jX2Zyb21faW5kZXggYW5kIHBvc3NpYmx5IC0+ZW5jX2Zyb21faW5kZXgN CiAgRU5DT0RJTkdfR0VULT5SQl9FTkNPRElOR19HRVRfSU5MSU5FRCBhbmQgcG9zc2libHkgLT5y Yl9lbmNfZ2V0X2luZGV4LT5lbmNfZ2V0X2luZGV4X3N0ci0+cmJfYXR0cl9nZXQNCmBgYA0KU29t ZSBvZiB0aGVzZSBkZXRhaWxzIGFyZSBtZW50aW9uZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3J1 YnkvcnVieS9wdWxsLzYwOTUjZGlzY3Vzc2lvbl9yOTE1MTQ5NzA4Lg0KVGhlIG92ZXJoZWFkIGlz IHNvIGxhcmdlIHRoYXQgaXQgaXMgd29ydGggaGFuZGxpbmcgc29tZSBoYXJkY29kZWQgZW5jb2Rp bmcgaW5kaWNlcyBkaXJlY3RseSBpbiBTdHJpbmcgbWV0aG9kcy4NClRoaXMgZmVlbHMgd3Jvbmcs IGdldHRpbmcgdGhlIGVuY29kaW5nIGZyb20gYSBTdHJpbmcgc2hvdWxkIGJlIHNpbXBsZSwgc3Ry YWlnaHRmb3J3YXJkIGFuZCBmYXN0Lg0KDQpGdXJ0aGVyIG9wdGltaXphdGlvbnMgd2lsbCBiZSB1 bmxvY2tlZCBhcyB0aGUgZW5jb2RpbmcgbGlzdCBiZWNvbWVzIGZpeGVkIGFuZCBpbW11dGFibGUu DQpGb3IgZXhhbXBsZSwgdGhlIG5hbWUtdG8tRW5jb2RpbmcgbWFwIGlzIHRoZW4gaW1tdXRhYmxl IGFuZCBjb3VsZCB1c2UgcGVyZmVjdCBoYXNoaW5nLg0KSW5saW5lIGNhY2hpbmcgdGhvc2UgbG9v a3VwcyBhbHNvIGJlY29tZXMgZWFzaWVyIGFzIHRoZSB0aGUgbWFwIGNhbm5vdCBjaGFuZ2UuDQpB bHNvIHRoYXQgbWFwIHdvdWxkIG5vIGxvbmdlciBuZWVkIHN5bmNocm9uaXphdGlvbiwgZXRjLg0K DQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCg==