[#100689] [Ruby master Feature#17303] Make webrick to bundled gems or remove from stdlib — hsbt@...
Issue #17303 has been reported by hsbt (Hiroshi SHIBATA).
11 messages
2020/11/02
[#100852] [Ruby master Feature#17326] Add Kernel#must! to the standard library — zimmerman.jake@...
SXNzdWUgIzE3MzI2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGpleiAoSmFrZSBaaW1tZXJtYW4pLg0K
24 messages
2020/11/14
[#100930] [Ruby master Feature#17333] Enumerable#many? — masafumi.o1988@...
Issue #17333 has been reported by okuramasafumi (Masafumi OKURA).
10 messages
2020/11/18
[#101071] [Ruby master Feature#17342] Hash#fetch_set — hunter_spawn@...
Issue #17342 has been reported by MaxLap (Maxime Lapointe).
26 messages
2020/11/25
[ruby-core:100888] [Ruby master Feature#17326] Add Kernel#must! to the standard library
From:
petrik@...
Date:
2020-11-17 09:54:40 UTC
List:
ruby-core #100888
SXNzdWUgIzE3MzI2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgcDggKFBldHJpayBkZSBIZXVzKS4NCg0K DQpTaG91bGRuJ3QgdGhpcyBiZSB0aGUgZGVmYXVsdCBpbnN0ZWFkPw0KQW5kIGlmIHlvdSB3YW50 IHRvIGNhbGwgbWV0aG9kcyBvbiBwb3NzaWJsZSBuaWwgdXNlIGAmLmANCg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMTczMjY6IEFkZCBLZXJuZWwj bXVzdCEgdG8gdGhlIHN0YW5kYXJkIGxpYnJhcnkNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3Jn L2lzc3Vlcy8xNzMyNiNjaGFuZ2UtODg1MzYNCg0KKiBBdXRob3I6IGpleiAoSmFrZSBaaW1tZXJt YW4pDQoqIFN0YXR1czogT3Blbg0KKiBQcmlvcml0eTogTm9ybWFsDQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEFic3RyYWN0DQoNCldlIHNob3VsZCBhZGQgYSBt ZXRob2QgYEtlcm5lbCNtdXN0IWAgKG5hbWUgVEJEKSB3aGljaCByYWlzZXMgaWYgYHNlbGZgIGlz IGBuaWxgIGFuZCByZXR1cm5zIGBzZWxmYCBvdGhlcndpc2UuDQoNCg0KIyBCYWNrZ3JvdW5kDQoN ClJ1YnkgMyBpbnRyb2R1Y2VzIHR5cGUgYW5ub3RhdGlvbnMgZm9yIHRoZSBzdGFuZGFyZCBsaWJy YXJ5Lg0KVHlwZSBjaGVja2VycyBjb25zdW1lIHRoZXNlIGFubm90YXRpb25zLCBhbmQgcmVwb3J0 IGVycm9ycyBmb3IgdHlwZSBtaXNtYXRjaGVzLg0KT25lIG9mIHRoZSBtb3N0IGNvbW1vbiBhbmQg bW9zdCB2YWx1YWJsZSB0eXBlIGVycm9ycyBpcyB3aGV0aGVyIGBuaWxgIGlzIGFsbG93ZWQgYXMg YW4gYXJndW1lbnQgb3IgcmV0dXJuIHZhbHVlLg0KU29yYmV0J3MgdHlwZSBzeXN0ZW0gdHJhY2tz IHRoaXMsIGFuZCBSQlMgZmlsZXMgaGF2ZSBzeW50YXggZm9yIGFubm90YXRpbmcgd2hldGhlciBg bmlsYCBpcyBhbGxvd2VkIG9yIG5vdC4NCg0KU2luY2UgU29yYmV0IGNoZWNrcyBwcm9wZXIgdXNh Z2Ugb2YgYG5pbGAsIGl0IHJlcXVpcmVzIGNvZGUgdGhhdCBsb29rcyBsaWtlIHRoaXM6DQoNCmBg YHJ1YnkNCmlmIHRoaW5nLm5pbD8NCiAgcmFpc2UgIlRoZSB0aGluZyB3YXMgbmlsIg0KZW5kDQoN CnRoaW5nLmRvX3NvbWV0aGluZw0KYGBgDQoNClRoaXMgaXMgZ29vZCBiZWNhdXNlIGl0IGZvcmNl cyB0aGUgcHJvZ3JhbW1lciB0byBhY2tub3dsZWRnZSB0aGF0IHRoZSB0aGluZyBtaWdodCBiZSBg bmlsYCwgYW5kIGRlY2xhcmUNCnRoYXQgdGhleSdkIHJhdGhlciByYWlzZSBhbiBleGNlcHRpb24g aW4gdGhhdCBjYXNlIHRoYW4gaGFuZGxlIHRoZSBgbmlsYCAob2YgY291cnNlLCB0aGVyZSBhcmUg bWFueSBvdGhlcg0KdGltZXMgd2hlcmUgYG5pbGAgaXMgYm90aCBwb3NzaWJsZSBhbmQgdmFsaWQs IHdoaWNoIGlzIHdoeSBTb3JiZXQgZm9yY2VzIGF0IGxlYXN0IGNvbnNpZGVyaW5nIGluIGFsbCBj YXNlcykuDQoNCkl0IGlzIGFubm95aW5nIGFuZCByZXBldGl0aXZlIHRvIGhhdmUgdG8gd3JpdGUg dGhlc2UgYGlmIC5uaWw/YCBjaGVja3MgZXZlcnl3aGVyZSB0byBpZ25vcmUgdGhlIHR5cGUgZXJy b3IsDQpzbyBTb3JiZXQgcHJvdmlkZXMgaXQgYXMgYSBsaWJyYXJ5IGZ1bmN0aW9uLCBjYWxsZWQg YFQubXVzdGA6DQoNCmBgYHJ1YnkNClQubXVzdCh0aGluZykuZG9fc29tZXRoaW5nDQpgYGANCg0K U29yYmV0IGtub3dzIHRoYXQgdGhlIGNhbGwgdG8gYFQubXVzdGAgcmFpc2VzIGlmIGB0aGluZ2Ag aXMgYG5pbGAuDQpUbyBtYWtlIHRoaXMgdmVyeSBjb25jcmV0ZSwgaGVyZSdzIGEgU29yYmV0IHBs YXlncm91bmQgd2hlcmUgeW91IGNhbiBzZWUgdGhpcyBpbiBhY3Rpb246DQoNClvihpIgVmlldyBv biBzb3JiZXQucnVuXShodHRwczovL3NvcmJldC5ydW4vIyUyMyUyMHR5cGVkJTNBJTIwdHJ1ZSUw QWV4dGVuZCUyMFQlM0ElM0FTaWclMEElMEFjbGFzcyUyMFRoaW5nJTBBJTIwJTIwZGVmJTIwZG9f c29tZXRoaW5nJTNCJTIwZW5kJTBBZW5kJTBBJTBBc2lnJTIwJTdCcGFyYW1zKHRoaW5nJTNBJTIw VC5uaWxhYmxlKFRoaW5nKSkudm9pZCU3RCUwQWRlZiUyMGV4YW1wbGUxKHRoaW5nKSUwQSUyMCUy MCUyMyUyMGVycm9yJTJDJTIwbWlnaHQlMjBiZSUyMG5pbCUzQSUwQSUyMCUyMHRoaW5nLmRvX3Nv bWV0aGluZyUwQWVuZCUwQSUwQXNpZyUyMCU3QnBhcmFtcyh0aGluZyUzQSUyMFQubmlsYWJsZShU aGluZykpLnZvaWQlN0QlMEFkZWYlMjBleGFtcGxlMih0aGluZyklMEElMjAlMjBpZiUyMHRoaW5n Lm5pbCUzRiUwQSUyMCUyMCUyMCUyMHJhaXNlJTIwJTIyVGhlJTIwdGhpbmclMjB3YXMlMjBuaWwl MjIlMEElMjAlMjBlbmQlMEElMEElMjAlMjAlMjMlMjBubyUyMGVycm9yJTJDJTIwYmVjYXVzZSUy MGl0J3MlMjBhZnRlciUyMHRoZSUyMCU2MGlmJTIwLm5pbCUzRiU2MCUyMGNoZWNrJTNBJTBBJTIw JTIwdGhpbmcuZG9fc29tZXRoaW5nJTBBZW5kJTBBJTBBc2lnJTIwJTdCcGFyYW1zKHRoaW5nJTNB JTIwVC5uaWxhYmxlKFRoaW5nKSkudm9pZCU3RCUwQWRlZiUyMGV4YW1wbGUzKHRoaW5nKSUwQSUy MCUyMCUyMyUyMG5vJTIwZXJyb3IlMkMlMjBiZWNhdXNlJTIwaXQncyUyMGFmdGVyJTIwdGhlJTIw JTYwaWYlMjAubmlsJTNGJTYwJTIwY2hlY2slM0ElMEElMjAlMjBULm11c3QodGhpbmcpLmRvX3Nv bWV0aGluZyUwQWVuZCkNCg0KWW91IGNhbiByZWFkIG1vcmUgYWJvdXQgYFQubXVzdGAgaW4gdGhl IFtTb3JiZXQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9zb3JiZXQub3JnL2RvY3MvdHlwZS1hc3Nl cnRpb25zI3RtdXN0KS4NCg0KDQojIFByb2JsZW0NCg0KV2hpbGUgYFQubXVzdGAgd29ya3MsIGl0 IGlzIG5vdCBpZGVhbCBmb3IgYSBjb3VwbGUgcmVhc29uczoNCg0KMS4gIEl0IGxlYWRzIHRvIGEg d2VpcmQgb3V0d2FyZCBzcGlyYWwgb2YgZmxvdyBjb250cm9sLCB3aGljaCBkaXNydXB0cyBtZXRo b2QgY2hhaW5zOg0KDQogICAgYGBgcnVieQ0KICAgICMg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQDQogICAgIyDilIIgICAgICDilIzilIDi lIDilIDilIDilJAgICAgIOKUgg0KICAgICMg4pa8ICAgICAg4pa8ICAgIOKUgiAgICAg4pSCDQog ICAgVC5tdXN0KFQubXVzdCh0YXNrKS5tYWlsaW5nX3BhcmFtcykuZmV0Y2goJ3RlbXBsYXRlX2Nv bnRleHQnKQ0KICAgICMg4pSCICAgICAg4pSCICAgICAgICAgIOKWsiAgICAgICAgICAgICAgIOKW sg0KICAgICMg4pSCICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg ICAgICAgICAgICAg4pSCDQogICAgIyDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilJgNCiAgICBgYGANCg0KICAgIGNvbXBhcmUgdGhhdCBjb250cm9sIGZsb3cg d2l0aCB0aGlzOg0KDQogICAgYGBgcnVieQ0KICAgICMg4pSM4pSA4pSA4pSA4pSA4pSQ4pSM4pSA 4pSA4pSA4pSA4pSQ4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ 4pSM4pSA4pSA4pSA4pSA4pSQDQogICAgIyDilIIgICAg4pa84pSCICAgIOKWvOKUgiAgICAgICAg ICAgICDilrzilIIgICAg4pa8DQogICAgICB0YXNrLm11c3QhLm1haWxpbmdfcGFyYW1zLm11c3Qh LmZldGNoKCd0ZW1wbGF0ZV9jb250ZXh0JykNCiAgICBgYGANCg0KMi4gIEl0IGlzIG5vdCBhIG1l dGhvZCwgc28geW91IGNhbid0IGBtYXBgIGl0IG92ZXIgYSBsaXN0IHVzaW5nIGBTeW1ib2wjdG9f cHJvY2AuIEluc3RlYWQsIHlvdSBoYXZlIHRvIGV4cGFuZCB0aGUgYmxvY2s6DQoNCiAgICBgYGBy dWJ5DQogICAgYXJyYXlfb2ZfaW50ZWdlcnMgPSBhcnJheV9vZl9uaWxhYmxlX2ludGVnZXJzLm1h cCB7fHh8IFQubXVzdCh4KSB9DQogICAgYGBgDQoNCiAgICBDb21wYXJlIHRoYXQgd2l0aCB0aGlz Og0KDQogICAgYGBgcnVieQ0KICAgIGFycmF5X29mX2ludGVnZXJzID0gYXJyYXlfb2ZfbmlsYWJs ZV9pbnRlZ2Vycy5tYXAoJjptdXN0ISkNCiAgICBgYGANCg0KMy4gIEl0IGlzIGluIGEgU29yYmV0 LXNwZWNpZmljIGdlbS4gV2UgZG8gbm90IGludGVuZCBmb3IgU29yYmV0IHRvIGJlIHRoZSBvbmx5 IHR5cGUgY2hlY2tlci4NCiAgICBJdCB3b3VsZCBiZSBuaWNlIHRvIGhhdmUgc3VjaCBhIG1ldGhv ZCBpbiB0aGUgUnVieSBzdGFuZGFyZCBsaWJyYXJ5IHNvIHRoYXQgaXQgY2FuIGJlIHNoYXJlZCBi eSBhbGwgdHlwZSBjaGVja2Vycy4NCg0KNC4gIFRoaXMgbWV0aG9kIGNhbiBtYWtlIFJ1YnkgY29k ZWJhc2VzIHRoYXQgKipkb24ndCoqIHVzZSB0eXBlIGNoZWNrZXJzIG1vcmUgcm9idXN0IQ0KICAg IGBLZXJuZWwjbXVzdCFgIGNvdWxkIGJlIGFuIGVhc3kgd2F5IHRvIGFzc2VydCBpbnZhcmlhbnRz IGVhcmx5Lg0KICAgIEZhaWxpbmcgZWFybHkgbWFrZXMgaXQgbW9yZSBsaWtlbHkgdGhhdCBhIHRl c3Qgd2lsbCBmYWlsLCByYXRoZXIgdGhhbiBnZXR0aW5nIGBUeXBlRXJyb3JgJ3MgYW5kIGBOb01l dGhvZEVycm9yYCdzIGluIHByb2R1Y3Rpb24uDQogICAgVGhpcyBtYWtlcyBhbGwgUnVieSBjb2Rl IGJldHRlciwgbm90IGp1c3QgdGhlIFJ1YnkgY29kZSB1c2luZyB0eXBlcy4NCg0KDQojIFByb3Bv c2FsDQoNCldlIHNob3VsZCBleHRlbmQgdGhlIFJ1Ynkgc3RhbmRhcmQgbGlicmFyeSB3aXRoIHNv bWV0aGluZyBsaWtlIHRoaXM6Og0KDQpgYGBydWJ5DQptb2R1bGUgS2VybmVsDQogIGRlZiBtdXN0 ITsgc2VsZjsgZW5kDQplbmQNCg0KY2xhc3MgTmlsQ2xhc3MNCiAgZGVmIG11c3QhDQogICAgcmFp c2UgVHlwZUVycm9yLm5ldygibmlsLm11c3QhIikNCiAgZW5kDQplbmQNCmBgYA0KDQpUaGVzZSBt ZXRob2RzIHdvdWxkIGdldCB0eXBlIGFubm90YXRpb25zIHRoYXQgbG9vayBsaWtlIHRoaXM6DQoo dXNpbmcgU29yYmV0J3MgUkJJIHN5bnRheCwgYmVjYXVzZSBJIGRvbid0IGtub3cgUkJTIHdlbGwg eWV0KQ0KDQpgYGBydWJ5DQptb2R1bGUgS2VybmVsDQogIHNpZyB7cmV0dXJucyhULnNlbGZfdHlw ZSl9DQogIGRlZiBtdXN0ITsgZW5kDQplbmQNCg0KY2xhc3MgTmlsQ2xhc3MNCiAgc2lnIHtyZXR1 cm5zKFQubm9yZXR1cm4pfQ0KICBkZWYgbXVzdCE7IGVuZA0KZW5kDQpgYGANCg0KV2hhdCB0aGVz ZSBhbm5vdGF0aW9ucyBzYXk6DQoNCi0gSW4gYEtlcm5lbCNtdXN0IWAsIHRoZSByZXR1cm4gdmFs dWUgaXMgYFQuc2VsZl90eXBlYCwgb3IgIndoYXRldmVyIHRoZSB0eXBlIG9mIHRoZSByZWNlaXZl ciB3YXMuIg0KICBUaGF0IG1lYW5zIHRoYXQgYDAubXVzdCFgIHdpbGwgaGF2ZSB0eXBlIGBJbnRl Z2VyYCwgYCIiLm11c3QhYCB3aWxsIGhhdmUgdHlwZSBgU3RyaW5nYCwgZXRjLg0KDQotIEluIGBO aWxDbGFzcyNtdXN0IWAsIHRoZXJlIGlzIGFuIG92ZXJyaWRlIG9mIGBLZXJuZWwjbXVzdCFgIHdp dGggcmV0dXJuIHR5cGUgYFQubm9yZXR1cm5gLg0KICBUaGlzIGlzIGEgZmFuY3kgdHlwZSB0aGF0 IHNheXMgInRoaXMgY29kZSBlaXRoZXIgaW5maW5pdGVseSBsb29wcyBvciByYWlzZXMgYW4gZXhj ZXB0aW9uLiINCiAgVGhpcyBpcyB0aGUgbmFtZSBmb3IgU29yYmV0J3MgW2JvdHRvbSB0eXBlXSho dHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Cb3R0b21fdHlwZSksIGlmIHlvdQ0KICBhcmUg ZmFtaWxpYXIgd2l0aCB0aGF0IHRlcm1pbm9sb2d5Lg0KDQpIZXJlIGlzIGEgU29yYmV0IGV4YW1w bGUgd2hlcmUgeW91IGNhbiBzZWUgaG93IHRoZXNlIGFubm90YXRpb25zIGJlaGF2ZToNCg0KW+KG kiBWaWV3IG9uIHNvcmJldC5ydW5dKGh0dHBzOi8vc29yYmV0LnJ1bi8jJTIzJTIwdHlwZWQlM0El MjB0cnVlJTBBJTBBbW9kdWxlJTIwS2VybmVsJTBBJTIwJTIwVCUzQSUzQVNpZyUzQSUzQVdpdGhv dXRSdW50aW1lLnNpZyUyMCU3QnJldHVybnMoVC5zZWxmX3R5cGUpJTdEJTBBJTIwJTIwZGVmJTIw bXVzdCElM0IlMjBzZWxmJTNCJTIwZW5kJTBBZW5kJTBBJTBBY2xhc3MlMjBOaWxDbGFzcyUwQSUy MCUyMFQlM0ElM0FTaWclM0ElM0FXaXRob3V0UnVudGltZS5zaWclMjAlN0JyZXR1cm5zKFQubm9y ZXR1cm4pJTdEJTBBJTIwJTIwZGVmJTIwbXVzdCElMEElMjAlMjAlMjAlMjByYWlzZSUyMFR5cGVF cnJvci5uZXcoJTIybmlsLm11c3QhJTIyKSUwQSUyMCUyMGVuZCUwQWVuZCUwQSUwQXhzJTIwJTNE JTIwVCUzQSUzQUFycmF5JTVCSW50ZWdlciU1RC5uZXcoJTVCMCU1RCklMEFULnJldmVhbF90eXBl KHhzLmZpcnN0KSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMFQubmlsYWJsZShJbnRlZ2VyKSUw QVQucmV2ZWFsX3R5cGUoeHMuZmlyc3QubXVzdCEpJTIwJTIzJTIwSW50ZWdlciUwQSUwQXlzJTIw JTNEJTIwVCUzQSUzQUFycmF5JTVCVC5uaWxhYmxlKEludGVnZXIpJTVELm5ldyglNUIwJTJDJTIw bmlsJTJDJTIwMSUyQyUyMG5pbCUyQyUyMDIlNUQpJTBBVC5yZXZlYWxfdHlwZSh5cyklMjAlMjAl MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBUJTNBJTNBQXJyYXklNUJU Lm5pbGFibGUoSW50ZWdlciklNUQlMEFULnJldmVhbF90eXBlKHlzLm1hcCglMjYlM0FtdXN0ISkp JTIwJTIzJTIwVCUzQSUzQUFycmF5JTVCSW50ZWdlciU1RCkNCg0KIyBBbHRlcm5hdGl2ZXMgY29u c2lkZXJlZA0KDQpUaGVyZSB3YXMgc29tZSBkaXNjdXNzaW9uIG9mIHRoaXMgZmVhdHVyZSBhdCB0 aGUgRmViIDIwMjAgUnVieSBUeXBlcyBkaXNjdXNzaW9uOg0KDQpTdW1tYXJpemluZzoNCg0KLSBT b3JiZXQgdGVhbSBmcmVxdWVudGx5IHJlY29tbWVuZHMgcGVvcGxlIHRvIHVzZSBgeHMuZmV0Y2go MClgIGluc3RlYWQgb2YgYFQubXVzdCh4c1swXSlgDQogIG9uIGBBcnJheWAncyBhbmQgYEhhc2hg J3MgYmVjYXVzZSBpdCBjaGFpbnMgYW5kIHJlYWRzIGJldHRlci4NCiAgYC5mZXRjaGAgbm90IGF2 YWlsYWJsZSBvbiBvdGhlciBjbGFzc2VzLg0KDQotIEl0J3MgaW50ZW50aW9uYWwgdGhhdCBgVC5t dXN0YCByZXF1aXJlcyBhcyBtYW55IGNoYXJhY3RlcnMgYXMgaXQgZG9lcy4NCiAgTWFraW5nIGl0 IHNsaWdodGx5IGFubm95aW5nIHRvIHR5cGUgZW5jb3VyYWdlcyBkZXZlbG9wZXJzIHRvIHJlZmFj dG9yIHRoZWlyIGNvZGUgc28gdGhhdCBgbmlsYCBuZXZlciBvY2N1cnMuDQoNCi0gVGhlcmUgd2Fz IGEgcHJvcG9zYWwgdG8gaW50cm9kdWNlIG5ldyBzeW50YXggbGlrZSBgdGhpbmcuISFgLiBUaGlz IGlzIGN1cnJlbnRseSBhIHN5bnRheCBlcnJvci4NCg0KICAqKlJlYnV0dGFsKio6IFRoZXJlIGlz IGJ1cmRlbiB0byBpbnRyb2R1Y2luZyBuZXcgc3ludGF4LiBUb29scyBsaWtlIFJ1Ym9jb3AsIFNv cmJldCwgYW5kIHN5bnRheCBoaWdobGlnaHRpbmcNCiAgcGx1Z2lucyBoYXZlIHRvIGJlIHVwZGF0 ZWQuIEFsc286IGl0IGlzIGhhcmQgdG8gc2VhcmNoIGZvciBvbiBHb29nbGUgKGFzIGEgbmV3IFJ1 YnkgZGV2ZWxvcGVyKS4gQWxzbzogaXQNCiAgaXMgdmVyeSBzaG9ydOKAlGhhdmluZyBzb21ldGhp bmcgc2xpZ2h0bHkgc2hvcnRlciBtYWtlcyBwZW9wbGUgdGhpbmsgYWJvdXQgd2hldGhlciB0aGV5 IHdhbnQgdG8gdHlwZSBpdCBvdXQNCiAgaW5zdGVhZCBvZiBjaGFuZ2luZyB0aGUgY29kZSBzbyB0 aGF0IGBuaWxgIGNhbid0IG9jY3VyLg0KDQpBbm90aGVyIGFsdGVybmF0aXZlIHdvdWxkIGJlIHRv IGRpc21pc3MgdGhpcyBhcyAibm90IHVzZWZ1bCAvIGNvbW1vbiBlbm91Z2giLiBJIGRvbid0IHRo aW5rIHRoYXQncyB0cnVlLg0KSGVyZSBhcmUgc29tZSBzdGF0aXN0aWNzIGZyb20gU3RyaXBlJ3Mg UnVieSBtb25vbGl0aCAofjEwIG1pbGxpb24gbGluZXMgb2YgY29kZSk6DQoNCnwgbWV0aG9vZCB8 IHBlcmNlbnRhZ2Ugb2YgZmlsZXMgbWVudGlvbmluZyBtZXRob2QgfCBudW1iZXIgb2Ygb2NjdXJy ZW5jZXMgb2YgbWV0aG9kIHwNCnwgLS0tIHwgLS0tIHwgLS0tIHwNCnwgYC5uaWw/YCB8IDE2LjY5 JSB8IDMxMzQwIHwNCnwgYFQubXVzdGAgfCAyMy44OSUgfCA3NDc0MiB8DQoNCkZyb20gdGhpcywg d2Ugc2VlIHRoYXQNCg0KLSBgVC5tdXN0YCBpcyBpbiAxLjQzeCBtb3JlIGZpbGVzIHRoYW4gYC5u aWw/YA0KLSBgVC5tdXN0YCBvY2N1cnMgMi4zOHggbW9yZSBvZnRlbiB0aGFuIGAubmlsP2ANCg0K DQojIE5hbWluZw0KDQpJIHByZWZlciBgbXVzdCFgIGJlY2F1c2UgaXQgaXMgd2hhdCB0aGUgbWV0 aG9kIGluIFNvcmJldCBpcyBhbHJlYWR5IGNhbGxlZC4NCg0KSSBhbSBvcGVuIHRvIG5hbWluZyBz dWdnZXN0aW9ucy4gUGxlYXNlIHByb3ZpZGUgcmVhc29uaW5nLg0KDQoNCiMgRGlzY3Vzc2lvbg0K DQpJbiB0aGUgYWJvdmUgZXhhbXBsZSwgSSB1c2VkIGBULm11c3RgIHR3aWNlLiBBbiBhbHRlcm5h dGl2ZSB3YXkgdG8gaGF2ZSB3cml0dGVuIHRoYXQgd291bGQgaGF2ZSBiZWVuIHVzaW5nIHNhdmUg bmF2aWdhdGlvbjoNCg0KYGBgcnVieQ0KVC5tdXN0KHRhc2smLm1haWxpbmdfcGFyYW1zKS5mZXRj aCgndGVtcGxhdGVfY29udGV4dCcpDQpgYGANCg0KVGhpcyB3b3JrcyBhcyB3ZWxsLiBUaGUgcHJv cG9zZWQgYC5tdXN0IWAgbWV0aG9kIHdvcmtzIGp1c3QgYXMgd2VsbCB3aGVuIGNoYWluaW5nIG1l dGhvZHMgd2l0aCBzYWZlIG5hdmlnYXRpb246DQoNCmBgYHJ1YnkNCnRhc2smLm1haWxpbmdfcGFy YW1zLm11c3QhLmZldGNoKCd0ZW1wbGF0ZV9jb250ZXh0JykNCmBgYA0KDQpIb3dldmVyLCB0aGVy ZSBpcyBzdGlsbCBtZXJpdCBpbiB1c2luZyBgVC5tdXN0YCAob3IgYC5tdXN0IWApIHR3aWNl4oCU aXQgY2FsbHMgb3V0IHRoYXQgdGhlIHByb2dyYW1tZXINCmludGVuZGVkIG5laXRoZXIgbG9jYXRp b24gdG8gYmUgYG5pbGAuIEluIGZhY3QsIGlmIHRoaXMgbWV0aG9kIGhhZCBiZWVuIGNoYWluZWQg YWNyb3NzIG11bHRpcGxlIGxpbmVzLA0KdGhlIGJhY2t0cmFjZSB3b3VsZCBpbmNsdWRlIGxpbmUg bnVtYmVycyBzYXlpbmcgc3BlY2lmaWNhbGx5ICoqd2hpY2gqKiBgLm11c3QhYCBmYWlsZWQ6DQoN Cg0KYGBgcnVieQ0KdGFzay5tdXN0IQ0KICAubWFpbGluZ19wYXJhbXMubXVzdCENCiAgLmZldGNo KCd0ZW1wbGF0ZV9jb250ZXh0JykNCmBgYA0KDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5 LWxhbmcub3JnLw0KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1Ynkt bGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3Jn L2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K