[#111712] [Ruby master Feature#19322] Support spawning "private" child processes — "kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" <ruby-core@...>
SXNzdWUgIzE5MzIyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGtqdHNhbmFrdHNpZGlzIChLSiBUc2Fu
14 messages
2023/01/07
[ruby-core:111718] [Ruby master Feature#19322] Support spawning "private" child processes
From:
"nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>
Date:
2023-01-07 09:16:56 UTC
List:
ruby-core #111718
SXNzdWUgIzE5MzIyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbm9idSAoTm9idXlvc2hpIE5ha2FkYSku DQ0KDQ0KDQ0KSSdtIG5vdCB2ZXJ5IHBvc2l0aXZlIHRvIGltcGxlbWVudCBwbGF0Zm9ybSBzcGVj aWZpYyBtZXRob2RzLCBhbmQgcmF0aGVyIHN1Z2dlc3QgdG8gY3JlYXRlIGEgZ2VtIGFzIHRoZSBm aXJzdCBzdGVwLg0NCg0NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N DQpGZWF0dXJlICMxOTMyMjogU3VwcG9ydCBzcGF3bmluZyAicHJpdmF0ZSIgY2hpbGQgcHJvY2Vz c2VzDQ0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE5MzIyI2NoYW5nZS0xMDEx MTYNDQoNDQoqIEF1dGhvcjoga2p0c2FuYWt0c2lkaXMgKEtKIFRzYW5ha3RzaWRpcykNDQoqIFN0 YXR1czogT3Blbg0NCiogUHJpb3JpdHk6IE5vcm1hbA0NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NDQojIyBCYWNrZ3JvdW5kDQ0KDQ0KVGhlIHRyYWRpdGlvbmFsIFVu aXggcHJvY2VzcyBBUElzIChgZm9ya2AgZXRjKSBhcmUgcG9vcmx5IGlzb2xhdGVkLiBJZiBhIGxp YnJhcnkgc3Bhd25zIGEgY2hpbGQgcHJvY2VzcywgdGhpcyBpcyBub3QgdHJhbnNwYXJlbnQgdG8g dGhlIHByb2dyYW0gdXNpbmcgdGhlIGxpYnJhcnkuIEFueSBzaWduYWwgaGFuZGxlciBmb3IgYFNJ R0NITERgIGluIHRoZSBwcm9ncmFtIHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHNwYXduZWQgcHJv Y2VzcyBleGl0cywgYW5kIGV2ZW4gd29yc2UsIGlmIHRoZSBwYXJlbnQgY2FsbHMgYFByb2Nlc3Mu d2FpdHBpZDIoLTEpYCwgaXQgd2lsbCBjb25zdW1lIHRoZSByZXR1cm5lZCBzdGF0dXMgY29kZSwg c3RlYWxpbmcgaXQgZnJvbSB0aGUgbGlicmFyeSENDQoNDQpVbmZvcnR1bmF0ZWx5LCB0aGUgcHJh Y3RpY2Ugb2YgcmVzcG9uZGluZyB0byBgU0lHQ0hMRGAgYnkgY2FsbGluZyBgd2FpdHBpZDIoLTEp YCBpbiBhIGxvb3AgaXMgYSBwcmV0dHkgY29tbW9uIHVuaXhpc20uIEZvciBleGFtcGxlLCBVbmlj b3JuIGRvZXMgaXQgW2hlcmVdKGh0dHBzOi8veWhidC5uZXQvdW5pY29ybi5naXQvdHJlZS9saWIv dW5pY29ybi9odHRwX3NlcnZlci5yYiNuNDAxKS4gSW4gc2hvcnQsIHRoZXJlIGlzIG5vIHJlbGlh YmxlIHdheSBmb3IgYSBnZW0gdG8gc3Bhd24gYSBjaGlsZCBwcm9jZXNzIGluIGEgd2F5IHRoYXQg Y2Fu4oCZdCAodW5pbnRlbnRpb25hbGx5KSBiZSBpbnRlcmZlcmVkIHdpdGggYnkgb3RoZXIgcGFy dHMgb2YgdGhlIHByb2dyYW0uDQ0KDQ0KIyMgRXhpc3Rpbmcgc29sdXRpb25zIGluIE9T4oCZcw0N Cg0NClNldmVyYWwgb3BlcmF0aW5nIHN5c3RlbXMgcHJvdmlkZSBhbiBpbXByb3ZlZCBBUEkgZm9y IHNwYXduaW5nIGNoaWxkIHByb2Nlc3NlcyB3aGljaCBhcmUgZnVsbHkgaXNvbGF0ZWQ7IHRoYXQg aXMsIHRoZXkgZG8gbm90IGdlbmVyYXRlIGBTSUdDSExEYCBzaWduYWxzIGluIHRoZSBwcm9ncmFt LCBhbmQgYXJlIGludmlzaWJsZSB0byBjYWxscyB0byBgd2FpdHBpZCgyKWANDQoNDQoqIE9uIExp bnV4LCBzdWNoIGludmlzaWJsZSBwcm9jZXNzZXMgY2FuIGJlIG1hZGUgYnkgY2FsbGluZyBgY2xv bmUoMilgIHdpdGggYSB6ZXJvIHZhbHVlIGluIHRoZSBsb3cgYnl0ZSBvZiBgZmxhZ3NgLiBJZiB0 aGUgQ0xPTkVfUElERkQgZmxhZyBpcyBhbHNvIHByb3ZpZGVkLCB0aGVuIGEgZmlsZSBkZXNjcmlw dG9yIHJlcHJlc2VudGluZyB0aGUgcHJvY2VzcyBpcyBhbHNvIHJldHVybmVkOyB0aGlzIGNhbiBi ZSB1c2VkIHRvIHdhaXQgZm9yIGFuZCBzaWduYWwgdGhlIHByb2Nlc3MgaW4gYSByYWNlLWZyZWUg d2F5Lg0NCiogT24gRnJlZUJTRCwgdGhlIGBwZGZvcmsoMilgIHN5c2NhbGwgbWFrZXMgYSBwcm9j ZXNzIHRoYXQgZG9lcyBub3Qgc2lnbmFsIFNJR0NITEQgYW5kIGlzIGlnbm9yZWQgYnkgYHdhaXRw aWQoMilgIGNhbGxzIHRoYXQgZG8gbm90IGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUgcGlkIChpLmUu IGl0IGlzIGlnbm9yZWQgd2hlbiAtMSBpcyBwYXNzZWQpLiBJdCBhbHNvIHJldHVybnMgYSBmaWxl IGRlc2NyaXB0b3IgcmVwcmVzZW50aW5nIHRoZSBwcm9jZXNzLg0NCg0NCkJvdGggb2YgdGhlc2Ug QVBJcyBjZW50ZXIgYXJvdW5kIHRoZSBpZGVhIG9mIGEgcHJvY2VzcyBmaWxlIGRlc2NyaXB0b3Iu IFJhdGhlciB0aGFuIG1hbmFnaW5nIGEgY2hpbGQgcHJvY2VzcyB1c2luZyB0aGUgb2xkIHByb2Nl c3MtZ2xvYmFsIHdhaXQvc2lnbmFsIG1lY2hhbmlzbXMsIHRoZXkgcmV0dXJuIGEgZmlsZSBkZXNj cmlwdG9yIHJlcHJlc2VudGluZyB0aGUgcHJvY2Vzcy4gU3VjaCBhIGZpbGUgZGVzY3JpcHRvciBj YW4gdW5pcXVlbHkgaWRlbnRpZnkgdGhlIHNwYXduZWQgcHJvY2VzcywgYmUgdXNlZCB0byB3YWl0 IG9uIHRoZSBwcm9jZXNzIGFuZCBnZXQgdGhlIHN0YXR1cywgc2VuZCBzaWduYWxzLCBhbmQgZXZl biBwYXJ0aWNpcGF0ZSBpbiBgcG9sbCgyKWAuIFRoZXkgYWxzbyBwcm90ZWN0IGFnYWluc3QgcGlk LXJldXNlIHJhY2UgY29uZGl0aW9uczsgYWZ0ZXIgYSBwcm9jZXNzIGhhcyB0ZXJtaW5hdGVkIGFu ZCBiZWVuIHJlYXBlZCwgdGhlIHBpZGZkIGJlY29tZXMgaW52YWxpZCwgYW5kIGNhbuKAmXQgcmFu ZG9tbHkgYmVnaW4gdG8gcmVmZXIgdG8gYSBkaWZmZXJlbnQgcHJvY2Vzcy4NDQoNDQojIyBQcm9w b3NlZCBSdWJ5IEFQSXMNDQoNDQpJIHRoaW5rIHdlIHNob3VsZCBtYWtlIGEgbmV3IEFQSSBgUHJv Y2Vzcy5zcGF3bl9oYW5kbGVgLCB3aGljaCBhY2NlcHRzIGFsbCB0aGUgc2FtZSBwYXJhbWV0ZXJz IGFzIGBQcm9jZXNzLnNwYXduYC4gSG93ZXZlciwgaXQgZG9lcyBfbm90XyByZXR1cm4gYSBwaWQg bGlrZSBgUHJvY2Vzcy5zcGF3bmAsIGJ1dCByYXRoZXIgYSBuZXcgdHlwZSBgUHJvY2Vzczo6SGFu ZGxlYC4NDQoNDQpgUHJvY2Vzczo6SGFuZGxlYCB3b3VsZCBpZGVudGlmeSBhIHNpbmdsZSBzcGF3 bmVkIHByb2Nlc3MsIHVzaW5nIGEgZHVyYWJsZSBPUy1zdXBwbGllZCBoYW5kbGUgbm90IHN1Ympl Y3QgdG8gcmUtdXNlIHJpc2tzIChlLmcuIGEgcGlkZmQpLiBJdCB3b3VsZCBwcm92aWRlIHRoZSBm b2xsb3dpbmcgbWV0aG9kczoNDQoNDQoqIGAjcGlkYCAtIGdldCB0aGUgcGlkIHRoYXQgdGhlIGhh bmRsZSBpcyBmb3IuDQ0KKiBgI3NlbmRfc2lnbmFsKHNpZ25hbClgIC0gc2VuZCBhIHNpZ25hbCB0 byB0aGUgd3JhcHBlZCBwcm9jZXNzICh3aGVyZSAic2lnbmFsIiBpcyBhIHN5bWJvbCwgc3RyaW5n LCBvciBudW1iZXIgd2l0aCB0aGUgc2FtZSBtZWFuaW5nIGFzIGluIGBQcm9jZXNzLmtpbGxgLg0N CiogYCN3YWl0YCAtIGJsb2NrcyB3YWl0aW5nIGZvciB0aGUgcHJvZ3JhbSB0byBleGl0LCBhbmQg dGhlbiByZXR1cm5zIGEgYFByb2Nlc3M6OlN0YXR1c2Agb2JqZWN0IHJlcHJlc2VudGluZyBlLmcu IHRoZSBleGl0IGNvZGUuIExpa2UgY2FsbGluZyBgd2FpdHBpZGAuDQ0KKiBgI3dhaXRfbm9uYmxv Y2tgIC0gUmV0dXJucyBhIGBQcm9jZXNzOjpTdGF0dXNgIG9iamVjdCBmb3IgdGhlIGNoaWxkIHBy b2Nlc3MuIElmIHRoZSBjaGlsZCBoYXMgbm90IGV4aXRlZCwgaXQgd2lsbCBiZSBhIHN0YXR1cyBv YmplY3QgZm9yIHdoaWNoIGAjZXhpdGVkP2AgaXMgZmFsc2UuIERvZXMgbm90IGJsb2NrLiBMaWtl IGNhbGxpbmcgYHdhaXRwaWQoV05PSEFORylgLg0NCg0NCkZpbmFsbHksIHRoZSBgT3BlbjNgIGZh bWlseSBvZiBtZXRob2RzIHdvdWxkIGJlIGV4dGVuZGVkIHRvIGFjY2VwdCBgaGFuZGxlOmAgYXMg YW4gYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50LiBXaGVuIHNldCB0byB0cnVlLCBgUHJvY2Vz cy5zcGF3bl9oYW5kbGVgIHdpbGwgYmUgdXNlZCB0byBzdGFydCB0aGUgY2hpbGQsIGFuZCBgUHJv Y2Vzczo6SGFuZGxlYCBvYmplY3RzIHdpbGwgYmUgcmV0dXJuZWQgaW4gcGxhY2Ugb2YgcGlkcy4N DQoNDQpNb2RpZnlpbmcgYmFja3RpY2tzLCBgS2VybmVsI3N5c3RlbWAgYW5kIG90aGVyIHByb2Nl c3MtY3JlYXRpbmcgbWV0aG9kcyB3aGljaCBkb24ndCByZXR1cm4gcGlkcyB0byB1c2UgYHNwYXdu X2hhbmRsZWAgaW50ZXJuYWxseSB3b3VsZCBhbHNvIGJlIHBvc3NpYmxlLCBidXQgb3V0IG9mIHNj b3BlIGZvciBhbiBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgdGlja2V0Lg0NCg0NCiMj IE9TIGNvbXBhdGliaWxpdHkNDQoNDQpGb3IgdGhpcyBBUEkgdG8gYmUgdXNlZnVsIHRvIGdlbSBh dXRob3JzLCBpdCBoYXMgdG8gYmUgd2lkZWx5IGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtcyB0aGF0 IHRoZXkgYW5kIHRoZWlyIHVzZXJzIGNhcmUgYWJvdXQuIEFzIGRpc2N1c3NlZCwgdGhlIGBjbG9u ZSgyKWAgc3lzY2FsbCBhbmQgYENMT05FX1BJREZEYCBmbGFnIGNhbiBiZSB1c2VkIG9uIExpbnV4 IDUuMisgdG8gaW1wbGVtZW50IGBQcm9jZXNzOjpIYW5kbGVgLiBGcmVlQlNEIGhhcyBgcGRmb3Jr KDIpYCBzaW5jZSB2OS4NDQoNDQpJIGhhdmVu4oCZdCBpbnZlc3RpZ2F0ZWQgV2luZG93cyBfZGVl cGx5XywgYnV0IEkgdGhpbmsgV2luZG93cyBkb2VzbuKAmXQgcmVhbGx5IGhhdmUgdGhlIG5vdGlv biBvZiBwcm9jZXNzLWdsb2JhbCBgd2FpdHBpZGAgb3IgYFNJR0NITERgIGFueXdheS4gVGhlIGBD cmVhdGVQcm9jZXNzYCBmdW5jdGlvbiByZXR1cm5zIGEgYFBST0NFU1NfSU5GT1JNQVRJT05gIHN0 cnVjdCwgd2hpY2ggcmV0dXJucyBhIGBIQU5ETEVgIGZvciB0aGUgY2hpbGQgcHJvY2Vzcywgd2hp Y2ggc2VlbXMgYW5hbG9nb3VzIHRvIGEgcHJvY2VzcyBGRC4NDQoNDQpIb3dldmVyIHRoaXMgZG9l cyBsZWF2ZSBhIGxhcmdlIGNodW5rIG9mIG9wZXJhdGluZyBzeXN0ZW1zIHdoaWNoIGRvbuKAmXQg aGF2ZSB0aGlzIGZ1bmN0aW9uYWxpdHkgYnVpbHQtaW4uIE9mZiB0aGUgdG9wIG9mIG15IGhlYWQ6 DQ0KDQ0KKiBNYWNPUywgTmV0QlNELCBhbmQgT3BlbkJTRCBoYXZlIG5vdGhpbmcuIEkgc3RhcmVk IHByZXR0eSBoYXJkIGF0IHRoZSBEYXJ3aW4gWE5VIHNvdXJjZSBhbmQgY291bGRu4oCZdCBmaW5k IGEgcmFjZS1mcmVlIHdheSB0byBjb252aW5jZSBpdCBub3QgdG8gZGlzcGF0Y2ggYFNJR0NITERg IGZvciBhIHBhcnRpY3VsYXIgcHJvY2VzcyBvciBzdG9wIGl0IGZyb20gYmVpbmcgcmVhcGVkIGJ5 IHByb2Nlc3Mtd2lkZSBgd2FpdDRgIGNhbGxzLg0NCiogTGludXggPCA1LjIgaXMgaW4gc29tZSBw cm9iYWJseS1wcmV0dHktd2lkZWx5LWRlcGxveWVkLXN0aWxsIGRpc3Ryb3MgLSBpdOKAmXMgdGhl IHJlbGVhc2Uga2VybmVsIGluIFVidW50dSAxOC4wNCBmb3IgZXhhbXBsZS4NDQoNDQpJIGhhdmUg dHdvIGlkZWFzIGZvciBob3cgdGhlIHNlbWFudGljcyBvZiBgUHJvY2Vzczo6SGFuZGxlYCBjb3Vs ZCBiZSBlbXVsYXRlZCBvbiBzdWNoIHN5c3RlbXMuIEhvd2V2ZXIgSSByZWNvZ25pc2UgdGhhdCB0 aGV5IGFyZW7igJl0IGFtYXppbmcgc28gaWYgYW55Ym9keSBoYXMgc29tZSBiZXR0ZXIgaWRlYXMg SSB3b3VsZCBkZWFybHkgbG92ZSB0byBoZWFyIHRoZW0uDQ0KDQ0KIyMjIExvbmctbGl2ZWQgcHJv eHkNDQoNDQpUaGUgZmlyc3QgdGltZSBgUHJvY2Vzcy5zcGF3bl9oYW5kbGVgIGlzIHVzZWQsIHdl IHdvdWxkIGZvcmsvZXhlYyBhIGxvbmctbGl2ZWQg4oCcZm9yay1oZWxwZXLigJ0gcHJvZ3JhbS4g VGhpcyBjb3VsZCBiZSBhIHNlcGFyYXRlIGhlbHBlciBiaW5hcnkgd2UgY29tcGlsZSB3aXRoIHRo ZSBidWlsZCBzeXN0ZW0sIG9yIHBlcmhhcHMganVzdCBhIHJlLWludm9jYXRpb24gb2YgdGhlIHJ1 YnkgaW50ZXJwcmV0ZXIgd2l0aCBzb21ldGhpbmcgbGlrZSBgcnVieSAtZSDigJxQcm9jZXNzLl9m b3JrX2hlbHBlcuKAnWAuIFRoZXJlIHdvdWxkIGJlIGEgdW5peCBzb2NrZXRwYWlyIHNoYXJlZCBi ZXR3ZWVuIHRoZSBwYXJlbnQgcHJvY2VzcyAmIHRoZSBoZWxwZXIuDQ0KDQ0KSW5zdGVhZCBvZiBh Y3R1YWxseSBmb3JraW5nIHdoZW4gd2XigJlyZSBjYWxsaW5nIGBQcm9jZXNzLnNwYXduX2hhbmRs ZWAsIHdlIHdvdWxkIGluc3RlYWQgc2VuZCBhIG1lc3NhZ2Ugb24gdGhpcyBzb2NrZXQgYXNraW5n IHRoZSBoZWxwZXIgdG8sIF9pdHNlbGZfLCBmb3JrICYgZXhlYyB0aGUgc3BlY2lmaWVkIHByb2dy YW0uIEFueSBmaWxlIGRlc2NyaXB0b3JzIGV0YyBuZWVkZWQgaW4gdGhlIGNoaWxkIGNvdWxkIGFs c28gYmUgc2VudCBvdmVyIHRoaXMgc29ja2V0LiBBbGwgb2YgdGhlIGBQcm9jZXNzOjpIYW5kbGVg IG1ldGhvZHMgd291bGQgYmUgcHJveGllcyB3aGljaCBjYWxsZWQgdGhyb3VnaCB0byB0aGUgaGVs cGVyIGJpbmFyeS4NDQoNDQpUaGlzIHdheSwgdGhlIHJ1YnkgcHJvY2VzcyBpcyBuZXZlciBhY3R1 YWxseSB0aGUgcGFyZW50IG9mIHRoZSBzcGF3bmVkIGNoaWxkLCBzbyB3ZSB3b3VsZCBuZXZlciBn ZXQgYW55IFNJR0NITEQgZXRjIGZyb20gaXQuIFRoZSBmb3JrLWhlbHBlciBwcm9ncmFtIG1pZ2h0 IGdlbmVyYXRlIGEgU0lHQ0hMRCwgYnV0IGl0IHNob3VsZCBwZXJzaXN0IHVudGlsIHRoZSBydWJ5 IHByb2Nlc3MgZXhpdHM7IHdlIHdvdWxkIG9ubHkgZ2VuZXJhdGUgYSBTSUdDSExEIHNpZ25hbCBp ZiBpdCBjcmFzaGVkIGFibm9ybWFsbHkuDQ0KDQ0KIyMjIEZvcndhcmQgbWlzZGlyZWN0ZWQgd2Fp dHMNDQoNDQpXaXRoIHRoaXMgYXBwcm9hY2gsIGBQcm9jZXNzLnNwYXduX2hhbmRsZWAgd291bGQg anVzdCBgZm9yaygyKWAvYGV4ZWMoMilgIG9yIGBwb3NpeF9zcGF3bigyKWAgcHJvY2Vzc2VzIGxp a2Ugbm9ybWFsLiBXZSB3b3VsZCBob3dldmVyIGtlZXAgYSB0YWJsZSBvZiBwaWRzIC0+IGBQcm9j ZXNzOjpIYW5kbGVgIGluc3RhbmNlcy4NDQoNDQpXaGVuIFJ1YnnigJlzIEMtbGV2ZWwgU0lHQ0hM RCBoYW5kbGVyIGlzIGludm9rZWQsIHdlIHdvdWxkIGluc3BlY3QgdGhhdCB0YWJsZSBhbmQgc2Vl IGlmIHRoZSBwaWQgaGFzIGFuIGFzc29jaWF0ZWQgYFByb2Nlc3M6OkhhbmRsZWAuIElmIHNvLCB3 ZSB3b3VsZCBza2lwIGNhbGxpbmcgYW55IHJlZ2lzdGVyZWQgUnVieSBTSUdDSExEIGhhbmRsZXI7 IGluc3RlYWQsIHdlIHdvdWxkIGNhbGwgYHdhaXRwaWRgIG91cnNlbHZlcywgdXBkYXRlIHRoZSBz dGF0dXMgaW5mbyBvbiB0aGUgaGFuZGxlIG9iamVjdCwgYW5kIHVuYmxvY2sgYW55Ym9keSB3YWl0 aW5nIG9uIGBQcm9jZXNzOjpIYW5kbGUjd2FpdGAuDQ0KDQ0KTGlrZXdpc2UsIGluIHRoZSBDLXNp ZGUgaW1wbGVtZW50YXRpb24gb2YgYFByb2Nlc3Mud2FpdHBpZDJgIGV0Yywgd2Ugd291bGQgY2hl Y2sgdGhlIHJldHVybmVkIHBpZCBmcm9tIHRoZSBzeXNjYWxsIGFnYWluc3QgdGhlIGhhbmRsZSB0 YWJsZS4gSWYgaXQgbWF0Y2hlZCwgd2Ugd291bGQgcGVyZm9ybSB0aGUgc2FtZSB3b3JrIGFzIGlu IHRoZSBTSUdDSExEIGNhc2UsIGFuZCB0aGVuIHJlLXN0YXJ0IHRoZSBvcmlnaW5hbCBjYWxsIHRv IGBQcm9jZXNzLndhaXRwaWQyYC4NDQoNDQpUaGlzIGFwcHJvYWNoIGtlZXBzIHRoZSBwcm9jZXNz IHRyZWUgY29ycmVjdCBhbmQgaW52b2x2ZXMgbGVzcyBzaWxseSBwcm94eWluZywgYnV0IGl0IHdv buKAmXQgaGlkZSB0aGUgcHJvY2VzcyBmcm9tIGFueSBjYWxsZXJzIHRvIHRoZSByYXcgYHdhaXRw aWRgIGxpYnJhcnkgZnVuY3Rpb25zIGluIEMgZXh0ZW5zaW9ucy4gRG9pbmcgdGhhdCBzZWVtcyBs aWtlIGEgc2lsbHkgaWRlYSBhbnl3YXkgdGhvdWdoLCBzbyBtYXliZSB0aGF04oCZcyBPSz8NDQoN DQojIyBNb3RpdmF0aW9uDQ0KDQ0KTXkgdXNlLWNhc2UgZm9yIHRoaXMgaXMgdGhhdCBJ4oCZbSB3 b3JraW5nIG9uIGEgcGVyZi1iYXNlZCBwcm9maWxpbmcgdG9vbCBmb3IgUnVieS4gVG8gZ2V0IGFy b3VuZCBzb21lIExpbnV4IGNhcGFiaWxpdHkgaXNzdWVzLCBJIHdhbnQgbXkgcHJvZmlsZXIgZ2Vt IChvciBDUnVieSBwYXRjaCwgd2hhdGV2ZXIgaXQgd2luZHMgdXAgYmVpbmchKSB0byBmb3JrIGEg cHJpdmlsZWdlZCBoZWxwZXIgYmluYXJ5IHRvIGRvIHNvbWUgZUJQRiB0d2lkZGxpbmcuIEJ1dCwg aWYgeW914oCZcmUgcHJvZmlsaW5nIGUuZy4gYSBVbmljb3JuIG1hc3RlciBwcm9jZXNzLCB0aGUg cmVzdWx0IG9mIHRoYXQgYmluYXJ5IGV4aXRpbmcgbWlnaHQgYmUgY2F1Z2h0IGJ5IFVuaWNvcm4g aXRzZWxmLCByYXRoZXIgdGhhbiBteSAoZ2VtIHwgaW50ZXJwcmV0ZXIgZmVhdHVyZSkuDQ0KDQ0K SW4gbXkgY2FzZSwgSSdtIHNvIGRlZXAgaW4gbGludXggc3BlY2lmaWMgc3R1ZmYgdGhhdCBqdXN0 IGNhbGxpbmcgYGNsb25lKDIpYCBmcm9tIG15IGV4dGVuc2lvbiBpcyBwcm9iYWJseSBmaW5lLCBi dXQgSSBoYWQgZW5vdWdoIG9mIGEgbG9vayBhdCB0aGlzIHByb2Nlc3MgbWFuYWdlbWVudCBzdHVm ZiBJIHRob3VnaHQgaXQgd291bGQgYmUgd29ydGggYXNraW5nIHRoZSBxdWVzdGlvbiBpZiB0aGlz IG1pZ2h0IGJlIHVzZWZ1bCB0byBvdGhlciwgbW9yZSBub3JtYWwsIGdlbXMuDQ0KDQ0KDQ0KDQ0K DQ0KLS0gDQ0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQ0KIF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0g cnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwg dG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0 dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9wb3N0b3JpdXMvbGlzdHMvcnVieS1jb3Jl Lm1sLnJ1YnktbGFuZy5vcmcv