From nobody Fri Mar 11 02:21:18 2022 X-Original-To: hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id BA8F61A1BA0F; Fri, 11 Mar 2022 02:21:19 +0000 (UTC) (envelope-from jrm@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KF8nC4c0Wz4gLD; Fri, 11 Mar 2022 02:21:19 +0000 (UTC) (envelope-from jrm@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1646965279; 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; bh=uJP7+WG22kNTkZZMa+ZoHfGOuI5Gy+T7XJ4OPziUd2Q=; b=aQAJERfb9wYfKbjEJidt/JdZTPL6SHO4M2NE+wrtqo/drgdj4bgRg7dRyuVeAHi6QqmAmR 6+EoHu6rSNJRYu1rx+TEs7wpdd9llN5jf2ZCoabtBixXVe1Vk+4jMPiFP62TTRg10qazhl kSQUUXpyCujE4Z0QQv3ZUsZyJdos4QTjkvDVFvWXmUOfNi0y6kkI3keJQDQxmXGbsdWykT yf+b138cJYjMmPPkksEYmDgSWypkaGEHlKRKWLxxP5ePudE/VcVbbQKkwKMIlNof2mHEEl 69Z7zbmGOt9I1rLelRQygCJzUqSjV/XTyC0pvt333N9fFXwcXGztux3hLJ4frg== Received: from phe.ftfl.ca.ftfl.ca (drmons0544w-156-34-173-250.dhcp-dynamic.fibreop.ns.bellaliant.net [156.34.173.250]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: jrm/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 11CBF26C04; Fri, 11 Mar 2022 02:21:19 +0000 (UTC) (envelope-from jrm@freebsd.org) From: Joseph Mingrone To: hackers@FreeBSD.org Cc: current@FreeBSD.org, stable@FreeBSD.org Subject: FreeBSD Quarterly Status Report - Fourth Quarter 2021 Date: Thu, 10 Mar 2022 22:21:18 -0400 Message-ID: <86czitgrfl.fsf@phe.ftfl.ca> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (berkeley-unix) List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1646965279; 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; bh=uJP7+WG22kNTkZZMa+ZoHfGOuI5Gy+T7XJ4OPziUd2Q=; b=b0/cK2n/RpWd5wZk1ZJFLfwLH0fzc6En1vgKoZiys4inzpAUXfr06Ono2muvK1r7rBI8Os OBVZTc0RStrJZNrtEm96iYbXK1i3O/0keS2TgHF/ZJ4i2I3MFXl9zE/agDsL6FkQIOao2k hl7a5gouO3RAVUwcHJFDMm0yA7XejXTIHE5yvaelAzKts6rT8Oi/6o0H1tX45CbsMOFWUn wGeWKKNjgfeABTINaWfTohI/zkHXk1+HTqp0LX91rq/nkCzrE2H0IZFWO/X92L9o9n+3zh 50ok5OKFG/+2IUU9HnShG4RDr9Khyul5XjqtDi+5NB5QeMiqcsl+4NZ8AfwwCw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1646965279; a=rsa-sha256; cv=none; b=WqN8wneto/LPxwjYWUMvY97QqQ6EkJ1H7uOhdheEG9Rd3JVV8TTwn+cpfEQwHIK6swLsIS ZzMkAKJj9CgtmeNxXYxT8H57o/KcN/SZuc2OL4krhYecZdhnfXEcGLfPr5gL1xI1Ms+dlj DEAjOTPJB6JCC4fA5jAwXm5Ty56ySVJnPwsBNN8tgVve1aYprwJoHBokuiM4778uU+nYgx Xq6EoMfsAEypHevX1OK0dWGrlzia3Y4mNF0UnoQeq784kewZKdNsDsGnjwql6GuzM6hdOY Nu1fTZQ2RLBMu+Mp59E52SN8O83uAlUOhvYbcrI7vzKVVPGIKIuRYjOGIaknLg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 RnJlZUJTRCBRdWFydGVybHkgU3RhdHVzIFJlcG9ydCA0dGggUXVhcnRlciAyMDIxDQoNClRoaXMg cmVwb3J0IGNvdmVycyBGcmVlQlNEIHJlbGF0ZWQgcHJvamVjdHMgZm9yIHRoZSBwZXJpb2QgYmV0 d2VlbiBPY3RvYmVyIGFuZA0KRGVjZW1iZXIuIEl0IGlzIHRoZSBmb3VydGggb2YgZm91ciBwbGFu bmVkIHJlcG9ydHMgZm9yIDIwMjEsIGFuZCBjb250YWlucyAxOQ0KZW50cmllcy4gSGlnaGxpZ2h0 cyBpbmNsdWRlIGZhc3RlciBib290IHRpbWVzLCBtb3JlIExMREIgd29yaywgYSBiYXNlIE9wZW5T U0gNCnVwZGF0ZSwgYW5kIG1vcmUgd2lyZWxlc3MgZGV2ZWxvcG1lbnQuDQoNCllvdXJzLA0KUGF1 IEFtbWEsIERhbmllbCBFYmRydXAsIEpvaG4tTWFyayBHdXJuZXksIGFuZCBKb2UgTWluZ3JvbmUN Cg0K4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSBDQpUYWJsZSBvZiBDb250ZW50cw0KDQogIOKAoiBGcmVlQlNEIFRlYW0gUmVw b3J0cw0KICAgICAg4pahIEZyZWVCU0QgRm91bmRhdGlvbg0KICAgICAg4pahIFBvcnRzIENvbGxl Y3Rpb24NCiAgICAgIOKWoSBEb2N1bWVudGF0aW9uIEVuZ2luZWVyaW5nIFRlYW0NCiAgICAgIOKW oSBGcmVlQlNEIFdlYnNpdGUgUmV2YW1wIC0gV2ViQXBwcyB3b3JraW5nIGdyb3VwDQogIOKAoiBQ cm9qZWN0cw0KICAgICAg4pahIEVuYWJsZSBBU0xSIGJ5IGRlZmF1bHQgZm9yIDY0LWJpdCBleGVj dXRhYmxlcw0KICAgICAg4pahIEJvb3QgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzDQogICAgICDi lqEgTExEQiBEZWJ1Z2dlciBJbXByb3ZlbWVudHMNCiAgICAgIOKWoSBOWFAgTFMxMDI4QS8xMDI3 QSBTb0Mgc3VwcG9ydA0KICAgICAg4pahIHNjaGVkX2dldGNwdSgyKSwgbWVtYmFycmllcigyKSwg YW5kIHJzZXEoMikgc3lzY2FsbHMNCiAgICAgIOKWoSBCYXNlIFN5c3RlbSBPcGVuU1NIIFVwZGF0 ZQ0KICAgICAg4pahIFZEU08gb24gYW1kNjQNCiAg4oCiIEtlcm5lbA0KICAgICAg4pahIFRoZSBB VlggYnVnIG9uIGFtZDY0DQogICAgICDilqEgRU5BIEZyZWVCU0QgRHJpdmVyIFVwZGF0ZQ0KICAg ICAg4pahIEludGVsIFdpcmVsZXNzIGRyaXZlciBzdXBwb3J0DQogICAgICDilqEgS2VybmVsIENy eXB0byBjaGFuZ2VzIHRvIHN1cHBvcnQgV2lyZUd1YXJkDQogIOKAoiBQb3J0cw0KICAgICAg4pah IEtERSBvbiBGcmVlQlNEDQogICAgICDilqEgRnJlZUJTRCBPZmZpY2UgVGVhbQ0KICDigKIgVGhp cmQtUGFydHkgUHJvamVjdHMNCiAgICAgIOKWoSBoZWxsb1N5c3RlbQ0KICAgICAg4pahIENvbnRh aW5lcnMgJiBGcmVlQlNEOiBQb3QsIFBvdGx1Y2sgJiBQb3RtYW4NCg0K4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSBDQoNCkZy ZWVCU0QgVGVhbSBSZXBvcnRzDQoNCkVudHJpZXMgZnJvbSB0aGUgdmFyaW91cyBvZmZpY2lhbCBh bmQgc2VtaS1vZmZpY2lhbCB0ZWFtcywgYXMgZm91bmQgaW4gdGhlDQpBZG1pbmlzdHJhdGlvbiBQ YWdlLg0KDQpGcmVlQlNEIEZvdW5kYXRpb24NCg0KTGlua3M6DQpGcmVlQlNEIEZvdW5kYXRpb24g VVJMOiBodHRwczovL3d3dy5GcmVlQlNERm91bmRhdGlvbi5vcmcNClRlY2hub2xvZ3kgUm9hZG1h cCBVUkw6IGh0dHBzOi8vRnJlZUJTREZvdW5kYXRpb24ub3JnL2Jsb2cvdGVjaG5vbG9neS1yb2Fk bWFwLw0KRG9uYXRlIFVSTDogaHR0cHM6Ly93d3cuRnJlZUJTREZvdW5kYXRpb24ub3JnL2RvbmF0 ZS8NCkZvdW5kYXRpb24gUGFydG5lcnNoaXAgUHJvZ3JhbSBVUkw6IGh0dHBzOi8vd3d3LkZyZWVC U0RGb3VuZGF0aW9uLm9yZy8NCkZyZWVCU0QtZm91bmRhdGlvbi1wYXJ0bmVyc2hpcC1wcm9ncmFt DQpGcmVlQlNEIEpvdXJuYWwgVVJMOiBodHRwczovL3d3dy5GcmVlQlNERm91bmRhdGlvbi5vcmcv am91cm5hbC8NCkZvdW5kYXRpb24gTmV3cyBhbmQgRXZlbnRzIFVSTDogaHR0cHM6Ly93d3cuRnJl ZUJTREZvdW5kYXRpb24ub3JnLw0KbmV3cy1hbmQtZXZlbnRzLw0KDQpDb250YWN0OiBEZWIgR29v ZGtpbiA8ZGViQEZyZWVCU0RGb3VuZGF0aW9uLm9yZz4NCg0KVGhlIEZyZWVCU0QgRm91bmRhdGlv biBpcyBhIDUwMShjKSgzKSBub24tcHJvZml0IG9yZ2FuaXphdGlvbiBkZWRpY2F0ZWQgdG8NCnN1 cHBvcnRpbmcgYW5kIHByb21vdGluZyB0aGUgRnJlZUJTRCBQcm9qZWN0IGFuZCBjb21tdW5pdHkg d29ybGR3aWRlLiBEb25hdGlvbnMNCmZyb20gaW5kaXZpZHVhbHMgYW5kIGNvcnBvcmF0aW9ucyBh cmUgdXNlZCB0byBmdW5kIGFuZCBtYW5hZ2Ugc29mdHdhcmUNCmRldmVsb3BtZW50IHByb2plY3Rz LCBjb25mZXJlbmNlcywgYW5kIGRldmVsb3BlciBzdW1taXRzLiBXZSBhbHNvIHByb3ZpZGUNCnRy YXZlbCBncmFudHMgdG8gRnJlZUJTRCBjb250cmlidXRvcnMsIHB1cmNoYXNlIGFuZCBzdXBwb3J0 IGhhcmR3YXJlIHRvIGltcHJvdmUNCmFuZCBtYWludGFpbiBGcmVlQlNEIGluZnJhc3RydWN0dXJl LCBhbmQgcHJvdmlkZSByZXNvdXJjZXMgdG8gaW1wcm92ZSBzZWN1cml0eSwNCnF1YWxpdHkgYXNz dXJhbmNlLCBhbmQgcmVsZWFzZSBlbmdpbmVlcmluZyBlZmZvcnRzLiBXZSBwdWJsaXNoIG1hcmtl dGluZw0KbWF0ZXJpYWwgdG8gcHJvbW90ZSwgZWR1Y2F0ZSwgYW5kIGFkdm9jYXRlIGZvciB0aGUg RnJlZUJTRCBQcm9qZWN0LCBmYWNpbGl0YXRlDQpjb2xsYWJvcmF0aW9uIGJldHdlZW4gY29tbWVy Y2lhbCB2ZW5kb3JzIGFuZCBGcmVlQlNEIGRldmVsb3BlcnMsIGFuZCBmaW5hbGx5LA0KcmVwcmVz ZW50IHRoZSBGcmVlQlNEIFByb2plY3QgaW4gZXhlY3V0aW5nIGNvbnRyYWN0cywgbGljZW5zZSBh Z3JlZW1lbnRzLCBhbmQNCm90aGVyIGxlZ2FsIGFycmFuZ2VtZW50cyB0aGF0IHJlcXVpcmUgYSBy ZWNvZ25pemVkIGxlZ2FsIGVudGl0eS4NCg0KSGVyZSBhcmUgc29tZSBoaWdobGlnaHRzIG9mIHdo YXQgd2UgZGlkIHRvIGhlbHAgRnJlZUJTRCBsYXN0IHF1YXJ0ZXI6DQoNCkZ1bmRyYWlzaW5nIEVm Zm9ydHMNCg0KV2UgZGlkIGl0ISBXZSBtZXQgb3VyIDIwMjEgZnVuZHJhaXNpbmcgZ29hbCBieSBy YWlzaW5nICQxLDI4MSw0MzchISBPbiBiZWhhbGYNCm9mIHRoZSBGb3VuZGF0aW9uLCBJIHdhbnQg dG8gdGhhbmsgeW91IGZvciB5b3VyIGZpbmFuY2lhbCBzdXBwb3J0IGxhc3QgeWVhciwNCnRoYXQg d2lsbCBoZWxwIHVzIGNvbnRpbnVlIGFuZCBpbmNyZWFzZSBvdXIgc3VwcG9ydCBmb3IgRnJlZUJT RCBpbiAyMDIyLiBJbg0KYWRkaXRpb24sIGZvbGtzIGFyZSBhbHJlYWR5IHNlbmRpbmcgdXMgdGhl aXIgMjAyMiBjb250cmlidXRpb25zLCB3aGljaCBpcw0KaW5jcmVkaWJseSBoZWFydHdhcm1pbmch IFdl4oCZbGwgc3RhcnQgdXBkYXRpbmcgdGhlIGZ1bmRyYWlzaW5nIG1ldGVyIGZvciAyMDIyIGJ5 DQp0aGUgZW5kIG9mIEphbnVhcnkuDQoNCkluIHRoaXMgUXVhcnRlcmx5IFN0YXR1cyByZXBvcnQg eW914oCZbGwgcmVhZCBhYm91dCBtYW55IG9mIHRoZSBhcmVhcyB3ZSBmdW5kZWQNCmluIFE0IHRv IGltcHJvdmUgRnJlZUJTRCBhbmQgYWR2b2NhdGUgZm9yIHRoZSBQcm9qZWN0ICh0aGUgdHdvIG1h aW4gYXJlYXMgd2UNCnNwZW5kIG1vbmV5IG9uKS4gQ2hlY2sgb3V0IHJlcG9ydHMgb24gdGhlIGV4 dGVybmFsbHkgZnVuZGVkIHByb2plY3RzIGxpa2UgTExEQg0Kc3VwcG9ydCwgUmFpZC1aIEV4cGFu c2lvbiwgV2lyZUd1YXJkLCBhbmQgd2lmaSwgYXMgd2VsbCBhcywgaW50ZXJuYWxseQ0Kc3VwcG9y dGVkIHdvcmsgbGlrZSBpbXByb3ZlZCBzZWN1cml0eSwgdGllci0xIGFyY2hpdGVjdHVyZSBzdXBw b3J0LCBhbmQNCnByb3ZpZGluZyBvbmxpbmUgb3Bwb3J0dW5pdGllcyB0byBjb25uZWN0IGFuZCBl ZHVjYXRlIHRoZSBjb21tdW5pdHkuDQoNCklmIHlvdSB3YW50IHRvIGhlbHAgdXMgY29udGludWUg b3VyIGVmZm9ydHMsIHBsZWFzZSBjb25zaWRlciBtYWtpbmcgYSBkb25hdGlvbg0KdG93YXJkcyBv dXIgMjAyMiBmdW5kcmFpc2luZyBjYW1wYWlnbiEgaHR0cHM6Ly93d3cuRnJlZUJTREZvdW5kYXRp b24ub3JnL2RvbmF0ZS8uDQoNCldlIGFsc28gaGF2ZSBhIFBhcnRuZXJzaGlwIFByb2dyYW0gZm9y IGxhcmdlciBjb21tZXJjaWFsIGRvbm9ycy4gWW91IGNhbiByZWFkDQphYm91dCBpdCBhdCBodHRw czovL3d3dy5GcmVlQlNERm91bmRhdGlvbi5vcmcvDQpGcmVlQlNELWZvdW5kYXRpb24tcGFydG5l cnNoaXAtcHJvZ3JhbS8uDQoNCk9TIEltcHJvdmVtZW50cw0KDQpEdXJpbmcgdGhlIGZvdXJ0aCBx dWFydGVyLCBGb3VuZGF0aW9uIHN0YWZmIGFuZCBncmFudCByZWNpcGllbnRzIGNvbW1pdHRlZCA0 NzINCnNyYyB0cmVlIGNoYW5nZXMsIDk4IHBvcnRzIHRyZWUgY2hhbmdlcywgYW5kIDExIGRvYyB0 cmVlIGNoYW5nZXMuIFRoaXMNCnJlcHJlc2VudHMgNDElLCA0MSUsIGFuZCAxMyUgb2Ygc3JjLCBw b3J0cywgYW5kIGRvYyBjb21taXRzIGlkZW50aWZ5aW5nIGENCnNwb25zb3IuDQoNCllvdSBjYW4g cmVhZCBhYm91dCBGb3VuZGF0aW9uLXNwb25zb3JlZCBwcm9qZWN0cyBpbiBpbmRpdmlkdWFsIHF1 YXJ0ZXJseSByZXBvcnQNCmVudHJpZXM6DQoNCiAg4oCiIFRoZSBBVlggYnVnIG9uIGFtZDY0DQoN CiAg4oCiIENyeXB0byBjaGFuZ2VzIGZvciBXaXJlR3VyYXJkDQoNCiAg4oCiIEludGVsIFdpcmVs ZXNzIGRyaXZlciBzdXBwb3J0DQoNCiAg4oCiIExMREIgRGVidWdnZXIgSW1wcm92ZW1lbnRzDQoN CiAg4oCiIEJhc2UgU3lzdGVtIE9wZW5TU0ggVXBkYXRlDQoNCiAg4oCiIHNjaGVkX2dldGNwdSgy KSwgbWVtYmFycmllcigyKSwgYW5kIHJzZXEoMikgc3lzY2FsbHMNCg0KICDigKIgVkRTTyBvbiBh bWQ2NA0KDQpIZXJlIGlzIGEgc21hbGwgc2FtcGxlIG9mIG90aGVyIGJhc2Ugc3lzdGVtIGltcHJv dmVtZW50cyBmcm9tIEZvdW5kYXRpb24NCmRldmVsb3BlcnMgdGhpcyBxdWFydGVyIHRoYXQgZG8g bm90IGhhdmUgc2VwYXJhdGUgcmVwb3J0IGVudHJpZXMuDQoNCmtlcm4ucHJvYy5wYXRobmFtZSBj YW5vbmljYWwgaGFyZCBsaW5rDQoNClNvbWUgcHJvZ3JhbXMgYWRqdXN0IHRoZWlyIGJlaGF2aW9y IGRlcGVuZGluZyBvbiB3aGljaCBuYW1lIHdhcyB1c2VkIGZvcg0KZXhlY3V0aW9uLiBGb3IgdGhl c2UgcHJvZ3JhbXMsIGl0IGlzIG9mdGVuIGltcG9ydGFudCB0byBoYXZlIGEgY29uc2lzdGVudCBu YW1lDQppbiBhcmd2WzBdLCBzeXNjdGwga2Vybi5wcm9jLnBhdGhuYW1lLCBhdXh2IEFUX0VYRUNQ QVRILCBhbmQgYW55IHByb2NmcyBmaWxlDQpzeW1saW5rLiBCZWZvcmUgdGhpcyB3b3JrLCBhbGwg bGlzdGVkIGtlcm5lbCBpbnRlcmZhY2VzIHRyaWVkIHRvIGNhbGN1bGF0ZSBzb21lDQpuYW1lIGZv ciB0aGUgdGV4dCB2bm9kZSBhbmQgcmV0dXJuZWQgdGhlIHJlc3VsdC4gSWYgdGhlIGV4ZWN1dGVk IGJpbmFyeSBoYXMNCm1vcmUgdGhhbiBvbmUgaGFyZGxpbmssIHRoZSByZXR1cm5lZCBuYW1lcyB3 ZXJlIGFyYml0cmFyaWx5IGNob3NlbiBmcm9tIHRoZQ0KbGlzdCBvZiB2YWxpZCBuYW1lcyBmb3Ig dGhlIGZpbGUuIEFmdGVyIHdvcmsgY29tcGxldGVkIHRoaXMgcXVhcnRlciBieQ0KRm91bmRhdGlv biBkZXZlbG9wZXIgS29uc3RhbnRpbiBCZWxvdXNvdiwgdGhlIHN5c3RlbSBub3cgaG9sZHMgdGhl IHBhcmVudA0KZGlyZWN0b3J5IGFuZCB0aGUgbmFtZSBvZiB0aGUgdGV4dCBmaWxlIGZvciB0aGUg cnVubmluZyBpbWFnZS4gVGhpcyBpcyB1c2VkIHRvDQpyZWNvbnN0cnVjdCB0aGUgY29ycmVjdCBu YW1lIG9mIHRoZSB0ZXh0IGZpbGUgd2hlbiByZXF1ZXN0ZWQuDQoNCnN3YXBvbi9zd2Fwb2ZmLCBm aWxlIHN3YXBwaW5nDQoNCkFmdGVyIHdvcmsgdG8gZml4IGFzc2VydHMgZm9yIGNoYXJhY3RlciBk ZXZpY2Ugdm5vZGUgbG9ja2luZywgdGhlcmUgd2FzIGENCnJlcG9ydCB0aGF0IHN3YXAgb24gZmls ZSBjb2RlIGJyb2tlIHRoZSBWRlMgbG9ja2luZyBwcm90b2NvbC4gU29tZSBvdGhlcg0KcmVncmVz c2lvbnMgaW4gdGhlIHN3YXAgb24gZmlsZSB3ZXJlIGFsc28gaWRlbnRpZmllZC4gRm9yIGluc3Rh bmNlLCBvbg0Kc2h1dGRvd24sIGZpbGVzeXN0ZW1zIHdlcmUgdW5tb3VudGVkIGJlZm9yZSBzd2Fw b2ZmLCB3aGljaCBtYWtlcyBzd2Fwb2ZmIHBhbmljDQpvbiBwYWdlLWluLiBUaGVzZSBidWdzIHdl cmUgZml4ZWQgYW5kIGEgc3dhcG9mZigyKSBmZWF0dXJlIHdhcyBhZGRlZCB0byBhdm9pZA0Kc29t ZSB2ZXJ5IGNvbnNlcnZhdGl2ZSBlc3RpbWF0aW9ucyBmb3IgcHJvdGVjdGlvbiBhZ2FpbnN0IG1l bW9yeSBhbmQgc3dhcCBzcGFjZQ0Kc2hvcnRhZ2VzLg0KDQpmY250bChGX0tJTkZPKQ0KDQpBcHBs aWNhdGlvbiBkZXZlbG9wZXJzIG9mdGVuIHJlcXVlc3QgYW4gaW50ZXJmYWNlIHRvIHJldHVybiB0 aGUgZmlsZSBwYXRoIGZvcg0KYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuIE91ciBvbmx5IHVzZWZ1 bCBmYWNpbGl0eSBmb3IgdGhpcyB3YXMNCmtlcm4ucHJvYy5maWxlZGVzYyBzeXNjdGwsIHdoaWNo IGlzIHNvbWV3aGF0IHVzYWJsZSwgYnV0IGluY3VycyB0b28gaGlnaCBvZiBhbg0Kb3ZlcmhlYWQg d2hlbiBhIHByb2Nlc3MgaGFzIG1hbnkgb3BlbiBmaWxlcy4gQSBmY250bChGX0tJTkZPKSBpbnRl cmZhY2Ugd2FzDQphZGRlZCwgd2hpY2ggcmV0dXJucyBhIHN0cnVjdCBraW5mb19maWxlIGp1c3Qg Zm9yIHRoZSBzcGVjaWZpZWQgZmlsZQ0KZGVzY3JpcHRvci4gQW1vbmcgb3RoZXIgdXNlZnVsIGRh dGEsIGtpbmZvX2ZpbGUgcHJvdmlkZXMgdGhlIGNhbGN1bGF0ZWQgcGF0aCwNCndoZW4gYXZhaWxh YmxlLg0KDQpDb250aW51b3VzIEludGVncmF0aW9uIGFuZCBRdWFsaXR5IEFzc3VyYW5jZQ0KDQpU aGUgRm91bmRhdGlvbiBwcm92aWRlcyBhIGZ1bGwtdGltZSBzdGFmZiBtZW1iZXIgYW5kIGZ1bmRz IHByb2plY3RzIHRvIGltcHJvdmUNCmNvbnRpbnVvdXMgaW50ZWdyYXRpb24sIGF1dG9tYXRlZCB0 ZXN0aW5nLCBhbmQgb3ZlcmFsbCBxdWFsaXR5IGFzc3VyYW5jZQ0KZWZmb3J0cyBmb3IgdGhlIEZy ZWVCU0QgcHJvamVjdC4NCg0KU3VwcG9ydGluZyBGcmVlQlNEIEluZnJhc3RydWN0dXJlDQoNClRo ZSBGb3VuZGF0aW9uIHByb3ZpZGVzIGhhcmR3YXJlIGFuZCBzdXBwb3J0IGZvciB0aGUgUHJvamVj dC4gSW4gdGhlIGZvdXJ0aA0KcXVhcnRlciBvZiAyMDIxLCB3ZSBiZWdhbiBzZWFyY2hpbmcgZm9y IGEgbmV3IEF1c3RyYWxpYW4gbWlycm9yIHNlcnZlci4gQXQgdGhlDQp0aW1lIG9mIHdyaXRpbmcs IHRoZSBzZXJ2ZXIgaXMgcHVyY2hhc2VkLCBidXQgd2l0aCBkZWxheXMgb2J0YWluaW5nIGNvbXBv bmVudHMNCmFuZCBzaGlwcGluZywgaXQgbWF5IG5vdCBiZSBhY3RpdmUgdW50aWwgdGhlIHNlY29u ZCBvciB0aGlyZCBxdWFydGVyIG9mIDIwMjIuDQpCZXR0ZXIgYW5kIGZhc3RlciBhY2Nlc3MgdG8g b3VyIHNpdGVzIGZvciB0aGUgQXVzdHJhbGlhbiBGcmVlQlNEIGNvbW11bml0eSBpcw0KY29taW5n Lg0KDQpGcmVlQlNEIEFkdm9jYWN5IGFuZCBFZHVjYXRpb24NCg0KTXVjaCBvZiBvdXIgZWZmb3J0 IGlzIGRlZGljYXRlZCB0byBQcm9qZWN0IGFkdm9jYWN5LiBUaGlzIG1heSBpbnZvbHZlDQpoaWdo bGlnaHRpbmcgaW50ZXJlc3RpbmcgRnJlZUJTRCB3b3JrLCBwcm9kdWNpbmcgbGl0ZXJhdHVyZSwg YXR0ZW5kaW5nIGV2ZW50cywNCm9yIGdpdmluZyBwcmVzZW50YXRpb25zLiBUaGUgZ29hbCBvZiB0 aGUgbGl0ZXJhdHVyZSB3ZSBwcm9kdWNlIGlzIHRvIHRlYWNoDQpwZW9wbGUgRnJlZUJTRCBiYXNp Y3MgYW5kIGhlbHAgbWFrZSB0aGVpciBwYXRoIHRvIGFkb3B0aW9uIG9yIGNvbnRyaWJ1dGlvbg0K ZWFzaWVyLiBPdGhlciB0aGFuIGF0dGVuZGluZyBhbmQgcHJlc2VudGluZyBhdCBldmVudHMsIHdl IGVuY291cmFnZSBhbmQgaGVscA0KY29tbXVuaXR5IG1lbWJlcnMgcnVuIHRoZWlyIG93biBGcmVl QlNEIGV2ZW50cywgZ2l2ZSBwcmVzZW50YXRpb25zLCBvciBzdGFmZg0KRnJlZUJTRCB0YWJsZXMu DQoNClRoZSBGcmVlQlNEIEZvdW5kYXRpb24gc3BvbnNvcnMgbWFueSBjb25mZXJlbmNlcywgZXZl bnRzLCBhbmQgc3VtbWl0cyBhcm91bmQNCnRoZSBnbG9iZS4gVGhlc2UgZXZlbnRzIGNhbiBiZSBC U0QtcmVsYXRlZCwgb3BlbiBzb3VyY2UsIG9yIHRlY2hub2xvZ3kgZXZlbnRzDQpnZWFyZWQgdG93 YXJkcyB1bmRlcnJlcHJlc2VudGVkIGdyb3Vwcy4gV2Ugc3VwcG9ydCB0aGUgRnJlZUJTRC1mb2N1 c2VkIGV2ZW50cw0KdG8gaGVscCBwcm92aWRlIGEgdmVudWUgZm9yIHNoYXJpbmcga25vd2xlZGdl LCB3b3JraW5nIHRvZ2V0aGVyIG9uIHByb2plY3RzLA0KYW5kIGZhY2lsaXRhdGluZyBjb2xsYWJv cmF0aW9uIGJldHdlZW4gZGV2ZWxvcGVycyBhbmQgY29tbWVyY2lhbCB1c2Vycy4gVGhpcw0KYWxs IGhlbHBzIHByb3ZpZGUgYSBoZWFsdGh5IGVjb3N5c3RlbS4gV2Ugc3VwcG9ydCB0aGUgbm9uLUZy ZWVCU0QgZXZlbnRzIHRvDQpwcm9tb3RlIGFuZCByYWlzZSBhd2FyZW5lc3Mgb2YgRnJlZUJTRCwg dG8gaW5jcmVhc2UgdGhlIHVzZSBvZiBGcmVlQlNEIGluDQpkaWZmZXJlbnQgYXBwbGljYXRpb25z LCBhbmQgdG8gcmVjcnVpdCBtb3JlIGNvbnRyaWJ1dG9ycyB0byB0aGUgUHJvamVjdC4gV2UgYXJl DQpjb250aW51aW5nIHRvIGF0dGVuZCB2aXJ0dWFsIGV2ZW50cyBhbmQgaGVsZCBhIHZpcnR1YWwg dmVuZG9yIHN1bW1pdCB0aGlzIHBhc3QNCk5vdmVtYmVyLg0KDQpDaGVjayBvdXQgc29tZSBvZiB0 aGUgYWR2b2NhY3kgYW5kIGVkdWNhdGlvbiB3b3JrIHdlIGRpZCBsYXN0IHF1YXJ0ZXI6DQoNCiAg 4oCiIFByb21vdGVkIGFuZCBwYXJ0aWNpcGF0ZWQgYXMgYSBtZWRpYSBzcG9uc29yIGZvciBBTEwg VGhpbmdzIE9wZW4gMjAyMQ0KDQogIOKAoiBDb21taXR0ZWQgdG8gYmVpbmcgYSBNZWRpYSBTcG9u c29yIGZvciBTQ0FMRSAxOXgNCg0KICDigKIgQ29tbWl0dGVkIHRvIGhvc3RpbmcgYSBzdGFuZCBh dCBGT1NERU0gMjAyMg0KDQogIOKAoiBTZW50IG91dCB0aGUgRmFsbCAyMDIxIE5ld3NsZXR0ZXIN Cg0KICDigKIgSGVsZCBhIEZyZWVCU0QgRnJpZGF5IHRhbGs6IFRoZSBXcml0aW5nIFNjaG9sYXLi gJlzIEd1aWRlIHRvIEZyZWVCU0QsICh0ZXh0DQogICAgZXF1aXZhbGVudCkNCg0KICDigKIgR2F2 ZSBhIEZvdW5kYXRpb24gdGFsayBhdCBTZW1pLUJ1ZywgTm92ZW1iZXIgMTYsIDIwMjENCg0KICDi gKIgR2F2ZSBGb3VuZGF0aW9uIGFuZCBGcmVlQlNEIHRhbGtzIGF0IFNlYWdhdGUgT1NQTywgRGVj ZW1iZXIgOSwgMjAyMQ0KDQogIOKAoiBIZWxwZWQgb3JnYW5pemUgdGhlIDIgZGF5IEZyZWVCU0Qg VmlydHVhbCBWZW5kb3IgU3VtbWl0LCBOb3ZlbWJlciAxOC0xOSwNCiAgICAyMDIxLiBWaWRlb3Mg Y2FuIGJlIGZvdW5kIG9uIHRoZSBQcm9qZWN04oCZcyBZb3V0dWJlIENoYW5uZWwNCg0KICDigKIg TmV3IGJsb2cgYW5kIHZpZGVvIHBvc3RzOg0KDQogICAgICDilqEgRnJlZUJTRCBGb3VuZGF0aW9u IEZhbGwgMjAyMSBVcGRhdGUNCg0KICAgICAg4pahIDIwMjEgaW4gUmV2aWV3OiBBZHZvY2FjeQ0K DQogICAgICDilqEgMjAyMSBpbiBSZXZpZXc6IEluZnJhc3RydWN0dXJlIFN1cHBvcnQNCg0KICAg ICAg4pahIDIwMjEgaW4gUmV2aWV3OiBTb2Z0d2FyZSBEZXZlbG9wbWVudA0KDQogICAgICDilqEg T3BlbiBTb3VyY2UgU3VtbWl0IDIwMjEgQ29uZmVyZW5jZSBSZWNhcA0KDQogIOKAoiBOZXcgSG93 LVRvIEd1aWRlOiBJbnRyb2R1Y3Rpb24gdG8gRnJlZUJTRA0KDQpXZSBoZWxwIGVkdWNhdGUgdGhl IHdvcmxkIGFib3V0IEZyZWVCU0QgYnkgcHVibGlzaGluZyB0aGUgcHJvZmVzc2lvbmFsbHkNCnBy b2R1Y2VkIEZyZWVCU0QgSm91cm5hbC4gQXMgd2UgbWVudGlvbmVkIHByZXZpb3VzbHksIHRoZSBG cmVlQlNEIEpvdXJuYWwgaXMNCm5vdyBhIGZyZWUgcHVibGljYXRpb24uIEZpbmQgb3V0IG1vcmUg YW5kIGFjY2VzcyB0aGUgbGF0ZXN0IGlzc3VlcyBhdCBodHRwczovLw0Kd3d3LkZyZWVCU0Rmb3Vu ZGF0aW9uLm9yZy9qb3VybmFsLy4NCg0KWW91IGNhbiBmaW5kIG91dCBtb3JlIGFib3V0IGV2ZW50 cyB3ZSBhdHRlbmRlZCBhbmQgdXBjb21pbmcgZXZlbnRzIGF0IGh0dHBzOi8vDQp3d3cuRnJlZUJT RGZvdW5kYXRpb24ub3JnL25ld3MtYW5kLWV2ZW50cy8uDQoNCkxlZ2FsL0ZyZWVCU0QgSVANCg0K VGhlIEZvdW5kYXRpb24gb3ducyB0aGUgRnJlZUJTRCB0cmFkZW1hcmtzLCBhbmQgaXQgaXMgb3Vy IHJlc3BvbnNpYmlsaXR5IHRvDQpwcm90ZWN0IHRoZW0uIFdlIGFsc28gcHJvdmlkZSBsZWdhbCBz dXBwb3J0IGZvciB0aGUgY29yZSB0ZWFtIHRvIGludmVzdGlnYXRlDQpxdWVzdGlvbnMgdGhhdCBh cmlzZS4NCg0KR28gdG8gaHR0cHM6Ly93d3cuRnJlZUJTREZvdW5kYXRpb24ub3JnIHRvIGZpbmQg bW9yZSBhYm91dCBob3cgd2Ugc3VwcG9ydA0KRnJlZUJTRCBhbmQgaG93IHdlIGNhbiBoZWxwIHlv dSENCg0K4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSBDQoNClBvcnRzIENvbGxlY3Rpb24NCg0KTGlua3M6DQpBYm91dCBGcmVl QlNEIFBvcnRzIFVSTDogaHR0cHM6Ly93d3cuRnJlZUJTRC5vcmcvcG9ydHMvDQpDb250cmlidXRp bmcgdG8gUG9ydHMgVVJMOiBodHRwczovL2RvY3MuZnJlZWJzZC5vcmcvZW4vYXJ0aWNsZXMvY29u dHJpYnV0aW5nLyMNCnBvcnRzLWNvbnRyaWJ1dGluZw0KRnJlZUJTRCBQb3J0cyBNb25pdG9yaW5n IFVSTDogaHR0cDovL3BvcnRzbW9uLmZyZWVic2Qub3JnLw0KUG9ydHMgTWFuYWdlbWVudCBUZWFt IFVSTDogaHR0cHM6Ly93d3cuZnJlZWJzZC5vcmcvcG9ydG1nci8NClBvcnRzIFRhcmJhbGwgVVJM OiBodHRwOi8vZnRwLmZyZWVic2Qub3JnL3B1Yi9GcmVlQlNEL3BvcnRzL3BvcnRzLw0KDQpDb250 YWN0OiBSZW7DqSBMYWRhbiA8cG9ydG1nci1zZWNyZXRhcnlARnJlZUJTRC5vcmc+DQpDb250YWN0 OiBGcmVlQlNEIFBvcnRzIE1hbmFnZW1lbnQgVGVhbSA8cG9ydG1nckBGcmVlQlNELm9yZz4NCg0K VGhlIFBvcnRzIE1hbmFnZW1lbnQgVGVhbSBpcyByZXNwb25zaWJsZSBmb3Igb3ZlcnNlZWluZyB0 aGUgb3ZlcmFsbCBkaXJlY3Rpb24NCm9mIHRoZSBQb3J0cyBUcmVlLCBidWlsZGluZyBwYWNrYWdl cywgYW5kIHBlcnNvbm5lbCBtYXR0ZXJzLiBCZWxvdyBpcyB3aGF0DQpoYXBwZW5lZCBpbiB0aGUg bGFzdCBxdWFydGVyLg0KDQpXZSBjdXJyZW50bHkgaGF2ZSA0Niw3MDAgcG9ydHMgaW4gdGhlIFBv cnRzIENvbGxlY3Rpb24gYWNjb3JkaW5nIHRvIEZyZXNoUG9ydHMuDQpUaGVyZSBhcmUgY3VycmVu dGx5IDIsNjY2IG9wZW4gcG9ydHMgUFJzIG9mIHdoaWNoIDYxMSBhcmUgdW5hc3NpZ25lZC4gVGhp cw0KcXVhcnRlciBzYXcgOSw1MzUgY29tbWl0cyBmcm9tIDE2NiBjb21taXR0ZXJzIG9uIHRoZSBt YWluIGJyYW5jaCBhbmQgNjQ0DQpjb21taXRzIGZyb20gNjIgY29tbWl0dGVycyBvbiB0aGUgcXVh cnRlcmx5IGJyYW5jaC4gQ29tcGFyZWQgdG8gbGFzdCBxdWFydGVyLA0KdGhpcyBtZWFucyBhIHNs aWdodCBkcm9wIGluIHRoZSBudW1iZXIgb2YgY29tbWl0cyBhbHRob3VnaCBtb3JlIGNvbW1pdHRl cnMgd2VyZQ0KYWN0aXZlLCBhbmQgYSBzbGlnaHQgaW5jcmVhc2UgaW4gdGhlIG51bWJlciBvZiBv cGVuIFBScy4NCg0KRHVyaW5nIHRoZSBsYXN0IHF1YXJ0ZXIsIHdlIHdlbGNvbWVkIERyaWVzIE1p Y2hpZWxzIChkcmllc21AKSBhbmQgc2FpZCBnb29kYnllDQp0byBrdXJpeWFtYUAgYW5kIGZqb2VA LiBUaGVyZSB3YXMgYWxzbyBhIGNoYW5nZSBpbiBwb3J0bWdyOiBhZGFtd0Agc3RlcHBlZCBkb3du DQphZnRlciBmaXZlIHllYXJzIG9mIHNlcnZpY2UgYW5kIHRjYmVybmVyQCBpcyBub3cgYSBmdWxs IG1lbWJlciBvZiBwb3J0bWdyQC4NCg0KVGhyZWUgbmV3IFVTRVMgd2VyZSBpbnRyb2R1Y2VkOg0K DQogIOKAoiBtYWdpY2sgdG8gaGFuZGxlIGRlcGVuZGVuY2llcyBvbiBJbWFnZU1hZ2ljaw0KDQog IOKAoiBub2RlanMgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciBOb2RlSlMgKHdpdGggYSBuZXcgZGVm YXVsdCB2ZXJzaW9uIE5PREVKUz0NCiAgICBsdHMpDQoNCiAg4oCiIHRyaWdnZXIgdG8gaGFuZGxl IHBrZyB0cmlnZ2VycyB1c2luZyB0aGUgVFJJR0dFUlMgdmFyaWFibGUNCg0KVGhlIGRlZmF1bHQg dmVyc2lvbiBvZiBQR1NRTCBzd2l0Y2hlZCB0byAxMy4gRnVydGhlcm1vcmUsIElOU1RBTExTX0lD T05TIGhhcw0KYmVlbiByZXBsYWNlZCBieSBhIHRyaWdnZXIgb24gZ3RrLXVwZGF0ZS1pY29uLWNh Y2hlIGFuZCB0aGUgbWFjcm8gaXMgbm8gbG9uZ2VyDQpmdW5jdGlvbmFsLg0KDQpBcyBhbHdheXMs IHRoZXJlIHdlcmUgc29tZSB1cGRhdGVzIHRvICJiaWciIHBhY2thZ2VzOiBwa2cgd2FzIHVwZGF0 ZWQgdG8NCjEuMTcuNSwgQ2hyb21pdW0gdG8gOTQuMC40NjA2LjgxXzMsIGFuZCBGaXJlZm94IHRv IDk1LjAuMl8xLDIuIFJ1YnkgMy4xLjAgYW5kDQpQeXRob24gMy4xMSBhcmUgbm93IGF2YWlsYWJs ZSBmb3IgdXNlIGJ5IHVzZXJzIGFuZCBvdGhlciBwb3J0cy4NCg0K4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSBDQoNCkRvY3Vt ZW50YXRpb24gRW5naW5lZXJpbmcgVGVhbQ0KDQpMaW5rczoNCkZyZWVCU0QgRG9jdW1lbnRhdGlv biBQcm9qZWN0IFVSTDogaHR0cHM6Ly93d3cuZnJlZWJzZC5vcmcvZG9jcHJvai8NCkZyZWVCU0Qg RG9jdW1lbnRhdGlvbiBQcm9qZWN0IFByaW1lciBmb3IgTmV3IENvbnRyaWJ1dG9ycyBVUkw6IGh0 dHBzOi8vDQpkb2NzLmZyZWVic2Qub3JnL2VuL2Jvb2tzL2ZkcC1wcmltZXIvDQpEb2N1bWVudGF0 aW9uIEVuZ2luZWVyaW5nIFRlYW0gVVJMOiBodHRwczovL3d3dy5mcmVlYnNkLm9yZy9hZG1pbmlz dHJhdGlvbi8jDQp0LWRvY2VuZw0KDQpDb250YWN0OiBGcmVlQlNEIERvY2VuZyBUZWFtIDxkb2Nl bmdARnJlZUJTRC5vcmc+DQoNClRoZSBkb2NlbmdAIHRlYW0gaXMgYSBib2R5IHRvIGhhbmRsZSBz b21lIG9mIHRoZSBtZXRhLXByb2plY3QgaXNzdWVzIGFzc29jaWF0ZWQNCndpdGggdGhlIEZyZWVC U0QgRG9jdW1lbnRhdGlvbiBQcm9qZWN0OyBmb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIEZyZWVC U0QNCkRvY2VuZyBUZWFtIENoYXJ0ZXIuDQoNCk5vIG5ldyBkb2N1bWVudGF0aW9uIGNvbW1pdCBi aXQgd2FzIGdyYW50ZWQgZHVyaW5nIHRoZSBsYXN0IHF1YXJ0ZXIsIGFuZCBvbmx5DQpvbmUgY29t bWl0IGJpdCB3YXMgc2FmZSBrZXB0Lg0KDQpTZXZlcmFsIHRhc2tzIHdlcmUgY29tcGxldGVkIHJl bGF0ZWQgdG8gdGhlIGRvYyB0cmVlIGR1cmluZyB0aGUgbGFzdCBxdWFydGVyOg0KDQogIOKAoiBB IENPUFlSSUdIVCBmaWxlIHdhcyBhZGRlZCBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGRv YyByZXBvc2l0b3J5LiBUaGUNCiAgICBsaWNlbnNlIHdhcyBhbHNvIHVwZGF0ZWQgdG8gcmVmbGVj dCB0aGUgY3VycmVudCB0b29sY2hhaW4gdGhlIHByb2plY3QgaXMNCiAgICB1c2luZyBub3cuDQoN CiAg4oCiIENsZWFudXAgb2YgTWFpbG1hbiBpbmZvcm1hdGlvbiBpbiB0aGUgZG9jIHRyZWUuIEZv bGxvd2luZyBtYWlsaW5nIGxpc3RzDQogICAgbWlncmF0aW9uIGZyb20gTWFpbG1hbiB0byBNbG1t aiwgdmVyeSBvbGQgbWFpbGluZyBsaXN0cyB3ZXJlIHJlbW92ZWQ7IG1vc3QNCiAgICBvZiB0aGUg d29yayB3YXMgbWFkZSBvbiBFbmdsaXNoIGRvY3VtZW50cy4NCg0KICDigKIgVGFnIEZyZWVCU0Qg ZG9jc2V0IGZvciAxMi4zLVJFTEVBU0UuDQoNCiAg4oCiIFVwZGF0ZSBhbGwgcG9ydHMvcGFja2Fn ZXMgbWlzYy9mcmVlYnNkLWRvYy0qLg0KDQogIOKAoiBNb3ZlIGFydGljbGVzL2NvbnRyaWJ1dG9y cy9jb250cmliLSogZmlsZXMgdG8gdGhlIGRvYyBzaGFyZWQgZGlyZWN0b3J5Lg0KDQogIOKAoiBB ZGQgb3B0aW9uIGluIGRvY3VtZW50YXRpb24gTWFrZWZpbGUgdG8gYXJjaGl2ZS9jb21wcmVzcyBE b2N1bWVudGF0aW9uL0hUTUwNCiAgICBvZmZsaW5lIGZpbGVzLCBhIG5lY2Vzc2FyeSBzdGVwIGJl Zm9yZSB1cGRhdGluZyBodHRwczovLw0KICAgIGRvd25sb2FkLmZyZWVic2Qub3JnL2Z0cC8uIFRo aXMgd2FzIGFmdGVyIGEgZGlzY3Vzc2lvbiB3aXRoIGNsdXN0ZXJhZG1AIHRvDQogICAgdXBkYXRl IHRoZSBvZmZsaW5lIGFzc2V0cyAoSFRNTC9QREYpLg0KDQogIOKAoiBBZGQgZXhwZXJpbWVudGFs IHN1cHBvcnQgZm9yIEVQVUIgb3V0cHV0IChib29rcy9hcnRpY2xlcykuDQoNCiAg4oCiIFRhbGtp bmcgd2l0aCBjbHVzdGVyYWRtQCB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiBodHRwczov Lw0KICAgIHd3dy5mcmVlYnNkLm9yZyBhbmQgaHR0cHM6Ly9kb2NzLmZyZWVic2Qub3JnLg0KDQri lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIENCg0KRnJlZUJTRCBXZWJzaXRlIFJldmFtcCAtIFdlYkFwcHMgd29ya2luZyBncm91 cA0KDQpDb250YWN0OiBTZXJnaW8gQ2FybGF2aWxsYSA8Y2FybGF2aWxsYUBGcmVlQlNELm9yZz4N Cg0KV29ya2luZyBncm91cCBpbiBjaGFyZ2Ugb2YgY3JlYXRpbmcgdGhlIG5ldyBGcmVlQlNEIERv Y3VtZW50YXRpb24gUG9ydGFsIGFuZA0KcmVkZXNpZ25pbmcgdGhlIEZyZWVCU0QgbWFpbiB3ZWJz aXRlIGFuZCBpdHMgY29tcG9uZW50cy4gRnJlZUJTRCBkZXZlbG9wZXJzIGNhbg0KZm9sbG93IGFu ZCBqb2luIHRoZSB3b3JraW5nIGdyb3VwIG9uIHRoZSBGcmVlQlNEIFNsYWNrIGNoYW5uZWwgI3dn LXd3dzIxLiBUaGUNCndvcmsgd2lsbCBiZSBkaXZpZGVkIGludG8gZm91ciBwaGFzZXM6DQoNCiAx LiBSZWRlc2lnbiBvZiB0aGUgRG9jdW1lbnRhdGlvbiBQb3J0YWwNCg0KICAgIENyZWF0ZSBhIG5l dyBkZXNpZ24sIHJlc3BvbnNpdmUgYW5kIHdpdGggZ2xvYmFsIHNlYXJjaC4gKENvbXBsZXRlKQ0K DQogICAgQWN0aXZhdGUgYW4gZWRpdCBsaW5rIGluIHRoZSBEb2N1bWVudGF0aW9uIChib29rcy9h cnRpY2xlcykgcG9pbnRpbmcgdG8NCiAgICBHaXRIdWIgYW5kIGVuY291cmFnaW5nIEdpdEh1YiBw dWxsIHJlcXVlc3RzLiAoQ29tcGxldGUpDQoNCiAyLiBSZWRlc2lnbiBvZiB0aGUgTWFudWFsIFBh Z2VzIG9uIHdlYg0KDQogICAgU2NyaXB0cyB0byBnZW5lcmF0ZSB0aGUgSFRNTCBwYWdlcyB1c2lu ZyBtYW5kb2MuIChXb3JrIGluIHByb2dyZXNzKQ0KDQogMy4gUmVkZXNpZ24gb2YgdGhlIFBvcnRz IHBhZ2Ugb24gd2ViDQoNCiAgICBQb3J0cyBzY3JpcHRzIHRvIGNyZWF0ZSBhbiBhcHBsaWNhdGlv bnMgcG9ydGFsLiAoV29yayBpbiBwcm9ncmVzcykNCg0KIDQuIFJlZGVzaWduIG9mIHRoZSBGcmVl QlNEIG1haW4gd2Vic2l0ZQ0KDQogICAgTmV3IGRlc2lnbiwgcmVzcG9uc2l2ZSBhbmQgZGFyayB0 aGVtZS4gKE5vdCBzdGFydGVkKQ0KDQrilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIENCg0KUHJvamVjdHMNCg0KUHJvamVjdHMg dGhhdCBzcGFuIG11bHRpcGxlIGNhdGVnb3JpZXMsIGZyb20gdGhlIGtlcm5lbCBhbmQgdXNlcnNw YWNlIHRvIHRoZQ0KUG9ydHMgQ29sbGVjdGlvbiBvciBleHRlcm5hbCBwcm9qZWN0cy4NCg0KRW5h YmxlIEFTTFIgYnkgZGVmYXVsdCBmb3IgNjQtYml0IGV4ZWN1dGFibGVzDQoNCkNvbnRhY3Q6IERh d2lkIEdvcmVja2kgPGRnckBzZW1paGFsZi5jb20+DQpDb250YWN0OiBNYXJjaW4gV29qdGFzIDxt d0BzZW1paGFsZi5jb20+DQoNCkFkZHJlc3MgU3BhY2UgTGF5b3V0IFJhbmRvbWl6YXRpb24gKEFT TFIpIGlzIGFuIGV4cGxvaXQgbWl0aWdhdGlvbiB0ZWNobmlxdWUNCmltcGxlbWVudGVkIGluIHRo ZSBtYWpvcml0eSBvZiBtb2Rlcm4gb3BlcmF0aW5nIHN5c3RlbXMuIEl0IGludm9sdmVzIHJhbmRv bWx5DQpwb3NpdGlvbmluZyB0aGUgYmFzZSBhZGRyZXNzIG9mIGFuIGV4ZWN1dGFibGUgYW5kIHRo ZSBwb3NpdGlvbiBvZiBsaWJyYXJpZXMsDQpoZWFwLCBhbmQgc3RhY2ssIGluIGEgcHJvY2Vzc+KA mXMgYWRkcmVzcyBzcGFjZS4gQWx0aG91Z2ggb3ZlciB0aGUgeWVhcnMgQVNMUg0KcHJvdmVkIHRv IG5vdCBndWFyYW50ZWUgZnVsbCBPUyBzZWN1cml0eSBvbiBpdHMgb3duLCB0aGlzIG1lY2hhbmlz bSBjYW4gbWFrZQ0KZXhwbG9pdGF0aW9uIG1vcmUgZGlmZmljdWx0Lg0KDQpUaGUgU2VtaWhhbGYg dGVhbSBtYWRlIGFuIGVmZm9ydCB0byBzd2l0Y2ggb24gdGhlIGFkZHJlc3MgbWFwIHJhbmRvbWl6 YXRpb24gZm9yDQpQSUUgKFBvc2l0aW9uIEluZGVwZW5kZW50IEV4ZWN1dGFibGVzKSAmIG5vbi1Q SUUgNjQtYml0IGJpbmFyaWVzLiBPbmNlIHRoZQ0KcGF0Y2ggd2FzIG1lcmdlZCB0byBIRUFELCB0 aGUgQVNMUiBmZWF0dXJlIGJlY2FtZSBlbmFibGVkIGZvciBhbGwgNjQtYml0DQphcmNoaXRlY3R1 cmVzLg0KDQpBZGRpdGlvbmFsbHksIHRoZSBtZW50aW9uZWQgY2hhbmdlIGRpc2FibGVkIFNCUkss IGluIG9yZGVyIHRvIGFsbG93IHV0aWxpemF0aW9uDQpvZiB0aGUgYnNzIGdyb3cgcmVnaW9uIGZv ciBtYXBwaW5ncy4gSXQgaGFzIG5vIGVmZmVjdCB3aXRob3V0IEFTTFIsIHNvIGl0IHdhcw0KYXBw bGllZCB0byBhbGwgYXJjaGl0ZWN0dXJlcy4NCg0KVE9ETzoNCg0KICDigKIgSW1wcm92ZSBzdGFj a2dhcCBmZWF0dXJlIGltcGxlbWVudGF0aW9uLg0KDQogIOKAoiBNRkMgdG8gc3RhYmxlLzEzIGJy YW5jaC4NCg0KU3BvbnNvcjogU3Rvcm1zaGllbGQNCg0K4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSBDQoNCkJvb3QgUGVyZm9y bWFuY2UgSW1wcm92ZW1lbnRzDQoNCkxpbmtzOg0KV2lraSBwYWdlIFVSTDogaHR0cHM6Ly93aWtp LmZyZWVic2Qub3JnL0Jvb3RUaW1lDQpPUyBib290IHRpbWUgY29tcGFyaXNvbiBVUkw6IGh0dHBz Oi8vd3d3LmRhZW1vbm9sb2d5Lm5ldC9ibG9nLw0KMjAyMS0wOC0xMi1FQzItYm9vdC10aW1lLWJl bmNobWFya2luZy5odG1sDQoNCkNvbnRhY3Q6IENvbGluIFBlcmNpdmFsIDxjcGVyY2l2YUBGcmVl QlNELm9yZz4NCg0KQ29saW4gUGVyY2l2YWwgaXMgY29vcmRpbmF0aW5nIGFuIGVmZm9ydCB0byBz cGVlZCB1cCB0aGUgRnJlZUJTRCBib290IHByb2Nlc3MuDQpGb3IgYmVuY2htYXJraW5nIHB1cnBv c2VzLCBoZSBpcyBwcmltYXJpbHkgdXNpbmcgYW4gRUMyIGM1LnhsYXJnZSBpbnN0YW5jZSBhcyBh DQpyZWZlcmVuY2UgcGxhdGZvcm0gYW5kIGlzIG1lYXN1cmluZyB0aGUgdGltZSBiZXR3ZWVuIHdo ZW4gdGhlIHZpcnR1YWwgbWFjaGluZQ0KZW50ZXJzIHRoZSBFQzIgInJ1bm5pbmciIHN0YXRlIGFu ZCB3aGVuIGl0IGlzIHBvc3NpYmxlIHRvIFNTSCBpbnRvIHRoZQ0KaW5zdGFuY2UuDQoNClRoaXMg d29yayBzdGFydGVkIGluIDIwMTcsIGFuZCBhcyBvZiB0aGUgZW5kIG9mIFNlcHRlbWJlciAyMDIx IHRoZSBGcmVlQlNEIGJvb3QNCnRpbWUgd2FzIHJlZHVjZWQgZnJvbSBhcHByb3hpbWF0ZWx5IDMw IHNlY29uZHMgdG8gYXBwcm94aW1hdGVseSAxNSBzZWNvbmRzLg0KDQpEdXJpbmcgMjAyMVE0LCBm dXJ0aGVyIGltcHJvdmVtZW50cyBoYXZlIHNoYXZlZCBtb3JlIHRpbWUgb2ZmIHRoZSBib290IHBy b2Nlc3MsDQp0YWtpbmcgaXQgZG93biB0byByb3VnaGx5IDEwIHNlY29uZHMuIEEgZnVydGhlciA0 IHNlY29uZHMgb2YgaW1wcm92ZW1lbnRzIGFyZQ0KaW4gcHJvY2Vzcy4NCg0KSW4gYWRkaXRpb24s IHRoZSB1c2VybGFuZCBib290IHByb2Nlc3MgaXMgbm93IGJlaW5nIHByb2ZpbGVkIHVzaW5nIFRT TE9HLA0KbWFraW5nIGl0IHBvc3NpYmxlIHRvIHNlZSBmbGFtZWNoYXJ0cyBvZiB0aGUgZW50aXJl IGJvb3QgcHJvY2VzczsgYW5kIHRoZQ0KZWMyLWJvb3QtYmVuY2ggdG9vbCBpcyBub3cgYWJsZSB0 byBnZW5lcmF0ZSBNUDQgdmlkZW9zIG9mIHRoZSBib290IHByb2Nlc3MgYnkNCnRha2luZyBzbmFw c2hvdHMgb2YgdGhlIEVDMiBWR0EgY29uc29sZS4NCg0KSXNzdWVzIGFyZSBsaXN0ZWQgb24gdGhl IHdpa2kgcGFnZSBhcyB0aGV5IGFyZSBpZGVudGlmaWVkOyB0aGUgd2lraSBwYWdlIGFsc28NCmhh cyBpbnN0cnVjdGlvbnMgZm9yIHBlcmZvcm1pbmcgcHJvZmlsaW5nLiBVc2VycyBhcmUgZW5jb3Vy YWdlZCB0byBwcm9maWxlIHRoZQ0KYm9vdCBwcm9jZXNzIG9uIHRoZWlyIG93biBzeXN0ZW1zLCBp biBjYXNlIHRoZXkgZXhwZXJpZW5jZSBkZWxheXMgd2hpY2ggZG9u4oCZdA0Kc2hvdyB1cCBvbiB0 aGUgc3lzdGVtIENvbGluIGlzIHVzaW5nIGZvciB0ZXN0aW5nLg0KDQpUaGlzIHdvcmsgaXMgc3Vw cG9ydGVkIGJ5IENvbGlu4oCZcyBGcmVlQlNEL0VDMiBQYXRyZW9uLg0KDQpTcG9uc29yOiBodHRw czovL3d3dy5wYXRyZW9uLmNvbS9jcGVyY2l2YQ0KDQrilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIENCg0KTExEQiBEZWJ1Z2dl ciBJbXByb3ZlbWVudHMNCg0KTGlua3M6DQpNb3JpdHogU3lzdGVtcyBQcm9qZWN0IERlc2NyaXB0 aW9uIFVSTDogaHR0cHM6Ly93d3cubW9yaXR6LnN5c3RlbXMvYmxvZy8NCmZyZWVic2Qta2dkYi1z dXBwb3J0LWluLWxsZGIvDQpQcm9ncmVzcyBSZXBvcnQgMyBVUkw6IGh0dHBzOi8vd3d3Lm1vcml0 ei5zeXN0ZW1zL2Jsb2cvDQpsbGRiLXNlcmlhbC1wb3J0LWNvbW11bmljYXRpb24tc3VwcG9ydC8N ClByb2dyZXNzIFJlcG9ydCA0IFVSTDogaHR0cHM6Ly93d3cubW9yaXR6LnN5c3RlbXMvYmxvZy8N CmxsZGItZnJlZWJzZC1rZXJuZWwtY29yZS1kdW1wLXN1cHBvcnQvDQpMTFZNIEdpdCBSZXBvc2l0 b3J5IFVSTDogaHR0cHM6Ly9naXRodWIuY29tL21vcml0ei1zeXN0ZW1zL2xsdm0tcHJvamVjdA0K bGliZmJzZHZtY29yZSBHaXQgUmVwb3NpdG9yeSBVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb3Jp dHotc3lzdGVtcy8NCmxpYmZic2R2bWNvcmUNCg0KQ29udGFjdDogS2FtaWwgUnl0YXJvd3NraSA8 a2FtaWxAbW9yaXR6LnN5c3RlbXM+DQpDb250YWN0OiBNaWNoYcWCIEfDs3JueSA8bWdvcm55QG1v cml0ei5zeXN0ZW1zPg0KDQpBY2NvcmRpbmcgdG8gdGhlIHVwc3RyZWFtIGRlc2NyaXB0aW9uLCAi TExEQiBpcyBhIG5leHQgZ2VuZXJhdGlvbiwNCmhpZ2gtcGVyZm9ybWFuY2UgZGVidWdnZXIuIEl0 IGlzIGJ1aWx0IGFzIGEgc2V0IG9mIHJldXNhYmxlIGNvbXBvbmVudHMgd2hpY2gNCmhpZ2hseSBs ZXZlcmFnZSBleGlzdGluZyBsaWJyYXJpZXMgaW4gdGhlIGxhcmdlciBMTFZNIFByb2plY3QsIHN1 Y2ggYXMgdGhlDQpDbGFuZyBleHByZXNzaW9uIHBhcnNlciBhbmQgTExWTSBkaXNhc3NlbWJsZXIu Ig0KDQpGcmVlQlNEIGluY2x1ZGVzIExMREIgaW4gdGhlIGJhc2Ugc3lzdGVtLiBBdCBwcmVzZW50 LCBpdCBoYXMgc29tZSBsaW1pdGF0aW9ucw0KY29tcGFyZWQgdG8gdGhlIEdOVSBHREIgZGVidWdn ZXIsIGFuZCBkb2VzIG5vdCB5ZXQgcHJvdmlkZSBhIGNvbXBsZXRlDQpyZXBsYWNlbWVudC4gVGhp cyBwcm9qZWN0IHNwYW5zIGZyb20gSnVseSAyMDIxIHRvIEphbnVhcnkgMjAyMiBhbmQgYWltcyB0 byBtYWtlDQpMTERCIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcgRnJlZUJTRCBrZXJuZWxzLg0KDQpU aGUgZWFybGllciBwYXJ0IG9mIHRoZSBwcm9qZWN0IHdhcyBmb2N1c2VkIG9uIGltcHJvdmluZyBj b21wYXRpYmlsaXR5IGJldHdlZW4NCkxMREIgYW5kIG90aGVyIHNlcnZlcnMgaW1wbGVtZW50aW5n IHRoZSBHREIgUmVtb3RlIFByb3RvY29sLiBUaGlzIHdhcyBmb2xsb3dlZA0KYnkgaW1wbGVtZW50 aW5nIGEgZnVsbHktZmVhdHVyZWQgc2VyaWFsIHBvcnQgc3VwcG9ydCBhbmQgdGhlbiBzdXBwb3J0 IGZvcg0KRnJlZUJTRCBrZXJuZWwgY29yZSBkdW1wcyAodm1jb3JlcykuDQoNClRoZSBMTERCIGNs aWVudCBnYWluZWQgbXVjaCBpbXByb3ZlZCBzdXBwb3J0IGZvciBjb25uZWN0aW5nIHRvIHRoZSBy ZW1vdGUNCnNlcnZlciBvdmVyIGEgc2VyaWFsIHBvcnQsIGFuZCB0aGUgTExEQiBzZXJ2ZXIgZ2Fp bmVkIHN1cHBvcnQgZm9yIGFjY2VwdGluZw0KY29tbXVuaWNhdGlvbiBvdmVyIGEgc2VyaWFsIHBv cnQuIFRoaXMgb3BlbmVkIHRoZSBwb3NzaWJpbGl0eSBvZiB1c2luZyBMTERCIHRvDQpkZWJ1ZyBl bWJlZGRlZCBkZXZpY2VzIHRoYXQgdXNlIHRoZSBSUzIzMiBpbnRlcmZhY2UuIEl0IGNhbiBhbHNv IGFpZCBkZWJ1Z2dpbmcNCmtlcm5lbHMgb24gcmVndWxhciBQQ3MgYXMgaXQgZG9lcyBub3QgcmVs eSBvbiB0aGUgbmV0d29yayBzdGFjay4NCg0KU3VwcG9ydCBmb3IgRnJlZUJTRCB2bWNvcmVzIGhh cyBhbHNvIGJlZW4gYWRkZWQgdG8gTExEQi4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZQ0KdG8gaW5z cGVjdCB0aGUgY3Jhc2hlZCBrZXJuZWwgc3RhdGUgd2l0aG91dCBoYXZpbmcgdG8gcmVzb3J0IHRv IEtHREIgb3INCm1hbnVhbGx5IGNvbnZlcnQgdGhlIHZtY29yZSBpbnRvIHRoZSBzdGFuZGFyZCBF TEYgZm9ybWF0IHN1cHBvcnRlZCBieSBMTERCLg0KDQpUaGUgaW50cm9kdWNlZCBjaGFuZ2VzIGFy ZSBleHBlY3RlZCB0byBiZSBzaGlwcGVkIHdpdGggTExEQiAxNC4wLg0KDQpTcG9uc29yOiBUaGUg RnJlZUJTRCBGb3VuZGF0aW9uDQoNCuKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgQ0KDQpOWFAgTFMxMDI4QS8xMDI3QSBTb0Mg c3VwcG9ydA0KDQpDb250YWN0OiBLb3JuZWwgRHVsxJliYSA8bWluZGFsQHNlbWloYWxmLmNvbT4N CkNvbnRhY3Q6IEFydHVyIFJvamVrIDxhckBzZW1paGFsZi5jb20+DQpDb250YWN0OiBIdWJlcnQg TWF6dXIgPGh1bUBzZW1paGFsZi5jb20+DQpDb250YWN0OiBXb2pjaWVjaCBNYWNlayA8d21hQHNl bWloYWxmLmNvbT4NCg0KVGhlIFNlbWloYWxmIHRlYW0gaGFzIGJlZW4gd29ya2luZyBvbiBhZGRp bmcgdGhlIEZyZWVCU0Qgc3VwcG9ydCBmb3IgdGhlIE5YUA0KTFMxMDI4QSBTb0MsIGFzIHdlbGwg YXMgaXRzIEdQVS1sZXNzIHZhcmlhbnQgKE5YUCBMUzEwMjdBKS4NCg0KTlhQIExTMTAyOEEvTFMx MDI3QSBTb0MgaXMgYSBkdWFsLWNvcmUgNjQtYml0IEFSTXY4IENvcnRleC1BNzIgYXBwbGljYXRp b24NCnByb2Nlc3NvciB3aXRoIGhpZ2gtc3BlZWQgcGVyaXBoZXJhbHMgc3VjaCBhcyAyIFRpbWUt U2Vuc2l0aXZlDQpOZXR3b3JraW5nLWNhcGFibGUgKFRTTikgRXRoZXJuZXQgY29udHJvbGxlcnMs IHF1YWQtcG9ydCBUU04tZW5hYmxlZCBzd2l0Y2gsDQpQQ0lFLCBTRC9NTUMsIFVTQjMuMCBhbmQg b3RoZXJzLg0KDQpUaGUgb3JpZ2luYWwgc3VwcG9ydCB3YXMgZXh0ZW5kZWQgaW4gdGhlIGZvbGxv d2luZyB3YXk6DQoNCiAg4oCiIEVORVRDIEV0aGVybmV0IGRyaXZlcg0KDQogICAgICDilqEgQWRk IHN1cHBvcnQgZm9yIFBIWSBpbnRlcnJ1cHRzDQoNCiAgICAgIOKWoSBGaXggVklEL21jYXN0IGFk ZHJlc3MgaGFzaCBjYWxjdWxhdGlvbg0KDQogICAgICDilqEgU2VyaWFsaXplIE1ESU8gdHJhbnNh Y3Rpb25zDQoNCiAgICAgIOKWoSBBbGxvdyBsb2FkaW5nIGRyaXZlciBhcyBhIG1vZHVsZQ0KDQog IOKAoiBJbXByb3ZlbWVudHMgaW4gdGhlIEZTTCBTREhDSSBkcml2ZXINCg0KICAgICAg4pahIEFk ZCBzdXBwb3J0IGZvciBIUzIwMC9IUzQwMCBtb2Rlcw0KDQogICAgICDilqEgQWRkIGZ1bGwgc3Vw cG9ydCBmb3Igc29mdHdhcmUgcmVzZXQNCg0KICAgICAg4pahIFByb3ZpZGUgbW9yZSBhY2N1cmF0 ZSBjbGsgY2FsY3VsYXRpb24NCg0KICAgICAg4pahIEltcGxlbWVudCBwdWxzZSB3aWR0aCBkZXRl Y3Rpb24gZXJyYXRhDQoNCiAgICAgIOKWoSBGaXggdmNjcSByZWNvbmZpZ3VyYXRpb24NCg0KICDi gKIgRkxFWCBTUEkgTk9SIGNvbnRyb2xsZXIgZHJpdmVyDQoNCiAg4oCiIEFkZGl0aW9uYWwgZmVh dHVyZXM6DQoNCiAgICAgIOKWoSBUTVA0NjEgdGhlcm1hbCBzZW5zb3IgZHJpdmVyDQoNCiAgICAg IOKWoSBQQ0Y4NTA2MyBSVEMgZHJpdmVyIGRyaXZlcg0KDQogICAgICDilqEgVENBNjQwOCBJMkMg R1BJTyBleHBhbmRlciBkcml2ZXINCg0KVE9ETzoNCg0KICDigKIgSW1wcm92ZSBNTUMgSFMyMDAv SFM0MDAgc3VwcG9ydCBmb3Igb3RoZXIgU29DcyB1c2luZyB0aGUgRlNMIFNESENJDQogICAgY29u dHJvbGxlci4NCg0KU3BvbnNvcjogQWxzdG9tIEdyb3VwDQoNCuKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgQ0KDQpzY2hlZF9n ZXRjcHUoMiksIG1lbWJhcnJpZXIoMiksIGFuZCByc2VxKDIpIHN5c2NhbGxzDQoNCkNvbnRhY3Q6 IEtvbnN0YW50aW4gQmVsb3Vzb3YgPGtpYkBGcmVlQlNELm9yZz4NCg0KTGlua3M6DQpMaW51eCBt YW5wYWdlIGZvciBtZW1iYXJyaWVyKDIpIFVSTDogaHR0cHM6Ly9raWIua2lldi51YS9raWIvbWVt YmFycmllci5wZGYNCm1lbWJhcnJpZXIoMikgaW1wbGVtZW50YXRpb24gVVJMOiBodHRwczovL3Jl dmlld3MuZnJlZWJzZC5vcmcvRDMyMzYwDQpMaW51eCBtYW5wYWdlIGZvciByc2VxKDIpIFVSTDog aHR0cHM6Ly9raWIua2lldi51YS9raWIvcnNlcS5wZGYNCnJzZXEoMikgYW5kIHVzZXJzcGFjZSBi aW5kaW5ncyBpbXBsZW1lbnRhdGlvbiBVUkw6IGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy8N CkQzMjUwNQ0KDQpMaW51eCBwcm92aWRlcyBhIHNldCBvZiBzeXNjYWxscyB0aGF0IGFsbG93IHRv IGRldmVsb3AgbW9zdGx5IHN5c2NhbGwtbGVzcw0Kc2NhbGFibGUgYWxnb3JpdGhtcyBpbiB1c2Vy c3BhY2UuIFRoZSBtZWNoYW5pc21zIGFyZSBiYXNlZCBvbiBvcHRpbWlzdGljDQpleGVjdXRpb24g dXNpbmcgQ1BVLWxvY2FsIGRhdGEgd2l0aCB0aGUgYXNzdW1wdGlvbiB0aGF0IHJhcmUgZXZlbnRz IGxpa2UNCmNvbnRleHQgc3dpdGNoZXMgb3Igc2lnbmFsIGRlbGl2ZXJ5IGRvIG5vdCBvY2N1ciBm b3IgdGhlIGdpdmVuIGNhbGN1bGF0aW9uLCBhbmQNCmlmIHRoZXkgZG8gb2NjdXIsIHJvbGxiYWNr IGFuZCByZXN0YXJ0IGlzIHBlcmZvcm1lZC4gVGhpcyB2ZXJ5IGhpZ2gtbGV2ZWwNCmFwcHJvYWNo IGlzIHVzZWQsIGFzIEkgdW5kZXJzdGFuZCwgZm9yIGltcGxlbWVudGF0aW9uIG9mIHRvb2xzIGxp a2UgVVJDVSwgZmFzdA0KbWFsbG9jIGFsbG9jYXRvcnMgKHRjbWFsbG9jKSBhbmQgb3RoZXIgdXNl cnNwYWNlIGluZnJhc3RydWN0dXJlIHByb2plY3RzIGFpbWVkDQphdCBsYXJnZSBwYXJ0aXRpb25l ZCBtYWNoaW5lcy4NCg0KRm9yIGluc3RhbmNlLCBzY2hlZF9nZXRjcHUoMikgc3lzY2FsbCByZXR1 cm5zIHRoZSBDUFUgaWQgb2YgdGhlIENQVSB3aGVyZSB0aGUNCmN1cnJlbnQgdGhyZWFkIGlzIGN1 cnJlbnRseSBleGVjdXRpbmcuIE9uIGFtZDY0LCBpZiBhdmFpbGFibGUsIHdlIHVzZSBhIFJEVFND UA0Kb3IgUkRQSUQgaW5zdHJ1Y3Rpb24gdG8gcXVlcnkgdGhlIENQVSBpZCB3aXRob3V0IGNoYW5n aW5nIENQVSBtb2RlLCBvdGhlcndpc2UNCnRoaXMgaXMgYSBsaWdodC13ZWlnaHQgc3lzY2FsbC4g T2YgY291cnNlLCB0aGUgYW5zd2VyIHByb3ZpZGVkIGlzIG9ic29sZXRlIHRoZQ0KbW9tZW50IGl0 IGlzIGNyZWF0ZWQsIGV2ZW4gYmVmb3JlIGl0IGlzIHJldHVybmVkIHRvIHVzZXJzcGFjZS4gQnV0 IGl0IGFsbG93cw0Kc2VlZGluZyB2YWx1ZXMgaW4gc29tZSBzdHJ1Y3R1cmVzIHRoYXQgYXJlIHZh bGlkIGZvciBhIGxvbmcgdGltZSAoYXQgdGhlIENQVQ0Kc3BlZWQgc2NhbGUpIGFuZCBhcmUgYXV0 b21hdGljYWxseSBjb3JyZWN0ZWQgb24gZXhjZXB0aW9uYWwgY29udHJvbCBmbG93IGV2ZW50cw0K bGlrZSBjb250ZXh0IHN3aXRjaGVzLCBhbmQgdXNlcnNwYWNlIGNhbiBlaXRoZXIgZGV0ZWN0IGFu ZCByb2xsYmFjayBvciBzeW5jIGFuZA0Kcm9sbGJhY2sgd2l0aCB0aGUgZXhjZXB0aW9ucy4NCg0K VGhlcmUgYXJlIHR3byBjb3JuZXJzdG9uZSBzeXNjYWxscyB0aGF0IGFsbG93IHVzZXJzcGFjZSB0 byBpbXBsZW1lbnQgdGhlc2UNCmVmZmljaWVudCBhbGdvcml0aG1zOiBtZW1iYXJyaWVyKDIpIGFu ZCByc2VxKDIpLg0KDQpNZW1iYXJyaWVyIGlzIGEgZmFjaWxpdHkgdGhhdCBoZWxwcyBpbXBsZW1l bnRpbmcgZmFzdCBDUFUgb3JkZXJpbmcgYmFycmllcnMsDQp0eXBpY2FsbHkgdXNlZCBmb3IgYXN5 bW1ldHJpYy9iaWFzZWQgbG9ja2luZy4gSW4gdGhlc2UgbG9jayBpbXBsZW1lbnRhdGlvbg0Kc2No ZW1lcywgdGhlIG93bmVyIG9mIHRoZSBvYmplY3Qgb2Z0ZW4gYXNzdW1lcyB0aGF0IHRoZXJlIGFy ZSBjb250ZW5kZXJzLw0KcGFyYWxsZWwgdGhyZWFkcyB0aGF0IG5lZWQgY29vcmRpbmF0aW5nIHdp dGguIElmIHNvbWUgdGhyZWFkIHN0YXJ0cyBhY2Nlc3NpbmcNCnRoZSBzYW1lIHJlc291cmNlLCB0 aGVuIGl0IGlzIGl0cyBkdXR5IHRvIGVuc3VyZSBjb3JyZWN0bmVzcy4gRXhhbXBsZXMgb2YNCid0 cmFwcycgdGhhdCBmYXN0IGNvZGUgcGF0aCB1dGlsaXplIGFyZSByZWFkcyBmcm9tIGEgZGVkaWNh dGVkIHBhZ2UgdGhhdCBpcw0KdW5tYXBwZWQgYnkgY29udGVuZGVycywgdG8gc3dpdGNoIHRoZSBm YXN0IHBhdGggdG8gdGhlIHNsb3cgb25lLiBPciB3ZSBjb3VsZA0Kc2VuZCBhIHNpZ25hbCB0byBh bGwgdGhyZWFkcyB0aGF0IHBvdGVudGlhbGx5IGhhdmUgYWNjZXNzIHRvIHRoYXQgb2JqZWN0LCB0 bw0KaW5zZXJ0IGEgYmFycmllci4gT3Igd2UgY2FuIHVzZSB0aGUgbWVtYmFycmllcigyKSBmYWNp bGl0eSwgd2hpY2ggaW5jdXJzDQpzaWduaWZpY2FudGx5IGxlc3Mgb3ZlcmhlYWQgdGhhbiBzaWdu YWxsaW5nIGFsbCB0aHJlYWRzLg0KDQpNZW1iYXJyaWVyKDIpIGluc2VydHMgYSBiYXJyaWVyLCB3 aGljaCBpcyB0aGUgdHlwaWNhbCB1bmRlcmx5aW5nIGhhcmR3YXJlDQpvcGVyYXRpb24gdG8gZW5z dXJlIG9yZGVyaW5nLCBpbnRvIHRoZSBzcGVjaWZpZWQgc2V0IG9mIENQVXMsIGlmIHRoZXNlIENQ VXMgYXJlDQpleGVjdXRpbmcgdGhlIHNwZWNpZmllZCB0aHJlYWQuIElmIHRoZXNlIENQVXMgYXJl IG5vdCBleGVjdXRpbmcgdGhlIHRhcmdldGVkDQp0aHJlYWRzLCBpdCBpcyBhc3N1bWVkIHRoYXQg c2VxdWVudGlhbCBjb25zaXN0ZW5jeSBndWFyYW50ZWVzIGZyb20gdGhlIGNvbnRleHQNCnN3aXRj aCBhcmUgZW5vdWdoIHRvIGZ1bGZpbGwgdGhlIHJlcXVpcmVtZW50IG9mIG1lbWJhcnJpZXIoMiku IE92ZXJhbGwsIHRoZQ0KZmFzdCBwYXRoIGNhbiBiZSBpbXBsZW1lbnRlZCB3aXRob3V0IHNsb3cg aW5zdHJ1Y3Rpb25zLCBhbmQgdGhlIHNsb3cgcGF0aA0KaW5qZWN0cyByZXF1aXJlZCBmZW5jZXMg aW50byB0aGUgZmFzdCBwYXRoIGF0IHRoZSBjb3N0IG9mIElQSS4NCg0KVGhlIGZhY2lsaXR5IHRv IGRldGVjdCBleGNlcHRpb25hbCBjb25kaXRpb25zIGluIHRoZSB1c2Vyc3BhY2UgdGhyZWFkIGV4 ZWN1dGlvbg0Kd2FzIGRldmVsb3BlZCBpbiBMaW51eCBhbmQgY2FsbGVkIHJzZXEoMikuIEl0IGlz IGEgZmVhdHVyZSBvZnRlbiBjYWxsZWQNClJlc3RhcnRhYmxlIEF0b21pYyBTZXF1ZW5jZXMsIHdo aWNoIGV4cGxhaW5zIHRoZSBhY3JvbnltLiBUaGUgYWJpbGl0eSB0bw0KY2hlYXBseSBkbyB0aGF0 IGFsbG93cyBjb2RlIGxvbmdlciB0aGFuIGEgc2luZ2xlIGluc3RydWN0aW9uIHRvIGV4ZWN1dGUN CmF0b21pY2FsbHksIHdpdGhvdXQgdGhlIG5lZWQgdG8gcHJvcG9zZSBhbmQgaW1wbGVtZW50IHVu c2FmZSBvcGVyYXRpb25zIGxpa2UNCmRpc2FibGluZyBwcmVlbXB0aW9uLCB3aGljaCBpcyBub3Qg ZmVhc2libGUgZm9yIHVzZXJzcGFjZS4gRm9yIGluc3RhbmNlLCBjb2RlDQptaWdodCB1c2UgQ1BV LWxvY2FsIHJlc291cmNlcywgd2hpY2ggb3RoZXJ3aXNlIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRo IGNvbnRleHQNCnN3aXRjaGVzLiBUaGVyZSBjYW5ub3QgYmUgYW4gYW5hbG9nIG9mIGNyaXRpY2Fs X2VudGVyKDkpIGluIHVzZXJzcGFjZS4gKEENCmZhY2lsaXR5IHRvIGNoZWFwbHkgYmxvY2sgc2ln bmFsIGRlbGl2ZXJ5IGV4aXN0cyBpbiBGcmVlQlNELCBzZWUgc2lnZmFzdGJsb2NrDQooMiksIGJ1 dCBjb3JyZWN0bHkgdXNpbmcgaXQgaXMgcHJvdmFibHkgdG9vIGhhcmQgdG8gaW1wbGVtZW50IGlu DQpnZW5lcmFsLXB1cnBvc2UgY29kZSwgZXNwLiBiZWNhdXNlIGl0IHJlcXVpcmVzIHZlcnNpb24t ZGVwZW5kZW50IGNvb3JkaW5hdGlvbg0Kd2l0aCBydGRsIGFuZCBsaWJ0aHIuKQ0KDQpyc2VxKDIp IHRha2VzIHBlci10aHJlYWQgYmxvY2sgb2YgbWVtb3J5LCB3aGVyZSB0aGUgdGhyZWFkIHdyaXRl cyB0aGUgY3VycmVudA0KQ1BVIGlkIChzZWUgc2NoZWRfZ2V0Y3B1KDIpKSBhbmQgc3BlY2lmaWVz IHRoZSBibG9jayBvZiBjcml0aWNhbCBjb2RlIHRoYXQgbXVzdA0KYmUgdW53b3VuZCBpZiBhbiBl eGNlcHRpb25hbCBzaXR1YXRpb24gbGlrZSBhIGNvbnRleHQgc3dpdGNoIG9jY3VycmVkIHdoaWxl IHRoZQ0KYmxvY2sgd2FzIGV4ZWN1dGluZy4gVGhlIGZhc3QgY29kZSBwYXRoIHVzZXMgcGVyLWNw dSBkYXRhIGFuZCB0eXBpY2FsbHkgZG9lcw0Kbm90IG5lZWQgYW55IGNvcnJlY3Rpb25zLCBidXQg d291bGQgYSBjb250ZXh0IHN3aXRjaCBvY2N1ciwgdHJhbnNmZXIgb2YgY29udHJvbA0KdG8gdGhl IGFib3J0IGhhbmRsZXIgaW5mb3JtcyB1c2Vyc3BhY2UgYWJvdXQgdGhlIGV2ZW50LiBTbyBpbnN0 ZWFkIG9mIGRpc2FibGluZw0KY29udGV4dCBzd2l0Y2hlcywgY29kZSBjYW4gY2hlYXBseSBjaGVj ayBmb3Igb25lIGFmdGVyIHRoZSBjYWxjdWxhdGlvbiBhbmQNCnJldHJ5IGlmIG5lZWRlZC4NCg0K QW4gaW50ZXJlc3RpbmcgcnNlcSgyKSBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgaXMgdGhhdCBpdCBp cyBpbXBvc3NpYmxlIChhbmQgbm90DQpuZWVkZWQpIHRvIGFjY2Vzcy91cGRhdGUgcnNlcSBzdHJ1 Y3R1cmVzIGZyb20ga2VybmVsIGR1cmluZyB0aGUgYWN0dWFsIGNvbnRleHQNCnN3aXRjaCwgYmVj YXVzZSB3ZSBjYW5ub3QgYWNjZXNzIHVzZXJzcGFjZSBmcm9tIHVuZGVyIGEgc3BpbmxvY2suIElu IG90aGVyDQp3b3JkcywgdGhyZWFkcyB1c2luZyByc2VxIGRvIG5vdCBpbmN1ciBhbnkgcGVyZm9y bWFuY2UgY29zdCBmcm9tIHN5c3RlbS1nbG9iYWwNCmNvbnRleHQgc3dpdGNoZXMuIEluc3RlYWQs IGlmIHRoZSBwcm9jZXNzIHJlZ2lzdGVyZWQgZm9yIHJzZXEoMiksIG9uIGFueSByZXR1cm4NCnRv IHVzZXIgbW9kZSB3ZSBjaGVjayBpZiBhbnkgZXhjZXB0aW9uYWwgZXZlbnRzIGhhcHBlbmVkIHdo aWxlIHRoZSB0aHJlYWQgd2FzDQppbiB0aGUga2VybmVsIChjb250ZXh0IHN3aXRjaGVzIG1heSBo YXBwZW4gb25seSB3aGlsZSB0aGUgdGhyZWFkIGlzIGluIGtlcm5lbA0KbW9kZSksIGFuZCBpZiBh IGNvbnRleHQgc3dpdGNoIGluZGVlZCBvY2N1cmVkLCB3ZSBmaXJlIGFuIGFzdCB0byBjaGVjayB3 aGV0aGVyDQp0aGUgcHJvZ3JhbSBjb3VudGVyIGlzIGluc2lkZSB0aGUgY3JpdGljYWwgc2VjdGlv biBhbmQganVtcCB0byB0aGUgYWJvcnQNCmhhbmRsZXIgaWYgaXQgaXMuDQoNClRoZSBpbXBsZW1l bnRhdGlvbnMgb2YgbWVtYmFycmllcigyKSBhbmQgcnNlcSgyKSBhcmUgY2xlYW4tcm9vbTogSSB1 c2VkIExpbnV4DQptYW51YWwgcGFnZXMgYXMgdGhlIHJlZmVyZW5jZSBhbmQgcHVibGljIGRpc2N1 c3Npb25zIG9mIHRoZSBmZWF0dXJlcyBmb3INCmNsYXJpZnlpbmcgY29ybmVyIGNhc2VzLiBPbiBM aW51eC9nbGliYywgdGhlcmUgd2FzIG5vIHN0YWJsZSBnbGliYyBpbnRlcmZhY2UgdG8NCnRoZSBy c2VxIGZhY2lsaXR5LiBPbmUgcHJvcG9zZWQgaW50ZWdyYXRpb24gd2FzIGNvbW1pdHRlZCB0aGVu IHJldmVydGVkIGZyb20NCmdsaWJjLiBJdCBtaWdodCBiZSBwcnVkZW50IHRvIHdhaXQgc29tZSBt b3JlIGZvciB0aGUgcnNlcSgyKSBpbnRlcmZhY2UgdG8NCnN0YWJpbGl6ZSBpbiBnbGliYyBiZWZv cmUgcHJvdmlkaW5nIGl0IGluIG91ciBsaWJjIG9yIHRvIHJlbHkgb24gdGlnaHQNCmludGVncmF0 aW9uIGJldHdlZW4ga2VybmVsIGFuZCB1c2Vyc3BhY2UgaW4gb3VyIGJhc2Ugc3lzdGVtLCBhbmQg dXNlIEFCSSB0cmlja3MNCmxpa2Ugc3ltYm9sIHZlcnNpb25pbmcgdG8gZXZvbHZlIHRoZSBpbnRl cmZhY2UuIFRoZXJlIGlzIG5vIGdvYWwgdG8gYmUgMTAwJQ0KY29tcGF0aWJsZSB3aXRoIExpbnV4 IGFueXdheS4NCg0KU3BvbnNvcjogVGhlIEZyZWVCU0QgRm91bmRhdGlvbg0KDQrilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIEN Cg0KQmFzZSBTeXN0ZW0gT3BlblNTSCBVcGRhdGUNCg0KTGlua3M6DQpPcGVuU1NIIFVSTDogaHR0 cHM6Ly93d3cub3BlbnNzaC5jb20vDQpBbm5vdW5jZW1lbnQgdG8gZnJlZWJzZC1zZWN1cml0eUAg VVJMOiBodHRwczovL2xpc3RzLmZyZWVic2Qub3JnL3BpcGVybWFpbC8NCmZyZWVic2Qtc2VjdXJp dHkvMjAyMS1TZXB0ZW1iZXIvMDEwNDczLmh0bWwNCg0KQ29udGFjdDogRWQgTWFzdGUgPGVtYXN0 ZUBmcmVlYnNkLm9yZz4NCg0KT3BlblNTSCwgYSBzdWl0ZSBvZiByZW1vdGUgbG9naW4gYW5kIGZp bGUgdHJhbnNmZXIgdG9vbHMsIHdhcyB1cGRhdGVkIGZyb20NCnZlcnNpb24gOC43cDEgdG8gOC44 cDEgaW4gdGhlIEZyZWVCU0QgYmFzZSBzeXN0ZW0uDQoNCk5PVEU6IE9wZW5TU0ggOC44cDEgZGlz YWJsZXMgdGhlIHNzaC1yc2Egc2lnbmF0dXJlIHNjaGVtZSBieSBkZWZhdWx0LiBGb3IgbW9yZQ0K aW5mb3JtYXRpb24gcGxlYXNlIHNlZSB0aGUgSW1wb3J0YW50IG5vdGUgZm9yIGZ1dHVyZSBGcmVl QlNEIGJhc2Ugc3lzdGVtDQpPcGVuU1NIIHVwZGF0ZSBtYWlsaW5nIGxpc3QgcG9zdC4NCg0KT3Bl blNTSCBzdXBwb3J0cyBGSURPL1UyRiBkZXZpY2VzLCBhbmQgc3VwcG9ydCBpcyBub3cgZW5hYmxl ZCBpbiB0aGUgYmFzZQ0Kc3lzdGVtLg0KDQpOZXh0IHN0ZXBzIGluY2x1ZGUgaW50ZWdyYXRpbmcg VTJGIGtleSBkZXZkIHJ1bGVzIGludG8gdGhlIGJhc2Ugc3lzdGVtLCBhbmQNCm1lcmdpbmcgdGhl IHVwZGF0ZWQgT3BlblNTSCBhbmQgRklETy9VMkYgc3VwcG9ydCB0byBzdGFibGUgYnJhbmNoZXMu DQoNClNwb25zb3I6IFRoZSBGcmVlQlNEIEZvdW5kYXRpb24NCg0K4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSBDQoNClZEU08g b24gYW1kNjQNCg0KQ29udGFjdDogS29uc3RhbnRpbiBCZWxvdXNvdiA8a2liQEZyZWVCU0Qub3Jn Pg0KDQpBIFZEU08sIG9yIFZpcnR1YWwgRHluYW1pYyBTaGFyZWQgT2JqZWN0LCBpcyBhIHNoYXJl ZCBvYmplY3QgKG1vcmUgY29tbW9ubHkNCmNhbGxlZCBkeW5hbWljIGxpYnJhcnkpIHRoYXQgaXMg aW5zZXJ0ZWQgaW50byB0aGUgZXhlY3V0ZWQgaW1hZ2UgYnkgYSBqb2ludA0KZWZmb3J0IG9mIHRo ZSBrZXJuZWwgYW5kIHRoZSBkeW5hbWljIGxpbmtlci4gSXQgZG9lcyBub3QgZXhpc3RzIG9uIGRp c2sgYXMgYQ0Kc3RhbmRhbG9uZSAuc28sIGFuZCB0aGVyZSBhcmUgbm8gaW5zdHJ1Y3Rpb25zIGlu IHRoZSBFTEYgZm9ybWF0IHRoYXQgY2F1c2UgdGhlDQppbnNlcnRpb24uIEl0IGlzIGRvbmUgYnkg dGhlIHN5c3RlbSB0byBpbXBsZW1lbnQgc29tZSBmdW5jdGlvbmFsaXR5IGZvciB0aGUgQw0KcnVu dGltZSBpbXBsZW1lbnRhdGlvbiBjb21wb25lbnRzLg0KDQpGcmVlQlNEIGFscmVhZHkgaGFzIGEg bG90IG9mIGZlYXR1cmVzIHR5cGljYWxseSBkb25lIHVzaW5nIFZEU08gKGluIExpbnV4KSwgYnV0 DQpyZWFsbHkgbm90IHJlcXVpcmluZyB0aGF0IGNvbXBsaWNhdGlvbi4gVGhlIG1haW4gcmVhc29u IHdoeSBpdCBpcyBwb3NzaWJsZSBpcw0KdGhlIG9mdGVuIG1lbnRpb25lZCBjby1ldm9sdXRpb24g b2YgdGhlIGtlcm5lbCBhbmQgQyBydW50aW1lLiBXZSBjYW4gbmF0dXJhbGx5DQppbnRyb2R1Y2Ug ZmVhdHVyZXMgdGhhdCByZXF1aXJlIGltcGxlbWVudGF0aW9uIGJvdGggaW4ga2VybmVsLCBhbmQg c3VwcG9ydCBpbg0KdGhlIHVzZXJzcGFjZSBwYXJ0cywgc2luY2UgRnJlZUJTRCBpcyBkZXZlbG9w ZWQgYXMgYSB3aG9sZS4gU3VycHJpc2luZ2x5LCBpdA0KYWxzbyBhbGxvd3MgdGhlIGtlcm5lbCBh bmQgZHluYW1pYyBsaW5rZXIgdG8ga25vdyBtdWNoIGxlc3MgKGFuZCBub3QgZW5mb3JjZQ0KYW55 dGhpbmcpIGFib3V0IHVzZXJzcGFjZSBjb25zdW1lcnMgb2YgaW50ZXJmYWNlcy4NCg0KRm9yIGlu c3RhbmNlLCBhIHN5c2NhbGwtbGVzcyB3YWxsIGNsb2NrIHdhcyBpbXBsZW1lbnRlZCBsb25nIGFn bywgYnkgdGhlIGtlcm5lbA0KcHJvdmlkaW5nIGEgdGltZSBoYW5kcyBibG9iIGluIHRoZSBzaGFy ZWQgcGFnZSwgYW5kIHRoZSBDIGxpYnJhcnkga25vd2luZyBhYm91dA0KaXRzIGxvY2F0aW9uIGFu ZCB0aGUgc3VwcG9ydGVkIGFsZ29yaXRobXMuIFRoZXJlIGlzIG5vIG5lZWQgZm9yIGEgVkRTTyB0 aGF0DQppbnRlcnBvc2VzIHNvbWUgbGliYyBzeW1ib2xzIG9yIHByb3ZpZGVzIHNlcnZpY2VzIHRo YXQgYXJlIG5hbWVkIGJ5IGtub3duDQpzeW1ib2xzIHRvIHVzZXJsYW5kLg0KDQpGcm9tIGFsbCB0 aGUgeWVhcnMgb2YgZXhwZXJpZW5jZSB3aXRoIHRoaXMgcHNldWRvLVZEU08gYXBwcm9hY2gsIHRo ZSBvbmx5DQpmZWF0dXJlIHRoYXQgd2FzIGltcG9zc2libGUgdG8gaW1wbGVtZW50IHdpdGhvdXQg cHJvdmlkaW5nIHJlYWwgVkRTTyBzdXBwb3J0DQp3YXMgdGhlIHNpZ25hbCB0cmFtcG9saW5lIERX QVJGIGFubm90YXRpb25zLCBmb3IgdGhlIGJlbmVmaXQgb2Ygc3RhY2sNCnVud2luZGVycy4NCg0K V2hlbiB0aGUga2VybmVsIGRlbGl2ZXJzIHNpZ25hbCB0byB1c2VybGFuZCwgaXQgY2hhbmdlcyBz b21lIGtleSByZWdpc3RlcnMNCihsaWtlIHRoZSBpbnN0cnVjdGlvbiBwb2ludGVyLCB0aGUgc3Rh Y2sgcG9pbnRlciwgYW5kIHdoYXRldmVyIGVsc2UgaXMgbmVlZGVkDQpieSB0aGUgYXJjaGl0ZWN0 dXJlKSBhbmQgcHVzaGVzIHRoZSBzYXZlZCBpbWFnZSBvZiB0aGUgd2hvbGUgdXNlcm1vZGUgQ1BV IHN0YXRlDQooY29udGV4dCkgb250byB0aGUgdXNlciBzdGFjay4gVGhlbiwgY29udHJvbCBpcyBw YXNzZWQgdG8gYSBzbWFsbCBwaWVjZSBvZiBjb2RlDQpsb2NhdGVkIGluIHRoZSBzaGFyZWQgcGFn ZSAoc2lnbmFsIHRyYW1wb2xpbmUpLCB3aGljaCBjYWxscyB0aGUgdXNlciBoYW5kbGVyDQpmdW5j dGlvbiBhbmQgb24gcmV0dXJuIGZyb20gdGhlIGhhbmRsZXIgaXNzdWVzIGEgc2lncmV0dXJuKDIp IHN5c2NhbGwgdG8gcmVsb2FkDQp0aGUgb2xkIGNvbnRleHQuDQoNCkZyb20gdGhpcyBkZXNjcmlw dGlvbiwgaXQgaXMgY2xlYXIgdGhhdCB0aGUgc3RhdGUgb2YgdGhlIG1hY2hpbmUgZHVyaW5nDQp0 cmFtcG9saW5lIGV4ZWN1dGlvbiBpcyBxdWl0ZSBkaWZmZXJlbnQgZnJvbSB0aGUgbm9ybWFsIEMg Y2FsbGluZyBmcmFtZXMuDQpVbndpbmRlcnMgdGhhdCBoYW5kbGUgdGhpbmdzIGxpa2UgQysrIGV4 Y2VwdGlvbnMsIFJ1c3QgcGFuaWNzLCBvciBvdGhlciBzaW1pbGFyDQptZWNoYW5pc21zIGluIHNw ZWNpZmljIGxhbmd1YWdlIHJ1bnRpbWVzLCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpYWxu ZXNzIG9mDQp0aGUgdHJhbXBvbGluZSBmcmFtZS4gVGhlIGN1cnJlbnQgYXBwcm9hY2ggaXMgdG8g aGFyZGNvZGUgdGhlIGRldGVjdGlvbiBvZiB0aGUNCnRyYW1wb2xpbmUsIGUuZy4gYnkgbWF0Y2hp bmcgdGhlIGluc3RydWN0aW9uIHBvaW50ZXIgYWdhaW5zdCBzeXNjdGwNCmtlcm4ucHJvYy5zaWd0 cmFtcC4NCg0KRFdBUkYgYW5ub3RhdGlvbnMgYXJlIGVub3VnaCB0byBwcm92aWRlIHRoZSByZXF1 aXJlZCBpbmZvcm1hdGlvbiB0byB1bndpbmRlcnMNCnRvIG1ha2UgdGhlIHRyYW1wb2xpbmUgZnJh bWUgbm90IHNwZWNpYWwgYW55bW9yZSwgYnV0IHRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlcmUNCmlz IG5vIHdheSBmb3IgdW53aW5kZXJzIHRvIGZpbmQgdGhlIGFubm90YXRpb24gd2l0aG91dCBpbnRy b2R1Y2luZyBldmVuIG1vcmUNCnNwZWNpYWxuZXNzLiBJbnN0ZWFkLCB3ZSBjYW4gaW5zZXJ0IGEg VkRTTyB0aGF0IG9ubHkgc2VydmVzIHRvIGFwcGVhciBpbiB0aGUNCmVudW1lcmF0aW9uIG9mIERT T3MgbG9hZGVkIGludG8gdGhlIHByb2Nlc3MsIHdpdGggZWl0aGVyIGRsX2l0ZXJhdGVfcGhkcigz KQ0KKGluLXByb2Nlc3MpIG9yIHJfZGVidWcgKHJlbW90ZSksIHdpdGggUFRfR05VX0VIX0ZSQU1F IGhlYWRlciBwb2ludGluZyB0byB0aGUNCnJvb3Qgb2YgRFdBUkYgaW5mby4NCg0KVGhpcyBpcyBl eGFjdGx5IHdoYXQgdGhlIFZEU08gb24gRnJlZUJTRCBkb2VzOiBpdCB3cmFwcyBzaWduYWwgdHJh bXBvbGluZSBiaXRzDQphbmQgdGhlaXIgRFdBUkYgYW5ub3RhdGlvbiAoLmNmaSkgaW50byBhIHNo YXJlZCBvYmplY3QsIHdoaWNoIGlzIHB1dCBpbnRvIHRoZQ0Kc2hhcmVkIHBhZ2UgYW5kIGxpbmtl ZCBieSBydGxkKDEpIGludG8gdGhlIHNldCBvZiBwcmVsb2FkZWQgb2JqZWN0cyB1cG9uIGltYWdl DQphY3RpdmF0aW9uLg0KDQpFZmZvcnRzIHdlcmUgbWFkZSB0byBzdHJpcCBhcyBtYW55IHVubmVl ZGVkIHN0cnVjdHVyZXMgYW5kIGFzIG11Y2ggcGFkZGluZyBhcw0KcG9zc2libGUgZnJvbSB0aGUg VkRTTyBpbWFnZSwgYmVjYXVzZSBpdCBjb25zdW1lcyBzcGFjZSBpbiB0aGUgc2hhcmVkIHBhZ2Uu IEl0DQp3YXMgcHVzaGVkIGFzIGZhciBhcyB0aGUgY29tbW9uIGRlbm9taW5hdG9yIG9mIGxsZCBh bmQgbGQuYmZkIGFsbG93ZWQsIHdpdGgNCnNldmVyYWwgdHJpY2tzIGRvbmUgYnkgbGlua2VyIHNj cmlwdHMgYW5kIHNvbWUgdXNlIG9mIHNlZW1pbmdseSB1bmRvY3VtZW50ZWQNCmxpbmtlciBvcHRp b25zLg0KDQpXZSBuZWVkIGF0IGxlYXN0IHR3byBWRFNPcyBmb3IgYW1kNjQ6IGEgNjQtYml0IG9u ZSBmb3IgbmF0aXZlIGJpbmFyaWVzIGFuZCBhDQozMi1iaXQgb25lIGZvciBpYTMyIGJpbmFyaWVz LiBXaXRoIHRoZSBzaXplIG9mIGVhY2ggVkRTTyBhcm91bmQgMS41S0IsIHNwYWNlDQpiZWNvbWVz IHJlYWxseSB0aWdodCBpbiB0aGUgc2hhcmVkIHBhZ2UsIHdoaWNoIG5lZWRzIHNwYWNlIGZvciBv dGhlciBzdHVmZiBhcw0Kd2VsbCwgbGlrZSB0aW1laGFuZHMgb3IgcmFuZG9tIGdlbmVyYXRvciBz ZWVkcy4NCg0KQnVpbGQgc2NyaXB0cyBlbmZvcmNlIHRoYXQgVkRTT3MgZG8gbm90IGdyb3cgbGFy Z2VyIHRoYW4gMks7IGlmIHRoZXkgZG8sIHdlDQpuZWVkIHRvIGV4dGVuZCBzaGFyZWQgcGFnZSB0 byBiZWNvbWUgYXQgbGVhc3QgdHdvIHNoYXJlZCBwYWdlcy4gU2NyaXB0cyBhbHNvDQplbmZvcmNl IHRoYXQgVkRTTyBhcmUgcHVyZSBwb3NpdGlvbi1pbmRlcGVuZGVudCwgbm90IHJlcXVpcmluZyBy ZWxvY2F0aW9ucyBmb3INCmVpdGhlciBjb2RlIG9yIG1ldGFkYXRhICguY2ZpKS4NCg0KU3BvbnNv cjogVGhlIEZyZWVCU0QgRm91bmRhdGlvbg0KDQrilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIENCg0KS2VybmVsDQoNClVwZGF0 ZXMgdG8ga2VybmVsIHN1YnN5c3RlbXMvZmVhdHVyZXMsIGRyaXZlciBzdXBwb3J0LCBmaWxlc3lz dGVtcywgYW5kIG1vcmUuDQoNClRoZSBBVlggYnVnIG9uIGFtZDY0DQoNCkNvbW1pdDogNzNiMzU3 YmU5MjM4IFVSTDogaHR0cHM6Ly9jZ2l0LmZyZWVic2Qub3JnL3NyYy9jb21taXQvP2lkPQ0KNzNi MzU3YmU5MjM4NWNiYjcwYmExOWU3MDIzYTczNmFmMmM2YjQ5Mw0KDQpDb250YWN0OiBLb25zdGFu dGluIEJlbG91c292IDxraWJARnJlZUJTRC5vcmc+DQoNClNvbWUgQ1BVcyBzdXBwb3J0IHRoZSBz byBjYWxsZWQgaW5pdCBvcHRpbWl6YXRpb24gZm9yIFhTQVZFLCBidXQgbm90IGFsbCBDUFVzDQpk by4gQW5kIHdoZW4gdGhleSBkbywgJ2FjY29yZGluZyB0byBjb21wbGV4IGludGVybmFsIG1pY3Jv YXJjaGl0ZWN0dXJhbA0KY29uZGl0aW9ucycsIHRoZSBvcHRpbWl6YXRpb24gbWlnaHQgaGFwcGVu IG9yIG5vdC4gQmFzaWNhbGx5LCB0aGlzIG1lYW5zIHRoYXQNCnNvbWV0aW1lcyB0aGUgQ1BVIGRv ZXMgbm90IHdyaXRlIGFsbCBvZiB0aGUgc3RhdGUgb24gWFNBVkUgYW5kIHJlY29yZHMgaW4NCnhz dGF0ZV9idiB0aGF0IGl0IGRpZCBub3QuDQoNCk9uIHNpZ25hbCBkZWxpdmVyeSwgdGhlIE9TIHBy b3ZpZGVzIHRoZSBzYXZlZCBjb250ZXh0IGludGVycnVwdGVkIGJ5IHRoZSBzaWduYWwNCnRvIHRo ZSBzaWduYWwgaGFuZGxlci4gVGhlIGNvbnRleHQgaW5jbHVkZXMgYWxsIENQVSBzdGF0ZSBhdmFp bGFibGUgdG8NCnVzZXJzcGFjZSwgaW5jbHVkaW5nIEZQVSByZWdpc3RlcnMgKFhTQVZFIGFyZWEp LiBBbHNvLCBvbiByZXR1cm4gZnJvbSB0aGUNCnNpZ25hbCBoYW5kbGVyLCBjb250ZXh0IGlzIHJl c3RvcmVkLCB3aGljaCBhbGxvd3MgdGhlIGhhbmRsZXIgdG8gbW9kaWZ5IHRoZQ0KbWFpbiBwcm9n cmFtIGZsb3cuIFdoZW4gaW5pdCBvcHRpbWl6YXRpb24ga2lja3MgaW4sIHRoZSBPUyB0cmllcyB0 byBoaWRlIGluaXQNCnN0YXRlIG9wdGltaXphdGlvbiBmcm9tIHRoZSBzaWduYWwgaGFuZGxlciwg YnkgZmlsbGluZyBub24tc2F2ZWQgcGFydHMgb2YgdGhlDQpYU0FWRSBhcmVhLg0KDQpUaGlzIGlz IHdoZXJlIHRoZSBwcm9ibGVtIGhhcHBlbnMuIEZvciBzdGF0ZXMgcGFydHMgMCAoeDg3KSBhbmQg MSAoU1NFL1hNTSksDQpJbnRlbCBDUFVzIGRvIG5vdCBwcm92aWRlIGFuIGVudW1lcmF0aW9uIG9m IGxheW91dCBpbiBDUFVJRCwgYXNzdW1pbmcgdGhhdCB0aGUNCk9TIGtub3dzIGFib3V0IHRoZSBy ZWdpb25zIGFueXdheS4gVGhlIGJ1ZyB3YXMgdGhhdCB0aGUgYW1kNjQga2VybmVsIGhhcmRjb2Rl ZA0KYSAzMmJpdCBzaXplIGZvciB0aGUgWE1NIHNhdmUgYXJlYSwgZWZmZWN0aXZlbHkgZmlsbGlu ZyAlWE1NOC0lWE1NMTUgd2l0aA0KZ2FyYmFnZSBvbiBzaWduYWwgcmV0dXJuIHdoZW4gaW5pdCBv cHRpbWl6YXRpb24ga2lja2VkIGluLCBiZWNhdXNlIG9ubHkNCnNwZWNpZmllZCBwYXJ0IG9mIHRo ZSBTU0Ugc2F2ZSBhcmVhIHdhcyBjb3BpZWQgZnJvbSB0aGUgY2Fub25pY2FsIHNhdmUgYXJlYS4N Cg0KU3BvbnNvcjogVGhlIEZyZWVCU0QgRm91bmRhdGlvbg0KDQrilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIENCg0KRU5BIEZy ZWVCU0QgRHJpdmVyIFVwZGF0ZQ0KDQpMaW5rczoNCkVOQSBSRUFETUUgVVJMOiBodHRwczovL2dp dGh1Yi5jb20vYW16bi9hbXpuLWRyaXZlcnMvYmxvYi9tYXN0ZXIva2VybmVsL2Zic2QvDQplbmEv UkVBRE1FDQoNCkNvbnRhY3Q6IE1pY2hhbCBLcmF3Y3p5ayA8bWtAc2VtaWhhbGYuY29tPg0KQ29u dGFjdDogRGF3aWQgR29yZWNraSA8ZGdyQHNlbWloYWxmLmNvbT4NCkNvbnRhY3Q6IE1hcmNpbiBX b2p0YXMgPG13QHNlbWloYWxmLmNvbT4NCg0KRU5BIChFbGFzdGljIE5ldHdvcmsgQWRhcHRlcikg aXMgdGhlIHNtYXJ0IE5JQyBhdmFpbGFibGUgaW4gdGhlIHZpcnR1YWxpemVkDQplbnZpcm9ubWVu dCBvZiBBbWF6b24gV2ViIFNlcnZpY2VzIChBV1MpLiBUaGUgRU5BIGRyaXZlciBzdXBwb3J0cyBt dWx0aXBsZQ0KdHJhbnNtaXQgYW5kIHJlY2VpdmUgcXVldWVzIGFuZCBjYW4gaGFuZGxlIHVwIHRv IDEwMCBHYi9zIG9mIG5ldHdvcmsgdHJhZmZpYywNCmRlcGVuZGluZyBvbiB0aGUgaW5zdGFuY2Ug dHlwZSBvbiB3aGljaCBpdCBpcyB1c2VkLg0KDQpDb21wbGV0ZWQgc2luY2UgdGhlIGxhc3QgdXBk YXRlOg0KDQogIOKAoiBBZGQgSVB2NiBsYXllciA0IGNoZWNrc3VtIG9mZmxvYWQgc3VwcG9ydCB0 byB0aGUgZHJpdmVyDQoNCiAg4oCiIEFkZCBOVU1BIGF3YXJlbmVzcyB0byB0aGUgZHJpdmVyIHdo ZW4gdGhlIFJTUyBrZXJuZWwgb3B0aW9uIGlzIGVuYWJsZWQNCg0KICDigKIgUmV3b3JrIHZhbGlk YXRpb24gb2YgdGhlIFR4IHJlcXVlc3QgSUQNCg0KICDigKIgQ2hhbmdlIGxpZmV0aW1lIG9mIHRo ZSBkcml2ZXLigJlzIHRpbWVyIHNlcnZpY2UNCg0KICDigKIgQXZvaWQgcmVzZXQgdHJpZ2dlcmlu ZyB3aGVuIHRoZSBkZXZpY2UgaXMgdW5yZXNwb25zaXZlDQoNCldvcmsgaW4gcHJvZ3Jlc3M6DQoN CiAg4oCiIFByb3RvdHlwZSB0aGUgZHJpdmVyIHBvcnQgdG8gdGhlIGlmbGliIGZyYW1ld29yaw0K DQogIOKAoiBUZXN0cyBvZiB0aGUgaW5jb21pbmcgRU5BIGRyaXZlciByZWxlYXNlICh2Mi41LjAp DQoNClNwb25zb3I6IEFtYXpvbi5jb20gSW5jDQoNCuKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgQ0KDQpJbnRlbCBXaXJlbGVz cyBkcml2ZXIgc3VwcG9ydA0KDQpMaW5rczoNCml3bHdpZmkgc3RhdHVzIEZyZWVCU0Qgd2lraSBw YWdlIFVSTDogaHR0cHM6Ly93aWtpLmZyZWVic2Qub3JnL1dpRmkvSXdsd2lmaQ0KDQpDb250YWN0 OiBCam9lcm4gQS4gWmVlYiA8YnpARnJlZUJTRC5PUkc+DQoNClRoZSBJbnRlbCBXaXJlbGVzcyBk cml2ZXIgdXBkYXRlIHByb2plY3QgYWltcyB0byBicmluZyBzdXBwb3J0IGZvciBuZXdlcg0KY2hp cHNldHMgYWxvbmcgd2l0aCBtYWM4MDIxMSBMaW51eEtQSSBjb21wYXQgY29kZS4gVGhlIGR1YWwt bGljZW5zZWQgSW50ZWwNCmRyaXZlciBjb2RlIHdhcyBwb3J0ZWQgaW4gdGhlIHBhc3QgZm9yIHRo ZSBpd20oNCkgbmF0aXZlIGRyaXZlcjsgdXNpbmcgdGhlDQpMaW51eEtQSSBjb21wYXQgZnJhbWV3 b3JrIGFsbG93cyB1cyB0byB1c2UgdGhlIGRyaXZlciBkaXJlY3RseSwgd2l0aCBvbmx5IHZlcnkN Cm1pbm9yIG1vZGlmaWNhdGlvbnMgdGhhdCB3ZSBob3BlIHdpbGwgYmUgaW5jb3Jwb3JhdGVkIGlu dG8gdGhlIG9yaWdpbmFsIGRyaXZlci4NCg0KRHVyaW5nIERlY2VtYmVyIHRoZSBkcml2ZXIsIGZp cm13YXJlLCBhbmQgYWxsIHJlbWFpbmluZyBMaW51eEtQSSBjb21wYXRpYmlsaXR5DQpjb2RlIHdl cmUgY29tbWl0dGVkIHRvIEZyZWVCU0QgbWFpbiAoSEVBRCkgYW5kIG1lcmdlZCB0byB0aGUgc3Rh YmxlLzEzIGJyYW5jaC4NCkZ1cnRoZXIgZml4ZXMsIHVwZGF0ZXMsIGFuZCBpbXByb3ZlbWVudHMg d2lsbCBnbyBkaXJlY3RseSBpbnRvIEZyZWVCU0QsIG1lYW5pbmcNCnRoZSBuZWVkIHRvIGFwcGx5 IHNuYXBzaG90cyBpcyBnb25lIGFuZCBjaGFuZ2VzIGNhbiBiZSBkaXN0cmlidXRlZCBtb3JlIHRp bWVseS4NCg0KRHVyaW5nIHRoZSBsYXN0IG1vbnRocyB3ZSB0cmllZCB0byBlbnN1cmUgdGhhdCB0 aGUgbGF0ZXN0IEFYMjEwIGNoaXBzZXRzIGFyZQ0Kc3VwcG9ydGVkLiBUaGUgY29tcGF0IGNvZGUg d2FzIHJlc3RydWN0dXJlZCBib3RoIHRvIGJlIGFibGUgdG8gYmV0dGVyIHRyYWNlIGFuZA0KZGVi dWcgdGhlIG1hYzgwMjExIGNvbXBhdGliaWxpdHkgbGF5ZXIsIGJ1dCBhbHNvIHRvIGtlZXAgdGhl IG5ldDgwMjExIGFuZA0KbWFjODAyMTEgc3RhdGUgbWFjaGluZXMgZm9yIHN0YXRpb25zIGJldHRl ciBpbiBzeW5jLg0KDQpXaGlsZSB3ZSBrZWVwIHVwZGF0aW5nIHRoZSBkcml2ZXIgYW5kIGFsbCB0 aGUgY29tcGF0IGNvZGUgbmVlZGVkIGZvciB0aGF0LCB0aGUNCmZvY3VzIHJlbWFpbnMgb24gc3Rh YmlsaXR5IGFuZCBhZGRpbmcgc3VwcG9ydCBmb3IgbmV3ZXIgODAyLjExIHN0YW5kYXJkcy4gVGhl DQpkcml2ZXIgaXMgc3RpbGwgc2V0IHRvIDExYS9iL2ctb25seSBhbmQgMTFuIHdpbGwgYmUgbmV4 dCBiZWZvcmUgd2UgbG9vayBhdA0KMTFhYy4NCg0KV2l0aCB0aGUgY29kZSBpbiBGcmVlQlNEIGdp dCB3ZSBhbnRpY2lwYXRlIGJyb2FkZXIgdGVzdGluZyBhbmQgd2l0aCB0aGF0IGFsc28NCnNvbWUg ZmFsbG91dC4gRm9yIHRoZSBsYXRlc3Qgc3RhdGUgb2YgdGhlIGRldmVsb3BtZW50LCBwbGVhc2Ug Zm9sbG93IHRoZQ0KcmVmZXJlbmNlZCB3aWtpIHBhZ2UgYW5kIHRoZSBmcmVlYnNkLXdpcmVsZXNz IG1haWxpbmcgbGlzdC4NCg0KU3BvbnNvcjogVGhlIEZyZWVCU0QgRm91bmRhdGlvbg0KDQrilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIENCg0KS2VybmVsIENyeXB0byBjaGFuZ2VzIHRvIHN1cHBvcnQgV2lyZUd1YXJkDQoNCkNv bnRhY3Q6IEpvaG4gQmFsZHdpbiA8amhiQEZyZWVCU0Qub3JnPg0KDQpEdXJpbmcgdGhlIHBhc3Qg ZmV3IG1vbnRocywgSSBtZXJnZWQgc2V2ZXJhbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdG8gYmV0 dGVyDQpzdXBwb3J0IHRoZSBXaXJlR3VhcmQgZHJpdmVyLiBUaGVzZSBpbmNsdWRlIGV4dGVuc2lv bnMgdG8gdGhlICdzdHJ1Y3QNCmVuY194Zm9ybScgaW50ZXJmYWNlIHRvIGJldHRlciBzdXBwb3J0 IEFFQUQgY2lwaGVycywgY2hhbmdlcyB0byAnc3RydWN0DQplbmNfeGZvcm0nIHRvIHN1cHBvcnQg bXVsdGktYmxvY2sgb3BlcmF0aW9ucyBmb3IgaW1wcm92ZWQgcGVyZm9ybWFuY2UsIGFuZCB0aGUN CmFkZGl0aW9uIG9mIHRoZSBYQ2hhQ2hhMjAtUG9seTEzMDUgQUVBRCBjaXBoZXIgc3VpdGUgdG8g T0NGLiBBZGRpdGlvbmFsbHksIHRoZQ0Ka2VybmVsIG5vdyBpbmNsdWRlcyBhIG5ldyAiZGlyZWN0 IiBBUEkgZm9yIENoYUNoYTIwLVBvbHkxMzA1IG9wZXJhdGlvbnMgb24NCnNtYWxsLCBmbGF0IGJ1 ZmZlcnMuIEEgY2hhbmdlIGluIHJldmlldyBhZGRzIGFuIEFQSSB0byBzdXBwb3J0IGN1cnZlMjU1 MTkNCm9wZXJhdGlvbnMuIFdpdGggdGhlc2UgY2hhbmdlcywgdGhlIFdpcmVHdWFyZCBkcml2ZXIg aXMgbW9zdGx5IGFibGUgdG8gdXNlDQpjcnlwdG8gQVBJcyBmcm9tIHRoZSBrZXJuZWwgcmF0aGVy IHRoYW4gaXRzIGludGVybmFsIGltcGxlbWVudGF0aW9ucy4NCg0KSW4gcGFyYWxsZWwgSSBoYXZl IGJlZW4gdXBkYXRpbmcgdGhlIFdpcmVHdWFyZCBkcml2ZXIgdG8gdXNlIHRoZSBuZXcgQVBJcw0K dmVyaWZ5aW5nIGludGVyb3BlcmFiaWxpdHkgd2l0aCB0aGUgZXhpc3RpbmcgZHJpdmVyLiBPbmUg b2YgdGhlIG5leHQgdGFza3MgaXMNCnRvIHJlZmluZSB0aGVzZSBjaGFuZ2VzIChhbG9uZyB3aXRo IHNvbWUgbWlub3IgYnVnIGZpeGVzKSBhcyBjYW5kaWRhdGVzIGZvcg0KdXBzdHJlYW1pbmcgaW50 byB0aGUgV2lyZUd1YXJkIGRyaXZlci4NCg0KU3BvbnNvcjogVGhlIEZyZWVCU0QgRm91bmRhdGlv bg0KDQrilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIENCg0KUG9ydHMNCg0KQ2hhbmdlcyBhZmZlY3RpbmcgdGhlIFBvcnRzIENv bGxlY3Rpb24sIHdoZXRoZXIgc3dlZXBpbmcgY2hhbmdlcyB0aGF0IHRvdWNoDQptb3N0IG9mIHRo ZSB0cmVlLCBvciBpbmRpdmlkdWFsIHBvcnRzIHRoZW1zZWx2ZXMuDQoNCktERSBvbiBGcmVlQlNE DQoNCkxpbmtzOg0KS0RFIEZyZWVCU0QgVVJMOiBodHRwczovL2ZyZWVic2Qua2RlLm9yZy8NCktE RSBDb21tdW5pdHkgRnJlZUJTRCBVUkw6IGh0dHBzOi8vY29tbXVuaXR5LmtkZS5vcmcvRnJlZUJT RA0KDQpDb250YWN0OiBBZHJpYWFuIGRlIEdyb290IDxrZGVARnJlZUJTRC5vcmc+DQoNClRoZSBL REUgb24gRnJlZUJTRCBwcm9qZWN0IGFpbXMgdG8gcGFja2FnZSB0aGUgc29mdHdhcmUgZnJvbSB0 aGUgS0RFIENvbW11bml0eSwNCmFsb25nIHdpdGggZGVwZW5kZW5jaWVzIGFuZCByZWxhdGVkIHNv ZnR3YXJlLCBmb3IgdGhlIEZyZWVCU0QgcG9ydHMgdHJlZS4gVGhhdA0KaW5jbHVkZXMgYSBmdWxs IGRlc2t0b3AgZW52aXJvbm1lbnQgY2FsbGVkIEtERSBQbGFzbWEgKGZvciBib3RoIFgxMSBhbmQN CldheWxhbmQpIGFuZCBodW5kcmVkcyBvZiBhcHBsaWNhdGlvbnMgdGhhdCBjYW4gYmUgdXNlZCBv biBhbnkgRnJlZUJTRCBtYWNoaW5lLg0KDQpUaGUgS0RFIHRlYW0gKGtkZUApIGlzIHBhcnQgb2Yg ZGVza3RvcEAgYW5kIHgxMUAgYXMgd2VsbCwgYnVpbGRpbmcgdGhlIHNvZnR3YXJlDQpzdGFjayB0 byBtYWtlIEZyZWVCU0QgYmVhdXRpZnVsIGFuZCB1c2FibGUgYXMgYSBkYWlseS1kcml2ZXIgZ3Jh cGhpY3MtYmFzZWQNCmRlc2t0b3AgbWFjaGluZS4NCg0KICDigKIgSnVzdCB0d28gQ01ha2UgdXBk YXRlcyB0aGlzIHF1YXJ0ZXIsIGVuZGluZyB1cCB3aXRoIENNYWtlIDMuMjIuMS4gU29tZSBtb3Jl DQogICAgcGF0Y2hlcyBoYXZlIGxhbmRlZCB1cHN0cmVhbSwgYW5kIENNYWtlIGlzIHNvb24gdG8g c3dpdGNoIHRvIHNoYXJlL21hbiBmb3INCiAgICBtYW5wYWdlcyBvbiBGcmVlQlNELiBXaGVuIGl0 IGRvZXMsIHRoZXJlIHdpbGwgYmUgcGxlbnR5IG9mIHBrZy1wbGlzdCBjaHVybi4NCg0KICDigKIg TW9udGhseSByZWxlYXNlcyBvZiBLREUgRnJhbWV3b3JrcywgS0RFIFBsYXNtYSwgYW5kIEtERSBH ZWFyIGtlcHQgdGhlDQogICAgZXhwLXJ1bnMgZ29pbmcuIGtkZUAgd291bGQgbGlrZSB0byB0aGFu ayBBbnRvaW5lIGZvciBvdmVyc2VlaW5nIG91ciBtYW55DQogICAgZXhwLXJ1biByZXF1ZXN0cy4g V2UgYXJlIG5vdyBhdCBLREUgRnJhbWV3b3JrcyA1Ljg5IChsYXRlc3QgcmVsZWFzZSBhcyBvZg0K ICAgIERlY2VtYmVyIDIwMjEpLCBLREUgUGxhc21hIERlc2t0b3AgNS4yMy40IGFuZCBLREUgR2Vh ciAyMS4xMi4NCg0KICDigKIgUXQgNSBpcyBub3QgcmVjZWl2aW5nIGFueSBvcGVuIHNvdXJjZSB1 cGRhdGVzIGZyb20gdGhlIFF0IENvbXBhbnksIGJ1dCB0aGUNCiAgICBLREUgQ29tbXVuaXR5IG1h aW50YWlucyBpdHMgb3duIHNldCBvZiBwYXRjaGVzIHRoYXQgYmFja3BvcnQgbWFueSBmaXhlcw0K ICAgIGZyb20gUXQgNi4gV29yayBpcyB1bmRlcndheSB0byBpbXBvcnQgdGhlIEtERSBwYXRjaCBj b2xsZWN0aW9uLg0KDQogIOKAoiBRdCA2IHJlbWFpbnMgdGFudGFsaXppbmdseSBjbG9zZS4gVGhl cmUgaGFzbuKAmXQgYmVlbiByZWFsIHByb2dyZXNzIG9uIHRoZQ0KICAgIGNyYXNoLW9uLWV4aXQg cHJvYmxlbSwgdGhvdWdoLg0KDQogIOKAoiBkZXNrdXRpbHMva2FsZW5kYXIgaXMgYSByZWxhdGl2 ZWx5IG5ldyBwb3J0IHRoYXQgdXNlcyBLREUgdGVjaG5vbG9naWVzIGZvcg0KICAgIGEgZGVza3Rv cCAoYXBwb2ludG1lbnRzKSBjYWxlbmRhci4NCg0KICDigKIgZGVza3V0aWxzL2xhdHRlLWRvY2ss IGFuIGFsdGVybmF0aXZlIGxhdW5jaGVyIGZvciBLREUgUGxhc21hIChhbmQgb3RoZXINCiAgICBl bnZpcm9ubWVudHMpIHdhcyB1cGRhdGVkIHRvIGVhY2ggb2YgaXRzIGJ1Z2ZpeCByZWxlYXNlcy4N Cg0KICDigKIgZGV2ZWwvcWJzIGFuZCBkZXZlbC9xdGNyZWF0b3Igd2VyZSB1cGRhdGVkLiBRYnMg KG9yICJRdCBCdWlsZCBTeXN0ZW0iKSBpcyBhDQogICAgZGVjbGFyYXRpdmUgYnVpbGQgc3lzdGVt IHN0eWxlZCBhbG9uZyB0aGUgbGluZXMgb2YgZGVjbGFyYXRpdmUgUU1MDQogICAgcHJvZ3JhbXMu IChOb3RlIHRoYXQgUWJzIGlzIG5vdCB1c2VkIGJ5IFF0IGl0c2VsZikuDQoNCiAg4oCiIGdyYXBo aWNzL2RpZ2lrYW0gd2FzIHVwZGF0ZWQgdG8gdGhlIGxhdGVzdCByZWxlYXNlIGFuZCBub3cgc3Vw cG9ydHMgYm90aA0KICAgIEltYWdlTWFnaWNrIDYgYW5kIEltYWdlTWFnaWNrIDcuIFNwZWFraW5n IG9mIHdoaWNoLCBhIG5ldyBVU0VTPW1hZ2ljayB3YXMNCiAgICBpbnRyb2R1Y2VkIHRvIHNpbXBs aWZ5IHBvcnRzIHRoYXQgZGVwZW5kIGluIEltYWdlTWFnaWNrLg0KDQogIOKAoiBncmFwaGljcy9r c25pcCwgb25lIG9mIHNldmVyYWwgc2NyZWVuc2hvdC1hcHBsaWNhdGlvbnMgZm9yIEtERSBQbGFz bWEgKGFuZA0KICAgIG90aGVyIGVudmlyb25tZW50cykgaGFkIGEgbG90cy1vZi1idWdmaXhlcyB1 cGRhdGUuDQoNCiAg4oCiIGdyYXBoaWNzL3NrYW5wYWdlIGlzIGEgbmV3IHBvcnQgdGhhdCBzY2Fu cyBtdWx0aXBsZSBwYWdlcyBhbmQgcHJvZHVjZXMgYQ0KICAgIFBERiBvZiB0aGUgd2hvbGUuDQoN CiAg4oCiIG11bHRpbWVkaWEvcXQ1LW11bHRpbWVkaWEgbm93IGlnbm9yZXMgZ3N0cmVhbWVyLWds IChyYXRoZXIgdGhhbiBpbXBsaWNpdGx5DQogICAgYnVpbGRpbmcgd2l0aCBpdCBhcyBhIGRlcGVu ZGVuY3kgaWYgaXQgaXMgaW5zdGFsbGVkIGEgYnVpbGQgdGltZSkuDQoNCiAg4oCiIG5ldC1pbS9y dXFvbGEgaXMgYSBSb2NrZXQgQ2hhdCBjbGllbnQsIHVwZGF0ZWQgdG8gdGhlIGxhdGVzdCByZWxl YXNlLg0KDQogIOKAoiBzZWN1cml0eS9xdGtleWNoYWluIGhhcyBhIG5ldyByZWxlYXNlLg0KDQpF bHNld2hlcmUgaW4gdGhlIHNvZnR3YXJlIHN0YWNrLCBrZGVAIGFsc28gbWFpbnRhaW5zIHBvcnRz IHRoYXQgc3VwcG9ydCB0aGUNCmRlc2t0b3AgaW4gZ2VuZXJhbC4gU29tZSBoaWdobGlnaHRzIGFy ZToNCg0KICDigKIgZGV2ZWwvbGlicGhvbmVudW1iZXIga2VlcHMgY2hhc2luZyBjaGFuZ2VzIHRv IHRoZSB3b3JsZOKAmXMgcGhvbmUgbnVtYmVycw0KICAgICh0aGUgRnJlZUJTRCBmb3VuZGF0aW9u IGNhbiBiZSByZWFjaGVkIGF0ICsxLjcyMC4yMDcuNTE0MikuDQoNCiAg4oCiIGdyYXBoaWNzL3Bv cHBsZXIgdXBkYXRlZCB0aGlzIG11Y2gtdXNlZCBQREYtcmVuZGVyaW5nIGxpYnJhcnkuDQoNCiAg 4oCiIG11bHRpbWVkaWEvcGlwZXdpcmUsIHRoZSBhdWRpby1hbmQtdmlkZW8gc3VjY2Vzc29yIHRv IHB1bHNlYXVkaW8sIHdhcw0KICAgIHVwZGF0ZWQgYW5kIG5vdyBzdXBwb3J0cyBTU0wgYXMgd2Vs bC4NCg0KICDigKIgbmV0L3B5LXB5dHJhZGZyaSBnb3Qgc2V2ZXJhbCB1cGRhdGVzIHNvIHlvdSBj YW4gY29udHJvbCB5b3VyIGxpZ2h0cyBmcm9tDQogICAgRnJlZUJTRC4NCg0KICDigKIgcHJpbnQv ZnJlZXR5cGUyIHdhcyB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgcmVsZWFzZTsgcmVsYXRlZGx5LCB0 aGVyZSB3YXMgYW0NCiAgICB1cGRhdGUgdG8geDExLXRvb2xraXRzL2xpYlhmdC4NCg0KICDigKIg cHJpbnQvaGFyZmJ1enosIHRoZSB0ZXh0LXNoYXBpbmcgbGlicmFyeSwgd2FzIHVwZGF0ZWQgZm9y IG1vcmUgZm9udCB0eXBlDQogICAgc3VwcG9ydC4NCg0KICDigKIgc3lzdXRpbHMvYnNkaXNrcyBp cyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBEQnVzIGludGVyZmFjZXMgZm9yIGV4YW1pbmluZw0KICAg IGRpc2tzIChkcml2ZXMsIHBhcnRpdGlvbnMsIGV0Yy4pLiBJdCBpcyBhbHNvIHVzZWQgZm9yIHJl bW92YWJsZS1kaXNrDQogICAgbm90aWZpY2F0aW9ucy4NCg0KICDigKIgeDExLXRoZW1lcy9hZHdh aXRhLXF0LCB3aGljaCBjb25uZWN0cyB0aGUgYWR3YWl0YSB0aGVtZSBlbmdpbmUgdG8gUXQtYmFz ZWQNCiAgICBhcHBsaWNhdGlvbnMsIHdhcyB1cGRhdGVkLg0KDQrilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHi lIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIENCg0KRnJlZUJT RCBPZmZpY2UgVGVhbQ0KDQpMaW5rczoNClRoZSBGcmVlQlNEIE9mZmljZSBwcm9qZWN0IFVSTDog aHR0cHM6Ly93aWtpLmZyZWVic2Qub3JnL09mZmljZQ0KDQpDb250YWN0OiBGcmVlQlNEIE9mZmlj ZSB0ZWFtIE1MIDxvZmZpY2VARnJlZUJTRC5vcmc+DQpDb250YWN0OiBEaW1hIFBhbm92IDxmbHVm ZnlARnJlZUJTRC5vcmc+DQpDb250YWN0OiBMaS1XZW4gSHN1IDxsd2hzdUBGcmVlQlNELm9yZz4N Cg0KVGhlIEZyZWVCU0QgT2ZmaWNlIHRlYW0gd29ya3Mgb24gYSBudW1iZXIgb2Ygb2ZmaWNlLXJl bGF0ZWQgc29mdHdhcmUgc3VpdGVzIGFuZA0KdG9vbHMgc3VjaCBhcyBPcGVuT2ZmaWNlIGFuZCBM aWJyZU9mZmljZS4NCg0KV29yayBkdXJpbmcgdGhpcyBxdWFydGVyIHdhcyBmb2N1c2VkIG9uIHBy b3ZpZGluZyB0aGUgbGF0ZXN0IHN0YWJsZSByZWxlYXNlIG9mDQpMaWJyZU9mZmljZSBzdWl0ZSBh bmQgY29tcGFuaW9uIGFwcHMgdG8gYWxsIEZyZWVCU0QgdXNlcnMuDQoNCkxhdGVzdCBhbmQgcXVh cnRlcmx5IHBvcnRzIGJyYW5jaGVzIGdvdCBhIG5ldyBicmFuY2ggKDcuMikgb2YgdGhlIExpYnJl T2ZmaWNlDQpzdWl0ZSBhbmQgdXBkYXRlZCB0byB0aGUgNy4yLjQgcmVsZWFzZSB3aGlsZSBuZXcg cHJlbGVhc2VzIHN1Y2ggYXMgNy4yLjUuUkMyDQphbmQgNy4zLjAuUkMxIGFyZSBjb29raW5nIGlu IHRoZSBXSVAgc3RhZ2UgYXJlYS4NCg0KTWVhbndoaWxlLCBvdXIgV0lQIHJlcG9zaXRvcnkgZ290 IGJhY2sgYSB3b3JraW5nIENJIGluc3RhbmNlIGFnYWluLCB0aGFua3MgdG8NCkxpLVdlbiBIc3Uu DQoNCkFsc28gd2UgYXJlIHN0aWxsIHdvcmtpbmcgb24gdGhlIEJvb3N0IFdJUCByZXBvc2l0b3J5 IHRvIGJyaW5nIHRoZSBsYXRlc3QgQm9vc3QNCmxpYnJhcnkgdG8gdGhlIHBvcnRzLg0KDQpXZSBh cmUgbG9va2luZyBmb3IgcGVvcGxlIHRvIGhlbHAgd2l0aCB0aGUgb3BlbiB0YXNrczoNCg0KICDi gKIgVGhlIG9wZW4gYnVncyBsaXN0IGNvbnRhaW5zIGFsbCBmaWxlZCBpc3N1ZXMgd2hpY2ggbmVl ZCBzb21lIGF0dGVudGlvbg0KDQogIOKAoiBVcHN0cmVhbSBsb2NhbCBwYXRjaGVzIGluIHBvcnRz DQoNClBhdGNoZXMsIGNvbW1lbnRzIGFuZCBvYmplY3Rpb25zIGFyZSBhbHdheXMgd2VsY29tZSBp biB0aGUgbWFpbGluZyBsaXN0IGFuZA0KYnVnemlsbGEuDQoNCuKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgQ0KDQpUaGlyZC1Q YXJ0eSBQcm9qZWN0cw0KDQpNYW55IHByb2plY3RzIGJ1aWxkIHVwb24gRnJlZUJTRCBvciBpbmNv cnBvcmF0ZSBjb21wb25lbnRzIG9mIEZyZWVCU0QgaW50bw0KdGhlaXIgcHJvamVjdC4gQXMgdGhl c2UgcHJvamVjdHMgbWF5IGJlIG9mIGludGVyZXN0IHRvIHRoZSBicm9hZGVyIEZyZWVCU0QNCmNv bW11bml0eSwgd2Ugc29tZXRpbWVzIGluY2x1ZGUgYnJpZWYgdXBkYXRlcyBzdWJtaXR0ZWQgYnkg dGhlc2UgcHJvamVjdHMgaW4NCm91ciBxdWFydGVybHkgcmVwb3J0LiBUaGUgRnJlZUJTRCBwcm9q ZWN0IG1ha2VzIG5vIHJlcHJlc2VudGF0aW9uIGFzIHRvIHRoZQ0KYWNjdXJhY3kgb3IgdmVyYWNp dHkgb2YgYW55IGNsYWltcyBpbiB0aGVzZSBzdWJtaXNzaW9ucy4NCg0KaGVsbG9TeXN0ZW0NCg0K TGlua3M6DQpEb2N1bWVudGF0aW9uIFVSTDogaHR0cHM6Ly9oZWxsb3N5c3RlbS5naXRodWIuaW8v DQoNCkNvbnRhY3Q6IFNpbW9uIFBldGVyIDxwcm9ib25vQHB1cmVkYXJ3aW4ub3JnPg0KQ29udGFj dDogI2hlbGxvU3lzdGVtIG9uIGlyYy5saWJlcmEuY2hhdCwgbWlycm9yZWQgdG8gI2hlbGxvU3lz dGVtOm1hdHJpeC5vcmcNCm9uIE1hdHJpeA0KDQpXaGF0IGlzIGhlbGxvU3lzdGVtPw0KDQpoZWxs b1N5c3RlbSBpcyBGcmVlQlNEIHByZWNvbmZpZ3VyZWQgYXMgYSBkZXNrdG9wIG9wZXJhdGluZyBz eXN0ZW0gd2l0aCBhIGZvY3VzDQpvbiBzaW1wbGljaXR5LCBlbGVnYW5jZSwgYW5kIHVzYWJpbGl0 eS4gSXRzIGRlc2lnbiBmb2xsb3dzIHRoZSDigJxMZXNzLCBidXQNCmJldHRlcuKAnSBwaGlsb3Nv cGh5Lg0KDQpRNCAyMDIxIFN0YXR1cw0KDQogIOKAoiBWZXJzaW9uIDAuNy4wIG9mIGhlbGxvU3lz dGVtIGhhcyBiZWVuIHB1Ymxpc2hlZCBpbmNsdWRpbmcgbWFueSBjb250cmlidXRlZA0KICAgIGZl YXR1cmVzIGFuZCBidWdmaXhlcw0KDQogICAgICDilqEgaGVsbG9TeXN0ZW0gaXMgbm93IGJhc2Vk IG9uIEZyZWVCU0QgMTMuMC1SRUxFQVNFDQoNCiAgICAgIOKWoSBDb21wbGV0ZWx5IHJld29ya2Vk IExpdmUgSVNPIGFyY2hpdGVjdHVyZSwgcmVzdWx0aW5nIGluIDEvM3JkIGJvb3QgdGltZQ0KICAg ICAgICBhbmQgdW5kZXIgODAwIE1CIHNpemUgKGZpdHMgYSBDRC1ST00pDQoNCiAgICAgIOKWoSBE ZXZlbG9wZXIgVG9vbHMgYXJlIG5vdyBhIHNlcGFyYXRlIGRvd25sb2FkDQoNCiAgICAgIOKWoSBE aXNrIEltYWdlcyBhcmUgaW5jcmVhc2luZ2x5IHVzZWQgdGhyb3VnaG91dCB0aGUgc3lzdGVtLCBz dWNoIGFzIGZvcg0KICAgICAgICBhcHBsaWNhdGlvbiBkaXN0cmlidXRpb24gYW5kIExpbnV4dWxh dG9yIHVzZXJsYW5kIGRlcGxveW1lbnQNCg0KICAgICAg4pahIE1hbnkgbmV3IGZlYXR1cmVzIGFu ZCBHVUkgdXRpbGl0aWVzIHRvIG1ha2UgdGhlIGRlc2t0b3AgbW9yZSB1c2FibGUgZm9yDQogICAg ICAgICJtZXJlIG1vcnRhbHMiIHdpdGhvdXQgdGhlIG5lZWQgZm9yIGEgdGVybWluYWwNCg0KSW5z dGFsbGFibGUgTGl2ZSBJU08gaW1hZ2VzIGFuZCBhIGZ1bGwgY2hhbmdlbG9nIGFyZSBhdmFpbGFi bGUgYXQgaHR0cHM6Ly8NCmdpdGh1Yi5jb20vaGVsbG9TeXN0ZW0vSVNPL3JlbGVhc2VzL3RhZy9y MC43LjANCg0KQ29udHJpYnV0aW5nDQoNClRoZSBwcm9qZWN0IGFwcHJlY2lhdGVzIGNvbnRyaWJ1 dGlvbnMgaW4gdmFyaW91cyBhcmVhcy4NCg0K4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB 4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSBDQoNCkNvbnRhaW5lcnMgJiBGcmVl QlNEOiBQb3QsIFBvdGx1Y2sgJiBQb3RtYW4NCg0KTGlua3M6DQpQb3Qgb24gZ2l0aHViIFVSTDog aHR0cHM6Ly9naXRodWIuY29tL3BpenphbWlnL3BvdA0KUG90bHVjayBSZXBvc2l0b3J5ICYgUHJv amVjdCBVUkw6IGh0dHBzOi8vcG90bHVjay5ob25leWd1aWRlLm5ldC8NClBvdGx1Y2sgb24gZ2l0 aHViIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2hueS1nZC9wb3RsdWNrDQpQb3RtYW4gb24gZ2l0 aHViIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2dyZW1iby9wb3RtYW4NCg0KQ29udGFjdDogTHVj YSBQaXp6YW1pZ2xpbyAoUG90KSA8cGl6emFtaWdAZnJlZWJzZC5vcmc+DQpDb250YWN0OiBTdGVw aGFuIExpY2h0ZW5hdWVyIChQb3RsdWNrKSA8c2xAaG9uZXlndWlkZS5ldT4NCkNvbnRhY3Q6IE1p Y2hhZWwgR21lbGluIChQb3RtYW4pIDxncmVtYm9ARnJlZUJTRC5vcmc+DQoNClBvdCBpcyBhIGph aWwgbWFuYWdlbWVudCB0b29sIHRoYXQgYWxzbyBzdXBwb3J0cyBvcmNoZXN0cmF0aW9uIHRocm91 Z2ggTm9tYWQuDQoNCkluIHRoZSBsYXN0IHF1YXJ0ZXIsIGEgbmV3IHJlbGVhc2UgMC4xNC4wIHdp dGggYSBudW1iZXIgb2YgZml4ZXMgYW5kIGZlYXR1cmVzDQpsaWtlIHRoZSBuZXcgY29weS1pbi1m bHYgY29tbWFuZCB3YXMgbWFkZSBhdmFpbGFibGUuDQoNClBvdGx1Y2sgYWltcyB0byBiZSB0byBG cmVlQlNEIGFuZCBQb3Qgd2hhdCBEb2NrZXJodWIgaXMgdG8gTGludXggYW5kIERvY2tlcjogYQ0K cmVwb3NpdG9yeSBvZiBQb3QgZmxhdm91cnMgYW5kIGNvbXBsZXRlIGNvbnRhaW5lciBpbWFnZXMg Zm9yIHVzYWdlIHdpdGggUG90IGFuZA0KaW4gbWFueSBjYXNlcyBOb21hZC4NCg0KSGVyZSB3ZSBh Z2FpbiBoYWQgYSBidXN5IHF1YXJ0ZXIuIEFsbCBpbWFnZXMgaGF2ZSBiZWVuIHJlYnVpbHQgZm9y IEZyZWVCU0QgMTIuMw0KYW5kIHBvdCAwLjEzLjAuDQpBbHNvIHRoZSBpbWFnZXMgdGhhdCBjYW4g YmUgdXNlZCB0byBidWlsZCBhIHZpcnR1YWwgZGF0YSBjZW50ZXIgbGlrZSBOb21hZCwNCkNvbnN1 bCBhbmQgVmF1bHQgaGF2ZSByZWNlaXZlZCBhIGxvdCBtb3JlIHRlbmRlciBsb3ZlIGFuZCBjYXJl IGFuZCBhcmUNCm1lYW53aGlsZSBpbiBwcmUtcHJvZHVjdGlvbiB1c2Ugb24gYSBjbHVzdGVyIGF0 IGEgZmludGVjaC4NCk5vdCBhbGwgdGhlc2UgY2hhbmdlcyBoYXZlIHlldCBiZWVuIGNvbW1pdHRl ZCB0byB0aGUgZ2l0aHViIHJlcG9zaXRvcnkgdGhvdWdoLA0KdGhpcyBpcyBwbGFubmVkIGZvciB0 aGUgbmV4dCBxdWFydGVyLiBBZGRpdGlvbmFsbHksIG5ldyBpbWFnZXMgbGlrZQ0KbXVsdGktbWFz dGVyIE9wZW5MREFQIGhhdmUgYmVlbiBhZGRlZCwgdG9vLg0KDQpQb3RtYW4gYWltcyB0byBzaW1w bGlmeSBidWlsZGluZyBQb3QgaW1hZ2VzIHdpdGggVmFncmFudCBhbmQgVmlydHVhbEJveCBiYXNl ZA0Kb24gdGhlIFBvdGx1Y2sgYXBwcm9hY2gsIGUuZy4gYXMgcGFydCBvZiBhIERldk9wcyB3b3Jr ZmxvdyBmb3Igc29mdHdhcmUNCmRldmVsb3BtZW50IGluY2x1ZGluZyB0ZXN0aW5nIGFuZCBwdWJs aXNoaW5nIHRoZW0gdG8gYSByZXBvc2l0b3J5Lg0KDQpIZXJlIHdlIGhhdmUgbm90IHlldCBtYWRl IGEgbG90IG9mIGhlYWR3YXkgd2l0aCBvdXIgcGxhbiB0byB1dGlsaXNlIFBvdG1hbiBpbg0KdGhl IFBvdGx1Y2sgbGlicmFyeSBidWlsZCBwcm9jZXNzIGJ1dCB0aGlzIGlzIHN0aWxsIG9uIG91ciBU T0RPLWxpc3QsIGxpa2UNCmltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdXNpbmcgdGhl IFZpcnR1YWwgREMgaW1hZ2VzIGZyb20gdGhlIFBvdGx1Y2sNCmxpYnJhcnkuDQoNCkFzIGFsd2F5 cywgZmVlZGJhY2sgYW5kIHBhdGNoZXMgYXJlIHdlbGNvbWUuDQoNCuKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKU geKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgQ0K --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKkBAEBCgCOFiEEVbCTpybDiFVxIrrVNqQMg7DW754FAmIqsh5fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDU1 QjA5M0E3MjZDMzg4NTU3MTIyQkFENTM2QTQwQzgzQjBENkVGOUUQHGpybUBmcmVl YnNkLm9yZwAKCRA2pAyDsNbvnj1pD/41O1IJ9LMpGJjwDEJ1h4uDQWgbvduuH1Mi 6qwYY9lD/o3/K2cOAfImmkjqJG5sepE6i8Nr9OKG0xHwSrumB+2V/3bJydujCENI SouKllhGUsUDo4tHBHgaTWIe30wjhaI2NSk6kqmSI4UJ030qrxaPamfx2pN8IRVz OPYW5JwisaEFwp0UXTtGY2cFZA8gb0YTvhrazRzH8sQGNOYkHOzHpSUozRc+9D9G GinMHOdmqsJ4ewj/9M24u3HJ4+aBLH8XaYt8MyJho5RBwIn52Z8358M5abDPkEbS 4xKYrktagp79kOSU7nNUoBEKdxCLeKrd7pvdQK9jd5st0PItWuAbd2QTQiYDtoUc Q3R/T68FpMxPS1kSCJ1siDui214eNPHQIfhdwOXSDCRTm4oIYzaxAUsBdV5uvoJr 1NUtRfXSbAyxDze/qDVOPeyzuZoo0C/4KwSbX0YRfYa1EoSvJgRIJd8jbLK0MRBe cqR/WYmyOJhTVh+QL368gbfEwQ9ZlkXEwUtofqZkM2yC4Lje6Dr7OYKArfOkgFWt pMGudE/qiKdTFVE/VvWeDQ/wmq1agVqZEX204YEyszuwXn5DH4tLqoqlydZoHcAL d0EfWO/Z8RTIokc/4I+mB6A2YOH4QIo+h7NH7naoPfuFNf5PNwzwVfNYok0dgbd+ e31h8a10rw== =TTeE -----END PGP SIGNATURE----- --=-=-=--