[ruby-core:121591] [Ruby Feature#21254] Inlining Class#new
From:
"tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>
Date:
2025-04-08 16:18:40 UTC
List:
ruby-core #121591
SXNzdWUgIzIxMjU0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgdGVuZGVybG92ZW1ha2luZyAoQWFyb24g UGF0dGVyc29uKS4NCg0KDQpCdHcsIEBrbzEgY2FtZSB1cCB3aXRoIHRoaXMgaWRlYSwgc28gSSB3 YW50IHRvIHNheSB0aGFua3MgdG8gaGltLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpGZWF0dXJlICMyMTI1NDogSW5saW5pbmcgQ2xhc3MjbmV3DQpodHRwczov L2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMjEyNTQjY2hhbmdlLTExMjY0NQ0KDQoqIEF1dGhv cjogdGVuZGVybG92ZW1ha2luZyAoQWFyb24gUGF0dGVyc29uKQ0KKiBTdGF0dXM6IE9wZW4NCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCldlIHdvdWxkIGxpa2UgdG8g cHJvcG9zZSBpbmxpbmluZyBZQVJWIGJ5dGVjb2RlIGZvciBzcGVlZGluZyB1cCBvYmplY3QgYWxs b2NhdGlvbnMsIHNwZWNpZmljYWxseSBpbmxpbmluZyB0aGUgYENsYXNzI25ld2AgbWV0aG9kLiAg SW4gb3JkZXIgdG8gc3VwcG9ydCBpbmxpbmluZyB0aGlzIG1ldGhvZCwgd2Ugd291bGQgbGlrZSB0 byBpbnRyb2R1Y2UgYSBuZXcgWUFSViBpbnN0cnVjdGlvbiBgb3B0X25ld2AuICBUaGlzIGluc3Ry dWN0aW9uIHdpbGwgYWxsb2NhdGUgYW4gb2JqZWN0IGlmIHRoZSBkZWZhdWx0IGFsbG9jYXRvciBp cyBub3Qgb3ZlcnJpZGRlbiwgb3RoZXJ3aXNlIGl0IHdpbGwganVtcCB0byBhIOKAnHNsb3cgcGF0 aOKAnSBmb3IgY2FsbGluZyBhIG1ldGhvZC4NCg0KYENsYXNzI25ld2AgZXNwZWNpYWxseSBiZW5l Zml0cyBmcm9tIGlubGluaW5nIGZvciB0d28gcmVhc29uczoNCjEuIENhbGxpbmcgYGluaXRpYWxp emVgIGRpcmVjdGx5IG1lYW5zIHdlIGRvbid0IG5lZWQgdG8gYWxsb2NhdGUgYSB0ZW1wb3Jhcnkg aGFzaCBmb3Iga2V5d29yZCBhcmd1bWVudHMNCjIuIFdlIGFyZSBhYmxlIHRvIHVzZSBhbiBpbmxp bmUgY2FjaGUgd2hlbiBjYWxsaW5nIHRoZSBgaW5pdGlhbGl6ZWAgbWV0aG9kDQoNClRoZSBwYXRj aCBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8x MzA4MCksIGJ1dCBwbGVhc2UgZmluZCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGJlbG93Lg0KDQoj IyBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzDQpUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBjb21waWxl ciB0byBlbWl0IHNwZWNpYWwgaW5zdHJ1Y3Rpb25zIHdoZW4gaXQgc2VlcyBhIGNhbGxzaXRlIHRo YXQgdXNlcyDigJxuZXfigJ0uICBCZWZvcmUgdGhpcyBwYXRjaCwgY2FsbGluZyBgT2JqZWN0Lm5l d2Agd291bGQgcmVzdWx0IGluIGJ5dGVjb2RlIGxpa2UgdGhpczoNCg0KYGBgDQpydWJ5IC0tZHVt cD1pbnNucyAtZSdPYmplY3QubmV3Jw0KPT0gZGlzYXNtOiAjPElTZXE6PG1haW4+QC1lOjEgKDEs MCktKDEsMTApPg0KMDAwMCBvcHRfZ2V0Y29uc3RhbnRfcGF0aCAgICAgICAgICAgICAgICAgICA8 aWM6MCBPYmplY3Q+ICAgICAgICAgICAgICggICAxKVtMaV0NCjAwMDIgb3B0X3NlbmRfd2l0aG91 dF9ibG9jayAgICAgICAgICAgICAgICAgPGNhbGxkYXRhIW1pZDpuZXcsIGFyZ2M6MCwgQVJHU19T SU1QTEU+DQowMDA0IGxlYXZlDQpgYGANCg0KV2l0aCB0aGlzIHBhdGNoLCB0aGUgYnl0ZWNvZGUg bG9va3MgbGlrZSB0aGlzOg0KDQpgYGANCi4vcnVieSAtLWR1bXA9aW5zbnMgLWUnT2JqZWN0Lm5l dycNCj09IGRpc2FzbTogIzxJU2VxOjxtYWluPkAtZToxICgxLDApLSgxLDEwKT4NCjAwMDAgb3B0 X2dldGNvbnN0YW50X3BhdGggICAgICAgICAgICAgICAgICAgPGljOjAgT2JqZWN0PiAgICAgICAg ICAgICAoICAgMSlbTGldDQowMDAyIHB1dG5pbA0KMDAwMyBzd2FwDQowMDA0IG9wdF9uZXcgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjYWxsZGF0YSFtaWQ6bmV3LCBhcmdjOjAsIEFS R1NfU0lNUExFPiwgMTENCjAwMDcgb3B0X3NlbmRfd2l0aG91dF9ibG9jayAgICAgICAgICAgICAg ICAgPGNhbGxkYXRhIW1pZDppbml0aWFsaXplLCBhcmdjOjAsIEZDQUxMfEFSR1NfU0lNUExFPg0K MDAwOSBqdW1wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNA0KMDAxMSBvcHRf c2VuZF93aXRob3V0X2Jsb2NrICAgICAgICAgICAgICAgICA8Y2FsbGRhdGEhbWlkOm5ldywgYXJn YzowLCBBUkdTX1NJTVBMRT4NCjAwMTMgc3dhcA0KMDAxNCBwb3ANCjAwMTUgbGVhdmUNCmBgYA0K DQpUaGUgbmV3IGBvcHRfbmV3YCBpbnN0cnVjdGlvbiBjaGVja3Mgd2hldGhlciBvciBub3QgdGhl IGBuZXdgIGltcGxlbWVudGF0aW9uIGlzIHRoZSBkZWZhdWx0IOKAnGFsbG9jYXRvcuKAnSBpbXBs ZW1lbnRhdGlvbi4gIElmIGl0IGlzIHRoZSBkZWZhdWx0IGFsbG9jYXRvciwgdGhlbiB0aGUgaW5z dHJ1Y3Rpb24gd2lsbCBhbGxvY2F0ZSB0aGUgb2JqZWN0IGFuZCBjYWxsIGluaXRpYWxpemUgcGFz c2luZyBwYXJhbWV0ZXJzIHRvIGluaXRpYWxpemUgYnV0IG5vdCB0byBgbmV3YC4gIElmIHRoZSBt ZXRob2QgaXMgbm90IHRoZSBkZWZhdWx0IGFsbG9jYXRvciBpbXBsZW1lbnRhdGlvbiwgaXQgd2ls bCBqdW1wIHRvIHRoZSBub3JtYWwgbWV0aG9kIGRpc3BhdGNoIGluc3RydWN0aW9ucy4NClBlcmZv cm1hbmNlIEltcHJvdmVtZW50cw0KVGhpcyBwYXRjaCBpbXByb3ZlcyBwZXJmb3JtYW5jZSBvZiBh bGwgYWxsb2NhdGlvbnMgdGhhdCB1c2UgdGhlIG5vcm1hbCDigJxuZXfigJ0gbWV0aG9kIGZvciBh bGxvY2F0aW9uLiAgSGVyZSBhcmUgdHdvIGV4YW1wbGVzIChhbGwgb2YgdGhlc2UgYmVuY2htYXJr cyBjb21wYXJlIFJ1YnkgMy40LjIgYWdhaW5zdCBSdWJ5IG1hc3RlciB3aXRoIGlubGluaW5nIHBh dGNoKToNCg0KQSBzaW1wbGUgYE9iamVjdC5uZXdgIGluIGEgaG90IGxvb3AgaW1wcm92ZXMgYnkg YWJvdXQgMjQlOg0KDQpgYGANCmh5cGVyZmluZSAicnVieSAtLWRpc2FibGUtZ2VtcyAtZSdpID0g MDsgd2hpbGUgaSA8IDEwXzAwMF8wMDA7IE9iamVjdC5uZXc7IGkgKz0gMTsgZW5kJyIgIi4vcnVi eSAtLWRpc2FibGUtZ2VtcyAtZSdpID0gMDsgd2hpbGUgaSA8IDEwXzAwMF8wMDA7IE9iamVjdC5u ZXc7IGkgKz0gMTsgZW5kJyINCkJlbmNobWFyayAxOiBydWJ5IC0tZGlzYWJsZS1nZW1zIC1lJ2kg PSAwOyB3aGlsZSBpIDwgMTBfMDAwXzAwMDsgT2JqZWN0Lm5ldzsgaSArPSAxOyBlbmQnDQogIFRp bWUgKG1lYW4gwrEgz4MpOiAgICAgNDM2LjYgbXMgwrEgICAzLjMgbXMgICAgW1VzZXI6IDQzMi4z IG1zLCBTeXN0ZW06IDMuOCBtc10NCiAgUmFuZ2UgKG1pbiDigKYgbWF4KTogICA0MzAuNSBtcyDi gKYgNDQyLjYgbXMgICAgMTAgcnVucw0KIA0KQmVuY2htYXJrIDI6IC4vcnVieSAtLWRpc2FibGUt Z2VtcyAtZSdpID0gMDsgd2hpbGUgaSA8IDEwXzAwMF8wMDA7IE9iamVjdC5uZXc7IGkgKz0gMTsg ZW5kJw0KICBUaW1lIChtZWFuIMKxIM+DKTogICAgIDM1MS4xIG1zIMKxICAgMy42IG1zICAgIFtV c2VyOiAzNDcuNCBtcywgU3lzdGVtOiAzLjMgbXNdDQogIFJhbmdlIChtaW4g4oCmIG1heCk6ICAg MzQzLjkgbXMg4oCmIDM1Ny40IG1zICAgIDEwIHJ1bnMNCiANClN1bW1hcnkNCiAgLi9ydWJ5IC0t ZGlzYWJsZS1nZW1zIC1lJ2kgPSAwOyB3aGlsZSBpIDwgMTBfMDAwXzAwMDsgT2JqZWN0Lm5ldzsg aSArPSAxOyBlbmQnIHJhbg0KICAgIDEuMjQgwrEgMC4wMiB0aW1lcyBmYXN0ZXIgdGhhbiBydWJ5 IC0tZGlzYWJsZS1nZW1zIC1lJ2kgPSAwOyB3aGlsZSBpIDwgMTBfMDAwXzAwMDsgT2JqZWN0Lm5l dzsgaSArPSAxOyBlbmQnDQpgYGANCg0KVXNpbmcgYSBzaW5nbGUga2V5d29yZCBhcmd1bWVudCBp cyBpbXByb3ZlZCBieSBhYm91dCA3MiU6DQoNCmBgYA0KPiBoeXBlcmZpbmUgInJ1YnkgLS1kaXNh YmxlLWdlbXMgLWUnaSA9IDA7IHdoaWxlIGkgPCAxMF8wMDBfMDAwOyBIYXNoLm5ldyhjYXBhY2l0 eTogMCk7IGkgKz0gMTsgZW5kJyIgIi4vcnVieSAtLWRpc2FibGUtZ2VtcyAtZSdpID0gMDsgd2hp bGUgaSA8IDEwXzAwMF8wMDA7IEhhc2gubmV3KGNhcGFjaXR5OiAwKTsgaSArPSAxOyBlbmQnIg0K QmVuY2htYXJrIDE6IHJ1YnkgLS1kaXNhYmxlLWdlbXMgLWUnaSA9IDA7IHdoaWxlIGkgPCAxMF8w MDBfMDAwOyBIYXNoLm5ldyhjYXBhY2l0eTogMCk7IGkgKz0gMTsgZW5kJw0KICBUaW1lIChtZWFu IMKxIM+DKTogICAgICAxLjA4MiBzIMKxICAwLjAwNyBzICAgIFtVc2VyOiAxLjA3NCBzLCBTeXN0 ZW06IDAuMDA4IHNdDQogIFJhbmdlIChtaW4g4oCmIG1heCk6ICAgIDEuMDcxIHMg4oCmICAxLjA5 MSBzICAgIDEwIHJ1bnMNCiANCkJlbmNobWFyayAyOiAuL3J1YnkgLS1kaXNhYmxlLWdlbXMgLWUn aSA9IDA7IHdoaWxlIGkgPCAxMF8wMDBfMDAwOyBIYXNoLm5ldyhjYXBhY2l0eTogMCk7IGkgKz0g MTsgZW5kJw0KICBUaW1lIChtZWFuIMKxIM+DKTogICAgIDYyNy42IG1zIMKxICAgNC44IG1zICAg IFtVc2VyOiA2MjIuNiBtcywgU3lzdGVtOiA0LjUgbXNdDQogIFJhbmdlIChtaW4g4oCmIG1heCk6 ICAgNjIyLjEgbXMg4oCmIDYzNy4yIG1zICAgIDEwIHJ1bnMNCiANClN1bW1hcnkNCiAgLi9ydWJ5 IC0tZGlzYWJsZS1nZW1zIC1lJ2kgPSAwOyB3aGlsZSBpIDwgMTBfMDAwXzAwMDsgSGFzaC5uZXco Y2FwYWNpdHk6IDApOyBpICs9IDE7IGVuZCcgcmFuDQogICAgMS43MiDCsSAwLjAyIHRpbWVzIGZh c3RlciB0aGFuIHJ1YnkgLS1kaXNhYmxlLWdlbXMgLWUnaSA9IDA7IHdoaWxlIGkgPCAxMF8wMDBf MDAwOyBIYXNoLm5ldyhjYXBhY2l0eTogMCk7IGkgKz0gMTsgZW5kJw0KYGBgDQoNClRoZSBwZXJm b3JtYW5jZSBpbmNyZWFzZSBkZXBlbmRzIG9uIHRoZSBudW1iZXIgYW5kIHR5cGUgb2YgcGFyYW1l dGVycyBwYXNzZWQgdG8gYGluaXRpYWxpemVgLiAgRm9yIGV4YW1wbGUsIGFuIGBpbml0aWFsaXpl YCBtZXRob2QgdGhhdCB0YWtlcyAzIHBhcmFtZXRlcnMgY2FuIHNlZSBhIHNwZWVkIGltcHJvdmVt ZW50IG9mIH4zeDoNCg0KYGBgDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5l LW5ldyk+IGNhdCB0ZXN0LnJiDQpjbGFzcyBGb28NCiAgZGVmIGluaXRpYWxpemUgYTosIGI6LCBj Og0KICBlbmQNCmVuZA0KaSA9IDANCndoaWxlIGkgPCAxMF8wMDBfMDAwDQogIEZvby5uZXcoYTog MSwgYjogMiwgYzogMykNCiAgRm9vLm5ldyhhOiAxLCBiOiAyLCBjOiAzKQ0KICBGb28ubmV3KGE6 IDEsIGI6IDIsIGM6IDMpDQogIGkgKz0gMQ0KZW5kDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cv cnVieSAoaW5saW5lLW5ldyk+IGh5cGVyZmluZSAicnVieSAtLWRpc2FibGUtZ2VtcyB0ZXN0LnJi IiAiLi9ydWJ5IC0tZGlzYWJsZS1nZW1zIHRlc3QucmIiDQpCZW5jaG1hcmsgMTogcnVieSAtLWRp c2FibGUtZ2VtcyB0ZXN0LnJiDQogIFRpbWUgKG1lYW4gwrEgz4MpOiAgICAgIDMuNzAwIHMgwrEg IDAuMDMzIHMgICAgW1VzZXI6IDMuNjgxIHMsIFN5c3RlbTogMC4wMTggc10NCiAgUmFuZ2UgKG1p biDigKYgbWF4KTogICAgMy42MzYgcyDigKYgIDMuNzUxIHMgICAgMTAgcnVucw0KIA0KQmVuY2ht YXJrIDI6IC4vcnVieSAtLWRpc2FibGUtZ2VtcyB0ZXN0LnJiDQogIFRpbWUgKG1lYW4gwrEgz4Mp OiAgICAgIDEuMTgyIHMgwrEgIDAuMDEzIHMgICAgW1VzZXI6IDEuMTczIHMsIFN5c3RlbTogMC4w MDggc10NCiAgUmFuZ2UgKG1pbiDigKYgbWF4KTogICAgMS4xNjUgcyDigKYgIDEuMjAzIHMgICAg MTAgcnVucw0KIA0KU3VtbWFyeQ0KICAuL3J1YnkgLS1kaXNhYmxlLWdlbXMgdGVzdC5yYiByYW4N CiAgICAzLjEzIMKxIDAuMDQgdGltZXMgZmFzdGVyIHRoYW4gcnVieSAtLWRpc2FibGUtZ2VtcyB0 ZXN0LnJiDQpgYGANCg0KT25lIGZhY3RvciBpbiB0aGUgcGVyZm9ybWFuY2UgaW5jcmVhc2UgZm9y IGtleXdvcmQgYXJndW1lbnRzIGlzIHRoYXQgaW5saW5pbmcgaXMgYWJsZSB0byBlbGltaW5hdGUg dGhlIGhhc2ggYWxsb2NhdGlvbiB3aGVuIGNhbGxpbmcg4oCcdGhyb3VnaOKAnSB0aGUgQyBpbXBs ZW1lbnRhdGlvbiBvZiBgQ2xhc3MjbmV3YDoNCg0KYGBgDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+ L2cvcnVieSAoaW5saW5lLW5ldyk+IGNhdCB0ZXN0LnJiDQpjbGFzcyBGb28NCiAgZGVmIGluaXRp YWxpemUgYTosIGI6LCBjOg0KICBlbmQNCmVuZA0KZGVmIGFsbG9jcw0KICB4ID0gR0Muc3RhdCg6 dG90YWxfYWxsb2NhdGVkX29iamVjdHMpDQogIHlpZWxkDQogIEdDLnN0YXQoOnRvdGFsX2FsbG9j YXRlZF9vYmplY3RzKSAtIHgNCmVuZA0KZGVmIHRlc3Q7IGFsbG9jcyB7IEZvby5uZXcoYTogMSwg YjogMiwgYzogMykgfTsgZW5kDQp0ZXN0DQpwIHRlc3QNCmFhcm9uQHRjLWxhbi1hZGFwdGVyIH4v Zy9ydWJ5IChpbmxpbmUtbmV3KT4gcnVieSAtdiB0ZXN0LnJiDQpydWJ5IDMuNC4yICgyMDI1LTAy LTE1IHJldmlzaW9uIGQyOTMwZjhlN2EpICtQUklTTSBbYXJtNjQtZGFyd2luMjRdDQoyDQphYXJv bkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IC4vcnVieSAtdiB0ZXN0LnJi DQpydWJ5IDMuNS4wZGV2ICgyMDI1LTA0LTAzVDEzOjAzOjE5WiBpbmxpbmUtbmV3IDU2N2M1NDIw OGMpICtQUklTTSBbYXJtNjQtZGFyd2luMjRdDQoxDQpgYGANCg0KIyMgTWVtb3J5IEluY3JlYXNl DQoNCk9mIGNvdXJzZSB0aGlzIHBhdGNoIGlzIG5vdCDigJxmcmVl4oCdLiAgSW5saW5pbmcgdGhl IG1ldGhvZCBjYWxsIGFkZHMgZXh0cmEgWUFSViBpbnN0cnVjdGlvbnMuICBXZSBlc3RpbWF0ZSB0 aGlzIHBhdGNoIGluY3JlYXNlcyBgbmV3YCBjYWxsIHNpdGVzIGJ5IGFib3V0IDEyMiBieXRlczoN Cg0KYGBgDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IGNhdCB0 ZXN0LnJiDQpyZXF1aXJlICJvYmpzcGFjZSINCmNsYXNzIEZvbw0KICBkZWYgaW5pdGlhbGl6ZQ0K ICBlbmQNCmVuZA0KZGVmIHRlc3QNCiAgRm9vLm5ldw0KZW5kDQpwdXRzIE9iamVjdFNwYWNlLm1l bXNpemVfb2YoUnVieVZNOjpJbnN0cnVjdGlvblNlcXVlbmNlLm9mKG1ldGhvZCg6dGVzdCkpKQ0K YWFyb25AdGMtbGFuLWFkYXB0ZXIgfi9nL3J1YnkgKGlubGluZS1uZXcpPiBydWJ5IC12IHRlc3Qu cmINCnJ1YnkgMy40LjIgKDIwMjUtMDItMTUgcmV2aXNpb24gZDI5MzBmOGU3YSkgK1BSSVNNIFth cm02NC1kYXJ3aW4yNF0NCjU0NA0KYWFyb25AdGMtbGFuLWFkYXB0ZXIgfi9nL3J1YnkgKGlubGlu ZS1uZXcpPiAuL3J1YnkgLXYgdGVzdC5yYg0KcnVieSAzLjUuMGRldiAoMjAyNS0wNC0wM1QxMzow MzoxOVogaW5saW5lLW5ldyA1NjdjNTQyMDhjKSArUFJJU00gW2FybTY0LWRhcndpbjI0XQ0KNjU2 DQpgYGANCg0KV2XigJl2ZSB0ZXN0ZWQgdGhpcyBpbiBTaG9waWZ54oCZcyBtb25vbGl0aCwgY29t cGFyaW5nIFJ1YnkgMy40LjIgYW5kIFJ1YnkgMy41K2lubGluaW5nLCBhbmQgaXQgc2VlbXMgdG8g aW5jcmVhc2UgdG90YWwgSVNFUSBtZW1lc2l6ZSBieSBhYm91dCAzLjhtYiAocm91Z2hseSAwLjUl IGluY3JlYXNlIGluIElTRVEgc2l6ZSk6DQoNCmBgYA0KaXJiKG1haW4pOjAwMT4gNzM3MTkxOTcy IC0gNzMzMzU0Mzg4DQo9PiAzODM3NTg0DQpgYGANCg0KSG93ZXZlciwgUnVieSAzLjUgaGFzIG1v cmUgb3ZlcmFsbCBJU0VRIG9iamVjdHMgdGhhbiBSdWJ5IDMuNC4yOg0KDQpgYGANCmFhcm9uQEFh cm9ucy1NYWNCb29rLVBybyB+L0Rvd25sb2Fkcz4gd2MgLWwgc2l6ZXMtaW5saW5lLnR4dA0KICA3 ODk1NDUgc2l6ZXMtaW5saW5lLnR4dA0KYWFyb25AQWFyb25zLU1hY0Jvb2stUHJvIH4vRG93bmxv YWRzPiB3YyAtbCBzaXplcy0zLjQudHh0DQogIDc4OTQ3OSBzaXplcy0zLjQudHh0DQpgYGANCg0K V2Ugc2VlIHRvdGFsIGhlYXAgc2l6ZSBhcyByZXBvcnRlZCBieSBgbWVtc2l6ZWAgdG8gb25seSBp bmNyZWFzZSBieSBhYm91dCAxTUI6DQoNCmBgYA0KaXJiKG1haW4pOjAwMT4gMzk4MTA3NTYxNyAt IDM5Nzk5MjY1MDUNCj0+IDExNDkxMTINCmBgYA0KDQojIyBDaGFuZ2VzIHRvIGBjYWxsZXJgDQoN ClRoaXMgcGF0Y2ggY2hhbmdlcyBgY2FsbGVyYCByZXBvcnRpbmcgaW4gdGhlIGBpbml0aWFsaXpl YCBtZXRob2Q6DQoNCmBgYA0KYWFyb25AdGMtbGFuLWFkYXB0ZXIgfi9nL3J1YnkgKGlubGluZS1u ZXcpPiBjYXQgdGVzdC5yYg0KcmVxdWlyZSAib2Jqc3BhY2UiDQoNCmNsYXNzIEZvbw0KICBkZWYg aW5pdGlhbGl6ZQ0KICAgIHB1dHMgY2FsbGVyDQogIGVuZA0KZW5kDQoNCmRlZiB0ZXN0DQogIEZv by5uZXcNCmVuZA0KDQp0ZXN0DQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5l LW5ldyk+IHJ1YnkgLXYgdGVzdC5yYg0KcnVieSAzLjQuMiAoMjAyNS0wMi0xNSByZXZpc2lvbiBk MjkzMGY4ZTdhKSArUFJJU00gW2FybTY0LWRhcndpbjI0XQ0KdGVzdC5yYjoxMDppbiAnQ2xhc3Mj bmV3Jw0KdGVzdC5yYjoxMDppbiAnT2JqZWN0I3Rlc3QnDQp0ZXN0LnJiOjEzOmluICc8bWFpbj4n DQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IC4vcnVieSAtdiB0 ZXN0LnJiDQpydWJ5IDMuNS4wZGV2ICgyMDI1LTA0LTAzVDEzOjAzOjE5WiBpbmxpbmUtbmV3IDU2 N2M1NDIwOGMpICtQUklTTSBbYXJtNjQtZGFyd2luMjRdDQp0ZXN0LnJiOjEwOmluICdPYmplY3Qj dGVzdCcNCnRlc3QucmI6MTM6aW4gJzxtYWluPicNCmBgYA0KDQpBcyB5b3UgY2FuIHNlZSBpbiB0 aGUgYWJvdmUgb3V0cHV0LCB0aGUgYENsYXNzI25ld2AgZnJhbWUgaXMgZWxpbWluYXRlZC4gIEkn bSBub3Qgc3VyZSBpZiBhbnlvbmUgcmVhbGx5IGNhcmVzIGFib3V0IHRoaXMgZnJhbWUuICBXZSd2 ZSB0ZXN0ZWQgdGhpcyBwYXRjaCBpbiBTaG9waWZ5J3MgQ0ksIGFuZCBkaWRuJ3QgZmluZCBhbnkg Y29kZSB0aGF0IGRlcGVuZHMgb24gdGhpcyBjYWxsc3RhY2suICBIb3dldmVyLCB0aGlzIHBhdGNo IGRpZCByZXF1aXJlIFtjaGFuZ2VzIHRvIEVSQiBmb3IgZW1pdHRpbmcgd2FybmluZ3NdKGh0dHBz Oi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8xMzA4MC9maWxlcyNkaWZmLTc2MjRmOTVmNTIx YjMzMzNkZThjNjg3ZDcwYzI1NzRhYTMxNjE2Y2ViZjk1MDRkOGJjZjY3Mzg2NWZiZjZlY2RSNDc1 LVI0ODYpLg0KDQpUaGF0IHNhaWQsIGVsaW1pbmF0aW5nIHRoZSBmcmFtZSBhbHNvIGhhcyB0aGUg c2lkZS1lZmZlY3Qgb2YgbWFraW5nIHNvbWUgb2Ygb3VyIGFsbG9jYXRpb24gdHJhY2luZyB0b29s cyBhIGxpdHRsZSBtb3JlIHVzZWZ1bDoNCg0KYGBgDQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cv cnVieSAoaW5saW5lLW5ldyk+IGNhdCB0ZXN0LnJiDQpyZXF1aXJlICJvYmpzcGFjZSINCg0KY2xh c3MgRm9vDQogIGRlZiB0ZXN0DQogICAgT2JqZWN0Lm5ldw0KICBlbmQNCmVuZA0KDQpPYmplY3RT cGFjZS50cmFjZV9vYmplY3RfYWxsb2NhdGlvbnMgZG8NCiAgb2JqID0gRm9vLm5ldy50ZXN0DQog IHB1dHMgT2JqZWN0U3BhY2UuYWxsb2NhdGlvbl9jbGFzc19wYXRoKG9iaikNCiAgcHV0cyBPYmpl Y3RTcGFjZS5hbGxvY2F0aW9uX21ldGhvZF9pZChvYmopDQplbmQNCmFhcm9uQHRjLWxhbi1hZGFw dGVyIH4vZy9ydWJ5IChpbmxpbmUtbmV3KT4gcnVieSAtdiB0ZXN0LnJiDQpydWJ5IDMuNC4yICgy MDI1LTAyLTE1IHJldmlzaW9uIGQyOTMwZjhlN2EpICtQUklTTSBbYXJtNjQtZGFyd2luMjRdDQpD bGFzcw0KbmV3DQphYXJvbkB0Yy1sYW4tYWRhcHRlciB+L2cvcnVieSAoaW5saW5lLW5ldyk+IC4v cnVieSAtdiB0ZXN0LnJiDQpydWJ5IDMuNS4wZGV2ICgyMDI1LTA0LTA3VDE5OjQwOjU5WiBpbmxp bmUtbmV3IDJjZjBlZmExOGUpICtQUklTTSBbYXJtNjQtZGFyd2luMjRdDQpGb28NCnRlc3QNCmBg YA0KDQpCZWZvcmUgaW5saW5pbmcsIGBPYmplY3RTcGFjZWAgd291bGQgcmVwb3J0IHRoZSBhbGxv Y2F0aW9uIGNsYXNzIHBhdGggYW5kIG1ldGhvZCBpZCBhcyBgQ2xhc3MjbmV3YCB3aGljaCBpc24n dCB2ZXJ5IGhlbHBmdWwuIFdpdGggdGhlIGlubGluaW5nIHBhdGNoLCB3ZSBjYW4gc2VlIHRoYXQg dGhlIG9iamVjdCBpcyBhbGxvY2F0ZWQgaW4gYEZvbyN0ZXN0YC4NCg0KIyMgU3VtbWFyeQ0KDQpJ IHRoaW5rIHRoZSBvdmVyYWxsIG1lbW9yeSBpbmNyZWFzZSBpcyBtb2Rlc3QsIGFuZCB0aGUgY2hh bmdlIHRvIGBjYWxsZXJgIGlzIGFjY2VwdGFibGUgZXNwZWNpYWxseSBnaXZlbiB0aGUgcGVyZm9y bWFuY2UgaW5jcmVhc2UgdGhpcyBwYXRjaCBwcm92aWRlcy4NCg0KDQoNCi0tIA0KaHR0cHM6Ly9i dWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1s YW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVA bWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcu b3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLw==