From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTP id E64505A0262 for ; Thu, 8 Jun 2023 13:51:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1686225109; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=O0KpsNDswLTBAHgefK/p3SsYC2FfcLJDJ25uAr92tyE=; b=LDxFRjSESIPORuQbwe2GfOxQXKUvmEuG84MOBEf7S1UYa6k3d3Xw8BTV39kWY2mqk5rU4Y uSjAOqCCYSpz1BBXhawWYQOgqDPDe/uNfdHNKn20vwt8apacnIvNhwCZxOKr2/DHB5kLPG Km19emsw1e80z/XncO5CMxISiMegNdg= Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-130-aK4vp7d1MFeXqS6GlF6ctQ-1; Thu, 08 Jun 2023 07:51:48 -0400 X-MC-Unique: aK4vp7d1MFeXqS6GlF6ctQ-1 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-9775f04de56so70077166b.2 for ; Thu, 08 Jun 2023 04:51:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686225107; x=1688817107; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=O0KpsNDswLTBAHgefK/p3SsYC2FfcLJDJ25uAr92tyE=; b=K8zIaCCM+2V+9Y985oi+xj4/K5dT/oMunIvZAwFtgfHZsBnk9TPYAaIDiIrj/IhRE4 fhe/vmWiIsXdURGHsfDKmkD1WsA1ZAYKQk4tQ7gC3ESSM/8iZWxhbnra0vxQPu9MX5AD 9zfrmpGqDj4BwshPcMlidlnMLEmUP0kQzKcsmqylVAAqBGmOw4Xf2WW9VrqV84h+oPhK TVzNY9Q6oigxuxAdVg44b6mqZUsFkN2vsmPbmQx75hBRJlgMdH8rPxA7LR2nM7SDpEEU ml5fBIbPUN27mAa2swL1kWL/o8Q/Go8OtzLyirsyLKccoKEK/Cy1OwRFl+5H2MIQrFuh M2Lw== X-Gm-Message-State: AC+VfDzJzJNZJ2VEnnj36xLA5mwyJJiYYQNtLURYFXDqF3Ri5w/I+XmO ATmL/qdRUyMqmu9l9dnXFm+vkq5WYhUIS1CY9uOzccC+ZhUQ2jdV0RTVRvl5rdv5VSkL8A7NdgW W7Qsg8ltimSPu X-Received: by 2002:a17:906:9753:b0:974:86a7:d3a3 with SMTP id o19-20020a170906975300b0097486a7d3a3mr8735814ejy.13.1686225107279; Thu, 08 Jun 2023 04:51:47 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4CPcNu3avOitl8F1/cw6q9pm1c8OESphFELqVLchzcHqxHk3gB58hzMPOt0YsSnhQ4OoiclA== X-Received: by 2002:a17:906:9753:b0:974:86a7:d3a3 with SMTP id o19-20020a170906975300b0097486a7d3a3mr8735793ejy.13.1686225106849; Thu, 08 Jun 2023 04:51:46 -0700 (PDT) Received: from [10.43.2.36] (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id q9-20020a170906540900b00969f44bbef3sm620996ejo.11.2023.06.08.04.51.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 04:51:45 -0700 (PDT) Message-ID: <70692bd7-4d5f-5c83-105a-f1110108cdc4@redhat.com> Date: Thu, 8 Jun 2023 13:51:44 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH 0/2] Introduce --log-fd option To: Stefano Brivio References: <20230606225836.63aecebe@elisabeth> <39b5445f-3126-db92-01cd-60efb2dc25d1@redhat.com> <20230607164212.58afd4d8@elisabeth> From: =?UTF-8?B?TWljaGFsIFByw612b3puw61r?= In-Reply-To: <20230607164212.58afd4d8@elisabeth> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: UAWOH2OZ7ZJVZPMO6FJP4FQFSTDCRHKI X-Message-ID-Hash: UAWOH2OZ7ZJVZPMO6FJP4FQFSTDCRHKI X-MailFrom: mprivozn@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: passt-dev@passt.top X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gNi83LzIzIDE2OjQyLCBTdGVmYW5vIEJyaXZpbyB3cm90ZToNCj4gT24gV2VkLCA3IEp1biAy MDIzIDEzOjM4OjEyICswMjAwDQo+IE1pY2hhbCBQcsOtdm96bsOtayA8bXByaXZvem5AcmVkaGF0 LmNvbT4gd3JvdGU6DQo+IA0KPj4gT24gNi82LzIzIDIyOjU4LCBTdGVmYW5vIEJyaXZpbyB3cm90 ZToNCj4+PiBIaSwNCj4+Pg0KPj4+IE9uIFR1ZSwgIDYgSnVuIDIwMjMgMTM6NDE6MjggKzAyMDAN Cj4+PiBNaWNoYWwgUHJpdm96bmlrIDxtcHJpdm96bkByZWRoYXQuY29tPiB3cm90ZToNCj4+PiAg IA0KPj4+PiBUaGUgaWRlYSBiZWhpbmQgdGhpcyBpcyBzbyB0aGF0IGxpYnZpcnQgY2FuIGNyZWF0 ZSB0aGUgbG9nIGZpbGUsIHNldCBhbGwNCj4+Pj4gREFDL1NFTGludXggbGFiZWxzIGFuZCBqdXN0 IHBhc3MgcHJlLW9wZW5lZCBGRCB0byBwYXNzdC4NCj4+Pj4NCj4+Pj4gWW91IGNhbiB2aWV3IG15 IFdJUCBwYXRjaGVzIGZvciBsaWJ2aXJ0IGhlcmU6DQo+Pj4+DQo+Pj4+IGh0dHBzOi8vZ2l0bGFi LmNvbS9NaWNoYWxQcml2b3puaWsvbGlidmlydC8tL2NvbW1pdC81YmJlNDAwODdkNjg4OGE3YzQw MzFhMjIyNDczMTUyM2UxMTdjMDcyICANCj4+Pg0KPj4+IFRoYW5rcyBmb3IgdGhlIGltcGxlbWVu dGF0aW9uLi4uIGFuZCBhbHNvIGZvciB0YWtpbmcgY2FyZSBvZiB0aGUNCj4+PiBkZXRhaWxzIQ0K Pj4+DQo+Pj4gSSdtIG5vdCByZWFsbHkgZW50aHVzaWFzdGljIGFib3V0IHRoZSBzZWN1cml0eSBp bXBsaWNhdGlvbnMgb2YgdGhpcw0KPj4+IGFwcHJvYWNoLCBidXQgX2lmIGl0J3MgdGhlIG9ubHkg cmVhc29uYWJsZSB3YXkgdG8gc29sdmUgdGhpc18sIEkgd29uJ3QNCj4+PiBjZXJ0YWlubHkgc3Rh bmQgaW4gdGhlIHdheSBvZiBwcm9ncmVzcy4gVGhlIHNlcmllcyBsb29rcyBtb3N0bHkgZ29vZCB0 bw0KPj4+IG1lLCBJIGhhdmUgb25seSBhIGZldyBuaXRzLCByZXBvcnRlZCBpbiB0aGUgc2luZ2xl IHJlcGxpZXMuDQo+Pj4NCj4+PiBUaGlzIGFkZHMgYSBmdXJ0aGVyIGludGVyZmFjaW5nIG1vZGUg YmV0d2VlbiBwYXNzdCBhbmQgdGhlIHBhcmVudA0KPj4+IHByb2Nlc3MsIHdoaWNoIG1ha2VzIG1l IGEgYml0IHVuY29tZm9ydGFibGUgaW4gZ2VuZXJhbC4NCj4+Pg0KPj4+IFNwZWNpZmljYWxseSwg aWYgdGhlIHBhcmVudCBwcm9jZXNzIHJ1bnMgYXMgcm9vdCwgdGhpcyBnaXZlcyBhIHJvZ3VlDQo+ Pj4gcGFzc3QgcHJvY2VzcyBhIHdheSB0byB3cml0ZSBwb3RlbnRpYWxseSB1bmxpbWl0ZWQgYW1v dW50cyBvZiBkYXRhIHRvDQo+Pj4gZXNzZW50aWFsbHkgYW55IHBsYWNlIChtaW51cyBfc29tZV8g Y2hlY2tzIGltcGxlbWVudGVkIGJ5IExpbnV4IFNlY3VyaXR5DQo+Pj4gTW9kdWxlcykuIEFuZCBh IHJvZ3VlIHBhc3N0IHByb2Nlc3MgZG9lc24ndCBuZWNlc3NhcmlseSBpbXBseSBhIHJvZ3VlDQo+ Pj4gcGFyZW50LCBzbyB0aGlzIGlzIGFkZGl0aW9uYWwgc3VyZmFjZS4gIA0KPj4NCj4+IFdlbGws IGlzIGl0IGFueSBkaWZmZXJlbnQgdG8gd2hlbiBsaWJ2aXJ0IHdvdWxkIGNyZWF0ZSB0aGUgZmls ZSwgc2V0DQo+PiBwZXJtcyBhbmQgdGhlbiBsZXQgcGFzc3Qgb3BlbigpIGl0Pw0KPiANCj4gWWVz IC0tIEkgdGhpbmsgaXQgd291bGQgYmUgYXBwcm9wcmlhdGUgdGhhdCB0aGUgZmlsZSBpcyBub3Qg b3BlbmVkIGFzDQo+IHJvb3QsIGJlY2F1c2UgYWNjZXNzIGNvbnRyb2wgKGFsc28gb24gYmVoYWxm IG9mIExTTXMpIGxvZ2ljYWxseSBoYXBwZW5zDQo+IG9uIG9wZW4oKS4gSXQncyBwYXNzdCB1c2lu ZyB0aGF0IGZpbGUsIHNvIGl0IHNob3VsZCBvd24gaXQgYW5kIGJlDQo+IGFjY291bnRlZCBmb3Ig aXQgKGFsc28gaW4gdGVybXMgb2YgZGlzayBxdW90YSksIG5vdCBsaWJ2aXJ0LiBPbiB0aGUNCj4g b3RoZXIgaGFuZDoNCj4gDQo+PiBJbiBmYWN0LCBJIGZpbmQgcGFzc2luZyBGRCBzYWZlciBiZWNh dXNlIGxpYnZpcnQgZG9lc24ndCBuZWVkIHRvIHNldA0KPj4gdXAgcGVybXMvb3duZXIgYW5kIGNh biBsZWF2ZSB0aGUgbG9nIGZpbGUgYmUgb3duZWQgYnkgcm9vdDpyb290IHdpdGgNCj4+IDA2MDAg bW9kZSwNCj4gDQo+IC4uLmFsc28gdHJ1ZSwgZXZlbiB0aG91Z2g6DQo+IA0KPj4gb3IgYW55IG90 aGVyIHVzZXIgdGhhdCBsaWJ2aXJ0ZCBydW5zIHVuZGVyLg0KPiANCj4gaW4gdGhhdCBjYXNlLCB0 aGUgZmlsZSB3b3VsZCBiZSBhbHJlYWR5LCBuYXR1cmFsbHksIG93bmVkIGJ5IHRoYXQNCj4gKG5v bi1yb290KSB1c2VyIGFuZCBjcmVhdGVkIHdpdGggMDYwMCBwZXJtaXNzaW9ucyBhbnl3YXkuDQo+ IA0KPiBUaGUgaXNzdWUgaGVyZSBpbiBzb21lIHNlbnNlIGlzIHRoYXQgbGlidmlydGQgaXMgY29t bW9ubHkgKD8pIHJ1bm5pbmcNCj4gYXMgcm9vdC4gVG8ga2VlcCBpdCBzaW1wbGUsIGluIHRoZSBQ b2RtYW4gaW50ZWdyYXRpb24gKGZvciBwYXN0YSksIHdlDQo+IG9ubHkgZW5hYmxlZCBwYXN0YSAo c2FtZSBiaW5hcnkgYXMgcGFzc3QpIHRvIGJlIHVzZWQgaWYgUG9kbWFuIGFsc28NCj4gcnVucyAi cm9vdGxlc3MiLiBCdXQsIG9vcHM6DQo+ICAgaHR0cHM6Ly9naXRodWIuY29tL2NvbnRhaW5lcnMv cG9kbWFuL2lzc3Vlcy8xNzg0MA0KPiANCj4gVGhpcyBtYWtlcyBtZSByZWFsaXNlIGFub3RoZXIg cG9pbnQgdGhvdWdoOiBpZiBsaWJ2aXJ0ZCBydW5zIGFzIHJvb3QsDQo+IGF0IGxlYXN0IGluIHRo ZSBjdXJyZW50IGludGVncmF0aW9uLCBvciBhdCBsZWFzdCBieSBkZWZhdWx0ICg/KSwgcGFzc3QN Cj4gd2lsbCBydW4gd2l0aCB0aGUgc2FtZSB1c2VyIGFzIFFFTVUgKHVzdWFsbHkgInFlbXUiKSAt LSBub3QgIm5vYm9keSIuDQo+IEFuZCBhdCB0aGlzIHBvaW50IEknbSBub3QgZW50aXJlbHkgc3Vy ZSB0aGF0IGhhdmluZyBhIGxvZyBmaWxlIG93bmVkIGJ5DQo+IHJvb3QgaXMgbXVjaCBwcmVmZXJh YmxlIHRvIGhhdmluZyBpdCBvd25lZCBieSB0aGF0ICJxZW11IiB1c2VyLg0KPiANCj4+PiBPaCwg YW5kIGJ5IHRoZSB3YXkgb2YgTFNNcywgd2Uga2luZCBvZiBieXBhc3Mgc3R1ZmYgbGlrZSB0aGlz Lg0KPj4+DQo+Pj4gRm9yIGEgbm9uLXJvZ3VlIHBhc3N0IHByb2Nlc3MsIGlmIHRoZSBwYXJlbnQg cnVucyBhcyByb290LCBJIGRvbid0IHNlZQ0KPj4+IGFueSBhZGRpdGlvbmFsIGF0dGFjayBzY2Vu YXJpbyAtLSB0aGUgcGFyZW50IGNvdWxkIGRvIGFueXRoaW5nIGl0IHdhbnRzDQo+Pj4gYW55d2F5 LiBCdXQgaWYgdGhlIHBhcmVudCBydW5zIGFzIHJlZ3VsYXIgdXNlciwgdGhlcmUgYXJlIGEgZmV3 DQo+Pj4gYWRkaXRpb25hbCB3YXlzIHRvIGNhdXNlIHBhc3N0IHRvIG1pc2JlaGF2ZSBieSBwYXNz aW5nIGluIGEgZmlsZQ0KPj4+IGRlc2NyaXB0b3IgdGhhdCBkb2Vzbid0IGNvcnJlc3BvbmQgdG8g YSBmaWxlLCBvciB0aGF0J3Mgb3BlbmVkIGJ5IG90aGVyDQo+Pj4gcHJvY2Vzc2VzLCB3aXRob3V0 IGFueSBtZWRpYXRpb24gYnkgdGhlIGZpbGVzeXN0ZW0gKHdoaWNoIGlzIGdlbmVyYWxseQ0KPj4+ IHNwZWFraW5nIG5vdCB1bmRlciBjb250cm9sIG9mIHVucHJpdmlsZWdlZCB1c2VycykuICANCj4+ DQo+PiBTbyBhbiBhdHRhY2tlciBjYW4gY2F1c2UgbGlidmlydGQgdG8gcGFzcyBhbiBGRCB0aGF0 IGRvZXNuJ3QgYmVsb25nIHRvDQo+PiB0aGUgbG9nIGZpbGUgb3BlbmVkIGJ5IGxpYnZpcnRkPw0K PiANCj4gTm8sIG5vLCBieSAiW25vdF0gYSBmaWxlIiBJIHJlYWxseSBtZWFudCBbbm90XSBhIHJl Z3VsYXIgZmlsZSAoc2F5LCBhDQo+IFRUWSksIGFuZCBub3QgbmVjZXNzYXJpbHkgbGlidmlydGQg LS0gb3IgYSByb2d1ZSBsaWJ2aXJ0ZC4gQWxsIEknbQ0KPiBzYXlpbmcgaXMgdGhhdCBpZiB5b3Ug aGF2ZSBjb250cm9sIG92ZXIgdGhlIGxvZyBmaWxlIGRlc2NyaXB0b3IsDQo+IG91dHNpZGUgcGFz c3QsIGFzIHJlZ3VsYXIgdXNlciwgeW91IG1pZ2h0IGFsc28gZ2V0IGNvbnRyb2wgb3ZlciB0aGUN Cj4gYmVoYXZpb3VyIG9mIHBhc3N0LCB3aXRob3V0IGFueSBtZWRpYXRpb24gYnkgdGhlIGZpbGVz eXN0ZW0uDQo+IA0KPj4gSW50ZXJlc3RpbmcsIEkgdGhvdWdoIHRoYXQncyBpbXBvc3NpYmxlLg0K PiANCj4gV2VsbCwgc3RyaWN0bHkgc3BlYWtpbmcgaXQncyBub3QsIGp1c3QgdXNlIGEgdHJhY2Vy LCBidXQgdGhlbiBhdCB0aGF0DQo+IHBvaW50IG9uZSB3b3VsZCBnYWluIG5vdGhpbmcgYWRkaXRp b25hbCBmcm9tIGl0Lg0KPiANCj4+IEkgbWVhbiwgaXQncyBzb3J0IG9mIGEgZ29hbCB3ZSdyZSB3 b3JraW5nIHRvd2FyZHMgd2l0aCBRRU1VDQo+PiAtIGxpYnZpcnQgb3BlbnMgRkRzIGFuZCB0aGVu IGp1c3QgcGFzcyB0aGVtIHRvIFFFTVUuIFNvIGlmIGl0J3MgcmVhbGx5DQo+PiB1bnNhZmUsIHdl IHNob3VsZCByZS1ldmFsdWF0ZSBvdXIgZ29hbC4NCj4gDQo+IFRvIG1lIHRoYXQgYWxzbyBwb3Nl cyB0aGUgcHJvYmxlbSB0aGF0IGlmIGEgTFNNIHBvbGljeSBvciBWRlMtYmFzZWQNCj4gYWNjZXNz IGNvbnRyb2wgZm9yYmlkcyBRRU1VIHRvIGFjY2VzcyBhIHJlc291cmNlLCB5b3UgYXJlIGVmZmVj dGl2ZWx5DQo+IGJ5cGFzc2luZyB0aGF0IC0tIGFuZCB5b3UncmUgYWxzbyBieXBhc3Npbmcgd2hh dGV2ZXIgZmxhZyBRRU1VIHdvdWxkDQo+IG5vcm1hbGx5IHVzZSBvbiBvcGVuKCkuIEJ1dCBJIGRv bid0IGtub3cgaW4gd2hpY2ggY2FzZXMgdGhpcyBpcyBiZWluZw0KPiBkb25lIGFuZCBpZiBpdCdz IGFjdHVhbGx5IGEgcHJvYmxlbSAob3IgYSBiaWdnZXIgcHJvYmxlbSB0aGFuIHRoZQ0KPiBzb2x1 dGlvbiBpdCBvZmZlcnMpLg0KPiANCj4+PiBJJ2QgcmF0aGVyIG11Y2ggcHJlZmVyIHRoZSBtb3Jl IGNvbW1vbiBhcHByb2FjaCBvZiBkZWZhdWx0aW5nLCBvcg0KPj4+IHN1Z2dlc3RpbmcgdG8gdGhl IHVzZXIsIHRvIHdyaXRlIHRvIGEgdGVtcG9yYXJ5IGZpbGVzeXN0ZW0sIGF2YWlsYWJsZQ0KPj4+ IHVuZGVyIG1vc3QgZGlzdHJpYnV0aW9ucyB1bmRlciAvcnVuIG9yIC92YXIvcnVuLiBJcyB0aGF0 IHJlYWxseQ0KPj4+IHVuZmVhc2libGU/ICANCj4+DQo+PiBJdCBpZiBmZWFzaWJsZS4gSSBqdXN0 IHRob3VnaHQgdGhhdCB3aGVuIHVzZXJzIHdhbnQgdGhlaXIgbG9ncyB0byByZXNpZGUNCj4+IHVu ZGVyIHNvbWUgc3BlY2lhbCBwYXRoIHRoYXQgbGlidmlydGQgaGFzIGFjY2VzcyB0bywgYnV0IG5v dCBwYXNzdCB0aGVuDQo+PiB3ZSBtaWdodCB1c2UgRkQgcGFzc2luZy4NCj4gDQo+IE9uIHRoZSBv dGhlciBoYW5kIChhbmQgc3VyZSwgZnJvbSBhIHVzZXIgcGVyc3BlY3RpdmUgdGhpcyBpcyBkaWZm ZXJlbnQpDQo+IHdlIGRvbid0IGFsbG93IHBhc3N0IHRvIHNhdmUgaXRzIFBJRCBmaWxlIG9yIGNy ZWF0ZSBpdHMgc29ja2V0IGluDQo+IHdoYXRldmVyIHBsYWNlLiBCdXQgSSBzZWUgdGhlIHVzYWJp bGl0eSBwb2ludCB5b3UncmUgbWFraW5nIGFuZCBJIHRoaW5rDQo+IGl0IGhhcyBpdHMgdmFsdWUg dG9vLg0KPiANCj4gTG9uZyBzdG9yeSBzaG9ydCwgaWYgeW91IHRoaW5rICh5b3Uga25vdyBiZXR0 ZXIpIHRoYXQgdXNlcnMgd291bGQNCj4gY29tbW9ubHkgcnVuIGxpYnZpcnRkIGFzIHJvb3QgYW5k IHJlcXVlc3QgdGhhdCBwYXNzdCB3cml0ZXMgaXRzIGxvZw0KPiBmaWxlIHRvIGFuIGFyYml0cmFy eSBsb2NhdGlvbiwgZXZlbiBpZiB3ZSBvZmZlciBhIGRpZmZlcmVudCBkZWZhdWx0DQo+IChpbmNs dWRpbmcgYSByZWxhdGl2ZSBwYXRoKSBvciBzb21laG93IHJlY29tbWVuZCBzb21ldGhpbmcgZWxz ZSwgSSB0aGluaw0KPiB3ZSBzaG91bGQgZ28gYWhlYWQgd2l0aCB0aGlzLiBPdGhlcndpc2UgSSdt IG1pbGRseSBhZ2FpbnN0IGl0Lg0KDQpJIGRvbid0IHRoaW5rIHRoYXQgcGFzc3QgYWR2YW50YWdl IHNob3dzIHdoZW4gcnVubmluZyBsaWJ2aXJ0ZCBhcyByb290Lg0KVGhlcmUgYXJlIG90aGVyIChi ZXR0ZXI/KSB3YXlzIHRvIHByb3ZpZGUgbmV0d29yayBjb25uZWN0aXZpdHkgaW4gdGhhdA0KY2Fz ZS4gVGhlIG1haW4gYWR2YW50YWdlIHNob3dzIHdoZW4gcnVubmluZyB1bnByaXZpbGVnZWQgaW4g d2hpY2ggY2FzZQ0KdGhlIGxvZyBmaWxlIGlzIGdvaW5nIHRvIGJlIG93bmVkIGJ5IGN1cnJlbnQg dXNlciAod2hpY2ggaXMgdGhlIHNhbWUNCnVzZXIgdGhhdCBRRU1VIHdpbGwgcnVuIHVuZGVyKS4N Cg0KPiANCj4+PiBJJ20gdGhpbmtpbmcgdGhhdCBsaWJ2aXJ0IGFscmVhZHkgbmVlZHMgYSBzcGVj aWZpYyBkaXJlY3RvcnkgZm9yIHBhc3N0DQo+Pj4gdG8gdXNlIChzb2NrZXQgYW5kIFBJRCBmaWxl cykuIFdoYXQgaWYgbG9nRmlsZSwgb3RoZXIgdGhhbiBhbiBhYnNvbHV0ZQ0KPj4+IHBhdGgsIHN1 cHBvcnRlZCBhIHJlbGF0aXZlIHBhdGg/IFRoaXMgbG9naWMgbWlnaHQgcGVyaGFwcyBhcHBseSB0 bw0KPj4+IG90aGVyIGhlbHBlcnMgb3IgZXh0ZXJuYWwgcHJvZ3JhbXMgdG9vLiAgDQo+Pg0KPj4g VGhhdCdzIHRhbmdlbnQgdG8gdGhpcyBwcm9ibGVtLg0KPiANCj4gV2h5PyBJIHRoaW5rIHRoaXMg YWxzbyByZWZsZWN0cyBvbiB1c2FiaWxpdHksIGFuZCBtaWdodCBoYXZlIHNvbWUgd2VpZ2h0DQo+ IG9uIHRoZSBwcmV2aW91cyBwb2ludC4NCg0KV2VsbCwgbGlidmlydCB3b3VsZCBmaXJzdGx5IG5l ZWQgdG8gZXhwb3NlIHRoZSBkb21haW4gc3BlY2lmaWMgcGF0aA0Kc29tZXdoZXJlLCBzbyB0aGF0 IHVzZXJzIGtub3cgdGhlIHByZWZpeCB0aGF0IHRoZSByZWxhdGl2ZSBwYXRoIHJlZmVycw0KdG8u IFNlY29uZGx5LCBsaWJ2aXJ0IG11c3QgdGhlbiBOT1QgcmVtb3ZlIHRoZSB0ZW1wb3JhcnkgcGF0 aCwgc28gdGhhdA0KdGhlIGxvZyBmaWxlIGlzIHByZXNlcnZlZCBldmVuIGFmdGVyIGRvbWFpbiBp cyBzaHV0IG9mZiAoZS5nLiBzb21lYm9keQ0KbWlnaHQgYmUgaW50ZXJlc3RlZCBpbiBsb2cgbWVz c2FnZXMgdGhhdCBoYXBwZW4gd2hlbiBRRU1VIGRpc2Nvbm5lY3RzKS4NCg0KSU9XLCBpdCBpcyB0 YW5nZW50Lg0KDQo+IA0KPj4+IEJ5IHRoZSB3YXksIHBhc3N0IHNoaXBzIHdpdGggQXBwQXJtb3Ig YW5kIFNFTGludXggZXhhbXBsZSBwb2xpY2llcywNCj4+PiB3aGljaCBhcmUgYWxzbyBpbmNsdWRl ZCBpbiBwYWNrYWdlcy4gVGhleSB3b3VsZCBuZWVkIGF0IGxlYXN0IGEgcXVpY2sNCj4+PiByZXZp ZXcsIHByb2JhYmx5IHNvbWUgZWRpdHMsIGFuZCBzb21lIGJhc2ljIHRlc3RzLiBUaGlua2luZyBv ZiB0aG9zZSwgYQ0KPj4+IHJlbGF0aXZlIHBhdGggd291bGQgYWxzbyBzaW1wbGlmeSB0aGluZ3Mu DQo+Pg0KPj4gQWgsIGNvbXBsZXRlbHkgZm9yZ290IGFib3V0IHRob3NlLiBZZWFoLCB0aGV5IG1p Z2h0IG5lZWQgdHdlYWtpbmcgZXZlbg0KPj4gaWYgd2UgZGVjaWRlIHRvIGdvIHRoaXMgcm91dGUu DQo+IA0KPiBFaXRoZXIgd2F5LCBkbyB5b3UgcGxhbiB0byB0YWtlIGNhcmUgb2YgdGhvc2U/IEkg Y2FuLCBidXQgbm90IHJpZ2h0DQo+IGF3YXkuDQo+IA0KDQpOYWgsIGxldCdzIGRpc2NhcmQgdGhp cy4gSSBkaWRuJ3QgcmVhbGl6ZSB0aGF0IHlvdSB3YW50IHRoZSBleHRyYSBndWFyZA0Kb2Ygb3Bl bigpLiBTbyBJJ2xsIGp1c3QgbWFrZSBsaWJ2aXJ0IGNyZWF0ZSBhbiBlbXB0eSBmaWxlLCBzZXQg cGVybXMgb24NCml0IGFuZCBjb250aW51ZSB1c2luZyAtLWxvZy1maWxlLg0KDQpUaGFua3MgYW55 d2F5IQ0KDQpNaWNoYWwNCg0K