From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-1.8 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.1 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id A5B851F404 for ; Sat, 25 Aug 2018 17:40:33 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 98E9512097E; Sun, 26 Aug 2018 02:40:31 +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 1D7B0120978 for ; Sun, 26 Aug 2018 02:40:29 +0900 (JST) Received: by filter0100p3las1.sendgrid.net with SMTP id filter0100p3las1-19824-5B81948B-19 2018-08-25 17:40:27.701107627 +0000 UTC m=+673780.308327681 Received: from herokuapp.com (ec2-54-204-189-219.compute-1.amazonaws.com [54.204.189.219]) by ismtpd0005p1iad2.sendgrid.net (SG) with ESMTP id zbRQKlnvTq-2E6Pcas2Zxg Sat, 25 Aug 2018 17:40:27.280 +0000 (UTC) Date: Sat, 25 Aug 2018 17:40:28 +0000 (UTC) From: naruse@airemix.jp To: ruby-core@ruby-lang.org Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 64028 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 15007 X-Redmine-Issue-Author: methodmissing X-Redmine-Issue-Assignee: naruse X-Redmine-Sender: naruse 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-SG-EID: ync6xU2WACa70kv/Ymy4QrNMhiuLXJG8OTL2vJD1yS7aHZNrGH1L3q5/iwzqhBDzyZ4l6TwPU/5MPV f1SpCx4zSIfdVrOclHxZuZLWB4mV+l3QjR/jeLYHxYtrnOpKi6556riASv2J4RYy1NJqK+MGP/PO6W 27nirc3asdFf8ck3r6ngnnC+hVQZqgK+uolUdUFoezVGZ7dQnkbbm7aRVA== X-ML-Name: ruby-core X-Mail-Count: 88646 Subject: [ruby-core:88646] [Ruby trunk Misc#15007] Let all Init_xxx and extension APIs frequently called from init code paths be considered cold X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE1MDA3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbmFydXNlIChZdWkgTkFSVVNFKS4KCgpt ZXRob2RtaXNzaW5nIChMb3VyZW5zIE5hdWTDqSkgd3JvdGU6Cj4ga28xIChLb2ljaGkgU2FzYWRh KSB3cm90ZToKPiA+IEkgYWdyZWUgdG8gaW50cm9kdWNlIENPTEQgYXR0cmlidXRlLgo+IAo+IEkg d2FzIHdvbmRlcmluZyBhYm91dCBFcmljJ3Mgc3VnZ2VzdGlvbiBhYm91dCB0aGUgY29udmVudGlv biBmb3IgdXNpbmcgaXQgdGhvdWdoLiBJIGxpa2UgdGhlIEtlcm5lbCBzdHlsZSBvZiBgQ09MREZV TkMgdm9pZCBzb21lX2Z1bmMoKWAgb3IgYENPTEQgdm9pZCBzb21lX2Z1bmMoKWAgbW9yZSB0aGFu IHRoaXMgc3R5bGUgd2UgaGF2ZSBub3cgZW5mb3JjZWQgaW4gdGhlIGNvbnRyaWJ1dG9yIGRvY3M6 Cj4gCj4gYGBgCj4gQ09MREZVTkModm9pZCBJbml0X0FycmF5KHZvaWQpKTsKPiB2b2lkCj4gSW5p dF9BcnJheSh2b2lkKQo+IGBgYAoKSXQgdXNlcyBmdW5jdGlvbiBzdHlsZSBtYWNybyBiZWNhdXNl IHNvbWUgZnVuY3Rpb24gYXR0cmlidXRlIG9mIE1TVkMgYXJlIHZhbGlkIG9ubHkgaWYgd3JpdHRl biBhcyBzdWZmaXguClRoZXJlZm9yZSBhYm91dCBjb2xkZnVuYywganVzdCBjb25zdGFudCBzdHls ZSBpcyBvay4KCkZvbGx3aW5nIHBhdGNoIG9yIGp1c3QgdXNlIG5ldyBtYWNybyBvdGhlciB0aGFu IFJVQllfRlVOQ19BVFRSSUJVVEUuLgoKYGBgCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9j b25maWd1cmUuYWMKaW5kZXggYTQ4ZWRhMTUzMi4uYTZjZDBiNDkyOCAxMDA2NDQKLS0tIGEvY29u ZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMTMwMiw2ICsxMzAyLDcgQEAgQVNfSUYo W3Rlc3QgIiRyYl9jdl9oYXZlX2FsaWdub2YiICE9IG5vXSwgWwoKIFJVQllfRlVOQ19BVFRSSUJV VEUoX19jb25zdF9fLCBDT05TVEZVTkMpCiBSVUJZX0ZVTkNfQVRUUklCVVRFKF9fcHVyZV9fLCBQ VVJFRlVOQykKK1JVQllfRlVOQ19BVFRSSUJVVEUoX19jb2xkX18sIENPTERGVU5DKQogUlVCWV9G VU5DX0FUVFJJQlVURShfX25vcmV0dXJuX18sIE5PUkVUVVJOKQogUlVCWV9GVU5DX0FUVFJJQlVU RShfX2RlcHJlY2F0ZWRfXywgREVQUkVDQVRFRCkKIFJVQllfRlVOQ19BVFRSSUJVVEUoX19kZXBy ZWNhdGVkX18oImJ5ICJAJTpAbiksIERFUFJFQ0FURURfQlkobix4KSwgcmJfY3ZfZnVuY19kZXBy ZWNhdGVkX2J5KQpkaWZmIC0tZ2l0IGEvdG9vbC9tNC9ydWJ5X2RlY2xfYXR0cmlidXRlLm00IGIv dG9vbC9tNC9ydWJ5X2RlY2xfYXR0cmlidXRlLm00CmluZGV4IGYxNTk0N2MwYWIuLjg3ZjMyNDJh OTYgMTAwNjQ0Ci0tLSBhL3Rvb2wvbTQvcnVieV9kZWNsX2F0dHJpYnV0ZS5tNAorKysgYi90b29s L200L3J1YnlfZGVjbF9hdHRyaWJ1dGUubTQKQEAgLTM1LDYgKzM1LDEwIEBAIGRvbmUKIF0pXSkK IEFTX0lGKFt0ZXN0ICIkcmJjdiIgIT0geF0sIFsKICAgICBSVUJZX0RFRklORV9JRihtNF9pZnZh bChbJDRdLFske3JiY3ZfY29uZH1dKSwgYXR0cmliW10oYXR0cmliX3BhcmFtcylbXSwgJHJiY3Yp CisgICAgQVNfQ0FTRShbIiRtYWMiXSwKKyAgICBbIl9fYXR0cmlidXRlX18gKChhdHRyaWJfY29k ZSkpIHgifCJfX2RlY2xzcGVjKGF0dHJpYl9jb2RlKSB4Il0sIFsKKyAgICAgICAgUlVCWV9ERUZJ TkVfSUYobTRfaWZ2YWwoWyQ0XSxbJHtyYmN2X2NvbmR9XSksIGF0dHJpYltfUFJFRklYXSwgJHty YmN2JSB4fSkKKyAgICBdKQogXSkKIG00X2lmdmFsKFskNF0sIFt1bnNldCByYmN2X2NvbmRdKSBk bmwKIG00X3BvcGRlZihbYXR0cmliX3BhcmFtc10pZG5sCmBgYAoKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpNaXNjICMxNTAwNzogTGV0IGFsbCBJbml0X3h4eCBhbmQg ZXh0ZW5zaW9uIEFQSXMgZnJlcXVlbnRseSBjYWxsZWQgZnJvbSBpbml0IGNvZGUgcGF0aHMgYmUg Y29uc2lkZXJlZCBjb2xkCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNTAwNyNj aGFuZ2UtNzM3MDMKCiogQXV0aG9yOiBtZXRob2RtaXNzaW5nIChMb3VyZW5zIE5hdWTDqSkKKiBT dGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCiogQXNzaWduZWU6IG5hcnVzZSAoWXVpIE5B UlVTRSkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpSZWZlcmVuY2Vz IEdpdGh1YiBQUiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTkzNAoKIyMjIFdo eT8KCkFuIGluY3JlbWVudGFsIGV4dHJhY3Rpb24gZnJvbSBQUiBodHRwczovL2dpdGh1Yi5jb20v cnVieS9ydWJ5L3B1bGwvMTkyMiwgc3BlY2lmaWNhbGx5IGFkZHJlc3NpbmcgdGhlIGZlZWRiYWNr IGZyb20gWXVpIE5hcnVzZSBpbiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTky MiNpc3N1ZWNvbW1lbnQtNDEzNzk2NzEwCgpUaGUgW0xpbnV4IGtlcm5lbF0oaHR0cHM6Ly9naXRo dWIuY29tL3RvcnZhbGRzL2xpbnV4L2Jsb2IvY2EwNGIzY2NhMTFhY2JhZjkwNGY3MDdmMmQ5Y2E5 NjU0ZDdjYzIyNi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYy5oI0wxOTEtTDIwNiksIFtQSFAg N10oaHR0cHM6Ly9naXRodWIuY29tL3BocC9waHAtc3JjL2Jsb2IvMmQ3MWEyODk1NGE0ZjIwNzA5 NzE4ZWU3Y2IyYjg1MGQzMzRjNTYxYy9aZW5kL3plbmRfcG9ydGFiaWxpdHkuaCNMMjIwKSBhbmQg b3RoZXIgcHJvamVjdHMgdXNlIHRoZSBgaG90YCBhbmQgYGNvbGRgIGZ1bmN0aW9uIGF0dHJpYnV0 ZXMgdG8gaGVscCB3aXRoIGJldHRlciBjb2RlIGxheW91dC4KCkkgbm90aWNlZCBSdWJ5IGlzIHZl cnkgbXVjaCBDUFUgZnJvbnRlbmQgYm91bmQgKG5vdCBmZWVkaW5nIGluc3RydWN0aW9ucyBpbnRv IHRoZSBDUFUgcGlwZWxpbmVzIGFzIGZhc3QgYXMgaXQgbWF5YmUgY291bGQpIGFuZCB0aGVyZWZv cmUgZXZlbiBtb3N0IG1pY3JvIGJlbmNobWFya3MgaGF2ZSBhIGhpZ2ggQ1BJIChjeWNsZXMgcGVy IGluc3RydWN0aW9uKSByYXRlLiBUaGlzIFBSIGlzIHBhcnQgb2YgYSBsYXJnZXIgY2h1bmsgb2Yg d29yayBJJ2QgbGlrZSB0byBkbyBhcm91bmQgaW1wcm92aW5nIENQVSBmcm9udGVuZCB0aHJvdWdo cHV0IGFuZCBjYW4gdGFrZSBhIHN0YWIgYXQgZm9ybWFsbHkgd3JpdGluZyB1cCB0aG9zZSBpZGVh cyBpZiB0aGVyZSdzIGFueSBpbnRlcmVzdCBmcm9tIHRoZSBjb21tdW5pdHkuIEkgZG9uJ3Qga25v dy4KCiMjIyBJbXBsZW1lbnRhdGlvbgoKVGhpcyBQUiBoYXMgYW4gZXhjbHVzaXZlIGZvY3VzIG9u IGhhdmluZyB0aGUgYEluaXRfeHh4YCBmdW5jdGlvbnMgZm9yIHRoZSBjb3JlIGNsYXNzZXMgYW5k IHRob3NlIGJ1bmRsZWQgaW4gYGV4dGAgYmVpbmcgZmxhZ2dlZCB0byBiZSBvcHRpbWl6ZWQgZm9y IHNpemUgYXMgdGhleSdyZSBjYWxsZWQgb25seSBvbmNlIGF0IHJ1bnRpbWUuCgpUaGUgR0NDIHNw ZWNpZmljIFtjb2xkXShodHRwczovL2djYy5nbnUub3JnL29ubGluZWRvY3MvZ2NjLTQuNi40L2dj Yy9GdW5jdGlvbi1BdHRyaWJ1dGVzLmh0bWwpIGZ1bmN0aW9uIGF0dHJpYnV0ZSB3b3JrcyBpbiB0 aGUgZm9sbG93aW5nIHdheSAoZnJvbSBHQ0MgZG9jcyk6CgpgYGAKVGhlIGNvbGQgYXR0cmlidXRl IGlzIHVzZWQgdG8gaW5mb3JtIHRoZSBjb21waWxlciB0aGF0IGEgZnVuY3Rpb24gaXMgdW5saWtl bHkgZXhlY3V0ZWQuIFRoZSBmdW5jdGlvbiBpcyBvcHRpbWl6ZWQgZm9yIHNpemUgcmF0aGVyIHRo YW4gc3BlZWQgYW5kIG9uIG1hbnkgdGFyZ2V0cyBpdCBpcyBwbGFjZWQgaW50byBzcGVjaWFsIHN1 YnNlY3Rpb24gb2YgdGhlIHRleHQgc2VjdGlvbiBzbyBhbGwgY29sZCBmdW5jdGlvbnMgYXBwZWFy cyBjbG9zZSB0b2dldGhlciBpbXByb3ZpbmcgY29kZSBsb2NhbGl0eSBvZiBub24tY29sZCBwYXJ0 cyBvZiBwcm9ncmFtLiBUaGUgcGF0aHMgbGVhZGluZyB0byBjYWxsIG9mIGNvbGQgZnVuY3Rpb25z IHdpdGhpbiBjb2RlIGFyZSBtYXJrZWQgYXMgdW5saWtlbHkgYnkgdGhlIGJyYW5jaCBwcmVkaWN0 aW9uIG1lY2hhbmlzbS4gSXQgaXMgdGh1cyB1c2VmdWwgdG8gbWFyayBmdW5jdGlvbnMgdXNlZCB0 byBoYW5kbGUgdW5saWtlbHkgY29uZGl0aW9ucywgc3VjaCBhcyBwZXJyb3IsIGFzIGNvbGQgdG8g aW1wcm92ZSBvcHRpbWl6YXRpb24gb2YgaG90IGZ1bmN0aW9ucyB0aGF0IGRvIGNhbGwgbWFya2Vk IGZ1bmN0aW9ucyBpbiByYXJlIG9jY2FzaW9ucy4KV2hlbiBwcm9maWxlIGZlZWRiYWNrIGlzIGF2 YWlsYWJsZSwgdmlhIC1mcHJvZmlsZS11c2UsIGhvdCBmdW5jdGlvbnMgYXJlIGF1dG9tYXRpY2Fs bHkgZGV0ZWN0ZWQgYW5kIHRoaXMgYXR0cmlidXRlIGlzIGlnbm9yZWQuCmBgYApCeSBkZWNsYXJp bmcgYSBmdW5jdGlvbiBhcyBgY29sZGAgd2hlbiBkZWZpbmVkIHdlIGdldCB0aGUgZm9sbG93aW5n IGJlbmVmaXRzOgoKKiBOby1vcCBvbiBwbGF0Zm9ybXMgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IHRo ZSBhdHRyaWJ1dGUKKiBTaXplIG9wdGltaXphdGlvbiBvZiBjb2xkIGZ1bmN0aW9ucyB3aXRoIGEg c21hbGxlciBmb290cHJpbnQgaW4gdGhlIGluc3RydWN0aW9uIGNhY2hlCiogVGhlcmVmb3JlIENQ VSBmcm9udGVuZCB0aHJvdWdocHV0IGluY3JlYXNlcyBkdWUgdG8gYSBsb3dlciByYXRpbyBvZiBp bnN0cnVjdGlvbiBjYWNoZSBtaXNzZXMgYW5kIGEgbG93ZXIgSVRMQiBvdmVyaGVhZCAtIHNlZSBb b3JpZ2luYWwgY2h1bmt5IFBSXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50 LmNvbS8zNzkvNDQyMDQ4NTgtNGMwODUxMDAtYTE0Yy0xMWU4LTg2YjgtZDg3ZmNiNWU0OTg1LnBu ZykgVlMgW3RoZW4gdHJ1bmtdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQu Y29tLzM3OS80NDIwNDg3MC00ZjliZDgwMC1hMTRjLTExZTgtOWJlZS0xNGM4YWQ4ZDNhN2QucG5n KQoqIFRoaXMgZWZmZWN0IGNhbiBmdXJ0aGVyIGJlIGFtcGxpZmllZCBpbiBmdXR1cmUgd29yayB3 aXRoIHRoZSBgaG90YCBhdHRyaWJ1dGUKCiMjIyMgRXh0ZW5zaW9uIEFQSXMgZmxhZ2dlZCBhcyBj b2xkCgpUaGVzZSBhcmUgYW5kIHNob3VsZCB0eXBpY2FsbHkgb25seSBiZSBjYWxsZWQgb24gZXh0 ZW5zaW9uIGluaXQsIGFuZCB0aHVzIHNhZmUgdG8gb3B0aW1pemUgZm9yIHNpemUgYXMgd2VsbC4K CiogYHZvaWQgcmJfZGVmaW5lX21ldGhvZF9pZChWQUxVRSwgSUQsIFZBTFVFICgqKShBTllBUkdT KSwgaW50KSk7YAoqIGB2b2lkIHJiX3VuZGVmKFZBTFVFLCBJRCkpO2AKKiBgdm9pZCByYl9kZWZp bmVfcHJvdGVjdGVkX21ldGhvZChWQUxVRSwgY29uc3QgY2hhciosIFZBTFVFICgqKShBTllBUkdT KSwgaW50KSk7YAoqIGB2b2lkIHJiX2RlZmluZV9wcml2YXRlX21ldGhvZChWQUxVRSwgY29uc3Qg Y2hhciosIFZBTFVFICgqKShBTllBUkdTKSwgaW50KSk7YAoqIGB2b2lkIHJiX2RlZmluZV9zaW5n bGV0b25fbWV0aG9kKFZBTFVFLCBjb25zdCBjaGFyKiwgVkFMVUUoKikoQU5ZQVJHUyksIGludCkp O2AKKiBgdm9pZCByYl9kZWZpbmVfYWxsb2NfZnVuYyhWQUxVRSwgcmJfYWxsb2NfZnVuY190KSk7 YAoqIGB2b2lkIHJiX3VuZGVmX2FsbG9jX2Z1bmMoVkFMVUUpKTtgCiogYFZBTFVFIHJiX2RlZmlu ZV9jbGFzcyhjb25zdCBjaGFyKixWQUxVRSkpO2AKKiBgVkFMVUUgcmJfZGVmaW5lX21vZHVsZShj b25zdCBjaGFyKikpO2AKKiBgVkFMVUUgcmJfZGVmaW5lX2NsYXNzX3VuZGVyKFZBTFVFLCBjb25z dCBjaGFyKiwgVkFMVUUpKTtgCiogYFZBTFVFIHJiX2RlZmluZV9tb2R1bGVfdW5kZXIoVkFMVUUs IGNvbnN0IGNoYXIqKSk7YAoqIGB2b2lkIHJiX2RlZmluZV92YXJpYWJsZShjb25zdCBjaGFyKixW QUxVRSopKTtgCiogYHZvaWQgcmJfZGVmaW5lX3ZpcnR1YWxfdmFyaWFibGUoY29uc3QgY2hhcios VkFMVUUoKikoQU5ZQVJHUyksdm9pZCgqKShBTllBUkdTKSkpO2AKKiBgdm9pZCByYl9kZWZpbmVf aG9va2VkX3ZhcmlhYmxlKGNvbnN0IGNoYXIqLFZBTFVFKixWQUxVRSgqKShBTllBUkdTKSx2b2lk KCopKEFOWUFSR1MpKSk7YAoqIGB2b2lkIHJiX2RlZmluZV9yZWFkb25seV92YXJpYWJsZShjb25z dCBjaGFyKixjb25zdCBWQUxVRSopKTtgCiogYHZvaWQgcmJfZGVmaW5lX2NvbnN0KFZBTFVFLGNv bnN0IGNoYXIqLFZBTFVFKSk7YAoqIGB2b2lkIHJiX2RlZmluZV9nbG9iYWxfY29uc3QoY29uc3Qg Y2hhciosVkFMVUUpKTtgCiogYHZvaWQgcmJfZGVmaW5lX21ldGhvZChWQUxVRSxjb25zdCBjaGFy KixWQUxVRSgqKShBTllBUkdTKSxpbnQpKTtgCiogYCh2b2lkIHJiX2RlZmluZV9tb2R1bGVfZnVu Y3Rpb24oVkFMVUUsY29uc3QgY2hhciosVkFMVUUoKikoQU5ZQVJHUyksaW50KSk7YAoqIGB2b2lk IHJiX2RlZmluZV9nbG9iYWxfZnVuY3Rpb24oY29uc3QgY2hhciosVkFMVUUoKikoQU5ZQVJHUyks aW50KSk7YAoqIGB2b2lkIHJiX3VuZGVmX21ldGhvZChWQUxVRSxjb25zdCBjaGFyKikpO2AKKiBg dm9pZCByYl9kZWZpbmVfYWxpYXMoVkFMVUUsY29uc3QgY2hhciosY29uc3QgY2hhciopKTtgCiog YHZvaWQgcmJfZGVmaW5lX2F0dHIoVkFMVUUsY29uc3QgY2hhciosaW50LGludCkpO2AKKiBgdm9p ZCByYl9nbG9iYWxfdmFyaWFibGUoVkFMVUUqKSk7YAoqIGB2b2lkIHJiX2djX3JlZ2lzdGVyX21h cmtfb2JqZWN0KFZBTFVFKSk7YAoqIGB2b2lkIHJiX2djX3JlZ2lzdGVyX2FkZHJlc3MoVkFMVUUq KSk7YAoqIGB2b2lkIHJiX2djX3VucmVnaXN0ZXJfYWRkcmVzcyhWQUxVRSopKTtgCgojIyMjIFRl eHQgc2VnbWVudCByZWR1Y3Rpb25zCgpTbWFsbCBjaGFuZ2VzIChgMzE0NGAgYnl0ZXMgcmVkdWN0 aW9uIG9mIHRoZSB0ZXh0IHNlZ21lbnQpIGJlY2F1c2UgdGhpcyBpcyBpbmNyZW1lbnRhbCBncm91 bmR3b3JrIGFuZCBhbmQgaW5pdGlhbCBsb3cgcmlzayBQUi4KCnRoaXMgYnJhbmNoOgoKYGBgCmxv dXJlbnNAQ2FyYm9uWDE6fi9zcmMvcnVieS9ydWJ5JCBzaXplIHJ1YnkKICAgdGV4dAkgICBkYXRh CSAgICBic3MJICAgIGRlYwkgICAgaGV4CWZpbGVuYW1lCjM0NjIxNTMJICAyMTA1NgkgIDcxMzQ0 CTM1NTQ1NTMJIDM2M2NmOQlydWJ5CmBgYAoKdHJ1bms6CgpgYGAKbG91cmVuc0BDYXJib25YMTp+ L3NyYy9ydWJ5L3RydW5rJCBzaXplIHJ1YnkKICAgdGV4dAkgICBkYXRhCSAgICBic3MJICAgIGRl YwkgICAgaGV4CWZpbGVuYW1lCjM0NjUyOTcJICAyMTA1NgkgIDcxMzQ0CTM1NTc2OTcJIDM2NDk0 MQlydWJ5CmBgYAoKRGlmZnMgZm9yIGluZGl2aWR1YWwgb2JqZWN0IGZpbGVzOiBodHRwczovL3d3 dy5kaWZmY2hlY2tlci5jb20vVDBHVnpYMXEKCkRlZmF1bHQgYHRleHQudW5saWtlbHlgIHNlY3Rp b24gd2hlcmUgaW5pdCBmdW5jdGlvbnMgYXJlIG1vdmVkIHRvOgoKYGBgCmxvdXJlbnNAQ2FyYm9u WDE6fi9zcmMvcnVieS9ydWJ5JCByZWFkZWxmIC1TIHZtLm8KVGhlcmUgYXJlIDM0IHNlY3Rpb24g aGVhZGVycywgc3RhcnRpbmcgYXQgb2Zmc2V0IDB4MmEwNGY4OgoKU2VjdGlvbiBIZWFkZXJzOgog IFtOcl0gTmFtZSAgICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICBBZGRyZXNzICAgICAgICAg ICBPZmZzZXQKICAgICAgIFNpemUgICAgICAgICAgICAgIEVudFNpemUgICAgICAgICAgRmxhZ3Mg IExpbmsgIEluZm8gIEFsaWduCiAgWyAwXSAgICAgICAgICAgICAgICAgICBOVUxMICAgICAgICAg ICAgIDAwMDAwMDAwMDAwMDAwMDAgIDAwMDAwMDAwCiAgICAgICAwMDAwMDAwMDAwMDAwMDAwICAw MDAwMDAwMDAwMDAwMDAwICAgICAgICAgICAwICAgICAwICAgICAwCiAgWyAxXSAudGV4dCAgICAg ICAgICAgICBQUk9HQklUUyAgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgIDAwMDAwMDQwCiAgICAg ICAwMDAwMDAwMDAwMDFjMzdmICAwMDAwMDAwMDAwMDAwMDAwICBBWCAgICAgICAwICAgICAwICAg ICAxNgogIFsgMl0gLnJlbGEudGV4dCAgICAgICAgUkVMQSAgICAgICAgICAgICAwMDAwMDAwMDAw MDAwMDAwICAwMDExNDEwMAogICAgICAgMDAwMDAwMDAwMDAwYTdkMCAgMDAwMDAwMDAwMDAwMDAx OCAgIEkgICAgICAzMSAgICAgMSAgICAgOAogIFsgM10gLmRhdGEgICAgICAgICAgICAgUFJPR0JJ VFMgICAgICAgICAwMDAwMDAwMDAwMDAwMDAwICAwMDAxYzNjMAogICAgICAgMDAwMDAwMDAwMDAw MDAzMCAgMDAwMDAwMDAwMDAwMDAwMCAgV0EgICAgICAgMCAgICAgMCAgICAgMTYKICBbIDRdIC5i c3MgICAgICAgICAgICAgIE5PQklUUyAgICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMCAgMDAwMWM0 MDAKICAgICAgIDAwMDAwMDAwMDAwMDAyYjAgIDAwMDAwMDAwMDAwMDAwMDAgIFdBICAgICAgIDAg ICAgIDAgICAgIDMyCiAgWyA1XSAucm9kYXRhLnN0cjEuOCAgICBQUk9HQklUUyAgICAgICAgIDAw MDAwMDAwMDAwMDAwMDAgIDAwMDFjNDAwCiAgICAgICAwMDAwMDAwMDAwMDAwZDZmICAwMDAwMDAw MDAwMDAwMDAxIEFNUyAgICAgICAwICAgICAwICAgICA4CiAgWyA2XSAudGV4dC51bmxpa2VseSAg ICBQUk9HQklUUyAgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgIDAwMDFkMTZmIDw8PDw8PDw8PDw8 PDw8PAogICAgICAgMDAwMDAwMDAwMDAwMWFhOSAgMDAwMDAwMDAwMDAwMDAwMCAgQVggICAgICAg MCAgICAgMCAgICAgMQpgYGAKClRoZSByZWxvY2F0aW9ucyBmb3IgYHZtLm9gOgoKYGBgCmxvdXJl bnNAQ2FyYm9uWDE6fi9zcmMvcnVieS9ydWJ5JCBsZCAtTSB2bS5vCi0tLSB0cnVuY2F0ZWQgLS0t Ci50ZXh0ICAgICAgICAgICAweDAwMDAwMDAwMDA0MDAxMjAgICAgMHgxZGUyZgogKigudGV4dC51 bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAudGV4dC51bmxpa2Vs eQogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAwMTIwICAgICAweDFhYTkgdm0ubwogICAg ICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAwMzhmICAgICAgICAgICAgICAgIHJiX2RlZmluZV9h bGxvY19mdW5jCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDAzYmYgICAgICAgICAgICAg ICAgcmJfdW5kZWZfYWxsb2NfZnVuYwogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAwM2M1 ICAgICAgICAgICAgICAgIEluaXRfTWV0aG9kCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0 MDA1MTIgICAgICAgICAgICAgICAgSW5pdF92bV9ldmFsCiAgICAgICAgICAgICAgICAweDAwMDAw MDAwMDA0MDA3YTEgICAgICAgICAgICAgICAgSW5pdF9ldmFsX21ldGhvZAogICAgICAgICAgICAg ICAgMHgwMDAwMDAwMDAwNDAwYTU0ICAgICAgICAgICAgICAgIHJiX3VuZGVmCiAgICAgICAgICAg ICAgICAweDAwMDAwMDAwMDA0MDBjMWQgICAgICAgICAgICAgICAgSW5pdF9WTQogICAgICAgICAg ICAgICAgMHgwMDAwMDAwMDAwNDAxODVmICAgICAgICAgICAgICAgIEluaXRfQmFyZVZNCiAgICAg ICAgICAgICAgICAweDAwMDAwMDAwMDA0MDFiMTYgICAgICAgICAgICAgICAgSW5pdF92bV9vYmpl Y3RzCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDFiNjEgICAgICAgICAgICAgICAgSW5p dF90b3Bfc2VsZgogKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICooLnRleHQuc3RhcnR1cCAu dGV4dC5zdGFydHVwLiopCiAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICooLnRleHQgLnN0dWIg LnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICpmaWxsKiAgICAgICAgIDB4MDAwMDAwMDAwMDQw MWJjOSAgICAgICAgMHg3IAogLnRleHQgICAgICAgICAgMHgwMDAwMDAwMDAwNDAxYmQwICAgIDB4 MWMzN2Ygdm0ubwogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDAyMmYwICAgICAgICAgICAg ICAgIHJiX2Zfbm90aW1wbGVtZW50CiAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDA0MDQ3ODAg ICAgICAgICAgICAgICAgcmJfdm1fZXBfbG9jYWxfZXAKICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAwMDQwNDdiMCAgICAgICAgICAgICAgICByYl92bV9mcmFtZV9ibG9ja19oYW5kbGVyCiAgICAg ICAgICAgICAgICAweDAwMDAwMDAwMDA0MDQ3ZTAgICAgICAgICAgICAgICAgcmJfdm1fY3JlZl9u ZXdfdG9wbGV2ZWwKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNDg3MCAgICAgICAgICAg ICAgICByYl92bV9ibG9ja19lcF91cGRhdGUKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQw NDg5MCAgICAgICAgICAgICAgICBydWJ5X3ZtX3NwZWNpYWxfZXhjZXB0aW9uX2NvcHkKICAgICAg ICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNjk2MCAgICAgICAgICAgICAgICByYl9lY19zdGFja19v dmVyZmxvdwogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA2OWMwICAgICAgICAgICAgICAg IHJiX3ZtX3B1c2hfZnJhbWUKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNmIyMCAgICAg ICAgICAgICAgICByYl92bV9wb3BfZnJhbWUKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQw NmIzMCAgICAgICAgICAgICAgICByYl9lcnJvcl9hcml0eQogICAgICAgICAgICAgICAgMHgwMDAw MDAwMDAwNDA3MTgwICAgICAgICAgICAgICAgIHJiX3ZtX2ZyYW1lX21ldGhvZF9lbnRyeQogICAg ICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA3NWUwICAgICAgICAgICAgICAgIHJiX3ZtX3Jld3Jp dGVfY3JlZgogICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwNDA3NmYwICAgICAgICAgICAgICAg IHJiX3NpbXBsZV9pc2VxX3AKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDQwNzcwMCAgICAg ICAgICAgICAgICByYl92bV9vcHRfc3RydWN0X2FyZWYKICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAwMDQwNzczMCAgICAgICAgICAgICAgICByYl92bV9vcHRfc3RydWN0X2FzZXQKICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAwMDQwNzc1MCAgICAgICAgICAgICAgICByYl9jbGVhcl9jb25zdGFu dF9jYWNoZQotLS0gdHJ1bmNhdGVkIC0tLQpgYGAKSSBhbHNvIGRhYmJsZWQgd2l0aCB0aGUgaWRl YSBvZiBhbiBgSU5JVEZVTkNgIG1hY3JvIHRoYXQgYWxzbyBwbGFjZXMgdGhlIGBJbml0X3h4eGAg ZnVuY3Rpb25zIGludG8gYSBgdGV4dC5pbml0YCBzZWN0aW9uIGFzIHRoZSBba2VybmVsIGRvZXNd KGh0dHBzOi8vbGludXhnYXpldHRlLm5ldC8xNTcvYW11cnJheS5odG1sKSBmb3IgYSBwb3NzaWJs ZSBmdXR1cmUgb3B0aW1pemF0aW9uIG9mIHN0cmlwcGluZyBvdXQgRUxGIHNlY3Rpb25zIGZvciBz ZXR1cCAvIGluaXQgc3BlY2lmaWMgZnVuY3Rpb25zLiBJIGRvbid0IHRoaW5rIHRoYXQgbWFrZXMg c2Vuc2UgZm9yIG5vdyBhbmQgcG9zc2libHkgb25seSBpbnRlcmVzdGluZyBmb3IgbXJ1Ynkgb3Ig ZW1iZWRkZWQuCgojIyMgUG9zc2libGUgbmV4dCB1bml0cyBvZiB3b3JrCgojIyMjIENvbGQgY29k ZSBzcGVjaWZpYwoKKiBJbmNyZW1lbnRhbGx5IFBSIGNvcm5lciBjYXNlIGVycm9yIGhhbmRsaW5n IGZ1bmN0aW9ucyBzdWNoIGFzIGByYl9idWdgIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkv cnVieS9wdWxsLzE5MjIKKiBEaXR0byBmb3IgZ2VuZXJpYyBlcnJvciBoYW5kbGluZyBmdW5jdGlv bnMgKGByYl9yYWlzZWAgYW5kIGZyaWVuZHMpIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkv cnVieS9wdWxsLzE5MjIKKiBDbGFzcyBzcGVjaWZpYyBlcnJvciBoYW5kbGluZyBmdW5jdGlvbnMg KGxvYWQgZXJyb3JzLCBlbmNvZGluZyBlcnJvcnMgaW4gdGhlIElPIG1vZHVsZSwgc3lzIGVycm9y cyBldGMuKSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8xOTIyCiogR0ND IDUrIGFsc28gc3VwcG9ydHMgYGNvbGRgIFtsYWJlbHNdKGh0dHBzOi8vZ2NjLmdudS5vcmcvb25s aW5lZG9jcy9nY2MvTGFiZWwtQXR0cmlidXRlcy5odG1sKSAsIHdoaWNoIEkgdG9vayBhIHN0YWIg d2l0aCBpbiB0aGUgYmxvYXRlZCBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvMTky MgoKIyMjIyBUTEIgKHRyYW5zbGF0aW9uIGxvb2thc2lkZSBidWZmZXIpIHNwZWNpZmljCgoqIEZ1 cnRoZXIgSVRMQiBvdmVyaGVhZCBpbnZlc3RpZ2F0aW9uCiogUnVieSBiaW5hcmllcyBidWlsdCB3 aXRoIE8zIGFuZCBkZWJ1ZyBzeW1ib2xzIGNvbWUgaW4gYXQganVzdCBzaG9ydCBvZiAxOE1CLCBv ciByb3VnaGx5IDkgaHVnZXBhZ2VzIG9uIGxpbnV4LiBQSFAgY29yZSBkZXZlbG9wZXJzIHdlcmUg YWJsZSB0byBzcXVlZXplIGEgZmV3ICUgYnkgcmVtYXBwaW5nIGNvZGUgdG8gaHVnZXBhZ2VzIG9u IHN1cHBvcnRlZCBzeXN0ZW1zIC0gaHR0cDovL2RldmVsb3BlcnMtY2x1Yi5jb20vcG9zdHMvMjcw Njg1LyAuIEltcGxlbWVudGF0aW9uIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vcGhwL3BocC1z cmMvYmxvYi9mYjAzODliMTAxMGRlNWE2NDU5YmNmMjg2NDA5NDIzZjY5ZTc0YWFmL2V4dC9vcGNh Y2hlL1plbmRBY2NlbGVyYXRvci5jI0wyNjQ1LUwyNzUwKQoKIyMjIyBCeXRlY29kZSBzcGVjaWZp YwoKKiBUaGUgW0ludGVsIFRyYWNpbmcgVGFzayBBUEldKGh0dHBzOi8vc29mdHdhcmUuaW50ZWwu Y29tL2VuLXVzL3Z0dW5lLWFtcGxpZmllci1oZWxwLXRhc2stYXBpKSBpcyB2ZXJ5IHdlbGwgc3Vp dGVkIGZvciB0aGUgaW5zdHJ1Y3Rpb24gc2VxdWVuY2VzIFlBUlYgZ2VuZXJhdGVzIGFuZCB0byBp bmZlciBiZXR0ZXIgcGVyIGluc3RydWN0aW9uIENQVSB1dGlsaXphdGlvbiBhbmQgaWRlbnRpZnkg YW55IHN0YWxscyAoZnJvbnRlbmQsIGJhY2tlbmQsIGJyYW5jaGVzIGV0Yy4pIHRvIGRyaXZlIGZ1 cnRoZXIgd29yay4KCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwo=