[ruby-core:121565] [Ruby Feature#21254] Inlining Class#new
From:
"tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>
Date:
2025-04-07 23:03:05 UTC
List:
ruby-core #121565
SXNzdWUgIzIxMjU0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHRlbmRlcmxvdmVtYWtpbmcgKEFhcm9u IFBhdHRlcnNvbikuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CkZlYXR1cmUgIzIxMjU0OiBJbmxpbmluZyBDbGFzcyNuZXcNCmh0dHBzOi8vYnVncy5ydWJ5LWxh bmcub3JnL2lzc3Vlcy8yMTI1NA0KDQoqIEF1dGhvcjogdGVuZGVybG92ZW1ha2luZyAoQWFyb24g UGF0dGVyc29uKQ0KKiBTdGF0dXM6IE9wZW4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCldlIHdvdWxkIGxpa2UgdG8gcHJvcG9zZSBpbmxpbmluZyBZQVJWIGJ5dGVj b2RlIGZvciBzcGVlZGluZyB1cCBvYmplY3QgYWxsb2NhdGlvbnMsIHNwZWNpZmljYWxseSBpbmxp bmluZyB0aGUgYENsYXNzI25ld2AgbWV0aG9kLiAgSW4gb3JkZXIgdG8gc3VwcG9ydCBpbmxpbmlu ZyB0aGlzIG1ldGhvZCwgd2Ugd291bGQgbGlrZSB0byBpbnRyb2R1Y2UgYSBuZXcgWUFSViBpbnN0 cnVjdGlvbiBgb3B0X25ld2AuICBUaGlzIGluc3RydWN0aW9uIHdpbGwgYWxsb2NhdGUgYW4gb2Jq ZWN0IGlmIHRoZSBkZWZhdWx0IGFsbG9jYXRvciBpcyBub3Qgb3ZlcnJpZGRlbiwgb3RoZXJ3aXNl IGl0IHdpbGwganVtcCB0byBhIOKAnHNsb3cgcGF0aOKAnSBmb3IgY2FsbGluZyBhIG1ldGhvZC4N Cg0KYENsYXNzI25ld2AgZXNwZWNpYWxseSBiZW5lZml0cyBmcm9tIGlubGluaW5nIGZvciB0d28g cmVhc29uczoNCjEuIENhbGxpbmcgYGluaXRpYWxpemVgIGRpcmVjdGx5IG1lYW5zIHdlIGRvbid0 IG5lZWQgdG8gYWxsb2NhdGUgYSB0ZW1wb3JhcnkgaGFzaCBmb3Iga2V5d29yZCBhcmd1bWVudHMN CjIuIFdlIGFyZSBhYmxlIHRvIHVzZSBhbiBpbmxpbmUgY2FjaGUgd2hlbiBjYWxsaW5nIHRoZSBg aW5pdGlhbGl6ZWAgbWV0aG9kDQoNClRoZSBwYXRjaCBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBz Oi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8xMzA4MCksIGJ1dCBwbGVhc2UgZmluZCBpbXBs ZW1lbnRhdGlvbiBkZXRhaWxzIGJlbG93Lg0KDQojIyBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzDQpU aGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBjb21waWxlciB0byBlbWl0IHNwZWNpYWwgaW5zdHJ1Y3Rp b25zIHdoZW4gaXQgc2VlcyBhIGNhbGxzaXRlIHRoYXQgdXNlcyDigJxuZXfigJ0uICBCZWZvcmUg dGhpcyBwYXRjaCwgY2FsbGluZyBgT2JqZWN0Lm5ld2Agd291bGQgcmVzdWx0IGluIGJ5dGVjb2Rl IGxpa2UgdGhpczoNCg0KYGBgDQpydWJ5IC0tZHVtcD1pbnNucyAtZSdPYmplY3QubmV3Jw0KPT0g ZGlzYXNtOiAjPElTZXE6PG1haW4+QC1lOjEgKDEsMCktKDEsMTApPg0KMDAwMCBvcHRfZ2V0Y29u c3RhbnRfcGF0aCAgICAgICAgICAgICAgICAgICA8aWM6MCBPYmplY3Q+ICAgICAgICAgICAgICgg ICAxKVtMaV0NCjAwMDIgb3B0X3NlbmRfd2l0aG91dF9ibG9jayAgICAgICAgICAgICAgICAgPGNh bGxkYXRhIW1pZDpuZXcsIGFyZ2M6MCwgQVJHU19TSU1QTEU+DQowMDA0IGxlYXZlDQpgYGANCg0K V2l0aCB0aGlzIHBhdGNoLCB0aGUgYnl0ZWNvZGUgbG9va3MgbGlrZSB0aGlzOg0KDQpgYGANCi4v cnVieSAtLWR1bXA9aW5zbnMgLWUnT2JqZWN0Lm5ldycNCj09IGRpc2FzbTogIzxJU2VxOjxtYWlu PkAtZToxICgxLDApLSgxLDEwKT4NCjAwMDAgb3B0X2dldGNvbnN0YW50X3BhdGggICAgICAgICAg ICAgICAgICAgPGljOjAgT2JqZWN0PiAgICAgICAgICAgICAoICAgMSlbTGldDQowMDAyIHB1dG5p bA0KMDAwMyBzd2FwDQowMDA0IG9wdF9uZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxjYWxsZGF0YSFtaWQ6bmV3LCBhcmdjOjAsIEFSR1NfU0lNUExFPiwgMTENCjAwMDcgb3B0X3Nl bmRfd2l0aG91dF9ibG9jayAgICAgICAgICAgICAgICAgPGNhbGxkYXRhIW1pZDppbml0aWFsaXpl LCBhcmdjOjAsIEZDQUxMfEFSR1NfU0lNUExFPg0KMDAwOSBqdW1wICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxNA0KMDAxMSBvcHRfc2VuZF93aXRob3V0X2Jsb2NrICAgICAgICAg ICAgICAgICA8Y2FsbGRhdGEhbWlkOm5ldywgYXJnYzowLCBBUkdTX1NJTVBMRT4NCjAwMTMgc3dh cA0KMDAxNCBwb3ANCjAwMTUgbGVhdmUNCmBgYA0KDQpUaGUgbmV3IGBvcHRfbmV3YCBpbnN0cnVj dGlvbiBjaGVja3Mgd2hldGhlciBvciBub3QgdGhlIGBuZXdgIGltcGxlbWVudGF0aW9uIGlzIHRo ZSBkZWZhdWx0IOKAnGFsbG9jYXRvcuKAnSBpbXBsZW1lbnRhdGlvbi4gIElmIGl0IGlzIHRoZSBk ZWZhdWx0IGFsbG9jYXRvciwgdGhlbiB0aGUgaW5zdHJ1Y3Rpb24gd2lsbCBhbGxvY2F0ZSB0aGUg b2JqZWN0IGFuZCBjYWxsIGluaXRpYWxpemUgcGFzc2luZyBwYXJhbWV0ZXJzIHRvIGluaXRpYWxp emUgYnV0IG5vdCB0byBgbmV3YC4gIElmIHRoZSBtZXRob2QgaXMgbm90IHRoZSBkZWZhdWx0IGFs bG9jYXRvciBpbXBsZW1lbnRhdGlvbiwgaXQgd2lsbCBqdW1wIHRvIHRoZSBub3JtYWwgbWV0aG9k IGRpc3BhdGNoIGluc3RydWN0aW9ucy4NClBlcmZvcm1hbmNlIEltcHJvdmVtZW50cw0KVGhpcyBw YXRjaCBpbXByb3ZlcyBwZXJmb3JtYW5jZSBvZiBhbGwgYWxsb2NhdGlvbnMgdGhhdCB1c2UgdGhl IG5vcm1hbCDigJxuZXfigJ0gbWV0aG9kIGZvciBhbGxvY2F0aW9uLiAgSGVyZSBhcmUgdHdvIGV4 YW1wbGVzIChhbGwgb2YgdGhlc2UgYmVuY2htYXJrcyBjb21wYXJlIFJ1YnkgMy40LjIgYWdhaW5z dCBSdWJ5IG1hc3RlciB3aXRoIGlubGluaW5nIHBhdGNoKToNCg0KQSBzaW1wbGUgYE9iamVjdC5u ZXdgIGluIGEgaG90IGxvb3AgaW1wcm92ZXMgYnkgYWJvdXQgMjQlOg0KDQpgYGANCmh5cGVyZmlu ZSAicnVieSAtLWRpc2FibGUtZ2VtcyAtZSdpID0gMDsgd2hpbGUgaSA8IDEwXzAwMF8wMDA7IE9i amVjdC5uZXc7IGkgKz0gMTsgZW5kJyIgIi4vcnVieSAtLWRpc2FibGUtZ2VtcyAtZSdpID0gMDsg d2hpbGUgaSA8IDEwXzAwMF8wMDA7IE9iamVjdC5uZXc7IGkgKz0gMTsgZW5kJyINCkJlbmNobWFy ayAxOiBydWJ5IC0tZGlzYWJsZS1nZW1zIC1lJ2kgPSAwOyB3aGlsZSBpIDwgMTBfMDAwXzAwMDsg T2JqZWN0Lm5ldzsgaSArPSAxOyBlbmQnDQogIFRpbWUgKG1lYW4gwrEgz4MpOiAgICAgNDM2LjYg bXMgwrEgICAzLjMgbXMgICAgW1VzZXI6IDQzMi4zIG1zLCBTeXN0ZW06IDMuOCBtc10NCiAgUmFu Z2UgKG1pbiDigKYgbWF4KTogICA0MzAuNSBtcyDigKYgNDQyLjYgbXMgICAgMTAgcnVucw0KIA0K QmVuY2htYXJrIDI6IC4vcnVieSAtLWRpc2FibGUtZ2VtcyAtZSdpID0gMDsgd2hpbGUgaSA8IDEw XzAwMF8wMDA7IE9iamVjdC5uZXc7IGkgKz0gMTsgZW5kJw0KICBUaW1lIChtZWFuIMKxIM+DKTog ICAgIDM1MS4xIG1zIMKxICAgMy42IG1zICAgIFtVc2VyOiAzNDcuNCBtcywgU3lzdGVtOiAzLjMg bXNdDQogIFJhbmdlIChtaW4g4oCmIG1heCk6ICAgMzQzLjkgbXMg4oCmIDM1Ny40IG1zICAgIDEw IHJ1bnMNCiANClN1bW1hcnkNCiAgLi9ydWJ5IC0tZGlzYWJsZS1nZW1zIC1lJ2kgPSAwOyB3aGls ZSBpIDwgMTBfMDAwXzAwMDsgT2JqZWN0Lm5ldzsgaSArPSAxOyBlbmQnIHJhbg0KICAgIDEuMjQg wrEgMC4wMiB0aW1lcyBmYXN0ZXIgdGhhbiBydWJ5IC0tZGlzYWJsZS1nZW1zIC1lJ2kgPSAwOyB3 aGlsZSBpIDwgMTBfMDAwXzAwMDsgT2JqZWN0Lm5ldzsgaSArPSAxOyBlbmQnDQpgYGANCg0KVXNp bmcgYSBzaW5nbGUga2V5d29yZCBhcmd1bWVudCBpcyBpbXByb3ZlZCBieSBhYm91dCA3MiU6DQoN CmBgYA0KPiBoeXBlcmZpbmUgInJ1YnkgLS1kaXNhYmxlLWdlbXMgLWUnaSA9IDA7IHdoaWxlIGkg PCAxMF8wMDBfMDAwOyBIYXNoLm5ldyhjYXBhY2l0eTogMCk7IGkgKz0gMTsgZW5kJyIgIi4vcnVi eSAtLWRpc2FibGUtZ2VtcyAtZSdpID0gMDsgd2hpbGUgaSA8IDEwXzAwMF8wMDA7IEhhc2gubmV3 KGNhcGFjaXR5OiAwKTsgaSArPSAxOyBlbmQnIg0KQmVuY2htYXJrIDE6IHJ1YnkgLS1kaXNhYmxl LWdlbXMgLWUnaSA9IDA7IHdoaWxlIGkgPCAxMF8wMDBfMDAwOyBIYXNoLm5ldyhjYXBhY2l0eTog MCk7IGkgKz0gMTsgZW5kJw0KICBUaW1lIChtZWFuIMKxIM+DKTogICAgICAxLjA4MiBzIMKxICAw LjAwNyBzICAgIFtVc2VyOiAxLjA3NCBzLCBTeXN0ZW06IDAuMDA4IHNdDQogIFJhbmdlIChtaW4g 4oCmIG1heCk6ICAgIDEuMDcxIHMg4oCmICAxLjA5MSBzICAgIDEwIHJ1bnMNCiANCkJlbmNobWFy ayAyOiAuL3J1YnkgLS1kaXNhYmxlLWdlbXMgLWUnaSA9IDA7IHdoaWxlIGkgPCAxMF8wMDBfMDAw OyBIYXNoLm5ldyhjYXBhY2l0eTogMCk7IGkgKz0gMTsgZW5kJw0KICBUaW1lIChtZWFuIMKxIM+D KTogICAgIDYyNy42IG1zIMKxICAgNC44IG1zICAgIFtVc2VyOiA2MjIuNiBtcywgU3lzdGVtOiA0 LjUgbXNdDQogIFJhbmdlIChtaW4g4oCmIG1heCk6ICAgNjIyLjEgbXMg4oCmIDYzNy4yIG1zICAg IDEwIHJ1bnMNCiANClN1bW1hcnkNCiAgLi9ydWJ5IC0tZGlzYWJsZS1nZW1zIC1lJ2kgPSAwOyB3 aGlsZSBpIDwgMTBfMDAwXzAwMDsgSGFzaC5uZXcoY2FwYWNpdHk6IDApOyBpICs9IDE7IGVuZCcg cmFuDQogICAgMS43MiDCsSAwLjAyIHRpbWVzIGZhc3RlciB0aGFuIHJ1YnkgLS1kaXNhYmxlLWdl bXMgLWUnaSA9IDA7IHdoaWxlIGkgPCAxMF8wMDBfMDAwOyBIYXNoLm5ldyhjYXBhY2l0eTogMCk7 IGkgKz0gMTsgZW5kJw0KYGBgDQoNClRoZSBwZXJmb3JtYW5jZSBpbmNyZWFzZSBkZXBlbmRzIG9u IHRoZSBudW1iZXIgYW5kIHR5cGUgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gYGluaXRpYWxpemVg LiAgRm9yIGV4YW1wbGUsIGFuIGBpbml0aWFsaXplYCBtZXRob2QgdGhhdCB0YWtlcyAzIHBhcmFt ZXRlcnMgY2FuIHNlZSBhIHNwZWVkIGltcHJvdmVtZW50IG9mIH4zeDoNCg0KYGBgDQphYXJvbkB0 Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IGNhdCB0ZXN0LnJiDQpjbGFzcyBG b28NCiAgZGVmIGluaXRpYWxpemUgYTosIGI6LCBjOg0KICBlbmQNCmVuZA0KaSA9IDANCndoaWxl IGkgPCAxMF8wMDBfMDAwDQogIEZvby5uZXcoYTogMSwgYjogMiwgYzogMykNCiAgRm9vLm5ldyhh OiAxLCBiOiAyLCBjOiAzKQ0KICBGb28ubmV3KGE6IDEsIGI6IDIsIGM6IDMpDQogIGkgKz0gMQ0K ZW5kDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IGh5cGVyZmlu ZSAicnVieSAtLWRpc2FibGUtZ2VtcyB0ZXN0LnJiIiAiLi9ydWJ5IC0tZGlzYWJsZS1nZW1zIHRl c3QucmIiDQpCZW5jaG1hcmsgMTogcnVieSAtLWRpc2FibGUtZ2VtcyB0ZXN0LnJiDQogIFRpbWUg KG1lYW4gwrEgz4MpOiAgICAgIDMuNzAwIHMgwrEgIDAuMDMzIHMgICAgW1VzZXI6IDMuNjgxIHMs IFN5c3RlbTogMC4wMTggc10NCiAgUmFuZ2UgKG1pbiDigKYgbWF4KTogICAgMy42MzYgcyDigKYg IDMuNzUxIHMgICAgMTAgcnVucw0KIA0KQmVuY2htYXJrIDI6IC4vcnVieSAtLWRpc2FibGUtZ2Vt cyB0ZXN0LnJiDQogIFRpbWUgKG1lYW4gwrEgz4MpOiAgICAgIDEuMTgyIHMgwrEgIDAuMDEzIHMg ICAgW1VzZXI6IDEuMTczIHMsIFN5c3RlbTogMC4wMDggc10NCiAgUmFuZ2UgKG1pbiDigKYgbWF4 KTogICAgMS4xNjUgcyDigKYgIDEuMjAzIHMgICAgMTAgcnVucw0KIA0KU3VtbWFyeQ0KICAuL3J1 YnkgLS1kaXNhYmxlLWdlbXMgdGVzdC5yYiByYW4NCiAgICAzLjEzIMKxIDAuMDQgdGltZXMgZmFz dGVyIHRoYW4gcnVieSAtLWRpc2FibGUtZ2VtcyB0ZXN0LnJiDQpgYGANCg0KT25lIGZhY3RvciBp biB0aGUgcGVyZm9ybWFuY2UgaW5jcmVhc2UgZm9yIGtleXdvcmQgYXJndW1lbnRzIGlzIHRoYXQg aW5saW5pbmcgaXMgYWJsZSB0byBlbGltaW5hdGUgdGhlIGhhc2ggYWxsb2NhdGlvbiB3aGVuIGNh bGxpbmcg4oCcdGhyb3VnaOKAnSB0aGUgQyBpbXBsZW1lbnRhdGlvbiBvZiBgQ2xhc3MjbmV3YDoN Cg0KYGBgDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IGNhdCB0 ZXN0LnJiDQpjbGFzcyBGb28NCiAgZGVmIGluaXRpYWxpemUgYTosIGI6LCBjOg0KICBlbmQNCmVu ZA0KZGVmIGFsbG9jcw0KICB4ID0gR0Muc3RhdCg6dG90YWxfYWxsb2NhdGVkX29iamVjdHMpDQog IHlpZWxkDQogIEdDLnN0YXQoOnRvdGFsX2FsbG9jYXRlZF9vYmplY3RzKSAtIHgNCmVuZA0KZGVm IHRlc3Q7IGFsbG9jcyB7IEZvby5uZXcoYTogMSwgYjogMiwgYzogMykgfTsgZW5kDQp0ZXN0DQpw IHRlc3QNCmFhcm9uQHRjLWxhbi1hZGFwdGVyIH4vZy9ydWJ5IChpbmxpbmUtbmV3KT4gcnVieSAt diB0ZXN0LnJiDQpydWJ5IDMuNC4yICgyMDI1LTAyLTE1IHJldmlzaW9uIGQyOTMwZjhlN2EpICtQ UklTTSBbYXJtNjQtZGFyd2luMjRdDQoyDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAo aW5saW5lLW5ldyk+IC4vcnVieSAtdiB0ZXN0LnJiDQpydWJ5IDMuNS4wZGV2ICgyMDI1LTA0LTAz VDEzOjAzOjE5WiBpbmxpbmUtbmV3IDU2N2M1NDIwOGMpICtQUklTTSBbYXJtNjQtZGFyd2luMjRd DQoxDQpgYGANCg0KIyMgTWVtb3J5IEluY3JlYXNlDQoNCk9mIGNvdXJzZSB0aGlzIHBhdGNoIGlz IG5vdCDigJxmcmVl4oCdLiAgSW5saW5pbmcgdGhlIG1ldGhvZCBjYWxsIGFkZHMgZXh0cmEgWUFS ViBpbnN0cnVjdGlvbnMuICBXZSBlc3RpbWF0ZSB0aGlzIHBhdGNoIGluY3JlYXNlcyBgbmV3YCBj YWxsIHNpdGVzIGJ5IGFib3V0IDEyMiBieXRlczoNCg0KYGBgDQphYXJvbkB0Yy1sYW4tYWRhcHRl ciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IGNhdCB0ZXN0LnJiDQpyZXF1aXJlICJvYmpzcGFjZSIN CmNsYXNzIEZvbw0KICBkZWYgaW5pdGlhbGl6ZQ0KICBlbmQNCmVuZA0KZGVmIHRlc3QNCiAgRm9v Lm5ldw0KZW5kDQpwdXRzIE9iamVjdFNwYWNlLm1lbXNpemVfb2YoUnVieVZNOjpJbnN0cnVjdGlv blNlcXVlbmNlLm9mKG1ldGhvZCg6dGVzdCkpKQ0KYWFyb25AdGMtbGFuLWFkYXB0ZXIgfi9nL3J1 YnkgKGlubGluZS1uZXcpPiBydWJ5IC12IHRlc3QucmINCnJ1YnkgMy40LjIgKDIwMjUtMDItMTUg cmV2aXNpb24gZDI5MzBmOGU3YSkgK1BSSVNNIFthcm02NC1kYXJ3aW4yNF0NCjU0NA0KYWFyb25A dGMtbGFuLWFkYXB0ZXIgfi9nL3J1YnkgKGlubGluZS1uZXcpPiAuL3J1YnkgLXYgdGVzdC5yYg0K cnVieSAzLjUuMGRldiAoMjAyNS0wNC0wM1QxMzowMzoxOVogaW5saW5lLW5ldyA1NjdjNTQyMDhj KSArUFJJU00gW2FybTY0LWRhcndpbjI0XQ0KNjU2DQpgYGANCg0KV2XigJl2ZSB0ZXN0ZWQgdGhp cyBpbiBTaG9waWZ54oCZcyBtb25vbGl0aCwgY29tcGFyaW5nIFJ1YnkgMy40LjIgYW5kIFJ1Ynkg My41K2lubGluaW5nLCBhbmQgaXQgc2VlbXMgdG8gaW5jcmVhc2UgdG90YWwgSVNFUSBtZW1lc2l6 ZSBieSBhYm91dCAzLjhtYiAocm91Z2hseSAwLjUlIGluY3JlYXNlIGluIElTRVEgc2l6ZSk6DQoN CmBgYA0KaXJiKG1haW4pOjAwMT4gNzM3MTkxOTcyIC0gNzMzMzU0Mzg4DQo9PiAzODM3NTg0DQpg YGANCg0KSG93ZXZlciwgUnVieSAzLjUgaGFzIG1vcmUgb3ZlcmFsbCBJU0VRIG9iamVjdHMgdGhh biBSdWJ5IDMuNC4yOg0KDQpgYGANCmFhcm9uQEFhcm9ucy1NYWNCb29rLVBybyB+L0Rvd25sb2Fk cz4gd2MgLWwgc2l6ZXMtaW5saW5lLnR4dA0KICA3ODk1NDUgc2l6ZXMtaW5saW5lLnR4dA0KYWFy b25AQWFyb25zLU1hY0Jvb2stUHJvIH4vRG93bmxvYWRzPiB3YyAtbCBzaXplcy0zLjQudHh0DQog IDc4OTQ3OSBzaXplcy0zLjQudHh0DQpgYGANCg0KV2Ugc2VlIHRvdGFsIGhlYXAgc2l6ZSBhcyBy ZXBvcnRlZCBieSBgbWVtc2l6ZWAgdG8gb25seSBpbmNyZWFzZSBieSBhYm91dCAxTUI6DQoNCmBg YA0KaXJiKG1haW4pOjAwMT4gMzk4MTA3NTYxNyAtIDM5Nzk5MjY1MDUNCj0+IDExNDkxMTINCmBg YA0KDQojIyBDaGFuZ2VzIHRvIGBjYWxsZXJgDQoNClRoaXMgcGF0Y2ggY2hhbmdlcyBgY2FsbGVy YCByZXBvcnRpbmcgaW4gdGhlIGBpbml0aWFsaXplYCBtZXRob2Q6DQoNCmBgYA0KYWFyb25AdGMt bGFuLWFkYXB0ZXIgfi9nL3J1YnkgKGlubGluZS1uZXcpPiBjYXQgdGVzdC5yYg0KcmVxdWlyZSAi b2Jqc3BhY2UiDQoNCmNsYXNzIEZvbw0KICBkZWYgaW5pdGlhbGl6ZQ0KICAgIHB1dHMgY2FsbGVy DQogIGVuZA0KZW5kDQoNCmRlZiB0ZXN0DQogIEZvby5uZXcNCmVuZA0KDQp0ZXN0DQphYXJvbkB0 Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IHJ1YnkgLXYgdGVzdC5yYg0KcnVi eSAzLjQuMiAoMjAyNS0wMi0xNSByZXZpc2lvbiBkMjkzMGY4ZTdhKSArUFJJU00gW2FybTY0LWRh cndpbjI0XQ0KdGVzdC5yYjoxMDppbiAnQ2xhc3MjbmV3Jw0KdGVzdC5yYjoxMDppbiAnT2JqZWN0 I3Rlc3QnDQp0ZXN0LnJiOjEzOmluICc8bWFpbj4nDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cv cnVieSAoaW5saW5lLW5ldyk+IC4vcnVieSAtdiB0ZXN0LnJiDQpydWJ5IDMuNS4wZGV2ICgyMDI1 LTA0LTAzVDEzOjAzOjE5WiBpbmxpbmUtbmV3IDU2N2M1NDIwOGMpICtQUklTTSBbYXJtNjQtZGFy d2luMjRdDQp0ZXN0LnJiOjEwOmluICdPYmplY3QjdGVzdCcNCnRlc3QucmI6MTM6aW4gJzxtYWlu PicNCmBgYA0KDQpBcyB5b3UgY2FuIHNlZSBpbiB0aGUgYWJvdmUgb3V0cHV0LCB0aGUgYENsYXNz I25ld2AgZnJhbWUgaXMgZWxpbWluYXRlZC4gIEknbSBub3Qgc3VyZSBpZiBhbnlvbmUgcmVhbGx5 IGNhcmVzIGFib3V0IHRoaXMgZnJhbWUuICBXZSd2ZSB0ZXN0ZWQgdGhpcyBwYXRjaCBpbiBTaG9w aWZ5J3MgQ0ksIGFuZCBkaWRuJ3QgZmluZCBhbnkgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhpcyBj YWxsc3RhY2suICBIb3dldmVyLCB0aGlzIHBhdGNoIGRpZCByZXF1aXJlIFtjaGFuZ2VzIHRvIEVS QiBmb3IgZW1pdHRpbmcgd2FybmluZ3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVs bC8xMzA4MC9maWxlcyNkaWZmLTc2MjRmOTVmNTIxYjMzMzNkZThjNjg3ZDcwYzI1NzRhYTMxNjE2 Y2ViZjk1MDRkOGJjZjY3Mzg2NWZiZjZlY2RSNDc1LVI0ODYpLg0KDQpUaGF0IHNhaWQsIGVsaW1p bmF0aW5nIHRoZSBmcmFtZSBhbHNvIGhhcyB0aGUgc2lkZS1lZmZlY3Qgb2YgbWFraW5nIHNvbWUg b2Ygb3VyIGFsbG9jYXRpb24gdHJhY2luZyB0b29scyBhIGxpdHRsZSBtb3JlIHVzZWZ1bDoNCg0K YGBgDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IGNhdCB0ZXN0 LnJiDQpyZXF1aXJlICJvYmpzcGFjZSINCg0KY2xhc3MgRm9vDQogIGRlZiB0ZXN0DQogICAgT2Jq ZWN0Lm5ldw0KICBlbmQNCmVuZA0KDQpPYmplY3RTcGFjZS50cmFjZV9vYmplY3RfYWxsb2NhdGlv bnMgZG8NCiAgb2JqID0gRm9vLm5ldy50ZXN0DQogIHB1dHMgT2JqZWN0U3BhY2UuYWxsb2NhdGlv bl9jbGFzc19wYXRoKG9iaikNCiAgcHV0cyBPYmplY3RTcGFjZS5hbGxvY2F0aW9uX21ldGhvZF9p ZChvYmopDQplbmQNCmFhcm9uQHRjLWxhbi1hZGFwdGVyIH4vZy9ydWJ5IChpbmxpbmUtbmV3KT4g cnVieSAtdiB0ZXN0LnJiDQpydWJ5IDMuNC4yICgyMDI1LTAyLTE1IHJldmlzaW9uIGQyOTMwZjhl N2EpICtQUklTTSBbYXJtNjQtZGFyd2luMjRdDQpDbGFzcw0KbmV3DQphYXJvbkB0Yy1sYW4tYWRh cHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IC4vcnVieSAtdiB0ZXN0LnJiDQpydWJ5IDMuNS4w ZGV2ICgyMDI1LTA0LTA3VDE5OjQwOjU5WiBpbmxpbmUtbmV3IDJjZjBlZmExOGUpICtQUklTTSBb YXJtNjQtZGFyd2luMjRdDQpGb28NCnRlc3QNCmBgYA0KDQpCZWZvcmUgaW5saW5pbmcsIGBPYmpl Y3RTcGFjZWAgd291bGQgcmVwb3J0IHRoZSBhbGxvY2F0aW9uIGNsYXNzIHBhdGggYW5kIG1ldGhv ZCBpZCBhcyBgQ2xhc3MjbmV3YCB3aGljaCBpc24ndCB2ZXJ5IGhlbHBmdWwuIFdpdGggdGhlIGlu bGluaW5nIHBhdGNoLCB3ZSBjYW4gc2VlIHRoYXQgdGhlIG9iamVjdCBpcyBhbGxvY2F0ZWQgaW4g YEZvbyN0ZXN0YC4NCg0KIyMgU3VtbWFyeQ0KDQpJIHRoaW5rIHRoZSBvdmVyYWxsIG1lbW9yeSBp bmNyZWFzZSBpcyBtb2Rlc3QsIGFuZCB0aGUgY2hhbmdlIHRvIGBjYWxsZXJgIGlzIGFjY2VwdGFi bGUgZXNwZWNpYWxseSBnaXZlbiB0aGUgcGVyZm9ybWFuY2UgaW5jcmVhc2UgdGhpcyBwYXRjaCBw cm92aWRlcy4NCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxp bmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2Vu ZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3Jl IGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29y ZS5tbC5ydWJ5LWxhbmcub3JnLw==