From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=; dkim=pass header.d=gmail.com; arc=pass; dmarc=pass (Used From Domain Record) header.from=gmail.com policy.dmarc=quarantine Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by mail.toke.dk (Postfix) with ESMTPS id 65C3711CEDEE for ; Sun, 07 Jun 2026 08:08:21 +0200 (CEST) Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-bec3f69d343so477214266b.0 for ; Sat, 06 Jun 2026 23:08:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780812500; cv=none; d=google.com; s=arc-20240605; b=cmtKMJ1GltHzuXjfF+u1zL1uCBhvupSS/WgHSV55CbEGn0oR+JvNKgoQ1i9IJE1HwS AO42qbnB0OpEPVQ8PVc4rErnHh5fHRDXvIKTuiOrOyyK6z7UfiAJlMGxzsGt4ApS+PMD aRJvA7skKRIhWt2ufTojHzJZhMFRXTl807TuZUgO30JOkABRyJQy2MyGfEQRi1ewQ4Og HZ6hZllT7VI4rG6E23drAD4FJqgDkrxT41K5uGsUR+Nr6ufng4ISt5t/lqZICcIAipAX 0urY2cQoLUkFmqzuGgDkg7IOi5D7ab+oe2WMqWbSr4dVh7aLEqfWt67UuF21rsfERj5t yCjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=DKpZWw+jdt3PgwlJ2KH0lVEx3Vg+n/oMQFQzofBot1o=; fh=IumE9fN7tb5Sly73mfl/N1sdxPjs9EakOdFVGOz3bGw=; b=M2Nt/8so6B2ADqSErVcLtsj7vRFhbfYXljoQgjwpSX66TjwEWQVmOQvXoXdSFKltdM 8VXWzEjARbXoB9GU0h1F0RFTJxEMl06ZFfRQYoDkMkyZ0sOrvRrVhT15rq7knsuv5JrF 99+COWh+RBBjDbE4jbqiflWdUeIP0vFx7ktvfaa5KTVntIOwm+DB1+ACDIaZ4Cs5vF6n MDEMp6b06p1n7x6lruHck8T/Vh3h5apSw+Vu6a9eOzbCNfogkfEt25jEaCNCKFhwupi2 8kXHAkNKl3olpK9wQWrCv/Hsvwg0/DdBe9gdW3RvBiqVnC4JXujwMqLALznnMXpkI2Af 8Ixw==; darn=lists.bufferbloat.net ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780812500; x=1781417300; darn=lists.bufferbloat.net; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=DKpZWw+jdt3PgwlJ2KH0lVEx3Vg+n/oMQFQzofBot1o=; b=j/pXr7aVYRq2pKS4A+K+FdjddNF2SVXygz+v+6p7iOaYxEc8eDv0rvvLuZO39IZCKx XczoVMWLcoN8JZnd28SD9Lya4lW9mBYWh8+j7/N3u0QYGXbrQ+H6p24zXm5dMxUJSgkm phBtNO2erM04HC/hKAnyoFs6g90CzAISz9DIMrIl8dg/0j8T2fiVagQCwEVwd/T0dtLB WvMUvHpMkljIqwm22DzUL60/wKnSss4hXWbLyK1v+VdC/jiXD0uJC3fHiDtDtRkeXGRO joOf9qlLLN3GtE1DpVa2MoK9bfHis85/u+rSKZvQGY3VvLseu818BZIUpJFAs95Zd0+U 56CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780812500; x=1781417300; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DKpZWw+jdt3PgwlJ2KH0lVEx3Vg+n/oMQFQzofBot1o=; b=VcFlgZWFTxawxvgTQ36vw+KMLc5/VSnEpEsKrIX/SKEmK/pJOK0NnygnpsGo+ZTat6 FGk0+17VTEmlzf7ikai1GTbjxFn84gqvhoKOLPWrucR75Vrgf6UVyv2Xe1VHu4CjzsN8 xtqmTHbdmBDk8M6ANM8zWqIk8xsIXC9tf4zKWfcfdNrtE5n8fqBgBLHhlhTWPgxBI5SH KrFUdxA3LL1Yky/+duiGohtb7K4BB5y7obNsCBENw2JjXDNrW/K1dyj65HR7Zo6/4H4p T4A0ivGk2b2ULat3ybQbMYPDvj9CmIgzCPuGA2UPUQndwHpBoTimbZV04oh5AX7km8qd Dk8g== X-Forwarded-Encrypted: i=1; AFNElJ/vsNWqHfkJ1qm5jp1DnXhz38rhucZqpzN4AD0aPbdiQcVvn4HngxGMsy21q+I5iDaSOVQ1a/leOLXWTF6Z2A==@lists.bufferbloat.net X-Gm-Message-State: AOJu0YyWeEuy2BRACIeOO3/7vRWYo8IES3+EIf+0P2SFA64YY0zK5YSI uRJfdpXOFmVSWZtuHB5f7Yyv8QM/jL2EnqUKYorGnK5fHbd58SBNx0QxDqTZOIhj/W/gNkbnQFo C5xNSafqInTgKfDryPXLjGbkgjdC7s1g= X-Gm-Gg: Acq92OHpKYsC2ai7fUsL5vaEBotJy9bTBxR7JEVEu/h+KmwDJCTUkwqGzte5EmI+lN5 IurnaFA9KnhgfGNhH6IaLb8eq8i15PWw6zQTcMZ4fVJoy7P9KtSZtKjb6ei6YCwfWdyKCkoSGlr HOSBVedizexjqFNiwwRBAYZv2yQgdsofP7vPt9IewwkpaC+9T3262gBao8phnuk3s80IMBa0C7U ZDG4ELn6uUVHVi6WITEiQg8FMHCZPxvKOijLj3ROp64QNTYz1DCn2PEBn8VsOkj5rIr0ZeDvwLp E+asY6P4ZBELVtG0hHI9P3RTjDDFE98mWvx83vBjRiAay9RsNie6dIJKlMNhn2O2ai1CEHp3Yc+ 5F/mq X-Received: by 2002:a17:907:8b8a:b0:bea:4a9b:27e3 with SMTP id a640c23a62f3a-bf370181c32mr502789466b.2.1780812499666; Sat, 06 Jun 2026 23:08:19 -0700 (PDT) MIME-Version: 1.0 References: <0oq1n88q-36qn-p6s7-699s-p4nr0440p950@ynat.uz> <8e14c6935753c6263351ad00ec59b9cb@umbernetworks.com> <055e42685cddfa4c1a4ff4da089996eb@umbernetworks.com> <7455E3B4-7FB4-4D40-A900-B31151D12F6F@gmx.de> In-Reply-To: From: Frantisek Borsik Date: Sun, 7 Jun 2026 08:15:10 +0200 X-Gm-Features: AVVi8Cc1WER2bZpm3e54Yk1jH1X7iHaM25sKaqRZ_TybeOTRWFAeO8rJ5A1-IoY Message-ID: To: Sebastian Moeller Cc: codel@lists.bufferbloat.net, bob.mcmahon@umbernetworks.com, dan , Cake List , Make-Wifi-fast , bloat X-MailFrom: frantisek.borsik@gmail.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation Message-ID-Hash: MWAQJJRVX4RUVYPBHUO4GQ3I6PMWMSYU X-Message-ID-Hash: MWAQJJRVX4RUVYPBHUO4GQ3I6PMWMSYU X-Mailman-Approved-At: Sun, 07 Jun 2026 14:15:11 +0200 Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list Subject: [Make-wifi-fast] Re: [Codel] [Rpm] Re: [Bloat] Re: [Cake] "Fi-Wi is a new forwarding plane for wireless" - Bob McMahon List-Id: Lets make wifi fast again! Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: QmVmb3JlIG15IHJlcGx5LCBoZXJlIGlzIEJvYidzIHRhbGsgYXQgRFBESyBTdW1taXQ6DQpodHRw czovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWtMZElYVlBLVDFJDQpIaXMgZW1haWxzIG1pZ2h0 IHN0aWxsIGhhdmUgc29tZSBpc3N1ZXMgZ2V0dGluZyBpbiwgd2Ugd2lsbCBpbnZlc3RpZ2F0ZS4N Cg0KSSB3aWxsIGJlIHF1aWNrIGFuZCBoYXJzaCA6LSkNCg0KSSByZWFsbHkgZG9uJ3QgY2FyZSBh Ym91dCBXaS1GaSBldGMgZXhwZXJpbWVudHMgYW5kIHJlc3VsdHMgZnJvbSB0aGUNCmxhYi9ob21l L29yIFBsdW1lLWxpa2UgYmlnIHRlc3RpbmcgaG91c2UgZXZlbiwgdGhlIG1hdHRlciBpcyBzaW1w bGU6IElzIHRoZQ0Kc2V0dXAgcnVuIGJ5IERhbiwgYW4gSVNQIHdpdGgga25hY2sgZm9yIGRvaW5n IHRoaW5ncyBtb3JlIGdvb2QgZW5vdWdoLA0KZWZmaWNpZW50IGFuZCB3aXRoIHNvbWUgbG9uZy10 ZXJtIHZpZXcgaW4gbWluZCwgd29ya2luZyB3ZWxsLCBldmVuIG1vcmUNCnRoYW4gd2VsbCwgZGVz cGl0ZSBhbGwgdGhlIFdpLUZpIHNjaGVkdWxpbmcgZXRjIGlzc3Vlcz8NCg0KSXQgaXMuIE5vIG1h dHRlciBob3cgZ29vZCB3aWxsIGJlIHJlcG9ydGVkLCBwb3RlbnRpYWwgaW1wcm92ZW1lbnRzLCB0 aGVyZQ0KaXMgbm8gcmVhc29uIGZvciBoaW0gdG8gc2NyYXAgaGlzIHBsYXlib29rLCB0ZWFyIGRv d24gdGhlIHNldHVwIHRoYXQncyBlYXN5DQp0byBnZXQgdXAgYW5kIHJ1bm5pbmcsIHdoaWNoIGlz IGFsc28gc2NhbGFibGUsIGFuZCBsaXRlcmFsbHkgY2hhc2UgZ2hvc3RzDQpvZiBGaS1XaS4NCg0K QXJlIHRoZXJlIHNvbWUgSVNQcyBvdXQgdGhlcmUsIHRoYXQgd2lsbCBmYWxsIGluIGxvdmUgd2l0 aCByZXN1bHRzDQpwcm9taXNpbmcgYSBwb3RlbnRpYWwgaW1wcm92ZW1lbnRzPyBBYnNvbHV0ZWx5 IHllcy4gVGhlcmUgYXJlIHBlb3BsZSBvdXQNCnRoZXJlIGZhbGxpbmcgaW4gbG92ZSB3aXRoIEw0 UywgdGhyb3dpbmcgYXdheSBhbGwgdGhleSBrbmV3IGFib3V0DQpidWZmZXJibG9hdCwganVzdCB0 byBjaGFzZSBpdCBhcyBhIGhvbHkgZ3JhaWwuIFRoZXJlIGFyZSBhbHNvIHBlb3BsZSB0aGF0DQpi ZWxpZXZlcyB0aGF0IDZHIHdpbGwgc2FmZSB0aGUgZGF5LCBjaGFuZ2UgYWJzb2x1dGVseSBldmVy eXRoaW5nIGFuZA0KZW1wb3dlciBmbHlpbmcgY2Fycywgc2VsZi1kcml2aW5nIGNhcnMgYW5kIHRo ZWlyIGhvbWUgcm9ib3QgYnV0bGVycywgd2hpbGUNCm1ha2luZyBBSSBpbnRvIGdhemlsbGlvbiBk b2xsYXIgaW5kdXN0cnkgdGhhdCB3aWxsIGN1cmUgY2FuY2VyLCBhbmQNCnJlaW52ZW50IHRoZSB3 aGVlbC4gQSBmYWN0IHRoYXQgdGhleSB3ZXJlIHRlbGxpbmcgdXMgdGhlIHNhbWUgYWJvdXQgNUcs DQpkb2Vzbid0IGNoYW5nZSBhbnl0aGluZy4NCg0KDQpBbGwgdGhlIGJlc3QsDQoNCkZyYW5rDQoN CkZyYW50aXNlayAoRnJhbmspIEJvcnNpaw0KDQoNCipJbiBsb3ZpbmcgbWVtb3J5IG9mIERhdmUg VMOkaHQ6ICoxOTY1LTIwMjUNCg0KaHR0cHM6Ly9saWJyZXFvcy5pby8yMDI1LzA0LzAxL2luLWxv dmluZy1tZW1vcnktb2YtZGF2ZS8NCg0KDQpodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vZnJh bnRpc2VrYm9yc2lrDQoNClNpZ25hbCwgVGVsZWdyYW0sIFdoYXRzQXBwOiArNDIxOTE5NDE2NzE0 DQoNCmlNZXNzYWdlLCBtb2JpbGU6ICs0MjA3NzUyMzA4ODUNCg0KU2t5cGU6IGNhc2lvYTUzMDJj YQ0KDQpmcmFudGlzZWsuYm9yc2lrQGdtYWlsLmNvbQ0KDQoNCk9uIE1vbiwgTWF5IDI1LCAyMDI2 IGF0IDM6MzfigK9QTSBTZWJhc3RpYW4gTW9lbGxlciA8bW9lbGxlcjBAZ214LmRlPiB3cm90ZToN Cg0KPiBIaSBGcmFuaywNCj4NCj4gKEkgc2hvcnRlbmVkIHRoZSBDQyBsaXN0LCBJIGJlbGlldmUg dGhlIGxpc3Qgc2dob3VsZCBzdWZmaWNlLCBubz8pDQo+DQo+ID4gT24gTWF5IDI1LCAyMDI2LCBh dCAxNDo0NSwgRnJhbnRpc2VrIEJvcnNpayA8ZnJhbnRpc2VrLmJvcnNpa0BnbWFpbC5jb20+DQo+ IHdyb3RlOg0KPiA+DQo+ID4gTm90IHNheWluZyB0aGF0IG1vZGVybiBXaS1GaSBoYXMgbm8gaXNz dWVzIG9yIHRoYXQgdGhlc2UgaXNzdWVzIHdpbGwgYmUNCj4gbWl0aWdhdGVkIGF0IGFsbCAobGV0 IGFsb25lIGFueSB0aW1lIHNvb24pLCBidXQgY29tcGVuc2F0ZWQgd2l0aCBGUS1Db0RlbA0KPiBh bmQgQ0FLRSwgY291cGxlZCB3aXRoIFFvRSBtaWRkbGUtYm94IGFuZCBwcm9wZXIgcGVlcmluZywg aXQncyBtb3JlIHRoYW4NCj4ganVzdCBnb29kIGVub3VnaC4NCj4NCj4gSSByZXNwZWN0ZnVsbHkg ZGlzYWdyZWUsIGFuZCBJIGFtIG5vdCBzYXlpbmcgdGhpcyB0byBzcGl0ZSB5b3UsIGJ1dA0KPiBi ZWNhdXNlIEkgYW0gY3VycmVudGx5IHJ1bm5pbmcgc29tZSBXaUZpIGV4cGVyaW1lbnRzIGluIG15 IGhvbWUgbmV0d29yaywNCj4gYW5kIHRvIG15IHRhc3RlIGl0IGlzIG5vdCBnb29kIGVub3VnaC4g QW5kIHRoYXQgaXMgd2l0aCBPcGVuV3J0IEFQcyB0aGF0DQo+IGFscmVhZHkgc3VwcG9ydDoNCj4N Cj4gWyBUWFFTIF06IEZRLUNvRGVsLWVuYWJsZWQgaW50ZXJtZWRpYXRlIFRYUXMNCj4gWyBBSVJU SU1FX0ZBSVJORVNTIF06IGFpcnRpbWUgZmFpcm5lc3Mgc2NoZWR1bGluZw0KPiBhbmQsIHdoZXJl IGFwcGxpY2FibGUNCj4gWyBBUUwgXTogQWlydGltZSBRdWV1ZSBMaW1pdHMgKEFRTCkNCj4NCj4g d2l0aCB0aGUgZm9sbG93aW5nIGFxbCB0d2Fla3MNCj4gIyBBUUwgVHdlYWtzDQo+IGFxbF90eHFf bGltaXRfbD0yNTAwDQo+IGFxbF90eHFfbGltaXRfaD04NTAwDQo+IGZvciBhYyBpbiAwIDEgMiAz OyBkbyBlY2hvICRhYyAkYXFsX3R4cV9saW1pdF9sICRhcWxfdHhxX2xpbWl0X2ggPg0KPiAvc3lz L2tlcm5lbC9kZWJ1Zy9pZWVlODAyMTEvcGh5MC9hcWxfdHhxX2xpbWl0OyBkb25lDQo+IGZvciBh YyBpbiAwIDEgMiAzOyBkbyBlY2hvICRhYyAkYXFsX3R4cV9saW1pdF9sICRhcWxfdHhxX2xpbWl0 X2ggPg0KPiAvc3lzL2tlcm5lbC9kZWJ1Zy9pZWVlODAyMTEvcGh5MS9hcWxfdHhxX2xpbWl0OyBk b25lDQo+DQo+IHNvIGZyb20gdGhlIHdpZmkgc2lkZSB0aGlzIGlzIGNsb3NlIHRvIGFzIGdvb2Qg YXMgaXQgY3VycmVudGx5IGdldHMgZm9yDQo+IExpbnV4L09wZW5XcnQgd2l0aCBvcGVuIHNvdXJj ZSBkcml2ZXJzIChmb3IgV2lGaTQvNS82IEFQcykNCj4NCj4gYW5kIHN0aWxsIHVuZGVyIFdpRmkt bGltaXRlZCBzY2VuYXJpb3MgaCsrcHM6Ly90ZXN0LmxpYnJlcW9zLmNvbSBzaG93cw0KPiBsYXRl bmN5IGV4Y3Vyc2lvbnMgaW50byB0aHRlIDUwMC05MDBtcyByYW5nZS4gRm9yIG15IHRhc3RlIHRo YXQgY2VydGFpbmx5DQo+IGxlYXZlcyBhbXBsZSByb29tIGZvciBpbXByb3ZlbWVudHMuIFN1cmUs IHdoZW4gSSBnZXQgY2xvc2VyIHRvIHRoZSBBUCBzbw0KPiBXaUZpIHRocm91Z2hwdXQgZXhjZWVk cyBXQU4gdGhyb3VnaHB1dCBteSBXQU4gc2hhcGVyIGtpY2tzIGluIGFuZCBJIGdldA0KPiBkZWNl bnQgdGVzdCByZXN1bHRzICh3aXRoIG5vIG5vdGljZWFibGUgaW5jcmVhc2UgaW4gbGF0ZW5jeS11 bmRlci1sb2FkKSwNCj4gYnV0IHRoYXQgaXMgYSB3b3JrLWFyb3VuZCBvbmx5Lg0KPg0KPiA+IEFu ZCBpdCdzIGhlcmUsIGF0IHRoZSBvdXIgZGlzcG9zYWwuIFRoaXMga25vd2xlZGdlIGl0J3MganVz dCBub3QgZXZlbmx5DQo+IGRpc3RyaWJ1dGVkIGFuZCB1c2VkIGF0IHNjYWxlLg0KPg0KPiBBZ2Fp biwga25vd2xlZGdlIGlzIGZpbmUsIGJ1dCBub3Qgc3VmZmljaWVudCwgaWYgSSBydW4gbXkgQVBz DQo+IHVuZGVyLWNhcGFjaXR5ICh0aGF0IGlzIGlmIG15IFdBTiBzaGFwZXIgbGltaXRzIHRyYWZm aWMgcmF0ZXMgdG8gd2VsbCBiZWxvdw0KPiBXaUZpIGNhcGFjaXR5KSB0aGluZ3MgbG9vayAic29s dmVkIiBidXQgdGhlIG1vbWVudCB0aGUgQVAgaXMgZnVydGhlciBhd2F5DQo+IGFuZCB0aGUgc2ln bmFsIGdldHMgd2Vha2VyIHRoaW5ncyBnbyBwZWFyIHNoYXBlZCBmYXN0LiBJTUhPIHRoaXMgaXMg bm90IGENCj4gcm9hbWluZyBpc3N1ZSAoc3VyZSBpdCB3b3VsZCBiZSBuaWNlIGlmIHN0YXRpb25z IHdvdWxkIGFsd2F5cyBwaWNrIHRoZSBiZXN0DQo+IEFQKSBidXQgcmVhbGx5IGEgInBlcmZvcm1h bmNlIHVuZGVyIHNhdHVyYXRpbmcgY29uZGl0aW9ucyIgaXNzdWUgdGhhdA0KPiBpZGVhbGx5IHNo b3VsZCBiZSBmaXhlZCwgYXMgIm5ldmVyIGxldCB0aGUgV2lGaSBiZWNvbWUgdGhlIGJvdHRsZW5l Y2siIGlzDQo+IG5vdCBhIHJlYWwgc29sdXRpb24gYW5kIGFsc28gSU1ITyBub3Qgd2hhdCAibWFr ZSBXaUZpIGZhc3QiIHdhcyBhbGwgYWJvdXQuDQo+DQo+ID4NCj4gPiBJJ20gbm90IGNsYWltaW5n IGFueSBzcGVjaWFsIGtub3dsZWRnZSBvZiBKb25hdGhhbidzIHdvcmsgb24gaGlzIG5ldw0KPiBn ZW5lcmF0aW9uIG9mIHF1ZXVpbmcgZGlzY2lwbGluZShzKSwgYnV0IEkgcmVtZW1iZXIgZGlzY3Vz c2lvbnMgd2l0aCBEYXZlDQo+IHJlOiBnZXR0aW5nIGludG8gbWljcm8tc2Vjb25kcyB0ZXJyaXRv cnkuIEkgc3RpbGwgZG8gYmVsaWV2ZSB0aGF0IHN1cGVyDQo+IHNtYXJ0IHBlb3BsZSBmcm9tIHRo ZXNlIGxpc3RzIGNhbiBkaWcgdXAgc29tZXRoaW5nIGhlbHBmdWwgZnJvbSBEYXZlJ3MNCj4gc2Nv cGluZyBvZiBDQUtFTVE6DQo+ID4NCj4gaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZG9jdW1lbnQv ZC8xdFRZQlBlYVJkQ085QUdUR1FDcG9pdUxPUlF6Tl9iRzNUQWtFb2xKUGgyOC9lZGl0P3RhYj10 LjANCj4gPg0KPiA+IEFzIGZvciAzR1BQIHBsYXlib29rLCBub3QgYXQgYWxsLiBXaS1GaSBpcyBn ZXR0aW5nIG9iamVjdGl2ZWx5IGJldHRlciwNCj4gc28gYWxsIEknbSBzYXlpbmcgaXMgdGhhdCB3 ZSBjYW4gcmVhc29uYWJseSBleHBlY3Qgc29tZSBpbXByb3ZlbWVudHMgb24gaXQNCj4gd2l0aCBX aS1GaSA4Lg0KPiA+IFRoaXMgaXMgbm90aGluZyBjbG9zZSB0byAzR1BQIEIocml0aXNoKSBTKHRh bmRhcnRzKSBwbGF5Ym9vayA6KQ0KPg0KPiBGcm9tIG15IHBlcnNwZWN0aXZlIHlvdSBqdXN0IGRy dW5rIHRoZSBJRUVFIGNvb2wtYWlkIDspDQo+DQo+ID4NCj4gPiBMZXQgbWUgc2hhcmUgYSBzdG9y eS4gQmFjayB0aGVuIGluIDIwMjMsIERhdmUgc2VudCBtZSB0byBXaS1GaSBBbGxpYW5jZQ0KPiBt ZWV0aW5nIGhlcmUgaW4gUHJhZ3VlIHdpdGggYSBsaXN0IG9mIHBsZWFzLCBhc2tzIGFuZCBxdWVz dGlvbnMuIFRoZXJlIHdhcw0KPiBhIGZldyBncmVhdCBwZW9wbGUgZnJvbSB0aGUgYnVmZmVyYmxv YXQgbWFpbGluZyBsaXN0cyBhbmQgTGlicmVRb1MNCj4gY3VzdG9tZXJzIGhlbHBpbmcgdG8gcHV0 IGl0IHRvZ2V0aGVyLiBBbmQgb25lIGdyZWF0IHBlcnNvbiBmcm9tIFF1YWxjb21tDQo+IGdvdCBt ZSBpbiwgbWFkZSBpbnRyb2R1Y3Rpb25zIHRvIGV2ZXJ5Ym9keSBhbmQgdGhlaXIgbW90aGVyOiBm cm9tIEJyb2FkY29tLA0KPiB0byBJbnRlbCwgdG8gTWVkaWFUZWssIHRvIEhQRSwgdG8gSnVuaXBl ciwgdG8gQ2lzY28sIHRvIGhpcyBRdWFsY29tbQ0KPiBjb2xsZWFndWVzLiBXaGF0IEkndmUgbGVh cm5lZD8gVGhleSBhcmUgbm90IGdpdmluZyBhIGZseWluZyBGIGFib3V0IHJlYWxseQ0KPiBmaXhp bmcgYnVmZmVyYmxvYXQuIEZvciB0aGUgbW9zdCBwYXJ0LCBtb3N0IG9mIHRoZW0sIHdpdGggUkVB TCBkZWFsLCBsaWtlDQo+IGJha2luZyBGUS1Db0RlbCBhbmQgQ0FLRSBpbnRvIFdpLUZpLiBBbGwg dGhleSB3aWxsIGRvIGlzIHNvbWUgdmlydHVlDQo+IHNpZ25hbGxpbmcgYXQgYmVzdCwgbGlrZSBp bnRyb2R1Y2luZyBhICJXaS1GaSBRb1MgbWFuYWdlbWVudCIgYW5kIG90aGVyDQo+IHRoaW5ncywg d2hpY2ggYXJlIG1hcmdpbmFsLCBwb3RlbnRpYWwgaW1wcm92ZW1lbnRzLCBhdCBiZXN0Lg0KPg0K PiBUaGF0IHNlZW1zIGNsb3NlIHRvIHRoZSAzR1BQUCBwbGF5Ym9vayB0byBtZSwgb3Zlci1wcm9t aXNlLCB1bmRlci1kZWxpdmVyLg0KPiBUaGF0IGlzIG5vdCB0byBzYXkgdGhhdCAzR1BQIG9yIElF RUUgZG8gbm90IGFkdmFuY2UgdGhlaXIgcmVzcGVjdGl2ZQ0KPiB0ZWNobm9sb2dpZXMsIGJ1dCBu b3QgaW4gdGhlIHNwZWNpZmljIHdheSB0aGF0IHdlIGFyZSBkaXNjdXNzaW5nIGhlcmUsIEkNCj4g ZmVlbCB3ZSBhcmUganVzdCBhIGJ1bGxldCBwb2ludCBpbiB0aGVpciBtYXJrZXRpbmcgc2xpZGVz LCBub3QgYSBjb3JlDQo+IGVuZ2luZWVyaW5nIGlzc3VlIChhbmQgdGhhdCBpcyBzb3J0IG9mIE9L LCBJIGp1c3Qgd2lzaCBtYXJrZXRpbmcgd291bGQNCj4gc29mdGVuIHRoZSBsYXRlbmN5IGNsYWlt cyB1bnRpbCBlbmdpbmVlcmluZyBpcyBhY3R1YWxseSAib24gaXQiKS4NCj4NCj4gQnV0IHNlZSBh Ym92ZSwgdGhlIExpbnV4IFdpRkkgc3RhY2sgYWxyZWFkeSBpbmNsdWRlcyBmcS1jb2RlbCBhbmQg c3RpbGwNCj4gcGVyZm9ybWFuY2UgdW5kZXIgc2F0dXJhdGluZyBjb25kaXRpb25zIGlzIGxlc3Mg dGhhbiBpZGVhbC4NCj4NCj4gPg0KPiA+IFdlIHdpbGwgaGF2ZSBtb3JlIHZlbmRvcnMgYWRvcHRp bmcgRlEtQ29EZWwgYW5kIENBS0UgKGFuZCBpdCdzDQo+IGl0ZXJhdGlvbnMpIG92ZXIgdGltZSwg YnV0IG90aGVyIHRoYW4gdGhhdCwgaXQgd2lsbCBiZSBRb0UgbWlkZGxlLWJveGVzDQo+IHRoYXQg d2lsbCByZWFsbHkgbWFuYWdlIHRvIGRlbGl2ZXIgdGhlc2UgaW1wcm92ZW1lbnRzIGF0IHNjYWxl LCBpbiBtb3JlDQo+IHRoYW4ganVzdCBJU1AgbmV0d29ya3Mgb3V0IHRoZXJlLiBVbml2ZXJzaXR5 IGNhbXB1c2VzLCB2ZW51ZXMsIGFpcnBvcnRzLA0KPiBtYW51ZmFjdHVyaW5nIHBsYW50cywgbWlu ZXMsIGNydWlzZSBzaGlwcywgYWlyY3JhZnQuLi4NCj4NCj4gU2VlLCBJIGFtIGluIHRoaXMgbG9u ZyBlbm91Z2ggdG8gdW5kZXJzdGFuZCB0aGF0IHRoaXMgaXMgcmVhbGx5IHJlYWxseQ0KPiBzdWIt b3B0aW1hbCBmb3IgdmFyaWFibGUtcmF0ZSBsaW5rcy4gV2lsbCBGaVdpIHNvbHZlIGFsbCBvZiB0 aGVzZSBpc3N1ZXM/DQo+IExpa2VseSBub3QsIGJ1dCBpdCBhZGRyZXNzZXMgKHNvbWUgb2YpIHRo ZW0gYXQgdGhlaXIgcm9vdCwgd2hpY2ggc2VlbXMgdGhlDQo+IHJpZ2h0IHRoaW5nIHRvIGRvLiBP bmUgb2YgdGhlIG9wZW4gcXVlc3Rpb25zIGlzLCB3aWxsIEZpV2kgYWN0dWFsbHkgbWFrZQ0KPiBs aXZlIGJldHRlciBmb3IgdGhlIGJpbGxpb25zIG9mIGV4aXN0aW5nIFdpRmkgZGV2aWNlcyBpbiB0 aGUgZmllbGQsIGlmIGl0DQo+IGRvZXMsIG1vcmUgcG93ZXIgdG8gaXQsIGFzIElFRUUncyBhcHBy b2FjaCB3aWxsIGxpa2VseSBub3QgaGVscCB0aGVyZSBhdA0KPiBhbGwuDQo+DQo+ID4NCj4gPiBT byBRb0UgbWlkZGxlLWJveGVzIGFuZCBidWZmZXJibG9hdCwgT3BlbiBTb3VyY2UsIGNvbW11bml0 aWVzLCB3aWxsIGJlDQo+IHNhdmluZyB0aGUgZGF5Lg0KPg0KPiBJIGxpa2UgdGhlIHNwaXJpdCEN Cj4NCj4gPiBDYW4gRmktV2kgZmluZCBzb21lIG5pY2hlIHVzZSBjYXNlIG9yIGhlbHAgV2ktRmkg dG8gZml4IHNvbWUgb2YgaXRzDQo+IGluaGVyZW50IGlzc3Vlcz8gQWJzb2x1dGVseS4NCj4NCj4g Tm90IHN1cmUgdGhpcyBhbmQgdGhlIHNlbnRlbmNlIGJlZm9yZSBhcmUgbXV0dWFsbHkgZXhjbHVz aXZlIHRob3VnaC4NCj4NCj4gPg0KPiA+IEFsbCB0aGUgYmVzdCwNCj4gPg0KPiA+IEZyYW5rRnJh bnRpc2VrIChGcmFuaykgQm9yc2lrDQo+ID4NCj4gPiBJbiBsb3ZpbmcgbWVtb3J5IG9mIERhdmUg VMOkaHQ6IDE5NjUtMjAyNQ0KPiA+IGh0dHBzOi8vbGlicmVxb3MuaW8vMjAyNS8wNC8wMS9pbi1s b3ZpbmctbWVtb3J5LW9mLWRhdmUvDQo+ID4NCj4gPiBodHRwczovL3d3dy5saW5rZWRpbi5jb20v aW4vZnJhbnRpc2VrYm9yc2lrDQo+ID4gU2lnbmFsLCBUZWxlZ3JhbSwgV2hhdHNBcHA6ICs0MjE5 MTk0MTY3MTQNCj4gPiBpTWVzc2FnZSwgbW9iaWxlOiArNDIwNzc1MjMwODg1DQo+ID4gU2t5cGU6 IGNhc2lvYTUzMDJjYQ0KPiA+IGZyYW50aXNlay5ib3JzaWtAZ21haWwuY29tDQo+ID4NCj4gPg0K PiA+IE9uIE1vbiwgTWF5IDI1LCAyMDI2IGF0IDg6NTnigK9BTSBTZWJhc3RpYW4gTW9lbGxlciA8 bW9lbGxlcjBAZ214LmRlPg0KPiB3cm90ZToNCj4gPg0KPiA+DQo+ID4gT24gTWF5IDI1LCAyMDI2 IDc6NDM6MDEgQU0gR01UKzAyOjAwLCBGcmFudGlzZWsgQm9yc2lrIDwNCj4gZnJhbnRpc2VrLmJv cnNpa0BnbWFpbC5jb20+IHdyb3RlOg0KPiA+ID5IZXkgQm9iLA0KPiA+ID4NCj4gPiA+VGhpcyBp cyBhbGwgbmljZSBhbmQgYWxsLCBidXQgaXQgcmVhbGx5IGRvZXNuJ3QgbWF0dGVyLiBUaGUgb25s eQ0KPiBtZWFzdXJhYmxlDQo+ID4gPnRlcm0gSU1PIHdlIHJlYWxseSBuZWVkIGlzIHRoaXMgLSBp cyB0aGUgc2V0dXAgd2UgYXJlIHVzaW5nIGdvb2QgZW5vdWdoDQo+IGFuZA0KPiA+ID5kZWxpdmVy aW5nIGFsbCB3ZSBuZWVkPyBBbmQgdGhlIGFuc3dlciBmb3IgSVNQIGxpa2UgRGFuIGFuZCBtYW55 IHRoYXQNCj4gd2lsbA0KPiA+ID5jb21lICJ0byBKZXN1cyIgaXMgc291bmRpbmcgWUVTLiBJdCdz IGhlcmUsIGl0J3MgY2hlYXAsIGl0J3MgZ2V0dGluZw0KPiBiZXR0ZXIuDQo+ID4NCj4gPiBOb3Qg c3VyZSBJIGZ1bGx5IGJ1eSB0aGlzLCBpZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCBEYW4gdXNl cyB0cmFmZmljDQo+IHNoYXBpbmcgdG8gIm5ldXRlciIgV2lGaSBmcm9tIGl0cyB3b3JzdCBzZWxm IGNvbmdlc3Rpb24gdGVuZGVuY2llcy4uLiB0aGF0DQo+IGlzIGEgY2xldmVyIHdheSB0byB3b3Jr IGFyb3VuZCBjbGVhciBzaG9ydCBjb21pbmdzIGluIG1vZGVybiBXaUZpIG5vdA0KPiBldmlkZW5j ZSB0aGF0IG1vZGVybiBXaUZpIGhhcyBubyBpc3N1ZXMuLi4NCj4gPg0KPiA+ID4NCj4gPiA+WW91 IHdpbGwgZ2V0IHlvdXIgZXZpZGVuY2UgYW5kIHRoZW4gd2hhdD8gV2hlbiAoYW5kIGJpZyBpRikg RmktV2kgd2lsbA0KPiA+ID5tYXRlcmlhbGl6ZSwgd2Ugd2lsbCBoYXZlIFdpLUZpIDgNCj4gPiA+ PA0KPiBodHRwczovL3d3dy5saW5rZWRpbi5jb20vZmVlZC91cGRhdGUvdXJuOmxpOmFjdGl2aXR5 Ojc0NjA5OTg1ODA0NTYxMTYyMjQvPg0KPiA+ID5mb3IgdGhvc2UgaW50ZXJlc3RlZCBpbiBjaGFz aW5nIG1hcmdpbmFsIGltcHJvdmVtZW50cyBhbmQgdGhlIGxhdGVzdA0KPiB0aGluZy4NCj4gPg0K PiA+IFRoYXQgaXMgdGhlIDNHUFAgcGxheWJvb2ssIGFsd2F5cyBvdmVycHJvbWlzZSBmb3IgdGhl IGNvbWluZyBnZW5lcmF0aW9uDQo+IE4rMSBhbmQgb25jZSB0aGF0IG1hdGVyaWxhbGl6ZXMgYW5k IHR5cGljYWxseSB1bmRlci1kZWxpdmVycyByb2xsLW92ZXIgdGhlDQo+IHVuZnVsZmlsbGVkIHBy b21pc2VzIHNpbXBseSBpbnRvIE4rMiwgbWF5YmUgYWRkIGEgZmV3IG1vcmUgY2xhaW1zLi4uIFN1 cmUNCj4gZml0dGluZyBmb3IgdGhlIGxhdGV4c3RhZ2UgY2FwaXRhbHVzbSB3ZSBmaW5kIG91cnNl bHZlcyBpbiwgYnV0IGxldCdzIG5vdA0KPiBnZXQgZm9vbGVkIGJ5IG1hcmtldGluZyBwcm9taXNl cyBhbmQganVkZ2UgV2lGaTggb25jZSBpdCBleGlzdHMgYnkgaXRzDQo+IG1lcml0cy9wZXJmb3Jt YW5jZSwgcGxlYXNlLg0KPiA+DQo+ID4gPkpvbmF0aGFuIE1vcnRvbiB3aWxsIGRlbGl2ZXIgaGlz IGltcHJvdmVtZW50IG9uIENBS0UsIHdlIG1pZ2h0IGV2ZW4gZ2V0DQo+ID4gPmludG8gbWljcm9z ZWNvbmQgdGVycml0b3J5Lg0KPiA+DQo+ID4gTGFzdCB0aW1lIEkgcmVzZWFyY2hlZCBoaXMgZGVs dGljIGFwcHJvYWNoIGl0IGxvb2tlZCB2ZXJ5IG11Y2ggbm90IGdvaW5nDQo+IGludG8gdGhlIG1p Y3Jvc2Vjb25kIHRlcnJpdG9yeSwgSSByZW1lbWJlciAyNW1zIGFzIGxhdGVuY3kgdGFyZ2V0DQo+ IHNvbWVob3cuLi4gMjVtcyBpcyBjZXJ0YWlubHkgbm90IGJhZCwgYW5kIG5vdCBoaWdoLWxhdGVu Y3ksIGJ1dCBzZWVtcw0KPiBkaWZmZXJlbnQgZnJvbSB1bHRyYS1sb3ctbGF0ZW5jeSBhcHByb2Fj aGVzLiBTbyBJIG1pZ2h0IGhhdmUgbWlzc2VkIHNvbWUNCj4gaW50ZXJlc3RpbmcgZGV2ZWxvcG1l bnQsIGlmIHlvdSBoYXZlIGEgbGluayB5b3UgY291bGQgc2hhcmUgdG8gZ2V0IG1lIHVwIHRvDQo+ IHNwZWVkIGFnYWluLCBJIHdvdWxkIGJlIGdyYXRlZnVsLg0KPiA+DQo+ID4gPiBUaGVyZSB3aWxs IGJlIEZRLVBJRSwgUFVSUExFIENBS0UsIEhUQi1NUSAodG8NCj4gPiA+c3VwcGxlbWVudCBDQUtF LU1RKS4uLg0KPiA+ID4NCj4gPiA+QW55d2F5LCB5b3Ugd2lsbCBsaWtlIHRoaXM6DQo+ID4gPg0K PiBodHRwczovL2Fyc3RlY2huaWNhLmNvbS9nYWRnZXRzLzIwMTcvMDIvZ29pbmctaGFuZHMtb24t YW5kLWJlaGluZC10aGUtc2NlbmVzLWF0LXRoZS1wbHVtZS13aS1maS1ocS8NCj4gPiA+DQo+ID4g PlBsdW1lIHVzZWQgdG8gZG8gdGhpcywgeW91IHdpbGwgaGF2ZSB5b3VyIEZpLVdpIGhvdXNlIHRl c3QgYmVkIHVwIGFuZA0KPiA+ID5ydW5uaW5nLCBzb29uLiBMZXQncyBoYXZlIGZ1biBhbmQgZG8g YW5vdGhlciByb3VuZCBvZiB0aGUgZ29vZCBvbGUNCj4gPiA+V2ktRmkvbWVzaCByb3V0ZXIgcnVt YmxlOg0KPiA+ID4NCj4gPiA+DQo+IGh0dHBzOi8vYXJzdGVjaG5pY2EuY29tL2dhZGdldHMvMjAx Ni8wOS90aGUtcm91dGVyLXJ1bWJsZS1hcnMtZGl5LWJ1aWxkLWZhY2VzLWJldHRlci10ZXN0cy10 b3VnaGVyLWNvbXBldGl0aW9uLw0KPiA+ID4NCj4gaHR0cHM6Ly9hcnN0ZWNobmljYS5jb20vZ2Fk Z2V0cy8yMDE2LzEyL3Jldmlldy1jb21wYXJpbmctZ29vZ2xlLXdpZmktdG8tb3RoZXItbWVzaC1u ZXR3b3JraW5nLWhlYXZ5d2VpZ2h0cy8NCj4gPiA+DQo+ID4gPk1heWJlIEppbSBhbmQgQXJzIFRl Y2huaWNhIHdvdWxkIGJlIGludGVyZXN0ZWQgaW4gaXQuDQo+ID4gPg0KPiA+ID4NCj4gPiA+QWxs IHRoZSBiZXN0LA0KPiA+ID4NCj4gPiA+RnJhbmsNCj4gPiA+DQo+ID4gPkZyYW50aXNlayAoRnJh bmspIEJvcnNpaw0KPiA+ID4NCj4gPiA+DQo+ID4gPipJbiBsb3ZpbmcgbWVtb3J5IG9mIERhdmUg VMOkaHQ6ICoxOTY1LTIwMjUNCj4gPiA+DQo+ID4gPmh0dHBzOi8vbGlicmVxb3MuaW8vMjAyNS8w NC8wMS9pbi1sb3ZpbmctbWVtb3J5LW9mLWRhdmUvDQo+ID4gPg0KPiA+ID4NCj4gPiA+aHR0cHM6 Ly93d3cubGlua2VkaW4uY29tL2luL2ZyYW50aXNla2JvcnNpaw0KPiA+ID4NCj4gPiA+U2lnbmFs LCBUZWxlZ3JhbSwgV2hhdHNBcHA6ICs0MjE5MTk0MTY3MTQNCj4gPiA+DQo+ID4gPmlNZXNzYWdl LCBtb2JpbGU6ICs0MjA3NzUyMzA4ODUNCj4gPiA+DQo+ID4gPlNreXBlOiBjYXNpb2E1MzAyY2EN Cj4gPiA+DQo+ID4gPmZyYW50aXNlay5ib3JzaWtAZ21haWwuY29tDQo+ID4gPg0KPiA+ID4NCj4g PiA+T24gU3VuLCBNYXkgMjQsIDIwMjYgYXQgMTE6NTfigK9QTSA8Ym9iLm1jbWFob25AdW1iZXJu ZXR3b3Jrcy5jb20+IHdyb3RlOg0KPiA+ID4NCj4gPiA+PiBIaSBGcmFuaywNCj4gPiA+Pg0KPiA+ ID4+IFRoZSBxdWVzdGlvbiBuZWVkcyB0byBiZSBmcmFtZWQgaW4gbWVhc3VyYWJsZSB0ZXJtcy4N Cj4gPiA+Pg0KPiA+ID4+IFRoZSBzeXN0ZW1zIHlvdSBuYW1lZCBvcGVyYXRlIGF0IGRpZmZlcmVu dCBsYXllcnMgdGhhbiB0aGUgODAyLjExDQo+IE1BQy9QSFkNCj4gPiA+PiBsYXllciB3aGVyZSBU WE9QIGFsbG9jYXRpb24sIHJldHJpZXMsIEVEQ0EgY29udGVudGlvbiwgQU1QRFUNCj4gYmVoYXZp b3IsIGFuZA0KPiA+ID4+IGFpcnRpbWUgdXRpbGl6YXRpb24gb2NjdXIgdGhyb3VnaG91dCB0aGUg YnVpbGRpbmcuIGJhdG1hbi1hZHYgcm91dGVzDQo+ID4gPj4gYmV0d2VlbiBtZXNoIG5vZGVzLiBD QUtFIGFuZCBGUS1Db0RlbCBvcGVyYXRlIG9uIElQLWxheWVyIHF1ZXVlcy4gUW9FDQo+ID4gPj4g bWlkZGxlLWJveGVzIG9wZXJhdGUgZnJvbSB0aGUgV0FOL0lQIHNpZGUuDQo+ID4gPj4NCj4gPiA+ PiBTbyB0aGUgcXVlc3Rpb24gaXMgd2hldGhlciBJUC1sYXllciBBUU1zIG9yIFdBTi1zaWRlIFFv RSBzeXN0ZW1zDQo+IGFmZmVjdA0KPiA+ID4+IG1lYXN1cmFibGUgODAyLjExIE1BQy9QSFkgYmVo YXZpb3IgdW5kZXIgbG9hZC4NCj4gPiA+Pg0KPiA+ID4+IElmIHRoZXkgZG8sIHRoZSBwcmVkaWN0 ZWQgTUFDL1BIWSBlZmZlY3RzIHdvdWxkIGluY2x1ZGU6DQo+ID4gPj4NCj4gPiA+PiAgICAtIGxv d2VyIGZhaWxlZCBUWE9QIHBlcmNlbnRhZ2UNCj4gPiA+PiAgICAtIGxvd2VyIHJldHJhbnNtaXNz aW9uIGFpcnRpbWUgZnJhY3Rpb24NCj4gPiA+PiAgICAtIGltcHJvdmVkIEFNUERVIGNvbXBsZXRp b24gZWZmaWNpZW5jeQ0KPiA+ID4+ICAgIC0gaGlnaGVyIHBheWxvYWQgZGVsaXZlcmVkIHBlciBU WE9QDQo+ID4gPj4gICAgLSBsb3dlciBBTVBEVSB0cnVuY2F0aW9uIGZyZXF1ZW5jeQ0KPiA+ID4+ ICAgIC0gcmVkdWNlZCBFRENBIHdhaXQgZGlzdHJpYnV0aW9ucw0KPiA+ID4+ICAgIC0gaW1wcm92 ZWQgYWlydGltZSB1dGlsaXphdGlvbg0KPiA+ID4+ICAgIC0gcmVkdWNlZCBzZXJ2aWNlLXRpbWUg dmFyaWFuY2UNCj4gPiA+PiAgICAtIGNoYW5nZWQgTUNTIGRpc3RyaWJ1dGlvbnMgYWNyb3NzIHN0 YXRpb25zIHVuZGVyIHJlYWxpc3RpYyBzcGF0aWFsDQo+ID4gPj4gICAgdG9wb2xvZ3ksIHBhcnRp Y3VsYXJseSBhdCBjb3ZlcmFnZSBlZGdlcyBhbmQgd2hlcmUgbXVsdGlwbGUgQVBzIG9yDQo+IFJS SHMgYXJlDQo+ID4gPj4gICAgY2FuZGlkYXRlcyBmb3Igbm9kZSBzZWxlY3Rpb24NCj4gPiA+Pg0K PiA+ID4+IFRoYXQgaXMgdGhlIG1lYXN1cmVtZW50IGdhcCBJIGFtIHBvaW50aW5nIGF0LiBUaGUg aW5kdXN0cnkgaGFzDQo+IGV4dGVuc2l2ZQ0KPiA+ID4+IDgwMi4xMSBmZWF0dXJlIGxpc3RzIGFu ZCBtYXJrZXRpbmcgY2xhaW1zLCB3aXRoIGNvbXBhcmF0aXZlbHkgbGl0dGxlDQo+IG9wZW4NCj4g PiA+PiB0b29saW5nIHRvIGZhbHNpZnkgd2hhdCB0aG9zZSBhY3R1YWxseSBkbyB0byBidWlsZGlu ZyB3aWRlIDgwMi4xMQ0KPiBNQUMvUEhZDQo+ID4gPj4gYmVoYXZpb3IgdW5kZXIgcmVhbCBtdWx0 aS1jbGllbnQsIG11bHRpLUFQIGxvYWQuDQo+ID4gPj4NCj4gPiA+PiBJIGRldmVsb3BlZCBhbmQg c3RpbGwgbWFpbnRhaW4gaXBlcmYyIGJlY2F1c2UgdGhyb3VnaHB1dCBhbG9uZSBoYXMNCj4gcHJv dmVuDQo+ID4gPj4gYW4gaW5zdWZmaWNpZW50IG1lYXN1cmVtZW50IG1vZGVsIGZvciBuZXR3b3Jr IGJlaGF2aW9yLCBlLmcuDQo+IGxhdGVuY2llcyBhbmQNCj4gPiA+PiByZXNwb25zaXZlbmVzcyB1 bmRlciBsb2FkLiBGZWF0dXJlcyBhZGRlZCB0byBpcGVyZjIgaW5jbHVkZToNCj4gPiA+Pg0KPiA+ ID4+ICAgIC0gdHJpcC10aW1lcw0KPiA+ID4+ICAgIC0gYm91bmNlYmFjayB0ZXN0aW5nDQo+ID4g Pj4gICAgLSBvbmUtd2F5IElQIHBhY2tldCB0aW1pbmcgbWVhc3VyZW1lbnRzDQo+ID4gPj4gICAg LSBwYWNrZXQtbGV2ZWwgbGF0ZW5jeSBoaXN0b2dyYW1zDQo+ID4gPj4gICAgLSBtZXNzYWdlLWxl dmVsIChUQ1Agd3JpdGUvcmVhZCBjb21wbGV0aW9uKSBsYXRlbmN5IGhpc3RvZ3JhbXMNCj4gPiA+ PiAgICAtIHJlc3BvbnNpdmVuZXNzIHVuZGVyIGxvYWQgbWVhc3VyZW1lbnRzDQo+ID4gPj4gICAg LSBlbmhhbmNlZCBwZXItaW50ZXJ2YWwgcmVwb3J0aW5nDQo+ID4gPj4gICAgLSBDV05EIHJlcG9y dGluZw0KPiA+ID4+ICAgIC0gUlRUIHJlcG9ydGluZw0KPiA+ID4+ICAgIC0gYnl0ZXMvcGFja2V0 cyBpbi1mbGlnaHQgcmVwb3J0aW5nDQo+ID4gPj4gICAgLSBUQ1AgcmV0cmFuc21pc3Npb24gcmVw b3J0aW5nDQo+ID4gPj4gICAgLSBUQ1AgY29uZ2VzdGlvbi1jb250cm9sIHNlbGVjdGlvbiAoQ1VC SUMsIEJCUiwgUHJhZ3VlLCBldGMuKQ0KPiA+ID4+ICAgIC0gdWRwLWw0cyBpbmNsdWRpbmcgQ0Ug Y291bnRlcnMgYW5kIGR1cmF0aW9ucw0KPiA+ID4+ICAgIC0gaXNvY2hyb25vdXMgdHJhZmZpYyBn ZW5lcmF0aW9uDQo+ID4gPj4gICAgLSBzb2NrZXQtbGF5ZXIgcGFjaW5nIHZpYSBTT19NQVhfUEFD SU5HX1JBVEUNCj4gPiA+PiAgICAtIHRva2VuLWJ1Y2tldCB3cml0ZS1yYXRlIGNvbnRyb2wNCj4g PiA+PiAgICAtIE1hcmtvdi1jaGFpbiBwYWNrZXQtc2l6ZSBnZW5lcmF0aW9uDQo+ID4gPj4gICAg LSBVRFAgbGF0ZW5jeS9qaXR0ZXIgYW5hbHlzaXMNCj4gPiA+PiAgICAtIG11bHRpY2FzdCB0ZXN0 aW5nDQo+ID4gPj4NCj4gPiA+PiBUaG9zZSBtZWFzdXJlbWVudHMgb3BlcmF0ZSBhYm92ZSB0aGUg ODAyLjExIE1BQy9QSFkuIFRoZSBtaXNzaW5nIGxheWVyDQo+ID4gPj4gcmVtYWlucyBvcGVuIDgw Mi4xMSBNQUMvUEhZIHRlbGVtZXRyeSwgd2hpY2ggaXMgd2hhdCBJJ20gYnVpbGRpbmcgbm93Lg0K PiA+ID4+DQo+ID4gPj4gVGhpcyBtZWFzdXJlbWVudCBzdGFuZGFyZCBzaG91bGQgYXBwbHkgZXF1 YWxseSB0byBhbnkgY2xhaW0gZnJvbSBhbnkNCj4gPiA+PiBhcmNoaXRlY3R1cmUsIGluY2x1ZGlu ZyBGaS1XaS4NCj4gPiA+Pg0KPiA+ID4+IFRoZSBxdWVzdGlvbiBiZWNvbWVzOiBkb2VzIGNlbnRy YWxpemVkIE1BQyB0ZWxlbWV0cnkgYW5kIGNvb3JkaW5hdGVkDQo+ID4gPj4gYWlydGltZSBjb250 cm9sIGFmZmVjdCBtZWFzdXJhYmxlIDgwMi4xMSBNQUMvUEhZIGJlaGF2aW9yIHVuZGVyIGxvYWQN Cj4gPiA+PiByZWxhdGl2ZSB0byBhdXRvbm9tb3VzIEFQIG9wZXJhdGlvbj8NCj4gPiA+Pg0KPiA+ ID4+IE1lYXN1cmUgdGhlIHNhbWUgTUFDL1BIWSBtZXRyaWNzIHVuZGVyIGVxdWl2YWxlbnQgdG9w b2xvZ3ksIG9mZmVyZWQNCj4gbG9hZCwNCj4gPiA+PiBhbmQgY2xpZW50IG1peC4gSWYgdGhvc2Ug bWVhc3VyZW1lbnRzIGRvIG5vdCBpbXByb3ZlIHJlbGF0aXZlIHRvDQo+IGJhc2VsaW5lLA0KPiA+ ID4+IHRoZSBhcmNoaXRlY3R1cmFsIGNsYWltIG9mIEZpLVdpIGZhaWxzLiBXZSB3b24ndCBrbm93 IHVudGlsIEZpLVdpIGlzDQo+ID4gPj4gZGVzaWduZWQsIGJ1aWx0LCBkZXBsb3llZCBhbmQgbWVh c3VyZWQgYXQgbWFueSBkaWZmZXJlbnQgbG9jYXRpb25zLg0KPiBUaGUNCj4gPiA+PiB0aGVvcmV0 aWNhbCBjYXNlIGlzIHN0cm9uZy4gIENlbnRyYWxpemVkIHNjaGVkdWxpbmcsIGpvaW50DQo+IG9w dGltaXphdGlvbiwNCj4gPiA+PiBhbmQgb2JzZXJ2YWJpbGl0eSBhbGwgYXJndWUgZm9yIGl0LiBU aGUgZGVzaWduIGFuZCBtZWFzdXJlbWVudHMgYXJlDQo+IHRoZQ0KPiA+ID4+IG5leHQgc3RlcHMu IFRoZW4gd2UnbGwgc2VlIGJhc2VkIG9uIGV2aWRlbmNlLg0KPiA+ID4+DQo+ID4gPj4gQm9iDQo+ ID4gPj4NCj4gPiA+PiBUZWNobmljYWxseSwgQmV0YW1heCB3YXMgc3VwZXJpb3IgdG8gVkhTLCBh bmQgeWV0Li4uDQo+ID4gPj4NCj4gPiA+PiBJZiB3ZSB3b3VsZCBiZSB0YWxraW5nIGFib3V0IEZp V2kgcHJlLWp1bXAgZnJvbSBXaS1GaSA1IHRvDQo+IFdpLUZpNi9FLzcsIEkNCj4gPiA+PiB3b3Vs ZCBldmVuIHRyeSB0byBkbyBteSBiZXN0IGFuZCBpZ25vcmUgaHR0cHM6Ly9mYXN0Z29vZC5jaGVh cC4NCj4gPiA+PiBCdXQgd2UgYXJlIG5vdCB0aGVyZSwgZm9yIGJldHRlciBvciBmb3Igd29yc2Uu DQo+ID4gPj4NCj4gPiA+PiBJU1BzIGxpa2UgRGFuIHRoYXQgdXNlIFdpLUZpIDYgKHdpdGggbWVz aCwgZXNwZWNpYWxseSBiYXNlZCBvbg0KPiBiYXRtYW4tYWR2DQo+ID4gPj4gYW5kIEZRLUNvRGVs IC8gQ0FLRSkgYW5kIGFib3ZlIGF0IGN1c3RvbWVyIHByZW1pc2VzIGFuZCBRdWFsaXR5IG9mDQo+ ID4gPj4gRXhwZXJpZW5jZSBtaWRkbGUtYm94IG9uIHRoZWlyIGxhc3QtbWlsZSwgd2hpbGUgcHJv dmlkaW5nIGdvb2QsDQo+IHBlcnNvbmFsDQo+ID4gPj4gY3VzdG9tZXIgc2VydmljZSAobm90IHNv bWUgY3JhcHB5IG91dHNvdXJjaW5nIG9mIGl0IHRvIEluZGlhIG9yICJBSSIpDQo+IHdpbGwNCj4g PiA+PiBiZSBoYXJkIHRvIGJlYXQsIGV2ZW4gZm9yIGEgYmlnIHRlbGNvL0lTUCBvZmZlcmluZyBj aGVhcGVyIHByaWNlLg0KPiBZZXMsIHNvbWUNCj4gPiA+PiBwZW9wbGUgd2lsbCBsZWF2ZSBidXQg dGhlIG1vc3Qgb2YgdGhlbSB3aWxsIGJlIGNvbWluZyBiYWNrLg0KPiA+ID4+DQo+ID4gPj4gVGhp cyBpcywgYmVsaWV2ZSBpdCBvciBub3QsIG5vdCBhIGhpZ2ggYmFyIHRvIGp1bXAgb3ZlciwgZXZl biB0aG91Z2gNCj4gbm90DQo+ID4gPj4gbWFueSBJU1BzIGFyZSBnZXR0aW5nIGl0IGFscmVhZHku IFdlIGFsbCBrbm93IHRoYXQgbW9yZSBvciBsZXNzOg0KPiAiQmFuZHdpZHRoDQo+ID4gPj4gaXMg YSBsaWUsIEJhbmR3aWR0aCBpcyBkZWFkLCIgc28gaXQncyBjb21pbmcuIFRoZXkgd2lsbCBiZSB0 aHJvd2luZw0KPiBtb3JlDQo+ID4gPj4gYmFuZHdpZHRoIG9uIGl0IGZvciBzb21lIHRpbWUsIGJ1 dCB3ZSB3aWxsIGJlIGdldHRpbmcgZnJvbQ0KPiAiaW5ub3ZhdG9ycyIgdG8NCj4gPiA+PiAiZWFy bHkgYWRvcHRlcnMiIHNvb24gYW5kIHRoZW4sIGFsbCB3ZSBuZWVkIGlzIGp1c3QgdGhhdCAiY3Jv c3NpbmcgdGhlDQo+ID4gPj4gY2hhc20uIg0KPiA+ID4+DQo+ID4gPj4gRGVzcGl0ZSBhbGwgdGhl IGRpZmZpY3VsdGllcywgaXQgd2lsbCBiZSBmYXN0ZXIgYW5kIGNoZWFwZXIgLSBhbHNvDQo+ICJn b29kDQo+ID4gPj4gZW5vdWdoLCIgdGhhbiBGaVdpLiBPciByYXRoZXIsIGl0J3MgaGVyZSBhbHJl YWR5LCBpdCdzIGp1c3Qgbm90IGV2ZW5seQ0KPiA+ID4+IGRpc3RyaWJ1dGVkLg0KPiA+ID4+IFRo ZXJlIG1pZ2h0IGJlIHNvbWUgZ29vZCBuaWNoZSB1c2UgY2FzZSBmb3IgRmlXaSwgdGhvdWdoLCBv bmNlIGl0IHdpbGwNCj4gPiA+PiBtYXR1cmUgYW5kIGdldCB0aGVyZS4NCj4gPiA+Pg0KPiA+ID4+ IEFsbCB0aGUgYmVzdCwNCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4gRnJhbmsNCj4gPiA+Pg0KPiA+ ID4+DQo+ID4gPj4NCj4gPiA+PiBGcmFudGlzZWsgKEZyYW5rKSBCb3JzaWsNCj4gPiA+Pg0KPiA+ ID4+DQo+ID4gPj4NCj4gPiA+PiAqSW4gbG92aW5nIG1lbW9yeSBvZiBEYXZlIFTDpGh0OiAqMTk2 NS0yMDI1DQo+ID4gPj4NCj4gPiA+PiBodHRwczovL2xpYnJlcW9zLmlvLzIwMjUvMDQvMDEvaW4t bG92aW5nLW1lbW9yeS1vZi1kYXZlLw0KPiA+ID4+DQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4+IGh0 dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9mcmFudGlzZWtib3JzaWsNCj4gPiA+Pg0KPiA+ID4+ IFNpZ25hbCwgVGVsZWdyYW0sIFdoYXRzQXBwOiArNDIxOTE5NDE2NzE0DQo+ID4gPj4NCj4gPiA+ PiBpTWVzc2FnZSwgbW9iaWxlOiArNDIwNzc1MjMwODg1DQo+ID4gPj4NCj4gPiA+PiBTa3lwZTog Y2FzaW9hNTMwMmNhDQo+ID4gPj4NCj4gPiA+PiBmcmFudGlzZWsuYm9yc2lrQGdtYWlsLmNvbQ0K PiA+ID4+DQo+ID4gPj4gT24gU3VuLCBNYXkgMjQsIDIwMjYgYXQgMjoxMuKAr0FNIGRhbiA8ZGFu ZGVuc29uQGdtYWlsLmNvbT4gd3JvdGU6DQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4g T24gU2F0LCBNYXkgMjMsIDIwMjYgYXQgMTA6MzbigK9BTSA8Ym9iLm1jbWFob25AdW1iZXJuZXR3 b3Jrcy5jb20+DQo+IHdyb3RlOg0KPiA+ID4+DQo+ID4gPj4gPiBJIGRvbid0IGhhdmUgYXJndW1l bnRzIG9uIHRoZSB0ZWNobmljYWwgYml0cyBvZiB5b3VyIHJlcGx5Lg0KPiA+ID4+DQo+ID4gPj4g VGhlIGluZHVzdHJ5IGhhc24ndCBwcm92aWRlZCBvcGVuIHNvdXJjZSB0b29scyB0byBhbmFseXpl IDgwMi4xMQ0KPiBwcm9wZXJseS4NCj4gPiA+PiBUaGUgcHJvcHJpZXRhcnkgb25lcyBhcmUgdGln aHRseSBjb3VwbGVkIHRvIGNoaXAgZmlybXdhcmUsIG93bmVkIGJ5DQo+IDgwMi4xMQ0KPiA+ID4+ IHZlbmRvcnMsIGFuZCBub3QgZm9yIHNhbGUuDQo+ID4gPj4NCj4gPiA+PiBZb3UndmUgYnVpbHQg c29saWQgbmV0d29ya3MsIGVzcGVjaWFsbHkgZ2l2ZW4gaG93IGxpdHRsZSA4MDIuMTENCj4gTUFD LWxheWVyDQo+ID4gPj4gYW5kIE1DUyBvYnNlcnZhYmlsaXR5IGN1cnJlbnQgdG9vbGluZyBleHBv c2VzLiBJIGhvcGUgdG8gbWFrZSBvcGVuDQo+IHNvdXJjZQ0KPiA+ID4+IDgwMi4xMSBNQUMgdGVs ZW1ldHJ5IHRvb2xzIGF2YWlsYWJsZSBzb29uZXIgcmF0aGVyIHRoYW4gbGF0ZXIuIFRoZXNlDQo+ IHdpbGwNCj4gPiA+PiBydW4gb24gYm90aCBhbiBFU1AzMi1DNSBhbmQgYW4gUlBpNS4gVGhlIGlu ZXhwZW5zaXZlIEVTUDMyIGFsbG93cw0KPiBtb25pdG9ycw0KPiA+ID4+IHRvIGJlIHBsYWNlZCB0 aHJvdWdob3V0IGEgdmVudWUgYXQgbG93IGNvc3QuDQo+ID4gPj4NCj4gPiA+PiBBIGtleSBpc3N1 ZSBpcyB3aGF0J3MgYmVpbmcgbWVhc3VyZWQuIFlvdXIgZGVwbG95bWVudCBkYXRhIGlzIGENCj4g Y2FwYWNpdHkNCj4gPiA+PiBhbmFseXNpcy4gT25jZSBiYXNlbGluZSBjYXBhY2l0eSBpcyBhZGVx dWF0ZSwgdXNlciBleHBlcmllbmNlIGlzDQo+IGRyaXZlbiBieQ0KPiA+ID4+IHRhaWwgbGF0ZW5j eSBhbmQgc2VydmljZS10aW1lIHZhcmlhbmNlIHJhdGhlciB0aGFuIHRocm91Z2hwdXQuIEENCj4g bmV0d29yaw0KPiA+ID4+IGNhbiBzYXR1cmF0ZSBhZ2dyZWdhdGUgdGhyb3VnaHB1dCB3aGlsZSBz dGlsbCBzaG93aW5nIGxhcmdlDQo+IHNlcnZpY2UtdGltZQ0KPiA+ID4+IHZhcmlhbmNlIGFuZCBs b25nIHBlci1mbG93IHRhaWxzIHVuZGVyIGNvbnRlbnRpb24uIFRoZXNlIGFyZSBkaWZmZXJlbnQN Cj4gPiA+PiBtZWFzdXJlbWVudHMuDQo+ID4gPj4NCj4gPiA+PiBBbmQgQ09ERUwgYW5kIENBS0Ug YXJlIElQLWxheWVyIG1lY2hhbmlzbXMuIFRoZXkgZG9uJ3Qgb3BlcmF0ZSBvbg0KPiA4MDIuMTEN Cj4gPiA+PiBUWE9QcyBvciBhaXJ0aW1lIHNvam91cm4sIHdoaWNoIGlzIHdoZXJlIHRoZSBjb250 ZW50aW9uIGFuZA0KPiBzZXJ2aWNlLXRpbWUNCj4gPiA+PiB2YXJpYW5jZSBhY3R1YWxseSBsaXZl LiBBUUwgaXMgY2xvc2VyLiBJdCBvcGVyYXRlcyBvbiBhaXJ0aW1lIGF0IHRoZQ0KPiA+ID4+IGRy aXZlci9maXJtd2FyZSBib3VuZGFyeSwgYnV0IGl0J3Mgc3RpbGwgcGVyLUFQLiBUaGVyZSdzIG5v DQo+IGNvb3JkaW5hdGlvbg0KPiA+ID4+IGFjcm9zcyBBUHMgYW5kIG5vIE1BQyB0ZWxlbWV0cnkg ZXhwb3NlZCB1cHdhcmQuDQo+ID4gPj4NCj4gPiA+PiBTbGlkZSA2IG9mIG15IERQREsgU3VtbWl0 IFN0b2NraG9sbSB0YWxrIGxheXMgb3V0IHRoZSBsYXllcmluZzoNCj4gPiA+PiBodHRwczovL3d3 dy51bWJlcm5ldHdvcmtzLmNvbS9EUERLX1dpRmlfU3RvY2tob2xtX1ByZXMuaHRtbA0KPiA+ID4+ DQo+ID4gPj4gQ2hlY2sgb3V0IGlwZXJmMidzIGFkdmFuY2VkIGZlYXR1cmVzIGFyb3VuZCAtLWJv dW5jZWJhY2ssDQo+IC0tdHJpcC10aW1lcywNCj4gPiA+PiBhbmQgLS1oaXN0b2dyYW1zLiBUaGVz ZSBhcmUgYXZhaWxhYmxlIGFzIG9wZW4gc291cmNlLiBNYW4gcGFnZToNCj4gPiA+PiBodHRwczov L2lwZXJmMi5zb3VyY2Vmb3JnZS5pby9pcGVyZi1tYW5wYWdlLmh0bWwNCj4gPiA+Pg0KPiA+ID4+ IEknbGwgdHJ5IHRvIHJlc3BvbmQgd2l0aCBzb21lIG1ldHJpY3Mgc29vbi4gTXkgcmlnIGlzIGRv d24gYXQgdGhlDQo+IG1vbWVudCwNCj4gPiA+PiBzbyBnaXZlIG1lIGEgZmV3IGRheXMuDQo+ID4g Pj4NCj4gPiA+PiBCb2INCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4gSSBhZ3JlZS4gIEhvd2V2ZXIs IEknbSBub3QgYWN0dWFsbHkganVzdCBtZWFzdXJpbmcgdGhyb3VnaHB1dCwgYnV0DQo+IHJ1bm5p bmcNCj4gPiA+PiBsYXRlbmN5IHNlbnNpdGl2ZSBhcHBsaWNhdGlvbnMgd2l0aG91dCBpc3N1ZXMu ICBGcmFuayBtaWdodCBhdHRlc3QgdG8NCj4gbXkNCj4gPiA+PiBlZmZvcnRzIHRvIHJlZHVjZSBs YXRlbmN5IGFuZCBJIHJvdXRpbmVseSBzaGFyZSBkYXRhIG9uIGxxb3MgKGFuZA0KPiBhbm90aGVy DQo+ID4gPj4gUW9FIHByb2R1Y3QncykgVENQIG1lYXN1cmVtZW50cyBmb3IgbGF0ZW5jeSBhbmQg YW1vbmcgUW9FIHVzZXJzLCBJDQo+IGJlbGlldmUNCj4gPiA+PiBteSBuZXR3b3JrIGlzIHRvcCAx JSBpbiBsYXRlbmN5IGFuZCBqaXR0ZXIgYW5kIGluIHRoZSBXSVNQIHNwYWNlLg0KPiA+ID4+IE9i dmlvdXNseSBJJ20gbm90IGdvaW5nIHRvIGNvbXBldGUgd2l0aCBYR1NQT04gb3BlcmF0b3JzLi4g KHRob3VnaA0KPiBJJ20gb25seQ0KPiA+ID4+IG1lYXN1cmluZyBUQ1AgYmVjYXVzZSB0aGF0J3Mg dGhlICdlYXNpZXN0JyB0byBtZWFzdXJlIHBhc3NpdmVseQ0KPiA+ID4+IHByYWN0aWNhbGx5KS4g IFdoaWxlIHRoaXMgaXMgbm90IGFuIGVuZ2luZWVyaW5nIGFkZXF1YXRlIGJlbmNobWFyaywNCj4g aWYgbXkNCj4gPiA+PiBWb0lQIGhhbmRzZXRzIHdvcmsgb3ZlciB3aXJlbGVzcyB0aGVuIHRoZSB3 aXJlbGVzcyBpcyBnb29kIGlzIGEgdmVyeQ0KPiA+ID4+IHJlYXNvbmFibGUgbGF0ZW5jeSwgaml0 dGVyLCBsb3NzIGFyZ3VtZW50LiAgQW5kIEkgcnVuIGEgZmV3IGJyYW5kcyBvZg0KPiBXaUZpDQo+ ID4gPj4gYmFzZWQgVm9JUCBwaG9uZXMgKEZhbnZpbGwgV3h4eCBzZXJpZXMsIFllYWxpbmsgV3h4 IGFuZCBBWHh4IHNlcmllcykuDQo+ID4gPj4gU2ltaWxhcmx5LCBpZiB0aGUgc29ub3Mgd29ya3Mg YW5kIGlzIGluIHN5bmMsIHRoZSB3aWZpIGlzIGdvb2QuDQo+ID4gPj4NCj4gPiA+PiBBcyBhIHNl cnZpY2UgY29tcGFueSBhbmQgYXMgYSB1c2VyLCBJIGRvbid0IHJlYWxseSBjYXJlIHNvIG11Y2gg d2hlcmUNCj4gdGhlDQo+ID4gPj4gZ29vZG5lc3MgaXMgaW4gdGhlIHN5c3RlbSwgbWFjIGxheWVy IG9yIElQIGhhdmluZyBjYWtlIHdvcmsgaXQncw0KPiBtYWdpYy4NCj4gPiA+PiBCYXNpY2FsbHkg cnVubmluZyBhbiBBUCBvbiBPRk1EQSAoYXMgbXVjaCBhcyBwb3NzaWJsZSkgYW5kIHdlbGwgdW5k ZXINCj4gdGhlDQo+ID4gPj4gJ3JlZCBsaW5lJyBjYXBhY2l0eSBkZWxpdmVycyBncmVhdCByZXN1 bHRzIG9uIFdpRmk3IHJhZGlvcyAoYW5kIHNvbWUNCj4gV2lGaTYNCj4gPiA+PiByYWRpb3MpLiAg SSBoYXZlIG5vIGRvdWJ0IHRoYXQgRmlXaSBjb3VsZCBnZXQgbW9yZSBvZiB0aGUgdGhlb3JldGlj YWwNCj4gPiA+PiB0aHJvdWdocHV0IGRlbGl2ZXJlZCBhdCB0aGUgbWFjIGxheWVyLg0KPiA+ID4+ DQo+ID4gPj4gRGVsaXZlcmFibGVzIGFyZSBhbGwgdGhhdCBtYXR0ZXIgdG8gbWUgYW5kIEkgdGhp bmsgdG8gYnV5ZXJzIGFuZA0KPiB1c2Vycy4NCj4gPiA+PiBCZW5jaG1hcmtzIHRlc3QgZGVsaXZl cmFibGVzIHdoaWNoIGlzIGdyZWF0IGFuZCBJJ20gYSByb3V0aW5nIGlwZXJmKg0KPiB1c2VyLg0K PiA+ID4+IEl0J3MgZW5naW5lZXJpbmcncyBwcm9ibGVtIHRvIGRldmVsb3AgdGhlIG5leHQgdGVj aCAqQU5EKiBzb2xpY2l0DQo+IGZ1bmRpbmcNCj4gPiA+PiB0byBkbyBzby4NCj4gPiA+Pg0KPiA+ ID4+DQo+ID4gPj4NCj4gPiA+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18NCj4gPiA+Q29kZWwgbWFpbGluZyBsaXN0IC0tIGNvZGVsQGxpc3RzLmJ1ZmZlcmJs b2F0Lm5ldA0KPiA+ID5UbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGNvZGVsLWxlYXZl QGxpc3RzLmJ1ZmZlcmJsb2F0Lm5ldA0KPiA+DQo+ID4gLS0NCj4gPiBTZW50IGZyb20gbXkgQW5k cm9pZCBkZXZpY2Ugd2l0aCBLLTkgTWFpbC4gUGxlYXNlIGV4Y3VzZSBteSBicmV2aXR5Lg0KPg0K Pg0K